summaryrefslogtreecommitdiff
path: root/Build/source/libs/icu/icu-src
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-01-08 19:24:46 +0000
committerKarl Berry <karl@freefriends.org>2019-01-08 19:24:46 +0000
commit3eec52e2f37fb5ad2e6de4ec20cb26ff280777a1 (patch)
tree206a748c51d12870ca8426c9d7a59a11639d87b2 /Build/source/libs/icu/icu-src
parent730f4601e0de27c5eccd405e393f80425fa6cdf2 (diff)
icu 63.1
git-svn-id: svn://tug.org/texlive/trunk@49641 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs/icu/icu-src')
-rw-r--r--Build/source/libs/icu/icu-src/.gitignore90
-rw-r--r--Build/source/libs/icu/icu-src/APIChangeReport.html1815
-rw-r--r--Build/source/libs/icu/icu-src/readme.html12
-rw-r--r--Build/source/libs/icu/icu-src/source/Doxyfile.in2378
-rw-r--r--Build/source/libs/icu/icu-src/source/Makefile.in10
-rw-r--r--Build/source/libs/icu/icu-src/source/acinclude.m46
-rw-r--r--Build/source/libs/icu/icu-src/source/allinone/Build.Windows.Library.ProjectConfiguration.props20
-rw-r--r--Build/source/libs/icu/icu-src/source/allinone/Build.Windows.ProjectConfiguration.props256
-rw-r--r--Build/source/libs/icu/icu-src/source/allinone/Build.Windows.UWP.ProjectConfiguration.props80
-rw-r--r--Build/source/libs/icu/icu-src/source/allinone/Windows.CopyUnicodeHeaderFiles.targets52
-rw-r--r--Build/source/libs/icu/icu-src/source/allinone/allinone.sln2
-rwxr-xr-xBuild/source/libs/icu/icu-src/source/allinone/icucheck.bat10
-rw-r--r--Build/source/libs/icu/icu-src/source/common/Makefile.in13
-rw-r--r--Build/source/libs/icu/icu-src/source/common/bmpset.cpp4
-rw-r--r--Build/source/libs/icu/icu-src/source/common/bytesinkutil.cpp38
-rw-r--r--Build/source/libs/icu/icu-src/source/common/bytesinkutil.h22
-rw-r--r--Build/source/libs/icu/icu-src/source/common/bytestriebuilder.cpp3
-rw-r--r--Build/source/libs/icu/icu-src/source/common/characterproperties.cpp336
-rw-r--r--Build/source/libs/icu/icu-src/source/common/charstr.cpp26
-rw-r--r--Build/source/libs/icu/icu-src/source/common/charstr.h13
-rw-r--r--Build/source/libs/icu/icu-src/source/common/cmemory.h51
-rw-r--r--Build/source/libs/icu/icu-src/source/common/common.vcxproj21
-rw-r--r--Build/source/libs/icu/icu-src/source/common/common.vcxproj.filters38
-rw-r--r--Build/source/libs/icu/icu-src/source/common/common_uwp.vcxproj29
-rw-r--r--Build/source/libs/icu/icu-src/source/common/dictbe.cpp16
-rw-r--r--Build/source/libs/icu/icu-src/source/common/edits.cpp33
-rw-r--r--Build/source/libs/icu/icu-src/source/common/loadednormalizer2impl.cpp83
-rw-r--r--Build/source/libs/icu/icu-src/source/common/locdspnm.cpp22
-rw-r--r--Build/source/libs/icu/icu-src/source/common/locid.cpp553
-rw-r--r--Build/source/libs/icu/icu-src/source/common/locmap.cpp2
-rw-r--r--Build/source/libs/icu/icu-src/source/common/mutex.h6
-rw-r--r--Build/source/libs/icu/icu-src/source/common/norm2_nfc_data.h1111
-rw-r--r--Build/source/libs/icu/icu-src/source/common/normalizer2.cpp90
-rw-r--r--Build/source/libs/icu/icu-src/source/common/normalizer2impl.cpp434
-rw-r--r--Build/source/libs/icu/icu-src/source/common/normalizer2impl.h44
-rw-r--r--Build/source/libs/icu/icu-src/source/common/propname_data.h2018
-rw-r--r--Build/source/libs/icu/icu-src/source/common/putil.cpp209
-rw-r--r--Build/source/libs/icu/icu-src/source/common/putilimp.h97
-rw-r--r--Build/source/libs/icu/icu-src/source/common/rbbi.cpp120
-rw-r--r--Build/source/libs/icu/icu-src/source/common/rbbi_cache.cpp65
-rw-r--r--Build/source/libs/icu/icu-src/source/common/rbbidata.cpp41
-rw-r--r--Build/source/libs/icu/icu-src/source/common/rbbidata.h8
-rw-r--r--Build/source/libs/icu/icu-src/source/common/rbbirb.cpp205
-rw-r--r--Build/source/libs/icu/icu-src/source/common/rbbirb.h23
-rw-r--r--Build/source/libs/icu/icu-src/source/common/rbbiscan.cpp20
-rw-r--r--Build/source/libs/icu/icu-src/source/common/rbbisetb.cpp12
-rw-r--r--Build/source/libs/icu/icu-src/source/common/rbbisetb.h8
-rw-r--r--Build/source/libs/icu/icu-src/source/common/rbbitblb.cpp378
-rw-r--r--Build/source/libs/icu/icu-src/source/common/rbbitblb.h90
-rw-r--r--Build/source/libs/icu/icu-src/source/common/serv.cpp7
-rw-r--r--Build/source/libs/icu/icu-src/source/common/sharedobject.h2
-rw-r--r--Build/source/libs/icu/icu-src/source/common/static_unicode_sets.cpp223
-rw-r--r--Build/source/libs/icu/icu-src/source/common/static_unicode_sets.h119
-rw-r--r--Build/source/libs/icu/icu-src/source/common/stringtriebuilder.cpp2
-rw-r--r--Build/source/libs/icu/icu-src/source/common/ubidi.cpp28
-rw-r--r--Build/source/libs/icu/icu-src/source/common/ubidi_props_data.h1315
-rw-r--r--Build/source/libs/icu/icu-src/source/common/ubiditransform.cpp8
-rw-r--r--Build/source/libs/icu/icu-src/source/common/ucase.cpp54
-rw-r--r--Build/source/libs/icu/icu-src/source/common/ucase.h18
-rw-r--r--Build/source/libs/icu/icu-src/source/common/ucase_props_data.h1503
-rw-r--r--Build/source/libs/icu/icu-src/source/common/uchar_props_data.h6193
-rw-r--r--Build/source/libs/icu/icu-src/source/common/ucln_cmn.h3
-rw-r--r--Build/source/libs/icu/icu-src/source/common/ucnv.cpp12
-rw-r--r--Build/source/libs/icu/icu-src/source/common/ucnv2022.cpp4
-rw-r--r--Build/source/libs/icu/icu-src/source/common/ucnv_bld.cpp11
-rw-r--r--Build/source/libs/icu/icu-src/source/common/ucnv_bld.h3
-rw-r--r--Build/source/libs/icu/icu-src/source/common/ucnv_ct.cpp2
-rw-r--r--Build/source/libs/icu/icu-src/source/common/ucnv_u16.cpp4
-rw-r--r--Build/source/libs/icu/icu-src/source/common/ucnv_u32.cpp12
-rw-r--r--Build/source/libs/icu/icu-src/source/common/ucnv_u8.cpp4
-rw-r--r--Build/source/libs/icu/icu-src/source/common/ucnvhz.cpp4
-rw-r--r--Build/source/libs/icu/icu-src/source/common/ucnvmbcs.cpp4
-rw-r--r--Build/source/libs/icu/icu-src/source/common/ucnvsel.cpp9
-rw-r--r--Build/source/libs/icu/icu-src/source/common/ucol_swp.cpp75
-rw-r--r--Build/source/libs/icu/icu-src/source/common/ucptrie.cpp590
-rw-r--r--Build/source/libs/icu/icu-src/source/common/ucptrie_impl.h289
-rw-r--r--Build/source/libs/icu/icu-src/source/common/ucurr.cpp206
-rw-r--r--Build/source/libs/icu/icu-src/source/common/ucurrimp.h17
-rw-r--r--Build/source/libs/icu/icu-src/source/common/udata.cpp53
-rw-r--r--Build/source/libs/icu/icu-src/source/common/udataswp.h37
-rw-r--r--Build/source/libs/icu/icu-src/source/common/uhash.cpp6
-rw-r--r--Build/source/libs/icu/icu-src/source/common/uinvchar.h16
-rw-r--r--Build/source/libs/icu/icu-src/source/common/ulayout_props_data.h722
-rw-r--r--Build/source/libs/icu/icu-src/source/common/uloc.cpp8
-rw-r--r--Build/source/libs/icu/icu-src/source/common/uloc_keytype.cpp5
-rw-r--r--Build/source/libs/icu/icu-src/source/common/uloc_tag.cpp492
-rw-r--r--Build/source/libs/icu/icu-src/source/common/ulocimp.h32
-rw-r--r--Build/source/libs/icu/icu-src/source/common/umapfile.cpp80
-rw-r--r--Build/source/libs/icu/icu-src/source/common/umapfile.h2
-rw-r--r--Build/source/libs/icu/icu-src/source/common/umutablecptrie.cpp1678
-rw-r--r--Build/source/libs/icu/icu-src/source/common/umutex.h15
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unames.cpp2
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/brkiter.h2
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/bytestream.h4
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/bytestriebuilder.h2
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/caniter.h4
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/casemap.h10
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/char16ptr.h6
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/docmain.h13
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/edits.h176
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/enumset.h3
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/filteredbrk.h10
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/icuplug.h2
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/locid.h370
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/messagepattern.h4
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/normalizer2.h8
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/platform.h40
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/ptypes.h2
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/rbbi.h32
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/stringoptions.h18
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/stringtriebuilder.h11
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/ubidi.h10
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/ubiditransform.h53
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/uchar.h300
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/ucnv.h13
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/uconfig.h13
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/ucpmap.h162
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/ucptrie.h646
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/ucurr.h1
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/uenum.h2
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/umachine.h23
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/umutablecptrie.h241
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/uniset.h20
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/unistr.h9
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/uobject.h3
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/urename.h55
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/uscript.h17
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/uset.h10
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/ustring.h37
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/utf16.h18
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/utypes.h10
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unicode/uvernum.h12
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unifiedcache.cpp2
-rw-r--r--Build/source/libs/icu/icu-src/source/common/uniset.cpp32
-rw-r--r--Build/source/libs/icu/icu-src/source/common/uniset_props.cpp251
-rw-r--r--Build/source/libs/icu/icu-src/source/common/unistr.cpp59
-rw-r--r--Build/source/libs/icu/icu-src/source/common/uprops.cpp51
-rw-r--r--Build/source/libs/icu/icu-src/source/common/uprops.h20
-rw-r--r--Build/source/libs/icu/icu-src/source/common/uresbund.cpp57
-rw-r--r--Build/source/libs/icu/icu-src/source/common/uresdata.h2
-rw-r--r--Build/source/libs/icu/icu-src/source/common/uscript_props.cpp9
-rw-r--r--Build/source/libs/icu/icu-src/source/common/ushape.cpp2
-rw-r--r--Build/source/libs/icu/icu-src/source/common/usprep.cpp10
-rw-r--r--Build/source/libs/icu/icu-src/source/common/ustr_cnv.cpp3
-rw-r--r--Build/source/libs/icu/icu-src/source/common/ustrcase.cpp12
-rw-r--r--Build/source/libs/icu/icu-src/source/common/utext.cpp66
-rw-r--r--Build/source/libs/icu/icu-src/source/common/util.h7
-rw-r--r--Build/source/libs/icu/icu-src/source/common/utrie.h15
-rw-r--r--Build/source/libs/icu/icu-src/source/common/utrie2.cpp132
-rw-r--r--Build/source/libs/icu/icu-src/source/common/utrie2.h39
-rw-r--r--Build/source/libs/icu/icu-src/source/common/utrie2_builder.cpp106
-rw-r--r--Build/source/libs/icu/icu-src/source/common/utrie2_impl.h17
-rw-r--r--Build/source/libs/icu/icu-src/source/common/utrie_swap.cpp344
-rw-r--r--Build/source/libs/icu/icu-src/source/common/uts46.cpp23
-rw-r--r--Build/source/libs/icu/icu-src/source/common/utypes.cpp3
-rw-r--r--Build/source/libs/icu/icu-src/source/common/wintz.cpp378
-rw-r--r--Build/source/libs/icu/icu-src/source/common/wintz.h6
-rw-r--r--Build/source/libs/icu/icu-src/source/config/mh-mingw5
-rw-r--r--Build/source/libs/icu/icu-src/source/config/mh-mingw645
-rw-r--r--Build/source/libs/icu/icu-src/source/config/mh-solaris2
-rwxr-xr-xBuild/source/libs/icu/icu-src/source/configure140
-rw-r--r--Build/source/libs/icu/icu-src/source/configure.ac47
-rw-r--r--Build/source/libs/icu/icu-src/source/data/Makefile.in2
-rw-r--r--Build/source/libs/icu/icu-src/source/data/build.xml17
-rw-r--r--Build/source/libs/icu/icu-src/source/data/cldr-icu-readme.txt22
-rw-r--r--Build/source/libs/icu/icu-src/source/data/icu-config.xml14
-rw-r--r--Build/source/libs/icu/icu-src/source/data/icu4j-readme.txt2
-rw-r--r--Build/source/libs/icu/icu-src/source/data/in/coll/ucadata-implicithan.icubin175244 -> 178456 bytes
-rw-r--r--Build/source/libs/icu/icu-src/source/data/in/coll/ucadata-unihan.icubin515968 -> 519212 bytes
-rw-r--r--Build/source/libs/icu/icu-src/source/data/in/icudt63l.dat (renamed from Build/source/libs/icu/icu-src/source/data/in/icudt61l.dat)bin18453664 -> 18451232 bytes
-rw-r--r--Build/source/libs/icu/icu-src/source/data/in/nfc.nrmbin35384 -> 34856 bytes
-rw-r--r--Build/source/libs/icu/icu-src/source/data/in/nfkc.nrmbin54300 -> 53796 bytes
-rw-r--r--Build/source/libs/icu/icu-src/source/data/in/nfkc_cf.nrmbin51928 -> 51160 bytes
-rw-r--r--Build/source/libs/icu/icu-src/source/data/in/pnames.icubin37595 -> 41268 bytes
-rw-r--r--Build/source/libs/icu/icu-src/source/data/in/ubidi.icubin24648 -> 25756 bytes
-rw-r--r--Build/source/libs/icu/icu-src/source/data/in/ucase.icubin28188 -> 28306 bytes
-rw-r--r--Build/source/libs/icu/icu-src/source/data/in/unames.icubin264500 -> 269616 bytes
-rw-r--r--Build/source/libs/icu/icu-src/source/data/in/uprops.icubin126792 -> 130080 bytes
-rw-r--r--Build/source/libs/icu/icu-src/source/data/in/uts46.nrmbin61068 -> 58168 bytes
-rw-r--r--Build/source/libs/icu/icu-src/source/data/makedata.mak16
-rw-r--r--Build/source/libs/icu/icu-src/source/data/unidata/CaseFolding.txt85
-rw-r--r--Build/source/libs/icu/icu-src/source/data/unidata/DerivedCoreProperties.txt503
-rw-r--r--Build/source/libs/icu/icu-src/source/data/unidata/DerivedNormalizationProps.txt93
-rw-r--r--Build/source/libs/icu/icu-src/source/data/unidata/FractionalUCA.txt73705
-rw-r--r--Build/source/libs/icu/icu-src/source/data/unidata/NormalizationCorrections.txt4
-rw-r--r--Build/source/libs/icu/icu-src/source/data/unidata/NormalizationTest.txt52
-rw-r--r--Build/source/libs/icu/icu-src/source/data/unidata/SpecialCasing.txt8
-rw-r--r--Build/source/libs/icu/icu-src/source/data/unidata/UCARules.txt982
-rw-r--r--Build/source/libs/icu/icu-src/source/data/unidata/UnicodeData.txt778
-rw-r--r--Build/source/libs/icu/icu-src/source/data/unidata/changes.txt504
-rw-r--r--Build/source/libs/icu/icu-src/source/data/unidata/confusables.txt57
-rw-r--r--Build/source/libs/icu/icu-src/source/data/unidata/norm2/nfc.txt17
-rw-r--r--Build/source/libs/icu/icu-src/source/data/unidata/norm2/nfkc.txt2
-rw-r--r--Build/source/libs/icu/icu-src/source/data/unidata/norm2/nfkc_cf.txt81
-rw-r--r--Build/source/libs/icu/icu-src/source/data/unidata/norm2/uts46.txt178
-rw-r--r--Build/source/libs/icu/icu-src/source/data/unidata/ppucd.txt2918
-rw-r--r--Build/source/libs/icu/icu-src/source/extra/uconv/makedata.mak27
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/Makefile.in26
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/affixpatternparser.cpp698
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/affixpatternparser.h402
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/alphaindex.cpp8
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/anytrans.cpp6
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/calendar.cpp2
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/coll.cpp11
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/collationfcd.cpp98
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/collationkeys.cpp12
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/compactdecimalformat.cpp1018
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/csrmbcs.cpp2
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/currpinf.cpp281
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/currunit.cpp38
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/dcfmtimp.h54
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/dcfmtsym.cpp12
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/decfmtst.cpp251
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/decfmtst.h69
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/decimalformatpattern.cpp656
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/decimalformatpattern.h106
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/decimalformatpatternimpl.h35
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/decimfmt.cpp4078
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/decimfmtimpl.cpp1597
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/decimfmtimpl.h549
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/digitaffix.cpp109
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/digitaffix.h104
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/digitaffixesandpadding.cpp175
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/digitaffixesandpadding.h179
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/digitformatter.cpp417
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/digitformatter.h288
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/digitgrouping.cpp59
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/digitgrouping.h112
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/digitinterval.cpp56
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/digitinterval.h159
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/digitlst.cpp1143
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/digitlst.h529
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/double-conversion-strtod.cpp574
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/double-conversion-strtod.h63
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/double-conversion-utils.h4
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/double-conversion.cpp7
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/double-conversion.h2
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/dtfmtsym.cpp6
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/dtitvfmt.cpp6
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/dtitvinf.cpp6
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/dtptngen.cpp694
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/dtptngen_impl.h46
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/erarules.cpp309
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/erarules.h92
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/fmtable.cpp162
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/fmtableimp.h12
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/fphdlimp.cpp21
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/fphdlimp.h26
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/gregocal.cpp6
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/gregoimp.h4
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/i18n.vcxproj89
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/i18n.vcxproj.filters487
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/i18n_uwp.vcxproj93
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/indiancal.cpp105
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/indiancal.h49
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/japancal.cpp466
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/japancal.h14
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/listformatter.cpp (renamed from Build/source/libs/icu/icu-src/source/common/listformatter.cpp)154
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/measfmt.cpp35
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/measunit.cpp155
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/msgfmt.cpp34
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/nfrule.cpp104
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/nfrule.h2
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/nfsubs.cpp25
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_affixutils.cpp62
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_affixutils.h65
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_asformat.cpp105
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_asformat.h107
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_capi.cpp240
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_compact.cpp17
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_compact.h2
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_currencysymbols.cpp123
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_currencysymbols.h65
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_decimalquantity.cpp437
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_decimalquantity.h92
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_decimfmtprops.cpp81
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_decimfmtprops.h79
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_decnum.h77
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_fluent.cpp638
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_formatimpl.cpp354
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_formatimpl.h83
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_grouping.cpp35
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_integerwidth.cpp28
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_longnames.cpp59
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_longnames.h19
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_mapper.cpp508
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_mapper.h206
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_microprops.h82
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_modifiers.cpp184
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_modifiers.h157
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_multiplier.cpp156
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_multiplier.h57
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_notation.cpp15
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_padding.cpp16
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_patternmodifier.cpp322
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_patternmodifier.h86
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_patternstring.cpp323
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_patternstring.h117
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_rounding.cpp195
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_roundingutils.h57
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_scientific.cpp57
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_scientific.h12
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_skeletons.cpp1510
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_skeletons.h327
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_stringbuilder.cpp69
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_stringbuilder.h18
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_types.h148
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_utils.cpp253
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_utils.h144
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/number_utypes.h79
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/numfmt.cpp144
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/numparse_affixes.cpp495
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/numparse_affixes.h255
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/numparse_compositions.cpp107
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/numparse_compositions.h124
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/numparse_currency.cpp188
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/numparse_currency.h74
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/numparse_decimal.cpp458
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/numparse_decimal.h76
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/numparse_impl.cpp361
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/numparse_impl.h109
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/numparse_parsednumber.cpp122
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/numparse_scientific.cpp138
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/numparse_scientific.h45
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/numparse_stringsegment.cpp146
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/numparse_stringsegment.h24
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/numparse_symbols.cpp193
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/numparse_symbols.h173
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/numparse_types.h377
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/numparse_utils.h43
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/numparse_validators.cpp85
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/numparse_validators.h95
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/numrange_fluent.cpp472
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/numrange_impl.cpp486
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/numrange_impl.h114
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/numsys.cpp146
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/numsys_impl.h2
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/olsontz.cpp6
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/pluralaffix.cpp104
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/pluralaffix.h177
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/plurfmt.cpp59
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/plurrule.cpp553
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/plurrule_impl.h187
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/precision.cpp444
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/precision.h323
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/quantityformatter.cpp10
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/rbnf.cpp227
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/rbt.h260
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/rbt_pars.cpp12
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/regexcmp.cpp361
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/region.cpp56
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/reldatefmt.cpp250
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/reldtfmt.cpp6
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/reldtfmt.h1
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/rematch.cpp74
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/rulebasedcollator.cpp10
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/scientificnumberformatter.cpp17
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/scriptset.cpp2
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/shareddateformatsymbols.h5
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/significantdigitinterval.h92
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/smallintformatter.cpp2623
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/smallintformatter.h90
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/smpdtfmt.cpp422
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/timezone.cpp15
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/transreg.cpp6
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/tzfmt.cpp6
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/tzgnames.cpp2
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/tznames.cpp2
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/tznames_impl.cpp14
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/ucln_in.h3
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/ucol_res.cpp14
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/udat.cpp2
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/ulistformatter.cpp (renamed from Build/source/libs/icu/icu-src/source/common/ulistformatter.cpp)0
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/ulocdata.cpp2
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/unicode/alphaindex.h11
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/unicode/calendar.h161
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/unicode/coll.h14
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/unicode/compactdecimalformat.h286
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/unicode/currpinf.h15
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/unicode/currunit.h11
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/unicode/datefmt.h10
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/unicode/dcfmtsym.h17
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/unicode/decimfmt.h795
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/unicode/dtptngen.h16
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/unicode/fmtable.h35
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/unicode/fpositer.h8
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/unicode/gender.h7
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/unicode/listformatter.h (renamed from Build/source/libs/icu/icu-src/source/common/unicode/listformatter.h)36
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/unicode/measfmt.h14
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/unicode/measunit.h48
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/unicode/msgfmt.h11
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/unicode/nounit.h12
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/unicode/numberformatter.h1583
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/unicode/numberrangeformatter.h866
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/unicode/numfmt.h43
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/unicode/plurfmt.h12
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/unicode/plurrule.h29
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/unicode/rbnf.h13
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/unicode/region.h2
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/unicode/reldatefmt.h14
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/unicode/scientificnumberformatter.h5
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/unicode/smpdtfmt.h43
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/unicode/timezone.h2
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/unicode/translit.h295
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/unicode/tzfmt.h6
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/unicode/ucal.h13
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/unicode/ucol.h3
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/unicode/ugender.h4
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/unicode/ulistformatter.h (renamed from Build/source/libs/icu/icu-src/source/common/unicode/ulistformatter.h)20
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/unicode/unum.h31
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/unicode/unumberformatter.h729
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/unicode/usearch.h7
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/unicode/uspoof.h48
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/upluralrules.cpp37
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/uregex.cpp4
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/usearch.cpp2
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/uspoof.cpp195
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/uspoof_build.cpp21
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/uspoof_conf.cpp37
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/uspoof_impl.cpp50
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/uspoof_impl.h5
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/valueformatter.cpp223
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/valueformatter.h161
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/visibledigits.cpp186
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/visibledigits.h162
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/vtzone.cpp2
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/windtfmt.cpp3
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/zonemeta.cpp17
-rw-r--r--Build/source/libs/icu/icu-src/source/io/io.vcxproj13
-rw-r--r--Build/source/libs/icu/icu-src/source/io/ufmt_cmn.cpp6
-rw-r--r--Build/source/libs/icu/icu-src/source/io/uprintf.cpp2
-rw-r--r--Build/source/libs/icu/icu-src/source/io/ustream.cpp2
-rw-r--r--Build/source/libs/icu/icu-src/source/layoutex/layout/ParagraphLayout.h4
-rw-r--r--Build/source/libs/icu/icu-src/source/layoutex/layoutex.vcxproj10
-rwxr-xr-xBuild/source/libs/icu/icu-src/source/runConfigureICU8
-rwxr-xr-xBuild/source/libs/icu/icu-src/source/samples/all/samplecheck.bat247
-rw-r--r--Build/source/libs/icu/icu-src/source/samples/date/date.c23
-rw-r--r--Build/source/libs/icu/icu-src/source/stubdata/stubdata.vcxproj13
-rw-r--r--Build/source/libs/icu/icu-src/source/test/Makefile.in6
-rw-r--r--Build/source/libs/icu/icu-src/source/test/cintltst/Makefile.in5
-rw-r--r--Build/source/libs/icu/icu-src/source/test/cintltst/callcoll.c53
-rw-r--r--Build/source/libs/icu/icu-src/source/test/cintltst/calltest.c2
-rw-r--r--Build/source/libs/icu/icu-src/source/test/cintltst/cbiapts.c13
-rw-r--r--Build/source/libs/icu/icu-src/source/test/cintltst/cbiditst.c15
-rw-r--r--Build/source/libs/icu/icu-src/source/test/cintltst/ccaltst.c2
-rw-r--r--Build/source/libs/icu/icu-src/source/test/cintltst/cintltst.c34
-rw-r--r--Build/source/libs/icu/icu-src/source/test/cintltst/cintltst.h12
-rw-r--r--Build/source/libs/icu/icu-src/source/test/cintltst/cintltst.vcxproj4
-rw-r--r--Build/source/libs/icu/icu-src/source/test/cintltst/cintltst.vcxproj.filters8
-rw-r--r--Build/source/libs/icu/icu-src/source/test/cintltst/cldrtest.c2
-rw-r--r--Build/source/libs/icu/icu-src/source/test/cintltst/cloctst.c131
-rw-r--r--Build/source/libs/icu/icu-src/source/test/cintltst/cloctst.h3
-rw-r--r--Build/source/libs/icu/icu-src/source/test/cintltst/cmsgtst.c20
-rw-r--r--Build/source/libs/icu/icu-src/source/test/cintltst/cnmdptst.c24
-rw-r--r--Build/source/libs/icu/icu-src/source/test/cintltst/cnormtst.c4
-rw-r--r--Build/source/libs/icu/icu-src/source/test/cintltst/cnumtst.c183
-rw-r--r--Build/source/libs/icu/icu-src/source/test/cintltst/crelativedateformattest.c38
-rw-r--r--Build/source/libs/icu/icu-src/source/test/cintltst/cucdapi.c9
-rw-r--r--Build/source/libs/icu/icu-src/source/test/cintltst/cucdtst.c56
-rw-r--r--Build/source/libs/icu/icu-src/source/test/cintltst/cutiltst.c2
-rw-r--r--Build/source/libs/icu/icu-src/source/test/cintltst/putiltst.c14
-rw-r--r--Build/source/libs/icu/icu-src/source/test/cintltst/trie2test.c28
-rw-r--r--Build/source/libs/icu/icu-src/source/test/cintltst/ucptrietest.c1577
-rw-r--r--Build/source/libs/icu/icu-src/source/test/cintltst/unumberformattertst.c190
-rw-r--r--Build/source/libs/icu/icu-src/source/test/cintltst/uregiontest.c2
-rw-r--r--Build/source/libs/icu/icu-src/source/test/depstest/dependencies.py2
-rw-r--r--Build/source/libs/icu/icu-src/source/test/depstest/dependencies.txt152
-rw-r--r--Build/source/libs/icu/icu-src/source/test/depstest/depstest.py2
-rw-r--r--Build/source/libs/icu/icu-src/source/test/hdrtst/cxxfiles.txt1
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/Makefile.in6
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/apicoll.cpp18
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/bidiconf.cpp14
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/bytestrietest.cpp18
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/calregts.cpp10
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/collationtest.cpp30
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/compactdecimalformattest.cpp198
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/cpdtrtst.h1
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/datadrivennumberformattestsuite.cpp2
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/datadrivennumberformattestsuite.h1
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/dcfmapts.cpp595
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/dcfmapts.h1
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/dcfmtest.cpp5
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/dtfmttst.cpp22
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/dtfmttst.h1
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/dtifmtts.cpp28
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/dtptngts.cpp2
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/erarulestest.cpp130
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/erarulestest.h23
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/intltest.cpp49
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/intltest.h9
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/intltest.vcxproj14
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/intltest.vcxproj.filters37
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/itformat.cpp30
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/itrbnf.cpp32
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/itrbnf.h1
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/itspoof.cpp72
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/itspoof.h6
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/itutil.cpp152
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/itutil.h1
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/listformattertest.cpp363
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/listformattertest.h52
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/loctest.cpp428
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/loctest.h21
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/measfmttest.cpp183
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/numberformattesttuple.cpp25
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/numberformattesttuple.h1
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/numbertest.h125
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/numbertest_affixutils.cpp29
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/numbertest_api.cpp935
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/numbertest_decimalquantity.cpp138
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/numbertest_doubleconversion.cpp2
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/numbertest_modifiers.cpp10
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/numbertest_parse.cpp354
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/numbertest_patternmodifier.cpp27
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/numbertest_patternstring.cpp46
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/numbertest_range.cpp809
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/numbertest_skeletons.cpp272
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/numbertest_stringbuilder.cpp6
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/numbertest_stringsegment.cpp94
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/numfmtdatadriventest.cpp505
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/numfmtspectest.cpp50
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/numfmtst.cpp1812
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/numfmtst.h68
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/numrgts.cpp230
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/plurfmts.cpp25
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/plurults.cpp12
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/rbbimonkeytest.cpp24
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/rbbimonkeytest.h15
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/rbbitst.cpp380
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/rbbitst.h5
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/regiontst.cpp2
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/reldatefmttest.cpp421
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/static_unisets_test.cpp119
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/strcase.cpp170
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/strtest.cpp22
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/testidna.cpp42
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/tmsgfmt.cpp54
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/tmsgfmt.h1
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/tsdcfmsy.cpp57
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/tsmthred.cpp158
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/tsmthred.h3
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/tstnorm.cpp63
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/ucdtest.cpp130
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/ucdtest.h5
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/ucharstrietest.cpp18
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/uobjtest.cpp1
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/ustrtest.cpp85
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/ustrtest.h1
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/uts46test.cpp145
-rw-r--r--Build/source/libs/icu/icu-src/source/test/intltest/windttst.cpp3
-rw-r--r--Build/source/libs/icu/icu-src/source/test/iotest/filetst.c2
-rw-r--r--Build/source/libs/icu/icu-src/source/test/iotest/iotest.cpp6
-rw-r--r--Build/source/libs/icu/icu-src/source/test/iotest/trnstst.c2
-rw-r--r--Build/source/libs/icu/icu-src/source/test/perf/DateFmtPerf/DateFmtPerf.cpp2
-rw-r--r--Build/source/libs/icu/icu-src/source/test/perf/normperf/Makefile.in16
-rw-r--r--Build/source/libs/icu/icu-src/source/test/perf/normperf/simplenormperf.cpp352
-rw-r--r--Build/source/libs/icu/icu-src/source/test/testdata/BidiTest.txt6
-rw-r--r--Build/source/libs/icu/icu-src/source/test/testdata/CollationTest_NON_IGNORABLE_SHORT.txt3469
-rw-r--r--Build/source/libs/icu/icu-src/source/test/testdata/CollationTest_SHIFTED_SHORT.txt4017
-rw-r--r--Build/source/libs/icu/icu-src/source/test/testdata/GraphemeBreakTest.txt1148
-rw-r--r--Build/source/libs/icu/icu-src/source/test/testdata/IdnaTest.txt7848
-rw-r--r--Build/source/libs/icu/icu-src/source/test/testdata/IdnaTestV2.txt6331
-rw-r--r--Build/source/libs/icu/icu-src/source/test/testdata/LineBreakTest.txt246
-rw-r--r--Build/source/libs/icu/icu-src/source/test/testdata/NumberFormatTestCases.txt10
-rw-r--r--Build/source/libs/icu/icu-src/source/test/testdata/SentenceBreakTest.txt6
-rw-r--r--Build/source/libs/icu/icu-src/source/test/testdata/WordBreakTest.txt718
-rw-r--r--Build/source/libs/icu/icu-src/source/test/testdata/break_rules/grapheme.txt12
-rw-r--r--Build/source/libs/icu/icu-src/source/test/testdata/break_rules/line.txt57
-rw-r--r--Build/source/libs/icu/icu-src/source/test/testdata/break_rules/line_loose.txt61
-rw-r--r--Build/source/libs/icu/icu-src/source/test/testdata/break_rules/line_loose_cj.txt59
-rw-r--r--Build/source/libs/icu/icu-src/source/test/testdata/break_rules/line_normal.txt57
-rw-r--r--Build/source/libs/icu/icu-src/source/test/testdata/break_rules/line_normal_cj.txt57
-rw-r--r--Build/source/libs/icu/icu-src/source/test/testdata/break_rules/word.txt17
-rw-r--r--Build/source/libs/icu/icu-src/source/test/testdata/break_rules/word_POSIX.txt17
-rw-r--r--Build/source/libs/icu/icu-src/source/test/testdata/format.txt6
-rw-r--r--Build/source/libs/icu/icu-src/source/test/testdata/numberformattestspecification.txt765
-rw-r--r--Build/source/libs/icu/icu-src/source/test/testdata/rbbitst.txt66
-rw-r--r--Build/source/libs/icu/icu-src/source/test/testdata/regextst.txt58
-rw-r--r--Build/source/libs/icu/icu-src/source/test/testdata/root.txt4
-rw-r--r--Build/source/libs/icu/icu-src/source/test/testdata/structLocale.txt864
-rw-r--r--Build/source/libs/icu/icu-src/source/test/testdata/testnorm.txt16
-rw-r--r--Build/source/libs/icu/icu-src/source/tools/ctestfw/ctestfw.vcxproj10
-rw-r--r--Build/source/libs/icu/icu-src/source/tools/ctestfw/tstdtmod.cpp93
-rw-r--r--Build/source/libs/icu/icu-src/source/tools/ctestfw/unicode/testlog.h22
-rw-r--r--Build/source/libs/icu/icu-src/source/tools/gencfu/gencfu.cpp2
-rw-r--r--Build/source/libs/icu/icu-src/source/tools/gencnval/gencnval.c2
-rw-r--r--Build/source/libs/icu/icu-src/source/tools/gennorm2/gennorm2.cpp5
-rw-r--r--Build/source/libs/icu/icu-src/source/tools/gennorm2/n2builder.cpp232
-rw-r--r--Build/source/libs/icu/icu-src/source/tools/gennorm2/n2builder.h10
-rw-r--r--Build/source/libs/icu/icu-src/source/tools/gennorm2/norms.cpp42
-rw-r--r--Build/source/libs/icu/icu-src/source/tools/gennorm2/norms.h6
-rw-r--r--Build/source/libs/icu/icu-src/source/tools/genrb/parse.cpp5
-rw-r--r--Build/source/libs/icu/icu-src/source/tools/genrb/reslist.cpp2
-rwxr-xr-xBuild/source/libs/icu/icu-src/source/tools/genren/genren.pl14
-rw-r--r--Build/source/libs/icu/icu-src/source/tools/gensprep/gensprep.c2
-rwxr-xr-xBuild/source/libs/icu/icu-src/source/tools/icu-file-utf8-check.py104
-rw-r--r--Build/source/libs/icu/icu-src/source/tools/icu-svnprops-check.py189
-rw-r--r--Build/source/libs/icu/icu-src/source/tools/pkgdata/pkgdata.cpp9
-rw-r--r--Build/source/libs/icu/icu-src/source/tools/toolutil/filestrm.cpp4
-rw-r--r--Build/source/libs/icu/icu-src/source/tools/toolutil/filetools.cpp2
-rw-r--r--Build/source/libs/icu/icu-src/source/tools/toolutil/package.cpp4
-rw-r--r--Build/source/libs/icu/icu-src/source/tools/toolutil/swapimpl.cpp10
-rw-r--r--Build/source/libs/icu/icu-src/source/tools/toolutil/toolutil.vcxproj10
-rw-r--r--Build/source/libs/icu/icu-src/source/tools/toolutil/udbgutil.cpp7
-rw-r--r--Build/source/libs/icu/icu-src/source/tools/toolutil/unewdata.cpp6
-rw-r--r--Build/source/libs/icu/icu-src/source/tools/toolutil/writesrc.cpp109
-rw-r--r--Build/source/libs/icu/icu-src/source/tools/toolutil/writesrc.h30
-rw-r--r--Build/source/libs/icu/icu-src/source/tools/tzcode/icuzones90
608 files changed, 110868 insertions, 81516 deletions
diff --git a/Build/source/libs/icu/icu-src/.gitignore b/Build/source/libs/icu/icu-src/.gitignore
deleted file mode 100644
index 372885aef39..00000000000
--- a/Build/source/libs/icu/icu-src/.gitignore
+++ /dev/null
@@ -1,90 +0,0 @@
-# Copyright (C) 2016 and later: Unicode, Inc. and others.
-# License & terms of use: http://www.unicode.org/copyright.html
-Makefile
-*.o
-*.d
-bin/
-*.1
-*.8
-*.ao
-*.dylib
-lib/
-bin64/
-lib64/
-bin32uwp/
-lib32uwp/
-bin64uwp/
-lib64uwp/
-commondata/
-
-icudefs.mk
-pkgdata.inc
-common/svchook.mk
-config.log
-config.status
-config/Makefile.inc
-config/icu-config
-config/icu*.pc
-config/icucross.inc
-config/icucross.mk
-config/pkgdata.inc
-config/pkgdataMakefile
-data/build-dir
-data/build-local
-data/icupkg.inc
-data/out/
-data/data/
-data/packagedata
-data/pkgdataMakefile
-extra/uconv/pkgdata.inc
-extra/uconv/pkgdataMakefile
-extra/uconv/uconvmsg/
-samples/cal/icucal
-samples/date/icudate
-stubdata/libicudata.so*
-test/testdata/pkgdataMakefile
-tools/ctestfw/libicutest.so*
-tools/gentest/gentest
-tools/icuinfo/icuinfo
-*.lib
-*.dll
-*.exp
-/source/common/svchook.mk
-/source/config/Makefile.inc
-/source/config/icu-config
-/source/config/icu-i18n.pc
-/source/config/icu-io.pc
-/source/config/icu-uc.pc
-/source/config/icu.pc
-/source/config/icucross.inc
-/source/config/icucross.mk
-/source/config/pkgdataMakefile
-/source/data/build-dir
-/source/data/build-local
-/source/data/icupkg.inc
-/source/data/out/
-/source/data/packagedata
-/source/data/pkgdataMakefile
-/source/extra/uconv/pkgdataMakefile
-/source/extra/uconv/uconvmsg/
-/source/samples/cal/icucal
-/source/samples/date/icudate
-/source/test/cintltst/cintltst
-/source/test/intltest/intltest
-/source/test/iotest/iotest
-/source/test/testdata/out/
-/source/test/testdata/pkgdataMakefile
-/source/tools/gentest/gentest
-/source/tools/icuinfo/icuinfo
-
-*.ncb
-*.opt
-*.suo
-*.sdf
-*.opensdf
-ipch
-.vs
-Debug
-*.db
-*.opendb
-
diff --git a/Build/source/libs/icu/icu-src/APIChangeReport.html b/Build/source/libs/icu/icu-src/APIChangeReport.html
index d17133d90b3..155b6c7d0a5 100644
--- a/Build/source/libs/icu/icu-src/APIChangeReport.html
+++ b/Build/source/libs/icu/icu-src/APIChangeReport.html
@@ -5,31 +5,31 @@
-->
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>ICU4C API Comparison: ICU 60 (update #1: 60.2) with ICU 61</title>
+<title>ICU4C API Comparison: ICU 62 with ICU 63</title>
<link type="text/css" href="icu4c.css" rel="stylesheet">
</head>
<body>
<a name="#_top"></a>
-<h1>ICU4C API Comparison: ICU 60 (update #1: 60.2) with ICU 61</h1>
+<h1>ICU4C API Comparison: ICU 62 with ICU 63</h1>
<div id="toc">
<ul>
<li>
-<a href="#removed">Removed from ICU 60</a>
+<a href="#removed">Removed from ICU 62</a>
</li>
<li>
-<a href="#deprecated">Deprecated or Obsoleted in ICU 61</a>
+<a href="#deprecated">Deprecated or Obsoleted in ICU 63</a>
</li>
<li>
-<a href="#changed">Changed in ICU 61</a>
+<a href="#changed">Changed in ICU 63</a>
</li>
<li>
-<a href="#promoted">Promoted to stable in ICU 61</a>
+<a href="#promoted">Promoted to stable in ICU 63</a>
</li>
<li>
-<a href="#added">Added in ICU 61</a>
+<a href="#added">Added in ICU 63</a>
</li>
<li>
-<a href="#other">Other existing drafts in ICU 61</a>
+<a href="#other">Other existing drafts in ICU 63</a>
</li>
<li>
<a href="#purevirtual">Signature Simplifications</a><sup style="background-color: yellow; font-size: smallest;">(new)</sup>
@@ -38,795 +38,1921 @@
<hr>
</div>
<a name="removed"></a>
-<h2>Removed from ICU 60</h2>
+<h2>Removed from ICU 62</h2>
<table BORDER="1" class="genTable">
<THEAD>
<tr>
-<th>File</th><th>API</th><th>ICU 60</th><th>ICU 61</th>
+<th>File</th><th>API</th><th>ICU 62</th><th>ICU 63</th>
</tr>
</THEAD>
+
+<!-- delete whole "Removed from ICU 62 contents.
+
<tr class="row1">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::resolveUnitPerUnit(const MeasureUnit&amp;, const MeasureUnit&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">enumset.h</td><td class="proto">UBool icu::EnumSet&lt; T, minValue, limitValue &gt;::isValidEnum(T) const</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
<span class=""><span></span></span></td>
</tr>
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::adoptSymbols(const NumberingSystem*)</td><td class="">Draft<br>ICU 60</td><td>(missing)<br>actually, just<br>removed “const”<br>from one param<br>
+<td class="file">enumset.h</td><td class="proto">UBool icu::EnumSet&lt; T, minValue, limitValue &gt;::isValidValue(int32_t) const</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
<span class=""><span></span></span></td>
</tr>
<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::adoptUnit(const icu::MeasureUnit*)</td><td class="">Draft<br>ICU 60</td><td>(missing)<br>actually, just<br>removed “const”<br>from one param<br>
+<td class="file">enumset.h</td><td class="proto">const EnumSet&lt;T, minValue, limitValue&gt;&amp; icu::EnumSet&lt; T, minValue, limitValue &gt;::operator=(const EnumSet&lt;,, limitValue &gt;&amp;)</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
<span class=""><span></span></span></td>
</tr>
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::grouping(const Grouper&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">enumset.h</td><td class="proto">icu::EnumSet&lt; T, minValue, limitValue &gt;::EnumSet()</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
<span class=""><span></span></span></td>
</tr>
<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Grouper icu::number::Grouper::defaults()</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">enumset.h</td><td class="proto">icu::EnumSet&lt; T, minValue, limitValue &gt;::EnumSet(const EnumSet&lt;,, limitValue &gt;&amp;)</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
<span class=""><span></span></span></td>
</tr>
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Grouper icu::number::Grouper::minTwoDigits()</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">enumset.h</td><td class="proto">icu::EnumSet&lt; T, minValue, limitValue &gt;::~EnumSet()</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
<span class=""><span></span></span></td>
</tr>
<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Grouper icu::number::Grouper::none()</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">enumset.h</td><td class="proto">int32_t icu::EnumSet&lt; T, minValue, limitValue &gt;::contains(T) const</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
<span class=""><span></span></span></td>
</tr>
<tr class="row0">
-<td class="file">utrans.h</td><td class="proto">void utrans_trans(const UTransliterator*, UReplaceable*, UReplaceableCallbacks*, int32_t, int32_t*, UErrorCode*)</td><td class="stabchange">Stable<br>ICU 2.0</td><td>(missing)<br>actually, just<br>added “const”<br>to one param<br>
+<td class="file">enumset.h</td><td class="proto">int32_t icu::EnumSet&lt; T, minValue, limitValue &gt;::get(T) const</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
<span class=""><span></span></span></td>
</tr>
<tr class="row1">
-<td class="file">utrans.h</td><td class="proto">void utrans_transIncremental(const UTransliterator*, UReplaceable*, UReplaceableCallbacks*, UTransPosition*, UErrorCode*)</td><td class="stabchange">Stable<br>ICU 2.0</td><td>(missing)<br>actually, just<br>added “const”<br>to one param<br>
+<td class="file">enumset.h</td><td class="proto">uint32_t icu::EnumSet&lt; T, minValue, limitValue &gt;::getAll() const</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
<span class=""><span></span></span></td>
</tr>
+<tr class="row0">
+<td class="file">enumset.h</td><td class="proto">void icu::EnumSet&lt; T, minValue, limitValue &gt;::add(T)</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">enumset.h</td><td class="proto">void icu::EnumSet&lt; T, minValue, limitValue &gt;::clear()</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">enumset.h</td><td class="proto">void icu::EnumSet&lt; T, minValue, limitValue &gt;::remove(T)</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">enumset.h</td><td class="proto">void icu::EnumSet&lt; T, minValue, limitValue &gt;::set(T, int32_t)</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Appendable&amp; icu::number::FormattedNumber::appendTo(Appendable&amp;, UErrorCode&amp;)</td><td class="">Draft<br>ICU 62</td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::grouping(UGroupingStrategy) const&amp;</td><td class="">Draft<br>ICU 61</td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::grouping(UGroupingStrategy)&amp;&amp;</td><td class="">Draft<br>ICU 62</td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">icu::number::impl::Grouper::Grouper(int16_t, int16_t, int16_t, UGroupingStrategy)</td><td class="">Internal</td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Grouper icu::number::impl::Grouper::forStrategy(UGroupingStrategy)</td><td class="">Internal</td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">plurfmt.h</td><td class="proto">UnicodeString icu::PluralFormat::PluralSelector::select(void*, double, UErrorCode&amp;) const</td><td class="">Internal</td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">plurfmt.h</td><td class="proto">UnicodeString icu::PluralFormat::PluralSelectorAdapter::select(void*, double, UErrorCode&amp;) const</td><td class="">Internal</td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">plurfmt.h</td><td class="proto">UnicodeString&amp; icu::PluralFormat::format(const Formattable&amp;, double, UnicodeString&amp;, FieldPosition&amp;, UErrorCode&amp;) const</td><td class="">Internal</td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">plurfmt.h</td><td class="proto">icu::PluralFormat::PluralFormat()</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">plurfmt.h</td><td class="proto">icu::PluralFormat::PluralSelector::~PluralSelector()</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">plurfmt.h</td><td class="proto">icu::PluralFormat::PluralSelectorAdapter::PluralSelectorAdapter()</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">plurfmt.h</td><td class="proto">icu::PluralFormat::PluralSelectorAdapter::~PluralSelectorAdapter()</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">plurfmt.h</td><td class="proto"><tt>static</tt> int32_t icu::PluralFormat::findSubMessage(const MessagePattern&amp;, int32_t, const PluralSelector&amp;, void*, double, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">plurfmt.h</td><td class="proto">void icu::PluralFormat::PluralSelectorAdapter::reset()</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">plurfmt.h</td><td class="proto">void icu::PluralFormat::copyObjects(const PluralFormat&amp;)</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">plurfmt.h</td><td class="proto">void icu::PluralFormat::init(const PluralRules*, UPluralType, UErrorCode&amp;)</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">plurfmt.h</td><td class="proto">void icu::PluralFormat::parseType(const UnicodeString&amp;, const NFRule*, Formattable&amp;, FieldPosition&amp;) const</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">stringtriebuilder.h</td><td class="proto"><tt>static</tt> UBool icu::StringTrieBuilder::equalNodes(const void*, const void*)</td><td class="">Internal</td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">stringtriebuilder.h</td><td class="proto"><tt>static</tt> UBool icu::StringTrieBuilder::hashNode(const void*)</td><td class="">Internal</td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">uconfig.h</td><td class="proto"><tt>#define</tt> UCONFIG_FORMAT_FASTPATHS_49</td><td class="">Internal</td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UGroupingStrategy::UNUM_GROUPING_AUTO</td><td class="">Draft<br>ICU 61</td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UGroupingStrategy::UNUM_GROUPING_COUNT</td><td class="">Internal<br>ICU 62</td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UGroupingStrategy::UNUM_GROUPING_MIN2</td><td class="">Draft<br>ICU 61</td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UGroupingStrategy::UNUM_GROUPING_OFF</td><td class="">Draft<br>ICU 61</td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UGroupingStrategy::UNUM_GROUPING_ON_ALIGNED</td><td class="">Draft<br>ICU 61</td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UGroupingStrategy::UNUM_GROUPING_THOUSANDS</td><td class="">Draft<br>ICU 61</td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">uspoof.h</td><td class="proto">U_DEFINE_LOCAL_OPEN_POINTER(LocalUSpoofCheckResultPointer,,)</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+
+-->
+
</table>
<P></P>
<a href="#_top">(jump back to top)</a>
<hr>
<a name="deprecated"></a>
-<h2>Deprecated or Obsoleted in ICU 61</h2>
+<h2>Deprecated or Obsoleted in ICU 63</h2>
<table BORDER="1" class="genTable">
<THEAD>
<tr>
-<th>File</th><th>API</th><th>ICU 60</th><th>ICU 61</th>
+<th>File</th><th>API</th><th>ICU 62</th><th>ICU 63</th>
</tr>
</THEAD>
-<tr>
-<td></td><td></td><td></td><td></td>
-</tr>
</table>
<P></P>
<a href="#_top">(jump back to top)</a>
<hr>
<a name="changed"></a>
-<h2>Changed in ICU 61 (old, new)</h2>
+<h2>Changed in ICU 63 (old, new)</h2>
<table BORDER="1" class="genTable">
<THEAD>
<tr>
-<th>File</th><th>API</th><th>ICU 60</th><th>ICU 61</th>
+<th>File</th><th>API</th><th>ICU 62</th><th>ICU 63</th>
</tr>
</THEAD>
<tr class="row1">
-<td class="file">casemap.h</td><td class="proto"><tt>static</tt> int32_t icu::CaseMap::fold(uint32_t, const char16_t*, int32_t, char16_t*, int32_t, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">bytestream.h</td><td class="proto">icu::StringByteSink&lt; StringClass &gt;::StringByteSink(StringClass*, int32_t)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">casemap.h</td><td class="proto"><tt>static</tt> int32_t icu::CaseMap::toLower(const char*, uint32_t, const char16_t*, int32_t, char16_t*, int32_t, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">casemap.h</td><td class="proto"><tt>static</tt> void icu::CaseMap::utf8Fold(uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">casemap.h</td><td class="proto"><tt>static</tt> int32_t icu::CaseMap::toTitle(const char*, uint32_t, BreakIterator*, const char16_t*, int32_t, char16_t*, int32_t, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">casemap.h</td><td class="proto"><tt>static</tt> void icu::CaseMap::utf8ToLower(const char*, uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">casemap.h</td><td class="proto"><tt>static</tt> int32_t icu::CaseMap::toUpper(const char*, uint32_t, const char16_t*, int32_t, char16_t*, int32_t, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">casemap.h</td><td class="proto"><tt>static</tt> void icu::CaseMap::utf8ToTitle(const char*, uint32_t, BreakIterator*, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">casemap.h</td><td class="proto"><tt>static</tt> int32_t icu::CaseMap::utf8Fold(uint32_t, const char*, int32_t, char*, int32_t, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">casemap.h</td><td class="proto"><tt>static</tt> void icu::CaseMap::utf8ToUpper(const char*, uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">casemap.h</td><td class="proto"><tt>static</tt> int32_t icu::CaseMap::utf8ToLower(const char*, uint32_t, const char*, int32_t, char*, int32_t, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">currunit.h</td><td class="proto">icu::CurrencyUnit::CurrencyUnit()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">casemap.h</td><td class="proto"><tt>static</tt> int32_t icu::CaseMap::utf8ToTitle(const char*, uint32_t, BreakIterator*, const char*, int32_t, char*, int32_t, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">currunit.h</td><td class="proto">icu::CurrencyUnit::CurrencyUnit(const MeasureUnit&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">casemap.h</td><td class="proto"><tt>static</tt> int32_t icu::CaseMap::utf8ToUpper(const char*, uint32_t, const char*, int32_t, char*, int32_t, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">dcfmtsym.h</td><td class="proto">icu::DecimalFormatSymbols::DecimalFormatSymbols(const Locale&amp;, const NumberingSystem&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">char16ptr.h</td><td class="proto">char16_t* icu::Char16Ptr::get()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">edits.h</td><td class="proto">Edits&amp; icu::Edits::mergeAndAppend(const Edits&amp;, const Edits&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">char16ptr.h</td><td class="proto">const char16_t* icu::ConstChar16Ptr::get()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">edits.h</td><td class="proto">Edits&amp; icu::Edits::operator=(Edits&amp;&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">char16ptr.h</td><td class="proto">icu::Char16Ptr::Char16Ptr(char16_t*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">edits.h</td><td class="proto">Edits&amp; icu::Edits::operator=(const Edits&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">char16ptr.h</td><td class="proto">icu::Char16Ptr::Char16Ptr(std::nullptr_t)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">edits.h</td><td class="proto">icu::Edits::Edits(Edits&amp;&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">char16ptr.h</td><td class="proto">icu::Char16Ptr::Char16Ptr(uint16_t*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">edits.h</td><td class="proto">icu::Edits::Edits(const Edits&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">char16ptr.h</td><td class="proto">icu::Char16Ptr::Char16Ptr(wchar_t*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">edits.h</td><td class="proto">int32_t icu::Edits::numberOfChanges() const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">char16ptr.h</td><td class="proto">icu::Char16Ptr::operator char16_t* ()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">filteredbrk.h</td><td class="proto">BreakIterator* icu::FilteredBreakIteratorBuilder::wrapIteratorWithFilter(BreakIterator*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">char16ptr.h</td><td class="proto">icu::Char16Ptr::~Char16Ptr()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">filteredbrk.h</td><td class="proto"><tt>static</tt> FilteredBreakIteratorBuilder* icu::FilteredBreakIteratorBuilder::createEmptyInstance(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">char16ptr.h</td><td class="proto">icu::ConstChar16Ptr::ConstChar16Ptr(const char16_t*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">normalizer2.h</td><td class="proto">UBool icu::FilteredNormalizer2::isNormalizedUTF8(StringPiece, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">char16ptr.h</td><td class="proto">icu::ConstChar16Ptr::ConstChar16Ptr(const std::nullptr_t)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">normalizer2.h</td><td class="proto">UBool icu::Normalizer2::isNormalizedUTF8(StringPiece, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">char16ptr.h</td><td class="proto">icu::ConstChar16Ptr::ConstChar16Ptr(const uint16_t*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">normalizer2.h</td><td class="proto">void icu::FilteredNormalizer2::normalizeUTF8(uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">char16ptr.h</td><td class="proto">icu::ConstChar16Ptr::ConstChar16Ptr(const wchar_t*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">normalizer2.h</td><td class="proto">void icu::Normalizer2::normalizeUTF8(uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
+
+
+<!-- start of edited numberformatter stuff -->
+
<tr class="row1">
-<td class="file">char16ptr.h</td><td class="proto">icu::ConstChar16Ptr::operator const char16_t* ()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">numberformatter.h</td><td class="proto">Appendable&amp; icu::number::FormattedNumber::appendTo(Appendable&amp;, UErrorCode&amp;) <b><i>const</i></b></td>
+<td colspan="2" align="center">Draft (const)<br> ICU 62 </td>
</tr>
+
<tr class="row0">
-<td class="file">char16ptr.h</td><td class="proto">icu::ConstChar16Ptr::~ConstChar16Ptr()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::grouping(U<b><i>Number</i></b>GroupingStrategy) const&amp;</td>
+<td colspan="2" align="center">Draft (rename)<br>ICU 61 </td>
</tr>
+
<tr class="row1">
-<td class="file">edits.h</td><td class="proto">Iterator icu::Edits::getCoarseChangesIterator()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::grouping(U<b><i>Number</i></b>GroupingStrategy)&amp;&amp;</td>
+<td colspan="2" align="center">Draft (rename)<br>ICU 62 </td>
+</tr>
+
+<tr class="row0"> <td class="proto" colspan="4">&nbsp; </td> </tr>
+<!-- End of edited numberformatter stufff -->
+
+<tr class="row1">
+<td class="file">numfmt.h</td><td class="proto">ERoundingMode icu::NumberFormat::getRoundingMode() const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">edits.h</td><td class="proto">Iterator icu::Edits::getCoarseIterator()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">numfmt.h</td><td class="proto">void icu::NumberFormat::setRoundingMode(ERoundingMode)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">edits.h</td><td class="proto">Iterator icu::Edits::getFineChangesIterator()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">rbnf.h</td><td class="proto">ERoundingMode icu::RuleBasedNumberFormat::getRoundingMode() const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">edits.h</td><td class="proto">Iterator icu::Edits::getFineIterator()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">rbnf.h</td><td class="proto">void icu::RuleBasedNumberFormat::setRoundingMode(ERoundingMode)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">edits.h</td><td class="proto">UBool icu::Edits::copyErrorTo(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_EDITS_NO_RESET</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">edits.h</td><td class="proto">UBool icu::Edits::hasChanges()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_OMIT_UNCHANGED_TEXT</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">edits.h</td><td class="proto">icu::Edits::Edits()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_TITLECASE_ADJUST_TO_CASED</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">edits.h</td><td class="proto">icu::Edits::~Edits()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_TITLECASE_SENTENCES</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">edits.h</td><td class="proto">int32_t icu::Edits::lengthDelta()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_TITLECASE_WHOLE_STRING</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
+
+<!-- remove usearch.h line. Tool error.
+
<tr class="row0">
-<td class="file">edits.h</td><td class="proto">void icu::Edits::addReplace(int32_t, int32_t)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">usearch.h</td><td class="proto"><tt>enum</tt> USearchAttributeValue::USEARCH_ANY_BASE_WEIGHT_IS_WILDCARD</td><td class="stabchange">Stable<br>ICU 2.4</td><td>Stable<br>
+<span class="verchange"><span>ICU 4.4</span>
+<br>
+<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
</tr>
+-->
+<tr class="row0"> <td class="proto" colspan="4">&nbsp; </td> </tr>
+
<tr class="row1">
-<td class="file">edits.h</td><td class="proto">void icu::Edits::addUnchanged(int32_t)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">utf16.h</td><td class="proto"><tt>#define</tt> U16_GET_OR_FFFD</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">edits.h</td><td class="proto">void icu::Edits::reset()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">utf16.h</td><td class="proto"><tt>#define</tt> U16_NEXT_OR_FFFD</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createPoint(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">utf16.h</td><td class="proto"><tt>#define</tt> U16_PREV_OR_FFFD</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
+</tr>
+</table>
+<P></P>
+<a href="#_top">(jump back to top)</a>
+<hr>
+<a name="promoted"></a>
+<h2>Promoted to stable in ICU 63</h2>
+<table BORDER="1" class="genTable">
+<THEAD>
+<tr>
+<th>File</th><th>API</th><th>ICU 62</th><th>ICU 63</th>
+</tr>
+</THEAD>
+<tr class="row1">
+<td class="file">bytestream.h</td><td class="proto">icu::StringByteSink&lt; StringClass &gt;::StringByteSink(StringClass*, int32_t)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">ubrk.h</td><td class="proto">UBreakIterator* ubrk_openBinaryRules(const uint8_t*, int32_t, const UChar*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">casemap.h</td><td class="proto"><tt>static</tt> void icu::CaseMap::utf8Fold(uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">ubrk.h</td><td class="proto">int32_t ubrk_getBinaryRules(UBreakIterator*, uint8_t*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">casemap.h</td><td class="proto"><tt>static</tt> void icu::CaseMap::utf8ToLower(const char*, uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">unistr.h</td><td class="proto">UNISTR_FROM_STRING_EXPLICIT icu::UnicodeString::UnicodeString(const uint16_t*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">casemap.h</td><td class="proto"><tt>static</tt> void icu::CaseMap::utf8ToTitle(const char*, uint32_t, BreakIterator*, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">unistr.h</td><td class="proto">UNISTR_FROM_STRING_EXPLICIT icu::UnicodeString::UnicodeString(const wchar_t*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">casemap.h</td><td class="proto"><tt>static</tt> void icu::CaseMap::utf8ToUpper(const char*, uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">unistr.h</td><td class="proto">icu::UnicodeString::UnicodeString(const std::nullptr_t)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">currunit.h</td><td class="proto">icu::CurrencyUnit::CurrencyUnit()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">unistr.h</td><td class="proto">icu::UnicodeString::UnicodeString(const std::nullptr_t, int32_t)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">currunit.h</td><td class="proto">icu::CurrencyUnit::CurrencyUnit(const MeasureUnit&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">unistr.h</td><td class="proto">icu::UnicodeString::UnicodeString(const uint16_t*, int32_t)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">dcfmtsym.h</td><td class="proto">icu::DecimalFormatSymbols::DecimalFormatSymbols(const Locale&amp;, const NumberingSystem&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">unistr.h</td><td class="proto">icu::UnicodeString::UnicodeString(const wchar_t*, int32_t)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">edits.h</td><td class="proto">Edits&amp; icu::Edits::mergeAndAppend(const Edits&amp;, const Edits&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">unistr.h</td><td class="proto">icu::UnicodeString::UnicodeString(std::nullptr_t, int32_t, int32_t)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">edits.h</td><td class="proto">Edits&amp; icu::Edits::operator=(Edits&amp;&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">unistr.h</td><td class="proto">icu::UnicodeString::UnicodeString(uint16_t*, int32_t, int32_t)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">edits.h</td><td class="proto">Edits&amp; icu::Edits::operator=(const Edits&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">unistr.h</td><td class="proto">icu::UnicodeString::UnicodeString(wchar_t*, int32_t, int32_t)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">edits.h</td><td class="proto">icu::Edits::Edits(Edits&amp;&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">unum.h</td><td class="proto">int32_t unum_formatDoubleForFields(const UNumberFormat*, double, UChar*, int32_t, UFieldPositionIterator*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">edits.h</td><td class="proto">icu::Edits::Edits(const Edits&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">upluralrules.h</td><td class="proto">UEnumeration* uplrules_getKeywords(const UPluralRules*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">edits.h</td><td class="proto">int32_t icu::Edits::numberOfChanges() const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
-</table>
-<P></P>
-<a href="#_top">(jump back to top)</a>
-<hr>
-<a name="promoted"></a>
-<h2>Promoted to stable in ICU 61</h2>
-<table BORDER="1" class="genTable">
-<THEAD>
-<tr>
-<th>File</th><th>API</th><th>ICU 60</th><th>ICU 61</th>
+<tr class="row1">
+<td class="file">filteredbrk.h</td><td class="proto">BreakIterator* icu::FilteredBreakIteratorBuilder::wrapIteratorWithFilter(BreakIterator*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">filteredbrk.h</td><td class="proto"><tt>static</tt> FilteredBreakIteratorBuilder* icu::FilteredBreakIteratorBuilder::createEmptyInstance(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
-</THEAD>
<tr class="row1">
-<td class="file">casemap.h</td><td class="proto"><tt>static</tt> int32_t icu::CaseMap::fold(uint32_t, const char16_t*, int32_t, char16_t*, int32_t, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">normalizer2.h</td><td class="proto">UBool icu::FilteredNormalizer2::isNormalizedUTF8(StringPiece, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">casemap.h</td><td class="proto"><tt>static</tt> int32_t icu::CaseMap::toLower(const char*, uint32_t, const char16_t*, int32_t, char16_t*, int32_t, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">normalizer2.h</td><td class="proto">UBool icu::Normalizer2::isNormalizedUTF8(StringPiece, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">casemap.h</td><td class="proto"><tt>static</tt> int32_t icu::CaseMap::toTitle(const char*, uint32_t, BreakIterator*, const char16_t*, int32_t, char16_t*, int32_t, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">normalizer2.h</td><td class="proto">void icu::FilteredNormalizer2::normalizeUTF8(uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">casemap.h</td><td class="proto"><tt>static</tt> int32_t icu::CaseMap::toUpper(const char*, uint32_t, const char16_t*, int32_t, char16_t*, int32_t, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">normalizer2.h</td><td class="proto">void icu::Normalizer2::normalizeUTF8(uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">casemap.h</td><td class="proto"><tt>static</tt> int32_t icu::CaseMap::utf8Fold(uint32_t, const char*, int32_t, char*, int32_t, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">numfmt.h</td><td class="proto">ERoundingMode icu::NumberFormat::getRoundingMode() const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">casemap.h</td><td class="proto"><tt>static</tt> int32_t icu::CaseMap::utf8ToLower(const char*, uint32_t, const char*, int32_t, char*, int32_t, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">numfmt.h</td><td class="proto">void icu::NumberFormat::setRoundingMode(ERoundingMode)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">casemap.h</td><td class="proto"><tt>static</tt> int32_t icu::CaseMap::utf8ToTitle(const char*, uint32_t, BreakIterator*, const char*, int32_t, char*, int32_t, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">rbnf.h</td><td class="proto">ERoundingMode icu::RuleBasedNumberFormat::getRoundingMode() const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">casemap.h</td><td class="proto"><tt>static</tt> int32_t icu::CaseMap::utf8ToUpper(const char*, uint32_t, const char*, int32_t, char*, int32_t, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">rbnf.h</td><td class="proto">void icu::RuleBasedNumberFormat::setRoundingMode(ERoundingMode)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">char16ptr.h</td><td class="proto">char16_t* icu::Char16Ptr::get()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_EDITS_NO_RESET</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">char16ptr.h</td><td class="proto">const char16_t* icu::ConstChar16Ptr::get()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_OMIT_UNCHANGED_TEXT</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">char16ptr.h</td><td class="proto">icu::Char16Ptr::Char16Ptr(char16_t*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_TITLECASE_ADJUST_TO_CASED</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">char16ptr.h</td><td class="proto">icu::Char16Ptr::Char16Ptr(std::nullptr_t)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_TITLECASE_SENTENCES</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">char16ptr.h</td><td class="proto">icu::Char16Ptr::Char16Ptr(uint16_t*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_TITLECASE_WHOLE_STRING</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">char16ptr.h</td><td class="proto">icu::Char16Ptr::Char16Ptr(wchar_t*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_BOTTOM_AND_LEFT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">char16ptr.h</td><td class="proto">icu::Char16Ptr::operator char16_t* ()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_BOTTOM_AND_RIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">char16ptr.h</td><td class="proto">icu::Char16Ptr::~Char16Ptr()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_BOTTOM</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">char16ptr.h</td><td class="proto">icu::ConstChar16Ptr::ConstChar16Ptr(const char16_t*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_LEFT_AND_RIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">char16ptr.h</td><td class="proto">icu::ConstChar16Ptr::ConstChar16Ptr(const std::nullptr_t)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_LEFT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">char16ptr.h</td><td class="proto">icu::ConstChar16Ptr::ConstChar16Ptr(const uint16_t*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_NA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">char16ptr.h</td><td class="proto">icu::ConstChar16Ptr::ConstChar16Ptr(const wchar_t*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_OVERSTRUCK</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">char16ptr.h</td><td class="proto">icu::ConstChar16Ptr::operator const char16_t* ()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_RIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">char16ptr.h</td><td class="proto">icu::ConstChar16Ptr::~ConstChar16Ptr()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_TOP_AND_BOTTOM_AND_RIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">edits.h</td><td class="proto">Iterator icu::Edits::getCoarseChangesIterator()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_TOP_AND_BOTTOM</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">edits.h</td><td class="proto">Iterator icu::Edits::getCoarseIterator()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_TOP_AND_LEFT_AND_RIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">edits.h</td><td class="proto">Iterator icu::Edits::getFineChangesIterator()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_TOP_AND_LEFT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">edits.h</td><td class="proto">Iterator icu::Edits::getFineIterator()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_TOP_AND_RIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">edits.h</td><td class="proto">UBool icu::Edits::copyErrorTo(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_TOP</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">edits.h</td><td class="proto">UBool icu::Edits::hasChanges()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_VISUAL_ORDER_LEFT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">edits.h</td><td class="proto">icu::Edits::Edits()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_AVAGRAHA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">edits.h</td><td class="proto">icu::Edits::~Edits()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_BINDU</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">edits.h</td><td class="proto">int32_t icu::Edits::lengthDelta()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_BRAHMI_JOINING_NUMBER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">edits.h</td><td class="proto">void icu::Edits::addReplace(int32_t, int32_t)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CANTILLATION_MARK</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">edits.h</td><td class="proto">void icu::Edits::addUnchanged(int32_t)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_DEAD</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">edits.h</td><td class="proto">void icu::Edits::reset()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_FINAL</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createPoint(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_HEAD_LETTER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">ubrk.h</td><td class="proto">UBreakIterator* ubrk_openBinaryRules(const uint8_t*, int32_t, const UChar*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_INITIAL_POSTFIXED</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">ubrk.h</td><td class="proto">int32_t ubrk_getBinaryRules(UBreakIterator*, uint8_t*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_KILLER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">unistr.h</td><td class="proto">UNISTR_FROM_STRING_EXPLICIT icu::UnicodeString::UnicodeString(const uint16_t*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_MEDIAL</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">unistr.h</td><td class="proto">UNISTR_FROM_STRING_EXPLICIT icu::UnicodeString::UnicodeString(const wchar_t*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_PLACEHOLDER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">unistr.h</td><td class="proto">icu::UnicodeString::UnicodeString(const std::nullptr_t)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_PRECEDING_REPHA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">unistr.h</td><td class="proto">icu::UnicodeString::UnicodeString(const std::nullptr_t, int32_t)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_PREFIXED</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">unistr.h</td><td class="proto">icu::UnicodeString::UnicodeString(const uint16_t*, int32_t)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_SUBJOINED</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">unistr.h</td><td class="proto">icu::UnicodeString::UnicodeString(const wchar_t*, int32_t)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_SUCCEEDING_REPHA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">unistr.h</td><td class="proto">icu::UnicodeString::UnicodeString(std::nullptr_t, int32_t, int32_t)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_WITH_STACKER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">unistr.h</td><td class="proto">icu::UnicodeString::UnicodeString(uint16_t*, int32_t, int32_t)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">unistr.h</td><td class="proto">icu::UnicodeString::UnicodeString(wchar_t*, int32_t, int32_t)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_GEMINATION_MARK</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">unum.h</td><td class="proto">int32_t unum_formatDoubleForFields(const UNumberFormat*, double, UChar*, int32_t, UFieldPositionIterator*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_INVISIBLE_STACKER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">upluralrules.h</td><td class="proto">UEnumeration* uplrules_getKeywords(const UPluralRules*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 59</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_JOINER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">utrans.h</td><td class="proto">void utrans_trans(const UTransliterator*, UReplaceable*, const UReplaceableCallbacks*, int32_t, int32_t*, UErrorCode*)</td><td class="">(missing)<br>old version (stable)<br>lacked “const”<br>on one param</td><td>Stable<br>
-<span class=""><span>ICU 2.0</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_MODIFYING_LETTER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_NON_JOINER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_NUKTA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_NUMBER_JOINER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_NUMBER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_OTHER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_PURE_KILLER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_REGISTER_SHIFTER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_SYLLABLE_MODIFIER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_TONE_LETTER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_TONE_MARK</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_VIRAMA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_VISARGA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_VOWEL_DEPENDENT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_VOWEL_INDEPENDENT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_VOWEL</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_INDIC_POSITIONAL_CATEGORY</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_INDIC_SYLLABIC_CATEGORY</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_VERTICAL_ORIENTATION</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UVerticalOrientation::U_VO_ROTATED</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UVerticalOrientation::U_VO_TRANSFORMED_ROTATED</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UVerticalOrientation::U_VO_TRANSFORMED_UPRIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UVerticalOrientation::U_VO_UPRIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+
+<!--
+<tr class="row0">
+<td class="file">uobject.h</td><td class="proto"><tt>#define</tt> U_NO_THROW</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 4.2</span></span></td>
+</tr>
+-->
+<tr class="row0"> <td class="proto" colspan="4">&nbsp; </td> </tr>
+
+
+<tr class="row1">
+<td class="file">utf16.h</td><td class="proto"><tt>#define</tt> U16_GET_OR_FFFD</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">utf16.h</td><td class="proto"><tt>#define</tt> U16_NEXT_OR_FFFD</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
</tr>
+<tr class="row1">
+<td class="file">utf16.h</td><td class="proto"><tt>#define</tt> U16_PREV_OR_FFFD</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
+</tr>
+
+<!--
<tr class="row0">
-<td class="file">utrans.h</td><td class="proto">void utrans_transIncremental(const UTransliterator*, UReplaceable*, const UReplaceableCallbacks*, UTransPosition*, UErrorCode*)</td><td class="">(missing)<br>old version (stable)<br>lacked “const”<br>on one param</td><td>Stable<br>
+<td class="file">utypes.h</td><td class="proto"><tt>#define</tt> U_COMBINED_IMPLEMENTATION</td><td class="">(missing)</td><td>Stable<br>
<span class=""><span>ICU 2.0</span></span></td>
</tr>
+-->
+
</table>
<P></P>
<a href="#_top">(jump back to top)</a>
<hr>
<a name="added"></a>
-<h2>Added in ICU 61</h2>
+<h2>Added in ICU 63</h2>
<table BORDER="1" class="genTable">
<THEAD>
<tr>
-<th>File</th><th>API</th><th>ICU 60</th><th>ICU 61</th>
+<th>File</th><th>API</th><th>ICU 62</th><th>ICU 63</th>
</tr>
</THEAD>
+<!--
<tr class="row1">
-<td class="file">dcfmtsym.h</td><td class="proto">UChar32 icu::DecimalFormatSymbols::getCodePointZero()</td><td class="">(missing)</td><td>Internal<br>
+<td class="file">char16ptr.h</td><td class="proto"><tt>#define</tt> U_ALIASING_BARRIER</td><td class="">(missing)</td><td>Internal<br>
<span class=""><span></span></span></td>
</tr>
+-->
+<tr class="row0">
+<td class="file">listformatter.h</td><td class="proto">UnicodeString&amp; icu::ListFormatter::format(const UnicodeString items[], int32_t, UnicodeString&amp;, FieldPositionIterator*, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">locid.h</td><td class="proto">Locale&amp; icu::Locale::operator=(Locale&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">locid.h</td><td class="proto">StringClass icu::Locale::getKeywordValue(StringPiece, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">locid.h</td><td class="proto">StringClass icu::Locale::getUnicodeKeywordValue(StringPiece, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">locid.h</td><td class="proto">StringClass icu::Locale::toLanguageTag(UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">locid.h</td><td class="proto">StringEnumeration* icu::Locale::createUnicodeKeywords(UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">locid.h</td><td class="proto">icu::Locale::Locale(Locale&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">locid.h</td><td class="proto"><tt>static</tt> Locale icu::Locale::forLanguageTag(StringPiece, UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">locid.h</td><td class="proto">void icu::Locale::addLikelySubtags(UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">locid.h</td><td class="proto">void icu::Locale::getKeywordValue(StringPiece, ByteSink&amp;, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
<tr class="row0">
-<td class="file">dcfmtsym.h</td><td class="proto">const UnicodeString&amp; icu::DecimalFormatSymbols::getConstDigitSymbol(int32_t)</td><td class="">(missing)</td><td>Internal<br>
+<td class="file">locid.h</td><td class="proto">void icu::Locale::getKeywords(OutputIterator, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">locid.h</td><td class="proto">void icu::Locale::getUnicodeKeywordValue(StringPiece, ByteSink&amp;, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">locid.h</td><td class="proto">void icu::Locale::getUnicodeKeywords(OutputIterator, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">locid.h</td><td class="proto">void icu::Locale::minimizeSubtags(UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">locid.h</td><td class="proto">void icu::Locale::setKeywordValue(StringPiece, StringPiece, UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">locid.h</td><td class="proto">void icu::Locale::setUnicodeKeywordValue(StringPiece, StringPiece, UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">locid.h</td><td class="proto">void icu::Locale::toLanguageTag(ByteSink&amp;, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createAtmosphere(UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createPercent(UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createPermille(UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createPetabyte(UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+
+<!-- exclude numberformatter.h
+
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Appendable&amp; icu::number::FormattedNumber::appendTo(Appendable&amp;, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 62</span>
+<br>
+<b class="bigwarn" title="A draft API has the wrong version.">(should be ICU 63)</b></span></td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::grouping(UNumberGroupingStrategy) const&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 61</span>
+<br>
+<b class="bigwarn" title="A draft API has the wrong version.">(should be ICU 63)</b></span></td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::grouping(UNumberGroupingStrategy)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 62</span>
+<br>
+<b class="bigwarn" title="A draft API has the wrong version.">(should be ICU 63)</b></span></td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">icu::number::impl::Grouper::Grouper(int16_t, int16_t, int16_t, UNumberGroupingStrategy)</td><td class="">(missing)</td><td>Internal<br>
<span class=""><span></span></span></td>
</tr>
<tr class="row1">
-<td class="file">dtptngen.h</td><td class="proto">UnicodeString icu::DateTimePatternGenerator::getFieldDisplayName(UDateTimePatternField, UDateTimePGDisplayWidth)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 61</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Grouper icu::number::impl::Grouper::forStrategy(UNumberGroupingStrategy)</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span></span></span></td>
+</tr>
+-->
+<tr class="row1"> <td class="proto" colspan="4">&nbsp; </td> </tr>
+
+<tr class="row0">
+<td class="file">numberrangeformatter.h</td><td class="proto">Appendable&amp; icu::number::FormattedNumberRange::appendTo(Appendable&amp;, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::collapse(UNumberRangeCollapse) const&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::collapse(UNumberRangeCollapse)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::identityFallback(UNumberRangeIdentityFallback) const&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::identityFallback(UNumberRangeIdentityFallback)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::numberFormatterBoth(UnlocalizedNumberFormatter&amp;&amp;) const&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::numberFormatterBoth(UnlocalizedNumberFormatter&amp;&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::numberFormatterBoth(const UnlocalizedNumberFormatter&amp;) const&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::numberFormatterBoth(const UnlocalizedNumberFormatter&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::numberFormatterFirst(UnlocalizedNumberFormatter&amp;&amp;) const&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::numberFormatterFirst(UnlocalizedNumberFormatter&amp;&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::numberFormatterFirst(const UnlocalizedNumberFormatter&amp;) const&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::numberFormatterFirst(const UnlocalizedNumberFormatter&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::numberFormatterSecond(UnlocalizedNumberFormatter&amp;&amp;) const&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::numberFormatterSecond(UnlocalizedNumberFormatter&amp;&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::numberFormatterSecond(const UnlocalizedNumberFormatter&amp;) const&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
</tr>
<tr class="row0">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit icu::MeasureUnit::resolveUnitPerUnit(const MeasureUnit&amp;, const MeasureUnit&amp;, bool*)</td><td class="">(missing)</td><td>Internal<br>
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::numberFormatterSecond(const UnlocalizedNumberFormatter&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">numberrangeformatter.h</td><td class="proto">FormattedNumberRange icu::number::LocalizedNumberRangeFormatter::formatFormattableRange(const Formattable&amp;, const Formattable&amp;, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">numberrangeformatter.h</td><td class="proto">FormattedNumberRange&amp; icu::number::FormattedNumberRange::operator=(FormattedNumberRange&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+
+<!--
+<tr class="row1">
+<td class="file">numberrangeformatter.h</td><td class="proto">FormattedNumberRange&amp; icu::number::FormattedNumberRange::operator=(const FormattedNumberRange&amp;)=delete</td><td class="">(missing)</td><td>
+<br>
+<span class=""><span></span>
+<br>
+<b class="bigwarn" title="A new API was introduced that was not tagged.">(untagged)</b></span></td>
+</tr>
+-->
+<tr class="row1"> <td class="proto" colspan="4">&nbsp; </td> </tr>
+
+<tr class="row0">
+<td class="file">numberrangeformatter.h</td><td class="proto">LocalizedNumberRangeFormatter icu::number::UnlocalizedNumberRangeFormatter::locale(const icu::Locale&amp;) const&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">numberrangeformatter.h</td><td class="proto">LocalizedNumberRangeFormatter icu::number::UnlocalizedNumberRangeFormatter::locale(const icu::Locale&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">numberrangeformatter.h</td><td class="proto">LocalizedNumberRangeFormatter&amp; icu::number::LocalizedNumberRangeFormatter::operator=(LocalizedNumberRangeFormatter&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">numberrangeformatter.h</td><td class="proto">LocalizedNumberRangeFormatter&amp; icu::number::LocalizedNumberRangeFormatter::operator=(const LocalizedNumberRangeFormatter&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">numberrangeformatter.h</td><td class="proto">UBool icu::number::FormattedNumberRange::nextFieldPosition(FieldPosition&amp;, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">numberrangeformatter.h</td><td class="proto">UBool icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::copyErrorTo(UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">numberrangeformatter.h</td><td class="proto">UNumberRangeIdentityResult icu::number::FormattedNumberRange::getIdentityResult(UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">numberrangeformatter.h</td><td class="proto">UnicodeString icu::number::FormattedNumberRange::getFirstDecimal(UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">numberrangeformatter.h</td><td class="proto">UnicodeString icu::number::FormattedNumberRange::getSecondDecimal(UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">numberrangeformatter.h</td><td class="proto">UnicodeString icu::number::FormattedNumberRange::toString(UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">numberrangeformatter.h</td><td class="proto">UnlocalizedNumberRangeFormatter&amp; icu::number::UnlocalizedNumberRangeFormatter::operator=(UnlocalizedNumberRangeFormatter&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">numberrangeformatter.h</td><td class="proto">UnlocalizedNumberRangeFormatter&amp; icu::number::UnlocalizedNumberRangeFormatter::operator=(const UnlocalizedNumberRangeFormatter&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>enum</tt> UNumberRangeCollapse::UNUM_RANGE_COLLAPSE_ALL</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>enum</tt> UNumberRangeCollapse::UNUM_RANGE_COLLAPSE_AUTO</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>enum</tt> UNumberRangeCollapse::UNUM_RANGE_COLLAPSE_NONE</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>enum</tt> UNumberRangeCollapse::UNUM_RANGE_COLLAPSE_UNIT</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>enum</tt> UNumberRangeIdentityFallback::UNUM_IDENTITY_FALLBACK_APPROXIMATELY_OR_SINGLE_VALUE</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>enum</tt> UNumberRangeIdentityFallback::UNUM_IDENTITY_FALLBACK_APPROXIMATELY</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>enum</tt> UNumberRangeIdentityFallback::UNUM_IDENTITY_FALLBACK_RANGE</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>enum</tt> UNumberRangeIdentityFallback::UNUM_IDENTITY_FALLBACK_SINGLE_VALUE</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+
+<!--
+<tr class="row0">
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>enum</tt> UNumberRangeIdentityResult::UNUM_IDENTITY_RESULT_COUNT</td><td class="">(missing)</td><td>Internal<br>
<span class=""><span></span></span></td>
</tr>
+-->
+<tr class="row0"> <td class="proto" colspan="4">&nbsp; </td> </tr>
+
+
<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::adoptPerUnit(icu::MeasureUnit*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 61</span></span></td>
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>enum</tt> UNumberRangeIdentityResult::UNUM_IDENTITY_RESULT_EQUAL_AFTER_ROUNDING</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>enum</tt> UNumberRangeIdentityResult::UNUM_IDENTITY_RESULT_EQUAL_BEFORE_ROUNDING</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>enum</tt> UNumberRangeIdentityResult::UNUM_IDENTITY_RESULT_NOT_EQUAL</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
</tr>
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::adoptSymbols(NumberingSystem*)</td><td class="">(missing)<br>old version<br>had “const”<br>on param</td><td>Draft<br>
-<span class=""><span>ICU 60</span>
+<td class="file">numberrangeformatter.h</td><td class="proto">icu::number::FormattedNumberRange::FormattedNumberRange(FormattedNumberRange&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+
+<!--
+<tr class="row1">
+<td class="file">numberrangeformatter.h</td><td class="proto">icu::number::FormattedNumberRange::FormattedNumberRange(const FormattedNumberRange&amp;)=delete</td><td class="">(missing)</td><td>
<br>
-<b class="bigwarn" title="A draft API has the wrong version.">(should be ICU 61)</b><br>decided to keep draft ICU 60</span></td>
+<span class=""><span></span>
+<br>
+<b class="bigwarn" title="A new API was introduced that was not tagged.">(untagged)</b></span></td>
+</tr>
+-->
+<tr class="row1"> <td class="proto" colspan="4">&nbsp; </td> </tr>
+
+<tr class="row0">
+<td class="file">numberrangeformatter.h</td><td class="proto">icu::number::FormattedNumberRange::~FormattedNumberRange()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
</tr>
<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::adoptUnit(icu::MeasureUnit*)</td><td class="">(missing)<br>old version<br>had “const”<br>on param</td><td>Draft<br>
-<span class=""><span>ICU 60</span>
+<td class="file">numberrangeformatter.h</td><td class="proto">icu::number::LocalizedNumberRangeFormatter::LocalizedNumberRangeFormatter()=default</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">numberrangeformatter.h</td><td class="proto">icu::number::LocalizedNumberRangeFormatter::LocalizedNumberRangeFormatter(LocalizedNumberRangeFormatter&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">numberrangeformatter.h</td><td class="proto">icu::number::LocalizedNumberRangeFormatter::LocalizedNumberRangeFormatter(const LocalizedNumberRangeFormatter&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">numberrangeformatter.h</td><td class="proto">icu::number::LocalizedNumberRangeFormatter::~LocalizedNumberRangeFormatter()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+
+<!--
+<tr class="row1">
+<td class="file">numberrangeformatter.h</td><td class="proto">icu::number::NumberRangeFormatter::NumberRangeFormatter()=delete</td><td class="">(missing)</td><td>
<br>
-<b class="bigwarn" title="A draft API has the wrong version.">(should be ICU 61)</b><br>decided to keep draft ICU 60</span></td>
+<span class=""><span></span>
+<br>
+<b class="bigwarn" title="A new API was introduced that was not tagged.">(untagged)</b></span></td>
</tr>
+-->
+<tr class="row1"> <td class="proto" colspan="4">&nbsp; </td> </tr>
+
+
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::grouping(const UGroupingStrategy&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 61</span></span></td>
+<td class="file">numberrangeformatter.h</td><td class="proto">icu::number::UnlocalizedNumberRangeFormatter::UnlocalizedNumberRangeFormatter()=default</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
</tr>
<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::perUnit(const icu::MeasureUnit&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 61</span></span></td>
+<td class="file">numberrangeformatter.h</td><td class="proto">icu::number::UnlocalizedNumberRangeFormatter::UnlocalizedNumberRangeFormatter(UnlocalizedNumberRangeFormatter&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
</tr>
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>enum</tt> UGroupingStrategy::UNUM_GROUPING_AUTO</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 61</span></span></td>
+<td class="file">numberrangeformatter.h</td><td class="proto">icu::number::UnlocalizedNumberRangeFormatter::UnlocalizedNumberRangeFormatter(const UnlocalizedNumberRangeFormatter&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
</tr>
<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>enum</tt> UGroupingStrategy::UNUM_GROUPING_MIN2</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 61</span></span></td>
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>static</tt> LocalizedNumberRangeFormatter icu::number::NumberRangeFormatter::withLocale(const Locale&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
</tr>
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>enum</tt> UGroupingStrategy::UNUM_GROUPING_OFF</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 61</span></span></td>
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>static</tt> UnlocalizedNumberRangeFormatter icu::number::NumberRangeFormatter::with()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
</tr>
<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>enum</tt> UGroupingStrategy::UNUM_GROUPING_ON_ALIGNED</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 61</span></span></td>
+<td class="file">numberrangeformatter.h</td><td class="proto">void icu::number::FormattedNumberRange::getAllFieldPositions(FieldPositionIterator&amp;, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
</tr>
+
+<!--
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>enum</tt> UGroupingStrategy::UNUM_GROUPING_THOUSANDS</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 61</span></span></td>
+<td class="file">numberrangeformatter.h</td><td class="proto">void icu::number::LocalizedNumberRangeFormatter::formatImpl(impl::UFormattedNumberRangeData&amp;, bool, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span></span></span></td>
</tr>
+-->
+
+<!--
<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_ACCOUNTING_EXCEPT_ZERO</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 61</span></span></td>
+<td class="file">platform.h</td><td class="proto"><tt>#define</tt> CYGWINMSVC</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span></span></span></td>
</tr>
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_EXCEPT_ZERO</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 61</span></span></td>
+<td class="file">platform.h</td><td class="proto"><tt>#define</tt> U_DECLARE_UTF16</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span></span></span></td>
</tr>
<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">icu::number::impl::Grouper::Grouper(int16_t, int16_t, int16_t)</td><td class="">(missing)</td><td>Internal<br>
+<td class="file">platform.h</td><td class="proto"><tt>#define</tt> U_NOEXCEPT</td><td class="">(missing)</td><td>Internal<br>
<span class=""><span></span></span></td>
</tr>
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Grouper icu::number::impl::Grouper::forStrategy(UGroupingStrategy)</td><td class="">(missing)</td><td>Internal<br>
+<td class="file">platform.h</td><td class="proto"><tt>#define</tt> __has_declspec_attribute</td><td class="">(missing)</td><td>Internal<br>
<span class=""><span></span></span></td>
</tr>
+-->
+<tr class="row0"> <td class="proto" colspan="4">&nbsp; </td> </tr>
+
+
<tr class="row1">
-<td class="file">rbbi.h</td><td class="proto">void icu::RuleBasedBreakIterator::dumpTables()</td><td class="">(missing)</td><td>Internal<br>
+<td class="file">reldatefmt.h</td><td class="proto"><tt>enum</tt> UDateAbsoluteUnit::UDAT_ABSOLUTE_QUARTER</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto">const UCPMap* u_getIntPropertyMap(UProperty, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto">const USet* u_getBinaryPropertySet(UProperty, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_BOTTOM_AND_LEFT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_BOTTOM_AND_RIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_BOTTOM</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_LEFT_AND_RIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_LEFT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_NA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_OVERSTRUCK</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_RIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_TOP_AND_BOTTOM_AND_RIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_TOP_AND_BOTTOM</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_TOP_AND_LEFT_AND_RIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_TOP_AND_LEFT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_TOP_AND_RIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_TOP</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_VISUAL_ORDER_LEFT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_AVAGRAHA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_BINDU</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_BRAHMI_JOINING_NUMBER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CANTILLATION_MARK</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_DEAD</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_FINAL</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_HEAD_LETTER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_INITIAL_POSTFIXED</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_KILLER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_MEDIAL</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_PLACEHOLDER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_PRECEDING_REPHA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_PREFIXED</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_SUBJOINED</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_SUCCEEDING_REPHA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_WITH_STACKER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_GEMINATION_MARK</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_INVISIBLE_STACKER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_JOINER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_MODIFYING_LETTER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_NON_JOINER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_NUKTA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_NUMBER_JOINER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_NUMBER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_OTHER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_PURE_KILLER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_REGISTER_SHIFTER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_SYLLABLE_MODIFIER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_TONE_LETTER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_TONE_MARK</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_VIRAMA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_VISARGA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_VOWEL_DEPENDENT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_VOWEL_INDEPENDENT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_VOWEL</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_INDIC_POSITIONAL_CATEGORY</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_INDIC_SYLLABIC_CATEGORY</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_VERTICAL_ORIENTATION</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UVerticalOrientation::U_VO_ROTATED</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UVerticalOrientation::U_VO_TRANSFORMED_ROTATED</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UVerticalOrientation::U_VO_TRANSFORMED_UPRIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UVerticalOrientation::U_VO_UPRIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+</tr>
+
+<!--
+<tr class="row0">
+<td class="file">uconfig.h</td><td class="proto"><tt>#define</tt> UCONFIG_ENABLE_PLUGINS</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">uconfig.h</td><td class="proto"><tt>#define</tt> U_HAVE_LIB_SUFFIX</td><td class="">(missing)</td><td>Internal<br>
<span class=""><span></span></span></td>
</tr>
+-->
+
<tr class="row0">
-<td class="file">ucurr.h</td><td class="proto"><tt>enum</tt> UCurrNameStyle::UCURR_NARROW_SYMBOL_NAME</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 61</span></span></td>
+<td class="file">ucpmap.h</td><td class="proto">UChar32 ucpmap_getRange(const UCPMap*, UChar32, UCPMapRangeOption, uint32_t, UCPMapValueFilter*, const void*, uint32_t*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
</tr>
<tr class="row1">
-<td class="file">udatpg.h</td><td class="proto"><tt>enum</tt> UDateTimePGDisplayWidth::UDATPG_ABBREVIATED</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 61</span></span></td>
+<td class="file">ucpmap.h</td><td class="proto"><tt>enum</tt> UCPMapRangeOption::UCPMAP_RANGE_FIXED_ALL_SURROGATES</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
</tr>
<tr class="row0">
-<td class="file">udatpg.h</td><td class="proto"><tt>enum</tt> UDateTimePGDisplayWidth::UDATPG_NARROW</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 61</span></span></td>
+<td class="file">ucpmap.h</td><td class="proto"><tt>enum</tt> UCPMapRangeOption::UCPMAP_RANGE_FIXED_LEAD_SURROGATES</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
</tr>
<tr class="row1">
-<td class="file">udatpg.h</td><td class="proto"><tt>enum</tt> UDateTimePGDisplayWidth::UDATPG_WIDE</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 61</span></span></td>
+<td class="file">ucpmap.h</td><td class="proto"><tt>enum</tt> UCPMapRangeOption::UCPMAP_RANGE_NORMAL</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
</tr>
<tr class="row0">
-<td class="file">udatpg.h</td><td class="proto">int32_t udatpg_getFieldDisplayName(const UDateTimePatternGenerator*, UDateTimePatternField, UDateTimePGDisplayWidth, UChar*, int32_t, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 61</span></span></td>
+<td class="file">ucpmap.h</td><td class="proto">uint32_t ucpmap_get(const UCPMap*, UChar32)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ucptrie.h</td><td class="proto"><tt>#define</tt> UCPTRIE_16</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucptrie.h</td><td class="proto"><tt>#define</tt> UCPTRIE_32</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ucptrie.h</td><td class="proto"><tt>#define</tt> UCPTRIE_8</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucptrie.h</td><td class="proto"><tt>#define</tt> UCPTRIE_ASCII_GET</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ucptrie.h</td><td class="proto"><tt>#define</tt> UCPTRIE_FAST_BMP_GET</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucptrie.h</td><td class="proto"><tt>#define</tt> UCPTRIE_FAST_GET</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ucptrie.h</td><td class="proto"><tt>#define</tt> UCPTRIE_FAST_SUPP_GET</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucptrie.h</td><td class="proto"><tt>#define</tt> UCPTRIE_FAST_U16_NEXT</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ucptrie.h</td><td class="proto"><tt>#define</tt> UCPTRIE_FAST_U16_PREV</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucptrie.h</td><td class="proto"><tt>#define</tt> UCPTRIE_FAST_U8_NEXT</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ucptrie.h</td><td class="proto"><tt>#define</tt> UCPTRIE_FAST_U8_PREV</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucptrie.h</td><td class="proto"><tt>#define</tt> UCPTRIE_SMALL_GET</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ucptrie.h</td><td class="proto">UCPTrie* ucptrie_openFromBinary(UCPTrieType, UCPTrieValueWidth, const void*, int32_t, int32_t*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucptrie.h</td><td class="proto">UCPTrieType ucptrie_getType(const UCPTrie*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ucptrie.h</td><td class="proto">UCPTrieValueWidth ucptrie_getValueWidth(const UCPTrie*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucptrie.h</td><td class="proto">UChar32 ucptrie_getRange(const UCPTrie*, UChar32, UCPMapRangeOption, uint32_t, UCPMapValueFilter*, const void*, uint32_t*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ucptrie.h</td><td class="proto"><tt>enum</tt> UCPTrieType::UCPTRIE_TYPE_ANY</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucptrie.h</td><td class="proto"><tt>enum</tt> UCPTrieType::UCPTRIE_TYPE_FAST</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ucptrie.h</td><td class="proto"><tt>enum</tt> UCPTrieType::UCPTRIE_TYPE_SMALL</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucptrie.h</td><td class="proto"><tt>enum</tt> UCPTrieValueWidth::UCPTRIE_VALUE_BITS_16</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ucptrie.h</td><td class="proto"><tt>enum</tt> UCPTrieValueWidth::UCPTRIE_VALUE_BITS_32</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucptrie.h</td><td class="proto"><tt>enum</tt> UCPTrieValueWidth::UCPTRIE_VALUE_BITS_8</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ucptrie.h</td><td class="proto"><tt>enum</tt> UCPTrieValueWidth::UCPTRIE_VALUE_BITS_ANY</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucptrie.h</td><td class="proto">int32_t ucptrie_toBinary(const UCPTrie*, void*, int32_t, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
</tr>
<tr class="row1">
-<td class="file">utf8.h</td><td class="proto"><tt>#define</tt> U8_INTERNAL_NEXT_OR_SUB</td><td class="">(missing)</td><td>Internal<br>
+<td class="file">ucptrie.h</td><td class="proto">uint32_t ucptrie_get(const UCPTrie*, UChar32)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucptrie.h</td><td class="proto">void ucptrie_close(UCPTrie*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ulistformatter.h</td><td class="proto"><tt>enum</tt> UListFormatterField::ULISTFMT_ELEMENT_FIELD</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ulistformatter.h</td><td class="proto"><tt>enum</tt> UListFormatterField::ULISTFMT_LITERAL_FIELD</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+
+<!--
+<tr class="row1">
+<td class="file">umachine.h</td><td class="proto"><tt>#define</tt> U_FINAL</td><td class="">(missing)</td><td>Internal<br>
<span class=""><span></span></span></td>
</tr>
<tr class="row0">
-<td class="file">utf8.h</td><td class="proto"><tt>#define</tt> U8_TRUNCATE_IF_INCOMPLETE</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 61</span></span></td>
+<td class="file">umachine.h</td><td class="proto"><tt>#define</tt> U_OVERRIDE</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span></span></span></td>
</tr>
+-->
+
<tr class="row1">
-<td class="file">utrans.h</td><td class="proto">void utrans_trans(const UTransliterator*, UReplaceable*, const UReplaceableCallbacks*, int32_t, int32_t*, UErrorCode*)</td><td class="">(missing) old version<br>(stable) lacked “const”<br>on one parameter</td><td>Stable<br>
-<span class=""><span>ICU 2.0</span></span></td>
+<td class="file">umutablecptrie.h</td><td class="proto">UCPTrie* umutablecptrie_buildImmutable(UMutableCPTrie*, UCPTrieType, UCPTrieValueWidth, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">umutablecptrie.h</td><td class="proto">UMutableCPTrie* umutablecptrie_clone(const UMutableCPTrie*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">umutablecptrie.h</td><td class="proto">UMutableCPTrie* umutablecptrie_fromUCPMap(const UCPMap*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">umutablecptrie.h</td><td class="proto">UMutableCPTrie* umutablecptrie_fromUCPTrie(const UCPTrie*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">umutablecptrie.h</td><td class="proto">UMutableCPTrie* umutablecptrie_open(uint32_t, uint32_t, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">umutablecptrie.h</td><td class="proto">UChar32 umutablecptrie_getRange(const UMutableCPTrie*, UChar32, UCPMapRangeOption, uint32_t, UCPMapValueFilter*, const void*, uint32_t*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">umutablecptrie.h</td><td class="proto">uint32_t umutablecptrie_get(const UMutableCPTrie*, UChar32)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">umutablecptrie.h</td><td class="proto">void umutablecptrie_close(UMutableCPTrie*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">umutablecptrie.h</td><td class="proto">void umutablecptrie_set(UMutableCPTrie*, UChar32, uint32_t, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">umutablecptrie.h</td><td class="proto">void umutablecptrie_setRange(UMutableCPTrie*, UChar32, UChar32, uint32_t, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+
+<!--
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberGroupingStrategy::UNUM_GROUPING_AUTO</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 61</span>
+<br>
+<b class="bigwarn" title="A draft API has the wrong version.">(should be ICU 63)</b></span></td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberGroupingStrategy::UNUM_GROUPING_COUNT</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span>ICU 62</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberGroupingStrategy::UNUM_GROUPING_MIN2</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 61</span>
+<br>
+<b class="bigwarn" title="A draft API has the wrong version.">(should be ICU 63)</b></span></td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberGroupingStrategy::UNUM_GROUPING_OFF</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 61</span>
+<br>
+<b class="bigwarn" title="A draft API has the wrong version.">(should be ICU 63)</b></span></td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberGroupingStrategy::UNUM_GROUPING_ON_ALIGNED</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 61</span>
+<br>
+<b class="bigwarn" title="A draft API has the wrong version.">(should be ICU 63)</b></span></td>
</tr>
<tr class="row0">
-<td class="file">utrans.h</td><td class="proto">void utrans_transIncremental(const UTransliterator*, UReplaceable*, const UReplaceableCallbacks*, UTransPosition*, UErrorCode*)</td><td class="">(missing) old version<br>(stable) lacked “const”<br>on one parameter</td><td>Stable<br>
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberGroupingStrategy::UNUM_GROUPING_THOUSANDS</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 61</span>
+<br>
+<b class="bigwarn" title="A draft API has the wrong version.">(should be ICU 63)</b></span></td>
+</tr>
+-->
+
+<!--
+<tr class="row1">
+<td class="file">uobject.h</td><td class="proto"><tt>#define</tt> U_NO_THROW</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 4.2</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">utypes.h</td><td class="proto"><tt>#define</tt> U_COMBINED_IMPLEMENTATION</td><td class="">(missing)</td><td>Stable<br>
<span class=""><span>ICU 2.0</span></span></td>
</tr>
+-->
+
</table>
<P></P>
<a href="#_top">(jump back to top)</a>
<hr>
<a name="other"></a>
-<h2>Other existing drafts in ICU 61</h2>
+<h2>Other existing drafts in ICU 63</h2>
<div class="other">
<table BORDER="1" class="genTable">
<THEAD>
<tr>
-<th>File</th><th>API</th><th>ICU 60</th><th>ICU 61</th>
+<th>File</th><th>API</th><th>ICU 62</th><th>ICU 63</th>
</tr>
</THEAD>
<tr class="row1">
-<td class="file">bytestream.h</td><td class="proto">icu::StringByteSink&lt; StringClass &gt;::StringByteSink(StringClass*, int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">decimfmt.h</td><td class="proto">const number::LocalizedNumberFormatter&amp; icu::DecimalFormat::toNumberFormatter() const</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row0">
-<td class="file">casemap.h</td><td class="proto"><tt>static</tt> void icu::CaseMap::utf8Fold(uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">decimfmt.h</td><td class="proto">int32_t icu::DecimalFormat::getMultiplierScale() const</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row1">
-<td class="file">casemap.h</td><td class="proto"><tt>static</tt> void icu::CaseMap::utf8ToLower(const char*, uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">decimfmt.h</td><td class="proto">void icu::DecimalFormat::setMultiplierScale(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row0">
-<td class="file">casemap.h</td><td class="proto"><tt>static</tt> void icu::CaseMap::utf8ToTitle(const char*, uint32_t, BreakIterator*, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">dtptngen.h</td><td class="proto">UnicodeString icu::DateTimePatternGenerator::getFieldDisplayName(UDateTimePatternField, UDateTimePGDisplayWidth) const</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
</tr>
<tr class="row1">
-<td class="file">casemap.h</td><td class="proto"><tt>static</tt> void icu::CaseMap::utf8ToUpper(const char*, uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">localpointer.h</td><td class="proto">LocalArray&lt;T&gt;&amp; icu::LocalArray&lt; T &gt;::moveFrom(LocalArray&lt; T &gt;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 56</td>
</tr>
<tr class="row0">
-<td class="file">currunit.h</td><td class="proto">icu::CurrencyUnit::CurrencyUnit()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">localpointer.h</td><td class="proto">LocalPointer&lt;T&gt;&amp; icu::LocalPointer&lt; T &gt;::moveFrom(LocalPointer&lt; T &gt;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 56</td>
</tr>
<tr class="row1">
-<td class="file">currunit.h</td><td class="proto">icu::CurrencyUnit::CurrencyUnit(const MeasureUnit&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">measfmt.h</td><td class="proto">void icu::MeasureFormat::parseObject(const UnicodeString&amp;, Formattable&amp;, ParsePosition&amp;) const</td><td class="" colspan="2" align="center">Draft<br>ICU 53</td>
</tr>
<tr class="row0">
-<td class="file">dcfmtsym.h</td><td class="proto">icu::DecimalFormatSymbols::DecimalFormatSymbols(const Locale&amp;, const NumberingSystem&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">nounit.h</td><td class="proto">UClassID icu::NoUnit::getDynamicClassID() const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">edits.h</td><td class="proto">Edits&amp; icu::Edits::mergeAndAppend(const Edits&amp;, const Edits&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">nounit.h</td><td class="proto">UObject* icu::NoUnit::clone() const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">edits.h</td><td class="proto">Edits&amp; icu::Edits::operator=(Edits&amp;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">nounit.h</td><td class="proto">icu::NoUnit::NoUnit(const NoUnit&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">edits.h</td><td class="proto">Edits&amp; icu::Edits::operator=(const Edits&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">nounit.h</td><td class="proto">icu::NoUnit::~NoUnit()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">edits.h</td><td class="proto">icu::Edits::Edits(Edits&amp;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">nounit.h</td><td class="proto"><tt>static</tt> NoUnit icu::NoUnit::base()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">edits.h</td><td class="proto">icu::Edits::Edits(const Edits&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">nounit.h</td><td class="proto"><tt>static</tt> NoUnit icu::NoUnit::percent()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">edits.h</td><td class="proto">int32_t icu::Edits::numberOfChanges()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">nounit.h</td><td class="proto"><tt>static</tt> NoUnit icu::NoUnit::permille()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">filteredbrk.h</td><td class="proto">BreakIterator* icu::FilteredBreakIteratorBuilder::wrapIteratorWithFilter(BreakIterator*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">nounit.h</td><td class="proto"><tt>static</tt> UClassID icu::NoUnit::getStaticClassID()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">filteredbrk.h</td><td class="proto"><tt>static</tt> FilteredBreakIteratorBuilder* icu::FilteredBreakIteratorBuilder::createEmptyInstance(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">Appendable&amp; icu::number::FormattedNumber::appendTo(Appendable&amp;, UErrorCode&amp;) <b><i>const</i></b></td><td class="">(const added)<br>
+</td><td>Draft<br>
+<span class=""><span>ICU 62</span></span></td>
</tr>
<tr class="row1">
-<td class="file">localpointer.h</td><td class="proto">LocalArray&lt;T&gt;&amp; icu::LocalArray&lt; T &gt;::moveFrom(LocalArray&lt; T &gt;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 56</td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::adoptPerUnit(icu::MeasureUnit*) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
</tr>
<tr class="row0">
-<td class="file">localpointer.h</td><td class="proto">LocalPointer&lt;T&gt;&amp; icu::LocalPointer&lt; T &gt;::moveFrom(LocalPointer&lt; T &gt;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 56</td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::adoptPerUnit(icu::MeasureUnit*)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row1">
-<td class="file">measfmt.h</td><td class="proto">void icu::MeasureFormat::parseObject(const UnicodeString&amp;, Formattable&amp;, ParsePosition&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 53</td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::adoptSymbols(NumberingSystem*) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">normalizer2.h</td><td class="proto">UBool icu::FilteredNormalizer2::isNormalizedUTF8(StringPiece, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::adoptSymbols(NumberingSystem*)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row1">
-<td class="file">normalizer2.h</td><td class="proto">UBool icu::Normalizer2::isNormalizedUTF8(StringPiece, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::adoptUnit(icu::MeasureUnit*) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">normalizer2.h</td><td class="proto">void icu::FilteredNormalizer2::normalizeUTF8(uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::adoptUnit(icu::MeasureUnit*)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row1">
-<td class="file">normalizer2.h</td><td class="proto">void icu::Normalizer2::normalizeUTF8(uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::decimal(UNumberDecimalSeparatorDisplay) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">nounit.h</td><td class="proto">UClassID icu::NoUnit::getDynamicClassID()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::decimal(UNumberDecimalSeparatorDisplay)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row1">
-<td class="file">nounit.h</td><td class="proto">UObject* icu::NoUnit::clone()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::grouping(U<b><i>Number</i></b>GroupingStrategy) const&amp;</td><td class="">(renamed)<br>
+</td><td>Draft<br>
+<span class=""><span>ICU 61</span></span></td>
</tr>
<tr class="row0">
-<td class="file">nounit.h</td><td class="proto">icu::NoUnit::NoUnit(const NoUnit&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::grouping(U<b><i>Number</i></b>GroupingStrategy)&amp;&amp;</td><td class="">(renamed)<br>
+</td><td>Draft<br>
+<span class=""><span>ICU 62</span></span></td>
</tr>
<tr class="row1">
-<td class="file">nounit.h</td><td class="proto">icu::NoUnit::~NoUnit()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::integerWidth(const IntegerWidth&amp;) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">nounit.h</td><td class="proto"><tt>static</tt> NoUnit icu::NoUnit::base()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::integerWidth(const IntegerWidth&amp;)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row1">
-<td class="file">nounit.h</td><td class="proto"><tt>static</tt> NoUnit icu::NoUnit::percent()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::notation(const Notation&amp;) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">nounit.h</td><td class="proto"><tt>static</tt> NoUnit icu::NoUnit::permille()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::notation(const Notation&amp;)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row1">
-<td class="file">nounit.h</td><td class="proto"><tt>static</tt> UClassID icu::NoUnit::getStaticClassID()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::perUnit(const icu::MeasureUnit&amp;) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
</tr>
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Appendable&amp; icu::number::FormattedNumber::appendTo(Appendable&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::perUnit(const icu::MeasureUnit&amp;)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::adoptSymbols(NumberingSystem*)</td><td class="">(missing)<br>
-</td><td>Draft<br>
-<span class=""><span>ICU 60</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::precision(const Precision&amp;) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::adoptUnit(icu::MeasureUnit*)</td><td class="">(missing)<br>
-</td><td>Draft<br>
-<span class=""><span>ICU 60</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::precision(const Precision&amp;)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::decimal(const UNumberDecimalSeparatorDisplay&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::roundingMode(UNumberFormatRoundingMode) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::integerWidth(const IntegerWidth&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::roundingMode(UNumberFormatRoundingMode)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::notation(const Notation&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::scale(const Scale&amp;) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::rounding(const Rounder&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::scale(const Scale&amp;)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::sign(const UNumberSignDisplay&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::sign(UNumberSignDisplay) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::symbols(const DecimalFormatSymbols&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::sign(UNumberSignDisplay)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::unit(const icu::MeasureUnit&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::symbols(const DecimalFormatSymbols&amp;) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::unitWidth(const UNumberUnitWidth&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::symbols(const DecimalFormatSymbols&amp;)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">FormattedNumber icu::number::LocalizedNumberFormatter::formatDecimal(StringPiece, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::unit(const icu::MeasureUnit&amp;) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">FormattedNumber icu::number::LocalizedNumberFormatter::formatDouble(double, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::unit(const icu::MeasureUnit&amp;)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">FormattedNumber icu::number::LocalizedNumberFormatter::formatInt(int64_t, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::unitWidth(UNumberUnitWidth) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">IntegerWidth icu::number::IntegerWidth::truncateAt(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::unitWidth(UNumberUnitWidth)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">LocalizedNumberFormatter icu::number::UnlocalizedNumberFormatter::locale(const icu::Locale&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">Format* icu::number::LocalizedNumberFormatter::toFormat(UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Rounder icu::number::CurrencyRounder::withCurrency(const CurrencyUnit&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">FormattedNumber icu::number::LocalizedNumberFormatter::formatDecimal(StringPiece, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Rounder icu::number::FractionRounder::withMaxDigits(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">FormattedNumber icu::number::LocalizedNumberFormatter::formatDouble(double, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Rounder icu::number::FractionRounder::withMinDigits(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">FormattedNumber icu::number::LocalizedNumberFormatter::formatInt(int64_t, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">FormattedNumber&amp; icu::number::FormattedNumber::operator=(FormattedNumber&amp;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">IntegerWidth icu::number::IntegerWidth::truncateAt(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Rounder icu::number::IncrementRounder::withMinFraction(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">LocalizedNumberFormatter icu::number::UnlocalizedNumberFormatter::locale(const icu::Locale&amp;) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Rounder icu::number::Rounder::withMode(UNumberFormatRoundingMode)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">LocalizedNumberFormatter icu::number::UnlocalizedNumberFormatter::locale(const icu::Locale&amp;)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">ScientificNotation icu::number::ScientificNotation::withExponentSignDisplay(UNumberSignDisplay)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">LocalizedNumberFormatter&amp; icu::number::LocalizedNumberFormatter::operator=(LocalizedNumberFormatter&amp;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">ScientificNotation icu::number::ScientificNotation::withMinExponentDigits(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">LocalizedNumberFormatter&amp; icu::number::LocalizedNumberFormatter::operator=(const LocalizedNumberFormatter&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">UBool icu::number::NumberFormatterSettings&lt; Derived &gt;::copyErrorTo(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">Precision icu::number::CurrencyPrecision::withCurrency(const CurrencyUnit&amp;) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">UnicodeString icu::number::FormattedNumber::toString()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">Precision icu::number::FractionPrecision::withMaxDigits(int32_t) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>enum</tt> UNumberDecimalSeparatorDisplay::UNUM_DECIMAL_SEPARATOR_ALWAYS</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">Precision icu::number::FractionPrecision::withMinDigits(int32_t) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>enum</tt> UNumberDecimalSeparatorDisplay::UNUM_DECIMAL_SEPARATOR_AUTO</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">Precision icu::number::IncrementPrecision::withMinFraction(int32_t) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_ACCOUNTING_ALWAYS</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">Scale&amp; icu::number::Scale::operator=(Scale&amp;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_ACCOUNTING</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">Scale&amp; icu::number::Scale::operator=(const Scale&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_ALWAYS</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">ScientificNotation icu::number::ScientificNotation::withExponentSignDisplay(UNumberSignDisplay) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_AUTO</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">ScientificNotation icu::number::ScientificNotation::withMinExponentDigits(int32_t) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_NEVER</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">UBool icu::number::FormattedNumber::nextFieldPosition(FieldPosition&amp;, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>enum</tt> UNumberUnitWidth::UNUM_UNIT_WIDTH_FULL_NAME</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">UBool icu::number::NumberFormatterSettings&lt; Derived &gt;::copyErrorTo(UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>enum</tt> UNumberUnitWidth::UNUM_UNIT_WIDTH_HIDDEN</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">UnicodeString icu::number::FormattedNumber::toString(UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>enum</tt> UNumberUnitWidth::UNUM_UNIT_WIDTH_ISO_CODE</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">UnicodeString icu::number::NumberFormatterSettings&lt; Derived &gt;::toSkeleton(UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>enum</tt> UNumberUnitWidth::UNUM_UNIT_WIDTH_NARROW</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">UnlocalizedNumberFormatter&amp; icu::number::UnlocalizedNumberFormatter::operator=(UnlocalizedNumberFormatter&amp;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>enum</tt> UNumberUnitWidth::UNUM_UNIT_WIDTH_SHORT</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">UnlocalizedNumberFormatter&amp; icu::number::UnlocalizedNumberFormatter::operator=(const UnlocalizedNumberFormatter&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">icu::number::FormattedNumber::FormattedNumber(FormattedNumber&amp;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
<td class="file">numberformatter.h</td><td class="proto">icu::number::FormattedNumber::~FormattedNumber()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">icu::number::LocalizedNumberFormatter::LocalizedNumberFormatter()=default</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">icu::number::LocalizedNumberFormatter::LocalizedNumberFormatter(const LocalizedNumberFormatter&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">icu::number::LocalizedNumberFormatter::LocalizedNumberFormatter(LocalizedNumberFormatter&amp;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">icu::number::LocalizedNumberFormatter::LocalizedNumberFormatter(const LocalizedNumberFormatter&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
<td class="file">numberformatter.h</td><td class="proto">icu::number::LocalizedNumberFormatter::~LocalizedNumberFormatter()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">icu::number::Scale::Scale(Scale&amp;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">icu::number::NumberFormatter::NumberFormatter()=delete</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">icu::number::Scale::Scale(const Scale&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">icu::number::UnlocalizedNumberFormatter::UnlocalizedNumberFormatter(const UnlocalizedNumberFormatter&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">icu::number::Scale::~Scale()</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> CompactNotation icu::number::Notation::compactLong()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto">icu::number::UnlocalizedNumberFormatter::UnlocalizedNumberFormatter()=default</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">icu::number::UnlocalizedNumberFormatter::UnlocalizedNumberFormatter(UnlocalizedNumberFormatter&amp;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">icu::number::UnlocalizedNumberFormatter::UnlocalizedNumberFormatter(const UnlocalizedNumberFormatter&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> CompactNotation icu::number::Notation::compactLong()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> CompactNotation icu::number::Notation::compactShort()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> CurrencyPrecision icu::number::Precision::currency(UCurrencyUsage)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> CurrencyRounder icu::number::Rounder::currency(UCurrencyUsage)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> FractionPrecision icu::number::Precision::fixedFraction(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> DigitRounder icu::number::Rounder::fixedDigits(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> FractionPrecision icu::number::Precision::integer()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> DigitRounder icu::number::Rounder::maxDigits(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> FractionPrecision icu::number::Precision::maxFraction(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> DigitRounder icu::number::Rounder::minDigits(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> FractionPrecision icu::number::Precision::minFraction(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> DigitRounder icu::number::Rounder::minMaxDigits(int32_t, int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> FractionPrecision icu::number::Precision::minMaxFraction(int32_t, int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> FractionRounder icu::number::Rounder::fixedFraction(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> IncrementPrecision icu::number::Precision::increment(double)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> FractionRounder icu::number::Rounder::integer()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> IntegerWidth icu::number::IntegerWidth::zeroFillTo(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> FractionRounder icu::number::Rounder::maxFraction(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> LocalizedNumberFormatter icu::number::NumberFormatter::withLocale(const Locale&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> FractionRounder icu::number::Rounder::minFraction(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Precision icu::number::Precision::unlimited()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> FractionRounder icu::number::Rounder::minMaxFraction(int32_t, int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Scale icu::number::Scale::byDecimal(StringPiece)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> IncrementRounder icu::number::Rounder::increment(double)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Scale icu::number::Scale::byDouble(double)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> IntegerWidth icu::number::IntegerWidth::zeroFillTo(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Scale icu::number::Scale::byDoubleAndPowerOfTen(double, int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> LocalizedNumberFormatter icu::number::NumberFormatter::withLocale(const Locale&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Scale icu::number::Scale::none()</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Rounder icu::number::Rounder::unlimited()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Scale icu::number::Scale::powerOfTen(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row0">
<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> ScientificNotation icu::number::Notation::engineering()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
@@ -835,58 +1961,152 @@
<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> ScientificNotation icu::number::Notation::scientific()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> SignificantDigitsPrecision icu::number::Precision::fixedSignificantDigits(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> SignificantDigitsPrecision icu::number::Precision::maxSignificantDigits(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> SignificantDigitsPrecision icu::number::Precision::minMaxSignificantDigits(int32_t, int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> SignificantDigitsPrecision icu::number::Precision::minSignificantDigits(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> SimpleNotation icu::number::Notation::simple()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> UnlocalizedNumberFormatter icu::number::NumberFormatter::forSkeleton(const UnicodeString&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> UnlocalizedNumberFormatter icu::number::NumberFormatter::with()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">void icu::number::FormattedNumber::getAllFieldPositions(FieldPositionIterator&amp;, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">void icu::number::FormattedNumber::populateFieldPosition(FieldPosition&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">ucurr.h</td><td class="proto"><tt>enum</tt> UCurrNameStyle::UCURR_NARROW_SYMBOL_NAME</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
</tr>
<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">void icu::number::FormattedNumber::populateFieldPositionIterator(FieldPositionIterator&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">udatpg.h</td><td class="proto"><tt>enum</tt> UDateTimePGDisplayWidth::UDATPG_ABBREVIATED</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
</tr>
<tr class="row0">
-<td class="file">numfmt.h</td><td class="proto">ERoundingMode icu::NumberFormat::getRoundingMode()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">udatpg.h</td><td class="proto"><tt>enum</tt> UDateTimePGDisplayWidth::UDATPG_NARROW</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
</tr>
<tr class="row1">
-<td class="file">numfmt.h</td><td class="proto">void icu::NumberFormat::setRoundingMode(ERoundingMode)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">udatpg.h</td><td class="proto"><tt>enum</tt> UDateTimePGDisplayWidth::UDATPG_WIDE</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
</tr>
<tr class="row0">
-<td class="file">rbnf.h</td><td class="proto">ERoundingMode icu::RuleBasedNumberFormat::getRoundingMode()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">udatpg.h</td><td class="proto">int32_t udatpg_getFieldDisplayName(const UDateTimePatternGenerator*, UDateTimePatternField, UDateTimePGDisplayWidth, UChar*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
</tr>
<tr class="row1">
-<td class="file">rbnf.h</td><td class="proto">void icu::RuleBasedNumberFormat::setRoundingMode(ERoundingMode)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">unistr.h</td><td class="proto">UnicodeString&amp; icu::UnicodeString::moveFrom(UnicodeString&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 56</td>
</tr>
<tr class="row0">
-<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_EDITS_NO_RESET</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">unumberformatter.h</td><td class="proto">UBool unumf_resultNextFieldPosition(const UFormattedNumber*, UFieldPosition*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row1">
-<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_OMIT_UNCHANGED_TEXT</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">unumberformatter.h</td><td class="proto">UFormattedNumber* unumf_openResult(UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row0">
-<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_TITLECASE_ADJUST_TO_CASED</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">unumberformatter.h</td><td class="proto">UNumberFormatter* unumf_openForSkeletonAndLocale(const UChar*, int32_t, const char*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row1">
-<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_TITLECASE_SENTENCES</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberDecimalSeparatorDisplay::UNUM_DECIMAL_SEPARATOR_ALWAYS</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row0">
-<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_TITLECASE_WHOLE_STRING</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberDecimalSeparatorDisplay::UNUM_DECIMAL_SEPARATOR_AUTO</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
</tr>
<tr class="row1">
-<td class="file">unistr.h</td><td class="proto">UnicodeString&amp; icu::UnicodeString::moveFrom(UnicodeString&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 56</td>
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> U<b><i>Number</i></b>GroupingStrategy::UNUM_GROUPING_AUTO</td><td class="">(renamed)<br>
+</td><td>Draft<br>
+<span class=""><span>ICU 61</span></span></td>
</tr>
<tr class="row0">
-<td class="file">uregex.h</td><td class="proto"><tt>enum</tt> URegexpFlag::UREGEX_CANON_EQ</td><td class="" colspan="2" align="center">Draft<br>ICU 2.4</td>
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> U<b><i>Number</i></b>GroupingStrategy::UNUM_GROUPING_MIN2</td><td class="">(renamed)<br>
+</td><td>Draft<br>
+<span class=""><span>ICU 61</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> U<b><i>Number</i></b>GroupingStrategy::UNUM_GROUPING_OFF</td><td class="">(renamed)<br>
+</td><td>Draft<br>
+<span class=""><span>ICU 61</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> U<b><i>Number</i></b>GroupingStrategy::UNUM_GROUPING_ON_ALIGNED</td><td class="">(renamed)<br>
+</td><td>Draft<br>
+<span class=""><span>ICU 61</span></span></td>
</tr>
<tr class="row1">
-<td class="file">utf16.h</td><td class="proto"><tt>#define</tt> U16_GET_OR_FFFD</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> U<b><i>Number</i></b>GroupingStrategy::UNUM_GROUPING_THOUSANDS</td><td class="">(renamed)<br>
+</td><td>Draft<br>
+<span class=""><span>ICU 61</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_ACCOUNTING_ALWAYS</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_ACCOUNTING_EXCEPT_ZERO</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_ACCOUNTING</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_ALWAYS</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_AUTO</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_EXCEPT_ZERO</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_NEVER</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberUnitWidth::UNUM_UNIT_WIDTH_FULL_NAME</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberUnitWidth::UNUM_UNIT_WIDTH_HIDDEN</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberUnitWidth::UNUM_UNIT_WIDTH_ISO_CODE</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberUnitWidth::UNUM_UNIT_WIDTH_NARROW</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberUnitWidth::UNUM_UNIT_WIDTH_SHORT</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto">int32_t unumf_resultToString(const UFormattedNumber*, UChar*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto">void unumf_close(UNumberFormatter*)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto">void unumf_closeResult(UFormattedNumber*)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto">void unumf_formatDecimal(const UNumberFormatter*, const char*, int32_t, UFormattedNumber*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto">void unumf_formatDouble(const UNumberFormatter*, double, UFormattedNumber*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto">void unumf_formatInt(const UNumberFormatter*, int64_t, UFormattedNumber*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto">void unumf_resultGetAllFieldPositions(const UFormattedNumber*, UFieldPositionIterator*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">uregex.h</td><td class="proto"><tt>enum</tt> URegexpFlag::UREGEX_CANON_EQ</td><td class="" colspan="2" align="center">Draft<br>ICU 2.4</td>
</tr>
<tr class="row0">
-<td class="file">utf16.h</td><td class="proto"><tt>#define</tt> U16_NEXT_OR_FFFD</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uspoof.h</td><td class="proto"><tt>enum</tt> USpoofChecks::USPOOF_HIDDEN_OVERLAY</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
</tr>
<tr class="row1">
-<td class="file">utf16.h</td><td class="proto"><tt>#define</tt> U16_PREV_OR_FFFD</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">utf8.h</td><td class="proto"><tt>#define</tt> U8_TRUNCATE_IF_INCOMPLETE</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
</tr>
</table>
</div>
@@ -898,12 +2118,13 @@
<i>This section shows cases where the signature was "simplified" for the sake of comparison. The simplified form is in bold, followed by
all possible variations in "original" form.</i>
<div class="other">
+<ul></ul>
</div>
<P></P>
<a href="#_top">(jump back to top)</a>
<hr>
<p>
-<i><font size="-1">Contents generated by StableAPI tool on Wed Mar 07 19:18:25 UTC 2018<br>Copyright (C) 2018, International Business Machines Corporation, All Rights Reserved.</font></i>
+<i><font size="-1">Contents generated by StableAPI tool on Wed Sep 26 13:17:43 PDT 2018<br>Copyright (C) 2018, International Business Machines Corporation, All Rights Reserved.</font></i>
</p>
</body>
</html>
diff --git a/Build/source/libs/icu/icu-src/readme.html b/Build/source/libs/icu/icu-src/readme.html
index 5f99a22c105..dba98b462ea 100644
--- a/Build/source/libs/icu/icu-src/readme.html
+++ b/Build/source/libs/icu/icu-src/readme.html
@@ -3,7 +3,7 @@
<html lang="en-US" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
<head>
- <title>ReadMe for ICU 61.1</title>
+ <title>ReadMe for ICU 63.1</title>
<meta name="COPYRIGHT" content=
"Copyright (C) 2016 and later: Unicode, Inc. and others. License &amp; terms of use: http://www.unicode.org/copyright.html"/>
<!-- meta name="COPYRIGHT" content=
@@ -32,7 +32,7 @@
International Components for Unicode<br/>
<span class="only-rc">Release Candidate</span>
<span class="only-milestone">(Milestone Release)</span>
- <abbr title="International Components for Unicode">ICU</abbr> 61.1 ReadMe
+ <abbr title="International Components for Unicode">ICU</abbr> 63.1 ReadMe
</h1>
<!-- Shouldn't need to comment/uncomment this paragraph, just change the body class -->
@@ -44,7 +44,7 @@
<p class="note only-rc">This is a release candidate version of ICU4C.
It is not recommended for production use.</p>
- <p>Last updated: 2018-Mar-21<br/>
+ <p>Last updated: 2018-Oct-05<br/>
Copyright &copy; 2016 and later: Unicode, Inc. and others. License &amp; terms of use:
<a href="http://www.unicode.org/copyright.html">http://www.unicode.org/copyright.html</a><br/>
Copyright &copy; 1997-2016 International Business Machines Corporation and others.
@@ -233,7 +233,7 @@
<h2><a name="News" href="#News" id="News">What Is New In This Release?</a></h2>
- <p>See the <a href="http://site.icu-project.org/download/61">ICU 61 download page</a>
+ <p>See the <a href="http://site.icu-project.org/download/63">ICU 63 download page</a>
for an overview of this release, important changes, new features, bug fixes, known issues,
changes to supported platforms and build environments,
and migration issues for existing applications migrating from previous ICU releases.</p>
@@ -266,10 +266,10 @@
most other platforms.<br />
Please unzip this file. </li>
- <li><strong>Subversion Source Repository:</strong><br />
+ <li><strong>GitHub Source Repository:</strong><br />
If you are interested in developing features, patches, or bug fixes for
ICU, you should probably be working with the latest version of the ICU
- source code. You will need to check the code out of our Subversion repository to
+ source code. You will need to clone and checkout the code from our GitHub repository to
ensure that you have the most recent version of all of the files. See our
<a href="http://site.icu-project.org/repository">source
repository</a> for details.</li>
diff --git a/Build/source/libs/icu/icu-src/source/Doxyfile.in b/Build/source/libs/icu/icu-src/source/Doxyfile.in
index 8c6c5deb220..25b535cc7ac 100644
--- a/Build/source/libs/icu/icu-src/source/Doxyfile.in
+++ b/Build/source/libs/icu/icu-src/source/Doxyfile.in
@@ -1,4 +1,5 @@
-# Doxyfile 1.3.7
+# Doxyfile 1.8.13
+
# Copyright (C) 2016 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
# ********************************************************************
@@ -7,229 +8,2474 @@
# * and others. All Rights Reserved.
# ********************************************************************
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project.
+#
+# All text after a double hash (##) is considered a comment and is placed in
+# front of the TAG it is preceding.
+#
+# All text after a single hash (#) is considered a comment and will be ignored.
+# The format is:
+# TAG = value [value, ...]
+# For lists, items can also be appended using:
+# TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (\" \").
+
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
+
+# This tag specifies the encoding used for all characters in the config file
+# that follow. The default is UTF-8 which is also the encoding used for all text
+# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
+# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
+# for the list of possible encodings.
+# The default value is: UTF-8.
+
+DOXYFILE_ENCODING = UTF-8
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
+# double-quotes, unless you are using Doxywizard) that should identify the
+# project for which the documentation is generated. This name is used in the
+# title of most generated pages and in a few other places.
+# The default value is: My Project.
+
PROJECT_NAME = "ICU @VERSION@"
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
+# could be handy for archiving the generated documentation or if some version
+# control system is used.
+
PROJECT_NUMBER = @VERSION@
+
+# Using the PROJECT_BRIEF tag one can provide an optional one line description
+# for a project that appears at the top of each page and should give viewer a
+# quick idea about the purpose of the project. Keep the description short.
+
+PROJECT_BRIEF =
+
+# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
+# in the documentation. The maximum height of the logo should not exceed 55
+# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
+# the logo to the output directory.
+
+PROJECT_LOGO =
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
+# into which the generated documentation will be written. If a relative path is
+# entered, it will be relative to the location where doxygen was started. If
+# left blank the current directory will be used.
+
OUTPUT_DIRECTORY = doc
+
+# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
+# directories (in 2 levels) under the output directory of each output format and
+# will distribute the generated files over these directories. Enabling this
+# option can be useful when feeding doxygen a huge amount of source files, where
+# putting all generated files in the same directory would otherwise causes
+# performance problems for the file system.
+# The default value is: NO.
+
CREATE_SUBDIRS = NO
+
+# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
+# characters to appear in the names of generated files. If set to NO, non-ASCII
+# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
+# U+3044.
+# The default value is: NO.
+
+ALLOW_UNICODE_NAMES = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
+# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
+# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
+# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
+# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
+# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
+# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
+# Ukrainian and Vietnamese.
+# The default value is: English.
+
OUTPUT_LANGUAGE = English
-#USE_WINDOWS_ENCODING = YES
-DOXYFILE_ENCODING = UTF-8
+
+# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
+# descriptions after the members that are listed in the file and class
+# documentation (similar to Javadoc). Set to NO to disable this.
+# The default value is: YES.
+
BRIEF_MEMBER_DESC = YES
+
+# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief
+# description of a member or function before the detailed description
+#
+# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+# The default value is: YES.
+
REPEAT_BRIEF = YES
-ABBREVIATE_BRIEF =
+
+# This tag implements a quasi-intelligent brief description abbreviator that is
+# used to form the text in various listings. Each string in this list, if found
+# as the leading text of the brief description, will be stripped from the text
+# and the result, after processing the whole list, is used as the annotated
+# text. Otherwise, the brief description is used as-is. If left blank, the
+# following values are used ($name is automatically replaced with the name of
+# the entity):The $name class, The $name widget, The $name file, is, provides,
+# specifies, contains, represents, a, an and the.
+
+ABBREVIATE_BRIEF =
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# doxygen will generate a detailed section even if there is only a brief
+# description.
+# The default value is: NO.
+
ALWAYS_DETAILED_SEC = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+# The default value is: NO.
+
INLINE_INHERITED_MEMB = NO
+
+# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path
+# before files name in the file list and in the header files. If set to NO the
+# shortest path that makes the file name unique will be used
+# The default value is: YES.
+
FULL_PATH_NAMES = NO
-STRIP_FROM_PATH =
-STRIP_FROM_INC_PATH =
+
+# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
+# Stripping is only done if one of the specified strings matches the left-hand
+# part of the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the path to
+# strip.
+#
+# Note that you can specify absolute paths here, but also relative paths, which
+# will be relative from the directory where doxygen is started.
+# This tag requires that the tag FULL_PATH_NAMES is set to YES.
+
+STRIP_FROM_PATH =
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
+# path mentioned in the documentation of a class, which tells the reader which
+# header file to include in order to use a class. If left blank only the name of
+# the header file containing the class definition is used. Otherwise one should
+# specify the list of include paths that are normally passed to the compiler
+# using the -I flag.
+
+STRIP_FROM_INC_PATH =
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
+# less readable) file names. This can be useful is your file systems doesn't
+# support long names like on DOS, Mac, or CD-ROM.
+# The default value is: NO.
+
SHORT_NAMES = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
+# first line (until the first dot) of a Javadoc-style comment as the brief
+# description. If set to NO, the Javadoc-style will behave just like regular Qt-
+# style comments (thus requiring an explicit @brief command for a brief
+# description.)
+# The default value is: NO.
+
JAVADOC_AUTOBRIEF = YES
+
+# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
+# line (until the first dot) of a Qt-style comment as the brief description. If
+# set to NO, the Qt-style will behave just like regular Qt-style comments (thus
+# requiring an explicit \brief command for a brief description.)
+# The default value is: NO.
+
+QT_AUTOBRIEF = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
+# multi-line C++ special comment block (i.e. a block of //! or /// comments) as
+# a brief description. This used to be the default behavior. The new default is
+# to treat a multi-line C++ comment block as a detailed description. Set this
+# tag to YES if you prefer the old behavior instead.
+#
+# Note that setting this tag to YES also means that rational rose comments are
+# not recognized any more.
+# The default value is: NO.
+
MULTILINE_CPP_IS_BRIEF = NO
-#DETAILS_AT_TOP = NO
+
+# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
+# documentation from any documented member that it re-implements.
+# The default value is: YES.
+
INHERIT_DOCS = YES
-DISTRIBUTE_GROUP_DOC = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new
+# page for each member. If set to NO, the documentation of a member will be part
+# of the file/class/namespace that contains it.
+# The default value is: NO.
+
+SEPARATE_MEMBER_PAGES = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
+# uses this value to replace tabs by spaces in code fragments.
+# Minimum value: 1, maximum value: 16, default value: 4.
+
TAB_SIZE = 8
+
+# This tag can be used to specify a number of aliases that act as commands in
+# the documentation. An alias has the form:
+# name=value
+# For example adding
+# "sideeffect=@par Side Effects:\n"
+# will allow you to put the command \sideeffect (or @sideeffect) in the
+# documentation, which will result in a user-defined paragraph with heading
+# "Side Effects:". You can put \n's in the value part of an alias to insert
+# newlines.
+
ALIASES = "memo=\par Note:\n" \
"draft=\xrefitem draft \"Draft\" \"Draft List\" This API may be changed in the future versions and was introduced in" \
"stable=\xrefitem stable \"Stable\" \"Stable List\"" \
"deprecated=\xrefitem deprecated \"Deprecated\" \"Deprecated List\"" \
"obsolete=\xrefitem obsolete \"Obsolete\" \"Obsolete List\"" \
"system=\xrefitem system \"System\" \"System List\" \n Do not use unless you know what you are doing." \
- "internal=\xrefitem internal \"Internal\" \"Internal List\" Do not use. This API is for internal use only."
+ "internal=\xrefitem internal \"Internal\" \"Internal List\" Do not use. This API is for internal use only."
+
+# This tag can be used to specify a number of word-keyword mappings (TCL only).
+# A mapping has the form "name=value". For example adding "class=itcl::class"
+# will allow you to use the command class in the itcl::class meaning.
+
+TCL_SUBST =
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
+# only. Doxygen will then generate output that is more tailored for C. For
+# instance, some of the names that are used will be different. The list of all
+# members will be omitted, etc.
+# The default value is: NO.
OPTIMIZE_OUTPUT_FOR_C = YES
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
+# Python sources only. Doxygen will then generate output that is more tailored
+# for that language. For instance, namespaces will be presented as packages,
+# qualified scopes will look different, etc.
+# The default value is: NO.
+
OPTIMIZE_OUTPUT_JAVA = NO
+
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+# sources. Doxygen will then generate output that is tailored for Fortran.
+# The default value is: NO.
+
+OPTIMIZE_FOR_FORTRAN = NO
+
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+# sources. Doxygen will then generate output that is tailored for VHDL.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_VHDL = NO
+
+# Doxygen selects the parser to use depending on the extension of the files it
+# parses. With this tag you can assign which parser to use for a given
+# extension. Doxygen has a built-in mapping, but you can override or extend it
+# using this tag. The format is ext=language, where ext is a file extension, and
+# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
+# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
+# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
+# Fortran. In the later case the parser tries to guess whether the code is fixed
+# or free formatted code, this is the default for Fortran type files), VHDL. For
+# instance to make doxygen treat .inc files as Fortran files (default is PHP),
+# and .f files as C (default is Fortran), use: inc=Fortran f=C.
+#
+# Note: For files without extension you can use no_extension as a placeholder.
+#
+# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
+# the files are not read by doxygen.
+
+EXTENSION_MAPPING =
+
+# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
+# according to the Markdown format, which allows for more readable
+# documentation. See http://daringfireball.net/projects/markdown/ for details.
+# The output of markdown processing is further processed by doxygen, so you can
+# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
+# case of backward compatibilities issues.
+# The default value is: YES.
+
+MARKDOWN_SUPPORT = YES
+
+# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up
+# to that level are automatically included in the table of contents, even if
+# they do not have an id attribute.
+# Note: This feature currently applies only to Markdown headings.
+# Minimum value: 0, maximum value: 99, default value: 0.
+# This tag requires that the tag MARKDOWN_SUPPORT is set to YES.
+
+TOC_INCLUDE_HEADINGS = 0
+
+# When enabled doxygen tries to link words that correspond to documented
+# classes, or namespaces to their corresponding documentation. Such a link can
+# be prevented in individual cases by putting a % sign in front of the word or
+# globally by setting AUTOLINK_SUPPORT to NO.
+# The default value is: YES.
+
+AUTOLINK_SUPPORT = YES
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+# to include (a tag file for) the STL sources as input, then you should set this
+# tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string);
+# versus func(std::string) {}). This also make the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+# The default value is: NO.
+
+BUILTIN_STL_SUPPORT = NO
+
+# If you use Microsoft's C++/CLI language, you should set this option to YES to
+# enable parsing support.
+# The default value is: NO.
+
+CPP_CLI_SUPPORT = NO
+
+# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
+# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
+# will parse them like normal C++ but will assume all classes use public instead
+# of private inheritance when no explicit protection keyword is present.
+# The default value is: NO.
+
+SIP_SUPPORT = NO
+
+# For Microsoft's IDL there are propget and propput attributes to indicate
+# getter and setter methods for a property. Setting this option to YES will make
+# doxygen to replace the get and set methods by a property in the documentation.
+# This will only work if the methods are indeed getting or setting a simple
+# type. If this is not the case, or you want to show the methods anyway, you
+# should set this option to NO.
+# The default value is: YES.
+
+IDL_PROPERTY_SUPPORT = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+# The default value is: NO.
+
+DISTRIBUTE_GROUP_DOC = YES
+
+# If one adds a struct or class to a group and this option is enabled, then also
+# any nested class or struct is added to the same group. By default this option
+# is disabled and one has to add nested compounds explicitly via \ingroup.
+# The default value is: NO.
+
+GROUP_NESTED_COMPOUNDS = NO
+
+# Set the SUBGROUPING tag to YES to allow class member groups of the same type
+# (for instance a group of public functions) to be put as a subgroup of that
+# type (e.g. under the Public Functions section). Set it to NO to prevent
+# subgrouping. Alternatively, this can be done per class using the
+# \nosubgrouping command.
+# The default value is: YES.
+
SUBGROUPING = YES
+
+# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
+# are shown inside the group in which they are included (e.g. using \ingroup)
+# instead of on a separate page (for HTML and Man pages) or section (for LaTeX
+# and RTF).
+#
+# Note that this feature does not work in combination with
+# SEPARATE_MEMBER_PAGES.
+# The default value is: NO.
+
+INLINE_GROUPED_CLASSES = NO
+
+# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
+# with only public data fields or simple typedef fields will be shown inline in
+# the documentation of the scope in which they are defined (i.e. file,
+# namespace, or group documentation), provided this scope is documented. If set
+# to NO, structs, classes, and unions are shown on a separate page (for HTML and
+# Man pages) or section (for LaTeX and RTF).
+# The default value is: NO.
+
+INLINE_SIMPLE_STRUCTS = NO
+
+# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
+# enum is documented as struct, union, or enum with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically be
+# useful for C code in case the coding convention dictates that all compound
+# types are typedef'ed and only the typedef is referenced, never the tag name.
+# The default value is: NO.
+
+TYPEDEF_HIDES_STRUCT = NO
+
+# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
+# cache is used to resolve symbols given their name and scope. Since this can be
+# an expensive process and often the same symbol appears multiple times in the
+# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
+# doxygen will become slower. If the cache is too large, memory is wasted. The
+# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
+# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
+# symbols. At the end of a run doxygen will report the cache usage and suggest
+# the optimal cache size from a speed point of view.
+# Minimum value: 0, maximum value: 9, default value: 0.
+
+LOOKUP_CACHE_SIZE = 0
+
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in
+# documentation are documented, even if no documentation was available. Private
+# class members and static file members will be hidden unless the
+# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
+# Note: This will also disable the warnings about undocumented members that are
+# normally produced when WARNINGS is set to YES.
+# The default value is: NO.
+
EXTRACT_ALL = NO
+
+# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will
+# be included in the documentation.
+# The default value is: NO.
+
EXTRACT_PRIVATE = NO
+
+# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal
+# scope will be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PACKAGE = NO
+
+# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be
+# included in the documentation.
+# The default value is: NO.
+
EXTRACT_STATIC = NO
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined
+# locally in source files will be included in the documentation. If set to NO,
+# only classes defined in header files are included. Does not have any effect
+# for Java sources.
+# The default value is: YES.
+
EXTRACT_LOCAL_CLASSES = YES
+
+# This flag is only useful for Objective-C code. If set to YES, local methods,
+# which are defined in the implementation section but not in the interface are
+# included in the documentation. If set to NO, only methods in the interface are
+# included.
+# The default value is: NO.
+
EXTRACT_LOCAL_METHODS = NO
+
+# If this flag is set to YES, the members of anonymous namespaces will be
+# extracted and appear in the documentation as a namespace called
+# 'anonymous_namespace{file}', where file will be replaced with the base name of
+# the file that contains the anonymous namespace. By default anonymous namespace
+# are hidden.
+# The default value is: NO.
+
+EXTRACT_ANON_NSPACES = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
+# undocumented members inside documented classes or files. If set to NO these
+# members will be included in the various overviews, but no documentation
+# section is generated. This option has no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
+
HIDE_UNDOC_MEMBERS = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy. If set
+# to NO, these classes will be included in the various overviews. This option
+# has no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
+
HIDE_UNDOC_CLASSES = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
+# (class|struct|union) declarations. If set to NO, these declarations will be
+# included in the documentation.
+# The default value is: NO.
+
HIDE_FRIEND_COMPOUNDS = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
+# documentation blocks found inside the body of a function. If set to NO, these
+# blocks will be appended to the function's detailed documentation block.
+# The default value is: NO.
+
HIDE_IN_BODY_DOCS = NO
+
+# The INTERNAL_DOCS tag determines if documentation that is typed after a
+# \internal command is included. If the tag is set to NO then the documentation
+# will be excluded. Set it to YES to include the internal documentation.
+# The default value is: NO.
+
INTERNAL_DOCS = YES
+
+# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
+# names in lower-case letters. If set to YES, upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# and Mac users are advised to set this option to NO.
+# The default value is: system dependent.
+
CASE_SENSE_NAMES = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
+# their full class and namespace scopes in the documentation. If set to YES, the
+# scope will be hidden.
+# The default value is: NO.
+
HIDE_SCOPE_NAMES = NO
+
+# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will
+# append additional text to a page's title, such as Class Reference. If set to
+# YES the compound reference will be hidden.
+# The default value is: NO.
+
+HIDE_COMPOUND_REFERENCE= NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
+# the files that are included by a file in the documentation of that file.
+# The default value is: YES.
+
SHOW_INCLUDE_FILES = YES
+
+# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
+# grouped member an include statement to the documentation, telling the reader
+# which file to include in order to use the member.
+# The default value is: NO.
+
+SHOW_GROUPED_MEMB_INC = NO
+
+# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
+# files with double quotes in the documentation rather than with sharp brackets.
+# The default value is: NO.
+
+FORCE_LOCAL_INCLUDES = NO
+
+# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
+# documentation for inline members.
+# The default value is: YES.
+
INLINE_INFO = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
+# (detailed) documentation of file and class members alphabetically by member
+# name. If set to NO, the members will appear in declaration order.
+# The default value is: YES.
+
SORT_MEMBER_DOCS = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
+# descriptions of file, namespace and class members alphabetically by member
+# name. If set to NO, the members will appear in declaration order. Note that
+# this will also influence the order of the classes in the class list.
+# The default value is: NO.
+
SORT_BRIEF_DOCS = NO
+
+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
+# (brief and detailed) documentation of class members so that constructors and
+# destructors are listed first. If set to NO the constructors will appear in the
+# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
+# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
+# member documentation.
+# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
+# detailed member documentation.
+# The default value is: NO.
+
+SORT_MEMBERS_CTORS_1ST = NO
+
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
+# of group names into alphabetical order. If set to NO the group names will
+# appear in their defined order.
+# The default value is: NO.
+
+SORT_GROUP_NAMES = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
+# fully-qualified names, including namespaces. If set to NO, the class list will
+# be sorted only by class name, not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the alphabetical
+# list.
+# The default value is: NO.
+
SORT_BY_SCOPE_NAME = NO
+
+# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
+# type resolution of all parameters of a function it will reject a match between
+# the prototype and the implementation of a member function even if there is
+# only one candidate or it is obvious which candidate to choose by doing a
+# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
+# accept a match between prototype and implementation in such cases.
+# The default value is: NO.
+
+STRICT_PROTO_MATCHING = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo
+# list. This list is created by putting \todo commands in the documentation.
+# The default value is: YES.
+
GENERATE_TODOLIST = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test
+# list. This list is created by putting \test commands in the documentation.
+# The default value is: YES.
+
GENERATE_TESTLIST = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug
+# list. This list is created by putting \bug commands in the documentation.
+# The default value is: YES.
+
GENERATE_BUGLIST = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO)
+# the deprecated list. This list is created by putting \deprecated commands in
+# the documentation.
+# The default value is: YES.
+
GENERATE_DEPRECATEDLIST= YES
-ENABLED_SECTIONS =
+
+# The ENABLED_SECTIONS tag can be used to enable conditional documentation
+# sections, marked by \if <section_label> ... \endif and \cond <section_label>
+# ... \endcond blocks.
+
+ENABLED_SECTIONS =
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
+# initial value of a variable or macro / define can have for it to appear in the
+# documentation. If the initializer consists of more lines than specified here
+# it will be hidden. Use a value of 0 to hide initializers completely. The
+# appearance of the value of individual variables and macros / defines can be
+# controlled using \showinitializer or \hideinitializer command in the
+# documentation regardless of this setting.
+# Minimum value: 0, maximum value: 10000, default value: 30.
+
MAX_INITIALIZER_LINES = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
+# the bottom of the documentation of classes and structs. If set to YES, the
+# list will mention the files that were used to generate the documentation.
+# The default value is: YES.
+
SHOW_USED_FILES = YES
-# docset
-GENERATE_DOCSET = NO
-DOCSET_FEEDNAME = "ICU @VERSION@"
-DOCSET_BUNDLE_ID = org.icu-project.icu4c
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
+# will remove the Files entry from the Quick Index and from the Folder Tree View
+# (if specified).
+# The default value is: YES.
+
+SHOW_FILES = YES
+
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
+# page. This will remove the Namespaces entry from the Quick Index and from the
+# Folder Tree View (if specified).
+# The default value is: YES.
+
+SHOW_NAMESPACES = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from
+# the version control system). Doxygen will invoke the program by executing (via
+# popen()) the command command input-file, where command is the value of the
+# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
+# by doxygen. Whatever the program writes to standard output is used as the file
+# version. For an example see the documentation.
+
+FILE_VERSION_FILTER =
+
+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
+# by doxygen. The layout file controls the global structure of the generated
+# output files in an output format independent way. To create the layout file
+# that represents doxygen's defaults, run doxygen with the -l option. You can
+# optionally specify a file name after the option, if omitted DoxygenLayout.xml
+# will be used as the name of the layout file.
+#
+# Note that if you run doxygen from a directory containing a file called
+# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
+# tag is left empty.
+
+LAYOUT_FILE =
+
+# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
+# the reference definitions. This must be a list of .bib files. The .bib
+# extension is automatically appended if omitted. This requires the bibtex tool
+# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
+# For LaTeX the style of the bibliography can be controlled using
+# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
+# search path. See also \cite for info how to create references.
+
+CITE_BIB_FILES =
#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
+# Configuration options related to warning and progress messages
#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated to
+# standard output by doxygen. If QUIET is set to YES this implies that the
+# messages are off.
+# The default value is: NO.
+
QUIET = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES
+# this implies that the warnings are on.
+#
+# Tip: Turn warnings on while writing the documentation.
+# The default value is: YES.
+
WARNINGS = YES
+
+# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate
+# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
+# will automatically be disabled.
+# The default value is: YES.
+
WARN_IF_UNDOCUMENTED = YES
+
+# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some parameters
+# in a documented function, or documenting parameters that don't exist or using
+# markup commands wrongly.
+# The default value is: YES.
+
WARN_IF_DOC_ERROR = YES
+
+# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
+# are documented, but have no documentation for their parameters or return
+# value. If set to NO, doxygen will only warn about wrong or incomplete
+# parameter documentation, but not about the absence of documentation.
+# The default value is: NO.
+
+WARN_NO_PARAMDOC = NO
+
+# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when
+# a warning is encountered.
+# The default value is: NO.
+
+WARN_AS_ERROR = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that doxygen
+# can produce. The string should contain the $file, $line, and $text tags, which
+# will be replaced by the file and line number from which the warning originated
+# and the warning text. Optionally the format may contain $version, which will
+# be replaced by the version of the file (if it could be obtained via
+# FILE_VERSION_FILTER)
+# The default value is: $file:$line: $text.
+
WARN_FORMAT = "$file:$line: $text"
-WARN_LOGFILE =
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning and error
+# messages should be written. If left blank the output is written to standard
+# error (stderr).
+
+WARN_LOGFILE =
+
#---------------------------------------------------------------------------
-# configuration options related to the input files
+# Configuration options related to the input files
#---------------------------------------------------------------------------
-INPUT = @srcdir@/common/unicode @srcdir@/i18n/unicode @srcdir@/io/unicode @srcdir@/layout/LEFontInstance.h @srcdir@/layout/LEGlyphStorage.h @srcdir@/layout/LELanguages.h @srcdir@/layout/LEScripts.h @srcdir@/layout/LESwaps.h @srcdir@/layout/LETypes.h @srcdir@/layout/LayoutEngine.h @srcdir@/layoutex/layout
+
+# The INPUT tag is used to specify the files and/or directories that contain
+# documented source files. You may enter file names like myfile.cpp or
+# directories like /usr/src/myproject. Separate the files or directories with
+# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
+# Note: If this tag is empty the current directory is searched.
+
+INPUT = @srcdir@/common/unicode \
+ @srcdir@/i18n/unicode \
+ @srcdir@/io/unicode \
+ @srcdir@/layoutex/layout
+
+# This tag can be used to specify the character encoding of the source files
+# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
+# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
+# documentation (see: http://www.gnu.org/software/libiconv) for the list of
+# possible encodings.
+# The default value is: UTF-8.
+
+INPUT_ENCODING = UTF-8
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
+# *.h) to filter out the source-files in the directories.
+#
+# Note that for custom extensions or not directly supported extensions you also
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
+# read by doxygen.
+#
+# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,
+# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,
+# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,
+# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08,
+# *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf and *.qsf.
+
FILE_PATTERNS = *.h
+
+# The RECURSIVE tag can be used to specify whether or not subdirectories should
+# be searched for input files as well.
+# The default value is: NO.
+
RECURSIVE = NO
-EXCLUDE = @srcdir@/common/unicode/urename.h @srcdir@/common/unicode/udraft.h @srcdir@/common/unicode/udeprctd.h @srcdir@/common/unicode/uobslete.h @srcdir@/common/unicode/ppalmos.h
+
+# The EXCLUDE tag can be used to specify files and/or directories that should be
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+#
+# Note that relative paths are relative to the directory from which doxygen is
+# run.
+
+EXCLUDE = @srcdir@/common/unicode/urename.h \
+ @srcdir@/common/unicode/udraft.h \
+ @srcdir@/common/unicode/udeprctd.h \
+ @srcdir@/common/unicode/uobslete.h \
+ @srcdir@/common/unicode/ppalmos.h
+
+# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
+# directories that are symbolic links (a Unix file system feature) are excluded
+# from the input.
+# The default value is: NO.
+
EXCLUDE_SYMLINKS = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories.
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories for example use the pattern */test/*
+
EXCLUDE_PATTERNS = config*.h
+
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+# (namespaces, classes, functions, etc.) that should be excluded from the
+# output. The symbol name can be a fully qualified name, a word, or if the
+# wildcard * is used, a substring. Examples: ANamespace, AClass,
+# AClass::ANamespace, ANamespace::*Test
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories use the pattern */test/*
+
+EXCLUDE_SYMBOLS =
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or directories
+# that contain example code fragments that are included (see the \include
+# command).
+
EXAMPLE_PATH = @srcdir@/
-EXAMPLE_PATTERNS =
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
+# *.h) to filter out the source-files in the directories. If left blank all
+# files are included.
+
+EXAMPLE_PATTERNS =
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude commands
+# irrespective of the value of the RECURSIVE tag.
+# The default value is: NO.
+
EXAMPLE_RECURSIVE = NO
-IMAGE_PATH =
-INPUT_FILTER =
+
+# The IMAGE_PATH tag can be used to specify one or more files or directories
+# that contain images that are to be included in the documentation (see the
+# \image command).
+
+IMAGE_PATH =
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command:
+#
+# <filter> <input-file>
+#
+# where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the
+# name of an input file. Doxygen will then use the output that the filter
+# program writes to standard output. If FILTER_PATTERNS is specified, this tag
+# will be ignored.
+#
+# Note that the filter must not add or remove lines; it is applied before the
+# code is scanned, but not when the output code is generated. If lines are added
+# or removed, the anchors will not be placed correctly.
+#
+# Note that for custom extensions or not directly supported extensions you also
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
+# properly processed by doxygen.
+
+INPUT_FILTER =
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis. Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match. The filters are a list of the form: pattern=filter
+# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
+# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
+# patterns match the file name, INPUT_FILTER is applied.
+#
+# Note that for custom extensions or not directly supported extensions you also
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
+# properly processed by doxygen.
+
+FILTER_PATTERNS =
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER) will also be used to filter the input files that are used for
+# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
+# The default value is: NO.
+
FILTER_SOURCE_FILES = NO
+
+# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
+# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
+# it is also possible to disable source filtering for a specific pattern using
+# *.ext= (so without naming a filter).
+# This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
+
+FILTER_SOURCE_PATTERNS =
+
+# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
+# is part of the input, its contents will be placed on the main page
+# (index.html). This can be useful if you have a project on for instance GitHub
+# and want to reuse the introduction page also for the doxygen output.
+
+USE_MDFILE_AS_MAINPAGE =
+
#---------------------------------------------------------------------------
-# configuration options related to source browsing
+# Configuration options related to source browsing
#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will be
+# generated. Documented entities will be cross-referenced with these sources.
+#
+# Note: To get rid of all source code in the generated output, make sure that
+# also VERBATIM_HEADERS is set to NO.
+# The default value is: NO.
+
SOURCE_BROWSER = YES
+
+# Setting the INLINE_SOURCES tag to YES will include the body of functions,
+# classes and enums directly into the documentation.
+# The default value is: NO.
+
INLINE_SOURCES = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
+# special comment blocks from generated source code fragments. Normal C, C++ and
+# Fortran comments will always remain visible.
+# The default value is: YES.
+
STRIP_CODE_COMMENTS = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
+# function all documented functions referencing it will be listed.
+# The default value is: NO.
+
REFERENCED_BY_RELATION = YES
+
+# If the REFERENCES_RELATION tag is set to YES then for each documented function
+# all documented entities called/used by that function will be listed.
+# The default value is: NO.
+
REFERENCES_RELATION = YES
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
+# to YES then the hyperlinks from functions in REFERENCES_RELATION and
+# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
+# link to the documentation.
+# The default value is: YES.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
+# source code will show a tooltip with additional information such as prototype,
+# brief description and links to the definition and documentation. Since this
+# will make the HTML file larger and loading of large files a bit slower, you
+# can opt to disable this feature.
+# The default value is: YES.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
+
+SOURCE_TOOLTIPS = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code will
+# point to the HTML generated by the htags(1) tool instead of doxygen built-in
+# source browser. The htags tool is part of GNU's global source tagging system
+# (see http://www.gnu.org/software/global/global.html). You will need version
+# 4.8.6 or higher.
+#
+# To use it do the following:
+# - Install the latest version of global
+# - Enable SOURCE_BROWSER and USE_HTAGS in the config file
+# - Make sure the INPUT points to the root of the source tree
+# - Run doxygen as normal
+#
+# Doxygen will invoke htags (and that will in turn invoke gtags), so these
+# tools must be available from the command line (i.e. in the search path).
+#
+# The result: instead of the source browser generated by doxygen, the links to
+# source code will now point to the output of htags.
+# The default value is: NO.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
+
+USE_HTAGS = NO
+
+# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
+# verbatim copy of the header file for each class for which an include is
+# specified. Set to NO to disable this.
+# See also: Section \class.
+# The default value is: YES.
+
VERBATIM_HEADERS = YES
+
+# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the
+# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the
+# cost of reduced performance. This can be particularly helpful with template
+# rich C++ code for which doxygen's built-in parser lacks the necessary type
+# information.
+# Note: The availability of this option depends on whether or not doxygen was
+# generated with the -Duse-libclang=ON option for CMake.
+# The default value is: NO.
+
+CLANG_ASSISTED_PARSING = NO
+
+# If clang assisted parsing is enabled you can provide the compiler with command
+# line options that you would normally use when invoking the compiler. Note that
+# the include paths will already be set by doxygen for the files and directories
+# specified with INPUT and INCLUDE_PATH.
+# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES.
+
+CLANG_OPTIONS =
+
#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
+# Configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
+# compounds will be generated. Enable this if the project contains a lot of
+# classes, structs, unions or interfaces.
+# The default value is: YES.
+
ALPHABETICAL_INDEX = YES
+
+# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
+# which the alphabetical index list will be split.
+# Minimum value: 1, maximum value: 20, default value: 5.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
+
COLS_IN_ALPHA_INDEX = 5
-IGNORE_PREFIX =
+
+# In case all classes in a project start with a common prefix, all classes will
+# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
+# can be used to specify a prefix (or a list of prefixes) that should be ignored
+# while generating the index headers.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
+
+IGNORE_PREFIX =
+
#---------------------------------------------------------------------------
-# configuration options related to the HTML output
+# Configuration options related to the HTML output
#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output
+# The default value is: YES.
+
GENERATE_HTML = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
HTML_OUTPUT = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
+# generated HTML page (for example: .htm, .php, .asp).
+# The default value is: .html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
HTML_FILE_EXTENSION = .html
-HTML_HEADER =
-HTML_FOOTER =
-HTML_STYLESHEET =
-HTML_ALIGN_MEMBERS = YES
+
+# The HTML_HEADER tag can be used to specify a user-defined HTML header file for
+# each generated HTML page. If the tag is left blank doxygen will generate a
+# standard header.
+#
+# To get valid HTML the header file that includes any scripts and style sheets
+# that doxygen needs, which is dependent on the configuration options used (e.g.
+# the setting GENERATE_TREEVIEW). It is highly recommended to start with a
+# default header using
+# doxygen -w html new_header.html new_footer.html new_stylesheet.css
+# YourConfigFile
+# and then modify the file new_header.html. See also section "Doxygen usage"
+# for information on how to generate the default header that doxygen normally
+# uses.
+# Note: The header is subject to change so you typically have to regenerate the
+# default header when upgrading to a newer version of doxygen. For a description
+# of the possible markers and block names see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_HEADER =
+
+# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
+# generated HTML page. If the tag is left blank doxygen will generate a standard
+# footer. See HTML_HEADER for more information on how to generate a default
+# footer and what special commands can be used inside the footer. See also
+# section "Doxygen usage" for information on how to generate the default footer
+# that doxygen normally uses.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_FOOTER =
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
+# sheet that is used by each HTML page. It can be used to fine-tune the look of
+# the HTML output. If left blank doxygen will generate a default style sheet.
+# See also section "Doxygen usage" for information on how to generate the style
+# sheet that doxygen normally uses.
+# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
+# it is more robust and this tag (HTML_STYLESHEET) will in the future become
+# obsolete.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_STYLESHEET =
+
+# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
+# cascading style sheets that are included after the standard style sheets
+# created by doxygen. Using this option one can overrule certain style aspects.
+# This is preferred over using HTML_STYLESHEET since it does not replace the
+# standard style sheet and is therefore more robust against future updates.
+# Doxygen will copy the style sheet files to the output directory.
+# Note: The order of the extra style sheet files is of importance (e.g. the last
+# style sheet in the list overrules the setting of the previous ones in the
+# list). For an example see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_STYLESHEET =
+
+# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the HTML output directory. Note
+# that these files will be copied to the base HTML output directory. Use the
+# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
+# files. In the HTML_STYLESHEET file, use the file name only. Also note that the
+# files will be copied as-is; there are no commands or markers available.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_FILES =
+
+# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
+# will adjust the colors in the style sheet and background images according to
+# this color. Hue is specified as an angle on a colorwheel, see
+# http://en.wikipedia.org/wiki/Hue for more information. For instance the value
+# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
+# purple, and 360 is red again.
+# Minimum value: 0, maximum value: 359, default value: 220.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_HUE = 220
+
+# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
+# in the HTML output. For a value of 0 the output will use grayscales only. A
+# value of 255 will produce the most vivid colors.
+# Minimum value: 0, maximum value: 255, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_SAT = 100
+
+# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
+# luminance component of the colors in the HTML output. Values below 100
+# gradually make the output lighter, whereas values above 100 make the output
+# darker. The value divided by 100 is the actual gamma applied, so 80 represents
+# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
+# change the gamma.
+# Minimum value: 40, maximum value: 240, default value: 80.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_GAMMA = 80
+
+# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
+# page will contain the date and time when the page was generated. Setting this
+# to YES can help to show when doxygen was last run and thus if the
+# documentation is up to date.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_TIMESTAMP = NO
+
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_DYNAMIC_SECTIONS = NO
+
+# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
+# shown in the various tree structured indices initially; the user can expand
+# and collapse entries dynamically later on. Doxygen will expand the tree to
+# such a level that at most the specified number of entries are visible (unless
+# a fully collapsed tree already exceeds this amount). So setting the number of
+# entries 1 will produce a full collapsed tree by default. 0 is a special value
+# representing an infinite number of entries and will result in a full expanded
+# tree by default.
+# Minimum value: 0, maximum value: 9999, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_INDEX_NUM_ENTRIES = 100
+
+# If the GENERATE_DOCSET tag is set to YES, additional index files will be
+# generated that can be used as input for Apple's Xcode 3 integrated development
+# environment (see: http://developer.apple.com/tools/xcode/), introduced with
+# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
+# Makefile in the HTML output directory. Running make will produce the docset in
+# that directory and running make install will install the docset in
+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
+# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
+# for more information.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_DOCSET = NO
+
+# This tag determines the name of the docset feed. A documentation feed provides
+# an umbrella under which multiple documentation sets from a single provider
+# (such as a company or product suite) can be grouped.
+# The default value is: Doxygen generated docs.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_FEEDNAME = "ICU @VERSION@"
+
+# This tag specifies a string that should uniquely identify the documentation
+# set bundle. This should be a reverse domain-name style string, e.g.
+# com.mycompany.MyDocSet. Doxygen will append .docset to the name.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_BUNDLE_ID = org.icu-project.icu4c
+
+# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
+# the documentation publisher. This should be a reverse domain-name style
+# string, e.g. com.mycompany.MyDocSet.documentation.
+# The default value is: org.doxygen.Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_ID = org.doxygen.Publisher
+
+# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
+# The default value is: Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_NAME = Publisher
+
+# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
+# additional HTML index files: index.hhp, index.hhc, and index.hhk. The
+# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
+# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
+# Windows.
+#
+# The HTML Help Workshop contains a compiler that can convert all HTML output
+# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
+# files are now used as the Windows 98 help format, and will replace the old
+# Windows help format (.hlp) on all Windows platforms in the future. Compressed
+# HTML files also contain an index, a table of contents, and you can search for
+# words in the documentation. The HTML workshop also contains a viewer for
+# compressed HTML files.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
GENERATE_HTMLHELP = NO
-CHM_FILE =
-HHC_LOCATION =
+
+# The CHM_FILE tag can be used to specify the file name of the resulting .chm
+# file. You can add a path in front of the file if the result should not be
+# written to the html output directory.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+CHM_FILE =
+
+# The HHC_LOCATION tag can be used to specify the location (absolute path
+# including file name) of the HTML help compiler (hhc.exe). If non-empty,
+# doxygen will try to run the HTML help compiler on the generated index.hhp.
+# The file has to be specified with full path.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+HHC_LOCATION =
+
+# The GENERATE_CHI flag controls if a separate .chi index file is generated
+# (YES) or that it should be included in the master .chm file (NO).
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
GENERATE_CHI = NO
+
+# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc)
+# and project file content.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+CHM_INDEX_ENCODING =
+
+# The BINARY_TOC flag controls whether a binary table of contents is generated
+# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it
+# enables the Previous and Next buttons.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
BINARY_TOC = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members to
+# the table of contents of the HTML help documentation and to the tree view.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
TOC_EXPAND = NO
+
+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
+# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
+# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
+# (.qch) of the generated HTML documentation.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_QHP = NO
+
+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
+# the file name of the resulting .qch file. The path specified is relative to
+# the HTML output folder.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QCH_FILE =
+
+# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
+# Project output. For more information please see Qt Help Project / Namespace
+# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_NAMESPACE = org.doxygen.Project
+
+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
+# Help Project output. For more information please see Qt Help Project / Virtual
+# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
+# folders).
+# The default value is: doc.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_VIRTUAL_FOLDER = doc
+
+# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
+# filter to add. For more information please see Qt Help Project / Custom
+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+# filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_NAME =
+
+# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
+# custom filter to add. For more information please see Qt Help Project / Custom
+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+# filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_ATTRS =
+
+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
+# project's filter section matches. Qt Help Project / Filter Attributes (see:
+# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_SECT_FILTER_ATTRS =
+
+# The QHG_LOCATION tag can be used to specify the location of Qt's
+# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
+# generated .qhp file.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHG_LOCATION =
+
+# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
+# generated, together with the HTML files, they form an Eclipse help plugin. To
+# install this plugin and make it available under the help contents menu in
+# Eclipse, the contents of the directory containing the HTML and XML files needs
+# to be copied into the plugins directory of eclipse. The name of the directory
+# within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
+# After copying Eclipse needs to be restarted before the help appears.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_ECLIPSEHELP = NO
+
+# A unique identifier for the Eclipse help plugin. When installing the plugin
+# the directory name containing the HTML and XML files should also have this
+# name. Each documentation set should have its own identifier.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
+
+ECLIPSE_DOC_ID = org.doxygen.Project
+
+# If you want full control over the layout of the generated HTML pages it might
+# be necessary to disable the index and replace it with your own. The
+# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
+# of each HTML page. A value of NO enables the index and the value YES disables
+# it. Since the tabs in the index contain the same information as the navigation
+# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
DISABLE_INDEX = NO
-ENUM_VALUES_PER_LINE = 4
+
+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
+# structure should be generated to display hierarchical information. If the tag
+# value is set to YES, a side panel will be generated containing a tree-like
+# index structure (just like the one that is generated for HTML Help). For this
+# to work a browser that supports JavaScript, DHTML, CSS and frames is required
+# (i.e. any modern browser). Windows users are probably better off using the
+# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can
+# further fine-tune the look of the index. As an example, the default style
+# sheet generated by doxygen has an example that shows how to put an image at
+# the root of the tree instead of the PROJECT_NAME. Since the tree basically has
+# the same information as the tab index, you could consider setting
+# DISABLE_INDEX to YES when enabling this option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
GENERATE_TREEVIEW = NO
+
+# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
+# doxygen will group on one line in the generated HTML documentation.
+#
+# Note that a value of 0 will completely suppress the enum values from appearing
+# in the overview section.
+# Minimum value: 0, maximum value: 20, default value: 4.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+ENUM_VALUES_PER_LINE = 4
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
+# to set the initial width (in pixels) of the frame in which the tree is shown.
+# Minimum value: 0, maximum value: 1500, default value: 250.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
TREEVIEW_WIDTH = 250
+
+# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to
+# external symbols imported via tag files in a separate window.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+EXT_LINKS_IN_WINDOW = NO
+
+# Use this tag to change the font size of LaTeX formulas included as images in
+# the HTML documentation. When you change the font size after a successful
+# doxygen run you need to manually remove any form_*.png images from the HTML
+# output directory to force them to be regenerated.
+# Minimum value: 8, maximum value: 50, default value: 10.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FORMULA_FONTSIZE = 10
+
+# Use the FORMULA_TRANPARENT tag to determine whether or not the images
+# generated for formulas are transparent PNGs. Transparent PNGs are not
+# supported properly for IE 6.0, but are supported on all modern browsers.
+#
+# Note that when changing this option you need to delete any form_*.png files in
+# the HTML output directory before the changes have effect.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FORMULA_TRANSPARENT = YES
+
+# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
+# http://www.mathjax.org) which uses client side Javascript for the rendering
+# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
+# installed or if you want to formulas look prettier in the HTML output. When
+# enabled you may also need to install MathJax separately and configure the path
+# to it using the MATHJAX_RELPATH option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+USE_MATHJAX = NO
+
+# When MathJax is enabled you can set the default output format to be used for
+# the MathJax output. See the MathJax site (see:
+# http://docs.mathjax.org/en/latest/output.html) for more details.
+# Possible values are: HTML-CSS (which is slower, but has the best
+# compatibility), NativeMML (i.e. MathML) and SVG.
+# The default value is: HTML-CSS.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_FORMAT = HTML-CSS
+
+# When MathJax is enabled you need to specify the location relative to the HTML
+# output directory using the MATHJAX_RELPATH option. The destination directory
+# should contain the MathJax.js script. For instance, if the mathjax directory
+# is located at the same level as the HTML output directory, then
+# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
+# Content Delivery Network so you can quickly see the result without installing
+# MathJax. However, it is strongly recommended to install a local copy of
+# MathJax from http://www.mathjax.org before deployment.
+# The default value is: http://cdn.mathjax.org/mathjax/latest.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
+
+# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
+# extension names that should be enabled during MathJax rendering. For example
+# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_EXTENSIONS =
+
+# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
+# of code that will be used on startup of the MathJax code. See the MathJax site
+# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
+# example see the documentation.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_CODEFILE =
+
+# When the SEARCHENGINE tag is enabled doxygen will generate a search box for
+# the HTML output. The underlying search engine uses javascript and DHTML and
+# should work on any modern browser. Note that when using HTML help
+# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
+# there is already a search function so this one should typically be disabled.
+# For large projects the javascript based search engine can be slow, then
+# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
+# search using the keyboard; to jump to the search box use <access key> + S
+# (what the <access key> is depends on the OS and browser, but it is typically
+# <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down
+# key> to jump into the search results window, the results can be navigated
+# using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel
+# the search. The filter options can be selected when the cursor is inside the
+# search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>
+# to select a filter and <Enter> or <escape> to activate or cancel the filter
+# option.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+SEARCHENGINE = NO
+
+# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
+# implemented using a web server instead of a web client using Javascript. There
+# are two flavors of web server based searching depending on the EXTERNAL_SEARCH
+# setting. When disabled, doxygen will generate a PHP script for searching and
+# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
+# and searching needs to be provided by external tools. See the section
+# "External Indexing and Searching" for details.
+# The default value is: NO.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SERVER_BASED_SEARCH = NO
+
+# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
+# script for searching. Instead the search results are written to an XML file
+# which needs to be processed by an external indexer. Doxygen will invoke an
+# external search engine pointed to by the SEARCHENGINE_URL option to obtain the
+# search results.
+#
+# Doxygen ships with an example indexer (doxyindexer) and search engine
+# (doxysearch.cgi) which are based on the open source search engine library
+# Xapian (see: http://xapian.org/).
+#
+# See the section "External Indexing and Searching" for details.
+# The default value is: NO.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTERNAL_SEARCH = NO
+
+# The SEARCHENGINE_URL should point to a search engine hosted by a web server
+# which will return the search results when EXTERNAL_SEARCH is enabled.
+#
+# Doxygen ships with an example indexer (doxyindexer) and search engine
+# (doxysearch.cgi) which are based on the open source search engine library
+# Xapian (see: http://xapian.org/). See the section "External Indexing and
+# Searching" for details.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SEARCHENGINE_URL =
+
+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
+# search data is written to a file for indexing by an external tool. With the
+# SEARCHDATA_FILE tag the name of this file can be specified.
+# The default file is: searchdata.xml.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SEARCHDATA_FILE = searchdata.xml
+
+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the
+# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
+# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
+# projects and redirect the results back to the right project.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTERNAL_SEARCH_ID =
+
+# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
+# projects other than the one defined by this configuration file, but that are
+# all added to the same external search index. Each project needs to have a
+# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of
+# to a relative location where the documentation can be found. The format is:
+# EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTRA_SEARCH_MAPPINGS =
+
#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
+# Configuration options related to the LaTeX output
#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.
+# The default value is: YES.
+
GENERATE_LATEX = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: latex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
LATEX_OUTPUT = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked.
+#
+# Note that when enabling USE_PDFLATEX this option is only used for generating
+# bitmaps for formulas in the HTML output, but not in the Makefile that is
+# written to the output directory.
+# The default file is: latex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
LATEX_CMD_NAME = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
+# index for LaTeX.
+# The default file is: makeindex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
MAKEINDEX_CMD_NAME = makeindex
+
+# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX
+# documents. This may be useful for small projects and may help to save some
+# trees in general.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
COMPACT_LATEX = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used by the
+# printer.
+# Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x
+# 14 inches) and executive (7.25 x 10.5 inches).
+# The default value is: a4.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
PAPER_TYPE = a4wide
-EXTRA_PACKAGES =
-LATEX_HEADER =
+
+# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
+# that should be included in the LaTeX output. The package can be specified just
+# by its name or with the correct syntax as to be used with the LaTeX
+# \usepackage command. To get the times font for instance you can specify :
+# EXTRA_PACKAGES=times or EXTRA_PACKAGES={times}
+# To use the option intlimits with the amsmath package you can specify:
+# EXTRA_PACKAGES=[intlimits]{amsmath}
+# If left blank no extra packages will be included.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+EXTRA_PACKAGES =
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
+# generated LaTeX document. The header should contain everything until the first
+# chapter. If it is left blank doxygen will generate a standard header. See
+# section "Doxygen usage" for information on how to let doxygen write the
+# default header to a separate file.
+#
+# Note: Only use a user-defined header if you know what you are doing! The
+# following commands have a special meaning inside the header: $title,
+# $datetime, $date, $doxygenversion, $projectname, $projectnumber,
+# $projectbrief, $projectlogo. Doxygen will replace $title with the empty
+# string, for the replacement values of the other commands the user is referred
+# to HTML_HEADER.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_HEADER =
+
+# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
+# generated LaTeX document. The footer should contain everything after the last
+# chapter. If it is left blank doxygen will generate a standard footer. See
+# LATEX_HEADER for more information on how to generate a default footer and what
+# special commands can be used inside the footer.
+#
+# Note: Only use a user-defined footer if you know what you are doing!
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_FOOTER =
+
+# The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined
+# LaTeX style sheets that are included after the standard style sheets created
+# by doxygen. Using this option one can overrule certain style aspects. Doxygen
+# will copy the style sheet files to the output directory.
+# Note: The order of the extra style sheet files is of importance (e.g. the last
+# style sheet in the list overrules the setting of the previous ones in the
+# list).
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_EXTRA_STYLESHEET =
+
+# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the LATEX_OUTPUT output
+# directory. Note that the files will be copied as-is; there are no commands or
+# markers available.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_EXTRA_FILES =
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
+# prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
+# contain links (just like the HTML output) instead of page references. This
+# makes the output suitable for online browsing using a PDF viewer.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
PDF_HYPERLINKS = NO
+
+# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
+# the PDF file directly from the LaTeX files. Set this option to YES, to get a
+# higher quality PDF documentation.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
USE_PDFLATEX = NO
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
+# command to the generated LaTeX files. This will instruct LaTeX to keep running
+# if errors occur, instead of asking the user for help. This option is also used
+# when generating formulas in HTML.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
LATEX_BATCHMODE = NO
+
+# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
+# index chapters (such as File Index, Compound Index, etc.) in the output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
LATEX_HIDE_INDICES = NO
+
+# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
+# code with syntax highlighting in the LaTeX output.
+#
+# Note that which sources are shown also depends on other settings such as
+# SOURCE_BROWSER.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_SOURCE_CODE = NO
+
+# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
+# bibliography, e.g. plainnat, or ieeetr. See
+# http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
+# The default value is: plain.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_BIB_STYLE = plain
+
+# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated
+# page will contain the date and time when the page was generated. Setting this
+# to NO can help when comparing the output of multiple runs.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_TIMESTAMP = NO
+
#---------------------------------------------------------------------------
-# configuration options related to the RTF output
+# Configuration options related to the RTF output
#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The
+# RTF output is optimized for Word 97 and may not look too pretty with other RTF
+# readers/editors.
+# The default value is: NO.
+
GENERATE_RTF = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: rtf.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
RTF_OUTPUT = rtf
+
+# If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF
+# documents. This may be useful for small projects and may help to save some
+# trees in general.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
COMPACT_RTF = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
+# contain hyperlink fields. The RTF file will contain links (just like the HTML
+# output) instead of page references. This makes the output suitable for online
+# browsing using Word or some other Word compatible readers that support those
+# fields.
+#
+# Note: WordPad (write) and others do not support links.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
RTF_HYPERLINKS = NO
-RTF_STYLESHEET_FILE =
-RTF_EXTENSIONS_FILE =
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's config
+# file, i.e. a series of assignments. You only have to provide replacements,
+# missing definitions are set to their default value.
+#
+# See also section "Doxygen usage" for information on how to generate the
+# default style sheet that doxygen normally uses.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_STYLESHEET_FILE =
+
+# Set optional variables used in the generation of an RTF document. Syntax is
+# similar to doxygen's config file. A template extensions file can be generated
+# using doxygen -e rtf extensionFile.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_EXTENSIONS_FILE =
+
+# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code
+# with syntax highlighting in the RTF output.
+#
+# Note that which sources are shown also depends on other settings such as
+# SOURCE_BROWSER.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_SOURCE_CODE = NO
+
#---------------------------------------------------------------------------
-# configuration options related to the man page output
+# Configuration options related to the man page output
#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for
+# classes and files.
+# The default value is: NO.
+
GENERATE_MAN = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it. A directory man3 will be created inside the directory specified by
+# MAN_OUTPUT.
+# The default directory is: man.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
MAN_OUTPUT = man
+
+# The MAN_EXTENSION tag determines the extension that is added to the generated
+# man pages. In case the manual section does not start with a number, the number
+# 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is
+# optional.
+# The default value is: .3.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
MAN_EXTENSION = .3
+
+# The MAN_SUBDIR tag determines the name of the directory created within
+# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by
+# MAN_EXTENSION with the initial . removed.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_SUBDIR =
+
+# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
+# will generate one additional man file for each entity documented in the real
+# man page(s). These additional files only source the real man page, but without
+# them the man command would be unable to find the correct page.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
MAN_LINKS = NO
+
#---------------------------------------------------------------------------
-# configuration options related to the XML output
+# Configuration options related to the XML output
#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that
+# captures the structure of the code including all documentation.
+# The default value is: NO.
+
GENERATE_XML = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: xml.
+# This tag requires that the tag GENERATE_XML is set to YES.
+
XML_OUTPUT = xml
-XML_SCHEMA =
-XML_DTD =
+
+# If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program
+# listings (including syntax highlighting and cross-referencing information) to
+# the XML output. Note that enabling this will significantly increase the size
+# of the XML output.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_XML is set to YES.
+
XML_PROGRAMLISTING = YES
+
+#---------------------------------------------------------------------------
+# Configuration options related to the DOCBOOK output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files
+# that can be used to generate PDF.
+# The default value is: NO.
+
+GENERATE_DOCBOOK = NO
+
+# The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
+# front of it.
+# The default directory is: docbook.
+# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
+
+DOCBOOK_OUTPUT = docbook
+
+# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the
+# program listings (including syntax highlighting and cross-referencing
+# information) to the DOCBOOK output. Note that enabling this will significantly
+# increase the size of the DOCBOOK output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
+
+DOCBOOK_PROGRAMLISTING = NO
+
#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
+# Configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an
+# AutoGen Definitions (see http://autogen.sf.net) file that captures the
+# structure of the code including all documentation. Note that this feature is
+# still experimental and incomplete at the moment.
+# The default value is: NO.
+
GENERATE_AUTOGEN_DEF = NO
+
#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
+# Configuration options related to the Perl module output
#---------------------------------------------------------------------------
-GENERATE_PERLMOD = NO
+
+# If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module
+# file that captures the structure of the code including all documentation.
+#
+# Note that this feature is still experimental and incomplete at the moment.
+# The default value is: NO.
+
+GENERATE_PERLMOD = NO
+
+# If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary
+# Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
+# output from the Perl module output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
PERLMOD_LATEX = YES
+
+# If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely
+# formatted so it can be parsed by a human reader. This is useful if you want to
+# understand what is going on. On the other hand, if this tag is set to NO, the
+# size of the Perl module output will be much smaller and Perl will parse it
+# just the same.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
PERLMOD_PRETTY = YES
-PERLMOD_MAKEVAR_PREFIX =
+
+# The names of the make variables in the generated doxyrules.make file are
+# prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful
+# so different doxyrules.make files included by the same Makefile don't
+# overwrite each other's variables.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
+PERLMOD_MAKEVAR_PREFIX =
+
#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
+# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all
+# C-preprocessor directives found in the sources and include files.
+# The default value is: YES.
+
ENABLE_PREPROCESSING = YES
+
+# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names
+# in the source code. If set to NO, only conditional compilation will be
+# performed. Macro expansion can be done in a controlled way by setting
+# EXPAND_ONLY_PREDEF to YES.
+# The default value is: NO.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
MACRO_EXPANSION = YES
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
+# the macro expansion is limited to the macros specified with the PREDEFINED and
+# EXPAND_AS_DEFINED tags.
+# The default value is: NO.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
EXPAND_ONLY_PREDEF = YES
+
+# If the SEARCH_INCLUDES tag is set to YES, the include files in the
+# INCLUDE_PATH will be searched if a #include is found.
+# The default value is: YES.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
SEARCH_INCLUDES = YES
-INCLUDE_PATH =
-INCLUDE_FILE_PATTERNS =
-PREDEFINED = U_EXPORT2= U_STABLE= U_DRAFT= U_INTERNAL= U_SYSTEM= U_DEPRECATED= U_OBSOLETE= U_CALLCONV_FPTR= U_CALLCONV= U_CDECL_BEGIN= U_CDECL_END= U_NO_THROW=\ "U_NAMESPACE_BEGIN=namespace icu{" "U_NAMESPACE_END=}" U_SHOW_CPLUSPLUS_API=1 U_DEFINE_LOCAL_OPEN_POINTER()= U_IN_DOXYGEN=1 U_OVERRIDE= U_FINAL=final UCONFIG_ENABLE_PLUGINS=1 U_CHAR16_IS_TYPEDEF=0 U_CPLUSPLUS_VERSION=11 U_WCHAR_IS_UTF16 U_NOEXCEPT=
-EXPAND_AS_DEFINED =
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by the
+# preprocessor.
+# This tag requires that the tag SEARCH_INCLUDES is set to YES.
+
+INCLUDE_PATH =
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will be
+# used.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+INCLUDE_FILE_PATTERNS =
+
+# The PREDEFINED tag can be used to specify one or more macro names that are
+# defined before the preprocessor is started (similar to the -D option of e.g.
+# gcc). The argument of the tag is a list of macros of the form: name or
+# name=definition (no spaces). If the definition and the "=" are omitted, "=1"
+# is assumed. To prevent a macro definition from being undefined via #undef or
+# recursively expanded use the := operator instead of the = operator.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+PREDEFINED = U_EXPORT2= \
+ U_STABLE= \
+ U_DRAFT= \
+ U_INTERNAL= \
+ U_SYSTEM= \
+ U_DEPRECATED= \
+ U_OBSOLETE= \
+ U_CALLCONV_FPTR= \
+ U_CALLCONV= \
+ U_CDECL_BEGIN= \
+ U_CDECL_END= \
+ "U_NAMESPACE_BEGIN=namespace icu{" \
+ "U_NAMESPACE_END=}" \
+ U_SHOW_CPLUSPLUS_API=1 \
+ U_DEFINE_LOCAL_OPEN_POINTER()= \
+ U_IN_DOXYGEN=1 \
+ U_CHAR16_IS_TYPEDEF=0 \
+ U_CPLUSPLUS_VERSION=11 \
+ U_WCHAR_IS_UTF16 \
+ U_FINAL=final
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
+# tag can be used to specify a list of macro names that should be expanded. The
+# macro definition that is found in the sources will be used. Use the PREDEFINED
+# tag if you want to use a different macro definition that overrules the
+# definition found in the source code.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+EXPAND_AS_DEFINED =
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
+# remove all references to function-like macros that are alone on a line, have
+# an all uppercase name, and do not end with a semicolon. Such function macros
+# are typically used for boiler-plate code, and will confuse the parser if not
+# removed.
+# The default value is: YES.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
SKIP_FUNCTION_MACROS = YES
+
#---------------------------------------------------------------------------
-# Configuration::additions related to external references
+# Configuration options related to external references
#---------------------------------------------------------------------------
-TAGFILES =
-GENERATE_TAGFILE = "@builddir@/doc/html/icudocs.tag"
+
+# The TAGFILES tag can be used to specify one or more tag files. For each tag
+# file the location of the external documentation should be added. The format of
+# a tag file without this location is as follows:
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where loc1 and loc2 can be relative or absolute paths or URLs. See the
+# section "Linking to external documentation" for more information about the use
+# of tag files.
+# Note: Each tag file must have a unique name (where the name does NOT include
+# the path). If a tag file is not located in the directory in which doxygen is
+# run, you must also specify the path to the tagfile here.
+
+TAGFILES =
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create a
+# tag file that is based on the input files it reads. See section "Linking to
+# external documentation" for more information about the usage of tag files.
+
+GENERATE_TAGFILE = "@builddir@/doc/html/icudocs.tag"
+
+# If the ALLEXTERNALS tag is set to YES, all external class will be listed in
+# the class index. If set to NO, only the inherited external classes will be
+# listed.
+# The default value is: NO.
+
ALLEXTERNALS = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed
+# in the modules index. If set to NO, only the current project's groups will be
+# listed.
+# The default value is: YES.
+
EXTERNAL_GROUPS = YES
+
+# If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in
+# the related pages index. If set to NO, only the current project's pages will
+# be listed.
+# The default value is: YES.
+
+EXTERNAL_PAGES = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of 'which perl').
+# The default file (with absolute path) is: /usr/bin/perl.
+
PERL_PATH = /usr/bin/perl
+
#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
+# Configuration options related to the dot tool
#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram
+# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
+# NO turns the diagrams off. Note that this option also works with HAVE_DOT
+# disabled, but it is recommended to install and use dot, since it yields more
+# powerful graphs.
+# The default value is: YES.
+
CLASS_DIAGRAMS = YES
+
+# You can define message sequence charts within doxygen comments using the \msc
+# command. Doxygen will then run the mscgen tool (see:
+# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
+# documentation. The MSCGEN_PATH tag allows you to specify the directory where
+# the mscgen tool resides. If left empty the tool is assumed to be found in the
+# default search path.
+
+MSCGEN_PATH =
+
+# You can include diagrams made with dia in doxygen documentation. Doxygen will
+# then run dia to produce the diagram and insert it in the documentation. The
+# DIA_PATH tag allows you to specify the directory where the dia binary resides.
+# If left empty dia is assumed to be found in the default search path.
+
+DIA_PATH =
+
+# If set to YES the inheritance and collaboration graphs will hide inheritance
+# and usage relations if the target is undocumented or is not a class.
+# The default value is: YES.
+
HIDE_UNDOC_RELATIONS = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz (see:
+# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
+# Bell Labs. The other options in this section have no effect if this option is
+# set to NO
+# The default value is: YES.
+
HAVE_DOT = NO
+
+# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
+# to run in parallel. When set to 0 doxygen will base this on the number of
+# processors available in the system. You can set it explicitly to a value
+# larger than 0 to get control over the balance between CPU load and processing
+# speed.
+# Minimum value: 0, maximum value: 32, default value: 0.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_NUM_THREADS = 0
+
+# When you want a differently looking font in the dot files that doxygen
+# generates you can specify the font name using DOT_FONTNAME. You need to make
+# sure dot is able to find the font, which can be done by putting it in a
+# standard location or by setting the DOTFONTPATH environment variable or by
+# setting DOT_FONTPATH to the directory containing the font.
+# The default value is: Helvetica.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTNAME = Helvetica
+
+# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
+# dot graphs.
+# Minimum value: 4, maximum value: 24, default value: 10.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTSIZE = 10
+
+# By default doxygen will tell dot to use the default font as specified with
+# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
+# the path where dot can find it using this tag.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTPATH =
+
+# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
+# each documented class showing the direct and indirect inheritance relations.
+# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
CLASS_GRAPH = YES
+
+# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
+# graph for each documented class showing the direct and indirect implementation
+# dependencies (inheritance, containment, and class references variables) of the
+# class with other documented classes.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
COLLABORATION_GRAPH = YES
+
+# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
+# groups, showing the direct groups dependencies.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+GROUP_GRAPHS = YES
+
+# If the UML_LOOK tag is set to YES, doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# Language.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
UML_LOOK = NO
+
+# If the UML_LOOK tag is enabled, the fields and methods are shown inside the
+# class node. If there are many fields or methods and many nodes the graph may
+# become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the
+# number of items for each type to make the size more manageable. Set this to 0
+# for no limit. Note that the threshold may be exceeded by 50% before the limit
+# is enforced. So when you set the threshold to 10, up to 15 fields may appear,
+# but if the number exceeds 15, the total amount of fields shown is limited to
+# 10.
+# Minimum value: 0, maximum value: 100, default value: 10.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+UML_LIMIT_NUM_FIELDS = 10
+
+# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
+# collaboration graphs will show the relations between templates and their
+# instances.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
TEMPLATE_RELATIONS = NO
+
+# If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
+# YES then doxygen will generate a graph for each documented file showing the
+# direct and indirect include dependencies of the file with other documented
+# files.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
INCLUDE_GRAPH = YES
+
+# If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
+# set to YES then doxygen will generate a graph for each documented file showing
+# the direct and indirect include dependencies of the file with other documented
+# files.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
INCLUDED_BY_GRAPH = YES
+
+# If the CALL_GRAPH tag is set to YES then doxygen will generate a call
+# dependency graph for every global function or class method.
+#
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable call graphs for selected
+# functions only using the \callgraph command. Disabling a call graph can be
+# accomplished by means of the command \hidecallgraph.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
CALL_GRAPH = NO
-CALLER_GRAPH = NO
+
+# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
+# dependency graph for every global function or class method.
+#
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable caller graphs for selected
+# functions only using the \callergraph command. Disabling a caller graph can be
+# accomplished by means of the command \hidecallergraph.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+CALLER_GRAPH = NO
+
+# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
+# hierarchy of all classes instead of a textual one.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
GRAPHICAL_HIERARCHY = YES
+
+# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
+# dependencies a directory has on other directories in a graphical way. The
+# dependency relations are determined by the #include relations between the
+# files in the directories.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DIRECTORY_GRAPH = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot. For an explanation of the image formats see the section
+# output formats in the documentation of the dot tool (Graphviz (see:
+# http://www.graphviz.org/)).
+# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
+# to make the SVG files visible in IE 9+ (other browsers do not have this
+# requirement).
+# Possible values are: png, png:cairo, png:cairo:cairo, png:cairo:gd, png:gd,
+# png:gd:gd, jpg, jpg:cairo, jpg:cairo:gd, jpg:gd, jpg:gd:gd, gif, gif:cairo,
+# gif:cairo:gd, gif:gd, gif:gd:gd, svg, png:gd, png:gd:gd, png:cairo,
+# png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and
+# png:gdiplus:gdiplus.
+# The default value is: png.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
DOT_IMAGE_FORMAT = png
-DOT_PATH =
-#DOT_FONTNAME = FreeSans
-DOTFILE_DIRS =
-MAX_DOT_GRAPH_WIDTH = 1024
-MAX_DOT_GRAPH_HEIGHT = 1024
+
+# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
+# enable generation of interactive SVG images that allow zooming and panning.
+#
+# Note that this requires a modern browser other than Internet Explorer. Tested
+# and working are Firefox, Chrome, Safari, and Opera.
+# Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
+# the SVG files visible. Older versions of IE do not have SVG support.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INTERACTIVE_SVG = NO
+
+# The DOT_PATH tag can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found in the path.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_PATH =
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the \dotfile
+# command).
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOTFILE_DIRS =
+
+# The MSCFILE_DIRS tag can be used to specify one or more directories that
+# contain msc files that are included in the documentation (see the \mscfile
+# command).
+
+MSCFILE_DIRS =
+
+# The DIAFILE_DIRS tag can be used to specify one or more directories that
+# contain dia files that are included in the documentation (see the \diafile
+# command).
+
+DIAFILE_DIRS =
+
+# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
+# path where java can find the plantuml.jar file. If left blank, it is assumed
+# PlantUML is not used or called during a preprocessing step. Doxygen will
+# generate a warning when it encounters a \startuml command in this case and
+# will not generate output for the diagram.
+
+PLANTUML_JAR_PATH =
+
+# When using plantuml, the PLANTUML_CFG_FILE tag can be used to specify a
+# configuration file for plantuml.
+
+PLANTUML_CFG_FILE =
+
+# When using plantuml, the specified paths are searched for files specified by
+# the !include statement in a plantuml block.
+
+PLANTUML_INCLUDE_PATH =
+
+# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
+# that will be shown in the graph. If the number of nodes in a graph becomes
+# larger than this value, doxygen will truncate the graph, which is visualized
+# by representing a node as a red box. Note that doxygen if the number of direct
+# children of the root node in a graph is already larger than
+# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
+# the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+# Minimum value: 0, maximum value: 10000, default value: 50.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_GRAPH_MAX_NODES = 50
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
+# generated by dot. A depth value of 3 means that only nodes reachable from the
+# root by following a path via at most 3 edges will be shown. Nodes that lay
+# further from the root node will be omitted. Note that setting this option to 1
+# or 2 may greatly reduce the computation time needed for large code bases. Also
+# note that the size of a graph can be further restricted by
+# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
+# Minimum value: 0, maximum value: 1000, default value: 0.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
MAX_DOT_GRAPH_DEPTH = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, because dot on Windows does not seem
+# to support this out of the box.
+#
+# Warning: Depending on the platform used, enabling this option may lead to
+# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
+# read).
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_TRANSPARENT = NO
+
+# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10) support
+# this, this feature is disabled by default.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_MULTI_TARGETS = NO
+
+# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
+# explaining the meaning of the various boxes and arrows in the dot generated
+# graphs.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
GENERATE_LEGEND = YES
+
+# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot
+# files that are used to generate the various graphs.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
DOT_CLEANUP = YES
-#---------------------------------------------------------------------------
-# Configuration::additions related to the search engine
-#---------------------------------------------------------------------------
-SEARCHENGINE = NO
diff --git a/Build/source/libs/icu/icu-src/source/Makefile.in b/Build/source/libs/icu/icu-src/source/Makefile.in
index c1db15bf7b1..be9435ba95f 100644
--- a/Build/source/libs/icu/icu-src/source/Makefile.in
+++ b/Build/source/libs/icu/icu-src/source/Makefile.in
@@ -48,6 +48,8 @@ ALL_PKGCONFIG_SUFFIX=uc i18n
DOXYGEN = @DOXYGEN@
DOCZIP = icu-docs.zip
+INSTALL_ICU_CONFIG = @INSTALL_ICU_CONFIG@
+
## Files to remove for 'make clean'
CLEANFILES = *~
@@ -64,7 +66,9 @@ SUBDIRS = stubdata common i18n $(LAYOUTEX) $(ICUIO) $(TOOLS) $(DATASUBDIR) $(EX
SECTION = 1
+ifeq ($(INSTALL_ICU_CONFIG),true)
MANX_FILES = config/icu-config.$(SECTION)
+endif
ALL_MAN_FILES = $(MANX_FILES)
@@ -187,13 +191,15 @@ install-icu: $(INSTALLED_BUILT_FILES)
@$(MKINSTALLDIRS) $(DESTDIR)$(libdir)/pkgconfig
$(INSTALL_DATA) $(ALL_PKGCONFIG_FILES) $(DESTDIR)$(libdir)/pkgconfig/
$(INSTALL_DATA) $(top_srcdir)/../LICENSE $(DESTDIR)$(pkgdatadir)/LICENSE
+ifeq ($(INSTALL_ICU_CONFIG),true)
$(INSTALL_SCRIPT) $(top_builddir)/config/icu-config $(DESTDIR)$(bindir)/icu-config
+endif
$(INSTALL_DATA) $(top_builddir)/config/Makefile.inc $(DESTDIR)$(pkglibdir)/Makefile.inc
$(INSTALL_DATA) $(top_builddir)/config/pkgdata.inc $(DESTDIR)$(pkglibdir)/pkgdata.inc
# @echo icuinfo.xml is built after make check.
# -$(INSTALL_DATA) $(top_builddir)/config/icuinfo.xml $(DESTDIR)$(pkglibdir)/icuinfo.xml
cd $(DESTDIR)$(pkglibdir)/..; \
- $(RM) current && ln -s $(VERSION) current; \
+ $(RMV) current && ln -s $(VERSION) current; \
$(RM) Makefile.inc && ln -s current/Makefile.inc Makefile.inc; \
$(RM) pkgdata.inc && ln -s current/pkgdata.inc pkgdata.inc
@@ -350,7 +356,9 @@ config.status: $(srcdir)/configure $(srcdir)/common/unicode/uvernum.h
install-manx: $(MANX_FILES)
$(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION)
+ifneq ($(MANX_FILES),)
$(INSTALL_DATA) $? $(DESTDIR)$(mandir)/man$(SECTION)
+endif
config/%.$(SECTION): $(srcdir)/config/%.$(SECTION).in
cd $(top_builddir) \
diff --git a/Build/source/libs/icu/icu-src/source/acinclude.m4 b/Build/source/libs/icu/icu-src/source/acinclude.m4
index 5c8fda71ded..507f41f521c 100644
--- a/Build/source/libs/icu/icu-src/source/acinclude.m4
+++ b/Build/source/libs/icu/icu-src/source/acinclude.m4
@@ -464,12 +464,12 @@ AC_DEFUN([AC_CHECK_STRICT_COMPILE],
then
case "${host}" in
*-*-solaris*)
- # Don't use -std=c99 on Solaris because of timezone check fails
+ # Don't use -std=c11 on Solaris because of timezone check fails
;;
*)
# Do not use -ansi. It limits us to C90, and it breaks some platforms.
- # We use -std=c99 to disable the gnu99 defaults and its associated warnings
- CFLAGS="$CFLAGS -std=c99"
+ # We use -std=c11 to disable the gnu99 defaults and its associated warnings
+ CFLAGS="$CFLAGS -std=c11"
;;
esac
diff --git a/Build/source/libs/icu/icu-src/source/allinone/Build.Windows.Library.ProjectConfiguration.props b/Build/source/libs/icu/icu-src/source/allinone/Build.Windows.Library.ProjectConfiguration.props
new file mode 100644
index 00000000000..07e3c1bf512
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/allinone/Build.Windows.Library.ProjectConfiguration.props
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2018 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html -->
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <!-- This file is used to set configurations that are common to *all* ICU library code (common, i18n, and io). -->
+ <!-- Note: These options are for *all* configurations for *all* library projects. -->
+ <ItemDefinitionGroup>
+ <ClCompile>
+ <!-- ICU does not use exceptions in library code. -->
+ <PreprocessorDefinitions>
+ _HAS_EXCEPTIONS=0;
+ %(PreprocessorDefinitions)
+ </PreprocessorDefinitions>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <PropertyGroup>
+ <!-- Disable MSBuild warning about Linker OutputFile. -->
+ <!-- Ex: MSBuild complains that the common project creates "icuuc62.dll" rather than "common.dll". However, this is intentional. -->
+ <MSBuildWarningsAsMessages>MSB8012</MSBuildWarningsAsMessages>
+ </PropertyGroup>
+</Project>
diff --git a/Build/source/libs/icu/icu-src/source/allinone/Build.Windows.ProjectConfiguration.props b/Build/source/libs/icu/icu-src/source/allinone/Build.Windows.ProjectConfiguration.props
index 0a163849d40..0e74cb4ff45 100644
--- a/Build/source/libs/icu/icu-src/source/allinone/Build.Windows.ProjectConfiguration.props
+++ b/Build/source/libs/icu/icu-src/source/allinone/Build.Windows.ProjectConfiguration.props
@@ -1,129 +1,129 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html -->
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <!-- This file is used to set default configuration options for all non-UWP Visual Studio projects. -->
- <!-- These are the default project configurations for building. -->
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup>
- <!-- This is the version of the MSVC tool-set to use. -->
- <!-- v140 is the Visual Studio 2015 toolset. -->
- <!-- v141 is the Visual Studio 2017 toolset. -->
- <PlatformToolset>v141</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup>
- <!-- This is the default SDK target. -->
- <!-- Note that the Windows 8.1 SDK is backwards compatible down-level to Windows 7, so
- setting this to 8.1 does not actually imply targeting Windows 8.1. -->
- <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
- </PropertyGroup>
- <PropertyGroup>
- <!-- We need to explicitly set the target version to Windows 7. -->
- <Win32_WinNTVersion>0x0601</Win32_WinNTVersion>
- </PropertyGroup>
- <!-- Options that are common to *all* configurations for *all* projects. -->
- <ItemDefinitionGroup>
- <Midl>
- <MkTypLibCompatible>true</MkTypLibCompatible>
- <SuppressStartupBanner>true</SuppressStartupBanner>
- </Midl>
- <ClCompile>
- <!-- Note: These preprocessor defines are for *all* configurations for *all* projects. -->
- <!-- Note: See ticket #5750 for the macro '_CRT_SECURE_NO_DEPRECATE'. -->
- <PreprocessorDefinitions>
- WINVER=$(Win32_WinNTVersion);
- _WIN32_WINNT=$(Win32_WinNTVersion);
- _CRT_SECURE_NO_DEPRECATE;
- %(PreprocessorDefinitions)
- </PreprocessorDefinitions>
- <!-- We always want to treat wchar_t as a "real" C++ type, instead of a typedef. -->
- <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
- <SuppressStartupBanner>true</SuppressStartupBanner>
- <!-- Set the source encoding and runtime encoding to UTF-8 by default. -->
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- <!-- Enable parallel compilation for faster builds. -->
- <MultiProcessorCompilation>true</MultiProcessorCompilation>
- </ClCompile>
- <ResourceCompile>
- <Culture>0x0409</Culture>
- </ResourceCompile>
- <Link>
- <SuppressStartupBanner>true</SuppressStartupBanner>
- </Link>
- </ItemDefinitionGroup>
- <!-- Options that are common to all 'Release' configurations for *all* projects. -->
- <ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
- <Midl>
- <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- </Midl>
- <ClCompile>
- <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <StringPooling>true</StringPooling>
- </ClCompile>
- <ResourceCompile>
- <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- </ResourceCompile>
- <Link>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- </Link>
- </ItemDefinitionGroup>
- <!-- Options that are common to all 'Debug' configurations for *all* projects. -->
- <ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
- <Midl>
- <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- </Midl>
- <ClCompile>
- <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <Optimization>Disabled</Optimization>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <BufferSecurityCheck>true</BufferSecurityCheck>
- </ClCompile>
- <ResourceCompile>
- <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- </ResourceCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
- </Link>
- </ItemDefinitionGroup>
- <!-- Options that are common to all 32-bit configurations for *all* projects. -->
- <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
- <Midl>
- <TargetEnvironment>Win32</TargetEnvironment>
- </Midl>
- <ClCompile>
- <PreprocessorDefinitions>WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- </ClCompile>
- <Link>
- <TargetMachine>MachineX86</TargetMachine>
- </Link>
- </ItemDefinitionGroup>
- <!-- Options that are common to all 64-bit configurations for *all* projects. -->
- <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
- <Midl>
- <TargetEnvironment>X64</TargetEnvironment>
- </Midl>
- <ClCompile>
- <PreprocessorDefinitions>WIN64;WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- </ClCompile>
- <Link>
- <TargetMachine>MachineX64</TargetMachine>
- </Link>
- </ItemDefinitionGroup>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html -->
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <!-- This file is used to set default configuration options for all non-UWP Visual Studio projects. -->
+ <!-- These are the default project configurations for building. -->
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup>
+ <!-- This is the version of the MSVC tool-set to use. -->
+ <!-- v140 is the Visual Studio 2015 toolset. -->
+ <!-- v141 is the Visual Studio 2017 toolset. -->
+ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup>
+ <!-- This is the default SDK target. -->
+ <!-- Note that the Windows 8.1 SDK is backwards compatible down-level to Windows 7, so
+ setting this to 8.1 does not actually imply targeting Windows 8.1. -->
+ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+ </PropertyGroup>
+ <PropertyGroup>
+ <!-- We need to explicitly set the target version to Windows 7. -->
+ <Win32_WinNTVersion>0x0601</Win32_WinNTVersion>
+ </PropertyGroup>
+ <!-- Options that are common to *all* configurations for *all* projects. -->
+ <ItemDefinitionGroup>
+ <Midl>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Midl>
+ <ClCompile>
+ <!-- Note: These preprocessor defines are for *all* configurations for *all* projects. -->
+ <!-- Note: See ticket #5750 for the macro '_CRT_SECURE_NO_DEPRECATE'. -->
+ <PreprocessorDefinitions>
+ WINVER=$(Win32_WinNTVersion);
+ _WIN32_WINNT=$(Win32_WinNTVersion);
+ _CRT_SECURE_NO_DEPRECATE;
+ %(PreprocessorDefinitions)
+ </PreprocessorDefinitions>
+ <!-- We always want to treat wchar_t as a "real" C++ type, instead of a typedef. -->
+ <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <!-- Set the source encoding and runtime encoding to UTF-8 by default. -->
+ <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
+ <!-- Enable parallel compilation for faster builds. -->
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ </ClCompile>
+ <ResourceCompile>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Link>
+ </ItemDefinitionGroup>
+ <!-- Options that are common to all 'Release' configurations for *all* projects. -->
+ <ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
+ <Midl>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </Midl>
+ <ClCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ResourceCompile>
+ <Link>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ </Link>
+ </ItemDefinitionGroup>
+ <!-- Options that are common to all 'Debug' configurations for *all* projects. -->
+ <ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
+ <Midl>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </Midl>
+ <ClCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Optimization>Disabled</Optimization>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <BufferSecurityCheck>true</BufferSecurityCheck>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ResourceCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+ </Link>
+ </ItemDefinitionGroup>
+ <!-- Options that are common to all 32-bit configurations for *all* projects. -->
+ <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+ <Midl>
+ <TargetEnvironment>Win32</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <PreprocessorDefinitions>WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <Link>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <!-- Options that are common to all 64-bit configurations for *all* projects. -->
+ <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <PreprocessorDefinitions>WIN64;WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <Link>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
</Project> \ No newline at end of file
diff --git a/Build/source/libs/icu/icu-src/source/allinone/Build.Windows.UWP.ProjectConfiguration.props b/Build/source/libs/icu/icu-src/source/allinone/Build.Windows.UWP.ProjectConfiguration.props
index 4b51960dfa7..5988c73be38 100644
--- a/Build/source/libs/icu/icu-src/source/allinone/Build.Windows.UWP.ProjectConfiguration.props
+++ b/Build/source/libs/icu/icu-src/source/allinone/Build.Windows.UWP.ProjectConfiguration.props
@@ -1,41 +1,41 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html -->
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <!-- This file is used to set common configuration options for all *_uwp projects. -->
- <PropertyGroup>
- <!-- If not already set, use this version of the Win10 SDK -->
- <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
- <!-- If not already set, set the minimum Win10 SDK version to TH1/RTM -->
- <WindowsTargetPlatformMinVersion>10.0.10240.0</WindowsTargetPlatformMinVersion>
-
- <MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
- <AppContainerApplication>true</AppContainerApplication>
- <ApplicationType>Windows Store</ApplicationType>
- <ApplicationTypeRevision>10.0</ApplicationTypeRevision>
- </PropertyGroup>
- <PropertyGroup>
- <!-- This is the version of the MSVC tool-set to use. -->
- <!-- v141 is the Visual Studio 2017 toolset. -->
- <PlatformToolset>v141</PlatformToolset>
- </PropertyGroup>
- <ItemDefinitionGroup>
- <Midl>
- <PreprocessorDefinitions>
- %(PreprocessorDefinitions)
- U_PLATFORM_HAS_WINUWP_API=1;
- </PreprocessorDefinitions>
- </Midl>
- <ClCompile>
- <PreprocessorDefinitions>
- %(PreprocessorDefinitions);
- U_PLATFORM_HAS_WINUWP_API=1;
- </PreprocessorDefinitions>
- </ClCompile>
- <ResourceCompile>
- <PreprocessorDefinitions>
- %(PreprocessorDefinitions)
- U_PLATFORM_HAS_WINUWP_API=1;
- </PreprocessorDefinitions>
- </ResourceCompile>
- </ItemDefinitionGroup>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html -->
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <!-- This file is used to set common configuration options for all *_uwp projects. -->
+ <PropertyGroup>
+ <!-- If not already set, use this version of the Win10 SDK -->
+ <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
+ <!-- If not already set, set the minimum Win10 SDK version to TH1/RTM -->
+ <WindowsTargetPlatformMinVersion>10.0.10240.0</WindowsTargetPlatformMinVersion>
+
+ <MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
+ <AppContainerApplication>true</AppContainerApplication>
+ <ApplicationType>Windows Store</ApplicationType>
+ <ApplicationTypeRevision>10.0</ApplicationTypeRevision>
+ </PropertyGroup>
+ <PropertyGroup>
+ <!-- This is the version of the MSVC tool-set to use. -->
+ <!-- v141 is the Visual Studio 2017 toolset. -->
+ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <ItemDefinitionGroup>
+ <Midl>
+ <PreprocessorDefinitions>
+ %(PreprocessorDefinitions)
+ U_PLATFORM_HAS_WINUWP_API=1;
+ </PreprocessorDefinitions>
+ </Midl>
+ <ClCompile>
+ <PreprocessorDefinitions>
+ %(PreprocessorDefinitions);
+ U_PLATFORM_HAS_WINUWP_API=1;
+ </PreprocessorDefinitions>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>
+ %(PreprocessorDefinitions)
+ U_PLATFORM_HAS_WINUWP_API=1;
+ </PreprocessorDefinitions>
+ </ResourceCompile>
+ </ItemDefinitionGroup>
</Project> \ No newline at end of file
diff --git a/Build/source/libs/icu/icu-src/source/allinone/Windows.CopyUnicodeHeaderFiles.targets b/Build/source/libs/icu/icu-src/source/allinone/Windows.CopyUnicodeHeaderFiles.targets
index b6ece387e62..f6374ac29cd 100644
--- a/Build/source/libs/icu/icu-src/source/allinone/Windows.CopyUnicodeHeaderFiles.targets
+++ b/Build/source/libs/icu/icu-src/source/allinone/Windows.CopyUnicodeHeaderFiles.targets
@@ -1,27 +1,27 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html -->
-<!--
- This file is used to copy all of the header files (*.h) from a project's "unicode" folder to a common output folder.
--->
-<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <PropertyGroup>
- <!-- This is the location of the common output folder. -->
- <CopyDestionationPath>$(SolutionDir)\..\..\include\unicode</CopyDestionationPath>
- <BuildDependsOn>
- $(BuildDependsOn);
- CopyUnicodeHeaderFiles;
- </BuildDependsOn>
- </PropertyGroup>
- <Target Name="CopyUnicodeHeaderFiles">
- <ItemGroup>
- <!-- Generate a list of all files that end in .h from the 'unicode' folder, relative to the current project. -->
- <OutputFiles Include=".\unicode\**\*.h" />
- </ItemGroup>
- <!-- This message will be logged in the project's build output. -->
- <Message Text="Copying @(OutputFiles->Count()) header files to $(CopyDestionationPath). Files copied: @(OutputFiles)" Importance="high"/>
- <!-- Perform the copy. -->
- <Copy SourceFiles="@(OutputFiles)"
- DestinationFolder="$(CopyDestionationPath)\%(RecursiveDir)"
- SkipUnchangedFiles="false"></Copy>
- </Target>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html -->
+<!--
+ This file is used to copy all of the header files (*.h) from a project's "unicode" folder to a common output folder.
+-->
+<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <!-- This is the location of the common output folder. -->
+ <CopyDestionationPath>$(SolutionDir)\..\..\include\unicode</CopyDestionationPath>
+ <BuildDependsOn>
+ $(BuildDependsOn);
+ CopyUnicodeHeaderFiles;
+ </BuildDependsOn>
+ </PropertyGroup>
+ <Target Name="CopyUnicodeHeaderFiles">
+ <ItemGroup>
+ <!-- Generate a list of all files that end in .h from the 'unicode' folder, relative to the current project. -->
+ <OutputFiles Include=".\unicode\**\*.h" />
+ </ItemGroup>
+ <!-- This message will be logged in the project's build output. -->
+ <Message Text="Copying @(OutputFiles->Count()) header files to $(CopyDestionationPath). Files copied: @(OutputFiles)" Importance="high"/>
+ <!-- Perform the copy. -->
+ <Copy SourceFiles="@(OutputFiles)"
+ DestinationFolder="$(CopyDestionationPath)\%(RecursiveDir)"
+ SkipUnchangedFiles="false"></Copy>
+ </Target>
</Project> \ No newline at end of file
diff --git a/Build/source/libs/icu/icu-src/source/allinone/allinone.sln b/Build/source/libs/icu/icu-src/source/allinone/allinone.sln
index 62458727b5e..b2b133053b3 100644
--- a/Build/source/libs/icu/icu-src/source/allinone/allinone.sln
+++ b/Build/source/libs/icu/icu-src/source/allinone/allinone.sln
@@ -116,9 +116,9 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "toolutil", "..\tools\toolut
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uconv", "..\extra\uconv\uconv.vcxproj", "{DBA4088D-F6F9-4F8F-8820-082A4765C16C}"
ProjectSection(ProjectDependencies) = postProject
+ {97521D06-EC47-45D4-8BD0-9E16B3F93B2A} = {97521D06-EC47-45D4-8BD0-9E16B3F93B2A}
{0178B127-6269-407D-B112-93877BB62776} = {0178B127-6269-407D-B112-93877BB62776}
{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
- {D3065ADB-8820-4CC7-9B6C-9510833961A3} = {D3065ADB-8820-4CC7-9B6C-9510833961A3}
{4C8454FE-81D3-4CA3-9927-29BA96F03DAC} = {4C8454FE-81D3-4CA3-9927-29BA96F03DAC}
EndProjectSection
EndProject
diff --git a/Build/source/libs/icu/icu-src/source/allinone/icucheck.bat b/Build/source/libs/icu/icu-src/source/allinone/icucheck.bat
index 119bc99b416..9fc56fa03c2 100755
--- a/Build/source/libs/icu/icu-src/source/allinone/icucheck.bat
+++ b/Build/source/libs/icu/icu-src/source/allinone/icucheck.bat
@@ -52,7 +52,7 @@ set ICUFAILCNT=0
@echo ==== %THT% =========================================================================
%ICUINFO_CMD% %ICUINFO_OPTS%
-@IF NOT ERRORLEVEL 1 GOTO OK_%THT%
+@IF %ERRORLEVEL% EQU 0 GOTO OK_%THT%
@set ICUFAILED=%ICUFAILED% %THT%
@set ICUFAILCNT=1
:OK_icuinfo
@@ -63,7 +63,7 @@ set ICUFAILCNT=0
@cd %ICU_ICUDIR%\source\test\intltest
%INTLTEST_CMD% %INTLTEST_OPTS%
-@IF NOT ERRORLEVEL 1 GOTO OK_%THT%
+@IF %ERRORLEVEL% EQU 0 GOTO OK_%THT%
@set ICUFAILED=%ICUFAILED% %THT%
@set ICUFAILCNT=1
:OK_intltest
@@ -74,7 +74,7 @@ set ICUFAILCNT=0
@cd %ICU_ICUDIR%\source\test\iotest
%IOTEST_CMD% %IOTEST_OPTS%
-@IF NOT ERRORLEVEL 1 GOTO OK_%THT%
+@IF %ERRORLEVEL% EQU 0 GOTO OK_%THT%
@set ICUFAILED=%ICUFAILED% %THT%
@set ICUFAILCNT=1
:OK_IOTEST
@@ -85,7 +85,7 @@ set ICUFAILCNT=0
@cd %ICU_ICUDIR%\source\test\cintltst
%CINTLTST_CMD% %CINTLTST_OPTS%
-@IF NOT ERRORLEVEL 1 GOTO OK_%THT%
+@IF %ERRORLEVEL% EQU 0 GOTO OK_%THT%
@set ICUFAILED=%ICUFAILED% %THT%
@set ICUFAILCNT=1
:OK_cintltst
@@ -97,7 +97,7 @@ set ICUFAILCNT=0
@REM @cd %ICU_ICUDIR%\source\test\letest
@REM %LETST_CMD% %LETEST_OPTS%
-@REM @IF NOT ERRORLEVEL 1 GOTO OK_%THT%
+@REM @IF %ERRORLEVEL% EQU 0 GOTO OK_%THT%
@REM @set ICUFAILED=%ICUFAILED% %THT%
@REM @set ICUFAILCNT=1
@REM :OK_letest
diff --git a/Build/source/libs/icu/icu-src/source/common/Makefile.in b/Build/source/libs/icu/icu-src/source/common/Makefile.in
index cf0799aed14..e10d3a27d3a 100644
--- a/Build/source/libs/icu/icu-src/source/common/Makefile.in
+++ b/Build/source/libs/icu/icu-src/source/common/Makefile.in
@@ -81,7 +81,7 @@ LIBS = $(LIBICUDT) $(DEFAULT_LIBS)
OBJECTS = errorcode.o putil.o umath.o utypes.o uinvchar.o umutex.o ucln_cmn.o \
uinit.o uobject.o cmemory.o charstr.o cstr.o \
-udata.o ucmndata.o udatamem.o umapfile.o udataswp.o ucol_swp.o utrace.o \
+udata.o ucmndata.o udatamem.o umapfile.o udataswp.o utrie_swap.o ucol_swp.o utrace.o \
uhash.o uhash_us.o uenum.o ustrenum.o uvector.o ustack.o uvectr32.o uvectr64.o \
ucnv.o ucnv_bld.o ucnv_cnv.o ucnv_io.o ucnv_cb.o ucnv_err.o ucnvlat1.o \
ucnv_u7.o ucnv_u8.o ucnv_u16.o ucnv_u32.o ucnvscsu.o ucnvbocu.o \
@@ -100,18 +100,21 @@ utf_impl.o ustring.o ustrcase.o ucasemap.o ucasemap_titlecase_brkiter.o cstring.
unistr_case_locale.o ustrcase_locale.o unistr_titlecase_brkiter.o ustr_titlecase_brkiter.o \
normalizer2impl.o normalizer2.o filterednormalizer2.o normlzr.o unorm.o unormcmp.o loadednormalizer2impl.o \
chariter.o schriter.o uchriter.o uiter.o \
-patternprops.o uchar.o uprops.o ucase.o propname.o ubidi_props.o ubidi.o ubidiwrt.o ubidiln.o ushape.o \
+patternprops.o uchar.o uprops.o ucase.o propname.o ubidi_props.o characterproperties.o \
+ubidi.o ubidiwrt.o ubidiln.o ushape.o \
uscript.o uscript_props.o usc_impl.o unames.o \
-utrie.o utrie2.o utrie2_builder.o bmpset.o unisetspan.o uset_props.o uniset_props.o uniset_closure.o uset.o uniset.o usetiter.o ruleiter.o caniter.o unifilt.o unifunct.o \
+utrie.o utrie2.o utrie2_builder.o ucptrie.o umutablecptrie.o \
+bmpset.o unisetspan.o uset_props.o uniset_props.o uniset_closure.o uset.o uniset.o usetiter.o ruleiter.o caniter.o unifilt.o unifunct.o \
uarrsort.o brkiter.o ubrk.o brkeng.o dictbe.o filteredbrk.o \
rbbi.o rbbidata.o rbbinode.o rbbirb.o rbbiscan.o rbbisetb.o rbbistbl.o rbbitblb.o rbbi_cache.o \
serv.o servnotf.o servls.o servlk.o servlkf.o servrbf.o servslkf.o \
uidna.o usprep.o uts46.o punycode.o \
util.o util_props.o parsepos.o locbased.o cwchar.o wintz.o dtintrv.o ucnvsel.o propsvec.o \
-ulist.o uloc_tag.o icudataver.o icuplug.o listformatter.o ulistformatter.o \
+ulist.o uloc_tag.o icudataver.o icuplug.o \
sharedobject.o simpleformatter.o unifiedcache.o uloc_keytype.o \
ubiditransform.o \
-pluralmap.o
+pluralmap.o \
+static_unicode_sets.o
## Header files to install
HEADERS = $(srcdir)/unicode/*.h
diff --git a/Build/source/libs/icu/icu-src/source/common/bmpset.cpp b/Build/source/libs/icu/icu-src/source/common/bmpset.cpp
index 35bc80dce35..bc79f5e5a63 100644
--- a/Build/source/libs/icu/icu-src/source/common/bmpset.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/bmpset.cpp
@@ -241,13 +241,13 @@ void BMPSet::overrideIllegal() {
bmpBlockBits[i]|=bits;
}
- mask=~(0x10001<<0xd); // Lead byte 0xED.
+ mask= static_cast<uint32_t>(~(0x10001<<0xd)); // Lead byte 0xED.
bits=1<<0xd;
for(i=32; i<64; ++i) { // Second half of 4k block.
bmpBlockBits[i]=(bmpBlockBits[i]&mask)|bits;
}
} else {
- mask=~(0x10001<<0xd); // Lead byte 0xED.
+ mask= static_cast<uint32_t>(~(0x10001<<0xd)); // Lead byte 0xED.
for(i=32; i<64; ++i) { // Second half of 4k block.
bmpBlockBits[i]&=mask;
}
diff --git a/Build/source/libs/icu/icu-src/source/common/bytesinkutil.cpp b/Build/source/libs/icu/icu-src/source/common/bytesinkutil.cpp
index 6af7ddfd597..c64a845f875 100644
--- a/Build/source/libs/icu/icu-src/source/common/bytesinkutil.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/bytesinkutil.cpp
@@ -11,6 +11,7 @@
#include "unicode/utf8.h"
#include "unicode/utf16.h"
#include "bytesinkutil.h"
+#include "charstr.h"
#include "cmemory.h"
#include "uassert.h"
@@ -120,4 +121,41 @@ ByteSinkUtil::appendUnchanged(const uint8_t *s, const uint8_t *limit,
return TRUE;
}
+CharStringByteSink::CharStringByteSink(CharString* dest) : dest_(*dest) {
+}
+
+CharStringByteSink::~CharStringByteSink() = default;
+
+void
+CharStringByteSink::Append(const char* bytes, int32_t n) {
+ UErrorCode status = U_ZERO_ERROR;
+ dest_.append(bytes, n, status);
+ // Any errors are silently ignored.
+}
+
+char*
+CharStringByteSink::GetAppendBuffer(int32_t min_capacity,
+ int32_t desired_capacity_hint,
+ char* scratch,
+ int32_t scratch_capacity,
+ int32_t* result_capacity) {
+ if (min_capacity < 1 || scratch_capacity < min_capacity) {
+ *result_capacity = 0;
+ return nullptr;
+ }
+
+ UErrorCode status = U_ZERO_ERROR;
+ char* result = dest_.getAppendBuffer(
+ min_capacity,
+ desired_capacity_hint,
+ *result_capacity,
+ status);
+ if (U_SUCCESS(status)) {
+ return result;
+ }
+
+ *result_capacity = scratch_capacity;
+ return scratch;
+}
+
U_NAMESPACE_END
diff --git a/Build/source/libs/icu/icu-src/source/common/bytesinkutil.h b/Build/source/libs/icu/icu-src/source/common/bytesinkutil.h
index 8287ffea4ca..69e4cbcd263 100644
--- a/Build/source/libs/icu/icu-src/source/common/bytesinkutil.h
+++ b/Build/source/libs/icu/icu-src/source/common/bytesinkutil.h
@@ -13,6 +13,7 @@
U_NAMESPACE_BEGIN
class ByteSink;
+class CharString;
class Edits;
class U_COMMON_API ByteSinkUtil {
@@ -58,4 +59,25 @@ private:
ByteSink &sink, uint32_t options, Edits *edits);
};
+class CharStringByteSink : public ByteSink {
+public:
+ CharStringByteSink(CharString* dest);
+ ~CharStringByteSink() override;
+
+ CharStringByteSink() = delete;
+ CharStringByteSink(const CharStringByteSink&) = delete;
+ CharStringByteSink& operator=(const CharStringByteSink&) = delete;
+
+ void Append(const char* bytes, int32_t n) override;
+
+ char* GetAppendBuffer(int32_t min_capacity,
+ int32_t desired_capacity_hint,
+ char* scratch,
+ int32_t scratch_capacity,
+ int32_t* result_capacity) override;
+
+private:
+ CharString& dest_;
+};
+
U_NAMESPACE_END
diff --git a/Build/source/libs/icu/icu-src/source/common/bytestriebuilder.cpp b/Build/source/libs/icu/icu-src/source/common/bytestriebuilder.cpp
index 581505e0092..ec1ab7d8f50 100644
--- a/Build/source/libs/icu/icu-src/source/common/bytestriebuilder.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/bytestriebuilder.cpp
@@ -339,7 +339,8 @@ BytesTrieBuilder::indexOfElementWithNextUnit(int32_t i, int32_t byteIndex, UChar
BytesTrieBuilder::BTLinearMatchNode::BTLinearMatchNode(const char *bytes, int32_t len, Node *nextNode)
: LinearMatchNode(len, nextNode), s(bytes) {
- hash=hash*37+ustr_hashCharsN(bytes, len);
+ hash=static_cast<int32_t>(
+ static_cast<uint32_t>(hash)*37u + static_cast<uint32_t>(ustr_hashCharsN(bytes, len)));
}
UBool
diff --git a/Build/source/libs/icu/icu-src/source/common/characterproperties.cpp b/Build/source/libs/icu/icu-src/source/common/characterproperties.cpp
new file mode 100644
index 00000000000..3aff85b3f11
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/common/characterproperties.cpp
@@ -0,0 +1,336 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// characterproperties.cpp
+// created: 2018sep03 Markus W. Scherer
+
+#include "unicode/utypes.h"
+#include "unicode/localpointer.h"
+#include "unicode/uchar.h"
+#include "unicode/ucpmap.h"
+#include "unicode/ucptrie.h"
+#include "unicode/umutablecptrie.h"
+#include "unicode/uniset.h"
+#include "unicode/uscript.h"
+#include "unicode/uset.h"
+#include "cmemory.h"
+#include "mutex.h"
+#include "normalizer2impl.h"
+#include "uassert.h"
+#include "ubidi_props.h"
+#include "ucase.h"
+#include "ucln_cmn.h"
+#include "umutex.h"
+#include "uprops.h"
+
+using icu::UInitOnce;
+using icu::UnicodeSet;
+
+namespace {
+
+UBool U_CALLCONV characterproperties_cleanup();
+
+struct Inclusion {
+ UnicodeSet *fSet;
+ UInitOnce fInitOnce;
+};
+Inclusion gInclusions[UPROPS_SRC_COUNT]; // cached getInclusions()
+
+UnicodeSet *sets[UCHAR_BINARY_LIMIT] = {};
+
+UCPMap *maps[UCHAR_INT_LIMIT - UCHAR_INT_START] = {};
+
+UMutex cpMutex = U_MUTEX_INITIALIZER;
+
+//----------------------------------------------------------------
+// Inclusions list
+//----------------------------------------------------------------
+
+// USetAdder implementation
+// Does not use uset.h to reduce code dependencies
+void U_CALLCONV
+_set_add(USet *set, UChar32 c) {
+ ((UnicodeSet *)set)->add(c);
+}
+
+void U_CALLCONV
+_set_addRange(USet *set, UChar32 start, UChar32 end) {
+ ((UnicodeSet *)set)->add(start, end);
+}
+
+void U_CALLCONV
+_set_addString(USet *set, const UChar *str, int32_t length) {
+ ((UnicodeSet *)set)->add(icu::UnicodeString((UBool)(length<0), str, length));
+}
+
+UBool U_CALLCONV characterproperties_cleanup() {
+ for (Inclusion &in: gInclusions) {
+ delete in.fSet;
+ in.fSet = nullptr;
+ in.fInitOnce.reset();
+ }
+ for (int32_t i = 0; i < UPRV_LENGTHOF(sets); ++i) {
+ delete sets[i];
+ sets[i] = nullptr;
+ }
+ for (int32_t i = 0; i < UPRV_LENGTHOF(maps); ++i) {
+ ucptrie_close(reinterpret_cast<UCPTrie *>(maps[i]));
+ maps[i] = nullptr;
+ }
+ return TRUE;
+}
+
+} // namespace
+
+U_NAMESPACE_BEGIN
+
+/*
+Reduce excessive reallocation, and make it easier to detect initialization problems.
+Usually you don't see smaller sets than this for Unicode 5.0.
+*/
+constexpr int32_t DEFAULT_INCLUSION_CAPACITY = 3072;
+
+void U_CALLCONV CharacterProperties::initInclusion(UPropertySource src, UErrorCode &errorCode) {
+ // This function is invoked only via umtx_initOnce().
+ // This function is a friend of class UnicodeSet.
+
+ U_ASSERT(0 <= src && src < UPROPS_SRC_COUNT);
+ if (src == UPROPS_SRC_NONE) {
+ errorCode = U_INTERNAL_PROGRAM_ERROR;
+ return;
+ }
+ UnicodeSet * &incl = gInclusions[src].fSet;
+ U_ASSERT(incl == nullptr);
+
+ incl = new UnicodeSet();
+ if (incl == nullptr) {
+ errorCode = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+ USetAdder sa = {
+ (USet *)incl,
+ _set_add,
+ _set_addRange,
+ _set_addString,
+ nullptr, // don't need remove()
+ nullptr // don't need removeRange()
+ };
+
+ incl->ensureCapacity(DEFAULT_INCLUSION_CAPACITY, errorCode);
+ switch(src) {
+ case UPROPS_SRC_CHAR:
+ uchar_addPropertyStarts(&sa, &errorCode);
+ break;
+ case UPROPS_SRC_PROPSVEC:
+ upropsvec_addPropertyStarts(&sa, &errorCode);
+ break;
+ case UPROPS_SRC_CHAR_AND_PROPSVEC:
+ uchar_addPropertyStarts(&sa, &errorCode);
+ upropsvec_addPropertyStarts(&sa, &errorCode);
+ break;
+#if !UCONFIG_NO_NORMALIZATION
+ case UPROPS_SRC_CASE_AND_NORM: {
+ const Normalizer2Impl *impl=Normalizer2Factory::getNFCImpl(errorCode);
+ if(U_SUCCESS(errorCode)) {
+ impl->addPropertyStarts(&sa, errorCode);
+ }
+ ucase_addPropertyStarts(&sa, &errorCode);
+ break;
+ }
+ case UPROPS_SRC_NFC: {
+ const Normalizer2Impl *impl=Normalizer2Factory::getNFCImpl(errorCode);
+ if(U_SUCCESS(errorCode)) {
+ impl->addPropertyStarts(&sa, errorCode);
+ }
+ break;
+ }
+ case UPROPS_SRC_NFKC: {
+ const Normalizer2Impl *impl=Normalizer2Factory::getNFKCImpl(errorCode);
+ if(U_SUCCESS(errorCode)) {
+ impl->addPropertyStarts(&sa, errorCode);
+ }
+ break;
+ }
+ case UPROPS_SRC_NFKC_CF: {
+ const Normalizer2Impl *impl=Normalizer2Factory::getNFKC_CFImpl(errorCode);
+ if(U_SUCCESS(errorCode)) {
+ impl->addPropertyStarts(&sa, errorCode);
+ }
+ break;
+ }
+ case UPROPS_SRC_NFC_CANON_ITER: {
+ const Normalizer2Impl *impl=Normalizer2Factory::getNFCImpl(errorCode);
+ if(U_SUCCESS(errorCode)) {
+ impl->addCanonIterPropertyStarts(&sa, errorCode);
+ }
+ break;
+ }
+#endif
+ case UPROPS_SRC_CASE:
+ ucase_addPropertyStarts(&sa, &errorCode);
+ break;
+ case UPROPS_SRC_BIDI:
+ ubidi_addPropertyStarts(&sa, &errorCode);
+ break;
+ case UPROPS_SRC_INPC:
+ case UPROPS_SRC_INSC:
+ case UPROPS_SRC_VO:
+ uprops_addPropertyStarts((UPropertySource)src, &sa, &errorCode);
+ break;
+ default:
+ errorCode = U_INTERNAL_PROGRAM_ERROR;
+ break;
+ }
+
+ if (U_FAILURE(errorCode)) {
+ delete incl;
+ incl = nullptr;
+ return;
+ }
+ // Compact for caching
+ incl->compact();
+ ucln_common_registerCleanup(UCLN_COMMON_CHARACTERPROPERTIES, characterproperties_cleanup);
+}
+
+const UnicodeSet *getInclusionsForSource(UPropertySource src, UErrorCode &errorCode) {
+ if (U_FAILURE(errorCode)) { return nullptr; }
+ if (src < 0 || UPROPS_SRC_COUNT <= src) {
+ errorCode = U_ILLEGAL_ARGUMENT_ERROR;
+ return nullptr;
+ }
+ Inclusion &i = gInclusions[src];
+ umtx_initOnce(i.fInitOnce, &CharacterProperties::initInclusion, src, errorCode);
+ return i.fSet;
+}
+
+const UnicodeSet *CharacterProperties::getInclusionsForProperty(
+ UProperty prop, UErrorCode &errorCode) {
+ if (U_FAILURE(errorCode)) { return nullptr; }
+ UPropertySource src = uprops_getSource(prop);
+ return getInclusionsForSource(src, errorCode);
+}
+
+U_NAMESPACE_END
+
+namespace {
+
+UnicodeSet *makeSet(UProperty property, UErrorCode &errorCode) {
+ if (U_FAILURE(errorCode)) { return nullptr; }
+ icu::LocalPointer<UnicodeSet> set(new UnicodeSet());
+ if (set.isNull()) {
+ errorCode = U_MEMORY_ALLOCATION_ERROR;
+ return nullptr;
+ }
+ const UnicodeSet *inclusions =
+ icu::CharacterProperties::getInclusionsForProperty(property, errorCode);
+ if (U_FAILURE(errorCode)) { return nullptr; }
+ int32_t numRanges = inclusions->getRangeCount();
+ UChar32 startHasProperty = -1;
+
+ for (int32_t i = 0; i < numRanges; ++i) {
+ UChar32 rangeEnd = inclusions->getRangeEnd(i);
+ for (UChar32 c = inclusions->getRangeStart(i); c <= rangeEnd; ++c) {
+ // TODO: Get a UCharacterProperty.BinaryProperty to avoid the property dispatch.
+ if (u_hasBinaryProperty(c, property)) {
+ if (startHasProperty < 0) {
+ // Transition from false to true.
+ startHasProperty = c;
+ }
+ } else if (startHasProperty >= 0) {
+ // Transition from true to false.
+ set->add(startHasProperty, c - 1);
+ startHasProperty = -1;
+ }
+ }
+ }
+ if (startHasProperty >= 0) {
+ set->add(startHasProperty, 0x10FFFF);
+ }
+ set->freeze();
+ return set.orphan();
+}
+
+UCPMap *makeMap(UProperty property, UErrorCode &errorCode) {
+ if (U_FAILURE(errorCode)) { return nullptr; }
+ uint32_t nullValue = property == UCHAR_SCRIPT ? USCRIPT_UNKNOWN : 0;
+ icu::LocalUMutableCPTriePointer mutableTrie(
+ umutablecptrie_open(nullValue, nullValue, &errorCode));
+ const UnicodeSet *inclusions =
+ icu::CharacterProperties::getInclusionsForProperty(property, errorCode);
+ if (U_FAILURE(errorCode)) { return nullptr; }
+ int32_t numRanges = inclusions->getRangeCount();
+ UChar32 start = 0;
+ uint32_t value = nullValue;
+
+ for (int32_t i = 0; i < numRanges; ++i) {
+ UChar32 rangeEnd = inclusions->getRangeEnd(i);
+ for (UChar32 c = inclusions->getRangeStart(i); c <= rangeEnd; ++c) {
+ // TODO: Get a UCharacterProperty.IntProperty to avoid the property dispatch.
+ uint32_t nextValue = u_getIntPropertyValue(c, property);
+ if (value != nextValue) {
+ if (value != nullValue) {
+ umutablecptrie_setRange(mutableTrie.getAlias(), start, c - 1, value, &errorCode);
+ }
+ start = c;
+ value = nextValue;
+ }
+ }
+ }
+ if (value != 0) {
+ umutablecptrie_setRange(mutableTrie.getAlias(), start, 0x10FFFF, value, &errorCode);
+ }
+
+ UCPTrieType type;
+ if (property == UCHAR_BIDI_CLASS || property == UCHAR_GENERAL_CATEGORY) {
+ type = UCPTRIE_TYPE_FAST;
+ } else {
+ type = UCPTRIE_TYPE_SMALL;
+ }
+ UCPTrieValueWidth valueWidth;
+ // TODO: UCharacterProperty.IntProperty
+ int32_t max = u_getIntPropertyMaxValue(property);
+ if (max <= 0xff) {
+ valueWidth = UCPTRIE_VALUE_BITS_8;
+ } else if (max <= 0xffff) {
+ valueWidth = UCPTRIE_VALUE_BITS_16;
+ } else {
+ valueWidth = UCPTRIE_VALUE_BITS_32;
+ }
+ return reinterpret_cast<UCPMap *>(
+ umutablecptrie_buildImmutable(mutableTrie.getAlias(), type, valueWidth, &errorCode));
+}
+
+} // namespace
+
+U_NAMESPACE_USE
+
+U_CAPI const USet * U_EXPORT2
+u_getBinaryPropertySet(UProperty property, UErrorCode *pErrorCode) {
+ if (U_FAILURE(*pErrorCode)) { return nullptr; }
+ if (property < 0 || UCHAR_BINARY_LIMIT <= property) {
+ *pErrorCode = U_ILLEGAL_ARGUMENT_ERROR;
+ return nullptr;
+ }
+ Mutex m(&cpMutex);
+ UnicodeSet *set = sets[property];
+ if (set == nullptr) {
+ sets[property] = set = makeSet(property, *pErrorCode);
+ }
+ if (U_FAILURE(*pErrorCode)) { return nullptr; }
+ return set->toUSet();
+}
+
+U_CAPI const UCPMap * U_EXPORT2
+u_getIntPropertyMap(UProperty property, UErrorCode *pErrorCode) {
+ if (U_FAILURE(*pErrorCode)) { return nullptr; }
+ if (property < UCHAR_INT_START || UCHAR_INT_LIMIT <= property) {
+ *pErrorCode = U_ILLEGAL_ARGUMENT_ERROR;
+ return nullptr;
+ }
+ Mutex m(&cpMutex);
+ UCPMap *map = maps[property - UCHAR_INT_START];
+ if (map == nullptr) {
+ maps[property - UCHAR_INT_START] = map = makeMap(property, *pErrorCode);
+ }
+ return map;
+}
diff --git a/Build/source/libs/icu/icu-src/source/common/charstr.cpp b/Build/source/libs/icu/icu-src/source/common/charstr.cpp
index 8bacd20ddc7..852cc539457 100644
--- a/Build/source/libs/icu/icu-src/source/common/charstr.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/charstr.cpp
@@ -23,6 +23,18 @@
U_NAMESPACE_BEGIN
+CharString::CharString(CharString&& src) U_NOEXCEPT
+ : buffer(std::move(src.buffer)), len(src.len) {
+ src.len = 0; // not strictly necessary because we make no guarantees on the source string
+}
+
+CharString& CharString::operator=(CharString&& src) U_NOEXCEPT {
+ buffer = std::move(src.buffer);
+ len = src.len;
+ src.len = 0; // not strictly necessary because we make no guarantees on the source string
+ return *this;
+}
+
CharString &CharString::copyFrom(const CharString &s, UErrorCode &errorCode) {
if(U_SUCCESS(errorCode) && this!=&s && ensureCapacity(s.len+1, 0, errorCode)) {
len=s.len;
@@ -67,7 +79,7 @@ CharString &CharString::append(const char *s, int32_t sLength, UErrorCode &error
return *this;
}
if(sLength<0) {
- sLength=uprv_strlen(s);
+ sLength= static_cast<int32_t>(uprv_strlen(s));
}
if(sLength>0) {
if(s==(buffer.getAlias()+len)) {
@@ -114,15 +126,21 @@ char *CharString::getAppendBuffer(int32_t minCapacity,
}
CharString &CharString::appendInvariantChars(const UnicodeString &s, UErrorCode &errorCode) {
+ return appendInvariantChars(s.getBuffer(), s.length(), errorCode);
+}
+
+CharString &CharString::appendInvariantChars(const UChar* uchars, int32_t ucharsLen, UErrorCode &errorCode) {
if(U_FAILURE(errorCode)) {
return *this;
}
- if (!uprv_isInvariantUnicodeString(s)) {
+ if (!uprv_isInvariantUString(uchars, ucharsLen)) {
errorCode = U_INVARIANT_CONVERSION_ERROR;
return *this;
}
- if(ensureCapacity(len+s.length()+1, 0, errorCode)) {
- len+=s.extract(0, 0x7fffffff, buffer.getAlias()+len, buffer.getCapacity()-len, US_INV);
+ if(ensureCapacity(len+ucharsLen+1, 0, errorCode)) {
+ u_UCharsToChars(uchars, buffer.getAlias()+len, ucharsLen);
+ len += ucharsLen;
+ buffer[len] = 0;
}
return *this;
}
diff --git a/Build/source/libs/icu/icu-src/source/common/charstr.h b/Build/source/libs/icu/icu-src/source/common/charstr.h
index 3cfdf6a897a..1a97e01988f 100644
--- a/Build/source/libs/icu/icu-src/source/common/charstr.h
+++ b/Build/source/libs/icu/icu-src/source/common/charstr.h
@@ -56,6 +56,18 @@ public:
~CharString() {}
/**
+ * Move constructor; might leave src in an undefined state.
+ * This string will have the same contents and state that the source string had.
+ */
+ CharString(CharString &&src) U_NOEXCEPT;
+ /**
+ * Move assignment operator; might leave src in an undefined state.
+ * This string will have the same contents and state that the source string had.
+ * The behavior is undefined if *this and src are the same object.
+ */
+ CharString &operator=(CharString &&src) U_NOEXCEPT;
+
+ /**
* Replaces this string's contents with the other string's contents.
* CharString does not support the standard copy constructor nor
* the assignment operator, to make copies explicit and to
@@ -111,6 +123,7 @@ public:
UErrorCode &errorCode);
CharString &appendInvariantChars(const UnicodeString &s, UErrorCode &errorCode);
+ CharString &appendInvariantChars(const UChar* uchars, int32_t ucharsLen, UErrorCode& errorCode);
/**
* Appends a filename/path part, e.g., a directory name.
diff --git a/Build/source/libs/icu/icu-src/source/common/cmemory.h b/Build/source/libs/icu/icu-src/source/common/cmemory.h
index 5cb52993abc..f1eef4e7611 100644
--- a/Build/source/libs/icu/icu-src/source/common/cmemory.h
+++ b/Build/source/libs/icu/icu-src/source/common/cmemory.h
@@ -172,7 +172,7 @@ public:
* @return *this
*/
LocalMemory<T> &moveFrom(LocalMemory<T> &src) U_NOEXCEPT {
- delete[] LocalPointerBase<T>::ptr;
+ uprv_free(LocalPointerBase<T>::ptr);
LocalPointerBase<T>::ptr=src.ptr;
src.ptr=NULL;
return *this;
@@ -279,6 +279,10 @@ inline T *LocalMemory<T>::allocateInsteadAndCopy(int32_t newCapacity, int32_t le
*
* Unlike LocalMemory and LocalArray, this class never adopts
* (takes ownership of) another array.
+ *
+ * WARNING: MaybeStackArray only works with primitive (plain-old data) types.
+ * It does NOT know how to call a destructor! If you work with classes with
+ * destructors, consider LocalArray in localpointer.h.
*/
template<typename T, int32_t stackCapacity>
class MaybeStackArray {
@@ -300,6 +304,14 @@ public:
*/
~MaybeStackArray() { releaseArray(); }
/**
+ * Move constructor: transfers ownership or copies the stack array.
+ */
+ MaybeStackArray(MaybeStackArray<T, stackCapacity> &&src) U_NOEXCEPT;
+ /**
+ * Move assignment: transfers ownership or copies the stack array.
+ */
+ MaybeStackArray<T, stackCapacity> &operator=(MaybeStackArray<T, stackCapacity> &&src) U_NOEXCEPT;
+ /**
* Returns the array capacity (number of T items).
* @return array capacity
*/
@@ -376,6 +388,11 @@ private:
uprv_free(ptr);
}
}
+ void resetToStackArray() {
+ ptr=stackArray;
+ capacity=stackCapacity;
+ needToRelease=FALSE;
+ }
/* No comparison operators with other MaybeStackArray's. */
bool operator==(const MaybeStackArray & /*other*/) {return FALSE;}
bool operator!=(const MaybeStackArray & /*other*/) {return TRUE;}
@@ -399,6 +416,34 @@ private:
};
template<typename T, int32_t stackCapacity>
+icu::MaybeStackArray<T, stackCapacity>::MaybeStackArray(
+ MaybeStackArray <T, stackCapacity>&& src) U_NOEXCEPT
+ : ptr(src.ptr), capacity(src.capacity), needToRelease(src.needToRelease) {
+ if (src.ptr == src.stackArray) {
+ ptr = stackArray;
+ uprv_memcpy(stackArray, src.stackArray, sizeof(T) * src.capacity);
+ } else {
+ src.resetToStackArray(); // take ownership away from src
+ }
+}
+
+template<typename T, int32_t stackCapacity>
+inline MaybeStackArray <T, stackCapacity>&
+MaybeStackArray<T, stackCapacity>::operator=(MaybeStackArray <T, stackCapacity>&& src) U_NOEXCEPT {
+ releaseArray(); // in case this instance had its own memory allocated
+ capacity = src.capacity;
+ needToRelease = src.needToRelease;
+ if (src.ptr == src.stackArray) {
+ ptr = stackArray;
+ uprv_memcpy(stackArray, src.stackArray, sizeof(T) * src.capacity);
+ } else {
+ ptr = src.ptr;
+ src.resetToStackArray(); // take ownership away from src
+ }
+ return *this;
+}
+
+template<typename T, int32_t stackCapacity>
inline T *MaybeStackArray<T, stackCapacity>::resize(int32_t newCapacity, int32_t length) {
if(newCapacity>0) {
#if U_DEBUG && defined(UPRV_MALLOC_COUNT)
@@ -447,9 +492,7 @@ inline T *MaybeStackArray<T, stackCapacity>::orphanOrClone(int32_t length, int32
uprv_memcpy(p, ptr, (size_t)length*sizeof(T));
}
resultCapacity=length;
- ptr=stackArray;
- capacity=stackCapacity;
- needToRelease=FALSE;
+ resetToStackArray();
return p;
}
diff --git a/Build/source/libs/icu/icu-src/source/common/common.vcxproj b/Build/source/libs/icu/icu-src/source/common/common.vcxproj
index 833807fc383..7df7f15fa42 100644
--- a/Build/source/libs/icu/icu-src/source/common/common.vcxproj
+++ b/Build/source/libs/icu/icu-src/source/common/common.vcxproj
@@ -2,7 +2,8 @@
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- The following import will include the 'default' configuration options for VS projects. -->
<Import Project="..\allinone\Build.Windows.ProjectConfiguration.props" />
-
+ <!-- The following import will include the library configuration options for VS projects. -->
+ <Import Project="..\allinone\Build.Windows.Library.ProjectConfiguration.props" />
<PropertyGroup Label="Globals">
<ProjectGuid>{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}</ProjectGuid>
</PropertyGroup>
@@ -85,7 +86,7 @@
<ProgramDataBaseFileName>.\x86\Release/</ProgramDataBaseFileName>
</ClCompile>
<Link>
- <OutputFile>..\..\bin\icuuc61.dll</OutputFile>
+ <OutputFile>..\..\bin\icuuc63.dll</OutputFile>
<AdditionalLibraryDirectories>.\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ProgramDatabaseFile>.\..\..\lib\icuuc.pdb</ProgramDatabaseFile>
<DataExecutionPrevention>
@@ -105,7 +106,7 @@
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Link>
- <OutputFile>..\..\bin\icuuc61d.dll</OutputFile>
+ <OutputFile>..\..\bin\icuuc63d.dll</OutputFile>
<AdditionalLibraryDirectories>.\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ProgramDatabaseFile>.\..\..\lib\icuucd.pdb</ProgramDatabaseFile>
<DataExecutionPrevention>
@@ -124,7 +125,7 @@
<ProgramDataBaseFileName>.\x64\Release/</ProgramDataBaseFileName>
</ClCompile>
<Link>
- <OutputFile>..\..\bin64\icuuc61.dll</OutputFile>
+ <OutputFile>..\..\bin64\icuuc63.dll</OutputFile>
<AdditionalLibraryDirectories>.\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ProgramDatabaseFile>.\..\..\lib64\icuuc.pdb</ProgramDatabaseFile>
<ImportLibrary>..\..\lib64\icuuc.lib</ImportLibrary>
@@ -142,7 +143,7 @@
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
- <OutputFile>..\..\bin64\icuuc61d.dll</OutputFile>
+ <OutputFile>..\..\bin64\icuuc63d.dll</OutputFile>
<AdditionalLibraryDirectories>.\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ProgramDatabaseFile>.\..\..\lib64\icuucd.pdb</ProgramDatabaseFile>
<ImportLibrary>..\..\lib64\icuucd.lib</ImportLibrary>
@@ -182,6 +183,7 @@
<ClCompile Include="ustack.cpp" />
<ClCompile Include="ustrenum.cpp" />
<ClCompile Include="utrie.cpp" />
+ <ClCompile Include="utrie_swap.cpp" />
<ClCompile Include="utrie2.cpp" />
<ClCompile Include="utrie2_builder.cpp" />
<ClCompile Include="uvector.cpp" />
@@ -268,6 +270,7 @@
<ClCompile Include="ruleiter.cpp" />
<ClCompile Include="ucase.cpp" />
<ClCompile Include="uchar.cpp" />
+ <ClCompile Include="characterproperties.cpp" />
<ClCompile Include="unames.cpp" />
<ClCompile Include="unifiedcache.cpp" />
<ClCompile Include="unifilt.cpp" />
@@ -315,8 +318,10 @@
<ClCompile Include="ucharstriebuilder.cpp" />
<ClCompile Include="ucharstrieiterator.cpp" />
<ClCompile Include="uchriter.cpp" />
+ <ClCompile Include="ucptrie.cpp" />
<ClCompile Include="uinvchar.cpp" />
<ClCompile Include="uiter.cpp" />
+ <ClCompile Include="umutablecptrie.cpp" />
<ClCompile Include="unistr.cpp" />
<ClCompile Include="unistr_case.cpp" />
<ClCompile Include="unistr_case_locale.cpp" />
@@ -332,8 +337,7 @@
<ClCompile Include="ustrtrns.cpp" />
<ClCompile Include="utext.cpp" />
<ClCompile Include="utf_impl.cpp" />
- <ClCompile Include="listformatter.cpp" />
- <ClCompile Include="ulistformatter.cpp" />
+ <ClCompile Include="static_unicode_sets.cpp" />
<ClInclude Include="localsvc.h" />
<ClInclude Include="msvcres.h" />
<ClInclude Include="pluralmap.h" />
@@ -439,6 +443,7 @@
<ClInclude Include="uinvchar.h" />
<ClInclude Include="ustr_cnv.h" />
<ClInclude Include="ustr_imp.h" />
+ <ClInclude Include="static_unicode_sets.h" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="common.rc" />
@@ -448,4 +453,4 @@
<Import Project="$(SolutionDir)\Windows.CopyUnicodeHeaderFiles.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
-</Project> \ No newline at end of file
+</Project>
diff --git a/Build/source/libs/icu/icu-src/source/common/common.vcxproj.filters b/Build/source/libs/icu/icu-src/source/common/common.vcxproj.filters
index f13253be5c0..99ed94fbd70 100644
--- a/Build/source/libs/icu/icu-src/source/common/common.vcxproj.filters
+++ b/Build/source/libs/icu/icu-src/source/common/common.vcxproj.filters
@@ -139,6 +139,9 @@
<ClCompile Include="utrie.cpp">
<Filter>collections</Filter>
</ClCompile>
+ <ClCompile Include="utrie_swap.cpp">
+ <Filter>collections</Filter>
+ </ClCompile>
<ClCompile Include="utrie2.cpp">
<Filter>collections</Filter>
</ClCompile>
@@ -385,6 +388,9 @@
<ClCompile Include="bmpset.cpp">
<Filter>properties &amp; sets</Filter>
</ClCompile>
+ <ClCompile Include="characterproperties.cpp">
+ <Filter>properties &amp; sets</Filter>
+ </ClCompile>
<ClCompile Include="propname.cpp">
<Filter>properties &amp; sets</Filter>
</ClCompile>
@@ -562,12 +568,6 @@
<ClCompile Include="bytestriebuilder.cpp">
<Filter>collections</Filter>
</ClCompile>
- <ClCompile Include="listformatter.cpp">
- <Filter>formatting</Filter>
- </ClCompile>
- <ClCompile Include="ulistformatter.cpp">
- <Filter>formatting</Filter>
- </ClCompile>
<ClCompile Include="messagepattern.cpp">
<Filter>formatting</Filter>
</ClCompile>
@@ -589,6 +589,12 @@
<ClCompile Include="ucharstrieiterator.cpp">
<Filter>collections</Filter>
</ClCompile>
+ <ClCompile Include="ucptrie.cpp">
+ <Filter>collections</Filter>
+ </ClCompile>
+ <ClCompile Include="umutablecptrie.cpp">
+ <Filter>collections</Filter>
+ </ClCompile>
<ClCompile Include="patternprops.cpp">
<Filter>properties &amp; sets</Filter>
</ClCompile>
@@ -607,6 +613,9 @@
<ClCompile Include="ubiditransform.cpp">
<Filter>bidi</Filter>
</ClCompile>
+ <ClCompile Include="static_unicode_sets.cpp">
+ <Filter>formatting</Filter>
+ </ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="ubidi_props.h">
@@ -936,6 +945,9 @@
<ClInclude Include="unicode\ubiditransform.h">
<Filter>bidi</Filter>
</ClInclude>
+ <ClInclude Include="static_unicode_sets.h">
+ <Filter>formatting</Filter>
+ </ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="common.rc">
@@ -1180,12 +1192,6 @@
<CustomBuild Include="unicode\messagepattern.h">
<Filter>formatting</Filter>
</CustomBuild>
- <CustomBuild Include="unicode\listformatter.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\ulistformatter.h">
- <Filter>formatting</Filter>
- </CustomBuild>
<CustomBuild Include="unicode\appendable.h">
<Filter>strings</Filter>
</CustomBuild>
@@ -1198,6 +1204,12 @@
<CustomBuild Include="unicode\ucharstriebuilder.h">
<Filter>collections</Filter>
</CustomBuild>
+ <CustomBuild Include="unicode\ucptrie.h">
+ <Filter>collections</Filter>
+ </CustomBuild>
+ <CustomBuild Include="unicode\umutablecptrie.h">
+ <Filter>collections</Filter>
+ </CustomBuild>
<CustomBuild Include="unicode\enumset.h">
<Filter>data &amp; memory</Filter>
</CustomBuild>
@@ -1211,4 +1223,4 @@
<Filter>strings</Filter>
</CustomBuild>
</ItemGroup>
-</Project> \ No newline at end of file
+</Project>
diff --git a/Build/source/libs/icu/icu-src/source/common/common_uwp.vcxproj b/Build/source/libs/icu/icu-src/source/common/common_uwp.vcxproj
index af2f6538ba9..f532cff2f89 100644
--- a/Build/source/libs/icu/icu-src/source/common/common_uwp.vcxproj
+++ b/Build/source/libs/icu/icu-src/source/common/common_uwp.vcxproj
@@ -1,6 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <!-- The following import will include the UWP configuration options for VS projects. -->
<Import Project="..\allinone\Build.Windows.UWP.ProjectConfiguration.props" />
+ <!-- The following import will include the library configuration options for VS projects. -->
+ <Import Project="..\allinone\Build.Windows.Library.ProjectConfiguration.props" />
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
@@ -184,7 +187,7 @@
<ProgramDataBaseFileName>.\x86\ReleaseUWP/</ProgramDataBaseFileName>
</ClCompile>
<Link>
- <OutputFile>..\..\bin32uwp\icuuc61.dll</OutputFile>
+ <OutputFile>..\..\bin32uwp\icuuc63.dll</OutputFile>
<ProgramDatabaseFile>.\..\..\lib32uwp\icuuc.pdb</ProgramDatabaseFile>
<ImportLibrary>..\..\lib32uwp\icuuc.lib</ImportLibrary>
</Link>
@@ -200,7 +203,7 @@
<ProgramDataBaseFileName>.\x86\DebugUWP/</ProgramDataBaseFileName>
</ClCompile>
<Link>
- <OutputFile>..\..\bin32uwp\icuuc61d.dll</OutputFile>
+ <OutputFile>..\..\bin32uwp\icuuc63d.dll</OutputFile>
<ProgramDatabaseFile>.\..\..\lib32uwp\icuucd.pdb</ProgramDatabaseFile>
<ImportLibrary>..\..\lib32uwp\icuucd.lib</ImportLibrary>
</Link>
@@ -216,7 +219,7 @@
<ProgramDataBaseFileName>.\x64\ReleaseUWP/</ProgramDataBaseFileName>
</ClCompile>
<Link>
- <OutputFile>..\..\bin64uwp\icuuc61.dll</OutputFile>
+ <OutputFile>..\..\bin64uwp\icuuc63.dll</OutputFile>
<ProgramDatabaseFile>.\..\..\lib64uwp\icuuc.pdb</ProgramDatabaseFile>
<ImportLibrary>..\..\lib64uwp\icuuc.lib</ImportLibrary>
</Link>
@@ -232,7 +235,7 @@
<ProgramDataBaseFileName>.\x64\DebugUWP/</ProgramDataBaseFileName>
</ClCompile>
<Link>
- <OutputFile>..\..\bin64uwp\icuuc61d.dll</OutputFile>
+ <OutputFile>..\..\bin64uwp\icuuc63d.dll</OutputFile>
<ProgramDatabaseFile>.\..\..\lib64uwp\icuucd.pdb</ProgramDatabaseFile>
<ImportLibrary>..\..\lib64uwp\icuucd.lib</ImportLibrary>
</Link>
@@ -248,7 +251,7 @@
<ProgramDataBaseFileName>.\ARM\ReleaseUWP/</ProgramDataBaseFileName>
</ClCompile>
<Link>
- <OutputFile>..\..\binARMuwp\icuuc61.dll</OutputFile>
+ <OutputFile>..\..\binARMuwp\icuuc63.dll</OutputFile>
<ProgramDatabaseFile>.\..\..\libARMuwp\icuuc.pdb</ProgramDatabaseFile>
<ImportLibrary>..\..\libARMuwp\icuuc.lib</ImportLibrary>
</Link>
@@ -264,7 +267,7 @@
<ProgramDataBaseFileName>.\ARM\DebugUWP/</ProgramDataBaseFileName>
</ClCompile>
<Link>
- <OutputFile>..\..\binARMuwp\icuuc61d.dll</OutputFile>
+ <OutputFile>..\..\binARMuwp\icuuc63d.dll</OutputFile>
<ProgramDatabaseFile>.\..\..\libARMuwp\icuucd.pdb</ProgramDatabaseFile>
<ImportLibrary>..\..\libARMuwp\icuucd.lib</ImportLibrary>
</Link>
@@ -304,6 +307,7 @@
<ClCompile Include="ustack.cpp" />
<ClCompile Include="ustrenum.cpp" />
<ClCompile Include="utrie.cpp" />
+ <ClCompile Include="utrie_swap.cpp" />
<ClCompile Include="utrie2.cpp" />
<ClCompile Include="utrie2_builder.cpp" />
<ClCompile Include="uvector.cpp" />
@@ -319,9 +323,7 @@
<ClCompile Include="umutex.cpp" />
<ClCompile Include="utrace.cpp" />
<ClCompile Include="utypes.cpp" />
- <ClCompile Include="wintz.cpp">
- <ExcludedFromBuild>true</ExcludedFromBuild>
- </ClCompile>
+ <ClCompile Include="wintz.cpp" />
<ClCompile Include="ucnv.cpp" />
<ClCompile Include="ucnv2022.cpp" />
<ClCompile Include="ucnv_bld.cpp" />
@@ -394,6 +396,7 @@
<ClCompile Include="ruleiter.cpp" />
<ClCompile Include="ucase.cpp" />
<ClCompile Include="uchar.cpp" />
+ <ClCompile Include="characterproperties.cpp" />
<ClCompile Include="unames.cpp" />
<ClCompile Include="unifiedcache.cpp" />
<ClCompile Include="unifilt.cpp" />
@@ -439,9 +442,11 @@
<ClCompile Include="ucharstrie.cpp" />
<ClCompile Include="ucharstriebuilder.cpp" />
<ClCompile Include="ucharstrieiterator.cpp" />
+ <ClCompile Include="ucptrie.cpp" />
<ClCompile Include="uchriter.cpp" />
<ClCompile Include="uinvchar.cpp" />
<ClCompile Include="uiter.cpp" />
+ <ClCompile Include="umutablecptrie.cpp" />
<ClCompile Include="unistr.cpp" />
<ClCompile Include="unistr_case.cpp" />
<ClCompile Include="unistr_case_locale.cpp" />
@@ -457,8 +462,7 @@
<ClCompile Include="ustrtrns.cpp" />
<ClCompile Include="utext.cpp" />
<ClCompile Include="utf_impl.cpp" />
- <ClCompile Include="listformatter.cpp" />
- <ClCompile Include="ulistformatter.cpp" />
+ <ClCompile Include="static_unicode_sets.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="localsvc.h" />
@@ -565,6 +569,7 @@
<ClInclude Include="uinvchar.h" />
<ClInclude Include="ustr_cnv.h" />
<ClInclude Include="ustr_imp.h" />
+ <ClInclude Include="static_unicode_sets.h" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="common.rc" />
@@ -572,4 +577,4 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
-</Project> \ No newline at end of file
+</Project>
diff --git a/Build/source/libs/icu/icu-src/source/common/dictbe.cpp b/Build/source/libs/icu/icu-src/source/common/dictbe.cpp
index d8ae45c6826..cdef7938698 100644
--- a/Build/source/libs/icu/icu-src/source/common/dictbe.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/dictbe.cpp
@@ -325,9 +325,9 @@ foundBest:
// two characters after uc were not 0x0E4C THANTHAKHAT before
// checking the dictionary. That is just a performance filter,
// but it's not clear it's faster than checking the trie.
- int32_t candidates = words[(wordsFound + 1) % THAI_LOOKAHEAD].candidates(text, fDictionary, rangeEnd);
+ int32_t num_candidates = words[(wordsFound + 1) % THAI_LOOKAHEAD].candidates(text, fDictionary, rangeEnd);
utext_setNativeIndex(text, current + cuWordLength + chars);
- if (candidates > 0) {
+ if (num_candidates > 0) {
break;
}
}
@@ -555,9 +555,9 @@ foundBest:
if (fEndWordSet.contains(pc) && fBeginWordSet.contains(uc)) {
// Maybe. See if it's in the dictionary.
// TODO: this looks iffy; compare with old code.
- int32_t candidates = words[(wordsFound + 1) % LAO_LOOKAHEAD].candidates(text, fDictionary, rangeEnd);
+ int32_t num_candidates = words[(wordsFound + 1) % LAO_LOOKAHEAD].candidates(text, fDictionary, rangeEnd);
utext_setNativeIndex(text, current + cuWordLength + chars);
- if (candidates > 0) {
+ if (num_candidates > 0) {
break;
}
}
@@ -748,9 +748,9 @@ foundBest:
if (fEndWordSet.contains(pc) && fBeginWordSet.contains(uc)) {
// Maybe. See if it's in the dictionary.
// TODO: this looks iffy; compare with old code.
- int32_t candidates = words[(wordsFound + 1) % BURMESE_LOOKAHEAD].candidates(text, fDictionary, rangeEnd);
+ int32_t num_candidates = words[(wordsFound + 1) % BURMESE_LOOKAHEAD].candidates(text, fDictionary, rangeEnd);
utext_setNativeIndex(text, current + cuWordLength + chars);
- if (candidates > 0) {
+ if (num_candidates > 0) {
break;
}
}
@@ -953,9 +953,9 @@ foundBest:
uc = utext_current32(text);
if (fEndWordSet.contains(pc) && fBeginWordSet.contains(uc)) {
// Maybe. See if it's in the dictionary.
- int32_t candidates = words[(wordsFound + 1) % KHMER_LOOKAHEAD].candidates(text, fDictionary, rangeEnd);
+ int32_t num_candidates = words[(wordsFound + 1) % KHMER_LOOKAHEAD].candidates(text, fDictionary, rangeEnd);
utext_setNativeIndex(text, current+cuWordLength+chars);
- if (candidates > 0) {
+ if (num_candidates > 0) {
break;
}
}
diff --git a/Build/source/libs/icu/icu-src/source/common/edits.cpp b/Build/source/libs/icu/icu-src/source/common/edits.cpp
index 9ec005624fe..00a8d601a1c 100644
--- a/Build/source/libs/icu/icu-src/source/common/edits.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/edits.cpp
@@ -4,10 +4,12 @@
// edits.cpp
// created: 2017feb08 Markus W. Scherer
-#include "unicode/utypes.h"
#include "unicode/edits.h"
+#include "unicode/unistr.h"
+#include "unicode/utypes.h"
#include "cmemory.h"
#include "uassert.h"
+#include "util.h"
U_NAMESPACE_BEGIN
@@ -274,7 +276,7 @@ Edits &Edits::mergeAndAppend(const Edits &ab, const Edits &bc, UErrorCode &error
// ab deletions meet bc insertions at the same intermediate-string index.
// Some users expect the bc insertions to come first, so we fetch from bc first.
if (bc_bLength == 0) {
- if (bcHasNext && (bcHasNext = bcIter.next(errorCode))) {
+ if (bcHasNext && (bcHasNext = bcIter.next(errorCode)) != 0) {
bc_bLength = bcIter.oldLength();
cLength = bcIter.newLength();
if (bc_bLength == 0) {
@@ -291,7 +293,7 @@ Edits &Edits::mergeAndAppend(const Edits &ab, const Edits &bc, UErrorCode &error
// else see if the other iterator is done, too.
}
if (ab_bLength == 0) {
- if (abHasNext && (abHasNext = abIter.next(errorCode))) {
+ if (abHasNext && (abHasNext = abIter.next(errorCode)) != 0) {
aLength = abIter.oldLength();
ab_bLength = abIter.newLength();
if (ab_bLength == 0) {
@@ -773,4 +775,29 @@ int32_t Edits::Iterator::sourceIndexFromDestinationIndex(int32_t i, UErrorCode &
}
}
+UnicodeString& Edits::Iterator::toString(UnicodeString& sb) const {
+ sb.append(u"{ src[", -1);
+ ICU_Utility::appendNumber(sb, srcIndex);
+ sb.append(u"..", -1);
+ ICU_Utility::appendNumber(sb, srcIndex + oldLength_);
+ if (changed) {
+ sb.append(u"] ⇝ dest[", -1);
+ } else {
+ sb.append(u"] ≡ dest[", -1);
+ }
+ ICU_Utility::appendNumber(sb, destIndex);
+ sb.append(u"..", -1);
+ ICU_Utility::appendNumber(sb, destIndex + newLength_);
+ if (changed) {
+ sb.append(u"], repl[", -1);
+ ICU_Utility::appendNumber(sb, replIndex);
+ sb.append(u"..", -1);
+ ICU_Utility::appendNumber(sb, replIndex + newLength_);
+ sb.append(u"] }", -1);
+ } else {
+ sb.append(u"] (no-change) }", -1);
+ }
+ return sb;
+}
+
U_NAMESPACE_END
diff --git a/Build/source/libs/icu/icu-src/source/common/loadednormalizer2impl.cpp b/Build/source/libs/icu/icu-src/source/common/loadednormalizer2impl.cpp
index 288a7d69536..82cb325b723 100644
--- a/Build/source/libs/icu/icu-src/source/common/loadednormalizer2impl.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/loadednormalizer2impl.cpp
@@ -18,6 +18,7 @@
#include "unicode/udata.h"
#include "unicode/localpointer.h"
#include "unicode/normalizer2.h"
+#include "unicode/ucptrie.h"
#include "unicode/unistr.h"
#include "unicode/unorm.h"
#include "cstring.h"
@@ -42,12 +43,12 @@ private:
isAcceptable(void *context, const char *type, const char *name, const UDataInfo *pInfo);
UDataMemory *memory;
- UTrie2 *ownedTrie;
+ UCPTrie *ownedTrie;
};
LoadedNormalizer2Impl::~LoadedNormalizer2Impl() {
udata_close(memory);
- utrie2_close(ownedTrie);
+ ucptrie_close(ownedTrie);
}
UBool U_CALLCONV
@@ -62,7 +63,7 @@ LoadedNormalizer2Impl::isAcceptable(void * /*context*/,
pInfo->dataFormat[1]==0x72 &&
pInfo->dataFormat[2]==0x6d &&
pInfo->dataFormat[3]==0x32 &&
- pInfo->formatVersion[0]==3
+ pInfo->formatVersion[0]==4
) {
// Normalizer2Impl *me=(Normalizer2Impl *)context;
// uprv_memcpy(me->dataVersion, pInfo->dataVersion, 4);
@@ -91,9 +92,9 @@ LoadedNormalizer2Impl::load(const char *packageName, const char *name, UErrorCod
int32_t offset=inIndexes[IX_NORM_TRIE_OFFSET];
int32_t nextOffset=inIndexes[IX_EXTRA_DATA_OFFSET];
- ownedTrie=utrie2_openFromSerialized(UTRIE2_16_VALUE_BITS,
- inBytes+offset, nextOffset-offset, NULL,
- &errorCode);
+ ownedTrie=ucptrie_openFromBinary(UCPTRIE_TYPE_FAST, UCPTRIE_VALUE_BITS_16,
+ inBytes+offset, nextOffset-offset, NULL,
+ &errorCode);
if(U_FAILURE(errorCode)) {
return;
}
@@ -131,15 +132,26 @@ U_CDECL_BEGIN
static UBool U_CALLCONV uprv_loaded_normalizer2_cleanup();
U_CDECL_END
-static Norm2AllModes *nfkcSingleton;
-static Norm2AllModes *nfkc_cfSingleton;
-static UHashtable *cache=NULL;
+#if !NORM2_HARDCODE_NFC_DATA
+static Norm2AllModes *nfcSingleton;
+static icu::UInitOnce nfcInitOnce = U_INITONCE_INITIALIZER;
+#endif
+static Norm2AllModes *nfkcSingleton;
static icu::UInitOnce nfkcInitOnce = U_INITONCE_INITIALIZER;
+
+static Norm2AllModes *nfkc_cfSingleton;
static icu::UInitOnce nfkc_cfInitOnce = U_INITONCE_INITIALIZER;
+static UHashtable *cache=NULL;
+
// UInitOnce singleton initialization function
static void U_CALLCONV initSingletons(const char *what, UErrorCode &errorCode) {
+#if !NORM2_HARDCODE_NFC_DATA
+ if (uprv_strcmp(what, "nfc") == 0) {
+ nfcSingleton = Norm2AllModes::createInstance(NULL, "nfc", errorCode);
+ } else
+#endif
if (uprv_strcmp(what, "nfkc") == 0) {
nfkcSingleton = Norm2AllModes::createInstance(NULL, "nfkc", errorCode);
} else if (uprv_strcmp(what, "nfkc_cf") == 0) {
@@ -157,19 +169,36 @@ static void U_CALLCONV deleteNorm2AllModes(void *allModes) {
}
static UBool U_CALLCONV uprv_loaded_normalizer2_cleanup() {
+#if !NORM2_HARDCODE_NFC_DATA
+ delete nfcSingleton;
+ nfcSingleton = NULL;
+ nfcInitOnce.reset();
+#endif
+
delete nfkcSingleton;
nfkcSingleton = NULL;
+ nfkcInitOnce.reset();
+
delete nfkc_cfSingleton;
nfkc_cfSingleton = NULL;
+ nfkc_cfInitOnce.reset();
+
uhash_close(cache);
cache=NULL;
- nfkcInitOnce.reset();
- nfkc_cfInitOnce.reset();
return TRUE;
}
U_CDECL_END
+#if !NORM2_HARDCODE_NFC_DATA
+const Norm2AllModes *
+Norm2AllModes::getNFCInstance(UErrorCode &errorCode) {
+ if(U_FAILURE(errorCode)) { return NULL; }
+ umtx_initOnce(nfcInitOnce, &initSingletons, "nfc", errorCode);
+ return nfcSingleton;
+}
+#endif
+
const Norm2AllModes *
Norm2AllModes::getNFKCInstance(UErrorCode &errorCode) {
if(U_FAILURE(errorCode)) { return NULL; }
@@ -184,6 +213,36 @@ Norm2AllModes::getNFKC_CFInstance(UErrorCode &errorCode) {
return nfkc_cfSingleton;
}
+#if !NORM2_HARDCODE_NFC_DATA
+const Normalizer2 *
+Normalizer2::getNFCInstance(UErrorCode &errorCode) {
+ const Norm2AllModes *allModes=Norm2AllModes::getNFCInstance(errorCode);
+ return allModes!=NULL ? &allModes->comp : NULL;
+}
+
+const Normalizer2 *
+Normalizer2::getNFDInstance(UErrorCode &errorCode) {
+ const Norm2AllModes *allModes=Norm2AllModes::getNFCInstance(errorCode);
+ return allModes!=NULL ? &allModes->decomp : NULL;
+}
+
+const Normalizer2 *Normalizer2Factory::getFCDInstance(UErrorCode &errorCode) {
+ const Norm2AllModes *allModes=Norm2AllModes::getNFCInstance(errorCode);
+ return allModes!=NULL ? &allModes->fcd : NULL;
+}
+
+const Normalizer2 *Normalizer2Factory::getFCCInstance(UErrorCode &errorCode) {
+ const Norm2AllModes *allModes=Norm2AllModes::getNFCInstance(errorCode);
+ return allModes!=NULL ? &allModes->fcc : NULL;
+}
+
+const Normalizer2Impl *
+Normalizer2Factory::getNFCImpl(UErrorCode &errorCode) {
+ const Norm2AllModes *allModes=Norm2AllModes::getNFCInstance(errorCode);
+ return allModes!=NULL ? allModes->impl : NULL;
+}
+#endif
+
const Normalizer2 *
Normalizer2::getNFKCInstance(UErrorCode &errorCode) {
const Norm2AllModes *allModes=Norm2AllModes::getNFKCInstance(errorCode);
@@ -247,7 +306,7 @@ Normalizer2::getInstance(const char *packageName,
}
void *temp=uhash_get(cache, name);
if(temp==NULL) {
- int32_t keyLength=uprv_strlen(name)+1;
+ int32_t keyLength= static_cast<int32_t>(uprv_strlen(name)+1);
char *nameCopy=(char *)uprv_malloc(keyLength);
if(nameCopy==NULL) {
errorCode=U_MEMORY_ALLOCATION_ERROR;
diff --git a/Build/source/libs/icu/icu-src/source/common/locdspnm.cpp b/Build/source/libs/icu/icu-src/source/common/locdspnm.cpp
index 6ceb6cfc8bc..2d9389e910a 100644
--- a/Build/source/libs/icu/icu-src/source/common/locdspnm.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/locdspnm.cpp
@@ -45,9 +45,9 @@ static int32_t ncat(char *buffer, uint32_t buflen, ...) {
}
va_start(args, buflen);
- while ((str = va_arg(args, char *))) {
+ while ((str = va_arg(args, char *)) != 0) {
char c;
- while (p != e && (c = *str++)) {
+ while (p != e && (c = *str++) != 0) {
*p++ = c;
}
}
@@ -98,7 +98,7 @@ ICUDataTable::ICUDataTable(const char* path, const Locale& locale)
: path(NULL), locale(Locale::getRoot())
{
if (path) {
- int32_t len = uprv_strlen(path);
+ int32_t len = static_cast<int32_t>(uprv_strlen(path));
this->path = (const char*) uprv_malloc(len + 1);
if (this->path) {
uprv_strcpy((char *)this->path, path);
@@ -560,21 +560,21 @@ LocaleDisplayNamesImpl::adjustForUsageAndContext(CapContextUsage usage,
}
UnicodeString&
-LocaleDisplayNamesImpl::localeDisplayName(const Locale& locale,
+LocaleDisplayNamesImpl::localeDisplayName(const Locale& loc,
UnicodeString& result) const {
- if (locale.isBogus()) {
+ if (loc.isBogus()) {
result.setToBogus();
return result;
}
UnicodeString resultName;
- const char* lang = locale.getLanguage();
+ const char* lang = loc.getLanguage();
if (uprv_strlen(lang) == 0) {
lang = "root";
}
- const char* script = locale.getScript();
- const char* country = locale.getCountry();
- const char* variant = locale.getVariant();
+ const char* script = loc.getScript();
+ const char* country = loc.getCountry();
+ const char* variant = loc.getVariant();
UBool hasScript = uprv_strlen(script) > 0;
UBool hasCountry = uprv_strlen(country) > 0;
@@ -630,14 +630,14 @@ LocaleDisplayNamesImpl::localeDisplayName(const Locale& locale,
resultRemainder.findAndReplace(formatOpenParen, formatReplaceOpenParen);
resultRemainder.findAndReplace(formatCloseParen, formatReplaceCloseParen);
- LocalPointer<StringEnumeration> e(locale.createKeywords(status));
+ LocalPointer<StringEnumeration> e(loc.createKeywords(status));
if (e.isValid() && U_SUCCESS(status)) {
UnicodeString temp2;
char value[ULOC_KEYWORD_AND_VALUES_CAPACITY]; // sigh, no ULOC_VALUE_CAPACITY
const char* key;
while ((key = e->next((int32_t *)0, status)) != NULL) {
value[0] = 0;
- locale.getKeywordValue(key, value, ULOC_KEYWORD_AND_VALUES_CAPACITY, status);
+ loc.getKeywordValue(key, value, ULOC_KEYWORD_AND_VALUES_CAPACITY, status);
if (U_FAILURE(status) || status == U_STRING_NOT_TERMINATED_WARNING) {
return result;
}
diff --git a/Build/source/libs/icu/icu-src/source/common/locid.cpp b/Build/source/libs/icu/icu-src/source/common/locid.cpp
index 36508acaf5c..e0dcc8a88ec 100644
--- a/Build/source/libs/icu/icu-src/source/common/locid.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/locid.cpp
@@ -31,9 +31,12 @@
******************************************************************************
*/
+#include <utility>
+#include "unicode/bytestream.h"
#include "unicode/locid.h"
#include "unicode/strenum.h"
+#include "unicode/stringpiece.h"
#include "unicode/uloc.h"
#include "putilimp.h"
#include "mutex.h"
@@ -43,9 +46,11 @@
#include "cstring.h"
#include "uassert.h"
#include "uhash.h"
+#include "ulocimp.h"
#include "ucln_cmn.h"
#include "ustr_imp.h"
#include "charstr.h"
+#include "bytesinkutil.h"
U_CDECL_BEGIN
static UBool U_CALLCONV locale_cleanup(void);
@@ -424,49 +429,70 @@ Locale::Locale(const Locale &other)
*this = other;
}
-Locale &Locale::operator=(const Locale &other)
-{
+Locale::Locale(Locale&& other) U_NOEXCEPT
+ : UObject(other), fullName(fullNameBuffer), baseName(fullName) {
+ *this = std::move(other);
+}
+
+Locale& Locale::operator=(const Locale& other) {
if (this == &other) {
return *this;
}
- /* Free our current storage */
- if (baseName != fullName) {
- uprv_free(baseName);
+ setToBogus();
+
+ if (other.fullName == other.fullNameBuffer) {
+ uprv_strcpy(fullNameBuffer, other.fullNameBuffer);
+ } else if (other.fullName == nullptr) {
+ fullName = nullptr;
+ } else {
+ fullName = uprv_strdup(other.fullName);
+ if (fullName == nullptr) return *this;
}
- baseName = NULL;
- if(fullName != fullNameBuffer) {
- uprv_free(fullName);
- fullName = fullNameBuffer;
+
+ if (other.baseName == other.fullName) {
+ baseName = fullName;
+ } else if (other.baseName != nullptr) {
+ baseName = uprv_strdup(other.baseName);
+ if (baseName == nullptr) return *this;
}
- /* Allocate the full name if necessary */
- if(other.fullName != other.fullNameBuffer) {
- fullName = (char *)uprv_malloc(sizeof(char)*(uprv_strlen(other.fullName)+1));
- if (fullName == NULL) {
- return *this;
- }
+ uprv_strcpy(language, other.language);
+ uprv_strcpy(script, other.script);
+ uprv_strcpy(country, other.country);
+
+ variantBegin = other.variantBegin;
+ fIsBogus = other.fIsBogus;
+
+ return *this;
+}
+
+Locale& Locale::operator=(Locale&& other) U_NOEXCEPT {
+ if (baseName != fullName) uprv_free(baseName);
+ if (fullName != fullNameBuffer) uprv_free(fullName);
+
+ if (other.fullName == other.fullNameBuffer) {
+ uprv_strcpy(fullNameBuffer, other.fullNameBuffer);
+ fullName = fullNameBuffer;
+ } else {
+ fullName = other.fullName;
}
- /* Copy the full name */
- uprv_strcpy(fullName, other.fullName);
- /* Copy the baseName if it differs from fullName. */
if (other.baseName == other.fullName) {
baseName = fullName;
} else {
- if (other.baseName) {
- baseName = uprv_strdup(other.baseName);
- }
+ baseName = other.baseName;
}
- /* Copy the language and country fields */
uprv_strcpy(language, other.language);
uprv_strcpy(script, other.script);
uprv_strcpy(country, other.country);
- /* The variantBegin is an offset, just copy it */
variantBegin = other.variantBegin;
fIsBogus = other.fIsBogus;
+
+ other.baseName = other.fullName = other.fullNameBuffer;
+
return *this;
}
@@ -545,7 +571,7 @@ Locale& Locale::init(const char* localeID, UBool canonicalize)
/* after uloc_getName/canonicalize() we know that only '_' are separators */
separator = field[0] = fullName;
fieldIdx = 1;
- while ((separator = uprv_strchr(field[fieldIdx-1], SEP_CHAR)) && fieldIdx < UPRV_LENGTHOF(field)-1) {
+ while ((separator = uprv_strchr(field[fieldIdx-1], SEP_CHAR)) != 0 && fieldIdx < UPRV_LENGTHOF(field)-1) {
field[fieldIdx] = separator + 1;
fieldLen[fieldIdx-1] = (int32_t)(separator - field[fieldIdx-1]);
fieldIdx++;
@@ -652,7 +678,7 @@ Locale::initBaseName(UErrorCode &status) {
int32_t
Locale::hashCode() const
{
- return ustr_hashCharsN(fullName, uprv_strlen(fullName));
+ return ustr_hashCharsN(fullName, static_cast<int32_t>(uprv_strlen(fullName)));
}
void
@@ -704,6 +730,276 @@ Locale::setDefault( const Locale& newLocale,
locale_set_default_internal(localeID, status);
}
+void
+Locale::addLikelySubtags(UErrorCode& status) {
+ if (U_FAILURE(status)) {
+ return;
+ }
+
+ // The maximized locale ID string is often longer, but there is no good
+ // heuristic to estimate just how much longer. Leave that to CharString.
+ CharString maximizedLocaleID;
+ int32_t maximizedLocaleIDCapacity = static_cast<int32_t>(uprv_strlen(fullName));
+
+ char* buffer;
+ int32_t reslen;
+
+ for (;;) {
+ buffer = maximizedLocaleID.getAppendBuffer(
+ /*minCapacity=*/maximizedLocaleIDCapacity,
+ /*desiredCapacityHint=*/maximizedLocaleIDCapacity,
+ maximizedLocaleIDCapacity,
+ status);
+
+ if (U_FAILURE(status)) {
+ return;
+ }
+
+ reslen = uloc_addLikelySubtags(
+ fullName,
+ buffer,
+ maximizedLocaleIDCapacity,
+ &status);
+
+ if (status != U_BUFFER_OVERFLOW_ERROR) {
+ break;
+ }
+
+ maximizedLocaleIDCapacity = reslen;
+ status = U_ZERO_ERROR;
+ }
+
+ if (U_FAILURE(status)) {
+ return;
+ }
+
+ maximizedLocaleID.append(buffer, reslen, status);
+ if (status == U_STRING_NOT_TERMINATED_WARNING) {
+ status = U_ZERO_ERROR; // Terminators provided by CharString.
+ }
+
+ if (U_FAILURE(status)) {
+ return;
+ }
+
+ init(maximizedLocaleID.data(), /*canonicalize=*/FALSE);
+ if (isBogus()) {
+ status = U_ILLEGAL_ARGUMENT_ERROR;
+ }
+}
+
+void
+Locale::minimizeSubtags(UErrorCode& status) {
+ if (U_FAILURE(status)) {
+ return;
+ }
+
+ // Except for a few edge cases (like the empty string, that is minimized to
+ // "en__POSIX"), minimized locale ID strings will be either the same length
+ // or shorter than their input.
+ CharString minimizedLocaleID;
+ int32_t minimizedLocaleIDCapacity = static_cast<int32_t>(uprv_strlen(fullName));
+
+ char* buffer;
+ int32_t reslen;
+
+ for (;;) {
+ buffer = minimizedLocaleID.getAppendBuffer(
+ /*minCapacity=*/minimizedLocaleIDCapacity,
+ /*desiredCapacityHint=*/minimizedLocaleIDCapacity,
+ minimizedLocaleIDCapacity,
+ status);
+
+ if (U_FAILURE(status)) {
+ return;
+ }
+
+ reslen = uloc_minimizeSubtags(
+ fullName,
+ buffer,
+ minimizedLocaleIDCapacity,
+ &status);
+
+ if (status != U_BUFFER_OVERFLOW_ERROR) {
+ break;
+ }
+
+ // Because of the internal minimal buffer size of CharString, I can't
+ // think of any input data for which this could possibly ever happen.
+ // Maybe it would be better replaced with an assertion instead?
+ minimizedLocaleIDCapacity = reslen;
+ status = U_ZERO_ERROR;
+ }
+
+ if (U_FAILURE(status)) {
+ return;
+ }
+
+ minimizedLocaleID.append(buffer, reslen, status);
+ if (status == U_STRING_NOT_TERMINATED_WARNING) {
+ status = U_ZERO_ERROR; // Terminators provided by CharString.
+ }
+
+ if (U_FAILURE(status)) {
+ return;
+ }
+
+ init(minimizedLocaleID.data(), /*canonicalize=*/FALSE);
+ if (isBogus()) {
+ status = U_ILLEGAL_ARGUMENT_ERROR;
+ }
+}
+
+Locale U_EXPORT2
+Locale::forLanguageTag(StringPiece tag, UErrorCode& status)
+{
+ Locale result(Locale::eBOGUS);
+
+ if (U_FAILURE(status)) {
+ return result;
+ }
+
+ // If a BCP-47 language tag is passed as the language parameter to the
+ // normal Locale constructor, it will actually fall back to invoking
+ // uloc_forLanguageTag() to parse it if it somehow is able to detect that
+ // the string actually is BCP-47. This works well for things like strings
+ // using BCP-47 extensions, but it does not at all work for things like
+ // BCP-47 grandfathered tags (eg. "en-GB-oed") which are possible to also
+ // interpret as ICU locale IDs and because of that won't trigger the BCP-47
+ // parsing. Therefore the code here explicitly calls uloc_forLanguageTag()
+ // and then Locale::init(), instead of just calling the normal constructor.
+
+ // All simple language tags will have the exact same length as ICU locale
+ // ID strings as they have as BCP-47 strings (like "en_US" for "en-US").
+ CharString localeID;
+ int32_t resultCapacity = tag.size();
+
+ char* buffer;
+ int32_t parsedLength, reslen;
+
+ for (;;) {
+ buffer = localeID.getAppendBuffer(
+ /*minCapacity=*/resultCapacity,
+ /*desiredCapacityHint=*/resultCapacity,
+ resultCapacity,
+ status);
+
+ if (U_FAILURE(status)) {
+ return result;
+ }
+
+ reslen = ulocimp_forLanguageTag(
+ tag.data(),
+ tag.length(),
+ buffer,
+ resultCapacity,
+ &parsedLength,
+ &status);
+
+ if (status != U_BUFFER_OVERFLOW_ERROR) {
+ break;
+ }
+
+ // For all BCP-47 language tags that use extensions, the corresponding
+ // ICU locale ID will be longer but uloc_forLanguageTag() does compute
+ // the exact length needed so this memory reallocation will be done at
+ // most once.
+ resultCapacity = reslen;
+ status = U_ZERO_ERROR;
+ }
+
+ if (U_FAILURE(status)) {
+ return result;
+ }
+
+ if (parsedLength != tag.size()) {
+ status = U_ILLEGAL_ARGUMENT_ERROR;
+ return result;
+ }
+
+ localeID.append(buffer, reslen, status);
+ if (status == U_STRING_NOT_TERMINATED_WARNING) {
+ status = U_ZERO_ERROR; // Terminators provided by CharString.
+ }
+
+ if (U_FAILURE(status)) {
+ return result;
+ }
+
+ result.init(localeID.data(), /*canonicalize=*/FALSE);
+ if (result.isBogus()) {
+ status = U_ILLEGAL_ARGUMENT_ERROR;
+ }
+ return result;
+}
+
+void
+Locale::toLanguageTag(ByteSink& sink, UErrorCode& status) const
+{
+ if (U_FAILURE(status)) {
+ return;
+ }
+
+ if (fIsBogus) {
+ status = U_ILLEGAL_ARGUMENT_ERROR;
+ return;
+ }
+
+ // All simple language tags will have the exact same length as BCP-47
+ // strings as they have as ICU locale IDs (like "en-US" for "en_US").
+ LocalMemory<char> scratch;
+ int32_t scratch_capacity = static_cast<int32_t>(uprv_strlen(fullName));
+
+ if (scratch_capacity == 0) {
+ scratch_capacity = 3; // "und"
+ }
+
+ char* buffer;
+ int32_t result_capacity, reslen;
+
+ for (;;) {
+ if (scratch.allocateInsteadAndReset(scratch_capacity) == nullptr) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+
+ buffer = sink.GetAppendBuffer(
+ /*min_capacity=*/scratch_capacity,
+ /*desired_capacity_hint=*/scratch_capacity,
+ scratch.getAlias(),
+ scratch_capacity,
+ &result_capacity);
+
+ reslen = uloc_toLanguageTag(
+ fullName,
+ buffer,
+ result_capacity,
+ /*strict=*/FALSE,
+ &status);
+
+ if (status != U_BUFFER_OVERFLOW_ERROR) {
+ break;
+ }
+
+ // For some very few edge cases a language tag will be longer as a
+ // BCP-47 string than it is as an ICU locale ID. Most notoriously "C"
+ // expands to the BCP-47 tag "en-US-u-va-posix", 16 times longer, and
+ // it'll take several calls to uloc_toLanguageTag() to figure that out.
+ // https://unicode-org.atlassian.net/browse/ICU-20132
+ scratch_capacity = reslen;
+ status = U_ZERO_ERROR;
+ }
+
+ if (U_FAILURE(status)) {
+ return;
+ }
+
+ sink.Append(buffer, reslen);
+ if (status == U_STRING_NOT_TERMINATED_WARNING) {
+ status = U_ZERO_ERROR; // Terminators not used.
+ }
+}
+
Locale U_EXPORT2
Locale::createFromName (const char *name)
{
@@ -1010,20 +1306,84 @@ KeywordEnumeration::~KeywordEnumeration() {
uprv_free(keywords);
}
+// A wrapper around KeywordEnumeration that calls uloc_toUnicodeLocaleKey() in
+// the next() method for each keyword before returning it.
+class UnicodeKeywordEnumeration : public KeywordEnumeration {
+public:
+ using KeywordEnumeration::KeywordEnumeration;
+ virtual ~UnicodeKeywordEnumeration();
+
+ virtual const char* next(int32_t* resultLength, UErrorCode& status) {
+ const char* legacy_key = KeywordEnumeration::next(nullptr, status);
+ if (U_SUCCESS(status) && legacy_key != nullptr) {
+ const char* key = uloc_toUnicodeLocaleKey(legacy_key);
+ if (key == nullptr) {
+ status = U_ILLEGAL_ARGUMENT_ERROR;
+ } else {
+ if (resultLength != nullptr) {
+ *resultLength = static_cast<int32_t>(uprv_strlen(key));
+ }
+ return key;
+ }
+ }
+ if (resultLength != nullptr) *resultLength = 0;
+ return nullptr;
+ }
+};
+
+// Out-of-line virtual destructor to serve as the "key function".
+UnicodeKeywordEnumeration::~UnicodeKeywordEnumeration() = default;
+
StringEnumeration *
Locale::createKeywords(UErrorCode &status) const
{
char keywords[256];
- int32_t keywordCapacity = 256;
+ int32_t keywordCapacity = sizeof keywords;
StringEnumeration *result = NULL;
+ if (U_FAILURE(status)) {
+ return result;
+ }
+
const char* variantStart = uprv_strchr(fullName, '@');
const char* assignment = uprv_strchr(fullName, '=');
if(variantStart) {
if(assignment > variantStart) {
int32_t keyLen = locale_getKeywords(variantStart+1, '@', keywords, keywordCapacity, NULL, 0, NULL, FALSE, &status);
- if(keyLen) {
+ if(U_SUCCESS(status) && keyLen) {
result = new KeywordEnumeration(keywords, keyLen, 0, status);
+ if (!result) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ }
+ }
+ } else {
+ status = U_INVALID_FORMAT_ERROR;
+ }
+ }
+ return result;
+}
+
+StringEnumeration *
+Locale::createUnicodeKeywords(UErrorCode &status) const
+{
+ char keywords[256];
+ int32_t keywordCapacity = sizeof keywords;
+ StringEnumeration *result = NULL;
+
+ if (U_FAILURE(status)) {
+ return result;
+ }
+
+ const char* variantStart = uprv_strchr(fullName, '@');
+ const char* assignment = uprv_strchr(fullName, '=');
+ if(variantStart) {
+ if(assignment > variantStart) {
+ int32_t keyLen = locale_getKeywords(variantStart+1, '@', keywords, keywordCapacity, NULL, 0, NULL, FALSE, &status);
+ if(U_SUCCESS(status) && keyLen) {
+ result = new UnicodeKeywordEnumeration(keywords, keyLen, 0, status);
+ if (!result) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ }
}
} else {
status = U_INVALID_FORMAT_ERROR;
@@ -1039,6 +1399,105 @@ Locale::getKeywordValue(const char* keywordName, char *buffer, int32_t bufLen, U
}
void
+Locale::getKeywordValue(StringPiece keywordName, ByteSink& sink, UErrorCode& status) const {
+ if (U_FAILURE(status)) {
+ return;
+ }
+
+ if (fIsBogus) {
+ status = U_ILLEGAL_ARGUMENT_ERROR;
+ return;
+ }
+
+ // TODO: Remove the need for a const char* to a NUL terminated buffer.
+ const CharString keywordName_nul(keywordName, status);
+ if (U_FAILURE(status)) {
+ return;
+ }
+
+ LocalMemory<char> scratch;
+ int32_t scratch_capacity = 16; // Arbitrarily chosen default size.
+
+ char* buffer;
+ int32_t result_capacity, reslen;
+
+ for (;;) {
+ if (scratch.allocateInsteadAndReset(scratch_capacity) == nullptr) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+
+ buffer = sink.GetAppendBuffer(
+ /*min_capacity=*/scratch_capacity,
+ /*desired_capacity_hint=*/scratch_capacity,
+ scratch.getAlias(),
+ scratch_capacity,
+ &result_capacity);
+
+ reslen = uloc_getKeywordValue(
+ fullName,
+ keywordName_nul.data(),
+ buffer,
+ result_capacity,
+ &status);
+
+ if (status != U_BUFFER_OVERFLOW_ERROR) {
+ break;
+ }
+
+ scratch_capacity = reslen;
+ status = U_ZERO_ERROR;
+ }
+
+ if (U_FAILURE(status)) {
+ return;
+ }
+
+ sink.Append(buffer, reslen);
+ if (status == U_STRING_NOT_TERMINATED_WARNING) {
+ status = U_ZERO_ERROR; // Terminators not used.
+ }
+}
+
+void
+Locale::getUnicodeKeywordValue(StringPiece keywordName,
+ ByteSink& sink,
+ UErrorCode& status) const {
+ // TODO: Remove the need for a const char* to a NUL terminated buffer.
+ const CharString keywordName_nul(keywordName, status);
+ if (U_FAILURE(status)) {
+ return;
+ }
+
+ const char* legacy_key = uloc_toLegacyKey(keywordName_nul.data());
+
+ if (legacy_key == nullptr) {
+ status = U_ILLEGAL_ARGUMENT_ERROR;
+ return;
+ }
+
+ CharString legacy_value;
+ {
+ CharStringByteSink sink(&legacy_value);
+ getKeywordValue(legacy_key, sink, status);
+ }
+
+ if (U_FAILURE(status)) {
+ return;
+ }
+
+ const char* unicode_value = uloc_toUnicodeLocaleType(
+ keywordName_nul.data(), legacy_value.data());
+
+ if (unicode_value == nullptr) {
+ status = U_ILLEGAL_ARGUMENT_ERROR;
+ return;
+ }
+
+ sink.Append(unicode_value, static_cast<int32_t>(uprv_strlen(unicode_value)));
+}
+
+void
Locale::setKeywordValue(const char* keywordName, const char* keywordValue, UErrorCode &status)
{
uloc_setKeywordValue(keywordName, keywordValue, fullName, ULOC_FULLNAME_CAPACITY, &status);
@@ -1048,6 +1507,46 @@ Locale::setKeywordValue(const char* keywordName, const char* keywordValue, UErro
}
}
+void
+Locale::setKeywordValue(StringPiece keywordName,
+ StringPiece keywordValue,
+ UErrorCode& status) {
+ // TODO: Remove the need for a const char* to a NUL terminated buffer.
+ const CharString keywordName_nul(keywordName, status);
+ const CharString keywordValue_nul(keywordValue, status);
+ setKeywordValue(keywordName_nul.data(), keywordValue_nul.data(), status);
+}
+
+void
+Locale::setUnicodeKeywordValue(StringPiece keywordName,
+ StringPiece keywordValue,
+ UErrorCode& status) {
+ // TODO: Remove the need for a const char* to a NUL terminated buffer.
+ const CharString keywordName_nul(keywordName, status);
+ const CharString keywordValue_nul(keywordValue, status);
+
+ if (U_FAILURE(status)) {
+ return;
+ }
+
+ const char* legacy_key = uloc_toLegacyKey(keywordName_nul.data());
+
+ if (legacy_key == nullptr) {
+ status = U_ILLEGAL_ARGUMENT_ERROR;
+ return;
+ }
+
+ const char* legacy_value =
+ uloc_toLegacyType(keywordName_nul.data(), keywordValue_nul.data());
+
+ if (legacy_value == nullptr) {
+ status = U_ILLEGAL_ARGUMENT_ERROR;
+ return;
+ }
+
+ setKeywordValue(legacy_key, legacy_value, status);
+}
+
const char *
Locale::getBaseName() const {
return baseName;
diff --git a/Build/source/libs/icu/icu-src/source/common/locmap.cpp b/Build/source/libs/icu/icu-src/source/common/locmap.cpp
index cbb2b810a58..6d62d8310c0 100644
--- a/Build/source/libs/icu/icu-src/source/common/locmap.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/locmap.cpp
@@ -1015,7 +1015,7 @@ static const char*
getPosixID(const ILcidPosixMap *this_0, uint32_t hostID)
{
uint32_t i;
- for (i = 0; i <= this_0->numRegions; i++)
+ for (i = 0; i < this_0->numRegions; i++)
{
if (this_0->regionMaps[i].hostID == hostID)
{
diff --git a/Build/source/libs/icu/icu-src/source/common/mutex.h b/Build/source/libs/icu/icu-src/source/common/mutex.h
index bb45e7df83c..47f5e080f82 100644
--- a/Build/source/libs/icu/icu-src/source/common/mutex.h
+++ b/Build/source/libs/icu/icu-src/source/common/mutex.h
@@ -34,9 +34,9 @@ U_NAMESPACE_BEGIN
// private mutex where possible.
// For example:
-//
-// UMutex myMutex;
-//
+//
+// UMutex myMutex = U_MUTEX_INITIALIZER;
+//
// void Function(int arg1, int arg2)
// {
// static Object* foo; // Shared read-write object
diff --git a/Build/source/libs/icu/icu-src/source/common/norm2_nfc_data.h b/Build/source/libs/icu/icu-src/source/common/norm2_nfc_data.h
index 8f5c4346db5..82a68097385 100644
--- a/Build/source/libs/icu/icu-src/source/common/norm2_nfc_data.h
+++ b/Build/source/libs/icu/icu-src/source/common/norm2_nfc_data.h
@@ -11,185 +11,124 @@
#ifdef INCLUDED_FROM_NORMALIZER2_CPP
-static const UVersionInfo norm2_nfc_data_formatVersion={3,0,0,0};
-static const UVersionInfo norm2_nfc_data_dataVersion={0xa,0,0,0};
+static const UVersionInfo norm2_nfc_data_formatVersion={4,0,0,0};
+static const UVersionInfo norm2_nfc_data_dataVersion={0xb,0,0,0};
static const int32_t norm2_nfc_data_indexes[Normalizer2Impl::IX_COUNT]={
-0x50,0x4cc0,0x8918,0x8a18,0x8a18,0x8a18,0x8a18,0x8a18,0xc0,0x300,0xadc,0x29d0,0x3c56,0xfc00,0x1282,0x3b8c,
+0x50,0x4ab0,0x8708,0x8808,0x8808,0x8808,0x8808,0x8808,0xc0,0x300,0xadc,0x29d0,0x3c56,0xfc00,0x1282,0x3b8c,
0x3c24,0x3c56,0x300,0
};
-static const uint16_t norm2_nfc_data_trieIndex[9776]={
-0x2a8,0x2b0,0x2b8,0x2c0,0x2ce,0x2d6,0x2de,0x2e6,0x2ee,0x2f6,0x2fe,0x306,0x30e,0x316,0x31c,0x324,
-0x32c,0x334,0x2c7,0x2cf,0x339,0x341,0x2c7,0x2cf,0x349,0x351,0x359,0x361,0x369,0x371,0x379,0x381,
-0x389,0x391,0x399,0x3a1,0x3a9,0x3b1,0x3b9,0x3c1,0x2c7,0x2cf,0x2c7,0x2cf,0x3c8,0x3d0,0x3d8,0x3e0,
-0x3e4,0x3ec,0x3f2,0x3fa,0x2c7,0x2cf,0x402,0x40a,0x40e,0x416,0x41e,0x426,0x2c7,0x2cf,0x424,0x42c,
-0x431,0x438,0x43c,0x2c7,0x2c7,0x2c7,0x443,0x44b,0x2c7,0x453,0x45b,0x2c7,0x2c7,0x463,0x46b,0x2c7,
-0x2c7,0x473,0x47b,0x2c7,0x2c7,0x483,0x48b,0x2c7,0x2c7,0x463,0x492,0x2c7,0x49a,0x4a0,0x4a8,0x2c7,
-0x2c7,0x2c7,0x4af,0x2c7,0x2c7,0x4b5,0x4bd,0x2c7,0x2c7,0x4c3,0x4cb,0x2c7,0x2c7,0x2c7,0x4d1,0x2c7,
-0x2c7,0x4d9,0x4e0,0x2c7,0x2c7,0x4e3,0x4ea,0x2c7,0x4ed,0x4f4,0x4fc,0x504,0x50c,0x514,0x51b,0x2c7,
-0x2c7,0x522,0x2c7,0x2c7,0x529,0x2c7,0x2c7,0x2c7,0x93b,0x2c7,0x2c7,0x943,0x2c7,0x949,0x951,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x52d,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x535,0x535,0x2c7,0x2c7,0x2c7,0x2c7,0x53b,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x543,0x2c7,0x2c7,0x2c7,0x546,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x54d,0x2c7,0x2c7,0x555,0x2c7,0x55d,0x2c7,0x2c7,0x565,0x56a,0x572,0x578,0x2c7,0x57e,0x2c7,0x585,
-0x2c7,0x58a,0x2c7,0x2c7,0x2c7,0x2c7,0x590,0x598,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x5a0,0x5a5,
-0x5ad,0x5b5,0x5bd,0x5c5,0x5cd,0x5d5,0x5dd,0x5e5,0x5ed,0x5f5,0x5fd,0x605,0x60d,0x615,0x61d,0x625,
-0x62d,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x631,0x639,0x2c7,0x640,0x2c7,0x2c7,0x644,0x64b,0x650,0x2c7,
-0x658,0x660,0x668,0x670,0x678,0x680,0x2c7,0x688,0x2c7,0x68e,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x691,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x699,0x2c7,0x2c7,0x2c7,0x69e,0x2c7,0x2c7,0x2c7,0x6a6,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x6ae,0x6b5,0x6bd,0x6c5,0x6cd,0x6d5,0x6dd,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x6e5,0x6ed,0x2c7,0x2c7,0x6f5,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x6fc,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x703,0x70b,0x2c7,0x711,0x715,0x2c7,0x2c7,0x58b,0x71d,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x721,0x729,0x72c,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x48b,
-0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,
-0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,
-0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,
-0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,
-0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,
-0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,
-0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,
-0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,
-0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,
-0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,
-0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,
-0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,
-0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,
-0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,
-0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,
-0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,
-0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,
-0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,
-0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,
-0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,
-0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,
-0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x965,0x2c7,0x2c7,
-0x975,0x97c,0x2a8,0x983,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,
-0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x734,0x73c,0x744,0x74c,0x754,0x75c,0x764,0x76c,
-0x774,0x77c,0x784,0x78c,0x794,0x79c,0x7a4,0x2c7,0x7ab,0x7b3,0x7bb,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x7c3,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0xb20,0xb20,0xb38,0xb78,0xbb8,0xbf8,0xc38,0xc70,0xcb0,0xb1c,0xce4,0xb1c,0xd24,0xd64,0xda4,0xde4,
-0xe24,0xe64,0xea4,0xee4,0xb1c,0xb1c,0xf20,0xf60,0xf90,0xfc8,0xb1c,0x1008,0x1038,0x1078,0xb1c,0x1090,
-0x880,0x8b0,0x8ee,0x928,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x953,0x188,0x188,
-0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x96f,0x188,0x188,0x9a5,0x188,0x9e5,0xa1f,0x188,0x188,
-0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,
-0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0xa5f,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x7c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x7cf,0x2c7,0x2c7,0x2c7,0x7d2,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x7d9,0x7dd,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x7e5,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x6fc,0x69e,0x7e7,0x7ef,0x2c7,0x2c7,0x7f7,0x7fe,0x2c7,0x58b,0x2c7,0x2c7,0x806,0x2c7,0x2c7,0x809,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x80f,0x2c7,0x463,0x816,0x81d,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x825,0x2c7,0x2c7,0x829,0x831,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x836,0x83e,0x2c7,0x2c7,0x69e,
-0x2c7,0x2c7,0x2c7,0x841,0x2c7,0x2c7,0x2c7,0x847,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x535,0x848,0x2c7,0x84a,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x69e,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x852,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x856,0x2c7,0x85c,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x862,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x86a,
-0x872,0x87a,0x880,0x888,0x2c7,0x2c7,0x2c7,0x890,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x898,0x8a0,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x8a4,0x2c7,0x2c7,0x2c7,0x8ab,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x8b3,
-0x8bb,0x8c3,0x8cb,0x8d3,0x8db,0x8e3,0x8eb,0x8f3,0x8fb,0x903,0x90b,0x913,0x91b,0x923,0x92b,0x933,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2a7,
+static const uint16_t norm2_nfc_data_trieIndex[1690]={
+0,0x40,0x7b,0xbb,0xfb,0x13a,0x17a,0x1b2,0x1f2,0x226,0x254,0x226,0x294,0x2d4,0x313,0x353,
+0x393,0x3d2,0x40f,0x44e,0x226,0x226,0x488,0x4c8,0x4f8,0x530,0x226,0x570,0x59f,0x5de,0x226,0x5f3,
+0x631,0x65f,0x226,0x68c,0x6cc,0x709,0x729,0x768,0x7a7,0x7e4,0x803,0x840,0x729,0x879,0x8a7,0x8e6,
+0x226,0x920,0x937,0x977,0x98e,0x9cd,0x226,0xa03,0xa23,0xa5e,0xa6a,0xaa4,0xacc,0xb09,0xb49,0xb83,
+0xb9e,0x226,0xbd9,0x226,0xc19,0xc38,0xc6e,0xcab,0x226,0x226,0x226,0x226,0x226,0xcce,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0xcfa,0x226,0x226,0xd2f,
+0x226,0x226,0xd4d,0x226,0xd77,0x226,0x226,0x226,0xdb3,0xdd3,0xe13,0x226,0xe51,0xe91,0xec5,0xef1,
+0x808,0x226,0x226,0xf25,0x226,0x226,0x226,0xf65,0xfa5,0xfe5,0x1025,0x1065,0x10a5,0x10e5,0x1125,0x1165,
+0x11a5,0x226,0x226,0x11d5,0x1206,0x226,0x1236,0x1269,0x12a6,0x12e5,0x1325,0x135b,0x1389,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x13b4,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0xcbc,0x226,0x13d1,0x226,0x1411,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x1451,0x148b,0x14c9,0x1509,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1548,0x1586,0x15a6,0x226,0x226,0x226,0x226,
+0x15e0,0x226,0x226,0x161c,0x164e,0x167c,0x80c,0x168f,0x226,0x226,0x169f,0x16df,0x226,0x226,0x226,0x13e3,
+0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,
+0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,
+0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,
+0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,
+0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,
+0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,
+0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,
+0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,
+0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,
+0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,
+0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x176b,0x226,
+0x17ab,0x17e6,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x1826,0x1866,0x18a6,0x18e6,0x1926,0x1966,0x19a6,0x19e6,0x1a09,0x1a49,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1a69,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x61f,0x62e,0x644,0x663,0x678,0x678,0x678,0x67c,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0xbd9,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x54f,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x40c,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1a9c,0x226,0x226,0x1aac,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0xdc5,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1abc,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1ac6,0x54f,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x7eb,0x226,0x226,0x9ba,0x226,0x1ad6,
+0x1ae3,0x1aef,0x226,0x226,0x226,0x226,0x414,0x226,0x1afa,0x1b0a,0x226,0x226,0x226,0x7e0,0x226,0x226,
+0x226,0x226,0x1b1a,0x226,0x226,0x226,0x1b25,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x1b2c,0x226,0x226,0x226,0x226,0x1b37,0x1b46,0x8f6,0x1b54,0x412,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x1b62,0x798,0x226,0x226,0x226,0x226,0x226,0x1b72,0x1b81,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x8d6,0x1b89,0x1b99,0x226,0x226,0x226,0x9ba,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1ba3,0x226,0x226,0x226,0x226,0x226,0x226,0x7e6,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1ba0,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x7ed,0x7ea,0x226,0x226,0x226,0x226,0x7e8,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x9ba,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0xbd3,0x226,0x226,0x226,0x226,0x7ea,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1bb3,0x226,0x226,0x226,
+0xebe,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1bb8,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x1bc7,0x1bd7,0x1be5,0x1bf2,0x226,0x1bfe,0x1c0c,0x1c1c,0x226,0x226,0x226,0x226,
+0xce9,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1c2c,0x1c34,0x1c42,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1c52,0x226,0x226,0x226,
+0x226,0x226,0x226,0x1c5e,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1c6e,
+0x1c7e,0x1c8e,0x1c9e,0x1cae,0x1cbe,0x1cce,0x1cde,0x1cee,0x1cfe,0x1d0e,0x1d1e,0x1d2e,0x1d3e,0x1d4e,0x1d5e,0x1d6e,
+0x1d7e,0x1d8e,0x1d9e,0x1dae,0x1dbe,0x1dce,0x1dde,0x1dee,0x1dfe,0x1e0e,0x1e1e,0x1e2e,0x1e3e,0x1e4e,0x1e5e,0x1e6e,
+0x1e7e,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x408,
+0x428,0xc4,0xc4,0xc4,0x448,0x457,0x46a,0x486,0x4a3,0x4bf,0x4dc,0x4f9,0x516,0x533,0xc4,0xc4,
+0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,
+0xc4,0xc4,0xc4,0x54d,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,
+0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,
+0xc4,0xc4,0x564,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0x56f,0x58c,0xc4,0xc4,0xc4,
+0xc4,0xc4,0xc4,0x5ac,0xc4,0xc4,0xc4,0x5bf,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,
+0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,
+0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0x5df,0x5ff
+};
+
+static const uint16_t norm2_nfc_data_trieData[7822]={
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
@@ -200,33 +139,34 @@ static const uint16_t norm2_nfc_data_trieIndex[9776]={
0x4cc,1,0x4d4,0x4f4,0x510,0x530,0x57c,0x584,0x5a0,0x5a8,0x5d0,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,0x5e8,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,0x1284,0x128a,0xade,0x1290,0xaf4,
+0xafe,0x5f4,0xb08,0x1296,0x129c,0xb12,0x12a2,0x12a8,0x12ae,0x12b4,0xb28,1,0x12ba,0x12c0,0x12c6,0xb32,
+0xb48,0xb5a,1,0x5fc,0x12cc,0x12d2,0x12d8,0xb64,0x12de,1,1,0x12e4,0x12ea,0xb7a,0x12f0,0xb90,
+0xb9a,0x600,0xba4,0x12f6,0x12fc,0xbae,0x1302,0x1308,0x130e,0x1314,0xbc4,1,0x131a,0x1320,0x1326,0xbce,
+0xbe4,0xbf6,1,0x608,0x132c,0x1332,0x1338,0xc00,0x133e,1,0x1344,0x134a,0x1350,0xc16,0xc2c,0x1357,
+0x135d,0x1362,0x1368,0x136e,0x1374,0x137a,0x1380,0x1386,0x138c,0x1392,0x1398,1,1,0xc42,0xc50,0x139e,
+0x13a4,0x13aa,0x13b0,0x13b7,0x13bd,0x13c2,0x13c8,0x13ce,0x13d4,0x13da,0x13e0,0x13e6,0x13ec,0x13f3,0x13f9,0x13fe,
+0x1404,1,1,0x140a,0x1410,0x1416,0x141c,0x1422,0x1428,0x142f,0x1435,0x143a,1,1,1,0x1441,
+0x1447,0x144d,0x1453,1,0x1458,0x145e,0x1465,0x146b,0x1470,0x1476,1,1,1,0x147c,0x1482,0x1489,
+0x148f,0x1494,0x149a,1,1,1,0xc5e,0xc6c,0x14a0,0x14a6,0x14ac,0x14b2,1,1,0x14b8,0x14be,
+0x14c5,0x14cb,0x14d0,0x14d6,0xc7a,0xc84,0x14dc,0x14e2,0x14e9,0x14ef,0xc8e,0xc98,0x14f5,0x14fb,0x1500,0x1506,
+1,1,0xca2,0xcac,0xcb6,0xcc0,0x150c,0x1512,0x1518,0x151e,0x1524,0x152a,0x1531,0x1537,0x153c,0x1542,
+0x1548,0x154e,0x1554,0x155a,0x1560,0x1566,0x156c,0x1572,0x1578,0x60c,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,0xcca,0xce4,1,1,1,1,
+1,1,1,1,1,1,1,1,1,0xcfe,0xd18,1,1,1,1,1,
+1,0x610,1,1,1,1,1,1,1,1,1,1,1,1,1,0x157e,
+0x1584,0x158a,0x1590,0x1596,0x159c,0x15a2,0x15a8,0x15b0,0x15ba,0x15c4,0x15ce,0x15d8,0x15e2,0x15ec,0x15f6,1,
+0x1600,0x160a,0x1614,0x161e,0x1627,0x162d,1,1,0x1632,0x1638,0x163e,0x1644,0xd32,0xd3c,0x164d,0x1657,
+0x165f,0x1665,0x166b,1,1,1,0x1670,0x1676,1,1,0x167c,0x1682,0x168a,0x1694,0x169d,0x16a3,
+0x16a9,0x16af,0x16b4,0x16ba,0x16c0,0x16c6,0x16cc,0x16d2,0x16d8,0x16de,0x16e4,0x16ea,0x16f0,0x16f6,0x16fc,0x1702,
+0x1708,0x170e,0x1714,0x171a,0x1720,0x1726,0x172c,0x1732,0x1738,0x173e,0x1744,0x174a,0x1750,0x1756,1,1,
+0x175c,0x1762,1,1,1,1,1,1,0xd46,0xd50,0xd5a,0xd64,0x176a,0x1774,0x177e,0x1788,
+0xd6e,0xd78,0x1792,0x179c,0x17a4,0x17aa,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-0x5e8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,0x1284,0x128a,0xade,0x1290,0xaf4,0xafe,0x5f4,0xb08,
-0x1296,0x129c,0xb12,0x12a2,0x12a8,0x12ae,0x12b4,0xb28,1,0x12ba,0x12c0,0x12c6,0xb32,0xb48,0xb5a,1,
-0x5fc,0x12cc,0x12d2,0x12d8,0xb64,0x12de,1,1,0x12e4,0x12ea,0xb7a,0x12f0,0xb90,0xb9a,0x600,0xba4,
-0x12f6,0x12fc,0xbae,0x1302,0x1308,0x130e,0x1314,0xbc4,1,0x131a,0x1320,0x1326,0xbce,0xbe4,0xbf6,1,
-0x608,0x132c,0x1332,0x1338,0xc00,0x133e,1,0x1344,0x134a,0x1350,0xc16,0xc2c,0x1357,0x135d,0x1362,0x1368,
-0x136e,0x1374,0x137a,0x1380,0x1386,0x138c,0x1392,0x1398,1,1,0xc42,0xc50,0x139e,0x13a4,0x13aa,0x13b0,
-0x13b7,0x13bd,0x13c2,0x13c8,0x13ce,0x13d4,0x13da,0x13e0,0x13e6,0x13ec,0x13f3,0x13f9,0x13fe,0x1404,1,1,
-0x140a,0x1410,0x1416,0x141c,0x1422,0x1428,0x142f,0x1435,0x143a,1,1,1,0x1441,0x1447,0x144d,0x1453,
-1,0x1458,0x145e,0x1465,0x146b,0x1470,0x1476,1,1,1,1,0x147c,0x1482,0x1489,0x148f,0x1494,
-0x149a,1,1,1,0xc5e,0xc6c,0x14a0,0x14a6,0x14ac,0x14b2,1,1,0x14b8,0x14be,0x14c5,0x14cb,
-0x14d0,0x14d6,0xc7a,0xc84,0x14dc,0x14e2,0x14e9,0x14ef,0xc8e,0xc98,0x14f5,0x14fb,0x1500,0x1506,1,1,
-0xca2,0xcac,0xcb6,0xcc0,0x150c,0x1512,0x1518,0x151e,0x1524,0x152a,0x1531,0x1537,0x153c,0x1542,0x1548,0x154e,
-0x1554,0x155a,0x1560,0x1566,0x156c,0x1572,0x1578,0x60c,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,0xcca,0xce4,1,1,1,1,1,1,
-1,1,1,1,1,1,1,0xcfe,0xd18,1,1,1,1,1,1,0x610,
-1,1,1,1,1,1,1,1,1,1,1,1,1,0x157e,0x1584,0x158a,
-0x1590,0x1596,0x159c,0x15a2,0x15a8,0x15b0,0x15ba,0x15c4,0x15ce,0x15d8,0x15e2,0x15ec,0x15f6,1,0x1600,0x160a,
-0x1614,0x161e,0x1627,0x162d,1,1,0x1632,0x1638,0x163e,0x1644,0xd32,0xd3c,0x164d,0x1657,0x165f,0x1665,
-0x166b,1,1,1,0x1670,0x1676,1,1,0x167c,0x1682,0x168a,0x1694,0x169d,0x16a3,0x16a9,0x16af,
-0x16b4,0x16ba,0x16c0,0x16c6,0x16cc,0x16d2,0x16d8,0x16de,0x16e4,0x16ea,0x16f0,0x16f6,0x16fc,0x1702,0x1708,0x170e,
-0x1714,0x171a,0x1720,0x1726,0x172c,0x1732,0x1738,0x173e,0x1744,0x174a,0x1750,0x1756,1,1,0x175c,0x1762,
-1,1,1,1,1,1,0xd46,0xd50,0xd5a,0xd64,0x176a,0x1774,0x177e,0x1788,0xd6e,0xd78,
-0x1792,0x179c,0x17a4,0x17aa,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,0x614,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
@@ -238,399 +178,457 @@ static const uint16_t norm2_nfc_data_trieIndex[9776]={
0xffcc,0xffb8,0xffb8,1,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,0xffd0,0xffb8,0xffb8,0xffcc,
0xffd2,0xffd4,0xffd4,0xffd2,0xffd4,0xffd4,0xffd2,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,0x29d1,1,1,1,1,1,1,1,
-1,1,0x29d5,1,1,1,1,1,1,0x17b1,0x17b7,0x29d9,0x17bd,0x17c3,0x17c9,1,
-0x17cf,1,0x17d5,0x17db,0x17e3,0x618,1,1,1,0x634,1,0x644,1,0x658,1,1,
-1,1,1,0x674,1,0x684,1,1,1,0x688,1,1,1,0x6a0,0x17eb,0x17f1,
-0xd82,0x17f7,0xd8c,0x17fd,0x1805,0x6b4,1,1,1,0x6d4,1,0x6e4,1,0x6fc,1,1,
-1,1,1,0x71c,1,0x72c,1,1,1,0x734,1,1,1,0x754,0xd96,0xda8,
-0x180d,0x1813,0xdba,1,1,1,0x76c,0x1819,0x181f,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,0x29d5,1,1,1,1,1,0x17b1,0x17b7,0x29d9,0x17bd,0x17c3,0x17c9,1,0x17cf,
+1,0x17d5,0x17db,0x17e3,0x618,1,1,1,0x634,1,0x644,1,0x658,1,1,1,
+1,1,0x674,1,0x684,1,1,1,0x688,1,1,1,0x6a0,0x17eb,0x17f1,0xd82,
+0x17f7,0xd8c,0x17fd,0x1805,0x6b4,1,1,1,0x6d4,1,0x6e4,1,0x6fc,1,1,1,
+1,1,0x71c,1,0x72c,1,1,1,0x734,1,1,1,0x754,0xd96,0xda8,0x180d,
+0x1813,0xdba,1,1,1,0x76c,0x1819,0x181f,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,0x1825,0x182b,1,0x1831,1,1,0x774,0x1837,1,1,1,1,
-0x183d,0x1843,0x1849,1,0x778,1,1,0x780,1,0x784,0x790,0x798,0x79c,0x184f,0x7ac,1,
-1,1,0x7b0,1,1,1,1,0x7b4,1,1,1,0x7c4,1,1,1,0x7c8,
-1,0x7cc,1,1,0x7d0,1,1,0x7d8,1,0x7dc,0x7e8,0x7f0,0x7f4,0x1855,0x804,1,
-1,1,0x808,1,1,1,1,0x80c,1,1,1,0x81c,1,1,1,0x820,
-1,0x824,1,1,0x185b,0x1861,1,0x1867,1,1,0x828,0x186d,1,1,1,1,
-0x1873,0x1879,0x187f,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,0x82c,0x830,0x1885,0x188b,1,1,1,1,
-1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,0x1825,0x182b,1,0x1831,1,1,0x774,0x1837,1,1,1,1,0x183d,
+0x1843,0x1849,1,0x778,1,1,0x780,1,0x784,0x790,0x798,0x79c,0x184f,0x7ac,1,1,
+1,0x7b0,1,1,1,1,0x7b4,1,1,1,0x7c4,1,1,1,0x7c8,1,
+0x7cc,1,1,0x7d0,1,1,0x7d8,1,0x7dc,0x7e8,0x7f0,0x7f4,0x1855,0x804,1,1,
+1,0x808,1,1,1,0x80c,1,1,1,0x81c,1,1,1,0x820,1,0x824,
+1,1,0x185b,0x1861,1,0x1867,1,1,0x828,0x186d,1,1,1,1,0x1873,0x1879,
+0x187f,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0x82c,0x830,0x1885,0x188b,1,1,1,1,1,1,
+1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,0x1891,0x1897,1,1,1,1,1,1,1,1,1,
-1,1,1,1,0x189d,0x18a3,0x18a9,0x18af,1,1,0x18b5,0x18bb,0x834,0x838,0x18c1,0x18c7,
-0x18cd,0x18d3,0x18d9,0x18df,1,1,0x18e5,0x18eb,0x18f1,0x18f7,0x18fd,0x1903,0x83c,0x840,0x1909,0x190f,
-0x1915,0x191b,0x1921,0x1927,0x192d,0x1933,0x1939,0x193f,0x1945,0x194b,1,1,0x1951,0x1957,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x1891,
+0x1897,1,1,1,1,1,1,1,1,1,1,1,1,1,0x189d,0x18a3,
+0x18a9,0x18af,1,1,0x18b5,0x18bb,0x834,0x838,0x18c1,0x18c7,0x18cd,0x18d3,0x18d9,0x18df,1,1,
+0x18e5,0x18eb,0x18f1,0x18f7,0x18fd,0x1903,0x83c,0x840,0x1909,0x190f,0x1915,0x191b,0x1921,0x1927,0x192d,0x1933,
+0x1939,0x193f,0x1945,0x194b,1,1,0x1951,0x1957,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,
+0xffcc,0xffcc,0xffbc,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,
+0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffbc,0xffc8,0xffcc,0xfe14,0xfe16,0xfe18,0xfe1a,0xfe1c,0xfe1e,0xfe20,0xfe22,
+0xfe24,0xfe26,0xfe26,0xfe28,0xfe2a,0xfe2c,1,0xfe2e,1,0xfe30,0xfe32,1,0xffcc,0xffb8,1,0xfe24,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffcc,0xffbc,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,
-0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffbc,0xffc8,0xffcc,
-0xfe14,0xfe16,0xfe18,0xfe1a,0xfe1c,0xfe1e,0xfe20,0xfe22,0xfe24,0xfe26,0xfe26,0xfe28,0xfe2a,0xfe2c,1,0xfe2e,
-1,0xfe30,0xfe32,1,0xffcc,0xffb8,1,0xfe24,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
+0xfe3c,0xfe3e,0xfe40,1,1,1,1,1,1,1,0x195c,0x1962,0x1969,0x196f,0x1975,0x844,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xfe3c,0xfe3e,0xfe40,1,1,1,1,1,
-1,1,0x195c,0x1962,0x1969,0x196f,0x1975,0x844,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,0x850,1,0x854,0xfe36,0xfe38,0xfe3a,0xfe3c,0xfe3e,
+0xfe40,0xfe42,0xfe44,0xfdcc,0xfdcc,0xfdb8,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffb8,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-0x850,1,0x854,0xfe36,0xfe38,0xfe3a,0xfe3c,0xfe3e,0xfe40,0xfe42,0xfe44,0xfdcc,0xfdcc,0xfdb8,0xffb8,0xffcc,
-0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffb8,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,0xfe46,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,0x197b,0x858,0x1981,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,0x85c,0x1987,1,0x860,0xffcc,0xffcc,
-0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,1,1,0xffcc,
-0xffcc,1,0xffb8,0xffcc,0xffcc,0xffb8,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,0xfe48,1,1,1,1,1,1,
+0xfe46,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+0x197b,0x858,0x1981,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,0x85c,0x1987,1,0x860,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,0xffcc,
+0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,1,1,0xffcc,0xffcc,1,0xffb8,0xffcc,0xffcc,0xffb8,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,0xffcc,0xffb8,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffb8,
-0xffb8,0xffb8,0xffcc,0xffb8,0xffb8,0xffcc,0xffb8,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,0xffb8,0xffcc,0xffb8,0xffcc,
-0xffb8,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,1,
+0xfe48,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xffcc,
+0xffb8,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xffcc,0xffb8,0xffb8,0xffcc,0xffb8,0xffcc,0xffcc,
+0xffb8,0xffcc,0xffb8,0xffcc,0xffb8,0xffcc,0xffb8,0xffcc,0xffcc,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
-0xffcc,0xffcc,0xffb8,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,1,0xffcc,
-0xffcc,0xffcc,0xffcc,0xffcc,1,0xffcc,0xffcc,0xffcc,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,
+0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,1,1,1,1,1,1,1,1,1,
+0xffb8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,1,0xffcc,0xffcc,0xffcc,0xffcc,
+0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,0xffcc,0xffcc,0xffcc,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,0xffb8,0xffb8,0xffb8,1,1,1,1,
+1,1,1,1,1,1,1,1,0xffb8,0xffb8,0xffb8,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xffb8,
0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,0xffb8,
0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xfe36,0xfe38,0xfe3a,0xffcc,
0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffb8,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,0x864,0x198d,1,1,1,1,1,1,0x868,0x1993,1,0x86c,
0x1999,1,1,1,1,1,1,1,0xfc0e,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,0xfe12,1,1,1,0xffcc,0xffb8,0xffcc,
-0xffcc,1,1,1,0x29dc,0x29e2,0x29e8,0x29ee,0x29f4,0x29fa,0x2a00,0x2a06,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,0xfe0e,1,0xfc00,1,1,1,1,1,
-1,1,1,0x870,1,1,1,0x199f,0x19a5,0xfe12,1,1,1,1,1,1,
-1,1,1,0xfc00,1,1,1,1,0x2a0c,0x2a12,1,0x2a18,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x2a1e,
-1,1,0x2a24,1,1,1,1,1,0xfe0e,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,0xfe12,1,1,1,1,1,1,
-1,1,1,1,1,0x2a2a,0x2a30,0x2a36,1,1,0x2a3c,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,0xfe0e,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,0xfe12,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x878,
-0x19ab,1,1,0x19b1,0x19b7,0xfe12,1,1,1,1,1,1,1,1,0xfc00,0xfc00,
-1,1,1,1,0x2a42,0x2a48,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,0x884,1,0x19bd,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfc00,1,
-1,1,1,1,1,1,0x888,0x890,1,1,0x19c3,0x19c9,0x19cf,0xfe12,1,1,
-1,1,1,1,1,1,1,0xfc00,1,1,1,1,1,1,1,1,
-1,1,0x894,1,0x19d5,1,1,1,1,0xfe12,1,1,1,1,1,1,
-1,0xfea8,0xfcb6,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-0xfe0e,1,1,0x898,0x19db,1,0xfc00,1,1,1,0x89c,0x19e1,0x19e7,1,0xdc4,0x19ef,
-1,0xfe12,1,1,1,1,1,1,1,0xfc00,0xfc00,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,0xfe12,0xfe12,1,0xfc00,1,1,1,1,1,
-1,1,0x8a8,0x8b0,1,1,0x19f7,0x19fd,0x1a03,0xfe12,1,1,1,1,1,1,
-1,1,1,0xfc00,1,1,1,1,1,1,1,1,1,1,0xfc12,1,
-1,1,1,0xfc00,1,1,1,1,1,1,1,1,1,0x8b4,0x1a09,1,
-0xdce,0x1a11,0x1a19,0xfc00,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,0xfece,0xfece,0xfe12,1,
-1,1,1,1,1,1,1,1,0xfed6,0xfed6,0xfed6,0xfed6,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,0xfeec,0xfeec,1,1,1,1,1,1,1,1,1,1,
-0xfef4,0xfef4,0xfef4,0xfef4,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,0xffb8,0xffb8,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,0xffb8,1,0xffb8,1,0xffb0,1,1,1,1,1,1,
-1,1,1,0x2a4f,1,1,1,1,1,1,1,1,1,0x2a55,1,1,
-1,1,0x2a5b,1,1,1,1,0x2a61,1,1,1,1,0x2a67,1,1,1,
-1,1,1,1,1,1,1,1,1,0x2a6d,1,1,1,1,1,1,
-1,0xff02,0xff04,0x3c40,0xff08,0x3c48,0x2a72,1,0x2a78,1,0xff04,0xff04,0xff04,0xff04,1,1,
-0xff04,0x3c50,0xffcc,0xffcc,0xfe12,1,0xffcc,0xffcc,1,1,1,1,1,1,1,1,
-1,1,1,0x2a7f,1,1,1,1,1,1,1,1,1,0x2a85,1,1,
-1,1,0x2a8b,1,1,1,1,0x2a91,1,1,1,1,0x2a97,1,1,1,
-1,1,1,1,1,1,1,1,1,0x2a9d,1,1,1,1,1,1,
-1,1,0xffb8,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,0x8c0,0x1a1f,1,
-1,1,1,1,1,1,0xfc00,1,1,1,1,1,1,1,1,0xfe0e,
-1,0xfe12,0xfe12,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,0xffb8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0xfe12,1,1,1,0xffcc,0xffb8,0xffcc,0xffcc,1,1,
+1,0x29dc,0x29e2,0x29e8,0x29ee,0x29f4,0x29fa,0x2a00,0x2a06,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,0xfe0e,1,0xfc00,1,1,1,1,1,1,1,0x870,
+1,1,1,0x199f,0x19a5,0xfe12,1,1,1,1,1,1,1,1,1,0xfc00,
+1,1,1,1,0x2a0c,0x2a12,1,0x2a18,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0xffcc,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,0x2a1e,1,1,0x2a24,1,1,
+1,1,1,0xfe0e,1,1,1,1,1,1,1,1,1,1,1,1,
+1,0xfe12,1,1,1,1,1,1,1,1,1,1,1,0x2a2a,0x2a30,0x2a36,
+1,1,0x2a3c,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,0xfe12,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe12,1,
-1,1,1,1,1,1,1,1,1,0xffcc,1,1,1,1,1,1,
-1,1,1,1,1,0xffc8,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,0xffbc,0xffcc,0xffb8,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,0xffcc,0xffb8,1,1,1,
-1,1,1,1,0xfe12,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
-0xffcc,1,1,0xffb8,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,
-0xffcc,0xffb8,1,1,1,1,1,1,1,0x8c4,0x1a25,0x8c8,0x1a2b,0x8cc,0x1a31,0x8d0,
-0x1a37,0x8d4,0x1a3d,1,1,0x8d8,0x1a43,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,0xfe0e,0xfc00,1,1,
-1,1,0x8dc,0x1a49,0x8e0,0x1a4f,0x8e4,0x8e8,0x1a55,0x1a5b,0x8ec,0x1a61,0xfe12,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,0xffcc,0xffb8,0xffcc,0xffcc,0xffcc,
-0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,0xfe12,0xfe12,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,0xfe0e,1,1,1,1,1,
-1,1,1,1,1,1,0xfe12,0xfe12,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe0e,
+1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe12,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-0xffcc,0xffcc,0xffcc,1,0xfe02,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,
-0xffcc,1,0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,1,1,1,1,0xffb8,1,1,
-1,1,1,1,0xffcc,1,1,1,0xffcc,0xffcc,1,1,1,1,1,1,
-0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffd4,0xffac,0xffb8,
-0xff94,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
-0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffd0,0xffc8,0xffc8,0xffb8,1,0xffcc,
-0xffd2,0xffb8,0xffcc,0xffb8,0x1a66,0x1a6c,0x1a72,0x1a78,0x1a7f,0x1a85,0x1a8b,0x1a91,0x1a99,0x1aa3,0x1aaa,0x1ab0,
-0x1ab6,0x1abc,0x1ac2,0x1ac8,0x1acf,0x1ad5,0x1ada,0x1ae0,0x1ae8,0x1af2,0x1afc,0x1b06,0x1b0e,0x1b14,0x1b1a,0x1b20,
-0x1b29,0x1b33,0x1b3b,0x1b41,0x1b46,0x1b4c,0x1b52,0x1b58,0x1b5e,0x1b64,0x1b6a,0x1b70,0x1b77,0x1b7d,0x1b82,0x1b88,
-0x1b8e,0x1b94,0x1b9c,0x1ba6,0x1bae,0x1bb4,0x1bba,0x1bc0,0x1bc6,0x1bcc,0xdd8,0xde2,0x1bd4,0x1bde,0x1be6,0x1bec,
-0x1bf2,0x1bf8,0x1bfe,0x1c04,0x1c0a,0x1c10,0x1c17,0x1c1d,0x1c22,0x1c28,0x1c2e,0x1c34,0x1c3a,0x1c40,0x1c46,0x1c4c,
-0x1c54,0x1c5e,0x1c68,0x1c72,0x1c7c,0x1c86,0x1c90,0x1c9a,0x1ca3,0x1ca9,0x1caf,0x1cb5,0x1cba,0x1cc0,0xdec,0xdf6,
-0x1cc8,0x1cd2,0x1cda,0x1ce0,0x1ce6,0x1cec,0xe00,0xe0a,0x1cf4,0x1cfe,0x1d08,0x1d12,0x1d1c,0x1d26,0x1d2e,0x1d34,
-0x1d3a,0x1d40,0x1d46,0x1d4c,0x1d52,0x1d58,0x1d5e,0x1d64,0x1d6a,0x1d70,0x1d76,0x1d7c,0x1d84,0x1d8e,0x1d98,0x1da2,
-0x1daa,0x1db0,0x1db7,0x1dbd,0x1dc2,0x1dc8,0x1dce,0x1dd4,0x1dda,0x1de0,0x1de6,0x1dec,0x1df3,0x1df9,0x1dff,0x1e05,
-0x1e0b,0x1e11,0x1e16,0x1e1c,0x1e22,0x1e28,0x1e2f,0x1e35,0x1e3b,0x1e41,0x1e46,0x1e4c,0x1e52,0x1e58,1,0x1e5f,
-1,1,1,1,0xe14,0xe22,0x1e64,0x1e6a,0x1e72,0x1e7c,0x1e86,0x1e90,0x1e9a,0x1ea4,0x1eae,0x1eb8,
-0x1ec2,0x1ecc,0x1ed6,0x1ee0,0x1eea,0x1ef4,0x1efe,0x1f08,0x1f12,0x1f1c,0x1f26,0x1f30,0xe30,0xe3a,0x1f38,0x1f3e,
-0x1f44,0x1f4a,0x1f52,0x1f5c,0x1f66,0x1f70,0x1f7a,0x1f84,0x1f8e,0x1f98,0x1fa2,0x1fac,0x1fb4,0x1fba,0x1fc0,0x1fc6,
-0xe44,0xe4e,0x1fcc,0x1fd2,0x1fda,0x1fe4,0x1fee,0x1ff8,0x2002,0x200c,0x2016,0x2020,0x202a,0x2034,0x203e,0x2048,
-0x2052,0x205c,0x2066,0x2070,0x207a,0x2084,0x208e,0x2098,0x20a0,0x20a6,0x20ac,0x20b2,0x20ba,0x20c4,0x20ce,0x20d8,
-0x20e2,0x20ec,0x20f6,0x2100,0x210a,0x2114,0x211c,0x2122,0x2129,0x212f,0x2134,0x213a,0x2140,0x2146,1,1,
-1,1,1,1,0xe58,0xe6e,0xe86,0xe94,0xea2,0xeb0,0xebe,0xecc,0xed8,0xeee,0xf06,0xf14,
-0xf22,0xf30,0xf3e,0xf4c,0xf58,0xf66,0x214f,0x2159,0x2163,0x216d,1,1,0xf74,0xf82,0x2177,0x2181,
-0x218b,0x2195,1,1,0xf90,0xfa6,0xfbe,0xfcc,0xfda,0xfe8,0xff6,0x1004,0x1010,0x1026,0x103e,0x104c,
-0x105a,0x1068,0x1076,0x1084,0x1090,0x10a2,0x219f,0x21a9,0x21b3,0x21bd,0x21c7,0x21d1,0x10b4,0x10c6,0x21db,0x21e5,
-0x21ef,0x21f9,0x2203,0x220d,0x10d8,0x10e6,0x2217,0x2221,0x222b,0x2235,1,1,0x10f4,0x1102,0x223f,0x2249,
-0x2253,0x225d,1,1,0x1110,0x1122,0x2267,0x2271,0x227b,0x2285,0x228f,0x2299,1,0x1134,1,0x22a3,
-1,0x22ad,1,0x22b7,0x1146,0x115c,0x1174,0x1182,0x1190,0x119e,0x11ac,0x11ba,0x11c6,0x11dc,0x11f4,0x1202,
-0x1210,0x121e,0x122c,0x123a,0x1246,0x3b8e,0x22bf,0x3b96,0x1250,0x3b9e,0x22c5,0x3ba6,0x22cb,0x3bae,0x22d1,0x3bb6,
-0x125a,0x3bbe,1,1,0x22d8,0x22e2,0x22f1,0x2301,0x2311,0x2321,0x2331,0x2341,0x234c,0x2356,0x2365,0x2375,
-0x2385,0x2395,0x23a5,0x23b5,0x23c0,0x23ca,0x23d9,0x23e9,0x23f9,0x2409,0x2419,0x2429,0x2434,0x243e,0x244d,0x245d,
-0x246d,0x247d,0x248d,0x249d,0x24a8,0x24b2,0x24c1,0x24d1,0x24e1,0x24f1,0x2501,0x2511,0x251c,0x2526,0x2535,0x2545,
-0x2555,0x2565,0x2575,0x2585,0x258f,0x2595,0x259d,0x25a4,0x25ad,1,0x1264,0x25b7,0x25bf,0x25c5,0x25cb,0x3bc6,
-0x25d0,1,0x2aa2,0x8f0,1,0x25d7,0x25df,0x25e6,0x25ef,1,0x126e,0x25f9,0x2601,0x3bce,0x2607,0x3bd6,
-0x260c,0x2613,0x2619,0x261f,0x2625,0x262b,0x2633,0x3be0,1,1,0x263b,0x2643,0x264b,0x2651,0x2657,0x3bea,
-1,0x265d,0x2663,0x2669,0x266f,0x2675,0x267d,0x3bf4,0x2685,0x268b,0x2691,0x2699,0x26a1,0x26a7,0x26ad,0x3bfe,
-0x26b3,0x26b9,0x3c06,0x2aa7,1,1,0x26c1,0x26c8,0x26d1,1,0x1278,0x26db,0x26e3,0x3c0e,0x26e9,0x3c16,
-0x26ee,0x2aab,0x8fc,1,0xfa09,0xfa09,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,0xffcc,0xffcc,0xfe02,0xfe02,0xffcc,0xffcc,0xffcc,0xffcc,0xfe02,0xfe02,0xfe02,0xffcc,
-0xffcc,1,1,1,1,0xffcc,1,1,1,0xfe02,0xfe02,0xffcc,0xffb8,0xffcc,0xfe02,0xfe02,
-0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,0x2aae,1,1,1,0x2ab2,0x3c1e,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-0x908,1,0x90c,1,0x910,1,1,1,1,1,0x26f5,0x26fb,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,0x2701,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,0x2707,0x270d,0x2713,
-0x914,1,0x918,1,0x91c,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,0x920,0x2719,1,1,1,0x924,0x271f,1,0x928,0x2725,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,0x92c,0x272b,0x930,0x2731,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,0x934,1,1,1,
-1,0x2737,1,0x938,0x273d,0x93c,1,0x2743,0x940,0x2749,1,1,1,0x944,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-0x274f,0x948,0x2755,1,0x94c,0x950,1,1,1,1,1,1,1,0x275b,0x2761,0x2767,
-0x276d,0x2773,0x954,0x958,0x2779,0x277f,0x95c,0x960,0x2785,0x278b,0x964,0x968,0x96c,0x970,1,1,
-0x2791,0x2797,0x974,0x978,0x279d,0x27a3,0x97c,0x980,0x27a9,0x27af,1,1,1,1,1,1,
-1,0x984,0x988,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,0x98c,1,1,1,1,1,0x990,0x994,1,0x998,0x27b5,0x27bb,0x27c1,0x27c7,
-1,1,0x99c,0x9a0,0x9a4,0x9a8,1,1,1,1,1,1,1,1,1,1,
-0x27cd,0x27d3,0x27d9,0x27df,1,1,1,1,1,1,0x27e5,0x27eb,0x27f1,0x27f7,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,0x2ab7,0x2abb,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-0x2abf,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,0xfe12,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
+0x878,0x19ab,1,1,0x19b1,0x19b7,0xfe12,1,1,1,1,1,1,1,1,0xfc00,
+0xfc00,1,1,1,1,0x2a42,0x2a48,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,0x884,1,0x19bd,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,0xfc00,1,1,1,1,1,1,0x888,0x890,1,1,
+0x19c3,0x19c9,0x19cf,0xfe12,1,1,1,1,1,1,1,1,1,0xfc00,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0x894,1,0x19d5,1,1,1,1,0xfe12,1,1,
+1,1,1,1,1,0xfea8,0xfcb6,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,0xfe0e,1,1,0x898,0x19db,1,0xfc00,1,1,1,0x89c,0x19e1,0x19e7,
+1,0xdc4,0x19ef,1,0xfe12,1,1,1,1,1,1,1,0xfc00,0xfc00,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,0xfe12,0xfe12,1,0xfc00,1,1,1,
+1,1,1,0x8a8,0x8b0,1,1,0x19f7,0x19fd,0x1a03,0xfe12,1,1,1,1,1,
+1,1,1,1,0xfc00,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,0xfc12,1,1,
+1,1,0xfc00,1,1,1,1,1,1,1,1,1,0x8b4,0x1a09,1,0xdce,
+0x1a11,0x1a19,0xfc00,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,0xfece,0xfece,0xfe12,1,1,
+1,1,1,1,1,1,0xfed6,0xfed6,0xfed6,0xfed6,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,0xfeec,0xfeec,1,1,1,1,1,1,1,1,0xfef4,0xfef4,0xfef4,0xfef4,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,0xffb8,0xffb8,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,0xffb8,1,0xffb8,1,0xffb0,1,1,1,1,1,1,0x2a4f,1,1,1,
+1,1,1,1,1,1,0x2a55,1,1,1,1,0x2a5b,1,1,1,1,
+0x2a61,1,1,1,1,0x2a67,1,1,1,1,1,1,1,1,1,1,
+1,1,0x2a6d,1,1,1,1,1,1,1,0xff02,0xff04,0x3c40,0xff08,0x3c48,0x2a72,
+1,0x2a78,1,0xff04,0xff04,0xff04,0xff04,1,1,0xff04,0x3c50,0xffcc,0xffcc,0xfe12,1,0xffcc,
+0xffcc,1,1,1,1,1,1,1,1,1,1,1,0x2a7f,1,1,1,
+1,1,1,1,1,1,0x2a85,1,1,1,1,0x2a8b,1,1,1,1,
+0x2a91,1,1,1,1,0x2a97,1,1,1,1,1,1,1,1,1,1,
+1,1,0x2a9d,1,1,1,1,1,1,0xffb8,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,0x8c0,0x1a1f,1,1,1,1,1,1,1,0xfc00,1,1,1,
+1,1,1,1,1,0xfe0e,1,0xfe12,0xfe12,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0xffb8,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,
+0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,
+0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe12,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe12,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,0xfe12,1,1,1,1,1,1,1,1,1,1,0xffcc,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0xffc8,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+0xffbc,0xffcc,0xffb8,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,0xffcc,0xffb8,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,0xfe12,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
+1,1,0xffb8,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,0xffcc,
+0xffb8,1,1,1,1,1,0x8c4,0x1a25,0x8c8,0x1a2b,0x8cc,0x1a31,0x8d0,0x1a37,0x8d4,0x1a3d,
+1,1,0x8d8,0x1a43,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,0xfe0e,0xfc00,1,1,1,1,0x8dc,0x1a49,0x8e0,0x1a4f,0x8e4,
+0x8e8,0x1a55,0x1a5b,0x8ec,0x1a61,0xfe12,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,0xffcc,0xffb8,0xffcc,0xffcc,
+0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe12,
+0xfe12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,0xfe0e,1,1,1,1,1,1,1,1,
+1,1,1,0xfe12,0xfe12,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,0xffcc,0xffcc,0xffcc,1,0xfe02,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,
+0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,1,0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,1,1,
+1,1,0xffb8,1,1,1,1,1,1,0xffcc,1,1,1,0xffcc,0xffcc,1,
+1,1,1,1,1,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,
+0xffcc,0xffcc,0xffd4,0xffac,0xffb8,0xff94,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
-0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,
-1,1,0xffb4,0xffc8,0xffd0,0xffbc,0xffc0,0xffc0,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,0x9ac,1,1,1,1,0x9b0,
-0x27fd,0x9b4,0x2803,0x9b8,0x2809,0x9bc,0x280f,0x9c0,0x2815,0x9c4,0x281b,0x9c8,0x2821,0x9cc,0x2827,0x9d0,
-0x282d,0x9d4,0x2833,0x9d8,0x2839,0x9dc,0x283f,1,0x9e0,0x2845,0x9e4,0x284b,0x9e8,0x2851,1,1,
-1,1,1,0x9ec,0x2857,0x285d,0x9f4,0x2863,0x2869,0x9fc,0x286f,0x2875,0xa04,0x287b,0x2881,0xa0c,
-0x2887,0x288d,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,0x2893,1,1,1,1,0xfc10,0xfc10,1,
-1,0xa14,0x2899,1,1,1,1,1,1,1,0xa18,1,1,1,1,0xa1c,
-0x289f,0xa20,0x28a5,0xa24,0x28ab,0xa28,0x28b1,0xa2c,0x28b7,0xa30,0x28bd,0xa34,0x28c3,0xa38,0x28c9,0xa3c,
-0x28cf,0xa40,0x28d5,0xa44,0x28db,0xa48,0x28e1,1,0xa4c,0x28e7,0xa50,0x28ed,0xa54,0x28f3,1,1,
-1,1,1,0xa58,0x28f9,0x28ff,0xa60,0x2905,0x290b,0xa68,0x2911,0x2917,0xa70,0x291d,0x2923,0xa78,
-0x2929,0x292f,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,0xa80,0xa84,0xa88,0xa8c,1,0x2935,1,1,0x293b,0x2941,0x2947,0x294d,1,
-1,0xa90,0x2953,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,0xffcc,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
-0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,0xfe12,1,1,1,1,1,1,1,1,1,
+0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffd0,0xffc8,0xffc8,0xffb8,1,
+0xffcc,0xffd2,0xffb8,0xffcc,0xffb8,0x1a66,0x1a6c,0x1a72,0x1a78,0x1a7f,0x1a85,0x1a8b,0x1a91,0x1a99,0x1aa3,0x1aaa,
+0x1ab0,0x1ab6,0x1abc,0x1ac2,0x1ac8,0x1acf,0x1ad5,0x1ada,0x1ae0,0x1ae8,0x1af2,0x1afc,0x1b06,0x1b0e,0x1b14,0x1b1a,
+0x1b20,0x1b29,0x1b33,0x1b3b,0x1b41,0x1b46,0x1b4c,0x1b52,0x1b58,0x1b5e,0x1b64,0x1b6a,0x1b70,0x1b77,0x1b7d,0x1b82,
+0x1b88,0x1b8e,0x1b94,0x1b9c,0x1ba6,0x1bae,0x1bb4,0x1bba,0x1bc0,0x1bc6,0x1bcc,0xdd8,0xde2,0x1bd4,0x1bde,0x1be6,
+0x1bec,0x1bf2,0x1bf8,0x1bfe,0x1c04,0x1c0a,0x1c10,0x1c17,0x1c1d,0x1c22,0x1c28,0x1c2e,0x1c34,0x1c3a,0x1c40,0x1c46,
+0x1c4c,0x1c54,0x1c5e,0x1c68,0x1c72,0x1c7c,0x1c86,0x1c90,0x1c9a,0x1ca3,0x1ca9,0x1caf,0x1cb5,0x1cba,0x1cc0,0xdec,
+0xdf6,0x1cc8,0x1cd2,0x1cda,0x1ce0,0x1ce6,0x1cec,0xe00,0xe0a,0x1cf4,0x1cfe,0x1d08,0x1d12,0x1d1c,0x1d26,0x1d2e,
+0x1d34,0x1d3a,0x1d40,0x1d46,0x1d4c,0x1d52,0x1d58,0x1d5e,0x1d64,0x1d6a,0x1d70,0x1d76,0x1d7c,0x1d84,0x1d8e,0x1d98,
+0x1da2,0x1daa,0x1db0,0x1db7,0x1dbd,0x1dc2,0x1dc8,0x1dce,0x1dd4,0x1dda,0x1de0,0x1de6,0x1dec,0x1df3,0x1df9,0x1dff,
+0x1e05,0x1e0b,0x1e11,0x1e16,0x1e1c,0x1e22,0x1e28,0x1e2f,0x1e35,0x1e3b,0x1e41,0x1e46,0x1e4c,0x1e52,0x1e58,1,
+0x1e5f,1,1,1,1,0xe14,0xe22,0x1e64,0x1e6a,0x1e72,0x1e7c,0x1e86,0x1e90,0x1e9a,0x1ea4,0x1eae,
+0x1eb8,0x1ec2,0x1ecc,0x1ed6,0x1ee0,0x1eea,0x1ef4,0x1efe,0x1f08,0x1f12,0x1f1c,0x1f26,0x1f30,0xe30,0xe3a,0x1f38,
+0x1f3e,0x1f44,0x1f4a,0x1f52,0x1f5c,0x1f66,0x1f70,0x1f7a,0x1f84,0x1f8e,0x1f98,0x1fa2,0x1fac,0x1fb4,0x1fba,0x1fc0,
+0x1fc6,0xe44,0xe4e,0x1fcc,0x1fd2,0x1fda,0x1fe4,0x1fee,0x1ff8,0x2002,0x200c,0x2016,0x2020,0x202a,0x2034,0x203e,
+0x2048,0x2052,0x205c,0x2066,0x2070,0x207a,0x2084,0x208e,0x2098,0x20a0,0x20a6,0x20ac,0x20b2,0x20ba,0x20c4,0x20ce,
+0x20d8,0x20e2,0x20ec,0x20f6,0x2100,0x210a,0x2114,0x211c,0x2122,0x2129,0x212f,0x2134,0x213a,0x2140,0x2146,1,
+1,1,1,1,1,0xe58,0xe6e,0xe86,0xe94,0xea2,0xeb0,0xebe,0xecc,0xed8,0xeee,0xf06,
+0xf14,0xf22,0xf30,0xf3e,0xf4c,0xf58,0xf66,0x214f,0x2159,0x2163,0x216d,1,1,0xf74,0xf82,0x2177,
+0x2181,0x218b,0x2195,1,1,0xf90,0xfa6,0xfbe,0xfcc,0xfda,0xfe8,0xff6,0x1004,0x1010,0x1026,0x103e,
+0x104c,0x105a,0x1068,0x1076,0x1084,0x1090,0x10a2,0x219f,0x21a9,0x21b3,0x21bd,0x21c7,0x21d1,0x10b4,0x10c6,0x21db,
+0x21e5,0x21ef,0x21f9,0x2203,0x220d,0x10d8,0x10e6,0x2217,0x2221,0x222b,0x2235,1,1,0x10f4,0x1102,0x223f,
+0x2249,0x2253,0x225d,1,1,0x1110,0x1122,0x2267,0x2271,0x227b,0x2285,0x228f,0x2299,1,0x1134,1,
+0x22a3,1,0x22ad,1,0x22b7,0x1146,0x115c,0x1174,0x1182,0x1190,0x119e,0x11ac,0x11ba,0x11c6,0x11dc,0x11f4,
+0x1202,0x1210,0x121e,0x122c,0x123a,0x1246,0x3b8e,0x22bf,0x3b96,0x1250,0x3b9e,0x22c5,0x3ba6,0x22cb,0x3bae,0x22d1,
+0x3bb6,0x125a,0x3bbe,1,1,0x22d8,0x22e2,0x22f1,0x2301,0x2311,0x2321,0x2331,0x2341,0x234c,0x2356,0x2365,
+0x2375,0x2385,0x2395,0x23a5,0x23b5,0x23c0,0x23ca,0x23d9,0x23e9,0x23f9,0x2409,0x2419,0x2429,0x2434,0x243e,0x244d,
+0x245d,0x246d,0x247d,0x248d,0x249d,0x24a8,0x24b2,0x24c1,0x24d1,0x24e1,0x24f1,0x2501,0x2511,0x251c,0x2526,0x2535,
+0x2545,0x2555,0x2565,0x2575,0x2585,0x258f,0x2595,0x259d,0x25a4,0x25ad,1,0x1264,0x25b7,0x25bf,0x25c5,0x25cb,
+0x3bc6,0x25d0,1,0x2aa2,0x8f0,1,0x25d7,0x25df,0x25e6,0x25ef,1,0x126e,0x25f9,0x2601,0x3bce,0x2607,
+0x3bd6,0x260c,0x2613,0x2619,0x261f,0x2625,0x262b,0x2633,0x3be0,1,1,0x263b,0x2643,0x264b,0x2651,0x2657,
+0x3bea,1,0x265d,0x2663,0x2669,0x266f,0x2675,0x267d,0x3bf4,0x2685,0x268b,0x2691,0x2699,0x26a1,0x26a7,0x26ad,
+0x3bfe,0x26b3,0x26b9,0x3c06,0x2aa7,1,1,0x26c1,0x26c8,0x26d1,1,0x1278,0x26db,0x26e3,0x3c0e,0x26e9,
+0x3c16,0x26ee,0x2aab,0x8fc,1,0xfa09,0xfa09,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,0xffcc,0xffcc,0xfe02,0xfe02,0xffcc,0xffcc,0xffcc,0xffcc,0xfe02,0xfe02,0xfe02,
+0xffcc,0xffcc,1,1,1,1,0xffcc,1,1,1,0xfe02,0xfe02,0xffcc,0xffb8,0xffcc,0xfe02,
+0xfe02,0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,0x2aae,1,1,1,
+0x2ab2,0x3c1e,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0x908,1,0x90c,1,0x910,1,1,1,1,1,
+0x26f5,0x26fb,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,0x2701,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0x2707,0x270d,0x2713,0x914,1,0x918,1,0x91c,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,0x920,0x2719,1,1,1,0x924,0x271f,
+1,0x928,0x2725,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,0x92c,0x272b,0x930,0x2731,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,0x934,1,1,1,0x2737,1,0x938,0x273d,0x93c,1,0x2743,0x940,0x2749,1,
+1,1,0x944,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,0x274f,0x948,0x2755,1,0x94c,0x950,1,1,1,1,1,
+1,1,0x275b,0x2761,0x2767,0x276d,0x2773,0x954,0x958,0x2779,0x277f,0x95c,0x960,0x2785,0x278b,0x964,
+0x968,0x96c,0x970,1,1,0x2791,0x2797,0x974,0x978,0x279d,0x27a3,0x97c,0x980,0x27a9,0x27af,1,
+1,1,1,1,1,1,0x984,0x988,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,0x98c,1,1,1,1,1,0x990,0x994,1,
+0x998,0x27b5,0x27bb,0x27c1,0x27c7,1,1,0x99c,0x9a0,0x9a4,0x9a8,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,0x27cd,0x27d3,0x27d9,0x27df,1,
+1,1,1,1,1,0x27e5,0x27eb,0x27f1,0x27f7,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,0x2ab7,0x2abb,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+0x2abf,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
0xfe12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,
-0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xffb8,
-0xffb8,0xffb8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,0xfe12,1,1,1,1,1,1,1,1,
-1,1,1,1,0xfe12,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,0xffcc,1,0xffcc,0xffcc,0xffb8,1,1,0xffcc,0xffcc,1,1,1,
-1,1,0xffcc,0xffcc,1,0xffcc,1,1,1,1,1,1,1,1,1,1,
+1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
+0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
+0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,0xffb4,0xffc8,0xffd0,0xffbc,0xffc0,
+0xffc0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,0x9ac,1,1,1,1,0x9b0,0x27fd,0x9b4,0x2803,0x9b8,0x2809,0x9bc,0x280f,0x9c0,0x2815,
+0x9c4,0x281b,0x9c8,0x2821,0x9cc,0x2827,0x9d0,0x282d,0x9d4,0x2833,0x9d8,0x2839,0x9dc,0x283f,1,0x9e0,
+0x2845,0x9e4,0x284b,0x9e8,0x2851,1,1,1,1,1,0x9ec,0x2857,0x285d,0x9f4,0x2863,0x2869,
+0x9fc,0x286f,0x2875,0xa04,0x287b,0x2881,0xa0c,0x2887,0x288d,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,0x2893,1,1,
+1,1,0xfc10,0xfc10,1,1,0xa14,0x2899,1,1,1,1,1,1,1,0xa18,
+1,1,1,1,0xa1c,0x289f,0xa20,0x28a5,0xa24,0x28ab,0xa28,0x28b1,0xa2c,0x28b7,0xa30,0x28bd,
+0xa34,0x28c3,0xa38,0x28c9,0xa3c,0x28cf,0xa40,0x28d5,0xa44,0x28db,0xa48,0x28e1,1,0xa4c,0x28e7,0xa50,
+0x28ed,0xa54,0x28f3,1,1,1,1,1,0xa58,0x28f9,0x28ff,0xa60,0x2905,0x290b,0xa68,0x2911,
+0x2917,0xa70,0x291d,0x2923,0xa78,0x2929,0x292f,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,0xa80,0xa84,0xa88,0xa8c,1,0x2935,1,1,
+0x293b,0x2941,0x2947,0x294d,1,1,0xa90,0x2953,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,0xffcc,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,
+0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0xffcc,0xffcc,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,0xfe12,1,1,1,1,1,1,1,1,1,
-0x2ac5,0x2ac9,0x2acd,0x2ad1,0x2ad5,0x2ad9,0x2add,0x2ae1,0x2ae1,0x2ae5,0x2ae9,0x2aed,0x2af1,0x2af5,0x2af9,0x2afd,
-0x2b01,0x2b05,0x2b09,0x2b0d,0x2b11,0x2b15,0x2b19,0x2b1d,0x2b21,0x2b25,0x2b29,0x2b2d,0x2b31,0x2b35,0x2b39,0x2b3d,
-0x2b41,0x2b45,0x2b49,0x2b4d,0x2b51,0x2b55,0x2b59,0x2b5d,0x2b61,0x2b65,0x2b69,0x2b6d,0x2b71,0x2b75,0x2b79,0x2b7d,
-0x2b81,0x2b85,0x2b89,0x2b8d,0x2b91,0x2b95,0x2b99,0x2b9d,0x2ba1,0x2ba5,0x2ba9,0x2bad,0x2bb1,0x2bb5,0x2bb9,0x2bbd,
-0x2bc1,0x2bc5,0x2bc9,0x2bcd,0x2bd1,0x2bd5,0x2bd9,0x2bdd,0x2be1,0x2be5,0x2be9,0x2bed,0x2bf1,0x2bf5,0x2bf9,0x2bfd,
-0x2c01,0x2c05,0x2c09,0x2c0d,0x2c11,0x2c15,0x2c19,0x2c1d,0x2c21,0x2c25,0x2c29,0x2c2d,0x2b11,0x2c31,0x2c35,0x2c39,
-0x2c3d,0x2c41,0x2c45,0x2c49,0x2c4d,0x2c51,0x2c55,0x2c59,0x2c5d,0x2c61,0x2c65,0x2c69,0x2c6d,0x2c71,0x2c75,0x2c79,
-0x2c7d,0x2c81,0x2c85,0x2c89,0x2c8d,0x2c91,0x2c95,0x2c99,0x2c9d,0x2ca1,0x2ca5,0x2ca9,0x2cad,0x2cb1,0x2cb5,0x2cb9,
-0x2cbd,0x2cc1,0x2cc5,0x2cc9,0x2ccd,0x2cd1,0x2cd5,0x2cd9,0x2cdd,0x2ce1,0x2ce5,0x2ce9,0x2ced,0x2cf1,0x2cf5,0x2cf9,
-0x2cfd,0x2d01,0x2d05,0x2d09,0x2d0d,0x2d11,0x2d15,0x2d19,0x2d1d,0x2d21,0x2d25,0x2d29,0x2d2d,0x2d31,0x2d35,0x2d39,
-0x2d3d,0x2c79,0x2d41,0x2d45,0x2d49,0x2d4d,0x2d51,0x2d55,0x2d59,0x2d5d,0x2c39,0x2d61,0x2d65,0x2d69,0x2d6d,0x2d71,
-0x2d75,0x2d79,0x2d7d,0x2d81,0x2d85,0x2d89,0x2d8d,0x2d91,0x2d95,0x2d99,0x2d9d,0x2da1,0x2da5,0x2da9,0x2dad,0x2b11,
-0x2db1,0x2db5,0x2db9,0x2dbd,0x2dc1,0x2dc5,0x2dc9,0x2dcd,0x2dd1,0x2dd5,0x2dd9,0x2ddd,0x2de1,0x2de5,0x2de9,0x2ded,
-0x2df1,0x2df5,0x2df9,0x2dfd,0x2e01,0x2e05,0x2e09,0x2e0d,0x2e11,0x2e15,0x2e19,0x2c41,0x2e1d,0x2e21,0x2e25,0x2e29,
-0x2e2d,0x2e31,0x2e35,0x2e39,0x2e3d,0x2e41,0x2e45,0x2e49,0x2e4d,0x2e51,0x2e55,0x2e59,0x2e5d,0x2e61,0x2e65,0x2e69,
-0x2e6d,0x2e71,0x2e75,0x2e79,0x2e7d,0x2e81,0x2e85,0x2e89,0x2e8d,0x2e91,0x2e95,0x2e99,0x2e9d,0x2ea1,0x2ea5,0x2ea9,
-0x2ead,0x2eb1,0x2eb5,0x2eb9,0x2ebd,0x2ec1,0x2ec5,0x2ec9,0x2ecd,0x2ed1,0x2ed5,0x2ed9,0x2edd,0x2ee1,1,1,
-0x2ee5,1,0x2ee9,1,1,0x2eed,0x2ef1,0x2ef5,0x2ef9,0x2efd,0x2f01,0x2f05,0x2f09,0x2f0d,0x2f11,1,
-0x2f15,1,0x2f19,1,1,0x2f1d,0x2f21,1,1,1,0x2f25,0x2f29,0x2f2d,0x2f31,0x2f35,0x2f39,
-0x2f3d,0x2f41,0x2f45,0x2f49,0x2f4d,0x2f51,0x2f55,0x2f59,0x2f5d,0x2f61,0x2f65,0x2f69,0x2f6d,0x2f71,0x2f75,0x2f79,
-0x2f7d,0x2f81,0x2f85,0x2f89,0x2f8d,0x2f91,0x2f95,0x2f99,0x2f9d,0x2fa1,0x2fa5,0x2fa9,0x2fad,0x2fb1,0x2fb5,0x2fb9,
-0x2fbd,0x2fc1,0x2fc5,0x2fc9,0x2fcd,0x2fd1,0x2fd5,0x2d15,0x2fd9,0x2fdd,0x2fe1,0x2fe5,0x2fe9,0x2fed,0x2fed,0x2ff1,
-0x2ff5,0x2ff9,0x2ffd,0x3001,0x3005,0x3009,0x300d,0x2f1d,0x3011,0x3015,0x3019,0x301d,0x3021,0x3027,1,1,
-0x302b,0x302f,0x3033,0x3037,0x303b,0x303f,0x3043,0x3047,0x2f55,0x304b,0x304f,0x3053,0x2ee5,0x3057,0x305b,0x305f,
-0x3063,0x3067,0x306b,0x306f,0x3073,0x3077,0x307b,0x307f,0x3083,0x2f79,0x3087,0x2f7d,0x308b,0x308f,0x3093,0x3097,
-0x309b,0x2ee9,0x2b65,0x309f,0x30a3,0x30a7,0x2c7d,0x2dd9,0x30ab,0x30af,0x2f99,0x30b3,0x2f9d,0x30b7,0x30bb,0x30bf,
-0x2ef1,0x30c3,0x30c7,0x30cb,0x30cf,0x30d3,0x2ef5,0x30d7,0x30db,0x30df,0x30e3,0x30e7,0x30eb,0x2fd5,0x30ef,0x30f3,
-0x2d15,0x30f7,0x2fe5,0x30fb,0x30ff,0x3103,0x3107,0x310b,0x2ff9,0x310f,0x2f19,0x3113,0x2ffd,0x2c31,0x3117,0x3001,
-0x311b,0x3009,0x311f,0x3123,0x3127,0x312b,0x312f,0x3011,0x2f09,0x3133,0x3015,0x3137,0x3019,0x313b,0x2ae1,0x313f,
-0x3145,0x314b,0x3151,0x3155,0x3159,0x315d,0x3163,0x3169,0x316f,0x3173,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,0x3176,0xfe34,0x317c,1,1,1,1,
-1,1,1,1,1,1,0x3182,0x3188,0x3190,0x319a,0x31a2,0x31a8,0x31ae,0x31b4,0x31ba,0x31c0,
-0x31c6,0x31cc,0x31d2,1,0x31d8,0x31de,0x31e4,0x31ea,0x31f0,1,0x31f6,1,0x31fc,0x3202,1,0x3208,
-0x320e,1,0x3214,0x321a,0x3220,0x3226,0x322c,0x3232,0x3238,0x323e,0x3244,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,
-0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,0xffcc,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,0xffb8,1,1,0xffb8,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,
-0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,0xffb8,1,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,0xffcc,0xfe02,0xffb8,1,
-1,1,1,0xfe12,1,1,1,1,1,0xffcc,0xffb8,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,0xa94,0x2959,0xa9a,0x2963,1,1,1,1,1,1,1,
-1,0xaa0,1,1,1,1,1,0x296d,1,1,1,1,1,1,1,1,
-1,1,1,1,1,0xfe12,0xfc0e,1,1,1,1,1,0xffcc,0xffcc,0xffcc,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfc00,
-1,1,1,1,1,1,0x2977,0x2981,1,0xaa6,0xaac,0xfe12,0xfe12,1,1,1,
-1,1,1,1,1,1,1,1,0xfe12,1,1,1,1,1,1,1,
-1,1,0xfe0e,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,0xfe12,0xfe0e,1,1,1,1,1,
-1,1,1,1,1,0xfe0e,0xfe12,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xab2,
-1,1,1,0x298b,0x2995,0xfe12,1,1,1,1,1,1,1,1,1,0xfc00,
-1,1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
-0xffcc,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,
-1,1,1,1,1,1,0xfe12,1,1,1,0xfe0e,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,0xfc00,1,1,1,1,1,1,1,1,0xabe,0xfc00,0x299f,
-0x29a9,0xfc00,0x29b3,1,1,1,0xfe12,0xfe0e,1,1,1,1,1,1,1,1,
+0xfe12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,
+0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,0xfc00,1,1,1,1,1,1,1,1,
-0xad0,0xad6,0x29bd,0x29c7,1,1,1,0xfe12,0xfe0e,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,0xfe12,0xfe0e,1,1,1,1,
-1,1,1,1,1,1,1,0xfe12,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,0xffb8,0xffb8,0xffb8,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe12,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,0xfe12,1,1,1,1,1,1,1,1,0xfe0e,1,0xfe12,0xfe12,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xffcc,
+1,0xffcc,0xffcc,0xffb8,1,1,0xffcc,0xffcc,1,1,1,1,1,0xffcc,0xffcc,1,
+0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,0xfe02,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,0x324a,0x3254,0x3268,0x3280,0x3298,0x32b0,0x32c8,0xffb0,0xffb0,0xfe02,
-0xfe02,0xfe02,1,1,1,0xffc4,0xffb0,0xffb0,0xffb0,0xffb0,0xffb0,1,1,1,1,1,
-1,1,1,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,1,1,0xffcc,0xffcc,0xffcc,
-0xffcc,0xffcc,0xffb8,0xffb8,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,1,1,
-1,1,1,1,1,1,1,1,1,1,1,0x32d6,0x32e0,0x32f4,0x330c,0x3324,
-0x333c,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
-0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
-0xffcc,0xffcc,1,0xffcc,0xffcc,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,1,1,1,1,1,1,1,1,1,
-0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xfe0e,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,0x334b,0x334f,0x3353,0x3357,
-0x335d,0x2f3d,0x3361,0x3365,0x3369,0x336d,0x2f41,0x3371,0x3375,0x3379,0x2f45,0x337f,0x3383,0x3387,0x338b,0x3391,
-0x3395,0x3399,0x339d,0x33a3,0x33a7,0x33ab,0x33af,0x302f,0x33b3,0x33b9,0x33bd,0x33c1,0x33c5,0x33c9,0x33cd,0x33d1,
-0x33d5,0x3043,0x2f49,0x2f4d,0x3047,0x33d9,0x33dd,0x2c49,0x33e1,0x2f51,0x33e5,0x33e9,0x33ed,0x33f1,0x33f1,0x33f1,
-0x33f5,0x33fb,0x33ff,0x3403,0x3407,0x340d,0x3411,0x3415,0x3419,0x341d,0x3421,0x3425,0x3429,0x342d,0x3431,0x3435,
-0x3439,0x343d,0x343d,0x304f,0x3441,0x3445,0x3449,0x344d,0x2f59,0x3451,0x3455,0x3459,0x2ead,0x345d,0x3461,0x3465,
-0x3469,0x346d,0x3471,0x3475,0x3479,0x347d,0x3483,0x3487,0x348b,0x348f,0x3493,0x3497,0x349b,0x34a1,0x34a7,0x34ab,
-0x34af,0x34b3,0x34b7,0x34bb,0x34bf,0x34c3,0x34c7,0x34c7,0x34cb,0x34d1,0x34d5,0x2c39,0x34d9,0x34dd,0x34e3,0x34e7,
-0x34eb,0x34ef,0x34f3,0x34f7,0x2f6d,0x34fb,0x34ff,0x3503,0x3509,0x350d,0x3513,0x3517,0x351b,0x351f,0x3523,0x3527,
-0x352b,0x352f,0x3533,0x3537,0x353b,0x353f,0x3545,0x3549,0x354d,0x3551,0x2b61,0x3555,0x355b,0x355f,0x355f,0x3565,
-0x3569,0x3569,0x356d,0x3571,0x3577,0x357d,0x3581,0x3585,0x3589,0x358d,0x3591,0x3595,0x3599,0x359d,0x35a1,0x2f71,
-0x35a5,0x35ab,0x35af,0x35b3,0x307f,0x35b3,0x35b7,0x2f79,0x35bb,0x35bf,0x35c3,0x35c7,0x2f7d,0x2af5,0x35cb,0x35cf,
-0x35d3,0x35d7,0x35db,0x35df,0x35e3,0x35e9,0x35ed,0x35f1,0x35f5,0x35f9,0x35fd,0x3603,0x3607,0x360b,0x360f,0x3613,
-0x3617,0x361b,0x361f,0x3623,0x2f81,0x3627,0x362b,0x3631,0x3635,0x3639,0x363d,0x2f89,0x3641,0x3645,0x3649,0x364d,
-0x3651,0x3655,0x3659,0x365d,0x2b65,0x309f,0x3661,0x3665,0x3669,0x366d,0x3673,0x3677,0x367b,0x367f,0x2f8d,0x3683,
-0x3689,0x368d,0x3691,0x3151,0x3695,0x3699,0x369d,0x36a1,0x36a5,0x36ab,0x36af,0x36b3,0x36b7,0x36bd,0x36c1,0x36c5,
-0x36c9,0x2c7d,0x36cd,0x36d1,0x36d7,0x36dd,0x36e3,0x36e7,0x36ed,0x36f1,0x36f5,0x36f9,0x36fd,0x2f91,0x2dd9,0x3701,
-0x3705,0x3709,0x370d,0x3713,0x3717,0x371b,0x371f,0x30af,0x3723,0x3727,0x372d,0x3731,0x3735,0x373b,0x3741,0x3745,
-0x30b3,0x3749,0x374d,0x3751,0x3755,0x3759,0x375d,0x3761,0x3767,0x376b,0x3771,0x3775,0x377b,0x30bb,0x377f,0x3783,
-0x3789,0x378d,0x3791,0x3797,0x379d,0x37a1,0x37a5,0x37a9,0x37ad,0x37ad,0x37b1,0x37b5,0x30c3,0x37b9,0x37bd,0x37c1,
-0x37c5,0x37c9,0x37cf,0x37d3,0x2c45,0x37d9,0x37df,0x37e3,0x37e9,0x37ef,0x37f5,0x37f9,0x30db,0x37fd,0x3803,0x3809,
-0x380f,0x3815,0x3819,0x3819,0x30df,0x3159,0x381d,0x3821,0x3825,0x3829,0x382f,0x2bad,0x30e7,0x3833,0x3837,0x2fbd,
-0x383d,0x3843,0x2f05,0x3849,0x384d,0x2fcd,0x3851,0x3855,0x3859,0x385f,0x385f,0x3865,0x3869,0x386d,0x3873,0x3877,
-0x387b,0x387f,0x3885,0x3889,0x388d,0x3891,0x3895,0x3899,0x389f,0x38a3,0x38a7,0x38ab,0x38af,0x38b3,0x38b7,0x38bd,
-0x38c3,0x38c7,0x38cd,0x38d1,0x38d7,0x38db,0x2fe5,0x38df,0x38e5,0x38eb,0x38ef,0x38f5,0x38f9,0x38ff,0x3903,0x3907,
-0x390b,0x390f,0x3913,0x3917,0x391d,0x3923,0x3929,0x3565,0x392f,0x3933,0x3937,0x393b,0x393f,0x3943,0x3947,0x394b,
-0x394f,0x3953,0x3957,0x395b,0x2c8d,0x3961,0x3965,0x3969,0x396d,0x3971,0x3975,0x2ff1,0x3979,0x397d,0x3981,0x3985,
-0x3989,0x398f,0x3995,0x399b,0x399f,0x39a3,0x39a7,0x39ab,0x39b1,0x39b5,0x39bb,0x39bf,0x39c3,0x39c9,0x39cf,0x39d3,
-0x2b99,0x39d7,0x39db,0x39df,0x39e3,0x39e7,0x39eb,0x3103,0x39ef,0x39f3,0x39f7,0x39fb,0x39ff,0x3a03,0x3a07,0x3a0b,
-0x3a0f,0x3a13,0x3a19,0x3a1d,0x3a21,0x3a25,0x3a29,0x3a2d,0x3a33,0x3a39,0x3a3d,0x3a41,0x3117,0x311b,0x3a45,0x3a49,
-0x3a4f,0x3a53,0x3a57,0x3a5b,0x3a5f,0x3a65,0x3a6b,0x3a6f,0x3a73,0x3a77,0x3a7d,0x311f,0x3a81,0x3a87,0x3a8d,0x3a91,
-0x3a95,0x3a99,0x3a9f,0x3aa3,0x3aa7,0x3aab,0x3aaf,0x3ab3,0x3ab7,0x3abb,0x3ac1,0x3ac5,0x3ac9,0x3acd,0x3ad3,0x3ad7,
-0x3adb,0x3adf,0x3ae3,0x3ae9,0x3aef,0x3af3,0x3af7,0x3afb,0x3b01,0x3b05,0x3137,0x3137,0x3b0b,0x3b0f,0x3b15,0x3b19,
-0x3b1d,0x3b21,0x3b25,0x3b29,0x3b2d,0x3b31,0x313b,0x3b37,0x3b3b,0x3b3f,0x3b43,0x3b47,0x3b4b,0x3b51,0x3b55,0x3b5b,
-0x3b61,0x3b67,0x3b6b,0x3b6f,0x3b73,0x3b77,0x3b7b,0x3b7f,0x3b83,0x3b87,1,1,2,2,2,2,
-2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe00,0xfe00,0xfe00,
-0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,
-0xfe00,0xfe00,1,1,1,1,1,1,1,1,1,1,0xfe00,0xfe00,0xfe00,0xfe00,
-0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,
-0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,0xadc,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,
+1,1,1,1,1,0xfe12,1,1,1,1,1,1,1,1,1,0xadc,
0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,
-0xadc,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,
-0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,0x1283,0x1283,0x1283,0x1283,0xadc,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,
+0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0xadc,0x1283,0x1283,0x1283,0x1283,
0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,
-0x1283,0x1283,0x1283,0x1283,0x3c54,1,0x3c54,1,0x3c54,0x3c54,0x3c54,0x3c54,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x3c54,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x3c54,
-1,1,1,1,0x3c54,1,1,1,0x3c54,1,0x3c54,1,1,1,1,1,
+0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0xadc,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,
+0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,
+0x1283,0x1283,0x1283,0xadc,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,
+0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,0x3c56,1,0x3c56,0x3c56,0x3c56,
+0x3c56,0x3c56,0x3c56,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,0x3c56,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,0x3c56,1,1,1,1,0x3c56,
+1,1,1,0x3c56,1,0x3c56,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,0x3b87,1,0x2ac5,0x2ac9,0x2acd,0x2ad1,0x2ad5,0x2ad9,0x2add,0x2ae1,0x2ae1,0x2ae5,
+0x2ae9,0x2aed,0x2af1,0x2af5,0x2af9,0x2afd,0x2b01,0x2b05,0x2b09,0x2b0d,0x2b11,0x2b15,0x2b19,0x2b1d,0x2b21,0x2b25,
+0x2b29,0x2b2d,0x2b31,0x2b35,0x2b39,0x2b3d,0x2b41,0x2b45,0x2b49,0x2b4d,0x2b51,0x2b55,0x2b59,0x2b5d,0x2b61,0x2b65,
+0x2b69,0x2b6d,0x2b71,0x2b75,0x2b79,0x2b7d,0x2b81,0x2b85,0x2b89,0x2b8d,0x2b91,0x2b95,0x2b99,0x2b9d,0x2ba1,0x2ba5,
+0x2ba9,0x2bad,0x2bb1,0x2bb5,0x2bb9,0x2bbd,0x2bc1,0x2bc5,0x2bc9,0x2bcd,0x2bd1,0x2bd5,0x2bd9,0x2bdd,0x2be1,0x2be5,
+0x2be9,0x2bed,0x2bf1,0x2bf5,0x2bf9,0x2bfd,0x2c01,0x2c05,0x2c09,0x2c0d,0x2c11,0x2c15,0x2c19,0x2c1d,0x2c21,0x2c25,
+0x2c29,0x2c2d,0x2b11,0x2c31,0x2c35,0x2c39,0x2c3d,0x2c41,0x2c45,0x2c49,0x2c4d,0x2c51,0x2c55,0x2c59,0x2c5d,0x2c61,
+0x2c65,0x2c69,0x2c6d,0x2c71,0x2c75,0x2c79,0x2c7d,0x2c81,0x2c85,0x2c89,0x2c8d,0x2c91,0x2c95,0x2c99,0x2c9d,0x2ca1,
+0x2ca5,0x2ca9,0x2cad,0x2cb1,0x2cb5,0x2cb9,0x2cbd,0x2cc1,0x2cc5,0x2cc9,0x2ccd,0x2cd1,0x2cd5,0x2cd9,0x2cdd,0x2ce1,
+0x2ce5,0x2ce9,0x2ced,0x2cf1,0x2cf5,0x2cf9,0x2cfd,0x2d01,0x2d05,0x2d09,0x2d0d,0x2d11,0x2d15,0x2d19,0x2d1d,0x2d21,
+0x2d25,0x2d29,0x2d2d,0x2d31,0x2d35,0x2d39,0x2d3d,0x2c79,0x2d41,0x2d45,0x2d49,0x2d4d,0x2d51,0x2d55,0x2d59,0x2d5d,
+0x2c39,0x2d61,0x2d65,0x2d69,0x2d6d,0x2d71,0x2d75,0x2d79,0x2d7d,0x2d81,0x2d85,0x2d89,0x2d8d,0x2d91,0x2d95,0x2d99,
+0x2d9d,0x2da1,0x2da5,0x2da9,0x2dad,0x2b11,0x2db1,0x2db5,0x2db9,0x2dbd,0x2dc1,0x2dc5,0x2dc9,0x2dcd,0x2dd1,0x2dd5,
+0x2dd9,0x2ddd,0x2de1,0x2de5,0x2de9,0x2ded,0x2df1,0x2df5,0x2df9,0x2dfd,0x2e01,0x2e05,0x2e09,0x2e0d,0x2e11,0x2e15,
+0x2e19,0x2c41,0x2e1d,0x2e21,0x2e25,0x2e29,0x2e2d,0x2e31,0x2e35,0x2e39,0x2e3d,0x2e41,0x2e45,0x2e49,0x2e4d,0x2e51,
+0x2e55,0x2e59,0x2e5d,0x2e61,0x2e65,0x2e69,0x2e6d,0x2e71,0x2e75,0x2e79,0x2e7d,0x2e81,0x2e85,0x2e89,0x2e8d,0x2e91,
+0x2e95,0x2e99,0x2e9d,0x2ea1,0x2ea5,0x2ea9,0x2ead,0x2eb1,0x2eb5,0x2eb9,0x2ebd,0x2ec1,0x2ec5,0x2ec9,0x2ecd,0x2ed1,
+0x2ed5,0x2ed9,0x2edd,0x2ee1,1,1,0x2ee5,1,0x2ee9,1,1,0x2eed,0x2ef1,0x2ef5,0x2ef9,0x2efd,
+0x2f01,0x2f05,0x2f09,0x2f0d,0x2f11,1,0x2f15,1,0x2f19,1,1,0x2f1d,0x2f21,1,1,1,
+0x2f25,0x2f29,0x2f2d,0x2f31,0x2f35,0x2f39,0x2f3d,0x2f41,0x2f45,0x2f49,0x2f4d,0x2f51,0x2f55,0x2f59,0x2f5d,0x2f61,
+0x2f65,0x2f69,0x2f6d,0x2f71,0x2f75,0x2f79,0x2f7d,0x2f81,0x2f85,0x2f89,0x2f8d,0x2f91,0x2f95,0x2f99,0x2f9d,0x2fa1,
+0x2fa5,0x2fa9,0x2fad,0x2fb1,0x2fb5,0x2fb9,0x2fbd,0x2fc1,0x2fc5,0x2fc9,0x2fcd,0x2fd1,0x2fd5,0x2d15,0x2fd9,0x2fdd,
+0x2fe1,0x2fe5,0x2fe9,0x2fed,0x2fed,0x2ff1,0x2ff5,0x2ff9,0x2ffd,0x3001,0x3005,0x3009,0x300d,0x2f1d,0x3011,0x3015,
+0x3019,0x301d,0x3021,0x3027,1,1,0x302b,0x302f,0x3033,0x3037,0x303b,0x303f,0x3043,0x3047,0x2f55,0x304b,
+0x304f,0x3053,0x2ee5,0x3057,0x305b,0x305f,0x3063,0x3067,0x306b,0x306f,0x3073,0x3077,0x307b,0x307f,0x3083,0x2f79,
+0x3087,0x2f7d,0x308b,0x308f,0x3093,0x3097,0x309b,0x2ee9,0x2b65,0x309f,0x30a3,0x30a7,0x2c7d,0x2dd9,0x30ab,0x30af,
+0x2f99,0x30b3,0x2f9d,0x30b7,0x30bb,0x30bf,0x2ef1,0x30c3,0x30c7,0x30cb,0x30cf,0x30d3,0x2ef5,0x30d7,0x30db,0x30df,
+0x30e3,0x30e7,0x30eb,0x2fd5,0x30ef,0x30f3,0x2d15,0x30f7,0x2fe5,0x30fb,0x30ff,0x3103,0x3107,0x310b,0x2ff9,0x310f,
+0x2f19,0x3113,0x2ffd,0x2c31,0x3117,0x3001,0x311b,0x3009,0x311f,0x3123,0x3127,0x312b,0x312f,0x3011,0x2f09,0x3133,
+0x3015,0x3137,0x3019,0x313b,0x2ae1,0x313f,0x3145,0x314b,0x3151,0x3155,0x3159,0x315d,0x3163,0x3169,0x316f,0x3173,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0x3176,0xfe34,0x317c,1,1,1,1,1,1,1,
+1,1,1,0x3182,0x3188,0x3190,0x319a,0x31a2,0x31a8,0x31ae,0x31b4,0x31ba,0x31c0,0x31c6,0x31cc,0x31d2,
+1,0x31d8,0x31de,0x31e4,0x31ea,0x31f0,1,0x31f6,1,0x31fc,0x3202,1,0x3208,0x320e,1,0x3214,
+0x321a,0x3220,0x3226,0x322c,0x3232,0x3238,0x323e,0x3244,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,0x3b87,1,1,1,1,1
+1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
+0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,0xffcc,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,0xffb8,1,0xffcc,1,1,1,1,
+1,1,1,1,0xffcc,0xfe02,0xffb8,1,1,1,1,0xfe12,1,1,1,1,
+0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,0xffb8,0xffb8,0xffcc,0xffcc,
+0xffcc,0xffb8,0xffcc,0xffb8,0xffb8,0xffb8,1,1,1,1,1,1,1,1,1,0xa94,
+0x2959,0xa9a,0x2963,1,1,1,1,1,0xaa0,1,1,1,1,1,0x296d,1,
+1,1,1,1,1,1,1,1,0xfe12,0xfc0e,1,1,1,1,1,1,
+1,0xfc00,1,1,1,1,1,1,0x2977,0x2981,1,0xaa6,0xaac,0xfe12,0xfe12,1,
+1,1,1,1,1,1,1,1,1,1,0xfe12,1,1,1,1,1,
+1,1,1,1,0xfe0e,1,1,1,1,1,0xfe12,0xfe0e,1,1,1,1,
+1,1,1,1,1,0xfe0e,0xfe12,1,1,1,1,1,1,1,1,1,
+1,1,0xfe0e,0xfe0e,1,0xfc00,1,1,1,1,1,1,1,0xab2,1,1,
+1,0x298b,0x2995,0xfe12,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
+0xffcc,1,1,1,0xfe12,1,1,1,0xfe0e,1,1,1,1,1,1,1,
+1,1,0xfc00,1,1,1,1,1,1,1,1,0xabe,0xfc00,0x299f,0x29a9,0xfc00,
+0x29b3,1,1,0xfe12,0xfe0e,1,1,1,1,1,1,1,1,1,1,1,
+1,0xad0,0xad6,0x29bd,0x29c7,1,1,1,0xfe12,0xfe0e,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,0xfe12,0xfe0e,1,1,1,1,1,
+1,1,1,0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0xfe02,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,0x324a,0x3254,0x3268,0x3280,0x3298,0x32b0,0x32c8,0xffb0,0xffb0,0xfe02,0xfe02,
+0xfe02,1,1,1,0xffc4,0xffb0,0xffb0,0xffb0,1,1,1,1,1,1,1,1,
+0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,1,1,
+1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,
+1,1,1,1,1,1,1,0x32d6,0x32e0,0x32f4,0x330c,0x3324,0x333c,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,
+0xffcc,0xffcc,0xffcc,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,0xffcc,
+0xffcc,0xffcc,0xffcc,0xffcc,1,0xffcc,0xffcc,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,
+1,1,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,1,1,1,1,1,1,1,
+1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xfe0e,1,1,1,1,1,0x334b,0x334f,
+0x3353,0x3357,0x335d,0x2f3d,0x3361,0x3365,0x3369,0x336d,0x2f41,0x3371,0x3375,0x3379,0x2f45,0x337f,0x3383,0x3387,
+0x338b,0x3391,0x3395,0x3399,0x339d,0x33a3,0x33a7,0x33ab,0x33af,0x302f,0x33b3,0x33b9,0x33bd,0x33c1,0x33c5,0x33c9,
+0x33cd,0x33d1,0x33d5,0x3043,0x2f49,0x2f4d,0x3047,0x33d9,0x33dd,0x2c49,0x33e1,0x2f51,0x33e5,0x33e9,0x33ed,0x33f1,
+0x33f1,0x33f1,0x33f5,0x33fb,0x33ff,0x3403,0x3407,0x340d,0x3411,0x3415,0x3419,0x341d,0x3421,0x3425,0x3429,0x342d,
+0x3431,0x3435,0x3439,0x343d,0x343d,0x304f,0x3441,0x3445,0x3449,0x344d,0x2f59,0x3451,0x3455,0x3459,0x2ead,0x345d,
+0x3461,0x3465,0x3469,0x346d,0x3471,0x3475,0x3479,0x347d,0x3483,0x3487,0x348b,0x348f,0x3493,0x3497,0x349b,0x34a1,
+0x34a7,0x34ab,0x34af,0x34b3,0x34b7,0x34bb,0x34bf,0x34c3,0x34c7,0x34c7,0x34cb,0x34d1,0x34d5,0x2c39,0x34d9,0x34dd,
+0x34e3,0x34e7,0x34eb,0x34ef,0x34f3,0x34f7,0x2f6d,0x34fb,0x34ff,0x3503,0x3509,0x350d,0x3513,0x3517,0x351b,0x351f,
+0x3523,0x3527,0x352b,0x352f,0x3533,0x3537,0x353b,0x353f,0x3545,0x3549,0x354d,0x3551,0x2b61,0x3555,0x355b,0x355f,
+0x355f,0x3565,0x3569,0x3569,0x356d,0x3571,0x3577,0x357d,0x3581,0x3585,0x3589,0x358d,0x3591,0x3595,0x3599,0x359d,
+0x35a1,0x2f71,0x35a5,0x35ab,0x35af,0x35b3,0x307f,0x35b3,0x35b7,0x2f79,0x35bb,0x35bf,0x35c3,0x35c7,0x2f7d,0x2af5,
+0x35cb,0x35cf,0x35d3,0x35d7,0x35db,0x35df,0x35e3,0x35e9,0x35ed,0x35f1,0x35f5,0x35f9,0x35fd,0x3603,0x3607,0x360b,
+0x360f,0x3613,0x3617,0x361b,0x361f,0x3623,0x2f81,0x3627,0x362b,0x3631,0x3635,0x3639,0x363d,0x2f89,0x3641,0x3645,
+0x3649,0x364d,0x3651,0x3655,0x3659,0x365d,0x2b65,0x309f,0x3661,0x3665,0x3669,0x366d,0x3673,0x3677,0x367b,0x367f,
+0x2f8d,0x3683,0x3689,0x368d,0x3691,0x3151,0x3695,0x3699,0x369d,0x36a1,0x36a5,0x36ab,0x36af,0x36b3,0x36b7,0x36bd,
+0x36c1,0x36c5,0x36c9,0x2c7d,0x36cd,0x36d1,0x36d7,0x36dd,0x36e3,0x36e7,0x36ed,0x36f1,0x36f5,0x36f9,0x36fd,0x2f91,
+0x2dd9,0x3701,0x3705,0x3709,0x370d,0x3713,0x3717,0x371b,0x371f,0x30af,0x3723,0x3727,0x372d,0x3731,0x3735,0x373b,
+0x3741,0x3745,0x30b3,0x3749,0x374d,0x3751,0x3755,0x3759,0x375d,0x3761,0x3767,0x376b,0x3771,0x3775,0x377b,0x30bb,
+0x377f,0x3783,0x3789,0x378d,0x3791,0x3797,0x379d,0x37a1,0x37a5,0x37a9,0x37ad,0x37ad,0x37b1,0x37b5,0x30c3,0x37b9,
+0x37bd,0x37c1,0x37c5,0x37c9,0x37cf,0x37d3,0x2c45,0x37d9,0x37df,0x37e3,0x37e9,0x37ef,0x37f5,0x37f9,0x30db,0x37fd,
+0x3803,0x3809,0x380f,0x3815,0x3819,0x3819,0x30df,0x3159,0x381d,0x3821,0x3825,0x3829,0x382f,0x2bad,0x30e7,0x3833,
+0x3837,0x2fbd,0x383d,0x3843,0x2f05,0x3849,0x384d,0x2fcd,0x3851,0x3855,0x3859,0x385f,0x385f,0x3865,0x3869,0x386d,
+0x3873,0x3877,0x387b,0x387f,0x3885,0x3889,0x388d,0x3891,0x3895,0x3899,0x389f,0x38a3,0x38a7,0x38ab,0x38af,0x38b3,
+0x38b7,0x38bd,0x38c3,0x38c7,0x38cd,0x38d1,0x38d7,0x38db,0x2fe5,0x38df,0x38e5,0x38eb,0x38ef,0x38f5,0x38f9,0x38ff,
+0x3903,0x3907,0x390b,0x390f,0x3913,0x3917,0x391d,0x3923,0x3929,0x3565,0x392f,0x3933,0x3937,0x393b,0x393f,0x3943,
+0x3947,0x394b,0x394f,0x3953,0x3957,0x395b,0x2c8d,0x3961,0x3965,0x3969,0x396d,0x3971,0x3975,0x2ff1,0x3979,0x397d,
+0x3981,0x3985,0x3989,0x398f,0x3995,0x399b,0x399f,0x39a3,0x39a7,0x39ab,0x39b1,0x39b5,0x39bb,0x39bf,0x39c3,0x39c9,
+0x39cf,0x39d3,0x2b99,0x39d7,0x39db,0x39df,0x39e3,0x39e7,0x39eb,0x3103,0x39ef,0x39f3,0x39f7,0x39fb,0x39ff,0x3a03,
+0x3a07,0x3a0b,0x3a0f,0x3a13,0x3a19,0x3a1d,0x3a21,0x3a25,0x3a29,0x3a2d,0x3a33,0x3a39,0x3a3d,0x3a41,0x3117,0x311b,
+0x3a45,0x3a49,0x3a4f,0x3a53,0x3a57,0x3a5b,0x3a5f,0x3a65,0x3a6b,0x3a6f,0x3a73,0x3a77,0x3a7d,0x311f,0x3a81,0x3a87,
+0x3a8d,0x3a91,0x3a95,0x3a99,0x3a9f,0x3aa3,0x3aa7,0x3aab,0x3aaf,0x3ab3,0x3ab7,0x3abb,0x3ac1,0x3ac5,0x3ac9,0x3acd,
+0x3ad3,0x3ad7,0x3adb,0x3adf,0x3ae3,0x3ae9,0x3aef,0x3af3,0x3af7,0x3afb,0x3b01,0x3b05,0x3137,0x3137,0x3b0b,0x3b0f,
+0x3b15,0x3b19,0x3b1d,0x3b21,0x3b25,0x3b29,0x3b2d,0x3b31,0x313b,0x3b37,0x3b3b,0x3b3f,0x3b43,0x3b47,0x3b4b,0x3b51,
+0x3b55,0x3b5b,0x3b61,0x3b67,0x3b6b,0x3b6f,0x3b73,0x3b77,0x3b7b,0x3b7f,0x3b83,0x3b87,1,1
+};
+
+static const UCPTrie norm2_nfc_data_trie={
+ norm2_nfc_data_trieIndex,
+ { norm2_nfc_data_trieData },
+ 1690, 7822,
+ 0x2fc00, 0x30,
+ 0, 0,
+ 0, 0,
+ 0xc4, 0x226,
+ 0x1,
};
static const uint16_t norm2_nfc_data_extraData[7724]={
@@ -1120,7 +1118,7 @@ static const uint16_t norm2_nfc_data_extraData[7724]={
};
static const uint8_t norm2_nfc_data_smallFCD[256]={
-0xc0,0xef,3,0x7f,0xdf,0x70,0xcf,0x87,0xc7,0x66,0x66,0x46,0x64,0x46,0x66,0x5b,
+0xc0,0xef,3,0x7f,0xdf,0x70,0xcf,0x87,0xc7,0xe6,0x66,0x46,0x64,0x46,0x66,0x5b,
0x12,0,0,4,0,0,0,0x43,0x20,2,0x29,0xae,0xc2,0xc0,0xff,0xff,
0xc0,0x72,0xbf,0,0,0,0,0,0,0,0x40,0,0x80,0x88,0,0,
0xfe,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
@@ -1138,19 +1136,4 @@ static const uint8_t norm2_nfc_data_smallFCD[256]={
0,0,0,0,0,0,0,0,0,0,0,7,0,0,2,0
};
-static const UTrie2 norm2_nfc_data_trie={
- norm2_nfc_data_trieIndex,
- norm2_nfc_data_trieIndex+2720,
- NULL,
- 2720,
- 7056,
- 0x188,
- 0xb1c,
- 0x1,
- 0x1,
- 0x30000,
- 0x262c,
- NULL, 0, FALSE, FALSE, 0, NULL
-};
-
#endif // INCLUDED_FROM_NORMALIZER2_CPP
diff --git a/Build/source/libs/icu/icu-src/source/common/normalizer2.cpp b/Build/source/libs/icu/icu-src/source/common/normalizer2.cpp
index 0f12dfcff42..6be7e0b21a2 100644
--- a/Build/source/libs/icu/icu-src/source/common/normalizer2.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/normalizer2.cpp
@@ -34,9 +34,11 @@
using icu::Normalizer2Impl;
+#if NORM2_HARDCODE_NFC_DATA
// NFC/NFD data machine-generated by gennorm2 --csource
#define INCLUDED_FROM_NORMALIZER2_CPP
#include "norm2_nfc_data.h"
+#endif
U_NAMESPACE_BEGIN
@@ -176,6 +178,36 @@ FCDNormalizer2::~FCDNormalizer2() {}
// instance cache ---------------------------------------------------------- ***
+U_CDECL_BEGIN
+static UBool U_CALLCONV uprv_normalizer2_cleanup();
+U_CDECL_END
+
+static Normalizer2 *noopSingleton;
+static icu::UInitOnce noopInitOnce = U_INITONCE_INITIALIZER;
+
+static void U_CALLCONV initNoopSingleton(UErrorCode &errorCode) {
+ if(U_FAILURE(errorCode)) {
+ return;
+ }
+ noopSingleton=new NoopNormalizer2;
+ if(noopSingleton==NULL) {
+ errorCode=U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+ ucln_common_registerCleanup(UCLN_COMMON_NORMALIZER2, uprv_normalizer2_cleanup);
+}
+
+const Normalizer2 *Normalizer2Factory::getNoopInstance(UErrorCode &errorCode) {
+ if(U_FAILURE(errorCode)) { return NULL; }
+ umtx_initOnce(noopInitOnce, &initNoopSingleton, errorCode);
+ return noopSingleton;
+}
+
+const Normalizer2Impl *
+Normalizer2Factory::getImpl(const Normalizer2 *norm2) {
+ return &((Normalizer2WithImpl *)norm2)->impl;
+}
+
Norm2AllModes::~Norm2AllModes() {
delete impl;
}
@@ -195,6 +227,7 @@ Norm2AllModes::createInstance(Normalizer2Impl *impl, UErrorCode &errorCode) {
return allModes;
}
+#if NORM2_HARDCODE_NFC_DATA
Norm2AllModes *
Norm2AllModes::createNFCInstance(UErrorCode &errorCode) {
if(U_FAILURE(errorCode)) {
@@ -210,48 +243,15 @@ Norm2AllModes::createNFCInstance(UErrorCode &errorCode) {
return createInstance(impl, errorCode);
}
-U_CDECL_BEGIN
-static UBool U_CALLCONV uprv_normalizer2_cleanup();
-U_CDECL_END
-
static Norm2AllModes *nfcSingleton;
-static Normalizer2 *noopSingleton;
static icu::UInitOnce nfcInitOnce = U_INITONCE_INITIALIZER;
-static icu::UInitOnce noopInitOnce = U_INITONCE_INITIALIZER;
-// UInitOnce singleton initialization functions
static void U_CALLCONV initNFCSingleton(UErrorCode &errorCode) {
nfcSingleton=Norm2AllModes::createNFCInstance(errorCode);
ucln_common_registerCleanup(UCLN_COMMON_NORMALIZER2, uprv_normalizer2_cleanup);
}
-static void U_CALLCONV initNoopSingleton(UErrorCode &errorCode) {
- if(U_FAILURE(errorCode)) {
- return;
- }
- noopSingleton=new NoopNormalizer2;
- if(noopSingleton==NULL) {
- errorCode=U_MEMORY_ALLOCATION_ERROR;
- return;
- }
- ucln_common_registerCleanup(UCLN_COMMON_NORMALIZER2, uprv_normalizer2_cleanup);
-}
-
-U_CDECL_BEGIN
-
-static UBool U_CALLCONV uprv_normalizer2_cleanup() {
- delete nfcSingleton;
- nfcSingleton = NULL;
- delete noopSingleton;
- noopSingleton = NULL;
- nfcInitOnce.reset();
- noopInitOnce.reset();
- return TRUE;
-}
-
-U_CDECL_END
-
const Norm2AllModes *
Norm2AllModes::getNFCInstance(UErrorCode &errorCode) {
if(U_FAILURE(errorCode)) { return NULL; }
@@ -281,23 +281,29 @@ const Normalizer2 *Normalizer2Factory::getFCCInstance(UErrorCode &errorCode) {
return allModes!=NULL ? &allModes->fcc : NULL;
}
-const Normalizer2 *Normalizer2Factory::getNoopInstance(UErrorCode &errorCode) {
- if(U_FAILURE(errorCode)) { return NULL; }
- umtx_initOnce(noopInitOnce, &initNoopSingleton, errorCode);
- return noopSingleton;
-}
-
const Normalizer2Impl *
Normalizer2Factory::getNFCImpl(UErrorCode &errorCode) {
const Norm2AllModes *allModes=Norm2AllModes::getNFCInstance(errorCode);
return allModes!=NULL ? allModes->impl : NULL;
}
+#endif // NORM2_HARDCODE_NFC_DATA
-const Normalizer2Impl *
-Normalizer2Factory::getImpl(const Normalizer2 *norm2) {
- return &((Normalizer2WithImpl *)norm2)->impl;
+U_CDECL_BEGIN
+
+static UBool U_CALLCONV uprv_normalizer2_cleanup() {
+ delete noopSingleton;
+ noopSingleton = NULL;
+ noopInitOnce.reset();
+#if NORM2_HARDCODE_NFC_DATA
+ delete nfcSingleton;
+ nfcSingleton = NULL;
+ nfcInitOnce.reset();
+#endif
+ return TRUE;
}
+U_CDECL_END
+
U_NAMESPACE_END
// C API ------------------------------------------------------------------- ***
diff --git a/Build/source/libs/icu/icu-src/source/common/normalizer2impl.cpp b/Build/source/libs/icu/icu-src/source/common/normalizer2impl.cpp
index 15b4a528934..e7ae646c41a 100644
--- a/Build/source/libs/icu/icu-src/source/common/normalizer2impl.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/normalizer2impl.cpp
@@ -16,6 +16,8 @@
* created by: Markus W. Scherer
*/
+// #define UCPTRIE_DEBUG
+
#include "unicode/utypes.h"
#if !UCONFIG_NO_NORMALIZATION
@@ -24,7 +26,9 @@
#include "unicode/edits.h"
#include "unicode/normalizer2.h"
#include "unicode/stringoptions.h"
+#include "unicode/ucptrie.h"
#include "unicode/udata.h"
+#include "unicode/umutablecptrie.h"
#include "unicode/ustring.h"
#include "unicode/utf16.h"
#include "unicode/utf8.h"
@@ -34,8 +38,8 @@
#include "normalizer2impl.h"
#include "putilimp.h"
#include "uassert.h"
+#include "ucptrie_impl.h"
#include "uset_imp.h"
-#include "utrie2.h"
#include "uvector.h"
U_NAMESPACE_BEGIN
@@ -62,7 +66,7 @@ inline uint8_t leadByteForCP(UChar32 c) {
* Returns the code point from one single well-formed UTF-8 byte sequence
* between cpStart and cpLimit.
*
- * UTrie2 UTF-8 macros do not assemble whole code points (for efficiency).
+ * Trie UTF-8 macros do not assemble whole code points (for efficiency).
* When we do need the code point, we call this function.
* We should not need it for normalization-inert data (norm16==0).
* Illegal sequences yield the error value norm16==0 just like real normalization-inert code points.
@@ -122,7 +126,7 @@ int32_t getJamoTMinusBase(const uint8_t *src, const uint8_t *limit) {
}
} else if (src[1] == 0x87) {
uint8_t t = src[2];
- if ((int8_t)t <= (int8_t)0x82) {
+ if ((int8_t)t <= (int8_t)0x82u) {
return t - (0xa7 - 0x40);
}
}
@@ -253,7 +257,7 @@ UBool ReorderingBuffer::appendSupplementary(UChar32 c, uint8_t cc, UErrorCode &e
return TRUE;
}
-UBool ReorderingBuffer::append(const UChar *s, int32_t length,
+UBool ReorderingBuffer::append(const UChar *s, int32_t length, UBool isNFD,
uint8_t leadCC, uint8_t trailCC,
UErrorCode &errorCode) {
if(length==0) {
@@ -280,8 +284,11 @@ UBool ReorderingBuffer::append(const UChar *s, int32_t length,
while(i<length) {
U16_NEXT(s, i, length, c);
if(i<length) {
- // s must be in NFD, otherwise we need to use getCC().
- leadCC=Normalizer2Impl::getCCFromYesOrMaybe(impl.getNorm16(c));
+ if (isNFD) {
+ leadCC = Normalizer2Impl::getCCFromYesOrMaybe(impl.getRawNorm16(c));
+ } else {
+ leadCC = impl.getCC(impl.getNorm16(c));
+ }
} else {
leadCC=trailCC;
}
@@ -411,7 +418,8 @@ struct CanonIterData : public UMemory {
CanonIterData(UErrorCode &errorCode);
~CanonIterData();
void addToStartSet(UChar32 origin, UChar32 decompLead, UErrorCode &errorCode);
- UTrie2 *trie;
+ UMutableCPTrie *mutableTrie;
+ UCPTrie *trie;
UVector canonStartSets; // contains UnicodeSet *
};
@@ -420,22 +428,22 @@ Normalizer2Impl::~Normalizer2Impl() {
}
void
-Normalizer2Impl::init(const int32_t *inIndexes, const UTrie2 *inTrie,
+Normalizer2Impl::init(const int32_t *inIndexes, const UCPTrie *inTrie,
const uint16_t *inExtraData, const uint8_t *inSmallFCD) {
- minDecompNoCP=inIndexes[IX_MIN_DECOMP_NO_CP];
- minCompNoMaybeCP=inIndexes[IX_MIN_COMP_NO_MAYBE_CP];
- minLcccCP=inIndexes[IX_MIN_LCCC_CP];
-
- minYesNo=inIndexes[IX_MIN_YES_NO];
- minYesNoMappingsOnly=inIndexes[IX_MIN_YES_NO_MAPPINGS_ONLY];
- minNoNo=inIndexes[IX_MIN_NO_NO];
- minNoNoCompBoundaryBefore=inIndexes[IX_MIN_NO_NO_COMP_BOUNDARY_BEFORE];
- minNoNoCompNoMaybeCC=inIndexes[IX_MIN_NO_NO_COMP_NO_MAYBE_CC];
- minNoNoEmpty=inIndexes[IX_MIN_NO_NO_EMPTY];
- limitNoNo=inIndexes[IX_LIMIT_NO_NO];
- minMaybeYes=inIndexes[IX_MIN_MAYBE_YES];
- U_ASSERT((minMaybeYes&7)==0); // 8-aligned for noNoDelta bit fields
- centerNoNoDelta=(minMaybeYes>>DELTA_SHIFT)-MAX_DELTA-1;
+ minDecompNoCP = static_cast<UChar>(inIndexes[IX_MIN_DECOMP_NO_CP]);
+ minCompNoMaybeCP = static_cast<UChar>(inIndexes[IX_MIN_COMP_NO_MAYBE_CP]);
+ minLcccCP = static_cast<UChar>(inIndexes[IX_MIN_LCCC_CP]);
+
+ minYesNo = static_cast<uint16_t>(inIndexes[IX_MIN_YES_NO]);
+ minYesNoMappingsOnly = static_cast<uint16_t>(inIndexes[IX_MIN_YES_NO_MAPPINGS_ONLY]);
+ minNoNo = static_cast<uint16_t>(inIndexes[IX_MIN_NO_NO]);
+ minNoNoCompBoundaryBefore = static_cast<uint16_t>(inIndexes[IX_MIN_NO_NO_COMP_BOUNDARY_BEFORE]);
+ minNoNoCompNoMaybeCC = static_cast<uint16_t>(inIndexes[IX_MIN_NO_NO_COMP_NO_MAYBE_CC]);
+ minNoNoEmpty = static_cast<uint16_t>(inIndexes[IX_MIN_NO_NO_EMPTY]);
+ limitNoNo = static_cast<uint16_t>(inIndexes[IX_LIMIT_NO_NO]);
+ minMaybeYes = static_cast<uint16_t>(inIndexes[IX_MIN_MAYBE_YES]);
+ U_ASSERT((minMaybeYes & 7) == 0); // 8-aligned for noNoDelta bit fields
+ centerNoNoDelta = (minMaybeYes >> DELTA_SHIFT) - MAX_DELTA - 1;
normTrie=inTrie;
@@ -445,75 +453,8 @@ Normalizer2Impl::init(const int32_t *inIndexes, const UTrie2 *inTrie,
smallFCD=inSmallFCD;
}
-class LcccContext {
-public:
- LcccContext(const Normalizer2Impl &ni, UnicodeSet &s) : impl(ni), set(s) {}
-
- void handleRange(UChar32 start, UChar32 end, uint16_t norm16) {
- if (norm16 > Normalizer2Impl::MIN_NORMAL_MAYBE_YES &&
- norm16 != Normalizer2Impl::JAMO_VT) {
- set.add(start, end);
- } else if (impl.minNoNoCompNoMaybeCC <= norm16 && norm16 < impl.limitNoNo) {
- uint16_t fcd16=impl.getFCD16(start);
- if(fcd16>0xff) { set.add(start, end); }
- }
- }
-
-private:
- const Normalizer2Impl &impl;
- UnicodeSet &set;
-};
-
-namespace {
-
-struct PropertyStartsContext {
- PropertyStartsContext(const Normalizer2Impl &ni, const USetAdder *adder)
- : impl(ni), sa(adder) {}
-
- const Normalizer2Impl &impl;
- const USetAdder *sa;
-};
-
-} // namespace
-
U_CDECL_BEGIN
-static UBool U_CALLCONV
-enumLcccRange(const void *context, UChar32 start, UChar32 end, uint32_t value) {
- ((LcccContext *)context)->handleRange(start, end, (uint16_t)value);
- return TRUE;
-}
-
-static UBool U_CALLCONV
-enumNorm16PropertyStartsRange(const void *context, UChar32 start, UChar32 end, uint32_t value) {
- /* add the start code point to the USet */
- const PropertyStartsContext *ctx=(const PropertyStartsContext *)context;
- const USetAdder *sa=ctx->sa;
- sa->add(sa->set, start);
- if (start != end && ctx->impl.isAlgorithmicNoNo((uint16_t)value) &&
- (value & Normalizer2Impl::DELTA_TCCC_MASK) > Normalizer2Impl::DELTA_TCCC_1) {
- // Range of code points with same-norm16-value algorithmic decompositions.
- // They might have different non-zero FCD16 values.
- uint16_t prevFCD16=ctx->impl.getFCD16(start);
- while(++start<=end) {
- uint16_t fcd16=ctx->impl.getFCD16(start);
- if(fcd16!=prevFCD16) {
- sa->add(sa->set, start);
- prevFCD16=fcd16;
- }
- }
- }
- return TRUE;
-}
-
-static UBool U_CALLCONV
-enumPropertyStartsRange(const void *context, UChar32 start, UChar32 /*end*/, uint32_t /*value*/) {
- /* add the start code point to the USet */
- const USetAdder *sa=(const USetAdder *)context;
- sa->add(sa->set, start);
- return TRUE;
-}
-
static uint32_t U_CALLCONV
segmentStarterMapper(const void * /*context*/, uint32_t value) {
return value&CANON_NOT_SEGMENT_STARTER;
@@ -523,15 +464,44 @@ U_CDECL_END
void
Normalizer2Impl::addLcccChars(UnicodeSet &set) const {
- LcccContext context(*this, set);
- utrie2_enum(normTrie, NULL, enumLcccRange, &context);
+ UChar32 start = 0, end;
+ uint32_t norm16;
+ while ((end = ucptrie_getRange(normTrie, start, UCPMAP_RANGE_FIXED_LEAD_SURROGATES, INERT,
+ nullptr, nullptr, &norm16)) >= 0) {
+ if (norm16 > Normalizer2Impl::MIN_NORMAL_MAYBE_YES &&
+ norm16 != Normalizer2Impl::JAMO_VT) {
+ set.add(start, end);
+ } else if (minNoNoCompNoMaybeCC <= norm16 && norm16 < limitNoNo) {
+ uint16_t fcd16 = getFCD16(start);
+ if (fcd16 > 0xff) { set.add(start, end); }
+ }
+ start = end + 1;
+ }
}
void
Normalizer2Impl::addPropertyStarts(const USetAdder *sa, UErrorCode & /*errorCode*/) const {
- /* add the start code point of each same-value range of each trie */
- PropertyStartsContext context(*this, sa);
- utrie2_enum(normTrie, NULL, enumNorm16PropertyStartsRange, &context);
+ // Add the start code point of each same-value range of the trie.
+ UChar32 start = 0, end;
+ uint32_t value;
+ while ((end = ucptrie_getRange(normTrie, start, UCPMAP_RANGE_FIXED_LEAD_SURROGATES, INERT,
+ nullptr, nullptr, &value)) >= 0) {
+ sa->add(sa->set, start);
+ if (start != end && isAlgorithmicNoNo((uint16_t)value) &&
+ (value & Normalizer2Impl::DELTA_TCCC_MASK) > Normalizer2Impl::DELTA_TCCC_1) {
+ // Range of code points with same-norm16-value algorithmic decompositions.
+ // They might have different non-zero FCD16 values.
+ uint16_t prevFCD16 = getFCD16(start);
+ while (++start <= end) {
+ uint16_t fcd16 = getFCD16(start);
+ if (fcd16 != prevFCD16) {
+ sa->add(sa->set, start);
+ prevFCD16 = fcd16;
+ }
+ }
+ }
+ start = end + 1;
+ }
/* add Hangul LV syllables and LV+1 because of skippables */
for(UChar c=Hangul::HANGUL_BASE; c<Hangul::HANGUL_LIMIT; c+=Hangul::JAMO_T_COUNT) {
@@ -543,10 +513,15 @@ Normalizer2Impl::addPropertyStarts(const USetAdder *sa, UErrorCode & /*errorCode
void
Normalizer2Impl::addCanonIterPropertyStarts(const USetAdder *sa, UErrorCode &errorCode) const {
- /* add the start code point of each same-value range of the canonical iterator data trie */
- if(ensureCanonIterData(errorCode)) {
- // currently only used for the SEGMENT_STARTER property
- utrie2_enum(fCanonIterData->trie, segmentStarterMapper, enumPropertyStartsRange, sa);
+ // Add the start code point of each same-value range of the canonical iterator data trie.
+ if (!ensureCanonIterData(errorCode)) { return; }
+ // Currently only used for the SEGMENT_STARTER property.
+ UChar32 start = 0, end;
+ uint32_t value;
+ while ((end = ucptrie_getRange(fCanonIterData->trie, start, UCPMAP_RANGE_NORMAL, 0,
+ segmentStarterMapper, nullptr, &value)) >= 0) {
+ sa->add(sa->set, start);
+ start = end + 1;
}
}
@@ -633,27 +608,23 @@ Normalizer2Impl::decompose(const UChar *src, const UChar *limit,
// count code units below the minimum or with irrelevant data for the quick check
for(prevSrc=src; src!=limit;) {
if( (c=*src)<minNoCP ||
- isMostDecompYesAndZeroCC(norm16=UTRIE2_GET16_FROM_U16_SINGLE_LEAD(normTrie, c))
+ isMostDecompYesAndZeroCC(norm16=UCPTRIE_FAST_BMP_GET(normTrie, UCPTRIE_16, c))
) {
++src;
- } else if(!U16_IS_SURROGATE(c)) {
+ } else if(!U16_IS_LEAD(c)) {
break;
} else {
UChar c2;
- if(U16_IS_SURROGATE_LEAD(c)) {
- if((src+1)!=limit && U16_IS_TRAIL(c2=src[1])) {
- c=U16_GET_SUPPLEMENTARY(c, c2);
- }
- } else /* trail surrogate */ {
- if(prevSrc<src && U16_IS_LEAD(c2=*(src-1))) {
- --src;
- c=U16_GET_SUPPLEMENTARY(c2, c);
+ if((src+1)!=limit && U16_IS_TRAIL(c2=src[1])) {
+ c=U16_GET_SUPPLEMENTARY(c, c2);
+ norm16=UCPTRIE_FAST_SUPP_GET(normTrie, UCPTRIE_16, c);
+ if(isMostDecompYesAndZeroCC(norm16)) {
+ src+=2;
+ } else {
+ break;
}
- }
- if(isMostDecompYesAndZeroCC(norm16=getNorm16(c))) {
- src+=U16_LENGTH(c);
} else {
- break;
+ ++src; // unpaired lead surrogate: inert
}
}
}
@@ -713,7 +684,7 @@ Normalizer2Impl::decomposeShort(const UChar *src, const UChar *limit,
const UChar *prevSrc = src;
UChar32 c;
uint16_t norm16;
- UTRIE2_U16_NEXT16(normTrie, src, limit, c, norm16);
+ UCPTRIE_FAST_U16_NEXT(normTrie, UCPTRIE_16, src, limit, c, norm16);
if (stopAtCompBoundary && norm16HasCompBoundaryBefore(norm16)) {
return prevSrc;
}
@@ -737,7 +708,7 @@ UBool Normalizer2Impl::decompose(UChar32 c, uint16_t norm16,
}
// Maps to an isCompYesAndZeroCC.
c=mapAlgorithmic(c, norm16);
- norm16=getNorm16(c);
+ norm16=getRawNorm16(c);
}
if (norm16 < minYesNo) {
// c does not decompose
@@ -758,7 +729,7 @@ UBool Normalizer2Impl::decompose(UChar32 c, uint16_t norm16,
} else {
leadCC=0;
}
- return buffer.append((const UChar *)mapping+1, length, leadCC, trailCC, errorCode);
+ return buffer.append((const UChar *)mapping+1, length, TRUE, leadCC, trailCC, errorCode);
}
const uint8_t *
@@ -771,7 +742,7 @@ Normalizer2Impl::decomposeShort(const uint8_t *src, const uint8_t *limit,
while (src < limit) {
const uint8_t *prevSrc = src;
uint16_t norm16;
- UTRIE2_U8_NEXT16(normTrie, src, limit, norm16);
+ UCPTRIE_FAST_U8_NEXT(normTrie, UCPTRIE_16, src, limit, norm16);
// Get the decomposition and the lead and trail cc's.
UChar32 c = U_SENTINEL;
if (norm16 >= limitNoNo) {
@@ -789,7 +760,7 @@ Normalizer2Impl::decomposeShort(const uint8_t *src, const uint8_t *limit,
}
c = codePointFromValidUTF8(prevSrc, src);
c = mapAlgorithmic(c, norm16);
- norm16 = getNorm16(c);
+ norm16 = getRawNorm16(c);
} else if (stopAtCompBoundary && norm16 < minNoNoCompNoMaybeCC) {
return prevSrc;
}
@@ -828,7 +799,7 @@ Normalizer2Impl::decomposeShort(const uint8_t *src, const uint8_t *limit,
} else {
leadCC = 0;
}
- if (!buffer.append((const char16_t *)mapping+1, length, leadCC, trailCC, errorCode)) {
+ if (!buffer.append((const char16_t *)mapping+1, length, TRUE, leadCC, trailCC, errorCode)) {
return nullptr;
}
}
@@ -854,7 +825,7 @@ Normalizer2Impl::getDecomposition(UChar32 c, UChar buffer[4], int32_t &length) c
length=0;
U16_APPEND_UNSAFE(buffer, length, c);
// The mapping might decompose further.
- norm16 = getNorm16(c);
+ norm16 = getRawNorm16(c);
}
if (norm16 < minYesNo) {
return decomp;
@@ -926,19 +897,30 @@ void Normalizer2Impl::decomposeAndAppend(const UChar *src, const UChar *limit,
return;
}
// Just merge the strings at the boundary.
- ForwardUTrie2StringIterator iter(normTrie, src, limit);
- uint8_t firstCC, prevCC, cc;
- firstCC=prevCC=cc=getCC(iter.next16());
- while(cc!=0) {
- prevCC=cc;
- cc=getCC(iter.next16());
- };
+ bool isFirst = true;
+ uint8_t firstCC = 0, prevCC = 0, cc;
+ const UChar *p = src;
+ while (p != limit) {
+ const UChar *codePointStart = p;
+ UChar32 c;
+ uint16_t norm16;
+ UCPTRIE_FAST_U16_NEXT(normTrie, UCPTRIE_16, p, limit, c, norm16);
+ if ((cc = getCC(norm16)) == 0) {
+ p = codePointStart;
+ break;
+ }
+ if (isFirst) {
+ firstCC = cc;
+ isFirst = false;
+ }
+ prevCC = cc;
+ }
if(limit==NULL) { // appendZeroCC() needs limit!=NULL
- limit=u_strchr(iter.codePointStart, 0);
+ limit=u_strchr(p, 0);
}
- if (buffer.append(src, (int32_t)(iter.codePointStart-src), firstCC, prevCC, errorCode)) {
- buffer.appendZeroCC(iter.codePointStart, limit, errorCode);
+ if (buffer.append(src, (int32_t)(p - src), FALSE, firstCC, prevCC, errorCode)) {
+ buffer.appendZeroCC(p, limit, errorCode);
}
}
@@ -1085,7 +1067,7 @@ void Normalizer2Impl::addComposites(const uint16_t *list, UnicodeSet &set) const
}
UChar32 composite=compositeAndFwd>>1;
if((compositeAndFwd&1)!=0) {
- addComposites(getCompositionsListForComposite(getNorm16(composite)), set);
+ addComposites(getCompositionsListForComposite(getRawNorm16(composite)), set);
}
set.add(composite);
} while((firstUnit&COMP_1_LAST_TUPLE)==0);
@@ -1124,7 +1106,7 @@ void Normalizer2Impl::recompose(ReorderingBuffer &buffer, int32_t recomposeStart
prevCC=0;
for(;;) {
- UTRIE2_U16_NEXT16(normTrie, p, limit, c, norm16);
+ UCPTRIE_FAST_U16_NEXT(normTrie, UCPTRIE_16, p, limit, c, norm16);
cc=getCCFromYesOrMaybe(norm16);
if( // this character combines backward and
isMaybe(norm16) &&
@@ -1229,7 +1211,7 @@ void Normalizer2Impl::recompose(ReorderingBuffer &buffer, int32_t recomposeStart
// Is the composite a starter that combines forward?
if(compositeAndFwd&1) {
compositionsList=
- getCompositionsListForComposite(getNorm16(composite));
+ getCompositionsListForComposite(getRawNorm16(composite));
} else {
compositionsList=NULL;
}
@@ -1268,7 +1250,7 @@ void Normalizer2Impl::recompose(ReorderingBuffer &buffer, int32_t recomposeStart
UChar32
Normalizer2Impl::composePair(UChar32 a, UChar32 b) const {
- uint16_t norm16=getNorm16(a); // maps an out-of-range 'a' to inert norm16=0
+ uint16_t norm16=getNorm16(a); // maps an out-of-range 'a' to inert norm16
const uint16_t *list;
if(isInert(norm16)) {
return U_SENTINEL;
@@ -1359,29 +1341,23 @@ Normalizer2Impl::compose(const UChar *src, const UChar *limit,
return TRUE;
}
if( (c=*src)<minNoMaybeCP ||
- isCompYesAndZeroCC(norm16=UTRIE2_GET16_FROM_U16_SINGLE_LEAD(normTrie, c))
+ isCompYesAndZeroCC(norm16=UCPTRIE_FAST_BMP_GET(normTrie, UCPTRIE_16, c))
) {
++src;
} else {
prevSrc = src++;
- if(!U16_IS_SURROGATE(c)) {
+ if(!U16_IS_LEAD(c)) {
break;
} else {
UChar c2;
- if(U16_IS_SURROGATE_LEAD(c)) {
- if(src!=limit && U16_IS_TRAIL(c2=*src)) {
- ++src;
- c=U16_GET_SUPPLEMENTARY(c, c2);
- }
- } else /* trail surrogate */ {
- if(prevBoundary<prevSrc && U16_IS_LEAD(c2=*(prevSrc-1))) {
- --prevSrc;
- c=U16_GET_SUPPLEMENTARY(c2, c);
+ if(src!=limit && U16_IS_TRAIL(c2=*src)) {
+ ++src;
+ c=U16_GET_SUPPLEMENTARY(c, c2);
+ norm16=UCPTRIE_FAST_SUPP_GET(normTrie, UCPTRIE_16, c);
+ if(!isCompYesAndZeroCC(norm16)) {
+ break;
}
}
- if(!isCompYesAndZeroCC(norm16=getNorm16(c))) {
- break;
- }
}
}
}
@@ -1529,7 +1505,7 @@ Normalizer2Impl::compose(const UChar *src, const UChar *limit,
}
uint8_t prevCC = cc;
nextSrc = src;
- UTRIE2_U16_NEXT16(normTrie, nextSrc, limit, c, n16);
+ UCPTRIE_FAST_U16_NEXT(normTrie, UCPTRIE_16, nextSrc, limit, c, n16);
if (n16 >= MIN_YES_YES_WITH_CC) {
cc = getCCFromNormalYesOrMaybe(n16);
if (prevCC > cc) {
@@ -1559,7 +1535,7 @@ Normalizer2Impl::compose(const UChar *src, const UChar *limit,
// decompose and recompose.
if (prevBoundary != prevSrc && !norm16HasCompBoundaryBefore(norm16)) {
const UChar *p = prevSrc;
- UTRIE2_U16_PREV16(normTrie, prevBoundary, p, c, norm16);
+ UCPTRIE_FAST_U16_PREV(normTrie, UCPTRIE_16, prevBoundary, p, c, norm16);
if (!norm16HasCompBoundaryAfter(norm16, onlyContiguous)) {
prevSrc = p;
}
@@ -1626,29 +1602,23 @@ Normalizer2Impl::composeQuickCheck(const UChar *src, const UChar *limit,
return src;
}
if( (c=*src)<minNoMaybeCP ||
- isCompYesAndZeroCC(norm16=UTRIE2_GET16_FROM_U16_SINGLE_LEAD(normTrie, c))
+ isCompYesAndZeroCC(norm16=UCPTRIE_FAST_BMP_GET(normTrie, UCPTRIE_16, c))
) {
++src;
} else {
prevSrc = src++;
- if(!U16_IS_SURROGATE(c)) {
+ if(!U16_IS_LEAD(c)) {
break;
} else {
UChar c2;
- if(U16_IS_SURROGATE_LEAD(c)) {
- if(src!=limit && U16_IS_TRAIL(c2=*src)) {
- ++src;
- c=U16_GET_SUPPLEMENTARY(c, c2);
- }
- } else /* trail surrogate */ {
- if(prevBoundary<prevSrc && U16_IS_LEAD(c2=*(prevSrc-1))) {
- --prevSrc;
- c=U16_GET_SUPPLEMENTARY(c2, c);
+ if(src!=limit && U16_IS_TRAIL(c2=*src)) {
+ ++src;
+ c=U16_GET_SUPPLEMENTARY(c, c2);
+ norm16=UCPTRIE_FAST_SUPP_GET(normTrie, UCPTRIE_16, c);
+ if(!isCompYesAndZeroCC(norm16)) {
+ break;
}
}
- if(!isCompYesAndZeroCC(norm16=getNorm16(c))) {
- break;
- }
}
}
}
@@ -1665,7 +1635,7 @@ Normalizer2Impl::composeQuickCheck(const UChar *src, const UChar *limit,
} else {
const UChar *p = prevSrc;
uint16_t n16;
- UTRIE2_U16_PREV16(normTrie, prevBoundary, p, c, n16);
+ UCPTRIE_FAST_U16_PREV(normTrie, UCPTRIE_16, prevBoundary, p, c, n16);
if (norm16HasCompBoundaryAfter(n16, onlyContiguous)) {
prevBoundary = prevSrc;
} else {
@@ -1699,7 +1669,7 @@ Normalizer2Impl::composeQuickCheck(const UChar *src, const UChar *limit,
}
uint8_t prevCC = cc;
nextSrc = src;
- UTRIE2_U16_NEXT16(normTrie, nextSrc, limit, c, norm16);
+ UCPTRIE_FAST_U16_NEXT(normTrie, UCPTRIE_16, nextSrc, limit, c, norm16);
if (isMaybeOrNonZeroCC(norm16)) {
cc = getCCFromYesOrMaybe(norm16);
if (!(prevCC <= cc || cc == 0)) {
@@ -1786,7 +1756,7 @@ Normalizer2Impl::composeUTF8(uint32_t options, UBool onlyContiguous,
++src;
} else {
prevSrc = src;
- UTRIE2_U8_NEXT16(normTrie, src, limit, norm16);
+ UCPTRIE_FAST_U8_NEXT(normTrie, UCPTRIE_16, src, limit, norm16);
if (!isCompYesAndZeroCC(norm16)) {
break;
}
@@ -1945,7 +1915,7 @@ Normalizer2Impl::composeUTF8(uint32_t options, UBool onlyContiguous,
}
uint8_t prevCC = cc;
nextSrc = src;
- UTRIE2_U8_NEXT16(normTrie, nextSrc, limit, n16);
+ UCPTRIE_FAST_U8_NEXT(normTrie, UCPTRIE_16, nextSrc, limit, n16);
if (n16 >= MIN_YES_YES_WITH_CC) {
cc = getCCFromNormalYesOrMaybe(n16);
if (prevCC > cc) {
@@ -1975,7 +1945,7 @@ Normalizer2Impl::composeUTF8(uint32_t options, UBool onlyContiguous,
// decompose and recompose.
if (prevBoundary != prevSrc && !norm16HasCompBoundaryBefore(norm16)) {
const uint8_t *p = prevSrc;
- UTRIE2_U8_PREV16(normTrie, prevBoundary, p, norm16);
+ UCPTRIE_FAST_U8_PREV(normTrie, UCPTRIE_16, prevBoundary, p, norm16);
if (!norm16HasCompBoundaryAfter(norm16, onlyContiguous)) {
prevSrc = p;
}
@@ -2023,7 +1993,7 @@ UBool Normalizer2Impl::hasCompBoundaryBefore(const UChar *src, const UChar *limi
}
UChar32 c;
uint16_t norm16;
- UTRIE2_U16_NEXT16(normTrie, src, limit, c, norm16);
+ UCPTRIE_FAST_U16_NEXT(normTrie, UCPTRIE_16, src, limit, c, norm16);
return norm16HasCompBoundaryBefore(norm16);
}
@@ -2032,7 +2002,7 @@ UBool Normalizer2Impl::hasCompBoundaryBefore(const uint8_t *src, const uint8_t *
return TRUE;
}
uint16_t norm16;
- UTRIE2_U8_NEXT16(normTrie, src, limit, norm16);
+ UCPTRIE_FAST_U8_NEXT(normTrie, UCPTRIE_16, src, limit, norm16);
return norm16HasCompBoundaryBefore(norm16);
}
@@ -2043,7 +2013,7 @@ UBool Normalizer2Impl::hasCompBoundaryAfter(const UChar *start, const UChar *p,
}
UChar32 c;
uint16_t norm16;
- UTRIE2_U16_PREV16(normTrie, start, p, c, norm16);
+ UCPTRIE_FAST_U16_PREV(normTrie, UCPTRIE_16, start, p, c, norm16);
return norm16HasCompBoundaryAfter(norm16, onlyContiguous);
}
@@ -2053,36 +2023,42 @@ UBool Normalizer2Impl::hasCompBoundaryAfter(const uint8_t *start, const uint8_t
return TRUE;
}
uint16_t norm16;
- UTRIE2_U8_PREV16(normTrie, start, p, norm16);
+ UCPTRIE_FAST_U8_PREV(normTrie, UCPTRIE_16, start, p, norm16);
return norm16HasCompBoundaryAfter(norm16, onlyContiguous);
}
const UChar *Normalizer2Impl::findPreviousCompBoundary(const UChar *start, const UChar *p,
UBool onlyContiguous) const {
- BackwardUTrie2StringIterator iter(normTrie, start, p);
- for(;;) {
- uint16_t norm16=iter.previous16();
+ while (p != start) {
+ const UChar *codePointLimit = p;
+ UChar32 c;
+ uint16_t norm16;
+ UCPTRIE_FAST_U16_PREV(normTrie, UCPTRIE_16, start, p, c, norm16);
if (norm16HasCompBoundaryAfter(norm16, onlyContiguous)) {
- return iter.codePointLimit;
+ return codePointLimit;
}
- if (hasCompBoundaryBefore(iter.codePoint, norm16)) {
- return iter.codePointStart;
+ if (hasCompBoundaryBefore(c, norm16)) {
+ return p;
}
}
+ return p;
}
const UChar *Normalizer2Impl::findNextCompBoundary(const UChar *p, const UChar *limit,
UBool onlyContiguous) const {
- ForwardUTrie2StringIterator iter(normTrie, p, limit);
- for(;;) {
- uint16_t norm16=iter.next16();
- if (hasCompBoundaryBefore(iter.codePoint, norm16)) {
- return iter.codePointStart;
+ while (p != limit) {
+ const UChar *codePointStart = p;
+ UChar32 c;
+ uint16_t norm16;
+ UCPTRIE_FAST_U16_NEXT(normTrie, UCPTRIE_16, p, limit, c, norm16);
+ if (hasCompBoundaryBefore(c, norm16)) {
+ return codePointStart;
}
if (norm16HasCompBoundaryAfter(norm16, onlyContiguous)) {
- return iter.codePointLimit;
+ return p;
}
}
+ return p;
}
uint8_t Normalizer2Impl::getPreviousTrailCC(const UChar *start, const UChar *p) const {
@@ -2130,7 +2106,7 @@ uint16_t Normalizer2Impl::getFCD16FromNormData(UChar32 c) const {
}
// Maps to an isCompYesAndZeroCC.
c=mapAlgorithmic(c, norm16);
- norm16=getNorm16(c);
+ norm16=getRawNorm16(c);
}
}
if(norm16<=minYesNo || isHangulLVT(norm16)) {
@@ -2195,17 +2171,10 @@ Normalizer2Impl::makeFCD(const UChar *src, const UChar *limit,
prevFCD16=0;
++src;
} else {
- if(U16_IS_SURROGATE(c)) {
+ if(U16_IS_LEAD(c)) {
UChar c2;
- if(U16_IS_SURROGATE_LEAD(c)) {
- if((src+1)!=limit && U16_IS_TRAIL(c2=src[1])) {
- c=U16_GET_SUPPLEMENTARY(c, c2);
- }
- } else /* trail surrogate */ {
- if(prevSrc<src && U16_IS_LEAD(c2=*(src-1))) {
- --src;
- c=U16_GET_SUPPLEMENTARY(c2, c);
- }
+ if((src+1)!=limit && U16_IS_TRAIL(c2=src[1])) {
+ c=U16_GET_SUPPLEMENTARY(c, c2);
}
}
if((fcd16=getFCD16FromNormData(c))<=0xff) {
@@ -2336,7 +2305,7 @@ const UChar *Normalizer2Impl::findPreviousFCDBoundary(const UChar *start, const
const UChar *codePointLimit = p;
UChar32 c;
uint16_t norm16;
- UTRIE2_U16_PREV16(normTrie, start, p, c, norm16);
+ UCPTRIE_FAST_U16_PREV(normTrie, UCPTRIE_16, start, p, c, norm16);
if (c < minDecompNoCP || norm16HasDecompBoundaryAfter(norm16)) {
return codePointLimit;
}
@@ -2352,7 +2321,7 @@ const UChar *Normalizer2Impl::findNextFCDBoundary(const UChar *p, const UChar *l
const UChar *codePointStart=p;
UChar32 c;
uint16_t norm16;
- UTRIE2_U16_NEXT16(normTrie, p, limit, c, norm16);
+ UCPTRIE_FAST_U16_NEXT(normTrie, UCPTRIE_16, p, limit, c, norm16);
if (c < minLcccCP || norm16HasDecompBoundaryBefore(norm16)) {
return codePointStart;
}
@@ -2366,19 +2335,20 @@ const UChar *Normalizer2Impl::findNextFCDBoundary(const UChar *p, const UChar *l
// CanonicalIterator data -------------------------------------------------- ***
CanonIterData::CanonIterData(UErrorCode &errorCode) :
- trie(utrie2_open(0, 0, &errorCode)),
+ mutableTrie(umutablecptrie_open(0, 0, &errorCode)), trie(nullptr),
canonStartSets(uprv_deleteUObject, NULL, errorCode) {}
CanonIterData::~CanonIterData() {
- utrie2_close(trie);
+ umutablecptrie_close(mutableTrie);
+ ucptrie_close(trie);
}
void CanonIterData::addToStartSet(UChar32 origin, UChar32 decompLead, UErrorCode &errorCode) {
- uint32_t canonValue=utrie2_get32(trie, decompLead);
+ uint32_t canonValue = umutablecptrie_get(mutableTrie, decompLead);
if((canonValue&(CANON_HAS_SET|CANON_VALUE_MASK))==0 && origin!=0) {
// origin is the first character whose decomposition starts with
// the character for which we are setting the value.
- utrie2_set32(trie, decompLead, canonValue|origin, &errorCode);
+ umutablecptrie_set(mutableTrie, decompLead, canonValue|origin, &errorCode);
} else {
// origin is not the first character, or it is U+0000.
UnicodeSet *set;
@@ -2390,7 +2360,7 @@ void CanonIterData::addToStartSet(UChar32 origin, UChar32 decompLead, UErrorCode
}
UChar32 firstOrigin=(UChar32)(canonValue&CANON_VALUE_MASK);
canonValue=(canonValue&~CANON_VALUE_MASK)|CANON_HAS_SET|(uint32_t)canonStartSets.size();
- utrie2_set32(trie, decompLead, canonValue, &errorCode);
+ umutablecptrie_set(mutableTrie, decompLead, canonValue, &errorCode);
canonStartSets.addElement(set, errorCode);
if(firstOrigin!=0) {
set->add(firstOrigin);
@@ -2406,7 +2376,6 @@ void CanonIterData::addToStartSet(UChar32 origin, UChar32 decompLead, UErrorCode
class InitCanonIterData {
public:
static void doInit(Normalizer2Impl *impl, UErrorCode &errorCode);
- static void handleRange(Normalizer2Impl *impl, UChar32 start, UChar32 end, uint16_t value, UErrorCode &errorCode);
};
U_CDECL_BEGIN
@@ -2417,18 +2386,6 @@ initCanonIterData(Normalizer2Impl *impl, UErrorCode &errorCode) {
InitCanonIterData::doInit(impl, errorCode);
}
-// Call Normalizer2Impl::makeCanonIterDataFromNorm16() for a range of same-norm16 characters.
-// context: the Normalizer2Impl
-static UBool U_CALLCONV
-enumCIDRangeHandler(const void *context, UChar32 start, UChar32 end, uint32_t value) {
- UErrorCode errorCode = U_ZERO_ERROR;
- if (value != Normalizer2Impl::INERT) {
- Normalizer2Impl *impl = (Normalizer2Impl *)context;
- InitCanonIterData::handleRange(impl, start, end, (uint16_t)value, errorCode);
- }
- return U_SUCCESS(errorCode);
-}
-
U_CDECL_END
void InitCanonIterData::doInit(Normalizer2Impl *impl, UErrorCode &errorCode) {
@@ -2438,8 +2395,24 @@ void InitCanonIterData::doInit(Normalizer2Impl *impl, UErrorCode &errorCode) {
errorCode=U_MEMORY_ALLOCATION_ERROR;
}
if (U_SUCCESS(errorCode)) {
- utrie2_enum(impl->normTrie, NULL, enumCIDRangeHandler, impl);
- utrie2_freeze(impl->fCanonIterData->trie, UTRIE2_32_VALUE_BITS, &errorCode);
+ UChar32 start = 0, end;
+ uint32_t value;
+ while ((end = ucptrie_getRange(impl->normTrie, start,
+ UCPMAP_RANGE_FIXED_LEAD_SURROGATES, Normalizer2Impl::INERT,
+ nullptr, nullptr, &value)) >= 0) {
+ // Call Normalizer2Impl::makeCanonIterDataFromNorm16() for a range of same-norm16 characters.
+ if (value != Normalizer2Impl::INERT) {
+ impl->makeCanonIterDataFromNorm16(start, end, value, *impl->fCanonIterData, errorCode);
+ }
+ start = end + 1;
+ }
+#ifdef UCPTRIE_DEBUG
+ umutablecptrie_setName(impl->fCanonIterData->mutableTrie, "CanonIterData");
+#endif
+ impl->fCanonIterData->trie = umutablecptrie_buildImmutable(
+ impl->fCanonIterData->mutableTrie, UCPTRIE_TYPE_SMALL, UCPTRIE_VALUE_BITS_32, &errorCode);
+ umutablecptrie_close(impl->fCanonIterData->mutableTrie);
+ impl->fCanonIterData->mutableTrie = nullptr;
}
if (U_FAILURE(errorCode)) {
delete impl->fCanonIterData;
@@ -2447,11 +2420,6 @@ void InitCanonIterData::doInit(Normalizer2Impl *impl, UErrorCode &errorCode) {
}
}
-void InitCanonIterData::handleRange(
- Normalizer2Impl *impl, UChar32 start, UChar32 end, uint16_t value, UErrorCode &errorCode) {
- impl->makeCanonIterDataFromNorm16(start, end, value, *impl->fCanonIterData, errorCode);
-}
-
void Normalizer2Impl::makeCanonIterDataFromNorm16(UChar32 start, UChar32 end, const uint16_t norm16,
CanonIterData &newData,
UErrorCode &errorCode) const {
@@ -2465,7 +2433,7 @@ void Normalizer2Impl::makeCanonIterDataFromNorm16(UChar32 start, UChar32 end, co
return;
}
for(UChar32 c=start; c<=end; ++c) {
- uint32_t oldValue=utrie2_get32(newData.trie, c);
+ uint32_t oldValue = umutablecptrie_get(newData.mutableTrie, c);
uint32_t newValue=oldValue;
if(isMaybeOrNonZeroCC(norm16)) {
// not a segment starter if it occurs in a decomposition or has cc!=0
@@ -2483,7 +2451,7 @@ void Normalizer2Impl::makeCanonIterDataFromNorm16(UChar32 start, UChar32 end, co
if (isDecompNoAlgorithmic(norm16_2)) {
// Maps to an isCompYesAndZeroCC.
c2 = mapAlgorithmic(c2, norm16_2);
- norm16_2 = getNorm16(c2);
+ norm16_2 = getRawNorm16(c2);
// No compatibility mappings for the CanonicalIterator.
U_ASSERT(!(isHangulLV(norm16_2) || isHangulLVT(norm16_2)));
}
@@ -2510,10 +2478,10 @@ void Normalizer2Impl::makeCanonIterDataFromNorm16(UChar32 start, UChar32 end, co
if(norm16_2>=minNoNo) {
while(i<length) {
U16_NEXT_UNSAFE(mapping, i, c2);
- uint32_t c2Value=utrie2_get32(newData.trie, c2);
+ uint32_t c2Value = umutablecptrie_get(newData.mutableTrie, c2);
if((c2Value&CANON_NOT_SEGMENT_STARTER)==0) {
- utrie2_set32(newData.trie, c2, c2Value|CANON_NOT_SEGMENT_STARTER,
- &errorCode);
+ umutablecptrie_set(newData.mutableTrie, c2,
+ c2Value|CANON_NOT_SEGMENT_STARTER, &errorCode);
}
}
}
@@ -2524,7 +2492,7 @@ void Normalizer2Impl::makeCanonIterDataFromNorm16(UChar32 start, UChar32 end, co
}
}
if(newValue!=oldValue) {
- utrie2_set32(newData.trie, c, newValue, &errorCode);
+ umutablecptrie_set(newData.mutableTrie, c, newValue, &errorCode);
}
}
}
@@ -2537,7 +2505,7 @@ UBool Normalizer2Impl::ensureCanonIterData(UErrorCode &errorCode) const {
}
int32_t Normalizer2Impl::getCanonValue(UChar32 c) const {
- return (int32_t)utrie2_get32(fCanonIterData->trie, c);
+ return (int32_t)ucptrie_get(fCanonIterData->trie, c);
}
const UnicodeSet &Normalizer2Impl::getCanonStartSet(int32_t n) const {
@@ -2561,7 +2529,7 @@ UBool Normalizer2Impl::getCanonStartSet(UChar32 c, UnicodeSet &set) const {
set.add(value);
}
if((canonValue&CANON_HAS_COMPOSITIONS)!=0) {
- uint16_t norm16=getNorm16(c);
+ uint16_t norm16=getRawNorm16(c);
if(norm16==JAMO_L) {
UChar32 syllable=
(UChar32)(Hangul::HANGUL_BASE+(c-Hangul::JAMO_L_BASE)*Hangul::JAMO_VT_COUNT);
@@ -2608,7 +2576,7 @@ unorm2_swap(const UDataSwapper *ds,
pInfo->dataFormat[1]==0x72 &&
pInfo->dataFormat[2]==0x6d &&
pInfo->dataFormat[3]==0x32 &&
- (1<=formatVersion0 && formatVersion0<=3)
+ (1<=formatVersion0 && formatVersion0<=4)
)) {
udata_printError(ds, "unorm2_swap(): data format %02x.%02x.%02x.%02x (format version %02x) is not recognized as Normalizer2 data\n",
pInfo->dataFormat[0], pInfo->dataFormat[1],
@@ -2669,9 +2637,9 @@ unorm2_swap(const UDataSwapper *ds,
ds->swapArray32(ds, inBytes, nextOffset-offset, outBytes, pErrorCode);
offset=nextOffset;
- /* swap the UTrie2 */
+ /* swap the trie */
nextOffset=indexes[Normalizer2Impl::IX_EXTRA_DATA_OFFSET];
- utrie2_swap(ds, inBytes+offset, nextOffset-offset, outBytes+offset, pErrorCode);
+ utrie_swapAnyVersion(ds, inBytes+offset, nextOffset-offset, outBytes+offset, pErrorCode);
offset=nextOffset;
/* swap the uint16_t extraData[] */
diff --git a/Build/source/libs/icu/icu-src/source/common/normalizer2impl.h b/Build/source/libs/icu/icu-src/source/common/normalizer2impl.h
index 9dd4d1e5ab1..2e6aff30881 100644
--- a/Build/source/libs/icu/icu-src/source/common/normalizer2impl.h
+++ b/Build/source/libs/icu/icu-src/source/common/normalizer2impl.h
@@ -24,12 +24,20 @@
#if !UCONFIG_NO_NORMALIZATION
#include "unicode/normalizer2.h"
+#include "unicode/ucptrie.h"
#include "unicode/unistr.h"
#include "unicode/unorm.h"
+#include "unicode/utf.h"
#include "unicode/utf16.h"
#include "mutex.h"
+#include "udataswp.h"
#include "uset_imp.h"
-#include "utrie2.h"
+
+// When the nfc.nrm data is *not* hardcoded into the common library
+// (with this constant set to 0),
+// then it needs to be built into the data package:
+// Add nfc.nrm to icu4c/source/data/Makefile.in DAT_FILES_SHORT
+#define NORM2_HARDCODE_NFC_DATA 1
U_NAMESPACE_BEGIN
@@ -118,7 +126,7 @@ public:
buffer[0]=(UChar)(JAMO_L_BASE+c/JAMO_V_COUNT);
buffer[1]=(UChar)(JAMO_V_BASE+c%JAMO_V_COUNT);
} else {
- buffer[0]=orig-c2; // LV syllable
+ buffer[0]=(UChar)(orig-c2); // LV syllable
buffer[1]=(UChar)(JAMO_T_BASE+c2);
}
}
@@ -158,8 +166,7 @@ public:
appendBMP((UChar)c, cc, errorCode) :
appendSupplementary(c, cc, errorCode);
}
- // s must be in NFD, otherwise change the implementation.
- UBool append(const UChar *s, int32_t length,
+ UBool append(const UChar *s, int32_t length, UBool isNFD,
uint8_t leadCC, uint8_t trailCC,
UErrorCode &errorCode);
UBool appendBMP(UChar c, uint8_t cc, UErrorCode &errorCode) {
@@ -243,7 +250,7 @@ public:
}
virtual ~Normalizer2Impl();
- void init(const int32_t *inIndexes, const UTrie2 *inTrie,
+ void init(const int32_t *inIndexes, const UCPTrie *inTrie,
const uint16_t *inExtraData, const uint8_t *inSmallFCD);
void addLcccChars(UnicodeSet &set) const;
@@ -254,7 +261,12 @@ public:
UBool ensureCanonIterData(UErrorCode &errorCode) const;
- uint16_t getNorm16(UChar32 c) const { return UTRIE2_GET16(normTrie, c); }
+ // The trie stores values for lead surrogate code *units*.
+ // Surrogate code *points* are inert.
+ uint16_t getNorm16(UChar32 c) const {
+ return U_IS_LEAD(c) ? INERT : UCPTRIE_FAST_GET(normTrie, UCPTRIE_16, c);
+ }
+ uint16_t getRawNorm16(UChar32 c) const { return UCPTRIE_FAST_GET(normTrie, UCPTRIE_16, c); }
UNormalizationCheckResult getCompQuickCheck(uint16_t norm16) const {
if(norm16<minNoNo || MIN_YES_YES_WITH_CC<=norm16) {
@@ -704,7 +716,7 @@ private:
uint16_t centerNoNoDelta;
uint16_t minMaybeYes;
- const UTrie2 *normTrie;
+ const UCPTrie *normTrie;
const uint16_t *maybeYesCompositions;
const uint16_t *extraData; // mappings and/or compositions for yesYes, yesNo & noNo characters
const uint8_t *smallFCD; // [0x100] one bit per 32 BMP code points, set if any FCD!=0
@@ -764,7 +776,7 @@ unorm_getFCD16(UChar32 c);
/**
* Format of Normalizer2 .nrm data files.
- * Format version 3.0.
+ * Format version 4.0.
*
* Normalizer2 .nrm data files provide data for the Unicode Normalization algorithms.
* ICU ships with data files for standard Unicode Normalization Forms
@@ -818,7 +830,7 @@ unorm_getFCD16(UChar32 c);
* minMaybeYes=indexes[IX_MIN_MAYBE_YES];
* See the normTrie description below and the design doc for details.
*
- * UTrie2 normTrie; -- see utrie2_impl.h and utrie2.h
+ * UCPTrie normTrie; -- see ucptrie_impl.h and ucptrie.h, same as Java CodePointTrie
*
* The trie holds the main normalization data. Each code point is mapped to a 16-bit value.
* Rather than using independent bits in the value (which would require more than 16 bits),
@@ -946,6 +958,20 @@ unorm_getFCD16(UChar32 c);
* which is artificially assigned "worst case" values lccc=1 and tccc=255.
*
* - A mapping to an empty string has explicit lccc=1 and tccc=255 values.
+ *
+ * Changes from format version 3 to format version 4 (ICU 63) ------------------
+ *
+ * Switched from UTrie2 to UCPTrie/CodePointTrie.
+ *
+ * The new trie no longer stores different values for surrogate code *units* vs.
+ * surrogate code *points*.
+ * Lead surrogates still have values for optimized UTF-16 string processing.
+ * When looking up code point properties, the code now checks for lead surrogates and
+ * treats them as inert.
+ *
+ * gennorm2 now has to reject mappings for surrogate code points.
+ * UTS #46 maps unpaired surrogates to U+FFFD in code rather than via its
+ * custom normalization data file.
*/
#endif /* !UCONFIG_NO_NORMALIZATION */
diff --git a/Build/source/libs/icu/icu-src/source/common/propname_data.h b/Build/source/libs/icu/icu-src/source/common/propname_data.h
index 5876fc7073a..15a3301e47d 100644
--- a/Build/source/libs/icu/icu-src/source/common/propname_data.h
+++ b/Build/source/libs/icu/icu-src/source/common/propname_data.h
@@ -13,933 +13,1008 @@
U_NAMESPACE_BEGIN
-const int32_t PropNameData::indexes[8]={0x20,0x13c8,0x4831,0x92bb,0x92bb,0x92bb,0x2f,0};
+const int32_t PropNameData::indexes[8]={0x20,0x1548,0x4e03,0xa114,0xa114,0xa114,0x2f,0};
-const int32_t PropNameData::valueMaps[1258]={
-6,0,0x40,0,0xdb,0x356,0xdb,0x36c,0xdb,0x381,0xdb,0x397,0xdb,0x3a2,0xdb,0x3c3,
-0xdb,0x3d3,0xdb,0x3e2,0xdb,0x3f0,0xdb,0x414,0xdb,0x42b,0xdb,0x443,0xdb,0x45a,0xdb,0x469,
-0xdb,0x478,0xdb,0x489,0xdb,0x497,0xdb,0x4a9,0xdb,0x4c3,0xdb,0x4de,0xdb,0x4f3,0xdb,0x510,
-0xdb,0x521,0xdb,0x52c,0xdb,0x54b,0xdb,0x561,0xdb,0x572,0xdb,0x582,0xdb,0x59d,0xdb,0x5b6,
-0xdb,0x5c7,0xdb,0x5e1,0xdb,0x5f4,0xdb,0x604,0xdb,0x61e,0xdb,0x637,0xdb,0x64e,0xdb,0x662,
-0xdb,0x678,0xdb,0x68c,0xdb,0x6a2,0xdb,0x6bc,0xdb,0x6d4,0xdb,0x6f0,0xdb,0x6f8,0xdb,0x700,
-0xdb,0x708,0xdb,0x710,0xdb,0x719,0xdb,0x726,0xdb,0x739,0xdb,0x756,0xdb,0x773,0xdb,0x790,
-0xdb,0x7ae,0xdb,0x7cc,0xdb,0x7f0,0xdb,0x7fd,0xdb,0x824,0xdb,0x843,0xdb,0x86c,0xdb,0x88d,
-0xdb,0x8a4,0xdb,0x1000,0x1016,0x8c6,0x155,0xae6,0x170,0x2b81,0xe1,0x2ba0,0x28d,0x2cde,0x2a3,0x2d38,
-0x2ad,0x2f95,0x2cf,0x3836,0x337,0x38a6,0x341,0x3b40,0x370,0x3b7e,0x378,0x4567,0x42e,0x45e5,0x438,0x460a,
-0x43e,0x4624,0x444,0x4645,0x44b,0x465f,0xe1,0x4684,0xe1,0x46aa,0x452,0x4754,0x468,0x47cd,0x47b,0x486a,
-0x495,0x2000,0x2001,0x48a1,0x49c,0x3000,0x3001,0x492d,0,0x4000,0x400e,0x493f,0,0x4948,0,0x4962,
-0,0x4973,0,0x4984,0,0x499a,0,0x49a3,0,0x49c0,0,0x49de,0,0x49fc,0,0x4a1a,
-0,0x4a30,0,0x4a44,0,0x4a5a,0,0x7000,0x7001,0x4a73,0,0x748,0x12,0,1,0x12,
-0x20,0x766,0x49,0,1,7,8,9,0xa,0xb,0xc,0xd,0xe,0xf,0x10,0x11,
-0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,0x20,0x21,
-0x22,0x23,0x24,0x54,0x5b,0x67,0x6b,0x76,0x7a,0x81,0x82,0x84,0x85,0xc8,0xca,0xd6,
-0xd8,0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,0xe8,0xe9,0xea,0xf0,0x2e,0x40,0x4c,0x56,
-0x67,0x72,0x7f,0x8c,0x99,0xa6,0xb3,0xc0,0xcd,0xda,0xe7,0xf4,0x101,0x10e,0x11b,0x128,
-0x135,0x142,0x14f,0x15c,0x169,0x176,0x183,0x190,0x19d,0x1aa,0x1b7,0x1c4,0x1d1,0x1de,0x1eb,0x1fa,
-0x209,0x218,0x227,0x236,0x245,0x254,0x263,0x27d,0x291,0x2a5,0x2c0,0x2cf,0x2d8,0x2e8,0x2f0,0x2f9,
-0x308,0x311,0x321,0x332,0x343,0x8f8,1,0,0x17,0x8d5,0x8e6,0x8f7,0x90b,0x922,0x93a,0x94c,
-0x961,0x978,0x98d,0x99d,0x9af,0x9cc,0x9e8,0x9fa,0xa17,0xa33,0xa4f,0xa64,0xa79,0xa93,0xaae,0xac9,
-0xa9a,1,0,0x119,0xaf1,0xafe,0xb11,0xb39,0xb57,0xb75,0xb8d,0xbb8,0xbe2,0xbfa,0xc0d,0xc20,
-0xc2f,0xc3e,0xc4d,0xc5c,0xc73,0xc84,0xc97,0xcaa,0xcb7,0xcc4,0xcd3,0xce4,0xcf9,0xd0a,0xd15,0xd1e,
-0xd2f,0xd40,0xd53,0xd65,0xd78,0xd8b,0xdca,0xdd7,0xde4,0xdf1,0xe06,0xe36,0xe50,0xe71,0xe9c,0xebf,
-0xf1d,0xf44,0xf5f,0xf6e,0xf95,0xfbd,0xfe0,0x1003,0x102d,0x1046,0x1065,0x1088,0x10ac,0x10bf,0x10d9,0x1103,
-0x111b,0x1143,0x116c,0x117f,0x1192,0x11a5,0x11cc,0x11db,0x11fb,0x1229,0x1247,0x1275,0x1291,0x12ac,0x12c5,0x12de,
-0x12ff,0x132f,0x134e,0x1370,0x13a4,0x13d1,0x1416,0x1437,0x1461,0x1482,0x14ab,0x14be,0x14f1,0x1508,0x1517,0x1528,
-0x1553,0x156a,0x159b,0x15c9,0x160c,0x1617,0x1650,0x1661,0x1672,0x167f,0x1692,0x16cc,0x16f0,0x1714,0x174e,0x1786,
-0x17b1,0x17c9,0x17f5,0x1821,0x182e,0x183d,0x185a,0x187c,0x18aa,0x18ca,0x18f1,0x1918,0x1937,0x194a,0x195b,0x196c,
-0x1991,0x19b6,0x19dd,0x1a11,0x1a3e,0x1a5c,0x1a6f,0x1a88,0x1ac1,0x1ad0,0x1af0,0x1b12,0x1b34,0x1b4b,0x1b62,0x1b8f,
-0x1ba8,0x1bc1,0x1bf2,0x1c1c,0x1c37,0x1c4a,0x1c69,0x1c72,0x1c85,0x1ca3,0x1cc1,0x1cd4,0x1ceb,0x1d00,0x1d35,0x1d59,
-0x1d6e,0x1d7d,0x1d90,0x1db4,0x1dbd,0x1de1,0x1df8,0x1e0b,0x1e1a,0x1e25,0x1e46,0x1e5e,0x1e6d,0x1e7c,0x1e8b,0x1ea2,
-0x1eb7,0x1ecc,0x1f05,0x1f18,0x1f34,0x1f3f,0x1f4c,0x1f7a,0x1f9e,0x1fc1,0x1fd4,0x1ff6,0x2009,0x2024,0x2047,0x206a,
-0x208f,0x20a0,0x20cf,0x20fc,0x2113,0x212e,0x213d,0x2168,0x21a0,0x21da,0x2208,0x2219,0x2226,0x224a,0x2259,0x2275,
-0x228f,0x22ac,0x22e4,0x22f9,0x2326,0x2345,0x2373,0x2393,0x23c7,0x23d6,0x2400,0x2423,0x244e,0x2459,0x246a,0x2485,
-0x24a9,0x24b6,0x24cb,0x24f2,0x251d,0x2554,0x2567,0x2578,0x25a8,0x25b9,0x25c8,0x25dd,0x25fb,0x260e,0x2621,0x2638,
-0x2655,0x2660,0x2669,0x268b,0x26a0,0x26c5,0x26dc,0x2705,0x2720,0x2735,0x274e,0x276f,0x27a4,0x27b5,0x27e6,0x280a,
-0x281b,0x2834,0x283f,0x286c,0x288e,0x28bc,0x28ef,0x28fe,0x290f,0x292c,0x296e,0x2995,0x29a2,0x29b7,0x29db,0x2a01,
-0x2a3a,0x2a4b,0x2a6f,0x2a7a,0x2a87,0x2a96,0x2abb,0x2ae9,0x2b05,0x2b22,0x2b2f,0x2b40,0x2b5e,0x1c30,1,0,
-0x12,0x2bb7,0x2bc7,0x2bda,0x2bea,0x2bfa,0x2c09,0x2c19,0x2c2b,0x2c3e,0x2c50,0x2c60,0x2c70,0x2c7f,0x2c8e,0x2c9e,
-0x2cab,0x2cba,0x2cce,0x1cee,1,0,6,0x2cf3,0x2cfe,0x2d0b,0x2d18,0x2d25,0x2d30,0x1d32,1,0,
-0x1e,0x2d4d,0x2d5c,0x2d71,0x2d86,0x2d9b,0x2daf,0x2dc0,0x2dd4,0x2de7,0x2df8,0x2e11,0x2e23,0x2e34,0x2e48,0x2e5b,
-0x2e73,0x2e85,0x2e90,0x2ea0,0x2eae,0x2ec3,0x2ed8,0x2eee,0x2f08,0x2f1e,0x2f2e,0x2f42,0x2f56,0x2f67,0x2f7f,0x1f5d,
-1,0,0x64,0x2fa7,0x2fca,0x2fd3,0x2fe0,0x2feb,0x2ff4,0x2fff,0x3008,0x3021,0x3026,0x302f,0x304c,0x3055,
-0x3062,0x306b,0x308f,0x3096,0x309f,0x30b2,0x30bd,0x30c6,0x30d1,0x30ea,0x30f3,0x3102,0x310d,0x3116,0x3121,0x312a,
-0x3131,0x313a,0x3145,0x314e,0x3167,0x3170,0x317d,0x3188,0x3199,0x31a4,0x31b9,0x31d0,0x31d9,0x31e2,0x31fb,0x3206,
-0x320f,0x3218,0x322f,0x324c,0x3257,0x3268,0x3273,0x327a,0x3287,0x3294,0x32c1,0x32d6,0x32df,0x32fa,0x331d,0x333e,
-0x335f,0x3384,0x33ab,0x33cc,0x33ef,0x3410,0x3437,0x3458,0x347d,0x349c,0x34bb,0x34da,0x34f7,0x3518,0x3539,0x355c,
-0x3581,0x35a0,0x35bf,0x35e0,0x3607,0x362c,0x364b,0x366c,0x368f,0x36aa,0x36c3,0x36de,0x36f7,0x3714,0x372f,0x374c,
-0x376b,0x3788,0x37a5,0x37c4,0x37e1,0x37fc,0x3819,0x2283,1,0,6,0x3847,0x3856,0x3866,0x3876,0x3886,
-0x3897,0x22e1,1,0,0x2b,0x38b5,0x38c1,0x38cf,0x38de,0x38ed,0x38fd,0x390e,0x3922,0x3937,0x394d,0x3960,
-0x3974,0x3984,0x398d,0x3998,0x39a8,0x39c4,0x39d6,0x39e4,0x39f3,0x39ff,0x3a14,0x3a28,0x3a3b,0x3a49,0x3a5d,0x3a6b,
-0x3a75,0x3a87,0x3a93,0x3aa1,0x3ab1,0x3ab8,0x3abf,0x3ac6,0x3acd,0x3ad4,0x3aea,0x3b0b,0x88d,0x3b1d,0x3b28,0x3b37,
-0x253a,1,0,4,0x3b51,0x3b5c,0x3b68,0x3b72,0x2560,1,0,0xb2,0x3b89,0x3b96,0x3bab,0x3bb8,
-0x3bc7,0x3bd5,0x3be4,0x3bf3,0x3c05,0x3c14,0x3c22,0x3c33,0x3c42,0x3c51,0x3c5e,0x3c6a,0x3c79,0x3c88,0x3c92,0x3c9f,
-0x3cac,0x3cbb,0x3cc9,0x3cd8,0x3ce4,0x3cee,0x3cfa,0x3d0a,0x3d1a,0x3d28,0x3d34,0x3d45,0x3d51,0x3d5d,0x3d6b,0x3d78,
-0x3d84,0x3d91,0xd0a,0x3d9e,0x3dac,0x3dc6,0x3dcf,0x3ddd,0x3deb,0x3df7,0x3e06,0x3e14,0x3e22,0x3e2e,0x3e3d,0x3e4b,
-0x3e59,0x3e66,0x3e75,0x3e90,0x3e9f,0x3eb0,0x3ec1,0x3ed4,0x3ee6,0x3ef5,0x3f07,0x3f16,0x3f22,0x3f2d,0x1e1a,0x3f3a,
-0x3f45,0x3f50,0x3f5b,0x3f66,0x3f81,0x3f8c,0x3f97,0x3fa2,0x3fb5,0x3fc9,0x3fd4,0x3fe3,0x3ff2,0x3ffd,0x4008,0x4015,
-0x4024,0x4032,0x403d,0x4058,0x4062,0x4073,0x4084,0x4093,0x40a4,0x40af,0x40ba,0x40c5,0x40d0,0x40db,0x40e6,0x40f1,
-0x40fb,0x4106,0x4116,0x4121,0x412f,0x413c,0x4147,0x4156,0x4163,0x4170,0x417f,0x418c,0x419d,0x41af,0x41bf,0x41ca,
-0x41dd,0x41f4,0x4202,0x420f,0x421a,0x4227,0x4238,0x4254,0x426a,0x4275,0x4292,0x42a2,0x42b1,0x42bc,0x42c7,0x1f34,
-0x42d3,0x42de,0x42f6,0x4306,0x4315,0x4323,0x4331,0x433c,0x4347,0x435b,0x4372,0x438a,0x439a,0x43aa,0x43ba,0x43cc,
-0x43d7,0x43e2,0x43ec,0x43f8,0x4406,0x4419,0x4425,0x4432,0x443d,0x4459,0x4466,0x4474,0x448d,0x2834,0x449c,0x2655,
-0x44a9,0x44b7,0x44c9,0x44d7,0x44e3,0x44f3,0x2a6f,0x4501,0x450d,0x4518,0x4523,0x452e,0x4542,0x4550,0x2e57,1,
-0,6,0x4581,0x4594,0x45a4,0x45b2,0x45c3,0x45d3,0x2eb3,0x12,0,1,0x45fd,0x4603,0x2ec0,0x12,
-0,1,0x45fd,0x4603,0x2ecd,1,0,3,0x45fd,0x4603,0x463c,0x2ee3,1,0,3,0x45fd,
-0x4603,0x463c,0x2ef9,1,0,0x12,0x46c6,0x46d0,0x46dc,0x46e3,0x46ee,0x46f3,0x46fa,0x4701,0x470a,0x470f,
-0x4714,0x4724,0x88d,0x3b1d,0x4730,0x3b28,0x4740,0x3b37,0x2fa2,1,0,0xf,0x46c6,0x4767,0x4771,0x477b,
-0x4786,0x39f3,0x4790,0x479c,0x47a4,0x47ab,0x47b5,0x46dc,0x46e3,0x46f3,0x47bf,0x3029,1,0,0x16,0x46c6,
-0x47dc,0x477b,0x47e8,0x47f5,0x4803,0x39f3,0x480e,0x46dc,0x481f,0x46f3,0x482e,0x483c,0x88d,0x3b0b,0x4848,0x4859,
-0x3b1d,0x4730,0x3b28,0x4740,0x3b37,0x3139,1,0,3,0x4888,0x4890,0x4898,0x3152,0x36,1,2,
+const int32_t PropNameData::valueMaps[1354]={
+6,0,0x41,0,0xe3,0x356,0xe3,0x36c,0xe3,0x381,0xe3,0x397,0xe3,0x3a2,0xe3,0x3c3,
+0xe3,0x3d3,0xe3,0x3e2,0xe3,0x3f0,0xe3,0x414,0xe3,0x42b,0xe3,0x443,0xe3,0x45a,0xe3,0x469,
+0xe3,0x478,0xe3,0x489,0xe3,0x497,0xe3,0x4a9,0xe3,0x4c3,0xe3,0x4de,0xe3,0x4f3,0xe3,0x510,
+0xe3,0x521,0xe3,0x52c,0xe3,0x54b,0xe3,0x561,0xe3,0x572,0xe3,0x582,0xe3,0x59d,0xe3,0x5b6,
+0xe3,0x5c7,0xe3,0x5e1,0xe3,0x5f4,0xe3,0x604,0xe3,0x61e,0xe3,0x637,0xe3,0x64e,0xe3,0x662,
+0xe3,0x678,0xe3,0x68c,0xe3,0x6a2,0xe3,0x6bc,0xe3,0x6d4,0xe3,0x6f0,0xe3,0x6f8,0xe3,0x700,
+0xe3,0x708,0xe3,0x710,0xe3,0x719,0xe3,0x726,0xe3,0x739,0xe3,0x756,0xe3,0x773,0xe3,0x790,
+0xe3,0x7ae,0xe3,0x7cc,0xe3,0x7f0,0xe3,0x7fd,0xe3,0x817,0xe3,0x82c,0xe3,0x847,0xe3,0x85e,
+0xe3,0x875,0xe3,0x897,0xe3,0x1000,0x1019,0x8b6,0x15d,0xad6,0x178,0x2c95,0xe9,0x2cb4,0x2a0,0x2df2,
+0x2b6,0x2e4c,0x2c0,0x30a9,0x2e2,0x39a4,0x34c,0x3a14,0x356,0x3cae,0x385,0x3cec,0x38d,0x474b,0x44a,0x47c9,
+0x454,0x47ee,0x45a,0x4808,0x460,0x4829,0x467,0x4843,0xe9,0x4868,0xe9,0x488e,0x46e,0x4938,0x484,0x49b1,
+0x497,0x4a63,0x4b2,0x4a9a,0x4b9,0x4c49,0x4cc,0x50c9,0x4f4,0x2000,0x2001,0x5128,0x4fc,0x3000,0x3001,0x51b4,
+0,0x4000,0x400e,0x51c6,0,0x51cf,0,0x51e9,0,0x51fa,0,0x520b,0,0x5221,0,0x522a,
+0,0x5247,0,0x5265,0,0x5283,0,0x52a1,0,0x52b7,0,0x52cb,0,0x52e1,0,0x7000,
+0x7001,0x52fa,0,0x7d6,0x12,0,1,0x12,0x20,0x7f4,0x49,0,1,7,8,9,
+0xa,0xb,0xc,0xd,0xe,0xf,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,
+0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x23,0x24,0x54,0x5b,0x67,0x6b,0x76,
+0x7a,0x81,0x82,0x84,0x85,0xc8,0xca,0xd6,0xd8,0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,
+0xe8,0xe9,0xea,0xf0,0x2e,0x40,0x4c,0x56,0x67,0x72,0x7f,0x8c,0x99,0xa6,0xb3,0xc0,
+0xcd,0xda,0xe7,0xf4,0x101,0x10e,0x11b,0x128,0x135,0x142,0x14f,0x15c,0x169,0x176,0x183,0x190,
+0x19d,0x1aa,0x1b7,0x1c4,0x1d1,0x1de,0x1eb,0x1fa,0x209,0x218,0x227,0x236,0x245,0x254,0x263,0x27d,
+0x291,0x2a5,0x2c0,0x2cf,0x2d8,0x2e8,0x2f0,0x2f9,0x308,0x311,0x321,0x332,0x343,0x986,1,0,
+0x17,0x8c5,0x8d6,0x8e7,0x8fb,0x912,0x92a,0x93c,0x951,0x968,0x97d,0x98d,0x99f,0x9bc,0x9d8,0x9ea,
+0xa07,0xa23,0xa3f,0xa54,0xa69,0xa83,0xa9e,0xab9,0xb28,1,0,0x124,0xae1,0xaee,0xb01,0xb29,
+0xb47,0xb65,0xb7d,0xba8,0xbd2,0xbea,0xbfd,0xc10,0xc1f,0xc2e,0xc3d,0xc4c,0xc63,0xc74,0xc87,0xc9a,
+0xca7,0xcb4,0xcc3,0xcd4,0xce9,0xcfa,0xd05,0xd0e,0xd1f,0xd30,0xd43,0xd55,0xd68,0xd7b,0xdba,0xdc7,
+0xdd4,0xde1,0xdf6,0xe26,0xe40,0xe61,0xe8c,0xeaf,0xf0d,0xf34,0xf4f,0xf5e,0xf85,0xfad,0xfd0,0xff3,
+0x101d,0x1036,0x1055,0x1078,0x109c,0x10af,0x10c9,0x10f3,0x110b,0x1133,0x115c,0x116f,0x1182,0x1195,0x11bc,0x11cb,
+0x11eb,0x1219,0x1237,0x1265,0x1281,0x129c,0x12b5,0x12ce,0x12ef,0x131f,0x133e,0x1360,0x1394,0x13c1,0x1406,0x1427,
+0x1451,0x1472,0x149b,0x14ae,0x14e1,0x14f8,0x1507,0x1518,0x1543,0x155a,0x158b,0x15b9,0x15fc,0x1607,0x1640,0x1651,
+0x1662,0x166f,0x1682,0x16bc,0x16e0,0x1704,0x173e,0x1776,0x17a1,0x17b9,0x17e5,0x1811,0x181e,0x182d,0x184a,0x186c,
+0x189a,0x18ba,0x18e1,0x1908,0x1927,0x193a,0x194b,0x195c,0x1981,0x19a6,0x19cd,0x1a01,0x1a2e,0x1a4c,0x1a5f,0x1a78,
+0x1ab1,0x1ac0,0x1ae0,0x1b02,0x1b24,0x1b3b,0x1b52,0x1b7f,0x1b98,0x1bb1,0x1be2,0x1c0c,0x1c27,0x1c3a,0x1c59,0x1c62,
+0x1c75,0x1c93,0x1cb1,0x1cc4,0x1cdb,0x1cf0,0x1d25,0x1d49,0x1d5e,0x1d6d,0x1d80,0x1da4,0x1dad,0x1dd1,0x1de8,0x1dfb,
+0x1e0a,0x1e15,0x1e36,0x1e4e,0x1e5d,0x1e6c,0x1e7b,0x1e92,0x1ea7,0x1ebc,0x1ef5,0x1f08,0x1f24,0x1f2f,0x1f3c,0x1f6a,
+0x1f8e,0x1fb1,0x1fc4,0x1fe6,0x1ff9,0x2014,0x2037,0x205a,0x207f,0x2090,0x20bf,0x20ec,0x2103,0x211e,0x212d,0x2158,
+0x2190,0x21ca,0x21f8,0x2209,0x2216,0x223a,0x2249,0x2265,0x227f,0x229c,0x22d4,0x22e9,0x2316,0x2335,0x2363,0x2383,
+0x23b7,0x23c6,0x23f0,0x2413,0x243e,0x2449,0x245a,0x2475,0x2499,0x24a6,0x24bb,0x24e2,0x250d,0x2544,0x2557,0x2568,
+0x2598,0x25a9,0x25b8,0x25cd,0x25eb,0x25fe,0x2611,0x2628,0x2645,0x2650,0x2659,0x267b,0x2690,0x26b5,0x26cc,0x26f5,
+0x2710,0x2725,0x273e,0x275f,0x2794,0x27a5,0x27d6,0x27fa,0x280b,0x2824,0x282f,0x285c,0x287e,0x28ac,0x28df,0x28ee,
+0x28ff,0x291c,0x295e,0x2985,0x2992,0x29a7,0x29cb,0x29f1,0x2a2a,0x2a3b,0x2a5f,0x2a6a,0x2a77,0x2a86,0x2aab,0x2ad9,
+0x2af5,0x2b12,0x2b1f,0x2b30,0x2b4e,0x2b71,0x2b8e,0x2b9b,0x2bbb,0x2bd8,0x2bf9,0x2c22,0x2c33,0x2c52,0x2c6b,0x2c84,
+0x1d4e,1,0,0x12,0x2ccb,0x2cdb,0x2cee,0x2cfe,0x2d0e,0x2d1d,0x2d2d,0x2d3f,0x2d52,0x2d64,0x2d74,0x2d84,
+0x2d93,0x2da2,0x2db2,0x2dbf,0x2dce,0x2de2,0x1e0c,1,0,6,0x2e07,0x2e12,0x2e1f,0x2e2c,0x2e39,0x2e44,
+0x1e50,1,0,0x1e,0x2e61,0x2e70,0x2e85,0x2e9a,0x2eaf,0x2ec3,0x2ed4,0x2ee8,0x2efb,0x2f0c,0x2f25,0x2f37,
+0x2f48,0x2f5c,0x2f6f,0x2f87,0x2f99,0x2fa4,0x2fb4,0x2fc2,0x2fd7,0x2fec,0x3002,0x301c,0x3032,0x3042,0x3056,0x306a,
+0x307b,0x3093,0x207b,1,0,0x66,0x30bb,0x30de,0x30e7,0x30f4,0x30ff,0x3108,0x3113,0x311c,0x3135,0x313a,
+0x3143,0x3160,0x3169,0x3176,0x317f,0x31a3,0x31aa,0x31b3,0x31c6,0x31d1,0x31da,0x31e5,0x31fe,0x3207,0x3216,0x3221,
+0x322a,0x3235,0x323e,0x3245,0x324e,0x3259,0x3262,0x327b,0x3284,0x3291,0x329c,0x32ad,0x32b8,0x32cd,0x32e4,0x32ed,
+0x32f6,0x330f,0x331a,0x3323,0x332c,0x3343,0x3360,0x336b,0x337c,0x3387,0x338e,0x339b,0x33a8,0x33d5,0x33ea,0x33f3,
+0x340e,0x3431,0x3452,0x3473,0x3498,0x34bf,0x34e0,0x3503,0x3524,0x354b,0x356c,0x3591,0x35b0,0x35cf,0x35ee,0x360b,
+0x362c,0x364d,0x3670,0x3695,0x36b4,0x36d3,0x36f4,0x371b,0x3740,0x375f,0x3780,0x37a3,0x37be,0x37d7,0x37f2,0x380b,
+0x3828,0x3843,0x3860,0x387f,0x389c,0x38b9,0x38d8,0x38f5,0x3910,0x392d,0x394a,0x397d,0x23c0,1,0,6,
+0x39b5,0x39c4,0x39d4,0x39e4,0x39f4,0x3a05,0x241e,1,0,0x2b,0x3a23,0x3a2f,0x3a3d,0x3a4c,0x3a5b,0x3a6b,
+0x3a7c,0x3a90,0x3aa5,0x3abb,0x3ace,0x3ae2,0x3af2,0x3afb,0x3b06,0x3b16,0x3b32,0x3b44,0x3b52,0x3b61,0x3b6d,0x3b82,
+0x3b96,0x3ba9,0x3bb7,0x3bcb,0x3bd9,0x3be3,0x3bf5,0x3c01,0x3c0f,0x3c1f,0x3c26,0x3c2d,0x3c34,0x3c3b,0x3c42,0x3c58,
+0x3c79,0x85e,0x3c8b,0x3c96,0x3ca5,0x2677,1,0,4,0x3cbf,0x3cca,0x3cd6,0x3ce0,0x269d,1,0,
+0xb9,0x3cf7,0x3d04,0x3d19,0x3d26,0x3d35,0x3d43,0x3d52,0x3d61,0x3d73,0x3d82,0x3d90,0x3da1,0x3db0,0x3dbf,0x3dcc,
+0x3dd8,0x3de7,0x3df6,0x3e00,0x3e0d,0x3e1a,0x3e29,0x3e37,0x3e46,0x3e52,0x3e5c,0x3e68,0x3e78,0x3e88,0x3e96,0x3ea2,
+0x3eb3,0x3ebf,0x3ecb,0x3ed9,0x3ee6,0x3ef2,0x3eff,0xcfa,0x3f0c,0x3f1a,0x3f34,0x3f3d,0x3f4b,0x3f59,0x3f65,0x3f74,
+0x3f82,0x3f90,0x3f9c,0x3fab,0x3fb9,0x3fc7,0x3fd4,0x3fe3,0x3ffe,0x400d,0x401e,0x402f,0x4042,0x4054,0x4063,0x4075,
+0x4084,0x4090,0x409b,0x1e0a,0x40a8,0x40b3,0x40be,0x40c9,0x40d4,0x40ef,0x40fa,0x4105,0x4110,0x4123,0x4137,0x4142,
+0x4151,0x4160,0x416b,0x4176,0x4183,0x4192,0x41a0,0x41ab,0x41c6,0x41d0,0x41e1,0x41f2,0x4201,0x4212,0x421d,0x4228,
+0x4233,0x423e,0x4249,0x4254,0x425f,0x4269,0x4274,0x4284,0x428f,0x429d,0x42aa,0x42b5,0x42c4,0x42d1,0x42de,0x42ed,
+0x42fa,0x430b,0x431d,0x432d,0x4338,0x434b,0x4362,0x4370,0x437d,0x4388,0x4395,0x43a6,0x43c2,0x43d8,0x43e3,0x4400,
+0x4410,0x441f,0x442a,0x4435,0x1f24,0x4441,0x444c,0x4464,0x4474,0x4483,0x4491,0x449f,0x44aa,0x44b5,0x44c9,0x44e0,
+0x44f8,0x4508,0x4518,0x4528,0x453a,0x4545,0x4550,0x455a,0x4566,0x4574,0x4587,0x4593,0x45a0,0x45ab,0x45c7,0x45d4,
+0x45e2,0x45fb,0x2824,0x460a,0x2645,0x4617,0x4625,0x4637,0x4645,0x4651,0x4661,0x2a5f,0x466f,0x467b,0x4686,0x4691,
+0x469c,0x46b0,0x46be,0x46d5,0x46e1,0x46f5,0x4703,0x4715,0x472b,0x4739,0x3000,1,0,6,0x4765,0x4778,
+0x4788,0x4796,0x47a7,0x47b7,0x305c,0x12,0,1,0x47e1,0x47e7,0x3069,0x12,0,1,0x47e1,0x47e7,
+0x3076,1,0,3,0x47e1,0x47e7,0x4820,0x308c,1,0,3,0x47e1,0x47e7,0x4820,0x30a2,1,
+0,0x12,0x48aa,0x48b4,0x48c0,0x48c7,0x48d2,0x48d7,0x48de,0x48e5,0x48ee,0x48f3,0x48f8,0x4908,0x85e,0x3c8b,
+0x4914,0x3c96,0x4924,0x3ca5,0x314b,1,0,0xf,0x48aa,0x494b,0x4955,0x495f,0x496a,0x3b61,0x4974,0x4980,
+0x4988,0x498f,0x4999,0x48c0,0x48c7,0x48d7,0x49a3,0x31d2,1,0,0x17,0x48aa,0x49c0,0x495f,0x49cc,0x49d9,
+0x49e7,0x3b61,0x49f2,0x48c0,0x4a03,0x48d7,0x4a12,0x4a20,0x85e,0x3c79,0x4a2c,0x4a3d,0x3c8b,0x4914,0x3c96,0x4924,
+0x3ca5,0x4a4e,0x32ef,1,0,3,0x4a81,0x4a89,0x4a91,0x3308,1,0,0xf,0x4aba,0x4ac1,0x4ad0,
+0x4af1,0x4b14,0x4b1f,0x4b3e,0x4b55,0x4b62,0x4b6b,0x4b8a,0x4bbd,0x4bd8,0x4c07,0x4c24,0x3398,1,0,0x24,
+0x4c67,0x4c74,0x4c87,0x4c94,0x4cc1,0x4ce6,0x4cfb,0x4d1a,0x4d3b,0x4d68,0x4da1,0x4dc4,0x4de7,0x4e14,0x4e49,0x4e70,
+0x4e99,0x4ed0,0x4eff,0x4f20,0x4f45,0x4f54,0x4f77,0x4f8e,0x4f9b,0x4faa,0x4fc7,0x4fe0,0x5003,0x5028,0x5041,0x5056,
+0x5065,0x5076,0x5083,0x50a4,0x3568,1,0,4,0x50e2,0x50ed,0x5105,0x511d,0x35a4,0x36,1,2,
4,8,0xe,0x10,0x20,0x3e,0x40,0x80,0x100,0x1c0,0x200,0x400,0x800,0xe00,0x1000,0x2000,
0x4000,0x7000,0x8000,0x10000,0x20000,0x40000,0x78001,0x80000,0x100000,0x200000,0x400000,0x800000,0x1000000,0x2000000,0x4000000,0x8000000,
-0xf000000,0x10000000,0x20000000,0x30f80000,0x2d4d,0x2d5c,0x2d71,0x2d86,0x48cf,0x2d9b,0x2daf,0x48c5,0x2dc0,0x2dd4,0x2de7,0x48e0,
-0x2df8,0x2e11,0x2e23,0x48f7,0x2e34,0x2e48,0x2e5b,0x4920,0x2e73,0x2e85,0x2e90,0x2ea0,0x48bc,0x2eae,0x2ec3,0x2ed8,
-0x2eee,0x2f08,0x2f1e,0x2f2e,0x2f42,0x2f56,0x4916,0x2f67,0x2f7f,0x4901
+0xf000000,0x10000000,0x20000000,0x30f80000,0x2e61,0x2e70,0x2e85,0x2e9a,0x5156,0x2eaf,0x2ec3,0x514c,0x2ed4,0x2ee8,0x2efb,0x5167,
+0x2f0c,0x2f25,0x2f37,0x517e,0x2f48,0x2f5c,0x2f6f,0x51a7,0x2f87,0x2f99,0x2fa4,0x2fb4,0x5143,0x2fc2,0x2fd7,0x2fec,
+0x3002,0x301c,0x3032,0x3042,0x3056,0x306a,0x519d,0x307b,0x3093,0x5188
};
-const uint8_t PropNameData::bytesTries[13417]={
-0,0x15,0x6d,0xc3,0x5d,0x73,0xc1,0xf7,0x76,0x5f,0x76,0x68,0x77,0x90,0x78,1,
-0x64,0x50,0x69,0x10,0x64,1,0x63,0x30,0x73,0x62,0x13,0x74,0x61,0x72,0x74,0x63,
-0x60,0x16,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x61,0x13,0x69,0x67,0x69,0x74,0x81,
-1,0x61,0x24,0x73,0x69,0x1e,0x72,0x69,0x61,0x74,0x69,0x6f,0x6e,0x73,0x65,0x6c,
-0x65,0x63,0x74,0x6f,0x72,0x69,3,0x62,0xc3,0x14,0x68,0x32,0x6f,0x42,0x73,0x13,
-0x70,0x61,0x63,0x65,0x5f,0x17,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x5f,0x16,
-0x72,0x64,0x62,0x72,0x65,0x61,0x6b,0xc3,0x14,0x73,0xa2,0x49,0x74,0xa4,0x3b,0x75,
-3,0x63,0xd9,0x40,0xc,0x69,0x52,0x6e,0x58,0x70,0x12,0x70,0x65,0x72,0x5c,0x13,
-0x63,0x61,0x73,0x65,0x5c,0x16,0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,0xd9,0x40,0xc,
-0x12,0x64,0x65,0x6f,0x5b,0x10,0x69,1,0x63,0x3e,0x66,0x1b,0x69,0x65,0x64,0x69,
-0x64,0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x5b,0x17,0x6f,0x64,0x65,0x31,0x6e,0x61,
-0x6d,0x65,0xd9,0x40,0xb,0xa,0x69,0x84,0x70,0x19,0x70,0x30,0x74,0x36,0x75,0x10,
-0x63,0xd9,0x40,9,0x12,0x61,0x63,0x65,0x5f,1,0x63,0xd9,0x40,8,0x65,0x11,
-0x72,0x6d,0x67,0x69,0x3c,0x6c,0xa2,0x5f,0x6f,0x17,0x66,0x74,0x64,0x6f,0x74,0x74,
-0x65,0x64,0x57,0x13,0x6d,0x70,0x6c,0x65,3,0x63,0x50,0x6c,0x68,0x74,0x8a,0x75,
-0x1e,0x70,0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,
-0xd9,0x40,9,0x19,0x61,0x73,0x65,0x66,0x6f,0x6c,0x64,0x69,0x6e,0x67,0xd9,0x40,
-6,0x1e,0x6f,0x77,0x65,0x72,0x63,0x61,0x73,0x65,0x6d,0x61,0x70,0x70,0x69,0x6e,
-0x67,0xd9,0x40,7,0x1e,0x69,0x74,0x6c,0x65,0x63,0x61,0x73,0x65,0x6d,0x61,0x70,
-0x70,0x69,0x6e,0x67,0xd9,0x40,8,0x10,0x63,0xd9,0x40,7,0x62,0xc3,0x13,0x63,
-0x34,0x64,0x57,0x65,0x6e,0x66,0x10,0x63,0xd9,0x40,6,0xc2,0xa,2,0x66,0xd9,
-0x40,6,0x72,0x28,0x78,0xd9,0x70,0,0x12,0x69,0x70,0x74,0xc2,0xa,0x19,0x65,
-0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xd9,0x70,0,1,0x67,0x6a,0x6e,
-1,0x73,0x54,0x74,0x13,0x65,0x6e,0x63,0x65,1,0x62,0x34,0x74,0x16,0x65,0x72,
-0x6d,0x69,0x6e,0x61,0x6c,0x67,0x13,0x72,0x65,0x61,0x6b,0xc3,0x13,0x14,0x69,0x74,
-0x69,0x76,0x65,0x65,1,0x6d,0x2e,0x73,0x13,0x74,0x61,0x72,0x74,0x73,0x19,0x65,
-0x6e,0x74,0x73,0x74,0x61,0x72,0x74,0x65,0x72,0x73,3,0x63,0x66,0x65,0x72,0x69,
-0x98,0x72,0x19,0x61,0x69,0x6c,0x63,0x61,0x6e,0x6f,0x6e,0x69,0x63,0x1f,0x61,0x6c,
-0x63,0x6f,0x6d,0x62,0x69,0x6e,0x69,0x6e,0x67,0x63,0x6c,0x61,0x73,0x73,0xc3,0x11,
-0xd8,0x40,0xa,0x11,0x63,0x63,0xc3,0x11,0x11,0x72,0x6d,0x58,0x1e,0x69,0x6e,0x61,
-0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x59,0x1d,0x74,0x6c,
-0x65,0x63,0x61,0x73,0x65,0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,0xd9,0x40,0xa,0x6d,
-0x70,0x6e,0x76,0x70,0xa2,0xf1,0x71,0xa4,0x43,0x72,2,0x61,0x28,0x65,0x32,0x69,
-0x9d,0x14,0x64,0x69,0x63,0x61,0x6c,0x55,0x1e,0x67,0x69,0x6f,0x6e,0x61,0x6c,0x69,
-0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,0x72,0x9d,0x12,0x61,0x74,0x68,0x4f,6,0x6f,
-0x39,0x6f,0x32,0x74,0xc3,9,0x75,0x54,0x76,0xd9,0x30,0,0x12,0x6e,0x63,0x68,
-0x1f,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x63,0x6f,0x64,0x65,0x70,0x6f,0x69,0x6e,
-0x74,0x51,0x14,0x6d,0x65,0x72,0x69,0x63,1,0x74,0x32,0x76,0x13,0x61,0x6c,0x75,
-0x65,0xd9,0x30,0,0x12,0x79,0x70,0x65,0xc3,9,0x61,0xa2,0x77,0x63,0xa2,0x82,
-0x66,2,0x63,0x98,0x64,0xa2,0x53,0x6b,1,0x63,0x56,0x64,1,0x69,0x42,0x71,
-1,0x63,0xc3,0xd,0x75,0x17,0x69,0x63,0x6b,0x63,0x68,0x65,0x63,0x6b,0xc3,0xd,
-0x13,0x6e,0x65,0x72,0x74,0x6d,1,0x69,0x42,0x71,1,0x63,0xc3,0xf,0x75,0x17,
-0x69,0x63,0x6b,0x63,0x68,0x65,0x63,0x6b,0xc3,0xf,0x13,0x6e,0x65,0x72,0x74,0x71,
-1,0x69,0x42,0x71,1,0x63,0xc3,0xe,0x75,0x17,0x69,0x63,0x6b,0x63,0x68,0x65,
-0x63,0x6b,0xc3,0xe,0x13,0x6e,0x65,0x72,0x74,0x6f,1,0x69,0x42,0x71,1,0x63,
-0xc3,0xc,0x75,0x17,0x69,0x63,0x6b,0x63,0x68,0x65,0x63,0x6b,0xc3,0xc,0x13,0x6e,
-0x65,0x72,0x74,0x6b,0xd8,0x40,5,1,0x31,0xd9,0x40,0xb,0x6d,0x10,0x65,0xd9,
-0x40,5,0x12,0x68,0x61,0x72,0x51,2,0x61,0x6c,0x63,0xa2,0x4c,0x72,1,0x65,
-0x2a,0x69,0x11,0x6e,0x74,0x7f,0x16,0x70,0x65,0x6e,0x64,0x65,0x64,0x63,0x1f,0x6f,
-0x6e,0x63,0x61,0x74,0x65,0x6e,0x61,0x74,0x69,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x9f,
-0x10,0x74,2,0x73,0x2c,0x74,0x30,0x77,0x10,0x73,0x77,0x11,0x79,0x6e,0x75,0x12,
-0x65,0x72,0x6e,1,0x73,0x38,0x77,0x18,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,
-0x65,0x77,0x14,0x79,0x6e,0x74,0x61,0x78,0x75,0x10,0x6d,0x9f,1,0x6d,0x3c,0x75,
-0x1a,0x6f,0x74,0x61,0x74,0x69,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x53,0x12,0x61,0x72,
-0x6b,0x53,0x66,0xc1,0xb9,0x69,0xc0,0xfd,0x69,0xa2,0x6f,0x6a,0xa2,0xca,0x6c,4,
-0x62,0xc3,8,0x63,0x8c,0x65,0x98,0x69,0xa2,0x56,0x6f,2,0x65,0x4b,0x67,0x4c,
-0x77,0x11,0x65,0x72,0x4c,0x13,0x63,0x61,0x73,0x65,0x4c,0x16,0x6d,0x61,0x70,0x70,
-0x69,0x6e,0x67,0xd9,0x40,4,0x11,0x69,0x63,0x1f,0x61,0x6c,0x6f,0x72,0x64,0x65,
-0x72,0x65,0x78,0x63,0x65,0x70,0x74,0x69,0x6f,0x6e,0x4b,0xd8,0x40,4,0x11,0x63,
-0x63,0xc3,0x10,0x18,0x61,0x64,0x63,0x61,0x6e,0x6f,0x6e,0x69,0x63,0x1f,0x61,0x6c,
-0x63,0x6f,0x6d,0x62,0x69,0x6e,0x69,0x6e,0x67,0x63,0x6c,0x61,0x73,0x73,0xc3,0x10,
-0x16,0x6e,0x65,0x62,0x72,0x65,0x61,0x6b,0xc3,8,1,0x64,0x44,0x73,1,0x63,
-0xd9,0x40,3,0x6f,0x16,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0xd9,0x40,3,2,
-0x63,0x80,0x65,0x90,0x73,0x40,1,0x62,0x52,0x74,0x46,1,0x61,0x40,0x72,0x1c,
-0x69,0x6e,0x61,0x72,0x79,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x47,0x11,0x72,
-0x74,0x41,0x44,0x1c,0x69,0x6e,0x61,0x72,0x79,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,
-0x72,0x45,0x3e,0x16,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3f,0x10,0x6f,0x42,0x16,
-0x67,0x72,0x61,0x70,0x68,0x69,0x63,0x43,2,0x67,0xc3,6,0x6f,0x26,0x74,0xc3,
-7,0x11,0x69,0x6e,1,0x63,0x4a,0x69,0x11,0x6e,0x67,1,0x67,0x2e,0x74,0x12,
-0x79,0x70,0x65,0xc3,7,0x13,0x72,0x6f,0x75,0x70,0xc3,6,0x48,0x15,0x6f,0x6e,
-0x74,0x72,0x6f,0x6c,0x49,0x66,0x86,0x67,0xa2,0x4a,0x68,3,0x61,0x36,0x65,0x58,
-0x73,0x68,0x79,0x13,0x70,0x68,0x65,0x6e,0x3d,0x1f,0x6e,0x67,0x75,0x6c,0x73,0x79,
-0x6c,0x6c,0x61,0x62,0x6c,0x65,0x74,0x79,0x70,0x65,0xc3,0xb,0x10,0x78,0x3a,0x14,
-0x64,0x69,0x67,0x69,0x74,0x3b,0x10,0x74,0xc3,0xb,0x16,0x75,0x6c,0x6c,0x63,0x6f,
-0x6d,0x70,0x1f,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x65,0x78,0x63,0x6c,0x75,0x73,
-0x69,0x6f,0x6e,0x33,2,0x63,0xa2,0x44,0x65,0xa2,0x4b,0x72,3,0x61,0x34,0x62,
-0x84,0x65,0x8a,0x6c,0x12,0x69,0x6e,0x6b,0x39,0x11,0x70,0x68,0x7c,0x12,0x65,0x6d,
-0x65,3,0x62,0x5e,0x63,0x30,0x65,0x48,0x6c,0x12,0x69,0x6e,0x6b,0x39,0x1a,0x6c,
-0x75,0x73,0x74,0x65,0x72,0x62,0x72,0x65,0x61,0x6b,0xc3,0x12,0x14,0x78,0x74,0x65,
-0x6e,0x64,0x37,0x12,0x61,0x73,0x65,0x35,0x11,0x78,0x74,0x37,0xc2,5,1,0x62,
-0xc3,0x12,0x6d,0xd9,0x20,0,0x1c,0x6e,0x65,0x72,0x61,0x6c,0x63,0x61,0x74,0x65,
-0x67,0x6f,0x72,0x79,0xc2,5,0x13,0x6d,0x61,0x73,0x6b,0xd9,0x20,0,0x61,0xa2,
-0x5c,0x62,0xa2,0x8a,0x63,0xa2,0xfc,0x64,0xa4,0xc9,0x65,2,0x61,0x3a,0x6d,0x58,
-0x78,0x10,0x74,0x30,0x14,0x65,0x6e,0x64,0x65,0x72,0x31,0xc2,4,0x1b,0x73,0x74,
-0x61,0x73,0x69,0x61,0x6e,0x77,0x69,0x64,0x74,0x68,0xc3,4,0x12,0x6f,0x6a,0x69,
-0x92,2,0x63,0x40,0x6d,0x50,0x70,0x1a,0x72,0x65,0x73,0x65,0x6e,0x74,0x61,0x74,
-0x69,0x6f,0x6e,0x95,0x17,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x9b,0x16,0x6f,
-0x64,0x69,0x66,0x69,0x65,0x72,0x96,0x13,0x62,0x61,0x73,0x65,0x99,3,0x67,0x44,
-0x68,0x4a,0x6c,0x4e,0x73,0x1a,0x63,0x69,0x69,0x68,0x65,0x78,0x64,0x69,0x67,0x69,
-0x74,0x23,0x10,0x65,0xd9,0x40,0,0x11,0x65,0x78,0x23,1,0x6e,0x38,0x70,0x11,
-0x68,0x61,0x20,0x14,0x62,0x65,0x74,0x69,0x63,0x21,0x11,0x75,0x6d,0x79,4,0x63,
-0xc3,0,0x69,0x3e,0x6c,0xa2,0x57,0x6d,0xa2,0x64,0x70,1,0x62,0xd9,0x40,0xd,
-0x74,0xc3,0x15,0x11,0x64,0x69,2,0x63,0x54,0x6d,0x74,0x70,0x1b,0x61,0x69,0x72,
-0x65,0x64,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0xd8,0x40,0xd,0x13,0x74,0x79,0x70,
-0x65,0xc3,0x15,0x24,1,0x6c,0x30,0x6f,0x14,0x6e,0x74,0x72,0x6f,0x6c,0x25,0x12,
-0x61,0x73,0x73,0xc3,0,0x26,0x14,0x69,0x72,0x72,0x6f,0x72,1,0x65,0x38,0x69,
-0x16,0x6e,0x67,0x67,0x6c,0x79,0x70,0x68,0xd9,0x40,1,0x10,0x64,0x27,2,0x61,
-0x32,0x6b,0xc3,1,0x6f,0x11,0x63,0x6b,0xc3,1,0x11,0x6e,0x6b,0x7b,0x10,0x67,
-0xd9,0x40,1,6,0x68,0x7c,0x68,0x54,0x69,0x85,0x6f,0xa2,0x6f,0x77,4,0x63,
-0x30,0x6b,0x36,0x6c,0x87,0x74,0x8b,0x75,0x89,1,0x66,0x8d,0x6d,0x8f,0x11,0x63,
-0x66,0x91,0x18,0x61,0x6e,0x67,0x65,0x73,0x77,0x68,0x65,0x6e,4,0x63,0x44,0x6c,
-0x6c,0x6e,0x7e,0x74,0x98,0x75,0x18,0x70,0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x64,
-0x89,0x12,0x61,0x73,0x65,1,0x66,0x30,0x6d,0x14,0x61,0x70,0x70,0x65,0x64,0x8f,
-0x14,0x6f,0x6c,0x64,0x65,0x64,0x8d,0x18,0x6f,0x77,0x65,0x72,0x63,0x61,0x73,0x65,
-0x64,0x87,0x1c,0x66,0x6b,0x63,0x63,0x61,0x73,0x65,0x66,0x6f,0x6c,0x64,0x65,0x64,
-0x91,0x18,0x69,0x74,0x6c,0x65,0x63,0x61,0x73,0x65,0x64,0x8b,0x13,0x6d,0x70,0x65,
-0x78,0x33,0x61,0x2e,0x63,0xa2,0x48,0x66,0xd9,0x40,2,1,0x6e,0x72,0x73,0x10,
-0x65,3,0x64,0x83,0x66,0x3a,0x69,0x4a,0x73,0x17,0x65,0x6e,0x73,0x69,0x74,0x69,
-0x76,0x65,0x65,0x15,0x6f,0x6c,0x64,0x69,0x6e,0x67,0xd9,0x40,2,0x17,0x67,0x6e,
-0x6f,0x72,0x61,0x62,0x6c,0x65,0x85,0x13,0x6f,0x6e,0x69,0x63,0x1f,0x61,0x6c,0x63,
-0x6f,0x6d,0x62,0x69,0x6e,0x69,0x6e,0x67,0x63,0x6c,0x61,0x73,0x73,0xc3,2,0x10,
-0x63,0xc3,2,3,0x61,0x30,0x65,0x34,0x69,0xa2,0x41,0x74,0xc3,3,0x11,0x73,
-0x68,0x29,2,0x63,0x3a,0x66,0x58,0x70,0x2c,0x16,0x72,0x65,0x63,0x61,0x74,0x65,
-0x64,0x2d,0x1d,0x6f,0x6d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x74,0x79,0x70,
-0x65,0xc3,3,0x15,0x61,0x75,0x6c,0x74,0x69,0x67,0x1f,0x6e,0x6f,0x72,0x61,0x62,
-0x6c,0x65,0x63,0x6f,0x64,0x65,0x70,0x6f,0x69,0x6e,0x74,0x2b,0x2a,0x10,0x61,0x2e,
-0x15,0x63,0x72,0x69,0x74,0x69,0x63,0x2f,3,0x66,0x34,0x6e,0x3e,0x74,0x42,0x79,
-0x22,0x11,0x65,0x73,0x23,0x20,0x13,0x61,0x6c,0x73,0x65,0x21,0x20,0x10,0x6f,0x21,
-0x22,0x12,0x72,0x75,0x65,0x23,0xa,0x6b,0x5b,0x6f,0x23,0x6f,0x3c,0x72,0x4c,0x76,
-1,0x69,0x24,0x72,0x33,0x13,0x72,0x61,0x6d,0x61,0x33,0x10,0x76,0x22,0x14,0x65,
-0x72,0x6c,0x61,0x79,0x23,0xa2,0xe2,0x13,0x69,0x67,0x68,0x74,0xa3,0xe2,0x6b,0x58,
-0x6c,0x74,0x6e,3,0x6b,0x2f,0x6f,0x30,0x72,0x21,0x75,0x12,0x6b,0x74,0x61,0x2f,
-0x19,0x74,0x72,0x65,0x6f,0x72,0x64,0x65,0x72,0x65,0x64,0x21,1,0x61,0x24,0x76,
-0x31,0x18,0x6e,0x61,0x76,0x6f,0x69,0x63,0x69,0x6e,0x67,0x31,0xa2,0xe0,0x12,0x65,
-0x66,0x74,0xa3,0xe0,0x61,0x5c,0x62,0xa2,0x77,0x63,0xa2,0x96,0x64,0xa4,0xa,0x69,
-1,0x6f,0x26,0x73,0xa3,0xf0,0x1a,0x74,0x61,0x73,0x75,0x62,0x73,0x63,0x72,0x69,
-0x70,0x74,0xa3,0xf0,0xa2,0xe6,3,0x62,0xa0,0x6c,0xa3,0xe4,0x72,0xa3,0xe8,0x74,
-2,0x61,0x74,0x62,0x7c,0x74,0x14,0x61,0x63,0x68,0x65,0x64,1,0x61,0x3e,0x62,
-0x13,0x65,0x6c,0x6f,0x77,0xa2,0xca,0x13,0x6c,0x65,0x66,0x74,0xa3,0xc8,0x13,0x62,
-0x6f,0x76,0x65,0xa2,0xd6,0x14,0x72,0x69,0x67,0x68,0x74,0xa3,0xd8,0xa2,0xd6,0x10,
-0x72,0xa3,0xd8,0xa2,0xca,0x10,0x6c,0xa3,0xc8,0x12,0x6f,0x76,0x65,0xa2,0xe6,1,
-0x6c,0x30,0x72,0x13,0x69,0x67,0x68,0x74,0xa3,0xe8,0x12,0x65,0x66,0x74,0xa3,0xe4,
-0xa2,0xdc,2,0x65,0x2c,0x6c,0xa3,0xda,0x72,0xa3,0xde,0x12,0x6c,0x6f,0x77,0xa2,
-0xdc,1,0x6c,0x30,0x72,0x13,0x69,0x67,0x68,0x74,0xa3,0xde,0x12,0x65,0x66,0x74,
-0xa3,0xda,0x11,0x63,0x63,4,0x31,0x3c,0x32,0xa2,0x42,0x33,0xa2,0x56,0x38,0xa2,
-0x64,0x39,0x10,0x31,0xa3,0x5b,9,0x35,0xa,0x35,0x3f,0x36,0x41,0x37,0x43,0x38,
-0x45,0x39,0x47,0x30,0x30,0x31,0x3c,0x32,0x42,0x33,0x4e,0x34,0x3d,0x34,1,0x33,
-0xa3,0x67,0x37,0xa3,0x6b,0x36,0x10,0x38,0xa3,0x76,0x38,1,0x32,0xa3,0x7a,0x39,
-0xa3,0x81,0x3a,2,0x30,0xa3,0x82,0x32,0xa3,0x84,0x33,0xa3,0x85,9,0x35,0xa,
-0x35,0x53,0x36,0x55,0x37,0x57,0x38,0x59,0x39,0x5b,0x30,0x49,0x31,0x4b,0x32,0x4d,
-0x33,0x4f,0x34,0x51,6,0x33,8,0x33,0x63,0x34,0x65,0x35,0x67,0x36,0x69,0x30,
-0x5d,0x31,0x5f,0x32,0x61,0x10,0x34,0xa3,0x54,2,0x61,0xa3,0xea,0x62,0xa3,0xe9,
-0x6f,0x13,0x75,0x62,0x6c,0x65,1,0x61,0x30,0x62,0x13,0x65,0x6c,0x6f,0x77,0xa3,
-0xe9,0x13,0x62,0x6f,0x76,0x65,0xa3,0xea,0xb,0x6e,0xc0,0xca,0x72,0x5f,0x72,0x46,
-0x73,0xa2,0x48,0x77,1,0x68,0x24,0x73,0x33,0x17,0x69,0x74,0x65,0x73,0x70,0x61,
-0x63,0x65,0x33,0x22,1,0x69,0x30,0x6c,2,0x65,0x3d,0x69,0x4b,0x6f,0x3f,0x18,
-0x67,0x68,0x74,0x74,0x6f,0x6c,0x65,0x66,0x74,0x22,2,0x65,0x38,0x69,0x48,0x6f,
-0x16,0x76,0x65,0x72,0x72,0x69,0x64,0x65,0x3f,0x17,0x6d,0x62,0x65,0x64,0x64,0x69,
-0x6e,0x67,0x3d,0x15,0x73,0x6f,0x6c,0x61,0x74,0x65,0x4b,0x30,0x1e,0x65,0x67,0x6d,
-0x65,0x6e,0x74,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x31,0x6e,0xa2,0x41,
-0x6f,0xa2,0x53,0x70,2,0x61,0x66,0x64,0x86,0x6f,0x1b,0x70,0x64,0x69,0x72,0x65,
-0x63,0x74,0x69,0x6f,0x6e,0x61,0x6c,1,0x66,0x32,0x69,0x15,0x73,0x6f,0x6c,0x61,
-0x74,0x65,0x4d,0x14,0x6f,0x72,0x6d,0x61,0x74,0x41,0x1f,0x72,0x61,0x67,0x72,0x61,
-0x70,0x68,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x2f,1,0x66,0x41,0x69,
-0x4d,1,0x6f,0x28,0x73,0x10,0x6d,0x43,0x1b,0x6e,0x73,0x70,0x61,0x63,0x69,0x6e,
-0x67,0x6d,0x61,0x72,0x6b,0x43,1,0x6e,0x35,0x74,0x19,0x68,0x65,0x72,0x6e,0x65,
-0x75,0x74,0x72,0x61,0x6c,0x35,0x65,0x88,0x65,0x98,0x66,0xa2,0x6a,0x6c,0x20,1,
-0x65,0x30,0x72,2,0x65,0x37,0x69,0x49,0x6f,0x39,0x18,0x66,0x74,0x74,0x6f,0x72,
-0x69,0x67,0x68,0x74,0x20,2,0x65,0x38,0x69,0x48,0x6f,0x16,0x76,0x65,0x72,0x72,
-0x69,0x64,0x65,0x39,0x17,0x6d,0x62,0x65,0x64,0x64,0x69,0x6e,0x67,0x37,0x15,0x73,
-0x6f,0x6c,0x61,0x74,0x65,0x49,3,0x6e,0x25,0x73,0x27,0x74,0x29,0x75,0x15,0x72,
-0x6f,0x70,0x65,0x61,0x6e,2,0x6e,0x3c,0x73,0x46,0x74,0x18,0x65,0x72,0x6d,0x69,
-0x6e,0x61,0x74,0x6f,0x72,0x29,0x14,0x75,0x6d,0x62,0x65,0x72,0x25,0x17,0x65,0x70,
-0x61,0x72,0x61,0x74,0x6f,0x72,0x27,1,0x69,0x28,0x73,0x10,0x69,0x47,0x1f,0x72,
-0x73,0x74,0x73,0x74,0x72,0x6f,0x6e,0x67,0x69,0x73,0x6f,0x6c,0x61,0x74,0x65,0x47,
-0x61,0x4e,0x62,0x84,0x63,1,0x6f,0x24,0x73,0x2d,0x1c,0x6d,0x6d,0x6f,0x6e,0x73,
-0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x2d,2,0x6c,0x3b,0x6e,0x2b,0x72,0x13,
-0x61,0x62,0x69,0x63,1,0x6c,0x30,0x6e,0x14,0x75,0x6d,0x62,0x65,0x72,0x2b,0x14,
-0x65,0x74,0x74,0x65,0x72,0x3b,0x2e,1,0x6e,0x45,0x6f,0x1c,0x75,0x6e,0x64,0x61,
-0x72,0x79,0x6e,0x65,0x75,0x74,0x72,0x61,0x6c,0x45,0,0x16,0x6d,0xc7,0xc5,0x74,
-0xc1,0xb8,0x77,0x57,0x77,0x48,0x79,0x5c,0x7a,0x1d,0x61,0x6e,0x61,0x62,0x61,0x7a,
-0x61,0x72,0x73,0x71,0x75,0x61,0x72,0x65,0xa5,0x18,0x18,0x61,0x72,0x61,0x6e,0x67,
-0x63,0x69,0x74,0x69,0xa3,0xfc,0x10,0x69,2,0x6a,0x3c,0x72,0x68,0x73,0x17,0x79,
-0x6c,0x6c,0x61,0x62,0x6c,0x65,0x73,0xa3,0x48,0x12,0x69,0x6e,0x67,0xa2,0x74,0x1e,
-0x68,0x65,0x78,0x61,0x67,0x72,0x61,0x6d,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,
-0x74,0x16,0x61,0x64,0x69,0x63,0x61,0x6c,0x73,0xa3,0x49,0x74,0xa2,0x59,0x75,0xa4,
-0x12,0x76,2,0x61,0x36,0x65,0x7a,0x73,0xa2,0x6c,0x12,0x73,0x75,0x70,0xa3,0x7d,
-1,0x69,0xa3,0x9f,0x72,0x1e,0x69,0x61,0x74,0x69,0x6f,0x6e,0x73,0x65,0x6c,0x65,
-0x63,0x74,0x6f,0x72,0x73,0xa2,0x6c,0x19,0x73,0x75,0x70,0x70,0x6c,0x65,0x6d,0x65,
-0x6e,0x74,0xa3,0x7d,1,0x64,0x3c,0x72,0x19,0x74,0x69,0x63,0x61,0x6c,0x66,0x6f,
-0x72,0x6d,0x73,0xa3,0x91,0x14,0x69,0x63,0x65,0x78,0x74,0xa2,0xaf,0x16,0x65,0x6e,
-0x73,0x69,0x6f,0x6e,0x73,0xa3,0xaf,4,0x61,0x68,0x65,0xa2,0x8a,0x68,0xa2,0x8d,
-0x69,0xa2,0x95,0x72,0x1c,0x61,0x6e,0x73,0x70,0x6f,0x72,0x74,0x61,0x6e,0x64,0x6d,
-0x61,0x70,0xa2,0xcf,0x16,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xcf,4,0x67,
-0x58,0x69,0x7e,0x6b,0xa2,0x58,0x6d,0xa2,0x5a,0x6e,0x12,0x67,0x75,0x74,0xa4,0x10,
-0x19,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0xa5,0x11,2,0x61,0x2a,
-0x62,0x32,0x73,0xa3,0x60,0x12,0x6c,0x6f,0x67,0xa3,0x62,0x13,0x61,0x6e,0x77,0x61,
-0xa3,0x65,3,0x6c,0x52,0x74,0x56,0x76,0x5e,0x78,0x16,0x75,0x61,0x6e,0x6a,0x69,
-0x6e,0x67,0xa2,0x7c,0x16,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x7c,0x10,0x65,
-0xa3,0x70,0x12,0x68,0x61,0x6d,0xa3,0xae,0x12,0x69,0x65,0x74,0xa3,0xb7,0x11,0x72,
-0x69,0xa3,0xdc,0x11,0x69,0x6c,0x49,0x13,0x6c,0x75,0x67,0x75,0x4b,0x10,0x61,1,
-0x61,0x24,0x69,0x53,0x11,0x6e,0x61,0x3d,2,0x62,0x34,0x66,0x3c,0x72,0x13,0x68,
-0x75,0x74,0x61,0xa3,0xfb,0x13,0x65,0x74,0x61,0x6e,0x57,0x14,0x69,0x6e,0x61,0x67,
-0x68,0xa3,0x90,2,0x63,0x82,0x67,0x92,0x6e,0x1f,0x69,0x66,0x69,0x65,0x64,0x63,
-0x61,0x6e,0x61,0x64,0x69,0x61,0x6e,0x61,0x62,0x6f,0x1f,0x72,0x69,0x67,0x69,0x6e,
-0x61,0x6c,0x73,0x79,0x6c,0x6c,0x61,0x62,0x69,0x63,0x73,0x62,0x17,0x65,0x78,0x74,
-0x65,0x6e,0x64,0x65,0x64,0xa3,0xad,0x11,0x61,0x73,0x62,0x12,0x65,0x78,0x74,0xa3,
-0xad,0x15,0x61,0x72,0x69,0x74,0x69,0x63,0xa3,0x78,0x70,0xc2,0xeb,0x70,0xa6,1,
-0x72,0xa6,0xbd,0x73,7,0x6f,0xc1,0x75,0x6f,0x74,0x70,0x9c,0x75,0xa2,0x5d,0x79,
-1,0x6c,0x4c,0x72,0x12,0x69,0x61,0x63,0x3a,0x12,0x73,0x75,0x70,0xa4,0x17,0x16,
-0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa5,0x17,0x17,0x6f,0x74,0x69,0x6e,0x61,0x67,
-0x72,0x69,0xa3,0x8f,1,0x72,0x30,0x79,0x13,0x6f,0x6d,0x62,0x6f,0xa5,0x16,0x17,
-0x61,0x73,0x6f,0x6d,0x70,0x65,0x6e,0x67,0xa3,0xda,1,0x61,0x32,0x65,0x14,0x63,
-0x69,0x61,0x6c,0x73,0xa3,0x56,0x12,0x63,0x69,0x6e,0x1f,0x67,0x6d,0x6f,0x64,0x69,
-0x66,0x69,0x65,0x72,0x6c,0x65,0x74,0x74,0x65,0x72,0x73,0x2d,2,0x6e,0x48,0x70,
-0x76,0x74,0x1d,0x74,0x6f,0x6e,0x73,0x69,0x67,0x6e,0x77,0x72,0x69,0x74,0x69,0x6e,
-0x67,0xa5,6,0x15,0x64,0x61,0x6e,0x65,0x73,0x65,0xa2,0x9b,0x12,0x73,0x75,0x70,
-0xa2,0xdb,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0xdb,4,0x61,0xa2,0xa8,
-0x65,0x5c,0x6d,0x9e,0x70,0xa2,0x4b,0x73,0x13,0x79,0x6d,0x62,0x6f,0x1f,0x6c,0x73,
-0x61,0x6e,0x64,0x70,0x69,0x63,0x74,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa5,5,
-0x10,0x72,1,0x61,0x4e,0x73,0x12,0x63,0x72,0x69,0x1f,0x70,0x74,0x73,0x61,0x6e,
-0x64,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x73,0x73,0x14,0x6e,0x64,0x73,
-0x75,0x62,0x73,0x1b,0x61,0x74,0x68,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x73,
-0xa3,0x6a,1,0x6c,0x40,0x75,1,0x61,0x6e,0x6e,0x17,0x63,0x74,0x75,0x61,0x74,
-0x69,0x6f,0x6e,0xa3,0x8e,0x15,0x65,0x6d,0x65,0x6e,0x74,0x61,1,0x6c,0x50,0x72,
-0x1e,0x79,0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x75,0x73,0x65,0x61,0x72,0x65,0x61,
-1,0x61,0xa3,0x6d,0x62,0xa3,0x6e,3,0x61,0x5c,0x6d,0x78,0x70,0xa2,0x41,0x73,
+const uint8_t PropNameData::bytesTries[14523]={
+0,0x15,0x6d,0xc3,0x78,0x73,0xc2,0x12,0x76,0x7a,0x76,0x6a,0x77,0xa2,0x52,0x78,
+1,0x64,0x50,0x69,0x10,0x64,1,0x63,0x30,0x73,0x62,0x13,0x74,0x61,0x72,0x74,
+0x63,0x60,0x16,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x61,0x13,0x69,0x67,0x69,0x74,
+0x81,3,0x61,0x2e,0x65,0x4c,0x6f,0xc3,0x18,0x73,0x69,0x1e,0x72,0x69,0x61,0x74,
+0x69,0x6f,0x6e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x69,0x10,0x72,0x1f,0x74,
+0x69,0x63,0x61,0x6c,0x6f,0x72,0x69,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0xc3,
+0x18,3,0x62,0xc3,0x14,0x68,0x32,0x6f,0x42,0x73,0x13,0x70,0x61,0x63,0x65,0x5f,
+0x17,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x5f,0x16,0x72,0x64,0x62,0x72,0x65,
+0x61,0x6b,0xc3,0x14,0x73,0xa2,0x49,0x74,0xa4,0x3b,0x75,3,0x63,0xd9,0x40,0xc,
+0x69,0x52,0x6e,0x58,0x70,0x12,0x70,0x65,0x72,0x5c,0x13,0x63,0x61,0x73,0x65,0x5c,
+0x16,0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,0xd9,0x40,0xc,0x12,0x64,0x65,0x6f,0x5b,
+0x10,0x69,1,0x63,0x3e,0x66,0x1b,0x69,0x65,0x64,0x69,0x64,0x65,0x6f,0x67,0x72,
+0x61,0x70,0x68,0x5b,0x17,0x6f,0x64,0x65,0x31,0x6e,0x61,0x6d,0x65,0xd9,0x40,0xb,
+0xa,0x69,0x84,0x70,0x19,0x70,0x30,0x74,0x36,0x75,0x10,0x63,0xd9,0x40,9,0x12,
+0x61,0x63,0x65,0x5f,1,0x63,0xd9,0x40,8,0x65,0x11,0x72,0x6d,0x67,0x69,0x3c,
+0x6c,0xa2,0x5f,0x6f,0x17,0x66,0x74,0x64,0x6f,0x74,0x74,0x65,0x64,0x57,0x13,0x6d,
+0x70,0x6c,0x65,3,0x63,0x50,0x6c,0x68,0x74,0x8a,0x75,0x1e,0x70,0x70,0x65,0x72,
+0x63,0x61,0x73,0x65,0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,0xd9,0x40,9,0x19,0x61,
+0x73,0x65,0x66,0x6f,0x6c,0x64,0x69,0x6e,0x67,0xd9,0x40,6,0x1e,0x6f,0x77,0x65,
+0x72,0x63,0x61,0x73,0x65,0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,0xd9,0x40,7,0x1e,
+0x69,0x74,0x6c,0x65,0x63,0x61,0x73,0x65,0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,0xd9,
+0x40,8,0x10,0x63,0xd9,0x40,7,0x62,0xc3,0x13,0x63,0x34,0x64,0x57,0x65,0x6e,
+0x66,0x10,0x63,0xd9,0x40,6,0xc2,0xa,2,0x66,0xd9,0x40,6,0x72,0x28,0x78,
+0xd9,0x70,0,0x12,0x69,0x70,0x74,0xc2,0xa,0x19,0x65,0x78,0x74,0x65,0x6e,0x73,
+0x69,0x6f,0x6e,0x73,0xd9,0x70,0,1,0x67,0x6a,0x6e,1,0x73,0x54,0x74,0x13,
+0x65,0x6e,0x63,0x65,1,0x62,0x34,0x74,0x16,0x65,0x72,0x6d,0x69,0x6e,0x61,0x6c,
+0x67,0x13,0x72,0x65,0x61,0x6b,0xc3,0x13,0x14,0x69,0x74,0x69,0x76,0x65,0x65,1,
+0x6d,0x2e,0x73,0x13,0x74,0x61,0x72,0x74,0x73,0x19,0x65,0x6e,0x74,0x73,0x74,0x61,
+0x72,0x74,0x65,0x72,0x73,3,0x63,0x66,0x65,0x72,0x69,0x98,0x72,0x19,0x61,0x69,
+0x6c,0x63,0x61,0x6e,0x6f,0x6e,0x69,0x63,0x1f,0x61,0x6c,0x63,0x6f,0x6d,0x62,0x69,
+0x6e,0x69,0x6e,0x67,0x63,0x6c,0x61,0x73,0x73,0xc3,0x11,0xd8,0x40,0xa,0x11,0x63,
+0x63,0xc3,0x11,0x11,0x72,0x6d,0x58,0x1e,0x69,0x6e,0x61,0x6c,0x70,0x75,0x6e,0x63,
+0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x59,0x1d,0x74,0x6c,0x65,0x63,0x61,0x73,0x65,
+0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,0xd9,0x40,0xa,0x6d,0x70,0x6e,0x76,0x70,0xa2,
+0xf1,0x71,0xa4,0x43,0x72,2,0x61,0x28,0x65,0x32,0x69,0x9d,0x14,0x64,0x69,0x63,
+0x61,0x6c,0x55,0x1e,0x67,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x6e,0x64,0x69,0x63,0x61,
+0x74,0x6f,0x72,0x9d,0x12,0x61,0x74,0x68,0x4f,6,0x6f,0x39,0x6f,0x32,0x74,0xc3,
+9,0x75,0x54,0x76,0xd9,0x30,0,0x12,0x6e,0x63,0x68,0x1f,0x61,0x72,0x61,0x63,
+0x74,0x65,0x72,0x63,0x6f,0x64,0x65,0x70,0x6f,0x69,0x6e,0x74,0x51,0x14,0x6d,0x65,
+0x72,0x69,0x63,1,0x74,0x32,0x76,0x13,0x61,0x6c,0x75,0x65,0xd9,0x30,0,0x12,
+0x79,0x70,0x65,0xc3,9,0x61,0xa2,0x77,0x63,0xa2,0x82,0x66,2,0x63,0x98,0x64,
+0xa2,0x53,0x6b,1,0x63,0x56,0x64,1,0x69,0x42,0x71,1,0x63,0xc3,0xd,0x75,
+0x17,0x69,0x63,0x6b,0x63,0x68,0x65,0x63,0x6b,0xc3,0xd,0x13,0x6e,0x65,0x72,0x74,
+0x6d,1,0x69,0x42,0x71,1,0x63,0xc3,0xf,0x75,0x17,0x69,0x63,0x6b,0x63,0x68,
+0x65,0x63,0x6b,0xc3,0xf,0x13,0x6e,0x65,0x72,0x74,0x71,1,0x69,0x42,0x71,1,
+0x63,0xc3,0xe,0x75,0x17,0x69,0x63,0x6b,0x63,0x68,0x65,0x63,0x6b,0xc3,0xe,0x13,
+0x6e,0x65,0x72,0x74,0x6f,1,0x69,0x42,0x71,1,0x63,0xc3,0xc,0x75,0x17,0x69,
+0x63,0x6b,0x63,0x68,0x65,0x63,0x6b,0xc3,0xc,0x13,0x6e,0x65,0x72,0x74,0x6b,0xd8,
+0x40,5,1,0x31,0xd9,0x40,0xb,0x6d,0x10,0x65,0xd9,0x40,5,0x12,0x68,0x61,
+0x72,0x51,2,0x61,0x6c,0x63,0xa2,0x4c,0x72,1,0x65,0x2a,0x69,0x11,0x6e,0x74,
+0x7f,0x16,0x70,0x65,0x6e,0x64,0x65,0x64,0x63,0x1f,0x6f,0x6e,0x63,0x61,0x74,0x65,
+0x6e,0x61,0x74,0x69,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x9f,0x10,0x74,2,0x73,0x2c,
+0x74,0x30,0x77,0x10,0x73,0x77,0x11,0x79,0x6e,0x75,0x12,0x65,0x72,0x6e,1,0x73,
+0x38,0x77,0x18,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x77,0x14,0x79,0x6e,
+0x74,0x61,0x78,0x75,0x10,0x6d,0x9f,1,0x6d,0x3c,0x75,0x1a,0x6f,0x74,0x61,0x74,
+0x69,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x53,0x12,0x61,0x72,0x6b,0x53,0x66,0xc1,0xf8,
+0x69,0xc1,0x3c,0x69,0xa2,0x6f,0x6a,0xa4,9,0x6c,4,0x62,0xc3,8,0x63,0x8c,
+0x65,0x98,0x69,0xa2,0x56,0x6f,2,0x65,0x4b,0x67,0x4c,0x77,0x11,0x65,0x72,0x4c,
+0x13,0x63,0x61,0x73,0x65,0x4c,0x16,0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,0xd9,0x40,
+4,0x11,0x69,0x63,0x1f,0x61,0x6c,0x6f,0x72,0x64,0x65,0x72,0x65,0x78,0x63,0x65,
+0x70,0x74,0x69,0x6f,0x6e,0x4b,0xd8,0x40,4,0x11,0x63,0x63,0xc3,0x10,0x18,0x61,
+0x64,0x63,0x61,0x6e,0x6f,0x6e,0x69,0x63,0x1f,0x61,0x6c,0x63,0x6f,0x6d,0x62,0x69,
+0x6e,0x69,0x6e,0x67,0x63,0x6c,0x61,0x73,0x73,0xc3,0x10,0x16,0x6e,0x65,0x62,0x72,
+0x65,0x61,0x6b,0xc3,8,2,0x64,0x4a,0x6e,0xa2,0x5b,0x73,1,0x63,0xd9,0x40,
+3,0x6f,0x16,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0xd9,0x40,3,2,0x63,0x80,
+0x65,0x90,0x73,0x40,1,0x62,0x52,0x74,0x46,1,0x61,0x40,0x72,0x1c,0x69,0x6e,
+0x61,0x72,0x79,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x47,0x11,0x72,0x74,0x41,
+0x44,0x1c,0x69,0x6e,0x61,0x72,0x79,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x45,
+0x3e,0x16,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3f,0x10,0x6f,0x42,0x16,0x67,0x72,
+0x61,0x70,0x68,0x69,0x63,0x43,2,0x64,0x2e,0x70,0x86,0x73,0x10,0x63,0xc3,0x17,
+0x11,0x69,0x63,1,0x70,0x46,0x73,0x1e,0x79,0x6c,0x6c,0x61,0x62,0x69,0x63,0x63,
+0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0xc3,0x17,0x10,0x6f,0x1f,0x73,0x69,0x74,0x69,
+0x6f,0x6e,0x61,0x6c,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0xc3,0x16,0x10,0x63,
+0xc3,0x16,2,0x67,0xc3,6,0x6f,0x26,0x74,0xc3,7,0x11,0x69,0x6e,1,0x63,
+0x4a,0x69,0x11,0x6e,0x67,1,0x67,0x2e,0x74,0x12,0x79,0x70,0x65,0xc3,7,0x13,
+0x72,0x6f,0x75,0x70,0xc3,6,0x48,0x15,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x49,0x66,
+0x86,0x67,0xa2,0x4a,0x68,3,0x61,0x36,0x65,0x58,0x73,0x68,0x79,0x13,0x70,0x68,
+0x65,0x6e,0x3d,0x1f,0x6e,0x67,0x75,0x6c,0x73,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,
+0x74,0x79,0x70,0x65,0xc3,0xb,0x10,0x78,0x3a,0x14,0x64,0x69,0x67,0x69,0x74,0x3b,
+0x10,0x74,0xc3,0xb,0x16,0x75,0x6c,0x6c,0x63,0x6f,0x6d,0x70,0x1f,0x6f,0x73,0x69,
+0x74,0x69,0x6f,0x6e,0x65,0x78,0x63,0x6c,0x75,0x73,0x69,0x6f,0x6e,0x33,2,0x63,
+0xa2,0x44,0x65,0xa2,0x4b,0x72,3,0x61,0x34,0x62,0x84,0x65,0x8a,0x6c,0x12,0x69,
+0x6e,0x6b,0x39,0x11,0x70,0x68,0x7c,0x12,0x65,0x6d,0x65,3,0x62,0x5e,0x63,0x30,
+0x65,0x48,0x6c,0x12,0x69,0x6e,0x6b,0x39,0x1a,0x6c,0x75,0x73,0x74,0x65,0x72,0x62,
+0x72,0x65,0x61,0x6b,0xc3,0x12,0x14,0x78,0x74,0x65,0x6e,0x64,0x37,0x12,0x61,0x73,
+0x65,0x35,0x11,0x78,0x74,0x37,0xc2,5,1,0x62,0xc3,0x12,0x6d,0xd9,0x20,0,
+0x1c,0x6e,0x65,0x72,0x61,0x6c,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0xc2,5,
+0x13,0x6d,0x61,0x73,0x6b,0xd9,0x20,0,0x61,0xa2,0x90,0x62,0xa2,0xbe,0x63,0xa4,
+0x30,0x64,0xa4,0xfd,0x65,5,0x6d,0x63,0x6d,0x6e,0x70,0xa2,0x59,0x78,0x10,0x74,
+0x30,1,0x65,0x2c,0x70,0x12,0x69,0x63,0x74,0xa1,0x12,0x6e,0x64,0x65,1,0x64,
+0x24,0x72,0x31,0x1b,0x70,0x69,0x63,0x74,0x6f,0x67,0x72,0x61,0x70,0x68,0x69,0x63,
+0xa1,0x10,0x6f,1,0x64,0x97,0x6a,0x10,0x69,0x92,2,0x63,0x40,0x6d,0x50,0x70,
+0x1a,0x72,0x65,0x73,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x95,0x17,0x6f,0x6d,
+0x70,0x6f,0x6e,0x65,0x6e,0x74,0x9b,0x16,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x96,
+0x13,0x62,0x61,0x73,0x65,0x99,0x12,0x72,0x65,0x73,0x95,0x61,0x30,0x62,0x4e,0x63,
+0x12,0x6f,0x6d,0x70,0x9b,0xc2,4,0x1b,0x73,0x74,0x61,0x73,0x69,0x61,0x6e,0x77,
+0x69,0x64,0x74,0x68,0xc3,4,0x12,0x61,0x73,0x65,0x99,3,0x67,0x44,0x68,0x4a,
+0x6c,0x4e,0x73,0x1a,0x63,0x69,0x69,0x68,0x65,0x78,0x64,0x69,0x67,0x69,0x74,0x23,
+0x10,0x65,0xd9,0x40,0,0x11,0x65,0x78,0x23,1,0x6e,0x38,0x70,0x11,0x68,0x61,
+0x20,0x14,0x62,0x65,0x74,0x69,0x63,0x21,0x11,0x75,0x6d,0x79,4,0x63,0xc3,0,
+0x69,0x3e,0x6c,0xa2,0x57,0x6d,0xa2,0x64,0x70,1,0x62,0xd9,0x40,0xd,0x74,0xc3,
+0x15,0x11,0x64,0x69,2,0x63,0x54,0x6d,0x74,0x70,0x1b,0x61,0x69,0x72,0x65,0x64,
+0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0xd8,0x40,0xd,0x13,0x74,0x79,0x70,0x65,0xc3,
+0x15,0x24,1,0x6c,0x30,0x6f,0x14,0x6e,0x74,0x72,0x6f,0x6c,0x25,0x12,0x61,0x73,
+0x73,0xc3,0,0x26,0x14,0x69,0x72,0x72,0x6f,0x72,1,0x65,0x38,0x69,0x16,0x6e,
+0x67,0x67,0x6c,0x79,0x70,0x68,0xd9,0x40,1,0x10,0x64,0x27,2,0x61,0x32,0x6b,
+0xc3,1,0x6f,0x11,0x63,0x6b,0xc3,1,0x11,0x6e,0x6b,0x7b,0x10,0x67,0xd9,0x40,
+1,6,0x68,0x7c,0x68,0x54,0x69,0x85,0x6f,0xa2,0x6f,0x77,4,0x63,0x30,0x6b,
+0x36,0x6c,0x87,0x74,0x8b,0x75,0x89,1,0x66,0x8d,0x6d,0x8f,0x11,0x63,0x66,0x91,
+0x18,0x61,0x6e,0x67,0x65,0x73,0x77,0x68,0x65,0x6e,4,0x63,0x44,0x6c,0x6c,0x6e,
+0x7e,0x74,0x98,0x75,0x18,0x70,0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x64,0x89,0x12,
+0x61,0x73,0x65,1,0x66,0x30,0x6d,0x14,0x61,0x70,0x70,0x65,0x64,0x8f,0x14,0x6f,
+0x6c,0x64,0x65,0x64,0x8d,0x18,0x6f,0x77,0x65,0x72,0x63,0x61,0x73,0x65,0x64,0x87,
+0x1c,0x66,0x6b,0x63,0x63,0x61,0x73,0x65,0x66,0x6f,0x6c,0x64,0x65,0x64,0x91,0x18,
+0x69,0x74,0x6c,0x65,0x63,0x61,0x73,0x65,0x64,0x8b,0x13,0x6d,0x70,0x65,0x78,0x33,
+0x61,0x2e,0x63,0xa2,0x48,0x66,0xd9,0x40,2,1,0x6e,0x72,0x73,0x10,0x65,3,
+0x64,0x83,0x66,0x3a,0x69,0x4a,0x73,0x17,0x65,0x6e,0x73,0x69,0x74,0x69,0x76,0x65,
+0x65,0x15,0x6f,0x6c,0x64,0x69,0x6e,0x67,0xd9,0x40,2,0x17,0x67,0x6e,0x6f,0x72,
+0x61,0x62,0x6c,0x65,0x85,0x13,0x6f,0x6e,0x69,0x63,0x1f,0x61,0x6c,0x63,0x6f,0x6d,
+0x62,0x69,0x6e,0x69,0x6e,0x67,0x63,0x6c,0x61,0x73,0x73,0xc3,2,0x10,0x63,0xc3,
+2,3,0x61,0x30,0x65,0x34,0x69,0xa2,0x41,0x74,0xc3,3,0x11,0x73,0x68,0x29,
+2,0x63,0x3a,0x66,0x58,0x70,0x2c,0x16,0x72,0x65,0x63,0x61,0x74,0x65,0x64,0x2d,
+0x1d,0x6f,0x6d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x74,0x79,0x70,0x65,0xc3,
+3,0x15,0x61,0x75,0x6c,0x74,0x69,0x67,0x1f,0x6e,0x6f,0x72,0x61,0x62,0x6c,0x65,
+0x63,0x6f,0x64,0x65,0x70,0x6f,0x69,0x6e,0x74,0x2b,0x2a,0x10,0x61,0x2e,0x15,0x63,
+0x72,0x69,0x74,0x69,0x63,0x2f,3,0x66,0x34,0x6e,0x3e,0x74,0x42,0x79,0x22,0x11,
+0x65,0x73,0x23,0x20,0x13,0x61,0x6c,0x73,0x65,0x21,0x20,0x10,0x6f,0x21,0x22,0x12,
+0x72,0x75,0x65,0x23,0xa,0x6b,0x5b,0x6f,0x23,0x6f,0x3c,0x72,0x4c,0x76,1,0x69,
+0x24,0x72,0x33,0x13,0x72,0x61,0x6d,0x61,0x33,0x10,0x76,0x22,0x14,0x65,0x72,0x6c,
+0x61,0x79,0x23,0xa2,0xe2,0x13,0x69,0x67,0x68,0x74,0xa3,0xe2,0x6b,0x58,0x6c,0x74,
+0x6e,3,0x6b,0x2f,0x6f,0x30,0x72,0x21,0x75,0x12,0x6b,0x74,0x61,0x2f,0x19,0x74,
+0x72,0x65,0x6f,0x72,0x64,0x65,0x72,0x65,0x64,0x21,1,0x61,0x24,0x76,0x31,0x18,
+0x6e,0x61,0x76,0x6f,0x69,0x63,0x69,0x6e,0x67,0x31,0xa2,0xe0,0x12,0x65,0x66,0x74,
+0xa3,0xe0,0x61,0x5c,0x62,0xa2,0x77,0x63,0xa2,0x96,0x64,0xa4,0xa,0x69,1,0x6f,
+0x26,0x73,0xa3,0xf0,0x1a,0x74,0x61,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,
+0xa3,0xf0,0xa2,0xe6,3,0x62,0xa0,0x6c,0xa3,0xe4,0x72,0xa3,0xe8,0x74,2,0x61,
+0x74,0x62,0x7c,0x74,0x14,0x61,0x63,0x68,0x65,0x64,1,0x61,0x3e,0x62,0x13,0x65,
+0x6c,0x6f,0x77,0xa2,0xca,0x13,0x6c,0x65,0x66,0x74,0xa3,0xc8,0x13,0x62,0x6f,0x76,
+0x65,0xa2,0xd6,0x14,0x72,0x69,0x67,0x68,0x74,0xa3,0xd8,0xa2,0xd6,0x10,0x72,0xa3,
+0xd8,0xa2,0xca,0x10,0x6c,0xa3,0xc8,0x12,0x6f,0x76,0x65,0xa2,0xe6,1,0x6c,0x30,
+0x72,0x13,0x69,0x67,0x68,0x74,0xa3,0xe8,0x12,0x65,0x66,0x74,0xa3,0xe4,0xa2,0xdc,
+2,0x65,0x2c,0x6c,0xa3,0xda,0x72,0xa3,0xde,0x12,0x6c,0x6f,0x77,0xa2,0xdc,1,
+0x6c,0x30,0x72,0x13,0x69,0x67,0x68,0x74,0xa3,0xde,0x12,0x65,0x66,0x74,0xa3,0xda,
+0x11,0x63,0x63,4,0x31,0x3c,0x32,0xa2,0x42,0x33,0xa2,0x56,0x38,0xa2,0x64,0x39,
+0x10,0x31,0xa3,0x5b,9,0x35,0xa,0x35,0x3f,0x36,0x41,0x37,0x43,0x38,0x45,0x39,
+0x47,0x30,0x30,0x31,0x3c,0x32,0x42,0x33,0x4e,0x34,0x3d,0x34,1,0x33,0xa3,0x67,
+0x37,0xa3,0x6b,0x36,0x10,0x38,0xa3,0x76,0x38,1,0x32,0xa3,0x7a,0x39,0xa3,0x81,
+0x3a,2,0x30,0xa3,0x82,0x32,0xa3,0x84,0x33,0xa3,0x85,9,0x35,0xa,0x35,0x53,
+0x36,0x55,0x37,0x57,0x38,0x59,0x39,0x5b,0x30,0x49,0x31,0x4b,0x32,0x4d,0x33,0x4f,
+0x34,0x51,6,0x33,8,0x33,0x63,0x34,0x65,0x35,0x67,0x36,0x69,0x30,0x5d,0x31,
+0x5f,0x32,0x61,0x10,0x34,0xa3,0x54,2,0x61,0xa3,0xea,0x62,0xa3,0xe9,0x6f,0x13,
+0x75,0x62,0x6c,0x65,1,0x61,0x30,0x62,0x13,0x65,0x6c,0x6f,0x77,0xa3,0xe9,0x13,
+0x62,0x6f,0x76,0x65,0xa3,0xea,0xb,0x6e,0xc0,0xca,0x72,0x5f,0x72,0x46,0x73,0xa2,
+0x48,0x77,1,0x68,0x24,0x73,0x33,0x17,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,
+0x33,0x22,1,0x69,0x30,0x6c,2,0x65,0x3d,0x69,0x4b,0x6f,0x3f,0x18,0x67,0x68,
+0x74,0x74,0x6f,0x6c,0x65,0x66,0x74,0x22,2,0x65,0x38,0x69,0x48,0x6f,0x16,0x76,
+0x65,0x72,0x72,0x69,0x64,0x65,0x3f,0x17,0x6d,0x62,0x65,0x64,0x64,0x69,0x6e,0x67,
+0x3d,0x15,0x73,0x6f,0x6c,0x61,0x74,0x65,0x4b,0x30,0x1e,0x65,0x67,0x6d,0x65,0x6e,
+0x74,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x31,0x6e,0xa2,0x41,0x6f,0xa2,
+0x53,0x70,2,0x61,0x66,0x64,0x86,0x6f,0x1b,0x70,0x64,0x69,0x72,0x65,0x63,0x74,
+0x69,0x6f,0x6e,0x61,0x6c,1,0x66,0x32,0x69,0x15,0x73,0x6f,0x6c,0x61,0x74,0x65,
+0x4d,0x14,0x6f,0x72,0x6d,0x61,0x74,0x41,0x1f,0x72,0x61,0x67,0x72,0x61,0x70,0x68,
+0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x2f,1,0x66,0x41,0x69,0x4d,1,
+0x6f,0x28,0x73,0x10,0x6d,0x43,0x1b,0x6e,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x6d,
+0x61,0x72,0x6b,0x43,1,0x6e,0x35,0x74,0x19,0x68,0x65,0x72,0x6e,0x65,0x75,0x74,
+0x72,0x61,0x6c,0x35,0x65,0x88,0x65,0x98,0x66,0xa2,0x6a,0x6c,0x20,1,0x65,0x30,
+0x72,2,0x65,0x37,0x69,0x49,0x6f,0x39,0x18,0x66,0x74,0x74,0x6f,0x72,0x69,0x67,
+0x68,0x74,0x20,2,0x65,0x38,0x69,0x48,0x6f,0x16,0x76,0x65,0x72,0x72,0x69,0x64,
+0x65,0x39,0x17,0x6d,0x62,0x65,0x64,0x64,0x69,0x6e,0x67,0x37,0x15,0x73,0x6f,0x6c,
+0x61,0x74,0x65,0x49,3,0x6e,0x25,0x73,0x27,0x74,0x29,0x75,0x15,0x72,0x6f,0x70,
+0x65,0x61,0x6e,2,0x6e,0x3c,0x73,0x46,0x74,0x18,0x65,0x72,0x6d,0x69,0x6e,0x61,
+0x74,0x6f,0x72,0x29,0x14,0x75,0x6d,0x62,0x65,0x72,0x25,0x17,0x65,0x70,0x61,0x72,
+0x61,0x74,0x6f,0x72,0x27,1,0x69,0x28,0x73,0x10,0x69,0x47,0x1f,0x72,0x73,0x74,
+0x73,0x74,0x72,0x6f,0x6e,0x67,0x69,0x73,0x6f,0x6c,0x61,0x74,0x65,0x47,0x61,0x4e,
+0x62,0x84,0x63,1,0x6f,0x24,0x73,0x2d,0x1c,0x6d,0x6d,0x6f,0x6e,0x73,0x65,0x70,
+0x61,0x72,0x61,0x74,0x6f,0x72,0x2d,2,0x6c,0x3b,0x6e,0x2b,0x72,0x13,0x61,0x62,
+0x69,0x63,1,0x6c,0x30,0x6e,0x14,0x75,0x6d,0x62,0x65,0x72,0x2b,0x14,0x65,0x74,
+0x74,0x65,0x72,0x3b,0x2e,1,0x6e,0x45,0x6f,0x1c,0x75,0x6e,0x64,0x61,0x72,0x79,
+0x6e,0x65,0x75,0x74,0x72,0x61,0x6c,0x45,0,0x16,0x6d,0xc7,0xfe,0x74,0xc1,0xb8,
+0x77,0x57,0x77,0x48,0x79,0x5c,0x7a,0x1d,0x61,0x6e,0x61,0x62,0x61,0x7a,0x61,0x72,
+0x73,0x71,0x75,0x61,0x72,0x65,0xa5,0x18,0x18,0x61,0x72,0x61,0x6e,0x67,0x63,0x69,
+0x74,0x69,0xa3,0xfc,0x10,0x69,2,0x6a,0x3c,0x72,0x68,0x73,0x17,0x79,0x6c,0x6c,
+0x61,0x62,0x6c,0x65,0x73,0xa3,0x48,0x12,0x69,0x6e,0x67,0xa2,0x74,0x1e,0x68,0x65,
+0x78,0x61,0x67,0x72,0x61,0x6d,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x74,0x16,
+0x61,0x64,0x69,0x63,0x61,0x6c,0x73,0xa3,0x49,0x74,0xa2,0x59,0x75,0xa4,0x12,0x76,
+2,0x61,0x36,0x65,0x7a,0x73,0xa2,0x6c,0x12,0x73,0x75,0x70,0xa3,0x7d,1,0x69,
+0xa3,0x9f,0x72,0x1e,0x69,0x61,0x74,0x69,0x6f,0x6e,0x73,0x65,0x6c,0x65,0x63,0x74,
+0x6f,0x72,0x73,0xa2,0x6c,0x19,0x73,0x75,0x70,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,
+0xa3,0x7d,1,0x64,0x3c,0x72,0x19,0x74,0x69,0x63,0x61,0x6c,0x66,0x6f,0x72,0x6d,
+0x73,0xa3,0x91,0x14,0x69,0x63,0x65,0x78,0x74,0xa2,0xaf,0x16,0x65,0x6e,0x73,0x69,
+0x6f,0x6e,0x73,0xa3,0xaf,4,0x61,0x68,0x65,0xa2,0x8a,0x68,0xa2,0x8d,0x69,0xa2,
+0x95,0x72,0x1c,0x61,0x6e,0x73,0x70,0x6f,0x72,0x74,0x61,0x6e,0x64,0x6d,0x61,0x70,
+0xa2,0xcf,0x16,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xcf,4,0x67,0x58,0x69,
+0x7e,0x6b,0xa2,0x58,0x6d,0xa2,0x5a,0x6e,0x12,0x67,0x75,0x74,0xa4,0x10,0x19,0x63,
+0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0xa5,0x11,2,0x61,0x2a,0x62,0x32,
+0x73,0xa3,0x60,0x12,0x6c,0x6f,0x67,0xa3,0x62,0x13,0x61,0x6e,0x77,0x61,0xa3,0x65,
+3,0x6c,0x52,0x74,0x56,0x76,0x5e,0x78,0x16,0x75,0x61,0x6e,0x6a,0x69,0x6e,0x67,
+0xa2,0x7c,0x16,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x7c,0x10,0x65,0xa3,0x70,
+0x12,0x68,0x61,0x6d,0xa3,0xae,0x12,0x69,0x65,0x74,0xa3,0xb7,0x11,0x72,0x69,0xa3,
+0xdc,0x11,0x69,0x6c,0x49,0x13,0x6c,0x75,0x67,0x75,0x4b,0x10,0x61,1,0x61,0x24,
+0x69,0x53,0x11,0x6e,0x61,0x3d,2,0x62,0x34,0x66,0x3c,0x72,0x13,0x68,0x75,0x74,
+0x61,0xa3,0xfb,0x13,0x65,0x74,0x61,0x6e,0x57,0x14,0x69,0x6e,0x61,0x67,0x68,0xa3,
+0x90,2,0x63,0x82,0x67,0x92,0x6e,0x1f,0x69,0x66,0x69,0x65,0x64,0x63,0x61,0x6e,
+0x61,0x64,0x69,0x61,0x6e,0x61,0x62,0x6f,0x1f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,
+0x73,0x79,0x6c,0x6c,0x61,0x62,0x69,0x63,0x73,0x62,0x17,0x65,0x78,0x74,0x65,0x6e,
+0x64,0x65,0x64,0xa3,0xad,0x11,0x61,0x73,0x62,0x12,0x65,0x78,0x74,0xa3,0xad,0x15,
+0x61,0x72,0x69,0x74,0x69,0x63,0xa3,0x78,0x70,0xc2,0xf5,0x70,0xa6,0xb,0x72,0xa6,
+0xc7,0x73,7,0x6f,0xc1,0x7f,0x6f,0x76,0x70,0xa2,0x47,0x75,0xa2,0x66,0x79,1,
+0x6c,0x4c,0x72,0x12,0x69,0x61,0x63,0x3a,0x12,0x73,0x75,0x70,0xa4,0x17,0x16,0x70,
+0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa5,0x17,0x17,0x6f,0x74,0x69,0x6e,0x61,0x67,0x72,
+0x69,0xa3,0x8f,2,0x67,0x34,0x72,0x3e,0x79,0x13,0x6f,0x6d,0x62,0x6f,0xa5,0x16,
+0x13,0x64,0x69,0x61,0x6e,0xa5,0x23,0x17,0x61,0x73,0x6f,0x6d,0x70,0x65,0x6e,0x67,
+0xa3,0xda,1,0x61,0x32,0x65,0x14,0x63,0x69,0x61,0x6c,0x73,0xa3,0x56,0x12,0x63,
+0x69,0x6e,0x1f,0x67,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x6c,0x65,0x74,0x74,
+0x65,0x72,0x73,0x2d,2,0x6e,0x48,0x70,0x76,0x74,0x1d,0x74,0x6f,0x6e,0x73,0x69,
+0x67,0x6e,0x77,0x72,0x69,0x74,0x69,0x6e,0x67,0xa5,6,0x15,0x64,0x61,0x6e,0x65,
+0x73,0x65,0xa2,0x9b,0x12,0x73,0x75,0x70,0xa2,0xdb,0x16,0x70,0x6c,0x65,0x6d,0x65,
+0x6e,0x74,0xa3,0xdb,4,0x61,0xa2,0xa8,0x65,0x5c,0x6d,0x9e,0x70,0xa2,0x4b,0x73,
0x13,0x79,0x6d,0x62,0x6f,0x1f,0x6c,0x73,0x61,0x6e,0x64,0x70,0x69,0x63,0x74,0x6f,
-0x67,0x72,0x61,0x70,0x68,0x73,0xa5,5,0x14,0x72,0x72,0x6f,0x77,0x73,2,0x61,
-0xa3,0x67,0x62,0xa3,0x68,0x63,0xa3,0xfa,0x13,0x61,0x74,0x68,0x65,0x1f,0x6d,0x61,
-0x74,0x69,0x63,0x61,0x6c,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x73,0xa3,0x6a,
-0x19,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xa3,0x8e,0x61,0x5a,0x68,
-0x84,0x69,0xa2,0x5b,0x6d,0x16,0x61,0x6c,0x6c,0x66,0x6f,0x72,0x6d,1,0x73,0xa3,
-0x54,0x76,0x16,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0xa3,0x54,1,0x6d,0x36,0x75,
-0x16,0x72,0x61,0x73,0x68,0x74,0x72,0x61,0xa3,0xa1,0x15,0x61,0x72,0x69,0x74,0x61,
-0x6e,0xa3,0xac,1,0x61,0x52,0x6f,0x13,0x72,0x74,0x68,0x61,0x1f,0x6e,0x64,0x66,
-0x6f,0x72,0x6d,0x61,0x74,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x73,0xa3,0xf7,1,
-0x72,0x2e,0x76,0x12,0x69,0x61,0x6e,0xa3,0x79,0x12,0x61,0x64,0x61,0xa3,0xd9,1,
-0x64,0x50,0x6e,0x13,0x68,0x61,0x6c,0x61,0x50,0x1d,0x61,0x72,0x63,0x68,0x61,0x69,
-0x63,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0xa3,0xf9,0x13,0x64,0x68,0x61,0x6d,0xa3,
-0xf8,5,0x72,0x35,0x72,0x44,0x73,0x64,0x75,1,0x61,0xa3,0x4e,0x6e,0x17,0x63,
-0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x71,0x17,0x69,0x76,0x61,0x74,0x65,0x75,0x73,
-0x65,0xa2,0x4e,0x13,0x61,0x72,0x65,0x61,0xa3,0x4e,0x1b,0x61,0x6c,0x74,0x65,0x72,
-0x70,0x61,0x68,0x6c,0x61,0x76,0x69,0xa3,0xf6,0x61,0x40,0x68,0x82,0x6c,0x19,0x61,
-0x79,0x69,0x6e,0x67,0x63,0x61,0x72,0x64,0x73,0xa3,0xcc,2,0x68,0x38,0x6c,0x4a,
-0x75,0x15,0x63,0x69,0x6e,0x68,0x61,0x75,0xa3,0xf5,0x17,0x61,0x77,0x68,0x68,0x6d,
-0x6f,0x6e,0x67,0xa3,0xf3,0x15,0x6d,0x79,0x72,0x65,0x6e,0x65,0xa3,0xf4,1,0x61,
-0x8e,0x6f,1,0x65,0x74,0x6e,0x16,0x65,0x74,0x69,0x63,0x65,0x78,0x74,0xa2,0x72,
-1,0x65,0x2c,0x73,0x11,0x75,0x70,0xa3,0x8d,0x15,0x6e,0x73,0x69,0x6f,0x6e,0x73,
-0xa2,0x72,0x19,0x73,0x75,0x70,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x8d,0x15,
-0x6e,0x69,0x63,0x69,0x61,0x6e,0xa3,0x97,1,0x67,0x3e,0x69,0x13,0x73,0x74,0x6f,
-0x73,0xa2,0xa6,0x13,0x64,0x69,0x73,0x63,0xa3,0xa6,0x12,0x73,0x70,0x61,0xa3,0x96,
-1,0x65,0x5c,0x75,1,0x6d,0x2a,0x6e,0x11,0x69,0x63,0x67,0x10,0x69,0xa2,0xc0,
-0x1d,0x6e,0x75,0x6d,0x65,0x72,0x61,0x6c,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,
-0xc0,0x13,0x6a,0x61,0x6e,0x67,0xa3,0xa3,0x6d,0xa2,0xc3,0x6e,0xa6,0xd2,0x6f,5,
-0x70,0x4b,0x70,0x46,0x72,0x7a,0x73,1,0x61,0x30,0x6d,0x13,0x61,0x6e,0x79,0x61,
-0xa3,0x7a,0x11,0x67,0x65,0xa5,0xf,0x18,0x74,0x69,0x63,0x61,0x6c,0x63,0x68,0x61,
-0x72,0x1f,0x61,0x63,0x74,0x65,0x72,0x72,0x65,0x63,0x6f,0x67,0x6e,0x69,0x74,0x69,
-0x6f,0x6e,0x85,1,0x69,0x46,0x6e,0x1e,0x61,0x6d,0x65,0x6e,0x74,0x61,0x6c,0x64,
-0x69,0x6e,0x67,0x62,0x61,0x74,0x73,0xa3,0xf2,0x11,0x79,0x61,0x47,0x63,0xa2,0x66,
-0x67,0xa2,0x66,0x6c,1,0x63,0xa2,0x57,0x64,5,0x70,0x2d,0x70,0x36,0x73,0x56,
-0x74,0x14,0x75,0x72,0x6b,0x69,0x63,0xa3,0xbf,0x11,0x65,0x72,1,0x6d,0x2e,0x73,
-0x12,0x69,0x61,0x6e,0xa3,0x8c,0x11,0x69,0x63,0xa3,0xf1,0x1a,0x6f,0x75,0x74,0x68,
-0x61,0x72,0x61,0x62,0x69,0x61,0x6e,0xa3,0xbb,0x68,0x42,0x69,0x54,0x6e,0x1a,0x6f,
-0x72,0x74,0x68,0x61,0x72,0x61,0x62,0x69,0x61,0x6e,0xa3,0xf0,0x17,0x75,0x6e,0x67,
-0x61,0x72,0x69,0x61,0x6e,0xa5,4,0x14,0x74,0x61,0x6c,0x69,0x63,0xa3,0x58,0x13,
-0x68,0x69,0x6b,0x69,0xa3,0x9d,0x10,0x72,0x85,0x12,0x68,0x61,0x6d,0x65,6,0x6f,
-0x86,0x6f,0x6c,0x72,0xa2,0x61,0x75,0xa2,0x62,0x79,0x14,0x61,0x6e,0x6d,0x61,0x72,
-0x58,0x12,0x65,0x78,0x74,2,0x61,0xa3,0xb6,0x62,0xa3,0xee,0x65,0x13,0x6e,0x64,
-0x65,0x64,1,0x61,0xa3,0xb6,0x62,0xa3,0xee,1,0x64,0x52,0x6e,0x15,0x67,0x6f,
-0x6c,0x69,0x61,0x6e,0x6a,0x12,0x73,0x75,0x70,0xa4,0xd,0x16,0x70,0x6c,0x65,0x6d,
-0x65,0x6e,0x74,0xa5,0xd,0x10,0x69,0xa2,0xec,0x13,0x66,0x69,0x65,0x72,1,0x6c,
-0x3c,0x74,0x19,0x6f,0x6e,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x73,0xa3,0x8a,0x15,
-0x65,0x74,0x74,0x65,0x72,0x73,0x2d,0x10,0x6f,0xa3,0xed,1,0x6c,0x44,0x73,0x11,
-0x69,0x63,0xa2,0x5c,0x18,0x61,0x6c,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x5c,
-0x13,0x74,0x61,0x6e,0x69,0xa5,3,0x61,0xa2,0x9b,0x65,0xa4,0x36,0x69,1,0x61,
-0xa2,0x8f,0x73,0x10,0x63,5,0x70,0x18,0x70,0xa2,0x71,0x73,0x36,0x74,0x17,0x65,
-0x63,0x68,0x6e,0x69,0x63,0x61,0x6c,0x81,0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x8f,
-0x61,0xa2,0x66,0x65,0x46,0x6d,0x19,0x61,0x74,0x68,0x73,0x79,0x6d,0x62,0x6f,0x6c,
-0x73,1,0x61,0xa3,0x66,0x62,0xa3,0x69,0x17,0x6c,0x6c,0x61,0x6e,0x65,0x6f,0x75,
-0x73,2,0x6d,0x3a,0x73,0x6c,0x74,0x17,0x65,0x63,0x68,0x6e,0x69,0x63,0x61,0x6c,
-0x81,0x11,0x61,0x74,0x1f,0x68,0x65,0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,0x73,0x79,
-0x6d,0x62,0x6f,0x6c,0x73,1,0x61,0xa3,0x66,0x62,0xa3,0x69,0x15,0x79,0x6d,0x62,
-0x6f,0x6c,0x73,0x8e,0x12,0x61,0x6e,0x64,1,0x61,0x3c,0x70,0x19,0x69,0x63,0x74,
-0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa3,0xcd,0x14,0x72,0x72,0x6f,0x77,0x73,0xa3,
-0x73,0x10,0x6f,0xa3,0xd8,5,0x72,0x62,0x72,0xa2,0x4c,0x73,0xa2,0x50,0x74,0x10,
-0x68,2,0x61,0x3a,0x65,0x4a,0x6f,0x17,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x73,
-0x7f,0x16,0x6c,0x70,0x68,0x61,0x6e,0x75,0x6d,0xa3,0x5d,0x16,0x6d,0x61,0x74,0x69,
-0x63,0x61,0x6c,1,0x61,0x36,0x6f,0x17,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x73,
-0x7f,0x11,0x6c,0x70,0x1f,0x68,0x61,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x73,0x79,
-0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x5d,0x13,0x63,0x68,0x65,0x6e,0xa5,0xc,0x18,0x61,
-0x72,0x61,0x6d,0x67,0x6f,0x6e,0x64,0x69,0xa5,0x14,0x68,0x4c,0x6c,0x7a,0x6e,1,
-0x64,0x34,0x69,0x15,0x63,0x68,0x61,0x65,0x61,0x6e,0xa3,0xea,0x12,0x61,0x69,0x63,
-0xa3,0xc6,1,0x61,0x3e,0x6a,0x12,0x6f,0x6e,0x67,0xa2,0xaa,0x14,0x74,0x69,0x6c,
-0x65,0x73,0xa3,0xaa,0x13,0x6a,0x61,0x6e,0x69,0xa3,0xe9,0x15,0x61,0x79,0x61,0x6c,
-0x61,0x6d,0x4f,2,0x65,0x66,0x6e,0x98,0x72,0x14,0x6f,0x69,0x74,0x69,0x63,1,
-0x63,0x3c,0x68,0x19,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0xd7,
-0x15,0x75,0x72,0x73,0x69,0x76,0x65,0xa3,0xd6,0x17,0x74,0x65,0x69,0x6d,0x61,0x79,
-0x65,0x6b,0xa2,0xb8,0x12,0x65,0x78,0x74,0xa2,0xd5,0x16,0x65,0x6e,0x73,0x69,0x6f,
-0x6e,0x73,0xa3,0xd5,0x18,0x64,0x65,0x6b,0x69,0x6b,0x61,0x6b,0x75,0x69,0xa3,0xeb,
-5,0x6b,0x23,0x6b,0x4c,0x6f,0x50,0x75,1,0x6d,0x2c,0x73,0x11,0x68,0x75,0xa5,
-0x15,0x17,0x62,0x65,0x72,0x66,0x6f,0x72,0x6d,0x73,0x7b,0x10,0x6f,0xa3,0x92,0x14,
-0x62,0x6c,0x6f,0x63,0x6b,0x21,0x61,0x44,0x62,0x21,0x65,0x10,0x77,1,0x61,0xa5,
-0xe,0x74,0x14,0x61,0x69,0x6c,0x75,0x65,0xa3,0x8b,0x16,0x62,0x61,0x74,0x61,0x65,
-0x61,0x6e,0xa3,0xef,0x67,0xc3,0xcd,0x6a,0xc1,0x95,0x6a,0xa2,0xc5,0x6b,0xa2,0xde,
-0x6c,4,0x61,0x54,0x65,0xa2,0x61,0x69,0xa2,0x78,0x6f,0xa2,0xa7,0x79,1,0x63,
-0x2e,0x64,0x12,0x69,0x61,0x6e,0xa3,0xa9,0x12,0x69,0x61,0x6e,0xa3,0xa7,1,0x6f,
-0x55,0x74,0x11,0x69,0x6e,1,0x31,0x82,0x65,0x11,0x78,0x74,4,0x61,0x5c,0x62,
-0x29,0x63,0xa3,0x94,0x64,0xa3,0x95,0x65,0xa2,0xe7,0x13,0x6e,0x64,0x65,0x64,4,
-0x61,0x36,0x62,0x29,0x63,0xa3,0x94,0x64,0xa3,0x95,0x65,0xa3,0xe7,0x26,0x18,0x64,
-0x64,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x6d,0x24,0x12,0x73,0x75,0x70,0x24,0x16,
-0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x25,1,0x70,0x42,0x74,0x1d,0x74,0x65,0x72,
-0x6c,0x69,0x6b,0x65,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x79,0x12,0x63,0x68,0x61,
-0xa3,0x9c,2,0x6d,0x2e,0x6e,0x34,0x73,0x10,0x75,0xa3,0xb0,0x11,0x62,0x75,0xa3,
-0x6f,0x12,0x65,0x61,0x72,1,0x61,0xa3,0xe8,0x62,1,0x69,0x38,0x73,0x17,0x79,
-0x6c,0x6c,0x61,0x62,0x61,0x72,0x79,0xa3,0x75,0x17,0x64,0x65,0x6f,0x67,0x72,0x61,
-0x6d,0x73,0xa3,0x76,0x1a,0x77,0x73,0x75,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x73,
-0xa3,0x4d,0x10,0x61,1,0x6d,0x32,0x76,0x14,0x61,0x6e,0x65,0x73,0x65,0xa3,0xb5,
-0x10,0x6f,0x5c,0x12,0x65,0x78,0x74,1,0x61,0xa3,0xb4,0x62,0xa3,0xb9,1,0x61,
-0x80,0x68,3,0x61,0x3c,0x6d,0x4c,0x6f,0x64,0x75,0x15,0x64,0x61,0x77,0x61,0x64,
-0x69,0xa3,0xe6,0x16,0x72,0x6f,0x73,0x68,0x74,0x68,0x69,0xa3,0x89,0x11,0x65,0x72,
-0x68,0x16,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x71,0x12,0x6a,0x6b,0x69,0xa3,
-0xe5,3,0x69,0x3a,0x6e,0x42,0x74,0xa2,0x51,0x79,0x13,0x61,0x68,0x6c,0x69,0xa3,
-0xa2,0x12,0x74,0x68,0x69,0xa3,0xc1,3,0x61,0x34,0x62,0x76,0x67,0x7c,0x6e,0x12,
-0x61,0x64,0x61,0x4d,1,0x65,0x40,0x73,0x11,0x75,0x70,0xa2,0xcb,0x16,0x70,0x6c,
-0x65,0x6d,0x65,0x6e,0x74,0xa3,0xcb,0x11,0x78,0x74,1,0x61,0xa5,0x13,0x65,0x14,
-0x6e,0x64,0x65,0x64,0x61,0xa5,0x13,0x11,0x75,0x6e,0xa3,0x42,0x11,0x78,0x69,0x96,
-0x17,0x72,0x61,0x64,0x69,0x63,0x61,0x6c,0x73,0x97,0x14,0x61,0x6b,0x61,0x6e,0x61,
-0x9e,1,0x65,0x4c,0x70,0x10,0x68,0x1f,0x6f,0x6e,0x65,0x74,0x69,0x63,0x65,0x78,
-0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xa3,0x6b,0x11,0x78,0x74,0xa3,0x6b,0x67,
-0xa2,0xa3,0x68,0xa4,0x53,0x69,3,0x64,0x4c,0x6d,0xa2,0x55,0x6e,0xa2,0x62,0x70,
-0x13,0x61,0x65,0x78,0x74,0x2a,0x16,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73,0x2b,1,
-0x63,0x99,0x65,0x17,0x6f,0x67,0x72,0x61,0x70,0x68,0x69,0x63,1,0x64,0x56,0x73,
-0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa4,0xb,0x1d,0x61,0x6e,0x64,0x70,0x75,0x6e,
-0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xa5,0xb,0x13,0x65,0x73,0x63,0x72,0x1f,
-0x69,0x70,0x74,0x69,0x6f,0x6e,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,
-0x99,0x1c,0x70,0x65,0x72,0x69,0x61,0x6c,0x61,0x72,0x61,0x6d,0x61,0x69,0x63,0xa3,
-0xba,1,0x64,0x62,0x73,0x1b,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x61,0x6c,
-0x70,0x61,1,0x68,0x32,0x72,0x14,0x74,0x68,0x69,0x61,0x6e,0xa3,0xbd,0x13,0x6c,
-0x61,0x76,0x69,0xa3,0xbe,0x1c,0x69,0x63,0x6e,0x75,0x6d,0x62,0x65,0x72,0x66,0x6f,
-0x72,0x6d,0x73,0xa3,0xb2,4,0x65,0x58,0x6c,0xa2,0x63,0x6f,0xa2,0x7b,0x72,0xa2,
-0x7f,0x75,1,0x6a,0x30,0x72,0x14,0x6d,0x75,0x6b,0x68,0x69,0x43,0x14,0x61,0x72,
-0x61,0x74,0x69,0x45,1,0x6e,0x8c,0x6f,1,0x6d,0x4e,0x72,0x13,0x67,0x69,0x61,
-0x6e,0x5a,0x12,0x73,0x75,0x70,0xa2,0x87,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,
-0xa3,0x87,0x1a,0x65,0x74,0x72,0x69,0x63,0x73,0x68,0x61,0x70,0x65,0x73,0x8c,0x12,
-0x65,0x78,0x74,0xa2,0xe3,0x14,0x65,0x6e,0x64,0x65,0x64,0xa3,0xe3,0x1e,0x65,0x72,
-0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x71,0x17,0x61,
-0x67,0x6f,0x6c,0x69,0x74,0x69,0x63,0xa2,0x88,0x12,0x73,0x75,0x70,0xa4,0xa,0x16,
-0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa5,0xa,0x13,0x74,0x68,0x69,0x63,0xa3,0x59,
-1,0x61,0x5c,0x65,0x11,0x65,0x6b,0x30,1,0x61,0x38,0x65,0x11,0x78,0x74,0x6e,
-0x14,0x65,0x6e,0x64,0x65,0x64,0x6f,0x17,0x6e,0x64,0x63,0x6f,0x70,0x74,0x69,0x63,
-0x31,0x13,0x6e,0x74,0x68,0x61,0xa3,0xe4,2,0x61,0xa2,0x48,0x65,0xa2,0xcf,0x69,
-1,0x67,0x30,0x72,0x14,0x61,0x67,0x61,0x6e,0x61,0x9d,0x10,0x68,1,0x70,0x3a,
-0x73,0x18,0x75,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x73,0xa3,0x4b,1,0x72,0x3c,
-0x75,0x19,0x73,0x75,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x73,0xa3,0x4c,0x11,0x69,
-0x76,0x1f,0x61,0x74,0x65,0x75,0x73,0x65,0x73,0x75,0x72,0x72,0x6f,0x67,0x61,0x74,
-0x65,0x73,0xa3,0x4c,2,0x6c,0x32,0x6e,0x9a,0x74,0x12,0x72,0x61,0x6e,0xa5,2,
-0x10,0x66,2,0x61,0x58,0x6d,0x70,0x77,0x14,0x69,0x64,0x74,0x68,0x61,0x1f,0x6e,
-0x64,0x66,0x75,0x6c,0x6c,0x77,0x69,0x64,0x74,0x68,0x66,0x6f,0x72,0x6d,0x73,0xa3,
-0x57,0x1a,0x6e,0x64,0x66,0x75,0x6c,0x6c,0x66,0x6f,0x72,0x6d,0x73,0xa3,0x57,0x13,
-0x61,0x72,0x6b,0x73,0xa3,0x52,1,0x67,0x2e,0x75,0x12,0x6e,0x6f,0x6f,0xa3,0x63,
-0x11,0x75,0x6c,0xa2,0x4a,2,0x63,0x3c,0x6a,0x5e,0x73,0x17,0x79,0x6c,0x6c,0x61,
-0x62,0x6c,0x65,0x73,0xa3,0x4a,0x1f,0x6f,0x6d,0x70,0x61,0x74,0x69,0x62,0x69,0x6c,
-0x69,0x74,0x79,0x6a,0x61,0x6d,0x6f,0xa3,0x41,0x12,0x61,0x6d,0x6f,0x5c,0x17,0x65,
-0x78,0x74,0x65,0x6e,0x64,0x65,0x64,1,0x61,0xa3,0xb4,0x62,0xa3,0xb9,0x13,0x62,
-0x72,0x65,0x77,0x37,0x61,0xa2,0xe9,0x62,0xa6,0x29,0x63,0xa6,0xfe,0x64,0xac,0x7c,
-0x65,5,0x6d,0xa2,0x6d,0x86,0x6e,0x96,0x74,0x15,0x68,0x69,0x6f,0x70,0x69,0x63,
-0x5e,1,0x65,0x40,0x73,0x11,0x75,0x70,0xa2,0x86,0x16,0x70,0x6c,0x65,0x6d,0x65,
-0x6e,0x74,0xa3,0x86,0x11,0x78,0x74,0xa2,0x85,1,0x61,0xa3,0xc8,0x65,0x13,0x6e,
-0x64,0x65,0x64,0xa2,0x85,0x10,0x61,0xa3,0xc8,0x16,0x6f,0x74,0x69,0x63,0x6f,0x6e,
-0x73,0xa3,0xce,0x15,0x63,0x6c,0x6f,0x73,0x65,0x64,2,0x61,0x5a,0x63,0x9e,0x69,
-0x1c,0x64,0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x69,0x63,0x73,0x75,0x70,0xa2,0xc4,
-0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0xc4,0x16,0x6c,0x70,0x68,0x61,0x6e,
-0x75,0x6d,0x86,1,0x65,0x2c,0x73,0x11,0x75,0x70,0xa3,0xc3,0x13,0x72,0x69,0x63,
-0x73,0x86,0x18,0x75,0x70,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0xc3,0x11,0x6a,
-0x6b,0xa2,0x44,0x1f,0x6c,0x65,0x74,0x74,0x65,0x72,0x73,0x61,0x6e,0x64,0x6d,0x6f,
-0x6e,0x74,0x68,0x73,0xa3,0x44,0x61,0x36,0x67,0x62,0x6c,0x14,0x62,0x61,0x73,0x61,
-0x6e,0xa3,0xe2,0x13,0x72,0x6c,0x79,0x64,0x1f,0x79,0x6e,0x61,0x73,0x74,0x69,0x63,
-0x63,0x75,0x6e,0x65,0x69,0x66,0x6f,0x72,0x6d,0xa5,1,0x10,0x79,0x1f,0x70,0x74,
-0x69,0x61,0x6e,0x68,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0xc2,
-7,0x6e,0xc0,0xe5,0x6e,0x3e,0x72,0xa2,0x5d,0x73,0xa2,0xd8,0x76,0x14,0x65,0x73,
-0x74,0x61,0x6e,0xa3,0xbc,1,0x61,0x92,0x63,0x13,0x69,0x65,0x6e,0x74,1,0x67,
-0x34,0x73,0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xa5,0x13,0x72,0x65,0x65,0x6b,
-1,0x6d,0x34,0x6e,0x15,0x75,0x6d,0x62,0x65,0x72,0x73,0xa3,0x7f,0x13,0x75,0x73,
-0x69,0x63,0xa2,0x7e,0x19,0x61,0x6c,0x6e,0x6f,0x74,0x61,0x74,0x69,0x6f,0x6e,0xa3,
-0x7e,0x10,0x74,0x1f,0x6f,0x6c,0x69,0x61,0x6e,0x68,0x69,0x65,0x72,0x6f,0x67,0x6c,
-0x79,0x70,0x68,0x73,0xa3,0xfe,2,0x61,0x32,0x6d,0xa2,0x71,0x72,0x12,0x6f,0x77,
-0x73,0x7d,0x12,0x62,0x69,0x63,0x38,3,0x65,0x4a,0x6d,0x66,0x70,0xa2,0x43,0x73,
-0x11,0x75,0x70,0xa2,0x80,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x80,0x11,
-0x78,0x74,1,0x61,0xa3,0xd2,0x65,0x14,0x6e,0x64,0x65,0x64,0x61,0xa3,0xd2,0x12,
-0x61,0x74,0x68,0xa2,0xd3,0x18,0x65,0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,0x61,0x1f,
-0x6c,0x70,0x68,0x61,0x62,0x65,0x74,0x69,0x63,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,
-0xa3,0xd3,1,0x66,0x42,0x72,0x1e,0x65,0x73,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,
-0x6e,0x66,0x6f,0x72,0x6d,0x73,1,0x61,0xa3,0x51,0x62,0xa3,0x55,0x14,0x65,0x6e,
-0x69,0x61,0x6e,0x35,0x12,0x63,0x69,0x69,0x23,0x64,0x9e,0x65,0xa2,0x42,0x68,0xa2,
-0x4d,0x6c,1,0x63,0x62,0x70,0x17,0x68,0x61,0x62,0x65,0x74,0x69,0x63,0x70,1,
-0x66,0xa3,0x50,0x72,0x1e,0x65,0x73,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x66,
-0x6f,0x72,0x6d,0x73,0xa3,0x50,0x16,0x68,0x65,0x6d,0x69,0x63,0x61,0x6c,0xa2,0xd0,
-0x16,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xd0,0x12,0x6c,0x61,0x6d,0xa5,7,
-0x1a,0x67,0x65,0x61,0x6e,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0xa3,0x77,0x11,0x6f,
-0x6d,0xa3,0xfd,7,0x6f,0x71,0x6f,0x64,0x72,0xa2,0x41,0x75,0xa2,0x58,0x79,0x1b,
-0x7a,0x61,0x6e,0x74,0x69,0x6e,0x65,0x6d,0x75,0x73,0x69,0x63,0xa2,0x5b,0x18,0x61,
-0x6c,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x5b,1,0x70,0x34,0x78,0x16,0x64,
-0x72,0x61,0x77,0x69,0x6e,0x67,0x89,0x14,0x6f,0x6d,0x6f,0x66,0x6f,0xa0,0x12,0x65,
-0x78,0x74,0xa2,0x43,0x14,0x65,0x6e,0x64,0x65,0x64,0xa3,0x43,0x10,0x61,1,0x68,
-0x40,0x69,0x12,0x6c,0x6c,0x65,0x92,0x17,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x73,
-0x93,0x11,0x6d,0x69,0xa3,0xc9,1,0x67,0x2c,0x68,0x11,0x69,0x64,0xa3,0x64,0x14,
-0x69,0x6e,0x65,0x73,0x65,0xa3,0x81,0x61,0x48,0x65,0xa2,0x4e,0x68,0xa2,0x52,0x6c,
-0x1a,0x6f,0x63,0x6b,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x8b,3,0x6c,0x34,
-0x6d,0x40,0x73,0x66,0x74,0x11,0x61,0x6b,0xa3,0xc7,0x14,0x69,0x6e,0x65,0x73,0x65,
-0xa3,0x93,0x11,0x75,0x6d,0xa2,0xb1,0x12,0x73,0x75,0x70,0xa2,0xca,0x16,0x70,0x6c,
-0x65,0x6d,0x65,0x6e,0x74,0xa3,0xca,1,0x69,0x30,0x73,0x13,0x61,0x76,0x61,0x68,
-0xa3,0xdd,0x15,0x63,0x6c,0x61,0x74,0x69,0x6e,0x23,0x14,0x6e,0x67,0x61,0x6c,0x69,
-0x41,0x16,0x61,0x69,0x6b,0x73,0x75,0x6b,0x69,0xa5,8,5,0x6f,0xc1,0x4c,0x6f,
-0xa2,0x55,0x75,0xa4,0x10,0x79,1,0x70,0x9c,0x72,0x14,0x69,0x6c,0x6c,0x69,0x63,
-0x32,1,0x65,0x4c,0x73,0x11,0x75,0x70,0xa2,0x61,0x16,0x70,0x6c,0x65,0x6d,0x65,
-0x6e,0x74,0xa2,0x61,0x12,0x61,0x72,0x79,0xa3,0x61,0x11,0x78,0x74,3,0x61,0xa3,
-0x9e,0x62,0xa3,0xa0,0x63,0xa5,9,0x65,0x13,0x6e,0x64,0x65,0x64,2,0x61,0xa3,
-0x9e,0x62,0xa3,0xa0,0x63,0xa5,9,0x1c,0x72,0x69,0x6f,0x74,0x73,0x79,0x6c,0x6c,
-0x61,0x62,0x61,0x72,0x79,0xa3,0x7b,3,0x6d,0x5a,0x6e,0xa2,0x95,0x70,0xa2,0xa0,
-0x75,0x17,0x6e,0x74,0x69,0x6e,0x67,0x72,0x6f,0x64,0xa2,0x9a,0x17,0x6e,0x75,0x6d,
-0x65,0x72,0x61,0x6c,0x73,0xa3,0x9a,2,0x62,0x3a,0x6d,0xa2,0x5f,0x70,0x15,0x61,
-0x74,0x6a,0x61,0x6d,0x6f,0xa3,0x41,0x14,0x69,0x6e,0x69,0x6e,0x67,2,0x64,0x46,
-0x68,0x9e,0x6d,0x1d,0x61,0x72,0x6b,0x73,0x66,0x6f,0x72,0x73,0x79,0x6d,0x62,0x6f,
-0x6c,0x73,0x77,0x1e,0x69,0x61,0x63,0x72,0x69,0x74,0x69,0x63,0x61,0x6c,0x6d,0x61,
-0x72,0x6b,0x73,0x2e,2,0x65,0x40,0x66,0xa6,0x1c,0x73,0x18,0x75,0x70,0x70,0x6c,
-0x65,0x6d,0x65,0x6e,0x74,0xa3,0x83,0x16,0x78,0x74,0x65,0x6e,0x64,0x65,0x64,0xa3,
-0xe0,0x17,0x61,0x6c,0x66,0x6d,0x61,0x72,0x6b,0x73,0xa3,0x52,0x11,0x6f,0x6e,0x1f,
-0x69,0x6e,0x64,0x69,0x63,0x6e,0x75,0x6d,0x62,0x65,0x72,0x66,0x6f,0x72,0x6d,0x73,
-0xa3,0xb2,0x1b,0x74,0x72,0x6f,0x6c,0x70,0x69,0x63,0x74,0x75,0x72,0x65,0x73,0x83,
-0x12,0x74,0x69,0x63,0xa2,0x84,0x1b,0x65,0x70,0x61,0x63,0x74,0x6e,0x75,0x6d,0x62,
-0x65,0x72,0x73,0xa3,0xdf,1,0x6e,0x3e,0x72,0x1b,0x72,0x65,0x6e,0x63,0x79,0x73,
-0x79,0x6d,0x62,0x6f,0x6c,0x73,0x75,0x15,0x65,0x69,0x66,0x6f,0x72,0x6d,0xa2,0x98,
-0x16,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0xa2,0x99,0x1d,0x61,0x6e,0x64,0x70,0x75,
-0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xa3,0x99,0x61,0xa2,0xdb,0x68,0xa4,
-5,0x6a,0x10,0x6b,0xa2,0x47,4,0x63,0x86,0x65,0xa2,0x7d,0x72,0xa2,0x92,0x73,
-0xa2,0xa4,0x75,0x1f,0x6e,0x69,0x66,0x69,0x65,0x64,0x69,0x64,0x65,0x6f,0x67,0x72,
-0x61,0x70,0x68,0x73,0xa2,0x47,0x18,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,
-5,0x64,0x65,0x64,0xa3,0xd1,0x65,0xa5,0,0x66,0xa5,0x12,0x14,0x6f,0x6d,0x70,
-0x61,0x74,0xa2,0x45,1,0x66,0x96,0x69,1,0x62,0x44,0x64,0x17,0x65,0x6f,0x67,
-0x72,0x61,0x70,0x68,0x73,0xa2,0x4f,0x12,0x73,0x75,0x70,0xa3,0x5f,0x14,0x69,0x6c,
-0x69,0x74,0x79,0xa2,0x45,1,0x66,0x54,0x69,0x18,0x64,0x65,0x6f,0x67,0x72,0x61,
-0x70,0x68,0x73,0xa2,0x4f,0x19,0x73,0x75,0x70,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,
-0xa3,0x5f,0x13,0x6f,0x72,0x6d,0x73,0xa3,0x53,0x11,0x78,0x74,5,0x64,9,0x64,
-0xa3,0xd1,0x65,0xa5,0,0x66,0xa5,0x12,0x61,0xa3,0x46,0x62,0xa3,0x5e,0x63,0xa3,
-0xc5,0x19,0x61,0x64,0x69,0x63,0x61,0x6c,0x73,0x73,0x75,0x70,0x94,0x16,0x70,0x6c,
-0x65,0x6d,0x65,0x6e,0x74,0x95,1,0x74,0x50,0x79,0x14,0x6d,0x62,0x6f,0x6c,0x73,
-0x9a,0x1d,0x61,0x6e,0x64,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,
-0x9b,0x14,0x72,0x6f,0x6b,0x65,0x73,0xa3,0x82,2,0x6e,0x48,0x72,0x64,0x75,0x1d,
-0x63,0x61,0x73,0x69,0x61,0x6e,0x61,0x6c,0x62,0x61,0x6e,0x69,0x61,0x6e,0xa3,0xde,
-0x1d,0x61,0x64,0x69,0x61,0x6e,0x73,0x79,0x6c,0x6c,0x61,0x62,0x69,0x63,0x73,0x63,
-0x12,0x69,0x61,0x6e,0xa3,0xa8,1,0x61,0x50,0x65,0x14,0x72,0x6f,0x6b,0x65,0x65,
-0x60,0x12,0x73,0x75,0x70,0xa2,0xff,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,
-0xff,1,0x6b,0x26,0x6d,0xa3,0xa4,0x11,0x6d,0x61,0xa3,0xd4,3,0x65,0x3e,0x69,
-0x7e,0x6f,0xa2,0x5d,0x75,0x15,0x70,0x6c,0x6f,0x79,0x61,0x6e,0xa3,0xe1,1,0x73,
-0x50,0x76,0x16,0x61,0x6e,0x61,0x67,0x61,0x72,0x69,0x3e,0x12,0x65,0x78,0x74,0xa2,
-0xb3,0x14,0x65,0x6e,0x64,0x65,0x64,0xa3,0xb3,0x13,0x65,0x72,0x65,0x74,0xa3,0x5a,
-1,0x61,0x30,0x6e,0x14,0x67,0x62,0x61,0x74,0x73,0x91,0x18,0x63,0x72,0x69,0x74,
-0x69,0x63,0x61,0x6c,0x73,0x2e,2,0x65,0x30,0x66,0x36,0x73,0x11,0x75,0x70,0xa3,
-0x83,0x11,0x78,0x74,0xa3,0xe0,0x18,0x6f,0x72,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,
-0x77,0x13,0x6d,0x69,0x6e,0x6f,0xa2,0xab,0x14,0x74,0x69,0x6c,0x65,0x73,0xa3,0xab,
-8,0x6d,0x5f,0x6d,0x3a,0x6e,0x48,0x73,0x7a,0x76,0xa2,0x4b,0x77,0x12,0x69,0x64,
-0x65,0x43,0x11,0x65,0x64,0x32,0x12,0x69,0x61,0x6c,0x33,2,0x61,0x40,0x62,0x37,
-0x6f,1,0x62,0x28,0x6e,0x10,0x65,0x21,0x13,0x72,0x65,0x61,0x6b,0x37,0x10,0x72,
-0x34,0x12,0x72,0x6f,0x77,0x35,2,0x6d,0x38,0x71,0x46,0x75,1,0x62,0x3d,0x70,
-0x3e,0x11,0x65,0x72,0x3f,1,0x61,0x24,0x6c,0x39,0x11,0x6c,0x6c,0x39,1,0x72,
-0x3b,0x75,0x12,0x61,0x72,0x65,0x3b,0x12,0x65,0x72,0x74,0x40,0x13,0x69,0x63,0x61,
-0x6c,0x41,0x63,0x58,0x65,0x92,0x66,0x96,0x69,1,0x6e,0x36,0x73,0x10,0x6f,0x30,
-0x14,0x6c,0x61,0x74,0x65,0x64,0x31,0x11,0x69,0x74,0x2e,0x12,0x69,0x61,0x6c,0x2f,
-2,0x61,0x36,0x69,0x48,0x6f,0x10,0x6d,0x24,0x12,0x70,0x61,0x74,0x25,0x10,0x6e,
-0x22,0x15,0x6f,0x6e,0x69,0x63,0x61,0x6c,0x23,0x13,0x72,0x63,0x6c,0x65,0x27,0x11,
-0x6e,0x63,0x27,2,0x69,0x3a,0x6f,0x44,0x72,0x10,0x61,0x2c,0x14,0x63,0x74,0x69,
-0x6f,0x6e,0x2d,0x10,0x6e,0x28,0x11,0x61,0x6c,0x29,0x11,0x6e,0x74,0x2b,4,0x61,
-0x3a,0x66,0x4c,0x68,0x5e,0x6e,0x70,0x77,0x2a,0x12,0x69,0x64,0x65,0x2b,0x22,0x17,
-0x6d,0x62,0x69,0x67,0x75,0x6f,0x75,0x73,0x23,0x26,0x17,0x75,0x6c,0x6c,0x77,0x69,
-0x64,0x74,0x68,0x27,0x24,0x17,0x61,0x6c,0x66,0x77,0x69,0x64,0x74,0x68,0x25,0x20,
-1,0x61,0x30,0x65,0x14,0x75,0x74,0x72,0x61,0x6c,0x21,0x28,0x13,0x72,0x72,0x6f,
-0x77,0x29,0xd,0x6e,0xc0,0xfb,0x73,0x6d,0x73,0x3a,0x74,0x98,0x75,0xa2,0x49,0x7a,
-2,0x6c,0x3b,0x70,0x3d,0x73,0x39,5,0x6f,0x28,0x6f,0x57,0x70,0x34,0x75,0x16,
-0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x45,0x11,0x61,0x63,1,0x65,0x32,0x69,0x15,
-0x6e,0x67,0x6d,0x61,0x72,0x6b,0x31,0x18,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,
-0x72,0x39,0x63,0x53,0x6b,0x55,0x6d,0x51,0x1d,0x69,0x74,0x6c,0x65,0x63,0x61,0x73,
-0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x27,1,0x6e,0x40,0x70,0x1c,0x70,0x65,0x72,
-0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x23,0x17,0x61,0x73,0x73,0x69,
-0x67,0x6e,0x65,0x64,0x21,0x6e,0x8a,0x6f,0xa2,0x47,0x70,8,0x66,0x14,0x66,0x5b,
-0x69,0x59,0x6f,0x4f,0x72,0x24,0x73,0x49,0x17,0x69,0x76,0x61,0x74,0x65,0x75,0x73,
-0x65,0x43,0x61,0x2c,0x63,0x4d,0x64,0x47,0x65,0x4b,0x1f,0x72,0x61,0x67,0x72,0x61,
-0x70,0x68,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x3d,2,0x64,0x33,0x6c,
-0x35,0x6f,0x36,0x1b,0x6e,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,
-0x2d,1,0x70,0x7c,0x74,0x12,0x68,0x65,0x72,3,0x6c,0x38,0x6e,0x42,0x70,0x4c,
-0x73,0x14,0x79,0x6d,0x62,0x6f,0x6c,0x57,0x14,0x65,0x74,0x74,0x65,0x72,0x2b,0x14,
-0x75,0x6d,0x62,0x65,0x72,0x37,0x19,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,
-0x6e,0x4f,0x1c,0x65,0x6e,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,
-0x49,0x66,0x9e,0x66,0x88,0x69,0xa2,0x4b,0x6c,0xa2,0x5c,0x6d,4,0x61,0x60,0x63,
-0x31,0x65,0x2f,0x6e,0x2d,0x6f,0x15,0x64,0x69,0x66,0x69,0x65,0x72,1,0x6c,0x30,
-0x73,0x14,0x79,0x6d,0x62,0x6f,0x6c,0x55,0x14,0x65,0x74,0x74,0x65,0x72,0x29,0x17,
-0x74,0x68,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x51,1,0x69,0x2e,0x6f,0x13,0x72,0x6d,
-0x61,0x74,0x41,0x1d,0x6e,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,
-0x6f,0x6e,0x5b,0x10,0x6e,0x1f,0x69,0x74,0x69,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,
-0x75,0x61,0x74,0x69,0x6f,0x6e,0x59,6,0x6d,0x18,0x6d,0x29,0x6f,0x28,0x74,0x27,
-0x75,0x23,0x2a,0x1c,0x77,0x65,0x72,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,
-0x72,0x25,0x65,0x28,0x69,0x3c,0x6c,0x25,0x19,0x74,0x74,0x65,0x72,0x6e,0x75,0x6d,
-0x62,0x65,0x72,0x35,0x1a,0x6e,0x65,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,
-0x3b,0x63,0x44,0x64,0xa2,0x60,0x65,0x1b,0x6e,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,
-0x6d,0x61,0x72,0x6b,0x2f,6,0x6e,0x39,0x6e,0x46,0x6f,0x4e,0x73,0x45,0x75,0x1b,
-0x72,0x72,0x65,0x6e,0x63,0x79,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x53,0x20,0x12,0x74,
-0x72,0x6c,0x3f,0x42,0x10,0x6e,1,0x6e,0x2c,0x74,0x12,0x72,0x6f,0x6c,0x3f,0x1f,
-0x65,0x63,0x74,0x6f,0x72,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,
-0x4d,0x63,0x3f,0x66,0x41,0x6c,0x1d,0x6f,0x73,0x65,0x70,0x75,0x6e,0x63,0x74,0x75,
-0x61,0x74,0x69,0x6f,0x6e,0x4b,2,0x61,0x30,0x65,0x4a,0x69,0x12,0x67,0x69,0x74,
-0x33,0x1c,0x73,0x68,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x47,
-0x1a,0x63,0x69,0x6d,0x61,0x6c,0x6e,0x75,0x6d,0x62,0x65,0x72,0x33,0,0x12,0x6d,
-0xc2,0x3f,0x73,0xa1,0x73,0x4e,0x74,0xa2,0x56,0x77,0xa2,0x72,0x79,0xa2,0x73,0x7a,
-1,0x61,0x2c,0x68,0x12,0x61,0x69,0x6e,0x8b,0x11,0x69,0x6e,0x85,5,0x74,0x22,
-0x74,0x38,0x77,0x4c,0x79,0x16,0x72,0x69,0x61,0x63,0x77,0x61,0x77,0x6f,0x18,0x72,
-0x61,0x69,0x67,0x68,0x74,0x77,0x61,0x77,0xa3,0x55,0x15,0x61,0x73,0x68,0x6b,0x61,
-0x66,0x6d,0x61,0x2e,0x65,0x38,0x68,0x11,0x69,0x6e,0x6b,0x10,0x64,0x62,0x11,0x68,
-0x65,0x65,1,0x65,0x2e,0x6d,0x13,0x6b,0x61,0x74,0x68,0x69,0x10,0x6e,0x67,1,
-0x61,0x4e,0x65,1,0x68,0x28,0x74,0x10,0x68,0x77,0x16,0x6d,0x61,0x72,0x62,0x75,
-0x74,0x61,0x74,0x13,0x67,0x6f,0x61,0x6c,0x3d,1,0x68,0x71,0x77,0x73,0x11,0x61,
-0x77,0x79,1,0x65,0x32,0x75,0x11,0x64,0x68,0x80,0x11,0x68,0x65,0x83,0x10,0x68,
-0x7a,1,0x62,0x34,0x77,0x16,0x69,0x74,0x68,0x74,0x61,0x69,0x6c,0x7f,0x14,0x61,
-0x72,0x72,0x65,0x65,0x7d,0x6d,0x6c,0x6e,0xa4,0x6b,0x70,0xa4,0x88,0x71,0xa4,0x88,
-0x72,1,0x65,0x38,0x6f,0x18,0x68,0x69,0x6e,0x67,0x79,0x61,0x79,0x65,0x68,0x93,
-1,0x68,0x5f,0x76,0x16,0x65,0x72,0x73,0x65,0x64,0x70,0x65,0x61,2,0x61,0x2e,
-0x65,0xa4,0x3e,0x69,0x10,0x6d,0x53,1,0x6c,0xa2,0xe7,0x6e,0x16,0x69,0x63,0x68,
-0x61,0x65,0x61,0x6e,0,0x12,0x6e,0x76,0x73,0x51,0x73,0x3e,0x74,0x5c,0x77,0xa0,
-0x79,0xa2,0x42,0x7a,0x13,0x61,0x79,0x69,0x6e,0xa3,0x54,0x10,0x61,1,0x64,0x2e,
-0x6d,0x12,0x65,0x6b,0x68,0xa3,0x4c,0x11,0x68,0x65,0xa3,0x4b,3,0x61,0x38,0x65,
-0x3c,0x68,0x4a,0x77,0x13,0x65,0x6e,0x74,0x79,0xa3,0x51,0x10,0x77,0xa3,0x4d,1,
-0x6e,0xa3,0x4e,0x74,0x10,0x68,0xa3,0x4f,0x14,0x61,0x6d,0x65,0x64,0x68,0xa3,0x50,
-0x11,0x61,0x77,0xa3,0x52,0x12,0x6f,0x64,0x68,0xa3,0x53,0x6e,0x3a,0x6f,0x40,0x70,
-0x46,0x71,0x4a,0x72,0x12,0x65,0x73,0x68,0xa3,0x4a,0x11,0x75,0x6e,0xa3,0x46,0x11,
-0x6e,0x65,0xa3,0x47,0x10,0x65,0xa3,0x48,0x12,0x6f,0x70,0x68,0xa3,0x49,0x67,0x33,
-0x67,0x38,0x68,0x40,0x6b,0x5e,0x6c,0x66,0x6d,0x11,0x65,0x6d,0xa3,0x45,0x13,0x69,
-0x6d,0x65,0x6c,0xa1,1,0x65,0x32,0x75,0x14,0x6e,0x64,0x72,0x65,0x64,0xa3,0x42,
-0x11,0x74,0x68,0xa3,0x41,0x12,0x61,0x70,0x68,0xa3,0x43,0x14,0x61,0x6d,0x65,0x64,
-0x68,0xa3,0x44,0x61,0x34,0x62,0x4a,0x64,0x50,0x66,0x12,0x69,0x76,0x65,0x9f,1,
-0x6c,0x2a,0x79,0x11,0x69,0x6e,0x97,0x12,0x65,0x70,0x68,0x95,0x12,0x65,0x74,0x68,
-0x99,1,0x61,0x30,0x68,0x14,0x61,0x6d,0x65,0x64,0x68,0x9d,0x13,0x6c,0x65,0x74,
-0x68,0x9b,0x15,0x61,0x79,0x61,0x6c,0x61,0x6d,6,0x6e,0x2c,0x6e,0x34,0x72,0x5e,
-0x73,0x62,0x74,0x11,0x74,0x61,0xa3,0x63,2,0x67,0x2e,0x6e,0x32,0x79,0x10,0x61,
-0xa3,0x60,0x10,0x61,0xa3,0x5d,1,0x61,0xa3,0x5e,0x6e,0x10,0x61,0xa3,0x5f,0x10,
-0x61,0xa3,0x61,0x11,0x73,0x61,0xa3,0x62,0x62,0x3c,0x6a,0x42,0x6c,0x10,0x6c,1,
-0x61,0xa3,0x5b,0x6c,0x10,0x61,0xa3,0x5c,0x11,0x68,0x61,0xa3,0x59,0x10,0x61,0xa3,
-0x5a,0x11,0x65,0x6d,0x51,2,0x6f,0x2c,0x75,0x50,0x79,0x10,0x61,0x91,1,0x6a,
-0x28,0x6f,0x10,0x6e,0x55,0x1a,0x6f,0x69,0x6e,0x69,0x6e,0x67,0x67,0x72,0x6f,0x75,
-0x70,0x21,0x10,0x6e,0x57,0x10,0x65,0x59,0x10,0x61,1,0x66,0x5b,0x70,0x10,0x68,
-0x5d,0x66,0x7b,0x66,0x42,0x67,0x7a,0x68,0x8a,0x6b,0xa2,0x56,0x6c,0x11,0x61,0x6d,
-0x4c,0x12,0x61,0x64,0x68,0x4f,2,0x61,0x3e,0x65,0x4a,0x69,0x19,0x6e,0x61,0x6c,
-0x73,0x65,0x6d,0x6b,0x61,0x74,0x68,0x35,0x15,0x72,0x73,0x69,0x79,0x65,0x68,0x8f,
-0x86,0x10,0x68,0x33,0x10,0x61,1,0x66,0x37,0x6d,0x11,0x61,0x6c,0x39,1,0x61,
-0x40,0x65,0x3e,1,0x68,0x28,0x74,0x10,0x68,0x45,0x40,0x13,0x67,0x6f,0x61,0x6c,
-0x43,1,0x68,0x3b,0x6d,0x1a,0x7a,0x61,0x6f,0x6e,0x68,0x65,0x68,0x67,0x6f,0x61,
-0x6c,0x3d,2,0x61,0x3a,0x68,0x44,0x6e,0x17,0x6f,0x74,0x74,0x65,0x64,0x68,0x65,
-0x68,0x4b,1,0x66,0x47,0x70,0x10,0x68,0x49,0x12,0x61,0x70,0x68,0x89,0x61,0x2e,
-0x62,0x8a,0x64,0xa2,0x51,0x65,0x31,2,0x66,0x3c,0x69,0x70,0x6c,1,0x61,0x28,
-0x65,0x10,0x66,0x27,0x11,0x70,0x68,0x25,0x14,0x72,0x69,0x63,0x61,0x6e,2,0x66,
-0x30,0x6e,0x36,0x71,0x11,0x61,0x66,0xa3,0x58,0x11,0x65,0x68,0xa3,0x56,0x12,0x6f,
-0x6f,0x6e,0xa3,0x57,0x10,0x6e,0x23,1,0x65,0x4a,0x75,0x10,0x72,0x1f,0x75,0x73,
-0x68,0x61,0x73,0x6b,0x69,0x79,0x65,0x68,0x62,0x61,0x72,0x72,0x65,0x65,0x8d,1,
-0x68,0x29,0x74,0x10,0x68,0x2b,0x11,0x61,0x6c,0x2c,0x16,0x61,0x74,0x68,0x72,0x69,
-0x73,0x68,0x2f,7,0x6e,0x2e,0x6e,0x2c,0x72,0x3e,0x74,0x56,0x75,0x21,0x18,0x6f,
-0x6e,0x6a,0x6f,0x69,0x6e,0x69,0x6e,0x67,0x21,0x28,0x1a,0x69,0x67,0x68,0x74,0x6a,
-0x6f,0x69,0x6e,0x69,0x6e,0x67,0x29,0x2a,0x19,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,
-0x65,0x6e,0x74,0x2b,0x63,0x23,0x64,0x40,0x6a,0x56,0x6c,0x26,0x19,0x65,0x66,0x74,
-0x6a,0x6f,0x69,0x6e,0x69,0x6e,0x67,0x27,0x24,0x19,0x75,0x61,0x6c,0x6a,0x6f,0x69,
-0x6e,0x69,0x6e,0x67,0x25,0x19,0x6f,0x69,0x6e,0x63,0x61,0x75,0x73,0x69,0x6e,0x67,
-0x23,0,0x13,0x6e,0xc0,0xd0,0x73,0x49,0x73,0x48,0x75,0x78,0x77,0x84,0x78,0x9c,
-0x7a,0x10,0x77,0x58,1,0x6a,0x75,0x73,0x13,0x70,0x61,0x63,0x65,0x59,4,0x61,
-0x51,0x67,0x53,0x70,0x28,0x75,0x30,0x79,0x57,0x54,0x12,0x61,0x63,0x65,0x55,0x16,
-0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x53,0x15,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x21,
-1,0x6a,0x5d,0x6f,0x17,0x72,0x64,0x6a,0x6f,0x69,0x6e,0x65,0x72,0x5d,0x10,0x78,
-0x21,0x6e,0x60,0x6f,0xa2,0x41,0x70,0xa2,0x50,0x71,0xa2,0x6e,0x72,1,0x65,0x24,
-0x69,0x6f,0x1e,0x67,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,
-0x6f,0x72,0x6f,4,0x65,0x3e,0x6c,0x5b,0x6f,0x46,0x73,0x45,0x75,0x46,0x14,0x6d,
-0x65,0x72,0x69,0x63,0x47,0x15,0x78,0x74,0x6c,0x69,0x6e,0x65,0x5b,0x17,0x6e,0x73,
-0x74,0x61,0x72,0x74,0x65,0x72,0x45,0x10,0x70,0x48,0x1c,0x65,0x6e,0x70,0x75,0x6e,
-0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x49,1,0x6f,0x3e,0x72,0x4c,0x1a,0x65,
-0x66,0x69,0x78,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x4d,0x4a,0x1b,0x73,0x74,0x66,
-0x69,0x78,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x4b,0x10,0x75,0x4e,0x16,0x6f,0x74,
-0x61,0x74,0x69,0x6f,0x6e,0x4f,0x68,0x7b,0x68,0x50,0x69,0x86,0x6a,0xa2,0x61,0x6c,
-0xa2,0x65,0x6d,0x1c,0x61,0x6e,0x64,0x61,0x74,0x6f,0x72,0x79,0x62,0x72,0x65,0x61,
-0x6b,0x2d,4,0x32,0x5f,0x33,0x61,0x65,0x34,0x6c,0x6d,0x79,0x3a,0x13,0x70,0x68,
-0x65,0x6e,0x3b,0x19,0x62,0x72,0x65,0x77,0x6c,0x65,0x74,0x74,0x65,0x72,0x6d,2,
-0x64,0x28,0x6e,0x3c,0x73,0x41,0x3c,0x18,0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x69,
-0x63,0x3d,0x3e,1,0x66,0x3e,0x73,0x11,0x65,0x70,1,0x61,0x22,0x65,0x14,0x72,
-0x61,0x62,0x6c,0x65,0x3f,0x18,0x69,0x78,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x41,
-2,0x6c,0x63,0x74,0x65,0x76,0x67,1,0x66,0x43,0x69,0x15,0x6e,0x65,0x66,0x65,
-0x65,0x64,0x43,0x61,0x40,0x62,0x70,0x63,0xa2,0x55,0x65,0xa2,0xdb,0x67,0x10,0x6c,
-0x38,0x11,0x75,0x65,0x39,2,0x69,0x23,0x6c,0x34,0x6d,0x16,0x62,0x69,0x67,0x75,
-0x6f,0x75,0x73,0x23,0x24,0x17,0x70,0x68,0x61,0x62,0x65,0x74,0x69,0x63,0x25,4,
-0x32,0x27,0x61,0x29,0x62,0x2b,0x6b,0x2d,0x72,0x12,0x65,0x61,0x6b,2,0x61,0x36,
-0x62,0x3e,0x73,0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x57,0x13,0x66,0x74,0x65,0x72,
-0x29,1,0x65,0x2a,0x6f,0x11,0x74,0x68,0x27,0x13,0x66,0x6f,0x72,0x65,0x2b,7,
-0x6d,0x51,0x6d,0x33,0x6f,0x28,0x70,0x69,0x72,0x35,1,0x6d,0x76,0x6e,1,0x64,
-0x3c,0x74,0x1a,0x69,0x6e,0x67,0x65,0x6e,0x74,0x62,0x72,0x65,0x61,0x6b,0x2f,0x15,
-0x69,0x74,0x69,0x6f,0x6e,0x61,0x1f,0x6c,0x6a,0x61,0x70,0x61,0x6e,0x65,0x73,0x65,
-0x73,0x74,0x61,0x72,0x74,0x65,0x72,0x6b,1,0x62,0x3a,0x70,0x19,0x6c,0x65,0x78,
-0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x51,0x18,0x69,0x6e,0x69,0x6e,0x67,0x6d,0x61,
-0x72,0x6b,0x33,0x61,0x6a,0x62,0x2f,0x6a,0x6b,0x6c,0x30,0x13,0x6f,0x73,0x65,0x70,
-1,0x61,0x38,0x75,0x18,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x31,0x18,
-0x72,0x65,0x6e,0x74,0x68,0x65,0x73,0x69,0x73,0x69,0x1b,0x72,0x72,0x69,0x61,0x67,
-0x65,0x72,0x65,0x74,0x75,0x72,0x6e,0x35,2,0x62,0x3e,0x6d,0x46,0x78,0x36,0x18,
-0x63,0x6c,0x61,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x37,0x70,0x12,0x61,0x73,0x65,0x71,
-0x72,0x16,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,1,0x64,0x42,0x6e,1,0x6f,
-0x32,0x75,0x26,0x14,0x6d,0x65,0x72,0x69,0x63,0x27,0x11,0x6e,0x65,0x21,1,0x65,
-0x2e,0x69,0x24,0x12,0x67,0x69,0x74,0x25,0x22,0x14,0x63,0x69,0x6d,0x61,0x6c,0x23,
-0,0x18,0x6e,0xc3,0xc4,0x74,0xc1,0x51,0x77,0x7a,0x77,0xa2,0x4c,0x78,0xa2,0x60,
-0x79,0xa2,0x6a,0x7a,6,0x73,0x1e,0x73,0x34,0x78,0x42,0x79,0x48,0x7a,0x11,0x7a,
-0x7a,0xa3,0x67,0x10,0x79,1,0x65,0xa3,0xae,0x6d,0xa3,0x81,0x11,0x78,0x78,0xa3,
-0x66,0x11,0x79,0x79,0x21,0x61,0x30,0x69,0x58,0x6d,0x11,0x74,0x68,0xa3,0x80,0x10,
-0x6e,1,0x61,0x26,0x62,0xa3,0xb1,0x1a,0x62,0x61,0x7a,0x61,0x72,0x73,0x71,0x75,
-0x61,0x72,0x65,0xa3,0xb1,0x11,0x6e,0x68,0x23,1,0x61,0x2c,0x6f,0x11,0x6c,0x65,
-0xa3,0x9b,0x11,0x72,0x61,0xa2,0x92,0x15,0x6e,0x67,0x63,0x69,0x74,0x69,0xa3,0x92,
-1,0x70,0x2c,0x73,0x11,0x75,0x78,0xa3,0x65,0x11,0x65,0x6f,0x9b,0x10,0x69,0x72,
-0x11,0x69,0x69,0x73,0x74,0x4a,0x75,0xa2,0xba,0x76,1,0x61,0x2c,0x69,0x11,0x73,
-0x70,0xa3,0x64,0x10,0x69,0xa2,0x63,0x10,0x69,0xa3,0x63,5,0x67,0x36,0x67,0x68,
-0x68,0x6c,0x69,2,0x62,0x3a,0x66,0x4a,0x72,0x10,0x68,0xa2,0x9e,0x12,0x75,0x74,
-0x61,0xa3,0x9e,1,0x65,0x24,0x74,0x6f,0x12,0x74,0x61,0x6e,0x6f,0x14,0x69,0x6e,
-0x61,0x67,0x68,0x99,0x11,0x6c,0x67,0x75,0x10,0x61,1,0x61,0x24,0x69,0x6d,0x6a,
-0x11,0x6e,0x61,0x6b,0x61,0x30,0x65,0xa2,0x5b,0x66,0x11,0x6e,0x67,0x99,6,0x6c,
-0x21,0x6c,0x32,0x6d,0x38,0x6e,0x44,0x76,0x10,0x74,0xa3,0x7f,1,0x65,0x89,0x75,
-0x97,1,0x69,0x24,0x6c,0x67,0x10,0x6c,0x67,0x10,0x67,0xa2,0x9a,0x11,0x75,0x74,
-0xa3,0x9a,0x67,0x36,0x69,0x52,0x6b,0x10,0x72,0xa2,0x99,0x10,0x69,0xa3,0x99,1,
-0x61,0x30,0x62,0x7a,0x13,0x61,0x6e,0x77,0x61,0x7b,0x12,0x6c,0x6f,0x67,0x75,2,
-0x6c,0x32,0x74,0x34,0x76,0x12,0x69,0x65,0x74,0xa3,0x7f,0x10,0x65,0x89,0x12,0x68,
-0x61,0x6d,0xa3,0x6a,1,0x6c,0x2a,0x6e,0x10,0x67,0xa3,0x62,0x10,0x75,0x68,0x11,
-0x67,0x75,0x69,1,0x67,0x32,0x6e,0x14,0x6b,0x6e,0x6f,0x77,0x6e,0xa3,0x67,0x11,
-0x61,0x72,0x8a,0x13,0x69,0x74,0x69,0x63,0x8b,0x71,0xc0,0xfc,0x71,0xa2,0xce,0x72,
-0xa2,0xd3,0x73,6,0x69,0x7a,0x69,0x72,0x6f,0xa2,0x4c,0x75,0xa2,0x65,0x79,1,
-0x6c,0x46,0x72,4,0x63,0x65,0x65,0xa3,0x5f,0x69,0x2c,0x6a,0xa3,0x60,0x6e,0xa3,
-0x61,0x11,0x61,0x63,0x65,0x10,0x6f,0x94,0x16,0x74,0x69,0x6e,0x61,0x67,0x72,0x69,
-0x95,2,0x64,0x3c,0x67,0x4c,0x6e,1,0x64,0xa3,0x91,0x68,0x62,0x12,0x61,0x6c,
-0x61,0x63,0x10,0x64,0xa2,0xa6,0x12,0x68,0x61,0x6d,0xa3,0xa6,0x17,0x6e,0x77,0x72,
-0x69,0x74,0x69,0x6e,0x67,0xa3,0x70,1,0x72,0x36,0x79,0x10,0x6f,0xa2,0xb0,0x12,
-0x6d,0x62,0x6f,0xa3,0xb0,0x10,0x61,0xa2,0x98,0x16,0x73,0x6f,0x6d,0x70,0x65,0x6e,
-0x67,0xa3,0x98,0x11,0x6e,0x64,0xa2,0x71,0x14,0x61,0x6e,0x65,0x73,0x65,0xa3,0x71,
-0x61,0x5c,0x67,0xa2,0x43,0x68,1,0x61,0x2a,0x72,0x10,0x64,0xa3,0x97,2,0x72,
-0x28,0x76,0x30,0x77,0x87,0x12,0x61,0x64,0x61,0xa3,0x97,0x12,0x69,0x61,0x6e,0x87,
-2,0x6d,0x40,0x72,0x58,0x75,0x10,0x72,0xa2,0x6f,0x15,0x61,0x73,0x68,0x74,0x72,
-0x61,0xa3,0x6f,1,0x61,0x26,0x72,0xa3,0x7e,0x14,0x72,0x69,0x74,0x61,0x6e,0xa3,
-0x7e,1,0x61,0xa3,0x5e,0x62,0xa3,0x85,0x11,0x6e,0x77,0xa3,0x70,0x11,0x61,0x61,
-1,0x63,0x2f,0x69,0x23,3,0x65,0x3e,0x6a,0x48,0x6f,0x4e,0x75,0x10,0x6e,1,
-0x69,0x24,0x72,0x61,0x10,0x63,0x61,0x13,0x6a,0x61,0x6e,0x67,0xa3,0x6e,0x11,0x6e,
-0x67,0xa3,0x6e,0x11,0x72,0x6f,0xa3,0x5d,0x6e,0xa2,0x83,0x6f,0xa2,0xca,0x70,5,
-0x6c,0x1e,0x6c,0x44,0x72,0x4a,0x73,0x1b,0x61,0x6c,0x74,0x65,0x72,0x70,0x61,0x68,
-0x6c,0x61,0x76,0x69,0xa3,0x7b,0x11,0x72,0x64,0xa3,0x5c,0x11,0x74,0x69,0xa3,0x7d,
-0x61,0x7c,0x65,0xa2,0x54,0x68,3,0x61,0x3e,0x6c,0x4e,0x6e,0x5e,0x6f,0x16,0x65,
-0x6e,0x69,0x63,0x69,0x61,0x6e,0xa3,0x5b,0x10,0x67,0xa2,0x5a,0x12,0x73,0x70,0x61,
-0xa3,0x5a,2,0x69,0xa3,0x7a,0x70,0xa3,0x7b,0x76,0xa3,0x7c,0x10,0x78,0xa3,0x5b,
-2,0x68,0x3e,0x6c,0x50,0x75,0x10,0x63,0xa2,0xa5,0x14,0x69,0x6e,0x68,0x61,0x75,
-0xa3,0xa5,0x17,0x61,0x77,0x68,0x68,0x6d,0x6f,0x6e,0x67,0xa3,0x4b,0x10,0x6d,0xa2,
-0x90,0x14,0x79,0x72,0x65,0x6e,0x65,0xa3,0x90,0x11,0x72,0x6d,0xa3,0x59,5,0x6b,
-0x1e,0x6b,0x32,0x73,0x4a,0x75,0x12,0x73,0x68,0x75,0xa3,0x96,1,0x67,0x2e,0x6f,
-0xa2,0x57,0x10,0x6f,0xa3,0x57,0x10,0x62,0xa3,0x84,0x11,0x68,0x75,0xa3,0x96,0x61,
-0x42,0x62,0x60,0x65,0x10,0x77,1,0x61,0xa3,0xaa,0x74,0x14,0x61,0x69,0x6c,0x75,
-0x65,0x97,1,0x62,0x2a,0x72,0x10,0x62,0xa3,0x8e,0x15,0x61,0x74,0x61,0x65,0x61,
-0x6e,0xa3,0x8f,0x11,0x61,0x74,0xa3,0x8f,3,0x67,0x5a,0x6c,0x6c,0x72,0xa2,0x88,
-0x73,2,0x61,0x36,0x67,0x3c,0x6d,0x10,0x61,0x84,0x12,0x6e,0x79,0x61,0x85,0x11,
-0x67,0x65,0xa3,0xab,0x10,0x65,0xa3,0xab,1,0x61,0x2a,0x68,0x11,0x61,0x6d,0x5b,
-0x10,0x6d,0x5b,1,0x63,0xa2,0x55,0x64,5,0x70,0x2c,0x70,0x36,0x73,0x54,0x74,
-0x14,0x75,0x72,0x6b,0x69,0x63,0xa3,0x58,0x11,0x65,0x72,1,0x6d,0x2c,0x73,0x12,
-0x69,0x61,0x6e,0x9b,0x11,0x69,0x63,0xa3,0x59,0x1a,0x6f,0x75,0x74,0x68,0x61,0x72,
-0x61,0x62,0x69,0x61,0x6e,0xa3,0x85,0x68,0x42,0x69,0x54,0x6e,0x1a,0x6f,0x72,0x74,
-0x68,0x61,0x72,0x61,0x62,0x69,0x61,0x6e,0xa3,0x8e,0x17,0x75,0x6e,0x67,0x61,0x72,
-0x69,0x61,0x6e,0xa3,0x4c,0x14,0x74,0x61,0x6c,0x69,0x63,0x5d,1,0x68,0x26,0x6b,
-0xa3,0x6d,0x12,0x69,0x6b,0x69,0xa3,0x6d,2,0x69,0x2c,0x6b,0x30,0x79,0x10,0x61,
-0x5f,0x11,0x79,0x61,0x5f,0x10,0x68,0xa3,0x58,0x68,0xc2,0xc2,0x6b,0xc1,0xeb,0x6b,
-0xa2,0xf8,0x6c,0xa4,0x79,0x6d,8,0x6f,0x46,0x6f,0x48,0x72,0x74,0x74,0x80,0x75,
-0x86,0x79,1,0x61,0x28,0x6d,0x10,0x72,0x59,0x13,0x6e,0x6d,0x61,0x72,0x59,2,
-0x64,0x2e,0x6e,0x32,0x6f,0x10,0x6e,0xa3,0x72,0x10,0x69,0xa3,0xa3,0x10,0x67,0x56,
-0x14,0x6f,0x6c,0x69,0x61,0x6e,0x57,0x10,0x6f,0xa2,0x95,0x10,0x6f,0xa3,0x95,0x11,
-0x65,0x69,0xa3,0x73,0x11,0x6c,0x74,0xa2,0xa4,0x12,0x61,0x6e,0x69,0xa3,0xa4,0x61,
-0x36,0x65,0xa2,0x5b,0x69,0xa2,0x9e,0x6c,0x11,0x79,0x6d,0x55,5,0x72,0x1f,0x72,
-0x2e,0x73,0x3e,0x79,0x10,0x61,0xa3,0x55,0x10,0x63,0xa2,0xa9,0x12,0x68,0x65,0x6e,
-0xa3,0xa9,0x18,0x61,0x72,0x61,0x6d,0x67,0x6f,0x6e,0x64,0x69,0xa3,0xaf,0x68,0x54,
-0x6c,0x6a,0x6e,1,0x64,0x38,0x69,0xa2,0x79,0x15,0x63,0x68,0x61,0x65,0x61,0x6e,
-0xa3,0x79,0xa2,0x54,0x12,0x61,0x69,0x63,0xa3,0x54,1,0x61,0x26,0x6a,0xa3,0xa0,
-0x13,0x6a,0x61,0x6e,0x69,0xa3,0xa0,0x15,0x61,0x79,0x61,0x6c,0x61,0x6d,0x55,2,
-0x65,0x72,0x6e,0x84,0x72,1,0x63,0xa3,0x8d,0x6f,0xa2,0x56,0x13,0x69,0x74,0x69,
-0x63,1,0x63,0x3c,0x68,0x19,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,
-0xa3,0x56,0x15,0x75,0x72,0x73,0x69,0x76,0x65,0xa3,0x8d,0x17,0x74,0x65,0x69,0x6d,
-0x61,0x79,0x65,0x6b,0xa3,0x73,0x10,0x64,0xa2,0x8c,0x17,0x65,0x6b,0x69,0x6b,0x61,
-0x6b,0x75,0x69,0xa3,0x8c,0x11,0x61,0x6f,0xa3,0x5c,5,0x6f,0x14,0x6f,0x30,0x70,
-0x36,0x74,0x11,0x68,0x69,0xa3,0x78,0x11,0x72,0x65,0xa3,0x77,0x11,0x65,0x6c,0xa3,
-0x8a,0x61,0x2e,0x68,0x98,0x6e,0x11,0x64,0x61,0x4b,4,0x69,0x3c,0x6c,0x44,0x6e,
-0x48,0x74,0x56,0x79,0x13,0x61,0x68,0x6c,0x69,0xa3,0x4f,0x12,0x74,0x68,0x69,0xa3,
-0x78,0x10,0x69,0xa3,0x4f,1,0x61,0x4d,0x6e,0x12,0x61,0x64,0x61,0x4b,0x14,0x61,
-0x6b,0x61,0x6e,0x61,0x4c,0x19,0x6f,0x72,0x68,0x69,0x72,0x61,0x67,0x61,0x6e,0x61,
-0x8d,3,0x61,0x3c,0x6d,0x4e,0x6f,0x5a,0x75,0x15,0x64,0x61,0x77,0x61,0x64,0x69,
-0xa3,0x91,0x10,0x72,0x92,0x15,0x6f,0x73,0x68,0x74,0x68,0x69,0x93,1,0x65,0x24,
-0x72,0x4f,0x10,0x72,0x4f,0x10,0x6a,0xa2,0x9d,0x11,0x6b,0x69,0xa3,0x9d,4,0x61,
-0x5c,0x65,0x90,0x69,0xa0,0x6f,0xa2,0x5d,0x79,1,0x63,0x34,0x64,0x10,0x69,0xa2,
-0x6c,0x11,0x61,0x6e,0xa3,0x6c,0x10,0x69,0xa2,0x6b,0x11,0x61,0x6e,0xa3,0x6b,2,
-0x6e,0x42,0x6f,0x46,0x74,3,0x66,0xa3,0x50,0x67,0xa3,0x51,0x69,0x24,0x6e,0x53,
-0x10,0x6e,0x53,0x10,0x61,0xa3,0x6a,0x50,0x10,0x6f,0x51,0x11,0x70,0x63,0xa2,0x52,
-0x11,0x68,0x61,0xa3,0x52,2,0x6d,0x2e,0x6e,0x36,0x73,0x10,0x75,0xa3,0x83,0x10,
-0x62,0x80,0x10,0x75,0x81,2,0x61,0xa3,0x53,0x62,0x83,0x65,0x11,0x61,0x72,1,
-0x61,0xa3,0x53,0x62,0x83,0x11,0x6d,0x61,0xa3,0x8b,0x68,0x6e,0x69,0xa2,0x83,0x6a,
-2,0x61,0x30,0x70,0x52,0x75,0x11,0x72,0x63,0xa3,0x94,1,0x6d,0x38,0x76,0x10,
-0x61,0xa2,0x4e,0x13,0x6e,0x65,0x73,0x65,0xa3,0x4e,0x10,0x6f,0xa3,0xad,0x11,0x61,
-0x6e,0xa3,0x69,6,0x6c,0x1a,0x6c,0x34,0x6d,0x3a,0x72,0x40,0x75,0x11,0x6e,0x67,
-0xa3,0x4c,0x11,0x75,0x77,0xa3,0x9c,0x11,0x6e,0x67,0xa3,0x4b,0x11,0x6b,0x74,0x8d,
-0x61,0x3a,0x65,0x8c,0x69,0x11,0x72,0x61,0x48,0x13,0x67,0x61,0x6e,0x61,0x49,1,
-0x6e,0x34,0x74,0x10,0x72,0xa2,0xa2,0x11,0x61,0x6e,0xa3,0xa2,0x42,6,0x6f,0xe,
-0x6f,0x77,0x73,0xa3,0x49,0x74,0xa3,0x4a,0x75,0x12,0x6e,0x6f,0x6f,0x77,0x62,0xa3,
-0xac,0x67,0x24,0x69,0x43,0x44,0x11,0x75,0x6c,0x45,0x11,0x62,0x72,0x46,0x11,0x65,
-0x77,0x47,2,0x6d,0x2e,0x6e,0x4a,0x74,0x11,0x61,0x6c,0x5d,0x1c,0x70,0x65,0x72,
-0x69,0x61,0x6c,0x61,0x72,0x61,0x6d,0x61,0x69,0x63,0xa3,0x74,2,0x64,0x66,0x68,
-0x6a,0x73,0x1b,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x70,0x61,1,
-0x68,0x32,0x72,0x14,0x74,0x68,0x69,0x61,0x6e,0xa3,0x7d,0x13,0x6c,0x61,0x76,0x69,
-0xa3,0x7a,0x10,0x73,0xa3,0x4d,0x15,0x65,0x72,0x69,0x74,0x65,0x64,0x23,0x64,0xc0,
-0xcf,0x64,0xa2,0x68,0x65,0xa2,0x90,0x67,4,0x65,0x64,0x6c,0x7c,0x6f,0x90,0x72,
-0xa2,0x44,0x75,1,0x6a,0x38,0x72,1,0x6d,0x24,0x75,0x41,0x13,0x75,0x6b,0x68,
-0x69,0x41,1,0x61,0x24,0x72,0x3f,0x13,0x72,0x61,0x74,0x69,0x3f,0x10,0x6f,1,
-0x6b,0xa3,0x48,0x72,0x38,0x13,0x67,0x69,0x61,0x6e,0x39,0x11,0x61,0x67,0x90,0x15,
-0x6f,0x6c,0x69,0x74,0x69,0x63,0x91,1,0x6e,0x30,0x74,0x10,0x68,0x3a,0x11,0x69,
-0x63,0x3b,0x10,0x6d,0xa3,0xaf,1,0x61,0x32,0x65,1,0x65,0x24,0x6b,0x3d,0x10,
-0x6b,0x3d,0x10,0x6e,0xa2,0x89,0x12,0x74,0x68,0x61,0xa3,0x89,2,0x65,0x3e,0x73,
-0x64,0x75,0x11,0x70,0x6c,0xa2,0x87,0x13,0x6f,0x79,0x61,0x6e,0xa3,0x87,1,0x73,
+0x67,0x72,0x61,0x70,0x68,0x73,0xa5,5,0x10,0x72,1,0x61,0x4e,0x73,0x12,0x63,
+0x72,0x69,0x1f,0x70,0x74,0x73,0x61,0x6e,0x64,0x73,0x75,0x62,0x73,0x63,0x72,0x69,
+0x70,0x74,0x73,0x73,0x14,0x6e,0x64,0x73,0x75,0x62,0x73,0x1b,0x61,0x74,0x68,0x6f,
+0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x73,0xa3,0x6a,1,0x6c,0x40,0x75,1,0x61,
+0x6e,0x6e,0x17,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xa3,0x8e,0x15,0x65,0x6d,
+0x65,0x6e,0x74,0x61,1,0x6c,0x50,0x72,0x1e,0x79,0x70,0x72,0x69,0x76,0x61,0x74,
+0x65,0x75,0x73,0x65,0x61,0x72,0x65,0x61,1,0x61,0xa3,0x6d,0x62,0xa3,0x6e,3,
+0x61,0x5c,0x6d,0x78,0x70,0xa2,0x41,0x73,0x13,0x79,0x6d,0x62,0x6f,0x1f,0x6c,0x73,
+0x61,0x6e,0x64,0x70,0x69,0x63,0x74,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa5,5,
+0x14,0x72,0x72,0x6f,0x77,0x73,2,0x61,0xa3,0x67,0x62,0xa3,0x68,0x63,0xa3,0xfa,
+0x13,0x61,0x74,0x68,0x65,0x1f,0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,0x6f,0x70,0x65,
+0x72,0x61,0x74,0x6f,0x72,0x73,0xa3,0x6a,0x19,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,
+0x69,0x6f,0x6e,0xa3,0x8e,0x61,0x5a,0x68,0x84,0x69,0xa2,0x5b,0x6d,0x16,0x61,0x6c,
+0x6c,0x66,0x6f,0x72,0x6d,1,0x73,0xa3,0x54,0x76,0x16,0x61,0x72,0x69,0x61,0x6e,
+0x74,0x73,0xa3,0x54,1,0x6d,0x36,0x75,0x16,0x72,0x61,0x73,0x68,0x74,0x72,0x61,
+0xa3,0xa1,0x15,0x61,0x72,0x69,0x74,0x61,0x6e,0xa3,0xac,1,0x61,0x52,0x6f,0x13,
+0x72,0x74,0x68,0x61,0x1f,0x6e,0x64,0x66,0x6f,0x72,0x6d,0x61,0x74,0x63,0x6f,0x6e,
+0x74,0x72,0x6f,0x6c,0x73,0xa3,0xf7,1,0x72,0x2e,0x76,0x12,0x69,0x61,0x6e,0xa3,
+0x79,0x12,0x61,0x64,0x61,0xa3,0xd9,1,0x64,0x50,0x6e,0x13,0x68,0x61,0x6c,0x61,
+0x50,0x1d,0x61,0x72,0x63,0x68,0x61,0x69,0x63,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,
+0xa3,0xf9,0x13,0x64,0x68,0x61,0x6d,0xa3,0xf8,5,0x72,0x35,0x72,0x44,0x73,0x64,
+0x75,1,0x61,0xa3,0x4e,0x6e,0x17,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x71,
+0x17,0x69,0x76,0x61,0x74,0x65,0x75,0x73,0x65,0xa2,0x4e,0x13,0x61,0x72,0x65,0x61,
+0xa3,0x4e,0x1b,0x61,0x6c,0x74,0x65,0x72,0x70,0x61,0x68,0x6c,0x61,0x76,0x69,0xa3,
+0xf6,0x61,0x40,0x68,0x82,0x6c,0x19,0x61,0x79,0x69,0x6e,0x67,0x63,0x61,0x72,0x64,
+0x73,0xa3,0xcc,2,0x68,0x38,0x6c,0x4a,0x75,0x15,0x63,0x69,0x6e,0x68,0x61,0x75,
+0xa3,0xf5,0x17,0x61,0x77,0x68,0x68,0x6d,0x6f,0x6e,0x67,0xa3,0xf3,0x15,0x6d,0x79,
+0x72,0x65,0x6e,0x65,0xa3,0xf4,1,0x61,0x8e,0x6f,1,0x65,0x74,0x6e,0x16,0x65,
+0x74,0x69,0x63,0x65,0x78,0x74,0xa2,0x72,1,0x65,0x2c,0x73,0x11,0x75,0x70,0xa3,
+0x8d,0x15,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xa2,0x72,0x19,0x73,0x75,0x70,0x70,0x6c,
+0x65,0x6d,0x65,0x6e,0x74,0xa3,0x8d,0x15,0x6e,0x69,0x63,0x69,0x61,0x6e,0xa3,0x97,
+1,0x67,0x3e,0x69,0x13,0x73,0x74,0x6f,0x73,0xa2,0xa6,0x13,0x64,0x69,0x73,0x63,
+0xa3,0xa6,0x12,0x73,0x70,0x61,0xa3,0x96,1,0x65,0x5c,0x75,1,0x6d,0x2a,0x6e,
+0x11,0x69,0x63,0x67,0x10,0x69,0xa2,0xc0,0x1d,0x6e,0x75,0x6d,0x65,0x72,0x61,0x6c,
+0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xc0,0x13,0x6a,0x61,0x6e,0x67,0xa3,0xa3,
+0x6d,0xa2,0xce,0x6e,0xa8,1,0x6f,5,0x70,0x4b,0x70,0x46,0x72,0x7a,0x73,1,
+0x61,0x30,0x6d,0x13,0x61,0x6e,0x79,0x61,0xa3,0x7a,0x11,0x67,0x65,0xa5,0xf,0x18,
+0x74,0x69,0x63,0x61,0x6c,0x63,0x68,0x61,0x72,0x1f,0x61,0x63,0x74,0x65,0x72,0x72,
+0x65,0x63,0x6f,0x67,0x6e,0x69,0x74,0x69,0x6f,0x6e,0x85,1,0x69,0x46,0x6e,0x1e,
+0x61,0x6d,0x65,0x6e,0x74,0x61,0x6c,0x64,0x69,0x6e,0x67,0x62,0x61,0x74,0x73,0xa3,
+0xf2,0x11,0x79,0x61,0x47,0x63,0xa2,0x71,0x67,0xa2,0x71,0x6c,1,0x63,0xa2,0x62,
+0x64,5,0x70,0x38,0x70,0x36,0x73,0x56,0x74,0x14,0x75,0x72,0x6b,0x69,0x63,0xa3,
+0xbf,0x11,0x65,0x72,1,0x6d,0x2e,0x73,0x12,0x69,0x61,0x6e,0xa3,0x8c,0x11,0x69,
+0x63,0xa3,0xf1,0x10,0x6f,1,0x67,0x3a,0x75,0x18,0x74,0x68,0x61,0x72,0x61,0x62,
+0x69,0x61,0x6e,0xa3,0xbb,0x13,0x64,0x69,0x61,0x6e,0xa5,0x22,0x68,0x42,0x69,0x54,
+0x6e,0x1a,0x6f,0x72,0x74,0x68,0x61,0x72,0x61,0x62,0x69,0x61,0x6e,0xa3,0xf0,0x17,
+0x75,0x6e,0x67,0x61,0x72,0x69,0x61,0x6e,0xa5,4,0x14,0x74,0x61,0x6c,0x69,0x63,
+0xa3,0x58,0x13,0x68,0x69,0x6b,0x69,0xa3,0x9d,0x10,0x72,0x85,0x12,0x68,0x61,0x6d,
+0x65,6,0x6f,0x86,0x6f,0x6c,0x72,0xa2,0x61,0x75,0xa2,0x62,0x79,0x14,0x61,0x6e,
+0x6d,0x61,0x72,0x58,0x12,0x65,0x78,0x74,2,0x61,0xa3,0xb6,0x62,0xa3,0xee,0x65,
+0x13,0x6e,0x64,0x65,0x64,1,0x61,0xa3,0xb6,0x62,0xa3,0xee,1,0x64,0x52,0x6e,
+0x15,0x67,0x6f,0x6c,0x69,0x61,0x6e,0x6a,0x12,0x73,0x75,0x70,0xa4,0xd,0x16,0x70,
+0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa5,0xd,0x10,0x69,0xa2,0xec,0x13,0x66,0x69,0x65,
+0x72,1,0x6c,0x3c,0x74,0x19,0x6f,0x6e,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x73,
+0xa3,0x8a,0x15,0x65,0x74,0x74,0x65,0x72,0x73,0x2d,0x10,0x6f,0xa3,0xed,1,0x6c,
+0x44,0x73,0x11,0x69,0x63,0xa2,0x5c,0x18,0x61,0x6c,0x73,0x79,0x6d,0x62,0x6f,0x6c,
+0x73,0xa3,0x5c,0x13,0x74,0x61,0x6e,0x69,0xa5,3,0x61,0xa2,0x9b,0x65,0xa4,0x4c,
+0x69,1,0x61,0xa2,0x8f,0x73,0x10,0x63,5,0x70,0x18,0x70,0xa2,0x71,0x73,0x36,
+0x74,0x17,0x65,0x63,0x68,0x6e,0x69,0x63,0x61,0x6c,0x81,0x15,0x79,0x6d,0x62,0x6f,
+0x6c,0x73,0x8f,0x61,0xa2,0x66,0x65,0x46,0x6d,0x19,0x61,0x74,0x68,0x73,0x79,0x6d,
+0x62,0x6f,0x6c,0x73,1,0x61,0xa3,0x66,0x62,0xa3,0x69,0x17,0x6c,0x6c,0x61,0x6e,
+0x65,0x6f,0x75,0x73,2,0x6d,0x3a,0x73,0x6c,0x74,0x17,0x65,0x63,0x68,0x6e,0x69,
+0x63,0x61,0x6c,0x81,0x11,0x61,0x74,0x1f,0x68,0x65,0x6d,0x61,0x74,0x69,0x63,0x61,
+0x6c,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,1,0x61,0xa3,0x66,0x62,0xa3,0x69,0x15,
+0x79,0x6d,0x62,0x6f,0x6c,0x73,0x8e,0x12,0x61,0x6e,0x64,1,0x61,0x3c,0x70,0x19,
+0x69,0x63,0x74,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa3,0xcd,0x14,0x72,0x72,0x6f,
+0x77,0x73,0xa3,0x73,0x10,0x6f,0xa3,0xd8,7,0x72,0x6f,0x72,0x44,0x73,0x4e,0x74,
+0x62,0x79,0x19,0x61,0x6e,0x6e,0x75,0x6d,0x65,0x72,0x61,0x6c,0x73,0xa5,0x20,0x13,
+0x63,0x68,0x65,0x6e,0xa5,0xc,0x18,0x61,0x72,0x61,0x6d,0x67,0x6f,0x6e,0x64,0x69,
+0xa5,0x14,0x10,0x68,2,0x61,0x3a,0x65,0x4a,0x6f,0x17,0x70,0x65,0x72,0x61,0x74,
+0x6f,0x72,0x73,0x7f,0x16,0x6c,0x70,0x68,0x61,0x6e,0x75,0x6d,0xa3,0x5d,0x16,0x6d,
+0x61,0x74,0x69,0x63,0x61,0x6c,1,0x61,0x36,0x6f,0x17,0x70,0x65,0x72,0x61,0x74,
+0x6f,0x72,0x73,0x7f,0x11,0x6c,0x70,0x1f,0x68,0x61,0x6e,0x75,0x6d,0x65,0x72,0x69,
+0x63,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x5d,0x68,0x50,0x6b,0x7e,0x6c,0x88,
+0x6e,1,0x64,0x34,0x69,0x15,0x63,0x68,0x61,0x65,0x61,0x6e,0xa3,0xea,0x12,0x61,
+0x69,0x63,0xa3,0xc6,1,0x61,0x3e,0x6a,0x12,0x6f,0x6e,0x67,0xa2,0xaa,0x14,0x74,
+0x69,0x6c,0x65,0x73,0xa3,0xaa,0x13,0x6a,0x61,0x6e,0x69,0xa3,0xe9,0x13,0x61,0x73,
+0x61,0x72,0xa5,0x1f,0x15,0x61,0x79,0x61,0x6c,0x61,0x6d,0x4f,3,0x64,0x6c,0x65,
+0x7e,0x6e,0xa2,0x47,0x72,0x14,0x6f,0x69,0x74,0x69,0x63,1,0x63,0x3c,0x68,0x19,
+0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0xd7,0x15,0x75,0x72,0x73,
+0x69,0x76,0x65,0xa3,0xd6,0x17,0x65,0x66,0x61,0x69,0x64,0x72,0x69,0x6e,0xa5,0x21,
+0x17,0x74,0x65,0x69,0x6d,0x61,0x79,0x65,0x6b,0xa2,0xb8,0x12,0x65,0x78,0x74,0xa2,
+0xd5,0x16,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xa3,0xd5,0x18,0x64,0x65,0x6b,0x69,
+0x6b,0x61,0x6b,0x75,0x69,0xa3,0xeb,5,0x6b,0x23,0x6b,0x4c,0x6f,0x50,0x75,1,
+0x6d,0x2c,0x73,0x11,0x68,0x75,0xa5,0x15,0x17,0x62,0x65,0x72,0x66,0x6f,0x72,0x6d,
+0x73,0x7b,0x10,0x6f,0xa3,0x92,0x14,0x62,0x6c,0x6f,0x63,0x6b,0x21,0x61,0x44,0x62,
+0x21,0x65,0x10,0x77,1,0x61,0xa5,0xe,0x74,0x14,0x61,0x69,0x6c,0x75,0x65,0xa3,
+0x8b,0x16,0x62,0x61,0x74,0x61,0x65,0x61,0x6e,0xa3,0xef,0x67,0xc4,0xe,0x6a,0xc1,
+0x95,0x6a,0xa2,0xc5,0x6b,0xa2,0xde,0x6c,4,0x61,0x54,0x65,0xa2,0x61,0x69,0xa2,
+0x78,0x6f,0xa2,0xa7,0x79,1,0x63,0x2e,0x64,0x12,0x69,0x61,0x6e,0xa3,0xa9,0x12,
+0x69,0x61,0x6e,0xa3,0xa7,1,0x6f,0x55,0x74,0x11,0x69,0x6e,1,0x31,0x82,0x65,
+0x11,0x78,0x74,4,0x61,0x5c,0x62,0x29,0x63,0xa3,0x94,0x64,0xa3,0x95,0x65,0xa2,
+0xe7,0x13,0x6e,0x64,0x65,0x64,4,0x61,0x36,0x62,0x29,0x63,0xa3,0x94,0x64,0xa3,
+0x95,0x65,0xa3,0xe7,0x26,0x18,0x64,0x64,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x6d,
+0x24,0x12,0x73,0x75,0x70,0x24,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x25,1,
+0x70,0x42,0x74,0x1d,0x74,0x65,0x72,0x6c,0x69,0x6b,0x65,0x73,0x79,0x6d,0x62,0x6f,
+0x6c,0x73,0x79,0x12,0x63,0x68,0x61,0xa3,0x9c,2,0x6d,0x2e,0x6e,0x34,0x73,0x10,
+0x75,0xa3,0xb0,0x11,0x62,0x75,0xa3,0x6f,0x12,0x65,0x61,0x72,1,0x61,0xa3,0xe8,
+0x62,1,0x69,0x38,0x73,0x17,0x79,0x6c,0x6c,0x61,0x62,0x61,0x72,0x79,0xa3,0x75,
+0x17,0x64,0x65,0x6f,0x67,0x72,0x61,0x6d,0x73,0xa3,0x76,0x1a,0x77,0x73,0x75,0x72,
+0x72,0x6f,0x67,0x61,0x74,0x65,0x73,0xa3,0x4d,0x10,0x61,1,0x6d,0x32,0x76,0x14,
+0x61,0x6e,0x65,0x73,0x65,0xa3,0xb5,0x10,0x6f,0x5c,0x12,0x65,0x78,0x74,1,0x61,
+0xa3,0xb4,0x62,0xa3,0xb9,1,0x61,0x80,0x68,3,0x61,0x3c,0x6d,0x4c,0x6f,0x64,
+0x75,0x15,0x64,0x61,0x77,0x61,0x64,0x69,0xa3,0xe6,0x16,0x72,0x6f,0x73,0x68,0x74,
+0x68,0x69,0xa3,0x89,0x11,0x65,0x72,0x68,0x16,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,
+0xa3,0x71,0x12,0x6a,0x6b,0x69,0xa3,0xe5,3,0x69,0x3a,0x6e,0x42,0x74,0xa2,0x51,
+0x79,0x13,0x61,0x68,0x6c,0x69,0xa3,0xa2,0x12,0x74,0x68,0x69,0xa3,0xc1,3,0x61,
+0x34,0x62,0x76,0x67,0x7c,0x6e,0x12,0x61,0x64,0x61,0x4d,1,0x65,0x40,0x73,0x11,
+0x75,0x70,0xa2,0xcb,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0xcb,0x11,0x78,
+0x74,1,0x61,0xa5,0x13,0x65,0x14,0x6e,0x64,0x65,0x64,0x61,0xa5,0x13,0x11,0x75,
+0x6e,0xa3,0x42,0x11,0x78,0x69,0x96,0x17,0x72,0x61,0x64,0x69,0x63,0x61,0x6c,0x73,
+0x97,0x14,0x61,0x6b,0x61,0x6e,0x61,0x9e,1,0x65,0x4c,0x70,0x10,0x68,0x1f,0x6f,
+0x6e,0x65,0x74,0x69,0x63,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xa3,
+0x6b,0x11,0x78,0x74,0xa3,0x6b,0x67,0xa2,0xb5,0x68,0xa4,0x84,0x69,3,0x64,0x4c,
+0x6d,0xa2,0x55,0x6e,0xa2,0x62,0x70,0x13,0x61,0x65,0x78,0x74,0x2a,0x16,0x65,0x6e,
+0x73,0x69,0x6f,0x6e,0x73,0x2b,1,0x63,0x99,0x65,0x17,0x6f,0x67,0x72,0x61,0x70,
+0x68,0x69,0x63,1,0x64,0x56,0x73,0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa4,0xb,
+0x1d,0x61,0x6e,0x64,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xa5,
+0xb,0x13,0x65,0x73,0x63,0x72,0x1f,0x69,0x70,0x74,0x69,0x6f,0x6e,0x63,0x68,0x61,
+0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x99,0x1c,0x70,0x65,0x72,0x69,0x61,0x6c,0x61,
+0x72,0x61,0x6d,0x61,0x69,0x63,0xa3,0xba,1,0x64,0x62,0x73,0x1b,0x63,0x72,0x69,
+0x70,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x70,0x61,1,0x68,0x32,0x72,0x14,0x74,0x68,
+0x69,0x61,0x6e,0xa3,0xbd,0x13,0x6c,0x61,0x76,0x69,0xa3,0xbe,0x11,0x69,0x63,1,
+0x6e,0x3e,0x73,0x1a,0x69,0x79,0x61,0x71,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0xa5,
+0x1e,0x19,0x75,0x6d,0x62,0x65,0x72,0x66,0x6f,0x72,0x6d,0x73,0xa3,0xb2,4,0x65,
+0x74,0x6c,0xa2,0x82,0x6f,0xa2,0x9a,0x72,0xa2,0x9e,0x75,2,0x6a,0x34,0x6e,0x3e,
+0x72,0x14,0x6d,0x75,0x6b,0x68,0x69,0x43,0x14,0x61,0x72,0x61,0x74,0x69,0x45,0x18,
+0x6a,0x61,0x6c,0x61,0x67,0x6f,0x6e,0x64,0x69,0xa5,0x1c,1,0x6e,0xa2,0x46,0x6f,
+1,0x6d,0x6e,0x72,0x13,0x67,0x69,0x61,0x6e,0x5a,1,0x65,0x40,0x73,0x11,0x75,
+0x70,0xa2,0x87,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x87,0x11,0x78,0x74,
+0xa4,0x1b,0x14,0x65,0x6e,0x64,0x65,0x64,0xa5,0x1b,0x1a,0x65,0x74,0x72,0x69,0x63,
+0x73,0x68,0x61,0x70,0x65,0x73,0x8c,0x12,0x65,0x78,0x74,0xa2,0xe3,0x14,0x65,0x6e,
+0x64,0x65,0x64,0xa3,0xe3,0x1e,0x65,0x72,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,
+0x61,0x74,0x69,0x6f,0x6e,0x71,0x17,0x61,0x67,0x6f,0x6c,0x69,0x74,0x69,0x63,0xa2,
+0x88,0x12,0x73,0x75,0x70,0xa4,0xa,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa5,
+0xa,0x13,0x74,0x68,0x69,0x63,0xa3,0x59,1,0x61,0x5c,0x65,0x11,0x65,0x6b,0x30,
+1,0x61,0x38,0x65,0x11,0x78,0x74,0x6e,0x14,0x65,0x6e,0x64,0x65,0x64,0x6f,0x17,
+0x6e,0x64,0x63,0x6f,0x70,0x74,0x69,0x63,0x31,0x13,0x6e,0x74,0x68,0x61,0xa3,0xe4,
+2,0x61,0xa2,0x48,0x65,0xa2,0xdf,0x69,1,0x67,0x30,0x72,0x14,0x61,0x67,0x61,
+0x6e,0x61,0x9d,0x10,0x68,1,0x70,0x3a,0x73,0x18,0x75,0x72,0x72,0x6f,0x67,0x61,
+0x74,0x65,0x73,0xa3,0x4b,1,0x72,0x3c,0x75,0x19,0x73,0x75,0x72,0x72,0x6f,0x67,
+0x61,0x74,0x65,0x73,0xa3,0x4c,0x11,0x69,0x76,0x1f,0x61,0x74,0x65,0x75,0x73,0x65,
+0x73,0x75,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x73,0xa3,0x4c,2,0x6c,0x32,0x6e,
+0x9a,0x74,0x12,0x72,0x61,0x6e,0xa5,2,0x10,0x66,2,0x61,0x58,0x6d,0x70,0x77,
+0x14,0x69,0x64,0x74,0x68,0x61,0x1f,0x6e,0x64,0x66,0x75,0x6c,0x6c,0x77,0x69,0x64,
+0x74,0x68,0x66,0x6f,0x72,0x6d,0x73,0xa3,0x57,0x1a,0x6e,0x64,0x66,0x75,0x6c,0x6c,
+0x66,0x6f,0x72,0x6d,0x73,0xa3,0x57,0x13,0x61,0x72,0x6b,0x73,0xa3,0x52,2,0x67,
+0x34,0x69,0xa2,0x45,0x75,0x12,0x6e,0x6f,0x6f,0xa3,0x63,0x11,0x75,0x6c,0xa2,0x4a,
+2,0x63,0x3c,0x6a,0x5e,0x73,0x17,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x73,0xa3,
+0x4a,0x1f,0x6f,0x6d,0x70,0x61,0x74,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x6a,0x61,
+0x6d,0x6f,0xa3,0x41,0x12,0x61,0x6d,0x6f,0x5c,0x17,0x65,0x78,0x74,0x65,0x6e,0x64,
+0x65,0x64,1,0x61,0xa3,0xb4,0x62,0xa3,0xb9,0x19,0x66,0x69,0x72,0x6f,0x68,0x69,
+0x6e,0x67,0x79,0x61,0xa5,0x1d,0x13,0x62,0x72,0x65,0x77,0x37,0x61,0xa2,0xe9,0x62,
+0xa6,0x29,0x63,0xa6,0xfe,0x64,0xac,0x8a,0x65,5,0x6d,0xa2,0x6d,0x86,0x6e,0x96,
+0x74,0x15,0x68,0x69,0x6f,0x70,0x69,0x63,0x5e,1,0x65,0x40,0x73,0x11,0x75,0x70,
+0xa2,0x86,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x86,0x11,0x78,0x74,0xa2,
+0x85,1,0x61,0xa3,0xc8,0x65,0x13,0x6e,0x64,0x65,0x64,0xa2,0x85,0x10,0x61,0xa3,
+0xc8,0x16,0x6f,0x74,0x69,0x63,0x6f,0x6e,0x73,0xa3,0xce,0x15,0x63,0x6c,0x6f,0x73,
+0x65,0x64,2,0x61,0x5a,0x63,0x9e,0x69,0x1c,0x64,0x65,0x6f,0x67,0x72,0x61,0x70,
+0x68,0x69,0x63,0x73,0x75,0x70,0xa2,0xc4,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,
+0xa3,0xc4,0x16,0x6c,0x70,0x68,0x61,0x6e,0x75,0x6d,0x86,1,0x65,0x2c,0x73,0x11,
+0x75,0x70,0xa3,0xc3,0x13,0x72,0x69,0x63,0x73,0x86,0x18,0x75,0x70,0x70,0x6c,0x65,
+0x6d,0x65,0x6e,0x74,0xa3,0xc3,0x11,0x6a,0x6b,0xa2,0x44,0x1f,0x6c,0x65,0x74,0x74,
+0x65,0x72,0x73,0x61,0x6e,0x64,0x6d,0x6f,0x6e,0x74,0x68,0x73,0xa3,0x44,0x61,0x36,
+0x67,0x62,0x6c,0x14,0x62,0x61,0x73,0x61,0x6e,0xa3,0xe2,0x13,0x72,0x6c,0x79,0x64,
+0x1f,0x79,0x6e,0x61,0x73,0x74,0x69,0x63,0x63,0x75,0x6e,0x65,0x69,0x66,0x6f,0x72,
+0x6d,0xa5,1,0x10,0x79,0x1f,0x70,0x74,0x69,0x61,0x6e,0x68,0x69,0x65,0x72,0x6f,
+0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0xc2,7,0x6e,0xc0,0xe5,0x6e,0x3e,0x72,0xa2,
+0x5d,0x73,0xa2,0xd8,0x76,0x14,0x65,0x73,0x74,0x61,0x6e,0xa3,0xbc,1,0x61,0x92,
+0x63,0x13,0x69,0x65,0x6e,0x74,1,0x67,0x34,0x73,0x15,0x79,0x6d,0x62,0x6f,0x6c,
+0x73,0xa3,0xa5,0x13,0x72,0x65,0x65,0x6b,1,0x6d,0x34,0x6e,0x15,0x75,0x6d,0x62,
+0x65,0x72,0x73,0xa3,0x7f,0x13,0x75,0x73,0x69,0x63,0xa2,0x7e,0x19,0x61,0x6c,0x6e,
+0x6f,0x74,0x61,0x74,0x69,0x6f,0x6e,0xa3,0x7e,0x10,0x74,0x1f,0x6f,0x6c,0x69,0x61,
+0x6e,0x68,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0xfe,2,0x61,
+0x32,0x6d,0xa2,0x71,0x72,0x12,0x6f,0x77,0x73,0x7d,0x12,0x62,0x69,0x63,0x38,3,
+0x65,0x4a,0x6d,0x66,0x70,0xa2,0x43,0x73,0x11,0x75,0x70,0xa2,0x80,0x16,0x70,0x6c,
+0x65,0x6d,0x65,0x6e,0x74,0xa3,0x80,0x11,0x78,0x74,1,0x61,0xa3,0xd2,0x65,0x14,
+0x6e,0x64,0x65,0x64,0x61,0xa3,0xd2,0x12,0x61,0x74,0x68,0xa2,0xd3,0x18,0x65,0x6d,
+0x61,0x74,0x69,0x63,0x61,0x6c,0x61,0x1f,0x6c,0x70,0x68,0x61,0x62,0x65,0x74,0x69,
+0x63,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xd3,1,0x66,0x42,0x72,0x1e,0x65,
+0x73,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x66,0x6f,0x72,0x6d,0x73,1,0x61,
+0xa3,0x51,0x62,0xa3,0x55,0x14,0x65,0x6e,0x69,0x61,0x6e,0x35,0x12,0x63,0x69,0x69,
+0x23,0x64,0x9e,0x65,0xa2,0x42,0x68,0xa2,0x4d,0x6c,1,0x63,0x62,0x70,0x17,0x68,
+0x61,0x62,0x65,0x74,0x69,0x63,0x70,1,0x66,0xa3,0x50,0x72,0x1e,0x65,0x73,0x65,
+0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x66,0x6f,0x72,0x6d,0x73,0xa3,0x50,0x16,0x68,
+0x65,0x6d,0x69,0x63,0x61,0x6c,0xa2,0xd0,0x16,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,
+0xa3,0xd0,0x12,0x6c,0x61,0x6d,0xa5,7,0x1a,0x67,0x65,0x61,0x6e,0x6e,0x75,0x6d,
+0x62,0x65,0x72,0x73,0xa3,0x77,0x11,0x6f,0x6d,0xa3,0xfd,7,0x6f,0x71,0x6f,0x64,
+0x72,0xa2,0x41,0x75,0xa2,0x58,0x79,0x1b,0x7a,0x61,0x6e,0x74,0x69,0x6e,0x65,0x6d,
+0x75,0x73,0x69,0x63,0xa2,0x5b,0x18,0x61,0x6c,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,
+0xa3,0x5b,1,0x70,0x34,0x78,0x16,0x64,0x72,0x61,0x77,0x69,0x6e,0x67,0x89,0x14,
+0x6f,0x6d,0x6f,0x66,0x6f,0xa0,0x12,0x65,0x78,0x74,0xa2,0x43,0x14,0x65,0x6e,0x64,
+0x65,0x64,0xa3,0x43,0x10,0x61,1,0x68,0x40,0x69,0x12,0x6c,0x6c,0x65,0x92,0x17,
+0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x73,0x93,0x11,0x6d,0x69,0xa3,0xc9,1,0x67,
+0x2c,0x68,0x11,0x69,0x64,0xa3,0x64,0x14,0x69,0x6e,0x65,0x73,0x65,0xa3,0x81,0x61,
+0x48,0x65,0xa2,0x4e,0x68,0xa2,0x52,0x6c,0x1a,0x6f,0x63,0x6b,0x65,0x6c,0x65,0x6d,
+0x65,0x6e,0x74,0x73,0x8b,3,0x6c,0x34,0x6d,0x40,0x73,0x66,0x74,0x11,0x61,0x6b,
+0xa3,0xc7,0x14,0x69,0x6e,0x65,0x73,0x65,0xa3,0x93,0x11,0x75,0x6d,0xa2,0xb1,0x12,
+0x73,0x75,0x70,0xa2,0xca,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0xca,1,
+0x69,0x30,0x73,0x13,0x61,0x76,0x61,0x68,0xa3,0xdd,0x15,0x63,0x6c,0x61,0x74,0x69,
+0x6e,0x23,0x14,0x6e,0x67,0x61,0x6c,0x69,0x41,0x16,0x61,0x69,0x6b,0x73,0x75,0x6b,
+0x69,0xa5,8,5,0x6f,0xc1,0x4c,0x6f,0xa2,0x55,0x75,0xa4,0x10,0x79,1,0x70,
+0x9c,0x72,0x14,0x69,0x6c,0x6c,0x69,0x63,0x32,1,0x65,0x4c,0x73,0x11,0x75,0x70,
+0xa2,0x61,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa2,0x61,0x12,0x61,0x72,0x79,
+0xa3,0x61,0x11,0x78,0x74,3,0x61,0xa3,0x9e,0x62,0xa3,0xa0,0x63,0xa5,9,0x65,
+0x13,0x6e,0x64,0x65,0x64,2,0x61,0xa3,0x9e,0x62,0xa3,0xa0,0x63,0xa5,9,0x1c,
+0x72,0x69,0x6f,0x74,0x73,0x79,0x6c,0x6c,0x61,0x62,0x61,0x72,0x79,0xa3,0x7b,3,
+0x6d,0x5a,0x6e,0xa2,0x95,0x70,0xa2,0xa0,0x75,0x17,0x6e,0x74,0x69,0x6e,0x67,0x72,
+0x6f,0x64,0xa2,0x9a,0x17,0x6e,0x75,0x6d,0x65,0x72,0x61,0x6c,0x73,0xa3,0x9a,2,
+0x62,0x3a,0x6d,0xa2,0x5f,0x70,0x15,0x61,0x74,0x6a,0x61,0x6d,0x6f,0xa3,0x41,0x14,
+0x69,0x6e,0x69,0x6e,0x67,2,0x64,0x46,0x68,0x9e,0x6d,0x1d,0x61,0x72,0x6b,0x73,
+0x66,0x6f,0x72,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x77,0x1e,0x69,0x61,0x63,0x72,
+0x69,0x74,0x69,0x63,0x61,0x6c,0x6d,0x61,0x72,0x6b,0x73,0x2e,2,0x65,0x40,0x66,
+0xa6,0x2a,0x73,0x18,0x75,0x70,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x83,0x16,
+0x78,0x74,0x65,0x6e,0x64,0x65,0x64,0xa3,0xe0,0x17,0x61,0x6c,0x66,0x6d,0x61,0x72,
+0x6b,0x73,0xa3,0x52,0x11,0x6f,0x6e,0x1f,0x69,0x6e,0x64,0x69,0x63,0x6e,0x75,0x6d,
+0x62,0x65,0x72,0x66,0x6f,0x72,0x6d,0x73,0xa3,0xb2,0x1b,0x74,0x72,0x6f,0x6c,0x70,
+0x69,0x63,0x74,0x75,0x72,0x65,0x73,0x83,0x12,0x74,0x69,0x63,0xa2,0x84,0x1b,0x65,
+0x70,0x61,0x63,0x74,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0xa3,0xdf,1,0x6e,0x3e,
+0x72,0x1b,0x72,0x65,0x6e,0x63,0x79,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x75,0x15,
+0x65,0x69,0x66,0x6f,0x72,0x6d,0xa2,0x98,0x16,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,
+0xa2,0x99,0x1d,0x61,0x6e,0x64,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,
+0x6e,0xa3,0x99,0x61,0xa2,0xdb,0x68,0xa4,5,0x6a,0x10,0x6b,0xa2,0x47,4,0x63,
+0x86,0x65,0xa2,0x7d,0x72,0xa2,0x92,0x73,0xa2,0xa4,0x75,0x1f,0x6e,0x69,0x66,0x69,
+0x65,0x64,0x69,0x64,0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa2,0x47,0x18,0x65,
+0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,5,0x64,0x65,0x64,0xa3,0xd1,0x65,0xa5,
+0,0x66,0xa5,0x12,0x14,0x6f,0x6d,0x70,0x61,0x74,0xa2,0x45,1,0x66,0x96,0x69,
+1,0x62,0x44,0x64,0x17,0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa2,0x4f,0x12,
+0x73,0x75,0x70,0xa3,0x5f,0x14,0x69,0x6c,0x69,0x74,0x79,0xa2,0x45,1,0x66,0x54,
+0x69,0x18,0x64,0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa2,0x4f,0x19,0x73,0x75,
+0x70,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x5f,0x13,0x6f,0x72,0x6d,0x73,0xa3,
+0x53,0x11,0x78,0x74,5,0x64,9,0x64,0xa3,0xd1,0x65,0xa5,0,0x66,0xa5,0x12,
+0x61,0xa3,0x46,0x62,0xa3,0x5e,0x63,0xa3,0xc5,0x19,0x61,0x64,0x69,0x63,0x61,0x6c,
+0x73,0x73,0x75,0x70,0x94,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x95,1,0x74,
+0x50,0x79,0x14,0x6d,0x62,0x6f,0x6c,0x73,0x9a,0x1d,0x61,0x6e,0x64,0x70,0x75,0x6e,
+0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x9b,0x14,0x72,0x6f,0x6b,0x65,0x73,0xa3,
+0x82,2,0x6e,0x48,0x72,0x64,0x75,0x1d,0x63,0x61,0x73,0x69,0x61,0x6e,0x61,0x6c,
+0x62,0x61,0x6e,0x69,0x61,0x6e,0xa3,0xde,0x1d,0x61,0x64,0x69,0x61,0x6e,0x73,0x79,
+0x6c,0x6c,0x61,0x62,0x69,0x63,0x73,0x63,0x12,0x69,0x61,0x6e,0xa3,0xa8,1,0x61,
+0x6c,0x65,1,0x72,0x38,0x73,0x17,0x73,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa5,
+0x19,0x13,0x6f,0x6b,0x65,0x65,0x60,0x12,0x73,0x75,0x70,0xa2,0xff,0x16,0x70,0x6c,
+0x65,0x6d,0x65,0x6e,0x74,0xa3,0xff,1,0x6b,0x26,0x6d,0xa3,0xa4,0x11,0x6d,0x61,
+0xa3,0xd4,3,0x65,0x3e,0x69,0x7e,0x6f,0xa2,0x5d,0x75,0x15,0x70,0x6c,0x6f,0x79,
+0x61,0x6e,0xa3,0xe1,1,0x73,0x50,0x76,0x16,0x61,0x6e,0x61,0x67,0x61,0x72,0x69,
+0x3e,0x12,0x65,0x78,0x74,0xa2,0xb3,0x14,0x65,0x6e,0x64,0x65,0x64,0xa3,0xb3,0x13,
+0x65,0x72,0x65,0x74,0xa3,0x5a,1,0x61,0x30,0x6e,0x14,0x67,0x62,0x61,0x74,0x73,
+0x91,0x18,0x63,0x72,0x69,0x74,0x69,0x63,0x61,0x6c,0x73,0x2e,2,0x65,0x30,0x66,
+0x36,0x73,0x11,0x75,0x70,0xa3,0x83,0x11,0x78,0x74,0xa3,0xe0,0x18,0x6f,0x72,0x73,
+0x79,0x6d,0x62,0x6f,0x6c,0x73,0x77,1,0x67,0x3e,0x6d,0x12,0x69,0x6e,0x6f,0xa2,
+0xab,0x14,0x74,0x69,0x6c,0x65,0x73,0xa3,0xab,0x11,0x72,0x61,0xa5,0x1a,8,0x6d,
+0x5f,0x6d,0x3a,0x6e,0x48,0x73,0x7a,0x76,0xa2,0x4b,0x77,0x12,0x69,0x64,0x65,0x43,
+0x11,0x65,0x64,0x32,0x12,0x69,0x61,0x6c,0x33,2,0x61,0x40,0x62,0x37,0x6f,1,
+0x62,0x28,0x6e,0x10,0x65,0x21,0x13,0x72,0x65,0x61,0x6b,0x37,0x10,0x72,0x34,0x12,
+0x72,0x6f,0x77,0x35,2,0x6d,0x38,0x71,0x46,0x75,1,0x62,0x3d,0x70,0x3e,0x11,
+0x65,0x72,0x3f,1,0x61,0x24,0x6c,0x39,0x11,0x6c,0x6c,0x39,1,0x72,0x3b,0x75,
+0x12,0x61,0x72,0x65,0x3b,0x12,0x65,0x72,0x74,0x40,0x13,0x69,0x63,0x61,0x6c,0x41,
+0x63,0x58,0x65,0x92,0x66,0x96,0x69,1,0x6e,0x36,0x73,0x10,0x6f,0x30,0x14,0x6c,
+0x61,0x74,0x65,0x64,0x31,0x11,0x69,0x74,0x2e,0x12,0x69,0x61,0x6c,0x2f,2,0x61,
+0x36,0x69,0x48,0x6f,0x10,0x6d,0x24,0x12,0x70,0x61,0x74,0x25,0x10,0x6e,0x22,0x15,
+0x6f,0x6e,0x69,0x63,0x61,0x6c,0x23,0x13,0x72,0x63,0x6c,0x65,0x27,0x11,0x6e,0x63,
+0x27,2,0x69,0x3a,0x6f,0x44,0x72,0x10,0x61,0x2c,0x14,0x63,0x74,0x69,0x6f,0x6e,
+0x2d,0x10,0x6e,0x28,0x11,0x61,0x6c,0x29,0x11,0x6e,0x74,0x2b,4,0x61,0x3a,0x66,
+0x4c,0x68,0x5e,0x6e,0x70,0x77,0x2a,0x12,0x69,0x64,0x65,0x2b,0x22,0x17,0x6d,0x62,
+0x69,0x67,0x75,0x6f,0x75,0x73,0x23,0x26,0x17,0x75,0x6c,0x6c,0x77,0x69,0x64,0x74,
+0x68,0x27,0x24,0x17,0x61,0x6c,0x66,0x77,0x69,0x64,0x74,0x68,0x25,0x20,1,0x61,
+0x30,0x65,0x14,0x75,0x74,0x72,0x61,0x6c,0x21,0x28,0x13,0x72,0x72,0x6f,0x77,0x29,
+0xd,0x6e,0xc0,0xfb,0x73,0x6d,0x73,0x3a,0x74,0x98,0x75,0xa2,0x49,0x7a,2,0x6c,
+0x3b,0x70,0x3d,0x73,0x39,5,0x6f,0x28,0x6f,0x57,0x70,0x34,0x75,0x16,0x72,0x72,
+0x6f,0x67,0x61,0x74,0x65,0x45,0x11,0x61,0x63,1,0x65,0x32,0x69,0x15,0x6e,0x67,
+0x6d,0x61,0x72,0x6b,0x31,0x18,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x39,
+0x63,0x53,0x6b,0x55,0x6d,0x51,0x1d,0x69,0x74,0x6c,0x65,0x63,0x61,0x73,0x65,0x6c,
+0x65,0x74,0x74,0x65,0x72,0x27,1,0x6e,0x40,0x70,0x1c,0x70,0x65,0x72,0x63,0x61,
+0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x23,0x17,0x61,0x73,0x73,0x69,0x67,0x6e,
+0x65,0x64,0x21,0x6e,0x8a,0x6f,0xa2,0x47,0x70,8,0x66,0x14,0x66,0x5b,0x69,0x59,
+0x6f,0x4f,0x72,0x24,0x73,0x49,0x17,0x69,0x76,0x61,0x74,0x65,0x75,0x73,0x65,0x43,
+0x61,0x2c,0x63,0x4d,0x64,0x47,0x65,0x4b,0x1f,0x72,0x61,0x67,0x72,0x61,0x70,0x68,
+0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x3d,2,0x64,0x33,0x6c,0x35,0x6f,
+0x36,0x1b,0x6e,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x2d,1,
+0x70,0x7c,0x74,0x12,0x68,0x65,0x72,3,0x6c,0x38,0x6e,0x42,0x70,0x4c,0x73,0x14,
+0x79,0x6d,0x62,0x6f,0x6c,0x57,0x14,0x65,0x74,0x74,0x65,0x72,0x2b,0x14,0x75,0x6d,
+0x62,0x65,0x72,0x37,0x19,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x4f,
+0x1c,0x65,0x6e,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x49,0x66,
+0x9e,0x66,0x88,0x69,0xa2,0x4b,0x6c,0xa2,0x5c,0x6d,4,0x61,0x60,0x63,0x31,0x65,
+0x2f,0x6e,0x2d,0x6f,0x15,0x64,0x69,0x66,0x69,0x65,0x72,1,0x6c,0x30,0x73,0x14,
+0x79,0x6d,0x62,0x6f,0x6c,0x55,0x14,0x65,0x74,0x74,0x65,0x72,0x29,0x17,0x74,0x68,
+0x73,0x79,0x6d,0x62,0x6f,0x6c,0x51,1,0x69,0x2e,0x6f,0x13,0x72,0x6d,0x61,0x74,
+0x41,0x1d,0x6e,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,
+0x5b,0x10,0x6e,0x1f,0x69,0x74,0x69,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,
+0x74,0x69,0x6f,0x6e,0x59,6,0x6d,0x18,0x6d,0x29,0x6f,0x28,0x74,0x27,0x75,0x23,
+0x2a,0x1c,0x77,0x65,0x72,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x25,
+0x65,0x28,0x69,0x3c,0x6c,0x25,0x19,0x74,0x74,0x65,0x72,0x6e,0x75,0x6d,0x62,0x65,
+0x72,0x35,0x1a,0x6e,0x65,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x3b,0x63,
+0x44,0x64,0xa2,0x60,0x65,0x1b,0x6e,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x6d,0x61,
+0x72,0x6b,0x2f,6,0x6e,0x39,0x6e,0x46,0x6f,0x4e,0x73,0x45,0x75,0x1b,0x72,0x72,
+0x65,0x6e,0x63,0x79,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x53,0x20,0x12,0x74,0x72,0x6c,
+0x3f,0x42,0x10,0x6e,1,0x6e,0x2c,0x74,0x12,0x72,0x6f,0x6c,0x3f,0x1f,0x65,0x63,
+0x74,0x6f,0x72,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x4d,0x63,
+0x3f,0x66,0x41,0x6c,0x1d,0x6f,0x73,0x65,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,
+0x69,0x6f,0x6e,0x4b,2,0x61,0x30,0x65,0x4a,0x69,0x12,0x67,0x69,0x74,0x33,0x1c,
+0x73,0x68,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x47,0x1a,0x63,
+0x69,0x6d,0x61,0x6c,0x6e,0x75,0x6d,0x62,0x65,0x72,0x33,0,0x12,0x6d,0xc2,0x3f,
+0x73,0xa1,0x73,0x4e,0x74,0xa2,0x56,0x77,0xa2,0x72,0x79,0xa2,0x73,0x7a,1,0x61,
+0x2c,0x68,0x12,0x61,0x69,0x6e,0x8b,0x11,0x69,0x6e,0x85,5,0x74,0x22,0x74,0x38,
+0x77,0x4c,0x79,0x16,0x72,0x69,0x61,0x63,0x77,0x61,0x77,0x6f,0x18,0x72,0x61,0x69,
+0x67,0x68,0x74,0x77,0x61,0x77,0xa3,0x55,0x15,0x61,0x73,0x68,0x6b,0x61,0x66,0x6d,
+0x61,0x2e,0x65,0x38,0x68,0x11,0x69,0x6e,0x6b,0x10,0x64,0x62,0x11,0x68,0x65,0x65,
+1,0x65,0x2e,0x6d,0x13,0x6b,0x61,0x74,0x68,0x69,0x10,0x6e,0x67,1,0x61,0x4e,
+0x65,1,0x68,0x28,0x74,0x10,0x68,0x77,0x16,0x6d,0x61,0x72,0x62,0x75,0x74,0x61,
+0x74,0x13,0x67,0x6f,0x61,0x6c,0x3d,1,0x68,0x71,0x77,0x73,0x11,0x61,0x77,0x79,
+1,0x65,0x32,0x75,0x11,0x64,0x68,0x80,0x11,0x68,0x65,0x83,0x10,0x68,0x7a,1,
+0x62,0x34,0x77,0x16,0x69,0x74,0x68,0x74,0x61,0x69,0x6c,0x7f,0x14,0x61,0x72,0x72,
+0x65,0x65,0x7d,0x6d,0x6c,0x6e,0xa4,0x6b,0x70,0xa4,0x88,0x71,0xa4,0x88,0x72,1,
+0x65,0x38,0x6f,0x18,0x68,0x69,0x6e,0x67,0x79,0x61,0x79,0x65,0x68,0x93,1,0x68,
+0x5f,0x76,0x16,0x65,0x72,0x73,0x65,0x64,0x70,0x65,0x61,2,0x61,0x2e,0x65,0xa4,
+0x3e,0x69,0x10,0x6d,0x53,1,0x6c,0xa2,0xe7,0x6e,0x16,0x69,0x63,0x68,0x61,0x65,
+0x61,0x6e,0,0x12,0x6e,0x76,0x73,0x51,0x73,0x3e,0x74,0x5c,0x77,0xa0,0x79,0xa2,
+0x42,0x7a,0x13,0x61,0x79,0x69,0x6e,0xa3,0x54,0x10,0x61,1,0x64,0x2e,0x6d,0x12,
+0x65,0x6b,0x68,0xa3,0x4c,0x11,0x68,0x65,0xa3,0x4b,3,0x61,0x38,0x65,0x3c,0x68,
+0x4a,0x77,0x13,0x65,0x6e,0x74,0x79,0xa3,0x51,0x10,0x77,0xa3,0x4d,1,0x6e,0xa3,
+0x4e,0x74,0x10,0x68,0xa3,0x4f,0x14,0x61,0x6d,0x65,0x64,0x68,0xa3,0x50,0x11,0x61,
+0x77,0xa3,0x52,0x12,0x6f,0x64,0x68,0xa3,0x53,0x6e,0x3a,0x6f,0x40,0x70,0x46,0x71,
+0x4a,0x72,0x12,0x65,0x73,0x68,0xa3,0x4a,0x11,0x75,0x6e,0xa3,0x46,0x11,0x6e,0x65,
+0xa3,0x47,0x10,0x65,0xa3,0x48,0x12,0x6f,0x70,0x68,0xa3,0x49,0x67,0x33,0x67,0x38,
+0x68,0x40,0x6b,0x5e,0x6c,0x66,0x6d,0x11,0x65,0x6d,0xa3,0x45,0x13,0x69,0x6d,0x65,
+0x6c,0xa1,1,0x65,0x32,0x75,0x14,0x6e,0x64,0x72,0x65,0x64,0xa3,0x42,0x11,0x74,
+0x68,0xa3,0x41,0x12,0x61,0x70,0x68,0xa3,0x43,0x14,0x61,0x6d,0x65,0x64,0x68,0xa3,
+0x44,0x61,0x34,0x62,0x4a,0x64,0x50,0x66,0x12,0x69,0x76,0x65,0x9f,1,0x6c,0x2a,
+0x79,0x11,0x69,0x6e,0x97,0x12,0x65,0x70,0x68,0x95,0x12,0x65,0x74,0x68,0x99,1,
+0x61,0x30,0x68,0x14,0x61,0x6d,0x65,0x64,0x68,0x9d,0x13,0x6c,0x65,0x74,0x68,0x9b,
+0x15,0x61,0x79,0x61,0x6c,0x61,0x6d,6,0x6e,0x2c,0x6e,0x34,0x72,0x5e,0x73,0x62,
+0x74,0x11,0x74,0x61,0xa3,0x63,2,0x67,0x2e,0x6e,0x32,0x79,0x10,0x61,0xa3,0x60,
+0x10,0x61,0xa3,0x5d,1,0x61,0xa3,0x5e,0x6e,0x10,0x61,0xa3,0x5f,0x10,0x61,0xa3,
+0x61,0x11,0x73,0x61,0xa3,0x62,0x62,0x3c,0x6a,0x42,0x6c,0x10,0x6c,1,0x61,0xa3,
+0x5b,0x6c,0x10,0x61,0xa3,0x5c,0x11,0x68,0x61,0xa3,0x59,0x10,0x61,0xa3,0x5a,0x11,
+0x65,0x6d,0x51,2,0x6f,0x2c,0x75,0x50,0x79,0x10,0x61,0x91,1,0x6a,0x28,0x6f,
+0x10,0x6e,0x55,0x1a,0x6f,0x69,0x6e,0x69,0x6e,0x67,0x67,0x72,0x6f,0x75,0x70,0x21,
+0x10,0x6e,0x57,0x10,0x65,0x59,0x10,0x61,1,0x66,0x5b,0x70,0x10,0x68,0x5d,0x66,
+0x9a,0x66,0x42,0x67,0x7a,0x68,0x8a,0x6b,0xa2,0x75,0x6c,0x11,0x61,0x6d,0x4c,0x12,
+0x61,0x64,0x68,0x4f,2,0x61,0x3e,0x65,0x4a,0x69,0x19,0x6e,0x61,0x6c,0x73,0x65,
+0x6d,0x6b,0x61,0x74,0x68,0x35,0x15,0x72,0x73,0x69,0x79,0x65,0x68,0x8f,0x86,0x10,
+0x68,0x33,0x10,0x61,1,0x66,0x37,0x6d,0x11,0x61,0x6c,0x39,1,0x61,0x40,0x65,
+0x3e,1,0x68,0x28,0x74,0x10,0x68,0x45,0x40,0x13,0x67,0x6f,0x61,0x6c,0x43,2,
+0x68,0x3b,0x6d,0x5c,0x6e,0x1a,0x69,0x66,0x69,0x72,0x6f,0x68,0x69,0x6e,0x67,0x79,
+0x61,1,0x6b,0x2a,0x70,0x10,0x61,0xa3,0x65,0x15,0x69,0x6e,0x6e,0x61,0x79,0x61,
+0xa3,0x64,0x1a,0x7a,0x61,0x6f,0x6e,0x68,0x65,0x68,0x67,0x6f,0x61,0x6c,0x3d,2,
+0x61,0x3a,0x68,0x44,0x6e,0x17,0x6f,0x74,0x74,0x65,0x64,0x68,0x65,0x68,0x4b,1,
+0x66,0x47,0x70,0x10,0x68,0x49,0x12,0x61,0x70,0x68,0x89,0x61,0x2e,0x62,0x8a,0x64,
+0xa2,0x51,0x65,0x31,2,0x66,0x3c,0x69,0x70,0x6c,1,0x61,0x28,0x65,0x10,0x66,
+0x27,0x11,0x70,0x68,0x25,0x14,0x72,0x69,0x63,0x61,0x6e,2,0x66,0x30,0x6e,0x36,
+0x71,0x11,0x61,0x66,0xa3,0x58,0x11,0x65,0x68,0xa3,0x56,0x12,0x6f,0x6f,0x6e,0xa3,
+0x57,0x10,0x6e,0x23,1,0x65,0x4a,0x75,0x10,0x72,0x1f,0x75,0x73,0x68,0x61,0x73,
+0x6b,0x69,0x79,0x65,0x68,0x62,0x61,0x72,0x72,0x65,0x65,0x8d,1,0x68,0x29,0x74,
+0x10,0x68,0x2b,0x11,0x61,0x6c,0x2c,0x16,0x61,0x74,0x68,0x72,0x69,0x73,0x68,0x2f,
+7,0x6e,0x2e,0x6e,0x2c,0x72,0x3e,0x74,0x56,0x75,0x21,0x18,0x6f,0x6e,0x6a,0x6f,
+0x69,0x6e,0x69,0x6e,0x67,0x21,0x28,0x1a,0x69,0x67,0x68,0x74,0x6a,0x6f,0x69,0x6e,
+0x69,0x6e,0x67,0x29,0x2a,0x19,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,
+0x2b,0x63,0x23,0x64,0x40,0x6a,0x56,0x6c,0x26,0x19,0x65,0x66,0x74,0x6a,0x6f,0x69,
+0x6e,0x69,0x6e,0x67,0x27,0x24,0x19,0x75,0x61,0x6c,0x6a,0x6f,0x69,0x6e,0x69,0x6e,
+0x67,0x25,0x19,0x6f,0x69,0x6e,0x63,0x61,0x75,0x73,0x69,0x6e,0x67,0x23,0,0x13,
+0x6e,0xc0,0xd0,0x73,0x49,0x73,0x48,0x75,0x78,0x77,0x84,0x78,0x9c,0x7a,0x10,0x77,
+0x58,1,0x6a,0x75,0x73,0x13,0x70,0x61,0x63,0x65,0x59,4,0x61,0x51,0x67,0x53,
+0x70,0x28,0x75,0x30,0x79,0x57,0x54,0x12,0x61,0x63,0x65,0x55,0x16,0x72,0x72,0x6f,
+0x67,0x61,0x74,0x65,0x53,0x15,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x21,1,0x6a,0x5d,
+0x6f,0x17,0x72,0x64,0x6a,0x6f,0x69,0x6e,0x65,0x72,0x5d,0x10,0x78,0x21,0x6e,0x60,
+0x6f,0xa2,0x41,0x70,0xa2,0x50,0x71,0xa2,0x6e,0x72,1,0x65,0x24,0x69,0x6f,0x1e,
+0x67,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,0x72,0x6f,
+4,0x65,0x3e,0x6c,0x5b,0x6f,0x46,0x73,0x45,0x75,0x46,0x14,0x6d,0x65,0x72,0x69,
+0x63,0x47,0x15,0x78,0x74,0x6c,0x69,0x6e,0x65,0x5b,0x17,0x6e,0x73,0x74,0x61,0x72,
+0x74,0x65,0x72,0x45,0x10,0x70,0x48,0x1c,0x65,0x6e,0x70,0x75,0x6e,0x63,0x74,0x75,
+0x61,0x74,0x69,0x6f,0x6e,0x49,1,0x6f,0x3e,0x72,0x4c,0x1a,0x65,0x66,0x69,0x78,
+0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x4d,0x4a,0x1b,0x73,0x74,0x66,0x69,0x78,0x6e,
+0x75,0x6d,0x65,0x72,0x69,0x63,0x4b,0x10,0x75,0x4e,0x16,0x6f,0x74,0x61,0x74,0x69,
+0x6f,0x6e,0x4f,0x68,0x7b,0x68,0x50,0x69,0x86,0x6a,0xa2,0x61,0x6c,0xa2,0x65,0x6d,
+0x1c,0x61,0x6e,0x64,0x61,0x74,0x6f,0x72,0x79,0x62,0x72,0x65,0x61,0x6b,0x2d,4,
+0x32,0x5f,0x33,0x61,0x65,0x34,0x6c,0x6d,0x79,0x3a,0x13,0x70,0x68,0x65,0x6e,0x3b,
+0x19,0x62,0x72,0x65,0x77,0x6c,0x65,0x74,0x74,0x65,0x72,0x6d,2,0x64,0x28,0x6e,
+0x3c,0x73,0x41,0x3c,0x18,0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x69,0x63,0x3d,0x3e,
+1,0x66,0x3e,0x73,0x11,0x65,0x70,1,0x61,0x22,0x65,0x14,0x72,0x61,0x62,0x6c,
+0x65,0x3f,0x18,0x69,0x78,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x41,2,0x6c,0x63,
+0x74,0x65,0x76,0x67,1,0x66,0x43,0x69,0x15,0x6e,0x65,0x66,0x65,0x65,0x64,0x43,
+0x61,0x40,0x62,0x70,0x63,0xa2,0x55,0x65,0xa2,0xdb,0x67,0x10,0x6c,0x38,0x11,0x75,
+0x65,0x39,2,0x69,0x23,0x6c,0x34,0x6d,0x16,0x62,0x69,0x67,0x75,0x6f,0x75,0x73,
+0x23,0x24,0x17,0x70,0x68,0x61,0x62,0x65,0x74,0x69,0x63,0x25,4,0x32,0x27,0x61,
+0x29,0x62,0x2b,0x6b,0x2d,0x72,0x12,0x65,0x61,0x6b,2,0x61,0x36,0x62,0x3e,0x73,
+0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x57,0x13,0x66,0x74,0x65,0x72,0x29,1,0x65,
+0x2a,0x6f,0x11,0x74,0x68,0x27,0x13,0x66,0x6f,0x72,0x65,0x2b,7,0x6d,0x51,0x6d,
+0x33,0x6f,0x28,0x70,0x69,0x72,0x35,1,0x6d,0x76,0x6e,1,0x64,0x3c,0x74,0x1a,
+0x69,0x6e,0x67,0x65,0x6e,0x74,0x62,0x72,0x65,0x61,0x6b,0x2f,0x15,0x69,0x74,0x69,
+0x6f,0x6e,0x61,0x1f,0x6c,0x6a,0x61,0x70,0x61,0x6e,0x65,0x73,0x65,0x73,0x74,0x61,
+0x72,0x74,0x65,0x72,0x6b,1,0x62,0x3a,0x70,0x19,0x6c,0x65,0x78,0x63,0x6f,0x6e,
+0x74,0x65,0x78,0x74,0x51,0x18,0x69,0x6e,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x33,
+0x61,0x6a,0x62,0x2f,0x6a,0x6b,0x6c,0x30,0x13,0x6f,0x73,0x65,0x70,1,0x61,0x38,
+0x75,0x18,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x31,0x18,0x72,0x65,0x6e,
+0x74,0x68,0x65,0x73,0x69,0x73,0x69,0x1b,0x72,0x72,0x69,0x61,0x67,0x65,0x72,0x65,
+0x74,0x75,0x72,0x6e,0x35,2,0x62,0x3e,0x6d,0x46,0x78,0x36,0x18,0x63,0x6c,0x61,
+0x6d,0x61,0x74,0x69,0x6f,0x6e,0x37,0x70,0x12,0x61,0x73,0x65,0x71,0x72,0x16,0x6f,
+0x64,0x69,0x66,0x69,0x65,0x72,0x73,1,0x64,0x42,0x6e,1,0x6f,0x32,0x75,0x26,
+0x14,0x6d,0x65,0x72,0x69,0x63,0x27,0x11,0x6e,0x65,0x21,1,0x65,0x2e,0x69,0x24,
+0x12,0x67,0x69,0x74,0x25,0x22,0x14,0x63,0x69,0x6d,0x61,0x6c,0x23,0,0x18,0x6e,
+0xc3,0xe6,0x74,0xc1,0x51,0x77,0x7a,0x77,0xa2,0x4c,0x78,0xa2,0x60,0x79,0xa2,0x6a,
+0x7a,6,0x73,0x1e,0x73,0x34,0x78,0x42,0x79,0x48,0x7a,0x11,0x7a,0x7a,0xa3,0x67,
+0x10,0x79,1,0x65,0xa3,0xae,0x6d,0xa3,0x81,0x11,0x78,0x78,0xa3,0x66,0x11,0x79,
+0x79,0x21,0x61,0x30,0x69,0x58,0x6d,0x11,0x74,0x68,0xa3,0x80,0x10,0x6e,1,0x61,
+0x26,0x62,0xa3,0xb1,0x1a,0x62,0x61,0x7a,0x61,0x72,0x73,0x71,0x75,0x61,0x72,0x65,
+0xa3,0xb1,0x11,0x6e,0x68,0x23,1,0x61,0x2c,0x6f,0x11,0x6c,0x65,0xa3,0x9b,0x11,
+0x72,0x61,0xa2,0x92,0x15,0x6e,0x67,0x63,0x69,0x74,0x69,0xa3,0x92,1,0x70,0x2c,
+0x73,0x11,0x75,0x78,0xa3,0x65,0x11,0x65,0x6f,0x9b,0x10,0x69,0x72,0x11,0x69,0x69,
+0x73,0x74,0x4a,0x75,0xa2,0xba,0x76,1,0x61,0x2c,0x69,0x11,0x73,0x70,0xa3,0x64,
+0x10,0x69,0xa2,0x63,0x10,0x69,0xa3,0x63,5,0x67,0x36,0x67,0x68,0x68,0x6c,0x69,
+2,0x62,0x3a,0x66,0x4a,0x72,0x10,0x68,0xa2,0x9e,0x12,0x75,0x74,0x61,0xa3,0x9e,
+1,0x65,0x24,0x74,0x6f,0x12,0x74,0x61,0x6e,0x6f,0x14,0x69,0x6e,0x61,0x67,0x68,
+0x99,0x11,0x6c,0x67,0x75,0x10,0x61,1,0x61,0x24,0x69,0x6d,0x6a,0x11,0x6e,0x61,
+0x6b,0x61,0x30,0x65,0xa2,0x5b,0x66,0x11,0x6e,0x67,0x99,6,0x6c,0x21,0x6c,0x32,
+0x6d,0x38,0x6e,0x44,0x76,0x10,0x74,0xa3,0x7f,1,0x65,0x89,0x75,0x97,1,0x69,
+0x24,0x6c,0x67,0x10,0x6c,0x67,0x10,0x67,0xa2,0x9a,0x11,0x75,0x74,0xa3,0x9a,0x67,
+0x36,0x69,0x52,0x6b,0x10,0x72,0xa2,0x99,0x10,0x69,0xa3,0x99,1,0x61,0x30,0x62,
+0x7a,0x13,0x61,0x6e,0x77,0x61,0x7b,0x12,0x6c,0x6f,0x67,0x75,2,0x6c,0x32,0x74,
+0x34,0x76,0x12,0x69,0x65,0x74,0xa3,0x7f,0x10,0x65,0x89,0x12,0x68,0x61,0x6d,0xa3,
+0x6a,1,0x6c,0x2a,0x6e,0x10,0x67,0xa3,0x62,0x10,0x75,0x68,0x11,0x67,0x75,0x69,
+1,0x67,0x32,0x6e,0x14,0x6b,0x6e,0x6f,0x77,0x6e,0xa3,0x67,0x11,0x61,0x72,0x8a,
+0x13,0x69,0x74,0x69,0x63,0x8b,0x71,0xc1,0x13,0x71,0xa2,0xde,0x72,0xa2,0xe3,0x73,
+6,0x69,0x8a,0x69,0x72,0x6f,0xa2,0x4c,0x75,0xa2,0x75,0x79,1,0x6c,0x46,0x72,
+4,0x63,0x65,0x65,0xa3,0x5f,0x69,0x2c,0x6a,0xa3,0x60,0x6e,0xa3,0x61,0x11,0x61,
+0x63,0x65,0x10,0x6f,0x94,0x16,0x74,0x69,0x6e,0x61,0x67,0x72,0x69,0x95,2,0x64,
+0x3c,0x67,0x4c,0x6e,1,0x64,0xa3,0x91,0x68,0x62,0x12,0x61,0x6c,0x61,0x63,0x10,
+0x64,0xa2,0xa6,0x12,0x68,0x61,0x6d,0xa3,0xa6,0x17,0x6e,0x77,0x72,0x69,0x74,0x69,
+0x6e,0x67,0xa3,0x70,2,0x67,0x3a,0x72,0x52,0x79,0x10,0x6f,0xa2,0xb0,0x12,0x6d,
+0x62,0x6f,0xa3,0xb0,1,0x64,0x26,0x6f,0xa3,0xb8,0xa2,0xb7,0x12,0x69,0x61,0x6e,
+0xa3,0xb7,0x10,0x61,0xa2,0x98,0x16,0x73,0x6f,0x6d,0x70,0x65,0x6e,0x67,0xa3,0x98,
+0x11,0x6e,0x64,0xa2,0x71,0x14,0x61,0x6e,0x65,0x73,0x65,0xa3,0x71,0x61,0x5c,0x67,
+0xa2,0x43,0x68,1,0x61,0x2a,0x72,0x10,0x64,0xa3,0x97,2,0x72,0x28,0x76,0x30,
+0x77,0x87,0x12,0x61,0x64,0x61,0xa3,0x97,0x12,0x69,0x61,0x6e,0x87,2,0x6d,0x40,
+0x72,0x58,0x75,0x10,0x72,0xa2,0x6f,0x15,0x61,0x73,0x68,0x74,0x72,0x61,0xa3,0x6f,
+1,0x61,0x26,0x72,0xa3,0x7e,0x14,0x72,0x69,0x74,0x61,0x6e,0xa3,0x7e,1,0x61,
+0xa3,0x5e,0x62,0xa3,0x85,0x11,0x6e,0x77,0xa3,0x70,0x11,0x61,0x61,1,0x63,0x2f,
+0x69,0x23,3,0x65,0x3e,0x6a,0x48,0x6f,0x4e,0x75,0x10,0x6e,1,0x69,0x24,0x72,
+0x61,0x10,0x63,0x61,0x13,0x6a,0x61,0x6e,0x67,0xa3,0x6e,0x11,0x6e,0x67,0xa3,0x6e,
+1,0x68,0x2a,0x72,0x10,0x6f,0xa3,0x5d,0x10,0x67,0xa3,0xb6,0x6e,0xa2,0x83,0x6f,
+0xa2,0xca,0x70,5,0x6c,0x1e,0x6c,0x44,0x72,0x4a,0x73,0x1b,0x61,0x6c,0x74,0x65,
+0x72,0x70,0x61,0x68,0x6c,0x61,0x76,0x69,0xa3,0x7b,0x11,0x72,0x64,0xa3,0x5c,0x11,
+0x74,0x69,0xa3,0x7d,0x61,0x7c,0x65,0xa2,0x54,0x68,3,0x61,0x3e,0x6c,0x4e,0x6e,
+0x5e,0x6f,0x16,0x65,0x6e,0x69,0x63,0x69,0x61,0x6e,0xa3,0x5b,0x10,0x67,0xa2,0x5a,
+0x12,0x73,0x70,0x61,0xa3,0x5a,2,0x69,0xa3,0x7a,0x70,0xa3,0x7b,0x76,0xa3,0x7c,
+0x10,0x78,0xa3,0x5b,2,0x68,0x3e,0x6c,0x50,0x75,0x10,0x63,0xa2,0xa5,0x14,0x69,
+0x6e,0x68,0x61,0x75,0xa3,0xa5,0x17,0x61,0x77,0x68,0x68,0x6d,0x6f,0x6e,0x67,0xa3,
+0x4b,0x10,0x6d,0xa2,0x90,0x14,0x79,0x72,0x65,0x6e,0x65,0xa3,0x90,0x11,0x72,0x6d,
+0xa3,0x59,5,0x6b,0x1e,0x6b,0x32,0x73,0x4a,0x75,0x12,0x73,0x68,0x75,0xa3,0x96,
+1,0x67,0x2e,0x6f,0xa2,0x57,0x10,0x6f,0xa3,0x57,0x10,0x62,0xa3,0x84,0x11,0x68,
+0x75,0xa3,0x96,0x61,0x42,0x62,0x60,0x65,0x10,0x77,1,0x61,0xa3,0xaa,0x74,0x14,
+0x61,0x69,0x6c,0x75,0x65,0x97,1,0x62,0x2a,0x72,0x10,0x62,0xa3,0x8e,0x15,0x61,
+0x74,0x61,0x65,0x61,0x6e,0xa3,0x8f,0x11,0x61,0x74,0xa3,0x8f,3,0x67,0x5a,0x6c,
+0x6c,0x72,0xa2,0x93,0x73,2,0x61,0x36,0x67,0x3c,0x6d,0x10,0x61,0x84,0x12,0x6e,
+0x79,0x61,0x85,0x11,0x67,0x65,0xa3,0xab,0x10,0x65,0xa3,0xab,1,0x61,0x2a,0x68,
+0x11,0x61,0x6d,0x5b,0x10,0x6d,0x5b,1,0x63,0xa2,0x60,0x64,5,0x70,0x37,0x70,
+0x36,0x73,0x54,0x74,0x14,0x75,0x72,0x6b,0x69,0x63,0xa3,0x58,0x11,0x65,0x72,1,
+0x6d,0x2c,0x73,0x12,0x69,0x61,0x6e,0x9b,0x11,0x69,0x63,0xa3,0x59,0x10,0x6f,1,
+0x67,0x3a,0x75,0x18,0x74,0x68,0x61,0x72,0x61,0x62,0x69,0x61,0x6e,0xa3,0x85,0x13,
+0x64,0x69,0x61,0x6e,0xa3,0xb8,0x68,0x42,0x69,0x54,0x6e,0x1a,0x6f,0x72,0x74,0x68,
+0x61,0x72,0x61,0x62,0x69,0x61,0x6e,0xa3,0x8e,0x17,0x75,0x6e,0x67,0x61,0x72,0x69,
+0x61,0x6e,0xa3,0x4c,0x14,0x74,0x61,0x6c,0x69,0x63,0x5d,1,0x68,0x26,0x6b,0xa3,
+0x6d,0x12,0x69,0x6b,0x69,0xa3,0x6d,2,0x69,0x2c,0x6b,0x30,0x79,0x10,0x61,0x5f,
+0x11,0x79,0x61,0x5f,0x10,0x68,0xa3,0x58,0x68,0xc2,0xef,0x6b,0xc2,0xa,0x6b,0xa4,
+0x17,0x6c,0xa4,0x98,0x6d,8,0x6f,0x46,0x6f,0x48,0x72,0x74,0x74,0x80,0x75,0x86,
+0x79,1,0x61,0x28,0x6d,0x10,0x72,0x59,0x13,0x6e,0x6d,0x61,0x72,0x59,2,0x64,
+0x2e,0x6e,0x32,0x6f,0x10,0x6e,0xa3,0x72,0x10,0x69,0xa3,0xa3,0x10,0x67,0x56,0x14,
+0x6f,0x6c,0x69,0x61,0x6e,0x57,0x10,0x6f,0xa2,0x95,0x10,0x6f,0xa3,0x95,0x11,0x65,
+0x69,0xa3,0x73,0x11,0x6c,0x74,0xa2,0xa4,0x12,0x61,0x6e,0x69,0xa3,0xa4,0x61,0x36,
+0x65,0xa2,0x67,0x69,0xa2,0xbd,0x6c,0x11,0x79,0x6d,0x55,6,0x6e,0x38,0x6e,0x32,
+0x72,0x5c,0x73,0x6c,0x79,0x10,0x61,0xa3,0x55,1,0x64,0x38,0x69,0xa2,0x79,0x15,
+0x63,0x68,0x61,0x65,0x61,0x6e,0xa3,0x79,0xa2,0x54,0x12,0x61,0x69,0x63,0xa3,0x54,
+0x10,0x63,0xa2,0xa9,0x12,0x68,0x65,0x6e,0xa3,0xa9,0x18,0x61,0x72,0x61,0x6d,0x67,
+0x6f,0x6e,0x64,0x69,0xa3,0xaf,0x68,0x36,0x6b,0x4c,0x6c,0x15,0x61,0x79,0x61,0x6c,
+0x61,0x6d,0x55,1,0x61,0x26,0x6a,0xa3,0xa0,0x13,0x6a,0x61,0x6e,0x69,0xa3,0xa0,
+0x10,0x61,0xa2,0xb4,0x12,0x73,0x61,0x72,0xa3,0xb4,3,0x64,0x78,0x65,0x94,0x6e,
+0xa2,0x42,0x72,1,0x63,0xa3,0x8d,0x6f,0xa2,0x56,0x13,0x69,0x74,0x69,0x63,1,
+0x63,0x3c,0x68,0x19,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0x56,
+0x15,0x75,0x72,0x73,0x69,0x76,0x65,0xa3,0x8d,1,0x65,0x26,0x66,0xa3,0xb5,0x16,
+0x66,0x61,0x69,0x64,0x72,0x69,0x6e,0xa3,0xb5,0x17,0x74,0x65,0x69,0x6d,0x61,0x79,
+0x65,0x6b,0xa3,0x73,0x10,0x64,0xa2,0x8c,0x17,0x65,0x6b,0x69,0x6b,0x61,0x6b,0x75,
+0x69,0xa3,0x8c,0x11,0x61,0x6f,0xa3,0x5c,5,0x6f,0x14,0x6f,0x30,0x70,0x36,0x74,
+0x11,0x68,0x69,0xa3,0x78,0x11,0x72,0x65,0xa3,0x77,0x11,0x65,0x6c,0xa3,0x8a,0x61,
+0x2e,0x68,0x98,0x6e,0x11,0x64,0x61,0x4b,4,0x69,0x3c,0x6c,0x44,0x6e,0x48,0x74,
+0x56,0x79,0x13,0x61,0x68,0x6c,0x69,0xa3,0x4f,0x12,0x74,0x68,0x69,0xa3,0x78,0x10,
+0x69,0xa3,0x4f,1,0x61,0x4d,0x6e,0x12,0x61,0x64,0x61,0x4b,0x14,0x61,0x6b,0x61,
+0x6e,0x61,0x4c,0x19,0x6f,0x72,0x68,0x69,0x72,0x61,0x67,0x61,0x6e,0x61,0x8d,3,
+0x61,0x3c,0x6d,0x4e,0x6f,0x5a,0x75,0x15,0x64,0x61,0x77,0x61,0x64,0x69,0xa3,0x91,
+0x10,0x72,0x92,0x15,0x6f,0x73,0x68,0x74,0x68,0x69,0x93,1,0x65,0x24,0x72,0x4f,
+0x10,0x72,0x4f,0x10,0x6a,0xa2,0x9d,0x11,0x6b,0x69,0xa3,0x9d,4,0x61,0x5c,0x65,
+0x90,0x69,0xa0,0x6f,0xa2,0x5d,0x79,1,0x63,0x34,0x64,0x10,0x69,0xa2,0x6c,0x11,
+0x61,0x6e,0xa3,0x6c,0x10,0x69,0xa2,0x6b,0x11,0x61,0x6e,0xa3,0x6b,2,0x6e,0x42,
+0x6f,0x46,0x74,3,0x66,0xa3,0x50,0x67,0xa3,0x51,0x69,0x24,0x6e,0x53,0x10,0x6e,
+0x53,0x10,0x61,0xa3,0x6a,0x50,0x10,0x6f,0x51,0x11,0x70,0x63,0xa2,0x52,0x11,0x68,
+0x61,0xa3,0x52,2,0x6d,0x2e,0x6e,0x36,0x73,0x10,0x75,0xa3,0x83,0x10,0x62,0x80,
+0x10,0x75,0x81,2,0x61,0xa3,0x53,0x62,0x83,0x65,0x11,0x61,0x72,1,0x61,0xa3,
+0x53,0x62,0x83,0x11,0x6d,0x61,0xa3,0x8b,0x68,0x6e,0x69,0xa2,0x91,0x6a,2,0x61,
+0x30,0x70,0x52,0x75,0x11,0x72,0x63,0xa3,0x94,1,0x6d,0x38,0x76,0x10,0x61,0xa2,
+0x4e,0x13,0x6e,0x65,0x73,0x65,0xa3,0x4e,0x10,0x6f,0xa3,0xad,0x11,0x61,0x6e,0xa3,
+0x69,6,0x6c,0x1a,0x6c,0x34,0x6d,0x3a,0x72,0x40,0x75,0x11,0x6e,0x67,0xa3,0x4c,
+0x11,0x75,0x77,0xa3,0x9c,0x11,0x6e,0x67,0xa3,0x4b,0x11,0x6b,0x74,0x8d,0x61,0x3c,
+0x65,0xa2,0x43,0x69,0x11,0x72,0x61,0x48,0x13,0x67,0x61,0x6e,0x61,0x49,1,0x6e,
+0x34,0x74,0x10,0x72,0xa2,0xa2,0x11,0x61,0x6e,0xa3,0xa2,0x42,6,0x6f,0xe,0x6f,
+0x77,0x73,0xa3,0x49,0x74,0xa3,0x4a,0x75,0x12,0x6e,0x6f,0x6f,0x77,0x62,0xa3,0xac,
+0x67,0x3e,0x69,0x42,0x19,0x66,0x69,0x72,0x6f,0x68,0x69,0x6e,0x67,0x79,0x61,0xa3,
+0xb6,0x44,0x11,0x75,0x6c,0x45,0x11,0x62,0x72,0x46,0x11,0x65,0x77,0x47,2,0x6d,
+0x2e,0x6e,0x4a,0x74,0x11,0x61,0x6c,0x5d,0x1c,0x70,0x65,0x72,0x69,0x61,0x6c,0x61,
+0x72,0x61,0x6d,0x61,0x69,0x63,0xa3,0x74,2,0x64,0x66,0x68,0x6a,0x73,0x1b,0x63,
+0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x70,0x61,1,0x68,0x32,0x72,0x14,
+0x74,0x68,0x69,0x61,0x6e,0xa3,0x7d,0x13,0x6c,0x61,0x76,0x69,0xa3,0x7a,0x10,0x73,
+0xa3,0x4d,0x15,0x65,0x72,0x69,0x74,0x65,0x64,0x23,0x64,0xc0,0xec,0x64,0xa2,0x7a,
+0x65,0xa2,0xad,0x67,4,0x65,0x82,0x6c,0x9a,0x6f,0xa2,0x46,0x72,0xa2,0x55,0x75,
+2,0x6a,0x3c,0x6e,0x4e,0x72,1,0x6d,0x24,0x75,0x41,0x13,0x75,0x6b,0x68,0x69,
+0x41,1,0x61,0x24,0x72,0x3f,0x13,0x72,0x61,0x74,0x69,0x3f,0x18,0x6a,0x61,0x6c,
+0x61,0x67,0x6f,0x6e,0x64,0x69,0xa3,0xb3,0x10,0x6f,1,0x6b,0xa3,0x48,0x72,0x38,
+0x13,0x67,0x69,0x61,0x6e,0x39,0x11,0x61,0x67,0x90,0x15,0x6f,0x6c,0x69,0x74,0x69,
+0x63,0x91,1,0x6e,0x30,0x74,0x10,0x68,0x3a,0x11,0x69,0x63,0x3b,1,0x67,0xa3,
+0xb3,0x6d,0xa3,0xaf,1,0x61,0x32,0x65,1,0x65,0x24,0x6b,0x3d,0x10,0x6b,0x3d,
+0x10,0x6e,0xa2,0x89,0x12,0x74,0x68,0x61,0xa3,0x89,3,0x65,0x42,0x6f,0x68,0x73,
+0x76,0x75,0x11,0x70,0x6c,0xa2,0x87,0x13,0x6f,0x79,0x61,0x6e,0xa3,0x87,1,0x73,
0x38,0x76,0x10,0x61,0x34,0x15,0x6e,0x61,0x67,0x61,0x72,0x69,0x35,0x13,0x65,0x72,
-0x65,0x74,0x33,0x11,0x72,0x74,0x33,2,0x67,0x3a,0x6c,0x72,0x74,0x11,0x68,0x69,
-0x36,0x13,0x6f,0x70,0x69,0x63,0x37,0x10,0x79,2,0x64,0xa3,0x45,0x68,0xa3,0x46,
-0x70,0xa2,0x47,0x1e,0x74,0x69,0x61,0x6e,0x68,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,
-0x70,0x68,0x73,0xa3,0x47,0x11,0x62,0x61,0xa2,0x88,0x12,0x73,0x61,0x6e,0xa3,0x88,
-0x61,0xa2,0xa2,0x62,0xa4,7,0x63,6,0x6f,0x3d,0x6f,0x5a,0x70,0x76,0x75,0x7a,
-0x79,1,0x70,0x3e,0x72,2,0x69,0x2a,0x6c,0x31,0x73,0xa3,0x44,0x13,0x6c,0x6c,
-0x69,0x63,0x31,0x13,0x72,0x69,0x6f,0x74,0x7f,1,0x6d,0x30,0x70,0x10,0x74,0x2e,
-0x11,0x69,0x63,0x2f,0x12,0x6d,0x6f,0x6e,0x21,0x11,0x72,0x74,0x7f,0x16,0x6e,0x65,
-0x69,0x66,0x6f,0x72,0x6d,0xa3,0x65,0x61,0x32,0x68,0xa2,0x41,0x69,0x11,0x72,0x74,
-0xa3,0x43,3,0x6b,0x4c,0x6e,0x50,0x72,0x76,0x75,0x1d,0x63,0x61,0x73,0x69,0x61,
-0x6e,0x61,0x6c,0x62,0x61,0x6e,0x69,0x61,0x6e,0xa3,0x9f,0x10,0x6d,0xa3,0x76,1,
-0x61,0x24,0x73,0x71,0x1d,0x64,0x69,0x61,0x6e,0x61,0x62,0x6f,0x72,0x69,0x67,0x69,
-0x6e,0x61,0x6c,0x71,0x10,0x69,0xa2,0x68,0x11,0x61,0x6e,0xa3,0x68,1,0x61,0x34,
-0x65,0x10,0x72,0x2c,0x13,0x6f,0x6b,0x65,0x65,0x2d,1,0x6b,0x26,0x6d,0xa3,0x42,
-0x11,0x6d,0x61,0xa3,0x76,6,0x68,0x4a,0x68,0x48,0x6e,0x4e,0x72,0x76,0x76,1,
-0x65,0x2a,0x73,0x10,0x74,0xa3,0x75,0x13,0x73,0x74,0x61,0x6e,0xa3,0x75,0x11,0x6f,
-0x6d,0xa3,0xa1,0x11,0x61,0x74,0x1f,0x6f,0x6c,0x69,0x61,0x6e,0x68,0x69,0x65,0x72,
-0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0x9c,1,0x61,0x3e,0x6d,2,0x65,0x2a,
-0x69,0xa3,0x74,0x6e,0x27,0x13,0x6e,0x69,0x61,0x6e,0x27,0x10,0x62,0x24,0x11,0x69,
-0x63,0x25,0x64,0x30,0x66,0x44,0x67,0x11,0x68,0x62,0xa3,0x9f,0x10,0x6c,1,0x61,
-0x26,0x6d,0xa3,0xa7,0x10,0x6d,0xa3,0xa7,0x11,0x61,0x6b,0xa3,0x93,6,0x6c,0x3c,
-0x6c,0x52,0x6f,0x56,0x72,0x66,0x75,1,0x67,0x30,0x68,1,0x64,0x79,0x69,0x10,
-0x64,0x79,0x10,0x69,0x8e,0x13,0x6e,0x65,0x73,0x65,0x8f,0x11,0x69,0x73,0xa1,0x11,
-0x70,0x6f,0x2a,0x13,0x6d,0x6f,0x66,0x6f,0x2b,0x10,0x61,1,0x68,0x2e,0x69,0x7c,
-0x12,0x6c,0x6c,0x65,0x7d,0xa2,0x41,0x11,0x6d,0x69,0xa3,0x41,0x61,0x48,0x65,0x9c,
-0x68,1,0x61,0x2a,0x6b,0x10,0x73,0xa3,0xa8,0x15,0x69,0x6b,0x73,0x75,0x6b,0x69,
-0xa3,0xa8,3,0x6c,0x3a,0x6d,0x48,0x73,0x54,0x74,1,0x61,0x24,0x6b,0x9f,0x10,
-0x6b,0x9f,0x10,0x69,0x9c,0x13,0x6e,0x65,0x73,0x65,0x9d,0x10,0x75,0xa2,0x82,0x10,
-0x6d,0xa3,0x82,0x10,0x73,0xa2,0x86,0x13,0x61,0x76,0x61,0x68,0xa3,0x86,0x11,0x6e,
-0x67,0x28,0x12,0x61,0x6c,0x69,0x29,3,0x6c,0x42,0x6e,0x90,0x74,0xa2,0x46,0x76,
-0x24,0x17,0x6f,0x77,0x65,0x6c,0x6a,0x61,0x6d,0x6f,0x25,0x22,1,0x65,0x54,0x76,
-0x28,1,0x73,0x38,0x74,0x2a,0x17,0x73,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x2b,
-0x16,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x29,0x18,0x61,0x64,0x69,0x6e,0x67,0x6a,
-0x61,0x6d,0x6f,0x23,1,0x61,0x21,0x6f,0x1a,0x74,0x61,0x70,0x70,0x6c,0x69,0x63,
-0x61,0x62,0x6c,0x65,0x21,0x26,0x1a,0x72,0x61,0x69,0x6c,0x69,0x6e,0x67,0x6a,0x61,
-0x6d,0x6f,0x27,1,0x6e,0x2c,0x79,0x22,0x11,0x65,0x73,0x23,0x20,0x10,0x6f,0x21,
-1,0x6e,0x2c,0x79,0x22,0x11,0x65,0x73,0x23,0x20,0x10,0x6f,0x21,2,0x6d,0x30,
-0x6e,0x3a,0x79,0x22,0x11,0x65,0x73,0x23,0x24,0x13,0x61,0x79,0x62,0x65,0x25,0x20,
-0x10,0x6f,0x21,2,0x6d,0x30,0x6e,0x3a,0x79,0x22,0x11,0x65,0x73,0x23,0x24,0x13,
-0x61,0x79,0x62,0x65,0x25,0x20,0x10,0x6f,0x21,0xb,0x72,0x39,0x76,0xc,0x76,0x33,
-0x78,0x2a,0x7a,0x11,0x77,0x6a,0x43,0x10,0x78,0x21,0x72,0x28,0x73,0x50,0x74,0x31,
-1,0x65,0x24,0x69,0x39,0x1e,0x67,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x6e,0x64,0x69,
-0x63,0x61,0x74,0x6f,0x72,0x39,1,0x6d,0x35,0x70,0x18,0x61,0x63,0x69,0x6e,0x67,
-0x6d,0x61,0x72,0x6b,0x35,0x6c,0x1f,0x6c,0x3c,0x6f,0x4a,0x70,1,0x70,0x37,0x72,
-0x14,0x65,0x70,0x65,0x6e,0x64,0x37,0x28,1,0x66,0x2b,0x76,0x2c,0x10,0x74,0x2f,
-0x13,0x74,0x68,0x65,0x72,0x21,0x63,0x4c,0x65,0x64,0x67,1,0x61,0x3a,0x6c,0x19,
-0x75,0x65,0x61,0x66,0x74,0x65,0x72,0x7a,0x77,0x6a,0x41,0x10,0x7a,0x41,2,0x6e,
-0x23,0x6f,0x24,0x72,0x25,0x14,0x6e,0x74,0x72,0x6f,0x6c,0x23,2,0x62,0x34,0x6d,
-0x4e,0x78,0x26,0x13,0x74,0x65,0x6e,0x64,0x27,0x3a,1,0x61,0x24,0x67,0x3d,0x11,
-0x73,0x65,0x3a,0x12,0x67,0x61,0x7a,0x3d,0x3e,0x16,0x6f,0x64,0x69,0x66,0x69,0x65,
-0x72,0x3f,9,0x6e,0x4a,0x6e,0x34,0x6f,0x44,0x73,0x60,0x75,0x94,0x78,0x10,0x78,
-0x21,0x10,0x75,0x2a,0x14,0x6d,0x65,0x72,0x69,0x63,0x2b,1,0x6c,0x2c,0x74,0x12,
-0x68,0x65,0x72,0x21,0x14,0x65,0x74,0x74,0x65,0x72,0x2d,3,0x63,0x36,0x65,0x46,
-0x70,0x31,0x74,0x32,0x12,0x65,0x72,0x6d,0x33,0x3c,0x16,0x6f,0x6e,0x74,0x69,0x6e,
-0x75,0x65,0x3d,0x2e,0x10,0x70,0x2f,0x10,0x70,0x34,0x12,0x70,0x65,0x72,0x35,0x61,
-0x46,0x63,0x52,0x65,0x64,0x66,0x72,0x6c,2,0x65,0x2d,0x66,0x3b,0x6f,0x28,0x12,
-0x77,0x65,0x72,0x29,0x10,0x74,0x22,0x12,0x65,0x72,0x6d,0x23,1,0x6c,0x24,0x72,
-0x37,0x24,0x12,0x6f,0x73,0x65,0x25,0x10,0x78,0x38,0x13,0x74,0x65,0x6e,0x64,0x39,
-0x10,0x6f,0x26,0x13,0x72,0x6d,0x61,0x74,0x27,0xf,0x6c,0x7c,0x72,0x34,0x72,0x32,
-0x73,0x5a,0x78,0x76,0x7a,0x11,0x77,0x6a,0x4b,1,0x65,0x24,0x69,0x3b,0x1e,0x67,
-0x69,0x6f,0x6e,0x61,0x6c,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,0x72,0x3b,1,
-0x69,0x24,0x71,0x3f,0x18,0x6e,0x67,0x6c,0x65,0x71,0x75,0x6f,0x74,0x65,0x3f,0x10,
-0x78,0x21,0x6c,0x36,0x6d,0x3c,0x6e,0x76,0x6f,0x13,0x74,0x68,0x65,0x72,0x21,1,
-0x65,0x23,0x66,0x35,3,0x62,0x37,0x69,0x28,0x6c,0x29,0x6e,0x2b,0x10,0x64,1,
-0x6c,0x34,0x6e,0x11,0x75,0x6d,0x2a,0x12,0x6c,0x65,0x74,0x37,0x14,0x65,0x74,0x74,
-0x65,0x72,0x29,2,0x65,0x36,0x6c,0x39,0x75,0x2c,0x14,0x6d,0x65,0x72,0x69,0x63,
-0x2d,0x14,0x77,0x6c,0x69,0x6e,0x65,0x39,0x66,0x3f,0x66,0x40,0x67,0x4e,0x68,0x70,
-0x6b,0x10,0x61,0x26,0x15,0x74,0x61,0x6b,0x61,0x6e,0x61,0x27,0x10,0x6f,0x24,0x13,
-0x72,0x6d,0x61,0x74,0x25,1,0x61,0x3a,0x6c,0x19,0x75,0x65,0x61,0x66,0x74,0x65,
-0x72,0x7a,0x77,0x6a,0x49,0x10,0x7a,0x49,1,0x65,0x24,0x6c,0x3d,0x19,0x62,0x72,
-0x65,0x77,0x6c,0x65,0x74,0x74,0x65,0x72,0x3d,0x61,0x86,0x63,0x92,0x64,0x94,0x65,
-2,0x62,0x44,0x6d,0x5e,0x78,0x2e,0x13,0x74,0x65,0x6e,0x64,0x32,0x15,0x6e,0x75,
-0x6d,0x6c,0x65,0x74,0x2f,0x42,1,0x61,0x24,0x67,0x45,0x11,0x73,0x65,0x42,0x12,
-0x67,0x61,0x7a,0x45,0x46,0x16,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x47,0x15,0x6c,
-0x65,0x74,0x74,0x65,0x72,0x23,0x10,0x72,0x31,1,0x6f,0x24,0x71,0x41,0x18,0x75,
-0x62,0x6c,0x65,0x71,0x75,0x6f,0x74,0x65,0x41,2,0x63,0x32,0x6e,0x3c,0x6f,0x22,
-0x12,0x70,0x65,0x6e,0x23,0x24,0x13,0x6c,0x6f,0x73,0x65,0x25,0x20,0x12,0x6f,0x6e,
-0x65,0x21,0xd,0x6e,0xc1,0x86,0x73,0xa8,0x73,0x4c,0x74,0xa2,0x76,0x75,0xa2,0x83,
-0x7a,0xd8,0x70,0,2,0x6c,0xd9,0x20,0,0x70,0xd9,0x40,0,0x73,0xc3,0,
-0xfe,0xf,0,0,0,7,0x6f,0x3c,0x6f,0xff,8,0,0,0,0x70,0x3a,
-0x75,0x6e,0x79,0x13,0x6d,0x62,0x6f,0x6c,0xff,0xf,0,0,0,0x11,0x61,0x63,
-1,0x65,0x34,0x69,0x15,0x6e,0x67,0x6d,0x61,0x72,0x6b,0xa5,0,0x18,0x73,0x65,
-0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0xc3,0,0x16,0x72,0x72,0x6f,0x67,0x61,0x74,
-0x65,0xe1,0,0,0x63,0xff,2,0,0,0,0x65,0x38,0x6b,0xff,4,0,
-0,0,0x6d,0xff,1,0,0,0,0x16,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,
-0xd9,0x70,0,0x1d,0x69,0x74,0x6c,0x65,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,
-0x65,0x72,0x31,1,0x6e,0x40,0x70,0x1c,0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x6c,
-0x65,0x74,0x74,0x65,0x72,0x25,0x17,0x61,0x73,0x73,0x69,0x67,0x6e,0x65,0x64,0x23,
-0x6e,0xa2,0x69,0x6f,0xa2,0x89,0x70,0xfe,0x30,0xf8,0,0,9,0x69,0x33,0x69,
-0xff,0x10,0,0,0,0x6f,0xfd,0x80,0,0,0x72,0x54,0x73,0xf9,0,0,
-0x75,0x12,0x6e,0x63,0x74,0xfe,0x30,0xf8,0,0,0x15,0x75,0x61,0x74,0x69,0x6f,
-0x6e,0xff,0x30,0xf8,0,0,0x17,0x69,0x76,0x61,0x74,0x65,0x75,0x73,0x65,0xdd,
-0,0,0x61,0x48,0x63,0xfd,0x40,0,0,0x64,0xe9,0,0,0x65,0xfd,0x20,
-0,0,0x66,0xff,0x20,0,0,0,0x1f,0x72,0x61,0x67,0x72,0x61,0x70,0x68,
-0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0xd9,0x40,0,0xbe,0,3,0x64,
-0xa7,0,0x6c,0xab,0,0x6f,0x30,0x75,0x13,0x6d,0x62,0x65,0x72,0xbf,0,0xb2,
-0,0x1b,0x6e,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0xa1,1,
-0x70,0x92,0x74,0x12,0x68,0x65,0x72,0xe6,0x80,1,3,0x6c,0x40,0x6e,0x4a,0x70,
-0x56,0x73,0x14,0x79,0x6d,0x62,0x6f,0x6c,0xff,8,0,0,0,0x14,0x65,0x74,
-0x74,0x65,0x72,0x61,0x14,0x75,0x6d,0x62,0x65,0x72,0xb3,0,0x19,0x75,0x6e,0x63,
-0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xfd,0x80,0,0,0x1c,0x65,0x6e,0x70,0x75,
-0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xf9,0,0,0x66,0xc0,0xc4,0x66,
-0xa2,0x47,0x69,0xa2,0x64,0x6c,0xa2,0x79,0x6d,0xa4,0xc0,4,0x61,0x6c,0x63,0xa5,
-0,0x65,0xa3,0x80,0x6e,0xa1,0x6f,0x15,0x64,0x69,0x66,0x69,0x65,0x72,1,0x6c,
-0x38,0x73,0x14,0x79,0x6d,0x62,0x6f,0x6c,0xff,4,0,0,0,0x14,0x65,0x74,
-0x74,0x65,0x72,0x41,1,0x72,0x3c,0x74,0x16,0x68,0x73,0x79,0x6d,0x62,0x6f,0x6c,
-0xff,1,0,0,0,0x10,0x6b,0xa5,0xc0,1,0x69,0x32,0x6f,0x13,0x72,0x6d,
-0x61,0x74,0xdb,0,0,0x1d,0x6e,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,
-0x74,0x69,0x6f,0x6e,0xff,0x20,0,0,0,0x10,0x6e,0x1f,0x69,0x74,0x69,0x61,
-0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xff,0x10,0,0,
-0,0x9c,7,0x6d,0x18,0x6d,0x41,0x6f,0x28,0x74,0x31,0x75,0x25,0x60,0x1c,0x77,
-0x65,0x72,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x29,0x63,0x3d,0x65,
-0x28,0x69,0x42,0x6c,0x29,0x13,0x74,0x74,0x65,0x72,0x9c,0x15,0x6e,0x75,0x6d,0x62,
-0x65,0x72,0xab,0,0x1a,0x6e,0x65,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,
-0xd9,0x20,0,0x63,0x46,0x64,0xa2,0x96,0x65,0x1b,0x6e,0x63,0x6c,0x6f,0x73,0x69,
-0x6e,0x67,0x6d,0x61,0x72,0x6b,0xa3,0x80,0xe6,0x80,1,7,0x6e,0x57,0x6e,0x52,
-0x6f,0x5e,0x73,0xe1,0,0,0x75,0x1b,0x72,0x72,0x65,0x6e,0x63,0x79,0x73,0x79,
-0x6d,0x62,0x6f,0x6c,0xff,2,0,0,0,0x22,0x12,0x74,0x72,0x6c,0xd9,0x80,
-0,0xdc,0,0,1,0x6d,0x62,0x6e,1,0x6e,0x30,0x74,0x12,0x72,0x6f,0x6c,
-0xd9,0x80,0,0x1f,0x65,0x63,0x74,0x6f,0x72,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,
-0x74,0x69,0x6f,0x6e,0xfd,0x40,0,0,0x19,0x62,0x69,0x6e,0x69,0x6e,0x67,0x6d,
-0x61,0x72,0x6b,0xa5,0xc0,0x61,0x58,0x63,0xd9,0x80,0,0x66,0xdb,0,0,0x6c,
-0x1d,0x6f,0x73,0x65,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xfd,
-0x20,0,0,0x18,0x73,0x65,0x64,0x6c,0x65,0x74,0x74,0x65,0x72,0x3d,2,0x61,
-0x32,0x65,0x50,0x69,0x12,0x67,0x69,0x74,0xa7,0,0x1c,0x73,0x68,0x70,0x75,0x6e,
-0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xe9,0,0,0x1a,0x63,0x69,0x6d,0x61,
-0x6c,0x6e,0x75,0x6d,0x62,0x65,0x72,0xa7,0
+0x65,0x74,0x33,0x11,0x67,0x72,0xa2,0xb2,0x10,0x61,0xa3,0xb2,0x11,0x72,0x74,0x33,
+2,0x67,0x3a,0x6c,0x72,0x74,0x11,0x68,0x69,0x36,0x13,0x6f,0x70,0x69,0x63,0x37,
+0x10,0x79,2,0x64,0xa3,0x45,0x68,0xa3,0x46,0x70,0xa2,0x47,0x1e,0x74,0x69,0x61,
+0x6e,0x68,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0x47,0x11,0x62,
+0x61,0xa2,0x88,0x12,0x73,0x61,0x6e,0xa3,0x88,0x61,0xa2,0xa2,0x62,0xa4,7,0x63,
+6,0x6f,0x3d,0x6f,0x5a,0x70,0x76,0x75,0x7a,0x79,1,0x70,0x3e,0x72,2,0x69,
+0x2a,0x6c,0x31,0x73,0xa3,0x44,0x13,0x6c,0x6c,0x69,0x63,0x31,0x13,0x72,0x69,0x6f,
+0x74,0x7f,1,0x6d,0x30,0x70,0x10,0x74,0x2e,0x11,0x69,0x63,0x2f,0x12,0x6d,0x6f,
+0x6e,0x21,0x11,0x72,0x74,0x7f,0x16,0x6e,0x65,0x69,0x66,0x6f,0x72,0x6d,0xa3,0x65,
+0x61,0x32,0x68,0xa2,0x41,0x69,0x11,0x72,0x74,0xa3,0x43,3,0x6b,0x4c,0x6e,0x50,
+0x72,0x76,0x75,0x1d,0x63,0x61,0x73,0x69,0x61,0x6e,0x61,0x6c,0x62,0x61,0x6e,0x69,
+0x61,0x6e,0xa3,0x9f,0x10,0x6d,0xa3,0x76,1,0x61,0x24,0x73,0x71,0x1d,0x64,0x69,
+0x61,0x6e,0x61,0x62,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x71,0x10,0x69,0xa2,
+0x68,0x11,0x61,0x6e,0xa3,0x68,1,0x61,0x34,0x65,0x10,0x72,0x2c,0x13,0x6f,0x6b,
+0x65,0x65,0x2d,1,0x6b,0x26,0x6d,0xa3,0x42,0x11,0x6d,0x61,0xa3,0x76,6,0x68,
+0x4a,0x68,0x48,0x6e,0x4e,0x72,0x76,0x76,1,0x65,0x2a,0x73,0x10,0x74,0xa3,0x75,
+0x13,0x73,0x74,0x61,0x6e,0xa3,0x75,0x11,0x6f,0x6d,0xa3,0xa1,0x11,0x61,0x74,0x1f,
+0x6f,0x6c,0x69,0x61,0x6e,0x68,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,
+0xa3,0x9c,1,0x61,0x3e,0x6d,2,0x65,0x2a,0x69,0xa3,0x74,0x6e,0x27,0x13,0x6e,
+0x69,0x61,0x6e,0x27,0x10,0x62,0x24,0x11,0x69,0x63,0x25,0x64,0x30,0x66,0x44,0x67,
+0x11,0x68,0x62,0xa3,0x9f,0x10,0x6c,1,0x61,0x26,0x6d,0xa3,0xa7,0x10,0x6d,0xa3,
+0xa7,0x11,0x61,0x6b,0xa3,0x93,6,0x6c,0x3c,0x6c,0x52,0x6f,0x56,0x72,0x66,0x75,
+1,0x67,0x30,0x68,1,0x64,0x79,0x69,0x10,0x64,0x79,0x10,0x69,0x8e,0x13,0x6e,
+0x65,0x73,0x65,0x8f,0x11,0x69,0x73,0xa1,0x11,0x70,0x6f,0x2a,0x13,0x6d,0x6f,0x66,
+0x6f,0x2b,0x10,0x61,1,0x68,0x2e,0x69,0x7c,0x12,0x6c,0x6c,0x65,0x7d,0xa2,0x41,
+0x11,0x6d,0x69,0xa3,0x41,0x61,0x48,0x65,0x9c,0x68,1,0x61,0x2a,0x6b,0x10,0x73,
+0xa3,0xa8,0x15,0x69,0x6b,0x73,0x75,0x6b,0x69,0xa3,0xa8,3,0x6c,0x3a,0x6d,0x48,
+0x73,0x54,0x74,1,0x61,0x24,0x6b,0x9f,0x10,0x6b,0x9f,0x10,0x69,0x9c,0x13,0x6e,
+0x65,0x73,0x65,0x9d,0x10,0x75,0xa2,0x82,0x10,0x6d,0xa3,0x82,0x10,0x73,0xa2,0x86,
+0x13,0x61,0x76,0x61,0x68,0xa3,0x86,0x11,0x6e,0x67,0x28,0x12,0x61,0x6c,0x69,0x29,
+3,0x6c,0x42,0x6e,0x90,0x74,0xa2,0x46,0x76,0x24,0x17,0x6f,0x77,0x65,0x6c,0x6a,
+0x61,0x6d,0x6f,0x25,0x22,1,0x65,0x54,0x76,0x28,1,0x73,0x38,0x74,0x2a,0x17,
+0x73,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x2b,0x16,0x79,0x6c,0x6c,0x61,0x62,0x6c,
+0x65,0x29,0x18,0x61,0x64,0x69,0x6e,0x67,0x6a,0x61,0x6d,0x6f,0x23,1,0x61,0x21,
+0x6f,0x1a,0x74,0x61,0x70,0x70,0x6c,0x69,0x63,0x61,0x62,0x6c,0x65,0x21,0x26,0x1a,
+0x72,0x61,0x69,0x6c,0x69,0x6e,0x67,0x6a,0x61,0x6d,0x6f,0x27,1,0x6e,0x2c,0x79,
+0x22,0x11,0x65,0x73,0x23,0x20,0x10,0x6f,0x21,1,0x6e,0x2c,0x79,0x22,0x11,0x65,
+0x73,0x23,0x20,0x10,0x6f,0x21,2,0x6d,0x30,0x6e,0x3a,0x79,0x22,0x11,0x65,0x73,
+0x23,0x24,0x13,0x61,0x79,0x62,0x65,0x25,0x20,0x10,0x6f,0x21,2,0x6d,0x30,0x6e,
+0x3a,0x79,0x22,0x11,0x65,0x73,0x23,0x24,0x13,0x61,0x79,0x62,0x65,0x25,0x20,0x10,
+0x6f,0x21,0xb,0x72,0x39,0x76,0xc,0x76,0x33,0x78,0x2a,0x7a,0x11,0x77,0x6a,0x43,
+0x10,0x78,0x21,0x72,0x28,0x73,0x50,0x74,0x31,1,0x65,0x24,0x69,0x39,0x1e,0x67,
+0x69,0x6f,0x6e,0x61,0x6c,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,0x72,0x39,1,
+0x6d,0x35,0x70,0x18,0x61,0x63,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x35,0x6c,0x1f,
+0x6c,0x3c,0x6f,0x4a,0x70,1,0x70,0x37,0x72,0x14,0x65,0x70,0x65,0x6e,0x64,0x37,
+0x28,1,0x66,0x2b,0x76,0x2c,0x10,0x74,0x2f,0x13,0x74,0x68,0x65,0x72,0x21,0x63,
+0x4c,0x65,0x64,0x67,1,0x61,0x3a,0x6c,0x19,0x75,0x65,0x61,0x66,0x74,0x65,0x72,
+0x7a,0x77,0x6a,0x41,0x10,0x7a,0x41,2,0x6e,0x23,0x6f,0x24,0x72,0x25,0x14,0x6e,
+0x74,0x72,0x6f,0x6c,0x23,2,0x62,0x34,0x6d,0x4e,0x78,0x26,0x13,0x74,0x65,0x6e,
+0x64,0x27,0x3a,1,0x61,0x24,0x67,0x3d,0x11,0x73,0x65,0x3a,0x12,0x67,0x61,0x7a,
+0x3d,0x3e,0x16,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x3f,9,0x6e,0x4a,0x6e,0x34,
+0x6f,0x44,0x73,0x60,0x75,0x94,0x78,0x10,0x78,0x21,0x10,0x75,0x2a,0x14,0x6d,0x65,
+0x72,0x69,0x63,0x2b,1,0x6c,0x2c,0x74,0x12,0x68,0x65,0x72,0x21,0x14,0x65,0x74,
+0x74,0x65,0x72,0x2d,3,0x63,0x36,0x65,0x46,0x70,0x31,0x74,0x32,0x12,0x65,0x72,
+0x6d,0x33,0x3c,0x16,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3d,0x2e,0x10,0x70,0x2f,
+0x10,0x70,0x34,0x12,0x70,0x65,0x72,0x35,0x61,0x46,0x63,0x52,0x65,0x64,0x66,0x72,
+0x6c,2,0x65,0x2d,0x66,0x3b,0x6f,0x28,0x12,0x77,0x65,0x72,0x29,0x10,0x74,0x22,
+0x12,0x65,0x72,0x6d,0x23,1,0x6c,0x24,0x72,0x37,0x24,0x12,0x6f,0x73,0x65,0x25,
+0x10,0x78,0x38,0x13,0x74,0x65,0x6e,0x64,0x39,0x10,0x6f,0x26,0x13,0x72,0x6d,0x61,
+0x74,0x27,0,0x10,0x6c,0x88,0x72,0x40,0x72,0x36,0x73,0x5e,0x77,0x7a,0x78,0x8a,
+0x7a,0x11,0x77,0x6a,0x4b,1,0x65,0x24,0x69,0x3b,0x1e,0x67,0x69,0x6f,0x6e,0x61,
+0x6c,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,0x72,0x3b,1,0x69,0x24,0x71,0x3f,
+0x18,0x6e,0x67,0x6c,0x65,0x71,0x75,0x6f,0x74,0x65,0x3f,0x17,0x73,0x65,0x67,0x73,
+0x70,0x61,0x63,0x65,0x4d,0x10,0x78,0x21,0x6c,0x36,0x6d,0x3c,0x6e,0x76,0x6f,0x13,
+0x74,0x68,0x65,0x72,0x21,1,0x65,0x23,0x66,0x35,3,0x62,0x37,0x69,0x28,0x6c,
+0x29,0x6e,0x2b,0x10,0x64,1,0x6c,0x34,0x6e,0x11,0x75,0x6d,0x2a,0x12,0x6c,0x65,
+0x74,0x37,0x14,0x65,0x74,0x74,0x65,0x72,0x29,2,0x65,0x36,0x6c,0x39,0x75,0x2c,
+0x14,0x6d,0x65,0x72,0x69,0x63,0x2d,0x14,0x77,0x6c,0x69,0x6e,0x65,0x39,0x66,0x3f,
+0x66,0x40,0x67,0x4e,0x68,0x70,0x6b,0x10,0x61,0x26,0x15,0x74,0x61,0x6b,0x61,0x6e,
+0x61,0x27,0x10,0x6f,0x24,0x13,0x72,0x6d,0x61,0x74,0x25,1,0x61,0x3a,0x6c,0x19,
+0x75,0x65,0x61,0x66,0x74,0x65,0x72,0x7a,0x77,0x6a,0x49,0x10,0x7a,0x49,1,0x65,
+0x24,0x6c,0x3d,0x19,0x62,0x72,0x65,0x77,0x6c,0x65,0x74,0x74,0x65,0x72,0x3d,0x61,
+0x86,0x63,0x92,0x64,0x94,0x65,2,0x62,0x44,0x6d,0x5e,0x78,0x2e,0x13,0x74,0x65,
+0x6e,0x64,0x32,0x15,0x6e,0x75,0x6d,0x6c,0x65,0x74,0x2f,0x42,1,0x61,0x24,0x67,
+0x45,0x11,0x73,0x65,0x42,0x12,0x67,0x61,0x7a,0x45,0x46,0x16,0x6f,0x64,0x69,0x66,
+0x69,0x65,0x72,0x47,0x15,0x6c,0x65,0x74,0x74,0x65,0x72,0x23,0x10,0x72,0x31,1,
+0x6f,0x24,0x71,0x41,0x18,0x75,0x62,0x6c,0x65,0x71,0x75,0x6f,0x74,0x65,0x41,2,
+0x63,0x32,0x6e,0x3c,0x6f,0x22,0x12,0x70,0x65,0x6e,0x23,0x24,0x13,0x6c,0x6f,0x73,
+0x65,0x25,0x20,0x12,0x6f,0x6e,0x65,0x21,6,0x6f,0x5c,0x6f,0x4a,0x72,0x5c,0x74,
+0x64,0x76,0x1d,0x69,0x73,0x75,0x61,0x6c,0x6f,0x72,0x64,0x65,0x72,0x6c,0x65,0x66,
+0x74,0x3d,0x18,0x76,0x65,0x72,0x73,0x74,0x72,0x75,0x63,0x6b,0x2d,0x13,0x69,0x67,
+0x68,0x74,0x2f,0x11,0x6f,0x70,0x30,0x12,0x61,0x6e,0x64,2,0x62,0x32,0x6c,0x50,
+0x72,0x13,0x69,0x67,0x68,0x74,0x3b,0x14,0x6f,0x74,0x74,0x6f,0x6d,0x32,0x17,0x61,
+0x6e,0x64,0x72,0x69,0x67,0x68,0x74,0x35,0x12,0x65,0x66,0x74,0x36,0x17,0x61,0x6e,
+0x64,0x72,0x69,0x67,0x68,0x74,0x39,0x62,0x2c,0x6c,0x5c,0x6e,0x10,0x61,0x21,0x14,
+0x6f,0x74,0x74,0x6f,0x6d,0x22,0x12,0x61,0x6e,0x64,1,0x6c,0x2e,0x72,0x13,0x69,
+0x67,0x68,0x74,0x27,0x12,0x65,0x66,0x74,0x25,0x12,0x65,0x66,0x74,0x28,0x17,0x61,
+0x6e,0x64,0x72,0x69,0x67,0x68,0x74,0x2b,0xd,0x6e,0xaa,0x72,0x70,0x72,0x92,0x73,
+0xa2,0x46,0x74,0xa2,0x54,0x76,1,0x69,0x60,0x6f,0x12,0x77,0x65,0x6c,0x62,1,
+0x64,0x3a,0x69,0x19,0x6e,0x64,0x65,0x70,0x65,0x6e,0x64,0x65,0x6e,0x74,0x67,0x17,
+0x65,0x70,0x65,0x6e,0x64,0x65,0x6e,0x74,0x65,1,0x72,0x2e,0x73,0x13,0x61,0x72,
+0x67,0x61,0x61,0x12,0x61,0x6d,0x61,0x5f,0x1d,0x65,0x67,0x69,0x73,0x74,0x65,0x72,
+0x73,0x68,0x69,0x66,0x74,0x65,0x72,0x57,0x1e,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,
+0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x59,0x12,0x6f,0x6e,0x65,1,0x6c,0x2c,
+0x6d,0x12,0x61,0x72,0x6b,0x5d,0x14,0x65,0x74,0x74,0x65,0x72,0x5b,0x6e,0x3c,0x6f,
+0x7c,0x70,0x18,0x75,0x72,0x65,0x6b,0x69,0x6c,0x6c,0x65,0x72,0x55,1,0x6f,0x4c,
+0x75,1,0x6b,0x3c,0x6d,0x12,0x62,0x65,0x72,0x50,0x15,0x6a,0x6f,0x69,0x6e,0x65,
+0x72,0x53,0x11,0x74,0x61,0x4f,0x16,0x6e,0x6a,0x6f,0x69,0x6e,0x65,0x72,0x4d,0x13,
+0x74,0x68,0x65,0x72,0x21,0x67,0x3e,0x67,0x4a,0x69,0x64,0x6a,0x82,0x6d,0x1d,0x6f,
+0x64,0x69,0x66,0x79,0x69,0x6e,0x67,0x6c,0x65,0x74,0x74,0x65,0x72,0x4b,0x1c,0x65,
+0x6d,0x69,0x6e,0x61,0x74,0x69,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x45,0x1e,0x6e,0x76,
+0x69,0x73,0x69,0x62,0x6c,0x65,0x73,0x74,0x61,0x63,0x6b,0x65,0x72,0x47,0x14,0x6f,
+0x69,0x6e,0x65,0x72,0x49,0x61,0xa2,0xba,0x62,0xa2,0xc0,0x63,1,0x61,0xa2,0xa2,
+0x6f,0x16,0x6e,0x73,0x6f,0x6e,0x61,0x6e,0x74,0x2a,8,0x6b,0x67,0x6b,0x48,0x6d,
+0x52,0x70,0x5c,0x73,0xa2,0x42,0x77,0x19,0x69,0x74,0x68,0x73,0x74,0x61,0x63,0x6b,
+0x65,0x72,0x43,0x14,0x69,0x6c,0x6c,0x65,0x72,0x35,0x14,0x65,0x64,0x69,0x61,0x6c,
+0x37,1,0x6c,0x52,0x72,0x10,0x65,1,0x63,0x2e,0x66,0x13,0x69,0x78,0x65,0x64,
+0x3d,0x19,0x65,0x64,0x69,0x6e,0x67,0x72,0x65,0x70,0x68,0x61,0x3b,0x18,0x61,0x63,
+0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x39,0x10,0x75,1,0x62,0x3e,0x63,0x1b,0x63,
+0x65,0x65,0x64,0x69,0x6e,0x67,0x72,0x65,0x70,0x68,0x61,0x41,0x15,0x6a,0x6f,0x69,
+0x6e,0x65,0x64,0x3f,0x64,0x4c,0x66,0x52,0x68,0x5a,0x69,0x1e,0x6e,0x69,0x74,0x69,
+0x61,0x6c,0x70,0x6f,0x73,0x74,0x66,0x69,0x78,0x65,0x64,0x33,0x12,0x65,0x61,0x64,
+0x2d,0x13,0x69,0x6e,0x61,0x6c,0x2f,0x18,0x65,0x61,0x64,0x6c,0x65,0x74,0x74,0x65,
+0x72,0x31,0x1d,0x6e,0x74,0x69,0x6c,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x6d,0x61,0x72,
+0x6b,0x29,0x16,0x76,0x61,0x67,0x72,0x61,0x68,0x61,0x23,1,0x69,0x4a,0x72,0x10,
+0x61,0x1f,0x68,0x6d,0x69,0x6a,0x6f,0x69,0x6e,0x69,0x6e,0x67,0x6e,0x75,0x6d,0x62,
+0x65,0x72,0x27,0x12,0x6e,0x64,0x75,0x25,2,0x72,0x38,0x74,0x46,0x75,0x26,0x15,
+0x70,0x72,0x69,0x67,0x68,0x74,0x27,0x20,0x15,0x6f,0x74,0x61,0x74,0x65,0x64,0x21,
+1,0x72,0x24,0x75,0x25,0x22,0x18,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x65,0x64,
+1,0x72,0x32,0x75,0x15,0x70,0x72,0x69,0x67,0x68,0x74,0x25,0x15,0x6f,0x74,0x61,
+0x74,0x65,0x64,0x23,0xd,0x6e,0xc1,0x86,0x73,0xa8,0x73,0x4c,0x74,0xa2,0x76,0x75,
+0xa2,0x83,0x7a,0xd8,0x70,0,2,0x6c,0xd9,0x20,0,0x70,0xd9,0x40,0,0x73,
+0xc3,0,0xfe,0xf,0,0,0,7,0x6f,0x3c,0x6f,0xff,8,0,0,0,
+0x70,0x3a,0x75,0x6e,0x79,0x13,0x6d,0x62,0x6f,0x6c,0xff,0xf,0,0,0,0x11,
+0x61,0x63,1,0x65,0x34,0x69,0x15,0x6e,0x67,0x6d,0x61,0x72,0x6b,0xa5,0,0x18,
+0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0xc3,0,0x16,0x72,0x72,0x6f,0x67,
+0x61,0x74,0x65,0xe1,0,0,0x63,0xff,2,0,0,0,0x65,0x38,0x6b,0xff,
+4,0,0,0,0x6d,0xff,1,0,0,0,0x16,0x70,0x61,0x72,0x61,0x74,
+0x6f,0x72,0xd9,0x70,0,0x1d,0x69,0x74,0x6c,0x65,0x63,0x61,0x73,0x65,0x6c,0x65,
+0x74,0x74,0x65,0x72,0x31,1,0x6e,0x40,0x70,0x1c,0x70,0x65,0x72,0x63,0x61,0x73,
+0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x25,0x17,0x61,0x73,0x73,0x69,0x67,0x6e,0x65,
+0x64,0x23,0x6e,0xa2,0x69,0x6f,0xa2,0x89,0x70,0xfe,0x30,0xf8,0,0,9,0x69,
+0x33,0x69,0xff,0x10,0,0,0,0x6f,0xfd,0x80,0,0,0x72,0x54,0x73,0xf9,
+0,0,0x75,0x12,0x6e,0x63,0x74,0xfe,0x30,0xf8,0,0,0x15,0x75,0x61,0x74,
+0x69,0x6f,0x6e,0xff,0x30,0xf8,0,0,0x17,0x69,0x76,0x61,0x74,0x65,0x75,0x73,
+0x65,0xdd,0,0,0x61,0x48,0x63,0xfd,0x40,0,0,0x64,0xe9,0,0,0x65,
+0xfd,0x20,0,0,0x66,0xff,0x20,0,0,0,0x1f,0x72,0x61,0x67,0x72,0x61,
+0x70,0x68,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0xd9,0x40,0,0xbe,0,
+3,0x64,0xa7,0,0x6c,0xab,0,0x6f,0x30,0x75,0x13,0x6d,0x62,0x65,0x72,0xbf,
+0,0xb2,0,0x1b,0x6e,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,
+0xa1,1,0x70,0x92,0x74,0x12,0x68,0x65,0x72,0xe6,0x80,1,3,0x6c,0x40,0x6e,
+0x4a,0x70,0x56,0x73,0x14,0x79,0x6d,0x62,0x6f,0x6c,0xff,8,0,0,0,0x14,
+0x65,0x74,0x74,0x65,0x72,0x61,0x14,0x75,0x6d,0x62,0x65,0x72,0xb3,0,0x19,0x75,
+0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xfd,0x80,0,0,0x1c,0x65,0x6e,
+0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xf9,0,0,0x66,0xc0,
+0xc4,0x66,0xa2,0x47,0x69,0xa2,0x64,0x6c,0xa2,0x79,0x6d,0xa4,0xc0,4,0x61,0x6c,
+0x63,0xa5,0,0x65,0xa3,0x80,0x6e,0xa1,0x6f,0x15,0x64,0x69,0x66,0x69,0x65,0x72,
+1,0x6c,0x38,0x73,0x14,0x79,0x6d,0x62,0x6f,0x6c,0xff,4,0,0,0,0x14,
+0x65,0x74,0x74,0x65,0x72,0x41,1,0x72,0x3c,0x74,0x16,0x68,0x73,0x79,0x6d,0x62,
+0x6f,0x6c,0xff,1,0,0,0,0x10,0x6b,0xa5,0xc0,1,0x69,0x32,0x6f,0x13,
+0x72,0x6d,0x61,0x74,0xdb,0,0,0x1d,0x6e,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,
+0x75,0x61,0x74,0x69,0x6f,0x6e,0xff,0x20,0,0,0,0x10,0x6e,0x1f,0x69,0x74,
+0x69,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xff,0x10,
+0,0,0,0x9c,7,0x6d,0x18,0x6d,0x41,0x6f,0x28,0x74,0x31,0x75,0x25,0x60,
+0x1c,0x77,0x65,0x72,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x29,0x63,
+0x3d,0x65,0x28,0x69,0x42,0x6c,0x29,0x13,0x74,0x74,0x65,0x72,0x9c,0x15,0x6e,0x75,
+0x6d,0x62,0x65,0x72,0xab,0,0x1a,0x6e,0x65,0x73,0x65,0x70,0x61,0x72,0x61,0x74,
+0x6f,0x72,0xd9,0x20,0,0x63,0x46,0x64,0xa2,0x96,0x65,0x1b,0x6e,0x63,0x6c,0x6f,
+0x73,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0xa3,0x80,0xe6,0x80,1,7,0x6e,0x57,
+0x6e,0x52,0x6f,0x5e,0x73,0xe1,0,0,0x75,0x1b,0x72,0x72,0x65,0x6e,0x63,0x79,
+0x73,0x79,0x6d,0x62,0x6f,0x6c,0xff,2,0,0,0,0x22,0x12,0x74,0x72,0x6c,
+0xd9,0x80,0,0xdc,0,0,1,0x6d,0x62,0x6e,1,0x6e,0x30,0x74,0x12,0x72,
+0x6f,0x6c,0xd9,0x80,0,0x1f,0x65,0x63,0x74,0x6f,0x72,0x70,0x75,0x6e,0x63,0x74,
+0x75,0x61,0x74,0x69,0x6f,0x6e,0xfd,0x40,0,0,0x19,0x62,0x69,0x6e,0x69,0x6e,
+0x67,0x6d,0x61,0x72,0x6b,0xa5,0xc0,0x61,0x58,0x63,0xd9,0x80,0,0x66,0xdb,0,
+0,0x6c,0x1d,0x6f,0x73,0x65,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,
+0x6e,0xfd,0x20,0,0,0x18,0x73,0x65,0x64,0x6c,0x65,0x74,0x74,0x65,0x72,0x3d,
+2,0x61,0x32,0x65,0x50,0x69,0x12,0x67,0x69,0x74,0xa7,0,0x1c,0x73,0x68,0x70,
+0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xe9,0,0,0x1a,0x63,0x69,
+0x6d,0x61,0x6c,0x6e,0x75,0x6d,0x62,0x65,0x72,0xa7,0
};
-const char PropNameData::nameGroups[19082]={
+const char PropNameData::nameGroups[21265]={
2,'A','l','p','h','a',0,'A','l','p','h','a','b','e','t','i','c',0,
4,'N',0,'N','o',0,'F',0,'F','a','l','s','e',0,4,'Y',0,'Y','e','s',0,'T',0,'T','r','u','e',0,
2,'N','R',0,'N','o','t','_','R','e','o','r','d','e','r','e','d',0,
@@ -1025,14 +1100,14 @@ const char PropNameData::nameGroups[19082]={
2,'C','W','C','M',0,'C','h','a','n','g','e','s','_','W','h','e','n','_','C','a','s','e','m','a','p','p','e','d',0,
2,'C','W','K','C','F',0,'C','h','a','n','g','e','s','_','W','h','e','n','_','N','F','K','C','_','C','a','s','e','f','o','l',
'd','e','d',0,2,'E','m','o','j','i',0,'E','m','o','j','i',0,
-2,'E','m','o','j','i','_','P','r','e','s','e','n','t','a','t','i','o','n',0,'E','m','o','j','i','_','P','r','e','s','e','n',
-'t','a','t','i','o','n',0,2,'E','m','o','j','i','_','M','o','d','i','f','i','e','r',0,'E','m','o','j','i','_','M','o','d',
-'i','f','i','e','r',0,2,'E','m','o','j','i','_','M','o','d','i','f','i','e','r','_','B','a','s','e',0,
-'E','m','o','j','i','_','M','o','d','i','f','i','e','r','_','B','a','s','e',0,
-2,'E','m','o','j','i','_','C','o','m','p','o','n','e','n','t',0,'E','m','o','j','i','_','C','o','m','p','o','n','e','n','t',
-0,2,'R','I',0,'R','e','g','i','o','n','a','l','_','I','n','d','i','c','a','t','o','r',0,
+2,'E','P','r','e','s',0,'E','m','o','j','i','_','P','r','e','s','e','n','t','a','t','i','o','n',0,
+2,'E','M','o','d',0,'E','m','o','j','i','_','M','o','d','i','f','i','e','r',0,
+2,'E','B','a','s','e',0,'E','m','o','j','i','_','M','o','d','i','f','i','e','r','_','B','a','s','e',0,
+2,'E','C','o','m','p',0,'E','m','o','j','i','_','C','o','m','p','o','n','e','n','t',0,
+2,'R','I',0,'R','e','g','i','o','n','a','l','_','I','n','d','i','c','a','t','o','r',0,
2,'P','C','M',0,'P','r','e','p','e','n','d','e','d','_','C','o','n','c','a','t','e','n','a','t','i','o','n','_','M','a','r',
-'k',0,2,'b','c',0,'B','i','d','i','_','C','l','a','s','s',0,
+'k',0,2,'E','x','t','P','i','c','t',0,'E','x','t','e','n','d','e','d','_','P','i','c','t','o','g','r','a','p','h','i','c',
+0,2,'b','c',0,'B','i','d','i','_','C','l','a','s','s',0,
2,'L',0,'L','e','f','t','_','T','o','_','R','i','g','h','t',0,
2,'R',0,'R','i','g','h','t','_','T','o','_','L','e','f','t',0,
2,'E','N',0,'E','u','r','o','p','e','a','n','_','N','u','m','b','e','r',0,
@@ -1371,8 +1446,19 @@ const char PropNameData::nameGroups[19082]={
2,'N','u','s','h','u',0,'N','u','s','h','u',0,2,'S','o','y','o','m','b','o',0,'S','o','y','o','m','b','o',0,
2,'S','y','r','i','a','c','_','S','u','p',0,'S','y','r','i','a','c','_','S','u','p','p','l','e','m','e','n','t',0,
2,'Z','a','n','a','b','a','z','a','r','_','S','q','u','a','r','e',0,'Z','a','n','a','b','a','z','a','r','_','S','q','u','a',
-'r','e',0,2,'c','c','c',0,'C','a','n','o','n','i','c','a','l','_','C','o','m','b','i','n','i','n','g','_','C','l','a','s',
-'s',0,2,'d','t',0,'D','e','c','o','m','p','o','s','i','t','i','o','n','_','T','y','p','e',0,
+'r','e',0,2,'C','h','e','s','s','_','S','y','m','b','o','l','s',0,'C','h','e','s','s','_','S','y','m','b','o','l','s',0,
+2,'D','o','g','r','a',0,'D','o','g','r','a',0,2,'G','e','o','r','g','i','a','n','_','E','x','t',0,
+'G','e','o','r','g','i','a','n','_','E','x','t','e','n','d','e','d',0,
+2,'G','u','n','j','a','l','a','_','G','o','n','d','i',0,'G','u','n','j','a','l','a','_','G','o','n','d','i',0,
+2,'H','a','n','i','f','i','_','R','o','h','i','n','g','y','a',0,'H','a','n','i','f','i','_','R','o','h','i','n','g','y','a',
+0,2,'I','n','d','i','c','_','S','i','y','a','q','_','N','u','m','b','e','r','s',0,'I','n','d','i','c','_','S','i','y','a',
+'q','_','N','u','m','b','e','r','s',0,2,'M','a','k','a','s','a','r',0,'M','a','k','a','s','a','r',0,
+2,'M','a','y','a','n','_','N','u','m','e','r','a','l','s',0,'M','a','y','a','n','_','N','u','m','e','r','a','l','s',0,
+2,'M','e','d','e','f','a','i','d','r','i','n',0,'M','e','d','e','f','a','i','d','r','i','n',0,
+2,'O','l','d','_','S','o','g','d','i','a','n',0,'O','l','d','_','S','o','g','d','i','a','n',0,
+2,'S','o','g','d','i','a','n',0,'S','o','g','d','i','a','n',0,
+2,'c','c','c',0,'C','a','n','o','n','i','c','a','l','_','C','o','m','b','i','n','i','n','g','_','C','l','a','s','s',0,
+2,'d','t',0,'D','e','c','o','m','p','o','s','i','t','i','o','n','_','T','y','p','e',0,
3,'N','o','n','e',0,'N','o','n','e',0,'n','o','n','e',0,
3,'C','a','n',0,'C','a','n','o','n','i','c','a','l',0,'c','a','n',0,
3,'C','o','m',0,'C','o','m','p','a','t',0,'c','o','m',0,
@@ -1503,7 +1589,10 @@ const char PropNameData::nameGroups[19082]={
2,'M','a','l','a','y','a','l','a','m','_','R','a',0,'M','a','l','a','y','a','l','a','m','_','R','a',0,
2,'M','a','l','a','y','a','l','a','m','_','S','s','a',0,'M','a','l','a','y','a','l','a','m','_','S','s','a',0,
2,'M','a','l','a','y','a','l','a','m','_','T','t','a',0,'M','a','l','a','y','a','l','a','m','_','T','t','a',0,
-2,'j','t',0,'J','o','i','n','i','n','g','_','T','y','p','e',0,
+2,'H','a','n','i','f','i','_','R','o','h','i','n','g','y','a','_','K','i','n','n','a','_','Y','a',0,
+'H','a','n','i','f','i','_','R','o','h','i','n','g','y','a','_','K','i','n','n','a','_','Y','a',0,
+2,'H','a','n','i','f','i','_','R','o','h','i','n','g','y','a','_','P','a',0,'H','a','n','i','f','i','_','R','o','h','i','n',
+'g','y','a','_','P','a',0,2,'j','t',0,'J','o','i','n','i','n','g','_','T','y','p','e',0,
2,'U',0,'N','o','n','_','J','o','i','n','i','n','g',0,2,'C',0,'J','o','i','n','_','C','a','u','s','i','n','g',0,
2,'D',0,'D','u','a','l','_','J','o','i','n','i','n','g',0,
2,'L',0,'L','e','f','t','_','J','o','i','n','i','n','g',0,
@@ -1644,7 +1733,12 @@ const char PropNameData::nameGroups[19082]={
2,'H','a','n','b',0,'H','a','n','b',0,2,'J','a','m','o',0,'J','a','m','o',0,
2,'Z','s','y','e',0,'Z','s','y','e',0,2,'G','o','n','m',0,'M','a','s','a','r','a','m','_','G','o','n','d','i',0,
2,'S','o','y','o',0,'S','o','y','o','m','b','o',0,2,'Z','a','n','b',0,'Z','a','n','a','b','a','z','a','r','_','S','q',
-'u','a','r','e',0,2,'h','s','t',0,'H','a','n','g','u','l','_','S','y','l','l','a','b','l','e','_','T','y','p','e',0,
+'u','a','r','e',0,2,'D','o','g','r',0,'D','o','g','r','a',0,
+2,'G','o','n','g',0,'G','u','n','j','a','l','a','_','G','o','n','d','i',0,
+2,'M','a','k','a',0,'M','a','k','a','s','a','r',0,2,'M','e','d','f',0,'M','e','d','e','f','a','i','d','r','i','n',0,
+2,'R','o','h','g',0,'H','a','n','i','f','i','_','R','o','h','i','n','g','y','a',0,
+2,'S','o','g','d',0,'S','o','g','d','i','a','n',0,2,'S','o','g','o',0,'O','l','d','_','S','o','g','d','i','a','n',0,
+2,'h','s','t',0,'H','a','n','g','u','l','_','S','y','l','l','a','b','l','e','_','T','y','p','e',0,
2,'N','A',0,'N','o','t','_','A','p','p','l','i','c','a','b','l','e',0,
2,'L',0,'L','e','a','d','i','n','g','_','J','a','m','o',0,
2,'V',0,'V','o','w','e','l','_','J','a','m','o',0,2,'T',0,'T','r','a','i','l','i','n','g','_','J','a','m','o',0,
@@ -1676,10 +1770,72 @@ const char PropNameData::nameGroups[19082]={
2,'E','x','t','e','n','d',0,'E','x','t','e','n','d',0,2,'M','B',0,'M','i','d','N','u','m','L','e','t',0,
2,'N','L',0,'N','e','w','l','i','n','e',0,2,'S','Q',0,'S','i','n','g','l','e','_','Q','u','o','t','e',0,
2,'D','Q',0,'D','o','u','b','l','e','_','Q','u','o','t','e',0,
+2,'W','S','e','g','S','p','a','c','e',0,'W','S','e','g','S','p','a','c','e',0,
2,'b','p','t',0,'B','i','d','i','_','P','a','i','r','e','d','_','B','r','a','c','k','e','t','_','T','y','p','e',0,
2,'n',0,'N','o','n','e',0,2,'o',0,'O','p','e','n',0,
-2,'c',0,'C','l','o','s','e',0,2,'g','c','m',0,'G','e','n','e','r','a','l','_','C','a','t','e','g','o','r','y','_','M',
-'a','s','k',0,2,'C',0,'O','t','h','e','r',0,2,'L',0,'L','e','t','t','e','r',0,
+2,'c',0,'C','l','o','s','e',0,2,'I','n','P','C',0,'I','n','d','i','c','_','P','o','s','i','t','i','o','n','a','l','_',
+'C','a','t','e','g','o','r','y',0,2,'N','A',0,'N','A',0,
+2,'B','o','t','t','o','m',0,'B','o','t','t','o','m',0,2,'B','o','t','t','o','m','_','A','n','d','_','L','e','f','t',0,
+'B','o','t','t','o','m','_','A','n','d','_','L','e','f','t',0,
+2,'B','o','t','t','o','m','_','A','n','d','_','R','i','g','h','t',0,'B','o','t','t','o','m','_','A','n','d','_','R','i','g',
+'h','t',0,2,'L','e','f','t',0,'L','e','f','t',0,2,'L','e','f','t','_','A','n','d','_','R','i','g','h','t',0,
+'L','e','f','t','_','A','n','d','_','R','i','g','h','t',0,2,'O','v','e','r','s','t','r','u','c','k',0,
+'O','v','e','r','s','t','r','u','c','k',0,2,'R','i','g','h','t',0,'R','i','g','h','t',0,
+2,'T','o','p',0,'T','o','p',0,2,'T','o','p','_','A','n','d','_','B','o','t','t','o','m',0,
+'T','o','p','_','A','n','d','_','B','o','t','t','o','m',0,2,'T','o','p','_','A','n','d','_','B','o','t','t','o','m','_','A',
+'n','d','_','R','i','g','h','t',0,'T','o','p','_','A','n','d','_','B','o','t','t','o','m','_','A','n','d','_','R','i','g','h',
+'t',0,2,'T','o','p','_','A','n','d','_','L','e','f','t',0,'T','o','p','_','A','n','d','_','L','e','f','t',0,
+2,'T','o','p','_','A','n','d','_','L','e','f','t','_','A','n','d','_','R','i','g','h','t',0,
+'T','o','p','_','A','n','d','_','L','e','f','t','_','A','n','d','_','R','i','g','h','t',0,
+2,'T','o','p','_','A','n','d','_','R','i','g','h','t',0,'T','o','p','_','A','n','d','_','R','i','g','h','t',0,
+2,'V','i','s','u','a','l','_','O','r','d','e','r','_','L','e','f','t',0,'V','i','s','u','a','l','_','O','r','d','e','r','_',
+'L','e','f','t',0,2,'I','n','S','C',0,'I','n','d','i','c','_','S','y','l','l','a','b','i','c','_','C','a','t','e','g','o',
+'r','y',0,2,'O','t','h','e','r',0,'O','t','h','e','r',0,
+2,'A','v','a','g','r','a','h','a',0,'A','v','a','g','r','a','h','a',0,
+2,'B','i','n','d','u',0,'B','i','n','d','u',0,2,'B','r','a','h','m','i','_','J','o','i','n','i','n','g','_','N','u','m',
+'b','e','r',0,'B','r','a','h','m','i','_','J','o','i','n','i','n','g','_','N','u','m','b','e','r',0,
+2,'C','a','n','t','i','l','l','a','t','i','o','n','_','M','a','r','k',0,'C','a','n','t','i','l','l','a','t','i','o','n','_',
+'M','a','r','k',0,2,'C','o','n','s','o','n','a','n','t',0,'C','o','n','s','o','n','a','n','t',0,
+2,'C','o','n','s','o','n','a','n','t','_','D','e','a','d',0,'C','o','n','s','o','n','a','n','t','_','D','e','a','d',0,
+2,'C','o','n','s','o','n','a','n','t','_','F','i','n','a','l',0,'C','o','n','s','o','n','a','n','t','_','F','i','n','a','l',
+0,2,'C','o','n','s','o','n','a','n','t','_','H','e','a','d','_','L','e','t','t','e','r',0,
+'C','o','n','s','o','n','a','n','t','_','H','e','a','d','_','L','e','t','t','e','r',0,
+2,'C','o','n','s','o','n','a','n','t','_','I','n','i','t','i','a','l','_','P','o','s','t','f','i','x','e','d',0,
+'C','o','n','s','o','n','a','n','t','_','I','n','i','t','i','a','l','_','P','o','s','t','f','i','x','e','d',0,
+2,'C','o','n','s','o','n','a','n','t','_','K','i','l','l','e','r',0,'C','o','n','s','o','n','a','n','t','_','K','i','l','l',
+'e','r',0,2,'C','o','n','s','o','n','a','n','t','_','M','e','d','i','a','l',0,'C','o','n','s','o','n','a','n','t','_','M',
+'e','d','i','a','l',0,2,'C','o','n','s','o','n','a','n','t','_','P','l','a','c','e','h','o','l','d','e','r',0,
+'C','o','n','s','o','n','a','n','t','_','P','l','a','c','e','h','o','l','d','e','r',0,
+2,'C','o','n','s','o','n','a','n','t','_','P','r','e','c','e','d','i','n','g','_','R','e','p','h','a',0,
+'C','o','n','s','o','n','a','n','t','_','P','r','e','c','e','d','i','n','g','_','R','e','p','h','a',0,
+2,'C','o','n','s','o','n','a','n','t','_','P','r','e','f','i','x','e','d',0,'C','o','n','s','o','n','a','n','t','_','P','r',
+'e','f','i','x','e','d',0,2,'C','o','n','s','o','n','a','n','t','_','S','u','b','j','o','i','n','e','d',0,
+'C','o','n','s','o','n','a','n','t','_','S','u','b','j','o','i','n','e','d',0,
+2,'C','o','n','s','o','n','a','n','t','_','S','u','c','c','e','e','d','i','n','g','_','R','e','p','h','a',0,
+'C','o','n','s','o','n','a','n','t','_','S','u','c','c','e','e','d','i','n','g','_','R','e','p','h','a',0,
+2,'C','o','n','s','o','n','a','n','t','_','W','i','t','h','_','S','t','a','c','k','e','r',0,
+'C','o','n','s','o','n','a','n','t','_','W','i','t','h','_','S','t','a','c','k','e','r',0,
+2,'G','e','m','i','n','a','t','i','o','n','_','M','a','r','k',0,'G','e','m','i','n','a','t','i','o','n','_','M','a','r','k',
+0,2,'I','n','v','i','s','i','b','l','e','_','S','t','a','c','k','e','r',0,'I','n','v','i','s','i','b','l','e','_','S','t',
+'a','c','k','e','r',0,2,'J','o','i','n','e','r',0,'J','o','i','n','e','r',0,
+2,'M','o','d','i','f','y','i','n','g','_','L','e','t','t','e','r',0,'M','o','d','i','f','y','i','n','g','_','L','e','t','t',
+'e','r',0,2,'N','o','n','_','J','o','i','n','e','r',0,'N','o','n','_','J','o','i','n','e','r',0,
+2,'N','u','k','t','a',0,'N','u','k','t','a',0,2,'N','u','m','b','e','r',0,'N','u','m','b','e','r',0,
+2,'N','u','m','b','e','r','_','J','o','i','n','e','r',0,'N','u','m','b','e','r','_','J','o','i','n','e','r',0,
+2,'P','u','r','e','_','K','i','l','l','e','r',0,'P','u','r','e','_','K','i','l','l','e','r',0,
+2,'R','e','g','i','s','t','e','r','_','S','h','i','f','t','e','r',0,'R','e','g','i','s','t','e','r','_','S','h','i','f','t',
+'e','r',0,2,'S','y','l','l','a','b','l','e','_','M','o','d','i','f','i','e','r',0,'S','y','l','l','a','b','l','e','_','M',
+'o','d','i','f','i','e','r',0,2,'T','o','n','e','_','L','e','t','t','e','r',0,'T','o','n','e','_','L','e','t','t','e','r',
+0,2,'T','o','n','e','_','M','a','r','k',0,'T','o','n','e','_','M','a','r','k',0,
+2,'V','i','r','a','m','a',0,'V','i','r','a','m','a',0,2,'V','i','s','a','r','g','a',0,
+'V','i','s','a','r','g','a',0,2,'V','o','w','e','l',0,'V','o','w','e','l',0,
+2,'V','o','w','e','l','_','D','e','p','e','n','d','e','n','t',0,'V','o','w','e','l','_','D','e','p','e','n','d','e','n','t',
+0,2,'V','o','w','e','l','_','I','n','d','e','p','e','n','d','e','n','t',0,'V','o','w','e','l','_','I','n','d','e','p','e',
+'n','d','e','n','t',0,2,'v','o',0,'V','e','r','t','i','c','a','l','_','O','r','i','e','n','t','a','t','i','o','n',0,
+2,'R',0,'R','o','t','a','t','e','d',0,2,'T','r',0,'T','r','a','n','s','f','o','r','m','e','d','_','R','o','t','a','t',
+'e','d',0,2,'T','u',0,'T','r','a','n','s','f','o','r','m','e','d','_','U','p','r','i','g','h','t',0,
+2,'U',0,'U','p','r','i','g','h','t',0,2,'g','c','m',0,'G','e','n','e','r','a','l','_','C','a','t','e','g','o','r','y',
+'_','M','a','s','k',0,2,'C',0,'O','t','h','e','r',0,2,'L',0,'L','e','t','t','e','r',0,
2,'L','C',0,'C','a','s','e','d','_','L','e','t','t','e','r',0,
3,'M',0,'M','a','r','k',0,'C','o','m','b','i','n','i','n','g','_','M','a','r','k',0,
2,'N',0,'N','u','m','b','e','r',0,3,'P',0,'P','u','n','c','t','u','a','t','i','o','n',0,
diff --git a/Build/source/libs/icu/icu-src/source/common/putil.cpp b/Build/source/libs/icu/icu-src/source/common/putil.cpp
index 83f08ac0705..769309b422c 100644
--- a/Build/source/libs/icu/icu-src/source/common/putil.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/putil.cpp
@@ -102,9 +102,8 @@
# define NOMCX
# include <windows.h>
# include "unicode/uloc.h"
-#if U_PLATFORM_HAS_WINUWP_API == 0
# include "wintz.h"
-#else // U_PLATFORM_HAS_WINUWP_API
+#if U_PLATFORM_HAS_WINUWP_API
typedef PVOID LPMSG; // TODO: figure out how to get rid of this typedef
#include <Windows.Globalization.h>
#include <windows.system.userprofile.h>
@@ -533,6 +532,28 @@ uprv_fmin(double x, double y)
return (x > y ? y : x);
}
+U_CAPI UBool U_EXPORT2
+uprv_add32_overflow(int32_t a, int32_t b, int32_t* res) {
+ // NOTE: Some compilers (GCC, Clang) have primitives available, like __builtin_add_overflow.
+ // This function could be optimized by calling one of those primitives.
+ auto a64 = static_cast<int64_t>(a);
+ auto b64 = static_cast<int64_t>(b);
+ int64_t res64 = a64 + b64;
+ *res = static_cast<int32_t>(res64);
+ return res64 != *res;
+}
+
+U_CAPI UBool U_EXPORT2
+uprv_mul32_overflow(int32_t a, int32_t b, int32_t* res) {
+ // NOTE: Some compilers (GCC, Clang) have primitives available, like __builtin_mul_overflow.
+ // This function could be optimized by calling one of those primitives.
+ auto a64 = static_cast<int64_t>(a);
+ auto b64 = static_cast<int64_t>(b);
+ int64_t res64 = a64 * b64;
+ *res = static_cast<int32_t>(res64);
+ return res64 != *res;
+}
+
/**
* Truncates the given double.
* trunc(3.3) = 3.0, trunc (-3.3) = -3.0
@@ -1040,53 +1061,13 @@ uprv_tzname_clear_cache()
#endif
}
-// With the Universal Windows Platform we can just ask Windows for the name
-#if U_PLATFORM_HAS_WINUWP_API
-U_CAPI const char* U_EXPORT2
-uprv_getWindowsTimeZone()
-{
- // Get default Windows timezone.
- ComPtr<IInspectable> calendar;
- HRESULT hr = RoActivateInstance(
- HStringReference(RuntimeClass_Windows_Globalization_Calendar).Get(),
- &calendar);
- if (SUCCEEDED(hr))
- {
- ComPtr<ABI::Windows::Globalization::ITimeZoneOnCalendar> timezone;
- hr = calendar.As(&timezone);
- if (SUCCEEDED(hr))
- {
- HString timezoneString;
- hr = timezone->GetTimeZone(timezoneString.GetAddressOf());
- if (SUCCEEDED(hr))
- {
- int32_t length = static_cast<int32_t>(wcslen(timezoneString.GetRawBuffer(NULL)));
- char* asciiId = (char*)uprv_calloc(length + 1, sizeof(char));
- if (asciiId != nullptr)
- {
- u_UCharsToChars((UChar*)timezoneString.GetRawBuffer(NULL), asciiId, length);
- return asciiId;
- }
- }
- }
- }
-
- // Failed
- return nullptr;
-}
-#endif
-
U_CAPI const char* U_EXPORT2
uprv_tzname(int n)
{
(void)n; // Avoid unreferenced parameter warning.
const char *tzid = NULL;
#if U_PLATFORM_USES_ONLY_WIN32_API
-#if U_PLATFORM_HAS_WINUWP_API > 0
- tzid = uprv_getWindowsTimeZone();
-#else
tzid = uprv_detectWindowsTimeZone();
-#endif
if (tzid != NULL) {
return tzid;
@@ -1344,6 +1325,43 @@ uprv_pathIsAbsolute(const char *path)
# endif
#endif
+#if U_PLATFORM_HAS_WINUWP_API != 0
+// Helper function to get the ICU Data Directory under the Windows directory location.
+static BOOL U_CALLCONV getIcuDataDirectoryUnderWindowsDirectory(char* directoryBuffer, UINT bufferLength)
+{
+#if defined(ICU_DATA_DIR_WINDOWS)
+ wchar_t windowsPath[MAX_PATH];
+ char windowsPathUtf8[MAX_PATH];
+
+ UINT length = GetSystemWindowsDirectoryW(windowsPath, UPRV_LENGTHOF(windowsPath));
+ if ((length > 0) && (length < (UPRV_LENGTHOF(windowsPath) - 1))) {
+ // Convert UTF-16 to a UTF-8 string.
+ UErrorCode status = U_ZERO_ERROR;
+ int32_t windowsPathUtf8Len = 0;
+ u_strToUTF8(windowsPathUtf8, static_cast<int32_t>(UPRV_LENGTHOF(windowsPathUtf8)),
+ &windowsPathUtf8Len, reinterpret_cast<const UChar*>(windowsPath), -1, &status);
+
+ if (U_SUCCESS(status) && (status != U_STRING_NOT_TERMINATED_WARNING) &&
+ (windowsPathUtf8Len < (UPRV_LENGTHOF(windowsPathUtf8) - 1))) {
+ // Ensure it always has a separator, so we can append the ICU data path.
+ if (windowsPathUtf8[windowsPathUtf8Len - 1] != U_FILE_SEP_CHAR) {
+ windowsPathUtf8[windowsPathUtf8Len++] = U_FILE_SEP_CHAR;
+ windowsPathUtf8[windowsPathUtf8Len] = '\0';
+ }
+ // Check if the concatenated string will fit.
+ if ((windowsPathUtf8Len + UPRV_LENGTHOF(ICU_DATA_DIR_WINDOWS)) < bufferLength) {
+ uprv_strcpy(directoryBuffer, windowsPathUtf8);
+ uprv_strcat(directoryBuffer, ICU_DATA_DIR_WINDOWS);
+ return TRUE;
+ }
+ }
+ }
+#endif
+
+ return FALSE;
+}
+#endif
+
static void U_CALLCONV dataDirectoryInitFn() {
/* If we already have the directory, then return immediately. Will happen if user called
* u_setDataDirectory().
@@ -1403,24 +1421,10 @@ static void U_CALLCONV dataDirectoryInitFn() {
}
#endif
-#if defined(ICU_DATA_DIR_WINDOWS) && U_PLATFORM_HAS_WINUWP_API != 0
- // Use data from the %windir%\globalization\icu directory
- // This is only available if ICU is built as a system component
+#if U_PLATFORM_HAS_WINUWP_API != 0 && defined(ICU_DATA_DIR_WINDOWS)
char datadir_path_buffer[MAX_PATH];
- UINT length = GetWindowsDirectoryA(datadir_path_buffer, UPRV_LENGTHOF(datadir_path_buffer));
- if (length > 0 && length < (UPRV_LENGTHOF(datadir_path_buffer) - sizeof(ICU_DATA_DIR_WINDOWS) - 1))
- {
- if (datadir_path_buffer[length - 1] != '\\')
- {
- datadir_path_buffer[length++] = '\\';
- datadir_path_buffer[length] = '\0';
- }
-
- if ((length + 1 + sizeof(ICU_DATA_DIR_WINDOWS)) < UPRV_LENGTHOF(datadir_path_buffer))
- {
- uprv_strcat(datadir_path_buffer, ICU_DATA_DIR_WINDOWS);
- path = datadir_path_buffer;
- }
+ if (getIcuDataDirectoryUnderWindowsDirectory(datadir_path_buffer, UPRV_LENGTHOF(datadir_path_buffer))) {
+ path = datadir_path_buffer;
}
#endif
@@ -1469,20 +1473,30 @@ static void U_CALLCONV TimeZoneDataDirInitFn(UErrorCode &status) {
status = U_MEMORY_ALLOCATION_ERROR;
return;
}
-#if U_PLATFORM_HAS_WINUWP_API == 0
- const char *dir = getenv("ICU_TIMEZONE_FILES_DIR");
-#else
- // TODO: UWP does not support alternate timezone data directories at this time
+
const char *dir = "";
+
+#if U_PLATFORM_HAS_WINUWP_API != 0
+ // The UWP version does not support the environment variable setting, but can possibly pick them up from the Windows directory.
+ char datadir_path_buffer[MAX_PATH];
+ if (getIcuDataDirectoryUnderWindowsDirectory(datadir_path_buffer, UPRV_LENGTHOF(datadir_path_buffer))) {
+ dir = datadir_path_buffer;
+ }
+#else
+ dir = getenv("ICU_TIMEZONE_FILES_DIR");
#endif // U_PLATFORM_HAS_WINUWP_API
+
#if defined(U_TIMEZONE_FILES_DIR)
if (dir == NULL) {
+ // Build time configuration setting.
dir = TO_STRING(U_TIMEZONE_FILES_DIR);
}
#endif
+
if (dir == NULL) {
dir = "";
}
+
setTimeZoneFilesDir(dir, status);
}
@@ -1654,7 +1668,8 @@ The leftmost codepage (.xxx) wins.
/* Note that we scan the *uncorrected* ID. */
if ((p = uprv_strrchr(posixID, '@')) != NULL) {
if (correctedPOSIXLocale == NULL) {
- correctedPOSIXLocale = static_cast<char *>(uprv_malloc(uprv_strlen(posixID)+1));
+ /* new locale can be 1 char longer than old one if @ -> __ */
+ correctedPOSIXLocale = static_cast<char *>(uprv_malloc(uprv_strlen(posixID)+2));
/* Exit on memory allocation error. */
if (correctedPOSIXLocale == NULL) {
return NULL;
@@ -1671,7 +1686,7 @@ The leftmost codepage (.xxx) wins.
}
if (uprv_strchr(correctedPOSIXLocale,'_') == NULL) {
- uprv_strcat(correctedPOSIXLocale, "__"); /* aa@b -> aa__b */
+ uprv_strcat(correctedPOSIXLocale, "__"); /* aa@b -> aa__b (note this can make the new locale 1 char longer) */
}
else {
uprv_strcat(correctedPOSIXLocale, "_"); /* aa_CC@b -> aa_CC_b */
@@ -1725,70 +1740,22 @@ The leftmost codepage (.xxx) wins.
#elif U_PLATFORM_USES_ONLY_WIN32_API
#define POSIX_LOCALE_CAPACITY 64
UErrorCode status = U_ZERO_ERROR;
- char *correctedPOSIXLocale = 0;
+ char *correctedPOSIXLocale = nullptr;
// If we have already figured this out just use the cached value
- if (gCorrectedPOSIXLocale != NULL) {
+ if (gCorrectedPOSIXLocale != nullptr) {
return gCorrectedPOSIXLocale;
}
// No cached value, need to determine the current value
- static WCHAR windowsLocale[LOCALE_NAME_MAX_LENGTH];
-#if U_PLATFORM_HAS_WINUWP_API == 0
- // If not a Universal Windows App, we'll need user default language.
- // Vista and above should use Locale Names instead of LCIDs
- int length = GetUserDefaultLocaleName(windowsLocale, UPRV_LENGTHOF(windowsLocale));
-#else
- // In a UWP app, we want the top language that the application and user agreed upon
- ComPtr<ABI::Windows::Foundation::Collections::IVectorView<HSTRING>> languageList;
-
- ComPtr<ABI::Windows::Globalization::IApplicationLanguagesStatics> applicationLanguagesStatics;
- HRESULT hr = GetActivationFactory(
- HStringReference(RuntimeClass_Windows_Globalization_ApplicationLanguages).Get(),
- &applicationLanguagesStatics);
- if (SUCCEEDED(hr))
- {
- hr = applicationLanguagesStatics->get_Languages(&languageList);
- }
-
- if (FAILED(hr))
- {
- // If there is no application context, then use the top language from the user language profile
- ComPtr<ABI::Windows::System::UserProfile::IGlobalizationPreferencesStatics> globalizationPreferencesStatics;
- hr = GetActivationFactory(
- HStringReference(RuntimeClass_Windows_System_UserProfile_GlobalizationPreferences).Get(),
- &globalizationPreferencesStatics);
- if (SUCCEEDED(hr))
- {
- hr = globalizationPreferencesStatics->get_Languages(&languageList);
- }
- }
-
- // We have a list of languages, ICU knows one, so use the top one for our locale
- HString topLanguage;
- if (SUCCEEDED(hr))
- {
- hr = languageList->GetAt(0, topLanguage.GetAddressOf());
- }
+ static WCHAR windowsLocale[LOCALE_NAME_MAX_LENGTH] = {};
+ int length = GetLocaleInfoEx(LOCALE_NAME_USER_DEFAULT, LOCALE_SNAME, windowsLocale, LOCALE_NAME_MAX_LENGTH);
- if (FAILED(hr))
- {
- // Unexpected, use en-US by default
- if (gCorrectedPOSIXLocale == NULL) {
- gCorrectedPOSIXLocale = "en_US";
- }
-
- return gCorrectedPOSIXLocale;
- }
-
- // ResolveLocaleName will get a likely subtags form consistent with Windows behavior.
- int length = ResolveLocaleName(topLanguage.GetRawBuffer(NULL), windowsLocale, UPRV_LENGTHOF(windowsLocale));
-#endif
- // Now we should have a Windows locale name that needs converted to the POSIX style,
- if (length > 0)
+ // Now we should have a Windows locale name that needs converted to the POSIX style.
+ if (length > 0) // If length is 0, then the GetLocaleInfoEx failed.
{
// First we need to go from UTF-16 to char (and also convert from _ to - while we're at it.)
- char modifiedWindowsLocale[LOCALE_NAME_MAX_LENGTH];
+ char modifiedWindowsLocale[LOCALE_NAME_MAX_LENGTH] = {};
int32_t i;
for (i = 0; i < UPRV_LENGTHOF(modifiedWindowsLocale); i++)
@@ -1836,7 +1803,7 @@ The leftmost codepage (.xxx) wins.
}
// If unable to find a locale we can agree upon, use en-US by default
- if (gCorrectedPOSIXLocale == NULL) {
+ if (gCorrectedPOSIXLocale == nullptr) {
gCorrectedPOSIXLocale = "en_US";
}
return gCorrectedPOSIXLocale;
diff --git a/Build/source/libs/icu/icu-src/source/common/putilimp.h b/Build/source/libs/icu/icu-src/source/common/putilimp.h
index 42acdda6d71..1036651fc86 100644
--- a/Build/source/libs/icu/icu-src/source/common/putilimp.h
+++ b/Build/source/libs/icu/icu-src/source/common/putilimp.h
@@ -94,7 +94,7 @@ typedef size_t uintptr_t;
# define U_NL_LANGINFO_CODESET CODESET
#endif
-#ifdef U_TZSET
+#if defined(U_TZSET) || defined(U_HAVE_TZSET)
/* Use the predefined value. */
#elif U_PLATFORM_USES_ONLY_WIN32_API
// UWP doesn't support tzset or environment variables for tz
@@ -132,7 +132,7 @@ typedef size_t uintptr_t;
# define U_TIMEZONE timezone
#endif
-#ifdef U_TZNAME
+#if defined(U_TZNAME) || defined(U_HAVE_TZNAME)
/* Use the predefined value. */
#elif U_PLATFORM_USES_ONLY_WIN32_API
/* not usable on all windows platforms */
@@ -204,30 +204,18 @@ typedef size_t uintptr_t;
/**
* \def U_HAVE_STD_ATOMICS
- * Defines whether the standard C++11 <atomic> is available.
- * ICU will use this when available,
- * otherwise will fall back to compiler or platform specific alternatives.
+ * Defines whether to use the standard C++11 <atomic> functions
+ * If false, ICU will fall back to compiler or platform specific alternatives.
+ * Note: support for these fall back options for atomics will be removed in a future version
+ * of ICU, and the use of C++ 11 atomics will be required.
* @internal
*/
#ifdef U_HAVE_STD_ATOMICS
/* Use the predefined value. */
-#elif U_CPLUSPLUS_VERSION < 11
- /* Not C++11, disable use of atomics */
-# define U_HAVE_STD_ATOMICS 0
-#elif __clang__ && __clang_major__==3 && __clang_minor__<=1
- /* Clang 3.1, has atomic variable initializer bug. */
-# define U_HAVE_STD_ATOMICS 0
-#else
- /* U_HAVE_ATOMIC is typically set by an autoconf test of #include <atomic> */
- /* Can be set manually, or left undefined, on platforms without autoconf. */
-# if defined(U_HAVE_ATOMIC) && U_HAVE_ATOMIC
-# define U_HAVE_STD_ATOMICS 1
-# else
-# define U_HAVE_STD_ATOMICS 0
-# endif
+#else
+# define U_HAVE_STD_ATOMICS 1
#endif
-
/**
* \def U_HAVE_CLANG_ATOMICS
* Defines whether Clang c11 style built-in atomics are available.
@@ -391,6 +379,32 @@ U_INTERNAL double U_EXPORT2 uprv_log(double d);
*/
U_INTERNAL double U_EXPORT2 uprv_round(double x);
+/**
+ * Adds the signed integers a and b, storing the result in res.
+ * Checks for signed integer overflow.
+ * Similar to the GCC/Clang extension __builtin_add_overflow
+ *
+ * @param a The first operand.
+ * @param b The second operand.
+ * @param res a + b
+ * @return true if overflow occurred; false if no overflow occurred.
+ * @internal
+ */
+U_INTERNAL UBool U_EXPORT2 uprv_add32_overflow(int32_t a, int32_t b, int32_t* res);
+
+/**
+ * Multiplies the signed integers a and b, storing the result in res.
+ * Checks for signed integer overflow.
+ * Similar to the GCC/Clang extension __builtin_mul_overflow
+ *
+ * @param a The first multiplicand.
+ * @param b The second multiplicand.
+ * @param res a * b
+ * @return true if overflow occurred; false if no overflow occurred.
+ * @internal
+ */
+U_INTERNAL UBool U_EXPORT2 uprv_mul32_overflow(int32_t a, int32_t b, int32_t* res);
+
#if 0
/**
* Returns the number of digits after the decimal point in a double number x.
@@ -560,6 +574,49 @@ U_INTERNAL void * U_EXPORT2 uprv_maximumPtr(void *base);
# endif
#endif
+
+#ifdef __cplusplus
+/**
+ * Pin a buffer capacity such that doing pointer arithmetic
+ * on the destination pointer and capacity cannot overflow.
+ *
+ * The pinned capacity must fulfill the following conditions (for positive capacities):
+ * - dest + capacity is a valid pointer according to the machine arcitecture (AS/400, 64-bit, etc.)
+ * - (dest + capacity) >= dest
+ * - The size (in bytes) of T[capacity] does not exceed 0x7fffffff
+ *
+ * @param dest the destination buffer pointer.
+ * @param capacity the requested buffer capacity, in units of type T.
+ * @return the pinned capacity.
+ * @internal
+ */
+template <typename T>
+inline int32_t pinCapacity(T *dest, int32_t capacity) {
+ if (capacity <= 0) { return capacity; }
+
+ uintptr_t destInt = (uintptr_t)dest;
+ uintptr_t maxInt;
+
+# if U_PLATFORM == U_PF_OS390 && !defined(_LP64)
+ // We have 31-bit pointers.
+ maxInt = 0x7fffffff;
+# elif U_PLATFORM == U_PF_OS400
+ maxInt = (uintptr_t)uprv_maximumPtr((void *)dest);
+# else
+ maxInt = destInt + 0x7fffffffu;
+ if (maxInt < destInt) {
+ // Less than 2GB to the end of the address space.
+ // Pin to that to prevent address overflow.
+ maxInt = (uintptr_t)-1;
+ }
+# endif
+
+ uintptr_t maxBytes = maxInt - destInt; // max. 2GB
+ int32_t maxCapacity = (int32_t)(maxBytes / sizeof(T));
+ return capacity <= maxCapacity ? capacity : maxCapacity;
+}
+#endif // __cplusplus
+
/* Dynamic Library Functions */
typedef void (UVoidFunction)(void);
diff --git a/Build/source/libs/icu/icu-src/source/common/rbbi.cpp b/Build/source/libs/icu/icu-src/source/common/rbbi.cpp
index 69f92d94c60..cb3766506f4 100644
--- a/Build/source/libs/icu/icu-src/source/common/rbbi.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/rbbi.cpp
@@ -18,6 +18,8 @@
#if !UCONFIG_NO_BREAK_ITERATION
+#include <cinttypes>
+
#include "unicode/rbbi.h"
#include "unicode/schriter.h"
#include "unicode/uchriter.h"
@@ -628,7 +630,7 @@ int32_t RuleBasedBreakIterator::preceding(int32_t offset) {
// or on a trail byte if the input is UTF-8.
utext_setNativeIndex(&fText, offset);
- int32_t adjustedOffset = utext_getNativeIndex(&fText);
+ int32_t adjustedOffset = static_cast<int32_t>(utext_getNativeIndex(&fText));
UErrorCode status = U_ZERO_ERROR;
fBreakCache->preceding(adjustedOffset, status);
@@ -651,11 +653,11 @@ UBool RuleBasedBreakIterator::isBoundary(int32_t offset) {
}
// Adjust offset to be on a code point boundary and not beyond the end of the text.
- // Note that isBoundary() is always be false for offsets that are not on code point boundaries.
+ // Note that isBoundary() is always false for offsets that are not on code point boundaries.
// But we still need the side effect of leaving iteration at the following boundary.
utext_setNativeIndex(&fText, offset);
- int32_t adjustedOffset = utext_getNativeIndex(&fText);
+ int32_t adjustedOffset = static_cast<int32_t>(utext_getNativeIndex(&fText));
bool result = false;
UErrorCode status = U_ZERO_ERROR;
@@ -848,7 +850,7 @@ int32_t RuleBasedBreakIterator::handleNext() {
#ifdef RBBI_DEBUG
if (gTrace) {
- RBBIDebugPrintf(" %4ld ", utext_getNativeIndex(&fText));
+ RBBIDebugPrintf(" %4" PRId64 " ", utext_getNativeIndex(&fText));
if (0x20<=c && c<0x7f) {
RBBIDebugPrintf("\"%c\" ", c);
} else {
@@ -937,26 +939,23 @@ int32_t RuleBasedBreakIterator::handleNext() {
}
-
//-----------------------------------------------------------------------------------
//
-// handlePrevious()
+// handleSafePrevious()
//
// Iterate backwards using the safe reverse rules.
-// The logic of this function is very similar to handleNext(), above.
+// The logic of this function is similar to handleNext(), but simpler
+// because the safe table does not require as many options.
//
//-----------------------------------------------------------------------------------
-int32_t RuleBasedBreakIterator::handlePrevious(int32_t fromPosition) {
+int32_t RuleBasedBreakIterator::handleSafePrevious(int32_t fromPosition) {
int32_t state;
uint16_t category = 0;
- RBBIRunMode mode;
RBBIStateTableRow *row;
UChar32 c;
- LookAheadResults lookAheadMatches;
int32_t result = 0;
- int32_t initialPosition = 0;
- const RBBIStateTable *stateTable = fData->fSafeRevTable;
+ const RBBIStateTable *stateTable = fData->fReverseTable;
UTEXT_SETNATIVEINDEX(&fText, fromPosition);
#ifdef RBBI_DEBUG
if (gTrace) {
@@ -969,54 +968,24 @@ int32_t RuleBasedBreakIterator::handlePrevious(int32_t fromPosition) {
return BreakIterator::DONE;
}
- // Set up the starting char.
- initialPosition = (int32_t)UTEXT_GETNATIVEINDEX(&fText);
- result = initialPosition;
- c = UTEXT_PREVIOUS32(&fText);
-
// Set the initial state for the state machine
+ c = UTEXT_PREVIOUS32(&fText);
state = START_STATE;
row = (RBBIStateTableRow *)
(stateTable->fTableData + (stateTable->fRowLen * state));
- category = 3;
- mode = RBBI_RUN;
- if (stateTable->fFlags & RBBI_BOF_REQUIRED) {
- category = 2;
- mode = RBBI_START;
- }
-
// loop until we reach the start of the text or transition to state 0
//
- for (;;) {
- if (c == U_SENTINEL) {
- // Reached end of input string.
- if (mode == RBBI_END) {
- // We have already run the loop one last time with the
- // character set to the psueudo {eof} value. Now it is time
- // to unconditionally bail out.
- break;
- }
- // Run the loop one last time with the fake end-of-input character category.
- mode = RBBI_END;
- category = 1;
- }
+ for (; c != U_SENTINEL; c = UTEXT_PREVIOUS32(&fText)) {
+ // look up the current character's character category, which tells us
+ // which column in the state table to look at.
+ // Note: the 16 in UTRIE_GET16 refers to the size of the data being returned,
+ // not the size of the character going in, which is a UChar32.
//
- // Get the char category. An incoming category of 1 or 2 means that
- // we are preset for doing the beginning or end of input, and
- // that we shouldn't get a category from an actual text input character.
- //
- if (mode == RBBI_RUN) {
- // look up the current character's character category, which tells us
- // which column in the state table to look at.
- // Note: the 16 in UTRIE_GET16 refers to the size of the data being returned,
- // not the size of the character going in, which is a UChar32.
- //
- // And off the dictionary flag bit. For reverse iteration it is not used.
- category = UTRIE2_GET16(fData->fTrie, c);
- category &= ~0x4000;
- }
+ // And off the dictionary flag bit. For reverse iteration it is not used.
+ category = UTRIE2_GET16(fData->fTrie, c);
+ category &= ~0x4000;
#ifdef RBBI_DEBUG
if (gTrace) {
@@ -1032,65 +1001,21 @@ int32_t RuleBasedBreakIterator::handlePrevious(int32_t fromPosition) {
// State Transition - move machine to its next state
//
-
// fNextState is a variable-length array.
U_ASSERT(category<fData->fHeader->fCatCount);
state = row->fNextState[category]; /*Not accessing beyond memory*/
row = (RBBIStateTableRow *)
(stateTable->fTableData + (stateTable->fRowLen * state));
- if (row->fAccepting == -1) {
- // Match found, common case.
- result = (int32_t)UTEXT_GETNATIVEINDEX(&fText);
- }
-
- int16_t completedRule = row->fAccepting;
- if (completedRule > 0) {
- // Lookahead match is completed.
- int32_t lookaheadResult = lookAheadMatches.getPosition(completedRule);
- if (lookaheadResult >= 0) {
- UTEXT_SETNATIVEINDEX(&fText, lookaheadResult);
- return lookaheadResult;
- }
- }
- int16_t rule = row->fLookAhead;
- if (rule != 0) {
- // At the position of a '/' in a look-ahead match. Record it.
- int32_t pos = (int32_t)UTEXT_GETNATIVEINDEX(&fText);
- lookAheadMatches.setPosition(rule, pos);
- }
-
if (state == STOP_STATE) {
// This is the normal exit from the lookup state machine.
- // We have advanced through the string until it is certain that no
- // longer match is possible, no matter what characters follow.
+ // Transistion to state zero means we have found a safe point.
break;
}
-
- // Move (backwards) to the next character to process.
- // If this is a beginning-of-input loop iteration, don't advance
- // the input position. The next iteration will be processing the
- // first real input character.
- if (mode == RBBI_RUN) {
- c = UTEXT_PREVIOUS32(&fText);
- } else {
- if (mode == RBBI_START) {
- mode = RBBI_RUN;
- }
- }
}
// The state machine is done. Check whether it found a match...
-
- // If the iterator failed to advance in the match engine, force it ahead by one.
- // (This really indicates a defect in the break rules. They should always match
- // at least one character.)
- if (result == initialPosition) {
- UTEXT_SETNATIVEINDEX(&fText, initialPosition);
- UTEXT_PREVIOUS32(&fText);
- result = (int32_t)UTEXT_GETNATIVEINDEX(&fText);
- }
-
+ result = (int32_t)UTEXT_GETNATIVEINDEX(&fText);
#ifdef RBBI_DEBUG
if (gTrace) {
RBBIDebugPrintf("result = %d\n\n", result);
@@ -1099,7 +1024,6 @@ int32_t RuleBasedBreakIterator::handlePrevious(int32_t fromPosition) {
return result;
}
-
//-------------------------------------------------------------------------------
//
// getRuleStatus() Return the break rule tag associated with the current
diff --git a/Build/source/libs/icu/icu-src/source/common/rbbi_cache.cpp b/Build/source/libs/icu/icu-src/source/common/rbbi_cache.cpp
index 44c66fbea36..519c6104989 100644
--- a/Build/source/libs/icu/icu-src/source/common/rbbi_cache.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/rbbi_cache.cpp
@@ -206,7 +206,7 @@ void RuleBasedBreakIterator::DictionaryCache::populateDictionary(int32_t startPo
* BreakCache implemetation
*/
-RuleBasedBreakIterator::BreakCache::BreakCache(RuleBasedBreakIterator *bi, UErrorCode &status) :
+RuleBasedBreakIterator::BreakCache::BreakCache(RuleBasedBreakIterator *bi, UErrorCode &status) :
fBI(bi), fSideBuffer(status) {
reset();
}
@@ -299,7 +299,7 @@ void RuleBasedBreakIterator::BreakCache::previous(UErrorCode &status) {
fBI->fPosition = fTextIdx;
fBI->fRuleStatusIndex = fStatuses[fBufIdx];
return;
-}
+}
UBool RuleBasedBreakIterator::BreakCache::seek(int32_t pos) {
@@ -317,7 +317,7 @@ UBool RuleBasedBreakIterator::BreakCache::seek(int32_t pos) {
fTextIdx = fBoundaries[fBufIdx];
return TRUE;
}
-
+
int32_t min = fStartBufIdx;
int32_t max = fEndBufIdx;
while (min != max) {
@@ -354,16 +354,33 @@ UBool RuleBasedBreakIterator::BreakCache::populateNear(int32_t position, UErrorC
if ((position < fBoundaries[fStartBufIdx] - 15) || position > (fBoundaries[fEndBufIdx] + 15)) {
int32_t aBoundary = 0;
int32_t ruleStatusIndex = 0;
- // TODO: check for position == length of text. Although may still need to back up to get rule status.
if (position > 20) {
- int32_t backupPos = fBI->handlePrevious(position);
- fBI->fPosition = backupPos;
- aBoundary = fBI->handleNext(); // Ignore dictionary, just finding a rule based boundary.
- ruleStatusIndex = fBI->fRuleStatusIndex;
+ int32_t backupPos = fBI->handleSafePrevious(position);
+
+ if (backupPos > 0) {
+ // Advance to the boundary following the backup position.
+ // There is a complication: the safe reverse rules identify pairs of code points
+ // that are safe. If advancing from the safe point moves forwards by less than
+ // two code points, we need to advance one more time to ensure that the boundary
+ // is good, including a correct rules status value.
+ //
+ fBI->fPosition = backupPos;
+ aBoundary = fBI->handleNext();
+ if (aBoundary <= backupPos + 4) {
+ // +4 is a quick test for possibly having advanced only one codepoint.
+ // Four being the length of the longest potential code point, a supplementary in UTF-8
+ utext_setNativeIndex(&fBI->fText, aBoundary);
+ if (backupPos == utext_getPreviousNativeIndex(&fBI->fText)) {
+ // The initial handleNext() only advanced by a single code point. Go again.
+ aBoundary = fBI->handleNext(); // Safe rules identify safe pairs.
+ }
+ }
+ ruleStatusIndex = fBI->fRuleStatusIndex;
+ }
}
- reset(aBoundary, ruleStatusIndex); // Reset cache to hold aBoundary as a single starting point.
+ reset(aBoundary, ruleStatusIndex); // Reset cache to hold aBoundary as a single starting point.
}
-
+
// Fill in boundaries between existing cache content and the new requested position.
if (fBoundaries[fEndBufIdx] < position) {
@@ -485,16 +502,30 @@ UBool RuleBasedBreakIterator::BreakCache::populatePreceding(UErrorCode &status)
if (backupPosition <= 0) {
backupPosition = 0;
} else {
- backupPosition = fBI->handlePrevious(backupPosition);
+ backupPosition = fBI->handleSafePrevious(backupPosition);
}
if (backupPosition == UBRK_DONE || backupPosition == 0) {
position = 0;
positionStatusIdx = 0;
} else {
- fBI->fPosition = backupPosition; // TODO: pass starting position in a clearer way.
+ // Advance to the boundary following the backup position.
+ // There is a complication: the safe reverse rules identify pairs of code points
+ // that are safe. If advancing from the safe point moves forwards by less than
+ // two code points, we need to advance one more time to ensure that the boundary
+ // is good, including a correct rules status value.
+ //
+ fBI->fPosition = backupPosition;
position = fBI->handleNext();
+ if (position <= backupPosition + 4) {
+ // +4 is a quick test for possibly having advanced only one codepoint.
+ // Four being the length of the longest potential code point, a supplementary in UTF-8
+ utext_setNativeIndex(&fBI->fText, position);
+ if (backupPosition == utext_getPreviousNativeIndex(&fBI->fText)) {
+ // The initial handleNext() only advanced by a single code point. Go again.
+ position = fBI->handleNext(); // Safe rules identify safe pairs.
+ }
+ };
positionStatusIdx = fBI->fRuleStatusIndex;
-
}
} while (position >= fromPosition);
@@ -533,7 +564,7 @@ UBool RuleBasedBreakIterator::BreakCache::populatePreceding(UErrorCode &status)
}
U_ASSERT(position==dictSegEndPosition || position>=fromPosition);
}
-
+
if (!segmentHandledByDictionary && position < fromPosition) {
fSideBuffer.addElement(position, status);
fSideBuffer.addElement(positionStatusIdx, status);
@@ -559,7 +590,7 @@ UBool RuleBasedBreakIterator::BreakCache::populatePreceding(UErrorCode &status)
break;
}
}
-
+
return success;
}
@@ -572,7 +603,7 @@ void RuleBasedBreakIterator::BreakCache::addFollowing(int32_t position, int32_t
fStartBufIdx = modChunkSize(fStartBufIdx + 6); // TODO: experiment. Probably revert to 1.
}
fBoundaries[nextIdx] = position;
- fStatuses[nextIdx] = ruleStatusIdx;
+ fStatuses[nextIdx] = static_cast<uint16_t>(ruleStatusIdx);
fEndBufIdx = nextIdx;
if (update == UpdateCachePosition) {
// Set current position to the newly added boundary.
@@ -600,7 +631,7 @@ bool RuleBasedBreakIterator::BreakCache::addPreceding(int32_t position, int32_t
fEndBufIdx = modChunkSize(fEndBufIdx - 1);
}
fBoundaries[nextIdx] = position;
- fStatuses[nextIdx] = ruleStatusIdx;
+ fStatuses[nextIdx] = static_cast<uint16_t>(ruleStatusIdx);
fStartBufIdx = nextIdx;
if (update == UpdateCachePosition) {
fBufIdx = nextIdx;
diff --git a/Build/source/libs/icu/icu-src/source/common/rbbidata.cpp b/Build/source/libs/icu/icu-src/source/common/rbbidata.cpp
index 5b00e950622..1d4c9e5895f 100644
--- a/Build/source/libs/icu/icu-src/source/common/rbbidata.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/rbbidata.cpp
@@ -81,8 +81,6 @@ void RBBIDataWrapper::init0() {
fHeader = NULL;
fForwardTable = NULL;
fReverseTable = NULL;
- fSafeFwdTable = NULL;
- fSafeRevTable = NULL;
fRuleSource = NULL;
fRuleStatusTable = NULL;
fTrie = NULL;
@@ -111,21 +109,6 @@ void RBBIDataWrapper::init(const RBBIDataHeader *data, UErrorCode &status) {
if (data->fRTableLen != 0) {
fReverseTable = (RBBIStateTable *)((char *)data + fHeader->fRTable);
}
- if (data->fSFTableLen != 0) {
- fSafeFwdTable = (RBBIStateTable *)((char *)data + fHeader->fSFTable);
- }
- if (data->fSRTableLen != 0) {
- fSafeRevTable = (RBBIStateTable *)((char *)data + fHeader->fSRTable);
- }
-
- // Rule Compatibility Hacks
- // If a rule set includes reverse rules but does not explicitly include safe reverse rules,
- // the reverse rules are to be treated as safe reverse rules.
-
- if (fSafeRevTable == NULL && fReverseTable != NULL) {
- fSafeRevTable = fReverseTable;
- fReverseTable = NULL;
- }
fTrie = utrie2_openFromSerialized(UTRIE2_16_VALUE_BITS,
(uint8_t *)data + fHeader->fTrie,
@@ -277,8 +260,6 @@ void RBBIDataWrapper::printData() {
printTable("Forward State Transition Table", fForwardTable);
printTable("Reverse State Transition Table", fReverseTable);
- printTable("Safe Forward State Transition Table", fSafeFwdTable);
- printTable("Safe Reverse State Transition Table", fSafeRevTable);
RBBIDebugPrintf("\nOrignal Rules source:\n");
for (int32_t c=0; fRuleSource[c] != 0; c++) {
@@ -418,28 +399,6 @@ ubrk_swap(const UDataSwapper *ds, const void *inData, int32_t length, void *outD
outBytes+tableStartOffset+topSize, status);
}
- // Safe Forward state table. Same layout as forward table, above.
- tableStartOffset = ds->readUInt32(rbbiDH->fSFTable);
- tableLength = ds->readUInt32(rbbiDH->fSFTableLen);
-
- if (tableLength > 0) {
- ds->swapArray32(ds, inBytes+tableStartOffset, topSize,
- outBytes+tableStartOffset, status);
- ds->swapArray16(ds, inBytes+tableStartOffset+topSize, tableLength-topSize,
- outBytes+tableStartOffset+topSize, status);
- }
-
- // Safe Reverse state table. Same layout as forward table, above.
- tableStartOffset = ds->readUInt32(rbbiDH->fSRTable);
- tableLength = ds->readUInt32(rbbiDH->fSRTableLen);
-
- if (tableLength > 0) {
- ds->swapArray32(ds, inBytes+tableStartOffset, topSize,
- outBytes+tableStartOffset, status);
- ds->swapArray16(ds, inBytes+tableStartOffset+topSize, tableLength-topSize,
- outBytes+tableStartOffset+topSize, status);
- }
-
// Trie table for character categories
utrie2_swap(ds, inBytes+ds->readUInt32(rbbiDH->fTrie), ds->readUInt32(rbbiDH->fTrieLen),
outBytes+ds->readUInt32(rbbiDH->fTrie), status);
diff --git a/Build/source/libs/icu/icu-src/source/common/rbbidata.h b/Build/source/libs/icu/icu-src/source/common/rbbidata.h
index 1244a118dc5..b7de6ce073c 100644
--- a/Build/source/libs/icu/icu-src/source/common/rbbidata.h
+++ b/Build/source/libs/icu/icu-src/source/common/rbbidata.h
@@ -58,7 +58,7 @@ ubrk_swap(const UDataSwapper *ds,
U_NAMESPACE_BEGIN
// The current RBBI data format version.
-static const uint8_t RBBI_DATA_FORMAT_VERSION[] = {4, 0, 0, 0};
+static const uint8_t RBBI_DATA_FORMAT_VERSION[] = {5, 0, 0, 0};
/*
* The following structs map exactly onto the raw data from ICU common data file.
@@ -81,10 +81,6 @@ struct RBBIDataHeader {
uint32_t fFTableLen;
uint32_t fRTable; /* Offset to the reverse state transition table. */
uint32_t fRTableLen;
- uint32_t fSFTable; /* safe point forward transition table */
- uint32_t fSFTableLen;
- uint32_t fSRTable; /* safe point reverse transition table */
- uint32_t fSRTableLen;
uint32_t fTrie; /* Offset to Trie data for character categories */
uint32_t fTrieLen;
uint32_t fRuleSource; /* Offset to the source for for the break */
@@ -174,8 +170,6 @@ public:
const RBBIDataHeader *fHeader;
const RBBIStateTable *fForwardTable;
const RBBIStateTable *fReverseTable;
- const RBBIStateTable *fSafeFwdTable;
- const RBBIStateTable *fSafeRevTable;
const UChar *fRuleSource;
const int32_t *fRuleStatusTable;
diff --git a/Build/source/libs/icu/icu-src/source/common/rbbirb.cpp b/Build/source/libs/icu/icu-src/source/common/rbbirb.cpp
index 61e596d6ed7..08c577696c2 100644
--- a/Build/source/libs/icu/icu-src/source/common/rbbirb.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/rbbirb.cpp
@@ -62,10 +62,7 @@ RBBIRuleBuilder::RBBIRuleBuilder(const UnicodeString &rules,
fSafeFwdTree = NULL;
fSafeRevTree = NULL;
fDefaultTree = &fForwardTree;
- fForwardTables = NULL;
- fReverseTables = NULL;
- fSafeFwdTables = NULL;
- fSafeRevTables = NULL;
+ fForwardTable = NULL;
fRuleStatusVals = NULL;
fChainRules = FALSE;
fLBCMNoChain = FALSE;
@@ -114,11 +111,7 @@ RBBIRuleBuilder::~RBBIRuleBuilder() {
delete fUSetNodes;
delete fSetBuilder;
- delete fForwardTables;
- delete fReverseTables;
- delete fSafeFwdTables;
- delete fSafeRevTables;
-
+ delete fForwardTable;
delete fForwardTree;
delete fReverseTree;
delete fSafeFwdTree;
@@ -157,21 +150,15 @@ RBBIDataHeader *RBBIRuleBuilder::flattenData() {
// without the padding.
//
int32_t headerSize = align8(sizeof(RBBIDataHeader));
- int32_t forwardTableSize = align8(fForwardTables->getTableSize());
- int32_t reverseTableSize = align8(fReverseTables->getTableSize());
- int32_t safeFwdTableSize = align8(fSafeFwdTables->getTableSize());
- int32_t safeRevTableSize = align8(fSafeRevTables->getTableSize());
+ int32_t forwardTableSize = align8(fForwardTable->getTableSize());
+ int32_t reverseTableSize = align8(fForwardTable->getSafeTableSize());
int32_t trieSize = align8(fSetBuilder->getTrieSize());
int32_t statusTableSize = align8(fRuleStatusVals->size() * sizeof(int32_t));
int32_t rulesSize = align8((fStrippedRules.length()+1) * sizeof(UChar));
- (void)safeFwdTableSize;
-
int32_t totalSize = headerSize
- + forwardTableSize
- + /* reverseTableSize */ 0
- + /* safeFwdTableSize */ 0
- + (safeRevTableSize ? safeRevTableSize : reverseTableSize)
+ + forwardTableSize
+ + reverseTableSize
+ statusTableSize + trieSize + rulesSize;
RBBIDataHeader *data = (RBBIDataHeader *)uprv_malloc(totalSize);
@@ -190,38 +177,13 @@ RBBIDataHeader *RBBIRuleBuilder::flattenData() {
data->fLength = totalSize;
data->fCatCount = fSetBuilder->getNumCharCategories();
- // Only save the forward table and the safe reverse table,
- // because these are the only ones used at run-time.
- //
- // For the moment, we still build the other tables if they are present in the rule source files,
- // for backwards compatibility. Old rule files need to work, and this is the simplest approach.
- //
- // Additional backwards compatibility consideration: if no safe rules are provided, consider the
- // reverse rules to actually be the safe reverse rules.
-
data->fFTable = headerSize;
data->fFTableLen = forwardTableSize;
- // Do not save Reverse Table.
- data->fRTable = data->fFTable + forwardTableSize;
- data->fRTableLen = 0;
-
- // Do not save the Safe Forward table.
- data->fSFTable = data->fRTable + 0;
- data->fSFTableLen = 0;
-
- data->fSRTable = data->fSFTable + 0;
- if (safeRevTableSize > 0) {
- data->fSRTableLen = safeRevTableSize;
- } else if (reverseTableSize > 0) {
- data->fSRTableLen = reverseTableSize;
- } else {
- U_ASSERT(FALSE); // Rule build should have failed for lack of a reverse table
- // before reaching this point.
- }
-
+ data->fRTable = data->fFTable + data->fFTableLen;
+ data->fRTableLen = reverseTableSize;
- data->fTrie = data->fSRTable + data->fSRTableLen;
+ data->fTrie = data->fRTable + data->fRTableLen;
data->fTrieLen = fSetBuilder->getTrieSize();
data->fStatusTable = data->fTrie + trieSize;
data->fStatusTableLen= statusTableSize;
@@ -230,15 +192,8 @@ RBBIDataHeader *RBBIRuleBuilder::flattenData() {
uprv_memset(data->fReserved, 0, sizeof(data->fReserved));
- fForwardTables->exportTable((uint8_t *)data + data->fFTable);
- // fReverseTables->exportTable((uint8_t *)data + data->fRTable);
- // fSafeFwdTables->exportTable((uint8_t *)data + data->fSFTable);
- if (safeRevTableSize > 0) {
- fSafeRevTables->exportTable((uint8_t *)data + data->fSRTable);
- } else {
- fReverseTables->exportTable((uint8_t *)data + data->fSRTable);
- }
-
+ fForwardTable->exportTable((uint8_t *)data + data->fFTable);
+ fForwardTable->exportSafeTable((uint8_t *)data + data->fRTable);
fSetBuilder->serializeTrie ((uint8_t *)data + data->fTrie);
int32_t *ruleStatusTable = (int32_t *)((uint8_t *)data + data->fStatusTable);
@@ -252,10 +207,6 @@ RBBIDataHeader *RBBIRuleBuilder::flattenData() {
}
-
-
-
-
//----------------------------------------------------------------------------------------
//
// createRuleBasedBreakIterator construct from source rules that are passed in
@@ -267,8 +218,6 @@ RBBIRuleBuilder::createRuleBasedBreakIterator( const UnicodeString &rules,
UParseError *parseError,
UErrorCode &status)
{
- // status checked below
-
//
// Read the input rules, generate a parse tree, symbol table,
// and list of all Unicode Sets referenced by the rules.
@@ -277,7 +226,38 @@ RBBIRuleBuilder::createRuleBasedBreakIterator( const UnicodeString &rules,
if (U_FAILURE(status)) { // status checked here bcos build below doesn't
return NULL;
}
- builder.fScanner->parse();
+
+ RBBIDataHeader *data = builder.build(status);
+
+ if (U_FAILURE(status)) {
+ return nullptr;
+ }
+
+ //
+ // Create a break iterator from the compiled rules.
+ // (Identical to creation from stored pre-compiled rules)
+ //
+ // status is checked after init in construction.
+ RuleBasedBreakIterator *This = new RuleBasedBreakIterator(data, status);
+ if (U_FAILURE(status)) {
+ delete This;
+ This = NULL;
+ }
+ else if(This == NULL) { // test for NULL
+ status = U_MEMORY_ALLOCATION_ERROR;
+ }
+ return This;
+}
+
+RBBIDataHeader *RBBIRuleBuilder::build(UErrorCode &status) {
+ if (U_FAILURE(status)) {
+ return nullptr;
+ }
+
+ fScanner->parse();
+ if (U_FAILURE(status)) {
+ return nullptr;
+ }
//
// UnicodeSet processing.
@@ -285,95 +265,62 @@ RBBIRuleBuilder::createRuleBasedBreakIterator( const UnicodeString &rules,
// Generate the mapping tables (TRIE) from input code points to
// the character categories.
//
- builder.fSetBuilder->buildRanges();
-
+ fSetBuilder->buildRanges();
//
// Generate the DFA state transition table.
//
- builder.fForwardTables = new RBBITableBuilder(&builder, &builder.fForwardTree);
- builder.fReverseTables = new RBBITableBuilder(&builder, &builder.fReverseTree);
- builder.fSafeFwdTables = new RBBITableBuilder(&builder, &builder.fSafeFwdTree);
- builder.fSafeRevTables = new RBBITableBuilder(&builder, &builder.fSafeRevTree);
- if (builder.fForwardTables == NULL || builder.fReverseTables == NULL ||
- builder.fSafeFwdTables == NULL || builder.fSafeRevTables == NULL)
- {
+ fForwardTable = new RBBITableBuilder(this, &fForwardTree, status);
+ if (fForwardTable == nullptr) {
status = U_MEMORY_ALLOCATION_ERROR;
- delete builder.fForwardTables; builder.fForwardTables = NULL;
- delete builder.fReverseTables; builder.fReverseTables = NULL;
- delete builder.fSafeFwdTables; builder.fSafeFwdTables = NULL;
- delete builder.fSafeRevTables; builder.fSafeRevTables = NULL;
- return NULL;
+ return nullptr;
}
- builder.fForwardTables->build();
- builder.fReverseTables->build();
- builder.fSafeFwdTables->build();
- builder.fSafeRevTables->build();
+ fForwardTable->buildForwardTable();
+ optimizeTables();
+ fForwardTable->buildSafeReverseTable(status);
+
#ifdef RBBI_DEBUG
- if (builder.fDebugEnv && uprv_strstr(builder.fDebugEnv, "states")) {
- builder.fForwardTables->printRuleStatusTable();
+ if (fDebugEnv && uprv_strstr(fDebugEnv, "states")) {
+ fForwardTable->printStates();
+ fForwardTable->printRuleStatusTable();
+ fForwardTable->printReverseTable();
}
#endif
- builder.optimizeTables();
- builder.fSetBuilder->buildTrie();
-
-
+ fSetBuilder->buildTrie();
//
// Package up the compiled data into a memory image
// in the run-time format.
//
- RBBIDataHeader *data = builder.flattenData(); // returns NULL if error
- if (U_FAILURE(*builder.fStatus)) {
- return NULL;
- }
-
-
- //
- // Clean up the compiler related stuff
- //
-
-
- //
- // Create a break iterator from the compiled rules.
- // (Identical to creation from stored pre-compiled rules)
- //
- // status is checked after init in construction.
- RuleBasedBreakIterator *This = new RuleBasedBreakIterator(data, status);
+ RBBIDataHeader *data = flattenData(); // returns NULL if error
if (U_FAILURE(status)) {
- delete This;
- This = NULL;
- }
- else if(This == NULL) { // test for NULL
- status = U_MEMORY_ALLOCATION_ERROR;
+ return nullptr;
}
- return This;
+ return data;
}
void RBBIRuleBuilder::optimizeTables() {
- int32_t leftClass;
- int32_t rightClass;
-
- leftClass = 3;
- rightClass = 0;
- while (fForwardTables->findDuplCharClassFrom(leftClass, rightClass)) {
- fSetBuilder->mergeCategories(leftClass, rightClass);
- fForwardTables->removeColumn(rightClass);
- fReverseTables->removeColumn(rightClass);
- fSafeFwdTables->removeColumn(rightClass);
- fSafeRevTables->removeColumn(rightClass);
- }
-
- fForwardTables->removeDuplicateStates();
- fReverseTables->removeDuplicateStates();
- fSafeFwdTables->removeDuplicateStates();
- fSafeRevTables->removeDuplicateStates();
-
-
+ bool didSomething;
+ do {
+ didSomething = false;
+
+ // Begin looking for duplicates with char class 3.
+ // Classes 0, 1 and 2 are special; they are unused, {bof} and {eof} respectively,
+ // and should not have other categories merged into them.
+ IntPair duplPair = {3, 0};
+ while (fForwardTable->findDuplCharClassFrom(&duplPair)) {
+ fSetBuilder->mergeCategories(duplPair);
+ fForwardTable->removeColumn(duplPair.second);
+ didSomething = true;
+ }
+ while (fForwardTable->removeDuplicateStates() > 0) {
+ didSomething = true;
+ }
+ } while (didSomething);
}
U_NAMESPACE_END
diff --git a/Build/source/libs/icu/icu-src/source/common/rbbirb.h b/Build/source/libs/icu/icu-src/source/common/rbbirb.h
index f890cf686e3..037c1dc2ce8 100644
--- a/Build/source/libs/icu/icu-src/source/common/rbbirb.h
+++ b/Build/source/libs/icu/icu-src/source/common/rbbirb.h
@@ -18,6 +18,8 @@
#if !UCONFIG_NO_BREAK_ITERATION
+#include <utility>
+
#include "unicode/uobject.h"
#include "unicode/rbbi.h"
#include "unicode/uniset.h"
@@ -25,8 +27,7 @@
#include "uhash.h"
#include "uvector.h"
#include "unicode/symtable.h"// For UnicodeSet parsing, is the interface that
- // looks up references to $variables within a set.
-
+ // looks up references to $variables within a set.
U_NAMESPACE_BEGIN
@@ -123,11 +124,17 @@ public:
RBBIRuleBuilder(const UnicodeString &rules,
UParseError *parseErr,
UErrorCode &status
- );
+ );
virtual ~RBBIRuleBuilder();
/**
+ * Build the state tables and char class Trie from the source rules.
+ */
+ RBBIDataHeader *build(UErrorCode &status);
+
+
+ /**
* Fold together redundant character classes (table columns) and
* redundant states (table rows). Done after initial table generation,
* before serializing the result.
@@ -162,10 +169,7 @@ public:
RBBISetBuilder *fSetBuilder; // Set and Character Category builder.
UVector *fUSetNodes; // Vector of all uset nodes.
- RBBITableBuilder *fForwardTables; // State transition tables
- RBBITableBuilder *fReverseTables;
- RBBITableBuilder *fSafeFwdTables;
- RBBITableBuilder *fSafeRevTables;
+ RBBITableBuilder *fForwardTable; // State transition table, build time form.
UVector *fRuleStatusVals; // The values that can be returned
// from getRuleStatus().
@@ -200,6 +204,11 @@ struct RBBISetTableEl {
RBBINode *val;
};
+/**
+ * A pair of ints, used to bundle pairs of states or pairs of character classes.
+ */
+typedef std::pair<int32_t, int32_t> IntPair;
+
//----------------------------------------------------------------------------
//
diff --git a/Build/source/libs/icu/icu-src/source/common/rbbiscan.cpp b/Build/source/libs/icu/icu-src/source/common/rbbiscan.cpp
index 60f3d197c29..f536ab5d398 100644
--- a/Build/source/libs/icu/icu-src/source/common/rbbiscan.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/rbbiscan.cpp
@@ -372,7 +372,7 @@ UBool RBBIRuleScanner::doParseActions(int32_t action)
// (forward, reverse, safe_forward, safe_reverse)
// OR this rule into the appropriate group of them.
//
- RBBINode **destRules = (fReverseRule? &fRB->fReverseTree : fRB->fDefaultTree);
+ RBBINode **destRules = (fReverseRule? &fRB->fSafeRevTree : fRB->fDefaultTree);
if (*destRules != NULL) {
// This is not the first rule encounted.
@@ -380,7 +380,7 @@ UBool RBBIRuleScanner::doParseActions(int32_t action)
// with the current rule expression (on the Node Stack)
// with the resulting OR expression going to *destRules
//
- RBBINode *thisRule = fNodeStack[fNodeStackPtr];
+ thisRule = fNodeStack[fNodeStackPtr];
RBBINode *prevRules = *destRules;
RBBINode *orNode = pushNewNode(RBBINode::opOr);
if (U_FAILURE(*fRB->fStatus)) {
@@ -1123,22 +1123,6 @@ void RBBIRuleScanner::parse() {
}
//
- // If there were NO user specified reverse rules, set up the equivalent of ".*;"
- //
- if (fRB->fReverseTree == NULL) {
- fRB->fReverseTree = pushNewNode(RBBINode::opStar);
- RBBINode *operand = pushNewNode(RBBINode::setRef);
- if (U_FAILURE(*fRB->fStatus)) {
- return;
- }
- findSetFor(UnicodeString(TRUE, kAny, 3), operand);
- fRB->fReverseTree->fLeftChild = operand;
- operand->fParent = fRB->fReverseTree;
- fNodeStackPtr -= 2;
- }
-
-
- //
// Parsing of the input RBBI rules is complete.
// We now have a parse tree for the rule expressions
// and a list of all UnicodeSets that are referenced.
diff --git a/Build/source/libs/icu/icu-src/source/common/rbbisetb.cpp b/Build/source/libs/icu/icu-src/source/common/rbbisetb.cpp
index 108d127d45f..36e2e07e9c6 100644
--- a/Build/source/libs/icu/icu-src/source/common/rbbisetb.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/rbbisetb.cpp
@@ -270,15 +270,15 @@ void RBBISetBuilder::buildTrie() {
}
-void RBBISetBuilder::mergeCategories(int32_t left, int32_t right) {
- U_ASSERT(left >= 1);
- U_ASSERT(right > left);
+void RBBISetBuilder::mergeCategories(IntPair categories) {
+ U_ASSERT(categories.first >= 1);
+ U_ASSERT(categories.second > categories.first);
for (RangeDescriptor *rd = fRangeList; rd != nullptr; rd = rd->fNext) {
int32_t rangeNum = rd->fNum & ~DICT_BIT;
int32_t rangeDict = rd->fNum & DICT_BIT;
- if (rangeNum == right) {
- rd->fNum = left | rangeDict;
- } else if (rangeNum > right) {
+ if (rangeNum == categories.second) {
+ rd->fNum = categories.first | rangeDict;
+ } else if (rangeNum > categories.second) {
rd->fNum--;
}
}
diff --git a/Build/source/libs/icu/icu-src/source/common/rbbisetb.h b/Build/source/libs/icu/icu-src/source/common/rbbisetb.h
index a7a91b3b375..ed6a76b1214 100644
--- a/Build/source/libs/icu/icu-src/source/common/rbbisetb.h
+++ b/Build/source/libs/icu/icu-src/source/common/rbbisetb.h
@@ -94,10 +94,12 @@ public:
UChar32 getFirstChar(int32_t val) const;
UBool sawBOF() const; // Indicate whether any references to the {bof} pseudo
// character were encountered.
- /** merge two character categories that have been identified as having equivalent behavior.
- * The ranges belonging to the right category (table column) will be added to the left.
+ /**
+ * Merge two character categories that have been identified as having equivalent behavior.
+ * The ranges belonging to the second category (table column) will be added to the first.
+ * @param categories the pair of categories to be merged.
*/
- void mergeCategories(int32_t left, int32_t right);
+ void mergeCategories(IntPair categories);
static constexpr int32_t DICT_BIT = 0x4000;
diff --git a/Build/source/libs/icu/icu-src/source/common/rbbitblb.cpp b/Build/source/libs/icu/icu-src/source/common/rbbitblb.cpp
index 58168922d4b..a20b51777cd 100644
--- a/Build/source/libs/icu/icu-src/source/common/rbbitblb.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/rbbitblb.cpp
@@ -27,21 +27,19 @@
U_NAMESPACE_BEGIN
-RBBITableBuilder::RBBITableBuilder(RBBIRuleBuilder *rb, RBBINode **rootNode) :
- fTree(*rootNode) {
- fRB = rb;
- fStatus = fRB->fStatus;
- UErrorCode status = U_ZERO_ERROR;
- fDStates = new UVector(status);
- if (U_FAILURE(*fStatus)) {
- return;
- }
+RBBITableBuilder::RBBITableBuilder(RBBIRuleBuilder *rb, RBBINode **rootNode, UErrorCode &status) :
+ fRB(rb),
+ fTree(*rootNode),
+ fStatus(&status),
+ fDStates(nullptr),
+ fSafeTable(nullptr) {
if (U_FAILURE(status)) {
- *fStatus = status;
return;
}
- if (fDStates == NULL) {
- *fStatus = U_MEMORY_ALLOCATION_ERROR;;
+ // fDStates is UVector<RBBIStateDescriptor *>
+ fDStates = new UVector(status);
+ if (U_SUCCESS(status) && fDStates == nullptr ) {
+ status = U_MEMORY_ALLOCATION_ERROR;
}
}
@@ -52,17 +50,18 @@ RBBITableBuilder::~RBBITableBuilder() {
for (i=0; i<fDStates->size(); i++) {
delete (RBBIStateDescriptor *)fDStates->elementAt(i);
}
- delete fDStates;
+ delete fDStates;
+ delete fSafeTable;
}
//-----------------------------------------------------------------------------
//
-// RBBITableBuilder::build - This is the main function for building the DFA state transtion
-// table from the RBBI rules parse tree.
+// RBBITableBuilder::buildForwardTable - This is the main function for building
+// the DFA state transition table from the RBBI rules parse tree.
//
//-----------------------------------------------------------------------------
-void RBBITableBuilder::build() {
+void RBBITableBuilder::buildForwardTable() {
if (U_FAILURE(*fStatus)) {
return;
@@ -189,8 +188,6 @@ void RBBITableBuilder::build() {
// for all tables. Merge the ones from this table into the global set.
//
mergeRuleStatusVals();
-
- if (fRB->fDebugEnv && uprv_strstr(fRB->fDebugEnv, "states")) {printStates();};
}
@@ -431,8 +428,8 @@ void RBBITableBuilder::calcChainedFollowPos(RBBINode *tree) {
addRuleRootNodes(&ruleRootNodes, tree);
UVector matchStartNodes(*fStatus);
- for (int i=0; i<ruleRootNodes.size(); ++i) {
- RBBINode *node = static_cast<RBBINode *>(ruleRootNodes.elementAt(i));
+ for (int j=0; j<ruleRootNodes.size(); ++j) {
+ RBBINode *node = static_cast<RBBINode *>(ruleRootNodes.elementAt(j));
if (node->fChainIn) {
setAdd(&matchStartNodes, node->fFirstPosSet);
}
@@ -1081,25 +1078,26 @@ void RBBITableBuilder::printPosSets(RBBINode *n) {
//
// findDuplCharClassFrom()
//
-bool RBBITableBuilder::findDuplCharClassFrom(int32_t &baseCategory, int32_t &duplCategory) {
+bool RBBITableBuilder::findDuplCharClassFrom(IntPair *categories) {
int32_t numStates = fDStates->size();
int32_t numCols = fRB->fSetBuilder->getNumCharCategories();
- uint16_t table_base;
- uint16_t table_dupl;
- for (; baseCategory < numCols-1; ++baseCategory) {
- for (duplCategory=baseCategory+1; duplCategory < numCols; ++duplCategory) {
- for (int32_t state=0; state<numStates; state++) {
- RBBIStateDescriptor *sd = (RBBIStateDescriptor *)fDStates->elementAt(state);
- table_base = (uint16_t)sd->fDtran->elementAti(baseCategory);
- table_dupl = (uint16_t)sd->fDtran->elementAti(duplCategory);
- if (table_base != table_dupl) {
- break;
- }
- }
- if (table_base == table_dupl) {
- return true;
- }
+ for (; categories->first < numCols-1; categories->first++) {
+ for (categories->second=categories->first+1; categories->second < numCols; categories->second++) {
+ // Initialized to different values to prevent returning true if numStates = 0 (implies no duplicates).
+ uint16_t table_base = 0;
+ uint16_t table_dupl = 1;
+ for (int32_t state=0; state<numStates; state++) {
+ RBBIStateDescriptor *sd = (RBBIStateDescriptor *)fDStates->elementAt(state);
+ table_base = (uint16_t)sd->fDtran->elementAti(categories->first);
+ table_dupl = (uint16_t)sd->fDtran->elementAti(categories->second);
+ if (table_base != table_dupl) {
+ break;
+ }
+ }
+ if (table_base == table_dupl) {
+ return true;
+ }
}
}
return false;
@@ -1121,14 +1119,14 @@ void RBBITableBuilder::removeColumn(int32_t column) {
/*
* findDuplicateState
*/
-bool RBBITableBuilder::findDuplicateState(int32_t &firstState, int32_t &duplState) {
+bool RBBITableBuilder::findDuplicateState(IntPair *states) {
int32_t numStates = fDStates->size();
int32_t numCols = fRB->fSetBuilder->getNumCharCategories();
- for (; firstState<numStates-1; ++firstState) {
- RBBIStateDescriptor *firstSD = (RBBIStateDescriptor *)fDStates->elementAt(firstState);
- for (duplState=firstState+1; duplState<numStates; ++duplState) {
- RBBIStateDescriptor *duplSD = (RBBIStateDescriptor *)fDStates->elementAt(duplState);
+ for (; states->first<numStates-1; states->first++) {
+ RBBIStateDescriptor *firstSD = (RBBIStateDescriptor *)fDStates->elementAt(states->first);
+ for (states->second=states->first+1; states->second<numStates; states->second++) {
+ RBBIStateDescriptor *duplSD = (RBBIStateDescriptor *)fDStates->elementAt(states->second);
if (firstSD->fAccepting != duplSD->fAccepting ||
firstSD->fLookAhead != duplSD->fLookAhead ||
firstSD->fTagsIdx != duplSD->fTagsIdx) {
@@ -1139,8 +1137,36 @@ bool RBBITableBuilder::findDuplicateState(int32_t &firstState, int32_t &duplStat
int32_t firstVal = firstSD->fDtran->elementAti(col);
int32_t duplVal = duplSD->fDtran->elementAti(col);
if (!((firstVal == duplVal) ||
- ((firstVal == firstState || firstVal == duplState) &&
- (duplVal == firstState || duplVal == duplState)))) {
+ ((firstVal == states->first || firstVal == states->second) &&
+ (duplVal == states->first || duplVal == states->second)))) {
+ rowsMatch = false;
+ break;
+ }
+ }
+ if (rowsMatch) {
+ return true;
+ }
+ }
+ }
+ return false;
+}
+
+
+bool RBBITableBuilder::findDuplicateSafeState(IntPair *states) {
+ int32_t numStates = fSafeTable->size();
+
+ for (; states->first<numStates-1; states->first++) {
+ UnicodeString *firstRow = static_cast<UnicodeString *>(fSafeTable->elementAt(states->first));
+ for (states->second=states->first+1; states->second<numStates; states->second++) {
+ UnicodeString *duplRow = static_cast<UnicodeString *>(fSafeTable->elementAt(states->second));
+ bool rowsMatch = true;
+ int32_t numCols = firstRow->length();
+ for (int32_t col=0; col < numCols; ++col) {
+ int32_t firstVal = firstRow->charAt(col);
+ int32_t duplVal = duplRow->charAt(col);
+ if (!((firstVal == duplVal) ||
+ ((firstVal == states->first || firstVal == states->second) &&
+ (duplVal == states->first || duplVal == states->second)))) {
rowsMatch = false;
break;
}
@@ -1153,7 +1179,10 @@ bool RBBITableBuilder::findDuplicateState(int32_t &firstState, int32_t &duplStat
return false;
}
-void RBBITableBuilder::removeState(int32_t keepState, int32_t duplState) {
+
+void RBBITableBuilder::removeState(IntPair duplStates) {
+ const int32_t keepState = duplStates.first;
+ const int32_t duplState = duplStates.second;
U_ASSERT(keepState < duplState);
U_ASSERT(duplState < fDStates->size());
@@ -1188,19 +1217,48 @@ void RBBITableBuilder::removeState(int32_t keepState, int32_t duplState) {
}
}
+void RBBITableBuilder::removeSafeState(IntPair duplStates) {
+ const int32_t keepState = duplStates.first;
+ const int32_t duplState = duplStates.second;
+ U_ASSERT(keepState < duplState);
+ U_ASSERT(duplState < fSafeTable->size());
+
+ fSafeTable->removeElementAt(duplState); // Note that fSafeTable has a deleter function
+ // and will auto-delete the removed element.
+ int32_t numStates = fSafeTable->size();
+ for (int32_t state=0; state<numStates; ++state) {
+ UnicodeString *sd = (UnicodeString *)fSafeTable->elementAt(state);
+ int32_t numCols = sd->length();
+ for (int32_t col=0; col<numCols; col++) {
+ int32_t existingVal = sd->charAt(col);
+ int32_t newVal = existingVal;
+ if (existingVal == duplState) {
+ newVal = keepState;
+ } else if (existingVal > duplState) {
+ newVal = existingVal - 1;
+ }
+ sd->setCharAt(col, static_cast<char16_t>(newVal));
+ }
+ }
+}
+
/*
* RemoveDuplicateStates
*/
-void RBBITableBuilder::removeDuplicateStates() {
- int32_t firstState = 3;
- int32_t duplicateState = 0;
- while (findDuplicateState(firstState, duplicateState)) {
- // printf("Removing duplicate states (%d, %d)\n", firstState, duplicateState);
- removeState(firstState, duplicateState);
+int32_t RBBITableBuilder::removeDuplicateStates() {
+ IntPair dupls = {3, 0};
+ int32_t numStatesRemoved = 0;
+
+ while (findDuplicateState(&dupls)) {
+ // printf("Removing duplicate states (%d, %d)\n", dupls.first, dupls.second);
+ removeState(dupls);
+ ++numStatesRemoved;
}
+ return numStatesRemoved;
}
+
//-----------------------------------------------------------------------------
//
// getTableSize() Calculate the size of the runtime form of this
@@ -1277,6 +1335,185 @@ void RBBITableBuilder::exportTable(void *where) {
}
+/**
+ * Synthesize a safe state table from the main state table.
+ */
+void RBBITableBuilder::buildSafeReverseTable(UErrorCode &status) {
+ // The safe table creation has three steps:
+
+ // 1. Identifiy pairs of character classes that are "safe." Safe means that boundaries
+ // following the pair do not depend on context or state before the pair. To test
+ // whether a pair is safe, run it through the main forward state table, starting
+ // from each state. If the the final state is the same, no matter what the starting state,
+ // the pair is safe.
+ //
+ // 2. Build a state table that recognizes the safe pairs. It's similar to their
+ // forward table, with a column for each input character [class], and a row for
+ // each state. Row 1 is the start state, and row 0 is the stop state. Initially
+ // create an additional state for each input character category; being in
+ // one of these states means that the character has been seen, and is potentially
+ // the first of a pair. In each of these rows, the entry for the second character
+ // of a safe pair is set to the stop state (0), indicating that a match was found.
+ // All other table entries are set to the state corresponding the current input
+ // character, allowing that charcter to be the of a start following pair.
+ //
+ // Because the safe rules are to be run in reverse, moving backwards in the text,
+ // the first and second pair categories are swapped when building the table.
+ //
+ // 3. Compress the table. There are typically many rows (states) that are
+ // equivalent - that have zeroes (match completed) in the same columns -
+ // and can be folded together.
+
+ // Each safe pair is stored as two UChars in the safePair string.
+ UnicodeString safePairs;
+
+ int32_t numCharClasses = fRB->fSetBuilder->getNumCharCategories();
+ int32_t numStates = fDStates->size();
+
+ for (int32_t c1=0; c1<numCharClasses; ++c1) {
+ for (int32_t c2=0; c2 < numCharClasses; ++c2) {
+ int32_t wantedEndState = -1;
+ int32_t endState = 0;
+ for (int32_t startState = 1; startState < numStates; ++startState) {
+ RBBIStateDescriptor *startStateD = static_cast<RBBIStateDescriptor *>(fDStates->elementAt(startState));
+ int32_t s2 = startStateD->fDtran->elementAti(c1);
+ RBBIStateDescriptor *s2StateD = static_cast<RBBIStateDescriptor *>(fDStates->elementAt(s2));
+ endState = s2StateD->fDtran->elementAti(c2);
+ if (wantedEndState < 0) {
+ wantedEndState = endState;
+ } else {
+ if (wantedEndState != endState) {
+ break;
+ }
+ }
+ }
+ if (wantedEndState == endState) {
+ safePairs.append((char16_t)c1);
+ safePairs.append((char16_t)c2);
+ // printf("(%d, %d) ", c1, c2);
+ }
+ }
+ // printf("\n");
+ }
+
+ // Populate the initial safe table.
+ // The table as a whole is UVector<UnicodeString>
+ // Each row is represented by a UnicodeString, being used as a Vector<int16>.
+ // Row 0 is the stop state.
+ // Row 1 is the start sate.
+ // Row 2 and beyond are other states, initially one per char class, but
+ // after initial construction, many of the states will be combined, compacting the table.
+ // The String holds the nextState data only. The four leading fields of a row, fAccepting,
+ // fLookAhead, etc. are not needed for the safe table, and are omitted at this stage of building.
+
+ U_ASSERT(fSafeTable == nullptr);
+ fSafeTable = new UVector(uprv_deleteUObject, uhash_compareUnicodeString, numCharClasses + 2, status);
+ for (int32_t row=0; row<numCharClasses + 2; ++row) {
+ fSafeTable->addElement(new UnicodeString(numCharClasses, 0, numCharClasses+4), status);
+ }
+
+ // From the start state, each input char class transitions to the state for that input.
+ UnicodeString &startState = *static_cast<UnicodeString *>(fSafeTable->elementAt(1));
+ for (int32_t charClass=0; charClass < numCharClasses; ++charClass) {
+ // Note: +2 for the start & stop state.
+ startState.setCharAt(charClass, static_cast<char16_t>(charClass+2));
+ }
+
+ // Initially make every other state table row look like the start state row,
+ for (int32_t row=2; row<numCharClasses+2; ++row) {
+ UnicodeString &rowState = *static_cast<UnicodeString *>(fSafeTable->elementAt(row));
+ rowState = startState; // UnicodeString assignment, copies contents.
+ }
+
+ // Run through the safe pairs, set the next state to zero when pair has been seen.
+ // Zero being the stop state, meaning we found a safe point.
+ for (int32_t pairIdx=0; pairIdx<safePairs.length(); pairIdx+=2) {
+ int32_t c1 = safePairs.charAt(pairIdx);
+ int32_t c2 = safePairs.charAt(pairIdx + 1);
+
+ UnicodeString &rowState = *static_cast<UnicodeString *>(fSafeTable->elementAt(c2 + 2));
+ rowState.setCharAt(c1, 0);
+ }
+
+ // Remove duplicate or redundant rows from the table.
+ IntPair states = {1, 0};
+ while (findDuplicateSafeState(&states)) {
+ // printf("Removing duplicate safe states (%d, %d)\n", states.first, states.second);
+ removeSafeState(states);
+ }
+}
+
+
+//-----------------------------------------------------------------------------
+//
+// getSafeTableSize() Calculate the size of the runtime form of this
+// safe state table.
+//
+//-----------------------------------------------------------------------------
+int32_t RBBITableBuilder::getSafeTableSize() const {
+ int32_t size = 0;
+ int32_t numRows;
+ int32_t numCols;
+ int32_t rowSize;
+
+ if (fSafeTable == nullptr) {
+ return 0;
+ }
+
+ size = offsetof(RBBIStateTable, fTableData); // The header, with no rows to the table.
+
+ numRows = fSafeTable->size();
+ numCols = fRB->fSetBuilder->getNumCharCategories();
+
+ rowSize = offsetof(RBBIStateTableRow, fNextState) + sizeof(uint16_t)*numCols;
+ size += numRows * rowSize;
+ return size;
+}
+
+
+//-----------------------------------------------------------------------------
+//
+// exportSafeTable() export the state transition table in the format required
+// by the runtime engine. getTableSize() bytes of memory
+// must be available at the output address "where".
+//
+//-----------------------------------------------------------------------------
+void RBBITableBuilder::exportSafeTable(void *where) {
+ RBBIStateTable *table = (RBBIStateTable *)where;
+ uint32_t state;
+ int col;
+
+ if (U_FAILURE(*fStatus) || fSafeTable == nullptr) {
+ return;
+ }
+
+ int32_t catCount = fRB->fSetBuilder->getNumCharCategories();
+ if (catCount > 0x7fff ||
+ fSafeTable->size() > 0x7fff) {
+ *fStatus = U_BRK_INTERNAL_ERROR;
+ return;
+ }
+
+ table->fRowLen = offsetof(RBBIStateTableRow, fNextState) + sizeof(uint16_t) * catCount;
+ table->fNumStates = fSafeTable->size();
+ table->fFlags = 0;
+ table->fReserved = 0;
+
+ for (state=0; state<table->fNumStates; state++) {
+ UnicodeString *rowString = (UnicodeString *)fSafeTable->elementAt(state);
+ RBBIStateTableRow *row = (RBBIStateTableRow *)(table->fTableData + state*table->fRowLen);
+ row->fAccepting = 0;
+ row->fLookAhead = 0;
+ row->fTagIdx = 0;
+ row->fReserved = 0;
+ for (col=0; col<catCount; col++) {
+ row->fNextState[col] = rowString->charAt(col);
+ }
+ }
+}
+
+
+
//-----------------------------------------------------------------------------
//
@@ -1331,6 +1568,47 @@ void RBBITableBuilder::printStates() {
#endif
+//-----------------------------------------------------------------------------
+//
+// printSafeTable Debug Function. Dump the fully constructed safe table.
+//
+//-----------------------------------------------------------------------------
+#ifdef RBBI_DEBUG
+void RBBITableBuilder::printReverseTable() {
+ int c; // input "character"
+ int n; // state number
+
+ RBBIDebugPrintf(" Safe Reverse Table \n");
+ if (fSafeTable == nullptr) {
+ RBBIDebugPrintf(" --- nullptr ---\n");
+ return;
+ }
+ RBBIDebugPrintf("state | i n p u t s y m b o l s \n");
+ RBBIDebugPrintf(" | Acc LA Tag");
+ for (c=0; c<fRB->fSetBuilder->getNumCharCategories(); c++) {
+ RBBIDebugPrintf(" %2d", c);
+ }
+ RBBIDebugPrintf("\n");
+ RBBIDebugPrintf(" |---------------");
+ for (c=0; c<fRB->fSetBuilder->getNumCharCategories(); c++) {
+ RBBIDebugPrintf("---");
+ }
+ RBBIDebugPrintf("\n");
+
+ for (n=0; n<fSafeTable->size(); n++) {
+ UnicodeString *rowString = (UnicodeString *)fSafeTable->elementAt(n);
+ RBBIDebugPrintf(" %3d | " , n);
+ RBBIDebugPrintf("%3d %3d %5d ", 0, 0, 0); // Accepting, LookAhead, Tags
+ for (c=0; c<fRB->fSetBuilder->getNumCharCategories(); c++) {
+ RBBIDebugPrintf(" %2d", rowString->charAt(c));
+ }
+ RBBIDebugPrintf("\n");
+ }
+ RBBIDebugPrintf("\n\n");
+}
+#endif
+
+
//-----------------------------------------------------------------------------
//
diff --git a/Build/source/libs/icu/icu-src/source/common/rbbitblb.h b/Build/source/libs/icu/icu-src/source/common/rbbitblb.h
index 09b57b5cf0f..bc6077bb4da 100644
--- a/Build/source/libs/icu/icu-src/source/common/rbbitblb.h
+++ b/Build/source/libs/icu/icu-src/source/common/rbbitblb.h
@@ -15,8 +15,12 @@
#define RBBITBLB_H
#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_BREAK_ITERATION
+
#include "unicode/uobject.h"
#include "unicode/rbbi.h"
+#include "rbbirb.h"
#include "rbbinode.h"
@@ -37,30 +41,49 @@ class UVector32;
class RBBITableBuilder : public UMemory {
public:
- RBBITableBuilder(RBBIRuleBuilder *rb, RBBINode **rootNode);
+ RBBITableBuilder(RBBIRuleBuilder *rb, RBBINode **rootNode, UErrorCode &status);
~RBBITableBuilder();
- void build();
- int32_t getTableSize() const; // Return the runtime size in bytes of
- // the built state table
+ void buildForwardTable();
+
+ /** Return the runtime size in bytes of the built state table. */
+ int32_t getTableSize() const;
/** Fill in the runtime state table. Sufficient memory must exist at the specified location.
*/
void exportTable(void *where);
- /** Find duplicate (redundant) character classes, beginning after the specifed
- * pair, within this state table. This is an iterator-like function, used to
- * identify char classes (state table columns) that can be eliminated.
+ /**
+ * Find duplicate (redundant) character classes. Begin looking with categories.first.
+ * Duplicate, if found are returned in the categories parameter.
+ * This is an iterator-like function, used to identify character classes
+ * (state table columns) that can be eliminated.
+ * @param categories in/out parameter, specifies where to start looking for duplicates,
+ * and returns the first pair of duplicates found, if any.
+ * @return true if duplicate char classes were found, false otherwise.
*/
- bool findDuplCharClassFrom(int &baseClass, int &duplClass);
+ bool findDuplCharClassFrom(IntPair *categories);
/** Remove a column from the state table. Used when two character categories
* have been found equivalent, and merged together, to eliminate the uneeded table column.
*/
void removeColumn(int32_t column);
- /** Check for, and remove dupicate states (table rows). */
- void removeDuplicateStates();
+ /**
+ * Check for, and remove dupicate states (table rows).
+ * @return the number of states removed.
+ */
+ int32_t removeDuplicateStates();
+
+ /** Build the safe reverse table from the already-constructed forward table. */
+ void buildSafeReverseTable(UErrorCode &status);
+
+ /** Return the runtime size in bytes of the built safe reverse state table. */
+ int32_t getSafeTableSize() const;
+
+ /** Fill in the runtime safe state table. Sufficient memory must exist at the specified location.
+ */
+ void exportSafeTable(void *where);
private:
@@ -84,20 +107,36 @@ private:
void addRuleRootNodes(UVector *dest, RBBINode *node);
- /** Find the next duplicate state. An iterator function.
- * @param firstState (in/out) begin looking at this state, return the first of the
- * pair of duplicates.
- * @param duplicateState returns the duplicate state of fistState
- * @return true if a duplicate pair of states was found.
+ /**
+ * Find duplicate (redundant) states, beginning at the specified pair,
+ * within this state table. This is an iterator-like function, used to
+ * identify states (state table rows) that can be eliminated.
+ * @param states in/out parameter, specifies where to start looking for duplicates,
+ * and returns the first pair of duplicates found, if any.
+ * @return true if duplicate states were found, false otherwise.
*/
- bool findDuplicateState(int32_t &firstState, int32_t &duplicateState);
+ bool findDuplicateState(IntPair *states);
- /** Remove a duplicate state/
- * @param keepState First of the duplicate pair. Keep it.
- * @param duplState Duplicate state. Remove it. Redirect all references to the duplicate state
- * to refer to keepState instead.
+ /** Remove a duplicate state.
+ * @param duplStates The duplicate states. The first is kept, the second is removed.
+ * All references to the second in the state table are retargeted
+ * to the first.
*/
- void removeState(int32_t keepState, int32_t duplState);
+ void removeState(IntPair duplStates);
+
+ /** Find the next duplicate state in the safe reverse table. An iterator function.
+ * @param states in/out parameter, specifies where to start looking for duplicates,
+ * and returns the first pair of duplicates found, if any.
+ * @return true if a duplicate pair of states was found.
+ */
+ bool findDuplicateSafeState(IntPair *states);
+
+ /** Remove a duplicate state from the safe table.
+ * @param duplStates The duplicate states. The first is kept, the second is removed.
+ * All references to the second in the state table are retargeted
+ * to the first.
+ */
+ void removeSafeState(IntPair duplStates);
// Set functions for UVector.
// TODO: make a USet subclass of UVector
@@ -113,11 +152,13 @@ public:
void printPosSets(RBBINode *n /* = NULL*/);
void printStates();
void printRuleStatusTable();
+ void printReverseTable();
#else
#define printSet(s)
#define printPosSets(n)
#define printStates()
#define printRuleStatusTable()
+ #define printReverseTable()
#endif
private:
@@ -126,10 +167,14 @@ private:
// table for.
UErrorCode *fStatus;
+ /** State Descriptors, UVector<RBBIStateDescriptor> */
UVector *fDStates; // D states (Aho's terminology)
// Index is state number
// Contents are RBBIStateDescriptor pointers.
+ /** Synthesized safe table, UVector of UnicodeString, one string per table row. */
+ UVector *fSafeTable;
+
RBBITableBuilder(const RBBITableBuilder &other); // forbid copying of this class
RBBITableBuilder &operator=(const RBBITableBuilder &other); // forbid copying of this class
@@ -165,4 +210,7 @@ private:
U_NAMESPACE_END
+
+#endif /* #if !UCONFIG_NO_BREAK_ITERATION */
+
#endif
diff --git a/Build/source/libs/icu/icu-src/source/common/serv.cpp b/Build/source/libs/icu/icu-src/source/common/serv.cpp
index de29c64140c..619e8c7c8bd 100644
--- a/Build/source/libs/icu/icu-src/source/common/serv.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/serv.cpp
@@ -547,16 +547,15 @@ outerEnd:
if (putInCache && cacheResult) {
serviceCache->put(result->actualDescriptor, result, status);
if (U_FAILURE(status)) {
- delete result;
return NULL;
}
if (cacheDescriptorList._obj != NULL) {
for (int32_t i = cacheDescriptorList._obj->size(); --i >= 0;) {
UnicodeString* desc = (UnicodeString*)cacheDescriptorList._obj->elementAt(i);
+
serviceCache->put(*desc, result, status);
if (U_FAILURE(status)) {
- delete result;
return NULL;
}
@@ -703,9 +702,9 @@ ICUService::getDisplayName(const UnicodeString& id, UnicodeString& result, const
}
// fallback
- UErrorCode status = U_ZERO_ERROR;
+ status = U_ZERO_ERROR;
ICUServiceKey* fallbackKey = createKey(&id, status);
- while (fallbackKey->fallback()) {
+ while (fallbackKey != NULL && fallbackKey->fallback()) {
UnicodeString us;
fallbackKey->currentID(us);
f = (ICUServiceFactory*)map->get(us);
diff --git a/Build/source/libs/icu/icu-src/source/common/sharedobject.h b/Build/source/libs/icu/icu-src/source/common/sharedobject.h
index 75c4ec38eeb..c0a5aba4782 100644
--- a/Build/source/libs/icu/icu-src/source/common/sharedobject.h
+++ b/Build/source/libs/icu/icu-src/source/common/sharedobject.h
@@ -104,7 +104,7 @@ public:
/**
* Deletes this object if it has no references.
* Available for non-cached SharedObjects only. Ownership of cached objects
- * is with the UnifiedCache, which is soley responsible for eviction and deletion.
+ * is with the UnifiedCache, which is solely responsible for eviction and deletion.
*/
void deleteIfZeroRefCount() const;
diff --git a/Build/source/libs/icu/icu-src/source/common/static_unicode_sets.cpp b/Build/source/libs/icu/icu-src/source/common/static_unicode_sets.cpp
new file mode 100644
index 00000000000..5d598a0e33b
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/common/static_unicode_sets.cpp
@@ -0,0 +1,223 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+// Allow implicit conversion from char16_t* to UnicodeString for this file:
+// Helpful in toString methods and elsewhere.
+#define UNISTR_FROM_STRING_EXPLICIT
+
+#include "static_unicode_sets.h"
+#include "umutex.h"
+#include "ucln_cmn.h"
+#include "unicode/uniset.h"
+#include "uresimp.h"
+#include "cstring.h"
+#include "uassert.h"
+
+using namespace icu;
+using namespace icu::unisets;
+
+
+namespace {
+
+UnicodeSet* gUnicodeSets[COUNT] = {};
+
+// Save the empty instance in static memory to have well-defined behavior if a
+// regular UnicodeSet cannot be allocated.
+alignas(UnicodeSet)
+char gEmptyUnicodeSet[sizeof(UnicodeSet)];
+
+// Whether the gEmptyUnicodeSet is initialized and ready to use.
+UBool gEmptyUnicodeSetInitialized = FALSE;
+
+inline UnicodeSet* getImpl(Key key) {
+ UnicodeSet* candidate = gUnicodeSets[key];
+ if (candidate == nullptr) {
+ return reinterpret_cast<UnicodeSet*>(gEmptyUnicodeSet);
+ }
+ return candidate;
+}
+
+UnicodeSet* computeUnion(Key k1, Key k2) {
+ UnicodeSet* result = new UnicodeSet();
+ if (result == nullptr) {
+ return nullptr;
+ }
+ result->addAll(*getImpl(k1));
+ result->addAll(*getImpl(k2));
+ result->freeze();
+ return result;
+}
+
+UnicodeSet* computeUnion(Key k1, Key k2, Key k3) {
+ UnicodeSet* result = new UnicodeSet();
+ if (result == nullptr) {
+ return nullptr;
+ }
+ result->addAll(*getImpl(k1));
+ result->addAll(*getImpl(k2));
+ result->addAll(*getImpl(k3));
+ result->freeze();
+ return result;
+}
+
+
+void saveSet(Key key, const UnicodeString& unicodeSetPattern, UErrorCode& status) {
+ // assert unicodeSets.get(key) == null;
+ gUnicodeSets[key] = new UnicodeSet(unicodeSetPattern, status);
+}
+
+class ParseDataSink : public ResourceSink {
+ public:
+ void put(const char* key, ResourceValue& value, UBool /*noFallback*/, UErrorCode& status) U_OVERRIDE {
+ ResourceTable contextsTable = value.getTable(status);
+ if (U_FAILURE(status)) { return; }
+ for (int i = 0; contextsTable.getKeyAndValue(i, key, value); i++) {
+ if (uprv_strcmp(key, "date") == 0) {
+ // ignore
+ } else {
+ ResourceTable strictnessTable = value.getTable(status);
+ if (U_FAILURE(status)) { return; }
+ for (int j = 0; strictnessTable.getKeyAndValue(j, key, value); j++) {
+ bool isLenient = (uprv_strcmp(key, "lenient") == 0);
+ ResourceArray array = value.getArray(status);
+ if (U_FAILURE(status)) { return; }
+ for (int k = 0; k < array.getSize(); k++) {
+ array.getValue(k, value);
+ UnicodeString str = value.getUnicodeString(status);
+ if (U_FAILURE(status)) { return; }
+ // There is both lenient and strict data for comma/period,
+ // but not for any of the other symbols.
+ if (str.indexOf(u'.') != -1) {
+ saveSet(isLenient ? PERIOD : STRICT_PERIOD, str, status);
+ } else if (str.indexOf(u',') != -1) {
+ saveSet(isLenient ? COMMA : STRICT_COMMA, str, status);
+ } else if (str.indexOf(u'+') != -1) {
+ saveSet(PLUS_SIGN, str, status);
+ } else if (str.indexOf(u'‒') != -1) {
+ saveSet(MINUS_SIGN, str, status);
+ } else if (str.indexOf(u'$') != -1) {
+ saveSet(DOLLAR_SIGN, str, status);
+ } else if (str.indexOf(u'£') != -1) {
+ saveSet(POUND_SIGN, str, status);
+ } else if (str.indexOf(u'₨') != -1) {
+ saveSet(RUPEE_SIGN, str, status);
+ }
+ if (U_FAILURE(status)) { return; }
+ }
+ }
+ }
+ }
+ }
+};
+
+
+icu::UInitOnce gNumberParseUniSetsInitOnce = U_INITONCE_INITIALIZER;
+
+UBool U_CALLCONV cleanupNumberParseUniSets() {
+ if (gEmptyUnicodeSetInitialized) {
+ reinterpret_cast<UnicodeSet*>(gEmptyUnicodeSet)->~UnicodeSet();
+ gEmptyUnicodeSetInitialized = FALSE;
+ }
+ for (int32_t i = 0; i < COUNT; i++) {
+ delete gUnicodeSets[i];
+ gUnicodeSets[i] = nullptr;
+ }
+ gNumberParseUniSetsInitOnce.reset();
+ return TRUE;
+}
+
+void U_CALLCONV initNumberParseUniSets(UErrorCode& status) {
+ ucln_common_registerCleanup(UCLN_COMMON_NUMPARSE_UNISETS, cleanupNumberParseUniSets);
+
+ // Initialize the empty instance for well-defined fallback behavior
+ new(gEmptyUnicodeSet) UnicodeSet();
+ reinterpret_cast<UnicodeSet*>(gEmptyUnicodeSet)->freeze();
+ gEmptyUnicodeSetInitialized = TRUE;
+
+ // These sets were decided after discussion with icu-design@. See tickets #13084 and #13309.
+ // Zs+TAB is "horizontal whitespace" according to UTS #18 (blank property).
+ gUnicodeSets[DEFAULT_IGNORABLES] = new UnicodeSet(
+ u"[[:Zs:][\\u0009][:Bidi_Control:][:Variation_Selector:]]", status);
+ gUnicodeSets[STRICT_IGNORABLES] = new UnicodeSet(u"[[:Bidi_Control:]]", status);
+
+ LocalUResourceBundlePointer rb(ures_open(nullptr, "root", &status));
+ if (U_FAILURE(status)) { return; }
+ ParseDataSink sink;
+ ures_getAllItemsWithFallback(rb.getAlias(), "parse", sink, status);
+ if (U_FAILURE(status)) { return; }
+
+ // NOTE: It is OK for these assertions to fail if there was a no-data build.
+ U_ASSERT(gUnicodeSets[COMMA] != nullptr);
+ U_ASSERT(gUnicodeSets[STRICT_COMMA] != nullptr);
+ U_ASSERT(gUnicodeSets[PERIOD] != nullptr);
+ U_ASSERT(gUnicodeSets[STRICT_PERIOD] != nullptr);
+
+ gUnicodeSets[OTHER_GROUPING_SEPARATORS] = new UnicodeSet(
+ u"['٬‘’'\\u0020\\u00A0\\u2000-\\u200A\\u202F\\u205F\\u3000]", status);
+ gUnicodeSets[ALL_SEPARATORS] = computeUnion(COMMA, PERIOD, OTHER_GROUPING_SEPARATORS);
+ gUnicodeSets[STRICT_ALL_SEPARATORS] = computeUnion(
+ STRICT_COMMA, STRICT_PERIOD, OTHER_GROUPING_SEPARATORS);
+
+ U_ASSERT(gUnicodeSets[MINUS_SIGN] != nullptr);
+ U_ASSERT(gUnicodeSets[PLUS_SIGN] != nullptr);
+
+ gUnicodeSets[PERCENT_SIGN] = new UnicodeSet(u"[%٪]", status);
+ gUnicodeSets[PERMILLE_SIGN] = new UnicodeSet(u"[‰؉]", status);
+ gUnicodeSets[INFINITY_KEY] = new UnicodeSet(u"[∞]", status);
+
+ U_ASSERT(gUnicodeSets[DOLLAR_SIGN] != nullptr);
+ U_ASSERT(gUnicodeSets[POUND_SIGN] != nullptr);
+ U_ASSERT(gUnicodeSets[RUPEE_SIGN] != nullptr);
+ gUnicodeSets[YEN_SIGN] = new UnicodeSet(u"[¥\\uffe5]", status);
+
+ gUnicodeSets[DIGITS] = new UnicodeSet(u"[:digit:]", status);
+
+ gUnicodeSets[DIGITS_OR_ALL_SEPARATORS] = computeUnion(DIGITS, ALL_SEPARATORS);
+ gUnicodeSets[DIGITS_OR_STRICT_ALL_SEPARATORS] = computeUnion(DIGITS, STRICT_ALL_SEPARATORS);
+
+ for (auto* uniset : gUnicodeSets) {
+ if (uniset != nullptr) {
+ uniset->freeze();
+ }
+ }
+}
+
+}
+
+const UnicodeSet* unisets::get(Key key) {
+ UErrorCode localStatus = U_ZERO_ERROR;
+ umtx_initOnce(gNumberParseUniSetsInitOnce, &initNumberParseUniSets, localStatus);
+ if (U_FAILURE(localStatus)) {
+ return reinterpret_cast<UnicodeSet*>(gEmptyUnicodeSet);
+ }
+ return getImpl(key);
+}
+
+Key unisets::chooseFrom(UnicodeString str, Key key1) {
+ return get(key1)->contains(str) ? key1 : NONE;
+}
+
+Key unisets::chooseFrom(UnicodeString str, Key key1, Key key2) {
+ return get(key1)->contains(str) ? key1 : chooseFrom(str, key2);
+}
+
+//Key unisets::chooseCurrency(UnicodeString str) {
+// if (get(DOLLAR_SIGN)->contains(str)) {
+// return DOLLAR_SIGN;
+// } else if (get(POUND_SIGN)->contains(str)) {
+// return POUND_SIGN;
+// } else if (get(RUPEE_SIGN)->contains(str)) {
+// return RUPEE_SIGN;
+// } else if (get(YEN_SIGN)->contains(str)) {
+// return YEN_SIGN;
+// } else {
+// return NONE;
+// }
+//}
+
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/common/static_unicode_sets.h b/Build/source/libs/icu/icu-src/source/common/static_unicode_sets.h
new file mode 100644
index 00000000000..5f18b3217ea
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/common/static_unicode_sets.h
@@ -0,0 +1,119 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// This file is in common instead of i18n because it is needed by ucurr.cpp.
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+#ifndef __STATIC_UNICODE_SETS_H__
+#define __STATIC_UNICODE_SETS_H__
+
+#include "unicode/uniset.h"
+#include "unicode/unistr.h"
+
+U_NAMESPACE_BEGIN
+namespace unisets {
+
+enum Key {
+ // NONE is used to indicate null in chooseFrom().
+ // EMPTY is used to get an empty UnicodeSet.
+ NONE = -1,
+ EMPTY = 0,
+
+ // Ignorables
+ DEFAULT_IGNORABLES,
+ STRICT_IGNORABLES,
+
+ // Separators
+ // Notes:
+ // - COMMA is a superset of STRICT_COMMA
+ // - PERIOD is a superset of SCRICT_PERIOD
+ // - ALL_SEPARATORS is the union of COMMA, PERIOD, and OTHER_GROUPING_SEPARATORS
+ // - STRICT_ALL_SEPARATORS is the union of STRICT_COMMA, STRICT_PERIOD, and OTHER_GRP_SEPARATORS
+ COMMA,
+ PERIOD,
+ STRICT_COMMA,
+ STRICT_PERIOD,
+ OTHER_GROUPING_SEPARATORS,
+ ALL_SEPARATORS,
+ STRICT_ALL_SEPARATORS,
+
+ // Symbols
+ MINUS_SIGN,
+ PLUS_SIGN,
+ PERCENT_SIGN,
+ PERMILLE_SIGN,
+ INFINITY_KEY, // INFINITY is defined in cmath
+
+ // Currency Symbols
+ DOLLAR_SIGN,
+ POUND_SIGN,
+ RUPEE_SIGN,
+ YEN_SIGN, // not in CLDR data, but Currency.java wants it
+
+ // Other
+ DIGITS,
+
+ // Combined Separators with Digits (for lead code points)
+ DIGITS_OR_ALL_SEPARATORS,
+ DIGITS_OR_STRICT_ALL_SEPARATORS,
+
+ // The number of elements in the enum.
+ COUNT
+};
+
+/**
+ * Gets the static-allocated UnicodeSet according to the provided key. The
+ * pointer will be deleted during u_cleanup(); the caller should NOT delete it.
+ *
+ * Exported as U_COMMON_API for ucurr.cpp
+ *
+ * @param key The desired UnicodeSet according to the enum in this file.
+ * @return The requested UnicodeSet. Guaranteed to be frozen and non-null, but
+ * may be empty if an error occurred during data loading.
+ */
+U_COMMON_API const UnicodeSet* get(Key key);
+
+/**
+ * Checks if the UnicodeSet given by key1 contains the given string.
+ *
+ * Exported as U_COMMON_API for numparse_decimal.cpp
+ *
+ * @param str The string to check.
+ * @param key1 The set to check.
+ * @return key1 if the set contains str, or NONE if not.
+ */
+U_COMMON_API Key chooseFrom(UnicodeString str, Key key1);
+
+/**
+ * Checks if the UnicodeSet given by either key1 or key2 contains the string.
+ *
+ * Exported as U_COMMON_API for numparse_decimal.cpp
+ *
+ * @param str The string to check.
+ * @param key1 The first set to check.
+ * @param key2 The second set to check.
+ * @return key1 if that set contains str; key2 if that set contains str; or
+ * NONE if neither set contains str.
+ */
+U_COMMON_API Key chooseFrom(UnicodeString str, Key key1, Key key2);
+
+// Unused in C++:
+// Key chooseCurrency(UnicodeString str);
+// Used instead:
+static const struct {
+ Key key;
+ UChar32 exemplar;
+} kCurrencyEntries[] = {
+ {DOLLAR_SIGN, u'$'},
+ {POUND_SIGN, u'£'},
+ {RUPEE_SIGN, u'₨'},
+ {YEN_SIGN, u'¥'},
+};
+
+} // namespace unisets
+U_NAMESPACE_END
+
+#endif //__STATIC_UNICODE_SETS_H__
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/common/stringtriebuilder.cpp b/Build/source/libs/icu/icu-src/source/common/stringtriebuilder.cpp
index cf5b7b73ae2..6f9cc2e5c22 100644
--- a/Build/source/libs/icu/icu-src/source/common/stringtriebuilder.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/stringtriebuilder.cpp
@@ -373,7 +373,7 @@ StringTrieBuilder::registerFinalValue(int32_t value, UErrorCode &errorCode) {
return newNode;
}
-UBool
+int32_t
StringTrieBuilder::hashNode(const void *node) {
return ((const Node *)node)->hashCode();
}
diff --git a/Build/source/libs/icu/icu-src/source/common/ubidi.cpp b/Build/source/libs/icu/icu-src/source/common/ubidi.cpp
index 531ed64cff6..4b65d491859 100644
--- a/Build/source/libs/icu/icu-src/source/common/ubidi.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/ubidi.cpp
@@ -624,7 +624,7 @@ getDirProps(UBiDi *pBiDi) {
pBiDi->paras[pBiDi->paraCount-1].level=1;
}
if(isDefaultLevel) {
- pBiDi->paraLevel=pBiDi->paras[0].level;
+ pBiDi->paraLevel=static_cast<UBiDiLevel>(pBiDi->paras[0].level);
}
/* The following is needed to resolve the text direction for default level
paragraphs containing no strong character */
@@ -825,28 +825,28 @@ bracketProcessClosing(BracketData *bd, int32_t openIdx, int32_t position) {
N0c1. */
if((direction==0 && pOpening->flags&FOUND_L) ||
- (direction==1 && pOpening->flags&FOUND_R)) { /* N0b */
- newProp=direction;
+ (direction==1 && pOpening->flags&FOUND_R)) { /* N0b */
+ newProp=static_cast<DirProp>(direction);
}
- else if(pOpening->flags&(FOUND_L|FOUND_R)) { /* N0c */
+ else if(pOpening->flags&(FOUND_L|FOUND_R)) { /* N0c */
/* it is stable if there is no containing pair or in
conditions too complicated and not worth checking */
stable=(openIdx==pLastIsoRun->start);
if(direction!=pOpening->contextDir)
- newProp=pOpening->contextDir; /* N0c1 */
+ newProp= static_cast<DirProp>(pOpening->contextDir); /* N0c1 */
else
- newProp=direction; /* N0c2 */
+ newProp= static_cast<DirProp>(direction); /* N0c2 */
} else {
/* forget this and any brackets nested within this pair */
- pLastIsoRun->limit=openIdx;
- return ON; /* N0d */
+ pLastIsoRun->limit= static_cast<uint16_t>(openIdx);
+ return ON; /* N0d */
}
bd->pBiDi->dirProps[pOpening->position]=newProp;
bd->pBiDi->dirProps[position]=newProp;
/* Update nested N0c pairs that may be affected */
fixN0c(bd, openIdx, pOpening->position, newProp);
if(stable) {
- pLastIsoRun->limit=openIdx; /* forget any brackets nested within this pair */
+ pLastIsoRun->limit= static_cast<uint16_t>(openIdx); /* forget any brackets nested within this pair */
/* remove lower located synonyms if any */
while(pLastIsoRun->limit>pLastIsoRun->start &&
bd->openings[pLastIsoRun->limit-1].position==pOpening->position)
@@ -918,7 +918,7 @@ bracketProcessChar(BracketData *bd, int32_t position) {
bracket or it is a case of N0d */
/* Now see if it is an opening bracket */
if(c)
- match=u_getBidiPairedBracket(c); /* get the matching char */
+ match= static_cast<UChar>(u_getBidiPairedBracket(c)); /* get the matching char */
else
match=0;
if(match!=c && /* has a matching char */
@@ -948,7 +948,7 @@ bracketProcessChar(BracketData *bd, int32_t position) {
pLastIsoRun->contextPos=position;
}
else if(dirProp<=R || dirProp==AL) {
- newProp=DIR_FROM_STRONG(dirProp);
+ newProp= static_cast<DirProp>(DIR_FROM_STRONG(dirProp));
pLastIsoRun->lastBase=dirProp;
pLastIsoRun->lastStrong=dirProp;
pLastIsoRun->contextDir=(UBiDiDirection)newProp;
@@ -1101,7 +1101,7 @@ resolveExplicitLevels(UBiDi *pBiDi, UErrorCode *pErrorCode) {
else
start=pBiDi->paras[paraIndex-1].limit;
limit=pBiDi->paras[paraIndex].limit;
- level=pBiDi->paras[paraIndex].level;
+ level= static_cast<UBiDiLevel>(pBiDi->paras[paraIndex].level);
for(i=start; i<limit; i++)
levels[i]=level;
}
@@ -1119,7 +1119,7 @@ resolveExplicitLevels(UBiDi *pBiDi, UErrorCode *pErrorCode) {
else
start=pBiDi->paras[paraIndex-1].limit;
limit=pBiDi->paras[paraIndex].limit;
- level=pBiDi->paras[paraIndex].level;
+ level= static_cast<UBiDiLevel>(pBiDi->paras[paraIndex].level);
for(i=start; i<limit; i++) {
levels[i]=level;
dirProp=dirProps[i];
@@ -2827,7 +2827,7 @@ ubidi_setPara(UBiDi *pBiDi, const UChar *text, int32_t length,
DirProp dirProp;
for(i=0; i<pBiDi->paraCount; i++) {
last=(pBiDi->paras[i].limit)-1;
- level=pBiDi->paras[i].level;
+ level= static_cast<UBiDiLevel>(pBiDi->paras[i].level);
if(level==0)
continue; /* LTR paragraph */
start= i==0 ? 0 : pBiDi->paras[i-1].limit;
diff --git a/Build/source/libs/icu/icu-src/source/common/ubidi_props_data.h b/Build/source/libs/icu/icu-src/source/common/ubidi_props_data.h
index 98f21510e7d..55e331b612e 100644
--- a/Build/source/libs/icu/icu-src/source/common/ubidi_props_data.h
+++ b/Build/source/libs/icu/icu-src/source/common/ubidi_props_data.h
@@ -11,538 +11,539 @@
#ifdef INCLUDED_FROM_UBIDI_PROPS_C
-static const UVersionInfo ubidi_props_dataVersion={0xa,0,0,0};
+static const UVersionInfo ubidi_props_dataVersion={0xb,0,0,0};
-static const int32_t ubidi_props_indexes[UBIDI_IX_TOP]={0x10,0x6028,0x5cb0,0x1a,0x620,0x8c0,0x10ac0,0x10af0,0,0,0,0,0,0,0,0x6302b6};
+static const int32_t ubidi_props_indexes[UBIDI_IX_TOP]={0x10,0x647c,0x5e98,0x28,0x620,0x8c0,0x10ac0,0x10d24,0,0,0,0,0,0,0,0x6502b6};
-static const uint16_t ubidi_props_trieIndex[11856]={
-0x36a,0x372,0x37a,0x382,0x39a,0x3a2,0x3aa,0x3b2,0x38a,0x392,0x38a,0x392,0x38a,0x392,0x38a,0x392,
-0x38a,0x392,0x38a,0x392,0x3b8,0x3c0,0x3c8,0x3d0,0x3d8,0x3e0,0x3dc,0x3e4,0x3ec,0x3f4,0x3ef,0x3f7,
-0x38a,0x392,0x38a,0x392,0x3ff,0x407,0x38a,0x392,0x38a,0x392,0x38a,0x392,0x40d,0x415,0x41d,0x425,
-0x42d,0x435,0x43d,0x445,0x44b,0x453,0x45b,0x463,0x46b,0x473,0x479,0x481,0x489,0x491,0x499,0x4a1,
-0x4ad,0x4a9,0x4b5,0x4bd,0x41f,0x4cd,0x4d5,0x4c5,0x4dd,0x4df,0x4e7,0x4ef,0x4f7,0x4f8,0x500,0x508,
-0x510,0x4f8,0x518,0x51d,0x510,0x4f8,0x525,0x52d,0x4f7,0x535,0x53d,0x4ef,0x542,0x38a,0x54a,0x54e,
-0x556,0x557,0x55f,0x567,0x4f7,0x56f,0x577,0x4ef,0x401,0x57b,0x500,0x4ef,0x38a,0x38a,0x583,0x38a,
-0x38a,0x589,0x591,0x38a,0x38a,0x595,0x59d,0x38a,0x5a1,0x5a8,0x38a,0x5b0,0x5b8,0x5bf,0x541,0x38a,
-0x38a,0x5c7,0x5cf,0x5d7,0x5df,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x5e7,0x38a,0x5ef,0x38a,0x38a,0x38a,
-0x5f7,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x5ff,0x38a,0x38a,0x38a,0x607,0x607,0x504,0x504,0x38a,0x60d,0x615,0x5ef,
-0x62b,0x61d,0x61d,0x633,0x63a,0x623,0x38a,0x38a,0x38a,0x642,0x64a,0x38a,0x38a,0x38a,0x64c,0x654,
-0x65c,0x38a,0x663,0x66b,0x38a,0x673,0x38a,0x38a,0x534,0x67b,0x542,0x683,0x401,0x68b,0x38a,0x692,
-0x38a,0x697,0x38a,0x38a,0x38a,0x38a,0x69d,0x6a5,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x3d8,0x6ad,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x6b5,0x6bd,0x6c1,
-0x6d9,0x6df,0x6c9,0x6d1,0x6e7,0x6ef,0x6f3,0x5c2,0x6fb,0x703,0x70b,0x38a,0x713,0x654,0x654,0x654,
-0x723,0x72b,0x733,0x73b,0x740,0x748,0x750,0x71b,0x758,0x760,0x38a,0x766,0x76d,0x654,0x654,0x654,
-0x654,0x56d,0x773,0x654,0x77b,0x38a,0x38a,0x651,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,
-0x654,0x654,0x654,0x654,0x654,0x783,0x654,0x654,0x654,0x654,0x654,0x789,0x654,0x654,0x791,0x799,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x654,0x654,0x654,0x654,0x7a9,0x7b0,0x7b8,0x7a1,
-0x7c8,0x7d0,0x7d8,0x7df,0x7e7,0x7ef,0x7f6,0x7c0,0x654,0x654,0x654,0x7fe,0x804,0x80a,0x812,0x817,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x81e,0x38a,0x38a,0x38a,0x826,0x38a,0x38a,0x38a,0x3d8,
-0x82e,0x836,0x763,0x38a,0x839,0x654,0x654,0x657,0x654,0x654,0x654,0x654,0x654,0x654,0x840,0x846,
-0x856,0x84e,0x38a,0x38a,0x85e,0x5f7,0x38a,0x3b1,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x654,0x825,
-0x3bf,0x38a,0x866,0x86e,0x38a,0x876,0x817,0x38a,0x38a,0x38a,0x38a,0x87e,0x38a,0x38a,0x64c,0x3b0,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x654,0x654,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x866,0x654,0x56d,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x885,0x38a,0x38a,0x88a,0x557,0x38a,0x38a,0x5a3,0x654,0x64b,0x38a,0x38a,0x892,0x38a,0x38a,0x38a,
-0x89a,0x8a1,0x61d,0x8a9,0x38a,0x38a,0x579,0x8b1,0x38a,0x8b8,0x8bf,0x38a,0x4dd,0x8c4,0x38a,0x4f6,
-0x38a,0x8cc,0x8d4,0x4f8,0x38a,0x8d8,0x4f7,0x8e0,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x8e7,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x8fb,0x8ef,0x8f3,0x489,0x489,0x489,0x489,0x489,
-0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x903,0x489,0x489,0x489,0x489,0x90b,0x90f,
-0x917,0x91f,0x923,0x92b,0x489,0x489,0x489,0x92f,0x937,0x37a,0x93f,0x947,0x38a,0x38a,0x38a,0x94f,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0xe28,0xe28,0xe68,0xea8,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xee0,0xf20,0xf60,0xf70,0xfb0,0xfbc,
-0xe28,0xe28,0xffc,0xe28,0xe28,0xe28,0x1034,0x1074,0x10b4,0x10f4,0x112c,0x116c,0x11ac,0x11e4,0x1224,0x1264,
-0xa40,0xa80,0xac0,0xafa,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xb25,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xb62,0x1a0,0x1a0,0xb97,0xbd7,0xc17,0xc57,0xc97,0xcd7,
+static const uint16_t ubidi_props_trieIndex[12100]={
+0x36f,0x377,0x37f,0x387,0x39f,0x3a7,0x3af,0x3b7,0x38f,0x397,0x38f,0x397,0x38f,0x397,0x38f,0x397,
+0x38f,0x397,0x38f,0x397,0x3bd,0x3c5,0x3cd,0x3d5,0x3dd,0x3e5,0x3e1,0x3e9,0x3f1,0x3f9,0x3f4,0x3fc,
+0x38f,0x397,0x38f,0x397,0x404,0x40c,0x38f,0x397,0x38f,0x397,0x38f,0x397,0x412,0x41a,0x422,0x42a,
+0x432,0x43a,0x442,0x44a,0x450,0x458,0x460,0x468,0x470,0x478,0x47e,0x486,0x48e,0x496,0x49e,0x4a6,
+0x4b2,0x4ae,0x4ba,0x4c2,0x424,0x4d2,0x4da,0x4ca,0x4e2,0x4e4,0x4ec,0x4f4,0x4fc,0x4fd,0x505,0x50d,
+0x515,0x4fd,0x51d,0x522,0x515,0x4fd,0x52a,0x532,0x4fc,0x53a,0x542,0x4f4,0x547,0x38f,0x54f,0x553,
+0x55b,0x55d,0x565,0x56d,0x4fc,0x575,0x57d,0x4f4,0x406,0x581,0x505,0x4f4,0x38f,0x38f,0x589,0x38f,
+0x38f,0x58f,0x597,0x38f,0x38f,0x59b,0x5a3,0x38f,0x5a7,0x5ae,0x38f,0x5b6,0x5be,0x5c5,0x546,0x38f,
+0x38f,0x5cd,0x5d5,0x5dd,0x5e5,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x5ed,0x38f,0x5f5,0x38f,0x38f,0x38f,
+0x5fd,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x605,0x38f,0x38f,0x38f,0x60d,0x60d,0x509,0x509,0x38f,0x613,0x61b,0x5f5,
+0x631,0x623,0x623,0x639,0x640,0x629,0x38f,0x38f,0x38f,0x648,0x650,0x38f,0x38f,0x38f,0x652,0x65a,
+0x662,0x38f,0x669,0x671,0x38f,0x679,0x38f,0x38f,0x539,0x681,0x547,0x689,0x406,0x691,0x38f,0x698,
+0x38f,0x69d,0x38f,0x38f,0x38f,0x38f,0x6a3,0x6ab,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x3dd,0x6b3,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x6bb,0x6c3,0x6c7,
+0x6df,0x6e5,0x6cf,0x6d7,0x6ed,0x6f5,0x6f9,0x5c8,0x701,0x709,0x711,0x38f,0x719,0x65a,0x65a,0x65a,
+0x729,0x731,0x739,0x741,0x746,0x74e,0x756,0x721,0x75e,0x766,0x38f,0x76c,0x773,0x65a,0x65a,0x65a,
+0x65a,0x573,0x779,0x65a,0x781,0x38f,0x38f,0x657,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,
+0x65a,0x65a,0x65a,0x65a,0x65a,0x789,0x65a,0x65a,0x65a,0x65a,0x65a,0x78f,0x65a,0x65a,0x797,0x79f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x65a,0x65a,0x65a,0x65a,0x7af,0x7b7,0x7bf,0x7a7,
+0x7cf,0x7d7,0x7df,0x7e6,0x7ed,0x7f5,0x7f9,0x7c7,0x65a,0x65a,0x65a,0x801,0x807,0x65a,0x80d,0x810,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x818,0x38f,0x38f,0x38f,0x820,0x38f,0x38f,0x38f,0x3dd,
+0x828,0x830,0x835,0x38f,0x83d,0x65a,0x65a,0x65d,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x844,0x84a,
+0x85a,0x852,0x38f,0x38f,0x862,0x5fd,0x38f,0x3b6,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x65a,0x81f,
+0x3c4,0x38f,0x839,0x86a,0x38f,0x872,0x87a,0x38f,0x38f,0x38f,0x38f,0x87e,0x38f,0x38f,0x652,0x3b5,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x65a,0x65a,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x839,0x65a,0x573,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x885,0x38f,0x38f,0x88a,0x55d,0x38f,0x38f,0x5a9,0x65a,0x651,0x38f,0x38f,0x892,0x38f,0x38f,0x38f,
+0x89a,0x8a1,0x623,0x8a9,0x38f,0x38f,0x57f,0x8b1,0x38f,0x8b9,0x8c0,0x38f,0x4e2,0x8c5,0x38f,0x4fb,
+0x38f,0x8cd,0x8d5,0x4fd,0x38f,0x8d9,0x4fc,0x8e1,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x8e8,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x8fc,0x8f0,0x8f4,0x48e,0x48e,0x48e,0x48e,0x48e,
+0x48e,0x48e,0x48e,0x48e,0x48e,0x48e,0x48e,0x48e,0x48e,0x904,0x48e,0x48e,0x48e,0x48e,0x90c,0x910,
+0x918,0x920,0x924,0x92c,0x48e,0x48e,0x48e,0x930,0x938,0x37f,0x940,0x948,0x38f,0x38f,0x38f,0x950,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0xe3c,0xe3c,0xe7c,0xebc,0xe3c,0xe3c,0xe3c,0xe3c,0xe3c,0xe3c,0xef4,0xf34,0xf74,0xf84,0xfc4,0xfd0,
+0xe3c,0xe3c,0x1010,0xe3c,0xe3c,0xe3c,0x1048,0x1088,0x10c8,0x1108,0x1140,0x1180,0x11c0,0x11f8,0x1238,0x1278,
+0xa40,0xa80,0xac0,0xaff,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xb37,0x1a0,0x1a0,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xb74,0x1a0,0x1a0,0xba9,0xbe9,0xc29,0xc69,0xca9,0xce9,
0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd17,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd29,
0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd17,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd29,
0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd17,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd29,
0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd17,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd29,
0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd17,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd29,
0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd17,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd29,
0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd17,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd29,
0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd17,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd29,
0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd17,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd29,
0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd17,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd29,
0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd17,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd29,
0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd17,
-0xd57,0xd67,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd17,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd29,
+0xd69,0xd79,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd29,
0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd17,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd29,
0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd17,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x957,0x38a,0x654,0x654,0x95f,0x5f7,0x38a,0x4f0,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x967,0x38a,0x38a,0x38a,0x96e,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x976,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,
-0x97e,0x982,0x41f,0x41f,0x41f,0x41f,0x992,0x98a,0x41f,0x99a,0x41f,0x41f,0x9a2,0x9a8,0x41f,0x41f,
-0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,
-0x41f,0x41f,0x41f,0x9b0,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,
-0x4f7,0x9b8,0x9bf,0x9c6,0x401,0x9c9,0x38a,0x38a,0x4dd,0x9d1,0x38a,0x9d7,0x401,0x9dc,0x609,0x38a,
-0x38a,0x9e4,0x38a,0x38a,0x38a,0x38a,0x826,0x9ec,0x401,0x4f8,0x556,0x9f3,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x9b8,0x9fb,0x38a,0x38a,0x9ff,0xa07,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0xa0b,0xa13,0x38a,
-0x38a,0xa1b,0x556,0xa23,0x38a,0xa29,0x38a,0x38a,0x5e7,0xa31,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0xa39,0xa3d,0xa45,0x38a,0xa4c,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0xa53,0x38a,0x38a,0xa61,0xa5b,
-0x38a,0x38a,0x38a,0xa69,0xa71,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0xa75,0x38a,0xa7b,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0xa81,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x511,0xa89,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0xa90,0xa98,0xa9e,0x38a,0x38a,0x654,0x654,0xaa6,0x38a,0x38a,0x38a,0x38a,0x38a,0x654,
-0x654,0xaae,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0xab4,0x38a,0xabb,
-0x38a,0xab7,0x38a,0xabe,0x38a,0xac6,0xaca,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x3d8,0xad2,0x3d8,0xad9,0xae0,0xae8,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0xaf0,0xaf8,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0xb00,0x41f,0xb08,
-0xb08,0xb0f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,
-0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,
-0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0xb17,0x41f,
-0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x654,0xb1f,0x654,0x654,0x657,0xb24,0xb28,0x840,0xb30,
-0x38a,0x38a,0xb36,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x764,0x38a,0x38a,0x38a,0x38a,0x654,
-0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,
-0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0xb3e,0xb46,0x654,
-0x654,0x654,0x657,0x654,0x654,0xb3e,0x38a,0xb1f,0x654,0xb4e,0x654,0xb56,0x842,0x38a,0x38a,0xb1f,
-0xb5a,0xb62,0x659,0x656,0x38a,0xb6a,0x56d,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0xb72,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0xb72,0xb82,0xb7a,0xb7a,0xb7a,0xb83,0xb83,0xb83,0xb83,0x3d8,
-0x3d8,0x3d8,0x3d8,0x3d8,0x3d8,0x3d8,0xb8b,0xb83,0xb83,0xb83,0xb83,0xb83,0xb83,0xb83,0xb83,0xb83,
-0xb83,0xb83,0xb83,0xb83,0xb83,0xb83,0xb83,0xb83,0xb83,0xb83,0xb83,0xb83,0xb83,0xb83,0xb83,0xb83,
-0xb83,0xb83,0xb83,0xb83,0xb83,0xb83,0xb83,0xb83,0xb83,0xb83,0xb83,0xb83,0xb83,0xb83,0xb83,0xb83,
-0xb83,0xb83,0xb83,0xb83,0xb83,0xb83,0xb83,0xb83,0xb83,0xb83,0xb83,0xb83,0xb83,0xb83,0xb83,0xb83,
-0xb83,0xb83,0xb83,0xb83,0xb83,0xb83,0xb83,0x369,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
-0x12,8,7,8,9,7,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
-0x12,0x12,0x12,0x12,7,7,7,8,9,0xa,0xa,4,4,4,0xa,0xa,
-0x310a,0xf20a,0xa,3,6,3,6,6,2,2,2,2,2,2,2,2,
-2,2,6,0xa,0x500a,0xa,0xd00a,0xa,0xa,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0x510a,0xa,0xd20a,0xa,0xa,0xa,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0x510a,0xa,0xd20a,0xa,0x12,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x12,0x12,0x12,0x12,0x12,7,0x12,0x12,
-0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
-0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,6,0xa,4,4,4,4,0xa,0xa,
-0xa,0xa,0,0x900a,0xa,0xb2,0xa,0xa,4,4,2,2,0xa,0,0xa,0xa,
-0xa,2,0,0x900a,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd29,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x958,0x38f,0x65a,0x65a,0x960,0x5fd,0x38f,0x4f5,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x968,0x38f,0x38f,0x38f,0x96f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x424,0x424,0x424,0x424,0x424,0x424,0x424,0x424,0x977,0x424,0x424,0x424,0x424,0x424,0x424,0x424,
+0x97f,0x983,0x424,0x424,0x424,0x424,0x993,0x98b,0x424,0x99b,0x424,0x424,0x9a3,0x9a9,0x424,0x424,
+0x424,0x424,0x424,0x424,0x424,0x424,0x424,0x424,0x9b9,0x9b1,0x424,0x424,0x424,0x424,0x424,0x424,
+0x424,0x424,0x424,0x9c1,0x424,0x424,0x424,0x424,0x424,0x9c9,0x9d0,0x9d6,0x424,0x424,0x424,0x424,
+0x4fc,0x9de,0x9e5,0x9ec,0x406,0x9ef,0x38f,0x38f,0x4e2,0x9f6,0x38f,0x9fc,0x406,0xa01,0xa09,0x38f,
+0x38f,0xa0e,0x38f,0x38f,0x38f,0x38f,0x820,0xa16,0x406,0x581,0x55c,0xa1d,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x9de,0xa25,0x38f,0x38f,0xa2d,0xa35,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0xa39,0xa41,0x38f,
+0x38f,0xa49,0x55c,0xa51,0x38f,0xa57,0x38f,0x38f,0x5ed,0xa5f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0xa64,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0xa6c,
+0xa70,0xa78,0x38f,0xa7f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0xa86,0x38f,0x38f,0xa94,0xa8e,0x38f,0x38f,0x38f,0xa9c,0xaa4,0x38f,0xaa8,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x583,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0xaae,0x38f,
+0xab4,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0xaba,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x516,0xac2,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0xac9,0xad1,0xad7,0x38f,0x38f,0x65a,0x65a,0xadf,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x65a,0x65a,0x833,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0xae1,
+0x38f,0xae8,0x38f,0xae4,0x38f,0xaeb,0x38f,0xaf3,0xaf7,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x3dd,0xaff,0x3dd,0xb06,0xb0d,0xb15,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0xb1d,0xb25,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x424,0x424,0x424,0x424,0x424,0x424,0xb2d,
+0x424,0xb35,0xb35,0xb3c,0x424,0x424,0x424,0x424,0x424,0x424,0x424,0x424,0x424,0x424,0x424,0x424,
+0x424,0x424,0x424,0x424,0x424,0x424,0x424,0x424,0x424,0x424,0x424,0x424,0x8f4,0x48e,0x48e,0x424,
+0x424,0x424,0x424,0x424,0x424,0x424,0x424,0x424,0x424,0x48e,0x48e,0x48e,0x48e,0x48e,0x48e,0x48e,
+0xb44,0x424,0x424,0x424,0x424,0x424,0x424,0x424,0x424,0x65a,0xb4c,0x65a,0x65a,0x65d,0xb51,0xb55,
+0x844,0xb5d,0x3b1,0x38f,0xb63,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x76a,0x38f,0x38f,0x38f,
+0x38f,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,
+0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0xb6b,
+0xb73,0x65a,0x65a,0x65a,0x65d,0x65a,0x65a,0xb7b,0x38f,0xb4c,0x65a,0xb83,0x65a,0xb8b,0x846,0x38f,
+0x38f,0xb4c,0xb8f,0x65a,0xb97,0x65a,0xb9f,0xba7,0x65a,0x38f,0x38f,0x38f,0x846,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0xbaf,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,
+0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0x38f,0xbaf,0xbbf,0xbb7,0xbb7,0xbb7,0xbc0,0xbc0,0xbc0,
+0xbc0,0x3dd,0x3dd,0x3dd,0x3dd,0x3dd,0x3dd,0x3dd,0xbc8,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,
+0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,
+0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,
+0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,
+0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0xbc0,0x36e,0x36e,0x36e,0x12,0x12,0x12,0x12,
+0x12,0x12,0x12,0x12,0x12,8,7,8,9,7,0x12,0x12,0x12,0x12,0x12,0x12,
+0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,7,7,7,8,9,0xa,0xa,4,
+4,4,0xa,0xa,0x310a,0xf20a,0xa,3,6,3,6,6,2,2,2,2,
+2,2,2,2,2,2,6,0xa,0x500a,0xa,0xd00a,0xa,0xa,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,
+0,0,0,0,0,0,0,0x510a,0xa,0xd20a,0xa,0xa,0xa,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0x510a,0xa,0xd20a,0xa,0x12,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0xa,0xa,0,0,0,0,0,
-0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x12,0x12,0x12,0x12,
+0x12,7,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,6,0xa,4,4,
+4,4,0xa,0xa,0xa,0xa,0,0x900a,0xa,0xb2,0xa,0xa,4,4,2,2,
+0xa,0,0xa,0xa,0xa,2,0,0x900a,0xa,0xa,0xa,0xa,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0xa,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0xa,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0,
+0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0,0,0,0,0xa,0xa,0,0,0,0,0,0,0,0,0xa,0,
-0,0,0,0,0xa,0xa,0,0xa,0,0,0,0,0,0,0,0,
+0xb1,0xb1,0xb1,0xb1,0,0,0,0,0xa,0xa,0,0,0,0,0,0,
+0,0,0xa,0,0,0,0,0,0xa,0xa,0,0xa,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0xa,0,0,0,0,0,0,0,0,0,
+0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0,
-0,0xa,0xa,4,1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0xa,0,0,0xa,0xa,4,1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,1,0xb1,1,0xb1,0xb1,1,0xb1,0xb1,1,0xb1,1,1,1,1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,1,0xb1,1,0xb1,0xb1,1,0xb1,0xb1,1,0xb1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,5,5,5,5,5,5,0xa,0xa,0xd,4,4,0xd,
-6,0xd,0xa,0xa,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xd,
-0x8ad,0xd,0xd,0xd,0x4d,0xd,0x8d,0x8d,0x8d,0x8d,0x4d,0x8d,0x4d,0x8d,0x4d,0x4d,
-0x4d,0x4d,0x4d,0x8d,0x8d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,
-0x4d,0x4d,0x4d,0x4d,0x2d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x4d,0x4d,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,5,5,5,5,5,5,5,5,5,5,4,5,
-5,0xd,0x4d,0x4d,0xb1,0x8d,0x8d,0x8d,0xd,0x8d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,
-0x4d,0x4d,0x4d,0x4d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
-0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,
+1,1,1,1,1,1,1,1,5,5,5,5,5,5,0xa,0xa,
+0xd,4,4,0xd,6,0xd,0xa,0xa,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xd,0x8ad,0xd,0xd,0xd,0x4d,0xd,0x8d,0x8d,0x8d,0x8d,0x4d,0x8d,
+0x4d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x8d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,
+0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x2d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,
+0x8d,0x4d,0x4d,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,5,5,5,5,5,5,5,5,
+5,5,4,5,5,0xd,0x4d,0x4d,0xb1,0x8d,0x8d,0x8d,0xd,0x8d,0x8d,0x8d,
+0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
+0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,
0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,
-0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x4d,0x4d,0x8d,
-0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x4d,0x8d,0x4d,0x8d,0x4d,0x4d,0x8d,0x8d,
-0xd,0x8d,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,5,0xa,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xd,0xd,0xb1,0xb1,0xa,0xb1,0xb1,0xb1,0xb1,0x8d,0x8d,2,2,2,2,
-2,2,2,2,2,2,0x4d,0x4d,0x4d,0xd,0xd,0x4d,0xd,0xd,0xd,0xd,
-0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xad,0x8d,0xb1,0x4d,0x4d,
-0x4d,0x8d,0x8d,0x8d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,
-0x4d,0x4d,0x4d,0x4d,0x8d,0x4d,0x8d,0x4d,0x8d,0x4d,0x4d,0x8d,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xd,
-0xd,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x8d,0x8d,
-0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,
-0x8d,0x4d,0x4d,0x4d,0x4d,0x8d,0x4d,0x8d,0x8d,0x4d,0x4d,0x4d,0x8d,0x8d,0x4d,0x4d,
-0x4d,0x4d,0x4d,0x4d,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
+0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,
+0x8d,0x4d,0x4d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x4d,0x8d,0x4d,0x8d,
+0x4d,0x4d,0x8d,0x8d,0xd,0x8d,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,5,0xa,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xd,0xd,0xb1,0xb1,0xa,0xb1,0xb1,0xb1,0xb1,0x8d,0x8d,
+2,2,2,2,2,2,2,2,2,2,0x4d,0x4d,0x4d,0xd,0xd,0x4d,
+0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xad,
+0x8d,0xb1,0x4d,0x4d,0x4d,0x8d,0x8d,0x8d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x8d,0x4d,
+0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x4d,0x8d,0x4d,0x8d,0x4d,0x4d,0x8d,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xd,0xd,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,
+0x4d,0x8d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,
+0x4d,0x4d,0x4d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x8d,0x4d,0x8d,0x8d,0x4d,0x4d,0x4d,
+0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
-0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
-0xd,0xd,0xd,0xd,1,1,1,1,1,1,1,1,1,1,0x41,0x41,
+0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
+0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,1,1,1,1,1,1,1,1,
+1,1,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
-0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,1,1,0xa,0xa,0xa,0xa,0x21,1,
-1,1,1,1,0xb1,0xb1,0xb1,0xb1,1,0xb1,0xb1,0xb1,1,0xb1,0xb1,0xb1,
-0xb1,0xb1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,0xb1,0xb1,0xb1,0xb1,1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0x81,0x41,0x41,0x41,0x41,0x41,0x81,0x81,0x41,0x81,0x41,0x41,
-0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x81,0x41,1,1,1,0xb1,0xb1,0xb1,
-1,1,1,1,0x4d,0xd,0x4d,0x4d,0x4d,0x4d,0xd,0x8d,0x4d,0x8d,0x8d,0xd,
-0xd,0xd,0xd,0xd,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,0xb1,0xb1,5,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0x41,0x41,0x41,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,1,1,0xa,0xa,
+0xa,0xa,0x21,1,1,0xb1,1,1,0xb1,0xb1,0xb1,0xb1,1,0xb1,0xb1,0xb1,
+1,0xb1,0xb1,0xb1,0xb1,0xb1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xb1,0xb1,
+0xb1,0xb1,1,0xb1,0xb1,0xb1,0xb1,0xb1,0x81,0x41,0x41,0x41,0x41,0x41,0x81,0x81,
+0x41,0x81,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x81,0x41,1,1,
+1,0xb1,0xb1,0xb1,1,1,1,1,0x4d,0xd,0x4d,0x4d,0x4d,0x4d,0xd,0x8d,
+0x4d,0x8d,0x8d,0xd,0xd,0xd,0xd,0xd,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,0xb1,0xb1,5,0xb1,0xb1,0xb1,0xb1,0xb1,
0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x8d,
-0x8d,0xd,0x8d,0x4d,0x4d,0x8d,0x8d,0x4d,0x4d,0xd,0x4d,0x4d,0x4d,0x8d,0x4d,0x4d,
-0x4d,0x4d,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
-0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0xb1,0,0xb1,0,0,0,0,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0xb1,0,0,0,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,0,
-0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0xb1,0,0,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,
+0x4d,0x4d,0x8d,0x8d,0x8d,0xd,0x8d,0x4d,0x4d,0x8d,0x8d,0x4d,0x4d,0xd,0x4d,0x4d,
+0x4d,0x8d,0x4d,0x4d,0x4d,0x4d,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
+0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0xb1,0,0xb1,0,0,0,
+0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0xb1,0,0,
+0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,
0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,4,4,0,0,0,0,0,0,0,4,0,0,0,0,
-0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0xb1,0xb1,0,0,0,0,0xb1,0xb1,0,0,0xb1,0xb1,0xb1,0,0,
0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0xb1,0xb1,0,0,0,0xb1,0,0,0,0,0,0,
-0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0xb1,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,
0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,
-0,0,0,0,0,4,0,0,0,0,0,0,0,0,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0xb1,0,0,0xb1,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,
-0,0xb1,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0,
+0,0,0,0,0,0,4,4,0,0,0,0,0,0,0,4,
+0,0,0xb1,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0,0,0,
-0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,
-0xa,4,0xa,0,0,0,0,0,0xb1,0,0,0,0,0,0,0,
+0,0,0,0,0,0xb1,0xb1,0,0,0,0,0xb1,0xb1,0,0,0xb1,
+0xb1,0xb1,0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0xb1,0xb1,0,0,0,0xb1,0,0,
+0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,
+0xb1,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,
+0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,
+0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0,0,
-0,0,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,
-0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,
+0,0,0,0,0xb1,0,0,0xb1,0,0xb1,0xb1,0xb1,0xb1,0,0,0,
+0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0xb1,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,0,
+0,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,
+0xa,0xa,0xa,0xa,0xa,4,0xa,0,0,0,0,0,0xb1,0,0,0,
+0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xb1,0,0,0xa0,0,0,0,0,
-0,0,0xa0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,
+0,0,0xb1,0xb1,0xb1,0,0,0,0,0,0xb1,0xb1,0xb1,0,0xb1,0xb1,
+0xb1,0xb1,0,0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,
+0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0xb1,0xb1,
-0xb1,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,
-0,0,0,4,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,
-0xb1,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,
+0xb1,0,0,0xa0,0,0,0,0,0,0,0xa0,0,0,0,0,0,
0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0xb1,0,0xb1,0,0xb1,0x310a,0xf20a,0x310a,0xf20a,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,
-0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0,0,0,0,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0xb1,0xb1,0,0,0,0,0xb1,0xb1,0xb1,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,
0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,
-0,0xb1,0xb1,0,0,0,0,0,0,0xb1,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0,0,
+0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0xb1,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,4,0,0,0,0,
+0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0,0,0,0,0,0,
+0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0xb1,
+0,0xb1,0x310a,0xf20a,0x310a,0xf20a,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,
+0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,
+0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0,0,
+0,0,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0xb1,0,0,0xb1,0xb1,0,0,0,0,0,
+0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0xa,0,0,0,
+0,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,
+0,0,0,0,0xa,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,
+0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x310a,
+0xf20a,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0x310a,0xf20a,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,
-0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0,0,0,0,0,0,0,0,0xb1,0,0,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,4,
-0,0xb1,0,0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
-0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
-0x40,0x40,0x40,0x40,0x40,0xb1,0x40,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0x4a,0xa,0xa,0x2a,0xb1,0xb1,0xb1,0x12,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x40,0x40,0x40,0x40,
+0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,
+0,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0,0,0,0,0,0,0,4,0,0xb1,0,0,0x40,0x40,0x40,0x40,
0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
-0x40,0x40,0x40,0x40,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xb1,0x40,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x4a,0xa,0xa,0x2a,0xb1,
+0xb1,0xb1,0x12,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0,0,0,
+0,0,0,0,0,0xb1,0xb1,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
-0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xb1,0xb1,0xb1,0,0,0,0,0xb1,
-0xb1,0,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0,
-0,0xb1,0xb1,0xb1,0,0,0,0,0xa,0,0,0,0xa,0xa,0,0,
+0xb1,0xb1,0xb1,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0,
+0,0,0xb1,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0,0,0,
+0xa,0,0,0,0xa,0xa,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0xb1,0xb1,0,0,0xb1,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0,0xb1,0,
-0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,
-0xb1,0xb1,0,0,0xb1,0xb1,0,0xb1,0xb1,0xb1,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,
-0xb1,0xb1,0,0,0,0xb1,0,0xb1,0xb1,0xb1,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,
-0,0xb1,0,0,0,0,0,0,0xb1,0,0,0,0xb1,0xb1,0,0,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,
+0xb1,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0xb1,0,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0,0xb1,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,
-0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0xa,0,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,
-0,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0xa,0xa,0,0xa,0xa,0xa,0xa,6,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,9,0xb2,0xb2,0xb2,0xb2,0xb2,0x12,0x814,0x815,0x813,0x816,0xb2,0xb2,
-0xb2,0xb2,0xb2,0xb2,2,0,0,0,2,2,2,2,2,2,3,3,
-0xa,0x310a,0xf20a,0,9,9,9,9,9,9,9,9,9,9,9,0xb2,
-0x412,0x432,0x8a0,0x8a1,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,9,7,0x8ab,0x8ae,0x8b0,0x8ac,0x8af,6,4,4,4,4,
-4,0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,2,2,2,2,
-2,2,2,2,2,2,3,3,0xa,0x310a,0xf20a,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,
+0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,
+0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,0xb1,
+0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0xb1,0,0xb1,0xb1,0,0,0,0xb1,0,0xb1,
+0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0xb1,0,0,0,0,0,0,
+0xb1,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0xa,0,0xa,0xa,0xa,0,0,
+0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0xa,0xa,0,0xa,0xa,0xa,0xa,
+6,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,9,0xb2,0xb2,0xb2,0xb2,
+0xb2,0x12,0x814,0x815,0x813,0x816,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,2,0,0,0,
+2,2,2,2,2,2,3,3,0xa,0x310a,0xf20a,0,9,9,9,9,
+9,9,9,9,9,9,9,0xb2,0x412,0x432,0x8a0,0x8a1,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,9,7,0x8ab,0x8ae,
+0x8b0,0x8ac,0x8af,6,4,4,4,4,4,0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,
+0xa,0xa,0xa,0xa,2,2,2,2,2,2,2,2,2,2,3,3,
+0xa,0x310a,0xf20a,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
-4,4,4,4,4,4,4,4,4,4,4,4,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa,0xa,0,0xa,
-0xa,0xa,0xa,0,0xa,0xa,0,0,0,0,0,0,0,0,0,0,
-0xa,0,0xa,0xa,0xa,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,
-0,0xa,0,0xa,0,0xa,0,0,0,0,4,0,0,0,0,0,
-0,0,0,0,0,0,0xa,0xa,0,0,0,0,0x100a,0xa,0xa,0xa,
-0xa,0,0,0,0,0,0xa,0xa,0xa,0xa,0,0,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,
-0,0,0,0,0,0xa,0xa,0xa,0,0,0,0,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,
-0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0x300a,0xf00a,0x900a,0x900a,
-0x900a,0x100a,0x900a,0x900a,0x100a,0x100a,0x900a,0x900a,0x900a,0x900a,0x900a,0x100a,0xa,0x100a,0x100a,0x100a,
-0x100a,0xa,0xa,0xa,0x700a,0x700a,0x700a,0xb00a,0xb00a,0xb00a,0xa,0xa,0xa,0x100a,3,4,
-0xa,0x900a,0x100a,0xa,0xa,0xa,0x100a,0x100a,0x100a,0x100a,0xa,0x100a,0x100a,0x100a,0x100a,0xa,
-0x100a,0xa,0x100a,0xa,0xa,0xa,0xa,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,
-0xa,0xa,0xa,0xa,0xa,0x100a,0xa,0x100a,0x300a,0xf00a,0x100a,0x100a,0x100a,0x100a,0x100a,0x900a,
-0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,
-0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,0xa,0x100a,0xa,
-0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,
-0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x100a,0xa,0xa,0x300a,
-0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0x900a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0x300a,0xf00a,0xa,0xa,0x900a,0x100a,0x900a,0x900a,0x100a,0x900a,0x100a,0x100a,0x100a,0x100a,
-0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x100a,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x900a,0xa,0xa,
-0x300a,0xf00a,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0xa,0xa,
+4,4,4,4,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xa,0xa,0,0xa,0xa,0xa,0xa,0,0xa,0xa,0,0,
+0,0,0,0,0,0,0,0,0xa,0,0xa,0xa,0xa,0,0,0,
+0,0,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0,0xa,0,0xa,0,0,
+0,0,4,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,
+0,0,0,0,0x100a,0xa,0xa,0xa,0xa,0,0,0,0,0,0xa,0xa,
+0xa,0xa,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,
+0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,
+0x300a,0xf00a,0xa,0xa,0x300a,0xf00a,0x900a,0x900a,0x900a,0x100a,0x900a,0x900a,0x100a,0x100a,0x900a,0x900a,
+0x900a,0x900a,0x900a,0x100a,0xa,0x100a,0x100a,0x100a,0x100a,0xa,0xa,0xa,0x700a,0x700a,0x700a,0xb00a,
+0xb00a,0xb00a,0xa,0xa,0xa,0x100a,3,4,0xa,0x900a,0x100a,0xa,0xa,0xa,0x100a,0x100a,
+0x100a,0x100a,0xa,0x900a,0x900a,0x900a,0x900a,0xa,0x900a,0xa,0x100a,0xa,0xa,0xa,0xa,0x100a,
+0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0xa,0xa,0xa,0xa,0xa,0x100a,0xa,0x100a,
+0x300a,0xf00a,0x100a,0x100a,0x100a,0x100a,0x100a,0x900a,0x100a,0x900a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,
+0x900a,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0x100a,0x100a,0xa,0x100a,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,
+0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,
+0x300a,0xf00a,0x300a,0xf00a,0x100a,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,
+0x900a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,0xa,0x900a,0x100a,
+0x900a,0x900a,0x100a,0x900a,0x100a,0x100a,0x100a,0x100a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,
+0x900a,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0x300a,0xf00a,0x300a,0xf00a,0x900a,0xa,0xa,0x300a,0xf00a,0xa,0xa,0xa,0xa,0x300a,0xf00a,
+0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,
0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0x100a,0x100a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,
+0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,2,2,2,2,2,2,2,2,2,2,2,2,
-2,2,2,2,2,2,2,2,0,0,0,0,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,
-0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0x100a,0xa,0xa,0x300a,0xf00a,0x310a,0xf20a,0xa,0x300a,0xf00a,0xa,0x500a,
-0x100a,0xd00a,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,
-0x100a,0x300a,0xf00a,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,
-0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0x100a,0xa,0x100a,0x100a,0x100a,0xa,0xa,0x100a,0x100a,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0x900a,0x100a,0x100a,0x300a,0xf00a,0xa,0xa,
-0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,
-0xf20a,0x710a,0x320a,0xf10a,0xb20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0x100a,
-0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x900a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0x300a,0xf00a,0x100a,0x100a,0x300a,0xf00a,0xa,0xa,0xa,0x100a,0xa,0xa,0xa,0xa,0x100a,0x300a,
-0xf00a,0x300a,0xf00a,0xa,0x300a,0xf00a,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,0x100a,0xa,0xa,0xa,
-0xa,0xa,0x100a,0x900a,0x900a,0x900a,0x100a,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x100a,0xa,
-0xa,0xa,0xa,0x100a,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x100a,0xa,0x100a,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,
-0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0xa,0x100a,0x100a,
-0x100a,0x100a,0xa,0xa,0x100a,0xa,0x100a,0xa,0xa,0x100a,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,
-0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x100a,0xa,
+0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,2,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,
+0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0xa,0xa,0x300a,
+0xf00a,0x310a,0xf20a,0xa,0x300a,0xf00a,0xa,0x500a,0x100a,0xd00a,0xa,0xa,0xa,0xa,0xa,0x100a,
+0x100a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0x900a,0x300a,0xf00a,0xa,0xa,0xa,0x300a,0xf00a,
+0x300a,0xf00a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0xa,0x100a,
+0x100a,0x100a,0xa,0xa,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0x100a,0x900a,0x100a,0x100a,0x300a,0xf00a,0xa,0xa,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0x310a,
+0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x710a,0x320a,0xf10a,0xb20a,0x310a,0xf20a,0x310a,
+0xf20a,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0x900a,0x100a,0x100a,0x100a,0x100a,0x900a,0xa,0x100a,0x900a,
+0x300a,0xf00a,0x100a,0x100a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0x900a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x100a,0x100a,
+0x300a,0xf00a,0xa,0xa,0xa,0x100a,0xa,0xa,0xa,0xa,0x100a,0x300a,0xf00a,0x300a,0xf00a,0xa,
+0x300a,0xf00a,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,0x100a,0xa,0xa,0xa,0xa,0xa,0x100a,0x900a,
+0x900a,0x900a,0x100a,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x900a,0xa,0xa,0xa,0xa,0x100a,
+0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x100a,0xa,0x100a,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,
+0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0xa,0x100a,0x100a,0x100a,0x100a,0xa,0xa,
+0x100a,0xa,0x100a,0xa,0xa,0x100a,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,
+0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x100a,0xa,0xa,0xa,0xa,0xa,
0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0x300a,0xf00a,0xa,0xa,0xa,0xa,0x100a,0x100a,0x100a,0x100a,0xa,0x100a,0x100a,0xa,0xa,0x100a,
-0x100a,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x100a,0x100a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,
-0xf00a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x300a,0xf00a,0x100a,0x100a,0x100a,0x100a,0x300a,0xf00a,0x300a,
-0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x100a,0x100a,0x100a,0x100a,0x300a,0xf00a,0x100a,
-0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0x300a,0xf00a,0x100a,0x100a,0x300a,
-0xf00a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x100a,
-0x100a,0x100a,0x100a,0x100a,0x100a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,
-0xa,0xa,0xa,0xa,0x100a,0xa,0x900a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0xa,0xa,
+0xa,0xa,0xa,0x100a,0x100a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,0xa,
+0xa,0xa,0x100a,0x100a,0x100a,0x100a,0xa,0x100a,0x100a,0xa,0xa,0x100a,0x100a,0xa,0xa,0xa,
+0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,
+0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,
+0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x100a,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,
+0x300a,0xf00a,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,
+0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,
+0x100a,0xa,0x900a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0xa,0xa,0xa,0xa,0xa,0xa,
0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x900a,0,
+0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0xb1,
+0xb1,0xb1,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,
+0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0x300a,0xf00a,0xa,0x300a,0xf00a,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,0xa,
+0x300a,0xf00a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa,
0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,
-0xa,0xa,0xa,0,0,0,0,0xb1,0xb1,0xb1,0,0,0,0,0,0,
-0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0xb1,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,
-0xa,0x300a,0xf00a,0xa,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,0xa,0x300a,0xf00a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,
-0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,
0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,
@@ -554,12 +555,11 @@ static const uint16_t ubidi_props_trieIndex[11856]={
0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0xb1,0xb1,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,
+0,0,0,0,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,
0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,
@@ -574,194 +574,211 @@ static const uint16_t ubidi_props_trieIndex[11856]={
0x40,0x40,0x40,0x40,0x40,0x40,0x60,0,0xa,0xa,0xa,0xa,0,0,0,0,
0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,
+0,0,0,0xb1,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0,0,
+0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0,0,0,
+0,0,0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,
+0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0xb1,0,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0,
+0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
+0xb1,0xb1,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0,
+0,0,0,0,0,0xb1,0,0,0xb1,0,0,0,0,0xb1,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0,0,0,
-0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,
-0,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,
-0,0,0,0xb1,0,0,0,0,0,0,0,0,0xb1,0,0,0,
+1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0xb1,0,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0,0,0,0xb1,0xb1,
-0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0,0,
-0,0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0,
-0,0xb1,0,0,0xb1,0,0,0,0,0xb1,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,
-1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,0xd,0xd,0xd,0xd,
-0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,1,0xb1,1,0xd,0xd,0xd,0xd,
+0,0,0,0,0,0,0,0,0,0,0,0,0,1,0xb1,1,
0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
-0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xa,0xa,0xd,0xd,0xd,0xd,
-0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0x12,0x12,0x12,0x12,
-0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0xd,0xd,0xd,0xd,
-0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xa,0xd,0xd,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,6,0xa,6,0,
-0xa,6,0xa,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,4,0xa,0xa,3,3,
-0x300a,0xf00a,0xa,0,0xa,4,4,0xa,0,0,0,0,0xd,0xd,0xd,0xd,
+0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xa,0xa,
0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
-0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xb2,0,0xa,0xa,4,
-4,4,0xa,0xa,0x310a,0xf20a,0xa,3,6,3,6,6,2,2,2,2,
-2,2,2,2,2,2,6,0xa,0x500a,0xa,0xd00a,0xa,0xa,0,0,0,
+0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xa,0xd,0xd,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+6,0xa,6,0,0xa,6,0xa,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,4,
+0xa,0xa,3,3,0x300a,0xf00a,0xa,0,0xa,4,4,0xa,0,0,0,0,
+0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
+0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xb2,
+0,0xa,0xa,4,4,4,0xa,0xa,0x310a,0xf20a,0xa,3,6,3,6,6,
+2,2,2,2,2,2,2,2,2,2,6,0xa,0x500a,0xa,0xd00a,0xa,
+0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0x510a,0xa,0xd20a,0xa,0x310a,
+0xf20a,0xa,0x310a,0xf20a,0xa,0xa,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0x510a,0xa,0xd20a,0xa,0x310a,0xf20a,0xa,0x310a,0xf20a,
-0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,4,4,0xa,0xa,
-0xa,4,4,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0x12,0x12,0x12,0x12,
-0x12,0x12,0x12,0x12,0x12,0xaa,0xaa,0xaa,0xa,0xa,0x12,0x12,0,0xa,0,0,
+4,4,0xa,0xa,0xa,4,4,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,
+0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0xaa,0xaa,0xaa,0xa,0xa,0x12,0x12,
+0,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0xb1,2,2,2,
-2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
-2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,
-0xb1,0xb1,0xb1,0,0,0,0,0,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,0xa,1,0xb1,0xb1,0xb1,1,0xb1,0xb1,1,
-1,1,1,1,0xb1,0xb1,0xb1,0xb1,1,1,1,1,1,1,1,1,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,
+0xb1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-0xb1,0xb1,0xb1,1,1,1,1,0xb1,0x41,0x81,1,1,0x81,0xb1,0xb1,1,
-1,1,1,0x41,0x41,0x41,0x41,0x81,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,0x41,0x41,0x41,0x41,0x41,0x81,1,0x81,
-1,0x81,0x81,1,1,0x61,0x81,0x81,0x81,0x81,0x81,0x41,0x41,0x41,0x41,0x61,
-0x41,0x41,0x41,0x41,0x41,0x81,0x41,0x41,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,0xa,1,0xb1,0xb1,0xb1,
+1,0xb1,0xb1,1,1,1,1,1,0xb1,0xb1,0xb1,0xb1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x41,0x81,0x41,0x81,0x81,0x81,0x41,0x41,
-0x41,0x81,0x41,0x41,0x81,0x41,0x81,0x81,0x41,0x81,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,0x81,0x81,0x81,0x81,0x41,0x41,1,
+1,1,1,1,0xb1,0xb1,0xb1,1,1,1,1,0xb1,0x41,0x81,1,1,
+0x81,0xb1,0xb1,1,1,1,1,0x41,0x41,0x41,0x41,0x81,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,0x41,0x41,0x41,0x41,
+0x41,0x81,1,0x81,1,0x81,0x81,1,1,0x61,0x81,0x81,0x81,0x81,0x81,0x41,
+0x41,0x41,0x41,0x61,0x41,0x41,0x41,0x41,0x41,0x81,0x41,0x41,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x41,0x81,0x41,0x81,
+0x81,0x81,0x41,0x41,0x41,0x81,0x41,0x41,0x81,0x41,0x81,0x81,0x41,0x81,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,0x81,0x81,0x81,
+0x81,0x41,0x41,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,0x4d,0x4d,0x8d,0x4d,0xb1,0xb1,0xb1,0xb1,0xd,0xd,0xd,0xd,
+0xd,0xd,0xd,0xd,5,5,5,5,5,5,5,5,5,5,0xd,0xd,
+0xd,0xd,0xd,0xd,0x6d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,
+0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,
+0x4d,0x4d,0x4d,0x4d,5,5,5,5,5,5,5,5,5,5,5,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,
+5,5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,0x4d,0x4d,0x4d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,
+0x4d,0x4d,0x4d,0x4d,0x4d,0xd,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0x4d,0x4d,0x4d,0x8d,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
+0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,
-0,0xa0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,
-0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,
+0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,
+0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0xb1,
+0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,
-0xb1,0xb1,0,0,0xb1,0,0xb1,0xb1,0,0,0,0,0,0,0xb1,0,
-0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,
+0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,
+0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0,0xb1,0,0xb1,0xb1,
+0,0,0,0,0,0,0xb1,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0xb1,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0xb1,0xb1,0xb1,0xb1,
-0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,
-0xb1,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0,0,0,0,0xb1,0xb1,0,0xb1,0xb1,
+0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0,
+0,0,0,0xb1,0xb1,0,0xb1,0xb1,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,
-0xb1,0xb1,0,0,0,0,0,0,0xb1,0xb1,0,0xb1,0xb1,0,0,0,
+0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,
+0xb1,0xb1,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0,0xb1,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,
+0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,
+0,0xb1,0,0xb1,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0xb1,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0,0xb1,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,
+0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,
-0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0,0,0,0,
-0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0,0,0,0,
+0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa0,0xa0,0xb1,0xb1,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,
-0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,
-0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0xb1,
-0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xa0,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,
-0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0,
+0,0,0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,
+0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0xb1,0,0,0,0,
0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0xb1,0,
-0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0,0,0,0,
+0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xa0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0xb1,0xb1,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0xb2,0xb2,0xb2,0xb2,0,0,0,0,0,0,0,0,
+0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0,0,0,0,0,
-0,0,0,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,
+0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0xb1,0,0xb1,0xb1,0,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xa,0xa,0xb1,0xb1,0xb1,0xa,0,0,
+0xb1,0xb1,0,0,0,0xb1,0,0xb1,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0xb2,0xb2,0xb2,0xb2,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0x100a,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0,
+0,0,0,0,0,0,0,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0x100a,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0x100a,0,0,0,0,
-0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,
-2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
-2,2,2,2,2,2,2,2,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,
-0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0,0,
-0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,
-0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xb1,0xb1,
+0xb1,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x100a,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,
+0,0,0,0,0,0x100a,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x100a,
+0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0xb1,0,0,
+0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,
+0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,1,1,1,1,1,1,1,1,1,
-0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
+0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,1,1,1,1,1,
+1,1,1,1,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,0xd,0xd,0xd,0xd,
-0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xa,0xa,0xd,0xd,
-0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,
-0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-2,2,2,2,2,2,2,2,2,2,2,0xa,0xa,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,
-0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0x41,0x41,0x41,0x41,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
+0xa,0xa,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,
0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,
+0xa,0xa,0xa,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,2,2,2,2,2,2,2,2,2,2,2,0xa,
+0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0xa,0xa,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0xa,
+0xa,0xa,0xa,0,0,0,0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0xa,0xa,0xa,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0x12,0x12,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,
+0,0,0,0,0,0,0,0,0,0,0x12,0x12,0xb2,0xb2,0xb2,0xb2,
0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,
-0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0x12,0xb2,0x12,0x12,0x12,0x12,0x12,0x12,
+0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0x12,0xb2,0x12,0x12,
0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
-0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0x12,0x12,0x12,0x12,
-0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0,0,0,0
+0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+0,0,0,0
};
-static const uint32_t ubidi_props_mirrors[26]={
-0x2000ab,0xbb,0x2a02215,0x1202243,0x2802298,0x2c022a6,0x30022a8,0x2e022a9,0x32022ab,0x6022cd,0x1e022f2,0x20022f3,0x22022f4,0x24022f6,0x26022f7,0x14022fa,
-0x16022fb,0x18022fc,0x1a022fd,0x1c022fe,0x8029b8,0x4029f5,0xa02ade,0xe02ae3,0xc02ae4,0x1002ae5
+static const uint32_t ubidi_props_mirrors[40]={
+0x2000ab,0xbb,0x4202215,0x4e0221f,0x3e02220,0x3a02221,0x3c02222,0x4c02224,0x2202243,0x1402245,0x120224c,0x4002298,0x44022a6,0x48022a8,0x46022a9,0x4a022ab,
+0x38022b8,0x10022cd,0x2e022f2,0x30022f3,0x32022f4,0x34022f6,0x36022f7,0x24022fa,0x26022fb,0x28022fc,0x2a022fd,0x2c022fe,0x20027dc,0xa0299b,0xc029a0,0x8029a3,
+0x16029b8,0x4029f5,0x1802ade,0x1c02ae3,0x1a02ae4,0x1e02ae5,0xe02aee,0x602bfe
};
static const uint8_t ubidi_props_jgArray[672]={
@@ -809,10 +826,46 @@ static const uint8_t ubidi_props_jgArray[672]={
0xb,0x55,0x1f,1,0x13,0,4,4,4,0x1f,0x2d,0x56,0x58,0x57,0,0
};
-static const uint8_t ubidi_props_jgArray2[48]={
+static const uint8_t ubidi_props_jgArray2[612]={
0x3a,0x3c,0x3c,0x40,0x40,0x3d,0,0x52,0,0x54,0x54,0,0,0x41,0x4f,0x53,
0x43,0x43,0x43,0x44,0x3e,0x50,0x45,0x46,0x4c,0x3b,0x3b,0x48,0x48,0x4b,0x49,0x49,
-0x49,0x4a,0,0,0x4d,0,0,0,0,0,0,0x47,0x3f,0x4e,0x51,0x42
+0x49,0x4a,0,0,0x4d,0,0,0,0,0,0,0x47,0x3f,0x4e,0x51,0x42,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0x65,0,0,0,0,0,0,0x65,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0x64,0,0,0x65,0,0x64,0,
+0x64,0,0,0x64
};
static const UBiDiProps ubidi_props_singleton={
@@ -823,16 +876,16 @@ static const UBiDiProps ubidi_props_singleton={
ubidi_props_jgArray2,
{
ubidi_props_trieIndex,
- ubidi_props_trieIndex+3496,
+ ubidi_props_trieIndex+3516,
NULL,
- 3496,
- 8360,
+ 3516,
+ 8584,
0x1a0,
- 0xe28,
+ 0xe3c,
0x0,
0x0,
0x110000,
- 0x2e4c,
+ 0x2f40,
NULL, 0, FALSE, FALSE, 0, NULL
},
{ 2,2,0,0 }
diff --git a/Build/source/libs/icu/icu-src/source/common/ubiditransform.cpp b/Build/source/libs/icu/icu-src/source/common/ubiditransform.cpp
index fd7b90fd37c..e6d1d9c086d 100644
--- a/Build/source/libs/icu/icu-src/source/common/ubiditransform.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/ubiditransform.cpp
@@ -146,7 +146,7 @@ static UBool
action_reorder(UBiDiTransform *pTransform, UErrorCode *pErrorCode)
{
ubidi_writeReordered(pTransform->pBidi, pTransform->dest, pTransform->destSize,
- pTransform->reorderingOptions, pErrorCode);
+ static_cast<uint16_t>(pTransform->reorderingOptions), pErrorCode);
*pTransform->pDestLength = pTransform->srcLength;
pTransform->reorderingOptions = UBIDI_REORDER_DEFAULT;
@@ -393,9 +393,9 @@ resolveBaseDirection(const UChar *text, uint32_t length,
switch (*pInLevel) {
case UBIDI_DEFAULT_LTR:
case UBIDI_DEFAULT_RTL: {
- UBiDiLevel level = ubidi_getBaseDirection(text, length);
- *pInLevel = level != UBIDI_NEUTRAL ? level
- : *pInLevel == UBIDI_DEFAULT_RTL ? RTL : LTR;
+ UBiDiLevel level = static_cast<UBiDiLevel>(ubidi_getBaseDirection(text, length));
+ *pInLevel = static_cast<UBiDiLevel>(level != UBIDI_NEUTRAL) ? level
+ : *pInLevel == UBIDI_DEFAULT_RTL ? static_cast<UBiDiLevel>(RTL) : static_cast<UBiDiLevel>(LTR);
break;
}
default:
diff --git a/Build/source/libs/icu/icu-src/source/common/ucase.cpp b/Build/source/libs/icu/icu-src/source/common/ucase.cpp
index 95b27acb754..8414c527d49 100644
--- a/Build/source/libs/icu/icu-src/source/common/ucase.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/ucase.cpp
@@ -138,6 +138,11 @@ ucase_tolower(UChar32 c) {
} else {
const uint16_t *pe=GET_EXCEPTIONS(&ucase_props_singleton, props);
uint16_t excWord=*pe++;
+ if(HAS_SLOT(excWord, UCASE_EXC_DELTA) && UCASE_IS_UPPER_OR_TITLE(props)) {
+ int32_t delta;
+ GET_SLOT_VALUE(excWord, UCASE_EXC_DELTA, pe, delta);
+ return (excWord&UCASE_EXC_DELTA_IS_NEGATIVE)==0 ? c+delta : c-delta;
+ }
if(HAS_SLOT(excWord, UCASE_EXC_LOWER)) {
GET_SLOT_VALUE(excWord, UCASE_EXC_LOWER, pe, c);
}
@@ -155,6 +160,11 @@ ucase_toupper(UChar32 c) {
} else {
const uint16_t *pe=GET_EXCEPTIONS(&ucase_props_singleton, props);
uint16_t excWord=*pe++;
+ if(HAS_SLOT(excWord, UCASE_EXC_DELTA) && UCASE_GET_TYPE(props)==UCASE_LOWER) {
+ int32_t delta;
+ GET_SLOT_VALUE(excWord, UCASE_EXC_DELTA, pe, delta);
+ return (excWord&UCASE_EXC_DELTA_IS_NEGATIVE)==0 ? c+delta : c-delta;
+ }
if(HAS_SLOT(excWord, UCASE_EXC_UPPER)) {
GET_SLOT_VALUE(excWord, UCASE_EXC_UPPER, pe, c);
}
@@ -172,6 +182,11 @@ ucase_totitle(UChar32 c) {
} else {
const uint16_t *pe=GET_EXCEPTIONS(&ucase_props_singleton, props);
uint16_t excWord=*pe++;
+ if(HAS_SLOT(excWord, UCASE_EXC_DELTA) && UCASE_GET_TYPE(props)==UCASE_LOWER) {
+ int32_t delta;
+ GET_SLOT_VALUE(excWord, UCASE_EXC_DELTA, pe, delta);
+ return (excWord&UCASE_EXC_DELTA_IS_NEGATIVE)==0 ? c+delta : c-delta;
+ }
int32_t idx;
if(HAS_SLOT(excWord, UCASE_EXC_TITLE)) {
idx=UCASE_EXC_TITLE;
@@ -254,6 +269,12 @@ ucase_addCaseClosure(UChar32 c, const USetAdder *sa) {
sa->add(sa->set, c);
}
}
+ if(HAS_SLOT(excWord, UCASE_EXC_DELTA)) {
+ pe=pe0;
+ int32_t delta;
+ GET_SLOT_VALUE(excWord, UCASE_EXC_DELTA, pe, delta);
+ sa->add(sa->set, (excWord&UCASE_EXC_DELTA_IS_NEGATIVE)==0 ? c+delta : c-delta);
+ }
/* get the closure string pointer & length */
if(HAS_SLOT(excWord, UCASE_EXC_CLOSURE)) {
@@ -590,7 +611,12 @@ ucase_isSoftDotted(UChar32 c) {
U_CAPI UBool U_EXPORT2
ucase_isCaseSensitive(UChar32 c) {
uint16_t props=UTRIE2_GET16(&ucase_props_singleton.trie, c);
- return (UBool)((props&UCASE_SENSITIVE)!=0);
+ if(!UCASE_HAS_EXCEPTION(props)) {
+ return (UBool)((props&UCASE_SENSITIVE)!=0);
+ } else {
+ const uint16_t *pe=GET_EXCEPTIONS(&ucase_props_singleton, props);
+ return (UBool)((*pe&UCASE_EXC_SENSITIVE)!=0);
+ }
}
/* string casing ------------------------------------------------------------ */
@@ -1140,6 +1166,11 @@ ucase_toFullLower(UChar32 c,
}
}
+ if(HAS_SLOT(excWord, UCASE_EXC_DELTA) && UCASE_IS_UPPER_OR_TITLE(props)) {
+ int32_t delta;
+ GET_SLOT_VALUE(excWord, UCASE_EXC_DELTA, pe2, delta);
+ return (excWord&UCASE_EXC_DELTA_IS_NEGATIVE)==0 ? c+delta : c-delta;
+ }
if(HAS_SLOT(excWord, UCASE_EXC_LOWER)) {
GET_SLOT_VALUE(excWord, UCASE_EXC_LOWER, pe2, result);
}
@@ -1229,6 +1260,11 @@ toUpperOrTitle(UChar32 c,
}
}
+ if(HAS_SLOT(excWord, UCASE_EXC_DELTA) && UCASE_GET_TYPE(props)==UCASE_LOWER) {
+ int32_t delta;
+ GET_SLOT_VALUE(excWord, UCASE_EXC_DELTA, pe2, delta);
+ return (excWord&UCASE_EXC_DELTA_IS_NEGATIVE)==0 ? c+delta : c-delta;
+ }
if(!upperNotTitle && HAS_SLOT(excWord, UCASE_EXC_TITLE)) {
idx=UCASE_EXC_TITLE;
} else if(HAS_SLOT(excWord, UCASE_EXC_UPPER)) {
@@ -1334,6 +1370,14 @@ ucase_fold(UChar32 c, uint32_t options) {
}
}
}
+ if((excWord&UCASE_EXC_NO_SIMPLE_CASE_FOLDING)!=0) {
+ return c;
+ }
+ if(HAS_SLOT(excWord, UCASE_EXC_DELTA) && UCASE_IS_UPPER_OR_TITLE(props)) {
+ int32_t delta;
+ GET_SLOT_VALUE(excWord, UCASE_EXC_DELTA, pe, delta);
+ return (excWord&UCASE_EXC_DELTA_IS_NEGATIVE)==0 ? c+delta : c-delta;
+ }
if(HAS_SLOT(excWord, UCASE_EXC_FOLD)) {
idx=UCASE_EXC_FOLD;
} else if(HAS_SLOT(excWord, UCASE_EXC_LOWER)) {
@@ -1421,6 +1465,14 @@ ucase_toFullFolding(UChar32 c,
}
}
+ if((excWord&UCASE_EXC_NO_SIMPLE_CASE_FOLDING)!=0) {
+ return ~c;
+ }
+ if(HAS_SLOT(excWord, UCASE_EXC_DELTA) && UCASE_IS_UPPER_OR_TITLE(props)) {
+ int32_t delta;
+ GET_SLOT_VALUE(excWord, UCASE_EXC_DELTA, pe2, delta);
+ return (excWord&UCASE_EXC_DELTA_IS_NEGATIVE)==0 ? c+delta : c-delta;
+ }
if(HAS_SLOT(excWord, UCASE_EXC_FOLD)) {
idx=UCASE_EXC_FOLD;
} else if(HAS_SLOT(excWord, UCASE_EXC_LOWER)) {
diff --git a/Build/source/libs/icu/icu-src/source/common/ucase.h b/Build/source/libs/icu/icu-src/source/common/ucase.h
index a7a8c9f00d1..b0a453b87e8 100644
--- a/Build/source/libs/icu/icu-src/source/common/ucase.h
+++ b/Build/source/libs/icu/icu-src/source/common/ucase.h
@@ -354,8 +354,8 @@ enum {
#define UCASE_IS_UPPER_OR_TITLE(props) ((props)&2)
#define UCASE_IGNORABLE 4
-#define UCASE_SENSITIVE 8
-#define UCASE_EXCEPTION 0x10
+#define UCASE_EXCEPTION 8
+#define UCASE_SENSITIVE 0x10
#define UCASE_HAS_EXCEPTION(props) ((props)&UCASE_EXCEPTION)
@@ -379,9 +379,9 @@ enum {
# define UCASE_GET_DELTA(props) (int16_t)(((props)&0x8000) ? (((props)>>UCASE_DELTA_SHIFT)|0xfe00) : ((uint16_t)(props)>>UCASE_DELTA_SHIFT))
#endif
-/* exception: bits 15..5 are an unsigned 11-bit index into the exceptions array */
-#define UCASE_EXC_SHIFT 5
-#define UCASE_EXC_MASK 0xffe0
+/* exception: bits 15..4 are an unsigned 12-bit index into the exceptions array */
+#define UCASE_EXC_SHIFT 4
+#define UCASE_EXC_MASK 0xfff0
#define UCASE_MAX_EXCEPTIONS ((UCASE_EXC_MASK>>UCASE_EXC_SHIFT)+1)
/* definitions for 16-bit main exceptions word ------------------------------ */
@@ -392,7 +392,7 @@ enum {
UCASE_EXC_FOLD,
UCASE_EXC_UPPER,
UCASE_EXC_TITLE,
- UCASE_EXC_4, /* reserved */
+ UCASE_EXC_DELTA,
UCASE_EXC_5, /* reserved */
UCASE_EXC_CLOSURE,
UCASE_EXC_FULL_MAPPINGS,
@@ -402,7 +402,11 @@ enum {
/* each slot is 2 uint16_t instead of 1 */
#define UCASE_EXC_DOUBLE_SLOTS 0x100
-/* reserved: exception bits 11..9 */
+enum {
+ UCASE_EXC_NO_SIMPLE_CASE_FOLDING=0x200,
+ UCASE_EXC_DELTA_IS_NEGATIVE=0x400,
+ UCASE_EXC_SENSITIVE=0x800
+};
/* UCASE_EXC_DOT_MASK=UCASE_DOT_MASK<<UCASE_EXC_DOT_SHIFT */
#define UCASE_EXC_DOT_SHIFT 7
diff --git a/Build/source/libs/icu/icu-src/source/common/ucase_props_data.h b/Build/source/libs/icu/icu-src/source/common/ucase_props_data.h
index fe620efc6e2..eb7d9ff9099 100644
--- a/Build/source/libs/icu/icu-src/source/common/ucase_props_data.h
+++ b/Build/source/libs/icu/icu-src/source/common/ucase_props_data.h
@@ -11,145 +11,145 @@
#ifdef INCLUDED_FROM_UCASE_CPP
-static const UVersionInfo ucase_props_dataVersion={0xa,0,0,0};
+static const UVersionInfo ucase_props_dataVersion={0xb,0,0,0};
-static const int32_t ucase_props_indexes[UCASE_IX_TOP]={0x10,0x6dfc,0x5ba0,0x79c,0x172,0,0,0,0,0,0,0,0,0,0,3};
+static const int32_t ucase_props_indexes[UCASE_IX_TOP]={0x10,0x6e72,0x5e50,0x67f,0x172,0,0,0,0,0,0,0,0,0,0,3};
-static const uint16_t ucase_props_trieIndex[11720]={
-0x327,0x32f,0x337,0x33f,0x34d,0x355,0x35d,0x365,0x36d,0x375,0x37c,0x384,0x38c,0x394,0x39c,0x3a4,
-0x3aa,0x3b2,0x3ba,0x3c2,0x3ca,0x3d2,0x3da,0x3e2,0x3ea,0x3f2,0x3fa,0x402,0x40a,0x412,0x41a,0x422,
-0x42a,0x432,0x43a,0x442,0x44a,0x452,0x45a,0x462,0x45e,0x466,0x46b,0x473,0x47a,0x482,0x48a,0x492,
-0x49a,0x4a2,0x4aa,0x4b2,0x346,0x34e,0x4b7,0x4bf,0x4c4,0x4cc,0x4d4,0x4dc,0x4db,0x4e3,0x4e8,0x4f0,
-0x4f7,0x4fe,0x502,0x346,0x346,0x327,0x512,0x50a,0x51a,0x51c,0x524,0x52c,0x530,0x531,0x539,0x541,
-0x549,0x531,0x551,0x556,0x549,0x531,0x55e,0x566,0x530,0x56e,0x576,0x541,0x57b,0x346,0x583,0x346,
-0x4a1,0x4dd,0x58b,0x541,0x530,0x56e,0x592,0x541,0x59a,0x59c,0x539,0x541,0x346,0x346,0x5a4,0x346,
-0x346,0x5aa,0x5b1,0x346,0x346,0x5b5,0x5bd,0x346,0x5c1,0x5c8,0x346,0x5cf,0x5d7,0x5de,0x5e6,0x346,
-0x346,0x5eb,0x5f3,0x5fb,0x603,0x60b,0x613,0x490,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x617,0x346,0x346,0x627,0x62f,0x61f,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x637,0x637,0x53d,0x53d,0x346,0x63d,0x645,0x346,
-0x64d,0x346,0x655,0x346,0x548,0x65b,0x346,0x346,0x346,0x663,0x346,0x346,0x346,0x346,0x346,0x346,
-0x66a,0x346,0x671,0x679,0x346,0x681,0x346,0x346,0x56d,0x689,0x691,0x697,0x59a,0x69f,0x346,0x6a6,
-0x346,0x6ab,0x346,0x6b1,0x6b9,0x346,0x6bd,0x6c5,0x6cd,0x6d2,0x6d5,0x6dd,0x6ed,0x6e5,0x6fd,0x6f5,
-0x36d,0x705,0x36d,0x70d,0x710,0x36d,0x718,0x36d,0x720,0x728,0x730,0x738,0x740,0x748,0x750,0x758,
-0x760,0x767,0x346,0x76f,0x777,0x346,0x77f,0x787,0x78f,0x797,0x79f,0x7a7,0x7af,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x7b2,0x7b8,0x7be,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x7c6,0x7cb,0x7cf,0x7d7,0x36d,0x36d,0x36d,0x7df,0x7e7,0x7ef,0x346,0x7f4,0x346,0x346,0x346,0x7fc,
-0x346,0x652,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x52f,0x804,0x346,0x346,0x80b,0x346,0x346,0x813,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x81b,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x6b1,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x821,0x346,0x829,0x82e,0x836,0x346,0x346,0x83e,0x846,0x84e,0x36d,0x853,0x85b,0x861,0x346,0x867,
-0x86f,0x548,0x346,0x346,0x346,0x346,0x876,0x87e,0x346,0x885,0x88c,0x346,0x51a,0x891,0x899,0x548,
-0x346,0x89f,0x8a7,0x8ab,0x346,0x8b3,0x8bb,0x8c3,0x346,0x8c9,0x8cd,0x8d5,0x8e5,0x8dd,0x346,0x8ed,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x8f5,0x346,0x346,0x346,0x346,0x8fd,0x59a,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x902,0x90a,0x90e,0x346,0x346,0x346,0x346,0x329,0x32f,0x916,0x91e,0x925,0x4dd,0x346,0x346,0x92d,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0xd1c,0xd1c,0xd34,0xd74,0xdb4,0xdf0,0xe30,0xe70,0xea8,0xee8,0xf28,0xf68,0xfa8,0xfe8,0x1028,0x1068,
-0x10a8,0x10e8,0x1128,0x1168,0x1178,0x11ac,0x11e8,0x1228,0x1268,0x12a8,0xd18,0x12dc,0x1310,0x1350,0x136c,0x13a0,
-0x9e1,0xa11,0xa51,0xa8c,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0xab7,0x188,0x188,
-0x188,0x188,0x188,0x188,0x188,0x188,0x188,0xaf7,0x188,0x188,0xb2c,0xb6b,0xbab,0xbe5,0xc1c,0x188,
+static const uint16_t ucase_props_trieIndex[12064]={
+0x32c,0x334,0x33c,0x344,0x352,0x35a,0x362,0x36a,0x372,0x37a,0x381,0x389,0x391,0x399,0x3a1,0x3a9,
+0x3af,0x3b7,0x3bf,0x3c7,0x3cf,0x3d7,0x3df,0x3e7,0x3ef,0x3f7,0x3ff,0x407,0x40f,0x417,0x41f,0x427,
+0x42f,0x437,0x43f,0x447,0x44f,0x457,0x45f,0x467,0x463,0x46b,0x470,0x478,0x47f,0x487,0x48f,0x497,
+0x49f,0x4a7,0x4af,0x4b7,0x34b,0x353,0x4bc,0x4c4,0x4c9,0x4d1,0x4d9,0x4e1,0x4e0,0x4e8,0x4ed,0x4f5,
+0x4fd,0x504,0x508,0x34b,0x34b,0x32c,0x518,0x510,0x520,0x522,0x52a,0x532,0x536,0x537,0x53f,0x547,
+0x54f,0x537,0x557,0x55c,0x54f,0x537,0x564,0x56c,0x536,0x574,0x57c,0x584,0x58c,0x34b,0x594,0x34b,
+0x59c,0x4e2,0x5a4,0x584,0x536,0x574,0x5ab,0x584,0x5b3,0x5b5,0x53f,0x584,0x34b,0x34b,0x5bd,0x34b,
+0x34b,0x5c3,0x5ca,0x34b,0x34b,0x5ce,0x5d6,0x34b,0x5da,0x5e1,0x34b,0x5e8,0x5f0,0x5f7,0x5ff,0x34b,
+0x34b,0x604,0x60c,0x614,0x61c,0x624,0x62b,0x633,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x63b,0x34b,0x34b,0x64b,0x64b,0x643,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x653,0x653,0x543,0x543,0x34b,0x659,0x661,0x34b,
+0x669,0x34b,0x671,0x34b,0x678,0x67e,0x34b,0x34b,0x34b,0x686,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x68d,0x34b,0x694,0x69c,0x34b,0x6a4,0x34b,0x34b,0x573,0x6ac,0x6b4,0x6ba,0x5b3,0x6c2,0x34b,0x6c9,
+0x34b,0x6ce,0x34b,0x6d4,0x6dc,0x6e0,0x6e8,0x6f0,0x6f8,0x6fd,0x700,0x708,0x718,0x710,0x728,0x720,
+0x372,0x730,0x372,0x738,0x73b,0x372,0x743,0x372,0x74b,0x753,0x75b,0x763,0x76b,0x773,0x77b,0x783,
+0x78b,0x792,0x34b,0x79a,0x7a2,0x34b,0x7aa,0x7b2,0x7ba,0x7c2,0x7ca,0x7d2,0x7da,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x7dd,0x7e3,0x7e9,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x7f1,0x7f6,0x7fa,0x802,0x372,0x372,0x372,0x80a,0x812,0x819,0x34b,0x81e,0x34b,0x34b,0x34b,0x826,
+0x34b,0x66e,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x535,0x82e,0x34b,0x34b,0x835,0x34b,0x34b,0x83d,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x845,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x6d4,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x84b,0x34b,0x853,0x858,0x860,0x34b,0x34b,0x868,0x870,0x878,0x372,0x87d,0x885,0x88b,0x34b,0x892,
+0x89a,0x678,0x34b,0x34b,0x34b,0x34b,0x8a1,0x8a9,0x34b,0x8b1,0x8b8,0x34b,0x520,0x8bd,0x8c5,0x678,
+0x34b,0x8cb,0x8d3,0x8d7,0x34b,0x8df,0x8e7,0x8ef,0x34b,0x8f5,0x8f9,0x901,0x911,0x909,0x34b,0x919,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x921,0x34b,0x34b,0x34b,0x34b,0x929,0x5b3,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x92e,0x936,0x93a,0x34b,0x34b,0x34b,0x34b,0x32e,0x334,0x942,0x94a,0x951,0x4e2,0x34b,0x34b,0x959,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0xd30,0xd30,0xd48,0xd88,0xdc8,0xe04,0xe44,0xe84,0xebc,0xefc,0xf3c,0xf7c,0xfbc,0xffc,0x103c,0x107c,
+0x10bc,0x10fc,0x113c,0x117c,0x118c,0x11c0,0x11fc,0x123c,0x127c,0x12bc,0xd2c,0x12f0,0x1324,0x1364,0x1380,0x13b4,
+0x9e1,0xa11,0xa51,0xa90,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0xac8,0x188,0x188,
+0x188,0x188,0x188,0x188,0x188,0x188,0x188,0xb08,0x188,0x188,0xb3d,0xb7c,0xbbc,0xbf6,0xc2d,0x188,
0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,
0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,
0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,
@@ -174,246 +174,253 @@ static const uint16_t ucase_props_trieIndex[11720]={
0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,
0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,
0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,
-0xc5c,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x656,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x935,0x346,0x346,0x346,0x938,0x346,0x346,0x346,
-0x346,0x940,0x946,0x94a,0x346,0x346,0x94e,0x952,0x958,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x960,0x964,0x346,0x346,0x346,0x346,0x346,0x96c,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x974,0x978,0x980,0x984,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x530,0x989,0x990,0x59b,0x59a,0x994,0x346,0x346,0x99c,0x9a3,0x346,0x9a9,0x59a,0x9ae,0x9b6,
-0x346,0x346,0x9bb,0x346,0x346,0x346,0x346,0x329,0x9c3,0x59a,0x531,0x9cb,0x9d2,0x346,0x346,0x346,
-0x346,0x346,0x989,0x9da,0x346,0x346,0x9de,0x9e6,0x346,0x346,0x346,0x346,0x346,0x346,0x9ea,0x9f2,
-0x346,0x346,0x9fa,0x4a1,0x346,0x346,0xa02,0x346,0x346,0xa08,0xa10,0x346,0x346,0x346,0x346,0x346,
-0x346,0xa18,0xa20,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0xa28,0xa2c,0xa34,0x346,
-0xa3b,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0xa42,0x346,0x346,
-0x8fd,0xa4a,0x346,0x346,0x346,0xa50,0xa58,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0xa5c,0x346,
-0xa62,0x56d,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0xa68,0x346,0x346,0x59a,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0xa70,0x56d,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0xa78,0xa80,0xa86,0x346,0x346,0x346,0x346,0xa8e,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0xa96,0xa9e,0xaa3,0xaa9,
-0xab1,0xab9,0xac1,0xa9a,0xac9,0xad1,0xad9,0xae0,0xa9b,0xa96,0xa9e,0xa99,0xaa9,0xa9c,0xa97,0xae8,
-0xa9a,0xaf0,0xaf8,0xb00,0xb07,0xaf3,0xafb,0xb03,0xb0a,0xaf6,0xb12,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x846,0xb1a,0x846,0xb21,0xb28,
-0xb30,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0xb38,0xb40,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0xb44,0x346,0xb4c,0xb54,0xb5b,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0xa92,0xb63,0xb63,0xb69,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x99e,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x530,0x846,0x846,0x846,
-0x346,0x346,0x346,0x346,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0xa6c,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,
-0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,4,0,0,0,0,0,0,4,0,0,0,0,0,
-0,0,0,0,0,0,4,0,0,0,0,0,0,0x100a,0x100a,0x100a,
-0x100a,0x100a,0x100a,0x100a,0x100a,0x1a,0xba,0xfa,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x17a,
-0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0,0,0,4,0,4,0xf009,0xf009,0xf009,
-0xf009,0xf009,0xf009,0xf009,0xf009,0x1f9,0xf029,0x299,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0x319,
-0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,4,0,1,0,
-0,4,0,4,0,0,0,0,4,0x399,0,4,4,0,1,0,
-0,0,0,0,0x100a,0x100a,0x100a,0x100a,0x100a,0x3fa,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,
-0x47a,0x4ba,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0,0x100a,0x100a,0x100a,0x100a,
-0x100a,0x100a,0x100a,0x4f9,0xf009,0xf009,0xf009,0xf009,0xf009,0x639,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,
-0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0,0xf009,0xf009,0xf009,0xf009,
-0xf009,0xf009,0xf009,0x3c89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,
-0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,
-0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x6ba,0xff89,0x8a,0xff89,
-0x8a,0xff89,0x6fa,0xffa9,0x73a,0x7f9,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,1,0x8a,0xff89,0x8a,
-0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x899,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,
-0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,
-0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,
-0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0xc38a,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x999,
-0x6189,0x690a,0x8a,0xff89,0x8a,0xff89,0x670a,0x8a,0xff89,0x668a,0x668a,0x8a,0xff89,1,0x278a,0x650a,
-0x658a,0x8a,0xff89,0x668a,0x678a,0x3089,0x698a,0x688a,0x8a,0xff89,0x5189,1,0x698a,0x6a8a,0x4109,0x6b0a,
-0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x6d0a,0x8a,0xff89,0x6d0a,1,1,0x8a,0xff89,0x6d0a,0x8a,
-0xff89,0x6c8a,0x6c8a,0x8a,0xff89,0x8a,0xff89,0x6d8a,0x8a,0xff89,1,0,0x8a,0xff89,1,0x1c09,
-0,0,0,0,0x9fa,0xa5b,0xad9,0xb3a,0xb9b,0xc19,0xc7a,0xcdb,0xd59,0x8a,0xff89,0x8a,
-0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0xd889,0x8a,0xff89,
-0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,
-0xdb9,0xeba,0xf1b,0xf99,0x8a,0xff89,0xcf8a,0xe40a,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,
-0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,
-0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0xbf0a,1,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,
-0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,1,1,1,1,
-1,1,0xffa,0x8a,0xff89,0xae8a,0x103a,0x1079,0x10b9,0x8a,0xff89,0x9e8a,0x228a,0x238a,0x8a,0xff89,
-0x8a,0xffa9,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x10f9,0x1139,0x1179,0x9709,0x9909,1,0x9989,0x9989,
-1,0x9b09,1,0x9a89,0x11b9,1,1,1,0x9989,0x11f9,1,0x9889,1,0x1239,0x1279,1,
-0x97a9,0x9689,0x12b9,0x12f9,0x1339,1,1,0x9689,1,0x1379,0x9589,1,1,0x9509,1,1,
-1,1,1,1,1,0x13b9,1,1,0x9309,1,1,0x9309,1,1,1,0x13f9,
-0x9309,0xdd89,0x9389,0x9389,0xdc89,1,1,1,1,1,0x9289,1,0,1,1,1,
-1,1,1,1,1,0x1439,0x1479,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,5,5,0x25,5,5,5,5,5,
-5,4,4,4,0xc,4,0xc,4,5,5,4,4,4,4,4,4,
+0xc6d,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x960,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x968,0x34b,0x34b,0x34b,0x96b,0x34b,0x34b,0x34b,
+0x34b,0x973,0x979,0x97d,0x34b,0x34b,0x981,0x985,0x98b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x993,0x997,0x34b,0x34b,0x34b,0x34b,0x34b,0x99f,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x9a7,0x9ab,0x9b3,0x9b7,0x34b,0x9be,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x9c5,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x536,0x9ca,0x9d1,0x5b4,0x5b3,0x9d5,0x533,0x34b,0x9dd,0x9e4,0x34b,0x9ea,0x5b3,0x9ef,0x9f7,
+0x34b,0x34b,0x9fc,0x34b,0x34b,0x34b,0x34b,0x32e,0xa04,0x5b3,0x5b5,0xa0c,0xa13,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x9ca,0xa1b,0x34b,0x34b,0xa23,0xa2b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0xa2f,0xa37,
+0x34b,0x34b,0xa3f,0x4a6,0x34b,0x34b,0xa47,0x34b,0x34b,0xa4d,0xa55,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0xa5a,0x34b,0x34b,0x34b,0xa62,0xa6a,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0xa72,0xa76,0xa7e,0x34b,0xa85,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0xa8c,0x34b,0x34b,0x929,0xa94,0x34b,0x34b,0x34b,0xa9a,0xaa2,0x34b,0xaa6,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0xaac,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0xab2,
+0x34b,0xab8,0x573,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0xa62,0xa6a,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0xabe,0x34b,0x34b,0x5b3,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0xac6,0x573,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0xace,0xad6,0xadc,0x34b,0x34b,0x34b,0x34b,0xae4,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0xaec,0xaf4,0xaf9,
+0xaff,0xb07,0xb0f,0xb17,0xaf0,0xb1f,0xb27,0xb2f,0xb36,0xaf1,0xaec,0xaf4,0xaef,0xaff,0xaf2,0xaed,
+0xb3e,0xaf0,0xb46,0xb4e,0xb56,0xb5d,0xb49,0xb51,0xb59,0xb60,0xb4c,0xb68,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x870,0xb70,0x870,0xb77,
+0xb7e,0xb86,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0xb8e,0xb96,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0xb9a,0x34b,0xba2,0xbaa,
+0xbb1,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0xae8,0xbb9,0xbb9,0xbbf,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x9df,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x536,0x870,0x870,
+0x870,0x34b,0x34b,0x34b,0x34b,0x870,0x870,0x870,0x870,0x870,0x870,0x870,0xac2,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
+0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x32b,0x32b,0x32b,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,4,0,0,0,0,0,0,4,0,
+0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,
+0,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0xa,0x5a,0x7a,0x1012,0x1012,0x1012,0x1012,
+0x1012,0x1012,0x1012,0xba,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0,0,0,4,0,
+4,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf9,0xf031,0x149,0xf011,0xf011,0xf011,0xf011,
+0xf011,0xf011,0xf011,0x189,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+4,0,1,0,0,4,0,4,0,0,0,0,4,0x1c9,0,4,
+4,0,1,0,0,0,0,0,0x1012,0x1012,0x1012,0x1012,0x1012,0x1fa,0x1012,0x1012,
+0x1012,0x1012,0x1012,0x1012,0x5a,0x5a,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0,
+0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x239,0xf011,0xf011,0xf011,0xf011,0xf011,0x2d9,0xf011,0xf011,
+0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0,
+0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0x3c91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
+0x31a,0xff91,0x92,0xff91,0x92,0xff91,0x31a,0xffb1,0x33a,0x389,0x92,0xff91,0x92,0xff91,0x92,0xff91,
+1,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x3d9,0x92,0xff91,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0xc392,0x92,0xff91,0x92,
+0xff91,0x92,0xff91,0x459,0x6191,0x6912,0x92,0xff91,0x92,0xff91,0x6712,0x92,0xff91,0x6692,0x6692,0x92,
+0xff91,1,0x2792,0x6512,0x6592,0x92,0xff91,0x6692,0x6792,0x3091,0x6992,0x6892,0x92,0xff91,0x5191,1,
+0x6992,0x6a92,0x4111,0x6b12,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x6d12,0x92,0xff91,0x6d12,1,1,
+0x92,0xff91,0x6d12,0x92,0xff91,0x6c92,0x6c92,0x92,0xff91,0x92,0xff91,0x6d92,0x92,0xff91,1,0,
+0x92,0xff91,1,0x1c11,0,0,0,0,0x48a,0x4bb,0x4f9,0x52a,0x55b,0x599,0x5ca,0x5fb,
+0x639,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,
+0xff91,0xd891,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
+0x92,0xff91,0x92,0xff91,0x669,0x6ea,0x71b,0x759,0x92,0xff91,0xcf92,0xe412,0x92,0xff91,0x92,0xff91,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0xbf12,1,0x92,0xff91,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
+1,1,1,1,1,1,0x78a,0x92,0xff91,0xae92,0x7aa,0x7c9,0x7c9,0x92,0xff91,0x9e92,
+0x2292,0x2392,0x92,0xff91,0x92,0xffb1,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x7e9,0x809,0x829,0x9711,
+0x9911,1,0x9991,0x9991,1,0x9b11,1,0x9a91,0x849,1,1,1,0x9991,0x869,1,0x9891,
+1,0x889,0x8a9,1,0x97b1,0x9691,0x8a9,0x8c9,0x8e9,1,1,0x9691,1,0x909,0x9591,1,
+1,0x9511,1,1,1,1,1,1,1,0x929,1,1,0x9311,1,1,0x9311,
+1,1,1,0x949,0x9311,0xdd91,0x9391,0x9391,0xdc91,1,1,1,1,1,0x9291,1,
+0,1,1,1,1,1,1,1,1,0x969,0x989,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,5,5,0x25,5,
+5,5,5,5,5,4,4,4,0x14,4,0x14,4,5,5,4,4,
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
-4,4,4,4,4,4,4,4,5,5,5,5,5,4,4,4,
-4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
-4,4,4,4,4,4,4,4,0x4c,0x4c,0x44,0x44,0x44,0x44,0x44,0x14bc,
-0x4c,0x44,0x4c,0x44,0x4c,0x44,0x44,0x44,0x44,0x44,0x44,0x4c,0x44,0x64,0x64,0x64,
-0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,
-0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x6c,0x64,0x64,0x64,0x64,0x64,0x64,
-0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0x4c,0x44,0x44,0x14dd,0x44,0x64,
-0x64,0x64,0x44,0x44,0x44,0x64,0x64,4,0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x44,
-0x64,0x64,0x64,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x44,0x44,0x44,
-0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x8a,0xff89,0x8a,0xff89,4,4,0x8a,0xff89,
-0,0,5,0x4109,0x4109,0x4109,0,0x3a0a,0,0,0,0,4,4,0x130a,4,
-0x128a,0x128a,0x128a,0,0x200a,0,0x1f8a,0x1f8a,0x1579,0x100a,0x171a,0x100a,0x100a,0x179a,0x100a,0x100a,
-0x181a,0x18ba,0x195a,0x100a,0x19da,0x100a,0x100a,0x100a,0x1a5a,0x1ada,0,0x1b5a,0x100a,0x100a,0x1bda,0x100a,
-0x100a,0x1c5a,0x100a,0x100a,0xed09,0xed89,0xed89,0xed89,0x1cd9,0xf009,0x1e79,0xf009,0xf009,0x1ef9,0xf009,0xf009,
-0x1f79,0x2019,0x20b9,0xf009,0x2139,0xf009,0xf009,0xf009,0x21b9,0x2239,0x22b9,0x2319,0xf009,0xf009,0x2399,0xf009,
-0xf009,0x2419,0xf009,0xf009,0xe009,0xe089,0xe089,0x40a,0x2499,0x24f9,2,2,2,0x2599,0x25f9,0xfc09,
-0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,
-0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x2659,0x26b9,0x389,0xc629,0x271a,0x27b9,0,0x8a,
-0xff89,0xfc8a,0x8a,0xff89,1,0xbf0a,0xbf0a,0xbf0a,0x280a,0x280a,0x280a,0x280a,0x280a,0x280a,0x280a,0x280a,
-0x280a,0x280a,0x280a,0x280a,0x280a,0x280a,0x280a,0x280a,0x100a,0x100a,0x281a,0x100a,0x289a,0x100a,0x100a,0x100a,
-0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x291a,0x100a,0x100a,0x299a,0x2a1a,0x100a,0x100a,0x100a,0x100a,0x100a,
-0x100a,0x100a,0x2aba,0x100a,0x100a,0x100a,0x100a,0x100a,0xf009,0xf009,0x2b39,0xf009,0x2bb9,0xf009,0xf009,0xf009,
-0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0x2c39,0xf009,0xf009,0x2cb9,0x2d39,0xf009,0xf009,0xf009,0xf009,0xf009,
-0xf009,0xf009,0x2dd9,0xf009,0xf009,0xf009,0xf009,0xf009,0xd809,0xd809,0xd809,0xd809,0xd809,0xd809,0xd829,0xd809,
-0xd829,0xd809,0xd809,0xd809,0xd809,0xd809,0xd809,0xd809,0x8a,0xff89,0x2e5a,0x2ed9,0x8a,0xff89,0x8a,0xff89,
-0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,
-0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0,0x44,0x44,0x44,0x44,0x44,
-4,4,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,
-0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,
-0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,
-0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x78a,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,
-0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0xf889,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,
-0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,
-0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,
-0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,
-0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,
-0x180a,0x180a,0x180a,0,0,4,0,0,0,0,0,0,0,0xe809,0xe809,0xe809,
-0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,
-0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0x2f59,
-0,0,0,0,0,0,0,0,0,0x64,0x44,0x44,0x44,0x44,0x64,0x44,
-0x44,0x44,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x64,0x64,
-0x44,0x44,0x64,0x44,0x44,0x64,0x64,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,
-0x64,0x64,0x64,0x64,0x64,0x64,0,0x64,0,0x64,0x64,0,0x44,0x64,0,0x64,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,
+5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+4,4,4,4,4,4,4,4,4,4,4,4,0x54,0x54,0x44,0x44,
+0x44,0x44,0x44,0x9ac,0x54,0x44,0x54,0x44,0x54,0x44,0x44,0x44,0x44,0x44,0x44,0x54,
+0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,
+0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x74,0x64,0x64,
+0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0x54,0x44,
+0x44,0x9bd,0x44,0x64,0x64,0x64,0x44,0x44,0x44,0x64,0x64,4,0x44,0x44,0x44,0x64,
+0x64,0x64,0x64,0x44,0x64,0x64,0x64,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x44,
+0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x92,0xff91,0x92,0xff91,
+4,4,0x92,0xff91,0,0,5,0x4111,0x4111,0x4111,0,0x3a12,0,0,0,0,
+4,4,0x1312,4,0x1292,0x1292,0x1292,0,0x2012,0,0x1f92,0x1f92,0xa09,0x1012,0xada,0x1012,
+0x1012,0xb1a,0x1012,0x1012,0xb5a,0xbaa,0xbfa,0x1012,0xc3a,0x1012,0x1012,0x1012,0xc7a,0xcba,0,0xcfa,
+0x1012,0x1012,0xd3a,0x1012,0x1012,0xd7a,0x1012,0x1012,0xed11,0xed91,0xed91,0xed91,0xdb9,0xf011,0xe89,0xf011,
+0xf011,0xec9,0xf011,0xf011,0xf09,0xf59,0xfa9,0xf011,0xfe9,0xf011,0xf011,0xf011,0x1029,0x1069,0x10a9,0x10d9,
+0xf011,0xf011,0x1119,0xf011,0xf011,0x1159,0xf011,0xf011,0xe011,0xe091,0xe091,0x412,0x1199,0x11c9,2,2,
+2,0x1219,0x1249,0xfc11,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x1279,0x12a9,0x391,0xc631,
+0x12da,0x1329,0,0x92,0xff91,0xfc92,0x92,0xff91,1,0xbf12,0xbf12,0xbf12,0x2812,0x2812,0x2812,0x2812,
+0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x1012,0x1012,0x135a,0x1012,
+0x139a,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x13da,0x1012,0x1012,0x141a,0x145a,0x1012,
+0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x14aa,0x1012,0x1012,0x1012,0x1012,0x1012,0xf011,0xf011,0x14e9,0xf011,
+0x1529,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0x1569,0xf011,0xf011,0x15a9,0x15e9,0xf011,
+0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0x1639,0xf011,0xf011,0xf011,0xf011,0xf011,0xd811,0xd811,0xd811,0xd811,
+0xd811,0xd811,0xd831,0xd811,0xd831,0xd811,0xd811,0xd811,0xd811,0xd811,0xd811,0xd811,0x92,0xff91,0x167a,0x16b9,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0,0x44,
+0x44,0x44,0x44,0x44,4,4,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x792,0x92,0xff91,0x92,
+0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0xf891,0x92,0xff91,0x92,0xff91,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0,0x1812,0x1812,0x1812,
+0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,
+0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0,0,4,0,0,0,0,0,0,
+1,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,
+0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,
+0xe811,0xe811,0xe811,0x16f9,1,0,0,0,0,0,0,0,0,0x64,0x44,0x44,
+0x44,0x44,0x64,0x44,0x44,0x44,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x64,
+0x64,0x64,0x64,0x64,0x44,0x44,0x64,0x44,0x44,0x64,0x64,0x44,0x64,0x64,0x64,0x64,
+0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0,0x64,0,0x64,0x64,0,
+0x44,0x64,0,0x64,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+4,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,
+4,4,0,0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,
+0x44,0x44,0x44,0x44,0x64,0x64,0x64,0,4,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,
-0,0,0,0,0,0,0,0,4,4,4,4,4,4,0,0,
-0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
-0x64,0x64,0x64,0,4,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x44,
+0x44,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0x64,0x44,0x44,0x64,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x64,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,
-0,0,0,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x64,0x64,0x44,
-0x44,0x44,0x44,0x44,0x64,0x44,0x44,0x64,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x64,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,4,0,0x44,
+0x44,0x44,0x44,0x64,0x44,4,4,0x44,0x44,0,0x64,0x44,0x44,0x64,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,4,0,0x44,0x44,0x44,0x44,0x64,
-0x44,4,4,0x44,0x44,0,0x64,0x44,0x44,0x64,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
-0,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,4,0,0x64,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x44,0x64,0x44,0x44,0x64,0x44,0x44,0x64,0x64,0x64,0x44,0x64,0x64,0x44,0x64,0x44,
-0x44,0x44,0x64,0x44,0x64,0x44,0x64,0x44,0x64,0x44,0x44,0,0,0,0,0,
+0,0,0,0,0x44,0x64,0x44,0x44,0x64,0x44,0x44,0x64,0x64,0x64,0x44,0x64,
+0x64,0x44,0x64,0x44,0x44,0x44,0x64,0x44,0x64,0x44,0x64,0x44,0x64,0x44,0x44,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,4,4,4,4,4,4,4,4,4,4,4,0,0,0,
+0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,
+4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x44,
+0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x44,4,4,0,0,0,0,4,0,
+0,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,4,0x44,
+0x44,0x44,0x44,0x44,4,0x44,0x44,0x44,4,0x44,0x44,0x44,0x44,0x44,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,0x44,
-0x44,0x44,0x64,0x44,4,4,0,0,0,0,4,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0x64,0x64,0x64,0,0,0,0,
+0x44,0x44,4,0x64,0x44,0x44,0x64,0x44,0x44,0x64,0x44,0x44,0x44,0x64,0x64,0x64,
+0x64,0x64,0x64,0x44,0x44,0x44,0x64,0x44,0x44,0x64,0x64,0x44,0x44,0x44,0x44,0x44,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0x44,0x44,0x44,0x44,4,0x44,0x44,0x44,0x44,0x44,4,0x44,0x44,0x44,
-4,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
+4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0x64,0x64,0x64,0,0,0,0,0x44,0x44,4,0x64,0x44,0x44,0x64,0x44,
-0x44,0x64,0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x44,0x64,0x44,
-0x44,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,
-0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,4,4,4,0,0,0,0,0,
+0,0,4,0,0x64,0,0,0,0,4,4,4,4,4,4,4,
+4,0,0,0,0,0x64,0,0,0,0x44,0x64,0x44,0x44,4,4,4,
+0,0,0,0,0,0,0,0,0,0,4,4,0,0,0,0,
+0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,4,0,0x64,0,0,0,
-0,4,4,4,4,4,4,4,4,0,0,0,0,0x64,0,0,
-0,0x44,0x64,0x44,0x44,4,4,4,0,0,0,0,0,0,0,0,
-0,0,4,4,0,0,0,0,0,0,0,0,0,0,0,0,
-0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x64,0,0,0,0,4,4,4,
+4,0,0,0,0,0,0,0,0,0x64,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x64,0,0,0,0,4,4,4,4,0,0,0,0,0,0,0,
-0,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,4,4,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0x44,0,0,4,4,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,4,4,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,
+0,0,0,4,4,0,0,4,4,0x64,0,0,0,4,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,4,4,0,0,0,0,4,4,0,0,4,
-4,0x64,0,0,0,4,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,4,4,0,0,0,4,0,0,
-0,0,0,0,0,0,0,0,0,4,4,4,4,4,0,4,
-4,0,0,0,0,0x64,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,4,4,0,0,0,0,
+4,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,
+0,4,4,4,4,4,0,4,4,0,0,0,0,0x64,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,4,4,4,4,4,4,0,0,0,0,0,0,0,0,
+0,0,4,4,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x64,0,0,4,0,4,4,4,4,0,0,0,
-0,0,0,0,0,0x64,0,0,0,0,0,0,0,0,4,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x64,0,0,4,
+0,4,4,4,4,0,0,0,0,0,0,0,0,0x64,0,0,
+0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,
+0,0,4,4,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,
-0,0,0,0,0,0,0,0,0,0x64,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,
-0,0,4,4,4,0,4,4,4,0x64,0,0,0,0,0,0,
-0,0x64,0x64,0,0,0,0,0,0,0,0,0,0,0,4,0,
-0,0,0,0,4,0x64,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,4,4,0,0,0,0,0,0,
+0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0x64,0x64,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0x64,0,0,0,0,0,
-0,0,4,4,4,0,4,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,4,0,0,4,4,4,4,
-0x64,0x64,0x64,0,0,0,0,0,0,0,4,4,0x64,0x64,0x64,0x64,
-4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,4,0,0,4,4,4,4,0x64,0x64,0,4,
-4,0,0,0,0,0,0,0,0,0,4,0,0x64,0x64,0x64,0x64,
-4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x64,0x64,0,0,
+4,0,0,0,0,0,0,0,0,0,0,0,0,0x64,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0x64,0,0x64,0,0x64,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0x64,0x64,4,
-0x64,4,4,4,4,4,0x64,0x64,0x64,0x64,4,0,0x64,4,0x44,0x44,
-0x64,0,0x44,0x44,0,0,0,0,0,4,4,4,4,4,4,4,
-4,4,4,4,0,4,4,4,4,4,4,4,4,4,4,4,
-4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
-4,4,4,4,4,0,0,0,0,0,0,0,0,0,0x64,0,
+4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+4,0,0,0,0,0,4,4,4,0,4,4,4,0x64,0,0,
+0,0,0,0,0,0x64,0x64,0,0,0,0,0,0,0,0,0,
+0,0,4,0,0,0,0,0,4,0x64,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,4,4,4,4,0,4,4,
-4,4,4,0x64,0,0x64,0x64,0,0,4,4,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x64,
+0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0x64,0,
+0,0,0,0,0,0,4,4,4,0,4,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,
+4,4,4,4,0x64,0x64,0x64,0,0,0,0,0,0,0,4,4,
+0x64,0x64,0x64,0x64,4,4,4,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,4,0,0,4,4,4,4,
+0x64,0x64,0,4,4,0,0,0,0,0,0,0,0,0,4,0,
+0x64,0x64,0x64,0x64,4,4,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,4,4,0,0,0,0,4,4,4,0,0,0,
+0x64,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0x64,0,0x64,0,0x64,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0x64,0x64,4,0x64,4,4,4,4,4,0x64,0x64,0x64,0x64,4,0,
+0x64,4,0x44,0x44,0x64,0,0x44,0x44,0,0,0,0,0,4,4,4,
+4,4,4,4,4,4,4,4,0,4,4,4,4,4,4,4,
+4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,
+0,0,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,
-4,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,
-0,4,4,0,0,0,0,0,0,0x64,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,4,0,0,0x305a,0x309a,0x30da,0x311a,
-0x315a,0x319a,0x31da,0x321a,0x325a,0x329a,0x32da,0x331a,0x335a,0x339a,0x33da,0x341a,0x345a,0x349a,0x34da,0x351a,
-0x355a,0x359a,0x35da,0x361a,0x365a,0x369a,0x36da,0x371a,0x375a,0x379a,0x37da,0x381a,0x385a,0x389a,0x38da,0x391a,
-0x395a,0x399a,0,0x39da,0,0,0,0,0,0x3a1a,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x525a,0x52ba,0x531a,0x537a,
-0x53da,0x543a,0x549a,0x54fa,0x555a,0x55ba,0x561a,0x567a,0x56da,0x573a,0x579a,0x57fa,0x585a,0x58ba,0x591a,0x597a,
-0x59da,0x5a3a,0,0,0x5a99,0x5af9,0x5b59,0x5bb9,0x5c19,0x5c79,0,0,0x3a5a,0x3aba,0x3b1a,0x3b7a,
-0x3bda,0x3c3a,0x3c9a,0x3cfa,0x3d5a,0x3dba,0x3e1a,0x3e7a,0x3eda,0x3f3a,0x3f9a,0x3ffa,0x405a,0x40ba,0x411a,0x417a,
-0x41da,0x423a,0x429a,0x42fa,0x435a,0x43ba,0x441a,0x447a,0x44da,0x453a,0x459a,0x45fa,0x465a,0x46ba,0x471a,0x477a,
-0x47da,0x483a,0x489a,0x48fa,0x495a,0x49ba,0x4a1a,0x4a7a,0x4ada,0x4b3a,0x4b9a,0x4bfa,0x4c5a,0x4cba,0x4d1a,0x4d7a,
-0x4dda,0x4e3a,0x4e9a,0x4efa,0x4f5a,0x4fba,0x501a,0x507a,0x50da,0x513a,0x519a,0x51fa,0,0,0,0,
+4,0,4,4,4,4,4,0x64,0,0x64,0x64,0,0,4,4,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,4,4,0,0,0,0,4,4,
+4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,
+0,0,4,0,0,4,4,0,0,0,0,0,0,0x64,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,
+0x177a,0x177a,0x177a,0x177a,0x177a,0x177a,0x177a,0x177a,0x177a,0x177a,0x177a,0x177a,0x177a,0x177a,0x177a,0x177a,
+0x177a,0x177a,0x177a,0x177a,0x177a,0x177a,0x177a,0x177a,0x177a,0x177a,0x177a,0x177a,0x177a,0x177a,0x177a,0x177a,
+0x177a,0x177a,0,0x177a,0,0,0,0,0,0x177a,0,0,0x1799,0x17c9,0x17f9,0x1829,
+0x1859,0x1889,0x18b9,0x18e9,0x1919,0x1949,0x1979,0x19a9,0x19d9,0x1a09,0x1a39,0x1a69,0x1a99,0x1ac9,0x1af9,0x1b29,
+0x1b59,0x1b89,0x1bb9,0x1be9,0x1c19,0x1c49,0x1c79,0x1ca9,0x1cd9,0x1d09,0x1d39,0x1d69,0x1d99,0x1dc9,0x1df9,0x1e29,
+0x1e59,0x1e89,0x1eb9,0x1ee9,0x1f19,0x1f49,0x1f79,0,4,0x1fa9,0x1fd9,0x2009,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x203a,0x203a,0x203a,0x203a,
+0x203a,0x203a,0x203a,0x203a,0x203a,0x203a,0x203a,0x203a,0x203a,0x203a,0x203a,0x203a,0x205a,0x205a,0x205a,0x205a,
+0x205a,0x205a,0,0,0x2079,0x20a9,0x20d9,0x2109,0x2139,0x2169,0,0,0x203a,0x203a,0x203a,0x203a,
+0x203a,0x203a,0x203a,0x203a,0x203a,0x203a,0x203a,0x203a,0x203a,0x203a,0x203a,0x203a,0x203a,0x203a,0x203a,0x203a,
+0x203a,0x203a,0x203a,0x203a,0x203a,0x203a,0x203a,0x203a,0x203a,0x203a,0x203a,0x203a,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,
0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,4,4,0,4,4,4,4,4,
@@ -423,145 +430,149 @@ static const uint16_t ucase_props_trieIndex[11720]={
4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0x64,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,0,
-0,0,0,4,4,0,0,0,0,0,0,0,0,0,4,0,
-0,0,0,0,0,0x64,0x44,0x64,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x44,
-0x64,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,4,0,4,4,4,4,
-4,4,4,0,0x64,0,4,0,0,4,4,4,4,4,4,4,
-4,0,0,0,0,0,0,4,4,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
-0x44,0,0,0x64,0,0,0,0,0,0,0,4,0,0,0,0,
-0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x44,
-0x44,0x64,4,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x64,0,4,4,4,4,4,0,
-4,0,0,0,0,0,4,0,0x60,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0x44,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,
-4,4,0,0,4,4,0x60,0x64,4,4,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x64,0,
-4,4,0,0,0,4,0,4,4,4,0x60,0x60,0,0,0,0,
-0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,
-0,0,4,0x64,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,
-4,4,0,0,0x5cd9,0x5d39,0x5d99,0x5df9,0x5e59,0x5ef9,0x5f99,0x5ff9,0x6059,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x44,0x44,0x44,0,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,
-0x64,0x64,0x64,0x64,0x44,0,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0,0,0,
-0,0x64,0,0,0,0,0,0,0x44,0,0,0,0x44,0x44,0,0,
-0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,
+0,0,0,0,0,4,4,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,4,4,4,0,0,0,0,4,
+4,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,
+0,0x64,0x44,0x64,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0x44,0x64,0,0,4,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,4,0,4,4,4,4,4,4,4,0,
+0x64,0,4,0,0,4,4,4,4,4,4,4,4,0,0,0,
+0,0,0,4,4,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0,0x64,
+0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,
+0x44,0x44,0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x64,4,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x64,0,4,4,4,4,4,0,4,0,0,0,
+0,0,4,0,0x60,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0x44,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,4,4,4,4,0,0,
+4,4,0x60,0x64,4,4,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0x64,0,4,4,0,0,
+0,4,0,4,4,4,0x60,0x60,0,0,0,0,0,0,0,0,
+0,0,0,0,4,4,4,4,4,4,4,4,0,0,4,0x64,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,4,4,4,4,4,4,0,0,
+0x2199,0x21c9,0x21f9,0x2229,0x2259,0x22a9,0x22f9,0x2329,0x2359,0,0,0,0,0,0,0,
+0x238a,0x238a,0x238a,0x238a,0x238a,0x238a,0x238a,0x238a,0x238a,0x238a,0x238a,0x238a,0x238a,0x238a,0x238a,0x238a,
+0x238a,0x238a,0x238a,0x238a,0x238a,0x238a,0x238a,0x238a,0x238a,0x238a,0x238a,0,0,0x238a,0x238a,0x238a,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x44,0x44,0x44,0,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x64,0x64,0x64,0x64,
+0x44,0,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0,0,0,0,0x64,0,0,
+0,0,0,0,0x44,0,0,0,0x44,0x44,0,0,0,0,0,0,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,0x25,5,5,5,5,5,5,5,5,1,
-1,1,1,1,1,1,1,1,1,1,1,1,5,0x60b9,1,1,
-1,0x60f9,1,1,5,5,5,5,0x25,5,5,5,0x25,5,5,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,0x21,1,1,1,1,5,
-5,5,5,5,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
-0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x64,0x64,0x64,0,0x44,
-0x64,0x64,0x44,0x64,0x44,0x44,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x44,
-0x44,0x64,0x64,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
-0x44,0x44,0x44,0x44,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,
-0x8a,0xffa9,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,
-0x8a,0xff89,0x8a,0xff89,0x613a,0x61b9,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,
-0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,
-0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x6239,0x6339,0x6439,0x6539,0x6639,0x6739,1,1,0x679a,1,
-0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xffa9,0x8a,0xff89,0x8a,0xff89,
-0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,
-0x409,0x409,0x409,0x409,0x409,0x409,0x409,0x409,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,
-0x409,0x409,0x409,0x409,0x409,0x409,0,0,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0,0,
-0x409,0x409,0x409,0x409,0x409,0x409,0x409,0x409,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,
-0x409,0x409,0x409,0x409,0x409,0x409,0x409,0x409,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,
-0x409,0x409,0x409,0x409,0x409,0x409,0,0,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0,0,
-0x6839,0x409,0x6939,0x409,0x6a99,0x409,0x6bf9,0x409,0,0xfc0a,0,0xfc0a,0,0xfc0a,0,0xfc0a,
-0x409,0x409,0x409,0x409,0x409,0x409,0x409,0x409,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,0xfc0a,
-0x2509,0x2509,0x2b09,0x2b09,0x2b09,0x2b09,0x3209,0x3209,0x4009,0x4009,0x3809,0x3809,0x3f09,0x3f09,0,0,
-0x6d59,0x6e39,0x6f19,0x6ff9,0x70d9,0x71b9,0x7299,0x7379,0x745b,0x753b,0x761b,0x76fb,0x77db,0x78bb,0x799b,0x7a7b,
-0x7b59,0x7c39,0x7d19,0x7df9,0x7ed9,0x7fb9,0x8099,0x8179,0x825b,0x833b,0x841b,0x84fb,0x85db,0x86bb,0x879b,0x887b,
-0x8959,0x8a39,0x8b19,0x8bf9,0x8cd9,0x8db9,0x8e99,0x8f79,0x905b,0x913b,0x921b,0x92fb,0x93db,0x94bb,0x959b,0x967b,
-0x409,0x409,0x9759,0x9859,0x9939,0,0x9a39,0x9b39,0xfc0a,0xfc0a,0xdb0a,0xdb0a,0x9c9b,4,0x9d79,4,
-4,4,0x9e19,0x9f19,0x9ff9,0,0xa0f9,0xa1f9,0xd50a,0xd50a,0xd50a,0xd50a,0xa35b,4,4,4,
-0x409,0x409,0xa439,0xa599,0,0,0xa739,0xa839,0xfc0a,0xfc0a,0xce0a,0xce0a,0,4,4,4,
-0x409,0x409,0xa999,0xaaf9,0xac99,0x389,0xad99,0xae99,0xfc0a,0xfc0a,0xc80a,0xc80a,0xfc8a,4,4,4,
-0,0,0xaff9,0xb0f9,0xb1d9,0,0xb2d9,0xb3d9,0xc00a,0xc00a,0xc10a,0xc10a,0xb53b,4,4,0,
-0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,
-0,0,0,0,0,0,0,0,4,4,0,0,0,0,0,0,
-4,0,0,4,0,0,4,4,4,4,4,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,
-4,0,4,4,4,4,4,4,4,4,4,4,0,0x25,0,0,
-0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,
-5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x44,0x44,0x64,0x64,
-0x44,0x44,0x44,0x44,0x64,0x64,0x64,0x44,0x44,4,4,4,4,0x44,4,4,
-4,0x64,0x64,0x44,0x64,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,
-0,0,0,2,0,0,1,2,2,2,1,1,2,2,2,1,
-0,2,0,0,0,2,2,2,2,2,0,0,0,0,0,0,
-2,0,0xb61a,0,2,0,0xb69a,0xb71a,2,2,0,1,2,2,0xe0a,2,
-1,0,0,0,0,1,0,0,1,1,2,2,0,0,0,0,
-0,2,1,1,0x21,0x21,0,0,0,0,0xf209,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x80a,0x80a,0x80a,0x80a,
-0x80a,0x80a,0x80a,0x80a,0x80a,0x80a,0x80a,0x80a,0x80a,0x80a,0x80a,0x80a,0xf809,0xf809,0xf809,0xf809,
-0xf809,0xf809,0xf809,0xf809,0xf809,0xf809,0xf809,0xf809,0xf809,0xf809,0xf809,0xf809,0,0,0,0x8a,
-0xff89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xd0a,0xd0a,
-0xd0a,0xd0a,0xd0a,0xd0a,0xd0a,0xd0a,0xd0a,0xd0a,0xd0a,0xd0a,0xd0a,0xd0a,0xd0a,0xd0a,0xd0a,0xd0a,
-0xf309,0xf309,0xf309,0xf309,0xf309,0xf309,0xf309,0xf309,0xf309,0xf309,0xf309,0xf309,0xf309,0xf309,0xf309,0xf309,
-0xf309,0xf309,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,
-0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,
-0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0x180a,0,0xe809,0xe809,0xe809,0xe809,
-0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,
-0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0xe809,0,0x8a,0xff89,0xb79a,0xb7da,
-0xb81a,0xb859,0xb899,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0xb8da,0xb91a,0xb95a,0xb99a,1,0x8a,0xff89,
-1,0x8a,0xff89,1,1,1,1,1,0x25,5,0xb9da,0xba1a,0x8a,0xff89,0x8a,0xff89,
-1,0,0,0,0,0,0,0x8a,0xff89,0x8a,0xff89,0x44,0x44,0x44,0x8a,0xff89,
-0,0,0,0,0,0,0,0,0,0,0,0,0xba59,0xba99,0xbad9,0xbb19,
-0xbb59,0xbb99,0xbbd9,0xbc19,0xbc59,0xbc99,0xbcd9,0xbd19,0xbd59,0xbd99,0xbdd9,0xbe19,0xbe59,0xbe99,0xbed9,0xbf19,
-0xbf59,0xbf99,0xbfd9,0xc019,0xc059,0xc099,0xc0d9,0xc119,0xc159,0xc199,0xc1d9,0xc219,0xc259,0xc299,0xc2d9,0xc319,
-0xc359,0xc399,0,0xc3d9,0,0,0,0,0,0xc419,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x64,
+5,5,0x25,5,5,5,5,5,5,5,5,1,1,1,1,1,
+1,1,1,1,1,1,1,1,5,0x23a9,1,1,1,0x23c9,1,1,
+5,5,5,5,0x25,5,5,5,0x25,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0x21,1,1,1,1,5,5,5,5,5,
0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
+0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x64,0x64,0x64,0,0x44,0x64,0x64,0x44,0x64,
+0x44,0x44,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x44,0x44,0x64,0x64,0x64,
+0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xffb1,0x92,0xff91,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
+0x23ea,0x2429,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
+0x92,0xff91,0x2469,0x24e9,0x2569,0x25e9,0x2669,0x26e9,1,1,0x271a,1,0x92,0xff91,0x92,0xff91,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xffb1,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x411,0x411,0x411,0x411,
+0x411,0x411,0x411,0x411,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0x411,0x411,0x411,0x411,
+0x411,0x411,0,0,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0,0,0x411,0x411,0x411,0x411,
+0x411,0x411,0x411,0x411,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0x411,0x411,0x411,0x411,
+0x411,0x411,0x411,0x411,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0x411,0x411,0x411,0x411,
+0x411,0x411,0,0,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0,0,0x2769,0x411,0x27e9,0x411,
+0x2899,0x411,0x2949,0x411,0,0xfc12,0,0xfc12,0,0xfc12,0,0xfc12,0x411,0x411,0x411,0x411,
+0x411,0x411,0x411,0x411,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0x2511,0x2511,0x2b11,0x2b11,
+0x2b11,0x2b11,0x3211,0x3211,0x4011,0x4011,0x3811,0x3811,0x3f11,0x3f11,0,0,0x29f9,0x2a69,0x2ad9,0x2b49,
+0x2bb9,0x2c29,0x2c99,0x2d09,0x2d7b,0x2deb,0x2e5b,0x2ecb,0x2f3b,0x2fab,0x301b,0x308b,0x30f9,0x3169,0x31d9,0x3249,
+0x32b9,0x3329,0x3399,0x3409,0x347b,0x34eb,0x355b,0x35cb,0x363b,0x36ab,0x371b,0x378b,0x37f9,0x3869,0x38d9,0x3949,
+0x39b9,0x3a29,0x3a99,0x3b09,0x3b7b,0x3beb,0x3c5b,0x3ccb,0x3d3b,0x3dab,0x3e1b,0x3e8b,0x411,0x411,0x3ef9,0x3f79,
+0x3fe9,0,0x4069,0x40e9,0xfc12,0xfc12,0xdb12,0xdb12,0x419b,4,0x4209,4,4,4,0x4259,0x42d9,
+0x4349,0,0x43c9,0x4449,0xd512,0xd512,0xd512,0xd512,0x44fb,4,4,4,0x411,0x411,0x4569,0x4619,
+0,0,0x46e9,0x4769,0xfc12,0xfc12,0xce12,0xce12,0,4,4,4,0x411,0x411,0x4819,0x48c9,
+0x4999,0x391,0x4a19,0x4a99,0xfc12,0xfc12,0xc812,0xc812,0xfc92,4,4,4,0,0,0x4b49,0x4bc9,
+0x4c39,0,0x4cb9,0x4d39,0xc012,0xc012,0xc112,0xc112,0x4deb,4,4,0,0,0,0,0,
+0,0,0,0,0,0,0,4,4,4,4,4,0,0,0,0,
+0,0,0,0,4,4,0,0,0,0,0,0,4,0,0,4,
+0,0,4,4,4,4,4,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,4,4,4,4,4,0,4,4,
+4,4,4,4,4,4,4,4,0,0x25,0,0,0,0,0,0,
+0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,
+5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x44,0x44,0x64,0x64,0x44,0x44,0x44,0x44,
+0x64,0x64,0x64,0x44,0x44,4,4,4,4,0x44,4,4,4,0x64,0x64,0x44,
+0x64,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,2,
+0,0,1,2,2,2,1,1,2,2,2,1,0,2,0,0,
+0,2,2,2,2,2,0,0,0,0,0,0,2,0,0x4e5a,0,
+2,0,0x4e9a,0x4eda,2,2,0,1,2,2,0xe12,2,1,0,0,0,
+0,1,0,0,1,1,2,2,0,0,0,0,0,2,1,1,
+0x21,0x21,0,0,0,0,0xf211,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x812,0x812,0x812,0x812,0x812,0x812,0x812,0x812,
+0x812,0x812,0x812,0x812,0x812,0x812,0x812,0x812,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,
+0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0,0,0,0x92,0xff91,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,
+0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xf311,0xf311,0xf311,0xf311,
+0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,
+0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,
+0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,
+0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,
+0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0,0x92,0xff91,0x4f1a,0x4f3a,0x4f5a,0x4f79,0x4f99,0x92,
+0xff91,0x92,0xff91,0x92,0xff91,0x4fba,0x4fda,0x4ffa,0x501a,1,0x92,0xff91,1,0x92,0xff91,1,
+1,1,1,1,0x25,5,0x503a,0x503a,0x92,0xff91,0x92,0xff91,1,0,0,0,
+0,0,0,0x92,0xff91,0x92,0xff91,0x44,0x44,0x44,0x92,0xff91,0,0,0,0,
+0,0,0,0,0,0,0,0,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,
+0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,
+0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0,0x5059,0,0,0,0,
+0,0x5059,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
-0,0,0,0,0,0,0,0,0,0,0x64,0x64,0x64,0x64,0x60,0x60,
-0,4,4,4,4,4,0,0,0,0,0,4,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0x64,0x64,4,4,4,4,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,4,4,4,0,0,0,0,0,
+0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0,0,0,0,
+0,0,0x64,0x64,0x64,0x64,0x60,0x60,0,4,4,4,4,4,0,0,
+0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0x64,0x64,4,
+4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0xc45a,0xc4d9,
-0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,
-0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0,0x44,4,4,4,0,0x44,0x44,0x44,0x44,
-0x44,0x44,0x44,0x44,0x44,0x44,0,4,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,
-0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,
-0x8a,0xff89,0x8a,0xff89,5,5,0x44,0x44,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x44,0x44,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,
+4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x92,0xff91,0x92,0xff91,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x507a,0x50b9,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0,0x44,
+4,4,4,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,4,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,5,5,0x44,0x44,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x44,0x44,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
-4,4,4,4,4,4,4,4,4,4,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,
-0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,1,1,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,
-0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,5,1,1,1,
-1,1,1,1,1,0x8a,0xff89,0x8a,0xff89,0xc55a,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,
-0x8a,0xff89,0x8a,0xff89,4,4,4,0x8a,0xff89,0xc59a,1,0,0x8a,0xff89,0x8a,0xff89,
-1,1,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0x8a,0xff89,0xc5da,0xc61a,
-0xc65a,0xc69a,0xc6da,0,0xc71a,0xc75a,0xc79a,0xc7da,0x8a,0xff89,0x8a,0xff89,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,5,5,1,0,0,0,0,0,0,0,4,0,
-0,0,0x64,0,0,0,0,4,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x64,4,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
-0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,0x64,
+4,4,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
+1,1,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
+0x92,0xff91,0x92,0xff91,5,1,1,1,1,1,1,1,1,0x92,0xff91,0x92,
+0xff91,0x50fa,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,4,4,4,0x92,
+0xff91,0x511a,1,0,0x92,0xff91,0x92,0xff91,1,1,0x92,0xff91,0x92,0xff91,0x92,0xff91,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x513a,0x515a,0x517a,0x519a,0x513a,1,0x51ba,0x51da,0x51fa,0x521a,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+5,5,1,0,0,0,0,0,0,0,4,0,0,0,0x64,0,
+0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x64,4,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
+0x44,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0,0,0,0,0,0,
+0,0,0,4,0,0,0,0,0,0,4,4,4,4,4,0x64,
0x64,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,
4,4,0,0x60,0,0,0,0,0,0,0,0,0,0,0,0,
@@ -580,300 +591,292 @@ static const uint16_t ucase_props_trieIndex[11720]={
0,0,0,0,0,0,0,0,4,4,0,0,0,0,0,4,
4,0,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,0xc819,1,1,1,1,1,1,1,4,
+1,1,1,1,1,1,1,0x5239,1,1,1,1,1,1,1,4,
5,5,5,5,1,1,1,1,1,1,0,0,0,0,0,0,
-0,0,0,0,0xc859,0xc8b9,0xc919,0xc979,0xc9d9,0xca39,0xca99,0xcaf9,0xcb59,0xcbb9,0xcc19,0xcc79,
-0xccd9,0xcd39,0xcd99,0xcdf9,0xda59,0xdab9,0xdb19,0xdb79,0xdbd9,0xdc39,0xdc99,0xdcf9,0xdd59,0xddb9,0xde19,0xde79,
-0xded9,0xdf39,0xdf99,0xdff9,0xe059,0xe0b9,0xe119,0xe179,0xe1d9,0xe239,0xe299,0xe2f9,0xe359,0xe3b9,0xe419,0xe479,
-0xe4d9,0xe539,0xe599,0xe5f9,0xce59,0xceb9,0xcf19,0xcf79,0xcfd9,0xd039,0xd099,0xd0f9,0xd159,0xd1b9,0xd219,0xd279,
-0xd2d9,0xd339,0xd399,0xd3f9,0xd459,0xd4b9,0xd519,0xd579,0xd5d9,0xd639,0xd699,0xd6f9,0xd759,0xd7b9,0xd819,0xd879,
-0xd8d9,0xd939,0xd999,0xd9f9,0,0,0,0,0,4,0,0,4,0,0,0,
+0,0,0,0,0x5259,0x5289,0x52b9,0x52e9,0x5319,0x5349,0x5379,0x53a9,0x53d9,0x5409,0x5439,0x5469,
+0x5499,0x54c9,0x54f9,0x5529,0x5b59,0x5b89,0x5bb9,0x5be9,0x5c19,0x5c49,0x5c79,0x5ca9,0x5cd9,0x5d09,0x5d39,0x5d69,
+0x5d99,0x5dc9,0x5df9,0x5e29,0x5e59,0x5e89,0x5eb9,0x5ee9,0x5f19,0x5f49,0x5f79,0x5fa9,0x5fd9,0x6009,0x6039,0x6069,
+0x6099,0x60c9,0x60f9,0x6129,0x5559,0x5589,0x55b9,0x55e9,0x5619,0x5649,0x5679,0x56a9,0x56d9,0x5709,0x5739,0x5769,
+0x5799,0x57c9,0x57f9,0x5829,0x5859,0x5889,0x58b9,0x58e9,0x5919,0x5949,0x5979,0x59a9,0x59d9,0x5a09,0x5a39,0x5a69,
+0x5a99,0x5ac9,0x5af9,0x5b29,0,0,0,0,0,4,0,0,4,0,0,0,
0,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0xe659,0xe759,0xe859,0xe959,0xeab9,0xec19,0xed59,0,0,0,0,0,
-0,0,0,0,0,0,0,0xee99,0xef99,0xf099,0xf199,0xf299,0,0,0,0,
+0,0,0,0,0x6159,0x61d9,0x6259,0x62d9,0x6389,0x6439,0x64d9,0,0,0,0,0,
+0,0,0,0,0,0,0,0x6579,0x65f9,0x6679,0x66f9,0x6779,0,0,0,0,
0,0,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,
4,4,4,4,4,4,4,4,0,0,0,4,0,0,0,0,
0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x64,
0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,4,0,0,4,0,0,
-0,0,0,0,0,0,0,0,0,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,
-0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,
-0x100a,0x100a,0x100a,0,0,0,4,0,4,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,
-0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,
-0xf009,0xf009,0xf009,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,
+0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,
+0x1012,0x1012,0x1012,0,0,0,4,0,4,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,
+0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,
+0xf011,0xf011,0xf011,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,
-0,0,0,0,0x64,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0,
-0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,
-0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,
-0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,
-0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,
-0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0,0,0,0,
-0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,
-0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0xec09,0,0,0,0,
-0,4,4,4,0,4,4,0,0,0,0,0,4,0x64,4,0x44,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x44,0x64,0x64,0,0,0,0,0x64,
-0,0,0,0,0,0x44,0x64,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x200a,0x200a,0x200a,0x200a,0x200a,0x200a,0x200a,0x200a,0x200a,0x200a,0x200a,0x200a,0x200a,0x200a,0x200a,0x200a,
-0x200a,0x200a,0x200a,0x200a,0x200a,0x200a,0x200a,0x200a,0x200a,0x200a,0x200a,0x200a,0x200a,0x200a,0x200a,0x200a,
-0x200a,0x200a,0x200a,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0xe009,0xe009,0xe009,0xe009,0xe009,0xe009,0xe009,0xe009,0xe009,0xe009,0xe009,0xe009,0xe009,0xe009,0xe009,0xe009,
-0xe009,0xe009,0xe009,0xe009,0xe009,0xe009,0xe009,0xe009,0xe009,0xe009,0xe009,0xe009,0xe009,0xe009,0xe009,0xe009,
-0xe009,0xe009,0xe009,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,
-4,4,4,4,4,4,0x64,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,4,4,4,4,0,0,0x64,0x64,0,0,4,0,0,
-0x44,0x44,0x44,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,4,4,4,4,4,0,4,4,4,4,4,4,0x64,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0x64,0,0,
0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0x64,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,
-4,4,4,4,4,4,4,0,0x60,0,0,0,0,0,0,0,
-0,0,0x64,4,4,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,4,4,4,0,0,
-4,0x60,0x64,4,0,0,0,0,0,0,4,0,0,0,0,4,
-4,4,4,4,4,0x64,0x64,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,
-0,0,0,0,0,0,0,0,0,0x60,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x44,0x44,
-0x44,0x44,0x44,0x44,0x44,0,0,0,0x44,0x44,0x44,0x44,0x44,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0x64,4,4,0,0x64,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,
-4,0,4,0,0,0,0,4,4,0,0x64,0x64,0,0,0,0,
+0,0,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0,0x1412,0x1412,0x1412,0x1412,
+0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,
+0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0xec11,0xec11,0xec11,0xec11,
+0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,
+0xec11,0xec11,0xec11,0xec11,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,
+0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0,0,0,0,0xec11,0xec11,0xec11,0xec11,
+0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,
+0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0,0,0,0,0,4,4,4,
+0,4,4,0,0,0,0,0,4,0x64,4,0x44,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x44,0x64,0x64,0,0,0,0,0x64,0,0,0,0,
+0,0x44,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x2012,0x2012,0x2012,0x2012,
+0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,
+0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0xe011,0xe011,0xe011,0xe011,
+0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,
+0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,4,4,4,4,0,0,
-0,0,0,0,4,4,0,0x64,0x64,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0x64,0x64,0x44,0x44,0x44,0x64,
+0x44,0x64,0x64,0x64,0x64,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,4,4,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,
-4,4,4,0,0,4,0,0x64,0,0,0,0,0,0,0,0,
-0,0,0,4,0,4,0,0,4,4,4,4,4,4,0x60,0x64,
+4,4,4,4,4,4,4,4,4,4,0x64,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,
-0,0,4,4,4,4,0,4,4,4,4,0x64,0,0,0,0,
+0,0,0,0,0,0,0,4,4,4,4,0,0,0x64,0x64,0,
+0,4,0,0,0x44,0x44,0x44,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,
-0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,
-0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,
-0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,0xf009,
-0,4,4,4,4,4,4,0,0,4,4,0,0,0,0,0,
+0,0,0,0,0,0,0,4,4,4,4,4,0,4,4,4,
+4,4,4,0x64,0x64,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0x64,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,4,0x64,4,4,4,4,0,0,4,4,4,4,0,
-0,0,0,0,0,0,0,0x64,0,0,0,0,0,0,0,0,
-0,4,4,4,4,4,4,0,0,4,4,4,0,0,0,0,
-0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,
-4,4,4,0,4,0x64,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,0,
-4,4,4,4,4,4,0,0x64,4,4,4,4,4,4,4,4,
-0,0,4,4,4,4,4,4,4,0,4,4,0,4,4,0,
+0,0,4,4,4,4,4,4,4,4,4,0,0x60,0,0,0,
+0,0,0,0,0,4,0x64,4,4,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
+4,4,0,0,4,0x60,0x64,4,0,0,0,0,0,0,4,0,
+0,0,0,4,4,4,4,4,4,0x64,0x64,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,4,4,4,4,4,4,0,0,0,4,0,4,4,0,4,
-4,4,0x64,4,0x64,0x64,0,4,0,0,0,0,0,0,0,0,
+4,0,0,0,0,0,0,0,0,0,0,0,0,0x60,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x64,0x64,0x64,0x64,0x64,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,
+0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0,0,0x44,0x44,0x44,0x44,
+0x44,0,0,0,0,0,0,0,0,0,0,0,0,0,0x64,4,
+4,0,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0x44,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
-4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+4,4,4,4,4,0,4,0,0,0,0,4,4,0,0x64,0x64,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,4,0x64,0,
-0,0,0,0,0,0x60,0x60,0x64,0x64,0x64,0,0,0,0x60,0x60,0x60,
-0x60,0x60,0x60,4,4,4,4,4,4,4,4,0x64,0x64,0x64,0x64,0x64,
-0x64,0x64,0x64,0,0,0x44,0x44,0x44,0x44,0x44,0x64,0x64,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,
+4,4,0,0,0,0,0,0,4,4,0,0x64,0x64,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,4,4,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
+4,4,4,4,4,4,4,0,0,4,0,0x64,0,0,0,0,
+0,0,0,0,0,0,0,4,0,4,0,0,4,4,4,4,
+4,4,0x60,0x64,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,4,4,4,0,0,4,4,4,4,0,4,4,4,4,0x64,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,
+0,0x64,0x64,0,0,0,0,0,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,
+0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,
+0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,
+0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,
+0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0,4,4,4,4,4,4,4,
+4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,4,0x64,4,4,4,
+4,0,0,4,4,4,4,0,0,0,0,0,0,0,0,0x64,
+0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,0,
+0,4,4,4,0,0,0,0,0,0,0,0,0,0,4,4,
+4,4,4,4,4,4,4,4,4,4,4,0,4,0x64,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+4,4,4,4,4,4,4,0,4,4,4,4,4,4,0,0x64,
+4,4,4,4,4,4,4,4,0,0,4,4,4,4,4,4,
+4,0,4,4,0,4,4,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,0,
+0,0,4,0,4,4,0,4,4,4,0x64,4,0x64,0x64,0,4,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,4,4,0,0,0,4,0,0x64,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,4,4,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x64,0x64,0x64,0x64,0x64,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,
+4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0x44,0x44,0x44,0x44,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0,0,0,
+0,0,0,0,0,4,0x64,0,0,0,0,0,0,0x60,0x60,0x64,
+0x64,0x64,0,0,0,0x60,0x60,0x60,0x60,0x60,0x60,4,4,4,4,4,
+4,4,4,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0,0,0x44,0x44,0x44,
+0x44,0x44,0x64,0x64,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0x44,0x44,0x44,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
-2,2,1,1,1,1,1,1,1,1,0x21,0x21,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,
-1,0,0x21,0x21,1,1,1,1,1,1,1,1,2,2,2,2,
-2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
-2,2,2,2,2,2,1,1,1,1,1,1,1,1,0x21,0x21,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-2,0,2,2,0,0,2,0,0,2,2,0,0,2,2,2,
-2,0,2,2,2,2,2,2,2,2,1,1,1,1,0,1,
-0,1,0x21,0x21,1,1,1,1,0,1,1,1,1,1,1,1,
+1,1,0x21,0x21,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,1,1,1,1,1,1,1,0,0x21,0x21,1,1,1,1,
1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,
-2,2,2,2,1,1,1,1,2,2,0,2,2,2,2,0,
-0,2,2,2,2,2,2,2,2,0,2,2,2,2,2,2,
-2,0,1,1,1,1,1,1,1,1,0x21,0x21,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,2,2,0,2,
-2,2,2,0,2,2,2,2,2,0,2,0,0,0,2,2,
-2,2,2,2,2,0,1,1,1,1,1,1,1,1,0x21,0x21,
-1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,
+1,1,1,1,1,1,0x21,0x21,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,2,0,2,2,0,0,2,0,
+0,2,2,0,0,2,2,2,2,0,2,2,2,2,2,2,
+2,2,1,1,1,1,0,1,0,1,0x21,0x21,1,1,1,1,
+0,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,
+2,2,0,2,2,2,2,0,0,2,2,2,2,2,2,2,
+2,0,2,2,2,2,2,2,2,0,1,1,1,1,1,1,
+1,1,0x21,0x21,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,2,2,0,2,2,2,2,0,2,2,2,2,
+2,0,2,0,0,0,2,2,2,2,2,2,2,0,1,1,
+1,1,1,1,1,1,0x21,0x21,1,1,1,1,1,1,1,1,
+1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,2,1,1,1,1,1,1,0,0,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,2,2,0,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,0,1,1,1,1,1,1,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
-1,1,1,1,1,1,0,0,2,2,2,2,2,2,2,2,
+2,2,2,0,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
-2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,
-1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
-2,2,2,2,2,2,2,2,2,2,2,0,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,0,1,1,1,1,1,1,2,2,2,2,2,2,2,2,
-2,2,2,2,2,2,2,2,1,1,1,0,1,1,1,1,
-1,1,2,1,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,
-4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,
-0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,
-4,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,
-0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,
-0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
-0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0,0x44,0x44,0x44,0x44,0x44,
-0x44,0x44,0,0x44,0x44,0,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x64,0x64,0x64,0x64,0x64,0x64,0x64,0,0,0,0,0,0,0,0,0,
-0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,
-0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,
-0x110a,0x110a,0xef09,0xef09,0xef09,0xef09,0xef09,0xef09,0xef09,0xef09,0xef09,0xef09,0xef09,0xef09,0xef09,0xef09,
-0xef09,0xef09,0xef09,0xef09,0xef09,0xef09,0xef09,0xef09,0xef09,0xef09,0xef09,0xef09,0xef09,0xef09,0xef09,0xef09,
-0x44,0x44,0x44,0x44,0x44,0x44,0x64,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,
-2,2,2,2,2,2,0,0,0,0,0,0,2,2,2,2,
-2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0
+1,1,1,0,1,1,1,1,1,1,2,1,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+4,4,4,4,4,4,4,0,0,0,0,4,4,4,4,4,
+4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,
+0,4,0,0,0,0,0,0,0,0,0,0,4,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,4,4,4,4,4,0,4,4,4,4,4,4,4,
+4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,
+0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
+0x44,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0x44,0x44,0,0x44,0x44,
+0x44,0x44,0x44,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0,
+0,0,0,0,0,0,0,0,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,
+0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,
+0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0xef11,0xef11,0xef11,0xef11,0xef11,0xef11,
+0xef11,0xef11,0xef11,0xef11,0xef11,0xef11,0xef11,0xef11,0xef11,0xef11,0xef11,0xef11,0xef11,0xef11,0xef11,0xef11,
+0xef11,0xef11,0xef11,0xef11,0xef11,0xef11,0xef11,0xef11,0x44,0x44,0x44,0x44,0x44,0x44,0x64,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,2,2,2,2,2,2,2,2,2,2,0,0,
+0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};
-static const uint16_t ucase_props_exceptions[1948]={
-0xc041,0x69,2,0x130,0x131,0x4001,0x6a,0x41,0x6b,1,0x212a,0x41,0x73,1,0x17f,0x5044,
-0x49,2,0x130,0x131,0x44,0x4b,1,0x212a,0x44,0x53,1,0x17f,6,0x3bc,0x39c,0x41,
-0xe5,1,0x212b,0x4001,0xec,0x4001,0xed,0xc0,1,0x2220,0x73,0x73,0x53,0x53,0x53,0x73,
-0x1e9e,0x44,0xc5,1,0x212b,0x4001,0x129,0x4001,0x12f,0xc043,0x69,0x130,2,0x49,0x131,0x44,
-0x49,2,0x69,0x130,0x80,0x2220,0x2bc,0x6e,0x2bc,0x4e,0x2bc,0x4e,6,0x73,0x53,9,
-0x1c6,0x1c5,0xd,0x1c6,0x1c4,0x1c5,0xc,0x1c4,0x1c5,9,0x1c9,0x1c8,0xd,0x1c9,0x1c7,0x1c8,
-0xc,0x1c7,0x1c8,9,0x1cc,0x1cb,0xd,0x1cc,0x1ca,0x1cb,0xc,0x1ca,0x1cb,0x80,0x2220,0x6a,
-0x30c,0x4a,0x30c,0x4a,0x30c,9,0x1f3,0x1f2,0xd,0x1f3,0x1f1,0x1f2,0xc,0x1f1,0x1f2,1,
-0x2c65,1,0x2c66,4,0x2c7e,4,0x2c7f,4,0x2c6f,4,0x2c6d,4,0x2c70,4,0xa7ab,4,
-0xa7ac,4,0xa78d,4,0xa7aa,4,0xa7ae,4,0x2c62,4,0xa7ad,4,0x2c6e,4,0x2c64,4,
-0xa7b1,0x1004,0xa7b2,4,0xa7b0,0x6000,0x3046,0x3b9,0x399,1,0x1fbe,0xc0,1,0x3330,0x3b9,0x308,
-0x301,0x399,0x308,0x301,0x399,0x308,0x301,0x1fd3,0x41,0x3b2,1,0x3d0,0x41,0x3b5,1,0x3f5,
-0x41,0x3b8,2,0x3d1,0x3f4,0x41,0x3b9,2,0x345,0x1fbe,0x41,0x3ba,1,0x3f0,0x41,0x3bc,
-1,0xb5,0x41,0x3c0,1,0x3d6,0x41,0x3c1,1,0x3f1,0x4041,0x3c3,1,0x3c2,0x41,0x3c6,
-1,0x3d5,0x41,0x3c9,1,0x2126,0xc0,1,0x3330,0x3c5,0x308,0x301,0x3a5,0x308,0x301,0x3a5,
-0x308,0x301,0x1fe3,0x44,0x392,1,0x3d0,0x44,0x395,1,0x3f5,0x44,0x398,2,0x3d1,0x3f4,
-0x44,0x399,2,0x345,0x1fbe,0x44,0x39a,1,0x3f0,0x44,0x39c,1,0xb5,0x44,0x3a0,1,
-0x3d6,0x44,0x3a1,1,0x3f1,6,0x3c3,0x3a3,0x44,0x3a3,1,0x3c2,0x44,0x3a6,1,0x3d5,
-0x44,0x3a9,1,0x2126,6,0x3b2,0x392,0x46,0x3b8,0x398,1,0x3f4,6,0x3c6,0x3a6,6,
-0x3c0,0x3a0,6,0x3ba,0x39a,6,0x3c1,0x3a1,0x41,0x3b8,2,0x398,0x3d1,6,0x3b5,0x395,
-0x41,0x432,1,0x1c80,0x41,0x434,1,0x1c81,0x41,0x43e,1,0x1c82,0x41,0x441,1,0x1c83,
-0x41,0x442,2,0x1c84,0x1c85,0x41,0x44a,1,0x1c86,0x44,0x412,1,0x1c80,0x44,0x414,1,
-0x1c81,0x44,0x41e,1,0x1c82,0x44,0x421,1,0x1c83,0x44,0x422,2,0x1c84,0x1c85,0x44,0x42a,
-1,0x1c86,0x41,0x463,1,0x1c87,0x44,0x462,1,0x1c87,0x80,0x2220,0x565,0x582,0x535,0x552,
-0x535,0x582,1,0x2d00,1,0x2d01,1,0x2d02,1,0x2d03,1,0x2d04,1,0x2d05,1,0x2d06,
-1,0x2d07,1,0x2d08,1,0x2d09,1,0x2d0a,1,0x2d0b,1,0x2d0c,1,0x2d0d,1,0x2d0e,
-1,0x2d0f,1,0x2d10,1,0x2d11,1,0x2d12,1,0x2d13,1,0x2d14,1,0x2d15,1,0x2d16,
-1,0x2d17,1,0x2d18,1,0x2d19,1,0x2d1a,1,0x2d1b,1,0x2d1c,1,0x2d1d,1,0x2d1e,
-1,0x2d1f,1,0x2d20,1,0x2d21,1,0x2d22,1,0x2d23,1,0x2d24,1,0x2d25,1,0x2d27,
-1,0x2d2d,3,0xab70,0x13a0,3,0xab71,0x13a1,3,0xab72,0x13a2,3,0xab73,0x13a3,3,0xab74,
-0x13a4,3,0xab75,0x13a5,3,0xab76,0x13a6,3,0xab77,0x13a7,3,0xab78,0x13a8,3,0xab79,0x13a9,
-3,0xab7a,0x13aa,3,0xab7b,0x13ab,3,0xab7c,0x13ac,3,0xab7d,0x13ad,3,0xab7e,0x13ae,3,
-0xab7f,0x13af,3,0xab80,0x13b0,3,0xab81,0x13b1,3,0xab82,0x13b2,3,0xab83,0x13b3,3,0xab84,
-0x13b4,3,0xab85,0x13b5,3,0xab86,0x13b6,3,0xab87,0x13b7,3,0xab88,0x13b8,3,0xab89,0x13b9,
-3,0xab8a,0x13ba,3,0xab8b,0x13bb,3,0xab8c,0x13bc,3,0xab8d,0x13bd,3,0xab8e,0x13be,3,
-0xab8f,0x13bf,3,0xab90,0x13c0,3,0xab91,0x13c1,3,0xab92,0x13c2,3,0xab93,0x13c3,3,0xab94,
-0x13c4,3,0xab95,0x13c5,3,0xab96,0x13c6,3,0xab97,0x13c7,3,0xab98,0x13c8,3,0xab99,0x13c9,
-3,0xab9a,0x13ca,3,0xab9b,0x13cb,3,0xab9c,0x13cc,3,0xab9d,0x13cd,3,0xab9e,0x13ce,3,
-0xab9f,0x13cf,3,0xaba0,0x13d0,3,0xaba1,0x13d1,3,0xaba2,0x13d2,3,0xaba3,0x13d3,3,0xaba4,
-0x13d4,3,0xaba5,0x13d5,3,0xaba6,0x13d6,3,0xaba7,0x13d7,3,0xaba8,0x13d8,3,0xaba9,0x13d9,
-3,0xabaa,0x13da,3,0xabab,0x13db,3,0xabac,0x13dc,3,0xabad,0x13dd,3,0xabae,0x13de,3,
-0xabaf,0x13df,3,0xabb0,0x13e0,3,0xabb1,0x13e1,3,0xabb2,0x13e2,3,0xabb3,0x13e3,3,0xabb4,
-0x13e4,3,0xabb5,0x13e5,3,0xabb6,0x13e6,3,0xabb7,0x13e7,3,0xabb8,0x13e8,3,0xabb9,0x13e9,
-3,0xabba,0x13ea,3,0xabbb,0x13eb,3,0xabbc,0x13ec,3,0xabbd,0x13ed,3,0xabbe,0x13ee,3,
-0xabbf,0x13ef,3,0x13f8,0x13f0,3,0x13f9,0x13f1,3,0x13fa,0x13f2,3,0x13fb,0x13f3,3,0x13fc,
-0x13f4,3,0x13fd,0x13f5,6,0x13f0,0x13f0,6,0x13f1,0x13f1,6,0x13f2,0x13f2,6,0x13f3,0x13f3,
-6,0x13f4,0x13f4,6,0x13f5,0x13f5,6,0x432,0x412,6,0x434,0x414,6,0x43e,0x41e,6,
-0x441,0x421,0x46,0x442,0x422,1,0x1c85,0x46,0x442,0x422,1,0x1c84,6,0x44a,0x42a,6,
-0x463,0x462,6,0xa64b,0xa64a,4,0xa77d,4,0x2c63,0x41,0x1e61,1,0x1e9b,0x44,0x1e60,1,
-0x1e9b,0x80,0x2220,0x68,0x331,0x48,0x331,0x48,0x331,0x80,0x2220,0x74,0x308,0x54,0x308,0x54,
-0x308,0x80,0x2220,0x77,0x30a,0x57,0x30a,0x57,0x30a,0x80,0x2220,0x79,0x30a,0x59,0x30a,0x59,
-0x30a,0x80,0x2220,0x61,0x2be,0x41,0x2be,0x41,0x2be,6,0x1e61,0x1e60,0x81,0xdf,0x20,0x73,
-0x73,0x80,0x2220,0x3c5,0x313,0x3a5,0x313,0x3a5,0x313,0x80,0x3330,0x3c5,0x313,0x300,0x3a5,0x313,
-0x300,0x3a5,0x313,0x300,0x80,0x3330,0x3c5,0x313,0x301,0x3a5,0x313,0x301,0x3a5,0x313,0x301,0x80,
-0x3330,0x3c5,0x313,0x342,0x3a5,0x313,0x342,0x3a5,0x313,0x342,0x84,0x1f88,0x220,0x1f00,0x3b9,0x1f08,
-0x399,0x84,0x1f89,0x220,0x1f01,0x3b9,0x1f09,0x399,0x84,0x1f8a,0x220,0x1f02,0x3b9,0x1f0a,0x399,0x84,
-0x1f8b,0x220,0x1f03,0x3b9,0x1f0b,0x399,0x84,0x1f8c,0x220,0x1f04,0x3b9,0x1f0c,0x399,0x84,0x1f8d,0x220,
-0x1f05,0x3b9,0x1f0d,0x399,0x84,0x1f8e,0x220,0x1f06,0x3b9,0x1f0e,0x399,0x84,0x1f8f,0x220,0x1f07,0x3b9,
-0x1f0f,0x399,0x81,0x1f80,0x220,0x1f00,0x3b9,0x1f08,0x399,0x81,0x1f81,0x220,0x1f01,0x3b9,0x1f09,0x399,
-0x81,0x1f82,0x220,0x1f02,0x3b9,0x1f0a,0x399,0x81,0x1f83,0x220,0x1f03,0x3b9,0x1f0b,0x399,0x81,0x1f84,
-0x220,0x1f04,0x3b9,0x1f0c,0x399,0x81,0x1f85,0x220,0x1f05,0x3b9,0x1f0d,0x399,0x81,0x1f86,0x220,0x1f06,
-0x3b9,0x1f0e,0x399,0x81,0x1f87,0x220,0x1f07,0x3b9,0x1f0f,0x399,0x84,0x1f98,0x220,0x1f20,0x3b9,0x1f28,
-0x399,0x84,0x1f99,0x220,0x1f21,0x3b9,0x1f29,0x399,0x84,0x1f9a,0x220,0x1f22,0x3b9,0x1f2a,0x399,0x84,
-0x1f9b,0x220,0x1f23,0x3b9,0x1f2b,0x399,0x84,0x1f9c,0x220,0x1f24,0x3b9,0x1f2c,0x399,0x84,0x1f9d,0x220,
-0x1f25,0x3b9,0x1f2d,0x399,0x84,0x1f9e,0x220,0x1f26,0x3b9,0x1f2e,0x399,0x84,0x1f9f,0x220,0x1f27,0x3b9,
-0x1f2f,0x399,0x81,0x1f90,0x220,0x1f20,0x3b9,0x1f28,0x399,0x81,0x1f91,0x220,0x1f21,0x3b9,0x1f29,0x399,
-0x81,0x1f92,0x220,0x1f22,0x3b9,0x1f2a,0x399,0x81,0x1f93,0x220,0x1f23,0x3b9,0x1f2b,0x399,0x81,0x1f94,
-0x220,0x1f24,0x3b9,0x1f2c,0x399,0x81,0x1f95,0x220,0x1f25,0x3b9,0x1f2d,0x399,0x81,0x1f96,0x220,0x1f26,
-0x3b9,0x1f2e,0x399,0x81,0x1f97,0x220,0x1f27,0x3b9,0x1f2f,0x399,0x84,0x1fa8,0x220,0x1f60,0x3b9,0x1f68,
-0x399,0x84,0x1fa9,0x220,0x1f61,0x3b9,0x1f69,0x399,0x84,0x1faa,0x220,0x1f62,0x3b9,0x1f6a,0x399,0x84,
-0x1fab,0x220,0x1f63,0x3b9,0x1f6b,0x399,0x84,0x1fac,0x220,0x1f64,0x3b9,0x1f6c,0x399,0x84,0x1fad,0x220,
-0x1f65,0x3b9,0x1f6d,0x399,0x84,0x1fae,0x220,0x1f66,0x3b9,0x1f6e,0x399,0x84,0x1faf,0x220,0x1f67,0x3b9,
-0x1f6f,0x399,0x81,0x1fa0,0x220,0x1f60,0x3b9,0x1f68,0x399,0x81,0x1fa1,0x220,0x1f61,0x3b9,0x1f69,0x399,
-0x81,0x1fa2,0x220,0x1f62,0x3b9,0x1f6a,0x399,0x81,0x1fa3,0x220,0x1f63,0x3b9,0x1f6b,0x399,0x81,0x1fa4,
-0x220,0x1f64,0x3b9,0x1f6c,0x399,0x81,0x1fa5,0x220,0x1f65,0x3b9,0x1f6d,0x399,0x81,0x1fa6,0x220,0x1f66,
-0x3b9,0x1f6e,0x399,0x81,0x1fa7,0x220,0x1f67,0x3b9,0x1f6f,0x399,0x80,0x2220,0x1f70,0x3b9,0x1fba,0x399,
-0x1fba,0x345,0x84,0x1fbc,0x220,0x3b1,0x3b9,0x391,0x399,0x80,0x2220,0x3ac,0x3b9,0x386,0x399,0x386,
-0x345,0x80,0x2220,0x3b1,0x342,0x391,0x342,0x391,0x342,0x80,0x3330,0x3b1,0x342,0x3b9,0x391,0x342,
-0x399,0x391,0x342,0x345,0x81,0x1fb3,0x220,0x3b1,0x3b9,0x391,0x399,0x46,0x3b9,0x399,1,0x345,
-0x80,0x2220,0x1f74,0x3b9,0x1fca,0x399,0x1fca,0x345,0x84,0x1fcc,0x220,0x3b7,0x3b9,0x397,0x399,0x80,
-0x2220,0x3ae,0x3b9,0x389,0x399,0x389,0x345,0x80,0x2220,0x3b7,0x342,0x397,0x342,0x397,0x342,0x80,
-0x3330,0x3b7,0x342,0x3b9,0x397,0x342,0x399,0x397,0x342,0x345,0x81,0x1fc3,0x220,0x3b7,0x3b9,0x397,
-0x399,0x80,0x3330,0x3b9,0x308,0x300,0x399,0x308,0x300,0x399,0x308,0x300,0xc0,1,0x3330,0x3b9,
-0x308,0x301,0x399,0x308,0x301,0x399,0x308,0x301,0x390,0x80,0x2220,0x3b9,0x342,0x399,0x342,0x399,
-0x342,0x80,0x3330,0x3b9,0x308,0x342,0x399,0x308,0x342,0x399,0x308,0x342,0x80,0x3330,0x3c5,0x308,
-0x300,0x3a5,0x308,0x300,0x3a5,0x308,0x300,0xc0,1,0x3330,0x3c5,0x308,0x301,0x3a5,0x308,0x301,
-0x3a5,0x308,0x301,0x3b0,0x80,0x2220,0x3c1,0x313,0x3a1,0x313,0x3a1,0x313,0x80,0x2220,0x3c5,0x342,
-0x3a5,0x342,0x3a5,0x342,0x80,0x3330,0x3c5,0x308,0x342,0x3a5,0x308,0x342,0x3a5,0x308,0x342,0x80,
-0x2220,0x1f7c,0x3b9,0x1ffa,0x399,0x1ffa,0x345,0x84,0x1ffc,0x220,0x3c9,0x3b9,0x3a9,0x399,0x80,0x2220,
-0x3ce,0x3b9,0x38f,0x399,0x38f,0x345,0x80,0x2220,0x3c9,0x342,0x3a9,0x342,0x3a9,0x342,0x80,0x3330,
-0x3c9,0x342,0x3b9,0x3a9,0x342,0x399,0x3a9,0x342,0x345,0x81,0x1ff3,0x220,0x3c9,0x3b9,0x3a9,0x399,
-0x41,0x3c9,1,0x3a9,0x41,0x6b,1,0x4b,0x41,0xe5,1,0xc5,1,0x26b,1,0x1d7d,
-1,0x27d,4,0x23a,4,0x23e,1,0x251,1,0x271,1,0x250,1,0x252,1,0x23f,
-1,0x240,4,0x10a0,4,0x10a1,4,0x10a2,4,0x10a3,4,0x10a4,4,0x10a5,4,0x10a6,
-4,0x10a7,4,0x10a8,4,0x10a9,4,0x10aa,4,0x10ab,4,0x10ac,4,0x10ad,4,0x10ae,
-4,0x10af,4,0x10b0,4,0x10b1,4,0x10b2,4,0x10b3,4,0x10b4,4,0x10b5,4,0x10b6,
-4,0x10b7,4,0x10b8,4,0x10b9,4,0x10ba,4,0x10bb,4,0x10bc,4,0x10bd,4,0x10be,
-4,0x10bf,4,0x10c0,4,0x10c1,4,0x10c2,4,0x10c3,4,0x10c4,4,0x10c5,4,0x10c7,
-4,0x10cd,0x41,0xa64b,1,0x1c88,0x44,0xa64a,1,0x1c88,1,0x1d79,1,0x265,1,0x266,
-1,0x25c,1,0x261,1,0x26c,1,0x26a,1,0x29e,1,0x287,1,0x29d,1,0xab53,
-4,0xa7b3,6,0x13a0,0x13a0,6,0x13a1,0x13a1,6,0x13a2,0x13a2,6,0x13a3,0x13a3,6,0x13a4,
-0x13a4,6,0x13a5,0x13a5,6,0x13a6,0x13a6,6,0x13a7,0x13a7,6,0x13a8,0x13a8,6,0x13a9,0x13a9,
-6,0x13aa,0x13aa,6,0x13ab,0x13ab,6,0x13ac,0x13ac,6,0x13ad,0x13ad,6,0x13ae,0x13ae,6,
-0x13af,0x13af,6,0x13b0,0x13b0,6,0x13b1,0x13b1,6,0x13b2,0x13b2,6,0x13b3,0x13b3,6,0x13b4,
-0x13b4,6,0x13b5,0x13b5,6,0x13b6,0x13b6,6,0x13b7,0x13b7,6,0x13b8,0x13b8,6,0x13b9,0x13b9,
-6,0x13ba,0x13ba,6,0x13bb,0x13bb,6,0x13bc,0x13bc,6,0x13bd,0x13bd,6,0x13be,0x13be,6,
-0x13bf,0x13bf,6,0x13c0,0x13c0,6,0x13c1,0x13c1,6,0x13c2,0x13c2,6,0x13c3,0x13c3,6,0x13c4,
-0x13c4,6,0x13c5,0x13c5,6,0x13c6,0x13c6,6,0x13c7,0x13c7,6,0x13c8,0x13c8,6,0x13c9,0x13c9,
-6,0x13ca,0x13ca,6,0x13cb,0x13cb,6,0x13cc,0x13cc,6,0x13cd,0x13cd,6,0x13ce,0x13ce,6,
-0x13cf,0x13cf,6,0x13d0,0x13d0,6,0x13d1,0x13d1,6,0x13d2,0x13d2,6,0x13d3,0x13d3,6,0x13d4,
-0x13d4,6,0x13d5,0x13d5,6,0x13d6,0x13d6,6,0x13d7,0x13d7,6,0x13d8,0x13d8,6,0x13d9,0x13d9,
-6,0x13da,0x13da,6,0x13db,0x13db,6,0x13dc,0x13dc,6,0x13dd,0x13dd,6,0x13de,0x13de,6,
-0x13df,0x13df,6,0x13e0,0x13e0,6,0x13e1,0x13e1,6,0x13e2,0x13e2,6,0x13e3,0x13e3,6,0x13e4,
-0x13e4,6,0x13e5,0x13e5,6,0x13e6,0x13e6,6,0x13e7,0x13e7,6,0x13e8,0x13e8,6,0x13e9,0x13e9,
-6,0x13ea,0x13ea,6,0x13eb,0x13eb,6,0x13ec,0x13ec,6,0x13ed,0x13ed,6,0x13ee,0x13ee,6,
-0x13ef,0x13ef,0x80,0x2220,0x66,0x66,0x46,0x46,0x46,0x66,0x80,0x2220,0x66,0x69,0x46,0x49,
-0x46,0x69,0x80,0x2220,0x66,0x6c,0x46,0x4c,0x46,0x6c,0x80,0x3330,0x66,0x66,0x69,0x46,
-0x46,0x49,0x46,0x66,0x69,0x80,0x3330,0x66,0x66,0x6c,0x46,0x46,0x4c,0x46,0x66,0x6c,
-0xc0,1,0x2220,0x73,0x74,0x53,0x54,0x53,0x74,0xfb06,0xc0,1,0x2220,0x73,0x74,0x53,
-0x54,0x53,0x74,0xfb05,0x80,0x2220,0x574,0x576,0x544,0x546,0x544,0x576,0x80,0x2220,0x574,0x565,
-0x544,0x535,0x544,0x565,0x80,0x2220,0x574,0x56b,0x544,0x53b,0x544,0x56b,0x80,0x2220,0x57e,0x576,
-0x54e,0x546,0x54e,0x576,0x80,0x2220,0x574,0x56d,0x544,0x53d,0x544,0x56d
+static const uint16_t ucase_props_exceptions[1663]={
+0xc850,0x20,2,0x130,0x131,0x4810,0x20,0x841,0x6b,1,0x212a,0x841,0x73,1,0x17f,0x5c50,
+0x20,2,0x130,0x131,0x844,0x4b,1,0x212a,0x844,0x53,1,0x17f,0x806,0x3bc,0x39c,0x841,
+0xe5,1,0x212b,0x8c0,1,0x2220,0x73,0x73,0x53,0x53,0x53,0x73,0x1e9e,0x844,0xc5,1,
+0x212b,0x4810,1,0xce50,0xc7,2,0x49,0x131,0x844,0x49,2,0x69,0x130,0x880,0x2220,0x2bc,
+0x6e,0x2bc,0x4e,0x2bc,0x4e,0x806,0x73,0x53,0x809,0x1c6,0x1c5,0x80d,0x1c6,0x1c4,0x1c5,0x80c,
+0x1c4,0x1c5,0x809,0x1c9,0x1c8,0x80d,0x1c9,0x1c7,0x1c8,0x80c,0x1c7,0x1c8,0x809,0x1cc,0x1cb,0x80d,
+0x1cc,0x1ca,0x1cb,0x80c,0x1ca,0x1cb,0x880,0x2220,0x6a,0x30c,0x4a,0x30c,0x4a,0x30c,0x809,0x1f3,
+0x1f2,0x80d,0x1f3,0x1f1,0x1f2,0x80c,0x1f1,0x1f2,0x810,0x2a2b,0x810,0x2a28,0x810,0x2a3f,0x810,0x2a1f,
+0x810,0x2a1c,0x810,0x2a1e,0x810,0xa54f,0x810,0xa54b,0x810,0xa528,0x810,0xa544,0x810,0x29f7,0x810,0xa541,
+0x810,0x29fd,0x810,0x29e7,0x810,0xa52a,0x1810,0xa515,0x810,0xa512,0x6800,0x3846,0x3b9,0x399,1,0x1fbe,
+0x8c0,1,0x3330,0x3b9,0x308,0x301,0x399,0x308,0x301,0x399,0x308,0x301,0x1fd3,0x841,0x3b2,1,
+0x3d0,0x841,0x3b5,1,0x3f5,0x841,0x3b8,2,0x3d1,0x3f4,0x841,0x3b9,2,0x345,0x1fbe,0x841,
+0x3ba,1,0x3f0,0x841,0x3bc,1,0xb5,0x841,0x3c0,1,0x3d6,0x841,0x3c1,1,0x3f1,0x4850,
+0x20,1,0x3c2,0x841,0x3c6,1,0x3d5,0x841,0x3c9,1,0x2126,0x8c0,1,0x3330,0x3c5,0x308,
+0x301,0x3a5,0x308,0x301,0x3a5,0x308,0x301,0x1fe3,0x844,0x392,1,0x3d0,0x844,0x395,1,0x3f5,
+0x844,0x398,2,0x3d1,0x3f4,0x844,0x399,2,0x345,0x1fbe,0x844,0x39a,1,0x3f0,0x844,0x39c,
+1,0xb5,0x844,0x3a0,1,0x3d6,0x844,0x3a1,1,0x3f1,0x806,0x3c3,0x3a3,0x844,0x3a3,1,
+0x3c2,0x844,0x3a6,1,0x3d5,0x844,0x3a9,1,0x2126,0x806,0x3b2,0x392,0x846,0x3b8,0x398,1,
+0x3f4,0x806,0x3c6,0x3a6,0x806,0x3c0,0x3a0,0x806,0x3ba,0x39a,0x806,0x3c1,0x3a1,0x841,0x3b8,2,
+0x398,0x3d1,0x806,0x3b5,0x395,0x841,0x432,1,0x1c80,0x841,0x434,1,0x1c81,0x841,0x43e,1,
+0x1c82,0x841,0x441,1,0x1c83,0x841,0x442,2,0x1c84,0x1c85,0x841,0x44a,1,0x1c86,0x844,0x412,
+1,0x1c80,0x844,0x414,1,0x1c81,0x844,0x41e,1,0x1c82,0x844,0x421,1,0x1c83,0x844,0x422,
+2,0x1c84,0x1c85,0x844,0x42a,1,0x1c86,0x841,0x463,1,0x1c87,0x844,0x462,1,0x1c87,0x880,
+0x2220,0x565,0x582,0x535,0x552,0x535,0x582,0x810,0x1c60,0x80c,0x1c90,0x10d0,0x80c,0x1c91,0x10d1,0x80c,
+0x1c92,0x10d2,0x80c,0x1c93,0x10d3,0x80c,0x1c94,0x10d4,0x80c,0x1c95,0x10d5,0x80c,0x1c96,0x10d6,0x80c,0x1c97,
+0x10d7,0x80c,0x1c98,0x10d8,0x80c,0x1c99,0x10d9,0x80c,0x1c9a,0x10da,0x80c,0x1c9b,0x10db,0x80c,0x1c9c,0x10dc,
+0x80c,0x1c9d,0x10dd,0x80c,0x1c9e,0x10de,0x80c,0x1c9f,0x10df,0x80c,0x1ca0,0x10e0,0x80c,0x1ca1,0x10e1,0x80c,
+0x1ca2,0x10e2,0x80c,0x1ca3,0x10e3,0x80c,0x1ca4,0x10e4,0x80c,0x1ca5,0x10e5,0x80c,0x1ca6,0x10e6,0x80c,0x1ca7,
+0x10e7,0x80c,0x1ca8,0x10e8,0x80c,0x1ca9,0x10e9,0x80c,0x1caa,0x10ea,0x80c,0x1cab,0x10eb,0x80c,0x1cac,0x10ec,
+0x80c,0x1cad,0x10ed,0x80c,0x1cae,0x10ee,0x80c,0x1caf,0x10ef,0x80c,0x1cb0,0x10f0,0x80c,0x1cb1,0x10f1,0x80c,
+0x1cb2,0x10f2,0x80c,0x1cb3,0x10f3,0x80c,0x1cb4,0x10f4,0x80c,0x1cb5,0x10f5,0x80c,0x1cb6,0x10f6,0x80c,0x1cb7,
+0x10f7,0x80c,0x1cb8,0x10f8,0x80c,0x1cb9,0x10f9,0x80c,0x1cba,0x10fa,0x80c,0x1cbd,0x10fd,0x80c,0x1cbe,0x10fe,
+0x80c,0x1cbf,0x10ff,0xa10,0x97d0,0xa10,8,0x806,0x13f0,0x13f0,0x806,0x13f1,0x13f1,0x806,0x13f2,0x13f2,
+0x806,0x13f3,0x13f3,0x806,0x13f4,0x13f4,0x806,0x13f5,0x13f5,0x806,0x432,0x412,0x806,0x434,0x414,0x806,
+0x43e,0x41e,0x806,0x441,0x421,0x846,0x442,0x422,1,0x1c85,0x846,0x442,0x422,1,0x1c84,0x806,
+0x44a,0x42a,0x806,0x463,0x462,0x806,0xa64b,0xa64a,0xc10,0xbc0,0x810,0x8a04,0x810,0xee6,0x841,0x1e61,
+1,0x1e9b,0x844,0x1e60,1,0x1e9b,0x880,0x2220,0x68,0x331,0x48,0x331,0x48,0x331,0x880,0x2220,
+0x74,0x308,0x54,0x308,0x54,0x308,0x880,0x2220,0x77,0x30a,0x57,0x30a,0x57,0x30a,0x880,0x2220,
+0x79,0x30a,0x59,0x30a,0x59,0x30a,0x880,0x2220,0x61,0x2be,0x41,0x2be,0x41,0x2be,0x806,0x1e61,
+0x1e60,0xc90,0x1dbf,0x20,0x73,0x73,0x880,0x2220,0x3c5,0x313,0x3a5,0x313,0x3a5,0x313,0x880,0x3330,
+0x3c5,0x313,0x300,0x3a5,0x313,0x300,0x3a5,0x313,0x300,0x880,0x3330,0x3c5,0x313,0x301,0x3a5,0x313,
+0x301,0x3a5,0x313,0x301,0x880,0x3330,0x3c5,0x313,0x342,0x3a5,0x313,0x342,0x3a5,0x313,0x342,0x890,
+8,0x220,0x1f00,0x3b9,0x1f08,0x399,0x890,8,0x220,0x1f01,0x3b9,0x1f09,0x399,0x890,8,0x220,
+0x1f02,0x3b9,0x1f0a,0x399,0x890,8,0x220,0x1f03,0x3b9,0x1f0b,0x399,0x890,8,0x220,0x1f04,0x3b9,
+0x1f0c,0x399,0x890,8,0x220,0x1f05,0x3b9,0x1f0d,0x399,0x890,8,0x220,0x1f06,0x3b9,0x1f0e,0x399,
+0x890,8,0x220,0x1f07,0x3b9,0x1f0f,0x399,0xc90,8,0x220,0x1f00,0x3b9,0x1f08,0x399,0xc90,8,
+0x220,0x1f01,0x3b9,0x1f09,0x399,0xc90,8,0x220,0x1f02,0x3b9,0x1f0a,0x399,0xc90,8,0x220,0x1f03,
+0x3b9,0x1f0b,0x399,0xc90,8,0x220,0x1f04,0x3b9,0x1f0c,0x399,0xc90,8,0x220,0x1f05,0x3b9,0x1f0d,
+0x399,0xc90,8,0x220,0x1f06,0x3b9,0x1f0e,0x399,0xc90,8,0x220,0x1f07,0x3b9,0x1f0f,0x399,0x890,
+8,0x220,0x1f20,0x3b9,0x1f28,0x399,0x890,8,0x220,0x1f21,0x3b9,0x1f29,0x399,0x890,8,0x220,
+0x1f22,0x3b9,0x1f2a,0x399,0x890,8,0x220,0x1f23,0x3b9,0x1f2b,0x399,0x890,8,0x220,0x1f24,0x3b9,
+0x1f2c,0x399,0x890,8,0x220,0x1f25,0x3b9,0x1f2d,0x399,0x890,8,0x220,0x1f26,0x3b9,0x1f2e,0x399,
+0x890,8,0x220,0x1f27,0x3b9,0x1f2f,0x399,0xc90,8,0x220,0x1f20,0x3b9,0x1f28,0x399,0xc90,8,
+0x220,0x1f21,0x3b9,0x1f29,0x399,0xc90,8,0x220,0x1f22,0x3b9,0x1f2a,0x399,0xc90,8,0x220,0x1f23,
+0x3b9,0x1f2b,0x399,0xc90,8,0x220,0x1f24,0x3b9,0x1f2c,0x399,0xc90,8,0x220,0x1f25,0x3b9,0x1f2d,
+0x399,0xc90,8,0x220,0x1f26,0x3b9,0x1f2e,0x399,0xc90,8,0x220,0x1f27,0x3b9,0x1f2f,0x399,0x890,
+8,0x220,0x1f60,0x3b9,0x1f68,0x399,0x890,8,0x220,0x1f61,0x3b9,0x1f69,0x399,0x890,8,0x220,
+0x1f62,0x3b9,0x1f6a,0x399,0x890,8,0x220,0x1f63,0x3b9,0x1f6b,0x399,0x890,8,0x220,0x1f64,0x3b9,
+0x1f6c,0x399,0x890,8,0x220,0x1f65,0x3b9,0x1f6d,0x399,0x890,8,0x220,0x1f66,0x3b9,0x1f6e,0x399,
+0x890,8,0x220,0x1f67,0x3b9,0x1f6f,0x399,0xc90,8,0x220,0x1f60,0x3b9,0x1f68,0x399,0xc90,8,
+0x220,0x1f61,0x3b9,0x1f69,0x399,0xc90,8,0x220,0x1f62,0x3b9,0x1f6a,0x399,0xc90,8,0x220,0x1f63,
+0x3b9,0x1f6b,0x399,0xc90,8,0x220,0x1f64,0x3b9,0x1f6c,0x399,0xc90,8,0x220,0x1f65,0x3b9,0x1f6d,
+0x399,0xc90,8,0x220,0x1f66,0x3b9,0x1f6e,0x399,0xc90,8,0x220,0x1f67,0x3b9,0x1f6f,0x399,0x880,
+0x2220,0x1f70,0x3b9,0x1fba,0x399,0x1fba,0x345,0x890,9,0x220,0x3b1,0x3b9,0x391,0x399,0x880,0x2220,
+0x3ac,0x3b9,0x386,0x399,0x386,0x345,0x880,0x2220,0x3b1,0x342,0x391,0x342,0x391,0x342,0x880,0x3330,
+0x3b1,0x342,0x3b9,0x391,0x342,0x399,0x391,0x342,0x345,0xc90,9,0x220,0x3b1,0x3b9,0x391,0x399,
+0x846,0x3b9,0x399,1,0x345,0x880,0x2220,0x1f74,0x3b9,0x1fca,0x399,0x1fca,0x345,0x890,9,0x220,
+0x3b7,0x3b9,0x397,0x399,0x880,0x2220,0x3ae,0x3b9,0x389,0x399,0x389,0x345,0x880,0x2220,0x3b7,0x342,
+0x397,0x342,0x397,0x342,0x880,0x3330,0x3b7,0x342,0x3b9,0x397,0x342,0x399,0x397,0x342,0x345,0xc90,
+9,0x220,0x3b7,0x3b9,0x397,0x399,0x880,0x3330,0x3b9,0x308,0x300,0x399,0x308,0x300,0x399,0x308,
+0x300,0x8c0,1,0x3330,0x3b9,0x308,0x301,0x399,0x308,0x301,0x399,0x308,0x301,0x390,0x880,0x2220,
+0x3b9,0x342,0x399,0x342,0x399,0x342,0x880,0x3330,0x3b9,0x308,0x342,0x399,0x308,0x342,0x399,0x308,
+0x342,0x880,0x3330,0x3c5,0x308,0x300,0x3a5,0x308,0x300,0x3a5,0x308,0x300,0x8c0,1,0x3330,0x3c5,
+0x308,0x301,0x3a5,0x308,0x301,0x3a5,0x308,0x301,0x3b0,0x880,0x2220,0x3c1,0x313,0x3a1,0x313,0x3a1,
+0x313,0x880,0x2220,0x3c5,0x342,0x3a5,0x342,0x3a5,0x342,0x880,0x3330,0x3c5,0x308,0x342,0x3a5,0x308,
+0x342,0x3a5,0x308,0x342,0x880,0x2220,0x1f7c,0x3b9,0x1ffa,0x399,0x1ffa,0x345,0x890,9,0x220,0x3c9,
+0x3b9,0x3a9,0x399,0x880,0x2220,0x3ce,0x3b9,0x38f,0x399,0x38f,0x345,0x880,0x2220,0x3c9,0x342,0x3a9,
+0x342,0x3a9,0x342,0x880,0x3330,0x3c9,0x342,0x3b9,0x3a9,0x342,0x399,0x3a9,0x342,0x345,0xc90,9,
+0x220,0x3c9,0x3b9,0x3a9,0x399,0xc50,0x1d5d,1,0x3a9,0xc50,0x20bf,1,0x4b,0xc50,0x2046,1,
+0xc5,0xc10,0x29f7,0xc10,0xee6,0xc10,0x29e7,0xc10,0x2a2b,0xc10,0x2a28,0xc10,0x2a1c,0xc10,0x29fd,0xc10,
+0x2a1f,0xc10,0x2a1e,0xc10,0x2a3f,0xc10,0x1c60,0x841,0xa64b,1,0x1c88,0x844,0xa64a,1,0x1c88,0xc10,
+0x8a04,0xc10,0xa528,0xc10,0xa544,0xc10,0xa54f,0xc10,0xa54b,0xc10,0xa541,0xc10,0xa512,0xc10,0xa52a,0xc10,
+0xa515,0x810,0x3a0,0xc10,0x3a0,0x806,0x13a0,0x13a0,0x806,0x13a1,0x13a1,0x806,0x13a2,0x13a2,0x806,0x13a3,
+0x13a3,0x806,0x13a4,0x13a4,0x806,0x13a5,0x13a5,0x806,0x13a6,0x13a6,0x806,0x13a7,0x13a7,0x806,0x13a8,0x13a8,
+0x806,0x13a9,0x13a9,0x806,0x13aa,0x13aa,0x806,0x13ab,0x13ab,0x806,0x13ac,0x13ac,0x806,0x13ad,0x13ad,0x806,
+0x13ae,0x13ae,0x806,0x13af,0x13af,0x806,0x13b0,0x13b0,0x806,0x13b1,0x13b1,0x806,0x13b2,0x13b2,0x806,0x13b3,
+0x13b3,0x806,0x13b4,0x13b4,0x806,0x13b5,0x13b5,0x806,0x13b6,0x13b6,0x806,0x13b7,0x13b7,0x806,0x13b8,0x13b8,
+0x806,0x13b9,0x13b9,0x806,0x13ba,0x13ba,0x806,0x13bb,0x13bb,0x806,0x13bc,0x13bc,0x806,0x13bd,0x13bd,0x806,
+0x13be,0x13be,0x806,0x13bf,0x13bf,0x806,0x13c0,0x13c0,0x806,0x13c1,0x13c1,0x806,0x13c2,0x13c2,0x806,0x13c3,
+0x13c3,0x806,0x13c4,0x13c4,0x806,0x13c5,0x13c5,0x806,0x13c6,0x13c6,0x806,0x13c7,0x13c7,0x806,0x13c8,0x13c8,
+0x806,0x13c9,0x13c9,0x806,0x13ca,0x13ca,0x806,0x13cb,0x13cb,0x806,0x13cc,0x13cc,0x806,0x13cd,0x13cd,0x806,
+0x13ce,0x13ce,0x806,0x13cf,0x13cf,0x806,0x13d0,0x13d0,0x806,0x13d1,0x13d1,0x806,0x13d2,0x13d2,0x806,0x13d3,
+0x13d3,0x806,0x13d4,0x13d4,0x806,0x13d5,0x13d5,0x806,0x13d6,0x13d6,0x806,0x13d7,0x13d7,0x806,0x13d8,0x13d8,
+0x806,0x13d9,0x13d9,0x806,0x13da,0x13da,0x806,0x13db,0x13db,0x806,0x13dc,0x13dc,0x806,0x13dd,0x13dd,0x806,
+0x13de,0x13de,0x806,0x13df,0x13df,0x806,0x13e0,0x13e0,0x806,0x13e1,0x13e1,0x806,0x13e2,0x13e2,0x806,0x13e3,
+0x13e3,0x806,0x13e4,0x13e4,0x806,0x13e5,0x13e5,0x806,0x13e6,0x13e6,0x806,0x13e7,0x13e7,0x806,0x13e8,0x13e8,
+0x806,0x13e9,0x13e9,0x806,0x13ea,0x13ea,0x806,0x13eb,0x13eb,0x806,0x13ec,0x13ec,0x806,0x13ed,0x13ed,0x806,
+0x13ee,0x13ee,0x806,0x13ef,0x13ef,0x880,0x2220,0x66,0x66,0x46,0x46,0x46,0x66,0x880,0x2220,0x66,
+0x69,0x46,0x49,0x46,0x69,0x880,0x2220,0x66,0x6c,0x46,0x4c,0x46,0x6c,0x880,0x3330,0x66,
+0x66,0x69,0x46,0x46,0x49,0x46,0x66,0x69,0x880,0x3330,0x66,0x66,0x6c,0x46,0x46,0x4c,
+0x46,0x66,0x6c,0x8c0,1,0x2220,0x73,0x74,0x53,0x54,0x53,0x74,0xfb06,0x8c0,1,0x2220,
+0x73,0x74,0x53,0x54,0x53,0x74,0xfb05,0x880,0x2220,0x574,0x576,0x544,0x546,0x544,0x576,0x880,
+0x2220,0x574,0x565,0x544,0x535,0x544,0x565,0x880,0x2220,0x574,0x56b,0x544,0x53b,0x544,0x56b,0x880,
+0x2220,0x57e,0x576,0x54e,0x546,0x54e,0x576,0x880,0x2220,0x574,0x56d,0x544,0x53d,0x544,0x56d
};
static const uint16_t ucase_props_unfold[370]={
@@ -910,19 +913,19 @@ static const UCaseProps ucase_props_singleton={
ucase_props_unfold,
{
ucase_props_trieIndex,
- ucase_props_trieIndex+3228,
+ ucase_props_trieIndex+3248,
NULL,
- 3228,
- 8492,
+ 3248,
+ 8816,
0x188,
- 0xd18,
+ 0xd2c,
0x0,
0x0,
0xe0800,
- 0x2dc4,
+ 0x2f1c,
NULL, 0, FALSE, FALSE, 0, NULL
},
- { 3,0,0,0 }
+ { 4,0,0,0 }
};
#endif // INCLUDED_FROM_UCASE_CPP
diff --git a/Build/source/libs/icu/icu-src/source/common/uchar_props_data.h b/Build/source/libs/icu/icu-src/source/common/uchar_props_data.h
index 868631131c8..e9c231908e8 100644
--- a/Build/source/libs/icu/icu-src/source/common/uchar_props_data.h
+++ b/Build/source/libs/icu/icu-src/source/common/uchar_props_data.h
@@ -11,145 +11,145 @@
#ifdef INCLUDED_FROM_UCHAR_C
-static const UVersionInfo dataVersion={0xa,0,0,0};
+static const UVersionInfo dataVersion={0xb,0,0,0};
-static const uint16_t propsTrie_index[21148]={
-0x45c,0x464,0x46c,0x474,0x48c,0x494,0x49c,0x4a4,0x4ac,0x4b4,0x4ba,0x4c2,0x4ca,0x4d2,0x4da,0x4e2,
-0x4e8,0x4f0,0x4f8,0x500,0x503,0x50b,0x513,0x51b,0x523,0x52b,0x527,0x52f,0x537,0x53f,0x544,0x54c,
-0x554,0x55c,0x560,0x568,0x570,0x578,0x580,0x588,0x584,0x58c,0x591,0x599,0x59f,0x5a7,0x5af,0x5b7,
-0x5bf,0x5c7,0x5cf,0x5d7,0x5dc,0x5e4,0x5e7,0x5ef,0x5f7,0x5ff,0x605,0x60d,0x60c,0x614,0x61c,0x624,
-0x634,0x62c,0x63c,0x644,0x47c,0x654,0x65c,0x64c,0x66c,0x66e,0x676,0x664,0x686,0x68c,0x694,0x67e,
-0x6a4,0x6aa,0x6b2,0x69c,0x6c2,0x6c8,0x6d0,0x6ba,0x6e0,0x6e6,0x6ee,0x6d8,0x6fe,0x706,0x70e,0x6f6,
-0x71e,0x724,0x72c,0x716,0x73c,0x742,0x74a,0x734,0x75a,0x75f,0x767,0x752,0x777,0x77e,0x786,0x76f,
-0x608,0x78e,0x796,0x47c,0x79e,0x7a6,0x7ae,0x47c,0x7b6,0x7be,0x7c6,0x7cb,0x7d3,0x7da,0x7e2,0x47c,
-0x5c7,0x7ea,0x7f2,0x7fa,0x802,0x554,0x812,0x80a,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x818,0x5c7,0x820,0x816,0x828,0x5c7,0x824,0x5c7,0x82e,0x836,0x83e,0x554,0x554,0x846,
-0x84e,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x853,0x85b,0x5c7,0x5c7,0x863,0x86b,0x873,0x87b,0x883,0x5c7,0x88b,0x893,0x89b,
-0x8ab,0x5c7,0x8b3,0x8b5,0x8bd,0x8a3,0x5c7,0x8c0,0x8d4,0x8c8,0x8d0,0x8dc,0x5c7,0x8e4,0x8ea,0x8f2,
-0x8fa,0x5c7,0x90a,0x912,0x91a,0x902,0x47c,0x47c,0x92a,0x92d,0x935,0x922,0x945,0x93d,0x5c7,0x94c,
-0x5c7,0x95b,0x954,0x963,0x96b,0x47c,0x973,0x97b,0x4fc,0x983,0x986,0x98c,0x993,0x986,0x523,0x99b,
-0x4ac,0x4ac,0x4ac,0x4ac,0x9a3,0x4ac,0x4ac,0x4ac,0x9b3,0x9bb,0x9c3,0x9cb,0x9d3,0x9d7,0x9df,0x9ab,
-0x9f7,0x9ff,0x9e7,0x9ef,0xa07,0xa0f,0xa17,0xa1f,0xa37,0xa27,0xa2f,0xa3f,0xa47,0xa56,0xa5b,0xa4e,
-0xa63,0xa63,0xa63,0xa63,0xa63,0xa63,0xa63,0xa63,0xa6b,0xa73,0x8f2,0xa76,0xa7e,0xa85,0xa8a,0xa92,
-0x8f2,0xa99,0xa98,0xaa9,0xaac,0x8f2,0x8f2,0xaa1,0x8f2,0x8f2,0x8f2,0x8f2,0x8f2,0xabb,0xac3,0xab3,
-0x8f2,0x8f2,0x8f2,0xac8,0x8f2,0x8f2,0x8f2,0x8f2,0x8f2,0x8f2,0x8f2,0xace,0xad6,0x8f2,0xade,0xae5,
-0x8f2,0x8f2,0x8f2,0x8f2,0x8f2,0x8f2,0x8f2,0x8f2,0xa63,0xa63,0xa63,0xa63,0xaed,0xa63,0xaf4,0xafb,
-0xa63,0xa63,0xa63,0xa63,0xa63,0xa63,0xa63,0xa63,0x8f2,0xb03,0xb0a,0xb0e,0xb14,0xb1a,0xb22,0xb27,
-0x554,0xb37,0xb2f,0xb3f,0x4ac,0x4ac,0x4ac,0xb47,0x4fc,0xb4f,0x5c7,0xb55,0xb65,0xb5d,0xb5d,0x523,
-0xb6d,0xb75,0xb7d,0x47c,0xb85,0x8f2,0x8f2,0xb8c,0x8f2,0x8f2,0x8f2,0x8f2,0x8f2,0x8f2,0xb94,0xb9a,
-0xbaa,0xba2,0x608,0x5c7,0xbb2,0x84e,0x5c7,0xbba,0xbc2,0xbc7,0x5c7,0x5c7,0xbcc,0x5b3,0x8f2,0xbd3,
-0xa93,0xbdb,0xbe1,0x8f2,0xbdb,0xbe9,0x8f2,0xa93,0x8f2,0x8f2,0x8f2,0x8f2,0x8f2,0x8f2,0x8f2,0x8f2,
-0xbf1,0x5c7,0x5c7,0x5c7,0xbf9,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0xbff,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0xc04,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x8c0,0x8f2,0x8f2,
-0xc0c,0x5c7,0xc0f,0x5c7,0xc17,0xc1d,0xc25,0xc2d,0xc32,0x5c7,0x5c7,0xc36,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0xc3d,0x5c7,0xc44,0xc4a,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0xc52,0x5c7,0x5c7,0x5c7,0xc5a,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0xc5c,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0xc63,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0xc6a,0x5c7,0x5c7,0x5c7,0xc71,0xc79,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0xc7e,0x5c7,0x5c7,0xc86,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0xc8a,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0xc8d,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0xc90,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0xc96,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0xc9e,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0xca3,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0xca8,0x5c7,0x5c7,0x5c7,0xcad,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0xcb5,0xcbc,0xcc0,0x5c7,0x5c7,0x5c7,0xcc7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x644,
-0xcd5,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0xccd,0x8f2,0xcdd,0x963,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0xce2,0xcea,0x4ac,0xcfa,0xcf2,0x5c7,0x5c7,0xd02,0xd0a,0xd1a,0x4ac,0xd1f,0xd27,0xd2d,0x47c,0xd12,
-0xd35,0xd3d,0x5c7,0xd45,0xd55,0xd58,0xd4d,0xd60,0x61c,0xd68,0xd6f,0xd77,0x66c,0xd87,0xd7f,0xd8f,
-0x5c7,0xd97,0xd9f,0xda7,0x5c7,0xdaf,0xdb7,0xdbf,0xdc7,0xdcf,0xdd3,0xddb,0x4fc,0x4fc,0x5c7,0xde3,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0xdeb,0xdf2,0x8b4,
-0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,
-0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,
-0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,
-0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,
-0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,
-0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,
-0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,
-0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,
-0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,
-0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,
-0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,
-0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,
-0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,
-0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,
-0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,
-0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,
-0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0x5c7,0x5c7,0x5c7,0xe0a,0x5c7,0xcc8,0xe11,0xe16,
-0x5c7,0x5c7,0x5c7,0xe1e,0x5c7,0x5c7,0x8bf,0x47c,0xe34,0xe24,0xe2c,0x5c7,0x5c7,0xe3c,0xe44,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0xe49,0xe51,0x5c7,0xe55,0x5c7,0xe5b,0xe5f,
-0xe67,0xe6f,0xe76,0xe7e,0x5c7,0x5c7,0x5c7,0xe84,0xe9c,0x46c,0xea4,0xeac,0xeb1,0x8d4,0xe8c,0xe94,
-0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,
-0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,0xdfa,
-0x11f0,0x11f0,0x1230,0x1270,0x12b0,0x12e8,0x1328,0x1368,0x13a0,0x13e0,0x140c,0x144c,0x148c,0x149c,0x14dc,0x1510,
-0x1550,0x1580,0x15c0,0x1600,0x1610,0x1644,0x167c,0x16bc,0x16fc,0x173c,0x1770,0x179c,0x17dc,0x1814,0x1830,0x1870,
-0xa80,0xac0,0xb00,0xb3b,0xb7b,0xa40,0xbbb,0xa40,0xbdd,0xa40,0xa40,0xa40,0xa40,0xc1d,0x1db,0x1db,
-0xc5d,0xc9d,0xa40,0xa40,0xa40,0xa40,0xcdd,0xcfd,0xa40,0xa40,0xd3d,0xd7d,0xdbd,0xdfd,0xe3d,0xe7d,
-0xebd,0xef4,0x1db,0x1db,0xf18,0xf4c,0x1db,0xf74,0x1db,0x1db,0x1db,0x1db,0xfa1,0x1db,0x1db,0x1db,
-0x1db,0x1db,0x1db,0x1db,0xfb5,0x1db,0xfed,0x102d,0x1db,0x1038,0x1db,0x1db,0x1db,0x106e,0xa40,0x10ae,
+static const uint16_t propsTrie_index[21452]={
+0x45d,0x465,0x46d,0x475,0x48d,0x495,0x49d,0x4a5,0x4ad,0x4b5,0x4bb,0x4c3,0x4cb,0x4d3,0x4db,0x4e3,
+0x4e9,0x4f1,0x4f9,0x501,0x504,0x50c,0x514,0x51c,0x524,0x52c,0x528,0x530,0x538,0x540,0x545,0x54d,
+0x555,0x55d,0x561,0x569,0x571,0x579,0x581,0x589,0x585,0x58d,0x592,0x59a,0x5a0,0x5a8,0x5b0,0x5b8,
+0x5c0,0x5c8,0x5d0,0x5d8,0x5dd,0x5e5,0x5e8,0x5f0,0x5f8,0x600,0x606,0x60e,0x60d,0x615,0x61d,0x625,
+0x635,0x62d,0x63d,0x645,0x47d,0x655,0x65d,0x64d,0x66d,0x66f,0x677,0x665,0x687,0x68d,0x695,0x67f,
+0x6a5,0x6ab,0x6b3,0x69d,0x6c3,0x6c9,0x6d1,0x6bb,0x6e1,0x6e7,0x6ef,0x6d9,0x6ff,0x707,0x70f,0x6f7,
+0x71f,0x725,0x72d,0x717,0x73d,0x743,0x74b,0x735,0x75b,0x760,0x768,0x753,0x778,0x77f,0x787,0x770,
+0x609,0x78f,0x797,0x47d,0x79f,0x7a7,0x7af,0x47d,0x7b7,0x7bf,0x7c7,0x7cc,0x7d4,0x7db,0x7e3,0x47d,
+0x5c8,0x7eb,0x7f3,0x7fb,0x803,0x555,0x813,0x80b,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x81b,0x5c8,0x823,0x827,0x82f,0x5c8,0x835,0x5c8,0x83b,0x843,0x84b,0x555,0x555,0x853,
+0x85b,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x860,0x868,0x5c8,0x5c8,0x870,0x878,0x880,0x888,0x890,0x5c8,0x898,0x8a0,0x8a8,
+0x8b8,0x5c8,0x8c0,0x8c2,0x8ca,0x8b0,0x5c8,0x8cd,0x8e1,0x8d5,0x8dd,0x8e9,0x5c8,0x8f1,0x8f7,0x8ff,
+0x907,0x5c8,0x917,0x91f,0x927,0x90f,0x47d,0x47d,0x937,0x93a,0x942,0x92f,0x952,0x94a,0x5c8,0x959,
+0x5c8,0x968,0x961,0x970,0x978,0x97c,0x984,0x98c,0x4fd,0x994,0x997,0x99d,0x9a4,0x997,0x524,0x9ac,
+0x4ad,0x4ad,0x4ad,0x4ad,0x9b4,0x4ad,0x4ad,0x4ad,0x9c4,0x9cc,0x9d4,0x9dc,0x9e4,0x9e8,0x9f0,0x9bc,
+0xa08,0xa10,0x9f8,0xa00,0xa18,0xa20,0xa28,0xa30,0xa48,0xa38,0xa40,0xa50,0xa58,0xa67,0xa6c,0xa5f,
+0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa7c,0xa84,0x8ff,0xa87,0xa8f,0xa96,0xa9b,0xaa3,
+0x8ff,0xaaa,0xaa9,0xaba,0xabd,0x8ff,0x8ff,0xab2,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,0xacc,0xad4,0xac4,
+0x8ff,0x8ff,0x8ff,0xad9,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,0xadf,0xae7,0x8ff,0xaef,0xaf6,
+0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,0xa74,0xa74,0xa74,0xa74,0xafe,0xa74,0xb05,0xb0c,
+0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0x8ff,0xb14,0xb1b,0xb1f,0xb25,0x8ff,0xb2b,0xaa4,
+0x555,0xb3b,0xb33,0xb43,0x4ad,0x4ad,0x4ad,0xb4b,0x4fd,0xb53,0x5c8,0xb59,0xb69,0xb61,0xb61,0x524,
+0xb71,0xb79,0xb81,0x47d,0xb89,0x8ff,0x8ff,0xb90,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,0xb98,0xb9e,
+0xbae,0xba6,0x609,0x5c8,0xbb6,0x85b,0x5c8,0xbbe,0xbc6,0xbca,0x5c8,0x5c8,0xbcf,0xbd7,0x8ff,0xbdf,
+0xaa4,0xbe7,0xbed,0x8ff,0xbe7,0xbf5,0x8ff,0xaa4,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,
+0xbfd,0x5c8,0x5c8,0x5c8,0xc05,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0xc0b,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0xc10,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x8cd,0x8ff,0x8ff,
+0xc18,0x5c8,0xc1b,0x5c8,0xc23,0xc29,0xc31,0xc39,0xc3e,0x5c8,0x5c8,0xc42,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0xc49,0x5c8,0xc50,0xc56,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0xc5e,0x5c8,0x5c8,0x5c8,0xc66,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0xc68,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0xc6f,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0xc76,0x5c8,0x5c8,0x5c8,0xc7d,0xc85,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0xc8a,0x5c8,0x5c8,0xc92,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0xc96,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0xc99,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0xc9c,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0xca2,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0xcaa,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0xcaf,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0xcb4,0x5c8,0x5c8,0x5c8,0xcb9,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0xcc1,0xcc8,0xccc,0x5c8,0x5c8,0x5c8,0xcd3,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0xcd9,
+0xce9,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0xce1,0x8ff,0xcf1,0x970,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0xcf6,0xcfe,0x4ad,0xd0e,0xd06,0x5c8,0x5c8,0xd16,0xd1e,0xd2e,0x4ad,0xd33,0xd3b,0xd41,0x47d,0xd26,
+0xd49,0xd51,0x5c8,0xd59,0xd69,0xd6c,0xd61,0xd74,0x61d,0xd7c,0xd83,0x8c1,0x66d,0xd93,0xd8b,0xd9b,
+0x5c8,0xda3,0xdab,0xdb3,0x5c8,0xdbb,0xdc3,0xdcb,0xdd3,0xddb,0xddf,0xde7,0x4fd,0x4fd,0x5c8,0xdef,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0xdf7,0xe03,0xdfb,
+0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,
+0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,
+0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,
+0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,
+0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,
+0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,
+0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,
+0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,
+0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,
+0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,
+0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,
+0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,
+0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,
+0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,
+0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0x5c8,0x5c8,0x5c8,0xe1b,0x5c8,0xcd4,0xe22,0xe27,
+0x5c8,0x5c8,0x5c8,0xe2f,0x5c8,0x5c8,0x8cc,0x47d,0xe45,0xe35,0xe3d,0x5c8,0x5c8,0xe4d,0xe55,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0xe5a,0xe62,0x5c8,0xe66,0x5c8,0xe6c,0xe70,
+0xe78,0xe80,0xe87,0xe8f,0x5c8,0x5c8,0x5c8,0xe95,0xead,0x46d,0xeb5,0xebd,0xec2,0x8e1,0xe9d,0xea5,
+0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,
+0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,0xe0b,
+0x11f4,0x11f4,0x1234,0x1274,0x12b4,0x12ec,0x132c,0x136c,0x13a4,0x13e4,0x1410,0x1450,0x1490,0x14a0,0x14e0,0x1514,
+0x1554,0x1584,0x15c4,0x1604,0x1614,0x1648,0x1680,0x16c0,0x1700,0x1740,0x1774,0x17a0,0x17e0,0x1818,0x1834,0x1874,
+0xa80,0xac0,0xb00,0xb40,0xb80,0xa40,0xbc0,0xa40,0xbe2,0xa40,0xa40,0xa40,0xa40,0xc22,0x1db,0x1db,
+0xc62,0xca2,0xa40,0xa40,0xa40,0xa40,0xce2,0xd02,0xa40,0xa40,0xd42,0xd82,0xdc2,0xe02,0xe42,0xe82,
+0xec2,0xef9,0x1db,0x1db,0xf1d,0xf51,0x1db,0xf79,0x1db,0x1db,0x1db,0x1db,0xfa6,0x1db,0x1db,0x1db,
+0x1db,0x1db,0x1db,0x1db,0xfba,0x1db,0xff2,0x1032,0x1db,0x103d,0x1db,0x1db,0x1db,0x1073,0xa40,0x10b3,
0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,
0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,
0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,
@@ -172,564 +172,565 @@ static const uint16_t propsTrie_index[21148]={
0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,
0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,
0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,
-0x10ee,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,
+0x10f3,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,
0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,
0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,
-0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x112e,
+0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x1133,
0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,
-0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x112e,
-0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,
-0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,
-0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,
-0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,
-0xeb9,0xec0,0xec8,0x47c,0x5c7,0x5c7,0x5c7,0x5b3,0xed8,0xed0,0xeef,0xee0,0xee7,0xef7,0xb81,0xeff,
-0x47c,0x47c,0x47c,0x47c,0xd77,0x5c7,0xf07,0xf0f,0x5c7,0xf17,0xf1f,0xf23,0xf2b,0x5c7,0xf33,0x47c,
-0x554,0x55e,0xf3b,0x5c7,0xf3f,0xf47,0xf57,0xf4f,0x5c7,0xf5f,0x5c7,0xf66,0x47c,0x47c,0x47c,0x47c,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0xb65,0x8c0,0xe5b,0x47c,0x47c,0x47c,0x47c,
-0xf76,0xf6e,0xf79,0xf81,0x8d4,0xf89,0x47c,0xf91,0xf99,0xfa1,0x47c,0x47c,0x5c7,0xfb1,0xfb9,0xfa9,
-0xfc9,0xfd0,0xfc1,0xfd8,0xfe0,0x47c,0xff0,0xfe8,0x5c7,0xff3,0xffb,0x1003,0x100b,0x1013,0x47c,0x47c,
-0x5c7,0x5c7,0x101b,0x47c,0x554,0x1023,0x4fc,0x102b,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,
-0x47c,0x47c,0x47c,0x1033,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,
-0x1043,0x5fd,0x104b,0x103b,0x945,0x1053,0x105b,0x1061,0x1079,0x1069,0x1071,0x107d,0x945,0x108d,0x1085,0x1095,
-0x10a5,0x109d,0x47c,0x47c,0x10ac,0x10b4,0x61f,0x10bc,0x10cc,0x6c8,0x10d4,0x10c4,0x47c,0x47c,0x47c,0x47c,
-0x5c7,0x10dc,0x10e4,0x47c,0x5c7,0x10ec,0x10f4,0x47c,0x47c,0x47c,0x47c,0x47c,0x5c7,0x10fc,0x1104,0x47c,
-0x5c7,0x110c,0x1114,0x111c,0x5c7,0x112c,0x1124,0x47c,0x113c,0x1134,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,
-0x554,0x4fc,0x1144,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x115c,0x114c,0x1154,0x5c7,0x116c,
-0x1164,0x5c7,0x1174,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x118a,0x118f,0x117c,0x1184,0x119f,
-0x1197,0x47c,0x47c,0x11ae,0x11b2,0x11a6,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,
-0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x8bf,0x47c,0x47c,0x47c,0x11c2,0x11ca,0x11d2,0x11ba,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x11da,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,
-0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x11e2,0x47c,0x47c,0x47c,
-0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,
-0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x11e4,
-0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x1174,0x8d4,
-0x11ec,0x47c,0x47c,0xe51,0x11f4,0x5c7,0x1204,0x120c,0x1214,0x11fc,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,
-0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,
-0x47c,0x47c,0x47c,0x47c,0x47c,0x5c7,0x5c7,0x121c,0x1221,0x1229,0x47c,0x47c,0x1231,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x1239,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x1241,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,
-0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,
-0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x8d4,0x47c,0x47c,0xe51,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x8b4,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,
-0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,
-0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x5c7,0x5c7,0x5c7,
-0x1249,0x124e,0x1256,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,
-0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x8f2,0x8f2,0x8f2,
-0x8f2,0x8f2,0x8f2,0x8f2,0xb94,0x8f2,0x125e,0x8f2,0x1265,0x126d,0x1273,0x8f2,0x1279,0x8f2,0x8f2,0x1281,
-0x47c,0x47c,0x47c,0x47c,0x47c,0x8f2,0x8f2,0xa95,0x1289,0x47c,0x47c,0x47c,0x47c,0x1299,0x12a0,0x12a5,
-0x12ab,0x12b3,0x12bb,0x12c3,0x129d,0x12cb,0x12d3,0x12db,0x12e0,0x12b2,0x1299,0x12a0,0x129c,0x12ab,0x12e8,0x129a,
-0x12eb,0x129d,0x12f3,0x12fb,0x1303,0x130a,0x12f6,0x12fe,0x1306,0x130d,0x12f9,0x1315,0x1291,0x8f2,0x8f2,0x8f2,
-0x8f2,0x8f2,0x8f2,0x8f2,0x8f2,0x8f2,0x8f2,0x8f2,0x8f2,0x8f2,0x8f2,0x8f2,0x8f2,0x523,0x1325,0x523,
-0x132c,0x1333,0x131d,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,
-0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,
-0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x133a,0x1342,0x47c,
-0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,
-0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,
-0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,
-0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x134a,0x47c,0x554,0x135a,0x1352,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,
-0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,
-0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x136a,0x1372,0x137a,
-0x1382,0x138a,0x1392,0x47c,0x1362,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x8f2,0x139a,0x8f2,
-0x8f2,0xb8c,0x139f,0x13a3,0xb94,0x13ab,0x13b0,0x8f2,0x139a,0x8f2,0x1278,0x47c,0x13b8,0x13c0,0x13c4,0x13cc,
-0x13d4,0x47c,0x47c,0x47c,0x47c,0x8f2,0x8f2,0x8f2,0x8f2,0x8f2,0x8f2,0x8f2,0x13dc,0x8f2,0x8f2,0x8f2,
-0x8f2,0x8f2,0x8f2,0x8f2,0x8f2,0x8f2,0x8f2,0x8f2,0x8f2,0x8f2,0x8f2,0x8f2,0x8f2,0x8f2,0x8f2,0x8f2,
-0x8f2,0x8f2,0x8f2,0x13e4,0x13ec,0x8f2,0x8f2,0x8f2,0xb8c,0x8f2,0x8f2,0x13e4,0x47c,0x139a,0x8f2,0x13f4,
-0x8f2,0x13fc,0xb96,0x47c,0x47c,0x139a,0xa93,0x1401,0x1406,0x140e,0x47c,0x1416,0xa99,0x47c,0x47c,0x47c,
-0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,
-0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,
-0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x141e,0x5c7,0x5c7,
-0x1425,0x5c7,0x5c7,0x5c7,0x142d,0x5c7,0x1435,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0xc6e,0x5c7,0x5c7,
-0x143d,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x1445,0x144d,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0xcad,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x1454,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x145b,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x1462,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0xb65,0x47c,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x1466,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0xf3f,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x146e,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x1476,0x47c,0x47c,
-0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,
-0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x5c7,0x5c7,
-0x5c7,0x5c7,0x147e,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0xf3f,0x47c,
-0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,
-0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,
-0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x148e,0x1486,
-0x1486,0x1486,0x47c,0x47c,0x47c,0x47c,0x523,0x523,0x523,0x523,0x523,0x523,0x523,0x1496,0x47c,0x47c,
-0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,
-0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,
-0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0x47c,0xe02,0xe02,
-0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,
-0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,
-0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,
-0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0xe02,0x149e,0x45b,0x45b,
+0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x1133,
+0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0xeca,0xed1,0xed9,0x47d,0x5c8,0x5c8,0x5c8,0xbd7,0xee9,0xee1,0xf00,0xef1,0xef8,0xf08,0xb85,0xf10,
+0x47d,0x47d,0x47d,0x47d,0x8c1,0x5c8,0xf18,0xf20,0x5c8,0xf28,0xf30,0xf34,0xf3c,0x5c8,0xf44,0x47d,
+0x555,0x55f,0xf4c,0x5c8,0xf50,0xf58,0xf68,0xf60,0x5c8,0xf70,0x5c8,0xf77,0x47d,0x47d,0x47d,0x47d,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0xb69,0x8cd,0xe6c,0x47d,0x47d,0x47d,0x47d,
+0xf87,0xf7f,0xf8a,0xf92,0x8e1,0xf9a,0x47d,0xfa2,0xfaa,0xfb2,0x47d,0x47d,0x5c8,0xfc2,0xfca,0xfba,
+0xfda,0xfe1,0xfd2,0xfe9,0xff1,0x47d,0x1001,0xff9,0x5c8,0x1004,0x100c,0x1014,0x101c,0x1024,0x47d,0x47d,
+0x5c8,0x5c8,0x102c,0x47d,0x555,0x1034,0x4fd,0x103c,0x5c8,0x1044,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x47d,0x104c,0x47d,0x47d,0x47d,0x47d,0x1054,0x105c,0x1063,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x1073,0x5fe,0x107b,0x106b,0x952,0x1083,0x108b,0x1091,0x10a9,0x1099,0x10a1,0x10ad,0x952,0x10bd,0x10b5,0x10c5,
+0x10d5,0x10cd,0x47d,0x47d,0x10dc,0x10e4,0x620,0x10ec,0x10fc,0x1102,0x110a,0x10f4,0x47d,0x47d,0x47d,0x47d,
+0x5c8,0x1112,0x111a,0x47d,0x5c8,0x1122,0x112a,0x47d,0x47d,0x47d,0x47d,0x47d,0x5c8,0x1132,0x113a,0x47d,
+0x5c8,0x1142,0x114a,0x1152,0x5c8,0x1162,0x115a,0x47d,0x83b,0x116a,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x5c8,0x1172,0x47d,0x47d,0x47d,0x555,0x4fd,0x117a,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x1192,0x1182,0x118a,0x5c8,0x11a2,0x119a,0x5c8,0x8c2,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x11b8,0x11bd,0x11aa,0x11b2,0x11cd,0x11c5,0x47d,0x47d,0x11dc,0x11e0,0x11d4,0x11f0,0x11e8,0x115a,0x47d,0x47d,
+0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x11f4,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x8cc,0x47d,0x47d,0x47d,
+0x1204,0x120c,0x1214,0x11fc,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x121c,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x1224,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x1226,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x8c2,0x8e1,0x122e,0x47d,0x47d,0xe62,0x1236,0x5c8,0x123e,0x1246,0x124e,0xcd9,0x47d,
+0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x47d,0x47d,0x555,0x4fd,0x1256,0x47d,0x47d,0x47d,0x5c8,0x5c8,0x125e,0x1263,0x126b,0x47d,
+0x47d,0x1273,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x127b,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x1283,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x8e1,0x47d,0x47d,0xe62,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0xdfb,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x5c8,0x5c8,0x5c8,0x128b,0x1290,0x1298,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,0xb98,0x8ff,0x12a0,0x8ff,0x12a7,0x12af,0x12b5,
+0x8ff,0x12bb,0x8ff,0x8ff,0x12c3,0x47d,0x47d,0x47d,0x47d,0x12cb,0x8ff,0x8ff,0xaa6,0x12d3,0x47d,0x47d,
+0x47d,0x47d,0x12e3,0x12ea,0x12ef,0x12f5,0x12fd,0x1305,0x130d,0x12e7,0x1315,0x131d,0x1325,0x132a,0x12fc,0x12e3,
+0x12ea,0x12e6,0x12f5,0x1332,0x12e4,0x1335,0x12e7,0x133d,0x1345,0x134d,0x1354,0x1340,0x1348,0x1350,0x1357,0x1343,
+0x135f,0x12db,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,
+0x8ff,0x8ff,0x524,0x136f,0x524,0x1376,0x137d,0x1367,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x1384,0x138c,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x1394,0x47d,0x555,0x13a4,0x139c,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x47d,0x47d,0x47d,0x13ac,0x13bc,0x13b4,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x13cc,0x13d4,0x13dc,0x13e4,0x13ec,0x13f4,0x47d,0x13c4,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x8ff,0x13fc,0x8ff,0x8ff,0xb90,0x1401,0x1405,0xb98,0x140d,0x8ff,0x8ff,0x13fc,0x8ff,0x12ba,
+0x47d,0x1415,0x141d,0x1421,0x1429,0x1431,0x47d,0x47d,0x47d,0x47d,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,
+0x8ff,0x1439,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,
+0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,0x8ff,0x1441,0x1449,0x8ff,0x8ff,0x8ff,0xb90,0x8ff,0x8ff,
+0x1451,0x47d,0x13fc,0x8ff,0x1459,0x8ff,0x1461,0xb9a,0x47d,0x47d,0x13fc,0xaa4,0x8ff,0x1465,0x8ff,0x146d,
+0x141d,0x8ff,0x47d,0x47d,0x47d,0xb9a,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x1475,0x5c8,0x5c8,0x147c,0x5c8,0x5c8,0x5c8,0x1484,0x5c8,0x148c,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0xc7a,0x5c8,0x5c8,0x1494,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x149c,0x14a4,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0xcb9,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x14ab,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x14b2,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x14b9,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0xb69,0x47d,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x14bd,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0xf50,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x127f,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x14c2,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x47d,0x5c8,0x5c8,0x5c8,0x5c8,0x14ca,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,0x5c8,
+0x5c8,0x5c8,0x5c8,0xf50,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x47d,0x14da,0x14d2,0x14d2,0x14d2,0x47d,0x47d,0x47d,0x47d,0x524,0x524,0x524,0x524,0x524,
+0x524,0x524,0x14e2,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
+0x47d,0x47d,0x47d,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,
+0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,
+0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,
+0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,
+0xe13,0xe13,0x14ea,0x45c,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,
0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,
-0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,
-0xc,0x17,0x17,0x17,0x19,0x17,0x17,0x17,0x14,0x15,0x17,0x18,0x17,0x13,0x17,0x17,
-0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,0x18,0x18,0x18,0x17,
-0x17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,0x14,0x17,0x15,0x1a,0x16,
-0x1a,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
-2,2,2,2,2,2,2,2,2,2,2,0x14,0x18,0x15,0x18,0xf,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0xf,0xf,0xf,0xf,0xc,0x17,0x17,0x17,0x19,0x17,0x17,0x17,0x14,0x15,0x17,0x18,
+0x17,0x13,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,
+0x18,0x18,0x18,0x17,0x17,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x14,
+0x17,0x15,0x1a,0x16,0x1a,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0x14,
+0x18,0x15,0x18,0xf,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,
0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,
-0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,
-0xc,0x17,0x19,0x19,0x19,0x19,0x1b,0x17,0x1a,0x1b,5,0x1c,0x18,0x10,0x1b,0x1a,
-0x1b,0x18,0x34b,0x38b,0x1a,2,0x17,0x17,0x1a,0x30b,5,0x1d,0x34cb,0x344b,0x3ccb,0x17,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,0x18,1,1,1,1,1,1,1,2,
-2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
-2,2,2,2,2,2,2,0x18,2,2,2,2,2,2,2,2,
+0xf,0xf,0xf,0xf,0xc,0x17,0x19,0x19,0x19,0x19,0x1b,0x17,0x1a,0x1b,5,0x1c,
+0x18,0x10,0x1b,0x1a,0x1b,0x18,0x34b,0x38b,0x1a,2,0x17,0x17,0x1a,0x30b,5,0x1d,
+0x34cb,0x344b,0x3ccb,0x17,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,0x18,1,1,1,1,
+1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,0x18,2,2,2,2,
+2,2,2,2,1,2,1,2,1,2,1,2,1,2,1,2,
1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,
1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,
-1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,
-1,2,1,2,1,2,1,2,2,1,2,1,2,1,2,1,
-2,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,
-1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,
-1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,
-1,1,2,1,2,1,2,2,2,1,1,2,1,2,1,1,
-2,1,1,1,2,2,1,1,1,1,2,1,1,2,1,1,
-1,2,2,2,1,1,2,1,1,2,1,2,1,2,1,1,
-2,1,2,2,1,2,1,1,2,1,1,1,2,1,2,1,
-1,2,2,5,1,2,2,2,5,5,5,5,1,3,2,1,
-3,2,1,3,2,1,2,1,2,1,2,1,2,1,2,1,
+1,2,1,2,1,2,1,2,1,2,1,2,2,1,2,1,
2,1,2,1,2,2,1,2,1,2,1,2,1,2,1,2,
-1,2,1,2,1,2,1,2,2,1,3,2,1,2,1,1,
1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,
1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,
+1,2,1,2,1,1,2,1,2,1,2,2,2,1,1,2,
+1,2,1,1,2,1,1,1,2,2,1,1,1,1,2,1,
+1,2,1,1,1,2,2,2,1,1,2,1,1,2,1,2,
+1,2,1,1,2,1,2,2,1,2,1,1,2,1,1,1,
+2,1,2,1,1,2,2,5,1,2,2,2,5,5,5,5,
+1,3,2,1,3,2,1,3,2,1,2,1,2,1,2,1,
+2,1,2,1,2,1,2,1,2,2,1,2,1,2,1,2,
+1,2,1,2,1,2,1,2,1,2,1,2,2,1,3,2,
+1,2,1,1,1,2,1,2,1,2,1,2,1,2,1,2,
1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,
-1,2,1,2,2,2,2,2,2,2,1,1,2,1,1,2,
-2,1,2,1,1,1,1,2,1,2,1,2,1,2,1,2,
+1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,
+1,2,1,2,1,2,1,2,2,2,2,2,2,2,1,1,
+2,1,1,2,2,1,2,1,1,1,1,2,1,2,1,2,
+1,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,5,2,2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
-5,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
-2,2,2,2,2,2,2,2,2,2,2,2,4,4,4,4,
-4,4,4,4,4,4,4,4,4,4,4,4,4,4,0x1a,0x1a,
-0x1a,0x1a,4,4,4,4,4,4,4,4,4,4,4,4,0x1a,0x1a,
-0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,4,4,4,4,
-4,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,4,0x1a,4,0x1a,0x1a,0x1a,0x1a,0x1a,
-0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,6,6,6,6,
+4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+4,4,0x1a,0x1a,0x1a,0x1a,4,4,4,4,4,4,4,4,4,4,
+4,4,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,
+4,4,4,4,4,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,4,0x1a,4,0x1a,
+0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,
+6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
-6,6,6,6,6,6,6,6,6,6,6,6,1,2,1,2,
-4,0x1a,1,2,0,0,4,2,2,2,0x17,1,0,0,0,0,
-0x1a,0x1a,1,0x17,1,1,1,0,1,0,1,1,2,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,
-1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,
-2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,
-2,2,1,1,1,2,2,2,1,2,1,2,1,2,1,2,
+1,2,1,2,4,0x1a,1,2,0,0,4,2,2,2,0x17,1,
+0,0,0,0,0x1a,0x1a,1,0x17,1,1,1,0,1,0,1,1,
+2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,0,1,1,1,1,1,1,1,1,1,2,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,1,2,2,1,1,1,2,2,2,1,2,1,2,
1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,
-2,2,2,2,1,2,0x18,1,2,1,1,2,2,1,1,1,
+1,2,1,2,2,2,2,2,1,2,0x18,1,2,1,1,2,
+2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,1,2,1,2,1,2,1,2,1,2,1,2,
1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,
+1,2,1,2,1,2,0x1b,6,6,6,6,6,7,7,1,2,
1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,
-1,2,0x1b,6,6,6,6,6,7,7,1,2,1,2,1,2,
1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,
1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,
+1,2,1,2,1,1,2,1,2,1,2,1,2,1,2,1,
+2,1,2,2,1,2,1,2,1,2,1,2,1,2,1,2,
1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,
-1,1,2,1,2,1,2,1,2,1,2,1,2,1,2,2,
1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,
-1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,
-1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,
-0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,0,0,4,0x17,0x17,
-0x17,0x17,0x17,0x17,0,2,2,2,2,2,2,2,2,2,2,2,
+1,2,1,2,0,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,
+0,4,0x17,0x17,0x17,0x17,0x17,0x17,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
-2,2,2,2,0,0x17,0x13,0,0,0x1b,0x1b,0x19,0,6,6,6,
+2,2,2,2,2,2,2,2,2,0x17,0x13,0,0,0x1b,0x1b,0x19,
+0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
-6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
-6,6,6,6,6,6,6,6,6,6,0x13,6,0x17,6,6,0x17,
-6,6,0x17,6,0,0,0,0,0,0,0,0,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,0,0,0,0,0,5,5,5,0x17,
-0x17,0,0,0,0,0,0,0,0,0,0,0,0x10,0x10,0x10,0x10,
-0x10,0x10,0x18,0x18,0x18,0x17,0x17,0x19,0x17,0x17,0x1b,0x1b,6,6,6,6,
-6,6,6,6,6,6,6,0x17,0x10,0,0x17,0x17,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,4,5,5,5,
-5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,
-6,6,6,6,6,6,6,6,6,6,6,6,0x49,0x89,0xc9,0x109,
-0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,0x17,0x17,5,5,6,5,5,5,
+6,6,6,6,6,6,6,6,6,6,6,6,6,6,0x13,6,
+0x17,6,6,0x17,6,6,0x17,6,0,0,0,0,0,0,0,0,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,5,
+5,5,5,0x17,0x17,0,0,0,0,0,0,0,0,0,0,0,
+0x10,0x10,0x10,0x10,0x10,0x10,0x18,0x18,0x18,0x17,0x17,0x19,0x17,0x17,0x1b,0x1b,
+6,6,6,6,6,6,6,6,6,6,6,0x17,0x10,0,0x17,0x17,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+4,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,
+6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
+0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,0x17,0x17,5,5,
+6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-0x17,5,6,6,6,6,6,6,6,0x10,0x1b,6,6,6,6,6,
-6,4,4,6,6,0x1b,6,6,6,6,5,5,0x49,0x89,0xc9,0x109,
-0x149,0x189,0x1c9,0x209,0x249,0x289,5,5,5,0x1b,0x1b,5,0x17,0x17,0x17,0x17,
-0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0x10,5,6,5,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,
-6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0,
-0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,0x17,5,6,6,6,6,6,6,6,0x10,0x1b,6,
+6,6,6,6,6,4,4,6,6,0x1b,6,6,6,6,5,5,
+0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,5,5,5,0x1b,0x1b,5,
+0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0x10,
+5,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,
-6,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,5,5,5,5,5,5,
+6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
+6,6,6,0,0,5,5,5,5,5,5,5,5,5,5,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,
-6,6,6,6,4,4,0x1b,0x17,0x17,0x17,4,0,0,0,0,0,
-6,6,6,6,4,6,6,6,4,6,6,6,6,6,0,0,
-0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,6,6,6,6,4,6,6,6,6,6,
+5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,
+6,6,6,6,6,5,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,5,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,6,6,6,0,0,0x17,0,
-5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,
+6,6,6,6,6,6,6,6,4,4,0x1b,0x17,0x17,0x17,4,0,
+0,6,0x19,0x19,6,6,6,6,4,6,6,6,4,6,6,6,
+6,6,0,0,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+0x17,0x17,0x17,0,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,6,6,6,6,4,6,
+6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,
+0,0,0x17,0,5,5,5,5,5,5,5,5,5,5,5,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-6,6,0x10,6,6,6,6,6,6,6,6,6,6,6,6,6,
+0,0,0,0,6,6,0x10,6,6,6,6,6,6,6,6,6,
6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,0,5,5,5,5,5,5,5,5,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,6,6,6,6,6,6,6,6,6,6,6,6,
-5,5,6,6,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,
-0x17,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-6,6,6,8,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,6,8,6,5,8,8,8,6,6,6,6,6,6,6,
-6,8,8,8,8,6,8,8,5,6,6,6,6,6,6,6,
-5,5,5,5,5,5,5,5,5,5,6,6,0,0,0x49,0x89,
-0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,5,5,0x19,0x19,0x37cb,0x35cb,0x3fcb,0x34cb,
-0x3ccb,0x94b,0x1b,0x19,5,0x17,0,0,5,6,8,8,0,5,5,5,
-5,5,5,5,5,0,0,5,5,0,0,5,5,5,5,5,
+6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,
5,5,5,5,5,5,5,5,5,0,5,5,5,5,5,5,
-5,0,5,0,0,0,5,5,5,5,0,0,6,5,8,8,
-8,6,6,6,6,0,0,8,8,0,0,8,8,6,5,0,
-0,0,0,0,0,0,0,8,0,0,0,0,5,5,0,5,
+5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,6,6,6,6,6,6,6,6,6,
+6,6,6,6,5,5,6,6,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,
+0x1c9,0x209,0x249,0x289,0x17,4,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,6,6,6,8,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,6,8,6,5,8,8,8,6,6,6,
+6,6,6,6,6,8,8,8,8,6,8,8,5,6,6,6,
+6,6,6,6,5,5,5,5,5,5,5,5,5,5,6,6,
+0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,5,5,0x19,0x19,
+0x37cb,0x35cb,0x3fcb,0x34cb,0x3ccb,0x94b,0x1b,0x19,5,0x17,6,0,5,6,8,8,
+0,5,5,5,5,5,5,5,5,0,0,5,5,0,0,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,0,5,5,
+5,5,5,5,5,0,5,0,0,0,5,5,5,5,0,0,
+6,5,8,8,8,6,6,6,6,0,0,8,8,0,0,8,
+8,6,5,0,0,0,0,0,0,0,0,8,0,0,0,0,
+5,5,0,5,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,
+0x1c9,0x209,0x249,0x289,6,6,5,5,5,6,0x17,0,0,0,0,0,
+0,0,0,0,0,6,6,8,0,5,5,5,5,5,5,0,
+0,0,0,5,5,0,0,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,0,5,5,5,5,5,5,5,0,5,5,
+0,5,5,0,5,5,0,0,6,0,8,8,8,6,6,0,
+0,0,0,6,6,0,0,6,6,6,0,0,0,6,0,0,
+0,0,0,0,0,5,5,5,5,0,5,0,5,5,6,6,
+0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x19,0,0,
+0,0,0,0,0,5,6,6,6,6,6,6,0,6,6,8,
+0,5,5,5,5,5,5,5,5,5,0,5,5,5,0,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,0,5,5,
+5,5,5,5,5,0,5,5,0,5,5,5,5,5,0,0,
+6,5,8,8,8,6,6,6,6,6,0,6,6,8,0,8,
+8,6,0,0,5,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,5,5,6,6,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,
+0x1c9,0x209,0x249,0x289,0x1b,5,0x34cb,0x344b,0x3ccb,0x37cb,0x35cb,0x3fcb,0,0,0,0,
+0,0,0,0,0,6,8,8,0,5,5,5,5,5,5,5,
+5,0,0,5,5,0,0,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,0,5,5,5,5,5,5,5,0,5,5,
+0,5,5,5,5,5,0,0,6,5,8,6,8,6,6,6,
+6,0,0,8,8,0,0,8,8,6,0,0,0,0,0,0,
+0,0,6,8,0,0,0,0,5,5,0,5,0,0,0,0,
+0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x7cb,0x1e4b,0x784b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x19,0x1b,0,0,0,0,0,0,0,6,5,
+0,5,5,5,5,5,5,0,0,0,5,5,5,0,5,5,
+5,5,0,0,0,5,5,0,5,0,5,5,0,0,0,5,
+5,0,0,0,5,5,5,0,0,0,5,5,5,5,5,5,
+5,5,5,5,5,5,0,0,0,0,8,8,6,8,8,0,
+0,0,8,8,8,0,8,8,8,6,0,0,5,0,0,0,
+0,0,0,8,0,0,0,0,0,0,0,0,5,5,6,6,
+0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,
+0,0,0,0,0x54b,0x58b,0x5cb,0x60b,0x58b,0x5cb,0x60b,0x1b,6,8,8,8,
+6,5,5,5,5,5,5,5,5,0,5,5,5,0,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,0,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,
+0,5,6,6,6,8,8,8,8,0,6,6,6,0,6,6,
+6,6,0,0,0,0,0,0,0,6,6,0,5,5,5,0,
+0,0,0,0,5,5,6,6,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,
+0x1c9,0x209,0x249,0x289,0,5,5,0,0,0,0,0,0,0,0,0,
+0,0,0,0,5,6,8,8,0x17,5,5,5,5,5,5,5,
+5,0,5,5,5,0,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,0,5,5,5,5,5,5,5,5,5,5,
+0,5,5,5,5,5,0,0,6,5,8,6,8,8,8,8,
+8,0,6,8,8,0,8,8,6,6,0,0,0,0,0,0,
+0,8,8,0,0,0,0,0,0,0,5,0,5,5,6,6,
+0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x7cb,0x1e4b,0x784b,0x34cb,
+0x344b,0x3ccb,0x37cb,0x35cb,0x3fcb,0x1b,5,5,5,5,5,5,6,6,8,8,
+0,5,5,5,5,5,5,5,5,0,5,5,5,0,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,6,6,5,8,8,
+8,6,6,6,6,0,8,8,8,0,8,8,8,6,5,0x1b,
+0,0,0,0,5,5,5,8,0xcc0b,0xca0b,0xcb4b,0xc90b,0x364b,0xc94b,0x350b,5,
0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,
-6,6,5,5,5,6,0,0,0,0,0,0,0,0,0,0,
-0,6,6,8,0,5,5,5,5,5,5,0,0,0,0,5,
-5,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,0,5,5,5,5,5,5,5,0,5,5,0,5,5,0,
-5,5,0,0,6,0,8,8,8,6,6,0,0,0,0,6,
-6,0,0,6,6,6,0,0,0,6,0,0,0,0,0,0,
-0,5,5,5,5,0,5,0,5,5,6,6,0,0,0x49,0x89,
-0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x19,0,0,0,0,0,0,
-0,5,6,6,6,6,6,6,0,6,6,8,0,5,5,5,
-5,5,5,5,5,5,0,5,5,5,0,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,0,5,5,5,5,5,5,
-5,0,5,5,0,5,5,5,5,5,0,0,6,5,8,8,
-8,6,6,6,6,6,0,6,6,8,0,8,8,6,0,0,
-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-5,5,6,6,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,
-0x1b,5,0x34cb,0x344b,0x3ccb,0x37cb,0x35cb,0x3fcb,0,0,0,0,0,0,0,0,
-0,6,8,8,0,5,5,5,5,5,5,5,5,0,0,5,
-5,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,0,5,5,5,5,5,5,5,0,5,5,0,5,5,5,
-5,5,0,0,6,5,8,6,8,6,6,6,6,0,0,8,
-8,0,0,8,8,6,0,0,0,0,0,0,0,0,6,8,
-0,0,0,0,5,5,0,5,0,0,0,0,0,0,0x49,0x89,
-0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x7cb,0x1e4b,0x784b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x19,0x1b,0,0,0,0,0,0,0,6,5,0,5,5,5,
-5,5,5,0,0,0,5,5,5,0,5,5,5,5,0,0,
-0,5,5,0,5,0,5,5,0,0,0,5,5,0,0,0,
-5,5,5,0,0,0,5,5,5,5,5,5,5,5,5,5,
-5,5,0,0,0,0,8,8,6,8,8,0,0,0,8,8,
-8,0,8,8,8,6,0,0,5,0,0,0,0,0,0,8,
-0,0,0,0,0,0,0,0,5,5,6,6,0,0,0x49,0x89,
-0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,0,0,
-0x54b,0x58b,0x5cb,0x60b,0x58b,0x5cb,0x60b,0x1b,6,8,8,8,0,5,5,5,
-5,5,5,5,5,0,5,5,5,0,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,0,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,0,0,0,5,6,6,
-6,8,8,8,8,0,6,6,6,0,6,6,6,6,0,0,
-0,0,0,0,0,6,6,0,5,5,5,0,0,0,0,0,
-5,5,6,6,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,
-0,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,
-5,6,8,8,0,5,5,5,5,5,5,5,5,0,5,5,
-5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,0,5,5,5,5,5,5,5,5,5,5,0,5,5,5,
-5,5,0,0,6,5,8,6,8,8,8,8,8,0,6,8,
-8,0,8,8,6,6,0,0,0,0,0,0,0,8,8,0,
-0,0,0,0,0,0,5,0,5,5,6,6,0,0,0x49,0x89,
-0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x7cb,0x1e4b,0x784b,0x34cb,0x344b,0x3ccb,0x37cb,0x35cb,
-0x3fcb,0x1b,5,5,5,5,5,5,6,6,8,8,0,5,5,5,
-5,5,5,5,5,0,5,5,5,0,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,6,6,5,8,8,8,6,6,6,
-6,0,8,8,8,0,8,8,8,6,5,0x1b,0,0,0,0,
-5,5,5,8,0xcc0b,0xca0b,0xcb4b,0xc90b,0x364b,0xc94b,0x350b,5,0,0,0,0,
-0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,8,8,
-0x17,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,
-0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,0,0,0,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,0,5,5,5,5,5,
-5,5,5,5,0,5,0,0,5,5,5,5,5,5,5,0,
-0,0,6,0,0,0,0,8,8,8,6,6,6,0,6,0,
-8,8,8,8,8,8,8,8,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,6,5,5,6,6,6,6,
-6,6,6,0,0,0,0,0x19,5,5,5,5,5,5,4,6,
-6,6,6,6,6,6,6,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,
-0x249,0x289,0x17,0x17,0,0,0,0,0,5,5,0,5,0,0,5,
-5,0,5,0,0,5,0,0,0,0,0,0,5,5,5,5,
-0,5,5,5,5,5,5,5,0,5,5,5,0,5,0,5,
-0,0,5,5,0,5,5,5,5,6,5,5,6,6,6,6,
-6,6,0,6,6,5,0,0,5,5,5,5,5,0,4,0,
-6,6,6,6,6,6,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,
-0x249,0x289,0,0,5,5,5,5,5,0x1b,0x1b,0x1b,0x17,0x17,0x17,0x17,
-0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x1b,0x17,0x1b,0x1b,0x1b,
-6,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,
-0x249,0x289,0x344b,0x3c4b,0x444b,0x4c4b,0x544b,0x5c4b,0x644b,0x6c4b,0x744b,0x2c4b,0x1b,6,0x1b,6,
-0x1b,6,0x14,0x15,0x14,0x15,8,8,5,5,5,5,5,5,5,5,
-0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,0,0,0,0,6,6,6,
-6,6,6,6,6,6,6,6,6,6,6,8,6,6,6,6,
-6,0x17,6,6,5,5,5,5,5,6,6,6,6,6,6,6,
-6,6,6,6,0,6,6,6,6,6,6,6,6,6,6,6,
+0,0,8,8,0x17,0,0,0,0,0,0,0,0,0,0,0,
+0,0,8,8,0,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,0,0,0,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,5,
+5,5,5,5,5,5,5,5,0,5,0,0,5,5,5,5,
+5,5,5,0,0,0,6,0,0,0,0,8,8,8,6,6,
+6,0,6,0,8,8,8,8,8,8,8,8,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,6,5,5,
+6,6,6,6,6,6,6,0,0,0,0,0x19,5,5,5,5,
+5,5,4,6,6,6,6,6,6,6,6,0x17,0x49,0x89,0xc9,0x109,
+0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,0,0,0,0,0,5,5,0,
+5,0,0,5,5,0,5,0,0,5,0,0,0,0,0,0,
+5,5,5,5,0,5,5,5,5,5,5,5,0,5,5,5,
+0,5,0,5,0,0,5,5,0,5,5,5,5,6,5,5,
+6,6,6,6,6,6,0,6,6,5,0,0,5,5,5,5,
+5,0,4,0,6,6,6,6,6,6,0,0,0x49,0x89,0xc9,0x109,
+0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,5,5,5,5,5,0x1b,0x1b,0x1b,
+0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x1b,
+0x17,0x1b,0x1b,0x1b,6,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x49,0x89,0xc9,0x109,
+0x149,0x189,0x1c9,0x209,0x249,0x289,0x344b,0x3c4b,0x444b,0x4c4b,0x544b,0x5c4b,0x644b,0x6c4b,0x744b,0x2c4b,
+0x1b,6,0x1b,6,0x1b,6,0x14,0x15,0x14,0x15,8,8,5,5,5,5,
+5,5,5,5,0,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,
+0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,8,
+6,6,6,6,6,0x17,6,6,5,5,5,5,5,6,6,6,
+6,6,6,6,6,6,6,6,0,6,6,6,6,6,6,6,
6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
-6,6,6,6,6,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x17,0x17,0x17,0x17,0x17,0x1b,0x1b,0x1b,
-0x1b,0x17,0x17,0,0,0,0,0,5,5,5,5,5,5,5,5,
-5,5,5,8,8,6,6,6,6,8,6,6,6,6,6,6,
-8,6,6,8,8,6,6,5,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,
-0x249,0x289,0x17,0x17,0x17,0x17,0x17,0x17,5,5,5,5,5,5,8,8,
-6,6,5,5,5,5,6,6,6,5,8,8,8,5,5,8,
-8,8,8,8,8,8,5,5,5,6,6,6,6,5,5,5,
-5,5,5,5,5,5,5,5,5,5,6,8,8,6,6,8,
-8,8,8,8,8,6,5,8,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,
-0x249,0x289,8,8,8,6,0x1b,0x1b,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,0x17,4,5,5,5,1,1,1,1,1,1,0,1,
-0,0,0,0,0,1,0,0,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,0,5,5,5,5,0,0,
-5,5,5,5,5,5,5,0,5,0,5,5,5,5,0,0,
-5,5,5,5,5,5,5,5,5,0,5,5,5,5,0,0,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,0,5,5,5,5,0,0,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,0,0,6,6,6,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
-0x17,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,
-0x16cb,0x194b,0x1bcb,0x1e4b,0x788b,0,0,0,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0,0,0,0,0,0,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,
-2,2,2,2,2,2,0,0,0x13,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,0x17,0x17,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,0xc,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,0x14,0x15,0,0,0,5,5,5,5,
-5,5,5,5,5,5,5,0x17,0x17,0x17,0x98a,0x9ca,0xa0a,5,5,5,
-5,5,5,5,5,0,0,0,0,0,0,0,5,5,5,5,
-5,5,5,5,5,5,5,5,5,0,5,5,5,5,6,6,
-6,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,
-6,0x17,0x17,0,0,0,0,0,0,0,0,0,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,
-0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,
-5,5,5,5,5,5,5,5,5,0,5,5,5,0,6,6,
-0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,
+6,6,6,6,6,6,6,6,6,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x17,0x17,0x17,0x17,
+0x17,0x1b,0x1b,0x1b,0x1b,0x17,0x17,0,0,0,0,0,5,5,5,5,
+5,5,5,5,5,5,5,8,8,6,6,6,6,8,6,6,
+6,6,6,6,8,6,6,8,8,6,6,5,0x49,0x89,0xc9,0x109,
+0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,0x17,0x17,0x17,0x17,5,5,5,5,
+5,5,8,8,6,6,5,5,5,5,6,6,6,5,8,8,
+8,5,5,8,8,8,8,8,8,8,5,5,5,6,6,6,
+6,5,5,5,5,5,5,5,5,5,5,5,5,5,6,8,
+8,6,6,8,8,8,8,8,8,6,5,8,0x49,0x89,0xc9,0x109,
+0x149,0x189,0x1c9,0x209,0x249,0x289,8,8,8,6,0x1b,0x1b,2,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,0x17,4,2,2,2,1,1,1,1,
+1,1,0,1,0,0,0,0,0,1,0,0,2,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,5,5,5,5,
+5,5,5,5,5,0,5,5,5,5,0,0,5,5,5,5,
+5,5,5,0,5,0,5,5,5,5,0,0,5,5,5,5,
+5,5,5,5,5,0,5,5,5,5,0,0,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,0,5,5,
+5,5,0,0,5,5,5,5,5,5,5,0,5,0,5,5,
+5,5,0,0,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,0,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,0,5,5,5,5,0,0,5,5,5,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-6,6,8,6,6,6,6,6,6,6,8,8,8,8,8,8,
-8,8,6,8,8,6,6,6,6,6,6,6,6,6,6,6,
-0x17,0x17,0x17,4,0x17,0x17,0x17,0x19,5,6,0,0,0x49,0x89,0xc9,0x109,
-0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,0x54b,0x58b,0x5cb,0x60b,
-0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0,0,0,0,0,0,5,5,5,5,
-5,5,5,5,5,6,5,0,0,0,0,0,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,0x17,0x17,0x17,0x17,
-0x17,0x17,0x13,0x17,0x17,0x17,0x17,6,6,6,0x10,0,0x49,0x89,0xc9,0x109,
-0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,5,5,5,4,
+5,5,5,5,5,5,5,0,0,6,6,6,0x17,0x17,0x17,0x17,
+0x17,0x17,0x17,0x17,0x17,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0xa4b,
+0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0x788b,0,0,0,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,0,0,2,2,2,2,2,2,0,0,0x13,5,5,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,
-0,0,0,0,5,5,5,5,5,6,6,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,0x17,0x17,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,
-6,6,6,8,8,8,8,6,6,8,8,8,0,0,0,0,
-8,8,6,8,8,8,8,8,8,6,6,6,0,0,0,0,
-0x1b,0,0,0,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,
+0xc,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,0x14,0x15,0,0,0,
+5,5,5,5,5,5,5,5,5,5,5,0x17,0x17,0x17,0x98a,0x9ca,
+0xa0a,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,
+5,5,5,5,5,5,5,5,5,5,5,5,5,0,5,5,
+5,5,6,6,6,0,0,0,0,0,0,0,0,0,0,0,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,
-5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,
-5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,
+5,5,6,6,6,0x17,0x17,0,0,0,0,0,0,0,0,0,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,6,6,0,0,0,0,0,0,0,0,0,0,0,0,
+5,5,5,5,5,5,5,5,5,5,5,5,5,0,5,5,
+5,0,6,6,0,0,0,0,0,0,0,0,0,0,0,0,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,6,6,8,6,6,6,6,6,6,6,8,8,
+8,8,8,8,8,8,6,8,8,6,6,6,6,6,6,6,
+6,6,6,6,0x17,0x17,0x17,4,0x17,0x17,0x17,0x19,5,6,0,0,
+0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,
+0x54b,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0,0,0,0,0,0,
+5,5,5,5,5,5,5,5,5,6,5,0,0,0,0,0,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+0x17,0x17,0x17,0x17,0x17,0x17,0x13,0x17,0x17,0x17,0x17,6,6,6,0x10,0,
+0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,
+5,5,5,4,5,5,5,5,5,5,5,5,5,5,5,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,
-0x249,0x289,0x30b,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+5,0,0,0,0,0,0,0,5,5,5,5,5,6,6,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,
+0,0,0,0,6,6,6,8,8,8,8,6,6,8,8,8,
+0,0,0,0,8,8,6,8,8,8,8,8,8,6,6,6,
+0,0,0,0,0x1b,0,0,0,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,
+0x1c9,0x209,0x249,0x289,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,0,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,0,0,5,5,5,5,5,0,0,0,0,0,0,0,
+0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,
+0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,
+0x149,0x189,0x1c9,0x209,0x249,0x289,0x30b,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,
-6,8,8,6,0,0,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,4,
-0x17,0x17,0x17,0x17,0x17,0x17,0,0,6,6,6,6,6,6,6,6,
-6,6,6,6,6,6,7,0,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,8,6,8,
-6,6,6,6,6,6,6,0,6,8,6,8,8,6,6,6,
-6,6,6,6,6,8,8,8,8,8,8,6,6,6,6,6,
-6,6,6,6,6,0,0,6,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,
-0x249,0x289,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,
-0x249,0x289,0,0,0,0,0,0,0x17,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,6,6,6,6,6,6,6,6,6,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,6,6,6,6,8,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,6,8,6,6,6,6,6,8,
-6,8,8,8,8,8,6,8,8,5,5,5,5,5,5,5,
-0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,
-0x17,0x17,0x17,0x17,5,8,6,6,6,6,8,8,6,6,8,6,
-6,6,5,5,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,5,5,
-5,5,5,5,6,6,8,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,6,8,6,6,8,8,8,6,8,6,
-6,6,8,8,0,0,0,0,0,0,0,0,0x17,0x17,0x17,0x17,
-0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,5,5,5,
-0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,5,5,5,5,5,5,
-8,8,8,8,8,8,8,8,6,6,6,6,6,6,6,6,
-8,8,6,6,0,0,0,0x17,0x17,0x17,0x17,0x17,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,4,4,4,4,4,4,0x17,0x17,2,2,2,2,
-2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x17,0x17,0x17,0x17,
-0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,0,6,6,6,0x17,
-6,6,6,6,6,6,6,6,6,6,6,6,6,8,6,6,
-6,6,6,6,6,5,5,5,5,6,5,5,5,5,8,8,
-6,5,5,8,6,6,0,0,0,0,0,0,2,2,2,2,
-2,2,2,2,2,2,2,2,4,4,4,4,4,4,4,4,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,6,6,8,8,6,0,0,0x17,0x17,0x17,0x17,0x17,0x17,
+0x17,0x17,0x17,4,0x17,0x17,0x17,0x17,0x17,0x17,0,0,6,6,6,6,
+6,6,6,6,6,6,6,6,6,6,7,0,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,8,6,8,6,6,6,6,6,6,6,0,6,8,6,8,
+8,6,6,6,6,6,6,6,6,8,8,8,8,8,8,6,
+6,6,6,6,6,6,6,6,6,0,0,6,0x49,0x89,0xc9,0x109,
+0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,
+0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,0x17,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,6,6,6,6,6,6,6,6,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,6,6,6,6,
+8,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,6,8,6,6,
+6,6,6,8,6,8,8,8,8,8,6,8,8,5,5,5,
+5,5,5,5,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,
+0x249,0x289,0x17,0x17,0x17,0x17,0x17,0x17,5,8,6,6,6,6,8,8,
+6,6,8,6,6,6,5,5,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,
+0x249,0x289,5,5,5,5,5,5,6,6,8,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,6,8,6,6,8,8,
+8,6,8,6,6,6,8,8,0,0,0,0,0,0,0,0,
+0x17,0x17,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,
+0,5,5,5,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,5,5,
+5,5,5,5,8,8,8,8,8,8,8,8,6,6,6,6,
+6,6,6,6,8,8,6,6,0,0,0,0x17,0x17,0x17,0x17,0x17,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,4,4,4,4,4,4,0x17,0x17,
+2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,
+0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,0,
+6,6,6,0x17,6,6,6,6,6,6,6,6,6,6,6,6,
+6,8,6,6,6,6,6,6,6,5,5,5,5,6,5,5,
+5,5,8,8,6,5,5,8,6,6,0,0,0,0,0,0,
+2,2,2,2,2,2,2,2,2,2,2,2,4,4,4,4,
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
-4,4,4,4,4,4,4,4,4,4,4,2,2,2,2,2,
-2,2,2,2,2,2,2,2,4,2,2,2,2,2,2,2,
+4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,2,
+2,2,2,2,2,2,2,2,2,2,2,2,4,2,2,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
-2,2,2,2,2,2,2,4,4,4,4,4,6,6,6,6,
+2,2,2,2,2,2,2,2,2,2,2,4,4,4,4,4,
6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
-6,6,6,6,6,6,0,6,6,6,6,6,1,2,1,2,
+6,6,6,6,6,6,6,6,6,6,0,6,6,6,6,6,
1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,
-1,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,
-2,2,2,2,1,1,1,1,1,0x1a,0x1a,0x1a,0,0,2,2,
-2,0,2,2,1,1,1,1,3,0x1a,0x1a,0,2,2,2,2,
-2,2,2,2,1,1,1,1,1,1,1,1,2,2,2,2,
-2,2,0,0,1,1,1,1,1,1,0,0,2,2,2,2,
-2,2,2,2,1,1,1,1,1,1,1,1,2,2,2,2,
-2,2,2,2,1,1,1,1,1,1,1,1,2,2,2,2,
-2,2,0,0,1,1,1,1,1,1,0,0,2,2,2,2,
-2,2,2,2,0,1,0,1,0,1,0,1,2,2,2,2,
-2,2,2,2,1,1,1,1,1,1,1,1,2,2,2,2,
-2,2,2,2,2,2,2,2,2,2,0,0,2,2,2,2,
-2,2,2,2,3,3,3,3,3,3,3,3,2,2,2,2,
-2,2,2,2,3,3,3,3,3,3,3,3,2,2,2,2,
-2,0,2,2,1,1,1,1,3,0x1a,2,0x1a,0x1a,0x1a,2,2,
-2,0,2,2,1,1,1,1,3,0x1a,0x1a,0x1a,2,2,2,2,
-0,0,2,2,1,1,1,1,0,0x1a,0x1a,0x1a,0x16,0x17,0x17,0x17,
-0x18,0x14,0x15,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x18,0x17,
-0x16,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0xc,0x10,0x10,0x10,0x10,
-0x10,0,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x2cb,4,0,0,
-0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x18,0x18,0x18,0x14,0x15,4,0xc,0xc,0xc,0xc,
-0xc,0xc,0xc,0xc,0xc,0xc,0xc,0x10,0x10,0x10,0x10,0x10,0x13,0x13,0x13,0x13,
-0x13,0x13,0x17,0x17,0x1c,0x1d,0x14,0x1c,0x1c,0x1d,0x14,0x1c,0x17,0x17,0x17,0x17,
-0x17,0x17,0x17,0x17,0xd,0xe,0x10,0x10,0x10,0x10,0x10,0xc,0x17,0x17,0x17,0x17,
-0x17,0x17,0x17,0x17,0x17,0x1c,0x1d,0x17,0x17,0x17,0x17,0x16,0x2cb,0x30b,0x34b,0x38b,
-0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x18,0x18,0x18,0x14,0x15,0,4,4,4,4,
-4,4,4,4,4,4,4,4,4,0,0,0,0x19,0x19,0x19,0x19,
+1,2,1,2,1,2,2,2,2,2,2,2,2,2,1,2,
+2,2,2,2,2,2,2,2,1,1,1,1,1,0x1a,0x1a,0x1a,
+0,0,2,2,2,0,2,2,1,1,1,1,3,0x1a,0x1a,0,
+2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,
+2,2,2,2,2,2,0,0,1,1,1,1,1,1,0,0,
+2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,
+2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,
+2,2,2,2,2,2,0,0,1,1,1,1,1,1,0,0,
+2,2,2,2,2,2,2,2,0,1,0,1,0,1,0,1,
+2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,
+2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,
+2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,
+2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,
+2,2,2,2,2,0,2,2,1,1,1,1,3,0x1a,2,0x1a,
+0x1a,0x1a,2,2,2,0,2,2,1,1,1,1,3,0x1a,0x1a,0x1a,
+2,2,2,2,0,0,2,2,1,1,1,1,0,0x1a,0x1a,0x1a,
+0x16,0x17,0x17,0x17,0x18,0x14,0x15,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+0x17,0x17,0x18,0x17,0x16,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0xc,
+0x10,0x10,0x10,0x10,0x10,0,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+0x2cb,4,0,0,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x18,0x18,0x18,0x14,0x15,4,
+0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0x10,0x10,0x10,0x10,0x10,
+0x13,0x13,0x13,0x13,0x13,0x13,0x17,0x17,0x1c,0x1d,0x14,0x1c,0x1c,0x1d,0x14,0x1c,
+0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0xd,0xe,0x10,0x10,0x10,0x10,0x10,0xc,
+0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x1c,0x1d,0x17,0x17,0x17,0x17,0x16,
+0x2cb,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x18,0x18,0x18,0x14,0x15,0,
+4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,
0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,
-0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,6,
-6,6,6,6,6,6,6,6,6,7,7,7,7,6,7,7,
-7,6,6,6,6,6,6,6,6,6,6,6,6,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,
-1,0x1b,1,0x1b,1,0x1b,1,1,1,1,0x1b,2,1,1,1,1,
-2,5,5,5,5,2,0x1b,0x1b,2,2,1,1,0x18,0x18,0x18,0x18,
-0x18,1,2,2,2,2,0x1b,0x18,0x1b,0x1b,2,0x1b,0x358b,0x360b,0x364b,0x348b,
-0x388b,0x350b,0x390b,0x3d0b,0x410b,0x354b,0x454b,0x35cb,0x3dcb,0x45cb,0x4dcb,0x58b,0x1b,0x1b,1,0x1b,
-0x1b,0x1b,0x1b,1,0x1b,0x1b,2,1,1,1,2,2,1,1,1,2,
-0x1b,1,0x1b,0x1b,0x18,1,1,1,1,1,0x1b,0x1b,0x58a,0x5ca,0x60a,0x64a,
-0x68a,0x6ca,0x70a,0x74a,0x78a,0x7ca,0x80a,0x84a,0x11ca,0x1e4a,0x980a,0x784a,0x58a,0x5ca,0x60a,0x64a,
-0x68a,0x6ca,0x70a,0x74a,0x78a,0x7ca,0x80a,0x84a,0x11ca,0x1e4a,0x980a,0x784a,0x784a,0x984a,0x788a,1,
-2,0x6ca,0x11ca,0x988a,0x78ca,0x54b,0x1b,0x1b,0,0,0,0,0x18,0x18,0x18,0x18,
-0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,
-0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x18,0x1b,0x1b,0x18,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x1b,0x1b,0x18,0x1b,
-0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,
+0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,
+7,6,7,7,7,6,6,6,6,6,6,6,6,6,6,6,
+6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x1b,0x1b,0x1b,0x1b,1,0x1b,1,0x1b,1,0x1b,1,1,1,1,0x1b,2,
+1,1,1,1,2,5,5,5,5,2,0x1b,0x1b,2,2,1,1,
+0x18,0x18,0x18,0x18,0x18,1,2,2,2,2,0x1b,0x18,0x1b,0x1b,2,0x1b,
+0x358b,0x360b,0x364b,0x348b,0x388b,0x350b,0x390b,0x3d0b,0x410b,0x354b,0x454b,0x35cb,0x3dcb,0x45cb,0x4dcb,0x58b,
+0x1b,0x1b,1,0x1b,0x1b,0x1b,0x1b,1,0x1b,0x1b,2,1,1,1,2,2,
+1,1,1,2,0x1b,1,0x1b,0x1b,0x18,1,1,1,1,1,0x1b,0x1b,
+0x58a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x7ca,0x80a,0x84a,0x11ca,0x1e4a,0x980a,0x784a,
+0x58a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x7ca,0x80a,0x84a,0x11ca,0x1e4a,0x980a,0x784a,
+0x784a,0x984a,0x788a,1,2,0x6ca,0x11ca,0x988a,0x78ca,0x54b,0x1b,0x1b,0,0,0,0,
+0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x18,
+0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,
+0x1b,0x1b,0x18,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
-0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x14,0x15,0x14,0x15,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x14,0x15,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x14,0x15,0x14,0x15,0x1b,0x1b,0x1b,0x1b,
0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x14,0x15,0x1b,0x1b,0x1b,0x1b,0x1b,
0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
-0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,
0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x2cb,0x80b,
-0x84b,0x88b,0x8cb,0x90b,0x94b,0x98b,0x9cb,0xa0b,0xa4b,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,
-0x4cb,0x50b,0x7cb,0x2cb,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x80b,0x84b,
-0x88b,0x8cb,0x90b,0x94b,0x98b,0x9cb,0xa0b,0xa4b,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,
-0x50b,0x7cb,0x80b,0x84b,0x88b,0x8cb,0x90b,0x94b,0x98b,0x9cb,0xa0b,0xa4b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,
0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x2cb,0x80b,0x84b,0x88b,0x8cb,0x90b,0x94b,0x98b,0x9cb,0xa0b,0xa4b,0x30b,0x34b,0x38b,
+0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x2cb,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,
+0x50b,0x7cb,0x80b,0x84b,0x88b,0x8cb,0x90b,0x94b,0x98b,0x9cb,0xa0b,0xa4b,0x30b,0x34b,0x38b,0x3cb,
+0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x80b,0x84b,0x88b,0x8cb,0x90b,0x94b,0x98b,0x9cb,0xa0b,0xa4b,
0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x30b,0x34b,
-0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,
-0x50b,0x7cb,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x14,0x15,0x18,
-0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
-0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x14,0x15,0x14,0x15,0x14,0x15,
-0x14,0x15,0x14,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
-0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,
-0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x18,0x18,0x18,
-0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
-0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x14,0x15,0x14,0x15,0x18,0x18,0x18,0x18,
-0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
-0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x14,0x15,0x18,0x18,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,
+0x14,0x15,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x30b,0x34b,0x38b,0x3cb,
+0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,
0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,
-0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x18,
-0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0x1b,0x1b,
+0x18,0x14,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x14,0x15,
+0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x14,0x15,0x14,0x15,0x14,
+0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,
+0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x14,0x15,0x14,0x15,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x14,0x15,0x18,0x18,
0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+0x18,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,
+0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,2,0,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,0,2,2,2,2,
@@ -749,8 +750,8 @@ static const uint16_t propsTrie_index[21148]={
0x1c,0x1d,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x13,0x17,0x17,0x13,0x17,
0x1c,0x1d,0x17,0x17,0x1c,0x1d,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x17,0x17,
0x17,0x17,0x17,4,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x13,0x13,
-0x17,0x17,0x17,0x17,0x13,0x17,0x14,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x17,0x17,0x17,0x17,0x13,0x17,0x14,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+0x17,0x17,0x17,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,
0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
@@ -768,9 +769,11 @@ static const uint16_t propsTrie_index[21148]={
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
5,5,5,0x17,4,4,4,5,0,0,0,0,0,5,5,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,0,0,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,
-0x1b,0x1b,0x58b,0x5cb,0x60b,0x64b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+5,5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,0,0x1b,0x1b,0x58b,0x5cb,
+0x60b,0x64b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,
0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,
5,5,5,5,5,5,5,5,5,5,5,5,0x58b,0x5cb,0x60b,0x64b,
0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
@@ -834,6 +837,8 @@ static const uint16_t propsTrie_index[21148]={
5,5,5,5,5,5,5,5,0x6c5,5,5,5,5,5,5,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
5,5,0x545,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,
5,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
0x1b,0x1b,0x1b,0x1b,5,5,5,5,5,5,5,5,5,5,5,5,
5,5,5,5,5,5,5,5,5,4,5,5,5,5,5,5,
@@ -858,7 +863,7 @@ static const uint16_t propsTrie_index[21148]={
2,2,2,2,2,1,2,1,2,1,1,2,1,2,1,2,
1,2,1,2,4,0x1a,0x1a,1,2,1,2,5,1,2,1,2,
2,2,1,2,1,2,1,2,1,2,1,2,1,2,1,1,
-1,1,1,0,1,1,1,1,1,2,1,2,0,0,0,0,
+1,1,1,2,1,1,1,1,1,2,1,2,1,2,0,0,
0,0,0,0,5,5,6,5,5,5,6,5,5,5,5,6,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
5,5,5,5,5,5,5,8,8,6,6,8,0x1b,0x1b,0x1b,0x1b,
@@ -871,13 +876,11 @@ static const uint16_t propsTrie_index[21148]={
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
5,5,5,5,8,8,8,8,8,8,8,8,8,8,8,8,
6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
-6,6,5,5,5,5,5,5,0x17,0x17,0x17,5,0x17,5,0,0,
+6,6,5,5,5,5,5,5,0x17,0x17,0x17,5,0x17,5,5,6,
5,5,5,5,5,5,6,6,6,6,6,6,6,6,0x17,0x17,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
5,5,5,6,6,6,6,6,6,6,6,6,6,6,8,8,
-0,0,0,0,0,0,0,0,0,0,0,0x17,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,0,0,0,8,0x17,0x17,0x17,
+0,0,0,0,0,0,0,0,0,0,0,0x17,8,0x17,0x17,0x17,
0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,4,0x49,0x89,0xc9,0x109,
0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0x17,0x17,5,5,5,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,
@@ -906,153 +909,162 @@ static const uint16_t propsTrie_index[21148]={
8,6,8,8,6,8,8,0x17,8,6,0,0,0x49,0x89,0xc9,0x109,
0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,5,5,5,5,
0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,
-0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,0,0,0,0,5,5,5,5,
+5,5,5,0,0,0,0,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,0x12,0x12,0x12,0x12,
0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
-0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
+0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x11,0x11,0x11,0x11,
0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
-0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,5,5,5,5,5,5,5,5,
-5,5,5,0x605,5,5,5,5,5,5,5,0x7c5,5,5,5,5,
-0x5c5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,0x6c5,5,0x6c5,5,5,5,5,5,5,5,5,
+0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,5,5,5,5,
+5,5,5,5,5,5,5,0x605,5,5,5,5,5,5,5,0x7c5,
+5,5,5,5,0x5c5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,0x6c5,5,0x6c5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,0x7c5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,0,0,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,0x18,5,5,
+5,5,5,5,5,5,5,5,5,5,5,0,5,5,5,5,
+5,0,5,0,5,5,0,5,5,0,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,2,2,2,2,2,2,2,0,0,0,0,0,
+0,0,0,0,0,0,0,2,2,2,2,2,0,0,0,0,
+0,5,6,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,
+0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,0x15,0x14,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,0,0,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+5,5,5,5,5,5,5,5,5,5,5,5,0x19,0x1b,0,0,
+6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
+0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x14,0x15,0x17,0,0,0,0,0,0,
+6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
+0x17,0x13,0x13,0x16,0x16,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,
+0x15,0x17,0x17,0x14,0x15,0x17,0x17,0x17,0x17,0x16,0x16,0x16,0x17,0x17,0x17,0,
+0x17,0x17,0x17,0x17,0x13,0x14,0x15,0x14,0x15,0x14,0x15,0x17,0x17,0x17,0x18,0x13,
+0x18,0x18,0x18,0,0x17,0x19,0x17,0x17,0,0,0,0,5,5,5,5,
+5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,0x7c5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,0,0,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,0x18,5,5,5,5,5,5,
-5,5,5,5,5,5,5,0,5,5,5,5,5,0,5,0,
-5,5,0,5,5,0,5,5,5,5,5,5,5,5,5,5,
+5,0,0,0x10,0,0,5,5,5,5,5,5,0,0,5,5,
+5,5,5,5,0,0,5,5,5,5,5,5,0,0,5,5,
+5,0,0,0,0x19,0x19,0x18,0x1a,0x1b,0x19,0x19,0,0x1b,0x18,0x18,0x18,
+0x18,0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0x10,0x10,0x10,
+0x1b,0x1b,0,0,0,0x17,0x17,0x17,0x19,0x17,0x17,0x17,0x14,0x15,0x17,0x18,
+0x17,0x13,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,
+0x18,0x18,0x18,0x17,0x1a,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0x14,
+0x18,0x15,0x18,0x14,0x15,0x17,0x14,0x15,0x17,0x17,5,5,5,5,5,5,
+5,5,5,5,4,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,4,4,5,5,5,5,5,5,5,5,
+5,5,5,5,0,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,0,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,
+5,5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,0,0,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,0,0,0xb00b,0xb80b,0x784b,0x804b,0x884b,0x904b,0x984b,0xa04b,0xa84b,0xb04b,0xb84b,0x788b,
+0x808b,0x888b,0x908b,0x988b,0xa08b,0xa88b,0xb08b,0xb88b,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x17,0x17,0x17,0,0,0,0,0x58b,0x5cb,0x60b,0x64b,0x68b,
+0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0x800b,0x880b,
+0x900b,0x980b,0xa00b,0xa80b,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0xcca,0x11ca,0x11ca,0x11ca,0x11ca,0x1e4a,0x880a,
+0x980a,0x980a,0x980a,0x980a,0x980a,0x784a,0x984a,0x68a,0x11ca,0x344b,0x344b,0x388b,0x3ccb,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x54b,0x34cb,0x1b,0x1b,0x1b,0,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,
+0x34ca,0x344a,0x58a,0x68a,0x11ca,0x980a,0x984a,0x988a,0x68a,0x7ca,0x11ca,0x1e4a,0x980a,0x784a,0x984a,0x68a,
+0x7ca,0x11ca,0x1e4a,0x980a,0x784a,0x788a,0x988a,0x7ca,0x58a,0x58a,0x58a,0x5ca,0x5ca,0x5ca,0x5ca,0x68a,
+0x1b,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,0,0,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,
-0,0,0,2,2,2,2,2,0,0,0,0,0,5,6,5,
+5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+6,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,
+0x16cb,0x194b,0x1bcb,0x1e4b,0x800b,0x880b,0x900b,0x980b,0xa00b,0xa80b,0xb00b,0xb80b,0,0,0,0,
+0x58b,0x68b,0x7cb,0x11cb,0,0,0,0,0,0,0,0,0,5,5,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,
-0x1a,0x1a,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,0x1bca,5,5,5,5,5,5,5,5,0xb80a,0,0,0,0,0,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,0x15,0x14,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,0,0,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,
-5,5,5,5,5,5,5,5,0x19,0x1b,0,0,6,6,6,6,
-6,6,6,6,6,6,6,6,6,6,6,6,0x17,0x17,0x17,0x17,
-0x17,0x17,0x17,0x14,0x15,0x17,0,0,0,0,0,0,6,6,6,6,
-6,6,6,6,6,6,6,6,6,6,6,6,0x17,0x13,0x13,0x16,
-0x16,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x17,0x17,0x14,
-0x15,0x17,0x17,0x17,0x17,0x16,0x16,0x16,0x17,0x17,0x17,0,0x17,0x17,0x17,0x17,
-0x13,0x14,0x15,0x14,0x15,0x14,0x15,0x17,0x17,0x17,0x18,0x13,0x18,0x18,0x18,0,
-0x17,0x19,0x17,0x17,0,0,0,0,5,5,5,5,5,0,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0x10,
-0,0,5,5,5,5,5,5,0,0,5,5,5,5,5,5,
-0,0,5,5,5,5,5,5,0,0,5,5,5,0,0,0,
-0x19,0x19,0x18,0x1a,0x1b,0x19,0x19,0,0x1b,0x18,0x18,0x18,0x18,0x1b,0x1b,0,
-0,0,0,0,0,0,0,0,0,0x10,0x10,0x10,0x1b,0x1b,0,0,
-0,0x17,0x17,0x17,0x19,0x17,0x17,0x17,0x14,0x15,0x17,0x18,0x17,0x13,0x17,0x17,
-0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,0x18,0x18,0x18,0x17,
-0x1a,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
-2,2,2,2,2,2,2,2,2,2,2,0x14,0x18,0x15,0x18,0x14,
-0x15,0x17,0x14,0x15,0x17,0x17,5,5,5,5,5,5,5,5,5,5,
-4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,4,4,5,5,5,5,5,5,5,5,5,5,5,5,
-0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,0,5,5,0,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,
-0xb00b,0xb80b,0x784b,0x804b,0x884b,0x904b,0x984b,0xa04b,0xa84b,0xb04b,0xb84b,0x788b,0x808b,0x888b,0x908b,0x988b,
-0xa08b,0xa88b,0xb08b,0xb88b,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x17,0x17,0x17,0,0,0,0,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,
-0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0x800b,0x880b,0x900b,0x980b,0xa00b,0xa80b,
-0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0xcca,0x11ca,0x11ca,0x11ca,0x11ca,0x1e4a,0x880a,0x980a,0x980a,0x980a,0x980a,
-0x980a,0x784a,0x984a,0x68a,0x11ca,0x344b,0x344b,0x388b,0x3ccb,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x54b,0x34cb,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0x34ca,0x344a,0x58a,0x68a,
-0x11ca,0x980a,0x984a,0x988a,0x68a,0x7ca,0x11ca,0x1e4a,0x980a,0x784a,0x984a,0x68a,0x7ca,0x11ca,0x1e4a,0x980a,
-0x784a,0x788a,0x988a,0x7ca,0x58a,0x58a,0x58a,0x5ca,0x5ca,0x5ca,0x5ca,0x68a,0x1b,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,0,0,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,6,0x58b,0x5cb,0x60b,
-0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,
-0x800b,0x880b,0x900b,0x980b,0xa00b,0xa80b,0xb00b,0xb80b,0,0,0,0,0x58b,0x68b,0x7cb,0x11cb,
-0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,0x1bca,5,5,
-5,5,5,5,5,5,0xb80a,0,0,0,0,0,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,6,6,6,6,6,0,0,0,0,0,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,0,0x17,5,5,5,5,
-0,0,0,0,5,5,5,5,5,5,5,5,0x17,0x58a,0x5ca,0x7ca,
-0xa4a,0x1e4a,0,0,0,0,0,0,0,0,0,0,2,2,2,2,
-2,2,2,2,2,2,2,2,2,2,2,2,5,5,5,5,
+5,5,5,5,5,5,6,6,6,6,6,0,0,0,0,0,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,0,0,0x49,0x89,0xc9,0x109,
-0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0x17,
+5,5,5,5,0,0,0,0,5,5,5,5,5,5,5,5,
+0x17,0x58a,0x5ca,0x7ca,0xa4a,0x1e4a,0,0,0,0,0,0,0,0,0,0,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
-2,2,2,2,2,2,2,2,0,0,0,0,1,1,1,1,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,
+0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-0,0,0,0,2,2,2,2,2,2,2,2,5,5,5,5,
-5,5,5,5,0,0,0,0,0,0,0,0,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,
-0,0,0,0,0,0,0,0x17,0,0,0,0,0,0,0,0,
+2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,0,0,0,0,2,2,2,2,2,2,2,2,
+5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+0,0,0,0,0,0,0,0,0,0,0,0x17,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,0,5,5,0,0,0,5,0,0,5,5,5,5,5,
+5,5,0,0,5,0,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0x17,
+0x58b,0x5cb,0x60b,0x7cb,0xa4b,0x1e4b,0x784b,0x788b,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x1b,
+0x1b,0x58b,0x5cb,0x60b,0x64b,0x68b,0x7cb,0xa4b,0,0,0,0,0,0,0,0x58b,
+0x5cb,0x60b,0x64b,0x64b,0x68b,0x7cb,0xa4b,0x1e4b,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,5,
-5,0,0,0,5,0,0,5,5,5,5,5,5,5,0,0,
-5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,0,0x17,0x58b,0x5cb,0x60b,0x7cb,
-0xa4b,0x1e4b,0x784b,0x788b,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,0x1b,0x1b,0x58b,0x5cb,0x60b,
-0x64b,0x68b,0x7cb,0xa4b,0,0,0,0,0,0,0,0x58b,0x5cb,0x60b,0x64b,0x64b,
-0x68b,0x7cb,0xa4b,0x1e4b,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,0,5,5,0,0,0,0,0,0x58b,
-0x68b,0x7cb,0xa4b,0x1e4b,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,0x58b,0x7cb,0xa4b,0x1e4b,0x5cb,0x60b,
-0,0,0,0x17,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,
-0,0,0,0x17,0xa04b,0xa84b,0xb04b,0xb84b,0x788b,0x808b,0x888b,0x908b,0x988b,0xa08b,0xa88b,0xb08b,
-0xb88b,0x78cb,0x80cb,0x88cb,0x90cb,0x98cb,0xa0cb,0xa8cb,0xb0cb,0xb8cb,0x36cb,0x354b,0x34cb,0x348b,0x46cb,0x344b,
-0x4ecb,0x388b,0x3ccb,0x454b,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,
-0x5ecb,0x344b,5,5,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,
-0xf4b,0x11cb,0x144b,0x16cb,0,0,0x1e4b,0x800b,0x880b,0x900b,0x980b,0xa00b,0xa80b,0xb00b,0xb80b,0x784b,
-0x804b,0x884b,0x904b,0x984b,0x30b,0x34b,0x38b,0x3cb,0x7cb,0xa4b,0x1e4b,0x784b,0,0,0,0,
-0,0,0,0,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0,0,
-0,0,0,0,5,6,6,6,0,6,6,0,0,0,0,0,
-6,6,6,6,5,5,5,5,0,5,5,5,0,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,0,5,5,0,0,
+0,0,0,0x58b,0x68b,0x7cb,0xa4b,0x1e4b,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x58b,0x7cb,
+0xa4b,0x1e4b,0x5cb,0x60b,0,0,0,0x17,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,0,0,0,0,0,0x17,0xa04b,0xa84b,0xb04b,0xb84b,0x788b,0x808b,0x888b,0x908b,
+0x988b,0xa08b,0xa88b,0xb08b,0xb88b,0x78cb,0x80cb,0x88cb,0x90cb,0x98cb,0xa0cb,0xa8cb,0xb0cb,0xb8cb,0x36cb,0x354b,
+0x34cb,0x348b,0x46cb,0x344b,0x4ecb,0x388b,0x3ccb,0x454b,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+0,0,0,0,0x5ecb,0x344b,5,5,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,
+0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0,0,0x1e4b,0x800b,0x880b,0x900b,0x980b,0xa00b,
+0xa80b,0xb00b,0xb80b,0x784b,0x804b,0x884b,0x904b,0x984b,0x30b,0x34b,0x38b,0x3cb,0x7cb,0xa4b,0x1e4b,0x784b,
+0x344b,0,0,0,0,0,0,0,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+0x17,0,0,0,0,0,0,0,5,6,6,6,0,6,6,0,
+0,0,0,0,6,6,6,6,5,5,5,5,0,5,5,5,
+0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,0,0,6,6,6,0,
+0,0,0,6,5,5,5,5,5,5,5,5,5,5,5,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,0,0,0,0,6,6,6,0,0,0,0,6,
+5,0x58b,0x11cb,0x17,5,5,5,5,5,5,5,5,5,5,5,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,0x58b,0x11cb,0x17,
+5,0x58b,0x7cb,0xa4b,5,5,5,5,5,6,6,0,0,0,0,0x58b,
+0x68b,0x7cb,0xa4b,0x1e4b,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0,0,0,0,
+0,0,0,0,5,5,5,5,5,5,5,5,0x1b,5,5,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,0x58b,0x7cb,0xa4b,
-5,5,5,5,5,6,6,0,0,0,0,0x58b,0x68b,0x7cb,0xa4b,0x1e4b,
-0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,0,0,
-5,5,5,5,5,5,5,5,0x1b,5,5,5,5,5,5,5,
+5,5,5,5,5,5,0,0,0,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,0,0,0,0x17,0x17,0x17,0x17,0x17,0x17,0x17,5,5,5,5,
+5,5,5,5,5,5,0,0,0x58b,0x5cb,0x60b,0x64b,0x7cb,0xa4b,0x1e4b,0x784b,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,0,0,0x58b,0x5cb,0x60b,0x64b,0x7cb,0xa4b,0x1e4b,0x784b,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,
-0,0,0,0,0x58b,0x5cb,0x60b,0x64b,0x7cb,0xa4b,0x1e4b,0x784b,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,
-0,0,0,0,0,0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,
-0,0,0,0,0,0x58b,0x5cb,0x60b,0x64b,0x7cb,0xa4b,0x1e4b,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,
-5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,
-0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,
-2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,
-0,0,0,0,0,0,0x58b,0x68b,0x7cb,0x11cb,0x1e4b,0x784b,0x30b,0x34b,0x38b,0x3cb,
-0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0x800b,
-0x880b,0x900b,0x980b,0xa00b,0xa80b,0xb00b,0xb80b,0x344b,0x34cb,0x348b,0x388b,0,0x144b,0x16cb,0x194b,0x1bcb,
+5,5,5,0,0,0,0,0,0x58b,0x5cb,0x60b,0x64b,0x7cb,0xa4b,0x1e4b,0x784b,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,0,0,0,0,0,0,0,0x17,0x17,0x17,0x17,0,0,0,
+0,0,0,0,0,0,0,0,0,0x58b,0x5cb,0x60b,0x64b,0x7cb,0xa4b,0x1e4b,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,
+2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,0,0,0,0,0,0,0,0x58b,0x68b,0x7cb,0x11cb,0x1e4b,0x784b,
+5,5,5,5,6,6,6,6,0,0,0,0,0,0,0,0,
+0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,
+0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,
+0x194b,0x1bcb,0x1e4b,0x800b,0x880b,0x900b,0x980b,0xa00b,0xa80b,0xb00b,0xb80b,0x344b,0x34cb,0x348b,0x388b,0,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,0x58b,0x5cb,0x60b,
+0x64b,0x68b,0x7cb,0xa4b,0xccb,0x1e4b,0x344b,5,0,0,0,0,0,0,0,0,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,6,6,6,6,6,6,6,6,6,6,6,0x58b,0x7cb,0xa4b,
+0x1e4b,0x17,0x17,0x17,0x17,0x17,0,0,0,0,0,0,0x144b,0x16cb,0x194b,0x1bcb,
0x1e4b,0x784b,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,6,8,6,8,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
@@ -1061,17 +1073,17 @@ static const uint16_t propsTrie_index[21148]={
0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,5,5,5,5,
5,5,5,5,5,5,5,5,5,5,5,5,8,8,8,6,
6,6,6,8,8,6,6,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,
+0,0,0,0,0,0,0,0,0,0x10,0,0,5,5,5,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,
0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,
0,0,0,0,5,5,5,5,5,5,5,6,6,6,6,6,
8,6,6,6,6,6,6,6,6,0,0x49,0x89,0xc9,0x109,0x149,0x189,
-0x1c9,0x209,0x249,0x289,0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,0,
+0x1c9,0x209,0x249,0x289,0x17,0x17,0x17,0x17,5,8,8,0,0,0,0,0,
0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,
5,5,5,5,6,6,6,5,5,5,5,5,5,5,5,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
5,5,5,5,5,5,5,6,0x17,0x17,5,0,0,0,0,0,
-0,0,0,0,8,5,5,5,5,0x17,0x17,0x17,0x17,0x17,6,6,
+0,0,0,0,8,5,5,5,5,0x17,0x17,0x17,0x17,6,6,6,
6,0x17,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,5,0x17,
5,0x17,0x17,0x17,5,5,5,5,5,5,5,5,5,5,5,5,
5,5,5,5,5,5,5,8,8,8,6,6,6,6,6,6,
@@ -1091,238 +1103,245 @@ static const uint16_t propsTrie_index[21148]={
6,6,6,6,6,0,0,0,0,0,0,0,0,0,0,0,
6,6,8,8,0,5,5,5,5,5,5,5,5,0,0,5,
5,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,
-6,8,8,8,8,0,0,8,8,0,0,8,8,8,0,0,
-5,0,0,0,0,0,0,8,0,0,0,0,0,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,8,8,8,6,6,6,6,6,6,6,6,
-8,8,6,6,6,8,6,5,5,5,5,0x17,0x17,0x17,0x17,0x17,
-0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0x17,0,0x17,0,0,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-8,8,8,6,6,6,6,6,6,8,6,8,8,8,8,6,
-6,8,6,6,5,5,0x17,5,0,0,0,0,0,0,0,0,
-0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,8,
-8,8,6,6,6,6,0,0,8,8,8,8,6,6,8,6,
-6,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
-0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,5,5,5,5,6,6,0,0,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-8,8,8,6,6,6,6,6,6,6,6,8,8,6,8,6,
-6,0x17,0x17,0x17,5,0,0,0,0,0,0,0,0,0,0,0,
-0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,
-0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0,0,
+5,0,5,5,5,5,5,5,5,0,5,5,0,5,5,5,
+5,5,0,6,6,5,8,8,6,8,8,8,8,0,0,8,
+8,0,0,8,8,8,0,0,5,0,0,0,0,0,0,8,
+0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,8,8,8,
+6,6,6,6,6,6,6,6,8,8,6,6,6,8,6,5,
+5,5,5,0x17,0x17,0x17,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,
+0x249,0x289,0,0x17,0,0x17,6,0,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,8,8,8,6,6,6,6,6,
+6,8,6,8,8,8,8,6,6,8,6,6,5,5,0x17,5,
+0,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,
+0x249,0x289,0,0,0,0,0,0,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,8,8,8,6,6,6,6,0,0,
+8,8,8,8,6,6,8,6,6,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+5,5,5,5,6,6,0,0,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,8,8,8,6,6,6,6,6,
+6,6,6,8,8,6,8,6,6,0x17,0x17,0x17,5,0,0,0,
+0,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,
+0x249,0x289,0,0,0,0,0,0,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+0x17,0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,
+0x249,0x289,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,
+5,5,5,6,8,6,8,8,6,6,6,6,6,6,8,6,
+0,0,0,0,0,0,0,0,8,8,6,6,6,6,8,6,
+6,6,6,6,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,
+0x249,0x289,0x7cb,0xa4b,0x17,0x17,0x17,0x1b,5,5,5,5,5,5,5,5,
+5,5,5,5,8,8,8,6,6,6,6,6,6,6,6,6,
+8,6,6,0x17,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,
+0x249,0x289,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0,0,0,0,0,
+0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,
+6,8,5,6,6,6,6,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,6,
+0,0,0,0,0,0,0,0,5,6,6,6,6,6,6,8,
+8,6,6,6,5,5,5,5,5,6,6,6,6,6,6,6,
+6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,0x17,0x17,0x17,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,5,5,5,5,0,0,5,5,
+5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,8,
+6,6,0x17,0x17,0x17,5,0x17,0x17,5,0x17,0x17,0x17,0x17,0x17,0,0,
+0,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,
+0x249,0x289,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,
+0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0,0,0,0x17,0x17,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,0,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,8,6,6,6,6,6,6,6,0,6,6,6,6,
+6,6,8,6,6,6,6,6,6,6,6,6,0,8,6,6,
+6,6,6,6,6,8,6,6,8,6,6,0,0,0,0,0,
+0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,0,0,6,6,6,6,6,6,6,6,6,6,
+6,6,6,6,6,6,5,6,0,0,0,0,0,0,0,0,
0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,
+5,5,5,5,5,5,5,0,5,5,0,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,6,6,6,6,6,6,0,0,0,6,0,6,6,0,6,
+5,5,5,5,5,5,5,5,5,5,8,8,8,8,8,0,
+6,6,0,8,8,6,8,6,5,0,0,0,0,0,0,0,
+5,5,5,5,5,5,0,5,5,0,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,6,6,8,8,0x17,0x17,0,0,0,0,0,0,0,
+0x34ca,0x354a,0x34ca,0x34ca,0x344a,0x348a,0x388a,0xf4a,0x11ca,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0,
+0x17,0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,0,0,0,0,
+0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x64a,
+0x68a,0x6ca,0x70a,0x74a,0x78a,0x58a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x58a,0x5ca,
+0x60a,0x64a,0x68a,0x5ca,0x60a,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x58a,0x5ca,0x60a,0x60a,
+0x64a,0x68a,0xc08a,0xc18a,0x58a,0x5ca,0x60a,0x60a,0x64a,0x68a,0x60a,0x60a,0x64a,0x64a,0x64a,0x64a,
+0x6ca,0x70a,0x70a,0x70a,0x74a,0x74a,0x78a,0x78a,0x78a,0x78a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x58a,
+0x5ca,0x60a,0x64a,0x64a,0x68a,0x68a,0x5ca,0x60a,0x58a,0x5ca,0x348a,0x388a,0x454a,0x348a,0x388a,0x35ca,
+5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-5,5,5,5,5,5,5,5,5,5,5,6,8,6,8,8,
-6,6,6,6,6,6,8,6,0,0,0,0,0,0,0,0,
-8,8,6,6,6,6,8,6,6,6,6,6,0,0,0,0,
-0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x7cb,0xa4b,0x17,0x17,0x17,0x1b,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,0,0,0,6,6,6,
-0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,
-0x16cb,0x194b,0x1bcb,0,0,0,0,0,0,0,0,0,0,0,0,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,6,6,6,6,6,6,8,5,6,6,6,6,0x17,
-0x17,0x17,0x17,0x17,0x17,0x17,0x17,6,0,0,0,0,0,0,0,0,
-5,6,6,6,6,6,6,8,8,6,6,6,5,5,5,5,
-5,6,6,6,6,6,6,8,8,6,6,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-0x17,0x17,0x17,0,0,0,0,0,0,0,0,0,0,0,0,0,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-5,5,5,5,0,0,5,5,5,5,6,6,6,6,6,6,
-6,6,6,6,6,6,6,8,6,6,0x17,0x17,0x17,0,0x17,0x17,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,
-5,0x17,0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,0,0,0,
-0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,
-0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0,0,0,
-0x17,0x17,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,8,6,6,6,6,
-6,6,6,0,6,6,6,6,6,6,8,6,6,6,6,6,
-6,6,6,6,0,8,6,6,6,6,6,6,6,8,6,6,
-8,6,6,0,0,0,0,0,0,0,0,0,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,0,0,6,6,
-6,6,6,6,6,6,6,6,6,6,6,6,6,6,5,6,
0,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,
-0x249,0x289,0,0,0,0,0,0,5,5,5,5,5,5,5,0,
-5,5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,0,
-0,0,6,0,6,6,0,6,0x34ca,0x354a,0x34ca,0x34ca,0x344a,0x348a,0x388a,0xf4a,
-0x11ca,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0,0x17,0x17,0x17,0x17,0x17,0,0,0,
-0,0,0,0,0,0,0,0,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,
-0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x58a,0x5ca,0x60a,
-0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x58a,0x5ca,0x60a,0x64a,0x68a,0x5ca,0x60a,0x60a,0x64a,0x68a,
-0x6ca,0x70a,0x74a,0x78a,0x58a,0x5ca,0x60a,0x60a,0x64a,0x68a,0xc08a,0xc18a,0x58a,0x5ca,0x60a,0x60a,
-0x64a,0x68a,0x60a,0x60a,0x64a,0x64a,0x64a,0x64a,0x6ca,0x70a,0x70a,0x70a,0x74a,0x74a,0x78a,0x78a,
-0x78a,0x78a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x58a,0x5ca,0x60a,0x64a,0x64a,0x68a,0x68a,0x5ca,0x60a,
-0x58a,0x5ca,0x348a,0x388a,0x454a,0x348a,0x388a,0x35ca,5,5,5,5,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x249,0x289,0,0,0,0,0x17,0x17,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0x17,0x17,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,
-6,6,6,6,6,0x17,0,0,0,0,0,0,0,0,0,0,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+5,5,5,5,5,5,0,0,6,6,6,6,6,0x17,0,0,
+0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,0x17,
+0x17,0x17,0x17,0x17,0x1b,0x1b,0x1b,0x1b,4,4,4,4,0x17,0x1b,0,0,
+0,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,
+0x249,0x289,0,0x7cb,0x1e4b,0x788b,0x790b,0x798b,0x7a0b,0x7a8b,0,5,5,5,5,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-6,6,6,6,6,6,6,0x17,0x17,0x17,0x17,0x17,0x1b,0x1b,0x1b,0x1b,
-4,4,4,4,0x17,0x1b,0,0,0,0,0,0,0,0,0,0,
-0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0x7cb,0x1e4b,0x788b,0x790b,0x798b,
-0x7a0b,0x7a8b,0,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,0,0,0,0,0,5,5,5,
-5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,
-5,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
+0,0,0,0,0,5,5,5,0x54b,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,
+0x74b,0x78b,0x7cb,0x80b,0x84b,0x88b,0x8cb,0x90b,0x94b,0x98b,0x9cb,0xa0b,0x58b,0x5cb,0x60b,0x17,
+0x17,0x17,0x17,0,0,0,0,0,5,5,5,5,5,0,0,0,
+0,0,0,0,0,0,0,0,5,8,8,8,8,8,8,8,
8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
-8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,6,6,6,6,4,4,4,4,4,4,4,4,4,
-4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,
+8,8,8,8,8,8,8,8,8,8,8,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,6,6,6,6,4,
+4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,
-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,
-0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,0,
-0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,
-5,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,
-5,5,0,0,0x1b,6,6,0x17,0x10,0x10,0x10,0x10,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,
+0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,
+5,5,5,5,5,5,5,0,0,0,0,0,5,5,5,5,
+5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,
+5,5,5,5,5,5,5,5,5,5,0,0,0x1b,6,6,0x17,
+0x10,0x10,0x10,0x10,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,
-0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,8,8,6,6,6,0x1b,0x1b,
-0x1b,8,8,8,8,8,8,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,6,
-6,6,6,6,6,6,6,0x1b,0x1b,6,6,6,6,6,6,6,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,6,6,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x1b,0x1b,6,6,6,0x1b,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,
-0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x249,0x289,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,
-0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x49,0x89,0xc9,0x109,0x149,0x189,
-0x1c9,0x209,0x249,0x289,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,
+0x1b,8,8,6,6,6,0x1b,0x1b,0x1b,8,8,8,8,8,8,0x10,
+0x10,0x10,0x10,0x10,0x10,0x10,0x10,6,6,6,6,6,6,6,6,0x1b,
+0x1b,6,6,6,6,6,6,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,6,
+6,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x1b,0x1b,6,6,
+6,0x1b,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x54b,0x58b,0x5cb,0x60b,
+0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0x80b,0x84b,0x88b,0x8cb,0x90b,0x94b,0x98b,0x9cb,0xa0b,
+0,0,0,0,0,0,0,0,0,0,0,0,0x58b,0x5cb,0x60b,0x64b,
+0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x58b,0x5cb,
+0x60b,0x64b,0x68b,0x58b,0x68b,0,0,0,0,0,0,0,0x249,0x289,0x49,0x89,
+0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,
+0x249,0x289,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,
+2,0,2,2,2,2,2,2,2,2,2,2,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+1,0,1,1,0,0,1,0,0,1,1,0,0,1,1,1,
+1,0,1,1,1,1,1,1,1,1,2,2,2,2,0,2,
+0,2,2,2,2,2,2,2,0,2,2,2,2,2,2,2,
2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,2,2,2,2,2,2,2,0,2,2,2,2,2,2,
+1,1,1,1,2,2,2,2,1,1,0,1,1,1,1,0,
+0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,
+1,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,1,1,0,1,
+1,1,1,0,1,1,1,1,1,0,1,0,0,0,1,1,
+1,1,1,1,1,0,2,2,2,2,2,2,2,2,2,2,
2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,
+1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
-2,2,2,2,2,2,2,2,1,0,1,1,0,0,1,0,
-0,1,1,0,0,1,1,1,1,0,1,1,1,1,1,1,
-1,1,2,2,2,2,0,2,0,2,2,2,2,2,2,2,
-0,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,
-1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,
-1,0,1,1,1,1,1,1,1,0,2,2,2,2,2,2,
-2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
-2,2,2,2,1,1,0,1,1,1,1,0,1,1,1,1,
-1,0,1,0,0,0,1,1,1,1,1,1,1,0,2,2,
-2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,
+2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,2,2,2,2,2,2,0,0,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
-2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,
-2,2,0,0,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,0x18,2,2,
+1,1,1,1,1,0x18,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0x18,
+2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x18,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
-2,2,2,2,2,2,2,0x18,2,2,2,2,2,2,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,0x18,2,2,2,2,2,2,2,2,
-2,2,2,2,2,2,2,2,2,2,2,2,2,0x18,2,2,
-2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,2,2,2,0x18,2,2,2,2,2,2,1,2,
-0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x49,0x89,0xc9,0x109,
-0x149,0x189,0x1c9,0x209,0,6,6,6,6,6,6,6,6,6,6,6,
-6,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,6,6,6,6,6,6,6,6,6,6,6,6,
-6,6,6,6,6,6,6,6,6,6,6,0x1b,0x1b,0x1b,0x1b,6,
-6,6,6,6,6,6,6,6,6,6,6,6,6,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-6,0x1b,0x1b,0x17,0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,6,6,6,6,6,6,6,6,0,
+2,2,2,2,2,0x18,2,2,2,2,2,2,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,0x18,
+2,2,2,2,2,2,1,2,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,
+0x1c9,0x209,0x249,0x289,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0,6,6,6,
+6,6,6,6,6,6,6,6,6,6,6,6,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,6,
6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
-6,0,0,6,6,6,6,6,6,6,0,6,6,0,6,6,
-6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,5,5,5,5,5,0,0,0x58b,
-0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,6,6,6,6,6,6,6,0,
-0,0,0,0,0,0,0,0,2,2,2,2,6,6,6,6,
-6,6,6,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,
-0x249,0x289,0,0,0,0,0x17,0x17,1,1,2,2,2,2,2,2,
+6,6,6,0x1b,0x1b,0x1b,0x1b,6,6,6,6,6,6,6,6,6,
+6,6,6,6,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,0x1b,0x1b,0x17,0x17,0x17,0x17,0x17,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,
+6,6,6,6,6,6,6,0,6,6,6,6,6,6,6,6,
+6,6,6,6,6,6,6,6,6,0,0,6,6,6,6,6,
+6,6,0,6,6,0,6,6,6,6,6,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+5,5,5,5,5,0,0,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,
+6,6,6,6,6,6,6,0,0,0,0,0,0,0,0,0,
+2,2,2,2,6,6,6,6,6,6,6,0,0,0,0,0,
+0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0x17,0x17,
+1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
-2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x18,0x18,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,5,5,5,5,0,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,0,5,5,0,5,0,0,5,
-0,5,5,5,5,5,5,5,5,5,5,0,5,5,5,5,
-0,5,0,5,0,0,0,0,0,0,5,0,0,0,0,5,
-0,5,0,5,0,5,5,5,0,5,5,0,5,0,0,5,
-0,5,0,5,0,5,0,5,0,5,5,0,5,0,0,5,
-5,5,5,0,5,5,5,5,5,5,5,0,5,5,5,5,
-0,5,5,5,5,0,5,0,5,5,5,5,5,5,5,5,
-5,5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,0,0,0,0,0,5,5,5,0,5,5,5,
-5,5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x2cb,0x2cb,0x30b,0x34b,
-0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x54b,0x54b,0,0,0,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,
+0x78cb,0x794b,0x814b,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x1b,0x34cb,0x344b,0x3ccb,
+0x19,0x58b,0x5cb,0x788b,0x78cb,0,0,0,0,0,0,0,0,0,0,0,
+0x16cb,0x194b,0x1bcb,0x1e4b,0x800b,0x880b,0x900b,0x980b,0xa00b,0xa80b,0xb00b,0xb80b,0x784b,0x804b,0x884b,0x904b,
+0x984b,0xa04b,0xa84b,0xb04b,0xb84b,0x788b,0x808b,0x888b,0x908b,0x988b,0xa08b,0xa88b,0xb08b,0xb88b,0x78cb,0x80cb,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x18,0x18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+5,5,5,5,0,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+0,5,5,0,5,0,0,5,0,5,5,5,5,5,5,5,
+5,5,5,0,5,5,5,5,0,5,0,5,0,0,0,0,
+0,0,5,0,0,0,0,5,0,5,0,5,0,5,5,5,
+0,5,5,0,5,0,0,5,0,5,0,5,0,5,0,5,
+0,5,5,0,5,0,0,5,5,5,5,0,5,5,5,5,
+5,5,5,0,5,5,5,5,0,5,5,5,5,0,5,0,
+5,5,5,5,5,5,5,5,5,5,0,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,
+0,5,5,5,0,5,5,5,5,5,0,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,
0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x2cb,0x2cb,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x54b,
+0x54b,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,
-0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,
+0,0,0,0,0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1a,0x1a,0x1a,0x1a,0x1a,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,
+0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1a,
+0x1a,0x1a,0x1a,0x1a,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0,0,0,0,0,0,0,0,0x1b,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,5,0x705,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,0x645,5,5,5,5,5,5,5,
+0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,
+0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,
+0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,
+0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,
+0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,
+0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0x1b,0x1b,0x1b,0x1b,0,0,0,0x1b,0,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,
+0,0,0,0,5,0x705,5,5,5,5,5,5,5,5,5,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,0x645,5,5,5,5,5,5,5,5,5,
+5,5,5,5,0x645,5,5,5,5,5,5,5,5,5,5,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,0x685,5,5,5,5,5,5,5,5,5,5,
+5,5,0x645,5,5,5,5,5,5,5,5,5,5,5,5,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,0xcc5,5,5,5,5,5,5,5,5,
-0xf45,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-0xf45,5,5,5,5,5,5,5,5,5,5,5,5,5,0x6c5,5,
+5,0x685,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,0x605,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,0xcc5,5,5,5,5,5,5,5,5,0xf45,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,0xf45,5,5,5,
+5,5,5,5,5,5,5,5,5,5,0x6c5,5,5,5,5,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,0x605,5,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,0x605,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,0x605,5,5,5,5,5,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,0x605,5,5,5,5,5,5,5,5,
-5,5,5,5,5,0x645,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,5,5,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,
+5,5,5,5,0x605,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,0x605,5,5,5,5,5,5,5,5,5,5,5,5,
+5,0x645,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,
@@ -1340,1867 +1359,1915 @@ static const uint16_t propsTrie_index[21148]={
static const UTrie2 propsTrie={
propsTrie_index,
- propsTrie_index+4464,
+ propsTrie_index+4468,
NULL,
- 4464,
- 16684,
+ 4468,
+ 16984,
0xa40,
- 0x11f0,
+ 0x11f4,
0x0,
0x0,
0x110000,
- 0x5298,
+ 0x53c8,
NULL, 0, FALSE, FALSE, 0, NULL
};
-static const uint16_t propsVectorsTrie_index[29236]={
-0x4c4,0x4cc,0x4d4,0x4dc,0x4f4,0x4fc,0x504,0x50c,0x514,0x51c,0x524,0x52c,0x534,0x53c,0x544,0x54c,
-0x553,0x55b,0x563,0x56b,0x56e,0x576,0x57e,0x586,0x58e,0x596,0x59e,0x5a6,0x5ae,0x5b6,0x5be,0x5c6,
-0x5ce,0x5d6,0x5dd,0x5e5,0x5ed,0x5f5,0x5fd,0x605,0x60d,0x615,0x61a,0x622,0x629,0x631,0x639,0x641,
-0x649,0x651,0x659,0x661,0x668,0x670,0x678,0x680,0x688,0x690,0x698,0x6a0,0x6a8,0x6b0,0x6b8,0x6c0,
-0x193e,0xd41,0xe2e,0x6c8,0x4e4,0xe95,0xe9d,0x1ad4,0x120d,0x1225,0x1215,0x121d,0x781,0x787,0x78f,0x797,
-0x79f,0x7a5,0x7ad,0x7b5,0x7bd,0x7c3,0x7cb,0x7d3,0x7db,0x7e1,0x7e9,0x7f1,0x7f9,0x801,0x809,0x810,
-0x818,0x81e,0x826,0x82e,0x836,0x83c,0x844,0x84c,0x854,0x122d,0x85c,0x864,0x86c,0x873,0x87b,0x883,
-0x88b,0x88f,0x897,0x89e,0x8a6,0x8ae,0x8b6,0x8be,0x153d,0x1545,0x8c6,0x8ce,0x8d6,0x8de,0x8e6,0x8ed,
-0x15a3,0x1593,0x159b,0x1879,0x1881,0x123d,0x8f5,0x1235,0x1487,0x1487,0x1489,0x1251,0x1252,0x1245,0x1247,0x1249,
-0x15ab,0x15ad,0x8fd,0x15ad,0x905,0x90a,0x912,0x15b2,0x918,0x15ad,0x91e,0x926,0xc18,0x15ba,0x15ba,0x92e,
-0x15ca,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,
-0x15cb,0x15cb,0x15cb,0x15c2,0x936,0x15d3,0x15d3,0x93e,0xb25,0xb2d,0xb35,0xb3d,0x15e3,0x15db,0x946,0x94e,
-0x956,0x15ed,0x15f5,0x95e,0x15eb,0x966,0x1946,0xd49,0xb45,0xb4d,0xb55,0xb5a,0x17e7,0xc4b,0xc52,0x174f,
-0xbe8,0x194e,0xd51,0xd59,0xd61,0xd69,0xf4d,0xf4d,0x183f,0x1844,0xc85,0xc8d,0x18b5,0x18bd,0x19ef,0xe36,
-0x18c5,0xcd5,0xcdd,0x18cd,0x6d0,0x4e4,0xf2d,0xd71,0x176f,0x1757,0x1767,0x175f,0x17ff,0x17f7,0x17bf,0xbf8,
-0x125a,0x125a,0x125a,0x125a,0x125d,0x125a,0x125a,0x1265,0x96e,0x126d,0x972,0x97a,0x126d,0x982,0x98a,0x992,
-0x127d,0x1275,0x1285,0x99a,0x9a2,0x128d,0x9aa,0x9b2,0x1295,0x129d,0x12a5,0x12ad,0x9ba,0x12b5,0x12bc,0x12c4,
-0x12cc,0x12d4,0x12dc,0x12e4,0x12ec,0x12f3,0x12fb,0x1303,0x130b,0x1313,0x1316,0x1318,0x15fd,0x16e2,0x16e8,0x182f,
-0x1320,0x9c2,0x9ca,0x143a,0x143f,0x1442,0x144a,0x1328,0x1452,0x1452,0x1338,0x1330,0x1340,0x1348,0x1350,0x1358,
-0x1360,0x1368,0x1370,0x1378,0x16f0,0x1747,0x1889,0x19cf,0x1388,0x138f,0x1397,0x139f,0x1380,0x13a7,0x16f8,0x16ff,
-0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1707,0x170a,0x1707,0x1707,0x1712,0x1719,0x171b,0x1722,
-0x172a,0x172e,0x172e,0x1731,0x172e,0x172e,0x1737,0x172e,0x1777,0x1837,0x1891,0xb62,0xb68,0xb6e,0xb76,0xb7b,
-0x17d7,0xc28,0xc2c,0x184c,0x17c7,0x17c7,0x17c7,0xc00,0x17cf,0xc20,0x1817,0xc75,0xc08,0xc10,0xc10,0x18d5,
-0x1807,0x1899,0xc62,0xc65,0x9d2,0x160d,0x160d,0x9da,0x1615,0x1615,0x1615,0x1615,0x1615,0x1615,0x9e2,0x6d4,
-0x146f,0x1491,0x9ea,0x1499,0x9f2,0x14a1,0x14a9,0x14b1,0x9fa,0x9ff,0x14b9,0x14c0,0xa04,0xa0c,0x1827,0xbf0,
-0xa14,0x1517,0x151e,0x14c8,0x1526,0x152d,0x14d0,0xa1c,0x14e9,0x14e9,0x14eb,0x14d8,0x14e0,0x14e0,0x14e1,0x1535,
-0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,
-0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,
-0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,
-0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,
-0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,
-0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,
-0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,
-0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,
-0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,
-0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,
-0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,
-0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,
-0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x11c2,0x177f,0x177f,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,
-0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14f3,0x14fa,0x1936,0x11ca,
-0x1625,0x162b,0x162b,0x162b,0x162b,0x162b,0x162b,0x162b,0x162b,0x162b,0x162b,0x162b,0x162b,0x162b,0x162b,0x162b,
-0x162b,0x162b,0x162b,0x162b,0x162b,0x162b,0x162b,0x162b,0x162b,0x162b,0x162b,0x162b,0x162b,0x162b,0x162b,0x162b,
-0x162b,0x162b,0x162b,0x162b,0xa24,0x1633,0xa2c,0x1956,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,
-0x18dd,0xce5,0x18f1,0x18e9,0x18f3,0x195e,0x195e,0xd79,0x17df,0x1854,0x18a9,0x18ad,0x18a1,0xc95,0xc9b,0xc9e,
-0x180f,0xc6d,0x185c,0xca6,0x18fb,0x18fe,0xced,0xd81,0x190e,0x1906,0xcf5,0xd89,0x1966,0x196a,0xd91,0xff3,
-0x1916,0xcfd,0xd05,0x1972,0x1982,0x197a,0xd99,0xef0,0xe3e,0xe46,0x1b47,0xfab,0x1bec,0x1bec,0x198a,0xda1,
-0x1585,0x1586,0x1587,0x1588,0x1589,0x158a,0x158b,0x1585,0x1586,0x1587,0x1588,0x1589,0x158a,0x158b,0x1585,0x1586,
-0x1587,0x1588,0x1589,0x158a,0x158b,0x1585,0x1586,0x1587,0x1588,0x1589,0x158a,0x158b,0x1585,0x1586,0x1587,0x1588,
-0x1589,0x158a,0x158b,0x1585,0x1586,0x1587,0x1588,0x1589,0x158a,0x158b,0x1585,0x1586,0x1587,0x1588,0x1589,0x158a,
-0x158b,0x1585,0x1586,0x1587,0x1588,0x1589,0x158a,0x158b,0x1585,0x1586,0x1587,0x1588,0x1589,0x158a,0x158b,0x1585,
-0x1586,0x1587,0x1588,0x1589,0x158a,0x158b,0x1585,0x1586,0x1587,0x1588,0x1589,0x158a,0x158b,0x1585,0x1586,0x1587,
-0x1588,0x1589,0x158a,0x158b,0x1585,0x1586,0x1587,0x1588,0x1589,0x158a,0x158b,0x1585,0x1586,0x1587,0x1588,0x1589,
-0x158a,0x158b,0x1585,0x1586,0x1587,0x1588,0x1589,0x158a,0x158b,0x1585,0x1586,0x1587,0x1588,0x1589,0x158a,0x158b,
-0x1585,0x1586,0x1587,0x1588,0x1589,0x158a,0x158b,0x1585,0x1586,0x1587,0x1588,0x1589,0x158a,0x158b,0x1585,0x1586,
-0x1587,0x1588,0x1589,0x158a,0x158b,0x1585,0x1586,0x1587,0x1588,0x1589,0x158a,0x158b,0x1585,0x1586,0x1587,0x1588,
-0x1589,0x158a,0x158b,0x1585,0x1586,0x1587,0x1588,0x1589,0x158a,0x158b,0x1585,0x1586,0x1587,0x1588,0x1589,0x158a,
-0x158b,0x1585,0x1586,0x1587,0x1588,0x1589,0x158a,0x158b,0x1585,0x1586,0x1587,0x1588,0x1589,0x158a,0x158b,0x1585,
-0x1586,0x1587,0x1588,0x1589,0x158a,0x158b,0x1585,0x1586,0x1587,0x1588,0x1589,0x158a,0x158b,0x1585,0x1586,0x1587,
-0x1588,0x1589,0x158a,0x158b,0x1585,0x1586,0x1587,0x1588,0x1589,0x158a,0x158b,0x1585,0x1586,0x1587,0x1588,0x1589,
-0x158a,0x158b,0x1585,0x1586,0x1587,0x1588,0x1589,0x158a,0x158b,0x1585,0x1586,0x1587,0x1588,0x1589,0x158a,0x158b,
-0x1585,0x1586,0x1587,0x1588,0x1589,0x158a,0x158b,0x1585,0x1586,0x1587,0x1588,0x1589,0x158a,0x158b,0x1585,0x1586,
-0x1587,0x1588,0x1589,0x158a,0x158b,0x1585,0x1586,0x1587,0x1588,0x1589,0x158a,0x158b,0x1585,0x1586,0x1587,0x1588,
-0x1589,0x158a,0x158b,0x1585,0x1586,0x1587,0x1588,0x1589,0x158a,0x158b,0x1585,0x1586,0x1587,0x1588,0x1589,0x158a,
-0x158b,0x1585,0x1586,0x1587,0x1588,0x1589,0x158a,0x158b,0x1585,0x1586,0x1587,0x1588,0x1589,0x158a,0x158b,0x1585,
-0x1586,0x1587,0x1588,0x1589,0x158a,0x158b,0x1585,0x1586,0x1587,0x1588,0x1589,0x158a,0x158b,0x1585,0x1586,0x1587,
-0x1588,0x1589,0x158a,0x158b,0x1585,0x1586,0x1587,0x1588,0x1589,0x158a,0x158b,0x1585,0x1586,0x1587,0x1588,0x1589,
-0x158a,0x158b,0x1585,0x1586,0x1587,0x1588,0x1589,0x158a,0x158b,0x1585,0x1586,0x1587,0x1588,0x1589,0x158a,0x158b,
-0x1585,0x1586,0x1587,0x1588,0x1589,0x158a,0x158b,0x1585,0x1586,0x1587,0x1588,0x1589,0x158a,0xa34,0xda9,0xdac,
-0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,
-0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,
-0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,
-0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,
-0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,
-0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,
-0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,
-0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,
-0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,
-0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,
-0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,
-0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,
-0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,
-0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,
-0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,
-0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,
-0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x145a,0x1502,0x1502,0x1502,0x1502,0x1502,0x1502,0x1502,0x1502,
-0x1507,0x150f,0x173f,0x11d2,0x181f,0x181f,0x11d6,0x11dd,0xa3c,0xa44,0xa4c,0x13c7,0x13ce,0x13d6,0xa54,0x13de,
-0x140f,0x140f,0x13b7,0x13bf,0x13e6,0x1406,0x1407,0x1417,0x13ee,0x13af,0xa5c,0x13f6,0xa64,0x13fe,0xa6c,0xa70,
-0xc7d,0x141f,0xa78,0xa80,0x1427,0x142d,0x1432,0xa88,0xa98,0x1477,0x147f,0x1462,0x1467,0xaa0,0xaa8,0xa90,
-0x154d,0x154d,0x154d,0x154d,0x154d,0x154d,0x154d,0x154d,0x154d,0x154d,0x154d,0x154d,0x154d,0x154d,0x154d,0x154d,
-0x154d,0x154d,0x154d,0x154d,0x154d,0x154d,0x154d,0x154d,0x154d,0x154d,0x154d,0x154d,0x1555,0x1555,0x1555,0x1555,
-0x1390,0x1390,0x13d0,0x1410,0x1450,0x1490,0x14d0,0x1510,0x154c,0x158c,0x15b8,0x15f8,0x1638,0x1678,0x16b8,0x16f8,
-0x1738,0x1774,0x17b4,0x17f4,0x1834,0x1868,0x18a4,0x18e4,0x1924,0x1964,0x19a0,0x19e0,0x1a20,0x1a60,0x1aa0,0x1ae0,
-0xa80,0xac0,0xb00,0xb3b,0xb7b,0xa40,0xbbb,0xa40,0xe65,0xa40,0xa40,0xa40,0xa40,0xbfb,0x1290,0x1290,
-0xea5,0xee5,0xa40,0xa40,0xa40,0xa40,0xc3b,0xc5b,0xa40,0xa40,0xc9b,0xcdb,0xd1b,0xe2d,0xded,0xd5d,
-0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,
-0x11d0,0x11d0,0x11d0,0x11d0,0xf25,0x1210,0x1045,0x1085,0x1250,0x1090,0x12d0,0x12d0,0x12d0,0xf65,0xf85,0xfc5,
-0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,
-0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0x1005,
+static const uint16_t propsVectorsTrie_index[30012]={
+0x4d5,0x4dd,0x4e5,0x4ed,0x505,0x50d,0x515,0x51d,0x525,0x52d,0x535,0x53d,0x545,0x54d,0x555,0x55d,
+0x564,0x56c,0x574,0x57c,0x57f,0x587,0x58f,0x597,0x59f,0x5a7,0x5af,0x5b7,0x5bf,0x5c7,0x5cf,0x5d7,
+0x5df,0x5e7,0x5ee,0x5f6,0x5fe,0x606,0x60e,0x616,0x61e,0x626,0x62b,0x633,0x63a,0x642,0x64a,0x652,
+0x65a,0x662,0x66a,0x672,0x679,0x681,0x689,0x691,0x699,0x6a1,0x6a9,0x6b1,0x6b9,0x6c1,0x6c9,0x6d1,
+0x19a7,0xd68,0xe47,0x6d9,0x4f5,0xeae,0xeb6,0x1b46,0x1276,0x128e,0x127e,0x1286,0x7ae,0x7b4,0x7bc,0x7c4,
+0x7cc,0x7d2,0x7da,0x7e2,0x7ea,0x7f0,0x7f8,0x800,0x808,0x80e,0x816,0x81e,0x826,0x82e,0x836,0x83d,
+0x845,0x84b,0x853,0x85b,0x863,0x869,0x871,0x879,0x881,0x1296,0x889,0x891,0x899,0x8a0,0x8a8,0x8b0,
+0x8b8,0x8bc,0x8c4,0x8cb,0x8d3,0x8db,0x8e3,0x8eb,0x15a6,0x15ae,0x8f3,0x8fb,0x903,0x90b,0x913,0x91a,
+0x160c,0x15fc,0x1604,0x18e2,0x18ea,0x12a6,0x922,0x129e,0x14f0,0x14f0,0x14f2,0x12ba,0x12bb,0x12ae,0x12b0,0x12b2,
+0x1614,0x1616,0x92a,0x1616,0x932,0x937,0x93f,0x161b,0x945,0x1616,0x94b,0x953,0xc3d,0x1623,0x1623,0x95b,
+0x1633,0x1634,0x1634,0x1634,0x1634,0x1634,0x1634,0x1634,0x1634,0x1634,0x1634,0x1634,0x1634,0x1634,0x1634,0x1634,
+0x1634,0x1634,0x1634,0x162b,0x963,0x163c,0x163c,0x96b,0xb52,0xb5a,0xb62,0xb6a,0x164c,0x1644,0x973,0x97b,
+0x983,0x1656,0x165e,0x98b,0x1654,0x993,0x19af,0xd70,0xb72,0xb7a,0xb82,0xb87,0x1850,0xc70,0xc77,0x17b8,
+0xc0d,0x19b7,0xd78,0xd80,0xd88,0xd90,0xf66,0xf66,0x18a8,0x18ad,0xcab,0xcb3,0x191e,0x1926,0x1a68,0xe4f,
+0x192e,0xcfc,0xd04,0x1936,0x112a,0x11ca,0xf46,0xd98,0x17d8,0x17c0,0x17d0,0x17c8,0x1868,0x1860,0x1828,0xc1d,
+0x12c3,0x12c3,0x12c3,0x12c3,0x12c6,0x12c3,0x12c3,0x12ce,0x99b,0x12d6,0x99f,0x9a7,0x12d6,0x9af,0x9b7,0x9bf,
+0x12e6,0x12de,0x12ee,0x9c7,0x9cf,0x12f6,0x9d7,0x9df,0x12fe,0x1306,0x130e,0x1316,0x9e7,0x131e,0x1325,0x132d,
+0x1335,0x133d,0x1345,0x134d,0x1355,0x135c,0x1364,0x136c,0x1374,0x137c,0x137f,0x1381,0x1666,0x174b,0x1751,0x1898,
+0x1389,0x9ef,0x9f7,0x14a3,0x14a8,0x14ab,0x14b3,0x1391,0x14bb,0x14bb,0x13a1,0x1399,0x13a9,0x13b1,0x13b9,0x13c1,
+0x13c9,0x13d1,0x13d9,0x13e1,0x1759,0x17b0,0x18f2,0x1a48,0x13f1,0x13f8,0x1400,0x1408,0x13e9,0x1410,0x1761,0x1768,
+0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x1770,0x1773,0x1770,0x1770,0x177b,0x1782,0x1784,0x178b,
+0x1793,0x1797,0x1797,0x179a,0x1797,0x1797,0x17a0,0x1797,0x17e0,0x18a0,0x18fa,0xb8f,0xb95,0x1b7a,0xb9b,0xba0,
+0x1840,0xc4d,0xc51,0x18b5,0x1830,0x1830,0x1830,0xc25,0x1838,0xc45,0x1880,0xc9b,0xc2d,0xc35,0xc35,0x193e,
+0x1870,0x1902,0xc87,0xc8b,0x9ff,0x1676,0x1676,0xa07,0x167e,0x167e,0x167e,0x167e,0x167e,0x167e,0xa0f,0x6dd,
+0x14d8,0x14fa,0xa17,0x1502,0xa1f,0x150a,0x1512,0x151a,0xa27,0xa2c,0x1522,0x1529,0xa31,0xa39,0x1890,0xc15,
+0xa41,0x1580,0x1587,0x1531,0x158f,0x1596,0x1539,0xa49,0x1552,0x1552,0x1554,0x1541,0x1549,0x1549,0x154a,0x159e,
+0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,
+0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,
+0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,
+0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,
+0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,
+0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,
+0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,
+0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,
+0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,
+0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,
+0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,
+0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,
+0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x122b,0x17e8,0x17e8,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,
+0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x155c,0x1563,0x199f,0x1233,
+0x168e,0x1694,0x1694,0x1694,0x1694,0x1694,0x1694,0x1694,0x1694,0x1694,0x1694,0x1694,0x1694,0x1694,0x1694,0x1694,
+0x1694,0x1694,0x1694,0x1694,0x1694,0x1694,0x1694,0x1694,0x1694,0x1694,0x1694,0x1694,0x1694,0x1694,0x1694,0x1694,
+0x1694,0x1694,0x1694,0x1694,0xa51,0x169c,0xa59,0x19bf,0x194a,0x194a,0x194a,0x194a,0x194a,0x194a,0x194a,0x194a,
+0x1946,0xd0c,0x195a,0x1952,0x195c,0x19c7,0x19c7,0xda0,0x1848,0x18bd,0x1912,0x1916,0x190a,0xcbb,0xcc2,0xcc5,
+0x1878,0xc93,0x18c5,0xccd,0x1964,0x1967,0xd14,0x19cf,0x1977,0x196f,0xd1c,0xda8,0x19d7,0x19db,0xdb0,0x100d,
+0x197f,0xd24,0xd2c,0x19e3,0x19f3,0x19eb,0xdb8,0xf09,0xe57,0xe5f,0x1bc1,0xfc5,0x1c66,0x1c66,0x19fb,0xdc0,
+0x15ee,0x15ef,0x15f0,0x15f1,0x15f2,0x15f3,0x15f4,0x15ee,0x15ef,0x15f0,0x15f1,0x15f2,0x15f3,0x15f4,0x15ee,0x15ef,
+0x15f0,0x15f1,0x15f2,0x15f3,0x15f4,0x15ee,0x15ef,0x15f0,0x15f1,0x15f2,0x15f3,0x15f4,0x15ee,0x15ef,0x15f0,0x15f1,
+0x15f2,0x15f3,0x15f4,0x15ee,0x15ef,0x15f0,0x15f1,0x15f2,0x15f3,0x15f4,0x15ee,0x15ef,0x15f0,0x15f1,0x15f2,0x15f3,
+0x15f4,0x15ee,0x15ef,0x15f0,0x15f1,0x15f2,0x15f3,0x15f4,0x15ee,0x15ef,0x15f0,0x15f1,0x15f2,0x15f3,0x15f4,0x15ee,
+0x15ef,0x15f0,0x15f1,0x15f2,0x15f3,0x15f4,0x15ee,0x15ef,0x15f0,0x15f1,0x15f2,0x15f3,0x15f4,0x15ee,0x15ef,0x15f0,
+0x15f1,0x15f2,0x15f3,0x15f4,0x15ee,0x15ef,0x15f0,0x15f1,0x15f2,0x15f3,0x15f4,0x15ee,0x15ef,0x15f0,0x15f1,0x15f2,
+0x15f3,0x15f4,0x15ee,0x15ef,0x15f0,0x15f1,0x15f2,0x15f3,0x15f4,0x15ee,0x15ef,0x15f0,0x15f1,0x15f2,0x15f3,0x15f4,
+0x15ee,0x15ef,0x15f0,0x15f1,0x15f2,0x15f3,0x15f4,0x15ee,0x15ef,0x15f0,0x15f1,0x15f2,0x15f3,0x15f4,0x15ee,0x15ef,
+0x15f0,0x15f1,0x15f2,0x15f3,0x15f4,0x15ee,0x15ef,0x15f0,0x15f1,0x15f2,0x15f3,0x15f4,0x15ee,0x15ef,0x15f0,0x15f1,
+0x15f2,0x15f3,0x15f4,0x15ee,0x15ef,0x15f0,0x15f1,0x15f2,0x15f3,0x15f4,0x15ee,0x15ef,0x15f0,0x15f1,0x15f2,0x15f3,
+0x15f4,0x15ee,0x15ef,0x15f0,0x15f1,0x15f2,0x15f3,0x15f4,0x15ee,0x15ef,0x15f0,0x15f1,0x15f2,0x15f3,0x15f4,0x15ee,
+0x15ef,0x15f0,0x15f1,0x15f2,0x15f3,0x15f4,0x15ee,0x15ef,0x15f0,0x15f1,0x15f2,0x15f3,0x15f4,0x15ee,0x15ef,0x15f0,
+0x15f1,0x15f2,0x15f3,0x15f4,0x15ee,0x15ef,0x15f0,0x15f1,0x15f2,0x15f3,0x15f4,0x15ee,0x15ef,0x15f0,0x15f1,0x15f2,
+0x15f3,0x15f4,0x15ee,0x15ef,0x15f0,0x15f1,0x15f2,0x15f3,0x15f4,0x15ee,0x15ef,0x15f0,0x15f1,0x15f2,0x15f3,0x15f4,
+0x15ee,0x15ef,0x15f0,0x15f1,0x15f2,0x15f3,0x15f4,0x15ee,0x15ef,0x15f0,0x15f1,0x15f2,0x15f3,0x15f4,0x15ee,0x15ef,
+0x15f0,0x15f1,0x15f2,0x15f3,0x15f4,0x15ee,0x15ef,0x15f0,0x15f1,0x15f2,0x15f3,0x15f4,0x15ee,0x15ef,0x15f0,0x15f1,
+0x15f2,0x15f3,0x15f4,0x15ee,0x15ef,0x15f0,0x15f1,0x15f2,0x15f3,0x15f4,0x15ee,0x15ef,0x15f0,0x15f1,0x15f2,0x15f3,
+0x15f4,0x15ee,0x15ef,0x15f0,0x15f1,0x15f2,0x15f3,0x15f4,0x15ee,0x15ef,0x15f0,0x15f1,0x15f2,0x15f3,0x15f4,0x15ee,
+0x15ef,0x15f0,0x15f1,0x15f2,0x15f3,0x15f4,0x15ee,0x15ef,0x15f0,0x15f1,0x15f2,0x15f3,0x15f4,0x15ee,0x15ef,0x15f0,
+0x15f1,0x15f2,0x15f3,0x15f4,0x15ee,0x15ef,0x15f0,0x15f1,0x15f2,0x15f3,0x15f4,0x15ee,0x15ef,0x15f0,0x15f1,0x15f2,
+0x15f3,0x15f4,0x15ee,0x15ef,0x15f0,0x15f1,0x15f2,0x15f3,0x15f4,0x15ee,0x15ef,0x15f0,0x15f1,0x15f2,0x15f3,0x15f4,
+0x15ee,0x15ef,0x15f0,0x15f1,0x15f2,0x15f3,0x15f4,0x15ee,0x15ef,0x15f0,0x15f1,0x15f2,0x15f3,0xa61,0xdc8,0xdcb,
+0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
+0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
+0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,
+0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,
+0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,
+0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,
+0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,
+0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,
+0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,
+0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,
+0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,
+0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,
+0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,
+0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,
+0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,
+0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,
+0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x14c3,0x156b,0x156b,0x156b,0x156b,0x156b,0x156b,0x156b,0x156b,
+0x1570,0x1578,0x17a8,0x123b,0x1888,0x1888,0x123f,0x1246,0xa69,0xa71,0xa79,0x1430,0x1437,0x143f,0xa81,0x1447,
+0x1478,0x1478,0x1420,0x1428,0x144f,0x146f,0x1470,0x1480,0x1457,0x1418,0xa89,0x145f,0xa91,0x1467,0xa99,0xa9d,
+0xca3,0x1488,0xaa5,0xaad,0x1490,0x1496,0x149b,0xab5,0xac5,0x14e0,0x14e8,0x14cb,0x14d0,0xacd,0xad5,0xabd,
+0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,
+0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15be,0x15be,0x15be,0x15be,
+0x13d4,0x13d4,0x1414,0x1454,0x1494,0x14d4,0x1514,0x1554,0x1590,0x15d0,0x15fc,0x163c,0x167c,0x16bc,0x16fc,0x173c,
+0x177c,0x17b8,0x17f8,0x1838,0x1878,0x18ac,0x18e8,0x1928,0x1968,0x19a8,0x19e4,0x1a24,0x1a64,0x1aa4,0x1ae4,0x1b24,
+0xa80,0xac0,0xb00,0xb40,0xb80,0xa40,0xbc0,0xa40,0xea8,0xa40,0xa40,0xa40,0xa40,0xc00,0x12d3,0x12d3,
+0xee8,0xf28,0xa40,0xa40,0xa40,0xa40,0xc40,0xc60,0xa40,0xa40,0xca0,0xce0,0xd20,0xd60,0xe68,0xdd8,
+0x1213,0x1213,0x1213,0x1213,0x1213,0x1213,0x1213,0x1213,0x1213,0x1213,0x1213,0x1213,0x1213,0x1213,0x1213,0x1213,
+0x1213,0x1213,0x1213,0x1213,0xf68,0x1253,0x1088,0x10c8,0x1293,0x10d3,0x1313,0x1313,0x1313,0xfa8,0xfc8,0x1008,
+0xfc8,0xfc8,0xfc8,0xfc8,0xfc8,0xfc8,0xfc8,0xfc8,0xfc8,0xfc8,0xfc8,0xfc8,0xfc8,0xfc8,0xfc8,0xfc8,
+0xfc8,0xfc8,0xfc8,0xfc8,0xfc8,0xfc8,0xfc8,0xfc8,0xfc8,0xfc8,0xfc8,0xfc8,0xfc8,0xfc8,0xfc8,0x1048,
0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,
-0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd1d,
+0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd98,
0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,
-0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd1d,
+0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd98,
0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,
-0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd1d,
+0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd98,
0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,
-0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd1d,
+0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd98,
0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,
-0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd1d,
+0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd98,
0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,
-0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd1d,
+0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd98,
0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,
-0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd1d,
+0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd98,
0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,
-0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd1d,
+0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd98,
0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,
-0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd1d,
+0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd98,
0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,
-0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd1d,
-0xd9d,0xdad,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,
-0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd1d,
-0x1150,0x1150,0x1150,0x1150,0x1150,0x1150,0x1150,0x1150,0x1150,0x1150,0x1150,0x1150,0x1150,0x1150,0x1150,0x1150,
-0x1150,0x1150,0x1150,0x1150,0x1150,0x1150,0x1150,0x1150,0x1150,0x1150,0x1150,0x1150,0x1150,0x1150,0x1150,0x10d0,
-0x1190,0x1190,0x1190,0x1190,0x1190,0x1190,0x1190,0x1190,0x1190,0x1190,0x1190,0x1190,0x1190,0x1190,0x1190,0x1190,
-0x1190,0x1190,0x1190,0x1190,0x1190,0x1190,0x1190,0x1190,0x1190,0x1190,0x1190,0x1190,0x1190,0x1190,0x1190,0x1110,
-0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,
-0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,
-0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,
-0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,
-0xb83,0xb8a,0xb92,0xb9a,0x1787,0x1787,0x1787,0xba2,0xbaa,0xbad,0x17b7,0x17af,0xbe0,0xd0d,0xd11,0xd15,
-0x4e4,0x4e4,0x4e4,0x4e4,0xd1d,0x191e,0xd25,0xf45,0x163b,0xab0,0xab6,0x1003,0xbb5,0x17ef,0xc5a,0x4e4,
-0x1650,0x1643,0x1648,0x178f,0xbbd,0xbc5,0x115c,0x1162,0x1b2f,0xf62,0x1b1f,0x6dc,0x4e4,0x4e4,0x4e4,0x4e4,
-0x1b4f,0x1b4f,0x1b4f,0x1b4f,0x1b4f,0x1b4f,0x1b4f,0x1b4f,0x1b4f,0xfb3,0xfbb,0xfc3,0x4e4,0x4e4,0x4e4,0x4e4,
-0xbcd,0xbd0,0xdb4,0x1b97,0xffb,0x6e4,0x4e4,0x1094,0xcae,0xd2d,0x4e4,0x4e4,0x1ae4,0xef8,0xf00,0x1bd7,
-0xc34,0xc3b,0xc43,0x1992,0x1b77,0x4e4,0x1b57,0xfd3,0x199a,0xdbc,0xdc4,0xdcc,0x1023,0x6ec,0x4e4,0x4e4,
-0x19a2,0x19a2,0x6f4,0x4e4,0x1c04,0x10ac,0x1bfc,0x10b4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,
-0x4e4,0x4e4,0x4e4,0xdd4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,
-0x19f7,0x19f9,0xe4e,0xe55,0x19aa,0x19b2,0xddc,0xf25,0x1adc,0xee0,0xee8,0xfcb,0x1af4,0x1af8,0xf1d,0x1043,
-0xf96,0xf9b,0x6fc,0x4e4,0x109c,0x10a4,0x1b3f,0xfa3,0xf78,0xf7e,0xf86,0xf8e,0x4e4,0x4e4,0x4e4,0x4e4,
-0x1c44,0x1c3c,0x114c,0x1154,0x1bbf,0x1bb7,0x106a,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x1ba7,0x102b,0x1033,0x103b,
-0x1b6f,0x1b67,0xfe3,0x1144,0x1b00,0xf35,0x704,0x4e4,0x107a,0x1082,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,
-0x1bcf,0x1bc7,0x1072,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x1c6c,0x1c64,0x11a6,0x1c5c,0x119e,
-0x70c,0x1b9f,0x101b,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x110a,0x110f,0x1117,0x111e,0x1136,
-0x113c,0x4e4,0x4e4,0x1182,0x1186,0x118e,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,
-0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x1864,0x1864,0x1864,0x1864,0x1864,
-0x1864,0x1864,0x1864,0x1864,0x1864,0x1864,0x1864,0x1864,0x1864,0x1864,0x1864,0x1864,0x1864,0x1864,0x1864,0x1864,
-0x1864,0x1864,0x1864,0x1864,0x1864,0x1864,0x1869,0xcb6,0xcbd,0xcbd,0xcbd,0x1871,0x1871,0x1871,0xcc5,0x1bf4,
-0x1bf4,0x1bf4,0x1bf4,0x1bf4,0x1bf4,0x714,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,
-0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x19ba,0x19ba,0x19ba,0x19ba,0x19ba,
-0x19ba,0x19ba,0x19ba,0x19ba,0x19ba,0x19ba,0x19ba,0x19ba,0x19ba,0x19ba,0x19ba,0x19ba,0x19ba,0x19bc,0x19ba,0x19c4,
-0x19ba,0x19ba,0x19ba,0x19ba,0x19ba,0x19ba,0x19c7,0x19ba,0x19ba,0x19ba,0x19ba,0x19ba,0x71c,0x4e4,0x4e4,0x4e4,
-0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,
-0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x1a01,0x1a01,0x1a01,0x1a01,0x1a01,
-0x1a01,0x1a01,0x1a01,0x1a01,0x1a01,0x1a01,0x1a01,0x1a01,0x1a01,0x1a01,0x1a01,0x1a01,0xe5d,0xfeb,0x724,0x4e4,
-0x4e4,0x728,0xf3d,0x1b8f,0x1b87,0x100b,0x1013,0x730,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,
-0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,
-0x4e4,0x4e4,0x4e4,0x1aec,0x1aec,0xf08,0xf0d,0xf15,0x4e4,0x4e4,0x112e,0x1a11,0x1c74,0x1c74,0x1c74,0x1c74,
-0x1c74,0x1c74,0x1c74,0x117a,0x738,0x4e4,0x73c,0x1c84,0x1c84,0x1c84,0x1c84,0x1c84,0x1c84,0x1c84,0x1c84,0x1c84,
-0x1c84,0x1c84,0x1196,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,
-0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,
-0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x1b27,0x1b27,0x1b27,0xf55,0xf5a,
-0x744,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,
-0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x1658,0x1658,0x1658,0x1658,0x1658,
-0x1658,0x1658,0xabe,0x1668,0xac6,0x1669,0x1660,0x1671,0x1677,0x167f,0xace,0x17a7,0x17a7,0x74c,0x4e4,0x4e4,
-0x4e4,0x4e4,0x4e4,0x1797,0x1797,0xbd8,0xccd,0x4e4,0x4e4,0x4e4,0x4e4,0x16b0,0x16b7,0xad6,0x16ba,0xade,
-0xae6,0xaee,0x16b4,0xaf6,0xafe,0xb06,0x16b9,0x16c1,0x16b0,0x16b7,0x16b3,0x16ba,0x16c2,0x16b1,0x16b8,0x16b4,
-0xb0d,0x1687,0x168f,0x1696,0x169d,0x168a,0x1692,0x1699,0x16a0,0xb15,0x16a8,0x1c1c,0x1c1c,0x1c1c,0x1c1c,0x1c1c,
-0x1c1c,0x1c1c,0x1c1c,0x1c1c,0x1c1c,0x1c1c,0x1c1c,0x1c1c,0x1c1c,0x1c1c,0x1c1c,0x1c0c,0x1c0f,0x1c0c,0x1c16,0x10fa,
-0x754,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,
-0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,
-0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x1126,0x75c,0x4e4,0x4e4,0x4e4,
-0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,
-0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,
-0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,
-0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x760,0x104b,0x1baf,0x1051,
-0x1baf,0x1059,0x105e,0x1062,0x1062,0x10bc,0x10c4,0x10cc,0x10d4,0x10dc,0x10e2,0x10ea,0x10f2,0x768,0x768,0x768,
-0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,
-0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,
-0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x769,0xb1d,0x16ca,0x16ca,
-0x16ca,0x771,0x771,0x771,0x771,0x179f,0x179f,0x179f,0x179f,0x179f,0x179f,0x179f,0x779,0x771,0x771,0x771,
-0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,
-0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,
-0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,
-0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x1926,0xd35,0x192e,
-0x192e,0xd39,0xe65,0xe6d,0xe75,0xde4,0xdea,0x19df,0xdf2,0x19d7,0xdfa,0xdfe,0xe05,0xe0d,0xe14,0xe1c,
-0xe24,0xe26,0xe26,0xe26,0xe26,0x1a38,0x1a40,0x1a48,0x1a4c,0x1a54,0x1a19,0x1a5c,0x1a64,0x1a48,0x1a6c,0x1a74,
-0x1a7b,0x1a83,0x1a21,0x1a48,0x1a86,0x1a29,0x1a30,0x1a8e,0x1a94,0x1b10,0x1b17,0x1b08,0x1a9c,0x1aa4,0x1aac,0x1ab4,
-0x1b7f,0x1abc,0x1ac4,0xe7d,0xe85,0x1a09,0x1a09,0x1a09,0xe8d,0x1b37,0x1b37,0xf6a,0xf70,0x1b5f,0x1b5f,0x1b5f,
-0x1b5f,0x1b5f,0x1b5f,0xfdb,0x4e4,0x1c34,0x1c2c,0x1102,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,
-0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,
-0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0xea5,0xead,0xeb5,
-0xebd,0xec5,0xecd,0xed4,0xed8,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,
-0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,
-0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x1bdf,0x1bdf,0x1bdf,0x1bdf,0x1bdf,0x1bdf,0x1bdf,0x1bdf,0x1bdf,0x1bdf,0x1bdf,
-0x1bdf,0x1bdf,0x1bdf,0x1be4,0x1bdf,0x1bdf,0x1bdf,0x108a,0x108c,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,
-0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,
-0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,
-0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,
-0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,
-0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x116a,0x1c54,0x1c54,0x1c54,0x1c54,0x1c54,0x1c54,0x1c54,0x1c54,0x1c54,0x1c54,0x1c54,
-0x1c54,0x1c54,0x1c54,0x1c54,0x1c54,0x1c54,0x1c54,0x1c54,0x1c54,0x1c54,0x1c54,0x1c54,0x1172,0x4e4,0x4e4,0x4e4,
-0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,
-0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,
-0x4e4,0x4e4,0x4e4,0x4e4,0x4e4,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,
-0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,
-0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,
-0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x11e5,0x11ae,0x19e7,0x19e7,0x19e7,
-0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,
-0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,
-0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x11b6,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,
-0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,
-0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,
-0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,
-0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,
-0x16da,0x16da,0x16da,0x16da,0x16da,0x11ed,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,
-0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,
-0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,
-0x11ae,0x11ae,0x11ae,0x11ae,0x11ba,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,
-0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,
-0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,
-0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,0x11ae,
-0x11ae,0x11ae,0x11ae,0x11ae,0x11ba,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,
-0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,
-0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,
-0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x11f5,0x1acc,
-0x1acc,0x1acc,0x1acc,0x1acc,0x1acc,0x11fd,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,
-0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,
-0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,
-0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,
-0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1205,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,
-0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,
-0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,
-0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,
-0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1565,
-0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,
-0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,
-0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,
-0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x156d,
-0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,
-0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,
-0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,
-0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,
-0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,
-0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,
-0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,
-0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,0x157d,
-0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,
-0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,
-0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,
-0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,
-0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,
-0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,
-0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,
-0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,0x19e7,
-0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,
-0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,
-0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,
-0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,0x1c24,
-0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,
-0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,
-0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,
-0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,0x1c4c,
-0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,
-0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,
-0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,
-0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,0x1c7c,
-0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x285,0x28e,0x288,0x288,0x28b,0x282,0x282,
-0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,
-0x7b3,0x7ad,0x792,0x789,0x780,0x77d,0x774,0x78f,0x77a,0x786,0x789,0x7a4,0x79b,0x78c,0x7b0,0x783,
-0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x798,0x795,0x79e,0x79e,0x79e,0x7ad,
-0x774,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,
-0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x77a,0x780,0x786,0x7aa,0x76e,
-0x7a7,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7b6,0x7b6,0x7b6,0x7b6,0x7b6,0x7b6,0x7b6,0x7b6,0x7b6,
-0x7b6,0x7b6,0x7b6,0x7b6,0x7b6,0x7b6,0x7b6,0x7b6,0x7b6,0x7b6,0x7b6,0x77a,0x7a1,0x777,0x79e,0x282,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x291,0x291,0x291,0x291,0x291,0x2a0,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,
-0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,
-0x294,0x609,0x7c8,0x7cb,0x60f,0x7cb,0x7c5,0x606,0x5fd,0x29a,0x61b,0x29d,0x7ce,0x5f4,0x612,0x7c2,
-0x60c,0x618,0x5fa,0x5fa,0x600,0x297,0x606,0x603,0x5fd,0x5fa,0x61b,0x29d,0x5f7,0x5f7,0x5f7,0x609,
-0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x624,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,
-0x624,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x615,0x624,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x624,0x61e,
-0x621,0x621,0x2a3,0x2a3,0x2a3,0x2a3,0x61e,0x2a3,0x621,0x621,0x621,0x2a3,0x621,0x621,0x2a3,0x2a3,
-0x61e,0x2a3,0x621,0x621,0x2a3,0x2a3,0x2a3,0x615,0x61e,0x621,0x621,0x2a3,0x621,0x2a3,0x61e,0x2a3,
-0x2b2,0x62a,0x2b2,0x2a9,0x2b2,0x2a9,0x2b2,0x2a9,0x2b2,0x2a9,0x2b2,0x2a9,0x2b2,0x2a9,0x2b2,0x2a9,
-0x2af,0x627,0x2b2,0x62a,0x2b2,0x2a9,0x2b2,0x2a9,0x2b2,0x2a9,0x2b2,0x62a,0x2b2,0x2a9,0x2b2,0x2a9,
-0x2b2,0x2a9,0x2b2,0x2a9,0x2b2,0x2a9,0x630,0x627,0x2b2,0x2a9,0x2b2,0x62a,0x2b2,0x2a9,0x2b2,0x2a9,
-0x2b2,0x627,0x633,0x62d,0x2b2,0x2a9,0x2b2,0x2a9,0x627,0x2b2,0x2a9,0x2b2,0x2a9,0x2b2,0x2a9,0x633,
-0x62d,0x630,0x627,0x2b2,0x62a,0x2b2,0x2a9,0x2b2,0x62a,0x636,0x630,0x627,0x2b2,0x62a,0x2b2,0x2a9,
-0x2b2,0x2a9,0x630,0x627,0x2b2,0x2a9,0x2b2,0x2a9,0x2b2,0x2a9,0x2b2,0x2a9,0x2b2,0x2a9,0x2b2,0x2a9,
-0x2b2,0x2a9,0x2b2,0x2a9,0x2b2,0x2a9,0x630,0x627,0x2b2,0x2a9,0x2b2,0x62a,0x2b2,0x2a9,0x2b2,0x2a9,
-0x2b2,0x2a9,0x2b2,0x2a9,0x2b2,0x2a9,0x2b2,0x2a9,0x2b2,0x2b2,0x2a9,0x2b2,0x2a9,0x2b2,0x2a9,0x2ac,
-0x2b5,0x2c1,0x2c1,0x2b5,0x2c1,0x2b5,0x2c1,0x2c1,0x2b5,0x2c1,0x2c1,0x2c1,0x2b5,0x2b5,0x2c1,0x2c1,
-0x2c1,0x2c1,0x2b5,0x2c1,0x2c1,0x2b5,0x2c1,0x2c1,0x2c1,0x2b5,0x2b5,0x2b5,0x2c1,0x2c1,0x2b5,0x2c1,
-0x2c4,0x2b8,0x2c1,0x2b5,0x2c1,0x2b5,0x2c1,0x2c1,0x2b5,0x2c1,0x2b5,0x2b5,0x2c1,0x2b5,0x2c1,0x2c4,
-0x2b8,0x2c1,0x2c1,0x2c1,0x2b5,0x2c1,0x2b5,0x2c1,0x2c1,0x2b5,0x2b5,0x2be,0x2c1,0x2b5,0x2b5,0x2b5,
-0x2be,0x2be,0x2be,0x2be,0x2c7,0x2c7,0x2bb,0x2c7,0x2c7,0x2bb,0x2c7,0x2c7,0x2bb,0x2c4,0x639,0x2c4,
-0x639,0x2c4,0x639,0x2c4,0x639,0x2c4,0x639,0x2c4,0x639,0x2c4,0x639,0x2c4,0x639,0x2b5,0x2c4,0x2b8,
-0x2c4,0x2b8,0x2c4,0x2b8,0x2c1,0x2b5,0x2c4,0x2b8,0x2c4,0x2b8,0x2c4,0x2b8,0x2c4,0x2b8,0x2c4,0x2b8,
-0x2b8,0x2c7,0x2c7,0x2bb,0x2c4,0x2b8,0x9a2,0x9a2,0x9a5,0x99f,0x2c4,0x2b8,0x2c4,0x2b8,0x2c4,0x2b8,
-0x2c4,0x2b8,0x2c4,0x2b8,0x2c4,0x2b8,0x2c4,0x2b8,0x2c4,0x2b8,0x2c4,0x2b8,0x2c4,0x2b8,0x2c4,0x2b8,
-0x2c4,0x2b8,0x2c4,0x2b8,0x9a5,0x99f,0x9a5,0x99f,0x9a2,0x99c,0x9a5,0x99f,0xb61,0xc63,0x9a2,0x99c,
-0x9a2,0x99c,0x9a5,0x99f,0x9a5,0x99f,0x9a5,0x99f,0x9a5,0x99f,0x9a5,0x99f,0x9a5,0x99f,0x9a5,0x99f,
-0xc63,0xc63,0xc63,0xd5c,0xd5c,0xd5c,0xd5f,0xd5f,0xd5c,0xd5f,0xd5f,0xd5c,0xd5c,0xd5f,0xea3,0xea6,
-0xea6,0xea6,0xea6,0xea3,0xea6,0xea3,0xea6,0xea3,0xea6,0xea3,0xea6,0xea3,0x2ca,0x63c,0x2ca,0x2ca,
-0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x63c,0x2ca,0x2ca,
-0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,
-0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2cd,0x2ca,0x2ca,0x2ca,
-0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,
-0x2ca,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0xc66,0xc66,0x2e5,0x2e5,0x2e5,0x2e5,0x2e5,0x2e5,0x2e5,0x2e5,
-0x2e5,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2d9,0x2d9,0x2d6,0x2d6,0x642,0x2d6,0x2dc,0x645,
-0x2df,0x645,0x645,0x645,0x2df,0x645,0x2dc,0x2dc,0x648,0x2e2,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,
-0x63f,0x63f,0x63f,0x63f,0x2d3,0x63f,0x2d6,0xada,0x2e5,0x2e5,0x2e5,0x2e5,0x2e5,0x2d0,0x2d0,0x2d0,
-0x2d0,0x2d0,0x9b1,0x9b1,0x9ae,0x9ab,0x9ae,0xc69,0xc69,0xc69,0xc69,0xc69,0xc69,0xc69,0xc69,0xc69,
-0xc69,0xc69,0xc69,0xc69,0xc69,0xc69,0xc69,0xc69,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,
-0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,
-0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,
-0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,
-0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64e,0x64e,0x906,0x64e,0x64e,0x909,0xadd,0xadd,
-0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xc1b,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,
-0xe6a,0xe6a,0xe6a,0xe6a,0xe6d,0xd2f,0xd2f,0xd2f,0x651,0x651,0xae0,0xc60,0xc60,0xc60,0xc60,0xc60,
-0xc60,0xc60,0xc60,0xc60,0xc60,0xc60,0xc60,0xc60,0xf51,0xf4e,0xf51,0xf4e,0x2f1,0x2fa,0xf51,0xf4e,
-9,9,0x300,0xea9,0xea9,0xea9,0x2e8,0x14a6,9,9,9,9,0x2fd,0x2eb,0x30f,0x2ee,
-0x30f,0x30f,0x30f,9,0x30f,9,0x30f,0x30f,0x306,0x657,0x657,0x657,0x657,0x657,0x657,0x657,
-0x657,0x657,0x657,0x657,0x657,0x657,0x657,0x657,0x657,0x657,9,0x657,0x657,0x657,0x657,0x657,
-0x657,0x657,0x30f,0x30f,0x306,0x306,0x306,0x306,0x306,0x654,0x654,0x654,0x654,0x654,0x654,0x654,
-0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x303,0x654,0x654,0x654,0x654,0x654,
-0x654,0x654,0x306,0x306,0x306,0x306,0x306,0xf51,0x312,0x312,0x315,0x30f,0x30f,0x312,0x309,0x9b4,
-0xb6a,0xb67,0x30c,0x9b4,0x30c,0x9b4,0x30c,0x9b4,0x30c,0x9b4,0x2f7,0x2f4,0x2f7,0x2f4,0x2f7,0x2f4,
-0x2f7,0x2f4,0x2f7,0x2f4,0x2f7,0x2f4,0x2f7,0x2f4,0x312,0x312,0x309,0x303,0xb19,0xb16,0xb64,0xc6f,
-0xc6c,0xc72,0xc6f,0xc6c,0xd62,0xd65,0xd65,0xd65,0x9c3,0x663,0x321,0x324,0x321,0x321,0x321,0x324,
-0x321,0x321,0x321,0x321,0x324,0x9c3,0x324,0x321,0x660,0x660,0x660,0x660,0x660,0x660,0x660,0x660,
-0x660,0x663,0x660,0x660,0x660,0x660,0x660,0x660,0x660,0x660,0x660,0x660,0x660,0x660,0x660,0x660,
-0x660,0x660,0x660,0x660,0x660,0x660,0x660,0x660,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,
-0x65a,0x65d,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,
-0x65a,0x65a,0x65a,0x65a,0x9bd,0x65d,0x31b,0x31e,0x31b,0x31b,0x31b,0x31e,0x31b,0x31b,0x31b,0x31b,
-0x31e,0x9bd,0x31e,0x31b,0x321,0x31b,0x321,0x31b,0x321,0x31b,0x321,0x31b,0x321,0x31b,0x321,0x31b,
-0x321,0x31b,0x321,0x31b,0x321,0x31b,0x321,0x31b,0x321,0x31b,0x324,0x31e,0x321,0x31b,0x321,0x31b,
-0x321,0x31b,0x321,0x31b,0x321,0x31b,0x318,0x912,0x915,0x8f7,0x8f7,0x10fb,0x9b7,0x9b7,0xb70,0xb6d,
-0x9c0,0x9ba,0x9c0,0x9ba,0x321,0x31b,0x321,0x31b,0x321,0x31b,0x321,0x31b,0x321,0x31b,0x321,0x31b,
-0x321,0x31b,0x321,0x31b,0x321,0x31b,0x321,0x31b,0x321,0x31b,0x321,0x31b,0x321,0x31b,0x321,0x31b,
-0x321,0x31b,0x321,0x31b,0x321,0x31b,0x321,0x31b,0x321,0x31b,0x321,0x31b,0x321,0x31b,0x321,0x31b,
-0x321,0x31b,0x321,0x31b,0x321,0x324,0x31e,0x321,0x31b,0xb70,0xb6d,0x321,0x31b,0xb70,0xb6d,0x321,
-0x31b,0xb70,0xb6d,0xeac,0x324,0x31e,0x324,0x31e,0x321,0x31b,0x324,0x31e,0x321,0x31b,0x324,0x31e,
-0x324,0x31e,0x324,0x31e,0x321,0x31b,0x324,0x31e,0x324,0x31e,0x324,0x31e,0x321,0x31b,0x324,0x31e,
-0x9c3,0x9bd,0x324,0x31e,0x324,0x31e,0x324,0x31e,0x324,0x31e,0xd6b,0xd68,0x324,0x31e,0xeaf,0xeac,
-0xeaf,0xeac,0xeaf,0xeac,0xbdc,0xbd9,0xbdc,0xbd9,0xbdc,0xbd9,0xbdc,0xbd9,0xbdc,0xbd9,0xbdc,0xbd9,
-0xbdc,0xbd9,0xbdc,0xbd9,0xedc,0xed9,0xedc,0xed9,0xfcf,0xfcc,0xfcf,0xfcc,0xfcf,0xfcc,0xfcf,0xfcc,
-0xfcf,0xfcc,0xfcf,0xfcc,0xfcf,0xfcc,0xfcf,0xfcc,0x1134,0x1131,0x130e,0x130b,0x14df,0x14dc,0x14df,0x14dc,
-0x14df,0x14dc,0x14df,0x14dc,0xc,0x333,0x333,0x333,0x333,0x333,0x333,0x333,0x333,0x333,0x333,0x333,
-0x333,0x333,0x333,0x333,0x333,0x333,0x333,0x333,0x333,0x333,0x333,0x333,0x333,0x333,0x333,0xc,
-0xc,0x336,0x327,0x327,0x327,0x32a,0x327,0x327,0xc,0x32d,0x32d,0x32d,0x32d,0x32d,0x32d,0x32d,
-0x32d,0x32d,0x32d,0x32d,0x32d,0x32d,0x32d,0x32d,0x32d,0x32d,0x32d,0x32d,0x32d,0x32d,0x32d,0x32d,
-0x32d,0x32d,0x32d,0x32d,0x32d,0x32d,0x32d,0x32d,0x32d,0x32d,0x32d,0x330,0xc,0x87c,0x9c6,0xc,
-0xc,0x14a9,0x14a9,0x13c2,0xf,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,
-0x936,0x936,0x936,0x936,0x936,0x936,0xd6e,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,
-0x936,0x936,0x936,0x936,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0xeb2,0x339,
-0x339,0x339,0x345,0x339,0x33c,0x339,0x339,0x348,0x939,0xd71,0xd74,0xd71,0xf,0xf,0xf,0xf,
-0xf,0xf,0xf,0xf,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
-0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0xf,
-0xf,0xf,0xf,0xf,0x34b,0x34b,0x34b,0x342,0x33f,0xf,0xf,0xf,0xf,0xf,0xf,0xf,
-0xf,0xf,0xf,0xf,0xc87,0xc87,0xc87,0xc87,0x13c5,0x14ac,0xf5a,0xf5a,0xf5a,0xf57,0xf57,0xd7d,
-0x882,0xc81,0xc7e,0xc7e,0xc75,0xc75,0xc75,0xc75,0xc75,0xc75,0xf54,0xf54,0xf54,0xf54,0xf54,0x87f,
-0x14a3,0x12,0xd7a,0x885,0x12d5,0x366,0x369,0x369,0x369,0x369,0x369,0x366,0x366,0x366,0x366,0x366,
-0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0xf5d,
-0xf5d,0xf5d,0xf5d,0xf5d,0x888,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x8fd,
-0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0xb10,0xb10,0xb10,0xc75,0xc7b,0xc78,0xd77,0xd77,0xd77,
-0xd77,0xd77,0xd77,0x12d2,0x918,0x918,0x918,0x918,0x918,0x918,0x918,0x918,0x918,0x918,0x360,0x35d,
-0x35a,0x357,0xb73,0xb73,0x8fa,0x366,0x366,0x372,0x366,0x36c,0x36c,0x36c,0x36c,0x366,0x366,0x366,
-0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,
-0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,
-0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,
-0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x9cc,0x9cc,0x366,0x366,0x366,0x366,0x366,0x9cc,
-0x369,0x366,0x369,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x9cc,
-0x366,0x366,0x366,0x369,0x375,0x366,0x351,0x351,0x351,0x351,0x351,0x351,0x351,0x34e,0x357,0x354,
-0x354,0x351,0x351,0x351,0x351,0x36f,0x36f,0x351,0x351,0x357,0x354,0x354,0x354,0x351,0xc84,0xc84,
-0x363,0x363,0x363,0x363,0x363,0x363,0x363,0x363,0x363,0x363,0x9cc,0x9cc,0x9cc,0x9c9,0x9c9,0xc84,
-0x9e1,0x9e1,0x9e1,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9d8,0x9db,0x9d8,0x15,0x9e4,
-0x9de,0x9cf,0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,
-0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,0xc8a,0xc8a,0xc8a,
-0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,
-0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x15,0x15,0xc8a,0xc8a,0xc8a,
-0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,
-0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xfe1,0xfe1,
-0xfe1,0xfe1,0xfe1,0xfe1,0xfe1,0xfe1,0xfe1,0xfe1,0xfe1,0xfe1,0xfe1,0xfe1,0xfe1,0xfe1,0xfe1,0xfe1,
-0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,
-0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,
-0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,
-0x9e7,0xb76,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
-0xef4,0xef4,0xef4,0xef4,0xef4,0xef4,0xef4,0xef4,0xef4,0xef4,0xef7,0xef7,0xef7,0xef7,0xef7,0xef7,
-0xef7,0xef7,0xef7,0xef7,0xef7,0xef7,0xef7,0xef7,0xef7,0xef7,0xef7,0xef7,0xef7,0xef7,0xef7,0xef7,
-0xef7,0xef7,0xef7,0xef7,0xef7,0xef7,0xef7,0xef7,0xef7,0xef7,0xef7,0xeeb,0xeeb,0xeeb,0xeeb,0xeeb,
-0xeeb,0xeeb,0xeeb,0xeeb,0xefa,0xefa,0xeee,0xeee,0xef1,0xf00,0xefd,0x10e,0x10e,0x10e,0x10e,0x10e,
-0x18a2,0x18a2,0x18a2,0x18a2,0x18a2,0x18a2,0x18a2,0x18a2,0x18a2,0x18a2,0x18a2,0x25e,0x25e,0x25e,0x25e,0x25e,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x17e8,0x17e8,0x17e8,0x17e8,0x17e8,0x17e8,0x17e8,0x17e8,0x17e8,0x237,0x237,0x237,0x237,0x237,0x237,0x237,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0xaec,0xaec,0xaef,0xaef,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0x72,0x72,0x72,0x72,
-0x1563,0x1563,0x1563,0x1563,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1560,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,
+0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd98,
+0xe18,0xe28,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,
+0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd98,
+0x1193,0x1193,0x1193,0x1193,0x1193,0x1193,0x1193,0x1193,0x1193,0x1193,0x1193,0x1193,0x1193,0x1193,0x1193,0x1193,
+0x1193,0x1193,0x1193,0x1193,0x1193,0x1193,0x1193,0x1193,0x1193,0x1193,0x1193,0x1193,0x1193,0x1193,0x1193,0x1113,
+0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,
+0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x1153,
+0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
+0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
+0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
+0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
+0xba8,0xbaf,0xbb7,0xbbf,0x17f0,0x17f0,0x17f0,0xbc7,0xbcf,0xbd2,0x1820,0x1818,0xc05,0xd34,0xd38,0xd3c,
+0x4f5,0x4f5,0x4f5,0x4f5,0xd44,0x1987,0xd4c,0xf5e,0x16a4,0xadd,0xae3,0x101d,0xbda,0x1858,0xc7f,0x4f5,
+0x16b9,0x16ac,0x16b1,0x17f8,0xbe2,0xbea,0x1168,0x116e,0x1ba9,0xf7b,0x1b99,0x6e5,0x4f5,0x4f5,0x4f5,0x4f5,
+0x1bc9,0x1bc9,0x1bc9,0x1bc9,0x1bc9,0x1bc9,0x1bc9,0x1bc9,0x1bc9,0xfcd,0xfd5,0xfdd,0x4f5,0x4f5,0x4f5,0x4f5,
+0xbf2,0xbf5,0xdd3,0x1c11,0x1015,0x6ed,0x4f5,0x10ae,0xcd5,0xd54,0x4f5,0x4f5,0x1b56,0xf11,0xf19,0x1c51,
+0xc59,0xc60,0xc68,0x1a03,0x1bf1,0x4f5,0x1bd1,0xfed,0x1a0b,0xddb,0xde3,0xdeb,0x103d,0x6f5,0x4f5,0x4f5,
+0x1a13,0x1a13,0x6fd,0x4f5,0x1c7e,0x10c6,0x1c76,0x10ce,0x1d26,0x11e0,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
+0x4f5,0x4f5,0x4f5,0xdf3,0x4f5,0x4f5,0x4f5,0x4f5,0x1d46,0x1208,0x120f,0x705,0x4f5,0x4f5,0x4f5,0x4f5,
+0x1a70,0x1a72,0xe67,0xe6e,0x1a1b,0x1a23,0xdfb,0xf3e,0x1b4e,0xef9,0xf01,0xfe5,0x1b66,0x1b6a,0xf36,0x105d,
+0xfb0,0xfb5,0x70d,0x4f5,0x10b6,0x10be,0x1bb9,0xfbd,0xf92,0xf98,0xfa0,0xfa8,0x4f5,0x4f5,0x4f5,0x4f5,
+0x1cc6,0x1cbe,0x1158,0x1160,0x1c39,0x1c31,0x1084,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x1c21,0x1045,0x104d,0x1055,
+0x1be9,0x1be1,0xffd,0x1150,0x1b72,0xf4e,0x715,0x4f5,0x1094,0x109c,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
+0x1d1e,0x11c2,0x71d,0x4f5,0x4f5,0x1c49,0x1c41,0x108c,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
+0x1cf6,0x1cee,0x11b2,0x1ce6,0x11aa,0x725,0x1c19,0x1035,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
+0x110e,0x1113,0x111b,0x1122,0x1142,0x1148,0x4f5,0x4f5,0x118e,0x1192,0x119a,0x11d2,0x11d8,0x72d,0x4f5,0x4f5,
+0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x11f0,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
+0x18cd,0x18cd,0x18cd,0x18cd,0x18cd,0x18cd,0x18cd,0x18cd,0x18cd,0x18cd,0x18cd,0x18cd,0x18cd,0x18cd,0x18cd,0x18cd,
+0x18cd,0x18cd,0x18cd,0x18cd,0x18cd,0x18cd,0x18cd,0x18cd,0x18cd,0x18cd,0x18cd,0x18d2,0xcdd,0xce4,0xce4,0xce4,
+0x18da,0x18da,0x18da,0xcec,0x1c6e,0x1c6e,0x1c6e,0x1c6e,0x1c6e,0x1c6e,0x735,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
+0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
+0x1a2b,0x1a2b,0x1a2b,0x1a2b,0x1a2b,0x1a2b,0x1a2b,0x1a2b,0x1a2b,0x1a2b,0x1a2b,0x1a2b,0x1a2b,0x1a2b,0x1a2b,0x1a2b,
+0x1a2b,0x1a2b,0x1a2d,0x1a2b,0x1a35,0x1a2b,0x1a2b,0x1a2b,0x1a2b,0x1a2b,0x1a2b,0x1a38,0x1a2b,0x1a2b,0x1a2b,0x1a2b,
+0x1a2b,0x73d,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
+0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
+0x1a7a,0x1a7a,0x1a7a,0x1a7a,0x1a7a,0x1a7a,0x1a7a,0x1a7a,0x1a7a,0x1a7a,0x1a7a,0x1a7a,0x1a7a,0x1a7a,0x1a7a,0x1a7a,
+0x1a7a,0xe76,0x1005,0x745,0x4f5,0x4f5,0x749,0xf56,0x1c09,0x1c01,0x1025,0x102d,0x751,0x4f5,0x4f5,0x4f5,
+0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
+0x4f5,0x4f5,0x1d3e,0x1d36,0x1200,0x4f5,0x4f5,0x4f5,0x1b5e,0x1b5e,0xf21,0xf26,0xf2e,0x4f5,0x4f5,0x113a,
+0x1a8a,0x1cfe,0x1cfe,0x1cfe,0x1cfe,0x1cfe,0x1cfe,0x1cfe,0x1186,0x759,0x4f5,0x75d,0x1d16,0x1d16,0x1d16,0x1d16,
+0x1d16,0x1d16,0x1d16,0x1d16,0x1d16,0x1d16,0x1d16,0x11a2,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
+0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
+0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
+0x1ba1,0x1ba1,0x1ba1,0xf6e,0xf73,0x765,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
+0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
+0x16c1,0x16c1,0x16c1,0x16c1,0x16c1,0x16c1,0x16c1,0xaeb,0x16d1,0xaf3,0x16d2,0x16c9,0x16da,0x16e0,0x16e8,0xafb,
+0x1810,0x1810,0x76d,0x4f5,0x4f5,0x4f5,0x4f5,0x11f8,0x1800,0x1800,0xbfd,0xcf4,0x4f5,0x4f5,0x4f5,0x4f5,
+0x1719,0x1720,0xb03,0x1723,0xb0b,0xb13,0xb1b,0x171d,0xb23,0xb2b,0xb33,0x1722,0x172a,0x1719,0x1720,0x171c,
+0x1723,0x172b,0x171a,0x1721,0x171d,0xb3a,0x16f0,0x16f8,0x16ff,0x1706,0x16f3,0x16fb,0x1702,0x1709,0xb42,0x1711,
+0x1c96,0x1c96,0x1c96,0x1c96,0x1c96,0x1c96,0x1c96,0x1c96,0x1c96,0x1c96,0x1c96,0x1c96,0x1c96,0x1c96,0x1c96,0x1c96,
+0x1c86,0x1c89,0x1c86,0x1c90,0x10fe,0x775,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
+0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
+0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
+0x1132,0x77d,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
+0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
+0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
+0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
+0x1bd9,0x1bd9,0x1bd9,0x1bd9,0x1bd9,0x1bd9,0xff5,0x4f5,0x1cb6,0x1cae,0x1106,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
+0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
+0x4f5,0x4f5,0x4f5,0x781,0x1d2e,0x11e8,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
+0xebe,0xec6,0xece,0xed6,0xede,0xee6,0xeed,0xef1,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
+0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
+0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
+0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
+0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x789,0x1065,0x1c29,0x106b,0x1c29,0x1073,0x1078,0x107c,0x107c,
+0x10d6,0x10de,0x1cce,0x10e6,0x1ca6,0x10ee,0x10f6,0x1d06,0x11ba,0x11ba,0x11ba,0x791,0x795,0x795,0x795,0x795,
+0x795,0x795,0x795,0x795,0x795,0x795,0x795,0x795,0x795,0x795,0x795,0x795,0x795,0x795,0x795,0x795,
+0x795,0x795,0x795,0x795,0x795,0x795,0x795,0x795,0x795,0x795,0x795,0x795,0x795,0x795,0x795,0x795,
+0x795,0x795,0x795,0x795,0x795,0x795,0x795,0x796,0xb4a,0x1733,0x1733,0x1733,0x79e,0x79e,0x79e,0x79e,
+0x1808,0x1808,0x1808,0x1808,0x1808,0x1808,0x1808,0x7a6,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,
+0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,
+0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,
+0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,
+0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x198f,0xd5c,0x1997,0x1997,0xd60,0xe7e,0xe86,0xe8e,
+0xe03,0x1a40,0x1a58,0xe0b,0x1a50,0xe13,0xe17,0xe1e,0xe26,0xe2d,0xe35,0xe3d,0xe3f,0xe3f,0xe3f,0xe3f,
+0x1ab1,0x1ab9,0x1ab1,0x1abf,0x1ac7,0x1a92,0x1acf,0x1ad7,0x1ab1,0x1adf,0x1ae7,0x1aee,0x1af6,0x1a9a,0x1ab1,0x1af8,
+0x1aa2,0x1aa9,0x1b00,0x1b06,0x1b8a,0x1b91,0x1b82,0x1b0e,0x1b16,0x1b1e,0x1b26,0x1bf9,0x1b2e,0x1b36,0xe96,0xe9e,
+0x1a82,0x1a82,0x1a82,0xea6,0x1bb1,0x1bb1,0xf83,0xf8a,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
+0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
+0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x1c59,0x1c59,0x1c59,0x1c59,0x1c59,0x1c59,0x1c59,0x1c59,
+0x1c59,0x1c59,0x1c59,0x1c59,0x1c59,0x1c59,0x1c5e,0x1c59,0x1c59,0x1c59,0x10a4,0x10a6,0x4f5,0x4f5,0x4f5,0x4f5,
+0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,
+0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,
+0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,
+0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,
+0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1176,0x1cde,0x1cde,0x1cde,0x1cde,0x1cde,0x1cde,0x1cde,0x1cde,
+0x1cde,0x1cde,0x1cde,0x1cde,0x1cde,0x1cde,0x1cde,0x1cde,0x1cde,0x1cde,0x1cde,0x1cde,0x1cde,0x1cde,0x1cde,0x117e,
+0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
+0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
+0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,
+0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,
+0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,
+0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x124e,0x1217,
+0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,
+0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,
+0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x121f,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,
+0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,
+0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,
+0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,
+0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,
+0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,0x1256,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,
+0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,
+0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,
+0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1223,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,
+0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,
+0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,
+0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,
+0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1217,0x1223,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,
+0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,
+0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,
+0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,
+0x1a60,0x125e,0x1b3e,0x1b3e,0x1b3e,0x1b3e,0x1b3e,0x1b3e,0x1266,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,
+0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,
+0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,
+0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,
+0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x126e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,
+0x1d0e,0x1d0e,0x1d0e,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,
+0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,
+0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,
+0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,
+0x15de,0x15de,0x15ce,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,
+0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,
+0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,
+0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,
+0x15e6,0x15e6,0x15d6,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,
+0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,
+0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,
+0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,
+0x15de,0x15de,0x15de,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,
+0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,
+0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,
+0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,0x15e6,
+0x15e6,0x15e6,0x15e6,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,
+0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,
+0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,
+0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,0x173b,
+0x173b,0x173b,0x173b,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,
+0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,
+0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,
+0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,0x1a60,
+0x1a60,0x1a60,0x1a60,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,
+0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,
+0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,
+0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,0x1c9e,
+0x1c9e,0x1c9e,0x1c9e,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,
+0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,
+0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,
+0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,0x1cd6,
+0x1cd6,0x1cd6,0x1cd6,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,
+0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,
+0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,
+0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,0x1d0e,
+0x1d0e,0x1d0e,0x1d0e,0x4d4,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a3,0x2ac,0x2a6,
+0x2a6,0x2a9,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,
+0x2a0,0x2a0,0x2a0,0x2a0,0x7d4,0x7ce,0x7b3,0x7aa,0x7a1,0x79e,0x795,0x7b0,0x79b,0x7a7,0x7aa,0x7c5,
+0x7bc,0x7ad,0x7d1,0x7a4,0x792,0x792,0x792,0x792,0x792,0x792,0x792,0x792,0x792,0x792,0x7b9,0x7b6,
+0x7bf,0x7bf,0x7bf,0x7ce,0x795,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7da,0x7da,0x7da,0x7da,0x7da,
+0x7da,0x7da,0x7da,0x7da,0x7da,0x7da,0x7da,0x7da,0x7da,0x7da,0x7da,0x7da,0x7da,0x7da,0x7da,0x79b,
+0x7a1,0x7a7,0x7cb,0x78f,0x7c8,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7d7,0x7d7,0x7d7,0x7d7,0x7d7,
+0x7d7,0x7d7,0x7d7,0x7d7,0x7d7,0x7d7,0x7d7,0x7d7,0x7d7,0x7d7,0x7d7,0x7d7,0x7d7,0x7d7,0x7d7,0x79b,
+0x7c2,0x798,0x7bf,0x2a0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x1890,0x1893,0x1893,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x1752,0x1752,0x1752,0x1752,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x183,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1f2,0x1f2,0x1f2,0x1f2,0x160e,0x160e,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x155a,0x155a,0x155a,0x155a,0x155a,0x155a,0x155a,0x155a,0x155a,0x155a,0x155a,0x155a,0x155a,0x155a,0x155a,0x155a,
-0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,
-0x16bc,0x16bc,0x16bc,0x16bc,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0xdd7,0xdd7,0xdd4,0xdd4,0xdd4,0xdd7,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x22e,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x17eb,0x17eb,0x23a,0x17eb,0x17eb,0x23a,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x23a,0x23a,0x23a,0x23a,0x23a,
+0,0,0,0,0x2af,0x2af,0x2af,0x2af,0x2af,0x2be,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,
+0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,
+0x2af,0x2af,0x2af,0x2af,0x2b2,0x62a,0x7e9,0x7ec,0x630,0x7ec,0x7e6,0x627,0x61e,0x2b8,0x63c,0x2bb,
+0x7ef,0x615,0x633,0x7e3,0x62d,0x639,0x61b,0x61b,0x621,0x2b5,0x627,0x624,0x61e,0x61b,0x63c,0x2bb,
+0x618,0x618,0x618,0x62a,0x2c4,0x2c4,0x2c4,0x2c4,0x2c4,0x2c4,0x645,0x2c4,0x2c4,0x2c4,0x2c4,0x2c4,
+0x2c4,0x2c4,0x2c4,0x2c4,0x645,0x2c4,0x2c4,0x2c4,0x2c4,0x2c4,0x2c4,0x636,0x645,0x2c4,0x2c4,0x2c4,
+0x2c4,0x2c4,0x645,0x63f,0x642,0x642,0x2c1,0x2c1,0x2c1,0x2c1,0x63f,0x2c1,0x642,0x642,0x642,0x2c1,
+0x642,0x642,0x2c1,0x2c1,0x63f,0x2c1,0x642,0x642,0x2c1,0x2c1,0x2c1,0x636,0x63f,0x642,0x642,0x2c1,
+0x642,0x2c1,0x63f,0x2c1,0x2d0,0x64b,0x2d0,0x2c7,0x2d0,0x2c7,0x2d0,0x2c7,0x2d0,0x2c7,0x2d0,0x2c7,
+0x2d0,0x2c7,0x2d0,0x2c7,0x2cd,0x648,0x2d0,0x64b,0x2d0,0x2c7,0x2d0,0x2c7,0x2d0,0x2c7,0x2d0,0x64b,
+0x2d0,0x2c7,0x2d0,0x2c7,0x2d0,0x2c7,0x2d0,0x2c7,0x2d0,0x2c7,0x651,0x648,0x2d0,0x2c7,0x2d0,0x64b,
+0x2d0,0x2c7,0x2d0,0x2c7,0x2d0,0x648,0x654,0x64e,0x2d0,0x2c7,0x2d0,0x2c7,0x648,0x2d0,0x2c7,0x2d0,
+0x2c7,0x2d0,0x2c7,0x654,0x64e,0x651,0x648,0x2d0,0x64b,0x2d0,0x2c7,0x2d0,0x64b,0x657,0x651,0x648,
+0x2d0,0x64b,0x2d0,0x2c7,0x2d0,0x2c7,0x651,0x648,0x2d0,0x2c7,0x2d0,0x2c7,0x2d0,0x2c7,0x2d0,0x2c7,
+0x2d0,0x2c7,0x2d0,0x2c7,0x2d0,0x2c7,0x2d0,0x2c7,0x2d0,0x2c7,0x651,0x648,0x2d0,0x2c7,0x2d0,0x64b,
+0x2d0,0x2c7,0x2d0,0x2c7,0x2d0,0x2c7,0x2d0,0x2c7,0x2d0,0x2c7,0x2d0,0x2c7,0x2d0,0x2d0,0x2c7,0x2d0,
+0x2c7,0x2d0,0x2c7,0x2ca,0x2d3,0x2df,0x2df,0x2d3,0x2df,0x2d3,0x2df,0x2df,0x2d3,0x2df,0x2df,0x2df,
+0x2d3,0x2d3,0x2df,0x2df,0x2df,0x2df,0x2d3,0x2df,0x2df,0x2d3,0x2df,0x2df,0x2df,0x2d3,0x2d3,0x2d3,
+0x2df,0x2df,0x2d3,0x2df,0x2e2,0x2d6,0x2df,0x2d3,0x2df,0x2d3,0x2df,0x2df,0x2d3,0x2df,0x2d3,0x2d3,
+0x2df,0x2d3,0x2df,0x2e2,0x2d6,0x2df,0x2df,0x2df,0x2d3,0x2df,0x2d3,0x2df,0x2df,0x2d3,0x2d3,0x2dc,
+0x2df,0x2d3,0x2d3,0x2d3,0x2dc,0x2dc,0x2dc,0x2dc,0x2e5,0x2e5,0x2d9,0x2e5,0x2e5,0x2d9,0x2e5,0x2e5,
+0x2d9,0x2e2,0x65a,0x2e2,0x65a,0x2e2,0x65a,0x2e2,0x65a,0x2e2,0x65a,0x2e2,0x65a,0x2e2,0x65a,0x2e2,
+0x65a,0x2d3,0x2e2,0x2d6,0x2e2,0x2d6,0x2e2,0x2d6,0x2df,0x2d3,0x2e2,0x2d6,0x2e2,0x2d6,0x2e2,0x2d6,
+0x2e2,0x2d6,0x2e2,0x2d6,0x2d6,0x2e5,0x2e5,0x2d9,0x2e2,0x2d6,0x9c3,0x9c3,0x9c6,0x9c0,0x2e2,0x2d6,
+0x2e2,0x2d6,0x2e2,0x2d6,0x2e2,0x2d6,0x2e2,0x2d6,0x2e2,0x2d6,0x2e2,0x2d6,0x2e2,0x2d6,0x2e2,0x2d6,
+0x2e2,0x2d6,0x2e2,0x2d6,0x2e2,0x2d6,0x2e2,0x2d6,0x9c6,0x9c0,0x9c6,0x9c0,0x9c3,0x9bd,0x9c6,0x9c0,
+0xb88,0xc90,0x9c3,0x9bd,0x9c3,0x9bd,0x9c6,0x9c0,0x9c6,0x9c0,0x9c6,0x9c0,0x9c6,0x9c0,0x9c6,0x9c0,
+0x9c6,0x9c0,0x9c6,0x9c0,0xc90,0xc90,0xc90,0xd8f,0xd8f,0xd8f,0xd92,0xd92,0xd8f,0xd92,0xd92,0xd8f,
+0xd8f,0xd92,0xed3,0xed6,0xed6,0xed6,0xed6,0xed3,0xed6,0xed3,0xed6,0xed3,0xed6,0xed3,0xed6,0xed3,
+0x2e8,0x65d,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,
+0x2e8,0x65d,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,
+0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,
+0x2eb,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,
+0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0xc93,0xc93,0x303,0x303,0x303,0x303,
+0x303,0x303,0x303,0x303,0x303,0x2fa,0x2fa,0x2fa,0x2fa,0x2fa,0x2fa,0x2fa,0x2f7,0x2f7,0x2f4,0x2f4,
+0x663,0x2f4,0x2fa,0x666,0x2fd,0x666,0x666,0x666,0x2fd,0x666,0x2fa,0x2fa,0x669,0x300,0x2f4,0x2f4,
+0x2f4,0x2f4,0x2f4,0x2f4,0x660,0x660,0x660,0x660,0x2f1,0x660,0x2f4,0xb01,0x303,0x303,0x303,0x303,
+0x303,0x2ee,0x2ee,0x2ee,0x2ee,0x2ee,0x9d2,0x9d2,0x9cf,0x9cc,0x9cf,0xc96,0xc96,0xc96,0xc96,0xc96,
+0xc96,0xc96,0xc96,0xc96,0xc96,0xc96,0xc96,0xc96,0xc96,0xc96,0xc96,0xc96,0x66c,0x66c,0x66c,0x66c,
+0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,
+0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,
+0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,
+0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66f,0x66f,0x927,0x66f,
+0x66f,0x92a,0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,0xc45,0xd5c,0xd5c,0xd5c,0xd5c,
+0xd5c,0xd5c,0xd5c,0xd5c,0xe9a,0xe9a,0xe9a,0xe9a,0xe9d,0xd5f,0xd5f,0xd5f,0x672,0x672,0xb07,0xc8d,
+0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0xf81,0xf7e,0xf81,0xf7e,
+0x30f,0x318,0xf81,0xf7e,9,9,0x31e,0xed9,0xed9,0xed9,0x306,0x14d6,9,9,9,9,
+0x31b,0x309,0x32d,0x30c,0x32d,0x32d,0x32d,9,0x32d,9,0x32d,0x32d,0x324,0x678,0x678,0x678,
+0x678,0x678,0x678,0x678,0x678,0x678,0x678,0x678,0x678,0x678,0x678,0x678,0x678,0x678,9,0x678,
+0x678,0x678,0x678,0x678,0x678,0x678,0x32d,0x32d,0x324,0x324,0x324,0x324,0x324,0x675,0x675,0x675,
+0x675,0x675,0x675,0x675,0x675,0x675,0x675,0x675,0x675,0x675,0x675,0x675,0x675,0x675,0x321,0x675,
+0x675,0x675,0x675,0x675,0x675,0x675,0x324,0x324,0x324,0x324,0x324,0xf81,0x330,0x330,0x333,0x32d,
+0x32d,0x330,0x327,0x9d5,0xb91,0xb8e,0x32a,0x9d5,0x32a,0x9d5,0x32a,0x9d5,0x32a,0x9d5,0x315,0x312,
+0x315,0x312,0x315,0x312,0x315,0x312,0x315,0x312,0x315,0x312,0x315,0x312,0x330,0x330,0x327,0x321,
+0xb40,0xb3d,0xb8b,0xc9c,0xc99,0xc9f,0xc9c,0xc99,0xd95,0xd98,0xd98,0xd98,0x9e4,0x684,0x33f,0x342,
+0x33f,0x33f,0x33f,0x342,0x33f,0x33f,0x33f,0x33f,0x342,0x9e4,0x342,0x33f,0x681,0x681,0x681,0x681,
+0x681,0x681,0x681,0x681,0x681,0x684,0x681,0x681,0x681,0x681,0x681,0x681,0x681,0x681,0x681,0x681,
+0x681,0x681,0x681,0x681,0x681,0x681,0x681,0x681,0x681,0x681,0x681,0x681,0x67b,0x67b,0x67b,0x67b,
+0x67b,0x67b,0x67b,0x67b,0x67b,0x67e,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,
+0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x9de,0x67e,0x339,0x33c,0x339,0x339,0x339,0x33c,
+0x339,0x339,0x339,0x339,0x33c,0x9de,0x33c,0x339,0x33f,0x339,0x33f,0x339,0x33f,0x339,0x33f,0x339,
+0x33f,0x339,0x33f,0x339,0x33f,0x339,0x33f,0x339,0x33f,0x339,0x33f,0x339,0x33f,0x339,0x342,0x33c,
+0x33f,0x339,0x33f,0x339,0x33f,0x339,0x33f,0x339,0x33f,0x339,0x336,0x933,0x936,0x918,0x918,0x112b,
+0x9d8,0x9d8,0xb97,0xb94,0x9e1,0x9db,0x9e1,0x9db,0x33f,0x339,0x33f,0x339,0x33f,0x339,0x33f,0x339,
+0x33f,0x339,0x33f,0x339,0x33f,0x339,0x33f,0x339,0x33f,0x339,0x33f,0x339,0x33f,0x339,0x33f,0x339,
+0x33f,0x339,0x33f,0x339,0x33f,0x339,0x33f,0x339,0x33f,0x339,0x33f,0x339,0x33f,0x339,0x33f,0x339,
+0x33f,0x339,0x33f,0x339,0x33f,0x339,0x33f,0x339,0x33f,0x342,0x33c,0x33f,0x339,0xb97,0xb94,0x33f,
+0x339,0xb97,0xb94,0x33f,0x339,0xb97,0xb94,0xedc,0x342,0x33c,0x342,0x33c,0x33f,0x339,0x342,0x33c,
+0x33f,0x339,0x342,0x33c,0x342,0x33c,0x342,0x33c,0x33f,0x339,0x342,0x33c,0x342,0x33c,0x342,0x33c,
+0x33f,0x339,0x342,0x33c,0x9e4,0x9de,0x342,0x33c,0x342,0x33c,0x342,0x33c,0x342,0x33c,0xd9e,0xd9b,
+0x342,0x33c,0xedf,0xedc,0xedf,0xedc,0xedf,0xedc,0xc06,0xc03,0xc06,0xc03,0xc06,0xc03,0xc06,0xc03,
+0xc06,0xc03,0xc06,0xc03,0xc06,0xc03,0xc06,0xc03,0xf0c,0xf09,0xf0c,0xf09,0xfff,0xffc,0xfff,0xffc,
+0xfff,0xffc,0xfff,0xffc,0xfff,0xffc,0xfff,0xffc,0xfff,0xffc,0xfff,0xffc,0x1164,0x1161,0x134a,0x1347,
+0x150f,0x150c,0x150f,0x150c,0x150f,0x150c,0x150f,0x150c,0xc,0x354,0x354,0x354,0x354,0x354,0x354,0x354,
+0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x354,
+0x354,0x354,0x354,0xc,0xc,0x357,0x345,0x348,0x348,0x34b,0x348,0x345,0x1917,0x34e,0x34e,0x34e,
+0x34e,0x34e,0x34e,0x34e,0x34e,0x34e,0x34e,0x34e,0x34e,0x34e,0x34e,0x34e,0x34e,0x34e,0x34e,0x34e,
+0x34e,0x34e,0x34e,0x34e,0x34e,0x34e,0x34e,0x34e,0x34e,0x34e,0x34e,0x34e,0x34e,0x34e,0x34e,0x351,
+0x1917,0x89d,0x9e7,0xc,0xc,0x14d9,0x14d9,0x13f5,0xf,0x957,0x957,0x957,0x957,0x957,0x957,0x957,
+0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0xda1,0x957,0x957,0x957,0x957,0x957,
+0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,
+0x35a,0x35a,0xee2,0x35a,0x35a,0x35a,0x366,0x35a,0x35d,0x35a,0x35a,0x369,0x95a,0xda4,0xda7,0xda4,
+0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0x36c,0x36c,0x36c,0x36c,0x36c,0x36c,0x36c,0x36c,
+0x36c,0x36c,0x36c,0x36c,0x36c,0x36c,0x36c,0x36c,0x36c,0x36c,0x36c,0x36c,0x36c,0x36c,0x36c,0x36c,
+0x36c,0x36c,0x36c,0xf,0xf,0xf,0xf,0x191a,0x36c,0x36c,0x36c,0x363,0x360,0xf,0xf,0xf,
+0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xcb4,0xcb4,0xcb4,0xcb4,0x13f8,0x14dc,0xf8a,0xf8a,
+0xf8a,0xf87,0xf87,0xdad,0x8a3,0xcae,0xcab,0xcab,0xca2,0xca2,0xca2,0xca2,0xca2,0xca2,0xf84,0xf84,
+0xf84,0xf84,0xf84,0x8a0,0x14d3,0x12,0xdb0,0x8a6,0x1311,0x387,0x38a,0x38a,0x38a,0x38a,0x38a,0x387,
+0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,
+0x387,0x387,0x387,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0x8a9,0x387,0x387,0x387,0x387,0x387,0x387,0x387,
+0x387,0x387,0x387,0x91e,0x91e,0x91e,0x91e,0x91e,0x91e,0x91e,0x91e,0xb37,0xb37,0xb37,0xca2,0xca8,
+0xca5,0xdaa,0xdaa,0xdaa,0xdaa,0xdaa,0xdaa,0x130e,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,
+0x939,0x939,0x381,0x37e,0x37b,0x378,0xb9a,0xb9a,0x91b,0x387,0x387,0x393,0x387,0x38d,0x38d,0x38d,
+0x38d,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,
+0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,
+0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,
+0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x9ed,0x9ed,0x387,0x387,
+0x387,0x387,0x387,0x9ed,0x38a,0x387,0x38a,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,
+0x387,0x387,0x387,0x9ed,0x387,0x387,0x387,0x38a,0x93c,0x387,0x372,0x372,0x372,0x372,0x372,0x372,
+0x372,0x36f,0x378,0x375,0x375,0x372,0x372,0x372,0x372,0x390,0x390,0x372,0x372,0x378,0x375,0x375,
+0x375,0x372,0xcb1,0xcb1,0x384,0x384,0x384,0x384,0x384,0x384,0x384,0x384,0x384,0x384,0x9ed,0x9ed,
+0x9ed,0x9ea,0x9ea,0xcb1,0xa02,0xa02,0xa02,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9f9,
+0x9fc,0x9f9,0x15,0xa05,0x9ff,0x9f0,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,
+0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,
+0x9ff,0xcb7,0xcb7,0xcb7,0x9f6,0x9f6,0x9f6,0x9f6,0x9f6,0x9f6,0x9f6,0x9f6,0x9f6,0x9f6,0x9f6,0x9f6,
+0x9f6,0x9f6,0x9f6,0x9f6,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x15,
+0x15,0xcb7,0xcb7,0xcb7,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,
+0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,
+0xe10,0xe10,0x1011,0x1011,0x1011,0x1011,0x1011,0x1011,0x1011,0x1011,0x1011,0x1011,0x1011,0x1011,0x1011,0x1011,
+0x1011,0x1011,0x1011,0x1011,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,
+0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,
+0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,
+0xa08,0xa08,0xa08,0xa08,0xa08,0xb9d,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+0x18,0x18,0x18,0x18,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf27,0xf27,
+0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,
+0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf1b,
+0xf1b,0xf1b,0xf1b,0xf1b,0xf1b,0xf1b,0xf1b,0xf1b,0xf2a,0xf2a,0xf1e,0xf1e,0xf21,0xf30,0xf2d,0x10e,
+0x10e,0x193e,0x1941,0x1941,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x25b,
+0x25b,0x25b,0x25b,0x25b,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0xb13,0xb13,0xb16,0xb16,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,
+0x72,0x72,0x72,0x72,0x1593,0x1593,0x1593,0x1593,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,
+0x1c2,0x1c2,0x1c2,0x1590,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x164d,0x164d,0x164d,0x164d,0x164d,
+0x164d,0x164d,0x164d,0x164d,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x1686,0x1686,0x1686,
+0x1686,0x1686,0x1686,0x1686,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x177,0x177,0x177,
+0x177,0x177,0x177,0x177,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,
+0x27f,0x27f,0x27f,0x27f,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,
+0x1d7,0x1d7,0x1d7,0x1d7,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x14af,0x14af,0x14af,0x14af,0x14af,0x14af,0x14af,0x14af,0x14af,0x14af,0x1bc,0x1bc,
+0x1bc,0x1bc,0x1bc,0x1bc,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264,
+0x264,0x264,0x264,0x264,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x18c0,0x18c3,0x18c3,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,
+0x258,0x258,0x258,0x258,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x198c,0x198c,0x198c,0x198c,0x198c,0x198c,0x198c,0x198c,0x198c,0x198c,0x26a,0x26a,
+0x26a,0x26a,0x26a,0x26a,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x1782,0x1782,0x1782,0x1782,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,
+0x21c,0x21c,0x21c,0x21c,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,
+0x127b,0x127b,0x127b,0x180,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638,0x1ef,0x1ef,
+0x1ef,0x1ef,0x163e,0x163e,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x158a,0x158a,0x158a,0x158a,0x158a,0x158a,0x158a,0x158a,0x158a,0x158a,0x158a,0x158a,
+0x158a,0x158a,0x158a,0x158a,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,
+0x1674,0x1674,0x1674,0x1674,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,
+0x24f,0x24f,0x24f,0x24f,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,
+0x1911,0x1911,0x1911,0x1911,0x16ec,0x16ec,0x16ec,0x16ec,0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x204,
+0x204,0x204,0x204,0x204,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0xe07,0xe07,0xe04,0xe04,0xe04,0xe07,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,
+0xdb,0xdb,0xdb,0xdb,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x22b,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,
+0x179a,0x179a,0x179a,0x179a,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x181b,0x181b,0x237,0x181b,0x181b,0x237,0x181b,0x181b,0x181b,0x181b,0x181b,0x237,
+0x237,0x237,0x237,0x237,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x270,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,
+0x19a1,0x19a1,0x19a1,0x19a1,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x933,0x933,
+0,0,0x954,0x954,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,
+0x196e,0x196e,0x261,0x261,3,3,3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
-3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
-3,3,0x933,0x933,6,6,6,6,6,6,6,6,6,6,6,6,
+3,3,3,3,3,3,0x954,0x954,6,6,6,6,6,6,6,6,
6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
-6,6,6,6,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,
-0xd35,0xd35,0xd35,0xd35,6,6,6,6,6,6,6,6,6,6,6,6,
-6,6,6,6,0x14b2,0x38d,0x39c,0x39c,0x1b,0x3a2,0x3a2,0x3a2,0x3a2,0x3a2,0x3a2,0x3a2,
-0x3a2,0x1b,0x1b,0x3a2,0x3a2,0x1b,0x1b,0x3a2,0x3a2,0x3a2,0x3a2,0x3a2,0x3a2,0x3a2,0x3a2,0x3a2,
-0x3a2,0x3a2,0x3a2,0x3a2,0x3a2,0x1b,0x3a2,0x3a2,0x3a2,0x3a2,0x3a2,0x3a2,0x3a2,0x1b,0x3a2,0x1b,
-0x1b,0x1b,0x3a2,0x3a2,0x3a2,0x3a2,0x1b,0x1b,0x390,0xc90,0x38d,0x39c,0x39c,0x38d,0x38d,0x38d,
-0x38d,0x1b,0x1b,0x39c,0x39c,0x1b,0x1b,0x39f,0x39f,0x393,0xd83,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x38d,0x1b,0x1b,0x1b,0x1b,0x3a5,0x3a5,0x1b,0x3a5,0x3a2,0x3a2,0x38d,0x38d,
-0x1b,0x1b,0x91e,0x91e,0x91e,0x91e,0x91e,0x91e,0x91e,0x91e,0x91e,0x91e,0x3a2,0x3a2,0x399,0x399,
-0x396,0x396,0x396,0x396,0x396,0x399,0x396,0x110a,0x184b,0x1848,0x1b,0x1b,0x1e,0xc93,0x3a8,0xc96,
-0x1e,0x3b4,0x3b4,0x3b4,0x3b4,0x3b4,0x3b4,0x1e,0x1e,0x1e,0x1e,0x3b4,0x3b4,0x1e,0x1e,0x3b4,
-0x3b4,0x3b4,0x3b4,0x3b4,0x3b4,0x3b4,0x3b4,0x3b4,0x3b4,0x3b4,0x3b4,0x3b4,0x3b4,0x1e,0x3b4,0x3b4,
-0x3b4,0x3b4,0x3b4,0x3b4,0x3b4,0x1e,0x3b4,0x3b7,0x1e,0x3b4,0x3b7,0x1e,0x3b4,0x3b4,0x1e,0x1e,
-0x3ab,0x1e,0x3b1,0x3b1,0x3b1,0x3a8,0x3a8,0x1e,0x1e,0x1e,0x1e,0x3a8,0x3a8,0x1e,0x1e,0x3a8,
-0x3a8,0x3ae,0x1e,0x1e,0x1e,0xf66,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x3b7,0x3b7,0x3b7,
-0x3b4,0x1e,0x3b7,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x921,0x921,0x921,0x921,0x921,0x921,
-0x921,0x921,0x921,0x921,0x3a8,0x3a8,0x3b4,0x3b4,0x3b4,0xf66,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,
-0x1e,0x1e,0x1e,0x1e,0x21,0x3ba,0x3ba,0x3c3,0x21,0x3c6,0x3c6,0x3c6,0x3c6,0x3c6,0x3c6,0x3c6,
-0xc9f,0x3c6,0x21,0x3c6,0x3c6,0x3c6,0x21,0x3c6,0x3c6,0x3c6,0x3c6,0x3c6,0x3c6,0x3c6,0x3c6,0x3c6,
-0x3c6,0x3c6,0x3c6,0x3c6,0x3c6,0x21,0x3c6,0x3c6,0x3c6,0x3c6,0x3c6,0x3c6,0x3c6,0x21,0x3c6,0x3c6,
-0x21,0x3c6,0x3c6,0x3c6,0x3c6,0x3c6,0x21,0x21,0x3bd,0x3c6,0x3c3,0x3c3,0x3c3,0x3ba,0x3ba,0x3ba,
-0x3ba,0x3ba,0x21,0x3ba,0x3ba,0x3c3,0x21,0x3c3,0x3c3,0x3c0,0x21,0x21,0x3c6,0x21,0x21,0x21,
-0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x3c6,0xc9f,0xc99,0xc99,
-0x21,0x21,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x13c8,0xc9c,0x21,0x21,
-0x21,0x21,0x21,0x21,0x21,0x16ce,0x184e,0x184e,0x184e,0x1851,0x1851,0x1851,0x24,0x3c9,0x3d8,0x3d8,
-0x24,0x3de,0x3de,0x3de,0x3de,0x3de,0x3de,0x3de,0x3de,0x24,0x24,0x3de,0x3de,0x24,0x24,0x3de,
-0x3de,0x3de,0x3de,0x3de,0x3de,0x3de,0x3de,0x3de,0x3de,0x3de,0x3de,0x3de,0x3de,0x24,0x3de,0x3de,
-0x3de,0x3de,0x3de,0x3de,0x3de,0x24,0x3de,0x3de,0x24,0xca2,0x3de,0x3de,0x3de,0x3de,0x24,0x24,
-0x3cc,0x3de,0x3c9,0x3c9,0x3d8,0x3c9,0x3c9,0x3c9,0xf69,0x24,0x24,0x3d8,0x3db,0x24,0x24,0x3db,
-0x3db,0x3cf,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x3c9,0x3c9,0x24,0x24,0x24,0x24,
-0x3e1,0x3e1,0x24,0x3de,0x3de,0x3de,0xf69,0xf69,0x24,0x24,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
-0x3d5,0x3d5,0x3d5,0x3d5,0x3d2,0xca2,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x24,0x24,0x24,0x24,
-0x24,0x24,0x24,0x24,0x27,0x27,0x3e4,0x3f0,0x27,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x27,
-0x27,0x27,0x3f0,0x3f0,0x3f0,0x27,0x3f0,0x3f0,0x3f3,0x3f0,0x27,0x27,0x27,0x3f0,0x3f0,0x27,
-0x3f0,0x27,0x3f0,0x3f0,0x27,0x27,0x27,0x3f0,0x3f0,0x27,0x27,0x27,0x3f0,0x3f0,0x92d,0x27,
-0x27,0x27,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x92d,0xd86,0x3f0,0x3f0,0x3f0,0x27,0x27,
-0x27,0x27,0x3e4,0x3ea,0x3e4,0x3ea,0x3ea,0x27,0x27,0x27,0x3ea,0x3ea,0x3ea,0x27,0x3ed,0x3ed,
-0x3ed,0x3e7,0x27,0x27,0xf6c,0x27,0x27,0x27,0x27,0x27,0x27,0x3e4,0x27,0x27,0x27,0x27,
-0x27,0x27,0x27,0x27,0x27,0x27,0xea0,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,
-0x927,0x927,0x927,0xca5,0xca5,0xca5,0xca5,0xca5,0xca5,0xca8,0xca5,0x27,0x27,0x27,0x27,0x27,
-0x14b5,0x402,0x402,0x402,0x2a,0x405,0x405,0x405,0x405,0x405,0x405,0x405,0x405,0x2a,0x405,0x405,
-0x405,0x2a,0x405,0x405,0x405,0x405,0x405,0x405,0x405,0x405,0x405,0x405,0x405,0x405,0x405,0x405,
-0x405,0x2a,0x405,0x405,0x405,0x405,0x405,0x405,0x405,0x405,0x405,0x405,0x14b8,0x405,0x405,0x405,
-0x405,0x405,0x2a,0x2a,0x2a,0xf75,0x3f6,0x3f6,0x3f6,0x402,0x402,0x402,0x402,0x2a,0x3f6,0x3f6,
-0x3f9,0x2a,0x3f6,0x3f6,0x3f6,0x3fc,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x3f6,0x3f6,0x2a,
-0xf75,0xf75,0x16d1,0x2a,0x2a,0x2a,0x2a,0x2a,0x405,0x405,0xf6f,0xf6f,0x2a,0x2a,0x3ff,0x3ff,
-0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,
-0xf72,0xf72,0xf72,0xf72,0xf72,0xf72,0xf72,0xf72,0x178e,0x14bb,0x411,0x411,0x2d,0x417,0x417,0x417,
-0x417,0x417,0x417,0x417,0x417,0x2d,0x417,0x417,0x417,0x2d,0x417,0x417,0x417,0x417,0x417,0x417,
-0x417,0x417,0x417,0x417,0x417,0x417,0x417,0x417,0x417,0x2d,0x417,0x417,0x417,0x417,0x417,0x417,
-0x417,0x417,0x417,0x417,0x2d,0x417,0x417,0x417,0x417,0x417,0x2d,0x2d,0xcab,0xcae,0x411,0x408,
-0x414,0x411,0x408,0x411,0x411,0x2d,0x408,0x414,0x414,0x2d,0x414,0x414,0x408,0x40b,0x2d,0x2d,
-0x2d,0x2d,0x2d,0x2d,0x2d,0x408,0x408,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x417,0x2d,
-0x417,0x417,0xeb8,0xeb8,0x2d,0x2d,0x40e,0x40e,0x40e,0x40e,0x40e,0x40e,0x40e,0x40e,0x40e,0x40e,
-0x2d,0xebb,0xebb,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,
-0x1854,0x14be,0x423,0x423,0x30,0x429,0x429,0x429,0x429,0x429,0x429,0x429,0x429,0x30,0x429,0x429,
-0x429,0x30,0x429,0x429,0x429,0x429,0x429,0x429,0x429,0x429,0x429,0x429,0x429,0x429,0x429,0x429,
-0x423,0x41a,0x41a,0x41a,0xf78,0x30,0x423,0x423,0x423,0x30,0x426,0x426,0x426,0x41d,0x12e7,0x1791,
-0x30,0x30,0x30,0x30,0x1794,0x1794,0x1794,0x41a,0x1791,0x1791,0x1791,0x1791,0x1791,0x1791,0x1791,0x16d4,
-0x429,0x429,0xf78,0xf78,0x30,0x30,0x420,0x420,0x420,0x420,0x420,0x420,0x420,0x420,0x420,0x420,
-0xf7b,0xf7b,0xf7b,0xf7b,0xf7b,0xf7b,0x1791,0x1791,0x1791,0xf7e,0xf81,0xf81,0xf81,0xf81,0xf81,0xf81,
-0x33,0x33,0x9f6,0x9f6,0x33,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,
-0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x33,0x33,0x33,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,
-0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x33,0x9fc,
-0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x9fc,0x33,0x9fc,0x33,0x33,0x9fc,0x9fc,0x9fc,0x9fc,
-0x9fc,0x9fc,0x9fc,0x33,0x33,0x33,0x9f0,0x33,0x33,0x33,0x33,0x9ed,0x9f6,0x9f6,0x9ed,0x9ed,
-0x9ed,0x33,0x9ed,0x33,0x9f6,0x9f6,0x9f9,0x9f6,0x9f9,0x9f9,0x9f9,0x9ed,0x33,0x33,0x33,0x33,
-0x33,0x33,0x14c1,0x14c1,0x14c1,0x14c1,0x14c1,0x14c1,0x14c1,0x14c1,0x14c1,0x14c1,0x33,0x33,0x9f6,0x9f6,
-0x9f3,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x36,0x444,0x444,0x444,
-0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,
-0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x42f,0x444,0x441,
-0x42f,0x42f,0x42f,0x42f,0x42f,0x42f,0x435,0x36,0x36,0x36,0x36,0x42c,0x44a,0x44a,0x44a,0x44a,
-0x44a,0x444,0x447,0x432,0x432,0x432,0x432,0x432,0x432,0x42f,0x432,0x438,0x43e,0x43e,0x43e,0x43e,
-0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x43b,0x43b,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,
+6,6,6,6,6,6,6,6,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,
+0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,6,6,6,6,6,6,6,6,
+6,6,6,6,6,6,6,6,0x14e2,0x3ab,0x3ba,0x3ba,0x1b,0x3c0,0x3c0,0x3c0,
+0x3c0,0x3c0,0x3c0,0x3c0,0x3c0,0x1b,0x1b,0x3c0,0x3c0,0x1b,0x1b,0x3c0,0x3c0,0x3c0,0x3c0,0x3c0,
+0x3c0,0x3c0,0x3c0,0x3c0,0x3c0,0x3c0,0x3c0,0x3c0,0x3c0,0x1b,0x3c0,0x3c0,0x3c0,0x3c0,0x3c0,0x3c0,
+0x3c0,0x1b,0x3c0,0x1b,0x1b,0x1b,0x3c0,0x3c0,0x3c0,0x3c0,0x1b,0x1b,0x3ae,0xcbd,0x3ab,0x3ba,
+0x3ba,0x3ab,0x3ab,0x3ab,0x3ab,0x1b,0x1b,0x3ba,0x3ba,0x1b,0x1b,0x3bd,0x3bd,0x3b1,0xdb6,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x3ab,0x1b,0x1b,0x1b,0x1b,0x3c3,0x3c3,0x1b,0x3c3,
+0x3c0,0x3c0,0x3ab,0x3ab,0x1b,0x1b,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,
+0x3c0,0x3c0,0x3b7,0x3b7,0x3b4,0x3b4,0x3b4,0x3b4,0x3b4,0x3b7,0x3b4,0x113a,0x187b,0x1878,0x191d,0x1b,
+0x1e,0xcc0,0x3c6,0xcc3,0x1e,0x3d2,0x3d2,0x3d2,0x3d2,0x3d2,0x3d2,0x1e,0x1e,0x1e,0x1e,0x3d2,
+0x3d2,0x1e,0x1e,0x3d2,0x3d2,0x3d2,0x3d2,0x3d2,0x3d2,0x3d2,0x3d2,0x3d2,0x3d2,0x3d2,0x3d2,0x3d2,
+0x3d2,0x1e,0x3d2,0x3d2,0x3d2,0x3d2,0x3d2,0x3d2,0x3d2,0x1e,0x3d2,0x3d5,0x1e,0x3d2,0x3d5,0x1e,
+0x3d2,0x3d2,0x1e,0x1e,0x3c9,0x1e,0x3cf,0x3cf,0x3cf,0x3c6,0x3c6,0x1e,0x1e,0x1e,0x1e,0x3c6,
+0x3c6,0x1e,0x1e,0x3c6,0x3c6,0x3cc,0x1e,0x1e,0x1e,0xf96,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,
+0x1e,0x3d5,0x3d5,0x3d5,0x3d2,0x1e,0x3d5,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x945,0x945,
+0x945,0x945,0x945,0x945,0x945,0x945,0x945,0x945,0x3c6,0x3c6,0x3d2,0x3d2,0x3d2,0xf96,0x1920,0x1e,
+0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x21,0x3d8,0x3d8,0x3e1,0x21,0x3e4,0x3e4,0x3e4,
+0x3e4,0x3e4,0x3e4,0x3e4,0xccc,0x3e4,0x21,0x3e4,0x3e4,0x3e4,0x21,0x3e4,0x3e4,0x3e4,0x3e4,0x3e4,
+0x3e4,0x3e4,0x3e4,0x3e4,0x3e4,0x3e4,0x3e4,0x3e4,0x3e4,0x21,0x3e4,0x3e4,0x3e4,0x3e4,0x3e4,0x3e4,
+0x3e4,0x21,0x3e4,0x3e4,0x21,0x3e4,0x3e4,0x3e4,0x3e4,0x3e4,0x21,0x21,0x3db,0x3e4,0x3e1,0x3e1,
+0x3e1,0x3d8,0x3d8,0x3d8,0x3d8,0x3d8,0x21,0x3d8,0x3d8,0x3e1,0x21,0x3e1,0x3e1,0x3de,0x21,0x21,
+0x3e4,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+0x3e4,0xccc,0xcc6,0xcc6,0x21,0x21,0x948,0x948,0x948,0x948,0x948,0x948,0x948,0x948,0x948,0x948,
+0x13fb,0xcc9,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x16fe,0x187e,0x187e,0x187e,0x1881,0x1881,0x1881,
+0x24,0x3e7,0x3f6,0x3f6,0x24,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x24,0x24,0x3fc,
+0x3fc,0x24,0x24,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
+0x3fc,0x24,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x24,0x3fc,0x3fc,0x24,0xccf,0x3fc,0x3fc,
+0x3fc,0x3fc,0x24,0x24,0x3ea,0x3fc,0x3e7,0x3e7,0x3f6,0x3e7,0x3e7,0x3e7,0xf99,0x24,0x24,0x3f6,
+0x3f9,0x24,0x24,0x3f9,0x3f9,0x3ed,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x3e7,0x3e7,
+0x24,0x24,0x24,0x24,0x3ff,0x3ff,0x24,0x3fc,0x3fc,0x3fc,0xf99,0xf99,0x24,0x24,0x3f3,0x3f3,
+0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f0,0xccf,0x131d,0x131d,0x131d,0x131d,0x131d,0x131d,
+0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x27,0x27,0x402,0x40e,0x27,0x40e,0x40e,0x40e,
+0x40e,0x40e,0x40e,0x27,0x27,0x27,0x40e,0x40e,0x40e,0x27,0x40e,0x40e,0x411,0x40e,0x27,0x27,
+0x27,0x40e,0x40e,0x27,0x40e,0x27,0x40e,0x40e,0x27,0x27,0x27,0x40e,0x40e,0x27,0x27,0x27,
+0x40e,0x40e,0x40e,0x27,0x27,0x27,0x40e,0x40e,0x40e,0x40e,0x40e,0x40e,0x40e,0x40e,0xdb9,0x40e,
+0x40e,0x40e,0x27,0x27,0x27,0x27,0x402,0x408,0x402,0x408,0x408,0x27,0x27,0x27,0x408,0x408,
+0x408,0x27,0x40b,0x40b,0x40b,0x405,0x27,0x27,0xf9c,0x27,0x27,0x27,0x27,0x27,0x27,0x402,
+0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0xed0,0x94e,0x94e,0x94e,0x94e,0x94e,
+0x94e,0x94e,0x94e,0x94e,0x94b,0x94b,0x94b,0xd89,0xcd2,0xcd2,0xcd2,0xcd2,0xcd2,0xcd5,0xcd2,0x27,
+0x27,0x27,0x27,0x27,0x14e5,0x420,0x420,0x420,0x1923,0x423,0x423,0x423,0x423,0x423,0x423,0x423,
+0x423,0x2a,0x423,0x423,0x423,0x2a,0x423,0x423,0x423,0x423,0x423,0x423,0x423,0x423,0x423,0x423,
+0x423,0x423,0x423,0x423,0x423,0x2a,0x423,0x423,0x423,0x423,0x423,0x423,0x423,0x423,0x423,0x423,
+0x14e8,0x423,0x423,0x423,0x423,0x423,0x2a,0x2a,0x2a,0xfa5,0x414,0x414,0x414,0x420,0x420,0x420,
+0x420,0x2a,0x414,0x414,0x417,0x2a,0x414,0x414,0x414,0x41a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,
+0x2a,0x414,0x414,0x2a,0xfa5,0xfa5,0x1701,0x2a,0x2a,0x2a,0x2a,0x2a,0x423,0x423,0xf9f,0xf9f,
+0x2a,0x2a,0x41d,0x41d,0x41d,0x41d,0x41d,0x41d,0x41d,0x41d,0x41d,0x41d,0x2a,0x2a,0x2a,0x2a,
+0x2a,0x2a,0x2a,0x2a,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0x17be,0x14eb,0x42f,0x42f,
+0x1926,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x2d,0x435,0x435,0x435,0x2d,0x435,0x435,
+0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x2d,0x435,0x435,
+0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x2d,0x435,0x435,0x435,0x435,0x435,0x2d,0x2d,
+0xcd8,0xcdb,0x42f,0x426,0x432,0x42f,0x426,0x42f,0x42f,0x2d,0x426,0x432,0x432,0x2d,0x432,0x432,
+0x426,0x429,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x426,0x426,0x2d,0x2d,0x2d,0x2d,0x2d,
+0x2d,0x2d,0x435,0x2d,0x435,0x435,0xee8,0xee8,0x2d,0x2d,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,
+0x42c,0x42c,0x42c,0x42c,0x2d,0xeeb,0xeeb,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,
+0x2d,0x2d,0x2d,0x2d,0x1884,0x14ee,0x441,0x441,0x30,0x447,0x447,0x447,0x447,0x447,0x447,0x447,
+0x447,0x30,0x447,0x447,0x447,0x30,0x447,0x447,0x447,0x447,0x447,0x447,0x447,0x447,0x447,0x447,
+0x447,0x447,0x447,0x447,0x441,0x438,0x438,0x438,0xfa8,0x30,0x441,0x441,0x441,0x30,0x444,0x444,
+0x444,0x43b,0x1323,0x17c1,0x30,0x30,0x30,0x30,0x17c4,0x17c4,0x17c4,0x438,0x17c1,0x17c1,0x17c1,0x17c1,
+0x17c1,0x17c1,0x17c1,0x1704,0x447,0x447,0xfa8,0xfa8,0x30,0x30,0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,
+0x43e,0x43e,0x43e,0x43e,0xfab,0xfab,0xfab,0xfab,0xfab,0xfab,0x17c1,0x17c1,0x17c1,0xfae,0xfb1,0xfb1,
+0xfb1,0xfb1,0xfb1,0xfb1,0x33,0x33,0xa17,0xa17,0x33,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,
+0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0x33,0x33,0x33,0xa1d,0xa1d,
+0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,
+0xa1d,0xa1d,0x33,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0x33,0xa1d,0x33,0x33,
+0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0x33,0x33,0x33,0xa11,0x33,0x33,0x33,0x33,0xa0e,
+0xa17,0xa17,0xa0e,0xa0e,0xa0e,0x33,0xa0e,0x33,0xa17,0xa17,0xa1a,0xa17,0xa1a,0xa1a,0xa1a,0xa0e,
+0x33,0x33,0x33,0x33,0x33,0x33,0x14f1,0x14f1,0x14f1,0x14f1,0x14f1,0x14f1,0x14f1,0x14f1,0x14f1,0x14f1,
+0x33,0x33,0xa17,0xa17,0xa14,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,
+0x36,0x462,0x462,0x462,0x462,0x462,0x462,0x462,0x462,0x462,0x462,0x462,0x462,0x462,0x462,0x462,
+0x462,0x462,0x462,0x462,0x462,0x462,0x462,0x462,0x462,0x462,0x462,0x462,0x462,0x462,0x462,0x462,
+0x462,0x44d,0x462,0x45f,0x44d,0x44d,0x44d,0x44d,0x44d,0x44d,0x453,0x36,0x36,0x36,0x36,0x44a,
+0x468,0x468,0x468,0x468,0x468,0x462,0x465,0x450,0x450,0x450,0x450,0x450,0x450,0x44d,0x450,0x456,
+0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x459,0x459,0x36,0x36,0x36,0x36,
0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,
-0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x39,0x459,0x459,0x39,0x459,0x39,0x39,0x459,
-0x459,0x39,0x459,0x39,0x39,0x459,0x39,0x39,0x39,0x39,0x39,0x39,0x459,0x459,0x459,0x459,
-0x39,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x39,0x459,0x459,0x459,0x39,0x459,0x39,0x459,
-0x39,0x39,0x459,0x459,0x39,0x459,0x459,0x459,0x459,0x44d,0x459,0x456,0x44d,0x44d,0x44d,0x44d,
-0x44d,0x44d,0x39,0x44d,0x44d,0x459,0x39,0x39,0x462,0x462,0x462,0x462,0x462,0x39,0x45f,0x39,
-0x450,0x450,0x450,0x450,0x450,0x44d,0x39,0x39,0x453,0x453,0x453,0x453,0x453,0x453,0x453,0x453,
-0x453,0x453,0x39,0x39,0x45c,0x45c,0x13cb,0x13cb,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,
+0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x39,0x477,0x477,0x39,
+0x477,0x39,0x39,0x477,0x477,0x39,0x477,0x39,0x39,0x477,0x39,0x39,0x39,0x39,0x39,0x39,
+0x477,0x477,0x477,0x477,0x39,0x477,0x477,0x477,0x477,0x477,0x477,0x477,0x39,0x477,0x477,0x477,
+0x39,0x477,0x39,0x477,0x39,0x39,0x477,0x477,0x39,0x477,0x477,0x477,0x477,0x46b,0x477,0x474,
+0x46b,0x46b,0x46b,0x46b,0x46b,0x46b,0x39,0x46b,0x46b,0x477,0x39,0x39,0x480,0x480,0x480,0x480,
+0x480,0x39,0x47d,0x39,0x46e,0x46e,0x46e,0x46e,0x46e,0x46b,0x39,0x39,0x471,0x471,0x471,0x471,
+0x471,0x471,0x471,0x471,0x471,0x471,0x39,0x39,0x47a,0x47a,0x13fe,0x13fe,0x39,0x39,0x39,0x39,
0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,
-0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x96f,0x96f,0x96f,0x972,0x96f,0x96f,0x96f,0x96f,
-0x3c,0x96f,0x96f,0x96f,0x96f,0x972,0x96f,0x96f,0x96f,0x96f,0x972,0x96f,0x96f,0x96f,0x96f,0x972,
-0x96f,0x96f,0x96f,0x96f,0x972,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,
-0x96f,0x972,0xa0b,0xf8d,0xf8d,0x3c,0x3c,0x3c,0x3c,0x93c,0x93c,0x93f,0x93c,0x93f,0x93f,0x948,
-0x93f,0x948,0x93c,0x93c,0x93c,0x93c,0x93c,0x969,0x93c,0x93f,0x942,0x942,0x945,0x94e,0x942,0x942,
-0x96f,0x96f,0x96f,0x96f,0x12f0,0x12ea,0x12ea,0x12ea,0x93c,0x93c,0x93c,0x93f,0x93c,0x93c,0x9ff,0x93c,
-0x3c,0x93c,0x93c,0x93c,0x93c,0x93f,0x93c,0x93c,0x93c,0x93c,0x93f,0x93c,0x93c,0x93c,0x93c,0x93f,
-0x93c,0x93c,0x93c,0x93c,0x93f,0x93c,0x9ff,0x9ff,0x9ff,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,
-0x9ff,0x93f,0x9ff,0x9ff,0x9ff,0x3c,0xa08,0xa08,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa02,0xa05,
-0xa05,0xa05,0xa05,0xa05,0xa05,0x3c,0xf84,0xa05,0xd89,0xd89,0xf87,0xf8a,0xf84,0x110d,0x110d,0x110d,
-0x110d,0x12ed,0x12ed,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,
+0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x990,0x990,0x990,0x993,
+0x990,0x990,0x990,0x990,0x3c,0x990,0x990,0x990,0x990,0x993,0x990,0x990,0x990,0x990,0x993,0x990,
+0x990,0x990,0x990,0x993,0x990,0x990,0x990,0x990,0x993,0x990,0x990,0x990,0x990,0x990,0x990,0x990,
+0x990,0x990,0x990,0x990,0x990,0x993,0xa2c,0xfbd,0xfbd,0x3c,0x3c,0x3c,0x3c,0x95d,0x95d,0x960,
+0x95d,0x960,0x960,0x969,0x960,0x969,0x95d,0x95d,0x95d,0x95d,0x95d,0x98a,0x95d,0x960,0x963,0x963,
+0x966,0x96f,0x963,0x963,0x990,0x990,0x990,0x990,0x132c,0x1326,0x1326,0x1326,0x95d,0x95d,0x95d,0x960,
+0x95d,0x95d,0xa20,0x95d,0x3c,0x95d,0x95d,0x95d,0x95d,0x960,0x95d,0x95d,0x95d,0x95d,0x960,0x95d,
+0x95d,0x95d,0x95d,0x960,0x95d,0x95d,0x95d,0x95d,0x960,0x95d,0xa20,0xa20,0xa20,0x95d,0x95d,0x95d,
+0x95d,0x95d,0x95d,0x95d,0xa20,0x960,0xa20,0xa20,0xa20,0x3c,0xa29,0xa29,0xa26,0xa26,0xa26,0xa26,
+0xa26,0xa26,0xa23,0xa26,0xa26,0xa26,0xa26,0xa26,0xa26,0x3c,0xfb4,0xa26,0xdbc,0xdbc,0xfb7,0xfba,
+0xfb4,0x113d,0x113d,0x113d,0x113d,0x1329,0x1329,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,
0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,
-0x3c,0x3c,0x3c,0x3c,0x468,0x468,0x468,0x468,0x468,0x468,0x3f,0x13d1,0x3f,0x3f,0x3f,0x3f,
-0x3f,0x13d1,0x3f,0x3f,0x465,0x465,0x465,0x465,0x465,0x465,0x465,0x465,0x465,0x465,0x465,0x465,
-0x465,0x465,0x465,0x465,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xd98,0xa35,0x42,0xa35,0xa35,
-0xa35,0xa35,0x42,0x42,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0x42,0xa35,0x42,0xa35,0xa35,
-0xa35,0xa35,0x42,0x42,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xd98,0xa35,0x42,0xa35,0xa35,
-0xa35,0xa35,0x42,0x42,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,
-0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xd98,0xa35,0x42,0xa35,0xa35,0xa35,0xa35,0x42,0x42,
-0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0x42,0xa35,0x42,0xa35,0xa35,0xa35,0xa35,0x42,0x42,
-0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xd98,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0x42,
-0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xd98,
-0xa35,0x42,0xa35,0xa35,0xa35,0xa35,0x42,0x42,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xd98,
-0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,
-0xa35,0xa35,0xa35,0x42,0x42,0x12f3,0x12f3,0xd92,0xd95,0xa2f,0xa38,0xa2c,0xa2c,0xa2c,0xa2c,0xa38,
-0xa38,0xa32,0xa32,0xa32,0xa32,0xa32,0xa32,0xa32,0xa32,0xa32,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,
-0xa29,0xa29,0xa29,0xa29,0xa29,0x42,0x42,0x42,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,
-0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0x16da,0x45,0x45,
-0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x45,0x45,0xa4d,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,
-0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,
-0xa50,0xa50,0xa50,0xa4a,0xa47,0x48,0x48,0x48,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,
-0xa56,0xa56,0xa56,0xa53,0xa53,0xa53,0xa56,0xa56,0xa56,0x14c4,0x14c4,0x14c4,0x14c4,0x14c4,0x14c4,0x14c4,
-0x14c4,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa59,0xa77,
-0xa77,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5f,0xa5c,0xa6e,0xa6e,0xa71,0xa7a,
-0xa68,0xa65,0xa6e,0xa6b,0xa7a,0xcb1,0x4e,0x4e,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,
-0xa74,0xa74,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,
-0xcb4,0xcb4,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0xa89,0xa89,0xb07,0xb0a,0xa8f,0xb04,0xa8c,0xa89,
-0xa92,0xaa1,0xa95,0xaa4,0xaa4,0xaa4,0xa80,0x51,0xa98,0xa98,0xa98,0xa98,0xa98,0xa98,0xa98,0xa98,
-0xa98,0xa98,0x51,0x51,0x51,0x51,0x51,0x51,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,
-0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,
-0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,
-0xa9b,0xa83,0xfae,0x51,0x51,0x51,0x51,0x51,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,
-0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x486,0x486,0x486,0x486,0x486,0x486,0x486,0x486,
-0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x486,0x486,0x486,0x486,0x486,0x486,0x54,0x54,
-0x489,0x489,0x489,0x489,0x489,0x489,0x54,0x54,0x486,0x486,0x486,0x486,0x486,0x486,0x486,0x486,
-0x54,0x489,0x54,0x489,0x54,0x489,0x54,0x489,0x486,0x486,0x486,0x486,0x486,0x486,0x486,0x486,
-0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x486,0x486,0x486,0x486,0x486,0x486,0x486,0x486,
-0x486,0x486,0x486,0x486,0x486,0x486,0x54,0x54,0x486,0x486,0x486,0x486,0x486,0x486,0x486,0x486,
-0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x486,0x486,0x486,0x486,0x486,0x54,0x486,0x486,
-0x489,0x489,0x489,0x489,0x489,0x480,0x486,0x480,0x480,0x47d,0x486,0x486,0x486,0x54,0x486,0x486,
-0x489,0x489,0x489,0x489,0x489,0x47d,0x47d,0x47d,0x486,0x486,0x486,0x486,0x54,0x54,0x486,0x486,
-0x489,0x489,0x489,0x489,0x54,0x47d,0x47d,0x47d,0x486,0x486,0x486,0x486,0x486,0x486,0x486,0x486,
-0x489,0x489,0x489,0x489,0x489,0x47d,0x47d,0x47d,0x54,0x54,0x486,0x486,0x486,0x54,0x486,0x486,
-0x489,0x489,0x489,0x489,0x489,0x483,0x480,0x54,0xb7c,0xb7f,0xb7f,0xb7f,0xfb7,0x57,0x14a0,0x14a0,
-0x14a0,0x14a0,0x492,0x492,0x492,0x492,0x492,0x492,0x4dd,0xb91,0x5a,0x5a,0x699,0x4dd,0x4dd,0x4dd,
-0x4dd,0x4dd,0x4e3,0x4f5,0x4e3,0x4ef,0x4e9,0x69c,0x4da,0x696,0x696,0x696,0x696,0x4da,0x4da,0x4da,
-0x4da,0x4da,0x4e0,0x4f2,0x4e0,0x4ec,0x4e6,0x5a,0xda1,0xda1,0xda1,0xda1,0xda1,0x12f6,0x12f6,0x12f6,
-0x12f6,0x12f6,0x12f6,0x12f6,0x12f6,0x5a,0x5a,0x5a,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,
-0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x504,0x504,0x504,0x504,0x504,0x504,0x504,0x504,
-0x504,0x504,0x504,0x504,0x504,0x501,0x501,0x501,0x501,0x504,0xab6,0xab6,0xb97,0xb9d,0xb9d,0xb9a,
-0xb9a,0xb9a,0xb9a,0xda7,0xebe,0xebe,0xebe,0xebe,0x10f8,0x60,0x60,0x60,0x60,0x60,0x60,0x60,
-0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x534,0x534,0x534,0xabf,0xec7,0xfbd,0xfbd,0xfbd,
-0xfbd,0x1254,0x16e0,0x16e0,0x63,0x63,0x63,0x63,0x6c3,0x6c3,0x6c3,0x6c3,0x6c6,0x6c6,0x6c6,0x6c6,
-0x6c6,0x6c6,0x540,0x540,0x53d,0x53d,0x53d,0x53d,0x567,0x567,0x567,0x567,0x567,0xac8,0xac8,0x66,
-0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,
-0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x56a,0x56a,0x56a,0x56a,0x56a,0x56a,0x56a,0x56a,
-0x56a,0x56a,0x56a,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,
-0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,
-0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,
-0xae3,0xae3,0x6c,0xae3,0xae3,0xae3,0xae3,0xae6,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,
-0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae6,0x6c,0x6c,0x6c,0x6c,
-0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,
-0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0x6f,0x6f,
-0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x75,0x7fb,0x7f5,0x7fb,0x7f5,0x7fb,0x7f5,0x7fb,
-0x7f5,0x7fb,0x7f5,0x7f5,0x7f8,0x7f5,0x7f8,0x7f5,0x7f8,0x7f5,0x7f8,0x7f5,0x7f8,0x7f5,0x7f8,0x7f5,
-0x7f8,0x7f5,0x7f8,0x7f5,0x7f8,0x7f5,0x7f8,0x7f5,0x7f5,0x7f5,0x7f5,0x7fb,0x7f5,0x7fb,0x7f5,0x7fb,
-0x7f5,0x7f5,0x7f5,0x7f5,0x7f5,0x7f5,0x7fb,0x7f5,0x7f5,0x7f5,0x7f5,0x7f5,0x7f8,0xc3f,0xc3f,0x75,
-0x75,0x90f,0x90f,0x8d9,0x8d9,0x7fe,0x801,0xc3c,0x78,0x78,0x78,0x78,0x78,0x813,0x813,0x813,
-0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,
-0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x10e6,0x18c3,0x78,0x7b,0x816,0x816,0x816,
-0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x7b,
-0x8e2,0x8e2,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,
-0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,
-0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0x1389,0x1389,0x1389,0x7e,0x7e,0x7e,0x7e,0x7e,
-0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,
-0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0xd41,0xd41,0x81,
-0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,
-0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x81,
-0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0x84,0x84,0x84,
-0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,
-0xb01,0xc48,0xb01,0xb01,0xb01,0xc48,0xb01,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
-0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,
-0x993,0x993,0x993,0x993,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
-0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,
-0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
-0x8d,0x8d,0x8d,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x8d,0x8d,0x8d,0x8d,0x8d,0xad4,0x5b5,0x5bb,
-0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5b8,0x5bb,0x5bb,0x5bb,0x5bb,0x5bb,0x5bb,
-0x5bb,0x5bb,0x5bb,0x5bb,0x5bb,0x5bb,0x5bb,0x8d,0x5bb,0x5bb,0x5bb,0x5bb,0x5bb,0x8d,0x5bb,0x8d,
-0x5bb,0x5bb,0x8d,0x5bb,0x5bb,0x8d,0x5bb,0x5bb,0x5bb,0x5bb,0x5bb,0x5bb,0x5bb,0x5bb,0x5bb,0x5be,
-0x5d6,0x5d0,0x5d6,0x5d0,0x5d3,0x5d9,0x5d6,0x5d0,0x5d3,0x5d9,0x5d6,0x5d0,0x5d3,0x5d9,0x5d6,0x5d0,
-0x1308,0x1308,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
-0x90,0x90,0x90,0x5d6,0x5d0,0x5d3,0x5d9,0x5d6,0x5d0,0x5d6,0x5d0,0x5d6,0x5d0,0x5d6,0x5d6,0x5d0,
-0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
-0x5d3,0x5d0,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d0,0x5d3,0x5d0,0x5d0,0x5d3,0x5d3,0x5d0,0x5d0,
-0x5d0,0x5d0,0x5d0,0x5d3,0x5d0,0x5d0,0x5d3,0x5d0,0x5d3,0x5d3,0x5d3,0x5d0,0x5d3,0x5d3,0x5d3,0x5d3,
-0x90,0x90,0x5d3,0x5d3,0x5d3,0x5d3,0x5d0,0x5d0,0x5d3,0x5d0,0x5d0,0x5d0,0x5d0,0x5d3,0x5d0,0x5d0,
-0x5d0,0x5d0,0x5d0,0x5d3,0x5d3,0x5d3,0x5d0,0x5d0,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
-0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,
-0x5d6,0x5d6,0x930,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5cd,0x5cd,0xbd3,0xd59,0x90,0x90,
-0x837,0x849,0x846,0x849,0x846,0xc5d,0xc5d,0xd4d,0xd4a,0x83a,0x83a,0x83a,0x83a,0x84c,0x84c,0x84c,
-0x864,0x867,0x876,0x93,0x86a,0x86d,0x879,0x879,0x861,0x858,0x852,0x858,0x852,0x858,0x852,0x855,
-0x855,0x870,0x870,0x873,0x870,0x870,0x870,0x93,0x870,0x85e,0x85b,0x855,0x93,0x93,0x93,0x93,
-0x5e2,0x5ee,0x5e2,0xbd6,0x5e2,0x96,0x5e2,0x5ee,0x5e2,0x5ee,0x5e2,0x5ee,0x5e2,0x5ee,0x5e2,0x5ee,
-0x5ee,0x5eb,0x5e5,0x5e8,0x5ee,0x5eb,0x5e5,0x5e8,0x5ee,0x5eb,0x5e5,0x5e8,0x5ee,0x5eb,0x5e5,0x5eb,
-0x5e5,0x5eb,0x5e5,0x5e8,0x5ee,0x5eb,0x5e5,0x5eb,0x5e5,0x5eb,0x5e5,0x5eb,0x5e5,0x96,0x96,0x5df,
-0x735,0x738,0x74d,0x750,0x72f,0x738,0x738,0x9c,0x717,0x71a,0x71a,0x71a,0x71a,0x717,0x717,0x9c,
-0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0xad7,0xad7,0xad7,0x996,0x711,0x5f1,0x5f1,
-0x9c,0x75f,0x73e,0x72f,0x738,0x735,0x72f,0x741,0x732,0x72c,0x72f,0x74d,0x744,0x73b,0x75c,0x72f,
-0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x74a,0x747,0x74d,0x74d,0x74d,0x75f,
-0x720,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,
-0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x9c,
-0x9c,0x9c,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x9c,0x9c,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,
-0x9c,0x9c,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x9c,0x9c,0x71d,0x71d,0x71d,0x9c,0x9c,0x9c,
-0xb1f,0xb1f,0xb1f,0xb1f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x1860,0x1860,0x1860,
-0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,
-0xb25,0xb25,0xb25,0xa2,0xa2,0xa2,0xa2,0xa2,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,
-0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,
-0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xa5,0xa5,
-0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xa8,
-0xa8,0xfc9,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,
-0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0x16e6,0x16e6,0x16e6,0x16e6,0x16e6,0x16e6,0x16e6,0x16e6,
-0x16e6,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,
-0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,
-0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xab,0xb4f,0xb4f,
-0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb52,0xb52,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,
-0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,
-0xb4f,0xb4f,0xb4f,0xb4f,0xb52,0xab,0xb52,0xb52,0xab,0xab,0xb52,0xab,0xab,0xb52,0xb52,0xab,
-0xab,0xb52,0xb52,0xb52,0xb52,0xab,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb4f,0xb4f,
-0xb4f,0xb4f,0xab,0xb4f,0xab,0xb4f,0xb4f,0xb4f,0xb4f,0xcd2,0xb4f,0xb4f,0xab,0xb4f,0xb4f,0xb4f,
-0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,
-0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb4f,0xb4f,0xb4f,0xb4f,0xb52,0xb52,0xab,0xb52,
-0xb52,0xb52,0xb52,0xab,0xab,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xab,0xb52,0xb52,
-0xb52,0xb52,0xb52,0xb52,0xb52,0xab,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,
-0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,
-0xb52,0xb52,0xab,0xb52,0xb52,0xb52,0xb52,0xab,0xb52,0xb52,0xb52,0xb52,0xb52,0xab,0xb52,0xab,
-0xab,0xab,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xab,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,
-0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xdbf,0xdbf,0xab,0xab,0xb52,0xb52,0xb52,0xb52,
-0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,
-0xb52,0xb52,0xb52,0xb52,0xb4f,0xb4f,0xb4f,0xb49,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xed6,0xed3,
-0xab,0xab,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,
-0xb4c,0xb4c,0xb4c,0xb4c,0xae,0xb58,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,
+0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x486,0x486,0x486,0x486,0x486,0x486,0x3f,0x1404,
+0x3f,0x3f,0x3f,0x3f,0x3f,0x1404,0x3f,0x3f,0x483,0x483,0x483,0x483,0x483,0x483,0x483,0x483,
+0x483,0x483,0x483,0x483,0x483,0x483,0x483,0x483,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xdcb,
+0xa56,0x42,0xa56,0xa56,0xa56,0xa56,0x42,0x42,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0x42,
+0xa56,0x42,0xa56,0xa56,0xa56,0xa56,0x42,0x42,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xdcb,
+0xa56,0x42,0xa56,0xa56,0xa56,0xa56,0x42,0x42,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,
+0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xdcb,0xa56,0x42,0xa56,0xa56,
+0xa56,0xa56,0x42,0x42,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0x42,0xa56,0x42,0xa56,0xa56,
+0xa56,0xa56,0x42,0x42,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xdcb,0xa56,0xa56,0xa56,0xa56,
+0xa56,0xa56,0xa56,0x42,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,
+0xa56,0xa56,0xa56,0xdcb,0xa56,0x42,0xa56,0xa56,0xa56,0xa56,0x42,0x42,0xa56,0xa56,0xa56,0xa56,
+0xa56,0xa56,0xa56,0xdcb,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,
+0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0x42,0x42,0x132f,0x132f,0xdc5,0xdc8,0xa50,0xa59,0xa4d,
+0xa4d,0xa4d,0xa4d,0xa59,0xa59,0xa53,0xa53,0xa53,0xa53,0xa53,0xa53,0xa53,0xa53,0xa53,0xa4a,0xa4a,
+0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0x42,0x42,0x42,0xa5c,0xa5c,0xa5c,0xa5c,
+0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,
+0xa5c,0x170a,0x45,0x45,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x45,0x45,0xa6e,0xa71,0xa71,0xa71,
+0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,
+0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa6b,0xa68,0x48,0x48,0x48,0xa77,0xa77,0xa77,0xa77,
+0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa74,0xa74,0xa74,0xa77,0xa77,0xa77,0x14f4,0x14f4,0x14f4,
+0x14f4,0x14f4,0x14f4,0x14f4,0x14f4,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0xa98,0xa98,0xa98,0xa98,
+0xa98,0xa98,0xa7a,0xa98,0xa98,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa80,0xa7d,
+0xa8f,0xa8f,0xa92,0xa9b,0xa89,0xa86,0xa8f,0xa8c,0xa9b,0xcde,0x4e,0x4e,0xa95,0xa95,0xa95,0xa95,
+0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0xce1,0xce1,0xce1,0xce1,
+0xce1,0xce1,0xce1,0xce1,0xce1,0xce1,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0xaaa,0xaaa,0xb2e,0xb31,
+0xab0,0xb2b,0xaad,0xaaa,0xab3,0xac2,0xab6,0xac5,0xac5,0xac5,0xaa1,0x51,0xab9,0xab9,0xab9,0xab9,
+0xab9,0xab9,0xab9,0xab9,0xab9,0xab9,0x51,0x51,0x51,0x51,0x51,0x51,0xabc,0xabc,0xabc,0xabc,
+0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,
+0xabc,0xabc,0xabc,0xabc,0x1929,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0xabc,0xabc,0xabc,0xabc,
+0xabc,0xabc,0xabc,0xabc,0xabc,0xaa4,0xfde,0x51,0x51,0x51,0x51,0x51,0x1194,0x1194,0x1194,0x1194,
+0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x4a4,0x4a4,0x4a4,0x4a4,
+0x4a4,0x4a4,0x4a4,0x4a4,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a4,0x4a4,0x4a4,0x4a4,
+0x4a4,0x4a4,0x54,0x54,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x54,0x54,0x4a4,0x4a4,0x4a4,0x4a4,
+0x4a4,0x4a4,0x4a4,0x4a4,0x54,0x4a7,0x54,0x4a7,0x54,0x4a7,0x54,0x4a7,0x4a4,0x4a4,0x4a4,0x4a4,
+0x4a4,0x4a4,0x4a4,0x4a4,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a4,0x4a4,0x4a4,0x4a4,
+0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x54,0x54,0x4a4,0x4a4,0x4a4,0x4a4,
+0x4a4,0x4a4,0x4a4,0x4a4,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a4,0x4a4,0x4a4,0x4a4,
+0x4a4,0x54,0x4a4,0x4a4,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x49e,0x4a4,0x49e,0x49e,0x49b,0x4a4,0x4a4,
+0x4a4,0x54,0x4a4,0x4a4,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x49b,0x49b,0x49b,0x4a4,0x4a4,0x4a4,0x4a4,
+0x54,0x54,0x4a4,0x4a4,0x4a7,0x4a7,0x4a7,0x4a7,0x54,0x49b,0x49b,0x49b,0x4a4,0x4a4,0x4a4,0x4a4,
+0x4a4,0x4a4,0x4a4,0x4a4,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x49b,0x49b,0x49b,0x54,0x54,0x4a4,0x4a4,
+0x4a4,0x54,0x4a4,0x4a4,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a1,0x49e,0x54,0xba3,0xba6,0xba6,0xba6,
+0xfe7,0x57,0x14d0,0x14d0,0x14d0,0x14d0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4fb,0xbb8,0x5a,0x5a,
+0x6ba,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x501,0x513,0x501,0x50d,0x507,0x6bd,0x4f8,0x6b7,0x6b7,0x6b7,
+0x6b7,0x4f8,0x4f8,0x4f8,0x4f8,0x4f8,0x4fe,0x510,0x4fe,0x50a,0x504,0x5a,0xdd4,0xdd4,0xdd4,0xdd4,
+0xdd4,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x5a,0x5a,0x5a,0x5d,0x5d,0x5d,0x5d,
+0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x522,0x522,0x522,0x522,
+0x522,0x522,0x522,0x522,0x522,0x522,0x522,0x522,0x522,0x51f,0x51f,0x51f,0x51f,0x522,0xad7,0xada,
+0xbbe,0xbc4,0xbc4,0xbc1,0xbc1,0xbc1,0xbc1,0xdda,0xeee,0xeee,0xeee,0xeee,0x1128,0x60,0x60,0x60,
+0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x552,0x552,0x552,0xae3,
+0xef7,0xfed,0xfed,0xfed,0xfed,0x1287,0x1710,0x1710,0x63,0x63,0x63,0x63,0x6e4,0x6e4,0x6e4,0x6e4,
+0x6e7,0x6e7,0x6e7,0x6e7,0x6e7,0x6e7,0x55e,0x55e,0x55b,0x55b,0x55b,0x55b,0x585,0x585,0x585,0x585,
+0x585,0xaef,0xaef,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,
+0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x588,0x588,0x588,0x588,
+0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,
+0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0xb0a,0xb0a,0xb0a,0xb0a,
+0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,
+0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0x6c,0xb0a,0xb0a,0xb0a,0xb0a,0xb0d,0xb0a,0xb0a,0xb0a,0xb0a,
+0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0d,
+0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0xb10,0xb10,0xb10,0xb10,
+0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,
+0xb10,0xb10,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x75,0x81c,0x816,0x81c,
+0x816,0x81c,0x816,0x81c,0x816,0x81c,0x816,0x816,0x819,0x816,0x819,0x816,0x819,0x816,0x819,0x816,
+0x819,0x816,0x819,0x816,0x819,0x816,0x819,0x816,0x819,0x816,0x819,0x816,0x816,0x816,0x816,0x81c,
+0x816,0x81c,0x816,0x81c,0x816,0x816,0x816,0x816,0x816,0x816,0x81c,0x816,0x816,0x816,0x816,0x816,
+0x819,0xc6c,0xc6c,0x75,0x75,0x930,0x930,0x8fa,0x8fa,0x81f,0x822,0xc69,0x78,0x78,0x78,0x78,
+0x78,0x834,0x834,0x834,0x834,0x834,0x834,0x834,0x834,0x834,0x834,0x834,0x834,0x834,0x834,0x834,
+0x834,0x834,0x834,0x834,0x834,0x834,0x834,0x834,0x834,0x834,0x834,0x834,0x834,0x1116,0x18f3,0x19d7,
+0x7b,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,
+0x837,0x837,0x837,0x7b,0x903,0x903,0x906,0x906,0x906,0x906,0x906,0x906,0x906,0x906,0x906,0x906,
+0x906,0x906,0x906,0x906,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,
+0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0x13c5,0x13c5,0x13c5,0x7e,
+0x7e,0x7e,0x7e,0x7e,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,
+0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,
+0x840,0xd71,0xd71,0x81,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,
+0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,
+0x846,0x846,0x846,0x81,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,
+0xb22,0x84,0x84,0x84,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,
+0xb28,0xb28,0xb28,0xb28,0xb28,0xc75,0xb28,0xb28,0xb28,0xc75,0xb28,0x87,0x87,0x87,0x87,0x87,
+0x87,0x87,0x87,0x87,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,
+0x11bb,0x11bb,0x11bb,0x11bb,0x9b4,0x9b4,0x9b4,0x9b4,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
+0x8a,0x8a,0x8a,0x8a,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,
+0x1230,0x1230,0x1230,0x1230,0x5e5,0x5e5,0x5e5,0x5e5,0x5e5,0x5e5,0x5e5,0x8d,0x8d,0x8d,0x8d,0x8d,
+0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x8d,0x8d,0x8d,0x8d,
+0x8d,0xafb,0x5d6,0x5dc,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5d9,0x5dc,0x5dc,
+0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x8d,0x5dc,0x5dc,0x5dc,0x5dc,
+0x5dc,0x8d,0x5dc,0x8d,0x5dc,0x5dc,0x8d,0x5dc,0x5dc,0x8d,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,
+0x5dc,0x5dc,0x5dc,0x5df,0x5f7,0x5f1,0x5f7,0x5f1,0x5f4,0x5fa,0x5f7,0x5f1,0x5f4,0x5fa,0x5f7,0x5f1,
+0x5f4,0x5fa,0x5f7,0x5f1,0x1344,0x1344,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
+0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x5f7,0x5f1,0x5f4,0x5fa,0x5f7,0x5f1,0x5f7,0x5f1,0x5f7,
+0x5f1,0x5f7,0x5f7,0x5f1,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
+0x90,0x90,0x90,0x90,0x5f4,0x5f1,0x5f4,0x5f4,0x5f4,0x5f4,0x5f4,0x5f4,0x5f1,0x5f4,0x5f1,0x5f1,
+0x5f4,0x5f4,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f4,0x5f1,0x5f1,0x5f4,0x5f1,0x5f4,0x5f4,0x5f4,0x5f1,
+0x5f4,0x5f4,0x5f4,0x5f4,0x90,0x90,0x5f4,0x5f4,0x5f4,0x5f4,0x5f1,0x5f1,0x5f4,0x5f1,0x5f1,0x5f1,
+0x5f1,0x5f4,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f4,0x5f4,0x5f4,0x5f1,0x5f1,0x90,0x90,0x90,0x90,
+0x90,0x90,0x90,0x90,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,
+0xb43,0xb43,0xb43,0xb43,0x5f7,0x5f7,0x951,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5ee,0x5ee,
+0xbfd,0xd8c,0x90,0x90,0x858,0x86a,0x867,0x86a,0x867,0xc8a,0xc8a,0xd7d,0xd7a,0x85b,0x85b,0x85b,
+0x85b,0x86d,0x86d,0x86d,0x885,0x888,0x897,0x93,0x88b,0x88e,0x89a,0x89a,0x882,0x879,0x873,0x879,
+0x873,0x879,0x873,0x876,0x876,0x891,0x891,0x894,0x891,0x891,0x891,0x93,0x891,0x87f,0x87c,0x876,
+0x93,0x93,0x93,0x93,0x603,0x60f,0x603,0xc00,0x603,0x96,0x603,0x60f,0x603,0x60f,0x603,0x60f,
+0x603,0x60f,0x603,0x60f,0x60f,0x60c,0x606,0x609,0x60f,0x60c,0x606,0x609,0x60f,0x60c,0x606,0x609,
+0x60f,0x60c,0x606,0x60c,0x606,0x60c,0x606,0x609,0x60f,0x60c,0x606,0x60c,0x606,0x60c,0x606,0x60c,
+0x606,0x96,0x96,0x600,0x756,0x759,0x76e,0x771,0x750,0x759,0x759,0x9c,0x738,0x73b,0x73b,0x73b,
+0x73b,0x738,0x738,0x9c,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0xafe,0xafe,0xafe,
+0x9b7,0x732,0x612,0x612,0x9c,0x780,0x75f,0x750,0x759,0x756,0x750,0x762,0x753,0x74d,0x750,0x76e,
+0x765,0x75c,0x77d,0x750,0x77a,0x77a,0x77a,0x77a,0x77a,0x77a,0x77a,0x77a,0x77a,0x77a,0x76b,0x768,
+0x76e,0x76e,0x76e,0x780,0x741,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,
+0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,
+0x73e,0x73e,0x73e,0x9c,0x9c,0x9c,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x9c,0x9c,0x73e,0x73e,
+0x73e,0x73e,0x73e,0x73e,0x9c,0x9c,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x9c,0x9c,0x73e,0x73e,
+0x73e,0x9c,0x9c,0x9c,0xb46,0xb46,0xb46,0xb46,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,
+0x9f,0x1890,0x1890,0x1890,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,
+0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xa2,0xa2,0xa2,0xa2,0xa2,0x165c,0x165c,0x165c,0x165c,
+0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0xb55,0xb55,0xb55,0xb55,
+0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,
+0xb55,0xb55,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xb61,0xb61,0xb61,0xb61,
+0xb61,0xb61,0xb61,0xa8,0xa8,0xff9,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,
+0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0x1716,0x1716,0x1716,0x1716,
+0x1716,0x1716,0x1716,0x1716,0x1716,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,
+0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xb79,0xb79,0xb79,0xb79,
+0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,
+0xb76,0xab,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb79,0xb79,0xb76,0xb76,
+0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,
+0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb79,0xab,0xb79,0xb79,0xab,0xab,0xb79,0xab,
+0xab,0xb79,0xb79,0xab,0xab,0xb79,0xb79,0xb79,0xb79,0xab,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,
+0xb79,0xb79,0xb76,0xb76,0xb76,0xb76,0xab,0xb76,0xab,0xb76,0xb76,0xb76,0xb76,0xd02,0xb76,0xb76,
+0xab,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb79,0xb79,0xb79,0xb79,
+0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb76,0xb76,0xb76,0xb76,
+0xb79,0xb79,0xab,0xb79,0xb79,0xb79,0xb79,0xab,0xab,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,
+0xb79,0xab,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xab,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,
+0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,
+0xb76,0xb76,0xb76,0xb76,0xb79,0xb79,0xab,0xb79,0xb79,0xb79,0xb79,0xab,0xb79,0xb79,0xb79,0xb79,
+0xb79,0xab,0xb79,0xab,0xab,0xab,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xab,0xb76,0xb76,
+0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xdef,0xdef,0xab,0xab,
+0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,
+0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb76,0xb76,0xb76,0xb70,0xb76,0xb76,0xb76,0xb76,
+0xb76,0xb76,0xf06,0xf03,0xab,0xab,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,
+0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xae,0xb7f,0xae,0xae,0xae,0xae,0xae,0xae,
0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,
-0xae,0xae,0xae,0xae,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,
-0xbe5,0xb1,0xbe5,0xbe5,0xbe5,0xbe5,0xbdf,0xbdf,0xbe2,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,
-0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbe8,0xbe8,0xbeb,0xc51,0xc51,0xb4,0xb4,0xb4,0xb4,0xb4,
-0xb4,0xb4,0xb4,0xb4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,
-0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf1,0xbf1,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,
-0xb7,0xb7,0xb7,0xb7,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,
-0xbfa,0xba,0xbfa,0xbfa,0xbfa,0xba,0xbf7,0xbf7,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,
-0xba,0xba,0xba,0xba,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,
-0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,0xce4,
-0xce4,0x14e2,0x14e2,0xbd,0xcd5,0xcd5,0xcd5,0xce1,0xce1,0xce1,0xce1,0xcd5,0xcd5,0xce1,0xce1,0xce1,
-0xbd,0xbd,0xbd,0xbd,0xce1,0xce1,0xcd5,0xce1,0xce1,0xce1,0xce1,0xce1,0xce1,0xcd8,0xcd8,0xcd8,
-0xbd,0xbd,0xbd,0xbd,0xcdb,0xbd,0xbd,0xbd,0xce7,0xce7,0xcde,0xcde,0xcde,0xcde,0xcde,0xcde,
-0xcde,0xcde,0xcde,0xcde,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,
-0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xc0,0xc0,0xcea,0xcea,0xcea,0xcea,0xcea,0xc0,0xc0,0xc0,
-0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,
-0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0xc3,0xc3,0x14e5,0x14e5,
-0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,
-0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0xc3,0xc3,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,
-0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,
-0x14e5,0x14e5,0xc3,0xc3,0xc3,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,
-0x14e5,0xc3,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x14e5,0x1863,0xc3,0xc3,0xc3,0xc3,0xc3,
-0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0x16e9,0x16e9,0x16e9,0x16e9,0xc3,0xc3,0xc3,0xc3,
-0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xd11,0xd11,0xd11,0xd11,
-0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xc6,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,
-0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xc6,
-0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,
-0xd11,0xd11,0xd11,0xc6,0xd11,0xd11,0xc6,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,
-0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xc6,0xc6,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,
-0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,
-0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,
-0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,
+0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,
+0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xb1,0xc0f,0xc0f,0xc0f,0xc0f,0xc09,0xc09,0xc0c,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,
+0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc12,0xc12,0xc15,0xc7e,0xc7e,0xb4,
+0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xc1e,0xc1e,0xc1e,0xc1e,0xc1e,0xc1e,0xc1e,0xc1e,
+0xc1e,0xc1e,0xc1e,0xc1e,0xc1e,0xc1e,0xc1e,0xc1e,0xc1e,0xc1e,0xc1b,0xc1b,0xb7,0xb7,0xb7,0xb7,
+0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,
+0xc24,0xc24,0xc24,0xc24,0xc24,0xba,0xc24,0xc24,0xc24,0xba,0xc21,0xc21,0xba,0xba,0xba,0xba,
+0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,
0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,
-0xd14,0xd14,0xd14,0xc9,0xc9,0xc9,0xc9,0xc9,0xd56,0xd56,0xd56,0xcc,0xcc,0xcc,0xcc,0xd50,
-0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,
-0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xcc,0xcc,0xcc,0xd53,0xd53,0xd53,0xd53,0xd53,
-0xd53,0xd53,0xd53,0xd53,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,
-0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,
-0xd1a,0xd1a,0xcf,0xd17,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,
-0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,
-0xd23,0xd23,0xd2,0xd2,0xd20,0xd20,0xd20,0xd20,0xd20,0xd20,0xd20,0xd20,0xd20,0xd20,0xd2,0xd2,
-0xd2,0xd2,0xd2,0xd2,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,
-0x1821,0x1821,0x1821,0x1821,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd5,0xd5,0xd26,0xd5,0xd26,0xd26,
-0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,
-0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd5,0xd26,0xd26,0xd5,0xd5,0xd5,0xd26,0xd5,0xd5,0xd26,
-0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,
-0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,
-0xdda,0xdda,0xdda,0xdda,0xdda,0xdda,0xdda,0xdda,0xdda,0xdda,0xdda,0x14e8,0x14e8,0x179a,0x179a,0xde,
-0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x135,0x135,0x135,0x135,
-0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,
-0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xde3,0xde3,0xde9,0xde9,0xde3,0xe1,0xe1,0xde6,0xde6,
-0x10f5,0x10f5,0x10f5,0x10f5,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,
-0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,
-0xfe4,0xfe4,0xfe4,0xfe4,0xfe4,0xfe4,0xfe4,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,
-0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14ee,0x1866,0x1866,0x1866,0x1866,0xe7,0x179d,0x1314,0x1137,0xee5,0xee5,
-0xdfe,0xdfb,0xdfe,0xdfb,0xdfb,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0x1140,0x113d,0x1140,0x113d,0x113a,
-0x113a,0x113a,0x13da,0x13d7,0xea,0xea,0xea,0xea,0xea,0xdf8,0xdf5,0xdf5,0xdf5,0xdf2,0xdf8,0xdf5,
-0xe01,0xe01,0xe01,0xe01,0xe01,0xe01,0xe01,0xe01,0xe01,0xe01,0xe01,0xe01,0xe01,0xe01,0xe01,0xe01,
-0xe01,0xe01,0xe01,0xe01,0xe01,0xe01,0xe01,0xed,0xed,0xed,0xed,0xed,0xed,0xed,0xed,0xed,
-0xe01,0xe01,0xe01,0xe01,0xe01,0xe01,0xe01,0xed,0xe01,0xe01,0xe01,0xe01,0xe01,0xe01,0xe01,0xed,
-0xe01,0xe01,0xe01,0xe01,0xe01,0xe01,0xe01,0xed,0xe01,0xe01,0xe01,0xe01,0xe01,0xe01,0xe01,0xed,
-0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,
-0xe04,0xe04,0xe04,0xe04,0xe04,0xe04,0xe04,0xe04,0xe04,0xe04,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,
-0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xf3,0x13dd,0xf3,0xf3,0xf3,0xf3,0xf3,0x13dd,0xf3,0xf3,
-0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,
-0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xf6,
-0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,
-0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xf6,
-0xe22,0xe16,0xe16,0xe16,0xf9,0xe16,0xe16,0xf9,0xf9,0xf9,0xf9,0xf9,0xe16,0xe16,0xe16,0xe16,
-0xe22,0xe22,0xe22,0xe22,0xf9,0xe22,0xe22,0xe22,0xf9,0xe22,0xe22,0xe22,0xe22,0xe22,0xe22,0xe22,
-0xe22,0xe22,0xe22,0xe22,0xe22,0xe22,0xe22,0xe22,0xe22,0xe22,0xe22,0xe22,0xe22,0xe22,0xe22,0xe22,
-0xf9,0xf9,0xf9,0xf9,0xe13,0xe13,0xe13,0xf9,0xf9,0xf9,0xf9,0xe19,0xe1c,0xe1c,0xe1c,0xe1c,
-0xe1c,0xe1c,0xe1c,0xe1c,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xe1f,0xe1f,0xe1f,0xe1f,
-0xe1f,0xe1f,0xe25,0xe25,0xe1c,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xe31,0xe31,0xe31,0xe31,
-0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0x1146,0x1146,0xfc,0xfc,0xfc,0xfc,0xe31,0xe31,0xe31,0xe31,
-0xe31,0xe34,0xe34,0xe34,0xe31,0xe31,0xe34,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,
-0xe31,0xe31,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,
-0xe2e,0xe2e,0x1143,0xfc,0xfc,0xfc,0xe2b,0xe2b,0xe3a,0xe3a,0xe3a,0xe3a,0xff,0xff,0xff,0xff,
-0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe37,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xff,0xff,
-0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x14f7,0x14fd,0x14fa,0x1845,0x17a0,0x1869,0x1869,0x1869,
-0x1869,0x1869,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,
+0xd14,0xd14,0xd14,0xd14,0xd14,0x1512,0x1512,0xbd,0xd05,0xd05,0xd05,0xd11,0xd11,0xd11,0xd11,0xd05,
+0xd05,0xd11,0xd11,0xd11,0xbd,0xbd,0xbd,0xbd,0xd11,0xd11,0xd05,0xd11,0xd11,0xd11,0xd11,0xd11,
+0xd11,0xd08,0xd08,0xd08,0xbd,0xbd,0xbd,0xbd,0xd0b,0xbd,0xbd,0xbd,0xd17,0xd17,0xd0e,0xd0e,
+0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,
+0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xc0,0xc0,0xd1a,0xd1a,0xd1a,0xd1a,
+0xd1a,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x1515,0x1515,0x1515,0x1515,
+0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,
+0xc3,0xc3,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,
+0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0xc3,0xc3,0x1515,0x1515,0x1515,0x1515,
+0x1515,0x1515,0x1515,0x1515,0x1515,0xc3,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1893,0x192c,
+0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0x1719,0x1719,0x1719,0x1719,
+0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0xc3,
+0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xc6,0xd41,0xd41,0xd41,
+0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,
+0xd41,0xd41,0xd41,0xc6,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,
+0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xc6,0xd41,0xd41,0xc6,0xd41,0xd41,0xd41,0xd41,0xd41,
+0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xc6,0xc6,0xd41,0xd41,0xd41,0xd41,
+0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,
+0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,
+0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xd44,0xd44,0xd44,0xd44,
+0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,
+0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xc9,0xc9,0xc9,0xc9,0xc9,0xd86,0xd86,0xd86,0xcc,
+0xcc,0xcc,0xcc,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,
+0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xcc,0xcc,0xcc,0xd83,
+0xd83,0xd83,0xd83,0xd83,0xd83,0xd83,0xd83,0xd83,0xd4a,0xd4a,0xd4a,0xd4a,0xd4a,0xd4a,0xd4a,0xd4a,
+0xd4a,0xd4a,0xd4a,0xd4a,0xd4a,0xd4a,0xd4a,0xd4a,0xd4a,0xd4a,0xd4a,0xd4a,0xd4a,0xd4a,0xd4a,0xd4a,
+0xd4a,0xd4a,0xd4a,0xd4a,0xd4a,0xd4a,0xcf,0xd47,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,
+0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,
+0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd2,0xd2,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,
+0xd50,0xd50,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,
+0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd5,0xd5,
+0xd56,0xd5,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,
+0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd5,0xd56,0xd56,0xd5,0xd5,0xd5,
+0xd56,0xd5,0xd5,0xd56,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,
+0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd8,0xd8,0xd8,0xd8,0xd8,
+0xd8,0xd8,0xd8,0xd8,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0x1518,
+0x1518,0x17ca,0x17ca,0xde,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,
+0x135,0x135,0x135,0x135,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,
+0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe13,0xe13,0xe19,0xe19,0xe13,
+0xe1,0xe1,0xe16,0xe16,0x1125,0x1125,0x1125,0x1125,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,
+0xe4,0xe4,0xe4,0xe4,0xc7b,0xc7b,0xc7b,0xc7b,0xc7b,0xc7b,0xc7b,0xc7b,0xc7b,0xc7b,0xc7b,0xc7b,
+0xc7b,0xc7b,0xc7b,0xc7b,0x1014,0x1014,0x1014,0x1014,0x1014,0x1014,0x1014,0x151b,0x151b,0x151b,0x151b,0x151b,
+0x151b,0x151b,0x151b,0x151b,0x151b,0x151b,0x151b,0x151b,0x151b,0x151e,0x1896,0x1896,0x1896,0x1896,0xe7,0x17cd,
+0x1350,0x1167,0xf15,0xf15,0xe2e,0xe2b,0xe2e,0xe2b,0xe2b,0xe22,0xe22,0xe22,0xe22,0xe22,0xe22,0x1170,
+0x116d,0x1170,0x116d,0x116a,0x116a,0x116a,0x140d,0x140a,0xea,0xea,0xea,0xea,0xea,0xe28,0xe25,0xe25,
+0xe25,0xe22,0xe28,0xe25,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,
+0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xed,0xed,0xed,0xed,0xed,
+0xed,0xed,0xed,0xed,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xed,0xe31,0xe31,0xe31,0xe31,
+0xe31,0xe31,0xe31,0xed,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xed,0xe31,0xe31,0xe31,0xe31,
+0xe31,0xe31,0xe31,0xed,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,
+0xe37,0xe37,0xe37,0xe37,0xe34,0xe34,0xe34,0xe34,0xe34,0xe34,0xe34,0xe34,0xe34,0xe34,0xf0,0xf0,
+0xf0,0xf0,0xf0,0xf0,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xf3,0x1410,0xf3,0xf3,0xf3,0xf3,
+0xf3,0x1410,0xf3,0xf3,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,
+0xe94,0xe94,0xe94,0xe94,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,
+0xe40,0xe40,0xe40,0xf6,0xe3d,0xe3d,0xe3d,0xe3d,0xe3d,0xe3d,0xe3d,0xe3d,0xe3d,0xe3d,0xe3d,0xe3d,
+0xe3d,0xe3d,0xe3d,0xe3d,0xe3d,0xe3d,0xe3d,0xe3d,0xe3d,0xe3d,0xe3d,0xe3d,0xe3d,0xe3d,0xe3d,0xe3d,
+0xe3d,0xe3d,0xe3d,0xf6,0xe52,0xe46,0xe46,0xe46,0xf9,0xe46,0xe46,0xf9,0xf9,0xf9,0xf9,0xf9,
+0xe46,0xe46,0xe46,0xe46,0xe52,0xe52,0xe52,0xe52,0xf9,0xe52,0xe52,0xe52,0xf9,0xe52,0xe52,0xe52,
+0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,
+0xe52,0xe52,0xe52,0xe52,0x1932,0x1932,0xf9,0xf9,0xe43,0xe43,0xe43,0xf9,0xf9,0xf9,0xf9,0xe49,
+0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0x192f,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,
+0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe55,0xe55,0xe4c,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,
+0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0x1176,0x1176,0xfc,0xfc,0xfc,0xfc,
+0xe61,0xe61,0xe61,0xe61,0xe61,0xe64,0xe64,0xe64,0xe61,0xe61,0xe64,0xe61,0xe61,0xe61,0xe61,0xe61,
+0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xe5e,0xe5e,0xe5e,0xe5e,
+0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0x1173,0xfc,0xfc,0xfc,0xe5b,0xe5b,0xe6a,0xe6a,0xe6a,0xe6a,
+0xff,0xff,0xff,0xff,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe67,0xe6a,0xe6a,0xe6a,
+0xe6a,0xe6a,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1527,0x152d,0x152a,0x1875,
+0x17d0,0x1899,0x1899,0x1899,0x1899,0x1899,0x1938,0x1935,0x193b,0x1935,0x193b,0x102,0x102,0x102,0x102,0x102,
0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,
-0x102,0x102,0x102,0x102,0xe61,0xe61,0xe61,0xe5e,0xe5e,0xe55,0xe55,0xe5e,0xe5b,0xe5b,0xe5b,0xe5b,
-0x105,0x105,0x105,0x105,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b4,0x12b4,0x12b7,0x12b4,0x159,0x159,
-0x159,0x159,0x159,0x159,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0x13e9,0x13e9,0x108,0x108,0x108,0x108,
-0x108,0x108,0x108,0xe67,0x131a,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,
-0x108,0x108,0x108,0x1317,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,
-0xc21,0xc21,0xc21,0xc21,0xe94,0xe85,0xe7f,0xe91,0xe8e,0xe88,0xe88,0xe97,0xe82,0xe8b,0x10b,0x10b,
-0x10b,0x10b,0x10b,0x10b,0xf18,0xf18,0xf03,0xf18,0xf1b,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,
-0x111,0x111,0x111,0x111,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf24,0xf24,
-0xf09,0xf0f,0xf24,0xf24,0xf0c,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf06,
-0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,
-0xf09,0x111,0x111,0x111,0x1320,0x131d,0x1320,0x131d,0x1320,0x131d,0x1320,0x131d,0x1320,0x131d,0x13ef,0x1509,
-0x1509,0x1509,0x17a3,0x114,0x1509,0x1509,0x16f2,0x16f2,0x16f2,0x16ec,0x16f2,0x16ec,0x114,0x114,0x114,0x114,
+0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0xe91,0xe91,0xe91,0xe8e,
+0xe8e,0xe85,0xe85,0xe8e,0xe8b,0xe8b,0xe8b,0xe8b,0x105,0x105,0x105,0x105,0x12ed,0x12ed,0x12ed,0x12f0,
+0x12f0,0x12f0,0x12e7,0x12e7,0x12ea,0x12e7,0x159,0x159,0x159,0x159,0x159,0x159,0xe94,0xe94,0xe94,0xe94,
+0xe94,0xe94,0x141c,0x141c,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0xe97,0x1356,0x108,0x108,0x108,
+0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x1353,0xc4b,0xc4b,0xc4b,0xc4b,
+0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4e,0xec4,0xeb5,0xeaf,0xec1,
+0xebe,0xeb8,0xeb8,0xec7,0xeb2,0xebb,0x10b,0x10b,0x10b,0x10b,0x10b,0x10b,0xf48,0xf48,0xf33,0xf48,
+0xf4b,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0x111,0x111,0x111,0x111,0xf42,0xf42,0xf42,0xf42,
+0xf42,0xf42,0xf42,0xf42,0xf42,0xf42,0xf54,0xf54,0xf39,0xf3f,0xf54,0xf54,0xf3c,0xf39,0xf39,0xf39,
+0xf39,0xf39,0xf39,0xf39,0xf39,0xf39,0xf39,0xf36,0xf36,0xf36,0xf36,0xf36,0xf36,0xf36,0xf36,0xf36,
+0xf39,0xf39,0xf39,0xf39,0xf39,0xf39,0xf39,0xf39,0xf39,0x111,0x111,0x111,0x135c,0x1359,0x135c,0x1359,
+0x135c,0x1359,0x135c,0x1359,0x135c,0x1359,0x1422,0x1539,0x1539,0x1539,0x17d3,0x1944,0x1539,0x1539,0x1722,0x1722,
+0x1722,0x171c,0x1722,0x171c,0x1947,0x1944,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,
0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,
-0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x1506,
-0x13f2,0x13f2,0x131d,0x1020,0x1020,0x1020,0x1020,0x1020,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,
-0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf30,0xf30,0xf36,0xf36,
-0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0xf3f,0xf3f,0xf3f,0xf3f,0xf3f,0xf3f,0xf3f,0xf3f,
-0xf3f,0xf3f,0xf3f,0xf3f,0xf3f,0xf3f,0xf3f,0xf3f,0xf3f,0xf3f,0xf3f,0xf3f,0xf3f,0xf3f,0xf39,0xf39,
-0xf39,0xf39,0x114f,0x114f,0x11a,0x11a,0x11a,0xf3c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,
-0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,
-0x150c,0x16f5,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,
+0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x1536,0x1425,0x1425,0x1359,0x1050,
+0x1050,0x1050,0x1050,0x1050,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,
+0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf60,0xf60,0xf66,0xf66,0x117,0x117,0x117,0x117,
+0x117,0x117,0x117,0x117,0xf6f,0xf6f,0xf6f,0xf6f,0xf6f,0xf6f,0xf6f,0xf6f,0xf6f,0xf6f,0xf6f,0xf6f,
+0xf6f,0xf6f,0xf6f,0xf6f,0xf6f,0xf6f,0xf6f,0xf6f,0xf6f,0xf6f,0xf69,0xf69,0xf69,0xf69,0x117f,0x117f,
+0x11a,0x11a,0x11a,0xf6c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,
+0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x1725,0x11d,0x11d,
+0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,
0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,
-0x11d,0x11d,0x11d,0x11d,0xf48,0xf48,0xf48,0x1512,0x1512,0x1512,0x1512,0x1512,0x1512,0x1512,0x1512,0x1512,
-0x1512,0x1512,0x1512,0x120,0xf45,0xf45,0xf45,0xf45,0x150f,0x120,0x120,0x120,0x120,0x120,0x120,0x120,
-0x120,0x120,0x120,0x120,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,
-0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0x123,0x123,0x123,0x123,0x123,0x123,0x123,0x123,0x123,0x123,
-0x123,0x123,0x123,0x123,0x1047,0x1047,0x1047,0x1047,0x1044,0x1044,0x1044,0x1044,0x1044,0x1044,0x1044,0x1044,
-0x1035,0x1035,0x1035,0x1035,0x1035,0x1035,0x1035,0x1035,0x1044,0x1044,0x103b,0x1038,0x126,0x126,0x126,0x104a,
-0x104a,0x103e,0x103e,0x103e,0x1041,0x1041,0x1041,0x1041,0x1041,0x1041,0x1041,0x1041,0x1041,0x1041,0x126,0x126,
-0x126,0x1047,0x1047,0x1047,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x1050,0x1050,
-0x1050,0x1050,0x1050,0x1050,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1065,0x1065,
+0xf78,0xf78,0xf78,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x120,
+0xf75,0xf75,0xf75,0xf75,0x153f,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,
+0xf7b,0xf7b,0xf7b,0xf7b,0xf7b,0xf7b,0xf7b,0xf7b,0xf7b,0xf7b,0xf7b,0xf7b,0xf7b,0xf7b,0xf7b,0xf7b,
+0xf7b,0xf7b,0x194a,0x194a,0x194a,0x194a,0x194a,0x194a,0x194a,0x123,0x123,0x123,0x123,0x123,0x123,0x123,
+0x1077,0x1077,0x1077,0x1077,0x1074,0x1074,0x1074,0x1074,0x1074,0x1074,0x1074,0x1074,0x1065,0x1065,0x1065,0x1065,
+0x1065,0x1065,0x1065,0x1065,0x1074,0x1074,0x106b,0x1068,0x126,0x126,0x126,0x107a,0x107a,0x106e,0x106e,0x106e,
+0x1071,0x1071,0x1071,0x1071,0x1071,0x1071,0x1071,0x1071,0x1071,0x1071,0x126,0x126,0x126,0x1077,0x1077,0x1077,
+0x107d,0x107d,0x107d,0x107d,0x107d,0x107d,0x107d,0x107d,0x107d,0x107d,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,
+0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1095,0x1095,0x129,0x129,0x129,0x129,
0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,
-0x129,0x129,0x129,0x129,0x108c,0x108c,0x108c,0x108c,0x1086,0x17a6,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,
-0x12c,0x12c,0x1092,0x1092,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x12c,0x12c,
-0x12c,0x12c,0x12c,0x12c,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,
-0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10aa,0x10ad,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,
-0x12f,0x12f,0x12f,0x10a7,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10b3,0x10b3,0x10b3,
-0x10b3,0x10b3,0x10b3,0x10bc,0x10bc,0x10b3,0x10b3,0x10bc,0x10bc,0x10b3,0x10b3,0x132,0x132,0x132,0x132,0x132,
-0x132,0x132,0x132,0x132,0x10bf,0x10bf,0x10bf,0x10b3,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,
-0x10b3,0x10bc,0x132,0x132,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x132,0x132,
-0x10b6,0x10c2,0x10c2,0x10c2,0x151e,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,
+0x10bc,0x10bc,0x10bc,0x10bc,0x10b6,0x17d6,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x10c2,0x10c2,
+0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,
+0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10d4,0x10d4,0x10d4,0x10d4,0x10d4,0x10d4,0x10d4,0x10d4,0x10d4,
+0x10d4,0x10d4,0x10da,0x10dd,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x10d7,
+0x10ef,0x10ef,0x10ef,0x10ef,0x10ef,0x10ef,0x10ef,0x10ef,0x10ef,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10ec,
+0x10ec,0x10e3,0x10e3,0x10ec,0x10ec,0x10e3,0x10e3,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,
+0x10ef,0x10ef,0x10ef,0x10e3,0x10ef,0x10ef,0x10ef,0x10ef,0x10ef,0x10ef,0x10ef,0x10ef,0x10e3,0x10ec,0x132,0x132,
+0x10e9,0x10e9,0x10e9,0x10e9,0x10e9,0x10e9,0x10e9,0x10e9,0x10e9,0x10e9,0x132,0x132,0x10e6,0x10f2,0x10f2,0x10f2,
+0x154e,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,
0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,
-0x135,0x135,0x135,0x135,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,
-0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,
-0x10c8,0x10cb,0x138,0x138,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,
-0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,
-0x10ce,0x13b,0x13b,0x13b,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,
-0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,
-0x13e,0x13e,0x13e,0x13e,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,
-0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x141,0x141,
-0x141,0x141,0x141,0x10d4,0x10da,0x10da,0x10da,0x10da,0x10da,0x10da,0x10da,0x10da,0x10da,0x10da,0x10da,0x10da,
-0x144,0x144,0x144,0x144,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,
-0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x147,0x147,0x147,0x147,0x147,0x147,0x147,0x147,
-0x147,0x147,0x147,0x147,0x1155,0x1155,0x1155,0x1155,0x115e,0x1155,0x1155,0x1155,0x115e,0x1155,0x1155,0x1155,
-0x1155,0x1152,0x14a,0x14a,0x115b,0x115b,0x115b,0x115b,0x115b,0x115b,0x115b,0x115b,0x115b,0x115b,0x115b,0x115b,
-0x115b,0x115b,0x115b,0x14a,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,
-0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,
-0x14d,0x14d,0x14d,0x14d,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,
-0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x1179,0x1164,0x1179,0x1164,0x1164,0x1164,0x1164,
-0x1164,0x1164,0x1164,0x150,0x116d,0x1176,0x1164,0x1176,0x1176,0x1164,0x1164,0x1164,0x1164,0x1164,0x1164,0x1164,
-0x1164,0x1179,0x1179,0x1179,0x1179,0x1179,0x1179,0x1164,0x1164,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,
-0x116a,0x150,0x150,0x1167,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x150,0x150,
-0x150,0x150,0x150,0x150,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x150,0x150,
-0x150,0x150,0x150,0x150,0x1170,0x1170,0x1170,0x1170,0x1170,0x1170,0x1170,0x117f,0x1182,0x1182,0x1182,0x1182,
-0x1170,0x1170,0x150,0x150,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,
-0x1569,0x1569,0x1566,0x1cb,0x12c6,0x12a5,0x12c0,0x12c0,0x12c0,0x12c0,0x12c0,0x12c0,0x12c0,0x12a8,0x12a8,0x12a8,
-0x12a8,0x12c0,0x12a8,0x12a8,0x12a8,0x12a8,0x12ae,0x1494,0x149a,0x1497,0x1491,0x18e4,0x16bf,0x16bf,0x153,0x153,
-0x153,0x153,0x153,0x153,0x1197,0x1197,0x1197,0x1197,0x1197,0x1197,0x1197,0x1197,0x1197,0x1197,0x1197,0x1197,
-0x1197,0x1197,0x1197,0x1197,0x118e,0x118e,0x1191,0x119a,0x1194,0x1194,0x1194,0x119a,0x156,0x156,0x156,0x156,
-0x156,0x156,0x156,0x156,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,
-0x119d,0x119d,0x119d,0x119d,0x119d,0x12cc,0x11a3,0x12cf,0x11a3,0x11a3,0x11a3,0x11a3,0x11a0,0x11a0,0x11a0,0x11a3,
-0x16fb,0x16fe,0x15c,0x15c,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,
-0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,
-0x1293,0x15f,0x15f,0x15f,0x11b8,0x11ac,0x11ac,0x11ac,0x11ac,0x11ac,0x11ac,0x11af,0x11be,0x11be,0x11ac,0x11ac,
-0x11ac,0x11ac,0x162,0x12ba,0x11b2,0x11b2,0x11b2,0x11b2,0x11b2,0x11b2,0x11b2,0x11b2,0x11b2,0x11b2,0x162,0x162,
-0x162,0x162,0x11ac,0x11ac,0x11dc,0x11d0,0x11dc,0x165,0x165,0x165,0x165,0x165,0x165,0x165,0x165,0x165,
-0x165,0x165,0x165,0x165,0x165,0x165,0x165,0x165,0x165,0x165,0x165,0x165,0x165,0x165,0x165,0x11d9,
-0x11d9,0x11df,0x11d3,0x11d6,0x11f4,0x11f4,0x11f4,0x11ee,0x11ee,0x11e5,0x11ee,0x11ee,0x11e5,0x11ee,0x11ee,0x11f7,
-0x11f1,0x11e8,0x168,0x168,0x11eb,0x11eb,0x11eb,0x11eb,0x11eb,0x11eb,0x11eb,0x11eb,0x11eb,0x11eb,0x168,0x168,
-0x168,0x168,0x168,0x168,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x16b,0x16b,0x16b,0x16b,0x11fa,
-0x11fa,0x11fa,0x11fa,0x11fa,0x11fa,0x11fa,0x11fa,0x11fa,0x11fa,0x11fa,0x11fa,0x11fa,0x11fa,0x11fa,0x11fa,0x11fa,
-0x11fa,0x11fa,0x11fa,0x11fa,0x11fa,0x11fa,0x11fa,0x11fa,0x11fa,0x11fa,0x11fa,0x11fa,0x16b,0x16b,0x16b,0x16b,
-0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,
-0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x16e,0x1203,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,
-0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,
-0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x171,0x171,0x171,0x120f,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,
-0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,
-0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x174,0x174,0x1218,0x1218,0x1218,0x1218,0x1218,0x1218,0x1218,0x1218,
-0x1221,0x1221,0x1221,0x1221,0x1221,0x1221,0x1221,0x1221,0x1221,0x1221,0x1221,0x1221,0x1221,0x1221,0x1221,0x1221,
-0x1221,0x1221,0x1221,0x177,0x177,0x177,0x177,0x177,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,
-0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,
-0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x17d,
-0x1242,0x1242,0x180,0x180,0x180,0x180,0x180,0x180,0x180,0x180,0x180,0x180,0x180,0x180,0x180,0x180,
-0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,
-0x126f,0x126f,0x126f,0x126f,0x126f,0x126f,0x126f,0x126f,0x126f,0x126f,0x126f,0x152a,0x152a,0x186,0x186,0x186,
-0x126f,0x126f,0x126f,0x126f,0x126f,0x126f,0x126f,0x126f,0x126f,0x126f,0x126f,0x126f,0x126f,0x126f,0x126f,0x126f,
-0x126f,0x126f,0x126f,0x1272,0x1272,0x1272,0x1251,0x186,0x1374,0x127b,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,
-0x1374,0x1374,0x1374,0x1374,0x1374,0x127b,0x1374,0x127b,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,
-0x1371,0x1371,0x1401,0x1401,0x186,0x186,0x186,0x186,0x1377,0x1377,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,
-0x1371,0x1278,0x1371,0x1278,0x1278,0x1371,0x1377,0x127e,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,
-0x1824,0x1824,0x1824,0x1824,0x1824,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,
+0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,
+0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10fb,0x138,0x138,
+0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,
+0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x13b,0x13b,0x13b,
+0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,
+0x1101,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,
+0x1107,0x1107,0x1107,0x1107,0x1107,0x1107,0x1107,0x1107,0x1107,0x1107,0x1107,0x1107,0x1107,0x1107,0x1107,0x1107,
+0x1107,0x1107,0x1107,0x1107,0x1107,0x1107,0x1107,0x1107,0x1107,0x1107,0x141,0x141,0x141,0x141,0x141,0x1104,
+0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x144,0x144,0x144,0x144,
+0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,
+0x110d,0x110d,0x110d,0x110d,0x147,0x147,0x147,0x147,0x147,0x147,0x147,0x147,0x147,0x147,0x147,0x147,
+0x1185,0x1185,0x1185,0x1185,0x118e,0x1185,0x1185,0x1185,0x118e,0x1185,0x1185,0x1185,0x1185,0x1182,0x14a,0x14a,
+0x118b,0x118b,0x118b,0x118b,0x118b,0x118b,0x118b,0x1191,0x118b,0x1191,0x118b,0x118b,0x118b,0x1191,0x1191,0x14a,
+0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,
+0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,
+0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,
+0x11af,0x11af,0x11af,0x11af,0x11af,0x11ac,0x1197,0x11ac,0x1197,0x1197,0x1197,0x1197,0x1197,0x1197,0x1197,0x150,
+0x11a0,0x11a9,0x1197,0x11a9,0x11a9,0x1197,0x1197,0x1197,0x1197,0x1197,0x1197,0x1197,0x1197,0x11ac,0x11ac,0x11ac,
+0x11ac,0x11ac,0x11ac,0x1197,0x1197,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x150,0x150,0x119a,
+0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x150,0x150,0x150,0x150,0x150,0x150,
+0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x150,0x150,0x150,0x150,0x150,0x150,
+0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11b2,0x11b5,0x11b5,0x11b5,0x11b5,0x11a3,0x11a3,0x150,0x150,
+0x1599,0x1599,0x1599,0x1599,0x1599,0x1599,0x1599,0x1599,0x1599,0x1599,0x1599,0x1599,0x1599,0x1599,0x1596,0x1c8,
+0x1302,0x12e1,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12d8,0x12e4,0x12d8,0x12d8,0x12ff,0x12d8,0x12d8,
+0x12d8,0x12d8,0x12de,0x14c4,0x14ca,0x14c7,0x14c7,0x1914,0x16ef,0x16ef,0x153,0x153,0x153,0x153,0x153,0x153,
+0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,
+0x11c1,0x11c1,0x11c4,0x11cd,0x11c7,0x11c7,0x11c7,0x11cd,0x156,0x156,0x156,0x156,0x156,0x156,0x156,0x156,
+0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,
+0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x15c,0x15c,0x15c,
+0x11eb,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11e2,0x11f1,0x11f1,0x11df,0x11df,0x11df,0x11df,0x15f,0x12f3,
+0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x15f,0x15f,0x15f,0x15f,0x11df,0x11df,
+0x120f,0x1203,0x120f,0x162,0x162,0x162,0x162,0x162,0x162,0x162,0x162,0x162,0x162,0x162,0x162,0x162,
+0x162,0x162,0x162,0x162,0x162,0x162,0x162,0x162,0x162,0x162,0x162,0x120c,0x120c,0x1212,0x1206,0x1209,
+0x1227,0x1227,0x1227,0x1221,0x1221,0x1218,0x1221,0x1221,0x1218,0x1221,0x1221,0x122a,0x1224,0x121b,0x165,0x165,
+0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x165,0x165,0x165,0x165,0x165,0x165,
+0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x168,0x168,0x168,0x168,0x122d,0x122d,0x122d,0x122d,0x122d,
+0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,
+0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x168,0x168,0x168,0x168,0x1239,0x1239,0x1239,0x1239,
+0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,
+0x1239,0x1239,0x16b,0x1236,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1248,0x1248,0x1248,0x1248,
+0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,
+0x1248,0x1248,0x16e,0x16e,0x16e,0x1242,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x124e,0x124e,0x124e,0x124e,
+0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,
+0x124e,0x124e,0x171,0x171,0x124b,0x124b,0x124b,0x124b,0x124b,0x124b,0x124b,0x124b,0x1254,0x1254,0x1254,0x1254,
+0x1254,0x1254,0x1254,0x1254,0x1254,0x1254,0x1254,0x1254,0x1254,0x1254,0x1254,0x1254,0x1254,0x1254,0x1254,0x174,
+0x174,0x174,0x174,0x174,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x125a,0x125a,0x125a,0x125a,
+0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,
+0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x17a,0x1275,0x1275,0x17d,0x17d,
+0x17d,0x17d,0x17d,0x17d,0x17d,0x17d,0x17d,0x17d,0x17d,0x1953,0x17d,0x17d,0x14a3,0x14a3,0x14a3,0x14a3,
+0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x12a2,0x12a2,0x12a2,0x12a2,
+0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x155a,0x155a,0x183,0x183,0x183,0x12a2,0x12a2,0x12a2,0x12a2,
+0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x13ad,0x13ad,0x13ad,0x13ad,
+0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x1434,0x1434,0x183,0x183,0x183,0x183,0x13b3,0x13b3,0x13ad,0x13ad,
+0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x12ab,0x13ad,0x12ab,0x12ab,0x13ad,0x13b3,0x12b1,0x1854,0x1854,0x1854,0x1854,
+0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x183,0x183,0x183,0x183,0x183,0x183,0x183,
+0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,
+0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x1365,0x1365,
+0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,
+0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x12d2,0x13ce,0x13cb,0x186,0x186,0x186,0x186,0x186,
+0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x12cc,0x12cc,0x12cc,0x12cc,0x12cc,0x12cc,0x12cc,0x12cc,
+0x12cc,0x12cc,0x12cf,0x12cc,0x12cc,0x12cc,0x12cc,0x12cc,0x12cc,0x12cc,0x12cc,0x12cc,0x12cc,0x12cc,0x12cc,0x12cc,
+0x12cc,0x12cc,0x12cc,0x12cf,0x12cc,0x12cc,0x13ce,0x13ce,0x13ce,0x13ce,0x13ce,0x13cb,0x13ce,0x13ce,0x13ce,0x1857,
+0x186,0x186,0x186,0x186,0x12c9,0x12c9,0x12c9,0x12c9,0x12c9,0x12c9,0x12c9,0x12c9,0x12c9,0x186,0x186,0x186,
+0x186,0x186,0x186,0x186,0x13f2,0x13f2,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,
+0x186,0x186,0x186,0x186,0x18f9,0x18f9,0x18f9,0x18f9,0x18f9,0x18f9,0x186,0x186,0x186,0x186,0x186,0x186,
0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,
-0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,
-0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,0x1329,
-0x1329,0x1329,0x1329,0x1329,0x129f,0x1392,0x138f,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,
-0x189,0x189,0x189,0x189,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x129c,0x1299,
-0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x129c,
-0x1299,0x1299,0x1392,0x1392,0x1392,0x1392,0x1392,0x138f,0x1392,0x1392,0x1392,0x1827,0x189,0x189,0x189,0x189,
-0x1296,0x1296,0x1296,0x1296,0x1296,0x1296,0x1296,0x1296,0x1296,0x189,0x189,0x189,0x189,0x189,0x189,0x189,
-0x13bf,0x13bf,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,
-0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,
-0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,
-0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,
-0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,
-0x1332,0x132c,0x132c,0x132c,0x18c,0x18c,0x132f,0x18c,0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x1335,0x133e,
-0x1338,0x1338,0x133e,0x133e,0x133e,0x1338,0x133e,0x1338,0x1338,0x1338,0x1341,0x1341,0x18f,0x18f,0x18f,0x18f,
-0x18f,0x18f,0x18f,0x18f,0x133b,0x133b,0x133b,0x133b,0x192,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x192,
-0x192,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x192,0x192,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x192,
-0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x192,
-0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x192,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,
-0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x134a,0x134a,0x134a,0x134a,0x134a,0x134a,0x134d,0x135f,
-0x135f,0x1353,0x1353,0x1353,0x1353,0x1353,0x195,0x195,0x195,0x195,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,
-0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1356,0x1356,0x1356,0x1356,0x1356,0x1356,
-0x1356,0x1356,0x1356,0x1356,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,
-0x195,0x195,0x195,0x152d,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,
-0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x198,0x198,0x198,
-0x198,0x198,0x198,0x198,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,
-0x1365,0x1365,0x1365,0x19b,0x19b,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,
-0x1365,0x1365,0x1365,0x1530,0x19b,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,
-0x1365,0x1365,0x1365,0x139b,0x19b,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,
-0x1365,0x1365,0x1365,0x1365,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,
-0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,
-0x19b,0x19b,0x19b,0x19b,0x13b9,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x1545,0x1545,0x1545,0x1545,0x1545,0x1548,
-0x16b6,0x1548,0x1548,0x1548,0x1782,0x1830,0x1830,0x186c,0x186c,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,
-0x19e,0x19e,0x19e,0x19e,0x1548,0x1548,0x1548,0x1548,0x1548,0x1548,0x1545,0x1545,0x1545,0x1548,0x1545,0x16b3,
-0x16b3,0x19e,0x19e,0x19e,0x1548,0x1545,0x1545,0x1548,0x1830,0x1830,0x1830,0x18cf,0x18cf,0x19e,0x19e,0x19e,
-0x19e,0x19e,0x19e,0x19e,0x1368,0x1368,0x1368,0x1368,0x1368,0x1368,0x1368,0x1368,0x1368,0x1368,0x1368,0x1368,
-0x1368,0x1368,0x1368,0x1368,0x1368,0x1368,0x1368,0x1368,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,
-0x1a1,0x1a1,0x1a1,0x1a1,0x140d,0x154e,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,
-0x140d,0x154e,0x154e,0x154e,0x154e,0x154e,0x154e,0x1707,0x1707,0x1a4,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,
-0x17b2,0x17b2,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,
-0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x17af,0x17af,0x17af,0x17af,0x17af,0x17af,0x17af,0x17af,
-0x17af,0x17af,0x17af,0x17af,0x1413,0x1413,0x1413,0x1413,0x1a7,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,
-0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,
-0x1413,0x1413,0x1413,0x1413,0x1a7,0x1413,0x1413,0x1a7,0x1413,0x1a7,0x1a7,0x1413,0x1a7,0x1413,0x1413,0x1413,
-0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1a7,0x1413,0x1413,0x1413,0x1413,0x1a7,0x1413,0x1a7,0x1413,
-0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1413,0x1a7,0x1a7,0x1a7,0x1a7,0x1413,0x1a7,0x1413,0x1a7,0x1413,
-0x1a7,0x1413,0x1413,0x1413,0x1a7,0x1413,0x1413,0x1a7,0x1413,0x1a7,0x1a7,0x1413,0x1a7,0x1413,0x1a7,0x1413,
-0x1a7,0x1413,0x1a7,0x1413,0x1a7,0x1413,0x1413,0x1a7,0x1413,0x1a7,0x1a7,0x1413,0x1413,0x1413,0x1413,0x1a7,
-0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1a7,0x1413,0x1413,0x1413,0x1413,0x1a7,0x1413,0x1413,0x1413,
-0x1413,0x1a7,0x1413,0x1a7,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1a7,0x1413,
-0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,
-0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1413,0x1413,0x1413,0x1a7,0x1413,0x1413,0x1413,0x1413,0x1413,0x1a7,0x1413,
-0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,
-0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,
-0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,
-0x1410,0x1410,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,
-0x1428,0x1428,0x1428,0x1428,0x1428,0x1428,0x1428,0x1416,0x1416,0x1416,0x1416,0x1416,0x1425,0x1416,0x1419,0x1419,
-0x1416,0x1416,0x1416,0x141c,0x141c,0x1aa,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,
-0x141f,0x142b,0x142b,0x142b,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,
+0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x186,0x136e,0x136e,0x136e,0x136e,
+0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,
+0x136e,0x136e,0x136e,0x136e,0x136e,0x1368,0x1368,0x1368,0x189,0x189,0x136b,0x189,0x1380,0x1380,0x1380,0x1380,
+0x1380,0x1380,0x1371,0x137a,0x1374,0x1374,0x137a,0x137a,0x137a,0x1374,0x137a,0x1374,0x1374,0x1374,0x137d,0x137d,
+0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x1377,0x1377,0x1377,0x1377,0x18f,0x1383,0x1383,0x1383,
+0x1383,0x1383,0x1383,0x18f,0x18f,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x18f,0x18f,0x1383,0x1383,0x1383,
+0x1383,0x1383,0x1383,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x1383,0x1383,0x1383,0x1383,
+0x1383,0x1383,0x1383,0x18f,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x18f,0x15f6,0x15f6,0x15f6,0x15f6,
+0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,0x1386,0x1386,0x1386,0x1386,
+0x1386,0x1386,0x1389,0x139b,0x139b,0x138f,0x138f,0x138f,0x138f,0x138f,0x192,0x192,0x192,0x192,0x138c,0x138c,
+0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x1392,0x1392,
+0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192,
+0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x155d,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,
+0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,
+0x139e,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,
+0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x198,0x198,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,
+0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x1560,0x198,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,
+0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13d7,0x198,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,
+0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x1560,0x1560,0x1560,0x1560,0x1560,0x1560,0x1560,0x1560,
+0x1560,0x1560,0x1560,0x1560,0x1560,0x1560,0x1560,0x1560,0x1560,0x1560,0x1560,0x1560,0x1560,0x1560,0x198,0x198,
+0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x13ec,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x1575,0x1575,
+0x1575,0x1575,0x1575,0x1578,0x16e6,0x1578,0x1578,0x1578,0x17b2,0x1860,0x1860,0x189c,0x189c,0x19b,0x19b,0x19b,
+0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1575,0x1575,
+0x1575,0x1578,0x1575,0x16e3,0x16e3,0x19b,0x19b,0x19b,0x1578,0x1575,0x1575,0x1578,0x1860,0x1860,0x1860,0x18ff,
+0x18ff,0x19dd,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,
+0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x19e,0x19e,0x19e,0x19e,
+0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x1440,0x157e,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,
+0x1440,0x1440,0x1440,0x1440,0x1440,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x1737,0x1737,0x1a1,0x17e2,0x17e2,
+0x17e2,0x17e2,0x17e2,0x17e2,0x17e2,0x17e2,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,
+0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1959,0x17df,0x17df,0x17df,0x17df,
+0x17df,0x17df,0x17df,0x17df,0x17df,0x17df,0x17df,0x17df,0x1446,0x1446,0x1446,0x1446,0x1a4,0x1446,0x1446,0x1446,
+0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,
+0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1a4,0x1446,0x1446,0x1a4,0x1446,0x1a4,0x1a4,0x1446,
+0x1a4,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1a4,0x1446,0x1446,0x1446,0x1446,
+0x1a4,0x1446,0x1a4,0x1446,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1446,0x1a4,0x1a4,0x1a4,0x1a4,0x1446,
+0x1a4,0x1446,0x1a4,0x1446,0x1a4,0x1446,0x1446,0x1446,0x1a4,0x1446,0x1446,0x1a4,0x1446,0x1a4,0x1a4,0x1446,
+0x1a4,0x1446,0x1a4,0x1446,0x1a4,0x1446,0x1a4,0x1446,0x1a4,0x1446,0x1446,0x1a4,0x1446,0x1a4,0x1a4,0x1446,
+0x1446,0x1446,0x1446,0x1a4,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1a4,0x1446,0x1446,0x1446,0x1446,
+0x1a4,0x1446,0x1446,0x1446,0x1446,0x1a4,0x1446,0x1a4,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,
+0x1446,0x1446,0x1a4,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,
+0x1446,0x1446,0x1446,0x1446,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1446,0x1446,0x1446,0x1a4,0x1446,0x1446,0x1446,
+0x1446,0x1446,0x1a4,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,
+0x1446,0x1446,0x1446,0x1446,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,
+0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,
+0x1a4,0x1a4,0x1a4,0x1a4,0x1443,0x1443,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,
+0x1a4,0x1a4,0x1a4,0x1a4,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x1449,0x1449,0x1449,0x1449,0x1449,
+0x1458,0x1449,0x144c,0x144c,0x1449,0x1449,0x1449,0x144f,0x144f,0x1a7,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,
+0x1455,0x1455,0x1455,0x1455,0x1452,0x145e,0x145e,0x145e,0x195f,0x195c,0x195c,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,
+0x1a7,0x1a7,0x1a7,0x1a7,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,
+0x1608,0x1608,0x1608,0x1608,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x1467,
+0x1461,0x1461,0x1467,0x1467,0x1470,0x1470,0x146a,0x146d,0x146d,0x1467,0x1464,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,
+0x1aa,0x1aa,0x1aa,0x1aa,0x1473,0x1473,0x1473,0x1473,0x1473,0x1473,0x1473,0x1473,0x1473,0x1473,0x1473,0x1473,
+0x1473,0x1473,0x1473,0x1473,0x1473,0x1473,0x1473,0x1473,0x1473,0x1473,0x1473,0x1473,0x1ad,0x1ad,0x1ad,0x1ad,
+0x173a,0x173a,0x1473,0x1473,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,
+0x173a,0x173a,0x173a,0x173a,0x1ad,0x1ad,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,
+0x173a,0x173a,0x173a,0x173a,0x147f,0x147f,0x147f,0x147f,0x147f,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,
+0x1b0,0x1b0,0x1b0,0x1b0,0x147f,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,
+0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,
+0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,
+0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1479,0x1479,0x1479,0x1479,0x1482,0x1482,0x1482,0x1482,0x1482,
+0x1482,0x1482,0x1482,0x1482,0x1482,0x1482,0x1482,0x1482,0x1494,0x1497,0x149a,0x149a,0x1497,0x149d,0x149d,0x1488,
+0x148b,0x173d,0x1740,0x1740,0x1740,0x1584,0x1b3,0x1b3,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,
+0x148e,0x148e,0x1581,0x1746,0x1749,0x1743,0x174c,0x174c,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,
+0x14a3,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,0x14a0,
+0x14a0,0x14a0,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,
+0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x12fc,0x12f9,0x12fc,0x12db,0x12f9,0x12ff,0x12ff,0x1302,
+0x12ff,0x1302,0x1305,0x12f9,0x1302,0x1302,0x12f9,0x12f9,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,
+0x14b8,0x14b8,0x14b8,0x14a9,0x14b2,0x14a9,0x14b2,0x14b2,0x14a9,0x14a9,0x14a9,0x14a9,0x14a9,0x14a9,0x14b5,0x14ac,
+0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x158a,0x158a,0x158a,0x158a,0x158a,0x158a,0x158a,0x158a,
+0x158a,0x158a,0x158a,0x158a,0x158a,0x158a,0x1bf,0x1bf,0x1587,0x1587,0x1587,0x1587,0x1587,0x158d,0x1bf,0x1bf,
+0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x16f2,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,
+0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,
+0x16e9,0x16e9,0x16e9,0x16e9,0x1c5,0x1c5,0x1c5,0x1c5,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,
+0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,
+0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,
+0x15a5,0x15a5,0x15a5,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,
+0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x15a5,0x15a5,0x15a5,0x15a5,
+0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x1cb,0x1cb,0x15a2,0x159c,0x159f,0x15a8,0x15ab,0x15ab,0x15ab,0x15ab,
+0x15ab,0x15ab,0x15ab,0x15ab,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1593,0x1593,0x1593,0x1593,
+0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x15ae,0x15ae,0x15ae,0x15ae,
+0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,
+0x15ae,0x1962,0x1962,0x1962,0x1962,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,
+0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,
+0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x174f,0x16f5,0x15b7,0x16fb,0x1d4,0x15c0,0x15c0,0x15c0,
+0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x1d4,0x1d4,0x15c0,0x15c0,0x1d4,0x1d4,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,
+0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x1d4,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,
+0x15c0,0x1d4,0x15c0,0x15c0,0x1d4,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x1d4,0x19ec,0x16f8,0x15c0,0x15b1,0x15b7,
+0x15b1,0x15b7,0x15b7,0x15b7,0x15b7,0x1d4,0x1d4,0x15b7,0x15b7,0x1d4,0x1d4,0x15ba,0x15ba,0x15bd,0x1d4,0x1d4,
+0x1752,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x15b1,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x15c3,0x15c0,0x15c0,
+0x15c0,0x15c0,0x15b7,0x15b7,0x1d4,0x1d4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x1d4,0x1d4,0x1d4,
+0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,
0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,
-0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x1434,0x142e,0x142e,0x1434,0x1434,
-0x143d,0x143d,0x1437,0x143a,0x143a,0x1434,0x1431,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,
-0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,
-0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x1b0,0x1b0,0x1b0,0x1b0,0x170a,0x170a,0x1440,0x1440,
-0x170a,0x170a,0x170a,0x170a,0x170a,0x170a,0x170a,0x170a,0x170a,0x170a,0x170a,0x170a,0x170a,0x170a,0x170a,0x170a,
-0x1b0,0x1b0,0x170a,0x170a,0x170a,0x170a,0x170a,0x170a,0x170a,0x170a,0x170a,0x170a,0x170a,0x170a,0x170a,0x170a,
-0x144c,0x144c,0x144c,0x144c,0x144c,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,
-0x144c,0x1449,0x1449,0x1449,0x1449,0x1449,0x1449,0x1449,0x1449,0x1449,0x1449,0x1449,0x1449,0x1449,0x1449,0x1449,
-0x1449,0x1449,0x1449,0x1449,0x1449,0x1449,0x1449,0x1449,0x1449,0x1449,0x1449,0x1449,0x1449,0x1449,0x1449,0x1449,
-0x1449,0x1449,0x1449,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,
-0x1b3,0x1b3,0x1b3,0x1446,0x1446,0x1446,0x1446,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,
-0x144f,0x144f,0x144f,0x144f,0x1461,0x1464,0x1467,0x1467,0x1464,0x146a,0x146a,0x1455,0x1458,0x1710,0x170d,0x170d,
-0x170d,0x1554,0x1b6,0x1b6,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x1551,0x1716,
-0x1719,0x1713,0x171c,0x171c,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1b9,0x1b9,0x1b9,
-0x1b9,0x1b9,0x1b9,0x1b9,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x1b9,0x1b9,
-0x1b9,0x1b9,0x1b9,0x1b9,0x1473,0x1473,0x1473,0x1473,0x1473,0x1473,0x1473,0x1473,0x1bc,0x1bc,0x1bc,0x1bc,
-0x1bc,0x1bc,0x1bc,0x1bc,0x12c3,0x12c0,0x12c3,0x12ab,0x12c0,0x12c0,0x12c0,0x12c6,0x12c0,0x12c6,0x12c9,0x12c0,
-0x12c6,0x12c6,0x12c0,0x12c0,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1476,
-0x147f,0x1476,0x147f,0x147f,0x1476,0x1476,0x1476,0x1476,0x1476,0x1476,0x1482,0x1479,0x1bf,0x1bf,0x1bf,0x1bf,
-0x1bf,0x1bf,0x1bf,0x1bf,0x155a,0x155a,0x155a,0x155a,0x155a,0x155a,0x155a,0x155a,0x155a,0x155a,0x155a,0x155a,
-0x155a,0x155a,0x1c2,0x1c2,0x1557,0x1557,0x1557,0x1557,0x1557,0x155d,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,
-0x1c2,0x1c2,0x1c2,0x1c2,0x16c2,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,
-0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,
-0x1c8,0x1c8,0x1c8,0x1c8,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,
-0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,
-0x1cb,0x1cb,0x1cb,0x1cb,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1ce,
-0x1ce,0x1ce,0x1ce,0x1ce,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,
-0x1575,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,
-0x1575,0x1575,0x1ce,0x1ce,0x1572,0x156c,0x156f,0x1578,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,
-0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,
-0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,
-0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x1d4,0x1d4,0x1d4,
-0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,
-0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,
-0x171f,0x16c5,0x1587,0x16cb,0x1d7,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1d7,0x1d7,0x1590,
-0x1590,0x1d7,0x1d7,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,
-0x1590,0x1d7,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1d7,0x1590,0x1590,0x1d7,0x1590,0x1590,0x1590,
-0x1590,0x1590,0x1d7,0x1d7,0x16c8,0x1590,0x1581,0x1587,0x1581,0x1587,0x1587,0x1587,0x1587,0x1d7,0x1d7,0x1587,
-0x1587,0x1d7,0x1d7,0x158a,0x158a,0x158d,0x1d7,0x1d7,0x1722,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1581,
-0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1593,0x1590,0x1590,0x1590,0x1590,0x1587,0x1587,0x1d7,0x1d7,0x1584,0x1584,
-0x1584,0x1584,0x1584,0x1584,0x1584,0x1d7,0x1d7,0x1d7,0x1584,0x1584,0x1584,0x1584,0x1584,0x1d7,0x1d7,0x1d7,
-0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x15a8,0x15a8,0x15a8,0x15a8,0x15a8,0x15a8,0x15a8,0x15a8,
-0x15a8,0x15a8,0x15a8,0x15a8,0x15a8,0x15a8,0x15a8,0x15a8,0x15a8,0x15a8,0x1da,0x15a8,0x15a8,0x15a8,0x15a8,0x15a8,
-0x15a8,0x15a8,0x15a8,0x15a8,0x15a8,0x15a8,0x15a8,0x15a8,0x15a2,0x15a2,0x15a2,0x1596,0x1596,0x1596,0x15a2,0x15a2,
-0x1596,0x15a5,0x1599,0x1596,0x15ab,0x15ab,0x159f,0x15ab,0x15ab,0x159c,0x17b5,0x1da,0x15ba,0x15ba,0x15ba,0x15ae,
-0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15b1,0x15b4,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x15b7,0x15b7,0x15b7,0x15b7,
-0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1725,0x1725,0x1725,0x1725,
-0x15c6,0x15c3,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x174f,0x174f,0x174f,0x174f,
-0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x15cc,0x15cc,0x15cc,0x15cc,
-0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,
-0x15cc,0x15cc,0x15cc,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x15cc,0x15cc,0x15cc,0x15cc,
-0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,
-0x15cc,0x15cc,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x15cc,0x15cc,0x15cc,0x15cc,
-0x15cc,0x15cc,0x15cc,0x15cc,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,
-0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x15d8,0x15d8,0x15d8,0x15d8,
-0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15cf,
-0x15d2,0x15d5,0x15d8,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x15e7,0x15e7,0x15e7,0x15e7,
-0x15e7,0x15db,0x15db,0x1e9,0x1e9,0x1e9,0x1e9,0x15de,0x15de,0x15de,0x15de,0x15de,0x15e4,0x15e4,0x15e4,0x15e4,
-0x15e4,0x15e4,0x15e1,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x15f0,0x15f0,0x15f0,0x15f0,
-0x15f0,0x1ec,0x1ec,0x15ed,0x15ed,0x15ed,0x15ed,0x15ed,0x15ed,0x15ed,0x15ed,0x15ed,0x15ea,0x15ea,0x15ea,0x15ea,
-0x15ea,0x15ea,0x15ea,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x15f3,0x1605,0x1605,0x15f9,
-0x1602,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x15fc,0x15fc,0x15fc,0x15fc,
-0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x160b,0x160b,0x160b,0x160b,
-0x160b,0x160b,0x160b,0x160b,0x160b,0x160b,0x160b,0x160b,0x160b,0x160b,0x160b,0x160b,0x160b,0x160b,0x160b,0x160b,
-0x160b,0x160b,0x160b,0x160b,0x160b,0x160b,0x160b,0x160b,0x160b,0x160b,0x160b,0x1f2,0x1617,0x1617,0x1617,0x1617,
-0x1617,0x1611,0x161a,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1614,0x1614,0x1614,0x1614,
-0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1617,0x1617,0x1617,0x1617,0x1617,0x1f5,0x1620,0x1620,0x1620,0x1620,
-0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,
-0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1f8,0x162c,0x162c,0x162c,0x162c,
-0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,
-0x162c,0x162c,0x1629,0x1629,0x1629,0x1629,0x1629,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1644,0x1644,0x1647,0x1647,
-0x164a,0x163b,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1641,0x1641,0x1641,0x1641,
-0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1fe,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x1fe,0x1644,
-0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,
-0x1644,0x1644,0x1644,0x1644,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1644,0x1644,0x1644,0x1653,0x1653,0x1653,0x1653,
-0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,
-0x1653,0x1653,0x1653,0x1653,0x1653,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x165c,0x165c,0x165c,0x165c,
-0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x204,0x204,
-0x204,0x204,0x204,0x204,0x204,0x1659,0x1659,0x1659,0x1659,0x204,0x204,0x204,0x1677,0x1677,0x1677,0x1677,
-0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x165f,0x1671,0x1671,0x165f,0x165f,
-0x165f,0x165f,0x20a,0x20a,0x1671,0x1671,0x1674,0x1674,0x165f,0x165f,0x1671,0x1665,0x1662,0x1668,0x167a,0x167a,
-0x166b,0x166b,0x166e,0x166e,0x166e,0x167a,0x172e,0x172e,0x172e,0x172e,0x172e,0x172e,0x172e,0x172e,0x172e,0x172e,
-0x172e,0x172e,0x172e,0x172e,0x172b,0x172b,0x172b,0x172b,0x1728,0x1728,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a,
-0x20a,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a,
-0x20a,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a,0x20d,0x167d,0x167d,0x167d,
-0x167d,0x167d,0x167d,0x167d,0x167d,0x167d,0x167d,0x167d,0x167d,0x167d,0x167d,0x167d,0x167d,0x167d,0x167d,0x167d,
-0x167d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x1680,0x1680,0x1680,0x1680,
-0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x210,0x210,0x210,0x210,0x1680,0x1680,0x1680,0x1680,
-0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x210,0x210,0x210,0x210,
-0x210,0x210,0x210,0x210,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x210,0x210,
-0x210,0x210,0x210,0x210,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x210,0x210,0x210,0x210,
-0x210,0x210,0x210,0x210,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,
-0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,
-0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,
-0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x1683,0x1692,0x1689,0x1686,0x1698,0x1698,0x168c,0x1698,
-0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,
-0x168f,0x168f,0x213,0x213,0x213,0x213,0x213,0x213,0x169e,0x169e,0x169e,0x169e,0x169e,0x169e,0x169e,0x169e,
-0x169e,0x169e,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x216,0x216,0x216,0x216,0x216,
-0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x16a4,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,
-0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,
-0x1740,0x1740,0x219,0x219,0x219,0x1731,0x1731,0x1731,0x173d,0x173d,0x1731,0x1731,0x1731,0x1731,0x173d,0x1731,
-0x1731,0x1731,0x1731,0x1734,0x219,0x219,0x219,0x219,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,
-0x173a,0x173a,0x1737,0x1737,0x1743,0x1743,0x1743,0x1737,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x21c,
-0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,
-0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,
-0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,
-0x1758,0x1758,0x1758,0x222,0x1758,0x1758,0x222,0x222,0x222,0x222,0x222,0x1755,0x1755,0x1755,0x1755,0x1755,
-0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x225,0x175b,0x225,0x175b,0x175b,0x175b,0x175b,0x225,0x175b,
-0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x225,0x175b,
-0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175e,0x225,0x225,0x225,0x225,0x225,0x225,
-0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,
-0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,
-0x1767,0x1767,0x1767,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
-0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,
-0x1764,0x1764,0x1764,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x1761,0x1761,0x1761,0x1761,0x1761,0x1761,
-0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,0x22b,0x22b,0x22b,0x22b,
-0x1788,0x1788,0x1788,0x1788,0x1788,0x1788,0x1788,0x1788,0x178b,0x1839,0x1839,0x1839,0x1839,0x1836,0x1839,0x18d5,
-0x1836,0x1836,0x1836,0x1836,0x1836,0x1836,0x1839,0x1836,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,
-0x1839,0x18d5,0x18d5,0x1839,0x1839,0x1839,0x1839,0x1839,0x1839,0x1839,0x1836,0x1833,0x1836,0x1839,0x1839,0x22b,
-0x1836,0x1836,0x1836,0x1836,0x1836,0x1836,0x1833,0x1836,0x1836,0x1836,0x1836,0x1836,0x18d2,0x22b,0x22b,0x22b,
-0x1836,0x1836,0x1836,0x1836,0x1836,0x1836,0x1836,0x1836,0x1836,0x1836,0x1836,0x1836,0x1836,0x1836,0x1836,0x18d2,
-0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x22b,0x22b,0x22b,0x22b,
-0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,
-0x1788,0x1788,0x1788,0x1788,0x1788,0x1836,0x1836,0x1836,0x1836,0x1836,0x1836,0x1836,0x1836,0x1836,0x1836,0x1836,
-0x1836,0x1836,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,
-0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,
-0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x1788,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,
-0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x18d2,0x18d5,0x18d5,0x18d5,0x18d5,0x18d5,0x18d5,0x18d5,
-0x18d5,0x18d5,0x18d5,0x18d5,0x18d5,0x18d5,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x22b,
-0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,
-0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x176d,0x176d,0x176d,0x176d,0x176a,0x176d,0x176d,0x1770,
-0x1773,0x1770,0x1770,0x176d,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,
-0x22e,0x22e,0x22e,0x176a,0x176a,0x176a,0x176a,0x176a,0x17c7,0x17c7,0x17c7,0x17c7,0x17be,0x17be,0x17be,0x17b8,
-0x17bb,0x17bb,0x17bb,0x231,0x231,0x231,0x231,0x231,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,
-0x17c4,0x17c4,0x231,0x231,0x231,0x231,0x17c1,0x17c1,0x17e2,0x17e2,0x17e2,0x17e2,0x17e2,0x17e2,0x17e2,0x17e2,
-0x17e2,0x234,0x17e2,0x17e2,0x17e2,0x17e2,0x17e2,0x17e2,0x17e2,0x17e2,0x17e2,0x17e2,0x17e2,0x17e2,0x17e2,0x17e2,
-0x17e2,0x17e2,0x17e2,0x17e2,0x17e2,0x17e2,0x17e2,0x17e2,0x17e2,0x17e2,0x17e2,0x17df,0x17cd,0x17cd,0x17cd,0x17cd,
-0x17cd,0x17cd,0x17cd,0x234,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17df,0x17d0,0x17e2,0x17e5,0x17e5,0x17d9,
-0x17d6,0x17d6,0x234,0x234,0x234,0x234,0x234,0x234,0x234,0x234,0x234,0x234,0x17dc,0x17dc,0x17dc,0x17dc,
-0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,
-0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x234,0x234,0x234,0x17f1,0x17f4,0x17fa,0x17fa,0x17fa,0x17fa,0x17fa,0x17fa,
-0x17fa,0x17fa,0x17fa,0x17fa,0x17fa,0x17fa,0x17fa,0x17fa,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x23a,
-0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,
-0x17eb,0x23a,0x23a,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x183c,0x18d8,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,
-0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,
-0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x17fa,0x17fa,0x17fa,0x17fa,0x17fa,0x17fa,0x17fa,0x17fa,
-0x17fa,0x17fa,0x17fa,0x17fa,0x17fa,0x17fa,0x17fa,0x17fa,0x240,0x240,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,
-0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x240,0x17f7,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,
-0x17ee,0x17f7,0x17ee,0x17ee,0x17f7,0x17ee,0x17ee,0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,
-0x17fd,0x17fd,0x17fd,0x17fd,0x17fd,0x17fd,0x17fd,0x17fd,0x17fd,0x17fd,0x17fd,0x17fd,0x17fd,0x243,0x243,0x243,
+0x15d8,0x15d8,0x1d7,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,
+0x15d2,0x15d2,0x15d2,0x15c6,0x15c6,0x15c6,0x15d2,0x15d2,0x15c6,0x15d5,0x15c9,0x15c6,0x15db,0x15db,0x15cf,0x15db,
+0x15db,0x15cc,0x17e5,0x1d7,0x15ea,0x15ea,0x15ea,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15e1,0x15e4,0x1da,
+0x1da,0x1da,0x1da,0x1da,0x15e7,0x15e7,0x15e7,0x15e7,0x15e7,0x15e7,0x15e7,0x15e7,0x15e7,0x15e7,0x1da,0x1da,
+0x1da,0x1da,0x1da,0x1da,0x1755,0x1755,0x1755,0x1755,0x15f6,0x15f3,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,
+0x1dd,0x1dd,0x1dd,0x1dd,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,
+0x177f,0x177f,0x177f,0x177f,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,
+0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,
+0x1e0,0x1e0,0x1e0,0x1e0,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,
+0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,
+0x1e0,0x1e0,0x1e0,0x1e0,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x1e0,0x1e0,0x1e0,0x1e0,
+0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,
+0x1e0,0x1e0,0x1e0,0x1e0,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,
+0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x15ff,0x1602,0x1605,0x1608,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,
+0x1e3,0x1e3,0x1e3,0x1e3,0x1617,0x1617,0x1617,0x1617,0x1617,0x160b,0x160b,0x1e6,0x1e6,0x1e6,0x1e6,0x160e,
+0x160e,0x160e,0x160e,0x160e,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1611,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,
+0x1e6,0x1e6,0x1e6,0x1e6,0x1620,0x1620,0x1620,0x1620,0x1620,0x1e9,0x1e9,0x161d,0x161d,0x161d,0x161d,0x161d,
+0x161d,0x161d,0x161d,0x161d,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,
+0x1e9,0x1e9,0x1e9,0x1e9,0x1623,0x1635,0x1635,0x1629,0x1632,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,
+0x1ec,0x1ec,0x1ec,0x1ec,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x1ec,0x1ec,
+0x1ec,0x1ec,0x1ec,0x1ec,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,
+0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,
+0x163b,0x163b,0x163b,0x1ef,0x1647,0x1647,0x1647,0x1647,0x1647,0x1641,0x164a,0x1647,0x1647,0x1647,0x1647,0x1647,
+0x1647,0x1647,0x1647,0x1647,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1647,0x1647,
+0x1647,0x1647,0x1647,0x1f2,0x1650,0x1650,0x1650,0x1650,0x1650,0x1650,0x1650,0x1650,0x1650,0x1650,0x1650,0x1650,
+0x1650,0x1650,0x1650,0x1650,0x1650,0x1650,0x1650,0x1650,0x1650,0x1650,0x1650,0x1650,0x1650,0x1650,0x1650,0x1650,
+0x1650,0x1650,0x1650,0x1f5,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,
+0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x165c,0x1659,0x1659,0x1659,0x1659,0x1659,0x1f8,
+0x1f8,0x1f8,0x1f8,0x1f8,0x1674,0x1674,0x1677,0x1677,0x167a,0x166b,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,
+0x1fb,0x1fb,0x1fb,0x1fb,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1fb,0x166b,
+0x166b,0x166b,0x166b,0x166b,0x166b,0x166b,0x1fb,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,
+0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1fb,0x1fb,0x1fb,0x1fb,
+0x1fb,0x1674,0x1674,0x1674,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,
+0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1fe,0x1fe,0x1fe,
+0x1fe,0x1fe,0x1fe,0x1fe,0x168c,0x168c,0x168c,0x168c,0x168c,0x168c,0x168c,0x168c,0x168c,0x168c,0x168c,0x168c,
+0x168c,0x168c,0x168c,0x168c,0x168c,0x168c,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x1689,0x1689,0x1689,
+0x1689,0x201,0x201,0x201,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,
+0x16a7,0x16a7,0x16a7,0x168f,0x16a1,0x16a1,0x168f,0x168f,0x168f,0x168f,0x207,0x207,0x16a1,0x16a1,0x16a4,0x16a4,
+0x168f,0x168f,0x16a1,0x1695,0x1692,0x1698,0x16aa,0x16aa,0x169b,0x169b,0x169e,0x169e,0x169e,0x16aa,0x175e,0x175e,
+0x175e,0x175e,0x175e,0x175e,0x175e,0x175e,0x175e,0x175e,0x175e,0x175e,0x175e,0x175e,0x175b,0x175b,0x175b,0x175b,
+0x1758,0x1758,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,
+0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,
+0x207,0x207,0x207,0x207,0x20a,0x16ad,0x16ad,0x16ad,0x16ad,0x16ad,0x16ad,0x16ad,0x16ad,0x16ad,0x16ad,0x16ad,
+0x16ad,0x16ad,0x16ad,0x16ad,0x16ad,0x16ad,0x16ad,0x16ad,0x16ad,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a,
+0x20a,0x20a,0x20a,0x20a,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,
+0x20d,0x20d,0x20d,0x20d,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,
+0x16b0,0x16b0,0x16b0,0x16b0,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x16b0,0x16b0,0x16b0,0x16b0,
+0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x16b0,0x16b0,0x16b0,0x16b0,
+0x16b0,0x16b0,0x16b0,0x16b0,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x16b0,0x16b0,0x16b0,0x16b0,
+0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x20d,0x20d,
+0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,
+0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,
+0x16b3,0x16c2,0x16b9,0x16b6,0x16c8,0x16c8,0x16bc,0x16c8,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,
+0x16bf,0x16bf,0x16bf,0x16bf,0x16bf,0x16bf,0x16bf,0x16bf,0x16bf,0x16bf,0x210,0x210,0x210,0x210,0x210,0x210,
+0x16ce,0x16ce,0x16ce,0x16ce,0x16ce,0x16ce,0x16ce,0x16ce,0x16ce,0x16ce,0x16cb,0x16cb,0x16cb,0x16cb,0x16cb,0x16cb,
+0x16cb,0x16cb,0x16cb,0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x16d4,
+0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,
+0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1965,0x216,0x216,0x1761,0x1761,0x1761,
+0x176d,0x176d,0x1761,0x1761,0x1761,0x1761,0x176d,0x1761,0x1761,0x1761,0x1761,0x1764,0x216,0x216,0x216,0x216,
+0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x1767,0x1767,0x1773,0x1773,0x1773,0x1767,
+0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x219,0x219,0x219,0x219,0x219,0x219,0x219,0x219,0x219,
+0x219,0x219,0x219,0x219,0x219,0x219,0x219,0x219,0x219,0x219,0x219,0x219,0x219,0x219,0x219,0x219,
+0x219,0x219,0x219,0x219,0x219,0x219,0x219,0x219,0x1788,0x1788,0x1788,0x1788,0x1788,0x1788,0x1788,0x1788,
+0x1788,0x1788,0x1788,0x1788,0x1788,0x1788,0x1788,0x1788,0x1788,0x1788,0x1788,0x21f,0x1788,0x1788,0x21f,0x21f,
+0x21f,0x21f,0x21f,0x1785,0x1785,0x1785,0x1785,0x1785,0x178b,0x178b,0x178b,0x178b,0x178b,0x178b,0x178b,0x222,
+0x178b,0x222,0x178b,0x178b,0x178b,0x178b,0x222,0x178b,0x178b,0x178b,0x178b,0x178b,0x178b,0x178b,0x178b,0x178b,
+0x178b,0x178b,0x178b,0x178b,0x178b,0x178b,0x222,0x178b,0x178b,0x178b,0x178b,0x178b,0x178b,0x178b,0x178b,0x178b,
+0x178b,0x178e,0x222,0x222,0x222,0x222,0x222,0x222,0x15ed,0x15ed,0x15ed,0x15ed,0x15ed,0x15ed,0x15ed,0x15ed,
+0x15ed,0x15ed,0x15ed,0x15ed,0x15ed,0x15ed,0x15ed,0x15ed,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,
+0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x225,0x225,0x225,0x225,0x225,
+0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x1794,0x1794,0x1794,0x1794,0x1794,0x1794,0x1794,0x1794,
+0x1794,0x1794,0x1794,0x1794,0x1794,0x1794,0x1794,0x1794,0x1794,0x1794,0x1794,0x225,0x225,0x225,0x225,0x225,
+0x225,0x225,0x1791,0x1791,0x1791,0x1791,0x1791,0x1791,0x189f,0x189f,0x189f,0x189f,0x189f,0x189f,0x189f,0x189f,
+0x189f,0x189f,0x189f,0x189f,0x228,0x228,0x228,0x228,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,
+0x17bb,0x1869,0x1869,0x1869,0x1869,0x1866,0x1869,0x1905,0x1866,0x1866,0x1866,0x1866,0x1866,0x1866,0x1869,0x1866,
+0x1902,0x1902,0x1902,0x1902,0x1902,0x1902,0x1902,0x1902,0x1869,0x1905,0x1905,0x1869,0x1869,0x1869,0x1869,0x1869,
+0x1869,0x1869,0x1866,0x1863,0x1866,0x1869,0x1869,0x228,0x1902,0x1902,0x1902,0x1902,0x1902,0x1902,0x1902,0x1902,
+0x1902,0x1902,0x1902,0x1902,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x228,0x228,0x19e0,0x19e0,0x19e0,0x19e0,0x228,
+0x228,0x228,0x19e0,0x228,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x228,0x228,0x228,0x228,0x228,
+0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x19e3,0x19e3,0x19e3,0x19e3,0x19e0,0x19e6,0x19e6,0x19e0,
+0x19e6,0x19e6,0x228,0x228,0x228,0x228,0x228,0x228,0x17b8,0x19e0,0x19e0,0x228,0x228,0x228,0x228,0x228,
+0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x1902,0x1905,0x1905,0x1905,0x1905,0x1905,0x1905,0x1905,
+0x1905,0x1905,0x1905,0x1905,0x1905,0x1905,0x1902,0x1902,0x179d,0x179d,0x179d,0x179d,0x179a,0x179d,0x179d,0x17a0,
+0x17a3,0x17a0,0x17a0,0x179d,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,
+0x22b,0x22b,0x22b,0x179a,0x179a,0x179a,0x179a,0x179a,0x17f7,0x17f7,0x17f7,0x17f7,0x17ee,0x17ee,0x17ee,0x17e8,
+0x17eb,0x17eb,0x17eb,0x22e,0x22e,0x22e,0x22e,0x22e,0x17f4,0x17f4,0x17f4,0x17f4,0x17f4,0x17f4,0x17f4,0x17f4,
+0x17f4,0x17f4,0x22e,0x22e,0x22e,0x22e,0x17f1,0x17f1,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,
+0x1812,0x231,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,
+0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x180f,0x17fd,0x17fd,0x17fd,0x17fd,
+0x17fd,0x17fd,0x17fd,0x231,0x17fd,0x17fd,0x17fd,0x17fd,0x17fd,0x17fd,0x180f,0x1800,0x1812,0x1815,0x1815,0x1809,
+0x1806,0x1806,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x180c,0x180c,0x180c,0x180c,
+0x180c,0x180c,0x180c,0x180c,0x180c,0x180c,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,
+0x1803,0x1803,0x1803,0x1803,0x1803,0x231,0x231,0x231,0x1821,0x1824,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,
+0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,
+0x1818,0x234,0x234,0x234,0x234,0x234,0x234,0x234,0x1983,0x1983,0x1983,0x1983,0x1983,0x1983,0x1983,0x1983,
+0x1983,0x1983,0x1983,0x1983,0x1983,0x1983,0x1983,0x1983,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x237,
+0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,
+0x181b,0x237,0x237,0x181b,0x181b,0x181b,0x181b,0x181b,0x186c,0x1908,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,
+0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,
+0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,
+0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x23d,0x23d,0x181e,0x181e,0x181e,0x181e,0x181e,0x181e,
+0x181e,0x181e,0x181e,0x181e,0x181e,0x181e,0x181e,0x181e,0x23d,0x1827,0x181e,0x181e,0x181e,0x181e,0x181e,0x181e,
+0x181e,0x1827,0x181e,0x181e,0x1827,0x181e,0x181e,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,
+0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x240,0x240,0x240,
+0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,
+0x1845,0x1845,0x1836,0x1830,0x1830,0x1845,0x1833,0x1848,0x1848,0x1848,0x1848,0x184b,0x184b,0x183f,0x183c,0x1839,
+0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x243,0x183f,0x243,0x1839,0x1968,0x243,
0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,
-0x1815,0x1815,0x1806,0x1800,0x1800,0x1815,0x1803,0x1818,0x1818,0x1818,0x1818,0x181b,0x181b,0x180f,0x180c,0x1809,
-0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x246,0x180f,0x246,0x1809,0x246,0x246,
-0x246,0x246,0x246,0x246,0x246,0x246,0x246,0x246,0x246,0x246,0x246,0x246,0x246,0x246,0x246,0x246,
-0x246,0x246,0x246,0x246,0x246,0x246,0x246,0x246,0x246,0x246,0x246,0x246,0x246,0x246,0x246,0x246,
-0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,
-0x1821,0x1821,0x1821,0x1821,0x249,0x249,0x249,0x249,0x181e,0x181e,0x181e,0x181e,0x181e,0x181e,0x181e,0x181e,
-0x181e,0x181e,0x181e,0x181e,0x181e,0x181e,0x181e,0x181e,0x181e,0x181e,0x181e,0x181e,0x181e,0x181e,0x181e,0x181e,
-0x181e,0x181e,0x181e,0x181e,0x249,0x249,0x249,0x249,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,
-0x183f,0x183f,0x183f,0x183f,0x183f,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,
-0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,
-0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x24f,0x24f,0x24f,0x24f,0x24f,
-0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,
-0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,
-0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x252,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x255,
-0x187e,0x187e,0x255,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,
-0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x255,
-0x255,0x255,0x1872,0x255,0x1872,0x1872,0x255,0x1872,0x1872,0x1872,0x1875,0x1872,0x1878,0x1878,0x1881,0x1872,
-0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x187b,0x187b,0x187b,0x187b,0x187b,0x187b,0x187b,0x187b,
-0x187b,0x187b,0x255,0x255,0x255,0x255,0x255,0x255,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,
-0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,
-0x18e1,0x18e1,0x18e1,0x18e1,0x258,0x258,0x258,0x258,0x1899,0x1899,0x1899,0x1899,0x25b,0x25b,0x189c,0x189c,
-0x189c,0x189c,0x1884,0x1884,0x1884,0x1884,0x1884,0x1884,0x1884,0x1884,0x1884,0x1884,0x1884,0x1884,0x1884,0x1896,
-0x1887,0x188a,0x188d,0x189f,0x189f,0x25b,0x1890,0x1890,0x18ae,0x18b1,0x18c0,0x18c0,0x18b1,0x18b4,0x18ae,0x18ab,
-0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x1899,0x1884,0x1884,0x1884,0x1884,0x1884,0x1884,0x1896,
-0x1896,0x1884,0x1884,0x1884,0x1899,0x1899,0x1899,0x1899,0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264,
-0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264,
-0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x18db,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,
-0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264,
-0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264,
-0x264,0x264,0x264,0x264,0x264,0x264,0x933,0x933,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,
-0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0x267,0x267,
-0x267,0x267,0x267,0x267,0x267,0x267,0x267,0x267,0x18c6,0x18c6,0x18c6,0x18c6,0x18c6,0x18c6,0x18c6,0x18c6,
-0x18c6,0x18c6,0x18c6,0x26a,0x26a,0x26a,0x26a,0x26a,0x26a,0x26a,0x26a,0x26a,0x26a,0x26a,0x26a,0x26a,
-0x26a,0x26a,0x26a,0x26a,0x26a,0x26a,0x26a,0x26a,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,
-0xc4b,0xc4b,0xc4b,0x128d,0x128d,0x128d,0x26d,0x26d,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,
-0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,
-0xe7c,0xe7c,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,
-0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,
-0x26d,0x26d,0x26d,0x26d,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,
-0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0x270,0x270,0x270,0x270,0x270,
-0x270,0x270,0x270,0x270,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,
-0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,
-0xb5e,0xb5e,0x273,0x273,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,
-0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x276,0x276,0x276,0x276,0x276,0x276,0x276,
-0x276,0x276,0x276,0x276,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,
-0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,
-0x13bc,0x13bc,0x279,0x279,0x1785,0x1785,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,
-0x27c,0x27c,0x27c,0x27c,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,
-0x18db,0x18db,0x18db,0x18db,0x1101,0x378,0x378,0x384,0xc8d,0x387,0x387,0x387,0x387,0x387,0x387,0x387,
-0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,
-0x387,0x387,0x387,0x387,0x384,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x384,0x384,0x384,
-0x384,0x37e,0x1104,0x12db,0x387,0x900,0x903,0x37b,0x37b,0x1101,0x12d8,0x12d8,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x387,0x387,0x378,0x378,0x88b,0x88e,0x91b,0x91b,0x91b,0x91b,0x91b,0x91b,
-0x91b,0x91b,0x91b,0x91b,0x381,0xf63,0xf60,0x12de,0x12de,0x12de,0x12de,0x12de,0x14af,0x1107,0x1107,0xeb5,
-0xeb5,0xd80,0xeb5,0xeb5,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x387,0x38a,0x387,0x387,
-0x387,0x387,0x387,0x387,0x387,0x38a,0x387,0x387,0x38a,0x387,0x387,0x387,0x387,0x387,0x12d8,0x12db,
-0x37b,0x387,0x384,0x384,0x429,0x429,0x429,0x429,0x429,0x429,0x429,0x429,0x429,0x12e4,0x429,0x429,
-0x429,0x429,0x429,0x429,0x429,0x429,0x429,0x429,0x429,0x429,0x429,0x429,0x429,0x429,0x12e4,0x1857,
-0x1857,0xf81,0x41a,0x423,0x465,0x465,0x465,0x465,0x465,0x465,0x465,0x465,0x465,0x465,0x465,0x465,
-0x465,0x465,0x465,0x465,0x465,0x465,0x465,0x465,0x465,0x465,0x465,0xb79,0xb79,0xd8c,0xd8c,0x891,
-0xd8f,0x13ce,0x13ce,0x13ce,0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x468,
-0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x468,
-0x468,0x468,0x468,0x468,0x46e,0x46e,0x46e,0x111c,0x111c,0x111c,0x111c,0x111c,0x46b,0x46b,0x46b,0x46b,
-0x46b,0x46b,0x46b,0x46b,0x46b,0x46b,0x46b,0x46b,0x46b,0x46b,0x46b,0x46b,0x46b,0x46b,0x46b,0x46b,
-0x46b,0x46b,0x46b,0x46b,0x46b,0x46b,0x46b,0x46b,0x46b,0x46b,0x46b,0x46b,0x46b,0x46b,0x1119,0x1119,
-0x1119,0x1119,0x1119,0x1119,0x471,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,
-0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,
-0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x47a,0x474,0x47a,0x474,0x47a,0x474,0x47a,0x474,
-0x47a,0x474,0x47a,0x474,0x47a,0x474,0x47a,0x474,0x47a,0x474,0x47a,0x474,0x47a,0x474,0x47a,0x474,
-0x47a,0x474,0x47a,0x474,0x47a,0x474,0x47a,0x474,0x47a,0x474,0x474,0x474,0x474,0x474,0x477,0x975,
-0xfb1,0xfb1,0xfb4,0xfb1,0x47a,0x474,0x47a,0x474,0x47a,0x474,0x47a,0x474,0x47a,0x474,0x47a,0x474,
-0x47a,0x474,0x47a,0x474,0x47a,0x474,0x47a,0x474,0x47a,0x474,0x47a,0x474,0x47a,0x474,0xfb4,0xfb1,
-0xfb4,0xfb1,0xfb4,0xfb1,0x486,0x486,0x486,0x486,0x486,0x486,0x486,0x486,0x489,0x489,0x489,0x489,
-0x489,0x489,0x489,0x489,0x486,0x486,0x486,0x486,0x486,0x486,0x486,0x486,0x489,0x489,0x489,0x489,
-0x489,0x489,0x489,0x489,0x666,0x666,0x669,0x4a4,0x675,0x672,0x672,0x66f,0x4ce,0x4ce,0x48c,0x48c,
-0x48c,0x48c,0x48c,0xaa7,0x678,0x4b0,0x690,0x693,0x4c5,0x678,0x4b3,0x4b3,0x4a4,0x4bf,0x4bf,0x666,
-0x4cb,0x4c8,0x66c,0x49e,0x495,0x495,0x498,0x498,0x498,0x498,0x498,0x49b,0x498,0x498,0x498,0x48f,
-0x4d7,0x4d4,0x4d1,0x4d1,0x684,0x4b9,0x4b6,0x681,0x67e,0x67b,0x68d,0x4a7,0x68a,0x68a,0x4bc,0x4bf,
-0x687,0x687,0x4bc,0x4bf,0x4a1,0x4a4,0x4a4,0x4a4,0x4c2,0x4ad,0x4aa,0xb8e,0xaad,0xab0,0xaaa,0xaaa,
-0xaaa,0xaaa,0xb85,0xb85,0xb85,0xb85,0xb8b,0xcba,0xcb7,0xd9b,0xd9e,0xb88,0xd9e,0xd9e,0xd9e,0xd9e,
-0xd9b,0xd9e,0xd9e,0xb82,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4f8,0x4fe,0x714,0x4fb,0x978,
-0x999,0xab3,0xab3,0xab3,0xb94,0xb94,0xda4,0xda4,0xda4,0xda4,0x1125,0x1128,0x1128,0x12f9,0x149d,0x14c7,
-0x14ca,0x14ca,0x16dd,0x185a,0x50a,0x50a,0x522,0x6a2,0x507,0x69f,0x50a,0x51f,0x507,0x6a2,0x519,0x522,
-0x522,0x522,0x519,0x519,0x522,0x522,0x522,0x6ab,0x507,0x522,0x6a5,0x507,0x516,0x522,0x522,0x522,
-0x522,0x522,0x507,0x507,0x50d,0x69f,0x6a8,0x507,0x522,0x507,0x6ae,0x507,0x522,0x510,0x528,0x6b1,
-0x522,0x522,0x513,0x519,0x522,0x522,0x525,0x522,0x519,0x51c,0x51c,0x51c,0x51c,0xabc,0xab9,0xcbd,
-0xdad,0xba9,0xbac,0xbac,0xba6,0xba3,0xba3,0xba3,0xba3,0xbac,0xba9,0xba9,0xba9,0xba9,0xba0,0xba3,
-0xdaa,0xec1,0xec4,0xfba,0x112b,0x112b,0x112b,0x6b7,0x6b4,0x52b,0x52e,0x52e,0x52e,0x52e,0x52e,0x6b4,
-0x6b7,0x6b7,0x6b4,0x52e,0x6bd,0x6bd,0x6bd,0x6bd,0x6bd,0x6bd,0x6bd,0x6bd,0x6bd,0x6bd,0x6bd,0x6bd,
-0x537,0x537,0x537,0x537,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x531,0x531,
-0x531,0x531,0x531,0x531,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53a,0x543,0x543,0x53d,
-0x53d,0x53d,0x540,0x53a,0x53d,0x53d,0x53a,0x53a,0x53a,0x53a,0x53d,0x53d,0x6c0,0x6c0,0x53a,0x53a,
-0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x540,0x540,0x540,
-0x53d,0x53d,0x6c3,0x53d,0x6c3,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53a,0x53d,0x53a,0x53a,
-0x53a,0x53a,0x53a,0x53a,0x53d,0x53d,0x53a,0x6c0,0x53a,0x53a,0x53a,0xac2,0xac2,0xac2,0xac2,0xac2,
-0xac2,0xac2,0xac2,0xac2,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,
-0x6c9,0x546,0x6c9,0x6c9,0x549,0x546,0x546,0x6c9,0x6c9,0x549,0x546,0x6c9,0x549,0x546,0x546,0x6c9,
-0x546,0x6c9,0x555,0x552,0x546,0x6c9,0x546,0x546,0x546,0x546,0x6c9,0x546,0x546,0x6c9,0x6c9,0x6c9,
-0x6c9,0x546,0x546,0x6c9,0x549,0x6c9,0x549,0x6c9,0x6c9,0x6c9,0x6c9,0x6c9,0x6cf,0x54c,0x6c9,0x54c,
-0x54c,0x546,0x546,0x546,0x6c9,0x6c9,0x6c9,0x6c9,0x546,0x546,0x546,0x546,0x6c9,0x6c9,0x546,0x546,
-0x546,0x549,0x546,0x546,0x549,0x546,0x546,0x549,0x6c9,0x549,0x546,0x546,0x6c9,0x546,0x546,0x546,
-0x546,0x546,0x6c9,0x546,0x546,0x546,0x546,0x546,0x546,0x546,0x546,0x546,0x546,0x546,0x546,0x546,
-0x6cc,0x6c9,0x549,0x546,0x6c9,0x6c9,0x6c9,0x6c9,0x546,0x546,0x6c9,0x6c9,0x546,0x549,0x6cc,0x6cc,
-0x549,0x549,0x546,0x546,0x549,0x549,0x546,0x546,0x549,0x549,0x546,0x546,0x546,0x546,0x546,0x546,
-0x549,0x549,0x6c9,0x6c9,0x549,0x549,0x6c9,0x6c9,0x549,0x549,0x546,0x546,0x546,0x546,0x546,0x546,
-0x546,0x546,0x546,0x546,0x546,0x6c9,0x546,0x546,0x546,0x6c9,0x546,0x546,0x546,0x546,0x546,0x546,
-0x546,0x6c9,0x546,0x546,0x546,0x546,0x546,0x546,0x549,0x549,0x549,0x549,0x546,0x546,0x546,0x546,
-0x546,0x546,0x546,0x546,0x546,0x546,0x546,0x546,0x546,0x546,0x546,0x6c9,0x546,0x546,0x546,0x546,
-0x546,0x546,0x546,0x546,0x546,0x546,0x546,0x546,0x546,0x546,0x546,0x546,0x546,0x546,0x546,0x546,
-0x546,0x546,0x546,0x546,0x546,0x546,0x546,0x546,0x546,0x546,0x546,0x546,0x549,0x549,0x549,0x549,
-0x546,0x546,0x546,0x546,0x546,0x546,0x549,0x549,0x549,0x549,0x546,0x54f,0x546,0x546,0xbb2,0xbb2,
-0xbb2,0xbb2,0xbb2,0xbb2,0xbb2,0xbb2,0xbb2,0xbb2,0xbb2,0xbb2,0xbb2,0xbb2,0x558,0xac5,0x558,0x558,
-0x558,0x558,0x558,0x558,0x564,0x561,0x564,0x561,0x558,0x558,0x558,0x558,0x558,0x558,0x6d2,0x558,
-0x558,0x558,0x558,0x558,0x558,0x558,0x7d7,0x7d7,0x558,0x558,0x558,0x558,0x55e,0x55e,0x558,0x558,
-0x558,0x558,0x558,0x558,0x55b,0x7dd,0x7da,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,
-0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,
-0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0xac5,0xbb8,0xac5,0xac5,0xac5,
-0x567,0x567,0x567,0x567,0x567,0x567,0x567,0x567,0x567,0x567,0x567,0x567,0x567,0x567,0x567,0x567,
-0x567,0x567,0x567,0x567,0x567,0x567,0x567,0x567,0x567,0x567,0x567,0x567,0x567,0x567,0x567,0x567,
-0x6db,0x6db,0x6db,0x6db,0x6db,0x6db,0x6db,0x6db,0x6db,0x6db,0x56d,0xc1e,0xc1e,0xc1e,0xc1e,0xc1e,
-0xc1e,0xc1e,0xc1e,0xc1e,0xc1e,0xc1e,0xc1e,0xc1e,0xc1e,0xc1e,0xc1e,0xc1e,0xc1e,0xc1e,0xc1e,0xd32,
-0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,
-0x6e4,0x6e4,0x6e4,0x6e4,0x570,0x573,0x573,0x573,0x573,0x573,0x573,0x573,0x573,0x573,0x573,0x573,
-0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x573,0x573,0x573,0x573,
-0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,
-0x6e7,0x6e7,0x6e7,0x6e7,0x6e7,0x6e7,0x6e7,0x6e7,0x6e7,0x6e7,0x6e7,0x6e7,0x6e7,0x6e7,0x6e7,0x6e7,
-0x576,0x576,0x6e7,0x6e7,0x6e7,0x6e7,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,
-0x6ed,0x6ed,0x579,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x57c,0x57c,0x579,0x579,0x57f,0x57f,
-0x57f,0x57f,0x6ed,0x6ed,0x57f,0x57f,0x6f0,0x6ed,0x579,0x579,0x579,0x579,0x6ed,0x6ed,0x57f,0x57f,
-0x6f0,0x6ed,0x579,0x579,0x579,0x579,0x6ed,0x6ed,0x6ea,0x579,0x57f,0x6ed,0x579,0x579,0x6ea,0x6ed,
-0x6ed,0x6ed,0x57f,0x57f,0x579,0x579,0x579,0x579,0x579,0x579,0x579,0x579,0x579,0x579,0x579,0x579,
-0x579,0x579,0x6ed,0x6ea,0x6ed,0x6ea,0x579,0x57f,0x57f,0x57f,0x57f,0x57f,0x57f,0x579,0x579,0x6ea,
-0xacb,0xacb,0xacb,0xacb,0xacb,0xacb,0xacb,0xacb,0xbbe,0xbbe,0xbbe,0xbc1,0xbc1,0xc36,0xc36,0xbbe,
-0x58b,0x58b,0x58b,0x58b,0x588,0x6ff,0x6ff,0x582,0x582,0x6f3,0x582,0x582,0x582,0x582,0x6f9,0x6f3,
-0x582,0x588,0x582,0x582,0xd3b,0xd3b,0xbc4,0xbc4,0xdbc,0xace,0x585,0x585,0x6f6,0x58e,0x6f6,0x585,
-0x588,0x582,0x588,0x588,0x582,0x582,0x588,0x582,0x582,0x582,0x588,0x582,0x582,0x582,0x588,0x588,
-0x582,0x582,0x582,0x582,0x582,0x582,0x582,0x582,0x588,0x58b,0x58b,0x585,0x582,0x582,0x582,0x582,
-0x705,0x582,0x705,0x582,0x582,0x582,0x582,0x582,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,
-0x7e0,0x7e0,0x7e0,0x7e0,0x582,0x582,0x582,0x582,0x582,0x582,0x582,0x582,0x582,0x582,0x582,0x582,
-0x702,0x6ff,0x591,0x702,0x6f3,0x6f9,0x588,0x6f3,0x6fc,0x6f3,0x6f3,0x582,0x6f3,0x6ff,0x591,0x6ff,
-0xace,0xace,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbca,0xbc7,0xbc7,0xdb3,0xe73,
-0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,
-0x594,0x594,0x594,0x594,0x597,0x1383,0x1383,0x1383,0x597,0x597,0x597,0x597,0x597,0x597,0x597,0x597,
-0x14d3,0x59d,0x5a9,0x59d,0x59d,0x1383,0x597,0x597,0x5ac,0x5a9,0x1386,0x1386,0x5af,0x5af,0x597,0x5a3,
-0x597,0x597,0x5a3,0x597,0x5a3,0x597,0x5a3,0x597,0x597,0x597,0x597,0x597,0x597,0x5a3,0x597,0x597,
-0x597,0x597,0x597,0x597,0x1383,0x597,0x597,0x597,0x597,0x597,0x597,0x597,0x597,0x597,0x597,0x5a3,
-0x5a3,0x597,0x597,0x597,0x597,0x597,0x597,0x597,0x597,0x70b,0x597,0x597,0x597,0x597,0x597,0x597,
-0x5a3,0x597,0x597,0x5a3,0x597,0x597,0x597,0x597,0x1383,0x597,0x1383,0x597,0x597,0x597,0x597,0x1383,
-0x1383,0x1383,0x597,0x1287,0x597,0x597,0x597,0x5a0,0x5a0,0x5a0,0x5a0,0x1305,0x1305,0x597,0x59a,0x5a6,
-0x5ac,0x597,0x597,0x597,0xbd0,0xbcd,0xbd0,0xbcd,0xbd0,0xbcd,0xbd0,0xbcd,0xbd0,0xbcd,0xbd0,0xbcd,
-0xbd0,0xbcd,0x708,0x708,0x708,0x708,0x708,0x708,0x708,0x708,0x708,0x708,0x597,0x5a3,0x597,0x597,
-0x597,0x597,0x597,0x597,0x597,0x597,0x597,0x597,0x597,0x597,0x597,0x597,0x1383,0x597,0x597,0x597,
-0x597,0x597,0x597,0x597,0x597,0x597,0x597,0x597,0x597,0x597,0x597,0x1383,0x5d0,0x5d0,0x5d0,0x5d0,
-0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,
-0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d0,0x5d6,0x5c7,0x5ca,0x5d6,0x5d6,0x5d6,0x5d6,
-0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,
-0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5cd,0x5cd,0x5cd,0x5cd,0x5cd,0x5cd,
-0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,
-0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d3,0x5d9,0x5d6,0x5d0,
-0x5d3,0x5d9,0x5d6,0x5d0,0x5d3,0x5d9,0x5d6,0x5d0,0x5d3,0x5d9,0x5d6,0x5d0,0x5d3,0x5d9,0x5d6,0x5d0,
-0x5d3,0x5d9,0x5d6,0x5d0,0x5d3,0x5d9,0x5d6,0x5d0,0x5d3,0x5d9,0x5d6,0x5d0,0x5d6,0x5d0,0x5d6,0x5d0,
-0x5d6,0x5d0,0x5d6,0x5d0,0x5d6,0x5d0,0x5d6,0x5d0,0x5d3,0x5d9,0x5d6,0x5d0,0x5d3,0x5d9,0x5d6,0x5d0,
-0x5d3,0x5d9,0x5d6,0x5d0,0x5d3,0x5d9,0x5d6,0x5d0,0x5d6,0x5d0,0x5d3,0x5d9,0x5d6,0x5d0,0x5d6,0x5d0,
-0x5d3,0x5d9,0x5d6,0x5d0,0x5d3,0x5d9,0x5d6,0x5d0,0x5d6,0x5d0,0x1308,0x1308,0x1308,0x1308,0x1308,0x1308,
-0x1308,0x1308,0x1308,0x1308,0x1308,0x1308,0x1308,0x1308,0x5d6,0x5d0,0x5d6,0x5d0,0x5d6,0x5d0,0x5d3,0x5d9,
-0x5d3,0x5d9,0x5d6,0x5d0,0x5d6,0x5d0,0x5d6,0x5d0,0x5d6,0x5d0,0x5d6,0x5d0,0x5d6,0x5d0,0x5d6,0x5d0,
-0x5d3,0x5d6,0x5d0,0x5d3,0x5d6,0x5d0,0x5d3,0x5d9,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,
-0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d3,
-0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,
-0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,
-0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d3,0x5d3,0x5d0,0x5d3,0x5d0,0x5d3,0x5d0,0x5d0,
-0x5d3,0x5d0,0x5d0,0x5d3,0x5d0,0x5d3,0x5d0,0x5d0,0x5d3,0x5d0,0x5d3,0x5d3,0x5d0,0x5d0,0x5d0,0x5d3,
-0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d3,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,
-0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d3,0x5d3,0x5d0,0x5d0,
-0x5d3,0x5d0,0x5d3,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,
-0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,
-0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d9,0x5d6,0x5d6,0x5d6,0x5d6,
-0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,
-0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d9,0x5d9,0x5d9,0x5d9,
-0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,
-0x5d9,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5dc,0x5dc,0x5dc,0x5dc,
-0xfc6,0xfc6,0xfc6,0x14d6,0x14d6,0x14d6,0x14d6,0x14d6,0x14d6,0x14d6,0x16e3,0x16e3,0x83d,0x843,0x843,0x84f,
-0x84f,0x840,0x837,0x840,0x837,0x840,0x837,0x840,0x837,0x840,0x837,0x840,0x5eb,0x5eb,0x5e5,0x5eb,
-0x5e5,0x5eb,0x5e5,0x5eb,0x5e5,0x5eb,0x5e5,0x5e8,0x5ee,0x5eb,0x5e5,0x5eb,0x5e5,0x5e8,0x5ee,0x5eb,
-0x5e5,0x5eb,0x5e5,0x5e8,0x5ee,0x5eb,0x5e5,0x5e8,0x5ee,0x5eb,0x5e5,0x5e8,0x5ee,0x5eb,0x5e5,0x5eb,
-0x5e5,0x5eb,0x5e5,0x5eb,0x5e5,0x5eb,0x5e5,0x5e8,0x5ee,0x5eb,0x5e5,0x5e8,0x5ee,0x5eb,0x5e5,0x5e8,
-0x5ee,0x5eb,0x5e5,0x5e8,0x5ee,0x5eb,0x5e5,0x5e8,0x5ee,0x5eb,0x5e5,0x5e8,0x5ee,0x5eb,0x5e5,0x5e8,
-0x5ee,0x5eb,0x5e5,0x5e8,0x5ee,0x5eb,0x5e5,0x5e8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,
-0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d5,0x6d5,0x6d5,0x6d5,
-0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,
-0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6de,0x6de,
-0x6de,0x6de,0x6de,0x6de,0x6de,0x6de,0x6de,0x6de,0x6de,0x6de,0x6e1,0x6de,0x6de,0x6de,0x6de,0x6de,
-0x6de,0x6de,0x6de,0x6de,0x6de,0x6de,0x6de,0x6de,0x6db,0x6db,0x6db,0x6db,0x6db,0x6db,0x6db,0x6db,
-0x6db,0x6db,0x6db,0x6db,0x6db,0x6db,0x6db,0x6db,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,
-0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,
-0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x6e4,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,
-0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,
-0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0xc24,0x8a3,0x89d,0x89a,0x8a0,0x897,0x723,0x726,
-0x726,0x726,0x726,0x726,0x726,0x726,0x726,0x726,0x8a9,0x723,0x723,0x723,0x723,0x723,0x723,0x723,
-0x723,0x723,0x723,0x723,0x723,0x723,0x723,0x723,0x723,0x723,0x723,0x723,0x723,0x723,0x723,0x723,
-0x723,0x723,0x723,0x723,0x723,0x723,0x723,0x723,0x723,0x723,0x8a6,0x8a6,0x729,0x8b8,0x8bb,0x8c1,
-0x7e3,0x7ef,0x8d6,0x7ec,0x8af,0x8ac,0x8af,0x8ac,0x8b5,0x8b2,0x8b5,0x8b2,0x8af,0x8ac,0x7e9,0x8c1,
-0x8af,0x8ac,0x8af,0x8ac,0x8af,0x8ac,0x8af,0x8ac,0x8c4,0x8cd,0x8ca,0x8ca,0x72f,0x76b,0x76b,0x76b,
-0x76b,0x76b,0x76b,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,
-0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x732,0x74d,0x72c,0x753,0x756,0x750,0x768,0x768,0x768,
-0x768,0x768,0x768,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,
-0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x732,0x74d,0x72c,0x74d,0xc27,0x7d1,0x7d1,0x7d1,0x7d1,
-0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,
-0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x1281,0x1281,
-0x1281,0x1281,0x1281,0x7d4,0x7e9,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x90c,0x90c,
-0x90c,0x90c,0x7f2,0x7f2,0x8c7,0x8d3,0x8d3,0x8d3,0x8d3,0x8d0,0x7e6,0x8be,0xaf2,0xaf2,0xaf2,0xc39,
-0xc57,0xc54,0xb0d,0x894,0x7f8,0x7f5,0x7f8,0x7fb,0x7f5,0x7f8,0x7f5,0x7f8,0x7f5,0x7f8,0x7f5,0x7f5,
-0x7f5,0x7f5,0x7f5,0x7f5,0x7f8,0x7f8,0x7f5,0x7f8,0x7f8,0x7f5,0x7f8,0x7f8,0x7f5,0x7f8,0x7f8,0x7f5,
-0x7f8,0x7f8,0x7f5,0x7f5,0xc5a,0x80a,0x804,0x80a,0x804,0x80a,0x804,0x80a,0x804,0x80a,0x804,0x804,
-0x807,0x804,0x807,0x804,0x807,0x804,0x807,0x804,0x807,0x804,0x807,0x804,0x807,0x804,0x807,0x804,
-0x807,0x804,0x807,0x804,0x807,0x804,0x807,0x80a,0x804,0x807,0x804,0x807,0x804,0x807,0x804,0x804,
-0x804,0x804,0x804,0x804,0x807,0x807,0x804,0x807,0x807,0x804,0x807,0x807,0x804,0x807,0x807,0x804,
-0x807,0x807,0x804,0x804,0x804,0x804,0x804,0x80a,0x804,0x80a,0x804,0x80a,0x804,0x804,0x804,0x804,
-0x804,0x804,0x80a,0x804,0x804,0x804,0x804,0x804,0x807,0x80a,0x80a,0x807,0x807,0x807,0x807,0x8dc,
-0x8df,0x80d,0x810,0xc42,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,
-0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,
-0x816,0x816,0x816,0x816,0x819,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,
-0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,
-0x822,0x822,0x822,0x822,0x822,0x822,0x822,0x822,0x822,0x822,0x822,0x822,0x822,0x822,0x822,0x822,
-0x822,0x822,0x822,0x822,0x822,0x822,0x822,0x822,0x822,0x822,0x822,0x822,0xd44,0xd44,0xe76,0x81c,
-0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0xd3e,0xd3e,0xd3e,0xd3e,
-0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,
-0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,
-0x8f1,0x828,0x828,0x828,0x828,0x828,0x828,0xd47,0xd47,0xd47,0xd47,0x8f4,0x8f4,0x8f4,0x8f4,0x8f4,
-0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,
-0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,
-0x828,0x828,0xd47,0xd47,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,
-0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,
-0x82b,0x82b,0x82b,0x82b,0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,0x82e,0x82e,0x82e,0x82e,
-0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,
-0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0xe79,0xe79,
-0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,
-0xe79,0xe79,0xe79,0xe79,0x10e9,0x10e9,0x10e9,0x10e9,0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x831,
-0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x831,
-0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x834,0x834,0x831,0x834,0x831,0x834,
-0x834,0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x834,0x831,0x834,0x831,0x834,
-0x834,0x831,0x831,0x834,0x834,0x834,0x831,0x831,0x831,0x831,0x148b,0x148b,0xc4b,0xc4b,0xc4b,0xc4b,
-0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0x8e8,0x8e8,0x8e8,0x8e8,
-0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,
-0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x12bd,0x12bd,0x12bd,0x12bd,
-0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0xd3e,0xc45,0xc45,0xc45,0xc45,0xc45,0xc45,0xc45,
-0xc45,0xc45,0xc45,0xc45,0xc45,0xc45,0xc45,0xc45,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,
-0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8ee,
-0x8eb,0x8ee,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,
-0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0xc45,0xc45,0xc45,0xc45,0xc45,0xc45,0xc45,0xc45,0xc45,0xc45,0xc45,
-0xc45,0xc45,0xc45,0xc45,0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,
-0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,0x8f1,
-0x8f1,0x8f1,0x8f1,0xd47,0x96f,0x951,0x951,0x951,0x951,0x94b,0x951,0x951,0x963,0x951,0x951,0x94e,
-0x95a,0x960,0x960,0x960,0x960,0x960,0x963,0x94b,0x957,0x94b,0x94b,0x94b,0x942,0x942,0x94b,0x94b,
-0x94b,0x94b,0x94b,0x94b,0x966,0x966,0x966,0x966,0x966,0x966,0x966,0x966,0x966,0x966,0x94b,0x94b,
-0x94b,0x94b,0x94b,0x94b,0x94b,0x94b,0x94b,0x94b,0x94e,0x942,0x94b,0x942,0x94b,0x942,0x95d,0x954,
-0x95d,0x954,0x96c,0x96c,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,
-0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,
-0x97b,0x97b,0x97b,0x97b,0x97e,0x97e,0x97e,0x97e,0x97e,0x97e,0x97e,0x97e,0x97e,0x97e,0x97e,0x97e,
-0x97e,0x97e,0x97e,0x97e,0x97e,0x97e,0x97e,0x97e,0x97e,0x97e,0x97e,0x97e,0x97e,0x97e,0x97e,0x97e,
-0x97e,0x97e,0x97e,0x97e,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,
-0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,
-0x981,0x981,0x981,0x981,0x98a,0x98a,0x98a,0x98a,0x98a,0x98a,0x98a,0x98a,0x98a,0x98a,0x98a,0x98a,
-0x98a,0x98a,0x98a,0x98a,0x98a,0x98a,0x98a,0x98a,0x98a,0x98a,0x98a,0x98a,0x98a,0x98a,0x98a,0x98a,
-0x98a,0x98a,0x984,0x984,0x98d,0x98d,0x98d,0x98d,0x98d,0x98d,0x98d,0x98d,0x98d,0x98d,0x98d,0x98d,
-0x98d,0x98d,0x98d,0x98d,0x98d,0x98d,0x98d,0x98d,0x98d,0x98d,0x98d,0x98d,0x98d,0x98d,0x98d,0x98d,
-0x98d,0x98d,0x987,0x987,0x98a,0x98a,0x98a,0x98a,0x98a,0x98a,0x98a,0x98a,0x98a,0x98a,0x98a,0x98a,
-0x98a,0x98a,0x98a,0x98a,0x98a,0x98a,0x98a,0x98a,0x98a,0x98a,0x98a,0x98a,0x98a,0x98a,0x98a,0x98a,
-0x98a,0x98a,0x98a,0x98a,0x98d,0x98d,0x98d,0x98d,0x98d,0x98d,0x98d,0x98d,0x98d,0x98d,0x98d,0x98d,
-0x98d,0x98d,0x98d,0x98d,0x98d,0x98d,0x98d,0x98d,0x98d,0x98d,0x98d,0x98d,0x98d,0x98d,0x98d,0x98d,
-0x98d,0x98d,0x98d,0x98d,0x990,0x993,0x993,0x993,0x993,0x993,0x993,0x993,0x993,0x993,0x993,0x993,
-0x993,0x993,0x993,0x993,0x993,0x993,0x993,0x993,0x993,0x993,0x993,0x993,0x993,0x993,0x993,0x993,
-0x990,0x993,0x993,0x993,0x993,0x993,0x993,0x993,0x993,0x993,0x993,0x993,0x993,0x993,0x993,0x993,
-0x993,0x993,0x993,0x993,0x993,0x993,0x993,0x993,0x993,0x993,0x993,0x993,0xa20,0xa20,0xfab,0xa20,
-0xa20,0xa20,0xa23,0xa20,0xfab,0xa20,0xa20,0xfa2,0xa1a,0xa0e,0xa0e,0xa0e,0xa0e,0xa1d,0xa0e,0xf90,
-0xf90,0xf90,0xa0e,0xa11,0xa1a,0xa14,0xf96,0xfa5,0xfa5,0xf90,0xf90,0xfab,0xb13,0xb13,0xb13,0xb13,
-0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xa26,0xa26,0xa17,0xa17,0xa17,0xa17,0xa20,0xa20,0xa20,0xa20,
-0xa20,0xa20,0xa1d,0xa1d,0xa0e,0xa0e,0xfab,0xfab,0xfab,0xfab,0xf90,0xf90,0xa20,0xa20,0xa20,0xa20,
-0xa20,0xa20,0xa20,0xa20,0xa20,0xa20,0xa20,0xa20,0xa20,0xa20,0xa20,0xa20,0xa20,0xa20,0xa20,0xa20,
-0xa20,0xa20,0xa20,0xa20,0xa20,0xa20,0xa20,0xa20,0xa20,0xa20,0xa20,0xa20,0xa35,0xa35,0xa35,0xa35,
-0xa35,0xa35,0xa35,0xd98,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,
-0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,
-0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xd98,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,
-0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa35,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,
-0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,
-0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,
-0xa41,0xa41,0xa41,0xa41,0xa41,0xa3e,0xa44,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0x1122,
-0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x111f,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,
+0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,
+0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,
+0x1851,0x1851,0x1851,0x1851,0x246,0x246,0x246,0x246,0x184e,0x184e,0x184e,0x184e,0x184e,0x184e,0x184e,0x184e,
+0x184e,0x184e,0x184e,0x184e,0x184e,0x184e,0x184e,0x184e,0x184e,0x184e,0x184e,0x184e,0x184e,0x184e,0x184e,0x184e,
+0x184e,0x184e,0x184e,0x184e,0x246,0x246,0x246,0x246,0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,
+0x186f,0x186f,0x186f,0x186f,0x186f,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x249,0x249,0x249,0x249,0x249,0x249,
+0x249,0x249,0x249,0x249,0x249,0x249,0x249,0x249,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,
+0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x24c,0x24c,0x24c,0x24c,0x24c,
+0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x190e,0x190e,0x190e,0x190e,0x190e,0x190e,0x190e,0x190e,
+0x190e,0x190e,0x190e,0x190e,0x190e,0x190e,0x190e,0x190e,0x190e,0x190e,0x190e,0x190e,0x190e,0x190e,0x190e,0x190e,
+0x190e,0x190e,0x190e,0x190e,0x190e,0x190e,0x190e,0x24f,0x18ae,0x18ae,0x18ae,0x18ae,0x18ae,0x18ae,0x18ae,0x252,
+0x18ae,0x18ae,0x252,0x18ae,0x18ae,0x18ae,0x18ae,0x18ae,0x18ae,0x18ae,0x18ae,0x18ae,0x18ae,0x18ae,0x18ae,0x18ae,
+0x18ae,0x18ae,0x18ae,0x18ae,0x18ae,0x18ae,0x18ae,0x18ae,0x18ae,0x18a2,0x18a2,0x18a2,0x18a2,0x18a2,0x18a2,0x252,
+0x252,0x252,0x18a2,0x252,0x18a2,0x18a2,0x252,0x18a2,0x18a2,0x18a2,0x18a5,0x18a2,0x18a8,0x18a8,0x18b1,0x18a2,
+0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x18ab,0x18ab,0x18ab,0x18ab,0x18ab,0x18ab,0x18ab,0x18ab,
+0x18ab,0x18ab,0x252,0x252,0x252,0x252,0x252,0x252,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,
+0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,
+0x1911,0x1911,0x1911,0x1911,0x255,0x255,0x255,0x255,0x18c9,0x18c9,0x18c9,0x18c9,0x258,0x258,0x18cc,0x18cc,
+0x18cc,0x18cc,0x18b4,0x18b4,0x18b4,0x18b4,0x18b4,0x18b4,0x18b4,0x18b4,0x18b4,0x18b4,0x18b4,0x18b4,0x18b4,0x18c6,
+0x18b7,0x18ba,0x18bd,0x18cf,0x18cf,0x196b,0x18c0,0x18c0,0x18de,0x18e1,0x18f0,0x18f0,0x18e1,0x18e4,0x18de,0x18db,
+0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x18c9,0x18b4,0x18b4,0x18b4,0x18b4,0x18b4,0x18b4,0x18c6,
+0x18c6,0x18b4,0x18b4,0x18b4,0x18c9,0x18c9,0x18c9,0x18c9,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,
+0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,
+0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,
+0x1980,0x1980,0x1980,0x1980,0x197d,0x197d,0x197d,0x1971,0x1971,0x1971,0x1971,0x1971,0x1971,0x1971,0x1971,0x1971,
+0x197d,0x1977,0x1974,0x197a,0x264,0x264,0x264,0x264,0x1983,0x1983,0x1983,0x1983,0x1983,0x1983,0x1983,0x1983,
+0x1983,0x1983,0x1983,0x1983,0x1983,0x1983,0x1983,0x1983,0x1983,0x1983,0x1983,0x1983,0x1983,0x1983,0x1983,0x1983,
+0x1983,0x1983,0x1983,0x267,0x267,0x1983,0x1983,0x1983,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x26a,0x1992,
+0x1992,0x26a,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,
+0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x198f,0x198f,0x198f,0x198f,0x198f,0x26a,
+0x1986,0x1986,0x26a,0x198f,0x198f,0x1986,0x198f,0x1989,0x1992,0x26a,0x26a,0x26a,0x26a,0x26a,0x26a,0x26a,
+0x199b,0x199b,0x199e,0x199e,0x1995,0x1995,0x1995,0x1995,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,
+0x1998,0x1998,0x1998,0x1998,0x1998,0x1998,0x1998,0x1998,0x1998,0x1998,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,
+0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a4,0x19a1,0x19a1,0x19a1,
+0x19a4,0x19a1,0x19a1,0x19a1,0x19a1,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,
+0x19ad,0x19ad,0x19ad,0x19ad,0x19ad,0x19ad,0x19ad,0x19ad,0x19ad,0x19ad,0x19ad,0x19ad,0x19ad,0x19ad,0x19ad,0x19ad,
+0x19ad,0x19ad,0x19ad,0x19a7,0x19a7,0x19aa,0x19aa,0x19b0,0x19b0,0x273,0x273,0x273,0x273,0x273,0x273,0x273,
+0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,
+0x19b3,0x19b3,0x19b3,0x19b3,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,
+0x19b6,0x19b6,0x19b6,0x19b6,0x19b6,0x19b6,0x19b6,0x19b6,0x19b6,0x19b6,0x19b6,0x19b6,0x19b6,0x19b6,0x19b6,0x19b6,
+0x19b6,0x19b6,0x19b6,0x19b6,0x19b6,0x19b6,0x19b6,0x19b9,0x19c2,0x19b6,0x19b6,0x279,0x279,0x279,0x279,0x279,
+0x19c5,0x19c5,0x19c5,0x19c5,0x19c5,0x19c5,0x19c5,0x19c8,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,
+0x19d1,0x19d1,0x19d1,0x19d1,0x19d1,0x19d1,0x19d1,0x19d1,0x19d1,0x19d1,0x19d1,0x19d1,0x19d1,0x19d1,0x19d1,0x19d1,
+0x19d1,0x19d1,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19ce,0x19ce,0x19ce,
+0x19ce,0x19d4,0x19d4,0x19d4,0x19d4,0x19d4,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x282,0x282,0x282,0x282,
+0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,
+0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x190b,0x29d,0x29d,0x29d,
+0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x282,0x282,0x282,0x282,
+0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,
+0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x954,0x954,0xb1f,0xb1f,0xb1f,0xb1f,
+0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,
+0xb1f,0xb1f,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x18f6,0x18f6,0x18f6,0x18f6,
+0x18f6,0x18f6,0x18f6,0x18f6,0x18f6,0x18f6,0x18f6,0x19da,0x19da,0x19da,0x19da,0x19da,0x288,0x288,0x288,0x288,
+0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0xc78,0xc78,0xc78,0xc78,
+0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0x12c0,0x12c0,0x12c0,0x28b,0x28b,0xeac,0xeac,0xeac,0xeac,
+0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,
+0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,
+0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,
+0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0xb82,0xb82,0xb82,0xb82,0xb82,0xb82,0xb82,0xb82,
+0xb82,0xb82,0xb82,0xb82,0xb82,0xb82,0xb82,0xb82,0xb82,0xb82,0xb82,0xb82,0xb82,0xb82,0xb82,0x28e,
+0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,
+0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,
+0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0x291,0x291,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,
+0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x294,0x294,0x294,
+0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,
+0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,
+0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x297,0x297,0x17b5,0x17b5,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,
+0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x190b,0x190b,0x190b,0x190b,0x190b,0x190b,0x190b,0x190b,
+0x190b,0x190b,0x190b,0x190b,0x190b,0x190b,0x190b,0x190b,0x1131,0x396,0x396,0x3a2,0xcba,0x3a5,0x3a5,0x3a5,
+0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,
+0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,0x3a2,0x396,0x396,0x396,0x396,0x396,0x396,0x396,
+0x396,0x3a2,0x3a2,0x3a2,0x3a2,0x39c,0x1134,0x1317,0x3a5,0x921,0x924,0x399,0x399,0x1131,0x1314,0x1314,
+0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a5,0x3a5,0x396,0x396,0x8ac,0x8af,0x93f,0x93f,
+0x93f,0x93f,0x93f,0x93f,0x93f,0x93f,0x93f,0x93f,0x39f,0xf93,0xf90,0x131a,0x131a,0x131a,0x131a,0x131a,
+0x14df,0x1137,0x1137,0xee5,0xee5,0xdb3,0xee5,0xee5,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,
+0x3a5,0x3a8,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,0x3a8,0x3a5,0x3a5,0x3a8,0x3a5,0x3a5,0x3a5,
+0x3a5,0x3a5,0x1314,0x1317,0x399,0x3a5,0x3a2,0x3a2,0x447,0x447,0x447,0x447,0x447,0x447,0x447,0x447,
+0x447,0x1320,0x447,0x447,0x447,0x447,0x447,0x447,0x447,0x447,0x447,0x447,0x447,0x447,0x447,0x447,
+0x447,0x447,0x1320,0x1887,0x1887,0xfb1,0x438,0x441,0x483,0x483,0x483,0x483,0x483,0x483,0x483,0x483,
+0x483,0x483,0x483,0x483,0x483,0x483,0x483,0x483,0x483,0x483,0x483,0x483,0x483,0x483,0x483,0xba0,
+0xba0,0xdbf,0xdbf,0x8b2,0xdc2,0x1401,0x1401,0x1401,0x486,0x486,0x486,0x486,0x486,0x486,0x486,0x486,
+0x486,0x486,0x486,0x486,0x486,0x486,0x486,0x486,0x486,0x486,0x486,0x486,0x486,0x486,0x486,0x486,
+0x486,0x486,0x486,0x486,0x486,0x486,0x486,0x486,0x48c,0x48c,0x48c,0x114c,0x114c,0x114c,0x114c,0x114c,
+0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,
+0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,
+0x489,0x489,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x48f,0x48c,0x48c,0x48c,0x48c,0x48c,0x48c,0x48c,
+0x48c,0x48c,0x48c,0x48c,0x48c,0x48c,0x48c,0x48c,0x48c,0x48c,0x48c,0x48c,0x48c,0x48c,0x48c,0x48c,
+0x48c,0x48c,0x48c,0x48c,0x48c,0x48c,0x48c,0x48c,0x48c,0x48c,0x48c,0x48c,0x498,0x492,0x498,0x492,
+0x498,0x492,0x498,0x492,0x498,0x492,0x498,0x492,0x498,0x492,0x498,0x492,0x498,0x492,0x498,0x492,
+0x498,0x492,0x498,0x492,0x498,0x492,0x498,0x492,0x498,0x492,0x498,0x492,0x498,0x492,0x492,0x492,
+0x492,0x492,0x495,0x996,0xfe1,0xfe1,0xfe4,0xfe1,0x498,0x492,0x498,0x492,0x498,0x492,0x498,0x492,
+0x498,0x492,0x498,0x492,0x498,0x492,0x498,0x492,0x498,0x492,0x498,0x492,0x498,0x492,0x498,0x492,
+0x498,0x492,0xfe4,0xfe1,0xfe4,0xfe1,0xfe4,0xfe1,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,
+0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,
+0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x687,0x687,0x68a,0x4c2,0x696,0x693,0x693,0x690,
+0x4ec,0x4ec,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0xac8,0x699,0x4ce,0x6b1,0x6b4,0x4e3,0x699,0x4d1,0x4d1,
+0x4c2,0x4dd,0x4dd,0x687,0x4e9,0x4e6,0x68d,0x4bc,0x4b3,0x4b3,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b9,
+0x4b6,0x4b6,0x4b6,0x4ad,0x4f5,0x4f2,0x4ef,0x4ef,0x6a5,0x4d7,0x4d4,0x6a2,0x69f,0x69c,0x6ae,0x4c5,
+0x6ab,0x6ab,0x4da,0x4dd,0x6a8,0x6a8,0x4da,0x4dd,0x4bf,0x4c2,0x4c2,0x4c2,0x4e0,0x4cb,0x4c8,0xbb5,
+0xace,0xad1,0xacb,0xacb,0xacb,0xacb,0xbac,0xbac,0xbac,0xbac,0xbb2,0xce7,0xce4,0xdce,0xdd1,0xbaf,
+0xdd1,0xdd1,0xdd1,0xdd1,0xdce,0xdd1,0xdd1,0xba9,0x519,0x519,0x519,0x519,0x519,0x519,0x519,0x516,
+0x51c,0x735,0x519,0x999,0x9ba,0xad4,0xad4,0xad4,0xbbb,0xbbb,0xdd7,0xdd7,0xdd7,0xdd7,0x1155,0x1158,
+0x1158,0x1335,0x14cd,0x14f7,0x14fa,0x14fa,0x170d,0x188a,0x528,0x528,0x540,0x6c3,0x525,0x6c0,0x528,0x53d,
+0x525,0x6c3,0x537,0x540,0x540,0x540,0x537,0x537,0x540,0x540,0x540,0x6cc,0x525,0x540,0x6c6,0x525,
+0x534,0x540,0x540,0x540,0x540,0x540,0x525,0x525,0x52b,0x6c0,0x6c9,0x525,0x540,0x525,0x6cf,0x525,
+0x540,0x52e,0x546,0x6d2,0x540,0x540,0x531,0x537,0x540,0x540,0x543,0x540,0x537,0x53a,0x53a,0x53a,
+0x53a,0xae0,0xadd,0xcea,0xde0,0xbd0,0xbd3,0xbd3,0xbcd,0xbca,0xbca,0xbca,0xbca,0xbd3,0xbd0,0xbd0,
+0xbd0,0xbd0,0xbc7,0xbca,0xddd,0xef1,0xef4,0xfea,0x115b,0x115b,0x115b,0x6d8,0x6d5,0x549,0x54c,0x54c,
+0x54c,0x54c,0x54c,0x6d5,0x6d8,0x6d8,0x6d5,0x54c,0x6de,0x6de,0x6de,0x6de,0x6de,0x6de,0x6de,0x6de,
+0x6de,0x6de,0x6de,0x6de,0x555,0x555,0x555,0x555,0x6db,0x6db,0x6db,0x6db,0x6db,0x6db,0x6db,0x6db,
+0x6db,0x6db,0x54f,0x54f,0x54f,0x54f,0x54f,0x54f,0x55b,0x55b,0x55b,0x55b,0x55b,0x55b,0x55b,0x55b,
+0x558,0x561,0x561,0x55b,0x55b,0x55b,0x55e,0x558,0x55b,0x55b,0x558,0x558,0x558,0x558,0x55b,0x55b,
+0x6e1,0x6e1,0x558,0x558,0x55b,0x55b,0x55b,0x55b,0x55b,0x55b,0x55b,0x55b,0x55b,0x55b,0x55b,0x55b,
+0x55b,0x55e,0x55e,0x55e,0x55b,0x55b,0x6e4,0x55b,0x6e4,0x55b,0x55b,0x55b,0x55b,0x55b,0x55b,0x55b,
+0x558,0x55b,0x558,0x558,0x558,0x558,0x558,0x558,0x55b,0x55b,0x558,0x6e1,0x558,0x558,0x558,0xae6,
+0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,
+0xbd6,0xbd6,0xbd6,0xbd6,0x6ea,0x564,0x6ea,0x6ea,0x567,0x564,0x564,0x6ea,0x6ea,0x567,0x564,0x6ea,
+0x567,0x564,0x564,0x6ea,0x564,0x6ea,0x573,0x570,0x564,0x6ea,0x564,0x564,0x564,0x564,0x6ea,0x564,
+0x564,0x6ea,0x6ea,0x6ea,0x6ea,0x564,0x564,0x6ea,0x567,0x6ea,0x567,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,
+0x6f0,0x56a,0x6ea,0x56a,0x56a,0x564,0x564,0x564,0x6ea,0x6ea,0x6ea,0x6ea,0x564,0x564,0x564,0x564,
+0x6ea,0x6ea,0x564,0x564,0x564,0x567,0x564,0x564,0x567,0x564,0x564,0x567,0x6ea,0x567,0x564,0x564,
+0x6ea,0x564,0x564,0x564,0x564,0x564,0x6ea,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,
+0x564,0x564,0x564,0x564,0x6ed,0x6ea,0x567,0x564,0x6ea,0x6ea,0x6ea,0x6ea,0x564,0x564,0x6ea,0x6ea,
+0x564,0x567,0x6ed,0x6ed,0x567,0x567,0x564,0x564,0x567,0x567,0x564,0x564,0x567,0x567,0x564,0x564,
+0x564,0x564,0x564,0x564,0x567,0x567,0x6ea,0x6ea,0x567,0x567,0x6ea,0x6ea,0x567,0x567,0x564,0x564,
+0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x6ea,0x564,0x564,0x564,0x6ea,0x564,0x564,
+0x564,0x564,0x564,0x564,0x564,0x6ea,0x564,0x564,0x564,0x564,0x564,0x564,0x567,0x567,0x567,0x567,
+0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x6ea,
+0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,
+0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,
+0x567,0x567,0x567,0x567,0x564,0x564,0x564,0x564,0x564,0x564,0x567,0x567,0x567,0x567,0x564,0x56d,
+0x564,0x564,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,
+0x576,0xae9,0x576,0x576,0x576,0x576,0x576,0x576,0x582,0x57f,0x582,0x57f,0x576,0x576,0x576,0x576,
+0x576,0x576,0x6f3,0x576,0x576,0x576,0x576,0x576,0x576,0x576,0x7f8,0x7f8,0x576,0x576,0x576,0x576,
+0x57c,0x57c,0x576,0x576,0x576,0x576,0x576,0x576,0x579,0x7fe,0x7fb,0x576,0x576,0x576,0x576,0x576,
+0x576,0x576,0x576,0x576,0x576,0x576,0x576,0x576,0x576,0x576,0x576,0x576,0x576,0x576,0x576,0x576,
+0x576,0x576,0x576,0x576,0x576,0x576,0x576,0x576,0x576,0x576,0x576,0x576,0x576,0x576,0x576,0xae9,
+0xbdf,0xae9,0xae9,0xae9,0x585,0x585,0x585,0x585,0x585,0x585,0x585,0x585,0x585,0x585,0x585,0x585,
+0x585,0x585,0x585,0x585,0x585,0x585,0x585,0x585,0x585,0x585,0x585,0x585,0x585,0x585,0x585,0x585,
+0x585,0x585,0x585,0x585,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x58b,0xc48,
+0xc48,0xc48,0xc48,0xc48,0xc48,0xc48,0xc48,0xc48,0xc48,0xc48,0xc48,0xc48,0xc48,0xc48,0xc48,0xc48,
+0xc48,0xc48,0xc48,0xd62,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,
+0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x58e,0x591,0x591,0x591,0x591,0x591,0x591,0x591,
+0x591,0x591,0x591,0x591,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,
+0x591,0x591,0x591,0x591,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,
+0x705,0x705,0x705,0x705,0x708,0x708,0x708,0x708,0x708,0x708,0x708,0x708,0x708,0x708,0x708,0x708,
+0x708,0x708,0x708,0x708,0x594,0x594,0x708,0x708,0x708,0x708,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,
+0xbe2,0xbe2,0xbe2,0xbe2,0x70e,0x70e,0x597,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x59a,0x59a,
+0x597,0x597,0x59d,0x59d,0x59d,0x59d,0x70e,0x70e,0x59d,0x59d,0x711,0x70e,0x597,0x597,0x597,0x597,
+0x70e,0x70e,0x59d,0x59d,0x711,0x70e,0x597,0x597,0x597,0x597,0x70e,0x70e,0x70b,0x597,0x59d,0x70e,
+0x597,0x597,0x70b,0x70e,0x70e,0x70e,0x59d,0x59d,0x597,0x597,0x597,0x597,0x597,0x597,0x597,0x597,
+0x597,0x597,0x597,0x597,0x597,0x597,0x70e,0x70b,0x70e,0x70b,0x597,0x59d,0x59d,0x59d,0x59d,0x59d,
+0x59d,0x597,0x597,0x70b,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xbe5,0xbe5,0xbe5,0xbe8,
+0xbe8,0xc63,0xc63,0xbe5,0x5ac,0x5ac,0x5ac,0x5ac,0x5a9,0x723,0x720,0x5a3,0x5a3,0x714,0x5a3,0x5a3,
+0x5a3,0x5a3,0x71a,0x714,0x5a3,0x5a9,0x5a3,0x5a0,0xd6b,0xd6b,0xbee,0xbee,0xdec,0xaf5,0x5a6,0x5a6,
+0x717,0x5af,0x717,0x5a6,0x5a9,0x5a3,0x5a9,0x5a9,0x5a3,0x5a3,0x5a9,0x5a3,0x5a3,0x5a3,0x5a9,0x5a3,
+0x5a3,0x5a3,0x5a9,0x5a9,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a9,0x5ac,0x5ac,0x5a6,
+0x5a3,0x5a3,0x5a3,0x5a3,0x726,0x5a3,0x726,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x801,0x801,0x801,0x801,
+0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,
+0x5a3,0x5a3,0x5a3,0x5a9,0x726,0x723,0x5b2,0x726,0x714,0x71a,0x5a9,0x714,0x71d,0x714,0x714,0x5a3,
+0x714,0x723,0x5b2,0x723,0xaf5,0xaf5,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf4,
+0xbf1,0xbf1,0xde9,0xea3,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,
+0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b8,0x13bf,0x13bf,0x13bf,0x5b8,0x5b8,0x5b8,0x5b8,
+0x5b8,0x5b8,0x5b8,0x5b8,0x1503,0x5c4,0x5cd,0x5c4,0x5c4,0x13bf,0x5b8,0x5b8,0x5cd,0x5cd,0x13c2,0x13c2,
+0x5d0,0x5d0,0x5c1,0x5c7,0x5c1,0x5c1,0x5c7,0x5b8,0x5c7,0x5b8,0x5c7,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,
+0x5b8,0x5c7,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x13bf,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,
+0x5b8,0x5b8,0x5b8,0x5c7,0x5c7,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x72c,0x5b8,0x5b8,
+0x5b8,0x5b8,0x5b8,0x5b8,0x5c7,0x5b8,0x5b8,0x5c7,0x5b8,0x5b8,0x5b8,0x5b8,0x13bf,0x5b8,0x13bf,0x5b8,
+0x5b8,0x5b8,0x5b8,0x13bf,0x13bf,0x13bf,0x5b8,0x12ba,0x5b8,0x5b8,0x5b8,0x5be,0x5be,0x5be,0x5be,0x1341,
+0x1341,0x5b8,0x5bb,0x5ca,0x5cd,0x5c1,0x5c1,0x5c1,0xbfa,0xbf7,0xbfa,0xbf7,0xbfa,0xbf7,0xbfa,0xbf7,
+0xbfa,0xbf7,0xbfa,0xbf7,0xbfa,0xbf7,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,
+0x5b8,0x5c7,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,
+0x13bf,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x13bf,
+0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f4,0x5f4,0x5f4,
+0x5f4,0x5f4,0x5f4,0x5f4,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5f1,0x5f7,0x5e8,0x5eb,
+0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,
+0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5ee,0x5ee,
+0x5ee,0x5ee,0x5ee,0x5ee,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,
+0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,
+0x5f4,0x5fa,0x5f7,0x5f1,0x5f4,0x5fa,0x5f7,0x5f1,0x5f4,0x5fa,0x5f7,0x5f1,0x5f4,0x5fa,0x5f7,0x5f1,
+0x5f4,0x5fa,0x5f7,0x5f1,0x5f4,0x5fa,0x5f7,0x5f1,0x5f4,0x5fa,0x5f7,0x5f1,0x5f4,0x5fa,0x5f7,0x5f1,
+0x5f7,0x5f1,0x5f7,0x5f1,0x5f7,0x5f1,0x5f7,0x5f1,0x5f7,0x5f1,0x5f7,0x5f1,0x5f4,0x5fa,0x5f7,0x5f1,
+0x5f4,0x5fa,0x5f7,0x5f1,0x5f4,0x5fa,0x5f7,0x5f1,0x5f4,0x5fa,0x5f7,0x5f1,0x5f7,0x5f1,0x5f4,0x5fa,
+0x5f7,0x5f1,0x5f7,0x5f1,0x5f4,0x5fa,0x5f7,0x5f1,0x5f4,0x5fa,0x5f7,0x5f1,0x5f7,0x5f1,0x1344,0x1344,
+0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x5f7,0x5f1,0x5f7,0x5f1,
+0x5f7,0x5f1,0x5f4,0x5fa,0x5f4,0x5fa,0x5f7,0x5f1,0x5f7,0x5f1,0x5f7,0x5f1,0x5f7,0x5f1,0x5f7,0x5f1,
+0x5f7,0x5f1,0x5f7,0x5f1,0x5f4,0x5f7,0x5f1,0x5f4,0x5f7,0x5f1,0x5f4,0x5fa,0x5f1,0x5f1,0x5f1,0x5f1,
+0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,
+0x5f1,0x5f1,0x5f1,0x5f4,0x5f4,0x5f4,0x5f4,0x5f4,0x5f4,0x5f4,0x5f4,0x5f4,0x5f7,0x5f7,0x5f7,0x5f7,
+0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f1,0x5f1,0x5f1,
+0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f4,0x5f4,0x5f1,0x5f4,
+0x5f1,0x5f4,0x5f1,0x5f1,0x5f4,0x5f1,0x5f1,0x5f4,0x5f1,0x5f4,0x5f1,0x5f1,0x5f4,0x5f1,0x5f4,0x5f4,
+0x5f1,0x5f1,0x5f1,0x5f4,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f4,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,
+0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,
+0x5f4,0x5f4,0x5f1,0x5f1,0x5f4,0x5f1,0x5f4,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f4,0x5f4,0x5f4,0x5f4,
+0x5f4,0x5f4,0x5f4,0x5f4,0x5f4,0x5f4,0x5f4,0x5f4,0x5f4,0x5f4,0x5f4,0x5f4,0x5f4,0x5f4,0x5f4,0x5f4,
+0x5f4,0x5f4,0x5f4,0x5f4,0x5f4,0x5f4,0x5f4,0x5f4,0x5f4,0x5f4,0x5f4,0x5f4,0x5f4,0x5f4,0x5f4,0x5fa,
+0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,
+0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,
+0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,
+0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,
+0x5fd,0x5fd,0x5fd,0x5fd,0xff6,0xff6,0xff6,0x1506,0x1506,0x1506,0x1506,0x1506,0x1506,0x1506,0x1713,0x1713,
+0x85e,0x864,0x864,0x870,0x870,0x861,0x858,0x861,0x858,0x861,0x858,0x861,0x858,0x861,0x858,0x861,
+0x60c,0x60c,0x606,0x60c,0x606,0x60c,0x606,0x60c,0x606,0x60c,0x606,0x609,0x60f,0x60c,0x606,0x60c,
+0x606,0x609,0x60f,0x60c,0x606,0x60c,0x606,0x609,0x60f,0x60c,0x606,0x609,0x60f,0x60c,0x606,0x609,
+0x60f,0x60c,0x606,0x60c,0x606,0x60c,0x606,0x60c,0x606,0x60c,0x606,0x609,0x60f,0x60c,0x606,0x609,
+0x60f,0x60c,0x606,0x609,0x60f,0x60c,0x606,0x609,0x60f,0x60c,0x606,0x609,0x60f,0x60c,0x606,0x609,
+0x60f,0x60c,0x606,0x609,0x60f,0x60c,0x606,0x609,0x60f,0x60c,0x606,0x609,0x6f9,0x6f9,0x6f9,0x6f9,
+0x6f9,0x6f9,0x6f9,0x6f9,0x6f9,0x6f9,0x6f9,0x6f9,0x6f9,0x6f9,0x6f9,0x6f9,0x6f9,0x6f9,0x6f9,0x6f9,
+0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,
+0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,
+0x6f6,0x6f6,0x6ff,0x6ff,0x6ff,0x6ff,0x6ff,0x6ff,0x6ff,0x6ff,0x6ff,0x6ff,0x6ff,0x6ff,0x702,0x6ff,
+0x6ff,0x6ff,0x6ff,0x6ff,0x6ff,0x6ff,0x6ff,0x6ff,0x6ff,0x6ff,0x6ff,0x6ff,0x6fc,0x6fc,0x6fc,0x6fc,
+0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x705,0x705,0x705,0x705,
+0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,
+0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x72f,0x72f,0x72f,0x72f,
+0x72f,0x72f,0x72f,0x72f,0x72f,0x72f,0x72f,0x72f,0x72f,0x72f,0x72f,0x72f,0x72f,0x72f,0x72f,0x72f,
+0x72f,0x72f,0x72f,0x72f,0x72f,0x72f,0x72f,0x72f,0x72f,0x72f,0x72f,0x72f,0xc51,0x8c4,0x8be,0x8bb,
+0x8c1,0x8b8,0x744,0x747,0x747,0x747,0x747,0x747,0x747,0x747,0x747,0x747,0x8ca,0x744,0x744,0x744,
+0x744,0x744,0x744,0x744,0x744,0x744,0x744,0x744,0x744,0x744,0x744,0x744,0x744,0x744,0x744,0x744,
+0x744,0x744,0x744,0x744,0x744,0x744,0x744,0x744,0x744,0x744,0x744,0x744,0x744,0x744,0x8c7,0x8c7,
+0x74a,0x8d9,0x8dc,0x8e2,0x804,0x810,0x8f7,0x80d,0x8d0,0x8cd,0x8d0,0x8cd,0x8d6,0x8d3,0x8d6,0x8d3,
+0x8d0,0x8cd,0x80a,0x8e2,0x8d0,0x8cd,0x8d0,0x8cd,0x8d0,0x8cd,0x8d0,0x8cd,0x8e5,0x8ee,0x8eb,0x8eb,
+0x750,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x786,0x786,0x786,0x786,0x786,0x786,0x786,0x786,0x786,
+0x786,0x786,0x786,0x786,0x786,0x786,0x786,0x786,0x786,0x786,0x786,0x753,0x76e,0x74d,0x774,0x777,
+0x771,0x789,0x789,0x789,0x789,0x789,0x789,0x783,0x783,0x783,0x783,0x783,0x783,0x783,0x783,0x783,
+0x783,0x783,0x783,0x783,0x783,0x783,0x783,0x783,0x783,0x783,0x783,0x753,0x76e,0x74d,0x76e,0xc54,
+0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,
+0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,
+0x7f2,0x7f2,0x12b4,0x12b4,0x12b4,0x12b4,0x12b4,0x7f5,0x80a,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,
+0x80d,0x80d,0x92d,0x92d,0x92d,0x92d,0x813,0x813,0x8e8,0x8f4,0x8f4,0x8f4,0x8f4,0x8f1,0x807,0x8df,
+0xb19,0xb19,0xb19,0xc66,0xc84,0xc81,0xb34,0x8b5,0x819,0x816,0x819,0x81c,0x816,0x819,0x816,0x819,
+0x816,0x819,0x816,0x816,0x816,0x816,0x816,0x816,0x819,0x819,0x816,0x819,0x819,0x816,0x819,0x819,
+0x816,0x819,0x819,0x816,0x819,0x819,0x816,0x816,0xc87,0x82b,0x825,0x82b,0x825,0x82b,0x825,0x82b,
+0x825,0x82b,0x825,0x825,0x828,0x825,0x828,0x825,0x828,0x825,0x828,0x825,0x828,0x825,0x828,0x825,
+0x828,0x825,0x828,0x825,0x828,0x825,0x828,0x825,0x828,0x825,0x828,0x82b,0x825,0x828,0x825,0x828,
+0x825,0x828,0x825,0x825,0x825,0x825,0x825,0x825,0x828,0x828,0x825,0x828,0x828,0x825,0x828,0x828,
+0x825,0x828,0x828,0x825,0x828,0x828,0x825,0x825,0x825,0x825,0x825,0x82b,0x825,0x82b,0x825,0x82b,
+0x825,0x825,0x825,0x825,0x825,0x825,0x82b,0x825,0x825,0x825,0x825,0x825,0x828,0x82b,0x82b,0x828,
+0x828,0x828,0x828,0x8fd,0x900,0x82e,0x831,0xc6f,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,
+0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,
+0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x83a,0x837,0x837,0x837,0x837,0x837,0x837,0x837,
+0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,
+0x837,0x837,0x837,0x837,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,
+0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,
+0xd74,0xd74,0xea6,0x83d,0x909,0x909,0x909,0x909,0x909,0x909,0x909,0x909,0x909,0x909,0x909,0x909,
+0xd6e,0xd6e,0xd6e,0xd6e,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,
+0x846,0x846,0x846,0x846,0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x912,
+0x912,0x912,0x912,0x912,0x912,0x849,0x849,0x849,0x849,0x849,0x849,0xd77,0xd77,0xd77,0xd77,0x915,
+0x915,0x915,0x915,0x915,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,
+0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,
+0x849,0x849,0x849,0x849,0x849,0x849,0xd77,0xd77,0x84c,0x84c,0x84c,0x84c,0x84c,0x84c,0x84c,0x84c,
+0x84c,0x84c,0x84c,0x84c,0x84c,0x84c,0x84c,0x84c,0x84c,0x84c,0x84c,0x84c,0x84c,0x84c,0x84c,0x84c,
+0x84c,0x84c,0x84c,0x84c,0x84c,0x84c,0x84c,0x84c,0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x912,
+0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,
+0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,
+0x84f,0x84f,0xea9,0xea9,0xea9,0xea9,0xea9,0xea9,0xea9,0xea9,0xea9,0xea9,0xea9,0xea9,0xea9,0xea9,
+0xea9,0xea9,0xea9,0xea9,0xea9,0xea9,0xea9,0xea9,0x1119,0x1119,0x1119,0x1119,0x852,0x852,0x852,0x852,
+0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,
+0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x855,0x855,
+0x852,0x855,0x852,0x855,0x855,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x855,
+0x852,0x855,0x852,0x855,0x855,0x852,0x852,0x855,0x855,0x855,0x852,0x852,0x852,0x852,0x14be,0x14be,
+0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,
+0x909,0x909,0x909,0x909,0x909,0x909,0x909,0x909,0x909,0x909,0x909,0x909,0x909,0x909,0x909,0x909,
+0x909,0x909,0x909,0x909,0x909,0x909,0x909,0x909,0x909,0x909,0x909,0x909,0x909,0x909,0x909,0x909,
+0x12f6,0x12f6,0x12f6,0x12f6,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0xd6e,0xc72,0xc72,0xc72,
+0xc72,0xc72,0xc72,0xc72,0xc72,0xc72,0xc72,0xc72,0xc72,0xc72,0xc72,0xc72,0x90c,0x90c,0x90c,0x90c,
+0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,
+0x90c,0x90c,0x90c,0x90f,0x90c,0x90f,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,
+0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0xc72,0xc72,0xc72,0xc72,0xc72,0xc72,0xc72,
+0xc72,0xc72,0xc72,0xc72,0xc72,0xc72,0xc72,0xc72,0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x912,
+0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x912,
+0x912,0x912,0x912,0x912,0x912,0x912,0x912,0xd77,0x990,0x972,0x972,0x972,0x972,0x96c,0x972,0x972,
+0x984,0x972,0x972,0x96f,0x97b,0x981,0x981,0x981,0x981,0x981,0x984,0x96c,0x978,0x96c,0x96c,0x96c,
+0x963,0x963,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x987,0x987,0x987,0x987,0x987,0x987,0x987,0x987,
+0x987,0x987,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96f,0x963,0x96c,0x963,
+0x96c,0x963,0x97e,0x975,0x97e,0x975,0x98d,0x98d,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,
+0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,
+0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99f,0x99f,0x99f,0x99f,0x99f,0x99f,0x99f,0x99f,
+0x99f,0x99f,0x99f,0x99f,0x99f,0x99f,0x99f,0x99f,0x99f,0x99f,0x99f,0x99f,0x99f,0x99f,0x99f,0x99f,
+0x99f,0x99f,0x99f,0x99f,0x99f,0x99f,0x99f,0x99f,0x9a2,0x9a2,0x9a2,0x9a2,0x9a2,0x9a2,0x9a2,0x9a2,
+0x9a2,0x9a2,0x9a2,0x9a2,0x9a2,0x9a2,0x9a2,0x9a2,0x9a2,0x9a2,0x9a2,0x9a2,0x9a2,0x9a2,0x9a2,0x9a2,
+0x9a2,0x9a2,0x9a2,0x9a2,0x9a2,0x9a2,0x9a2,0x9a2,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,
+0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,
+0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9a5,0x9a5,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,
+0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,
+0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9a8,0x9a8,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,
+0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,
+0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,
+0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,
+0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9b1,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,
+0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,
+0x9b4,0x9b4,0x9b4,0x9b4,0x9b1,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,
+0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,0x9b4,
+0xa41,0xa41,0xfdb,0xa41,0xa41,0xa41,0xa44,0xa41,0xfdb,0xa41,0xa41,0xfd2,0xa3b,0xa2f,0xa2f,0xa2f,
+0xa2f,0xa3e,0xa2f,0xfc0,0xfc0,0xfc0,0xa2f,0xa32,0xa3b,0xa35,0xfc6,0xfd5,0xfd5,0xfc0,0xfc0,0xfdb,
+0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xa47,0xa47,0xa38,0xa38,0xa38,0xa38,
+0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa3e,0xa3e,0xa2f,0xa2f,0xfdb,0xfdb,0xfdb,0xfdb,0xfc0,0xfc0,
+0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,
0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,
-0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa56,0xa56,0xa56,0xa56,
+0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xdcb,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,
0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,
-0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa7a,0xa7a,0xa7a,0xa7d,
-0xa7d,0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,
-0xa62,0xa62,0xa77,0xa59,0xa59,0xa59,0xa59,0xa59,0xa59,0xa59,0xa77,0xa77,0xa7a,0xa7a,0xa7a,0xa7a,
-0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,
-0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,0xa9b,0xa9b,0xa9b,0xa9b,
-0xa9b,0xa86,0xa86,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,
+0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xdcb,0xa56,0xa56,0xa56,0xa56,
+0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa5c,0xa5c,0xa5c,0xa5c,
+0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,
+0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa62,0xa62,0xa62,0xa62,
+0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa5f,0xa65,0xa62,0xa62,0xa62,0xa62,0xa62,
+0xa62,0xa62,0xa62,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x1152,0x114f,0xa62,0xa62,0xa62,
+0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,
+0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,
+0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,
+0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,
+0xa9b,0xa9b,0xa9b,0xa9e,0xa9e,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,
+0xa9b,0xa9b,0xa9b,0xa9b,0xa83,0xa83,0xa98,0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,0xa98,0xa98,
0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,
-0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9e,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,
0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,
-0xa9b,0xa9b,0xa9b,0xa9b,0xac5,0xac5,0xac5,0xac5,0xac5,0xac5,0xac5,0xac5,0xac5,0xac5,0xac5,0xac5,
-0xac5,0xac5,0xac5,0xac5,0xac5,0xac5,0xac5,0xac5,0xac5,0xac5,0xac5,0xac5,0xac5,0xac5,0xac5,0xbb8,
-0xbb8,0xbb8,0xbb8,0xbb8,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,
-0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,
-0xad1,0xad1,0xad1,0xad1,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,
-0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,
-0xae3,0xae3,0xae3,0xae3,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,
-0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,
-0xae9,0xae9,0xae9,0xae9,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,
+0xabc,0xabc,0xabc,0xabc,0xabc,0xaa7,0xaa7,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,
+0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,
+0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabf,0xabc,0xabc,0xabc,0xabc,
+0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,
+0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,
+0xaec,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,
+0xae9,0xae9,0xae9,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,
0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,
-0xaf8,0xaf8,0xaf8,0xaf8,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,
-0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafe,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,
-0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,
-0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xb01,0xb01,0xc48,0xc48,
-0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,
-0xc48,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb22,0xb22,0xb22,0xb22,
+0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,
+0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,
+0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,
+0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,
+0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,
+0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,
+0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,
+0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb25,0xb22,0xb22,
0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,
-0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0x14d9,0xb2b,0xb2b,0xb2b,0xb2b,
-0xb2b,0xb2b,0xccf,0xccf,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,
-0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xccc,0xccc,
-0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,
-0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,
-0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,
-0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,
-0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,
-0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb34,0xb40,0xb46,0xb46,0xb46,0xb3a,0xb3a,0xb3a,0xb43,0xb37,0xb37,
-0xb37,0xb37,0xb37,0xb31,0xb31,0xb31,0xb31,0xb31,0xb31,0xb31,0xb31,0xb46,0xb46,0xb46,0xb46,0xb46,
-0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,
-0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,
-0xb3a,0xb3a,0xb3d,0xb3d,0xb46,0xb46,0xb46,0xb3a,0xb3a,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,
-0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,
-0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb46,0xb46,0xb46,0xb46,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,
-0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3a,0xb3a,0xb3a,
-0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,
-0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0x16e6,0x16e6,0xb52,0xb49,0xb4f,0xb4f,
-0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,
-0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb49,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb52,0xb52,
-0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,
-0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb49,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,
-0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb49,0xb4f,0xb4f,
-0xb4f,0xb4f,0xb4f,0xb4f,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,
-0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb49,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,
-0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,
-0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,
-0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,
-0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,
-0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,
+0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,
+0xb28,0xb28,0xc75,0xc75,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,
+0xb28,0xb28,0xb28,0xb28,0xc75,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,
+0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,
+0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0x1509,
+0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xcff,0xcff,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,
0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,
+0xb4f,0xb4f,0xcfc,0xcfc,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,
+0xd4d,0xd4d,0xd4d,0xd4d,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,
0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,
-0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,
-0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,
-0xb4f,0xb4f,0xb4f,0xb4f,0xb52,0xb52,0xb52,0xb52,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,
+0xb52,0xb52,0xb52,0xb52,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,
0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,
-0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,
-0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,
-0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,
-0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,
-0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,
-0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb5,0xbb8,
-0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xcc0,
-0xcc3,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xecd,0xecd,0xecd,0xecd,
-0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xcc6,0xcc6,0xcc6,0xcc6,0xcc6,0xcc6,
-0xcc6,0xcc6,0xdb6,0xe70,0xdb6,0xdb9,0xdb9,0xdb6,0xdb3,0xdb6,0xdb3,0xdb6,0xdb6,0xfc0,0x1257,0x1257,
-0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc8,0xdc5,0xedf,0xedf,0xedf,0xedf,0x13d4,0xfd2,0x13d4,0x1311,0x1311,
-0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,
-0xbfd,0xbfd,0xc2d,0xc2a,0xc2d,0xc2a,0xc2d,0xc2a,0x10e3,0x10e0,0xfd8,0xfd5,0xc00,0xc00,0xc00,0xc00,
-0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc03,0xc03,0xc03,0xc03,
-0xc03,0xc03,0xc03,0xc03,0xc03,0xc03,0xc03,0xc03,0xc03,0xc03,0xc03,0xc03,0xc03,0xc03,0xc03,0xc03,
-0xc03,0xc03,0xc03,0xc03,0xc03,0xc03,0xc03,0xc03,0xc03,0xc03,0xc03,0xc03,0xc06,0xc06,0xc03,0xc03,
-0xc03,0xc03,0xc03,0xc03,0xc03,0xc03,0xc03,0xc03,0xc09,0xc09,0xc09,0xc0f,0xc0c,0xc33,0xc30,0xc0f,
-0xc0c,0xc0f,0xc0c,0xc0f,0xc0c,0xc0f,0xc0c,0xc0f,0xc0c,0xc0f,0xc0c,0xc0f,0xc0c,0xc0f,0xc0c,0xc0f,
-0xc0c,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,
-0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,
-0xc09,0xc09,0xc09,0xc09,0xc0f,0xc0c,0xc0f,0xc0c,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,
-0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,
-0xc09,0xc09,0xc09,0xc09,0xc0f,0xc0c,0xc09,0xc09,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,
-0xc12,0xc12,0xc12,0xc12,0xc18,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,
-0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,
-0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc18,0xc18,0xc18,0xc12,0xc12,0xc12,0xc12,0xc12,
-0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,
-0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc15,0xc12,0xc12,0xc12,0xc4b,0xc4b,0xc4b,0xc4b,
-0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,
-0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xcc9,0xd38,0xdb3,0xdb3,
-0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xdb3,0xe70,0xe70,0xdb3,0xdb3,0xdb3,0xdb3,0xdb6,0xdb6,0xed0,0xfc0,
-0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0x1284,0x1284,0x125a,0xced,0xced,0xced,0xced,
-0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,
-0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xcfc,0xcfc,0xcfc,0xcfc,
-0xcfc,0xcfc,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf0,0xd05,0xd05,0xd05,0xcff,0xd05,0xd05,0xd05,0xd05,
-0xd05,0xd05,0xd05,0xd05,0xd05,0xd05,0xd05,0xcff,0xd05,0xd05,0xd05,0xd05,0xcf9,0xcf9,0xd02,0xd02,
-0xd02,0xd02,0xcf6,0xcf6,0xcf6,0xcf6,0xcf6,0xcfc,0xdce,0xdce,0xdce,0xdce,0xdce,0xdce,0xdce,0xdce,
-0xdce,0xdce,0xdce,0xdce,0xdcb,0xdce,0xdce,0xdce,0xdce,0xdce,0xdce,0xdce,0xd05,0xd05,0xd05,0xd05,
-0xd05,0xd05,0xd05,0xd05,0xd05,0xd05,0xd05,0xd05,0xd05,0xd05,0xcff,0xd05,0xd05,0xd05,0xd05,0xd05,
-0xd05,0xd05,0xd05,0xd05,0xd05,0xd05,0xd05,0xd05,0xd05,0xcf9,0xcf9,0xcf9,0xcfc,0xcfc,0xcfc,0xcfc,
-0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,
-0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xd08,0xd08,0xd08,0xd08,
-0xd08,0xd0b,0xd0b,0xd0b,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xdd1,0xdd1,0xdd1,0xdd1,0xdd1,0xdd1,
-0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0x10ec,0x10ec,0xfdb,0xfdb,0xfdb,0xd0e,0xd0e,0xd0e,0xd0e,
-0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,
-0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd14,0xd14,0xd14,0xd14,
-0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,
-0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd1d,0xd1d,0xd1d,0xd1d,
+0xb55,0xb55,0xb55,0xb55,0xb64,0xb64,0xb64,0xb64,0xb64,0xb5b,0xb67,0xb6d,0xb6d,0xb6d,0xb61,0xb61,
+0xb61,0xb6a,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb6d,
+0xb6d,0xb6d,0xb6d,0xb6d,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,
+0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,
+0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb64,0xb64,0xb6d,0xb6d,0xb6d,0xb61,0xb61,0xb6d,0xb6d,0xb6d,
+0xb6d,0xb6d,0xb6d,0xb6d,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,
+0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb6d,0xb6d,0xb6d,0xb6d,0xb61,0xb61,
+0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb64,0xb64,0xb64,0xb64,0xb64,
+0xb64,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,
+0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0x1716,0x1716,
+0xb79,0xb70,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,
+0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb70,0xb76,0xb76,0xb76,0xb76,
+0xb76,0xb76,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,
+0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb70,0xb76,0xb76,0xb76,0xb76,
+0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,
+0xb76,0xb70,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,
+0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb70,0xb76,0xb76,
+0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,
+0xb76,0xb76,0xb76,0xb76,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,
+0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,
+0xb73,0xb73,0xb73,0xb73,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,
+0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb76,0xb76,
+0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,
+0xb76,0xb76,0xb76,0xb76,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,
+0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb76,0xb76,
+0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,
+0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb79,0xb79,0xb79,0xb79,0xb7c,0xb7c,0xb7c,0xb7c,
+0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,
+0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb82,0xb82,0xb82,0xb82,
+0xb82,0xb82,0xb82,0xb82,0xb82,0xb82,0xb82,0xb82,0xb82,0xb82,0xb82,0xb82,0xb82,0xb82,0xb82,0xb82,
+0xb82,0xb82,0xb82,0xb82,0xb82,0xb82,0xb82,0xb82,0xb82,0xb82,0xb82,0xb82,0xb85,0xb85,0xb85,0xb85,
+0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,
+0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xbdf,0xbdf,0xbdf,0xbdf,
+0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,
+0xbdf,0xbdf,0xbdc,0xbdf,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,
+0xbdc,0xbdc,0xbdc,0xced,0xcf0,0xde3,0xde3,0xde3,0xde3,0xde3,0xde3,0xde3,0xde3,0xde3,0xde3,0xde3,
+0xefd,0xefd,0xefd,0xefd,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbeb,0xbeb,0xbeb,0xbeb,0xcf3,0xcf3,
+0xcf3,0xcf3,0xcf3,0xcf3,0xcf6,0xcf6,0xde9,0xea0,0xde9,0xde9,0xde9,0xde9,0xde6,0xde9,0xde6,0xde9,
+0xde9,0xff0,0x128a,0x128a,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0xdf8,0xdf5,0xf0f,0xf0f,0xf0f,0xf0f,0x1407,
+0x1002,0x1407,0x134d,0x134d,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,
+0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc5a,0xc57,0xc5a,0xc57,0xc5a,0xc57,0x1113,0x1110,0x1008,0x1005,
+0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,
+0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,
+0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,
+0xc30,0xc30,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc33,0xc33,0xc33,0xc39,
+0xc36,0xc60,0xc5d,0xc39,0xc36,0xc39,0xc36,0xc39,0xc36,0xc39,0xc36,0xc39,0xc36,0xc39,0xc36,0xc39,
+0xc36,0xc39,0xc36,0xc39,0xc36,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,
+0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,
+0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc39,0xc36,0xc39,0xc36,0xc33,0xc33,0xc33,0xc33,
+0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,
+0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc39,0xc36,0xc33,0xc33,0xc3c,0xc3c,0xc3c,0xc3c,
+0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc42,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,
+0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,
+0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc42,0xc42,0xc42,0xc3c,
+0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,
+0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3f,0xc3c,0xc3c,0xc3c,
+0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,
+0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,
+0xcf9,0xd68,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xea0,0xea0,0xde6,0xde6,0xde6,0xde6,
+0xde9,0xde9,0xf00,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0xff0,0x12b7,0x12b7,0x128d,
0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,
-0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd29,0xd29,0xd29,0xd29,
-0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,
-0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd35,0xd35,0xd35,0xd35,
-0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,
-0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xdd7,0xdd7,0xdd7,0xdd7,
-0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,
-0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xddd,0xddd,0xddd,0xddd,
-0xddd,0xddd,0xddd,0xddd,0xddd,0xddd,0xddd,0xddd,0xddd,0xddd,0xddd,0xddd,0xddd,0xddd,0xddd,0xddd,
-0xddd,0xdda,0xdda,0xdda,0xdda,0xdda,0xdda,0xdda,0xdda,0xdda,0xdda,0xdda,0xddd,0xddd,0xddd,0xddd,
-0xddd,0xddd,0xddd,0xddd,0xddd,0xddd,0xddd,0xddd,0xddd,0xddd,0xddd,0xddd,0xddd,0xddd,0xddd,0xddd,
-0xddd,0xddd,0xddd,0xddd,0xddd,0xddd,0xddd,0xddd,0xddd,0xddd,0xddd,0xddd,0xe9d,0xe9d,0xdef,0xdef,
-0xee5,0xee5,0xee5,0xee5,0xee5,0xee5,0xee5,0xfe7,0xfe7,0xfe7,0xfe7,0xfe7,0xfe4,0xfe4,0xfe4,0xfe4,
-0xfe4,0xfe4,0xfe4,0xfe4,0xfe4,0xfe4,0xfe4,0xfe4,0xfe4,0xfe4,0xfe4,0xfe4,0xdfe,0xdfb,0xdfe,0xdfb,
-0xdfe,0xdfb,0xdfe,0xdfb,0xdfe,0xdfb,0xdfe,0xdfb,0xdfe,0xdfb,0xdfe,0xdfb,0xdfe,0xdfb,0xdfe,0xdfb,
-0xdfe,0xdfb,0xdfe,0xdfb,0xdfe,0xdfb,0xdfe,0xdfb,0xdfe,0xdfb,0xdfe,0xdfb,0xe0a,0xe0a,0xe0a,0xe0a,
-0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,
-0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe10,0xe10,0xe10,0xe10,
-0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,
-0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe28,0xe28,0xe28,0xe28,
-0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,
-0xe28,0xe28,0xe28,0xee8,0xee8,0xee8,0xee8,0xfea,0xfea,0xfea,0xfea,0xfea,0xe31,0xe31,0xe31,0xe31,
-0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,
-0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe3a,0xe3a,0xe3a,0xe3a,
+0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,
+0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd23,0xd23,0xd23,0xd23,0xd23,0xd20,0xd35,0xd35,0xd35,0xd2f,
+0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd2f,0xd35,0xd35,0xd35,0xd35,
+0xd29,0xd29,0xd32,0xd32,0xd32,0xd32,0xd26,0xd26,0xd26,0xd26,0xd26,0xd2c,0xdfe,0xdfe,0xdfe,0xdfe,
+0xdfe,0xdfe,0xdfe,0xdfe,0xdfe,0xdfe,0xdfe,0xdfe,0xdfb,0xdfe,0xdfe,0xdfe,0xdfe,0xdfe,0xdfe,0xdfe,
+0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd2f,0xd35,
+0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd29,0xd29,0xd29,
+0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,
+0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,
+0xd38,0xd38,0xd38,0xd38,0xd38,0xd3b,0xd3b,0xd3b,0xd38,0xd38,0xd38,0xd38,0xd38,0xd38,0xe01,0xe01,
+0xe01,0xe01,0xe01,0xe01,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0x111c,0x111c,0x100b,0x100b,0x100b,
+0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,
+0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,
+0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,
+0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,
+0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,
+0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,
+0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,
+0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,
+0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,
+0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,
+0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,
+0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,
+0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,
+0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,
+0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,
+0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,
+0xecd,0xecd,0xe1f,0xe1f,0xf15,0xf15,0xf15,0xf15,0xf15,0xf15,0xf15,0x1017,0x1017,0x1017,0x1017,0x1017,
+0x1014,0x1014,0x1014,0x1014,0x1014,0x1014,0x1014,0x1014,0x1014,0x1014,0x1014,0x1014,0x1014,0x1014,0x1014,0x1014,
+0xe2e,0xe2b,0xe2e,0xe2b,0xe2e,0xe2b,0xe2e,0xe2b,0xe2e,0xe2b,0xe2e,0xe2b,0xe2e,0xe2b,0xe2e,0xe2b,
+0xe2e,0xe2b,0xe2e,0xe2b,0xe2e,0xe2b,0xe2e,0xe2b,0xe2e,0xe2b,0xe2e,0xe2b,0xe2e,0xe2b,0xe2e,0xe2b,
+0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,
0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,
-0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe43,0xe43,0xe43,0xe43,
-0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,
-0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe3d,0xe40,0xe40,0xe40,0xe40,
0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,
-0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe43,0xe43,0xe43,0xe43,0xe43,0xe4c,0xe4c,0xe4c,0xe4c,
-0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,
-0xe49,0xe49,0xe46,0xe4f,0xff6,0xff0,0xfff,0xfed,0xe4c,0xe4c,0xfed,0xfed,0xe61,0xe61,0xe52,0xe61,
-0xe61,0xe61,0xe58,0xe61,0xe61,0xe61,0xe61,0xe52,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,
-0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe64,0xe64,0xe64,0xe64,
-0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,
-0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe7c,0xe7c,0xe7c,0xe7c,
-0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,
-0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe9a,0xe9a,0xe9a,0xe9a,
-0xe9a,0xe9a,0xe9a,0xe9a,0xe9a,0xe9a,0xe9a,0xe9a,0xe9a,0xe9a,0xe9a,0xe9a,0x10f5,0x10f5,0x10f5,0x10f5,
-0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0xecd,0xecd,0xecd,0xeca,
-0xeca,0xeca,0xeca,0xeca,0x112e,0x137a,0x137a,0x137a,0x137a,0x12fc,0x12fc,0x12fc,0x137d,0x12ff,0x12ff,0x137d,
-0x14cd,0x14cd,0x14cd,0x14cd,0x14d0,0x14d0,0x14d0,0x1797,0x1797,0x1797,0x1797,0x185d,0xee2,0xee2,0xee2,0xee2,
-0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfde,0xfde,0xfde,0xfde,
-0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xf03,0xf03,0xf03,0xf03,
-0xf15,0xf1e,0xf21,0xf1e,0xf21,0xf1e,0xf21,0xf1e,0xf21,0xf1e,0xf21,0xf1e,0xf1e,0xf1e,0xf21,0xf1e,
-0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,
-0xf1e,0xf1e,0xf1e,0xf1e,0xf06,0xf15,0xf03,0xf03,0xf03,0xf03,0xf03,0xf18,0xf03,0xf18,0xf15,0xf15,
-0xf2a,0xf27,0xf2a,0xf2a,0xf2a,0xf27,0xf27,0xf2a,0xf27,0xf2a,0xf27,0xf2a,0xf27,0x1011,0x1011,0x1011,
-0x114c,0x1008,0x1011,0x1008,0xf27,0xf2a,0xf27,0xf27,0x1008,0x1008,0x1008,0x1008,0x100b,0x100e,0x114c,0x114c,
-0xf2d,0xf2d,0x1023,0x101a,0x1023,0x101a,0x1023,0x101a,0x1023,0x101a,0x1023,0x101a,0x1023,0x101a,0x1023,0x101a,
-0x101a,0x101a,0x1023,0x101a,0x1023,0x101a,0x1023,0x101a,0x1023,0x101a,0x1023,0x101a,0x1023,0x101a,0x1023,0x101a,
-0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,
-0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,
-0xf42,0xf42,0xf42,0xf42,0xf42,0xf42,0xf42,0xf42,0xf42,0xf42,0xf42,0xf42,0xf42,0xf42,0xf42,0xf42,
-0xf42,0xf42,0xf42,0xf42,0xf42,0xf42,0xf42,0xf42,0xf42,0xf42,0xf42,0xf42,0xf42,0xf42,0xf42,0xf42,
-0xf42,0xf42,0xf42,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,0x150c,
-0x150c,0x150c,0x150c,0x150c,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,
-0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,
-0xf48,0xf48,0xf48,0xf48,0xf90,0xfab,0xfa2,0xf9f,0xf9f,0xfab,0xfab,0xfa2,0xfa2,0xf9f,0xf9f,0xf9f,
-0xf9f,0xf9f,0xfab,0xfab,0xfab,0xf90,0xf90,0xf90,0xf90,0xfab,0xfab,0xfab,0xfab,0xfab,0xfab,0xfab,
-0xfab,0xfab,0xfab,0xfab,0xfab,0xfab,0xf90,0xfa2,0xfa5,0xf90,0xf90,0xfa8,0xfa8,0xfa8,0xfa8,0xfa8,
-0xfa8,0xf93,0xfab,0xfa8,0xf9c,0xf9c,0xf9c,0xf9c,0xf9c,0xf9c,0xf9c,0xf9c,0xf9c,0xf9c,0x1116,0x1116,
-0x1113,0x1110,0xf99,0xf99,0xfc3,0xfc3,0xfc3,0xfc3,0x1284,0x1284,0x125a,0x125a,0x1260,0x1257,0x1257,0x1257,
-0x1257,0x125a,0x1380,0x1260,0x125a,0x1260,0x1257,0x1260,0x1284,0x1257,0x1257,0x1257,0x125a,0x125a,0x1257,0x1257,
-0x125a,0x1257,0x1257,0x125a,0xfde,0xfde,0xfde,0xfde,0xfde,0xfdb,0xfdb,0xfde,0xfde,0xfde,0xfde,0xfde,
-0xfde,0x14e5,0x14e5,0x14e5,0x10ec,0xfdb,0xfdb,0xfdb,0xfdb,0x1290,0x1269,0x1269,0x1269,0x1269,0x14e5,0x14e5,
-0x14e5,0x14e5,0x14e5,0x14e5,0xffc,0xffc,0xff9,0xff3,0xff9,0xff3,0xff9,0xff3,0xff9,0xff3,0xff0,0xff0,
-0xff0,0xff0,0x1005,0x1002,0xff0,0x1149,0x13e0,0x13e3,0x13e3,0x13e0,0x13e0,0x13e0,0x13e0,0x13e0,0x13e6,0x13e6,
-0x1500,0x14f4,0x14f4,0x14f1,0x1023,0x101a,0x1023,0x101a,0x1023,0x101a,0x1023,0x101a,0x1017,0x1014,0x1014,0x1023,
-0x101a,0x1320,0x131d,0x16ef,0x1320,0x131d,0x13ef,0x13ec,0x1503,0x1503,0x1509,0x1503,0x1509,0x1503,0x1509,0x1503,
-0x1509,0x1503,0x1509,0x1503,0x1023,0x101a,0x1023,0x101a,0x1023,0x101a,0x1023,0x101a,0x1023,0x101a,0x1023,0x101a,
-0x1023,0x101a,0x1023,0x101a,0x1023,0x101a,0x1023,0x101a,0x1023,0x101a,0x1023,0x101a,0x1023,0x101a,0x1023,0x101a,
-0x1023,0x101a,0x1023,0x101a,0x101d,0x101a,0x101a,0x101a,0x101a,0x101a,0x101a,0x101a,0x101a,0x1023,0x101a,0x1023,
-0x101a,0x1023,0x1023,0x101a,0x1026,0x1026,0x102c,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,
-0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,
-0x1032,0x1032,0x1032,0x1032,0x1032,0x102c,0x1026,0x1026,0x1026,0x1026,0x102c,0x102c,0x1026,0x1026,0x102f,0x13f8,
-0x13f5,0x13f5,0x1032,0x1032,0x1029,0x1029,0x1029,0x1029,0x1029,0x1029,0x1029,0x1029,0x1029,0x1029,0x13fb,0x13fb,
-0x13fb,0x13fb,0x13fb,0x13fb,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,
-0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,
-0x1047,0x1047,0x1047,0x1047,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,
-0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1053,0x1053,0x1053,0x1056,
-0x1053,0x1053,0x1059,0x1059,0x105c,0x105c,0x105c,0x105c,0x105c,0x105c,0x105c,0x105c,0x105c,0x105c,0x105c,0x105c,
-0x105c,0x105c,0x105c,0x105c,0x105c,0x105c,0x105c,0x105c,0x105c,0x105c,0x105c,0x105c,0x105c,0x105c,0x105c,0x105c,
-0x105c,0x105c,0x105c,0x105c,0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,
-0x1068,0x105f,0x106e,0x106b,0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,
-0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,
-0x1065,0x1065,0x1065,0x1065,0x1326,0x1323,0x1080,0x107a,0x1080,0x107a,0x1080,0x107a,0x1080,0x107a,0x1080,0x107a,
-0x1080,0x107a,0x107d,0x10fe,0x1071,0x1071,0x1071,0x1077,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,
-0x1074,0x1074,0x1077,0x1083,0x1080,0x107a,0x1080,0x107a,0x1080,0x107a,0x1080,0x107a,0x1080,0x107a,0x1080,0x107a,
-0x1080,0x107a,0x1080,0x107a,0x1080,0x107a,0x1080,0x107a,0x1080,0x107a,0x1080,0x107a,0x1080,0x107a,0x1080,0x107a,
-0x1080,0x107a,0x1080,0x107a,0x1518,0x1515,0x1518,0x1515,0x151b,0x151b,0x16f8,0x13fe,0x108c,0x108c,0x108f,0x108f,
-0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,
-0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108c,0x108c,0x108c,0x108c,
-0x108c,0x108c,0x108c,0x108c,0x108c,0x108c,0x108c,0x108c,0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,0x1095,0x1095,
-0x1095,0x1095,0x1095,0x1098,0x1098,0x1098,0x10f2,0x10a1,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,
-0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,
-0x109b,0x109b,0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,
-0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,
+0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,
+0xe58,0xe58,0xe58,0xe58,0xe58,0xe58,0xe58,0xe58,0xe58,0xe58,0xe58,0xe58,0xe58,0xe58,0xe58,0xe58,
+0xe58,0xe58,0xe58,0xe58,0xe58,0xe58,0xe58,0xf18,0xf18,0xf18,0xf18,0x101a,0x101a,0x101a,0x101a,0x101a,
+0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,
+0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,
+0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,
+0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,
+0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,
+0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe6d,
+0xe70,0xe70,0xe70,0xe70,0xe70,0xe70,0xe70,0xe70,0xe70,0xe70,0xe70,0xe70,0xe70,0xe70,0xe70,0xe70,
+0xe70,0xe70,0xe70,0xe70,0xe70,0xe70,0xe70,0xe70,0xe70,0xe70,0xe70,0xe73,0xe73,0xe73,0xe73,0xe73,
+0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe79,0xe79,
+0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe76,0xe7f,0x1026,0x1020,0x102f,0x101d,0xe7c,0xe7c,0x101d,0x101d,
+0xe91,0xe91,0xe82,0xe91,0xe91,0xe91,0xe88,0xe91,0xe91,0xe91,0xe91,0xe82,0xe91,0xe91,0xe91,0xe91,
+0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,
+0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,
+0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,
+0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,
+0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,0xeac,
+0xeca,0xeca,0xeca,0xeca,0xeca,0xeca,0xeca,0xeca,0xeca,0xeca,0xeca,0xeca,0xeca,0xeca,0xeca,0xeca,
+0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,
+0xefd,0xefd,0xefd,0xefa,0xefa,0xefa,0xefa,0xefa,0x115e,0x13b6,0x13b6,0x13b6,0x13b6,0x1338,0x1338,0x1338,
+0x13b9,0x133b,0x133b,0x13b9,0x14fd,0x14fd,0x14fd,0x14fd,0x1500,0x1500,0x1500,0x17c7,0x17c7,0x17c7,0x17c7,0x188d,
+0xf12,0xf12,0xf12,0xf12,0x100b,0x100b,0x100b,0x100b,0x100b,0x100b,0x100b,0x100b,0x100b,0x100b,0x100b,0x100b,
+0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,0x100e,
+0xf33,0xf33,0xf33,0xf33,0xf45,0xf4e,0xf51,0xf4e,0xf51,0xf4e,0xf51,0xf4e,0xf51,0xf4e,0xf51,0xf4e,
+0xf4e,0xf4e,0xf51,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,
+0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf36,0xf45,0xf33,0xf33,0xf33,0xf33,0xf33,0xf48,
+0xf33,0xf48,0xf45,0xf45,0xf5a,0xf57,0xf5a,0xf5a,0xf5a,0xf57,0xf57,0xf5a,0xf57,0xf5a,0xf57,0xf5a,
+0xf57,0x1041,0x1041,0x1041,0x117c,0x1038,0x1041,0x1038,0xf57,0xf5a,0xf57,0xf57,0x1038,0x1038,0x1038,0x1038,
+0x103b,0x103e,0x117c,0x117c,0xf5d,0xf5d,0x1053,0x104a,0x1053,0x104a,0x1053,0x104a,0x1053,0x104a,0x1053,0x104a,
+0x1053,0x104a,0x1053,0x104a,0x104a,0x104a,0x1053,0x104a,0x1053,0x104a,0x1053,0x104a,0x1053,0x104a,0x1053,0x104a,
+0x1053,0x104a,0x1053,0x104a,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,
+0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,
+0xf63,0xf63,0xf63,0xf63,0xf72,0xf72,0xf72,0xf72,0xf72,0xf72,0xf72,0xf72,0xf72,0xf72,0xf72,0xf72,
+0xf72,0xf72,0xf72,0xf72,0xf72,0xf72,0xf72,0xf72,0xf72,0xf72,0xf72,0xf72,0xf72,0xf72,0xf72,0xf72,
+0xf72,0xf72,0xf72,0xf72,0xf72,0xf72,0xf72,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,
+0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0xf78,0xf78,0xf78,0xf78,0xf78,0xf78,0xf78,0xf78,
+0xf78,0xf78,0xf78,0xf78,0xf78,0xf78,0xf78,0xf78,0xf78,0xf78,0xf78,0xf78,0xf78,0xf78,0xf78,0xf78,
+0xf78,0xf78,0xf78,0xf78,0xf78,0xf78,0xf78,0xf78,0xfc0,0xfdb,0xfd2,0xfcf,0xfcf,0xfdb,0xfdb,0xfd2,
+0xfd2,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfdb,0xfdb,0xfdb,0xfc0,0xfc0,0xfc0,0xfc0,0xfdb,0xfdb,0xfdb,
+0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfc0,0xfd2,0xfd5,0xfc0,0xfc0,0xfd8,
+0xfd8,0xfd8,0xfd8,0xfd8,0xfd8,0xfc3,0xfdb,0xfd8,0xfcc,0xfcc,0xfcc,0xfcc,0xfcc,0xfcc,0xfcc,0xfcc,
+0xfcc,0xfcc,0x1146,0x1146,0x1143,0x1140,0xfc9,0xfc9,0xff3,0xff3,0xff3,0xff3,0x12b7,0x12b7,0x128d,0x128d,
+0x1293,0x128a,0x128a,0x128a,0x128a,0x128d,0x13bc,0x1293,0x128d,0x1293,0x128a,0x1293,0x12b7,0x128a,0x128a,0x128a,
+0x128d,0x128d,0x128a,0x128a,0x128d,0x128a,0x128a,0x128d,0x100e,0x100e,0x100e,0x100e,0x100e,0x100b,0x100b,0x100e,
+0x100e,0x100e,0x100e,0x100e,0x100e,0x1515,0x1515,0x1515,0x111c,0x100b,0x100b,0x100b,0x100b,0x12c3,0x129c,0x129c,
+0x129c,0x129c,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x102c,0x102c,0x1029,0x1023,0x1029,0x1023,0x1029,0x1023,
+0x1029,0x1023,0x1020,0x1020,0x1020,0x1020,0x1035,0x1032,0x1020,0x1179,0x1413,0x1416,0x1416,0x1413,0x1413,0x1413,
+0x1413,0x1413,0x1419,0x1419,0x1530,0x1524,0x1524,0x1521,0x1053,0x104a,0x1053,0x104a,0x1053,0x104a,0x1053,0x104a,
+0x1047,0x1044,0x1044,0x1053,0x104a,0x135c,0x1359,0x171f,0x135c,0x1359,0x1422,0x141f,0x1533,0x1533,0x1539,0x1533,
+0x1539,0x1533,0x1539,0x1533,0x1539,0x1533,0x1539,0x1533,0x1053,0x104a,0x1053,0x104a,0x1053,0x104a,0x1053,0x104a,
+0x1053,0x104a,0x1053,0x104a,0x1053,0x104a,0x1053,0x104a,0x1053,0x104a,0x1053,0x104a,0x1053,0x104a,0x1053,0x104a,
+0x1053,0x104a,0x1053,0x104a,0x1053,0x104a,0x1053,0x104a,0x104d,0x104a,0x104a,0x104a,0x104a,0x104a,0x104a,0x104a,
+0x104a,0x1053,0x104a,0x1053,0x104a,0x1053,0x1053,0x104a,0x1056,0x1056,0x105c,0x1062,0x1062,0x1062,0x1062,0x1062,
+0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,
+0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x105c,0x1056,0x1056,0x1056,0x1056,0x105c,0x105c,
+0x1056,0x1056,0x105f,0x142b,0x1428,0x1428,0x1062,0x1062,0x1059,0x1059,0x1059,0x1059,0x1059,0x1059,0x1059,0x1059,
+0x1059,0x1059,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,
+0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,
+0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,
+0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,
+0x1083,0x1083,0x1083,0x1086,0x1083,0x1083,0x1089,0x1089,0x108c,0x108c,0x108c,0x108c,0x108c,0x108c,0x108c,0x108c,
+0x108c,0x108c,0x108c,0x108c,0x108c,0x108c,0x108c,0x108c,0x108c,0x108c,0x108c,0x108c,0x108c,0x108c,0x108c,0x108c,
+0x108c,0x108c,0x108c,0x108c,0x108c,0x108c,0x108c,0x108c,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,
+0x1095,0x1095,0x1095,0x1095,0x1098,0x108f,0x109e,0x109b,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,
+0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,
+0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1362,0x135f,0x10b0,0x10aa,0x10b0,0x10aa,0x10b0,0x10aa,
+0x10b0,0x10aa,0x10b0,0x10aa,0x10b0,0x10aa,0x10ad,0x112e,0x10a1,0x10a1,0x10a1,0x10a7,0x1431,0x1431,0x1431,0x1431,
+0x1431,0x1431,0x1431,0x1431,0x10a4,0x10a4,0x10a7,0x10b3,0x10b0,0x10aa,0x10b0,0x10aa,0x10b0,0x10aa,0x10b0,0x10aa,
+0x10b0,0x10aa,0x10b0,0x10aa,0x10b0,0x10aa,0x10b0,0x10aa,0x10b0,0x10aa,0x10b0,0x10aa,0x10b0,0x10aa,0x10b0,0x10aa,
+0x10b0,0x10aa,0x10b0,0x10aa,0x10b0,0x10aa,0x10b0,0x10aa,0x1548,0x1545,0x1548,0x1545,0x154b,0x154b,0x1728,0x1431,
+0x10bc,0x10bc,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,
0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,
-0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,
-0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,
-0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10da,0x10da,0x10da,0x10da,0x10ef,0x10da,0x10da,0x10da,
-0x10da,0x10da,0x10da,0x10da,0x10da,0x10da,0x10da,0x10da,0x10da,0x10da,0x10da,0x10da,0x10da,0x10da,0x10da,0x10da,
-0x10da,0x10da,0x10da,0x10da,0x10da,0x10da,0x10da,0x10da,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,
-0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,
-0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10e9,0x10e9,0x10e9,0x10e9,0x128a,0x128a,0x128a,0x128a,
-0x128a,0x128a,0x128a,0x128a,0x1488,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x18c6,0x18c6,
-0x18c6,0x18c6,0x18c6,0x18c6,0x18c6,0x18c6,0x18c6,0x18c6,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,
-0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x1155,0x1155,
-0x1158,0x1158,0x115e,0x1155,0x1155,0x1155,0x1155,0x1155,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,
-0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,
-0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,
-0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,
-0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,
-0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,
-0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1185,0x118b,0x1197,0x1197,0x1197,0x1197,0x1197,0x1197,0x1197,0x1197,
-0x1197,0x1197,0x1197,0x1197,0x1197,0x1197,0x1197,0x1197,0x1197,0x1197,0x1197,0x1197,0x1197,0x1197,0x1197,0x1197,
-0x1197,0x1197,0x1197,0x1197,0x1197,0x1197,0x1197,0x1197,0x11a6,0x11a6,0x11a6,0x11b5,0x11bb,0x11bb,0x11bb,0x11bb,
+0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10ce,0x10ce,0x10ce,0x10ce,
+0x10ce,0x10ce,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c8,0x10c8,0x10c8,0x1122,0x10d1,0x10e0,0x10e0,0x10e0,0x10e0,
+0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10cb,0x10cb,0x10cb,0x10cb,
+0x10cb,0x10cb,0x10cb,0x10cb,0x10cb,0x10cb,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,
+0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ef,0x10ef,0x10ef,0x10ef,
+0x10ef,0x10ef,0x10ef,0x10ef,0x10ef,0x10ef,0x10ef,0x10ef,0x10ef,0x10ef,0x10ef,0x10ef,0x10ef,0x10ef,0x10ef,0x10ef,
+0x10ef,0x10ef,0x10ef,0x10ef,0x10ef,0x10ef,0x10ef,0x10ef,0x10ef,0x10ef,0x10ef,0x10ef,0x1101,0x1101,0x1101,0x1101,
+0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,
+0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x110a,0x110a,0x110a,0x110a,
+0x111f,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,
+0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110d,0x110d,0x110d,0x110d,
+0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,
+0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x1119,0x1119,0x1119,0x1119,
+0x12bd,0x12bd,0x12bd,0x12bd,0x12bd,0x12bd,0x12bd,0x12bd,0x14bb,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,
+0x17a6,0x17a6,0x18f6,0x18f6,0x18f6,0x18f6,0x18f6,0x18f6,0x18f6,0x18f6,0x18f6,0x18f6,0x118e,0x118e,0x118e,0x118e,
+0x118e,0x118e,0x118e,0x118e,0x118e,0x118e,0x118e,0x118e,0x118e,0x118e,0x118e,0x118e,0x118e,0x118e,0x118e,0x118e,
+0x118e,0x118e,0x1185,0x1185,0x1188,0x1188,0x118e,0x1185,0x1185,0x1185,0x1185,0x1185,0x1194,0x1194,0x1194,0x1194,
+0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,
+0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x11af,0x11af,0x11af,0x11af,
+0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,
+0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11bb,0x11bb,0x11bb,0x11bb,
0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,
-0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11a9,0x11b5,0x11b5,0x11a6,0x11a6,
-0x11a6,0x11a6,0x11b5,0x11b5,0x11a6,0x11b5,0x11b5,0x11b5,0x11c7,0x11c7,0x11c7,0x11c7,0x11c7,0x11c7,0x11c7,0x11c7,
-0x11c7,0x11c7,0x11c7,0x11c7,0x11c7,0x11c7,0x11c7,0x11c7,0x11ca,0x11c7,0x11c7,0x11c7,0x11c7,0x11c7,0x11c7,0x11c1,
-0x11c1,0x11c1,0x11c7,0x11c4,0x1521,0x1524,0x1527,0x1527,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,
-0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11cd,0x11d9,0x11cd,0x11cd,0x11cd,0x11e2,0x11e2,0x11cd,
-0x11cd,0x11e2,0x11d9,0x11e2,0x11e2,0x11d9,0x11cd,0x11d0,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,
-0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,
-0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,
-0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,
-0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,
+0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11b8,0x11be,0x11ca,0x11ca,0x11ca,0x11ca,
+0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,
+0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11d0,0x11d0,0x11d0,0x11d0,
+0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x1308,0x11d6,0x130b,
+0x11d6,0x11d6,0x11d6,0x11d6,0x11d3,0x11d3,0x11d3,0x11d6,0x172b,0x172e,0x1950,0x194d,0x11d9,0x11d9,0x11d9,0x11e8,
+0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,
+0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11dc,
+0x11e8,0x11e8,0x11d9,0x11d9,0x11d9,0x11d9,0x11e8,0x11e8,0x11d9,0x11e8,0x11e8,0x11e8,0x11fa,0x11fa,0x11fa,0x11fa,
+0x11fa,0x11fa,0x11fa,0x11fa,0x11fa,0x11fa,0x11fa,0x11fa,0x11fa,0x11fa,0x11fa,0x11fa,0x11fd,0x11fa,0x11fa,0x11fa,
+0x11fa,0x11fa,0x11fa,0x11f4,0x11f4,0x11f4,0x11fa,0x11f7,0x1551,0x1554,0x1557,0x1557,0x120c,0x120c,0x120c,0x120c,
+0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x1200,0x120c,0x1200,0x1200,
+0x1200,0x1215,0x1215,0x1200,0x1200,0x1215,0x120c,0x1215,0x1215,0x120c,0x1200,0x1203,0x120c,0x120c,0x120c,0x120c,
0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,
-0x120c,0x120c,0x120c,0x120c,0x120c,0x1209,0x1209,0x1209,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,
-0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,
-0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,
-0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,
-0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x122a,0x122a,0x1239,0x123c,0x123c,0x123c,0x123c,0x123c,
-0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,
-0x123c,0x123c,0x123f,0x123c,0x123f,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,
-0x123c,0x123c,0x123c,0x123f,0x123c,0x123c,0x123c,0x123c,0x1239,0x1239,0x1239,0x122d,0x122d,0x122d,0x122d,0x1239,
-0x1239,0x1233,0x1230,0x1236,0x1236,0x1245,0x1242,0x1242,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,
-0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,
-0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x124e,0x124e,0x124e,0x124b,0x124b,0x124b,0x1248,0x1248,
-0x1248,0x1248,0x124b,0x1248,0x1248,0x1248,0x124e,0x124b,0x124e,0x124b,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,
+0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x1227,0x1227,0x1227,0x1227,
+0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,
+0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x123f,0x123f,0x123f,0x123f,
+0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,
+0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123c,0x123c,0x123c,0x1248,0x1248,0x1248,0x1248,
0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,
-0x1248,0x1248,0x1248,0x1248,0x1248,0x124e,0x124b,0x124b,0x1248,0x1248,0x1248,0x1248,0x125a,0x125a,0x1302,0x1257,
-0x1302,0x1302,0x1302,0x1302,0x1257,0x125d,0x1284,0x1257,0x1257,0x1257,0x1257,0x1257,0x125d,0x1260,0x1284,0x1284,
-0x1260,0x1284,0x1257,0x1260,0x1260,0x1263,0x1284,0x1257,0x1257,0x1284,0x125a,0x125a,0x1371,0x1371,0x1371,0x1371,
-0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x126c,0x126c,0x126c,0x126c,0x138c,0x136b,0x1275,0x138c,0x138c,0x138c,
-0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x1824,0x1824,0x1824,0x1824,0x1824,0x1374,0x1374,0x127b,0x1374,
-0x1374,0x1374,0x127b,0x1374,0x1374,0x1374,0x1275,0x1275,0x1275,0x1275,0x1275,0x136e,0x1371,0x1371,0x1371,0x1371,
-0x1371,0x1371,0x1371,0x1278,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1278,0x12a2,0x12a2,0x12a2,0x12a2,
-0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,
-0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x1344,0x1344,0x1344,0x1344,
-0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,
-0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x1359,0x134a,0x1359,0x135c,
-0x135c,0x135c,0x135c,0x135c,0x135c,0x135c,0x135c,0x135c,0x135c,0x135c,0x135c,0x135c,0x135c,0x135c,0x135c,0x135c,
-0x135c,0x135c,0x135c,0x135c,0x135c,0x135c,0x135c,0x135c,0x135c,0x135c,0x135c,0x135c,0x134a,0x134a,0x134a,0x134a,
-0x134a,0x134a,0x134a,0x134a,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,
-0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,
-0x1362,0x1362,0x1362,0x1362,0x1368,0x1368,0x1368,0x1368,0x1368,0x1368,0x1368,0x1368,0x1368,0x1368,0x1368,0x1368,
-0x1368,0x1368,0x1368,0x1368,0x1368,0x1368,0x1368,0x1368,0x1368,0x1368,0x1368,0x1368,0x1368,0x1368,0x1368,0x1368,
-0x1368,0x1368,0x1368,0x1368,0x1398,0x1395,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,
-0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,
-0x18cc,0x18cc,0x18cc,0x18cc,0x13a1,0x13a1,0x13a1,0x13a1,0x13a4,0x13a1,0x13a1,0x13a1,0x13a4,0x13a1,0x13a1,0x13a1,
-0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x139e,0x139e,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,
-0x139e,0x13a1,0x13a1,0x13a1,0x139e,0x13a1,0x139e,0x13a1,0x139e,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a7,0x13a1,
-0x13a1,0x13a1,0x13a1,0x139e,0x13a1,0x139e,0x139e,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a4,
-0x13a4,0x13a1,0x13a1,0x13a1,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,
-0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x139e,0x139e,0x139e,0x139e,0x139e,
-0x139e,0x139e,0x139e,0x139e,0x139e,0x13a1,0x13a1,0x13a4,0x13a1,0x13a1,0x13a1,0x13a1,0x13a4,0x13a1,0x13a1,0x13a1,
-0x13a1,0x13a1,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x1533,0x1533,
-0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a4,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,
-0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,
-0x13a1,0x153c,0x1536,0x1536,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x1779,0x1779,0x1779,
-0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x153c,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a4,0x13a1,
-0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,
-0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,
-0x13a1,0x13a1,0x13a1,0x13a4,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x153c,0x1779,0x1779,
-0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a7,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,
-0x13a1,0x13a1,0x13a1,0x13a4,0x1536,0x1536,0x153c,0x153c,0x1536,0x153c,0x153c,0x153c,0x1533,0x1533,0x153c,0x153c,
-0x13a1,0x13a1,0x13a7,0x13a7,0x13a7,0x16aa,0x13a1,0x13a7,0x13a1,0x13a1,0x13a7,0x1542,0x1542,0x153c,0x153c,0x1779,
-0x1779,0x1779,0x1779,0x1779,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,
-0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a4,0x13a1,0x13a4,0x13a1,0x13a1,
-0x13a1,0x1536,0x1536,0x153c,0x16aa,0x153c,0x1536,0x153c,0x1779,0x1779,0x1779,0x177c,0x177c,0x177c,0x177c,0x177c,
-0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,
-0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x153c,
-0x13a1,0x153c,0x13a7,0x13a7,0x13a1,0x13a1,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,
-0x13a7,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,
-0x13a1,0x13a1,0x13aa,0x13aa,0x13aa,0x13aa,0x13a1,0x13a1,0x13a1,0x13a1,0x13a7,0x13a1,0x13a7,0x13a7,0x13a7,0x13a7,
-0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a1,0x13a1,0x13a1,0x13a7,0x13a1,0x13a1,0x13a1,0x13a1,0x13a7,0x13a7,0x13a7,
-0x13a1,0x13a7,0x13a7,0x13a7,0x13a1,0x13a1,0x13a1,0x13a4,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,
-0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,
-0x16aa,0x13a1,0x13a1,0x13a1,0x13a1,0x153c,0x1536,0x1779,0x1404,0x1404,0x1404,0x1404,0x1533,0x1533,0x1533,0x1533,
-0x1533,0x1539,0x153c,0x1779,0x1779,0x1779,0x1779,0x1701,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,
-0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x1536,0x1536,0x1536,0x1536,0x1536,0x1536,0x1536,0x153c,
-0x153c,0x1536,0x1536,0x153c,0x1542,0x1542,0x153c,0x153c,0x153c,0x153c,0x182d,0x1536,0x1536,0x1536,0x1536,0x1536,
-0x1536,0x153c,0x1536,0x153c,0x1536,0x1536,0x1536,0x1536,0x153f,0x1536,0x1536,0x1536,0x1536,0x1536,0x1536,0x153c,
-0x1536,0x1536,0x1536,0x153c,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x153c,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,
-0x148e,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,
-0x13ad,0x148e,0x13ad,0x13ad,0x13ad,0x148e,0x13ad,0x148e,0x13ad,0x148e,0x13ad,0x148e,0x13ad,0x13ad,0x13ad,0x148e,
-0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x148e,0x148e,0x13ad,0x13ad,0x13ad,0x13ad,0x148e,0x13ad,0x148e,0x148e,
-0x13ad,0x13ad,0x13ad,0x13ad,0x148e,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,
-0x13ad,0x16b0,0x16b0,0x177f,0x177f,0x13b0,0x13b0,0x13b0,0x13ad,0x13ad,0x13ad,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,
-0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,
-0x13b6,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,
-0x13b3,0x13b3,0x13b6,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,
-0x13b3,0x13b3,0x13b3,0x13b9,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,
-0x13b3,0x13b3,0x13b3,0x13b3,0x13b9,0x13b9,0x13b9,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,
-0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,
-0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,
-0x17ac,0x17ac,0x17a9,0x1704,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x1407,0x1407,0x1407,0x1407,0x1407,0x1407,
-0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x154b,
-0x1416,0x1416,0x1416,0x1428,0x1428,0x1428,0x1428,0x1428,0x1428,0x1428,0x1428,0x1428,0x1428,0x1428,0x1428,0x1428,
-0x1428,0x1428,0x1428,0x1428,0x1428,0x1428,0x1428,0x1428,0x1428,0x1428,0x1428,0x1428,0x1428,0x1428,0x1428,0x1428,
-0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,
-0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,
-0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,
-0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,
-0x1452,0x1452,0x145e,0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,
-0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,
-0x1464,0x1464,0x1464,0x145e,0x145e,0x145e,0x1452,0x1452,0x1452,0x1452,0x1452,0x1452,0x1452,0x1452,0x1452,0x145e,
-0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,
-0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,
-0x1536,0x1536,0x153c,0x153c,0x153c,0x1536,0x1536,0x1536,0x1536,0x1536,0x1536,0x1536,0x1536,0x1536,0x1536,0x1536,
-0x1536,0x153c,0x153c,0x153c,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x1533,0x153c,0x153c,0x153c,0x1536,
-0x1536,0x1536,0x1536,0x1536,0x1536,0x1536,0x1536,0x153c,0x1536,0x1536,0x153c,0x153c,0x153c,0x153c,0x1536,0x1536,
-0x1542,0x1536,0x1536,0x1536,0x1536,0x16ad,0x16ad,0x1536,0x1536,0x1536,0x1536,0x1536,0x1536,0x1536,0x1536,0x1536,
-0x182a,0x153c,0x1536,0x1536,0x153c,0x1536,0x1536,0x1536,0x1536,0x1536,0x1536,0x1536,0x1536,0x153c,0x153c,0x1536,
-0x1536,0x1536,0x1536,0x1536,0x1536,0x1536,0x1536,0x1536,0x153c,0x1536,0x1536,0x1536,0x1563,0x1563,0x1563,0x1563,
-0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,
-0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1575,0x1575,0x1575,0x1575,
-0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,
-0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x157b,0x157b,0x157b,0x157b,
-0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,
-0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157b,0x157e,0x157e,0x157e,0x157e,
-0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,
-0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x15bd,0x15bd,0x15bd,0x15bd,
-0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,
-0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15ae,0x15c6,0x15c6,0x15c6,0x15c6,
-0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,
-0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c0,0x15c9,0x15c9,0x15c9,0x15c9,0x15cc,0x15cc,0x15cc,0x15cc,
-0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,
-0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15e7,0x15e7,0x15e7,0x15e7,
-0x15e7,0x15e7,0x15e7,0x15e7,0x15de,0x15e7,0x15e7,0x15e7,0x15e7,0x15e7,0x15e7,0x15e7,0x15e7,0x15e7,0x15e7,0x15e7,
-0x15e7,0x15e7,0x15e7,0x15e7,0x15e7,0x15e7,0x15e7,0x15e7,0x15e7,0x15e7,0x15e7,0x15e7,0x15f0,0x15f0,0x15f0,0x15f0,
-0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,
-0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x1602,0x1602,0x1602,0x1602,
-0x1602,0x1602,0x1602,0x1602,0x1602,0x1602,0x1602,0x1602,0x1602,0x1602,0x1602,0x1602,0x15ff,0x15ff,0x15ff,0x15f3,
-0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15ff,0x15ff,0x15f3,0x15ff,0x15f6,0x1602,0x1602,0x1602,0x1602,
-0x1602,0x1602,0x1602,0x1602,0x1602,0x1602,0x1602,0x1602,0x1602,0x1602,0x1602,0x1602,0x1602,0x1602,0x1602,0x1602,
-0x1602,0x1602,0x1602,0x1602,0x1602,0x1602,0x1602,0x1602,0x1602,0x1602,0x1602,0x1602,0x1626,0x1626,0x1626,0x1626,
-0x1626,0x1626,0x1626,0x1626,0x1626,0x1626,0x1626,0x1626,0x1626,0x1626,0x1626,0x1626,0x1626,0x1626,0x1626,0x1626,
-0x1626,0x1626,0x1626,0x1626,0x1626,0x1626,0x1626,0x1626,0x1626,0x1623,0x1623,0x1623,0x162f,0x162f,0x162f,0x162f,
-0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,
-0x162f,0x162f,0x1635,0x1635,0x1635,0x1632,0x1632,0x1632,0x162f,0x162f,0x162f,0x162f,0x1644,0x1644,0x1644,0x1644,
-0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1638,0x1638,0x1638,0x1638,
-0x1638,0x1638,0x1638,0x164a,0x164a,0x163e,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x1644,0x1644,0x1644,0x1644,
-0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,
-0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1650,0x1650,0x1650,0x1650,
-0x1650,0x1650,0x1650,0x1650,0x1650,0x1650,0x1650,0x1650,0x1650,0x1650,0x1650,0x1650,0x1650,0x1650,0x1650,0x1650,
-0x1650,0x1650,0x1650,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x1653,0x1653,0x1653,0x1653,
-0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,
-0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1677,0x1677,0x1677,0x1677,
-0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,
-0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1680,0x1680,0x1680,0x1680,
-0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,
-0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1698,0x1698,0x1698,0x1698,
-0x1698,0x1698,0x1698,0x1698,0x1698,0x1698,0x1698,0x1698,0x1698,0x1698,0x1698,0x1698,0x1683,0x1692,0x1692,0x1683,
-0x1683,0x1683,0x1683,0x1683,0x1683,0x1692,0x1683,0x1695,0x1695,0x1683,0x1695,0x1683,0x1698,0x1698,0x1698,0x1698,
-0x1698,0x1698,0x1698,0x1698,0x1698,0x1698,0x1698,0x1698,0x1698,0x1698,0x1698,0x1698,0x1698,0x1698,0x1698,0x1698,
-0x1698,0x1698,0x1698,0x1698,0x1698,0x1698,0x1698,0x1698,0x1698,0x1698,0x1698,0x1698,0x16a1,0x16a1,0x16a1,0x16a1,
-0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,
-0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a7,0x16a7,0x16a7,0x16a7,
+0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1257,0x1257,0x1257,0x1257,
+0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,
+0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x125d,0x125d,0x126c,0x126f,
+0x126f,0x126f,0x126f,0x126f,0x126f,0x126f,0x126f,0x126f,0x126f,0x126f,0x126f,0x126f,0x126f,0x126f,0x126f,0x126f,
+0x126f,0x126f,0x126f,0x126f,0x126f,0x126f,0x1272,0x126f,0x1272,0x126f,0x126f,0x126f,0x126f,0x126f,0x126f,0x126f,
+0x126f,0x126f,0x126f,0x126f,0x126f,0x126f,0x126f,0x1272,0x126f,0x126f,0x126f,0x126f,0x126c,0x126c,0x126c,0x1260,
+0x1260,0x1260,0x1260,0x126c,0x126c,0x1266,0x1263,0x1269,0x1269,0x1278,0x1275,0x1275,0x127b,0x127b,0x127b,0x127b,
+0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,
+0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x1281,0x1281,0x1281,0x127e,
+0x127e,0x127e,0x127b,0x127b,0x127b,0x127b,0x127e,0x127b,0x127b,0x127b,0x1281,0x127e,0x1281,0x127e,0x127b,0x127b,
+0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,
+0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x1281,0x127e,0x127e,0x127b,0x127b,0x127b,0x127b,
+0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a5,0x12a5,0x12a5,0x1284,0x1956,
+0x13b0,0x12ae,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x12ae,0x13b0,0x12ae,
+0x128d,0x128d,0x133e,0x128a,0x133e,0x133e,0x133e,0x133e,0x128a,0x1290,0x12b7,0x128a,0x128a,0x128a,0x128a,0x128a,
+0x1290,0x1293,0x12b7,0x12b7,0x1293,0x12b7,0x128a,0x1293,0x1293,0x1296,0x12b7,0x128a,0x128a,0x12b7,0x128d,0x128d,
+0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x129f,0x129f,0x129f,0x129f,0x13c8,0x13a7,
+0x12a8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x1854,0x1854,0x1854,0x1854,0x1854,
+0x13b0,0x13b0,0x12ae,0x13b0,0x13b0,0x13b0,0x12ae,0x13b0,0x13b0,0x13b0,0x12a8,0x12a8,0x12a8,0x12a8,0x12a8,0x13aa,
+0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x12ab,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x12ab,
+0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,
+0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,
+0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,
+0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,
+0x1395,0x1386,0x1395,0x1398,0x1398,0x1398,0x1398,0x1398,0x1398,0x1398,0x1398,0x1398,0x1398,0x1398,0x1398,0x1398,
+0x1398,0x1398,0x1398,0x1398,0x1398,0x1398,0x1398,0x1398,0x1398,0x1398,0x1398,0x1398,0x1398,0x1398,0x1398,0x1398,
+0x1386,0x1386,0x1386,0x1386,0x1386,0x1386,0x1386,0x1386,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,
+0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,
+0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,
+0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,
+0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13d4,0x13d1,0x18fc,0x18fc,0x18fc,0x18fc,0x18fc,0x18fc,
+0x18fc,0x18fc,0x18fc,0x18fc,0x18fc,0x18fc,0x18fc,0x18fc,0x18fc,0x18fc,0x18fc,0x18fc,0x18fc,0x18fc,0x18fc,0x18fc,
+0x18fc,0x18fc,0x18fc,0x18fc,0x18fc,0x18fc,0x18fc,0x18fc,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,
+0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13da,0x13da,0x13dd,
+0x13dd,0x13dd,0x13dd,0x13dd,0x13da,0x13dd,0x13dd,0x13dd,0x13da,0x13dd,0x13da,0x13dd,0x13da,0x13dd,0x13dd,0x13dd,
+0x13dd,0x13dd,0x13e0,0x13dd,0x13dd,0x13dd,0x13dd,0x13da,0x13dd,0x13da,0x13da,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,
+0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13da,0x13da,0x13da,0x13da,0x13da,0x13da,0x13da,0x13dd,
+0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13da,
+0x13da,0x13da,0x13da,0x13da,0x13da,0x13da,0x13da,0x13da,0x13da,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,
+0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13da,0x13da,0x13da,0x13da,0x13da,0x13da,0x13da,0x13da,0x13da,0x13da,
+0x13da,0x13da,0x1563,0x1563,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,
+0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,
+0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x156f,0x1569,0x1569,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,
+0x156f,0x17a9,0x17a9,0x17a9,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x156f,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,
+0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,
+0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x156f,0x17a9,0x17a9,0x13dd,0x13dd,0x13dd,0x13dd,
+0x13dd,0x13e0,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,
+0x1569,0x1569,0x156f,0x156f,0x1569,0x156f,0x156f,0x156f,0x1566,0x1566,0x156f,0x156f,0x13dd,0x13dd,0x13e0,0x13e0,
+0x13e0,0x16da,0x13dd,0x13e0,0x13dd,0x13dd,0x13e0,0x1572,0x1572,0x156f,0x156f,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,
+0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x13dd,0x13dd,0x13dd,0x13dd,
+0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x1569,0x1569,0x156f,
+0x16da,0x156f,0x1569,0x156f,0x17a9,0x17a9,0x17a9,0x17ac,0x17ac,0x17ac,0x17ac,0x17ac,0x13dd,0x13dd,0x13dd,0x13dd,
+0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,
+0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x156f,0x13dd,0x156f,0x13e0,0x13e0,
+0x13dd,0x13dd,0x13e0,0x13e0,0x13e0,0x13e0,0x13e0,0x13e0,0x13e0,0x13e0,0x13e0,0x13e0,0x13e0,0x13dd,0x13dd,0x13dd,
+0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13e0,0x13e0,
+0x13e0,0x13e0,0x13dd,0x13dd,0x13dd,0x13dd,0x13e0,0x13dd,0x13e0,0x13e0,0x13e0,0x13e0,0x13e0,0x13e0,0x13e0,0x13e0,
+0x13e0,0x13dd,0x13dd,0x13dd,0x13e0,0x13dd,0x13dd,0x13dd,0x13dd,0x13e0,0x13e0,0x13e0,0x13dd,0x13e0,0x13e0,0x13e0,
+0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,
+0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x16da,0x13dd,0x13dd,0x13dd,0x13dd,0x156f,0x1569,0x17a9,
+0x1437,0x1437,0x1437,0x1437,0x1563,0x1563,0x1566,0x1566,0x1566,0x156c,0x156f,0x17a9,0x17a9,0x17a9,0x17a9,0x1731,
+0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,
+0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x156f,0x156f,0x1569,0x1569,0x156f,0x1572,0x1572,0x156f,0x156f,
+0x156f,0x156f,0x185d,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x156f,0x1569,0x156f,0x1569,0x1569,0x1569,0x1569,
+0x156f,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x156f,0x1569,0x1569,0x1569,0x156f,0x1566,0x1566,0x1566,0x1566,
+0x1566,0x1566,0x156f,0x13dd,0x13dd,0x13dd,0x13dd,0x13dd,0x14c1,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,
+0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x14c1,0x13e3,0x13e3,0x13e3,0x14c1,0x13e3,0x14c1,
+0x13e3,0x14c1,0x13e3,0x14c1,0x13e3,0x13e3,0x13e3,0x14c1,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x14c1,0x14c1,
+0x13e3,0x13e3,0x13e3,0x13e3,0x14c1,0x13e3,0x14c1,0x14c1,0x13e3,0x13e3,0x13e3,0x13e3,0x14c1,0x13e3,0x13e3,0x13e3,
+0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x16e0,0x16e0,0x17af,0x17af,0x13e6,0x13e6,0x13e6,
+0x13e3,0x13e3,0x13e3,0x13e6,0x13e6,0x13e6,0x13e6,0x13e6,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,
+0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,
+0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,
+0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13ec,0x13e9,0x13e9,0x13e9,0x13e9,
+0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13ec,0x13ec,0x13ec,0x13e9,
+0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,
+0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,
+0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x17dc,0x17dc,0x17d9,0x1734,0x143d,0x143d,0x143d,0x143d,
+0x143d,0x143d,0x143a,0x143a,0x143a,0x143a,0x143a,0x143a,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,
+0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x157b,0x1449,0x1449,0x1449,0x145b,0x145b,0x145b,0x145b,0x145b,
+0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,
+0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x1476,0x1476,0x1476,0x1476,0x1476,0x1476,0x1476,0x1476,
+0x1476,0x1476,0x1476,0x1476,0x1476,0x1476,0x1476,0x1476,0x1476,0x1476,0x1476,0x1476,0x1476,0x1476,0x1476,0x1476,
+0x1476,0x1476,0x1476,0x1476,0x1476,0x1476,0x1476,0x1476,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,
+0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,
+0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x1485,0x1485,0x1491,0x1497,0x1497,0x1497,0x1497,0x1497,
+0x1497,0x1497,0x1497,0x1497,0x1497,0x1497,0x1497,0x1497,0x1497,0x1497,0x1497,0x1497,0x1497,0x1497,0x1497,0x1497,
+0x1497,0x1497,0x1497,0x1497,0x1497,0x1497,0x1497,0x1497,0x1497,0x1497,0x1497,0x1491,0x1491,0x1491,0x1485,0x1485,
+0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1491,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,
+0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,
+0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,
+0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,
+0x1515,0x1515,0x192c,0x192c,0x192c,0x1515,0x1515,0x1515,0x1569,0x1569,0x156f,0x156f,0x156f,0x1569,0x1569,0x1569,
+0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x156f,0x156f,0x156f,0x1566,0x1566,0x1566,0x1566,
+0x1566,0x1566,0x1566,0x1566,0x156f,0x156f,0x156f,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x156f,
+0x1569,0x1569,0x156f,0x156f,0x156f,0x156f,0x1569,0x1569,0x1572,0x1569,0x1569,0x1569,0x1569,0x16dd,0x16dd,0x1569,
+0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x185a,0x156f,0x1569,0x1569,0x156f,0x1569,0x1569,0x1569,
+0x1569,0x1569,0x1569,0x1569,0x1569,0x156f,0x156f,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,
+0x156f,0x1569,0x1569,0x1569,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,
+0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,0x1593,
+0x1593,0x1593,0x1593,0x1593,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,
+0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,
+0x15a5,0x15a5,0x15a5,0x15a5,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,
+0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,
+0x15ab,0x15ab,0x15ab,0x15ab,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,
+0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,
+0x15ae,0x15ae,0x15ae,0x15ae,0x15ed,0x15ed,0x15ed,0x15ed,0x15ed,0x15ed,0x15ed,0x15ed,0x15ed,0x15ed,0x15ed,0x15ed,
+0x15ed,0x15ed,0x15ed,0x15ed,0x15ed,0x15ed,0x15ed,0x15ed,0x15ed,0x15ed,0x15ed,0x15ed,0x15ed,0x15ed,0x15ed,0x15ed,
+0x15ed,0x15ed,0x15ed,0x15de,0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,
+0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,0x15f0,
+0x15f9,0x15f9,0x15f9,0x15f9,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,
+0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,
+0x15fc,0x15fc,0x15fc,0x15fc,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x160e,0x1617,0x1617,0x1617,
+0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,
+0x1617,0x1617,0x1617,0x1617,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,
+0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,
+0x1620,0x1620,0x1620,0x1620,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,
+0x1632,0x1632,0x1632,0x1632,0x162f,0x162f,0x162f,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x162f,
+0x162f,0x1623,0x162f,0x1626,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,
+0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,
+0x1632,0x1632,0x1632,0x1632,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,
+0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,
+0x1656,0x1653,0x1653,0x1653,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,
+0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x1665,0x1665,0x1665,0x1662,0x1662,0x1662,
+0x165f,0x165f,0x165f,0x165f,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,
+0x1674,0x1674,0x1674,0x1674,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x167a,0x167a,0x166e,0x166b,0x166b,
+0x166b,0x166b,0x166b,0x166b,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,
+0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,
+0x1674,0x1674,0x1674,0x1674,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,
+0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x167d,0x167d,0x167d,0x167d,0x167d,
+0x167d,0x167d,0x167d,0x167d,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,
+0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,
+0x1683,0x1683,0x1683,0x1683,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,
0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,
-0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x170a,0x170a,0x170a,0x170a,
-0x170a,0x170a,0x170a,0x170a,0x170a,0x170a,0x170a,0x170a,0x170a,0x170a,0x170a,0x170a,0x170a,0x170a,0x170a,0x170a,
-0x170a,0x170a,0x170a,0x170a,0x170a,0x170a,0x170a,0x170a,0x170a,0x170a,0x170a,0x170a,0x1746,0x1746,0x1746,0x1746,
-0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,
-0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x174c,0x1749,
-0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,
-0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,
-0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,
-0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,
-0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,
-0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,
-0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,
-0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,
-0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,
-0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,
-0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,
-0x176a,0x176a,0x176a,0x176d,0x176d,0x176d,0x176d,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,
-0x176a,0x176a,0x176a,0x176a,0x176a,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176a,0x176d,0x176d,
-0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,
-0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,
-0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,
-0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,
-0x17ca,0x17ca,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,
-0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,
-0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,
-0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,
-0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,
-0x1818,0x1818,0x1818,0x1818,0x1818,0x1815,0x1815,0x1815,0x1800,0x1800,0x1800,0x1800,0x1800,0x1800,0x1800,0x1800,
-0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,
-0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,0x1818,
-0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,
-0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,
-0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,
-0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,
-0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,
-0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,
-0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,
-0x18ba,0x18ba,0x18ba,0x18a5,0x18ab,0x18a8,0x18a8,0x18a8,0x18a8,0x18b7,0x18bd,0x18a8,0x18a8,0x18a8,0x18a8,0x18b4,
-0x18ba,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18b7,0x18b7,0x18a8,0x18a8,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,
-0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,
-0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,
-0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,
-0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,
-0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,
-0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,
-0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,
-0,0,0,0
+0x16a7,0x16a7,0x16a7,0x16a7,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,
+0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,0x16b0,
+0x16b0,0x16b0,0x16b0,0x16b0,0x16c8,0x16c8,0x16c8,0x16c8,0x16c8,0x16c8,0x16c8,0x16c8,0x16c8,0x16c8,0x16c8,0x16c8,
+0x16c8,0x16c8,0x16c8,0x16c8,0x16b3,0x16c2,0x16c2,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16c2,0x16b3,0x16c5,
+0x16c5,0x16b3,0x16c5,0x16b3,0x16c8,0x16c8,0x16c8,0x16c8,0x16c8,0x16c8,0x16c8,0x16c8,0x16c8,0x16c8,0x16c8,0x16c8,
+0x16c8,0x16c8,0x16c8,0x16c8,0x16c8,0x16c8,0x16c8,0x16c8,0x16c8,0x16c8,0x16c8,0x16c8,0x16c8,0x16c8,0x16c8,0x16c8,
+0x16c8,0x16c8,0x16c8,0x16c8,0x16d1,0x16d1,0x16d1,0x16d1,0x16d1,0x16d1,0x16d1,0x16d1,0x16d1,0x16d1,0x16d1,0x16d1,
+0x16d1,0x16d1,0x16d1,0x16d1,0x16d1,0x16d1,0x16d1,0x16d1,0x16d1,0x16d1,0x16d1,0x16d1,0x16d1,0x16d1,0x16d1,0x16d1,
+0x16d1,0x16d1,0x16d1,0x16d1,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,
+0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,
+0x16d7,0x16d7,0x16d7,0x16d7,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,
+0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,
+0x173a,0x173a,0x173a,0x173a,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,
+0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,
+0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x177c,0x1779,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,
+0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,
+0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,
+0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,
+0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,
+0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1794,0x1794,0x1794,0x1794,0x1794,0x1794,0x1794,0x1794,
+0x1794,0x1794,0x1794,0x1794,0x1794,0x1794,0x1794,0x1794,0x1794,0x1794,0x1794,0x1794,0x1794,0x1794,0x1794,0x1794,
+0x1794,0x1794,0x1794,0x1794,0x1794,0x1794,0x1794,0x1794,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,
+0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,
+0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,
+0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,
+0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179d,0x179d,0x179d,0x179d,0x179a,
+0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179d,0x179d,0x179d,
+0x179d,0x179d,0x179d,0x179d,0x179d,0x179a,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,
+0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,
+0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,
+0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,
+0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x1866,0x1866,0x1866,
+0x1866,0x1866,0x1866,0x1866,0x1866,0x1866,0x1866,0x1866,0x1866,0x1866,0x1902,0x1902,0x1902,0x1902,0x1902,0x1902,
+0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x17fa,0x17fa,0x17f7,0x17f7,0x17f7,0x17f7,0x17f7,0x17f7,
+0x17f7,0x17f7,0x17f7,0x17f7,0x17f7,0x17f7,0x17f7,0x17f7,0x17f7,0x17f7,0x17f7,0x17f7,0x17f7,0x17f7,0x17f7,0x17f7,
+0x17f7,0x17f7,0x17f7,0x17f7,0x17f7,0x17f7,0x17f7,0x17f7,0x17fa,0x17fa,0x17fa,0x17fa,0x17fa,0x17fa,0x17fa,0x17fa,
+0x17fa,0x17fa,0x17fa,0x17fa,0x17fa,0x17fa,0x17fa,0x17fa,0x17fa,0x17fa,0x17fa,0x17fa,0x17fa,0x17fa,0x17fa,0x17fa,
+0x17fa,0x17fa,0x17fa,0x17fa,0x17fa,0x17fa,0x17fa,0x17fa,0x1848,0x1848,0x1848,0x1848,0x1848,0x1848,0x1848,0x1848,
+0x1848,0x1848,0x1848,0x1848,0x1848,0x1848,0x1848,0x1848,0x1848,0x1848,0x1848,0x1848,0x1848,0x1845,0x1845,0x1845,
+0x1830,0x1830,0x1830,0x1830,0x1830,0x1830,0x1830,0x1830,0x1848,0x1848,0x1848,0x1848,0x1848,0x1848,0x1848,0x1848,
+0x1848,0x1848,0x1848,0x1848,0x1848,0x1848,0x1848,0x1848,0x1848,0x1848,0x1848,0x1848,0x1848,0x1848,0x1848,0x1848,
+0x1848,0x1848,0x1848,0x1848,0x1848,0x1848,0x1848,0x1848,0x1866,0x1866,0x1866,0x1866,0x1866,0x1866,0x1863,0x1866,
+0x1866,0x1866,0x1866,0x1866,0x1902,0x19e0,0x19e0,0x19e0,0x1866,0x1866,0x1866,0x1866,0x1866,0x1866,0x1866,0x1866,
+0x1866,0x1866,0x1866,0x1866,0x1866,0x1866,0x1866,0x1902,0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,
+0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,
+0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,
+0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,
+0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,
+0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,
+0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,
+0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,0x18d5,0x18db,0x18d8,0x18d8,0x18d8,
+0x18d8,0x18e7,0x18ed,0x18d8,0x18d8,0x18d8,0x18d8,0x18e4,0x18ea,0x18d8,0x18d8,0x18d8,0x18d8,0x18d8,0x18d8,0x18d8,
+0x18d8,0x18d8,0x18d8,0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,
+0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,0x18ea,0x18fc,0x18fc,0x18fc,0x18fc,0x18fc,0x18fc,0x18fc,0x18fc,
+0x18fc,0x18fc,0x18fc,0x18fc,0x18fc,0x18fc,0x18fc,0x18fc,0x18fc,0x18fc,0x18fc,0x18fc,0x18fc,0x18fc,0x18fc,0x18fc,
+0x18fc,0x18fc,0x18fc,0x18fc,0x18fc,0x18fc,0x18fc,0x18fc,0x1902,0x1902,0x1902,0x1902,0x1902,0x1902,0x1902,0x19e0,
+0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,
+0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x190b,0x190b,0x190b,0x190b,0x190b,0x190b,0x190b,0x190b,
+0x190b,0x190b,0x190b,0x190b,0x190b,0x190b,0x190b,0x190b,0x190b,0x190b,0x190b,0x190b,0x190b,0x190b,0x190b,0x190b,
+0x190b,0x190b,0x190b,0x190b,0x190b,0x190b,0x190b,0x190b,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,
+0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,
+0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,
+0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,
+0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x199b,0x199b,0x199b,0x199b,0x199b,0x199b,0x199b,0x199b,
+0x199b,0x199b,0x199b,0x199b,0x199b,0x199b,0x199b,0x199b,0x199b,0x199b,0x199b,0x199b,0x199b,0x199b,0x199b,0x199b,
+0x199b,0x199b,0x199b,0x199b,0x199b,0x199b,0x199b,0x199b,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,
+0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,
+0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19bc,0x19bc,0x19bc,0x19bc,0x19bc,0x19bc,0x19bc,0x19bc,
+0x19bc,0x19bc,0x19bc,0x19bc,0x19bc,0x19bc,0x19bc,0x19bc,0x19bc,0x19bc,0x19bc,0x19bc,0x19bc,0x19bc,0x19bc,0x19bc,
+0x19bc,0x19bc,0x19bc,0x19bc,0x19bc,0x19bc,0x19bc,0x19bc,0x19bf,0x19bf,0x19bf,0x19bf,0x19bf,0x19bf,0x19bf,0x19bf,
+0x19bf,0x19bf,0x19bf,0x19bf,0x19bf,0x19bf,0x19bf,0x19bf,0x19bf,0x19bf,0x19bf,0x19bf,0x19bf,0x19bf,0x19bf,0x19bf,
+0x19bf,0x19bf,0x19bf,0x19bf,0x19bf,0x19bf,0x19bf,0x19bf,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,
+0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,
+0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c5,0x19c5,0x19c5,0,0,0,0
};
static const UTrie2 propsVectorsTrie={
propsVectorsTrie_index,
- propsVectorsTrie_index+4880,
+ propsVectorsTrie_index+4948,
NULL,
- 4880,
- 24356,
+ 4948,
+ 25064,
0xa40,
- 0x1390,
+ 0x13d4,
0x0,
0x0,
0x110000,
- 0x7230,
+ 0x7538,
NULL, 0, FALSE, FALSE, 0, NULL
};
-static const uint32_t propsVectors[6375]={
-0x67,0,0,0x67,0,0xe00000,0x67,0x80000,0x20,0x867,0,0,0xa67,0,0,0xb67,
+static const uint32_t propsVectors[6639]={
+0x67,0,0,0x67,0,0x4e00000,0x67,0x80000,0x20,0x867,0,0,0xa67,0,0,0xb67,
0,0,0xc67,0,0,0xd67,0,0,0xe67,0,0,0x1067,0,0,0x1167,0,
0,0x1267,0,0,0x1367,0,0,0x1467,0,0,0x1567,0,0,0x1667,0,0,
0x1767,0,0,0x1867,0,0,0x1967,0,0,0x1a67,0,0,0x1b67,0,0,0x1d67,
@@ -3220,206 +3287,209 @@ static const uint32_t propsVectors[6375]={
0,0x9367,0,0,0x9567,0,0,0x9667,0,0,0x9767,0,0,0x9867,0,0,
0x9967,0,0,0x9a67,0,0,0x9c67,0,0,0x9f67,0,0,0xa167,0,0,0xa367,
0,0,0xa467,0,0,0xa567,0,0,0xa667,0,0,0xa767,0,0,0xa867,0,
-0,0xa967,0,0,0xaa67,0,0xe00000,0xab67,0,0xe00000,0xac67,0,0,0xad67,0,0,
-0xae67,0,0,0xaf67,0,0,0xb167,0,0,0xb267,0,0,0xb367,0,0,0xb467,
-0,0,0xb567,0,0,0xb767,0,0,0xb867,0,0,0xb967,0,0,0xba67,0,
-0,0xbc67,0,0,0xbd67,0,0,0xbe67,0,0,0xbf67,0,0,0xc067,0,0,
-0xc167,0,0,0xc267,0,0,0xc367,0,0xe00000,0xc467,0,0xe00000,0xc667,0,0,0xc767,
-0,0,0xc867,0,0,0xc967,0,0,0xca67,0,0,0xcc67,0,0xe00000,0xcf67,0,
-0xe00000,0xd067,0,0xe00000,0xd267,0,0,0xd367,0,0,0xd467,0,0,0xd567,0,0,
-0xd667,0,0,0xd867,0,0,0xd967,0,0,0xda67,0,0,0xdb67,0,0,0xdc67,
-0,0,0xdd67,0,0,0xde67,0,0,0xdf67,0,0,0xe067,0,0,0xe167,0,
-0,0xe267,0,0,0xe367,0,0xe00000,0xe467,0,0,0xe567,0,0,0xe667,0,0,
-0xe767,0,0,0xe867,0,0,0xe967,0,0,0xea67,0,0,0xeb67,0,0,0xec67,
-0,0,0xed67,0,0,0xee67,0,0,0xef67,0,0,0xf167,0,0,0xf367,0,
-0,0xf567,0,0,0xf667,0,0,0xf767,0,0,0xf867,0,0,0xf967,0,0,
-0xfa67,0,0xe00000,0xfb67,0,0,0xfc67,0,0,0xfd67,0,0,0xfe67,0,0,0x10167,
-0,0,0x10267,0,0,0x10367,0,0,0x10467,0,0,0x10567,0,0xe00000,0x10667,0,
-0,0x10767,0,0,0x10867,0,0,0x10967,0,0,0x10a67,0,0,0x10b67,0,0,
-0x10c67,0,0,0x10d67,0,0,0x10e67,0,0,0x10f67,0,0,0x11067,0,0,0x11167,
-0,0,0x11367,0,0,0x11467,0,0,0x11567,0,0,0x11667,0,0,0x11767,0,
-0,0x11867,0,0,0xa0067,0,0xe00000,0xa4667,0,0xe00000,0xa4767,0,0xe00000,0xa4f67,0,0xe00000,
-0xa5e67,0,0xe00000,0xa5f67,0,0xe00000,0xac567,0,0xe00000,0xad167,0,0xe00000,0xb0067,0,0xe00000,0xb1267,
-0,0xe00000,0x11000100,0,0x900020,0x11000100,0x40000001,0x440020,0x11000100,0x40000001,0x643020,0x11000100,0x40000001,0xa5a040,0x11000100,0x40000001,
-0x116a8a0,0x11000200,0,0x900020,0x11000200,0x4000001,0xc4000b,0x11000200,0x7c00100,0x220402,0x11000200,0x24000000,0x10200000,0x11000200,0x24000008,0x1710000,
-0x11000200,0x40000001,0x1d3b020,0x11000219,0x7c00100,0x220401,0x11000219,0x7c00100,0x250401,0x11000319,0x7c00100,0x220401,0x11000319,0x7c00100,0x220402,0x11000319,
-0x7c00100,0x250400,0x11000319,0x7c00100,0x250401,0x11000419,0x7c00100,0x220400,0x11000419,0x7c00100,0x220401,0x11000419,0x7c00100,0x220402,0x11000419,0x7c00100,
-0x230400,0x11000419,0x7c00100,0x250400,0x11000419,0x7c00100,0x250401,0x11000419,0x7c00100,0x250402,0x11000519,0x7c00100,0x220400,0x11000519,0x7c00100,0x230400,
-0x11000600,0x4000400,0x200000,0x11000600,0x4000400,0x200002,0x11000600,0x4000400,0x200400,0x11000600,0x7c00500,0x220400,0x11000600,0x7c00500,0x230400,0x11000600,
-0x7c00500,0x530400,0x11000600,0x7c00d00,0x230400,0x11000619,0x7c00500,0x22040f,0x11000800,0x4000010,0x1001401,0x11000800,0x4000400,0x200001,0x11000800,0x6800010,
-0x201001,0x11000800,0x7c00500,0x230401,0x11000807,0x7c00100,0x220400,0x11000807,0x7c00100,0x250400,0x1100080e,0x4000400,0x200000,0x1100080e,0x4000400,0x200002,
-0x1100080e,0x7000500,0x220402,0x1100080e,0x7c00100,0x220400,0x1100080e,0x7c00100,0x220401,0x1100080e,0x7c00100,0x220402,0x1100080e,0x7c00100,0x250400,0x1100080e,
-0x7c00100,0x250401,0x1100080e,0x7c00120,0x220402,0x1100080e,0x7c00120,0x250402,0x11000908,0x4000000,0x200000,0x11000908,0x7c00100,0x220400,0x11000908,0x7c00100,
-0x220401,0x11000908,0x7c00100,0x250400,0x11000908,0x7c00100,0x250401,0x11000a03,0x4000000,0x200000,0x11000a03,0x4000000,0x270000,0x11000a03,0x7c00100,0x220400,
-0x11000a03,0x7c00100,0x220402,0x11000a03,0x7c00100,0x250400,0x11000a03,0x7c00500,0x230400,0x11000b13,0x2802500,0x962460,0x11000b13,0x4000000,0x200000,0x11000b13,
-0x4000000,0x201000,0x11000b13,0x4000000,0x230400,0x11000b13,0x4000002,0x400000,0x11000b13,0x4000010,0x200000,0x11000b13,0x7c00100,0x2633800,0x11000c00,0x80000000,
-0x218960,0x11000c02,0x2802100,0x962460,0x11000c02,0x2802400,0x962460,0x11000c02,0x4000000,0x200000,0x11000c02,0x4000000,0x1329400,0x11000c02,0x4000000,0x1329800,
-0x11000c02,0x4000000,0x1500000,0x11000c02,0x6800000,0x1329800,0x11000c02,0x7c00100,0x230400,0x11000c02,0x7c00100,0x230401,0x11000c02,0x7c00100,0x230402,0x11000c02,
-0x7c00500,0x230400,0x11000c02,0x7d00100,0x230400,0x11000c02,0xc000010,0xb48000,0x11000f0a,0x2802100,0x962460,0x11000f0a,0x2802400,0x962460,0x11000f0a,0x2806400,
-0x962460,0x11000f0a,0x4000000,0x200000,0x11000f0a,0x6800100,0x962540,0x11000f0a,0x7c00100,0x230400,0x11000f0a,0x7c00100,0x230401,0x11001004,0x2802100,0x962460,
-0x11001004,0x2802400,0x962460,0x11001004,0x2806400,0x962460,0x11001004,0x4000000,0x200000,0x11001004,0x4000000,0x1500000,0x11001004,0x6800100,0x962540,0x11001004,
-0x6800100,0x962541,0x11001004,0x7c00100,0x230400,0x11001004,0x7c00100,0x230401,0x11001110,0x2802100,0x962460,0x11001110,0x2802400,0x962460,0x11001110,0x2806400,
-0x962460,0x11001110,0x6800100,0x962540,0x11001110,0x7c00100,0x230400,0x11001110,0x7c00100,0x230401,0x1100120f,0x2802100,0x962460,0x1100120f,0x2802400,0x962460,
-0x1100120f,0x2806400,0x962460,0x1100120f,0x6800100,0x962540,0x1100120f,0x7c00100,0x230400,0x1100131f,0x2802100,0x962460,0x1100131f,0x2802400,0x962460,0x1100131f,
-0x2806400,0x962460,0x1100131f,0x4000000,0x200000,0x1100131f,0x6800000,0x1329800,0x1100131f,0x6800100,0x962540,0x1100131f,0x6800100,0x962541,0x1100131f,0x7c00100,
-0x230400,0x1100131f,0x7c00100,0x230401,0x11001423,0x2802100,0x962460,0x11001423,0x2806400,0x962460,0x11001423,0x6800100,0x962540,0x11001423,0x6800100,0x962541,
-0x11001423,0x7c00100,0x230400,0x11001423,0x7c00100,0x230401,0x11001524,0x2802100,0x962460,0x11001524,0x2802100,0x962461,0x11001524,0x2806400,0x962460,0x11001524,
-0x6800000,0x1329800,0x11001524,0x6800100,0x962540,0x11001524,0x7c00100,0x230400,0x11001615,0x2802100,0x962460,0x11001615,0x2806400,0x962460,0x11001615,0x6800000,
-0x1329800,0x11001615,0x6800100,0x962540,0x11001615,0x6800100,0x962541,0x11001615,0x7c00100,0x230400,0x1100171a,0x2802100,0x962460,0x1100171a,0x2806400,0x962460,
-0x1100171a,0x6800000,0x1329800,0x1100171a,0x6800100,0x962540,0x1100171a,0x6800100,0x962541,0x1100171a,0x7c00100,0x230400,0x11001900,0x4000000,0x1600000,0x11001926,
-0x2802100,0x1862460,0x11001926,0x2802400,0x1862460,0x11001926,0x2806100,0x1862460,0x11001926,0x4000000,0x200000,0x11001926,0x4000010,0x400000,0x11001926,0x6800000,
-0x1329800,0x11001926,0x7800100,0x1830142,0x11001926,0x7c00100,0x1830000,0x11001926,0x7c00900,0x1830000,0x11001926,0x7e00100,0x1830000,0x11001a18,0x2802100,0x1862460,
-0x11001a18,0x2802400,0x1862460,0x11001a18,0x6800000,0x1329800,0x11001a18,0x7800100,0x1830142,0x11001a18,0x7c00100,0x1830000,0x11001a18,0x7c00100,0x1830002,0x11001a18,
-0x7c00900,0x1830000,0x11001a18,0x7e00100,0x1830000,0x11001d0c,0x7c00100,0x230400,0x11001d0c,0x7c00100,0x250400,0x11001e12,0x7c00100,0x2230500,0x11001e12,0x7c00100,
-0x2330520,0x11001e12,0x7c80100,0x2330520,0x11002619,0x7c00100,0x220401,0x11002619,0x7c00100,0x220402,0x11002619,0x7c00100,0x250401,0x1100270e,0x4000400,0x200001,
-0x1100270e,0x4000400,0x200002,0x1100270e,0x4000400,0x500001,0x1100270e,0x7c00100,0x220401,0x1100270e,0x7c00100,0x250401,0x11002800,0x80000,0x918820,0x11002800,
-0x80000,0x1c18020,0x11002800,0x180000,0x918820,0x11002800,0x4000001,0x440001,0x11002800,0x4000001,0x440002,0x11002800,0x4000001,0xc4000b,0x11002800,0x6800000,
-0x201c00,0x11002800,0x6800020,0x201c00,0x11002800,0x24000000,0x200000,0x11002800,0x24000000,0x200002,0x11002800,0x24000000,0x810000,0x11002800,0x24000000,0x1410000,
-0x11002800,0x24000000,0x1500000,0x11002800,0x24000000,0x1500002,0x11002800,0x24000002,0x400000,0x11002800,0x24000006,0xc0000b,0x11002800,0x24000008,0x1410000,0x11002800,
-0x24000008,0x1710000,0x11002800,0x24000020,0x1001400,0x11002800,0x24000020,0x1500002,0x11002800,0x2c000010,0x1248000,0x11002800,0x2c000010,0x11248002,0x11002800,0x40000001,
-0x63b020,0x11002800,0x40080000,0x918820,0x11002801,0x80000,0x2a65620,0x11002801,0x82000,0x962460,0x11002900,0x4000000,0x20000e,0x11002900,0x4000000,0x20000f,
-0x11002900,0x4000020,0x20000e,0x11002900,0x4000020,0x20000f,0x11002900,0x4000020,0x81000e,0x11002900,0x4000020,0x81000f,0x11002900,0x4000020,0x141000e,0x11002900,
-0x4000020,0x141000f,0x11002900,0x4000022,0x20000e,0x11002900,0x4000022,0x20000f,0x11002a00,0x4000000,0x1500000,0x11002a00,0x4000000,0x1600000,0x11002a00,0x4000000,
-0x1600002,0x11002b01,0x2000,0x962460,0x11002b01,0x2802020,0x962460,0x11002c00,0x4000000,0x200000,0x11002c00,0x4000000,0x200002,0x11002c00,0x4000000,0x20000f,
-0x11002c00,0x4000020,0x200000,0x11002c00,0x7c00000,0x200000,0x11002c00,0x7c00020,0x200000,0x11002c00,0x7c00120,0x220405,0x11002c00,0x7c00120,0x230402,0x11002c00,
-0x7c00120,0x250402,0x11002c00,0x7c00120,0x250405,0x11002c19,0x7c00100,0x250400,0x11002c19,0x7c00100,0x250401,0x11002d00,0x4000000,0x100006,0x11002d00,0x4000000,
-0x200006,0x11002d19,0x7c00100,0x220402,0x11002d19,0x7c00100,0x230400,0x11002d19,0x7c00100,0x250402,0x11002e00,0x24000000,0x200000,0x11002e00,0x24000020,0x200000,
-0x11002e00,0x24000020,0x200001,0x11002e00,0x24000020,0x10200000,0x11002f00,0x24000020,0x200000,0x11002f00,0x24000020,0x200001,0x11002f00,0x24000020,0x200002,0x11002f00,
-0x24000020,0xf00000,0x11002f00,0x24000020,0x1600000,0x11002f00,0x24000022,0x1600000,0x11003000,0x24000000,0x200000,0x11003000,0x24000000,0x10200000,0x11003000,0x24000020,
-0x200000,0x11003000,0x24000020,0x810000,0x11003000,0x24000020,0x1410000,0x11003100,0x24000000,0x200000,0x11003200,0x24000000,0x200000,0x11003300,0x4000000,0x100003,
-0x11003400,0x24000000,0x100000,0x11003400,0x24000000,0x200000,0x11003500,0x24000000,0x200000,0x11003600,0x24000000,0x200000,0x11003600,0x24000000,0x10200000,0x11003600,
-0x24000020,0x200000,0x11003700,0x24000000,0x200000,0x11003700,0x24000000,0xe00000,0x11003700,0x24000000,0x10200000,0x11003700,0x24000000,0x10e00000,0x11003700,0x24000000,
-0x928045a0,0x11003700,0x24000020,0x200000,0x11003800,0x4000000,0x100000,0x11003800,0x24000000,0x200000,0x11003800,0x24000000,0xb00000,0x11003800,0x24000000,0xe00000,
-0x11003800,0x24000000,0x1710000,0x11003800,0x24000000,0x10200000,0x11003800,0x24000000,0x10b00000,0x11003800,0x24000000,0x10e00000,0x11003800,0x24000000,0x10e05200,0x11003800,
-0x24000000,0x928045a0,0x11005003,0x7c00100,0x220402,0x11005013,0x2802500,0x962460,0x11005013,0x4000020,0x200005,0x11005013,0x7c00100,0x2633801,0x11005013,0x7c00100,
-0x2633802,0x11005013,0x7c00100,0x2633805,0x11005019,0x7c00100,0x220402,0x11005100,0x24000000,0x810000,0x11005100,0x24000000,0x1410000,0x11005102,0x7000100,0x230408,
-0x11005102,0x7c00100,0x230404,0x11005102,0x7c00100,0x230407,0x11005102,0x7c00100,0x230408,0x11005102,0x7c00100,0x230409,0x11005201,0x2802400,0x962460,0x11005500,
-0x80000,0x1e18820,0x11005502,0x7000100,0x230408,0x11005502,0x7c00100,0x230404,0x11005502,0x7c00100,0x230407,0x11005502,0x7c00100,0x230408,0x11005502,0x7c00100,
-0x230409,0x11005667,0x1000,0,0x11020200,0x80004,0x418820,0x11020200,0x4000000,0x100006,0x11020200,0x4000000,0x10000f,0x11020200,0x4000400,0x100002,
-0x11020200,0x4000400,0x500002,0x11020200,0x6800c00,0x101000,0x11020200,0x24000000,0x100000,0x11020200,0x24000000,0x1400000,0x11020200,0x24000000,0x1500000,0x11020200,
-0x24000000,0x1600000,0x11020200,0x24000000,0x10200000,0x11020200,0x24000020,0x100000,0x11020200,0x24000020,0x1600000,0x11020219,0x7c00100,0x12040f,0x11020219,0x7c00100,
-0x220400,0x11020219,0x7c00100,0x220401,0x11020219,0x7c00100,0x250400,0x11020319,0x7c00100,0x220400,0x11020319,0x7c00100,0x220401,0x11020319,0x7c00100,0x220402,
-0x11020319,0x7c00100,0x250400,0x11020319,0x7c00100,0x250402,0x11020319,0x7d00100,0x220402,0x11020419,0x7c00100,0x220401,0x11020519,0x7c00100,0x220400,0x11020600,
-0x4000400,0x100002,0x11020600,0x4000400,0x200400,0x11020600,0x7c00500,0x130400,0x11020600,0x7c00d00,0x130400,0x11020701,0x2802400,0x962460,0x11020701,0x2802400,
-0x962461,0x11020701,0x2802400,0xc62460,0x1102080e,0x7c00100,0x220400,0x1102080e,0x7c00100,0x250400,0x11020908,0x7c00100,0x220400,0x11020908,0x7c00100,0x220401,
-0x11020908,0x7c00100,0x250400,0x11020908,0x7c00100,0x250401,0x11022800,0x24000000,0x100000,0x11022800,0x24000000,0x200000,0x11022800,0x24000000,0x200002,0x11022800,
-0x24000000,0x401000,0x11022800,0x24000000,0xf00002,0x11022800,0x24000000,0xf0ac02,0x11022800,0x24000000,0x1500000,0x11022800,0x24000002,0x100000,0x11022800,0x24000002,
-0x370000,0x11022800,0x24000002,0x470000,0x11022800,0x24000006,0x400000,0x11022800,0x24000008,0x1710000,0x11022800,0x24000008,0x1712c00,0x11022800,0x24000020,0x100000,
-0x11022800,0x24000020,0x1500000,0x11022800,0x24000020,0x1500002,0x11022900,0x4000000,0x10000e,0x11022900,0x4000000,0x10000f,0x11022919,0x7c00100,0x12040f,0x11022c00,
-0x4000000,0x100002,0x11022c00,0x4000000,0x1500002,0x11022c00,0x4000000,0x1600002,0x11022c00,0x4000000,0x1010000f,0x11022c00,0x7c00120,0x120405,0x11022c0e,0x7c00100,
-0x250401,0x11022c19,0x7c00100,0x150401,0x11022d00,0x4000000,0x100006,0x11022d00,0x4000000,0x200006,0x11022d19,0x7c00100,0x120402,0x11022d19,0x7c00100,0x150402,
-0x11022e00,0x24000000,0x200000,0x11022e00,0x24000020,0x100000,0x11022e00,0x24000020,0x10100000,0x11022f00,0x24000020,0x100000,0x11022f00,0x24000020,0x100001,0x11022f00,
-0x24000020,0x100002,0x11023000,0x24000000,0x100000,0x11023300,0x4000000,0x100002,0x11023300,0x4000000,0x100003,0x11023300,0x4000100,0x120403,0x11023300,0x4000100,
-0x150403,0x11023300,0x4000100,0x10150403,0x11023400,0x24000000,0x100000,0x11023500,0x24000000,0x100000,0x11023600,0x24000000,0x100000,0x11023600,0x24000020,0x100000,
-0x11023600,0x24000020,0x10100000,0x11023700,0x24000000,0x100000,0x11023700,0x24000000,0xe00000,0x11023700,0x24000000,0x10100000,0x11023700,0x24000000,0x10e00000,0x11023700,
-0x24000020,0x100000,0x11023700,0x24000020,0x10100000,0x11023700,0x24000020,0x10105200,0x11023800,0x4000000,0x100000,0x11023800,0x24000000,0x200000,0x11024e67,0,
-0,0x11025600,0x4000000,0x100000,0x11042a00,0x4000000,0x1600000,0x11045700,0x4000000,0x20000a,0x11045700,0x4000020,0x20000a,0x11045712,0x7c00100,0xe3040a,
-0x11045712,0x7c80100,0xe3040a,0x11045716,0x7c00100,0xe30c0a,0x11045716,0x7c00100,0x2530c0a,0x11063d00,0x4000001,0x440011,0x11065700,0x4000000,0x810011,0x11065700,
-0x4000000,0xe00011,0x11065700,0x4000000,0x1410011,0x11065700,0x4000000,0x1500011,0x11065700,0x4000000,0x1600011,0x11065700,0x4000006,0xe70011,0x11065700,0x4000008,
-0xe00011,0x11065700,0x4000008,0xe02c11,0x11065700,0x4000010,0x871411,0x11065700,0x4000010,0x1201411,0x11065700,0x4000010,0x1271011,0x11065700,0x4000020,0xe00011,
-0x11065700,0x4000400,0xe00011,0x11065700,0x4000420,0xe00011,0x11065700,0x6800000,0xe01c11,0x11065700,0x6800040,0xe00011,0x11065700,0xc000010,0x80ac11,0x11065700,
-0xc000010,0xb48011,0x11065719,0x7c00100,0xe20411,0x11065719,0x7c00100,0xe50411,0x11065719,0x7c00140,0xe20411,0x11065719,0x7c00140,0xe50411,0x11080100,0x6800000,
-0x201c00,0x11080100,0x68000c0,0x19329800,0x11080100,0x24000000,0x200000,0x11080100,0x24000000,0x810000,0x11080100,0x24000000,0x1410000,0x11080100,0x24000000,0x1500000,
-0x11080100,0x24000000,0x1600000,0x11080100,0x24000000,0x1b00000,0x11080100,0x24000000,0x2410000,0x11080100,0x24000000,0x18200000,0x11080100,0x24000006,0xd70000,0x11080100,
-0x24000008,0x1713c00,0x11080100,0x24000008,0x1714000,0x11080100,0x24000010,0x1001400,0x11080100,0x24000010,0x1071000,0x11080100,0x24000010,0x1071400,0x11080100,0x24000020,
-0x200000,0x11080100,0x24000020,0x400000,0x11080100,0x24000020,0x1600000,0x11080100,0x24000400,0x200000,0x11080100,0x24000420,0x200000,0x11080100,0x2c000010,0xb48000,
-0x11080100,0x2c000010,0x100ac00,0x11080100,0x44000001,0x1a40000,0x11080119,0x7c00100,0x220400,0x11080119,0x7c00100,0x250400,0x11080119,0x7c001c0,0x220400,0x11080119,
-0x7c001c0,0x250400,0x11080200,0x4000400,0x200002,0x11080200,0x24000000,0x200000,0x11080200,0x24000000,0x1500000,0x11080200,0x24000000,0x1600000,0x11080200,0x24000020,
-0x200000,0x110a1e12,0x7c00100,0x2130480,0x110a1e12,0x7c80100,0x2130480,0x110a3000,0x24000000,0x30e00000,0x110a3000,0x24100000,0x810001,0x110a3000,0x24100000,0x1410001,
-0x110a3700,0x24000000,0x30200000,0x110a3d00,0x4000000,0xe00000,0x110a3d00,0x4000000,0xe00002,0x110a3d00,0x24000000,0xe00000,0x110a3d11,0x7c00300,0xe30000,0x110a3d11,
-0x7c00900,0x1230400,0x110a3d12,0x2802400,0x962460,0x110a3e14,0x7c00100,0xe30000,0x110a3e14,0x7c00100,0xe30001,0x110a3e14,0x7c00100,0x2530000,0x110a3e14,0x7c00900,
-0x1230000,0x110a3e14,0x7c00900,0x1230001,0x110a3f16,0x7c00100,0xe30c00,0x110a3f16,0x7c00100,0xe30c01,0x110a3f16,0x7c00100,0x2530c00,0x110a3f16,0x7c00900,0x1230c00,
-0x110a3f16,0x7c00900,0x1230c01,0x110a4005,0x7c00100,0xe30400,0x110a4112,0x7c00100,0xe30402,0x110a4112,0x7c80100,0xe30402,0x110a4400,0x4000000,0xe00000,0x110a4412,
-0x4000000,0xe00002,0x110a4412,0x4000000,0xe00003,0x110a4416,0x4000000,0xe00c03,0x110a4500,0x4000000,0xe0000d,0x110a4516,0x4000000,0xe00c0d,0x110a4711,0x7c40300,
-0xe30000,0x110a4f11,0x7c00300,0xe30001,0x110a4f11,0x7c40300,0xe30000,0x110a5300,0x4000000,0x810010,0x110a5300,0x4000000,0xe00002,0x110a5300,0x4000000,0xe00010,
-0x110a5300,0x4000000,0x1410010,0x110a5300,0x4000002,0xe70010,0x110a5300,0x4000008,0x810010,0x110a5300,0x4000008,0x1410010,0x110a5300,0x6800000,0xe01c02,0x110a5300,
-0x6800000,0xe01c10,0x110a5400,0x4000000,0x81000c,0x110a5400,0x4000000,0xe0000c,0x110a5400,0x4000000,0x141000c,0x110a5400,0x4000000,0x150000c,0x110a5400,0x4000000,
-0x160000c,0x110a5400,0x4000002,0xe7000c,0x110a5400,0x4000010,0x87140c,0x110a5400,0x4000010,0xe7000c,0x110a5400,0x4000010,0x120140c,0x110a5400,0x4000010,0x127100c,
-0x110a5400,0x4000020,0xe0000c,0x110a5400,0x4000026,0xe7000c,0x110a5400,0xc000010,0x80ac0c,0x110a5400,0xc000010,0xb4800c,0x11400a0c,0xc000010,0x1049400,0x11400c0e,
-0x4000010,0xb00000,0x11400c0e,0x4000010,0x1071400,0x11400c0e,0xc000010,0xb48000,0x11400c13,0x7c00900,0x230400,0x11400f36,0xc000010,0x448000,0x11400f46,0xc000010,
-0x448000,0x11401d72,0x4000000,0x200000,0x11403d95,0x4000000,0xe00000,0x1144578a,0x4000004,0x120000a,0x1144578a,0x4000008,0x81000a,0x1144578a,0x4000008,0x141000a,
-0x1144578a,0x4000010,0x87000a,0x1144578a,0xc000010,0x84800a,0x11445793,0x3802500,0x126246a,0x11445793,0x7c00d00,0x2530c0a,0x114a3d8a,0x24000000,0x810000,0x114a3d8a,
-0x24000000,0x1410000,0x114a3d8a,0x24000008,0x810000,0x114a3d8a,0x24000008,0x1410000,0x114a3d8a,0x24000010,0x870000,0x114a3d8a,0x2c000010,0x848000,0x114a3d90,0x4000000,
-0xe00000,0x114a3d90,0x24000000,0xe00000,0x114a3d90,0x24000002,0x1200000,0x114a3d90,0x24000002,0x10e00000,0x114a3d90,0x24000008,0x810000,0x114a3d90,0x24000008,0x1410000,
-0x114a3d93,0x7c00900,0x930c00,0x114a3d93,0x7c00900,0xe30c00,0x114a3d95,0x7c00300,0xe30000,0x114a3e93,0x7000400,0x1200c02,0x114a3f8a,0x4000004,0x1200000,0x114a3f93,
-0x7c00d00,0x2530c00,0x114a4295,0x4000000,0xe00000,0x114a4295,0x4000000,0xe0000f,0x114a4495,0x4000000,0xe00002,0x114a4495,0x4000000,0xe00003,0x114a4495,0x4000000,
-0x10e00003,0x114a4595,0x4000000,0xe00002,0x114a4595,0x4000000,0xe0000d,0x1180090a,0x2802400,0x962460,0x11800c19,0x2802100,0x962460,0x11800c19,0x2802500,0x962460,
-0x11800f1f,0x2802400,0x962460,0x11800f2b,0x2802400,0x962460,0x11820700,0x2802400,0x962460,0x11820700,0x2802500,0x962460,0x118a3d96,0x2802400,0x962460,0x118a3e93,
-0x2802400,0x962460,0x11c00904,0x2802400,0x962460,0x11c00908,0x2802400,0x962460,0x11c00c1d,0x6800000,0x1329800,0x11c00f5a,0x6800000,0x1329800,0x11c0105f,0x6800000,
-0x1329800,0x11c01163,0x6800000,0x1329800,0x11c01267,0x6800000,0x1329800,0x11c0146b,0x4000000,0x200000,0x11c0146b,0x6800000,0x1329800,0x11c0146b,0x7c00100,0x230400,
-0x11c0511d,0x7c00100,0x230408,0x20000067,0x1000,0,0x20000b13,0x2802400,0x962460,0x20000b13,0x2802500,0x962460,0x20001b27,0x2802100,0x962460,0x20001b27,
-0x2802100,0x962461,0x20001b27,0x2802400,0x962460,0x20001b27,0x2806400,0x962460,0x20001b27,0x2902100,0x962462,0x20001b27,0x4000000,0x200000,0x20001b27,0x4000000,
-0x400000,0x20001b27,0x4000000,0x500000,0x20001b27,0x4000000,0x810000,0x20001b27,0x4000000,0xb00000,0x20001b27,0x4000000,0xc0000b,0x20001b27,0x4000000,0x1410000,
-0x20001b27,0x4000010,0xb00000,0x20001b27,0x4000010,0xc00000,0x20001b27,0x6800000,0x1329800,0x20001b27,0x6800100,0x462540,0x20001b27,0x6800400,0x962540,0x20001b27,
-0x7c00100,0x230400,0x20001b27,0x7c00100,0x230401,0x20002619,0x7c00100,0x220401,0x20002a00,0x4000000,0x1600000,0x20004b67,0,0x1900020,0x20004c67,0,
-0x1900020,0x20004d67,0,0x1900020,0x20006d67,0x1000,0,0x20006e67,0x1000,0,0x20026d67,0,0,0x20026e67,0,0,
-0x200a4a12,0x7c00100,0x1f304c1,0x200a4a12,0x7c00100,0x20304e1,0x21005600,0x4000000,0x700000,0x21022a00,0x4000000,0x1600000,0x30000419,0x7c00100,0x220400,0x30000419,
-0x7c00100,0x220401,0x30000419,0x7c00100,0x250400,0x30000419,0x7c00100,0x250401,0x30000519,0x7c00100,0x220400,0x30000600,0x4000400,0x200400,0x30000600,0x7c00500,
-0x230400,0x30000605,0x4000400,0x200000,0x3000080e,0x7c00100,0x220400,0x30000908,0x2000,0x962460,0x30000908,0x7c00100,0x220400,0x30000908,0x7c00100,0x220401,
-0x30000908,0x7c00100,0x250400,0x30000908,0x7c00100,0x250401,0x30000a03,0x4000006,0x400000,0x30000c02,0x4000000,0x200000,0x30000c02,0x7c00100,0x230400,0x30000d22,
-0x2802100,0x962460,0x30000d22,0x2802400,0x962460,0x30000d22,0x2802500,0x962460,0x30000d22,0x4000000,0x200000,0x30000d22,0x4000010,0x200000,0x30000d22,0x7c00100,
-0x230400,0x30000d22,0xc000010,0x248000,0x30000d22,0x80000000,0x218960,0x30000e25,0x2802500,0x962460,0x30000e25,0x7c00100,0x230400,0x30001821,0x2802100,0x962460,
-0x30001821,0x2806400,0x962460,0x30001821,0x4000000,0x200000,0x30001821,0x6800100,0x962540,0x30001821,0x6800100,0x962541,0x30001821,0x7c00100,0x230400,0x30001b27,
-0x2802100,0x962460,0x30001b27,0x2802400,0x962460,0x30001b27,0x4000000,0x200000,0x30001b27,0x4000000,0x400000,0x30001b27,0x7c00100,0x230400,0x30001c1c,0x2802100,
-0x1862460,0x30001c1c,0x2802400,0x1862460,0x30001c1c,0x2806400,0x1862460,0x30001c1c,0x4000000,0x200000,0x30001c1c,0x6800100,0x1862400,0x30001c1c,0x6800100,0x1862540,
-0x30001c1c,0x7c00100,0x1830000,0x30001c1c,0x7c00100,0x1830001,0x30001c1c,0xc000010,0x448000,0x30001f0b,0x4000000,0x200000,0x30001f0b,0x4000010,0x200000,0x30001f0b,
-0x4000010,0x400000,0x30001f0b,0x6800000,0x200000,0x30001f0b,0x7c00100,0x230400,0x30001f0b,0xc000010,0x248000,0x30002006,0x7c00100,0x250400,0x30002128,0x4000010,
-0x200000,0x30002128,0x7c00100,0x230400,0x30002128,0xc000010,0x248000,0x3000221d,0x4000000,0x810000,0x3000221d,0x4000000,0x1410000,0x3000221d,0x4000001,0x440000,
-0x3000221d,0x7c00100,0x230400,0x30002300,0x4000010,0x400000,0x30002320,0x7c00100,0x230400,0x30002417,0x2802100,0x1862460,0x30002417,0x2802400,0x1862460,0x30002417,
-0x2806400,0x1862460,0x30002417,0x2882000,0x1862460,0x30002417,0x4000000,0x200000,0x30002417,0x4000000,0x400000,0x30002417,0x4000000,0x1600000,0x30002417,0x4000010,
-0x400000,0x30002417,0x4000010,0x1200000,0x30002417,0x6800000,0x1329800,0x30002417,0x6800100,0x1862540,0x30002417,0x7c00100,0x1830000,0x30002417,0x7d00100,0x1830000,
-0x3000251b,0x80000,0xc18820,0x3000251b,0x2802100,0x962460,0x3000251b,0x3c02100,0x962460,0x3000251b,0x4000000,0x200000,0x3000251b,0x4000006,0x500000,0x3000251b,
-0x4000010,0x400000,0x3000251b,0x4000010,0xb70000,0x3000251b,0x4000800,0x200000,0x3000251b,0x6800000,0x1329800,0x3000251b,0x7c00100,0x230400,0x3000251b,0x7c00900,
-0x230400,0x3000251b,0xc000010,0xb48000,0x3000251b,0x12882000,0x962460,0x30002800,0x4000001,0xc41c0b,0x30002800,0x24000000,0x200000,0x30002800,0x2c000010,0x1248002,
-0x30002800,0x2c000010,0x11248002,0x30002a00,0x4000000,0x1600000,0x30002b01,0x2000,0x962460,0x30002c00,0x4000000,0x200000,0x30002c00,0x7c00100,0x10220405,0x30002d19,
-0x7c00100,0x250400,0x30002e00,0x24000000,0x200000,0x30003000,0x24000000,0x200000,0x30003100,0x24000000,0x200000,0x30003600,0x24000000,0x200000,0x30003700,0x24000000,
-0x200000,0x3000392e,0x24000000,0x200000,0x30005013,0x7c00100,0x2633801,0x30005600,0,0x918820,0x30020600,0x4000400,0x500400,0x30020701,0x2802400,0x962460,
-0x30020701,0x2802400,0xc62460,0x300a3a11,0x4020000,0xe00000,0x300a3a11,0x4020000,0xe00002,0x300a3b11,0x4020000,0xe00002,0x300a3c00,0x4008000,0xe00000,0x300a3c00,
-0x4010000,0xe00000,0x300a3d11,0x7c00300,0xe30002,0x300a4305,0x7c00100,0xe30400,0x300a4611,0x7c40300,0xe30000,0x300a4829,0x7c00100,0xe30400,0x300a4829,0x7c00900,
-0x1230400,0x300a4929,0x4000000,0xe00000,0x30402578,0x4000010,0x400000,0x30402578,0x4000010,0xb70000,0x30402578,0xc000010,0xb48000,0x304a3d95,0x4000000,0xe00000,
-0x30800c19,0x2802100,0x962460,0x30c01c70,0x6800000,0x1329800,0x3100080e,0x7c00120,0x220402,0x3100080e,0x7c00120,0x250402,0x31005167,0x1000,0,0x3100581e,
-0x4000000,0x200000,0x3100581e,0x7c00100,0x230400,0x3100590d,0x7c00100,0x230400,0x31005a09,0x7c00100,0x220400,0x31005a09,0x7c00100,0x250400,0x31005b00,0x4000000,
-0x200000,0x31005c00,0x80000,0x918820,0x31005c00,0x2802000,0x962460,0x31005c00,0x2802400,0x962460,0x31005c00,0x4000000,0x200000,0x31005c00,0x4000000,0x200001,
-0x31005c00,0x6800000,0x962540,0x31005c00,0x6800400,0x962540,0x31005c01,0x2802400,0x962460,0x31005d00,0x4000020,0x200005,0x31005d00,0x6800020,0x1329805,0x31005d00,
-0x7c00120,0x220405,0x31005d00,0x7c00120,0x250405,0x31006000,0x82000,0x962460,0x31006000,0x180000,0x918820,0x310a5e11,0x7c40300,0xe30000,0x310a5f11,0x7c00300,
-0xe30001,0x32000419,0x7c00100,0x250400,0x3200080e,0x4000020,0x200000,0x3200080e,0x7c00100,0x220400,0x3200080e,0x7c00100,0x250400,0x32000908,0x7c00100,0x220400,
-0x32000908,0x7c00100,0x250400,0x32000c02,0x7c00100,0x230400,0x32000e25,0x7c00100,0x230400,0x32001d0c,0x7c00100,0x230400,0x32002800,0x80000,0x1e18820,0x32002800,
-0x80020,0x218820,0x32002800,0x4000001,0x440002,0x32002800,0x24000000,0x200000,0x32002800,0x24000000,0x200002,0x32002800,0x24000020,0x200000,0x32002800,0x2c000010,
-0x1248002,0x32002919,0x7c00100,0x22040f,0x32002a00,0x4000000,0x1600000,0x32002b01,0x2000,0x962460,0x32002b01,0x2802000,0x962460,0x32002b01,0x2802020,0x962460,
-0x32002c00,0x4000000,0x200000,0x32002c00,0x4000020,0x200000,0x32002c00,0x4000020,0x200005,0x32002c00,0x7c00120,0x220405,0x32002c00,0x7c00120,0x250405,0x32002e00,
-0x24000020,0x200000,0x32002f00,0x24000020,0x200000,0x32003000,0x24000000,0x200000,0x32003000,0x24000020,0x200000,0x32003500,0x24000000,0x200000,0x32003600,0x24000020,
-0x200000,0x32003600,0x24000020,0x10200000,0x32003700,0x24000000,0x100000,0x32003700,0x24000000,0x200000,0x32003700,0x24000000,0x10200000,0x32003800,0x24000000,0x810000,
-0x32003800,0x24000000,0x1410000,0x32005102,0x4000000,0x1500008,0x32005502,0x7c00100,0x230400,0x32006108,0x7c00100,0x220400,0x32006108,0x7c00100,0x250400,0x3200622a,
-0x2802100,0x962460,0x3200622a,0x2806000,0x962460,0x3200622a,0x7c00100,0x230400,0x3200632b,0x2802100,0x962460,0x3200632b,0x2806000,0x962460,0x3200632b,0x7c00100,
-0x230400,0x3200642c,0x2802100,0x962460,0x3200642c,0x7c00100,0x230400,0x3200652d,0x2802100,0x962460,0x3200652d,0x7c00100,0x230400,0x32006600,0x24000020,0x200000,
-0x32006700,0x24000020,0x200000,0x32006800,0x24000020,0x200000,0x32006800,0x24000020,0x10200000,0x32006900,0x24000020,0x200000,0x32006900,0x24000020,0x810000,0x32006900,
-0x24000020,0x1410000,0x32006a00,0x24000020,0x200000,0x32006a00,0x24000020,0x200001,0x32006a00,0x24000020,0x200002,0x32020701,0x2882000,0xc62460,0x32023300,0x4000000,
-0x100000,0x32026c01,0x12882000,0x962460,0x32065700,0x4000000,0x810011,0x32065700,0x4000000,0x1410011,0x32086600,0x24000020,0x810000,0x32086600,0x24000020,0x1410000,
-0x32086900,0x24000020,0x810000,0x32086900,0x24000020,0x1410000,0x320a3600,0x24000020,0x30200000,0x320a3d11,0x7c00100,0x1230400,0x320a3e14,0x7c00100,0xe30010,0x320a3e14,
-0x7c00100,0x2530000,0x320a3f16,0x7c00100,0xe30c10,0x320a4400,0x4000000,0xe00003,0x320a4929,0x4000000,0xe00000,0x320a4f11,0x7c00300,0xe30001,0x320a6b16,0x7c00100,
-0x2530c00,0x32406374,0xc000010,0x448000,0x324a3d98,0x4000000,0x10e00000,0x324a3d98,0x7c00100,0x1230400,0x324a3f93,0x4000002,0x1200c00,0x324a5390,0x24000000,0xe00000,
-0x32820701,0x2802000,0x962460,0x40000419,0x7c00100,0x220400,0x40000519,0x7c00100,0x220400,0x40000600,0x4000400,0x200400,0x4000080e,0x7c00100,0x220400,0x4000080e,
-0x7c00100,0x250400,0x4000080e,0x7c00100,0x250402,0x40000c02,0x2802100,0x962460,0x40000c02,0x2802400,0x962460,0x40000c02,0x2802500,0x962460,0x40000c02,0x4000000,
-0x200000,0x40000c02,0x4000000,0x1071400,0x40000c02,0x7c00100,0x230400,0x40000c02,0x80000000,0x218960,0x40000d22,0x7c00100,0x230400,0x40000f0a,0x7c00100,0x230400,
-0x40001004,0x7c00100,0x230400,0x40001110,0x2802100,0x962460,0x40001110,0x6800100,0x962540,0x4000120f,0x2802100,0x962460,0x4000120f,0x4000000,0x1600000,0x4000120f,
-0x7c00100,0x230400,0x4000131f,0x7c00100,0x230400,0x40001423,0x4000000,0x200000,0x40001423,0x4000000,0x1600000,0x40001615,0x2802400,0x962460,0x40001615,0x7c00100,
-0x230400,0x40002417,0x2802400,0x1862460,0x40002417,0x4000000,0x200000,0x40002800,0x6800000,0x201c00,0x40002800,0x24000002,0x200000,0x40002c00,0x4000000,0x200002,
-0x40003000,0x24000000,0x10200000,0x40003000,0x24000020,0x200000,0x40003700,0x24000000,0x200000,0x40003700,0x24000000,0x10200000,0x40005a09,0x7c00100,0x220400,0x40005a09,
+0,0xa967,0,0,0xaa67,0,0x4e00000,0xab67,0,0x4e00000,0xac67,0,0,0xad67,0,0,
+0xae67,0,0,0xaf67,0,0,0xb167,0,0,0xb267,0,0,0xb467,0,0,0xb567,
+0,0,0xb767,0,0,0xb867,0,0,0xb967,0,0,0xba67,0,0,0xbc67,0,
+0,0xbd67,0,0,0xbe67,0,0,0xbf67,0,0,0xc067,0,0,0xc167,0,0,
+0xc267,0,0,0xc367,0,0x4e00000,0xc467,0,0x4e00000,0xc667,0,0,0xc767,0,0,0xc867,
+0,0,0xc967,0,0,0xca67,0,0,0xcc67,0,0x4e00000,0xcf67,0,0x4e00000,0xd067,0,
+0x4e00000,0xd267,0,0,0xd367,0,0,0xd467,0,0,0xd567,0,0,0xd667,0,0,
+0xd867,0,0,0xd967,0,0,0xda67,0,0,0xdb67,0,0,0xdc67,0,0,0xdd67,
+0,0,0xde67,0,0,0xdf67,0,0,0xe067,0,0,0xe167,0,0,0xe267,0,
+0,0xe367,0,0x4e00000,0xe467,0,0,0xe567,0,0,0xe667,0,0,0xe767,0,0,
+0xe867,0,0,0xe967,0,0,0xea67,0,0,0xeb67,0,0,0xec67,0,0,0xed67,
+0,0,0xee67,0,0,0xef67,0,0,0xf167,0,0,0xf367,0,0,0xf567,0,
+0,0xf667,0,0,0xf767,0,0,0xf867,0,0,0xf967,0,0,0xfa67,0,0x4e00000,
+0xfb67,0,0,0xfc67,0,0,0xfd67,0,0,0xfe67,0,0,0x10167,0,0,0x10267,
+0,0,0x10367,0,0,0x10467,0,0,0x10567,0,0x4e00000,0x10667,0,0,0x10767,0,
+0,0x10867,0,0,0x10967,0,0,0x10a67,0,0,0x10b67,0,0,0x10c67,0,0,
+0x10d67,0,0,0x10e67,0,0,0x10f67,0,0,0x11067,0,0,0x11167,0,0,0x11367,
+0,0,0x11467,0,0,0x11567,0,0,0x11667,0,0,0x11767,0,0,0x11867,0,
+0,0x11967,0,0x4e00000,0x11a67,0,0,0x11b67,0,0,0x11c67,0,0,0x11d67,0,0,
+0x11e67,0,0,0x11f67,0,0,0x12067,0,0,0x12167,0,0,0x12267,0,0,0x12367,
+0,0,0xa0067,0,0xe00000,0xa4667,0,0xe00000,0xa4767,0,0xe00000,0xa4f67,0,0xe00000,0xa5e67,0,
+0xe00000,0xa5f67,0,0xe00000,0xac567,0,0xe00000,0xad167,0,0xe00000,0xb0067,0,0xe00000,0xb1267,0,0xe00000,
+0x11000100,0,0x900020,0x11000100,0x40000001,0x440020,0x11000100,0x40000001,0x643020,0x11000100,0x40000001,0xa5a040,0x11000100,0x40000001,0x116a8a0,0x11000200,
+0,0x900020,0x11000200,0x4000001,0xc4000b,0x11000200,0x7c00100,0x220402,0x11000200,0x24000000,0x14200000,0x11000200,0x24000008,0x1710000,0x11000200,0x40000001,
+0x1d3b020,0x11000219,0x7c00100,0x220401,0x11000219,0x7c00100,0x250401,0x11000319,0x7c00100,0x220401,0x11000319,0x7c00100,0x220402,0x11000319,0x7c00100,0x250400,
+0x11000319,0x7c00100,0x250401,0x11000419,0x7c00100,0x220400,0x11000419,0x7c00100,0x220401,0x11000419,0x7c00100,0x220402,0x11000419,0x7c00100,0x230400,0x11000419,
+0x7c00100,0x250400,0x11000419,0x7c00100,0x250401,0x11000419,0x7c00100,0x250402,0x11000519,0x7c00100,0x220400,0x11000519,0x7c00100,0x230400,0x11000600,0x4000400,
+0x200000,0x11000600,0x4000400,0x200002,0x11000600,0x4000400,0x200400,0x11000600,0x7c00500,0x220400,0x11000600,0x7c00500,0x230400,0x11000600,0x7c00500,0x530400,
+0x11000600,0x7c00d00,0x230400,0x11000619,0x7c00500,0x22040f,0x11000800,0x4000010,0x1001401,0x11000800,0x4000400,0x200001,0x11000800,0x6800010,0x201001,0x11000800,
+0x7c00500,0x230401,0x11000807,0x7c00100,0x220400,0x11000807,0x7c00100,0x250400,0x1100080e,0x4000400,0x200000,0x1100080e,0x4000400,0x200002,0x1100080e,0x7000500,
+0x220402,0x1100080e,0x7c00100,0x220400,0x1100080e,0x7c00100,0x220401,0x1100080e,0x7c00100,0x220402,0x1100080e,0x7c00100,0x250400,0x1100080e,0x7c00100,0x250401,
+0x1100080e,0x7c00120,0x220402,0x1100080e,0x7c00120,0x250402,0x11000908,0x4000000,0x200000,0x11000908,0x7c00100,0x220400,0x11000908,0x7c00100,0x220401,0x11000908,
+0x7c00100,0x250400,0x11000908,0x7c00100,0x250401,0x11000a03,0x4000000,0x200000,0x11000a03,0x4000000,0x200400,0x11000a03,0x4000000,0x270000,0x11000a03,0x7c00100,
+0x220400,0x11000a03,0x7c00100,0x220402,0x11000a03,0x7c00100,0x250400,0x11000a03,0x7c00500,0x230400,0x11000b13,0x2802500,0x962460,0x11000b13,0x4000000,0x200000,
+0x11000b13,0x4000000,0x201000,0x11000b13,0x4000000,0x230400,0x11000b13,0x4000002,0x400000,0x11000b13,0x4000010,0x200000,0x11000b13,0x7c00100,0x2633800,0x11000c00,
+0x80000000,0x218960,0x11000c02,0x2802100,0x962460,0x11000c02,0x2802400,0x962460,0x11000c02,0x4000000,0x200000,0x11000c02,0x4000000,0x1329400,0x11000c02,0x4000000,
+0x1329800,0x11000c02,0x4000000,0x1500000,0x11000c02,0x6800000,0x1329800,0x11000c02,0x7c00100,0x230400,0x11000c02,0x7c00100,0x230401,0x11000c02,0x7c00100,0x230402,
+0x11000c02,0x7c00500,0x230400,0x11000c02,0x7d00100,0x230400,0x11000f0a,0x2802100,0x962460,0x11000f0a,0x2802400,0x962460,0x11000f0a,0x2806400,0x962460,0x11000f0a,
+0x4000000,0x200000,0x11000f0a,0x6800100,0x962540,0x11000f0a,0x7c00100,0x230400,0x11000f0a,0x7c00100,0x230401,0x11001004,0x2802100,0x962460,0x11001004,0x2802400,
+0x962460,0x11001004,0x2806400,0x962460,0x11001004,0x4000000,0x200000,0x11001004,0x4000000,0x1500000,0x11001004,0x6800100,0x962540,0x11001004,0x6800100,0x962541,
+0x11001004,0x7c00100,0x230400,0x11001004,0x7c00100,0x230401,0x11001110,0x2802100,0x962460,0x11001110,0x2802400,0x962460,0x11001110,0x2806400,0x962460,0x11001110,
+0x6800100,0x962540,0x11001110,0x7c00100,0x230400,0x11001110,0x7c00100,0x230401,0x1100120f,0x2802100,0x962460,0x1100120f,0x2802400,0x962460,0x1100120f,0x2806400,
+0x962460,0x1100120f,0x6800100,0x962540,0x1100120f,0x7c00100,0x230400,0x1100131f,0x2802100,0x962460,0x1100131f,0x2802400,0x962460,0x1100131f,0x2806400,0x962460,
+0x1100131f,0x4000000,0x200000,0x1100131f,0x6800000,0x1329800,0x1100131f,0x6800100,0x962540,0x1100131f,0x6800100,0x962541,0x1100131f,0x7c00100,0x230400,0x1100131f,
+0x7c00100,0x230401,0x11001423,0x2802100,0x962460,0x11001423,0x2806400,0x962460,0x11001423,0x6800100,0x962540,0x11001423,0x6800100,0x962541,0x11001423,0x7c00100,
+0x230400,0x11001423,0x7c00100,0x230401,0x11001524,0x2802100,0x962460,0x11001524,0x2802100,0x962461,0x11001524,0x2806400,0x962460,0x11001524,0x6800000,0x1329800,
+0x11001524,0x6800100,0x962540,0x11001524,0x7c00100,0x230400,0x11001615,0x2802100,0x962460,0x11001615,0x2806400,0x962460,0x11001615,0x6800000,0x1329800,0x11001615,
+0x6800100,0x962540,0x11001615,0x6800100,0x962541,0x11001615,0x7c00100,0x230400,0x1100171a,0x2802100,0x962460,0x1100171a,0x2806400,0x962460,0x1100171a,0x6800000,
+0x1329800,0x1100171a,0x6800100,0x962540,0x1100171a,0x6800100,0x962541,0x1100171a,0x7c00100,0x230400,0x11001900,0x4000000,0x1600000,0x11001926,0x2802100,0x1862460,
+0x11001926,0x2802400,0x1862460,0x11001926,0x2806100,0x1862460,0x11001926,0x4000000,0x200000,0x11001926,0x4000010,0x400000,0x11001926,0x6800000,0x1329800,0x11001926,
+0x7800100,0x1830142,0x11001926,0x7c00100,0x1830000,0x11001926,0x7c00900,0x1830000,0x11001926,0x7e00100,0x1830000,0x11001a18,0x2802100,0x1862460,0x11001a18,0x2802400,
+0x1862460,0x11001a18,0x6800000,0x1329800,0x11001a18,0x7800100,0x1830142,0x11001a18,0x7c00100,0x1830000,0x11001a18,0x7c00100,0x1830002,0x11001a18,0x7c00900,0x1830000,
+0x11001a18,0x7e00100,0x1830000,0x11001d0c,0x7c00100,0x220400,0x11001d0c,0x7c00100,0x250400,0x11001e12,0x7c00100,0x2230500,0x11001e12,0x7c00100,0x2330520,0x11001e12,
+0x7c80100,0x2330520,0x11002619,0x7c00100,0x220401,0x11002619,0x7c00100,0x220402,0x11002619,0x7c00100,0x250401,0x1100270e,0x4000400,0x200001,0x1100270e,0x4000400,
+0x200002,0x1100270e,0x4000400,0x500001,0x1100270e,0x7c00100,0x220401,0x1100270e,0x7c00100,0x250401,0x11002800,0x80000,0x918820,0x11002800,0x80000,0x1c18020,
+0x11002800,0x180000,0x918820,0x11002800,0x4000001,0x445801,0x11002800,0x4000001,0x445802,0x11002800,0x4000001,0xc4000b,0x11002800,0x6800000,0x201c00,0x11002800,
+0x6800020,0x201c00,0x11002800,0x24000000,0x200000,0x11002800,0x24000000,0x200002,0x11002800,0x24000000,0x810000,0x11002800,0x24000000,0x1410000,0x11002800,0x24000000,
+0x1500000,0x11002800,0x24000000,0x1500002,0x11002800,0x24000002,0x400000,0x11002800,0x24000006,0xc0000b,0x11002800,0x24000008,0x1410000,0x11002800,0x24000008,0x1710000,
+0x11002800,0x24000020,0x1001400,0x11002800,0x24000020,0x1500002,0x11002800,0x2c000010,0x1248000,0x11002800,0x2c000010,0x15248002,0x11002800,0x40000001,0x63b020,0x11002800,
+0x40080000,0x918820,0x11002801,0x80000,0xaa65620,0x11002801,0x82000,0x962460,0x11002900,0x4000000,0x20000e,0x11002900,0x4000000,0x20000f,0x11002900,0x4000020,
+0x20000e,0x11002900,0x4000020,0x20000f,0x11002900,0x4000020,0x81000e,0x11002900,0x4000020,0x81000f,0x11002900,0x4000020,0x141000e,0x11002900,0x4000020,0x141000f,
+0x11002900,0x4000022,0x20000e,0x11002900,0x4000022,0x20000f,0x11002a00,0x4000000,0x1500000,0x11002a00,0x4000000,0x1600000,0x11002a00,0x4000000,0x1600002,0x11002b01,
+0x2000,0x962460,0x11002b01,0x2802020,0x962460,0x11002c00,0x4000000,0x200000,0x11002c00,0x4000000,0x200002,0x11002c00,0x4000000,0x20000f,0x11002c00,0x4000020,
+0x200000,0x11002c00,0x7c00000,0x200000,0x11002c00,0x7c00020,0x200000,0x11002c00,0x7c00120,0x220405,0x11002c00,0x7c00120,0x230402,0x11002c00,0x7c00120,0x250402,
+0x11002c00,0x7c00120,0x250405,0x11002c19,0x7c00100,0x250400,0x11002c19,0x7c00100,0x250401,0x11002d00,0x4000000,0x100006,0x11002d00,0x4000000,0x200006,0x11002d19,
+0x7c00100,0x220402,0x11002d19,0x7c00100,0x230400,0x11002d19,0x7c00100,0x250402,0x11002e00,0x24000000,0x200000,0x11002e00,0x24000020,0x200000,0x11002e00,0x24000020,
+0x200001,0x11002e00,0x24000020,0x14200000,0x11002f00,0x24000020,0x200000,0x11002f00,0x24000020,0x200001,0x11002f00,0x24000020,0x200002,0x11002f00,0x24000020,0xf00000,
+0x11002f00,0x24000020,0x1600000,0x11002f00,0x24000022,0x1600000,0x11003000,0x24000000,0x200000,0x11003000,0x24000000,0x14200000,0x11003000,0x24000020,0x200000,0x11003000,
+0x24000020,0x810000,0x11003000,0x24000020,0x1410000,0x11003100,0x24000000,0x200000,0x11003200,0x24000000,0x200000,0x11003300,0x4000000,0x100003,0x11003400,0x24000000,
+0x100000,0x11003400,0x24000000,0x200000,0x11003500,0x24000000,0x200000,0x11003600,0x24000000,0x200000,0x11003600,0x24000000,0x14200000,0x11003600,0x24000020,0x200000,
+0x11003700,0x24000000,0x200000,0x11003700,0x24000000,0x4200000,0x11003700,0x24000000,0x4e00000,0x11003700,0x24000000,0x14200000,0x11003700,0x24000000,0x14e00000,0x11003700,
+0x24000000,0x96800000,0x11003700,0x24000020,0x4200000,0x11003800,0x4000000,0x100000,0x11003800,0x24000000,0x200000,0x11003800,0x24000000,0xb00000,0x11003800,0x24000000,
+0x1710000,0x11003800,0x24000000,0x4200000,0x11003800,0x24000000,0x4e00000,0x11003800,0x24000000,0x14200000,0x11003800,0x24000000,0x14b00000,0x11003800,0x24000000,0x14e00000,
+0x11003800,0x24000000,0x96800000,0x11005003,0x7c00100,0x220402,0x11005013,0x2802500,0x962460,0x11005013,0x4000020,0x200005,0x11005013,0x7c00100,0x2633801,0x11005013,
+0x7c00100,0x2633802,0x11005013,0x7c00100,0x2633805,0x11005019,0x7c00100,0x220402,0x11005100,0x24000000,0x810000,0x11005100,0x24000000,0x1410000,0x11005102,0x7000100,
+0x230408,0x11005102,0x7c00100,0x230404,0x11005102,0x7c00100,0x230407,0x11005102,0x7c00100,0x230408,0x11005102,0x7c00100,0x230409,0x11005201,0x2802400,0x962460,
+0x11005500,0x80000,0x1e18820,0x11005502,0x7000100,0x230408,0x11005502,0x7c00100,0x230404,0x11005502,0x7c00100,0x230407,0x11005502,0x7c00100,0x230408,0x11005502,
+0x7c00100,0x230409,0x11005667,0x1000,0,0x11020200,0x80004,0x418820,0x11020200,0x4000000,0x100006,0x11020200,0x4000000,0x10000f,0x11020200,0x4000400,
+0x100002,0x11020200,0x4000400,0x500002,0x11020200,0x6800c00,0x101000,0x11020200,0x24000000,0x100000,0x11020200,0x24000000,0x1400000,0x11020200,0x24000000,0x1500000,
+0x11020200,0x24000000,0x1600000,0x11020200,0x24000000,0x14200000,0x11020200,0x24000020,0x100000,0x11020200,0x24000020,0x1600000,0x11020219,0x7c00100,0x12040f,0x11020219,
+0x7c00100,0x220400,0x11020219,0x7c00100,0x220401,0x11020219,0x7c00100,0x250400,0x11020319,0x7c00100,0x220400,0x11020319,0x7c00100,0x220401,0x11020319,0x7c00100,
+0x220402,0x11020319,0x7c00100,0x250400,0x11020319,0x7c00100,0x250402,0x11020319,0x7d00100,0x220402,0x11020419,0x7c00100,0x220401,0x11020519,0x7c00100,0x220400,
+0x11020600,0x4000400,0x100002,0x11020600,0x4000400,0x200400,0x11020600,0x7c00500,0x130400,0x11020600,0x7c00d00,0x130400,0x11020701,0x2802400,0x962460,0x11020701,
+0x2802400,0x962461,0x11020701,0x2802400,0xc62460,0x1102080e,0x7c00100,0x220400,0x1102080e,0x7c00100,0x250400,0x11020908,0x7c00100,0x220400,0x11020908,0x7c00100,
+0x220401,0x11020908,0x7c00100,0x250400,0x11020908,0x7c00100,0x250401,0x11022800,0x24000000,0x100000,0x11022800,0x24000000,0x200000,0x11022800,0x24000000,0x200002,
+0x11022800,0x24000000,0x401000,0x11022800,0x24000000,0xf00002,0x11022800,0x24000000,0xf0ac02,0x11022800,0x24000000,0x1500000,0x11022800,0x24000002,0x100000,0x11022800,
+0x24000002,0x370000,0x11022800,0x24000002,0x470000,0x11022800,0x24000006,0x400000,0x11022800,0x24000008,0x1710000,0x11022800,0x24000008,0x1712c00,0x11022800,0x24000020,
+0x100000,0x11022800,0x24000020,0x1500000,0x11022800,0x24000020,0x1500002,0x11022900,0x4000000,0x10000e,0x11022900,0x4000000,0x10000f,0x11022919,0x7c00100,0x12040f,
+0x11022c00,0x4000000,0x100002,0x11022c00,0x4000000,0x1500002,0x11022c00,0x4000000,0x1600002,0x11022c00,0x4000000,0x1410000f,0x11022c00,0x7c00120,0x120405,0x11022c0e,
+0x7c00100,0x250401,0x11022c19,0x7c00100,0x150401,0x11022d00,0x4000000,0x100006,0x11022d00,0x4000000,0x200006,0x11022d19,0x7c00100,0x120402,0x11022d19,0x7c00100,
+0x150402,0x11022e00,0x24000000,0x200000,0x11022e00,0x24000020,0x100000,0x11022e00,0x24000020,0x14100000,0x11022f00,0x24000020,0x100000,0x11022f00,0x24000020,0x100001,
+0x11022f00,0x24000020,0x100002,0x11023000,0x24000000,0x100000,0x11023300,0x4000000,0x100002,0x11023300,0x4000000,0x100003,0x11023300,0x4000100,0x120403,0x11023300,
+0x4000100,0x150403,0x11023300,0x4000100,0x14150403,0x11023400,0x24000000,0x100000,0x11023500,0x24000000,0x100000,0x11023600,0x24000000,0x100000,0x11023600,0x24000020,
+0x100000,0x11023600,0x24000020,0x14100000,0x11023700,0x24000000,0x4100000,0x11023700,0x24000000,0x4e00000,0x11023700,0x24000000,0x14100000,0x11023700,0x24000000,0x14e00000,
+0x11023700,0x24000020,0x100000,0x11023700,0x24000020,0x4100000,0x11023700,0x24000020,0x14100000,0x11023800,0x4000000,0x100000,0x11023800,0x24000000,0x200000,0x11024e67,
+0,0,0x11025600,0x4000000,0x100000,0x11042a00,0x4000000,0x1600000,0x11045700,0x4000000,0x20000a,0x11045700,0x4000020,0x20000a,0x11045712,0x7c00100,
+0xe3040a,0x11045712,0x7c80100,0xe3040a,0x11045716,0x7c00100,0xe30c0a,0x11045716,0x7c00100,0x2530c0a,0x11063d00,0x4000001,0x445811,0x11065700,0x4000000,0x810011,
+0x11065700,0x4000000,0xe00011,0x11065700,0x4000000,0x1410011,0x11065700,0x4000000,0x1500011,0x11065700,0x4000000,0x1600011,0x11065700,0x4000006,0xe70011,0x11065700,
+0x4000008,0xe00011,0x11065700,0x4000008,0xe02c11,0x11065700,0x4000010,0x871411,0x11065700,0x4000010,0x1201411,0x11065700,0x4000010,0x1271011,0x11065700,0x4000020,
+0xe00011,0x11065700,0x4000400,0xe00011,0x11065700,0x4000420,0xe00011,0x11065700,0x6800000,0xe01c11,0x11065700,0x6800040,0xe00011,0x11065700,0xc000010,0x80ac11,
+0x11065700,0xc000010,0xb48011,0x11065719,0x7c00100,0xe20411,0x11065719,0x7c00100,0xe50411,0x11065719,0x7c00140,0xe20411,0x11065719,0x7c00140,0xe50411,0x11080100,
+0x6800000,0x201c00,0x11080100,0x68000c0,0x19329800,0x11080100,0x24000000,0x200000,0x11080100,0x24000000,0x810000,0x11080100,0x24000000,0x1410000,0x11080100,0x24000000,
+0x1500000,0x11080100,0x24000000,0x1600000,0x11080100,0x24000000,0x1b00000,0x11080100,0x24000000,0x2410000,0x11080100,0x24000000,0x18200000,0x11080100,0x24000006,0xd70000,
+0x11080100,0x24000008,0x1713c00,0x11080100,0x24000008,0x1714000,0x11080100,0x24000010,0x1001400,0x11080100,0x24000010,0x1071000,0x11080100,0x24000010,0x1071400,0x11080100,
+0x24000020,0x200000,0x11080100,0x24000020,0x400000,0x11080100,0x24000020,0x1600000,0x11080100,0x24000400,0x200000,0x11080100,0x24000420,0x200000,0x11080100,0x2c000010,
+0xb48000,0x11080100,0x2c000010,0x100ac00,0x11080100,0x44000001,0x1a45800,0x11080119,0x7c00100,0x220400,0x11080119,0x7c00100,0x250400,0x11080119,0x7c001c0,0x220400,
+0x11080119,0x7c001c0,0x250400,0x11080200,0x4000400,0x200002,0x11080200,0x24000000,0x200000,0x11080200,0x24000000,0x1500000,0x11080200,0x24000000,0x1600000,0x11080200,
+0x24000020,0x200000,0x110a1e12,0x7c00100,0x2130480,0x110a1e12,0x7c80100,0x2130480,0x110a3000,0x24000000,0x34e00000,0x110a3000,0x24100000,0x810001,0x110a3000,0x24100000,
+0x1410001,0x110a3700,0x24000000,0x34200000,0x110a3d00,0x4000000,0xe00000,0x110a3d00,0x4000000,0xe00002,0x110a3d00,0x24000000,0xe00000,0x110a3d11,0x7c00300,0xe30000,
+0x110a3d11,0x7c00900,0x1230400,0x110a3d12,0x2802400,0x962460,0x110a3e14,0x7c00100,0xe30000,0x110a3e14,0x7c00100,0xe30001,0x110a3e14,0x7c00100,0x2530000,0x110a3e14,
+0x7c00900,0x1230000,0x110a3e14,0x7c00900,0x1230001,0x110a3f16,0x7c00100,0xe30c00,0x110a3f16,0x7c00100,0xe30c01,0x110a3f16,0x7c00100,0x2530c00,0x110a3f16,0x7c00900,
+0x1230c00,0x110a3f16,0x7c00900,0x1230c01,0x110a4005,0x7c00100,0xe30400,0x110a4112,0x7c00100,0xe30402,0x110a4112,0x7c80100,0xe30402,0x110a4400,0x4000000,0xe00000,
+0x110a4412,0x4000000,0xe00002,0x110a4412,0x4000000,0xe00003,0x110a4416,0x4000000,0xe00c03,0x110a4500,0x4000000,0xe0000d,0x110a4516,0x4000000,0xe00c0d,0x110a4711,
+0x7c40300,0xe30000,0x110a4f11,0x7c00300,0xe30001,0x110a4f11,0x7c40300,0xe30000,0x110a5300,0x4000000,0x810010,0x110a5300,0x4000000,0xe00002,0x110a5300,0x4000000,
+0xe00010,0x110a5300,0x4000000,0x1410010,0x110a5300,0x4000002,0xe70010,0x110a5300,0x4000008,0x810010,0x110a5300,0x4000008,0x1410010,0x110a5300,0x6800000,0xe01c02,
+0x110a5300,0x6800000,0xe01c10,0x110a5400,0x4000000,0x81000c,0x110a5400,0x4000000,0xe0000c,0x110a5400,0x4000000,0x141000c,0x110a5400,0x4000000,0x150000c,0x110a5400,
+0x4000000,0x160000c,0x110a5400,0x4000002,0xe7000c,0x110a5400,0x4000010,0x87140c,0x110a5400,0x4000010,0xe7000c,0x110a5400,0x4000010,0x120140c,0x110a5400,0x4000010,
+0x127100c,0x110a5400,0x4000020,0xe0000c,0x110a5400,0x4000026,0xe7000c,0x110a5400,0xc000010,0x80ac0c,0x110a5400,0xc000010,0xb4800c,0x11400a0c,0xc000010,0x1049400,
+0x11400c0e,0x4000010,0xb00000,0x11400c0e,0x4000010,0x1071400,0x11400c0e,0xc000010,0xb48000,0x11400c17,0x7c00900,0x230400,0x11400f42,0xc000010,0x448000,0x11400f54,
+0xc000010,0x448000,0x11401d83,0x4000000,0x200000,0x11403dab,0x4000000,0xe00000,0x114457a0,0x4000004,0x120000a,0x114457a0,0x4000008,0x81000a,0x114457a0,0x4000008,
+0x141000a,0x114457a0,0x4000010,0x87000a,0x114457a0,0xc000010,0x84800a,0x114457a9,0x3802500,0x126246a,0x114457a9,0x7c00d00,0x2530c0a,0x114a3da0,0x24000000,0x810000,
+0x114a3da0,0x24000000,0x1410000,0x114a3da0,0x24000008,0x810000,0x114a3da0,0x24000008,0x1410000,0x114a3da0,0x24000010,0x870000,0x114a3da0,0x2c000010,0x848000,0x114a3da6,
+0x4000000,0xe00000,0x114a3da6,0x24000000,0xe00000,0x114a3da6,0x24000002,0x1200000,0x114a3da6,0x24000002,0x14e00000,0x114a3da6,0x24000008,0x810000,0x114a3da6,0x24000008,
+0x1410000,0x114a3da9,0x7c00900,0x930c00,0x114a3da9,0x7c00900,0xe30c00,0x114a3dab,0x7c00300,0xe30000,0x114a3ea9,0x7000400,0x1200c02,0x114a3fa0,0x4000004,0x1200000,
+0x114a3fa9,0x7c00d00,0x2530c00,0x114a42ab,0x4000000,0xe00000,0x114a42ab,0x4000000,0xe0000f,0x114a44ab,0x4000000,0xe00002,0x114a44ab,0x4000000,0xe00003,0x114a44ab,
+0x4000000,0x14e00003,0x114a45ab,0x4000000,0xe00002,0x114a45ab,0x4000000,0xe0000d,0x1180090a,0x2802400,0x962460,0x11800c1f,0x2802100,0x962460,0x11800c1f,0x2802500,
+0x962460,0x11800f29,0x2802400,0x962460,0x11800f36,0x2802400,0x962460,0x11820700,0x2802400,0x962460,0x11820700,0x2802500,0x962460,0x118a3dac,0x2802400,0x962460,
+0x118a3ea9,0x2802400,0x962460,0x11c00904,0x2802400,0x962460,0x11c00908,0x2802400,0x962460,0x11c00c23,0x6800000,0x1329800,0x11c00c27,0xc000010,0xb48000,0x11c00f6b,
+0x6800000,0x1329800,0x11c01070,0x6800000,0x1329800,0x11c01174,0x6800000,0x1329800,0x11c01278,0x6800000,0x1329800,0x11c0147c,0x4000000,0x200000,0x11c0147c,0x6800000,
+0x1329800,0x11c05123,0x7c00100,0x230408,0x20000067,0x1000,0,0x20000b13,0x2802400,0x962460,0x20000b13,0x2802500,0x962460,0x20001b27,0x2802100,0x962460,
+0x20001b27,0x2802100,0x962461,0x20001b27,0x2802400,0x962460,0x20001b27,0x2806400,0x962460,0x20001b27,0x2902100,0x962462,0x20001b27,0x4000000,0x200000,0x20001b27,
+0x4000000,0x400000,0x20001b27,0x4000000,0x500000,0x20001b27,0x4000000,0x810000,0x20001b27,0x4000000,0xb00000,0x20001b27,0x4000000,0xc0000b,0x20001b27,0x4000000,
+0x1410000,0x20001b27,0x4000010,0xb00000,0x20001b27,0x4000010,0xc00000,0x20001b27,0x6800000,0x1329800,0x20001b27,0x6800100,0x462540,0x20001b27,0x6800400,0x962540,
+0x20001b27,0x7c00100,0x230400,0x20001b27,0x7c00100,0x230401,0x20002619,0x7c00100,0x220401,0x20002a00,0x4000000,0x1600000,0x20004b67,0,0x1900020,0x20004c67,
+0,0x1900020,0x20004d67,0,0x1900020,0x20006d67,0x1000,0,0x20006e67,0x1000,0,0x20026d67,0,0,0x20026e67,0,
+0,0x200a4a12,0x7c00100,0x1f304c1,0x200a4a12,0x7c00100,0x20304e1,0x21005600,0x4000000,0x700000,0x21022a00,0x4000000,0x1600000,0x30000419,0x7c00100,0x220400,
+0x30000419,0x7c00100,0x220401,0x30000419,0x7c00100,0x250400,0x30000419,0x7c00100,0x250401,0x30000519,0x7c00100,0x220400,0x30000600,0x4000400,0x200400,0x30000600,
+0x7c00500,0x230400,0x30000605,0x4000400,0x200000,0x3000080e,0x7c00100,0x220400,0x30000908,0x2000,0x962460,0x30000908,0x7c00100,0x220400,0x30000908,0x7c00100,
+0x220401,0x30000908,0x7c00100,0x250400,0x30000908,0x7c00100,0x250401,0x30000a03,0x4000006,0x400000,0x30000c02,0x4000000,0x200000,0x30000c02,0x7c00100,0x230400,
+0x30000d22,0x2802100,0x962460,0x30000d22,0x2802400,0x962460,0x30000d22,0x2802500,0x962460,0x30000d22,0x4000000,0x200000,0x30000d22,0x4000010,0x200000,0x30000d22,
+0x7c00100,0x230400,0x30000d22,0xc000010,0x248000,0x30000d22,0x80000000,0x218960,0x30000e25,0x2802500,0x962460,0x30000e25,0x7c00100,0x230400,0x30001821,0x2802100,
+0x962460,0x30001821,0x2806400,0x962460,0x30001821,0x4000000,0x200000,0x30001821,0x6800100,0x962540,0x30001821,0x6800100,0x962541,0x30001821,0x7c00100,0x230400,
+0x30001b27,0x2802100,0x962460,0x30001b27,0x2802400,0x962460,0x30001b27,0x4000000,0x200000,0x30001b27,0x4000000,0x400000,0x30001b27,0x7c00100,0x230400,0x30001c1c,
+0x2802100,0x1862460,0x30001c1c,0x2802400,0x1862460,0x30001c1c,0x2806400,0x1862460,0x30001c1c,0x4000000,0x200000,0x30001c1c,0x6800100,0x1862400,0x30001c1c,0x6800100,
+0x1862540,0x30001c1c,0x7c00100,0x1830000,0x30001c1c,0x7c00100,0x1830001,0x30001c1c,0xc000010,0x448000,0x30001f0b,0x4000000,0x200000,0x30001f0b,0x4000010,0x200000,
+0x30001f0b,0x4000010,0x400000,0x30001f0b,0x6800000,0x200000,0x30001f0b,0x7c00100,0x230400,0x30001f0b,0xc000010,0x248000,0x30002006,0x7c00100,0x250400,0x30002128,
+0x4000010,0x200000,0x30002128,0x7c00100,0x230400,0x30002128,0xc000010,0x248000,0x3000221d,0x4000000,0x810000,0x3000221d,0x4000000,0x1410000,0x3000221d,0x4000001,
+0x445800,0x3000221d,0x7c00100,0x230400,0x30002300,0x4000010,0x400000,0x30002320,0x7c00100,0x230400,0x30002417,0x2802100,0x1862460,0x30002417,0x2802400,0x1862460,
+0x30002417,0x2806400,0x1862460,0x30002417,0x2882000,0x1862460,0x30002417,0x4000000,0x200000,0x30002417,0x4000000,0x400000,0x30002417,0x4000000,0x1600000,0x30002417,
+0x4000010,0x400000,0x30002417,0x4000010,0x1200000,0x30002417,0x6800000,0x1329800,0x30002417,0x6800100,0x1862540,0x30002417,0x7c00100,0x1830000,0x30002417,0x7d00100,
+0x1830000,0x3000251b,0x80000,0xc18820,0x3000251b,0x2802100,0x962460,0x3000251b,0x3c02100,0x962460,0x3000251b,0x4000000,0x200000,0x3000251b,0x4000006,0x500000,
+0x3000251b,0x4000010,0x400000,0x3000251b,0x4000010,0xb70000,0x3000251b,0x4000800,0x200000,0x3000251b,0x6800000,0x1329800,0x3000251b,0x7c00100,0x230400,0x3000251b,
+0x7c00900,0x230400,0x3000251b,0xc000010,0xb48000,0x3000251b,0x12882000,0x962460,0x30002800,0x4000001,0xc41c0b,0x30002800,0x24000000,0x200000,0x30002800,0x2c000010,
+0x1248002,0x30002800,0x2c000010,0x15248002,0x30002a00,0x4000000,0x1600000,0x30002b01,0x2000,0x962460,0x30002b01,0x2000,0x8962460,0x30002c00,0x4000000,0x200000,
+0x30002c00,0x7c00100,0x14220405,0x30002d19,0x7c00100,0x250400,0x30002e00,0x24000000,0x200000,0x30003000,0x24000000,0x200000,0x30003000,0x24000000,0x4200000,0x30003100,
+0x24000000,0x200000,0x30003600,0x24000000,0x200000,0x30003700,0x24000000,0x4200000,0x3000392e,0x24000000,0x200000,0x30005013,0x7c00100,0x2633801,0x30005600,0,
+0x918820,0x30020600,0x4000400,0x500400,0x30020701,0x2802400,0x962460,0x30020701,0x2802400,0xc62460,0x300a3a11,0x4020000,0xe00000,0x300a3a11,0x4020000,0xe00002,
+0x300a3b11,0x4020000,0xe00002,0x300a3c00,0x4008000,0xe00000,0x300a3c00,0x4010000,0xe00000,0x300a3d11,0x7c00300,0xe30002,0x300a4305,0x7c00100,0xe30400,0x300a4611,
+0x7c40300,0xe30000,0x300a4829,0x7c00100,0xe30400,0x300a4829,0x7c00900,0x1230400,0x300a4929,0x4000000,0xe00000,0x30402589,0x4000010,0x400000,0x30402589,0x4000010,
+0xb70000,0x30402589,0xc000010,0xb48000,0x304a3dab,0x4000000,0xe00000,0x30800c1f,0x2802100,0x962460,0x30c01c81,0x6800000,0x1329800,0x3100080e,0x7c00120,0x220402,
+0x3100080e,0x7c00120,0x250402,0x31005167,0x1000,0,0x3100581e,0x4000000,0x200000,0x3100581e,0x7c00100,0x230400,0x3100590d,0x7c00100,0x230400,0x31005a09,
+0x7c00100,0x220400,0x31005a09,0x7c00100,0x250400,0x31005b00,0x4000000,0x200000,0x31005c00,0x80000,0x918820,0x31005c00,0x2802000,0x962460,0x31005c00,0x2802400,
+0x962460,0x31005c00,0x4000000,0x200000,0x31005c00,0x4000000,0x200001,0x31005c00,0x6800000,0x962540,0x31005c00,0x6800400,0x962540,0x31005c01,0x2802400,0x962460,
+0x31005d00,0x4000020,0x200005,0x31005d00,0x6800020,0x1329805,0x31005d00,0x7c00120,0x220405,0x31005d00,0x7c00120,0x250405,0x31006000,0x82000,0x8962460,0x31006000,
+0x180000,0x918820,0x310a5e11,0x7c40300,0xe30000,0x310a5f11,0x7c00300,0xe30001,0x32000419,0x7c00100,0x250400,0x3200080e,0x4000020,0x200000,0x3200080e,0x7c00100,
+0x220400,0x3200080e,0x7c00100,0x250400,0x32000908,0x7c00100,0x220400,0x32000908,0x7c00100,0x250400,0x32000c02,0x7c00100,0x230400,0x32000e25,0x7c00100,0x230400,
+0x32001d0c,0x7c00100,0x220400,0x32002800,0x80000,0x1e18820,0x32002800,0x80020,0x218820,0x32002800,0x4000001,0x445802,0x32002800,0x24000000,0x200000,0x32002800,
+0x24000000,0x200002,0x32002800,0x24000020,0x200000,0x32002800,0x2c000010,0x1248002,0x32002919,0x7c00100,0x22040f,0x32002a00,0x4000000,0x1600000,0x32002b01,0x2000,
+0x962460,0x32002b01,0x2802000,0x962460,0x32002b01,0x2802020,0x962460,0x32002c00,0x4000000,0x200000,0x32002c00,0x4000020,0x200000,0x32002c00,0x4000020,0x200005,
+0x32002c00,0x7c00120,0x220405,0x32002c00,0x7c00120,0x250405,0x32002e00,0x24000020,0x200000,0x32002f00,0x24000020,0x200000,0x32003000,0x24000000,0x200000,0x32003000,
+0x24000020,0x200000,0x32003500,0x24000000,0x200000,0x32003600,0x24000020,0x200000,0x32003600,0x24000020,0x14200000,0x32003700,0x24000000,0x200000,0x32003700,0x24000000,
+0x4100000,0x32003700,0x24000000,0x4200000,0x32003700,0x24000000,0x14200000,0x32003800,0x24000000,0x810000,0x32003800,0x24000000,0x1410000,0x32005102,0x4000000,0x1500008,
+0x32005502,0x7c00100,0x230400,0x32006108,0x7c00100,0x220400,0x32006108,0x7c00100,0x250400,0x3200622a,0x2802100,0x962460,0x3200622a,0x2806000,0x962460,0x3200622a,
+0x7c00100,0x230400,0x3200632b,0x2802100,0x962460,0x3200632b,0x2806000,0x962460,0x3200632b,0x7c00100,0x230400,0x3200642c,0x2802100,0x962460,0x3200642c,0x7c00100,
+0x230400,0x3200652d,0x2802100,0x962460,0x3200652d,0x7c00100,0x230400,0x32006600,0x24000020,0x200000,0x32006700,0x24000020,0x200000,0x32006800,0x24000020,0x200000,
+0x32006800,0x24000020,0x14200000,0x32006900,0x24000020,0x200000,0x32006900,0x24000020,0x810000,0x32006900,0x24000020,0x1410000,0x32006a00,0x24000020,0x200000,0x32006a00,
+0x24000020,0x200001,0x32006a00,0x24000020,0x200002,0x32020701,0x2882000,0xc62460,0x32023300,0x4000000,0x100000,0x32026c01,0x12882000,0x962460,0x32026c01,0x12882000,
+0x8962460,0x32065700,0x4000000,0x810011,0x32065700,0x4000000,0x1410011,0x32086600,0x24000020,0x810000,0x32086600,0x24000020,0x1410000,0x32086900,0x24000020,0x810000,
+0x32086900,0x24000020,0x1410000,0x320a3600,0x24000020,0x34200000,0x320a3d11,0x7c00100,0x1230400,0x320a3e14,0x7c00100,0xe30010,0x320a3e14,0x7c00100,0x2530000,0x320a3f16,
+0x7c00100,0xe30c10,0x320a4400,0x4000000,0xe00003,0x320a4929,0x4000000,0xe00000,0x320a4f11,0x7c00300,0xe30001,0x320a6b16,0x7c00100,0x2530c00,0x32406385,0xc000010,
+0x448000,0x324a3dae,0x4000000,0x14e00000,0x324a3dae,0x7c00100,0x1230400,0x324a3fa9,0x4000002,0x1200c00,0x324a53a6,0x24000000,0xe00000,0x32820701,0x2802000,0x962460,
+0x40000419,0x7c00100,0x220400,0x40000519,0x7c00100,0x220400,0x40000600,0x4000400,0x200400,0x4000080e,0x7c00100,0x220400,0x4000080e,0x7c00100,0x250400,0x4000080e,
+0x7c00100,0x250402,0x40000c02,0x2802100,0x962460,0x40000c02,0x2802400,0x962460,0x40000c02,0x2802500,0x962460,0x40000c02,0x4000000,0x200000,0x40000c02,0x4000000,
+0x1071400,0x40000c02,0x7c00100,0x230400,0x40000c02,0x80000000,0x218960,0x40000d22,0x7c00100,0x230400,0x40000f0a,0x7c00100,0x230400,0x40001004,0x7c00100,0x230400,
+0x40001110,0x2802100,0x962460,0x40001110,0x6800100,0x962540,0x4000120f,0x2802100,0x962460,0x4000120f,0x4000000,0x1600000,0x4000120f,0x7c00100,0x230400,0x4000131f,
+0x7c00100,0x230400,0x40001423,0x4000000,0x200000,0x40001423,0x4000000,0x1600000,0x40001615,0x2802400,0x962460,0x40001615,0x7c00100,0x230400,0x40002417,0x2802400,
+0x1862460,0x40002417,0x4000000,0x200000,0x40002800,0x6800000,0x201c00,0x40002800,0x24000002,0x200000,0x40002c00,0x4000000,0x200002,0x40003000,0x24000000,0x14200000,
+0x40003000,0x24000020,0x200000,0x40003700,0x24000000,0x200000,0x40003700,0x24000000,0x4200000,0x40003700,0x24000000,0x14200000,0x40005a09,0x7c00100,0x220400,0x40005a09,
0x7c00100,0x250400,0x40005d00,0x7c00120,0x220405,0x40006f30,0x2802100,0x962460,0x40006f30,0x2802400,0x962460,0x40006f30,0x4000000,0x200000,0x40006f30,0x6800000,
0x1329800,0x40006f30,0x6800100,0x962540,0x40006f30,0x7c00100,0x230400,0x40006f30,0xc000010,0xb48000,0x40007034,0x7c00100,0x1830000,0x40007117,0x4000000,0x200000,
0x40007208,0x7c00100,0x220400,0x4000720e,0x7c00100,0x220400,0x4000720e,0x7c00500,0x22040e,0x4000720e,0x7c00500,0x22040f,0x40007219,0x7c00100,0x220400,0x40007219,
-0x7c00500,0x220400,0x40007219,0x7c00500,0x22040e,0x40007219,0x7c00500,0x22040f,0x40007300,0x24000000,0x200000,0x40007300,0x24000000,0x10200000,0x40007400,0x4000000,
+0x7c00500,0x220400,0x40007219,0x7c00500,0x22040e,0x40007219,0x7c00500,0x22040f,0x40007300,0x24000000,0x200000,0x40007300,0x24000000,0x14200000,0x40007400,0x4000000,
0x200000,0x40007531,0x7c00100,0x230400,0x40007631,0x7c00100,0x230400,0x40007835,0x4000010,0x400000,0x40007835,0x7c00100,0x230400,0x40007933,0x7c00100,0x230400,
0x40007a32,0x6800000,0x1329800,0x40007a32,0x7c00100,0x230400,0x40007b2f,0x7c00100,0x230400,0x40007c00,0x4000000,0x200000,0x40020701,0x2802400,0x962460,0x40020701,
-0x2802400,0xc62460,0x40023300,0x4000000,0x200000,0x40027d01,0x12882000,0x962460,0x400a3700,0x24000000,0x30200000,0x400a3700,0x24000000,0x30e00000,0x400a4400,0x4000000,
+0x2802400,0xc62460,0x40023300,0x4000000,0x200000,0x40027d01,0x12882000,0x962460,0x400a3700,0x24000000,0x34200000,0x400a3700,0x24000000,0x34e00000,0x400a4400,0x4000000,
0xe0000d,0x400a4412,0x4000000,0xe00002,0x400a4412,0x4000000,0xe00003,0x400a4500,0x4000000,0xe0000d,0x400a5300,0x4000000,0x810010,0x400a5300,0x4000000,0x1410010,
-0x404077bb,0x4000000,0x200000,0x404077be,0x4000000,0x200000,0x404077be,0x4000000,0x400000,0x40c0511d,0x4000000,0x200000,0x41000419,0x7c00100,0x220400,0x41000419,
-0x7c00100,0x250400,0x4100080e,0x7c00100,0x220400,0x4100080e,0x7c00100,0x250400,0x41000908,0x7c00100,0x220400,0x41000908,0x7c00100,0x250400,0x41000b13,0x2802000,
-0x962460,0x41000b13,0x2802100,0x962460,0x41000b13,0x4000000,0xb00000,0x41000c02,0x2802100,0x962460,0x41000c02,0x4000000,0xb00000,0x41000c02,0x4000000,0x1500000,
-0x41000f0a,0x7c00100,0x230400,0x41001004,0x7c00100,0x230400,0x41001423,0x7c00100,0x230400,0x41001b27,0x4000000,0x500000,0x41001d0c,0x7c00100,0x230400,0x41001d0c,
-0x7c00100,0x23040f,0x41001f0b,0x2802100,0x962460,0x41001f0b,0x4000000,0x200000,0x41001f0b,0x7c00100,0x230400,0x41002800,0x24000000,0x200000,0x41002800,0x24000000,
-0x400000,0x41002919,0x7c00100,0x22040e,0x41002a00,0x4000000,0x1600000,0x41002b01,0x2802020,0x962460,0x41002c00,0x4000000,0x200000,0x41002c00,0x7c00120,0x220405,
-0x41003000,0x24000000,0x200000,0x41003700,0x24000000,0x200000,0x41003700,0x24000000,0x10200000,0x41003700,0x24000000,0x10205200,0x41003700,0x24000000,0x10e00000,0x41005d00,
+0x404077e0,0x4000000,0x200000,0x404077e3,0x4000000,0x200000,0x404077e3,0x4000000,0x400000,0x40c0147c,0x4000000,0x200000,0x40c05123,0x4000000,0x200000,0x41000419,
+0x7c00100,0x220400,0x41000419,0x7c00100,0x250400,0x4100080e,0x7c00100,0x220400,0x4100080e,0x7c00100,0x250400,0x41000908,0x7c00100,0x220400,0x41000908,0x7c00100,
+0x250400,0x41000b13,0x2802000,0x962460,0x41000b13,0x2802100,0x962460,0x41000b13,0x4000000,0xb00000,0x41000c02,0x2802100,0x962460,0x41000c02,0x4000000,0x1500000,
+0x41000c02,0xc000010,0xb48000,0x41000f0a,0x7c00100,0x230400,0x41001004,0x7c00100,0x230400,0x41001423,0x7c00100,0x230400,0x41001b27,0x4000000,0x500000,0x41001d0c,
+0x7c00100,0x220400,0x41001d0c,0x7c00100,0x23040f,0x41001f0b,0x2802100,0x962460,0x41001f0b,0x4000000,0x200000,0x41001f0b,0x7c00100,0x230400,0x41002800,0x24000000,
+0x200000,0x41002800,0x24000000,0x400000,0x41002919,0x7c00100,0x22040e,0x41002a00,0x4000000,0x1600000,0x41002b01,0x2802020,0x962460,0x41002c00,0x4000000,0x200000,
+0x41002c00,0x7c00120,0x220405,0x41003000,0x24000000,0x200000,0x41003700,0x24000000,0x4200000,0x41003700,0x24000000,0x14200000,0x41003700,0x24000000,0x14e00000,0x41005d00,
0x7c00120,0x220405,0x41006600,0x24000020,0x200000,0x41006600,0x24000020,0x810000,0x41006600,0x24000020,0x1410000,0x41007208,0x7c00100,0x22040f,0x41007219,0x7c00100,
0x220400,0x41007300,0x24000000,0x200000,0x41007e0e,0x2802000,0x962460,0x41007e0e,0x4000000,0x200000,0x41007f0e,0x4000000,0x200000,0x41007f0e,0x7c00100,0x230400,
0x41008002,0x7c00100,0x230400,0x41008137,0x2802100,0x962460,0x41008137,0x4000000,0x200000,0x41008137,0x6800100,0x962540,0x41008137,0x7c00100,0x230400,0x41008301,
@@ -3431,20 +3501,20 @@ static const uint32_t propsVectors[6375]={
0x41008d19,0x7c00100,0x220400,0x41008d19,0x7c00100,0x22040f,0x41008e00,0x24000000,0x200000,0x41008e00,0x24000000,0x400000,0x41008e00,0x24000000,0x1710000,0x41008e00,
0x24000006,0x400000,0x41008f3a,0x2802000,0x962460,0x41008f3a,0x2802100,0x962460,0x41008f3a,0x2806000,0x962460,0x41008f3a,0x4000000,0x200000,0x41008f3a,0x6800100,
0x962540,0x41008f3a,0x7c00100,0x230400,0x4100903c,0x7c00100,0x230400,0x4100903c,0x7c00100,0x23040f,0x41020701,0x2802000,0x962460,0x41020701,0x2802000,0xc62460,
-0x410a3700,0x24000000,0x30200000,0x410a3700,0x24000000,0x30e00000,0x410a4412,0x4000000,0xe00003,0x410a4711,0x7c40300,0xe30000,0x410a4f11,0x7c00300,0xe30001,0x410a9100,
+0x410a3700,0x24000000,0x34200000,0x410a3700,0x24000000,0x34e00000,0x410a4412,0x4000000,0xe00003,0x410a4711,0x7c40300,0xe30000,0x410a4f11,0x7c00300,0xe30001,0x410a9100,
0x4000000,0x800010,0x410a9100,0x4000000,0x810010,0x410a9100,0x4000000,0x870010,0x410a9100,0x4000000,0xb00010,0x410a9100,0x4000000,0xf00010,0x410a9100,0x4000000,
-0x1001410,0x410a9100,0x4000000,0x1071010,0x410a9100,0x4000000,0x1071410,0x410a9100,0x4000000,0x1410010,0x414a8295,0x4000000,0xe00000,0x41808300,0x2802000,0x962460,
-0x41c0146b,0x6800000,0x1329800,0x50000419,0x7c00100,0x220400,0x50000419,0x7c00100,0x250400,0x5000080e,0x7c00100,0x220400,0x50000908,0x7c00100,0x220400,0x50000908,
+0x1001410,0x410a9100,0x4000000,0x1071010,0x410a9100,0x4000000,0x1071410,0x410a9100,0x4000000,0x1410010,0x414a82ab,0x4000000,0xe00000,0x41808300,0x2802000,0x962460,
+0x41c0147c,0x6800000,0x1329800,0x50000419,0x7c00100,0x220400,0x50000419,0x7c00100,0x250400,0x5000080e,0x7c00100,0x220400,0x50000908,0x7c00100,0x220400,0x50000908,
0x7c00100,0x250400,0x50000b13,0x2802500,0x962460,0x50000f0a,0x7c00100,0x230400,0x50001615,0x2802100,0x962460,0x50001615,0x7c00100,0x230400,0x50002b01,0x2802020,
0x962460,0x50002c00,0x4000000,0x200000,0x50002c19,0x7c00100,0x220400,0x50002d19,0x7c00100,0x220400,0x50003000,0x24000000,0x200000,0x50003000,0x24000020,0x200000,
-0x50003700,0x24000000,0x200000,0x50005d00,0x7c00120,0x220405,0x50005d00,0x7c00120,0x250405,0x50006108,0x7c00100,0x220400,0x50006108,0x7c00100,0x250400,0x50006600,
+0x50003700,0x24000000,0x4200000,0x50005d00,0x7c00120,0x220405,0x50005d00,0x7c00120,0x250405,0x50006108,0x7c00100,0x220400,0x50006108,0x7c00100,0x250400,0x50006600,
0x24000020,0x200000,0x50007300,0x24000000,0x200000,0x50008301,0x2802400,0x962460,0x50008a00,0x7c00500,0x230400,0x50009257,0x2802400,0x962460,0x50009257,0x4000000,
0x200000,0x50009257,0x4000010,0x1071400,0x50009257,0x6800000,0x1329800,0x50009257,0x7c00100,0x230400,0x50009257,0x7c00500,0x230400,0x50009257,0x7c00900,0x230400,
0x50009257,0xc000010,0xb48000,0x5000933e,0x2802100,0x962460,0x5000933e,0x2802400,0x962460,0x5000933e,0x4000000,0x200000,0x5000933e,0x4000000,0x400000,0x5000933e,
0x4000010,0x400000,0x5000933e,0x6800000,0x1329800,0x5000933e,0x6800100,0x962540,0x5000933e,0x6800100,0x962541,0x5000933e,0x6804400,0x962540,0x5000933e,0x7c00100,
0x230400,0x5000933e,0x7c00100,0x230401,0x5000933e,0xc000010,0x448000,0x50009419,0x7c00100,0x220400,0x50009419,0x7c00100,0x250400,0x50009500,0x4000400,0x200400,
0x5000965a,0x4000000,0x500000,0x5000965a,0x7c00100,0x230400,0x5000965a,0xc000010,0xb48000,0x5000975b,0x4000000,0x200000,0x5000975b,0x4000010,0x400000,0x5000975b,
-0x7c00100,0x230400,0x50009865,0x7c00100,0x230400,0x50009965,0x4000010,0x400000,0x50009965,0x7c00100,0x230400,0x50409a95,0x4000000,0x200000,0x5100080e,0x7c00100,
+0x7c00100,0x230400,0x50009865,0x7c00100,0x230400,0x50009965,0x4000010,0x400000,0x50009965,0x7c00100,0x230400,0x50409aab,0x4000000,0x200000,0x5100080e,0x7c00100,
0x220400,0x5100080e,0x7c00100,0x250400,0x51000c02,0x2802100,0x962460,0x51000c02,0x4000000,0x1500000,0x51000c02,0x4000020,0x200000,0x51000c02,0x7c00100,0x230400,
0x51000f0a,0x7c00100,0x230400,0x51000f0a,0x7c00500,0x230400,0x51001110,0x2802100,0x962460,0x5100131f,0x2802100,0x962460,0x51001423,0x7c00100,0x230400,0x51001524,
0x2802100,0x962460,0x51001524,0x4000000,0x200000,0x51001524,0x7c00100,0x230400,0x5100171a,0x2802100,0x962460,0x5100171a,0x4000000,0x200000,0x5100171a,0x4000000,
@@ -3452,7 +3522,7 @@ static const uint32_t propsVectors[6375]={
0x51001c1c,0x2802100,0x1862460,0x51001c1c,0x2802400,0x1862460,0x51001c1c,0x2806400,0x1862460,0x51001c1c,0x4000000,0x1800000,0x51001c1c,0x6800000,0x1329800,0x51001c1c,
0x6800000,0x1862400,0x51001c1c,0x6800100,0x1862400,0x51001c1c,0x6800100,0x1862540,0x51001c1c,0x6800400,0x1862400,0x51001c1c,0x7c00100,0x1830000,0x5100251b,0x7c00100,
0x230400,0x51002619,0x7c00100,0x220400,0x51002619,0x7c00100,0x250400,0x51002800,0x80020,0x218820,0x51002c00,0x4000000,0x200000,0x51002d19,0x7c00100,0x230400,
-0x51003700,0x24000000,0x200000,0x51003700,0x24000000,0xe00000,0x51005201,0x2802400,0x962460,0x51005c00,0x4000000,0x200000,0x51006108,0x7c00100,0x220400,0x51006108,
+0x51003700,0x24000000,0x4200000,0x51003700,0x24000000,0x4e00000,0x51005201,0x2802400,0x962460,0x51005c00,0x4000000,0x200000,0x51006108,0x7c00100,0x220400,0x51006108,
0x7c00100,0x250400,0x51006600,0x24000020,0x200000,0x51006600,0x24000020,0x810000,0x51006600,0x24000020,0x1410000,0x51007300,0x24000000,0x200000,0x51007300,0x24000020,
0x200000,0x51008002,0x7c00100,0x230400,0x51008301,0x2802000,0x962460,0x51008301,0x2802400,0x962460,0x51008a00,0x7c00500,0x230400,0x51008e00,0x24000000,0x200000,
0x51008e00,0x24000000,0x400000,0x51008e00,0x24000000,0x810000,0x51008e00,0x24000000,0x1400000,0x51008e00,0x24000000,0x1410000,0x51008e00,0x24000000,0x1710000,0x51008e00,
@@ -3469,78 +3539,78 @@ static const uint32_t propsVectors[6375]={
0x230400,0x5100a24f,0xc000010,0x448000,0x5100a36e,0x2802100,0x962460,0x5100a36e,0x4000000,0x200000,0x5100a36e,0x6800100,0x962540,0x5100a36e,0x6804400,0x962540,
0x5100a36e,0x7c00100,0x230400,0x5100a442,0x2802100,0x962460,0x5100a442,0x4000000,0x200000,0x5100a442,0x6800000,0x1329800,0x5100a442,0x6800100,0x962540,0x5100a442,
0x7c00100,0x230400,0x5100a442,0xc000010,0x448000,0x5100a500,0x4000000,0x200000,0x5100a600,0x4000000,0x200000,0x5100a601,0x2802000,0x962460,0x5100a76b,0x7c00100,
-0x230400,0x5100a868,0x7c00100,0x230400,0x5100a96c,0x4000000,0x200000,0x5100a96c,0x7c00100,0x230400,0x5100aa00,0x4000000,0xe00000,0x5100ab00,0x4000000,0xe00000,
-0x51086600,0x24000020,0x810000,0x51086600,0x24000020,0x1410000,0x510a4005,0x7c00100,0xe30400,0x510a4711,0x7c40300,0xe30000,0x510a7300,0x24000000,0x30200000,0x510aaa00,
-0x4000000,0x30e00000,0x5140a2b6,0x4000400,0x400000,0x514a8295,0x4000000,0xe00000,0x51802b87,0x2802000,0x962460,0x51c00908,0x2802400,0x962460,0x51c0a008,0x2802400,
+0x230400,0x5100a868,0x7c00100,0x230400,0x5100a96c,0x4000000,0x200000,0x5100a96c,0x7c00100,0x230400,0x5100aa00,0x4000000,0x4e00000,0x5100ab00,0x4000000,0x4e00000,
+0x51086600,0x24000020,0x810000,0x51086600,0x24000020,0x1410000,0x510a4005,0x7c00100,0xe30400,0x510a4711,0x7c40300,0xe30000,0x510a7300,0x24000000,0x34200000,0x510aaa00,
+0x4000000,0x34e00000,0x5140a2db,0x4000400,0x400000,0x514a82ab,0x4000000,0xe00000,0x51802b9d,0x2802000,0x962460,0x51c00908,0x2802400,0x962460,0x51c0a008,0x2802400,
0x962460,0x52000f0a,0x2802100,0x962460,0x52000f0a,0x6800100,0x962540,0x52000f0a,0x7c00100,0x230400,0x52001004,0x4000000,0x1600000,0x52001b00,0x4000000,0x200000,
0x52001c1c,0x2802100,0x1862460,0x52001c1c,0x6800100,0x1862400,0x52001c1c,0x6800400,0x1862400,0x52001e12,0x7c00100,0x2230500,0x52001e12,0x7c00100,0x2330520,0x52002128,
0x4000002,0x400000,0x52002128,0x7c00100,0x230400,0x52002a00,0x4000000,0x1500000,0x52002a00,0x4000000,0x1600000,0x52002d00,0x4000000,0x200006,0x52003000,0x24000000,
0x200000,0x52006108,0x7c00100,0x220400,0x52006108,0x7c00100,0x250400,0x52008301,0x2802400,0x962460,0x52008407,0x2802400,0x962460,0x52008407,0x7c00100,0x220400,
0x52008407,0x7c00100,0x250400,0x52008b3b,0x6800000,0x1800000,0x52008b3b,0x7c00100,0x1830000,0x52008e00,0x24000000,0x400000,0x52009419,0x7c00100,0x250400,0x5200975b,
0x4000000,0x200000,0x5200ac7e,0x2802000,0x962460,0x5200ac7e,0x2802100,0x962460,0x5200ac7e,0x2802400,0x962460,0x5200ac7e,0x4000010,0x200000,0x5200ac7e,0x7c00100,
-0x230400,0x5200ad28,0x7c00100,0x230400,0x5200ae6a,0x2802100,0x1862460,0x5200ae6a,0x2802400,0x962460,0x5200ae6a,0x2802400,0x1862460,0x5200ae6a,0x2806000,0x1862460,
-0x5200ae6a,0x4000000,0x1800000,0x5200ae6a,0x6800000,0x1329800,0x5200ae6a,0x6800100,0x1862400,0x5200ae6a,0x6800100,0x1862540,0x5200ae6a,0x7c00100,0x1830000,0x5200ae6a,
-0x7c00900,0x1830000,0x5200ae6a,0xc000010,0x1848000,0x5200b083,0x4000010,0x400000,0x5200b083,0x7c00100,0x230400,0x5200b083,0xc000010,0x448000,0x5200b182,0x2802400,
-0x962460,0x5200b182,0x4000000,0x200000,0x5200b182,0x4000010,0x400000,0x5200b182,0x7c00100,0x230400,0x5200b182,0xc000010,0x448000,0x5200b30a,0x2802400,0x962460,
-0x5200b30a,0x4000000,0x200000,0x5200b30a,0x7c00100,0x230400,0x5200b54e,0x2802100,0x962460,0x5200b54e,0x2802400,0x962460,0x5200b54e,0x4000000,0x200000,0x5200b54e,
-0x4000010,0x400000,0x5200b54e,0x6800000,0x1329800,0x5200b54e,0x6800100,0x962540,0x5200b54e,0x6804400,0x962540,0x5200b54e,0x7c00100,0x230400,0x5200b54e,0xc000010,
-0x448000,0x5200b61c,0x4000000,0x1800000,0x5200b61c,0x6800400,0x1862400,0x5200b61c,0x7c00100,0x1830000,0x5200b61c,0x7c00900,0x1830000,0x5200b77f,0x2802100,0x1862460,
-0x5200b77f,0x2802400,0x1862460,0x5200b77f,0x4000000,0x1800000,0x5200b77f,0x4000010,0x1800000,0x5200b77f,0x7c00100,0x1830000,0x5200b77f,0x7c00500,0x1830000,0x5200b77f,
-0x7c00900,0x1830000,0x5200b77f,0x7e00100,0x1830000,0x5200b873,0x2802100,0x962460,0x5200b873,0x2806400,0x962460,0x5200b873,0x6800000,0x1329800,0x5200b873,0x6800100,
-0x962540,0x5200b873,0x6800400,0x962540,0x5200b873,0x7c00100,0x230400,0x5200b873,0xc000010,0x448000,0x5200b912,0x7c00100,0x2230500,0x5200b912,0x7c00100,0x2330520,
-0x5200ba74,0x4000000,0x200000,0x5200ba74,0x4000010,0x400000,0x5200ba74,0x7c00100,0x230400,0x5200bb85,0x4000000,0x200000,0x5200bb85,0x7c00100,0x230400,0x5200bc75,
-0x4000000,0x400000,0x5200bc75,0x4000010,0x400000,0x5200bc75,0x7c00100,0x230400,0x5200bd7d,0x4000000,0x200000,0x5200bd7d,0x7c00100,0x230400,0x5200be7a,0x4000000,
-0x200000,0x5200be7a,0x7c00100,0x230400,0x5200bf58,0x7c00100,0x230400,0x5200c002,0x4000000,0x200000,0x5200c178,0x2802000,0x962460,0x5200c178,0x2802100,0x962460,
-0x5200c178,0x2802400,0x962460,0x5200c178,0x2806400,0x962460,0x5200c178,0x4000000,0x200000,0x5200c178,0x6800100,0x962540,0x5200c178,0x7c00100,0x230400,0x5200c178,
-0x7c00100,0x230401,0x5200c178,0xc000010,0x448000,0x5200c178,0x80000000,0x218960,0x5200c247,0x7c00100,0x230400,0x5200c247,0x7c00100,0x830400,0x5200c247,0x7c00100,
-0x1430400,0x5200c300,0x4000000,0x200003,0x52022d00,0x4000000,0x100006,0x52023700,0x24000000,0x100000,0x52023700,0x24000000,0xe00000,0x52023700,0x24000000,0x10100000,
-0x52023700,0x24000000,0x10e00000,0x52023700,0x24000000,0x928045a0,0x52024400,0x4000000,0x100000,0x52027300,0x24000000,0x100000,0x5202c300,0x4000000,0x100000,0x5202c300,
-0x4000000,0x100002,0x5202c300,0x4000000,0x100003,0x5202c300,0x4000000,0x10000d,0x5202c300,0x4000100,0x150400,0x5202c300,0x4000100,0x15040d,0x5202c300,0x4000100,
-0x10150400,0x520a1e12,0x7c00100,0x2130480,0x520a3700,0x24000000,0x30e00000,0x520a3800,0x24000000,0x30100000,0x520a4711,0x7c40300,0xe30000,0x520a4f11,0x7c00300,0xe30001,
-0x520a7300,0x24000000,0x30100000,0x520ab412,0x7c00100,0x2130480,0x520ac400,0x4000000,0xe00002,0x520ac400,0x4000000,0xe0000d,0x520ac400,0x4000000,0x30e0000d,0x520ac414,
-0x4000000,0xe0000d,0x520ac511,0x7c40300,0xe30000,0x5240af7a,0x6800400,0x962540,0x5240af7a,0x7c00100,0x230400,0x5240af7b,0x4000400,0x200000,0x5240af7b,0x6800100,
-0x962540,0x5240b29b,0x4000000,0x200000,0x5240b2a5,0x4000000,0x200000,0x5240b2a5,0x4000000,0x1500000,0x5240b5b9,0x7c00900,0x230400,0x524a4495,0x4000000,0xe00003,
-0x5280af7a,0x2802400,0x962460,0x5280af7b,0x2802400,0x962460,0x5280af7d,0x2802400,0x962460,0x5280af7f,0x2802400,0x962460,0x52c0b3b0,0x2802400,0x962460,0x52c0b3b4,
-0x7c00100,0x230400,0x60000c02,0x2802100,0x962460,0x60000c02,0x7c00100,0x230400,0x60000f0a,0x2802100,0x962460,0x60000f0a,0x6800100,0x962540,0x60000f0a,0x7c00100,
-0x230400,0x6000131f,0x4000000,0x200000,0x6000171a,0x7c00100,0x230400,0x6000171a,0x7c00100,0x230560,0x60001b27,0x2802100,0x962460,0x60001b27,0x4000000,0xc00000,
-0x60001b27,0x7c00100,0x230400,0x60001f0b,0x2802000,0x962460,0x60002919,0x7c00100,0x22040e,0x60002a00,0x4000000,0x1600000,0x60003000,0x24000000,0x10200000,0x60003000,
-0x24000000,0x10e00000,0x60003700,0x24000000,0x200000,0x60003800,0x24000000,0x1710000,0x60005102,0x4000000,0x200000,0x60006108,0x7c00100,0x220400,0x60006108,0x7c00100,
-0x250400,0x60006600,0x24000020,0x200000,0x60008301,0x2802000,0x962460,0x6000903c,0x2806000,0x962460,0x6000903c,0x4000000,0x400000,0x60009519,0x7c00100,0x220400,
-0x60009519,0x7c00100,0x250400,0x6000a008,0x7c00100,0x220400,0x6000a008,0x7c00100,0x250400,0x6000c300,0x4000000,0x3a703580,0x6000c654,0x2802000,0x962460,0x6000c654,
-0x4000010,0x200000,0x6000c654,0x7c00100,0x230400,0x6000c73f,0x2802000,0x962460,0x6000c73f,0x2802100,0x962460,0x6000c73f,0x4000000,0x200000,0x6000c73f,0x6800100,
-0x962540,0x6000c73f,0x6804000,0x962540,0x6000c73f,0x7c00100,0x230400,0x6000c80b,0x7c00100,0x230400,0x6000c941,0x2802100,0x962460,0x6000c941,0x2806000,0x962460,
-0x6000c941,0x4000000,0x200000,0x6000c941,0x4000010,0x200000,0x6000c941,0x6800000,0x1329800,0x6000c941,0x6800100,0x962540,0x6000c941,0x7c00100,0x230400,0x6000c941,
-0xc000010,0x448000,0x6000ca82,0x7c00100,0x230400,0x6000cc00,0x4000000,0xe00000,0x6000d000,0x4000000,0x200000,0x6002c300,0x4000000,0x100000,0x6002c300,0x4000000,
-0x10000d,0x6002c300,0x4000100,0x150400,0x6002c300,0x4000100,0x15040d,0x6002c300,0x4000100,0x10150400,0x600a3000,0x24000000,0x30200000,0x600a3000,0x24000000,0x30e00000,
-0x600a3700,0x24000000,0x30200000,0x600a3800,0x24000000,0x30200000,0x600a3800,0x24000000,0xb28045a0,0x600a4305,0x7c00100,0xe30400,0x600ac300,0x4000000,0x30100000,0x600ac400,
-0x4000000,0x10e0000d,0x600ac400,0x4000000,0x30e0000d,0x600acb14,0x7c00100,0xe30000,0x600acb16,0x7c00100,0xe30c00,0x600acc00,0x4000000,0x30e00000,0x600acd00,0x4000000,
-0x30200000,0x600acd00,0x4000000,0x30e00000,0x600acd00,0x4000000,0x30e05200,0x600acd00,0x4000000,0xb28045a0,0x600acd00,0x4000000,0xb28049c0,0x600ace00,0x4000000,0x30e00000,
-0x600ace00,0x4000000,0xb28045a0,0x600acf00,0x4000000,0x30e00000,0x600acf00,0x4000000,0x30e05200,0x600acf00,0x4000000,0xb28045a0,0x600ad111,0x7c40300,0xe30000,0x604ac495,
-0x4000000,0x30e00003,0x61000a03,0x4000000,0x1600000,0x61000c02,0x80000000,0x218960,0x6100120f,0x4000000,0x200000,0x61001a18,0x7c00100,0x1830000,0x61001d0c,0x7c00100,
-0x230400,0x61001d0c,0x7c00100,0x250400,0x61006600,0x24000020,0x200000,0x61008407,0x7c00100,0x220400,0x61008407,0x7c00100,0x250400,0x6100870c,0x7c00100,0x220400,
-0x61008e00,0x24000000,0x200000,0x61008e00,0x24000000,0x400000,0x61008e00,0x24000002,0x300000,0x6100903c,0x7c00100,0x230400,0x61009519,0x7c00100,0x220400,0x61009519,
-0x7c00100,0x250400,0x61009519,0x7c00500,0x22040f,0x61009b71,0x2802100,0x962460,0x61009b71,0x2806400,0x962460,0x61009b71,0x7c00100,0x230400,0x6100a008,0x2802100,
-0x962460,0x6100c300,0x4000000,0x20000f,0x6100cd00,0x4000000,0x200000,0x6100d202,0x2802400,0x962460,0x6100d202,0x2802500,0x962460,0x6100d202,0x7c00100,0x230400,
-0x6100d302,0x4000020,0x200000,0x6100d302,0x7c00120,0x230405,0x6100d476,0x2802100,0x962460,0x6100d476,0x2802100,0x962461,0x6100d476,0x2806400,0x962460,0x6100d476,
-0x4000000,0x400000,0x6100d476,0x6800000,0x1329800,0x6100d476,0x6800100,0x962540,0x6100d476,0x7c00100,0x230400,0x6100d476,0xc000010,0x448000,0x6100d573,0x2802100,
-0x962460,0x6100d573,0x2806400,0x962460,0x6100d573,0x6800100,0x962540,0x6100d573,0x7c00100,0x230400,0x6100d573,0x7c00900,0x230400,0x6100d573,0xc000010,0x448000,
-0x6100d68d,0x7c00100,0x230400,0x6100d756,0x7c00100,0x230400,0x6100d85c,0x2802400,0x962460,0x6100d85c,0x6800100,0x962540,0x6100d85c,0x7c00100,0x230400,0x6100d85c,
-0x7c00500,0x230400,0x6100d997,0x2802100,0x962460,0x6100d997,0x4000000,0x200000,0x6100d997,0x4000000,0x400000,0x6100d997,0x6800000,0x1329800,0x6100d997,0x6800100,
-0x962540,0x6100d997,0x6804400,0x962540,0x6100d997,0x7c00100,0x230400,0x6100d997,0x7c00100,0x230560,0x6100d997,0xc000010,0x448000,0x6100da98,0x6800000,0x1329800,
-0x6100da98,0x7c00100,0x230400,0x6100db71,0x4000000,0x200000,0x6100dc99,0x2802100,0x962460,0x6100dc99,0x2802400,0x962460,0x6100dc99,0x6800000,0x1329800,0x6100dc99,
-0x6800100,0x962540,0x6100dc99,0x6804400,0x962540,0x6100dc99,0x7c00100,0x230400,0x610a4711,0x7c40300,0xe30000,0x610a4f11,0x7c00300,0xe30001,0x610ace00,0x4000000,
-0x30e00000,0x6140af7a,0x7c00100,0x230400,0x6140af7b,0x6800100,0x962540,0x6140af84,0x7c00100,0x230400,0x6180af7b,0x2802400,0x962460,0x62002a00,0x4000000,0x1600000,
-0x63002800,0x80000,0x918820,0x63c00c11,0x80000,0x918820,0x7000080e,0x7c00100,0x250400,0x70000a03,0x4000000,0x200000,0x70000c00,0x80000000,0x218960,0x70000f0a,
+0x230400,0x5200ac7e,0xc000010,0x248000,0x5200ad28,0x7c00100,0x230400,0x5200ae6a,0x2802100,0x1862460,0x5200ae6a,0x2802400,0x962460,0x5200ae6a,0x2802400,0x1862460,
+0x5200ae6a,0x2806000,0x1862460,0x5200ae6a,0x4000000,0x1800000,0x5200ae6a,0x6800000,0x1329800,0x5200ae6a,0x6800100,0x1862400,0x5200ae6a,0x6800100,0x1862540,0x5200ae6a,
+0x7c00100,0x1830000,0x5200ae6a,0x7c00900,0x1830000,0x5200ae6a,0xc000010,0x1848000,0x5200b083,0x4000010,0x400000,0x5200b083,0x7c00100,0x230400,0x5200b083,0xc000010,
+0x448000,0x5200b182,0x2802400,0x962460,0x5200b182,0x4000000,0x200000,0x5200b182,0x4000010,0x400000,0x5200b182,0x7c00100,0x230400,0x5200b182,0xc000010,0x448000,
+0x5200b30a,0x2802400,0x962460,0x5200b30a,0x4000000,0x200000,0x5200b30a,0x7c00100,0x230400,0x5200b54e,0x2802100,0x962460,0x5200b54e,0x2802400,0x962460,0x5200b54e,
+0x4000000,0x200000,0x5200b54e,0x4000010,0x400000,0x5200b54e,0x6800000,0x1329800,0x5200b54e,0x6800100,0x962540,0x5200b54e,0x6804400,0x962540,0x5200b54e,0x7c00100,
+0x230400,0x5200b54e,0xc000010,0x448000,0x5200b61c,0x4000000,0x1800000,0x5200b61c,0x6800400,0x1862400,0x5200b61c,0x7c00100,0x1830000,0x5200b61c,0x7c00900,0x1830000,
+0x5200b77f,0x2802100,0x1862460,0x5200b77f,0x2802400,0x1862460,0x5200b77f,0x4000000,0x1800000,0x5200b77f,0x4000010,0x1800000,0x5200b77f,0x7c00100,0x1830000,0x5200b77f,
+0x7c00500,0x1830000,0x5200b77f,0x7c00900,0x1830000,0x5200b77f,0x7e00100,0x1830000,0x5200b873,0x2802100,0x962460,0x5200b873,0x2806400,0x962460,0x5200b873,0x6800000,
+0x1329800,0x5200b873,0x6800100,0x962540,0x5200b873,0x6800400,0x962540,0x5200b873,0x7c00100,0x230400,0x5200b873,0xc000010,0x448000,0x5200b912,0x7c00100,0x2230500,
+0x5200b912,0x7c00100,0x2330520,0x5200ba74,0x4000000,0x200000,0x5200ba74,0x4000010,0x400000,0x5200ba74,0x7c00100,0x230400,0x5200bb85,0x4000000,0x200000,0x5200bb85,
+0x7c00100,0x230400,0x5200bc75,0x4000000,0x400000,0x5200bc75,0x4000010,0x400000,0x5200bc75,0x7c00100,0x230400,0x5200bd7d,0x4000000,0x200000,0x5200bd7d,0x7c00100,
+0x230400,0x5200be7a,0x4000000,0x200000,0x5200be7a,0x7c00100,0x230400,0x5200bf58,0x7c00100,0x230400,0x5200c002,0x4000000,0x200000,0x5200c178,0x2802000,0x962460,
+0x5200c178,0x2802100,0x962460,0x5200c178,0x2802400,0x962460,0x5200c178,0x2806400,0x962460,0x5200c178,0x4000000,0x200000,0x5200c178,0x6800100,0x962540,0x5200c178,
+0x7c00100,0x230400,0x5200c178,0x7c00100,0x230401,0x5200c178,0xc000010,0x448000,0x5200c178,0x80000000,0x218960,0x5200c247,0x7c00100,0x230400,0x5200c247,0x7c00100,
+0x830400,0x5200c247,0x7c00100,0x1430400,0x5200c300,0x4000000,0x200003,0x52022d00,0x4000000,0x100006,0x52023700,0x24000000,0x4100000,0x52023700,0x24000000,0x4e00000,
+0x52023700,0x24000000,0x14100000,0x52023700,0x24000000,0x14e00000,0x52023700,0x24000000,0x96800000,0x52024400,0x4000000,0x100000,0x52027300,0x24000000,0x100000,0x5202c300,
+0x4000000,0x100000,0x5202c300,0x4000000,0x100002,0x5202c300,0x4000000,0x100003,0x5202c300,0x4000000,0x10000d,0x5202c300,0x4000100,0x150400,0x5202c300,0x4000100,
+0x15040d,0x5202c300,0x4000100,0x14150400,0x520a1e12,0x7c00100,0x2130480,0x520a3700,0x24000000,0x34e00000,0x520a3800,0x24000000,0x34100000,0x520a4711,0x7c40300,0xe30000,
+0x520a4f11,0x7c00300,0xe30001,0x520a7300,0x24000000,0x34100000,0x520ab412,0x7c00100,0x2130480,0x520ac400,0x4000000,0xe00002,0x520ac400,0x4000000,0xe0000d,0x520ac400,
+0x4000000,0x34e0000d,0x520ac414,0x4000000,0xe0000d,0x520ac511,0x7c40300,0xe30000,0x5240af8b,0x7c00100,0x230400,0x5240af90,0x4000400,0x200000,0x5240af90,0x6800100,
+0x962540,0x5240af92,0x6800400,0x962540,0x5240af92,0x7c00100,0x230400,0x5240b2b1,0x4000000,0x200000,0x5240b2b1,0x4000000,0x1500000,0x5240b2bc,0x4000000,0x200000,
+0x5240b2c9,0x4000000,0x200000,0x5240b5de,0x7c00900,0x230400,0x524a44ab,0x4000000,0xe00003,0x5280af8b,0x2802400,0x962460,0x5280af8c,0x2802400,0x962460,0x5280af92,
+0x2802400,0x962460,0x5280af94,0x2802400,0x962460,0x5280af96,0x2802400,0x962460,0x52c0b3d5,0x2802400,0x962460,0x52c0b3d9,0x7c00100,0x230400,0x60000c02,0x2802100,
+0x962460,0x60000c02,0x7c00100,0x230400,0x60000f0a,0x2802100,0x962460,0x60000f0a,0x6800100,0x962540,0x60000f0a,0x7c00100,0x230400,0x6000131f,0x4000000,0x200000,
+0x6000171a,0x7c00100,0x230400,0x6000171a,0x7c00100,0x230560,0x60001b27,0x2802100,0x962460,0x60001b27,0x4000000,0xc00000,0x60001b27,0x7c00100,0x230400,0x60001f0b,
+0x2802000,0x962460,0x60002919,0x7c00100,0x22040e,0x60002a00,0x4000000,0x1600000,0x60003000,0x24000000,0x14200000,0x60003000,0x24000000,0x14e00000,0x60003700,0x24000000,
+0x4200000,0x60003800,0x24000000,0x1710000,0x60005102,0x4000000,0x200000,0x60006108,0x7c00100,0x220400,0x60006108,0x7c00100,0x250400,0x60006600,0x24000020,0x200000,
+0x60008301,0x2802000,0x962460,0x6000903c,0x2806000,0x962460,0x6000903c,0x4000000,0x400000,0x60009519,0x7c00100,0x220400,0x60009519,0x7c00100,0x250400,0x6000a008,
+0x7c00100,0x220400,0x6000a008,0x7c00100,0x250400,0x6000c300,0x4000000,0x3a703580,0x6000c654,0x2802000,0x962460,0x6000c654,0x4000010,0x200000,0x6000c654,0x7c00100,
+0x230400,0x6000c73f,0x2802000,0x962460,0x6000c73f,0x2802100,0x962460,0x6000c73f,0x4000000,0x200000,0x6000c73f,0x6800100,0x962540,0x6000c73f,0x6804000,0x962540,
+0x6000c73f,0x7c00100,0x230400,0x6000c80b,0x7c00100,0x230400,0x6000c941,0x2802100,0x962460,0x6000c941,0x2806000,0x962460,0x6000c941,0x4000000,0x200000,0x6000c941,
+0x4000010,0x200000,0x6000c941,0x6800000,0x1329800,0x6000c941,0x6800100,0x962540,0x6000c941,0x7c00100,0x230400,0x6000c941,0xc000010,0x448000,0x6000ca82,0x7c00100,
+0x230400,0x6000cc00,0x4000000,0x4e00000,0x6000d000,0x4000000,0x200000,0x6002c300,0x4000000,0x100000,0x6002c300,0x4000000,0x10000d,0x6002c300,0x4000100,0x150400,
+0x6002c300,0x4000100,0x15040d,0x6002c300,0x4000100,0x14150400,0x600a3000,0x24000000,0x34200000,0x600a3000,0x24000000,0x34e00000,0x600a3700,0x24000000,0x34200000,0x600a3800,
+0x24000000,0x34200000,0x600a3800,0x24000000,0xb6800000,0x600a4305,0x7c00100,0xe30400,0x600ac300,0x4000000,0x34100000,0x600ac400,0x4000000,0x14e0000d,0x600ac400,0x4000000,
+0x34e0000d,0x600acb14,0x7c00100,0xe30000,0x600acb16,0x7c00100,0xe30c00,0x600acc00,0x4000000,0x34e00000,0x600acd00,0x4000000,0x34200000,0x600acd00,0x4000000,0x34e00000,
+0x600acd00,0x4000000,0xb6800000,0x600ace00,0x4000000,0x34e00000,0x600ace00,0x4000000,0xb6800000,0x600acf00,0x4000000,0x34e00000,0x600acf00,0x4000000,0xb6800000,0x600ad111,
+0x7c40300,0xe30000,0x604ac4ab,0x4000000,0x34e00003,0x61000a03,0x4000000,0x1600000,0x61000c02,0x80000000,0x218960,0x6100120f,0x4000000,0x200000,0x61001a18,0x7c00100,
+0x1830000,0x61001d0c,0x7c00100,0x220400,0x61001d0c,0x7c00100,0x250400,0x61006600,0x24000020,0x200000,0x61008407,0x7c00100,0x220400,0x61008407,0x7c00100,0x250400,
+0x6100870c,0x7c00100,0x220400,0x61008e00,0x24000000,0x200000,0x61008e00,0x24000000,0x400000,0x61008e00,0x24000002,0x300000,0x6100903c,0x7c00100,0x230400,0x61009519,
+0x7c00100,0x220400,0x61009519,0x7c00100,0x250400,0x61009519,0x7c00500,0x22040f,0x61009b71,0x2802100,0x962460,0x61009b71,0x2806400,0x962460,0x61009b71,0x7c00100,
+0x230400,0x6100a008,0x2802100,0x962460,0x6100c300,0x4000000,0x20000f,0x6100cd00,0x4000000,0x200000,0x6100d202,0x2802400,0x962460,0x6100d202,0x2802500,0x962460,
+0x6100d202,0x7c00100,0x230400,0x6100d302,0x4000020,0x200000,0x6100d302,0x7c00120,0x230405,0x6100d476,0x2802100,0x962460,0x6100d476,0x2802100,0x962461,0x6100d476,
+0x2806400,0x962460,0x6100d476,0x4000000,0x400000,0x6100d476,0x6800000,0x1329800,0x6100d476,0x6800100,0x962540,0x6100d476,0x7c00100,0x230400,0x6100d476,0xc000010,
+0x448000,0x6100d573,0x2802100,0x962460,0x6100d573,0x2806400,0x962460,0x6100d573,0x6800100,0x962540,0x6100d573,0x7c00100,0x230400,0x6100d573,0x7c00900,0x230400,
+0x6100d573,0xc000010,0x448000,0x6100d68d,0x7c00100,0x230400,0x6100d756,0x7c00100,0x230400,0x6100d85c,0x2802400,0x962460,0x6100d85c,0x6800100,0x962540,0x6100d85c,
+0x7c00100,0x230400,0x6100d85c,0x7c00500,0x230400,0x6100d997,0x2802100,0x962460,0x6100d997,0x4000000,0x200000,0x6100d997,0x4000000,0x400000,0x6100d997,0x6800000,
+0x1329800,0x6100d997,0x6800100,0x962540,0x6100d997,0x6804400,0x962540,0x6100d997,0x7c00100,0x230400,0x6100d997,0x7c00100,0x230560,0x6100d997,0xc000010,0x448000,
+0x6100da98,0x6800000,0x1329800,0x6100da98,0x7c00100,0x230400,0x6100db71,0x4000000,0x200000,0x6100dc99,0x2802100,0x962460,0x6100dc99,0x2802400,0x962460,0x6100dc99,
+0x6800000,0x1329800,0x6100dc99,0x6800100,0x962540,0x6100dc99,0x6804400,0x962540,0x6100dc99,0x7c00100,0x230400,0x610a4711,0x7c40300,0xe30000,0x610a4f11,0x7c00300,
+0xe30001,0x610ace00,0x4000000,0x34e00000,0x6140af90,0x6800100,0x962540,0x6140af92,0x7c00100,0x230400,0x6180af8d,0x2802400,0x962460,0x62002a00,0x4000000,0x1600000,
+0x63002800,0x80000,0x918820,0x63c00c15,0x80000,0x918820,0x7000080e,0x7c00100,0x250400,0x70000a03,0x4000000,0x200000,0x70000c00,0x80000000,0x218960,0x70000f0a,
0x7c00100,0x230400,0x70001004,0x7c00100,0x230400,0x70001524,0x2802100,0x962460,0x70001524,0x7c00100,0x230400,0x70001615,0x2802100,0x962460,0x7000171a,0x2802100,
0x962460,0x70001821,0x6800000,0x1329800,0x70002320,0x7c00100,0x230400,0x70002a00,0x4000000,0x1500000,0x70002a00,0x4000000,0x1600000,0x70003000,0x24000000,0x200000,
-0x70003000,0x24000000,0x10200000,0x70003800,0x24000000,0xe00000,0x70005201,0x2802400,0x962460,0x7000581e,0x7c00100,0x230400,0x70006108,0x7c00100,0x220400,0x70006108,
+0x70003000,0x24000000,0x14200000,0x70003800,0x24000000,0x4e00000,0x70005201,0x2802400,0x962460,0x7000581e,0x7c00100,0x230400,0x70006108,0x7c00100,0x220400,0x70006108,
0x7c00100,0x250400,0x70006f30,0x7c00100,0x230400,0x70007300,0x24000000,0x200000,0x70007f0e,0x4000000,0x200000,0x70008301,0x2802100,0x962460,0x70008301,0x2802400,
0x962460,0x70008e00,0x24000000,0x200000,0x70008e00,0x24000000,0x400000,0x70008e00,0x24000002,0x400000,0x70008e00,0x24000008,0x1410000,0x70008e00,0x24000010,0x400000,
0x70008e00,0x2c000010,0x448000,0x70009519,0x7c00100,0x220400,0x70009519,0x7c00100,0x230400,0x70009519,0x7c00100,0x250400,0x70009865,0x7c00100,0x230400,0x70009965,
0x4000010,0x400000,0x70009965,0x7c00100,0x230400,0x7000a008,0x7c00100,0x220400,0x7000a008,0x7c00100,0x250400,0x7000a008,0x7c00500,0x22040f,0x7000a50e,0x4000000,
0x200000,0x7000b61c,0x2802400,0x1862460,0x7000b61c,0x6800400,0x1862400,0x7000b61c,0x7c00100,0x1830000,0x7000c300,0x4000000,0x100000,0x7000c941,0x2806000,0x962460,
-0x7000cc00,0x4000000,0xe00000,0x7000cd00,0x4000000,0x200000,0x7000cd00,0x4000000,0xe00000,0x7000cd00,0x4000000,0x10200000,0x7000cd00,0x4000000,0x10e00000,0x7000cd00,
-0x4000000,0x10e05200,0x7000cd00,0x4000000,0x928045a0,0x7000cf00,0x4000000,0xe00000,0x7000cf00,0x4000000,0x10e00000,0x7000d202,0x2802100,0x962460,0x7000d202,0x7c00100,
+0x7000cc00,0x4000000,0x4e00000,0x7000cd00,0x4000000,0x200000,0x7000cd00,0x4000000,0x4200000,0x7000cd00,0x4000000,0x4e00000,0x7000cd00,0x4000000,0x14200000,0x7000cd00,
+0x4000000,0x14e00000,0x7000cd00,0x4000000,0x96800000,0x7000cf00,0x4000000,0x4e00000,0x7000cf00,0x4000000,0x14e00000,0x7000d202,0x2802100,0x962460,0x7000d202,0x7c00100,
0x230400,0x7000d997,0x7c00100,0x230400,0x7000d997,0xc000010,0x248000,0x7000dd86,0x2802400,0x962460,0x7000dd86,0x7c00100,0x230400,0x7000dd86,0xc000010,0x448000,
0x7000de9f,0x4000000,0x200000,0x7000de9f,0x7c00100,0x230400,0x7000e001,0x2000,0x962460,0x7000e001,0x2802400,0x962460,0x7000e187,0x2802000,0x962460,0x7000e187,
0x2802100,0x962460,0x7000e187,0x4000000,0x200000,0x7000e187,0x7c00100,0x230400,0x7000e187,0xc000010,0x448000,0x7000e288,0x7c00100,0x230400,0x7000e300,0x4000000,
@@ -3562,21 +3632,21 @@ static const uint32_t propsVectors[6375]={
0x200000,0x7000f8a6,0x6800100,0x962540,0x7000f8a6,0x6800100,0x962541,0x7000f8a6,0x7c00100,0x230400,0x7000f8a6,0xc000010,0x448000,0x7000f921,0x4000000,0x200000,
0x7000fa00,0x4000000,0x200000,0x7000fb9e,0x2802100,0x962460,0x7000fb9e,0x2802400,0x962460,0x7000fb9e,0x2806400,0x962460,0x7000fb9e,0x4000000,0x200000,0x7000fb9e,
0x6800000,0x1329800,0x7000fb9e,0x6800100,0x962540,0x7000fb9e,0x6800100,0x962541,0x7000fb9e,0x7c00100,0x230400,0x7000fc92,0x4000000,0x200000,0x7000fc92,0x6800000,
-0x1329800,0x7000fc92,0x7c00100,0x220400,0x7000fc92,0x7c00100,0x230400,0x7000fc92,0x7c00100,0x250400,0x700acd00,0x4000000,0x30e00000,0x700acd00,0x4000000,0xb28045a0,
-0x700ace00,0x4000000,0x30e00000,0x700acf00,0x4000000,0x30e00000,0x700acf00,0x4000000,0xb28045a0,0x7040dfc0,0x4000000,0x200000,0x7040f7c4,0x80000,0x918820,0x7080af7b,
-0x2802400,0x962460,0x7080dfc0,0x2802400,0x962460,0x70c0e4c2,0x2802100,0x962460,0x70c0e4c2,0x2802400,0x962460,0x70c0e4c2,0x6800100,0x962540,0x8000120f,0x7c00100,
+0x1329800,0x7000fc92,0x7c00100,0x220400,0x7000fc92,0x7c00100,0x230400,0x7000fc92,0x7c00100,0x250400,0x700acd00,0x4000000,0x34e00000,0x700acd00,0x4000000,0xb6800000,
+0x700ace00,0x4000000,0x34e00000,0x700acf00,0x4000000,0x34e00000,0x700acf00,0x4000000,0xb6800000,0x7040dfe5,0x4000000,0x200000,0x7040f7e9,0x80000,0x918820,0x7080af90,
+0x2802400,0x962460,0x7080dfe5,0x2802400,0x962460,0x70c0e4e7,0x2802100,0x962460,0x70c0e4e7,0x2802400,0x962460,0x70c0e4e7,0x6800100,0x962540,0x8000120f,0x7c00100,
0x230400,0x80001524,0x7c00100,0x230400,0x8000171a,0x7c00100,0x230400,0x80002006,0x7c00100,0x220400,0x80002006,0x7c00100,0x250400,0x80002a00,0x4000000,0x1500000,
0x80002d00,0x4000000,0x200000,0x80005208,0x2802400,0x962460,0x80005c00,0x4000000,0x200000,0x80007300,0x24000000,0x200000,0x80009519,0x7c00100,0x220400,0x80009519,
0x7c00100,0x230400,0x80009519,0x7c00100,0x250400,0x80009865,0x7c00100,0x230400,0x8000a008,0x2802100,0x962460,0x8000b30a,0x4000000,0x500000,0x8000b30a,0x7c00100,
-0x230400,0x8000cd00,0x4000000,0xe00000,0x8000d202,0x2802500,0x962460,0x8000d202,0x7c00100,0x230400,0x8000d68d,0x4000000,0x200000,0x8000d997,0x2802400,0x962460,
-0x8000d997,0x4000000,0x200000,0x8000d997,0x4000000,0x400000,0x8000d997,0x4000000,0x500000,0x8000d997,0x7c00100,0x230400,0x8000d997,0xc000010,0x448000,0x8000e489,
+0x230400,0x8000cd00,0x4000000,0x4e00000,0x8000d202,0x2802500,0x962460,0x8000d202,0x7c00100,0x230400,0x8000d68d,0x4000000,0x200000,0x8000d997,0x2802000,0x962460,
+0x8000d997,0x2802400,0x962460,0x8000d997,0x4000000,0x400000,0x8000d997,0x4000000,0x500000,0x8000d997,0x7c00100,0x230400,0x8000d997,0xc000010,0x448000,0x8000e489,
0x2802100,0x962460,0x8000e489,0x7c00100,0x230400,0x8000e719,0x7c00100,0x220400,0x8000f8a6,0x2802100,0x962460,0x8000f8a6,0x7c00100,0x230400,0x8000f8a6,0xc000010,
0x448000,0x8000fda1,0x2802100,0x1862460,0x8000fda1,0x2806400,0x1862460,0x8000fda1,0x4000000,0x1800000,0x8000fda1,0x6800000,0x1329800,0x8000fda1,0x6800100,0x1862540,
0x8000fda1,0x7c00100,0x1830000,0x8000fda1,0xc000010,0x448000,0x8000fe9c,0x7c00100,0x230400,0x8000fe9c,0x7c00100,0x830400,0x8000fe9c,0x7c00100,0x1430400,0x8000ff06,
0x7c00100,0x220400,0x80010165,0x7c00100,0x230400,0x800102a2,0x4000000,0x200000,0x800102a2,0x7c00100,0x230400,0x800103a4,0x7c00100,0x230400,0x800103a4,0xc000010,
0x448000,0x8001044c,0x4000000,0x200000,0x8001044c,0x7c00100,0x220400,0x8001044c,0x7c00100,0x250400,0x80010670,0x2802000,0x962460,0x80010670,0x4000000,0x200000,
-0x80010670,0x4000010,0x400000,0x80010670,0xc000010,0x448000,0x800a4711,0x7c40300,0xe30000,0x800acd00,0x4000000,0x30e00000,0x800acd00,0x4000000,0x7a904de0,0x800ace00,
-0x4000000,0x30e00000,0x800acf00,0x4000000,0x30e00000,0x800b0011,0x7c40300,0xe30000,0x800b0500,0x4000000,0x30e00000,0x800b0500,0x4000000,0xb28045a0,0x90001615,0x7c00100,
+0x80010670,0x4000010,0x400000,0x80010670,0xc000010,0x448000,0x800a4711,0x7c40300,0xe30000,0x800acd00,0x4000000,0x34e00000,0x800acd00,0x4000000,0x7a902460,0x800ace00,
+0x4000000,0x34e00000,0x800acf00,0x4000000,0x34e00000,0x800b0011,0x7c40300,0xe30000,0x800b0500,0x4000000,0x34e00000,0x800b0500,0x4000000,0xb6800000,0x90001615,0x7c00100,
0x230400,0x9000171a,0x4000000,0x200000,0x9000171a,0x7c00100,0x230400,0x90003000,0x24000000,0x200000,0x90007f0e,0x4000000,0x200000,0x90008301,0x2802000,0x962460,
0x90008e00,0x24000000,0x400000,0x90009519,0x7c00100,0x250400,0x9000a16f,0x2802100,0x962460,0x9000d200,0x80000000,0x218960,0x9000d202,0x2802000,0x962460,0x9000d202,
0x2802100,0x962460,0x9000d202,0x7c00100,0x230400,0x9000e59d,0x2802100,0x962460,0x900107a7,0x2802100,0x962460,0x900107a7,0x2802400,0x962460,0x900107a7,0x2802c00,
@@ -3586,37 +3656,52 @@ static const uint32_t propsVectors[6375]={
0x962460,0x90010ca9,0x4000000,0x500000,0x90010ca9,0x4000010,0xb00000,0x90010ca9,0x6800100,0x962540,0x90010ca9,0x7c00100,0x230400,0x90010d1b,0x4000000,0x500000,
0x90010eaa,0x2802100,0x962460,0x90010eaa,0x2802400,0x962460,0x90010eaa,0x2806400,0x962460,0x90010eaa,0x4000000,0x200000,0x90010eaa,0x4000000,0x400000,0x90010eaa,
0x4000010,0x400000,0x90010eaa,0x6800000,0x1329800,0x90010eaa,0x6800100,0x962540,0x90010eaa,0x7c00100,0x230400,0x90010eaa,0xc000010,0x448000,0x90010fab,0x7c00100,
-0x220400,0x90010fab,0x7c00100,0x250400,0x9002c300,0x4000000,0x100000,0x900ac400,0x4000000,0xe0000d,0x900acd00,0x4000000,0x30e00000,0x900acd00,0x4000000,0xb28045a0,
-0x900acf00,0x4000000,0x30e00000,0x900b0500,0x4000000,0xe00000,0x900b0500,0x4000000,0x30e00000,0x900b0500,0x4000000,0xb28045a0,0x900b0b9a,0x7c00900,0x1230400,0x900b109a,
+0x220400,0x90010fab,0x7c00100,0x250400,0x9002c300,0x4000000,0x100000,0x900ac400,0x4000000,0xe0000d,0x900acd00,0x4000000,0x34e00000,0x900acd00,0x4000000,0xb6800000,
+0x900acf00,0x4000000,0x34e00000,0x900b0500,0x4000000,0xe00000,0x900b0500,0x4000000,0x34e00000,0x900b0500,0x4000000,0xb6800000,0x900b0b9a,0x7c00900,0x1230400,0x900b109a,
0x7c00300,0xe30000,0x900b119a,0x7c00300,0xe30000,0x90408e06,0x24000000,0x400000,0xa0001004,0x4000000,0x200000,0xa0001004,0x7c00100,0x230400,0xa000120f,0x2802100,
0x962460,0xa000120f,0x2802400,0x962460,0xa000171a,0x2802100,0x962460,0xa000171a,0x2806400,0x962460,0xa0002a00,0x4000000,0x1600000,0xa0003000,0x24000000,0x200000,
-0xa000581e,0x7c00100,0x230400,0xa0007300,0x24000000,0x200000,0xa0008301,0x2802400,0x962460,0xa0008e00,0x24000000,0x400000,0xa000cf00,0x4000000,0xe00000,0xa0010500,
+0xa000581e,0x7c00100,0x230400,0xa0007300,0x24000000,0x200000,0xa0008301,0x2802400,0x962460,0xa0008e00,0x24000000,0x400000,0xa000cf00,0x4000000,0x4e00000,0xa0010500,
0x4000000,0x200000,0xa00114af,0x2802100,0x962460,0xa00114af,0x2802400,0x962460,0xa00114af,0x2806400,0x962460,0xa00114af,0x6800000,0x1329800,0xa00114af,0x7c00100,
0x230400,0xa00114af,0x7c00100,0x230560,0xa00116b0,0x2802100,0x962460,0xa00116b0,0x2802800,0x962460,0xa00116b0,0x2806400,0x962460,0xa00116b0,0x4000000,0x400000,
0xa00116b0,0x4000000,0x500000,0xa00116b0,0x4000010,0x400000,0xa00116b0,0x6800100,0x962540,0xa00116b0,0x7c00100,0x230400,0xa00116b0,0x7c00100,0x230560,0xa00116b0,
0xc000010,0x448000,0xa0011722,0x7c00100,0x230400,0xa00118b1,0x2802000,0x962460,0xa00118b1,0x2802100,0x962460,0xa00118b1,0x2806400,0x962460,0xa00118b1,0x4000000,
0x200000,0xa00118b1,0x4000000,0x400000,0xa00118b1,0x4000000,0x500000,0xa00118b1,0x6800100,0x962540,0xa00118b1,0x7c00100,0x230400,0xa00118b1,0x7c00100,0x230560,
-0xa00118b1,0xc000010,0x448000,0xa00a4005,0x7c00100,0xe30400,0xa00a4711,0x7c40300,0xe30000,0xa00ac400,0x4000000,0xe00000,0xa00acb14,0x7c00100,0xe30000,0xa00acf00,
-0x4000000,0x30e00000,0xa00b0500,0x4000000,0x30e00000,0xa00b0500,0x4000000,0xb28045a0,0xa00b0b96,0x7c00900,0x1230400,0xa00b1211,0x7c40300,0xe30000,0xa00b1314,0x7c00100,
-0xe30000,0xa00b1596,0x7c00300,0xe30000,0xa040af86,0x6800400,0x962540};
+0xa00118b1,0xc000010,0x448000,0xa00a4005,0x7c00100,0xe30400,0xa00a4711,0x7c40300,0xe30000,0xa00ac400,0x4000000,0x4e00000,0xa00acb14,0x7c00100,0xe30000,0xa00acf00,
+0x4000000,0x34e00000,0xa00b0500,0x4000000,0x34e00000,0xa00b0500,0x4000000,0xb6800000,0xa00b0b96,0x7c00900,0x1230400,0xa00b1211,0x7c40300,0xe30000,0xa00b1314,0x7c00100,
+0xe30000,0xa00b1596,0x7c00300,0xe30000,0xa040af9c,0x6800400,0x962540,0xb0000a03,0x7c00100,0x220400,0xb0000b13,0x7c00100,0x2633800,0xb0001004,0x2802000,0x962460,
+0xb0001110,0x4000000,0x200000,0xb0001524,0x2802000,0x962460,0xb0001615,0x4000000,0x500000,0xb000251b,0x7c00100,0x230400,0xb0007300,0x24000000,0x200000,0xb0008939,
+0x4000000,0x200000,0xb0008939,0x7c00100,0x230400,0xb0008e00,0x24000000,0x200000,0xb0008e00,0x24000000,0x400000,0xb0008e00,0x24000010,0x400000,0xb0009257,0x2802000,
+0x962460,0xb0009257,0x4000000,0x1600000,0xb0009519,0x7c00100,0x220400,0xb0009519,0x7c00100,0x250400,0xb0009a00,0x4000000,0x200000,0xb000b30a,0x2802000,0x962460,
+0xb000b30a,0x7c00100,0x230400,0xb000c178,0x80000000,0x218960,0xb000c300,0x4000000,0x4200000,0xb000d202,0x2802000,0x962460,0xb000d476,0x6800100,0x962540,0xb000d476,
+0x7c00100,0x230400,0xb000e300,0x4000000,0x4e00000,0xb000fda1,0x7c00100,0x1830000,0xb0010eaa,0x2802000,0x962460,0xb00116b0,0x7c00100,0x230400,0xb0011900,0x4000000,
+0x4e00000,0xb0011ab2,0x2802100,0x962460,0xb0011ab2,0x2802400,0x962460,0xb0011ab2,0x2806400,0x962460,0xb0011ab2,0x4000000,0x200000,0xb0011ab2,0x6800100,0x962540,
+0xb0011ab2,0x7c00100,0x230400,0xb0011b0c,0x7c00100,0x250400,0xb0011cb3,0x2802100,0x962460,0xb0011cb3,0x2806400,0x962460,0xb0011cb3,0x6800000,0x1329800,0xb0011cb3,
+0x6800100,0x962540,0xb0011cb3,0x7c00100,0x230400,0xb0011db6,0x2802500,0x962460,0xb0011db6,0x6800000,0x1329800,0xb0011db6,0x7c00100,0x230400,0xb0011db6,0x7c00500,
+0x230400,0xb0011e00,0x4000000,0x200000,0xb0011e00,0x4000000,0x1500000,0xb0011fb4,0x2802100,0x962460,0xb0011fb4,0x6800100,0x962540,0xb0011fb4,0x7c00100,0x230400,
+0xb0011fb4,0xc000010,0x248000,0xb0012000,0x4000000,0x200000,0xb00121b5,0x4000000,0x200000,0xb00121b5,0x4000010,0x400000,0xb00121b5,0x7c00100,0x220400,0xb00121b5,
+0x7c00100,0x250400,0xb00121b5,0xc000010,0x448000,0xb00122b8,0x4000000,0x200000,0xb00122b8,0x7c00100,0x230400,0xb00123b7,0x2802400,0x962460,0xb00123b7,0x4000000,
+0x200000,0xb00123b7,0x7c00100,0x230400,0xb00123b7,0xc000010,0x248000,0xb00a4005,0x7c00100,0xe30400,0xb00a4711,0x7c40300,0xe30000,0xb00acf00,0x4000000,0x34e00000,
+0xb00b0500,0x4000000,0x34e00000,0xb00b0500,0x4000000,0x3ce00000,0xb00b0500,0x4000000,0xb6800000,0xb00b109a,0x7c00300,0xe30000,0xb080e47a,0x2802000,0x962460};
-static const int32_t countPropsVectors=6375;
+static const int32_t countPropsVectors=6639;
static const int32_t propsVectorsColumns=3;
-static const uint16_t scriptExtensions[198]={
+static const uint16_t scriptExtensions[234]={
0x800e,0x8019,8,0x8059,8,2,8,0x8038,8,6,8,0x8019,3,0x800c,2,0x22,
-0x8025,2,0xe,2,0x22,0x54,0x79,0x7b,0x80a7,2,0x8022,2,0x8025,2,0x1b,4,
-0xa,0xf,0x10,0x15,0x19,0x1a,0x1f,0x23,0x24,0x89,0x8097,4,0xa,0xf,0x10,0x15,
-0x19,0x1a,0x1f,0x23,0x24,0x8089,4,0xa,0xf,0x10,0x15,0x1a,0x1f,0x21,0x23,0x24,
-0x3a,0x89,0x91,0x99,0x9e,0x80a0,4,0xa,0xf,0x10,0x15,0x1a,0x1f,0x21,0x23,0x24,
-0x30,0x3a,0x89,0x91,0x99,0x9e,0x80a0,0xa,0x78,0x80a0,0xa,0x57,4,0x3a,0x8076,4,
-0x5c,0x10,0x80a4,0x10,0x61,0xf,0x809d,0xf,0x65,0x23,0x8089,0x23,0x69,0x1c,0x34,0x8076,
-0x1c,0x6d,0xc,0x8019,0x2a,0x2b,0x2c,0x802d,0x1b,0x805a,0x800a,0xa,0x8089,0xa,0x8097,0xa,
-0x15,0x1a,0x23,0x8024,0xa,0x8015,0x8004,0xa,0x19,0x8089,5,0x11,0x12,0x14,0x16,0x8029,
-5,0x11,0x12,0x14,0x8016,0x8011,5,0x8011,0x11,0x14,0x8016,0xa,0xf,0x10,0x15,0x78,
-0x91,0x99,0x9e,0xa0,0x80a3,0xa,0xf,0x10,0x78,0x91,0x99,0x9e,0xa0,0x80a3,4,0x800a,
-0xa,0xae,0xa,0x8023,0xa,0xb2,0x19,0x1c,0x804f,0x37,0x804e,0x2f,0x31,0x8053,0x2f,0x8031,
-2,0x8007,0x89,0x69,0x8087,0};
+0x25,0x80b6,2,0x22,0x8025,2,0x12,2,0x22,0x54,0x79,0x7b,0xa7,0xb6,0x80b7,2,
+0x8022,2,0x8025,2,0x21,2,0x80b6,2,0x25,4,0xa,0xf,0x10,0x15,0x19,0x1a,
+0x1f,0x23,0x24,0x89,0x97,0x809e,4,0xa,0xf,0x10,0x15,0x19,0x1a,0x1f,0x23,0x24,
+0x89,0x809e,4,0xa,0xf,0x10,0x15,0x1a,0x1f,0x21,0x23,0x24,0x3a,0x89,0x91,0x99,
+0x9e,0xa0,0xb2,0x80b3,4,0xa,0xf,0x10,0x15,0x1a,0x1f,0x21,0x23,0x24,0x30,0x3a,
+0x89,0x91,0x99,0x9e,0xa0,0xb2,0x80b3,0xa,0x78,0xa0,0x80b2,0xa,0x67,4,0x3a,0x8076,
+4,0x6d,0x10,0x80a4,0x10,0x72,0xf,0x809d,0xf,0x76,0x23,0x8089,0x23,0x7a,0x1c,0x34,
+0x8076,0x1c,0x7e,0xc,0x8019,0x2a,0x2b,0x2c,0x802d,0x1b,0x805a,0x800a,4,0xa,0x15,0x8089,
+0xa,0x8089,4,0x800a,0xa,0x8097,0xa,0x15,0x1a,0x1f,0x23,0x8024,0x8004,0xa,0x19,0x8089,
+5,0x11,0x12,0x14,0x16,0x8029,5,0x11,0x12,0x14,0x8016,0x8011,5,0x8011,0x11,0x14,
+0x8016,0xa,0xf,0x10,0x78,0x91,0x99,0x9d,0x9e,0xa0,0xa3,0x80b2,0xa,0xf,0x10,0x15,
+0x1a,0x78,0x91,0x99,0x9d,0x9e,0xa0,0xa3,0x80b2,0xa,0xf,0x10,0x15,0x78,0x91,0x99,
+0x9d,0x9e,0xa0,0xa3,0x80b2,0xa,0x92,0xa,0x8023,0xa,0xd7,0x19,0x1c,0x804f,0x37,0x804e,
+0x2f,0x31,0x8053,0x2f,0x8031,2,0x8007,0x89,0x7a,0x8087};
-static const int32_t indexes[UPROPS_INDEX_COUNT]={0x2962,0x2962,0x2962,0x2962,0x6280,3,0x7b67,0x7bca,0x7bca,0x7bca,0xb18b1,0x2a75631,0,0,0,0};
+static const int32_t indexes[UPROPS_INDEX_COUNT]={0x29fa,0x29fa,0x29fa,0x29fa,0x649c,3,0x7e8b,0x7f00,0x7f00,0x7f00,0xb23b8,0x2a75a31,0,0,0,0};
#endif // INCLUDED_FROM_UCHAR_C
diff --git a/Build/source/libs/icu/icu-src/source/common/ucln_cmn.h b/Build/source/libs/icu/icu-src/source/common/ucln_cmn.h
index 5db94945172..0ca911b47d9 100644
--- a/Build/source/libs/icu/icu-src/source/common/ucln_cmn.h
+++ b/Build/source/libs/icu/icu-src/source/common/ucln_cmn.h
@@ -33,6 +33,7 @@ Please keep the order of enums declared in same order
as the cleanup functions are suppose to be called. */
typedef enum ECleanupCommonType {
UCLN_COMMON_START = -1,
+ UCLN_COMMON_NUMPARSE_UNISETS,
UCLN_COMMON_USPREP,
UCLN_COMMON_BREAKITERATOR,
UCLN_COMMON_RBBI,
@@ -44,6 +45,7 @@ typedef enum ECleanupCommonType {
UCLN_COMMON_CURRENCY,
UCLN_COMMON_LOADED_NORMALIZER2,
UCLN_COMMON_NORMALIZER2,
+ UCLN_COMMON_CHARACTERPROPERTIES,
UCLN_COMMON_USET,
UCLN_COMMON_UNAMES,
UCLN_COMMON_UPROPS,
@@ -51,7 +53,6 @@ typedef enum ECleanupCommonType {
UCLN_COMMON_UCNV_IO,
UCLN_COMMON_UDATA,
UCLN_COMMON_PUTIL,
- UCLN_COMMON_LIST_FORMATTER,
UCLN_COMMON_UINIT,
/*
diff --git a/Build/source/libs/icu/icu-src/source/common/ucnv.cpp b/Build/source/libs/icu/icu-src/source/common/ucnv.cpp
index ae3c63d31a4..4e57619f500 100644
--- a/Build/source/libs/icu/icu-src/source/common/ucnv.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/ucnv.cpp
@@ -1743,13 +1743,9 @@ ucnv_fromUChars(UConverter *cnv,
}
if(srcLength>0) {
srcLimit=src+srcLength;
+ destCapacity=pinCapacity(dest, destCapacity);
destLimit=dest+destCapacity;
- /* pin the destination limit to U_MAX_PTR; NULL check is for OS/400 */
- if(destLimit<dest || (destLimit==NULL && dest!=NULL)) {
- destLimit=(char *)U_MAX_PTR(dest);
- }
-
/* perform the conversion */
ucnv_fromUnicode(cnv, &dest, destLimit, &src, srcLimit, 0, TRUE, pErrorCode);
destLength=(int32_t)(dest-originalDest);
@@ -1803,13 +1799,9 @@ ucnv_toUChars(UConverter *cnv,
}
if(srcLength>0) {
srcLimit=src+srcLength;
+ destCapacity=pinCapacity(dest, destCapacity);
destLimit=dest+destCapacity;
- /* pin the destination limit to U_MAX_PTR; NULL check is for OS/400 */
- if(destLimit<dest || (destLimit==NULL && dest!=NULL)) {
- destLimit=(UChar *)U_MAX_PTR(dest);
- }
-
/* perform the conversion */
ucnv_toUnicode(cnv, &dest, destLimit, &src, srcLimit, 0, TRUE, pErrorCode);
destLength=(int32_t)(dest-originalDest);
diff --git a/Build/source/libs/icu/icu-src/source/common/ucnv2022.cpp b/Build/source/libs/icu/icu-src/source/common/ucnv2022.cpp
index 2ef5db97754..d1a50d269f1 100644
--- a/Build/source/libs/icu/icu-src/source/common/ucnv2022.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/ucnv2022.cpp
@@ -2772,7 +2772,7 @@ getTrailByte:
/* report a pair of illegal bytes if the second byte is not a DBCS starter */
++mySource;
/* add another bit so that the code below writes 2 bytes in case of error */
- mySourceChar = 0x10000 | (mySourceChar << 8) | trailByte;
+ mySourceChar = static_cast<UChar>(0x10000 | (mySourceChar << 8) | trailByte);
}
} else {
args->converter->toUBytes[0] = (uint8_t)mySourceChar;
@@ -3304,7 +3304,7 @@ UConverter_toUnicode_ISO_2022_CN_OFFSETS_LOGIC(UConverterToUnicodeArgs *args,
myData->isEmptySegment = FALSE; /* we are handling it, reset to avoid future spurious errors */
*err = U_ILLEGAL_ESCAPE_SEQUENCE;
args->converter->toUCallbackReason = UCNV_IRREGULAR;
- args->converter->toUBytes[0] = mySourceChar;
+ args->converter->toUBytes[0] = static_cast<uint8_t>(mySourceChar);
args->converter->toULength = 1;
args->target = myTarget;
args->source = mySource;
diff --git a/Build/source/libs/icu/icu-src/source/common/ucnv_bld.cpp b/Build/source/libs/icu/icu-src/source/common/ucnv_bld.cpp
index 14de21bd739..7596687435d 100644
--- a/Build/source/libs/icu/icu-src/source/common/ucnv_bld.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/ucnv_bld.cpp
@@ -261,6 +261,11 @@ static UBool U_CALLCONV ucnv_cleanup(void) {
return (SHARED_DATA_HASHTABLE == NULL);
}
+U_CAPI void U_EXPORT2
+ucnv_enableCleanup() {
+ ucln_common_registerCleanup(UCLN_COMMON_UCNV, ucnv_cleanup);
+}
+
static UBool U_CALLCONV
isCnvAcceptable(void * /*context*/,
const char * /*type*/, const char * /*name*/,
@@ -439,7 +444,7 @@ ucnv_shareConverterData(UConverterSharedData * data)
SHARED_DATA_HASHTABLE = uhash_openSize(uhash_hashChars, uhash_compareChars, NULL,
ucnv_io_countKnownConverters(&err)*UCNV_CACHE_LOAD_FACTOR,
&err);
- ucln_common_registerCleanup(UCLN_COMMON_UCNV, ucnv_cleanup);
+ ucnv_enableCleanup();
if (U_FAILURE(err))
return;
@@ -1099,7 +1104,7 @@ static void U_CALLCONV initAvailableConvertersList(UErrorCode &errCode) {
U_ASSERT(gAvailableConverterCount == 0);
U_ASSERT(gAvailableConverters == NULL);
- ucln_common_registerCleanup(UCLN_COMMON_UCNV, ucnv_cleanup);
+ ucnv_enableCleanup();
UEnumeration *allConvEnum = ucnv_openAllNames(&errCode);
int32_t allConverterCount = uenum_count(allConvEnum, &errCode);
if (U_FAILURE(errCode)) {
@@ -1205,7 +1210,7 @@ internalSetName(const char *name, UErrorCode *status) {
// -- Andy
gDefaultConverterName = gDefaultConverterNameBuffer;
- ucln_common_registerCleanup(UCLN_COMMON_UCNV, ucnv_cleanup);
+ ucnv_enableCleanup();
umtx_unlock(&cnvCacheMutex);
}
diff --git a/Build/source/libs/icu/icu-src/source/common/ucnv_bld.h b/Build/source/libs/icu/icu-src/source/common/ucnv_bld.h
index a1e2df6730c..18b3795e4d8 100644
--- a/Build/source/libs/icu/icu-src/source/common/ucnv_bld.h
+++ b/Build/source/libs/icu/icu-src/source/common/ucnv_bld.h
@@ -288,6 +288,9 @@ ucnv_swap(const UDataSwapper *ds,
const void *inData, int32_t length, void *outData,
UErrorCode *pErrorCode);
+U_CAPI void U_EXPORT2
+ucnv_enableCleanup();
+
#endif
#endif /* _UCNV_BLD */
diff --git a/Build/source/libs/icu/icu-src/source/common/ucnv_ct.cpp b/Build/source/libs/icu/icu-src/source/common/ucnv_ct.cpp
index 51e31aa4116..b40e1b2c970 100644
--- a/Build/source/libs/icu/icu-src/source/common/ucnv_ct.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/ucnv_ct.cpp
@@ -180,7 +180,7 @@ _CompoundTextgetName(const UConverter* cnv);
static int32_t findNextEsc(const char *source, const char *sourceLimit) {
- int32_t length = sourceLimit - source;
+ int32_t length = static_cast<int32_t>(sourceLimit - source);
int32_t i;
for (i = 1; i < length; i++) {
if (*(source + i) == 0x1B) {
diff --git a/Build/source/libs/icu/icu-src/source/common/ucnv_u16.cpp b/Build/source/libs/icu/icu-src/source/common/ucnv_u16.cpp
index 28f2727ecdf..a5e8367400a 100644
--- a/Build/source/libs/icu/icu-src/source/common/ucnv_u16.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/ucnv_u16.cpp
@@ -71,7 +71,7 @@ _UTF16BEFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs,
/* write the BOM if necessary */
if(cnv->fromUnicodeStatus==UCNV_NEED_TO_WRITE_BOM) {
- static const char bom[]={ (char)0xfe, (char)0xff };
+ static const char bom[]={ (char)0xfeu, (char)0xffu };
ucnv_fromUWriteBytes(cnv,
bom, 2,
&pArgs->target, pArgs->targetLimit,
@@ -672,7 +672,7 @@ _UTF16LEFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs,
/* write the BOM if necessary */
if(cnv->fromUnicodeStatus==UCNV_NEED_TO_WRITE_BOM) {
- static const char bom[]={ (char)0xff, (char)0xfe };
+ static const char bom[]={ (char)0xffu, (char)0xfeu };
ucnv_fromUWriteBytes(cnv,
bom, 2,
&pArgs->target, pArgs->targetLimit,
diff --git a/Build/source/libs/icu/icu-src/source/common/ucnv_u32.cpp b/Build/source/libs/icu/icu-src/source/common/ucnv_u32.cpp
index 5777117a924..9f98914b9d7 100644
--- a/Build/source/libs/icu/icu-src/source/common/ucnv_u32.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/ucnv_u32.cpp
@@ -228,7 +228,7 @@ T_UConverter_fromUnicode_UTF32_BE(UConverterFromUnicodeArgs * args,
/* write the BOM if necessary */
if(args->converter->fromUnicodeStatus==UCNV_NEED_TO_WRITE_BOM) {
- static const char bom[]={ 0, 0, (char)0xfe, (char)0xff };
+ static const char bom[]={ 0, 0, (char)0xfeu, (char)0xffu };
ucnv_fromUWriteBytes(args->converter,
bom, 4,
&args->target, args->targetLimit,
@@ -331,7 +331,7 @@ T_UConverter_fromUnicode_UTF32_BE_OFFSET_LOGIC(UConverterFromUnicodeArgs * args,
/* write the BOM if necessary */
if(args->converter->fromUnicodeStatus==UCNV_NEED_TO_WRITE_BOM) {
- static const char bom[]={ 0, 0, (char)0xfe, (char)0xff };
+ static const char bom[]={ 0, 0, (char)0xfeu, (char)0xffu };
ucnv_fromUWriteBytes(args->converter,
bom, 4,
&args->target, args->targetLimit,
@@ -706,7 +706,7 @@ T_UConverter_fromUnicode_UTF32_LE(UConverterFromUnicodeArgs * args,
/* write the BOM if necessary */
if(args->converter->fromUnicodeStatus==UCNV_NEED_TO_WRITE_BOM) {
- static const char bom[]={ (char)0xff, (char)0xfe, 0, 0 };
+ static const char bom[]={ (char)0xffu, (char)0xfeu, 0, 0 };
ucnv_fromUWriteBytes(args->converter,
bom, 4,
&args->target, args->targetLimit,
@@ -817,7 +817,7 @@ T_UConverter_fromUnicode_UTF32_LE_OFFSET_LOGIC(UConverterFromUnicodeArgs * args,
/* write the BOM if necessary */
if(args->converter->fromUnicodeStatus==UCNV_NEED_TO_WRITE_BOM) {
- static const char bom[]={ (char)0xff, (char)0xfe, 0, 0 };
+ static const char bom[]={ (char)0xffu, (char)0xfeu, 0, 0 };
ucnv_fromUWriteBytes(args->converter,
bom, 4,
&args->target, args->targetLimit,
@@ -1043,7 +1043,7 @@ _UTF32Open(UConverter *cnv,
_UTF32Reset(cnv, UCNV_RESET_BOTH);
}
-static const char utf32BOM[8]={ 0, 0, (char)0xfe, (char)0xff, (char)0xff, (char)0xfe, 0, 0 };
+static const char utf32BOM[8]={ 0, 0, (char)0xfeu, (char)0xffu, (char)0xffu, (char)0xfeu, 0, 0 };
static void U_CALLCONV
_UTF32ToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs,
@@ -1071,7 +1071,7 @@ _UTF32ToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs,
b=*source;
if(b==0) {
state=1; /* could be 00 00 FE FF */
- } else if(b==(char)0xff) {
+ } else if(b==(char)0xffu) {
state=5; /* could be FF FE 00 00 */
} else {
state=8; /* default to UTF-32BE */
diff --git a/Build/source/libs/icu/icu-src/source/common/ucnv_u8.cpp b/Build/source/libs/icu/icu-src/source/common/ucnv_u8.cpp
index 7089d9400c6..9b518e08df6 100644
--- a/Build/source/libs/icu/icu-src/source/common/ucnv_u8.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/ucnv_u8.cpp
@@ -108,7 +108,7 @@ morebytes:
if (mySource < sourceLimit)
{
toUBytes[i] = (char) (ch2 = *mySource);
- if (!icu::UTF8::isValidTrail(ch, ch2, i, inBytes) &&
+ if (!icu::UTF8::isValidTrail(ch, static_cast<uint8_t>(ch2), i, inBytes) &&
!(isCESU8 && i == 1 && ch == 0xed && U8_IS_TRAIL(ch2)))
{
break; /* i < inBytes */
@@ -225,7 +225,7 @@ morebytes:
if (mySource < sourceLimit)
{
toUBytes[i] = (char) (ch2 = *mySource);
- if (!icu::UTF8::isValidTrail(ch, ch2, i, inBytes) &&
+ if (!icu::UTF8::isValidTrail(ch, static_cast<uint8_t>(ch2), i, inBytes) &&
!(isCESU8 && i == 1 && ch == 0xed && U8_IS_TRAIL(ch2)))
{
break; /* i < inBytes */
diff --git a/Build/source/libs/icu/icu-src/source/common/ucnvhz.cpp b/Build/source/libs/icu/icu-src/source/common/ucnvhz.cpp
index 79a83d759f1..e9f5206c163 100644
--- a/Build/source/libs/icu/icu-src/source/common/ucnvhz.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/ucnvhz.cpp
@@ -199,7 +199,7 @@ UConverter_toUnicode_HZ_OFFSETS_LOGIC(UConverterToUnicodeArgs *args,
*err = U_ILLEGAL_ESCAPE_SEQUENCE;
args->converter->toUCallbackReason = UCNV_IRREGULAR;
args->converter->toUBytes[0] = UCNV_TILDE;
- args->converter->toUBytes[1] = mySourceChar;
+ args->converter->toUBytes[1] = static_cast<uint8_t>(mySourceChar);
args->converter->toULength = 2;
args->target = myTarget;
args->source = mySource;
@@ -229,7 +229,7 @@ UConverter_toUnicode_HZ_OFFSETS_LOGIC(UConverterToUnicodeArgs *args,
--mySource;
} else {
/* Include the current byte in the illegal sequence. */
- args->converter->toUBytes[1] = mySourceChar;
+ args->converter->toUBytes[1] = static_cast<uint8_t>(mySourceChar);
args->converter->toULength = 2;
}
args->target = myTarget;
diff --git a/Build/source/libs/icu/icu-src/source/common/ucnvmbcs.cpp b/Build/source/libs/icu/icu-src/source/common/ucnvmbcs.cpp
index 2d0c857758d..583744b73a3 100644
--- a/Build/source/libs/icu/icu-src/source/common/ucnvmbcs.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/ucnvmbcs.cpp
@@ -4164,8 +4164,8 @@ ucnv_MBCSFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs,
nextSourceIndex=0;
/* Get the SI/SO character for the converter */
- siLength = getSISOBytes(SI, cnv->options, siBytes);
- soLength = getSISOBytes(SO, cnv->options, soBytes);
+ siLength = static_cast<uint8_t>(getSISOBytes(SI, cnv->options, siBytes));
+ soLength = static_cast<uint8_t>(getSISOBytes(SO, cnv->options, soBytes));
/* conversion loop */
/*
diff --git a/Build/source/libs/icu/icu-src/source/common/ucnvsel.cpp b/Build/source/libs/icu/icu-src/source/common/ucnvsel.cpp
index ba062b35cec..79be8c31f2d 100644
--- a/Build/source/libs/icu/icu-src/source/common/ucnvsel.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/ucnvsel.cpp
@@ -41,6 +41,7 @@
#include "propsvec.h"
#include "uassert.h"
#include "ucmndata.h"
+#include "udataswp.h"
#include "uenumimp.h"
#include "cmemory.h"
#include "cstring.h"
@@ -72,7 +73,7 @@ static void generateSelectorData(UConverterSelector* result,
// set errorValue to all-ones
for (int32_t col = 0; col < columns; col++) {
upvec_setValue(upvec, UPVEC_ERROR_VALUE_CP, UPVEC_ERROR_VALUE_CP,
- col, ~0, ~0, status);
+ col, static_cast<uint32_t>(~0), static_cast<uint32_t>(~0), status);
}
for (int32_t i = 0; i < result->encodingsCount; ++i) {
@@ -109,7 +110,7 @@ static void generateSelectorData(UConverterSelector* result,
// this will be reached for the converters that fill the set with
// strings. Those should be ignored by our system
} else {
- upvec_setValue(upvec, start_char, end_char, column, ~0, mask,
+ upvec_setValue(upvec, start_char, end_char, column, static_cast<uint32_t>(~0), mask,
status);
}
}
@@ -130,7 +131,7 @@ static void generateSelectorData(UConverterSelector* result,
uset_getItem(excludedCodePoints, j, &start_char, &end_char, NULL, 0,
status);
for (int32_t col = 0; col < columns; col++) {
- upvec_setValue(upvec, start_char, end_char, col, ~0, ~0,
+ upvec_setValue(upvec, start_char, end_char, col, static_cast<uint32_t>(~0), static_cast<uint32_t>(~0),
status);
}
}
@@ -684,7 +685,7 @@ static int16_t countOnes(uint32_t* mask, int32_t len) {
ent &= ent - 1; // clear the least significant bit set
}
}
- return totalOnes;
+ return static_cast<int16_t>(totalOnes);
}
diff --git a/Build/source/libs/icu/icu-src/source/common/ucol_swp.cpp b/Build/source/libs/icu/icu-src/source/common/ucol_swp.cpp
index 1822705d378..1af19863fa8 100644
--- a/Build/source/libs/icu/icu-src/source/common/ucol_swp.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/ucol_swp.cpp
@@ -28,81 +28,6 @@
/* swapping ----------------------------------------------------------------- */
-/*
- * This performs data swapping for a folded trie (see utrie.c for details).
- */
-
-U_CAPI int32_t U_EXPORT2
-utrie_swap(const UDataSwapper *ds,
- const void *inData, int32_t length, void *outData,
- UErrorCode *pErrorCode) {
- const UTrieHeader *inTrie;
- UTrieHeader trie;
- int32_t size;
- UBool dataIs32;
-
- if(pErrorCode==NULL || U_FAILURE(*pErrorCode)) {
- return 0;
- }
- if(ds==NULL || inData==NULL || (length>=0 && outData==NULL)) {
- *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
- return 0;
- }
-
- /* setup and swapping */
- if(length>=0 && (uint32_t)length<sizeof(UTrieHeader)) {
- *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
- return 0;
- }
-
- inTrie=(const UTrieHeader *)inData;
- trie.signature=ds->readUInt32(inTrie->signature);
- trie.options=ds->readUInt32(inTrie->options);
- trie.indexLength=udata_readInt32(ds, inTrie->indexLength);
- trie.dataLength=udata_readInt32(ds, inTrie->dataLength);
-
- if( trie.signature!=0x54726965 ||
- (trie.options&UTRIE_OPTIONS_SHIFT_MASK)!=UTRIE_SHIFT ||
- ((trie.options>>UTRIE_OPTIONS_INDEX_SHIFT)&UTRIE_OPTIONS_SHIFT_MASK)!=UTRIE_INDEX_SHIFT ||
- trie.indexLength<UTRIE_BMP_INDEX_LENGTH ||
- (trie.indexLength&(UTRIE_SURROGATE_BLOCK_COUNT-1))!=0 ||
- trie.dataLength<UTRIE_DATA_BLOCK_LENGTH ||
- (trie.dataLength&(UTRIE_DATA_GRANULARITY-1))!=0 ||
- ((trie.options&UTRIE_OPTIONS_LATIN1_IS_LINEAR)!=0 && trie.dataLength<(UTRIE_DATA_BLOCK_LENGTH+0x100))
- ) {
- *pErrorCode=U_INVALID_FORMAT_ERROR; /* not a UTrie */
- return 0;
- }
-
- dataIs32=(UBool)((trie.options&UTRIE_OPTIONS_DATA_IS_32_BIT)!=0);
- size=sizeof(UTrieHeader)+trie.indexLength*2+trie.dataLength*(dataIs32?4:2);
-
- if(length>=0) {
- UTrieHeader *outTrie;
-
- if(length<size) {
- *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
- return 0;
- }
-
- outTrie=(UTrieHeader *)outData;
-
- /* swap the header */
- ds->swapArray32(ds, inTrie, sizeof(UTrieHeader), outTrie, pErrorCode);
-
- /* swap the index and the data */
- if(dataIs32) {
- ds->swapArray16(ds, inTrie+1, trie.indexLength*2, outTrie+1, pErrorCode);
- ds->swapArray32(ds, (const uint16_t *)(inTrie+1)+trie.indexLength, trie.dataLength*4,
- (uint16_t *)(outTrie+1)+trie.indexLength, pErrorCode);
- } else {
- ds->swapArray16(ds, inTrie+1, (trie.indexLength+trie.dataLength)*2, outTrie+1, pErrorCode);
- }
- }
-
- return size;
-}
-
#if !UCONFIG_NO_COLLATION
U_CAPI UBool U_EXPORT2
diff --git a/Build/source/libs/icu/icu-src/source/common/ucptrie.cpp b/Build/source/libs/icu/icu-src/source/common/ucptrie.cpp
new file mode 100644
index 00000000000..13496ad56c5
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/common/ucptrie.cpp
@@ -0,0 +1,590 @@
+// © 2017 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// ucptrie.cpp (modified from utrie2.cpp)
+// created: 2017dec29 Markus W. Scherer
+
+// #define UCPTRIE_DEBUG
+#ifdef UCPTRIE_DEBUG
+# include <stdio.h>
+#endif
+
+#include "unicode/utypes.h"
+#include "unicode/ucptrie.h"
+#include "unicode/utf.h"
+#include "unicode/utf8.h"
+#include "unicode/utf16.h"
+#include "cmemory.h"
+#include "uassert.h"
+#include "ucptrie_impl.h"
+
+U_CAPI UCPTrie * U_EXPORT2
+ucptrie_openFromBinary(UCPTrieType type, UCPTrieValueWidth valueWidth,
+ const void *data, int32_t length, int32_t *pActualLength,
+ UErrorCode *pErrorCode) {
+ if (U_FAILURE(*pErrorCode)) {
+ return nullptr;
+ }
+
+ if (length <= 0 || (U_POINTER_MASK_LSB(data, 3) != 0) ||
+ type < UCPTRIE_TYPE_ANY || UCPTRIE_TYPE_SMALL < type ||
+ valueWidth < UCPTRIE_VALUE_BITS_ANY || UCPTRIE_VALUE_BITS_8 < valueWidth) {
+ *pErrorCode = U_ILLEGAL_ARGUMENT_ERROR;
+ return nullptr;
+ }
+
+ // Enough data for a trie header?
+ if (length < (int32_t)sizeof(UCPTrieHeader)) {
+ *pErrorCode = U_INVALID_FORMAT_ERROR;
+ return nullptr;
+ }
+
+ // Check the signature.
+ const UCPTrieHeader *header = (const UCPTrieHeader *)data;
+ if (header->signature != UCPTRIE_SIG) {
+ *pErrorCode = U_INVALID_FORMAT_ERROR;
+ return nullptr;
+ }
+
+ int32_t options = header->options;
+ int32_t typeInt = (options >> 6) & 3;
+ int32_t valueWidthInt = options & UCPTRIE_OPTIONS_VALUE_BITS_MASK;
+ if (typeInt > UCPTRIE_TYPE_SMALL || valueWidthInt > UCPTRIE_VALUE_BITS_8 ||
+ (options & UCPTRIE_OPTIONS_RESERVED_MASK) != 0) {
+ *pErrorCode = U_INVALID_FORMAT_ERROR;
+ return nullptr;
+ }
+ UCPTrieType actualType = (UCPTrieType)typeInt;
+ UCPTrieValueWidth actualValueWidth = (UCPTrieValueWidth)valueWidthInt;
+ if (type < 0) {
+ type = actualType;
+ }
+ if (valueWidth < 0) {
+ valueWidth = actualValueWidth;
+ }
+ if (type != actualType || valueWidth != actualValueWidth) {
+ *pErrorCode = U_INVALID_FORMAT_ERROR;
+ return nullptr;
+ }
+
+ // Get the length values and offsets.
+ UCPTrie tempTrie;
+ uprv_memset(&tempTrie, 0, sizeof(tempTrie));
+ tempTrie.indexLength = header->indexLength;
+ tempTrie.dataLength =
+ ((options & UCPTRIE_OPTIONS_DATA_LENGTH_MASK) << 4) | header->dataLength;
+ tempTrie.index3NullOffset = header->index3NullOffset;
+ tempTrie.dataNullOffset =
+ ((options & UCPTRIE_OPTIONS_DATA_NULL_OFFSET_MASK) << 8) | header->dataNullOffset;
+
+ tempTrie.highStart = header->shiftedHighStart << UCPTRIE_SHIFT_2;
+ tempTrie.shifted12HighStart = (tempTrie.highStart + 0xfff) >> 12;
+ tempTrie.type = type;
+ tempTrie.valueWidth = valueWidth;
+
+ // Calculate the actual length.
+ int32_t actualLength = (int32_t)sizeof(UCPTrieHeader) + tempTrie.indexLength * 2;
+ if (valueWidth == UCPTRIE_VALUE_BITS_16) {
+ actualLength += tempTrie.dataLength * 2;
+ } else if (valueWidth == UCPTRIE_VALUE_BITS_32) {
+ actualLength += tempTrie.dataLength * 4;
+ } else {
+ actualLength += tempTrie.dataLength;
+ }
+ if (length < actualLength) {
+ *pErrorCode = U_INVALID_FORMAT_ERROR; // Not enough bytes.
+ return nullptr;
+ }
+
+ // Allocate the trie.
+ UCPTrie *trie = (UCPTrie *)uprv_malloc(sizeof(UCPTrie));
+ if (trie == nullptr) {
+ *pErrorCode = U_MEMORY_ALLOCATION_ERROR;
+ return nullptr;
+ }
+ uprv_memcpy(trie, &tempTrie, sizeof(tempTrie));
+#ifdef UCPTRIE_DEBUG
+ trie->name = "fromSerialized";
+#endif
+
+ // Set the pointers to its index and data arrays.
+ const uint16_t *p16 = (const uint16_t *)(header + 1);
+ trie->index = p16;
+ p16 += trie->indexLength;
+
+ // Get the data.
+ int32_t nullValueOffset = trie->dataNullOffset;
+ if (nullValueOffset >= trie->dataLength) {
+ nullValueOffset = trie->dataLength - UCPTRIE_HIGH_VALUE_NEG_DATA_OFFSET;
+ }
+ switch (valueWidth) {
+ case UCPTRIE_VALUE_BITS_16:
+ trie->data.ptr16 = p16;
+ trie->nullValue = trie->data.ptr16[nullValueOffset];
+ break;
+ case UCPTRIE_VALUE_BITS_32:
+ trie->data.ptr32 = (const uint32_t *)p16;
+ trie->nullValue = trie->data.ptr32[nullValueOffset];
+ break;
+ case UCPTRIE_VALUE_BITS_8:
+ trie->data.ptr8 = (const uint8_t *)p16;
+ trie->nullValue = trie->data.ptr8[nullValueOffset];
+ break;
+ default:
+ // Unreachable because valueWidth was checked above.
+ *pErrorCode = U_INVALID_FORMAT_ERROR;
+ return nullptr;
+ }
+
+ if (pActualLength != nullptr) {
+ *pActualLength = actualLength;
+ }
+ return trie;
+}
+
+U_CAPI void U_EXPORT2
+ucptrie_close(UCPTrie *trie) {
+ uprv_free(trie);
+}
+
+U_CAPI UCPTrieType U_EXPORT2
+ucptrie_getType(const UCPTrie *trie) {
+ return (UCPTrieType)trie->type;
+}
+
+U_CAPI UCPTrieValueWidth U_EXPORT2
+ucptrie_getValueWidth(const UCPTrie *trie) {
+ return (UCPTrieValueWidth)trie->valueWidth;
+}
+
+U_CAPI int32_t U_EXPORT2
+ucptrie_internalSmallIndex(const UCPTrie *trie, UChar32 c) {
+ int32_t i1 = c >> UCPTRIE_SHIFT_1;
+ if (trie->type == UCPTRIE_TYPE_FAST) {
+ U_ASSERT(0xffff < c && c < trie->highStart);
+ i1 += UCPTRIE_BMP_INDEX_LENGTH - UCPTRIE_OMITTED_BMP_INDEX_1_LENGTH;
+ } else {
+ U_ASSERT((uint32_t)c < (uint32_t)trie->highStart && trie->highStart > UCPTRIE_SMALL_LIMIT);
+ i1 += UCPTRIE_SMALL_INDEX_LENGTH;
+ }
+ int32_t i3Block = trie->index[
+ (int32_t)trie->index[i1] + ((c >> UCPTRIE_SHIFT_2) & UCPTRIE_INDEX_2_MASK)];
+ int32_t i3 = (c >> UCPTRIE_SHIFT_3) & UCPTRIE_INDEX_3_MASK;
+ int32_t dataBlock;
+ if ((i3Block & 0x8000) == 0) {
+ // 16-bit indexes
+ dataBlock = trie->index[i3Block + i3];
+ } else {
+ // 18-bit indexes stored in groups of 9 entries per 8 indexes.
+ i3Block = (i3Block & 0x7fff) + (i3 & ~7) + (i3 >> 3);
+ i3 &= 7;
+ dataBlock = ((int32_t)trie->index[i3Block++] << (2 + (2 * i3))) & 0x30000;
+ dataBlock |= trie->index[i3Block + i3];
+ }
+ return dataBlock + (c & UCPTRIE_SMALL_DATA_MASK);
+}
+
+U_CAPI int32_t U_EXPORT2
+ucptrie_internalSmallU8Index(const UCPTrie *trie, int32_t lt1, uint8_t t2, uint8_t t3) {
+ UChar32 c = (lt1 << 12) | (t2 << 6) | t3;
+ if (c >= trie->highStart) {
+ // Possible because the UTF-8 macro compares with shifted12HighStart which may be higher.
+ return trie->dataLength - UCPTRIE_HIGH_VALUE_NEG_DATA_OFFSET;
+ }
+ return ucptrie_internalSmallIndex(trie, c);
+}
+
+U_CAPI int32_t U_EXPORT2
+ucptrie_internalU8PrevIndex(const UCPTrie *trie, UChar32 c,
+ const uint8_t *start, const uint8_t *src) {
+ int32_t i, length;
+ // Support 64-bit pointers by avoiding cast of arbitrary difference.
+ if ((src - start) <= 7) {
+ i = length = (int32_t)(src - start);
+ } else {
+ i = length = 7;
+ start = src - 7;
+ }
+ c = utf8_prevCharSafeBody(start, 0, &i, c, -1);
+ i = length - i; // Number of bytes read backward from src.
+ int32_t idx = _UCPTRIE_CP_INDEX(trie, 0xffff, c);
+ return (idx << 3) | i;
+}
+
+namespace {
+
+inline uint32_t getValue(UCPTrieData data, UCPTrieValueWidth valueWidth, int32_t dataIndex) {
+ switch (valueWidth) {
+ case UCPTRIE_VALUE_BITS_16:
+ return data.ptr16[dataIndex];
+ case UCPTRIE_VALUE_BITS_32:
+ return data.ptr32[dataIndex];
+ case UCPTRIE_VALUE_BITS_8:
+ return data.ptr8[dataIndex];
+ default:
+ // Unreachable if the trie is properly initialized.
+ return 0xffffffff;
+ }
+}
+
+} // namespace
+
+U_CAPI uint32_t U_EXPORT2
+ucptrie_get(const UCPTrie *trie, UChar32 c) {
+ int32_t dataIndex;
+ if ((uint32_t)c <= 0x7f) {
+ // linear ASCII
+ dataIndex = c;
+ } else {
+ UChar32 fastMax = trie->type == UCPTRIE_TYPE_FAST ? 0xffff : UCPTRIE_SMALL_MAX;
+ dataIndex = _UCPTRIE_CP_INDEX(trie, fastMax, c);
+ }
+ return getValue(trie->data, (UCPTrieValueWidth)trie->valueWidth, dataIndex);
+}
+
+namespace {
+
+constexpr int32_t MAX_UNICODE = 0x10ffff;
+
+inline uint32_t maybeFilterValue(uint32_t value, uint32_t trieNullValue, uint32_t nullValue,
+ UCPMapValueFilter *filter, const void *context) {
+ if (value == trieNullValue) {
+ value = nullValue;
+ } else if (filter != nullptr) {
+ value = filter(context, value);
+ }
+ return value;
+}
+
+UChar32 getRange(const void *t, UChar32 start,
+ UCPMapValueFilter *filter, const void *context, uint32_t *pValue) {
+ if ((uint32_t)start > MAX_UNICODE) {
+ return U_SENTINEL;
+ }
+ const UCPTrie *trie = reinterpret_cast<const UCPTrie *>(t);
+ UCPTrieValueWidth valueWidth = (UCPTrieValueWidth)trie->valueWidth;
+ if (start >= trie->highStart) {
+ if (pValue != nullptr) {
+ int32_t di = trie->dataLength - UCPTRIE_HIGH_VALUE_NEG_DATA_OFFSET;
+ uint32_t value = getValue(trie->data, valueWidth, di);
+ if (filter != nullptr) { value = filter(context, value); }
+ *pValue = value;
+ }
+ return MAX_UNICODE;
+ }
+
+ uint32_t nullValue = trie->nullValue;
+ if (filter != nullptr) { nullValue = filter(context, nullValue); }
+ const uint16_t *index = trie->index;
+
+ int32_t prevI3Block = -1;
+ int32_t prevBlock = -1;
+ UChar32 c = start;
+ uint32_t value;
+ bool haveValue = false;
+ do {
+ int32_t i3Block;
+ int32_t i3;
+ int32_t i3BlockLength;
+ int32_t dataBlockLength;
+ if (c <= 0xffff && (trie->type == UCPTRIE_TYPE_FAST || c <= UCPTRIE_SMALL_MAX)) {
+ i3Block = 0;
+ i3 = c >> UCPTRIE_FAST_SHIFT;
+ i3BlockLength = trie->type == UCPTRIE_TYPE_FAST ?
+ UCPTRIE_BMP_INDEX_LENGTH : UCPTRIE_SMALL_INDEX_LENGTH;
+ dataBlockLength = UCPTRIE_FAST_DATA_BLOCK_LENGTH;
+ } else {
+ // Use the multi-stage index.
+ int32_t i1 = c >> UCPTRIE_SHIFT_1;
+ if (trie->type == UCPTRIE_TYPE_FAST) {
+ U_ASSERT(0xffff < c && c < trie->highStart);
+ i1 += UCPTRIE_BMP_INDEX_LENGTH - UCPTRIE_OMITTED_BMP_INDEX_1_LENGTH;
+ } else {
+ U_ASSERT(c < trie->highStart && trie->highStart > UCPTRIE_SMALL_LIMIT);
+ i1 += UCPTRIE_SMALL_INDEX_LENGTH;
+ }
+ i3Block = trie->index[
+ (int32_t)trie->index[i1] + ((c >> UCPTRIE_SHIFT_2) & UCPTRIE_INDEX_2_MASK)];
+ if (i3Block == prevI3Block && (c - start) >= UCPTRIE_CP_PER_INDEX_2_ENTRY) {
+ // The index-3 block is the same as the previous one, and filled with value.
+ U_ASSERT((c & (UCPTRIE_CP_PER_INDEX_2_ENTRY - 1)) == 0);
+ c += UCPTRIE_CP_PER_INDEX_2_ENTRY;
+ continue;
+ }
+ prevI3Block = i3Block;
+ if (i3Block == trie->index3NullOffset) {
+ // This is the index-3 null block.
+ if (haveValue) {
+ if (nullValue != value) {
+ return c - 1;
+ }
+ } else {
+ value = nullValue;
+ if (pValue != nullptr) { *pValue = nullValue; }
+ haveValue = true;
+ }
+ prevBlock = trie->dataNullOffset;
+ c = (c + UCPTRIE_CP_PER_INDEX_2_ENTRY) & ~(UCPTRIE_CP_PER_INDEX_2_ENTRY - 1);
+ continue;
+ }
+ i3 = (c >> UCPTRIE_SHIFT_3) & UCPTRIE_INDEX_3_MASK;
+ i3BlockLength = UCPTRIE_INDEX_3_BLOCK_LENGTH;
+ dataBlockLength = UCPTRIE_SMALL_DATA_BLOCK_LENGTH;
+ }
+ // Enumerate data blocks for one index-3 block.
+ do {
+ int32_t block;
+ if ((i3Block & 0x8000) == 0) {
+ block = index[i3Block + i3];
+ } else {
+ // 18-bit indexes stored in groups of 9 entries per 8 indexes.
+ int32_t group = (i3Block & 0x7fff) + (i3 & ~7) + (i3 >> 3);
+ int32_t gi = i3 & 7;
+ block = ((int32_t)index[group++] << (2 + (2 * gi))) & 0x30000;
+ block |= index[group + gi];
+ }
+ if (block == prevBlock && (c - start) >= dataBlockLength) {
+ // The block is the same as the previous one, and filled with value.
+ U_ASSERT((c & (dataBlockLength - 1)) == 0);
+ c += dataBlockLength;
+ } else {
+ int32_t dataMask = dataBlockLength - 1;
+ prevBlock = block;
+ if (block == trie->dataNullOffset) {
+ // This is the data null block.
+ if (haveValue) {
+ if (nullValue != value) {
+ return c - 1;
+ }
+ } else {
+ value = nullValue;
+ if (pValue != nullptr) { *pValue = nullValue; }
+ haveValue = true;
+ }
+ c = (c + dataBlockLength) & ~dataMask;
+ } else {
+ int32_t di = block + (c & dataMask);
+ uint32_t value2 = getValue(trie->data, valueWidth, di);
+ value2 = maybeFilterValue(value2, trie->nullValue, nullValue,
+ filter, context);
+ if (haveValue) {
+ if (value2 != value) {
+ return c - 1;
+ }
+ } else {
+ value = value2;
+ if (pValue != nullptr) { *pValue = value; }
+ haveValue = true;
+ }
+ while ((++c & dataMask) != 0) {
+ if (maybeFilterValue(getValue(trie->data, valueWidth, ++di),
+ trie->nullValue, nullValue,
+ filter, context) != value) {
+ return c - 1;
+ }
+ }
+ }
+ }
+ } while (++i3 < i3BlockLength);
+ } while (c < trie->highStart);
+ U_ASSERT(haveValue);
+ int32_t di = trie->dataLength - UCPTRIE_HIGH_VALUE_NEG_DATA_OFFSET;
+ uint32_t highValue = getValue(trie->data, valueWidth, di);
+ if (maybeFilterValue(highValue, trie->nullValue, nullValue,
+ filter, context) != value) {
+ return c - 1;
+ } else {
+ return MAX_UNICODE;
+ }
+}
+
+} // namespace
+
+U_CFUNC UChar32
+ucptrie_internalGetRange(UCPTrieGetRange *getRange,
+ const void *trie, UChar32 start,
+ UCPMapRangeOption option, uint32_t surrogateValue,
+ UCPMapValueFilter *filter, const void *context, uint32_t *pValue) {
+ if (option == UCPMAP_RANGE_NORMAL) {
+ return getRange(trie, start, filter, context, pValue);
+ }
+ uint32_t value;
+ if (pValue == nullptr) {
+ // We need to examine the range value even if the caller does not want it.
+ pValue = &value;
+ }
+ UChar32 surrEnd = option == UCPMAP_RANGE_FIXED_ALL_SURROGATES ? 0xdfff : 0xdbff;
+ UChar32 end = getRange(trie, start, filter, context, pValue);
+ if (end < 0xd7ff || start > surrEnd) {
+ return end;
+ }
+ // The range overlaps with surrogates, or ends just before the first one.
+ if (*pValue == surrogateValue) {
+ if (end >= surrEnd) {
+ // Surrogates followed by a non-surrogateValue range,
+ // or surrogates are part of a larger surrogateValue range.
+ return end;
+ }
+ } else {
+ if (start <= 0xd7ff) {
+ return 0xd7ff; // Non-surrogateValue range ends before surrogateValue surrogates.
+ }
+ // Start is a surrogate with a non-surrogateValue code *unit* value.
+ // Return a surrogateValue code *point* range.
+ *pValue = surrogateValue;
+ if (end > surrEnd) {
+ return surrEnd; // Surrogate range ends before non-surrogateValue rest of range.
+ }
+ }
+ // See if the surrogateValue surrogate range can be merged with
+ // an immediately following range.
+ uint32_t value2;
+ UChar32 end2 = getRange(trie, surrEnd + 1, filter, context, &value2);
+ if (value2 == surrogateValue) {
+ return end2;
+ }
+ return surrEnd;
+}
+
+U_CAPI UChar32 U_EXPORT2
+ucptrie_getRange(const UCPTrie *trie, UChar32 start,
+ UCPMapRangeOption option, uint32_t surrogateValue,
+ UCPMapValueFilter *filter, const void *context, uint32_t *pValue) {
+ return ucptrie_internalGetRange(getRange, trie, start,
+ option, surrogateValue,
+ filter, context, pValue);
+}
+
+U_CAPI int32_t U_EXPORT2
+ucptrie_toBinary(const UCPTrie *trie,
+ void *data, int32_t capacity,
+ UErrorCode *pErrorCode) {
+ if (U_FAILURE(*pErrorCode)) {
+ return 0;
+ }
+
+ UCPTrieType type = (UCPTrieType)trie->type;
+ UCPTrieValueWidth valueWidth = (UCPTrieValueWidth)trie->valueWidth;
+ if (type < UCPTRIE_TYPE_FAST || UCPTRIE_TYPE_SMALL < type ||
+ valueWidth < UCPTRIE_VALUE_BITS_16 || UCPTRIE_VALUE_BITS_8 < valueWidth ||
+ capacity < 0 ||
+ (capacity > 0 && (data == nullptr || (U_POINTER_MASK_LSB(data, 3) != 0)))) {
+ *pErrorCode = U_ILLEGAL_ARGUMENT_ERROR;
+ return 0;
+ }
+
+ int32_t length = (int32_t)sizeof(UCPTrieHeader) + trie->indexLength * 2;
+ switch (valueWidth) {
+ case UCPTRIE_VALUE_BITS_16:
+ length += trie->dataLength * 2;
+ break;
+ case UCPTRIE_VALUE_BITS_32:
+ length += trie->dataLength * 4;
+ break;
+ case UCPTRIE_VALUE_BITS_8:
+ length += trie->dataLength;
+ break;
+ default:
+ // unreachable
+ break;
+ }
+ if (capacity < length) {
+ *pErrorCode = U_BUFFER_OVERFLOW_ERROR;
+ return length;
+ }
+
+ char *bytes = (char *)data;
+ UCPTrieHeader *header = (UCPTrieHeader *)bytes;
+ header->signature = UCPTRIE_SIG; // "Tri3"
+ header->options = (uint16_t)(
+ ((trie->dataLength & 0xf0000) >> 4) |
+ ((trie->dataNullOffset & 0xf0000) >> 8) |
+ (trie->type << 6) |
+ valueWidth);
+ header->indexLength = (uint16_t)trie->indexLength;
+ header->dataLength = (uint16_t)trie->dataLength;
+ header->index3NullOffset = trie->index3NullOffset;
+ header->dataNullOffset = (uint16_t)trie->dataNullOffset;
+ header->shiftedHighStart = trie->highStart >> UCPTRIE_SHIFT_2;
+ bytes += sizeof(UCPTrieHeader);
+
+ uprv_memcpy(bytes, trie->index, trie->indexLength * 2);
+ bytes += trie->indexLength * 2;
+
+ switch (valueWidth) {
+ case UCPTRIE_VALUE_BITS_16:
+ uprv_memcpy(bytes, trie->data.ptr16, trie->dataLength * 2);
+ break;
+ case UCPTRIE_VALUE_BITS_32:
+ uprv_memcpy(bytes, trie->data.ptr32, trie->dataLength * 4);
+ break;
+ case UCPTRIE_VALUE_BITS_8:
+ uprv_memcpy(bytes, trie->data.ptr8, trie->dataLength);
+ break;
+ default:
+ // unreachable
+ break;
+ }
+ return length;
+}
+
+namespace {
+
+#ifdef UCPTRIE_DEBUG
+long countNull(const UCPTrie *trie) {
+ uint32_t nullValue=trie->nullValue;
+ int32_t length=trie->dataLength;
+ long count=0;
+ switch (trie->valueWidth) {
+ case UCPTRIE_VALUE_BITS_16:
+ for(int32_t i=0; i<length; ++i) {
+ if(trie->data.ptr16[i]==nullValue) { ++count; }
+ }
+ break;
+ case UCPTRIE_VALUE_BITS_32:
+ for(int32_t i=0; i<length; ++i) {
+ if(trie->data.ptr32[i]==nullValue) { ++count; }
+ }
+ break;
+ case UCPTRIE_VALUE_BITS_8:
+ for(int32_t i=0; i<length; ++i) {
+ if(trie->data.ptr8[i]==nullValue) { ++count; }
+ }
+ break;
+ default:
+ // unreachable
+ break;
+ }
+ return count;
+}
+
+U_CFUNC void
+ucptrie_printLengths(const UCPTrie *trie, const char *which) {
+ long indexLength=trie->indexLength;
+ long dataLength=(long)trie->dataLength;
+ long totalLength=(long)sizeof(UCPTrieHeader)+indexLength*2+
+ dataLength*(trie->valueWidth==UCPTRIE_VALUE_BITS_16 ? 2 :
+ trie->valueWidth==UCPTRIE_VALUE_BITS_32 ? 4 : 1);
+ printf("**UCPTrieLengths(%s %s)** index:%6ld data:%6ld countNull:%6ld serialized:%6ld\n",
+ which, trie->name, indexLength, dataLength, countNull(trie), totalLength);
+}
+#endif
+
+} // namespace
+
+// UCPMap ----
+// Initially, this is the same as UCPTrie. This may well change.
+
+U_CAPI uint32_t U_EXPORT2
+ucpmap_get(const UCPMap *map, UChar32 c) {
+ return ucptrie_get(reinterpret_cast<const UCPTrie *>(map), c);
+}
+
+U_CAPI UChar32 U_EXPORT2
+ucpmap_getRange(const UCPMap *map, UChar32 start,
+ UCPMapRangeOption option, uint32_t surrogateValue,
+ UCPMapValueFilter *filter, const void *context, uint32_t *pValue) {
+ return ucptrie_getRange(reinterpret_cast<const UCPTrie *>(map), start,
+ option, surrogateValue,
+ filter, context, pValue);
+}
diff --git a/Build/source/libs/icu/icu-src/source/common/ucptrie_impl.h b/Build/source/libs/icu/icu-src/source/common/ucptrie_impl.h
new file mode 100644
index 00000000000..1fe6a18ac53
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/common/ucptrie_impl.h
@@ -0,0 +1,289 @@
+// © 2017 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// ucptrie_impl.h (modified from utrie2_impl.h)
+// created: 2017dec29 Markus W. Scherer
+
+#ifndef __UCPTRIE_IMPL_H__
+#define __UCPTRIE_IMPL_H__
+
+#include "unicode/ucptrie.h"
+#ifdef UCPTRIE_DEBUG
+#include "unicode/umutablecptrie.h"
+#endif
+
+// UCPTrie signature values, in platform endianness and opposite endianness.
+// The UCPTrie signature ASCII byte values spell "Tri3".
+#define UCPTRIE_SIG 0x54726933
+#define UCPTRIE_OE_SIG 0x33697254
+
+/**
+ * Header data for the binary, memory-mappable representation of a UCPTrie/CodePointTrie.
+ * @internal
+ */
+struct UCPTrieHeader {
+ /** "Tri3" in big-endian US-ASCII (0x54726933) */
+ uint32_t signature;
+
+ /**
+ * Options bit field:
+ * Bits 15..12: Data length bits 19..16.
+ * Bits 11..8: Data null block offset bits 19..16.
+ * Bits 7..6: UCPTrieType
+ * Bits 5..3: Reserved (0).
+ * Bits 2..0: UCPTrieValueWidth
+ */
+ uint16_t options;
+
+ /** Total length of the index tables. */
+ uint16_t indexLength;
+
+ /** Data length bits 15..0. */
+ uint16_t dataLength;
+
+ /** Index-3 null block offset, 0x7fff or 0xffff if none. */
+ uint16_t index3NullOffset;
+
+ /** Data null block offset bits 15..0, 0xfffff if none. */
+ uint16_t dataNullOffset;
+
+ /**
+ * First code point of the single-value range ending with U+10ffff,
+ * rounded up and then shifted right by UCPTRIE_SHIFT_2.
+ */
+ uint16_t shiftedHighStart;
+};
+
+/**
+ * Constants for use with UCPTrieHeader.options.
+ * @internal
+ */
+enum {
+ UCPTRIE_OPTIONS_DATA_LENGTH_MASK = 0xf000,
+ UCPTRIE_OPTIONS_DATA_NULL_OFFSET_MASK = 0xf00,
+ UCPTRIE_OPTIONS_RESERVED_MASK = 0x38,
+ UCPTRIE_OPTIONS_VALUE_BITS_MASK = 7,
+ /**
+ * Value for index3NullOffset which indicates that there is no index-3 null block.
+ * Bit 15 is unused for this value because this bit is used if the index-3 contains
+ * 18-bit indexes.
+ */
+ UCPTRIE_NO_INDEX3_NULL_OFFSET = 0x7fff,
+ UCPTRIE_NO_DATA_NULL_OFFSET = 0xfffff
+};
+
+// Internal constants.
+enum {
+ /** The length of the BMP index table. 1024=0x400 */
+ UCPTRIE_BMP_INDEX_LENGTH = 0x10000 >> UCPTRIE_FAST_SHIFT,
+
+ UCPTRIE_SMALL_LIMIT = 0x1000,
+ UCPTRIE_SMALL_INDEX_LENGTH = UCPTRIE_SMALL_LIMIT >> UCPTRIE_FAST_SHIFT,
+
+ /** Shift size for getting the index-3 table offset. */
+ UCPTRIE_SHIFT_3 = 4,
+
+ /** Shift size for getting the index-2 table offset. */
+ UCPTRIE_SHIFT_2 = 5 + UCPTRIE_SHIFT_3,
+
+ /** Shift size for getting the index-1 table offset. */
+ UCPTRIE_SHIFT_1 = 5 + UCPTRIE_SHIFT_2,
+
+ /**
+ * Difference between two shift sizes,
+ * for getting an index-2 offset from an index-3 offset. 5=9-4
+ */
+ UCPTRIE_SHIFT_2_3 = UCPTRIE_SHIFT_2 - UCPTRIE_SHIFT_3,
+
+ /**
+ * Difference between two shift sizes,
+ * for getting an index-1 offset from an index-2 offset. 5=14-9
+ */
+ UCPTRIE_SHIFT_1_2 = UCPTRIE_SHIFT_1 - UCPTRIE_SHIFT_2,
+
+ /**
+ * Number of index-1 entries for the BMP. (4)
+ * This part of the index-1 table is omitted from the serialized form.
+ */
+ UCPTRIE_OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> UCPTRIE_SHIFT_1,
+
+ /** Number of entries in an index-2 block. 32=0x20 */
+ UCPTRIE_INDEX_2_BLOCK_LENGTH = 1 << UCPTRIE_SHIFT_1_2,
+
+ /** Mask for getting the lower bits for the in-index-2-block offset. */
+ UCPTRIE_INDEX_2_MASK = UCPTRIE_INDEX_2_BLOCK_LENGTH - 1,
+
+ /** Number of code points per index-2 table entry. 512=0x200 */
+ UCPTRIE_CP_PER_INDEX_2_ENTRY = 1 << UCPTRIE_SHIFT_2,
+
+ /** Number of entries in an index-3 block. 32=0x20 */
+ UCPTRIE_INDEX_3_BLOCK_LENGTH = 1 << UCPTRIE_SHIFT_2_3,
+
+ /** Mask for getting the lower bits for the in-index-3-block offset. */
+ UCPTRIE_INDEX_3_MASK = UCPTRIE_INDEX_3_BLOCK_LENGTH - 1,
+
+ /** Number of entries in a small data block. 16=0x10 */
+ UCPTRIE_SMALL_DATA_BLOCK_LENGTH = 1 << UCPTRIE_SHIFT_3,
+
+ /** Mask for getting the lower bits for the in-small-data-block offset. */
+ UCPTRIE_SMALL_DATA_MASK = UCPTRIE_SMALL_DATA_BLOCK_LENGTH - 1
+};
+
+typedef UChar32
+UCPTrieGetRange(const void *trie, UChar32 start,
+ UCPMapValueFilter *filter, const void *context, uint32_t *pValue);
+
+U_CFUNC UChar32
+ucptrie_internalGetRange(UCPTrieGetRange *getRange,
+ const void *trie, UChar32 start,
+ UCPMapRangeOption option, uint32_t surrogateValue,
+ UCPMapValueFilter *filter, const void *context, uint32_t *pValue);
+
+#ifdef UCPTRIE_DEBUG
+U_CFUNC void
+ucptrie_printLengths(const UCPTrie *trie, const char *which);
+
+U_CFUNC void umutablecptrie_setName(UMutableCPTrie *builder, const char *name);
+#endif
+
+/*
+ * Format of the binary, memory-mappable representation of a UCPTrie/CodePointTrie.
+ * For overview information see http://site.icu-project.org/design/struct/utrie
+ *
+ * The binary trie data should be 32-bit-aligned.
+ * The overall layout is:
+ *
+ * UCPTrieHeader header; -- 16 bytes, see struct definition above
+ * uint16_t index[header.indexLength];
+ * uintXY_t data[header.dataLength];
+ *
+ * The trie data array is an array of uint16_t, uint32_t, or uint8_t,
+ * specified via the UCPTrieValueWidth when building the trie.
+ * The data array is 32-bit-aligned for uint32_t, otherwise 16-bit-aligned.
+ * The overall length of the trie data is a multiple of 4 bytes.
+ * (Padding is added at the end of the index array and/or near the end of the data array as needed.)
+ *
+ * The length of the data array (dataLength) is stored as an integer split across two fields
+ * of the header struct (high bits in header.options).
+ *
+ * The trie type can be "fast" or "small" which determines the index structure,
+ * specified via the UCPTrieType when building the trie.
+ *
+ * The type and valueWidth are stored in the header.options.
+ * There are reserved type and valueWidth values, and reserved header.options bits.
+ * They could be used in future format extensions.
+ * Code reading the trie structure must fail with an error when unknown values or options are set.
+ *
+ * Values for ASCII character (U+0000..U+007F) can always be found at the start of the data array.
+ *
+ * Values for code points below a type-specific fast-indexing limit are found via two-stage lookup.
+ * For a "fast" trie, the limit is the BMP/supplementary boundary at U+10000.
+ * For a "small" trie, the limit is UCPTRIE_SMALL_MAX+1=U+1000.
+ *
+ * All code points in the range highStart..U+10FFFF map to a single highValue
+ * which is stored at the second-to-last position of the data array.
+ * (See UCPTRIE_HIGH_VALUE_NEG_DATA_OFFSET.)
+ * The highStart value is header.shiftedHighStart<<UCPTRIE_SHIFT_2.
+ * (UCPTRIE_SHIFT_2=9)
+ *
+ * Values for code points fast_limit..highStart-1 are found via four-stage lookup.
+ * The data block size is smaller for this range than for the fast range.
+ * This together with more index stages with small blocks makes this range
+ * more easily compactable.
+ *
+ * There is also a trie error value stored at the last position of the data array.
+ * (See UCPTRIE_ERROR_VALUE_NEG_DATA_OFFSET.)
+ * It is intended to be returned for inputs that are not Unicode code points
+ * (outside U+0000..U+10FFFF), or in string processing for ill-formed input
+ * (unpaired surrogate in UTF-16, ill-formed UTF-8 subsequence).
+ *
+ * For a "fast" trie:
+ *
+ * The index array starts with the BMP index table for BMP code point lookup.
+ * Its length is 1024=0x400.
+ *
+ * The supplementary index-1 table follows the BMP index table.
+ * Variable length, for code points up to highStart-1.
+ * Maximum length 64=0x40=0x100000>>UCPTRIE_SHIFT_1.
+ * (For 0x100000 supplementary code points U+10000..U+10ffff.)
+ *
+ * After this index-1 table follow the variable-length index-3 and index-2 tables.
+ *
+ * The supplementary index tables are omitted completely
+ * if there is only BMP data (highStart<=U+10000).
+ *
+ * For a "small" trie:
+ *
+ * The index array starts with a fast-index table for lookup of code points U+0000..U+0FFF.
+ *
+ * The "supplementary" index tables are always stored.
+ * The index-1 table starts from U+0000, its maximum length is 68=0x44=0x110000>>UCPTRIE_SHIFT_1.
+ *
+ * For both trie types:
+ *
+ * The last index-2 block may be a partial block, storing indexes only for code points
+ * below highStart.
+ *
+ * Lookup for ASCII code point c:
+ *
+ * Linear access from the start of the data array.
+ *
+ * value = data[c];
+ *
+ * Lookup for fast-range code point c:
+ *
+ * Shift the code point right by UCPTRIE_FAST_SHIFT=6 bits,
+ * fetch the index array value at that offset,
+ * add the lower code point bits, index into the data array.
+ *
+ * value = data[index[c>>6] + (c&0x3f)];
+ *
+ * (This works for ASCII as well.)
+ *
+ * Lookup for small-range code point c below highStart:
+ *
+ * Split the code point into four bit fields using several sets of shifts & masks
+ * to read consecutive values from the index-1, index-2, index-3 and data tables.
+ *
+ * If all of the data block offsets in an index-3 block fit within 16 bits (up to 0xffff),
+ * then the data block offsets are stored directly as uint16_t.
+ *
+ * Otherwise (this is very unusual but possible), the index-2 entry for the index-3 block
+ * has bit 15 (0x8000) set, and each set of 8 index-3 entries is preceded by
+ * an additional uint16_t word. Data block offsets are 18 bits wide, with the top 2 bits stored
+ * in the additional word.
+ *
+ * See ucptrie_internalSmallIndex() for details.
+ *
+ * (In a "small" trie, this works for ASCII and below-fast_limit code points as well.)
+ *
+ * Compaction:
+ *
+ * Multiple code point ranges ("blocks") that are aligned on certain boundaries
+ * (determined by the shifting/bit fields of code points) and
+ * map to the same data values normally share a single subsequence of the data array.
+ * Data blocks can also overlap partially.
+ * (Depending on the builder code finding duplicate and overlapping blocks.)
+ *
+ * Iteration over same-value ranges:
+ *
+ * Range iteration (ucptrie_getRange()) walks the structure from a start code point
+ * until some code point is found that maps to a different value;
+ * the end of the returned range is just before that.
+ *
+ * The header.dataNullOffset (split across two header fields, high bits in header.options)
+ * is the offset of a widely shared data block filled with one single value.
+ * It helps quickly skip over large ranges of data with that value.
+ * The builder must ensure that if the start of any data block (fast or small)
+ * matches the dataNullOffset, then the whole block must be filled with the null value.
+ * Special care must be taken if there is no fast null data block
+ * but a small one, which is shorter, and it matches the *start* of some fast data block.
+ *
+ * Similarly, the header.index3NullOffset is the index-array offset of an index-3 block
+ * where all index entries point to the dataNullOffset.
+ * If there is no such data or index-3 block, then these offsets are set to
+ * values that cannot be reached (data offset out of range/reserved index offset),
+ * normally UCPTRIE_NO_DATA_NULL_OFFSET or UCPTRIE_NO_INDEX3_NULL_OFFSET respectively.
+ */
+
+#endif
diff --git a/Build/source/libs/icu/icu-src/source/common/ucurr.cpp b/Build/source/libs/icu/icu-src/source/common/ucurr.cpp
index 37c3d79e4d1..1062a9f3099 100644
--- a/Build/source/libs/icu/icu-src/source/common/ucurr.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/ucurr.cpp
@@ -16,10 +16,14 @@
#include "unicode/ures.h"
#include "unicode/ustring.h"
#include "unicode/parsepos.h"
+#include "unicode/uniset.h"
+#include "unicode/usetiter.h"
+#include "unicode/utf16.h"
#include "ustr_imp.h"
#include "charstr.h"
#include "cmemory.h"
#include "cstring.h"
+#include "static_unicode_sets.h"
#include "uassert.h"
#include "umutex.h"
#include "ucln_cmn.h"
@@ -65,14 +69,6 @@ static const int32_t POW10[] = { 1, 10, 100, 1000, 10000, 100000,
static const int32_t MAX_POW10 = UPRV_LENGTHOF(POW10) - 1;
-// Defines equivalent currency symbols.
-static const char *EQUIV_CURRENCY_SYMBOLS[][2] = {
- {"\\u00a5", "\\uffe5"},
- {"$", "\\ufe69"},
- {"$", "\\uff04"},
- {"\\u20a8", "\\u20b9"},
- {"\\u00a3", "\\u20a4"}};
-
#define ISO_CURRENCY_CODE_LENGTH 3
//------------------------------------------------------------
@@ -1081,11 +1077,11 @@ collectCurrencyNames(const char* locale,
}
// currency plurals
- UErrorCode ec3 = U_ZERO_ERROR;
- UResourceBundle* curr_p = ures_getByKey(rb, CURRENCYPLURALS, NULL, &ec3);
+ UErrorCode ec5 = U_ZERO_ERROR;
+ UResourceBundle* curr_p = ures_getByKey(rb, CURRENCYPLURALS, NULL, &ec5);
n = ures_getSize(curr_p);
for (int32_t i=0; i<n; ++i) {
- UResourceBundle* names = ures_getByIndex(curr_p, i, NULL, &ec3);
+ UResourceBundle* names = ures_getByIndex(curr_p, i, NULL, &ec5);
iso = (char*)ures_getKey(names);
// Using hash to remove duplicated ISO codes in fallback chain.
if (localeLevel == 0) {
@@ -1103,7 +1099,7 @@ collectCurrencyNames(const char* locale,
for (int32_t j = 0; j < num; ++j) {
// TODO: remove duplicates between singular name and
// currency long name?
- s = ures_getStringByIndex(names, j, &len, &ec3);
+ s = ures_getStringByIndex(names, j, &len, &ec5);
(*currencyNames)[*total_currency_name_count].IsoCode = iso;
UChar* upperName = toUpperCase(s, len, locale);
(*currencyNames)[*total_currency_name_count].currencyName = upperName;
@@ -1287,17 +1283,28 @@ static void
linearSearch(const CurrencyNameStruct* currencyNames,
int32_t begin, int32_t end,
const UChar* text, int32_t textLen,
+ int32_t *partialMatchLen,
int32_t *maxMatchLen, int32_t* maxMatchIndex) {
+ int32_t initialPartialMatchLen = *partialMatchLen;
for (int32_t index = begin; index <= end; ++index) {
int32_t len = currencyNames[index].currencyNameLen;
if (len > *maxMatchLen && len <= textLen &&
uprv_memcmp(currencyNames[index].currencyName, text, len * sizeof(UChar)) == 0) {
+ *partialMatchLen = MAX(*partialMatchLen, len);
*maxMatchIndex = index;
*maxMatchLen = len;
#ifdef UCURR_DEBUG
printf("maxMatchIndex = %d, maxMatchLen = %d\n",
*maxMatchIndex, *maxMatchLen);
#endif
+ } else {
+ // Check for partial matches.
+ for (int32_t i=initialPartialMatchLen; i<MIN(len, textLen); i++) {
+ if (currencyNames[index].currencyName[i] != text[i]) {
+ break;
+ }
+ *partialMatchLen = MAX(*partialMatchLen, i + 1);
+ }
}
}
}
@@ -1314,7 +1321,8 @@ linearSearch(const CurrencyNameStruct* currencyNames,
static void
searchCurrencyName(const CurrencyNameStruct* currencyNames,
int32_t total_currency_count,
- const UChar* text, int32_t textLen,
+ const UChar* text, int32_t textLen,
+ int32_t *partialMatchLen,
int32_t* maxMatchLen, int32_t* maxMatchIndex) {
*maxMatchIndex = -1;
*maxMatchLen = 0;
@@ -1344,6 +1352,7 @@ searchCurrencyName(const CurrencyNameStruct* currencyNames,
if (binarySearchBegin == -1) { // did not find the range
break;
}
+ *partialMatchLen = MAX(*partialMatchLen, index + 1);
if (matchIndex != -1) {
// find an exact match for text from text[0] to text[index]
// in currencyNames array.
@@ -1354,6 +1363,7 @@ searchCurrencyName(const CurrencyNameStruct* currencyNames,
// linear search if within threshold.
linearSearch(currencyNames, binarySearchBegin, binarySearchEnd,
text, textLen,
+ partialMatchLen,
maxMatchLen, maxMatchIndex);
break;
}
@@ -1422,19 +1432,13 @@ currency_cache_cleanup(void) {
}
-U_CAPI void
-uprv_parseCurrency(const char* locale,
- const icu::UnicodeString& text,
- icu::ParsePosition& pos,
- int8_t type,
- UChar* result,
- UErrorCode& ec)
-{
- U_NAMESPACE_USE
-
- if (U_FAILURE(ec)) {
- return;
- }
+/**
+ * Loads the currency name data from the cache, or from resource bundles if necessary.
+ * The refCount is automatically incremented. It is the caller's responsibility
+ * to decrement it when done!
+ */
+static CurrencyNameCacheEntry*
+getCacheEntry(const char* locale, UErrorCode& ec) {
int32_t total_currency_name_count = 0;
CurrencyNameStruct* currencyNames = NULL;
@@ -1445,7 +1449,7 @@ uprv_parseCurrency(const char* locale,
umtx_lock(&gCurrencyCacheMutex);
// in order to handle racing correctly,
// not putting 'search' in a separate function.
- int8_t found = -1;
+ int8_t found = -1;
for (int8_t i = 0; i < CURRENCY_NAME_CACHE_NUM; ++i) {
if (currCache[i]!= NULL &&
uprv_strcmp(locale, currCache[i]->locale) == 0) {
@@ -1455,21 +1459,16 @@ uprv_parseCurrency(const char* locale,
}
if (found != -1) {
cacheEntry = currCache[found];
- currencyNames = cacheEntry->currencyNames;
- total_currency_name_count = cacheEntry->totalCurrencyNameCount;
- currencySymbols = cacheEntry->currencySymbols;
- total_currency_symbol_count = cacheEntry->totalCurrencySymbolCount;
++(cacheEntry->refCount);
}
umtx_unlock(&gCurrencyCacheMutex);
if (found == -1) {
collectCurrencyNames(locale, &currencyNames, &total_currency_name_count, &currencySymbols, &total_currency_symbol_count, ec);
if (U_FAILURE(ec)) {
- return;
+ return NULL;
}
umtx_lock(&gCurrencyCacheMutex);
// check again.
- int8_t found = -1;
for (int8_t i = 0; i < CURRENCY_NAME_CACHE_NUM; ++i) {
if (currCache[i]!= NULL &&
uprv_strcmp(locale, currCache[i]->locale) == 0) {
@@ -1500,20 +1499,50 @@ uprv_parseCurrency(const char* locale,
cacheEntry->totalCurrencySymbolCount = total_currency_symbol_count;
cacheEntry->refCount = 2; // one for cache, one for reference
currentCacheEntryIndex = (currentCacheEntryIndex + 1) % CURRENCY_NAME_CACHE_NUM;
- ucln_common_registerCleanup(UCLN_COMMON_CURRENCY, currency_cache_cleanup);
+ ucln_common_registerCleanup(UCLN_COMMON_CURRENCY, currency_cleanup);
} else {
deleteCurrencyNames(currencyNames, total_currency_name_count);
deleteCurrencyNames(currencySymbols, total_currency_symbol_count);
cacheEntry = currCache[found];
- currencyNames = cacheEntry->currencyNames;
- total_currency_name_count = cacheEntry->totalCurrencyNameCount;
- currencySymbols = cacheEntry->currencySymbols;
- total_currency_symbol_count = cacheEntry->totalCurrencySymbolCount;
++(cacheEntry->refCount);
}
umtx_unlock(&gCurrencyCacheMutex);
}
+ return cacheEntry;
+}
+
+static void releaseCacheEntry(CurrencyNameCacheEntry* cacheEntry) {
+ umtx_lock(&gCurrencyCacheMutex);
+ --(cacheEntry->refCount);
+ if (cacheEntry->refCount == 0) { // remove
+ deleteCacheEntry(cacheEntry);
+ }
+ umtx_unlock(&gCurrencyCacheMutex);
+}
+
+U_CAPI void
+uprv_parseCurrency(const char* locale,
+ const icu::UnicodeString& text,
+ icu::ParsePosition& pos,
+ int8_t type,
+ int32_t* partialMatchLen,
+ UChar* result,
+ UErrorCode& ec) {
+ U_NAMESPACE_USE
+ if (U_FAILURE(ec)) {
+ return;
+ }
+ CurrencyNameCacheEntry* cacheEntry = getCacheEntry(locale, ec);
+ if (U_FAILURE(ec)) {
+ return;
+ }
+
+ int32_t total_currency_name_count = cacheEntry->totalCurrencyNameCount;
+ CurrencyNameStruct* currencyNames = cacheEntry->currencyNames;
+ int32_t total_currency_symbol_count = cacheEntry->totalCurrencySymbolCount;
+ CurrencyNameStruct* currencySymbols = cacheEntry->currencySymbols;
+
int32_t start = pos.getIndex();
UChar inputText[MAX_CURRENCY_NAME_LEN];
@@ -1523,11 +1552,14 @@ uprv_parseCurrency(const char* locale,
UErrorCode ec1 = U_ZERO_ERROR;
textLen = u_strToUpper(upperText, MAX_CURRENCY_NAME_LEN, inputText, textLen, locale, &ec1);
+ // Make sure partialMatchLen is initialized
+ *partialMatchLen = 0;
+
int32_t max = 0;
int32_t matchIndex = -1;
// case in-sensitive comparision against currency names
searchCurrencyName(currencyNames, total_currency_name_count,
- upperText, textLen, &max, &matchIndex);
+ upperText, textLen, partialMatchLen, &max, &matchIndex);
#ifdef UCURR_DEBUG
printf("search in names, max = %d, matchIndex = %d\n", max, matchIndex);
@@ -1538,7 +1570,8 @@ uprv_parseCurrency(const char* locale,
if (type != UCURR_LONG_NAME) { // not name only
// case sensitive comparison against currency symbols and ISO code.
searchCurrencyName(currencySymbols, total_currency_symbol_count,
- inputText, textLen,
+ inputText, textLen,
+ partialMatchLen,
&maxInSymbol, &matchIndexInSymbol);
}
@@ -1555,15 +1588,38 @@ uprv_parseCurrency(const char* locale,
} else if (maxInSymbol >= max && matchIndexInSymbol != -1) {
u_charsToUChars(currencySymbols[matchIndexInSymbol].IsoCode, result, 4);
pos.setIndex(start + maxInSymbol);
- }
+ }
// decrease reference count
- umtx_lock(&gCurrencyCacheMutex);
- --(cacheEntry->refCount);
- if (cacheEntry->refCount == 0) { // remove
- deleteCacheEntry(cacheEntry);
+ releaseCacheEntry(cacheEntry);
+}
+
+void uprv_currencyLeads(const char* locale, icu::UnicodeSet& result, UErrorCode& ec) {
+ U_NAMESPACE_USE
+ if (U_FAILURE(ec)) {
+ return;
}
- umtx_unlock(&gCurrencyCacheMutex);
+ CurrencyNameCacheEntry* cacheEntry = getCacheEntry(locale, ec);
+ if (U_FAILURE(ec)) {
+ return;
+ }
+
+ for (int32_t i=0; i<cacheEntry->totalCurrencySymbolCount; i++) {
+ const CurrencyNameStruct& info = cacheEntry->currencySymbols[i];
+ UChar32 cp;
+ U16_GET(info.currencyName, 0, 0, info.currencyNameLen, cp);
+ result.add(cp);
+ }
+
+ for (int32_t i=0; i<cacheEntry->totalCurrencyNameCount; i++) {
+ const CurrencyNameStruct& info = cacheEntry->currencyNames[i];
+ UChar32 cp;
+ U16_GET(info.currencyName, 0, 0, info.currencyNameLen, cp);
+ result.add(cp);
+ }
+
+ // decrease reference count
+ releaseCacheEntry(cacheEntry);
}
@@ -1729,7 +1785,8 @@ static const struct CurrencyList {
{"BUK", UCURR_COMMON|UCURR_DEPRECATED},
{"BWP", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"BYB", UCURR_COMMON|UCURR_DEPRECATED},
- {"BYR", UCURR_COMMON|UCURR_NON_DEPRECATED},
+ {"BYN", UCURR_COMMON|UCURR_NON_DEPRECATED},
+ {"BYR", UCURR_COMMON|UCURR_DEPRECATED},
{"BZD", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"CAD", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"CDF", UCURR_COMMON|UCURR_NON_DEPRECATED},
@@ -1739,6 +1796,7 @@ static const struct CurrencyList {
{"CLE", UCURR_COMMON|UCURR_DEPRECATED},
{"CLF", UCURR_UNCOMMON|UCURR_NON_DEPRECATED},
{"CLP", UCURR_COMMON|UCURR_NON_DEPRECATED},
+ {"CNH", UCURR_UNCOMMON|UCURR_NON_DEPRECATED},
{"CNX", UCURR_UNCOMMON|UCURR_DEPRECATED},
{"CNY", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"COP", UCURR_COMMON|UCURR_NON_DEPRECATED},
@@ -1761,7 +1819,7 @@ static const struct CurrencyList {
{"ECV", UCURR_UNCOMMON|UCURR_DEPRECATED},
{"EEK", UCURR_COMMON|UCURR_DEPRECATED},
{"EGP", UCURR_COMMON|UCURR_NON_DEPRECATED},
- {"EQE", UCURR_COMMON|UCURR_DEPRECATED},
+ {"EQE", UCURR_COMMON|UCURR_DEPRECATED}, // questionable, remove?
{"ERN", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"ESA", UCURR_UNCOMMON|UCURR_DEPRECATED},
{"ESB", UCURR_UNCOMMON|UCURR_DEPRECATED},
@@ -1785,7 +1843,7 @@ static const struct CurrencyList {
{"GRD", UCURR_COMMON|UCURR_DEPRECATED},
{"GTQ", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"GWE", UCURR_COMMON|UCURR_DEPRECATED},
- {"GWP", UCURR_COMMON|UCURR_NON_DEPRECATED},
+ {"GWP", UCURR_COMMON|UCURR_DEPRECATED},
{"GYD", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"HKD", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"HNL", UCURR_COMMON|UCURR_NON_DEPRECATED},
@@ -1823,13 +1881,13 @@ static const struct CurrencyList {
{"LKR", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"LRD", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"LSL", UCURR_COMMON|UCURR_NON_DEPRECATED},
- {"LSM", UCURR_COMMON|UCURR_DEPRECATED},
- {"LTL", UCURR_COMMON|UCURR_NON_DEPRECATED},
+ {"LSM", UCURR_COMMON|UCURR_DEPRECATED}, // questionable, remove?
+ {"LTL", UCURR_COMMON|UCURR_DEPRECATED},
{"LTT", UCURR_COMMON|UCURR_DEPRECATED},
{"LUC", UCURR_UNCOMMON|UCURR_DEPRECATED},
{"LUF", UCURR_COMMON|UCURR_DEPRECATED},
{"LUL", UCURR_UNCOMMON|UCURR_DEPRECATED},
- {"LVL", UCURR_COMMON|UCURR_NON_DEPRECATED},
+ {"LVL", UCURR_COMMON|UCURR_DEPRECATED},
{"LVR", UCURR_COMMON|UCURR_DEPRECATED},
{"LYD", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"MAD", UCURR_COMMON|UCURR_NON_DEPRECATED},
@@ -1845,18 +1903,19 @@ static const struct CurrencyList {
{"MMK", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"MNT", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"MOP", UCURR_COMMON|UCURR_NON_DEPRECATED},
- {"MRO", UCURR_COMMON|UCURR_NON_DEPRECATED},
+ {"MRO", UCURR_COMMON|UCURR_DEPRECATED},
+ {"MRU", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"MTL", UCURR_COMMON|UCURR_DEPRECATED},
{"MTP", UCURR_COMMON|UCURR_DEPRECATED},
{"MUR", UCURR_COMMON|UCURR_NON_DEPRECATED},
- {"MVP", UCURR_COMMON|UCURR_DEPRECATED},
+ {"MVP", UCURR_COMMON|UCURR_DEPRECATED}, // questionable, remove?
{"MVR", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"MWK", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"MXN", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"MXP", UCURR_COMMON|UCURR_DEPRECATED},
{"MXV", UCURR_UNCOMMON|UCURR_NON_DEPRECATED},
{"MYR", UCURR_COMMON|UCURR_NON_DEPRECATED},
- {"MZE", UCURR_COMMON|UCURR_NON_DEPRECATED},
+ {"MZE", UCURR_COMMON|UCURR_DEPRECATED},
{"MZM", UCURR_COMMON|UCURR_DEPRECATED},
{"MZN", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"NAD", UCURR_COMMON|UCURR_NON_DEPRECATED},
@@ -1897,15 +1956,16 @@ static const struct CurrencyList {
{"SGD", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"SHP", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"SIT", UCURR_COMMON|UCURR_DEPRECATED},
- {"SKK", UCURR_COMMON|UCURR_NON_DEPRECATED},
+ {"SKK", UCURR_COMMON|UCURR_DEPRECATED},
{"SLL", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"SOS", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"SRD", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"SRG", UCURR_COMMON|UCURR_DEPRECATED},
{"SSP", UCURR_COMMON|UCURR_NON_DEPRECATED},
- {"STD", UCURR_COMMON|UCURR_NON_DEPRECATED},
+ {"STD", UCURR_COMMON|UCURR_DEPRECATED},
+ {"STN", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"SUR", UCURR_COMMON|UCURR_DEPRECATED},
- {"SVC", UCURR_COMMON|UCURR_NON_DEPRECATED},
+ {"SVC", UCURR_COMMON|UCURR_DEPRECATED},
{"SYP", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"SZL", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"THB", UCURR_COMMON|UCURR_NON_DEPRECATED},
@@ -1954,7 +2014,7 @@ static const struct CurrencyList {
{"XPD", UCURR_UNCOMMON|UCURR_NON_DEPRECATED},
{"XPF", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"XPT", UCURR_UNCOMMON|UCURR_NON_DEPRECATED},
- {"XRE", UCURR_UNCOMMON|UCURR_NON_DEPRECATED},
+ {"XRE", UCURR_UNCOMMON|UCURR_DEPRECATED},
{"XSU", UCURR_UNCOMMON|UCURR_NON_DEPRECATED},
{"XTS", UCURR_UNCOMMON|UCURR_NON_DEPRECATED},
{"XUA", UCURR_UNCOMMON|UCURR_NON_DEPRECATED},
@@ -1965,15 +2025,15 @@ static const struct CurrencyList {
{"YUM", UCURR_COMMON|UCURR_DEPRECATED},
{"YUN", UCURR_COMMON|UCURR_DEPRECATED},
{"YUR", UCURR_COMMON|UCURR_DEPRECATED},
- {"ZAL", UCURR_UNCOMMON|UCURR_NON_DEPRECATED},
+ {"ZAL", UCURR_UNCOMMON|UCURR_DEPRECATED},
{"ZAR", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"ZMK", UCURR_COMMON|UCURR_DEPRECATED},
{"ZMW", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"ZRN", UCURR_COMMON|UCURR_DEPRECATED},
{"ZRZ", UCURR_COMMON|UCURR_DEPRECATED},
+ {"ZWD", UCURR_COMMON|UCURR_DEPRECATED},
{"ZWL", UCURR_COMMON|UCURR_DEPRECATED},
{"ZWR", UCURR_COMMON|UCURR_DEPRECATED},
- {"ZWD", UCURR_COMMON|UCURR_DEPRECATED},
{ NULL, 0 } // Leave here to denote the end of the list.
};
@@ -2144,16 +2204,20 @@ static void U_CALLCONV initIsoCodes(UErrorCode &status) {
}
static void populateCurrSymbolsEquiv(icu::Hashtable *hash, UErrorCode &status) {
- if (U_FAILURE(status)) {
- return;
- }
- int32_t length = UPRV_LENGTHOF(EQUIV_CURRENCY_SYMBOLS);
- for (int32_t i = 0; i < length; ++i) {
- icu::UnicodeString lhs(EQUIV_CURRENCY_SYMBOLS[i][0], -1, US_INV);
- icu::UnicodeString rhs(EQUIV_CURRENCY_SYMBOLS[i][1], -1, US_INV);
- makeEquivalent(lhs.unescape(), rhs.unescape(), hash, status);
- if (U_FAILURE(status)) {
- return;
+ if (U_FAILURE(status)) { return; }
+ for (auto& entry : unisets::kCurrencyEntries) {
+ UnicodeString exemplar(entry.exemplar);
+ const UnicodeSet* set = unisets::get(entry.key);
+ if (set == nullptr) { return; }
+ UnicodeSetIterator it(*set);
+ while (it.next()) {
+ UnicodeString value = it.getString();
+ if (value == exemplar) {
+ // No need to mark the exemplar character as an equivalent
+ continue;
+ }
+ makeEquivalent(exemplar, value, hash, status);
+ if (U_FAILURE(status)) { return; }
}
}
}
diff --git a/Build/source/libs/icu/icu-src/source/common/ucurrimp.h b/Build/source/libs/icu/icu-src/source/common/ucurrimp.h
index 6e468fd4c94..6d9588295df 100644
--- a/Build/source/libs/icu/icu-src/source/common/ucurrimp.h
+++ b/Build/source/libs/icu/icu-src/source/common/ucurrimp.h
@@ -13,6 +13,7 @@
#include "unicode/utypes.h"
#include "unicode/unistr.h"
#include "unicode/parsepos.h"
+#include "unicode/uniset.h"
/**
* Internal method. Given a currency ISO code and a locale, return
@@ -36,6 +37,8 @@ uprv_getStaticCurrencyName(const UChar* iso, const char* loc,
* match, then the display name is preferred, unless it's length
* is less than 3.
*
+ * The parameters must not be NULL.
+ *
* @param locale the locale of the display names to match
* @param text the text to parse
* @param pos input-output position; on input, the position within
@@ -43,6 +46,8 @@ uprv_getStaticCurrencyName(const UChar* iso, const char* loc,
* on output, the position after the last matched character. If
* the parse fails, the position in unchanged upon output.
* @param type currency type to parse against, LONG_NAME only or not
+ * @param partialMatchLen The length of the longest matching prefix;
+ * this may be nonzero even if no full currency was matched.
* @return the ISO 4217 code, as a string, of the best match, or
* null if there is no match
*
@@ -53,9 +58,21 @@ uprv_parseCurrency(const char* locale,
const icu::UnicodeString& text,
icu::ParsePosition& pos,
int8_t type,
+ int32_t* partialMatchLen,
UChar* result,
UErrorCode& ec);
+/**
+ * Puts all possible first-characters of a currency into the
+ * specified UnicodeSet.
+ *
+ * @param locale the locale of the display names of interest
+ * @param result the UnicodeSet to which to add the starting characters
+ */
+void uprv_currencyLeads(const char* locale, icu::UnicodeSet& result, UErrorCode& ec);
+
+
+
#endif /* #ifndef _UCURR_IMP_H_ */
//eof
diff --git a/Build/source/libs/icu/icu-src/source/common/udata.cpp b/Build/source/libs/icu/icu-src/source/common/udata.cpp
index 3cb8863f6c3..efcd2a2f975 100644
--- a/Build/source/libs/icu/icu-src/source/common/udata.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/udata.cpp
@@ -418,7 +418,8 @@ private:
const char *path; /* working path (u_icudata_Dir) */
const char *nextPath; /* path following this one */
const char *basename; /* item's basename (icudt22e_mt.res)*/
- const char *suffix; /* item suffix (can be null) */
+
+ StringPiece suffix; /* item suffix (can be null) */
uint32_t basenameLen; /* length of basename */
@@ -432,13 +433,15 @@ private:
};
/**
- * @param iter The iterator to be initialized. Its current state does not matter.
- * @param path The full pathname to be iterated over. If NULL, defaults to U_ICUDATA_NAME
- * @param pkg Package which is being searched for, ex "icudt28l". Will ignore leave directories such as /icudt28l
- * @param item Item to be searched for. Can include full path, such as /a/b/foo.dat
- * @param suffix Optional item suffix, if not-null (ex. ".dat") then 'path' can contain 'item' explicitly.
- * Ex: 'stuff.dat' would be found in '/a/foo:/tmp/stuff.dat:/bar/baz' as item #2.
- * '/blarg/stuff.dat' would also be found.
+ * @param iter The iterator to be initialized. Its current state does not matter.
+ * @param inPath The full pathname to be iterated over. If NULL, defaults to U_ICUDATA_NAME
+ * @param pkg Package which is being searched for, ex "icudt28l". Will ignore leaf directories such as /icudt28l
+ * @param item Item to be searched for. Can include full path, such as /a/b/foo.dat
+ * @param inSuffix Optional item suffix, if not-null (ex. ".dat") then 'path' can contain 'item' explicitly.
+ * Ex: 'stuff.dat' would be found in '/a/foo:/tmp/stuff.dat:/bar/baz' as item #2.
+ * '/blarg/stuff.dat' would also be found.
+ * Note: inSuffix may also be the 'item' being searched for as well, (ex: "ibm-5348_P100-1997.cnv"), in which case
+ * the 'item' parameter is often the same as pkg. (Though sometimes might have a tree part as well, ex: "icudt62l-curr").
*/
UDataPathIterator::UDataPathIterator(const char *inPath, const char *pkg,
const char *item, const char *inSuffix, UBool doCheckLastFour,
@@ -566,7 +569,7 @@ const char *UDataPathIterator::next(UErrorCode *pErrorCode)
if(checkLastFour == TRUE &&
(pathLen>=4) &&
- uprv_strncmp(pathBuffer.data() +(pathLen-4), suffix, 4)==0 && /* suffix matches */
+ uprv_strncmp(pathBuffer.data() +(pathLen-4), suffix.data(), 4)==0 && /* suffix matches */
uprv_strncmp(findBasename(pathBuffer.data()), basename, basenameLen)==0 && /* base matches */
uprv_strlen(pathBasename)==(basenameLen+4)) { /* base+suffix = full len */
@@ -602,8 +605,13 @@ const char *UDataPathIterator::next(UErrorCode *pErrorCode)
/* + basename */
pathBuffer.append(packageStub.data()+1, packageStub.length()-1, *pErrorCode);
- if(*suffix) /* tack on suffix */
+ if (!suffix.empty()) /* tack on suffix */
{
+ if (suffix.length() > 4) {
+ // If the suffix is actually an item ("ibm-5348_P100-1997.cnv") and not an extension (".res")
+ // then we need to ensure that the path ends with a separator.
+ pathBuffer.ensureEndsWithFileSeparator(*pErrorCode);
+ }
pathBuffer.append(suffix, *pErrorCode);
}
}
@@ -751,16 +759,19 @@ openCommonData(const char *path, /* Path from OpenChoice? */
UDataPathIterator iter(u_getDataDirectory(), inBasename, path, ".dat", TRUE, pErrorCode);
- while((UDataMemory_isLoaded(&tData)==FALSE) && (pathBuffer = iter.next(pErrorCode)) != NULL)
+ while ((UDataMemory_isLoaded(&tData)==FALSE) && (pathBuffer = iter.next(pErrorCode)) != NULL)
{
#ifdef UDATA_DEBUG
fprintf(stderr, "ocd: trying path %s - ", pathBuffer);
#endif
- uprv_mapFile(&tData, pathBuffer);
+ uprv_mapFile(&tData, pathBuffer, pErrorCode);
#ifdef UDATA_DEBUG
fprintf(stderr, "%s\n", UDataMemory_isLoaded(&tData)?"LOADED":"not loaded");
#endif
}
+ if (U_FAILURE(*pErrorCode)) {
+ return NULL;
+ }
#if defined(OS390_STUBDATA) && defined(OS390BATCH)
if (!UDataMemory_isLoaded(&tData)) {
@@ -769,7 +780,7 @@ openCommonData(const char *path, /* Path from OpenChoice? */
uprv_strncpy(ourPathBuffer, path, 1019);
ourPathBuffer[1019]=0;
uprv_strcat(ourPathBuffer, ".dat");
- uprv_mapFile(&tData, ourPathBuffer);
+ uprv_mapFile(&tData, ourPathBuffer, pErrorCode);
}
#endif
@@ -860,7 +871,7 @@ static UBool extendICUData(UErrorCode *pErr)
umtx_unlock(&extendICUDataMutex);
#endif
return didUpdate; /* Return true if ICUData pointer was updated. */
- /* (Could potentialy have been done by another thread racing */
+ /* (Could potentially have been done by another thread racing */
/* us through here, but that's fine, we still return true */
/* so that current thread will also examine extended data. */
}
@@ -986,12 +997,12 @@ static UDataMemory *doLoadFromIndividualFiles(const char *pkgName,
/* init path iterator for individual files */
UDataPathIterator iter(dataPath, pkgName, path, tocEntryPathSuffix, FALSE, pErrorCode);
- while((pathBuffer = iter.next(pErrorCode)) != NULL)
+ while ((pathBuffer = iter.next(pErrorCode)) != NULL)
{
#ifdef UDATA_DEBUG
fprintf(stderr, "UDATA: trying individual file %s\n", pathBuffer);
#endif
- if(uprv_mapFile(&dataMemory, pathBuffer))
+ if (uprv_mapFile(&dataMemory, pathBuffer, pErrorCode))
{
pEntryData = checkDataItem(dataMemory.pHeader, isAcceptable, context, type, name, subErrorCode, pErrorCode);
if (pEntryData != NULL) {
@@ -1007,7 +1018,7 @@ static UDataMemory *doLoadFromIndividualFiles(const char *pkgName,
return pEntryData;
}
- /* the data is not acceptable, or some error occured. Either way, unmap the memory */
+ /* the data is not acceptable, or some error occurred. Either way, unmap the memory */
udata_close(&dataMemory);
/* If we had a nasty error, bail out completely. */
@@ -1076,6 +1087,11 @@ static UDataMemory *doLoadFromCommonData(UBool isICUData, const char * /*pkgName
}
}
}
+ // If we failed due to being out-of-memory, then stop early and report the error.
+ if (*subErrorCode == U_MEMORY_ALLOCATION_ERROR) {
+ *pErrorCode = *subErrorCode;
+ return NULL;
+ }
/* Data wasn't found. If we were looking for an ICUData item and there is
* more data available, load it and try again,
* otherwise break out of this loop. */
@@ -1252,7 +1268,8 @@ doOpenChoice(const char *path, const char *type, const char *name,
tocEntryName.append(".", *pErrorCode).append(type, *pErrorCode);
tocEntryPath.append(".", *pErrorCode).append(type, *pErrorCode);
}
- tocEntryPathSuffix = tocEntryPath.data()+tocEntrySuffixIndex; /* suffix starts here */
+ // The +1 is for the U_FILE_SEP_CHAR that is always appended above.
+ tocEntryPathSuffix = tocEntryPath.data() + tocEntrySuffixIndex + 1; /* suffix starts here */
#ifdef UDATA_DEBUG
fprintf(stderr, " tocEntryName = %s\n", tocEntryName.data());
diff --git a/Build/source/libs/icu/icu-src/source/common/udataswp.h b/Build/source/libs/icu/icu-src/source/common/udataswp.h
index 5303870b1d3..5e7b043c4c9 100644
--- a/Build/source/libs/icu/icu-src/source/common/udataswp.h
+++ b/Build/source/libs/icu/icu-src/source/common/udataswp.h
@@ -333,6 +333,43 @@ uprv_compareInvEbcdic(const UDataSwapper *ds,
# error Unknown charset family!
#endif
+// utrie_swap.cpp -----------------------------------------------------------***
+
+/**
+ * Swaps a serialized UTrie.
+ * @internal
+ */
+U_CAPI int32_t U_EXPORT2
+utrie_swap(const UDataSwapper *ds,
+ const void *inData, int32_t length, void *outData,
+ UErrorCode *pErrorCode);
+
+/**
+ * Swaps a serialized UTrie2.
+ * @internal
+ */
+U_CAPI int32_t U_EXPORT2
+utrie2_swap(const UDataSwapper *ds,
+ const void *inData, int32_t length, void *outData,
+ UErrorCode *pErrorCode);
+
+/**
+ * Swaps a serialized UCPTrie.
+ * @internal
+ */
+U_CAPI int32_t U_EXPORT2
+ucptrie_swap(const UDataSwapper *ds,
+ const void *inData, int32_t length, void *outData,
+ UErrorCode *pErrorCode);
+
+/**
+ * Swaps a serialized UTrie, UTrie2, or UCPTrie.
+ * @internal
+ */
+U_CAPI int32_t U_EXPORT2
+utrie_swapAnyVersion(const UDataSwapper *ds,
+ const void *inData, int32_t length, void *outData,
+ UErrorCode *pErrorCode);
/* material... -------------------------------------------------------------- */
diff --git a/Build/source/libs/icu/icu-src/source/common/uhash.cpp b/Build/source/libs/icu/icu-src/source/common/uhash.cpp
index a80e7b8ff27..239997d05d7 100644
--- a/Build/source/libs/icu/icu-src/source/common/uhash.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/uhash.cpp
@@ -218,7 +218,7 @@ _uhash_allocate(UHashtable *hash,
U_ASSERT(primeIndex >= 0 && primeIndex < PRIMES_LENGTH);
- hash->primeIndex = primeIndex;
+ hash->primeIndex = static_cast<int8_t>(primeIndex);
hash->length = PRIMES[primeIndex];
p = hash->elements = (UHashElement*)
@@ -860,13 +860,13 @@ uhash_hashUChars(const UHashTok key) {
U_CAPI int32_t U_EXPORT2
uhash_hashChars(const UHashTok key) {
const char *s = (const char *)key.pointer;
- return s == NULL ? 0 : static_cast<int32_t>(ustr_hashCharsN(s, uprv_strlen(s)));
+ return s == NULL ? 0 : static_cast<int32_t>(ustr_hashCharsN(s, static_cast<int32_t>(uprv_strlen(s))));
}
U_CAPI int32_t U_EXPORT2
uhash_hashIChars(const UHashTok key) {
const char *s = (const char *)key.pointer;
- return s == NULL ? 0 : ustr_hashICharsN(s, uprv_strlen(s));
+ return s == NULL ? 0 : ustr_hashICharsN(s, static_cast<int32_t>(uprv_strlen(s)));
}
U_CAPI UBool U_EXPORT2
diff --git a/Build/source/libs/icu/icu-src/source/common/uinvchar.h b/Build/source/libs/icu/icu-src/source/common/uinvchar.h
index c4f9f88b9ad..56dddfa8fde 100644
--- a/Build/source/libs/icu/icu-src/source/common/uinvchar.h
+++ b/Build/source/libs/icu/icu-src/source/common/uinvchar.h
@@ -53,22 +53,6 @@ uprv_isInvariantString(const char *s, int32_t length);
U_INTERNAL UBool U_EXPORT2
uprv_isInvariantUString(const UChar *s, int32_t length);
-#ifdef __cplusplus
-
-/**
- * Check if a UnicodeString only contains invariant characters.
- * See utypes.h for details.
- *
- * @param s Input string.
- * @return TRUE if s contains only invariant characters.
- */
-U_INTERNAL inline UBool U_EXPORT2
-uprv_isInvariantUnicodeString(const icu::UnicodeString &s) {
- return uprv_isInvariantUString(icu::toUCharPtr(s.getBuffer()), s.length());
-}
-
-#endif /* __cplusplus */
-
/**
* \def U_UPPER_ORDINAL
* Get the ordinal number of an uppercase invariant character
diff --git a/Build/source/libs/icu/icu-src/source/common/ulayout_props_data.h b/Build/source/libs/icu/icu-src/source/common/ulayout_props_data.h
new file mode 100644
index 00000000000..f42d15fc830
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/common/ulayout_props_data.h
@@ -0,0 +1,722 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+//
+// file name: ulayout_props_data.h
+//
+// machine-generated by: icu/tools/unicode/c/genprops/layoutpropsbuilder.cpp
+
+
+#ifdef INCLUDED_FROM_UPROPS_CPP
+
+static const int32_t maxInPCValue = 14;
+
+static const uint16_t inpc_trieIndex[765]={
+0,0x40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x80,0xc0,0xff,0x13f,0x17e,0x1be,0x17e,0x1fe,0x23e,0x27e,0x2bc,0x2fc,
+0x33c,0x37b,0x23e,0x3bb,0x3fb,0x439,0x477,0x4ad,0x4e1,0x521,0x531,0x571,0x599,0x5d9,0x619,0x656,
+0x2b7,0x2c6,0x2d2,0x2c6,0x2ed,0,0x10,0x20,0x30,0x40,0x50,0x60,0x70,0,0x10,0x20,
+0x30,0,0x10,0x20,0x30,0,0x10,0x20,0x30,0,0x10,0x20,0x30,0,0x10,0x20,
+0x30,0,0x10,0x20,0x30,0,0x10,0x20,0x30,0,0x10,0x20,0x30,0x80,0x90,0xa0,
+0xb0,0xc0,0xd0,0xe0,0xf0,0xff,0x10f,0x11f,0x12f,0x13f,0x14f,0x15f,0x16f,0x17e,0x18e,0x19e,
+0x1ae,0x1be,0x1ce,0x1de,0x1ee,0x17e,0x18e,0x19e,0x1ae,0x1fe,0x20e,0x21e,0x22e,0x23e,0x24e,0x25e,
+0x26e,0x27e,0x28e,0x29e,0x2ae,0x2bc,0x2cc,0x2dc,0x2ec,0x2fc,0x30c,0x31c,0x32c,0x33c,0x34c,0x35c,
+0x36c,0x37b,0x38b,0x39b,0x3ab,0x23e,0x24e,0x25e,0x26e,0x3bb,0x3cb,0x3db,0x3eb,0x3fb,0x40b,0x41b,
+0x42b,0x439,0x449,0x459,0x469,0x477,0x487,0x497,0x4a7,0x4ad,0x4bd,0x4cd,0x4dd,0x4e1,0x4f1,0x501,
+0x511,0x521,0x531,0x541,0x551,0x531,0x541,0x551,0x561,0x571,0x581,0x591,0x5a1,0x599,0x5a9,0x5b9,
+0x5c9,0x5d9,0x5e9,0x5f9,0x609,0x619,0x629,0x639,0x649,0x656,0x666,0x676,0x686,0,0,0x68b,
+0x69a,0,0x6a9,0x6b8,0x6c7,0x6d5,0x6e5,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0x6f3,0,0x6f3,
+0,0x701,0,0x701,0,0,0,0x70b,0x71b,0x729,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x739,0x749,0,0,
+0,0,0,0,0,0x759,0x768,0,0,0,0x772,0,0,0,0x77e,0x78d,
+0x79b,0,0,0,0,0,0,0,0,0x7ab,0,0,0x7b7,0x7c7,0,0x7cc,
+0x52c,0x81,0,0x7dc,0,0,0,0x7ea,0x3fb,0,0,0x7fa,0x807,0,0,0,
+0,0,0,0,0,0,0x817,0x827,0x835,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x2b3,0x83f,0,0x84c,0,0,0,0,
+0,0x101,0,0,0x858,0x864,0,0x874,0x882,0,0,0x892,0,0x8a0,0x3fb,0,
+0,0x80,0,0,0x8b0,0x8c0,0,0x2b9,0,0,0x8c7,0x8d6,0x8e3,0,0,0x8f1,
+0,0,0,0x901,0x2bd,0,0x911,0x151,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0x921,0,0x930,0,0,0x940,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x950,0,0,0x958,0x966,0,0,0,
+0x81,0,0,0x976,0,0,0,0,0x52d,0,0x981,0x991,0x3cb,0,0,0x659,
+0x81,0,0,0x99e,0x9ae,0,0,0,0x9bb,0x9cb,0,0,0,0,0,0,
+0,0,0,0x71,0x9db,0,0xff,0,0,0x9e6,0x9f6,0x14f,0xa04,0x52b,0,0,
+0,0,0,0,0,0,0x99c,0xa14,0x16f,0,0,0,0,0,0xa24,0xa33,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0x2eb,0xa43,0xe3,
+0x214,0,0,0,0xa53,0x2be,0,0,0,0,0,0xa63,0xa73,0,0,0,
+0,0,0xa7b,0xa8b,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0xa97,0xaa6,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xab5,
+0,0,0xac2,0,0xad1,0,0,0xadd,0xae7,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x2eb,
+0xaf7,0,0,0,0,0,0xb07,0xb0f,0xb1e,0,0,0,0,0,0,0,
+0xb2d,0xb3c,0,0,0,0xb44,0xb54,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0xb61,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0x45,0x4d,0x4d,0x4d,0x5d,0x7d,0x9d,0xbd,0xdd,
+2,2,0xec,0x10a,0x129,0x149,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,0x169,0x188,2,2,2,2,2,2,2,2,
+2,2,0x1a8,2,2,0x1c8,0x1e6,0x203,0x221,0x23f,0x25f,0x27d,0x297
+};
+
+static const uint8_t inpc_trieData[2930]={
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+8,8,8,7,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,8,7,1,0,7,4,
+7,1,1,1,1,8,8,8,8,7,7,7,7,1,4,7,
+0,8,1,8,8,8,1,1,0,0,0,0,0,0,0,0,
+0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+8,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,1,0,7,4,7,
+1,1,1,1,0,0,4,4,0,0,5,5,1,0,0,0,
+0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,
+0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,8,
+8,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,1,0,7,4,7,1,
+1,0,0,0,0,8,8,0,0,8,8,1,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,
+0,0,0,1,0,0,0,0,0,0,0,0,0,0,7,1,
+1,1,1,8,0,8,8,0xd,0,7,7,1,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,8,8,8,8,8,8,0,8,
+7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,1,0,7,8,7,1,
+1,1,1,0,0,4,0xb,0,0,5,0xc,1,0,0,0,0,
+0,0,0,0,8,0xd,0,0,0,0,0,0,0,0,0,0,
+1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,7,7,8,7,7,0,
+0,0,4,4,4,0,5,5,5,8,0,0,0,0,0,0,
+0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,8,7,7,7,
+8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,8,8,7,7,7,7,
+0,8,8,9,0,8,8,8,8,0,0,0,0,0,0,0,
+8,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0xd,7,7,7,7,
+0,8,0xd,0xd,0,0xd,0xd,8,8,0,0,0,0,0,0,0,
+7,7,0,0,0,0,0,0,0,0,0,0,0,1,1,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,8,8,7,7,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,8,8,0,7,7,7,1,1,0,4,
+4,4,0,5,5,5,8,0,0,0,0,0,0,0,0,0,
+7,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,8,0,0,0,0,7,7,7,8,
+8,1,0,1,0,7,4,0xb,4,5,0xc,5,7,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,
+7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,7,8,7,7,8,8,8,8,1,1,1,0,0,0,0,
+0,0xe,0xe,0xe,0xe,0xe,7,0,8,8,8,8,8,8,8,8,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,7,8,7,7,8,8,8,8,1,1,0,8,1,0,0,
+0,0xe,0xe,0xe,0xe,0xe,0,0,0,8,8,8,8,8,8,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,
+1,0,8,0,0,0,0,7,4,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,1,8,9,1,1,9,
+9,9,9,8,8,8,8,8,7,8,9,8,8,1,0,8,
+8,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,
+1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0,0,0,0,0,0,1,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,7,7,8,8,1,4,8,8,8,8,
+8,1,7,0,8,7,0,1,1,0,0,0,0,0,0,7,
+7,1,1,0,0,0,0,1,1,0,7,7,7,0,0,7,
+7,7,7,7,7,7,0,0,8,8,8,8,0,0,0,0,
+0,0,0,0,0,0,0,1,7,4,8,8,7,7,7,7,
+7,7,1,0,7,0,0,0,0,0,0,0,0,0,0,7,
+7,7,8,0,0,8,1,1,0,0,0,0,0,0,0,0,
+0,0,0,8,1,0,0,0,0,0,0,0,0,0,0,0,
+0,7,8,8,8,8,1,1,1,0xb,0xc,5,4,4,4,5,
+5,8,7,7,8,8,8,8,8,8,8,0,8,0,0,0,
+0,0,0,0,0,0,8,0,0,8,8,1,7,7,0xd,0xd,
+8,8,7,7,7,0,0,0,0,7,7,1,7,7,7,7,
+7,7,1,8,1,0,0,0,0,7,7,7,7,7,0xe,0xe,
+0xe,7,7,0xe,7,7,7,7,7,0,0,0,0,0,0,0,
+7,7,0,0,0,0,0,0,0,8,1,4,7,8,0,0,
+0,0,0,4,1,7,8,8,8,1,1,1,1,0,7,8,
+7,7,8,8,8,8,1,1,8,1,7,4,4,4,8,8,
+8,8,8,8,8,8,8,8,0,0,1,8,8,8,8,7,
+0,0,0,0,0,0,0,0,0,0,0,8,7,8,8,1,
+1,1,3,9,0xa,4,4,5,5,8,0xd,7,0,0,0,0,
+0,0,0,0,0,0,0,8,1,8,8,8,0,7,1,1,
+8,1,4,7,8,8,7,0,1,1,0,0,0,0,0,0,
+8,7,8,8,7,7,7,8,7,8,0,0,0,0,7,7,
+7,4,4,0xb,7,7,1,8,8,8,8,4,4,8,1,0,
+0,0,0,0,0,0,0,8,8,8,0,6,1,1,1,1,
+1,8,8,1,1,1,1,8,7,6,6,6,6,6,6,6,
+0,0,0,0,1,0,0,0,0,8,0,0,7,0,0,0,
+0,0,0,0,0,8,0,0,0,0,8,0,0,0,0,7,
+7,1,8,7,0,0,0,0,0,0,0,0,7,7,7,7,
+7,7,7,7,7,7,7,7,1,8,0,0,0,0,0,0,
+0,0,0,0,8,8,8,8,8,8,8,8,8,8,8,8,
+8,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,
+0,8,0,0,0,0,0,0,0,0,0,0,0,1,1,1,
+0,0,0,0,0,0,0,1,1,1,8,1,1,1,1,8,
+0,0,0,8,7,7,8,8,1,1,4,4,8,7,7,2,
+3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+8,8,8,8,1,8,4,8,1,7,4,1,1,0,0,0,
+0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,8,
+7,0,0,0,0,0,0,0,0,0,0,0,7,8,7,0,
+0,8,7,8,8,1,0xe,0xe,8,8,0xe,7,0xe,0xe,7,8,
+8,0,0,0,0,0,0,0,0,0,0,0,4,1,8,4,
+7,0,0,0,7,7,8,7,7,1,7,7,0,7,1,0,
+0,6,1,1,0,8,6,0,0,0,0,0,1,1,1,8,
+0,0,0,0,0,0,0,0,8,1,1,0,0,0,0,0,
+7,8,7,0,0,0,0,0,0,0,0,0,0,0,0,0,
+8,8,8,8,1,1,1,1,8,8,8,8,8,0,0,0,
+0,0,0,0,0,0,7,4,7,1,1,8,8,7,7,1,
+1,0,0,0,0,0,0,0,8,8,8,1,1,4,8,9,
+9,8,1,1,0,8,0,0,0,0,0,0,0,0,0,0,
+0,7,4,7,1,1,1,1,1,1,8,8,8,0xd,7,0,
+0,0,0,0,0,0,0,1,0,8,1,0,0,0,0,0,
+0,0,0,0,0,0,0,7,7,7,1,8,8,0xd,0xd,8,
+7,8,8,0,0,0,0,0,0,8,0,7,4,7,1,1,
+8,8,8,8,1,1,0,0,0,0,0,0,0,0,0,0,
+0,1,1,0,7,7,8,7,7,7,7,0,0,4,4,0,
+0,5,5,7,0,0,7,7,0,0,8,8,8,8,8,8,
+8,0,0,0,7,7,1,8,8,7,1,0,0,0,0,0,
+0,0,0,0,7,4,7,1,1,1,1,1,1,4,8,0xb,
+5,7,5,8,7,1,1,0,0,0,0,0,0,0,0,0,
+0,0,0,4,7,1,1,1,1,0,0,4,0xb,5,0xc,8,
+8,7,1,7,7,7,1,1,1,1,1,1,8,8,7,7,
+8,7,1,0,0,0,0,0,0,0,0,0,0,0,8,7,
+8,4,7,1,1,8,8,8,8,7,1,0,0,0,0,0,
+0,0,0,0,0,0,0,0,1,0,8,7,7,8,8,1,
+1,4,8,1,8,8,8,0,0,0,0,0,0,0,0,0,
+0,0,0,7,4,7,1,1,1,8,8,8,8,8,7,1,
+1,0,0,0,0,0,8,1,1,8,8,8,8,8,8,1,
+0,0,0,0,0,1,1,8,8,8,8,7,0,1,1,1,
+1,0,8,1,1,8,8,8,7,7,1,1,1,0,0,0,
+0,0,0,0,0,0,0,1,1,1,1,1,1,8,7,8,
+0,0,0,0,0,0,0,8,8,1,1,1,1,1,0,8,
+8,8,8,8,8,7,1,0,0,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,0,7,1,1,1,1,1,1,4,
+1,8,7,8,8,0,0,0,0,0,0,0,0,0,8,8,
+8,8,8,1,0,0,0,8,0,8,8,0,8,8,1,8,
+1,0,0,1,0,0,0,0,0,0,0,0,0,0,7,7,
+7,7,7,0,8,8,0,7,7,8,7,0,0,0,0,0,
+0,0,0,0,8,1,4,7,0,0,0,0,0,0,0,0,
+0,0
+};
+
+static const UCPTrie inpc_trie={
+ inpc_trieIndex,
+ { inpc_trieData },
+ 765, 2930,
+ 0x12000, 0x12,
+ 1, 2,
+ 0, 0,
+ 0x2, 0x0,
+ 0x0,
+};
+
+static const int32_t maxInSCValue = 35;
+
+static const uint16_t insc_trieIndex[834]={
+0,0x40,0x60,0x94,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0xd4,0x112,0x152,0x190,0x1cf,0x20d,0x24c,0x28a,0x2ca,0x308,0x346,0x384,
+0x3c4,0x402,0x441,0x47f,0x4bf,0x4fd,0x53d,0x57d,0x5bc,0x5fc,0x63b,0x67b,0x69b,0x6db,0x71b,0x758,
+0x2f8,0x30b,0x317,0x30b,0x332,0,0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x60,0x70,0x80,
+0x90,0x94,0xa4,0xb4,0xc4,0x40,0x50,0x60,0x70,0x40,0x50,0x60,0x70,0x40,0x50,0x60,
+0x70,0x40,0x50,0x60,0x70,0x40,0x50,0x60,0x70,0x40,0x50,0x60,0x70,0x40,0x50,0x60,
+0x70,0x40,0x50,0x60,0x70,0xd4,0xe4,0xf4,0x104,0x112,0x122,0x132,0x142,0x152,0x162,0x172,
+0x182,0x190,0x1a0,0x1b0,0x1c0,0x1cf,0x1df,0x1ef,0x1ff,0x20d,0x21d,0x22d,0x23d,0x24c,0x25c,0x26c,
+0x27c,0x28a,0x29a,0x2aa,0x2ba,0x2ca,0x2da,0x2ea,0x2fa,0x308,0x318,0x328,0x338,0x346,0x356,0x366,
+0x376,0x384,0x394,0x3a4,0x3b4,0x3c4,0x3d4,0x3e4,0x3f4,0x402,0x412,0x422,0x432,0x441,0x451,0x461,
+0x471,0x47f,0x48f,0x49f,0x4af,0x4bf,0x4cf,0x4df,0x4ef,0x4fd,0x50d,0x51d,0x52d,0x53d,0x54d,0x55d,
+0x56d,0x57d,0x58d,0x59d,0x5ad,0x5bc,0x5cc,0x5dc,0x5ec,0x5fc,0x60c,0x61c,0x62c,0x63b,0x64b,0x65b,
+0x66b,0x67b,0x68b,0x69b,0x6ab,0x69b,0x6ab,0x6bb,0x6cb,0x6db,0x6eb,0x6fb,0x70b,0x71b,0x72b,0x73b,
+0x74b,0x758,0x768,0x778,0x788,0xe9,0xe9,0x798,0x7a3,0x7b3,0x7c3,0x7d2,0x7e1,0x7ef,0x7ff,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x80f,0x81d,0xe6,0x81d,0xe6,0x82d,0x80f,0x83d,0xe9,0xe9,0x84d,
+0x859,0x863,0x872,0x30,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x882,0x16c,0x892,0x8a2,0x22d,0xe9,0x8b2,0x8c2,0xe9,0xe9,0x374,0x8d2,
+0x8e1,0x30,0x40,0x40,0xe9,0x8f1,0xe9,0xe9,0x901,0x90e,0x91e,0x92a,0x30,0x30,0x40,0x40,
+0x40,0x40,0x40,0x40,0x93a,0xe6,0xe9,0x94a,0x956,0x30,0x40,0x40,0x966,0xe9,0x975,0x985,
+0xe9,0xe9,0x995,0x9a5,0xe9,0xe9,0x9b5,0x9c2,0x9d2,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x9e2,0x9f0,0x9fe,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0xa08,0xa14,0xa24,0x40,0x40,0x40,0x40,0x40,0x75a,0xa32,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x74,0x40,0x40,0x40,0xa42,0xe9,0xa4f,
+0x40,0xe9,0xa5f,0xa6d,0xa7c,0xd6,0xe7,0xe9,0xa8c,0xa98,0x30,0xaa8,0xab6,0xac6,0xe9,0xad4,
+0xe9,0xae4,0xaf3,0x40,0x40,0xb03,0xe9,0xe9,0xb12,0x297,0x30,0xb22,0xb32,0xe3,0xe9,0x889,
+0xb42,0xb52,0x30,0xe9,0xb61,0xe9,0xe9,0xe9,0xb71,0xb81,0x40,0xb91,0xba1,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xbb1,0xbc1,0xbce,0x30,0xbde,0xbee,0xe9,
+0xbf8,0x31,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xc08,0xe6,0xe9,
+0x88a,0xc18,0xc26,0xc30,0xc40,0xc50,0xe9,0xe9,0xc60,0x40,0x40,0x40,0x40,0xc70,0xe9,0x88b,
+0xc80,0xc90,0xca0,0xe9,0xcad,0xd5,0xe8,0xe9,0xcbd,0xccd,0x30,0x6ba,0x35,0xe1,0x3eb,0x886,
+0xcdd,0x40,0x40,0x40,0x40,0xced,0x16d,0xcfc,0xdf,0xe9,0xd0c,0xd1c,0x30,0xd2c,0x162,0x172,
+0xd3c,0x308,0xd4c,0xd5c,0x9ed,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xdb,0xe9,0xe9,
+0xd6c,0xd7a,0xd8a,0x40,0x40,0xd99,0xe9,0xe9,0x91f,0xda9,0x30,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0xdb,0xe9,0xff,0xdb9,0xdc9,0xdd1,0x40,0x40,0xdb,0xe9,0xe9,
+0xde1,0xdf1,0x30,0x40,0x40,0xdf,0xe9,0xe01,0xe0e,0x30,0x40,0x40,0x40,0xe9,0xe1e,0xe2e,
+0xe3e,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xdf,0xe9,0x886,
+0xe4e,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xe5e,0xe9,0xe9,
+0xe6b,0xe7b,0xe8b,0xe9,0xe9,0xe97,0xea1,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xeb1,0xe9,0xff,
+0xec1,0xed1,0x6bb,0xee1,0x555,0xe9,0xeef,0x72b,0xeff,0x40,0x40,0x40,0x40,0xf0f,0xe9,0xe9,
+0xf1e,0xf2e,0x30,0xf3e,0xe9,0xf4a,0xf57,0x30,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0xe9,0xf67,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x45,0x55,0x55,0x55,0x65,0x85,0xa5,0xc5,
+0xe5,4,4,0xf5,0x114,0x134,0x154,4,0x174,4,0x17d,4,4,4,4,4,
+4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+4,4,4,4,4,4,4,4,4,4,4,0x19d,0x1bd,4,4,4,
+4,4,4,4,4,4,4,0x1dd,4,4,0x1fd,0x21d,0x23d,0x25d,0x27d,0x29d,
+0x2bd,0x2d8
+};
+
+static const uint8_t insc_trieData[3960]={
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0xc,0,0,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0xc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0x1c,0x1c,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0xc,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,2,2,2,0x20,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x22,0x22,
+0x17,1,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x1f,
+0x22,0x22,0,4,4,0,0,0x22,0x22,0x22,5,5,5,5,5,5,
+5,5,0x23,0x23,0x22,0x22,0,0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+0x18,0x18,0,0,0x23,0x23,0x23,0x23,0x23,0x23,5,5,5,5,5,5,
+5,5,0xc,2,2,0x20,0,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0,
+0,0x23,0x23,0,0,0x23,0x23,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,0,5,5,5,5,
+5,5,5,0,5,0,0,0,5,5,5,5,0,0,0x17,1,
+0x22,0x22,0x22,0x22,0x22,0,0,0x22,0x22,0,0,0x22,0x22,0x1f,6,0,
+0,0,0,0,0,0,0,0x22,0,0,0,0,5,5,0,5,
+0x23,0x23,0x22,0x22,0,0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+5,5,0,0,0,0,0,0,0,0,0,0,2,0,0x1c,0,
+2,2,0x20,0,0x23,0x23,0x23,0x23,0x23,0x23,0,0,0,0,0x23,0x23,
+0,0,0x23,0x23,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,
+0,5,5,0,5,5,0,5,5,0,0,0x17,0,0x22,0x22,0x22,
+0,0,0,0,0x22,0x22,0,0,0x22,0x22,0x1f,0,0,0,4,0,
+0,0,0,0,0,0,5,5,5,5,0,5,0,0,0,0,
+0,0,0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,2,0x12,0xc,
+0xc,0,0xb,0,0,0,0,0,0,0,0,0,0,2,2,0x20,
+0,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0,0x23,0x23,0x23,0,0x23,
+0x23,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,0,5,5,5,5,5,5,5,0,5,5,
+0,5,5,5,5,5,0,0,0x17,1,0x22,0x22,0x22,0x22,0x22,0x22,
+0,0x22,0x22,0x22,0,0x22,0x22,0x1f,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0x23,0x23,0x22,0x22,0,0,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,0,0,0,0,0,
+0,0,0,5,4,4,4,0x17,0x17,0x17,0,2,2,0x20,0,0x23,
+0x23,0x23,0x23,0x23,0x23,0x23,0x23,0,0,0x23,0x23,0,0,0x23,0x23,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,0,5,5,5,5,5,5,5,0,5,5,0,5,
+5,5,5,5,0,0,0x17,1,0x22,0x22,0x22,0x22,0x22,0,0,0x22,
+0x22,0,0,0x22,0x22,0x1f,0,0,0,0,0,0,0,0,0x22,0x22,
+0,0,0,0,5,5,0,5,0x23,0x23,0x22,0x22,0,0,0x18,0x18,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,5,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,2,0x15,0,0x23,0x23,0x23,0x23,0x23,
+0x23,0,0,0,0x23,0x23,0x23,0,0x23,0x23,0x23,5,0,0,0,5,
+5,0,5,0,5,5,0,0,0,5,5,0,0,0,5,5,
+5,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,
+0,0,0,0,0x22,0x22,0x22,0,0,0,0x22,0x22,0x22,0,0x22,0x22,
+0x22,0x1f,0,0,0,0,0,0,0,0,0,0x22,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0x18,0x18,0x18,0x18,0x18,0x18,
+0x18,0x18,0x18,0x18,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,2,2,2,0x20,2,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+0x23,0,0x23,0x23,0x23,0,0x23,0x23,0x23,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,0,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,
+0,1,0x22,0x22,0x22,0x22,0x22,0,0x22,0x22,0x22,0,0x22,0x22,0x22,0x1f,
+0,0,0,0,0,0,0,0x22,0x22,0,5,5,5,0,0,0,
+0,0,0x23,0x23,0x22,0x22,0,0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+0x18,0x18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,2,2,0x20,0,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0,0x23,
+0x23,0x23,0,0x23,0x23,0x23,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,0,5,5,5,5,5,
+5,5,5,5,5,0,5,5,5,5,5,0,0,0x17,1,0x22,
+0x22,0x22,0x22,0x22,0,0x22,0x22,0x22,0,0x22,0x22,0x22,0x1f,0,0,0,
+0,0,0,0,0x22,0x22,0,0,0,0,0,0,0,5,0,0x23,
+0x23,0x22,0x22,0,0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,
+0x11,0x11,0,0,0,0,0,0,0,0,0,0,0,0,0,2,
+2,2,0x20,0,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0,0x23,0x23,0x23,
+0,0x23,0x23,0x23,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,0x1a,0x1a,1,0x22,0x22,0x22,
+0x22,0x22,0,0x22,0x22,0x22,0,0x22,0x22,0x22,0x1f,0xd,0,0,0,0,
+0,6,6,6,0x22,0,0,0,0,0,0,0,0x23,0x23,0x23,0x22,
+0x22,0,0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,0,0,
+0,0,0,0,0,0,0,6,6,6,6,6,6,0,0,2,
+0x20,0,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+0x23,0x23,0x23,0x23,0,0,0,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,
+5,5,5,5,5,5,5,5,5,0,5,0,0,5,5,5,
+5,5,5,5,0,0,0,0x1f,0,0,0,0,0x22,0x22,0x22,0x22,
+0x22,0x22,0,0x22,0,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0,0,0,
+0,0,0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,0,0x22,
+0x22,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,0,0x22,0x22,0x22,0x22,
+0x22,0x22,0x22,0x22,0x22,0x22,0x1a,0,0,0,0,0,0x22,0x22,0x22,0x22,
+0x22,0x22,0,0x22,0x1e,0x1e,0x1e,0x1e,0xa,2,0x1a,0,0x18,0x18,0x18,0x18,
+0x18,0x18,0x18,0x18,0x18,0x18,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,5,
+0,0,5,5,0,5,0,0,5,0,0,0,0,0,0,5,
+5,5,5,0,5,5,5,5,5,5,5,0,5,5,5,0,
+5,0,5,0,0,5,5,0,5,5,0,0x22,0x22,0x22,0x22,0x22,
+0x22,0x22,0x22,0x22,0x22,0,0x22,0xb,0xb,0,0,0x22,0x22,0x22,0x22,0x22,
+0,0,0,0x1e,0x1e,0x1e,0x1e,0,2,0,0,0x18,0x18,0x18,0x18,0x18,
+0x18,0x18,0x18,0x18,0x18,0,0,5,5,5,5,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0x18,0x18,0x18,0x18,0x18,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,
+0x1c,0,0x1c,0,0x17,0,0,0,0,0,0,5,5,5,5,5,
+5,5,5,0,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,0,0,0,0,0x22,0x22,0x22,0x22,
+0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,2,0x20,0x22,0x22,2,2,0x1a,
+1,0,0,8,8,8,8,8,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,
+0xf,0xf,0xf,0,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,
+0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,
+0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0,0,0,0,0,0,0x1c,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,5,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+0x23,0x23,0x23,0x22,0x22,0x22,0x22,0x22,0x22,2,0x1e,0x20,0x13,0x1a,0xb,0xb,
+0xb,0xb,5,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,0xc,0,
+0,0xc,0,5,5,0x23,0x23,0x23,0x23,0x22,0x22,0x22,0x22,5,5,5,
+5,0xb,0xb,5,0x22,0x1e,0x1e,5,5,0x22,0x22,0x1e,0x1e,0x1e,0x1e,0x1e,
+5,5,0x22,0x22,0x22,0x22,5,5,5,5,5,5,5,5,5,5,
+5,0xb,0x22,0x22,0x22,0x22,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,5,0x1e,0x18,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1e,0x1e,0x22,0x22,0,0,0x23,
+0x23,0x23,5,5,5,5,5,5,5,5,5,5,0,5,5,0x22,
+0x22,0x1a,0,0,0,0,0,0,0,0,0,0,0,5,5,0x22,
+0x22,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0x22,
+0x22,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,
+0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0,0,0x22,
+0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,2,0x20,0x22,0x1b,0x1b,0x1c,0x10,
+0xa,0x1c,0x1c,0x1a,0x13,0x1c,0,0,0,0,0,0,0,0,1,0x1c,
+0,0,0xc,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0xf,0xf,0xf,0,0,
+0,0,7,7,2,7,7,7,7,7,7,7,0x22,0x1c,0,0,
+0,0,5,5,5,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+0,0,0x1d,0x1d,0x1d,0x1d,0x1d,0,0,0,0,0,0,0,0,0,
+0,0,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+0x22,0x22,7,7,7,7,7,7,7,0x1e,0x1e,0,0,0,0,0,
+0,5,5,5,5,5,5,5,0x22,0x22,0x22,0x22,0x22,0,0,0,
+0,5,5,5,5,5,5,5,5,5,5,5,5,5,0x23,0x23,
+0x23,5,5,0xb,0xb,0xf,7,7,9,0xf,0xf,0xf,0xf,0,0x13,0x22,
+0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,2,0x1e,
+0x1e,0x1e,0x1e,0x1e,0x1a,0x1c,0x1c,0,0,0x1c,2,2,2,0x10,0x20,0x23,
+0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,5,5,5,5,0x17,0x22,
+0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x1f,5,5,5,5,5,
+5,5,0,0,0,0,2,0x10,0x20,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+5,5,5,5,5,5,0xf,0xf,0xf,0x22,0x22,0x22,0x22,0x22,0x22,0x1a,
+0x13,0xf,0xf,5,5,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,1,
+5,5,5,7,7,5,5,5,5,0x23,0x23,0x17,0x22,0x22,0x22,0x22,
+0x22,0x22,0x22,0x22,0x22,7,7,0x1a,0x1a,0,0,0,0,0,0,0,
+0,0,0,0,0,5,5,5,5,0xf,0xf,0x22,0x22,0x22,0x22,0x22,
+0x22,0x22,7,7,7,7,2,2,0x1c,0x17,0,0,0,0,0,0,
+0,0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,0,0,5,
+5,5,4,4,4,0,4,4,4,4,4,4,4,4,4,4,
+4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x20,0x20,4,0x11,0x11,4,4,4,0,0,0,0,0,0,0,0,
+0,0,0,0x1c,0,0,0,0,0,0,0,0,0,0,0,0,
+0x16,0x14,0,0,0xc,0xc,0xc,0xc,0xc,0,0,0,0,0,0,0,
+0,0,0,0,0x1c,0x1c,0x1c,0,0,0,0,0,0,0,0,0,
+0,0,0x23,0x23,0,0x23,0x23,0x23,0x1a,5,5,5,5,2,5,5,
+5,5,0x22,0x22,0x22,0x22,0x22,0,0,0,0,0,0,0,0,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,0x21,0x21,5,
+5,5,5,0x21,0xf,0xf,5,5,5,5,5,5,5,0xf,5,2,
+0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,
+0xb,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x1f,2,0,0,
+0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,
+4,4,4,4,4,4,4,4,2,2,0,0,0,0,0,0,
+0,0,0,0,0x23,0x22,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+5,5,5,5,5,5,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x1e,
+0x1e,0x1e,0,0,5,5,5,5,5,5,5,0x22,0x22,0x22,0x22,0x22,
+0x22,0x22,0x22,7,7,7,0x1a,0,0,0,0,0,0,0,0,0,
+0,0,0,2,2,0x10,0x20,0x23,0x23,0x23,0x23,0x23,5,5,5,0x23,
+0x23,0x23,5,5,5,0x17,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0xf,
+0xb,0xb,5,5,5,5,5,0x22,0,5,5,5,5,5,5,5,
+5,5,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,5,5,5,5,
+5,0,0x22,0x22,0x22,0xb,0xb,0xb,0xb,0,0,0,0,0,0,0,
+0,0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
+0,0,5,5,5,0xc,0xc,0xc,0,0,0,5,0x1e,0x1e,0x1e,5,
+5,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+0x1e,0x1d,0x1e,0x1d,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0x23,0x23,5,5,5,5,5,5,5,5,5,0x22,0x22,0x22,0x22,
+0x22,0,0,0,0,0,0x20,0x13,0,0,0,0,0,0,0,0,
+0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x23,
+0x23,5,0x23,5,5,5,5,5,5,5,5,5,7,7,7,7,
+7,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0,0x1e,0x1a,0,0,5,0x22,
+0x22,0x22,0,0x22,0x22,0,0,0,0,0,0x22,0x22,2,0x20,5,5,
+5,5,0,5,5,5,0,5,5,5,5,5,5,5,0,0,
+0x17,0x17,0x17,0,0,0,0,0x13,2,2,0x20,0x11,0x11,0x23,0x23,0x23,
+0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x22,0x22,0x22,0x22,0x22,0x22,0x1f,0,
+0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,
+3,3,3,3,3,3,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x19,
+2,2,0x20,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,5,5,5,
+0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x1f,0x17,0,0,0,0,0,
+2,2,0x20,0x23,0x23,0x23,0x23,5,5,5,5,5,5,5,5,5,
+0x22,0x22,0x22,0x13,0x1a,0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+0,0,0,0,5,0x22,0x22,0,0,0,0,0,0,0,0,0,
+0x21,0x21,0x21,0x21,0x21,5,5,5,5,5,5,5,5,5,5,5,
+0x17,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,
+0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x1f,1,0xe,
+0xe,0,0,0,0,0,0x1c,0x17,0x22,0x22,0,0,0,0x22,0x22,0x22,
+0x22,2,0x1f,0x17,0x12,0,0,0,0,0,0,4,0,0x23,0x23,0x23,
+0x23,5,5,5,0,5,0,5,5,5,5,0,5,5,5,5,
+5,5,5,5,5,0,0,0,0,0,0,0,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,2,0x22,0x22,0x22,0x22,
+0x22,0x22,0x22,0x22,0x22,0x17,0x1a,0,0,0,0,0,2,2,2,0x20,
+0,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0,0,0x23,5,0,5,5,
+0,5,5,5,5,5,0,0x17,0x17,1,0x22,0x22,0,0,0,0,
+0,0,0,0x22,0,0,0,0,0,0,2,2,0x23,0x23,0x22,0x22,
+0,0,4,4,4,4,4,4,4,0,0,0,5,5,5,5,
+5,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x1f,2,2,0x20,
+0x17,1,0,0,0,0,0,0,0,0,0x18,0x18,0x18,0x18,0x18,0x18,
+0x18,0x18,0x18,0x18,0,0,0,0,0x1c,0,0x23,0x23,0x23,0x23,0x23,0x23,
+0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,5,2,0x20,0x1f,0x17,1,0,0,
+0,0,0,0,0,0,0,0,0,0x22,0x22,0x22,0x22,0x22,0x22,0,
+0,0x22,0x22,0x22,0x22,2,2,0x20,0x1f,0x17,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0x23,0x23,0x23,0x23,0x22,0x22,0,
+0,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,2,0x20,
+0x1f,0x22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,5,5,5,5,5,5,5,5,5,5,5,2,0x20,0x22,0x22,
+0x22,0x22,0x22,0x22,0x1f,0x17,0,0,0,0,0,0,0,0,5,5,
+5,5,5,5,5,5,5,5,5,0,0,0xb,0xb,0xb,0x22,0x22,
+0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x1a,0,0,0,0,0x18,0x18,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,0,0,0,0x22,0x22,
+0x22,0x22,0x22,0x22,0x22,2,0x20,0x1f,0x17,0,0,0,0,0,0x23,0x22,
+0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,5,5,5,5,5,0x1c,0x1a,
+2,2,2,2,0x20,0xe,0xb,0xb,0xb,0xb,0xc,0,0,0,0,0,
+0xc,0,0x13,0,0,0,0,0,0,0,0,0x23,0x22,0x22,0x22,0x22,
+0x22,0x22,0x22,0x22,0x22,0x22,0x22,5,5,5,5,0,0,0xe,0xe,0xe,
+0xe,7,7,7,7,7,7,2,0x20,0x12,0x13,0,0,0,1,0,
+0,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0,0x23,0x23,0x23,0x23,5,
+5,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0,0x22,0x22,0x22,0x22,2,2,0x20,
+0x1f,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,0,
+0,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0x22,
+0x22,0x22,0x22,0x22,2,2,0,0,0,0,0,0,0,0,0,0x23,
+0x23,0x23,0x23,0x23,0x23,0x23,0,0x23,0x23,0,0x23,5,5,5,5,0x22,
+0x22,0x22,0x22,0x22,0x22,0,0,0,0x22,0,0x22,0x22,0,0x22,2,0x20,
+0x17,0x22,0x1a,0x13,0xd,0xb,0,0,0,0,0,0,0,0,0x23,0x23,
+0x23,0x23,0x23,0x23,0,0x23,0x23,0,0x23,0x23,5,5,5,5,5,5,
+5,5,5,5,0x22,0x22,0x22,0x22,0x22,0,0x22,0x22,2,0x20,0x13,0,
+0,0,0,0,0,0,0,5,5,0xc,0x22,0x22,0x22,0x22,0,0,
+0,0,0,0,0,0,0,0
+};
+
+static const UCPTrie insc_trie={
+ insc_trieIndex,
+ { insc_trieData },
+ 834, 3960,
+ 0x12000, 0x12,
+ 1, 2,
+ 0, 0,
+ 0x4, 0x40,
+ 0x0,
+};
+
+static const int32_t maxVoValue = 3;
+
+static const uint16_t vo_trieIndex[1100]={
+0,0x40,0x59,0x98,0,0,0,0,0,0,0,0xd0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x33b,0x355,0x363,0x379,0x399,0x3b7,0x3d2,0x3ec,0x355,0x355,0x355,0x40c,0x355,0x355,0x355,0x40c,
+0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,
+0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,
+0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x355,0x355,0x355,0x40c,
+0x355,0x355,0x355,0x40c,0,0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x59,0x69,0x79,0x89,
+0x98,0xa8,0xb8,0xc8,0,0x10,0x20,0x30,0,0x10,0x20,0x30,0,0x10,0x20,0x30,
+0,0x10,0x20,0x30,0xd0,0xe0,0xf0,0x100,0,0x10,0x20,0x30,0,0x10,0x20,0x30,
+0,0x10,0x20,0x30,0,0x10,0x20,0x30,0,0x10,0x20,0x30,0,0x10,0x20,0x30,
+0,0x10,0x20,0x30,0,0x10,0x20,0x30,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,
+0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x10f,0x110,0x110,0x110,0x110,0x110,0x110,0x110,
+0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,
+0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x110,0x110,0x110,0x110,0x110,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0xa9,0x96,0x11e,0x12c,0xae,0xaa,0,0,0,0,0,
+0,0x103,0x13c,0,0x14c,0x158,0x166,0x10b,0x175,0x110,0x110,0x110,0x184,0,0,0,
+0,0,0,0,0x72,0,0xf6,0,0,0,0,0,0,0,0,0,
+0,0,0,0x190,0x110,0x198,0,0,0,0,0x103,0x110,0x115,0,0xec,0x1a8,
+0x1b6,0x10e,0x110,0x110,0x1c6,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,
+0x110,0x110,0,0,0,0,0,0,0,0,0,0,0x110,0x110,0x110,0x110,
+0x110,0x110,0x116,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,
+0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x118,0x10a,0x110,0x1d2,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x10e,0x110,0,0,
+0x116,0,0,0,0,0,0x108,0x110,0x1e2,0x114,0x110,0,0,0,0,0,
+0,0,0,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,
+0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x1f1,0x1ff,0x110,0x20e,0x21d,
+0x110,0x22a,0x110,0x237,0x246,0x256,0x110,0x22a,0x110,0x237,0x261,0x110,0x110,0x26e,0x110,0x110,
+0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x27e,0x110,0x110,0x110,0x110,0x110,
+0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x27e,0x27e,0x27e,0x27e,0x27e,
+0x286,0x110,0x28e,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,
+0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,
+0x110,0x110,0x110,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0x110,0x110,0,0,0,0,0,
+0,0,0,0x110,0,0x110,0x117,0x29b,0x2aa,0,0,0,0,0,0,0,
+0,0,0x2ba,0x2c9,0x110,0x2d9,0x110,0x2e9,0x2f8,0,0,0,0,0,0,0,
+0x308,0x318,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0x110,0x110,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0x110,0x110,0x110,0x110,0x110,0x110,
+0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0,0,0,
+0,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,
+0x110,0x110,0,0,0,0,0,0,0,0,0x328,0x110,0x110,0x110,0x110,0x110,
+0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,
+0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x112,0x84,0x98,0xa8,0xa8,0xa8,
+0xa8,0xa8,0xa8,0xc8,0xc,0xe8,0x100,0x115,0xc,0xc,0xc,0x134,0x153,0x172,0x191,0xc,
+0x1ab,0xc,0x1cb,0x1eb,0x20b,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,
+0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,
+0x223,0x223,0x223,0x223,0x223,0xfb,0xc,0x243,0xc,0x223,0x223,0x223,0x223,0x223,0x223,0x223,
+0x223,0x223,0x223,0x223,0x223,0xc,0xc,0xc,0xc,0x223,0x223,0x223,0x223,0x223,0x223,0x223,
+0x223,0x223,0x223,0x223,0x223,0x223,0xf8,0xc,0x262,0xc,0xc,0xc,0xc,0x282,0xc,0xc,
+0xc,0xc,0xc,0x29c,0xc,0xc,0xfd,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,
+0xc,0x223,0x223,0x2b9,0xc,0xc,0xc,0xc,0xc,0x223,0x100,0xc,0xc,0xc,0xc,0xc,
+0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0x2bc,0x223,
+0x223,0x223,0x223,0x223,0x223,0x223,0x223,0xf8,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,
+0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0x2da,0xf8,0xc,0xc,0xc,0xc,
+0xc,0xc,0xc,0xc,0x223,0x2fa,0xc,0xc,0x223,0xfd,0xc,0xc,0xc,0xc,0xc,0xc,
+0xc,0xc,0xc,0xc,0x223,0x31a,0x223,0x223,0xc8,0x2b5,0xc,0xc,0x223,0x223,0x223,0x223,
+0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,
+0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x31b,0xc,0xc,0xc,0xc,
+0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,
+0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc
+};
+
+static const uint8_t vo_trieData[828]={
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+3,0,3,0,0,0,0,3,0,0,3,0,0,0,0,0,
+0,0,0,0,0,3,3,3,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
+0,0,0,0,0,0,0,0,0,3,3,0,0,0,3,0,
+0,0,0,3,3,3,0,0,0,0,0,0,3,0,3,3,
+3,0,0,0,0,0,0,0,0,0,0,0,3,3,0,3,
+3,3,3,3,3,3,0,0,0,0,0,3,3,0,3,3,
+0,0,0,0,0,0,3,3,3,3,0,3,0,3,0,3,
+0,0,0,0,3,0,0,0,0,0,3,3,3,3,3,3,
+0,3,3,0,3,3,3,3,3,3,3,3,3,3,0,0,
+3,3,3,3,3,3,3,3,0,0,0,0,3,3,3,3,
+3,1,1,3,0,0,0,0,3,3,3,3,3,3,3,3,
+3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,
+3,3,0,0,0,0,3,3,3,0,3,3,3,3,3,3,
+3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,
+0,0,3,3,0,3,3,3,3,3,3,3,3,3,3,3,
+3,3,2,2,3,3,3,3,3,1,1,1,1,1,1,1,
+1,3,3,1,1,1,1,1,1,1,1,1,1,1,1,3,
+3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,
+2,3,2,3,2,3,2,3,3,3,3,3,3,2,3,3,
+3,3,3,3,3,3,3,3,3,3,2,3,2,3,2,3,
+3,3,3,3,3,2,3,3,3,3,3,2,2,3,3,3,
+3,2,2,3,3,3,1,2,3,2,3,2,3,2,3,2,
+3,3,3,3,3,3,2,2,3,3,3,3,3,1,3,3,
+3,3,3,3,3,2,3,3,3,3,3,3,3,3,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,
+3,3,3,3,3,3,3,3,3,2,2,2,2,2,3,3,
+3,3,3,0,1,1,1,1,1,1,3,3,3,0,0,0,
+0,3,3,3,3,3,3,3,3,3,0,2,3,3,3,3,
+3,3,1,1,3,3,2,0,2,3,3,3,3,3,3,3,
+3,3,3,1,1,0,0,0,2,3,3,3,3,3,3,3,
+3,3,3,3,1,3,1,3,1,3,3,3,3,3,3,3,
+3,3,3,3,1,1,1,1,1,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,3,3,3,1,3,3,3,3,
+0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,
+3,0,0,0,3,3,0,0,2,2,3,3,3,3,3,3,
+3,3,3,3,3,3,3,3,0,0,0,0
+};
+
+static const UCPTrie vo_trie={
+ vo_trieIndex,
+ { vo_trieData },
+ 1100, 828,
+ 0x110000, 0x110,
+ 1, 2,
+ 0, 0,
+ 0xc, 0x0,
+ 0x0,
+};
+
+#endif // INCLUDED_FROM_UPROPS_CPP
diff --git a/Build/source/libs/icu/icu-src/source/common/uloc.cpp b/Build/source/libs/icu/icu-src/source/common/uloc.cpp
index 7a1dc723cff..81b6e0f68ab 100644
--- a/Build/source/libs/icu/icu-src/source/common/uloc.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/uloc.cpp
@@ -798,7 +798,7 @@ _getKeywords(const char *localeID,
}
keywordsLen += keywordList[i].keywordLen + 1;
if(valuesToo) {
- if(keywordsLen + keywordList[i].valueLen < keywordCapacity) {
+ if(keywordsLen + keywordList[i].valueLen <= keywordCapacity) {
uprv_strncpy(keywords+keywordsLen, keywordList[i].valueStart, keywordList[i].valueLen);
}
keywordsLen += keywordList[i].valueLen;
@@ -1133,7 +1133,7 @@ uloc_setKeywordValue(const char* keywordName,
keyValuePrefix = ';'; /* for any subsequent key-value pair */
updatedKeysAndValues.append(localeKeywordNameBuffer, keyValueLen, *status);
updatedKeysAndValues.append('=', *status);
- updatedKeysAndValues.append(nextEqualsign, keyValueTail-nextEqualsign, *status);
+ updatedKeysAndValues.append(nextEqualsign, static_cast<int32_t>(keyValueTail-nextEqualsign), *status);
}
if (!nextSeparator && keywordValueLen > 0 && !handledInputKeyAndValue) {
/* append new entry at the end, it sorts later than existing entries */
@@ -1500,7 +1500,7 @@ _deleteVariant(char* variants, int32_t variantsLen,
}
if (uprv_strncmp(variants, toDelete, toDeleteLen) == 0 &&
(variantsLen == toDeleteLen ||
- (flag=(variants[toDeleteLen] == '_'))))
+ (flag=(variants[toDeleteLen] == '_')) != 0))
{
int32_t d = toDeleteLen + (flag?1:0);
variantsLen -= d;
@@ -2412,7 +2412,7 @@ uloc_acceptLanguageFromHTTP(char *result, int32_t resultAvailable, UAcceptResult
/* eat spaces prior to semi */
for(t=(paramEnd-1);(paramEnd>s)&&isspace(*t);t--)
;
- int32_t slen = ((t+1)-s);
+ int32_t slen = static_cast<int32_t>(((t+1)-s));
if(slen > ULOC_FULLNAME_CAPACITY) {
*status = U_BUFFER_OVERFLOW_ERROR;
return -1; // too big
diff --git a/Build/source/libs/icu/icu-src/source/common/uloc_keytype.cpp b/Build/source/libs/icu/icu-src/source/common/uloc_keytype.cpp
index 4eea504bc26..b6f0752a707 100644
--- a/Build/source/libs/icu/icu-src/source/common/uloc_keytype.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/uloc_keytype.cpp
@@ -228,7 +228,7 @@ initFromResourceBundle(UErrorCode& sts) {
// a timezone key uses a colon instead of a slash in the resource.
// e.g. America:Los_Angeles
if (uprv_strchr(legacyTypeId, ':') != NULL) {
- int32_t legacyTypeIdLen = uprv_strlen(legacyTypeId);
+ int32_t legacyTypeIdLen = static_cast<int32_t>(uprv_strlen(legacyTypeId));
char* legacyTypeIdBuf = (char*)uprv_malloc(legacyTypeIdLen + 1);
if (legacyTypeIdBuf == NULL) {
sts = U_MEMORY_ALLOCATION_ERROR;
@@ -320,7 +320,7 @@ initFromResourceBundle(UErrorCode& sts) {
if (isTZ) {
// replace colon with slash if necessary
if (uprv_strchr(from, ':') != NULL) {
- int32_t fromLen = uprv_strlen(from);
+ int32_t fromLen = static_cast<int32_t>(uprv_strlen(from));
char* fromBuf = (char*)uprv_malloc(fromLen + 1);
if (fromBuf == NULL) {
sts = U_MEMORY_ALLOCATION_ERROR;
@@ -472,7 +472,6 @@ isSpecialTypeRgKeyValue(const char* val) {
p++;
}
return (subtagLen == 6);
- return TRUE;
}
U_CFUNC const char*
diff --git a/Build/source/libs/icu/icu-src/source/common/uloc_tag.cpp b/Build/source/libs/icu/icu-src/source/common/uloc_tag.cpp
index 87b9f63f279..83d79160e8f 100644
--- a/Build/source/libs/icu/icu-src/source/common/uloc_tag.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/uloc_tag.cpp
@@ -12,11 +12,13 @@
#include "unicode/putil.h"
#include "unicode/uloc.h"
#include "ustr_imp.h"
+#include "charstr.h"
#include "cmemory.h"
#include "cstring.h"
#include "putilimp.h"
#include "uinvchar.h"
#include "ulocimp.h"
+#include "uvector.h"
#include "uassert.h"
@@ -77,19 +79,34 @@ static const char LOCALE_TYPE_YES[] = "yes";
#define LANG_UND_LEN 3
+/*
+ Updated on 2018-09-12 from
+ https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry .
+
+ This table has 2 parts. The parts for Grandfathered tags is generated by the
+ following scripts from the IANA language tag registry.
+
+ curl https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry |\
+ egrep -A 7 'Type: grandfathered' | \
+ egrep 'Tag|Prefe' | grep -B1 'Preferred' | grep -v '^--' | \
+ awk -n '/Tag/ {printf(" \"%s\", ", $2);} /Preferred/ {printf("\"%s\",\n", $2);}' |\
+ tr 'A-Z' 'a-z'
+
+
+ The 2nd part is made of five ICU-specific entries. They're kept for
+ the backward compatibility for now, even though there are no preferred
+ values. They may have to be removed for the strict BCP 47 compliance.
+
+*/
static const char* const GRANDFATHERED[] = {
/* grandfathered preferred */
"art-lojban", "jbo",
- "cel-gaulish", "xtg-x-cel-gaulish",
- "en-GB-oed", "en-GB-x-oed",
+ "en-gb-oed", "en-gb-oxendict",
"i-ami", "ami",
"i-bnn", "bnn",
- "i-default", "en-x-i-default",
- "i-enochian", "und-x-i-enochian",
"i-hak", "hak",
"i-klingon", "tlh",
"i-lux", "lb",
- "i-mingo", "see-x-i-mingo",
"i-navajo", "nv",
"i-pwn", "pwn",
"i-tao", "tao",
@@ -102,17 +119,175 @@ static const char* const GRANDFATHERED[] = {
"sgn-ch-de", "sgg",
"zh-guoyu", "cmn",
"zh-hakka", "hak",
- "zh-min", "nan-x-zh-min",
"zh-min-nan", "nan",
"zh-xiang", "hsn",
- NULL, NULL
+
+ // Grandfathered tags with no preferred value in the IANA
+ // registry. Kept for now for the backward compatibility
+ // because ICU has mapped them this way.
+ "cel-gaulish", "xtg-x-cel-gaulish",
+ "i-default", "en-x-i-default",
+ "i-enochian", "und-x-i-enochian",
+ "i-mingo", "see-x-i-mingo",
+ "zh-min", "nan-x-zh-min",
};
+/*
+ Updated on 2018-09-12 from
+ https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry .
+
+ The table lists redundant tags with preferred value in the IANA languate tag registry.
+ It's generated with the following command:
+
+ curl https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry |\
+ grep 'Type: redundant' -A 5 | egrep '^(Tag:|Prefer)' | grep -B1 'Preferred' | \
+ awk -n '/Tag/ {printf(" \"%s\", ", $2);} /Preferred/ {printf("\"%s\",\n", $2);}' | \
+ tr 'A-Z' 'a-z'
+
+ In addition, ja-latn-hepburn-heploc is mapped to ja-latn-alalc97 because
+ a variant tag 'hepburn-heploc' has the preferred subtag, 'alaic97'.
+*/
+
+static const char* const REDUNDANT[] = {
+// redundant preferred
+ "sgn-br", "bzs",
+ "sgn-co", "csn",
+ "sgn-de", "gsg",
+ "sgn-dk", "dsl",
+ "sgn-es", "ssp",
+ "sgn-fr", "fsl",
+ "sgn-gb", "bfi",
+ "sgn-gr", "gss",
+ "sgn-ie", "isg",
+ "sgn-it", "ise",
+ "sgn-jp", "jsl",
+ "sgn-mx", "mfs",
+ "sgn-ni", "ncs",
+ "sgn-nl", "dse",
+ "sgn-no", "nsl",
+ "sgn-pt", "psr",
+ "sgn-se", "swl",
+ "sgn-us", "ase",
+ "sgn-za", "sfs",
+ "zh-cmn", "cmn",
+ "zh-cmn-hans", "cmn-hans",
+ "zh-cmn-hant", "cmn-hant",
+ "zh-gan", "gan",
+ "zh-wuu", "wuu",
+ "zh-yue", "yue",
+
+ // variant tag with preferred value
+ "ja-latn-hepburn-heploc", "ja-latn-alalc97",
+};
+
+/*
+ Updated on 2018-09-12 from
+ https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry .
+
+ grep 'Type: language' -A 7 language-subtag-registry | egrep 'Subtag|Prefe' | \
+ grep -B1 'Preferred' | grep -v '^--' | \
+ awk -n '/Subtag/ {printf(" \"%s\", ", $2);} /Preferred/ {printf("\"%s\",\n", $2);}'
+
+ Make sure that 2-letter language subtags come before 3-letter subtags.
+*/
static const char DEPRECATEDLANGS[][4] = {
/* deprecated new */
+ "in", "id",
"iw", "he",
"ji", "yi",
- "in", "id"
+ "jw", "jv",
+ "mo", "ro",
+ "aam", "aas",
+ "adp", "dz",
+ "aue", "ktz",
+ "ayx", "nun",
+ "bgm", "bcg",
+ "bjd", "drl",
+ "ccq", "rki",
+ "cjr", "mom",
+ "cka", "cmr",
+ "cmk", "xch",
+ "coy", "pij",
+ "cqu", "quh",
+ "drh", "khk",
+ "drw", "prs",
+ "gav", "dev",
+ "gfx", "vaj",
+ "ggn", "gvr",
+ "gti", "nyc",
+ "guv", "duz",
+ "hrr", "jal",
+ "ibi", "opa",
+ "ilw", "gal",
+ "jeg", "oyb",
+ "kgc", "tdf",
+ "kgh", "kml",
+ "koj", "kwv",
+ "krm", "bmf",
+ "ktr", "dtp",
+ "kvs", "gdj",
+ "kwq", "yam",
+ "kxe", "tvd",
+ "kzj", "dtp",
+ "kzt", "dtp",
+ "lii", "raq",
+ "lmm", "rmx",
+ "meg", "cir",
+ "mst", "mry",
+ "mwj", "vaj",
+ "myt", "mry",
+ "nad", "xny",
+ "ncp", "kdz",
+ "nnx", "ngv",
+ "nts", "pij",
+ "oun", "vaj",
+ "pcr", "adx",
+ "pmc", "huw",
+ "pmu", "phr",
+ "ppa", "bfy",
+ "ppr", "lcq",
+ "pry", "prt",
+ "puz", "pub",
+ "sca", "hle",
+ "skk", "oyb",
+ "tdu", "dtp",
+ "thc", "tpo",
+ "thx", "oyb",
+ "tie", "ras",
+ "tkk", "twm",
+ "tlw", "weo",
+ "tmp", "tyj",
+ "tne", "kak",
+ "tnf", "prs",
+ "tsf", "taj",
+ "uok", "ema",
+ "xba", "cax",
+ "xia", "acn",
+ "xkh", "waw",
+ "xsj", "suj",
+ "ybd", "rki",
+ "yma", "lrr",
+ "ymt", "mtm",
+ "yos", "zom",
+ "yuu", "yug",
+};
+
+/*
+ Updated on 2018-04-24 from
+
+ curl https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry | \
+ grep 'Type: region' -A 7 | egrep 'Subtag|Prefe' | \
+ grep -B1 'Preferred' | \
+ awk -n '/Subtag/ {printf(" \"%s\", ", $2);} /Preferred/ {printf("\"%s\",\n", $2);}'
+*/
+static const char DEPRECATEDREGIONS[][3] = {
+/* deprecated new */
+ "BU", "MM",
+ "DD", "DE",
+ "FX", "FR",
+ "TP", "TL",
+ "YD", "YE",
+ "ZR", "CD",
};
/*
@@ -172,6 +347,46 @@ static const char*
ultag_getGrandfathered(const ULanguageTag* langtag);
#endif
+namespace {
+
+// Helper class to memory manage CharString objects.
+// Only ever stack-allocated, does not need to inherit UMemory.
+class CharStringPool {
+public:
+ CharStringPool() : status(U_ZERO_ERROR), pool(&deleter, nullptr, status) {}
+ ~CharStringPool() = default;
+
+ CharStringPool(const CharStringPool&) = delete;
+ CharStringPool& operator=(const CharStringPool&) = delete;
+
+ icu::CharString* create() {
+ if (U_FAILURE(status)) {
+ return nullptr;
+ }
+ icu::CharString* const obj = new icu::CharString;
+ if (obj == nullptr) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return nullptr;
+ }
+ pool.addElement(obj, status);
+ if (U_FAILURE(status)) {
+ delete obj;
+ return nullptr;
+ }
+ return obj;
+ }
+
+private:
+ static void U_CALLCONV deleter(void* obj) {
+ delete static_cast<icu::CharString*>(obj);
+ }
+
+ UErrorCode status;
+ icu::UVector pool;
+};
+
+} // namespace
+
/*
* -------------------------------------------------
*
@@ -675,6 +890,11 @@ _appendLanguageToLanguageTag(const char* localeID, char* appendAt, int32_t capac
} else {
/* resolve deprecated */
for (i = 0; i < UPRV_LENGTHOF(DEPRECATEDLANGS); i += 2) {
+ // 2-letter deprecated subtags are listede before 3-letter
+ // ones in DEPRECATEDLANGS[]. Get out of loop on coming
+ // across the 1st 3-letter subtag, if the input is a 2-letter code.
+ // to avoid continuing to try when there's no match.
+ if (uprv_strlen(buf) < uprv_strlen(DEPRECATEDLANGS[i])) break;
if (uprv_compareInvCharsAsAscii(buf, DEPRECATEDLANGS[i]) == 0) {
uprv_strcpy(buf, DEPRECATEDLANGS[i + 1]);
len = (int32_t)uprv_strlen(buf);
@@ -721,7 +941,6 @@ _appendScriptToLanguageTag(const char* localeID, char* appendAt, int32_t capacit
*(appendAt + reslen) = SEP;
}
reslen++;
-
if (reslen < capacity) {
uprv_memcpy(appendAt + reslen, buf, uprv_min(len, capacity - reslen));
}
@@ -763,6 +982,14 @@ _appendRegionToLanguageTag(const char* localeID, char* appendAt, int32_t capacit
*(appendAt + reslen) = SEP;
}
reslen++;
+ /* resolve deprecated */
+ for (int i = 0; i < UPRV_LENGTHOF(DEPRECATEDREGIONS); i += 2) {
+ if (uprv_compareInvCharsAsAscii(buf, DEPRECATEDREGIONS[i]) == 0) {
+ uprv_strcpy(buf, DEPRECATEDREGIONS[i + 1]);
+ len = (int32_t)uprv_strlen(buf);
+ break;
+ }
+ }
if (reslen < capacity) {
uprv_memcpy(appendAt + reslen, buf, uprv_min(len, capacity - reslen));
@@ -900,7 +1127,6 @@ _appendVariantsToLanguageTag(const char* localeID, char* appendAt, int32_t capac
static int32_t
_appendKeywordsToLanguageTag(const char* localeID, char* appendAt, int32_t capacity, UBool strict, UBool hadPosix, UErrorCode* status) {
- char buf[ULOC_KEYWORD_AND_VALUES_CAPACITY];
char attrBuf[ULOC_KEYWORD_AND_VALUES_CAPACITY] = { 0 };
int32_t attrBufLength = 0;
UEnumeration *keywordEnum = NULL;
@@ -920,22 +1146,48 @@ _appendKeywordsToLanguageTag(const char* localeID, char* appendAt, int32_t capac
AttributeListEntry *firstAttr = NULL;
AttributeListEntry *attr;
char *attrValue;
- char extBuf[ULOC_KEYWORD_AND_VALUES_CAPACITY];
- char *pExtBuf = extBuf;
- int32_t extBufCapacity = sizeof(extBuf);
+ CharStringPool extBufPool;
const char *bcpKey=nullptr, *bcpValue=nullptr;
UErrorCode tmpStatus = U_ZERO_ERROR;
int32_t keylen;
UBool isBcpUExt;
while (TRUE) {
+ icu::CharString buf;
key = uenum_next(keywordEnum, NULL, status);
if (key == NULL) {
break;
}
- len = uloc_getKeywordValue(localeID, key, buf, sizeof(buf), &tmpStatus);
- /* buf must be null-terminated */
- if (U_FAILURE(tmpStatus) || tmpStatus == U_STRING_NOT_TERMINATED_WARNING) {
+ char* buffer;
+ int32_t resultCapacity = ULOC_KEYWORD_AND_VALUES_CAPACITY;
+
+ for (;;) {
+ buffer = buf.getAppendBuffer(
+ /*minCapacity=*/resultCapacity,
+ /*desiredCapacityHint=*/resultCapacity,
+ resultCapacity,
+ tmpStatus);
+
+ if (U_FAILURE(tmpStatus)) {
+ break;
+ }
+
+ len = uloc_getKeywordValue(
+ localeID, key, buffer, resultCapacity, &tmpStatus);
+
+ if (tmpStatus != U_BUFFER_OVERFLOW_ERROR) {
+ break;
+ }
+
+ resultCapacity = len;
+ tmpStatus = U_ZERO_ERROR;
+ }
+
+ if (U_FAILURE(tmpStatus)) {
+ if (tmpStatus == U_MEMORY_ALLOCATION_ERROR) {
+ *status = U_MEMORY_ALLOCATION_ERROR;
+ break;
+ }
if (strict) {
*status = U_ILLEGAL_ARGUMENT_ERROR;
break;
@@ -945,6 +1197,11 @@ _appendKeywordsToLanguageTag(const char* localeID, char* appendAt, int32_t capac
continue;
}
+ buf.append(buffer, len, tmpStatus);
+ if (tmpStatus == U_STRING_NOT_TERMINATED_WARNING) {
+ tmpStatus = U_ZERO_ERROR; // Terminators provided by CharString.
+ }
+
keylen = (int32_t)uprv_strlen(key);
isBcpUExt = (keylen > 1);
@@ -1007,7 +1264,7 @@ _appendKeywordsToLanguageTag(const char* localeID, char* appendAt, int32_t capac
}
/* we've checked buf is null-terminated above */
- bcpValue = uloc_toUnicodeLocaleType(key, buf);
+ bcpValue = uloc_toUnicodeLocaleType(key, buf.data());
if (bcpValue == NULL) {
if (strict) {
*status = U_ILLEGAL_ARGUMENT_ERROR;
@@ -1015,33 +1272,44 @@ _appendKeywordsToLanguageTag(const char* localeID, char* appendAt, int32_t capac
}
continue;
}
- if (bcpValue == buf) {
- /*
+ if (bcpValue == buf.data()) {
+ /*
When uloc_toUnicodeLocaleType(key, buf) returns the
input value as is, the value is well-formed, but has
no known mapping. This implementation normalizes the
- the value to lower case
+ value to lower case
*/
+ icu::CharString* extBuf = extBufPool.create();
+ if (extBuf == nullptr) {
+ *status = U_MEMORY_ALLOCATION_ERROR;
+ break;
+ }
int32_t bcpValueLen = static_cast<int32_t>(uprv_strlen(bcpValue));
- if (bcpValueLen < extBufCapacity) {
- uprv_strcpy(pExtBuf, bcpValue);
- T_CString_toLowerCase(pExtBuf);
+ int32_t resultCapacity;
+ char* pExtBuf = extBuf->getAppendBuffer(
+ /*minCapacity=*/bcpValueLen,
+ /*desiredCapacityHint=*/bcpValueLen,
+ resultCapacity,
+ tmpStatus);
+ if (U_FAILURE(tmpStatus)) {
+ *status = tmpStatus;
+ break;
+ }
- bcpValue = pExtBuf;
+ uprv_strcpy(pExtBuf, bcpValue);
+ T_CString_toLowerCase(pExtBuf);
- pExtBuf += (bcpValueLen + 1);
- extBufCapacity -= (bcpValueLen + 1);
- } else {
- if (strict) {
- *status = U_ILLEGAL_ARGUMENT_ERROR;
- break;
- }
- continue;
+ extBuf->append(pExtBuf, bcpValueLen, tmpStatus);
+ if (U_FAILURE(tmpStatus)) {
+ *status = tmpStatus;
+ break;
}
+
+ bcpValue = extBuf->data();
}
} else {
if (*key == PRIVATEUSE) {
- if (!_isPrivateuseValueSubtags(buf, len)) {
+ if (!_isPrivateuseValueSubtags(buf.data(), len)) {
if (strict) {
*status = U_ILLEGAL_ARGUMENT_ERROR;
break;
@@ -1049,7 +1317,7 @@ _appendKeywordsToLanguageTag(const char* localeID, char* appendAt, int32_t capac
continue;
}
} else {
- if (!_isExtensionSingleton(key, keylen) || !_isExtensionSubtags(buf, len)) {
+ if (!_isExtensionSingleton(key, keylen) || !_isExtensionSubtags(buf.data(), len)) {
if (strict) {
*status = U_ILLEGAL_ARGUMENT_ERROR;
break;
@@ -1058,20 +1326,17 @@ _appendKeywordsToLanguageTag(const char* localeID, char* appendAt, int32_t capac
}
}
bcpKey = key;
- if ((len + 1) < extBufCapacity) {
- uprv_memcpy(pExtBuf, buf, len);
- bcpValue = pExtBuf;
-
- pExtBuf += len;
-
- *pExtBuf = 0;
- pExtBuf++;
-
- extBufCapacity -= (len + 1);
- } else {
- *status = U_ILLEGAL_ARGUMENT_ERROR;
+ icu::CharString* extBuf = extBufPool.create();
+ if (extBuf == nullptr) {
+ *status = U_MEMORY_ALLOCATION_ERROR;
break;
}
+ extBuf->append(buf.data(), len, tmpStatus);
+ if (U_FAILURE(tmpStatus)) {
+ *status = tmpStatus;
+ break;
+ }
+ bcpValue = extBuf->data();
}
/* create ExtensionListEntry */
@@ -1242,6 +1507,7 @@ _appendLDMLExtensionAsKeywords(const char* ldmlext, ExtensionListEntry** appendT
attrBufIdx += (len + 1);
} else {
*status = U_ILLEGAL_ARGUMENT_ERROR;
+ uprv_free(attr);
goto cleanup;
}
@@ -1460,9 +1726,9 @@ _appendLDMLExtensionAsKeywords(const char* ldmlext, ExtensionListEntry** appendT
kwd->value = pType;
if (!_addExtensionToList(&kwdFirst, kwd, FALSE)) {
- *status = U_ILLEGAL_ARGUMENT_ERROR;
+ // duplicate keyword is allowed, Only the first
+ // is honored.
uprv_free(kwd);
- goto cleanup;
}
}
@@ -1836,7 +2102,7 @@ ultag_parse(const char* tag, int32_t tagLen, int32_t* parsedLen, UErrorCode* sta
}
/* check if the tag is grandfathered */
- for (i = 0; GRANDFATHERED[i] != NULL; i += 2) {
+ for (i = 0; i < UPRV_LENGTHOF(GRANDFATHERED); i += 2) {
if (uprv_stricmp(GRANDFATHERED[i], tagBuf) == 0) {
int32_t newTagLength;
@@ -1858,6 +2124,37 @@ ultag_parse(const char* tag, int32_t tagLen, int32_t* parsedLen, UErrorCode* sta
}
}
+ size_t parsedLenDelta = 0;
+ if (grandfatheredLen == 0) {
+ for (i = 0; i < UPRV_LENGTHOF(REDUNDANT); i += 2) {
+ const char* redundantTag = REDUNDANT[i];
+ size_t redundantTagLen = uprv_strlen(redundantTag);
+ // The preferred tag for a redundant tag is always shorter than redundant
+ // tag. A redundant tag may or may not be followed by other subtags.
+ // (i.e. "zh-yue" or "zh-yue-u-co-pinyin").
+ if (uprv_strnicmp(redundantTag, tagBuf, static_cast<uint32_t>(redundantTagLen)) == 0) {
+ const char* redundantTagEnd = tagBuf + redundantTagLen;
+ if (*redundantTagEnd == '\0' || *redundantTagEnd == SEP) {
+ const char* preferredTag = REDUNDANT[i + 1];
+ size_t preferredTagLen = uprv_strlen(preferredTag);
+ uprv_strncpy(t->buf, preferredTag, preferredTagLen);
+ if (*redundantTagEnd == SEP) {
+ uprv_memmove(tagBuf + preferredTagLen,
+ redundantTagEnd,
+ tagLen - redundantTagLen + 1);
+ } else {
+ tagBuf[preferredTagLen] = '\0';
+ }
+ // parsedLen should be the length of the input
+ // before redundantTag is replaced by preferredTag.
+ // Save the delta to add it back later.
+ parsedLenDelta = redundantTagLen - preferredTagLen;
+ break;
+ }
+ }
+ }
+ }
+
/*
* langtag = language
* ["-" script]
@@ -1898,10 +2195,13 @@ ultag_parse(const char* tag, int32_t tagLen, int32_t* parsedLen, UErrorCode* sta
if (next & LANG) {
if (_isLanguageSubtag(pSubtag, subtagLen)) {
*pSep = 0; /* terminate */
+ // TODO: move deprecated language code handling here.
t->language = T_CString_toLowerCase(pSubtag);
pLastGoodPosition = pSep;
- next = EXTL | SCRT | REGN | VART | EXTS | PRIV;
+ next = SCRT | REGN | VART | EXTS | PRIV;
+ if (subtagLen <= 3)
+ next |= EXTL;
continue;
}
}
@@ -1942,6 +2242,7 @@ ultag_parse(const char* tag, int32_t tagLen, int32_t* parsedLen, UErrorCode* sta
if (next & REGN) {
if (_isRegionSubtag(pSubtag, subtagLen)) {
*pSep = 0;
+ // TODO: move deprecated region code handling here.
t->region = T_CString_toUpperCase(pSubtag);
pLastGoodPosition = pSep;
@@ -2035,7 +2336,7 @@ ultag_parse(const char* tag, int32_t tagLen, int32_t* parsedLen, UErrorCode* sta
}
}
if (next & PRIV) {
- if (uprv_tolower(*pSubtag) == PRIVATEUSE) {
+ if (uprv_tolower(*pSubtag) == PRIVATEUSE && subtagLen == 1) {
char *pPrivuseVal;
if (pExtension != NULL) {
@@ -2138,7 +2439,8 @@ ultag_parse(const char* tag, int32_t tagLen, int32_t* parsedLen, UErrorCode* sta
}
if (parsedLen != NULL) {
- *parsedLen = (grandfatheredLen > 0) ? grandfatheredLen : (int32_t)(pLastGoodPosition - t->buf);
+ *parsedLen = (grandfatheredLen > 0) ? grandfatheredLen :
+ (int32_t)(pLastGoodPosition - t->buf + parsedLenDelta);
}
return t;
@@ -2335,31 +2637,66 @@ uloc_toLanguageTag(const char* localeID,
int32_t langtagCapacity,
UBool strict,
UErrorCode* status) {
- /* char canonical[ULOC_FULLNAME_CAPACITY]; */ /* See #6822 */
- char canonical[256];
- int32_t reslen = 0;
+ icu::CharString canonical;
+ int32_t reslen;
UErrorCode tmpStatus = U_ZERO_ERROR;
UBool hadPosix = FALSE;
const char* pKeywordStart;
/* Note: uloc_canonicalize returns "en_US_POSIX" for input locale ID "". See #6835 */
- canonical[0] = 0;
- if (uprv_strlen(localeID) > 0) {
- uloc_canonicalize(localeID, canonical, sizeof(canonical), &tmpStatus);
- if (tmpStatus != U_ZERO_ERROR) {
+ int32_t resultCapacity = static_cast<int32_t>(uprv_strlen(localeID));
+ if (resultCapacity > 0) {
+ char* buffer;
+
+ for (;;) {
+ buffer = canonical.getAppendBuffer(
+ /*minCapacity=*/resultCapacity,
+ /*desiredCapacityHint=*/resultCapacity,
+ resultCapacity,
+ tmpStatus);
+
+ if (U_FAILURE(tmpStatus)) {
+ *status = tmpStatus;
+ return 0;
+ }
+
+ reslen =
+ uloc_canonicalize(localeID, buffer, resultCapacity, &tmpStatus);
+
+ if (tmpStatus != U_BUFFER_OVERFLOW_ERROR) {
+ break;
+ }
+
+ resultCapacity = reslen;
+ tmpStatus = U_ZERO_ERROR;
+ }
+
+ if (U_FAILURE(tmpStatus)) {
*status = U_ILLEGAL_ARGUMENT_ERROR;
return 0;
}
+
+ canonical.append(buffer, reslen, tmpStatus);
+ if (tmpStatus == U_STRING_NOT_TERMINATED_WARNING) {
+ tmpStatus = U_ZERO_ERROR; // Terminators provided by CharString.
+ }
+
+ if (U_FAILURE(tmpStatus)) {
+ *status = tmpStatus;
+ return 0;
+ }
}
+ reslen = 0;
+
/* For handling special case - private use only tag */
- pKeywordStart = locale_getKeywordsStart(canonical);
- if (pKeywordStart == canonical) {
+ pKeywordStart = locale_getKeywordsStart(canonical.data());
+ if (pKeywordStart == canonical.data()) {
UEnumeration *kwdEnum;
int kwdCnt = 0;
UBool done = FALSE;
- kwdEnum = uloc_openKeywords((const char*)canonical, &tmpStatus);
+ kwdEnum = uloc_openKeywords(canonical.data(), &tmpStatus);
if (kwdEnum != NULL) {
kwdCnt = uenum_count(kwdEnum, &tmpStatus);
if (kwdCnt == 1) {
@@ -2397,12 +2734,12 @@ uloc_toLanguageTag(const char* localeID,
}
}
- reslen += _appendLanguageToLanguageTag(canonical, langtag, langtagCapacity, strict, status);
- reslen += _appendScriptToLanguageTag(canonical, langtag + reslen, langtagCapacity - reslen, strict, status);
- reslen += _appendRegionToLanguageTag(canonical, langtag + reslen, langtagCapacity - reslen, strict, status);
- reslen += _appendVariantsToLanguageTag(canonical, langtag + reslen, langtagCapacity - reslen, strict, &hadPosix, status);
- reslen += _appendKeywordsToLanguageTag(canonical, langtag + reslen, langtagCapacity - reslen, strict, hadPosix, status);
- reslen += _appendPrivateuseToLanguageTag(canonical, langtag + reslen, langtagCapacity - reslen, strict, hadPosix, status);
+ reslen += _appendLanguageToLanguageTag(canonical.data(), langtag, langtagCapacity, strict, status);
+ reslen += _appendScriptToLanguageTag(canonical.data(), langtag + reslen, langtagCapacity - reslen, strict, status);
+ reslen += _appendRegionToLanguageTag(canonical.data(), langtag + reslen, langtagCapacity - reslen, strict, status);
+ reslen += _appendVariantsToLanguageTag(canonical.data(), langtag + reslen, langtagCapacity - reslen, strict, &hadPosix, status);
+ reslen += _appendKeywordsToLanguageTag(canonical.data(), langtag + reslen, langtagCapacity - reslen, strict, hadPosix, status);
+ reslen += _appendPrivateuseToLanguageTag(canonical.data(), langtag + reslen, langtagCapacity - reslen, strict, hadPosix, status);
return reslen;
}
@@ -2414,6 +2751,23 @@ uloc_forLanguageTag(const char* langtag,
int32_t localeIDCapacity,
int32_t* parsedLength,
UErrorCode* status) {
+ return ulocimp_forLanguageTag(
+ langtag,
+ -1,
+ localeID,
+ localeIDCapacity,
+ parsedLength,
+ status);
+}
+
+
+U_CAPI int32_t U_EXPORT2
+ulocimp_forLanguageTag(const char* langtag,
+ int32_t tagLen,
+ char* localeID,
+ int32_t localeIDCapacity,
+ int32_t* parsedLength,
+ UErrorCode* status) {
ULanguageTag *lt;
int32_t reslen = 0;
const char *subtag, *p;
@@ -2421,7 +2775,7 @@ uloc_forLanguageTag(const char* langtag,
int32_t i, n;
UBool noRegion = TRUE;
- lt = ultag_parse(langtag, -1, parsedLength, status);
+ lt = ultag_parse(langtag, tagLen, parsedLength, status);
if (U_FAILURE(*status)) {
return 0;
}
diff --git a/Build/source/libs/icu/icu-src/source/common/ulocimp.h b/Build/source/libs/icu/icu-src/source/common/ulocimp.h
index 869f296d022..aa2090ebba6 100644
--- a/Build/source/libs/icu/icu-src/source/common/ulocimp.h
+++ b/Build/source/libs/icu/icu-src/source/common/ulocimp.h
@@ -62,6 +62,38 @@ ulocimp_getCountry(const char *localeID,
const char **pEnd);
/**
+ * Returns a locale ID for the specified BCP47 language tag string.
+ * If the specified language tag contains any ill-formed subtags,
+ * the first such subtag and all following subtags are ignored.
+ * <p>
+ * This implements the 'Language-Tag' production of BCP47, and so
+ * supports grandfathered (regular and irregular) as well as private
+ * use language tags. Private use tags are represented as 'x-whatever',
+ * and grandfathered tags are converted to their canonical replacements
+ * where they exist. Note that a few grandfathered tags have no modern
+ * replacement, these will be converted using the fallback described in
+ * the first paragraph, so some information might be lost.
+ * @param langtag the input BCP47 language tag.
+ * @param tagLen the length of langtag, or -1 to call uprv_strlen().
+ * @param localeID the output buffer receiving a locale ID for the
+ * specified BCP47 language tag.
+ * @param localeIDCapacity the size of the locale ID output buffer.
+ * @param parsedLength if not NULL, successfully parsed length
+ * for the input language tag is set.
+ * @param err error information if receiving the locald ID
+ * failed.
+ * @return the length of the locale ID.
+ * @internal ICU 63
+ */
+U_CAPI int32_t U_EXPORT2
+ulocimp_forLanguageTag(const char* langtag,
+ int32_t tagLen,
+ char* localeID,
+ int32_t localeIDCapacity,
+ int32_t* parsedLength,
+ UErrorCode* err);
+
+/**
* Get the region to use for supplemental data lookup. Uses
* (1) any region specified by locale tag "rg"; if none then
* (2) any unicode_region_tag in the locale ID; if none then
diff --git a/Build/source/libs/icu/icu-src/source/common/umapfile.cpp b/Build/source/libs/icu/icu-src/source/common/umapfile.cpp
index 53699e762b2..175e1a93ef3 100644
--- a/Build/source/libs/icu/icu-src/source/common/umapfile.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/umapfile.cpp
@@ -22,6 +22,7 @@
#include "uposixdefs.h"
#include "unicode/putil.h"
+#include "unicode/ustring.h"
#include "udatamem.h"
#include "umapfile.h"
@@ -64,7 +65,7 @@
# include "unicode/udata.h"
# define LIB_PREFIX "lib"
# define LIB_SUFFIX ".dll"
- /* This is inconvienient until we figure out what to do with U_ICUDATA_NAME in utypes.h */
+ /* This is inconvenient until we figure out what to do with U_ICUDATA_NAME in utypes.h */
# define U_ICUDATA_ENTRY_NAME "icudt" U_ICU_VERSION_SHORT U_LIB_SUFFIX_C_NAME_STRING "_dat"
# endif
#elif MAP_IMPLEMENTATION==MAP_STDIO
@@ -84,7 +85,10 @@
*----------------------------------------------------------------------------*/
#if MAP_IMPLEMENTATION==MAP_NONE
U_CFUNC UBool
- uprv_mapFile(UDataMemory *pData, const char *path) {
+ uprv_mapFile(UDataMemory *pData, const char *path, UErrorCode *status) {
+ if (U_FAILURE(*status)) {
+ return FALSE;
+ }
UDataMemory_init(pData); /* Clear the output struct. */
return FALSE; /* no file access */
}
@@ -97,12 +101,17 @@
uprv_mapFile(
UDataMemory *pData, /* Fill in with info on the result doing the mapping. */
/* Output only; any original contents are cleared. */
- const char *path /* File path to be opened/mapped */
+ const char *path, /* File path to be opened/mapped. */
+ UErrorCode *status /* Error status, used to report out-of-memory errors. */
)
{
HANDLE map;
HANDLE file;
-
+
+ if (U_FAILURE(*status)) {
+ return FALSE;
+ }
+
UDataMemory_init(pData); /* Clear the output struct. */
/* open the input file */
@@ -111,28 +120,29 @@
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL|FILE_FLAG_RANDOM_ACCESS, NULL);
#else
- // First we need to go from char to UTF-16
- // u_UCharsToChars could work but it requires length.
- WCHAR utf16Path[MAX_PATH];
- int32_t i;
- for (i = 0; i < UPRV_LENGTHOF(utf16Path); i++)
- {
- utf16Path[i] = path[i];
- if (path[i] == '\0')
- {
- break;
- }
+ // Convert from UTF-8 string to UTF-16 string.
+ wchar_t utf16Path[MAX_PATH];
+ int32_t pathUtf16Len = 0;
+ u_strFromUTF8(reinterpret_cast<UChar*>(utf16Path), static_cast<int32_t>(UPRV_LENGTHOF(utf16Path)), &pathUtf16Len, path, -1, status);
+
+ if (U_FAILURE(*status)) {
+ return FALSE;
}
- if (i >= UPRV_LENGTHOF(utf16Path))
- {
- // Ran out of room, unlikely but be safe
- utf16Path[UPRV_LENGTHOF(utf16Path) - 1] = '\0';
+ if (*status == U_STRING_NOT_TERMINATED_WARNING) {
+ // Report back an error instead of a warning.
+ *status = U_BUFFER_OVERFLOW_ERROR;
+ return FALSE;
}
// TODO: Is it worth setting extended parameters to specify random access?
file = CreateFile2(utf16Path, GENERIC_READ, FILE_SHARE_READ, OPEN_EXISTING, NULL);
#endif
- if(file==INVALID_HANDLE_VALUE) {
+ if (file == INVALID_HANDLE_VALUE) {
+ // If we failed to open the file due to an out-of-memory error, then we want
+ // to report that error back to the caller.
+ if (HRESULT_FROM_WIN32(GetLastError()) == E_OUTOFMEMORY) {
+ *status = U_MEMORY_ALLOCATION_ERROR;
+ }
return FALSE;
}
@@ -165,7 +175,12 @@
map = CreateFileMappingFromApp(file, NULL, PAGE_READONLY, 0, NULL);
#endif
CloseHandle(file);
- if(map==NULL) {
+ if (map == NULL) {
+ // If we failed to create the mapping due to an out-of-memory error, then
+ // we want to report that error back to the caller.
+ if (HRESULT_FROM_WIN32(GetLastError()) == E_OUTOFMEMORY) {
+ *status = U_MEMORY_ALLOCATION_ERROR;
+ }
return FALSE;
}
@@ -193,12 +208,16 @@
#elif MAP_IMPLEMENTATION==MAP_POSIX
U_CFUNC UBool
- uprv_mapFile(UDataMemory *pData, const char *path) {
+ uprv_mapFile(UDataMemory *pData, const char *path, UErrorCode *status) {
int fd;
int length;
struct stat mystat;
void *data;
+ if (U_FAILURE(*status)) {
+ return FALSE;
+ }
+
UDataMemory_init(pData); /* Clear the output struct. */
/* determine the length of the file */
@@ -221,6 +240,7 @@
#endif
close(fd); /* no longer needed */
if(data==MAP_FAILED) {
+ // Possibly check the errno value for ENOMEM, and report U_MEMORY_ALLOCATION_ERROR?
return FALSE;
}
@@ -263,11 +283,15 @@
}
U_CFUNC UBool
- uprv_mapFile(UDataMemory *pData, const char *path) {
+ uprv_mapFile(UDataMemory *pData, const char *path, UErrorCode *status) {
FILE *file;
int32_t fileLength;
void *p;
+ if (U_FAILURE(*status)) {
+ return FALSE;
+ }
+
UDataMemory_init(pData); /* Clear the output struct. */
/* open the input file */
file=fopen(path, "rb");
@@ -286,6 +310,7 @@
p=uprv_malloc(fileLength);
if(p==NULL) {
fclose(file);
+ *status = U_MEMORY_ALLOCATION_ERROR;
return FALSE;
}
@@ -351,7 +376,7 @@
*
* TODO: This works the way ICU historically has, but the
* whole data fallback search path is so complicated that
- * proabably almost no one will ever really understand it,
+ * probably almost no one will ever really understand it,
* the potential for confusion is large. (It's not just
* this one function, but the whole scheme.)
*
@@ -391,7 +416,7 @@
# define DATA_TYPE "dat"
- U_CFUNC UBool uprv_mapFile(UDataMemory *pData, const char *path) {
+ U_CFUNC UBool uprv_mapFile(UDataMemory *pData, const char *path, UErrorCode *status) {
const char *inBasename;
char *basename;
char pathBuffer[1024];
@@ -399,6 +424,10 @@
dllhandle *handle;
void *val=0;
+ if (U_FAILURE(*status)) {
+ return FALSE;
+ }
+
inBasename=uprv_strrchr(path, U_FILE_SEP_CHAR);
if(inBasename==NULL) {
inBasename = path;
@@ -430,6 +459,7 @@
data=mmap(0, length, PROT_READ, MAP_PRIVATE, fd, 0);
close(fd); /* no longer needed */
if(data==MAP_FAILED) {
+ // Possibly check the errorno value for ENOMEM, and report U_MEMORY_ALLOCATION_ERROR?
return FALSE;
}
pData->map = (char *)data + length;
diff --git a/Build/source/libs/icu/icu-src/source/common/umapfile.h b/Build/source/libs/icu/icu-src/source/common/umapfile.h
index 24e476b11e9..92bd567a2a9 100644
--- a/Build/source/libs/icu/icu-src/source/common/umapfile.h
+++ b/Build/source/libs/icu/icu-src/source/common/umapfile.h
@@ -29,7 +29,7 @@
#include "unicode/udata.h"
#include "putilimp.h"
-U_CFUNC UBool uprv_mapFile(UDataMemory *pdm, const char *path);
+U_CFUNC UBool uprv_mapFile(UDataMemory *pdm, const char *path, UErrorCode *status);
U_CFUNC void uprv_unmapFile(UDataMemory *pData);
/* MAP_NONE: no memory mapping, no file access at all */
diff --git a/Build/source/libs/icu/icu-src/source/common/umutablecptrie.cpp b/Build/source/libs/icu/icu-src/source/common/umutablecptrie.cpp
new file mode 100644
index 00000000000..40af4b6c16a
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/common/umutablecptrie.cpp
@@ -0,0 +1,1678 @@
+// © 2017 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// umutablecptrie.cpp (inspired by utrie2_builder.cpp)
+// created: 2017dec29 Markus W. Scherer
+
+// #define UCPTRIE_DEBUG
+#ifdef UCPTRIE_DEBUG
+# include <stdio.h>
+#endif
+
+#include "unicode/utypes.h"
+#include "unicode/ucptrie.h"
+#include "unicode/umutablecptrie.h"
+#include "unicode/uobject.h"
+#include "unicode/utf16.h"
+#include "cmemory.h"
+#include "uassert.h"
+#include "ucptrie_impl.h"
+
+U_NAMESPACE_BEGIN
+
+namespace {
+
+constexpr int32_t MAX_UNICODE = 0x10ffff;
+
+constexpr int32_t UNICODE_LIMIT = 0x110000;
+constexpr int32_t BMP_LIMIT = 0x10000;
+constexpr int32_t ASCII_LIMIT = 0x80;
+
+constexpr int32_t I_LIMIT = UNICODE_LIMIT >> UCPTRIE_SHIFT_3;
+constexpr int32_t BMP_I_LIMIT = BMP_LIMIT >> UCPTRIE_SHIFT_3;
+constexpr int32_t ASCII_I_LIMIT = ASCII_LIMIT >> UCPTRIE_SHIFT_3;
+
+constexpr int32_t SMALL_DATA_BLOCKS_PER_BMP_BLOCK = (1 << (UCPTRIE_FAST_SHIFT - UCPTRIE_SHIFT_3));
+
+// Flag values for data blocks.
+constexpr uint8_t ALL_SAME = 0;
+constexpr uint8_t MIXED = 1;
+constexpr uint8_t SAME_AS = 2;
+
+/** Start with allocation of 16k data entries. */
+constexpr int32_t INITIAL_DATA_LENGTH = ((int32_t)1 << 14);
+
+/** Grow about 8x each time. */
+constexpr int32_t MEDIUM_DATA_LENGTH = ((int32_t)1 << 17);
+
+/**
+ * Maximum length of the build-time data array.
+ * One entry per 0x110000 code points.
+ */
+constexpr int32_t MAX_DATA_LENGTH = UNICODE_LIMIT;
+
+// Flag values for index-3 blocks while compacting/building.
+constexpr uint8_t I3_NULL = 0;
+constexpr uint8_t I3_BMP = 1;
+constexpr uint8_t I3_16 = 2;
+constexpr uint8_t I3_18 = 3;
+
+constexpr int32_t INDEX_3_18BIT_BLOCK_LENGTH = UCPTRIE_INDEX_3_BLOCK_LENGTH + UCPTRIE_INDEX_3_BLOCK_LENGTH / 8;
+
+class AllSameBlocks;
+
+class MutableCodePointTrie : public UMemory {
+public:
+ MutableCodePointTrie(uint32_t initialValue, uint32_t errorValue, UErrorCode &errorCode);
+ MutableCodePointTrie(const MutableCodePointTrie &other, UErrorCode &errorCode);
+ MutableCodePointTrie(const MutableCodePointTrie &other) = delete;
+ ~MutableCodePointTrie();
+
+ MutableCodePointTrie &operator=(const MutableCodePointTrie &other) = delete;
+
+ static MutableCodePointTrie *fromUCPMap(const UCPMap *map, UErrorCode &errorCode);
+ static MutableCodePointTrie *fromUCPTrie(const UCPTrie *trie, UErrorCode &errorCode);
+
+ uint32_t get(UChar32 c) const;
+ int32_t getRange(UChar32 start, UCPMapValueFilter *filter, const void *context,
+ uint32_t *pValue) const;
+
+ void set(UChar32 c, uint32_t value, UErrorCode &errorCode);
+ void setRange(UChar32 start, UChar32 end, uint32_t value, UErrorCode &errorCode);
+
+ UCPTrie *build(UCPTrieType type, UCPTrieValueWidth valueWidth, UErrorCode &errorCode);
+
+private:
+ void clear();
+
+ bool ensureHighStart(UChar32 c);
+ int32_t allocDataBlock(int32_t blockLength);
+ int32_t getDataBlock(int32_t i);
+
+ void maskValues(uint32_t mask);
+ UChar32 findHighStart() const;
+ int32_t compactWholeDataBlocks(int32_t fastILimit, AllSameBlocks &allSameBlocks);
+ int32_t compactData(int32_t fastILimit, uint32_t *newData, int32_t dataNullIndex);
+ int32_t compactIndex(int32_t fastILimit, UErrorCode &errorCode);
+ int32_t compactTrie(int32_t fastILimit, UErrorCode &errorCode);
+
+ uint32_t *index = nullptr;
+ int32_t indexCapacity = 0;
+ int32_t index3NullOffset = -1;
+ uint32_t *data = nullptr;
+ int32_t dataCapacity = 0;
+ int32_t dataLength = 0;
+ int32_t dataNullOffset = -1;
+
+ uint32_t origInitialValue;
+ uint32_t initialValue;
+ uint32_t errorValue;
+ UChar32 highStart;
+ uint32_t highValue;
+#ifdef UCPTRIE_DEBUG
+public:
+ const char *name;
+#endif
+private:
+ /** Temporary array while building the final data. */
+ uint16_t *index16 = nullptr;
+ uint8_t flags[UNICODE_LIMIT >> UCPTRIE_SHIFT_3];
+};
+
+MutableCodePointTrie::MutableCodePointTrie(uint32_t iniValue, uint32_t errValue, UErrorCode &errorCode) :
+ origInitialValue(iniValue), initialValue(iniValue), errorValue(errValue),
+ highStart(0), highValue(initialValue)
+#ifdef UCPTRIE_DEBUG
+ , name("open")
+#endif
+ {
+ if (U_FAILURE(errorCode)) { return; }
+ index = (uint32_t *)uprv_malloc(BMP_I_LIMIT * 4);
+ data = (uint32_t *)uprv_malloc(INITIAL_DATA_LENGTH * 4);
+ if (index == nullptr || data == nullptr) {
+ errorCode = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+ indexCapacity = BMP_I_LIMIT;
+ dataCapacity = INITIAL_DATA_LENGTH;
+}
+
+MutableCodePointTrie::MutableCodePointTrie(const MutableCodePointTrie &other, UErrorCode &errorCode) :
+ index3NullOffset(other.index3NullOffset),
+ dataNullOffset(other.dataNullOffset),
+ origInitialValue(other.origInitialValue), initialValue(other.initialValue),
+ errorValue(other.errorValue),
+ highStart(other.highStart), highValue(other.highValue)
+#ifdef UCPTRIE_DEBUG
+ , name("mutable clone")
+#endif
+ {
+ if (U_FAILURE(errorCode)) { return; }
+ int32_t iCapacity = highStart <= BMP_LIMIT ? BMP_I_LIMIT : I_LIMIT;
+ index = (uint32_t *)uprv_malloc(iCapacity * 4);
+ data = (uint32_t *)uprv_malloc(other.dataCapacity * 4);
+ if (index == nullptr || data == nullptr) {
+ errorCode = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+ indexCapacity = iCapacity;
+ dataCapacity = other.dataCapacity;
+
+ int32_t iLimit = highStart >> UCPTRIE_SHIFT_3;
+ uprv_memcpy(flags, other.flags, iLimit);
+ uprv_memcpy(index, other.index, iLimit * 4);
+ uprv_memcpy(data, other.data, (size_t)other.dataLength * 4);
+ dataLength = other.dataLength;
+ U_ASSERT(other.index16 == nullptr);
+}
+
+MutableCodePointTrie::~MutableCodePointTrie() {
+ uprv_free(index);
+ uprv_free(data);
+ uprv_free(index16);
+}
+
+MutableCodePointTrie *MutableCodePointTrie::fromUCPMap(const UCPMap *map, UErrorCode &errorCode) {
+ // Use the highValue as the initialValue to reduce the highStart.
+ uint32_t errorValue = ucpmap_get(map, -1);
+ uint32_t initialValue = ucpmap_get(map, 0x10ffff);
+ LocalPointer<MutableCodePointTrie> mutableTrie(
+ new MutableCodePointTrie(initialValue, errorValue, errorCode),
+ errorCode);
+ if (U_FAILURE(errorCode)) {
+ return nullptr;
+ }
+ UChar32 start = 0, end;
+ uint32_t value;
+ while ((end = ucpmap_getRange(map, start, UCPMAP_RANGE_NORMAL, 0,
+ nullptr, nullptr, &value)) >= 0) {
+ if (value != initialValue) {
+ if (start == end) {
+ mutableTrie->set(start, value, errorCode);
+ } else {
+ mutableTrie->setRange(start, end, value, errorCode);
+ }
+ }
+ start = end + 1;
+ }
+ if (U_SUCCESS(errorCode)) {
+ return mutableTrie.orphan();
+ } else {
+ return nullptr;
+ }
+}
+
+MutableCodePointTrie *MutableCodePointTrie::fromUCPTrie(const UCPTrie *trie, UErrorCode &errorCode) {
+ // Use the highValue as the initialValue to reduce the highStart.
+ uint32_t errorValue;
+ uint32_t initialValue;
+ switch (trie->valueWidth) {
+ case UCPTRIE_VALUE_BITS_16:
+ errorValue = trie->data.ptr16[trie->dataLength - UCPTRIE_ERROR_VALUE_NEG_DATA_OFFSET];
+ initialValue = trie->data.ptr16[trie->dataLength - UCPTRIE_HIGH_VALUE_NEG_DATA_OFFSET];
+ break;
+ case UCPTRIE_VALUE_BITS_32:
+ errorValue = trie->data.ptr32[trie->dataLength - UCPTRIE_ERROR_VALUE_NEG_DATA_OFFSET];
+ initialValue = trie->data.ptr32[trie->dataLength - UCPTRIE_HIGH_VALUE_NEG_DATA_OFFSET];
+ break;
+ case UCPTRIE_VALUE_BITS_8:
+ errorValue = trie->data.ptr8[trie->dataLength - UCPTRIE_ERROR_VALUE_NEG_DATA_OFFSET];
+ initialValue = trie->data.ptr8[trie->dataLength - UCPTRIE_HIGH_VALUE_NEG_DATA_OFFSET];
+ break;
+ default:
+ // Unreachable if the trie is properly initialized.
+ errorCode = U_ILLEGAL_ARGUMENT_ERROR;
+ return nullptr;
+ }
+ LocalPointer<MutableCodePointTrie> mutableTrie(
+ new MutableCodePointTrie(initialValue, errorValue, errorCode),
+ errorCode);
+ if (U_FAILURE(errorCode)) {
+ return nullptr;
+ }
+ UChar32 start = 0, end;
+ uint32_t value;
+ while ((end = ucptrie_getRange(trie, start, UCPMAP_RANGE_NORMAL, 0,
+ nullptr, nullptr, &value)) >= 0) {
+ if (value != initialValue) {
+ if (start == end) {
+ mutableTrie->set(start, value, errorCode);
+ } else {
+ mutableTrie->setRange(start, end, value, errorCode);
+ }
+ }
+ start = end + 1;
+ }
+ if (U_SUCCESS(errorCode)) {
+ return mutableTrie.orphan();
+ } else {
+ return nullptr;
+ }
+}
+
+void MutableCodePointTrie::clear() {
+ index3NullOffset = dataNullOffset = -1;
+ dataLength = 0;
+ highValue = initialValue = origInitialValue;
+ highStart = 0;
+ uprv_free(index16);
+ index16 = nullptr;
+}
+
+uint32_t MutableCodePointTrie::get(UChar32 c) const {
+ if ((uint32_t)c > MAX_UNICODE) {
+ return errorValue;
+ }
+ if (c >= highStart) {
+ return highValue;
+ }
+ int32_t i = c >> UCPTRIE_SHIFT_3;
+ if (flags[i] == ALL_SAME) {
+ return index[i];
+ } else {
+ return data[index[i] + (c & UCPTRIE_SMALL_DATA_MASK)];
+ }
+}
+
+inline uint32_t maybeFilterValue(uint32_t value, uint32_t initialValue, uint32_t nullValue,
+ UCPMapValueFilter *filter, const void *context) {
+ if (value == initialValue) {
+ value = nullValue;
+ } else if (filter != nullptr) {
+ value = filter(context, value);
+ }
+ return value;
+}
+
+UChar32 MutableCodePointTrie::getRange(
+ UChar32 start, UCPMapValueFilter *filter, const void *context,
+ uint32_t *pValue) const {
+ if ((uint32_t)start > MAX_UNICODE) {
+ return U_SENTINEL;
+ }
+ if (start >= highStart) {
+ if (pValue != nullptr) {
+ uint32_t value = highValue;
+ if (filter != nullptr) { value = filter(context, value); }
+ *pValue = value;
+ }
+ return MAX_UNICODE;
+ }
+ uint32_t nullValue = initialValue;
+ if (filter != nullptr) { nullValue = filter(context, nullValue); }
+ UChar32 c = start;
+ uint32_t value;
+ bool haveValue = false;
+ int32_t i = c >> UCPTRIE_SHIFT_3;
+ do {
+ if (flags[i] == ALL_SAME) {
+ uint32_t value2 = maybeFilterValue(index[i], initialValue, nullValue,
+ filter, context);
+ if (haveValue) {
+ if (value2 != value) {
+ return c - 1;
+ }
+ } else {
+ value = value2;
+ if (pValue != nullptr) { *pValue = value; }
+ haveValue = true;
+ }
+ c = (c + UCPTRIE_SMALL_DATA_BLOCK_LENGTH) & ~UCPTRIE_SMALL_DATA_MASK;
+ } else /* MIXED */ {
+ int32_t di = index[i] + (c & UCPTRIE_SMALL_DATA_MASK);
+ uint32_t value2 = maybeFilterValue(data[di], initialValue, nullValue,
+ filter, context);
+ if (haveValue) {
+ if (value2 != value) {
+ return c - 1;
+ }
+ } else {
+ value = value2;
+ if (pValue != nullptr) { *pValue = value; }
+ haveValue = true;
+ }
+ while ((++c & UCPTRIE_SMALL_DATA_MASK) != 0) {
+ if (maybeFilterValue(data[++di], initialValue, nullValue,
+ filter, context) != value) {
+ return c - 1;
+ }
+ }
+ }
+ ++i;
+ } while (c < highStart);
+ U_ASSERT(haveValue);
+ if (maybeFilterValue(highValue, initialValue, nullValue,
+ filter, context) != value) {
+ return c - 1;
+ } else {
+ return MAX_UNICODE;
+ }
+}
+
+void
+writeBlock(uint32_t *block, uint32_t value) {
+ uint32_t *limit = block + UCPTRIE_SMALL_DATA_BLOCK_LENGTH;
+ while (block < limit) {
+ *block++ = value;
+ }
+}
+
+bool MutableCodePointTrie::ensureHighStart(UChar32 c) {
+ if (c >= highStart) {
+ // Round up to a UCPTRIE_CP_PER_INDEX_2_ENTRY boundary to simplify compaction.
+ c = (c + UCPTRIE_CP_PER_INDEX_2_ENTRY) & ~(UCPTRIE_CP_PER_INDEX_2_ENTRY - 1);
+ int32_t i = highStart >> UCPTRIE_SHIFT_3;
+ int32_t iLimit = c >> UCPTRIE_SHIFT_3;
+ if (iLimit > indexCapacity) {
+ uint32_t *newIndex = (uint32_t *)uprv_malloc(I_LIMIT * 4);
+ if (newIndex == nullptr) { return false; }
+ uprv_memcpy(newIndex, index, i * 4);
+ uprv_free(index);
+ index = newIndex;
+ indexCapacity = I_LIMIT;
+ }
+ do {
+ flags[i] = ALL_SAME;
+ index[i] = initialValue;
+ } while(++i < iLimit);
+ highStart = c;
+ }
+ return true;
+}
+
+int32_t MutableCodePointTrie::allocDataBlock(int32_t blockLength) {
+ int32_t newBlock = dataLength;
+ int32_t newTop = newBlock + blockLength;
+ if (newTop > dataCapacity) {
+ int32_t capacity;
+ if (dataCapacity < MEDIUM_DATA_LENGTH) {
+ capacity = MEDIUM_DATA_LENGTH;
+ } else if (dataCapacity < MAX_DATA_LENGTH) {
+ capacity = MAX_DATA_LENGTH;
+ } else {
+ // Should never occur.
+ // Either MAX_DATA_LENGTH is incorrect,
+ // or the code writes more values than should be possible.
+ return -1;
+ }
+ uint32_t *newData = (uint32_t *)uprv_malloc(capacity * 4);
+ if (newData == nullptr) {
+ return -1;
+ }
+ uprv_memcpy(newData, data, (size_t)dataLength * 4);
+ uprv_free(data);
+ data = newData;
+ dataCapacity = capacity;
+ }
+ dataLength = newTop;
+ return newBlock;
+}
+
+/**
+ * No error checking for illegal arguments.
+ *
+ * @return -1 if no new data block available (out of memory in data array)
+ * @internal
+ */
+int32_t MutableCodePointTrie::getDataBlock(int32_t i) {
+ if (flags[i] == MIXED) {
+ return index[i];
+ }
+ if (i < BMP_I_LIMIT) {
+ int32_t newBlock = allocDataBlock(UCPTRIE_FAST_DATA_BLOCK_LENGTH);
+ if (newBlock < 0) { return newBlock; }
+ int32_t iStart = i & ~(SMALL_DATA_BLOCKS_PER_BMP_BLOCK -1);
+ int32_t iLimit = iStart + SMALL_DATA_BLOCKS_PER_BMP_BLOCK;
+ do {
+ U_ASSERT(flags[iStart] == ALL_SAME);
+ writeBlock(data + newBlock, index[iStart]);
+ flags[iStart] = MIXED;
+ index[iStart++] = newBlock;
+ newBlock += UCPTRIE_SMALL_DATA_BLOCK_LENGTH;
+ } while (iStart < iLimit);
+ return index[i];
+ } else {
+ int32_t newBlock = allocDataBlock(UCPTRIE_SMALL_DATA_BLOCK_LENGTH);
+ if (newBlock < 0) { return newBlock; }
+ writeBlock(data + newBlock, index[i]);
+ flags[i] = MIXED;
+ index[i] = newBlock;
+ return newBlock;
+ }
+}
+
+void MutableCodePointTrie::set(UChar32 c, uint32_t value, UErrorCode &errorCode) {
+ if (U_FAILURE(errorCode)) {
+ return;
+ }
+ if ((uint32_t)c > MAX_UNICODE) {
+ errorCode = U_ILLEGAL_ARGUMENT_ERROR;
+ return;
+ }
+
+ int32_t block;
+ if (!ensureHighStart(c) || (block = getDataBlock(c >> UCPTRIE_SHIFT_3)) < 0) {
+ errorCode = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+
+ data[block + (c & UCPTRIE_SMALL_DATA_MASK)] = value;
+}
+
+void
+fillBlock(uint32_t *block, UChar32 start, UChar32 limit, uint32_t value) {
+ uint32_t *pLimit = block + limit;
+ block += start;
+ while (block < pLimit) {
+ *block++ = value;
+ }
+}
+
+void MutableCodePointTrie::setRange(UChar32 start, UChar32 end, uint32_t value, UErrorCode &errorCode) {
+ if (U_FAILURE(errorCode)) {
+ return;
+ }
+ if ((uint32_t)start > MAX_UNICODE || (uint32_t)end > MAX_UNICODE || start > end) {
+ errorCode = U_ILLEGAL_ARGUMENT_ERROR;
+ return;
+ }
+ if (!ensureHighStart(end)) {
+ errorCode = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+
+ UChar32 limit = end + 1;
+ if (start & UCPTRIE_SMALL_DATA_MASK) {
+ // Set partial block at [start..following block boundary[.
+ int32_t block = getDataBlock(start >> UCPTRIE_SHIFT_3);
+ if (block < 0) {
+ errorCode = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+
+ UChar32 nextStart = (start + UCPTRIE_SMALL_DATA_MASK) & ~UCPTRIE_SMALL_DATA_MASK;
+ if (nextStart <= limit) {
+ fillBlock(data + block, start & UCPTRIE_SMALL_DATA_MASK, UCPTRIE_SMALL_DATA_BLOCK_LENGTH,
+ value);
+ start = nextStart;
+ } else {
+ fillBlock(data + block, start & UCPTRIE_SMALL_DATA_MASK, limit & UCPTRIE_SMALL_DATA_MASK,
+ value);
+ return;
+ }
+ }
+
+ // Number of positions in the last, partial block.
+ int32_t rest = limit & UCPTRIE_SMALL_DATA_MASK;
+
+ // Round down limit to a block boundary.
+ limit &= ~UCPTRIE_SMALL_DATA_MASK;
+
+ // Iterate over all-value blocks.
+ while (start < limit) {
+ int32_t i = start >> UCPTRIE_SHIFT_3;
+ if (flags[i] == ALL_SAME) {
+ index[i] = value;
+ } else /* MIXED */ {
+ fillBlock(data + index[i], 0, UCPTRIE_SMALL_DATA_BLOCK_LENGTH, value);
+ }
+ start += UCPTRIE_SMALL_DATA_BLOCK_LENGTH;
+ }
+
+ if (rest > 0) {
+ // Set partial block at [last block boundary..limit[.
+ int32_t block = getDataBlock(start >> UCPTRIE_SHIFT_3);
+ if (block < 0) {
+ errorCode = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+
+ fillBlock(data + block, 0, rest, value);
+ }
+}
+
+/* compaction --------------------------------------------------------------- */
+
+void MutableCodePointTrie::maskValues(uint32_t mask) {
+ initialValue &= mask;
+ errorValue &= mask;
+ highValue &= mask;
+ int32_t iLimit = highStart >> UCPTRIE_SHIFT_3;
+ for (int32_t i = 0; i < iLimit; ++i) {
+ if (flags[i] == ALL_SAME) {
+ index[i] &= mask;
+ }
+ }
+ for (int32_t i = 0; i < dataLength; ++i) {
+ data[i] &= mask;
+ }
+}
+
+inline bool
+equalBlocks(const uint32_t *s, const uint32_t *t, int32_t length) {
+ while (length > 0 && *s == *t) {
+ ++s;
+ ++t;
+ --length;
+ }
+ return length == 0;
+}
+
+inline bool
+equalBlocks(const uint16_t *s, const uint32_t *t, int32_t length) {
+ while (length > 0 && *s == *t) {
+ ++s;
+ ++t;
+ --length;
+ }
+ return length == 0;
+}
+
+inline bool
+equalBlocks(const uint16_t *s, const uint16_t *t, int32_t length) {
+ while (length > 0 && *s == *t) {
+ ++s;
+ ++t;
+ --length;
+ }
+ return length == 0;
+}
+
+bool allValuesSameAs(const uint32_t *p, int32_t length, uint32_t value) {
+ const uint32_t *pLimit = p + length;
+ while (p < pLimit && *p == value) { ++p; }
+ return p == pLimit;
+}
+
+/** Search for an identical block. */
+int32_t findSameBlock(const uint32_t *p, int32_t pStart, int32_t length,
+ const uint32_t *q, int32_t qStart, int32_t blockLength) {
+ // Ensure that we do not even partially get past length.
+ length -= blockLength;
+
+ q += qStart;
+ while (pStart <= length) {
+ if (equalBlocks(p + pStart, q, blockLength)) {
+ return pStart;
+ }
+ ++pStart;
+ }
+ return -1;
+}
+
+int32_t findSameBlock(const uint16_t *p, int32_t pStart, int32_t length,
+ const uint32_t *q, int32_t qStart, int32_t blockLength) {
+ // Ensure that we do not even partially get past length.
+ length -= blockLength;
+
+ q += qStart;
+ while (pStart <= length) {
+ if (equalBlocks(p + pStart, q, blockLength)) {
+ return pStart;
+ }
+ ++pStart;
+ }
+ return -1;
+}
+
+int32_t findSameBlock(const uint16_t *p, int32_t pStart, int32_t length,
+ const uint16_t *q, int32_t qStart, int32_t blockLength) {
+ // Ensure that we do not even partially get past length.
+ length -= blockLength;
+
+ q += qStart;
+ while (pStart <= length) {
+ if (equalBlocks(p + pStart, q, blockLength)) {
+ return pStart;
+ }
+ ++pStart;
+ }
+ return -1;
+}
+
+int32_t findAllSameBlock(const uint32_t *p, int32_t start, int32_t limit,
+ uint32_t value, int32_t blockLength) {
+ // Ensure that we do not even partially get past limit.
+ limit -= blockLength;
+
+ for (int32_t block = start; block <= limit; ++block) {
+ if (p[block] == value) {
+ for (int32_t i = 1;; ++i) {
+ if (i == blockLength) {
+ return block;
+ }
+ if (p[block + i] != value) {
+ block += i;
+ break;
+ }
+ }
+ }
+ }
+ return -1;
+}
+
+/**
+ * Look for maximum overlap of the beginning of the other block
+ * with the previous, adjacent block.
+ */
+int32_t getOverlap(const uint32_t *p, int32_t length,
+ const uint32_t *q, int32_t qStart, int32_t blockLength) {
+ int32_t overlap = blockLength - 1;
+ U_ASSERT(overlap <= length);
+ q += qStart;
+ while (overlap > 0 && !equalBlocks(p + (length - overlap), q, overlap)) {
+ --overlap;
+ }
+ return overlap;
+}
+
+int32_t getOverlap(const uint16_t *p, int32_t length,
+ const uint32_t *q, int32_t qStart, int32_t blockLength) {
+ int32_t overlap = blockLength - 1;
+ U_ASSERT(overlap <= length);
+ q += qStart;
+ while (overlap > 0 && !equalBlocks(p + (length - overlap), q, overlap)) {
+ --overlap;
+ }
+ return overlap;
+}
+
+int32_t getOverlap(const uint16_t *p, int32_t length,
+ const uint16_t *q, int32_t qStart, int32_t blockLength) {
+ int32_t overlap = blockLength - 1;
+ U_ASSERT(overlap <= length);
+ q += qStart;
+ while (overlap > 0 && !equalBlocks(p + (length - overlap), q, overlap)) {
+ --overlap;
+ }
+ return overlap;
+}
+
+int32_t getAllSameOverlap(const uint32_t *p, int32_t length, uint32_t value,
+ int32_t blockLength) {
+ int32_t min = length - (blockLength - 1);
+ int32_t i = length;
+ while (min < i && p[i - 1] == value) { --i; }
+ return length - i;
+}
+
+bool isStartOfSomeFastBlock(uint32_t dataOffset, const uint32_t index[], int32_t fastILimit) {
+ for (int32_t i = 0; i < fastILimit; i += SMALL_DATA_BLOCKS_PER_BMP_BLOCK) {
+ if (index[i] == dataOffset) {
+ return true;
+ }
+ }
+ return false;
+}
+
+/**
+ * Finds the start of the last range in the trie by enumerating backward.
+ * Indexes for code points higher than this will be omitted.
+ */
+UChar32 MutableCodePointTrie::findHighStart() const {
+ int32_t i = highStart >> UCPTRIE_SHIFT_3;
+ while (i > 0) {
+ bool match;
+ if (flags[--i] == ALL_SAME) {
+ match = index[i] == highValue;
+ } else /* MIXED */ {
+ const uint32_t *p = data + index[i];
+ for (int32_t j = 0;; ++j) {
+ if (j == UCPTRIE_SMALL_DATA_BLOCK_LENGTH) {
+ match = true;
+ break;
+ }
+ if (p[j] != highValue) {
+ match = false;
+ break;
+ }
+ }
+ }
+ if (!match) {
+ return (i + 1) << UCPTRIE_SHIFT_3;
+ }
+ }
+ return 0;
+}
+
+class AllSameBlocks {
+public:
+ static constexpr int32_t NEW_UNIQUE = -1;
+ static constexpr int32_t OVERFLOW = -2;
+
+ AllSameBlocks() : length(0), mostRecent(-1) {}
+
+ int32_t findOrAdd(int32_t index, int32_t count, uint32_t value) {
+ if (mostRecent >= 0 && values[mostRecent] == value) {
+ refCounts[mostRecent] += count;
+ return indexes[mostRecent];
+ }
+ for (int32_t i = 0; i < length; ++i) {
+ if (values[i] == value) {
+ mostRecent = i;
+ refCounts[i] += count;
+ return indexes[i];
+ }
+ }
+ if (length == CAPACITY) {
+ return OVERFLOW;
+ }
+ mostRecent = length;
+ indexes[length] = index;
+ values[length] = value;
+ refCounts[length++] = count;
+ return NEW_UNIQUE;
+ }
+
+ /** Replaces the block which has the lowest reference count. */
+ void add(int32_t index, int32_t count, uint32_t value) {
+ U_ASSERT(length == CAPACITY);
+ int32_t least = -1;
+ int32_t leastCount = I_LIMIT;
+ for (int32_t i = 0; i < length; ++i) {
+ U_ASSERT(values[i] != value);
+ if (refCounts[i] < leastCount) {
+ least = i;
+ leastCount = refCounts[i];
+ }
+ }
+ U_ASSERT(least >= 0);
+ mostRecent = least;
+ indexes[least] = index;
+ values[least] = value;
+ refCounts[least] = count;
+ }
+
+ int32_t findMostUsed() const {
+ if (length == 0) { return -1; }
+ int32_t max = -1;
+ int32_t maxCount = 0;
+ for (int32_t i = 0; i < length; ++i) {
+ if (refCounts[i] > maxCount) {
+ max = i;
+ maxCount = refCounts[i];
+ }
+ }
+ return indexes[max];
+ }
+
+private:
+ static constexpr int32_t CAPACITY = 32;
+
+ int32_t length;
+ int32_t mostRecent;
+
+ int32_t indexes[CAPACITY];
+ uint32_t values[CAPACITY];
+ int32_t refCounts[CAPACITY];
+};
+
+int32_t MutableCodePointTrie::compactWholeDataBlocks(int32_t fastILimit, AllSameBlocks &allSameBlocks) {
+#ifdef UCPTRIE_DEBUG
+ bool overflow = false;
+#endif
+
+ // ASCII data will be stored as a linear table, even if the following code
+ // does not yet count it that way.
+ int32_t newDataCapacity = ASCII_LIMIT;
+ // Add room for a small data null block in case it would match the start of
+ // a fast data block where dataNullOffset must not be set in that case.
+ newDataCapacity += UCPTRIE_SMALL_DATA_BLOCK_LENGTH;
+ // Add room for special values (errorValue, highValue) and padding.
+ newDataCapacity += 4;
+ int32_t iLimit = highStart >> UCPTRIE_SHIFT_3;
+ int32_t blockLength = UCPTRIE_FAST_DATA_BLOCK_LENGTH;
+ int32_t inc = SMALL_DATA_BLOCKS_PER_BMP_BLOCK;
+ for (int32_t i = 0; i < iLimit; i += inc) {
+ if (i == fastILimit) {
+ blockLength = UCPTRIE_SMALL_DATA_BLOCK_LENGTH;
+ inc = 1;
+ }
+ uint32_t value = index[i];
+ if (flags[i] == MIXED) {
+ // Really mixed?
+ const uint32_t *p = data + value;
+ value = *p;
+ if (allValuesSameAs(p + 1, blockLength - 1, value)) {
+ flags[i] = ALL_SAME;
+ index[i] = value;
+ // Fall through to ALL_SAME handling.
+ } else {
+ newDataCapacity += blockLength;
+ continue;
+ }
+ } else {
+ U_ASSERT(flags[i] == ALL_SAME);
+ if (inc > 1) {
+ // Do all of the fast-range data block's ALL_SAME parts have the same value?
+ bool allSame = true;
+ int32_t next_i = i + inc;
+ for (int32_t j = i + 1; j < next_i; ++j) {
+ U_ASSERT(flags[j] == ALL_SAME);
+ if (index[j] != value) {
+ allSame = false;
+ break;
+ }
+ }
+ if (!allSame) {
+ // Turn it into a MIXED block.
+ if (getDataBlock(i) < 0) {
+ return -1;
+ }
+ newDataCapacity += blockLength;
+ continue;
+ }
+ }
+ }
+ // Is there another ALL_SAME block with the same value?
+ int32_t other = allSameBlocks.findOrAdd(i, inc, value);
+ if (other == AllSameBlocks::OVERFLOW) {
+ // The fixed-size array overflowed. Slow check for a duplicate block.
+#ifdef UCPTRIE_DEBUG
+ if (!overflow) {
+ puts("UCPTrie AllSameBlocks overflow");
+ overflow = true;
+ }
+#endif
+ int32_t jInc = SMALL_DATA_BLOCKS_PER_BMP_BLOCK;
+ for (int32_t j = 0;; j += jInc) {
+ if (j == i) {
+ allSameBlocks.add(i, inc, value);
+ break;
+ }
+ if (j == fastILimit) {
+ jInc = 1;
+ }
+ if (flags[j] == ALL_SAME && index[j] == value) {
+ allSameBlocks.add(j, jInc + inc, value);
+ other = j;
+ break;
+ // We could keep counting blocks with the same value
+ // before we add the first one, which may improve compaction in rare cases,
+ // but it would make it slower.
+ }
+ }
+ }
+ if (other >= 0) {
+ flags[i] = SAME_AS;
+ index[i] = other;
+ } else {
+ // New unique same-value block.
+ newDataCapacity += blockLength;
+ }
+ }
+ return newDataCapacity;
+}
+
+#ifdef UCPTRIE_DEBUG
+# define DEBUG_DO(expr) expr
+#else
+# define DEBUG_DO(expr)
+#endif
+
+#ifdef UCPTRIE_DEBUG
+// Braille symbols: U+28xx = UTF-8 E2 A0 80..E2 A3 BF
+int32_t appendValue(char s[], int32_t length, uint32_t value) {
+ value ^= value >> 16;
+ value ^= value >> 8;
+ s[length] = 0xE2;
+ s[length + 1] = (char)(0xA0 + ((value >> 6) & 3));
+ s[length + 2] = (char)(0x80 + (value & 0x3F));
+ return length + 3;
+}
+
+void printBlock(const uint32_t *block, int32_t blockLength, uint32_t value,
+ UChar32 start, int32_t overlap, uint32_t initialValue) {
+ char s[UCPTRIE_FAST_DATA_BLOCK_LENGTH * 3 + 3];
+ int32_t length = 0;
+ int32_t i;
+ for (i = 0; i < overlap; ++i) {
+ length = appendValue(s, length, 0); // Braille blank
+ }
+ s[length++] = '|';
+ for (; i < blockLength; ++i) {
+ if (block != nullptr) {
+ value = block[i];
+ }
+ if (value == initialValue) {
+ value = 0x40; // Braille lower left dot
+ }
+ length = appendValue(s, length, value);
+ }
+ s[length] = 0;
+ start += overlap;
+ if (start <= 0xffff) {
+ printf(" %04lX %s|\n", (long)start, s);
+ } else if (start <= 0xfffff) {
+ printf(" %5lX %s|\n", (long)start, s);
+ } else {
+ printf(" %6lX %s|\n", (long)start, s);
+ }
+}
+#endif
+
+/**
+ * Compacts a build-time trie.
+ *
+ * The compaction
+ * - removes blocks that are identical with earlier ones
+ * - overlaps each new non-duplicate block as much as possible with the previously-written one
+ * - works with fast-range data blocks whose length is a multiple of that of
+ * higher-code-point data blocks
+ *
+ * It does not try to find an optimal order of writing, deduplicating, and overlapping blocks.
+ */
+int32_t MutableCodePointTrie::compactData(int32_t fastILimit,
+ uint32_t *newData, int32_t dataNullIndex) {
+#ifdef UCPTRIE_DEBUG
+ int32_t countSame=0, sumOverlaps=0;
+ bool printData = dataLength == 29088 /* line.brk */ ||
+ // dataLength == 30048 /* CanonIterData */ ||
+ dataLength == 50400 /* zh.txt~stroke */;
+#endif
+
+ // The linear ASCII data has been copied into newData already.
+ int32_t newDataLength = 0;
+ for (int32_t i = 0; newDataLength < ASCII_LIMIT;
+ newDataLength += UCPTRIE_FAST_DATA_BLOCK_LENGTH, i += SMALL_DATA_BLOCKS_PER_BMP_BLOCK) {
+ index[i] = newDataLength;
+#ifdef UCPTRIE_DEBUG
+ if (printData) {
+ printBlock(newData + newDataLength, UCPTRIE_FAST_DATA_BLOCK_LENGTH, 0, newDataLength, 0, initialValue);
+ }
+#endif
+ }
+
+ int32_t iLimit = highStart >> UCPTRIE_SHIFT_3;
+ int32_t blockLength = UCPTRIE_FAST_DATA_BLOCK_LENGTH;
+ int32_t inc = SMALL_DATA_BLOCKS_PER_BMP_BLOCK;
+ int32_t fastLength = 0;
+ for (int32_t i = ASCII_I_LIMIT; i < iLimit; i += inc) {
+ if (i == fastILimit) {
+ blockLength = UCPTRIE_SMALL_DATA_BLOCK_LENGTH;
+ inc = 1;
+ fastLength = newDataLength;
+ }
+ if (flags[i] == ALL_SAME) {
+ uint32_t value = index[i];
+ int32_t n;
+ // Find an earlier part of the data array of length blockLength
+ // that is filled with this value.
+ // If we find a match, and the current block is the data null block,
+ // and it is not a fast block but matches the start of a fast block,
+ // then we need to continue looking.
+ // This is because this small block is shorter than the fast block,
+ // and not all of the rest of the fast block is filled with this value.
+ // Otherwise trie.getRange() would detect that the fast block starts at
+ // dataNullOffset and assume incorrectly that it is filled with the null value.
+ for (int32_t start = 0;
+ (n = findAllSameBlock(newData, start, newDataLength,
+ value, blockLength)) >= 0 &&
+ i == dataNullIndex && i >= fastILimit && n < fastLength &&
+ isStartOfSomeFastBlock(n, index, fastILimit);
+ start = n + 1) {}
+ if (n >= 0) {
+ DEBUG_DO(++countSame);
+ index[i] = n;
+ } else {
+ n = getAllSameOverlap(newData, newDataLength, value, blockLength);
+ DEBUG_DO(sumOverlaps += n);
+#ifdef UCPTRIE_DEBUG
+ if (printData) {
+ printBlock(nullptr, blockLength, value, i << UCPTRIE_SHIFT_3, n, initialValue);
+ }
+#endif
+ index[i] = newDataLength - n;
+ while (n < blockLength) {
+ newData[newDataLength++] = value;
+ ++n;
+ }
+ }
+ } else if (flags[i] == MIXED) {
+ const uint32_t *block = data + index[i];
+ int32_t n = findSameBlock(newData, 0, newDataLength, block, 0, blockLength);
+ if (n >= 0) {
+ DEBUG_DO(++countSame);
+ index[i] = n;
+ } else {
+ n = getOverlap(newData, newDataLength, block, 0, blockLength);
+ DEBUG_DO(sumOverlaps += n);
+#ifdef UCPTRIE_DEBUG
+ if (printData) {
+ printBlock(block, blockLength, 0, i << UCPTRIE_SHIFT_3, n, initialValue);
+ }
+#endif
+ index[i] = newDataLength - n;
+ while (n < blockLength) {
+ newData[newDataLength++] = block[n++];
+ }
+ }
+ } else /* SAME_AS */ {
+ uint32_t j = index[i];
+ index[i] = index[j];
+ }
+ }
+
+#ifdef UCPTRIE_DEBUG
+ /* we saved some space */
+ printf("compacting UCPTrie: count of 32-bit data words %lu->%lu countSame=%ld sumOverlaps=%ld\n",
+ (long)dataLength, (long)newDataLength, (long)countSame, (long)sumOverlaps);
+#endif
+ return newDataLength;
+}
+
+int32_t MutableCodePointTrie::compactIndex(int32_t fastILimit, UErrorCode &errorCode) {
+ int32_t fastIndexLength = fastILimit >> (UCPTRIE_FAST_SHIFT - UCPTRIE_SHIFT_3);
+ if ((highStart >> UCPTRIE_FAST_SHIFT) <= fastIndexLength) {
+ // Only the linear fast index, no multi-stage index tables.
+ index3NullOffset = UCPTRIE_NO_INDEX3_NULL_OFFSET;
+ return fastIndexLength;
+ }
+
+ // Condense the fast index table.
+ // Also, does it contain an index-3 block with all dataNullOffset?
+ uint16_t fastIndex[UCPTRIE_BMP_INDEX_LENGTH]; // fastIndexLength
+ int32_t i3FirstNull = -1;
+ for (int32_t i = 0, j = 0; i < fastILimit; ++j) {
+ uint32_t i3 = index[i];
+ fastIndex[j] = (uint16_t)i3;
+ if (i3 == (uint32_t)dataNullOffset) {
+ if (i3FirstNull < 0) {
+ i3FirstNull = j;
+ } else if (index3NullOffset < 0 &&
+ (j - i3FirstNull + 1) == UCPTRIE_INDEX_3_BLOCK_LENGTH) {
+ index3NullOffset = i3FirstNull;
+ }
+ } else {
+ i3FirstNull = -1;
+ }
+ // Set the index entries that compactData() skipped.
+ // Needed when the multi-stage index covers the fast index range as well.
+ int32_t iNext = i + SMALL_DATA_BLOCKS_PER_BMP_BLOCK;
+ while (++i < iNext) {
+ i3 += UCPTRIE_SMALL_DATA_BLOCK_LENGTH;
+ index[i] = i3;
+ }
+ }
+
+ // Examine index-3 blocks. For each determine one of:
+ // - same as the index-3 null block
+ // - same as a fast-index block
+ // - 16-bit indexes
+ // - 18-bit indexes
+ // We store this in the first flags entry for the index-3 block.
+ //
+ // Also determine an upper limit for the index-3 table length.
+ int32_t index3Capacity = 0;
+ i3FirstNull = index3NullOffset;
+ // If the fast index covers the whole BMP, then
+ // the multi-stage index is only for supplementary code points.
+ // Otherwise, the multi-stage index covers all of Unicode.
+ int32_t iStart = fastILimit < BMP_I_LIMIT ? 0 : BMP_I_LIMIT;
+ int32_t iLimit = highStart >> UCPTRIE_SHIFT_3;
+ for (int32_t i = iStart; i < iLimit;) {
+ int32_t j = i;
+ int32_t jLimit = i + UCPTRIE_INDEX_3_BLOCK_LENGTH;
+ uint32_t oredI3 = 0;
+ bool isNull = true;
+ do {
+ uint32_t i3 = index[j];
+ oredI3 |= i3;
+ if (i3 != (uint32_t)dataNullOffset) {
+ isNull = false;
+ }
+ } while (++j < jLimit);
+ if (isNull) {
+ flags[i] = I3_NULL;
+ if (i3FirstNull < 0) {
+ if (oredI3 <= 0xffff) {
+ index3Capacity += UCPTRIE_INDEX_3_BLOCK_LENGTH;
+ } else {
+ index3Capacity += INDEX_3_18BIT_BLOCK_LENGTH;
+ }
+ i3FirstNull = 0;
+ }
+ } else {
+ if (oredI3 <= 0xffff) {
+ int32_t n = findSameBlock(fastIndex, 0, fastIndexLength,
+ index, i, UCPTRIE_INDEX_3_BLOCK_LENGTH);
+ if (n >= 0) {
+ flags[i] = I3_BMP;
+ index[i] = n;
+ } else {
+ flags[i] = I3_16;
+ index3Capacity += UCPTRIE_INDEX_3_BLOCK_LENGTH;
+ }
+ } else {
+ flags[i] = I3_18;
+ index3Capacity += INDEX_3_18BIT_BLOCK_LENGTH;
+ }
+ }
+ i = j;
+ }
+
+ int32_t index2Capacity = (iLimit - iStart) >> UCPTRIE_SHIFT_2_3;
+
+ // Length of the index-1 table, rounded up.
+ int32_t index1Length = (index2Capacity + UCPTRIE_INDEX_2_MASK) >> UCPTRIE_SHIFT_1_2;
+
+ // Index table: Fast index, index-1, index-3, index-2.
+ // +1 for possible index table padding.
+ int32_t index16Capacity = fastIndexLength + index1Length + index3Capacity + index2Capacity + 1;
+ index16 = (uint16_t *)uprv_malloc(index16Capacity * 2);
+ if (index16 == nullptr) {
+ errorCode = U_MEMORY_ALLOCATION_ERROR;
+ return 0;
+ }
+ uprv_memcpy(index16, fastIndex, fastIndexLength * 2);
+
+ // Compact the index-3 table and write an uncompacted version of the index-2 table.
+ uint16_t index2[UNICODE_LIMIT >> UCPTRIE_SHIFT_2]; // index2Capacity
+ int32_t i2Length = 0;
+ i3FirstNull = index3NullOffset;
+ int32_t index3Start = fastIndexLength + index1Length;
+ int32_t indexLength = index3Start;
+ for (int32_t i = iStart; i < iLimit; i += UCPTRIE_INDEX_3_BLOCK_LENGTH) {
+ int32_t i3;
+ uint8_t f = flags[i];
+ if (f == I3_NULL && i3FirstNull < 0) {
+ // First index-3 null block. Write & overlap it like a normal block, then remember it.
+ f = dataNullOffset <= 0xffff ? I3_16 : I3_18;
+ i3FirstNull = 0;
+ }
+ if (f == I3_NULL) {
+ i3 = index3NullOffset;
+ } else if (f == I3_BMP) {
+ i3 = index[i];
+ } else if (f == I3_16) {
+ int32_t n = findSameBlock(index16, index3Start, indexLength,
+ index, i, UCPTRIE_INDEX_3_BLOCK_LENGTH);
+ if (n >= 0) {
+ i3 = n;
+ } else {
+ if (indexLength == index3Start) {
+ // No overlap at the boundary between the index-1 and index-3 tables.
+ n = 0;
+ } else {
+ n = getOverlap(index16, indexLength,
+ index, i, UCPTRIE_INDEX_3_BLOCK_LENGTH);
+ }
+ i3 = indexLength - n;
+ while (n < UCPTRIE_INDEX_3_BLOCK_LENGTH) {
+ index16[indexLength++] = index[i + n++];
+ }
+ }
+ } else {
+ U_ASSERT(f == I3_18);
+ // Encode an index-3 block that contains one or more data indexes exceeding 16 bits.
+ int32_t j = i;
+ int32_t jLimit = i + UCPTRIE_INDEX_3_BLOCK_LENGTH;
+ int32_t k = indexLength;
+ do {
+ ++k;
+ uint32_t v = index[j++];
+ uint32_t upperBits = (v & 0x30000) >> 2;
+ index16[k++] = v;
+ v = index[j++];
+ upperBits |= (v & 0x30000) >> 4;
+ index16[k++] = v;
+ v = index[j++];
+ upperBits |= (v & 0x30000) >> 6;
+ index16[k++] = v;
+ v = index[j++];
+ upperBits |= (v & 0x30000) >> 8;
+ index16[k++] = v;
+ v = index[j++];
+ upperBits |= (v & 0x30000) >> 10;
+ index16[k++] = v;
+ v = index[j++];
+ upperBits |= (v & 0x30000) >> 12;
+ index16[k++] = v;
+ v = index[j++];
+ upperBits |= (v & 0x30000) >> 14;
+ index16[k++] = v;
+ v = index[j++];
+ upperBits |= (v & 0x30000) >> 16;
+ index16[k++] = v;
+ index16[k - 9] = upperBits;
+ } while (j < jLimit);
+ int32_t n = findSameBlock(index16, index3Start, indexLength,
+ index16, indexLength, INDEX_3_18BIT_BLOCK_LENGTH);
+ if (n >= 0) {
+ i3 = n | 0x8000;
+ } else {
+ if (indexLength == index3Start) {
+ // No overlap at the boundary between the index-1 and index-3 tables.
+ n = 0;
+ } else {
+ n = getOverlap(index16, indexLength,
+ index16, indexLength, INDEX_3_18BIT_BLOCK_LENGTH);
+ }
+ i3 = (indexLength - n) | 0x8000;
+ if (n > 0) {
+ int32_t start = indexLength;
+ while (n < INDEX_3_18BIT_BLOCK_LENGTH) {
+ index16[indexLength++] = index16[start + n++];
+ }
+ } else {
+ indexLength += INDEX_3_18BIT_BLOCK_LENGTH;
+ }
+ }
+ }
+ if (index3NullOffset < 0 && i3FirstNull >= 0) {
+ index3NullOffset = i3;
+ }
+ // Set the index-2 table entry.
+ index2[i2Length++] = i3;
+ }
+ U_ASSERT(i2Length == index2Capacity);
+ U_ASSERT(indexLength <= index3Start + index3Capacity);
+
+ if (index3NullOffset < 0) {
+ index3NullOffset = UCPTRIE_NO_INDEX3_NULL_OFFSET;
+ }
+ if (indexLength >= (UCPTRIE_NO_INDEX3_NULL_OFFSET + UCPTRIE_INDEX_3_BLOCK_LENGTH)) {
+ // The index-3 offsets exceed 15 bits, or
+ // the last one cannot be distinguished from the no-null-block value.
+ errorCode = U_INDEX_OUTOFBOUNDS_ERROR;
+ return 0;
+ }
+
+ // Compact the index-2 table and write the index-1 table.
+ int32_t blockLength = UCPTRIE_INDEX_2_BLOCK_LENGTH;
+ int32_t i1 = fastIndexLength;
+ for (int32_t i = 0; i < i2Length; i += blockLength) {
+ if ((i2Length - i) < blockLength) {
+ // highStart is inside the last index-2 block. Shorten it.
+ blockLength = i2Length - i;
+ }
+ int32_t i2;
+ int32_t n = findSameBlock(index16, index3Start, indexLength,
+ index2, i, blockLength);
+ if (n >= 0) {
+ i2 = n;
+ } else {
+ if (indexLength == index3Start) {
+ // No overlap at the boundary between the index-1 and index-3/2 tables.
+ n = 0;
+ } else {
+ n = getOverlap(index16, indexLength, index2, i, blockLength);
+ }
+ i2 = indexLength - n;
+ while (n < blockLength) {
+ index16[indexLength++] = index2[i + n++];
+ }
+ }
+ // Set the index-1 table entry.
+ index16[i1++] = i2;
+ }
+ U_ASSERT(i1 == index3Start);
+ U_ASSERT(indexLength <= index16Capacity);
+
+#ifdef UCPTRIE_DEBUG
+ /* we saved some space */
+ printf("compacting UCPTrie: count of 16-bit index words %lu->%lu\n",
+ (long)iLimit, (long)indexLength);
+#endif
+
+ return indexLength;
+}
+
+int32_t MutableCodePointTrie::compactTrie(int32_t fastILimit, UErrorCode &errorCode) {
+ // Find the real highStart and round it up.
+ U_ASSERT((highStart & (UCPTRIE_CP_PER_INDEX_2_ENTRY - 1)) == 0);
+ highValue = get(MAX_UNICODE);
+ int32_t realHighStart = findHighStart();
+ realHighStart = (realHighStart + (UCPTRIE_CP_PER_INDEX_2_ENTRY - 1)) &
+ ~(UCPTRIE_CP_PER_INDEX_2_ENTRY - 1);
+ if (realHighStart == UNICODE_LIMIT) {
+ highValue = initialValue;
+ }
+
+#ifdef UCPTRIE_DEBUG
+ printf("UCPTrie: highStart U+%06lx highValue 0x%lx initialValue 0x%lx\n",
+ (long)realHighStart, (long)highValue, (long)initialValue);
+#endif
+
+ // We always store indexes and data values for the fast range.
+ // Pin highStart to the top of that range while building.
+ UChar32 fastLimit = fastILimit << UCPTRIE_SHIFT_3;
+ if (realHighStart < fastLimit) {
+ for (int32_t i = (realHighStart >> UCPTRIE_SHIFT_3); i < fastILimit; ++i) {
+ flags[i] = ALL_SAME;
+ index[i] = highValue;
+ }
+ highStart = fastLimit;
+ } else {
+ highStart = realHighStart;
+ }
+
+ uint32_t asciiData[ASCII_LIMIT];
+ for (int32_t i = 0; i < ASCII_LIMIT; ++i) {
+ asciiData[i] = get(i);
+ }
+
+ // First we look for which data blocks have the same value repeated over the whole block,
+ // deduplicate such blocks, find a good null data block (for faster enumeration),
+ // and get an upper bound for the necessary data array length.
+ AllSameBlocks allSameBlocks;
+ int32_t newDataCapacity = compactWholeDataBlocks(fastILimit, allSameBlocks);
+ if (newDataCapacity < 0) {
+ errorCode = U_MEMORY_ALLOCATION_ERROR;
+ return 0;
+ }
+ uint32_t *newData = (uint32_t *)uprv_malloc(newDataCapacity * 4);
+ if (newData == nullptr) {
+ errorCode = U_MEMORY_ALLOCATION_ERROR;
+ return 0;
+ }
+ uprv_memcpy(newData, asciiData, sizeof(asciiData));
+
+ int32_t dataNullIndex = allSameBlocks.findMostUsed();
+ int32_t newDataLength = compactData(fastILimit, newData, dataNullIndex);
+ U_ASSERT(newDataLength <= newDataCapacity);
+ uprv_free(data);
+ data = newData;
+ dataCapacity = newDataCapacity;
+ dataLength = newDataLength;
+ if (dataLength > (0x3ffff + UCPTRIE_SMALL_DATA_BLOCK_LENGTH)) {
+ // The offset of the last data block is too high to be stored in the index table.
+ errorCode = U_INDEX_OUTOFBOUNDS_ERROR;
+ return 0;
+ }
+
+ if (dataNullIndex >= 0) {
+ dataNullOffset = index[dataNullIndex];
+#ifdef UCPTRIE_DEBUG
+ if (data[dataNullOffset] != initialValue) {
+ printf("UCPTrie initialValue %lx -> more common nullValue %lx\n",
+ (long)initialValue, (long)data[dataNullOffset]);
+ }
+#endif
+ initialValue = data[dataNullOffset];
+ } else {
+ dataNullOffset = UCPTRIE_NO_DATA_NULL_OFFSET;
+ }
+
+ int32_t indexLength = compactIndex(fastILimit, errorCode);
+ highStart = realHighStart;
+ return indexLength;
+}
+
+UCPTrie *MutableCodePointTrie::build(UCPTrieType type, UCPTrieValueWidth valueWidth, UErrorCode &errorCode) {
+ if (U_FAILURE(errorCode)) {
+ return nullptr;
+ }
+ if (type < UCPTRIE_TYPE_FAST || UCPTRIE_TYPE_SMALL < type ||
+ valueWidth < UCPTRIE_VALUE_BITS_16 || UCPTRIE_VALUE_BITS_8 < valueWidth) {
+ errorCode = U_ILLEGAL_ARGUMENT_ERROR;
+ return nullptr;
+ }
+
+ // The mutable trie always stores 32-bit values.
+ // When we build a UCPTrie for a smaller value width, we first mask off unused bits
+ // before compacting the data.
+ switch (valueWidth) {
+ case UCPTRIE_VALUE_BITS_32:
+ break;
+ case UCPTRIE_VALUE_BITS_16:
+ maskValues(0xffff);
+ break;
+ case UCPTRIE_VALUE_BITS_8:
+ maskValues(0xff);
+ break;
+ default:
+ break;
+ }
+
+ UChar32 fastLimit = type == UCPTRIE_TYPE_FAST ? BMP_LIMIT : UCPTRIE_SMALL_LIMIT;
+ int32_t indexLength = compactTrie(fastLimit >> UCPTRIE_SHIFT_3, errorCode);
+ if (U_FAILURE(errorCode)) {
+ clear();
+ return nullptr;
+ }
+
+ // Ensure data table alignment: The index length must be even for uint32_t data.
+ if (valueWidth == UCPTRIE_VALUE_BITS_32 && (indexLength & 1) != 0) {
+ index16[indexLength++] = 0xffee; // arbitrary value
+ }
+
+ // Make the total trie structure length a multiple of 4 bytes by padding the data table,
+ // and store special values as the last two data values.
+ int32_t length = indexLength * 2;
+ if (valueWidth == UCPTRIE_VALUE_BITS_16) {
+ if (((indexLength ^ dataLength) & 1) != 0) {
+ // padding
+ data[dataLength++] = errorValue;
+ }
+ if (data[dataLength - 1] != errorValue || data[dataLength - 2] != highValue) {
+ data[dataLength++] = highValue;
+ data[dataLength++] = errorValue;
+ }
+ length += dataLength * 2;
+ } else if (valueWidth == UCPTRIE_VALUE_BITS_32) {
+ // 32-bit data words never need padding to a multiple of 4 bytes.
+ if (data[dataLength - 1] != errorValue || data[dataLength - 2] != highValue) {
+ if (data[dataLength - 1] != highValue) {
+ data[dataLength++] = highValue;
+ }
+ data[dataLength++] = errorValue;
+ }
+ length += dataLength * 4;
+ } else {
+ int32_t and3 = (length + dataLength) & 3;
+ if (and3 == 0 && data[dataLength - 1] == errorValue && data[dataLength - 2] == highValue) {
+ // all set
+ } else if(and3 == 3 && data[dataLength - 1] == highValue) {
+ data[dataLength++] = errorValue;
+ } else {
+ while (and3 != 2) {
+ data[dataLength++] = highValue;
+ and3 = (and3 + 1) & 3;
+ }
+ data[dataLength++] = highValue;
+ data[dataLength++] = errorValue;
+ }
+ length += dataLength;
+ }
+
+ // Calculate the total length of the UCPTrie as a single memory block.
+ length += sizeof(UCPTrie);
+ U_ASSERT((length & 3) == 0);
+
+ uint8_t *bytes = (uint8_t *)uprv_malloc(length);
+ if (bytes == nullptr) {
+ errorCode = U_MEMORY_ALLOCATION_ERROR;
+ clear();
+ return nullptr;
+ }
+ UCPTrie *trie = reinterpret_cast<UCPTrie *>(bytes);
+ uprv_memset(trie, 0, sizeof(UCPTrie));
+ trie->indexLength = indexLength;
+ trie->dataLength = dataLength;
+
+ trie->highStart = highStart;
+ // Round up shifted12HighStart to a multiple of 0x1000 for easy testing from UTF-8 lead bytes.
+ // Runtime code needs to then test for the real highStart as well.
+ trie->shifted12HighStart = (highStart + 0xfff) >> 12;
+ trie->type = type;
+ trie->valueWidth = valueWidth;
+
+ trie->index3NullOffset = index3NullOffset;
+ trie->dataNullOffset = dataNullOffset;
+ trie->nullValue = initialValue;
+
+ bytes += sizeof(UCPTrie);
+
+ // Fill the index and data arrays.
+ uint16_t *dest16 = (uint16_t *)bytes;
+ trie->index = dest16;
+
+ if (highStart <= fastLimit) {
+ // Condense only the fast index from the mutable-trie index.
+ for (int32_t i = 0, j = 0; j < indexLength; i += SMALL_DATA_BLOCKS_PER_BMP_BLOCK, ++j) {
+ *dest16++ = (uint16_t)index[i]; // dest16[j]
+ }
+ } else {
+ uprv_memcpy(dest16, index16, indexLength * 2);
+ dest16 += indexLength;
+ }
+ bytes += indexLength * 2;
+
+ // Write the data array.
+ const uint32_t *p = data;
+ switch (valueWidth) {
+ case UCPTRIE_VALUE_BITS_16:
+ // Write 16-bit data values.
+ trie->data.ptr16 = dest16;
+ for (int32_t i = dataLength; i > 0; --i) {
+ *dest16++ = (uint16_t)*p++;
+ }
+ break;
+ case UCPTRIE_VALUE_BITS_32:
+ // Write 32-bit data values.
+ trie->data.ptr32 = (uint32_t *)bytes;
+ uprv_memcpy(bytes, p, (size_t)dataLength * 4);
+ break;
+ case UCPTRIE_VALUE_BITS_8:
+ // Write 8-bit data values.
+ trie->data.ptr8 = bytes;
+ for (int32_t i = dataLength; i > 0; --i) {
+ *bytes++ = (uint8_t)*p++;
+ }
+ break;
+ default:
+ // Will not occur, valueWidth checked at the beginning.
+ break;
+ }
+
+#ifdef UCPTRIE_DEBUG
+ trie->name = name;
+
+ ucptrie_printLengths(trie, "");
+#endif
+
+ clear();
+ return trie;
+}
+
+} // namespace
+
+U_NAMESPACE_END
+
+U_NAMESPACE_USE
+
+U_CAPI UMutableCPTrie * U_EXPORT2
+umutablecptrie_open(uint32_t initialValue, uint32_t errorValue, UErrorCode *pErrorCode) {
+ if (U_FAILURE(*pErrorCode)) {
+ return nullptr;
+ }
+ LocalPointer<MutableCodePointTrie> trie(
+ new MutableCodePointTrie(initialValue, errorValue, *pErrorCode), *pErrorCode);
+ if (U_FAILURE(*pErrorCode)) {
+ return nullptr;
+ }
+ return reinterpret_cast<UMutableCPTrie *>(trie.orphan());
+}
+
+U_CAPI UMutableCPTrie * U_EXPORT2
+umutablecptrie_clone(const UMutableCPTrie *other, UErrorCode *pErrorCode) {
+ if (U_FAILURE(*pErrorCode)) {
+ return nullptr;
+ }
+ if (other == nullptr) {
+ return nullptr;
+ }
+ LocalPointer<MutableCodePointTrie> clone(
+ new MutableCodePointTrie(*reinterpret_cast<const MutableCodePointTrie *>(other), *pErrorCode), *pErrorCode);
+ if (U_FAILURE(*pErrorCode)) {
+ return nullptr;
+ }
+ return reinterpret_cast<UMutableCPTrie *>(clone.orphan());
+}
+
+U_CAPI void U_EXPORT2
+umutablecptrie_close(UMutableCPTrie *trie) {
+ delete reinterpret_cast<MutableCodePointTrie *>(trie);
+}
+
+U_CAPI UMutableCPTrie * U_EXPORT2
+umutablecptrie_fromUCPMap(const UCPMap *map, UErrorCode *pErrorCode) {
+ if (U_FAILURE(*pErrorCode)) {
+ return nullptr;
+ }
+ if (map == nullptr) {
+ *pErrorCode = U_ILLEGAL_ARGUMENT_ERROR;
+ return nullptr;
+ }
+ return reinterpret_cast<UMutableCPTrie *>(MutableCodePointTrie::fromUCPMap(map, *pErrorCode));
+}
+
+U_CAPI UMutableCPTrie * U_EXPORT2
+umutablecptrie_fromUCPTrie(const UCPTrie *trie, UErrorCode *pErrorCode) {
+ if (U_FAILURE(*pErrorCode)) {
+ return nullptr;
+ }
+ if (trie == nullptr) {
+ *pErrorCode = U_ILLEGAL_ARGUMENT_ERROR;
+ return nullptr;
+ }
+ return reinterpret_cast<UMutableCPTrie *>(MutableCodePointTrie::fromUCPTrie(trie, *pErrorCode));
+}
+
+U_CAPI uint32_t U_EXPORT2
+umutablecptrie_get(const UMutableCPTrie *trie, UChar32 c) {
+ return reinterpret_cast<const MutableCodePointTrie *>(trie)->get(c);
+}
+
+namespace {
+
+UChar32 getRange(const void *trie, UChar32 start,
+ UCPMapValueFilter *filter, const void *context, uint32_t *pValue) {
+ return reinterpret_cast<const MutableCodePointTrie *>(trie)->
+ getRange(start, filter, context, pValue);
+}
+
+} // namespace
+
+U_CAPI UChar32 U_EXPORT2
+umutablecptrie_getRange(const UMutableCPTrie *trie, UChar32 start,
+ UCPMapRangeOption option, uint32_t surrogateValue,
+ UCPMapValueFilter *filter, const void *context, uint32_t *pValue) {
+ return ucptrie_internalGetRange(getRange, trie, start,
+ option, surrogateValue,
+ filter, context, pValue);
+}
+
+U_CAPI void U_EXPORT2
+umutablecptrie_set(UMutableCPTrie *trie, UChar32 c, uint32_t value, UErrorCode *pErrorCode) {
+ if (U_FAILURE(*pErrorCode)) {
+ return;
+ }
+ reinterpret_cast<MutableCodePointTrie *>(trie)->set(c, value, *pErrorCode);
+}
+
+U_CAPI void U_EXPORT2
+umutablecptrie_setRange(UMutableCPTrie *trie, UChar32 start, UChar32 end,
+ uint32_t value, UErrorCode *pErrorCode) {
+ if (U_FAILURE(*pErrorCode)) {
+ return;
+ }
+ reinterpret_cast<MutableCodePointTrie *>(trie)->setRange(start, end, value, *pErrorCode);
+}
+
+/* Compact and internally serialize the trie. */
+U_CAPI UCPTrie * U_EXPORT2
+umutablecptrie_buildImmutable(UMutableCPTrie *trie, UCPTrieType type, UCPTrieValueWidth valueWidth,
+ UErrorCode *pErrorCode) {
+ if (U_FAILURE(*pErrorCode)) {
+ return nullptr;
+ }
+ return reinterpret_cast<MutableCodePointTrie *>(trie)->build(type, valueWidth, *pErrorCode);
+}
+
+#ifdef UCPTRIE_DEBUG
+U_CFUNC void umutablecptrie_setName(UMutableCPTrie *trie, const char *name) {
+ reinterpret_cast<MutableCodePointTrie *>(trie)->name = name;
+}
+#endif
diff --git a/Build/source/libs/icu/icu-src/source/common/umutex.h b/Build/source/libs/icu/icu-src/source/common/umutex.h
index 8e1f6e934a4..015a12f9634 100644
--- a/Build/source/libs/icu/icu-src/source/common/umutex.h
+++ b/Build/source/libs/icu/icu-src/source/common/umutex.h
@@ -56,6 +56,13 @@ U_NAMESPACE_END
U_NAMESPACE_BEGIN
+// Export an explicit template instantiation of std::atomic<int32_t>.
+// When building DLLs for Windows this is required as it is used as a data member of the exported SharedObject class.
+// See digitlst.h, pluralaffix.h, datefmt.h, and others for similar examples.
+#if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN
+template struct U_COMMON_API std::atomic<int32_t>;
+#endif
+
typedef std::atomic<int32_t> u_atomic_int32_t;
#define ATOMIC_INT32_T_INITIALIZER(val) ATOMIC_VAR_INIT(val)
@@ -205,7 +212,7 @@ umtx_atomic_dec(u_atomic_int32_t *p);
U_NAMESPACE_END
-#endif /* Low Level Atomic Ops Platfrom Chain */
+#endif /* Low Level Atomic Ops Platform Chain */
@@ -319,7 +326,7 @@ U_NAMESPACE_END
*************************************************************************************************/
#if defined(U_USER_MUTEX_H)
-// #inlcude "U_USER_MUTEX_H"
+// #include "U_USER_MUTEX_H"
#include U_MUTEX_XSTR(U_USER_MUTEX_H)
#elif U_PLATFORM_USES_ONLY_WIN32_API
@@ -389,7 +396,7 @@ struct UConditionVar {
#else
/*
- * Unknow platform type.
+ * Unknown platform type.
* This is an error condition. ICU requires mutexes.
*/
@@ -401,7 +408,7 @@ struct UConditionVar {
/**************************************************************************************
*
- * Mutex Implementation function declaratations.
+ * Mutex Implementation function declarations.
* Declarations are platform neutral.
* Implementations, in umutex.cpp, are platform specific.
*
diff --git a/Build/source/libs/icu/icu-src/source/common/unames.cpp b/Build/source/libs/icu/icu-src/source/common/unames.cpp
index 6ad349c2e3b..9c230dc93ee 100644
--- a/Build/source/libs/icu/icu-src/source/common/unames.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/unames.cpp
@@ -466,7 +466,7 @@ static uint16_t getExtName(uint32_t code, char *buffer, uint16_t bufferLength) {
buffer[--i] = (v < 10 ? '0' + v : 'A' + v - 10);
}
buffer += ndigits;
- length += ndigits;
+ length += static_cast<uint16_t>(ndigits);
WRITE_CHAR(buffer, bufferLength, length, '>');
return length;
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/brkiter.h b/Build/source/libs/icu/icu-src/source/common/unicode/brkiter.h
index 607f3ec625a..5faeedfa93e 100644
--- a/Build/source/libs/icu/icu-src/source/common/unicode/brkiter.h
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/brkiter.h
@@ -638,7 +638,7 @@ protected:
private:
- /** @internal */
+ /** @internal (private) */
char actualLocale[ULOC_FULLNAME_CAPACITY];
char validLocale[ULOC_FULLNAME_CAPACITY];
};
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/bytestream.h b/Build/source/libs/icu/icu-src/source/common/unicode/bytestream.h
index 6f61c384f79..493115f71c7 100644
--- a/Build/source/libs/icu/icu-src/source/common/unicode/bytestream.h
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/bytestream.h
@@ -237,13 +237,12 @@ class StringByteSink : public ByteSink {
* @stable ICU 4.2
*/
StringByteSink(StringClass* dest) : dest_(dest) { }
-#ifndef U_HIDE_DRAFT_API
/**
* Constructs a ByteSink that reserves append capacity and will append bytes to the dest string.
*
* @param dest pointer to string object to append to
* @param initialAppendCapacity capacity beyond dest->length() to be reserve()d
- * @draft ICU 60
+ * @stable ICU 60
*/
StringByteSink(StringClass* dest, int32_t initialAppendCapacity) : dest_(dest) {
if (initialAppendCapacity > 0 &&
@@ -251,7 +250,6 @@ class StringByteSink : public ByteSink {
dest->reserve(dest->length() + initialAppendCapacity);
}
}
-#endif // U_HIDE_DRAFT_API
/**
* Append "bytes[0,n-1]" to this.
* @param data the pointer to the bytes
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/bytestriebuilder.h b/Build/source/libs/icu/icu-src/source/common/unicode/bytestriebuilder.h
index 97814fcc6af..2a1f28e6255 100644
--- a/Build/source/libs/icu/icu-src/source/common/unicode/bytestriebuilder.h
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/bytestriebuilder.h
@@ -143,7 +143,7 @@ private:
virtual int32_t getMaxLinearMatchLength() const { return BytesTrie::kMaxLinearMatchLength; }
/**
- * @internal
+ * @internal (private)
*/
class BTLinearMatchNode : public LinearMatchNode {
public:
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/caniter.h b/Build/source/libs/icu/icu-src/source/common/unicode/caniter.h
index 5a882fb3fb8..9b21ba52d89 100644
--- a/Build/source/libs/icu/icu-src/source/common/unicode/caniter.h
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/caniter.h
@@ -153,13 +153,13 @@ private:
/**
* Copy constructor. Private for now.
- * @internal
+ * @internal (private)
*/
CanonicalIterator(const CanonicalIterator& other);
/**
* Assignment operator. Private for now.
- * @internal
+ * @internal (private)
*/
CanonicalIterator& operator=(const CanonicalIterator& other);
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/casemap.h b/Build/source/libs/icu/icu-src/source/common/unicode/casemap.h
index 4b77256d742..477eb484d13 100644
--- a/Build/source/libs/icu/icu-src/source/common/unicode/casemap.h
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/casemap.h
@@ -194,7 +194,6 @@ public:
char16_t *dest, int32_t destCapacity, Edits *edits,
UErrorCode &errorCode);
-#ifndef U_HIDE_DRAFT_API
/**
* Lowercases a UTF-8 string and optionally records edits.
* Casing is locale-dependent and context-sensitive.
@@ -214,7 +213,7 @@ public:
* which must not indicate a failure before the function call.
*
* @see ucasemap_utf8ToLower
- * @draft ICU 60
+ * @stable ICU 60
*/
static void utf8ToLower(
const char *locale, uint32_t options,
@@ -240,7 +239,7 @@ public:
* which must not indicate a failure before the function call.
*
* @see ucasemap_utf8ToUpper
- * @draft ICU 60
+ * @stable ICU 60
*/
static void utf8ToUpper(
const char *locale, uint32_t options,
@@ -280,7 +279,7 @@ public:
* which must not indicate a failure before the function call.
*
* @see ucasemap_utf8ToTitle
- * @draft ICU 60
+ * @stable ICU 60
*/
static void utf8ToTitle(
const char *locale, uint32_t options, BreakIterator *iter,
@@ -311,13 +310,12 @@ public:
* which must not indicate a failure before the function call.
*
* @see ucasemap_utf8FoldCase
- * @draft ICU 60
+ * @stable ICU 60
*/
static void utf8Fold(
uint32_t options,
StringPiece src, ByteSink &sink, Edits *edits,
UErrorCode &errorCode);
-#endif // U_HIDE_DRAFT_API
/**
* Lowercases a UTF-8 string and optionally records edits.
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/char16ptr.h b/Build/source/libs/icu/icu-src/source/common/unicode/char16ptr.h
index 49d0e029a93..a7c5f1a0c5e 100644
--- a/Build/source/libs/icu/icu-src/source/common/unicode/char16ptr.h
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/char16ptr.h
@@ -28,6 +28,8 @@ U_NAMESPACE_BEGIN
// Use the predefined value.
#elif (defined(__clang__) || defined(__GNUC__)) && U_PLATFORM != U_PF_BROWSER_NATIVE_CLIENT
# define U_ALIASING_BARRIER(ptr) asm volatile("" : : "rm"(ptr) : "memory")
+#elif defined(U_IN_DOXYGEN)
+# define U_ALIASING_BARRIER(ptr)
#endif
/**
@@ -103,6 +105,7 @@ private:
#endif
};
+/// \cond
#ifdef U_ALIASING_BARRIER
Char16Ptr::Char16Ptr(char16_t *p) : p_(p) {}
@@ -134,6 +137,7 @@ Char16Ptr::~Char16Ptr() {}
char16_t *Char16Ptr::get() const { return u_.cp; }
#endif
+/// \endcond
/**
* const char16_t * wrapper with implicit conversion from distinct but bit-compatible pointer types.
@@ -209,6 +213,7 @@ private:
#endif
};
+/// \cond
#ifdef U_ALIASING_BARRIER
ConstChar16Ptr::ConstChar16Ptr(const char16_t *p) : p_(p) {}
@@ -240,6 +245,7 @@ ConstChar16Ptr::~ConstChar16Ptr() {}
const char16_t *ConstChar16Ptr::get() const { return u_.cp; }
#endif
+/// \endcond
/**
* Converts from const char16_t * to const UChar *.
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/docmain.h b/Build/source/libs/icu/icu-src/source/common/unicode/docmain.h
index 636931cf258..6c2d9dcfb8b 100644
--- a/Build/source/libs/icu/icu-src/source/common/unicode/docmain.h
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/docmain.h
@@ -88,6 +88,11 @@
* <td>icu::UnicodeSet</td>
* </tr>
* <tr>
+ * <td>Maps from Unicode Code Points to Integer Values</td>
+ * <td>ucptrie.h, umutablecptrie.h</td>
+ * <td>C API</td>
+ * </tr>
+ * <tr>
* <td>Maps from Strings to Integer Values</td>
* <td>(no C API)</td>
* <td>icu::BytesTrie, icu::UCharsTrie</td>
@@ -139,7 +144,7 @@
* </tr>
* <tr>
* <td>Number Formatting</td>
- * <td>unum.h</td>
+ * <td>unumberformatter.h, unum.h</td>
* <td>icu::number::NumberFormatter (ICU 60+) or icu::NumberFormat (older versions)</td>
* </tr>
* <tr>
@@ -208,9 +213,9 @@
* <td>C API</td>
* </tr>
* <tr>
- * <td>Layout Engine/Complex Text Layout</td>
- * <td>loengine.h</td>
- * <td>icu::LayoutEngine,icu::ParagraphLayout</td>
+ * <td>Paragraph Layout / Complex Text Layout</td>
+ * <td>playout.h</td>
+ * <td>icu::ParagraphLayout</td>
* </tr>
* <tr>
* <td>ICU I/O</td>
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/edits.h b/Build/source/libs/icu/icu-src/source/common/unicode/edits.h
index 5a72574c140..79e98b0cc27 100644
--- a/Build/source/libs/icu/icu-src/source/common/unicode/edits.h
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/edits.h
@@ -17,10 +17,57 @@
U_NAMESPACE_BEGIN
+class UnicodeString;
+
/**
- * Records lengths of string edits but not replacement text.
- * Supports replacements, insertions, deletions in linear progression.
- * Does not support moving/reordering of text.
+ * Records lengths of string edits but not replacement text. Supports replacements, insertions, deletions
+ * in linear progression. Does not support moving/reordering of text.
+ *
+ * There are two types of edits: <em>change edits</em> and <em>no-change edits</em>. Add edits to
+ * instances of this class using {@link #addReplace(int32_t, int32_t)} (for change edits) and
+ * {@link #addUnchanged(int32_t)} (for no-change edits). Change edits are retained with full granularity,
+ * whereas adjacent no-change edits are always merged together. In no-change edits, there is a one-to-one
+ * mapping between code points in the source and destination strings.
+ *
+ * After all edits have been added, instances of this class should be considered immutable, and an
+ * {@link Edits::Iterator} can be used for queries.
+ *
+ * There are four flavors of Edits::Iterator:
+ *
+ * <ul>
+ * <li>{@link #getFineIterator()} retains full granularity of change edits.
+ * <li>{@link #getFineChangesIterator()} retains full granularity of change edits, and when calling
+ * next() on the iterator, skips over no-change edits (unchanged regions).
+ * <li>{@link #getCoarseIterator()} treats adjacent change edits as a single edit. (Adjacent no-change
+ * edits are automatically merged during the construction phase.)
+ * <li>{@link #getCoarseChangesIterator()} treats adjacent change edits as a single edit, and when
+ * calling next() on the iterator, skips over no-change edits (unchanged regions).
+ * </ul>
+ *
+ * For example, consider the string "abcßDeF", which case-folds to "abcssdef". This string has the
+ * following fine edits:
+ * <ul>
+ * <li>abc ⇨ abc (no-change)
+ * <li>ß ⇨ ss (change)
+ * <li>D ⇨ d (change)
+ * <li>e ⇨ e (no-change)
+ * <li>F ⇨ f (change)
+ * </ul>
+ * and the following coarse edits (note how adjacent change edits get merged together):
+ * <ul>
+ * <li>abc ⇨ abc (no-change)
+ * <li>ßD ⇨ ssd (change)
+ * <li>e ⇨ e (no-change)
+ * <li>F ⇨ f (change)
+ * </ul>
+ *
+ * The "fine changes" and "coarse changes" iterators will step through only the change edits when their
+ * `Edits::Iterator::next()` methods are called. They are identical to the non-change iterators when
+ * their `Edits::Iterator::findSourceIndex()` or `Edits::Iterator::findDestinationIndex()`
+ * methods are used to walk through the string.
+ *
+ * For examples of how to use this class, see the test `TestCaseMapEditsIteratorDocs` in
+ * UCharacterCaseTest.java.
*
* An Edits object tracks a separate UErrorCode, but ICU string transformation functions
* (e.g., case mapping functions) merge any such errors into their API's UErrorCode.
@@ -39,7 +86,7 @@ public:
/**
* Copy constructor.
* @param other source edits
- * @draft ICU 60
+ * @stable ICU 60
*/
Edits(const Edits &other) :
array(stackArray), capacity(STACK_CAPACITY), length(other.length),
@@ -51,7 +98,7 @@ public:
* Move constructor, might leave src empty.
* This object will have the same contents that the source object had.
* @param src source edits
- * @draft ICU 60
+ * @stable ICU 60
*/
Edits(Edits &&src) U_NOEXCEPT :
array(stackArray), capacity(STACK_CAPACITY), length(src.length),
@@ -70,7 +117,7 @@ public:
* Assignment operator.
* @param other source edits
* @return *this
- * @draft ICU 60
+ * @stable ICU 60
*/
Edits &operator=(const Edits &other);
@@ -80,7 +127,7 @@ public:
* The behavior is undefined if *this and src are the same object.
* @param src source edits
* @return *this
- * @draft ICU 60
+ * @stable ICU 60
*/
Edits &operator=(Edits &&src) U_NOEXCEPT;
@@ -91,13 +138,13 @@ public:
void reset() U_NOEXCEPT;
/**
- * Adds a record for an unchanged segment of text.
+ * Adds a no-change edit: a record for an unchanged segment of text.
* Normally called from inside ICU string transformation functions, not user code.
* @stable ICU 59
*/
void addUnchanged(int32_t unchangedLength);
/**
- * Adds a record for a text replacement/insertion/deletion.
+ * Adds a change edit: a record for a text replacement/insertion/deletion.
* Normally called from inside ICU string transformation functions, not user code.
* @stable ICU 59
*/
@@ -126,16 +173,26 @@ public:
*/
UBool hasChanges() const { return numChanges != 0; }
-#ifndef U_HIDE_DRAFT_API
/**
* @return the number of change edits
- * @draft ICU 60
+ * @stable ICU 60
*/
int32_t numberOfChanges() const { return numChanges; }
-#endif // U_HIDE_DRAFT_API
/**
* Access to the list of edits.
+ *
+ * At any moment in time, an instance of this class points to a single edit: a "window" into a span
+ * of the source string and the corresponding span of the destination string. The source string span
+ * starts at {@link #sourceIndex()} and runs for {@link #oldLength()} chars; the destination string
+ * span starts at {@link #destinationIndex()} and runs for {@link #newLength()} chars.
+ *
+ * The iterator can be moved between edits using the `next()`, `findSourceIndex(int32_t, UErrorCode &)`,
+ * and `findDestinationIndex(int32_t, UErrorCode &)` methods.
+ * Calling any of these methods mutates the iterator to make it point to the corresponding edit.
+ *
+ * For more information, see the documentation for {@link Edits}.
+ *
* @see getCoarseIterator
* @see getFineIterator
* @stable ICU 59
@@ -143,7 +200,7 @@ public:
struct U_COMMON_API Iterator U_FINAL : public UMemory {
/**
* Default constructor, empty iterator.
- * @draft ICU 60
+ * @stable ICU 60
*/
Iterator() :
array(nullptr), index(0), length(0),
@@ -162,7 +219,7 @@ public:
Iterator &operator=(const Iterator &other) = default;
/**
- * Advances to the next edit.
+ * Advances the iterator to the next edit.
* @param errorCode ICU error code. Its input value must pass the U_SUCCESS() test,
* or else the function returns immediately. Check for U_FAILURE()
* on output or use with function chaining. (See User Guide for details.)
@@ -172,9 +229,9 @@ public:
UBool next(UErrorCode &errorCode) { return next(onlyChanges_, errorCode); }
/**
- * Finds the edit that contains the source index.
- * The source index may be found in a non-change
- * even if normal iteration would skip non-changes.
+ * Moves the iterator to the edit that contains the source index.
+ * The source index may be found in a no-change edit
+ * even if normal iteration would skip no-change edits.
* Normal iteration can continue from a found edit.
*
* The iterator state before this search logically does not matter.
@@ -194,11 +251,10 @@ public:
return findIndex(i, TRUE, errorCode) == 0;
}
-#ifndef U_HIDE_DRAFT_API
/**
- * Finds the edit that contains the destination index.
- * The destination index may be found in a non-change
- * even if normal iteration would skip non-changes.
+ * Moves the iterator to the edit that contains the destination index.
+ * The destination index may be found in a no-change edit
+ * even if normal iteration would skip no-change edits.
* Normal iteration can continue from a found edit.
*
* The iterator state before this search logically does not matter.
@@ -212,14 +268,14 @@ public:
* or else the function returns immediately. Check for U_FAILURE()
* on output or use with function chaining. (See User Guide for details.)
* @return TRUE if the edit for the destination index was found
- * @draft ICU 60
+ * @stable ICU 60
*/
UBool findDestinationIndex(int32_t i, UErrorCode &errorCode) {
return findIndex(i, FALSE, errorCode) == 0;
}
/**
- * Returns the destination index corresponding to the given source index.
+ * Computes the destination index corresponding to the given source index.
* If the source index is inside a change edit (not at its start),
* then the destination index at the end of that edit is returned,
* since there is no information about index mapping inside a change edit.
@@ -238,12 +294,12 @@ public:
* or else the function returns immediately. Check for U_FAILURE()
* on output or use with function chaining. (See User Guide for details.)
* @return destination index; undefined if i is not 0..string length
- * @draft ICU 60
+ * @stable ICU 60
*/
int32_t destinationIndexFromSourceIndex(int32_t i, UErrorCode &errorCode);
/**
- * Returns the source index corresponding to the given destination index.
+ * Computes the source index corresponding to the given destination index.
* If the destination index is inside a change edit (not at its start),
* then the source index at the end of that edit is returned,
* since there is no information about index mapping inside a change edit.
@@ -262,23 +318,32 @@ public:
* or else the function returns immediately. Check for U_FAILURE()
* on output or use with function chaining. (See User Guide for details.)
* @return source index; undefined if i is not 0..string length
- * @draft ICU 60
+ * @stable ICU 60
*/
int32_t sourceIndexFromDestinationIndex(int32_t i, UErrorCode &errorCode);
-#endif // U_HIDE_DRAFT_API
/**
+ * Returns whether the edit currently represented by the iterator is a change edit.
+ *
* @return TRUE if this edit replaces oldLength() units with newLength() different ones.
* FALSE if oldLength units remain unchanged.
* @stable ICU 59
*/
UBool hasChange() const { return changed; }
+
/**
+ * The length of the current span in the source string, which starts at {@link #sourceIndex}.
+ *
* @return the number of units in the original string which are replaced or remain unchanged.
* @stable ICU 59
*/
int32_t oldLength() const { return oldLength_; }
+
/**
+ * The length of the current span in the destination string, which starts at
+ * {@link #destinationIndex}, or in the replacement string, which starts at
+ * {@link #replacementIndex}.
+ *
* @return the number of units in the modified string, if hasChange() is TRUE.
* Same as oldLength if hasChange() is FALSE.
* @stable ICU 59
@@ -286,22 +351,52 @@ public:
int32_t newLength() const { return newLength_; }
/**
+ * The start index of the current span in the source string; the span has length
+ * {@link #oldLength}.
+ *
* @return the current index into the source string
* @stable ICU 59
*/
int32_t sourceIndex() const { return srcIndex; }
+
/**
+ * The start index of the current span in the replacement string; the span has length
+ * {@link #newLength}. Well-defined only if the current edit is a change edit.
+ *
+ * The *replacement string* is the concatenation of all substrings of the destination
+ * string corresponding to change edits.
+ *
+ * This method is intended to be used together with operations that write only replacement
+ * characters (e.g. operations specifying the \ref U_OMIT_UNCHANGED_TEXT option).
+ * The source string can then be modified in-place.
+ *
* @return the current index into the replacement-characters-only string,
* not counting unchanged spans
* @stable ICU 59
*/
- int32_t replacementIndex() const { return replIndex; }
+ int32_t replacementIndex() const {
+ // TODO: Throw an exception if we aren't in a change edit?
+ return replIndex;
+ }
+
/**
+ * The start index of the current span in the destination string; the span has length
+ * {@link #newLength}.
+ *
* @return the current index into the full destination string
* @stable ICU 59
*/
int32_t destinationIndex() const { return destIndex; }
+#ifndef U_HIDE_INTERNAL_API
+ /**
+ * A string representation of the current edit represented by the iterator for debugging. You
+ * should not depend on the contents of the return string.
+ * @internal
+ */
+ UnicodeString& toString(UnicodeString& appendTo) const;
+#endif // U_HIDE_INTERNAL_API
+
private:
friend class Edits;
@@ -330,8 +425,10 @@ public:
};
/**
- * Returns an Iterator for coarse-grained changes for simple string updates.
- * Skips non-changes.
+ * Returns an Iterator for coarse-grained change edits
+ * (adjacent change edits are treated as one).
+ * Can be used to perform simple string updates.
+ * Skips no-change edits.
* @return an Iterator that merges adjacent changes.
* @stable ICU 59
*/
@@ -340,7 +437,10 @@ public:
}
/**
- * Returns an Iterator for coarse-grained changes and non-changes for simple string updates.
+ * Returns an Iterator for coarse-grained change and no-change edits
+ * (adjacent change edits are treated as one).
+ * Can be used to perform simple string updates.
+ * Adjacent change edits are treated as one edit.
* @return an Iterator that merges adjacent changes.
* @stable ICU 59
*/
@@ -349,8 +449,10 @@ public:
}
/**
- * Returns an Iterator for fine-grained changes for modifying styled text.
- * Skips non-changes.
+ * Returns an Iterator for fine-grained change edits
+ * (full granularity of change edits is retained).
+ * Can be used for modifying styled text.
+ * Skips no-change edits.
* @return an Iterator that separates adjacent changes.
* @stable ICU 59
*/
@@ -359,7 +461,9 @@ public:
}
/**
- * Returns an Iterator for fine-grained changes and non-changes for modifying styled text.
+ * Returns an Iterator for fine-grained change and no-change edits
+ * (full granularity of change edits is retained).
+ * Can be used for modifying styled text.
* @return an Iterator that separates adjacent changes.
* @stable ICU 59
*/
@@ -367,7 +471,6 @@ public:
return Iterator(array, length, FALSE, FALSE);
}
-#ifndef U_HIDE_DRAFT_API
/**
* Merges the two input Edits and appends the result to this object.
*
@@ -393,10 +496,9 @@ public:
* or else the function returns immediately. Check for U_FAILURE()
* on output or use with function chaining. (See User Guide for details.)
* @return *this, with the merged edits appended
- * @draft ICU 60
+ * @stable ICU 60
*/
Edits &mergeAndAppend(const Edits &ab, const Edits &bc, UErrorCode &errorCode);
-#endif // U_HIDE_DRAFT_API
private:
void releaseArray() U_NOEXCEPT;
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/enumset.h b/Build/source/libs/icu/icu-src/source/common/unicode/enumset.h
index f63dd1622e2..bde8c455c0d 100644
--- a/Build/source/libs/icu/icu-src/source/common/unicode/enumset.h
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/enumset.h
@@ -28,6 +28,7 @@ U_NAMESPACE_BEGIN
* enum bitset for boolean fields. Similar to Java EnumSet<>.
* Needs to range check. Used for private instance variables.
* @internal
+ * \cond
*/
template<typename T, uint32_t minValue, uint32_t limitValue>
class EnumSet {
@@ -60,6 +61,8 @@ private:
uint32_t fBools;
};
+/** \endcond */
+
U_NAMESPACE_END
#endif /* U_SHOW_CPLUSPLUS_API */
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/filteredbrk.h b/Build/source/libs/icu/icu-src/source/common/unicode/filteredbrk.h
index 751d1faf404..2444114e9a1 100644
--- a/Build/source/libs/icu/icu-src/source/common/unicode/filteredbrk.h
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/filteredbrk.h
@@ -67,16 +67,14 @@ class U_COMMON_API FilteredBreakIteratorBuilder : public UObject {
static FilteredBreakIteratorBuilder *createInstance(UErrorCode &status);
#endif /* U_HIDE_DEPRECATED_API */
-#ifndef U_HIDE_DRAFT_API
/**
* Construct an empty FilteredBreakIteratorBuilder.
* In this state, it will not suppress any segment boundaries.
* @param status The error code.
* @return the new builder
- * @draft ICU 60
+ * @stable ICU 60
*/
static FilteredBreakIteratorBuilder *createEmptyInstance(UErrorCode &status);
-#endif /* U_HIDE_DRAFT_API */
/**
* Suppress a certain string from being the end of a segment.
@@ -95,7 +93,7 @@ class U_COMMON_API FilteredBreakIteratorBuilder : public UObject {
* This function does not create any new segment boundaries, but only serves to un-do
* the effect of earlier calls to suppressBreakAfter, or to un-do the effect of
* locale data which may be suppressing certain strings.
- * @param exception the exception to remove
+ * @param string the exception to remove
* @param status error code
* @return returns TRUE if the string was present and now removed,
* FALSE if the call was a no-op because the string was not being suppressed.
@@ -114,7 +112,6 @@ class U_COMMON_API FilteredBreakIteratorBuilder : public UObject {
*/
virtual BreakIterator *build(BreakIterator* adoptBreakIterator, UErrorCode& status) = 0;
-#ifndef U_HIDE_DRAFT_API
/**
* Wrap (adopt) an existing break iterator in a new filtered instance.
* The resulting BreakIterator is owned by the caller.
@@ -126,12 +123,11 @@ class U_COMMON_API FilteredBreakIteratorBuilder : public UObject {
* @param adoptBreakIterator the break iterator to adopt
* @param status error code
* @return the new BreakIterator, owned by the caller.
- * @draft ICU 60
+ * @stable ICU 60
*/
inline BreakIterator *wrapIteratorWithFilter(BreakIterator* adoptBreakIterator, UErrorCode& status) {
return build(adoptBreakIterator, status);
}
-#endif /* U_HIDE_DRAFT_API */
protected:
/**
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/icuplug.h b/Build/source/libs/icu/icu-src/source/common/unicode/icuplug.h
index 1a894a71c4a..2e57b149e14 100644
--- a/Build/source/libs/icu/icu-src/source/common/unicode/icuplug.h
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/icuplug.h
@@ -110,7 +110,7 @@
#include "unicode/utypes.h"
-#if UCONFIG_ENABLE_PLUGINS
+#if UCONFIG_ENABLE_PLUGINS || defined(U_IN_DOXYGEN)
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/locid.h b/Build/source/libs/icu/icu-src/source/common/unicode/locid.h
index 9ccf4715aff..1ef15ca7512 100644
--- a/Build/source/libs/icu/icu-src/source/common/unicode/locid.h
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/locid.h
@@ -31,6 +31,10 @@
#ifndef LOCID_H
#define LOCID_H
+#include "unicode/bytestream.h"
+#include "unicode/localpointer.h"
+#include "unicode/strenum.h"
+#include "unicode/stringpiece.h"
#include "unicode/utypes.h"
#include "unicode/uobject.h"
#include "unicode/putil.h"
@@ -280,6 +284,16 @@ public:
*/
Locale(const Locale& other);
+#ifndef U_HIDE_DRAFT_API
+ /**
+ * Move constructor; might leave source in bogus state.
+ * This locale will have the same contents that the source locale had.
+ *
+ * @param other The Locale object being moved in.
+ * @draft ICU 63
+ */
+ Locale(Locale&& other) U_NOEXCEPT;
+#endif // U_HIDE_DRAFT_API
/**
* Destructor
@@ -296,6 +310,19 @@ public:
*/
Locale& operator=(const Locale& other);
+#ifndef U_HIDE_DRAFT_API
+ /**
+ * Move assignment operator; might leave source in bogus state.
+ * This locale will have the same contents that the source locale had.
+ * The behavior is undefined if *this and the source are the same object.
+ *
+ * @param other The Locale object being moved in.
+ * @return *this
+ * @draft ICU 63
+ */
+ Locale& operator=(Locale&& other) U_NOEXCEPT;
+#endif // U_HIDE_DRAFT_API
+
/**
* Checks if two locale keys are the same.
*
@@ -362,6 +389,55 @@ public:
UErrorCode& success);
#endif /* U_HIDE_SYSTEM_API */
+#ifndef U_HIDE_DRAFT_API
+ /**
+ * Returns a Locale for the specified BCP47 language tag string.
+ * If the specified language tag contains any ill-formed subtags,
+ * the first such subtag and all following subtags are ignored.
+ * <p>
+ * This implements the 'Language-Tag' production of BCP47, and so
+ * supports grandfathered (regular and irregular) as well as private
+ * use language tags. Private use tags are represented as 'x-whatever',
+ * and grandfathered tags are converted to their canonical replacements
+ * where they exist. Note that a few grandfathered tags have no modern
+ * replacement, these will be converted using the fallback described in
+ * the first paragraph, so some information might be lost.
+ * @param tag the input BCP47 language tag.
+ * @param status error information if creating the Locale failed.
+ * @return the Locale for the specified BCP47 language tag.
+ * @draft ICU 63
+ */
+ static Locale U_EXPORT2 forLanguageTag(StringPiece tag, UErrorCode& status);
+
+ /**
+ * Returns a well-formed language tag for this Locale.
+ * <p>
+ * <b>Note</b>: Any locale fields which do not satisfy the BCP47 syntax
+ * requirement will be silently omitted from the result.
+ *
+ * If this function fails, partial output may have been written to the sink.
+ *
+ * @param sink the output sink receiving the BCP47 language
+ * tag for this Locale.
+ * @param status error information if creating the language tag failed.
+ * @draft ICU 63
+ */
+ void toLanguageTag(ByteSink& sink, UErrorCode& status) const;
+
+ /**
+ * Returns a well-formed language tag for this Locale.
+ * <p>
+ * <b>Note</b>: Any locale fields which do not satisfy the BCP47 syntax
+ * requirement will be silently omitted from the result.
+ *
+ * @param status error information if creating the language tag failed.
+ * @return the BCP47 language tag for this Locale.
+ * @draft ICU 63
+ */
+ template<typename StringClass>
+ inline StringClass toLanguageTag(UErrorCode& status) const;
+#endif // U_HIDE_DRAFT_API
+
/**
* Creates a locale which has had minimal canonicalization
* as per uloc_getName().
@@ -432,6 +508,69 @@ public:
*/
const char * getBaseName() const;
+#ifndef U_HIDE_DRAFT_API
+ /**
+ * Add the likely subtags for this Locale, per the algorithm described
+ * in the following CLDR technical report:
+ *
+ * http://www.unicode.org/reports/tr35/#Likely_Subtags
+ *
+ * If this Locale is already in the maximal form, or not valid, or there is
+ * no data available for maximization, the Locale will be unchanged.
+ *
+ * For example, "und-Zzzz" cannot be maximized, since there is no
+ * reasonable maximization.
+ *
+ * Examples:
+ *
+ * "en" maximizes to "en_Latn_US"
+ *
+ * "de" maximizes to "de_Latn_US"
+ *
+ * "sr" maximizes to "sr_Cyrl_RS"
+ *
+ * "sh" maximizes to "sr_Latn_RS" (Note this will not reverse.)
+ *
+ * "zh_Hani" maximizes to "zh_Hans_CN" (Note this will not reverse.)
+ *
+ * @param status error information if maximizing this Locale failed.
+ * If this Locale is not well-formed, the error code is
+ * U_ILLEGAL_ARGUMENT_ERROR.
+ * @draft ICU 63
+ */
+ void addLikelySubtags(UErrorCode& status);
+
+ /**
+ * Minimize the subtags for this Locale, per the algorithm described
+ * in the following CLDR technical report:
+ *
+ * http://www.unicode.org/reports/tr35/#Likely_Subtags
+ *
+ * If this Locale is already in the minimal form, or not valid, or there is
+ * no data available for minimization, the Locale will be unchanged.
+ *
+ * Since the minimization algorithm relies on proper maximization, see the
+ * comments for addLikelySubtags for reasons why there might not be any
+ * data.
+ *
+ * Examples:
+ *
+ * "en_Latn_US" minimizes to "en"
+ *
+ * "de_Latn_US" minimizes to "de"
+ *
+ * "sr_Cyrl_RS" minimizes to "sr"
+ *
+ * "zh_Hant_TW" minimizes to "zh_TW" (The region is preferred to the
+ * script, and minimizing to "zh" would imply "zh_Hans_CN".)
+ *
+ * @param status error information if maximizing this Locale failed.
+ * If this Locale is not well-formed, the error code is
+ * U_ILLEGAL_ARGUMENT_ERROR.
+ * @draft ICU 63
+ */
+ void minimizeSubtags(UErrorCode& status);
+#endif // U_HIDE_DRAFT_API
/**
* Gets the list of keywords for the specified locale.
@@ -439,13 +578,62 @@ public:
* @param status the status code
* @return pointer to StringEnumeration class, or NULL if there are no keywords.
* Client must dispose of it by calling delete.
+ * @see getKeywords
* @stable ICU 2.8
*/
StringEnumeration * createKeywords(UErrorCode &status) const;
+#ifndef U_HIDE_DRAFT_API
+
+ /**
+ * Gets the list of Unicode keywords for the specified locale.
+ *
+ * @param status the status code
+ * @return pointer to StringEnumeration class, or NULL if there are no keywords.
+ * Client must dispose of it by calling delete.
+ * @see getUnicodeKeywords
+ * @draft ICU 63
+ */
+ StringEnumeration * createUnicodeKeywords(UErrorCode &status) const;
+
+ /**
+ * Gets the set of keywords for this Locale.
+ *
+ * A wrapper to call createKeywords() and write the resulting
+ * keywords as standard strings (or compatible objects) into any kind of
+ * container that can be written to by an STL style output iterator.
+ *
+ * @param iterator an STL style output iterator to write the keywords to.
+ * @param status error information if creating set of keywords failed.
+ * @draft ICU 63
+ */
+ template<typename StringClass, typename OutputIterator>
+ inline void getKeywords(OutputIterator iterator, UErrorCode& status) const;
+
+ /**
+ * Gets the set of Unicode keywords for this Locale.
+ *
+ * A wrapper to call createUnicodeKeywords() and write the resulting
+ * keywords as standard strings (or compatible objects) into any kind of
+ * container that can be written to by an STL style output iterator.
+ *
+ * @param iterator an STL style output iterator to write the keywords to.
+ * @param status error information if creating set of keywords failed.
+ * @draft ICU 63
+ */
+ template<typename StringClass, typename OutputIterator>
+ inline void getUnicodeKeywords(OutputIterator iterator, UErrorCode& status) const;
+
+#endif // U_HIDE_DRAFT_API
+
/**
* Gets the value for a keyword.
*
+ * This uses legacy keyword=value pairs, like "collation=phonebook".
+ *
+ * ICU4C doesn't do automatic conversion between legacy and Unicode
+ * keywords and values in getters and setters (as opposed to ICU4J).
+ *
* @param keywordName name of the keyword for which we want the value. Case insensitive.
* @param buffer The buffer to receive the keyword value.
* @param bufferCapacity The capacity of receiving buffer
@@ -456,12 +644,81 @@ public:
*/
int32_t getKeywordValue(const char* keywordName, char *buffer, int32_t bufferCapacity, UErrorCode &status) const;
+#ifndef U_HIDE_DRAFT_API
+ /**
+ * Gets the value for a keyword.
+ *
+ * This uses legacy keyword=value pairs, like "collation=phonebook".
+ *
+ * ICU4C doesn't do automatic conversion between legacy and Unicode
+ * keywords and values in getters and setters (as opposed to ICU4J).
+ *
+ * @param keywordName name of the keyword for which we want the value.
+ * @param sink the sink to receive the keyword value.
+ * @param status error information if getting the value failed.
+ * @draft ICU 63
+ */
+ void getKeywordValue(StringPiece keywordName, ByteSink& sink, UErrorCode& status) const;
+
+ /**
+ * Gets the value for a keyword.
+ *
+ * This uses legacy keyword=value pairs, like "collation=phonebook".
+ *
+ * ICU4C doesn't do automatic conversion between legacy and Unicode
+ * keywords and values in getters and setters (as opposed to ICU4J).
+ *
+ * @param keywordName name of the keyword for which we want the value.
+ * @param status error information if getting the value failed.
+ * @return the keyword value.
+ * @draft ICU 63
+ */
+ template<typename StringClass>
+ inline StringClass getKeywordValue(StringPiece keywordName, UErrorCode& status) const;
+
+ /**
+ * Gets the Unicode value for a Unicode keyword.
+ *
+ * This uses Unicode key-value pairs, like "co-phonebk".
+ *
+ * ICU4C doesn't do automatic conversion between legacy and Unicode
+ * keywords and values in getters and setters (as opposed to ICU4J).
+ *
+ * @param keywordName name of the keyword for which we want the value.
+ * @param sink the sink to receive the keyword value.
+ * @param status error information if getting the value failed.
+ * @draft ICU 63
+ */
+ void getUnicodeKeywordValue(StringPiece keywordName, ByteSink& sink, UErrorCode& status) const;
+
+ /**
+ * Gets the Unicode value for a Unicode keyword.
+ *
+ * This uses Unicode key-value pairs, like "co-phonebk".
+ *
+ * ICU4C doesn't do automatic conversion between legacy and Unicode
+ * keywords and values in getters and setters (as opposed to ICU4J).
+ *
+ * @param keywordName name of the keyword for which we want the value.
+ * @param status error information if getting the value failed.
+ * @return the keyword value.
+ * @draft ICU 63
+ */
+ template<typename StringClass>
+ inline StringClass getUnicodeKeywordValue(StringPiece keywordName, UErrorCode& status) const;
+#endif // U_HIDE_DRAFT_API
+
/**
* Sets or removes the value for a keyword.
*
* For removing all keywords, use getBaseName(),
* and construct a new Locale if it differs from getName().
*
+ * This uses legacy keyword=value pairs, like "collation=phonebook".
+ *
+ * ICU4C doesn't do automatic conversion between legacy and Unicode
+ * keywords and values in getters and setters (as opposed to ICU4J).
+ *
* @param keywordName name of the keyword to be set. Case insensitive.
* @param keywordValue value of the keyword to be set. If 0-length or
* NULL, will result in the keyword being removed. No error is given if
@@ -472,6 +729,48 @@ public:
*/
void setKeywordValue(const char* keywordName, const char* keywordValue, UErrorCode &status);
+#ifndef U_HIDE_DRAFT_API
+ /**
+ * Sets or removes the value for a keyword.
+ *
+ * For removing all keywords, use getBaseName(),
+ * and construct a new Locale if it differs from getName().
+ *
+ * This uses legacy keyword=value pairs, like "collation=phonebook".
+ *
+ * ICU4C doesn't do automatic conversion between legacy and Unicode
+ * keywords and values in getters and setters (as opposed to ICU4J).
+ *
+ * @param keywordName name of the keyword to be set.
+ * @param keywordValue value of the keyword to be set. If 0-length or
+ * NULL, will result in the keyword being removed. No error is given if
+ * that keyword does not exist.
+ * @param status Returns any error information while performing this operation.
+ * @draft ICU 63
+ */
+ void setKeywordValue(StringPiece keywordName, StringPiece keywordValue, UErrorCode& status);
+
+ /**
+ * Sets or removes the Unicode value for a Unicode keyword.
+ *
+ * For removing all keywords, use getBaseName(),
+ * and construct a new Locale if it differs from getName().
+ *
+ * This uses Unicode key-value pairs, like "co-phonebk".
+ *
+ * ICU4C doesn't do automatic conversion between legacy and Unicode
+ * keywords and values in getters and setters (as opposed to ICU4J).
+ *
+ * @param keywordName name of the keyword to be set.
+ * @param keywordValue value of the keyword to be set. If 0-length or
+ * NULL, will result in the keyword being removed. No error is given if
+ * that keyword does not exist.
+ * @param status Returns any error information while performing this operation.
+ * @draft ICU 63
+ */
+ void setUnicodeKeywordValue(StringPiece keywordName, StringPiece keywordValue, UErrorCode& status);
+#endif // U_HIDE_DRAFT_API
+
/**
* returns the locale's three-letter language code, as specified
* in ISO draft standard ISO-639-2.
@@ -759,12 +1058,12 @@ private:
/**
* A friend to allow the default locale to be set by either the C or C++ API.
- * @internal
+ * @internal (private)
*/
friend Locale *locale_set_default_internal(const char *, UErrorCode& status);
/**
- * @internal
+ * @internal (private)
*/
friend void U_CALLCONV locale_available_init();
};
@@ -775,6 +1074,17 @@ Locale::operator!=(const Locale& other) const
return !operator==(other);
}
+#ifndef U_HIDE_DRAFT_API
+template<typename StringClass> inline StringClass
+Locale::toLanguageTag(UErrorCode& status) const
+{
+ StringClass result;
+ StringByteSink<StringClass> sink(&result);
+ toLanguageTag(sink, status);
+ return result;
+}
+#endif // U_HIDE_DRAFT_API
+
inline const char *
Locale::getCountry() const
{
@@ -805,6 +1115,62 @@ Locale::getName() const
return fullName;
}
+#ifndef U_HIDE_DRAFT_API
+
+template<typename StringClass, typename OutputIterator> inline void
+Locale::getKeywords(OutputIterator iterator, UErrorCode& status) const
+{
+ LocalPointer<StringEnumeration> keys(createKeywords(status));
+ if (U_FAILURE(status)) {
+ return;
+ }
+ for (;;) {
+ int32_t resultLength;
+ const char* buffer = keys->next(&resultLength, status);
+ if (U_FAILURE(status) || buffer == nullptr) {
+ return;
+ }
+ *iterator++ = StringClass(buffer, resultLength);
+ }
+}
+
+template<typename StringClass, typename OutputIterator> inline void
+Locale::getUnicodeKeywords(OutputIterator iterator, UErrorCode& status) const
+{
+ LocalPointer<StringEnumeration> keys(createUnicodeKeywords(status));
+ if (U_FAILURE(status)) {
+ return;
+ }
+ for (;;) {
+ int32_t resultLength;
+ const char* buffer = keys->next(&resultLength, status);
+ if (U_FAILURE(status) || buffer == nullptr) {
+ return;
+ }
+ *iterator++ = StringClass(buffer, resultLength);
+ }
+}
+
+template<typename StringClass> inline StringClass
+Locale::getKeywordValue(StringPiece keywordName, UErrorCode& status) const
+{
+ StringClass result;
+ StringByteSink<StringClass> sink(&result);
+ getKeywordValue(keywordName, sink, status);
+ return result;
+}
+
+template<typename StringClass> inline StringClass
+Locale::getUnicodeKeywordValue(StringPiece keywordName, UErrorCode& status) const
+{
+ StringClass result;
+ StringByteSink<StringClass> sink(&result);
+ getUnicodeKeywordValue(keywordName, sink, status);
+ return result;
+}
+
+#endif // U_HIDE_DRAFT_API
+
inline UBool
Locale::isBogus(void) const {
return fIsBogus;
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/messagepattern.h b/Build/source/libs/icu/icu-src/source/common/unicode/messagepattern.h
index f28adafee0d..9f2a86551ca 100644
--- a/Build/source/libs/icu/icu-src/source/common/unicode/messagepattern.h
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/messagepattern.h
@@ -771,8 +771,8 @@ public:
* @stable ICU 4.8
*/
UMessagePatternArgType getArgType() const {
- UMessagePatternPartType type=getType();
- if(type==UMSGPAT_PART_TYPE_ARG_START || type==UMSGPAT_PART_TYPE_ARG_LIMIT) {
+ UMessagePatternPartType msgType=getType();
+ if(msgType ==UMSGPAT_PART_TYPE_ARG_START || msgType ==UMSGPAT_PART_TYPE_ARG_LIMIT) {
return (UMessagePatternArgType)value;
} else {
return UMSGPAT_ARG_TYPE_NONE;
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/normalizer2.h b/Build/source/libs/icu/icu-src/source/common/unicode/normalizer2.h
index 8a6d7138021..4caa0e31034 100644
--- a/Build/source/libs/icu/icu-src/source/common/unicode/normalizer2.h
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/normalizer2.h
@@ -241,7 +241,7 @@ public:
* pass the U_SUCCESS() test, or else the function returns
* immediately. Check for U_FAILURE() on output or use with
* function chaining. (See User Guide for details.)
- * @draft ICU 60
+ * @stable ICU 60
*/
virtual void
normalizeUTF8(uint32_t options, StringPiece src, ByteSink &sink,
@@ -391,7 +391,7 @@ public:
* immediately. Check for U_FAILURE() on output or use with
* function chaining. (See User Guide for details.)
* @return TRUE if s is normalized
- * @draft ICU 60
+ * @stable ICU 60
*/
virtual UBool
isNormalizedUTF8(StringPiece s, UErrorCode &errorCode) const;
@@ -559,7 +559,7 @@ public:
* pass the U_SUCCESS() test, or else the function returns
* immediately. Check for U_FAILURE() on output or use with
* function chaining. (See User Guide for details.)
- * @draft ICU 60
+ * @stable ICU 60
*/
virtual void
normalizeUTF8(uint32_t options, StringPiece src, ByteSink &sink,
@@ -686,7 +686,7 @@ public:
* immediately. Check for U_FAILURE() on output or use with
* function chaining. (See User Guide for details.)
* @return TRUE if s is normalized
- * @draft ICU 60
+ * @stable ICU 60
*/
virtual UBool
isNormalizedUTF8(StringPiece s, UErrorCode &errorCode) const U_OVERRIDE;
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/platform.h b/Build/source/libs/icu/icu-src/source/common/unicode/platform.h
index c63fce6e6d8..a3623f5da6a 100644
--- a/Build/source/libs/icu/icu-src/source/common/unicode/platform.h
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/platform.h
@@ -38,7 +38,7 @@
* and/or from other macros that are predefined by the compiler
* or defined in standard (POSIX or platform or compiler) headers.
*
- * As a temporary workaround, you can add an explicit <code>#define</code> for some macros
+ * As a temporary workaround, you can add an explicit \#define for some macros
* before it is first tested, or add an equivalent -D macro definition
* to the compiler's command line.
*
@@ -197,20 +197,6 @@
#endif
/**
- * \def UPRV_INCOMPLETE_CPP11_SUPPORT
- * This switch turns off ICU 60 NumberFormatter code.
- * By default, this switch is enabled on AIX and z/OS,
- * which have poor C++11 support.
- *
- * NOTE: This switch is intended to be temporary; see #13393.
- *
- * @internal
- */
-#ifndef UPRV_INCOMPLETE_CPP11_SUPPORT
-# define UPRV_INCOMPLETE_CPP11_SUPPORT (U_PLATFORM == U_PF_AIX || U_PLATFORM == U_PF_OS390 || U_PLATFORM == U_PF_SOLARIS )
-#endif
-
-/**
* \def CYGWINMSVC
* Defined if this is Windows with Cygwin, but using MSVC rather than gcc.
* Otherwise undefined.
@@ -221,6 +207,9 @@
# define CYGWINMSVC
#endif
*/
+#ifdef U_IN_DOXYGEN
+# define CYGWINMSVC
+#endif
/**
* \def U_PLATFORM_USES_ONLY_WIN32_API
@@ -431,6 +420,9 @@
#ifndef __has_cpp_attribute
# define __has_cpp_attribute(x) 0
#endif
+#ifndef __has_declspec_attribute
+# define __has_declspec_attribute(x) 0
+#endif
#ifndef __has_builtin
# define __has_builtin(x) 0
#endif
@@ -507,13 +499,8 @@ namespace std {
*/
#ifdef U_NOEXCEPT
/* Use the predefined value. */
-#elif defined(_HAS_EXCEPTIONS) && !_HAS_EXCEPTIONS /* Visual Studio */
-# define U_NOEXCEPT
-#elif U_CPLUSPLUS_VERSION >= 11 || __has_feature(cxx_noexcept) || __has_extension(cxx_noexcept) \
- || (defined(_MSC_VER) && _MSC_VER >= 1900) /* Visual Studio 2015 */
-# define U_NOEXCEPT noexcept
#else
-# define U_NOEXCEPT
+# define U_NOEXCEPT noexcept
#endif
/**
@@ -533,6 +520,8 @@ namespace std {
(__has_feature(cxx_attributes) && __has_warning("-Wimplicit-fallthrough"))
# define U_FALLTHROUGH [[clang::fallthrough]]
# endif
+#elif defined(__GNUC__) && (__GNUC__ >= 7)
+# define U_FALLTHROUGH __attribute__((fallthrough))
#endif
#ifndef U_FALLTHROUGH
@@ -777,7 +766,8 @@ namespace std {
#elif U_HAVE_CHAR16_T \
|| (defined(__xlC__) && defined(__IBM_UTF_LITERAL) && U_SIZEOF_WCHAR_T != 2) \
|| (defined(__HP_aCC) && __HP_aCC >= 035000) \
- || (defined(__HP_cc) && __HP_cc >= 111106)
+ || (defined(__HP_cc) && __HP_cc >= 111106) \
+ || (defined(U_IN_DOXYGEN))
# define U_DECLARE_UTF16(string) u ## string
#elif U_SIZEOF_WCHAR_T == 2 \
&& (U_CHARSET_FAMILY == 0 || (U_PF_OS390 <= U_PLATFORM && U_PLATFORM <= U_PF_OS400 && defined(__UCS2__)))
@@ -796,6 +786,8 @@ namespace std {
/* Use the predefined value. */
#elif defined(U_STATIC_IMPLEMENTATION)
# define U_EXPORT
+#elif defined(_MSC_VER) || (__has_declspec_attribute(dllexport) && __has_declspec_attribute(dllimport))
+# define U_EXPORT __declspec(dllexport)
#elif defined(__GNUC__)
# define U_EXPORT __attribute__((visibility("default")))
#elif (defined(__SUNPRO_CC) && __SUNPRO_CC >= 0x550) \
@@ -803,8 +795,6 @@ namespace std {
# define U_EXPORT __global
/*#elif defined(__HP_aCC) || defined(__HP_cc)
# define U_EXPORT __declspec(dllexport)*/
-#elif defined(_MSC_VER)
-# define U_EXPORT __declspec(dllexport)
#else
# define U_EXPORT
#endif
@@ -820,7 +810,7 @@ namespace std {
#ifdef U_IMPORT
/* Use the predefined value. */
-#elif defined(_MSC_VER)
+#elif defined(_MSC_VER) || (__has_declspec_attribute(dllexport) && __has_declspec_attribute(dllimport))
/* Windows needs to export/import data. */
# define U_IMPORT __declspec(dllimport)
#else
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/ptypes.h b/Build/source/libs/icu/icu-src/source/common/unicode/ptypes.h
index 6eaf2dbf035..70324ffee3b 100644
--- a/Build/source/libs/icu/icu-src/source/common/unicode/ptypes.h
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/ptypes.h
@@ -83,6 +83,7 @@ typedef unsigned char uint8_t;
#else /* neither U_HAVE_STDINT_H nor U_HAVE_INTTYPES_H */
+/// \cond
#if ! U_HAVE_INT8_T
typedef signed char int8_t;
#endif
@@ -122,6 +123,7 @@ typedef unsigned int uint32_t;
typedef unsigned long long uint64_t;
#endif
#endif
+/// \endcond
#endif /* U_HAVE_STDINT_H / U_HAVE_INTTYPES_H */
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/rbbi.h b/Build/source/libs/icu/icu-src/source/common/unicode/rbbi.h
index f0ac4bc4d78..47abd554eaf 100644
--- a/Build/source/libs/icu/icu-src/source/common/unicode/rbbi.h
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/rbbi.h
@@ -55,7 +55,7 @@ class U_COMMON_API RuleBasedBreakIterator /*U_FINAL*/ : public BreakIterator {
private:
/**
* The UText through which this BreakIterator accesses the text
- * @internal
+ * @internal (private)
*/
UText fText;
@@ -70,13 +70,6 @@ public:
RBBIDataWrapper *fData;
private:
- /**
- * The iteration state - current position, rule status for the current position,
- * and whether the iterator ran off the end, yielding UBRK_DONE.
- * Current position is pinned to be 0 < position <= text.length.
- * Current position is always set to a boundary.
- * @internal
- */
/**
* The current position of the iterator. Pinned, 0 < fPosition <= text.length.
* Never has the value UBRK_DONE (-1).
@@ -106,7 +99,7 @@ private:
* If present, UStack of LanguageBreakEngine objects that might handle
* dictionary characters. Searched from top to bottom to find an object to
* handle a given character.
- * @internal
+ * @internal (private)
*/
UStack *fLanguageBreakEngines;
@@ -115,14 +108,14 @@ private:
* If present, the special LanguageBreakEngine used for handling
* characters that are in the dictionary set, but not handled by any
* LangugageBreakEngine.
- * @internal
+ * @internal (private)
*/
UnhandledEngine *fUnhandledBreakEngine;
/**
* Counter for the number of characters encountered with the "dictionary"
* flag set.
- * @internal
+ * @internal (private)
*/
uint32_t fDictionaryCharCount;
@@ -157,7 +150,7 @@ private:
*
* The break iterator adopts the memory, and will
* free it when done.
- * @internal
+ * @internal (private)
*/
RuleBasedBreakIterator(RBBIDataHeader* data, UErrorCode &status);
@@ -628,25 +621,26 @@ private:
/**
* Dumps caches and performs other actions associated with a complete change
* in text or iteration position.
- * @internal
+ * @internal (private)
*/
void reset(void);
/**
* Common initialization function, used by constructors and bufferClone.
- * @internal
+ * @internal (private)
*/
void init(UErrorCode &status);
/**
- * Iterate backwards from an arbitrary position in the input text using the Safe Reverse rules.
+ * Iterate backwards from an arbitrary position in the input text using the
+ * synthesized Safe Reverse rules.
* This locates a "Safe Position" from which the forward break rules
* will operate correctly. A Safe Position is not necessarily a boundary itself.
*
* @param fromPosition the position in the input text to begin the iteration.
- * @internal
+ * @internal (private)
*/
- int32_t handlePrevious(int32_t fromPosition);
+ int32_t handleSafePrevious(int32_t fromPosition);
/**
* Find a rule-based boundary by running the state machine.
@@ -658,7 +652,7 @@ private:
* If > 0, the segment will be further subdivided
* fRuleStatusIndex Info from the state table indicating which rules caused the boundary.
*
- * @internal
+ * @internal (private)
*/
int32_t handleNext();
@@ -667,7 +661,7 @@ private:
* This function returns the appropriate LanguageBreakEngine for a
* given character c.
* @param c A character in the dictionary set
- * @internal
+ * @internal (private)
*/
const LanguageBreakEngine *getLanguageBreakEngine(UChar32 c);
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/stringoptions.h b/Build/source/libs/icu/icu-src/source/common/unicode/stringoptions.h
index f2de96e9634..7b9f70944f6 100644
--- a/Build/source/libs/icu/icu-src/source/common/unicode/stringoptions.h
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/stringoptions.h
@@ -39,8 +39,6 @@
*/
#define U_FOLD_CASE_EXCLUDE_SPECIAL_I 1
-#ifndef U_HIDE_DRAFT_API
-
/**
* Titlecase the string as a whole rather than each word.
* (Titlecase only the character at index 0, possibly adjusted.)
@@ -50,7 +48,7 @@
* including both an options bit and an explicit BreakIterator.
*
* @see U_TITLECASE_ADJUST_TO_CASED
- * @draft ICU 60
+ * @stable ICU 60
*/
#define U_TITLECASE_WHOLE_STRING 0x20
@@ -63,12 +61,10 @@
* including both an options bit and an explicit BreakIterator.
*
* @see U_TITLECASE_ADJUST_TO_CASED
- * @draft ICU 60
+ * @stable ICU 60
*/
#define U_TITLECASE_SENTENCES 0x40
-#endif // U_HIDE_DRAFT_API
-
/**
* Do not lowercase non-initial parts of words when titlecasing.
* Option bit for titlecasing APIs that take an options bit set.
@@ -112,8 +108,6 @@
*/
#define U_TITLECASE_NO_BREAK_ADJUSTMENT 0x200
-#ifndef U_HIDE_DRAFT_API
-
/**
* Adjust each titlecasing BreakIterator index to the next cased character.
* (See the Unicode Standard, chapter 3, Default Case Conversion, R3 toTitlecase(X).)
@@ -130,7 +124,7 @@
* It is an error to specify multiple titlecasing adjustment options together.
*
* @see U_TITLECASE_NO_BREAK_ADJUSTMENT
- * @draft ICU 60
+ * @stable ICU 60
*/
#define U_TITLECASE_ADJUST_TO_CASED 0x400
@@ -141,7 +135,7 @@
* @see CaseMap
* @see Edits
* @see Normalizer2
- * @draft ICU 60
+ * @stable ICU 60
*/
#define U_EDITS_NO_RESET 0x2000
@@ -153,12 +147,10 @@
* @see CaseMap
* @see Edits
* @see Normalizer2
- * @draft ICU 60
+ * @stable ICU 60
*/
#define U_OMIT_UNCHANGED_TEXT 0x4000
-#endif // U_HIDE_DRAFT_API
-
/**
* Option bit for u_strCaseCompare, u_strcasecmp, unorm_compare, etc:
* Compare strings in code point order instead of code unit order.
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/stringtriebuilder.h b/Build/source/libs/icu/icu-src/source/common/unicode/stringtriebuilder.h
index caeae51a472..fe99fdb41fd 100644
--- a/Build/source/libs/icu/icu-src/source/common/unicode/stringtriebuilder.h
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/stringtriebuilder.h
@@ -26,8 +26,10 @@
*/
// Forward declaration.
+/// \cond
struct UHashtable;
typedef struct UHashtable UHashtable;
+/// \endcond
/**
* Build options for BytesTrieBuilder and CharsTrieBuilder.
@@ -64,7 +66,7 @@ class U_COMMON_API StringTrieBuilder : public UObject {
public:
#ifndef U_HIDE_INTERNAL_API
/** @internal */
- static UBool hashNode(const void *node);
+ static int32_t hashNode(const void *node);
/** @internal */
static UBool equalNodes(const void *left, const void *right);
#endif /* U_HIDE_INTERNAL_API */
@@ -188,7 +190,10 @@ protected:
// Do not conditionalize the following with #ifndef U_HIDE_INTERNAL_API,
// it is needed for layout of other objects.
- /** @internal */
+ /**
+ * @internal
+ * \cond
+ */
class Node : public UObject {
public:
Node(int32_t initialHash) : hash(initialHash), offset(0) {}
@@ -391,7 +396,9 @@ protected:
int32_t length;
Node *next; // A branch sub-node.
};
+
#endif /* U_HIDE_INTERNAL_API */
+ /// \endcond
/** @internal */
virtual Node *createLinearMatchNode(int32_t i, int32_t unitIndex, int32_t length,
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/ubidi.h b/Build/source/libs/icu/icu-src/source/common/unicode/ubidi.h
index 254a5bf9ef4..f4875c8801e 100644
--- a/Build/source/libs/icu/icu-src/source/common/unicode/ubidi.h
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/ubidi.h
@@ -323,6 +323,10 @@
* these special values are designed that way. Also, the implementation
* assumes that UBIDI_MAX_EXPLICIT_LEVEL is odd.
*
+ * Note: The numeric values of the related constants will not change:
+ * They are tied to the use of 7-bit byte values (plus the override bit)
+ * and of the UBiDiLevel=uint8_t data type in this API.
+ *
* @see UBIDI_DEFAULT_LTR
* @see UBIDI_DEFAULT_RTL
* @see UBIDI_LEVEL_OVERRIDE
@@ -386,6 +390,8 @@ typedef uint8_t UBiDiLevel;
/**
* Maximum explicit embedding level.
+ * Same as the max_depth value in the
+ * <a href="http://www.unicode.org/reports/tr9/#BD2">Unicode Bidirectional Algorithm</a>.
* (The maximum resolved level can be up to <code>UBIDI_MAX_EXPLICIT_LEVEL+1</code>).
* @stable ICU 2.0
*/
@@ -1996,7 +2002,7 @@ U_CDECL_BEGIN
*
* @return The directional property / Bidi class for the given code point
* <code>c</code> if the default class has been overridden, or
- * <code>#U_BIDI_CLASS_DEFAULT=u_getIntPropertyMaxValue(UCHAR_BIDI_CLASS)+1</code>
+ * <code>u_getIntPropertyMaxValue(UCHAR_BIDI_CLASS)+1</code>
* if the standard Bidi class value for <code>c</code> is to be used.
* @see ubidi_setClassCallback
* @see ubidi_getClassCallback
@@ -2010,7 +2016,7 @@ U_CDECL_END
/**
* Retrieve the Bidi class for a given code point.
* <p>If a <code>#UBiDiClassCallback</code> callback is defined and returns a
- * value other than <code>#U_BIDI_CLASS_DEFAULT=u_getIntPropertyMaxValue(UCHAR_BIDI_CLASS)+1</code>,
+ * value other than <code>u_getIntPropertyMaxValue(UCHAR_BIDI_CLASS)+1</code>,
* that value is used; otherwise the default class determination mechanism is invoked.</p>
*
* @param pBiDi is the paragraph <code>UBiDi</code> object.
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/ubiditransform.h b/Build/source/libs/icu/icu-src/source/common/unicode/ubiditransform.h
index 627b005ed45..5c08ed5df0f 100644
--- a/Build/source/libs/icu/icu-src/source/common/unicode/ubiditransform.h
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/ubiditransform.h
@@ -26,33 +26,38 @@
/**
* \file
* \brief Bidi Transformations
+ */
+
+/**
+ * `UBiDiOrder` indicates the order of text.
*
- * <code>UBiDiOrder</code> indicates the order of text.<p>
* This bidi transformation engine supports all possible combinations (4 in
* total) of input and output text order:
- * <ul>
- * <li><logical input, visual output>: unless the output direction is RTL, this
- * corresponds to a normal operation of the Bidi algorithm as described in the
- * Unicode Technical Report and implemented by <code>UBiDi</code> when the
- * reordering mode is set to <code>UBIDI_REORDER_DEFAULT</code>. Visual RTL
- * mode is not supported by <code>UBiDi</code> and is accomplished through
- * reversing a visual LTR string,</li>
- * <li><visual input, logical output>: unless the input direction is RTL, this
- * corresponds to an "inverse bidi algorithm" in <code>UBiDi</code> with the
- * reordering mode set to <code>UBIDI_REORDER_INVERSE_LIKE_DIRECT</code>.
- * Visual RTL mode is not not supported by <code>UBiDi</code> and is
- * accomplished through reversing a visual LTR string,</li>
- * <li><logical input, logical output>: if the input and output base directions
- * mismatch, this corresponds to the <code>UBiDi</code> implementation with the
- * reordering mode set to <code>UBIDI_REORDER_RUNS_ONLY</code>; and if the
- * input and output base directions are identical, the transformation engine
- * will only handle character mirroring and Arabic shaping operations without
- * reordering,</li>
- * <li><visual input, visual output>: this reordering mode is not supported by
- * the <code>UBiDi</code> engine; it implies character mirroring, Arabic
- * shaping, and - if the input/output base directions mismatch - string
- * reverse operations.</li>
- * </ul>
+ *
+ * - <logical input, visual output>: unless the output direction is RTL, this
+ * corresponds to a normal operation of the Bidi algorithm as described in the
+ * Unicode Technical Report and implemented by `UBiDi` when the
+ * reordering mode is set to `UBIDI_REORDER_DEFAULT`. Visual RTL
+ * mode is not supported by `UBiDi` and is accomplished through
+ * reversing a visual LTR string,
+ *
+ * - <visual input, logical output>: unless the input direction is RTL, this
+ * corresponds to an "inverse bidi algorithm" in `UBiDi` with the
+ * reordering mode set to `UBIDI_REORDER_INVERSE_LIKE_DIRECT`.
+ * Visual RTL mode is not not supported by `UBiDi` and is
+ * accomplished through reversing a visual LTR string,
+ *
+ * - <logical input, logical output>: if the input and output base directions
+ * mismatch, this corresponds to the `UBiDi` implementation with the
+ * reordering mode set to `UBIDI_REORDER_RUNS_ONLY`; and if the
+ * input and output base directions are identical, the transformation engine
+ * will only handle character mirroring and Arabic shaping operations without
+ * reordering,
+ *
+ * - <visual input, visual output>: this reordering mode is not supported by
+ * the `UBiDi` engine; it implies character mirroring, Arabic
+ * shaping, and - if the input/output base directions mismatch - string
+ * reverse operations.
* @see ubidi_setInverse
* @see ubidi_setReorderingMode
* @see UBIDI_REORDER_DEFAULT
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/uchar.h b/Build/source/libs/icu/icu-src/source/common/unicode/uchar.h
index 4b72ecfc26b..9e180db53b6 100644
--- a/Build/source/libs/icu/icu-src/source/common/unicode/uchar.h
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/uchar.h
@@ -27,6 +27,24 @@
#include "unicode/utypes.h"
#include "unicode/stringoptions.h"
+#include "unicode/ucpmap.h"
+
+#if !defined(USET_DEFINED) && !defined(U_IN_DOXYGEN)
+
+#define USET_DEFINED
+
+/**
+ * USet is the C API type corresponding to C++ class UnicodeSet.
+ * It is forward-declared here to avoid including unicode/uset.h file if related
+ * APIs are not used.
+ *
+ * @see ucnv_getUnicodeSet
+ * @stable ICU 2.4
+ */
+typedef struct USet USet;
+
+#endif
+
U_CDECL_BEGIN
@@ -42,7 +60,7 @@ U_CDECL_BEGIN
* @see u_getUnicodeVersion
* @stable ICU 2.0
*/
-#define U_UNICODE_VERSION "10.0"
+#define U_UNICODE_VERSION "11.0"
/**
* \file
@@ -61,6 +79,18 @@ U_CDECL_BEGIN
* "About the Unicode Character Database" (http://www.unicode.org/ucd/)
* and the ICU User Guide chapter on Properties (http://icu-project.org/userguide/properties.html).
*
+ * Many properties are accessible via generic functions that take a UProperty selector.
+ * - u_hasBinaryProperty() returns a binary value (TRUE/FALSE) per property and code point.
+ * - u_getIntPropertyValue() returns an integer value per property and code point.
+ * For each supported enumerated or catalog property, there is
+ * an enum type for all of the property's values, and
+ * u_getIntPropertyValue() returns the numeric values of those constants.
+ * - u_getBinaryPropertySet() returns a set for each ICU-supported binary property with
+ * all code points for which the property is true.
+ * - u_getIntPropertyMap() returns a map for each
+ * ICU-supported enumerated/catalog/int-valued property which
+ * maps all Unicode code points to their values for that property.
+ *
* Many functions are designed to match java.lang.Character functions.
* See the individual function documentation,
* and see the JDK 1.4 java.lang.Character documentation
@@ -446,6 +476,13 @@ typedef enum UProperty {
* @stable ICU 60
*/
UCHAR_PREPENDED_CONCATENATION_MARK=63,
+ /**
+ * Binary property Extended_Pictographic.
+ * See http://www.unicode.org/reports/tr51/#Emoji_Properties
+ *
+ * @stable ICU 62
+ */
+ UCHAR_EXTENDED_PICTOGRAPHIC=64,
#ifndef U_HIDE_DEPRECATED_API
/**
* One more than the last constant for binary Unicode properties.
@@ -539,12 +576,34 @@ typedef enum UProperty {
(http://www.unicode.org/reports/tr9/)
Returns UBidiPairedBracketType values. @stable ICU 52 */
UCHAR_BIDI_PAIRED_BRACKET_TYPE=0x1015,
+ /**
+ * Enumerated property Indic_Positional_Category.
+ * New in Unicode 6.0 as provisional property Indic_Matra_Category;
+ * renamed and changed to informative in Unicode 8.0.
+ * See http://www.unicode.org/reports/tr44/#IndicPositionalCategory.txt
+ * @stable ICU 63
+ */
+ UCHAR_INDIC_POSITIONAL_CATEGORY=0x1016,
+ /**
+ * Enumerated property Indic_Syllabic_Category.
+ * New in Unicode 6.0 as provisional; informative since Unicode 8.0.
+ * See http://www.unicode.org/reports/tr44/#IndicSyllabicCategory.txt
+ * @stable ICU 63
+ */
+ UCHAR_INDIC_SYLLABIC_CATEGORY=0x1017,
+ /**
+ * Enumerated property Vertical_Orientation.
+ * Used for UAX #50 Unicode Vertical Text Layout (https://www.unicode.org/reports/tr50/).
+ * New as a UCD property in Unicode 10.0.
+ * @stable ICU 63
+ */
+ UCHAR_VERTICAL_ORIENTATION=0x1018,
#ifndef U_HIDE_DEPRECATED_API
/**
* One more than the last constant for enumerated/integer Unicode properties.
* @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
*/
- UCHAR_INT_LIMIT=0x1016,
+ UCHAR_INT_LIMIT=0x1019,
#endif // U_HIDE_DEPRECATED_API
/** Bitmask property General_Category_Mask.
@@ -1683,6 +1742,31 @@ enum UBlockCode {
/** @stable ICU 60 */
UBLOCK_ZANABAZAR_SQUARE = 280, /*[11A00]*/
+ // New blocks in Unicode 11.0
+
+ /** @stable ICU 62 */
+ UBLOCK_CHESS_SYMBOLS = 281, /*[1FA00]*/
+ /** @stable ICU 62 */
+ UBLOCK_DOGRA = 282, /*[11800]*/
+ /** @stable ICU 62 */
+ UBLOCK_GEORGIAN_EXTENDED = 283, /*[1C90]*/
+ /** @stable ICU 62 */
+ UBLOCK_GUNJALA_GONDI = 284, /*[11D60]*/
+ /** @stable ICU 62 */
+ UBLOCK_HANIFI_ROHINGYA = 285, /*[10D00]*/
+ /** @stable ICU 62 */
+ UBLOCK_INDIC_SIYAQ_NUMBERS = 286, /*[1EC70]*/
+ /** @stable ICU 62 */
+ UBLOCK_MAKASAR = 287, /*[11EE0]*/
+ /** @stable ICU 62 */
+ UBLOCK_MAYAN_NUMERALS = 288, /*[1D2E0]*/
+ /** @stable ICU 62 */
+ UBLOCK_MEDEFAIDRIN = 289, /*[16E40]*/
+ /** @stable ICU 62 */
+ UBLOCK_OLD_SOGDIAN = 290, /*[10F00]*/
+ /** @stable ICU 62 */
+ UBLOCK_SOGDIAN = 291, /*[10F30]*/
+
#ifndef U_HIDE_DEPRECATED_API
/**
* One more than the highest normal UBlockCode value.
@@ -1690,7 +1774,7 @@ enum UBlockCode {
*
* @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
*/
- UBLOCK_COUNT = 281,
+ UBLOCK_COUNT = 292,
#endif // U_HIDE_DEPRECATED_API
/** @stable ICU 2.0 */
@@ -1979,6 +2063,9 @@ typedef enum UJoiningGroup {
U_JG_MALAYALAM_SSA, /**< @stable ICU 60 */
U_JG_MALAYALAM_TTA, /**< @stable ICU 60 */
+ U_JG_HANIFI_ROHINGYA_KINNA_YA, /**< @stable ICU 62 */
+ U_JG_HANIFI_ROHINGYA_PA, /**< @stable ICU 62 */
+
#ifndef U_HIDE_DEPRECATED_API
/**
* One more than the highest normal UJoiningGroup value.
@@ -2029,6 +2116,7 @@ typedef enum UGraphemeClusterBreak {
U_GCB_GLUE_AFTER_ZWJ = 16, /*[GAZ]*/
/** @stable ICU 58 */
U_GCB_ZWJ = 17, /*[ZWJ]*/
+
#ifndef U_HIDE_DEPRECATED_API
/**
* One more than the highest normal UGraphemeClusterBreak value.
@@ -2090,6 +2178,9 @@ typedef enum UWordBreakValues {
U_WB_GLUE_AFTER_ZWJ = 20, /*[GAZ]*/
/** @stable ICU 58 */
U_WB_ZWJ = 21, /*[ZWJ]*/
+ /** @stable ICU 62 */
+ U_WB_WSEGSPACE = 22, /*[WSEGSPACE]*/
+
#ifndef U_HIDE_DEPRECATED_API
/**
* One more than the highest normal UWordBreakValues value.
@@ -2097,7 +2188,7 @@ typedef enum UWordBreakValues {
*
* @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
*/
- U_WB_COUNT = 22
+ U_WB_COUNT = 23
#endif // U_HIDE_DEPRECATED_API
} UWordBreakValues;
@@ -2282,6 +2373,161 @@ typedef enum UHangulSyllableType {
} UHangulSyllableType;
/**
+ * Indic Positional Category constants.
+ *
+ * @see UCHAR_INDIC_POSITIONAL_CATEGORY
+ * @stable ICU 63
+ */
+typedef enum UIndicPositionalCategory {
+ /*
+ * Note: UIndicPositionalCategory constants are parsed by preparseucd.py.
+ * It matches lines like
+ * U_INPC_<Unicode Indic_Positional_Category value name>
+ */
+
+ /** @stable ICU 63 */
+ U_INPC_NA,
+ /** @stable ICU 63 */
+ U_INPC_BOTTOM,
+ /** @stable ICU 63 */
+ U_INPC_BOTTOM_AND_LEFT,
+ /** @stable ICU 63 */
+ U_INPC_BOTTOM_AND_RIGHT,
+ /** @stable ICU 63 */
+ U_INPC_LEFT,
+ /** @stable ICU 63 */
+ U_INPC_LEFT_AND_RIGHT,
+ /** @stable ICU 63 */
+ U_INPC_OVERSTRUCK,
+ /** @stable ICU 63 */
+ U_INPC_RIGHT,
+ /** @stable ICU 63 */
+ U_INPC_TOP,
+ /** @stable ICU 63 */
+ U_INPC_TOP_AND_BOTTOM,
+ /** @stable ICU 63 */
+ U_INPC_TOP_AND_BOTTOM_AND_RIGHT,
+ /** @stable ICU 63 */
+ U_INPC_TOP_AND_LEFT,
+ /** @stable ICU 63 */
+ U_INPC_TOP_AND_LEFT_AND_RIGHT,
+ /** @stable ICU 63 */
+ U_INPC_TOP_AND_RIGHT,
+ /** @stable ICU 63 */
+ U_INPC_VISUAL_ORDER_LEFT,
+} UIndicPositionalCategory;
+
+/**
+ * Indic Syllabic Category constants.
+ *
+ * @see UCHAR_INDIC_SYLLABIC_CATEGORY
+ * @stable ICU 63
+ */
+typedef enum UIndicSyllabicCategory {
+ /*
+ * Note: UIndicSyllabicCategory constants are parsed by preparseucd.py.
+ * It matches lines like
+ * U_INSC_<Unicode Indic_Syllabic_Category value name>
+ */
+
+ /** @stable ICU 63 */
+ U_INSC_OTHER,
+ /** @stable ICU 63 */
+ U_INSC_AVAGRAHA,
+ /** @stable ICU 63 */
+ U_INSC_BINDU,
+ /** @stable ICU 63 */
+ U_INSC_BRAHMI_JOINING_NUMBER,
+ /** @stable ICU 63 */
+ U_INSC_CANTILLATION_MARK,
+ /** @stable ICU 63 */
+ U_INSC_CONSONANT,
+ /** @stable ICU 63 */
+ U_INSC_CONSONANT_DEAD,
+ /** @stable ICU 63 */
+ U_INSC_CONSONANT_FINAL,
+ /** @stable ICU 63 */
+ U_INSC_CONSONANT_HEAD_LETTER,
+ /** @stable ICU 63 */
+ U_INSC_CONSONANT_INITIAL_POSTFIXED,
+ /** @stable ICU 63 */
+ U_INSC_CONSONANT_KILLER,
+ /** @stable ICU 63 */
+ U_INSC_CONSONANT_MEDIAL,
+ /** @stable ICU 63 */
+ U_INSC_CONSONANT_PLACEHOLDER,
+ /** @stable ICU 63 */
+ U_INSC_CONSONANT_PRECEDING_REPHA,
+ /** @stable ICU 63 */
+ U_INSC_CONSONANT_PREFIXED,
+ /** @stable ICU 63 */
+ U_INSC_CONSONANT_SUBJOINED,
+ /** @stable ICU 63 */
+ U_INSC_CONSONANT_SUCCEEDING_REPHA,
+ /** @stable ICU 63 */
+ U_INSC_CONSONANT_WITH_STACKER,
+ /** @stable ICU 63 */
+ U_INSC_GEMINATION_MARK,
+ /** @stable ICU 63 */
+ U_INSC_INVISIBLE_STACKER,
+ /** @stable ICU 63 */
+ U_INSC_JOINER,
+ /** @stable ICU 63 */
+ U_INSC_MODIFYING_LETTER,
+ /** @stable ICU 63 */
+ U_INSC_NON_JOINER,
+ /** @stable ICU 63 */
+ U_INSC_NUKTA,
+ /** @stable ICU 63 */
+ U_INSC_NUMBER,
+ /** @stable ICU 63 */
+ U_INSC_NUMBER_JOINER,
+ /** @stable ICU 63 */
+ U_INSC_PURE_KILLER,
+ /** @stable ICU 63 */
+ U_INSC_REGISTER_SHIFTER,
+ /** @stable ICU 63 */
+ U_INSC_SYLLABLE_MODIFIER,
+ /** @stable ICU 63 */
+ U_INSC_TONE_LETTER,
+ /** @stable ICU 63 */
+ U_INSC_TONE_MARK,
+ /** @stable ICU 63 */
+ U_INSC_VIRAMA,
+ /** @stable ICU 63 */
+ U_INSC_VISARGA,
+ /** @stable ICU 63 */
+ U_INSC_VOWEL,
+ /** @stable ICU 63 */
+ U_INSC_VOWEL_DEPENDENT,
+ /** @stable ICU 63 */
+ U_INSC_VOWEL_INDEPENDENT,
+} UIndicSyllabicCategory;
+
+/**
+ * Vertical Orientation constants.
+ *
+ * @see UCHAR_VERTICAL_ORIENTATION
+ * @stable ICU 63
+ */
+typedef enum UVerticalOrientation {
+ /*
+ * Note: UVerticalOrientation constants are parsed by preparseucd.py.
+ * It matches lines like
+ * U_VO_<Unicode Vertical_Orientation value name>
+ */
+
+ /** @stable ICU 63 */
+ U_VO_ROTATED,
+ /** @stable ICU 63 */
+ U_VO_TRANSFORMED_ROTATED,
+ /** @stable ICU 63 */
+ U_VO_TRANSFORMED_UPRIGHT,
+ /** @stable ICU 63 */
+ U_VO_UPRIGHT,
+} UVerticalOrientation;
+
+/**
* Check a binary Unicode property for a code point.
*
* Unicode, especially in version 3.2, defines many more properties than the
@@ -2303,6 +2549,7 @@ typedef enum UHangulSyllableType {
* does not have data for the property at all, or not for this code point.
*
* @see UProperty
+ * @see u_getBinaryPropertySet
* @see u_getIntPropertyValue
* @see u_getUnicodeVersion
* @stable ICU 2.1
@@ -2310,6 +2557,28 @@ typedef enum UHangulSyllableType {
U_STABLE UBool U_EXPORT2
u_hasBinaryProperty(UChar32 c, UProperty which);
+#ifndef U_HIDE_DRAFT_API
+
+/**
+ * Returns a frozen USet for a binary property.
+ * The library retains ownership over the returned object.
+ * Sets an error code if the property number is not one for a binary property.
+ *
+ * The returned set contains all code points for which the property is true.
+ *
+ * @param property UCHAR_BINARY_START..UCHAR_BINARY_LIMIT-1
+ * @param pErrorCode an in/out ICU UErrorCode
+ * @return the property as a set
+ * @see UProperty
+ * @see u_hasBinaryProperty
+ * @see Unicode::fromUSet
+ * @draft ICU 63
+ */
+U_CAPI const USet * U_EXPORT2
+u_getBinaryPropertySet(UProperty property, UErrorCode *pErrorCode);
+
+#endif // U_HIDE_DRAFT_API
+
/**
* Check if a code point has the Alphabetic Unicode property.
* Same as u_hasBinaryProperty(c, UCHAR_ALPHABETIC).
@@ -2410,6 +2679,7 @@ u_isUWhiteSpace(UChar32 c);
* @see u_hasBinaryProperty
* @see u_getIntPropertyMinValue
* @see u_getIntPropertyMaxValue
+ * @see u_getIntPropertyMap
* @see u_getUnicodeVersion
* @stable ICU 2.2
*/
@@ -2466,6 +2736,28 @@ u_getIntPropertyMinValue(UProperty which);
U_STABLE int32_t U_EXPORT2
u_getIntPropertyMaxValue(UProperty which);
+#ifndef U_HIDE_DRAFT_API
+
+/**
+ * Returns an immutable UCPMap for an enumerated/catalog/int-valued property.
+ * The library retains ownership over the returned object.
+ * Sets an error code if the property number is not one for an "int property".
+ *
+ * The returned object maps all Unicode code points to their values for that property.
+ * For documentation of the integer values see u_getIntPropertyValue().
+ *
+ * @param property UCHAR_INT_START..UCHAR_INT_LIMIT-1
+ * @param pErrorCode an in/out ICU UErrorCode
+ * @return the property as a map
+ * @see UProperty
+ * @see u_getIntPropertyValue
+ * @draft ICU 63
+ */
+U_CAPI const UCPMap * U_EXPORT2
+u_getIntPropertyMap(UProperty property, UErrorCode *pErrorCode);
+
+#endif // U_HIDE_DRAFT_API
+
/**
* Get the numeric value for a Unicode code point as defined in the
* Unicode Character Database.
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/ucnv.h b/Build/source/libs/icu/icu-src/source/common/unicode/ucnv.h
index 53b4c6f0733..ec7c5f350b4 100644
--- a/Build/source/libs/icu/icu-src/source/common/unicode/ucnv.h
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/ucnv.h
@@ -53,19 +53,18 @@
#include "unicode/uenum.h"
#include "unicode/localpointer.h"
-#ifndef __USET_H__
+#if !defined(USET_DEFINED) && !defined(U_IN_DOXYGEN)
+
+#define USET_DEFINED
/**
- * USet is the C API type for Unicode sets.
- * It is forward-declared here to avoid including the header file if related
+ * USet is the C API type corresponding to C++ class UnicodeSet.
+ * It is forward-declared here to avoid including unicode/uset.h file if related
* conversion APIs are not used.
- * See unicode/uset.h
*
* @see ucnv_getUnicodeSet
- * @stable ICU 2.6
+ * @stable ICU 2.4
*/
-struct USet;
-/** @stable ICU 2.6 */
typedef struct USet USet;
#endif
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/uconfig.h b/Build/source/libs/icu/icu-src/source/common/unicode/uconfig.h
index 7ddf4e6adfb..857ed561357 100644
--- a/Build/source/libs/icu/icu-src/source/common/unicode/uconfig.h
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/uconfig.h
@@ -183,7 +183,7 @@
*/
#ifdef U_HAVE_LIB_SUFFIX
/* Use the predefined value. */
-#elif defined(U_LIB_SUFFIX_C_NAME)
+#elif defined(U_LIB_SUFFIX_C_NAME) || defined(U_IN_DOXYGEN)
# define U_HAVE_LIB_SUFFIX 1
#endif
@@ -431,17 +431,6 @@
# define UCONFIG_HAVE_PARSEALLINPUT 1
#endif
-
-/**
- * \def UCONFIG_FORMAT_FASTPATHS_49
- * This switch turns on other formatting fastpaths. Binary incompatible in object DecimalFormat and DecimalFormatSymbols
- *
- * @internal
- */
-#ifndef UCONFIG_FORMAT_FASTPATHS_49
-# define UCONFIG_FORMAT_FASTPATHS_49 1
-#endif
-
/**
* \def UCONFIG_NO_FILTERED_BREAK_ITERATION
* This switch turns off filtered break iteration code.
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/ucpmap.h b/Build/source/libs/icu/icu-src/source/common/unicode/ucpmap.h
new file mode 100644
index 00000000000..f2c42b6b7f4
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/ucpmap.h
@@ -0,0 +1,162 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// ucpmap.h
+// created: 2018sep03 Markus W. Scherer
+
+#ifndef __UCPMAP_H__
+#define __UCPMAP_H__
+
+#include "unicode/utypes.h"
+
+#ifndef U_HIDE_DRAFT_API
+
+U_CDECL_BEGIN
+
+/**
+ * \file
+ *
+ * This file defines an abstract map from Unicode code points to integer values.
+ *
+ * @see UCPMap
+ * @see UCPTrie
+ * @see UMutableCPTrie
+ */
+
+/**
+ * Abstract map from Unicode code points (U+0000..U+10FFFF) to integer values.
+ *
+ * @see UCPTrie
+ * @see UMutableCPTrie
+ * @draft ICU 63
+ */
+typedef struct UCPMap UCPMap;
+
+/**
+ * Selectors for how ucpmap_getRange() etc. should report value ranges overlapping with surrogates.
+ * Most users should use UCPMAP_RANGE_NORMAL.
+ *
+ * @see ucpmap_getRange
+ * @see ucptrie_getRange
+ * @see umutablecptrie_getRange
+ * @draft ICU 63
+ */
+enum UCPMapRangeOption {
+ /**
+ * ucpmap_getRange() enumerates all same-value ranges as stored in the map.
+ * Most users should use this option.
+ * @draft ICU 63
+ */
+ UCPMAP_RANGE_NORMAL,
+ /**
+ * ucpmap_getRange() enumerates all same-value ranges as stored in the map,
+ * except that lead surrogates (U+D800..U+DBFF) are treated as having the
+ * surrogateValue, which is passed to getRange() as a separate parameter.
+ * The surrogateValue is not transformed via filter().
+ * See U_IS_LEAD(c).
+ *
+ * Most users should use UCPMAP_RANGE_NORMAL instead.
+ *
+ * This option is useful for maps that map surrogate code *units* to
+ * special values optimized for UTF-16 string processing
+ * or for special error behavior for unpaired surrogates,
+ * but those values are not to be associated with the lead surrogate code *points*.
+ * @draft ICU 63
+ */
+ UCPMAP_RANGE_FIXED_LEAD_SURROGATES,
+ /**
+ * ucpmap_getRange() enumerates all same-value ranges as stored in the map,
+ * except that all surrogates (U+D800..U+DFFF) are treated as having the
+ * surrogateValue, which is passed to getRange() as a separate parameter.
+ * The surrogateValue is not transformed via filter().
+ * See U_IS_SURROGATE(c).
+ *
+ * Most users should use UCPMAP_RANGE_NORMAL instead.
+ *
+ * This option is useful for maps that map surrogate code *units* to
+ * special values optimized for UTF-16 string processing
+ * or for special error behavior for unpaired surrogates,
+ * but those values are not to be associated with the lead surrogate code *points*.
+ * @draft ICU 63
+ */
+ UCPMAP_RANGE_FIXED_ALL_SURROGATES
+};
+#ifndef U_IN_DOXYGEN
+typedef enum UCPMapRangeOption UCPMapRangeOption;
+#endif
+
+/**
+ * Returns the value for a code point as stored in the map, with range checking.
+ * Returns an implementation-defined error value if c is not in the range 0..U+10FFFF.
+ *
+ * @param map the map
+ * @param c the code point
+ * @return the map value,
+ * or an implementation-defined error value if the code point is not in the range 0..U+10FFFF
+ * @draft ICU 63
+ */
+U_CAPI uint32_t U_EXPORT2
+ucpmap_get(const UCPMap *map, UChar32 c);
+
+/**
+ * Callback function type: Modifies a map value.
+ * Optionally called by ucpmap_getRange()/ucptrie_getRange()/umutablecptrie_getRange().
+ * The modified value will be returned by the getRange function.
+ *
+ * Can be used to ignore some of the value bits,
+ * make a filter for one of several values,
+ * return a value index computed from the map value, etc.
+ *
+ * @param context an opaque pointer, as passed into the getRange function
+ * @param value a value from the map
+ * @return the modified value
+ * @draft ICU 63
+ */
+typedef uint32_t U_CALLCONV
+UCPMapValueFilter(const void *context, uint32_t value);
+
+/**
+ * Returns the last code point such that all those from start to there have the same value.
+ * Can be used to efficiently iterate over all same-value ranges in a map.
+ * (This is normally faster than iterating over code points and get()ting each value,
+ * but much slower than a data structure that stores ranges directly.)
+ *
+ * If the UCPMapValueFilter function pointer is not NULL, then
+ * the value to be delivered is passed through that function, and the return value is the end
+ * of the range where all values are modified to the same actual value.
+ * The value is unchanged if that function pointer is NULL.
+ *
+ * Example:
+ * \code
+ * UChar32 start = 0, end;
+ * uint32_t value;
+ * while ((end = ucpmap_getRange(map, start, UCPMAP_RANGE_NORMAL, 0,
+ * NULL, NULL, &value)) >= 0) {
+ * // Work with the range start..end and its value.
+ * start = end + 1;
+ * }
+ * \endcode
+ *
+ * @param map the map
+ * @param start range start
+ * @param option defines whether surrogates are treated normally,
+ * or as having the surrogateValue; usually UCPMAP_RANGE_NORMAL
+ * @param surrogateValue value for surrogates; ignored if option==UCPMAP_RANGE_NORMAL
+ * @param filter a pointer to a function that may modify the map data value,
+ * or NULL if the values from the map are to be used unmodified
+ * @param context an opaque pointer that is passed on to the filter function
+ * @param pValue if not NULL, receives the value that every code point start..end has;
+ * may have been modified by filter(context, map value)
+ * if that function pointer is not NULL
+ * @return the range end code point, or -1 if start is not a valid code point
+ * @draft ICU 63
+ */
+U_CAPI UChar32 U_EXPORT2
+ucpmap_getRange(const UCPMap *map, UChar32 start,
+ UCPMapRangeOption option, uint32_t surrogateValue,
+ UCPMapValueFilter *filter, const void *context, uint32_t *pValue);
+
+U_CDECL_END
+
+#endif // U_HIDE_DRAFT_API
+#endif
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/ucptrie.h b/Build/source/libs/icu/icu-src/source/common/unicode/ucptrie.h
new file mode 100644
index 00000000000..2718c984e43
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/ucptrie.h
@@ -0,0 +1,646 @@
+// © 2017 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// ucptrie.h (modified from utrie2.h)
+// created: 2017dec29 Markus W. Scherer
+
+#ifndef __UCPTRIE_H__
+#define __UCPTRIE_H__
+
+#include "unicode/utypes.h"
+
+#ifndef U_HIDE_DRAFT_API
+
+#include "unicode/localpointer.h"
+#include "unicode/ucpmap.h"
+#include "unicode/utf8.h"
+
+U_CDECL_BEGIN
+
+/**
+ * \file
+ *
+ * This file defines an immutable Unicode code point trie.
+ *
+ * @see UCPTrie
+ * @see UMutableCPTrie
+ */
+
+#ifndef U_IN_DOXYGEN
+/** @internal */
+typedef union UCPTrieData {
+ /** @internal */
+ const void *ptr0;
+ /** @internal */
+ const uint16_t *ptr16;
+ /** @internal */
+ const uint32_t *ptr32;
+ /** @internal */
+ const uint8_t *ptr8;
+} UCPTrieData;
+#endif
+
+/**
+ * Immutable Unicode code point trie structure.
+ * Fast, reasonably compact, map from Unicode code points (U+0000..U+10FFFF) to integer values.
+ * For details see http://site.icu-project.org/design/struct/utrie
+ *
+ * Do not access UCPTrie fields directly; use public functions and macros.
+ * Functions are easy to use: They support all trie types and value widths.
+ *
+ * When performance is really important, macros provide faster access.
+ * Most macros are specific to either "fast" or "small" tries, see UCPTrieType.
+ * There are "fast" macros for special optimized use cases.
+ *
+ * The macros will return bogus values, or may crash, if used on the wrong type or value width.
+ *
+ * @see UMutableCPTrie
+ * @draft ICU 63
+ */
+struct UCPTrie {
+#ifndef U_IN_DOXYGEN
+ /** @internal */
+ const uint16_t *index;
+ /** @internal */
+ UCPTrieData data;
+
+ /** @internal */
+ int32_t indexLength;
+ /** @internal */
+ int32_t dataLength;
+ /** Start of the last range which ends at U+10FFFF. @internal */
+ UChar32 highStart;
+ /** highStart>>12 @internal */
+ uint16_t shifted12HighStart;
+
+ /** @internal */
+ int8_t type; // UCPTrieType
+ /** @internal */
+ int8_t valueWidth; // UCPTrieValueWidth
+
+ /** padding/reserved @internal */
+ uint32_t reserved32;
+ /** padding/reserved @internal */
+ uint16_t reserved16;
+
+ /**
+ * Internal index-3 null block offset.
+ * Set to an impossibly high value (e.g., 0xffff) if there is no dedicated index-3 null block.
+ * @internal
+ */
+ uint16_t index3NullOffset;
+ /**
+ * Internal data null block offset, not shifted.
+ * Set to an impossibly high value (e.g., 0xfffff) if there is no dedicated data null block.
+ * @internal
+ */
+ int32_t dataNullOffset;
+ /** @internal */
+ uint32_t nullValue;
+
+#ifdef UCPTRIE_DEBUG
+ /** @internal */
+ const char *name;
+#endif
+#endif
+};
+#ifndef U_IN_DOXYGEN
+typedef struct UCPTrie UCPTrie;
+#endif
+
+/**
+ * Selectors for the type of a UCPTrie.
+ * Different trade-offs for size vs. speed.
+ *
+ * @see umutablecptrie_buildImmutable
+ * @see ucptrie_openFromBinary
+ * @see ucptrie_getType
+ * @draft ICU 63
+ */
+enum UCPTrieType {
+ /**
+ * For ucptrie_openFromBinary() to accept any type.
+ * ucptrie_getType() will return the actual type.
+ * @draft ICU 63
+ */
+ UCPTRIE_TYPE_ANY = -1,
+ /**
+ * Fast/simple/larger BMP data structure. Use functions and "fast" macros.
+ * @draft ICU 63
+ */
+ UCPTRIE_TYPE_FAST,
+ /**
+ * Small/slower BMP data structure. Use functions and "small" macros.
+ * @draft ICU 63
+ */
+ UCPTRIE_TYPE_SMALL
+};
+#ifndef U_IN_DOXYGEN
+typedef enum UCPTrieType UCPTrieType;
+#endif
+
+/**
+ * Selectors for the number of bits in a UCPTrie data value.
+ *
+ * @see umutablecptrie_buildImmutable
+ * @see ucptrie_openFromBinary
+ * @see ucptrie_getValueWidth
+ * @draft ICU 63
+ */
+enum UCPTrieValueWidth {
+ /**
+ * For ucptrie_openFromBinary() to accept any data value width.
+ * ucptrie_getValueWidth() will return the actual data value width.
+ * @draft ICU 63
+ */
+ UCPTRIE_VALUE_BITS_ANY = -1,
+ /**
+ * The trie stores 16 bits per data value.
+ * It returns them as unsigned values 0..0xffff=65535.
+ * @draft ICU 63
+ */
+ UCPTRIE_VALUE_BITS_16,
+ /**
+ * The trie stores 32 bits per data value.
+ * @draft ICU 63
+ */
+ UCPTRIE_VALUE_BITS_32,
+ /**
+ * The trie stores 8 bits per data value.
+ * It returns them as unsigned values 0..0xff=255.
+ * @draft ICU 63
+ */
+ UCPTRIE_VALUE_BITS_8
+};
+#ifndef U_IN_DOXYGEN
+typedef enum UCPTrieValueWidth UCPTrieValueWidth;
+#endif
+
+/**
+ * Opens a trie from its binary form, stored in 32-bit-aligned memory.
+ * Inverse of ucptrie_toBinary().
+ *
+ * The memory must remain valid and unchanged as long as the trie is used.
+ * You must ucptrie_close() the trie once you are done using it.
+ *
+ * @param type selects the trie type; results in an
+ * U_INVALID_FORMAT_ERROR if it does not match the binary data;
+ * use UCPTRIE_TYPE_ANY to accept any type
+ * @param valueWidth selects the number of bits in a data value; results in an
+ * U_INVALID_FORMAT_ERROR if it does not match the binary data;
+ * use UCPTRIE_VALUE_BITS_ANY to accept any data value width
+ * @param data a pointer to 32-bit-aligned memory containing the binary data of a UCPTrie
+ * @param length the number of bytes available at data;
+ * can be more than necessary
+ * @param pActualLength receives the actual number of bytes at data taken up by the trie data;
+ * can be NULL
+ * @param pErrorCode an in/out ICU UErrorCode
+ * @return the trie
+ *
+ * @see umutablecptrie_open
+ * @see umutablecptrie_buildImmutable
+ * @see ucptrie_toBinary
+ * @draft ICU 63
+ */
+U_CAPI UCPTrie * U_EXPORT2
+ucptrie_openFromBinary(UCPTrieType type, UCPTrieValueWidth valueWidth,
+ const void *data, int32_t length, int32_t *pActualLength,
+ UErrorCode *pErrorCode);
+
+/**
+ * Closes a trie and releases associated memory.
+ *
+ * @param trie the trie
+ * @draft ICU 63
+ */
+U_CAPI void U_EXPORT2
+ucptrie_close(UCPTrie *trie);
+
+#if U_SHOW_CPLUSPLUS_API
+
+U_NAMESPACE_BEGIN
+
+/**
+ * \class LocalUCPTriePointer
+ * "Smart pointer" class, closes a UCPTrie via ucptrie_close().
+ * For most methods see the LocalPointerBase base class.
+ *
+ * @see LocalPointerBase
+ * @see LocalPointer
+ * @draft ICU 63
+ */
+U_DEFINE_LOCAL_OPEN_POINTER(LocalUCPTriePointer, UCPTrie, ucptrie_close);
+
+U_NAMESPACE_END
+
+#endif
+
+/**
+ * Returns the trie type.
+ *
+ * @param trie the trie
+ * @return the trie type
+ * @see ucptrie_openFromBinary
+ * @see UCPTRIE_TYPE_ANY
+ * @draft ICU 63
+ */
+U_CAPI UCPTrieType U_EXPORT2
+ucptrie_getType(const UCPTrie *trie);
+
+/**
+ * Returns the number of bits in a trie data value.
+ *
+ * @param trie the trie
+ * @return the number of bits in a trie data value
+ * @see ucptrie_openFromBinary
+ * @see UCPTRIE_VALUE_BITS_ANY
+ * @draft ICU 63
+ */
+U_CAPI UCPTrieValueWidth U_EXPORT2
+ucptrie_getValueWidth(const UCPTrie *trie);
+
+/**
+ * Returns the value for a code point as stored in the trie, with range checking.
+ * Returns the trie error value if c is not in the range 0..U+10FFFF.
+ *
+ * Easier to use than UCPTRIE_FAST_GET() and similar macros but slower.
+ * Easier to use because, unlike the macros, this function works on all UCPTrie
+ * objects, for all types and value widths.
+ *
+ * @param trie the trie
+ * @param c the code point
+ * @return the trie value,
+ * or the trie error value if the code point is not in the range 0..U+10FFFF
+ * @draft ICU 63
+ */
+U_CAPI uint32_t U_EXPORT2
+ucptrie_get(const UCPTrie *trie, UChar32 c);
+
+/**
+ * Returns the last code point such that all those from start to there have the same value.
+ * Can be used to efficiently iterate over all same-value ranges in a trie.
+ * (This is normally faster than iterating over code points and get()ting each value,
+ * but much slower than a data structure that stores ranges directly.)
+ *
+ * If the UCPMapValueFilter function pointer is not NULL, then
+ * the value to be delivered is passed through that function, and the return value is the end
+ * of the range where all values are modified to the same actual value.
+ * The value is unchanged if that function pointer is NULL.
+ *
+ * Example:
+ * \code
+ * UChar32 start = 0, end;
+ * uint32_t value;
+ * while ((end = ucptrie_getRange(trie, start, UCPMAP_RANGE_NORMAL, 0,
+ * NULL, NULL, &value)) >= 0) {
+ * // Work with the range start..end and its value.
+ * start = end + 1;
+ * }
+ * \endcode
+ *
+ * @param trie the trie
+ * @param start range start
+ * @param option defines whether surrogates are treated normally,
+ * or as having the surrogateValue; usually UCPMAP_RANGE_NORMAL
+ * @param surrogateValue value for surrogates; ignored if option==UCPMAP_RANGE_NORMAL
+ * @param filter a pointer to a function that may modify the trie data value,
+ * or NULL if the values from the trie are to be used unmodified
+ * @param context an opaque pointer that is passed on to the filter function
+ * @param pValue if not NULL, receives the value that every code point start..end has;
+ * may have been modified by filter(context, trie value)
+ * if that function pointer is not NULL
+ * @return the range end code point, or -1 if start is not a valid code point
+ * @draft ICU 63
+ */
+U_CAPI UChar32 U_EXPORT2
+ucptrie_getRange(const UCPTrie *trie, UChar32 start,
+ UCPMapRangeOption option, uint32_t surrogateValue,
+ UCPMapValueFilter *filter, const void *context, uint32_t *pValue);
+
+/**
+ * Writes a memory-mappable form of the trie into 32-bit aligned memory.
+ * Inverse of ucptrie_openFromBinary().
+ *
+ * @param trie the trie
+ * @param data a pointer to 32-bit-aligned memory to be filled with the trie data;
+ * can be NULL if capacity==0
+ * @param capacity the number of bytes available at data, or 0 for pure preflighting
+ * @param pErrorCode an in/out ICU UErrorCode;
+ * U_BUFFER_OVERFLOW_ERROR if the capacity is too small
+ * @return the number of bytes written or (if buffer overflow) needed for the trie
+ *
+ * @see ucptrie_openFromBinary()
+ * @draft ICU 63
+ */
+U_CAPI int32_t U_EXPORT2
+ucptrie_toBinary(const UCPTrie *trie, void *data, int32_t capacity, UErrorCode *pErrorCode);
+
+/**
+ * Macro parameter value for a trie with 16-bit data values.
+ * Use the name of this macro as a "dataAccess" parameter in other macros.
+ * Do not use this macro in any other way.
+ *
+ * @see UCPTRIE_VALUE_BITS_16
+ * @draft ICU 63
+ */
+#define UCPTRIE_16(trie, i) ((trie)->data.ptr16[i])
+
+/**
+ * Macro parameter value for a trie with 32-bit data values.
+ * Use the name of this macro as a "dataAccess" parameter in other macros.
+ * Do not use this macro in any other way.
+ *
+ * @see UCPTRIE_VALUE_BITS_32
+ * @draft ICU 63
+ */
+#define UCPTRIE_32(trie, i) ((trie)->data.ptr32[i])
+
+/**
+ * Macro parameter value for a trie with 8-bit data values.
+ * Use the name of this macro as a "dataAccess" parameter in other macros.
+ * Do not use this macro in any other way.
+ *
+ * @see UCPTRIE_VALUE_BITS_8
+ * @draft ICU 63
+ */
+#define UCPTRIE_8(trie, i) ((trie)->data.ptr8[i])
+
+/**
+ * Returns a trie value for a code point, with range checking.
+ * Returns the trie error value if c is not in the range 0..U+10FFFF.
+ *
+ * @param trie (const UCPTrie *, in) the trie; must have type UCPTRIE_TYPE_FAST
+ * @param dataAccess UCPTRIE_16, UCPTRIE_32, or UCPTRIE_8 according to the trie’s value width
+ * @param c (UChar32, in) the input code point
+ * @return The code point's trie value.
+ * @draft ICU 63
+ */
+#define UCPTRIE_FAST_GET(trie, dataAccess, c) dataAccess(trie, _UCPTRIE_CP_INDEX(trie, 0xffff, c))
+
+/**
+ * Returns a 16-bit trie value for a code point, with range checking.
+ * Returns the trie error value if c is not in the range U+0000..U+10FFFF.
+ *
+ * @param trie (const UCPTrie *, in) the trie; must have type UCPTRIE_TYPE_SMALL
+ * @param dataAccess UCPTRIE_16, UCPTRIE_32, or UCPTRIE_8 according to the trie’s value width
+ * @param c (UChar32, in) the input code point
+ * @return The code point's trie value.
+ * @draft ICU 63
+ */
+#define UCPTRIE_SMALL_GET(trie, dataAccess, c) \
+ dataAccess(trie, _UCPTRIE_CP_INDEX(trie, UCPTRIE_SMALL_MAX, c))
+
+/**
+ * UTF-16: Reads the next code point (UChar32 c, out), post-increments src,
+ * and gets a value from the trie.
+ * Sets the trie error value if c is an unpaired surrogate.
+ *
+ * @param trie (const UCPTrie *, in) the trie; must have type UCPTRIE_TYPE_FAST
+ * @param dataAccess UCPTRIE_16, UCPTRIE_32, or UCPTRIE_8 according to the trie’s value width
+ * @param src (const UChar *, in/out) the source text pointer
+ * @param limit (const UChar *, in) the limit pointer for the text, or NULL if NUL-terminated
+ * @param c (UChar32, out) variable for the code point
+ * @param result (out) variable for the trie lookup result
+ * @draft ICU 63
+ */
+#define UCPTRIE_FAST_U16_NEXT(trie, dataAccess, src, limit, c, result) { \
+ (c) = *(src)++; \
+ int32_t __index; \
+ if (!U16_IS_SURROGATE(c)) { \
+ __index = _UCPTRIE_FAST_INDEX(trie, c); \
+ } else { \
+ uint16_t __c2; \
+ if (U16_IS_SURROGATE_LEAD(c) && (src) != (limit) && U16_IS_TRAIL(__c2 = *(src))) { \
+ ++(src); \
+ (c) = U16_GET_SUPPLEMENTARY((c), __c2); \
+ __index = _UCPTRIE_SMALL_INDEX(trie, c); \
+ } else { \
+ __index = (trie)->dataLength - UCPTRIE_ERROR_VALUE_NEG_DATA_OFFSET; \
+ } \
+ } \
+ (result) = dataAccess(trie, __index); \
+}
+
+/**
+ * UTF-16: Reads the previous code point (UChar32 c, out), pre-decrements src,
+ * and gets a value from the trie.
+ * Sets the trie error value if c is an unpaired surrogate.
+ *
+ * @param trie (const UCPTrie *, in) the trie; must have type UCPTRIE_TYPE_FAST
+ * @param dataAccess UCPTRIE_16, UCPTRIE_32, or UCPTRIE_8 according to the trie’s value width
+ * @param start (const UChar *, in) the start pointer for the text
+ * @param src (const UChar *, in/out) the source text pointer
+ * @param c (UChar32, out) variable for the code point
+ * @param result (out) variable for the trie lookup result
+ * @draft ICU 63
+ */
+#define UCPTRIE_FAST_U16_PREV(trie, dataAccess, start, src, c, result) { \
+ (c) = *--(src); \
+ int32_t __index; \
+ if (!U16_IS_SURROGATE(c)) { \
+ __index = _UCPTRIE_FAST_INDEX(trie, c); \
+ } else { \
+ uint16_t __c2; \
+ if (U16_IS_SURROGATE_TRAIL(c) && (src) != (start) && U16_IS_LEAD(__c2 = *((src) - 1))) { \
+ --(src); \
+ (c) = U16_GET_SUPPLEMENTARY(__c2, (c)); \
+ __index = _UCPTRIE_SMALL_INDEX(trie, c); \
+ } else { \
+ __index = (trie)->dataLength - UCPTRIE_ERROR_VALUE_NEG_DATA_OFFSET; \
+ } \
+ } \
+ (result) = dataAccess(trie, __index); \
+}
+
+/**
+ * UTF-8: Post-increments src and gets a value from the trie.
+ * Sets the trie error value for an ill-formed byte sequence.
+ *
+ * Unlike UCPTRIE_FAST_U16_NEXT() this UTF-8 macro does not provide the code point
+ * because it would be more work to do so and is often not needed.
+ * If the trie value differs from the error value, then the byte sequence is well-formed,
+ * and the code point can be assembled without revalidation.
+ *
+ * @param trie (const UCPTrie *, in) the trie; must have type UCPTRIE_TYPE_FAST
+ * @param dataAccess UCPTRIE_16, UCPTRIE_32, or UCPTRIE_8 according to the trie’s value width
+ * @param src (const char *, in/out) the source text pointer
+ * @param limit (const char *, in) the limit pointer for the text (must not be NULL)
+ * @param result (out) variable for the trie lookup result
+ * @draft ICU 63
+ */
+#define UCPTRIE_FAST_U8_NEXT(trie, dataAccess, src, limit, result) { \
+ int32_t __lead = (uint8_t)*(src)++; \
+ if (!U8_IS_SINGLE(__lead)) { \
+ uint8_t __t1, __t2, __t3; \
+ if ((src) != (limit) && \
+ (__lead >= 0xe0 ? \
+ __lead < 0xf0 ? /* U+0800..U+FFFF except surrogates */ \
+ U8_LEAD3_T1_BITS[__lead &= 0xf] & (1 << ((__t1 = *(src)) >> 5)) && \
+ ++(src) != (limit) && (__t2 = *(src) - 0x80) <= 0x3f && \
+ (__lead = ((int32_t)(trie)->index[(__lead << 6) + (__t1 & 0x3f)]) + __t2, 1) \
+ : /* U+10000..U+10FFFF */ \
+ (__lead -= 0xf0) <= 4 && \
+ U8_LEAD4_T1_BITS[(__t1 = *(src)) >> 4] & (1 << __lead) && \
+ (__lead = (__lead << 6) | (__t1 & 0x3f), ++(src) != (limit)) && \
+ (__t2 = *(src) - 0x80) <= 0x3f && \
+ ++(src) != (limit) && (__t3 = *(src) - 0x80) <= 0x3f && \
+ (__lead = __lead >= (trie)->shifted12HighStart ? \
+ (trie)->dataLength - UCPTRIE_HIGH_VALUE_NEG_DATA_OFFSET : \
+ ucptrie_internalSmallU8Index((trie), __lead, __t2, __t3), 1) \
+ : /* U+0080..U+07FF */ \
+ __lead >= 0xc2 && (__t1 = *(src) - 0x80) <= 0x3f && \
+ (__lead = (int32_t)(trie)->index[__lead & 0x1f] + __t1, 1))) { \
+ ++(src); \
+ } else { \
+ __lead = (trie)->dataLength - UCPTRIE_ERROR_VALUE_NEG_DATA_OFFSET; /* ill-formed*/ \
+ } \
+ } \
+ (result) = dataAccess(trie, __lead); \
+}
+
+/**
+ * UTF-8: Pre-decrements src and gets a value from the trie.
+ * Sets the trie error value for an ill-formed byte sequence.
+ *
+ * Unlike UCPTRIE_FAST_U16_PREV() this UTF-8 macro does not provide the code point
+ * because it would be more work to do so and is often not needed.
+ * If the trie value differs from the error value, then the byte sequence is well-formed,
+ * and the code point can be assembled without revalidation.
+ *
+ * @param trie (const UCPTrie *, in) the trie; must have type UCPTRIE_TYPE_FAST
+ * @param dataAccess UCPTRIE_16, UCPTRIE_32, or UCPTRIE_8 according to the trie’s value width
+ * @param start (const char *, in) the start pointer for the text
+ * @param src (const char *, in/out) the source text pointer
+ * @param result (out) variable for the trie lookup result
+ * @draft ICU 63
+ */
+#define UCPTRIE_FAST_U8_PREV(trie, dataAccess, start, src, result) { \
+ int32_t __index = (uint8_t)*--(src); \
+ if (!U8_IS_SINGLE(__index)) { \
+ __index = ucptrie_internalU8PrevIndex((trie), __index, (const uint8_t *)(start), \
+ (const uint8_t *)(src)); \
+ (src) -= __index & 7; \
+ __index >>= 3; \
+ } \
+ (result) = dataAccess(trie, __index); \
+}
+
+/**
+ * Returns a trie value for an ASCII code point, without range checking.
+ *
+ * @param trie (const UCPTrie *, in) the trie (of either fast or small type)
+ * @param dataAccess UCPTRIE_16, UCPTRIE_32, or UCPTRIE_8 according to the trie’s value width
+ * @param c (UChar32, in) the input code point; must be U+0000..U+007F
+ * @return The ASCII code point's trie value.
+ * @draft ICU 63
+ */
+#define UCPTRIE_ASCII_GET(trie, dataAccess, c) dataAccess(trie, c)
+
+/**
+ * Returns a trie value for a BMP code point (U+0000..U+FFFF), without range checking.
+ * Can be used to look up a value for a UTF-16 code unit if other parts of
+ * the string processing check for surrogates.
+ *
+ * @param trie (const UCPTrie *, in) the trie; must have type UCPTRIE_TYPE_FAST
+ * @param dataAccess UCPTRIE_16, UCPTRIE_32, or UCPTRIE_8 according to the trie’s value width
+ * @param c (UChar32, in) the input code point, must be U+0000..U+FFFF
+ * @return The BMP code point's trie value.
+ * @draft ICU 63
+ */
+#define UCPTRIE_FAST_BMP_GET(trie, dataAccess, c) dataAccess(trie, _UCPTRIE_FAST_INDEX(trie, c))
+
+/**
+ * Returns a trie value for a supplementary code point (U+10000..U+10FFFF),
+ * without range checking.
+ *
+ * @param trie (const UCPTrie *, in) the trie; must have type UCPTRIE_TYPE_FAST
+ * @param dataAccess UCPTRIE_16, UCPTRIE_32, or UCPTRIE_8 according to the trie’s value width
+ * @param c (UChar32, in) the input code point, must be U+10000..U+10FFFF
+ * @return The supplementary code point's trie value.
+ * @draft ICU 63
+ */
+#define UCPTRIE_FAST_SUPP_GET(trie, dataAccess, c) dataAccess(trie, _UCPTRIE_SMALL_INDEX(trie, c))
+
+/* Internal definitions ----------------------------------------------------- */
+
+#ifndef U_IN_DOXYGEN
+
+/**
+ * Internal implementation constants.
+ * These are needed for the API macros, but users should not use these directly.
+ * @internal
+ */
+enum {
+ /** @internal */
+ UCPTRIE_FAST_SHIFT = 6,
+
+ /** Number of entries in a data block for code points below the fast limit. 64=0x40 @internal */
+ UCPTRIE_FAST_DATA_BLOCK_LENGTH = 1 << UCPTRIE_FAST_SHIFT,
+
+ /** Mask for getting the lower bits for the in-fast-data-block offset. @internal */
+ UCPTRIE_FAST_DATA_MASK = UCPTRIE_FAST_DATA_BLOCK_LENGTH - 1,
+
+ /** @internal */
+ UCPTRIE_SMALL_MAX = 0xfff,
+
+ /**
+ * Offset from dataLength (to be subtracted) for fetching the
+ * value returned for out-of-range code points and ill-formed UTF-8/16.
+ * @internal
+ */
+ UCPTRIE_ERROR_VALUE_NEG_DATA_OFFSET = 1,
+ /**
+ * Offset from dataLength (to be subtracted) for fetching the
+ * value returned for code points highStart..U+10FFFF.
+ * @internal
+ */
+ UCPTRIE_HIGH_VALUE_NEG_DATA_OFFSET = 2
+};
+
+/* Internal functions and macros -------------------------------------------- */
+// Do not conditionalize with #ifndef U_HIDE_INTERNAL_API, needed for public API
+
+/** @internal */
+U_INTERNAL int32_t U_EXPORT2
+ucptrie_internalSmallIndex(const UCPTrie *trie, UChar32 c);
+
+/** @internal */
+U_INTERNAL int32_t U_EXPORT2
+ucptrie_internalSmallU8Index(const UCPTrie *trie, int32_t lt1, uint8_t t2, uint8_t t3);
+
+/**
+ * Internal function for part of the UCPTRIE_FAST_U8_PREVxx() macro implementations.
+ * Do not call directly.
+ * @internal
+ */
+U_INTERNAL int32_t U_EXPORT2
+ucptrie_internalU8PrevIndex(const UCPTrie *trie, UChar32 c,
+ const uint8_t *start, const uint8_t *src);
+
+/** Internal trie getter for a code point below the fast limit. Returns the data index. @internal */
+#define _UCPTRIE_FAST_INDEX(trie, c) \
+ ((int32_t)(trie)->index[(c) >> UCPTRIE_FAST_SHIFT] + ((c) & UCPTRIE_FAST_DATA_MASK))
+
+/** Internal trie getter for a code point at or above the fast limit. Returns the data index. @internal */
+#define _UCPTRIE_SMALL_INDEX(trie, c) \
+ ((c) >= (trie)->highStart ? \
+ (trie)->dataLength - UCPTRIE_HIGH_VALUE_NEG_DATA_OFFSET : \
+ ucptrie_internalSmallIndex(trie, c))
+
+/**
+ * Internal trie getter for a code point, with checking that c is in U+0000..10FFFF.
+ * Returns the data index.
+ * @internal
+ */
+#define _UCPTRIE_CP_INDEX(trie, fastMax, c) \
+ ((uint32_t)(c) <= (uint32_t)(fastMax) ? \
+ _UCPTRIE_FAST_INDEX(trie, c) : \
+ (uint32_t)(c) <= 0x10ffff ? \
+ _UCPTRIE_SMALL_INDEX(trie, c) : \
+ (trie)->dataLength - UCPTRIE_ERROR_VALUE_NEG_DATA_OFFSET)
+
+U_CDECL_END
+
+#endif // U_IN_DOXYGEN
+#endif // U_HIDE_DRAFT_API
+#endif
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/ucurr.h b/Build/source/libs/icu/icu-src/source/common/unicode/ucurr.h
index 192bc298cf7..b219875de23 100644
--- a/Build/source/libs/icu/icu-src/source/common/unicode/ucurr.h
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/ucurr.h
@@ -60,6 +60,7 @@ enum UCurrencyUsage {
UCURR_USAGE_COUNT=2
#endif // U_HIDE_DEPRECATED_API
};
+/** Currency Usage used for Decimal Format */
typedef enum UCurrencyUsage UCurrencyUsage;
/**
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/uenum.h b/Build/source/libs/icu/icu-src/source/common/unicode/uenum.h
index fc6efa2450d..c670eeafb16 100644
--- a/Build/source/libs/icu/icu-src/source/common/unicode/uenum.h
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/uenum.h
@@ -190,8 +190,6 @@ U_STABLE UEnumeration* U_EXPORT2
uenum_openUCharStringsEnumeration(const UChar* const strings[], int32_t count,
UErrorCode* ec);
-/* Note: next function is not hidden as draft, as it is used internally (it was formerly an internal function). */
-
/**
* Given an array of const char* strings (invariant chars only), return a UEnumeration. String pointers from 0..count-1 must not be null.
* Do not free or modify either the string array or the characters it points to until this object has been destroyed with uenum_close.
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/umachine.h b/Build/source/libs/icu/icu-src/source/common/unicode/umachine.h
index 2bcaaf4050a..0205da62eb4 100644
--- a/Build/source/libs/icu/icu-src/source/common/unicode/umachine.h
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/umachine.h
@@ -125,6 +125,9 @@
* May result in an error if it applied to something not an override.
* @internal
*/
+#ifndef U_OVERRIDE
+#define U_OVERRIDE override
+#endif
/**
* \def U_FINAL
@@ -133,24 +136,10 @@
* May result in an error if subclasses attempt to override.
* @internal
*/
-
-#if U_CPLUSPLUS_VERSION >= 11
-/* C++11 */
-#ifndef U_OVERRIDE
-#define U_OVERRIDE override
-#endif
-#ifndef U_FINAL
+#if !defined(U_FINAL) || defined(U_IN_DOXYGEN)
#define U_FINAL final
#endif
-#else
-/* not C++11 - define to nothing */
-#ifndef U_OVERRIDE
-#define U_OVERRIDE
-#endif
-#ifndef U_FINAL
-#define U_FINAL
-#endif
-#endif
+
/*==========================================================================*/
/* limits for int32_t etc., like in POSIX inttypes.h */
@@ -318,7 +307,7 @@ typedef int8_t UBool;
* UChar is configurable by defining the macro UCHAR_TYPE
* on the preprocessor or compiler command line:
* -DUCHAR_TYPE=uint16_t or -DUCHAR_TYPE=wchar_t (if U_SIZEOF_WCHAR_T==2) etc.
- * (The UCHAR_TYPE can also be #defined earlier in this file, for outside the ICU library code.)
+ * (The UCHAR_TYPE can also be \#defined earlier in this file, for outside the ICU library code.)
* This is for transitional use from application code that uses uint16_t or wchar_t for UTF-16.
*
* The default is UChar=char16_t.
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/umutablecptrie.h b/Build/source/libs/icu/icu-src/source/common/unicode/umutablecptrie.h
new file mode 100644
index 00000000000..e75191a4495
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/umutablecptrie.h
@@ -0,0 +1,241 @@
+// © 2017 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// umutablecptrie.h (split out of ucptrie.h)
+// created: 2018jan24 Markus W. Scherer
+
+#ifndef __UMUTABLECPTRIE_H__
+#define __UMUTABLECPTRIE_H__
+
+#include "unicode/utypes.h"
+
+#ifndef U_HIDE_DRAFT_API
+
+#include "unicode/localpointer.h"
+#include "unicode/ucpmap.h"
+#include "unicode/ucptrie.h"
+#include "unicode/utf8.h"
+
+U_CDECL_BEGIN
+
+/**
+ * \file
+ *
+ * This file defines a mutable Unicode code point trie.
+ *
+ * @see UCPTrie
+ * @see UMutableCPTrie
+ */
+
+/**
+ * Mutable Unicode code point trie.
+ * Fast map from Unicode code points (U+0000..U+10FFFF) to 32-bit integer values.
+ * For details see http://site.icu-project.org/design/struct/utrie
+ *
+ * Setting values (especially ranges) and lookup is fast.
+ * The mutable trie is only somewhat space-efficient.
+ * It builds a compacted, immutable UCPTrie.
+ *
+ * This trie can be modified while iterating over its contents.
+ * For example, it is possible to merge its values with those from another
+ * set of ranges (e.g., another mutable or immutable trie):
+ * Iterate over those source ranges; for each of them iterate over this trie;
+ * add the source value into the value of each trie range.
+ *
+ * @see UCPTrie
+ * @see umutablecptrie_buildImmutable
+ * @draft ICU 63
+ */
+typedef struct UMutableCPTrie UMutableCPTrie;
+
+/**
+ * Creates a mutable trie that initially maps each Unicode code point to the same value.
+ * It uses 32-bit data values until umutablecptrie_buildImmutable() is called.
+ * umutablecptrie_buildImmutable() takes a valueWidth parameter which
+ * determines the number of bits in the data value in the resulting UCPTrie.
+ * You must umutablecptrie_close() the trie once you are done using it.
+ *
+ * @param initialValue the initial value that is set for all code points
+ * @param errorValue the value for out-of-range code points and ill-formed UTF-8/16
+ * @param pErrorCode an in/out ICU UErrorCode
+ * @return the trie
+ * @draft ICU 63
+ */
+U_CAPI UMutableCPTrie * U_EXPORT2
+umutablecptrie_open(uint32_t initialValue, uint32_t errorValue, UErrorCode *pErrorCode);
+
+/**
+ * Clones a mutable trie.
+ * You must umutablecptrie_close() the clone once you are done using it.
+ *
+ * @param other the trie to clone
+ * @param pErrorCode an in/out ICU UErrorCode
+ * @return the trie clone
+ * @draft ICU 63
+ */
+U_CAPI UMutableCPTrie * U_EXPORT2
+umutablecptrie_clone(const UMutableCPTrie *other, UErrorCode *pErrorCode);
+
+/**
+ * Closes a mutable trie and releases associated memory.
+ *
+ * @param trie the trie
+ * @draft ICU 63
+ */
+U_CAPI void U_EXPORT2
+umutablecptrie_close(UMutableCPTrie *trie);
+
+#if U_SHOW_CPLUSPLUS_API
+
+U_NAMESPACE_BEGIN
+
+/**
+ * \class LocalUMutableCPTriePointer
+ * "Smart pointer" class, closes a UMutableCPTrie via umutablecptrie_close().
+ * For most methods see the LocalPointerBase base class.
+ *
+ * @see LocalPointerBase
+ * @see LocalPointer
+ * @draft ICU 63
+ */
+U_DEFINE_LOCAL_OPEN_POINTER(LocalUMutableCPTriePointer, UMutableCPTrie, umutablecptrie_close);
+
+U_NAMESPACE_END
+
+#endif
+
+/**
+ * Creates a mutable trie with the same contents as the UCPMap.
+ * You must umutablecptrie_close() the mutable trie once you are done using it.
+ *
+ * @param map the source map
+ * @param pErrorCode an in/out ICU UErrorCode
+ * @return the mutable trie
+ * @draft ICU 63
+ */
+U_CAPI UMutableCPTrie * U_EXPORT2
+umutablecptrie_fromUCPMap(const UCPMap *map, UErrorCode *pErrorCode);
+
+/**
+ * Creates a mutable trie with the same contents as the immutable one.
+ * You must umutablecptrie_close() the mutable trie once you are done using it.
+ *
+ * @param trie the immutable trie
+ * @param pErrorCode an in/out ICU UErrorCode
+ * @return the mutable trie
+ * @draft ICU 63
+ */
+U_CAPI UMutableCPTrie * U_EXPORT2
+umutablecptrie_fromUCPTrie(const UCPTrie *trie, UErrorCode *pErrorCode);
+
+/**
+ * Returns the value for a code point as stored in the trie.
+ *
+ * @param trie the trie
+ * @param c the code point
+ * @return the value
+ * @draft ICU 63
+ */
+U_CAPI uint32_t U_EXPORT2
+umutablecptrie_get(const UMutableCPTrie *trie, UChar32 c);
+
+/**
+ * Returns the last code point such that all those from start to there have the same value.
+ * Can be used to efficiently iterate over all same-value ranges in a trie.
+ * (This is normally faster than iterating over code points and get()ting each value,
+ * but much slower than a data structure that stores ranges directly.)
+ *
+ * The trie can be modified between calls to this function.
+ *
+ * If the UCPMapValueFilter function pointer is not NULL, then
+ * the value to be delivered is passed through that function, and the return value is the end
+ * of the range where all values are modified to the same actual value.
+ * The value is unchanged if that function pointer is NULL.
+ *
+ * See the same-signature ucptrie_getRange() for a code sample.
+ *
+ * @param trie the trie
+ * @param start range start
+ * @param option defines whether surrogates are treated normally,
+ * or as having the surrogateValue; usually UCPMAP_RANGE_NORMAL
+ * @param surrogateValue value for surrogates; ignored if option==UCPMAP_RANGE_NORMAL
+ * @param filter a pointer to a function that may modify the trie data value,
+ * or NULL if the values from the trie are to be used unmodified
+ * @param context an opaque pointer that is passed on to the filter function
+ * @param pValue if not NULL, receives the value that every code point start..end has;
+ * may have been modified by filter(context, trie value)
+ * if that function pointer is not NULL
+ * @return the range end code point, or -1 if start is not a valid code point
+ * @draft ICU 63
+ */
+U_CAPI UChar32 U_EXPORT2
+umutablecptrie_getRange(const UMutableCPTrie *trie, UChar32 start,
+ UCPMapRangeOption option, uint32_t surrogateValue,
+ UCPMapValueFilter *filter, const void *context, uint32_t *pValue);
+
+/**
+ * Sets a value for a code point.
+ *
+ * @param trie the trie
+ * @param c the code point
+ * @param value the value
+ * @param pErrorCode an in/out ICU UErrorCode
+ * @draft ICU 63
+ */
+U_CAPI void U_EXPORT2
+umutablecptrie_set(UMutableCPTrie *trie, UChar32 c, uint32_t value, UErrorCode *pErrorCode);
+
+/**
+ * Sets a value for each code point [start..end].
+ * Faster and more space-efficient than setting the value for each code point separately.
+ *
+ * @param trie the trie
+ * @param start the first code point to get the value
+ * @param end the last code point to get the value (inclusive)
+ * @param value the value
+ * @param pErrorCode an in/out ICU UErrorCode
+ * @draft ICU 63
+ */
+U_CAPI void U_EXPORT2
+umutablecptrie_setRange(UMutableCPTrie *trie,
+ UChar32 start, UChar32 end,
+ uint32_t value, UErrorCode *pErrorCode);
+
+/**
+ * Compacts the data and builds an immutable UCPTrie according to the parameters.
+ * After this, the mutable trie will be empty.
+ *
+ * The mutable trie stores 32-bit values until buildImmutable() is called.
+ * If values shorter than 32 bits are to be stored in the immutable trie,
+ * then the upper bits are discarded.
+ * For example, when the mutable trie contains values 0x81, -0x7f, and 0xa581,
+ * and the value width is 8 bits, then each of these is stored as 0x81
+ * and the immutable trie will return that as an unsigned value.
+ * (Some implementations may want to make productive temporary use of the upper bits
+ * until buildImmutable() discards them.)
+ *
+ * Not every possible set of mappings can be built into a UCPTrie,
+ * because of limitations resulting from speed and space optimizations.
+ * Every Unicode assigned character can be mapped to a unique value.
+ * Typical data yields data structures far smaller than the limitations.
+ *
+ * It is possible to construct extremely unusual mappings that exceed the data structure limits.
+ * In such a case this function will fail with a U_INDEX_OUTOFBOUNDS_ERROR.
+ *
+ * @param trie the trie trie
+ * @param type selects the trie type
+ * @param valueWidth selects the number of bits in a trie data value; if smaller than 32 bits,
+ * then the values stored in the trie will be truncated first
+ * @param pErrorCode an in/out ICU UErrorCode
+ *
+ * @see umutablecptrie_fromUCPTrie
+ * @draft ICU 63
+ */
+U_CAPI UCPTrie * U_EXPORT2
+umutablecptrie_buildImmutable(UMutableCPTrie *trie, UCPTrieType type, UCPTrieValueWidth valueWidth,
+ UErrorCode *pErrorCode);
+
+U_CDECL_END
+
+#endif // U_HIDE_DRAFT_API
+#endif
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/uniset.h b/Build/source/libs/icu/icu-src/source/common/unicode/uniset.h
index ed9a3eb72ff..0abc7542402 100644
--- a/Build/source/libs/icu/icu-src/source/common/unicode/uniset.h
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/uniset.h
@@ -13,6 +13,7 @@
#ifndef UNICODESET_H
#define UNICODESET_H
+#include "unicode/ucpmap.h"
#include "unicode/unifilt.h"
#include "unicode/unistr.h"
#include "unicode/uset.h"
@@ -25,9 +26,8 @@
U_NAMESPACE_BEGIN
// Forward Declarations.
-void U_CALLCONV UnicodeSet_initInclusion(int32_t src, UErrorCode &status); /**< @internal */
-
class BMPSet;
+class CharacterProperties;
class ParsePosition;
class RBBIRuleScanner;
class SymbolTable;
@@ -584,9 +584,8 @@ public:
//----------------------------------------------------------------
/**
- * Make this object represent the range <code>start - end</code>.
- * If <code>end > start</code> then this object is set to an
- * an empty range.
+ * Make this object represent the range `start - end`.
+ * If `end > start` then this object is set to an empty range.
* A frozen set will not be modified.
*
* @param start first character in the set, inclusive
@@ -1506,6 +1505,7 @@ private:
//----------------------------------------------------------------
UnicodeSet(const UnicodeSet& o, UBool /* asThawed */);
+ UnicodeSet& copyFrom(const UnicodeSet& o, UBool asThawed);
//----------------------------------------------------------------
// Implementation: Pattern parsing
@@ -1614,7 +1614,7 @@ private:
UnicodeString& rebuiltPat,
UErrorCode& ec);
- friend void U_CALLCONV UnicodeSet_initInclusion(int32_t src, UErrorCode &status);
+ friend class CharacterProperties;
static const UnicodeSet* getInclusions(int32_t src, UErrorCode &status);
/**
@@ -1634,9 +1634,15 @@ private:
*/
void applyFilter(Filter filter,
void* context,
- int32_t src,
+ const UnicodeSet* inclusions,
UErrorCode &status);
+#ifndef U_HIDE_DRAFT_API // Skipped: ucpmap.h is draft only.
+ void applyIntPropertyValue(const UCPMap *map,
+ UCPMapValueFilter *filter, const void *context,
+ UErrorCode &errorCode);
+#endif /* U_HIDE_DRAFT_API */
+
/**
* Set the new pattern to cache.
*/
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/unistr.h b/Build/source/libs/icu/icu-src/source/common/unicode/unistr.h
index d0b271754b6..bf954b5f1d8 100644
--- a/Build/source/libs/icu/icu-src/source/common/unicode/unistr.h
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/unistr.h
@@ -243,6 +243,9 @@ class UnicodeStringAppendable; // unicode/appendable.h
* than other ICU APIs. In particular:
* - If indexes are out of bounds for a UnicodeString object
* (<0 or >length()) then they are "pinned" to the nearest boundary.
+ * - If the buffer passed to an insert/append/replace operation is owned by the
+ * target object, e.g., calling str.append(str), an extra copy may take place
+ * to ensure safety.
* - If primitive string pointer values (e.g., const char16_t * or char *)
* for input strings are NULL, then those input string parameters are treated
* as if they pointed to an empty string.
@@ -1892,7 +1895,7 @@ public:
UnicodeString &fastCopyFrom(const UnicodeString &src);
/**
- * Move assignment operator, might leave src in bogus state.
+ * Move assignment operator; might leave src in bogus state.
* This string will have the same contents and state that the source string had.
* The behavior is undefined if *this and src are the same object.
* @param src source string
@@ -1905,7 +1908,7 @@ public:
// do not use #ifndef U_HIDE_DRAFT_API for moveFrom, needed by non-draft API
/**
- * Move assignment, might leave src in bogus state.
+ * Move assignment; might leave src in bogus state.
* This string will have the same contents and state that the source string had.
* The behavior is undefined if *this and src are the same object.
*
@@ -3314,7 +3317,7 @@ public:
UnicodeString(const UnicodeString& that);
/**
- * Move constructor, might leave src in bogus state.
+ * Move constructor; might leave src in bogus state.
* This string will have the same contents and state that the source string had.
* @param src source string
* @stable ICU 56
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/uobject.h b/Build/source/libs/icu/icu-src/source/common/unicode/uobject.h
index 9782f272f6d..c42c720cc71 100644
--- a/Build/source/libs/icu/icu-src/source/common/unicode/uobject.h
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/uobject.h
@@ -27,7 +27,6 @@
*/
/**
- * @{
* \def U_NO_THROW
* Define this to define the throw() specification so
* certain functions do not throw any exceptions
@@ -44,8 +43,6 @@
#define U_NO_THROW throw()
#endif
-/** @} */
-
/*===========================================================================*/
/* UClassID-based RTTI */
/*===========================================================================*/
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/urename.h b/Build/source/libs/icu/icu-src/source/common/unicode/urename.h
index d8ab85091f5..5812173e39c 100644
--- a/Build/source/libs/icu/icu-src/source/common/unicode/urename.h
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/urename.h
@@ -33,6 +33,9 @@
#if !U_DISABLE_RENAMING
+// Disable Renaming for Visual Studio's IntelliSense feature, so that 'Go-to-Definition' (F12) will work.
+#if !(defined(_MSC_VER) && defined(__INTELLISENSE__))
+
/* We need the U_ICU_ENTRY_POINT_RENAME definition. There's a default one in unicode/uvernum.h we can use, but we will give
the platform a chance to define it first.
Normally (if utypes.h or umachine.h was included first) this will not be necessary as it will already be defined.
@@ -107,6 +110,7 @@
#define _UTF7Data U_ICU_ENTRY_POINT_RENAME(_UTF7Data)
#define _UTF8Data U_ICU_ENTRY_POINT_RENAME(_UTF8Data)
#define allowedHourFormatsCleanup U_ICU_ENTRY_POINT_RENAME(allowedHourFormatsCleanup)
+#define checkImpl U_ICU_ENTRY_POINT_RENAME(checkImpl)
#define cmemory_cleanup U_ICU_ENTRY_POINT_RENAME(cmemory_cleanup)
#define dayPeriodRulesCleanup U_ICU_ENTRY_POINT_RENAME(dayPeriodRulesCleanup)
#define deleteAllowedHourFormats U_ICU_ENTRY_POINT_RENAME(deleteAllowedHourFormats)
@@ -253,12 +257,14 @@
#define u_fstropen U_ICU_ENTRY_POINT_RENAME(u_fstropen)
#define u_fungetc U_ICU_ENTRY_POINT_RENAME(u_fungetc)
#define u_getBidiPairedBracket U_ICU_ENTRY_POINT_RENAME(u_getBidiPairedBracket)
+#define u_getBinaryPropertySet U_ICU_ENTRY_POINT_RENAME(u_getBinaryPropertySet)
#define u_getCombiningClass U_ICU_ENTRY_POINT_RENAME(u_getCombiningClass)
#define u_getDataDirectory U_ICU_ENTRY_POINT_RENAME(u_getDataDirectory)
#define u_getDataVersion U_ICU_ENTRY_POINT_RENAME(u_getDataVersion)
#define u_getDefaultConverter U_ICU_ENTRY_POINT_RENAME(u_getDefaultConverter)
#define u_getFC_NFKC_Closure U_ICU_ENTRY_POINT_RENAME(u_getFC_NFKC_Closure)
#define u_getISOComment U_ICU_ENTRY_POINT_RENAME(u_getISOComment)
+#define u_getIntPropertyMap U_ICU_ENTRY_POINT_RENAME(u_getIntPropertyMap)
#define u_getIntPropertyMaxValue U_ICU_ENTRY_POINT_RENAME(u_getIntPropertyMaxValue)
#define u_getIntPropertyMinValue U_ICU_ENTRY_POINT_RENAME(u_getIntPropertyMinValue)
#define u_getIntPropertyValue U_ICU_ENTRY_POINT_RENAME(u_getIntPropertyValue)
@@ -613,6 +619,7 @@
#define ucnv_createConverterFromPackage U_ICU_ENTRY_POINT_RENAME(ucnv_createConverterFromPackage)
#define ucnv_createConverterFromSharedData U_ICU_ENTRY_POINT_RENAME(ucnv_createConverterFromSharedData)
#define ucnv_detectUnicodeSignature U_ICU_ENTRY_POINT_RENAME(ucnv_detectUnicodeSignature)
+#define ucnv_enableCleanup U_ICU_ENTRY_POINT_RENAME(ucnv_enableCleanup)
#define ucnv_extContinueMatchFromU U_ICU_ENTRY_POINT_RENAME(ucnv_extContinueMatchFromU)
#define ucnv_extContinueMatchToU U_ICU_ENTRY_POINT_RENAME(ucnv_extContinueMatchToU)
#define ucnv_extGetUnicodeSet U_ICU_ENTRY_POINT_RENAME(ucnv_extGetUnicodeSet)
@@ -762,6 +769,20 @@
#define ucol_swap U_ICU_ENTRY_POINT_RENAME(ucol_swap)
#define ucol_swapInverseUCA U_ICU_ENTRY_POINT_RENAME(ucol_swapInverseUCA)
#define ucol_tertiaryOrder U_ICU_ENTRY_POINT_RENAME(ucol_tertiaryOrder)
+#define ucpmap_get U_ICU_ENTRY_POINT_RENAME(ucpmap_get)
+#define ucpmap_getRange U_ICU_ENTRY_POINT_RENAME(ucpmap_getRange)
+#define ucptrie_close U_ICU_ENTRY_POINT_RENAME(ucptrie_close)
+#define ucptrie_get U_ICU_ENTRY_POINT_RENAME(ucptrie_get)
+#define ucptrie_getRange U_ICU_ENTRY_POINT_RENAME(ucptrie_getRange)
+#define ucptrie_getType U_ICU_ENTRY_POINT_RENAME(ucptrie_getType)
+#define ucptrie_getValueWidth U_ICU_ENTRY_POINT_RENAME(ucptrie_getValueWidth)
+#define ucptrie_internalGetRange U_ICU_ENTRY_POINT_RENAME(ucptrie_internalGetRange)
+#define ucptrie_internalSmallIndex U_ICU_ENTRY_POINT_RENAME(ucptrie_internalSmallIndex)
+#define ucptrie_internalSmallU8Index U_ICU_ENTRY_POINT_RENAME(ucptrie_internalSmallU8Index)
+#define ucptrie_internalU8PrevIndex U_ICU_ENTRY_POINT_RENAME(ucptrie_internalU8PrevIndex)
+#define ucptrie_openFromBinary U_ICU_ENTRY_POINT_RENAME(ucptrie_openFromBinary)
+#define ucptrie_swap U_ICU_ENTRY_POINT_RENAME(ucptrie_swap)
+#define ucptrie_toBinary U_ICU_ENTRY_POINT_RENAME(ucptrie_toBinary)
#define ucsdet_close U_ICU_ENTRY_POINT_RENAME(ucsdet_close)
#define ucsdet_detect U_ICU_ENTRY_POINT_RENAME(ucsdet_detect)
#define ucsdet_detectAll U_ICU_ENTRY_POINT_RENAME(ucsdet_detectAll)
@@ -1078,6 +1099,7 @@
#define ulocdata_getPaperSize U_ICU_ENTRY_POINT_RENAME(ulocdata_getPaperSize)
#define ulocdata_open U_ICU_ENTRY_POINT_RENAME(ulocdata_open)
#define ulocdata_setNoSubstitute U_ICU_ENTRY_POINT_RENAME(ulocdata_setNoSubstitute)
+#define ulocimp_forLanguageTag U_ICU_ENTRY_POINT_RENAME(ulocimp_forLanguageTag)
#define ulocimp_getCountry U_ICU_ENTRY_POINT_RENAME(ulocimp_getCountry)
#define ulocimp_getLanguage U_ICU_ENTRY_POINT_RENAME(ulocimp_getLanguage)
#define ulocimp_getRegionForSupplementalData U_ICU_ENTRY_POINT_RENAME(ulocimp_getRegionForSupplementalData)
@@ -1105,6 +1127,16 @@
#define umtx_condWait U_ICU_ENTRY_POINT_RENAME(umtx_condWait)
#define umtx_lock U_ICU_ENTRY_POINT_RENAME(umtx_lock)
#define umtx_unlock U_ICU_ENTRY_POINT_RENAME(umtx_unlock)
+#define umutablecptrie_buildImmutable U_ICU_ENTRY_POINT_RENAME(umutablecptrie_buildImmutable)
+#define umutablecptrie_clone U_ICU_ENTRY_POINT_RENAME(umutablecptrie_clone)
+#define umutablecptrie_close U_ICU_ENTRY_POINT_RENAME(umutablecptrie_close)
+#define umutablecptrie_fromUCPMap U_ICU_ENTRY_POINT_RENAME(umutablecptrie_fromUCPMap)
+#define umutablecptrie_fromUCPTrie U_ICU_ENTRY_POINT_RENAME(umutablecptrie_fromUCPTrie)
+#define umutablecptrie_get U_ICU_ENTRY_POINT_RENAME(umutablecptrie_get)
+#define umutablecptrie_getRange U_ICU_ENTRY_POINT_RENAME(umutablecptrie_getRange)
+#define umutablecptrie_open U_ICU_ENTRY_POINT_RENAME(umutablecptrie_open)
+#define umutablecptrie_set U_ICU_ENTRY_POINT_RENAME(umutablecptrie_set)
+#define umutablecptrie_setRange U_ICU_ENTRY_POINT_RENAME(umutablecptrie_setRange)
#define uniset_getUnicode32Instance U_ICU_ENTRY_POINT_RENAME(uniset_getUnicode32Instance)
#define unorm2_append U_ICU_ENTRY_POINT_RENAME(unorm2_append)
#define unorm2_close U_ICU_ENTRY_POINT_RENAME(unorm2_close)
@@ -1170,6 +1202,16 @@
#define unum_setSymbol U_ICU_ENTRY_POINT_RENAME(unum_setSymbol)
#define unum_setTextAttribute U_ICU_ENTRY_POINT_RENAME(unum_setTextAttribute)
#define unum_toPattern U_ICU_ENTRY_POINT_RENAME(unum_toPattern)
+#define unumf_close U_ICU_ENTRY_POINT_RENAME(unumf_close)
+#define unumf_closeResult U_ICU_ENTRY_POINT_RENAME(unumf_closeResult)
+#define unumf_formatDecimal U_ICU_ENTRY_POINT_RENAME(unumf_formatDecimal)
+#define unumf_formatDouble U_ICU_ENTRY_POINT_RENAME(unumf_formatDouble)
+#define unumf_formatInt U_ICU_ENTRY_POINT_RENAME(unumf_formatInt)
+#define unumf_openForSkeletonAndLocale U_ICU_ENTRY_POINT_RENAME(unumf_openForSkeletonAndLocale)
+#define unumf_openResult U_ICU_ENTRY_POINT_RENAME(unumf_openResult)
+#define unumf_resultGetAllFieldPositions U_ICU_ENTRY_POINT_RENAME(unumf_resultGetAllFieldPositions)
+#define unumf_resultNextFieldPosition U_ICU_ENTRY_POINT_RENAME(unumf_resultNextFieldPosition)
+#define unumf_resultToString U_ICU_ENTRY_POINT_RENAME(unumf_resultToString)
#define unumsys_close U_ICU_ENTRY_POINT_RENAME(unumsys_close)
#define unumsys_getDescription U_ICU_ENTRY_POINT_RENAME(unumsys_getDescription)
#define unumsys_getName U_ICU_ENTRY_POINT_RENAME(unumsys_getName)
@@ -1207,8 +1249,10 @@
#define uplug_setPlugLevel U_ICU_ENTRY_POINT_RENAME(uplug_setPlugLevel)
#define uplug_setPlugName U_ICU_ENTRY_POINT_RENAME(uplug_setPlugName)
#define uplug_setPlugNoUnload U_ICU_ENTRY_POINT_RENAME(uplug_setPlugNoUnload)
+#define uprops_addPropertyStarts U_ICU_ENTRY_POINT_RENAME(uprops_addPropertyStarts)
#define uprops_getSource U_ICU_ENTRY_POINT_RENAME(uprops_getSource)
#define upropsvec_addPropertyStarts U_ICU_ENTRY_POINT_RENAME(upropsvec_addPropertyStarts)
+#define uprv_add32_overflow U_ICU_ENTRY_POINT_RENAME(uprv_add32_overflow)
#define uprv_aestrncpy U_ICU_ENTRY_POINT_RENAME(uprv_aestrncpy)
#define uprv_asciiFromEbcdic U_ICU_ENTRY_POINT_RENAME(uprv_asciiFromEbcdic)
#define uprv_asciitolower U_ICU_ENTRY_POINT_RENAME(uprv_asciitolower)
@@ -1224,6 +1268,7 @@
#define uprv_convertToPosix U_ICU_ENTRY_POINT_RENAME(uprv_convertToPosix)
#define uprv_copyAscii U_ICU_ENTRY_POINT_RENAME(uprv_copyAscii)
#define uprv_copyEbcdic U_ICU_ENTRY_POINT_RENAME(uprv_copyEbcdic)
+#define uprv_currencyLeads U_ICU_ENTRY_POINT_RENAME(uprv_currencyLeads)
#define uprv_decContextClearStatus U_ICU_ENTRY_POINT_RENAME(uprv_decContextClearStatus)
#define uprv_decContextDefault U_ICU_ENTRY_POINT_RENAME(uprv_decContextDefault)
#define uprv_decContextGetRounding U_ICU_ENTRY_POINT_RENAME(uprv_decContextGetRounding)
@@ -1317,7 +1362,6 @@
#define uprv_fmod U_ICU_ENTRY_POINT_RENAME(uprv_fmod)
#define uprv_free U_ICU_ENTRY_POINT_RENAME(uprv_free)
#define uprv_getCharNameCharacters U_ICU_ENTRY_POINT_RENAME(uprv_getCharNameCharacters)
-#define uprv_getDefaultCodepage U_ICU_ENTRY_POINT_RENAME(uprv_getDefaultCodepage)
#define uprv_getDefaultLocaleID U_ICU_ENTRY_POINT_RENAME(uprv_getDefaultLocaleID)
#define uprv_getInfinity U_ICU_ENTRY_POINT_RENAME(uprv_getInfinity)
#define uprv_getMaxCharNameLength U_ICU_ENTRY_POINT_RENAME(uprv_getMaxCharNameLength)
@@ -1343,6 +1387,7 @@
#define uprv_maximumPtr U_ICU_ENTRY_POINT_RENAME(uprv_maximumPtr)
#define uprv_min U_ICU_ENTRY_POINT_RENAME(uprv_min)
#define uprv_modf U_ICU_ENTRY_POINT_RENAME(uprv_modf)
+#define uprv_mul32_overflow U_ICU_ENTRY_POINT_RENAME(uprv_mul32_overflow)
#define uprv_parseCurrency U_ICU_ENTRY_POINT_RENAME(uprv_parseCurrency)
#define uprv_pathIsAbsolute U_ICU_ENTRY_POINT_RENAME(uprv_pathIsAbsolute)
#define uprv_pow U_ICU_ENTRY_POINT_RENAME(uprv_pow)
@@ -1741,7 +1786,6 @@
#define utrie2_fromUTrie U_ICU_ENTRY_POINT_RENAME(utrie2_fromUTrie)
#define utrie2_get32 U_ICU_ENTRY_POINT_RENAME(utrie2_get32)
#define utrie2_get32FromLeadSurrogateCodeUnit U_ICU_ENTRY_POINT_RENAME(utrie2_get32FromLeadSurrogateCodeUnit)
-#define utrie2_getVersion U_ICU_ENTRY_POINT_RENAME(utrie2_getVersion)
#define utrie2_internalU8NextIndex U_ICU_ENTRY_POINT_RENAME(utrie2_internalU8NextIndex)
#define utrie2_internalU8PrevIndex U_ICU_ENTRY_POINT_RENAME(utrie2_internalU8PrevIndex)
#define utrie2_isFrozen U_ICU_ENTRY_POINT_RENAME(utrie2_isFrozen)
@@ -1753,7 +1797,6 @@
#define utrie2_set32ForLeadSurrogateCodeUnit U_ICU_ENTRY_POINT_RENAME(utrie2_set32ForLeadSurrogateCodeUnit)
#define utrie2_setRange32 U_ICU_ENTRY_POINT_RENAME(utrie2_setRange32)
#define utrie2_swap U_ICU_ENTRY_POINT_RENAME(utrie2_swap)
-#define utrie2_swapAnyVersion U_ICU_ENTRY_POINT_RENAME(utrie2_swapAnyVersion)
#define utrie_clone U_ICU_ENTRY_POINT_RENAME(utrie_clone)
#define utrie_close U_ICU_ENTRY_POINT_RENAME(utrie_close)
#define utrie_defaultGetFoldingOffset U_ICU_ENTRY_POINT_RENAME(utrie_defaultGetFoldingOffset)
@@ -1765,6 +1808,7 @@
#define utrie_set32 U_ICU_ENTRY_POINT_RENAME(utrie_set32)
#define utrie_setRange32 U_ICU_ENTRY_POINT_RENAME(utrie_setRange32)
#define utrie_swap U_ICU_ENTRY_POINT_RENAME(utrie_swap)
+#define utrie_swapAnyVersion U_ICU_ENTRY_POINT_RENAME(utrie_swapAnyVersion)
#define utrie_unserialize U_ICU_ENTRY_POINT_RENAME(utrie_unserialize)
#define utrie_unserializeDummy U_ICU_ENTRY_POINT_RENAME(utrie_unserializeDummy)
#define vzone_clone U_ICU_ENTRY_POINT_RENAME(vzone_clone)
@@ -1814,6 +1858,7 @@
#define ztrans_setTime U_ICU_ENTRY_POINT_RENAME(ztrans_setTime)
#define ztrans_setTo U_ICU_ENTRY_POINT_RENAME(ztrans_setTo)
-#endif
+#endif /* !(defined(_MSC_VER) && defined(__INTELLISENSE__)) */
+#endif /* U_DISABLE_RENAMING */
+#endif /* URENAME_H */
-#endif
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/uscript.h b/Build/source/libs/icu/icu-src/source/common/unicode/uscript.h
index 0befa1cd422..faf9edf8ae2 100644
--- a/Build/source/libs/icu/icu-src/source/common/unicode/uscript.h
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/uscript.h
@@ -451,6 +451,21 @@ typedef enum UScriptCode {
/** @stable ICU 60 */
USCRIPT_ZANABAZAR_SQUARE = 177,/* Zanb */
+ /** @stable ICU 62 */
+ USCRIPT_DOGRA = 178,/* Dogr */
+ /** @stable ICU 62 */
+ USCRIPT_GUNJALA_GONDI = 179,/* Gong */
+ /** @stable ICU 62 */
+ USCRIPT_MAKASAR = 180,/* Maka */
+ /** @stable ICU 62 */
+ USCRIPT_MEDEFAIDRIN = 181,/* Medf */
+ /** @stable ICU 62 */
+ USCRIPT_HANIFI_ROHINGYA = 182,/* Rohg */
+ /** @stable ICU 62 */
+ USCRIPT_SOGDIAN = 183,/* Sogd */
+ /** @stable ICU 62 */
+ USCRIPT_OLD_SOGDIAN = 184,/* Sogo */
+
#ifndef U_HIDE_DEPRECATED_API
/**
* One more than the highest normal UScriptCode value.
@@ -458,7 +473,7 @@ typedef enum UScriptCode {
*
* @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
*/
- USCRIPT_CODE_LIMIT = 178
+ USCRIPT_CODE_LIMIT = 185
#endif // U_HIDE_DEPRECATED_API
} UScriptCode;
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/uset.h b/Build/source/libs/icu/icu-src/source/common/unicode/uset.h
index 59f46507d54..18482c10e73 100644
--- a/Build/source/libs/icu/icu-src/source/common/unicode/uset.h
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/uset.h
@@ -33,10 +33,14 @@
#include "unicode/uchar.h"
#include "unicode/localpointer.h"
-#ifndef UCNV_H
-struct USet;
+#ifndef USET_DEFINED
+
+#ifndef U_IN_DOXYGEN
+#define USET_DEFINED
+#endif
/**
- * A UnicodeSet. Use the uset_* API to manipulate. Create with
+ * USet is the C API type corresponding to C++ class UnicodeSet.
+ * Use the uset_* API to manipulate. Create with
* uset_open*, and destroy with uset_close.
* @stable ICU 2.4
*/
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/ustring.h b/Build/source/libs/icu/icu-src/source/common/unicode/ustring.h
index f9fc41a1db6..245b766545a 100644
--- a/Build/source/libs/icu/icu-src/source/common/unicode/ustring.h
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/ustring.h
@@ -895,35 +895,32 @@ u_memrchr32(const UChar *s, UChar32 c, int32_t count);
* parameters.
* The string parameter must be a C string literal.
* The length of the string, not including the terminating
- * <code>NUL</code>, must be specified as a constant.
+ * `NUL`, must be specified as a constant.
* The U_STRING_DECL macro should be invoked exactly once for one
* such string variable before it is used.
*
* Usage:
- * <pre>
- * U_STRING_DECL(ustringVar1, "Quick-Fox 2", 11);
- * U_STRING_DECL(ustringVar2, "jumps 5%", 8);
- * static UBool didInit=FALSE;
- *
- * int32_t function() {
- * if(!didInit) {
- * U_STRING_INIT(ustringVar1, "Quick-Fox 2", 11);
- * U_STRING_INIT(ustringVar2, "jumps 5%", 8);
- * didInit=TRUE;
- * }
- * return u_strcmp(ustringVar1, ustringVar2);
- * }
- * </pre>
+ *
+ * U_STRING_DECL(ustringVar1, "Quick-Fox 2", 11);
+ * U_STRING_DECL(ustringVar2, "jumps 5%", 8);
+ * static UBool didInit=FALSE;
+ *
+ * int32_t function() {
+ * if(!didInit) {
+ * U_STRING_INIT(ustringVar1, "Quick-Fox 2", 11);
+ * U_STRING_INIT(ustringVar2, "jumps 5%", 8);
+ * didInit=TRUE;
+ * }
+ * return u_strcmp(ustringVar1, ustringVar2);
+ * }
*
- * Note that the macros will NOT consistently work if their argument is another <code>#define</code>.
- * The following will not work on all platforms, don't use it.
+ * Note that the macros will NOT consistently work if their argument is another #`define`.
+ * The following will not work on all platforms, don't use it.
*
- * <pre>
* #define GLUCK "Mr. Gluck"
* U_STRING_DECL(var, GLUCK, 9)
* U_STRING_INIT(var, GLUCK, 9)
- * </pre>
- *
+ *
* Instead, use the string literal "Mr. Gluck" as the argument to both macro
* calls.
*
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/utf16.h b/Build/source/libs/icu/icu-src/source/common/unicode/utf16.h
index 35fd0986114..aca51b56a79 100644
--- a/Build/source/libs/icu/icu-src/source/common/unicode/utf16.h
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/utf16.h
@@ -213,8 +213,6 @@
} \
}
-#ifndef U_HIDE_DRAFT_API
-
/**
* Get a code point from a string at a random-access offset,
* without changing the offset.
@@ -236,7 +234,7 @@
* @param length string length
* @param c output UChar32 variable
* @see U16_GET_UNSAFE
- * @draft ICU 60
+ * @stable ICU 60
*/
#define U16_GET_OR_FFFD(s, start, i, length, c) { \
(c)=(s)[i]; \
@@ -258,8 +256,6 @@
} \
}
-#endif // U_HIDE_DRAFT_API
-
/* definitions with forward iteration --------------------------------------- */
/**
@@ -320,8 +316,6 @@
} \
}
-#ifndef U_HIDE_DRAFT_API
-
/**
* Get a code point from a string at a code point boundary offset,
* and advance the offset to the next code point boundary.
@@ -341,7 +335,7 @@
* @param length string length
* @param c output UChar32 variable
* @see U16_NEXT_UNSAFE
- * @draft ICU 60
+ * @stable ICU 60
*/
#define U16_NEXT_OR_FFFD(s, i, length, c) { \
(c)=(s)[(i)++]; \
@@ -356,8 +350,6 @@
} \
}
-#endif // U_HIDE_DRAFT_API
-
/**
* Append a code point to a string, overwriting 1 or 2 code units.
* The offset points to the current end of the string contents
@@ -585,8 +577,6 @@
} \
}
-#ifndef U_HIDE_DRAFT_API
-
/**
* Move the string offset from one code point boundary to the previous one
* and get the code point between them.
@@ -605,7 +595,7 @@
* @param i string offset, must be start<i
* @param c output UChar32 variable
* @see U16_PREV_UNSAFE
- * @draft ICU 60
+ * @stable ICU 60
*/
#define U16_PREV_OR_FFFD(s, start, i, c) { \
(c)=(s)[--(i)]; \
@@ -620,8 +610,6 @@
} \
}
-#endif // U_HIDE_DRAFT_API
-
/**
* Move the string offset from one code point boundary to the previous one.
* (Pre-decrementing backward iteration.)
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/utypes.h b/Build/source/libs/icu/icu-src/source/common/unicode/utypes.h
index dd89f39acb0..2baf519f7fb 100644
--- a/Build/source/libs/icu/icu-src/source/common/unicode/utypes.h
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/utypes.h
@@ -290,6 +290,11 @@ typedef double UDate;
* @stable ICU 3.4
*/
+#ifdef U_IN_DOXYGEN
+// This definition is required when generating the API docs.
+#define U_COMBINED_IMPLEMENTATION 1
+#endif
+
#if defined(U_COMBINED_IMPLEMENTATION)
#define U_DATA_API U_EXPORT
#define U_COMMON_API U_EXPORT
@@ -542,12 +547,15 @@ typedef enum UErrorCode {
#ifndef U_HIDE_DRAFT_API
U_NUMBER_ARG_OUTOFBOUNDS_ERROR, /**< The argument to a NumberFormatter helper method was out of bounds; the bounds are usually 0 to 999. @draft ICU 61 */
#endif // U_HIDE_DRAFT_API
+#ifndef U_HIDE_DRAFT_API
+ U_NUMBER_SKELETON_SYNTAX_ERROR, /**< The number skeleton passed to C++ NumberFormatter or C UNumberFormatter was invalid or contained a syntax error. @draft ICU 62 */
+#endif // U_HIDE_DRAFT_API
#ifndef U_HIDE_DEPRECATED_API
/**
* One more than the highest normal formatting API error code.
* @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
*/
- U_FMT_PARSE_ERROR_LIMIT = 0x10113,
+ U_FMT_PARSE_ERROR_LIMIT = 0x10114,
#endif // U_HIDE_DEPRECATED_API
/*
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/uvernum.h b/Build/source/libs/icu/icu-src/source/common/unicode/uvernum.h
index 0427bcb03db..83d0b4ecd1c 100644
--- a/Build/source/libs/icu/icu-src/source/common/unicode/uvernum.h
+++ b/Build/source/libs/icu/icu-src/source/common/unicode/uvernum.h
@@ -34,9 +34,11 @@
* by running the UNIX makefile target 'update-windows-makefiles' in icu/source.
*
*
+ * source/common/common_uwp.vcxproj
* source/common/common.vcxproj - update 'Output file name' on the link tab so
* that it contains the new major/minor combination
* source/i18n/i18n.vcxproj - same as for the common.vcxproj
+ * source/i18n/i18n_uwp.vcxproj - same as for the common_uwp.vcxproj
* source/layoutex/layoutex.vcproj - same
* source/stubdata/stubdata.vcproj - same as for the common.vcxproj
* source/io/io.vcproj - same as for the common.vcxproj
@@ -58,7 +60,7 @@
* This value will change in the subsequent releases of ICU
* @stable ICU 2.4
*/
-#define U_ICU_VERSION_MAJOR_NUM 61
+#define U_ICU_VERSION_MAJOR_NUM 63
/** The current ICU minor version as an integer.
* This value will change in the subsequent releases of ICU
@@ -84,7 +86,7 @@
* This value will change in the subsequent releases of ICU
* @stable ICU 2.6
*/
-#define U_ICU_VERSION_SUFFIX _61
+#define U_ICU_VERSION_SUFFIX _63
/**
* \def U_DEF2_ICU_ENTRY_POINT_RENAME
@@ -119,7 +121,7 @@
* This value will change in the subsequent releases of ICU
* @stable ICU 2.4
*/
-#define U_ICU_VERSION "61.1"
+#define U_ICU_VERSION "63.1"
/**
* The current ICU library major version number as a string, for library name suffixes.
@@ -132,13 +134,13 @@
*
* @stable ICU 2.6
*/
-#define U_ICU_VERSION_SHORT "61"
+#define U_ICU_VERSION_SHORT "63"
#ifndef U_HIDE_INTERNAL_API
/** Data version in ICU4C.
* @internal ICU 4.4 Internal Use Only
**/
-#define U_ICU_DATA_VERSION "61.1"
+#define U_ICU_DATA_VERSION "63.1"
#endif /* U_HIDE_INTERNAL_API */
/*===========================================================================
diff --git a/Build/source/libs/icu/icu-src/source/common/unifiedcache.cpp b/Build/source/libs/icu/icu-src/source/common/unifiedcache.cpp
index f0f660ed06b..d33d8d2c01c 100644
--- a/Build/source/libs/icu/icu-src/source/common/unifiedcache.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/unifiedcache.cpp
@@ -251,7 +251,7 @@ UBool UnifiedCache::_flush(UBool all) const {
if (all || _isEvictable(element)) {
const SharedObject *sharedObject =
(const SharedObject *) element->value.pointer;
- U_ASSERT(sharedObject->cachePtr = this);
+ U_ASSERT(sharedObject->cachePtr == this);
uhash_removeElement(fHashtable, element);
removeSoftRef(sharedObject); // Deletes the sharedObject when softRefCount goes to zero.
result = TRUE;
diff --git a/Build/source/libs/icu/icu-src/source/common/uniset.cpp b/Build/source/libs/icu/icu-src/source/common/uniset.cpp
index fe5a157aa6b..e8378e0a223 100644
--- a/Build/source/libs/icu/icu-src/source/common/uniset.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/uniset.cpp
@@ -152,6 +152,7 @@ UnicodeSet::UnicodeSet() :
UErrorCode status = U_ZERO_ERROR;
allocateStrings(status);
if (U_FAILURE(status)) {
+ setToBogus(); // If memory allocation failed, set to bogus state.
return;
}
list = (UChar32*) uprv_malloc(sizeof(UChar32) * capacity);
@@ -179,6 +180,7 @@ UnicodeSet::UnicodeSet(UChar32 start, UChar32 end) :
UErrorCode status = U_ZERO_ERROR;
allocateStrings(status);
if (U_FAILURE(status)) {
+ setToBogus(); // If memory allocation failed, set to bogus state.
return;
}
list = (UChar32*) uprv_malloc(sizeof(UChar32) * capacity);
@@ -206,6 +208,7 @@ UnicodeSet::UnicodeSet(const UnicodeSet& o) :
UErrorCode status = U_ZERO_ERROR;
allocateStrings(status);
if (U_FAILURE(status)) {
+ setToBogus(); // If memory allocation failed, set to bogus state.
return;
}
list = (UChar32*) uprv_malloc(sizeof(UChar32) * capacity);
@@ -230,6 +233,7 @@ UnicodeSet::UnicodeSet(const UnicodeSet& o, UBool /* asThawed */) :
UErrorCode status = U_ZERO_ERROR;
allocateStrings(status);
if (U_FAILURE(status)) {
+ setToBogus(); // If memory allocation failed, set to bogus state.
return;
}
list = (UChar32*) uprv_malloc(sizeof(UChar32) * capacity);
@@ -272,6 +276,10 @@ UnicodeSet::~UnicodeSet() {
* Assigns this object to be a copy of another.
*/
UnicodeSet& UnicodeSet::operator=(const UnicodeSet& o) {
+ return copyFrom(o, FALSE);
+}
+
+UnicodeSet& UnicodeSet::copyFrom(const UnicodeSet& o, UBool asThawed) {
if (this == &o) {
return *this;
}
@@ -285,11 +293,12 @@ UnicodeSet& UnicodeSet::operator=(const UnicodeSet& o) {
UErrorCode ec = U_ZERO_ERROR;
ensureCapacity(o.len, ec);
if (U_FAILURE(ec)) {
- return *this; // There is no way to report this error :-(
+ // ensureCapacity will mark the UnicodeSet as Bogus if OOM failure happens.
+ return *this;
}
len = o.len;
uprv_memcpy(list, o.list, (size_t)len*sizeof(UChar32));
- if (o.bmpSet == NULL) {
+ if (o.bmpSet == NULL || asThawed) {
bmpSet = NULL;
} else {
bmpSet = new BMPSet(*o.bmpSet, list, len);
@@ -304,7 +313,7 @@ UnicodeSet& UnicodeSet::operator=(const UnicodeSet& o) {
setToBogus();
return *this;
}
- if (o.stringSpan == NULL) {
+ if (o.stringSpan == NULL || asThawed) {
stringSpan = NULL;
} else {
stringSpan = new UnicodeSetStringSpan(*o.stringSpan, *strings);
@@ -359,12 +368,12 @@ UBool UnicodeSet::operator==(const UnicodeSet& o) const {
* @see Object#hashCode()
*/
int32_t UnicodeSet::hashCode(void) const {
- int32_t result = len;
+ uint32_t result = static_cast<uint32_t>(len);
for (int32_t i = 0; i < len; ++i) {
- result *= 1000003;
+ result *= 1000003u;
result += list[i];
}
- return result;
+ return static_cast<int32_t>(result);
}
//----------------------------------------------------------------
@@ -912,7 +921,8 @@ UnicodeSet& UnicodeSet::add(UChar32 c) {
UErrorCode status = U_ZERO_ERROR;
ensureCapacity(len+1, status);
if (U_FAILURE(status)) {
- return *this; // There is no way to report this error :-(
+ // ensureCapacity will mark the object as Bogus if OOM failure happens.
+ return *this;
}
list[len++] = UNICODESET_HIGH;
}
@@ -957,7 +967,8 @@ UnicodeSet& UnicodeSet::add(UChar32 c) {
UErrorCode status = U_ZERO_ERROR;
ensureCapacity(len+2, status);
if (U_FAILURE(status)) {
- return *this; // There is no way to report this error :-(
+ // ensureCapacity will mark the object as Bogus if OOM failure happens.
+ return *this;
}
//for (int32_t k=len-1; k>=i; --k) {
@@ -1654,12 +1665,13 @@ UBool UnicodeSet::allocateStrings(UErrorCode &status) {
}
void UnicodeSet::ensureCapacity(int32_t newLen, UErrorCode& ec) {
- if (newLen <= capacity)
+ if (newLen <= capacity) {
return;
+ }
UChar32* temp = (UChar32*) uprv_realloc(list, sizeof(UChar32) * (newLen + GROW_EXTRA));
if (temp == NULL) {
ec = U_MEMORY_ALLOCATION_ERROR;
- setToBogus();
+ setToBogus(); // set the object to bogus state if an OOM failure occurred.
return;
}
list = temp;
diff --git a/Build/source/libs/icu/icu-src/source/common/uniset_props.cpp b/Build/source/libs/icu/icu-src/source/common/uniset_props.cpp
index 6ae6e71289b..6cfd80a705b 100644
--- a/Build/source/libs/icu/icu-src/source/common/uniset_props.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/uniset_props.cpp
@@ -36,8 +36,6 @@
#include "uprops.h"
#include "propname.h"
#include "normalizer2impl.h"
-#include "ucase.h"
-#include "ubidi_props.h"
#include "uinvchar.h"
#include "uprops.h"
#include "charstr.h"
@@ -98,47 +96,13 @@ static const char ASSIGNED[] = "Assigned"; // [:^Cn:]
U_CDECL_BEGIN
static UBool U_CALLCONV uset_cleanup();
-struct Inclusion {
- UnicodeSet *fSet;
- UInitOnce fInitOnce;
-};
-static Inclusion gInclusions[UPROPS_SRC_COUNT]; // cached getInclusions()
-
static UnicodeSet *uni32Singleton;
static icu::UInitOnce uni32InitOnce = U_INITONCE_INITIALIZER;
-//----------------------------------------------------------------
-// Inclusions list
-//----------------------------------------------------------------
-
-// USetAdder implementation
-// Does not use uset.h to reduce code dependencies
-static void U_CALLCONV
-_set_add(USet *set, UChar32 c) {
- ((UnicodeSet *)set)->add(c);
-}
-
-static void U_CALLCONV
-_set_addRange(USet *set, UChar32 start, UChar32 end) {
- ((UnicodeSet *)set)->add(start, end);
-}
-
-static void U_CALLCONV
-_set_addString(USet *set, const UChar *str, int32_t length) {
- ((UnicodeSet *)set)->add(UnicodeString((UBool)(length<0), str, length));
-}
-
/**
* Cleanup function for UnicodeSet
*/
static UBool U_CALLCONV uset_cleanup(void) {
- for(int32_t i = UPROPS_SRC_NONE; i < UPROPS_SRC_COUNT; ++i) {
- Inclusion &in = gInclusions[i];
- delete in.fSet;
- in.fSet = NULL;
- in.fInitOnce.reset();
- }
-
delete uni32Singleton;
uni32Singleton = NULL;
uni32InitOnce.reset();
@@ -149,114 +113,6 @@ U_CDECL_END
U_NAMESPACE_BEGIN
-/*
-Reduce excessive reallocation, and make it easier to detect initialization problems.
-Usually you don't see smaller sets than this for Unicode 5.0.
-*/
-#define DEFAULT_INCLUSION_CAPACITY 3072
-
-void U_CALLCONV UnicodeSet_initInclusion(int32_t src, UErrorCode &status) {
- // This function is invoked only via umtx_initOnce().
- // This function is a friend of class UnicodeSet.
-
- U_ASSERT(src >=0 && src<UPROPS_SRC_COUNT);
- UnicodeSet * &incl = gInclusions[src].fSet;
- U_ASSERT(incl == NULL);
-
- incl = new UnicodeSet();
- if (incl == NULL) {
- status = U_MEMORY_ALLOCATION_ERROR;
- return;
- }
- USetAdder sa = {
- (USet *)incl,
- _set_add,
- _set_addRange,
- _set_addString,
- NULL, // don't need remove()
- NULL // don't need removeRange()
- };
-
- incl->ensureCapacity(DEFAULT_INCLUSION_CAPACITY, status);
- switch(src) {
- case UPROPS_SRC_CHAR:
- uchar_addPropertyStarts(&sa, &status);
- break;
- case UPROPS_SRC_PROPSVEC:
- upropsvec_addPropertyStarts(&sa, &status);
- break;
- case UPROPS_SRC_CHAR_AND_PROPSVEC:
- uchar_addPropertyStarts(&sa, &status);
- upropsvec_addPropertyStarts(&sa, &status);
- break;
-#if !UCONFIG_NO_NORMALIZATION
- case UPROPS_SRC_CASE_AND_NORM: {
- const Normalizer2Impl *impl=Normalizer2Factory::getNFCImpl(status);
- if(U_SUCCESS(status)) {
- impl->addPropertyStarts(&sa, status);
- }
- ucase_addPropertyStarts(&sa, &status);
- break;
- }
- case UPROPS_SRC_NFC: {
- const Normalizer2Impl *impl=Normalizer2Factory::getNFCImpl(status);
- if(U_SUCCESS(status)) {
- impl->addPropertyStarts(&sa, status);
- }
- break;
- }
- case UPROPS_SRC_NFKC: {
- const Normalizer2Impl *impl=Normalizer2Factory::getNFKCImpl(status);
- if(U_SUCCESS(status)) {
- impl->addPropertyStarts(&sa, status);
- }
- break;
- }
- case UPROPS_SRC_NFKC_CF: {
- const Normalizer2Impl *impl=Normalizer2Factory::getNFKC_CFImpl(status);
- if(U_SUCCESS(status)) {
- impl->addPropertyStarts(&sa, status);
- }
- break;
- }
- case UPROPS_SRC_NFC_CANON_ITER: {
- const Normalizer2Impl *impl=Normalizer2Factory::getNFCImpl(status);
- if(U_SUCCESS(status)) {
- impl->addCanonIterPropertyStarts(&sa, status);
- }
- break;
- }
-#endif
- case UPROPS_SRC_CASE:
- ucase_addPropertyStarts(&sa, &status);
- break;
- case UPROPS_SRC_BIDI:
- ubidi_addPropertyStarts(&sa, &status);
- break;
- default:
- status = U_INTERNAL_PROGRAM_ERROR;
- break;
- }
-
- if (U_FAILURE(status)) {
- delete incl;
- incl = NULL;
- return;
- }
- // Compact for caching
- incl->compact();
- ucln_common_registerCleanup(UCLN_COMMON_USET, uset_cleanup);
-}
-
-
-
-const UnicodeSet* UnicodeSet::getInclusions(int32_t src, UErrorCode &status) {
- U_ASSERT(src >=0 && src<UPROPS_SRC_COUNT);
- Inclusion &i = gInclusions[src];
- umtx_initOnce(i.fInitOnce, &UnicodeSet_initInclusion, src, status);
- return i.fSet;
-}
-
namespace {
// Cache some sets for other services -------------------------------------- ***
@@ -857,11 +713,6 @@ static UBool numericValueFilter(UChar32 ch, void* context) {
return u_getNumericValue(ch) == *(double*)context;
}
-static UBool generalCategoryMaskFilter(UChar32 ch, void* context) {
- int32_t value = *(int32_t*)context;
- return (U_GET_GC_MASK((UChar32) ch) & value) != 0;
-}
-
static UBool versionFilter(UChar32 ch, void* context) {
static const UVersionInfo none = { 0, 0, 0, 0 };
UVersionInfo v;
@@ -870,16 +721,6 @@ static UBool versionFilter(UChar32 ch, void* context) {
return uprv_memcmp(&v, &none, sizeof(v)) > 0 && uprv_memcmp(&v, version, sizeof(v)) <= 0;
}
-typedef struct {
- UProperty prop;
- int32_t value;
-} IntPropertyContext;
-
-static UBool intPropertyFilter(UChar32 ch, void* context) {
- IntPropertyContext* c = (IntPropertyContext*)context;
- return u_getIntPropertyValue((UChar32) ch, c->prop) == c->value;
-}
-
static UBool scriptExtensionsFilter(UChar32 ch, void* context) {
return uscript_hasScript(ch, *(UScriptCode*)context);
}
@@ -891,7 +732,7 @@ static UBool scriptExtensionsFilter(UChar32 ch, void* context) {
*/
void UnicodeSet::applyFilter(UnicodeSet::Filter filter,
void* context,
- int32_t src,
+ const UnicodeSet* inclusions,
UErrorCode &status) {
if (U_FAILURE(status)) return;
@@ -902,12 +743,8 @@ void UnicodeSet::applyFilter(UnicodeSet::Filter filter,
// To improve performance, use an inclusions set which
// encodes information about character ranges that are known
// to have identical properties.
- // getInclusions(src) contains exactly the first characters of
- // same-value ranges for the given properties "source".
- const UnicodeSet* inclusions = getInclusions(src, status);
- if (U_FAILURE(status)) {
- return;
- }
+ // inclusions contains the first characters of
+ // same-value ranges for the given property.
clear();
@@ -944,6 +781,43 @@ void UnicodeSet::applyFilter(UnicodeSet::Filter filter,
namespace {
+/** Maps map values to 1 if the mask contains their value'th bit, all others to 0. */
+uint32_t U_CALLCONV generalCategoryMaskFilter(const void *context, uint32_t value) {
+ uint32_t mask = *(const uint32_t *)context;
+ value = U_MASK(value) & mask;
+ if (value != 0) { value = 1; }
+ return value;
+}
+
+/** Maps one map value to 1, all others to 0. */
+uint32_t U_CALLCONV intValueFilter(const void *context, uint32_t value) {
+ uint32_t v = *(const uint32_t *)context;
+ return value == v ? 1 : 0;
+}
+
+} // namespace
+
+void UnicodeSet::applyIntPropertyValue(const UCPMap *map,
+ UCPMapValueFilter *filter, const void *context,
+ UErrorCode &errorCode) {
+ if (U_FAILURE(errorCode)) { return; }
+ clear();
+ UChar32 start = 0, end;
+ uint32_t value;
+ while ((end = ucpmap_getRange(map, start, UCPMAP_RANGE_NORMAL, 0,
+ filter, context, &value)) >= 0) {
+ if (value != 0) {
+ add(start, end);
+ }
+ start = end + 1;
+ }
+ if (isBogus()) {
+ errorCode = U_MEMORY_ALLOCATION_ERROR;
+ }
+}
+
+namespace {
+
static UBool mungeCharName(char* dst, const char* src, int32_t dstCapacity) {
/* Note: we use ' ' in compiler code page */
int32_t j = 0;
@@ -971,16 +845,35 @@ static UBool mungeCharName(char* dst, const char* src, int32_t dstCapacity) {
UnicodeSet&
UnicodeSet::applyIntPropertyValue(UProperty prop, int32_t value, UErrorCode& ec) {
- if (U_FAILURE(ec) || isFrozen()) return *this;
-
+ if (U_FAILURE(ec)) { return *this; }
+ // All of the following check isFrozen() before modifying this set.
if (prop == UCHAR_GENERAL_CATEGORY_MASK) {
- applyFilter(generalCategoryMaskFilter, &value, UPROPS_SRC_CHAR, ec);
+ const UCPMap *map = u_getIntPropertyMap(UCHAR_GENERAL_CATEGORY, &ec);
+ applyIntPropertyValue(map, generalCategoryMaskFilter, &value, ec);
} else if (prop == UCHAR_SCRIPT_EXTENSIONS) {
+ const UnicodeSet* inclusions = CharacterProperties::getInclusionsForProperty(prop, ec);
UScriptCode script = (UScriptCode)value;
- applyFilter(scriptExtensionsFilter, &script, UPROPS_SRC_PROPSVEC, ec);
+ applyFilter(scriptExtensionsFilter, &script, inclusions, ec);
+ } else if (0 <= prop && prop < UCHAR_BINARY_LIMIT) {
+ if (value == 0 || value == 1) {
+ const USet *set = u_getBinaryPropertySet(prop, &ec);
+ if (U_FAILURE(ec)) { return *this; }
+ copyFrom(*UnicodeSet::fromUSet(set), TRUE);
+ if (value == 0) {
+ complement();
+ }
+ } else {
+ clear();
+ }
+ } else if (UCHAR_INT_START <= prop && prop < UCHAR_INT_LIMIT) {
+ const UCPMap *map = u_getIntPropertyMap(prop, &ec);
+ applyIntPropertyValue(map, intValueFilter, &value, ec);
} else {
- IntPropertyContext c = {prop, value};
- applyFilter(intPropertyFilter, &c, uprops_getSource(prop), ec);
+ // This code used to always call getInclusions(property source)
+ // which sets an error for an unsupported property.
+ ec = U_ILLEGAL_ARGUMENT_ERROR;
+ // Otherwise we would just clear() this set because
+ // getIntPropertyValue(c, prop) returns 0 for all code points.
}
return *this;
}
@@ -1030,13 +923,13 @@ UnicodeSet::applyPropertyAlias(const UnicodeString& prop,
p == UCHAR_TRAIL_CANONICAL_COMBINING_CLASS ||
p == UCHAR_LEAD_CANONICAL_COMBINING_CLASS) {
char* end;
- double value = uprv_strtod(vname.data(), &end);
+ double val = uprv_strtod(vname.data(), &end);
// Anything between 0 and 255 is valid even if unused.
// Cast double->int only after range check.
// We catch NaN here because comparing it with both 0 and 255 will be false
// (as are all comparisons with NaN).
- if (*end != 0 || !(0 <= value && value <= 255) ||
- (v = (int32_t)value) != value) {
+ if (*end != 0 || !(0 <= val && val <= 255) ||
+ (v = (int32_t)val) != val) {
// non-integral value or outside 0..255, or trailing junk
FAIL(ec);
}
@@ -1052,11 +945,12 @@ UnicodeSet::applyPropertyAlias(const UnicodeString& prop,
case UCHAR_NUMERIC_VALUE:
{
char* end;
- double value = uprv_strtod(vname.data(), &end);
+ double val = uprv_strtod(vname.data(), &end);
if (*end != 0) {
FAIL(ec);
}
- applyFilter(numericValueFilter, &value, UPROPS_SRC_CHAR, ec);
+ applyFilter(numericValueFilter, &val,
+ CharacterProperties::getInclusionsForProperty(p, ec), ec);
return *this;
}
case UCHAR_NAME:
@@ -1085,7 +979,8 @@ UnicodeSet::applyPropertyAlias(const UnicodeString& prop,
if (!mungeCharName(buf, vname.data(), sizeof(buf))) FAIL(ec);
UVersionInfo version;
u_versionFromString(version, buf);
- applyFilter(versionFilter, &version, UPROPS_SRC_PROPSVEC, ec);
+ applyFilter(versionFilter, &version,
+ CharacterProperties::getInclusionsForProperty(p, ec), ec);
return *this;
}
case UCHAR_SCRIPT_EXTENSIONS:
diff --git a/Build/source/libs/icu/icu-src/source/common/unistr.cpp b/Build/source/libs/icu/icu-src/source/common/unistr.cpp
index 5d7cab2e155..c8b6c0a3a46 100644
--- a/Build/source/libs/icu/icu-src/source/common/unistr.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/unistr.cpp
@@ -1447,10 +1447,15 @@ UnicodeString::doReplace(int32_t start,
}
if(srcChars == 0) {
- srcStart = srcLength = 0;
- } else if(srcLength < 0) {
- // get the srcLength if necessary
- srcLength = u_strlen(srcChars + srcStart);
+ srcLength = 0;
+ } else {
+ // Perform all remaining operations relative to srcChars + srcStart.
+ // From this point forward, do not use srcStart.
+ srcChars += srcStart;
+ if (srcLength < 0) {
+ // get the srcLength if necessary
+ srcLength = u_strlen(srcChars);
+ }
}
// pin the indices to legal values
@@ -1465,17 +1470,28 @@ UnicodeString::doReplace(int32_t start,
}
newLength += srcLength;
+ // Check for insertion into ourself
+ const UChar *oldArray = getArrayStart();
+ if (isBufferWritable() &&
+ oldArray < srcChars + srcLength &&
+ srcChars < oldArray + oldLength) {
+ // Copy into a new UnicodeString and start over
+ UnicodeString copy(srcChars, srcLength);
+ if (copy.isBogus()) {
+ setToBogus();
+ return *this;
+ }
+ return doReplace(start, length, copy.getArrayStart(), 0, srcLength);
+ }
+
// cloneArrayIfNeeded(doCopyArray=FALSE) may change fArray but will not copy the current contents;
// therefore we need to keep the current fArray
UChar oldStackBuffer[US_STACKBUF_SIZE];
- UChar *oldArray;
if((fUnion.fFields.fLengthAndFlags&kUsingStackBuffer) && (newLength > US_STACKBUF_SIZE)) {
// copy the stack buffer contents because it will be overwritten with
// fUnion.fFields values
- u_memcpy(oldStackBuffer, fUnion.fStackFields.fBuffer, oldLength);
+ u_memcpy(oldStackBuffer, oldArray, oldLength);
oldArray = oldStackBuffer;
- } else {
- oldArray = getArrayStart();
}
// clone our array and allocate a bigger array if needed
@@ -1503,7 +1519,7 @@ UnicodeString::doReplace(int32_t start,
}
// now fill in the hole with the new string
- us_arrayCopy(srcChars, srcStart, newArray, start, srcLength);
+ us_arrayCopy(srcChars, 0, newArray, start, srcLength);
setLength(newLength);
@@ -1536,15 +1552,34 @@ UnicodeString::doAppend(const UChar *srcChars, int32_t srcStart, int32_t srcLeng
return *this;
}
+ // Perform all remaining operations relative to srcChars + srcStart.
+ // From this point forward, do not use srcStart.
+ srcChars += srcStart;
+
if(srcLength < 0) {
// get the srcLength if necessary
- if((srcLength = u_strlen(srcChars + srcStart)) == 0) {
+ if((srcLength = u_strlen(srcChars)) == 0) {
return *this;
}
}
int32_t oldLength = length();
int32_t newLength = oldLength + srcLength;
+
+ // Check for append onto ourself
+ const UChar* oldArray = getArrayStart();
+ if (isBufferWritable() &&
+ oldArray < srcChars + srcLength &&
+ srcChars < oldArray + oldLength) {
+ // Copy into a new UnicodeString and start over
+ UnicodeString copy(srcChars, srcLength);
+ if (copy.isBogus()) {
+ setToBogus();
+ return *this;
+ }
+ return doAppend(copy.getArrayStart(), 0, srcLength);
+ }
+
// optimize append() onto a large-enough, owned string
if((newLength <= getCapacity() && isBufferWritable()) ||
cloneArrayIfNeeded(newLength, getGrowCapacity(newLength))) {
@@ -1556,8 +1591,8 @@ UnicodeString::doAppend(const UChar *srcChars, int32_t srcStart, int32_t srcLeng
// or
// str.appendString(buffer, length)
// or similar.
- if(srcChars + srcStart != newArray + oldLength) {
- us_arrayCopy(srcChars, srcStart, newArray, oldLength, srcLength);
+ if(srcChars != newArray + oldLength) {
+ us_arrayCopy(srcChars, 0, newArray, oldLength, srcLength);
}
setLength(newLength);
}
diff --git a/Build/source/libs/icu/icu-src/source/common/uprops.cpp b/Build/source/libs/icu/icu-src/source/common/uprops.cpp
index b76896db1b7..2421c15d2bd 100644
--- a/Build/source/libs/icu/icu-src/source/common/uprops.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/uprops.cpp
@@ -25,6 +25,7 @@
#include "unicode/utypes.h"
#include "unicode/uchar.h"
+#include "unicode/ucptrie.h"
#include "unicode/unorm2.h"
#include "unicode/uscript.h"
#include "unicode/ustring.h"
@@ -36,6 +37,10 @@
#include "ucase.h"
#include "ustr_imp.h"
+// ulayout_props_data.h is machine-generated by genprops
+#define INCLUDED_FROM_UPROPS_CPP
+#include "ulayout_props_data.h"
+
U_NAMESPACE_USE
/* general properties API functions ----------------------------------------- */
@@ -56,7 +61,7 @@ static UBool defaultContains(const BinaryProperty &prop, UChar32 c, UProperty /*
}
static UBool caseBinaryPropertyContains(const BinaryProperty &/*prop*/, UChar32 c, UProperty which) {
- return ucase_hasBinaryProperty(c, which);
+ return static_cast<UBool>(ucase_hasBinaryProperty(c, which));
}
static UBool isBidiControl(const BinaryProperty &/*prop*/, UChar32 c, UProperty /*which*/) {
@@ -282,6 +287,7 @@ static const BinaryProperty binProps[UCHAR_BINARY_LIMIT]={
{ 2, U_MASK(UPROPS_2_EMOJI_COMPONENT), defaultContains },
{ 2, 0, isRegionalIndicator },
{ 1, U_MASK(UPROPS_PREPENDED_CONCATENATION_MARK), defaultContains },
+ { 2, U_MASK(UPROPS_2_EXTENDED_PICTOGRAPHIC), defaultContains },
};
U_CAPI UBool U_EXPORT2
@@ -427,6 +433,18 @@ static int32_t getTrailCombiningClass(const IntProperty &/*prop*/, UChar32 c, UP
}
#endif
+static int32_t getInPC(const IntProperty &, UChar32 c, UProperty) {
+ return ucptrie_get(&inpc_trie, c);
+}
+
+static int32_t getInSC(const IntProperty &, UChar32 c, UProperty) {
+ return ucptrie_get(&insc_trie, c);
+}
+
+static int32_t getVo(const IntProperty &, UChar32 c, UProperty) {
+ return ucptrie_get(&vo_trie, c);
+}
+
static const IntProperty intProps[UCHAR_INT_LIMIT-UCHAR_INT_START]={
/*
* column, mask and shift values for int-value properties from u_getUnicodeProperties().
@@ -462,6 +480,9 @@ static const IntProperty intProps[UCHAR_INT_LIMIT-UCHAR_INT_START]={
{ 2, UPROPS_SB_MASK, UPROPS_SB_SHIFT, defaultGetValue, defaultGetMaxValue },
{ 2, UPROPS_WB_MASK, UPROPS_WB_SHIFT, defaultGetValue, defaultGetMaxValue },
{ UPROPS_SRC_BIDI, 0, 0, getBiDiPairedBracketType, biDiGetMaxValue },
+ { UPROPS_SRC_INPC, 0, maxInPCValue, getInPC, getMaxValueFromShift },
+ { UPROPS_SRC_INSC, 0, maxInSCValue, getInSC, getMaxValueFromShift },
+ { UPROPS_SRC_VO, 0, maxVoValue, getVo, getMaxValueFromShift },
};
U_CAPI int32_t U_EXPORT2
@@ -563,6 +584,34 @@ uprops_getSource(UProperty which) {
}
}
+U_CFUNC void U_EXPORT2
+uprops_addPropertyStarts(UPropertySource src, const USetAdder *sa, UErrorCode *pErrorCode) {
+ if (U_FAILURE(*pErrorCode)) { return; }
+ const UCPTrie *trie;
+ switch (src) {
+ case UPROPS_SRC_INPC:
+ trie = &inpc_trie;
+ break;
+ case UPROPS_SRC_INSC:
+ trie = &insc_trie;
+ break;
+ case UPROPS_SRC_VO:
+ trie = &vo_trie;
+ break;
+ default:
+ *pErrorCode = U_ILLEGAL_ARGUMENT_ERROR;
+ return;
+ }
+
+ // Add the start code point of each same-value range of the trie.
+ UChar32 start = 0, end;
+ while ((end = ucptrie_getRange(trie, start, UCPMAP_RANGE_NORMAL, 0,
+ nullptr, nullptr, nullptr)) >= 0) {
+ sa->add(sa->set, start);
+ start = end + 1;
+ }
+}
+
#if !UCONFIG_NO_NORMALIZATION
U_CAPI int32_t U_EXPORT2
diff --git a/Build/source/libs/icu/icu-src/source/common/uprops.h b/Build/source/libs/icu/icu-src/source/common/uprops.h
index 6f67756cd91..1a8e4e84f74 100644
--- a/Build/source/libs/icu/icu-src/source/common/uprops.h
+++ b/Build/source/libs/icu/icu-src/source/common/uprops.h
@@ -196,8 +196,7 @@ enum {
/*
* Properties in vector word 2
* Bits
- * 31..27 http://www.unicode.org/reports/tr51/#Emoji_Properties
- * 26 reserved
+ * 31..26 http://www.unicode.org/reports/tr51/#Emoji_Properties
* 25..20 Line Break
* 19..15 Sentence Break
* 14..10 Word Break
@@ -205,7 +204,8 @@ enum {
* 4.. 0 Decomposition Type
*/
enum {
- UPROPS_2_EMOJI_COMPONENT=27,
+ UPROPS_2_EXTENDED_PICTOGRAPHIC=26,
+ UPROPS_2_EMOJI_COMPONENT,
UPROPS_2_EMOJI,
UPROPS_2_EMOJI_PRESENTATION,
UPROPS_2_EMOJI_MODIFIER,
@@ -397,6 +397,10 @@ enum UPropertySource {
UPROPS_SRC_NFKC_CF,
/** From normalizer2impl.cpp/nfc.nrm canonical iterator data */
UPROPS_SRC_NFC_CANON_ITER,
+ // Text layout properties.
+ UPROPS_SRC_INPC,
+ UPROPS_SRC_INSC,
+ UPROPS_SRC_VO,
/** One more than the highest UPropertySource (UPROPS_SRC_) constant. */
UPROPS_SRC_COUNT
};
@@ -425,6 +429,9 @@ uchar_addPropertyStarts(const USetAdder *sa, UErrorCode *pErrorCode);
U_CFUNC void U_EXPORT2
upropsvec_addPropertyStarts(const USetAdder *sa, UErrorCode *pErrorCode);
+U_CFUNC void U_EXPORT2
+uprops_addPropertyStarts(UPropertySource src, const USetAdder *sa, UErrorCode *pErrorCode);
+
/**
* Return a set of characters for property enumeration.
* For each two consecutive characters (start, limit) in the set,
@@ -452,6 +459,13 @@ U_NAMESPACE_BEGIN
class UnicodeSet;
+class CharacterProperties {
+public:
+ CharacterProperties() = delete;
+ static void U_CALLCONV initInclusion(UPropertySource src, UErrorCode &errorCode);
+ static const UnicodeSet *getInclusionsForProperty(UProperty prop, UErrorCode &errorCode);
+};
+
// implemented in uniset_props.cpp
U_CFUNC UnicodeSet *
uniset_getUnicode32Instance(UErrorCode &errorCode);
diff --git a/Build/source/libs/icu/icu-src/source/common/uresbund.cpp b/Build/source/libs/icu/icu-src/source/common/uresbund.cpp
index c51f7fdb64c..656eeb7b442 100644
--- a/Build/source/libs/icu/icu-src/source/common/uresbund.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/uresbund.cpp
@@ -367,7 +367,12 @@ static UResourceDataEntry *init_entry(const char *localeID, const char *path, UE
/* this is the actual loading */
res_load(&(r->fData), r->fPath, r->fName, status);
- if (U_FAILURE(*status)) {
+ if (U_FAILURE(*status)) {
+ /* if we failed to load due to an out-of-memory error, exit early. */
+ if (*status == U_MEMORY_ALLOCATION_ERROR) {
+ uprv_free(r);
+ return NULL;
+ }
/* we have no such entry in dll, so it will always use fallback */
*status = U_USING_FALLBACK_WARNING;
r->fBogus = U_USING_FALLBACK_WARNING;
@@ -537,6 +542,11 @@ loadParentsExceptRoot(UResourceDataEntry *&t1,
UErrorCode usrStatus = U_ZERO_ERROR;
if (usingUSRData) { // This code inserts user override data into the inheritance chain.
u2 = init_entry(name, usrDataPath, &usrStatus);
+ // If we failed due to out-of-memory, report that to the caller and exit early.
+ if (usrStatus == U_MEMORY_ALLOCATION_ERROR) {
+ *status = usrStatus;
+ return FALSE;
+ }
}
if (usingUSRData && U_SUCCESS(usrStatus) && u2->fBogus == U_ZERO_ERROR) {
@@ -642,21 +652,32 @@ static UResourceDataEntry *entryOpen(const char* path, const char* localeID,
/* We're going to skip all the locales that do not have any data */
r = findFirstExisting(path, name, &isRoot, &hasChopped, &isDefault, &intStatus);
+ // If we failed due to out-of-memory, report the failure and exit early.
+ if (intStatus == U_MEMORY_ALLOCATION_ERROR) {
+ *status = intStatus;
+ goto finishUnlock;
+ }
+
if(r != NULL) { /* if there is one real locale, we can look for parents. */
t1 = r;
hasRealData = TRUE;
if ( usingUSRData ) { /* This code inserts user override data into the inheritance chain */
UErrorCode usrStatus = U_ZERO_ERROR;
UResourceDataEntry *u1 = init_entry(t1->fName, usrDataPath, &usrStatus);
- if ( u1 != NULL ) {
- if(u1->fBogus == U_ZERO_ERROR) {
- u1->fParent = t1;
- r = u1;
- } else {
- /* the USR override data wasn't found, set it to be deleted */
- u1->fCountExisting = 0;
- }
- }
+ // If we failed due to out-of-memory, report the failure and exit early.
+ if (intStatus == U_MEMORY_ALLOCATION_ERROR) {
+ *status = intStatus;
+ goto finishUnlock;
+ }
+ if ( u1 != NULL ) {
+ if(u1->fBogus == U_ZERO_ERROR) {
+ u1->fParent = t1;
+ r = u1;
+ } else {
+ /* the USR override data wasn't found, set it to be deleted */
+ u1->fCountExisting = 0;
+ }
+ }
}
if (hasChopped && !isRoot) {
if (!loadParentsExceptRoot(t1, name, UPRV_LENGTHOF(name), usingUSRData, usrDataPath, status)) {
@@ -671,6 +692,11 @@ static UResourceDataEntry *entryOpen(const char* path, const char* localeID,
/* insert default locale */
uprv_strcpy(name, uloc_getDefault());
r = findFirstExisting(path, name, &isRoot, &hasChopped, &isDefault, &intStatus);
+ // If we failed due to out-of-memory, report the failure and exit early.
+ if (intStatus == U_MEMORY_ALLOCATION_ERROR) {
+ *status = intStatus;
+ goto finishUnlock;
+ }
intStatus = U_USING_DEFAULT_WARNING;
if(r != NULL) { /* the default locale exists */
t1 = r;
@@ -690,6 +716,11 @@ static UResourceDataEntry *entryOpen(const char* path, const char* localeID,
if(r == NULL) {
uprv_strcpy(name, kRootLocaleName);
r = findFirstExisting(path, name, &isRoot, &hasChopped, &isDefault, &intStatus);
+ // If we failed due to out-of-memory, report the failure and exit early.
+ if (intStatus == U_MEMORY_ALLOCATION_ERROR) {
+ *status = intStatus;
+ goto finishUnlock;
+ }
if(r != NULL) {
t1 = r;
intStatus = U_USING_DEFAULT_WARNING;
@@ -2421,7 +2452,7 @@ ures_loc_nextLocale(UEnumeration* en,
UResourceBundle *k = NULL;
const char *result = NULL;
int32_t len = 0;
- if(ures_hasNext(res) && (k = ures_getNextResource(res, &ctx->curr, status))) {
+ if(ures_hasNext(res) && (k = ures_getNextResource(res, &ctx->curr, status)) != 0) {
result = ures_getKey(k);
len = (int32_t)uprv_strlen(result);
}
@@ -2843,7 +2874,7 @@ ures_getKeywordValues(const char *path, const char *keyword, UErrorCode *status)
valuesBuf[0]=0;
valuesBuf[1]=0;
- while((locale = uenum_next(locs, &locLen, status))) {
+ while((locale = uenum_next(locs, &locLen, status)) != 0) {
UResourceBundle *bund = NULL;
UResourceBundle *subPtr = NULL;
UErrorCode subStatus = U_ZERO_ERROR; /* don't fail if a bundle is unopenable */
@@ -2868,7 +2899,7 @@ ures_getKeywordValues(const char *path, const char *keyword, UErrorCode *status)
continue;
}
- while((subPtr = ures_getNextResource(&item,&subItem,&subStatus))
+ while((subPtr = ures_getNextResource(&item,&subItem,&subStatus)) != 0
&& U_SUCCESS(subStatus)) {
const char *k;
int32_t i;
diff --git a/Build/source/libs/icu/icu-src/source/common/uresdata.h b/Build/source/libs/icu/icu-src/source/common/uresdata.h
index 8d845e3dfcf..4e28ddccf63 100644
--- a/Build/source/libs/icu/icu-src/source/common/uresdata.h
+++ b/Build/source/libs/icu/icu-src/source/common/uresdata.h
@@ -475,7 +475,7 @@ U_NAMESPACE_BEGIN
class ResourceDataValue : public ResourceValue {
public:
- ResourceDataValue() : pResData(NULL), res(URES_NONE) {}
+ ResourceDataValue() : pResData(NULL), res(static_cast<Resource>(URES_NONE)) {}
virtual ~ResourceDataValue();
void setData(const ResourceData *data) { pResData = data; }
diff --git a/Build/source/libs/icu/icu-src/source/common/uscript_props.cpp b/Build/source/libs/icu/icu-src/source/common/uscript_props.cpp
index 7998c52c7f0..bfdb68c7a9c 100644
--- a/Build/source/libs/icu/icu-src/source/common/uscript_props.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/uscript_props.cpp
@@ -71,7 +71,7 @@ const int32_t SCRIPT_PROPS[] = {
0x0EA5 | RECOMMENDED | LB_LETTERS, // Laoo
0x004C | RECOMMENDED | CASED, // Latn
0x0D15 | RECOMMENDED, // Mlym
- 0x1826 | LIMITED_USE, // Mong
+ 0x1826 | EXCLUSION, // Mong
0x1000 | RECOMMENDED | LB_LETTERS, // Mymr
0x168F | EXCLUSION, // Ogam
0x10300 | EXCLUSION, // Ital
@@ -222,6 +222,13 @@ const int32_t SCRIPT_PROPS[] = {
0x11D10 | EXCLUSION, // Gonm
0x11A5C | EXCLUSION, // Soyo
0x11A0B | EXCLUSION, // Zanb
+ 0x1180B | EXCLUSION, // Dogr
+ 0x11D71 | LIMITED_USE, // Gong
+ 0x11EE5 | EXCLUSION, // Maka
+ 0x16E40 | EXCLUSION | CASED, // Medf
+ 0x10D12 | LIMITED_USE | RTL, // Rohg
+ 0x10F42 | EXCLUSION | RTL, // Sogd
+ 0x10F19 | EXCLUSION | RTL, // Sogo
// End copy-paste from parsescriptmetadata.py
};
diff --git a/Build/source/libs/icu/icu-src/source/common/ushape.cpp b/Build/source/libs/icu/icu-src/source/common/ushape.cpp
index a640ae2907c..ae13b5c1183 100644
--- a/Build/source/libs/icu/icu-src/source/common/ushape.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/ushape.cpp
@@ -1323,7 +1323,7 @@ shapeUnicode(UChar *dest, int32_t sourceLength,
/* to ensure the array index is within the range */
U_ASSERT(dest[i] >= 0x064Bu
&& dest[i]-0x064Bu < UPRV_LENGTHOF(IrrelevantPos));
- dest[i] = 0xFE70 + IrrelevantPos[(dest[i] - 0x064B)] + Shape;
+ dest[i] = 0xFE70 + IrrelevantPos[(dest[i] - 0x064B)] + static_cast<UChar>(Shape);
}
}else if ((currLink & APRESENT) > 0) {
dest[i] = (UChar)(0xFB50 + (currLink >> 8) + Shape);
diff --git a/Build/source/libs/icu/icu-src/source/common/usprep.cpp b/Build/source/libs/icu/icu-src/source/common/usprep.cpp
index cc8069dce8b..01238b35f5b 100644
--- a/Build/source/libs/icu/icu-src/source/common/usprep.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/usprep.cpp
@@ -112,7 +112,9 @@ hashEntry(const UHashTok parm) {
UHashTok namekey, pathkey;
namekey.pointer = b->name;
pathkey.pointer = b->path;
- return uhash_hashChars(namekey)+37*uhash_hashChars(pathkey);
+ uint32_t unsignedHash = static_cast<uint32_t>(uhash_hashChars(namekey)) +
+ 37u * static_cast<uint32_t>(uhash_hashChars(pathkey));
+ return static_cast<int32_t>(unsignedHash);
}
/* compares two entries */
@@ -351,9 +353,9 @@ usprep_getProfile(const char* path,
LocalMemory<char> keyName;
LocalMemory<char> keyPath;
if( key.allocateInsteadAndReset() == NULL ||
- keyName.allocateInsteadAndCopy(uprv_strlen(name)+1) == NULL ||
+ keyName.allocateInsteadAndCopy(static_cast<int32_t>(uprv_strlen(name)+1)) == NULL ||
(path != NULL &&
- keyPath.allocateInsteadAndCopy(uprv_strlen(path)+1) == NULL)
+ keyPath.allocateInsteadAndCopy(static_cast<int32_t>(uprv_strlen(path)+1)) == NULL)
) {
*status = U_MEMORY_ALLOCATION_ERROR;
usprep_unload(newProfile.getAlias());
@@ -726,7 +728,7 @@ usprep_prepare( const UStringPrepProfile* profile,
((result < _SPREP_TYPE_THRESHOLD) && (result & 0x01) /* first bit says it the code point is prohibited*/)
){
*status = U_STRINGPREP_PROHIBITED_ERROR;
- uprv_syntaxError(b1, b2Index-U16_LENGTH(ch), b2Len, parseError);
+ uprv_syntaxError(b2, b2Index-U16_LENGTH(ch), b2Len, parseError);
return 0;
}
diff --git a/Build/source/libs/icu/icu-src/source/common/ustr_cnv.cpp b/Build/source/libs/icu/icu-src/source/common/ustr_cnv.cpp
index 38f4d82105c..97c78bfaca9 100644
--- a/Build/source/libs/icu/icu-src/source/common/ustr_cnv.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/ustr_cnv.cpp
@@ -28,6 +28,7 @@
#include "cmemory.h"
#include "umutex.h"
#include "ustr_cnv.h"
+#include "ucnv_bld.h"
/* mutexed access to a shared default converter ----------------------------- */
@@ -68,8 +69,8 @@ u_releaseDefaultConverter(UConverter *converter)
if (converter != NULL) {
ucnv_reset(converter);
}
+ ucnv_enableCleanup();
umtx_lock(NULL);
-
if(gDefaultConverter == NULL) {
gDefaultConverter = converter;
converter = NULL;
diff --git a/Build/source/libs/icu/icu-src/source/common/ustrcase.cpp b/Build/source/libs/icu/icu-src/source/common/ustrcase.cpp
index 978bd3b7b86..618e847c65d 100644
--- a/Build/source/libs/icu/icu-src/source/common/ustrcase.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/ustrcase.cpp
@@ -218,7 +218,7 @@ int32_t toLower(int32_t caseLocale, uint32_t options,
int32_t srcIndex = srcStart;
for (;;) {
// fast path for simple cases
- UChar lead;
+ UChar lead = 0;
while (srcIndex < srcLimit) {
lead = src[srcIndex];
int32_t delta;
@@ -238,7 +238,7 @@ int32_t toLower(int32_t caseLocale, uint32_t options,
continue;
}
}
- lead += delta;
+ lead += static_cast<UChar>(delta);
destIndex = appendUnchanged(dest, destIndex, destCapacity,
src + prev, srcIndex - 1 - prev, options, edits);
if (destIndex >= 0) {
@@ -313,7 +313,7 @@ int32_t toUpper(int32_t caseLocale, uint32_t options,
int32_t srcIndex = 0;
for (;;) {
// fast path for simple cases
- UChar lead;
+ UChar lead = 0;
while (srcIndex < srcLength) {
lead = src[srcIndex];
int32_t delta;
@@ -333,7 +333,7 @@ int32_t toUpper(int32_t caseLocale, uint32_t options,
continue;
}
}
- lead += delta;
+ lead += static_cast<UChar>(delta);
destIndex = appendUnchanged(dest, destIndex, destCapacity,
src + prev, srcIndex - 1 - prev, options, edits);
if (destIndex >= 0) {
@@ -1747,8 +1747,8 @@ static int32_t _cmpFold(
}
if(matchLen1) {
- *matchLen1=m1-org1;
- *matchLen2=m2-org2;
+ *matchLen1=static_cast<int32_t>(m1-org1);
+ *matchLen2=static_cast<int32_t>(m2-org2);
}
return cmpRes;
}
diff --git a/Build/source/libs/icu/icu-src/source/common/utext.cpp b/Build/source/libs/icu/icu-src/source/common/utext.cpp
index a2c9008abf6..6f579bd4f27 100644
--- a/Build/source/libs/icu/icu-src/source/common/utext.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/utext.cpp
@@ -1196,9 +1196,9 @@ fillForward:
// Swap the UText buffers.
// We want to fill what was previously the alternate buffer,
// and make what was the current buffer be the new alternate.
- UTF8Buf *u8b = (UTF8Buf *)ut->q;
+ UTF8Buf *u8b_swap = (UTF8Buf *)ut->q;
ut->q = ut->p;
- ut->p = u8b;
+ ut->p = u8b_swap;
int32_t strLen = ut->b;
UBool nulTerminated = FALSE;
@@ -1207,9 +1207,9 @@ fillForward:
nulTerminated = TRUE;
}
- UChar *buf = u8b->buf;
- uint8_t *mapToNative = u8b->mapToNative;
- uint8_t *mapToUChars = u8b->mapToUChars;
+ UChar *buf = u8b_swap->buf;
+ uint8_t *mapToNative = u8b_swap->mapToNative;
+ uint8_t *mapToUChars = u8b_swap->mapToUChars;
int32_t destIx = 0;
int32_t srcIx = ix;
UBool seenNonAscii = FALSE;
@@ -1230,7 +1230,7 @@ fillForward:
// General case, handle everything.
if (seenNonAscii == FALSE) {
seenNonAscii = TRUE;
- u8b->bufNILimit = destIx;
+ u8b_swap->bufNILimit = destIx;
}
int32_t cIx = srcIx;
@@ -1263,22 +1263,22 @@ fillForward:
mapToUChars[srcIx - ix] = (uint8_t)destIx;
// fill in Buffer descriptor
- u8b->bufNativeStart = ix;
- u8b->bufNativeLimit = srcIx;
- u8b->bufStartIdx = 0;
- u8b->bufLimitIdx = destIx;
+ u8b_swap->bufNativeStart = ix;
+ u8b_swap->bufNativeLimit = srcIx;
+ u8b_swap->bufStartIdx = 0;
+ u8b_swap->bufLimitIdx = destIx;
if (seenNonAscii == FALSE) {
- u8b->bufNILimit = destIx;
+ u8b_swap->bufNILimit = destIx;
}
- u8b->toUCharsMapStart = u8b->bufNativeStart;
+ u8b_swap->toUCharsMapStart = u8b_swap->bufNativeStart;
// Set UText chunk to refer to this buffer.
ut->chunkContents = buf;
ut->chunkOffset = 0;
- ut->chunkLength = u8b->bufLimitIdx;
- ut->chunkNativeStart = u8b->bufNativeStart;
- ut->chunkNativeLimit = u8b->bufNativeLimit;
- ut->nativeIndexingLimit = u8b->bufNILimit;
+ ut->chunkLength = u8b_swap->bufLimitIdx;
+ ut->chunkNativeStart = u8b_swap->bufNativeStart;
+ ut->chunkNativeLimit = u8b_swap->bufNativeLimit;
+ ut->nativeIndexingLimit = u8b_swap->bufNILimit;
// For zero terminated strings, keep track of the maximum point
// scanned so far.
@@ -1311,13 +1311,13 @@ fillReverse:
// Swap the UText buffers.
// We want to fill what was previously the alternate buffer,
// and make what was the current buffer be the new alternate.
- UTF8Buf *u8b = (UTF8Buf *)ut->q;
+ UTF8Buf *u8b_swap = (UTF8Buf *)ut->q;
ut->q = ut->p;
- ut->p = u8b;
+ ut->p = u8b_swap;
- UChar *buf = u8b->buf;
- uint8_t *mapToNative = u8b->mapToNative;
- uint8_t *mapToUChars = u8b->mapToUChars;
+ UChar *buf = u8b_swap->buf;
+ uint8_t *mapToNative = u8b_swap->mapToNative;
+ uint8_t *mapToUChars = u8b_swap->mapToUChars;
int32_t toUCharsMapStart = ix - sizeof(UTF8Buf::mapToUChars) + 1;
// Note that toUCharsMapStart can be negative. Happens when the remaining
// text from current position to the beginning is less than the buffer size.
@@ -1387,19 +1387,19 @@ fillReverse:
bufNILimit = destIx;
}
}
- u8b->bufNativeStart = srcIx;
- u8b->bufNativeLimit = ix;
- u8b->bufStartIdx = destIx;
- u8b->bufLimitIdx = UTF8_TEXT_CHUNK_SIZE+2;
- u8b->bufNILimit = bufNILimit - u8b->bufStartIdx;
- u8b->toUCharsMapStart = toUCharsMapStart;
-
- ut->chunkContents = &buf[u8b->bufStartIdx];
- ut->chunkLength = u8b->bufLimitIdx - u8b->bufStartIdx;
+ u8b_swap->bufNativeStart = srcIx;
+ u8b_swap->bufNativeLimit = ix;
+ u8b_swap->bufStartIdx = destIx;
+ u8b_swap->bufLimitIdx = UTF8_TEXT_CHUNK_SIZE+2;
+ u8b_swap->bufNILimit = bufNILimit - u8b_swap->bufStartIdx;
+ u8b_swap->toUCharsMapStart = toUCharsMapStart;
+
+ ut->chunkContents = &buf[u8b_swap->bufStartIdx];
+ ut->chunkLength = u8b_swap->bufLimitIdx - u8b_swap->bufStartIdx;
ut->chunkOffset = ut->chunkLength;
- ut->chunkNativeStart = u8b->bufNativeStart;
- ut->chunkNativeLimit = u8b->bufNativeLimit;
- ut->nativeIndexingLimit = u8b->bufNILimit;
+ ut->chunkNativeStart = u8b_swap->bufNativeStart;
+ ut->chunkNativeLimit = u8b_swap->bufNativeLimit;
+ ut->nativeIndexingLimit = u8b_swap->bufNILimit;
return TRUE;
}
diff --git a/Build/source/libs/icu/icu-src/source/common/util.h b/Build/source/libs/icu/icu-src/source/common/util.h
index e7822490665..e197cab7882 100644
--- a/Build/source/libs/icu/icu-src/source/common/util.h
+++ b/Build/source/libs/icu/icu-src/source/common/util.h
@@ -46,6 +46,13 @@ class U_COMMON_API ICU_Utility /* not : public UObject because all methods are s
int32_t radix = 10,
int32_t minDigits = 1);
+ /** Returns a bogus UnicodeString by value. */
+ static inline UnicodeString makeBogusString() {
+ UnicodeString result;
+ result.setToBogus();
+ return result;
+ }
+
/**
* Return true if the character is NOT printable ASCII.
*
diff --git a/Build/source/libs/icu/icu-src/source/common/utrie.h b/Build/source/libs/icu/icu-src/source/common/utrie.h
index 641027a1a3f..3e2197eda6c 100644
--- a/Build/source/libs/icu/icu-src/source/common/utrie.h
+++ b/Build/source/libs/icu/icu-src/source/common/utrie.h
@@ -21,7 +21,6 @@
#include "unicode/utypes.h"
#include "unicode/utf16.h"
-#include "udataswp.h"
U_CDECL_BEGIN
@@ -732,17 +731,13 @@ utrie_serialize(UNewTrie *trie, void *data, int32_t capacity,
UBool reduceTo16Bits,
UErrorCode *pErrorCode);
-/**
- * Swap a serialized UTrie.
- * @internal
- */
-U_CAPI int32_t U_EXPORT2
-utrie_swap(const UDataSwapper *ds,
- const void *inData, int32_t length, void *outData,
- UErrorCode *pErrorCode);
-
/* serialization ------------------------------------------------------------ */
+// UTrie signature values, in platform endianness and opposite endianness.
+// The UTrie signature ASCII byte values spell "Trie".
+#define UTRIE_SIG 0x54726965
+#define UTRIE_OE_SIG 0x65697254
+
/**
* Trie data structure in serialized form:
*
diff --git a/Build/source/libs/icu/icu-src/source/common/utrie2.cpp b/Build/source/libs/icu/icu-src/source/common/utrie2.cpp
index 8f9183bafad..24ef5782c90 100644
--- a/Build/source/libs/icu/icu-src/source/common/utrie2.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/utrie2.cpp
@@ -24,11 +24,10 @@
* This file contains only the runtime and enumeration code, for read-only access.
* See utrie2_builder.c for the builder code.
*/
-#ifdef UTRIE2_DEBUG
-# include <stdio.h>
-#endif
-
#include "unicode/utypes.h"
+#ifdef UCPTRIE_DEBUG
+#include "unicode/umutablecptrie.h"
+#endif
#include "unicode/utf.h"
#include "unicode/utf8.h"
#include "unicode/utf16.h"
@@ -202,6 +201,9 @@ utrie2_openFromSerialized(UTrie2ValueBits valueBits,
trie->memory=(uint32_t *)data;
trie->length=actualLength;
trie->isMemoryOwned=FALSE;
+#ifdef UTRIE2_DEBUG
+ trie->name="fromSerialized";
+#endif
/* set the pointers to its index and data arrays */
p16=(const uint16_t *)(header+1);
@@ -294,6 +296,9 @@ utrie2_openDummy(UTrie2ValueBits valueBits,
trie->errorValue=errorValue;
trie->highStart=0;
trie->highValueIndex=dataMove+UTRIE2_DATA_START_OFFSET;
+#ifdef UTRIE2_DEBUG
+ trie->name="dummy";
+#endif
/* set the header fields */
header=(UTrie2Header *)trie->memory;
@@ -373,34 +378,15 @@ utrie2_close(UTrie2 *trie) {
}
if(trie->newTrie!=NULL) {
uprv_free(trie->newTrie->data);
+#ifdef UCPTRIE_DEBUG
+ umutablecptrie_close(trie->newTrie->t3);
+#endif
uprv_free(trie->newTrie);
}
uprv_free(trie);
}
}
-U_CAPI int32_t U_EXPORT2
-utrie2_getVersion(const void *data, int32_t length, UBool anyEndianOk) {
- uint32_t signature;
- if(length<16 || data==NULL || (U_POINTER_MASK_LSB(data, 3)!=0)) {
- return 0;
- }
- signature=*(const uint32_t *)data;
- if(signature==UTRIE2_SIG) {
- return 2;
- }
- if(anyEndianOk && signature==UTRIE2_OE_SIG) {
- return 2;
- }
- if(signature==UTRIE_SIG) {
- return 1;
- }
- if(anyEndianOk && signature==UTRIE_OE_SIG) {
- return 1;
- }
- return 0;
-}
-
U_CAPI UBool U_EXPORT2
utrie2_isFrozen(const UTrie2 *trie) {
return (UBool)(trie->newTrie==NULL);
@@ -430,96 +416,6 @@ utrie2_serialize(const UTrie2 *trie,
return trie->length;
}
-U_CAPI int32_t U_EXPORT2
-utrie2_swap(const UDataSwapper *ds,
- const void *inData, int32_t length, void *outData,
- UErrorCode *pErrorCode) {
- const UTrie2Header *inTrie;
- UTrie2Header trie;
- int32_t dataLength, size;
- UTrie2ValueBits valueBits;
-
- if(U_FAILURE(*pErrorCode)) {
- return 0;
- }
- if(ds==NULL || inData==NULL || (length>=0 && outData==NULL)) {
- *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
- return 0;
- }
-
- /* setup and swapping */
- if(length>=0 && length<(int32_t)sizeof(UTrie2Header)) {
- *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
- return 0;
- }
-
- inTrie=(const UTrie2Header *)inData;
- trie.signature=ds->readUInt32(inTrie->signature);
- trie.options=ds->readUInt16(inTrie->options);
- trie.indexLength=ds->readUInt16(inTrie->indexLength);
- trie.shiftedDataLength=ds->readUInt16(inTrie->shiftedDataLength);
-
- valueBits=(UTrie2ValueBits)(trie.options&UTRIE2_OPTIONS_VALUE_BITS_MASK);
- dataLength=(int32_t)trie.shiftedDataLength<<UTRIE2_INDEX_SHIFT;
-
- if( trie.signature!=UTRIE2_SIG ||
- valueBits<0 || UTRIE2_COUNT_VALUE_BITS<=valueBits ||
- trie.indexLength<UTRIE2_INDEX_1_OFFSET ||
- dataLength<UTRIE2_DATA_START_OFFSET
- ) {
- *pErrorCode=U_INVALID_FORMAT_ERROR; /* not a UTrie */
- return 0;
- }
-
- size=sizeof(UTrie2Header)+trie.indexLength*2;
- switch(valueBits) {
- case UTRIE2_16_VALUE_BITS:
- size+=dataLength*2;
- break;
- case UTRIE2_32_VALUE_BITS:
- size+=dataLength*4;
- break;
- default:
- *pErrorCode=U_INVALID_FORMAT_ERROR;
- return 0;
- }
-
- if(length>=0) {
- UTrie2Header *outTrie;
-
- if(length<size) {
- *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
- return 0;
- }
-
- outTrie=(UTrie2Header *)outData;
-
- /* swap the header */
- ds->swapArray32(ds, &inTrie->signature, 4, &outTrie->signature, pErrorCode);
- ds->swapArray16(ds, &inTrie->options, 12, &outTrie->options, pErrorCode);
-
- /* swap the index and the data */
- switch(valueBits) {
- case UTRIE2_16_VALUE_BITS:
- ds->swapArray16(ds, inTrie+1, (trie.indexLength+dataLength)*2, outTrie+1, pErrorCode);
- break;
- case UTRIE2_32_VALUE_BITS:
- 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);
- break;
- default:
- *pErrorCode=U_INVALID_FORMAT_ERROR;
- return 0;
- }
- }
-
- return size;
-}
-
-// utrie2_swapAnyVersion() should be defined here but lives in utrie2_builder.c
-// to avoid a dependency from utrie2.cpp on utrie.c.
-
/* enumeration -------------------------------------------------------------- */
#define MIN_VALUE(a, b) ((a)<(b) ? (a) : (b))
@@ -746,7 +642,7 @@ uint16_t BackwardUTrie2StringIterator::previous16() {
codePointLimit=codePointStart;
if(start>=codePointStart) {
codePoint=U_SENTINEL;
- return trie->errorValue;
+ return static_cast<uint16_t>(trie->errorValue);
}
uint16_t result;
UTRIE2_U16_PREV16(trie, start, codePointStart, codePoint, result);
@@ -757,7 +653,7 @@ uint16_t ForwardUTrie2StringIterator::next16() {
codePointStart=codePointLimit;
if(codePointLimit==limit) {
codePoint=U_SENTINEL;
- return trie->errorValue;
+ return static_cast<uint16_t>(trie->errorValue);
}
uint16_t result;
UTRIE2_U16_NEXT16(trie, codePointLimit, limit, codePoint, result);
diff --git a/Build/source/libs/icu/icu-src/source/common/utrie2.h b/Build/source/libs/icu/icu-src/source/common/utrie2.h
index 8e1caa5e90b..75028ee23ac 100644
--- a/Build/source/libs/icu/icu-src/source/common/utrie2.h
+++ b/Build/source/libs/icu/icu-src/source/common/utrie2.h
@@ -22,7 +22,6 @@
#include "unicode/utypes.h"
#include "unicode/utf8.h"
#include "putilimp.h"
-#include "udataswp.h"
U_CDECL_BEGIN
@@ -331,40 +330,6 @@ utrie2_serialize(const UTrie2 *trie,
/* Public UTrie2 API: miscellaneous functions ------------------------------- */
/**
- * Get the UTrie version from 32-bit-aligned memory containing the serialized form
- * of either a UTrie (version 1) or a UTrie2 (version 2).
- *
- * @param data a pointer to 32-bit-aligned memory containing the serialized form
- * of a UTrie, version 1 or 2
- * @param length the number of bytes available at data;
- * can be more than necessary (see return value)
- * @param anyEndianOk If FALSE, only platform-endian serialized forms are recognized.
- * If TRUE, opposite-endian serialized forms are recognized as well.
- * @return the UTrie version of the serialized form, or 0 if it is not
- * recognized as a serialized UTrie
- */
-U_CAPI int32_t U_EXPORT2
-utrie2_getVersion(const void *data, int32_t length, UBool anyEndianOk);
-
-/**
- * Swap a serialized UTrie2.
- * @internal
- */
-U_CAPI int32_t U_EXPORT2
-utrie2_swap(const UDataSwapper *ds,
- const void *inData, int32_t length, void *outData,
- UErrorCode *pErrorCode);
-
-/**
- * Swap a serialized UTrie or UTrie2.
- * @internal
- */
-U_CAPI int32_t U_EXPORT2
-utrie2_swapAnyVersion(const UDataSwapper *ds,
- const void *inData, int32_t length, void *outData,
- UErrorCode *pErrorCode);
-
-/**
* Build a UTrie2 (version 2) from a UTrie (version 1).
* Enumerates all values in the UTrie and builds a UTrie2 with the same values.
* The resulting UTrie2 will be frozen.
@@ -709,6 +674,10 @@ struct UTrie2 {
UBool padding1;
int16_t padding2;
UNewTrie2 *newTrie; /* builder object; NULL when frozen */
+
+#ifdef UTRIE2_DEBUG
+ const char *name;
+#endif
};
/**
diff --git a/Build/source/libs/icu/icu-src/source/common/utrie2_builder.cpp b/Build/source/libs/icu/icu-src/source/common/utrie2_builder.cpp
index d8a3a067573..80e09c9c26b 100644
--- a/Build/source/libs/icu/icu-src/source/common/utrie2_builder.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/utrie2_builder.cpp
@@ -24,16 +24,23 @@
* This file contains only the builder code.
* See utrie2.c for the runtime and enumeration code.
*/
+// #define UTRIE2_DEBUG
#ifdef UTRIE2_DEBUG
# include <stdio.h>
#endif
+// #define UCPTRIE_DEBUG
#include "unicode/utypes.h"
+#ifdef UCPTRIE_DEBUG
+#include "unicode/ucptrie.h"
+#include "unicode/umutablecptrie.h"
+#include "ucptrie_impl.h"
+#endif
#include "cmemory.h"
#include "utrie2.h"
#include "utrie2_impl.h"
-#include "utrie.h" /* for utrie2_fromUTrie() and utrie_swap() */
+#include "utrie.h" // for utrie2_fromUTrie()
/* Implementation notes ----------------------------------------------------- */
@@ -132,8 +139,14 @@ utrie2_open(uint32_t initialValue, uint32_t errorValue, UErrorCode *pErrorCode)
trie->errorValue=errorValue;
trie->highStart=0x110000;
trie->newTrie=newTrie;
+#ifdef UTRIE2_DEBUG
+ trie->name="open";
+#endif
newTrie->data=data;
+#ifdef UCPTRIE_DEBUG
+ newTrie->t3=umutablecptrie_open(initialValue, errorValue, pErrorCode);
+#endif
newTrie->dataCapacity=UNEWTRIE2_INITIAL_DATA_LENGTH;
newTrie->initialValue=initialValue;
newTrie->errorValue=errorValue;
@@ -246,6 +259,14 @@ cloneBuilder(const UNewTrie2 *other) {
uprv_free(trie);
return NULL;
}
+#ifdef UCPTRIE_DEBUG
+ if(other->t3==nullptr) {
+ trie->t3=nullptr;
+ } else {
+ UErrorCode errorCode=U_ZERO_ERROR;
+ trie->t3=umutablecptrie_clone(other->t3, &errorCode);
+ }
+#endif
trie->dataCapacity=other->dataCapacity;
/* clone data */
@@ -343,6 +364,22 @@ copyEnumRange(const void *context, UChar32 start, UChar32 end, uint32_t value) {
}
#ifdef UTRIE2_DEBUG
+static long countInitial(const UTrie2 *trie) {
+ uint32_t initialValue=trie->initialValue;
+ int32_t length=trie->dataLength;
+ long count=0;
+ if(trie->data16!=nullptr) {
+ for(int32_t i=0; i<length; ++i) {
+ if(trie->data16[i]==initialValue) { ++count; }
+ }
+ } else {
+ for(int32_t i=0; i<length; ++i) {
+ if(trie->data32[i]==initialValue) { ++count; }
+ }
+ }
+ return count;
+}
+
static void
utrie_printLengths(const UTrie *trie) {
long indexLength=trie->indexLength;
@@ -357,8 +394,8 @@ utrie2_printLengths(const UTrie2 *trie, const char *which) {
long indexLength=trie->indexLength;
long dataLength=(long)trie->dataLength;
long totalLength=(long)sizeof(UTrie2Header)+indexLength*2+dataLength*(trie->data32!=NULL ? 4 : 2);
- printf("**UTrie2Lengths(%s)** index:%6ld data:%6ld serialized:%6ld\n",
- which, indexLength, dataLength, totalLength);
+ printf("**UTrie2Lengths(%s %s)** index:%6ld data:%6ld countInitial:%6ld serialized:%6ld\n",
+ which, trie->name, indexLength, dataLength, countInitial(trie), totalLength);
}
#endif
@@ -622,6 +659,9 @@ set32(UNewTrie2 *trie,
*pErrorCode=U_NO_WRITE_PERMISSION;
return;
}
+#ifdef UCPTRIE_DEBUG
+ umutablecptrie_set(trie->t3, c, value, pErrorCode);
+#endif
block=getDataBlock(trie, c, forLSCP);
if(block<0) {
@@ -717,6 +757,9 @@ utrie2_setRange32(UTrie2 *trie,
*pErrorCode=U_NO_WRITE_PERMISSION;
return;
}
+#ifdef UCPTRIE_DEBUG
+ umutablecptrie_setRange(newTrie->t3, start, end, value, pErrorCode);
+#endif
if(!overwrite && value==newTrie->initialValue) {
return; /* nothing to do */
}
@@ -732,7 +775,7 @@ utrie2_setRange32(UTrie2 *trie,
return;
}
- nextStart=(start+UTRIE2_DATA_BLOCK_LENGTH)&~UTRIE2_DATA_MASK;
+ nextStart=(start+UTRIE2_DATA_MASK)&~UTRIE2_DATA_MASK;
if(nextStart<=limit) {
fillBlock(newTrie->data+block, start&UTRIE2_DATA_MASK, UTRIE2_DATA_BLOCK_LENGTH,
value, newTrie->initialValue, overwrite);
@@ -983,6 +1026,10 @@ findHighStart(UNewTrie2 *trie, uint32_t highValue) {
*/
static void
compactData(UNewTrie2 *trie) {
+#ifdef UTRIE2_DEBUG
+ int32_t countSame=0, sumOverlaps=0;
+#endif
+
int32_t start, newStart, movedStart;
int32_t blockLength, overlap;
int32_t i, mapIndex, blockCount;
@@ -1023,6 +1070,9 @@ compactData(UNewTrie2 *trie) {
if( (movedStart=findSameDataBlock(trie->data, newStart, start, blockLength))
>=0
) {
+#ifdef UTRIE2_DEBUG
+ ++countSame;
+#endif
/* found an identical block, set the other block's index value for the current block */
for(i=blockCount, mapIndex=start>>UTRIE2_SHIFT_2; i>0; --i) {
trie->map[mapIndex++]=movedStart;
@@ -1042,6 +1092,9 @@ compactData(UNewTrie2 *trie) {
overlap>0 && !equal_uint32(trie->data+(newStart-overlap), trie->data+start, overlap);
overlap-=UTRIE2_DATA_GRANULARITY) {}
+#ifdef UTRIE2_DEBUG
+ sumOverlaps+=overlap;
+#endif
if(overlap>0 || newStart<start) {
/* some overlap, or just move the whole block */
movedStart=newStart-overlap;
@@ -1081,8 +1134,8 @@ compactData(UNewTrie2 *trie) {
#ifdef UTRIE2_DEBUG
/* we saved some space */
- printf("compacting UTrie2: count of 32-bit data words %lu->%lu\n",
- (long)trie->dataLength, (long)newStart);
+ printf("compacting UTrie2: count of 32-bit data words %lu->%lu countSame=%ld sumOverlaps=%ld\n",
+ (long)trie->dataLength, (long)newStart, (long)countSame, (long)sumOverlaps);
#endif
trie->dataLength=newStart;
@@ -1163,7 +1216,7 @@ compactIndex2(UNewTrie2 *trie) {
#ifdef UTRIE2_DEBUG
/* we saved some space */
- printf("compacting UTrie2: count of 16-bit index-2 words %lu->%lu\n",
+ printf("compacting UTrie2: count of 16-bit index words %lu->%lu\n",
(long)trie->index2Length, (long)newStart);
#endif
@@ -1193,7 +1246,7 @@ compactTrie(UTrie2 *trie, UErrorCode *pErrorCode) {
trie->highStart=newTrie->highStart=highStart;
#ifdef UTRIE2_DEBUG
- printf("UTrie2: highStart U+%04lx highValue 0x%lx initialValue 0x%lx\n",
+ printf("UTrie2: highStart U+%06lx highValue 0x%lx initialValue 0x%lx\n",
(long)highStart, (long)highValue, (long)trie->initialValue);
#endif
@@ -1211,7 +1264,7 @@ compactTrie(UTrie2 *trie, UErrorCode *pErrorCode) {
compactIndex2(newTrie);
#ifdef UTRIE2_DEBUG
} else {
- printf("UTrie2: highStart U+%04lx count of 16-bit index-2 words %lu->%lu\n",
+ printf("UTrie2: highStart U+%04lx count of 16-bit index words %lu->%lu\n",
(long)highStart, (long)trie->newTrie->index2Length, (long)UTRIE2_INDEX_1_OFFSET);
#endif
}
@@ -1334,7 +1387,7 @@ utrie2_freeze(UTrie2 *trie, UTrie2ValueBits valueBits, UErrorCode *pErrorCode) {
if(highStart<=0x10000) {
trie->index2NullOffset=0xffff;
} else {
- trie->index2NullOffset=UTRIE2_INDEX_2_OFFSET+newTrie->index2NullOffset;
+ trie->index2NullOffset=static_cast<uint16_t>(UTRIE2_INDEX_2_OFFSET+newTrie->index2NullOffset);
}
trie->dataNullOffset=(uint16_t)(dataMove+newTrie->dataNullOffset);
trie->highValueIndex=dataMove+trie->dataLength-UTRIE2_DATA_GRANULARITY;
@@ -1411,31 +1464,18 @@ utrie2_freeze(UTrie2 *trie, UTrie2ValueBits valueBits, UErrorCode *pErrorCode) {
return;
}
+#ifdef UTRIE2_DEBUG
+ utrie2_printLengths(trie, "");
+#endif
+
+#ifdef UCPTRIE_DEBUG
+ umutablecptrie_setName(newTrie->t3, trie->name);
+ ucptrie_close(
+ umutablecptrie_buildImmutable(
+ newTrie->t3, UCPTRIE_TYPE_FAST, (UCPTrieValueWidth)valueBits, pErrorCode));
+#endif
/* Delete the UNewTrie2. */
uprv_free(newTrie->data);
uprv_free(newTrie);
trie->newTrie=NULL;
}
-
-/*
- * This is here to avoid a dependency from utrie2.cpp on utrie.c.
- * This file already depends on utrie.c.
- * Otherwise, this should be in utrie2.cpp right after utrie2_swap().
- */
-U_CAPI int32_t U_EXPORT2
-utrie2_swapAnyVersion(const UDataSwapper *ds,
- const void *inData, int32_t length, void *outData,
- UErrorCode *pErrorCode) {
- if(U_SUCCESS(*pErrorCode)) {
- switch(utrie2_getVersion(inData, length, TRUE)) {
- case 1:
- return utrie_swap(ds, inData, length, outData, pErrorCode);
- case 2:
- return utrie2_swap(ds, inData, length, outData, pErrorCode);
- default:
- *pErrorCode=U_INVALID_FORMAT_ERROR;
- return 0;
- }
- }
- return 0;
-}
diff --git a/Build/source/libs/icu/icu-src/source/common/utrie2_impl.h b/Build/source/libs/icu/icu-src/source/common/utrie2_impl.h
index b7dc9d3fb45..2a14db3a6bd 100644
--- a/Build/source/libs/icu/icu-src/source/common/utrie2_impl.h
+++ b/Build/source/libs/icu/icu-src/source/common/utrie2_impl.h
@@ -22,22 +22,20 @@
#ifndef __UTRIE2_IMPL_H__
#define __UTRIE2_IMPL_H__
+#ifdef UCPTRIE_DEBUG
+#include "unicode/umutablecptrie.h"
+#endif
#include "utrie2.h"
/* Public UTrie2 API implementation ----------------------------------------- */
/*
- * These definitions are mostly needed by utrie2.c,
+ * These definitions are mostly needed by utrie2.cpp,
* but also by utrie2_serialize() and utrie2_swap().
*/
-/*
- * UTrie and UTrie2 signature values,
- * in platform endianness and opposite endianness.
- */
-#define UTRIE_SIG 0x54726965
-#define UTRIE_OE_SIG 0x65697254
-
+// UTrie2 signature values, in platform endianness and opposite endianness.
+// The UTrie2 signature ASCII byte values spell "Tri2".
#define UTRIE2_SIG 0x54726932
#define UTRIE2_OE_SIG 0x32697254
@@ -145,6 +143,9 @@ struct UNewTrie2 {
int32_t index1[UNEWTRIE2_INDEX_1_LENGTH];
int32_t index2[UNEWTRIE2_MAX_INDEX_2_LENGTH];
uint32_t *data;
+#ifdef UCPTRIE_DEBUG
+ UMutableCPTrie *t3;
+#endif
uint32_t initialValue, errorValue;
int32_t index2Length, dataCapacity, dataLength;
diff --git a/Build/source/libs/icu/icu-src/source/common/utrie_swap.cpp b/Build/source/libs/icu/icu-src/source/common/utrie_swap.cpp
new file mode 100644
index 00000000000..5abe7bd5d77
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/common/utrie_swap.cpp
@@ -0,0 +1,344 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// utrie_swap.cpp
+// created: 2018aug08 Markus W. Scherer
+
+#include "unicode/utypes.h"
+#include "cmemory.h"
+#include "ucptrie_impl.h"
+#include "udataswp.h"
+#include "utrie.h"
+#include "utrie2_impl.h"
+
+// These functions for swapping different generations of ICU code point tries are here
+// so that their implementation files need not depend on swapper code,
+// need not depend on each other, and so that other swapper code
+// need not depend on other trie code.
+
+namespace {
+
+constexpr int32_t ASCII_LIMIT = 0x80;
+
+} // namespace
+
+U_CAPI int32_t U_EXPORT2
+utrie_swap(const UDataSwapper *ds,
+ const void *inData, int32_t length, void *outData,
+ UErrorCode *pErrorCode) {
+ const UTrieHeader *inTrie;
+ UTrieHeader trie;
+ int32_t size;
+ UBool dataIs32;
+
+ if(pErrorCode==NULL || U_FAILURE(*pErrorCode)) {
+ return 0;
+ }
+ if(ds==NULL || inData==NULL || (length>=0 && outData==NULL)) {
+ *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
+ return 0;
+ }
+
+ /* setup and swapping */
+ if(length>=0 && (uint32_t)length<sizeof(UTrieHeader)) {
+ *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+ return 0;
+ }
+
+ inTrie=(const UTrieHeader *)inData;
+ trie.signature=ds->readUInt32(inTrie->signature);
+ trie.options=ds->readUInt32(inTrie->options);
+ trie.indexLength=udata_readInt32(ds, inTrie->indexLength);
+ trie.dataLength=udata_readInt32(ds, inTrie->dataLength);
+
+ if( trie.signature!=0x54726965 ||
+ (trie.options&UTRIE_OPTIONS_SHIFT_MASK)!=UTRIE_SHIFT ||
+ ((trie.options>>UTRIE_OPTIONS_INDEX_SHIFT)&UTRIE_OPTIONS_SHIFT_MASK)!=UTRIE_INDEX_SHIFT ||
+ trie.indexLength<UTRIE_BMP_INDEX_LENGTH ||
+ (trie.indexLength&(UTRIE_SURROGATE_BLOCK_COUNT-1))!=0 ||
+ trie.dataLength<UTRIE_DATA_BLOCK_LENGTH ||
+ (trie.dataLength&(UTRIE_DATA_GRANULARITY-1))!=0 ||
+ ((trie.options&UTRIE_OPTIONS_LATIN1_IS_LINEAR)!=0 && trie.dataLength<(UTRIE_DATA_BLOCK_LENGTH+0x100))
+ ) {
+ *pErrorCode=U_INVALID_FORMAT_ERROR; /* not a UTrie */
+ return 0;
+ }
+
+ dataIs32=(UBool)((trie.options&UTRIE_OPTIONS_DATA_IS_32_BIT)!=0);
+ size=sizeof(UTrieHeader)+trie.indexLength*2+trie.dataLength*(dataIs32?4:2);
+
+ if(length>=0) {
+ UTrieHeader *outTrie;
+
+ if(length<size) {
+ *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+ return 0;
+ }
+
+ outTrie=(UTrieHeader *)outData;
+
+ /* swap the header */
+ ds->swapArray32(ds, inTrie, sizeof(UTrieHeader), outTrie, pErrorCode);
+
+ /* swap the index and the data */
+ if(dataIs32) {
+ ds->swapArray16(ds, inTrie+1, trie.indexLength*2, outTrie+1, pErrorCode);
+ ds->swapArray32(ds, (const uint16_t *)(inTrie+1)+trie.indexLength, trie.dataLength*4,
+ (uint16_t *)(outTrie+1)+trie.indexLength, pErrorCode);
+ } else {
+ ds->swapArray16(ds, inTrie+1, (trie.indexLength+trie.dataLength)*2, outTrie+1, pErrorCode);
+ }
+ }
+
+ return size;
+}
+
+U_CAPI int32_t U_EXPORT2
+utrie2_swap(const UDataSwapper *ds,
+ const void *inData, int32_t length, void *outData,
+ UErrorCode *pErrorCode) {
+ const UTrie2Header *inTrie;
+ UTrie2Header trie;
+ int32_t dataLength, size;
+ UTrie2ValueBits valueBits;
+
+ if(U_FAILURE(*pErrorCode)) {
+ return 0;
+ }
+ if(ds==NULL || inData==NULL || (length>=0 && outData==NULL)) {
+ *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
+ return 0;
+ }
+
+ /* setup and swapping */
+ if(length>=0 && length<(int32_t)sizeof(UTrie2Header)) {
+ *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+ return 0;
+ }
+
+ inTrie=(const UTrie2Header *)inData;
+ trie.signature=ds->readUInt32(inTrie->signature);
+ trie.options=ds->readUInt16(inTrie->options);
+ trie.indexLength=ds->readUInt16(inTrie->indexLength);
+ trie.shiftedDataLength=ds->readUInt16(inTrie->shiftedDataLength);
+
+ valueBits=(UTrie2ValueBits)(trie.options&UTRIE2_OPTIONS_VALUE_BITS_MASK);
+ dataLength=(int32_t)trie.shiftedDataLength<<UTRIE2_INDEX_SHIFT;
+
+ if( trie.signature!=UTRIE2_SIG ||
+ valueBits<0 || UTRIE2_COUNT_VALUE_BITS<=valueBits ||
+ trie.indexLength<UTRIE2_INDEX_1_OFFSET ||
+ dataLength<UTRIE2_DATA_START_OFFSET
+ ) {
+ *pErrorCode=U_INVALID_FORMAT_ERROR; /* not a UTrie */
+ return 0;
+ }
+
+ size=sizeof(UTrie2Header)+trie.indexLength*2;
+ switch(valueBits) {
+ case UTRIE2_16_VALUE_BITS:
+ size+=dataLength*2;
+ break;
+ case UTRIE2_32_VALUE_BITS:
+ size+=dataLength*4;
+ break;
+ default:
+ *pErrorCode=U_INVALID_FORMAT_ERROR;
+ return 0;
+ }
+
+ if(length>=0) {
+ UTrie2Header *outTrie;
+
+ if(length<size) {
+ *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+ return 0;
+ }
+
+ outTrie=(UTrie2Header *)outData;
+
+ /* swap the header */
+ ds->swapArray32(ds, &inTrie->signature, 4, &outTrie->signature, pErrorCode);
+ ds->swapArray16(ds, &inTrie->options, 12, &outTrie->options, pErrorCode);
+
+ /* swap the index and the data */
+ switch(valueBits) {
+ case UTRIE2_16_VALUE_BITS:
+ ds->swapArray16(ds, inTrie+1, (trie.indexLength+dataLength)*2, outTrie+1, pErrorCode);
+ break;
+ case UTRIE2_32_VALUE_BITS:
+ 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);
+ break;
+ default:
+ *pErrorCode=U_INVALID_FORMAT_ERROR;
+ return 0;
+ }
+ }
+
+ return size;
+}
+
+U_CAPI int32_t U_EXPORT2
+ucptrie_swap(const UDataSwapper *ds,
+ const void *inData, int32_t length, void *outData,
+ UErrorCode *pErrorCode) {
+ const UCPTrieHeader *inTrie;
+ UCPTrieHeader trie;
+ int32_t dataLength, size;
+ UCPTrieValueWidth valueWidth;
+
+ if(U_FAILURE(*pErrorCode)) {
+ return 0;
+ }
+ if(ds==nullptr || inData==nullptr || (length>=0 && outData==nullptr)) {
+ *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
+ return 0;
+ }
+
+ /* setup and swapping */
+ if(length>=0 && length<(int32_t)sizeof(UCPTrieHeader)) {
+ *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+ return 0;
+ }
+
+ inTrie=(const UCPTrieHeader *)inData;
+ trie.signature=ds->readUInt32(inTrie->signature);
+ trie.options=ds->readUInt16(inTrie->options);
+ trie.indexLength=ds->readUInt16(inTrie->indexLength);
+ trie.dataLength = ds->readUInt16(inTrie->dataLength);
+
+ UCPTrieType type = (UCPTrieType)((trie.options >> 6) & 3);
+ valueWidth = (UCPTrieValueWidth)(trie.options & UCPTRIE_OPTIONS_VALUE_BITS_MASK);
+ dataLength = ((int32_t)(trie.options & UCPTRIE_OPTIONS_DATA_LENGTH_MASK) << 4) | trie.dataLength;
+
+ int32_t minIndexLength = type == UCPTRIE_TYPE_FAST ?
+ UCPTRIE_BMP_INDEX_LENGTH : UCPTRIE_SMALL_INDEX_LENGTH;
+ if( trie.signature!=UCPTRIE_SIG ||
+ type > UCPTRIE_TYPE_SMALL ||
+ (trie.options & UCPTRIE_OPTIONS_RESERVED_MASK) != 0 ||
+ valueWidth > UCPTRIE_VALUE_BITS_8 ||
+ trie.indexLength < minIndexLength ||
+ dataLength < ASCII_LIMIT
+ ) {
+ *pErrorCode=U_INVALID_FORMAT_ERROR; /* not a UCPTrie */
+ return 0;
+ }
+
+ size=sizeof(UCPTrieHeader)+trie.indexLength*2;
+ switch(valueWidth) {
+ case UCPTRIE_VALUE_BITS_16:
+ size+=dataLength*2;
+ break;
+ case UCPTRIE_VALUE_BITS_32:
+ size+=dataLength*4;
+ break;
+ case UCPTRIE_VALUE_BITS_8:
+ size+=dataLength;
+ break;
+ default:
+ *pErrorCode=U_INVALID_FORMAT_ERROR;
+ return 0;
+ }
+
+ if(length>=0) {
+ UCPTrieHeader *outTrie;
+
+ if(length<size) {
+ *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+ return 0;
+ }
+
+ outTrie=(UCPTrieHeader *)outData;
+
+ /* swap the header */
+ ds->swapArray32(ds, &inTrie->signature, 4, &outTrie->signature, pErrorCode);
+ ds->swapArray16(ds, &inTrie->options, 12, &outTrie->options, pErrorCode);
+
+ /* swap the index and the data */
+ switch(valueWidth) {
+ case UCPTRIE_VALUE_BITS_16:
+ ds->swapArray16(ds, inTrie+1, (trie.indexLength+dataLength)*2, outTrie+1, 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);
+ 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);
+ }
+ break;
+ default:
+ *pErrorCode=U_INVALID_FORMAT_ERROR;
+ return 0;
+ }
+ }
+
+ return size;
+}
+
+namespace {
+
+/**
+ * Gets the trie version from 32-bit-aligned memory containing the serialized form
+ * of a UTrie (version 1), a UTrie2 (version 2), or a UCPTrie (version 3).
+ *
+ * @param data a pointer to 32-bit-aligned memory containing the serialized form of a trie
+ * @param length the number of bytes available at data;
+ * can be more than necessary (see return value)
+ * @param anyEndianOk If FALSE, only platform-endian serialized forms are recognized.
+ * If TRUE, opposite-endian serialized forms are recognized as well.
+ * @return the trie version of the serialized form, or 0 if it is not
+ * recognized as a serialized trie
+ */
+int32_t
+getVersion(const void *data, int32_t length, UBool anyEndianOk) {
+ uint32_t signature;
+ if(length<16 || data==nullptr || (U_POINTER_MASK_LSB(data, 3)!=0)) {
+ return 0;
+ }
+ signature=*(const uint32_t *)data;
+ if(signature==UCPTRIE_SIG) {
+ return 3;
+ }
+ if(anyEndianOk && signature==UCPTRIE_OE_SIG) {
+ return 3;
+ }
+ if(signature==UTRIE2_SIG) {
+ return 2;
+ }
+ if(anyEndianOk && signature==UTRIE2_OE_SIG) {
+ return 2;
+ }
+ if(signature==UTRIE_SIG) {
+ return 1;
+ }
+ if(anyEndianOk && signature==UTRIE_OE_SIG) {
+ return 1;
+ }
+ return 0;
+}
+
+} // namespace
+
+U_CAPI int32_t U_EXPORT2
+utrie_swapAnyVersion(const UDataSwapper *ds,
+ const void *inData, int32_t length, void *outData,
+ UErrorCode *pErrorCode) {
+ if(U_FAILURE(*pErrorCode)) { return 0; }
+ switch(getVersion(inData, length, TRUE)) {
+ case 1:
+ return utrie_swap(ds, inData, length, outData, pErrorCode);
+ case 2:
+ return utrie2_swap(ds, inData, length, outData, pErrorCode);
+ case 3:
+ return ucptrie_swap(ds, inData, length, outData, pErrorCode);
+ default:
+ *pErrorCode=U_INVALID_FORMAT_ERROR;
+ return 0;
+ }
+}
diff --git a/Build/source/libs/icu/icu-src/source/common/uts46.cpp b/Build/source/libs/icu/icu-src/source/common/uts46.cpp
index 5a23572eb64..b9e6cb023bb 100644
--- a/Build/source/libs/icu/icu-src/source/common/uts46.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/uts46.cpp
@@ -557,7 +557,10 @@ UTS46::processUnicode(const UnicodeString &src,
destArray=dest.getBuffer();
destLength+=newLength-labelLength;
labelLimit=labelStart+=newLength+1;
- } else if(0xdf<=c && c<=0x200d && (c==0xdf || c==0x3c2 || c>=0x200c)) {
+ continue;
+ } else if(c<0xdf) {
+ // pass
+ } else if(c<=0x200d && (c==0xdf || c==0x3c2 || c>=0x200c)) {
info.isTransDiff=TRUE;
if(doMapDevChars) {
destLength=mapDevChars(dest, labelStart, labelLimit, errorCode);
@@ -565,15 +568,23 @@ UTS46::processUnicode(const UnicodeString &src,
return dest;
}
destArray=dest.getBuffer();
- // Do not increment labelLimit in case c was removed.
// All deviation characters have been mapped, no need to check for them again.
doMapDevChars=FALSE;
- } else {
- ++labelLimit;
+ // Do not increment labelLimit in case c was removed.
+ continue;
+ }
+ } else if(U16_IS_SURROGATE(c)) {
+ if(U16_IS_SURROGATE_LEAD(c) ?
+ (labelLimit+1)==destLength || !U16_IS_TRAIL(destArray[labelLimit+1]) :
+ labelLimit==labelStart || !U16_IS_LEAD(destArray[labelLimit-1])) {
+ // Map an unpaired surrogate to U+FFFD before normalization so that when
+ // that removes characters we do not turn two unpaired ones into a pair.
+ info.labelErrors|=UIDNA_ERROR_DISALLOWED;
+ dest.setCharAt(labelLimit, 0xfffd);
+ destArray=dest.getBuffer();
}
- } else {
- ++labelLimit;
}
+ ++labelLimit;
}
// Permit an empty label at the end (0<labelStart==labelLimit==destLength is ok)
// but not an empty label elsewhere nor a completely empty domain name.
diff --git a/Build/source/libs/icu/icu-src/source/common/utypes.cpp b/Build/source/libs/icu/icu-src/source/common/utypes.cpp
index 5d6a0504ba6..7531e465683 100644
--- a/Build/source/libs/icu/icu-src/source/common/utypes.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/utypes.cpp
@@ -126,7 +126,8 @@ _uFmtErrorName[U_FMT_PARSE_ERROR_LIMIT - U_FMT_PARSE_ERROR_START] = {
"U_DEFAULT_KEYWORD_MISSING",
"U_DECIMAL_NUMBER_SYNTAX_ERROR",
"U_FORMAT_INEXACT_ERROR",
- "U_NUMBER_ARG_OUTOFBOUNDS_ERROR"
+ "U_NUMBER_ARG_OUTOFBOUNDS_ERROR",
+ "U_NUMBER_SKELETON_SYNTAX_ERROR",
};
static const char * const
diff --git a/Build/source/libs/icu/icu-src/source/common/wintz.cpp b/Build/source/libs/icu/icu-src/source/common/wintz.cpp
index 10e69ca59dd..5e9ac0d2f37 100644
--- a/Build/source/libs/icu/icu-src/source/common/wintz.cpp
+++ b/Build/source/libs/icu/icu-src/source/common/wintz.cpp
@@ -13,9 +13,7 @@
#include "unicode/utypes.h"
-// This file contains only desktop Windows behavior
-// Windows UWP calls Windows::Globalization directly, so this isn't needed there.
-#if U_PLATFORM_USES_ONLY_WIN32_API && (U_PLATFORM_HAS_WINUWP_API == 0)
+#if U_PLATFORM_USES_ONLY_WIN32_API
#include "wintz.h"
#include "cmemory.h"
@@ -23,6 +21,7 @@
#include "unicode/ures.h"
#include "unicode/ustring.h"
+#include "uresimp.h"
#ifndef WIN32_LEAN_AND_MEAN
# define WIN32_LEAN_AND_MEAN
@@ -34,351 +33,94 @@
# define NOMCX
#include <windows.h>
-#define MAX_LENGTH_ID 40
+U_NAMESPACE_BEGIN
-/* The layout of the Tzi value in the registry */
-typedef struct
-{
- int32_t bias;
- int32_t standardBias;
- int32_t daylightBias;
- SYSTEMTIME standardDate;
- SYSTEMTIME daylightDate;
-} TZI;
-
-/**
- * Various registry keys and key fragments.
- */
-static const char CURRENT_ZONE_REGKEY[] = "SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation\\";
-static const char STANDARD_TIME_REGKEY[] = " Standard Time";
-static const char TZI_REGKEY[] = "TZI";
-static const char STD_REGKEY[] = "Std";
+// The value of MAX_TIMEZONE_ID_LENGTH is 128, which is defined in DYNAMIC_TIME_ZONE_INFORMATION
+#define MAX_TIMEZONE_ID_LENGTH 128
/**
- * The time zone root keys (under HKLM) for Win7+
- */
-static const char TZ_REGKEY[] = "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Time Zones\\";
-
-static LONG openTZRegKey(HKEY *hkey, const char *winid)
-{
- char subKeyName[110]; /* TODO: why 110?? */
- char *name;
- LONG result;
-
- uprv_strcpy(subKeyName, TZ_REGKEY);
- name = &subKeyName[strlen(subKeyName)];
- uprv_strcat(subKeyName, winid);
-
- result = RegOpenKeyExA(HKEY_LOCAL_MACHINE,
- subKeyName,
- 0,
- KEY_QUERY_VALUE,
- hkey);
- return result;
-}
-
-static LONG getTZI(const char *winid, TZI *tzi)
-{
- DWORD cbData = sizeof(TZI);
- LONG result;
- HKEY hkey;
-
- result = openTZRegKey(&hkey, winid);
-
- if (result == ERROR_SUCCESS)
- {
- result = RegQueryValueExA(hkey,
- TZI_REGKEY,
- NULL,
- NULL,
- (LPBYTE)tzi,
- &cbData);
- RegCloseKey(hkey);
- }
-
- return result;
-}
-
-static LONG getSTDName(const char *winid, char *regStdName, int32_t length)
-{
- DWORD cbData = length;
- LONG result;
- HKEY hkey;
-
- result = openTZRegKey(&hkey, winid);
-
- if (result == ERROR_SUCCESS)
- {
- result = RegQueryValueExA(hkey,
- STD_REGKEY,
- NULL,
- NULL,
- (LPBYTE)regStdName,
- &cbData);
- RegCloseKey(hkey);
- }
-
- return result;
-}
-
-static LONG getTZKeyName(char* tzKeyName, int32_t length)
-{
- HKEY hkey;
- LONG result = FALSE;
- DWORD cbData = length;
-
- if(ERROR_SUCCESS == RegOpenKeyExA(
- HKEY_LOCAL_MACHINE,
- CURRENT_ZONE_REGKEY,
- 0,
- KEY_QUERY_VALUE,
- &hkey))
- {
- result = RegQueryValueExA(
- hkey,
- "TimeZoneKeyName",
- NULL,
- NULL,
- (LPBYTE)tzKeyName,
- &cbData);
-
- RegCloseKey(hkey);
- }
-
- return result;
-}
-
-/*
- This code attempts to detect the Windows time zone directly,
- as set in the Windows Date and Time control panel. It attempts
- to work on versions greater than Windows Vista and on localized
- installs. It works by directly interrogating the registry and
- comparing the data there with the data returned by the
- GetTimeZoneInformation API, along with some other strategies. The
- registry contains time zone data under this key:
-
- HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\
-
- Under this key are several subkeys, one for each time zone. For
- example these subkeys are named "Pacific Standard Time" on Vista+.
- There are some other wrinkles; see the code for
- details. The subkey name is NOT LOCALIZED, allowing us to support
- localized installs.
-
- Under the subkey are data values. We care about:
-
- Std Standard time display name, localized
- TZI Binary block of data
-
- The TZI data is of particular interest. It contains the offset, two
- more offsets for standard and daylight time, and the start and end
- rules. This is the same data returned by the GetTimeZoneInformation
- API. The API may modify the data on the way out, so we have to be
- careful, but essentially we do a binary comparison against the TZI
- blocks of various registry keys. When we find a match, we know what
- time zone Windows is set to. Since the registry key is not
- localized, we can then translate the key through a simple table
- lookup into the corresponding ICU time zone.
-
- This strategy doesn't always work because there are zones which
- share an offset and rules, so more than one TZI block will match.
- For example, both Tokyo and Seoul are at GMT+9 with no DST rules;
- their TZI blocks are identical. For these cases, we fall back to a
- name lookup. We attempt to match the display name as stored in the
- registry for the current zone to the display name stored in the
- registry for various Windows zones. By comparing the registry data
- directly we avoid conversion complications.
-
- Author: Alan Liu
- Since: ICU 2.6
- Based on original code by Carl Brown <cbrown@xnetinc.com>
+* Main Windows time zone detection function.
+* Returns the Windows time zone converted to an ICU time zone as a heap-allocated buffer, or nullptr upon failure.
+* Note: We use the Win32 API GetDynamicTimeZoneInformation to get the current time zone info.
+* This API returns a non-localized time zone name, which we can then map to an ICU time zone name.
*/
-
-/**
- * Main Windows time zone detection function. Returns the Windows
- * time zone, translated to an ICU time zone, or NULL upon failure.
- */
U_CFUNC const char* U_EXPORT2
-uprv_detectWindowsTimeZone()
+uprv_detectWindowsTimeZone()
{
UErrorCode status = U_ZERO_ERROR;
- UResourceBundle* bundle = NULL;
- char* icuid = NULL;
- char apiStdName[MAX_LENGTH_ID];
- char regStdName[MAX_LENGTH_ID];
- char tmpid[MAX_LENGTH_ID];
+ char* icuid = nullptr;
+ char dynamicTZKeyName[MAX_TIMEZONE_ID_LENGTH];
+ char tmpid[MAX_TIMEZONE_ID_LENGTH];
int32_t len;
- int id;
+ int id = GEOID_NOT_AVAILABLE;
int errorCode;
- wchar_t ISOcodeW[3]; /* 2 letter iso code in UTF-16*/
- char ISOcodeA[3]; /* 2 letter iso code in ansi */
+ wchar_t ISOcodeW[3] = {}; /* 2 letter ISO code in UTF-16 */
+ char ISOcode[3] = {}; /* 2 letter ISO code in UTF-8 */
- LONG result;
- TZI tziKey;
- TZI tziReg;
- TIME_ZONE_INFORMATION apiTZI;
+ DYNAMIC_TIME_ZONE_INFORMATION dynamicTZI;
+ uprv_memset(&dynamicTZI, 0, sizeof(dynamicTZI));
+ uprv_memset(dynamicTZKeyName, 0, sizeof(dynamicTZKeyName));
+ uprv_memset(tmpid, 0, sizeof(tmpid));
- BOOL tryPreVistaFallback;
- OSVERSIONINFO osVerInfo;
+ /* Obtain TIME_ZONE_INFORMATION from the API and get the non-localized time zone name. */
+ if (TIME_ZONE_ID_INVALID == GetDynamicTimeZoneInformation(&dynamicTZI)) {
+ return nullptr;
+ }
- /* Obtain TIME_ZONE_INFORMATION from the API, and then convert it
- to TZI. We could also interrogate the registry directly; we do
- this below if needed. */
- uprv_memset(&apiTZI, 0, sizeof(apiTZI));
- uprv_memset(&tziKey, 0, sizeof(tziKey));
- uprv_memset(&tziReg, 0, sizeof(tziReg));
- GetTimeZoneInformation(&apiTZI);
- tziKey.bias = apiTZI.Bias;
- uprv_memcpy((char *)&tziKey.standardDate, (char*)&apiTZI.StandardDate,
- sizeof(apiTZI.StandardDate));
- uprv_memcpy((char *)&tziKey.daylightDate, (char*)&apiTZI.DaylightDate,
- sizeof(apiTZI.DaylightDate));
+ id = GetUserGeoID(GEOCLASS_NATION);
+ errorCode = GetGeoInfoW(id, GEO_ISO2, ISOcodeW, 3, 0);
- /* Convert the wchar_t* standard name to char* */
- uprv_memset(apiStdName, 0, sizeof(apiStdName));
- wcstombs(apiStdName, apiTZI.StandardName, MAX_LENGTH_ID);
+ // convert from wchar_t* (UTF-16 on Windows) to char* (UTF-8).
+ u_strToUTF8(ISOcode, UPRV_LENGTHOF(ISOcode), nullptr,
+ reinterpret_cast<const UChar*>(ISOcodeW), UPRV_LENGTHOF(ISOcodeW), &status);
- tmpid[0] = 0;
+ LocalUResourceBundlePointer bundle(ures_openDirect(nullptr, "windowsZones", &status));
+ ures_getByKey(bundle.getAlias(), "mapTimezones", bundle.getAlias(), &status);
- id = GetUserGeoID(GEOCLASS_NATION);
- errorCode = GetGeoInfoW(id, GEO_ISO2, ISOcodeW, 3, 0);
- u_strToUTF8(ISOcodeA, 3, NULL, (const UChar *)ISOcodeW, 3, &status);
+ // convert from wchar_t* (UTF-16 on Windows) to char* (UTF-8).
+ u_strToUTF8(dynamicTZKeyName, UPRV_LENGTHOF(dynamicTZKeyName), nullptr,
+ reinterpret_cast<const UChar*>(dynamicTZI.TimeZoneKeyName), UPRV_LENGTHOF(dynamicTZI.TimeZoneKeyName), &status);
- bundle = ures_openDirect(NULL, "windowsZones", &status);
- ures_getByKey(bundle, "mapTimezones", bundle, &status);
+ if (U_FAILURE(status)) {
+ return nullptr;
+ }
- /*
- Windows Vista+ provides us with a "TimeZoneKeyName" that is not localized
- and can be used to directly map a name in our bundle. Try to use that first
- if we're on Vista or higher
- */
- uprv_memset(&osVerInfo, 0, sizeof(osVerInfo));
- osVerInfo.dwOSVersionInfoSize = sizeof(osVerInfo);
- tryPreVistaFallback = TRUE;
- result = getTZKeyName(regStdName, sizeof(regStdName));
- if(ERROR_SUCCESS == result)
- {
- UResourceBundle* winTZ = ures_getByKey(bundle, regStdName, NULL, &status);
- if(U_SUCCESS(status))
- {
- const UChar* icuTZ = NULL;
- if (errorCode != 0)
- {
- icuTZ = ures_getStringByKey(winTZ, ISOcodeA, &len, &status);
+ if (dynamicTZI.TimeZoneKeyName[0] != 0) {
+ UResourceBundle winTZ;
+ ures_initStackObject(&winTZ);
+ ures_getByKey(bundle.getAlias(), dynamicTZKeyName, &winTZ, &status);
+
+ if (U_SUCCESS(status)) {
+ const UChar* icuTZ = nullptr;
+ if (errorCode != 0) {
+ icuTZ = ures_getStringByKey(&winTZ, ISOcode, &len, &status);
}
- if (errorCode==0 || icuTZ==NULL)
- {
+ if (errorCode == 0 || icuTZ == nullptr) {
/* fallback to default "001" and reset status */
status = U_ZERO_ERROR;
- icuTZ = ures_getStringByKey(winTZ, "001", &len, &status);
- }
-
- if(U_SUCCESS(status))
- {
- int index=0;
- while (! (*icuTZ == '\0' || *icuTZ ==' '))
- {
- tmpid[index++]=(char)(*icuTZ++); /* safe to assume 'char' is ASCII compatible on windows */
- }
- tmpid[index]='\0';
- tryPreVistaFallback = FALSE;
- }
- }
- ures_close(winTZ);
- }
-
- if(tryPreVistaFallback)
- {
- /* Note: We get the winid not from static tables but from resource bundle. */
- while (U_SUCCESS(status) && ures_hasNext(bundle))
- {
- UBool idFound = FALSE;
- const char* winid;
- UResourceBundle* winTZ = ures_getNextResource(bundle, NULL, &status);
- if (U_FAILURE(status))
- {
- break;
+ icuTZ = ures_getStringByKey(&winTZ, "001", &len, &status);
}
- winid = ures_getKey(winTZ);
- result = getTZI(winid, &tziReg);
-
- if (result == ERROR_SUCCESS)
- {
- /* Windows alters the DaylightBias in some situations.
- Using the bias and the rules suffices, so overwrite
- these unreliable fields. */
- tziKey.standardBias = tziReg.standardBias;
- tziKey.daylightBias = tziReg.daylightBias;
- if (uprv_memcmp((char *)&tziKey, (char*)&tziReg, sizeof(tziKey)) == 0)
- {
- const UChar* icuTZ = NULL;
- if (errorCode != 0)
- {
- icuTZ = ures_getStringByKey(winTZ, ISOcodeA, &len, &status);
- }
- if (errorCode==0 || icuTZ==NULL)
- {
- /* fallback to default "001" and reset status */
- status = U_ZERO_ERROR;
- icuTZ = ures_getStringByKey(winTZ, "001", &len, &status);
- }
+ if (U_SUCCESS(status)) {
+ int index = 0;
- if (U_SUCCESS(status))
- {
- /* Get the standard name from the registry key to compare with
- the one from Windows API call. */
- uprv_memset(regStdName, 0, sizeof(regStdName));
- result = getSTDName(winid, regStdName, sizeof(regStdName));
- if (result == ERROR_SUCCESS)
- {
- if (uprv_strcmp(apiStdName, regStdName) == 0)
- {
- idFound = TRUE;
- }
- }
-
- /* tmpid buffer holds the ICU timezone ID corresponding to the timezone ID from Windows.
- * If none is found, tmpid buffer will contain a fallback ID (i.e. the time zone ID matching
- * the current time zone information)
- */
- if (idFound || tmpid[0] == 0)
- {
- /* if icuTZ has more than one city, take only the first (i.e. terminate icuTZ at first space) */
- int index=0;
- while (! (*icuTZ == '\0' || *icuTZ ==' '))
- {
- tmpid[index++]=(char)(*icuTZ++); /* safe to assume 'char' is ASCII compatible on windows */
- }
- tmpid[index]='\0';
- }
- }
+ while (!(*icuTZ == '\0' || *icuTZ == ' ')) {
+ // time zone IDs only contain ASCII invariant characters.
+ tmpid[index++] = (char)(*icuTZ++);
}
- }
- ures_close(winTZ);
- if (idFound)
- {
- break;
+ tmpid[index] = '\0';
}
}
+ ures_close(&winTZ);
}
- /*
- * Copy the timezone ID to icuid to be returned.
- */
- if (tmpid[0] != 0)
- {
- len = uprv_strlen(tmpid);
- icuid = (char*)uprv_calloc(len + 1, sizeof(char));
- if (icuid != NULL)
- {
- uprv_strcpy(icuid, tmpid);
- }
+ // Copy the timezone ID to icuid to be returned.
+ if (tmpid[0] != 0) {
+ icuid = uprv_strdup(tmpid);
}
- ures_close(bundle);
-
return icuid;
}
-#endif /* U_PLATFORM_USES_ONLY_WIN32_API && (U_PLATFORM_HAS_WINUWP_API == 0) */
+U_NAMESPACE_END
+#endif /* U_PLATFORM_USES_ONLY_WIN32_API */
diff --git a/Build/source/libs/icu/icu-src/source/common/wintz.h b/Build/source/libs/icu/icu-src/source/common/wintz.h
index 7be30eb4470..f98b1779b5d 100644
--- a/Build/source/libs/icu/icu-src/source/common/wintz.h
+++ b/Build/source/libs/icu/icu-src/source/common/wintz.h
@@ -16,9 +16,7 @@
#include "unicode/utypes.h"
-// This file contains only desktop windows behavior
-// Windows UWP calls Windows::Globalization directly, so this isn't needed there.
-#if U_PLATFORM_USES_ONLY_WIN32_API && (U_PLATFORM_HAS_WINUWP_API == 0)
+#if U_PLATFORM_USES_ONLY_WIN32_API
/**
* \file
@@ -33,6 +31,6 @@ U_CDECL_END
U_CFUNC const char* U_EXPORT2
uprv_detectWindowsTimeZone();
-#endif /* U_PLATFORM_USES_ONLY_WIN32_API && (U_PLATFORM_HAS_WINUWP_API == 0) */
+#endif /* U_PLATFORM_USES_ONLY_WIN32_API */
#endif /* __WINTZ */
diff --git a/Build/source/libs/icu/icu-src/source/config/mh-mingw b/Build/source/libs/icu/icu-src/source/config/mh-mingw
index ae966586fbd..1c887346745 100644
--- a/Build/source/libs/icu/icu-src/source/config/mh-mingw
+++ b/Build/source/libs/icu/icu-src/source/config/mh-mingw
@@ -42,6 +42,11 @@ THREADSCFLAGS = -mthreads
THREADSCXXFLAGS = -mthreads
LIBCPPFLAGS =
+## Add 'd' suffix to the names of binary files with Debug configuration
+ifeq ($(ENABLE_DEBUG),1)
+ICULIBSUFFIX:=$(ICULIBSUFFIX)d#M#
+endif
+
# Commands to link. Link with C++ in case static libraries are used.
LINK.c= $(CXX) $(CXXFLAGS) $(LDFLAGS)
#LINK.cc= $(CXX) $(CXXFLAGS) $(LDFLAGS)
diff --git a/Build/source/libs/icu/icu-src/source/config/mh-mingw64 b/Build/source/libs/icu/icu-src/source/config/mh-mingw64
index 6d0c5575329..7d464e572bb 100644
--- a/Build/source/libs/icu/icu-src/source/config/mh-mingw64
+++ b/Build/source/libs/icu/icu-src/source/config/mh-mingw64
@@ -42,6 +42,11 @@ THREADSCFLAGS = -mthreads
THREADSCXXFLAGS = -mthreads
LIBCPPFLAGS =
+## Add 'd' suffix to the names of binary files with Debug configuration
+ifeq ($(ENABLE_DEBUG),1)
+ICULIBSUFFIX:=$(ICULIBSUFFIX)d#M#
+endif
+
# Commands to link. Link with C++ in case static libraries are used.
LINK.c= $(CXX) $(CXXFLAGS) $(LDFLAGS)
#LINK.cc= $(CXX) $(CXXFLAGS) $(LDFLAGS)
diff --git a/Build/source/libs/icu/icu-src/source/config/mh-solaris b/Build/source/libs/icu/icu-src/source/config/mh-solaris
index e1d4ccf900f..3d7e6fe79f4 100644
--- a/Build/source/libs/icu/icu-src/source/config/mh-solaris
+++ b/Build/source/libs/icu/icu-src/source/config/mh-solaris
@@ -7,7 +7,7 @@
## Flags for ICU 59+
CXXFLAGS += -std=c++11
-CFLAGS += -std=c99
+CFLAGS += -std=c11
## Flags for position independent code
SHAREDLIBCFLAGS = -KPIC
diff --git a/Build/source/libs/icu/icu-src/source/configure b/Build/source/libs/icu/icu-src/source/configure
index c694614d6b4..972951ef7bc 100755
--- a/Build/source/libs/icu/icu-src/source/configure
+++ b/Build/source/libs/icu/icu-src/source/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for ICU 61.1.
+# Generated by GNU Autoconf 2.69 for ICU 63.1.
#
# Report bugs to <http://icu-project.org/bugs>.
#
@@ -582,8 +582,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='ICU'
PACKAGE_TARNAME='International Components for Unicode'
-PACKAGE_VERSION='61.1'
-PACKAGE_STRING='ICU 61.1'
+PACKAGE_VERSION='63.1'
+PACKAGE_STRING='ICU 63.1'
PACKAGE_BUGREPORT='http://icu-project.org/bugs'
PACKAGE_URL='http://icu-project.org'
@@ -673,7 +673,6 @@ U_HAVE_INTTYPES_H
GENCCODE_ASSEMBLY
HAVE_MMAP
LIB_THREAD
-U_HAVE_ATOMIC
ENABLE_RPATH
U_ENABLE_DYLOAD
U_HAVE_PLUGINS
@@ -695,6 +694,7 @@ GREP
DOXYGEN
cross_buildroot
U_MAKE
+PYTHON3
cross_compiling
INSTALL_DATA
INSTALL_SCRIPT
@@ -716,6 +716,7 @@ CFLAGS
CC
ENABLE_RELEASE
ENABLE_DEBUG
+INSTALL_ICU_CONFIG
CPPFLAGS
host_os
host_vendor
@@ -775,6 +776,7 @@ SHELL'
ac_subst_files=''
ac_user_opts='
enable_option_checking
+enable_icu_config
enable_debug
enable_release
with_cross_build
@@ -1368,7 +1370,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures ICU 61.1 to adapt to many kinds of systems.
+\`configure' configures ICU 63.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1435,7 +1437,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of ICU 61.1:";;
+ short | recursive ) echo "Configuration of ICU 63.1:";;
esac
cat <<\_ACEOF
@@ -1443,6 +1445,7 @@ Optional Features:
--disable-option-checking ignore unrecognized --enable/--with options
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --enable-icu-config install icu-config
--enable-debug build debug libraries and enable the U_DEBUG define default=no
--enable-release build release libraries default=yes
--enable-strict compile with strict compiler options default=yes
@@ -1571,7 +1574,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-ICU configure 61.1
+ICU configure 63.1
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2263,7 +2266,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by ICU $as_me 61.1, which was
+It was created by ICU $as_me 63.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2797,6 +2800,21 @@ UCONFIG_CPPFLAGS=""
# such as -std
UCONFIG_CFLAGS=""
+# Check whether to install icu-config
+# Check whether --enable-icu-config was given.
+if test "${enable_icu_config+set}" = set; then :
+ enableval=$enable_icu_config; case "${enableval}" in
+ yes) enable_icu_config=true ;;
+ no) enable_icu_config=false ;;
+ *) as_fn_error $? "bad value '${enableval}' for --enable-icu-config" "$LINENO" 5 ;;
+ esac
+else
+ enable_icu_config=true
+fi
+
+INSTALL_ICU_CONFIG=$enable_icu_config
+
+
# Check whether to build debug libraries
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build debug libraries" >&5
$as_echo_n "checking whether to build debug libraries... " >&6; }
@@ -4182,6 +4200,49 @@ fi
#AC_CHECK_PROG(AUTOCONF, autoconf, autoconf, true)
#AC_CHECK_PROG(STRIP, strip, strip, true)
+for ac_prog in python3
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_PYTHON3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$PYTHON3"; then
+ ac_cv_prog_PYTHON3="$PYTHON3" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_PYTHON3="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+PYTHON3=$ac_cv_prog_PYTHON3
+if test -n "$PYTHON3"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON3" >&5
+$as_echo "$PYTHON3" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$PYTHON3" && break
+done
+
+
# Check for the platform make
for ac_prog in gmake gnumake
do
@@ -4354,12 +4415,12 @@ $as_echo "$ac_use_strict_options" >&6; }
then
case "${host}" in
*-*-solaris*)
- # Don't use -std=c99 on Solaris because of timezone check fails
+ # Don't use -std=c11 on Solaris because of timezone check fails
;;
*)
# Do not use -ansi. It limits us to C90, and it breaks some platforms.
- # We use -std=c99 to disable the gnu99 defaults and its associated warnings
- CFLAGS="$CFLAGS -std=c99"
+ # We use -std=c11 to disable the gnu99 defaults and its associated warnings
+ CFLAGS="$CFLAGS -std=c11"
;;
esac
@@ -6042,37 +6103,6 @@ $as_echo "$as_me: Adding CXXFLAGS option -std=c++11" >&6;}
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if #include <atomic> works" >&5
-$as_echo_n "checking if #include <atomic> works... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <atomic>
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
- ac_cv_header_atomic=yes
-else
- ac_cv_header_atomic=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_atomic" >&5
-$as_echo "$ac_cv_header_atomic" >&6; }
-if test $ac_cv_header_atomic = yes
-then
- U_HAVE_ATOMIC=1
-else
- U_HAVE_ATOMIC=0
-fi
-# Make this available via CPPFLAGS
-CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_ATOMIC=${U_HAVE_ATOMIC}"
-
-
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -7474,15 +7504,13 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
;;
esac
-# GCC >= 4.4 supports UTF16 string literals. The CFLAGS and CXXFLAGS may change in the future.
+# GCC >= 4.4 supports UTF16 string literals. As of ICU 62, both C and C++ files require them.
if test "$CHECK_UTF16_STRING_RESULT" = "unknown"; then
if test "$GCC" = yes; then
- OLD_CFLAGS="${CFLAGS}"
- CFLAGS="${CFLAGS} -std=gnu99"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-static const char16_t test[] = u"This is a UTF16 literal string.";
+static const unsigned short test[] = u"This is a UTF16 literal string.";
int
main ()
@@ -7499,10 +7527,7 @@ else
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
if test "$CC_UTF16_STRING" = 1; then
- UCONFIG_CFLAGS="${UCONFIG_CFLAGS} -std=gnu99"
CHECK_UTF16_STRING_RESULT="C only";
- else
- CFLAGS="${OLD_CFLAGS}"
fi
fi
if test "$GXX" = yes; then
@@ -8410,7 +8435,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by ICU $as_me 61.1, which was
+This file was extended by ICU $as_me 63.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -8464,7 +8489,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-ICU config.status 61.1
+ICU config.status 63.1
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
@@ -9179,4 +9204,17 @@ then
echo "## Expect build failures in the 'data', 'test', and other directories."
fi
+if test -z "$PYTHON3";
+then
+ echo ""
+ echo "NOTICE: Unable to find Python 3. ICU versions 64 and later will require Python 3 to build."
+ echo "See ICU-10923 for more information: https://unicode-org.atlassian.net/browse/ICU-10923"
+ echo ""
+else
+ echo ""
+ echo "Found Python 3. You are all set for ICU 64, which will require Python 3 to build."
+ echo "For more info on Python 3 requirement, see: https://unicode-org.atlassian.net/browse/ICU-10923"
+ echo ""
+fi
+
$as_unset _CXX_CXXSUFFIX
diff --git a/Build/source/libs/icu/icu-src/source/configure.ac b/Build/source/libs/icu/icu-src/source/configure.ac
index c77496a5a13..b3467ccd4ea 100644
--- a/Build/source/libs/icu/icu-src/source/configure.ac
+++ b/Build/source/libs/icu/icu-src/source/configure.ac
@@ -100,6 +100,16 @@ UCONFIG_CPPFLAGS=""
# such as -std
UCONFIG_CFLAGS=""
+# Check whether to install icu-config
+AC_ARG_ENABLE([icu-config],
+ AS_HELP_STRING([--enable-icu-config], [install icu-config]),
+ [case "${enableval}" in
+ yes) enable_icu_config=true ;;
+ no) enable_icu_config=false ;;
+ *) AC_MSG_ERROR([bad value '${enableval}' for --enable-icu-config]) ;;
+ esac], [enable_icu_config=true])
+AC_SUBST(INSTALL_ICU_CONFIG, [$enable_icu_config])
+
# Check whether to build debug libraries
AC_MSG_CHECKING([whether to build debug libraries])
enabled=no
@@ -185,6 +195,8 @@ fi
#AC_CHECK_PROG(AUTOCONF, autoconf, autoconf, true)
#AC_CHECK_PROG(STRIP, strip, strip, true)
+AC_CHECK_PROGS(PYTHON3, python3)
+
# Check for the platform make
AC_PATH_PROGS(U_MAKE, gmake gnumake, make)
AC_SUBST(U_MAKE)
@@ -518,19 +530,6 @@ if [[ "$GXX" = yes ]]; then
fi
fi
-AC_MSG_CHECKING([[if #include <atomic> works]])
-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <atomic>]], [[]])], [ac_cv_header_atomic=yes], [ac_cv_header_atomic=no])
-AC_MSG_RESULT($ac_cv_header_atomic)
-if test $ac_cv_header_atomic = yes
-then
- U_HAVE_ATOMIC=1
-else
- U_HAVE_ATOMIC=0
-fi
-# Make this available via CPPFLAGS
-CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_ATOMIC=${U_HAVE_ATOMIC}"
-AC_SUBST(U_HAVE_ATOMIC)
-
AC_LANG_POP([C++])
# Always build ICU with multi-threading support.
@@ -1039,19 +1038,14 @@ case "${host}" in
;;
esac
-# GCC >= 4.4 supports UTF16 string literals. The CFLAGS and CXXFLAGS may change in the future.
+# GCC >= 4.4 supports UTF16 string literals. As of ICU 62, both C and C++ files require them.
if test "$CHECK_UTF16_STRING_RESULT" = "unknown"; then
if test "$GCC" = yes; then
- OLD_CFLAGS="${CFLAGS}"
- CFLAGS="${CFLAGS} -std=gnu99"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
-static const char16_t test[] = u"This is a UTF16 literal string.";
+static const unsigned short test[] = u"This is a UTF16 literal string.";
]], [[]])],[CC_UTF16_STRING=1],[CC_UTF16_STRING=0])
if test "$CC_UTF16_STRING" = 1; then
- UCONFIG_CFLAGS="${UCONFIG_CFLAGS} -std=gnu99"
CHECK_UTF16_STRING_RESULT="C only";
- else
- CFLAGS="${OLD_CFLAGS}"
fi
fi
if test "$GXX" = yes; then
@@ -1471,4 +1465,17 @@ then
echo "## Expect build failures in the 'data', 'test', and other directories."
fi
+if test -z "$PYTHON3";
+then
+ echo ""
+ echo "NOTICE: Unable to find Python 3. ICU versions 64 and later will require Python 3 to build."
+ echo "See ICU-10923 for more information: https://unicode-org.atlassian.net/browse/ICU-10923"
+ echo ""
+else
+ echo ""
+ echo "Found Python 3. You are all set for ICU 64, which will require Python 3 to build."
+ echo "For more info on Python 3 requirement, see: https://unicode-org.atlassian.net/browse/ICU-10923"
+ echo ""
+fi
+
$as_unset _CXX_CXXSUFFIX
diff --git a/Build/source/libs/icu/icu-src/source/data/Makefile.in b/Build/source/libs/icu/icu-src/source/data/Makefile.in
index 1140b69a8e3..688bcae3f15 100644
--- a/Build/source/libs/icu/icu-src/source/data/Makefile.in
+++ b/Build/source/libs/icu/icu-src/source/data/Makefile.in
@@ -366,7 +366,7 @@ MSC_SRC_FILES=$(MSC_SOURCE:%=$(MISCSRCDIR)/%)
ifeq ($(ENABLE_SO_VERSION_DATA),1)
ifeq ($(PKGDATA_MODE),dll)
SO_VERSION_DATA = $(OUTTMPDIR)/icudata.res
-$(SO_VERSION_DATA) : $(MISCSRCDIR)/icudata.rc
+$(SO_VERSION_DATA) : $(MISCSRCDIR)/icudata.rc | build-dir
ifeq ($(MSYS_RC_MODE),1)
rc.exe -i$(srcdir)/../common -i$(top_builddir)/common -fo$@ $(CPPFLAGS) $<
else
diff --git a/Build/source/libs/icu/icu-src/source/data/build.xml b/Build/source/libs/icu/icu-src/source/data/build.xml
index efe0d3ce22f..20f7b5be2de 100644
--- a/Build/source/libs/icu/icu-src/source/data/build.xml
+++ b/Build/source/libs/icu/icu-src/source/data/build.xml
@@ -59,7 +59,7 @@
</taskdef>
</target>
<!-- target for generating ICU data -->
- <target name="all" depends="locales, collation, rbnf, supplementalData, metadata, metaZones, windowsZones, likelySubtags, plurals, numberingSystems, translit, brkitr, keyTypeData, genderList, dayPeriods" />
+ <target name="all" depends="locales, collation, rbnf, supplementalData, metadata, metaZones, windowsZones, likelySubtags, plurals, pluralRanges, numberingSystems, translit, brkitr, keyTypeData, genderList, dayPeriods" />
<!-- parallel target -->
<target name="pall" depends="init">
<parallel threadsPerProcessor ="1">
@@ -258,6 +258,18 @@
</run>
</cldr-build>
</target>
+ <target name="pluralRanges" depends="init,setup" description="builds pluralRanges.txt from pluralRanges.xml">
+ <cldr-build toolName="org.unicode.cldr.icu.NewLdml2IcuConverter" destFile="pluralRanges.txt" noArgs="true">
+ <!-- launch the tool and generate the data after reading the config file -->
+ <run>
+ <args>
+ <arg name="-s" value="${env.CLDR_DIR}/common/supplemental" />
+ <arg name="-d" value="${env.ICU4C_DIR}/source/data/misc"/>
+ <arg name="-t" value="pluralRanges"/>
+ </args>
+ </run>
+ </cldr-build>
+ </target>
<target name="numberingSystems" depends="init,setup" description="builds numberingSystems.txt from numberingSystems.xml">
<cldr-build toolName="org.unicode.cldr.icu.NewLdml2IcuConverter" destFile="numberingSystems.txt" noArgs="true">
<!-- launch the tool and generate the data after reading the config file -->
@@ -414,6 +426,9 @@
<fileset id="plurals" dir="${env.ICU4C_DIR}/source/data/misc">
<include name="plurals.txt" />
</fileset>
+ <fileset id="pluralRanges" dir="${env.ICU4C_DIR}/source/data/misc">
+ <include name="pluralRanges.txt" />
+ </fileset>
<fileset id="numberingSystems" dir="${env.ICU4C_DIR}/source/data/misc">
<include name="numberingSystems.txt" />
</fileset>
diff --git a/Build/source/libs/icu/icu-src/source/data/cldr-icu-readme.txt b/Build/source/libs/icu/icu-src/source/data/cldr-icu-readme.txt
index 2f5ea6e9b9f..717d11962e7 100644
--- a/Build/source/libs/icu/icu-src/source/data/cldr-icu-readme.txt
+++ b/Build/source/libs/icu/icu-src/source/data/cldr-icu-readme.txt
@@ -9,9 +9,6 @@
# - CLDR (the source of most of the data, and some Java tools)
# - ICU4J (used only for checking the converted data)
# - ICU4C (the destination for the new data, and the source for some of it)
-# (Either check out ICU4C from Subversion, or download the additional
-# icu4c-*-data.zip file so that the icu/source/data/ directory is fully
-# populated.)
#
# For an official CLDR data integration into ICU, these should be clean, freshly
# checked-out. For released CLDR sources, an alternative to checking out sources
@@ -44,13 +41,16 @@
#
# IP address whitelisting
#
-# Parts of the build process (notably building the new ICU data filescin step 4)
+# Parts of the build process (notably building the new ICU data files in step 4)
# require http: access to files in the CLDR repository; for example, processing
# the files in icu4c/source/data/xml/ may require access to
# http://www.unicode.org/repos/cldr/trunk/common/dtd/ldml.dtd
#
-# The IP address of the system requesting such access be whitelisted with Unicode,
-# otherwise there may be timeout failures; contact Rick McGowan.
+# Unless you cache the dtds locally by e.g. setting -DCLDR_DTD_CACHE=/tmp, the
+# builds will repeatedly make such requests, which will likely result in the
+# Unicode server blocking access and consequent timeout failures. You can
+# prevent such blockage by having the external IP address of your build system
+# whitelisted with Unicode; contact Rick McGowan or Steven Loomis.
#
#----
#
@@ -66,6 +66,8 @@
#
# -Xmx3072m, to give Java more memory; otherwise it may run out
# of heap.
+# -DCLDR_DTD_CACHE=/tmp, to reduce frequent http: access to dtds
+# and consequent blockage by Unicode server.
#
# b) CLDR-related variables
#
@@ -136,7 +138,7 @@
# 1a. Java and ant variables, adjust for your system
export JAVA_HOME=`/usr/libexec/java_home`
-export ANT_OPTS="-Xmx3072m"
+export ANT_OPTS="-Xmx3072m -DCLDR_DTD_CACHE=/tmp"
# 1b. CLDR variables, adjust for your setup; with cygwin it might be e.g.
# CLDR_DIR=`cygpath -wp /build/cldr`
@@ -184,7 +186,7 @@ ant all 2>&1 | tee /tmp/cldr-newData-buildLog.txt
# (if there are no changes, you may not need to proceed further). Make sure the
# list seems reasonable.
-svn status
+git status
# 6. Fix any errors, investigate any warnings. Some warnings are expected,
# including warnings for missing versions in locale names which specify some
@@ -258,11 +260,11 @@ ant check 2>&1 | tee /tmp/icu4j-newData-antCheck.txt
# commit the changes.
cd $ICU4C_DIR/source
-svn status
+git status
# add or remove as necessary
cd $ICU4J_ROOT
-svn status
+git status
# add or remove as necessary
cd $HOME/icu/trunk/
diff --git a/Build/source/libs/icu/icu-src/source/data/icu-config.xml b/Build/source/libs/icu/icu-src/source/data/icu-config.xml
index 3651f8bfa55..7fda0eeade9 100644
--- a/Build/source/libs/icu/icu-src/source/data/icu-config.xml
+++ b/Build/source/libs/icu/icu-src/source/data/icu-config.xml
@@ -387,6 +387,8 @@
<include locales="hu_HU"/>
<include locales="hy"/>
<include locales="hy_AM"/>
+ <include locales="ia"/>
+ <include locales="ia_001"/>
<include locales="id"/>
<include locales="id_ID"/>
<include locales="ig"/>
@@ -410,6 +412,8 @@
<include locales="jgo_CM"/>
<include locales="jmc"/>
<include locales="jmc_TZ"/>
+ <include locales="jv"/>
+ <include locales="jv_ID"/>
<include locales="ka"/>
<include locales="ka_GE"/>
<include locales="kab"/>
@@ -449,6 +453,8 @@
<include locales="ksf_CM"/>
<include locales="ksh"/>
<include locales="ksh_DE"/>
+ <include locales="ku"/>
+ <include locales="ku_TR"/>
<include locales="kw"/>
<include locales="kw_GB"/>
<include locales="ky"/>
@@ -494,6 +500,8 @@
<include locales="mgh_MZ"/>
<include locales="mgo"/>
<include locales="mgo_CM"/>
+ <include locales="mi"/>
+ <include locales="mi_NZ"/>
<include locales="mk"/>
<include locales="mk_MK"/>
<include locales="ml"/>
@@ -611,6 +619,8 @@
<include locales="saq_KE"/>
<include locales="sbp"/>
<include locales="sbp_TZ"/>
+ <include locales="sd"/>
+ <include locales="sd_PK"/>
<include locales="se"/>
<include locales="se_FI"/>
<include locales="se_NO"/>
@@ -696,6 +706,8 @@
<include locales="ti"/>
<include locales="ti_ER"/>
<include locales="ti_ET"/>
+ <include locales="tk"/>
+ <include locales="tk_TM"/>
<include locales="tl"/>
<include locales="tl_PH"/>
<include locales="to"/>
@@ -739,6 +751,8 @@
<include locales="wae_CH"/>
<include locales="wo"/>
<include locales="wo_SN"/>
+ <include locales="xh"/>
+ <include locales="xh_ZA"/>
<include locales="xog"/>
<include locales="xog_UG"/>
<include locales="yav"/>
diff --git a/Build/source/libs/icu/icu-src/source/data/icu4j-readme.txt b/Build/source/libs/icu/icu-src/source/data/icu4j-readme.txt
index bb432f1770d..943d722dedf 100644
--- a/Build/source/libs/icu/icu-src/source/data/icu4j-readme.txt
+++ b/Build/source/libs/icu/icu-src/source/data/icu4j-readme.txt
@@ -24,7 +24,7 @@ In the following,
*NOTE* You should do a full rebuild after any data changes.
-1a. If you didn't download from Subversion, you will also need the "icu4c-*-data.zip" file. Unpack this file and replace the icu/source/data directory's contents with the contents of the data directory from the zip file.
+1a. If you didn't download from GitHub, you will also need the "icu4c-*-data.zip" file. Unpack this file and replace the icu/source/data directory's contents with the contents of the data directory from the zip file.
2. Step 2 depends on whether you are on a Windows or a Unix-type
diff --git a/Build/source/libs/icu/icu-src/source/data/in/coll/ucadata-implicithan.icu b/Build/source/libs/icu/icu-src/source/data/in/coll/ucadata-implicithan.icu
index 7ae798c071a..f31a19dca0e 100644
--- a/Build/source/libs/icu/icu-src/source/data/in/coll/ucadata-implicithan.icu
+++ b/Build/source/libs/icu/icu-src/source/data/in/coll/ucadata-implicithan.icu
Binary files differ
diff --git a/Build/source/libs/icu/icu-src/source/data/in/coll/ucadata-unihan.icu b/Build/source/libs/icu/icu-src/source/data/in/coll/ucadata-unihan.icu
index 645ef2703e9..6d1a8f54152 100644
--- a/Build/source/libs/icu/icu-src/source/data/in/coll/ucadata-unihan.icu
+++ b/Build/source/libs/icu/icu-src/source/data/in/coll/ucadata-unihan.icu
Binary files differ
diff --git a/Build/source/libs/icu/icu-src/source/data/in/icudt61l.dat b/Build/source/libs/icu/icu-src/source/data/in/icudt63l.dat
index a6f39974b15..0fb2d5d89c3 100644
--- a/Build/source/libs/icu/icu-src/source/data/in/icudt61l.dat
+++ b/Build/source/libs/icu/icu-src/source/data/in/icudt63l.dat
Binary files differ
diff --git a/Build/source/libs/icu/icu-src/source/data/in/nfc.nrm b/Build/source/libs/icu/icu-src/source/data/in/nfc.nrm
index bb2e35639ad..6566a2cd902 100644
--- a/Build/source/libs/icu/icu-src/source/data/in/nfc.nrm
+++ b/Build/source/libs/icu/icu-src/source/data/in/nfc.nrm
Binary files differ
diff --git a/Build/source/libs/icu/icu-src/source/data/in/nfkc.nrm b/Build/source/libs/icu/icu-src/source/data/in/nfkc.nrm
index 23411447a90..4d1fe7d75ca 100644
--- a/Build/source/libs/icu/icu-src/source/data/in/nfkc.nrm
+++ b/Build/source/libs/icu/icu-src/source/data/in/nfkc.nrm
Binary files differ
diff --git a/Build/source/libs/icu/icu-src/source/data/in/nfkc_cf.nrm b/Build/source/libs/icu/icu-src/source/data/in/nfkc_cf.nrm
index 275fcaa4f9b..e2180cfdd9f 100644
--- a/Build/source/libs/icu/icu-src/source/data/in/nfkc_cf.nrm
+++ b/Build/source/libs/icu/icu-src/source/data/in/nfkc_cf.nrm
Binary files differ
diff --git a/Build/source/libs/icu/icu-src/source/data/in/pnames.icu b/Build/source/libs/icu/icu-src/source/data/in/pnames.icu
index 44b0d057e01..ca3998cb146 100644
--- a/Build/source/libs/icu/icu-src/source/data/in/pnames.icu
+++ b/Build/source/libs/icu/icu-src/source/data/in/pnames.icu
Binary files differ
diff --git a/Build/source/libs/icu/icu-src/source/data/in/ubidi.icu b/Build/source/libs/icu/icu-src/source/data/in/ubidi.icu
index 4ee237d79d8..86fa21f7dd5 100644
--- a/Build/source/libs/icu/icu-src/source/data/in/ubidi.icu
+++ b/Build/source/libs/icu/icu-src/source/data/in/ubidi.icu
Binary files differ
diff --git a/Build/source/libs/icu/icu-src/source/data/in/ucase.icu b/Build/source/libs/icu/icu-src/source/data/in/ucase.icu
index f678a6ccfb4..136f0a620df 100644
--- a/Build/source/libs/icu/icu-src/source/data/in/ucase.icu
+++ b/Build/source/libs/icu/icu-src/source/data/in/ucase.icu
Binary files differ
diff --git a/Build/source/libs/icu/icu-src/source/data/in/unames.icu b/Build/source/libs/icu/icu-src/source/data/in/unames.icu
index 18daf7961c8..ce549a4829a 100644
--- a/Build/source/libs/icu/icu-src/source/data/in/unames.icu
+++ b/Build/source/libs/icu/icu-src/source/data/in/unames.icu
Binary files differ
diff --git a/Build/source/libs/icu/icu-src/source/data/in/uprops.icu b/Build/source/libs/icu/icu-src/source/data/in/uprops.icu
index fda4cb3f823..2bc695d76bb 100644
--- a/Build/source/libs/icu/icu-src/source/data/in/uprops.icu
+++ b/Build/source/libs/icu/icu-src/source/data/in/uprops.icu
Binary files differ
diff --git a/Build/source/libs/icu/icu-src/source/data/in/uts46.nrm b/Build/source/libs/icu/icu-src/source/data/in/uts46.nrm
index 562a67b27a4..4bae51640a7 100644
--- a/Build/source/libs/icu/icu-src/source/data/in/uts46.nrm
+++ b/Build/source/libs/icu/icu-src/source/data/in/uts46.nrm
Binary files differ
diff --git a/Build/source/libs/icu/icu-src/source/data/makedata.mak b/Build/source/libs/icu/icu-src/source/data/makedata.mak
index 1b6f7ea6035..6a54d0acc8e 100644
--- a/Build/source/libs/icu/icu-src/source/data/makedata.mak
+++ b/Build/source/libs/icu/icu-src/source/data/makedata.mak
@@ -12,14 +12,14 @@
##############################################################################
# Keep the following in sync with the version - see common/unicode/uvernum.h
-U_ICUDATA_NAME=icudt61
+U_ICUDATA_NAME=icudt63
##############################################################################
!IF "$(UWP)" == "UWP"
# Optionally change the name of the data file for the UWP version.
-U_ICUDATA_NAME=icudt61
+U_ICUDATA_NAME=icudt63
!ENDIF
U_ICUDATA_ENDIAN_SUFFIX=l
-UNICODE_VERSION=10.0
+UNICODE_VERSION=11.0
ICU_LIB_TARGET=$(DLL_OUTPUT)\$(U_ICUDATA_NAME).dll
# ICUMAKE
@@ -33,12 +33,20 @@ ICU_LIB_TARGET=$(DLL_OUTPUT)\$(U_ICUDATA_NAME).dll
!ENDIF
!MESSAGE ICU data make path is $(ICUMAKE)
+!IF [py -3]!=0
+!MESSAGE Information: Unable to find Python 3. ICU versions 64 and later will require Python 3 to build.
+!MESSAGE Information: See ICU-10923 for more information: https://unicode-org.atlassian.net/browse/ICU-10923
+!ELSE
+!MESSAGE Information: Found Python 3. You are all set for ICU 64, which will require Python 3 to build.
+!MESSAGE Information: For more info on Python 3 requirement, see: https://unicode-org.atlassian.net/browse/ICU-10923
+!ENDIF
+
# Suffixes for data files
.SUFFIXES : .nrm .icu .ucm .cnv .dll .dat .res .txt .c
ICUOUT=$(ICUMAKE)\out
-# the prefix "icudt61_" for use in filenames
+# the prefix "icudt62_" for use in filenames
ICUPKG=$(U_ICUDATA_NAME)$(U_ICUDATA_ENDIAN_SUFFIX)
# need to nuke \\ for .NET...
diff --git a/Build/source/libs/icu/icu-src/source/data/unidata/CaseFolding.txt b/Build/source/libs/icu/icu-src/source/data/unidata/CaseFolding.txt
index efdf18e441c..cce350f49c9 100644
--- a/Build/source/libs/icu/icu-src/source/data/unidata/CaseFolding.txt
+++ b/Build/source/libs/icu/icu-src/source/data/unidata/CaseFolding.txt
@@ -1,6 +1,6 @@
-# CaseFolding-10.0.0.txt
-# Date: 2017-04-14, 05:40:18 GMT
-# © 2017 Unicode®, Inc.
+# CaseFolding-11.0.0.txt
+# Date: 2018-01-31, 08:20:09 GMT
+# © 2018 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# For terms of use, see http://www.unicode.org/terms_of_use.html
#
@@ -603,6 +603,52 @@
1C86; C; 044A; # CYRILLIC SMALL LETTER TALL HARD SIGN
1C87; C; 0463; # CYRILLIC SMALL LETTER TALL YAT
1C88; C; A64B; # CYRILLIC SMALL LETTER UNBLENDED UK
+1C90; C; 10D0; # GEORGIAN MTAVRULI CAPITAL LETTER AN
+1C91; C; 10D1; # GEORGIAN MTAVRULI CAPITAL LETTER BAN
+1C92; C; 10D2; # GEORGIAN MTAVRULI CAPITAL LETTER GAN
+1C93; C; 10D3; # GEORGIAN MTAVRULI CAPITAL LETTER DON
+1C94; C; 10D4; # GEORGIAN MTAVRULI CAPITAL LETTER EN
+1C95; C; 10D5; # GEORGIAN MTAVRULI CAPITAL LETTER VIN
+1C96; C; 10D6; # GEORGIAN MTAVRULI CAPITAL LETTER ZEN
+1C97; C; 10D7; # GEORGIAN MTAVRULI CAPITAL LETTER TAN
+1C98; C; 10D8; # GEORGIAN MTAVRULI CAPITAL LETTER IN
+1C99; C; 10D9; # GEORGIAN MTAVRULI CAPITAL LETTER KAN
+1C9A; C; 10DA; # GEORGIAN MTAVRULI CAPITAL LETTER LAS
+1C9B; C; 10DB; # GEORGIAN MTAVRULI CAPITAL LETTER MAN
+1C9C; C; 10DC; # GEORGIAN MTAVRULI CAPITAL LETTER NAR
+1C9D; C; 10DD; # GEORGIAN MTAVRULI CAPITAL LETTER ON
+1C9E; C; 10DE; # GEORGIAN MTAVRULI CAPITAL LETTER PAR
+1C9F; C; 10DF; # GEORGIAN MTAVRULI CAPITAL LETTER ZHAR
+1CA0; C; 10E0; # GEORGIAN MTAVRULI CAPITAL LETTER RAE
+1CA1; C; 10E1; # GEORGIAN MTAVRULI CAPITAL LETTER SAN
+1CA2; C; 10E2; # GEORGIAN MTAVRULI CAPITAL LETTER TAR
+1CA3; C; 10E3; # GEORGIAN MTAVRULI CAPITAL LETTER UN
+1CA4; C; 10E4; # GEORGIAN MTAVRULI CAPITAL LETTER PHAR
+1CA5; C; 10E5; # GEORGIAN MTAVRULI CAPITAL LETTER KHAR
+1CA6; C; 10E6; # GEORGIAN MTAVRULI CAPITAL LETTER GHAN
+1CA7; C; 10E7; # GEORGIAN MTAVRULI CAPITAL LETTER QAR
+1CA8; C; 10E8; # GEORGIAN MTAVRULI CAPITAL LETTER SHIN
+1CA9; C; 10E9; # GEORGIAN MTAVRULI CAPITAL LETTER CHIN
+1CAA; C; 10EA; # GEORGIAN MTAVRULI CAPITAL LETTER CAN
+1CAB; C; 10EB; # GEORGIAN MTAVRULI CAPITAL LETTER JIL
+1CAC; C; 10EC; # GEORGIAN MTAVRULI CAPITAL LETTER CIL
+1CAD; C; 10ED; # GEORGIAN MTAVRULI CAPITAL LETTER CHAR
+1CAE; C; 10EE; # GEORGIAN MTAVRULI CAPITAL LETTER XAN
+1CAF; C; 10EF; # GEORGIAN MTAVRULI CAPITAL LETTER JHAN
+1CB0; C; 10F0; # GEORGIAN MTAVRULI CAPITAL LETTER HAE
+1CB1; C; 10F1; # GEORGIAN MTAVRULI CAPITAL LETTER HE
+1CB2; C; 10F2; # GEORGIAN MTAVRULI CAPITAL LETTER HIE
+1CB3; C; 10F3; # GEORGIAN MTAVRULI CAPITAL LETTER WE
+1CB4; C; 10F4; # GEORGIAN MTAVRULI CAPITAL LETTER HAR
+1CB5; C; 10F5; # GEORGIAN MTAVRULI CAPITAL LETTER HOE
+1CB6; C; 10F6; # GEORGIAN MTAVRULI CAPITAL LETTER FI
+1CB7; C; 10F7; # GEORGIAN MTAVRULI CAPITAL LETTER YN
+1CB8; C; 10F8; # GEORGIAN MTAVRULI CAPITAL LETTER ELIFI
+1CB9; C; 10F9; # GEORGIAN MTAVRULI CAPITAL LETTER TURNED GAN
+1CBA; C; 10FA; # GEORGIAN MTAVRULI CAPITAL LETTER AIN
+1CBD; C; 10FD; # GEORGIAN MTAVRULI CAPITAL LETTER AEN
+1CBE; C; 10FE; # GEORGIAN MTAVRULI CAPITAL LETTER HARD SIGN
+1CBF; C; 10FF; # GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
1E00; C; 1E01; # LATIN CAPITAL LETTER A WITH RING BELOW
1E02; C; 1E03; # LATIN CAPITAL LETTER B WITH DOT ABOVE
1E04; C; 1E05; # LATIN CAPITAL LETTER B WITH DOT BELOW
@@ -1180,6 +1226,7 @@ A7B2; C; 029D; # LATIN CAPITAL LETTER J WITH CROSSED-TAIL
A7B3; C; AB53; # LATIN CAPITAL LETTER CHI
A7B4; C; A7B5; # LATIN CAPITAL LETTER BETA
A7B6; C; A7B7; # LATIN CAPITAL LETTER OMEGA
+A7B8; C; A7B9; # LATIN CAPITAL LETTER U WITH STROKE
AB70; C; 13A0; # CHEROKEE SMALL LETTER A
AB71; C; 13A1; # CHEROKEE SMALL LETTER E
AB72; C; 13A2; # CHEROKEE SMALL LETTER I
@@ -1457,6 +1504,38 @@ FF3A; C; FF5A; # FULLWIDTH LATIN CAPITAL LETTER Z
118BD; C; 118DD; # WARANG CITI CAPITAL LETTER SSUU
118BE; C; 118DE; # WARANG CITI CAPITAL LETTER SII
118BF; C; 118DF; # WARANG CITI CAPITAL LETTER VIYO
+16E40; C; 16E60; # MEDEFAIDRIN CAPITAL LETTER M
+16E41; C; 16E61; # MEDEFAIDRIN CAPITAL LETTER S
+16E42; C; 16E62; # MEDEFAIDRIN CAPITAL LETTER V
+16E43; C; 16E63; # MEDEFAIDRIN CAPITAL LETTER W
+16E44; C; 16E64; # MEDEFAIDRIN CAPITAL LETTER ATIU
+16E45; C; 16E65; # MEDEFAIDRIN CAPITAL LETTER Z
+16E46; C; 16E66; # MEDEFAIDRIN CAPITAL LETTER KP
+16E47; C; 16E67; # MEDEFAIDRIN CAPITAL LETTER P
+16E48; C; 16E68; # MEDEFAIDRIN CAPITAL LETTER T
+16E49; C; 16E69; # MEDEFAIDRIN CAPITAL LETTER G
+16E4A; C; 16E6A; # MEDEFAIDRIN CAPITAL LETTER F
+16E4B; C; 16E6B; # MEDEFAIDRIN CAPITAL LETTER I
+16E4C; C; 16E6C; # MEDEFAIDRIN CAPITAL LETTER K
+16E4D; C; 16E6D; # MEDEFAIDRIN CAPITAL LETTER A
+16E4E; C; 16E6E; # MEDEFAIDRIN CAPITAL LETTER J
+16E4F; C; 16E6F; # MEDEFAIDRIN CAPITAL LETTER E
+16E50; C; 16E70; # MEDEFAIDRIN CAPITAL LETTER B
+16E51; C; 16E71; # MEDEFAIDRIN CAPITAL LETTER C
+16E52; C; 16E72; # MEDEFAIDRIN CAPITAL LETTER U
+16E53; C; 16E73; # MEDEFAIDRIN CAPITAL LETTER YU
+16E54; C; 16E74; # MEDEFAIDRIN CAPITAL LETTER L
+16E55; C; 16E75; # MEDEFAIDRIN CAPITAL LETTER Q
+16E56; C; 16E76; # MEDEFAIDRIN CAPITAL LETTER HP
+16E57; C; 16E77; # MEDEFAIDRIN CAPITAL LETTER NY
+16E58; C; 16E78; # MEDEFAIDRIN CAPITAL LETTER X
+16E59; C; 16E79; # MEDEFAIDRIN CAPITAL LETTER D
+16E5A; C; 16E7A; # MEDEFAIDRIN CAPITAL LETTER OE
+16E5B; C; 16E7B; # MEDEFAIDRIN CAPITAL LETTER N
+16E5C; C; 16E7C; # MEDEFAIDRIN CAPITAL LETTER R
+16E5D; C; 16E7D; # MEDEFAIDRIN CAPITAL LETTER O
+16E5E; C; 16E7E; # MEDEFAIDRIN CAPITAL LETTER AI
+16E5F; C; 16E7F; # MEDEFAIDRIN CAPITAL LETTER Y
1E900; C; 1E922; # ADLAM CAPITAL LETTER ALIF
1E901; C; 1E923; # ADLAM CAPITAL LETTER DAALI
1E902; C; 1E924; # ADLAM CAPITAL LETTER LAAM
diff --git a/Build/source/libs/icu/icu-src/source/data/unidata/DerivedCoreProperties.txt b/Build/source/libs/icu/icu-src/source/data/unidata/DerivedCoreProperties.txt
index 895f8e8086d..4048cc2b842 100644
--- a/Build/source/libs/icu/icu-src/source/data/unidata/DerivedCoreProperties.txt
+++ b/Build/source/libs/icu/icu-src/source/data/unidata/DerivedCoreProperties.txt
@@ -1,6 +1,6 @@
-# DerivedCoreProperties-10.0.0.txt
-# Date: 2017-03-19, 00:05:15 GMT
-# © 2017 Unicode®, Inc.
+# DerivedCoreProperties-11.0.0.txt
+# Date: 2018-02-21, 05:34:02 GMT
+# © 2018 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# For terms of use, see http://www.unicode.org/terms_of_use.html
#
@@ -295,14 +295,14 @@ FFE9..FFEC ; Math
048A..052F ; Alphabetic
0531..0556 ; Alphabetic
0559 ; Alphabetic
-0561..0587 ; Alphabetic
+0560..0588 ; Alphabetic
05B0..05BD ; Alphabetic
05BF ; Alphabetic
05C1..05C2 ; Alphabetic
05C4..05C5 ; Alphabetic
05C7 ; Alphabetic
05D0..05EA ; Alphabetic
-05F0..05F2 ; Alphabetic
+05EF..05F2 ; Alphabetic
0610..061A ; Alphabetic
0620..063F ; Alphabetic
0640 ; Alphabetic
@@ -590,7 +590,8 @@ FFE9..FFEC ; Math
10CD ; Alphabetic
10D0..10FA ; Alphabetic
10FC ; Alphabetic
-10FD..1248 ; Alphabetic
+10FD..10FF ; Alphabetic
+1100..1248 ; Alphabetic
124A..124D ; Alphabetic
1250..1256 ; Alphabetic
1258 ; Alphabetic
@@ -636,7 +637,7 @@ FFE9..FFEC ; Math
17DC ; Alphabetic
1820..1842 ; Alphabetic
1843 ; Alphabetic
-1844..1877 ; Alphabetic
+1844..1878 ; Alphabetic
1880..1884 ; Alphabetic
1885..1886 ; Alphabetic
1887..18A8 ; Alphabetic
@@ -706,6 +707,8 @@ FFE9..FFEC ; Math
1C5A..1C77 ; Alphabetic
1C78..1C7D ; Alphabetic
1C80..1C88 ; Alphabetic
+1C90..1CBA ; Alphabetic
+1CBD..1CBF ; Alphabetic
1CE9..1CEC ; Alphabetic
1CEE..1CF1 ; Alphabetic
1CF2..1CF3 ; Alphabetic
@@ -795,12 +798,12 @@ FFE9..FFEC ; Math
30A1..30FA ; Alphabetic
30FC..30FE ; Alphabetic
30FF ; Alphabetic
-3105..312E ; Alphabetic
+3105..312F ; Alphabetic
3131..318E ; Alphabetic
31A0..31BA ; Alphabetic
31F0..31FF ; Alphabetic
3400..4DB5 ; Alphabetic
-4E00..9FEA ; Alphabetic
+4E00..9FEF ; Alphabetic
A000..A014 ; Alphabetic
A015 ; Alphabetic
A016..A48C ; Alphabetic
@@ -826,8 +829,7 @@ A771..A787 ; Alphabetic
A788 ; Alphabetic
A78B..A78E ; Alphabetic
A78F ; Alphabetic
-A790..A7AE ; Alphabetic
-A7B0..A7B7 ; Alphabetic
+A790..A7B9 ; Alphabetic
A7F7 ; Alphabetic
A7F8..A7F9 ; Alphabetic
A7FA ; Alphabetic
@@ -845,7 +847,7 @@ A8B4..A8C3 ; Alphabetic
A8C5 ; Alphabetic
A8F2..A8F7 ; Alphabetic
A8FB ; Alphabetic
-A8FD ; Alphabetic
+A8FD..A8FE ; Alphabetic
A90A..A925 ; Alphabetic
A926..A92A ; Alphabetic
A930..A946 ; Alphabetic
@@ -997,7 +999,7 @@ FFDA..FFDC ; Alphabetic
10A0C..10A0F ; Alphabetic
10A10..10A13 ; Alphabetic
10A15..10A17 ; Alphabetic
-10A19..10A33 ; Alphabetic
+10A19..10A35 ; Alphabetic
10A60..10A7C ; Alphabetic
10A80..10A9C ; Alphabetic
10AC0..10AC7 ; Alphabetic
@@ -1009,6 +1011,11 @@ FFDA..FFDC ; Alphabetic
10C00..10C48 ; Alphabetic
10C80..10CB2 ; Alphabetic
10CC0..10CF2 ; Alphabetic
+10D00..10D23 ; Alphabetic
+10D24..10D27 ; Alphabetic
+10F00..10F1C ; Alphabetic
+10F27 ; Alphabetic
+10F30..10F45 ; Alphabetic
11000 ; Alphabetic
11001 ; Alphabetic
11002 ; Alphabetic
@@ -1025,6 +1032,8 @@ FFDA..FFDC ; Alphabetic
11127..1112B ; Alphabetic
1112C ; Alphabetic
1112D..11132 ; Alphabetic
+11144 ; Alphabetic
+11145..11146 ; Alphabetic
11150..11172 ; Alphabetic
11176 ; Alphabetic
11180..11181 ; Alphabetic
@@ -1110,18 +1119,20 @@ FFDA..FFDC ; Alphabetic
116AD ; Alphabetic
116AE..116AF ; Alphabetic
116B0..116B5 ; Alphabetic
-11700..11719 ; Alphabetic
+11700..1171A ; Alphabetic
1171D..1171F ; Alphabetic
11720..11721 ; Alphabetic
11722..11725 ; Alphabetic
11726 ; Alphabetic
11727..1172A ; Alphabetic
+11800..1182B ; Alphabetic
+1182C..1182E ; Alphabetic
+1182F..11837 ; Alphabetic
+11838 ; Alphabetic
118A0..118DF ; Alphabetic
118FF ; Alphabetic
11A00 ; Alphabetic
-11A01..11A06 ; Alphabetic
-11A07..11A08 ; Alphabetic
-11A09..11A0A ; Alphabetic
+11A01..11A0A ; Alphabetic
11A0B..11A32 ; Alphabetic
11A35..11A38 ; Alphabetic
11A39 ; Alphabetic
@@ -1135,6 +1146,7 @@ FFDA..FFDC ; Alphabetic
11A86..11A89 ; Alphabetic
11A8A..11A96 ; Alphabetic
11A97 ; Alphabetic
+11A9D ; Alphabetic
11AC0..11AF8 ; Alphabetic
11C00..11C08 ; Alphabetic
11C0A..11C2E ; Alphabetic
@@ -1161,6 +1173,18 @@ FFDA..FFDC ; Alphabetic
11D43 ; Alphabetic
11D46 ; Alphabetic
11D47 ; Alphabetic
+11D60..11D65 ; Alphabetic
+11D67..11D68 ; Alphabetic
+11D6A..11D89 ; Alphabetic
+11D8A..11D8E ; Alphabetic
+11D90..11D91 ; Alphabetic
+11D93..11D94 ; Alphabetic
+11D95 ; Alphabetic
+11D96 ; Alphabetic
+11D98 ; Alphabetic
+11EE0..11EF2 ; Alphabetic
+11EF3..11EF4 ; Alphabetic
+11EF5..11EF6 ; Alphabetic
12000..12399 ; Alphabetic
12400..1246E ; Alphabetic
12480..12543 ; Alphabetic
@@ -1174,12 +1198,13 @@ FFDA..FFDC ; Alphabetic
16B40..16B43 ; Alphabetic
16B63..16B77 ; Alphabetic
16B7D..16B8F ; Alphabetic
+16E40..16E7F ; Alphabetic
16F00..16F44 ; Alphabetic
16F50 ; Alphabetic
16F51..16F7E ; Alphabetic
16F93..16F9F ; Alphabetic
16FE0..16FE1 ; Alphabetic
-17000..187EC ; Alphabetic
+17000..187F1 ; Alphabetic
18800..18AF2 ; Alphabetic
1B000..1B11E ; Alphabetic
1B170..1B2FB ; Alphabetic
@@ -1269,7 +1294,7 @@ FFDA..FFDC ; Alphabetic
2CEB0..2EBE0 ; Alphabetic
2F800..2FA1D ; Alphabetic
-# Total code points: 126629
+# Total code points: 126989
# ================================================
@@ -1552,7 +1577,9 @@ FFDA..FFDC ; Alphabetic
052B ; Lowercase
052D ; Lowercase
052F ; Lowercase
-0561..0587 ; Lowercase
+0560..0588 ; Lowercase
+10D0..10FA ; Lowercase
+10FD..10FF ; Lowercase
13F8..13FD ; Lowercase
1C80..1C88 ; Lowercase
1D00..1D2B ; Lowercase
@@ -1885,8 +1912,10 @@ A7A3 ; Lowercase
A7A5 ; Lowercase
A7A7 ; Lowercase
A7A9 ; Lowercase
+A7AF ; Lowercase
A7B5 ; Lowercase
A7B7 ; Lowercase
+A7B9 ; Lowercase
A7F8..A7F9 ; Lowercase
A7FA ; Lowercase
AB30..AB5A ; Lowercase
@@ -1900,6 +1929,7 @@ FF41..FF5A ; Lowercase
104D8..104FB ; Lowercase
10CC0..10CF2 ; Lowercase
118C0..118DF ; Lowercase
+16E60..16E7F ; Lowercase
1D41A..1D433 ; Lowercase
1D44E..1D454 ; Lowercase
1D456..1D467 ; Lowercase
@@ -1930,7 +1960,7 @@ FF41..FF5A ; Lowercase
1D7CB ; Lowercase
1E922..1E943 ; Lowercase
-# Total code points: 2252
+# Total code points: 2334
# ================================================
@@ -2213,6 +2243,8 @@ FF41..FF5A ; Lowercase
10C7 ; Uppercase
10CD ; Uppercase
13A0..13F5 ; Uppercase
+1C90..1CBA ; Uppercase
+1CBD..1CBF ; Uppercase
1E00 ; Uppercase
1E02 ; Uppercase
1E04 ; Uppercase
@@ -2529,11 +2561,13 @@ A7A8 ; Uppercase
A7AA..A7AE ; Uppercase
A7B0..A7B4 ; Uppercase
A7B6 ; Uppercase
+A7B8 ; Uppercase
FF21..FF3A ; Uppercase
10400..10427 ; Uppercase
104B0..104D3 ; Uppercase
10C80..10CB2 ; Uppercase
118A0..118BF ; Uppercase
+16E40..16E5F ; Uppercase
1D400..1D419 ; Uppercase
1D434..1D44D ; Uppercase
1D468..1D481 ; Uppercase
@@ -2570,7 +2604,7 @@ FF21..FF3A ; Uppercase
1F150..1F169 ; Uppercase
1F170..1F189 ; Uppercase
-# Total code points: 1822
+# Total code points: 1901
# ================================================
@@ -2606,13 +2640,17 @@ FF21..FF3A ; Uppercase
03F7..0481 ; Cased
048A..052F ; Cased
0531..0556 ; Cased
-0561..0587 ; Cased
+0560..0588 ; Cased
10A0..10C5 ; Cased
10C7 ; Cased
10CD ; Cased
+10D0..10FA ; Cased
+10FD..10FF ; Cased
13A0..13F5 ; Cased
13F8..13FD ; Cased
1C80..1C88 ; Cased
+1C90..1CBA ; Cased
+1CBD..1CBF ; Cased
1D00..1D2B ; Cased
1D2C..1D6A ; Cased
1D6B..1D77 ; Cased
@@ -2675,8 +2713,7 @@ A722..A76F ; Cased
A770 ; Cased
A771..A787 ; Cased
A78B..A78E ; Cased
-A790..A7AE ; Cased
-A7B0..A7B7 ; Cased
+A790..A7B9 ; Cased
A7F8..A7F9 ; Cased
A7FA ; Cased
AB30..AB5A ; Cased
@@ -2693,6 +2730,7 @@ FF41..FF5A ; Cased
10C80..10CB2 ; Cased
10CC0..10CF2 ; Cased
118A0..118DF ; Cased
+16E40..16E7F ; Cased
1D400..1D454 ; Cased
1D456..1D49C ; Cased
1D49E..1D49F ; Cased
@@ -2728,7 +2766,7 @@ FF41..FF5A ; Cased
1F150..1F169 ; Cased
1F170..1F189 ; Cased
-# Total code points: 4105
+# Total code points: 4266
# ================================================
@@ -2793,6 +2831,7 @@ FF41..FF5A ; Cased
07EB..07F3 ; Case_Ignorable
07F4..07F5 ; Case_Ignorable
07FA ; Case_Ignorable
+07FD ; Case_Ignorable
0816..0819 ; Case_Ignorable
081A ; Case_Ignorable
081B..0823 ; Case_Ignorable
@@ -2801,7 +2840,7 @@ FF41..FF5A ; Cased
0828 ; Case_Ignorable
0829..082D ; Case_Ignorable
0859..085B ; Case_Ignorable
-08D4..08E1 ; Case_Ignorable
+08D3..08E1 ; Case_Ignorable
08E2 ; Case_Ignorable
08E3..0902 ; Case_Ignorable
093A ; Case_Ignorable
@@ -2816,6 +2855,7 @@ FF41..FF5A ; Cased
09C1..09C4 ; Case_Ignorable
09CD ; Case_Ignorable
09E2..09E3 ; Case_Ignorable
+09FE ; Case_Ignorable
0A01..0A02 ; Case_Ignorable
0A3C ; Case_Ignorable
0A41..0A42 ; Case_Ignorable
@@ -2842,6 +2882,7 @@ FF41..FF5A ; Cased
0BC0 ; Case_Ignorable
0BCD ; Case_Ignorable
0C00 ; Case_Ignorable
+0C04 ; Case_Ignorable
0C3E..0C40 ; Case_Ignorable
0C46..0C48 ; Case_Ignorable
0C4A..0C4D ; Case_Ignorable
@@ -3011,6 +3052,7 @@ A80B ; Case_Ignorable
A825..A826 ; Case_Ignorable
A8C4..A8C5 ; Case_Ignorable
A8E0..A8F1 ; Case_Ignorable
+A8FF ; Case_Ignorable
A926..A92D ; Case_Ignorable
A947..A951 ; Case_Ignorable
A980..A982 ; Case_Ignorable
@@ -3067,19 +3109,22 @@ FFF9..FFFB ; Case_Ignorable
10A38..10A3A ; Case_Ignorable
10A3F ; Case_Ignorable
10AE5..10AE6 ; Case_Ignorable
+10D24..10D27 ; Case_Ignorable
+10F46..10F50 ; Case_Ignorable
11001 ; Case_Ignorable
11038..11046 ; Case_Ignorable
1107F..11081 ; Case_Ignorable
110B3..110B6 ; Case_Ignorable
110B9..110BA ; Case_Ignorable
110BD ; Case_Ignorable
+110CD ; Case_Ignorable
11100..11102 ; Case_Ignorable
11127..1112B ; Case_Ignorable
1112D..11134 ; Case_Ignorable
11173 ; Case_Ignorable
11180..11181 ; Case_Ignorable
111B6..111BE ; Case_Ignorable
-111CA..111CC ; Case_Ignorable
+111C9..111CC ; Case_Ignorable
1122F..11231 ; Case_Ignorable
11234 ; Case_Ignorable
11236..11237 ; Case_Ignorable
@@ -3087,13 +3132,14 @@ FFF9..FFFB ; Case_Ignorable
112DF ; Case_Ignorable
112E3..112EA ; Case_Ignorable
11300..11301 ; Case_Ignorable
-1133C ; Case_Ignorable
+1133B..1133C ; Case_Ignorable
11340 ; Case_Ignorable
11366..1136C ; Case_Ignorable
11370..11374 ; Case_Ignorable
11438..1143F ; Case_Ignorable
11442..11444 ; Case_Ignorable
11446 ; Case_Ignorable
+1145E ; Case_Ignorable
114B3..114B8 ; Case_Ignorable
114BA ; Case_Ignorable
114BF..114C0 ; Case_Ignorable
@@ -3112,8 +3158,9 @@ FFF9..FFFB ; Case_Ignorable
1171D..1171F ; Case_Ignorable
11722..11725 ; Case_Ignorable
11727..1172B ; Case_Ignorable
-11A01..11A06 ; Case_Ignorable
-11A09..11A0A ; Case_Ignorable
+1182F..11837 ; Case_Ignorable
+11839..1183A ; Case_Ignorable
+11A01..11A0A ; Case_Ignorable
11A33..11A38 ; Case_Ignorable
11A3B..11A3E ; Case_Ignorable
11A47 ; Case_Ignorable
@@ -3133,6 +3180,10 @@ FFF9..FFFB ; Case_Ignorable
11D3C..11D3D ; Case_Ignorable
11D3F..11D45 ; Case_Ignorable
11D47 ; Case_Ignorable
+11D90..11D91 ; Case_Ignorable
+11D95 ; Case_Ignorable
+11D97 ; Case_Ignorable
+11EF3..11EF4 ; Case_Ignorable
16AF0..16AF4 ; Case_Ignorable
16B30..16B36 ; Case_Ignorable
16B40..16B43 ; Case_Ignorable
@@ -3165,7 +3216,7 @@ E0001 ; Case_Ignorable
E0020..E007F ; Case_Ignorable
E0100..E01EF ; Case_Ignorable
-# Total code points: 2314
+# Total code points: 2357
# ================================================
@@ -3449,6 +3500,8 @@ E0100..E01EF ; Case_Ignorable
10C7 ; Changes_When_Lowercased
10CD ; Changes_When_Lowercased
13A0..13F5 ; Changes_When_Lowercased
+1C90..1CBA ; Changes_When_Lowercased
+1CBD..1CBF ; Changes_When_Lowercased
1E00 ; Changes_When_Lowercased
1E02 ; Changes_When_Lowercased
1E04 ; Changes_When_Lowercased
@@ -3758,14 +3811,16 @@ A7A8 ; Changes_When_Lowercased
A7AA..A7AE ; Changes_When_Lowercased
A7B0..A7B4 ; Changes_When_Lowercased
A7B6 ; Changes_When_Lowercased
+A7B8 ; Changes_When_Lowercased
FF21..FF3A ; Changes_When_Lowercased
10400..10427 ; Changes_When_Lowercased
104B0..104D3 ; Changes_When_Lowercased
10C80..10CB2 ; Changes_When_Lowercased
118A0..118BF ; Changes_When_Lowercased
+16E40..16E5F ; Changes_When_Lowercased
1E900..1E921 ; Changes_When_Lowercased
-# Total code points: 1304
+# Total code points: 1383
# ================================================
@@ -4059,6 +4114,8 @@ FF21..FF3A ; Changes_When_Lowercased
052D ; Changes_When_Uppercased
052F ; Changes_When_Uppercased
0561..0587 ; Changes_When_Uppercased
+10D0..10FA ; Changes_When_Uppercased
+10FD..10FF ; Changes_When_Uppercased
13F8..13FD ; Changes_When_Uppercased
1C80..1C88 ; Changes_When_Uppercased
1D79 ; Changes_When_Uppercased
@@ -4371,6 +4428,7 @@ A7A7 ; Changes_When_Uppercased
A7A9 ; Changes_When_Uppercased
A7B5 ; Changes_When_Uppercased
A7B7 ; Changes_When_Uppercased
+A7B9 ; Changes_When_Uppercased
AB53 ; Changes_When_Uppercased
AB70..ABBF ; Changes_When_Uppercased
FB00..FB06 ; Changes_When_Uppercased
@@ -4380,9 +4438,10 @@ FF41..FF5A ; Changes_When_Uppercased
104D8..104FB ; Changes_When_Uppercased
10CC0..10CF2 ; Changes_When_Uppercased
118C0..118DF ; Changes_When_Uppercased
+16E60..16E7F ; Changes_When_Uppercased
1E922..1E943 ; Changes_When_Uppercased
-# Total code points: 1396
+# Total code points: 1475
# ================================================
@@ -4989,6 +5048,7 @@ A7A7 ; Changes_When_Titlecased
A7A9 ; Changes_When_Titlecased
A7B5 ; Changes_When_Titlecased
A7B7 ; Changes_When_Titlecased
+A7B9 ; Changes_When_Titlecased
AB53 ; Changes_When_Titlecased
AB70..ABBF ; Changes_When_Titlecased
FB00..FB06 ; Changes_When_Titlecased
@@ -4998,9 +5058,10 @@ FF41..FF5A ; Changes_When_Titlecased
104D8..104FB ; Changes_When_Titlecased
10CC0..10CF2 ; Changes_When_Titlecased
118C0..118DF ; Changes_When_Titlecased
+16E60..16E7F ; Changes_When_Titlecased
1E922..1E943 ; Changes_When_Titlecased
-# Total code points: 1369
+# Total code points: 1402
# ================================================
@@ -5292,6 +5353,8 @@ FF41..FF5A ; Changes_When_Titlecased
10CD ; Changes_When_Casefolded
13F8..13FD ; Changes_When_Casefolded
1C80..1C88 ; Changes_When_Casefolded
+1C90..1CBA ; Changes_When_Casefolded
+1CBD..1CBF ; Changes_When_Casefolded
1E00 ; Changes_When_Casefolded
1E02 ; Changes_When_Casefolded
1E04 ; Changes_When_Casefolded
@@ -5603,6 +5666,7 @@ A7A8 ; Changes_When_Casefolded
A7AA..A7AE ; Changes_When_Casefolded
A7B0..A7B4 ; Changes_When_Casefolded
A7B6 ; Changes_When_Casefolded
+A7B8 ; Changes_When_Casefolded
AB70..ABBF ; Changes_When_Casefolded
FB00..FB06 ; Changes_When_Casefolded
FB13..FB17 ; Changes_When_Casefolded
@@ -5611,9 +5675,10 @@ FF21..FF3A ; Changes_When_Casefolded
104B0..104D3 ; Changes_When_Casefolded
10C80..10CB2 ; Changes_When_Casefolded
118A0..118BF ; Changes_When_Casefolded
+16E40..16E5F ; Changes_When_Casefolded
1E900..1E921 ; Changes_When_Casefolded
-# Total code points: 1377
+# Total code points: 1456
# ================================================
@@ -5672,9 +5737,13 @@ FF21..FF3A ; Changes_When_Casefolded
10A0..10C5 ; Changes_When_Casemapped
10C7 ; Changes_When_Casemapped
10CD ; Changes_When_Casemapped
+10D0..10FA ; Changes_When_Casemapped
+10FD..10FF ; Changes_When_Casemapped
13A0..13F5 ; Changes_When_Casemapped
13F8..13FD ; Changes_When_Casemapped
1C80..1C88 ; Changes_When_Casemapped
+1C90..1CBA ; Changes_When_Casemapped
+1CBD..1CBF ; Changes_When_Casemapped
1D79 ; Changes_When_Casemapped
1D7D ; Changes_When_Casemapped
1E00..1E9B ; Changes_When_Casemapped
@@ -5724,7 +5793,7 @@ A779..A787 ; Changes_When_Casemapped
A78B..A78D ; Changes_When_Casemapped
A790..A793 ; Changes_When_Casemapped
A796..A7AE ; Changes_When_Casemapped
-A7B0..A7B7 ; Changes_When_Casemapped
+A7B0..A7B9 ; Changes_When_Casemapped
AB53 ; Changes_When_Casemapped
AB70..ABBF ; Changes_When_Casemapped
FB00..FB06 ; Changes_When_Casemapped
@@ -5737,9 +5806,10 @@ FF41..FF5A ; Changes_When_Casemapped
10C80..10CB2 ; Changes_When_Casemapped
10CC0..10CF2 ; Changes_When_Casemapped
118A0..118DF ; Changes_When_Casemapped
+16E40..16E7F ; Changes_When_Casemapped
1E900..1E943 ; Changes_When_Casemapped
-# Total code points: 2669
+# Total code points: 2827
# ================================================
@@ -5786,9 +5856,9 @@ FF41..FF5A ; Changes_When_Casemapped
048A..052F ; ID_Start
0531..0556 ; ID_Start
0559 ; ID_Start
-0561..0587 ; ID_Start
+0560..0588 ; ID_Start
05D0..05EA ; ID_Start
-05F0..05F2 ; ID_Start
+05EF..05F2 ; ID_Start
0620..063F ; ID_Start
0640 ; ID_Start
0641..064A ; ID_Start
@@ -5942,7 +6012,8 @@ FF41..FF5A ; Changes_When_Casemapped
10CD ; ID_Start
10D0..10FA ; ID_Start
10FC ; ID_Start
-10FD..1248 ; ID_Start
+10FD..10FF ; ID_Start
+1100..1248 ; ID_Start
124A..124D ; ID_Start
1250..1256 ; ID_Start
1258 ; ID_Start
@@ -5978,7 +6049,7 @@ FF41..FF5A ; Changes_When_Casemapped
17DC ; ID_Start
1820..1842 ; ID_Start
1843 ; ID_Start
-1844..1877 ; ID_Start
+1844..1878 ; ID_Start
1880..1884 ; ID_Start
1885..1886 ; ID_Start
1887..18A8 ; ID_Start
@@ -6002,6 +6073,8 @@ FF41..FF5A ; Changes_When_Casemapped
1C5A..1C77 ; ID_Start
1C78..1C7D ; ID_Start
1C80..1C88 ; ID_Start
+1C90..1CBA ; ID_Start
+1CBD..1CBF ; ID_Start
1CE9..1CEC ; ID_Start
1CEE..1CF1 ; ID_Start
1CF5..1CF6 ; ID_Start
@@ -6089,12 +6162,12 @@ FF41..FF5A ; Changes_When_Casemapped
30A1..30FA ; ID_Start
30FC..30FE ; ID_Start
30FF ; ID_Start
-3105..312E ; ID_Start
+3105..312F ; ID_Start
3131..318E ; ID_Start
31A0..31BA ; ID_Start
31F0..31FF ; ID_Start
3400..4DB5 ; ID_Start
-4E00..9FEA ; ID_Start
+4E00..9FEF ; ID_Start
A000..A014 ; ID_Start
A015 ; ID_Start
A016..A48C ; ID_Start
@@ -6118,8 +6191,7 @@ A771..A787 ; ID_Start
A788 ; ID_Start
A78B..A78E ; ID_Start
A78F ; ID_Start
-A790..A7AE ; ID_Start
-A7B0..A7B7 ; ID_Start
+A790..A7B9 ; ID_Start
A7F7 ; ID_Start
A7F8..A7F9 ; ID_Start
A7FA ; ID_Start
@@ -6131,7 +6203,7 @@ A840..A873 ; ID_Start
A882..A8B3 ; ID_Start
A8F2..A8F7 ; ID_Start
A8FB ; ID_Start
-A8FD ; ID_Start
+A8FD..A8FE ; ID_Start
A90A..A925 ; ID_Start
A930..A946 ; ID_Start
A960..A97C ; ID_Start
@@ -6247,7 +6319,7 @@ FFDA..FFDC ; ID_Start
10A00 ; ID_Start
10A10..10A13 ; ID_Start
10A15..10A17 ; ID_Start
-10A19..10A33 ; ID_Start
+10A19..10A35 ; ID_Start
10A60..10A7C ; ID_Start
10A80..10A9C ; ID_Start
10AC0..10AC7 ; ID_Start
@@ -6259,10 +6331,15 @@ FFDA..FFDC ; ID_Start
10C00..10C48 ; ID_Start
10C80..10CB2 ; ID_Start
10CC0..10CF2 ; ID_Start
+10D00..10D23 ; ID_Start
+10F00..10F1C ; ID_Start
+10F27 ; ID_Start
+10F30..10F45 ; ID_Start
11003..11037 ; ID_Start
11083..110AF ; ID_Start
110D0..110E8 ; ID_Start
11103..11126 ; ID_Start
+11144 ; ID_Start
11150..11172 ; ID_Start
11176 ; ID_Start
11183..111B2 ; ID_Start
@@ -6296,7 +6373,8 @@ FFDA..FFDC ; ID_Start
11600..1162F ; ID_Start
11644 ; ID_Start
11680..116AA ; ID_Start
-11700..11719 ; ID_Start
+11700..1171A ; ID_Start
+11800..1182B ; ID_Start
118A0..118DF ; ID_Start
118FF ; ID_Start
11A00 ; ID_Start
@@ -6305,6 +6383,7 @@ FFDA..FFDC ; ID_Start
11A50 ; ID_Start
11A5C..11A83 ; ID_Start
11A86..11A89 ; ID_Start
+11A9D ; ID_Start
11AC0..11AF8 ; ID_Start
11C00..11C08 ; ID_Start
11C0A..11C2E ; ID_Start
@@ -6314,6 +6393,11 @@ FFDA..FFDC ; ID_Start
11D08..11D09 ; ID_Start
11D0B..11D30 ; ID_Start
11D46 ; ID_Start
+11D60..11D65 ; ID_Start
+11D67..11D68 ; ID_Start
+11D6A..11D89 ; ID_Start
+11D98 ; ID_Start
+11EE0..11EF2 ; ID_Start
12000..12399 ; ID_Start
12400..1246E ; ID_Start
12480..12543 ; ID_Start
@@ -6326,11 +6410,12 @@ FFDA..FFDC ; ID_Start
16B40..16B43 ; ID_Start
16B63..16B77 ; ID_Start
16B7D..16B8F ; ID_Start
+16E40..16E7F ; ID_Start
16F00..16F44 ; ID_Start
16F50 ; ID_Start
16F93..16F9F ; ID_Start
16FE0..16FE1 ; ID_Start
-17000..187EC ; ID_Start
+17000..187F1 ; ID_Start
18800..18AF2 ; ID_Start
1B000..1B11E ; ID_Start
1B170..1B2FB ; ID_Start
@@ -6410,7 +6495,7 @@ FFDA..FFDC ; ID_Start
2CEB0..2EBE0 ; ID_Start
2F800..2FA1D ; ID_Start
-# Total code points: 125334
+# Total code points: 125660
# ================================================
@@ -6464,14 +6549,14 @@ FFDA..FFDC ; ID_Start
048A..052F ; ID_Continue
0531..0556 ; ID_Continue
0559 ; ID_Continue
-0561..0587 ; ID_Continue
+0560..0588 ; ID_Continue
0591..05BD ; ID_Continue
05BF ; ID_Continue
05C1..05C2 ; ID_Continue
05C4..05C5 ; ID_Continue
05C7 ; ID_Continue
05D0..05EA ; ID_Continue
-05F0..05F2 ; ID_Continue
+05EF..05F2 ; ID_Continue
0610..061A ; ID_Continue
0620..063F ; ID_Continue
0640 ; ID_Continue
@@ -6503,6 +6588,7 @@ FFDA..FFDC ; ID_Start
07EB..07F3 ; ID_Continue
07F4..07F5 ; ID_Continue
07FA ; ID_Continue
+07FD ; ID_Continue
0800..0815 ; ID_Continue
0816..0819 ; ID_Continue
081A ; ID_Continue
@@ -6516,7 +6602,7 @@ FFDA..FFDC ; ID_Start
0860..086A ; ID_Continue
08A0..08B4 ; ID_Continue
08B6..08BD ; ID_Continue
-08D4..08E1 ; ID_Continue
+08D3..08E1 ; ID_Continue
08E3..0902 ; ID_Continue
0903 ; ID_Continue
0904..0939 ; ID_Continue
@@ -6559,6 +6645,7 @@ FFDA..FFDC ; ID_Start
09E6..09EF ; ID_Continue
09F0..09F1 ; ID_Continue
09FC ; ID_Continue
+09FE ; ID_Continue
0A01..0A02 ; ID_Continue
0A03 ; ID_Continue
0A05..0A0A ; ID_Continue
@@ -6648,6 +6735,7 @@ FFDA..FFDC ; ID_Start
0BE6..0BEF ; ID_Continue
0C00 ; ID_Continue
0C01..0C03 ; ID_Continue
+0C04 ; ID_Continue
0C05..0C0C ; ID_Continue
0C0E..0C10 ; ID_Continue
0C12..0C28 ; ID_Continue
@@ -6802,7 +6890,8 @@ FFDA..FFDC ; ID_Start
10CD ; ID_Continue
10D0..10FA ; ID_Continue
10FC ; ID_Continue
-10FD..1248 ; ID_Continue
+10FD..10FF ; ID_Continue
+1100..1248 ; ID_Continue
124A..124D ; ID_Continue
1250..1256 ; ID_Continue
1258 ; ID_Continue
@@ -6855,7 +6944,7 @@ FFDA..FFDC ; ID_Start
1810..1819 ; ID_Continue
1820..1842 ; ID_Continue
1843 ; ID_Continue
-1844..1877 ; ID_Continue
+1844..1878 ; ID_Continue
1880..1884 ; ID_Continue
1885..1886 ; ID_Continue
1887..18A8 ; ID_Continue
@@ -6944,6 +7033,8 @@ FFDA..FFDC ; ID_Start
1C5A..1C77 ; ID_Continue
1C78..1C7D ; ID_Continue
1C80..1C88 ; ID_Continue
+1C90..1CBA ; ID_Continue
+1CBD..1CBF ; ID_Continue
1CD0..1CD2 ; ID_Continue
1CD4..1CE0 ; ID_Continue
1CE1 ; ID_Continue
@@ -7053,12 +7144,12 @@ FFDA..FFDC ; ID_Start
30A1..30FA ; ID_Continue
30FC..30FE ; ID_Continue
30FF ; ID_Continue
-3105..312E ; ID_Continue
+3105..312F ; ID_Continue
3131..318E ; ID_Continue
31A0..31BA ; ID_Continue
31F0..31FF ; ID_Continue
3400..4DB5 ; ID_Continue
-4E00..9FEA ; ID_Continue
+4E00..9FEF ; ID_Continue
A000..A014 ; ID_Continue
A015 ; ID_Continue
A016..A48C ; ID_Continue
@@ -7087,8 +7178,7 @@ A771..A787 ; ID_Continue
A788 ; ID_Continue
A78B..A78E ; ID_Continue
A78F ; ID_Continue
-A790..A7AE ; ID_Continue
-A7B0..A7B7 ; ID_Continue
+A790..A7B9 ; ID_Continue
A7F7 ; ID_Continue
A7F8..A7F9 ; ID_Continue
A7FA ; ID_Continue
@@ -7111,7 +7201,8 @@ A8D0..A8D9 ; ID_Continue
A8E0..A8F1 ; ID_Continue
A8F2..A8F7 ; ID_Continue
A8FB ; ID_Continue
-A8FD ; ID_Continue
+A8FD..A8FE ; ID_Continue
+A8FF ; ID_Continue
A900..A909 ; ID_Continue
A90A..A925 ; ID_Continue
A926..A92D ; ID_Continue
@@ -7286,7 +7377,7 @@ FFDA..FFDC ; ID_Continue
10A0C..10A0F ; ID_Continue
10A10..10A13 ; ID_Continue
10A15..10A17 ; ID_Continue
-10A19..10A33 ; ID_Continue
+10A19..10A35 ; ID_Continue
10A38..10A3A ; ID_Continue
10A3F ; ID_Continue
10A60..10A7C ; ID_Continue
@@ -7301,6 +7392,13 @@ FFDA..FFDC ; ID_Continue
10C00..10C48 ; ID_Continue
10C80..10CB2 ; ID_Continue
10CC0..10CF2 ; ID_Continue
+10D00..10D23 ; ID_Continue
+10D24..10D27 ; ID_Continue
+10D30..10D39 ; ID_Continue
+10F00..10F1C ; ID_Continue
+10F27 ; ID_Continue
+10F30..10F45 ; ID_Continue
+10F46..10F50 ; ID_Continue
11000 ; ID_Continue
11001 ; ID_Continue
11002 ; ID_Continue
@@ -7322,6 +7420,8 @@ FFDA..FFDC ; ID_Continue
1112C ; ID_Continue
1112D..11134 ; ID_Continue
11136..1113F ; ID_Continue
+11144 ; ID_Continue
+11145..11146 ; ID_Continue
11150..11172 ; ID_Continue
11173 ; ID_Continue
11176 ; ID_Continue
@@ -7332,7 +7432,7 @@ FFDA..FFDC ; ID_Continue
111B6..111BE ; ID_Continue
111BF..111C0 ; ID_Continue
111C1..111C4 ; ID_Continue
-111CA..111CC ; ID_Continue
+111C9..111CC ; ID_Continue
111D0..111D9 ; ID_Continue
111DA ; ID_Continue
111DC ; ID_Continue
@@ -7363,7 +7463,7 @@ FFDA..FFDC ; ID_Continue
1132A..11330 ; ID_Continue
11332..11333 ; ID_Continue
11335..11339 ; ID_Continue
-1133C ; ID_Continue
+1133B..1133C ; ID_Continue
1133D ; ID_Continue
1133E..1133F ; ID_Continue
11340 ; ID_Continue
@@ -7385,6 +7485,7 @@ FFDA..FFDC ; ID_Continue
11446 ; ID_Continue
11447..1144A ; ID_Continue
11450..11459 ; ID_Continue
+1145E ; ID_Continue
11480..114AF ; ID_Continue
114B0..114B2 ; ID_Continue
114B3..114B8 ; ID_Continue
@@ -7424,20 +7525,23 @@ FFDA..FFDC ; ID_Continue
116B6 ; ID_Continue
116B7 ; ID_Continue
116C0..116C9 ; ID_Continue
-11700..11719 ; ID_Continue
+11700..1171A ; ID_Continue
1171D..1171F ; ID_Continue
11720..11721 ; ID_Continue
11722..11725 ; ID_Continue
11726 ; ID_Continue
11727..1172B ; ID_Continue
11730..11739 ; ID_Continue
+11800..1182B ; ID_Continue
+1182C..1182E ; ID_Continue
+1182F..11837 ; ID_Continue
+11838 ; ID_Continue
+11839..1183A ; ID_Continue
118A0..118DF ; ID_Continue
118E0..118E9 ; ID_Continue
118FF ; ID_Continue
11A00 ; ID_Continue
-11A01..11A06 ; ID_Continue
-11A07..11A08 ; ID_Continue
-11A09..11A0A ; ID_Continue
+11A01..11A0A ; ID_Continue
11A0B..11A32 ; ID_Continue
11A33..11A38 ; ID_Continue
11A39 ; ID_Continue
@@ -7453,6 +7557,7 @@ FFDA..FFDC ; ID_Continue
11A8A..11A96 ; ID_Continue
11A97 ; ID_Continue
11A98..11A99 ; ID_Continue
+11A9D ; ID_Continue
11AC0..11AF8 ; ID_Continue
11C00..11C08 ; ID_Continue
11C0A..11C2E ; ID_Continue
@@ -7481,6 +7586,20 @@ FFDA..FFDC ; ID_Continue
11D46 ; ID_Continue
11D47 ; ID_Continue
11D50..11D59 ; ID_Continue
+11D60..11D65 ; ID_Continue
+11D67..11D68 ; ID_Continue
+11D6A..11D89 ; ID_Continue
+11D8A..11D8E ; ID_Continue
+11D90..11D91 ; ID_Continue
+11D93..11D94 ; ID_Continue
+11D95 ; ID_Continue
+11D96 ; ID_Continue
+11D97 ; ID_Continue
+11D98 ; ID_Continue
+11DA0..11DA9 ; ID_Continue
+11EE0..11EF2 ; ID_Continue
+11EF3..11EF4 ; ID_Continue
+11EF5..11EF6 ; ID_Continue
12000..12399 ; ID_Continue
12400..1246E ; ID_Continue
12480..12543 ; ID_Continue
@@ -7497,13 +7616,14 @@ FFDA..FFDC ; ID_Continue
16B50..16B59 ; ID_Continue
16B63..16B77 ; ID_Continue
16B7D..16B8F ; ID_Continue
+16E40..16E7F ; ID_Continue
16F00..16F44 ; ID_Continue
16F50 ; ID_Continue
16F51..16F7E ; ID_Continue
16F8F..16F92 ; ID_Continue
16F93..16F9F ; ID_Continue
16FE0..16FE1 ; ID_Continue
-17000..187EC ; ID_Continue
+17000..187F1 ; ID_Continue
18800..18AF2 ; ID_Continue
1B000..1B11E ; ID_Continue
1B170..1B2FB ; ID_Continue
@@ -7607,7 +7727,7 @@ FFDA..FFDC ; ID_Continue
2F800..2FA1D ; ID_Continue
E0100..E01EF ; ID_Continue
-# Total code points: 128108
+# Total code points: 128510
# ================================================
@@ -7651,9 +7771,9 @@ E0100..E01EF ; ID_Continue
048A..052F ; XID_Start
0531..0556 ; XID_Start
0559 ; XID_Start
-0561..0587 ; XID_Start
+0560..0588 ; XID_Start
05D0..05EA ; XID_Start
-05F0..05F2 ; XID_Start
+05EF..05F2 ; XID_Start
0620..063F ; XID_Start
0640 ; XID_Start
0641..064A ; XID_Start
@@ -7807,7 +7927,8 @@ E0100..E01EF ; ID_Continue
10CD ; XID_Start
10D0..10FA ; XID_Start
10FC ; XID_Start
-10FD..1248 ; XID_Start
+10FD..10FF ; XID_Start
+1100..1248 ; XID_Start
124A..124D ; XID_Start
1250..1256 ; XID_Start
1258 ; XID_Start
@@ -7843,7 +7964,7 @@ E0100..E01EF ; ID_Continue
17DC ; XID_Start
1820..1842 ; XID_Start
1843 ; XID_Start
-1844..1877 ; XID_Start
+1844..1878 ; XID_Start
1880..1884 ; XID_Start
1885..1886 ; XID_Start
1887..18A8 ; XID_Start
@@ -7867,6 +7988,8 @@ E0100..E01EF ; ID_Continue
1C5A..1C77 ; XID_Start
1C78..1C7D ; XID_Start
1C80..1C88 ; XID_Start
+1C90..1CBA ; XID_Start
+1CBD..1CBF ; XID_Start
1CE9..1CEC ; XID_Start
1CEE..1CF1 ; XID_Start
1CF5..1CF6 ; XID_Start
@@ -7953,12 +8076,12 @@ E0100..E01EF ; ID_Continue
30A1..30FA ; XID_Start
30FC..30FE ; XID_Start
30FF ; XID_Start
-3105..312E ; XID_Start
+3105..312F ; XID_Start
3131..318E ; XID_Start
31A0..31BA ; XID_Start
31F0..31FF ; XID_Start
3400..4DB5 ; XID_Start
-4E00..9FEA ; XID_Start
+4E00..9FEF ; XID_Start
A000..A014 ; XID_Start
A015 ; XID_Start
A016..A48C ; XID_Start
@@ -7982,8 +8105,7 @@ A771..A787 ; XID_Start
A788 ; XID_Start
A78B..A78E ; XID_Start
A78F ; XID_Start
-A790..A7AE ; XID_Start
-A7B0..A7B7 ; XID_Start
+A790..A7B9 ; XID_Start
A7F7 ; XID_Start
A7F8..A7F9 ; XID_Start
A7FA ; XID_Start
@@ -7995,7 +8117,7 @@ A840..A873 ; XID_Start
A882..A8B3 ; XID_Start
A8F2..A8F7 ; XID_Start
A8FB ; XID_Start
-A8FD ; XID_Start
+A8FD..A8FE ; XID_Start
A90A..A925 ; XID_Start
A930..A946 ; XID_Start
A960..A97C ; XID_Start
@@ -8116,7 +8238,7 @@ FFDA..FFDC ; XID_Start
10A00 ; XID_Start
10A10..10A13 ; XID_Start
10A15..10A17 ; XID_Start
-10A19..10A33 ; XID_Start
+10A19..10A35 ; XID_Start
10A60..10A7C ; XID_Start
10A80..10A9C ; XID_Start
10AC0..10AC7 ; XID_Start
@@ -8128,10 +8250,15 @@ FFDA..FFDC ; XID_Start
10C00..10C48 ; XID_Start
10C80..10CB2 ; XID_Start
10CC0..10CF2 ; XID_Start
+10D00..10D23 ; XID_Start
+10F00..10F1C ; XID_Start
+10F27 ; XID_Start
+10F30..10F45 ; XID_Start
11003..11037 ; XID_Start
11083..110AF ; XID_Start
110D0..110E8 ; XID_Start
11103..11126 ; XID_Start
+11144 ; XID_Start
11150..11172 ; XID_Start
11176 ; XID_Start
11183..111B2 ; XID_Start
@@ -8165,7 +8292,8 @@ FFDA..FFDC ; XID_Start
11600..1162F ; XID_Start
11644 ; XID_Start
11680..116AA ; XID_Start
-11700..11719 ; XID_Start
+11700..1171A ; XID_Start
+11800..1182B ; XID_Start
118A0..118DF ; XID_Start
118FF ; XID_Start
11A00 ; XID_Start
@@ -8174,6 +8302,7 @@ FFDA..FFDC ; XID_Start
11A50 ; XID_Start
11A5C..11A83 ; XID_Start
11A86..11A89 ; XID_Start
+11A9D ; XID_Start
11AC0..11AF8 ; XID_Start
11C00..11C08 ; XID_Start
11C0A..11C2E ; XID_Start
@@ -8183,6 +8312,11 @@ FFDA..FFDC ; XID_Start
11D08..11D09 ; XID_Start
11D0B..11D30 ; XID_Start
11D46 ; XID_Start
+11D60..11D65 ; XID_Start
+11D67..11D68 ; XID_Start
+11D6A..11D89 ; XID_Start
+11D98 ; XID_Start
+11EE0..11EF2 ; XID_Start
12000..12399 ; XID_Start
12400..1246E ; XID_Start
12480..12543 ; XID_Start
@@ -8195,11 +8329,12 @@ FFDA..FFDC ; XID_Start
16B40..16B43 ; XID_Start
16B63..16B77 ; XID_Start
16B7D..16B8F ; XID_Start
+16E40..16E7F ; XID_Start
16F00..16F44 ; XID_Start
16F50 ; XID_Start
16F93..16F9F ; XID_Start
16FE0..16FE1 ; XID_Start
-17000..187EC ; XID_Start
+17000..187F1 ; XID_Start
18800..18AF2 ; XID_Start
1B000..1B11E ; XID_Start
1B170..1B2FB ; XID_Start
@@ -8279,7 +8414,7 @@ FFDA..FFDC ; XID_Start
2CEB0..2EBE0 ; XID_Start
2F800..2FA1D ; XID_Start
-# Total code points: 125311
+# Total code points: 125637
# ================================================
@@ -8329,14 +8464,14 @@ FFDA..FFDC ; XID_Start
048A..052F ; XID_Continue
0531..0556 ; XID_Continue
0559 ; XID_Continue
-0561..0587 ; XID_Continue
+0560..0588 ; XID_Continue
0591..05BD ; XID_Continue
05BF ; XID_Continue
05C1..05C2 ; XID_Continue
05C4..05C5 ; XID_Continue
05C7 ; XID_Continue
05D0..05EA ; XID_Continue
-05F0..05F2 ; XID_Continue
+05EF..05F2 ; XID_Continue
0610..061A ; XID_Continue
0620..063F ; XID_Continue
0640 ; XID_Continue
@@ -8368,6 +8503,7 @@ FFDA..FFDC ; XID_Start
07EB..07F3 ; XID_Continue
07F4..07F5 ; XID_Continue
07FA ; XID_Continue
+07FD ; XID_Continue
0800..0815 ; XID_Continue
0816..0819 ; XID_Continue
081A ; XID_Continue
@@ -8381,7 +8517,7 @@ FFDA..FFDC ; XID_Start
0860..086A ; XID_Continue
08A0..08B4 ; XID_Continue
08B6..08BD ; XID_Continue
-08D4..08E1 ; XID_Continue
+08D3..08E1 ; XID_Continue
08E3..0902 ; XID_Continue
0903 ; XID_Continue
0904..0939 ; XID_Continue
@@ -8424,6 +8560,7 @@ FFDA..FFDC ; XID_Start
09E6..09EF ; XID_Continue
09F0..09F1 ; XID_Continue
09FC ; XID_Continue
+09FE ; XID_Continue
0A01..0A02 ; XID_Continue
0A03 ; XID_Continue
0A05..0A0A ; XID_Continue
@@ -8513,6 +8650,7 @@ FFDA..FFDC ; XID_Start
0BE6..0BEF ; XID_Continue
0C00 ; XID_Continue
0C01..0C03 ; XID_Continue
+0C04 ; XID_Continue
0C05..0C0C ; XID_Continue
0C0E..0C10 ; XID_Continue
0C12..0C28 ; XID_Continue
@@ -8667,7 +8805,8 @@ FFDA..FFDC ; XID_Start
10CD ; XID_Continue
10D0..10FA ; XID_Continue
10FC ; XID_Continue
-10FD..1248 ; XID_Continue
+10FD..10FF ; XID_Continue
+1100..1248 ; XID_Continue
124A..124D ; XID_Continue
1250..1256 ; XID_Continue
1258 ; XID_Continue
@@ -8720,7 +8859,7 @@ FFDA..FFDC ; XID_Start
1810..1819 ; XID_Continue
1820..1842 ; XID_Continue
1843 ; XID_Continue
-1844..1877 ; XID_Continue
+1844..1878 ; XID_Continue
1880..1884 ; XID_Continue
1885..1886 ; XID_Continue
1887..18A8 ; XID_Continue
@@ -8809,6 +8948,8 @@ FFDA..FFDC ; XID_Start
1C5A..1C77 ; XID_Continue
1C78..1C7D ; XID_Continue
1C80..1C88 ; XID_Continue
+1C90..1CBA ; XID_Continue
+1CBD..1CBF ; XID_Continue
1CD0..1CD2 ; XID_Continue
1CD4..1CE0 ; XID_Continue
1CE1 ; XID_Continue
@@ -8917,12 +9058,12 @@ FFDA..FFDC ; XID_Start
30A1..30FA ; XID_Continue
30FC..30FE ; XID_Continue
30FF ; XID_Continue
-3105..312E ; XID_Continue
+3105..312F ; XID_Continue
3131..318E ; XID_Continue
31A0..31BA ; XID_Continue
31F0..31FF ; XID_Continue
3400..4DB5 ; XID_Continue
-4E00..9FEA ; XID_Continue
+4E00..9FEF ; XID_Continue
A000..A014 ; XID_Continue
A015 ; XID_Continue
A016..A48C ; XID_Continue
@@ -8951,8 +9092,7 @@ A771..A787 ; XID_Continue
A788 ; XID_Continue
A78B..A78E ; XID_Continue
A78F ; XID_Continue
-A790..A7AE ; XID_Continue
-A7B0..A7B7 ; XID_Continue
+A790..A7B9 ; XID_Continue
A7F7 ; XID_Continue
A7F8..A7F9 ; XID_Continue
A7FA ; XID_Continue
@@ -8975,7 +9115,8 @@ A8D0..A8D9 ; XID_Continue
A8E0..A8F1 ; XID_Continue
A8F2..A8F7 ; XID_Continue
A8FB ; XID_Continue
-A8FD ; XID_Continue
+A8FD..A8FE ; XID_Continue
+A8FF ; XID_Continue
A900..A909 ; XID_Continue
A90A..A925 ; XID_Continue
A926..A92D ; XID_Continue
@@ -9156,7 +9297,7 @@ FFDA..FFDC ; XID_Continue
10A0C..10A0F ; XID_Continue
10A10..10A13 ; XID_Continue
10A15..10A17 ; XID_Continue
-10A19..10A33 ; XID_Continue
+10A19..10A35 ; XID_Continue
10A38..10A3A ; XID_Continue
10A3F ; XID_Continue
10A60..10A7C ; XID_Continue
@@ -9171,6 +9312,13 @@ FFDA..FFDC ; XID_Continue
10C00..10C48 ; XID_Continue
10C80..10CB2 ; XID_Continue
10CC0..10CF2 ; XID_Continue
+10D00..10D23 ; XID_Continue
+10D24..10D27 ; XID_Continue
+10D30..10D39 ; XID_Continue
+10F00..10F1C ; XID_Continue
+10F27 ; XID_Continue
+10F30..10F45 ; XID_Continue
+10F46..10F50 ; XID_Continue
11000 ; XID_Continue
11001 ; XID_Continue
11002 ; XID_Continue
@@ -9192,6 +9340,8 @@ FFDA..FFDC ; XID_Continue
1112C ; XID_Continue
1112D..11134 ; XID_Continue
11136..1113F ; XID_Continue
+11144 ; XID_Continue
+11145..11146 ; XID_Continue
11150..11172 ; XID_Continue
11173 ; XID_Continue
11176 ; XID_Continue
@@ -9202,7 +9352,7 @@ FFDA..FFDC ; XID_Continue
111B6..111BE ; XID_Continue
111BF..111C0 ; XID_Continue
111C1..111C4 ; XID_Continue
-111CA..111CC ; XID_Continue
+111C9..111CC ; XID_Continue
111D0..111D9 ; XID_Continue
111DA ; XID_Continue
111DC ; XID_Continue
@@ -9233,7 +9383,7 @@ FFDA..FFDC ; XID_Continue
1132A..11330 ; XID_Continue
11332..11333 ; XID_Continue
11335..11339 ; XID_Continue
-1133C ; XID_Continue
+1133B..1133C ; XID_Continue
1133D ; XID_Continue
1133E..1133F ; XID_Continue
11340 ; XID_Continue
@@ -9255,6 +9405,7 @@ FFDA..FFDC ; XID_Continue
11446 ; XID_Continue
11447..1144A ; XID_Continue
11450..11459 ; XID_Continue
+1145E ; XID_Continue
11480..114AF ; XID_Continue
114B0..114B2 ; XID_Continue
114B3..114B8 ; XID_Continue
@@ -9294,20 +9445,23 @@ FFDA..FFDC ; XID_Continue
116B6 ; XID_Continue
116B7 ; XID_Continue
116C0..116C9 ; XID_Continue
-11700..11719 ; XID_Continue
+11700..1171A ; XID_Continue
1171D..1171F ; XID_Continue
11720..11721 ; XID_Continue
11722..11725 ; XID_Continue
11726 ; XID_Continue
11727..1172B ; XID_Continue
11730..11739 ; XID_Continue
+11800..1182B ; XID_Continue
+1182C..1182E ; XID_Continue
+1182F..11837 ; XID_Continue
+11838 ; XID_Continue
+11839..1183A ; XID_Continue
118A0..118DF ; XID_Continue
118E0..118E9 ; XID_Continue
118FF ; XID_Continue
11A00 ; XID_Continue
-11A01..11A06 ; XID_Continue
-11A07..11A08 ; XID_Continue
-11A09..11A0A ; XID_Continue
+11A01..11A0A ; XID_Continue
11A0B..11A32 ; XID_Continue
11A33..11A38 ; XID_Continue
11A39 ; XID_Continue
@@ -9323,6 +9477,7 @@ FFDA..FFDC ; XID_Continue
11A8A..11A96 ; XID_Continue
11A97 ; XID_Continue
11A98..11A99 ; XID_Continue
+11A9D ; XID_Continue
11AC0..11AF8 ; XID_Continue
11C00..11C08 ; XID_Continue
11C0A..11C2E ; XID_Continue
@@ -9351,6 +9506,20 @@ FFDA..FFDC ; XID_Continue
11D46 ; XID_Continue
11D47 ; XID_Continue
11D50..11D59 ; XID_Continue
+11D60..11D65 ; XID_Continue
+11D67..11D68 ; XID_Continue
+11D6A..11D89 ; XID_Continue
+11D8A..11D8E ; XID_Continue
+11D90..11D91 ; XID_Continue
+11D93..11D94 ; XID_Continue
+11D95 ; XID_Continue
+11D96 ; XID_Continue
+11D97 ; XID_Continue
+11D98 ; XID_Continue
+11DA0..11DA9 ; XID_Continue
+11EE0..11EF2 ; XID_Continue
+11EF3..11EF4 ; XID_Continue
+11EF5..11EF6 ; XID_Continue
12000..12399 ; XID_Continue
12400..1246E ; XID_Continue
12480..12543 ; XID_Continue
@@ -9367,13 +9536,14 @@ FFDA..FFDC ; XID_Continue
16B50..16B59 ; XID_Continue
16B63..16B77 ; XID_Continue
16B7D..16B8F ; XID_Continue
+16E40..16E7F ; XID_Continue
16F00..16F44 ; XID_Continue
16F50 ; XID_Continue
16F51..16F7E ; XID_Continue
16F8F..16F92 ; XID_Continue
16F93..16F9F ; XID_Continue
16FE0..16FE1 ; XID_Continue
-17000..187EC ; XID_Continue
+17000..187F1 ; XID_Continue
18800..18AF2 ; XID_Continue
1B000..1B11E ; XID_Continue
1B170..1B2FB ; XID_Continue
@@ -9477,7 +9647,7 @@ FFDA..FFDC ; XID_Continue
2F800..2FA1D ; XID_Continue
E0100..E01EF ; XID_Continue
-# Total code points: 128089
+# Total code points: 128491
# ================================================
@@ -9545,12 +9715,13 @@ E01F0..E0FFF ; Default_Ignorable_Code_Point
0730..074A ; Grapheme_Extend
07A6..07B0 ; Grapheme_Extend
07EB..07F3 ; Grapheme_Extend
+07FD ; Grapheme_Extend
0816..0819 ; Grapheme_Extend
081B..0823 ; Grapheme_Extend
0825..0827 ; Grapheme_Extend
0829..082D ; Grapheme_Extend
0859..085B ; Grapheme_Extend
-08D4..08E1 ; Grapheme_Extend
+08D3..08E1 ; Grapheme_Extend
08E3..0902 ; Grapheme_Extend
093A ; Grapheme_Extend
093C ; Grapheme_Extend
@@ -9565,6 +9736,7 @@ E01F0..E0FFF ; Default_Ignorable_Code_Point
09CD ; Grapheme_Extend
09D7 ; Grapheme_Extend
09E2..09E3 ; Grapheme_Extend
+09FE ; Grapheme_Extend
0A01..0A02 ; Grapheme_Extend
0A3C ; Grapheme_Extend
0A41..0A42 ; Grapheme_Extend
@@ -9595,6 +9767,7 @@ E01F0..E0FFF ; Default_Ignorable_Code_Point
0BCD ; Grapheme_Extend
0BD7 ; Grapheme_Extend
0C00 ; Grapheme_Extend
+0C04 ; Grapheme_Extend
0C3E..0C40 ; Grapheme_Extend
0C46..0C48 ; Grapheme_Extend
0C4A..0C4D ; Grapheme_Extend
@@ -9723,6 +9896,7 @@ A80B ; Grapheme_Extend
A825..A826 ; Grapheme_Extend
A8C4..A8C5 ; Grapheme_Extend
A8E0..A8F1 ; Grapheme_Extend
+A8FF ; Grapheme_Extend
A926..A92D ; Grapheme_Extend
A947..A951 ; Grapheme_Extend
A980..A982 ; Grapheme_Extend
@@ -9759,6 +9933,8 @@ FF9E..FF9F ; Grapheme_Extend
10A38..10A3A ; Grapheme_Extend
10A3F ; Grapheme_Extend
10AE5..10AE6 ; Grapheme_Extend
+10D24..10D27 ; Grapheme_Extend
+10F46..10F50 ; Grapheme_Extend
11001 ; Grapheme_Extend
11038..11046 ; Grapheme_Extend
1107F..11081 ; Grapheme_Extend
@@ -9770,7 +9946,7 @@ FF9E..FF9F ; Grapheme_Extend
11173 ; Grapheme_Extend
11180..11181 ; Grapheme_Extend
111B6..111BE ; Grapheme_Extend
-111CA..111CC ; Grapheme_Extend
+111C9..111CC ; Grapheme_Extend
1122F..11231 ; Grapheme_Extend
11234 ; Grapheme_Extend
11236..11237 ; Grapheme_Extend
@@ -9778,7 +9954,7 @@ FF9E..FF9F ; Grapheme_Extend
112DF ; Grapheme_Extend
112E3..112EA ; Grapheme_Extend
11300..11301 ; Grapheme_Extend
-1133C ; Grapheme_Extend
+1133B..1133C ; Grapheme_Extend
1133E ; Grapheme_Extend
11340 ; Grapheme_Extend
11357 ; Grapheme_Extend
@@ -9787,6 +9963,7 @@ FF9E..FF9F ; Grapheme_Extend
11438..1143F ; Grapheme_Extend
11442..11444 ; Grapheme_Extend
11446 ; Grapheme_Extend
+1145E ; Grapheme_Extend
114B0 ; Grapheme_Extend
114B3..114B8 ; Grapheme_Extend
114BA ; Grapheme_Extend
@@ -9808,8 +9985,9 @@ FF9E..FF9F ; Grapheme_Extend
1171D..1171F ; Grapheme_Extend
11722..11725 ; Grapheme_Extend
11727..1172B ; Grapheme_Extend
-11A01..11A06 ; Grapheme_Extend
-11A09..11A0A ; Grapheme_Extend
+1182F..11837 ; Grapheme_Extend
+11839..1183A ; Grapheme_Extend
+11A01..11A0A ; Grapheme_Extend
11A33..11A38 ; Grapheme_Extend
11A3B..11A3E ; Grapheme_Extend
11A47 ; Grapheme_Extend
@@ -9829,6 +10007,10 @@ FF9E..FF9F ; Grapheme_Extend
11D3C..11D3D ; Grapheme_Extend
11D3F..11D45 ; Grapheme_Extend
11D47 ; Grapheme_Extend
+11D90..11D91 ; Grapheme_Extend
+11D95 ; Grapheme_Extend
+11D97 ; Grapheme_Extend
+11EF3..11EF4 ; Grapheme_Extend
16AF0..16AF4 ; Grapheme_Extend
16B30..16B36 ; Grapheme_Extend
16F8F..16F92 ; Grapheme_Extend
@@ -9856,7 +10038,7 @@ FF9E..FF9F ; Grapheme_Extend
E0020..E007F ; Grapheme_Extend
E0100..E01EF ; Grapheme_Extend
-# Total code points: 1901
+# Total code points: 1943
# ================================================
@@ -9959,7 +10141,7 @@ E0100..E01EF ; Grapheme_Extend
0531..0556 ; Grapheme_Base
0559 ; Grapheme_Base
055A..055F ; Grapheme_Base
-0561..0587 ; Grapheme_Base
+0560..0588 ; Grapheme_Base
0589 ; Grapheme_Base
058A ; Grapheme_Base
058D..058E ; Grapheme_Base
@@ -9969,7 +10151,7 @@ E0100..E01EF ; Grapheme_Extend
05C3 ; Grapheme_Base
05C6 ; Grapheme_Base
05D0..05EA ; Grapheme_Base
-05F0..05F2 ; Grapheme_Base
+05EF..05F2 ; Grapheme_Base
05F3..05F4 ; Grapheme_Base
0606..0608 ; Grapheme_Base
0609..060A ; Grapheme_Base
@@ -10006,6 +10188,7 @@ E0100..E01EF ; Grapheme_Extend
07F6 ; Grapheme_Base
07F7..07F9 ; Grapheme_Base
07FA ; Grapheme_Base
+07FE..07FF ; Grapheme_Base
0800..0815 ; Grapheme_Base
081A ; Grapheme_Base
0824 ; Grapheme_Base
@@ -10065,6 +10248,7 @@ E0100..E01EF ; Grapheme_Extend
0A5E ; Grapheme_Base
0A66..0A6F ; Grapheme_Base
0A72..0A74 ; Grapheme_Base
+0A76 ; Grapheme_Base
0A83 ; Grapheme_Base
0A85..0A8D ; Grapheme_Base
0A8F..0A91 ; Grapheme_Base
@@ -10133,6 +10317,7 @@ E0100..E01EF ; Grapheme_Extend
0C7F ; Grapheme_Base
0C80 ; Grapheme_Base
0C82..0C83 ; Grapheme_Base
+0C84 ; Grapheme_Base
0C85..0C8C ; Grapheme_Base
0C8E..0C90 ; Grapheme_Base
0C92..0CA8 ; Grapheme_Base
@@ -10260,7 +10445,8 @@ E0100..E01EF ; Grapheme_Extend
10D0..10FA ; Grapheme_Base
10FB ; Grapheme_Base
10FC ; Grapheme_Base
-10FD..1248 ; Grapheme_Base
+10FD..10FF ; Grapheme_Base
+1100..1248 ; Grapheme_Base
124A..124D ; Grapheme_Base
1250..1256 ; Grapheme_Base
1258 ; Grapheme_Base
@@ -10318,7 +10504,7 @@ E0100..E01EF ; Grapheme_Extend
1810..1819 ; Grapheme_Base
1820..1842 ; Grapheme_Base
1843 ; Grapheme_Base
-1844..1877 ; Grapheme_Base
+1844..1878 ; Grapheme_Base
1880..1884 ; Grapheme_Base
1887..18A8 ; Grapheme_Base
18AA ; Grapheme_Base
@@ -10387,6 +10573,8 @@ E0100..E01EF ; Grapheme_Extend
1C78..1C7D ; Grapheme_Base
1C7E..1C7F ; Grapheme_Base
1C80..1C88 ; Grapheme_Base
+1C90..1CBA ; Grapheme_Base
+1CBD..1CBF ; Grapheme_Base
1CC0..1CC7 ; Grapheme_Base
1CD3 ; Grapheme_Base
1CE1 ; Grapheme_Base
@@ -10623,10 +10811,8 @@ E0100..E01EF ; Grapheme_Extend
2B47..2B4C ; Grapheme_Base
2B4D..2B73 ; Grapheme_Base
2B76..2B95 ; Grapheme_Base
-2B98..2BB9 ; Grapheme_Base
-2BBD..2BC8 ; Grapheme_Base
-2BCA..2BD2 ; Grapheme_Base
-2BEC..2BEF ; Grapheme_Base
+2B98..2BC8 ; Grapheme_Base
+2BCA..2BFE ; Grapheme_Base
2C00..2C2E ; Grapheme_Base
2C30..2C5E ; Grapheme_Base
2C60..2C7B ; Grapheme_Base
@@ -10690,7 +10876,7 @@ E0100..E01EF ; Grapheme_Extend
2E40 ; Grapheme_Base
2E41 ; Grapheme_Base
2E42 ; Grapheme_Base
-2E43..2E49 ; Grapheme_Base
+2E43..2E4E ; Grapheme_Base
2E80..2E99 ; Grapheme_Base
2E9B..2EF3 ; Grapheme_Base
2F00..2FD5 ; Grapheme_Base
@@ -10742,7 +10928,7 @@ E0100..E01EF ; Grapheme_Extend
30FB ; Grapheme_Base
30FC..30FE ; Grapheme_Base
30FF ; Grapheme_Base
-3105..312E ; Grapheme_Base
+3105..312F ; Grapheme_Base
3131..318E ; Grapheme_Base
3190..3191 ; Grapheme_Base
3192..3195 ; Grapheme_Base
@@ -10764,7 +10950,7 @@ E0100..E01EF ; Grapheme_Extend
3300..33FF ; Grapheme_Base
3400..4DB5 ; Grapheme_Base
4DC0..4DFF ; Grapheme_Base
-4E00..9FEA ; Grapheme_Base
+4E00..9FEF ; Grapheme_Base
A000..A014 ; Grapheme_Base
A015 ; Grapheme_Base
A016..A48C ; Grapheme_Base
@@ -10798,8 +10984,7 @@ A788 ; Grapheme_Base
A789..A78A ; Grapheme_Base
A78B..A78E ; Grapheme_Base
A78F ; Grapheme_Base
-A790..A7AE ; Grapheme_Base
-A7B0..A7B7 ; Grapheme_Base
+A790..A7B9 ; Grapheme_Base
A7F7 ; Grapheme_Base
A7F8..A7F9 ; Grapheme_Base
A7FA ; Grapheme_Base
@@ -10825,7 +11010,7 @@ A8F2..A8F7 ; Grapheme_Base
A8F8..A8FA ; Grapheme_Base
A8FB ; Grapheme_Base
A8FC ; Grapheme_Base
-A8FD ; Grapheme_Base
+A8FD..A8FE ; Grapheme_Base
A900..A909 ; Grapheme_Base
A90A..A925 ; Grapheme_Base
A92E..A92F ; Grapheme_Base
@@ -11089,8 +11274,8 @@ FFFC..FFFD ; Grapheme_Base
10A00 ; Grapheme_Base
10A10..10A13 ; Grapheme_Base
10A15..10A17 ; Grapheme_Base
-10A19..10A33 ; Grapheme_Base
-10A40..10A47 ; Grapheme_Base
+10A19..10A35 ; Grapheme_Base
+10A40..10A48 ; Grapheme_Base
10A50..10A58 ; Grapheme_Base
10A60..10A7C ; Grapheme_Base
10A7D..10A7E ; Grapheme_Base
@@ -11115,7 +11300,15 @@ FFFC..FFFD ; Grapheme_Base
10C80..10CB2 ; Grapheme_Base
10CC0..10CF2 ; Grapheme_Base
10CFA..10CFF ; Grapheme_Base
+10D00..10D23 ; Grapheme_Base
+10D30..10D39 ; Grapheme_Base
10E60..10E7E ; Grapheme_Base
+10F00..10F1C ; Grapheme_Base
+10F1D..10F26 ; Grapheme_Base
+10F27 ; Grapheme_Base
+10F30..10F45 ; Grapheme_Base
+10F51..10F54 ; Grapheme_Base
+10F55..10F59 ; Grapheme_Base
11000 ; Grapheme_Base
11002 ; Grapheme_Base
11003..11037 ; Grapheme_Base
@@ -11134,6 +11327,8 @@ FFFC..FFFD ; Grapheme_Base
1112C ; Grapheme_Base
11136..1113F ; Grapheme_Base
11140..11143 ; Grapheme_Base
+11144 ; Grapheme_Base
+11145..11146 ; Grapheme_Base
11150..11172 ; Grapheme_Base
11174..11175 ; Grapheme_Base
11176 ; Grapheme_Base
@@ -11142,7 +11337,7 @@ FFFC..FFFD ; Grapheme_Base
111B3..111B5 ; Grapheme_Base
111BF..111C0 ; Grapheme_Base
111C1..111C4 ; Grapheme_Base
-111C5..111C9 ; Grapheme_Base
+111C5..111C8 ; Grapheme_Base
111CD ; Grapheme_Base
111D0..111D9 ; Grapheme_Base
111DA ; Grapheme_Base
@@ -11218,19 +11413,22 @@ FFFC..FFFD ; Grapheme_Base
116AE..116AF ; Grapheme_Base
116B6 ; Grapheme_Base
116C0..116C9 ; Grapheme_Base
-11700..11719 ; Grapheme_Base
+11700..1171A ; Grapheme_Base
11720..11721 ; Grapheme_Base
11726 ; Grapheme_Base
11730..11739 ; Grapheme_Base
1173A..1173B ; Grapheme_Base
1173C..1173E ; Grapheme_Base
1173F ; Grapheme_Base
+11800..1182B ; Grapheme_Base
+1182C..1182E ; Grapheme_Base
+11838 ; Grapheme_Base
+1183B ; Grapheme_Base
118A0..118DF ; Grapheme_Base
118E0..118E9 ; Grapheme_Base
118EA..118F2 ; Grapheme_Base
118FF ; Grapheme_Base
11A00 ; Grapheme_Base
-11A07..11A08 ; Grapheme_Base
11A0B..11A32 ; Grapheme_Base
11A39 ; Grapheme_Base
11A3A ; Grapheme_Base
@@ -11241,6 +11439,7 @@ FFFC..FFFD ; Grapheme_Base
11A86..11A89 ; Grapheme_Base
11A97 ; Grapheme_Base
11A9A..11A9C ; Grapheme_Base
+11A9D ; Grapheme_Base
11A9E..11AA2 ; Grapheme_Base
11AC0..11AF8 ; Grapheme_Base
11C00..11C08 ; Grapheme_Base
@@ -11261,6 +11460,17 @@ FFFC..FFFD ; Grapheme_Base
11D0B..11D30 ; Grapheme_Base
11D46 ; Grapheme_Base
11D50..11D59 ; Grapheme_Base
+11D60..11D65 ; Grapheme_Base
+11D67..11D68 ; Grapheme_Base
+11D6A..11D89 ; Grapheme_Base
+11D8A..11D8E ; Grapheme_Base
+11D93..11D94 ; Grapheme_Base
+11D96 ; Grapheme_Base
+11D98 ; Grapheme_Base
+11DA0..11DA9 ; Grapheme_Base
+11EE0..11EF2 ; Grapheme_Base
+11EF5..11EF6 ; Grapheme_Base
+11EF7..11EF8 ; Grapheme_Base
12000..12399 ; Grapheme_Base
12400..1246E ; Grapheme_Base
12470..12474 ; Grapheme_Base
@@ -11283,12 +11493,15 @@ FFFC..FFFD ; Grapheme_Base
16B5B..16B61 ; Grapheme_Base
16B63..16B77 ; Grapheme_Base
16B7D..16B8F ; Grapheme_Base
+16E40..16E7F ; Grapheme_Base
+16E80..16E96 ; Grapheme_Base
+16E97..16E9A ; Grapheme_Base
16F00..16F44 ; Grapheme_Base
16F50 ; Grapheme_Base
16F51..16F7E ; Grapheme_Base
16F93..16F9F ; Grapheme_Base
16FE0..16FE1 ; Grapheme_Base
-17000..187EC ; Grapheme_Base
+17000..187F1 ; Grapheme_Base
18800..18AF2 ; Grapheme_Base
1B000..1B11E ; Grapheme_Base
1B170..1B2FB ; Grapheme_Base
@@ -11309,8 +11522,9 @@ FFFC..FFFD ; Grapheme_Base
1D1AE..1D1E8 ; Grapheme_Base
1D200..1D241 ; Grapheme_Base
1D245 ; Grapheme_Base
+1D2E0..1D2F3 ; Grapheme_Base
1D300..1D356 ; Grapheme_Base
-1D360..1D371 ; Grapheme_Base
+1D360..1D378 ; Grapheme_Base
1D400..1D454 ; Grapheme_Base
1D456..1D49C ; Grapheme_Base
1D49E..1D49F ; Grapheme_Base
@@ -11363,6 +11577,11 @@ FFFC..FFFD ; Grapheme_Base
1E900..1E943 ; Grapheme_Base
1E950..1E959 ; Grapheme_Base
1E95E..1E95F ; Grapheme_Base
+1EC71..1ECAB ; Grapheme_Base
+1ECAC ; Grapheme_Base
+1ECAD..1ECAF ; Grapheme_Base
+1ECB0 ; Grapheme_Base
+1ECB1..1ECB4 ; Grapheme_Base
1EE00..1EE03 ; Grapheme_Base
1EE05..1EE1F ; Grapheme_Base
1EE21..1EE22 ; Grapheme_Base
@@ -11404,8 +11623,7 @@ FFFC..FFFD ; Grapheme_Base
1F0C1..1F0CF ; Grapheme_Base
1F0D1..1F0F5 ; Grapheme_Base
1F100..1F10C ; Grapheme_Base
-1F110..1F12E ; Grapheme_Base
-1F130..1F16B ; Grapheme_Base
+1F110..1F16B ; Grapheme_Base
1F170..1F1AC ; Grapheme_Base
1F1E6..1F202 ; Grapheme_Base
1F210..1F23B ; Grapheme_Base
@@ -11416,9 +11634,9 @@ FFFC..FFFD ; Grapheme_Base
1F3FB..1F3FF ; Grapheme_Base
1F400..1F6D4 ; Grapheme_Base
1F6E0..1F6EC ; Grapheme_Base
-1F6F0..1F6F8 ; Grapheme_Base
+1F6F0..1F6F9 ; Grapheme_Base
1F700..1F773 ; Grapheme_Base
-1F780..1F7D4 ; Grapheme_Base
+1F780..1F7D8 ; Grapheme_Base
1F800..1F80B ; Grapheme_Base
1F810..1F847 ; Grapheme_Base
1F850..1F859 ; Grapheme_Base
@@ -11426,11 +11644,14 @@ FFFC..FFFD ; Grapheme_Base
1F890..1F8AD ; Grapheme_Base
1F900..1F90B ; Grapheme_Base
1F910..1F93E ; Grapheme_Base
-1F940..1F94C ; Grapheme_Base
-1F950..1F96B ; Grapheme_Base
-1F980..1F997 ; Grapheme_Base
-1F9C0 ; Grapheme_Base
-1F9D0..1F9E6 ; Grapheme_Base
+1F940..1F970 ; Grapheme_Base
+1F973..1F976 ; Grapheme_Base
+1F97A ; Grapheme_Base
+1F97C..1F9A2 ; Grapheme_Base
+1F9B0..1F9B9 ; Grapheme_Base
+1F9C0..1F9C2 ; Grapheme_Base
+1F9D0..1F9FF ; Grapheme_Base
+1FA60..1FA6D ; Grapheme_Base
20000..2A6D6 ; Grapheme_Base
2A700..2B734 ; Grapheme_Base
2B740..2B81D ; Grapheme_Base
@@ -11438,7 +11659,7 @@ FFFC..FFFD ; Grapheme_Base
2CEB0..2EBE0 ; Grapheme_Base
2F800..2FA1D ; Grapheme_Base
-# Total code points: 134733
+# Total code points: 135374
# ================================================
@@ -11490,12 +11711,14 @@ ABED ; Grapheme_Link
1163F ; Grapheme_Link
116B6 ; Grapheme_Link
1172B ; Grapheme_Link
+11839 ; Grapheme_Link
11A34 ; Grapheme_Link
11A47 ; Grapheme_Link
11A99 ; Grapheme_Link
11C3F ; Grapheme_Link
11D44..11D45 ; Grapheme_Link
+11D97 ; Grapheme_Link
-# Total code points: 54
+# Total code points: 56
# EOF
diff --git a/Build/source/libs/icu/icu-src/source/data/unidata/DerivedNormalizationProps.txt b/Build/source/libs/icu/icu-src/source/data/unidata/DerivedNormalizationProps.txt
index 6a8adda9f91..a9608136488 100644
--- a/Build/source/libs/icu/icu-src/source/data/unidata/DerivedNormalizationProps.txt
+++ b/Build/source/libs/icu/icu-src/source/data/unidata/DerivedNormalizationProps.txt
@@ -1,6 +1,6 @@
-# DerivedNormalizationProps-10.0.0.txt
-# Date: 2017-02-14, 04:26:07 GMT
-# © 2017 Unicode®, Inc.
+# DerivedNormalizationProps-11.0.0.txt
+# Date: 2018-01-31, 08:20:15 GMT
+# © 2018 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# For terms of use, see http://www.unicode.org/terms_of_use.html
#
@@ -3522,6 +3522,52 @@ FFE3 ; Expands_On_NFKC
1C86 ; NFKC_CF; 044A
1C87 ; NFKC_CF; 0463
1C88 ; NFKC_CF; A64B
+1C90 ; NFKC_CF; 10D0
+1C91 ; NFKC_CF; 10D1
+1C92 ; NFKC_CF; 10D2
+1C93 ; NFKC_CF; 10D3
+1C94 ; NFKC_CF; 10D4
+1C95 ; NFKC_CF; 10D5
+1C96 ; NFKC_CF; 10D6
+1C97 ; NFKC_CF; 10D7
+1C98 ; NFKC_CF; 10D8
+1C99 ; NFKC_CF; 10D9
+1C9A ; NFKC_CF; 10DA
+1C9B ; NFKC_CF; 10DB
+1C9C ; NFKC_CF; 10DC
+1C9D ; NFKC_CF; 10DD
+1C9E ; NFKC_CF; 10DE
+1C9F ; NFKC_CF; 10DF
+1CA0 ; NFKC_CF; 10E0
+1CA1 ; NFKC_CF; 10E1
+1CA2 ; NFKC_CF; 10E2
+1CA3 ; NFKC_CF; 10E3
+1CA4 ; NFKC_CF; 10E4
+1CA5 ; NFKC_CF; 10E5
+1CA6 ; NFKC_CF; 10E6
+1CA7 ; NFKC_CF; 10E7
+1CA8 ; NFKC_CF; 10E8
+1CA9 ; NFKC_CF; 10E9
+1CAA ; NFKC_CF; 10EA
+1CAB ; NFKC_CF; 10EB
+1CAC ; NFKC_CF; 10EC
+1CAD ; NFKC_CF; 10ED
+1CAE ; NFKC_CF; 10EE
+1CAF ; NFKC_CF; 10EF
+1CB0 ; NFKC_CF; 10F0
+1CB1 ; NFKC_CF; 10F1
+1CB2 ; NFKC_CF; 10F2
+1CB3 ; NFKC_CF; 10F3
+1CB4 ; NFKC_CF; 10F4
+1CB5 ; NFKC_CF; 10F5
+1CB6 ; NFKC_CF; 10F6
+1CB7 ; NFKC_CF; 10F7
+1CB8 ; NFKC_CF; 10F8
+1CB9 ; NFKC_CF; 10F9
+1CBA ; NFKC_CF; 10FA
+1CBD ; NFKC_CF; 10FD
+1CBE ; NFKC_CF; 10FE
+1CBF ; NFKC_CF; 10FF
1D2C ; NFKC_CF; 0061
1D2D ; NFKC_CF; 00E6
1D2E ; NFKC_CF; 0062
@@ -5279,6 +5325,7 @@ A7B2 ; NFKC_CF; 029D
A7B3 ; NFKC_CF; AB53
A7B4 ; NFKC_CF; A7B5
A7B6 ; NFKC_CF; A7B7
+A7B8 ; NFKC_CF; A7B9
A7F8 ; NFKC_CF; 0127
A7F9 ; NFKC_CF; 0153
AB5C ; NFKC_CF; A727
@@ -6860,6 +6907,38 @@ FFF0..FFF8 ; NFKC_CF;
118BD ; NFKC_CF; 118DD
118BE ; NFKC_CF; 118DE
118BF ; NFKC_CF; 118DF
+16E40 ; NFKC_CF; 16E60
+16E41 ; NFKC_CF; 16E61
+16E42 ; NFKC_CF; 16E62
+16E43 ; NFKC_CF; 16E63
+16E44 ; NFKC_CF; 16E64
+16E45 ; NFKC_CF; 16E65
+16E46 ; NFKC_CF; 16E66
+16E47 ; NFKC_CF; 16E67
+16E48 ; NFKC_CF; 16E68
+16E49 ; NFKC_CF; 16E69
+16E4A ; NFKC_CF; 16E6A
+16E4B ; NFKC_CF; 16E6B
+16E4C ; NFKC_CF; 16E6C
+16E4D ; NFKC_CF; 16E6D
+16E4E ; NFKC_CF; 16E6E
+16E4F ; NFKC_CF; 16E6F
+16E50 ; NFKC_CF; 16E70
+16E51 ; NFKC_CF; 16E71
+16E52 ; NFKC_CF; 16E72
+16E53 ; NFKC_CF; 16E73
+16E54 ; NFKC_CF; 16E74
+16E55 ; NFKC_CF; 16E75
+16E56 ; NFKC_CF; 16E76
+16E57 ; NFKC_CF; 16E77
+16E58 ; NFKC_CF; 16E78
+16E59 ; NFKC_CF; 16E79
+16E5A ; NFKC_CF; 16E7A
+16E5B ; NFKC_CF; 16E7B
+16E5C ; NFKC_CF; 16E7C
+16E5D ; NFKC_CF; 16E7D
+16E5E ; NFKC_CF; 16E7E
+16E5F ; NFKC_CF; 16E7F
1BCA0..1BCA3 ; NFKC_CF;
1D15E ; NFKC_CF; 1D157 1D165
1D15F ; NFKC_CF; 1D158 1D165
@@ -8715,7 +8794,7 @@ E0080..E00FF ; NFKC_CF;
E0100..E01EF ; NFKC_CF;
E01F0..E0FFF ; NFKC_CF;
-# Total code points: 10227
+# Total code points: 10306
# ================================================
@@ -9054,6 +9133,8 @@ E01F0..E0FFF ; NFKC_CF;
180B..180D ; Changes_When_NFKC_Casefolded
180E ; Changes_When_NFKC_Casefolded
1C80..1C88 ; Changes_When_NFKC_Casefolded
+1C90..1CBA ; Changes_When_NFKC_Casefolded
+1CBD..1CBF ; Changes_When_NFKC_Casefolded
1D2C..1D2E ; Changes_When_NFKC_Casefolded
1D30..1D3A ; Changes_When_NFKC_Casefolded
1D3C..1D4D ; Changes_When_NFKC_Casefolded
@@ -9474,6 +9555,7 @@ A7A8 ; Changes_When_NFKC_Casefolded
A7AA..A7AE ; Changes_When_NFKC_Casefolded
A7B0..A7B4 ; Changes_When_NFKC_Casefolded
A7B6 ; Changes_When_NFKC_Casefolded
+A7B8 ; Changes_When_NFKC_Casefolded
A7F8..A7F9 ; Changes_When_NFKC_Casefolded
AB5C..AB5F ; Changes_When_NFKC_Casefolded
AB70..ABBF ; Changes_When_NFKC_Casefolded
@@ -9604,6 +9686,7 @@ FFF0..FFF8 ; Changes_When_NFKC_Casefolded
104B0..104D3 ; Changes_When_NFKC_Casefolded
10C80..10CB2 ; Changes_When_NFKC_Casefolded
118A0..118BF ; Changes_When_NFKC_Casefolded
+16E40..16E5F ; Changes_When_NFKC_Casefolded
1BCA0..1BCA3 ; Changes_When_NFKC_Casefolded
1D15E..1D164 ; Changes_When_NFKC_Casefolded
1D173..1D17A ; Changes_When_NFKC_Casefolded
@@ -9701,6 +9784,6 @@ E0080..E00FF ; Changes_When_NFKC_Casefolded
E0100..E01EF ; Changes_When_NFKC_Casefolded
E01F0..E0FFF ; Changes_When_NFKC_Casefolded
-# Total code points: 10227
+# Total code points: 10306
# EOF
diff --git a/Build/source/libs/icu/icu-src/source/data/unidata/FractionalUCA.txt b/Build/source/libs/icu/icu-src/source/data/unidata/FractionalUCA.txt
index bff4282645f..6c965ccae4d 100644
--- a/Build/source/libs/icu/icu-src/source/data/unidata/FractionalUCA.txt
+++ b/Build/source/libs/icu/icu-src/source/data/unidata/FractionalUCA.txt
@@ -1,12 +1,14 @@
# Fractional UCA Table, generated from the UCA DUCET
-# 2017-06-05
-# VERSION: UCA=10.0.0, UCD=10.0.0
+# 2018-05-21 [MS]
+# VERSION: UCA=11.0.0, UCD=11.0.0
+# © 2016 and later: Unicode, Inc. and others.
+# License & terms of use: http://www.unicode.org/copyright.html
# For a description of the format and usage, see
# http://www.unicode.org/reports/tr35/tr35-collation.html
-[UCA version = 10.0.0]
-# Unified_Ideograph: 87882 characters
-[Unified_Ideograph 4E00..9FEA FA0E..FA0F FA11 FA13..FA14 FA1F FA21 FA23..FA24 FA27..FA29 3400..4DB5 20000..2A6D6 2A700..2B734 2B740..2B81D 2B820..2CEA1 2CEB0..2EBE0]
+[UCA version = 11.0.0]
+# Unified_Ideograph: 87887 characters
+[Unified_Ideograph 4E00..9FEF FA0E..FA0F FA11 FA13..FA14 FA1F FA21 FA23..FA24 FA27..FA29 3400..4DB5 20000..2A6D6 2A700..2B734 2B740..2B81D 2B820..2CEA1 2CEB0..2EBE0]
[radical 1=⼀一:一-丆𠀀-𠀂𫠠𬺰万-丌亐卄𠀃-𠀆𪜀𪜁𫝀𬺱-𬺴不-专丗𠀇-𠀌𪜂𫠡𬺵-𬺹且-世丘-丝㐀𠀍-𠀗𫠢𫠣𬺺-𬺾丞-丢㐁㐂𠀘-𠀚𠀜𠀞-𠀠𫝁𫠤𫠥𬺿-𬻉丣-严丽鿖𠀡-𠀤𠀦-𠀨𠀪𠀫𫝂𫠦-𫠩𬻊-𬻒並丧𠀬-𠀮𠀰-𠀴𪜃𫠪-𫠭𬻓-𬻘鿗𠀵𠀶𠀸𠀺𠀻𪜄𫠮𬻙-𬻝𠀽-𠁀𠤢𪜅𫠯-𫠲𬻞-𬻠𠁁-𠁅𪜆𫠳-𫠵𬻡-𬻥𠁆-𠁈𠁊𠁋𫠶𬻦-𬻨𠁌𠁍𫠷-𫠻𬻩-𬻮𠁎-𠁒𫝃𫠼𫠽𬻯𠁓𠁔𫠾𫠿𬻰𠁕𠁗-𠁛𠁝𤳏𪜇𫡀𠁖𠁟𫡁𫡂𠁠𬻱]
[radical 2=⼁丨:丨丩𠁡𠁢个丫㐃㐄𫡃𫡄中-丰𠁣𪜈𫡅丱𠁥𠁦𬻲𬻳串𠁧𠁨𫡆丳𠁩-𠁬𫡇临𠁭-𠁯𪜉𬻴丵𠁰𠁱𫡈𫡉𬻵-𬻷𠁳-𠁵𬻸𬻹𠁶𫡊𠁸𫡋𫡌𠁹𠁺𫡍𠁻𫡎]
@@ -60,7 +62,7 @@
[radical 50=⼱巾:巾-帅㠲㠳𢁒-𢁔𪩲𫶽𫶾帆-师㠴-㠶𢁕-𢁤𭘑𭘒帉-帐㠷-㠼𢁥-𢁺𫶿-𫷂𭘓𭘔帑-帜㠽-㡀𢁻-𢂏𫷃𫷄𭘕-𭘚帝-帧㡁-㡆𢂐-𢂰𫷅𭘛-𭘞帨-帱㡇㡈𢂱-𢃌𪩳𭘟-𭘣帲-帼㡉-㡎𢃍-𢃪𪩴-𪩷𫷆𫷇𭘤-𭘦帽-幇幉㡏-㡖𢃫-𢄉𪩸-𪩺𫷈𫷉𭘧-𭘮幊-幏㡗-㡛𢄊-𢄞𫷊-𫷏𭘯-𭘱幈幑-幙幛㡜-㡟𢄟-𢄲𪩻𭘲-𭘴幚幜-幥㡠㡡𢄳-𢅌𪩼𭘵幦-幩㡢-㡤𢅍-𢅞𪩽𫷐𫷑𭘶-𭘸幪-幬㡥㡦𢅟-𢅨𪩾幭-幯𢅩-𢅬𭘹-𭘻幰𢅭-𢅷𪩿𫷒𫷓𭘼幱㡧㡨𢅸-𢅺𪪀𢅻-𢅽㡩㡪𢅾-𢆂𭘽𢆃-𢆈]
[radical 51=⼲干:干平𢆉年幵𫷔𭘾𢆊-𢆌𪪁𫷕𫷖并-幸𢆍-𢆐𭘿𭙀𢆑-𢆕𭙁𢆖-𢆙𭙂𭙃𢆚𪪂𪪃𫷗𢆛-𢆝𪪄幹𢆞-𢆠𪪅𪪆𫷘-𫷚𢆢𢆤𫷛𭙄-𭙆𢆥𪪇𫷜𫷝𢆦-𢆪𪪈𫷞𭙇𢆫𪪉𢆬-𢆮]
[radical 52=⼳幺:乡幺幻𢆯-𢆱𭙈𭙉幼𢆲-𢆵𭙊𢆶𪪊𢆷-𢆺𭙋𢆻-𢆾幽𢆿𢇂𪪋𫷟𭙌𢇁𢇃-𢇉幾㡫㡬𢇊𫷠𫷡𠅹𢇋𫷢𫷣㡭𢇌-𢇓𫷤㡮𢇖]
-[radical 53=⼴广:广-広𠆲𫷥𭙍-𭙏庄-庆㡯-㡱𢇗-𢇢𫷦𭙐-𭙒庇-应庘㡲㡳𢇣-𢇱𪪌𪪍𫷧𭙓-𭙗底-店庙-废㡴-㡻𢇲-𢈆𪪎𪪏𭙘𭙙庠-度㡼-㢂𢈇-𢈘𪪐𪪑𫷨𫷩𭙚𭙛座-庯㢃-㢇𢈙-𢈱𪪒-𪪗𫷪-𫷯𭙜-𭙡庰-庼㢈-㢌𢈳-𢉕𢉗-𢉚𪪘𪪙𫝶𫝷𫷰-𫷵𭙢𭙣庽-廃廊㢍-㢐𢉛-𢉻𢉽𢉾𪪚𪪛𫷶-𫷹𭙤-𭙧廅-廉廋廌㢑𢉼𢉿-𢊔𪪜𪪝𫷺𫷻𭙨-𭙭廄廍-廘㢒-㢕𢊕-𢊬𪪞-𪪠𫷼-𫷿𭙮-𭙳廙-廤㢖-㢘𢊭-𢋁𪪡-𪪣𫸀𭙴-𭙻廥-廪㢙-㢜𢋂-𢋐𪪤𪪥𫸁𫸂𭙼-𭚃𢋑-𢋛𢋝-𢋠𪪦-𪪨𫸃-𫸆𭚄廫𢋡-𢋭𪪩𫸇𭚅-𭚈廬廭龐㢝𠓌𢋮-𢋺𪪪𫸈𭚉-𭚋廮-廰㢞𢋻-𢌃𫸉𭚌廱𢌄-𢌆𪪫𫸊𭚍𭚎廲𢌈-𢌌𫸋𫸌𭚏𭚐𢌍-𢌑𫸍𫸎𢌒𭚑廳𫸏𢌓𫸐𢌔-𢌖]
+[radical 53=⼴广:广-広𠆲𫷥𭙍-𭙏庄-庆㡯-㡱𢇗-𢇢𫷦𭙐-𭙒庇-应庘㡲㡳𢇣-𢇱𪪌𪪍𫷧𭙓-𭙗底-店庙-废㡴-㡻𢇲-𢈆𪪎𪪏𭙘𭙙庠-度㡼-㢂𢈇-𢈘𪪐𪪑𫷨𫷩𭙚𭙛座-庯㢃-㢇𢈙-𢈱𪪒-𪪗𫷪-𫷯𭙜-𭙡庰-庼㢈-㢌𢈳-𢉕𢉗-𢉚𪪘𪪙𫝶𫝷𫷰-𫷵𭙢𭙣庽-廃廊㢍-㢐𢉛-𢉻𢉽𢉾𪪚𪪛𫷶-𫷹𭙤-𭙧廅-廉廋廌鿮㢑𢉼𢉿-𢊔𪪜𪪝𫷺𫷻𭙨-𭙭廄廍-廘㢒-㢕𢊕-𢊬𪪞-𪪠𫷼-𫷿𭙮-𭙳廙-廤㢖-㢘𢊭-𢋁𪪡-𪪣𫸀𭙴-𭙻廥-廪㢙-㢜𢋂-𢋐𪪤𪪥𫸁𫸂𭙼-𭚃𢋑-𢋛𢋝-𢋠𪪦-𪪨𫸃-𫸆𭚄廫𢋡-𢋭𪪩𫸇𭚅-𭚈廬廭龐㢝𠓌𢋮-𢋺𪪪𫸈𭚉-𭚋廮-廰㢞𢋻-𢌃𫸉𭚌廱𢌄-𢌆𪪫𫸊𭚍𭚎廲𢌈-𢌌𫸋𫸌𭚏𭚐𢌍-𢌑𫸍𫸎𢌒𭚑廳𫸏𢌓𫸐𢌔-𢌖]
[radical 54=⼵廴:廴𢌗廵㢟𢌘-𢌚𪪬𫸑延廷𢌜𭚒-𭚔廸廹㢠𢌛𢌝𢌞𪪭𪪮𭚕建-廼𢌟廽𢌠-𢌥𪪯𢌦𢌧𪪰𫸒𫸓𢌨-𢌪𪪱𢌫𣉡𦋪𪪲𫸔𫸕]
[radical 55=⼶廾:廾𢌬廿开𢌭弁𢌮𢌯异𢌰-𢌲𫸖弃-弅𢌳𢌵-𢌺𪪳弆𢌻𢌽-𢍁𪪴𫸗-𫸙弇弈𢌴𢌼𢍂-𢍌𭚖弉𢍍-𢍓𪪵𫸚𫸛𭚗𭚘𢍔-𢍙𫸜𫸝𢍚-𢍡𪪶𫸞𢍢-𢍥𪪷𫸟𭚙㢡𢍦-𢍫𭚚弊㢢𢍬㢣𢍮-𢍱𫸠𫸡𭚛-𭚝𢍲-𢍴𪪸𫸢𫸣𢍵𫸤𢍶𪪹𭚞𢍷-𢍹]
[radical 56=⼷弋:弋𢍺弌𢍻𢍼弍𭚟-𭚡弎-弐𢍽𢍾㢤𢍿-𢎅㢥𢎆-𢎍𭚢弑𢎎弒㢦𢎏𢎐𣦏𭚣𭚤𢎑-𢎖]
@@ -91,7 +93,7 @@
[radical 81=⽐比:比毕𠂱𣬂-𣬇毖-毘㲋𭯊毙𣬈-𣬊𭯋-𭯎𣬋𣬌𭯏𬆹𭯐𭯑𣬍𬆺𣬎-𣬑𪵕𣬒-𣬔毚𣬕𣬖𬆻𣬗-𣬚]
[radical 82=⽑毛:毛𣬛𪵖㲌𣬜-𣬠毜毝𣬡-𣬨𬆼毞毟㲍-㲑𣬩-𣬷𪵗𪵘𬆽-𬆿𭯒毠毡㲒𣬸-𣭛𪵙𪵚𬇀𭯓-𭯗毢-毪㲓𣭜-𣭰𪵛𪵜𭯘毫-毮㲔-㲚𣭱-𣮇𬇁𭯙𭯚毯-毶㲛-㲞𣮈-𣮧𪵝𪵞𭯛-𭯝毷-毽㲟-㲣𣮨-𣯄𪵟𬇂𭯞𭯟毾㲤-㲩𣯅-𣯢𪵠𬇃𬇄𭯠-𭯢毿-氂𣯣-𣯷𪵡𬇅氃-氇㲪-㲮𣯸-𣰉𬇆𭯣-𭯥氈-氊𣰊-𣰙𬇇𭯦-𭯩氋㲯㲰𣰚-𣰪𪵢𬇈𭯪氌㲱𣰫-𣰰𭯫𠫈𣰱-𣰵𭯬𣰶-𣰺氍𣰻-𣰾𭯭𣰿-𣱁𭯮氎㲲𣱂𣱃𭯯𣱄]
[radical 83=⽒氏:氏-民𫞕氒𫞖𬇉氓𣱅𣱆𬇊𬇋𭯰𣱇-𣱊𬇌㲳𬇍𣱋-𣱎𭯱𣱏𣱐𬇎𣱑-𣱔]
-[radical 84=⽓气:气-氘𣱕𣱖氙氚𣱗𣱘氛-氝㲴𣱙-𣱛𪵣𬇏𭯲氞-氢𣱜-𣱠𪵤𬇐氣-氩𣱡𬇑氪氫㲵𣱣𪵥氬-氰𣱢𣱤𣱥氱𣱦-𣱨𪵦氲氳𣱩𪵧𬇒㲶𣱪𣱫𭯳㲷𭯴𣱬𣱭𬇓𣱮𭯵𣱯𣱰]
+[radical 84=⽓气:气-氘𣱕𣱖氙氚𣱗𣱘氛-氝㲴𣱙-𣱛𪵣𬇏𭯲氞-氢𣱜-𣱠𪵤𬇐氣-氩𣱡𬇑氪氫㲵𣱣𪵥氬-氰𣱢𣱤𣱥氱𣱦-𣱨𪵦氲氳𣱩𪵧𬇒㲶𣱪𣱫𭯳鿫㲷𭯴𣱬𣱭𬇓𣱮𭯵𣱯𣱰]
[radical 85=⽔水:水氵氺𣱱氶-氹㲸𣱲-𣱴氻氼氾-汉㲹-㲼𣱵-𣱿𪵨汊-汤㲽-㲿𣲀-𣲍𪵩-𪵬𬇔-𬇗𭯶𭯷汥-沪㳀-㳊𣲎-𣲱𪵭-𪵰𬇘-𬇚𭯸-𭯼沫-泙泛-泴泶-泾㳋-㳕𣲲-𣳣𪵱-𪵶𬇛-𬇟𭯽-𭰋泚泿-洌洎-洕洗-浕㳖-㳣𣳤-𣴝𪵷-𪵽𬇠-𬇦𭰌-𭰖洍洖浖-涘涚-涩㳤-㳳𣴞-𣵶𣷚𪵾-𪶋𫞗𬇧-𬇴𭰗-𭰧涙涪-渂渄-渗渚湴㳴-㴎𣵷-𣷙𣷛-𣷻𣸊𪶌-𪶖𫞘𬇵-𬈄𭰨-𭱂渃渘渙減-湳湵-溌滋滞鿌㴏-㴤𣷼-𣸉𣸋-𣹜𪶗-𪶩𬈅-𬈕𭱃-𭱡溍-滊滍-滙滛-滝滟-滪漓㴥-㴻𣹝-𣻌𦴶𪶪-𪶾𫞙-𫞛𬈖-𬈤𭱢-𭱵滌滚滫-漊漌-漒演-漼漾-潍㴼-㵉𣻍-𣻳𣻵-𣼘𣼚-𣽂𪶿-𪷊𬈥-𬈱𭱶-𭲑漋漽潎-潿澁-澘澚-澝濐㵊-㵜𣻴𣽃-𣾨𣾪-𣾿𣿁-𣿄𪷋-𪷜𫞜𬈲-𬉇𭲒-𭲫澙澞-濏濑-濓濖㵝-㵮𣾩𣿅-𤀡𪷝-𪷧𫞝𬉈-𬉒𭲬-𭲻澀濔濕濗-濲濴-濸㵯-㵼𣿀𤀣-𤁝𤁟𤁠𪷨-𪷲𬉓-𬉚𭲼-𭳏濹-瀔㵽-㶃𤁞𤁡-𤂜𤂞-𤂠𤂢-𤂲𪷳-𪷹𬉛-𬉞𭳐-𭳛濳瀕-瀮㶄-㶋𤂝𤂡𤂳-𤃧𪷺-𪷿𫞞𬉟-𬉤𭳜-𭳫瀯-灁㶌-㶑𤃨-𤄍𪸀-𪸂𬉥-𬉪𭳬-𭳯灂-灍灏灐㶒-㶘𢌇𤄎-𤄵𪸃-𪸇𬉫-𬉭𭳰-𭳶灑-灘㶙㶚𤄶-𤅉𪸈𪸉𬉮𬉯𭳷-𭳹灙-灜㶛-㶝𤅊-𤅟𪸊𪸋灝-灡㶞㶟𤅠-𤅨𪸌𬉰𬉱𭳺-𭳽灢灣𤅩-𤅯灎灤-灦㶠𤅰-𤅶灧灨𤅷-𤅿𬉲灩灪𭳾𤆀𬉳𤆁]
[radical 86=⽕火:火-灭𤆂𪸍𭳿灮-灳炇㶡㶢𤆃-𤆌𭴀-𭴂灴-炀㶣-㶥𤆍-𤆜𪸎-𪸐𬉴-𬉺𭴃-𭴇炁-炆炈-炞㶦-㶪𤆝-𤆻𪸑-𪸗𬉻-𬊀𭴈-𭴑炟-烃㶫-㶲𤆼-𤇮𪸘-𪸢𬊁𬊂𭴒-𭴚烄-烮㶳-㶸𤇯-𤈤𪸣-𪸪𫞟𬊃-𬊈𭴛-𭴥烯-焓焕-焘㶹-㷁𤈥-𤉡𪸫-𪸲𫞠𬊉-𬊖𭴦-𭴷焔焙-煀煮㷂-㷍𤉢-𤊱𪸳-𪹃𬊗-𬊨𭴸-𭵈煁-煭煯-煸煺㮡㷎-㷞𤊲-𤋲𤋴-𤌆𤍏𪹄-𪹑𬊩-𬊱𭵉-𭵡煹煻-熙熦蒸㷟-㷪𤌇-𤌱𤌳-𤍎𪹒-𪹠𫞡𬊲-𬊾𭵢-𭵲熚-熥熧-熵黙龦龽㷫-㷲𤌲𤍐-𤍨𤍪-𤍿𤎁𤎃-𤎜𪹡-𪹩𬊿-𬋄𭵳-𭵼熶-燞㷳-㷽𤍩𤎝-𤏟𤏡-𤏴𪹪-𪹳𬋅-𬋌𭵽-𭶋營-燷鿪㷾-㸃𤏵-𤐣𪹴-𪹻𬋍-𬋐𭶌-𭶙燸-爃㸄㸅𤐤-𤑂𤑄-𤑑𦦨𪹼-𪺀𬋑-𬋓𭶚-𭶡爄-爊爌-爎爕㸆㸇㸉𤑒-𤑲𪺁𪺂𬋔-𬋘𭶢𭶣爋爏-爔爖-爘㸈㸊-㸌𤑳-𤒠𤒨𪺃-𪺅𬋙-𬋝𭶤-𭶦爙-爛㸍𤒡-𤒧𤒪-𤒹爜-爠㸎𤒩𤒺𤒻𤒽-𤓆𪺆𪺇𭶧爡爢㸏㸐𤒼𤓇-𤓎𤓐-𤓖𪺈𬋞爣𤓗-𤓛𪺉𭶨𭶩爤-爦𤓜-𤓞𤓠-𤓣𪺊𪺋𬋟𬋠㸑𤓤-𤓩𪺌爧𤓪𤓬𬋡𬋢爨𤓫𤓭爩𤓮𬋣]
[radical 87=⽖爪:爪爫𤓯-𤓵𪺍爬爭㸒㸓𤓶-𤓼𬋤𬋥𭶪爮-爰𤓽-𤔋𪺎𬋦𭶫爱𤔌-𤔏𬋧𬋨𭶬-𭶯㸔𤔐-𤔓𪺏𬋩𬋪𭶰爲𤔔-𤔖𤔘-𤔛𪺐-𪺓𬋫𬋬𭶱𤔜-𤔡𪺔𪺕𬋭𬋮𭶲𭶳爳㸕𤔢-𤔦𬋯𬋰𭶴𭶵噕爴𤔧-𤔭𪺖𪺗𬋱𬋲𭶶𤔮-𤔱𬋳𬋴𭶷𭶸𤔲-𤔸𤔼𪺘𪺙𬋵𬋶爵𤔹𤔻𤔽𤔾𭶹𤔺𤔿𤕀𬋷𤕂-𤕇𬋸𬋹𤕈-𤕍𬋺𪺚]
@@ -120,14 +122,14 @@
[radical 109=⽬目:目𥃤𥃥盯䀎䀏𥃦-𥃱𭾗-𭾙盰-盵䀐-䀔𥃲-𥄂𪾟𪾠𬑅𭾚-𭾝盶-眍䀕-䀞𥄃-𥄰𪾡-𪾣𬑆𬑇𭾞-𭾥眎-眬眿䀟-䀦𥄱-𥅙𪾤-𪾧𫞲𬑈-𬑏𭾦-𭾪眭-眾睁䀧-䀮𠌪𥅚-𥆉𪾨-𪾪𫞳𬑐-𬑕𭾫-𭾲着睂-睑鿃䀯-䁀𥆊-𥇄𥇆-𥇈𥇫𪾫𪾬𬑖𬑗𭾳-𭾸睒-睠睢-睭䁁-䁉𢰿𢾥𣪭𥇅𥇉-𥇪𥇬-𥇳𥇵-𥈁𪾭-𪾰𬑘-𬑛𭾹-𭿂睡睮-瞆䁊-䁖𥈂-𥈻𪾱-𪾴𬑜𬑝𭿃-𭿏瞇-瞓䁗-䁡𥈼-𥉳𥊇𪾵-𪾸𬑞-𬑣𭿐-𭿔瞔-瞣䁢-䁪𥉴-𥊆𥊈-𥊩𥋖𪾹-𪾻𬑤-𬑧𭿕-𭿜瞤-瞷䁫-䁳𥊪-𥋕𥋗𪾼-𪿀𬑨𬑩𭿝-𭿡瞸-矂䁴-䁺𥋘-𥋾𭿢-𭿨矃-矊𥋿-𥌔𥌖-𥌙𪿁𬑪𭿩-𭿭矋-矏䁻-䁾𥌚-𥌬𪿂矐-矓䁿䂀𥌭-𥌹𥍂𪿃𪿄𬑫𭿮-𭿱䂁𥌺-𥍁𥍃𥍅-𥍇𭿲矔䂂䂃𥍈-𥍎矕矗𥍏-𥍒𭿳𭿴矘矙䂄𥍓𬑬矖矚𥍔-𥍜𪿅䂅]
[radical 110=⽭矛:矛𭿵𥍝𭿶䂆𥍞𬑭矜䂇𥍟𥍠𪿆矝𥍡-𥍦𭿷𭿸䂈𥍧-𥍩𭿹𭿺矞矟𥍪-𥍱𪿇矠𠍢𥍲-𥍵𬑮䂉𥍶-𥎁𬑯𥎂-𥎉𭿻𥎊-𥎍𭿼䂊-䂌𥎏-𥎒𥎎𥎓-𥎜䂍𥎞-𥎠𥎝𥎡-𥎣䂎矡𥎤𥎥]
[radical 111=⽮矢:矢矣𥎦𥎧𭿽矤知𥎨矦-矨𥎩-𥎯𪿈𪿉𭿾𭿿矩䂏䂐𥎰-𥎸𬑰𬑱𮀀矪矫䂑䂒𥎹-𥏍𪿊𮀁𮀂矬短䂓𠅰𥏎-𥏗𬑲𬑳矮䂔𥏘-𥏩𪿋𬑴𮀃𮀄䂕𥏪-𥏱𪿌𮀅𥏲-𥏺𪿍𪿎𮀆-𮀈𥏻-𥏿𮀉矯矰𥐀-𥐆𬑵𥐇-𥐋𬑶矱𥐌-𥐏𬑷矲𪿏𮀊𪿐𬑸𥐑𥐒𥐐𥐓𥐔]
-[radical 112=⽯石:石䂖𥐕𥐖矴-矶䂗𥐗-𥐜𬑹矷-码䂘䂙𥐝-𥐨𬑺-𬑼𮀋𮀌泵砂-砜䂚-䂞𥐩-𥑅𪿑-𪿓𬑽-𬒂𮀍𮀎砝-硁䂟-䂨𥑆-𥑲𪿔-𪿘𬒃-𬒈𮀏-𮀔硂-硛鿎䂩-䂯𥑳-𥒩𪿙-𪿝𬒉-𬒌𮀕-𮀘硜-硷䂰-䂶𥒪-𥓉𪿞-𪿣𬒍-𬒑𮀙-𮀡硸-硽硿-碜碰䂷-䃇𥓊-𥓹𪿤-𪿩𬒒-𬒕𮀢-𮀫硾碝-碯碱-碹磁䃈-䃐𥓺-𥔬𪿪𪿫𬒖-𬒚𮀬-𮀵確-磀磂-磙磜磤䃑-䃗𥔭-𥕋𪿬-𪿮𬒛𮀶-𮀺磚磛磝-磣磥-磮䃘-䃞䃠𥕌-𥕯𪿯-𪿴𬒜-𬒞𮀻-𮁃磯-礅䃟䃡-䃨𥕰-𥖖𪿵-𪿷𬒟-𬒣𮁄-𮁉礆-礖䃩-䃯𣞏𥖗-𥖩𪿸-𪿺𬒤𬒥𮁊-𮁏礗-礡䃰𥖪-𥖺𪿻-𪿽𬒦𬒧𮁐-𮁓礢-礬䃱-䃳𡕎𥖻-𥗑𬒨𮁔礭-礴䃴-䃷𥗒-𥗜𪿾𮁕礵䃸䃹𥗝-𥗪𬒩𬒪礶礷𥗫-𥗳𪿿𮁖-𮁘礸䃺𥗴𥗵𥗷𥗸𬒫𮁙𮁚礹𥗹䃻𥗺-𥗽𮁛𥗾-𥘄]
+[radical 112=⽯石:石䂖𥐕𥐖矴-矶䂗𥐗-𥐜𬑹矷-码䂘䂙𥐝-𥐨𬑺-𬑼𮀋𮀌泵砂-砜䂚-䂞𥐩-𥑅𪿑-𪿓𬑽-𬒂𮀍𮀎砝-硁鿬䂟-䂨𥑆-𥑲𪿔-𪿘𬒃-𬒈𮀏-𮀔硂-硛鿎䂩-䂯𥑳-𥒩𪿙-𪿝𬒉-𬒌𮀕-𮀘硜-硷䂰-䂶𥒪-𥓉𪿞-𪿣𬒍-𬒑𮀙-𮀡硸-硽硿-碜碰䂷-䃇𥓊-𥓹𪿤-𪿩𬒒-𬒕𮀢-𮀫硾碝-碯碱-碹磁䃈-䃐𥓺-𥔬𪿪𪿫𬒖-𬒚𮀬-𮀵確-磀磂-磙磜磤䃑-䃗𥔭-𥕋𪿬-𪿮𬒛𮀶-𮀺磚磛磝-磣磥-磮䃘-䃞䃠𥕌-𥕯𪿯-𪿴𬒜-𬒞𮀻-𮁃磯-礅䃟䃡-䃨𥕰-𥖖𪿵-𪿷𬒟-𬒣𮁄-𮁉礆-礖䃩-䃯𣞏𥖗-𥖩𪿸-𪿺𬒤𬒥𮁊-𮁏礗-礡䃰𥖪-𥖺𪿻-𪿽𬒦𬒧𮁐-𮁓礢-礬䃱-䃳𡕎𥖻-𥗑𬒨𮁔礭-礴䃴-䃷𥗒-𥗜𪿾𮁕礵䃸䃹𥗝-𥗪𬒩𬒪礶礷𥗫-𥗳𪿿𮁖-𮁘礸䃺𥗴𥗵𥗷𥗸𬒫𮁙𮁚礹𥗹䃻𥗺-𥗽𮁛𥗾-𥘄]
[radical 113=⽰示:示礻𥘅礼𥘆礽䃼𥘇-𥘌𮁜𮁝社-祃𥘍-𥘔𫀀𫀁𬒬𮁞祄-祎视鿆䃽-䄀𥘕-𥘪𫀂𫀃𬒭-𬒰𮁟-𮁡祏-祢䄁-䄃𥘫-𥙍𫀄-𫀆𬒱-𬒳𮁢-𮁬祣-祥祧-祯䄄-䄆𥙎-𥙪𫀇-𫀊𫞴𬒴𬒵𮁭-𮁷祦祰-祸禄視䄇-䄊𣂫𥙫-𥚇𫀋-𫀏𫞵𬒶-𬒽𮁸-𮁾祹-禃禅禆䄋-䄒𥚈-𥚥𫀐-𫀙𬒾-𬓈𮁿-𮂃禇-禙䄓-䄗𢿆𥚦-𥛄𫀚𫀛𬓉-𬓍𮂄-𮂉禚-禣䄘䄙𠖟𥛅-𥛗𫀜-𫀟𬓎-𬓐𮂊-𮂎禤-禦䄚-䄞𥛘-𥛭𫀠𫀡𬓑-𬓗𮂏-𮂖禧-禫䄟𥛮-𥜂𫞶𬓘-𬓚𮂗-𮂛禬-禯鿅䄠䄡𥜃-𥜑𫀢𬓛𮂜𮂝禰禱䄢𥜒-𥜙𫀣𬓜𮂞𮂟禲䄣𥜚-𥜟𮂠-𮂢䄤𥜠-𥜤禳禴𥜥-𥜩𬓝𮂣-𮂧禵𥜪-𥜯𮂨禶禷𥜰-𥜳𮂩-𮂫𥜴𥜵𫀤𥜶-𥜸𧆆𥜹𥜺䄥]
[radical 114=⽱禸:禸𥜻禹禺𥜼离𥜽禼𥜾𮂬禽萬𥜿𥝁-𥝃𠎘𠾧𥝄-𥝇𦦔𬓞𣜢𥝈𥝉𫀥𮂭𥝊𬓟𮂮𥝋]
[radical 115=⽲禾:禾𥝌-𥝏𫀦禿-秃䄦䄧𥝐-𥝓𬓠𮂯秄-秊䄨-䄭𥝔-𥝢𫀧𮂰秋-秗䄮-䄵𥝣-𥝽𫀨𫀩𬓡-𬓤𮂱-𮂹秘-称䄶-䄹𥝾-𥞗𫀪-𫀭𬓥𬓦𮂺-𮃀秱-秾稆䄺-䅊𥞘-𥞱𥟅𫀮-𫀱𫞷𬓧-𬓩𮃁-𮃄秿-稅稇-税鿟䅋-䅓𠞜𥞲-𥟄𥟆-𥟌𫀲-𫀸𬓪-𬓬𮃅𮃆稏-稥䅔-䅟𥟍-𥟼𫀹-𫀻𫞸𬓭-𬓰𮃇-𮃒稦-稳穊䅠-䅫𥟽-𥠰𫀼-𫁀𬓱-𬓴𮃓-𮃚稴-穃䅬-䅶𥠱-𥡛𫁁-𫁄𬓵-𬓹𮃛-𮃢穄-穈穋-穒䅷-䅽𥡜-𥢉𫁅𬓺-𬓽𮃣-𮃫穉穓-穞䅾-䆀𥢊-𥢳𫁆𬓾-𬔀𮃬-𮃱穟-穣䆁-䆇𥢴-𥣉𥣋-𥣔𫁇𫁈𬔁𮃲穤-穫𥣊𥣕-𥣡𥣣-𥣧𬔂𮃳穬-穯䆈䆉𥣢𥣨-𥣶𥣸-𥣿𫁉𬔃鿠䆊-䆍𥤀-𥤅𬔄𮃴𮃵穰穳䆎䆏𥤆-𥤉穱𥤊-𥤒穲𥤓𥤕𥤖𮃶𮃷𥤗-𥤟䆐𥤠𥤡]
[radical 116=⽳穴:穴𥤢穵-穷䆑𥤣-𥤦𫞹𬔅穸-穻䆒𥤧-𥤳𮃸穼-窃䆓-䆖𥤴-𥥆𫁊𬔆𬔇𮃹窄-窎䆗-䆙𥥇-𥥟𫁋𬔈𮃺𮃻窏-窕䆚-䆠𥥠-𥥵𫁌𫁍𬔉𬔊𮃼窖-窝䆡-䆥𥥶-𥦚𫁎-𫁐𬔋𬔌𮃽-𮄀窞-窧䆦-䆩𥦛-𥦷𫁑-𫁓𬔍𮄁-𮄇窨-窭䆪䆫𥦸-𥧏𫁔𫁕𮄈-𮄋窮-窴䆬-䆮𥧐-𥧡𥧣-𥧫𫁖𬔎𬔏𮄌-𮄎窵-窽䆯-䆴𥧬-𥧻𥧽-𥨋𫁗-𫁚𬔐-𬔓𮄏-𮄕窾-竃䆵-䆻𥧼𥨌-𥨟𥨩𫁛𮄖-𮄚竄竅䆼䆽𥨠-𥨨𫁜𬔔𮄛-𮄝竆䆾䆿𥨪-𥨯𥨲𮄞-𮄡竇䇀𥨰𥨱𥨳𥨴𥨶-𥨺竈竉𥨵𥨻-𥩈𬔕𮄢竊䇁𥩉𫞺𮄣𥩊𥩋𫁝𮄤𮄥𥩌𥩍𥩏-𥩑𮄦𥩎𥩒-𥩔]
[radical 117=⽴立:立䇂𬔖竌竍𥩕𥩖𫞻竎竏䇃䇄𥩗𥩘𫁞𬔗𮄧竐-竗䇅䇆𥩙-𥩟𫁟𬔘-𬔚𮄨竘-竞䇇-䇊𥩠-𥩰𫁠𫁡𬔛𬔜𮄩-𮄬竡䇋𥩱-𥩽𫁢𫞼𬔝𮄭𮄮竢-竧䇌䇍𥩾-𥪉𫁣𫁤𬔞-𬔠𮄯𮄰竨-竫䇎-䇑𥪊-𥪗𫁥𫁦𬔡-𬔣𮄱-𮄳竬竭端竰𥪘-𥪤𫁧𫁨𬔤-𬔦𮄴-𮄶𥪥-𥪬𫁩-𫁫𬔧𮄷竮竱䇒𥪭𥪮𥪰𥪱𫁬𬔨𬔩𮄸-𮄺竲-竴䇓𥪯𥪲-𥪹𥪻𫁭𬔪𮄻𮄼竵䇔𥪼-𥫁𥫃𥫄䇕𥪺𥫅-𥫇𫁮𮄽競竷𥫈-𥫍𮄾𥫎𥫏𬔫竸𥫐𥫑𫁯𥫓𥫔𥫒𥫕𥫖𮄿]
[radical 118=⽵竹:竹𥫗𥫘竺竻𥫙-𥫜𫁰𬔬竼-笃䇖𥫝-𥫮𫁱𬔭笅-笕䇗-䇝𥫯-𥬋𫁲-𫁷𬔮-𬔲𮅀-𮅃笖-笾䇞-䇦𥬌-𥬩𥬿𫁸-𫁻𬔳-𬔹𮅄-𮅆笄笿-筝䇧-䇴𥬪-𥬾𥭀-𥭏𫁼𫁽𬔺-𬕁𮅇-𮅐筞-简節䇵-䈀𥭐-𥮇𥮉-𥮌𫁾-𫂃𬕂-𬕍𮅑-𮅔箁-箫䈁-䈍𥮈𥮍-𥯐𫂄-𫂉𬕎-𬕙𮅕-𮅠箬-箿篁-篈篊-篓䈎-䈩𥯑-𥰗𫂊-𫂏𫞽-𫞿𬕚-𬕡𮅡-𮅮築篔-篯簑簕䈪-䈷𥰘-𥱴𫂐-𫂗𬕢-𬕨𮅯-𮅵篰-簐簒-簔簖簗䈸-䉇𥱵-𥳀𥳂-𥳅𥴎𫂘-𫂟𬕩-𬕬𮅶-𮆆簘-簲䉈-䉎䉐-䉚䉣𥳁𥳆-𥴍𥴏-𥴠𫂠-𫂤𬕭-𬕲𮆇-𮆓簳-籂䉏䉛-䉢䉤𥴡-𥵛𫂥𫂦𬕳-𬕺𮆔-𮆞籃-籏籕籖䉥𥵜-𥶄𫂧𮆟-𮆧籐-籔䉦-䉭𥶅-𥶴𫂨-𫂫𬕻-𬕿𮆨-𮆵籗-籡䉮-䉱𥶵-𥷓𫂬𬖀-𬖅𮆶-𮆽籢-籨䉲-䉴𥷔-𥷧𫂭𬖆籪䉶𥷨-𥷻𫂮𬖇籩籫-籮𥷼-𥸇𫂯𮆾𮆿籯籰䉷𥸈-𥸏𮇀䉸𥸐-𥸖𬖈-𬖊𮇁𥸗𥸚-𥸝𫂰𥸘𥸙𥸞-𥸠𮇂籱䉹𥸡-𥸣籲𥸤]
-[radical 119=⽶米:米𥸥𥸦𬖋籴-籶𥸧-𥸪𫂱𫂲𬖌-𬖎𮇃𮇄娄籷-粂䉺𥸫-𥸲𫂳𫂴𬖏𮇅粃-粑䉻䉼𥸳-𥹀𫂵-𫂷𬖐-𬖒𮇆-𮇊畨粒-粝粣䉽-䊀𥹁-𥹖𥹘𥹙𥹱𫂸-𫂼𬖓-𬖘𮇋-𮇒粞-粢粤-粭䊁-䊆𥹗𥹚-𥹰𫂽-𫃀𬖙-𬖜𮇓-𮇝粮-粵糀䊇-䊌𥹲-𥺗𫃁𬖝-𬖠𮇞-𮇤粶-粿糁䊍-䊒𥺘-𥻀𫃂-𫃅𬖡-𬖥𮇥-𮇫糂-糎䊓-䊙𡢏𥻁-𥻣𫃆-𫃈𬖦-𬖪𮇬-𮇲糏-糘䊚䊛䨀𢐫𥻤-𥻾𫃉-𫃌𬖫-𬖲𮇳-𮇹糙-糢糨䊜-䊢𥻿-𥼖𫃍𫃎𫟀𬖳-𬖵𮇺糣-糧䊣-䊩𥼗-𥼵𫃏-𫃑𬖶-𬖺𮇻𮇼糩-糭䊪-䊬𥼶-𥽎𫃒-𫃕𬖻𮇽𮇾糮-糰䊭䊮𥽏-𥽖𫃖𬖼-𬖾糲䊯𥽗-𥽠𥽢𥽣𬖿𮇿糱糳糴䊰𥽡𥽤-𥽫𫃗-𫃙𬗀𬗁糵䊱䊲𥽬-𥽵𬗂糶䊳䊴𥽶-𥽺𮈀𥽻-𥽿糷𥾀-𥾄]
+[radical 119=⽶米:米𥸥𥸦𬖋籴-籶𥸧-𥸪𫂱𫂲𬖌-𬖎𮇃𮇄娄籷-粂䉺𥸫-𥸲𫂳𫂴𬖏𮇅粃-粑䉻䉼𥸳-𥹀𫂵-𫂷𬖐-𬖒𮇆-𮇊畨粒-粝粣䉽-䊀𥹁-𥹖𥹘𥹙𥹱𫂸-𫂼𬖓-𬖘𮇋-𮇒粞-粢粤-粭䊁-䊆𥹗𥹚-𥹰𫂽-𫃀𬖙-𬖜𮇓-𮇝粮-粵糀䊇-䊌𥹲-𥺗𫃁𬖝-𬖠𮇞-𮇤粶-粿糁䊍-䊒𥺘-𥻀𫃂-𫃅𬖡-𬖥𮇥-𮇫糂-糎䊓-䊙𡢏𥻁-𥻣𫃆-𫃈𬖦-𬖪𮇬-𮇲糏-糘鿯䊚䊛䨀𢐫𥻤-𥻾𫃉-𫃌𬖫-𬖲𮇳-𮇹糙-糢糨䊜-䊢𥻿-𥼖𫃍𫃎𫟀𬖳-𬖵𮇺糣-糧䊣-䊩𥼗-𥼵𫃏-𫃑𬖶-𬖺𮇻𮇼糩-糭䊪-䊬𥼶-𥽎𫃒-𫃕𬖻𮇽𮇾糮-糰䊭䊮𥽏-𥽖𫃖𬖼-𬖾糲䊯𥽗-𥽠𥽢𥽣𬖿𮇿糱糳糴䊰𥽡𥽤-𥽫𫃗-𫃙𬗀𬗁糵䊱䊲𥽬-𥽵𬗂糶䊳䊴𥽶-𥽺𮈀𥽻-𥽿糷𥾀-𥾄]
[radical 120=⽷糸:糸-糿䊵𥾅-𥾋𫃚𫃛紀-紉䊶-䊹𥾌-𥾘𫃜𫃝𬗃𬗄𮈁𮈂紊-紧䊺-䋇𥾙-𥿂𫃞𬗅𬗆𮈃-𮈅紨-経䋈-䋔𥿃-𥿥𫃟-𫃡𬗇-𬗊𮈆-𮈊絍-絚絜-絷䋕-䋞𥿦-𦀑𫃢-𫃤𬗋-𬗔𮈋-𮈐絛絸-綛緐䋟-䋦𦀒-𦁅𫃥-𫃩𬗕-𬗞𮈑-𮈕綜-総緑緒緔緕䋧-䋲𦁆-𦁿𫃪-𫃲𬗟-𬗧𮈖-𮈢緓緖-縇䋳-䌄𦂀-𦂦𦂨-𦃁𫃳-𫃷𫟁𬗨-𬗮𮈣-𮈰縈-縨䌅-䌋𦂧𦃂-𦄁𦄃-𦄈𫃸-𫃼𬗯-𬗲𮈱-𮈸縩-繇繉繊繌繍䌌-䌕𦄂𦄉-𦄻𫃽-𫄀𬗳-𬗺𮈹-𮉃繈繎-繥繧繱䌖-䌛𦄼-𦅴𫄁-𫄄𫟂𬗻-𬘁𮉄-𮉉繋繦繨-繰繲-繺䌜-䌢𦅵-𦆛𦆥𫄅-𫄋𬘂𮉊-𮉏繻-纃䌣-䌧𦆜-𦆣𦆦𦆧𦆩𦆪𦆬-𦆺𫄌-𫄎𬘃-𬘈𮉐-𮉒纄-纐䌨䌩𦆤𦆨𦆫𦆻-𦇁𦇃-𦇓𫄏-𫄑𬘉-𬘌𮉓-𮉖纑纒䌪-䌭𦇂𦇔-𦇦𫄒-𫄔𬘍-𬘏𮉗-𮉙纓-纖䌮𦇧-𦇯𫄕𬘐𬘑𮉚纗䌯-䌲𦇰-𦇷𦇹𬘒𮉛𮉜纘-纛䌳䌴𦇸𦇺𦇻𫄖𮉝𮉞𦇼𦇽𫄗纜纝䌵𦇾-𦈂𫄘𮉟𦈃𦈄纞𦈅-𦈇]
[radical 120'=⺰纟:纟𫄙纠𮉠纡-纫纶䌶𬘓纬-纵纷-纾䌸𫄚-𫄝𬘔-𬘘线-绐䌷䌹𦈈𫄞𫄟𬘙-𬘞𮉡-𮉣绑-统䌺䌻𦈉𫄠-𫄣𫟃𬘟-𬘧𮉤-𮉦绠-绨䌼𦈊-𦈌𫄤-𫄩𫟄𬘨-𬘫𮉧-𮉩绩-缁䌽𦈍-𦈐𫄪𫄫𫟅𬘬-𬘯𮉪-𮉬缂-缘䌾䌿𦈑-𦈕𫄬-𫄮𫟆𬘰-𬘸𮉭缙-缤䍀𦈖-𦈙𫄯𫄰𬘹-𬘽缥-缫𦈚𫄱-𫄴𬘾-𬙂𮉮𮉯缬-缯𦈛-𦈝𫄵𫄶𬙃-𬙈缰-缴䍁𦈞𦈟𫄷𬙉𦈠𦈡𫄸𫟇𬙊缵𬙋𫄹]
[radical 121=⽸缶:缶𦈢缷缸䍂𦈣-𦈥𮉰缹缺缼䍃𦈦-𦈨𬙌𬙍𮉱缻缽䍄-䍉𦈩-𦈮𬙎𮉲缾-罀䍊𦈯-𦈳𬙏𦈴-𦈷𫄺𮉳𮉴罁罂䍋䍌𦈸-𦉀𫄻𬙐𮉵𦉁-𦉇𫄼𫄽𬙑𬙒𮉶罃䍍𦉈-𦉎𫄾𬙓𮉷罄-罆𦉏-𦉔𮉸罇-罉𦉕-𦉘𮉹-𮉻罊罋𤕁𦉙-𦉜𫄿𬙔罌𦉝𦉞罍𦉟𦉠罎罏𦉡䍎𦉢-𦉤罐𤫡𦉥-𦉩]
@@ -181,7 +183,7 @@
[radical 165=⾤釆:釆采𨤏𬪺𮡎釈𨤐𨤑𮡏釉释𫒀𬪻𨤒-𨤙𮡐𤳛𨤚-𨤝𮡑釋𨤞-𨤡]
[radical 166=⾥里:里重𫟯𨤣𨤤野䤚𨤢𨤥𫒁𮡒量𨤦-𨤩𫒂𬪼𬪽𮡓𨤪𨤫𬪾𮡔-𮡖𨤬𫒃𮡗𮡘𨤭-𨤯𮡙𨤰𨤱𮡚𡣢𨤲𨤳𫒄𬪿𬫀釐𨤴-𨤷𮡛𫒅𮡜𮡝𥣷𨤸𬫁𮡞-𮡢𨤹𨤺𮡣𨤻𨤼]
[radical 167=⾦金:金-釢䤛𨤽-𨥁釣-釼䤜𨥂-𨥉𫒆-𫒉𮡤-𮡦釽-鈬䤝-䤠𨥊-𨥤𫒊-𫒎𬫂-𬫅𮡧-𮡭鈭-鉴銏龯䤡-䤣𨥥-𨦁𫒏-𫒔𬫆-𬫌𮡮-𮡰鉵-鉻鉽-銎銐-銱䤤-䤪𨦂-𨦝𨦟-𨦫𫒕-𫒜𫟰𬫍-𬫓𮡱-𮡷銲-鋶﨧䤫-䤲𨦬-𨧥𫒝-𫒥𬫔-𬫠𮡸-𮢁鉼鋷-錧錩-鍆鍈龬﨨䤳-䤶𨧦-𨨮𫒦-𫒯𬫡-𬫬𮢂-𮢘錨鍇鍉-鎇䤷-䤼𨨯-𨪆𫒰-𫒷𬫭-𬫲𮢙-𮢧鎈-鎨鎪-鎿龲䤽-䥇𨪇-𨫎𫒸-𫒾𫟱𬫳-𬫾𮢨-𮢳鎩鏀-鏲鏹䥈-䥓𨫏-𨬌𫒿-𫓃𬫿-𬬄𮢴-𮢽鏳鏵-鏸鏺-鐨䥔-䥜𨬍-𨬔𨬖-𨭔𫓄-𫓎𬬅-𬬊𮢾-𮣎鏴鐩-鑁䥝-䥦𨬕𨭕-𨮑𫓏-𫓕𬬋-𬬑𮣏-𮣘鑂-鑔鑧䥧-䥮𨮒-𨮷𫓖-𫓚𬬒-𬬗𮣙-𮣝鑕-鑦䥯-䥴𨮸-𨯜𫓛𫓜𬬘-𬬛𮣞-𮣤鑨-鑬䥵-䥷𨯝-𨯹𫓝-𫓟𬬜-𬬞𮣥-𮣩鑭-鑳䥸𨯺-𨰈𨰱𫓠-𫓢𬬟𬬠𮣪𮣫鑴-鑺𨰉-𨰝𫓣𬬡𬬢𮣬𮣭鑻-鑿𨰞-𨰨𫓤𮣮钀-钂𨰩-𨰰𬬣𮣯钃钄䥹𨰲-𨰶𬬤𨰷-𨰹𬬥𨰺𬬦𨰻𮣰𨰼𨰽𮣱]
-[radical 167'=⻐钅:钅-钌𫓥𫟲钍-钗𨰾𨰿𫓦𫟳𬬧-𬬪𮣲钘-钯䥺-䥼𨱀-𨱂𫓧-𫓫𫟴𫟵𬬫-𬬶𮣳钰-铎䥽-䥿𨱃-𨱆𫓬-𫓮𫟶𫟷𬬷-𬭂铏-铷䦀𫓯-𫓴𫟸-𫟻𬭃-𬭉铸-锕鿏䦁𨱇𨱈𫓵-𫓷𫟼𬭊-𬭐𮣴锖-锱𨱉-𨱌𫓸-𫓿𫟽𬭑-𬭝𮣵锲-镅𨱎𫔀-𫔄𫟾𫟿𬭞-𬭥镆-镕鿔䦂𨱍𨱏𫔅-𫔈𫠀𬭦-𬭫𮣶镖-镠𨱐𨱒𫔉𫔊𬭬-𬭲镡-镫䦃-䦅𨱑𨱓𨱔𫔋-𫔏𬭳-𬭹镬-镱𨱕𨱖𫔐𫔑𬭺-𬭽𮣷镲𫔒𫠁𬭾镳镴𬭿𫔓𬮀镵镶𬮁𫔔𫔕𬮂䦆𬮃]
+[radical 167'=⻐钅:钅-钌𫓥𫟲钍-钗𨰾𨰿𫓦𫟳𬬧-𬬪𮣲钘-钯䥺-䥼𨱀-𨱂𫓧-𫓫𫟴𫟵𬬫-𬬶𮣳钰-铎鿭䥽-䥿𨱃-𨱆𫓬-𫓮𫟶𫟷𬬷-𬭂铏-铷䦀𫓯-𫓴𫟸-𫟻𬭃-𬭉铸-锕鿏䦁𨱇𨱈𫓵-𫓷𫟼𬭊-𬭐𮣴锖-锱𨱉-𨱌𫓸-𫓿𫟽𬭑-𬭝𮣵锲-镅𨱎𫔀-𫔄𫟾𫟿𬭞-𬭥镆-镕鿔䦂𨱍𨱏𫔅-𫔈𫠀𬭦-𬭫𮣶镖-镠𨱐𨱒𫔉𫔊𬭬-𬭲镡-镫䦃-䦅𨱑𨱓𨱔𫔋-𫔏𬭳-𬭹镬-镱𨱕𨱖𫔐𫔑𬭺-𬭽𮣷镲𫔒𫠁𬭾镳镴𬭿𫔓𬮀镵镶𬮁𫔔𫔕𬮂䦆𬮃]
[radical 168=⾧長:長镸𨱗-𨱙镹䦇𮣸镺𨱚-𨱥𮣹𮣺镻䦈䦉𨱦-𨱱𮣻䦊𨱲-𨱿𫔖𬮄𮣼𮣽𨲀-𨲆𮣾𮣿镼𨲇-𨲒𫔗𮤀𮤁𡑺𨲓-𨲕𨲗-𨲝𨲖𨲞-𨲤𮤂䦋𨲥-𨲬𮤃𮤄镽𨲭-𨲷𮤅𮤆镾𨲸-𨳆]
[radical 168'=⻓长:长]
[radical 169=⾨門:門𨳇𨳈閁閂𨳉𫔘閃-閅𨳊-𨳏𬮅閆-閊䦌䦍𨳐-𨳖𫔙𬮆𮤇開-閗䦎-䦑𨳗-𨳲𫔚𫔛𬮇𬮈𮤈𮤉閘-閠䦒-䦔𨳳-𨴌𫔜-𫔠𬮉𮤊-𮤍閡-閪䦕-䦛𨴍-𨴦𮤎𮤏閫-閴䦜-䦟𨴧-𨵇𫔡-𫔤𬮊-𬮌閵閶閸-闂䦠-䦨𨵈-𨵤𫔥-𫔧𮤐-𮤖閷闃-闏䦩-䦯𨵥-𨵿𫔨𬮍𬮎𮤗-𮤛闐-闘𨶀-𨶛𬮏-𬮑𮤜-𮤞闙-闝䦰𨶜-𨶫𫔩𬮒𮤟-𮤡闞-闡䦱𨶬-𨷂𬮓𮤢-𮤥闢-闦䦲-䦴𨷃-𨷓𨷕-𨷗𫔪𬮔𬮕𮤦𮤧闧䦵𨷔𨷘-𨷞𬮖𮤨𨷟-𨷥𬮗𨷦-𨷮𨷶𮤩𨷯-𨷵𨷸𫔫𮤪𨷷𨷹-𨷾]
@@ -252,7 +254,7 @@
[top_byte 00 TERMINATOR ]
[top_byte 01 LEVEL-SEPARATOR ]
[top_byte 02 FIELD-SEPARATOR ]
-[top_byte 03 SPACE PUNCTUATION ] # 666 primary weights
+[top_byte 03 SPACE PUNCTUATION ] # 684 primary weights
[top_byte 04 SPACE PUNCTUATION ]
[top_byte 05 SPACE PUNCTUATION ]
[top_byte 06 SPACE PUNCTUATION ]
@@ -261,9 +263,9 @@
[top_byte 09 SPACE PUNCTUATION ]
[top_byte 0A SPACE PUNCTUATION ]
[top_byte 0B SPACE PUNCTUATION ]
-[top_byte 0C SYMBOL CURRENCY ] # 5805 primary weights
+[top_byte 0C SYMBOL CURRENCY ] # 5937 primary weights
[top_byte 0D SYMBOL CURRENCY ]
-[top_byte 0E DIGIT ] # 365 primary weights
+[top_byte 0E DIGIT ] # 440 primary weights
[top_byte 0F DIGIT ]
[top_byte 10 DIGIT ]
[top_byte 11 DIGIT ]
@@ -287,10 +289,10 @@
[top_byte 23 DIGIT ]
[top_byte 24 DIGIT ]
[top_byte 25 DIGIT ]
-[top_byte 26 REORDER_RESERVED_BEFORE_LATIN ]
+[top_byte 26 DIGIT ]
[top_byte 27 REORDER_RESERVED_BEFORE_LATIN ]
-[top_byte 28 Latn ] # 388 primary weights
-[top_byte 29 Latn ]
+[top_byte 28 REORDER_RESERVED_BEFORE_LATIN ]
+[top_byte 29 Latn ] # 390 primary weights
[top_byte 2A Latn ]
[top_byte 2B Latn ]
[top_byte 2C Latn ]
@@ -342,39 +344,39 @@
[top_byte 5A Latn ]
[top_byte 5B Latn ]
[top_byte 5C Latn ]
-[top_byte 5D REORDER_RESERVED_AFTER_LATIN ]
+[top_byte 5D Latn ]
[top_byte 5E REORDER_RESERVED_AFTER_LATIN ]
-[top_byte 5F Grek Copt COMPRESS ] # 107 primary weights
-[top_byte 60 Cyrl COMPRESS ] # 158 primary weights
-[top_byte 61 Glag Perm COMPRESS ] # 87 primary weights
-[top_byte 62 Geor COMPRESS ] # 87 primary weights
-[top_byte 63 Armn COMPRESS ] # 40 primary weights
-[top_byte 64 Hebr Phnx Samr COMPRESS ] # 73 primary weights
-[top_byte 65 Arab COMPRESS ] # 219 primary weights
-[top_byte 66 Syrc Mand Thaa Nkoo Tfng Ethi COMPRESS ] # 661 primary weights
-[top_byte 67 Deva COMPRESS ] # 101 primary weights
-[top_byte 68 Beng COMPRESS ] # 67 primary weights
-[top_byte 69 Guru COMPRESS ] # 58 primary weights
-[top_byte 6A Gujr COMPRESS ] # 70 primary weights
-[top_byte 6B Orya COMPRESS ] # 68 primary weights
-[top_byte 6C Taml COMPRESS ] # 51 primary weights
-[top_byte 6D Telu COMPRESS ] # 75 primary weights
-[top_byte 6E Knda COMPRESS ] # 75 primary weights
-[top_byte 6F Mlym COMPRESS ] # 74 primary weights
-[top_byte 70 Sinh Mtei Sylo Saur Kthi Mahj Shrd Khoj Sind Mult Gran Newa Tirh Sidd Modi Takr Ahom Gonm Sund Brah Khar Bhks COMPRESS ] # 1268 primary weights
-[top_byte 71 Thai COMPRESS ] # 65 primary weights
-[top_byte 72 Laoo Tavt COMPRESS ] # 117 primary weights
-[top_byte 73 Tibt Zanb Soyo COMPRESS ] # 205 primary weights
-[top_byte 74 Marc Lepc Phag Limb Tglg Hano Buhd Tagb Bugi Batk Rjng Kali Mymr Cakm Khmr COMPRESS ] # 741 primary weights
-[top_byte 75 Tale Talu Lana Cham Bali Java Mong Olck Cher Osge Cans Ogam COMPRESS ] # 1414 primary weights
-[top_byte 76 Runr Hung Orkh COMPRESS ] # 135 primary weights
-[top_byte 77 Vaii Bamu Bass Mend Adlm COMPRESS ] # 1184 primary weights
-[top_byte 78 Hang COMPRESS ] # 358 primary weights
-[top_byte 79 Hira Hrkt Kana COMPRESS ] # 336 primary weights
-[top_byte 7A Bopo Yiii Lisu Plrd Wara Pauc Hmng Lyci Cari Lydi Ital Goth COMPRESS ] # 1749 primary weights
-[top_byte 7B Dsrt Shaw Dupl Osma Elba Aghb Sora Mroo Linb Lina Cprt Sarb Narb Avst Palm Nbat Hatr Armi Prti Phli Phlp Mani Ugar Xpeo Xsux Egyp COMPRESS ] # 3594 primary weights
-[top_byte 7C Merc Hluw Tang Nshu COMPRESS ] # 7891 primary weights
-[top_byte 7D Hani Hans Hant ]
+[top_byte 5F REORDER_RESERVED_AFTER_LATIN ]
+[top_byte 60 Grek Copt COMPRESS ] # 107 primary weights
+[top_byte 61 Cyrl COMPRESS ] # 158 primary weights
+[top_byte 62 Glag Perm COMPRESS ] # 87 primary weights
+[top_byte 63 Geor COMPRESS ] # 87 primary weights
+[top_byte 64 Armn COMPRESS ] # 42 primary weights
+[top_byte 65 Hebr Phnx Samr COMPRESS ] # 73 primary weights
+[top_byte 66 Arab COMPRESS ] # 219 primary weights
+[top_byte 67 Syrc Mand Thaa Nkoo Tfng Ethi COMPRESS ] # 661 primary weights
+[top_byte 68 Deva COMPRESS ] # 103 primary weights
+[top_byte 69 Beng COMPRESS ] # 67 primary weights
+[top_byte 6A Guru COMPRESS ] # 58 primary weights
+[top_byte 6B Gujr COMPRESS ] # 70 primary weights
+[top_byte 6C Orya COMPRESS ] # 68 primary weights
+[top_byte 6D Taml COMPRESS ] # 51 primary weights
+[top_byte 6E Telu COMPRESS ] # 75 primary weights
+[top_byte 6F Knda COMPRESS ] # 75 primary weights
+[top_byte 70 Mlym COMPRESS ] # 74 primary weights
+[top_byte 71 Sinh Mtei Sylo Saur Kthi Mahj Shrd Khoj Sind Mult Gran Newa Tirh Sidd Modi Takr Dogr Ahom Gonm Gong Sund Brah Khar Bhks COMPRESS ] # 1379 primary weights
+[top_byte 72 Thai COMPRESS ] # 65 primary weights
+[top_byte 73 Laoo Tavt COMPRESS ] # 117 primary weights
+[top_byte 74 Tibt Zanb Soyo COMPRESS ] # 206 primary weights
+[top_byte 75 Marc Lepc Phag Limb Tglg Hano Buhd Tagb Bugi Maka Batk Rjng Kali Mymr Rohg Cakm Khmr COMPRESS ] # 805 primary weights
+[top_byte 76 Tale Talu Lana Cham Bali Java Mong Olck Cher Osge Cans Ogam COMPRESS ] # 1415 primary weights
+[top_byte 77 Runr Hung Orkh COMPRESS ] # 135 primary weights
+[top_byte 78 Vaii Bamu Bass Mend Medf Adlm COMPRESS ] # 1217 primary weights
+[top_byte 79 Hang COMPRESS ] # 358 primary weights
+[top_byte 7A Hira Hrkt Kana COMPRESS ] # 336 primary weights
+[top_byte 7B Bopo Yiii Lisu Plrd Wara Pauc Hmng Lyci Cari Lydi Ital Goth COMPRESS ] # 1750 primary weights
+[top_byte 7C Dsrt Shaw Dupl Osma Elba Aghb Sora Mroo Linb Lina Cprt Sarb Narb Avst Palm Nbat Hatr Armi Prti Phli Phlp Mani Sogo Sogd Ugar Xpeo Xsux COMPRESS ] # 2564 primary weights
+[top_byte 7D Egyp Merc Mero Hluw Tang Nshu COMPRESS ] # 8968 primary weights
[top_byte 7E Hani Hans Hant ]
[top_byte 7F Hani Hans Hant ]
[top_byte 80 Hani Hans Hant ]
@@ -651,6 +653,7 @@
0749; [,,]
074A; [,,]
07FA; [,,]
+08D3; [,,]
08D4; [,,]
08D5; [,,]
08D6; [,,]
@@ -782,6 +785,7 @@ A8F0; [,,]
A8F1; [,,]
102E0; [,,]
110BD; [,,]
+110CD; [,,]
11366; [,,]
11367; [,,]
11368; [,,]
@@ -1433,6 +1437,14 @@ FFFB; [,,]
A67C; [, A6, 05]
A67D; [, A6, 05]
10AE5; [, A6, 05]
+10D24; [, A6, 05]
+10D25; [, A6, 05]
+10D26; [, A6, 05]
+10D27; [, A6, 05]
+10F48; [, A6, 05]
+10F49; [, A6, 05]
+10F4A; [, A6, 05]
+10F4C; [, A6, 05]
1BC9D; [, A6, 05]
0316; [, A8, 05]
0317; [, A8, 05]
@@ -1468,6 +1480,7 @@ A67D; [, A6, 05]
0362; [, A8, 05]
0742; [, A8, 05]
0746; [, A8, 05]
+07FD; [, A8, 05]
0859; [, A8, 05]
085A; [, A8, 05]
085B; [, A8, 05]
@@ -1491,6 +1504,13 @@ A67D; [, A6, 05]
20EF; [, A8, 05]
10A0D; [, A8, 05]
10AE6; [, A8, 05]
+10F46; [, A8, 05]
+10F47; [, A8, 05]
+10F4B; [, A8, 05]
+10F4D; [, A8, 05]
+10F4E; [, A8, 05]
+10F4F; [, A8, 05]
+10F50; [, A8, 05]
FE27; [, A8, 05]
0336; [, AA, 05]
0337; [, AA, 05]
@@ -1713,11 +1733,13 @@ A9B3; [, F1 22, 05]
111CA; [, F1 22, 05]
11236; [, F1 22, 05]
112E9; [, F1 22, 05]
+1133B; [, F1 22, 05]
1133C; [, F1 22, 05]
11446; [, F1 22, 05]
114C3; [, F1 22, 05]
115C0; [, F1 22, 05]
116B7; [, F1 22, 05]
+1183A; [, F1 22, 05]
11A33; [, F1 22, 05]
11D42; [, F1 22, 05]
0900; [, F1 44, 05]
@@ -1756,6 +1778,7 @@ A980; [, F1 44, 05]
0B02; [, F1 66, 05]
0B82; [, F1 66, 05]
0C02; [, F1 66, 05]
+0C04; [, F1 66, 05]
0C82; [, F1 66, 05]
0D00; [, F1 66, 05]
0D02; [, F1 66, 05]
@@ -1784,11 +1807,13 @@ A981; [, F1 66, 05]
115BD; [, F1 66, 05]
1163D; [, F1 66, 05]
116AB; [, F1 66, 05]
+11837; [, F1 66, 05]
11A38; [, F1 66, 05]
11A96; [, F1 66, 05]
11C3D; [, F1 66, 05]
11CB5; [, F1 66, 05]
11D40; [, F1 66, 05]
+11D95; [, F1 66, 05]
0903; [, F1 88, 05]
0983; [, F1 88, 05]
0A03; [, F1 88, 05]
@@ -1818,90 +1843,95 @@ A983; [, F1 88, 05]
115BE; [, F1 88, 05]
1163E; [, F1 88, 05]
116AC; [, F1 88, 05]
+11838; [, F1 88, 05]
11A39; [, F1 88, 05]
11A97; [, F1 88, 05]
11C3E; [, F1 88, 05]
11D41; [, F1 88, 05]
-0A70; [, F1 AA, 05]
-0A71; [, F1 CC, 05]
-1B03; [, F1 EE, 05]
-A982; [, F2 12, 05]
-1B81; [, F2 34, 05]
-ABEC; [, F2 56, 05]
-10A38; [, F2 78, 05]
-10A39; [, F2 9A, 05]
-10A3A; [, F2 BC, 05]
-111CB; [, F2 DE, 05]
-111CC; [, F3 02, 05]
-11A98; [, F3 24, 05]
-0E4E; [, F3 46, 05]
-0E47; [, F3 68, 05]
-0E48; [, F3 8A, 05]
-0E49; [, F3 AC, 05]
-0E4A; [, F3 CE, 05]
-0E4B; [, F3 F0, 05]
-0E4C; [, F4 14, 05]
-0E4D; [, F4 36, 05]
-0EC8; [, F4 58, 05]
-0EC9; [, F4 7A, 05]
-0ECA; [, F4 9C, 05]
-0ECB; [, F4 BE, 05]
-0ECC; [, F4 E0, 05]
-0ECD; [, F5 04, 05]
-AABF; [, F5 26, 05]
-AAC1; [, F5 48, 05]
-0F39; [, F5 6A, 05]
-A92B; [, F5 8C, 05]
-A92C; [, F5 AE, 05]
-A92D; [, F5 D0, 05]
-1037; [, F5 F2, 05]
-17C8; [, F6 16, 05]
-17C9; [, F6 38, 05]
-17CA; [, F6 5A, 05]
-1A75; [, F6 7C, 05]
-1A76; [, F6 9E, 05]
-1A77; [, F6 C0, 05]
-1A78; [, F6 E2, 05]
-1A79; [, F7 06, 05]
-1A7A; [, F7 28, 05]
-1A7B; [, F7 4A, 05]
-1A7C; [, F7 6C, 05]
-1939; [, F7 8E, 05]
-193A; [, F7 B0, 05]
-193B; [, F7 D2, 05]
-16B30; [, F7 F4, 05]
-16B31; [, F8 18, 05]
-16B32; [, F8 3A, 05]
-16B33; [, F8 5C, 05]
-16B34; [, F8 7E, 05]
-16B35; [, F8 A0, 05]
-16B36; [, F8 C2, 05]
-302A; [, F8 E4, 05]
-302B; [, F9 08, 05]
-302C; [, F9 2A, 05]
-302D; [, F9 4C, 05]
-302E; [, F9 6E, 05]
-302F; [, F9 90, 05]
-20D0; [, F9 B2, 05]
-20D1; [, F9 D4, 05]
-20D2; [, F9 F6, 05]
-20D3; [, F9 F6, 05]
-20D4; [, FA 1A, 05]
-20D5; [, FA 3C, 05]
-20D6; [, FA 5E, 05]
-20D7; [, FA 80, 05]
-20DB; [, FA A2, 05]
-20DC; [, FA C4, 05]
-20E1; [, FA E6, 05]
-20E6; [, FB 0A, 05]
-20E7; [, FB 2C, 05]
-20E8; [, FB 4E, 05]
-20E9; [, FB 70, 05]
-101FD; [, FB 92, 05]
-004C | 00B7; [, FB B4, 05]
-006C | 00B7; [, FB B4, 05]
-004C | 0387; [, FB B4, 05]
-006C | 0387; [, FB B4, 05]
+11D96; [, F1 88, 05]
+09FE; [, F1 AA, 05]
+111C9; [, F1 AA, 05]
+1145E; [, F1 AA, 05]
+0A70; [, F1 CC, 05]
+0A71; [, F1 EE, 05]
+1B03; [, F2 12, 05]
+A982; [, F2 34, 05]
+1B81; [, F2 56, 05]
+ABEC; [, F2 78, 05]
+10A38; [, F2 9A, 05]
+10A39; [, F2 BC, 05]
+10A3A; [, F2 DE, 05]
+111CB; [, F3 02, 05]
+111CC; [, F3 24, 05]
+11A98; [, F3 46, 05]
+0E4E; [, F3 68, 05]
+0E47; [, F3 8A, 05]
+0E48; [, F3 AC, 05]
+0E49; [, F3 CE, 05]
+0E4A; [, F3 F0, 05]
+0E4B; [, F4 14, 05]
+0E4C; [, F4 36, 05]
+0E4D; [, F4 58, 05]
+0EC8; [, F4 7A, 05]
+0EC9; [, F4 9C, 05]
+0ECA; [, F4 BE, 05]
+0ECB; [, F4 E0, 05]
+0ECC; [, F5 04, 05]
+0ECD; [, F5 26, 05]
+AABF; [, F5 48, 05]
+AAC1; [, F5 6A, 05]
+0F39; [, F5 8C, 05]
+A92B; [, F5 AE, 05]
+A92C; [, F5 D0, 05]
+A92D; [, F5 F2, 05]
+1037; [, F6 16, 05]
+17C8; [, F6 38, 05]
+17C9; [, F6 5A, 05]
+17CA; [, F6 7C, 05]
+1A75; [, F6 9E, 05]
+1A76; [, F6 C0, 05]
+1A77; [, F6 E2, 05]
+1A78; [, F7 06, 05]
+1A79; [, F7 28, 05]
+1A7A; [, F7 4A, 05]
+1A7B; [, F7 6C, 05]
+1A7C; [, F7 8E, 05]
+1939; [, F7 B0, 05]
+193A; [, F7 D2, 05]
+193B; [, F7 F4, 05]
+16B30; [, F8 18, 05]
+16B31; [, F8 3A, 05]
+16B32; [, F8 5C, 05]
+16B33; [, F8 7E, 05]
+16B34; [, F8 A0, 05]
+16B35; [, F8 C2, 05]
+16B36; [, F8 E4, 05]
+302A; [, F9 08, 05]
+302B; [, F9 2A, 05]
+302C; [, F9 4C, 05]
+302D; [, F9 6E, 05]
+302E; [, F9 90, 05]
+302F; [, F9 B2, 05]
+20D0; [, F9 D4, 05]
+20D1; [, F9 F6, 05]
+20D2; [, FA 1A, 05]
+20D3; [, FA 1A, 05]
+20D4; [, FA 3C, 05]
+20D5; [, FA 5E, 05]
+20D6; [, FA 80, 05]
+20D7; [, FA A2, 05]
+20DB; [, FA C4, 05]
+20DC; [, FA E6, 05]
+20E1; [, FB 0A, 05]
+20E6; [, FB 2C, 05]
+20E7; [, FB 4E, 05]
+20E8; [, FB 70, 05]
+20E9; [, FB 92, 05]
+101FD; [, FB B4, 05]
+004C | 00B7; [, FB D6, 05]
+006C | 00B7; [, FB D6, 05]
+004C | 0387; [, FB D6, 05]
+006C | 0387; [, FB D6, 05]
FDD1 00A0; [03 02 02, 05, 05] # SPACE first primary starts new lead byte
@@ -2017,190 +2047,196 @@ FE10; [06, 05, 31]
2E41; [07 0A, 05, 05]
-055D; [07 0C, 05, 05]
+2E4C; [07 0C, 05, 05]
-060C; [07 0E, 05, 05]
+2E4E; [07 0E, 05, 05]
-060D; [07 10, 05, 05]
+055D; [07 10, 05, 05]
-066B; [07 12, 05, 05]
+060C; [07 12, 05, 05]
-066C; [07 14, 05, 05]
+060D; [07 14, 05, 05]
-07F8; [07 16, 05, 05]
+066B; [07 16, 05, 05]
-1802; [07 18, 05, 05]
+066C; [07 18, 05, 05]
-1808; [07 1A 02, 05, 05]
+07F8; [07 1A, 05, 05]
-A4FE; [07 1A 09, 05, 05]
+1802; [07 1C, 05, 05]
-A60D; [07 1A 10, 05, 05]
+1808; [07 1E 02, 05, 05]
-A6F5; [07 1A 17, 05, 05]
+A4FE; [07 1E 09, 05, 05]
-3001; [07 1C, 05, 05]
-FE51; [07 1C, 05, 10]
-FF64; [07 1C, 05, 9E]
-FE11; [07 1C, 05, 2C]
+A60D; [07 1E 10, 05, 05]
-FE45; [07 1E, 05, 05]
+A6F5; [07 1E 17, 05, 05]
-FE46; [07 20, 05, 05]
+16E97; [07 1E 1E, 05, 05]
-003B; [07 22, 05, 05]
-037E; [07 22, 05, 05]
-FF1B; [07 22, 05, 10]
-FE54; [07 22, 05, 1E]
-FE14; [07 22, 05, 2C]
+3001; [07 20, 05, 05]
+FE51; [07 20, 05, 10]
+FF64; [07 20, 05, 9E]
+FE11; [07 20, 05, 2C]
-061B; [07 24, 05, 05]
+FE45; [07 22, 05, 05]
-204F; [07 26, 05, 05]
+FE46; [07 24, 05, 05]
-2E35; [07 28, 05, 05]
+003B; [07 26, 05, 05]
+037E; [07 26, 05, 05]
+FF1B; [07 26, 05, 10]
+FE54; [07 26, 05, 1E]
+FE14; [07 26, 05, 2C]
-A6F6; [07 2A, 05, 05]
+061B; [07 28, 05, 05]
-2E49; [07 2C, 05, 05]
+204F; [07 2A, 05, 05]
-003A; [07 2E, 05, 05]
-FF1A; [07 2E, 05, 10]
-FE55; [07 2E, 05, 26]
-FE13; [07 2E, 05, 31]
-2A74; [07 2E, 05, 1B][07 2E, 05, 1B][0C 80, 05, 18]
+2E35; [07 2C, 05, 05]
-0589; [07 30, 05, 05]
+A6F6; [07 2E, 05, 05]
-061E; [07 32, 05, 05]
+2E49; [07 30, 05, 05]
-0703; [07 34 02, 05, 05]
+003A; [07 32, 05, 05]
+FF1A; [07 32, 05, 10]
+FE55; [07 32, 05, 26]
+FE13; [07 32, 05, 31]
+2A74; [07 32, 05, 1B][07 32, 05, 1B][0C 82, 05, 18]
-0704; [07 34 09, 05, 05]
+0589; [07 34, 05, 05]
-0705; [07 34 10, 05, 05]
+061E; [07 36, 05, 05]
-0706; [07 34 17, 05, 05]
+0703; [07 38 02, 05, 05]
-0707; [07 34 1E, 05, 05]
+0704; [07 38 09, 05, 05]
-0708; [07 34 25, 05, 05]
+0705; [07 38 10, 05, 05]
-0830; [07 34 2C, 05, 05]
+0706; [07 38 17, 05, 05]
-0831; [07 34 33, 05, 05]
+0707; [07 38 1E, 05, 05]
-0832; [07 34 3A, 05, 05]
+0708; [07 38 25, 05, 05]
-0833; [07 34 41, 05, 05]
+0830; [07 38 2C, 05, 05]
-0834; [07 34 48, 05, 05]
+0831; [07 38 33, 05, 05]
-0835; [07 34 4F, 05, 05]
+0832; [07 38 3A, 05, 05]
-0836; [07 34 56, 05, 05]
+0833; [07 38 41, 05, 05]
-0837; [07 34 5D, 05, 05]
+0834; [07 38 48, 05, 05]
-0838; [07 34 64, 05, 05]
+0835; [07 38 4F, 05, 05]
-0839; [07 34 6B, 05, 05]
+0836; [07 38 56, 05, 05]
-083A; [07 34 72, 05, 05]
+0837; [07 38 5D, 05, 05]
-083B; [07 34 79, 05, 05]
+0838; [07 38 64, 05, 05]
-083C; [07 34 80, 05, 05]
+0839; [07 38 6B, 05, 05]
-083D; [07 34 87, 05, 05]
+083A; [07 38 72, 05, 05]
-083E; [07 34 8E, 05, 05]
+083B; [07 38 79, 05, 05]
-1361; [07 36, 05, 05]
+083C; [07 38 80, 05, 05]
-1363; [07 38, 05, 05]
+083D; [07 38 87, 05, 05]
-1364; [07 3A, 05, 05]
+083E; [07 38 8E, 05, 05]
-1365; [07 3C, 05, 05]
+1361; [07 3A, 05, 05]
-1366; [07 3E, 05, 05]
+1363; [07 3C, 05, 05]
-1804; [07 40, 05, 05]
+1364; [07 3E, 05, 05]
-1805; [07 42, 05, 05]
+1365; [07 40, 05, 05]
-0F14; [07 44, 05, 05]
+1366; [07 42, 05, 05]
-17D6; [07 46, 05, 05]
+1804; [07 44, 05, 05]
-1B5D; [07 48 02, 05, 05]
+1805; [07 46, 05, 05]
-A9C7; [07 48 09, 05, 05]
+0F14; [07 48, 05, 05]
-16EB; [07 4A, 05, 05]
+17D6; [07 4A, 05, 05]
-16EC; [07 4C, 05, 05]
+1B5D; [07 4C 02, 05, 05]
-16ED; [07 4E, 05, 05]
+A9C7; [07 4C 09, 05, 05]
-A6F4; [07 50, 05, 05]
+16EB; [07 4E, 05, 05]
-0021; [07 52, 05, 05]
-FF01; [07 52, 05, 10]
-FE57; [07 52, 05, 20]
-FE15; [07 52, 05, 28]
-203C; [07 52, 05, 18][07 52, 05, 18]
-2049; [07 52, 05, 18][07 5A, 05, 1B]
+16EC; [07 50, 05, 05]
-00A1; [07 54, 05, 05]
+16ED; [07 52, 05, 05]
-055C; [07 56, 05, 05]
+A6F4; [07 54, 05, 05]
-07F9; [07 58 02, 05, 05]
+0021; [07 56, 05, 05]
+FF01; [07 56, 05, 10]
+FE57; [07 56, 05, 20]
+FE15; [07 56, 05, 28]
+203C; [07 56, 05, 18][07 56, 05, 18]
+2049; [07 56, 05, 18][07 5E, 05, 1B]
-1944; [07 58 09, 05, 05]
+00A1; [07 58, 05, 05]
-1E95E; [07 58 10, 05, 05]
+055C; [07 5A, 05, 05]
-003F; [07 5A, 05, 05]
-FF1F; [07 5A, 05, 10]
-FE56; [07 5A, 05, 26]
-FE16; [07 5A, 05, 31]
-2048; [07 5A, 05, 1B][07 52, 05, 18]
-2047; [07 5A, 05, 1B][07 5A, 05, 1B]
+07F9; [07 5C 02, 05, 05]
-00BF; [07 5C, 05, 05]
+1944; [07 5C 09, 05, 05]
-2E2E; [07 5E, 05, 05]
+1E95E; [07 5C 10, 05, 05]
-055E; [07 60, 05, 05]
+003F; [07 5E, 05, 05]
+FF1F; [07 5E, 05, 10]
+FE56; [07 5E, 05, 26]
+FE16; [07 5E, 05, 31]
+2048; [07 5E, 05, 1B][07 56, 05, 18]
+2047; [07 5E, 05, 1B][07 5E, 05, 1B]
-061F; [07 62, 05, 05]
+00BF; [07 60, 05, 05]
-0709; [07 64, 05, 05]
+2E2E; [07 62, 05, 05]
-1367; [07 66, 05, 05]
+055E; [07 64, 05, 05]
-1945; [07 68 02, 05, 05]
+061F; [07 66, 05, 05]
-2CFA; [07 68 09, 05, 05]
+0709; [07 68, 05, 05]
-2CFB; [07 68 10, 05, 05]
+1367; [07 6A, 05, 05]
-A60F; [07 68 17, 05, 05]
+1945; [07 6C 02, 05, 05]
-A6F7; [07 68 1E, 05, 05]
+2CFA; [07 6C 09, 05, 05]
-AAF1; [07 68 25, 05, 05]
+2CFB; [07 6C 10, 05, 05]
-11143; [07 68 2C, 05, 05]
+A60F; [07 6C 17, 05, 05]
-1E95F; [07 68 33, 05, 05]
+A6F7; [07 6C 1E, 05, 05]
-203D; [07 6A, 05, 05]
+AAF1; [07 6C 25, 05, 05]
-2E18; [07 6C, 05, 05]
+11143; [07 6C 2C, 05, 05]
+
+1E95F; [07 6C 33, 05, 05]
+
+203D; [07 6E, 05, 05]
+
+2E18; [07 70, 05, 05]
002E; [08, 05, 05]
FF0E; [08, 05, 10]
@@ -2245,7 +2281,9 @@ A6F3; [09 16 10, 05, 05]
16AF5; [09 16 17, 05, 05]
-1BC9F; [09 16 1E, 05, 05]
+16E98; [09 16 1E, 05, 05]
+
+1BC9F; [09 16 25, 05, 05]
3002; [09 18, 05, 05]
FF61; [09 18, 05, A0]
@@ -2422,1097 +2460,1125 @@ A95F; [09 3D 6B, 05, 05]
10B3F; [09 3D 9C, 05, 05]
-110BE; [09 3D A3, 05, 05]
+10F55; [09 3D A3, 05, 05]
+
+10F56; [09 3D AA, 05, 05]
+
+10F57; [09 3D B1, 05, 05]
+
+10F58; [09 3D B8, 05, 05]
+
+10F59; [09 3D BF, 05, 05]
+
+110BE; [09 3D C6, 05, 05]
+
+110BF; [09 3D CD, 05, 05]
+
+11140; [09 3D D4, 05, 05]
+
+111C8; [09 3D DB, 05, 05]
+
+111DE; [09 3D E2, 05, 05]
+
+111DF; [09 3D E9, 05, 05]
+
+112A9; [09 3D F0, 05, 05]
+
+1173E; [09 3D F7, 05, 05]
-110BF; [09 3D AA, 05, 05]
+11EF7; [09 3D FE, 05, 05]
-11140; [09 3D B1, 05, 05]
+11EF8; [09 3E 07, 05, 05]
-111C8; [09 3D B8, 05, 05]
+2055; [09 40, 05, 05]
-111DE; [09 3D BF, 05, 05]
+2056; [09 42, 05, 05]
-111DF; [09 3D C6, 05, 05]
+2058; [09 44, 05, 05]
-112A9; [09 3D CD, 05, 05]
+2059; [09 46, 05, 05]
-1173E; [09 3D D4, 05, 05]
+205A; [09 48, 05, 05]
-2055; [09 3F, 05, 05]
+205B; [09 4A, 05, 05]
-2056; [09 41, 05, 05]
+205C; [09 4C, 05, 05]
-2058; [09 43, 05, 05]
+205D; [09 4E, 05, 05]
-2059; [09 45, 05, 05]
+205E; [09 50, 05, 05]
-205A; [09 47, 05, 05]
+2E2A; [09 52, 05, 05]
-205B; [09 49, 05, 05]
+2E2B; [09 54, 05, 05]
-205C; [09 4B, 05, 05]
+2E2C; [09 56, 05, 05]
-205D; [09 4D, 05, 05]
+2E2D; [09 58, 05, 05]
-205E; [09 4F, 05, 05]
+2E3D; [09 5A, 05, 05]
-2E2A; [09 51, 05, 05]
+2CFC; [09 5C 02, 05, 05]
-2E2B; [09 53, 05, 05]
+2CFF; [09 5C 09, 05, 05]
-2E2C; [09 55, 05, 05]
+2E19; [09 5E, 05, 05]
-2E2D; [09 57, 05, 05]
+1093F; [09 60, 05, 05]
-2E3D; [09 59, 05, 05]
+10100; [09 62, 05, 05]
-2CFC; [09 5B 02, 05, 05]
+10101; [09 64, 05, 05]
-2CFF; [09 5B 09, 05, 05]
+10102; [09 66, 05, 05]
-2E19; [09 5D, 05, 05]
+1039F; [09 68 02, 05, 05]
-1093F; [09 5F, 05, 05]
+103D0; [09 68 09, 05, 05]
-10100; [09 61, 05, 05]
+1091F; [09 68 10, 05, 05]
-10101; [09 63, 05, 05]
+12470; [09 68 17, 05, 05]
-10102; [09 65, 05, 05]
+12471; [09 68 1E, 05, 05]
-1039F; [09 67 02, 05, 05]
+12472; [09 68 25, 05, 05]
-103D0; [09 67 09, 05, 05]
+12473; [09 68 2C, 05, 05]
-1091F; [09 67 10, 05, 05]
+12474; [09 68 33, 05, 05]
-12470; [09 67 17, 05, 05]
+0027; [09 6A, 05, 05]
+FF07; [09 6A, 05, 20]
-12471; [09 67 1E, 05, 05]
+2018; [09 6C, 05, 05]
-12472; [09 67 25, 05, 05]
+2019; [09 6E, 05, 05]
-12473; [09 67 2C, 05, 05]
+201A; [09 70, 05, 05]
-12474; [09 67 33, 05, 05]
+201B; [09 72, 05, 05]
-0027; [09 69, 05, 05]
-FF07; [09 69, 05, 20]
+2039; [09 74, 05, 05]
-2018; [09 6B, 05, 05]
+203A; [09 76, 05, 05]
-2019; [09 6D, 05, 05]
+0022; [09 78, 05, 05]
+FF02; [09 78, 05, 20]
-201A; [09 6F, 05, 05]
+201C; [09 7A, 05, 05]
-201B; [09 71, 05, 05]
+201D; [09 7C, 05, 05]
-2039; [09 73, 05, 05]
+201E; [09 7E, 05, 05]
-203A; [09 75, 05, 05]
+201F; [09 80, 05, 05]
-0022; [09 77, 05, 05]
-FF02; [09 77, 05, 20]
+2E42; [09 82, 05, 05]
-201C; [09 79, 05, 05]
+301D; [09 84, 05, 05]
-201D; [09 7B, 05, 05]
+301E; [09 86, 05, 05]
-201E; [09 7D, 05, 05]
+301F; [09 88, 05, 05]
-201F; [09 7F, 05, 05]
+00AB; [09 8A, 05, 05]
-2E42; [09 81, 05, 05]
+00BB; [09 8C, 05, 05]
-301D; [09 83, 05, 05]
+0028; [09 8E, 05, 05]
+FF08; [09 8E, 05, 10]
+FE59; [09 8E, 05, 1E]
+207D; [09 8E, 05, 25]
+208D; [09 8E, 05, 2C]
+FE35; [09 8E, 05, 33]
+2474; [09 8E, 05, 17][15, 05, 15][09 90, 05, 17]
+247D; [09 8E, 05, 17][15, 05, 15][13, 05, 15][09 90, 05, 17]
+247E; [09 8E, 05, 17][15, 05, 15][15, 05, 15][09 90, 05, 17]
+247F; [09 8E, 05, 17][15, 05, 15][17, 05, 15][09 90, 05, 17]
+2480; [09 8E, 05, 17][15, 05, 15][19, 05, 15][09 90, 05, 17]
+2481; [09 8E, 05, 17][15, 05, 15][1B, 05, 15][09 90, 05, 17]
+2482; [09 8E, 05, 17][15, 05, 15][1D, 05, 15][09 90, 05, 17]
+2483; [09 8E, 05, 17][15, 05, 15][1F, 05, 15][09 90, 05, 17]
+2484; [09 8E, 05, 17][15, 05, 15][21, 05, 15][09 90, 05, 17]
+2485; [09 8E, 05, 17][15, 05, 15][23, 05, 15][09 90, 05, 17]
+2486; [09 8E, 05, 17][15, 05, 15][25, 05, 16][09 90, 05, 17]
+2475; [09 8E, 05, 17][17, 05, 15][09 90, 05, 17]
+2487; [09 8E, 05, 17][17, 05, 15][13, 05, 15][09 90, 05, 17]
+2476; [09 8E, 05, 17][19, 05, 15][09 90, 05, 17]
+2477; [09 8E, 05, 17][1B, 05, 15][09 90, 05, 17]
+2478; [09 8E, 05, 17][1D, 05, 15][09 90, 05, 17]
+2479; [09 8E, 05, 17][1F, 05, 15][09 90, 05, 17]
+247A; [09 8E, 05, 17][21, 05, 15][09 90, 05, 17]
+247B; [09 8E, 05, 17][23, 05, 15][09 90, 05, 17]
+247C; [09 8E, 05, 17][25, 05, 16][09 90, 05, 17]
+249C; [09 8E, 05, 17][2A, 05, 13][09 90, 05, 17]
+1F110; [09 8E, 05, 17][2A, 05, A2][09 90, 05, 17]
+249D; [09 8E, 05, 17][2C, 05, 13][09 90, 05, 17]
+1F111; [09 8E, 05, 17][2C, 05, A2][09 90, 05, 17]
+249E; [09 8E, 05, 17][2E, 05, 13][09 90, 05, 17]
+1F112; [09 8E, 05, 17][2E, 05, A2][09 90, 05, 17]
+249F; [09 8E, 05, 17][30, 05, 13][09 90, 05, 17]
+1F113; [09 8E, 05, 17][30, 05, A2][09 90, 05, 17]
+24A0; [09 8E, 05, 17][32, 05, 13][09 90, 05, 17]
+1F114; [09 8E, 05, 17][32, 05, A2][09 90, 05, 17]
+24A1; [09 8E, 05, 17][34, 05, 13][09 90, 05, 17]
+1F115; [09 8E, 05, 17][34, 05, A2][09 90, 05, 17]
+24A2; [09 8E, 05, 17][36, 05, 13][09 90, 05, 17]
+1F116; [09 8E, 05, 17][36, 05, A2][09 90, 05, 17]
+24A3; [09 8E, 05, 17][38, 05, 13][09 90, 05, 17]
+1F117; [09 8E, 05, 17][38, 05, A2][09 90, 05, 17]
+24A4; [09 8E, 05, 17][3A, 05, 13][09 90, 05, 17]
+1F118; [09 8E, 05, 17][3A, 05, A2][09 90, 05, 17]
+24A5; [09 8E, 05, 17][3C, 05, 13][09 90, 05, 17]
+1F119; [09 8E, 05, 17][3C, 05, A2][09 90, 05, 17]
+24A6; [09 8E, 05, 17][3E, 05, 13][09 90, 05, 17]
+1F11A; [09 8E, 05, 17][3E, 05, A2][09 90, 05, 17]
+24A7; [09 8E, 05, 17][40, 05, 13][09 90, 05, 17]
+1F11B; [09 8E, 05, 17][40, 05, A2][09 90, 05, 17]
+24A8; [09 8E, 05, 17][42, 05, 13][09 90, 05, 17]
+1F11C; [09 8E, 05, 17][42, 05, A2][09 90, 05, 17]
+24A9; [09 8E, 05, 17][44, 05, 13][09 90, 05, 17]
+1F11D; [09 8E, 05, 17][44, 05, A2][09 90, 05, 17]
+24AA; [09 8E, 05, 17][46, 05, 13][09 90, 05, 17]
+1F11E; [09 8E, 05, 17][46, 05, A2][09 90, 05, 17]
+24AB; [09 8E, 05, 17][48, 05, 13][09 90, 05, 17]
+1F11F; [09 8E, 05, 17][48, 05, A2][09 90, 05, 17]
+24AC; [09 8E, 05, 17][4A, 05, 14][09 90, 05, 17]
+1F120; [09 8E, 05, 17][4A, 05, A8][09 90, 05, 17]
+24AD; [09 8E, 05, 17][4C, 05, 13][09 90, 05, 17]
+1F121; [09 8E, 05, 17][4C, 05, A2][09 90, 05, 17]
+24AE; [09 8E, 05, 17][4E, 05, 13][09 90, 05, 17]
+1F122; [09 8E, 05, 17][4E, 05, A2][09 90, 05, 17]
+24AF; [09 8E, 05, 17][50, 05, 13][09 90, 05, 17]
+1F123; [09 8E, 05, 17][50, 05, A2][09 90, 05, 17]
+24B0; [09 8E, 05, 17][52, 05, 13][09 90, 05, 17]
+1F124; [09 8E, 05, 17][52, 05, A2][09 90, 05, 17]
+24B1; [09 8E, 05, 17][54, 05, 13][09 90, 05, 17]
+1F125; [09 8E, 05, 17][54, 05, A2][09 90, 05, 17]
+24B2; [09 8E, 05, 17][56, 05, 14][09 90, 05, 17]
+1F126; [09 8E, 05, 17][56, 05, A8][09 90, 05, 17]
+24B3; [09 8E, 05, 17][58, 05, 13][09 90, 05, 17]
+1F127; [09 8E, 05, 17][58, 05, A2][09 90, 05, 17]
+24B4; [09 8E, 05, 17][5A, 05, 13][09 90, 05, 17]
+1F128; [09 8E, 05, 17][5A, 05, A2][09 90, 05, 17]
+24B5; [09 8E, 05, 17][5C, 05, 13][09 90, 05, 17]
+1F129; [09 8E, 05, 17][5C, 05, A2][09 90, 05, 17]
+3200; [09 8E, 05, 17][79 06, 05, 10][09 90, 05, 17]
+320E; [09 8E, 05, 17][79 06, 05, 10][79 67, 05, 10][09 90, 05, 17]
+3201; [09 8E, 05, 17][79 0A, 05, 10][09 90, 05, 17]
+320F; [09 8E, 05, 17][79 0A, 05, 10][79 67, 05, 10][09 90, 05, 17]
+3202; [09 8E, 05, 17][79 0C, 05, 10][09 90, 05, 17]
+3210; [09 8E, 05, 17][79 0C, 05, 10][79 67, 05, 10][09 90, 05, 17]
+3203; [09 8E, 05, 17][79 10, 05, 10][09 90, 05, 17]
+3211; [09 8E, 05, 17][79 10, 05, 10][79 67, 05, 10][09 90, 05, 17]
+3204; [09 8E, 05, 17][79 12, 05, 10][09 90, 05, 17]
+3212; [09 8E, 05, 17][79 12, 05, 10][79 67, 05, 10][09 90, 05, 17]
+3205; [09 8E, 05, 17][79 14, 05, 10][09 90, 05, 17]
+3213; [09 8E, 05, 17][79 14, 05, 10][79 67, 05, 10][09 90, 05, 17]
+3206; [09 8E, 05, 17][79 18, 05, 10][09 90, 05, 17]
+3214; [09 8E, 05, 17][79 18, 05, 10][79 67, 05, 10][09 90, 05, 17]
+3207; [09 8E, 05, 17][79 1C, 05, 10][09 90, 05, 17]
+3215; [09 8E, 05, 17][79 1C, 05, 10][79 67, 05, 10][09 90, 05, 17]
+321D; [09 8E, 05, 17][79 1C, 05, 10][79 77, 05, 10][79 1E, 05, 10][79 6F, 05, 20][79 B9, 05, 20][09 90, 05, 17]
+321E; [09 8E, 05, 17][79 1C, 05, 10][79 77, 05, 10][79 2A, 05, 10][79 81, 05, 10][09 90, 05, 17]
+3208; [09 8E, 05, 17][79 1E, 05, 10][09 90, 05, 17]
+3216; [09 8E, 05, 17][79 1E, 05, 10][79 67, 05, 10][09 90, 05, 17]
+321C; [09 8E, 05, 17][79 1E, 05, 10][79 81, 05, 10][09 90, 05, 17]
+3209; [09 8E, 05, 17][79 22, 05, 10][09 90, 05, 17]
+3217; [09 8E, 05, 17][79 22, 05, 10][79 67, 05, 10][09 90, 05, 17]
+320A; [09 8E, 05, 17][79 24, 05, 10][09 90, 05, 17]
+3218; [09 8E, 05, 17][79 24, 05, 10][79 67, 05, 10][09 90, 05, 17]
+320B; [09 8E, 05, 17][79 26, 05, 10][09 90, 05, 17]
+3219; [09 8E, 05, 17][79 26, 05, 10][79 67, 05, 10][09 90, 05, 17]
+320C; [09 8E, 05, 17][79 28, 05, 10][09 90, 05, 17]
+321A; [09 8E, 05, 17][79 28, 05, 10][79 67, 05, 10][09 90, 05, 17]
+320D; [09 8E, 05, 17][79 2A, 05, 10][09 90, 05, 17]
+321B; [09 8E, 05, 17][79 2A, 05, 10][79 67, 05, 10][09 90, 05, 17]
+3220; [09 8E, 05, 17][U+4E00, 10][09 90, 05, 17]
+3226; [09 8E, 05, 17][U+4E03, 10][09 90, 05, 17]
+3222; [09 8E, 05, 17][U+4E09, 10][09 90, 05, 17]
+3228; [09 8E, 05, 17][U+4E5D, 10][09 90, 05, 17]
+3221; [09 8E, 05, 17][U+4E8C, 10][09 90, 05, 17]
+3224; [09 8E, 05, 17][U+4E94, 10][09 90, 05, 17]
+3239; [09 8E, 05, 17][U+4EE3, 10][09 90, 05, 17]
+323D; [09 8E, 05, 17][U+4F01, 10][09 90, 05, 17]
+3241; [09 8E, 05, 17][U+4F11, 10][09 90, 05, 17]
+3227; [09 8E, 05, 17][U+516B, 10][09 90, 05, 17]
+3225; [09 8E, 05, 17][U+516D, 10][09 90, 05, 17]
+3238; [09 8E, 05, 17][U+52B4, 10][09 90, 05, 17]
+3229; [09 8E, 05, 17][U+5341, 10][09 90, 05, 17]
+323F; [09 8E, 05, 17][U+5354, 10][09 90, 05, 17]
+3234; [09 8E, 05, 17][U+540D, 10][09 90, 05, 17]
+323A; [09 8E, 05, 17][U+547C, 10][09 90, 05, 17]
+3223; [09 8E, 05, 17][U+56DB, 10][09 90, 05, 17]
+322F; [09 8E, 05, 17][U+571F, 10][09 90, 05, 17]
+323B; [09 8E, 05, 17][U+5B66, 10][09 90, 05, 17]
+3230; [09 8E, 05, 17][U+65E5, 10][09 90, 05, 17]
+322A; [09 8E, 05, 17][U+6708, 10][09 90, 05, 17]
+3232; [09 8E, 05, 17][U+6709, 10][09 90, 05, 17]
+322D; [09 8E, 05, 17][U+6728, 10][09 90, 05, 17]
+3231; [09 8E, 05, 17][U+682A, 10][09 90, 05, 17]
+322C; [09 8E, 05, 17][U+6C34, 10][09 90, 05, 17]
+322B; [09 8E, 05, 17][U+706B, 10][09 90, 05, 17]
+3235; [09 8E, 05, 17][U+7279, 10][09 90, 05, 17]
+323C; [09 8E, 05, 17][U+76E3, 10][09 90, 05, 17]
+3233; [09 8E, 05, 17][U+793E, 10][09 90, 05, 17]
+3237; [09 8E, 05, 17][U+795D, 10][09 90, 05, 17]
+3240; [09 8E, 05, 17][U+796D, 10][09 90, 05, 17]
+3242; [09 8E, 05, 17][U+81EA, 10][09 90, 05, 17]
+3243; [09 8E, 05, 17][U+81F3, 10][09 90, 05, 17]
+3236; [09 8E, 05, 17][U+8CA1, 10][09 90, 05, 17]
+323E; [09 8E, 05, 17][U+8CC7, 10][09 90, 05, 17]
+322E; [09 8E, 05, 17][U+91D1, 10][09 90, 05, 17]
+
+0029; [09 90, 05, 05]
+FF09; [09 90, 05, 10]
+FE5A; [09 90, 05, 1E]
+207E; [09 90, 05, 25]
+208E; [09 90, 05, 2C]
+FE36; [09 90, 05, 33]
+
+005B; [09 92, 05, 05]
+FF3B; [09 92, 05, 20]
+FE47; [09 92, 05, 2E]
+
+005D; [09 94, 05, 05]
+FF3D; [09 94, 05, 20]
+FE48; [09 94, 05, 2E]
-301E; [09 85, 05, 05]
+007B; [09 96, 05, 05]
+FF5B; [09 96, 05, 10]
+FE5B; [09 96, 05, 1E]
+FE37; [09 96, 05, 2C]
-301F; [09 87, 05, 05]
+007D; [09 98, 05, 05]
+FF5D; [09 98, 05, 10]
+FE5C; [09 98, 05, 1E]
+FE38; [09 98, 05, 2C]
-00AB; [09 89, 05, 05]
+0F3A; [09 9A, 05, 05]
-00BB; [09 8B, 05, 05]
+0F3B; [09 9C, 05, 05]
-0028; [09 8D, 05, 05]
-FF08; [09 8D, 05, 10]
-FE59; [09 8D, 05, 1E]
-207D; [09 8D, 05, 25]
-208D; [09 8D, 05, 2C]
-FE35; [09 8D, 05, 33]
-2474; [09 8D, 05, 17][14, 05, 15][09 8F, 05, 17]
-247D; [09 8D, 05, 17][14, 05, 15][12, 05, 15][09 8F, 05, 17]
-247E; [09 8D, 05, 17][14, 05, 15][14, 05, 15][09 8F, 05, 17]
-247F; [09 8D, 05, 17][14, 05, 15][16, 05, 15][09 8F, 05, 17]
-2480; [09 8D, 05, 17][14, 05, 15][18, 05, 15][09 8F, 05, 17]
-2481; [09 8D, 05, 17][14, 05, 15][1A, 05, 15][09 8F, 05, 17]
-2482; [09 8D, 05, 17][14, 05, 15][1C, 05, 15][09 8F, 05, 17]
-2483; [09 8D, 05, 17][14, 05, 15][1E, 05, 15][09 8F, 05, 17]
-2484; [09 8D, 05, 17][14, 05, 15][20, 05, 15][09 8F, 05, 17]
-2485; [09 8D, 05, 17][14, 05, 15][22, 05, 15][09 8F, 05, 17]
-2486; [09 8D, 05, 17][14, 05, 15][24, 05, 16][09 8F, 05, 17]
-2475; [09 8D, 05, 17][16, 05, 15][09 8F, 05, 17]
-2487; [09 8D, 05, 17][16, 05, 15][12, 05, 15][09 8F, 05, 17]
-2476; [09 8D, 05, 17][18, 05, 15][09 8F, 05, 17]
-2477; [09 8D, 05, 17][1A, 05, 15][09 8F, 05, 17]
-2478; [09 8D, 05, 17][1C, 05, 15][09 8F, 05, 17]
-2479; [09 8D, 05, 17][1E, 05, 15][09 8F, 05, 17]
-247A; [09 8D, 05, 17][20, 05, 15][09 8F, 05, 17]
-247B; [09 8D, 05, 17][22, 05, 15][09 8F, 05, 17]
-247C; [09 8D, 05, 17][24, 05, 16][09 8F, 05, 17]
-249C; [09 8D, 05, 17][29, 05, 13][09 8F, 05, 17]
-1F110; [09 8D, 05, 17][29, 05, A2][09 8F, 05, 17]
-249D; [09 8D, 05, 17][2B, 05, 13][09 8F, 05, 17]
-1F111; [09 8D, 05, 17][2B, 05, A2][09 8F, 05, 17]
-249E; [09 8D, 05, 17][2D, 05, 13][09 8F, 05, 17]
-1F112; [09 8D, 05, 17][2D, 05, A2][09 8F, 05, 17]
-249F; [09 8D, 05, 17][2F, 05, 13][09 8F, 05, 17]
-1F113; [09 8D, 05, 17][2F, 05, A2][09 8F, 05, 17]
-24A0; [09 8D, 05, 17][31, 05, 13][09 8F, 05, 17]
-1F114; [09 8D, 05, 17][31, 05, A2][09 8F, 05, 17]
-24A1; [09 8D, 05, 17][33, 05, 13][09 8F, 05, 17]
-1F115; [09 8D, 05, 17][33, 05, A2][09 8F, 05, 17]
-24A2; [09 8D, 05, 17][35, 05, 13][09 8F, 05, 17]
-1F116; [09 8D, 05, 17][35, 05, A2][09 8F, 05, 17]
-24A3; [09 8D, 05, 17][37, 05, 13][09 8F, 05, 17]
-1F117; [09 8D, 05, 17][37, 05, A2][09 8F, 05, 17]
-24A4; [09 8D, 05, 17][39, 05, 13][09 8F, 05, 17]
-1F118; [09 8D, 05, 17][39, 05, A2][09 8F, 05, 17]
-24A5; [09 8D, 05, 17][3B, 05, 13][09 8F, 05, 17]
-1F119; [09 8D, 05, 17][3B, 05, A2][09 8F, 05, 17]
-24A6; [09 8D, 05, 17][3D, 05, 13][09 8F, 05, 17]
-1F11A; [09 8D, 05, 17][3D, 05, A2][09 8F, 05, 17]
-24A7; [09 8D, 05, 17][3F, 05, 13][09 8F, 05, 17]
-1F11B; [09 8D, 05, 17][3F, 05, A2][09 8F, 05, 17]
-24A8; [09 8D, 05, 17][41, 05, 13][09 8F, 05, 17]
-1F11C; [09 8D, 05, 17][41, 05, A2][09 8F, 05, 17]
-24A9; [09 8D, 05, 17][43, 05, 13][09 8F, 05, 17]
-1F11D; [09 8D, 05, 17][43, 05, A2][09 8F, 05, 17]
-24AA; [09 8D, 05, 17][45, 05, 13][09 8F, 05, 17]
-1F11E; [09 8D, 05, 17][45, 05, A2][09 8F, 05, 17]
-24AB; [09 8D, 05, 17][47, 05, 13][09 8F, 05, 17]
-1F11F; [09 8D, 05, 17][47, 05, A2][09 8F, 05, 17]
-24AC; [09 8D, 05, 17][49, 05, 14][09 8F, 05, 17]
-1F120; [09 8D, 05, 17][49, 05, A8][09 8F, 05, 17]
-24AD; [09 8D, 05, 17][4B, 05, 13][09 8F, 05, 17]
-1F121; [09 8D, 05, 17][4B, 05, A2][09 8F, 05, 17]
-24AE; [09 8D, 05, 17][4D, 05, 13][09 8F, 05, 17]
-1F122; [09 8D, 05, 17][4D, 05, A2][09 8F, 05, 17]
-24AF; [09 8D, 05, 17][4F, 05, 13][09 8F, 05, 17]
-1F123; [09 8D, 05, 17][4F, 05, A2][09 8F, 05, 17]
-24B0; [09 8D, 05, 17][51, 05, 13][09 8F, 05, 17]
-1F124; [09 8D, 05, 17][51, 05, A2][09 8F, 05, 17]
-24B1; [09 8D, 05, 17][53, 05, 13][09 8F, 05, 17]
-1F125; [09 8D, 05, 17][53, 05, A2][09 8F, 05, 17]
-24B2; [09 8D, 05, 17][55, 05, 14][09 8F, 05, 17]
-1F126; [09 8D, 05, 17][55, 05, A8][09 8F, 05, 17]
-24B3; [09 8D, 05, 17][57, 05, 13][09 8F, 05, 17]
-1F127; [09 8D, 05, 17][57, 05, A2][09 8F, 05, 17]
-24B4; [09 8D, 05, 17][59, 05, 13][09 8F, 05, 17]
-1F128; [09 8D, 05, 17][59, 05, A2][09 8F, 05, 17]
-24B5; [09 8D, 05, 17][5B, 05, 13][09 8F, 05, 17]
-1F129; [09 8D, 05, 17][5B, 05, A2][09 8F, 05, 17]
-3200; [09 8D, 05, 17][78 06, 05, 10][09 8F, 05, 17]
-320E; [09 8D, 05, 17][78 06, 05, 10][78 67, 05, 10][09 8F, 05, 17]
-3201; [09 8D, 05, 17][78 0A, 05, 10][09 8F, 05, 17]
-320F; [09 8D, 05, 17][78 0A, 05, 10][78 67, 05, 10][09 8F, 05, 17]
-3202; [09 8D, 05, 17][78 0C, 05, 10][09 8F, 05, 17]
-3210; [09 8D, 05, 17][78 0C, 05, 10][78 67, 05, 10][09 8F, 05, 17]
-3203; [09 8D, 05, 17][78 10, 05, 10][09 8F, 05, 17]
-3211; [09 8D, 05, 17][78 10, 05, 10][78 67, 05, 10][09 8F, 05, 17]
-3204; [09 8D, 05, 17][78 12, 05, 10][09 8F, 05, 17]
-3212; [09 8D, 05, 17][78 12, 05, 10][78 67, 05, 10][09 8F, 05, 17]
-3205; [09 8D, 05, 17][78 14, 05, 10][09 8F, 05, 17]
-3213; [09 8D, 05, 17][78 14, 05, 10][78 67, 05, 10][09 8F, 05, 17]
-3206; [09 8D, 05, 17][78 18, 05, 10][09 8F, 05, 17]
-3214; [09 8D, 05, 17][78 18, 05, 10][78 67, 05, 10][09 8F, 05, 17]
-3207; [09 8D, 05, 17][78 1C, 05, 10][09 8F, 05, 17]
-3215; [09 8D, 05, 17][78 1C, 05, 10][78 67, 05, 10][09 8F, 05, 17]
-321D; [09 8D, 05, 17][78 1C, 05, 10][78 77, 05, 10][78 1E, 05, 10][78 6F, 05, 20][78 B9, 05, 20][09 8F, 05, 17]
-321E; [09 8D, 05, 17][78 1C, 05, 10][78 77, 05, 10][78 2A, 05, 10][78 81, 05, 10][09 8F, 05, 17]
-3208; [09 8D, 05, 17][78 1E, 05, 10][09 8F, 05, 17]
-3216; [09 8D, 05, 17][78 1E, 05, 10][78 67, 05, 10][09 8F, 05, 17]
-321C; [09 8D, 05, 17][78 1E, 05, 10][78 81, 05, 10][09 8F, 05, 17]
-3209; [09 8D, 05, 17][78 22, 05, 10][09 8F, 05, 17]
-3217; [09 8D, 05, 17][78 22, 05, 10][78 67, 05, 10][09 8F, 05, 17]
-320A; [09 8D, 05, 17][78 24, 05, 10][09 8F, 05, 17]
-3218; [09 8D, 05, 17][78 24, 05, 10][78 67, 05, 10][09 8F, 05, 17]
-320B; [09 8D, 05, 17][78 26, 05, 10][09 8F, 05, 17]
-3219; [09 8D, 05, 17][78 26, 05, 10][78 67, 05, 10][09 8F, 05, 17]
-320C; [09 8D, 05, 17][78 28, 05, 10][09 8F, 05, 17]
-321A; [09 8D, 05, 17][78 28, 05, 10][78 67, 05, 10][09 8F, 05, 17]
-320D; [09 8D, 05, 17][78 2A, 05, 10][09 8F, 05, 17]
-321B; [09 8D, 05, 17][78 2A, 05, 10][78 67, 05, 10][09 8F, 05, 17]
-3220; [09 8D, 05, 17][U+4E00, 10][09 8F, 05, 17]
-3226; [09 8D, 05, 17][U+4E03, 10][09 8F, 05, 17]
-3222; [09 8D, 05, 17][U+4E09, 10][09 8F, 05, 17]
-3228; [09 8D, 05, 17][U+4E5D, 10][09 8F, 05, 17]
-3221; [09 8D, 05, 17][U+4E8C, 10][09 8F, 05, 17]
-3224; [09 8D, 05, 17][U+4E94, 10][09 8F, 05, 17]
-3239; [09 8D, 05, 17][U+4EE3, 10][09 8F, 05, 17]
-323D; [09 8D, 05, 17][U+4F01, 10][09 8F, 05, 17]
-3241; [09 8D, 05, 17][U+4F11, 10][09 8F, 05, 17]
-3227; [09 8D, 05, 17][U+516B, 10][09 8F, 05, 17]
-3225; [09 8D, 05, 17][U+516D, 10][09 8F, 05, 17]
-3238; [09 8D, 05, 17][U+52B4, 10][09 8F, 05, 17]
-3229; [09 8D, 05, 17][U+5341, 10][09 8F, 05, 17]
-323F; [09 8D, 05, 17][U+5354, 10][09 8F, 05, 17]
-3234; [09 8D, 05, 17][U+540D, 10][09 8F, 05, 17]
-323A; [09 8D, 05, 17][U+547C, 10][09 8F, 05, 17]
-3223; [09 8D, 05, 17][U+56DB, 10][09 8F, 05, 17]
-322F; [09 8D, 05, 17][U+571F, 10][09 8F, 05, 17]
-323B; [09 8D, 05, 17][U+5B66, 10][09 8F, 05, 17]
-3230; [09 8D, 05, 17][U+65E5, 10][09 8F, 05, 17]
-322A; [09 8D, 05, 17][U+6708, 10][09 8F, 05, 17]
-3232; [09 8D, 05, 17][U+6709, 10][09 8F, 05, 17]
-322D; [09 8D, 05, 17][U+6728, 10][09 8F, 05, 17]
-3231; [09 8D, 05, 17][U+682A, 10][09 8F, 05, 17]
-322C; [09 8D, 05, 17][U+6C34, 10][09 8F, 05, 17]
-322B; [09 8D, 05, 17][U+706B, 10][09 8F, 05, 17]
-3235; [09 8D, 05, 17][U+7279, 10][09 8F, 05, 17]
-323C; [09 8D, 05, 17][U+76E3, 10][09 8F, 05, 17]
-3233; [09 8D, 05, 17][U+793E, 10][09 8F, 05, 17]
-3237; [09 8D, 05, 17][U+795D, 10][09 8F, 05, 17]
-3240; [09 8D, 05, 17][U+796D, 10][09 8F, 05, 17]
-3242; [09 8D, 05, 17][U+81EA, 10][09 8F, 05, 17]
-3243; [09 8D, 05, 17][U+81F3, 10][09 8F, 05, 17]
-3236; [09 8D, 05, 17][U+8CA1, 10][09 8F, 05, 17]
-323E; [09 8D, 05, 17][U+8CC7, 10][09 8F, 05, 17]
-322E; [09 8D, 05, 17][U+91D1, 10][09 8F, 05, 17]
-
-0029; [09 8F, 05, 05]
-FF09; [09 8F, 05, 10]
-FE5A; [09 8F, 05, 1E]
-207E; [09 8F, 05, 25]
-208E; [09 8F, 05, 2C]
-FE36; [09 8F, 05, 33]
-
-005B; [09 91, 05, 05]
-FF3B; [09 91, 05, 20]
-FE47; [09 91, 05, 2E]
-
-005D; [09 93, 05, 05]
-FF3D; [09 93, 05, 20]
-FE48; [09 93, 05, 2E]
+0F3C; [09 9E, 05, 05]
-007B; [09 95, 05, 05]
-FF5B; [09 95, 05, 10]
-FE5B; [09 95, 05, 1E]
-FE37; [09 95, 05, 2C]
+0F3D; [09 A0, 05, 05]
-007D; [09 97, 05, 05]
-FF5D; [09 97, 05, 10]
-FE5C; [09 97, 05, 1E]
-FE38; [09 97, 05, 2C]
+169B; [09 A2 02, 05, 05]
-0F3A; [09 99, 05, 05]
+169C; [09 A2 09, 05, 05]
-0F3B; [09 9B, 05, 05]
+2045; [09 A4, 05, 05]
-0F3C; [09 9D, 05, 05]
+2046; [09 A6, 05, 05]
-0F3D; [09 9F, 05, 05]
+2308; [09 A8, 05, 05]
-169B; [09 A1 02, 05, 05]
+2309; [09 AA, 05, 05]
-169C; [09 A1 09, 05, 05]
+230A; [09 AC, 05, 05]
-2045; [09 A3, 05, 05]
+230B; [09 AE, 05, 05]
-2046; [09 A5, 05, 05]
+29FC; [09 B0, 05, 05]
-2308; [09 A7, 05, 05]
+29FD; [09 B2, 05, 05]
-2309; [09 A9, 05, 05]
+2983; [09 B4, 05, 05]
-230A; [09 AB, 05, 05]
+2984; [09 B6, 05, 05]
-230B; [09 AD, 05, 05]
+2985; [09 B8, 05, 05]
+FF5F; [09 B8, 05, 20]
-29FC; [09 AF, 05, 05]
+2986; [09 BA, 05, 05]
+FF60; [09 BA, 05, 20]
-29FD; [09 B1, 05, 05]
+2987; [09 BC, 05, 05]
-2983; [09 B3, 05, 05]
+2988; [09 BE, 05, 05]
-2984; [09 B5, 05, 05]
+2989; [09 C0, 05, 05]
-2985; [09 B7, 05, 05]
-FF5F; [09 B7, 05, 20]
+298A; [09 C2, 05, 05]
-2986; [09 B9, 05, 05]
-FF60; [09 B9, 05, 20]
+298B; [09 C4, 05, 05]
-2987; [09 BB, 05, 05]
+298C; [09 C6, 05, 05]
-2988; [09 BD, 05, 05]
+298D; [09 C8, 05, 05]
-2989; [09 BF, 05, 05]
+298E; [09 CA, 05, 05]
-298A; [09 C1, 05, 05]
+298F; [09 CC, 05, 05]
-298B; [09 C3, 05, 05]
+2990; [09 CE, 05, 05]
-298C; [09 C5, 05, 05]
+2991; [09 D0, 05, 05]
-298D; [09 C7, 05, 05]
+2992; [09 D2, 05, 05]
-298E; [09 C9, 05, 05]
+2993; [09 D4, 05, 05]
-298F; [09 CB, 05, 05]
+2994; [09 D6, 05, 05]
-2990; [09 CD, 05, 05]
+2995; [09 D8, 05, 05]
-2991; [09 CF, 05, 05]
+2996; [09 DA, 05, 05]
-2992; [09 D1, 05, 05]
+2997; [09 DC, 05, 05]
-2993; [09 D3, 05, 05]
+2998; [09 DE, 05, 05]
-2994; [09 D5, 05, 05]
+27C5; [09 E0, 05, 05]
-2995; [09 D7, 05, 05]
+27C6; [09 E2, 05, 05]
-2996; [09 D9, 05, 05]
+27E6; [09 E4, 05, 05]
-2997; [09 DB, 05, 05]
+27E7; [09 E6, 05, 05]
-2998; [09 DD, 05, 05]
+27E8; [09 E8, 05, 05]
-27C5; [09 DF, 05, 05]
+27E9; [09 EA, 05, 05]
-27C6; [09 E1, 05, 05]
+27EA; [09 EC, 05, 05]
-27E6; [09 E3, 05, 05]
+27EB; [09 EE, 05, 05]
-27E7; [09 E5, 05, 05]
+27EC; [09 F0, 05, 05]
-27E8; [09 E7, 05, 05]
+27ED; [09 F2, 05, 05]
-27E9; [09 E9, 05, 05]
+27EE; [09 F4, 05, 05]
-27EA; [09 EB, 05, 05]
+27EF; [09 F6, 05, 05]
-27EB; [09 ED, 05, 05]
+2768; [09 F8, 05, 05]
-27EC; [09 EF, 05, 05]
+2769; [09 FA, 05, 05]
-27ED; [09 F1, 05, 05]
+276A; [09 FC, 05, 05]
-27EE; [09 F3, 05, 05]
+276B; [09 FE, 05, 05]
-27EF; [09 F5, 05, 05]
+276C; [0A 02, 05, 05]
-2768; [09 F7, 05, 05]
+276D; [0A 04, 05, 05]
-2769; [09 F9, 05, 05]
+276E; [0A 06, 05, 05]
-276A; [09 FB, 05, 05]
+276F; [0A 08, 05, 05]
-276B; [09 FD, 05, 05]
+2770; [0A 0A, 05, 05]
-276C; [09 FF, 05, 05]
+2771; [0A 0C, 05, 05]
-276D; [0A 03, 05, 05]
+2772; [0A 0E, 05, 05]
-276E; [0A 05, 05, 05]
+2773; [0A 10, 05, 05]
-276F; [0A 07, 05, 05]
+2774; [0A 12, 05, 05]
-2770; [0A 09, 05, 05]
+2775; [0A 14, 05, 05]
-2771; [0A 0B, 05, 05]
+2E02; [0A 16, 05, 05]
-2772; [0A 0D, 05, 05]
+2E03; [0A 18, 05, 05]
-2773; [0A 0F, 05, 05]
+2E04; [0A 1A, 05, 05]
-2774; [0A 11, 05, 05]
+2E05; [0A 1C, 05, 05]
-2775; [0A 13, 05, 05]
+2E09; [0A 1E, 05, 05]
-2E02; [0A 15, 05, 05]
+2E0A; [0A 20, 05, 05]
-2E03; [0A 17, 05, 05]
+2E0C; [0A 22, 05, 05]
-2E04; [0A 19, 05, 05]
+2E0D; [0A 24, 05, 05]
-2E05; [0A 1B, 05, 05]
+2E1C; [0A 26, 05, 05]
-2E09; [0A 1D, 05, 05]
+2E1D; [0A 28, 05, 05]
-2E0A; [0A 1F, 05, 05]
+2E20; [0A 2A, 05, 05]
-2E0C; [0A 21, 05, 05]
+2E21; [0A 2C, 05, 05]
-2E0D; [0A 23, 05, 05]
+2E22; [0A 2E, 05, 05]
-2E1C; [0A 25, 05, 05]
+2E23; [0A 30, 05, 05]
-2E1D; [0A 27, 05, 05]
+2E24; [0A 32, 05, 05]
-2E20; [0A 29, 05, 05]
+2E25; [0A 34, 05, 05]
-2E21; [0A 2B, 05, 05]
+2E26; [0A 36, 05, 05]
-2E22; [0A 2D, 05, 05]
+2E27; [0A 38, 05, 05]
-2E23; [0A 2F, 05, 05]
+2E28; [0A 3A, 05, 05]
-2E24; [0A 31, 05, 05]
+2E29; [0A 3C, 05, 05]
-2E25; [0A 33, 05, 05]
+2329; [0A 3E, 05, 05]
+3008; [0A 3E, 05, 05]
+FE3F; [0A 3E, 05, 20]
-2E26; [0A 35, 05, 05]
+232A; [0A 40, 05, 05]
+3009; [0A 40, 05, 05]
+FE40; [0A 40, 05, 20]
-2E27; [0A 37, 05, 05]
+300A; [0A 42, 05, 05]
+FE3D; [0A 42, 05, 20]
-2E28; [0A 39, 05, 05]
+300B; [0A 44, 05, 05]
+FE3E; [0A 44, 05, 20]
-2E29; [0A 3B, 05, 05]
+300C; [0A 46, 05, 05]
+FF62; [0A 46, 05, A0]
+FE41; [0A 46, 05, 2E]
-2329; [0A 3D, 05, 05]
-3008; [0A 3D, 05, 05]
-FE3F; [0A 3D, 05, 20]
+300D; [0A 48, 05, 05]
+FF63; [0A 48, 05, A0]
+FE42; [0A 48, 05, 2E]
-232A; [0A 3F, 05, 05]
-3009; [0A 3F, 05, 05]
-FE40; [0A 3F, 05, 20]
+300E; [0A 4A, 05, 05]
+FE43; [0A 4A, 05, 20]
-300A; [0A 41, 05, 05]
-FE3D; [0A 41, 05, 20]
+300F; [0A 4C, 05, 05]
+FE44; [0A 4C, 05, 20]
-300B; [0A 43, 05, 05]
-FE3E; [0A 43, 05, 20]
+3010; [0A 4E, 05, 05]
+FE3B; [0A 4E, 05, 20]
-300C; [0A 45, 05, 05]
-FF62; [0A 45, 05, A0]
-FE41; [0A 45, 05, 2E]
+3011; [0A 50, 05, 05]
+FE3C; [0A 50, 05, 20]
-300D; [0A 47, 05, 05]
-FF63; [0A 47, 05, A0]
-FE42; [0A 47, 05, 2E]
+3014; [0A 52, 05, 05]
+FE5D; [0A 52, 05, 1E]
+FE39; [0A 52, 05, 2C]
+1F12A; [0A 52, 05, 10][4E, 05, A2][0A 54, 05, 10]
+1F241; [0A 52, 05, 10][U+4E09, 10][0A 54, 05, 10]
+1F242; [0A 52, 05, 10][U+4E8C, 10][0A 54, 05, 10]
+1F247; [0A 52, 05, 10][U+52DD, 10][0A 54, 05, 10]
+1F243; [0A 52, 05, 10][U+5B89, 10][0A 54, 05, 10]
+1F245; [0A 52, 05, 10][U+6253, 10][0A 54, 05, 10]
+1F248; [0A 52, 05, 10][U+6557, 10][0A 54, 05, 10]
+1F240; [0A 52, 05, 10][U+672C, 10][0A 54, 05, 10]
+1F244; [0A 52, 05, 10][U+70B9, 10][0A 54, 05, 10]
+1F246; [0A 52, 05, 10][U+76D7, 10][0A 54, 05, 10]
-300E; [0A 49, 05, 05]
-FE43; [0A 49, 05, 20]
+3015; [0A 54, 05, 05]
+FE5E; [0A 54, 05, 1E]
+FE3A; [0A 54, 05, 2C]
-300F; [0A 4B, 05, 05]
-FE44; [0A 4B, 05, 20]
+3016; [0A 56, 05, 05]
+FE17; [0A 56, 05, 20]
-3010; [0A 4D, 05, 05]
-FE3B; [0A 4D, 05, 20]
+3017; [0A 58, 05, 05]
+FE18; [0A 58, 05, 20]
-3011; [0A 4F, 05, 05]
-FE3C; [0A 4F, 05, 20]
+3018; [0A 5A, 05, 05]
-3014; [0A 51, 05, 05]
-FE5D; [0A 51, 05, 1E]
-FE39; [0A 51, 05, 2C]
-1F12A; [0A 51, 05, 10][4D, 05, A2][0A 53, 05, 10]
-1F241; [0A 51, 05, 10][U+4E09, 10][0A 53, 05, 10]
-1F242; [0A 51, 05, 10][U+4E8C, 10][0A 53, 05, 10]
-1F247; [0A 51, 05, 10][U+52DD, 10][0A 53, 05, 10]
-1F243; [0A 51, 05, 10][U+5B89, 10][0A 53, 05, 10]
-1F245; [0A 51, 05, 10][U+6253, 10][0A 53, 05, 10]
-1F248; [0A 51, 05, 10][U+6557, 10][0A 53, 05, 10]
-1F240; [0A 51, 05, 10][U+672C, 10][0A 53, 05, 10]
-1F244; [0A 51, 05, 10][U+70B9, 10][0A 53, 05, 10]
-1F246; [0A 51, 05, 10][U+76D7, 10][0A 53, 05, 10]
+3019; [0A 5C, 05, 05]
-3015; [0A 53, 05, 05]
-FE5E; [0A 53, 05, 1E]
-FE3A; [0A 53, 05, 2C]
+301A; [0A 5E, 05, 05]
-3016; [0A 55, 05, 05]
-FE17; [0A 55, 05, 20]
+301B; [0A 60, 05, 05]
-3017; [0A 57, 05, 05]
-FE18; [0A 57, 05, 20]
+FD3E; [0A 62, 05, 05]
-3018; [0A 59, 05, 05]
+FD3F; [0A 64, 05, 05]
-3019; [0A 5B, 05, 05]
+2016; [0A 66, 05, 05]
-301A; [0A 5D, 05, 05]
+2E3E; [0A 68, 05, 05]
-301B; [0A 5F, 05, 05]
+29D8; [0A 6A, 05, 05]
-FD3E; [0A 61, 05, 05]
+29D9; [0A 6C, 05, 05]
-FD3F; [0A 63, 05, 05]
+29DA; [0A 6E, 05, 05]
-2016; [0A 65, 05, 05]
+29DB; [0A 70, 05, 05]
-2E3E; [0A 67, 05, 05]
+00A7; [0A 72, 05, 05]
-29D8; [0A 69, 05, 05]
+2E39; [0A 74, 05, 05]
-29D9; [0A 6B, 05, 05]
+00B6; [0A 76, 05, 05]
-29DA; [0A 6D, 05, 05]
+204B; [0A 78, 05, 05]
-29DB; [0A 6F, 05, 05]
+2E4D; [0A 7A, 05, 05]
-00A7; [0A 71, 05, 05]
+2E3F; [0A 7C, 05, 05]
-2E39; [0A 73, 05, 05]
+0040; [0A 7E, 05, 05]
+FF20; [0A 7E, 05, 20]
+FE6B; [0A 7E, 05, 2E]
-00B6; [0A 75, 05, 05]
+002A; [0A 80, 05, 05]
+FF0A; [0A 80, 05, 20]
+FE61; [0A 80, 05, 2E]
-204B; [0A 77, 05, 05]
+204E; [0A 82, 05, 05]
-2E3F; [0A 79, 05, 05]
+2051; [0A 84, 05, 05]
-0040; [0A 7B, 05, 05]
-FF20; [0A 7B, 05, 20]
-FE6B; [0A 7B, 05, 2E]
+066D; [0A 86, 05, 05]
-002A; [0A 7D, 05, 05]
-FF0A; [0A 7D, 05, 20]
-FE61; [0A 7D, 05, 2E]
+A673; [0A 88, 05, 05]
-204E; [0A 7F, 05, 05]
+002F; [0A 8A, 05, 05]
+FF0F; [0A 8A, 05, 20]
-2051; [0A 81, 05, 05]
+005C; [0A 8C, 05, 05]
+FF3C; [0A 8C, 05, 20]
+FE68; [0A 8C, 05, 2E]
-066D; [0A 83, 05, 05]
+2E4A; [0A 8E, 05, 05]
-A673; [0A 85, 05, 05]
+0026; [0A 90, 05, 05]
+FF06; [0A 90, 05, 20]
+FE60; [0A 90, 05, 2E]
-002F; [0A 87, 05, 05]
-FF0F; [0A 87, 05, 20]
+204A; [0A 92, 05, 05]
-005C; [0A 89, 05, 05]
-FF3C; [0A 89, 05, 20]
-FE68; [0A 89, 05, 2E]
+0023; [0A 94, 05, 05]
+FF03; [0A 94, 05, 20]
+FE5F; [0A 94, 05, 2E]
-0026; [0A 8B, 05, 05]
-FF06; [0A 8B, 05, 20]
-FE60; [0A 8B, 05, 2E]
+0025; [0A 96, 05, 05]
+FF05; [0A 96, 05, 20]
+FE6A; [0A 96, 05, 2E]
-204A; [0A 8D, 05, 05]
+066A; [0A 98, 05, 05]
-0023; [0A 8F, 05, 05]
-FF03; [0A 8F, 05, 20]
-FE5F; [0A 8F, 05, 2E]
+2030; [0A 9A, 05, 05]
-0025; [0A 91, 05, 05]
-FF05; [0A 91, 05, 20]
-FE6A; [0A 91, 05, 2E]
+0609; [0A 9C, 05, 05]
-066A; [0A 93, 05, 05]
+2031; [0A 9E, 05, 05]
-2030; [0A 95, 05, 05]
+060A; [0A A0, 05, 05]
-0609; [0A 97, 05, 05]
+2020; [0A A2, 05, 05]
-2031; [0A 99, 05, 05]
+2021; [0A A4, 05, 05]
-060A; [0A 9B, 05, 05]
+2E36; [0A A6, 05, 05]
-2020; [0A 9D, 05, 05]
+2E37; [0A A8, 05, 05]
-2021; [0A 9F, 05, 05]
+2E38; [0A AA, 05, 05]
-2E36; [0A A1, 05, 05]
+2E4B; [0A AC, 05, 05]
-2E37; [0A A3, 05, 05]
+2022; [0A AE, 05, 05]
-2E38; [0A A5, 05, 05]
+2023; [0A B0, 05, 05]
-2022; [0A A7, 05, 05]
+2027; [0A B2, 05, 05]
-2023; [0A A9, 05, 05]
+2043; [0A B4, 05, 05]
-2027; [0A AB, 05, 05]
+204C; [0A B6, 05, 05]
-2043; [0A AD, 05, 05]
+204D; [0A B8, 05, 05]
-204C; [0A AF, 05, 05]
+2032; [0A BA, 05, 05]
+2033; [0A BA, 05, 20][0A BA, 05, 20]
+2034; [0A BA, 05, 20][0A BA, 05, 20][0A BA, 05, 20]
+2057; [0A BA, 05, 20][0A BA, 05, 20][0A BA, 05, 20][0A BA, 05, 20]
-204D; [0A B1, 05, 05]
+2035; [0A BC, 05, 05]
+2036; [0A BC, 05, 20][0A BC, 05, 20]
+2037; [0A BC, 05, 20][0A BC, 05, 20][0A BC, 05, 20]
-2032; [0A B3, 05, 05]
-2033; [0A B3, 05, 20][0A B3, 05, 20]
-2034; [0A B3, 05, 20][0A B3, 05, 20][0A B3, 05, 20]
-2057; [0A B3, 05, 20][0A B3, 05, 20][0A B3, 05, 20][0A B3, 05, 20]
+3003; [0A BE, 05, 05]
-2035; [0A B5, 05, 05]
-2036; [0A B5, 05, 20][0A B5, 05, 20]
-2037; [0A B5, 05, 20][0A B5, 05, 20][0A B5, 05, 20]
+303D; [0A C0, 05, 05]
-3003; [0A B7, 05, 05]
+2038; [0A C2, 05, 05]
-303D; [0A B9, 05, 05]
+203B; [0A C4, 05, 05]
-2038; [0A BB, 05, 05]
+203F; [0A C6, 05, 05]
-203B; [0A BD, 05, 05]
+2054; [0A C8, 05, 05]
-203F; [0A BF, 05, 05]
+2040; [0A CA, 05, 05]
-2054; [0A C1, 05, 05]
+2050; [0A CC, 05, 05]
-2040; [0A C3, 05, 05]
+2041; [0A CE, 05, 05]
-2050; [0A C5, 05, 05]
+2042; [0A D0, 05, 05]
-2041; [0A C7, 05, 05]
+2E00; [0A D2, 05, 05]
-2042; [0A C9, 05, 05]
+2E01; [0A D4, 05, 05]
-2E00; [0A CB, 05, 05]
+2E06; [0A D6, 05, 05]
-2E01; [0A CD, 05, 05]
+2E07; [0A D8, 05, 05]
-2E06; [0A CF, 05, 05]
+2E08; [0A DA, 05, 05]
-2E07; [0A D1, 05, 05]
+2E0B; [0A DC, 05, 05]
-2E08; [0A D3, 05, 05]
+2E0E; [0A DE, 05, 05]
-2E0B; [0A D5, 05, 05]
+2E0F; [0A E0, 05, 05]
-2E0E; [0A D7, 05, 05]
+2E10; [0A E2, 05, 05]
-2E0F; [0A D9, 05, 05]
+2E11; [0A E4, 05, 05]
-2E10; [0A DB, 05, 05]
+2E12; [0A E6, 05, 05]
-2E11; [0A DD, 05, 05]
+2E13; [0A E8, 05, 05]
-2E12; [0A DF, 05, 05]
+2E14; [0A EA, 05, 05]
-2E13; [0A E1, 05, 05]
+2E15; [0A EC, 05, 05]
-2E14; [0A E3, 05, 05]
+2E16; [0A EE, 05, 05]
-2E15; [0A E5, 05, 05]
+2E1A; [0A F0, 05, 05]
-2E16; [0A E7, 05, 05]
+2E1B; [0A F2, 05, 05]
-2E1A; [0A E9, 05, 05]
+2E1E; [0A F4, 05, 05]
-2E1B; [0A EB, 05, 05]
+2E1F; [0A F6, 05, 05]
-2E1E; [0A ED, 05, 05]
+2E44; [0A F8, 05, 05]
-2E1F; [0A EF, 05, 05]
+2E45; [0A FA, 05, 05]
-2E44; [0A F1, 05, 05]
+2E46; [0A FC, 05, 05]
-2E45; [0A F3, 05, 05]
+2E47; [0A FE, 05, 05]
-2E46; [0A F5, 05, 05]
+2E48; [0B 02, 05, 05]
-2E47; [0A F7, 05, 05]
+A67E; [0B 04, 05, 05]
-2E48; [0A F9, 05, 05]
+055A; [0B 06, 05, 05]
-A67E; [0A FB, 05, 05]
+055B; [0B 08, 05, 05]
-055A; [0A FD, 05, 05]
+055F; [0B 0A, 05, 05]
-055B; [0A FF, 05, 05]
+05BE; [0B 0C, 05, 05]
-055F; [0B 03, 05, 05]
+05C0; [0B 0E, 05, 05]
-05BE; [0B 05, 05, 05]
+05C3; [0B 10, 05, 05]
-05C0; [0B 07, 05, 05]
+05C6; [0B 12, 05, 05]
-05C3; [0B 09, 05, 05]
+05F3; [0B 14, 05, 05]
-05C6; [0B 0B, 05, 05]
+05F4; [0B 16, 05, 05]
-05F3; [0B 0D, 05, 05]
+070A; [0B 18 02, 05, 05]
-05F4; [0B 0F, 05, 05]
+070B; [0B 18 09, 05, 05]
-070A; [0B 11 02, 05, 05]
+070C; [0B 18 10, 05, 05]
-070B; [0B 11 09, 05, 05]
+070D; [0B 18 17, 05, 05]
-070C; [0B 11 10, 05, 05]
+085E; [0B 18 1E, 05, 05]
-070D; [0B 11 17, 05, 05]
+1800; [0B 18 25, 05, 05]
-085E; [0B 11 1E, 05, 05]
+11660; [0B 18 2C, 05, 05]
-1800; [0B 11 25, 05, 05]
+11661; [0B 18 33, 05, 05]
-11660; [0B 11 2C, 05, 05]
+11662; [0B 18 3A, 05, 05]
-11661; [0B 11 33, 05, 05]
+11663; [0B 18 41, 05, 05]
-11662; [0B 11 3A, 05, 05]
+11664; [0B 18 48, 05, 05]
-11663; [0B 11 41, 05, 05]
+11665; [0B 18 4F, 05, 05]
-11664; [0B 11 48, 05, 05]
+11666; [0B 18 56, 05, 05]
-11665; [0B 11 4F, 05, 05]
+11667; [0B 18 5D, 05, 05]
-11666; [0B 11 56, 05, 05]
+11668; [0B 18 64, 05, 05]
-11667; [0B 11 5D, 05, 05]
+11669; [0B 18 6B, 05, 05]
-11668; [0B 11 64, 05, 05]
+1166A; [0B 18 72, 05, 05]
-11669; [0B 11 6B, 05, 05]
+1166B; [0B 18 79, 05, 05]
-1166A; [0B 11 72, 05, 05]
+1166C; [0B 18 80, 05, 05]
-1166B; [0B 11 79, 05, 05]
+0970; [0B 1A, 05, 05]
-1166C; [0B 11 80, 05, 05]
+A8F8; [0B 1C, 05, 05]
-0970; [0B 13, 05, 05]
+A8F9; [0B 1E, 05, 05]
-A8F8; [0B 15, 05, 05]
+A8FA; [0B 20, 05, 05]
-A8F9; [0B 17, 05, 05]
+A8FC; [0B 22, 05, 05]
-A8FA; [0B 19, 05, 05]
+09FD; [0B 24, 05, 05]
-A8FC; [0B 1B, 05, 05]
+0A76; [0B 26, 05, 05]
-09FD; [0B 1D, 05, 05]
+0AF0; [0B 28, 05, 05]
-0AF0; [0B 1F, 05, 05]
+0C84; [0B 2A, 05, 05]
-0DF4; [0B 21, 05, 05]
+0DF4; [0B 2C, 05, 05]
-0E4F; [0B 23, 05, 05]
+0E4F; [0B 2E, 05, 05]
-0E5A; [0B 25, 05, 05]
+0E5A; [0B 30, 05, 05]
-0E5B; [0B 27, 05, 05]
+0E5B; [0B 32, 05, 05]
-AADE; [0B 29 02, 05, 05]
+AADE; [0B 34 02, 05, 05]
-AADF; [0B 29 09, 05, 05]
+AADF; [0B 34 09, 05, 05]
-0F04; [0B 2B, 05, 05]
+0F04; [0B 36, 05, 05]
-0F05; [0B 2D, 05, 05]
+0F05; [0B 38, 05, 05]
-0F06; [0B 2F, 05, 05]
+0F06; [0B 3A, 05, 05]
-0F07; [0B 31, 05, 05]
+0F07; [0B 3C, 05, 05]
-0F08; [0B 33, 05, 05]
+0F08; [0B 3E, 05, 05]
-0F09; [0B 35, 05, 05]
+0F09; [0B 40, 05, 05]
-0F0A; [0B 37, 05, 05]
+0F0A; [0B 42, 05, 05]
-0FD0; [0B 39, 05, 05]
+0FD0; [0B 44, 05, 05]
-0FD1; [0B 3B, 05, 05]
+0FD1; [0B 46, 05, 05]
-0F0B; [0B 3D, 05, 05]
-0F0C; [0B 3D, 05, 20]
+0F0B; [0B 48, 05, 05]
+0F0C; [0B 48, 05, 20]
-0F0D; [0B 3F, 05, 05]
+0F0D; [0B 4A, 05, 05]
-0F0E; [0B 41, 05, 05]
+0F0E; [0B 4C, 05, 05]
-0F0F; [0B 43, 05, 05]
+0F0F; [0B 4E, 05, 05]
-0F10; [0B 45, 05, 05]
+0F10; [0B 50, 05, 05]
-0F11; [0B 47, 05, 05]
+0F11; [0B 52, 05, 05]
-0F12; [0B 49, 05, 05]
+0F12; [0B 54, 05, 05]
-0F85; [0B 4B, 05, 05]
+0F85; [0B 56, 05, 05]
-0FD2; [0B 4D, 05, 05]
+0FD2; [0B 58, 05, 05]
-0FD3; [0B 4F, 05, 05]
+0FD3; [0B 5A, 05, 05]
-0FD4; [0B 51, 05, 05]
+0FD4; [0B 5C, 05, 05]
-0FD9; [0B 53, 05, 05]
+0FD9; [0B 5E, 05, 05]
-0FDA; [0B 55, 05, 05]
+0FDA; [0B 60, 05, 05]
-11A3F; [0B 57 02, 05, 05]
+11A3F; [0B 62 02, 05, 05]
-11A40; [0B 57 09, 05, 05]
+11A40; [0B 62 09, 05, 05]
-11A41; [0B 57 10, 05, 05]
+11A41; [0B 62 10, 05, 05]
-11A42; [0B 57 17, 05, 05]
+11A42; [0B 62 17, 05, 05]
-11A43; [0B 57 1E, 05, 05]
+11A43; [0B 62 1E, 05, 05]
-11A44; [0B 57 25, 05, 05]
+11A44; [0B 62 25, 05, 05]
-11A45; [0B 57 2C, 05, 05]
+11A45; [0B 62 2C, 05, 05]
-11A46; [0B 57 33, 05, 05]
+11A46; [0B 62 33, 05, 05]
-11A9A; [0B 57 3A, 05, 05]
+11A9A; [0B 62 3A, 05, 05]
-11A9B; [0B 57 41, 05, 05]
+11A9B; [0B 62 41, 05, 05]
-11A9C; [0B 57 48, 05, 05]
+11A9C; [0B 62 48, 05, 05]
-11A9E; [0B 57 4F, 05, 05]
+11A9E; [0B 62 4F, 05, 05]
-11A9F; [0B 57 56, 05, 05]
+11A9F; [0B 62 56, 05, 05]
-11AA0; [0B 57 5D, 05, 05]
+11AA0; [0B 62 5D, 05, 05]
-11AA1; [0B 57 64, 05, 05]
+11AA1; [0B 62 64, 05, 05]
-11AA2; [0B 57 6B, 05, 05]
+11AA2; [0B 62 6B, 05, 05]
-11C70; [0B 57 72, 05, 05]
+11C70; [0B 62 72, 05, 05]
-11C71; [0B 57 79, 05, 05]
+11C71; [0B 62 79, 05, 05]
-1C3D; [0B 57 80, 05, 05]
+1C3D; [0B 62 80, 05, 05]
-1C3E; [0B 57 87, 05, 05]
+1C3E; [0B 62 87, 05, 05]
-1C3F; [0B 57 8E, 05, 05]
+1C3F; [0B 62 8E, 05, 05]
-104C; [0B 59, 05, 05]
+104C; [0B 64, 05, 05]
-104D; [0B 5B, 05, 05]
+104D; [0B 66, 05, 05]
-104E; [0B 5D, 05, 05]
+104E; [0B 68, 05, 05]
-104F; [0B 5F, 05, 05]
+104F; [0B 6A, 05, 05]
-17D8; [0B 61, 05, 05]
+17D8; [0B 6C, 05, 05]
-17D9; [0B 63, 05, 05]
+17D9; [0B 6E, 05, 05]
-17DA; [0B 65, 05, 05]
+17DA; [0B 70, 05, 05]
-1AA0; [0B 67 02, 05, 05]
+1AA0; [0B 72 02, 05, 05]
-1AA1; [0B 67 09, 05, 05]
+1AA1; [0B 72 09, 05, 05]
-1AA2; [0B 67 10, 05, 05]
+1AA2; [0B 72 10, 05, 05]
-1AA3; [0B 67 17, 05, 05]
+1AA3; [0B 72 17, 05, 05]
-1AA4; [0B 67 1E, 05, 05]
+1AA4; [0B 72 1E, 05, 05]
-1AA5; [0B 67 25, 05, 05]
+1AA5; [0B 72 25, 05, 05]
-1AA6; [0B 67 2C, 05, 05]
+1AA6; [0B 72 2C, 05, 05]
-1AAC; [0B 67 33, 05, 05]
+1AAC; [0B 72 33, 05, 05]
-1AAD; [0B 67 3A, 05, 05]
+1AAD; [0B 72 3A, 05, 05]
-166D; [0B 67 41, 05, 05]
+166D; [0B 72 41, 05, 05]
-1CC0; [0B 67 48, 05, 05]
+1CC0; [0B 72 48, 05, 05]
-1CC1; [0B 67 4F, 05, 05]
+1CC1; [0B 72 4F, 05, 05]
-1CC2; [0B 67 56, 05, 05]
+1CC2; [0B 72 56, 05, 05]
-1CC3; [0B 67 5D, 05, 05]
+1CC3; [0B 72 5D, 05, 05]
-1CC4; [0B 67 64, 05, 05]
+1CC4; [0B 72 64, 05, 05]
-1CC5; [0B 67 6B, 05, 05]
+1CC5; [0B 72 6B, 05, 05]
-1CC6; [0B 67 72, 05, 05]
+1CC6; [0B 72 72, 05, 05]
-1CC7; [0B 67 79, 05, 05]
+1CC7; [0B 72 79, 05, 05]
-2D70; [0B 67 80, 05, 05]
+2D70; [0B 72 80, 05, 05]
-A874; [0B 67 87, 05, 05]
+A874; [0B 72 87, 05, 05]
-A875; [0B 67 8E, 05, 05]
+A875; [0B 72 8E, 05, 05]
-1BFC; [0B 67 95, 05, 05]
+1BFC; [0B 72 95, 05, 05]
-1BFD; [0B 67 9C, 05, 05]
+1BFD; [0B 72 9C, 05, 05]
-1BFE; [0B 67 A3, 05, 05]
+1BFE; [0B 72 A3, 05, 05]
-1BFF; [0B 67 AA, 05, 05]
+1BFF; [0B 72 AA, 05, 05]
-A92E; [0B 69, 05, 05]
+A92E; [0B 74, 05, 05]
-A9DE; [0B 6B 02, 05, 05]
+A9DE; [0B 76 02, 05, 05]
-A9DF; [0B 6B 09, 05, 05]
+A9DF; [0B 76 09, 05, 05]
-AA5C; [0B 6B 10, 05, 05]
+AA5C; [0B 76 10, 05, 05]
-1056F; [0B 6B 17, 05, 05]
+1056F; [0B 76 17, 05, 05]
-11049; [0B 6B 1E, 05, 05]
+11049; [0B 76 1E, 05, 05]
-1104A; [0B 6B 25, 05, 05]
+1104A; [0B 76 25, 05, 05]
-1104B; [0B 6B 2C, 05, 05]
+1104B; [0B 76 2C, 05, 05]
-1104C; [0B 6B 33, 05, 05]
+1104C; [0B 76 33, 05, 05]
-1104D; [0B 6B 3A, 05, 05]
+1104D; [0B 76 3A, 05, 05]
-10A50; [0B 6B 41, 05, 05]
+10A50; [0B 76 41, 05, 05]
-10A51; [0B 6B 48, 05, 05]
+10A51; [0B 76 48, 05, 05]
-10A52; [0B 6B 4F, 05, 05]
+10A52; [0B 76 4F, 05, 05]
-10A53; [0B 6B 56, 05, 05]
+10A53; [0B 76 56, 05, 05]
-10A54; [0B 6B 5D, 05, 05]
+10A54; [0B 76 5D, 05, 05]
-10A55; [0B 6B 64, 05, 05]
+10A55; [0B 76 64, 05, 05]
-10A58; [0B 6B 6B, 05, 05]
+10A58; [0B 76 6B, 05, 05]
-11C43; [0B 6B 72, 05, 05]
+11C43; [0B 76 72, 05, 05]
-11C44; [0B 6B 79, 05, 05]
+11C44; [0B 76 79, 05, 05]
-11C45; [0B 6B 80, 05, 05]
+11C45; [0B 76 80, 05, 05]
-10B39; [0B 6B 87, 05, 05]
+10B39; [0B 76 87, 05, 05]
-10AF0; [0B 6B 8E, 05, 05]
+10AF0; [0B 76 8E, 05, 05]
-10AF1; [0B 6B 95, 05, 05]
+10AF1; [0B 76 95, 05, 05]
-10AF2; [0B 6B 9C, 05, 05]
+10AF2; [0B 76 9C, 05, 05]
-10AF3; [0B 6B A3, 05, 05]
+10AF3; [0B 76 A3, 05, 05]
-10AF4; [0B 6B AA, 05, 05]
+10AF4; [0B 76 AA, 05, 05]
-10AF5; [0B 6B B1, 05, 05]
+10AF5; [0B 76 B1, 05, 05]
-10AF6; [0B 6B B8, 05, 05]
+10AF6; [0B 76 B8, 05, 05]
-10B99; [0B 6B BF, 05, 05]
+10B99; [0B 76 BF, 05, 05]
-10B9A; [0B 6B C6, 05, 05]
+10B9A; [0B 76 C6, 05, 05]
-10B9B; [0B 6B CD, 05, 05]
+10B9B; [0B 76 CD, 05, 05]
-10B9C; [0B 6B D4, 05, 05]
+10B9C; [0B 76 D4, 05, 05]
-110BB; [0B 6B DB, 05, 05]
+110BB; [0B 76 DB, 05, 05]
-110BC; [0B 6B E2, 05, 05]
+110BC; [0B 76 E2, 05, 05]
-11174; [0B 6B E9, 05, 05]
+11174; [0B 76 E9, 05, 05]
-11175; [0B 6B F0, 05, 05]
+11175; [0B 76 F0, 05, 05]
-111CD; [0B 6B F7, 05, 05]
+111CD; [0B 76 F7, 05, 05]
-111C7; [0B 6B FE, 05, 05]
+111C7; [0B 76 FE, 05, 05]
-111C9; [0B 6C 07, 05, 05]
+111DB; [0B 77 07, 05, 05]
-111DB; [0B 6C 0E, 05, 05]
+111DD; [0B 77 0E, 05, 05]
-111DD; [0B 6C 15, 05, 05]
+1123A; [0B 77 15, 05, 05]
-1123A; [0B 6C 1C, 05, 05]
+1123B; [0B 77 1C, 05, 05]
-1123B; [0B 6C 23, 05, 05]
+1123C; [0B 77 23, 05, 05]
-1123C; [0B 6C 2A, 05, 05]
+1123D; [0B 77 2A, 05, 05]
-1123D; [0B 6C 31, 05, 05]
+1144D; [0B 77 31, 05, 05]
-1144D; [0B 6C 38, 05, 05]
+1144E; [0B 77 38, 05, 05]
-1144E; [0B 6C 3F, 05, 05]
+1144F; [0B 77 3F, 05, 05]
-1144F; [0B 6C 46, 05, 05]
+1145B; [0B 77 46, 05, 05]
-1145B; [0B 6C 4D, 05, 05]
+1145D; [0B 77 4D, 05, 05]
-1145D; [0B 6C 54, 05, 05]
+114C6; [0B 77 54, 05, 05]
-114C6; [0B 6C 5B, 05, 05]
+115C1; [0B 77 5B, 05, 05]
-115C1; [0B 6C 62, 05, 05]
+115C4; [0B 77 62, 05, 05]
-115C4; [0B 6C 69, 05, 05]
+115C5; [0B 77 69, 05, 05]
-115C5; [0B 6C 70, 05, 05]
+115C6; [0B 77 70, 05, 05]
-115C6; [0B 6C 77, 05, 05]
+115C7; [0B 77 77, 05, 05]
-115C7; [0B 6C 7E, 05, 05]
+115C8; [0B 77 7E, 05, 05]
-115C8; [0B 6C 85, 05, 05]
+115C9; [0B 77 85, 05, 05]
-115C9; [0B 6C 8C, 05, 05]
+115CA; [0B 77 8C, 05, 05]
-115CA; [0B 6C 93, 05, 05]
+115CB; [0B 77 93, 05, 05]
-115CB; [0B 6C 9A, 05, 05]
+115CC; [0B 77 9A, 05, 05]
-115CC; [0B 6C A1, 05, 05]
+115CD; [0B 77 A1, 05, 05]
-115CD; [0B 6C A8, 05, 05]
+115CE; [0B 77 A8, 05, 05]
-115CE; [0B 6C AF, 05, 05]
+115CF; [0B 77 AF, 05, 05]
-115CF; [0B 6C B6, 05, 05]
+115D0; [0B 77 B6, 05, 05]
-115D0; [0B 6C BD, 05, 05]
+115D1; [0B 77 BD, 05, 05]
-115D1; [0B 6C C4, 05, 05]
+115D2; [0B 77 C4, 05, 05]
-115D2; [0B 6C CB, 05, 05]
+115D3; [0B 77 CB, 05, 05]
-115D3; [0B 6C D2, 05, 05]
+115D4; [0B 77 D2, 05, 05]
-115D4; [0B 6C D9, 05, 05]
+115D5; [0B 77 D9, 05, 05]
-115D5; [0B 6C E0, 05, 05]
+115D6; [0B 77 E0, 05, 05]
-115D6; [0B 6C E7, 05, 05]
+115D7; [0B 77 E7, 05, 05]
-115D7; [0B 6C EE, 05, 05]
+11643; [0B 77 EE, 05, 05]
-11643; [0B 6C F5, 05, 05]
+1183B; [0B 77 F5, 05, 05]
-16B37; [0B 6C FC, 05, 05]
+16B37; [0B 77 FC, 05, 05]
-16B38; [0B 6D 05, 05, 05]
+16B38; [0B 78 05, 05, 05]
-16B39; [0B 6D 0C, 05, 05]
+16B39; [0B 78 0C, 05, 05]
-16B3A; [0B 6D 13, 05, 05]
+16B3A; [0B 78 13, 05, 05]
-16B3B; [0B 6D 1A, 05, 05]
+16B3B; [0B 78 1A, 05, 05]
-16B44; [0B 6D 21, 05, 05]
+16B44; [0B 78 21, 05, 05]
-1DA87; [0B 6D 28, 05, 05]
+16E99; [0B 78 28, 05, 05]
-1DA88; [0B 6D 2F, 05, 05]
+16E9A; [0B 78 2F, 05, 05]
-1DA89; [0B 6D 36, 05, 05]
+1DA87; [0B 78 36, 05, 05]
-1DA8A; [0B 6D 3D, 05, 05]
+1DA88; [0B 78 3D, 05, 05]
-1DA8B; [0B 6D 44, 05, 05]
+1DA89; [0B 78 44, 05, 05]
-10A7F; [0B 6D 4B, 05, 05]
+1DA8A; [0B 78 4B, 05, 05]
+
+1DA8B; [0B 78 52, 05, 05]
+
+10A7F; [0B 78 59, 05, 05]
FDD1 263A; [0C 02 02, 05, 05] # SYMBOL first primary starts new lead byte
@@ -3767,8 +3833,8 @@ A78A; [0C 51 09, 05, 05]
AB5B; [0C 51 10, 05, 05]
00B0; [0C 53, 05, 05]
-2103; [0C 53, 05, 20][2D, 05, A2]
-2109; [0C 53, 05, 20][33, 05, A2]
+2103; [0C 53, 05, 20][2E, 05, A2]
+2109; [0C 53, 05, 20][34, 05, A2]
0482; [0C 55 02, 05, 05]
@@ -4054,11209 +4120,11473 @@ AA79; [0C 57 6E, 05, 05]
00A9; [0C 5A, 05, 05]
-00AE; [0C 5C, 05, 05]
+1F12F; [0C 5C, 05, 05]
+
+00AE; [0C 5E, 05, 05]
+
+2104; [0C 60 02, 05, 05]
+
+2108; [0C 60 09, 05, 05]
+
+2114; [0C 60 10, 05, 05]
+
+2117; [0C 60 17, 05, 05]
+
+2118; [0C 60 1E, 05, 05]
+
+211E; [0C 60 25, 05, 05]
+
+211F; [0C 60 2C, 05, 05]
+
+2123; [0C 60 33, 05, 05]
+
+2125; [0C 60 3A, 05, 05]
+
+2127; [0C 60 41, 05, 05]
+
+2129; [0C 60 48, 05, 05]
+
+212E; [0C 60 4F, 05, 05]
+
+213A; [0C 60 56, 05, 05]
+
+2141; [0C 60 5D, 05, 05]
+
+2142; [0C 60 64, 05, 05]
+
+2143; [0C 60 6B, 05, 05]
+
+2144; [0C 60 72, 05, 05]
+
+214A; [0C 60 79, 05, 05]
+
+214C; [0C 60 80, 05, 05]
+
+214F; [0C 60 87, 05, 05]
+
+218A; [0C 60 8E, 05, 05]
+
+218B; [0C 60 95, 05, 05]
+
+2190; [0C 62, 05, 05]
+FFE9; [0C 62, 05, A0]
+219A; [0C 62, 05, 05][, 9E, 05]
+
+2192; [0C 64, 05, 05]
+FFEB; [0C 64, 05, A0]
+219B; [0C 64, 05, 05][, 9E, 05]
+
+2191; [0C 66, 05, 05]
+FFEA; [0C 66, 05, A0]
+
+2193; [0C 68, 05, 05]
+FFEC; [0C 68, 05, A0]
+
+2194; [0C 6A 02, 05, 05]
+21AE; [0C 6A 02, 05, 05][, 9E, 05]
+
+2195; [0C 6A 09, 05, 05]
+
+2196; [0C 6A 10, 05, 05]
+
+2197; [0C 6A 17, 05, 05]
+
+2198; [0C 6A 1E, 05, 05]
+
+2199; [0C 6A 25, 05, 05]
+
+219C; [0C 6A 2C, 05, 05]
+
+219D; [0C 6A 33, 05, 05]
+
+219E; [0C 6A 3A, 05, 05]
+
+219F; [0C 6A 41, 05, 05]
+
+21A0; [0C 6A 48, 05, 05]
+
+21A1; [0C 6A 4F, 05, 05]
+
+21A2; [0C 6A 56, 05, 05]
+
+21A3; [0C 6A 5D, 05, 05]
+
+21A4; [0C 6A 64, 05, 05]
+
+21A5; [0C 6A 6B, 05, 05]
+
+21A6; [0C 6A 72, 05, 05]
+
+21A7; [0C 6A 79, 05, 05]
+
+21A8; [0C 6A 80, 05, 05]
+
+21A9; [0C 6A 87, 05, 05]
+
+21AA; [0C 6A 8E, 05, 05]
+
+21AB; [0C 6A 95, 05, 05]
+
+21AC; [0C 6A 9C, 05, 05]
+
+21AD; [0C 6A A3, 05, 05]
+
+21AF; [0C 6A AA, 05, 05]
+
+21B0; [0C 6A B1, 05, 05]
+
+21B1; [0C 6A B8, 05, 05]
+
+21B2; [0C 6A BF, 05, 05]
+
+21B3; [0C 6A C6, 05, 05]
+
+21B4; [0C 6A CD, 05, 05]
+
+21B5; [0C 6A D4, 05, 05]
+
+21B6; [0C 6A DB, 05, 05]
+
+21B7; [0C 6A E2, 05, 05]
+
+21B8; [0C 6A E9, 05, 05]
+
+21B9; [0C 6A F0, 05, 05]
+
+21BA; [0C 6A F7, 05, 05]
+
+21BB; [0C 6A FE, 05, 05]
+
+21BC; [0C 6B 07, 05, 05]
+
+21BD; [0C 6B 0E, 05, 05]
+
+21BE; [0C 6B 15, 05, 05]
+
+21BF; [0C 6B 1C, 05, 05]
+
+21C0; [0C 6B 23, 05, 05]
+
+21C1; [0C 6B 2A, 05, 05]
+
+21C2; [0C 6B 31, 05, 05]
+
+21C3; [0C 6B 38, 05, 05]
+
+21C4; [0C 6B 3F, 05, 05]
+
+21C5; [0C 6B 46, 05, 05]
+
+21C6; [0C 6B 4D, 05, 05]
+
+21C7; [0C 6B 54, 05, 05]
+
+21C8; [0C 6B 5B, 05, 05]
+
+21C9; [0C 6B 62, 05, 05]
+
+21CA; [0C 6B 69, 05, 05]
+
+21CB; [0C 6B 70, 05, 05]
+
+21CC; [0C 6B 77, 05, 05]
+
+21D0; [0C 6B 7E, 05, 05]
+21CD; [0C 6B 7E, 05, 05][, 9E, 05]
+
+21D1; [0C 6B 85, 05, 05]
+
+21D2; [0C 6B 8C, 05, 05]
+21CF; [0C 6B 8C, 05, 05][, 9E, 05]
+
+21D3; [0C 6B 93, 05, 05]
+
+21D4; [0C 6B 9A, 05, 05]
+21CE; [0C 6B 9A, 05, 05][, 9E, 05]
+
+21D5; [0C 6B A1, 05, 05]
+
+21D6; [0C 6B A8, 05, 05]
+
+21D7; [0C 6B AF, 05, 05]
+
+21D8; [0C 6B B6, 05, 05]
+
+21D9; [0C 6B BD, 05, 05]
+
+21DA; [0C 6B C4, 05, 05]
+
+21DB; [0C 6B CB, 05, 05]
+
+21DC; [0C 6B D2, 05, 05]
+
+21DD; [0C 6B D9, 05, 05]
+
+21DE; [0C 6B E0, 05, 05]
+
+21DF; [0C 6B E7, 05, 05]
+
+21E0; [0C 6B EE, 05, 05]
+
+21E1; [0C 6B F5, 05, 05]
+
+21E2; [0C 6B FC, 05, 05]
+
+21E3; [0C 6C 05, 05, 05]
+
+21E4; [0C 6C 0C, 05, 05]
+
+21E5; [0C 6C 13, 05, 05]
-2104; [0C 5E 02, 05, 05]
+21E6; [0C 6C 1A, 05, 05]
-2108; [0C 5E 09, 05, 05]
+21E7; [0C 6C 21, 05, 05]
-2114; [0C 5E 10, 05, 05]
+21E8; [0C 6C 28, 05, 05]
-2117; [0C 5E 17, 05, 05]
+21E9; [0C 6C 2F, 05, 05]
-2118; [0C 5E 1E, 05, 05]
+21EA; [0C 6C 36, 05, 05]
-211E; [0C 5E 25, 05, 05]
+21EB; [0C 6C 3D, 05, 05]
-211F; [0C 5E 2C, 05, 05]
+21EC; [0C 6C 44, 05, 05]
-2123; [0C 5E 33, 05, 05]
+21ED; [0C 6C 4B, 05, 05]
-2125; [0C 5E 3A, 05, 05]
+21EE; [0C 6C 52, 05, 05]
-2127; [0C 5E 41, 05, 05]
+21EF; [0C 6C 59, 05, 05]
-2129; [0C 5E 48, 05, 05]
+21F0; [0C 6C 60, 05, 05]
-212E; [0C 5E 4F, 05, 05]
+21F1; [0C 6C 67, 05, 05]
-213A; [0C 5E 56, 05, 05]
+21F2; [0C 6C 6E, 05, 05]
-2141; [0C 5E 5D, 05, 05]
+21F3; [0C 6C 75, 05, 05]
-2142; [0C 5E 64, 05, 05]
+21F4; [0C 6C 7C, 05, 05]
-2143; [0C 5E 6B, 05, 05]
+21F5; [0C 6C 83, 05, 05]
-2144; [0C 5E 72, 05, 05]
+21F6; [0C 6C 8A, 05, 05]
-214A; [0C 5E 79, 05, 05]
+21F7; [0C 6C 91, 05, 05]
-214C; [0C 5E 80, 05, 05]
+21F8; [0C 6C 98, 05, 05]
-214F; [0C 5E 87, 05, 05]
+21F9; [0C 6C 9F, 05, 05]
-218A; [0C 5E 8E, 05, 05]
+21FA; [0C 6C A6, 05, 05]
-218B; [0C 5E 95, 05, 05]
+21FB; [0C 6C AD, 05, 05]
-2190; [0C 60, 05, 05]
-FFE9; [0C 60, 05, A0]
-219A; [0C 60, 05, 05][, 9E, 05]
+21FC; [0C 6C B4, 05, 05]
-2192; [0C 62, 05, 05]
-FFEB; [0C 62, 05, A0]
-219B; [0C 62, 05, 05][, 9E, 05]
+21FD; [0C 6C BB, 05, 05]
-2191; [0C 64, 05, 05]
-FFEA; [0C 64, 05, A0]
+21FE; [0C 6C C2, 05, 05]
-2193; [0C 66, 05, 05]
-FFEC; [0C 66, 05, A0]
+21FF; [0C 6C C9, 05, 05]
-2194; [0C 68 02, 05, 05]
-21AE; [0C 68 02, 05, 05][, 9E, 05]
+2200; [0C 6C D0, 05, 05]
-2195; [0C 68 09, 05, 05]
+2201; [0C 6C D7, 05, 05]
-2196; [0C 68 10, 05, 05]
+2202; [0C 6E, 05, 05]
+1D6DB; [0C 6E, 05, 20]
+1D715; [0C 6E, 05, 20]
+1D74F; [0C 6E, 05, 20]
+1D789; [0C 6E, 05, 20]
+1D7C3; [0C 6E, 05, 20]
-2197; [0C 68 17, 05, 05]
+2203; [0C 70 02, 05, 05]
+2204; [0C 70 02, 05, 05][, 9E, 05]
-2198; [0C 68 1E, 05, 05]
+2205; [0C 70 09, 05, 05]
-2199; [0C 68 25, 05, 05]
+2206; [0C 70 10, 05, 05]
-219C; [0C 68 2C, 05, 05]
+2207; [0C 72, 05, 05]
+1D6C1; [0C 72, 05, 20]
+1D6FB; [0C 72, 05, 20]
+1D735; [0C 72, 05, 20]
+1D76F; [0C 72, 05, 20]
+1D7A9; [0C 72, 05, 20]
-219D; [0C 68 33, 05, 05]
+2208; [0C 74 02, 05, 05]
+2209; [0C 74 02, 05, 05][, 9E, 05]
-219E; [0C 68 3A, 05, 05]
+220A; [0C 74 09, 05, 05]
-219F; [0C 68 41, 05, 05]
+220B; [0C 74 10, 05, 05]
+220C; [0C 74 10, 05, 05][, 9E, 05]
-21A0; [0C 68 48, 05, 05]
+220D; [0C 74 17, 05, 05]
-21A1; [0C 68 4F, 05, 05]
+03F6; [0C 74 1E, 05, 05]
-21A2; [0C 68 56, 05, 05]
+220E; [0C 74 25, 05, 05]
-21A3; [0C 68 5D, 05, 05]
+220F; [0C 74 2C, 05, 05]
-21A4; [0C 68 64, 05, 05]
+2210; [0C 74 33, 05, 05]
-21A5; [0C 68 6B, 05, 05]
+2211; [0C 76, 05, 05]
+2140; [0C 76, 05, 20]
-21A6; [0C 68 72, 05, 05]
+002B; [0C 78, 05, 05]
+FF0B; [0C 78, 05, 10]
+FB29; [0C 78, 05, 18]
+FE62; [0C 78, 05, 20]
+207A; [0C 78, 05, 28]
+208A; [0C 78, 05, 30]
-21A7; [0C 68 79, 05, 05]
+00B1; [0C 7A, 05, 05]
-21A8; [0C 68 80, 05, 05]
+00F7; [0C 7C, 05, 05]
-21A9; [0C 68 87, 05, 05]
+00D7; [0C 7E, 05, 05]
-21AA; [0C 68 8E, 05, 05]
+003C; [0C 80, 05, 05]
+FF1C; [0C 80, 05, 20]
+FE64; [0C 80, 05, 2E]
+226E; [0C 80, 05, 05][, 9E, 05]
-21AB; [0C 68 95, 05, 05]
+003D; [0C 82, 05, 05]
+FF1D; [0C 82, 05, 10]
+FE66; [0C 82, 05, 20]
+207C; [0C 82, 05, 28]
+208C; [0C 82, 05, 30]
+2260; [0C 82, 05, 05][, 9E, 05]
+2A75; [0C 82, 05, 18][0C 82, 05, 18]
+2A76; [0C 82, 05, 18][0C 82, 05, 18][0C 82, 05, 18]
-21AC; [0C 68 9C, 05, 05]
+003E; [0C 84, 05, 05]
+FF1E; [0C 84, 05, 20]
+FE65; [0C 84, 05, 2E]
+226F; [0C 84, 05, 05][, 9E, 05]
-21AD; [0C 68 A3, 05, 05]
+00AC; [0C 86, 05, 05]
+FFE2; [0C 86, 05, 20]
-21AF; [0C 68 AA, 05, 05]
+007C; [0C 88, 05, 05]
+FF5C; [0C 88, 05, 20]
-21B0; [0C 68 B1, 05, 05]
+00A6; [0C 8A, 05, 05]
+FFE4; [0C 8A, 05, 20]
-21B1; [0C 68 B8, 05, 05]
+007E; [0C 8C, 05, 05]
+FF5E; [0C 8C, 05, 20]
-21B2; [0C 68 BF, 05, 05]
+2212; [0C 8E, 05, 05]
+207B; [0C 8E, 05, 20]
+208B; [0C 8E, 05, 2E]
-21B3; [0C 68 C6, 05, 05]
+2052; [0C 90 02, 05, 05]
-21B4; [0C 68 CD, 05, 05]
+2213; [0C 90 09, 05, 05]
-21B5; [0C 68 D4, 05, 05]
+2214; [0C 90 10, 05, 05]
-21B6; [0C 68 DB, 05, 05]
+2215; [0C 92, 05, 05]
-21B7; [0C 68 E2, 05, 05]
+2044; [0C 94, 05, 05]
-21B8; [0C 68 E9, 05, 05]
+2216; [0C 96 02, 05, 05]
-21B9; [0C 68 F0, 05, 05]
+2217; [0C 96 09, 05, 05]
-21BA; [0C 68 F7, 05, 05]
+2218; [0C 96 10, 05, 05]
-21BB; [0C 68 FE, 05, 05]
+2219; [0C 96 17, 05, 05]
-21BC; [0C 69 07, 05, 05]
+221A; [0C 96 1E, 05, 05]
-21BD; [0C 69 0E, 05, 05]
+221B; [0C 96 25, 05, 05]
-21BE; [0C 69 15, 05, 05]
+0606; [0C 96 2C, 05, 05]
-21BF; [0C 69 1C, 05, 05]
+221C; [0C 96 33, 05, 05]
-21C0; [0C 69 23, 05, 05]
+0607; [0C 96 3A, 05, 05]
-21C1; [0C 69 2A, 05, 05]
+221D; [0C 96 41, 05, 05]
-21C2; [0C 69 31, 05, 05]
+221E; [0C 96 48, 05, 05]
-21C3; [0C 69 38, 05, 05]
+221F; [0C 96 4F, 05, 05]
-21C4; [0C 69 3F, 05, 05]
+2220; [0C 96 56, 05, 05]
-21C5; [0C 69 46, 05, 05]
+2221; [0C 96 5D, 05, 05]
-21C6; [0C 69 4D, 05, 05]
+2222; [0C 96 64, 05, 05]
-21C7; [0C 69 54, 05, 05]
+2223; [0C 96 6B, 05, 05]
+2224; [0C 96 6B, 05, 05][, 9E, 05]
-21C8; [0C 69 5B, 05, 05]
+2225; [0C 96 72, 05, 05]
+2226; [0C 96 72, 05, 05][, 9E, 05]
-21C9; [0C 69 62, 05, 05]
+2227; [0C 96 79, 05, 05]
-21CA; [0C 69 69, 05, 05]
+2228; [0C 96 80, 05, 05]
-21CB; [0C 69 70, 05, 05]
+2229; [0C 96 87, 05, 05]
-21CC; [0C 69 77, 05, 05]
+222A; [0C 96 8E, 05, 05]
-21D0; [0C 69 7E, 05, 05]
-21CD; [0C 69 7E, 05, 05][, 9E, 05]
+222B; [0C 98, 05, 05]
+222C; [0C 98, 05, 20][0C 98, 05, 20]
+222D; [0C 98, 05, 20][0C 98, 05, 20][0C 98, 05, 20]
+2A0C; [0C 98, 05, 20][0C 98, 05, 20][0C 98, 05, 20][0C 98, 05, 20]
-21D1; [0C 69 85, 05, 05]
+222E; [0C 9A, 05, 05]
+222F; [0C 9A, 05, 20][0C 9A, 05, 20]
+2230; [0C 9A, 05, 20][0C 9A, 05, 20][0C 9A, 05, 20]
-21D2; [0C 69 8C, 05, 05]
-21CF; [0C 69 8C, 05, 05][, 9E, 05]
+2231; [0C 9C 02, 05, 05]
-21D3; [0C 69 93, 05, 05]
+2232; [0C 9C 09, 05, 05]
-21D4; [0C 69 9A, 05, 05]
-21CE; [0C 69 9A, 05, 05][, 9E, 05]
+2233; [0C 9C 10, 05, 05]
-21D5; [0C 69 A1, 05, 05]
+2234; [0C 9C 17, 05, 05]
-21D6; [0C 69 A8, 05, 05]
+2235; [0C 9C 1E, 05, 05]
-21D7; [0C 69 AF, 05, 05]
+2236; [0C 9C 25, 05, 05]
-21D8; [0C 69 B6, 05, 05]
+2237; [0C 9C 2C, 05, 05]
-21D9; [0C 69 BD, 05, 05]
+2238; [0C 9C 33, 05, 05]
-21DA; [0C 69 C4, 05, 05]
+2239; [0C 9C 3A, 05, 05]
-21DB; [0C 69 CB, 05, 05]
+223A; [0C 9C 41, 05, 05]
-21DC; [0C 69 D2, 05, 05]
+223B; [0C 9C 48, 05, 05]
-21DD; [0C 69 D9, 05, 05]
+223C; [0C 9C 4F, 05, 05]
+2241; [0C 9C 4F, 05, 05][, 9E, 05]
-21DE; [0C 69 E0, 05, 05]
+223D; [0C 9C 56, 05, 05]
-21DF; [0C 69 E7, 05, 05]
+223E; [0C 9C 5D, 05, 05]
-21E0; [0C 69 EE, 05, 05]
+223F; [0C 9C 64, 05, 05]
-21E1; [0C 69 F5, 05, 05]
+2240; [0C 9C 6B, 05, 05]
-21E2; [0C 69 FC, 05, 05]
+2242; [0C 9C 72, 05, 05]
-21E3; [0C 6A 05, 05, 05]
+2243; [0C 9C 79, 05, 05]
+2244; [0C 9C 79, 05, 05][, 9E, 05]
-21E4; [0C 6A 0C, 05, 05]
+2245; [0C 9C 80, 05, 05]
+2247; [0C 9C 80, 05, 05][, 9E, 05]
-21E5; [0C 6A 13, 05, 05]
+2246; [0C 9C 87, 05, 05]
-21E6; [0C 6A 1A, 05, 05]
+2248; [0C 9C 8E, 05, 05]
+2249; [0C 9C 8E, 05, 05][, 9E, 05]
-21E7; [0C 6A 21, 05, 05]
+224A; [0C 9C 95, 05, 05]
-21E8; [0C 6A 28, 05, 05]
+224B; [0C 9C 9C, 05, 05]
-21E9; [0C 6A 2F, 05, 05]
+224C; [0C 9C A3, 05, 05]
-21EA; [0C 6A 36, 05, 05]
+224D; [0C 9C AA, 05, 05]
+226D; [0C 9C AA, 05, 05][, 9E, 05]
-21EB; [0C 6A 3D, 05, 05]
+224E; [0C 9C B1, 05, 05]
-21EC; [0C 6A 44, 05, 05]
+224F; [0C 9C B8, 05, 05]
-21ED; [0C 6A 4B, 05, 05]
+2250; [0C 9C BF, 05, 05]
-21EE; [0C 6A 52, 05, 05]
+2251; [0C 9C C6, 05, 05]
-21EF; [0C 6A 59, 05, 05]
+2252; [0C 9C CD, 05, 05]
-21F0; [0C 6A 60, 05, 05]
+2253; [0C 9C D4, 05, 05]
-21F1; [0C 6A 67, 05, 05]
+2254; [0C 9C DB, 05, 05]
-21F2; [0C 6A 6E, 05, 05]
+2255; [0C 9C E2, 05, 05]
-21F3; [0C 6A 75, 05, 05]
+2256; [0C 9C E9, 05, 05]
-21F4; [0C 6A 7C, 05, 05]
+2257; [0C 9C F0, 05, 05]
-21F5; [0C 6A 83, 05, 05]
+2258; [0C 9C F7, 05, 05]
-21F6; [0C 6A 8A, 05, 05]
+2259; [0C 9C FE, 05, 05]
-21F7; [0C 6A 91, 05, 05]
+225A; [0C 9D 07, 05, 05]
-21F8; [0C 6A 98, 05, 05]
+225B; [0C 9D 0E, 05, 05]
-21F9; [0C 6A 9F, 05, 05]
+225C; [0C 9D 15, 05, 05]
-21FA; [0C 6A A6, 05, 05]
+225D; [0C 9D 1C, 05, 05]
-21FB; [0C 6A AD, 05, 05]
+225E; [0C 9D 23, 05, 05]
-21FC; [0C 6A B4, 05, 05]
+225F; [0C 9D 2A, 05, 05]
-21FD; [0C 6A BB, 05, 05]
+2261; [0C 9D 31, 05, 05]
+2262; [0C 9D 31, 05, 05][, 9E, 05]
-21FE; [0C 6A C2, 05, 05]
+2263; [0C 9D 38, 05, 05]
-21FF; [0C 6A C9, 05, 05]
+2264; [0C 9D 3F, 05, 05]
+2270; [0C 9D 3F, 05, 05][, 9E, 05]
-2200; [0C 6A D0, 05, 05]
+2265; [0C 9D 46, 05, 05]
+2271; [0C 9D 46, 05, 05][, 9E, 05]
-2201; [0C 6A D7, 05, 05]
+2266; [0C 9D 4D, 05, 05]
-2202; [0C 6C, 05, 05]
-1D6DB; [0C 6C, 05, 20]
-1D715; [0C 6C, 05, 20]
-1D74F; [0C 6C, 05, 20]
-1D789; [0C 6C, 05, 20]
-1D7C3; [0C 6C, 05, 20]
+2267; [0C 9D 54, 05, 05]
-2203; [0C 6E 02, 05, 05]
-2204; [0C 6E 02, 05, 05][, 9E, 05]
+2268; [0C 9D 5B, 05, 05]
-2205; [0C 6E 09, 05, 05]
+2269; [0C 9D 62, 05, 05]
-2206; [0C 6E 10, 05, 05]
+226A; [0C 9D 69, 05, 05]
-2207; [0C 70, 05, 05]
-1D6C1; [0C 70, 05, 20]
-1D6FB; [0C 70, 05, 20]
-1D735; [0C 70, 05, 20]
-1D76F; [0C 70, 05, 20]
-1D7A9; [0C 70, 05, 20]
+226B; [0C 9D 70, 05, 05]
-2208; [0C 72 02, 05, 05]
-2209; [0C 72 02, 05, 05][, 9E, 05]
+226C; [0C 9D 77, 05, 05]
-220A; [0C 72 09, 05, 05]
+2272; [0C 9D 7E, 05, 05]
+2274; [0C 9D 7E, 05, 05][, 9E, 05]
-220B; [0C 72 10, 05, 05]
-220C; [0C 72 10, 05, 05][, 9E, 05]
+2273; [0C 9D 85, 05, 05]
+2275; [0C 9D 85, 05, 05][, 9E, 05]
-220D; [0C 72 17, 05, 05]
+2276; [0C 9D 8C, 05, 05]
+2278; [0C 9D 8C, 05, 05][, 9E, 05]
-03F6; [0C 72 1E, 05, 05]
+2277; [0C 9D 93, 05, 05]
+2279; [0C 9D 93, 05, 05][, 9E, 05]
-220E; [0C 72 25, 05, 05]
+227A; [0C 9D 9A, 05, 05]
+2280; [0C 9D 9A, 05, 05][, 9E, 05]
-220F; [0C 72 2C, 05, 05]
+227B; [0C 9D A1, 05, 05]
+2281; [0C 9D A1, 05, 05][, 9E, 05]
-2210; [0C 72 33, 05, 05]
+227C; [0C 9D A8, 05, 05]
+22E0; [0C 9D A8, 05, 05][, 9E, 05]
-2211; [0C 74, 05, 05]
-2140; [0C 74, 05, 20]
+227D; [0C 9D AF, 05, 05]
+22E1; [0C 9D AF, 05, 05][, 9E, 05]
-002B; [0C 76, 05, 05]
-FF0B; [0C 76, 05, 10]
-FB29; [0C 76, 05, 18]
-FE62; [0C 76, 05, 20]
-207A; [0C 76, 05, 28]
-208A; [0C 76, 05, 30]
+227E; [0C 9D B6, 05, 05]
-00B1; [0C 78, 05, 05]
+227F; [0C 9D BD, 05, 05]
-00F7; [0C 7A, 05, 05]
+2282; [0C 9D C4, 05, 05]
+2284; [0C 9D C4, 05, 05][, 9E, 05]
-00D7; [0C 7C, 05, 05]
+2283; [0C 9D CB, 05, 05]
+2285; [0C 9D CB, 05, 05][, 9E, 05]
-003C; [0C 7E, 05, 05]
-FF1C; [0C 7E, 05, 20]
-FE64; [0C 7E, 05, 2E]
-226E; [0C 7E, 05, 05][, 9E, 05]
+2286; [0C 9D D2, 05, 05]
+2288; [0C 9D D2, 05, 05][, 9E, 05]
-003D; [0C 80, 05, 05]
-FF1D; [0C 80, 05, 10]
-FE66; [0C 80, 05, 20]
-207C; [0C 80, 05, 28]
-208C; [0C 80, 05, 30]
-2260; [0C 80, 05, 05][, 9E, 05]
-2A75; [0C 80, 05, 18][0C 80, 05, 18]
-2A76; [0C 80, 05, 18][0C 80, 05, 18][0C 80, 05, 18]
+2287; [0C 9D D9, 05, 05]
+2289; [0C 9D D9, 05, 05][, 9E, 05]
-003E; [0C 82, 05, 05]
-FF1E; [0C 82, 05, 20]
-FE65; [0C 82, 05, 2E]
-226F; [0C 82, 05, 05][, 9E, 05]
+228A; [0C 9D E0, 05, 05]
-00AC; [0C 84, 05, 05]
-FFE2; [0C 84, 05, 20]
+228B; [0C 9D E7, 05, 05]
-007C; [0C 86, 05, 05]
-FF5C; [0C 86, 05, 20]
+228C; [0C 9D EE, 05, 05]
-00A6; [0C 88, 05, 05]
-FFE4; [0C 88, 05, 20]
+228D; [0C 9D F5, 05, 05]
-007E; [0C 8A, 05, 05]
-FF5E; [0C 8A, 05, 20]
+228E; [0C 9D FC, 05, 05]
-2212; [0C 8C, 05, 05]
-207B; [0C 8C, 05, 20]
-208B; [0C 8C, 05, 2E]
+228F; [0C 9E 05, 05, 05]
-2052; [0C 8E 02, 05, 05]
+2290; [0C 9E 0C, 05, 05]
-2213; [0C 8E 09, 05, 05]
+2291; [0C 9E 13, 05, 05]
+22E2; [0C 9E 13, 05, 05][, 9E, 05]
-2214; [0C 8E 10, 05, 05]
+2292; [0C 9E 1A, 05, 05]
+22E3; [0C 9E 1A, 05, 05][, 9E, 05]
-2215; [0C 90, 05, 05]
+2293; [0C 9E 21, 05, 05]
-2044; [0C 92, 05, 05]
+2294; [0C 9E 28, 05, 05]
-2216; [0C 94 02, 05, 05]
+2295; [0C 9E 2F, 05, 05]
-2217; [0C 94 09, 05, 05]
+2296; [0C 9E 36, 05, 05]
-2218; [0C 94 10, 05, 05]
+2297; [0C 9E 3D, 05, 05]
-2219; [0C 94 17, 05, 05]
+2298; [0C 9E 44, 05, 05]
-221A; [0C 94 1E, 05, 05]
+2299; [0C 9E 4B, 05, 05]
-221B; [0C 94 25, 05, 05]
+229A; [0C 9E 52, 05, 05]
-0606; [0C 94 2C, 05, 05]
+229B; [0C 9E 59, 05, 05]
-221C; [0C 94 33, 05, 05]
+229C; [0C 9E 60, 05, 05]
-0607; [0C 94 3A, 05, 05]
+229D; [0C 9E 67, 05, 05]
-221D; [0C 94 41, 05, 05]
+229E; [0C 9E 6E, 05, 05]
-221E; [0C 94 48, 05, 05]
+229F; [0C 9E 75, 05, 05]
-221F; [0C 94 4F, 05, 05]
+22A0; [0C 9E 7C, 05, 05]
-2220; [0C 94 56, 05, 05]
+22A1; [0C 9E 83, 05, 05]
-2221; [0C 94 5D, 05, 05]
+22A2; [0C 9E 8A, 05, 05]
+22AC; [0C 9E 8A, 05, 05][, 9E, 05]
-2222; [0C 94 64, 05, 05]
+22A3; [0C 9E 91, 05, 05]
-2223; [0C 94 6B, 05, 05]
-2224; [0C 94 6B, 05, 05][, 9E, 05]
+22A4; [0C 9E 98, 05, 05]
-2225; [0C 94 72, 05, 05]
-2226; [0C 94 72, 05, 05][, 9E, 05]
+22A5; [0C 9E 9F, 05, 05]
-2227; [0C 94 79, 05, 05]
+22A6; [0C 9E A6, 05, 05]
-2228; [0C 94 80, 05, 05]
+22A7; [0C 9E AD, 05, 05]
-2229; [0C 94 87, 05, 05]
+22A8; [0C 9E B4, 05, 05]
+22AD; [0C 9E B4, 05, 05][, 9E, 05]
-222A; [0C 94 8E, 05, 05]
+22A9; [0C 9E BB, 05, 05]
+22AE; [0C 9E BB, 05, 05][, 9E, 05]
-222B; [0C 96, 05, 05]
-222C; [0C 96, 05, 20][0C 96, 05, 20]
-222D; [0C 96, 05, 20][0C 96, 05, 20][0C 96, 05, 20]
-2A0C; [0C 96, 05, 20][0C 96, 05, 20][0C 96, 05, 20][0C 96, 05, 20]
+22AA; [0C 9E C2, 05, 05]
-222E; [0C 98, 05, 05]
-222F; [0C 98, 05, 20][0C 98, 05, 20]
-2230; [0C 98, 05, 20][0C 98, 05, 20][0C 98, 05, 20]
+22AB; [0C 9E C9, 05, 05]
+22AF; [0C 9E C9, 05, 05][, 9E, 05]
-2231; [0C 9A 02, 05, 05]
+22B0; [0C 9E D0, 05, 05]
-2232; [0C 9A 09, 05, 05]
+22B1; [0C 9E D7, 05, 05]
-2233; [0C 9A 10, 05, 05]
+22B2; [0C 9E DE, 05, 05]
+22EA; [0C 9E DE, 05, 05][, 9E, 05]
-2234; [0C 9A 17, 05, 05]
+22B3; [0C 9E E5, 05, 05]
+22EB; [0C 9E E5, 05, 05][, 9E, 05]
-2235; [0C 9A 1E, 05, 05]
+22B4; [0C 9E EC, 05, 05]
+22EC; [0C 9E EC, 05, 05][, 9E, 05]
-2236; [0C 9A 25, 05, 05]
+22B5; [0C 9E F3, 05, 05]
+22ED; [0C 9E F3, 05, 05][, 9E, 05]
-2237; [0C 9A 2C, 05, 05]
+22B6; [0C 9E FA, 05, 05]
-2238; [0C 9A 33, 05, 05]
+22B7; [0C 9F 03, 05, 05]
-2239; [0C 9A 3A, 05, 05]
+22B8; [0C 9F 0A, 05, 05]
-223A; [0C 9A 41, 05, 05]
+22B9; [0C 9F 11, 05, 05]
-223B; [0C 9A 48, 05, 05]
+22BA; [0C 9F 18, 05, 05]
-223C; [0C 9A 4F, 05, 05]
-2241; [0C 9A 4F, 05, 05][, 9E, 05]
+22BB; [0C 9F 1F, 05, 05]
-223D; [0C 9A 56, 05, 05]
+22BC; [0C 9F 26, 05, 05]
-223E; [0C 9A 5D, 05, 05]
+214B; [0C 9F 2D, 05, 05]
-223F; [0C 9A 64, 05, 05]
+22BD; [0C 9F 34, 05, 05]
-2240; [0C 9A 6B, 05, 05]
+22BE; [0C 9F 3B, 05, 05]
-2242; [0C 9A 72, 05, 05]
+22BF; [0C 9F 42, 05, 05]
-2243; [0C 9A 79, 05, 05]
-2244; [0C 9A 79, 05, 05][, 9E, 05]
+22C0; [0C 9F 49, 05, 05]
-2245; [0C 9A 80, 05, 05]
-2247; [0C 9A 80, 05, 05][, 9E, 05]
+22C1; [0C 9F 50, 05, 05]
-2246; [0C 9A 87, 05, 05]
+22C2; [0C 9F 57, 05, 05]
-2248; [0C 9A 8E, 05, 05]
-2249; [0C 9A 8E, 05, 05][, 9E, 05]
+22C3; [0C 9F 5E, 05, 05]
-224A; [0C 9A 95, 05, 05]
+22C4; [0C 9F 65, 05, 05]
-224B; [0C 9A 9C, 05, 05]
+22C5; [0C 9F 6C, 05, 05]
-224C; [0C 9A A3, 05, 05]
+22C6; [0C 9F 73, 05, 05]
-224D; [0C 9A AA, 05, 05]
-226D; [0C 9A AA, 05, 05][, 9E, 05]
+22C7; [0C 9F 7A, 05, 05]
-224E; [0C 9A B1, 05, 05]
+22C8; [0C 9F 81, 05, 05]
-224F; [0C 9A B8, 05, 05]
+22C9; [0C 9F 88, 05, 05]
-2250; [0C 9A BF, 05, 05]
+22CA; [0C 9F 8F, 05, 05]
-2251; [0C 9A C6, 05, 05]
+22CB; [0C 9F 96, 05, 05]
-2252; [0C 9A CD, 05, 05]
+22CC; [0C 9F 9D, 05, 05]
-2253; [0C 9A D4, 05, 05]
+22CD; [0C 9F A4, 05, 05]
-2254; [0C 9A DB, 05, 05]
+22CE; [0C 9F AB, 05, 05]
-2255; [0C 9A E2, 05, 05]
+22CF; [0C 9F B2, 05, 05]
-2256; [0C 9A E9, 05, 05]
+22D0; [0C 9F B9, 05, 05]
-2257; [0C 9A F0, 05, 05]
+22D1; [0C 9F C0, 05, 05]
-2258; [0C 9A F7, 05, 05]
+22D2; [0C 9F C7, 05, 05]
-2259; [0C 9A FE, 05, 05]
+22D3; [0C 9F CE, 05, 05]
-225A; [0C 9B 07, 05, 05]
+22D4; [0C 9F D5, 05, 05]
-225B; [0C 9B 0E, 05, 05]
+22D5; [0C 9F DC, 05, 05]
-225C; [0C 9B 15, 05, 05]
+22D6; [0C 9F E3, 05, 05]
-225D; [0C 9B 1C, 05, 05]
+22D7; [0C 9F EA, 05, 05]
-225E; [0C 9B 23, 05, 05]
+22D8; [0C 9F F1, 05, 05]
-225F; [0C 9B 2A, 05, 05]
+22D9; [0C 9F F8, 05, 05]
-2261; [0C 9B 31, 05, 05]
-2262; [0C 9B 31, 05, 05][, 9E, 05]
+22DA; [0C 9F FF, 05, 05]
-2263; [0C 9B 38, 05, 05]
+22DB; [0C A0 08, 05, 05]
-2264; [0C 9B 3F, 05, 05]
-2270; [0C 9B 3F, 05, 05][, 9E, 05]
+22DC; [0C A0 0F, 05, 05]
-2265; [0C 9B 46, 05, 05]
-2271; [0C 9B 46, 05, 05][, 9E, 05]
+22DD; [0C A0 16, 05, 05]
-2266; [0C 9B 4D, 05, 05]
+22DE; [0C A0 1D, 05, 05]
-2267; [0C 9B 54, 05, 05]
+22DF; [0C A0 24, 05, 05]
-2268; [0C 9B 5B, 05, 05]
+22E4; [0C A0 2B, 05, 05]
-2269; [0C 9B 62, 05, 05]
+22E5; [0C A0 32, 05, 05]
-226A; [0C 9B 69, 05, 05]
+22E6; [0C A0 39, 05, 05]
-226B; [0C 9B 70, 05, 05]
+22E7; [0C A0 40, 05, 05]
-226C; [0C 9B 77, 05, 05]
+22E8; [0C A0 47, 05, 05]
-2272; [0C 9B 7E, 05, 05]
-2274; [0C 9B 7E, 05, 05][, 9E, 05]
+22E9; [0C A0 4E, 05, 05]
-2273; [0C 9B 85, 05, 05]
-2275; [0C 9B 85, 05, 05][, 9E, 05]
+22EE; [0C A0 55, 05, 05]
-2276; [0C 9B 8C, 05, 05]
-2278; [0C 9B 8C, 05, 05][, 9E, 05]
+22EF; [0C A0 5C, 05, 05]
-2277; [0C 9B 93, 05, 05]
-2279; [0C 9B 93, 05, 05][, 9E, 05]
+22F0; [0C A0 63, 05, 05]
-227A; [0C 9B 9A, 05, 05]
-2280; [0C 9B 9A, 05, 05][, 9E, 05]
+22F1; [0C A0 6A, 05, 05]
-227B; [0C 9B A1, 05, 05]
-2281; [0C 9B A1, 05, 05][, 9E, 05]
+22F2; [0C A0 71, 05, 05]
-227C; [0C 9B A8, 05, 05]
-22E0; [0C 9B A8, 05, 05][, 9E, 05]
+22F3; [0C A0 78, 05, 05]
-227D; [0C 9B AF, 05, 05]
-22E1; [0C 9B AF, 05, 05][, 9E, 05]
+22F4; [0C A0 7F, 05, 05]
-227E; [0C 9B B6, 05, 05]
+22F5; [0C A0 86, 05, 05]
-227F; [0C 9B BD, 05, 05]
+22F6; [0C A0 8D, 05, 05]
-2282; [0C 9B C4, 05, 05]
-2284; [0C 9B C4, 05, 05][, 9E, 05]
+22F7; [0C A0 94, 05, 05]
-2283; [0C 9B CB, 05, 05]
-2285; [0C 9B CB, 05, 05][, 9E, 05]
+22F8; [0C A0 9B, 05, 05]
-2286; [0C 9B D2, 05, 05]
-2288; [0C 9B D2, 05, 05][, 9E, 05]
+22F9; [0C A0 A2, 05, 05]
-2287; [0C 9B D9, 05, 05]
-2289; [0C 9B D9, 05, 05][, 9E, 05]
+22FA; [0C A0 A9, 05, 05]
-228A; [0C 9B E0, 05, 05]
+22FB; [0C A0 B0, 05, 05]
-228B; [0C 9B E7, 05, 05]
+22FC; [0C A0 B7, 05, 05]
-228C; [0C 9B EE, 05, 05]
+22FD; [0C A0 BE, 05, 05]
-228D; [0C 9B F5, 05, 05]
+22FE; [0C A0 C5, 05, 05]
-228E; [0C 9B FC, 05, 05]
+22FF; [0C A0 CC, 05, 05]
-228F; [0C 9C 05, 05, 05]
+2300; [0C A0 D3, 05, 05]
-2290; [0C 9C 0C, 05, 05]
+2301; [0C A0 DA, 05, 05]
-2291; [0C 9C 13, 05, 05]
-22E2; [0C 9C 13, 05, 05][, 9E, 05]
+2302; [0C A0 E1, 05, 05]
-2292; [0C 9C 1A, 05, 05]
-22E3; [0C 9C 1A, 05, 05][, 9E, 05]
+2303; [0C A0 E8, 05, 05]
-2293; [0C 9C 21, 05, 05]
+2304; [0C A0 EF, 05, 05]
-2294; [0C 9C 28, 05, 05]
+2305; [0C A0 F6, 05, 05]
-2295; [0C 9C 2F, 05, 05]
+2306; [0C A0 FD, 05, 05]
-2296; [0C 9C 36, 05, 05]
+2307; [0C A1 06, 05, 05]
-2297; [0C 9C 3D, 05, 05]
+230C; [0C A1 0D, 05, 05]
-2298; [0C 9C 44, 05, 05]
+230D; [0C A1 14, 05, 05]
-2299; [0C 9C 4B, 05, 05]
+230E; [0C A1 1B, 05, 05]
-229A; [0C 9C 52, 05, 05]
+230F; [0C A1 22, 05, 05]
-229B; [0C 9C 59, 05, 05]
+2310; [0C A1 29, 05, 05]
-229C; [0C 9C 60, 05, 05]
+2311; [0C A1 30, 05, 05]
-229D; [0C 9C 67, 05, 05]
+2312; [0C A1 37, 05, 05]
-229E; [0C 9C 6E, 05, 05]
+2313; [0C A1 3E, 05, 05]
-229F; [0C 9C 75, 05, 05]
+2314; [0C A1 45, 05, 05]
-22A0; [0C 9C 7C, 05, 05]
+2315; [0C A1 4C, 05, 05]
-22A1; [0C 9C 83, 05, 05]
+2316; [0C A1 53, 05, 05]
-22A2; [0C 9C 8A, 05, 05]
-22AC; [0C 9C 8A, 05, 05][, 9E, 05]
+2317; [0C A1 5A, 05, 05]
-22A3; [0C 9C 91, 05, 05]
+2318; [0C A1 61, 05, 05]
-22A4; [0C 9C 98, 05, 05]
+2319; [0C A1 68, 05, 05]
-22A5; [0C 9C 9F, 05, 05]
+231A; [0C A1 6F, 05, 05]
-22A6; [0C 9C A6, 05, 05]
+231B; [0C A1 76, 05, 05]
-22A7; [0C 9C AD, 05, 05]
+231C; [0C A1 7D, 05, 05]
-22A8; [0C 9C B4, 05, 05]
-22AD; [0C 9C B4, 05, 05][, 9E, 05]
+231D; [0C A1 84, 05, 05]
-22A9; [0C 9C BB, 05, 05]
-22AE; [0C 9C BB, 05, 05][, 9E, 05]
+231E; [0C A1 8B, 05, 05]
-22AA; [0C 9C C2, 05, 05]
+231F; [0C A1 92, 05, 05]
-22AB; [0C 9C C9, 05, 05]
-22AF; [0C 9C C9, 05, 05][, 9E, 05]
+2320; [0C A1 99, 05, 05]
-22B0; [0C 9C D0, 05, 05]
+2321; [0C A1 A0, 05, 05]
-22B1; [0C 9C D7, 05, 05]
+2322; [0C A1 A7, 05, 05]
-22B2; [0C 9C DE, 05, 05]
-22EA; [0C 9C DE, 05, 05][, 9E, 05]
+2323; [0C A1 AE, 05, 05]
-22B3; [0C 9C E5, 05, 05]
-22EB; [0C 9C E5, 05, 05][, 9E, 05]
+2324; [0C A1 B5, 05, 05]
-22B4; [0C 9C EC, 05, 05]
-22EC; [0C 9C EC, 05, 05][, 9E, 05]
+2325; [0C A1 BC, 05, 05]
-22B5; [0C 9C F3, 05, 05]
-22ED; [0C 9C F3, 05, 05][, 9E, 05]
+2326; [0C A1 C3, 05, 05]
-22B6; [0C 9C FA, 05, 05]
+2327; [0C A1 CA, 05, 05]
-22B7; [0C 9D 03, 05, 05]
+2328; [0C A1 D1, 05, 05]
-22B8; [0C 9D 0A, 05, 05]
+232B; [0C A1 D8, 05, 05]
-22B9; [0C 9D 11, 05, 05]
+232C; [0C A1 DF, 05, 05]
-22BA; [0C 9D 18, 05, 05]
+232D; [0C A1 E6, 05, 05]
-22BB; [0C 9D 1F, 05, 05]
+232E; [0C A1 ED, 05, 05]
-22BC; [0C 9D 26, 05, 05]
+232F; [0C A1 F4, 05, 05]
-214B; [0C 9D 2D, 05, 05]
+2330; [0C A1 FB, 05, 05]
-22BD; [0C 9D 34, 05, 05]
+2331; [0C A2 04, 05, 05]
-22BE; [0C 9D 3B, 05, 05]
+2332; [0C A2 0B, 05, 05]
-22BF; [0C 9D 42, 05, 05]
+2333; [0C A2 12, 05, 05]
-22C0; [0C 9D 49, 05, 05]
+2334; [0C A2 19, 05, 05]
-22C1; [0C 9D 50, 05, 05]
+2335; [0C A2 20, 05, 05]
-22C2; [0C 9D 57, 05, 05]
+2336; [0C A2 27, 05, 05]
-22C3; [0C 9D 5E, 05, 05]
+2337; [0C A2 2E, 05, 05]
-22C4; [0C 9D 65, 05, 05]
+2338; [0C A2 35, 05, 05]
-22C5; [0C 9D 6C, 05, 05]
+2339; [0C A2 3C, 05, 05]
-22C6; [0C 9D 73, 05, 05]
+233A; [0C A2 43, 05, 05]
-22C7; [0C 9D 7A, 05, 05]
+233B; [0C A2 4A, 05, 05]
-22C8; [0C 9D 81, 05, 05]
+233C; [0C A2 51, 05, 05]
-22C9; [0C 9D 88, 05, 05]
+233D; [0C A2 58, 05, 05]
-22CA; [0C 9D 8F, 05, 05]
+233E; [0C A2 5F, 05, 05]
-22CB; [0C 9D 96, 05, 05]
+233F; [0C A2 66, 05, 05]
-22CC; [0C 9D 9D, 05, 05]
+2340; [0C A2 6D, 05, 05]
-22CD; [0C 9D A4, 05, 05]
+2341; [0C A2 74, 05, 05]
-22CE; [0C 9D AB, 05, 05]
+2342; [0C A2 7B, 05, 05]
-22CF; [0C 9D B2, 05, 05]
+2343; [0C A2 82, 05, 05]
-22D0; [0C 9D B9, 05, 05]
+2344; [0C A2 89, 05, 05]
-22D1; [0C 9D C0, 05, 05]
+2345; [0C A2 90, 05, 05]
-22D2; [0C 9D C7, 05, 05]
+2346; [0C A2 97, 05, 05]
-22D3; [0C 9D CE, 05, 05]
+2347; [0C A2 9E, 05, 05]
-22D4; [0C 9D D5, 05, 05]
+2348; [0C A2 A5, 05, 05]
-22D5; [0C 9D DC, 05, 05]
+2349; [0C A2 AC, 05, 05]
-22D6; [0C 9D E3, 05, 05]
+234A; [0C A2 B3, 05, 05]
-22D7; [0C 9D EA, 05, 05]
+234B; [0C A2 BA, 05, 05]
-22D8; [0C 9D F1, 05, 05]
+234C; [0C A2 C1, 05, 05]
-22D9; [0C 9D F8, 05, 05]
+234D; [0C A2 C8, 05, 05]
-22DA; [0C 9D FF, 05, 05]
+234E; [0C A2 CF, 05, 05]
-22DB; [0C 9E 08, 05, 05]
+234F; [0C A2 D6, 05, 05]
-22DC; [0C 9E 0F, 05, 05]
+2350; [0C A2 DD, 05, 05]
-22DD; [0C 9E 16, 05, 05]
+2351; [0C A2 E4, 05, 05]
-22DE; [0C 9E 1D, 05, 05]
+2352; [0C A2 EB, 05, 05]
-22DF; [0C 9E 24, 05, 05]
+2353; [0C A2 F2, 05, 05]
-22E4; [0C 9E 2B, 05, 05]
+2354; [0C A2 F9, 05, 05]
-22E5; [0C 9E 32, 05, 05]
+2355; [0C A3 02, 05, 05]
-22E6; [0C 9E 39, 05, 05]
+2356; [0C A3 09, 05, 05]
-22E7; [0C 9E 40, 05, 05]
+2357; [0C A3 10, 05, 05]
-22E8; [0C 9E 47, 05, 05]
+2358; [0C A3 17, 05, 05]
-22E9; [0C 9E 4E, 05, 05]
+2359; [0C A3 1E, 05, 05]
-22EE; [0C 9E 55, 05, 05]
+235A; [0C A3 25, 05, 05]
-22EF; [0C 9E 5C, 05, 05]
+235B; [0C A3 2C, 05, 05]
-22F0; [0C 9E 63, 05, 05]
+235C; [0C A3 33, 05, 05]
-22F1; [0C 9E 6A, 05, 05]
+235D; [0C A3 3A, 05, 05]
-22F2; [0C 9E 71, 05, 05]
+235E; [0C A3 41, 05, 05]
-22F3; [0C 9E 78, 05, 05]
+235F; [0C A3 48, 05, 05]
-22F4; [0C 9E 7F, 05, 05]
+2360; [0C A3 4F, 05, 05]
-22F5; [0C 9E 86, 05, 05]
+2361; [0C A3 56, 05, 05]
-22F6; [0C 9E 8D, 05, 05]
+2362; [0C A3 5D, 05, 05]
-22F7; [0C 9E 94, 05, 05]
+2363; [0C A3 64, 05, 05]
-22F8; [0C 9E 9B, 05, 05]
+2364; [0C A3 6B, 05, 05]
-22F9; [0C 9E A2, 05, 05]
+2365; [0C A3 72, 05, 05]
-22FA; [0C 9E A9, 05, 05]
+2366; [0C A3 79, 05, 05]
-22FB; [0C 9E B0, 05, 05]
+2367; [0C A3 80, 05, 05]
-22FC; [0C 9E B7, 05, 05]
+2368; [0C A3 87, 05, 05]
-22FD; [0C 9E BE, 05, 05]
+2369; [0C A3 8E, 05, 05]
-22FE; [0C 9E C5, 05, 05]
+236A; [0C A3 95, 05, 05]
-22FF; [0C 9E CC, 05, 05]
+236B; [0C A3 9C, 05, 05]
-2300; [0C 9E D3, 05, 05]
+236C; [0C A3 A3, 05, 05]
-2301; [0C 9E DA, 05, 05]
+236D; [0C A3 AA, 05, 05]
-2302; [0C 9E E1, 05, 05]
+236E; [0C A3 B1, 05, 05]
-2303; [0C 9E E8, 05, 05]
+236F; [0C A3 B8, 05, 05]
-2304; [0C 9E EF, 05, 05]
+2370; [0C A3 BF, 05, 05]
-2305; [0C 9E F6, 05, 05]
+2371; [0C A3 C6, 05, 05]
-2306; [0C 9E FD, 05, 05]
+2372; [0C A3 CD, 05, 05]
-2307; [0C 9F 06, 05, 05]
+2373; [0C A3 D4, 05, 05]
-230C; [0C 9F 0D, 05, 05]
+2374; [0C A3 DB, 05, 05]
-230D; [0C 9F 14, 05, 05]
+2375; [0C A3 E2, 05, 05]
-230E; [0C 9F 1B, 05, 05]
+2376; [0C A3 E9, 05, 05]
-230F; [0C 9F 22, 05, 05]
+2377; [0C A3 F0, 05, 05]
-2310; [0C 9F 29, 05, 05]
+2378; [0C A3 F7, 05, 05]
-2311; [0C 9F 30, 05, 05]
+2379; [0C A3 FE, 05, 05]
-2312; [0C 9F 37, 05, 05]
+237A; [0C A4 07, 05, 05]
-2313; [0C 9F 3E, 05, 05]
+237B; [0C A4 0E, 05, 05]
-2314; [0C 9F 45, 05, 05]
+237C; [0C A4 15, 05, 05]
-2315; [0C 9F 4C, 05, 05]
+237D; [0C A4 1C, 05, 05]
-2316; [0C 9F 53, 05, 05]
+237E; [0C A4 23, 05, 05]
-2317; [0C 9F 5A, 05, 05]
+237F; [0C A4 2A, 05, 05]
-2318; [0C 9F 61, 05, 05]
+2380; [0C A4 31, 05, 05]
-2319; [0C 9F 68, 05, 05]
+2381; [0C A4 38, 05, 05]
-231A; [0C 9F 6F, 05, 05]
+2382; [0C A4 3F, 05, 05]
-231B; [0C 9F 76, 05, 05]
+2383; [0C A4 46, 05, 05]
-231C; [0C 9F 7D, 05, 05]
+2384; [0C A4 4D, 05, 05]
-231D; [0C 9F 84, 05, 05]
+2385; [0C A4 54, 05, 05]
-231E; [0C 9F 8B, 05, 05]
+2386; [0C A4 5B, 05, 05]
-231F; [0C 9F 92, 05, 05]
+2387; [0C A4 62, 05, 05]
-2320; [0C 9F 99, 05, 05]
+2388; [0C A4 69, 05, 05]
-2321; [0C 9F A0, 05, 05]
+2389; [0C A4 70, 05, 05]
-2322; [0C 9F A7, 05, 05]
+238A; [0C A4 77, 05, 05]
-2323; [0C 9F AE, 05, 05]
+238B; [0C A4 7E, 05, 05]
-2324; [0C 9F B5, 05, 05]
+238C; [0C A4 85, 05, 05]
-2325; [0C 9F BC, 05, 05]
+238D; [0C A4 8C, 05, 05]
-2326; [0C 9F C3, 05, 05]
+238E; [0C A4 93, 05, 05]
-2327; [0C 9F CA, 05, 05]
+238F; [0C A4 9A, 05, 05]
-2328; [0C 9F D1, 05, 05]
+2390; [0C A4 A1, 05, 05]
-232B; [0C 9F D8, 05, 05]
+2391; [0C A4 A8, 05, 05]
-232C; [0C 9F DF, 05, 05]
+2392; [0C A4 AF, 05, 05]
-232D; [0C 9F E6, 05, 05]
+2393; [0C A4 B6, 05, 05]
-232E; [0C 9F ED, 05, 05]
+2394; [0C A4 BD, 05, 05]
-232F; [0C 9F F4, 05, 05]
+2395; [0C A4 C4, 05, 05]
-2330; [0C 9F FB, 05, 05]
+2396; [0C A4 CB, 05, 05]
-2331; [0C A0 04, 05, 05]
+2397; [0C A4 D2, 05, 05]
-2332; [0C A0 0B, 05, 05]
+2398; [0C A4 D9, 05, 05]
-2333; [0C A0 12, 05, 05]
+2399; [0C A4 E0, 05, 05]
-2334; [0C A0 19, 05, 05]
+239A; [0C A4 E7, 05, 05]
-2335; [0C A0 20, 05, 05]
+239B; [0C A4 EE, 05, 05]
-2336; [0C A0 27, 05, 05]
+239C; [0C A4 F5, 05, 05]
-2337; [0C A0 2E, 05, 05]
+239D; [0C A4 FC, 05, 05]
-2338; [0C A0 35, 05, 05]
+239E; [0C A5 05, 05, 05]
-2339; [0C A0 3C, 05, 05]
+239F; [0C A5 0C, 05, 05]
-233A; [0C A0 43, 05, 05]
+23A0; [0C A5 13, 05, 05]
-233B; [0C A0 4A, 05, 05]
+23A1; [0C A5 1A, 05, 05]
-233C; [0C A0 51, 05, 05]
+23A2; [0C A5 21, 05, 05]
-233D; [0C A0 58, 05, 05]
+23A3; [0C A5 28, 05, 05]
-233E; [0C A0 5F, 05, 05]
+23A4; [0C A5 2F, 05, 05]
-233F; [0C A0 66, 05, 05]
+23A5; [0C A5 36, 05, 05]
-2340; [0C A0 6D, 05, 05]
+23A6; [0C A5 3D, 05, 05]
-2341; [0C A0 74, 05, 05]
+23A7; [0C A5 44, 05, 05]
-2342; [0C A0 7B, 05, 05]
+23A8; [0C A5 4B, 05, 05]
-2343; [0C A0 82, 05, 05]
+23A9; [0C A5 52, 05, 05]
-2344; [0C A0 89, 05, 05]
+23AA; [0C A5 59, 05, 05]
-2345; [0C A0 90, 05, 05]
+23AB; [0C A5 60, 05, 05]
-2346; [0C A0 97, 05, 05]
+23AC; [0C A5 67, 05, 05]
-2347; [0C A0 9E, 05, 05]
+23AD; [0C A5 6E, 05, 05]
-2348; [0C A0 A5, 05, 05]
+23AE; [0C A5 75, 05, 05]
-2349; [0C A0 AC, 05, 05]
+23AF; [0C A5 7C, 05, 05]
-234A; [0C A0 B3, 05, 05]
+23B0; [0C A5 83, 05, 05]
-234B; [0C A0 BA, 05, 05]
+23B1; [0C A5 8A, 05, 05]
-234C; [0C A0 C1, 05, 05]
+23B2; [0C A5 91, 05, 05]
-234D; [0C A0 C8, 05, 05]
+23B3; [0C A5 98, 05, 05]
-234E; [0C A0 CF, 05, 05]
+23B4; [0C A5 9F, 05, 05]
-234F; [0C A0 D6, 05, 05]
+23B5; [0C A5 A6, 05, 05]
-2350; [0C A0 DD, 05, 05]
+23B6; [0C A5 AD, 05, 05]
-2351; [0C A0 E4, 05, 05]
+23B7; [0C A5 B4, 05, 05]
-2352; [0C A0 EB, 05, 05]
+23B8; [0C A5 BB, 05, 05]
-2353; [0C A0 F2, 05, 05]
+23B9; [0C A5 C2, 05, 05]
-2354; [0C A0 F9, 05, 05]
+23BA; [0C A5 C9, 05, 05]
-2355; [0C A1 02, 05, 05]
+23BB; [0C A5 D0, 05, 05]
-2356; [0C A1 09, 05, 05]
+23BC; [0C A5 D7, 05, 05]
-2357; [0C A1 10, 05, 05]
+23BD; [0C A5 DE, 05, 05]
-2358; [0C A1 17, 05, 05]
+23BE; [0C A5 E5, 05, 05]
-2359; [0C A1 1E, 05, 05]
+23BF; [0C A5 EC, 05, 05]
-235A; [0C A1 25, 05, 05]
+23C0; [0C A5 F3, 05, 05]
-235B; [0C A1 2C, 05, 05]
+23C1; [0C A5 FA, 05, 05]
-235C; [0C A1 33, 05, 05]
+23C2; [0C A6 03, 05, 05]
-235D; [0C A1 3A, 05, 05]
+23C3; [0C A6 0A, 05, 05]
-235E; [0C A1 41, 05, 05]
+23C4; [0C A6 11, 05, 05]
-235F; [0C A1 48, 05, 05]
+23C5; [0C A6 18, 05, 05]
-2360; [0C A1 4F, 05, 05]
+23C6; [0C A6 1F, 05, 05]
-2361; [0C A1 56, 05, 05]
+23C7; [0C A6 26, 05, 05]
-2362; [0C A1 5D, 05, 05]
+23C8; [0C A6 2D, 05, 05]
-2363; [0C A1 64, 05, 05]
+23C9; [0C A6 34, 05, 05]
-2364; [0C A1 6B, 05, 05]
+23CA; [0C A6 3B, 05, 05]
-2365; [0C A1 72, 05, 05]
+23CB; [0C A6 42, 05, 05]
-2366; [0C A1 79, 05, 05]
+23CC; [0C A6 49, 05, 05]
-2367; [0C A1 80, 05, 05]
+23CD; [0C A6 50, 05, 05]
-2368; [0C A1 87, 05, 05]
+23CE; [0C A6 57, 05, 05]
-2369; [0C A1 8E, 05, 05]
+23CF; [0C A6 5E, 05, 05]
-236A; [0C A1 95, 05, 05]
+23D0; [0C A6 65, 05, 05]
-236B; [0C A1 9C, 05, 05]
+23D1; [0C A6 6C, 05, 05]
-236C; [0C A1 A3, 05, 05]
+23D2; [0C A6 73, 05, 05]
-236D; [0C A1 AA, 05, 05]
+23D3; [0C A6 7A, 05, 05]
-236E; [0C A1 B1, 05, 05]
+23D4; [0C A6 81, 05, 05]
-236F; [0C A1 B8, 05, 05]
+23D5; [0C A6 88, 05, 05]
-2370; [0C A1 BF, 05, 05]
+23D6; [0C A6 8F, 05, 05]
-2371; [0C A1 C6, 05, 05]
+23D7; [0C A6 96, 05, 05]
-2372; [0C A1 CD, 05, 05]
+23D8; [0C A6 9D, 05, 05]
-2373; [0C A1 D4, 05, 05]
+23D9; [0C A6 A4, 05, 05]
-2374; [0C A1 DB, 05, 05]
+23DA; [0C A6 AB, 05, 05]
-2375; [0C A1 E2, 05, 05]
+23DB; [0C A6 B2, 05, 05]
-2376; [0C A1 E9, 05, 05]
+23DC; [0C A6 B9, 05, 05]
-2377; [0C A1 F0, 05, 05]
+23DD; [0C A6 C0, 05, 05]
-2378; [0C A1 F7, 05, 05]
+23DE; [0C A6 C7, 05, 05]
-2379; [0C A1 FE, 05, 05]
+23DF; [0C A6 CE, 05, 05]
-237A; [0C A2 07, 05, 05]
+23E0; [0C A6 D5, 05, 05]
-237B; [0C A2 0E, 05, 05]
+23E1; [0C A6 DC, 05, 05]
-237C; [0C A2 15, 05, 05]
+23E2; [0C A6 E3, 05, 05]
-237D; [0C A2 1C, 05, 05]
+23E3; [0C A6 EA, 05, 05]
-237E; [0C A2 23, 05, 05]
+23E4; [0C A6 F1, 05, 05]
-237F; [0C A2 2A, 05, 05]
+23E5; [0C A6 F8, 05, 05]
-2380; [0C A2 31, 05, 05]
+23E6; [0C A6 FF, 05, 05]
-2381; [0C A2 38, 05, 05]
+23E7; [0C A7 08, 05, 05]
-2382; [0C A2 3F, 05, 05]
+23E8; [0C A7 0F, 05, 05]
-2383; [0C A2 46, 05, 05]
+23E9; [0C A7 16, 05, 05]
-2384; [0C A2 4D, 05, 05]
+23EA; [0C A7 1D, 05, 05]
-2385; [0C A2 54, 05, 05]
+23EB; [0C A7 24, 05, 05]
-2386; [0C A2 5B, 05, 05]
+23EC; [0C A7 2B, 05, 05]
-2387; [0C A2 62, 05, 05]
+23ED; [0C A7 32, 05, 05]
-2388; [0C A2 69, 05, 05]
+23EE; [0C A7 39, 05, 05]
-2389; [0C A2 70, 05, 05]
+23EF; [0C A7 40, 05, 05]
-238A; [0C A2 77, 05, 05]
+23F0; [0C A7 47, 05, 05]
-238B; [0C A2 7E, 05, 05]
+23F1; [0C A7 4E, 05, 05]
-238C; [0C A2 85, 05, 05]
+23F2; [0C A7 55, 05, 05]
-238D; [0C A2 8C, 05, 05]
+23F3; [0C A7 5C, 05, 05]
-238E; [0C A2 93, 05, 05]
+23F4; [0C A7 63, 05, 05]
-238F; [0C A2 9A, 05, 05]
+23F5; [0C A7 6A, 05, 05]
-2390; [0C A2 A1, 05, 05]
+23F6; [0C A7 71, 05, 05]
-2391; [0C A2 A8, 05, 05]
+23F7; [0C A7 78, 05, 05]
-2392; [0C A2 AF, 05, 05]
+23F8; [0C A7 7F, 05, 05]
-2393; [0C A2 B6, 05, 05]
+23F9; [0C A7 86, 05, 05]
-2394; [0C A2 BD, 05, 05]
+23FA; [0C A7 8D, 05, 05]
-2395; [0C A2 C4, 05, 05]
+23FB; [0C A7 94, 05, 05]
-2396; [0C A2 CB, 05, 05]
+23FC; [0C A7 9B, 05, 05]
-2397; [0C A2 D2, 05, 05]
+23FD; [0C A7 A2, 05, 05]
-2398; [0C A2 D9, 05, 05]
+23FE; [0C A7 A9, 05, 05]
-2399; [0C A2 E0, 05, 05]
+23FF; [0C A7 B0, 05, 05]
-239A; [0C A2 E7, 05, 05]
+2400; [0C A7 B7, 05, 05]
-239B; [0C A2 EE, 05, 05]
+2401; [0C A7 BE, 05, 05]
-239C; [0C A2 F5, 05, 05]
+2402; [0C A7 C5, 05, 05]
-239D; [0C A2 FC, 05, 05]
+2403; [0C A7 CC, 05, 05]
-239E; [0C A3 05, 05, 05]
+2404; [0C A7 D3, 05, 05]
-239F; [0C A3 0C, 05, 05]
+2405; [0C A7 DA, 05, 05]
-23A0; [0C A3 13, 05, 05]
+2406; [0C A7 E1, 05, 05]
-23A1; [0C A3 1A, 05, 05]
+2407; [0C A7 E8, 05, 05]
-23A2; [0C A3 21, 05, 05]
+2408; [0C A7 EF, 05, 05]
-23A3; [0C A3 28, 05, 05]
+2409; [0C A7 F6, 05, 05]
-23A4; [0C A3 2F, 05, 05]
+240A; [0C A7 FD, 05, 05]
-23A5; [0C A3 36, 05, 05]
+240B; [0C A8 06, 05, 05]
-23A6; [0C A3 3D, 05, 05]
+240C; [0C A8 0D, 05, 05]
-23A7; [0C A3 44, 05, 05]
+240D; [0C A8 14, 05, 05]
-23A8; [0C A3 4B, 05, 05]
+240E; [0C A8 1B, 05, 05]
-23A9; [0C A3 52, 05, 05]
+240F; [0C A8 22, 05, 05]
-23AA; [0C A3 59, 05, 05]
+2410; [0C A8 29, 05, 05]
-23AB; [0C A3 60, 05, 05]
+2411; [0C A8 30, 05, 05]
-23AC; [0C A3 67, 05, 05]
+2412; [0C A8 37, 05, 05]
-23AD; [0C A3 6E, 05, 05]
+2413; [0C A8 3E, 05, 05]
-23AE; [0C A3 75, 05, 05]
+2414; [0C A8 45, 05, 05]
-23AF; [0C A3 7C, 05, 05]
+2415; [0C A8 4C, 05, 05]
-23B0; [0C A3 83, 05, 05]
+2416; [0C A8 53, 05, 05]
-23B1; [0C A3 8A, 05, 05]
+2417; [0C A8 5A, 05, 05]
-23B2; [0C A3 91, 05, 05]
+2418; [0C A8 61, 05, 05]
-23B3; [0C A3 98, 05, 05]
+2419; [0C A8 68, 05, 05]
-23B4; [0C A3 9F, 05, 05]
+241A; [0C A8 6F, 05, 05]
-23B5; [0C A3 A6, 05, 05]
+241B; [0C A8 76, 05, 05]
-23B6; [0C A3 AD, 05, 05]
+241C; [0C A8 7D, 05, 05]
-23B7; [0C A3 B4, 05, 05]
+241D; [0C A8 84, 05, 05]
-23B8; [0C A3 BB, 05, 05]
+241E; [0C A8 8B, 05, 05]
-23B9; [0C A3 C2, 05, 05]
+241F; [0C A8 92, 05, 05]
-23BA; [0C A3 C9, 05, 05]
+2420; [0C A8 99, 05, 05]
-23BB; [0C A3 D0, 05, 05]
+2421; [0C A8 A0, 05, 05]
-23BC; [0C A3 D7, 05, 05]
+2422; [0C A8 A7, 05, 05]
-23BD; [0C A3 DE, 05, 05]
+2423; [0C A8 AE, 05, 05]
-23BE; [0C A3 E5, 05, 05]
+2424; [0C A8 B5, 05, 05]
-23BF; [0C A3 EC, 05, 05]
+2425; [0C A8 BC, 05, 05]
-23C0; [0C A3 F3, 05, 05]
+2426; [0C A8 C3, 05, 05]
-23C1; [0C A3 FA, 05, 05]
+2440; [0C A8 CA, 05, 05]
-23C2; [0C A4 03, 05, 05]
+2441; [0C A8 D1, 05, 05]
-23C3; [0C A4 0A, 05, 05]
+2442; [0C A8 D8, 05, 05]
-23C4; [0C A4 11, 05, 05]
+2443; [0C A8 DF, 05, 05]
-23C5; [0C A4 18, 05, 05]
+2444; [0C A8 E6, 05, 05]
-23C6; [0C A4 1F, 05, 05]
+2445; [0C A8 ED, 05, 05]
-23C7; [0C A4 26, 05, 05]
+2446; [0C A8 F4, 05, 05]
-23C8; [0C A4 2D, 05, 05]
+2447; [0C A8 FB, 05, 05]
-23C9; [0C A4 34, 05, 05]
+2448; [0C A9 04, 05, 05]
-23CA; [0C A4 3B, 05, 05]
+2449; [0C A9 0B, 05, 05]
-23CB; [0C A4 42, 05, 05]
+244A; [0C A9 12, 05, 05]
-23CC; [0C A4 49, 05, 05]
+2500; [0C A9 19, 05, 05]
-23CD; [0C A4 50, 05, 05]
+2501; [0C A9 20, 05, 05]
-23CE; [0C A4 57, 05, 05]
+2502; [0C AB, 05, 05]
+FFE8; [0C AB, 05, A0]
-23CF; [0C A4 5E, 05, 05]
+2503; [0C AD 02, 05, 05]
-23D0; [0C A4 65, 05, 05]
+2504; [0C AD 09, 05, 05]
-23D1; [0C A4 6C, 05, 05]
+2505; [0C AD 10, 05, 05]
-23D2; [0C A4 73, 05, 05]
+2506; [0C AD 17, 05, 05]
-23D3; [0C A4 7A, 05, 05]
+2507; [0C AD 1E, 05, 05]
-23D4; [0C A4 81, 05, 05]
+2508; [0C AD 25, 05, 05]
-23D5; [0C A4 88, 05, 05]
+2509; [0C AD 2C, 05, 05]
-23D6; [0C A4 8F, 05, 05]
+250A; [0C AD 33, 05, 05]
-23D7; [0C A4 96, 05, 05]
+250B; [0C AD 3A, 05, 05]
-23D8; [0C A4 9D, 05, 05]
+250C; [0C AD 41, 05, 05]
-23D9; [0C A4 A4, 05, 05]
+250D; [0C AD 48, 05, 05]
-23DA; [0C A4 AB, 05, 05]
+250E; [0C AD 4F, 05, 05]
-23DB; [0C A4 B2, 05, 05]
+250F; [0C AD 56, 05, 05]
-23DC; [0C A4 B9, 05, 05]
+2510; [0C AD 5D, 05, 05]
-23DD; [0C A4 C0, 05, 05]
+2511; [0C AD 64, 05, 05]
-23DE; [0C A4 C7, 05, 05]
+2512; [0C AD 6B, 05, 05]
-23DF; [0C A4 CE, 05, 05]
+2513; [0C AD 72, 05, 05]
-23E0; [0C A4 D5, 05, 05]
+2514; [0C AD 79, 05, 05]
-23E1; [0C A4 DC, 05, 05]
+2515; [0C AD 80, 05, 05]
-23E2; [0C A4 E3, 05, 05]
+2516; [0C AD 87, 05, 05]
-23E3; [0C A4 EA, 05, 05]
+2517; [0C AD 8E, 05, 05]
-23E4; [0C A4 F1, 05, 05]
+2518; [0C AD 95, 05, 05]
-23E5; [0C A4 F8, 05, 05]
+2519; [0C AD 9C, 05, 05]
-23E6; [0C A4 FF, 05, 05]
+251A; [0C AD A3, 05, 05]
-23E7; [0C A5 08, 05, 05]
+251B; [0C AD AA, 05, 05]
-23E8; [0C A5 0F, 05, 05]
+251C; [0C AD B1, 05, 05]
-23E9; [0C A5 16, 05, 05]
+251D; [0C AD B8, 05, 05]
-23EA; [0C A5 1D, 05, 05]
+251E; [0C AD BF, 05, 05]
-23EB; [0C A5 24, 05, 05]
+251F; [0C AD C6, 05, 05]
-23EC; [0C A5 2B, 05, 05]
+2520; [0C AD CD, 05, 05]
-23ED; [0C A5 32, 05, 05]
+2521; [0C AD D4, 05, 05]
-23EE; [0C A5 39, 05, 05]
+2522; [0C AD DB, 05, 05]
-23EF; [0C A5 40, 05, 05]
+2523; [0C AD E2, 05, 05]
-23F0; [0C A5 47, 05, 05]
+2524; [0C AD E9, 05, 05]
-23F1; [0C A5 4E, 05, 05]
+2525; [0C AD F0, 05, 05]
-23F2; [0C A5 55, 05, 05]
+2526; [0C AD F7, 05, 05]
-23F3; [0C A5 5C, 05, 05]
+2527; [0C AD FE, 05, 05]
-23F4; [0C A5 63, 05, 05]
+2528; [0C AE 07, 05, 05]
-23F5; [0C A5 6A, 05, 05]
+2529; [0C AE 0E, 05, 05]
-23F6; [0C A5 71, 05, 05]
+252A; [0C AE 15, 05, 05]
-23F7; [0C A5 78, 05, 05]
+252B; [0C AE 1C, 05, 05]
-23F8; [0C A5 7F, 05, 05]
+252C; [0C AE 23, 05, 05]
-23F9; [0C A5 86, 05, 05]
+252D; [0C AE 2A, 05, 05]
-23FA; [0C A5 8D, 05, 05]
+252E; [0C AE 31, 05, 05]
-23FB; [0C A5 94, 05, 05]
+252F; [0C AE 38, 05, 05]
-23FC; [0C A5 9B, 05, 05]
+2530; [0C AE 3F, 05, 05]
-23FD; [0C A5 A2, 05, 05]
+2531; [0C AE 46, 05, 05]
-23FE; [0C A5 A9, 05, 05]
+2532; [0C AE 4D, 05, 05]
-23FF; [0C A5 B0, 05, 05]
+2533; [0C AE 54, 05, 05]
-2400; [0C A5 B7, 05, 05]
+2534; [0C AE 5B, 05, 05]
-2401; [0C A5 BE, 05, 05]
+2535; [0C AE 62, 05, 05]
-2402; [0C A5 C5, 05, 05]
+2536; [0C AE 69, 05, 05]
-2403; [0C A5 CC, 05, 05]
+2537; [0C AE 70, 05, 05]
-2404; [0C A5 D3, 05, 05]
+2538; [0C AE 77, 05, 05]
-2405; [0C A5 DA, 05, 05]
+2539; [0C AE 7E, 05, 05]
-2406; [0C A5 E1, 05, 05]
+253A; [0C AE 85, 05, 05]
-2407; [0C A5 E8, 05, 05]
+253B; [0C AE 8C, 05, 05]
-2408; [0C A5 EF, 05, 05]
+253C; [0C AE 93, 05, 05]
-2409; [0C A5 F6, 05, 05]
+253D; [0C AE 9A, 05, 05]
-240A; [0C A5 FD, 05, 05]
+253E; [0C AE A1, 05, 05]
-240B; [0C A6 06, 05, 05]
+253F; [0C AE A8, 05, 05]
-240C; [0C A6 0D, 05, 05]
+2540; [0C AE AF, 05, 05]
-240D; [0C A6 14, 05, 05]
+2541; [0C AE B6, 05, 05]
-240E; [0C A6 1B, 05, 05]
+2542; [0C AE BD, 05, 05]
-240F; [0C A6 22, 05, 05]
+2543; [0C AE C4, 05, 05]
-2410; [0C A6 29, 05, 05]
+2544; [0C AE CB, 05, 05]
-2411; [0C A6 30, 05, 05]
+2545; [0C AE D2, 05, 05]
-2412; [0C A6 37, 05, 05]
+2546; [0C AE D9, 05, 05]
-2413; [0C A6 3E, 05, 05]
+2547; [0C AE E0, 05, 05]
-2414; [0C A6 45, 05, 05]
+2548; [0C AE E7, 05, 05]
-2415; [0C A6 4C, 05, 05]
+2549; [0C AE EE, 05, 05]
-2416; [0C A6 53, 05, 05]
+254A; [0C AE F5, 05, 05]
-2417; [0C A6 5A, 05, 05]
+254B; [0C AE FC, 05, 05]
-2418; [0C A6 61, 05, 05]
+254C; [0C AF 05, 05, 05]
-2419; [0C A6 68, 05, 05]
+254D; [0C AF 0C, 05, 05]
-241A; [0C A6 6F, 05, 05]
+254E; [0C AF 13, 05, 05]
-241B; [0C A6 76, 05, 05]
+254F; [0C AF 1A, 05, 05]
-241C; [0C A6 7D, 05, 05]
+2550; [0C AF 21, 05, 05]
-241D; [0C A6 84, 05, 05]
+2551; [0C AF 28, 05, 05]
-241E; [0C A6 8B, 05, 05]
+2552; [0C AF 2F, 05, 05]
-241F; [0C A6 92, 05, 05]
+2553; [0C AF 36, 05, 05]
-2420; [0C A6 99, 05, 05]
+2554; [0C AF 3D, 05, 05]
-2421; [0C A6 A0, 05, 05]
+2555; [0C AF 44, 05, 05]
-2422; [0C A6 A7, 05, 05]
+2556; [0C AF 4B, 05, 05]
-2423; [0C A6 AE, 05, 05]
+2557; [0C AF 52, 05, 05]
-2424; [0C A6 B5, 05, 05]
+2558; [0C AF 59, 05, 05]
-2425; [0C A6 BC, 05, 05]
+2559; [0C AF 60, 05, 05]
-2426; [0C A6 C3, 05, 05]
+255A; [0C AF 67, 05, 05]
-2440; [0C A6 CA, 05, 05]
+255B; [0C AF 6E, 05, 05]
-2441; [0C A6 D1, 05, 05]
+255C; [0C AF 75, 05, 05]
-2442; [0C A6 D8, 05, 05]
+255D; [0C AF 7C, 05, 05]
-2443; [0C A6 DF, 05, 05]
+255E; [0C AF 83, 05, 05]
-2444; [0C A6 E6, 05, 05]
+255F; [0C AF 8A, 05, 05]
-2445; [0C A6 ED, 05, 05]
+2560; [0C AF 91, 05, 05]
-2446; [0C A6 F4, 05, 05]
+2561; [0C AF 98, 05, 05]
-2447; [0C A6 FB, 05, 05]
+2562; [0C AF 9F, 05, 05]
-2448; [0C A7 04, 05, 05]
+2563; [0C AF A6, 05, 05]
-2449; [0C A7 0B, 05, 05]
+2564; [0C AF AD, 05, 05]
-244A; [0C A7 12, 05, 05]
+2565; [0C AF B4, 05, 05]
-2500; [0C A7 19, 05, 05]
+2566; [0C AF BB, 05, 05]
-2501; [0C A7 20, 05, 05]
+2567; [0C AF C2, 05, 05]
-2502; [0C A9, 05, 05]
-FFE8; [0C A9, 05, A0]
+2568; [0C AF C9, 05, 05]
-2503; [0C AB 02, 05, 05]
+2569; [0C AF D0, 05, 05]
-2504; [0C AB 09, 05, 05]
+256A; [0C AF D7, 05, 05]
-2505; [0C AB 10, 05, 05]
+256B; [0C AF DE, 05, 05]
-2506; [0C AB 17, 05, 05]
+256C; [0C AF E5, 05, 05]
-2507; [0C AB 1E, 05, 05]
+256D; [0C AF EC, 05, 05]
-2508; [0C AB 25, 05, 05]
+256E; [0C AF F3, 05, 05]
-2509; [0C AB 2C, 05, 05]
+256F; [0C AF FA, 05, 05]
-250A; [0C AB 33, 05, 05]
+2570; [0C B0 03, 05, 05]
-250B; [0C AB 3A, 05, 05]
+2571; [0C B0 0A, 05, 05]
-250C; [0C AB 41, 05, 05]
+2572; [0C B0 11, 05, 05]
-250D; [0C AB 48, 05, 05]
+2573; [0C B0 18, 05, 05]
-250E; [0C AB 4F, 05, 05]
+2574; [0C B0 1F, 05, 05]
-250F; [0C AB 56, 05, 05]
+2575; [0C B0 26, 05, 05]
-2510; [0C AB 5D, 05, 05]
+2576; [0C B0 2D, 05, 05]
-2511; [0C AB 64, 05, 05]
+2577; [0C B0 34, 05, 05]
-2512; [0C AB 6B, 05, 05]
+2578; [0C B0 3B, 05, 05]
-2513; [0C AB 72, 05, 05]
+2579; [0C B0 42, 05, 05]
-2514; [0C AB 79, 05, 05]
+257A; [0C B0 49, 05, 05]
-2515; [0C AB 80, 05, 05]
+257B; [0C B0 50, 05, 05]
-2516; [0C AB 87, 05, 05]
+257C; [0C B0 57, 05, 05]
-2517; [0C AB 8E, 05, 05]
+257D; [0C B0 5E, 05, 05]
-2518; [0C AB 95, 05, 05]
+257E; [0C B0 65, 05, 05]
-2519; [0C AB 9C, 05, 05]
+257F; [0C B0 6C, 05, 05]
-251A; [0C AB A3, 05, 05]
+2580; [0C B0 73, 05, 05]
-251B; [0C AB AA, 05, 05]
+2581; [0C B0 7A, 05, 05]
-251C; [0C AB B1, 05, 05]
+2582; [0C B0 81, 05, 05]
-251D; [0C AB B8, 05, 05]
+2583; [0C B0 88, 05, 05]
-251E; [0C AB BF, 05, 05]
+2584; [0C B0 8F, 05, 05]
-251F; [0C AB C6, 05, 05]
+2585; [0C B0 96, 05, 05]
-2520; [0C AB CD, 05, 05]
+2586; [0C B0 9D, 05, 05]
-2521; [0C AB D4, 05, 05]
+2587; [0C B0 A4, 05, 05]
-2522; [0C AB DB, 05, 05]
+2588; [0C B0 AB, 05, 05]
-2523; [0C AB E2, 05, 05]
+2589; [0C B0 B2, 05, 05]
-2524; [0C AB E9, 05, 05]
+258A; [0C B0 B9, 05, 05]
-2525; [0C AB F0, 05, 05]
+258B; [0C B0 C0, 05, 05]
-2526; [0C AB F7, 05, 05]
+258C; [0C B0 C7, 05, 05]
-2527; [0C AB FE, 05, 05]
+258D; [0C B0 CE, 05, 05]
-2528; [0C AC 07, 05, 05]
+258E; [0C B0 D5, 05, 05]
-2529; [0C AC 0E, 05, 05]
+258F; [0C B0 DC, 05, 05]
-252A; [0C AC 15, 05, 05]
+2590; [0C B0 E3, 05, 05]
-252B; [0C AC 1C, 05, 05]
+2591; [0C B0 EA, 05, 05]
-252C; [0C AC 23, 05, 05]
+2592; [0C B0 F1, 05, 05]
-252D; [0C AC 2A, 05, 05]
+2593; [0C B0 F8, 05, 05]
-252E; [0C AC 31, 05, 05]
+2594; [0C B0 FF, 05, 05]
-252F; [0C AC 38, 05, 05]
+2595; [0C B1 08, 05, 05]
-2530; [0C AC 3F, 05, 05]
+2596; [0C B1 0F, 05, 05]
-2531; [0C AC 46, 05, 05]
+2597; [0C B1 16, 05, 05]
-2532; [0C AC 4D, 05, 05]
+2598; [0C B1 1D, 05, 05]
-2533; [0C AC 54, 05, 05]
+2599; [0C B1 24, 05, 05]
-2534; [0C AC 5B, 05, 05]
+259A; [0C B1 2B, 05, 05]
-2535; [0C AC 62, 05, 05]
+259B; [0C B1 32, 05, 05]
-2536; [0C AC 69, 05, 05]
+259C; [0C B1 39, 05, 05]
-2537; [0C AC 70, 05, 05]
+259D; [0C B1 40, 05, 05]
-2538; [0C AC 77, 05, 05]
+259E; [0C B1 47, 05, 05]
-2539; [0C AC 7E, 05, 05]
+259F; [0C B1 4E, 05, 05]
-253A; [0C AC 85, 05, 05]
+25A0; [0C B3, 05, 05]
+FFED; [0C B3, 05, A0]
-253B; [0C AC 8C, 05, 05]
+25A1; [0C B5 02, 05, 05]
-253C; [0C AC 93, 05, 05]
+25A2; [0C B5 09, 05, 05]
-253D; [0C AC 9A, 05, 05]
+25A3; [0C B5 10, 05, 05]
-253E; [0C AC A1, 05, 05]
+25A4; [0C B5 17, 05, 05]
-253F; [0C AC A8, 05, 05]
+25A5; [0C B5 1E, 05, 05]
-2540; [0C AC AF, 05, 05]
+25A6; [0C B5 25, 05, 05]
-2541; [0C AC B6, 05, 05]
+25A7; [0C B5 2C, 05, 05]
-2542; [0C AC BD, 05, 05]
+25A8; [0C B5 33, 05, 05]
-2543; [0C AC C4, 05, 05]
+25A9; [0C B5 3A, 05, 05]
-2544; [0C AC CB, 05, 05]
+25AA; [0C B5 41, 05, 05]
-2545; [0C AC D2, 05, 05]
+25AB; [0C B5 48, 05, 05]
-2546; [0C AC D9, 05, 05]
+25AC; [0C B5 4F, 05, 05]
-2547; [0C AC E0, 05, 05]
+25AD; [0C B5 56, 05, 05]
-2548; [0C AC E7, 05, 05]
+25AE; [0C B5 5D, 05, 05]
-2549; [0C AC EE, 05, 05]
+25AF; [0C B5 64, 05, 05]
-254A; [0C AC F5, 05, 05]
+25B0; [0C B5 6B, 05, 05]
-254B; [0C AC FC, 05, 05]
+25B1; [0C B5 72, 05, 05]
-254C; [0C AD 05, 05, 05]
+25B2; [0C B5 79, 05, 05]
-254D; [0C AD 0C, 05, 05]
+25B3; [0C B5 80, 05, 05]
-254E; [0C AD 13, 05, 05]
+25B4; [0C B5 87, 05, 05]
-254F; [0C AD 1A, 05, 05]
+25B5; [0C B5 8E, 05, 05]
-2550; [0C AD 21, 05, 05]
+25B6; [0C B5 95, 05, 05]
-2551; [0C AD 28, 05, 05]
+25B7; [0C B5 9C, 05, 05]
-2552; [0C AD 2F, 05, 05]
+25B8; [0C B5 A3, 05, 05]
-2553; [0C AD 36, 05, 05]
+25B9; [0C B5 AA, 05, 05]
-2554; [0C AD 3D, 05, 05]
+25BA; [0C B5 B1, 05, 05]
-2555; [0C AD 44, 05, 05]
+25BB; [0C B5 B8, 05, 05]
-2556; [0C AD 4B, 05, 05]
+25BC; [0C B5 BF, 05, 05]
-2557; [0C AD 52, 05, 05]
+25BD; [0C B5 C6, 05, 05]
-2558; [0C AD 59, 05, 05]
+25BE; [0C B5 CD, 05, 05]
-2559; [0C AD 60, 05, 05]
+25BF; [0C B5 D4, 05, 05]
-255A; [0C AD 67, 05, 05]
+25C0; [0C B5 DB, 05, 05]
-255B; [0C AD 6E, 05, 05]
+25C1; [0C B5 E2, 05, 05]
-255C; [0C AD 75, 05, 05]
+25C2; [0C B5 E9, 05, 05]
-255D; [0C AD 7C, 05, 05]
+25C3; [0C B5 F0, 05, 05]
-255E; [0C AD 83, 05, 05]
+25C4; [0C B5 F7, 05, 05]
-255F; [0C AD 8A, 05, 05]
+25C5; [0C B5 FE, 05, 05]
-2560; [0C AD 91, 05, 05]
+25C6; [0C B6 07, 05, 05]
-2561; [0C AD 98, 05, 05]
+25C7; [0C B6 0E, 05, 05]
-2562; [0C AD 9F, 05, 05]
+25C8; [0C B6 15, 05, 05]
-2563; [0C AD A6, 05, 05]
+25C9; [0C B6 1C, 05, 05]
-2564; [0C AD AD, 05, 05]
+25CA; [0C B6 23, 05, 05]
-2565; [0C AD B4, 05, 05]
+25CB; [0C B8, 05, 05]
+FFEE; [0C B8, 05, A0]
-2566; [0C AD BB, 05, 05]
+25CC; [0C BA 02, 05, 05]
-2567; [0C AD C2, 05, 05]
+25CD; [0C BA 09, 05, 05]
-2568; [0C AD C9, 05, 05]
+25CE; [0C BA 10, 05, 05]
-2569; [0C AD D0, 05, 05]
+25CF; [0C BA 17, 05, 05]
-256A; [0C AD D7, 05, 05]
+25D0; [0C BA 1E, 05, 05]
-256B; [0C AD DE, 05, 05]
+25D1; [0C BA 25, 05, 05]
-256C; [0C AD E5, 05, 05]
+25D2; [0C BA 2C, 05, 05]
-256D; [0C AD EC, 05, 05]
+25D3; [0C BA 33, 05, 05]
-256E; [0C AD F3, 05, 05]
+25D4; [0C BA 3A, 05, 05]
-256F; [0C AD FA, 05, 05]
+25D5; [0C BA 41, 05, 05]
-2570; [0C AE 03, 05, 05]
+25D6; [0C BA 48, 05, 05]
-2571; [0C AE 0A, 05, 05]
+25D7; [0C BA 4F, 05, 05]
-2572; [0C AE 11, 05, 05]
+25D8; [0C BA 56, 05, 05]
-2573; [0C AE 18, 05, 05]
+25D9; [0C BA 5D, 05, 05]
-2574; [0C AE 1F, 05, 05]
+25DA; [0C BA 64, 05, 05]
-2575; [0C AE 26, 05, 05]
+25DB; [0C BA 6B, 05, 05]
-2576; [0C AE 2D, 05, 05]
+25DC; [0C BA 72, 05, 05]
-2577; [0C AE 34, 05, 05]
+25DD; [0C BA 79, 05, 05]
-2578; [0C AE 3B, 05, 05]
+25DE; [0C BA 80, 05, 05]
-2579; [0C AE 42, 05, 05]
+25DF; [0C BA 87, 05, 05]
-257A; [0C AE 49, 05, 05]
+25E0; [0C BA 8E, 05, 05]
-257B; [0C AE 50, 05, 05]
+25E1; [0C BA 95, 05, 05]
-257C; [0C AE 57, 05, 05]
+25E2; [0C BA 9C, 05, 05]
-257D; [0C AE 5E, 05, 05]
+25E3; [0C BA A3, 05, 05]
-257E; [0C AE 65, 05, 05]
+25E4; [0C BA AA, 05, 05]
-257F; [0C AE 6C, 05, 05]
+25E5; [0C BA B1, 05, 05]
-2580; [0C AE 73, 05, 05]
+25E6; [0C BA B8, 05, 05]
-2581; [0C AE 7A, 05, 05]
+25E7; [0C BA BF, 05, 05]
-2582; [0C AE 81, 05, 05]
+25E8; [0C BA C6, 05, 05]
-2583; [0C AE 88, 05, 05]
+25E9; [0C BA CD, 05, 05]
-2584; [0C AE 8F, 05, 05]
+25EA; [0C BA D4, 05, 05]
-2585; [0C AE 96, 05, 05]
+25EB; [0C BA DB, 05, 05]
-2586; [0C AE 9D, 05, 05]
+25EC; [0C BA E2, 05, 05]
-2587; [0C AE A4, 05, 05]
+25ED; [0C BA E9, 05, 05]
-2588; [0C AE AB, 05, 05]
+25EE; [0C BA F0, 05, 05]
-2589; [0C AE B2, 05, 05]
+25EF; [0C BA F7, 05, 05]
-258A; [0C AE B9, 05, 05]
+25F0; [0C BA FE, 05, 05]
-258B; [0C AE C0, 05, 05]
+25F1; [0C BB 07, 05, 05]
-258C; [0C AE C7, 05, 05]
+25F2; [0C BB 0E, 05, 05]
-258D; [0C AE CE, 05, 05]
+25F3; [0C BB 15, 05, 05]
-258E; [0C AE D5, 05, 05]
+25F4; [0C BB 1C, 05, 05]
-258F; [0C AE DC, 05, 05]
+25F5; [0C BB 23, 05, 05]
-2590; [0C AE E3, 05, 05]
+25F6; [0C BB 2A, 05, 05]
-2591; [0C AE EA, 05, 05]
+25F7; [0C BB 31, 05, 05]
-2592; [0C AE F1, 05, 05]
+25F8; [0C BB 38, 05, 05]
-2593; [0C AE F8, 05, 05]
+25F9; [0C BB 3F, 05, 05]
-2594; [0C AE FF, 05, 05]
+25FA; [0C BB 46, 05, 05]
-2595; [0C AF 08, 05, 05]
+25FB; [0C BB 4D, 05, 05]
-2596; [0C AF 0F, 05, 05]
+25FC; [0C BB 54, 05, 05]
-2597; [0C AF 16, 05, 05]
+25FD; [0C BB 5B, 05, 05]
-2598; [0C AF 1D, 05, 05]
+25FE; [0C BB 62, 05, 05]
-2599; [0C AF 24, 05, 05]
+25FF; [0C BB 69, 05, 05]
-259A; [0C AF 2B, 05, 05]
+2600; [0C BB 70, 05, 05]
-259B; [0C AF 32, 05, 05]
+2601; [0C BB 77, 05, 05]
-259C; [0C AF 39, 05, 05]
+2602; [0C BB 7E, 05, 05]
-259D; [0C AF 40, 05, 05]
+2603; [0C BB 85, 05, 05]
-259E; [0C AF 47, 05, 05]
+2604; [0C BB 8C, 05, 05]
-259F; [0C AF 4E, 05, 05]
+2605; [0C BB 93, 05, 05]
-25A0; [0C B1, 05, 05]
-FFED; [0C B1, 05, A0]
+2606; [0C BB 9A, 05, 05]
-25A1; [0C B3 02, 05, 05]
+2607; [0C BB A1, 05, 05]
-25A2; [0C B3 09, 05, 05]
+2608; [0C BB A8, 05, 05]
-25A3; [0C B3 10, 05, 05]
+2609; [0C BB AF, 05, 05]
-25A4; [0C B3 17, 05, 05]
+260A; [0C BB B6, 05, 05]
-25A5; [0C B3 1E, 05, 05]
+260B; [0C BB BD, 05, 05]
-25A6; [0C B3 25, 05, 05]
+260C; [0C BB C4, 05, 05]
-25A7; [0C B3 2C, 05, 05]
+260D; [0C BB CB, 05, 05]
-25A8; [0C B3 33, 05, 05]
+260E; [0C BB D2, 05, 05]
-25A9; [0C B3 3A, 05, 05]
+260F; [0C BB D9, 05, 05]
-25AA; [0C B3 41, 05, 05]
+2610; [0C BB E0, 05, 05]
-25AB; [0C B3 48, 05, 05]
+2611; [0C BB E7, 05, 05]
-25AC; [0C B3 4F, 05, 05]
+2612; [0C BB EE, 05, 05]
-25AD; [0C B3 56, 05, 05]
+2613; [0C BB F5, 05, 05]
-25AE; [0C B3 5D, 05, 05]
+2614; [0C BB FC, 05, 05]
-25AF; [0C B3 64, 05, 05]
+2615; [0C BC 05, 05, 05]
-25B0; [0C B3 6B, 05, 05]
+2616; [0C BC 0C, 05, 05]
-25B1; [0C B3 72, 05, 05]
+2617; [0C BC 13, 05, 05]
-25B2; [0C B3 79, 05, 05]
+2618; [0C BC 1A, 05, 05]
-25B3; [0C B3 80, 05, 05]
+2619; [0C BC 21, 05, 05]
-25B4; [0C B3 87, 05, 05]
+261A; [0C BC 28, 05, 05]
-25B5; [0C B3 8E, 05, 05]
+261B; [0C BC 2F, 05, 05]
-25B6; [0C B3 95, 05, 05]
+261C; [0C BC 36, 05, 05]
-25B7; [0C B3 9C, 05, 05]
+261D; [0C BC 3D, 05, 05]
-25B8; [0C B3 A3, 05, 05]
+261E; [0C BC 44, 05, 05]
-25B9; [0C B3 AA, 05, 05]
+261F; [0C BC 4B, 05, 05]
-25BA; [0C B3 B1, 05, 05]
+2620; [0C BC 52, 05, 05]
-25BB; [0C B3 B8, 05, 05]
+2621; [0C BC 59, 05, 05]
-25BC; [0C B3 BF, 05, 05]
+2622; [0C BC 60, 05, 05]
-25BD; [0C B3 C6, 05, 05]
+2623; [0C BC 67, 05, 05]
-25BE; [0C B3 CD, 05, 05]
+2624; [0C BC 6E, 05, 05]
-25BF; [0C B3 D4, 05, 05]
+2625; [0C BC 75, 05, 05]
-25C0; [0C B3 DB, 05, 05]
+2626; [0C BC 7C, 05, 05]
-25C1; [0C B3 E2, 05, 05]
+2627; [0C BC 83, 05, 05]
-25C2; [0C B3 E9, 05, 05]
+2628; [0C BC 8A, 05, 05]
-25C3; [0C B3 F0, 05, 05]
+2629; [0C BC 91, 05, 05]
-25C4; [0C B3 F7, 05, 05]
+262A; [0C BC 98, 05, 05]
-25C5; [0C B3 FE, 05, 05]
+262B; [0C BC 9F, 05, 05]
-25C6; [0C B4 07, 05, 05]
+262C; [0C BC A6, 05, 05]
-25C7; [0C B4 0E, 05, 05]
+262D; [0C BC AD, 05, 05]
-25C8; [0C B4 15, 05, 05]
+262E; [0C BC B4, 05, 05]
-25C9; [0C B4 1C, 05, 05]
+262F; [0C BC BB, 05, 05]
-25CA; [0C B4 23, 05, 05]
+2638; [0C BC C2, 05, 05]
-25CB; [0C B6, 05, 05]
-FFEE; [0C B6, 05, A0]
+2639; [0C BC C9, 05, 05]
-25CC; [0C B8 02, 05, 05]
+263A; [0C BC D0, 05, 05]
-25CD; [0C B8 09, 05, 05]
+263B; [0C BC D7, 05, 05]
-25CE; [0C B8 10, 05, 05]
+263C; [0C BC DE, 05, 05]
-25CF; [0C B8 17, 05, 05]
+263D; [0C BC E5, 05, 05]
-25D0; [0C B8 1E, 05, 05]
+263E; [0C BC EC, 05, 05]
-25D1; [0C B8 25, 05, 05]
+263F; [0C BC F3, 05, 05]
-25D2; [0C B8 2C, 05, 05]
+2640; [0C BC FA, 05, 05]
-25D3; [0C B8 33, 05, 05]
+2641; [0C BD 03, 05, 05]
-25D4; [0C B8 3A, 05, 05]
+2642; [0C BD 0A, 05, 05]
-25D5; [0C B8 41, 05, 05]
+2643; [0C BD 11, 05, 05]
-25D6; [0C B8 48, 05, 05]
+2644; [0C BD 18, 05, 05]
-25D7; [0C B8 4F, 05, 05]
+2645; [0C BD 1F, 05, 05]
-25D8; [0C B8 56, 05, 05]
+2646; [0C BD 26, 05, 05]
-25D9; [0C B8 5D, 05, 05]
+2647; [0C BD 2D, 05, 05]
-25DA; [0C B8 64, 05, 05]
+2648; [0C BD 34, 05, 05]
-25DB; [0C B8 6B, 05, 05]
+2649; [0C BD 3B, 05, 05]
-25DC; [0C B8 72, 05, 05]
+264A; [0C BD 42, 05, 05]
-25DD; [0C B8 79, 05, 05]
+264B; [0C BD 49, 05, 05]
-25DE; [0C B8 80, 05, 05]
+264C; [0C BD 50, 05, 05]
-25DF; [0C B8 87, 05, 05]
+264D; [0C BD 57, 05, 05]
-25E0; [0C B8 8E, 05, 05]
+264E; [0C BD 5E, 05, 05]
-25E1; [0C B8 95, 05, 05]
+264F; [0C BD 65, 05, 05]
-25E2; [0C B8 9C, 05, 05]
+2650; [0C BD 6C, 05, 05]
-25E3; [0C B8 A3, 05, 05]
+2651; [0C BD 73, 05, 05]
-25E4; [0C B8 AA, 05, 05]
+2652; [0C BD 7A, 05, 05]
-25E5; [0C B8 B1, 05, 05]
+2653; [0C BD 81, 05, 05]
-25E6; [0C B8 B8, 05, 05]
+2654; [0C BD 88, 05, 05]
-25E7; [0C B8 BF, 05, 05]
+2655; [0C BD 8F, 05, 05]
-25E8; [0C B8 C6, 05, 05]
+2656; [0C BD 96, 05, 05]
-25E9; [0C B8 CD, 05, 05]
+2657; [0C BD 9D, 05, 05]
-25EA; [0C B8 D4, 05, 05]
+2658; [0C BD A4, 05, 05]
-25EB; [0C B8 DB, 05, 05]
+2659; [0C BD AB, 05, 05]
-25EC; [0C B8 E2, 05, 05]
+265A; [0C BD B2, 05, 05]
-25ED; [0C B8 E9, 05, 05]
+265B; [0C BD B9, 05, 05]
-25EE; [0C B8 F0, 05, 05]
+265C; [0C BD C0, 05, 05]
-25EF; [0C B8 F7, 05, 05]
+265D; [0C BD C7, 05, 05]
-25F0; [0C B8 FE, 05, 05]
+265E; [0C BD CE, 05, 05]
-25F1; [0C B9 07, 05, 05]
+265F; [0C BD D5, 05, 05]
-25F2; [0C B9 0E, 05, 05]
+2660; [0C BD DC, 05, 05]
-25F3; [0C B9 15, 05, 05]
+2661; [0C BD E3, 05, 05]
-25F4; [0C B9 1C, 05, 05]
+2662; [0C BD EA, 05, 05]
-25F5; [0C B9 23, 05, 05]
+2663; [0C BD F1, 05, 05]
-25F6; [0C B9 2A, 05, 05]
+2664; [0C BD F8, 05, 05]
-25F7; [0C B9 31, 05, 05]
+2665; [0C BD FF, 05, 05]
-25F8; [0C B9 38, 05, 05]
+2666; [0C BE 08, 05, 05]
-25F9; [0C B9 3F, 05, 05]
+2667; [0C BE 0F, 05, 05]
-25FA; [0C B9 46, 05, 05]
+2668; [0C BE 16, 05, 05]
-25FB; [0C B9 4D, 05, 05]
+2669; [0C BE 1D, 05, 05]
-25FC; [0C B9 54, 05, 05]
+266A; [0C BE 24, 05, 05]
-25FD; [0C B9 5B, 05, 05]
+266B; [0C BE 2B, 05, 05]
-25FE; [0C B9 62, 05, 05]
+266C; [0C BE 32, 05, 05]
-25FF; [0C B9 69, 05, 05]
+2670; [0C BE 39, 05, 05]
-2600; [0C B9 70, 05, 05]
+2671; [0C BE 40, 05, 05]
-2601; [0C B9 77, 05, 05]
+2672; [0C BE 47, 05, 05]
-2602; [0C B9 7E, 05, 05]
+2673; [0C BE 4E, 05, 05]
-2603; [0C B9 85, 05, 05]
+2674; [0C BE 55, 05, 05]
-2604; [0C B9 8C, 05, 05]
+2675; [0C BE 5C, 05, 05]
-2605; [0C B9 93, 05, 05]
+2676; [0C BE 63, 05, 05]
-2606; [0C B9 9A, 05, 05]
+2677; [0C BE 6A, 05, 05]
-2607; [0C B9 A1, 05, 05]
+2678; [0C BE 71, 05, 05]
-2608; [0C B9 A8, 05, 05]
+2679; [0C BE 78, 05, 05]
-2609; [0C B9 AF, 05, 05]
+267A; [0C BE 7F, 05, 05]
-260A; [0C B9 B6, 05, 05]
+267B; [0C BE 86, 05, 05]
-260B; [0C B9 BD, 05, 05]
+267C; [0C BE 8D, 05, 05]
-260C; [0C B9 C4, 05, 05]
+267D; [0C BE 94, 05, 05]
-260D; [0C B9 CB, 05, 05]
+267E; [0C BE 9B, 05, 05]
-260E; [0C B9 D2, 05, 05]
+267F; [0C BE A2, 05, 05]
-260F; [0C B9 D9, 05, 05]
+2680; [0C BE A9, 05, 05]
-2610; [0C B9 E0, 05, 05]
+2681; [0C BE B0, 05, 05]
-2611; [0C B9 E7, 05, 05]
+2682; [0C BE B7, 05, 05]
-2612; [0C B9 EE, 05, 05]
+2683; [0C BE BE, 05, 05]
-2613; [0C B9 F5, 05, 05]
+2684; [0C BE C5, 05, 05]
-2614; [0C B9 FC, 05, 05]
+2685; [0C BE CC, 05, 05]
-2615; [0C BA 05, 05, 05]
+2686; [0C BE D3, 05, 05]
-2616; [0C BA 0C, 05, 05]
+2687; [0C BE DA, 05, 05]
-2617; [0C BA 13, 05, 05]
+2688; [0C BE E1, 05, 05]
-2618; [0C BA 1A, 05, 05]
+2689; [0C BE E8, 05, 05]
-2619; [0C BA 21, 05, 05]
+2690; [0C BE EF, 05, 05]
-261A; [0C BA 28, 05, 05]
+2691; [0C BE F6, 05, 05]
-261B; [0C BA 2F, 05, 05]
+2692; [0C BE FD, 05, 05]
-261C; [0C BA 36, 05, 05]
+2693; [0C BF 06, 05, 05]
-261D; [0C BA 3D, 05, 05]
+2694; [0C BF 0D, 05, 05]
-261E; [0C BA 44, 05, 05]
+2695; [0C BF 14, 05, 05]
-261F; [0C BA 4B, 05, 05]
+2696; [0C BF 1B, 05, 05]
-2620; [0C BA 52, 05, 05]
+2697; [0C BF 22, 05, 05]
-2621; [0C BA 59, 05, 05]
+2698; [0C BF 29, 05, 05]
-2622; [0C BA 60, 05, 05]
+2699; [0C BF 30, 05, 05]
-2623; [0C BA 67, 05, 05]
+269A; [0C BF 37, 05, 05]
-2624; [0C BA 6E, 05, 05]
+269B; [0C BF 3E, 05, 05]
-2625; [0C BA 75, 05, 05]
+269C; [0C BF 45, 05, 05]
-2626; [0C BA 7C, 05, 05]
+269D; [0C BF 4C, 05, 05]
-2627; [0C BA 83, 05, 05]
+269E; [0C BF 53, 05, 05]
-2628; [0C BA 8A, 05, 05]
+269F; [0C BF 5A, 05, 05]
-2629; [0C BA 91, 05, 05]
+26A0; [0C BF 61, 05, 05]
-262A; [0C BA 98, 05, 05]
+26A1; [0C BF 68, 05, 05]
-262B; [0C BA 9F, 05, 05]
+26A2; [0C BF 6F, 05, 05]
-262C; [0C BA A6, 05, 05]
+26A3; [0C BF 76, 05, 05]
-262D; [0C BA AD, 05, 05]
+26A4; [0C BF 7D, 05, 05]
-262E; [0C BA B4, 05, 05]
+26A5; [0C BF 84, 05, 05]
-262F; [0C BA BB, 05, 05]
+26A6; [0C BF 8B, 05, 05]
-2638; [0C BA C2, 05, 05]
+26A7; [0C BF 92, 05, 05]
-2639; [0C BA C9, 05, 05]
+26A8; [0C BF 99, 05, 05]
-263A; [0C BA D0, 05, 05]
+26A9; [0C BF A0, 05, 05]
-263B; [0C BA D7, 05, 05]
+26AA; [0C BF A7, 05, 05]
-263C; [0C BA DE, 05, 05]
+26AB; [0C BF AE, 05, 05]
-263D; [0C BA E5, 05, 05]
+26AC; [0C BF B5, 05, 05]
-263E; [0C BA EC, 05, 05]
+26AD; [0C BF BC, 05, 05]
-263F; [0C BA F3, 05, 05]
+26AE; [0C BF C3, 05, 05]
-2640; [0C BA FA, 05, 05]
+26AF; [0C BF CA, 05, 05]
-2641; [0C BB 03, 05, 05]
+26B0; [0C BF D1, 05, 05]
-2642; [0C BB 0A, 05, 05]
+26B1; [0C BF D8, 05, 05]
-2643; [0C BB 11, 05, 05]
+26B2; [0C BF DF, 05, 05]
-2644; [0C BB 18, 05, 05]
+26B3; [0C BF E6, 05, 05]
-2645; [0C BB 1F, 05, 05]
+26B4; [0C BF ED, 05, 05]
-2646; [0C BB 26, 05, 05]
+26B5; [0C BF F4, 05, 05]
-2647; [0C BB 2D, 05, 05]
+26B6; [0C BF FB, 05, 05]
-2648; [0C BB 34, 05, 05]
+26B7; [0C C0 04, 05, 05]
-2649; [0C BB 3B, 05, 05]
+26B8; [0C C0 0B, 05, 05]
-264A; [0C BB 42, 05, 05]
+26B9; [0C C0 12, 05, 05]
-264B; [0C BB 49, 05, 05]
+26BA; [0C C0 19, 05, 05]
-264C; [0C BB 50, 05, 05]
+26BB; [0C C0 20, 05, 05]
-264D; [0C BB 57, 05, 05]
+26BC; [0C C0 27, 05, 05]
-264E; [0C BB 5E, 05, 05]
+26BD; [0C C0 2E, 05, 05]
-264F; [0C BB 65, 05, 05]
+26BE; [0C C0 35, 05, 05]
-2650; [0C BB 6C, 05, 05]
+26BF; [0C C0 3C, 05, 05]
-2651; [0C BB 73, 05, 05]
+26C0; [0C C0 43, 05, 05]
-2652; [0C BB 7A, 05, 05]
+26C1; [0C C0 4A, 05, 05]
-2653; [0C BB 81, 05, 05]
+26C2; [0C C0 51, 05, 05]
-2654; [0C BB 88, 05, 05]
+26C3; [0C C0 58, 05, 05]
-2655; [0C BB 8F, 05, 05]
+26C4; [0C C0 5F, 05, 05]
-2656; [0C BB 96, 05, 05]
+26C5; [0C C0 66, 05, 05]
-2657; [0C BB 9D, 05, 05]
+26C6; [0C C0 6D, 05, 05]
-2658; [0C BB A4, 05, 05]
+26C7; [0C C0 74, 05, 05]
-2659; [0C BB AB, 05, 05]
+26C8; [0C C0 7B, 05, 05]
-265A; [0C BB B2, 05, 05]
+26C9; [0C C0 82, 05, 05]
-265B; [0C BB B9, 05, 05]
+26CA; [0C C0 89, 05, 05]
-265C; [0C BB C0, 05, 05]
+26CB; [0C C0 90, 05, 05]
-265D; [0C BB C7, 05, 05]
+26CC; [0C C0 97, 05, 05]
-265E; [0C BB CE, 05, 05]
+26CD; [0C C0 9E, 05, 05]
-265F; [0C BB D5, 05, 05]
+26CE; [0C C0 A5, 05, 05]
-2660; [0C BB DC, 05, 05]
+26CF; [0C C0 AC, 05, 05]
-2661; [0C BB E3, 05, 05]
+26D0; [0C C0 B3, 05, 05]
-2662; [0C BB EA, 05, 05]
+26D1; [0C C0 BA, 05, 05]
-2663; [0C BB F1, 05, 05]
+26D2; [0C C0 C1, 05, 05]
-2664; [0C BB F8, 05, 05]
+26D3; [0C C0 C8, 05, 05]
-2665; [0C BB FF, 05, 05]
+26D4; [0C C0 CF, 05, 05]
-2666; [0C BC 08, 05, 05]
+26D5; [0C C0 D6, 05, 05]
-2667; [0C BC 0F, 05, 05]
+26D6; [0C C0 DD, 05, 05]
-2668; [0C BC 16, 05, 05]
+26D7; [0C C0 E4, 05, 05]
-2669; [0C BC 1D, 05, 05]
+26D8; [0C C0 EB, 05, 05]
-266A; [0C BC 24, 05, 05]
+26D9; [0C C0 F2, 05, 05]
-266B; [0C BC 2B, 05, 05]
+26DA; [0C C0 F9, 05, 05]
-266C; [0C BC 32, 05, 05]
+26DB; [0C C1 02, 05, 05]
-2670; [0C BC 39, 05, 05]
+26DC; [0C C1 09, 05, 05]
-2671; [0C BC 40, 05, 05]
+26DD; [0C C1 10, 05, 05]
-2672; [0C BC 47, 05, 05]
+26DE; [0C C1 17, 05, 05]
-2673; [0C BC 4E, 05, 05]
+26DF; [0C C1 1E, 05, 05]
-2674; [0C BC 55, 05, 05]
+26E0; [0C C1 25, 05, 05]
-2675; [0C BC 5C, 05, 05]
+26E1; [0C C1 2C, 05, 05]
-2676; [0C BC 63, 05, 05]
+26E2; [0C C1 33, 05, 05]
-2677; [0C BC 6A, 05, 05]
+26E3; [0C C1 3A, 05, 05]
-2678; [0C BC 71, 05, 05]
+26E4; [0C C1 41, 05, 05]
-2679; [0C BC 78, 05, 05]
+26E5; [0C C1 48, 05, 05]
-267A; [0C BC 7F, 05, 05]
+26E6; [0C C1 4F, 05, 05]
-267B; [0C BC 86, 05, 05]
+26E7; [0C C1 56, 05, 05]
-267C; [0C BC 8D, 05, 05]
+26E8; [0C C1 5D, 05, 05]
-267D; [0C BC 94, 05, 05]
+26E9; [0C C1 64, 05, 05]
-267E; [0C BC 9B, 05, 05]
+26EA; [0C C1 6B, 05, 05]
-267F; [0C BC A2, 05, 05]
+26EB; [0C C1 72, 05, 05]
-2680; [0C BC A9, 05, 05]
+26EC; [0C C1 79, 05, 05]
-2681; [0C BC B0, 05, 05]
+26ED; [0C C1 80, 05, 05]
-2682; [0C BC B7, 05, 05]
+26EE; [0C C1 87, 05, 05]
-2683; [0C BC BE, 05, 05]
+26EF; [0C C1 8E, 05, 05]
-2684; [0C BC C5, 05, 05]
+26F0; [0C C1 95, 05, 05]
-2685; [0C BC CC, 05, 05]
+26F1; [0C C1 9C, 05, 05]
-2686; [0C BC D3, 05, 05]
+26F2; [0C C1 A3, 05, 05]
-2687; [0C BC DA, 05, 05]
+26F3; [0C C1 AA, 05, 05]
-2688; [0C BC E1, 05, 05]
+26F4; [0C C1 B1, 05, 05]
-2689; [0C BC E8, 05, 05]
+26F5; [0C C1 B8, 05, 05]
-2690; [0C BC EF, 05, 05]
+26F6; [0C C1 BF, 05, 05]
-2691; [0C BC F6, 05, 05]
+26F7; [0C C1 C6, 05, 05]
-2692; [0C BC FD, 05, 05]
+26F8; [0C C1 CD, 05, 05]
-2693; [0C BD 06, 05, 05]
+26F9; [0C C1 D4, 05, 05]
-2694; [0C BD 0D, 05, 05]
+26FA; [0C C1 DB, 05, 05]
-2695; [0C BD 14, 05, 05]
+26FB; [0C C1 E2, 05, 05]
-2696; [0C BD 1B, 05, 05]
+26FC; [0C C1 E9, 05, 05]
-2697; [0C BD 22, 05, 05]
+26FD; [0C C1 F0, 05, 05]
-2698; [0C BD 29, 05, 05]
+26FE; [0C C1 F7, 05, 05]
-2699; [0C BD 30, 05, 05]
+26FF; [0C C1 FE, 05, 05]
-269A; [0C BD 37, 05, 05]
+1F1E6; [0C C2 07, 05, 05]
-269B; [0C BD 3E, 05, 05]
+1F1E7; [0C C2 0E, 05, 05]
-269C; [0C BD 45, 05, 05]
+1F1E8; [0C C2 15, 05, 05]
-269D; [0C BD 4C, 05, 05]
+1F1E9; [0C C2 1C, 05, 05]
-269E; [0C BD 53, 05, 05]
+1F1EA; [0C C2 23, 05, 05]
-269F; [0C BD 5A, 05, 05]
+1F1EB; [0C C2 2A, 05, 05]
-26A0; [0C BD 61, 05, 05]
+1F1EC; [0C C2 31, 05, 05]
-26A1; [0C BD 68, 05, 05]
+1F1ED; [0C C2 38, 05, 05]
-26A2; [0C BD 6F, 05, 05]
+1F1EE; [0C C2 3F, 05, 05]
-26A3; [0C BD 76, 05, 05]
+1F1EF; [0C C2 46, 05, 05]
-26A4; [0C BD 7D, 05, 05]
+1F1F0; [0C C2 4D, 05, 05]
-26A5; [0C BD 84, 05, 05]
+1F1F1; [0C C2 54, 05, 05]
-26A6; [0C BD 8B, 05, 05]
+1F1F2; [0C C2 5B, 05, 05]
-26A7; [0C BD 92, 05, 05]
+1F1F3; [0C C2 62, 05, 05]
-26A8; [0C BD 99, 05, 05]
+1F1F4; [0C C2 69, 05, 05]
-26A9; [0C BD A0, 05, 05]
+1F1F5; [0C C2 70, 05, 05]
-26AA; [0C BD A7, 05, 05]
+1F1F6; [0C C2 77, 05, 05]
-26AB; [0C BD AE, 05, 05]
+1F1F7; [0C C2 7E, 05, 05]
-26AC; [0C BD B5, 05, 05]
+1F1F8; [0C C2 85, 05, 05]
-26AD; [0C BD BC, 05, 05]
+1F1F9; [0C C2 8C, 05, 05]
-26AE; [0C BD C3, 05, 05]
+1F1FA; [0C C2 93, 05, 05]
-26AF; [0C BD CA, 05, 05]
+1F1FB; [0C C2 9A, 05, 05]
-26B0; [0C BD D1, 05, 05]
+1F1FC; [0C C2 A1, 05, 05]
-26B1; [0C BD D8, 05, 05]
+1F1FD; [0C C2 A8, 05, 05]
-26B2; [0C BD DF, 05, 05]
+1F1FE; [0C C2 AF, 05, 05]
-26B3; [0C BD E6, 05, 05]
+1F1FF; [0C C2 B6, 05, 05]
-26B4; [0C BD ED, 05, 05]
+2700; [0C C2 BD, 05, 05]
-26B5; [0C BD F4, 05, 05]
+2701; [0C C2 C4, 05, 05]
-26B6; [0C BD FB, 05, 05]
+2702; [0C C2 CB, 05, 05]
-26B7; [0C BE 04, 05, 05]
+2703; [0C C2 D2, 05, 05]
-26B8; [0C BE 0B, 05, 05]
+2704; [0C C2 D9, 05, 05]
-26B9; [0C BE 12, 05, 05]
+2705; [0C C2 E0, 05, 05]
-26BA; [0C BE 19, 05, 05]
+2706; [0C C2 E7, 05, 05]
-26BB; [0C BE 20, 05, 05]
+2707; [0C C2 EE, 05, 05]
-26BC; [0C BE 27, 05, 05]
+2708; [0C C2 F5, 05, 05]
-26BD; [0C BE 2E, 05, 05]
+2709; [0C C2 FC, 05, 05]
-26BE; [0C BE 35, 05, 05]
+270A; [0C C3 05, 05, 05]
-26BF; [0C BE 3C, 05, 05]
+270B; [0C C3 0C, 05, 05]
-26C0; [0C BE 43, 05, 05]
+270C; [0C C3 13, 05, 05]
-26C1; [0C BE 4A, 05, 05]
+270D; [0C C3 1A, 05, 05]
-26C2; [0C BE 51, 05, 05]
+270E; [0C C3 21, 05, 05]
-26C3; [0C BE 58, 05, 05]
+270F; [0C C3 28, 05, 05]
-26C4; [0C BE 5F, 05, 05]
+2710; [0C C3 2F, 05, 05]
-26C5; [0C BE 66, 05, 05]
+2711; [0C C3 36, 05, 05]
-26C6; [0C BE 6D, 05, 05]
+2712; [0C C3 3D, 05, 05]
-26C7; [0C BE 74, 05, 05]
+2713; [0C C3 44, 05, 05]
-26C8; [0C BE 7B, 05, 05]
+2714; [0C C3 4B, 05, 05]
-26C9; [0C BE 82, 05, 05]
+2715; [0C C3 52, 05, 05]
-26CA; [0C BE 89, 05, 05]
+2716; [0C C3 59, 05, 05]
-26CB; [0C BE 90, 05, 05]
+2717; [0C C3 60, 05, 05]
-26CC; [0C BE 97, 05, 05]
+2718; [0C C3 67, 05, 05]
-26CD; [0C BE 9E, 05, 05]
+2719; [0C C3 6E, 05, 05]
-26CE; [0C BE A5, 05, 05]
+271A; [0C C3 75, 05, 05]
-26CF; [0C BE AC, 05, 05]
+271B; [0C C3 7C, 05, 05]
-26D0; [0C BE B3, 05, 05]
+271C; [0C C3 83, 05, 05]
-26D1; [0C BE BA, 05, 05]
+271D; [0C C3 8A, 05, 05]
-26D2; [0C BE C1, 05, 05]
+271E; [0C C3 91, 05, 05]
-26D3; [0C BE C8, 05, 05]
+271F; [0C C3 98, 05, 05]
-26D4; [0C BE CF, 05, 05]
+2720; [0C C3 9F, 05, 05]
-26D5; [0C BE D6, 05, 05]
+2721; [0C C3 A6, 05, 05]
-26D6; [0C BE DD, 05, 05]
+2722; [0C C3 AD, 05, 05]
-26D7; [0C BE E4, 05, 05]
+2723; [0C C3 B4, 05, 05]
-26D8; [0C BE EB, 05, 05]
+2724; [0C C3 BB, 05, 05]
-26D9; [0C BE F2, 05, 05]
+2725; [0C C3 C2, 05, 05]
-26DA; [0C BE F9, 05, 05]
+2726; [0C C3 C9, 05, 05]
-26DB; [0C BF 02, 05, 05]
+2727; [0C C3 D0, 05, 05]
-26DC; [0C BF 09, 05, 05]
+2728; [0C C3 D7, 05, 05]
-26DD; [0C BF 10, 05, 05]
+2729; [0C C3 DE, 05, 05]
-26DE; [0C BF 17, 05, 05]
+272A; [0C C3 E5, 05, 05]
-26DF; [0C BF 1E, 05, 05]
+272B; [0C C3 EC, 05, 05]
-26E0; [0C BF 25, 05, 05]
+272C; [0C C3 F3, 05, 05]
-26E1; [0C BF 2C, 05, 05]
+272D; [0C C3 FA, 05, 05]
-26E2; [0C BF 33, 05, 05]
+272E; [0C C4 03, 05, 05]
-26E3; [0C BF 3A, 05, 05]
+272F; [0C C4 0A, 05, 05]
-26E4; [0C BF 41, 05, 05]
+2730; [0C C4 11, 05, 05]
-26E5; [0C BF 48, 05, 05]
+2731; [0C C4 18, 05, 05]
-26E6; [0C BF 4F, 05, 05]
+2732; [0C C4 1F, 05, 05]
-26E7; [0C BF 56, 05, 05]
+2733; [0C C4 26, 05, 05]
-26E8; [0C BF 5D, 05, 05]
+2734; [0C C4 2D, 05, 05]
-26E9; [0C BF 64, 05, 05]
+2735; [0C C4 34, 05, 05]
-26EA; [0C BF 6B, 05, 05]
+2736; [0C C4 3B, 05, 05]
-26EB; [0C BF 72, 05, 05]
+2737; [0C C4 42, 05, 05]
-26EC; [0C BF 79, 05, 05]
+2738; [0C C4 49, 05, 05]
-26ED; [0C BF 80, 05, 05]
+2739; [0C C4 50, 05, 05]
-26EE; [0C BF 87, 05, 05]
+273A; [0C C4 57, 05, 05]
-26EF; [0C BF 8E, 05, 05]
+273B; [0C C4 5E, 05, 05]
-26F0; [0C BF 95, 05, 05]
+273C; [0C C4 65, 05, 05]
-26F1; [0C BF 9C, 05, 05]
+273D; [0C C4 6C, 05, 05]
-26F2; [0C BF A3, 05, 05]
+273E; [0C C4 73, 05, 05]
-26F3; [0C BF AA, 05, 05]
+273F; [0C C4 7A, 05, 05]
-26F4; [0C BF B1, 05, 05]
+2740; [0C C4 81, 05, 05]
-26F5; [0C BF B8, 05, 05]
+2741; [0C C4 88, 05, 05]
-26F6; [0C BF BF, 05, 05]
+2742; [0C C4 8F, 05, 05]
-26F7; [0C BF C6, 05, 05]
+2743; [0C C4 96, 05, 05]
-26F8; [0C BF CD, 05, 05]
+2744; [0C C4 9D, 05, 05]
-26F9; [0C BF D4, 05, 05]
+2745; [0C C4 A4, 05, 05]
-26FA; [0C BF DB, 05, 05]
+2746; [0C C4 AB, 05, 05]
-26FB; [0C BF E2, 05, 05]
+2747; [0C C4 B2, 05, 05]
-26FC; [0C BF E9, 05, 05]
+2748; [0C C4 B9, 05, 05]
-26FD; [0C BF F0, 05, 05]
+2749; [0C C4 C0, 05, 05]
-26FE; [0C BF F7, 05, 05]
+274A; [0C C4 C7, 05, 05]
-26FF; [0C BF FE, 05, 05]
+274B; [0C C4 CE, 05, 05]
-1F1E6; [0C C0 07, 05, 05]
+274C; [0C C4 D5, 05, 05]
-1F1E7; [0C C0 0E, 05, 05]
+274D; [0C C4 DC, 05, 05]
-1F1E8; [0C C0 15, 05, 05]
+274E; [0C C4 E3, 05, 05]
-1F1E9; [0C C0 1C, 05, 05]
+274F; [0C C4 EA, 05, 05]
-1F1EA; [0C C0 23, 05, 05]
+2750; [0C C4 F1, 05, 05]
-1F1EB; [0C C0 2A, 05, 05]
+2751; [0C C4 F8, 05, 05]
-1F1EC; [0C C0 31, 05, 05]
+2752; [0C C4 FF, 05, 05]
-1F1ED; [0C C0 38, 05, 05]
+2753; [0C C5 08, 05, 05]
-1F1EE; [0C C0 3F, 05, 05]
+2754; [0C C5 0F, 05, 05]
-1F1EF; [0C C0 46, 05, 05]
+2755; [0C C5 16, 05, 05]
-1F1F0; [0C C0 4D, 05, 05]
+2756; [0C C5 1D, 05, 05]
-1F1F1; [0C C0 54, 05, 05]
+2757; [0C C5 24, 05, 05]
-1F1F2; [0C C0 5B, 05, 05]
+2758; [0C C5 2B, 05, 05]
-1F1F3; [0C C0 62, 05, 05]
+2759; [0C C5 32, 05, 05]
-1F1F4; [0C C0 69, 05, 05]
+275A; [0C C5 39, 05, 05]
-1F1F5; [0C C0 70, 05, 05]
+275B; [0C C5 40, 05, 05]
-1F1F6; [0C C0 77, 05, 05]
+275C; [0C C5 47, 05, 05]
-1F1F7; [0C C0 7E, 05, 05]
+275D; [0C C5 4E, 05, 05]
-1F1F8; [0C C0 85, 05, 05]
+275E; [0C C5 55, 05, 05]
-1F1F9; [0C C0 8C, 05, 05]
+275F; [0C C5 5C, 05, 05]
-1F1FA; [0C C0 93, 05, 05]
+2760; [0C C5 63, 05, 05]
-1F1FB; [0C C0 9A, 05, 05]
+2761; [0C C5 6A, 05, 05]
-1F1FC; [0C C0 A1, 05, 05]
+2762; [0C C5 71, 05, 05]
-1F1FD; [0C C0 A8, 05, 05]
+2763; [0C C5 78, 05, 05]
-1F1FE; [0C C0 AF, 05, 05]
+2764; [0C C5 7F, 05, 05]
-1F1FF; [0C C0 B6, 05, 05]
+2765; [0C C5 86, 05, 05]
-2700; [0C C0 BD, 05, 05]
+2766; [0C C5 8D, 05, 05]
-2701; [0C C0 C4, 05, 05]
+2767; [0C C5 94, 05, 05]
-2702; [0C C0 CB, 05, 05]
+2794; [0C C5 9B, 05, 05]
-2703; [0C C0 D2, 05, 05]
+2795; [0C C5 A2, 05, 05]
-2704; [0C C0 D9, 05, 05]
+2796; [0C C5 A9, 05, 05]
-2705; [0C C0 E0, 05, 05]
+2797; [0C C5 B0, 05, 05]
-2706; [0C C0 E7, 05, 05]
+2798; [0C C5 B7, 05, 05]
-2707; [0C C0 EE, 05, 05]
+2799; [0C C5 BE, 05, 05]
-2708; [0C C0 F5, 05, 05]
+279A; [0C C5 C5, 05, 05]
-2709; [0C C0 FC, 05, 05]
+279B; [0C C5 CC, 05, 05]
-270A; [0C C1 05, 05, 05]
+279C; [0C C5 D3, 05, 05]
-270B; [0C C1 0C, 05, 05]
+279D; [0C C5 DA, 05, 05]
-270C; [0C C1 13, 05, 05]
+279E; [0C C5 E1, 05, 05]
-270D; [0C C1 1A, 05, 05]
+279F; [0C C5 E8, 05, 05]
-270E; [0C C1 21, 05, 05]
+27A0; [0C C5 EF, 05, 05]
-270F; [0C C1 28, 05, 05]
+27A1; [0C C5 F6, 05, 05]
-2710; [0C C1 2F, 05, 05]
+27A2; [0C C5 FD, 05, 05]
-2711; [0C C1 36, 05, 05]
+27A3; [0C C6 06, 05, 05]
-2712; [0C C1 3D, 05, 05]
+27A4; [0C C6 0D, 05, 05]
-2713; [0C C1 44, 05, 05]
+27A5; [0C C6 14, 05, 05]
-2714; [0C C1 4B, 05, 05]
+27A6; [0C C6 1B, 05, 05]
-2715; [0C C1 52, 05, 05]
+27A7; [0C C6 22, 05, 05]
-2716; [0C C1 59, 05, 05]
+27A8; [0C C6 29, 05, 05]
-2717; [0C C1 60, 05, 05]
+27A9; [0C C6 30, 05, 05]
-2718; [0C C1 67, 05, 05]
+27AA; [0C C6 37, 05, 05]
-2719; [0C C1 6E, 05, 05]
+27AB; [0C C6 3E, 05, 05]
-271A; [0C C1 75, 05, 05]
+27AC; [0C C6 45, 05, 05]
-271B; [0C C1 7C, 05, 05]
+27AD; [0C C6 4C, 05, 05]
-271C; [0C C1 83, 05, 05]
+27AE; [0C C6 53, 05, 05]
-271D; [0C C1 8A, 05, 05]
+27AF; [0C C6 5A, 05, 05]
-271E; [0C C1 91, 05, 05]
+27B0; [0C C6 61, 05, 05]
-271F; [0C C1 98, 05, 05]
+27B1; [0C C6 68, 05, 05]
-2720; [0C C1 9F, 05, 05]
+27B2; [0C C6 6F, 05, 05]
-2721; [0C C1 A6, 05, 05]
+27B3; [0C C6 76, 05, 05]
-2722; [0C C1 AD, 05, 05]
+27B4; [0C C6 7D, 05, 05]
-2723; [0C C1 B4, 05, 05]
+27B5; [0C C6 84, 05, 05]
-2724; [0C C1 BB, 05, 05]
+27B6; [0C C6 8B, 05, 05]
-2725; [0C C1 C2, 05, 05]
+27B7; [0C C6 92, 05, 05]
-2726; [0C C1 C9, 05, 05]
+27B8; [0C C6 99, 05, 05]
-2727; [0C C1 D0, 05, 05]
+27B9; [0C C6 A0, 05, 05]
-2728; [0C C1 D7, 05, 05]
+27BA; [0C C6 A7, 05, 05]
-2729; [0C C1 DE, 05, 05]
+27BB; [0C C6 AE, 05, 05]
-272A; [0C C1 E5, 05, 05]
+27BC; [0C C6 B5, 05, 05]
-272B; [0C C1 EC, 05, 05]
+27BD; [0C C6 BC, 05, 05]
-272C; [0C C1 F3, 05, 05]
+27BE; [0C C6 C3, 05, 05]
-272D; [0C C1 FA, 05, 05]
+27BF; [0C C6 CA, 05, 05]
-272E; [0C C2 03, 05, 05]
+27C0; [0C C6 D1, 05, 05]
-272F; [0C C2 0A, 05, 05]
+27C1; [0C C6 D8, 05, 05]
-2730; [0C C2 11, 05, 05]
+27C2; [0C C6 DF, 05, 05]
-2731; [0C C2 18, 05, 05]
+27C3; [0C C6 E6, 05, 05]
-2732; [0C C2 1F, 05, 05]
+27C4; [0C C6 ED, 05, 05]
-2733; [0C C2 26, 05, 05]
+27C7; [0C C6 F4, 05, 05]
-2734; [0C C2 2D, 05, 05]
+27C8; [0C C6 FB, 05, 05]
-2735; [0C C2 34, 05, 05]
+27C9; [0C C7 04, 05, 05]
-2736; [0C C2 3B, 05, 05]
+27CA; [0C C7 0B, 05, 05]
-2737; [0C C2 42, 05, 05]
+27CB; [0C C7 12, 05, 05]
-2738; [0C C2 49, 05, 05]
+27CC; [0C C7 19, 05, 05]
-2739; [0C C2 50, 05, 05]
+27CD; [0C C7 20, 05, 05]
-273A; [0C C2 57, 05, 05]
+27CE; [0C C7 27, 05, 05]
-273B; [0C C2 5E, 05, 05]
+27CF; [0C C7 2E, 05, 05]
-273C; [0C C2 65, 05, 05]
+27D0; [0C C7 35, 05, 05]
-273D; [0C C2 6C, 05, 05]
+27D1; [0C C7 3C, 05, 05]
-273E; [0C C2 73, 05, 05]
+27D2; [0C C7 43, 05, 05]
-273F; [0C C2 7A, 05, 05]
+27D3; [0C C7 4A, 05, 05]
-2740; [0C C2 81, 05, 05]
+27D4; [0C C7 51, 05, 05]
-2741; [0C C2 88, 05, 05]
+27D5; [0C C7 58, 05, 05]
-2742; [0C C2 8F, 05, 05]
+27D6; [0C C7 5F, 05, 05]
-2743; [0C C2 96, 05, 05]
+27D7; [0C C7 66, 05, 05]
-2744; [0C C2 9D, 05, 05]
+27D8; [0C C7 6D, 05, 05]
-2745; [0C C2 A4, 05, 05]
+27D9; [0C C7 74, 05, 05]
-2746; [0C C2 AB, 05, 05]
+27DA; [0C C7 7B, 05, 05]
-2747; [0C C2 B2, 05, 05]
+27DB; [0C C7 82, 05, 05]
-2748; [0C C2 B9, 05, 05]
+27DC; [0C C7 89, 05, 05]
-2749; [0C C2 C0, 05, 05]
+27DD; [0C C7 90, 05, 05]
-274A; [0C C2 C7, 05, 05]
+27DE; [0C C7 97, 05, 05]
-274B; [0C C2 CE, 05, 05]
+27DF; [0C C7 9E, 05, 05]
-274C; [0C C2 D5, 05, 05]
+27E0; [0C C7 A5, 05, 05]
-274D; [0C C2 DC, 05, 05]
+27E1; [0C C7 AC, 05, 05]
-274E; [0C C2 E3, 05, 05]
+27E2; [0C C7 B3, 05, 05]
-274F; [0C C2 EA, 05, 05]
+27E3; [0C C7 BA, 05, 05]
-2750; [0C C2 F1, 05, 05]
+27E4; [0C C7 C1, 05, 05]
-2751; [0C C2 F8, 05, 05]
+27E5; [0C C7 C8, 05, 05]
-2752; [0C C2 FF, 05, 05]
+27F0; [0C C7 CF, 05, 05]
-2753; [0C C3 08, 05, 05]
+27F1; [0C C7 D6, 05, 05]
-2754; [0C C3 0F, 05, 05]
+27F2; [0C C7 DD, 05, 05]
-2755; [0C C3 16, 05, 05]
+27F3; [0C C7 E4, 05, 05]
-2756; [0C C3 1D, 05, 05]
+27F4; [0C C7 EB, 05, 05]
-2757; [0C C3 24, 05, 05]
+27F5; [0C C7 F2, 05, 05]
-2758; [0C C3 2B, 05, 05]
+27F6; [0C C7 F9, 05, 05]
-2759; [0C C3 32, 05, 05]
+27F7; [0C C8 02, 05, 05]
-275A; [0C C3 39, 05, 05]
+27F8; [0C C8 09, 05, 05]
-275B; [0C C3 40, 05, 05]
+27F9; [0C C8 10, 05, 05]
-275C; [0C C3 47, 05, 05]
+27FA; [0C C8 17, 05, 05]
-275D; [0C C3 4E, 05, 05]
+27FB; [0C C8 1E, 05, 05]
-275E; [0C C3 55, 05, 05]
+27FC; [0C C8 25, 05, 05]
-275F; [0C C3 5C, 05, 05]
+27FD; [0C C8 2C, 05, 05]
-2760; [0C C3 63, 05, 05]
+27FE; [0C C8 33, 05, 05]
-2761; [0C C3 6A, 05, 05]
+27FF; [0C C8 3A, 05, 05]
-2762; [0C C3 71, 05, 05]
+2900; [0C C8 41, 05, 05]
-2763; [0C C3 78, 05, 05]
+2901; [0C C8 48, 05, 05]
-2764; [0C C3 7F, 05, 05]
+2902; [0C C8 4F, 05, 05]
-2765; [0C C3 86, 05, 05]
+2903; [0C C8 56, 05, 05]
-2766; [0C C3 8D, 05, 05]
+2904; [0C C8 5D, 05, 05]
-2767; [0C C3 94, 05, 05]
+2905; [0C C8 64, 05, 05]
-2794; [0C C3 9B, 05, 05]
+2906; [0C C8 6B, 05, 05]
-2795; [0C C3 A2, 05, 05]
+2907; [0C C8 72, 05, 05]
-2796; [0C C3 A9, 05, 05]
+2908; [0C C8 79, 05, 05]
-2797; [0C C3 B0, 05, 05]
+2909; [0C C8 80, 05, 05]
-2798; [0C C3 B7, 05, 05]
+290A; [0C C8 87, 05, 05]
-2799; [0C C3 BE, 05, 05]
+290B; [0C C8 8E, 05, 05]
-279A; [0C C3 C5, 05, 05]
+290C; [0C C8 95, 05, 05]
-279B; [0C C3 CC, 05, 05]
+290D; [0C C8 9C, 05, 05]
-279C; [0C C3 D3, 05, 05]
+290E; [0C C8 A3, 05, 05]
-279D; [0C C3 DA, 05, 05]
+290F; [0C C8 AA, 05, 05]
-279E; [0C C3 E1, 05, 05]
+2910; [0C C8 B1, 05, 05]
-279F; [0C C3 E8, 05, 05]
+2911; [0C C8 B8, 05, 05]
-27A0; [0C C3 EF, 05, 05]
+2912; [0C C8 BF, 05, 05]
-27A1; [0C C3 F6, 05, 05]
+2913; [0C C8 C6, 05, 05]
-27A2; [0C C3 FD, 05, 05]
+2914; [0C C8 CD, 05, 05]
-27A3; [0C C4 06, 05, 05]
+2915; [0C C8 D4, 05, 05]
-27A4; [0C C4 0D, 05, 05]
+2916; [0C C8 DB, 05, 05]
-27A5; [0C C4 14, 05, 05]
+2917; [0C C8 E2, 05, 05]
-27A6; [0C C4 1B, 05, 05]
+2918; [0C C8 E9, 05, 05]
-27A7; [0C C4 22, 05, 05]
+2919; [0C C8 F0, 05, 05]
-27A8; [0C C4 29, 05, 05]
+291A; [0C C8 F7, 05, 05]
-27A9; [0C C4 30, 05, 05]
+291B; [0C C8 FE, 05, 05]
-27AA; [0C C4 37, 05, 05]
+291C; [0C C9 07, 05, 05]
-27AB; [0C C4 3E, 05, 05]
+291D; [0C C9 0E, 05, 05]
-27AC; [0C C4 45, 05, 05]
+291E; [0C C9 15, 05, 05]
-27AD; [0C C4 4C, 05, 05]
+291F; [0C C9 1C, 05, 05]
-27AE; [0C C4 53, 05, 05]
+2920; [0C C9 23, 05, 05]
-27AF; [0C C4 5A, 05, 05]
+2921; [0C C9 2A, 05, 05]
-27B0; [0C C4 61, 05, 05]
+2922; [0C C9 31, 05, 05]
-27B1; [0C C4 68, 05, 05]
+2923; [0C C9 38, 05, 05]
-27B2; [0C C4 6F, 05, 05]
+2924; [0C C9 3F, 05, 05]
-27B3; [0C C4 76, 05, 05]
+2925; [0C C9 46, 05, 05]
-27B4; [0C C4 7D, 05, 05]
+2926; [0C C9 4D, 05, 05]
-27B5; [0C C4 84, 05, 05]
+2927; [0C C9 54, 05, 05]
-27B6; [0C C4 8B, 05, 05]
+2928; [0C C9 5B, 05, 05]
-27B7; [0C C4 92, 05, 05]
+2929; [0C C9 62, 05, 05]
-27B8; [0C C4 99, 05, 05]
+292A; [0C C9 69, 05, 05]
-27B9; [0C C4 A0, 05, 05]
+292B; [0C C9 70, 05, 05]
-27BA; [0C C4 A7, 05, 05]
+292C; [0C C9 77, 05, 05]
-27BB; [0C C4 AE, 05, 05]
+292D; [0C C9 7E, 05, 05]
-27BC; [0C C4 B5, 05, 05]
+292E; [0C C9 85, 05, 05]
-27BD; [0C C4 BC, 05, 05]
+292F; [0C C9 8C, 05, 05]
-27BE; [0C C4 C3, 05, 05]
+2930; [0C C9 93, 05, 05]
-27BF; [0C C4 CA, 05, 05]
+2931; [0C C9 9A, 05, 05]
-27C0; [0C C4 D1, 05, 05]
+2932; [0C C9 A1, 05, 05]
-27C1; [0C C4 D8, 05, 05]
+2933; [0C C9 A8, 05, 05]
-27C2; [0C C4 DF, 05, 05]
+2934; [0C C9 AF, 05, 05]
-27C3; [0C C4 E6, 05, 05]
+2935; [0C C9 B6, 05, 05]
-27C4; [0C C4 ED, 05, 05]
+2936; [0C C9 BD, 05, 05]
-27C7; [0C C4 F4, 05, 05]
+2937; [0C C9 C4, 05, 05]
-27C8; [0C C4 FB, 05, 05]
+2938; [0C C9 CB, 05, 05]
-27C9; [0C C5 04, 05, 05]
+2939; [0C C9 D2, 05, 05]
-27CA; [0C C5 0B, 05, 05]
+293A; [0C C9 D9, 05, 05]
-27CB; [0C C5 12, 05, 05]
+293B; [0C C9 E0, 05, 05]
-27CC; [0C C5 19, 05, 05]
+293C; [0C C9 E7, 05, 05]
-27CD; [0C C5 20, 05, 05]
+293D; [0C C9 EE, 05, 05]
-27CE; [0C C5 27, 05, 05]
+293E; [0C C9 F5, 05, 05]
-27CF; [0C C5 2E, 05, 05]
+293F; [0C C9 FC, 05, 05]
-27D0; [0C C5 35, 05, 05]
+2940; [0C CA 05, 05, 05]
-27D1; [0C C5 3C, 05, 05]
+2941; [0C CA 0C, 05, 05]
-27D2; [0C C5 43, 05, 05]
+2942; [0C CA 13, 05, 05]
-27D3; [0C C5 4A, 05, 05]
+2943; [0C CA 1A, 05, 05]
-27D4; [0C C5 51, 05, 05]
+2944; [0C CA 21, 05, 05]
-27D5; [0C C5 58, 05, 05]
+2945; [0C CA 28, 05, 05]
-27D6; [0C C5 5F, 05, 05]
+2946; [0C CA 2F, 05, 05]
-27D7; [0C C5 66, 05, 05]
+2947; [0C CA 36, 05, 05]
-27D8; [0C C5 6D, 05, 05]
+2948; [0C CA 3D, 05, 05]
-27D9; [0C C5 74, 05, 05]
+2949; [0C CA 44, 05, 05]
-27DA; [0C C5 7B, 05, 05]
+294A; [0C CA 4B, 05, 05]
-27DB; [0C C5 82, 05, 05]
+294B; [0C CA 52, 05, 05]
-27DC; [0C C5 89, 05, 05]
+294C; [0C CA 59, 05, 05]
-27DD; [0C C5 90, 05, 05]
+294D; [0C CA 60, 05, 05]
-27DE; [0C C5 97, 05, 05]
+294E; [0C CA 67, 05, 05]
-27DF; [0C C5 9E, 05, 05]
+294F; [0C CA 6E, 05, 05]
-27E0; [0C C5 A5, 05, 05]
+2950; [0C CA 75, 05, 05]
-27E1; [0C C5 AC, 05, 05]
+2951; [0C CA 7C, 05, 05]
-27E2; [0C C5 B3, 05, 05]
+2952; [0C CA 83, 05, 05]
-27E3; [0C C5 BA, 05, 05]
+2953; [0C CA 8A, 05, 05]
-27E4; [0C C5 C1, 05, 05]
+2954; [0C CA 91, 05, 05]
-27E5; [0C C5 C8, 05, 05]
+2955; [0C CA 98, 05, 05]
-27F0; [0C C5 CF, 05, 05]
+2956; [0C CA 9F, 05, 05]
-27F1; [0C C5 D6, 05, 05]
+2957; [0C CA A6, 05, 05]
-27F2; [0C C5 DD, 05, 05]
+2958; [0C CA AD, 05, 05]
-27F3; [0C C5 E4, 05, 05]
+2959; [0C CA B4, 05, 05]
-27F4; [0C C5 EB, 05, 05]
+295A; [0C CA BB, 05, 05]
-27F5; [0C C5 F2, 05, 05]
+295B; [0C CA C2, 05, 05]
-27F6; [0C C5 F9, 05, 05]
+295C; [0C CA C9, 05, 05]
-27F7; [0C C6 02, 05, 05]
+295D; [0C CA D0, 05, 05]
-27F8; [0C C6 09, 05, 05]
+295E; [0C CA D7, 05, 05]
-27F9; [0C C6 10, 05, 05]
+295F; [0C CA DE, 05, 05]
-27FA; [0C C6 17, 05, 05]
+2960; [0C CA E5, 05, 05]
-27FB; [0C C6 1E, 05, 05]
+2961; [0C CA EC, 05, 05]
-27FC; [0C C6 25, 05, 05]
+2962; [0C CA F3, 05, 05]
-27FD; [0C C6 2C, 05, 05]
+2963; [0C CA FA, 05, 05]
-27FE; [0C C6 33, 05, 05]
+2964; [0C CB 03, 05, 05]
-27FF; [0C C6 3A, 05, 05]
+2965; [0C CB 0A, 05, 05]
-2900; [0C C6 41, 05, 05]
+2966; [0C CB 11, 05, 05]
-2901; [0C C6 48, 05, 05]
+2967; [0C CB 18, 05, 05]
-2902; [0C C6 4F, 05, 05]
+2968; [0C CB 1F, 05, 05]
-2903; [0C C6 56, 05, 05]
+2969; [0C CB 26, 05, 05]
-2904; [0C C6 5D, 05, 05]
+296A; [0C CB 2D, 05, 05]
-2905; [0C C6 64, 05, 05]
+296B; [0C CB 34, 05, 05]
-2906; [0C C6 6B, 05, 05]
+296C; [0C CB 3B, 05, 05]
-2907; [0C C6 72, 05, 05]
+296D; [0C CB 42, 05, 05]
-2908; [0C C6 79, 05, 05]
+296E; [0C CB 49, 05, 05]
-2909; [0C C6 80, 05, 05]
+296F; [0C CB 50, 05, 05]
-290A; [0C C6 87, 05, 05]
+2970; [0C CB 57, 05, 05]
-290B; [0C C6 8E, 05, 05]
+2971; [0C CB 5E, 05, 05]
-290C; [0C C6 95, 05, 05]
+2972; [0C CB 65, 05, 05]
-290D; [0C C6 9C, 05, 05]
+2973; [0C CB 6C, 05, 05]
-290E; [0C C6 A3, 05, 05]
+2974; [0C CB 73, 05, 05]
-290F; [0C C6 AA, 05, 05]
+2975; [0C CB 7A, 05, 05]
-2910; [0C C6 B1, 05, 05]
+2976; [0C CB 81, 05, 05]
-2911; [0C C6 B8, 05, 05]
+2977; [0C CB 88, 05, 05]
-2912; [0C C6 BF, 05, 05]
+2978; [0C CB 8F, 05, 05]
-2913; [0C C6 C6, 05, 05]
+2979; [0C CB 96, 05, 05]
-2914; [0C C6 CD, 05, 05]
+297A; [0C CB 9D, 05, 05]
-2915; [0C C6 D4, 05, 05]
+297B; [0C CB A4, 05, 05]
-2916; [0C C6 DB, 05, 05]
+297C; [0C CB AB, 05, 05]
-2917; [0C C6 E2, 05, 05]
+297D; [0C CB B2, 05, 05]
-2918; [0C C6 E9, 05, 05]
+297E; [0C CB B9, 05, 05]
-2919; [0C C6 F0, 05, 05]
+297F; [0C CB C0, 05, 05]
-291A; [0C C6 F7, 05, 05]
+2980; [0C CB C7, 05, 05]
-291B; [0C C6 FE, 05, 05]
+2981; [0C CB CE, 05, 05]
-291C; [0C C7 07, 05, 05]
+2982; [0C CB D5, 05, 05]
-291D; [0C C7 0E, 05, 05]
+2999; [0C CB DC, 05, 05]
-291E; [0C C7 15, 05, 05]
+299A; [0C CB E3, 05, 05]
-291F; [0C C7 1C, 05, 05]
+299B; [0C CB EA, 05, 05]
-2920; [0C C7 23, 05, 05]
+299C; [0C CB F1, 05, 05]
-2921; [0C C7 2A, 05, 05]
+299D; [0C CB F8, 05, 05]
-2922; [0C C7 31, 05, 05]
+299E; [0C CB FF, 05, 05]
-2923; [0C C7 38, 05, 05]
+299F; [0C CC 08, 05, 05]
-2924; [0C C7 3F, 05, 05]
+29A0; [0C CC 0F, 05, 05]
-2925; [0C C7 46, 05, 05]
+29A1; [0C CC 16, 05, 05]
-2926; [0C C7 4D, 05, 05]
+29A2; [0C CC 1D, 05, 05]
-2927; [0C C7 54, 05, 05]
+29A3; [0C CC 24, 05, 05]
-2928; [0C C7 5B, 05, 05]
+29A4; [0C CC 2B, 05, 05]
-2929; [0C C7 62, 05, 05]
+29A5; [0C CC 32, 05, 05]
-292A; [0C C7 69, 05, 05]
+29A6; [0C CC 39, 05, 05]
-292B; [0C C7 70, 05, 05]
+29A7; [0C CC 40, 05, 05]
-292C; [0C C7 77, 05, 05]
+29A8; [0C CC 47, 05, 05]
-292D; [0C C7 7E, 05, 05]
+29A9; [0C CC 4E, 05, 05]
-292E; [0C C7 85, 05, 05]
+29AA; [0C CC 55, 05, 05]
-292F; [0C C7 8C, 05, 05]
+29AB; [0C CC 5C, 05, 05]
-2930; [0C C7 93, 05, 05]
+29AC; [0C CC 63, 05, 05]
-2931; [0C C7 9A, 05, 05]
+29AD; [0C CC 6A, 05, 05]
-2932; [0C C7 A1, 05, 05]
+29AE; [0C CC 71, 05, 05]
-2933; [0C C7 A8, 05, 05]
+29AF; [0C CC 78, 05, 05]
-2934; [0C C7 AF, 05, 05]
+29B0; [0C CC 7F, 05, 05]
-2935; [0C C7 B6, 05, 05]
+29B1; [0C CC 86, 05, 05]
-2936; [0C C7 BD, 05, 05]
+29B2; [0C CC 8D, 05, 05]
-2937; [0C C7 C4, 05, 05]
+29B3; [0C CC 94, 05, 05]
-2938; [0C C7 CB, 05, 05]
+29B4; [0C CC 9B, 05, 05]
-2939; [0C C7 D2, 05, 05]
+29B5; [0C CC A2, 05, 05]
-293A; [0C C7 D9, 05, 05]
+29B6; [0C CC A9, 05, 05]
-293B; [0C C7 E0, 05, 05]
+29B7; [0C CC B0, 05, 05]
-293C; [0C C7 E7, 05, 05]
+29B8; [0C CC B7, 05, 05]
-293D; [0C C7 EE, 05, 05]
+29B9; [0C CC BE, 05, 05]
-293E; [0C C7 F5, 05, 05]
+29BA; [0C CC C5, 05, 05]
-293F; [0C C7 FC, 05, 05]
+29BB; [0C CC CC, 05, 05]
-2940; [0C C8 05, 05, 05]
+29BC; [0C CC D3, 05, 05]
-2941; [0C C8 0C, 05, 05]
+29BD; [0C CC DA, 05, 05]
-2942; [0C C8 13, 05, 05]
+29BE; [0C CC E1, 05, 05]
-2943; [0C C8 1A, 05, 05]
+29BF; [0C CC E8, 05, 05]
-2944; [0C C8 21, 05, 05]
+29C0; [0C CC EF, 05, 05]
-2945; [0C C8 28, 05, 05]
+29C1; [0C CC F6, 05, 05]
-2946; [0C C8 2F, 05, 05]
+29C2; [0C CC FD, 05, 05]
-2947; [0C C8 36, 05, 05]
+29C3; [0C CD 06, 05, 05]
-2948; [0C C8 3D, 05, 05]
+29C4; [0C CD 0D, 05, 05]
-2949; [0C C8 44, 05, 05]
+29C5; [0C CD 14, 05, 05]
-294A; [0C C8 4B, 05, 05]
+29C6; [0C CD 1B, 05, 05]
-294B; [0C C8 52, 05, 05]
+29C7; [0C CD 22, 05, 05]
-294C; [0C C8 59, 05, 05]
+29C8; [0C CD 29, 05, 05]
-294D; [0C C8 60, 05, 05]
+29C9; [0C CD 30, 05, 05]
-294E; [0C C8 67, 05, 05]
+29CA; [0C CD 37, 05, 05]
-294F; [0C C8 6E, 05, 05]
+29CB; [0C CD 3E, 05, 05]
-2950; [0C C8 75, 05, 05]
+29CC; [0C CD 45, 05, 05]
-2951; [0C C8 7C, 05, 05]
+29CD; [0C CD 4C, 05, 05]
-2952; [0C C8 83, 05, 05]
+29CE; [0C CD 53, 05, 05]
-2953; [0C C8 8A, 05, 05]
+29CF; [0C CD 5A, 05, 05]
-2954; [0C C8 91, 05, 05]
+29D0; [0C CD 61, 05, 05]
-2955; [0C C8 98, 05, 05]
+29D1; [0C CD 68, 05, 05]
-2956; [0C C8 9F, 05, 05]
+29D2; [0C CD 6F, 05, 05]
-2957; [0C C8 A6, 05, 05]
+29D3; [0C CD 76, 05, 05]
-2958; [0C C8 AD, 05, 05]
+29D4; [0C CD 7D, 05, 05]
-2959; [0C C8 B4, 05, 05]
+29D5; [0C CD 84, 05, 05]
-295A; [0C C8 BB, 05, 05]
+29D6; [0C CD 8B, 05, 05]
-295B; [0C C8 C2, 05, 05]
+29D7; [0C CD 92, 05, 05]
-295C; [0C C8 C9, 05, 05]
+29DC; [0C CD 99, 05, 05]
-295D; [0C C8 D0, 05, 05]
+29DD; [0C CD A0, 05, 05]
-295E; [0C C8 D7, 05, 05]
+29DE; [0C CD A7, 05, 05]
-295F; [0C C8 DE, 05, 05]
+29DF; [0C CD AE, 05, 05]
-2960; [0C C8 E5, 05, 05]
+29E0; [0C CD B5, 05, 05]
-2961; [0C C8 EC, 05, 05]
+29E1; [0C CD BC, 05, 05]
-2962; [0C C8 F3, 05, 05]
+29E2; [0C CD C3, 05, 05]
-2963; [0C C8 FA, 05, 05]
+29E3; [0C CD CA, 05, 05]
-2964; [0C C9 03, 05, 05]
+29E4; [0C CD D1, 05, 05]
-2965; [0C C9 0A, 05, 05]
+29E5; [0C CD D8, 05, 05]
-2966; [0C C9 11, 05, 05]
+29E6; [0C CD DF, 05, 05]
-2967; [0C C9 18, 05, 05]
+29E7; [0C CD E6, 05, 05]
-2968; [0C C9 1F, 05, 05]
+29E8; [0C CD ED, 05, 05]
-2969; [0C C9 26, 05, 05]
+29E9; [0C CD F4, 05, 05]
-296A; [0C C9 2D, 05, 05]
+29EA; [0C CD FB, 05, 05]
-296B; [0C C9 34, 05, 05]
+29EB; [0C CE 04, 05, 05]
-296C; [0C C9 3B, 05, 05]
+29EC; [0C CE 0B, 05, 05]
-296D; [0C C9 42, 05, 05]
+29ED; [0C CE 12, 05, 05]
-296E; [0C C9 49, 05, 05]
+29EE; [0C CE 19, 05, 05]
-296F; [0C C9 50, 05, 05]
+29EF; [0C CE 20, 05, 05]
-2970; [0C C9 57, 05, 05]
+29F0; [0C CE 27, 05, 05]
-2971; [0C C9 5E, 05, 05]
+29F1; [0C CE 2E, 05, 05]
-2972; [0C C9 65, 05, 05]
+29F2; [0C CE 35, 05, 05]
-2973; [0C C9 6C, 05, 05]
+29F3; [0C CE 3C, 05, 05]
-2974; [0C C9 73, 05, 05]
+29F4; [0C CE 43, 05, 05]
-2975; [0C C9 7A, 05, 05]
+29F5; [0C CE 4A, 05, 05]
-2976; [0C C9 81, 05, 05]
+29F6; [0C CE 51, 05, 05]
-2977; [0C C9 88, 05, 05]
+29F7; [0C CE 58, 05, 05]
-2978; [0C C9 8F, 05, 05]
+29F8; [0C CE 5F, 05, 05]
-2979; [0C C9 96, 05, 05]
+29F9; [0C CE 66, 05, 05]
-297A; [0C C9 9D, 05, 05]
+29FA; [0C CE 6D, 05, 05]
-297B; [0C C9 A4, 05, 05]
+29FB; [0C CE 74, 05, 05]
-297C; [0C C9 AB, 05, 05]
+29FE; [0C CE 7B, 05, 05]
-297D; [0C C9 B2, 05, 05]
+29FF; [0C CE 82, 05, 05]
-297E; [0C C9 B9, 05, 05]
+2A00; [0C CE 89, 05, 05]
-297F; [0C C9 C0, 05, 05]
+2A01; [0C CE 90, 05, 05]
-2980; [0C C9 C7, 05, 05]
+2A02; [0C CE 97, 05, 05]
-2981; [0C C9 CE, 05, 05]
+2A03; [0C CE 9E, 05, 05]
-2982; [0C C9 D5, 05, 05]
+2A04; [0C CE A5, 05, 05]
-2999; [0C C9 DC, 05, 05]
+2A05; [0C CE AC, 05, 05]
-299A; [0C C9 E3, 05, 05]
+2A06; [0C CE B3, 05, 05]
-299B; [0C C9 EA, 05, 05]
+2A07; [0C CE BA, 05, 05]
-299C; [0C C9 F1, 05, 05]
+2A08; [0C CE C1, 05, 05]
-299D; [0C C9 F8, 05, 05]
+2A09; [0C CE C8, 05, 05]
-299E; [0C C9 FF, 05, 05]
+2A0A; [0C CE CF, 05, 05]
-299F; [0C CA 08, 05, 05]
+2A0B; [0C CE D6, 05, 05]
-29A0; [0C CA 0F, 05, 05]
+2A0D; [0C CE DD, 05, 05]
-29A1; [0C CA 16, 05, 05]
+2A0E; [0C CE E4, 05, 05]
-29A2; [0C CA 1D, 05, 05]
+2A0F; [0C CE EB, 05, 05]
-29A3; [0C CA 24, 05, 05]
+2A10; [0C CE F2, 05, 05]
-29A4; [0C CA 2B, 05, 05]
+2A11; [0C CE F9, 05, 05]
-29A5; [0C CA 32, 05, 05]
+2A12; [0C CF 02, 05, 05]
-29A6; [0C CA 39, 05, 05]
+2A13; [0C CF 09, 05, 05]
-29A7; [0C CA 40, 05, 05]
+2A14; [0C CF 10, 05, 05]
-29A8; [0C CA 47, 05, 05]
+2A15; [0C CF 17, 05, 05]
-29A9; [0C CA 4E, 05, 05]
+2A16; [0C CF 1E, 05, 05]
-29AA; [0C CA 55, 05, 05]
+2A17; [0C CF 25, 05, 05]
-29AB; [0C CA 5C, 05, 05]
+2A18; [0C CF 2C, 05, 05]
-29AC; [0C CA 63, 05, 05]
+2A19; [0C CF 33, 05, 05]
-29AD; [0C CA 6A, 05, 05]
+2A1A; [0C CF 3A, 05, 05]
-29AE; [0C CA 71, 05, 05]
+2A1B; [0C CF 41, 05, 05]
-29AF; [0C CA 78, 05, 05]
+2A1C; [0C CF 48, 05, 05]
-29B0; [0C CA 7F, 05, 05]
+2A1D; [0C CF 4F, 05, 05]
-29B1; [0C CA 86, 05, 05]
+2A1E; [0C CF 56, 05, 05]
-29B2; [0C CA 8D, 05, 05]
+2A1F; [0C CF 5D, 05, 05]
-29B3; [0C CA 94, 05, 05]
+2A20; [0C CF 64, 05, 05]
-29B4; [0C CA 9B, 05, 05]
+2A21; [0C CF 6B, 05, 05]
-29B5; [0C CA A2, 05, 05]
+2A22; [0C CF 72, 05, 05]
-29B6; [0C CA A9, 05, 05]
+2A23; [0C CF 79, 05, 05]
-29B7; [0C CA B0, 05, 05]
+2A24; [0C CF 80, 05, 05]
-29B8; [0C CA B7, 05, 05]
+2A25; [0C CF 87, 05, 05]
-29B9; [0C CA BE, 05, 05]
+2A26; [0C CF 8E, 05, 05]
-29BA; [0C CA C5, 05, 05]
+2A27; [0C CF 95, 05, 05]
-29BB; [0C CA CC, 05, 05]
+2A28; [0C CF 9C, 05, 05]
-29BC; [0C CA D3, 05, 05]
+2A29; [0C CF A3, 05, 05]
-29BD; [0C CA DA, 05, 05]
+2A2A; [0C CF AA, 05, 05]
-29BE; [0C CA E1, 05, 05]
+2A2B; [0C CF B1, 05, 05]
-29BF; [0C CA E8, 05, 05]
+2A2C; [0C CF B8, 05, 05]
-29C0; [0C CA EF, 05, 05]
+2A2D; [0C CF BF, 05, 05]
-29C1; [0C CA F6, 05, 05]
+2A2E; [0C CF C6, 05, 05]
-29C2; [0C CA FD, 05, 05]
+2A2F; [0C CF CD, 05, 05]
-29C3; [0C CB 06, 05, 05]
+2A30; [0C CF D4, 05, 05]
-29C4; [0C CB 0D, 05, 05]
+2A31; [0C CF DB, 05, 05]
-29C5; [0C CB 14, 05, 05]
+2A32; [0C CF E2, 05, 05]
-29C6; [0C CB 1B, 05, 05]
+2A33; [0C CF E9, 05, 05]
-29C7; [0C CB 22, 05, 05]
+2A34; [0C CF F0, 05, 05]
-29C8; [0C CB 29, 05, 05]
+2A35; [0C CF F7, 05, 05]
-29C9; [0C CB 30, 05, 05]
+2A36; [0C CF FE, 05, 05]
-29CA; [0C CB 37, 05, 05]
+2A37; [0C D0 07, 05, 05]
-29CB; [0C CB 3E, 05, 05]
+2A38; [0C D0 0E, 05, 05]
-29CC; [0C CB 45, 05, 05]
+2A39; [0C D0 15, 05, 05]
-29CD; [0C CB 4C, 05, 05]
+2A3A; [0C D0 1C, 05, 05]
-29CE; [0C CB 53, 05, 05]
+2A3B; [0C D0 23, 05, 05]
-29CF; [0C CB 5A, 05, 05]
+2A3C; [0C D0 2A, 05, 05]
-29D0; [0C CB 61, 05, 05]
+2A3D; [0C D0 31, 05, 05]
-29D1; [0C CB 68, 05, 05]
+2A3E; [0C D0 38, 05, 05]
-29D2; [0C CB 6F, 05, 05]
+2A3F; [0C D0 3F, 05, 05]
-29D3; [0C CB 76, 05, 05]
+2A40; [0C D0 46, 05, 05]
-29D4; [0C CB 7D, 05, 05]
+2A41; [0C D0 4D, 05, 05]
-29D5; [0C CB 84, 05, 05]
+2A42; [0C D0 54, 05, 05]
-29D6; [0C CB 8B, 05, 05]
+2A43; [0C D0 5B, 05, 05]
-29D7; [0C CB 92, 05, 05]
+2A44; [0C D0 62, 05, 05]
-29DC; [0C CB 99, 05, 05]
+2A45; [0C D0 69, 05, 05]
-29DD; [0C CB A0, 05, 05]
+2A46; [0C D0 70, 05, 05]
-29DE; [0C CB A7, 05, 05]
+2A47; [0C D0 77, 05, 05]
-29DF; [0C CB AE, 05, 05]
+2A48; [0C D0 7E, 05, 05]
-29E0; [0C CB B5, 05, 05]
+2A49; [0C D0 85, 05, 05]
-29E1; [0C CB BC, 05, 05]
+2A4A; [0C D0 8C, 05, 05]
-29E2; [0C CB C3, 05, 05]
+2A4B; [0C D0 93, 05, 05]
-29E3; [0C CB CA, 05, 05]
+2A4C; [0C D0 9A, 05, 05]
-29E4; [0C CB D1, 05, 05]
+2A4D; [0C D0 A1, 05, 05]
-29E5; [0C CB D8, 05, 05]
+2A4E; [0C D0 A8, 05, 05]
-29E6; [0C CB DF, 05, 05]
+2A4F; [0C D0 AF, 05, 05]
-29E7; [0C CB E6, 05, 05]
+2A50; [0C D0 B6, 05, 05]
-29E8; [0C CB ED, 05, 05]
+2A51; [0C D0 BD, 05, 05]
-29E9; [0C CB F4, 05, 05]
+2A52; [0C D0 C4, 05, 05]
-29EA; [0C CB FB, 05, 05]
+2A53; [0C D0 CB, 05, 05]
-29EB; [0C CC 04, 05, 05]
+2A54; [0C D0 D2, 05, 05]
-29EC; [0C CC 0B, 05, 05]
+2A55; [0C D0 D9, 05, 05]
-29ED; [0C CC 12, 05, 05]
+2A56; [0C D0 E0, 05, 05]
-29EE; [0C CC 19, 05, 05]
+2A57; [0C D0 E7, 05, 05]
-29EF; [0C CC 20, 05, 05]
+2A58; [0C D0 EE, 05, 05]
-29F0; [0C CC 27, 05, 05]
+2A59; [0C D0 F5, 05, 05]
-29F1; [0C CC 2E, 05, 05]
+2A5A; [0C D0 FC, 05, 05]
-29F2; [0C CC 35, 05, 05]
+2A5B; [0C D1 05, 05, 05]
-29F3; [0C CC 3C, 05, 05]
+2A5C; [0C D1 0C, 05, 05]
-29F4; [0C CC 43, 05, 05]
+2A5D; [0C D1 13, 05, 05]
-29F5; [0C CC 4A, 05, 05]
+2A5E; [0C D1 1A, 05, 05]
-29F6; [0C CC 51, 05, 05]
+2A5F; [0C D1 21, 05, 05]
-29F7; [0C CC 58, 05, 05]
+2A60; [0C D1 28, 05, 05]
-29F8; [0C CC 5F, 05, 05]
+2A61; [0C D1 2F, 05, 05]
-29F9; [0C CC 66, 05, 05]
+2A62; [0C D1 36, 05, 05]
-29FA; [0C CC 6D, 05, 05]
+2A63; [0C D1 3D, 05, 05]
-29FB; [0C CC 74, 05, 05]
+2A64; [0C D1 44, 05, 05]
-29FE; [0C CC 7B, 05, 05]
+2A65; [0C D1 4B, 05, 05]
-29FF; [0C CC 82, 05, 05]
+2A66; [0C D1 52, 05, 05]
-2A00; [0C CC 89, 05, 05]
+2A67; [0C D1 59, 05, 05]
-2A01; [0C CC 90, 05, 05]
+2A68; [0C D1 60, 05, 05]
-2A02; [0C CC 97, 05, 05]
+2A69; [0C D1 67, 05, 05]
-2A03; [0C CC 9E, 05, 05]
+2A6A; [0C D1 6E, 05, 05]
-2A04; [0C CC A5, 05, 05]
+2A6B; [0C D1 75, 05, 05]
-2A05; [0C CC AC, 05, 05]
+2A6C; [0C D1 7C, 05, 05]
-2A06; [0C CC B3, 05, 05]
+2A6D; [0C D1 83, 05, 05]
-2A07; [0C CC BA, 05, 05]
+2A6E; [0C D1 8A, 05, 05]
-2A08; [0C CC C1, 05, 05]
+2A6F; [0C D1 91, 05, 05]
-2A09; [0C CC C8, 05, 05]
+2A70; [0C D1 98, 05, 05]
-2A0A; [0C CC CF, 05, 05]
+2A71; [0C D1 9F, 05, 05]
-2A0B; [0C CC D6, 05, 05]
+2A72; [0C D1 A6, 05, 05]
-2A0D; [0C CC DD, 05, 05]
+2A73; [0C D1 AD, 05, 05]
-2A0E; [0C CC E4, 05, 05]
+2A77; [0C D1 B4, 05, 05]
-2A0F; [0C CC EB, 05, 05]
+2A78; [0C D1 BB, 05, 05]
-2A10; [0C CC F2, 05, 05]
+2A79; [0C D1 C2, 05, 05]
-2A11; [0C CC F9, 05, 05]
+2A7A; [0C D1 C9, 05, 05]
-2A12; [0C CD 02, 05, 05]
+2A7B; [0C D1 D0, 05, 05]
-2A13; [0C CD 09, 05, 05]
+2A7C; [0C D1 D7, 05, 05]
-2A14; [0C CD 10, 05, 05]
+2A7D; [0C D1 DE, 05, 05]
-2A15; [0C CD 17, 05, 05]
+2A7E; [0C D1 E5, 05, 05]
-2A16; [0C CD 1E, 05, 05]
+2A7F; [0C D1 EC, 05, 05]
-2A17; [0C CD 25, 05, 05]
+2A80; [0C D1 F3, 05, 05]
-2A18; [0C CD 2C, 05, 05]
+2A81; [0C D1 FA, 05, 05]
-2A19; [0C CD 33, 05, 05]
+2A82; [0C D2 03, 05, 05]
-2A1A; [0C CD 3A, 05, 05]
+2A83; [0C D2 0A, 05, 05]
-2A1B; [0C CD 41, 05, 05]
+2A84; [0C D2 11, 05, 05]
-2A1C; [0C CD 48, 05, 05]
+2A85; [0C D2 18, 05, 05]
-2A1D; [0C CD 4F, 05, 05]
+2A86; [0C D2 1F, 05, 05]
-2A1E; [0C CD 56, 05, 05]
+2A87; [0C D2 26, 05, 05]
-2A1F; [0C CD 5D, 05, 05]
+2A88; [0C D2 2D, 05, 05]
-2A20; [0C CD 64, 05, 05]
+2A89; [0C D2 34, 05, 05]
-2A21; [0C CD 6B, 05, 05]
+2A8A; [0C D2 3B, 05, 05]
-2A22; [0C CD 72, 05, 05]
+2A8B; [0C D2 42, 05, 05]
-2A23; [0C CD 79, 05, 05]
+2A8C; [0C D2 49, 05, 05]
-2A24; [0C CD 80, 05, 05]
+2A8D; [0C D2 50, 05, 05]
-2A25; [0C CD 87, 05, 05]
+2A8E; [0C D2 57, 05, 05]
-2A26; [0C CD 8E, 05, 05]
+2A8F; [0C D2 5E, 05, 05]
-2A27; [0C CD 95, 05, 05]
+2A90; [0C D2 65, 05, 05]
-2A28; [0C CD 9C, 05, 05]
+2A91; [0C D2 6C, 05, 05]
-2A29; [0C CD A3, 05, 05]
+2A92; [0C D2 73, 05, 05]
-2A2A; [0C CD AA, 05, 05]
+2A93; [0C D2 7A, 05, 05]
-2A2B; [0C CD B1, 05, 05]
+2A94; [0C D2 81, 05, 05]
-2A2C; [0C CD B8, 05, 05]
+2A95; [0C D2 88, 05, 05]
-2A2D; [0C CD BF, 05, 05]
+2A96; [0C D2 8F, 05, 05]
-2A2E; [0C CD C6, 05, 05]
+2A97; [0C D2 96, 05, 05]
-2A2F; [0C CD CD, 05, 05]
+2A98; [0C D2 9D, 05, 05]
-2A30; [0C CD D4, 05, 05]
+2A99; [0C D2 A4, 05, 05]
-2A31; [0C CD DB, 05, 05]
+2A9A; [0C D2 AB, 05, 05]
-2A32; [0C CD E2, 05, 05]
+2A9B; [0C D2 B2, 05, 05]
-2A33; [0C CD E9, 05, 05]
+2A9C; [0C D2 B9, 05, 05]
-2A34; [0C CD F0, 05, 05]
+2A9D; [0C D2 C0, 05, 05]
-2A35; [0C CD F7, 05, 05]
+2A9E; [0C D2 C7, 05, 05]
-2A36; [0C CD FE, 05, 05]
+2A9F; [0C D2 CE, 05, 05]
-2A37; [0C CE 07, 05, 05]
+2AA0; [0C D2 D5, 05, 05]
-2A38; [0C CE 0E, 05, 05]
+2AA1; [0C D2 DC, 05, 05]
-2A39; [0C CE 15, 05, 05]
+2AA2; [0C D2 E3, 05, 05]
-2A3A; [0C CE 1C, 05, 05]
+2AA3; [0C D2 EA, 05, 05]
-2A3B; [0C CE 23, 05, 05]
+2AA4; [0C D2 F1, 05, 05]
-2A3C; [0C CE 2A, 05, 05]
+2AA5; [0C D2 F8, 05, 05]
-2A3D; [0C CE 31, 05, 05]
+2AA6; [0C D2 FF, 05, 05]
-2A3E; [0C CE 38, 05, 05]
+2AA7; [0C D3 08, 05, 05]
-2A3F; [0C CE 3F, 05, 05]
+2AA8; [0C D3 0F, 05, 05]
-2A40; [0C CE 46, 05, 05]
+2AA9; [0C D3 16, 05, 05]
-2A41; [0C CE 4D, 05, 05]
+2AAA; [0C D3 1D, 05, 05]
-2A42; [0C CE 54, 05, 05]
+2AAB; [0C D3 24, 05, 05]
-2A43; [0C CE 5B, 05, 05]
+2AAC; [0C D3 2B, 05, 05]
-2A44; [0C CE 62, 05, 05]
+2AAD; [0C D3 32, 05, 05]
-2A45; [0C CE 69, 05, 05]
+2AAE; [0C D3 39, 05, 05]
-2A46; [0C CE 70, 05, 05]
+2AAF; [0C D3 40, 05, 05]
-2A47; [0C CE 77, 05, 05]
+2AB0; [0C D3 47, 05, 05]
-2A48; [0C CE 7E, 05, 05]
+2AB1; [0C D3 4E, 05, 05]
-2A49; [0C CE 85, 05, 05]
+2AB2; [0C D3 55, 05, 05]
-2A4A; [0C CE 8C, 05, 05]
+2AB3; [0C D3 5C, 05, 05]
-2A4B; [0C CE 93, 05, 05]
+2AB4; [0C D3 63, 05, 05]
-2A4C; [0C CE 9A, 05, 05]
+2AB5; [0C D3 6A, 05, 05]
-2A4D; [0C CE A1, 05, 05]
+2AB6; [0C D3 71, 05, 05]
-2A4E; [0C CE A8, 05, 05]
+2AB7; [0C D3 78, 05, 05]
-2A4F; [0C CE AF, 05, 05]
+2AB8; [0C D3 7F, 05, 05]
-2A50; [0C CE B6, 05, 05]
+2AB9; [0C D3 86, 05, 05]
-2A51; [0C CE BD, 05, 05]
+2ABA; [0C D3 8D, 05, 05]
-2A52; [0C CE C4, 05, 05]
+2ABB; [0C D3 94, 05, 05]
-2A53; [0C CE CB, 05, 05]
+2ABC; [0C D3 9B, 05, 05]
-2A54; [0C CE D2, 05, 05]
+2ABD; [0C D3 A2, 05, 05]
-2A55; [0C CE D9, 05, 05]
+2ABE; [0C D3 A9, 05, 05]
-2A56; [0C CE E0, 05, 05]
+2ABF; [0C D3 B0, 05, 05]
-2A57; [0C CE E7, 05, 05]
+2AC0; [0C D3 B7, 05, 05]
-2A58; [0C CE EE, 05, 05]
+2AC1; [0C D3 BE, 05, 05]
-2A59; [0C CE F5, 05, 05]
+2AC2; [0C D3 C5, 05, 05]
-2A5A; [0C CE FC, 05, 05]
+2AC3; [0C D3 CC, 05, 05]
-2A5B; [0C CF 05, 05, 05]
+2AC4; [0C D3 D3, 05, 05]
-2A5C; [0C CF 0C, 05, 05]
+2AC5; [0C D3 DA, 05, 05]
-2A5D; [0C CF 13, 05, 05]
+2AC6; [0C D3 E1, 05, 05]
-2A5E; [0C CF 1A, 05, 05]
+2AC7; [0C D3 E8, 05, 05]
-2A5F; [0C CF 21, 05, 05]
+2AC8; [0C D3 EF, 05, 05]
-2A60; [0C CF 28, 05, 05]
+2AC9; [0C D3 F6, 05, 05]
-2A61; [0C CF 2F, 05, 05]
+2ACA; [0C D3 FD, 05, 05]
-2A62; [0C CF 36, 05, 05]
+2ACB; [0C D4 06, 05, 05]
-2A63; [0C CF 3D, 05, 05]
+2ACC; [0C D4 0D, 05, 05]
-2A64; [0C CF 44, 05, 05]
+2ACD; [0C D4 14, 05, 05]
-2A65; [0C CF 4B, 05, 05]
+2ACE; [0C D4 1B, 05, 05]
-2A66; [0C CF 52, 05, 05]
+2ACF; [0C D4 22, 05, 05]
-2A67; [0C CF 59, 05, 05]
+2AD0; [0C D4 29, 05, 05]
-2A68; [0C CF 60, 05, 05]
+2AD1; [0C D4 30, 05, 05]
-2A69; [0C CF 67, 05, 05]
+2AD2; [0C D4 37, 05, 05]
-2A6A; [0C CF 6E, 05, 05]
+2AD3; [0C D4 3E, 05, 05]
-2A6B; [0C CF 75, 05, 05]
+2AD4; [0C D4 45, 05, 05]
-2A6C; [0C CF 7C, 05, 05]
+2AD5; [0C D4 4C, 05, 05]
-2A6D; [0C CF 83, 05, 05]
+2AD6; [0C D4 53, 05, 05]
-2A6E; [0C CF 8A, 05, 05]
+2AD7; [0C D4 5A, 05, 05]
-2A6F; [0C CF 91, 05, 05]
+2AD8; [0C D4 61, 05, 05]
-2A70; [0C CF 98, 05, 05]
+2AD9; [0C D4 68, 05, 05]
-2A71; [0C CF 9F, 05, 05]
+2ADA; [0C D4 6F, 05, 05]
-2A72; [0C CF A6, 05, 05]
+2ADB; [0C D4 76, 05, 05]
-2A73; [0C CF AD, 05, 05]
+2ADD; [0C D4 7D, 05, 05]
+2ADC; [0C D4 7D, 05, 05][, 9E, 05]
-2A77; [0C CF B4, 05, 05]
+2ADE; [0C D4 84, 05, 05]
-2A78; [0C CF BB, 05, 05]
+2ADF; [0C D4 8B, 05, 05]
-2A79; [0C CF C2, 05, 05]
+2AE0; [0C D4 92, 05, 05]
-2A7A; [0C CF C9, 05, 05]
+2AE1; [0C D4 99, 05, 05]
-2A7B; [0C CF D0, 05, 05]
+2AE2; [0C D4 A0, 05, 05]
-2A7C; [0C CF D7, 05, 05]
+2AE3; [0C D4 A7, 05, 05]
-2A7D; [0C CF DE, 05, 05]
+2AE4; [0C D4 AE, 05, 05]
-2A7E; [0C CF E5, 05, 05]
+2AE5; [0C D4 B5, 05, 05]
-2A7F; [0C CF EC, 05, 05]
+2AE6; [0C D4 BC, 05, 05]
-2A80; [0C CF F3, 05, 05]
+2AE7; [0C D4 C3, 05, 05]
-2A81; [0C CF FA, 05, 05]
+2AE8; [0C D4 CA, 05, 05]
-2A82; [0C D0 03, 05, 05]
+2AE9; [0C D4 D1, 05, 05]
-2A83; [0C D0 0A, 05, 05]
+2AEA; [0C D4 D8, 05, 05]
-2A84; [0C D0 11, 05, 05]
+2AEB; [0C D4 DF, 05, 05]
-2A85; [0C D0 18, 05, 05]
+2AEC; [0C D4 E6, 05, 05]
-2A86; [0C D0 1F, 05, 05]
+2AED; [0C D4 ED, 05, 05]
-2A87; [0C D0 26, 05, 05]
+2AEE; [0C D4 F4, 05, 05]
-2A88; [0C D0 2D, 05, 05]
+2AEF; [0C D4 FB, 05, 05]
-2A89; [0C D0 34, 05, 05]
+2AF0; [0C D5 04, 05, 05]
-2A8A; [0C D0 3B, 05, 05]
+2AF1; [0C D5 0B, 05, 05]
-2A8B; [0C D0 42, 05, 05]
+2AF2; [0C D5 12, 05, 05]
-2A8C; [0C D0 49, 05, 05]
+2AF3; [0C D5 19, 05, 05]
-2A8D; [0C D0 50, 05, 05]
+2AF4; [0C D5 20, 05, 05]
-2A8E; [0C D0 57, 05, 05]
+2AF5; [0C D5 27, 05, 05]
-2A8F; [0C D0 5E, 05, 05]
+2AF6; [0C D5 2E, 05, 05]
-2A90; [0C D0 65, 05, 05]
+2AF7; [0C D5 35, 05, 05]
-2A91; [0C D0 6C, 05, 05]
+2AF8; [0C D5 3C, 05, 05]
-2A92; [0C D0 73, 05, 05]
+2AF9; [0C D5 43, 05, 05]
-2A93; [0C D0 7A, 05, 05]
+2AFA; [0C D5 4A, 05, 05]
-2A94; [0C D0 81, 05, 05]
+2AFB; [0C D5 51, 05, 05]
-2A95; [0C D0 88, 05, 05]
+2AFC; [0C D5 58, 05, 05]
-2A96; [0C D0 8F, 05, 05]
+2AFD; [0C D5 5F, 05, 05]
-2A97; [0C D0 96, 05, 05]
+2AFE; [0C D5 66, 05, 05]
-2A98; [0C D0 9D, 05, 05]
+2AFF; [0C D5 6D, 05, 05]
-2A99; [0C D0 A4, 05, 05]
+2B00; [0C D5 74, 05, 05]
-2A9A; [0C D0 AB, 05, 05]
+2B01; [0C D5 7B, 05, 05]
-2A9B; [0C D0 B2, 05, 05]
+2B02; [0C D5 82, 05, 05]
-2A9C; [0C D0 B9, 05, 05]
+2B03; [0C D5 89, 05, 05]
-2A9D; [0C D0 C0, 05, 05]
+2B04; [0C D5 90, 05, 05]
-2A9E; [0C D0 C7, 05, 05]
+2B05; [0C D5 97, 05, 05]
-2A9F; [0C D0 CE, 05, 05]
+2B06; [0C D5 9E, 05, 05]
-2AA0; [0C D0 D5, 05, 05]
+2B07; [0C D5 A5, 05, 05]
-2AA1; [0C D0 DC, 05, 05]
+2B08; [0C D5 AC, 05, 05]
-2AA2; [0C D0 E3, 05, 05]
+2B09; [0C D5 B3, 05, 05]
-2AA3; [0C D0 EA, 05, 05]
+2B0A; [0C D5 BA, 05, 05]
-2AA4; [0C D0 F1, 05, 05]
+2B0B; [0C D5 C1, 05, 05]
-2AA5; [0C D0 F8, 05, 05]
+2B0C; [0C D5 C8, 05, 05]
-2AA6; [0C D0 FF, 05, 05]
+2B0D; [0C D5 CF, 05, 05]
-2AA7; [0C D1 08, 05, 05]
+2B0E; [0C D5 D6, 05, 05]
-2AA8; [0C D1 0F, 05, 05]
+2B0F; [0C D5 DD, 05, 05]
-2AA9; [0C D1 16, 05, 05]
+2B10; [0C D5 E4, 05, 05]
-2AAA; [0C D1 1D, 05, 05]
+2B11; [0C D5 EB, 05, 05]
-2AAB; [0C D1 24, 05, 05]
+2B12; [0C D5 F2, 05, 05]
-2AAC; [0C D1 2B, 05, 05]
+2B13; [0C D5 F9, 05, 05]
-2AAD; [0C D1 32, 05, 05]
+2B14; [0C D6 02, 05, 05]
-2AAE; [0C D1 39, 05, 05]
+2B15; [0C D6 09, 05, 05]
-2AAF; [0C D1 40, 05, 05]
+2B16; [0C D6 10, 05, 05]
-2AB0; [0C D1 47, 05, 05]
+2B17; [0C D6 17, 05, 05]
-2AB1; [0C D1 4E, 05, 05]
+2B18; [0C D6 1E, 05, 05]
-2AB2; [0C D1 55, 05, 05]
+2B19; [0C D6 25, 05, 05]
-2AB3; [0C D1 5C, 05, 05]
+2B1A; [0C D6 2C, 05, 05]
-2AB4; [0C D1 63, 05, 05]
+2B1B; [0C D6 33, 05, 05]
-2AB5; [0C D1 6A, 05, 05]
+2B1C; [0C D6 3A, 05, 05]
-2AB6; [0C D1 71, 05, 05]
+2B1D; [0C D6 41, 05, 05]
-2AB7; [0C D1 78, 05, 05]
+2B1E; [0C D6 48, 05, 05]
-2AB8; [0C D1 7F, 05, 05]
+2B1F; [0C D6 4F, 05, 05]
-2AB9; [0C D1 86, 05, 05]
+2B20; [0C D6 56, 05, 05]
-2ABA; [0C D1 8D, 05, 05]
+2B21; [0C D6 5D, 05, 05]
-2ABB; [0C D1 94, 05, 05]
+2B22; [0C D6 64, 05, 05]
-2ABC; [0C D1 9B, 05, 05]
+2B23; [0C D6 6B, 05, 05]
-2ABD; [0C D1 A2, 05, 05]
+2B24; [0C D6 72, 05, 05]
-2ABE; [0C D1 A9, 05, 05]
+2B25; [0C D6 79, 05, 05]
-2ABF; [0C D1 B0, 05, 05]
+2B26; [0C D6 80, 05, 05]
-2AC0; [0C D1 B7, 05, 05]
+2B27; [0C D6 87, 05, 05]
-2AC1; [0C D1 BE, 05, 05]
+2B28; [0C D6 8E, 05, 05]
-2AC2; [0C D1 C5, 05, 05]
+2B29; [0C D6 95, 05, 05]
-2AC3; [0C D1 CC, 05, 05]
+2B2A; [0C D6 9C, 05, 05]
-2AC4; [0C D1 D3, 05, 05]
+2B2B; [0C D6 A3, 05, 05]
-2AC5; [0C D1 DA, 05, 05]
+2B2C; [0C D6 AA, 05, 05]
-2AC6; [0C D1 E1, 05, 05]
+2B2D; [0C D6 B1, 05, 05]
-2AC7; [0C D1 E8, 05, 05]
+2B2E; [0C D6 B8, 05, 05]
-2AC8; [0C D1 EF, 05, 05]
+2B2F; [0C D6 BF, 05, 05]
-2AC9; [0C D1 F6, 05, 05]
+2B30; [0C D6 C6, 05, 05]
-2ACA; [0C D1 FD, 05, 05]
+2B31; [0C D6 CD, 05, 05]
-2ACB; [0C D2 06, 05, 05]
+2B32; [0C D6 D4, 05, 05]
-2ACC; [0C D2 0D, 05, 05]
+2B33; [0C D6 DB, 05, 05]
-2ACD; [0C D2 14, 05, 05]
+2B34; [0C D6 E2, 05, 05]
-2ACE; [0C D2 1B, 05, 05]
+2B35; [0C D6 E9, 05, 05]
-2ACF; [0C D2 22, 05, 05]
+2B36; [0C D6 F0, 05, 05]
-2AD0; [0C D2 29, 05, 05]
+2B37; [0C D6 F7, 05, 05]
-2AD1; [0C D2 30, 05, 05]
+2B38; [0C D6 FE, 05, 05]
-2AD2; [0C D2 37, 05, 05]
+2B39; [0C D7 07, 05, 05]
-2AD3; [0C D2 3E, 05, 05]
+2B3A; [0C D7 0E, 05, 05]
-2AD4; [0C D2 45, 05, 05]
+2B3B; [0C D7 15, 05, 05]
-2AD5; [0C D2 4C, 05, 05]
+2B3C; [0C D7 1C, 05, 05]
-2AD6; [0C D2 53, 05, 05]
+2B3D; [0C D7 23, 05, 05]
-2AD7; [0C D2 5A, 05, 05]
+2B3E; [0C D7 2A, 05, 05]
-2AD8; [0C D2 61, 05, 05]
+2B3F; [0C D7 31, 05, 05]
-2AD9; [0C D2 68, 05, 05]
+2B40; [0C D7 38, 05, 05]
-2ADA; [0C D2 6F, 05, 05]
+2B41; [0C D7 3F, 05, 05]
-2ADB; [0C D2 76, 05, 05]
+2B42; [0C D7 46, 05, 05]
-2ADD; [0C D2 7D, 05, 05]
-2ADC; [0C D2 7D, 05, 05][, 9E, 05]
+2B43; [0C D7 4D, 05, 05]
-2ADE; [0C D2 84, 05, 05]
+2B44; [0C D7 54, 05, 05]
-2ADF; [0C D2 8B, 05, 05]
+2B45; [0C D7 5B, 05, 05]
-2AE0; [0C D2 92, 05, 05]
+2B46; [0C D7 62, 05, 05]
-2AE1; [0C D2 99, 05, 05]
+2B47; [0C D7 69, 05, 05]
-2AE2; [0C D2 A0, 05, 05]
+2B48; [0C D7 70, 05, 05]
-2AE3; [0C D2 A7, 05, 05]
+2B49; [0C D7 77, 05, 05]
-2AE4; [0C D2 AE, 05, 05]
+2B4A; [0C D7 7E, 05, 05]
-2AE5; [0C D2 B5, 05, 05]
+2B4B; [0C D7 85, 05, 05]
-2AE6; [0C D2 BC, 05, 05]
+2B4C; [0C D7 8C, 05, 05]
-2AE7; [0C D2 C3, 05, 05]
+2B4D; [0C D7 93, 05, 05]
-2AE8; [0C D2 CA, 05, 05]
+2B4E; [0C D7 9A, 05, 05]
-2AE9; [0C D2 D1, 05, 05]
+2B4F; [0C D7 A1, 05, 05]
-2AEA; [0C D2 D8, 05, 05]
+2B50; [0C D7 A8, 05, 05]
-2AEB; [0C D2 DF, 05, 05]
+2B51; [0C D7 AF, 05, 05]
-2AEC; [0C D2 E6, 05, 05]
+2B52; [0C D7 B6, 05, 05]
-2AED; [0C D2 ED, 05, 05]
+2B53; [0C D7 BD, 05, 05]
-2AEE; [0C D2 F4, 05, 05]
+2B54; [0C D7 C4, 05, 05]
-2AEF; [0C D2 FB, 05, 05]
+2B55; [0C D7 CB, 05, 05]
-2AF0; [0C D3 04, 05, 05]
+2B56; [0C D7 D2, 05, 05]
-2AF1; [0C D3 0B, 05, 05]
+2B57; [0C D7 D9, 05, 05]
-2AF2; [0C D3 12, 05, 05]
+2B58; [0C D7 E0, 05, 05]
-2AF3; [0C D3 19, 05, 05]
+2B59; [0C D7 E7, 05, 05]
-2AF4; [0C D3 20, 05, 05]
+2B5A; [0C D7 EE, 05, 05]
-2AF5; [0C D3 27, 05, 05]
+2B5B; [0C D7 F5, 05, 05]
-2AF6; [0C D3 2E, 05, 05]
+2B5C; [0C D7 FC, 05, 05]
-2AF7; [0C D3 35, 05, 05]
+2B5D; [0C D8 05, 05, 05]
-2AF8; [0C D3 3C, 05, 05]
+2B5E; [0C D8 0C, 05, 05]
-2AF9; [0C D3 43, 05, 05]
+2B5F; [0C D8 13, 05, 05]
-2AFA; [0C D3 4A, 05, 05]
+2B60; [0C D8 1A, 05, 05]
-2AFB; [0C D3 51, 05, 05]
+2B61; [0C D8 21, 05, 05]
-2AFC; [0C D3 58, 05, 05]
+2B62; [0C D8 28, 05, 05]
-2AFD; [0C D3 5F, 05, 05]
+2B63; [0C D8 2F, 05, 05]
-2AFE; [0C D3 66, 05, 05]
+2B64; [0C D8 36, 05, 05]
-2AFF; [0C D3 6D, 05, 05]
+2B65; [0C D8 3D, 05, 05]
-2B00; [0C D3 74, 05, 05]
+2B66; [0C D8 44, 05, 05]
-2B01; [0C D3 7B, 05, 05]
+2B67; [0C D8 4B, 05, 05]
-2B02; [0C D3 82, 05, 05]
+2B68; [0C D8 52, 05, 05]
-2B03; [0C D3 89, 05, 05]
+2B69; [0C D8 59, 05, 05]
-2B04; [0C D3 90, 05, 05]
+2B6A; [0C D8 60, 05, 05]
-2B05; [0C D3 97, 05, 05]
+2B6B; [0C D8 67, 05, 05]
-2B06; [0C D3 9E, 05, 05]
+2B6C; [0C D8 6E, 05, 05]
-2B07; [0C D3 A5, 05, 05]
+2B6D; [0C D8 75, 05, 05]
-2B08; [0C D3 AC, 05, 05]
+2B6E; [0C D8 7C, 05, 05]
-2B09; [0C D3 B3, 05, 05]
+2B6F; [0C D8 83, 05, 05]
-2B0A; [0C D3 BA, 05, 05]
+2B70; [0C D8 8A, 05, 05]
-2B0B; [0C D3 C1, 05, 05]
+2B71; [0C D8 91, 05, 05]
-2B0C; [0C D3 C8, 05, 05]
+2B72; [0C D8 98, 05, 05]
-2B0D; [0C D3 CF, 05, 05]
+2B73; [0C D8 9F, 05, 05]
-2B0E; [0C D3 D6, 05, 05]
+2B76; [0C D8 A6, 05, 05]
-2B0F; [0C D3 DD, 05, 05]
+2B77; [0C D8 AD, 05, 05]
-2B10; [0C D3 E4, 05, 05]
+2B78; [0C D8 B4, 05, 05]
-2B11; [0C D3 EB, 05, 05]
+2B79; [0C D8 BB, 05, 05]
-2B12; [0C D3 F2, 05, 05]
+2B7A; [0C D8 C2, 05, 05]
-2B13; [0C D3 F9, 05, 05]
+2B7B; [0C D8 C9, 05, 05]
-2B14; [0C D4 02, 05, 05]
+2B7C; [0C D8 D0, 05, 05]
-2B15; [0C D4 09, 05, 05]
+2B7D; [0C D8 D7, 05, 05]
-2B16; [0C D4 10, 05, 05]
+2B7E; [0C D8 DE, 05, 05]
-2B17; [0C D4 17, 05, 05]
+2B7F; [0C D8 E5, 05, 05]
-2B18; [0C D4 1E, 05, 05]
+2B80; [0C D8 EC, 05, 05]
-2B19; [0C D4 25, 05, 05]
+2B81; [0C D8 F3, 05, 05]
-2B1A; [0C D4 2C, 05, 05]
+2B82; [0C D8 FA, 05, 05]
-2B1B; [0C D4 33, 05, 05]
+2B83; [0C D9 03, 05, 05]
-2B1C; [0C D4 3A, 05, 05]
+2B84; [0C D9 0A, 05, 05]
-2B1D; [0C D4 41, 05, 05]
+2B85; [0C D9 11, 05, 05]
-2B1E; [0C D4 48, 05, 05]
+2B86; [0C D9 18, 05, 05]
-2B1F; [0C D4 4F, 05, 05]
+2B87; [0C D9 1F, 05, 05]
-2B20; [0C D4 56, 05, 05]
+2B88; [0C D9 26, 05, 05]
-2B21; [0C D4 5D, 05, 05]
+2B89; [0C D9 2D, 05, 05]
-2B22; [0C D4 64, 05, 05]
+2B8A; [0C D9 34, 05, 05]
-2B23; [0C D4 6B, 05, 05]
+2B8B; [0C D9 3B, 05, 05]
-2B24; [0C D4 72, 05, 05]
+2B8C; [0C D9 42, 05, 05]
-2B25; [0C D4 79, 05, 05]
+2B8D; [0C D9 49, 05, 05]
-2B26; [0C D4 80, 05, 05]
+2B8E; [0C D9 50, 05, 05]
-2B27; [0C D4 87, 05, 05]
+2B8F; [0C D9 57, 05, 05]
-2B28; [0C D4 8E, 05, 05]
+2B90; [0C D9 5E, 05, 05]
-2B29; [0C D4 95, 05, 05]
+2B91; [0C D9 65, 05, 05]
-2B2A; [0C D4 9C, 05, 05]
+2B92; [0C D9 6C, 05, 05]
-2B2B; [0C D4 A3, 05, 05]
+2B93; [0C D9 73, 05, 05]
-2B2C; [0C D4 AA, 05, 05]
+2B94; [0C D9 7A, 05, 05]
-2B2D; [0C D4 B1, 05, 05]
+2B95; [0C D9 81, 05, 05]
-2B2E; [0C D4 B8, 05, 05]
+2B98; [0C D9 88, 05, 05]
-2B2F; [0C D4 BF, 05, 05]
+2B99; [0C D9 8F, 05, 05]
-2B30; [0C D4 C6, 05, 05]
+2B9A; [0C D9 96, 05, 05]
-2B31; [0C D4 CD, 05, 05]
+2B9B; [0C D9 9D, 05, 05]
-2B32; [0C D4 D4, 05, 05]
+2B9C; [0C D9 A4, 05, 05]
-2B33; [0C D4 DB, 05, 05]
+2B9D; [0C D9 AB, 05, 05]
-2B34; [0C D4 E2, 05, 05]
+2B9E; [0C D9 B2, 05, 05]
-2B35; [0C D4 E9, 05, 05]
+2B9F; [0C D9 B9, 05, 05]
-2B36; [0C D4 F0, 05, 05]
+2BA0; [0C D9 C0, 05, 05]
-2B37; [0C D4 F7, 05, 05]
+2BA1; [0C D9 C7, 05, 05]
-2B38; [0C D4 FE, 05, 05]
+2BA2; [0C D9 CE, 05, 05]
-2B39; [0C D5 07, 05, 05]
+2BA3; [0C D9 D5, 05, 05]
-2B3A; [0C D5 0E, 05, 05]
+2BA4; [0C D9 DC, 05, 05]
-2B3B; [0C D5 15, 05, 05]
+2BA5; [0C D9 E3, 05, 05]
-2B3C; [0C D5 1C, 05, 05]
+2BA6; [0C D9 EA, 05, 05]
-2B3D; [0C D5 23, 05, 05]
+2BA7; [0C D9 F1, 05, 05]
-2B3E; [0C D5 2A, 05, 05]
+2BA8; [0C D9 F8, 05, 05]
-2B3F; [0C D5 31, 05, 05]
+2BA9; [0C D9 FF, 05, 05]
-2B40; [0C D5 38, 05, 05]
+2BAA; [0C DA 08, 05, 05]
-2B41; [0C D5 3F, 05, 05]
+2BAB; [0C DA 0F, 05, 05]
-2B42; [0C D5 46, 05, 05]
+2BAC; [0C DA 16, 05, 05]
-2B43; [0C D5 4D, 05, 05]
+2BAD; [0C DA 1D, 05, 05]
-2B44; [0C D5 54, 05, 05]
+2BAE; [0C DA 24, 05, 05]
-2B45; [0C D5 5B, 05, 05]
+2BAF; [0C DA 2B, 05, 05]
-2B46; [0C D5 62, 05, 05]
+2BB0; [0C DA 32, 05, 05]
-2B47; [0C D5 69, 05, 05]
+2BB1; [0C DA 39, 05, 05]
-2B48; [0C D5 70, 05, 05]
+2BB2; [0C DA 40, 05, 05]
-2B49; [0C D5 77, 05, 05]
+2BB3; [0C DA 47, 05, 05]
-2B4A; [0C D5 7E, 05, 05]
+2BB4; [0C DA 4E, 05, 05]
-2B4B; [0C D5 85, 05, 05]
+2BB5; [0C DA 55, 05, 05]
-2B4C; [0C D5 8C, 05, 05]
+2BB6; [0C DA 5C, 05, 05]
-2B4D; [0C D5 93, 05, 05]
+2BB7; [0C DA 63, 05, 05]
-2B4E; [0C D5 9A, 05, 05]
+2BB8; [0C DA 6A, 05, 05]
-2B4F; [0C D5 A1, 05, 05]
+2BB9; [0C DA 71, 05, 05]
-2B50; [0C D5 A8, 05, 05]
+2BBA; [0C DA 78, 05, 05]
-2B51; [0C D5 AF, 05, 05]
+2BBB; [0C DA 7F, 05, 05]
-2B52; [0C D5 B6, 05, 05]
+2BBC; [0C DA 86, 05, 05]
-2B53; [0C D5 BD, 05, 05]
+2BBD; [0C DA 8D, 05, 05]
-2B54; [0C D5 C4, 05, 05]
+2BBE; [0C DA 94, 05, 05]
-2B55; [0C D5 CB, 05, 05]
+2BBF; [0C DA 9B, 05, 05]
-2B56; [0C D5 D2, 05, 05]
+2BC0; [0C DA A2, 05, 05]
-2B57; [0C D5 D9, 05, 05]
+2BC1; [0C DA A9, 05, 05]
-2B58; [0C D5 E0, 05, 05]
+2BC2; [0C DA B0, 05, 05]
-2B59; [0C D5 E7, 05, 05]
+2BC3; [0C DA B7, 05, 05]
-2B5A; [0C D5 EE, 05, 05]
+2BC4; [0C DA BE, 05, 05]
-2B5B; [0C D5 F5, 05, 05]
+2BC5; [0C DA C5, 05, 05]
-2B5C; [0C D5 FC, 05, 05]
+2BC6; [0C DA CC, 05, 05]
-2B5D; [0C D6 05, 05, 05]
+2BC7; [0C DA D3, 05, 05]
-2B5E; [0C D6 0C, 05, 05]
+2BC8; [0C DA DA, 05, 05]
-2B5F; [0C D6 13, 05, 05]
+2BCA; [0C DA E1, 05, 05]
-2B60; [0C D6 1A, 05, 05]
+2BCB; [0C DA E8, 05, 05]
-2B61; [0C D6 21, 05, 05]
+2BCC; [0C DA EF, 05, 05]
-2B62; [0C D6 28, 05, 05]
+2BCD; [0C DA F6, 05, 05]
-2B63; [0C D6 2F, 05, 05]
+2BCE; [0C DA FD, 05, 05]
-2B64; [0C D6 36, 05, 05]
+2BCF; [0C DB 06, 05, 05]
-2B65; [0C D6 3D, 05, 05]
+2BD0; [0C DB 0D, 05, 05]
-2B66; [0C D6 44, 05, 05]
+2BD1; [0C DB 14, 05, 05]
-2B67; [0C D6 4B, 05, 05]
+2BD2; [0C DB 1B, 05, 05]
-2B68; [0C D6 52, 05, 05]
+2BD3; [0C DB 22, 05, 05]
-2B69; [0C D6 59, 05, 05]
+2BD4; [0C DB 29, 05, 05]
-2B6A; [0C D6 60, 05, 05]
+2BD5; [0C DB 30, 05, 05]
-2B6B; [0C D6 67, 05, 05]
+2BD6; [0C DB 37, 05, 05]
-2B6C; [0C D6 6E, 05, 05]
+2BD7; [0C DB 3E, 05, 05]
-2B6D; [0C D6 75, 05, 05]
+2BD8; [0C DB 45, 05, 05]
-2B6E; [0C D6 7C, 05, 05]
+2BD9; [0C DB 4C, 05, 05]
-2B6F; [0C D6 83, 05, 05]
+2BDA; [0C DB 53, 05, 05]
-2B70; [0C D6 8A, 05, 05]
+2BDB; [0C DB 5A, 05, 05]
-2B71; [0C D6 91, 05, 05]
+2BDC; [0C DB 61, 05, 05]
-2B72; [0C D6 98, 05, 05]
+2BDD; [0C DB 68, 05, 05]
-2B73; [0C D6 9F, 05, 05]
+2BDE; [0C DB 6F, 05, 05]
-2B76; [0C D6 A6, 05, 05]
+2BDF; [0C DB 76, 05, 05]
-2B77; [0C D6 AD, 05, 05]
+2BE0; [0C DB 7D, 05, 05]
-2B78; [0C D6 B4, 05, 05]
+2BE1; [0C DB 84, 05, 05]
-2B79; [0C D6 BB, 05, 05]
+2BE2; [0C DB 8B, 05, 05]
-2B7A; [0C D6 C2, 05, 05]
+2BE3; [0C DB 92, 05, 05]
-2B7B; [0C D6 C9, 05, 05]
+2BE4; [0C DB 99, 05, 05]
-2B7C; [0C D6 D0, 05, 05]
+2BE5; [0C DB A0, 05, 05]
-2B7D; [0C D6 D7, 05, 05]
+2BE6; [0C DB A7, 05, 05]
-2B7E; [0C D6 DE, 05, 05]
+2BE7; [0C DB AE, 05, 05]
-2B7F; [0C D6 E5, 05, 05]
+2BE8; [0C DB B5, 05, 05]
-2B80; [0C D6 EC, 05, 05]
+2BE9; [0C DB BC, 05, 05]
-2B81; [0C D6 F3, 05, 05]
+2BEA; [0C DB C3, 05, 05]
-2B82; [0C D6 FA, 05, 05]
+2BEB; [0C DB CA, 05, 05]
-2B83; [0C D7 03, 05, 05]
+2BEC; [0C DB D1, 05, 05]
-2B84; [0C D7 0A, 05, 05]
+2BED; [0C DB D8, 05, 05]
-2B85; [0C D7 11, 05, 05]
+2BEE; [0C DB DF, 05, 05]
-2B86; [0C D7 18, 05, 05]
+2BEF; [0C DB E6, 05, 05]
-2B87; [0C D7 1F, 05, 05]
+2BF0; [0C DB ED, 05, 05]
-2B88; [0C D7 26, 05, 05]
+2BF1; [0C DB F4, 05, 05]
-2B89; [0C D7 2D, 05, 05]
+2BF2; [0C DB FB, 05, 05]
-2B8A; [0C D7 34, 05, 05]
+2BF3; [0C DC 04, 05, 05]
-2B8B; [0C D7 3B, 05, 05]
+2BF4; [0C DC 0B, 05, 05]
-2B8C; [0C D7 42, 05, 05]
+2BF5; [0C DC 12, 05, 05]
-2B8D; [0C D7 49, 05, 05]
+2BF6; [0C DC 19, 05, 05]
-2B8E; [0C D7 50, 05, 05]
+2BF7; [0C DC 20, 05, 05]
-2B8F; [0C D7 57, 05, 05]
+2BF8; [0C DC 27, 05, 05]
-2B90; [0C D7 5E, 05, 05]
+2BF9; [0C DC 2E, 05, 05]
-2B91; [0C D7 65, 05, 05]
+2BFA; [0C DC 35, 05, 05]
-2B92; [0C D7 6C, 05, 05]
+2BFB; [0C DC 3C, 05, 05]
-2B93; [0C D7 73, 05, 05]
+2BFC; [0C DC 43, 05, 05]
-2B94; [0C D7 7A, 05, 05]
+2BFD; [0C DC 4A, 05, 05]
-2B95; [0C D7 81, 05, 05]
+2BFE; [0C DC 51, 05, 05]
-2B98; [0C D7 88, 05, 05]
+2CE5; [0C DC 58, 05, 05]
-2B99; [0C D7 8F, 05, 05]
+2CE6; [0C DC 5F, 05, 05]
-2B9A; [0C D7 96, 05, 05]
+2CE7; [0C DC 66, 05, 05]
-2B9B; [0C D7 9D, 05, 05]
+2CE8; [0C DC 6D, 05, 05]
-2B9C; [0C D7 A4, 05, 05]
+2CE9; [0C DC 74, 05, 05]
-2B9D; [0C D7 AB, 05, 05]
+2CEA; [0C DC 7B, 05, 05]
-2B9E; [0C D7 B2, 05, 05]
+2800; [0C DC 82, 05, 05]
-2B9F; [0C D7 B9, 05, 05]
+2801; [0C DC 89, 05, 05]
-2BA0; [0C D7 C0, 05, 05]
+2802; [0C DC 90, 05, 05]
-2BA1; [0C D7 C7, 05, 05]
+2803; [0C DC 97, 05, 05]
-2BA2; [0C D7 CE, 05, 05]
+2804; [0C DC 9E, 05, 05]
-2BA3; [0C D7 D5, 05, 05]
+2805; [0C DC A5, 05, 05]
-2BA4; [0C D7 DC, 05, 05]
+2806; [0C DC AC, 05, 05]
-2BA5; [0C D7 E3, 05, 05]
+2807; [0C DC B3, 05, 05]
-2BA6; [0C D7 EA, 05, 05]
+2808; [0C DC BA, 05, 05]
-2BA7; [0C D7 F1, 05, 05]
+2809; [0C DC C1, 05, 05]
-2BA8; [0C D7 F8, 05, 05]
+280A; [0C DC C8, 05, 05]
-2BA9; [0C D7 FF, 05, 05]
+280B; [0C DC CF, 05, 05]
-2BAA; [0C D8 08, 05, 05]
+280C; [0C DC D6, 05, 05]
-2BAB; [0C D8 0F, 05, 05]
+280D; [0C DC DD, 05, 05]
-2BAC; [0C D8 16, 05, 05]
+280E; [0C DC E4, 05, 05]
-2BAD; [0C D8 1D, 05, 05]
+280F; [0C DC EB, 05, 05]
-2BAE; [0C D8 24, 05, 05]
+2810; [0C DC F2, 05, 05]
-2BAF; [0C D8 2B, 05, 05]
+2811; [0C DC F9, 05, 05]
-2BB0; [0C D8 32, 05, 05]
+2812; [0C DD 02, 05, 05]
-2BB1; [0C D8 39, 05, 05]
+2813; [0C DD 09, 05, 05]
-2BB2; [0C D8 40, 05, 05]
+2814; [0C DD 10, 05, 05]
-2BB3; [0C D8 47, 05, 05]
+2815; [0C DD 17, 05, 05]
-2BB4; [0C D8 4E, 05, 05]
+2816; [0C DD 1E, 05, 05]
-2BB5; [0C D8 55, 05, 05]
+2817; [0C DD 25, 05, 05]
-2BB6; [0C D8 5C, 05, 05]
+2818; [0C DD 2C, 05, 05]
-2BB7; [0C D8 63, 05, 05]
+2819; [0C DD 33, 05, 05]
-2BB8; [0C D8 6A, 05, 05]
+281A; [0C DD 3A, 05, 05]
-2BB9; [0C D8 71, 05, 05]
+281B; [0C DD 41, 05, 05]
-2BBD; [0C D8 78, 05, 05]
+281C; [0C DD 48, 05, 05]
-2BBE; [0C D8 7F, 05, 05]
+281D; [0C DD 4F, 05, 05]
-2BBF; [0C D8 86, 05, 05]
+281E; [0C DD 56, 05, 05]
-2BC0; [0C D8 8D, 05, 05]
+281F; [0C DD 5D, 05, 05]
-2BC1; [0C D8 94, 05, 05]
+2820; [0C DD 64, 05, 05]
-2BC2; [0C D8 9B, 05, 05]
+2821; [0C DD 6B, 05, 05]
-2BC3; [0C D8 A2, 05, 05]
+2822; [0C DD 72, 05, 05]
-2BC4; [0C D8 A9, 05, 05]
+2823; [0C DD 79, 05, 05]
-2BC5; [0C D8 B0, 05, 05]
+2824; [0C DD 80, 05, 05]
-2BC6; [0C D8 B7, 05, 05]
+2825; [0C DD 87, 05, 05]
-2BC7; [0C D8 BE, 05, 05]
+2826; [0C DD 8E, 05, 05]
-2BC8; [0C D8 C5, 05, 05]
+2827; [0C DD 95, 05, 05]
-2BCA; [0C D8 CC, 05, 05]
+2828; [0C DD 9C, 05, 05]
-2BCB; [0C D8 D3, 05, 05]
+2829; [0C DD A3, 05, 05]
-2BCC; [0C D8 DA, 05, 05]
+282A; [0C DD AA, 05, 05]
-2BCD; [0C D8 E1, 05, 05]
+282B; [0C DD B1, 05, 05]
-2BCE; [0C D8 E8, 05, 05]
+282C; [0C DD B8, 05, 05]
-2BCF; [0C D8 EF, 05, 05]
+282D; [0C DD BF, 05, 05]
-2BD0; [0C D8 F6, 05, 05]
+282E; [0C DD C6, 05, 05]
-2BD1; [0C D8 FD, 05, 05]
+282F; [0C DD CD, 05, 05]
-2BD2; [0C D9 06, 05, 05]
+2830; [0C DD D4, 05, 05]
-2BEC; [0C D9 0D, 05, 05]
+2831; [0C DD DB, 05, 05]
-2BED; [0C D9 14, 05, 05]
+2832; [0C DD E2, 05, 05]
-2BEE; [0C D9 1B, 05, 05]
+2833; [0C DD E9, 05, 05]
-2BEF; [0C D9 22, 05, 05]
+2834; [0C DD F0, 05, 05]
-2CE5; [0C D9 29, 05, 05]
+2835; [0C DD F7, 05, 05]
-2CE6; [0C D9 30, 05, 05]
+2836; [0C DD FE, 05, 05]
-2CE7; [0C D9 37, 05, 05]
+2837; [0C DE 07, 05, 05]
-2CE8; [0C D9 3E, 05, 05]
+2838; [0C DE 0E, 05, 05]
-2CE9; [0C D9 45, 05, 05]
+2839; [0C DE 15, 05, 05]
-2CEA; [0C D9 4C, 05, 05]
+283A; [0C DE 1C, 05, 05]
-2800; [0C D9 53, 05, 05]
+283B; [0C DE 23, 05, 05]
-2801; [0C D9 5A, 05, 05]
+283C; [0C DE 2A, 05, 05]
-2802; [0C D9 61, 05, 05]
+283D; [0C DE 31, 05, 05]
-2803; [0C D9 68, 05, 05]
+283E; [0C DE 38, 05, 05]
-2804; [0C D9 6F, 05, 05]
+283F; [0C DE 3F, 05, 05]
-2805; [0C D9 76, 05, 05]
+2840; [0C DE 46, 05, 05]
-2806; [0C D9 7D, 05, 05]
+2841; [0C DE 4D, 05, 05]
-2807; [0C D9 84, 05, 05]
+2842; [0C DE 54, 05, 05]
-2808; [0C D9 8B, 05, 05]
+2843; [0C DE 5B, 05, 05]
-2809; [0C D9 92, 05, 05]
+2844; [0C DE 62, 05, 05]
-280A; [0C D9 99, 05, 05]
+2845; [0C DE 69, 05, 05]
-280B; [0C D9 A0, 05, 05]
+2846; [0C DE 70, 05, 05]
-280C; [0C D9 A7, 05, 05]
+2847; [0C DE 77, 05, 05]
-280D; [0C D9 AE, 05, 05]
+2848; [0C DE 7E, 05, 05]
-280E; [0C D9 B5, 05, 05]
+2849; [0C DE 85, 05, 05]
-280F; [0C D9 BC, 05, 05]
+284A; [0C DE 8C, 05, 05]
-2810; [0C D9 C3, 05, 05]
+284B; [0C DE 93, 05, 05]
-2811; [0C D9 CA, 05, 05]
+284C; [0C DE 9A, 05, 05]
-2812; [0C D9 D1, 05, 05]
+284D; [0C DE A1, 05, 05]
-2813; [0C D9 D8, 05, 05]
+284E; [0C DE A8, 05, 05]
-2814; [0C D9 DF, 05, 05]
+284F; [0C DE AF, 05, 05]
-2815; [0C D9 E6, 05, 05]
+2850; [0C DE B6, 05, 05]
-2816; [0C D9 ED, 05, 05]
+2851; [0C DE BD, 05, 05]
-2817; [0C D9 F4, 05, 05]
+2852; [0C DE C4, 05, 05]
-2818; [0C D9 FB, 05, 05]
+2853; [0C DE CB, 05, 05]
-2819; [0C DA 04, 05, 05]
+2854; [0C DE D2, 05, 05]
-281A; [0C DA 0B, 05, 05]
+2855; [0C DE D9, 05, 05]
-281B; [0C DA 12, 05, 05]
+2856; [0C DE E0, 05, 05]
-281C; [0C DA 19, 05, 05]
+2857; [0C DE E7, 05, 05]
-281D; [0C DA 20, 05, 05]
+2858; [0C DE EE, 05, 05]
-281E; [0C DA 27, 05, 05]
+2859; [0C DE F5, 05, 05]
-281F; [0C DA 2E, 05, 05]
+285A; [0C DE FC, 05, 05]
-2820; [0C DA 35, 05, 05]
+285B; [0C DF 05, 05, 05]
-2821; [0C DA 3C, 05, 05]
+285C; [0C DF 0C, 05, 05]
-2822; [0C DA 43, 05, 05]
+285D; [0C DF 13, 05, 05]
-2823; [0C DA 4A, 05, 05]
+285E; [0C DF 1A, 05, 05]
-2824; [0C DA 51, 05, 05]
+285F; [0C DF 21, 05, 05]
-2825; [0C DA 58, 05, 05]
+2860; [0C DF 28, 05, 05]
-2826; [0C DA 5F, 05, 05]
+2861; [0C DF 2F, 05, 05]
-2827; [0C DA 66, 05, 05]
+2862; [0C DF 36, 05, 05]
-2828; [0C DA 6D, 05, 05]
+2863; [0C DF 3D, 05, 05]
-2829; [0C DA 74, 05, 05]
+2864; [0C DF 44, 05, 05]
-282A; [0C DA 7B, 05, 05]
+2865; [0C DF 4B, 05, 05]
-282B; [0C DA 82, 05, 05]
+2866; [0C DF 52, 05, 05]
-282C; [0C DA 89, 05, 05]
+2867; [0C DF 59, 05, 05]
-282D; [0C DA 90, 05, 05]
+2868; [0C DF 60, 05, 05]
-282E; [0C DA 97, 05, 05]
+2869; [0C DF 67, 05, 05]
-282F; [0C DA 9E, 05, 05]
+286A; [0C DF 6E, 05, 05]
-2830; [0C DA A5, 05, 05]
+286B; [0C DF 75, 05, 05]
-2831; [0C DA AC, 05, 05]
+286C; [0C DF 7C, 05, 05]
-2832; [0C DA B3, 05, 05]
+286D; [0C DF 83, 05, 05]
-2833; [0C DA BA, 05, 05]
+286E; [0C DF 8A, 05, 05]
-2834; [0C DA C1, 05, 05]
+286F; [0C DF 91, 05, 05]
-2835; [0C DA C8, 05, 05]
+2870; [0C DF 98, 05, 05]
-2836; [0C DA CF, 05, 05]
+2871; [0C DF 9F, 05, 05]
-2837; [0C DA D6, 05, 05]
+2872; [0C DF A6, 05, 05]
-2838; [0C DA DD, 05, 05]
+2873; [0C DF AD, 05, 05]
-2839; [0C DA E4, 05, 05]
+2874; [0C DF B4, 05, 05]
-283A; [0C DA EB, 05, 05]
+2875; [0C DF BB, 05, 05]
-283B; [0C DA F2, 05, 05]
+2876; [0C DF C2, 05, 05]
-283C; [0C DA F9, 05, 05]
+2877; [0C DF C9, 05, 05]
-283D; [0C DB 02, 05, 05]
+2878; [0C DF D0, 05, 05]
-283E; [0C DB 09, 05, 05]
+2879; [0C DF D7, 05, 05]
-283F; [0C DB 10, 05, 05]
+287A; [0C DF DE, 05, 05]
-2840; [0C DB 17, 05, 05]
+287B; [0C DF E5, 05, 05]
-2841; [0C DB 1E, 05, 05]
+287C; [0C DF EC, 05, 05]
-2842; [0C DB 25, 05, 05]
+287D; [0C DF F3, 05, 05]
-2843; [0C DB 2C, 05, 05]
+287E; [0C DF FA, 05, 05]
-2844; [0C DB 33, 05, 05]
+287F; [0C E0 03, 05, 05]
-2845; [0C DB 3A, 05, 05]
+2880; [0C E0 0A, 05, 05]
-2846; [0C DB 41, 05, 05]
+2881; [0C E0 11, 05, 05]
-2847; [0C DB 48, 05, 05]
+2882; [0C E0 18, 05, 05]
-2848; [0C DB 4F, 05, 05]
+2883; [0C E0 1F, 05, 05]
-2849; [0C DB 56, 05, 05]
+2884; [0C E0 26, 05, 05]
-284A; [0C DB 5D, 05, 05]
+2885; [0C E0 2D, 05, 05]
-284B; [0C DB 64, 05, 05]
+2886; [0C E0 34, 05, 05]
-284C; [0C DB 6B, 05, 05]
+2887; [0C E0 3B, 05, 05]
-284D; [0C DB 72, 05, 05]
+2888; [0C E0 42, 05, 05]
-284E; [0C DB 79, 05, 05]
+2889; [0C E0 49, 05, 05]
-284F; [0C DB 80, 05, 05]
+288A; [0C E0 50, 05, 05]
-2850; [0C DB 87, 05, 05]
+288B; [0C E0 57, 05, 05]
-2851; [0C DB 8E, 05, 05]
+288C; [0C E0 5E, 05, 05]
-2852; [0C DB 95, 05, 05]
+288D; [0C E0 65, 05, 05]
-2853; [0C DB 9C, 05, 05]
+288E; [0C E0 6C, 05, 05]
-2854; [0C DB A3, 05, 05]
+288F; [0C E0 73, 05, 05]
-2855; [0C DB AA, 05, 05]
+2890; [0C E0 7A, 05, 05]
-2856; [0C DB B1, 05, 05]
+2891; [0C E0 81, 05, 05]
-2857; [0C DB B8, 05, 05]
+2892; [0C E0 88, 05, 05]
-2858; [0C DB BF, 05, 05]
+2893; [0C E0 8F, 05, 05]
-2859; [0C DB C6, 05, 05]
+2894; [0C E0 96, 05, 05]
-285A; [0C DB CD, 05, 05]
+2895; [0C E0 9D, 05, 05]
-285B; [0C DB D4, 05, 05]
+2896; [0C E0 A4, 05, 05]
-285C; [0C DB DB, 05, 05]
+2897; [0C E0 AB, 05, 05]
-285D; [0C DB E2, 05, 05]
+2898; [0C E0 B2, 05, 05]
-285E; [0C DB E9, 05, 05]
+2899; [0C E0 B9, 05, 05]
-285F; [0C DB F0, 05, 05]
+289A; [0C E0 C0, 05, 05]
-2860; [0C DB F7, 05, 05]
+289B; [0C E0 C7, 05, 05]
-2861; [0C DB FE, 05, 05]
+289C; [0C E0 CE, 05, 05]
-2862; [0C DC 07, 05, 05]
+289D; [0C E0 D5, 05, 05]
-2863; [0C DC 0E, 05, 05]
+289E; [0C E0 DC, 05, 05]
-2864; [0C DC 15, 05, 05]
+289F; [0C E0 E3, 05, 05]
-2865; [0C DC 1C, 05, 05]
+28A0; [0C E0 EA, 05, 05]
-2866; [0C DC 23, 05, 05]
+28A1; [0C E0 F1, 05, 05]
-2867; [0C DC 2A, 05, 05]
+28A2; [0C E0 F8, 05, 05]
-2868; [0C DC 31, 05, 05]
+28A3; [0C E0 FF, 05, 05]
-2869; [0C DC 38, 05, 05]
+28A4; [0C E1 08, 05, 05]
-286A; [0C DC 3F, 05, 05]
+28A5; [0C E1 0F, 05, 05]
-286B; [0C DC 46, 05, 05]
+28A6; [0C E1 16, 05, 05]
-286C; [0C DC 4D, 05, 05]
+28A7; [0C E1 1D, 05, 05]
-286D; [0C DC 54, 05, 05]
+28A8; [0C E1 24, 05, 05]
-286E; [0C DC 5B, 05, 05]
+28A9; [0C E1 2B, 05, 05]
-286F; [0C DC 62, 05, 05]
+28AA; [0C E1 32, 05, 05]
-2870; [0C DC 69, 05, 05]
+28AB; [0C E1 39, 05, 05]
-2871; [0C DC 70, 05, 05]
+28AC; [0C E1 40, 05, 05]
-2872; [0C DC 77, 05, 05]
+28AD; [0C E1 47, 05, 05]
-2873; [0C DC 7E, 05, 05]
+28AE; [0C E1 4E, 05, 05]
-2874; [0C DC 85, 05, 05]
+28AF; [0C E1 55, 05, 05]
-2875; [0C DC 8C, 05, 05]
+28B0; [0C E1 5C, 05, 05]
-2876; [0C DC 93, 05, 05]
+28B1; [0C E1 63, 05, 05]
-2877; [0C DC 9A, 05, 05]
+28B2; [0C E1 6A, 05, 05]
-2878; [0C DC A1, 05, 05]
+28B3; [0C E1 71, 05, 05]
-2879; [0C DC A8, 05, 05]
+28B4; [0C E1 78, 05, 05]
-287A; [0C DC AF, 05, 05]
+28B5; [0C E1 7F, 05, 05]
-287B; [0C DC B6, 05, 05]
+28B6; [0C E1 86, 05, 05]
-287C; [0C DC BD, 05, 05]
+28B7; [0C E1 8D, 05, 05]
-287D; [0C DC C4, 05, 05]
+28B8; [0C E1 94, 05, 05]
-287E; [0C DC CB, 05, 05]
+28B9; [0C E1 9B, 05, 05]
-287F; [0C DC D2, 05, 05]
+28BA; [0C E1 A2, 05, 05]
-2880; [0C DC D9, 05, 05]
+28BB; [0C E1 A9, 05, 05]
-2881; [0C DC E0, 05, 05]
+28BC; [0C E1 B0, 05, 05]
-2882; [0C DC E7, 05, 05]
+28BD; [0C E1 B7, 05, 05]
-2883; [0C DC EE, 05, 05]
+28BE; [0C E1 BE, 05, 05]
-2884; [0C DC F5, 05, 05]
+28BF; [0C E1 C5, 05, 05]
-2885; [0C DC FC, 05, 05]
+28C0; [0C E1 CC, 05, 05]
-2886; [0C DD 05, 05, 05]
+28C1; [0C E1 D3, 05, 05]
-2887; [0C DD 0C, 05, 05]
+28C2; [0C E1 DA, 05, 05]
-2888; [0C DD 13, 05, 05]
+28C3; [0C E1 E1, 05, 05]
-2889; [0C DD 1A, 05, 05]
+28C4; [0C E1 E8, 05, 05]
-288A; [0C DD 21, 05, 05]
+28C5; [0C E1 EF, 05, 05]
-288B; [0C DD 28, 05, 05]
+28C6; [0C E1 F6, 05, 05]
-288C; [0C DD 2F, 05, 05]
+28C7; [0C E1 FD, 05, 05]
-288D; [0C DD 36, 05, 05]
+28C8; [0C E2 06, 05, 05]
-288E; [0C DD 3D, 05, 05]
+28C9; [0C E2 0D, 05, 05]
-288F; [0C DD 44, 05, 05]
+28CA; [0C E2 14, 05, 05]
-2890; [0C DD 4B, 05, 05]
+28CB; [0C E2 1B, 05, 05]
-2891; [0C DD 52, 05, 05]
+28CC; [0C E2 22, 05, 05]
-2892; [0C DD 59, 05, 05]
+28CD; [0C E2 29, 05, 05]
-2893; [0C DD 60, 05, 05]
+28CE; [0C E2 30, 05, 05]
-2894; [0C DD 67, 05, 05]
+28CF; [0C E2 37, 05, 05]
-2895; [0C DD 6E, 05, 05]
+28D0; [0C E2 3E, 05, 05]
-2896; [0C DD 75, 05, 05]
+28D1; [0C E2 45, 05, 05]
-2897; [0C DD 7C, 05, 05]
+28D2; [0C E2 4C, 05, 05]
-2898; [0C DD 83, 05, 05]
+28D3; [0C E2 53, 05, 05]
-2899; [0C DD 8A, 05, 05]
+28D4; [0C E2 5A, 05, 05]
-289A; [0C DD 91, 05, 05]
+28D5; [0C E2 61, 05, 05]
-289B; [0C DD 98, 05, 05]
+28D6; [0C E2 68, 05, 05]
-289C; [0C DD 9F, 05, 05]
+28D7; [0C E2 6F, 05, 05]
-289D; [0C DD A6, 05, 05]
+28D8; [0C E2 76, 05, 05]
-289E; [0C DD AD, 05, 05]
+28D9; [0C E2 7D, 05, 05]
-289F; [0C DD B4, 05, 05]
+28DA; [0C E2 84, 05, 05]
-28A0; [0C DD BB, 05, 05]
+28DB; [0C E2 8B, 05, 05]
-28A1; [0C DD C2, 05, 05]
+28DC; [0C E2 92, 05, 05]
-28A2; [0C DD C9, 05, 05]
+28DD; [0C E2 99, 05, 05]
-28A3; [0C DD D0, 05, 05]
+28DE; [0C E2 A0, 05, 05]
-28A4; [0C DD D7, 05, 05]
+28DF; [0C E2 A7, 05, 05]
-28A5; [0C DD DE, 05, 05]
+28E0; [0C E2 AE, 05, 05]
-28A6; [0C DD E5, 05, 05]
+28E1; [0C E2 B5, 05, 05]
-28A7; [0C DD EC, 05, 05]
+28E2; [0C E2 BC, 05, 05]
-28A8; [0C DD F3, 05, 05]
+28E3; [0C E2 C3, 05, 05]
-28A9; [0C DD FA, 05, 05]
+28E4; [0C E2 CA, 05, 05]
-28AA; [0C DE 03, 05, 05]
+28E5; [0C E2 D1, 05, 05]
-28AB; [0C DE 0A, 05, 05]
+28E6; [0C E2 D8, 05, 05]
-28AC; [0C DE 11, 05, 05]
+28E7; [0C E2 DF, 05, 05]
-28AD; [0C DE 18, 05, 05]
+28E8; [0C E2 E6, 05, 05]
-28AE; [0C DE 1F, 05, 05]
+28E9; [0C E2 ED, 05, 05]
-28AF; [0C DE 26, 05, 05]
+28EA; [0C E2 F4, 05, 05]
-28B0; [0C DE 2D, 05, 05]
+28EB; [0C E2 FB, 05, 05]
-28B1; [0C DE 34, 05, 05]
+28EC; [0C E3 04, 05, 05]
-28B2; [0C DE 3B, 05, 05]
+28ED; [0C E3 0B, 05, 05]
-28B3; [0C DE 42, 05, 05]
+28EE; [0C E3 12, 05, 05]
-28B4; [0C DE 49, 05, 05]
+28EF; [0C E3 19, 05, 05]
-28B5; [0C DE 50, 05, 05]
+28F0; [0C E3 20, 05, 05]
-28B6; [0C DE 57, 05, 05]
+28F1; [0C E3 27, 05, 05]
-28B7; [0C DE 5E, 05, 05]
+28F2; [0C E3 2E, 05, 05]
-28B8; [0C DE 65, 05, 05]
+28F3; [0C E3 35, 05, 05]
-28B9; [0C DE 6C, 05, 05]
+28F4; [0C E3 3C, 05, 05]
-28BA; [0C DE 73, 05, 05]
+28F5; [0C E3 43, 05, 05]
-28BB; [0C DE 7A, 05, 05]
+28F6; [0C E3 4A, 05, 05]
-28BC; [0C DE 81, 05, 05]
+28F7; [0C E3 51, 05, 05]
-28BD; [0C DE 88, 05, 05]
+28F8; [0C E3 58, 05, 05]
-28BE; [0C DE 8F, 05, 05]
+28F9; [0C E3 5F, 05, 05]
-28BF; [0C DE 96, 05, 05]
+28FA; [0C E3 66, 05, 05]
-28C0; [0C DE 9D, 05, 05]
+28FB; [0C E3 6D, 05, 05]
-28C1; [0C DE A4, 05, 05]
+28FC; [0C E3 74, 05, 05]
-28C2; [0C DE AB, 05, 05]
+28FD; [0C E3 7B, 05, 05]
-28C3; [0C DE B2, 05, 05]
+28FE; [0C E3 82, 05, 05]
-28C4; [0C DE B9, 05, 05]
+28FF; [0C E3 89, 05, 05]
-28C5; [0C DE C0, 05, 05]
+268A; [0C E3 90, 05, 05]
-28C6; [0C DE C7, 05, 05]
+268B; [0C E3 97, 05, 05]
-28C7; [0C DE CE, 05, 05]
+268C; [0C E3 9E, 05, 05]
-28C8; [0C DE D5, 05, 05]
+268D; [0C E3 A5, 05, 05]
-28C9; [0C DE DC, 05, 05]
+268E; [0C E3 AC, 05, 05]
-28CA; [0C DE E3, 05, 05]
+268F; [0C E3 B3, 05, 05]
-28CB; [0C DE EA, 05, 05]
+2630; [0C E3 BA, 05, 05]
-28CC; [0C DE F1, 05, 05]
+2631; [0C E3 C1, 05, 05]
-28CD; [0C DE F8, 05, 05]
+2632; [0C E3 C8, 05, 05]
-28CE; [0C DE FF, 05, 05]
+2633; [0C E3 CF, 05, 05]
-28CF; [0C DF 08, 05, 05]
+2634; [0C E3 D6, 05, 05]
-28D0; [0C DF 0F, 05, 05]
+2635; [0C E3 DD, 05, 05]
-28D1; [0C DF 16, 05, 05]
+2636; [0C E3 E4, 05, 05]
-28D2; [0C DF 1D, 05, 05]
+2637; [0C E3 EB, 05, 05]
-28D3; [0C DF 24, 05, 05]
+4DC0; [0C E3 F2, 05, 05]
-28D4; [0C DF 2B, 05, 05]
+4DC1; [0C E3 F9, 05, 05]
-28D5; [0C DF 32, 05, 05]
+4DC2; [0C E4 02, 05, 05]
-28D6; [0C DF 39, 05, 05]
+4DC3; [0C E4 09, 05, 05]
-28D7; [0C DF 40, 05, 05]
+4DC4; [0C E4 10, 05, 05]
-28D8; [0C DF 47, 05, 05]
+4DC5; [0C E4 17, 05, 05]
-28D9; [0C DF 4E, 05, 05]
+4DC6; [0C E4 1E, 05, 05]
-28DA; [0C DF 55, 05, 05]
+4DC7; [0C E4 25, 05, 05]
-28DB; [0C DF 5C, 05, 05]
+4DC8; [0C E4 2C, 05, 05]
-28DC; [0C DF 63, 05, 05]
+4DC9; [0C E4 33, 05, 05]
-28DD; [0C DF 6A, 05, 05]
+4DCA; [0C E4 3A, 05, 05]
-28DE; [0C DF 71, 05, 05]
+4DCB; [0C E4 41, 05, 05]
-28DF; [0C DF 78, 05, 05]
+4DCC; [0C E4 48, 05, 05]
-28E0; [0C DF 7F, 05, 05]
+4DCD; [0C E4 4F, 05, 05]
-28E1; [0C DF 86, 05, 05]
+4DCE; [0C E4 56, 05, 05]
-28E2; [0C DF 8D, 05, 05]
+4DCF; [0C E4 5D, 05, 05]
-28E3; [0C DF 94, 05, 05]
+4DD0; [0C E4 64, 05, 05]
-28E4; [0C DF 9B, 05, 05]
+4DD1; [0C E4 6B, 05, 05]
-28E5; [0C DF A2, 05, 05]
+4DD2; [0C E4 72, 05, 05]
-28E6; [0C DF A9, 05, 05]
+4DD3; [0C E4 79, 05, 05]
-28E7; [0C DF B0, 05, 05]
+4DD4; [0C E4 80, 05, 05]
-28E8; [0C DF B7, 05, 05]
+4DD5; [0C E4 87, 05, 05]
-28E9; [0C DF BE, 05, 05]
+4DD6; [0C E4 8E, 05, 05]
-28EA; [0C DF C5, 05, 05]
+4DD7; [0C E4 95, 05, 05]
-28EB; [0C DF CC, 05, 05]
+4DD8; [0C E4 9C, 05, 05]
-28EC; [0C DF D3, 05, 05]
+4DD9; [0C E4 A3, 05, 05]
-28ED; [0C DF DA, 05, 05]
+4DDA; [0C E4 AA, 05, 05]
-28EE; [0C DF E1, 05, 05]
+4DDB; [0C E4 B1, 05, 05]
-28EF; [0C DF E8, 05, 05]
+4DDC; [0C E4 B8, 05, 05]
-28F0; [0C DF EF, 05, 05]
+4DDD; [0C E4 BF, 05, 05]
-28F1; [0C DF F6, 05, 05]
+4DDE; [0C E4 C6, 05, 05]
-28F2; [0C DF FD, 05, 05]
+4DDF; [0C E4 CD, 05, 05]
-28F3; [0C E0 06, 05, 05]
+4DE0; [0C E4 D4, 05, 05]
-28F4; [0C E0 0D, 05, 05]
+4DE1; [0C E4 DB, 05, 05]
-28F5; [0C E0 14, 05, 05]
+4DE2; [0C E4 E2, 05, 05]
-28F6; [0C E0 1B, 05, 05]
+4DE3; [0C E4 E9, 05, 05]
-28F7; [0C E0 22, 05, 05]
+4DE4; [0C E4 F0, 05, 05]
-28F8; [0C E0 29, 05, 05]
+4DE5; [0C E4 F7, 05, 05]
-28F9; [0C E0 30, 05, 05]
+4DE6; [0C E4 FE, 05, 05]
-28FA; [0C E0 37, 05, 05]
+4DE7; [0C E5 07, 05, 05]
-28FB; [0C E0 3E, 05, 05]
+4DE8; [0C E5 0E, 05, 05]
-28FC; [0C E0 45, 05, 05]
+4DE9; [0C E5 15, 05, 05]
-28FD; [0C E0 4C, 05, 05]
+4DEA; [0C E5 1C, 05, 05]
-28FE; [0C E0 53, 05, 05]
+4DEB; [0C E5 23, 05, 05]
-28FF; [0C E0 5A, 05, 05]
+4DEC; [0C E5 2A, 05, 05]
-268A; [0C E0 61, 05, 05]
+4DED; [0C E5 31, 05, 05]
-268B; [0C E0 68, 05, 05]
+4DEE; [0C E5 38, 05, 05]
-268C; [0C E0 6F, 05, 05]
+4DEF; [0C E5 3F, 05, 05]
-268D; [0C E0 76, 05, 05]
+4DF0; [0C E5 46, 05, 05]
-268E; [0C E0 7D, 05, 05]
+4DF1; [0C E5 4D, 05, 05]
-268F; [0C E0 84, 05, 05]
+4DF2; [0C E5 54, 05, 05]
-2630; [0C E0 8B, 05, 05]
+4DF3; [0C E5 5B, 05, 05]
-2631; [0C E0 92, 05, 05]
+4DF4; [0C E5 62, 05, 05]
-2632; [0C E0 99, 05, 05]
+4DF5; [0C E5 69, 05, 05]
-2633; [0C E0 A0, 05, 05]
+4DF6; [0C E5 70, 05, 05]
-2634; [0C E0 A7, 05, 05]
+4DF7; [0C E5 77, 05, 05]
-2635; [0C E0 AE, 05, 05]
+4DF8; [0C E5 7E, 05, 05]
-2636; [0C E0 B5, 05, 05]
+4DF9; [0C E5 85, 05, 05]
-2637; [0C E0 BC, 05, 05]
+4DFA; [0C E5 8C, 05, 05]
-4DC0; [0C E0 C3, 05, 05]
+4DFB; [0C E5 93, 05, 05]
-4DC1; [0C E0 CA, 05, 05]
+4DFC; [0C E5 9A, 05, 05]
-4DC2; [0C E0 D1, 05, 05]
+4DFD; [0C E5 A1, 05, 05]
-4DC3; [0C E0 D8, 05, 05]
+4DFE; [0C E5 A8, 05, 05]
-4DC4; [0C E0 DF, 05, 05]
+4DFF; [0C E5 AF, 05, 05]
-4DC5; [0C E0 E6, 05, 05]
+1D300; [0C E5 B6, 05, 05]
-4DC6; [0C E0 ED, 05, 05]
+1D301; [0C E5 BD, 05, 05]
-4DC7; [0C E0 F4, 05, 05]
+1D302; [0C E5 C4, 05, 05]
-4DC8; [0C E0 FB, 05, 05]
+1D303; [0C E5 CB, 05, 05]
-4DC9; [0C E1 04, 05, 05]
+1D304; [0C E5 D2, 05, 05]
-4DCA; [0C E1 0B, 05, 05]
+1D305; [0C E5 D9, 05, 05]
-4DCB; [0C E1 12, 05, 05]
+1D306; [0C E5 E0, 05, 05]
-4DCC; [0C E1 19, 05, 05]
+1D307; [0C E5 E7, 05, 05]
-4DCD; [0C E1 20, 05, 05]
+1D308; [0C E5 EE, 05, 05]
-4DCE; [0C E1 27, 05, 05]
+1D309; [0C E5 F5, 05, 05]
-4DCF; [0C E1 2E, 05, 05]
+1D30A; [0C E5 FC, 05, 05]
-4DD0; [0C E1 35, 05, 05]
+1D30B; [0C E6 05, 05, 05]
-4DD1; [0C E1 3C, 05, 05]
+1D30C; [0C E6 0C, 05, 05]
-4DD2; [0C E1 43, 05, 05]
+1D30D; [0C E6 13, 05, 05]
-4DD3; [0C E1 4A, 05, 05]
+1D30E; [0C E6 1A, 05, 05]
-4DD4; [0C E1 51, 05, 05]
+1D30F; [0C E6 21, 05, 05]
-4DD5; [0C E1 58, 05, 05]
+1D310; [0C E6 28, 05, 05]
-4DD6; [0C E1 5F, 05, 05]
+1D311; [0C E6 2F, 05, 05]
-4DD7; [0C E1 66, 05, 05]
+1D312; [0C E6 36, 05, 05]
-4DD8; [0C E1 6D, 05, 05]
+1D313; [0C E6 3D, 05, 05]
-4DD9; [0C E1 74, 05, 05]
+1D314; [0C E6 44, 05, 05]
-4DDA; [0C E1 7B, 05, 05]
+1D315; [0C E6 4B, 05, 05]
-4DDB; [0C E1 82, 05, 05]
+1D316; [0C E6 52, 05, 05]
-4DDC; [0C E1 89, 05, 05]
+1D317; [0C E6 59, 05, 05]
-4DDD; [0C E1 90, 05, 05]
+1D318; [0C E6 60, 05, 05]
-4DDE; [0C E1 97, 05, 05]
+1D319; [0C E6 67, 05, 05]
-4DDF; [0C E1 9E, 05, 05]
+1D31A; [0C E6 6E, 05, 05]
-4DE0; [0C E1 A5, 05, 05]
+1D31B; [0C E6 75, 05, 05]
-4DE1; [0C E1 AC, 05, 05]
+1D31C; [0C E6 7C, 05, 05]
-4DE2; [0C E1 B3, 05, 05]
+1D31D; [0C E6 83, 05, 05]
-4DE3; [0C E1 BA, 05, 05]
+1D31E; [0C E6 8A, 05, 05]
-4DE4; [0C E1 C1, 05, 05]
+1D31F; [0C E6 91, 05, 05]
-4DE5; [0C E1 C8, 05, 05]
+1D320; [0C E6 98, 05, 05]
-4DE6; [0C E1 CF, 05, 05]
+1D321; [0C E6 9F, 05, 05]
-4DE7; [0C E1 D6, 05, 05]
+1D322; [0C E6 A6, 05, 05]
-4DE8; [0C E1 DD, 05, 05]
+1D323; [0C E6 AD, 05, 05]
-4DE9; [0C E1 E4, 05, 05]
+1D324; [0C E6 B4, 05, 05]
-4DEA; [0C E1 EB, 05, 05]
+1D325; [0C E6 BB, 05, 05]
-4DEB; [0C E1 F2, 05, 05]
+1D326; [0C E6 C2, 05, 05]
-4DEC; [0C E1 F9, 05, 05]
+1D327; [0C E6 C9, 05, 05]
-4DED; [0C E2 02, 05, 05]
+1D328; [0C E6 D0, 05, 05]
-4DEE; [0C E2 09, 05, 05]
+1D329; [0C E6 D7, 05, 05]
-4DEF; [0C E2 10, 05, 05]
+1D32A; [0C E6 DE, 05, 05]
-4DF0; [0C E2 17, 05, 05]
+1D32B; [0C E6 E5, 05, 05]
-4DF1; [0C E2 1E, 05, 05]
+1D32C; [0C E6 EC, 05, 05]
-4DF2; [0C E2 25, 05, 05]
+1D32D; [0C E6 F3, 05, 05]
-4DF3; [0C E2 2C, 05, 05]
+1D32E; [0C E6 FA, 05, 05]
-4DF4; [0C E2 33, 05, 05]
+1D32F; [0C E7 03, 05, 05]
-4DF5; [0C E2 3A, 05, 05]
+1D330; [0C E7 0A, 05, 05]
-4DF6; [0C E2 41, 05, 05]
+1D331; [0C E7 11, 05, 05]
-4DF7; [0C E2 48, 05, 05]
+1D332; [0C E7 18, 05, 05]
-4DF8; [0C E2 4F, 05, 05]
+1D333; [0C E7 1F, 05, 05]
-4DF9; [0C E2 56, 05, 05]
+1D334; [0C E7 26, 05, 05]
-4DFA; [0C E2 5D, 05, 05]
+1D335; [0C E7 2D, 05, 05]
-4DFB; [0C E2 64, 05, 05]
+1D336; [0C E7 34, 05, 05]
-4DFC; [0C E2 6B, 05, 05]
+1D337; [0C E7 3B, 05, 05]
-4DFD; [0C E2 72, 05, 05]
+1D338; [0C E7 42, 05, 05]
-4DFE; [0C E2 79, 05, 05]
+1D339; [0C E7 49, 05, 05]
-4DFF; [0C E2 80, 05, 05]
+1D33A; [0C E7 50, 05, 05]
-1D300; [0C E2 87, 05, 05]
+1D33B; [0C E7 57, 05, 05]
-1D301; [0C E2 8E, 05, 05]
+1D33C; [0C E7 5E, 05, 05]
-1D302; [0C E2 95, 05, 05]
+1D33D; [0C E7 65, 05, 05]
-1D303; [0C E2 9C, 05, 05]
+1D33E; [0C E7 6C, 05, 05]
-1D304; [0C E2 A3, 05, 05]
+1D33F; [0C E7 73, 05, 05]
-1D305; [0C E2 AA, 05, 05]
+1D340; [0C E7 7A, 05, 05]
-1D306; [0C E2 B1, 05, 05]
+1D341; [0C E7 81, 05, 05]
-1D307; [0C E2 B8, 05, 05]
+1D342; [0C E7 88, 05, 05]
-1D308; [0C E2 BF, 05, 05]
+1D343; [0C E7 8F, 05, 05]
-1D309; [0C E2 C6, 05, 05]
+1D344; [0C E7 96, 05, 05]
-1D30A; [0C E2 CD, 05, 05]
+1D345; [0C E7 9D, 05, 05]
-1D30B; [0C E2 D4, 05, 05]
+1D346; [0C E7 A4, 05, 05]
-1D30C; [0C E2 DB, 05, 05]
+1D347; [0C E7 AB, 05, 05]
-1D30D; [0C E2 E2, 05, 05]
+1D348; [0C E7 B2, 05, 05]
-1D30E; [0C E2 E9, 05, 05]
+1D349; [0C E7 B9, 05, 05]
-1D30F; [0C E2 F0, 05, 05]
+1D34A; [0C E7 C0, 05, 05]
-1D310; [0C E2 F7, 05, 05]
+1D34B; [0C E7 C7, 05, 05]
-1D311; [0C E2 FE, 05, 05]
+1D34C; [0C E7 CE, 05, 05]
-1D312; [0C E3 07, 05, 05]
+1D34D; [0C E7 D5, 05, 05]
-1D313; [0C E3 0E, 05, 05]
+1D34E; [0C E7 DC, 05, 05]
-1D314; [0C E3 15, 05, 05]
+1D34F; [0C E7 E3, 05, 05]
-1D315; [0C E3 1C, 05, 05]
+1D350; [0C E7 EA, 05, 05]
-1D316; [0C E3 23, 05, 05]
+1D351; [0C E7 F1, 05, 05]
-1D317; [0C E3 2A, 05, 05]
+1D352; [0C E7 F8, 05, 05]
-1D318; [0C E3 31, 05, 05]
+1D353; [0C E7 FF, 05, 05]
-1D319; [0C E3 38, 05, 05]
+1D354; [0C E8 08, 05, 05]
-1D31A; [0C E3 3F, 05, 05]
+1D355; [0C E8 0F, 05, 05]
-1D31B; [0C E3 46, 05, 05]
+1D356; [0C E8 16, 05, 05]
-1D31C; [0C E3 4D, 05, 05]
+A490; [0C E8 1D, 05, 05]
-1D31D; [0C E3 54, 05, 05]
+A491; [0C E8 24, 05, 05]
-1D31E; [0C E3 5B, 05, 05]
+A492; [0C E8 2B, 05, 05]
-1D31F; [0C E3 62, 05, 05]
+A493; [0C E8 32, 05, 05]
-1D320; [0C E3 69, 05, 05]
+A494; [0C E8 39, 05, 05]
-1D321; [0C E3 70, 05, 05]
+A495; [0C E8 40, 05, 05]
-1D322; [0C E3 77, 05, 05]
+A496; [0C E8 47, 05, 05]
-1D323; [0C E3 7E, 05, 05]
+A497; [0C E8 4E, 05, 05]
-1D324; [0C E3 85, 05, 05]
+A498; [0C E8 55, 05, 05]
-1D325; [0C E3 8C, 05, 05]
+A499; [0C E8 5C, 05, 05]
-1D326; [0C E3 93, 05, 05]
+A49A; [0C E8 63, 05, 05]
-1D327; [0C E3 9A, 05, 05]
+A49B; [0C E8 6A, 05, 05]
-1D328; [0C E3 A1, 05, 05]
+A49C; [0C E8 71, 05, 05]
-1D329; [0C E3 A8, 05, 05]
+A49D; [0C E8 78, 05, 05]
-1D32A; [0C E3 AF, 05, 05]
+A49E; [0C E8 7F, 05, 05]
-1D32B; [0C E3 B6, 05, 05]
+A49F; [0C E8 86, 05, 05]
-1D32C; [0C E3 BD, 05, 05]
+A4A0; [0C E8 8D, 05, 05]
-1D32D; [0C E3 C4, 05, 05]
+A4A1; [0C E8 94, 05, 05]
-1D32E; [0C E3 CB, 05, 05]
+A4A2; [0C E8 9B, 05, 05]
-1D32F; [0C E3 D2, 05, 05]
+A4A3; [0C E8 A2, 05, 05]
-1D330; [0C E3 D9, 05, 05]
+A4A4; [0C E8 A9, 05, 05]
-1D331; [0C E3 E0, 05, 05]
+A4A5; [0C E8 B0, 05, 05]
-1D332; [0C E3 E7, 05, 05]
+A4A6; [0C E8 B7, 05, 05]
-1D333; [0C E3 EE, 05, 05]
+A4A7; [0C E8 BE, 05, 05]
-1D334; [0C E3 F5, 05, 05]
+A4A8; [0C E8 C5, 05, 05]
-1D335; [0C E3 FC, 05, 05]
+A4A9; [0C E8 CC, 05, 05]
-1D336; [0C E4 05, 05, 05]
+A4AA; [0C E8 D3, 05, 05]
-1D337; [0C E4 0C, 05, 05]
+A4AB; [0C E8 DA, 05, 05]
-1D338; [0C E4 13, 05, 05]
+A4AC; [0C E8 E1, 05, 05]
-1D339; [0C E4 1A, 05, 05]
+A4AD; [0C E8 E8, 05, 05]
-1D33A; [0C E4 21, 05, 05]
+A4AE; [0C E8 EF, 05, 05]
-1D33B; [0C E4 28, 05, 05]
+A4AF; [0C E8 F6, 05, 05]
-1D33C; [0C E4 2F, 05, 05]
+A4B0; [0C E8 FD, 05, 05]
-1D33D; [0C E4 36, 05, 05]
+A4B1; [0C E9 06, 05, 05]
-1D33E; [0C E4 3D, 05, 05]
+A4B2; [0C E9 0D, 05, 05]
-1D33F; [0C E4 44, 05, 05]
+A4B3; [0C E9 14, 05, 05]
-1D340; [0C E4 4B, 05, 05]
+A4B4; [0C E9 1B, 05, 05]
-1D341; [0C E4 52, 05, 05]
+A4B5; [0C E9 22, 05, 05]
-1D342; [0C E4 59, 05, 05]
+A4B6; [0C E9 29, 05, 05]
-1D343; [0C E4 60, 05, 05]
+A4B7; [0C E9 30, 05, 05]
-1D344; [0C E4 67, 05, 05]
+A4B8; [0C E9 37, 05, 05]
-1D345; [0C E4 6E, 05, 05]
+A4B9; [0C E9 3E, 05, 05]
-1D346; [0C E4 75, 05, 05]
+A4BA; [0C E9 45, 05, 05]
-1D347; [0C E4 7C, 05, 05]
+A4BB; [0C E9 4C, 05, 05]
-1D348; [0C E4 83, 05, 05]
+A4BC; [0C E9 53, 05, 05]
-1D349; [0C E4 8A, 05, 05]
+A4BD; [0C E9 5A, 05, 05]
-1D34A; [0C E4 91, 05, 05]
+A4BE; [0C E9 61, 05, 05]
-1D34B; [0C E4 98, 05, 05]
+A4BF; [0C E9 68, 05, 05]
-1D34C; [0C E4 9F, 05, 05]
+A4C0; [0C E9 6F, 05, 05]
-1D34D; [0C E4 A6, 05, 05]
+A4C1; [0C E9 76, 05, 05]
-1D34E; [0C E4 AD, 05, 05]
+A4C2; [0C E9 7D, 05, 05]
-1D34F; [0C E4 B4, 05, 05]
+A4C3; [0C E9 84, 05, 05]
-1D350; [0C E4 BB, 05, 05]
+A4C4; [0C E9 8B, 05, 05]
-1D351; [0C E4 C2, 05, 05]
+A4C5; [0C E9 92, 05, 05]
-1D352; [0C E4 C9, 05, 05]
+A4C6; [0C E9 99, 05, 05]
-1D353; [0C E4 D0, 05, 05]
+10137; [0C E9 A0, 05, 05]
-1D354; [0C E4 D7, 05, 05]
+10138; [0C E9 A7, 05, 05]
-1D355; [0C E4 DE, 05, 05]
+10139; [0C E9 AE, 05, 05]
-1D356; [0C E4 E5, 05, 05]
+1013A; [0C E9 B5, 05, 05]
-A490; [0C E4 EC, 05, 05]
+1013B; [0C E9 BC, 05, 05]
-A491; [0C E4 F3, 05, 05]
+1013C; [0C E9 C3, 05, 05]
-A492; [0C E4 FA, 05, 05]
+1013D; [0C E9 CA, 05, 05]
-A493; [0C E5 03, 05, 05]
+1013E; [0C E9 D1, 05, 05]
-A494; [0C E5 0A, 05, 05]
+1013F; [0C E9 D8, 05, 05]
-A495; [0C E5 11, 05, 05]
+10179; [0C E9 DF, 05, 05]
-A496; [0C E5 18, 05, 05]
+1017A; [0C E9 E6, 05, 05]
-A497; [0C E5 1F, 05, 05]
+1017B; [0C E9 ED, 05, 05]
-A498; [0C E5 26, 05, 05]
+1017C; [0C E9 F4, 05, 05]
-A499; [0C E5 2D, 05, 05]
+1017D; [0C E9 FB, 05, 05]
-A49A; [0C E5 34, 05, 05]
+1017E; [0C EA 04, 05, 05]
-A49B; [0C E5 3B, 05, 05]
+1017F; [0C EA 0B, 05, 05]
-A49C; [0C E5 42, 05, 05]
+10180; [0C EA 12, 05, 05]
-A49D; [0C E5 49, 05, 05]
+10181; [0C EA 19, 05, 05]
-A49E; [0C E5 50, 05, 05]
+10182; [0C EA 20, 05, 05]
-A49F; [0C E5 57, 05, 05]
+10183; [0C EA 27, 05, 05]
-A4A0; [0C E5 5E, 05, 05]
+10184; [0C EA 2E, 05, 05]
-A4A1; [0C E5 65, 05, 05]
+10185; [0C EA 35, 05, 05]
-A4A2; [0C E5 6C, 05, 05]
+10186; [0C EA 3C, 05, 05]
-A4A3; [0C E5 73, 05, 05]
+10187; [0C EA 43, 05, 05]
-A4A4; [0C E5 7A, 05, 05]
+10188; [0C EA 4A, 05, 05]
-A4A5; [0C E5 81, 05, 05]
+10189; [0C EA 51, 05, 05]
-A4A6; [0C E5 88, 05, 05]
+1018C; [0C EA 58, 05, 05]
-A4A7; [0C E5 8F, 05, 05]
+1018D; [0C EA 5F, 05, 05]
-A4A8; [0C E5 96, 05, 05]
+1018E; [0C EA 66, 05, 05]
-A4A9; [0C E5 9D, 05, 05]
+10190; [0C EA 6D, 05, 05]
-A4AA; [0C E5 A4, 05, 05]
+10191; [0C EA 74, 05, 05]
-A4AB; [0C E5 AB, 05, 05]
+10192; [0C EA 7B, 05, 05]
-A4AC; [0C E5 B2, 05, 05]
+10193; [0C EA 82, 05, 05]
-A4AD; [0C E5 B9, 05, 05]
+10194; [0C EA 89, 05, 05]
-A4AE; [0C E5 C0, 05, 05]
+10195; [0C EA 90, 05, 05]
-A4AF; [0C E5 C7, 05, 05]
+10196; [0C EA 97, 05, 05]
-A4B0; [0C E5 CE, 05, 05]
+10197; [0C EA 9E, 05, 05]
-A4B1; [0C E5 D5, 05, 05]
+10198; [0C EA A5, 05, 05]
-A4B2; [0C E5 DC, 05, 05]
+10199; [0C EA AC, 05, 05]
-A4B3; [0C E5 E3, 05, 05]
+1019A; [0C EA B3, 05, 05]
-A4B4; [0C E5 EA, 05, 05]
+1019B; [0C EA BA, 05, 05]
-A4B5; [0C E5 F1, 05, 05]
+101A0; [0C EA C1, 05, 05]
-A4B6; [0C E5 F8, 05, 05]
+101D0; [0C EA C8, 05, 05]
-A4B7; [0C E5 FF, 05, 05]
+101D1; [0C EA CF, 05, 05]
-A4B8; [0C E6 08, 05, 05]
+101D2; [0C EA D6, 05, 05]
-A4B9; [0C E6 0F, 05, 05]
+101D3; [0C EA DD, 05, 05]
-A4BA; [0C E6 16, 05, 05]
+101D4; [0C EA E4, 05, 05]
-A4BB; [0C E6 1D, 05, 05]
+101D5; [0C EA EB, 05, 05]
-A4BC; [0C E6 24, 05, 05]
+101D6; [0C EA F2, 05, 05]
-A4BD; [0C E6 2B, 05, 05]
+101D7; [0C EA F9, 05, 05]
-A4BE; [0C E6 32, 05, 05]
+101D8; [0C EB 02, 05, 05]
-A4BF; [0C E6 39, 05, 05]
+101D9; [0C EB 09, 05, 05]
-A4C0; [0C E6 40, 05, 05]
+101DA; [0C EB 10, 05, 05]
-A4C1; [0C E6 47, 05, 05]
+101DB; [0C EB 17, 05, 05]
-A4C2; [0C E6 4E, 05, 05]
+101DC; [0C EB 1E, 05, 05]
-A4C3; [0C E6 55, 05, 05]
+101DD; [0C EB 25, 05, 05]
-A4C4; [0C E6 5C, 05, 05]
+101DE; [0C EB 2C, 05, 05]
-A4C5; [0C E6 63, 05, 05]
+101DF; [0C EB 33, 05, 05]
-A4C6; [0C E6 6A, 05, 05]
+101E0; [0C EB 3A, 05, 05]
-10137; [0C E6 71, 05, 05]
+101E1; [0C EB 41, 05, 05]
-10138; [0C E6 78, 05, 05]
+101E2; [0C EB 48, 05, 05]
-10139; [0C E6 7F, 05, 05]
+101E3; [0C EB 4F, 05, 05]
-1013A; [0C E6 86, 05, 05]
+101E4; [0C EB 56, 05, 05]
-1013B; [0C E6 8D, 05, 05]
+101E5; [0C EB 5D, 05, 05]
-1013C; [0C E6 94, 05, 05]
+101E6; [0C EB 64, 05, 05]
-1013D; [0C E6 9B, 05, 05]
+101E7; [0C EB 6B, 05, 05]
-1013E; [0C E6 A2, 05, 05]
+101E8; [0C EB 72, 05, 05]
-1013F; [0C E6 A9, 05, 05]
+101E9; [0C EB 79, 05, 05]
-10179; [0C E6 B0, 05, 05]
+101EA; [0C EB 80, 05, 05]
-1017A; [0C E6 B7, 05, 05]
+101EB; [0C EB 87, 05, 05]
-1017B; [0C E6 BE, 05, 05]
+101EC; [0C EB 8E, 05, 05]
-1017C; [0C E6 C5, 05, 05]
+101ED; [0C EB 95, 05, 05]
-1017D; [0C E6 CC, 05, 05]
+101EE; [0C EB 9C, 05, 05]
-1017E; [0C E6 D3, 05, 05]
+101EF; [0C EB A3, 05, 05]
-1017F; [0C E6 DA, 05, 05]
+101F0; [0C EB AA, 05, 05]
-10180; [0C E6 E1, 05, 05]
+101F1; [0C EB B1, 05, 05]
-10181; [0C E6 E8, 05, 05]
+101F2; [0C EB B8, 05, 05]
-10182; [0C E6 EF, 05, 05]
+101F3; [0C EB BF, 05, 05]
-10183; [0C E6 F6, 05, 05]
+101F4; [0C EB C6, 05, 05]
-10184; [0C E6 FD, 05, 05]
+101F5; [0C EB CD, 05, 05]
-10185; [0C E7 06, 05, 05]
+101F6; [0C EB D4, 05, 05]
-10186; [0C E7 0D, 05, 05]
+101F7; [0C EB DB, 05, 05]
-10187; [0C E7 14, 05, 05]
+101F8; [0C EB E2, 05, 05]
-10188; [0C E7 1B, 05, 05]
+101F9; [0C EB E9, 05, 05]
-10189; [0C E7 22, 05, 05]
+101FA; [0C EB F0, 05, 05]
-1018C; [0C E7 29, 05, 05]
+101FB; [0C EB F7, 05, 05]
-1018D; [0C E7 30, 05, 05]
+101FC; [0C EB FE, 05, 05]
-1018E; [0C E7 37, 05, 05]
+10877; [0C EC 07, 05, 05]
-10190; [0C E7 3E, 05, 05]
+10878; [0C EC 0E, 05, 05]
-10191; [0C E7 45, 05, 05]
+16B3C; [0C EC 15, 05, 05]
-10192; [0C E7 4C, 05, 05]
+16B3D; [0C EC 1C, 05, 05]
-10193; [0C E7 53, 05, 05]
+16B3E; [0C EC 23, 05, 05]
-10194; [0C E7 5A, 05, 05]
+16B3F; [0C EC 2A, 05, 05]
-10195; [0C E7 61, 05, 05]
+16B45; [0C EC 31, 05, 05]
-10196; [0C E7 68, 05, 05]
+1D000; [0C EC 38, 05, 05]
-10197; [0C E7 6F, 05, 05]
+1D001; [0C EC 3F, 05, 05]
-10198; [0C E7 76, 05, 05]
+1D002; [0C EC 46, 05, 05]
-10199; [0C E7 7D, 05, 05]
+1D003; [0C EC 4D, 05, 05]
-1019A; [0C E7 84, 05, 05]
+1D004; [0C EC 54, 05, 05]
-1019B; [0C E7 8B, 05, 05]
+1D005; [0C EC 5B, 05, 05]
-101A0; [0C E7 92, 05, 05]
+1D006; [0C EC 62, 05, 05]
-101D0; [0C E7 99, 05, 05]
+1D007; [0C EC 69, 05, 05]
-101D1; [0C E7 A0, 05, 05]
+1D008; [0C EC 70, 05, 05]
-101D2; [0C E7 A7, 05, 05]
+1D009; [0C EC 77, 05, 05]
-101D3; [0C E7 AE, 05, 05]
+1D00A; [0C EC 7E, 05, 05]
-101D4; [0C E7 B5, 05, 05]
+1D00B; [0C EC 85, 05, 05]
-101D5; [0C E7 BC, 05, 05]
+1D00C; [0C EC 8C, 05, 05]
-101D6; [0C E7 C3, 05, 05]
+1D00D; [0C EC 93, 05, 05]
-101D7; [0C E7 CA, 05, 05]
+1D00E; [0C EC 9A, 05, 05]
-101D8; [0C E7 D1, 05, 05]
+1D00F; [0C EC A1, 05, 05]
-101D9; [0C E7 D8, 05, 05]
+1D010; [0C EC A8, 05, 05]
-101DA; [0C E7 DF, 05, 05]
+1D011; [0C EC AF, 05, 05]
-101DB; [0C E7 E6, 05, 05]
+1D012; [0C EC B6, 05, 05]
-101DC; [0C E7 ED, 05, 05]
+1D013; [0C EC BD, 05, 05]
-101DD; [0C E7 F4, 05, 05]
+1D014; [0C EC C4, 05, 05]
-101DE; [0C E7 FB, 05, 05]
+1D015; [0C EC CB, 05, 05]
-101DF; [0C E8 04, 05, 05]
+1D016; [0C EC D2, 05, 05]
-101E0; [0C E8 0B, 05, 05]
+1D017; [0C EC D9, 05, 05]
-101E1; [0C E8 12, 05, 05]
+1D018; [0C EC E0, 05, 05]
-101E2; [0C E8 19, 05, 05]
+1D019; [0C EC E7, 05, 05]
-101E3; [0C E8 20, 05, 05]
+1D01A; [0C EC EE, 05, 05]
-101E4; [0C E8 27, 05, 05]
+1D01B; [0C EC F5, 05, 05]
-101E5; [0C E8 2E, 05, 05]
+1D01C; [0C EC FC, 05, 05]
-101E6; [0C E8 35, 05, 05]
+1D01D; [0C ED 05, 05, 05]
-101E7; [0C E8 3C, 05, 05]
+1D01E; [0C ED 0C, 05, 05]
-101E8; [0C E8 43, 05, 05]
+1D01F; [0C ED 13, 05, 05]
-101E9; [0C E8 4A, 05, 05]
+1D020; [0C ED 1A, 05, 05]
-101EA; [0C E8 51, 05, 05]
+1D021; [0C ED 21, 05, 05]
-101EB; [0C E8 58, 05, 05]
+1D022; [0C ED 28, 05, 05]
-101EC; [0C E8 5F, 05, 05]
+1D023; [0C ED 2F, 05, 05]
-101ED; [0C E8 66, 05, 05]
+1D024; [0C ED 36, 05, 05]
-101EE; [0C E8 6D, 05, 05]
+1D025; [0C ED 3D, 05, 05]
-101EF; [0C E8 74, 05, 05]
+1D026; [0C ED 44, 05, 05]
-101F0; [0C E8 7B, 05, 05]
+1D027; [0C ED 4B, 05, 05]
-101F1; [0C E8 82, 05, 05]
+1D028; [0C ED 52, 05, 05]
-101F2; [0C E8 89, 05, 05]
+1D029; [0C ED 59, 05, 05]
-101F3; [0C E8 90, 05, 05]
+1D02A; [0C ED 60, 05, 05]
-101F4; [0C E8 97, 05, 05]
+1D02B; [0C ED 67, 05, 05]
-101F5; [0C E8 9E, 05, 05]
+1D02C; [0C ED 6E, 05, 05]
-101F6; [0C E8 A5, 05, 05]
+1D02D; [0C ED 75, 05, 05]
-101F7; [0C E8 AC, 05, 05]
+1D02E; [0C ED 7C, 05, 05]
-101F8; [0C E8 B3, 05, 05]
+1D02F; [0C ED 83, 05, 05]
-101F9; [0C E8 BA, 05, 05]
+1D030; [0C ED 8A, 05, 05]
-101FA; [0C E8 C1, 05, 05]
+1D031; [0C ED 91, 05, 05]
-101FB; [0C E8 C8, 05, 05]
+1D032; [0C ED 98, 05, 05]
-101FC; [0C E8 CF, 05, 05]
+1D033; [0C ED 9F, 05, 05]
-10877; [0C E8 D6, 05, 05]
+1D034; [0C ED A6, 05, 05]
-10878; [0C E8 DD, 05, 05]
+1D035; [0C ED AD, 05, 05]
-16B3C; [0C E8 E4, 05, 05]
+1D036; [0C ED B4, 05, 05]
-16B3D; [0C E8 EB, 05, 05]
+1D037; [0C ED BB, 05, 05]
-16B3E; [0C E8 F2, 05, 05]
+1D038; [0C ED C2, 05, 05]
-16B3F; [0C E8 F9, 05, 05]
+1D039; [0C ED C9, 05, 05]
-16B45; [0C E9 02, 05, 05]
+1D03A; [0C ED D0, 05, 05]
-1D000; [0C E9 09, 05, 05]
+1D03B; [0C ED D7, 05, 05]
-1D001; [0C E9 10, 05, 05]
+1D03C; [0C ED DE, 05, 05]
-1D002; [0C E9 17, 05, 05]
+1D03D; [0C ED E5, 05, 05]
-1D003; [0C E9 1E, 05, 05]
+1D03E; [0C ED EC, 05, 05]
-1D004; [0C E9 25, 05, 05]
+1D03F; [0C ED F3, 05, 05]
-1D005; [0C E9 2C, 05, 05]
+1D040; [0C ED FA, 05, 05]
-1D006; [0C E9 33, 05, 05]
+1D041; [0C EE 03, 05, 05]
-1D007; [0C E9 3A, 05, 05]
+1D042; [0C EE 0A, 05, 05]
-1D008; [0C E9 41, 05, 05]
+1D043; [0C EE 11, 05, 05]
-1D009; [0C E9 48, 05, 05]
+1D044; [0C EE 18, 05, 05]
-1D00A; [0C E9 4F, 05, 05]
+1D045; [0C EE 1F, 05, 05]
-1D00B; [0C E9 56, 05, 05]
+1D046; [0C EE 26, 05, 05]
-1D00C; [0C E9 5D, 05, 05]
+1D047; [0C EE 2D, 05, 05]
-1D00D; [0C E9 64, 05, 05]
+1D048; [0C EE 34, 05, 05]
-1D00E; [0C E9 6B, 05, 05]
+1D049; [0C EE 3B, 05, 05]
-1D00F; [0C E9 72, 05, 05]
+1D04A; [0C EE 42, 05, 05]
-1D010; [0C E9 79, 05, 05]
+1D04B; [0C EE 49, 05, 05]
-1D011; [0C E9 80, 05, 05]
+1D04C; [0C EE 50, 05, 05]
-1D012; [0C E9 87, 05, 05]
+1D04D; [0C EE 57, 05, 05]
-1D013; [0C E9 8E, 05, 05]
+1D04E; [0C EE 5E, 05, 05]
-1D014; [0C E9 95, 05, 05]
+1D04F; [0C EE 65, 05, 05]
-1D015; [0C E9 9C, 05, 05]
+1D050; [0C EE 6C, 05, 05]
-1D016; [0C E9 A3, 05, 05]
+1D051; [0C EE 73, 05, 05]
-1D017; [0C E9 AA, 05, 05]
+1D052; [0C EE 7A, 05, 05]
-1D018; [0C E9 B1, 05, 05]
+1D053; [0C EE 81, 05, 05]
-1D019; [0C E9 B8, 05, 05]
+1D054; [0C EE 88, 05, 05]
-1D01A; [0C E9 BF, 05, 05]
+1D055; [0C EE 8F, 05, 05]
-1D01B; [0C E9 C6, 05, 05]
+1D056; [0C EE 96, 05, 05]
-1D01C; [0C E9 CD, 05, 05]
+1D057; [0C EE 9D, 05, 05]
-1D01D; [0C E9 D4, 05, 05]
+1D058; [0C EE A4, 05, 05]
-1D01E; [0C E9 DB, 05, 05]
+1D059; [0C EE AB, 05, 05]
-1D01F; [0C E9 E2, 05, 05]
+1D05A; [0C EE B2, 05, 05]
-1D020; [0C E9 E9, 05, 05]
+1D05B; [0C EE B9, 05, 05]
-1D021; [0C E9 F0, 05, 05]
+1D05C; [0C EE C0, 05, 05]
-1D022; [0C E9 F7, 05, 05]
+1D05D; [0C EE C7, 05, 05]
-1D023; [0C E9 FE, 05, 05]
+1D05E; [0C EE CE, 05, 05]
-1D024; [0C EA 07, 05, 05]
+1D05F; [0C EE D5, 05, 05]
-1D025; [0C EA 0E, 05, 05]
+1D060; [0C EE DC, 05, 05]
-1D026; [0C EA 15, 05, 05]
+1D061; [0C EE E3, 05, 05]
-1D027; [0C EA 1C, 05, 05]
+1D062; [0C EE EA, 05, 05]
-1D028; [0C EA 23, 05, 05]
+1D063; [0C EE F1, 05, 05]
-1D029; [0C EA 2A, 05, 05]
+1D064; [0C EE F8, 05, 05]
-1D02A; [0C EA 31, 05, 05]
+1D065; [0C EE FF, 05, 05]
-1D02B; [0C EA 38, 05, 05]
+1D066; [0C EF 08, 05, 05]
-1D02C; [0C EA 3F, 05, 05]
+1D067; [0C EF 0F, 05, 05]
-1D02D; [0C EA 46, 05, 05]
+1D068; [0C EF 16, 05, 05]
-1D02E; [0C EA 4D, 05, 05]
+1D069; [0C EF 1D, 05, 05]
-1D02F; [0C EA 54, 05, 05]
+1D06A; [0C EF 24, 05, 05]
-1D030; [0C EA 5B, 05, 05]
+1D06B; [0C EF 2B, 05, 05]
-1D031; [0C EA 62, 05, 05]
+1D06C; [0C EF 32, 05, 05]
-1D032; [0C EA 69, 05, 05]
+1D06D; [0C EF 39, 05, 05]
-1D033; [0C EA 70, 05, 05]
+1D06E; [0C EF 40, 05, 05]
-1D034; [0C EA 77, 05, 05]
+1D06F; [0C EF 47, 05, 05]
-1D035; [0C EA 7E, 05, 05]
+1D070; [0C EF 4E, 05, 05]
-1D036; [0C EA 85, 05, 05]
+1D071; [0C EF 55, 05, 05]
-1D037; [0C EA 8C, 05, 05]
+1D072; [0C EF 5C, 05, 05]
-1D038; [0C EA 93, 05, 05]
+1D073; [0C EF 63, 05, 05]
-1D039; [0C EA 9A, 05, 05]
+1D074; [0C EF 6A, 05, 05]
-1D03A; [0C EA A1, 05, 05]
+1D075; [0C EF 71, 05, 05]
-1D03B; [0C EA A8, 05, 05]
+1D076; [0C EF 78, 05, 05]
-1D03C; [0C EA AF, 05, 05]
+1D077; [0C EF 7F, 05, 05]
-1D03D; [0C EA B6, 05, 05]
+1D078; [0C EF 86, 05, 05]
-1D03E; [0C EA BD, 05, 05]
+1D079; [0C EF 8D, 05, 05]
-1D03F; [0C EA C4, 05, 05]
+1D07A; [0C EF 94, 05, 05]
-1D040; [0C EA CB, 05, 05]
+1D07B; [0C EF 9B, 05, 05]
-1D041; [0C EA D2, 05, 05]
+1D07C; [0C EF A2, 05, 05]
-1D042; [0C EA D9, 05, 05]
+1D07D; [0C EF A9, 05, 05]
-1D043; [0C EA E0, 05, 05]
+1D07E; [0C EF B0, 05, 05]
-1D044; [0C EA E7, 05, 05]
+1D07F; [0C EF B7, 05, 05]
-1D045; [0C EA EE, 05, 05]
+1D080; [0C EF BE, 05, 05]
-1D046; [0C EA F5, 05, 05]
+1D081; [0C EF C5, 05, 05]
-1D047; [0C EA FC, 05, 05]
+1D082; [0C EF CC, 05, 05]
-1D048; [0C EB 05, 05, 05]
+1D083; [0C EF D3, 05, 05]
-1D049; [0C EB 0C, 05, 05]
+1D084; [0C EF DA, 05, 05]
-1D04A; [0C EB 13, 05, 05]
+1D085; [0C EF E1, 05, 05]
-1D04B; [0C EB 1A, 05, 05]
+1D086; [0C EF E8, 05, 05]
-1D04C; [0C EB 21, 05, 05]
+1D087; [0C EF EF, 05, 05]
-1D04D; [0C EB 28, 05, 05]
+1D088; [0C EF F6, 05, 05]
-1D04E; [0C EB 2F, 05, 05]
+1D089; [0C EF FD, 05, 05]
-1D04F; [0C EB 36, 05, 05]
+1D08A; [0C F0 06, 05, 05]
-1D050; [0C EB 3D, 05, 05]
+1D08B; [0C F0 0D, 05, 05]
-1D051; [0C EB 44, 05, 05]
+1D08C; [0C F0 14, 05, 05]
-1D052; [0C EB 4B, 05, 05]
+1D08D; [0C F0 1B, 05, 05]
-1D053; [0C EB 52, 05, 05]
+1D08E; [0C F0 22, 05, 05]
-1D054; [0C EB 59, 05, 05]
+1D08F; [0C F0 29, 05, 05]
-1D055; [0C EB 60, 05, 05]
+1D090; [0C F0 30, 05, 05]
-1D056; [0C EB 67, 05, 05]
+1D091; [0C F0 37, 05, 05]
-1D057; [0C EB 6E, 05, 05]
+1D092; [0C F0 3E, 05, 05]
-1D058; [0C EB 75, 05, 05]
+1D093; [0C F0 45, 05, 05]
-1D059; [0C EB 7C, 05, 05]
+1D094; [0C F0 4C, 05, 05]
-1D05A; [0C EB 83, 05, 05]
+1D095; [0C F0 53, 05, 05]
-1D05B; [0C EB 8A, 05, 05]
+1D096; [0C F0 5A, 05, 05]
-1D05C; [0C EB 91, 05, 05]
+1D097; [0C F0 61, 05, 05]
-1D05D; [0C EB 98, 05, 05]
+1D098; [0C F0 68, 05, 05]
-1D05E; [0C EB 9F, 05, 05]
+1D099; [0C F0 6F, 05, 05]
-1D05F; [0C EB A6, 05, 05]
+1D09A; [0C F0 76, 05, 05]
-1D060; [0C EB AD, 05, 05]
+1D09B; [0C F0 7D, 05, 05]
-1D061; [0C EB B4, 05, 05]
+1D09C; [0C F0 84, 05, 05]
-1D062; [0C EB BB, 05, 05]
+1D09D; [0C F0 8B, 05, 05]
-1D063; [0C EB C2, 05, 05]
+1D09E; [0C F0 92, 05, 05]
-1D064; [0C EB C9, 05, 05]
+1D09F; [0C F0 99, 05, 05]
-1D065; [0C EB D0, 05, 05]
+1D0A0; [0C F0 A0, 05, 05]
-1D066; [0C EB D7, 05, 05]
+1D0A1; [0C F0 A7, 05, 05]
-1D067; [0C EB DE, 05, 05]
+1D0A2; [0C F0 AE, 05, 05]
-1D068; [0C EB E5, 05, 05]
+1D0A3; [0C F0 B5, 05, 05]
-1D069; [0C EB EC, 05, 05]
+1D0A4; [0C F0 BC, 05, 05]
-1D06A; [0C EB F3, 05, 05]
+1D0A5; [0C F0 C3, 05, 05]
-1D06B; [0C EB FA, 05, 05]
+1D0A6; [0C F0 CA, 05, 05]
-1D06C; [0C EC 03, 05, 05]
+1D0A7; [0C F0 D1, 05, 05]
-1D06D; [0C EC 0A, 05, 05]
+1D0A8; [0C F0 D8, 05, 05]
-1D06E; [0C EC 11, 05, 05]
+1D0A9; [0C F0 DF, 05, 05]
-1D06F; [0C EC 18, 05, 05]
+1D0AA; [0C F0 E6, 05, 05]
-1D070; [0C EC 1F, 05, 05]
+1D0AB; [0C F0 ED, 05, 05]
-1D071; [0C EC 26, 05, 05]
+1D0AC; [0C F0 F4, 05, 05]
-1D072; [0C EC 2D, 05, 05]
+1D0AD; [0C F0 FB, 05, 05]
-1D073; [0C EC 34, 05, 05]
+1D0AE; [0C F1 04, 05, 05]
-1D074; [0C EC 3B, 05, 05]
+1D0AF; [0C F1 0B, 05, 05]
-1D075; [0C EC 42, 05, 05]
+1D0B0; [0C F1 12, 05, 05]
-1D076; [0C EC 49, 05, 05]
+1D0B1; [0C F1 19, 05, 05]
-1D077; [0C EC 50, 05, 05]
+1D0B2; [0C F1 20, 05, 05]
-1D078; [0C EC 57, 05, 05]
+1D0B3; [0C F1 27, 05, 05]
-1D079; [0C EC 5E, 05, 05]
+1D0B4; [0C F1 2E, 05, 05]
-1D07A; [0C EC 65, 05, 05]
+1D0B5; [0C F1 35, 05, 05]
-1D07B; [0C EC 6C, 05, 05]
+1D0B6; [0C F1 3C, 05, 05]
-1D07C; [0C EC 73, 05, 05]
+1D0B7; [0C F1 43, 05, 05]
-1D07D; [0C EC 7A, 05, 05]
+1D0B8; [0C F1 4A, 05, 05]
-1D07E; [0C EC 81, 05, 05]
+1D0B9; [0C F1 51, 05, 05]
-1D07F; [0C EC 88, 05, 05]
+1D0BA; [0C F1 58, 05, 05]
-1D080; [0C EC 8F, 05, 05]
+1D0BB; [0C F1 5F, 05, 05]
-1D081; [0C EC 96, 05, 05]
+1D0BC; [0C F1 66, 05, 05]
-1D082; [0C EC 9D, 05, 05]
+1D0BD; [0C F1 6D, 05, 05]
-1D083; [0C EC A4, 05, 05]
+1D0BE; [0C F1 74, 05, 05]
-1D084; [0C EC AB, 05, 05]
+1D0BF; [0C F1 7B, 05, 05]
-1D085; [0C EC B2, 05, 05]
+1D0C0; [0C F1 82, 05, 05]
-1D086; [0C EC B9, 05, 05]
+1D0C1; [0C F1 89, 05, 05]
-1D087; [0C EC C0, 05, 05]
+1D0C2; [0C F1 90, 05, 05]
-1D088; [0C EC C7, 05, 05]
+1D0C3; [0C F1 97, 05, 05]
-1D089; [0C EC CE, 05, 05]
+1D0C4; [0C F1 9E, 05, 05]
-1D08A; [0C EC D5, 05, 05]
+1D0C5; [0C F1 A5, 05, 05]
-1D08B; [0C EC DC, 05, 05]
+1D0C6; [0C F1 AC, 05, 05]
-1D08C; [0C EC E3, 05, 05]
+1D0C7; [0C F1 B3, 05, 05]
-1D08D; [0C EC EA, 05, 05]
+1D0C8; [0C F1 BA, 05, 05]
-1D08E; [0C EC F1, 05, 05]
+1D0C9; [0C F1 C1, 05, 05]
-1D08F; [0C EC F8, 05, 05]
+1D0CA; [0C F1 C8, 05, 05]
-1D090; [0C EC FF, 05, 05]
+1D0CB; [0C F1 CF, 05, 05]
-1D091; [0C ED 08, 05, 05]
+1D0CC; [0C F1 D6, 05, 05]
-1D092; [0C ED 0F, 05, 05]
+1D0CD; [0C F1 DD, 05, 05]
-1D093; [0C ED 16, 05, 05]
+1D0CE; [0C F1 E4, 05, 05]
-1D094; [0C ED 1D, 05, 05]
+1D0CF; [0C F1 EB, 05, 05]
-1D095; [0C ED 24, 05, 05]
+1D0D0; [0C F1 F2, 05, 05]
-1D096; [0C ED 2B, 05, 05]
+1D0D1; [0C F1 F9, 05, 05]
-1D097; [0C ED 32, 05, 05]
+1D0D2; [0C F2 02, 05, 05]
-1D098; [0C ED 39, 05, 05]
+1D0D3; [0C F2 09, 05, 05]
-1D099; [0C ED 40, 05, 05]
+1D0D4; [0C F2 10, 05, 05]
-1D09A; [0C ED 47, 05, 05]
+1D0D5; [0C F2 17, 05, 05]
-1D09B; [0C ED 4E, 05, 05]
+1D0D6; [0C F2 1E, 05, 05]
-1D09C; [0C ED 55, 05, 05]
+1D0D7; [0C F2 25, 05, 05]
-1D09D; [0C ED 5C, 05, 05]
+1D0D8; [0C F2 2C, 05, 05]
-1D09E; [0C ED 63, 05, 05]
+1D0D9; [0C F2 33, 05, 05]
-1D09F; [0C ED 6A, 05, 05]
+1D0DA; [0C F2 3A, 05, 05]
-1D0A0; [0C ED 71, 05, 05]
+1D0DB; [0C F2 41, 05, 05]
-1D0A1; [0C ED 78, 05, 05]
+1D0DC; [0C F2 48, 05, 05]
-1D0A2; [0C ED 7F, 05, 05]
+1D0DD; [0C F2 4F, 05, 05]
-1D0A3; [0C ED 86, 05, 05]
+1D0DE; [0C F2 56, 05, 05]
-1D0A4; [0C ED 8D, 05, 05]
+1D0DF; [0C F2 5D, 05, 05]
-1D0A5; [0C ED 94, 05, 05]
+1D0E0; [0C F2 64, 05, 05]
-1D0A6; [0C ED 9B, 05, 05]
+1D0E1; [0C F2 6B, 05, 05]
-1D0A7; [0C ED A2, 05, 05]
+1D0E2; [0C F2 72, 05, 05]
-1D0A8; [0C ED A9, 05, 05]
+1D0E3; [0C F2 79, 05, 05]
-1D0A9; [0C ED B0, 05, 05]
+1D0E4; [0C F2 80, 05, 05]
-1D0AA; [0C ED B7, 05, 05]
+1D0E5; [0C F2 87, 05, 05]
-1D0AB; [0C ED BE, 05, 05]
+1D0E6; [0C F2 8E, 05, 05]
-1D0AC; [0C ED C5, 05, 05]
+1D0E7; [0C F2 95, 05, 05]
-1D0AD; [0C ED CC, 05, 05]
+1D0E8; [0C F2 9C, 05, 05]
-1D0AE; [0C ED D3, 05, 05]
+1D0E9; [0C F2 A3, 05, 05]
-1D0AF; [0C ED DA, 05, 05]
+1D0EA; [0C F2 AA, 05, 05]
-1D0B0; [0C ED E1, 05, 05]
+1D0EB; [0C F2 B1, 05, 05]
-1D0B1; [0C ED E8, 05, 05]
+1D0EC; [0C F2 B8, 05, 05]
-1D0B2; [0C ED EF, 05, 05]
+1D0ED; [0C F2 BF, 05, 05]
-1D0B3; [0C ED F6, 05, 05]
+1D0EE; [0C F2 C6, 05, 05]
-1D0B4; [0C ED FD, 05, 05]
+1D0EF; [0C F2 CD, 05, 05]
-1D0B5; [0C EE 06, 05, 05]
+1D0F0; [0C F2 D4, 05, 05]
-1D0B6; [0C EE 0D, 05, 05]
+1D0F1; [0C F2 DB, 05, 05]
-1D0B7; [0C EE 14, 05, 05]
+1D0F2; [0C F2 E2, 05, 05]
-1D0B8; [0C EE 1B, 05, 05]
+1D0F3; [0C F2 E9, 05, 05]
-1D0B9; [0C EE 22, 05, 05]
+1D0F4; [0C F2 F0, 05, 05]
-1D0BA; [0C EE 29, 05, 05]
+1D0F5; [0C F2 F7, 05, 05]
-1D0BB; [0C EE 30, 05, 05]
+1D100; [0C F2 FE, 05, 05]
-1D0BC; [0C EE 37, 05, 05]
+1D101; [0C F3 07, 05, 05]
-1D0BD; [0C EE 3E, 05, 05]
+1D102; [0C F3 0E, 05, 05]
-1D0BE; [0C EE 45, 05, 05]
+1D103; [0C F3 15, 05, 05]
-1D0BF; [0C EE 4C, 05, 05]
+1D104; [0C F3 1C, 05, 05]
-1D0C0; [0C EE 53, 05, 05]
+1D105; [0C F3 23, 05, 05]
-1D0C1; [0C EE 5A, 05, 05]
+1D106; [0C F3 2A, 05, 05]
-1D0C2; [0C EE 61, 05, 05]
+1D107; [0C F3 31, 05, 05]
-1D0C3; [0C EE 68, 05, 05]
+1D108; [0C F3 38, 05, 05]
-1D0C4; [0C EE 6F, 05, 05]
+1D109; [0C F3 3F, 05, 05]
-1D0C5; [0C EE 76, 05, 05]
+1D10A; [0C F3 46, 05, 05]
-1D0C6; [0C EE 7D, 05, 05]
+1D10B; [0C F3 4D, 05, 05]
-1D0C7; [0C EE 84, 05, 05]
+1D10C; [0C F3 54, 05, 05]
-1D0C8; [0C EE 8B, 05, 05]
+1D10D; [0C F3 5B, 05, 05]
-1D0C9; [0C EE 92, 05, 05]
+1D10E; [0C F3 62, 05, 05]
-1D0CA; [0C EE 99, 05, 05]
+1D10F; [0C F3 69, 05, 05]
-1D0CB; [0C EE A0, 05, 05]
+1D110; [0C F3 70, 05, 05]
-1D0CC; [0C EE A7, 05, 05]
+1D111; [0C F3 77, 05, 05]
-1D0CD; [0C EE AE, 05, 05]
+1D112; [0C F3 7E, 05, 05]
-1D0CE; [0C EE B5, 05, 05]
+1D113; [0C F3 85, 05, 05]
-1D0CF; [0C EE BC, 05, 05]
+1D114; [0C F3 8C, 05, 05]
-1D0D0; [0C EE C3, 05, 05]
+1D115; [0C F3 93, 05, 05]
-1D0D1; [0C EE CA, 05, 05]
+1D116; [0C F3 9A, 05, 05]
-1D0D2; [0C EE D1, 05, 05]
+1D117; [0C F3 A1, 05, 05]
-1D0D3; [0C EE D8, 05, 05]
+1D118; [0C F3 A8, 05, 05]
-1D0D4; [0C EE DF, 05, 05]
+1D119; [0C F3 AF, 05, 05]
-1D0D5; [0C EE E6, 05, 05]
+1D11A; [0C F3 B6, 05, 05]
-1D0D6; [0C EE ED, 05, 05]
+1D11B; [0C F3 BD, 05, 05]
-1D0D7; [0C EE F4, 05, 05]
+1D11C; [0C F3 C4, 05, 05]
-1D0D8; [0C EE FB, 05, 05]
+1D11D; [0C F3 CB, 05, 05]
-1D0D9; [0C EF 04, 05, 05]
+1D11E; [0C F3 D2, 05, 05]
-1D0DA; [0C EF 0B, 05, 05]
+1D11F; [0C F3 D9, 05, 05]
-1D0DB; [0C EF 12, 05, 05]
+1D120; [0C F3 E0, 05, 05]
-1D0DC; [0C EF 19, 05, 05]
+1D121; [0C F3 E7, 05, 05]
-1D0DD; [0C EF 20, 05, 05]
+1D122; [0C F3 EE, 05, 05]
-1D0DE; [0C EF 27, 05, 05]
+1D123; [0C F3 F5, 05, 05]
-1D0DF; [0C EF 2E, 05, 05]
+1D124; [0C F3 FC, 05, 05]
-1D0E0; [0C EF 35, 05, 05]
+1D125; [0C F4 05, 05, 05]
-1D0E1; [0C EF 3C, 05, 05]
+1D126; [0C F4 0C, 05, 05]
-1D0E2; [0C EF 43, 05, 05]
+266D; [0C F4 13, 05, 05]
-1D0E3; [0C EF 4A, 05, 05]
+266E; [0C F4 1A, 05, 05]
-1D0E4; [0C EF 51, 05, 05]
+266F; [0C F4 21, 05, 05]
-1D0E5; [0C EF 58, 05, 05]
+1D12A; [0C F4 28, 05, 05]
-1D0E6; [0C EF 5F, 05, 05]
+1D12B; [0C F4 2F, 05, 05]
-1D0E7; [0C EF 66, 05, 05]
+1D12C; [0C F4 36, 05, 05]
-1D0E8; [0C EF 6D, 05, 05]
+1D12D; [0C F4 3D, 05, 05]
-1D0E9; [0C EF 74, 05, 05]
+1D12E; [0C F4 44, 05, 05]
-1D0EA; [0C EF 7B, 05, 05]
+1D12F; [0C F4 4B, 05, 05]
-1D0EB; [0C EF 82, 05, 05]
+1D130; [0C F4 52, 05, 05]
-1D0EC; [0C EF 89, 05, 05]
+1D131; [0C F4 59, 05, 05]
-1D0ED; [0C EF 90, 05, 05]
+1D132; [0C F4 60, 05, 05]
-1D0EE; [0C EF 97, 05, 05]
+1D133; [0C F4 67, 05, 05]
-1D0EF; [0C EF 9E, 05, 05]
+1D134; [0C F4 6E, 05, 05]
-1D0F0; [0C EF A5, 05, 05]
+1D135; [0C F4 75, 05, 05]
-1D0F1; [0C EF AC, 05, 05]
+1D136; [0C F4 7C, 05, 05]
-1D0F2; [0C EF B3, 05, 05]
+1D137; [0C F4 83, 05, 05]
-1D0F3; [0C EF BA, 05, 05]
+1D138; [0C F4 8A, 05, 05]
-1D0F4; [0C EF C1, 05, 05]
+1D139; [0C F4 91, 05, 05]
-1D0F5; [0C EF C8, 05, 05]
+1D129; [0C F4 98, 05, 05]
-1D100; [0C EF CF, 05, 05]
+1D13A; [0C F4 9F, 05, 05]
-1D101; [0C EF D6, 05, 05]
+1D13B; [0C F4 A6, 05, 05]
-1D102; [0C EF DD, 05, 05]
+1D13C; [0C F4 AD, 05, 05]
-1D103; [0C EF E4, 05, 05]
+1D13D; [0C F4 B4, 05, 05]
-1D104; [0C EF EB, 05, 05]
+1D13E; [0C F4 BB, 05, 05]
-1D105; [0C EF F2, 05, 05]
+1D13F; [0C F4 C2, 05, 05]
-1D106; [0C EF F9, 05, 05]
+1D140; [0C F4 C9, 05, 05]
-1D107; [0C F0 02, 05, 05]
+1D141; [0C F4 D0, 05, 05]
-1D108; [0C F0 09, 05, 05]
+1D142; [0C F4 D7, 05, 05]
-1D109; [0C F0 10, 05, 05]
+1D143; [0C F4 DE, 05, 05]
-1D10A; [0C F0 17, 05, 05]
+1D144; [0C F4 E5, 05, 05]
-1D10B; [0C F0 1E, 05, 05]
+1D145; [0C F4 EC, 05, 05]
-1D10C; [0C F0 25, 05, 05]
+1D146; [0C F4 F3, 05, 05]
-1D10D; [0C F0 2C, 05, 05]
+1D147; [0C F4 FA, 05, 05]
-1D10E; [0C F0 33, 05, 05]
+1D148; [0C F5 03, 05, 05]
-1D10F; [0C F0 3A, 05, 05]
+1D149; [0C F5 0A, 05, 05]
-1D110; [0C F0 41, 05, 05]
+1D14A; [0C F5 11, 05, 05]
-1D111; [0C F0 48, 05, 05]
+1D14B; [0C F5 18, 05, 05]
-1D112; [0C F0 4F, 05, 05]
+1D14C; [0C F5 1F, 05, 05]
-1D113; [0C F0 56, 05, 05]
+1D14D; [0C F5 26, 05, 05]
-1D114; [0C F0 5D, 05, 05]
+1D14E; [0C F5 2D, 05, 05]
-1D115; [0C F0 64, 05, 05]
+1D14F; [0C F5 34, 05, 05]
-1D116; [0C F0 6B, 05, 05]
+1D150; [0C F5 3B, 05, 05]
-1D117; [0C F0 72, 05, 05]
+1D151; [0C F5 42, 05, 05]
-1D118; [0C F0 79, 05, 05]
+1D152; [0C F5 49, 05, 05]
-1D119; [0C F0 80, 05, 05]
+1D153; [0C F5 50, 05, 05]
-1D11A; [0C F0 87, 05, 05]
+1D154; [0C F5 57, 05, 05]
-1D11B; [0C F0 8E, 05, 05]
+1D155; [0C F5 5E, 05, 05]
-1D11C; [0C F0 95, 05, 05]
+1D156; [0C F5 65, 05, 05]
-1D11D; [0C F0 9C, 05, 05]
+1D157; [0C F5 6C, 05, 05]
+1D15E; [0C F5 6C, 05, 05]
-1D11E; [0C F0 A3, 05, 05]
+1D158; [0C F5 73, 05, 05]
+1D15F; [0C F5 73, 05, 05]
+1D160; [0C F5 73, 05, 05]
+1D161; [0C F5 73, 05, 05]
+1D162; [0C F5 73, 05, 05]
+1D163; [0C F5 73, 05, 05]
+1D164; [0C F5 73, 05, 05]
-1D11F; [0C F0 AA, 05, 05]
+1D159; [0C F5 7A, 05, 05]
-1D120; [0C F0 B1, 05, 05]
+1D15A; [0C F5 81, 05, 05]
-1D121; [0C F0 B8, 05, 05]
+1D15B; [0C F5 88, 05, 05]
-1D122; [0C F0 BF, 05, 05]
+1D15C; [0C F5 8F, 05, 05]
-1D123; [0C F0 C6, 05, 05]
+1D15D; [0C F5 96, 05, 05]
-1D124; [0C F0 CD, 05, 05]
+1D16A; [0C F5 9D, 05, 05]
-1D125; [0C F0 D4, 05, 05]
+1D16B; [0C F5 A4, 05, 05]
-1D126; [0C F0 DB, 05, 05]
+1D16C; [0C F5 AB, 05, 05]
-266D; [0C F0 E2, 05, 05]
+1D183; [0C F5 B2, 05, 05]
-266E; [0C F0 E9, 05, 05]
+1D184; [0C F5 B9, 05, 05]
-266F; [0C F0 F0, 05, 05]
+1D18C; [0C F5 C0, 05, 05]
-1D12A; [0C F0 F7, 05, 05]
+1D18D; [0C F5 C7, 05, 05]
-1D12B; [0C F0 FE, 05, 05]
+1D18E; [0C F5 CE, 05, 05]
-1D12C; [0C F1 07, 05, 05]
+1D18F; [0C F5 D5, 05, 05]
-1D12D; [0C F1 0E, 05, 05]
+1D190; [0C F5 DC, 05, 05]
-1D12E; [0C F1 15, 05, 05]
+1D191; [0C F5 E3, 05, 05]
-1D12F; [0C F1 1C, 05, 05]
+1D192; [0C F5 EA, 05, 05]
-1D130; [0C F1 23, 05, 05]
+1D193; [0C F5 F1, 05, 05]
-1D131; [0C F1 2A, 05, 05]
+1D194; [0C F5 F8, 05, 05]
-1D132; [0C F1 31, 05, 05]
+1D195; [0C F5 FF, 05, 05]
-1D133; [0C F1 38, 05, 05]
+1D196; [0C F6 08, 05, 05]
-1D134; [0C F1 3F, 05, 05]
+1D197; [0C F6 0F, 05, 05]
-1D135; [0C F1 46, 05, 05]
+1D198; [0C F6 16, 05, 05]
-1D136; [0C F1 4D, 05, 05]
+1D199; [0C F6 1D, 05, 05]
-1D137; [0C F1 54, 05, 05]
+1D19A; [0C F6 24, 05, 05]
-1D138; [0C F1 5B, 05, 05]
+1D19B; [0C F6 2B, 05, 05]
-1D139; [0C F1 62, 05, 05]
+1D19C; [0C F6 32, 05, 05]
-1D129; [0C F1 69, 05, 05]
+1D19D; [0C F6 39, 05, 05]
-1D13A; [0C F1 70, 05, 05]
+1D19E; [0C F6 40, 05, 05]
-1D13B; [0C F1 77, 05, 05]
+1D19F; [0C F6 47, 05, 05]
-1D13C; [0C F1 7E, 05, 05]
+1D1A0; [0C F6 4E, 05, 05]
-1D13D; [0C F1 85, 05, 05]
+1D1A1; [0C F6 55, 05, 05]
-1D13E; [0C F1 8C, 05, 05]
+1D1A2; [0C F6 5C, 05, 05]
-1D13F; [0C F1 93, 05, 05]
+1D1A3; [0C F6 63, 05, 05]
-1D140; [0C F1 9A, 05, 05]
+1D1A4; [0C F6 6A, 05, 05]
-1D141; [0C F1 A1, 05, 05]
+1D1A5; [0C F6 71, 05, 05]
-1D142; [0C F1 A8, 05, 05]
+1D1A6; [0C F6 78, 05, 05]
-1D143; [0C F1 AF, 05, 05]
+1D1A7; [0C F6 7F, 05, 05]
-1D144; [0C F1 B6, 05, 05]
+1D1A8; [0C F6 86, 05, 05]
-1D145; [0C F1 BD, 05, 05]
+1D1A9; [0C F6 8D, 05, 05]
-1D146; [0C F1 C4, 05, 05]
+1D1AE; [0C F6 94, 05, 05]
-1D147; [0C F1 CB, 05, 05]
+1D1AF; [0C F6 9B, 05, 05]
-1D148; [0C F1 D2, 05, 05]
+1D1B0; [0C F6 A2, 05, 05]
-1D149; [0C F1 D9, 05, 05]
+1D1B1; [0C F6 A9, 05, 05]
-1D14A; [0C F1 E0, 05, 05]
+1D1B2; [0C F6 B0, 05, 05]
-1D14B; [0C F1 E7, 05, 05]
+1D1B3; [0C F6 B7, 05, 05]
-1D14C; [0C F1 EE, 05, 05]
+1D1B4; [0C F6 BE, 05, 05]
-1D14D; [0C F1 F5, 05, 05]
+1D1B5; [0C F6 C5, 05, 05]
-1D14E; [0C F1 FC, 05, 05]
+1D1B6; [0C F6 CC, 05, 05]
-1D14F; [0C F2 05, 05, 05]
+1D1B7; [0C F6 D3, 05, 05]
-1D150; [0C F2 0C, 05, 05]
+1D1B8; [0C F6 DA, 05, 05]
-1D151; [0C F2 13, 05, 05]
+1D1B9; [0C F6 E1, 05, 05]
+1D1BB; [0C F6 E1, 05, 05]
+1D1BD; [0C F6 E1, 05, 05]
+1D1BF; [0C F6 E1, 05, 05]
-1D152; [0C F2 1A, 05, 05]
+1D1BA; [0C F6 E8, 05, 05]
+1D1BC; [0C F6 E8, 05, 05]
+1D1BE; [0C F6 E8, 05, 05]
+1D1C0; [0C F6 E8, 05, 05]
-1D153; [0C F2 21, 05, 05]
+1D1C1; [0C F6 EF, 05, 05]
-1D154; [0C F2 28, 05, 05]
+1D1C2; [0C F6 F6, 05, 05]
-1D155; [0C F2 2F, 05, 05]
+1D1C3; [0C F6 FD, 05, 05]
-1D156; [0C F2 36, 05, 05]
+1D1C4; [0C F7 06, 05, 05]
-1D157; [0C F2 3D, 05, 05]
-1D15E; [0C F2 3D, 05, 05]
+1D1C5; [0C F7 0D, 05, 05]
-1D158; [0C F2 44, 05, 05]
-1D15F; [0C F2 44, 05, 05]
-1D160; [0C F2 44, 05, 05]
-1D161; [0C F2 44, 05, 05]
-1D162; [0C F2 44, 05, 05]
-1D163; [0C F2 44, 05, 05]
-1D164; [0C F2 44, 05, 05]
+1D1C6; [0C F7 14, 05, 05]
-1D159; [0C F2 4B, 05, 05]
+1D1C7; [0C F7 1B, 05, 05]
-1D15A; [0C F2 52, 05, 05]
+1D1C8; [0C F7 22, 05, 05]
-1D15B; [0C F2 59, 05, 05]
+1D1C9; [0C F7 29, 05, 05]
-1D15C; [0C F2 60, 05, 05]
+1D1CA; [0C F7 30, 05, 05]
-1D15D; [0C F2 67, 05, 05]
+1D1CB; [0C F7 37, 05, 05]
-1D16A; [0C F2 6E, 05, 05]
+1D1CC; [0C F7 3E, 05, 05]
-1D16B; [0C F2 75, 05, 05]
+1D1CD; [0C F7 45, 05, 05]
-1D16C; [0C F2 7C, 05, 05]
+1D1CE; [0C F7 4C, 05, 05]
-1D183; [0C F2 83, 05, 05]
+1D1CF; [0C F7 53, 05, 05]
-1D184; [0C F2 8A, 05, 05]
+1D1D0; [0C F7 5A, 05, 05]
-1D18C; [0C F2 91, 05, 05]
+1D1D1; [0C F7 61, 05, 05]
-1D18D; [0C F2 98, 05, 05]
+1D1D2; [0C F7 68, 05, 05]
-1D18E; [0C F2 9F, 05, 05]
+1D1D3; [0C F7 6F, 05, 05]
-1D18F; [0C F2 A6, 05, 05]
+1D1D4; [0C F7 76, 05, 05]
-1D190; [0C F2 AD, 05, 05]
+1D1D5; [0C F7 7D, 05, 05]
-1D191; [0C F2 B4, 05, 05]
+1D1D6; [0C F7 84, 05, 05]
-1D192; [0C F2 BB, 05, 05]
+1D1D7; [0C F7 8B, 05, 05]
-1D193; [0C F2 C2, 05, 05]
+1D1D8; [0C F7 92, 05, 05]
-1D194; [0C F2 C9, 05, 05]
+1D1D9; [0C F7 99, 05, 05]
-1D195; [0C F2 D0, 05, 05]
+1D1DA; [0C F7 A0, 05, 05]
-1D196; [0C F2 D7, 05, 05]
+1D1DB; [0C F7 A7, 05, 05]
-1D197; [0C F2 DE, 05, 05]
+1D1DC; [0C F7 AE, 05, 05]
-1D198; [0C F2 E5, 05, 05]
+1D1DD; [0C F7 B5, 05, 05]
-1D199; [0C F2 EC, 05, 05]
+1D1DE; [0C F7 BC, 05, 05]
-1D19A; [0C F2 F3, 05, 05]
+1D1DF; [0C F7 C3, 05, 05]
-1D19B; [0C F2 FA, 05, 05]
+1D1E0; [0C F7 CA, 05, 05]
-1D19C; [0C F3 03, 05, 05]
+1D1E1; [0C F7 D1, 05, 05]
-1D19D; [0C F3 0A, 05, 05]
+1D1E2; [0C F7 D8, 05, 05]
-1D19E; [0C F3 11, 05, 05]
+1D1E3; [0C F7 DF, 05, 05]
-1D19F; [0C F3 18, 05, 05]
+1D1E4; [0C F7 E6, 05, 05]
-1D1A0; [0C F3 1F, 05, 05]
+1D1E5; [0C F7 ED, 05, 05]
-1D1A1; [0C F3 26, 05, 05]
+1D1E6; [0C F7 F4, 05, 05]
-1D1A2; [0C F3 2D, 05, 05]
+1D1E7; [0C F7 FB, 05, 05]
-1D1A3; [0C F3 34, 05, 05]
+1D1E8; [0C F8 04, 05, 05]
-1D1A4; [0C F3 3B, 05, 05]
+1D200; [0C F8 0B, 05, 05]
-1D1A5; [0C F3 42, 05, 05]
+1D201; [0C F8 12, 05, 05]
-1D1A6; [0C F3 49, 05, 05]
+1D202; [0C F8 19, 05, 05]
-1D1A7; [0C F3 50, 05, 05]
+1D203; [0C F8 20, 05, 05]
-1D1A8; [0C F3 57, 05, 05]
+1D204; [0C F8 27, 05, 05]
-1D1A9; [0C F3 5E, 05, 05]
+1D205; [0C F8 2E, 05, 05]
-1D1AE; [0C F3 65, 05, 05]
+1D206; [0C F8 35, 05, 05]
-1D1AF; [0C F3 6C, 05, 05]
+1D207; [0C F8 3C, 05, 05]
-1D1B0; [0C F3 73, 05, 05]
+1D208; [0C F8 43, 05, 05]
-1D1B1; [0C F3 7A, 05, 05]
+1D209; [0C F8 4A, 05, 05]
-1D1B2; [0C F3 81, 05, 05]
+1D20A; [0C F8 51, 05, 05]
-1D1B3; [0C F3 88, 05, 05]
+1D20B; [0C F8 58, 05, 05]
-1D1B4; [0C F3 8F, 05, 05]
+1D20C; [0C F8 5F, 05, 05]
-1D1B5; [0C F3 96, 05, 05]
+1D20D; [0C F8 66, 05, 05]
-1D1B6; [0C F3 9D, 05, 05]
+1D20E; [0C F8 6D, 05, 05]
-1D1B7; [0C F3 A4, 05, 05]
+1D20F; [0C F8 74, 05, 05]
-1D1B8; [0C F3 AB, 05, 05]
+1D210; [0C F8 7B, 05, 05]
-1D1B9; [0C F3 B2, 05, 05]
-1D1BB; [0C F3 B2, 05, 05]
-1D1BD; [0C F3 B2, 05, 05]
-1D1BF; [0C F3 B2, 05, 05]
+1D211; [0C F8 82, 05, 05]
-1D1BA; [0C F3 B9, 05, 05]
-1D1BC; [0C F3 B9, 05, 05]
-1D1BE; [0C F3 B9, 05, 05]
-1D1C0; [0C F3 B9, 05, 05]
+1D212; [0C F8 89, 05, 05]
-1D1C1; [0C F3 C0, 05, 05]
+1D213; [0C F8 90, 05, 05]
-1D1C2; [0C F3 C7, 05, 05]
+1D214; [0C F8 97, 05, 05]
-1D1C3; [0C F3 CE, 05, 05]
+1D215; [0C F8 9E, 05, 05]
-1D1C4; [0C F3 D5, 05, 05]
+1D216; [0C F8 A5, 05, 05]
-1D1C5; [0C F3 DC, 05, 05]
+1D217; [0C F8 AC, 05, 05]
-1D1C6; [0C F3 E3, 05, 05]
+1D218; [0C F8 B3, 05, 05]
-1D1C7; [0C F3 EA, 05, 05]
+1D219; [0C F8 BA, 05, 05]
-1D1C8; [0C F3 F1, 05, 05]
+1D21A; [0C F8 C1, 05, 05]
-1D1C9; [0C F3 F8, 05, 05]
+1D21B; [0C F8 C8, 05, 05]
-1D1CA; [0C F3 FF, 05, 05]
+1D21C; [0C F8 CF, 05, 05]
-1D1CB; [0C F4 08, 05, 05]
+1D21D; [0C F8 D6, 05, 05]
-1D1CC; [0C F4 0F, 05, 05]
+1D21E; [0C F8 DD, 05, 05]
-1D1CD; [0C F4 16, 05, 05]
+1D21F; [0C F8 E4, 05, 05]
-1D1CE; [0C F4 1D, 05, 05]
+1D220; [0C F8 EB, 05, 05]
-1D1CF; [0C F4 24, 05, 05]
+1D221; [0C F8 F2, 05, 05]
-1D1D0; [0C F4 2B, 05, 05]
+1D222; [0C F8 F9, 05, 05]
-1D1D1; [0C F4 32, 05, 05]
+1D223; [0C F9 02, 05, 05]
-1D1D2; [0C F4 39, 05, 05]
+1D224; [0C F9 09, 05, 05]
-1D1D3; [0C F4 40, 05, 05]
+1D225; [0C F9 10, 05, 05]
-1D1D4; [0C F4 47, 05, 05]
+1D226; [0C F9 17, 05, 05]
-1D1D5; [0C F4 4E, 05, 05]
+1D227; [0C F9 1E, 05, 05]
-1D1D6; [0C F4 55, 05, 05]
+1D228; [0C F9 25, 05, 05]
-1D1D7; [0C F4 5C, 05, 05]
+1D229; [0C F9 2C, 05, 05]
-1D1D8; [0C F4 63, 05, 05]
+1D22A; [0C F9 33, 05, 05]
-1D1D9; [0C F4 6A, 05, 05]
+1D22B; [0C F9 3A, 05, 05]
-1D1DA; [0C F4 71, 05, 05]
+1D22C; [0C F9 41, 05, 05]
-1D1DB; [0C F4 78, 05, 05]
+1D22D; [0C F9 48, 05, 05]
-1D1DC; [0C F4 7F, 05, 05]
+1D22E; [0C F9 4F, 05, 05]
-1D1DD; [0C F4 86, 05, 05]
+1D22F; [0C F9 56, 05, 05]
-1D1DE; [0C F4 8D, 05, 05]
+1D230; [0C F9 5D, 05, 05]
-1D1DF; [0C F4 94, 05, 05]
+1D231; [0C F9 64, 05, 05]
-1D1E0; [0C F4 9B, 05, 05]
+1D232; [0C F9 6B, 05, 05]
-1D1E1; [0C F4 A2, 05, 05]
+1D233; [0C F9 72, 05, 05]
-1D1E2; [0C F4 A9, 05, 05]
+1D234; [0C F9 79, 05, 05]
-1D1E3; [0C F4 B0, 05, 05]
+1D235; [0C F9 80, 05, 05]
-1D1E4; [0C F4 B7, 05, 05]
+1D236; [0C F9 87, 05, 05]
-1D1E5; [0C F4 BE, 05, 05]
+1D237; [0C F9 8E, 05, 05]
-1D1E6; [0C F4 C5, 05, 05]
+1D238; [0C F9 95, 05, 05]
-1D1E7; [0C F4 CC, 05, 05]
+1D239; [0C F9 9C, 05, 05]
-1D1E8; [0C F4 D3, 05, 05]
+1D23A; [0C F9 A3, 05, 05]
-1D200; [0C F4 DA, 05, 05]
+1D23B; [0C F9 AA, 05, 05]
-1D201; [0C F4 E1, 05, 05]
+1D23C; [0C F9 B1, 05, 05]
-1D202; [0C F4 E8, 05, 05]
+1D23D; [0C F9 B8, 05, 05]
-1D203; [0C F4 EF, 05, 05]
+1D23E; [0C F9 BF, 05, 05]
-1D204; [0C F4 F6, 05, 05]
+1D23F; [0C F9 C6, 05, 05]
-1D205; [0C F4 FD, 05, 05]
+1D240; [0C F9 CD, 05, 05]
-1D206; [0C F5 06, 05, 05]
+1D241; [0C F9 D4, 05, 05]
-1D207; [0C F5 0D, 05, 05]
+1D245; [0C F9 DB, 05, 05]
-1D208; [0C F5 14, 05, 05]
+1BC9C; [0C F9 E2, 05, 05]
-1D209; [0C F5 1B, 05, 05]
+1ECAC; [0C F9 E9, 05, 05]
-1D20A; [0C F5 22, 05, 05]
+1F000; [0C F9 F0, 05, 05]
-1D20B; [0C F5 29, 05, 05]
+1F001; [0C F9 F7, 05, 05]
-1D20C; [0C F5 30, 05, 05]
+1F002; [0C F9 FE, 05, 05]
-1D20D; [0C F5 37, 05, 05]
+1F003; [0C FA 07, 05, 05]
-1D20E; [0C F5 3E, 05, 05]
+1F004; [0C FA 0E, 05, 05]
-1D20F; [0C F5 45, 05, 05]
+1F005; [0C FA 15, 05, 05]
-1D210; [0C F5 4C, 05, 05]
+1F006; [0C FA 1C, 05, 05]
-1D211; [0C F5 53, 05, 05]
+1F007; [0C FA 23, 05, 05]
-1D212; [0C F5 5A, 05, 05]
+1F008; [0C FA 2A, 05, 05]
-1D213; [0C F5 61, 05, 05]
+1F009; [0C FA 31, 05, 05]
-1D214; [0C F5 68, 05, 05]
+1F00A; [0C FA 38, 05, 05]
-1D215; [0C F5 6F, 05, 05]
+1F00B; [0C FA 3F, 05, 05]
-1D216; [0C F5 76, 05, 05]
+1F00C; [0C FA 46, 05, 05]
-1D217; [0C F5 7D, 05, 05]
+1F00D; [0C FA 4D, 05, 05]
-1D218; [0C F5 84, 05, 05]
+1F00E; [0C FA 54, 05, 05]
-1D219; [0C F5 8B, 05, 05]
+1F00F; [0C FA 5B, 05, 05]
-1D21A; [0C F5 92, 05, 05]
+1F010; [0C FA 62, 05, 05]
-1D21B; [0C F5 99, 05, 05]
+1F011; [0C FA 69, 05, 05]
-1D21C; [0C F5 A0, 05, 05]
+1F012; [0C FA 70, 05, 05]
-1D21D; [0C F5 A7, 05, 05]
+1F013; [0C FA 77, 05, 05]
-1D21E; [0C F5 AE, 05, 05]
+1F014; [0C FA 7E, 05, 05]
-1D21F; [0C F5 B5, 05, 05]
+1F015; [0C FA 85, 05, 05]
-1D220; [0C F5 BC, 05, 05]
+1F016; [0C FA 8C, 05, 05]
-1D221; [0C F5 C3, 05, 05]
+1F017; [0C FA 93, 05, 05]
-1D222; [0C F5 CA, 05, 05]
+1F018; [0C FA 9A, 05, 05]
-1D223; [0C F5 D1, 05, 05]
+1F019; [0C FA A1, 05, 05]
-1D224; [0C F5 D8, 05, 05]
+1F01A; [0C FA A8, 05, 05]
-1D225; [0C F5 DF, 05, 05]
+1F01B; [0C FA AF, 05, 05]
-1D226; [0C F5 E6, 05, 05]
+1F01C; [0C FA B6, 05, 05]
-1D227; [0C F5 ED, 05, 05]
+1F01D; [0C FA BD, 05, 05]
-1D228; [0C F5 F4, 05, 05]
+1F01E; [0C FA C4, 05, 05]
-1D229; [0C F5 FB, 05, 05]
+1F01F; [0C FA CB, 05, 05]
-1D22A; [0C F6 04, 05, 05]
+1F020; [0C FA D2, 05, 05]
-1D22B; [0C F6 0B, 05, 05]
+1F021; [0C FA D9, 05, 05]
-1D22C; [0C F6 12, 05, 05]
+1F022; [0C FA E0, 05, 05]
-1D22D; [0C F6 19, 05, 05]
+1F023; [0C FA E7, 05, 05]
-1D22E; [0C F6 20, 05, 05]
+1F024; [0C FA EE, 05, 05]
-1D22F; [0C F6 27, 05, 05]
+1F025; [0C FA F5, 05, 05]
-1D230; [0C F6 2E, 05, 05]
+1F026; [0C FA FC, 05, 05]
-1D231; [0C F6 35, 05, 05]
+1F027; [0C FB 05, 05, 05]
-1D232; [0C F6 3C, 05, 05]
+1F028; [0C FB 0C, 05, 05]
-1D233; [0C F6 43, 05, 05]
+1F029; [0C FB 13, 05, 05]
-1D234; [0C F6 4A, 05, 05]
+1F02A; [0C FB 1A, 05, 05]
-1D235; [0C F6 51, 05, 05]
+1F02B; [0C FB 21, 05, 05]
-1D236; [0C F6 58, 05, 05]
+1F030; [0C FB 28, 05, 05]
-1D237; [0C F6 5F, 05, 05]
+1F031; [0C FB 2F, 05, 05]
-1D238; [0C F6 66, 05, 05]
+1F032; [0C FB 36, 05, 05]
-1D239; [0C F6 6D, 05, 05]
+1F033; [0C FB 3D, 05, 05]
-1D23A; [0C F6 74, 05, 05]
+1F034; [0C FB 44, 05, 05]
-1D23B; [0C F6 7B, 05, 05]
+1F035; [0C FB 4B, 05, 05]
-1D23C; [0C F6 82, 05, 05]
+1F036; [0C FB 52, 05, 05]
-1D23D; [0C F6 89, 05, 05]
+1F037; [0C FB 59, 05, 05]
-1D23E; [0C F6 90, 05, 05]
+1F038; [0C FB 60, 05, 05]
-1D23F; [0C F6 97, 05, 05]
+1F039; [0C FB 67, 05, 05]
-1D240; [0C F6 9E, 05, 05]
+1F03A; [0C FB 6E, 05, 05]
-1D241; [0C F6 A5, 05, 05]
+1F03B; [0C FB 75, 05, 05]
-1D245; [0C F6 AC, 05, 05]
+1F03C; [0C FB 7C, 05, 05]
-1BC9C; [0C F6 B3, 05, 05]
+1F03D; [0C FB 83, 05, 05]
-1F000; [0C F6 BA, 05, 05]
+1F03E; [0C FB 8A, 05, 05]
-1F001; [0C F6 C1, 05, 05]
+1F03F; [0C FB 91, 05, 05]
-1F002; [0C F6 C8, 05, 05]
+1F040; [0C FB 98, 05, 05]
-1F003; [0C F6 CF, 05, 05]
+1F041; [0C FB 9F, 05, 05]
-1F004; [0C F6 D6, 05, 05]
+1F042; [0C FB A6, 05, 05]
-1F005; [0C F6 DD, 05, 05]
+1F043; [0C FB AD, 05, 05]
-1F006; [0C F6 E4, 05, 05]
+1F044; [0C FB B4, 05, 05]
-1F007; [0C F6 EB, 05, 05]
+1F045; [0C FB BB, 05, 05]
-1F008; [0C F6 F2, 05, 05]
+1F046; [0C FB C2, 05, 05]
-1F009; [0C F6 F9, 05, 05]
+1F047; [0C FB C9, 05, 05]
-1F00A; [0C F7 02, 05, 05]
+1F048; [0C FB D0, 05, 05]
-1F00B; [0C F7 09, 05, 05]
+1F049; [0C FB D7, 05, 05]
-1F00C; [0C F7 10, 05, 05]
+1F04A; [0C FB DE, 05, 05]
-1F00D; [0C F7 17, 05, 05]
+1F04B; [0C FB E5, 05, 05]
-1F00E; [0C F7 1E, 05, 05]
+1F04C; [0C FB EC, 05, 05]
-1F00F; [0C F7 25, 05, 05]
+1F04D; [0C FB F3, 05, 05]
-1F010; [0C F7 2C, 05, 05]
+1F04E; [0C FB FA, 05, 05]
-1F011; [0C F7 33, 05, 05]
+1F04F; [0C FC 03, 05, 05]
-1F012; [0C F7 3A, 05, 05]
+1F050; [0C FC 0A, 05, 05]
-1F013; [0C F7 41, 05, 05]
+1F051; [0C FC 11, 05, 05]
-1F014; [0C F7 48, 05, 05]
+1F052; [0C FC 18, 05, 05]
-1F015; [0C F7 4F, 05, 05]
+1F053; [0C FC 1F, 05, 05]
-1F016; [0C F7 56, 05, 05]
+1F054; [0C FC 26, 05, 05]
-1F017; [0C F7 5D, 05, 05]
+1F055; [0C FC 2D, 05, 05]
-1F018; [0C F7 64, 05, 05]
+1F056; [0C FC 34, 05, 05]
-1F019; [0C F7 6B, 05, 05]
+1F057; [0C FC 3B, 05, 05]
-1F01A; [0C F7 72, 05, 05]
+1F058; [0C FC 42, 05, 05]
-1F01B; [0C F7 79, 05, 05]
+1F059; [0C FC 49, 05, 05]
-1F01C; [0C F7 80, 05, 05]
+1F05A; [0C FC 50, 05, 05]
-1F01D; [0C F7 87, 05, 05]
+1F05B; [0C FC 57, 05, 05]
-1F01E; [0C F7 8E, 05, 05]
+1F05C; [0C FC 5E, 05, 05]
-1F01F; [0C F7 95, 05, 05]
+1F05D; [0C FC 65, 05, 05]
-1F020; [0C F7 9C, 05, 05]
+1F05E; [0C FC 6C, 05, 05]
-1F021; [0C F7 A3, 05, 05]
+1F05F; [0C FC 73, 05, 05]
-1F022; [0C F7 AA, 05, 05]
+1F060; [0C FC 7A, 05, 05]
-1F023; [0C F7 B1, 05, 05]
+1F061; [0C FC 81, 05, 05]
-1F024; [0C F7 B8, 05, 05]
+1F062; [0C FC 88, 05, 05]
-1F025; [0C F7 BF, 05, 05]
+1F063; [0C FC 8F, 05, 05]
-1F026; [0C F7 C6, 05, 05]
+1F064; [0C FC 96, 05, 05]
-1F027; [0C F7 CD, 05, 05]
+1F065; [0C FC 9D, 05, 05]
-1F028; [0C F7 D4, 05, 05]
+1F066; [0C FC A4, 05, 05]
-1F029; [0C F7 DB, 05, 05]
+1F067; [0C FC AB, 05, 05]
-1F02A; [0C F7 E2, 05, 05]
+1F068; [0C FC B2, 05, 05]
-1F02B; [0C F7 E9, 05, 05]
+1F069; [0C FC B9, 05, 05]
-1F030; [0C F7 F0, 05, 05]
+1F06A; [0C FC C0, 05, 05]
-1F031; [0C F7 F7, 05, 05]
+1F06B; [0C FC C7, 05, 05]
-1F032; [0C F7 FE, 05, 05]
+1F06C; [0C FC CE, 05, 05]
-1F033; [0C F8 07, 05, 05]
+1F06D; [0C FC D5, 05, 05]
-1F034; [0C F8 0E, 05, 05]
+1F06E; [0C FC DC, 05, 05]
-1F035; [0C F8 15, 05, 05]
+1F06F; [0C FC E3, 05, 05]
-1F036; [0C F8 1C, 05, 05]
+1F070; [0C FC EA, 05, 05]
-1F037; [0C F8 23, 05, 05]
+1F071; [0C FC F1, 05, 05]
-1F038; [0C F8 2A, 05, 05]
+1F072; [0C FC F8, 05, 05]
-1F039; [0C F8 31, 05, 05]
+1F073; [0C FC FF, 05, 05]
-1F03A; [0C F8 38, 05, 05]
+1F074; [0C FD 08, 05, 05]
-1F03B; [0C F8 3F, 05, 05]
+1F075; [0C FD 0F, 05, 05]
-1F03C; [0C F8 46, 05, 05]
+1F076; [0C FD 16, 05, 05]
-1F03D; [0C F8 4D, 05, 05]
+1F077; [0C FD 1D, 05, 05]
-1F03E; [0C F8 54, 05, 05]
+1F078; [0C FD 24, 05, 05]
-1F03F; [0C F8 5B, 05, 05]
+1F079; [0C FD 2B, 05, 05]
-1F040; [0C F8 62, 05, 05]
+1F07A; [0C FD 32, 05, 05]
-1F041; [0C F8 69, 05, 05]
+1F07B; [0C FD 39, 05, 05]
-1F042; [0C F8 70, 05, 05]
+1F07C; [0C FD 40, 05, 05]
-1F043; [0C F8 77, 05, 05]
+1F07D; [0C FD 47, 05, 05]
-1F044; [0C F8 7E, 05, 05]
+1F07E; [0C FD 4E, 05, 05]
-1F045; [0C F8 85, 05, 05]
+1F07F; [0C FD 55, 05, 05]
-1F046; [0C F8 8C, 05, 05]
+1F080; [0C FD 5C, 05, 05]
-1F047; [0C F8 93, 05, 05]
+1F081; [0C FD 63, 05, 05]
-1F048; [0C F8 9A, 05, 05]
+1F082; [0C FD 6A, 05, 05]
-1F049; [0C F8 A1, 05, 05]
+1F083; [0C FD 71, 05, 05]
-1F04A; [0C F8 A8, 05, 05]
+1F084; [0C FD 78, 05, 05]
-1F04B; [0C F8 AF, 05, 05]
+1F085; [0C FD 7F, 05, 05]
-1F04C; [0C F8 B6, 05, 05]
+1F086; [0C FD 86, 05, 05]
-1F04D; [0C F8 BD, 05, 05]
+1F087; [0C FD 8D, 05, 05]
-1F04E; [0C F8 C4, 05, 05]
+1F088; [0C FD 94, 05, 05]
-1F04F; [0C F8 CB, 05, 05]
+1F089; [0C FD 9B, 05, 05]
-1F050; [0C F8 D2, 05, 05]
+1F08A; [0C FD A2, 05, 05]
-1F051; [0C F8 D9, 05, 05]
+1F08B; [0C FD A9, 05, 05]
-1F052; [0C F8 E0, 05, 05]
+1F08C; [0C FD B0, 05, 05]
-1F053; [0C F8 E7, 05, 05]
+1F08D; [0C FD B7, 05, 05]
-1F054; [0C F8 EE, 05, 05]
+1F08E; [0C FD BE, 05, 05]
-1F055; [0C F8 F5, 05, 05]
+1F08F; [0C FD C5, 05, 05]
-1F056; [0C F8 FC, 05, 05]
+1F090; [0C FD CC, 05, 05]
-1F057; [0C F9 05, 05, 05]
+1F091; [0C FD D3, 05, 05]
-1F058; [0C F9 0C, 05, 05]
+1F092; [0C FD DA, 05, 05]
-1F059; [0C F9 13, 05, 05]
+1F093; [0C FD E1, 05, 05]
-1F05A; [0C F9 1A, 05, 05]
+1F0A0; [0C FD E8, 05, 05]
-1F05B; [0C F9 21, 05, 05]
+1F0A1; [0C FD EF, 05, 05]
-1F05C; [0C F9 28, 05, 05]
+1F0A2; [0C FD F6, 05, 05]
-1F05D; [0C F9 2F, 05, 05]
+1F0A3; [0C FD FD, 05, 05]
-1F05E; [0C F9 36, 05, 05]
+1F0A4; [0C FE 06, 05, 05]
-1F05F; [0C F9 3D, 05, 05]
+1F0A5; [0C FE 0D, 05, 05]
-1F060; [0C F9 44, 05, 05]
+1F0A6; [0C FE 14, 05, 05]
-1F061; [0C F9 4B, 05, 05]
+1F0A7; [0C FE 1B, 05, 05]
-1F062; [0C F9 52, 05, 05]
+1F0A8; [0C FE 22, 05, 05]
-1F063; [0C F9 59, 05, 05]
+1F0A9; [0C FE 29, 05, 05]
-1F064; [0C F9 60, 05, 05]
+1F0AA; [0C FE 30, 05, 05]
-1F065; [0C F9 67, 05, 05]
+1F0AB; [0C FE 37, 05, 05]
-1F066; [0C F9 6E, 05, 05]
+1F0AC; [0C FE 3E, 05, 05]
-1F067; [0C F9 75, 05, 05]
+1F0AD; [0C FE 45, 05, 05]
-1F068; [0C F9 7C, 05, 05]
+1F0AE; [0C FE 4C, 05, 05]
-1F069; [0C F9 83, 05, 05]
+1F0B1; [0C FE 53, 05, 05]
-1F06A; [0C F9 8A, 05, 05]
+1F0B2; [0C FE 5A, 05, 05]
-1F06B; [0C F9 91, 05, 05]
+1F0B3; [0C FE 61, 05, 05]
-1F06C; [0C F9 98, 05, 05]
+1F0B4; [0C FE 68, 05, 05]
-1F06D; [0C F9 9F, 05, 05]
+1F0B5; [0C FE 6F, 05, 05]
-1F06E; [0C F9 A6, 05, 05]
+1F0B6; [0C FE 76, 05, 05]
-1F06F; [0C F9 AD, 05, 05]
+1F0B7; [0C FE 7D, 05, 05]
-1F070; [0C F9 B4, 05, 05]
+1F0B8; [0C FE 84, 05, 05]
-1F071; [0C F9 BB, 05, 05]
+1F0B9; [0C FE 8B, 05, 05]
-1F072; [0C F9 C2, 05, 05]
+1F0BA; [0C FE 92, 05, 05]
-1F073; [0C F9 C9, 05, 05]
+1F0BB; [0C FE 99, 05, 05]
-1F074; [0C F9 D0, 05, 05]
+1F0BC; [0C FE A0, 05, 05]
-1F075; [0C F9 D7, 05, 05]
+1F0BD; [0C FE A7, 05, 05]
-1F076; [0C F9 DE, 05, 05]
+1F0BE; [0C FE AE, 05, 05]
-1F077; [0C F9 E5, 05, 05]
+1F0BF; [0C FE B5, 05, 05]
-1F078; [0C F9 EC, 05, 05]
+1F0C1; [0C FE BC, 05, 05]
-1F079; [0C F9 F3, 05, 05]
+1F0C2; [0C FE C3, 05, 05]
-1F07A; [0C F9 FA, 05, 05]
+1F0C3; [0C FE CA, 05, 05]
-1F07B; [0C FA 03, 05, 05]
+1F0C4; [0C FE D1, 05, 05]
-1F07C; [0C FA 0A, 05, 05]
+1F0C5; [0C FE D8, 05, 05]
-1F07D; [0C FA 11, 05, 05]
+1F0C6; [0C FE DF, 05, 05]
-1F07E; [0C FA 18, 05, 05]
+1F0C7; [0C FE E6, 05, 05]
-1F07F; [0C FA 1F, 05, 05]
+1F0C8; [0C FE ED, 05, 05]
-1F080; [0C FA 26, 05, 05]
+1F0C9; [0C FE F4, 05, 05]
-1F081; [0C FA 2D, 05, 05]
+1F0CA; [0C FE FB, 05, 05]
-1F082; [0C FA 34, 05, 05]
+1F0CB; [0C FF 04, 05, 05]
-1F083; [0C FA 3B, 05, 05]
+1F0CC; [0C FF 0B, 05, 05]
-1F084; [0C FA 42, 05, 05]
+1F0CD; [0C FF 12, 05, 05]
-1F085; [0C FA 49, 05, 05]
+1F0CE; [0C FF 19, 05, 05]
-1F086; [0C FA 50, 05, 05]
+1F0CF; [0C FF 20, 05, 05]
-1F087; [0C FA 57, 05, 05]
+1F0D1; [0C FF 27, 05, 05]
-1F088; [0C FA 5E, 05, 05]
+1F0D2; [0C FF 2E, 05, 05]
-1F089; [0C FA 65, 05, 05]
+1F0D3; [0C FF 35, 05, 05]
-1F08A; [0C FA 6C, 05, 05]
+1F0D4; [0C FF 3C, 05, 05]
-1F08B; [0C FA 73, 05, 05]
+1F0D5; [0C FF 43, 05, 05]
-1F08C; [0C FA 7A, 05, 05]
+1F0D6; [0C FF 4A, 05, 05]
-1F08D; [0C FA 81, 05, 05]
+1F0D7; [0C FF 51, 05, 05]
-1F08E; [0C FA 88, 05, 05]
+1F0D8; [0C FF 58, 05, 05]
-1F08F; [0C FA 8F, 05, 05]
+1F0D9; [0C FF 5F, 05, 05]
-1F090; [0C FA 96, 05, 05]
+1F0DA; [0C FF 66, 05, 05]
-1F091; [0C FA 9D, 05, 05]
+1F0DB; [0C FF 6D, 05, 05]
-1F092; [0C FA A4, 05, 05]
+1F0DC; [0C FF 74, 05, 05]
-1F093; [0C FA AB, 05, 05]
+1F0DD; [0C FF 7B, 05, 05]
-1F0A0; [0C FA B2, 05, 05]
+1F0DE; [0C FF 82, 05, 05]
-1F0A1; [0C FA B9, 05, 05]
+1F0DF; [0C FF 89, 05, 05]
-1F0A2; [0C FA C0, 05, 05]
+1F0E0; [0C FF 90, 05, 05]
-1F0A3; [0C FA C7, 05, 05]
+1F0E1; [0C FF 97, 05, 05]
-1F0A4; [0C FA CE, 05, 05]
+1F0E2; [0C FF 9E, 05, 05]
-1F0A5; [0C FA D5, 05, 05]
+1F0E3; [0C FF A5, 05, 05]
-1F0A6; [0C FA DC, 05, 05]
+1F0E4; [0C FF AC, 05, 05]
-1F0A7; [0C FA E3, 05, 05]
+1F0E5; [0C FF B3, 05, 05]
-1F0A8; [0C FA EA, 05, 05]
+1F0E6; [0C FF BA, 05, 05]
-1F0A9; [0C FA F1, 05, 05]
+1F0E7; [0C FF C1, 05, 05]
-1F0AA; [0C FA F8, 05, 05]
+1F0E8; [0C FF C8, 05, 05]
-1F0AB; [0C FA FF, 05, 05]
+1F0E9; [0C FF CF, 05, 05]
-1F0AC; [0C FB 08, 05, 05]
+1F0EA; [0C FF D6, 05, 05]
-1F0AD; [0C FB 0F, 05, 05]
+1F0EB; [0C FF DD, 05, 05]
-1F0AE; [0C FB 16, 05, 05]
+1F0EC; [0C FF E4, 05, 05]
-1F0B1; [0C FB 1D, 05, 05]
+1F0ED; [0C FF EB, 05, 05]
-1F0B2; [0C FB 24, 05, 05]
+1F0EE; [0C FF F2, 05, 05]
-1F0B3; [0C FB 2B, 05, 05]
+1F0EF; [0C FF F9, 05, 05]
-1F0B4; [0C FB 32, 05, 05]
+1F0F0; [0D 02 02, 05, 05]
-1F0B5; [0C FB 39, 05, 05]
+1F0F1; [0D 02 09, 05, 05]
-1F0B6; [0C FB 40, 05, 05]
+1F0F2; [0D 02 10, 05, 05]
-1F0B7; [0C FB 47, 05, 05]
+1F0F3; [0D 02 17, 05, 05]
-1F0B8; [0C FB 4E, 05, 05]
+1F0F4; [0D 02 1E, 05, 05]
-1F0B9; [0C FB 55, 05, 05]
+1F0F5; [0D 02 25, 05, 05]
-1F0BA; [0C FB 5C, 05, 05]
+1FA60; [0D 02 2C, 05, 05]
-1F0BB; [0C FB 63, 05, 05]
+1FA61; [0D 02 33, 05, 05]
-1F0BC; [0C FB 6A, 05, 05]
+1FA62; [0D 02 3A, 05, 05]
-1F0BD; [0C FB 71, 05, 05]
+1FA63; [0D 02 41, 05, 05]
-1F0BE; [0C FB 78, 05, 05]
+1FA64; [0D 02 48, 05, 05]
-1F0BF; [0C FB 7F, 05, 05]
+1FA65; [0D 02 4F, 05, 05]
-1F0C1; [0C FB 86, 05, 05]
+1FA66; [0D 02 56, 05, 05]
-1F0C2; [0C FB 8D, 05, 05]
+1FA67; [0D 02 5D, 05, 05]
-1F0C3; [0C FB 94, 05, 05]
+1FA68; [0D 02 64, 05, 05]
-1F0C4; [0C FB 9B, 05, 05]
+1FA69; [0D 02 6B, 05, 05]
-1F0C5; [0C FB A2, 05, 05]
+1FA6A; [0D 02 72, 05, 05]
-1F0C6; [0C FB A9, 05, 05]
+1FA6B; [0D 02 79, 05, 05]
-1F0C7; [0C FB B0, 05, 05]
+1FA6C; [0D 02 80, 05, 05]
-1F0C8; [0C FB B7, 05, 05]
+1FA6D; [0D 02 87, 05, 05]
-1F0C9; [0C FB BE, 05, 05]
+1F260; [0D 02 8E, 05, 05]
-1F0CA; [0C FB C5, 05, 05]
+1F261; [0D 02 95, 05, 05]
-1F0CB; [0C FB CC, 05, 05]
+1F262; [0D 02 9C, 05, 05]
-1F0CC; [0C FB D3, 05, 05]
+1F263; [0D 02 A3, 05, 05]
-1F0CD; [0C FB DA, 05, 05]
+1F264; [0D 02 AA, 05, 05]
-1F0CE; [0C FB E1, 05, 05]
+1F265; [0D 02 B1, 05, 05]
-1F0CF; [0C FB E8, 05, 05]
+1F300; [0D 02 B8, 05, 05]
-1F0D1; [0C FB EF, 05, 05]
+1F301; [0D 02 BF, 05, 05]
-1F0D2; [0C FB F6, 05, 05]
+1F302; [0D 02 C6, 05, 05]
-1F0D3; [0C FB FD, 05, 05]
+1F303; [0D 02 CD, 05, 05]
-1F0D4; [0C FC 06, 05, 05]
+1F304; [0D 02 D4, 05, 05]
-1F0D5; [0C FC 0D, 05, 05]
+1F305; [0D 02 DB, 05, 05]
-1F0D6; [0C FC 14, 05, 05]
+1F306; [0D 02 E2, 05, 05]
-1F0D7; [0C FC 1B, 05, 05]
+1F307; [0D 02 E9, 05, 05]
-1F0D8; [0C FC 22, 05, 05]
+1F308; [0D 02 F0, 05, 05]
-1F0D9; [0C FC 29, 05, 05]
+1F309; [0D 02 F7, 05, 05]
-1F0DA; [0C FC 30, 05, 05]
+1F30A; [0D 02 FE, 05, 05]
-1F0DB; [0C FC 37, 05, 05]
+1F30B; [0D 03 07, 05, 05]
-1F0DC; [0C FC 3E, 05, 05]
+1F30C; [0D 03 0E, 05, 05]
-1F0DD; [0C FC 45, 05, 05]
+1F30D; [0D 03 15, 05, 05]
-1F0DE; [0C FC 4C, 05, 05]
+1F30E; [0D 03 1C, 05, 05]
-1F0DF; [0C FC 53, 05, 05]
+1F30F; [0D 03 23, 05, 05]
-1F0E0; [0C FC 5A, 05, 05]
+1F310; [0D 03 2A, 05, 05]
-1F0E1; [0C FC 61, 05, 05]
+1F311; [0D 03 31, 05, 05]
-1F0E2; [0C FC 68, 05, 05]
+1F312; [0D 03 38, 05, 05]
-1F0E3; [0C FC 6F, 05, 05]
+1F313; [0D 03 3F, 05, 05]
-1F0E4; [0C FC 76, 05, 05]
+1F314; [0D 03 46, 05, 05]
-1F0E5; [0C FC 7D, 05, 05]
+1F315; [0D 03 4D, 05, 05]
-1F0E6; [0C FC 84, 05, 05]
+1F316; [0D 03 54, 05, 05]
-1F0E7; [0C FC 8B, 05, 05]
+1F317; [0D 03 5B, 05, 05]
-1F0E8; [0C FC 92, 05, 05]
+1F318; [0D 03 62, 05, 05]
-1F0E9; [0C FC 99, 05, 05]
+1F319; [0D 03 69, 05, 05]
-1F0EA; [0C FC A0, 05, 05]
+1F31A; [0D 03 70, 05, 05]
-1F0EB; [0C FC A7, 05, 05]
+1F31B; [0D 03 77, 05, 05]
-1F0EC; [0C FC AE, 05, 05]
+1F31C; [0D 03 7E, 05, 05]
-1F0ED; [0C FC B5, 05, 05]
+1F31D; [0D 03 85, 05, 05]
-1F0EE; [0C FC BC, 05, 05]
+1F31E; [0D 03 8C, 05, 05]
-1F0EF; [0C FC C3, 05, 05]
+1F31F; [0D 03 93, 05, 05]
-1F0F0; [0C FC CA, 05, 05]
+1F320; [0D 03 9A, 05, 05]
-1F0F1; [0C FC D1, 05, 05]
+1F321; [0D 03 A1, 05, 05]
-1F0F2; [0C FC D8, 05, 05]
+1F322; [0D 03 A8, 05, 05]
-1F0F3; [0C FC DF, 05, 05]
+1F323; [0D 03 AF, 05, 05]
-1F0F4; [0C FC E6, 05, 05]
+1F324; [0D 03 B6, 05, 05]
-1F0F5; [0C FC ED, 05, 05]
+1F325; [0D 03 BD, 05, 05]
-1F260; [0C FC F4, 05, 05]
+1F326; [0D 03 C4, 05, 05]
-1F261; [0C FC FB, 05, 05]
+1F327; [0D 03 CB, 05, 05]
-1F262; [0C FD 04, 05, 05]
+1F328; [0D 03 D2, 05, 05]
-1F263; [0C FD 0B, 05, 05]
+1F329; [0D 03 D9, 05, 05]
-1F264; [0C FD 12, 05, 05]
+1F32A; [0D 03 E0, 05, 05]
-1F265; [0C FD 19, 05, 05]
+1F32B; [0D 03 E7, 05, 05]
-1F300; [0C FD 20, 05, 05]
+1F32C; [0D 03 EE, 05, 05]
-1F301; [0C FD 27, 05, 05]
+1F32D; [0D 03 F5, 05, 05]
-1F302; [0C FD 2E, 05, 05]
+1F32E; [0D 03 FC, 05, 05]
-1F303; [0C FD 35, 05, 05]
+1F32F; [0D 04 05, 05, 05]
-1F304; [0C FD 3C, 05, 05]
+1F330; [0D 04 0C, 05, 05]
-1F305; [0C FD 43, 05, 05]
+1F331; [0D 04 13, 05, 05]
-1F306; [0C FD 4A, 05, 05]
+1F332; [0D 04 1A, 05, 05]
-1F307; [0C FD 51, 05, 05]
+1F333; [0D 04 21, 05, 05]
-1F308; [0C FD 58, 05, 05]
+1F334; [0D 04 28, 05, 05]
-1F309; [0C FD 5F, 05, 05]
+1F335; [0D 04 2F, 05, 05]
-1F30A; [0C FD 66, 05, 05]
+1F336; [0D 04 36, 05, 05]
-1F30B; [0C FD 6D, 05, 05]
+1F337; [0D 04 3D, 05, 05]
-1F30C; [0C FD 74, 05, 05]
+1F338; [0D 04 44, 05, 05]
-1F30D; [0C FD 7B, 05, 05]
+1F339; [0D 04 4B, 05, 05]
-1F30E; [0C FD 82, 05, 05]
+1F33A; [0D 04 52, 05, 05]
-1F30F; [0C FD 89, 05, 05]
+1F33B; [0D 04 59, 05, 05]
-1F310; [0C FD 90, 05, 05]
+1F33C; [0D 04 60, 05, 05]
-1F311; [0C FD 97, 05, 05]
+1F33D; [0D 04 67, 05, 05]
-1F312; [0C FD 9E, 05, 05]
+1F33E; [0D 04 6E, 05, 05]
-1F313; [0C FD A5, 05, 05]
+1F33F; [0D 04 75, 05, 05]
-1F314; [0C FD AC, 05, 05]
+1F340; [0D 04 7C, 05, 05]
-1F315; [0C FD B3, 05, 05]
+1F341; [0D 04 83, 05, 05]
-1F316; [0C FD BA, 05, 05]
+1F342; [0D 04 8A, 05, 05]
-1F317; [0C FD C1, 05, 05]
+1F343; [0D 04 91, 05, 05]
-1F318; [0C FD C8, 05, 05]
+1F344; [0D 04 98, 05, 05]
-1F319; [0C FD CF, 05, 05]
+1F345; [0D 04 9F, 05, 05]
-1F31A; [0C FD D6, 05, 05]
+1F346; [0D 04 A6, 05, 05]
-1F31B; [0C FD DD, 05, 05]
+1F347; [0D 04 AD, 05, 05]
-1F31C; [0C FD E4, 05, 05]
+1F348; [0D 04 B4, 05, 05]
-1F31D; [0C FD EB, 05, 05]
+1F349; [0D 04 BB, 05, 05]
-1F31E; [0C FD F2, 05, 05]
+1F34A; [0D 04 C2, 05, 05]
-1F31F; [0C FD F9, 05, 05]
+1F34B; [0D 04 C9, 05, 05]
-1F320; [0C FE 02, 05, 05]
+1F34C; [0D 04 D0, 05, 05]
-1F321; [0C FE 09, 05, 05]
+1F34D; [0D 04 D7, 05, 05]
-1F322; [0C FE 10, 05, 05]
+1F34E; [0D 04 DE, 05, 05]
-1F323; [0C FE 17, 05, 05]
+1F34F; [0D 04 E5, 05, 05]
-1F324; [0C FE 1E, 05, 05]
+1F350; [0D 04 EC, 05, 05]
-1F325; [0C FE 25, 05, 05]
+1F351; [0D 04 F3, 05, 05]
-1F326; [0C FE 2C, 05, 05]
+1F352; [0D 04 FA, 05, 05]
-1F327; [0C FE 33, 05, 05]
+1F353; [0D 05 03, 05, 05]
-1F328; [0C FE 3A, 05, 05]
+1F354; [0D 05 0A, 05, 05]
-1F329; [0C FE 41, 05, 05]
+1F355; [0D 05 11, 05, 05]
-1F32A; [0C FE 48, 05, 05]
+1F356; [0D 05 18, 05, 05]
-1F32B; [0C FE 4F, 05, 05]
+1F357; [0D 05 1F, 05, 05]
-1F32C; [0C FE 56, 05, 05]
+1F358; [0D 05 26, 05, 05]
-1F32D; [0C FE 5D, 05, 05]
+1F359; [0D 05 2D, 05, 05]
-1F32E; [0C FE 64, 05, 05]
+1F35A; [0D 05 34, 05, 05]
-1F32F; [0C FE 6B, 05, 05]
+1F35B; [0D 05 3B, 05, 05]
-1F330; [0C FE 72, 05, 05]
+1F35C; [0D 05 42, 05, 05]
-1F331; [0C FE 79, 05, 05]
+1F35D; [0D 05 49, 05, 05]
-1F332; [0C FE 80, 05, 05]
+1F35E; [0D 05 50, 05, 05]
-1F333; [0C FE 87, 05, 05]
+1F35F; [0D 05 57, 05, 05]
-1F334; [0C FE 8E, 05, 05]
+1F360; [0D 05 5E, 05, 05]
-1F335; [0C FE 95, 05, 05]
+1F361; [0D 05 65, 05, 05]
-1F336; [0C FE 9C, 05, 05]
+1F362; [0D 05 6C, 05, 05]
-1F337; [0C FE A3, 05, 05]
+1F363; [0D 05 73, 05, 05]
-1F338; [0C FE AA, 05, 05]
+1F364; [0D 05 7A, 05, 05]
-1F339; [0C FE B1, 05, 05]
+1F365; [0D 05 81, 05, 05]
-1F33A; [0C FE B8, 05, 05]
+1F366; [0D 05 88, 05, 05]
-1F33B; [0C FE BF, 05, 05]
+1F367; [0D 05 8F, 05, 05]
-1F33C; [0C FE C6, 05, 05]
+1F368; [0D 05 96, 05, 05]
-1F33D; [0C FE CD, 05, 05]
+1F369; [0D 05 9D, 05, 05]
-1F33E; [0C FE D4, 05, 05]
+1F36A; [0D 05 A4, 05, 05]
-1F33F; [0C FE DB, 05, 05]
+1F36B; [0D 05 AB, 05, 05]
-1F340; [0C FE E2, 05, 05]
+1F36C; [0D 05 B2, 05, 05]
-1F341; [0C FE E9, 05, 05]
+1F36D; [0D 05 B9, 05, 05]
-1F342; [0C FE F0, 05, 05]
+1F36E; [0D 05 C0, 05, 05]
-1F343; [0C FE F7, 05, 05]
+1F36F; [0D 05 C7, 05, 05]
-1F344; [0C FE FE, 05, 05]
+1F370; [0D 05 CE, 05, 05]
-1F345; [0C FF 07, 05, 05]
+1F371; [0D 05 D5, 05, 05]
-1F346; [0C FF 0E, 05, 05]
+1F372; [0D 05 DC, 05, 05]
-1F347; [0C FF 15, 05, 05]
+1F373; [0D 05 E3, 05, 05]
-1F348; [0C FF 1C, 05, 05]
+1F374; [0D 05 EA, 05, 05]
-1F349; [0C FF 23, 05, 05]
+1F375; [0D 05 F1, 05, 05]
-1F34A; [0C FF 2A, 05, 05]
+1F376; [0D 05 F8, 05, 05]
-1F34B; [0C FF 31, 05, 05]
+1F377; [0D 05 FF, 05, 05]
-1F34C; [0C FF 38, 05, 05]
+1F378; [0D 06 08, 05, 05]
-1F34D; [0C FF 3F, 05, 05]
+1F379; [0D 06 0F, 05, 05]
-1F34E; [0C FF 46, 05, 05]
+1F37A; [0D 06 16, 05, 05]
-1F34F; [0C FF 4D, 05, 05]
+1F37B; [0D 06 1D, 05, 05]
-1F350; [0C FF 54, 05, 05]
+1F37C; [0D 06 24, 05, 05]
-1F351; [0C FF 5B, 05, 05]
+1F37D; [0D 06 2B, 05, 05]
-1F352; [0C FF 62, 05, 05]
+1F37E; [0D 06 32, 05, 05]
-1F353; [0C FF 69, 05, 05]
+1F37F; [0D 06 39, 05, 05]
-1F354; [0C FF 70, 05, 05]
+1F380; [0D 06 40, 05, 05]
-1F355; [0C FF 77, 05, 05]
+1F381; [0D 06 47, 05, 05]
-1F356; [0C FF 7E, 05, 05]
+1F382; [0D 06 4E, 05, 05]
-1F357; [0C FF 85, 05, 05]
+1F383; [0D 06 55, 05, 05]
-1F358; [0C FF 8C, 05, 05]
+1F384; [0D 06 5C, 05, 05]
-1F359; [0C FF 93, 05, 05]
+1F385; [0D 06 63, 05, 05]
-1F35A; [0C FF 9A, 05, 05]
+1F386; [0D 06 6A, 05, 05]
-1F35B; [0C FF A1, 05, 05]
+1F387; [0D 06 71, 05, 05]
-1F35C; [0C FF A8, 05, 05]
+1F388; [0D 06 78, 05, 05]
-1F35D; [0C FF AF, 05, 05]
+1F389; [0D 06 7F, 05, 05]
-1F35E; [0C FF B6, 05, 05]
+1F38A; [0D 06 86, 05, 05]
-1F35F; [0C FF BD, 05, 05]
+1F38B; [0D 06 8D, 05, 05]
-1F360; [0C FF C4, 05, 05]
+1F38C; [0D 06 94, 05, 05]
-1F361; [0C FF CB, 05, 05]
+1F38D; [0D 06 9B, 05, 05]
-1F362; [0C FF D2, 05, 05]
+1F38E; [0D 06 A2, 05, 05]
-1F363; [0C FF D9, 05, 05]
+1F38F; [0D 06 A9, 05, 05]
-1F364; [0C FF E0, 05, 05]
+1F390; [0D 06 B0, 05, 05]
-1F365; [0C FF E7, 05, 05]
+1F391; [0D 06 B7, 05, 05]
-1F366; [0C FF EE, 05, 05]
+1F392; [0D 06 BE, 05, 05]
-1F367; [0C FF F5, 05, 05]
+1F393; [0D 06 C5, 05, 05]
-1F368; [0C FF FC, 05, 05]
+1F394; [0D 06 CC, 05, 05]
-1F369; [0D 02 05, 05, 05]
+1F395; [0D 06 D3, 05, 05]
-1F36A; [0D 02 0C, 05, 05]
+1F396; [0D 06 DA, 05, 05]
-1F36B; [0D 02 13, 05, 05]
+1F397; [0D 06 E1, 05, 05]
-1F36C; [0D 02 1A, 05, 05]
+1F398; [0D 06 E8, 05, 05]
-1F36D; [0D 02 21, 05, 05]
+1F399; [0D 06 EF, 05, 05]
-1F36E; [0D 02 28, 05, 05]
+1F39A; [0D 06 F6, 05, 05]
-1F36F; [0D 02 2F, 05, 05]
+1F39B; [0D 06 FD, 05, 05]
-1F370; [0D 02 36, 05, 05]
+1F39C; [0D 07 06, 05, 05]
-1F371; [0D 02 3D, 05, 05]
+1F39D; [0D 07 0D, 05, 05]
-1F372; [0D 02 44, 05, 05]
+1F39E; [0D 07 14, 05, 05]
-1F373; [0D 02 4B, 05, 05]
+1F39F; [0D 07 1B, 05, 05]
-1F374; [0D 02 52, 05, 05]
+1F3A0; [0D 07 22, 05, 05]
-1F375; [0D 02 59, 05, 05]
+1F3A1; [0D 07 29, 05, 05]
-1F376; [0D 02 60, 05, 05]
+1F3A2; [0D 07 30, 05, 05]
-1F377; [0D 02 67, 05, 05]
+1F3A3; [0D 07 37, 05, 05]
-1F378; [0D 02 6E, 05, 05]
+1F3A4; [0D 07 3E, 05, 05]
-1F379; [0D 02 75, 05, 05]
+1F3A5; [0D 07 45, 05, 05]
-1F37A; [0D 02 7C, 05, 05]
+1F3A6; [0D 07 4C, 05, 05]
-1F37B; [0D 02 83, 05, 05]
+1F3A7; [0D 07 53, 05, 05]
-1F37C; [0D 02 8A, 05, 05]
+1F3A8; [0D 07 5A, 05, 05]
-1F37D; [0D 02 91, 05, 05]
+1F3A9; [0D 07 61, 05, 05]
-1F37E; [0D 02 98, 05, 05]
+1F3AA; [0D 07 68, 05, 05]
-1F37F; [0D 02 9F, 05, 05]
+1F3AB; [0D 07 6F, 05, 05]
-1F380; [0D 02 A6, 05, 05]
+1F3AC; [0D 07 76, 05, 05]
-1F381; [0D 02 AD, 05, 05]
+1F3AD; [0D 07 7D, 05, 05]
-1F382; [0D 02 B4, 05, 05]
+1F3AE; [0D 07 84, 05, 05]
-1F383; [0D 02 BB, 05, 05]
+1F3AF; [0D 07 8B, 05, 05]
-1F384; [0D 02 C2, 05, 05]
+1F3B0; [0D 07 92, 05, 05]
-1F385; [0D 02 C9, 05, 05]
+1F3B1; [0D 07 99, 05, 05]
-1F386; [0D 02 D0, 05, 05]
+1F3B2; [0D 07 A0, 05, 05]
-1F387; [0D 02 D7, 05, 05]
+1F3B3; [0D 07 A7, 05, 05]
-1F388; [0D 02 DE, 05, 05]
+1F3B4; [0D 07 AE, 05, 05]
-1F389; [0D 02 E5, 05, 05]
+1F3B5; [0D 07 B5, 05, 05]
-1F38A; [0D 02 EC, 05, 05]
+1F3B6; [0D 07 BC, 05, 05]
-1F38B; [0D 02 F3, 05, 05]
+1F3B7; [0D 07 C3, 05, 05]
-1F38C; [0D 02 FA, 05, 05]
+1F3B8; [0D 07 CA, 05, 05]
-1F38D; [0D 03 03, 05, 05]
+1F3B9; [0D 07 D1, 05, 05]
-1F38E; [0D 03 0A, 05, 05]
+1F3BA; [0D 07 D8, 05, 05]
-1F38F; [0D 03 11, 05, 05]
+1F3BB; [0D 07 DF, 05, 05]
-1F390; [0D 03 18, 05, 05]
+1F3BC; [0D 07 E6, 05, 05]
-1F391; [0D 03 1F, 05, 05]
+1F3BD; [0D 07 ED, 05, 05]
-1F392; [0D 03 26, 05, 05]
+1F3BE; [0D 07 F4, 05, 05]
-1F393; [0D 03 2D, 05, 05]
+1F3BF; [0D 07 FB, 05, 05]
-1F394; [0D 03 34, 05, 05]
+1F3C0; [0D 08 04, 05, 05]
-1F395; [0D 03 3B, 05, 05]
+1F3C1; [0D 08 0B, 05, 05]
-1F396; [0D 03 42, 05, 05]
+1F3C2; [0D 08 12, 05, 05]
-1F397; [0D 03 49, 05, 05]
+1F3C3; [0D 08 19, 05, 05]
-1F398; [0D 03 50, 05, 05]
+1F3C4; [0D 08 20, 05, 05]
-1F399; [0D 03 57, 05, 05]
+1F3C5; [0D 08 27, 05, 05]
-1F39A; [0D 03 5E, 05, 05]
+1F3C6; [0D 08 2E, 05, 05]
-1F39B; [0D 03 65, 05, 05]
+1F3C7; [0D 08 35, 05, 05]
-1F39C; [0D 03 6C, 05, 05]
+1F3C8; [0D 08 3C, 05, 05]
-1F39D; [0D 03 73, 05, 05]
+1F3C9; [0D 08 43, 05, 05]
-1F39E; [0D 03 7A, 05, 05]
+1F3CA; [0D 08 4A, 05, 05]
-1F39F; [0D 03 81, 05, 05]
+1F3CB; [0D 08 51, 05, 05]
-1F3A0; [0D 03 88, 05, 05]
+1F3CC; [0D 08 58, 05, 05]
-1F3A1; [0D 03 8F, 05, 05]
+1F3CD; [0D 08 5F, 05, 05]
-1F3A2; [0D 03 96, 05, 05]
+1F3CE; [0D 08 66, 05, 05]
-1F3A3; [0D 03 9D, 05, 05]
+1F3CF; [0D 08 6D, 05, 05]
-1F3A4; [0D 03 A4, 05, 05]
+1F3D0; [0D 08 74, 05, 05]
-1F3A5; [0D 03 AB, 05, 05]
+1F3D1; [0D 08 7B, 05, 05]
-1F3A6; [0D 03 B2, 05, 05]
+1F3D2; [0D 08 82, 05, 05]
-1F3A7; [0D 03 B9, 05, 05]
+1F3D3; [0D 08 89, 05, 05]
-1F3A8; [0D 03 C0, 05, 05]
+1F3D4; [0D 08 90, 05, 05]
-1F3A9; [0D 03 C7, 05, 05]
+1F3D5; [0D 08 97, 05, 05]
-1F3AA; [0D 03 CE, 05, 05]
+1F3D6; [0D 08 9E, 05, 05]
-1F3AB; [0D 03 D5, 05, 05]
+1F3D7; [0D 08 A5, 05, 05]
-1F3AC; [0D 03 DC, 05, 05]
+1F3D8; [0D 08 AC, 05, 05]
-1F3AD; [0D 03 E3, 05, 05]
+1F3D9; [0D 08 B3, 05, 05]
-1F3AE; [0D 03 EA, 05, 05]
+1F3DA; [0D 08 BA, 05, 05]
-1F3AF; [0D 03 F1, 05, 05]
+1F3DB; [0D 08 C1, 05, 05]
-1F3B0; [0D 03 F8, 05, 05]
+1F3DC; [0D 08 C8, 05, 05]
-1F3B1; [0D 03 FF, 05, 05]
+1F3DD; [0D 08 CF, 05, 05]
-1F3B2; [0D 04 08, 05, 05]
+1F3DE; [0D 08 D6, 05, 05]
-1F3B3; [0D 04 0F, 05, 05]
+1F3DF; [0D 08 DD, 05, 05]
-1F3B4; [0D 04 16, 05, 05]
+1F3E0; [0D 08 E4, 05, 05]
-1F3B5; [0D 04 1D, 05, 05]
+1F3E1; [0D 08 EB, 05, 05]
-1F3B6; [0D 04 24, 05, 05]
+1F3E2; [0D 08 F2, 05, 05]
-1F3B7; [0D 04 2B, 05, 05]
+1F3E3; [0D 08 F9, 05, 05]
-1F3B8; [0D 04 32, 05, 05]
+1F3E4; [0D 09 02, 05, 05]
-1F3B9; [0D 04 39, 05, 05]
+1F3E5; [0D 09 09, 05, 05]
-1F3BA; [0D 04 40, 05, 05]
+1F3E6; [0D 09 10, 05, 05]
-1F3BB; [0D 04 47, 05, 05]
+1F3E7; [0D 09 17, 05, 05]
-1F3BC; [0D 04 4E, 05, 05]
+1F3E8; [0D 09 1E, 05, 05]
-1F3BD; [0D 04 55, 05, 05]
+1F3E9; [0D 09 25, 05, 05]
-1F3BE; [0D 04 5C, 05, 05]
+1F3EA; [0D 09 2C, 05, 05]
-1F3BF; [0D 04 63, 05, 05]
+1F3EB; [0D 09 33, 05, 05]
-1F3C0; [0D 04 6A, 05, 05]
+1F3EC; [0D 09 3A, 05, 05]
-1F3C1; [0D 04 71, 05, 05]
+1F3ED; [0D 09 41, 05, 05]
-1F3C2; [0D 04 78, 05, 05]
+1F3EE; [0D 09 48, 05, 05]
-1F3C3; [0D 04 7F, 05, 05]
+1F3EF; [0D 09 4F, 05, 05]
-1F3C4; [0D 04 86, 05, 05]
+1F3F0; [0D 09 56, 05, 05]
-1F3C5; [0D 04 8D, 05, 05]
+1F3F1; [0D 09 5D, 05, 05]
-1F3C6; [0D 04 94, 05, 05]
+1F3F2; [0D 09 64, 05, 05]
-1F3C7; [0D 04 9B, 05, 05]
+1F3F3; [0D 09 6B, 05, 05]
-1F3C8; [0D 04 A2, 05, 05]
+1F3F4; [0D 09 72, 05, 05]
-1F3C9; [0D 04 A9, 05, 05]
+1F3F5; [0D 09 79, 05, 05]
-1F3CA; [0D 04 B0, 05, 05]
+1F3F6; [0D 09 80, 05, 05]
-1F3CB; [0D 04 B7, 05, 05]
+1F3F7; [0D 09 87, 05, 05]
-1F3CC; [0D 04 BE, 05, 05]
+1F3F8; [0D 09 8E, 05, 05]
-1F3CD; [0D 04 C5, 05, 05]
+1F3F9; [0D 09 95, 05, 05]
-1F3CE; [0D 04 CC, 05, 05]
+1F3FA; [0D 09 9C, 05, 05]
-1F3CF; [0D 04 D3, 05, 05]
+1F3FB; [0D 09 A3, 05, 05]
-1F3D0; [0D 04 DA, 05, 05]
+1F3FC; [0D 09 AA, 05, 05]
-1F3D1; [0D 04 E1, 05, 05]
+1F3FD; [0D 09 B1, 05, 05]
-1F3D2; [0D 04 E8, 05, 05]
+1F3FE; [0D 09 B8, 05, 05]
-1F3D3; [0D 04 EF, 05, 05]
+1F3FF; [0D 09 BF, 05, 05]
-1F3D4; [0D 04 F6, 05, 05]
+1F400; [0D 09 C6, 05, 05]
-1F3D5; [0D 04 FD, 05, 05]
+1F401; [0D 09 CD, 05, 05]
-1F3D6; [0D 05 06, 05, 05]
+1F402; [0D 09 D4, 05, 05]
-1F3D7; [0D 05 0D, 05, 05]
+1F403; [0D 09 DB, 05, 05]
-1F3D8; [0D 05 14, 05, 05]
+1F404; [0D 09 E2, 05, 05]
-1F3D9; [0D 05 1B, 05, 05]
+1F405; [0D 09 E9, 05, 05]
-1F3DA; [0D 05 22, 05, 05]
+1F406; [0D 09 F0, 05, 05]
-1F3DB; [0D 05 29, 05, 05]
+1F407; [0D 09 F7, 05, 05]
-1F3DC; [0D 05 30, 05, 05]
+1F408; [0D 09 FE, 05, 05]
-1F3DD; [0D 05 37, 05, 05]
+1F409; [0D 0A 07, 05, 05]
-1F3DE; [0D 05 3E, 05, 05]
+1F40A; [0D 0A 0E, 05, 05]
-1F3DF; [0D 05 45, 05, 05]
+1F40B; [0D 0A 15, 05, 05]
-1F3E0; [0D 05 4C, 05, 05]
+1F40C; [0D 0A 1C, 05, 05]
-1F3E1; [0D 05 53, 05, 05]
+1F40D; [0D 0A 23, 05, 05]
-1F3E2; [0D 05 5A, 05, 05]
+1F40E; [0D 0A 2A, 05, 05]
-1F3E3; [0D 05 61, 05, 05]
+1F40F; [0D 0A 31, 05, 05]
-1F3E4; [0D 05 68, 05, 05]
+1F410; [0D 0A 38, 05, 05]
-1F3E5; [0D 05 6F, 05, 05]
+1F411; [0D 0A 3F, 05, 05]
-1F3E6; [0D 05 76, 05, 05]
+1F412; [0D 0A 46, 05, 05]
-1F3E7; [0D 05 7D, 05, 05]
+1F413; [0D 0A 4D, 05, 05]
-1F3E8; [0D 05 84, 05, 05]
+1F414; [0D 0A 54, 05, 05]
-1F3E9; [0D 05 8B, 05, 05]
+1F415; [0D 0A 5B, 05, 05]
-1F3EA; [0D 05 92, 05, 05]
+1F416; [0D 0A 62, 05, 05]
-1F3EB; [0D 05 99, 05, 05]
+1F417; [0D 0A 69, 05, 05]
-1F3EC; [0D 05 A0, 05, 05]
+1F418; [0D 0A 70, 05, 05]
-1F3ED; [0D 05 A7, 05, 05]
+1F419; [0D 0A 77, 05, 05]
-1F3EE; [0D 05 AE, 05, 05]
+1F41A; [0D 0A 7E, 05, 05]
-1F3EF; [0D 05 B5, 05, 05]
+1F41B; [0D 0A 85, 05, 05]
-1F3F0; [0D 05 BC, 05, 05]
+1F41C; [0D 0A 8C, 05, 05]
-1F3F1; [0D 05 C3, 05, 05]
+1F41D; [0D 0A 93, 05, 05]
-1F3F2; [0D 05 CA, 05, 05]
+1F41E; [0D 0A 9A, 05, 05]
-1F3F3; [0D 05 D1, 05, 05]
+1F41F; [0D 0A A1, 05, 05]
-1F3F4; [0D 05 D8, 05, 05]
+1F420; [0D 0A A8, 05, 05]
-1F3F5; [0D 05 DF, 05, 05]
+1F421; [0D 0A AF, 05, 05]
-1F3F6; [0D 05 E6, 05, 05]
+1F422; [0D 0A B6, 05, 05]
-1F3F7; [0D 05 ED, 05, 05]
+1F423; [0D 0A BD, 05, 05]
-1F3F8; [0D 05 F4, 05, 05]
+1F424; [0D 0A C4, 05, 05]
-1F3F9; [0D 05 FB, 05, 05]
+1F425; [0D 0A CB, 05, 05]
-1F3FA; [0D 06 04, 05, 05]
+1F426; [0D 0A D2, 05, 05]
-1F3FB; [0D 06 0B, 05, 05]
+1F427; [0D 0A D9, 05, 05]
-1F3FC; [0D 06 12, 05, 05]
+1F428; [0D 0A E0, 05, 05]
-1F3FD; [0D 06 19, 05, 05]
+1F429; [0D 0A E7, 05, 05]
-1F3FE; [0D 06 20, 05, 05]
+1F42A; [0D 0A EE, 05, 05]
-1F3FF; [0D 06 27, 05, 05]
+1F42B; [0D 0A F5, 05, 05]
-1F400; [0D 06 2E, 05, 05]
+1F42C; [0D 0A FC, 05, 05]
-1F401; [0D 06 35, 05, 05]
+1F42D; [0D 0B 05, 05, 05]
-1F402; [0D 06 3C, 05, 05]
+1F42E; [0D 0B 0C, 05, 05]
-1F403; [0D 06 43, 05, 05]
+1F42F; [0D 0B 13, 05, 05]
-1F404; [0D 06 4A, 05, 05]
+1F430; [0D 0B 1A, 05, 05]
-1F405; [0D 06 51, 05, 05]
+1F431; [0D 0B 21, 05, 05]
-1F406; [0D 06 58, 05, 05]
+1F432; [0D 0B 28, 05, 05]
-1F407; [0D 06 5F, 05, 05]
+1F433; [0D 0B 2F, 05, 05]
-1F408; [0D 06 66, 05, 05]
+1F434; [0D 0B 36, 05, 05]
-1F409; [0D 06 6D, 05, 05]
+1F435; [0D 0B 3D, 05, 05]
-1F40A; [0D 06 74, 05, 05]
+1F436; [0D 0B 44, 05, 05]
-1F40B; [0D 06 7B, 05, 05]
+1F437; [0D 0B 4B, 05, 05]
-1F40C; [0D 06 82, 05, 05]
+1F438; [0D 0B 52, 05, 05]
-1F40D; [0D 06 89, 05, 05]
+1F439; [0D 0B 59, 05, 05]
-1F40E; [0D 06 90, 05, 05]
+1F43A; [0D 0B 60, 05, 05]
-1F40F; [0D 06 97, 05, 05]
+1F43B; [0D 0B 67, 05, 05]
-1F410; [0D 06 9E, 05, 05]
+1F43C; [0D 0B 6E, 05, 05]
-1F411; [0D 06 A5, 05, 05]
+1F43D; [0D 0B 75, 05, 05]
-1F412; [0D 06 AC, 05, 05]
+1F43E; [0D 0B 7C, 05, 05]
-1F413; [0D 06 B3, 05, 05]
+1F43F; [0D 0B 83, 05, 05]
-1F414; [0D 06 BA, 05, 05]
+1F440; [0D 0B 8A, 05, 05]
-1F415; [0D 06 C1, 05, 05]
+1F441; [0D 0B 91, 05, 05]
-1F416; [0D 06 C8, 05, 05]
+1F442; [0D 0B 98, 05, 05]
-1F417; [0D 06 CF, 05, 05]
+1F443; [0D 0B 9F, 05, 05]
-1F418; [0D 06 D6, 05, 05]
+1F444; [0D 0B A6, 05, 05]
-1F419; [0D 06 DD, 05, 05]
+1F445; [0D 0B AD, 05, 05]
-1F41A; [0D 06 E4, 05, 05]
+1F446; [0D 0B B4, 05, 05]
-1F41B; [0D 06 EB, 05, 05]
+1F447; [0D 0B BB, 05, 05]
-1F41C; [0D 06 F2, 05, 05]
+1F448; [0D 0B C2, 05, 05]
-1F41D; [0D 06 F9, 05, 05]
+1F449; [0D 0B C9, 05, 05]
-1F41E; [0D 07 02, 05, 05]
+1F44A; [0D 0B D0, 05, 05]
-1F41F; [0D 07 09, 05, 05]
+1F44B; [0D 0B D7, 05, 05]
-1F420; [0D 07 10, 05, 05]
+1F44C; [0D 0B DE, 05, 05]
-1F421; [0D 07 17, 05, 05]
+1F44D; [0D 0B E5, 05, 05]
-1F422; [0D 07 1E, 05, 05]
+1F44E; [0D 0B EC, 05, 05]
-1F423; [0D 07 25, 05, 05]
+1F44F; [0D 0B F3, 05, 05]
-1F424; [0D 07 2C, 05, 05]
+1F450; [0D 0B FA, 05, 05]
-1F425; [0D 07 33, 05, 05]
+1F451; [0D 0C 03, 05, 05]
-1F426; [0D 07 3A, 05, 05]
+1F452; [0D 0C 0A, 05, 05]
-1F427; [0D 07 41, 05, 05]
+1F453; [0D 0C 11, 05, 05]
-1F428; [0D 07 48, 05, 05]
+1F454; [0D 0C 18, 05, 05]
-1F429; [0D 07 4F, 05, 05]
+1F455; [0D 0C 1F, 05, 05]
-1F42A; [0D 07 56, 05, 05]
+1F456; [0D 0C 26, 05, 05]
-1F42B; [0D 07 5D, 05, 05]
+1F457; [0D 0C 2D, 05, 05]
-1F42C; [0D 07 64, 05, 05]
+1F458; [0D 0C 34, 05, 05]
-1F42D; [0D 07 6B, 05, 05]
+1F459; [0D 0C 3B, 05, 05]
-1F42E; [0D 07 72, 05, 05]
+1F45A; [0D 0C 42, 05, 05]
-1F42F; [0D 07 79, 05, 05]
+1F45B; [0D 0C 49, 05, 05]
-1F430; [0D 07 80, 05, 05]
+1F45C; [0D 0C 50, 05, 05]
-1F431; [0D 07 87, 05, 05]
+1F45D; [0D 0C 57, 05, 05]
-1F432; [0D 07 8E, 05, 05]
+1F45E; [0D 0C 5E, 05, 05]
-1F433; [0D 07 95, 05, 05]
+1F45F; [0D 0C 65, 05, 05]
-1F434; [0D 07 9C, 05, 05]
+1F460; [0D 0C 6C, 05, 05]
-1F435; [0D 07 A3, 05, 05]
+1F461; [0D 0C 73, 05, 05]
-1F436; [0D 07 AA, 05, 05]
+1F462; [0D 0C 7A, 05, 05]
-1F437; [0D 07 B1, 05, 05]
+1F463; [0D 0C 81, 05, 05]
-1F438; [0D 07 B8, 05, 05]
+1F464; [0D 0C 88, 05, 05]
-1F439; [0D 07 BF, 05, 05]
+1F465; [0D 0C 8F, 05, 05]
-1F43A; [0D 07 C6, 05, 05]
+1F466; [0D 0C 96, 05, 05]
-1F43B; [0D 07 CD, 05, 05]
+1F467; [0D 0C 9D, 05, 05]
-1F43C; [0D 07 D4, 05, 05]
+1F468; [0D 0C A4, 05, 05]
-1F43D; [0D 07 DB, 05, 05]
+1F469; [0D 0C AB, 05, 05]
-1F43E; [0D 07 E2, 05, 05]
+1F46A; [0D 0C B2, 05, 05]
-1F43F; [0D 07 E9, 05, 05]
+1F46B; [0D 0C B9, 05, 05]
-1F440; [0D 07 F0, 05, 05]
+1F46C; [0D 0C C0, 05, 05]
-1F441; [0D 07 F7, 05, 05]
+1F46D; [0D 0C C7, 05, 05]
-1F442; [0D 07 FE, 05, 05]
+1F46E; [0D 0C CE, 05, 05]
-1F443; [0D 08 07, 05, 05]
+1F46F; [0D 0C D5, 05, 05]
-1F444; [0D 08 0E, 05, 05]
+1F470; [0D 0C DC, 05, 05]
-1F445; [0D 08 15, 05, 05]
+1F471; [0D 0C E3, 05, 05]
-1F446; [0D 08 1C, 05, 05]
+1F472; [0D 0C EA, 05, 05]
-1F447; [0D 08 23, 05, 05]
+1F473; [0D 0C F1, 05, 05]
-1F448; [0D 08 2A, 05, 05]
+1F474; [0D 0C F8, 05, 05]
-1F449; [0D 08 31, 05, 05]
+1F475; [0D 0C FF, 05, 05]
-1F44A; [0D 08 38, 05, 05]
+1F476; [0D 0D 08, 05, 05]
-1F44B; [0D 08 3F, 05, 05]
+1F477; [0D 0D 0F, 05, 05]
-1F44C; [0D 08 46, 05, 05]
+1F478; [0D 0D 16, 05, 05]
-1F44D; [0D 08 4D, 05, 05]
+1F479; [0D 0D 1D, 05, 05]
-1F44E; [0D 08 54, 05, 05]
+1F47A; [0D 0D 24, 05, 05]
-1F44F; [0D 08 5B, 05, 05]
+1F47B; [0D 0D 2B, 05, 05]
-1F450; [0D 08 62, 05, 05]
+1F47C; [0D 0D 32, 05, 05]
-1F451; [0D 08 69, 05, 05]
+1F47D; [0D 0D 39, 05, 05]
-1F452; [0D 08 70, 05, 05]
+1F47E; [0D 0D 40, 05, 05]
-1F453; [0D 08 77, 05, 05]
+1F47F; [0D 0D 47, 05, 05]
-1F454; [0D 08 7E, 05, 05]
+1F480; [0D 0D 4E, 05, 05]
-1F455; [0D 08 85, 05, 05]
+1F481; [0D 0D 55, 05, 05]
-1F456; [0D 08 8C, 05, 05]
+1F482; [0D 0D 5C, 05, 05]
-1F457; [0D 08 93, 05, 05]
+1F483; [0D 0D 63, 05, 05]
-1F458; [0D 08 9A, 05, 05]
+1F484; [0D 0D 6A, 05, 05]
-1F459; [0D 08 A1, 05, 05]
+1F485; [0D 0D 71, 05, 05]
-1F45A; [0D 08 A8, 05, 05]
+1F486; [0D 0D 78, 05, 05]
-1F45B; [0D 08 AF, 05, 05]
+1F487; [0D 0D 7F, 05, 05]
-1F45C; [0D 08 B6, 05, 05]
+1F488; [0D 0D 86, 05, 05]
-1F45D; [0D 08 BD, 05, 05]
+1F489; [0D 0D 8D, 05, 05]
-1F45E; [0D 08 C4, 05, 05]
+1F48A; [0D 0D 94, 05, 05]
-1F45F; [0D 08 CB, 05, 05]
+1F48B; [0D 0D 9B, 05, 05]
-1F460; [0D 08 D2, 05, 05]
+1F48C; [0D 0D A2, 05, 05]
-1F461; [0D 08 D9, 05, 05]
+1F48D; [0D 0D A9, 05, 05]
-1F462; [0D 08 E0, 05, 05]
+1F48E; [0D 0D B0, 05, 05]
-1F463; [0D 08 E7, 05, 05]
+1F48F; [0D 0D B7, 05, 05]
-1F464; [0D 08 EE, 05, 05]
+1F490; [0D 0D BE, 05, 05]
-1F465; [0D 08 F5, 05, 05]
+1F491; [0D 0D C5, 05, 05]
-1F466; [0D 08 FC, 05, 05]
+1F492; [0D 0D CC, 05, 05]
-1F467; [0D 09 05, 05, 05]
+1F493; [0D 0D D3, 05, 05]
-1F468; [0D 09 0C, 05, 05]
+1F494; [0D 0D DA, 05, 05]
-1F469; [0D 09 13, 05, 05]
+1F495; [0D 0D E1, 05, 05]
-1F46A; [0D 09 1A, 05, 05]
+1F496; [0D 0D E8, 05, 05]
-1F46B; [0D 09 21, 05, 05]
+1F497; [0D 0D EF, 05, 05]
-1F46C; [0D 09 28, 05, 05]
+1F498; [0D 0D F6, 05, 05]
-1F46D; [0D 09 2F, 05, 05]
+1F499; [0D 0D FD, 05, 05]
-1F46E; [0D 09 36, 05, 05]
+1F49A; [0D 0E 06, 05, 05]
-1F46F; [0D 09 3D, 05, 05]
+1F49B; [0D 0E 0D, 05, 05]
-1F470; [0D 09 44, 05, 05]
+1F49C; [0D 0E 14, 05, 05]
-1F471; [0D 09 4B, 05, 05]
+1F49D; [0D 0E 1B, 05, 05]
-1F472; [0D 09 52, 05, 05]
+1F49E; [0D 0E 22, 05, 05]
-1F473; [0D 09 59, 05, 05]
+1F49F; [0D 0E 29, 05, 05]
-1F474; [0D 09 60, 05, 05]
+1F4A0; [0D 0E 30, 05, 05]
-1F475; [0D 09 67, 05, 05]
+1F4A1; [0D 0E 37, 05, 05]
-1F476; [0D 09 6E, 05, 05]
+1F4A2; [0D 0E 3E, 05, 05]
-1F477; [0D 09 75, 05, 05]
+1F4A3; [0D 0E 45, 05, 05]
-1F478; [0D 09 7C, 05, 05]
+1F4A4; [0D 0E 4C, 05, 05]
-1F479; [0D 09 83, 05, 05]
+1F4A5; [0D 0E 53, 05, 05]
-1F47A; [0D 09 8A, 05, 05]
+1F4A6; [0D 0E 5A, 05, 05]
-1F47B; [0D 09 91, 05, 05]
+1F4A7; [0D 0E 61, 05, 05]
-1F47C; [0D 09 98, 05, 05]
+1F4A8; [0D 0E 68, 05, 05]
-1F47D; [0D 09 9F, 05, 05]
+1F4A9; [0D 0E 6F, 05, 05]
-1F47E; [0D 09 A6, 05, 05]
+1F4AA; [0D 0E 76, 05, 05]
-1F47F; [0D 09 AD, 05, 05]
+1F4AB; [0D 0E 7D, 05, 05]
-1F480; [0D 09 B4, 05, 05]
+1F4AC; [0D 0E 84, 05, 05]
-1F481; [0D 09 BB, 05, 05]
+1F4AD; [0D 0E 8B, 05, 05]
-1F482; [0D 09 C2, 05, 05]
+1F4AE; [0D 0E 92, 05, 05]
-1F483; [0D 09 C9, 05, 05]
+1F4AF; [0D 0E 99, 05, 05]
-1F484; [0D 09 D0, 05, 05]
+1F4B0; [0D 0E A0, 05, 05]
-1F485; [0D 09 D7, 05, 05]
+1F4B1; [0D 0E A7, 05, 05]
-1F486; [0D 09 DE, 05, 05]
+1F4B2; [0D 0E AE, 05, 05]
-1F487; [0D 09 E5, 05, 05]
+1F4B3; [0D 0E B5, 05, 05]
-1F488; [0D 09 EC, 05, 05]
+1F4B4; [0D 0E BC, 05, 05]
-1F489; [0D 09 F3, 05, 05]
+1F4B5; [0D 0E C3, 05, 05]
-1F48A; [0D 09 FA, 05, 05]
+1F4B6; [0D 0E CA, 05, 05]
-1F48B; [0D 0A 03, 05, 05]
+1F4B7; [0D 0E D1, 05, 05]
-1F48C; [0D 0A 0A, 05, 05]
+1F4B8; [0D 0E D8, 05, 05]
-1F48D; [0D 0A 11, 05, 05]
+1F4B9; [0D 0E DF, 05, 05]
-1F48E; [0D 0A 18, 05, 05]
+1F4BA; [0D 0E E6, 05, 05]
-1F48F; [0D 0A 1F, 05, 05]
+1F4BB; [0D 0E ED, 05, 05]
-1F490; [0D 0A 26, 05, 05]
+1F4BC; [0D 0E F4, 05, 05]
-1F491; [0D 0A 2D, 05, 05]
+1F4BD; [0D 0E FB, 05, 05]
-1F492; [0D 0A 34, 05, 05]
+1F4BE; [0D 0F 04, 05, 05]
-1F493; [0D 0A 3B, 05, 05]
+1F4BF; [0D 0F 0B, 05, 05]
-1F494; [0D 0A 42, 05, 05]
+1F4C0; [0D 0F 12, 05, 05]
-1F495; [0D 0A 49, 05, 05]
+1F4C1; [0D 0F 19, 05, 05]
-1F496; [0D 0A 50, 05, 05]
+1F4C2; [0D 0F 20, 05, 05]
-1F497; [0D 0A 57, 05, 05]
+1F4C3; [0D 0F 27, 05, 05]
-1F498; [0D 0A 5E, 05, 05]
+1F4C4; [0D 0F 2E, 05, 05]
-1F499; [0D 0A 65, 05, 05]
+1F4C5; [0D 0F 35, 05, 05]
-1F49A; [0D 0A 6C, 05, 05]
+1F4C6; [0D 0F 3C, 05, 05]
-1F49B; [0D 0A 73, 05, 05]
+1F4C7; [0D 0F 43, 05, 05]
-1F49C; [0D 0A 7A, 05, 05]
+1F4C8; [0D 0F 4A, 05, 05]
-1F49D; [0D 0A 81, 05, 05]
+1F4C9; [0D 0F 51, 05, 05]
-1F49E; [0D 0A 88, 05, 05]
+1F4CA; [0D 0F 58, 05, 05]
-1F49F; [0D 0A 8F, 05, 05]
+1F4CB; [0D 0F 5F, 05, 05]
-1F4A0; [0D 0A 96, 05, 05]
+1F4CC; [0D 0F 66, 05, 05]
-1F4A1; [0D 0A 9D, 05, 05]
+1F4CD; [0D 0F 6D, 05, 05]
-1F4A2; [0D 0A A4, 05, 05]
+1F4CE; [0D 0F 74, 05, 05]
-1F4A3; [0D 0A AB, 05, 05]
+1F4CF; [0D 0F 7B, 05, 05]
-1F4A4; [0D 0A B2, 05, 05]
+1F4D0; [0D 0F 82, 05, 05]
-1F4A5; [0D 0A B9, 05, 05]
+1F4D1; [0D 0F 89, 05, 05]
-1F4A6; [0D 0A C0, 05, 05]
+1F4D2; [0D 0F 90, 05, 05]
-1F4A7; [0D 0A C7, 05, 05]
+1F4D3; [0D 0F 97, 05, 05]
-1F4A8; [0D 0A CE, 05, 05]
+1F4D4; [0D 0F 9E, 05, 05]
-1F4A9; [0D 0A D5, 05, 05]
+1F4D5; [0D 0F A5, 05, 05]
-1F4AA; [0D 0A DC, 05, 05]
+1F4D6; [0D 0F AC, 05, 05]
-1F4AB; [0D 0A E3, 05, 05]
+1F4D7; [0D 0F B3, 05, 05]
-1F4AC; [0D 0A EA, 05, 05]
+1F4D8; [0D 0F BA, 05, 05]
-1F4AD; [0D 0A F1, 05, 05]
+1F4D9; [0D 0F C1, 05, 05]
-1F4AE; [0D 0A F8, 05, 05]
+1F4DA; [0D 0F C8, 05, 05]
-1F4AF; [0D 0A FF, 05, 05]
+1F4DB; [0D 0F CF, 05, 05]
-1F4B0; [0D 0B 08, 05, 05]
+1F4DC; [0D 0F D6, 05, 05]
-1F4B1; [0D 0B 0F, 05, 05]
+1F4DD; [0D 0F DD, 05, 05]
-1F4B2; [0D 0B 16, 05, 05]
+1F4DE; [0D 0F E4, 05, 05]
-1F4B3; [0D 0B 1D, 05, 05]
+1F4DF; [0D 0F EB, 05, 05]
-1F4B4; [0D 0B 24, 05, 05]
+1F4E0; [0D 0F F2, 05, 05]
-1F4B5; [0D 0B 2B, 05, 05]
+1F4E1; [0D 0F F9, 05, 05]
-1F4B6; [0D 0B 32, 05, 05]
+1F4E2; [0D 10 02, 05, 05]
-1F4B7; [0D 0B 39, 05, 05]
+1F4E3; [0D 10 09, 05, 05]
-1F4B8; [0D 0B 40, 05, 05]
+1F4E4; [0D 10 10, 05, 05]
-1F4B9; [0D 0B 47, 05, 05]
+1F4E5; [0D 10 17, 05, 05]
-1F4BA; [0D 0B 4E, 05, 05]
+1F4E6; [0D 10 1E, 05, 05]
-1F4BB; [0D 0B 55, 05, 05]
+1F4E7; [0D 10 25, 05, 05]
-1F4BC; [0D 0B 5C, 05, 05]
+1F4E8; [0D 10 2C, 05, 05]
-1F4BD; [0D 0B 63, 05, 05]
+1F4E9; [0D 10 33, 05, 05]
-1F4BE; [0D 0B 6A, 05, 05]
+1F4EA; [0D 10 3A, 05, 05]
-1F4BF; [0D 0B 71, 05, 05]
+1F4EB; [0D 10 41, 05, 05]
-1F4C0; [0D 0B 78, 05, 05]
+1F4EC; [0D 10 48, 05, 05]
-1F4C1; [0D 0B 7F, 05, 05]
+1F4ED; [0D 10 4F, 05, 05]
-1F4C2; [0D 0B 86, 05, 05]
+1F4EE; [0D 10 56, 05, 05]
-1F4C3; [0D 0B 8D, 05, 05]
+1F4EF; [0D 10 5D, 05, 05]
-1F4C4; [0D 0B 94, 05, 05]
+1F4F0; [0D 10 64, 05, 05]
-1F4C5; [0D 0B 9B, 05, 05]
+1F4F1; [0D 10 6B, 05, 05]
-1F4C6; [0D 0B A2, 05, 05]
+1F4F2; [0D 10 72, 05, 05]
-1F4C7; [0D 0B A9, 05, 05]
+1F4F3; [0D 10 79, 05, 05]
-1F4C8; [0D 0B B0, 05, 05]
+1F4F4; [0D 10 80, 05, 05]
-1F4C9; [0D 0B B7, 05, 05]
+1F4F5; [0D 10 87, 05, 05]
-1F4CA; [0D 0B BE, 05, 05]
+1F4F6; [0D 10 8E, 05, 05]
-1F4CB; [0D 0B C5, 05, 05]
+1F4F7; [0D 10 95, 05, 05]
-1F4CC; [0D 0B CC, 05, 05]
+1F4F8; [0D 10 9C, 05, 05]
-1F4CD; [0D 0B D3, 05, 05]
+1F4F9; [0D 10 A3, 05, 05]
-1F4CE; [0D 0B DA, 05, 05]
+1F4FA; [0D 10 AA, 05, 05]
-1F4CF; [0D 0B E1, 05, 05]
+1F4FB; [0D 10 B1, 05, 05]
-1F4D0; [0D 0B E8, 05, 05]
+1F4FC; [0D 10 B8, 05, 05]
-1F4D1; [0D 0B EF, 05, 05]
+1F4FD; [0D 10 BF, 05, 05]
-1F4D2; [0D 0B F6, 05, 05]
+1F4FE; [0D 10 C6, 05, 05]
-1F4D3; [0D 0B FD, 05, 05]
+1F4FF; [0D 10 CD, 05, 05]
-1F4D4; [0D 0C 06, 05, 05]
+1F500; [0D 10 D4, 05, 05]
-1F4D5; [0D 0C 0D, 05, 05]
+1F501; [0D 10 DB, 05, 05]
-1F4D6; [0D 0C 14, 05, 05]
+1F502; [0D 10 E2, 05, 05]
-1F4D7; [0D 0C 1B, 05, 05]
+1F503; [0D 10 E9, 05, 05]
-1F4D8; [0D 0C 22, 05, 05]
+1F504; [0D 10 F0, 05, 05]
-1F4D9; [0D 0C 29, 05, 05]
+1F505; [0D 10 F7, 05, 05]
-1F4DA; [0D 0C 30, 05, 05]
+1F506; [0D 10 FE, 05, 05]
-1F4DB; [0D 0C 37, 05, 05]
+1F507; [0D 11 07, 05, 05]
-1F4DC; [0D 0C 3E, 05, 05]
+1F508; [0D 11 0E, 05, 05]
-1F4DD; [0D 0C 45, 05, 05]
+1F509; [0D 11 15, 05, 05]
-1F4DE; [0D 0C 4C, 05, 05]
+1F50A; [0D 11 1C, 05, 05]
-1F4DF; [0D 0C 53, 05, 05]
+1F50B; [0D 11 23, 05, 05]
-1F4E0; [0D 0C 5A, 05, 05]
+1F50C; [0D 11 2A, 05, 05]
-1F4E1; [0D 0C 61, 05, 05]
+1F50D; [0D 11 31, 05, 05]
-1F4E2; [0D 0C 68, 05, 05]
+1F50E; [0D 11 38, 05, 05]
-1F4E3; [0D 0C 6F, 05, 05]
+1F50F; [0D 11 3F, 05, 05]
-1F4E4; [0D 0C 76, 05, 05]
+1F510; [0D 11 46, 05, 05]
-1F4E5; [0D 0C 7D, 05, 05]
+1F511; [0D 11 4D, 05, 05]
-1F4E6; [0D 0C 84, 05, 05]
+1F512; [0D 11 54, 05, 05]
-1F4E7; [0D 0C 8B, 05, 05]
+1F513; [0D 11 5B, 05, 05]
-1F4E8; [0D 0C 92, 05, 05]
+1F514; [0D 11 62, 05, 05]
-1F4E9; [0D 0C 99, 05, 05]
+1F515; [0D 11 69, 05, 05]
-1F4EA; [0D 0C A0, 05, 05]
+1F516; [0D 11 70, 05, 05]
-1F4EB; [0D 0C A7, 05, 05]
+1F517; [0D 11 77, 05, 05]
-1F4EC; [0D 0C AE, 05, 05]
+1F518; [0D 11 7E, 05, 05]
-1F4ED; [0D 0C B5, 05, 05]
+1F519; [0D 11 85, 05, 05]
-1F4EE; [0D 0C BC, 05, 05]
+1F51A; [0D 11 8C, 05, 05]
-1F4EF; [0D 0C C3, 05, 05]
+1F51B; [0D 11 93, 05, 05]
-1F4F0; [0D 0C CA, 05, 05]
+1F51C; [0D 11 9A, 05, 05]
-1F4F1; [0D 0C D1, 05, 05]
+1F51D; [0D 11 A1, 05, 05]
-1F4F2; [0D 0C D8, 05, 05]
+1F51E; [0D 11 A8, 05, 05]
-1F4F3; [0D 0C DF, 05, 05]
+1F51F; [0D 11 AF, 05, 05]
-1F4F4; [0D 0C E6, 05, 05]
+1F520; [0D 11 B6, 05, 05]
-1F4F5; [0D 0C ED, 05, 05]
+1F521; [0D 11 BD, 05, 05]
-1F4F6; [0D 0C F4, 05, 05]
+1F522; [0D 11 C4, 05, 05]
-1F4F7; [0D 0C FB, 05, 05]
+1F523; [0D 11 CB, 05, 05]
-1F4F8; [0D 0D 04, 05, 05]
+1F524; [0D 11 D2, 05, 05]
-1F4F9; [0D 0D 0B, 05, 05]
+1F525; [0D 11 D9, 05, 05]
-1F4FA; [0D 0D 12, 05, 05]
+1F526; [0D 11 E0, 05, 05]
-1F4FB; [0D 0D 19, 05, 05]
+1F527; [0D 11 E7, 05, 05]
-1F4FC; [0D 0D 20, 05, 05]
+1F528; [0D 11 EE, 05, 05]
-1F4FD; [0D 0D 27, 05, 05]
+1F529; [0D 11 F5, 05, 05]
-1F4FE; [0D 0D 2E, 05, 05]
+1F52A; [0D 11 FC, 05, 05]
-1F4FF; [0D 0D 35, 05, 05]
+1F52B; [0D 12 05, 05, 05]
-1F500; [0D 0D 3C, 05, 05]
+1F52C; [0D 12 0C, 05, 05]
-1F501; [0D 0D 43, 05, 05]
+1F52D; [0D 12 13, 05, 05]
-1F502; [0D 0D 4A, 05, 05]
+1F52E; [0D 12 1A, 05, 05]
-1F503; [0D 0D 51, 05, 05]
+1F52F; [0D 12 21, 05, 05]
-1F504; [0D 0D 58, 05, 05]
+1F530; [0D 12 28, 05, 05]
-1F505; [0D 0D 5F, 05, 05]
+1F531; [0D 12 2F, 05, 05]
-1F506; [0D 0D 66, 05, 05]
+1F532; [0D 12 36, 05, 05]
-1F507; [0D 0D 6D, 05, 05]
+1F533; [0D 12 3D, 05, 05]
-1F508; [0D 0D 74, 05, 05]
+1F534; [0D 12 44, 05, 05]
-1F509; [0D 0D 7B, 05, 05]
+1F535; [0D 12 4B, 05, 05]
-1F50A; [0D 0D 82, 05, 05]
+1F536; [0D 12 52, 05, 05]
-1F50B; [0D 0D 89, 05, 05]
+1F537; [0D 12 59, 05, 05]
-1F50C; [0D 0D 90, 05, 05]
+1F538; [0D 12 60, 05, 05]
-1F50D; [0D 0D 97, 05, 05]
+1F539; [0D 12 67, 05, 05]
-1F50E; [0D 0D 9E, 05, 05]
+1F53A; [0D 12 6E, 05, 05]
-1F50F; [0D 0D A5, 05, 05]
+1F53B; [0D 12 75, 05, 05]
-1F510; [0D 0D AC, 05, 05]
+1F53C; [0D 12 7C, 05, 05]
-1F511; [0D 0D B3, 05, 05]
+1F53D; [0D 12 83, 05, 05]
-1F512; [0D 0D BA, 05, 05]
+1F53E; [0D 12 8A, 05, 05]
-1F513; [0D 0D C1, 05, 05]
+1F53F; [0D 12 91, 05, 05]
-1F514; [0D 0D C8, 05, 05]
+1F540; [0D 12 98, 05, 05]
-1F515; [0D 0D CF, 05, 05]
+1F541; [0D 12 9F, 05, 05]
-1F516; [0D 0D D6, 05, 05]
+1F542; [0D 12 A6, 05, 05]
-1F517; [0D 0D DD, 05, 05]
+1F543; [0D 12 AD, 05, 05]
-1F518; [0D 0D E4, 05, 05]
+1F544; [0D 12 B4, 05, 05]
-1F519; [0D 0D EB, 05, 05]
+1F545; [0D 12 BB, 05, 05]
-1F51A; [0D 0D F2, 05, 05]
+1F546; [0D 12 C2, 05, 05]
-1F51B; [0D 0D F9, 05, 05]
+1F547; [0D 12 C9, 05, 05]
-1F51C; [0D 0E 02, 05, 05]
+1F548; [0D 12 D0, 05, 05]
-1F51D; [0D 0E 09, 05, 05]
+1F549; [0D 12 D7, 05, 05]
-1F51E; [0D 0E 10, 05, 05]
+1F54A; [0D 12 DE, 05, 05]
-1F51F; [0D 0E 17, 05, 05]
+1F54B; [0D 12 E5, 05, 05]
-1F520; [0D 0E 1E, 05, 05]
+1F54C; [0D 12 EC, 05, 05]
-1F521; [0D 0E 25, 05, 05]
+1F54D; [0D 12 F3, 05, 05]
-1F522; [0D 0E 2C, 05, 05]
+1F54E; [0D 12 FA, 05, 05]
-1F523; [0D 0E 33, 05, 05]
+1F54F; [0D 13 03, 05, 05]
-1F524; [0D 0E 3A, 05, 05]
+1F550; [0D 13 0A, 05, 05]
-1F525; [0D 0E 41, 05, 05]
+1F551; [0D 13 11, 05, 05]
-1F526; [0D 0E 48, 05, 05]
+1F552; [0D 13 18, 05, 05]
-1F527; [0D 0E 4F, 05, 05]
+1F553; [0D 13 1F, 05, 05]
-1F528; [0D 0E 56, 05, 05]
+1F554; [0D 13 26, 05, 05]
-1F529; [0D 0E 5D, 05, 05]
+1F555; [0D 13 2D, 05, 05]
-1F52A; [0D 0E 64, 05, 05]
+1F556; [0D 13 34, 05, 05]
-1F52B; [0D 0E 6B, 05, 05]
+1F557; [0D 13 3B, 05, 05]
-1F52C; [0D 0E 72, 05, 05]
+1F558; [0D 13 42, 05, 05]
-1F52D; [0D 0E 79, 05, 05]
+1F559; [0D 13 49, 05, 05]
-1F52E; [0D 0E 80, 05, 05]
+1F55A; [0D 13 50, 05, 05]
-1F52F; [0D 0E 87, 05, 05]
+1F55B; [0D 13 57, 05, 05]
-1F530; [0D 0E 8E, 05, 05]
+1F55C; [0D 13 5E, 05, 05]
-1F531; [0D 0E 95, 05, 05]
+1F55D; [0D 13 65, 05, 05]
-1F532; [0D 0E 9C, 05, 05]
+1F55E; [0D 13 6C, 05, 05]
-1F533; [0D 0E A3, 05, 05]
+1F55F; [0D 13 73, 05, 05]
-1F534; [0D 0E AA, 05, 05]
+1F560; [0D 13 7A, 05, 05]
-1F535; [0D 0E B1, 05, 05]
+1F561; [0D 13 81, 05, 05]
-1F536; [0D 0E B8, 05, 05]
+1F562; [0D 13 88, 05, 05]
-1F537; [0D 0E BF, 05, 05]
+1F563; [0D 13 8F, 05, 05]
-1F538; [0D 0E C6, 05, 05]
+1F564; [0D 13 96, 05, 05]
-1F539; [0D 0E CD, 05, 05]
+1F565; [0D 13 9D, 05, 05]
-1F53A; [0D 0E D4, 05, 05]
+1F566; [0D 13 A4, 05, 05]
-1F53B; [0D 0E DB, 05, 05]
+1F567; [0D 13 AB, 05, 05]
-1F53C; [0D 0E E2, 05, 05]
+1F568; [0D 13 B2, 05, 05]
-1F53D; [0D 0E E9, 05, 05]
+1F569; [0D 13 B9, 05, 05]
-1F53E; [0D 0E F0, 05, 05]
+1F56A; [0D 13 C0, 05, 05]
-1F53F; [0D 0E F7, 05, 05]
+1F56B; [0D 13 C7, 05, 05]
-1F540; [0D 0E FE, 05, 05]
+1F56C; [0D 13 CE, 05, 05]
-1F541; [0D 0F 07, 05, 05]
+1F56D; [0D 13 D5, 05, 05]
-1F542; [0D 0F 0E, 05, 05]
+1F56E; [0D 13 DC, 05, 05]
-1F543; [0D 0F 15, 05, 05]
+1F56F; [0D 13 E3, 05, 05]
-1F544; [0D 0F 1C, 05, 05]
+1F570; [0D 13 EA, 05, 05]
-1F545; [0D 0F 23, 05, 05]
+1F571; [0D 13 F1, 05, 05]
-1F546; [0D 0F 2A, 05, 05]
+1F572; [0D 13 F8, 05, 05]
-1F547; [0D 0F 31, 05, 05]
+1F573; [0D 13 FF, 05, 05]
-1F548; [0D 0F 38, 05, 05]
+1F574; [0D 14 08, 05, 05]
-1F549; [0D 0F 3F, 05, 05]
+1F575; [0D 14 0F, 05, 05]
-1F54A; [0D 0F 46, 05, 05]
+1F576; [0D 14 16, 05, 05]
-1F54B; [0D 0F 4D, 05, 05]
+1F577; [0D 14 1D, 05, 05]
-1F54C; [0D 0F 54, 05, 05]
+1F578; [0D 14 24, 05, 05]
-1F54D; [0D 0F 5B, 05, 05]
+1F579; [0D 14 2B, 05, 05]
-1F54E; [0D 0F 62, 05, 05]
+1F57A; [0D 14 32, 05, 05]
-1F54F; [0D 0F 69, 05, 05]
+1F57B; [0D 14 39, 05, 05]
-1F550; [0D 0F 70, 05, 05]
+1F57C; [0D 14 40, 05, 05]
-1F551; [0D 0F 77, 05, 05]
+1F57D; [0D 14 47, 05, 05]
-1F552; [0D 0F 7E, 05, 05]
+1F57E; [0D 14 4E, 05, 05]
-1F553; [0D 0F 85, 05, 05]
+1F57F; [0D 14 55, 05, 05]
-1F554; [0D 0F 8C, 05, 05]
+1F580; [0D 14 5C, 05, 05]
-1F555; [0D 0F 93, 05, 05]
+1F581; [0D 14 63, 05, 05]
-1F556; [0D 0F 9A, 05, 05]
+1F582; [0D 14 6A, 05, 05]
-1F557; [0D 0F A1, 05, 05]
+1F583; [0D 14 71, 05, 05]
-1F558; [0D 0F A8, 05, 05]
+1F584; [0D 14 78, 05, 05]
-1F559; [0D 0F AF, 05, 05]
+1F585; [0D 14 7F, 05, 05]
-1F55A; [0D 0F B6, 05, 05]
+1F586; [0D 14 86, 05, 05]
-1F55B; [0D 0F BD, 05, 05]
+1F587; [0D 14 8D, 05, 05]
-1F55C; [0D 0F C4, 05, 05]
+1F588; [0D 14 94, 05, 05]
-1F55D; [0D 0F CB, 05, 05]
+1F589; [0D 14 9B, 05, 05]
-1F55E; [0D 0F D2, 05, 05]
+1F58A; [0D 14 A2, 05, 05]
-1F55F; [0D 0F D9, 05, 05]
+1F58B; [0D 14 A9, 05, 05]
-1F560; [0D 0F E0, 05, 05]
+1F58C; [0D 14 B0, 05, 05]
-1F561; [0D 0F E7, 05, 05]
+1F58D; [0D 14 B7, 05, 05]
-1F562; [0D 0F EE, 05, 05]
+1F58E; [0D 14 BE, 05, 05]
-1F563; [0D 0F F5, 05, 05]
+1F58F; [0D 14 C5, 05, 05]
-1F564; [0D 0F FC, 05, 05]
+1F590; [0D 14 CC, 05, 05]
-1F565; [0D 10 05, 05, 05]
+1F591; [0D 14 D3, 05, 05]
-1F566; [0D 10 0C, 05, 05]
+1F592; [0D 14 DA, 05, 05]
-1F567; [0D 10 13, 05, 05]
+1F593; [0D 14 E1, 05, 05]
-1F568; [0D 10 1A, 05, 05]
+1F594; [0D 14 E8, 05, 05]
-1F569; [0D 10 21, 05, 05]
+1F595; [0D 14 EF, 05, 05]
-1F56A; [0D 10 28, 05, 05]
+1F596; [0D 14 F6, 05, 05]
-1F56B; [0D 10 2F, 05, 05]
+1F597; [0D 14 FD, 05, 05]
-1F56C; [0D 10 36, 05, 05]
+1F598; [0D 15 06, 05, 05]
-1F56D; [0D 10 3D, 05, 05]
+1F599; [0D 15 0D, 05, 05]
-1F56E; [0D 10 44, 05, 05]
+1F59A; [0D 15 14, 05, 05]
-1F56F; [0D 10 4B, 05, 05]
+1F59B; [0D 15 1B, 05, 05]
-1F570; [0D 10 52, 05, 05]
+1F59C; [0D 15 22, 05, 05]
-1F571; [0D 10 59, 05, 05]
+1F59D; [0D 15 29, 05, 05]
-1F572; [0D 10 60, 05, 05]
+1F59E; [0D 15 30, 05, 05]
-1F573; [0D 10 67, 05, 05]
+1F59F; [0D 15 37, 05, 05]
-1F574; [0D 10 6E, 05, 05]
+1F5A0; [0D 15 3E, 05, 05]
-1F575; [0D 10 75, 05, 05]
+1F5A1; [0D 15 45, 05, 05]
-1F576; [0D 10 7C, 05, 05]
+1F5A2; [0D 15 4C, 05, 05]
-1F577; [0D 10 83, 05, 05]
+1F5A3; [0D 15 53, 05, 05]
-1F578; [0D 10 8A, 05, 05]
+1F5A4; [0D 15 5A, 05, 05]
-1F579; [0D 10 91, 05, 05]
+1F5A5; [0D 15 61, 05, 05]
-1F57A; [0D 10 98, 05, 05]
+1F5A6; [0D 15 68, 05, 05]
-1F57B; [0D 10 9F, 05, 05]
+1F5A7; [0D 15 6F, 05, 05]
-1F57C; [0D 10 A6, 05, 05]
+1F5A8; [0D 15 76, 05, 05]
-1F57D; [0D 10 AD, 05, 05]
+1F5A9; [0D 15 7D, 05, 05]
-1F57E; [0D 10 B4, 05, 05]
+1F5AA; [0D 15 84, 05, 05]
-1F57F; [0D 10 BB, 05, 05]
+1F5AB; [0D 15 8B, 05, 05]
-1F580; [0D 10 C2, 05, 05]
+1F5AC; [0D 15 92, 05, 05]
-1F581; [0D 10 C9, 05, 05]
+1F5AD; [0D 15 99, 05, 05]
-1F582; [0D 10 D0, 05, 05]
+1F5AE; [0D 15 A0, 05, 05]
-1F583; [0D 10 D7, 05, 05]
+1F5AF; [0D 15 A7, 05, 05]
-1F584; [0D 10 DE, 05, 05]
+1F5B0; [0D 15 AE, 05, 05]
-1F585; [0D 10 E5, 05, 05]
+1F5B1; [0D 15 B5, 05, 05]
-1F586; [0D 10 EC, 05, 05]
+1F5B2; [0D 15 BC, 05, 05]
-1F587; [0D 10 F3, 05, 05]
+1F5B3; [0D 15 C3, 05, 05]
-1F588; [0D 10 FA, 05, 05]
+1F5B4; [0D 15 CA, 05, 05]
-1F589; [0D 11 03, 05, 05]
+1F5B5; [0D 15 D1, 05, 05]
-1F58A; [0D 11 0A, 05, 05]
+1F5B6; [0D 15 D8, 05, 05]
-1F58B; [0D 11 11, 05, 05]
+1F5B7; [0D 15 DF, 05, 05]
-1F58C; [0D 11 18, 05, 05]
+1F5B8; [0D 15 E6, 05, 05]
-1F58D; [0D 11 1F, 05, 05]
+1F5B9; [0D 15 ED, 05, 05]
-1F58E; [0D 11 26, 05, 05]
+1F5BA; [0D 15 F4, 05, 05]
-1F58F; [0D 11 2D, 05, 05]
+1F5BB; [0D 15 FB, 05, 05]
-1F590; [0D 11 34, 05, 05]
+1F5BC; [0D 16 04, 05, 05]
-1F591; [0D 11 3B, 05, 05]
+1F5BD; [0D 16 0B, 05, 05]
-1F592; [0D 11 42, 05, 05]
+1F5BE; [0D 16 12, 05, 05]
-1F593; [0D 11 49, 05, 05]
+1F5BF; [0D 16 19, 05, 05]
-1F594; [0D 11 50, 05, 05]
+1F5C0; [0D 16 20, 05, 05]
-1F595; [0D 11 57, 05, 05]
+1F5C1; [0D 16 27, 05, 05]
-1F596; [0D 11 5E, 05, 05]
+1F5C2; [0D 16 2E, 05, 05]
-1F597; [0D 11 65, 05, 05]
+1F5C3; [0D 16 35, 05, 05]
-1F598; [0D 11 6C, 05, 05]
+1F5C4; [0D 16 3C, 05, 05]
-1F599; [0D 11 73, 05, 05]
+1F5C5; [0D 16 43, 05, 05]
-1F59A; [0D 11 7A, 05, 05]
+1F5C6; [0D 16 4A, 05, 05]
-1F59B; [0D 11 81, 05, 05]
+1F5C7; [0D 16 51, 05, 05]
-1F59C; [0D 11 88, 05, 05]
+1F5C8; [0D 16 58, 05, 05]
-1F59D; [0D 11 8F, 05, 05]
+1F5C9; [0D 16 5F, 05, 05]
-1F59E; [0D 11 96, 05, 05]
+1F5CA; [0D 16 66, 05, 05]
-1F59F; [0D 11 9D, 05, 05]
+1F5CB; [0D 16 6D, 05, 05]
-1F5A0; [0D 11 A4, 05, 05]
+1F5CC; [0D 16 74, 05, 05]
-1F5A1; [0D 11 AB, 05, 05]
+1F5CD; [0D 16 7B, 05, 05]
-1F5A2; [0D 11 B2, 05, 05]
+1F5CE; [0D 16 82, 05, 05]
-1F5A3; [0D 11 B9, 05, 05]
+1F5CF; [0D 16 89, 05, 05]
-1F5A4; [0D 11 C0, 05, 05]
+1F5D0; [0D 16 90, 05, 05]
-1F5A5; [0D 11 C7, 05, 05]
+1F5D1; [0D 16 97, 05, 05]
-1F5A6; [0D 11 CE, 05, 05]
+1F5D2; [0D 16 9E, 05, 05]
-1F5A7; [0D 11 D5, 05, 05]
+1F5D3; [0D 16 A5, 05, 05]
-1F5A8; [0D 11 DC, 05, 05]
+1F5D4; [0D 16 AC, 05, 05]
-1F5A9; [0D 11 E3, 05, 05]
+1F5D5; [0D 16 B3, 05, 05]
-1F5AA; [0D 11 EA, 05, 05]
+1F5D6; [0D 16 BA, 05, 05]
-1F5AB; [0D 11 F1, 05, 05]
+1F5D7; [0D 16 C1, 05, 05]
-1F5AC; [0D 11 F8, 05, 05]
+1F5D8; [0D 16 C8, 05, 05]
-1F5AD; [0D 11 FF, 05, 05]
+1F5D9; [0D 16 CF, 05, 05]
-1F5AE; [0D 12 08, 05, 05]
+1F5DA; [0D 16 D6, 05, 05]
-1F5AF; [0D 12 0F, 05, 05]
+1F5DB; [0D 16 DD, 05, 05]
-1F5B0; [0D 12 16, 05, 05]
+1F5DC; [0D 16 E4, 05, 05]
-1F5B1; [0D 12 1D, 05, 05]
+1F5DD; [0D 16 EB, 05, 05]
-1F5B2; [0D 12 24, 05, 05]
+1F5DE; [0D 16 F2, 05, 05]
-1F5B3; [0D 12 2B, 05, 05]
+1F5DF; [0D 16 F9, 05, 05]
-1F5B4; [0D 12 32, 05, 05]
+1F5E0; [0D 17 02, 05, 05]
-1F5B5; [0D 12 39, 05, 05]
+1F5E1; [0D 17 09, 05, 05]
-1F5B6; [0D 12 40, 05, 05]
+1F5E2; [0D 17 10, 05, 05]
-1F5B7; [0D 12 47, 05, 05]
+1F5E3; [0D 17 17, 05, 05]
-1F5B8; [0D 12 4E, 05, 05]
+1F5E4; [0D 17 1E, 05, 05]
-1F5B9; [0D 12 55, 05, 05]
+1F5E5; [0D 17 25, 05, 05]
-1F5BA; [0D 12 5C, 05, 05]
+1F5E6; [0D 17 2C, 05, 05]
-1F5BB; [0D 12 63, 05, 05]
+1F5E7; [0D 17 33, 05, 05]
-1F5BC; [0D 12 6A, 05, 05]
+1F5E8; [0D 17 3A, 05, 05]
-1F5BD; [0D 12 71, 05, 05]
+1F5E9; [0D 17 41, 05, 05]
-1F5BE; [0D 12 78, 05, 05]
+1F5EA; [0D 17 48, 05, 05]
-1F5BF; [0D 12 7F, 05, 05]
+1F5EB; [0D 17 4F, 05, 05]
-1F5C0; [0D 12 86, 05, 05]
+1F5EC; [0D 17 56, 05, 05]
-1F5C1; [0D 12 8D, 05, 05]
+1F5ED; [0D 17 5D, 05, 05]
-1F5C2; [0D 12 94, 05, 05]
+1F5EE; [0D 17 64, 05, 05]
-1F5C3; [0D 12 9B, 05, 05]
+1F5EF; [0D 17 6B, 05, 05]
-1F5C4; [0D 12 A2, 05, 05]
+1F5F0; [0D 17 72, 05, 05]
-1F5C5; [0D 12 A9, 05, 05]
+1F5F1; [0D 17 79, 05, 05]
-1F5C6; [0D 12 B0, 05, 05]
+1F5F2; [0D 17 80, 05, 05]
-1F5C7; [0D 12 B7, 05, 05]
+1F5F3; [0D 17 87, 05, 05]
-1F5C8; [0D 12 BE, 05, 05]
+1F5F4; [0D 17 8E, 05, 05]
-1F5C9; [0D 12 C5, 05, 05]
+1F5F5; [0D 17 95, 05, 05]
-1F5CA; [0D 12 CC, 05, 05]
+1F5F6; [0D 17 9C, 05, 05]
-1F5CB; [0D 12 D3, 05, 05]
+1F5F7; [0D 17 A3, 05, 05]
-1F5CC; [0D 12 DA, 05, 05]
+1F5F8; [0D 17 AA, 05, 05]
-1F5CD; [0D 12 E1, 05, 05]
+1F5F9; [0D 17 B1, 05, 05]
-1F5CE; [0D 12 E8, 05, 05]
+1F5FA; [0D 17 B8, 05, 05]
-1F5CF; [0D 12 EF, 05, 05]
+1F5FB; [0D 17 BF, 05, 05]
-1F5D0; [0D 12 F6, 05, 05]
+1F5FC; [0D 17 C6, 05, 05]
-1F5D1; [0D 12 FD, 05, 05]
+1F5FD; [0D 17 CD, 05, 05]
-1F5D2; [0D 13 06, 05, 05]
+1F5FE; [0D 17 D4, 05, 05]
-1F5D3; [0D 13 0D, 05, 05]
+1F5FF; [0D 17 DB, 05, 05]
-1F5D4; [0D 13 14, 05, 05]
+1F900; [0D 17 E2, 05, 05]
-1F5D5; [0D 13 1B, 05, 05]
+1F901; [0D 17 E9, 05, 05]
-1F5D6; [0D 13 22, 05, 05]
+1F902; [0D 17 F0, 05, 05]
-1F5D7; [0D 13 29, 05, 05]
+1F903; [0D 17 F7, 05, 05]
-1F5D8; [0D 13 30, 05, 05]
+1F904; [0D 17 FE, 05, 05]
-1F5D9; [0D 13 37, 05, 05]
+1F905; [0D 18 07, 05, 05]
-1F5DA; [0D 13 3E, 05, 05]
+1F906; [0D 18 0E, 05, 05]
-1F5DB; [0D 13 45, 05, 05]
+1F907; [0D 18 15, 05, 05]
-1F5DC; [0D 13 4C, 05, 05]
+1F908; [0D 18 1C, 05, 05]
-1F5DD; [0D 13 53, 05, 05]
+1F909; [0D 18 23, 05, 05]
-1F5DE; [0D 13 5A, 05, 05]
+1F90A; [0D 18 2A, 05, 05]
-1F5DF; [0D 13 61, 05, 05]
+1F90B; [0D 18 31, 05, 05]
-1F5E0; [0D 13 68, 05, 05]
+1F910; [0D 18 38, 05, 05]
-1F5E1; [0D 13 6F, 05, 05]
+1F911; [0D 18 3F, 05, 05]
-1F5E2; [0D 13 76, 05, 05]
+1F912; [0D 18 46, 05, 05]
-1F5E3; [0D 13 7D, 05, 05]
+1F913; [0D 18 4D, 05, 05]
-1F5E4; [0D 13 84, 05, 05]
+1F914; [0D 18 54, 05, 05]
-1F5E5; [0D 13 8B, 05, 05]
+1F915; [0D 18 5B, 05, 05]
-1F5E6; [0D 13 92, 05, 05]
+1F916; [0D 18 62, 05, 05]
-1F5E7; [0D 13 99, 05, 05]
+1F917; [0D 18 69, 05, 05]
-1F5E8; [0D 13 A0, 05, 05]
+1F918; [0D 18 70, 05, 05]
-1F5E9; [0D 13 A7, 05, 05]
+1F919; [0D 18 77, 05, 05]
-1F5EA; [0D 13 AE, 05, 05]
+1F91A; [0D 18 7E, 05, 05]
-1F5EB; [0D 13 B5, 05, 05]
+1F91B; [0D 18 85, 05, 05]
-1F5EC; [0D 13 BC, 05, 05]
+1F91C; [0D 18 8C, 05, 05]
-1F5ED; [0D 13 C3, 05, 05]
+1F91D; [0D 18 93, 05, 05]
-1F5EE; [0D 13 CA, 05, 05]
+1F91E; [0D 18 9A, 05, 05]
-1F5EF; [0D 13 D1, 05, 05]
+1F91F; [0D 18 A1, 05, 05]
-1F5F0; [0D 13 D8, 05, 05]
+1F920; [0D 18 A8, 05, 05]
-1F5F1; [0D 13 DF, 05, 05]
+1F921; [0D 18 AF, 05, 05]
-1F5F2; [0D 13 E6, 05, 05]
+1F922; [0D 18 B6, 05, 05]
-1F5F3; [0D 13 ED, 05, 05]
+1F923; [0D 18 BD, 05, 05]
-1F5F4; [0D 13 F4, 05, 05]
+1F924; [0D 18 C4, 05, 05]
-1F5F5; [0D 13 FB, 05, 05]
+1F925; [0D 18 CB, 05, 05]
-1F5F6; [0D 14 04, 05, 05]
+1F926; [0D 18 D2, 05, 05]
-1F5F7; [0D 14 0B, 05, 05]
+1F927; [0D 18 D9, 05, 05]
-1F5F8; [0D 14 12, 05, 05]
+1F928; [0D 18 E0, 05, 05]
-1F5F9; [0D 14 19, 05, 05]
+1F929; [0D 18 E7, 05, 05]
-1F5FA; [0D 14 20, 05, 05]
+1F92A; [0D 18 EE, 05, 05]
-1F5FB; [0D 14 27, 05, 05]
+1F92B; [0D 18 F5, 05, 05]
-1F5FC; [0D 14 2E, 05, 05]
+1F92C; [0D 18 FC, 05, 05]
-1F5FD; [0D 14 35, 05, 05]
+1F92D; [0D 19 05, 05, 05]
-1F5FE; [0D 14 3C, 05, 05]
+1F92E; [0D 19 0C, 05, 05]
-1F5FF; [0D 14 43, 05, 05]
+1F92F; [0D 19 13, 05, 05]
-1F900; [0D 14 4A, 05, 05]
+1F930; [0D 19 1A, 05, 05]
-1F901; [0D 14 51, 05, 05]
+1F931; [0D 19 21, 05, 05]
-1F902; [0D 14 58, 05, 05]
+1F932; [0D 19 28, 05, 05]
-1F903; [0D 14 5F, 05, 05]
+1F933; [0D 19 2F, 05, 05]
-1F904; [0D 14 66, 05, 05]
+1F934; [0D 19 36, 05, 05]
-1F905; [0D 14 6D, 05, 05]
+1F935; [0D 19 3D, 05, 05]
-1F906; [0D 14 74, 05, 05]
+1F936; [0D 19 44, 05, 05]
-1F907; [0D 14 7B, 05, 05]
+1F937; [0D 19 4B, 05, 05]
-1F908; [0D 14 82, 05, 05]
+1F938; [0D 19 52, 05, 05]
-1F909; [0D 14 89, 05, 05]
+1F939; [0D 19 59, 05, 05]
-1F90A; [0D 14 90, 05, 05]
+1F93A; [0D 19 60, 05, 05]
-1F90B; [0D 14 97, 05, 05]
+1F93B; [0D 19 67, 05, 05]
-1F910; [0D 14 9E, 05, 05]
+1F93C; [0D 19 6E, 05, 05]
-1F911; [0D 14 A5, 05, 05]
+1F93D; [0D 19 75, 05, 05]
-1F912; [0D 14 AC, 05, 05]
+1F93E; [0D 19 7C, 05, 05]
-1F913; [0D 14 B3, 05, 05]
+1F940; [0D 19 83, 05, 05]
-1F914; [0D 14 BA, 05, 05]
+1F941; [0D 19 8A, 05, 05]
-1F915; [0D 14 C1, 05, 05]
+1F942; [0D 19 91, 05, 05]
-1F916; [0D 14 C8, 05, 05]
+1F943; [0D 19 98, 05, 05]
-1F917; [0D 14 CF, 05, 05]
+1F944; [0D 19 9F, 05, 05]
-1F918; [0D 14 D6, 05, 05]
+1F945; [0D 19 A6, 05, 05]
-1F919; [0D 14 DD, 05, 05]
+1F946; [0D 19 AD, 05, 05]
-1F91A; [0D 14 E4, 05, 05]
+1F947; [0D 19 B4, 05, 05]
-1F91B; [0D 14 EB, 05, 05]
+1F948; [0D 19 BB, 05, 05]
-1F91C; [0D 14 F2, 05, 05]
+1F949; [0D 19 C2, 05, 05]
-1F91D; [0D 14 F9, 05, 05]
+1F94A; [0D 19 C9, 05, 05]
-1F91E; [0D 15 02, 05, 05]
+1F94B; [0D 19 D0, 05, 05]
-1F91F; [0D 15 09, 05, 05]
+1F94C; [0D 19 D7, 05, 05]
-1F920; [0D 15 10, 05, 05]
+1F94D; [0D 19 DE, 05, 05]
-1F921; [0D 15 17, 05, 05]
+1F94E; [0D 19 E5, 05, 05]
-1F922; [0D 15 1E, 05, 05]
+1F94F; [0D 19 EC, 05, 05]
-1F923; [0D 15 25, 05, 05]
+1F950; [0D 19 F3, 05, 05]
-1F924; [0D 15 2C, 05, 05]
+1F951; [0D 19 FA, 05, 05]
-1F925; [0D 15 33, 05, 05]
+1F952; [0D 1A 03, 05, 05]
-1F926; [0D 15 3A, 05, 05]
+1F953; [0D 1A 0A, 05, 05]
-1F927; [0D 15 41, 05, 05]
+1F954; [0D 1A 11, 05, 05]
-1F928; [0D 15 48, 05, 05]
+1F955; [0D 1A 18, 05, 05]
-1F929; [0D 15 4F, 05, 05]
+1F956; [0D 1A 1F, 05, 05]
-1F92A; [0D 15 56, 05, 05]
+1F957; [0D 1A 26, 05, 05]
-1F92B; [0D 15 5D, 05, 05]
+1F958; [0D 1A 2D, 05, 05]
-1F92C; [0D 15 64, 05, 05]
+1F959; [0D 1A 34, 05, 05]
-1F92D; [0D 15 6B, 05, 05]
+1F95A; [0D 1A 3B, 05, 05]
-1F92E; [0D 15 72, 05, 05]
+1F95B; [0D 1A 42, 05, 05]
-1F92F; [0D 15 79, 05, 05]
+1F95C; [0D 1A 49, 05, 05]
-1F930; [0D 15 80, 05, 05]
+1F95D; [0D 1A 50, 05, 05]
-1F931; [0D 15 87, 05, 05]
+1F95E; [0D 1A 57, 05, 05]
-1F932; [0D 15 8E, 05, 05]
+1F95F; [0D 1A 5E, 05, 05]
-1F933; [0D 15 95, 05, 05]
+1F960; [0D 1A 65, 05, 05]
-1F934; [0D 15 9C, 05, 05]
+1F961; [0D 1A 6C, 05, 05]
-1F935; [0D 15 A3, 05, 05]
+1F962; [0D 1A 73, 05, 05]
-1F936; [0D 15 AA, 05, 05]
+1F963; [0D 1A 7A, 05, 05]
-1F937; [0D 15 B1, 05, 05]
+1F964; [0D 1A 81, 05, 05]
-1F938; [0D 15 B8, 05, 05]
+1F965; [0D 1A 88, 05, 05]
-1F939; [0D 15 BF, 05, 05]
+1F966; [0D 1A 8F, 05, 05]
-1F93A; [0D 15 C6, 05, 05]
+1F967; [0D 1A 96, 05, 05]
-1F93B; [0D 15 CD, 05, 05]
+1F968; [0D 1A 9D, 05, 05]
-1F93C; [0D 15 D4, 05, 05]
+1F969; [0D 1A A4, 05, 05]
-1F93D; [0D 15 DB, 05, 05]
+1F96A; [0D 1A AB, 05, 05]
-1F93E; [0D 15 E2, 05, 05]
+1F96B; [0D 1A B2, 05, 05]
-1F940; [0D 15 E9, 05, 05]
+1F96C; [0D 1A B9, 05, 05]
-1F941; [0D 15 F0, 05, 05]
+1F96D; [0D 1A C0, 05, 05]
-1F942; [0D 15 F7, 05, 05]
+1F96E; [0D 1A C7, 05, 05]
-1F943; [0D 15 FE, 05, 05]
+1F96F; [0D 1A CE, 05, 05]
-1F944; [0D 16 07, 05, 05]
+1F970; [0D 1A D5, 05, 05]
-1F945; [0D 16 0E, 05, 05]
+1F973; [0D 1A DC, 05, 05]
-1F946; [0D 16 15, 05, 05]
+1F974; [0D 1A E3, 05, 05]
-1F947; [0D 16 1C, 05, 05]
+1F975; [0D 1A EA, 05, 05]
-1F948; [0D 16 23, 05, 05]
+1F976; [0D 1A F1, 05, 05]
-1F949; [0D 16 2A, 05, 05]
+1F97A; [0D 1A F8, 05, 05]
-1F94A; [0D 16 31, 05, 05]
+1F97C; [0D 1A FF, 05, 05]
-1F94B; [0D 16 38, 05, 05]
+1F97D; [0D 1B 08, 05, 05]
-1F94C; [0D 16 3F, 05, 05]
+1F97E; [0D 1B 0F, 05, 05]
-1F950; [0D 16 46, 05, 05]
+1F97F; [0D 1B 16, 05, 05]
-1F951; [0D 16 4D, 05, 05]
+1F980; [0D 1B 1D, 05, 05]
-1F952; [0D 16 54, 05, 05]
+1F981; [0D 1B 24, 05, 05]
-1F953; [0D 16 5B, 05, 05]
+1F982; [0D 1B 2B, 05, 05]
-1F954; [0D 16 62, 05, 05]
+1F983; [0D 1B 32, 05, 05]
-1F955; [0D 16 69, 05, 05]
+1F984; [0D 1B 39, 05, 05]
-1F956; [0D 16 70, 05, 05]
+1F985; [0D 1B 40, 05, 05]
-1F957; [0D 16 77, 05, 05]
+1F986; [0D 1B 47, 05, 05]
-1F958; [0D 16 7E, 05, 05]
+1F987; [0D 1B 4E, 05, 05]
-1F959; [0D 16 85, 05, 05]
+1F988; [0D 1B 55, 05, 05]
-1F95A; [0D 16 8C, 05, 05]
+1F989; [0D 1B 5C, 05, 05]
-1F95B; [0D 16 93, 05, 05]
+1F98A; [0D 1B 63, 05, 05]
-1F95C; [0D 16 9A, 05, 05]
+1F98B; [0D 1B 6A, 05, 05]
-1F95D; [0D 16 A1, 05, 05]
+1F98C; [0D 1B 71, 05, 05]
-1F95E; [0D 16 A8, 05, 05]
+1F98D; [0D 1B 78, 05, 05]
-1F95F; [0D 16 AF, 05, 05]
+1F98E; [0D 1B 7F, 05, 05]
-1F960; [0D 16 B6, 05, 05]
+1F98F; [0D 1B 86, 05, 05]
-1F961; [0D 16 BD, 05, 05]
+1F990; [0D 1B 8D, 05, 05]
-1F962; [0D 16 C4, 05, 05]
+1F991; [0D 1B 94, 05, 05]
-1F963; [0D 16 CB, 05, 05]
+1F992; [0D 1B 9B, 05, 05]
-1F964; [0D 16 D2, 05, 05]
+1F993; [0D 1B A2, 05, 05]
-1F965; [0D 16 D9, 05, 05]
+1F994; [0D 1B A9, 05, 05]
-1F966; [0D 16 E0, 05, 05]
+1F995; [0D 1B B0, 05, 05]
-1F967; [0D 16 E7, 05, 05]
+1F996; [0D 1B B7, 05, 05]
-1F968; [0D 16 EE, 05, 05]
+1F997; [0D 1B BE, 05, 05]
-1F969; [0D 16 F5, 05, 05]
+1F998; [0D 1B C5, 05, 05]
-1F96A; [0D 16 FC, 05, 05]
+1F999; [0D 1B CC, 05, 05]
-1F96B; [0D 17 05, 05, 05]
+1F99A; [0D 1B D3, 05, 05]
-1F980; [0D 17 0C, 05, 05]
+1F99B; [0D 1B DA, 05, 05]
-1F981; [0D 17 13, 05, 05]
+1F99C; [0D 1B E1, 05, 05]
-1F982; [0D 17 1A, 05, 05]
+1F99D; [0D 1B E8, 05, 05]
-1F983; [0D 17 21, 05, 05]
+1F99E; [0D 1B EF, 05, 05]
-1F984; [0D 17 28, 05, 05]
+1F99F; [0D 1B F6, 05, 05]
-1F985; [0D 17 2F, 05, 05]
+1F9A0; [0D 1B FD, 05, 05]
-1F986; [0D 17 36, 05, 05]
+1F9A1; [0D 1C 06, 05, 05]
-1F987; [0D 17 3D, 05, 05]
+1F9A2; [0D 1C 0D, 05, 05]
-1F988; [0D 17 44, 05, 05]
+1F9B0; [0D 1C 14, 05, 05]
-1F989; [0D 17 4B, 05, 05]
+1F9B1; [0D 1C 1B, 05, 05]
-1F98A; [0D 17 52, 05, 05]
+1F9B2; [0D 1C 22, 05, 05]
-1F98B; [0D 17 59, 05, 05]
+1F9B3; [0D 1C 29, 05, 05]
-1F98C; [0D 17 60, 05, 05]
+1F9B4; [0D 1C 30, 05, 05]
-1F98D; [0D 17 67, 05, 05]
+1F9B5; [0D 1C 37, 05, 05]
-1F98E; [0D 17 6E, 05, 05]
+1F9B6; [0D 1C 3E, 05, 05]
-1F98F; [0D 17 75, 05, 05]
+1F9B7; [0D 1C 45, 05, 05]
-1F990; [0D 17 7C, 05, 05]
+1F9B8; [0D 1C 4C, 05, 05]
-1F991; [0D 17 83, 05, 05]
+1F9B9; [0D 1C 53, 05, 05]
-1F992; [0D 17 8A, 05, 05]
+1F9C0; [0D 1C 5A, 05, 05]
-1F993; [0D 17 91, 05, 05]
+1F9C1; [0D 1C 61, 05, 05]
-1F994; [0D 17 98, 05, 05]
+1F9C2; [0D 1C 68, 05, 05]
-1F995; [0D 17 9F, 05, 05]
+1F9D0; [0D 1C 6F, 05, 05]
-1F996; [0D 17 A6, 05, 05]
+1F9D1; [0D 1C 76, 05, 05]
-1F997; [0D 17 AD, 05, 05]
+1F9D2; [0D 1C 7D, 05, 05]
-1F9C0; [0D 17 B4, 05, 05]
+1F9D3; [0D 1C 84, 05, 05]
-1F9D0; [0D 17 BB, 05, 05]
+1F9D4; [0D 1C 8B, 05, 05]
-1F9D1; [0D 17 C2, 05, 05]
+1F9D5; [0D 1C 92, 05, 05]
-1F9D2; [0D 17 C9, 05, 05]
+1F9D6; [0D 1C 99, 05, 05]
-1F9D3; [0D 17 D0, 05, 05]
+1F9D7; [0D 1C A0, 05, 05]
-1F9D4; [0D 17 D7, 05, 05]
+1F9D8; [0D 1C A7, 05, 05]
-1F9D5; [0D 17 DE, 05, 05]
+1F9D9; [0D 1C AE, 05, 05]
-1F9D6; [0D 17 E5, 05, 05]
+1F9DA; [0D 1C B5, 05, 05]
-1F9D7; [0D 17 EC, 05, 05]
+1F9DB; [0D 1C BC, 05, 05]
-1F9D8; [0D 17 F3, 05, 05]
+1F9DC; [0D 1C C3, 05, 05]
-1F9D9; [0D 17 FA, 05, 05]
+1F9DD; [0D 1C CA, 05, 05]
-1F9DA; [0D 18 03, 05, 05]
+1F9DE; [0D 1C D1, 05, 05]
-1F9DB; [0D 18 0A, 05, 05]
+1F9DF; [0D 1C D8, 05, 05]
-1F9DC; [0D 18 11, 05, 05]
+1F9E0; [0D 1C DF, 05, 05]
-1F9DD; [0D 18 18, 05, 05]
+1F9E1; [0D 1C E6, 05, 05]
-1F9DE; [0D 18 1F, 05, 05]
+1F9E2; [0D 1C ED, 05, 05]
-1F9DF; [0D 18 26, 05, 05]
+1F9E3; [0D 1C F4, 05, 05]
-1F9E0; [0D 18 2D, 05, 05]
+1F9E4; [0D 1C FB, 05, 05]
-1F9E1; [0D 18 34, 05, 05]
+1F9E5; [0D 1D 04, 05, 05]
-1F9E2; [0D 18 3B, 05, 05]
+1F9E6; [0D 1D 0B, 05, 05]
-1F9E3; [0D 18 42, 05, 05]
+1F9E7; [0D 1D 12, 05, 05]
-1F9E4; [0D 18 49, 05, 05]
+1F9E8; [0D 1D 19, 05, 05]
-1F9E5; [0D 18 50, 05, 05]
+1F9E9; [0D 1D 20, 05, 05]
-1F9E6; [0D 18 57, 05, 05]
+1F9EA; [0D 1D 27, 05, 05]
-1F600; [0D 18 5E, 05, 05]
+1F9EB; [0D 1D 2E, 05, 05]
-1F601; [0D 18 65, 05, 05]
+1F9EC; [0D 1D 35, 05, 05]
-1F602; [0D 18 6C, 05, 05]
+1F9ED; [0D 1D 3C, 05, 05]
-1F603; [0D 18 73, 05, 05]
+1F9EE; [0D 1D 43, 05, 05]
-1F604; [0D 18 7A, 05, 05]
+1F9EF; [0D 1D 4A, 05, 05]
-1F605; [0D 18 81, 05, 05]
+1F9F0; [0D 1D 51, 05, 05]
-1F606; [0D 18 88, 05, 05]
+1F9F1; [0D 1D 58, 05, 05]
-1F607; [0D 18 8F, 05, 05]
+1F9F2; [0D 1D 5F, 05, 05]
-1F608; [0D 18 96, 05, 05]
+1F9F3; [0D 1D 66, 05, 05]
-1F609; [0D 18 9D, 05, 05]
+1F9F4; [0D 1D 6D, 05, 05]
-1F60A; [0D 18 A4, 05, 05]
+1F9F5; [0D 1D 74, 05, 05]
-1F60B; [0D 18 AB, 05, 05]
+1F9F6; [0D 1D 7B, 05, 05]
-1F60C; [0D 18 B2, 05, 05]
+1F9F7; [0D 1D 82, 05, 05]
-1F60D; [0D 18 B9, 05, 05]
+1F9F8; [0D 1D 89, 05, 05]
-1F60E; [0D 18 C0, 05, 05]
+1F9F9; [0D 1D 90, 05, 05]
-1F60F; [0D 18 C7, 05, 05]
+1F9FA; [0D 1D 97, 05, 05]
-1F610; [0D 18 CE, 05, 05]
+1F9FB; [0D 1D 9E, 05, 05]
-1F611; [0D 18 D5, 05, 05]
+1F9FC; [0D 1D A5, 05, 05]
-1F612; [0D 18 DC, 05, 05]
+1F9FD; [0D 1D AC, 05, 05]
-1F613; [0D 18 E3, 05, 05]
+1F9FE; [0D 1D B3, 05, 05]
-1F614; [0D 18 EA, 05, 05]
+1F9FF; [0D 1D BA, 05, 05]
-1F615; [0D 18 F1, 05, 05]
+1F600; [0D 1D C1, 05, 05]
-1F616; [0D 18 F8, 05, 05]
+1F601; [0D 1D C8, 05, 05]
-1F617; [0D 18 FF, 05, 05]
+1F602; [0D 1D CF, 05, 05]
-1F618; [0D 19 08, 05, 05]
+1F603; [0D 1D D6, 05, 05]
-1F619; [0D 19 0F, 05, 05]
+1F604; [0D 1D DD, 05, 05]
-1F61A; [0D 19 16, 05, 05]
+1F605; [0D 1D E4, 05, 05]
-1F61B; [0D 19 1D, 05, 05]
+1F606; [0D 1D EB, 05, 05]
-1F61C; [0D 19 24, 05, 05]
+1F607; [0D 1D F2, 05, 05]
-1F61D; [0D 19 2B, 05, 05]
+1F608; [0D 1D F9, 05, 05]
-1F61E; [0D 19 32, 05, 05]
+1F609; [0D 1E 02, 05, 05]
-1F61F; [0D 19 39, 05, 05]
+1F60A; [0D 1E 09, 05, 05]
-1F620; [0D 19 40, 05, 05]
+1F60B; [0D 1E 10, 05, 05]
-1F621; [0D 19 47, 05, 05]
+1F60C; [0D 1E 17, 05, 05]
-1F622; [0D 19 4E, 05, 05]
+1F60D; [0D 1E 1E, 05, 05]
-1F623; [0D 19 55, 05, 05]
+1F60E; [0D 1E 25, 05, 05]
-1F624; [0D 19 5C, 05, 05]
+1F60F; [0D 1E 2C, 05, 05]
-1F625; [0D 19 63, 05, 05]
+1F610; [0D 1E 33, 05, 05]
-1F626; [0D 19 6A, 05, 05]
+1F611; [0D 1E 3A, 05, 05]
-1F627; [0D 19 71, 05, 05]
+1F612; [0D 1E 41, 05, 05]
-1F628; [0D 19 78, 05, 05]
+1F613; [0D 1E 48, 05, 05]
-1F629; [0D 19 7F, 05, 05]
+1F614; [0D 1E 4F, 05, 05]
-1F62A; [0D 19 86, 05, 05]
+1F615; [0D 1E 56, 05, 05]
-1F62B; [0D 19 8D, 05, 05]
+1F616; [0D 1E 5D, 05, 05]
-1F62C; [0D 19 94, 05, 05]
+1F617; [0D 1E 64, 05, 05]
-1F62D; [0D 19 9B, 05, 05]
+1F618; [0D 1E 6B, 05, 05]
-1F62E; [0D 19 A2, 05, 05]
+1F619; [0D 1E 72, 05, 05]
-1F62F; [0D 19 A9, 05, 05]
+1F61A; [0D 1E 79, 05, 05]
-1F630; [0D 19 B0, 05, 05]
+1F61B; [0D 1E 80, 05, 05]
-1F631; [0D 19 B7, 05, 05]
+1F61C; [0D 1E 87, 05, 05]
-1F632; [0D 19 BE, 05, 05]
+1F61D; [0D 1E 8E, 05, 05]
-1F633; [0D 19 C5, 05, 05]
+1F61E; [0D 1E 95, 05, 05]
-1F634; [0D 19 CC, 05, 05]
+1F61F; [0D 1E 9C, 05, 05]
-1F635; [0D 19 D3, 05, 05]
+1F620; [0D 1E A3, 05, 05]
-1F636; [0D 19 DA, 05, 05]
+1F621; [0D 1E AA, 05, 05]
-1F637; [0D 19 E1, 05, 05]
+1F622; [0D 1E B1, 05, 05]
-1F638; [0D 19 E8, 05, 05]
+1F623; [0D 1E B8, 05, 05]
-1F639; [0D 19 EF, 05, 05]
+1F624; [0D 1E BF, 05, 05]
-1F63A; [0D 19 F6, 05, 05]
+1F625; [0D 1E C6, 05, 05]
-1F63B; [0D 19 FD, 05, 05]
+1F626; [0D 1E CD, 05, 05]
-1F63C; [0D 1A 06, 05, 05]
+1F627; [0D 1E D4, 05, 05]
-1F63D; [0D 1A 0D, 05, 05]
+1F628; [0D 1E DB, 05, 05]
-1F63E; [0D 1A 14, 05, 05]
+1F629; [0D 1E E2, 05, 05]
-1F63F; [0D 1A 1B, 05, 05]
+1F62A; [0D 1E E9, 05, 05]
-1F640; [0D 1A 22, 05, 05]
+1F62B; [0D 1E F0, 05, 05]
-1F641; [0D 1A 29, 05, 05]
+1F62C; [0D 1E F7, 05, 05]
-1F642; [0D 1A 30, 05, 05]
+1F62D; [0D 1E FE, 05, 05]
-1F643; [0D 1A 37, 05, 05]
+1F62E; [0D 1F 07, 05, 05]
-1F644; [0D 1A 3E, 05, 05]
+1F62F; [0D 1F 0E, 05, 05]
-1F645; [0D 1A 45, 05, 05]
+1F630; [0D 1F 15, 05, 05]
-1F646; [0D 1A 4C, 05, 05]
+1F631; [0D 1F 1C, 05, 05]
-1F647; [0D 1A 53, 05, 05]
+1F632; [0D 1F 23, 05, 05]
-1F648; [0D 1A 5A, 05, 05]
+1F633; [0D 1F 2A, 05, 05]
-1F649; [0D 1A 61, 05, 05]
+1F634; [0D 1F 31, 05, 05]
-1F64A; [0D 1A 68, 05, 05]
+1F635; [0D 1F 38, 05, 05]
-1F64B; [0D 1A 6F, 05, 05]
+1F636; [0D 1F 3F, 05, 05]
-1F64C; [0D 1A 76, 05, 05]
+1F637; [0D 1F 46, 05, 05]
-1F64D; [0D 1A 7D, 05, 05]
+1F638; [0D 1F 4D, 05, 05]
-1F64E; [0D 1A 84, 05, 05]
+1F639; [0D 1F 54, 05, 05]
-1F64F; [0D 1A 8B, 05, 05]
+1F63A; [0D 1F 5B, 05, 05]
-1F650; [0D 1A 92, 05, 05]
+1F63B; [0D 1F 62, 05, 05]
-1F651; [0D 1A 99, 05, 05]
+1F63C; [0D 1F 69, 05, 05]
-1F652; [0D 1A A0, 05, 05]
+1F63D; [0D 1F 70, 05, 05]
-1F653; [0D 1A A7, 05, 05]
+1F63E; [0D 1F 77, 05, 05]
-1F654; [0D 1A AE, 05, 05]
+1F63F; [0D 1F 7E, 05, 05]
-1F655; [0D 1A B5, 05, 05]
+1F640; [0D 1F 85, 05, 05]
-1F656; [0D 1A BC, 05, 05]
+1F641; [0D 1F 8C, 05, 05]
-1F657; [0D 1A C3, 05, 05]
+1F642; [0D 1F 93, 05, 05]
-1F658; [0D 1A CA, 05, 05]
+1F643; [0D 1F 9A, 05, 05]
-1F659; [0D 1A D1, 05, 05]
+1F644; [0D 1F A1, 05, 05]
-1F65A; [0D 1A D8, 05, 05]
+1F645; [0D 1F A8, 05, 05]
-1F65B; [0D 1A DF, 05, 05]
+1F646; [0D 1F AF, 05, 05]
-1F65C; [0D 1A E6, 05, 05]
+1F647; [0D 1F B6, 05, 05]
-1F65D; [0D 1A ED, 05, 05]
+1F648; [0D 1F BD, 05, 05]
-1F65E; [0D 1A F4, 05, 05]
+1F649; [0D 1F C4, 05, 05]
-1F65F; [0D 1A FB, 05, 05]
+1F64A; [0D 1F CB, 05, 05]
-1F660; [0D 1B 04, 05, 05]
+1F64B; [0D 1F D2, 05, 05]
-1F661; [0D 1B 0B, 05, 05]
+1F64C; [0D 1F D9, 05, 05]
-1F662; [0D 1B 12, 05, 05]
+1F64D; [0D 1F E0, 05, 05]
-1F663; [0D 1B 19, 05, 05]
+1F64E; [0D 1F E7, 05, 05]
-1F664; [0D 1B 20, 05, 05]
+1F64F; [0D 1F EE, 05, 05]
-1F665; [0D 1B 27, 05, 05]
+1F650; [0D 1F F5, 05, 05]
-1F666; [0D 1B 2E, 05, 05]
+1F651; [0D 1F FC, 05, 05]
-1F667; [0D 1B 35, 05, 05]
+1F652; [0D 20 05, 05, 05]
-1F668; [0D 1B 3C, 05, 05]
+1F653; [0D 20 0C, 05, 05]
-1F669; [0D 1B 43, 05, 05]
+1F654; [0D 20 13, 05, 05]
-1F66A; [0D 1B 4A, 05, 05]
+1F655; [0D 20 1A, 05, 05]
-1F66B; [0D 1B 51, 05, 05]
+1F656; [0D 20 21, 05, 05]
-1F66C; [0D 1B 58, 05, 05]
+1F657; [0D 20 28, 05, 05]
-1F66D; [0D 1B 5F, 05, 05]
+1F658; [0D 20 2F, 05, 05]
-1F66E; [0D 1B 66, 05, 05]
+1F659; [0D 20 36, 05, 05]
-1F66F; [0D 1B 6D, 05, 05]
+1F65A; [0D 20 3D, 05, 05]
-1F670; [0D 1B 74, 05, 05]
+1F65B; [0D 20 44, 05, 05]
-1F671; [0D 1B 7B, 05, 05]
+1F65C; [0D 20 4B, 05, 05]
-1F672; [0D 1B 82, 05, 05]
+1F65D; [0D 20 52, 05, 05]
-1F673; [0D 1B 89, 05, 05]
+1F65E; [0D 20 59, 05, 05]
-1F674; [0D 1B 90, 05, 05]
+1F65F; [0D 20 60, 05, 05]
-1F675; [0D 1B 97, 05, 05]
+1F660; [0D 20 67, 05, 05]
-1F676; [0D 1B 9E, 05, 05]
+1F661; [0D 20 6E, 05, 05]
-1F677; [0D 1B A5, 05, 05]
+1F662; [0D 20 75, 05, 05]
-1F678; [0D 1B AC, 05, 05]
+1F663; [0D 20 7C, 05, 05]
-1F679; [0D 1B B3, 05, 05]
+1F664; [0D 20 83, 05, 05]
-1F67A; [0D 1B BA, 05, 05]
+1F665; [0D 20 8A, 05, 05]
-1F67B; [0D 1B C1, 05, 05]
+1F666; [0D 20 91, 05, 05]
-1F67C; [0D 1B C8, 05, 05]
+1F667; [0D 20 98, 05, 05]
-1F67D; [0D 1B CF, 05, 05]
+1F668; [0D 20 9F, 05, 05]
-1F67E; [0D 1B D6, 05, 05]
+1F669; [0D 20 A6, 05, 05]
-1F67F; [0D 1B DD, 05, 05]
+1F66A; [0D 20 AD, 05, 05]
-1F680; [0D 1B E4, 05, 05]
+1F66B; [0D 20 B4, 05, 05]
-1F681; [0D 1B EB, 05, 05]
+1F66C; [0D 20 BB, 05, 05]
-1F682; [0D 1B F2, 05, 05]
+1F66D; [0D 20 C2, 05, 05]
-1F683; [0D 1B F9, 05, 05]
+1F66E; [0D 20 C9, 05, 05]
-1F684; [0D 1C 02, 05, 05]
+1F66F; [0D 20 D0, 05, 05]
-1F685; [0D 1C 09, 05, 05]
+1F670; [0D 20 D7, 05, 05]
-1F686; [0D 1C 10, 05, 05]
+1F671; [0D 20 DE, 05, 05]
-1F687; [0D 1C 17, 05, 05]
+1F672; [0D 20 E5, 05, 05]
-1F688; [0D 1C 1E, 05, 05]
+1F673; [0D 20 EC, 05, 05]
-1F689; [0D 1C 25, 05, 05]
+1F674; [0D 20 F3, 05, 05]
-1F68A; [0D 1C 2C, 05, 05]
+1F675; [0D 20 FA, 05, 05]
-1F68B; [0D 1C 33, 05, 05]
+1F676; [0D 21 03, 05, 05]
-1F68C; [0D 1C 3A, 05, 05]
+1F677; [0D 21 0A, 05, 05]
-1F68D; [0D 1C 41, 05, 05]
+1F678; [0D 21 11, 05, 05]
-1F68E; [0D 1C 48, 05, 05]
+1F679; [0D 21 18, 05, 05]
-1F68F; [0D 1C 4F, 05, 05]
+1F67A; [0D 21 1F, 05, 05]
-1F690; [0D 1C 56, 05, 05]
+1F67B; [0D 21 26, 05, 05]
-1F691; [0D 1C 5D, 05, 05]
+1F67C; [0D 21 2D, 05, 05]
-1F692; [0D 1C 64, 05, 05]
+1F67D; [0D 21 34, 05, 05]
-1F693; [0D 1C 6B, 05, 05]
+1F67E; [0D 21 3B, 05, 05]
-1F694; [0D 1C 72, 05, 05]
+1F67F; [0D 21 42, 05, 05]
-1F695; [0D 1C 79, 05, 05]
+1F680; [0D 21 49, 05, 05]
-1F696; [0D 1C 80, 05, 05]
+1F681; [0D 21 50, 05, 05]
-1F697; [0D 1C 87, 05, 05]
+1F682; [0D 21 57, 05, 05]
-1F698; [0D 1C 8E, 05, 05]
+1F683; [0D 21 5E, 05, 05]
-1F699; [0D 1C 95, 05, 05]
+1F684; [0D 21 65, 05, 05]
-1F69A; [0D 1C 9C, 05, 05]
+1F685; [0D 21 6C, 05, 05]
-1F69B; [0D 1C A3, 05, 05]
+1F686; [0D 21 73, 05, 05]
-1F69C; [0D 1C AA, 05, 05]
+1F687; [0D 21 7A, 05, 05]
-1F69D; [0D 1C B1, 05, 05]
+1F688; [0D 21 81, 05, 05]
-1F69E; [0D 1C B8, 05, 05]
+1F689; [0D 21 88, 05, 05]
-1F69F; [0D 1C BF, 05, 05]
+1F68A; [0D 21 8F, 05, 05]
-1F6A0; [0D 1C C6, 05, 05]
+1F68B; [0D 21 96, 05, 05]
-1F6A1; [0D 1C CD, 05, 05]
+1F68C; [0D 21 9D, 05, 05]
-1F6A2; [0D 1C D4, 05, 05]
+1F68D; [0D 21 A4, 05, 05]
-1F6A3; [0D 1C DB, 05, 05]
+1F68E; [0D 21 AB, 05, 05]
-1F6A4; [0D 1C E2, 05, 05]
+1F68F; [0D 21 B2, 05, 05]
-1F6A5; [0D 1C E9, 05, 05]
+1F690; [0D 21 B9, 05, 05]
-1F6A6; [0D 1C F0, 05, 05]
+1F691; [0D 21 C0, 05, 05]
-1F6A7; [0D 1C F7, 05, 05]
+1F692; [0D 21 C7, 05, 05]
-1F6A8; [0D 1C FE, 05, 05]
+1F693; [0D 21 CE, 05, 05]
-1F6A9; [0D 1D 07, 05, 05]
+1F694; [0D 21 D5, 05, 05]
-1F6AA; [0D 1D 0E, 05, 05]
+1F695; [0D 21 DC, 05, 05]
-1F6AB; [0D 1D 15, 05, 05]
+1F696; [0D 21 E3, 05, 05]
-1F6AC; [0D 1D 1C, 05, 05]
+1F697; [0D 21 EA, 05, 05]
-1F6AD; [0D 1D 23, 05, 05]
+1F698; [0D 21 F1, 05, 05]
-1F6AE; [0D 1D 2A, 05, 05]
+1F699; [0D 21 F8, 05, 05]
-1F6AF; [0D 1D 31, 05, 05]
+1F69A; [0D 21 FF, 05, 05]
-1F6B0; [0D 1D 38, 05, 05]
+1F69B; [0D 22 08, 05, 05]
-1F6B1; [0D 1D 3F, 05, 05]
+1F69C; [0D 22 0F, 05, 05]
-1F6B2; [0D 1D 46, 05, 05]
+1F69D; [0D 22 16, 05, 05]
-1F6B3; [0D 1D 4D, 05, 05]
+1F69E; [0D 22 1D, 05, 05]
-1F6B4; [0D 1D 54, 05, 05]
+1F69F; [0D 22 24, 05, 05]
-1F6B5; [0D 1D 5B, 05, 05]
+1F6A0; [0D 22 2B, 05, 05]
-1F6B6; [0D 1D 62, 05, 05]
+1F6A1; [0D 22 32, 05, 05]
-1F6B7; [0D 1D 69, 05, 05]
+1F6A2; [0D 22 39, 05, 05]
-1F6B8; [0D 1D 70, 05, 05]
+1F6A3; [0D 22 40, 05, 05]
-1F6B9; [0D 1D 77, 05, 05]
+1F6A4; [0D 22 47, 05, 05]
-1F6BA; [0D 1D 7E, 05, 05]
+1F6A5; [0D 22 4E, 05, 05]
-1F6BB; [0D 1D 85, 05, 05]
+1F6A6; [0D 22 55, 05, 05]
-1F6BC; [0D 1D 8C, 05, 05]
+1F6A7; [0D 22 5C, 05, 05]
-1F6BD; [0D 1D 93, 05, 05]
+1F6A8; [0D 22 63, 05, 05]
-1F6BE; [0D 1D 9A, 05, 05]
+1F6A9; [0D 22 6A, 05, 05]
-1F6BF; [0D 1D A1, 05, 05]
+1F6AA; [0D 22 71, 05, 05]
-1F6C0; [0D 1D A8, 05, 05]
+1F6AB; [0D 22 78, 05, 05]
-1F6C1; [0D 1D AF, 05, 05]
+1F6AC; [0D 22 7F, 05, 05]
-1F6C2; [0D 1D B6, 05, 05]
+1F6AD; [0D 22 86, 05, 05]
-1F6C3; [0D 1D BD, 05, 05]
+1F6AE; [0D 22 8D, 05, 05]
-1F6C4; [0D 1D C4, 05, 05]
+1F6AF; [0D 22 94, 05, 05]
-1F6C5; [0D 1D CB, 05, 05]
+1F6B0; [0D 22 9B, 05, 05]
-1F6C6; [0D 1D D2, 05, 05]
+1F6B1; [0D 22 A2, 05, 05]
-1F6C7; [0D 1D D9, 05, 05]
+1F6B2; [0D 22 A9, 05, 05]
-1F6C8; [0D 1D E0, 05, 05]
+1F6B3; [0D 22 B0, 05, 05]
-1F6C9; [0D 1D E7, 05, 05]
+1F6B4; [0D 22 B7, 05, 05]
-1F6CA; [0D 1D EE, 05, 05]
+1F6B5; [0D 22 BE, 05, 05]
-1F6CB; [0D 1D F5, 05, 05]
+1F6B6; [0D 22 C5, 05, 05]
-1F6CC; [0D 1D FC, 05, 05]
+1F6B7; [0D 22 CC, 05, 05]
-1F6CD; [0D 1E 05, 05, 05]
+1F6B8; [0D 22 D3, 05, 05]
-1F6CE; [0D 1E 0C, 05, 05]
+1F6B9; [0D 22 DA, 05, 05]
-1F6CF; [0D 1E 13, 05, 05]
+1F6BA; [0D 22 E1, 05, 05]
-1F6D0; [0D 1E 1A, 05, 05]
+1F6BB; [0D 22 E8, 05, 05]
-1F6D1; [0D 1E 21, 05, 05]
+1F6BC; [0D 22 EF, 05, 05]
-1F6D2; [0D 1E 28, 05, 05]
+1F6BD; [0D 22 F6, 05, 05]
-1F6D3; [0D 1E 2F, 05, 05]
+1F6BE; [0D 22 FD, 05, 05]
-1F6D4; [0D 1E 36, 05, 05]
+1F6BF; [0D 23 06, 05, 05]
-1F6E0; [0D 1E 3D, 05, 05]
+1F6C0; [0D 23 0D, 05, 05]
-1F6E1; [0D 1E 44, 05, 05]
+1F6C1; [0D 23 14, 05, 05]
-1F6E2; [0D 1E 4B, 05, 05]
+1F6C2; [0D 23 1B, 05, 05]
-1F6E3; [0D 1E 52, 05, 05]
+1F6C3; [0D 23 22, 05, 05]
-1F6E4; [0D 1E 59, 05, 05]
+1F6C4; [0D 23 29, 05, 05]
-1F6E5; [0D 1E 60, 05, 05]
+1F6C5; [0D 23 30, 05, 05]
-1F6E6; [0D 1E 67, 05, 05]
+1F6C6; [0D 23 37, 05, 05]
-1F6E7; [0D 1E 6E, 05, 05]
+1F6C7; [0D 23 3E, 05, 05]
-1F6E8; [0D 1E 75, 05, 05]
+1F6C8; [0D 23 45, 05, 05]
-1F6E9; [0D 1E 7C, 05, 05]
+1F6C9; [0D 23 4C, 05, 05]
-1F6EA; [0D 1E 83, 05, 05]
+1F6CA; [0D 23 53, 05, 05]
-1F6EB; [0D 1E 8A, 05, 05]
+1F6CB; [0D 23 5A, 05, 05]
-1F6EC; [0D 1E 91, 05, 05]
+1F6CC; [0D 23 61, 05, 05]
-1F6F0; [0D 1E 98, 05, 05]
+1F6CD; [0D 23 68, 05, 05]
-1F6F1; [0D 1E 9F, 05, 05]
+1F6CE; [0D 23 6F, 05, 05]
-1F6F2; [0D 1E A6, 05, 05]
+1F6CF; [0D 23 76, 05, 05]
-1F6F3; [0D 1E AD, 05, 05]
+1F6D0; [0D 23 7D, 05, 05]
-1F6F4; [0D 1E B4, 05, 05]
+1F6D1; [0D 23 84, 05, 05]
-1F6F5; [0D 1E BB, 05, 05]
+1F6D2; [0D 23 8B, 05, 05]
-1F6F6; [0D 1E C2, 05, 05]
+1F6D3; [0D 23 92, 05, 05]
-1F6F7; [0D 1E C9, 05, 05]
+1F6D4; [0D 23 99, 05, 05]
-1F6F8; [0D 1E D0, 05, 05]
+1F6E0; [0D 23 A0, 05, 05]
-1F700; [0D 1E D7, 05, 05]
+1F6E1; [0D 23 A7, 05, 05]
-1F701; [0D 1E DE, 05, 05]
+1F6E2; [0D 23 AE, 05, 05]
-1F702; [0D 1E E5, 05, 05]
+1F6E3; [0D 23 B5, 05, 05]
-1F703; [0D 1E EC, 05, 05]
+1F6E4; [0D 23 BC, 05, 05]
-1F704; [0D 1E F3, 05, 05]
+1F6E5; [0D 23 C3, 05, 05]
-1F705; [0D 1E FA, 05, 05]
+1F6E6; [0D 23 CA, 05, 05]
-1F706; [0D 1F 03, 05, 05]
+1F6E7; [0D 23 D1, 05, 05]
-1F707; [0D 1F 0A, 05, 05]
+1F6E8; [0D 23 D8, 05, 05]
-1F708; [0D 1F 11, 05, 05]
+1F6E9; [0D 23 DF, 05, 05]
-1F709; [0D 1F 18, 05, 05]
+1F6EA; [0D 23 E6, 05, 05]
-1F70A; [0D 1F 1F, 05, 05]
+1F6EB; [0D 23 ED, 05, 05]
-1F70B; [0D 1F 26, 05, 05]
+1F6EC; [0D 23 F4, 05, 05]
-1F70C; [0D 1F 2D, 05, 05]
+1F6F0; [0D 23 FB, 05, 05]
-1F70D; [0D 1F 34, 05, 05]
+1F6F1; [0D 24 04, 05, 05]
-1F70E; [0D 1F 3B, 05, 05]
+1F6F2; [0D 24 0B, 05, 05]
-1F70F; [0D 1F 42, 05, 05]
+1F6F3; [0D 24 12, 05, 05]
-1F710; [0D 1F 49, 05, 05]
+1F6F4; [0D 24 19, 05, 05]
-1F711; [0D 1F 50, 05, 05]
+1F6F5; [0D 24 20, 05, 05]
-1F712; [0D 1F 57, 05, 05]
+1F6F6; [0D 24 27, 05, 05]
-1F713; [0D 1F 5E, 05, 05]
+1F6F7; [0D 24 2E, 05, 05]
-1F714; [0D 1F 65, 05, 05]
+1F6F8; [0D 24 35, 05, 05]
-1F715; [0D 1F 6C, 05, 05]
+1F6F9; [0D 24 3C, 05, 05]
-1F716; [0D 1F 73, 05, 05]
+1F700; [0D 24 43, 05, 05]
-1F717; [0D 1F 7A, 05, 05]
+1F701; [0D 24 4A, 05, 05]
-1F718; [0D 1F 81, 05, 05]
+1F702; [0D 24 51, 05, 05]
-1F719; [0D 1F 88, 05, 05]
+1F703; [0D 24 58, 05, 05]
-1F71A; [0D 1F 8F, 05, 05]
+1F704; [0D 24 5F, 05, 05]
-1F71B; [0D 1F 96, 05, 05]
+1F705; [0D 24 66, 05, 05]
-1F71C; [0D 1F 9D, 05, 05]
+1F706; [0D 24 6D, 05, 05]
-1F71D; [0D 1F A4, 05, 05]
+1F707; [0D 24 74, 05, 05]
-1F71E; [0D 1F AB, 05, 05]
+1F708; [0D 24 7B, 05, 05]
-1F71F; [0D 1F B2, 05, 05]
+1F709; [0D 24 82, 05, 05]
-1F720; [0D 1F B9, 05, 05]
+1F70A; [0D 24 89, 05, 05]
-1F721; [0D 1F C0, 05, 05]
+1F70B; [0D 24 90, 05, 05]
-1F722; [0D 1F C7, 05, 05]
+1F70C; [0D 24 97, 05, 05]
-1F723; [0D 1F CE, 05, 05]
+1F70D; [0D 24 9E, 05, 05]
-1F724; [0D 1F D5, 05, 05]
+1F70E; [0D 24 A5, 05, 05]
-1F725; [0D 1F DC, 05, 05]
+1F70F; [0D 24 AC, 05, 05]
-1F726; [0D 1F E3, 05, 05]
+1F710; [0D 24 B3, 05, 05]
-1F727; [0D 1F EA, 05, 05]
+1F711; [0D 24 BA, 05, 05]
-1F728; [0D 1F F1, 05, 05]
+1F712; [0D 24 C1, 05, 05]
-1F729; [0D 1F F8, 05, 05]
+1F713; [0D 24 C8, 05, 05]
-1F72A; [0D 1F FF, 05, 05]
+1F714; [0D 24 CF, 05, 05]
-1F72B; [0D 20 08, 05, 05]
+1F715; [0D 24 D6, 05, 05]
-1F72C; [0D 20 0F, 05, 05]
+1F716; [0D 24 DD, 05, 05]
-1F72D; [0D 20 16, 05, 05]
+1F717; [0D 24 E4, 05, 05]
-1F72E; [0D 20 1D, 05, 05]
+1F718; [0D 24 EB, 05, 05]
-1F72F; [0D 20 24, 05, 05]
+1F719; [0D 24 F2, 05, 05]
-1F730; [0D 20 2B, 05, 05]
+1F71A; [0D 24 F9, 05, 05]
-1F731; [0D 20 32, 05, 05]
+1F71B; [0D 25 02, 05, 05]
-1F732; [0D 20 39, 05, 05]
+1F71C; [0D 25 09, 05, 05]
-1F733; [0D 20 40, 05, 05]
+1F71D; [0D 25 10, 05, 05]
-1F734; [0D 20 47, 05, 05]
+1F71E; [0D 25 17, 05, 05]
-1F735; [0D 20 4E, 05, 05]
+1F71F; [0D 25 1E, 05, 05]
-1F736; [0D 20 55, 05, 05]
+1F720; [0D 25 25, 05, 05]
-1F737; [0D 20 5C, 05, 05]
+1F721; [0D 25 2C, 05, 05]
-1F738; [0D 20 63, 05, 05]
+1F722; [0D 25 33, 05, 05]
-1F739; [0D 20 6A, 05, 05]
+1F723; [0D 25 3A, 05, 05]
-1F73A; [0D 20 71, 05, 05]
+1F724; [0D 25 41, 05, 05]
-1F73B; [0D 20 78, 05, 05]
+1F725; [0D 25 48, 05, 05]
-1F73C; [0D 20 7F, 05, 05]
+1F726; [0D 25 4F, 05, 05]
-1F73D; [0D 20 86, 05, 05]
+1F727; [0D 25 56, 05, 05]
-1F73E; [0D 20 8D, 05, 05]
+1F728; [0D 25 5D, 05, 05]
-1F73F; [0D 20 94, 05, 05]
+1F729; [0D 25 64, 05, 05]
-1F740; [0D 20 9B, 05, 05]
+1F72A; [0D 25 6B, 05, 05]
-1F741; [0D 20 A2, 05, 05]
+1F72B; [0D 25 72, 05, 05]
-1F742; [0D 20 A9, 05, 05]
+1F72C; [0D 25 79, 05, 05]
-1F743; [0D 20 B0, 05, 05]
+1F72D; [0D 25 80, 05, 05]
-1F744; [0D 20 B7, 05, 05]
+1F72E; [0D 25 87, 05, 05]
-1F745; [0D 20 BE, 05, 05]
+1F72F; [0D 25 8E, 05, 05]
-1F746; [0D 20 C5, 05, 05]
+1F730; [0D 25 95, 05, 05]
-1F747; [0D 20 CC, 05, 05]
+1F731; [0D 25 9C, 05, 05]
-1F748; [0D 20 D3, 05, 05]
+1F732; [0D 25 A3, 05, 05]
-1F749; [0D 20 DA, 05, 05]
+1F733; [0D 25 AA, 05, 05]
-1F74A; [0D 20 E1, 05, 05]
+1F734; [0D 25 B1, 05, 05]
-1F74B; [0D 20 E8, 05, 05]
+1F735; [0D 25 B8, 05, 05]
-1F74C; [0D 20 EF, 05, 05]
+1F736; [0D 25 BF, 05, 05]
-1F74D; [0D 20 F6, 05, 05]
+1F737; [0D 25 C6, 05, 05]
-1F74E; [0D 20 FD, 05, 05]
+1F738; [0D 25 CD, 05, 05]
-1F74F; [0D 21 06, 05, 05]
+1F739; [0D 25 D4, 05, 05]
-1F750; [0D 21 0D, 05, 05]
+1F73A; [0D 25 DB, 05, 05]
-1F751; [0D 21 14, 05, 05]
+1F73B; [0D 25 E2, 05, 05]
-1F752; [0D 21 1B, 05, 05]
+1F73C; [0D 25 E9, 05, 05]
-1F753; [0D 21 22, 05, 05]
+1F73D; [0D 25 F0, 05, 05]
-1F754; [0D 21 29, 05, 05]
+1F73E; [0D 25 F7, 05, 05]
-1F755; [0D 21 30, 05, 05]
+1F73F; [0D 25 FE, 05, 05]
-1F756; [0D 21 37, 05, 05]
+1F740; [0D 26 07, 05, 05]
-1F757; [0D 21 3E, 05, 05]
+1F741; [0D 26 0E, 05, 05]
-1F758; [0D 21 45, 05, 05]
+1F742; [0D 26 15, 05, 05]
-1F759; [0D 21 4C, 05, 05]
+1F743; [0D 26 1C, 05, 05]
-1F75A; [0D 21 53, 05, 05]
+1F744; [0D 26 23, 05, 05]
-1F75B; [0D 21 5A, 05, 05]
+1F745; [0D 26 2A, 05, 05]
-1F75C; [0D 21 61, 05, 05]
+1F746; [0D 26 31, 05, 05]
-1F75D; [0D 21 68, 05, 05]
+1F747; [0D 26 38, 05, 05]
-1F75E; [0D 21 6F, 05, 05]
+1F748; [0D 26 3F, 05, 05]
-1F75F; [0D 21 76, 05, 05]
+1F749; [0D 26 46, 05, 05]
-1F760; [0D 21 7D, 05, 05]
+1F74A; [0D 26 4D, 05, 05]
-1F761; [0D 21 84, 05, 05]
+1F74B; [0D 26 54, 05, 05]
-1F762; [0D 21 8B, 05, 05]
+1F74C; [0D 26 5B, 05, 05]
-1F763; [0D 21 92, 05, 05]
+1F74D; [0D 26 62, 05, 05]
-1F764; [0D 21 99, 05, 05]
+1F74E; [0D 26 69, 05, 05]
-1F765; [0D 21 A0, 05, 05]
+1F74F; [0D 26 70, 05, 05]
-1F766; [0D 21 A7, 05, 05]
+1F750; [0D 26 77, 05, 05]
-1F767; [0D 21 AE, 05, 05]
+1F751; [0D 26 7E, 05, 05]
-1F768; [0D 21 B5, 05, 05]
+1F752; [0D 26 85, 05, 05]
-1F769; [0D 21 BC, 05, 05]
+1F753; [0D 26 8C, 05, 05]
-1F76A; [0D 21 C3, 05, 05]
+1F754; [0D 26 93, 05, 05]
-1F76B; [0D 21 CA, 05, 05]
+1F755; [0D 26 9A, 05, 05]
-1F76C; [0D 21 D1, 05, 05]
+1F756; [0D 26 A1, 05, 05]
-1F76D; [0D 21 D8, 05, 05]
+1F757; [0D 26 A8, 05, 05]
-1F76E; [0D 21 DF, 05, 05]
+1F758; [0D 26 AF, 05, 05]
-1F76F; [0D 21 E6, 05, 05]
+1F759; [0D 26 B6, 05, 05]
-1F770; [0D 21 ED, 05, 05]
+1F75A; [0D 26 BD, 05, 05]
-1F771; [0D 21 F4, 05, 05]
+1F75B; [0D 26 C4, 05, 05]
-1F772; [0D 21 FB, 05, 05]
+1F75C; [0D 26 CB, 05, 05]
-1F773; [0D 22 04, 05, 05]
+1F75D; [0D 26 D2, 05, 05]
-1F780; [0D 22 0B, 05, 05]
+1F75E; [0D 26 D9, 05, 05]
-1F781; [0D 22 12, 05, 05]
+1F75F; [0D 26 E0, 05, 05]
-1F782; [0D 22 19, 05, 05]
+1F760; [0D 26 E7, 05, 05]
-1F783; [0D 22 20, 05, 05]
+1F761; [0D 26 EE, 05, 05]
-1F784; [0D 22 27, 05, 05]
+1F762; [0D 26 F5, 05, 05]
-1F785; [0D 22 2E, 05, 05]
+1F763; [0D 26 FC, 05, 05]
-1F786; [0D 22 35, 05, 05]
+1F764; [0D 27 05, 05, 05]
-1F787; [0D 22 3C, 05, 05]
+1F765; [0D 27 0C, 05, 05]
-1F788; [0D 22 43, 05, 05]
+1F766; [0D 27 13, 05, 05]
-1F789; [0D 22 4A, 05, 05]
+1F767; [0D 27 1A, 05, 05]
-1F78A; [0D 22 51, 05, 05]
+1F768; [0D 27 21, 05, 05]
-1F78B; [0D 22 58, 05, 05]
+1F769; [0D 27 28, 05, 05]
-1F78C; [0D 22 5F, 05, 05]
+1F76A; [0D 27 2F, 05, 05]
-1F78D; [0D 22 66, 05, 05]
+1F76B; [0D 27 36, 05, 05]
-1F78E; [0D 22 6D, 05, 05]
+1F76C; [0D 27 3D, 05, 05]
-1F78F; [0D 22 74, 05, 05]
+1F76D; [0D 27 44, 05, 05]
-1F790; [0D 22 7B, 05, 05]
+1F76E; [0D 27 4B, 05, 05]
-1F791; [0D 22 82, 05, 05]
+1F76F; [0D 27 52, 05, 05]
-1F792; [0D 22 89, 05, 05]
+1F770; [0D 27 59, 05, 05]
-1F793; [0D 22 90, 05, 05]
+1F771; [0D 27 60, 05, 05]
-1F794; [0D 22 97, 05, 05]
+1F772; [0D 27 67, 05, 05]
-1F795; [0D 22 9E, 05, 05]
+1F773; [0D 27 6E, 05, 05]
-1F796; [0D 22 A5, 05, 05]
+1F780; [0D 27 75, 05, 05]
-1F797; [0D 22 AC, 05, 05]
+1F781; [0D 27 7C, 05, 05]
-1F798; [0D 22 B3, 05, 05]
+1F782; [0D 27 83, 05, 05]
-1F799; [0D 22 BA, 05, 05]
+1F783; [0D 27 8A, 05, 05]
-1F79A; [0D 22 C1, 05, 05]
+1F784; [0D 27 91, 05, 05]
-1F79B; [0D 22 C8, 05, 05]
+1F785; [0D 27 98, 05, 05]
-1F79C; [0D 22 CF, 05, 05]
+1F786; [0D 27 9F, 05, 05]
-1F79D; [0D 22 D6, 05, 05]
+1F787; [0D 27 A6, 05, 05]
-1F79E; [0D 22 DD, 05, 05]
+1F788; [0D 27 AD, 05, 05]
-1F79F; [0D 22 E4, 05, 05]
+1F789; [0D 27 B4, 05, 05]
-1F7A0; [0D 22 EB, 05, 05]
+1F78A; [0D 27 BB, 05, 05]
-1F7A1; [0D 22 F2, 05, 05]
+1F78B; [0D 27 C2, 05, 05]
-1F7A2; [0D 22 F9, 05, 05]
+1F78C; [0D 27 C9, 05, 05]
-1F7A3; [0D 23 02, 05, 05]
+1F78D; [0D 27 D0, 05, 05]
-1F7A4; [0D 23 09, 05, 05]
+1F78E; [0D 27 D7, 05, 05]
-1F7A5; [0D 23 10, 05, 05]
+1F78F; [0D 27 DE, 05, 05]
-1F7A6; [0D 23 17, 05, 05]
+1F790; [0D 27 E5, 05, 05]
-1F7A7; [0D 23 1E, 05, 05]
+1F791; [0D 27 EC, 05, 05]
-1F7A8; [0D 23 25, 05, 05]
+1F792; [0D 27 F3, 05, 05]
-1F7A9; [0D 23 2C, 05, 05]
+1F793; [0D 27 FA, 05, 05]
-1F7AA; [0D 23 33, 05, 05]
+1F794; [0D 28 03, 05, 05]
-1F7AB; [0D 23 3A, 05, 05]
+1F795; [0D 28 0A, 05, 05]
-1F7AC; [0D 23 41, 05, 05]
+1F796; [0D 28 11, 05, 05]
-1F7AD; [0D 23 48, 05, 05]
+1F797; [0D 28 18, 05, 05]
-1F7AE; [0D 23 4F, 05, 05]
+1F798; [0D 28 1F, 05, 05]
-1F7AF; [0D 23 56, 05, 05]
+1F799; [0D 28 26, 05, 05]
-1F7B0; [0D 23 5D, 05, 05]
+1F79A; [0D 28 2D, 05, 05]
-1F7B1; [0D 23 64, 05, 05]
+1F79B; [0D 28 34, 05, 05]
-1F7B2; [0D 23 6B, 05, 05]
+1F79C; [0D 28 3B, 05, 05]
-1F7B3; [0D 23 72, 05, 05]
+1F79D; [0D 28 42, 05, 05]
-1F7B4; [0D 23 79, 05, 05]
+1F79E; [0D 28 49, 05, 05]
-1F7B5; [0D 23 80, 05, 05]
+1F79F; [0D 28 50, 05, 05]
-1F7B6; [0D 23 87, 05, 05]
+1F7A0; [0D 28 57, 05, 05]
-1F7B7; [0D 23 8E, 05, 05]
+1F7A1; [0D 28 5E, 05, 05]
-1F7B8; [0D 23 95, 05, 05]
+1F7A2; [0D 28 65, 05, 05]
-1F7B9; [0D 23 9C, 05, 05]
+1F7A3; [0D 28 6C, 05, 05]
-1F7BA; [0D 23 A3, 05, 05]
+1F7A4; [0D 28 73, 05, 05]
-1F7BB; [0D 23 AA, 05, 05]
+1F7A5; [0D 28 7A, 05, 05]
-1F7BC; [0D 23 B1, 05, 05]
+1F7A6; [0D 28 81, 05, 05]
-1F7BD; [0D 23 B8, 05, 05]
+1F7A7; [0D 28 88, 05, 05]
-1F7BE; [0D 23 BF, 05, 05]
+1F7A8; [0D 28 8F, 05, 05]
-1F7BF; [0D 23 C6, 05, 05]
+1F7A9; [0D 28 96, 05, 05]
-1F7C0; [0D 23 CD, 05, 05]
+1F7AA; [0D 28 9D, 05, 05]
-1F7C1; [0D 23 D4, 05, 05]
+1F7AB; [0D 28 A4, 05, 05]
-1F7C2; [0D 23 DB, 05, 05]
+1F7AC; [0D 28 AB, 05, 05]
-1F7C3; [0D 23 E2, 05, 05]
+1F7AD; [0D 28 B2, 05, 05]
-1F7C4; [0D 23 E9, 05, 05]
+1F7AE; [0D 28 B9, 05, 05]
-1F7C5; [0D 23 F0, 05, 05]
+1F7AF; [0D 28 C0, 05, 05]
-1F7C6; [0D 23 F7, 05, 05]
+1F7B0; [0D 28 C7, 05, 05]
-1F7C7; [0D 23 FE, 05, 05]
+1F7B1; [0D 28 CE, 05, 05]
-1F7C8; [0D 24 07, 05, 05]
+1F7B2; [0D 28 D5, 05, 05]
-1F7C9; [0D 24 0E, 05, 05]
+1F7B3; [0D 28 DC, 05, 05]
-1F7CA; [0D 24 15, 05, 05]
+1F7B4; [0D 28 E3, 05, 05]
-1F7CB; [0D 24 1C, 05, 05]
+1F7B5; [0D 28 EA, 05, 05]
-1F7CC; [0D 24 23, 05, 05]
+1F7B6; [0D 28 F1, 05, 05]
-1F7CD; [0D 24 2A, 05, 05]
+1F7B7; [0D 28 F8, 05, 05]
-1F7CE; [0D 24 31, 05, 05]
+1F7B8; [0D 28 FF, 05, 05]
-1F7CF; [0D 24 38, 05, 05]
+1F7B9; [0D 29 08, 05, 05]
-1F7D0; [0D 24 3F, 05, 05]
+1F7BA; [0D 29 0F, 05, 05]
-1F7D1; [0D 24 46, 05, 05]
+1F7BB; [0D 29 16, 05, 05]
-1F7D2; [0D 24 4D, 05, 05]
+1F7BC; [0D 29 1D, 05, 05]
-1F7D3; [0D 24 54, 05, 05]
+1F7BD; [0D 29 24, 05, 05]
-1F7D4; [0D 24 5B, 05, 05]
+1F7BE; [0D 29 2B, 05, 05]
-1F800; [0D 24 62, 05, 05]
+1F7BF; [0D 29 32, 05, 05]
-1F801; [0D 24 69, 05, 05]
+1F7C0; [0D 29 39, 05, 05]
-1F802; [0D 24 70, 05, 05]
+1F7C1; [0D 29 40, 05, 05]
-1F803; [0D 24 77, 05, 05]
+1F7C2; [0D 29 47, 05, 05]
-1F804; [0D 24 7E, 05, 05]
+1F7C3; [0D 29 4E, 05, 05]
-1F805; [0D 24 85, 05, 05]
+1F7C4; [0D 29 55, 05, 05]
-1F806; [0D 24 8C, 05, 05]
+1F7C5; [0D 29 5C, 05, 05]
-1F807; [0D 24 93, 05, 05]
+1F7C6; [0D 29 63, 05, 05]
-1F808; [0D 24 9A, 05, 05]
+1F7C7; [0D 29 6A, 05, 05]
-1F809; [0D 24 A1, 05, 05]
+1F7C8; [0D 29 71, 05, 05]
-1F80A; [0D 24 A8, 05, 05]
+1F7C9; [0D 29 78, 05, 05]
-1F80B; [0D 24 AF, 05, 05]
+1F7CA; [0D 29 7F, 05, 05]
-1F810; [0D 24 B6, 05, 05]
+1F7CB; [0D 29 86, 05, 05]
-1F811; [0D 24 BD, 05, 05]
+1F7CC; [0D 29 8D, 05, 05]
-1F812; [0D 24 C4, 05, 05]
+1F7CD; [0D 29 94, 05, 05]
-1F813; [0D 24 CB, 05, 05]
+1F7CE; [0D 29 9B, 05, 05]
-1F814; [0D 24 D2, 05, 05]
+1F7CF; [0D 29 A2, 05, 05]
-1F815; [0D 24 D9, 05, 05]
+1F7D0; [0D 29 A9, 05, 05]
-1F816; [0D 24 E0, 05, 05]
+1F7D1; [0D 29 B0, 05, 05]
-1F817; [0D 24 E7, 05, 05]
+1F7D2; [0D 29 B7, 05, 05]
-1F818; [0D 24 EE, 05, 05]
+1F7D3; [0D 29 BE, 05, 05]
-1F819; [0D 24 F5, 05, 05]
+1F7D4; [0D 29 C5, 05, 05]
-1F81A; [0D 24 FC, 05, 05]
+1F7D5; [0D 29 CC, 05, 05]
-1F81B; [0D 25 05, 05, 05]
+1F7D6; [0D 29 D3, 05, 05]
-1F81C; [0D 25 0C, 05, 05]
+1F7D7; [0D 29 DA, 05, 05]
-1F81D; [0D 25 13, 05, 05]
+1F7D8; [0D 29 E1, 05, 05]
-1F81E; [0D 25 1A, 05, 05]
+1F800; [0D 29 E8, 05, 05]
-1F81F; [0D 25 21, 05, 05]
+1F801; [0D 29 EF, 05, 05]
-1F820; [0D 25 28, 05, 05]
+1F802; [0D 29 F6, 05, 05]
-1F821; [0D 25 2F, 05, 05]
+1F803; [0D 29 FD, 05, 05]
-1F822; [0D 25 36, 05, 05]
+1F804; [0D 2A 06, 05, 05]
-1F823; [0D 25 3D, 05, 05]
+1F805; [0D 2A 0D, 05, 05]
-1F824; [0D 25 44, 05, 05]
+1F806; [0D 2A 14, 05, 05]
-1F825; [0D 25 4B, 05, 05]
+1F807; [0D 2A 1B, 05, 05]
-1F826; [0D 25 52, 05, 05]
+1F808; [0D 2A 22, 05, 05]
-1F827; [0D 25 59, 05, 05]
+1F809; [0D 2A 29, 05, 05]
-1F828; [0D 25 60, 05, 05]
+1F80A; [0D 2A 30, 05, 05]
-1F829; [0D 25 67, 05, 05]
+1F80B; [0D 2A 37, 05, 05]
-1F82A; [0D 25 6E, 05, 05]
+1F810; [0D 2A 3E, 05, 05]
-1F82B; [0D 25 75, 05, 05]
+1F811; [0D 2A 45, 05, 05]
-1F82C; [0D 25 7C, 05, 05]
+1F812; [0D 2A 4C, 05, 05]
-1F82D; [0D 25 83, 05, 05]
+1F813; [0D 2A 53, 05, 05]
-1F82E; [0D 25 8A, 05, 05]
+1F814; [0D 2A 5A, 05, 05]
-1F82F; [0D 25 91, 05, 05]
+1F815; [0D 2A 61, 05, 05]
-1F830; [0D 25 98, 05, 05]
+1F816; [0D 2A 68, 05, 05]
-1F831; [0D 25 9F, 05, 05]
+1F817; [0D 2A 6F, 05, 05]
-1F832; [0D 25 A6, 05, 05]
+1F818; [0D 2A 76, 05, 05]
-1F833; [0D 25 AD, 05, 05]
+1F819; [0D 2A 7D, 05, 05]
-1F834; [0D 25 B4, 05, 05]
+1F81A; [0D 2A 84, 05, 05]
-1F835; [0D 25 BB, 05, 05]
+1F81B; [0D 2A 8B, 05, 05]
-1F836; [0D 25 C2, 05, 05]
+1F81C; [0D 2A 92, 05, 05]
-1F837; [0D 25 C9, 05, 05]
+1F81D; [0D 2A 99, 05, 05]
-1F838; [0D 25 D0, 05, 05]
+1F81E; [0D 2A A0, 05, 05]
-1F839; [0D 25 D7, 05, 05]
+1F81F; [0D 2A A7, 05, 05]
-1F83A; [0D 25 DE, 05, 05]
+1F820; [0D 2A AE, 05, 05]
-1F83B; [0D 25 E5, 05, 05]
+1F821; [0D 2A B5, 05, 05]
-1F83C; [0D 25 EC, 05, 05]
+1F822; [0D 2A BC, 05, 05]
-1F83D; [0D 25 F3, 05, 05]
+1F823; [0D 2A C3, 05, 05]
-1F83E; [0D 25 FA, 05, 05]
+1F824; [0D 2A CA, 05, 05]
-1F83F; [0D 26 03, 05, 05]
+1F825; [0D 2A D1, 05, 05]
-1F840; [0D 26 0A, 05, 05]
+1F826; [0D 2A D8, 05, 05]
-1F841; [0D 26 11, 05, 05]
+1F827; [0D 2A DF, 05, 05]
-1F842; [0D 26 18, 05, 05]
+1F828; [0D 2A E6, 05, 05]
-1F843; [0D 26 1F, 05, 05]
+1F829; [0D 2A ED, 05, 05]
-1F844; [0D 26 26, 05, 05]
+1F82A; [0D 2A F4, 05, 05]
-1F845; [0D 26 2D, 05, 05]
+1F82B; [0D 2A FB, 05, 05]
-1F846; [0D 26 34, 05, 05]
+1F82C; [0D 2B 04, 05, 05]
-1F847; [0D 26 3B, 05, 05]
+1F82D; [0D 2B 0B, 05, 05]
-1F850; [0D 26 42, 05, 05]
+1F82E; [0D 2B 12, 05, 05]
-1F851; [0D 26 49, 05, 05]
+1F82F; [0D 2B 19, 05, 05]
-1F852; [0D 26 50, 05, 05]
+1F830; [0D 2B 20, 05, 05]
-1F853; [0D 26 57, 05, 05]
+1F831; [0D 2B 27, 05, 05]
-1F854; [0D 26 5E, 05, 05]
+1F832; [0D 2B 2E, 05, 05]
-1F855; [0D 26 65, 05, 05]
+1F833; [0D 2B 35, 05, 05]
-1F856; [0D 26 6C, 05, 05]
+1F834; [0D 2B 3C, 05, 05]
-1F857; [0D 26 73, 05, 05]
+1F835; [0D 2B 43, 05, 05]
-1F858; [0D 26 7A, 05, 05]
+1F836; [0D 2B 4A, 05, 05]
-1F859; [0D 26 81, 05, 05]
+1F837; [0D 2B 51, 05, 05]
-1F860; [0D 26 88, 05, 05]
+1F838; [0D 2B 58, 05, 05]
-1F861; [0D 26 8F, 05, 05]
+1F839; [0D 2B 5F, 05, 05]
-1F862; [0D 26 96, 05, 05]
+1F83A; [0D 2B 66, 05, 05]
-1F863; [0D 26 9D, 05, 05]
+1F83B; [0D 2B 6D, 05, 05]
-1F864; [0D 26 A4, 05, 05]
+1F83C; [0D 2B 74, 05, 05]
-1F865; [0D 26 AB, 05, 05]
+1F83D; [0D 2B 7B, 05, 05]
-1F866; [0D 26 B2, 05, 05]
+1F83E; [0D 2B 82, 05, 05]
-1F867; [0D 26 B9, 05, 05]
+1F83F; [0D 2B 89, 05, 05]
-1F868; [0D 26 C0, 05, 05]
+1F840; [0D 2B 90, 05, 05]
-1F869; [0D 26 C7, 05, 05]
+1F841; [0D 2B 97, 05, 05]
-1F86A; [0D 26 CE, 05, 05]
+1F842; [0D 2B 9E, 05, 05]
-1F86B; [0D 26 D5, 05, 05]
+1F843; [0D 2B A5, 05, 05]
-1F86C; [0D 26 DC, 05, 05]
+1F844; [0D 2B AC, 05, 05]
-1F86D; [0D 26 E3, 05, 05]
+1F845; [0D 2B B3, 05, 05]
-1F86E; [0D 26 EA, 05, 05]
+1F846; [0D 2B BA, 05, 05]
-1F86F; [0D 26 F1, 05, 05]
+1F847; [0D 2B C1, 05, 05]
-1F870; [0D 26 F8, 05, 05]
+1F850; [0D 2B C8, 05, 05]
-1F871; [0D 26 FF, 05, 05]
+1F851; [0D 2B CF, 05, 05]
-1F872; [0D 27 08, 05, 05]
+1F852; [0D 2B D6, 05, 05]
-1F873; [0D 27 0F, 05, 05]
+1F853; [0D 2B DD, 05, 05]
-1F874; [0D 27 16, 05, 05]
+1F854; [0D 2B E4, 05, 05]
-1F875; [0D 27 1D, 05, 05]
+1F855; [0D 2B EB, 05, 05]
-1F876; [0D 27 24, 05, 05]
+1F856; [0D 2B F2, 05, 05]
-1F877; [0D 27 2B, 05, 05]
+1F857; [0D 2B F9, 05, 05]
-1F878; [0D 27 32, 05, 05]
+1F858; [0D 2C 02, 05, 05]
-1F879; [0D 27 39, 05, 05]
+1F859; [0D 2C 09, 05, 05]
-1F87A; [0D 27 40, 05, 05]
+1F860; [0D 2C 10, 05, 05]
-1F87B; [0D 27 47, 05, 05]
+1F861; [0D 2C 17, 05, 05]
-1F87C; [0D 27 4E, 05, 05]
+1F862; [0D 2C 1E, 05, 05]
-1F87D; [0D 27 55, 05, 05]
+1F863; [0D 2C 25, 05, 05]
-1F87E; [0D 27 5C, 05, 05]
+1F864; [0D 2C 2C, 05, 05]
-1F87F; [0D 27 63, 05, 05]
+1F865; [0D 2C 33, 05, 05]
-1F880; [0D 27 6A, 05, 05]
+1F866; [0D 2C 3A, 05, 05]
-1F881; [0D 27 71, 05, 05]
+1F867; [0D 2C 41, 05, 05]
-1F882; [0D 27 78, 05, 05]
+1F868; [0D 2C 48, 05, 05]
-1F883; [0D 27 7F, 05, 05]
+1F869; [0D 2C 4F, 05, 05]
-1F884; [0D 27 86, 05, 05]
+1F86A; [0D 2C 56, 05, 05]
-1F885; [0D 27 8D, 05, 05]
+1F86B; [0D 2C 5D, 05, 05]
-1F886; [0D 27 94, 05, 05]
+1F86C; [0D 2C 64, 05, 05]
-1F887; [0D 27 9B, 05, 05]
+1F86D; [0D 2C 6B, 05, 05]
-1F890; [0D 27 A2, 05, 05]
+1F86E; [0D 2C 72, 05, 05]
-1F891; [0D 27 A9, 05, 05]
+1F86F; [0D 2C 79, 05, 05]
-1F892; [0D 27 B0, 05, 05]
+1F870; [0D 2C 80, 05, 05]
-1F893; [0D 27 B7, 05, 05]
+1F871; [0D 2C 87, 05, 05]
-1F894; [0D 27 BE, 05, 05]
+1F872; [0D 2C 8E, 05, 05]
-1F895; [0D 27 C5, 05, 05]
+1F873; [0D 2C 95, 05, 05]
-1F896; [0D 27 CC, 05, 05]
+1F874; [0D 2C 9C, 05, 05]
-1F897; [0D 27 D3, 05, 05]
+1F875; [0D 2C A3, 05, 05]
-1F898; [0D 27 DA, 05, 05]
+1F876; [0D 2C AA, 05, 05]
-1F899; [0D 27 E1, 05, 05]
+1F877; [0D 2C B1, 05, 05]
-1F89A; [0D 27 E8, 05, 05]
+1F878; [0D 2C B8, 05, 05]
-1F89B; [0D 27 EF, 05, 05]
+1F879; [0D 2C BF, 05, 05]
-1F89C; [0D 27 F6, 05, 05]
+1F87A; [0D 2C C6, 05, 05]
-1F89D; [0D 27 FD, 05, 05]
+1F87B; [0D 2C CD, 05, 05]
-1F89E; [0D 28 06, 05, 05]
+1F87C; [0D 2C D4, 05, 05]
-1F89F; [0D 28 0D, 05, 05]
+1F87D; [0D 2C DB, 05, 05]
-1F8A0; [0D 28 14, 05, 05]
+1F87E; [0D 2C E2, 05, 05]
-1F8A1; [0D 28 1B, 05, 05]
+1F87F; [0D 2C E9, 05, 05]
-1F8A2; [0D 28 22, 05, 05]
+1F880; [0D 2C F0, 05, 05]
-1F8A3; [0D 28 29, 05, 05]
+1F881; [0D 2C F7, 05, 05]
-1F8A4; [0D 28 30, 05, 05]
+1F882; [0D 2C FE, 05, 05]
-1F8A5; [0D 28 37, 05, 05]
+1F883; [0D 2D 07, 05, 05]
-1F8A6; [0D 28 3E, 05, 05]
+1F884; [0D 2D 0E, 05, 05]
-1F8A7; [0D 28 45, 05, 05]
+1F885; [0D 2D 15, 05, 05]
-1F8A8; [0D 28 4C, 05, 05]
+1F886; [0D 2D 1C, 05, 05]
-1F8A9; [0D 28 53, 05, 05]
+1F887; [0D 2D 23, 05, 05]
-1F8AA; [0D 28 5A, 05, 05]
+1F890; [0D 2D 2A, 05, 05]
-1F8AB; [0D 28 61, 05, 05]
+1F891; [0D 2D 31, 05, 05]
-1F8AC; [0D 28 68, 05, 05]
+1F892; [0D 2D 38, 05, 05]
-1F8AD; [0D 28 6F, 05, 05]
+1F893; [0D 2D 3F, 05, 05]
-1D800; [0D 28 76, 05, 05]
+1F894; [0D 2D 46, 05, 05]
-1D801; [0D 28 7D, 05, 05]
+1F895; [0D 2D 4D, 05, 05]
-1D802; [0D 28 84, 05, 05]
+1F896; [0D 2D 54, 05, 05]
-1D803; [0D 28 8B, 05, 05]
+1F897; [0D 2D 5B, 05, 05]
-1D804; [0D 28 92, 05, 05]
+1F898; [0D 2D 62, 05, 05]
-1D805; [0D 28 99, 05, 05]
+1F899; [0D 2D 69, 05, 05]
-1D806; [0D 28 A0, 05, 05]
+1F89A; [0D 2D 70, 05, 05]
-1D807; [0D 28 A7, 05, 05]
+1F89B; [0D 2D 77, 05, 05]
-1D808; [0D 28 AE, 05, 05]
+1F89C; [0D 2D 7E, 05, 05]
-1D809; [0D 28 B5, 05, 05]
+1F89D; [0D 2D 85, 05, 05]
-1D80A; [0D 28 BC, 05, 05]
+1F89E; [0D 2D 8C, 05, 05]
-1D80B; [0D 28 C3, 05, 05]
+1F89F; [0D 2D 93, 05, 05]
-1D80C; [0D 28 CA, 05, 05]
+1F8A0; [0D 2D 9A, 05, 05]
-1D80D; [0D 28 D1, 05, 05]
+1F8A1; [0D 2D A1, 05, 05]
-1D80E; [0D 28 D8, 05, 05]
+1F8A2; [0D 2D A8, 05, 05]
-1D80F; [0D 28 DF, 05, 05]
+1F8A3; [0D 2D AF, 05, 05]
-1D810; [0D 28 E6, 05, 05]
+1F8A4; [0D 2D B6, 05, 05]
-1D811; [0D 28 ED, 05, 05]
+1F8A5; [0D 2D BD, 05, 05]
-1D812; [0D 28 F4, 05, 05]
+1F8A6; [0D 2D C4, 05, 05]
-1D813; [0D 28 FB, 05, 05]
+1F8A7; [0D 2D CB, 05, 05]
-1D814; [0D 29 04, 05, 05]
+1F8A8; [0D 2D D2, 05, 05]
-1D815; [0D 29 0B, 05, 05]
+1F8A9; [0D 2D D9, 05, 05]
-1D816; [0D 29 12, 05, 05]
+1F8AA; [0D 2D E0, 05, 05]
-1D817; [0D 29 19, 05, 05]
+1F8AB; [0D 2D E7, 05, 05]
-1D818; [0D 29 20, 05, 05]
+1F8AC; [0D 2D EE, 05, 05]
-1D819; [0D 29 27, 05, 05]
+1F8AD; [0D 2D F5, 05, 05]
-1D81A; [0D 29 2E, 05, 05]
+1D800; [0D 2D FC, 05, 05]
-1D81B; [0D 29 35, 05, 05]
+1D801; [0D 2E 05, 05, 05]
-1D81C; [0D 29 3C, 05, 05]
+1D802; [0D 2E 0C, 05, 05]
-1D81D; [0D 29 43, 05, 05]
+1D803; [0D 2E 13, 05, 05]
-1D81E; [0D 29 4A, 05, 05]
+1D804; [0D 2E 1A, 05, 05]
-1D81F; [0D 29 51, 05, 05]
+1D805; [0D 2E 21, 05, 05]
-1D820; [0D 29 58, 05, 05]
+1D806; [0D 2E 28, 05, 05]
-1D821; [0D 29 5F, 05, 05]
+1D807; [0D 2E 2F, 05, 05]
-1D822; [0D 29 66, 05, 05]
+1D808; [0D 2E 36, 05, 05]
-1D823; [0D 29 6D, 05, 05]
+1D809; [0D 2E 3D, 05, 05]
-1D824; [0D 29 74, 05, 05]
+1D80A; [0D 2E 44, 05, 05]
-1D825; [0D 29 7B, 05, 05]
+1D80B; [0D 2E 4B, 05, 05]
-1D826; [0D 29 82, 05, 05]
+1D80C; [0D 2E 52, 05, 05]
-1D827; [0D 29 89, 05, 05]
+1D80D; [0D 2E 59, 05, 05]
-1D828; [0D 29 90, 05, 05]
+1D80E; [0D 2E 60, 05, 05]
-1D829; [0D 29 97, 05, 05]
+1D80F; [0D 2E 67, 05, 05]
-1D82A; [0D 29 9E, 05, 05]
+1D810; [0D 2E 6E, 05, 05]
-1D82B; [0D 29 A5, 05, 05]
+1D811; [0D 2E 75, 05, 05]
-1D82C; [0D 29 AC, 05, 05]
+1D812; [0D 2E 7C, 05, 05]
-1D82D; [0D 29 B3, 05, 05]
+1D813; [0D 2E 83, 05, 05]
-1D82E; [0D 29 BA, 05, 05]
+1D814; [0D 2E 8A, 05, 05]
-1D82F; [0D 29 C1, 05, 05]
+1D815; [0D 2E 91, 05, 05]
-1D830; [0D 29 C8, 05, 05]
+1D816; [0D 2E 98, 05, 05]
-1D831; [0D 29 CF, 05, 05]
+1D817; [0D 2E 9F, 05, 05]
-1D832; [0D 29 D6, 05, 05]
+1D818; [0D 2E A6, 05, 05]
-1D833; [0D 29 DD, 05, 05]
+1D819; [0D 2E AD, 05, 05]
-1D834; [0D 29 E4, 05, 05]
+1D81A; [0D 2E B4, 05, 05]
-1D835; [0D 29 EB, 05, 05]
+1D81B; [0D 2E BB, 05, 05]
-1D836; [0D 29 F2, 05, 05]
+1D81C; [0D 2E C2, 05, 05]
-1D837; [0D 29 F9, 05, 05]
+1D81D; [0D 2E C9, 05, 05]
-1D838; [0D 2A 02, 05, 05]
+1D81E; [0D 2E D0, 05, 05]
-1D839; [0D 2A 09, 05, 05]
+1D81F; [0D 2E D7, 05, 05]
-1D83A; [0D 2A 10, 05, 05]
+1D820; [0D 2E DE, 05, 05]
-1D83B; [0D 2A 17, 05, 05]
+1D821; [0D 2E E5, 05, 05]
-1D83C; [0D 2A 1E, 05, 05]
+1D822; [0D 2E EC, 05, 05]
-1D83D; [0D 2A 25, 05, 05]
+1D823; [0D 2E F3, 05, 05]
-1D83E; [0D 2A 2C, 05, 05]
+1D824; [0D 2E FA, 05, 05]
-1D83F; [0D 2A 33, 05, 05]
+1D825; [0D 2F 03, 05, 05]
-1D840; [0D 2A 3A, 05, 05]
+1D826; [0D 2F 0A, 05, 05]
-1D841; [0D 2A 41, 05, 05]
+1D827; [0D 2F 11, 05, 05]
-1D842; [0D 2A 48, 05, 05]
+1D828; [0D 2F 18, 05, 05]
-1D843; [0D 2A 4F, 05, 05]
+1D829; [0D 2F 1F, 05, 05]
-1D844; [0D 2A 56, 05, 05]
+1D82A; [0D 2F 26, 05, 05]
-1D845; [0D 2A 5D, 05, 05]
+1D82B; [0D 2F 2D, 05, 05]
-1D846; [0D 2A 64, 05, 05]
+1D82C; [0D 2F 34, 05, 05]
-1D847; [0D 2A 6B, 05, 05]
+1D82D; [0D 2F 3B, 05, 05]
-1D848; [0D 2A 72, 05, 05]
+1D82E; [0D 2F 42, 05, 05]
-1D849; [0D 2A 79, 05, 05]
+1D82F; [0D 2F 49, 05, 05]
-1D84A; [0D 2A 80, 05, 05]
+1D830; [0D 2F 50, 05, 05]
-1D84B; [0D 2A 87, 05, 05]
+1D831; [0D 2F 57, 05, 05]
-1D84C; [0D 2A 8E, 05, 05]
+1D832; [0D 2F 5E, 05, 05]
-1D84D; [0D 2A 95, 05, 05]
+1D833; [0D 2F 65, 05, 05]
-1D84E; [0D 2A 9C, 05, 05]
+1D834; [0D 2F 6C, 05, 05]
-1D84F; [0D 2A A3, 05, 05]
+1D835; [0D 2F 73, 05, 05]
-1D850; [0D 2A AA, 05, 05]
+1D836; [0D 2F 7A, 05, 05]
-1D851; [0D 2A B1, 05, 05]
+1D837; [0D 2F 81, 05, 05]
-1D852; [0D 2A B8, 05, 05]
+1D838; [0D 2F 88, 05, 05]
-1D853; [0D 2A BF, 05, 05]
+1D839; [0D 2F 8F, 05, 05]
-1D854; [0D 2A C6, 05, 05]
+1D83A; [0D 2F 96, 05, 05]
-1D855; [0D 2A CD, 05, 05]
+1D83B; [0D 2F 9D, 05, 05]
-1D856; [0D 2A D4, 05, 05]
+1D83C; [0D 2F A4, 05, 05]
-1D857; [0D 2A DB, 05, 05]
+1D83D; [0D 2F AB, 05, 05]
-1D858; [0D 2A E2, 05, 05]
+1D83E; [0D 2F B2, 05, 05]
-1D859; [0D 2A E9, 05, 05]
+1D83F; [0D 2F B9, 05, 05]
-1D85A; [0D 2A F0, 05, 05]
+1D840; [0D 2F C0, 05, 05]
-1D85B; [0D 2A F7, 05, 05]
+1D841; [0D 2F C7, 05, 05]
-1D85C; [0D 2A FE, 05, 05]
+1D842; [0D 2F CE, 05, 05]
-1D85D; [0D 2B 07, 05, 05]
+1D843; [0D 2F D5, 05, 05]
-1D85E; [0D 2B 0E, 05, 05]
+1D844; [0D 2F DC, 05, 05]
-1D85F; [0D 2B 15, 05, 05]
+1D845; [0D 2F E3, 05, 05]
-1D860; [0D 2B 1C, 05, 05]
+1D846; [0D 2F EA, 05, 05]
-1D861; [0D 2B 23, 05, 05]
+1D847; [0D 2F F1, 05, 05]
-1D862; [0D 2B 2A, 05, 05]
+1D848; [0D 2F F8, 05, 05]
-1D863; [0D 2B 31, 05, 05]
+1D849; [0D 2F FF, 05, 05]
-1D864; [0D 2B 38, 05, 05]
+1D84A; [0D 30 08, 05, 05]
-1D865; [0D 2B 3F, 05, 05]
+1D84B; [0D 30 0F, 05, 05]
-1D866; [0D 2B 46, 05, 05]
+1D84C; [0D 30 16, 05, 05]
-1D867; [0D 2B 4D, 05, 05]
+1D84D; [0D 30 1D, 05, 05]
-1D868; [0D 2B 54, 05, 05]
+1D84E; [0D 30 24, 05, 05]
-1D869; [0D 2B 5B, 05, 05]
+1D84F; [0D 30 2B, 05, 05]
-1D86A; [0D 2B 62, 05, 05]
+1D850; [0D 30 32, 05, 05]
-1D86B; [0D 2B 69, 05, 05]
+1D851; [0D 30 39, 05, 05]
-1D86C; [0D 2B 70, 05, 05]
+1D852; [0D 30 40, 05, 05]
-1D86D; [0D 2B 77, 05, 05]
+1D853; [0D 30 47, 05, 05]
-1D86E; [0D 2B 7E, 05, 05]
+1D854; [0D 30 4E, 05, 05]
-1D86F; [0D 2B 85, 05, 05]
+1D855; [0D 30 55, 05, 05]
-1D870; [0D 2B 8C, 05, 05]
+1D856; [0D 30 5C, 05, 05]
-1D871; [0D 2B 93, 05, 05]
+1D857; [0D 30 63, 05, 05]
-1D872; [0D 2B 9A, 05, 05]
+1D858; [0D 30 6A, 05, 05]
-1D873; [0D 2B A1, 05, 05]
+1D859; [0D 30 71, 05, 05]
-1D874; [0D 2B A8, 05, 05]
+1D85A; [0D 30 78, 05, 05]
-1D875; [0D 2B AF, 05, 05]
+1D85B; [0D 30 7F, 05, 05]
-1D876; [0D 2B B6, 05, 05]
+1D85C; [0D 30 86, 05, 05]
-1D877; [0D 2B BD, 05, 05]
+1D85D; [0D 30 8D, 05, 05]
-1D878; [0D 2B C4, 05, 05]
+1D85E; [0D 30 94, 05, 05]
-1D879; [0D 2B CB, 05, 05]
+1D85F; [0D 30 9B, 05, 05]
-1D87A; [0D 2B D2, 05, 05]
+1D860; [0D 30 A2, 05, 05]
-1D87B; [0D 2B D9, 05, 05]
+1D861; [0D 30 A9, 05, 05]
-1D87C; [0D 2B E0, 05, 05]
+1D862; [0D 30 B0, 05, 05]
-1D87D; [0D 2B E7, 05, 05]
+1D863; [0D 30 B7, 05, 05]
-1D87E; [0D 2B EE, 05, 05]
+1D864; [0D 30 BE, 05, 05]
-1D87F; [0D 2B F5, 05, 05]
+1D865; [0D 30 C5, 05, 05]
-1D880; [0D 2B FC, 05, 05]
+1D866; [0D 30 CC, 05, 05]
-1D881; [0D 2C 05, 05, 05]
+1D867; [0D 30 D3, 05, 05]
-1D882; [0D 2C 0C, 05, 05]
+1D868; [0D 30 DA, 05, 05]
-1D883; [0D 2C 13, 05, 05]
+1D869; [0D 30 E1, 05, 05]
-1D884; [0D 2C 1A, 05, 05]
+1D86A; [0D 30 E8, 05, 05]
-1D885; [0D 2C 21, 05, 05]
+1D86B; [0D 30 EF, 05, 05]
-1D886; [0D 2C 28, 05, 05]
+1D86C; [0D 30 F6, 05, 05]
-1D887; [0D 2C 2F, 05, 05]
+1D86D; [0D 30 FD, 05, 05]
-1D888; [0D 2C 36, 05, 05]
+1D86E; [0D 31 06, 05, 05]
-1D889; [0D 2C 3D, 05, 05]
+1D86F; [0D 31 0D, 05, 05]
-1D88A; [0D 2C 44, 05, 05]
+1D870; [0D 31 14, 05, 05]
-1D88B; [0D 2C 4B, 05, 05]
+1D871; [0D 31 1B, 05, 05]
-1D88C; [0D 2C 52, 05, 05]
+1D872; [0D 31 22, 05, 05]
-1D88D; [0D 2C 59, 05, 05]
+1D873; [0D 31 29, 05, 05]
-1D88E; [0D 2C 60, 05, 05]
+1D874; [0D 31 30, 05, 05]
-1D88F; [0D 2C 67, 05, 05]
+1D875; [0D 31 37, 05, 05]
-1D890; [0D 2C 6E, 05, 05]
+1D876; [0D 31 3E, 05, 05]
-1D891; [0D 2C 75, 05, 05]
+1D877; [0D 31 45, 05, 05]
-1D892; [0D 2C 7C, 05, 05]
+1D878; [0D 31 4C, 05, 05]
-1D893; [0D 2C 83, 05, 05]
+1D879; [0D 31 53, 05, 05]
-1D894; [0D 2C 8A, 05, 05]
+1D87A; [0D 31 5A, 05, 05]
-1D895; [0D 2C 91, 05, 05]
+1D87B; [0D 31 61, 05, 05]
-1D896; [0D 2C 98, 05, 05]
+1D87C; [0D 31 68, 05, 05]
-1D897; [0D 2C 9F, 05, 05]
+1D87D; [0D 31 6F, 05, 05]
-1D898; [0D 2C A6, 05, 05]
+1D87E; [0D 31 76, 05, 05]
-1D899; [0D 2C AD, 05, 05]
+1D87F; [0D 31 7D, 05, 05]
-1D89A; [0D 2C B4, 05, 05]
+1D880; [0D 31 84, 05, 05]
-1D89B; [0D 2C BB, 05, 05]
+1D881; [0D 31 8B, 05, 05]
-1D89C; [0D 2C C2, 05, 05]
+1D882; [0D 31 92, 05, 05]
-1D89D; [0D 2C C9, 05, 05]
+1D883; [0D 31 99, 05, 05]
-1D89E; [0D 2C D0, 05, 05]
+1D884; [0D 31 A0, 05, 05]
-1D89F; [0D 2C D7, 05, 05]
+1D885; [0D 31 A7, 05, 05]
-1D8A0; [0D 2C DE, 05, 05]
+1D886; [0D 31 AE, 05, 05]
-1D8A1; [0D 2C E5, 05, 05]
+1D887; [0D 31 B5, 05, 05]
-1D8A2; [0D 2C EC, 05, 05]
+1D888; [0D 31 BC, 05, 05]
-1D8A3; [0D 2C F3, 05, 05]
+1D889; [0D 31 C3, 05, 05]
-1D8A4; [0D 2C FA, 05, 05]
+1D88A; [0D 31 CA, 05, 05]
-1D8A5; [0D 2D 03, 05, 05]
+1D88B; [0D 31 D1, 05, 05]
-1D8A6; [0D 2D 0A, 05, 05]
+1D88C; [0D 31 D8, 05, 05]
-1D8A7; [0D 2D 11, 05, 05]
+1D88D; [0D 31 DF, 05, 05]
-1D8A8; [0D 2D 18, 05, 05]
+1D88E; [0D 31 E6, 05, 05]
-1D8A9; [0D 2D 1F, 05, 05]
+1D88F; [0D 31 ED, 05, 05]
-1D8AA; [0D 2D 26, 05, 05]
+1D890; [0D 31 F4, 05, 05]
-1D8AB; [0D 2D 2D, 05, 05]
+1D891; [0D 31 FB, 05, 05]
-1D8AC; [0D 2D 34, 05, 05]
+1D892; [0D 32 04, 05, 05]
-1D8AD; [0D 2D 3B, 05, 05]
+1D893; [0D 32 0B, 05, 05]
-1D8AE; [0D 2D 42, 05, 05]
+1D894; [0D 32 12, 05, 05]
-1D8AF; [0D 2D 49, 05, 05]
+1D895; [0D 32 19, 05, 05]
-1D8B0; [0D 2D 50, 05, 05]
+1D896; [0D 32 20, 05, 05]
-1D8B1; [0D 2D 57, 05, 05]
+1D897; [0D 32 27, 05, 05]
-1D8B2; [0D 2D 5E, 05, 05]
+1D898; [0D 32 2E, 05, 05]
-1D8B3; [0D 2D 65, 05, 05]
+1D899; [0D 32 35, 05, 05]
-1D8B4; [0D 2D 6C, 05, 05]
+1D89A; [0D 32 3C, 05, 05]
-1D8B5; [0D 2D 73, 05, 05]
+1D89B; [0D 32 43, 05, 05]
-1D8B6; [0D 2D 7A, 05, 05]
+1D89C; [0D 32 4A, 05, 05]
-1D8B7; [0D 2D 81, 05, 05]
+1D89D; [0D 32 51, 05, 05]
-1D8B8; [0D 2D 88, 05, 05]
+1D89E; [0D 32 58, 05, 05]
-1D8B9; [0D 2D 8F, 05, 05]
+1D89F; [0D 32 5F, 05, 05]
-1D8BA; [0D 2D 96, 05, 05]
+1D8A0; [0D 32 66, 05, 05]
-1D8BB; [0D 2D 9D, 05, 05]
+1D8A1; [0D 32 6D, 05, 05]
-1D8BC; [0D 2D A4, 05, 05]
+1D8A2; [0D 32 74, 05, 05]
-1D8BD; [0D 2D AB, 05, 05]
+1D8A3; [0D 32 7B, 05, 05]
-1D8BE; [0D 2D B2, 05, 05]
+1D8A4; [0D 32 82, 05, 05]
-1D8BF; [0D 2D B9, 05, 05]
+1D8A5; [0D 32 89, 05, 05]
-1D8C0; [0D 2D C0, 05, 05]
+1D8A6; [0D 32 90, 05, 05]
-1D8C1; [0D 2D C7, 05, 05]
+1D8A7; [0D 32 97, 05, 05]
-1D8C2; [0D 2D CE, 05, 05]
+1D8A8; [0D 32 9E, 05, 05]
-1D8C3; [0D 2D D5, 05, 05]
+1D8A9; [0D 32 A5, 05, 05]
-1D8C4; [0D 2D DC, 05, 05]
+1D8AA; [0D 32 AC, 05, 05]
-1D8C5; [0D 2D E3, 05, 05]
+1D8AB; [0D 32 B3, 05, 05]
-1D8C6; [0D 2D EA, 05, 05]
+1D8AC; [0D 32 BA, 05, 05]
-1D8C7; [0D 2D F1, 05, 05]
+1D8AD; [0D 32 C1, 05, 05]
-1D8C8; [0D 2D F8, 05, 05]
+1D8AE; [0D 32 C8, 05, 05]
-1D8C9; [0D 2D FF, 05, 05]
+1D8AF; [0D 32 CF, 05, 05]
-1D8CA; [0D 2E 08, 05, 05]
+1D8B0; [0D 32 D6, 05, 05]
-1D8CB; [0D 2E 0F, 05, 05]
+1D8B1; [0D 32 DD, 05, 05]
-1D8CC; [0D 2E 16, 05, 05]
+1D8B2; [0D 32 E4, 05, 05]
-1D8CD; [0D 2E 1D, 05, 05]
+1D8B3; [0D 32 EB, 05, 05]
-1D8CE; [0D 2E 24, 05, 05]
+1D8B4; [0D 32 F2, 05, 05]
-1D8CF; [0D 2E 2B, 05, 05]
+1D8B5; [0D 32 F9, 05, 05]
-1D8D0; [0D 2E 32, 05, 05]
+1D8B6; [0D 33 02, 05, 05]
-1D8D1; [0D 2E 39, 05, 05]
+1D8B7; [0D 33 09, 05, 05]
-1D8D2; [0D 2E 40, 05, 05]
+1D8B8; [0D 33 10, 05, 05]
-1D8D3; [0D 2E 47, 05, 05]
+1D8B9; [0D 33 17, 05, 05]
-1D8D4; [0D 2E 4E, 05, 05]
+1D8BA; [0D 33 1E, 05, 05]
-1D8D5; [0D 2E 55, 05, 05]
+1D8BB; [0D 33 25, 05, 05]
-1D8D6; [0D 2E 5C, 05, 05]
+1D8BC; [0D 33 2C, 05, 05]
-1D8D7; [0D 2E 63, 05, 05]
+1D8BD; [0D 33 33, 05, 05]
-1D8D8; [0D 2E 6A, 05, 05]
+1D8BE; [0D 33 3A, 05, 05]
-1D8D9; [0D 2E 71, 05, 05]
+1D8BF; [0D 33 41, 05, 05]
-1D8DA; [0D 2E 78, 05, 05]
+1D8C0; [0D 33 48, 05, 05]
-1D8DB; [0D 2E 7F, 05, 05]
+1D8C1; [0D 33 4F, 05, 05]
-1D8DC; [0D 2E 86, 05, 05]
+1D8C2; [0D 33 56, 05, 05]
-1D8DD; [0D 2E 8D, 05, 05]
+1D8C3; [0D 33 5D, 05, 05]
-1D8DE; [0D 2E 94, 05, 05]
+1D8C4; [0D 33 64, 05, 05]
-1D8DF; [0D 2E 9B, 05, 05]
+1D8C5; [0D 33 6B, 05, 05]
-1D8E0; [0D 2E A2, 05, 05]
+1D8C6; [0D 33 72, 05, 05]
-1D8E1; [0D 2E A9, 05, 05]
+1D8C7; [0D 33 79, 05, 05]
-1D8E2; [0D 2E B0, 05, 05]
+1D8C8; [0D 33 80, 05, 05]
-1D8E3; [0D 2E B7, 05, 05]
+1D8C9; [0D 33 87, 05, 05]
-1D8E4; [0D 2E BE, 05, 05]
+1D8CA; [0D 33 8E, 05, 05]
-1D8E5; [0D 2E C5, 05, 05]
+1D8CB; [0D 33 95, 05, 05]
-1D8E6; [0D 2E CC, 05, 05]
+1D8CC; [0D 33 9C, 05, 05]
-1D8E7; [0D 2E D3, 05, 05]
+1D8CD; [0D 33 A3, 05, 05]
-1D8E8; [0D 2E DA, 05, 05]
+1D8CE; [0D 33 AA, 05, 05]
-1D8E9; [0D 2E E1, 05, 05]
+1D8CF; [0D 33 B1, 05, 05]
-1D8EA; [0D 2E E8, 05, 05]
+1D8D0; [0D 33 B8, 05, 05]
-1D8EB; [0D 2E EF, 05, 05]
+1D8D1; [0D 33 BF, 05, 05]
-1D8EC; [0D 2E F6, 05, 05]
+1D8D2; [0D 33 C6, 05, 05]
-1D8ED; [0D 2E FD, 05, 05]
+1D8D3; [0D 33 CD, 05, 05]
-1D8EE; [0D 2F 06, 05, 05]
+1D8D4; [0D 33 D4, 05, 05]
-1D8EF; [0D 2F 0D, 05, 05]
+1D8D5; [0D 33 DB, 05, 05]
-1D8F0; [0D 2F 14, 05, 05]
+1D8D6; [0D 33 E2, 05, 05]
-1D8F1; [0D 2F 1B, 05, 05]
+1D8D7; [0D 33 E9, 05, 05]
-1D8F2; [0D 2F 22, 05, 05]
+1D8D8; [0D 33 F0, 05, 05]
-1D8F3; [0D 2F 29, 05, 05]
+1D8D9; [0D 33 F7, 05, 05]
-1D8F4; [0D 2F 30, 05, 05]
+1D8DA; [0D 33 FE, 05, 05]
-1D8F5; [0D 2F 37, 05, 05]
+1D8DB; [0D 34 07, 05, 05]
-1D8F6; [0D 2F 3E, 05, 05]
+1D8DC; [0D 34 0E, 05, 05]
-1D8F7; [0D 2F 45, 05, 05]
+1D8DD; [0D 34 15, 05, 05]
-1D8F8; [0D 2F 4C, 05, 05]
+1D8DE; [0D 34 1C, 05, 05]
-1D8F9; [0D 2F 53, 05, 05]
+1D8DF; [0D 34 23, 05, 05]
-1D8FA; [0D 2F 5A, 05, 05]
+1D8E0; [0D 34 2A, 05, 05]
-1D8FB; [0D 2F 61, 05, 05]
+1D8E1; [0D 34 31, 05, 05]
-1D8FC; [0D 2F 68, 05, 05]
+1D8E2; [0D 34 38, 05, 05]
-1D8FD; [0D 2F 6F, 05, 05]
+1D8E3; [0D 34 3F, 05, 05]
-1D8FE; [0D 2F 76, 05, 05]
+1D8E4; [0D 34 46, 05, 05]
-1D8FF; [0D 2F 7D, 05, 05]
+1D8E5; [0D 34 4D, 05, 05]
-1D900; [0D 2F 84, 05, 05]
+1D8E6; [0D 34 54, 05, 05]
-1D901; [0D 2F 8B, 05, 05]
+1D8E7; [0D 34 5B, 05, 05]
-1D902; [0D 2F 92, 05, 05]
+1D8E8; [0D 34 62, 05, 05]
-1D903; [0D 2F 99, 05, 05]
+1D8E9; [0D 34 69, 05, 05]
-1D904; [0D 2F A0, 05, 05]
+1D8EA; [0D 34 70, 05, 05]
-1D905; [0D 2F A7, 05, 05]
+1D8EB; [0D 34 77, 05, 05]
-1D906; [0D 2F AE, 05, 05]
+1D8EC; [0D 34 7E, 05, 05]
-1D907; [0D 2F B5, 05, 05]
+1D8ED; [0D 34 85, 05, 05]
-1D908; [0D 2F BC, 05, 05]
+1D8EE; [0D 34 8C, 05, 05]
-1D909; [0D 2F C3, 05, 05]
+1D8EF; [0D 34 93, 05, 05]
-1D90A; [0D 2F CA, 05, 05]
+1D8F0; [0D 34 9A, 05, 05]
-1D90B; [0D 2F D1, 05, 05]
+1D8F1; [0D 34 A1, 05, 05]
-1D90C; [0D 2F D8, 05, 05]
+1D8F2; [0D 34 A8, 05, 05]
-1D90D; [0D 2F DF, 05, 05]
+1D8F3; [0D 34 AF, 05, 05]
-1D90E; [0D 2F E6, 05, 05]
+1D8F4; [0D 34 B6, 05, 05]
-1D90F; [0D 2F ED, 05, 05]
+1D8F5; [0D 34 BD, 05, 05]
-1D910; [0D 2F F4, 05, 05]
+1D8F6; [0D 34 C4, 05, 05]
-1D911; [0D 2F FB, 05, 05]
+1D8F7; [0D 34 CB, 05, 05]
-1D912; [0D 30 04, 05, 05]
+1D8F8; [0D 34 D2, 05, 05]
-1D913; [0D 30 0B, 05, 05]
+1D8F9; [0D 34 D9, 05, 05]
-1D914; [0D 30 12, 05, 05]
+1D8FA; [0D 34 E0, 05, 05]
-1D915; [0D 30 19, 05, 05]
+1D8FB; [0D 34 E7, 05, 05]
-1D916; [0D 30 20, 05, 05]
+1D8FC; [0D 34 EE, 05, 05]
-1D917; [0D 30 27, 05, 05]
+1D8FD; [0D 34 F5, 05, 05]
-1D918; [0D 30 2E, 05, 05]
+1D8FE; [0D 34 FC, 05, 05]
-1D919; [0D 30 35, 05, 05]
+1D8FF; [0D 35 05, 05, 05]
-1D91A; [0D 30 3C, 05, 05]
+1D900; [0D 35 0C, 05, 05]
-1D91B; [0D 30 43, 05, 05]
+1D901; [0D 35 13, 05, 05]
-1D91C; [0D 30 4A, 05, 05]
+1D902; [0D 35 1A, 05, 05]
-1D91D; [0D 30 51, 05, 05]
+1D903; [0D 35 21, 05, 05]
-1D91E; [0D 30 58, 05, 05]
+1D904; [0D 35 28, 05, 05]
-1D91F; [0D 30 5F, 05, 05]
+1D905; [0D 35 2F, 05, 05]
-1D920; [0D 30 66, 05, 05]
+1D906; [0D 35 36, 05, 05]
-1D921; [0D 30 6D, 05, 05]
+1D907; [0D 35 3D, 05, 05]
-1D922; [0D 30 74, 05, 05]
+1D908; [0D 35 44, 05, 05]
-1D923; [0D 30 7B, 05, 05]
+1D909; [0D 35 4B, 05, 05]
-1D924; [0D 30 82, 05, 05]
+1D90A; [0D 35 52, 05, 05]
-1D925; [0D 30 89, 05, 05]
+1D90B; [0D 35 59, 05, 05]
-1D926; [0D 30 90, 05, 05]
+1D90C; [0D 35 60, 05, 05]
-1D927; [0D 30 97, 05, 05]
+1D90D; [0D 35 67, 05, 05]
-1D928; [0D 30 9E, 05, 05]
+1D90E; [0D 35 6E, 05, 05]
-1D929; [0D 30 A5, 05, 05]
+1D90F; [0D 35 75, 05, 05]
-1D92A; [0D 30 AC, 05, 05]
+1D910; [0D 35 7C, 05, 05]
-1D92B; [0D 30 B3, 05, 05]
+1D911; [0D 35 83, 05, 05]
-1D92C; [0D 30 BA, 05, 05]
+1D912; [0D 35 8A, 05, 05]
-1D92D; [0D 30 C1, 05, 05]
+1D913; [0D 35 91, 05, 05]
-1D92E; [0D 30 C8, 05, 05]
+1D914; [0D 35 98, 05, 05]
-1D92F; [0D 30 CF, 05, 05]
+1D915; [0D 35 9F, 05, 05]
-1D930; [0D 30 D6, 05, 05]
+1D916; [0D 35 A6, 05, 05]
-1D931; [0D 30 DD, 05, 05]
+1D917; [0D 35 AD, 05, 05]
-1D932; [0D 30 E4, 05, 05]
+1D918; [0D 35 B4, 05, 05]
-1D933; [0D 30 EB, 05, 05]
+1D919; [0D 35 BB, 05, 05]
-1D934; [0D 30 F2, 05, 05]
+1D91A; [0D 35 C2, 05, 05]
-1D935; [0D 30 F9, 05, 05]
+1D91B; [0D 35 C9, 05, 05]
-1D936; [0D 31 02, 05, 05]
+1D91C; [0D 35 D0, 05, 05]
-1D937; [0D 31 09, 05, 05]
+1D91D; [0D 35 D7, 05, 05]
-1D938; [0D 31 10, 05, 05]
+1D91E; [0D 35 DE, 05, 05]
-1D939; [0D 31 17, 05, 05]
+1D91F; [0D 35 E5, 05, 05]
-1D93A; [0D 31 1E, 05, 05]
+1D920; [0D 35 EC, 05, 05]
-1D93B; [0D 31 25, 05, 05]
+1D921; [0D 35 F3, 05, 05]
-1D93C; [0D 31 2C, 05, 05]
+1D922; [0D 35 FA, 05, 05]
-1D93D; [0D 31 33, 05, 05]
+1D923; [0D 36 03, 05, 05]
-1D93E; [0D 31 3A, 05, 05]
+1D924; [0D 36 0A, 05, 05]
-1D93F; [0D 31 41, 05, 05]
+1D925; [0D 36 11, 05, 05]
-1D940; [0D 31 48, 05, 05]
+1D926; [0D 36 18, 05, 05]
-1D941; [0D 31 4F, 05, 05]
+1D927; [0D 36 1F, 05, 05]
-1D942; [0D 31 56, 05, 05]
+1D928; [0D 36 26, 05, 05]
-1D943; [0D 31 5D, 05, 05]
+1D929; [0D 36 2D, 05, 05]
-1D944; [0D 31 64, 05, 05]
+1D92A; [0D 36 34, 05, 05]
-1D945; [0D 31 6B, 05, 05]
+1D92B; [0D 36 3B, 05, 05]
-1D946; [0D 31 72, 05, 05]
+1D92C; [0D 36 42, 05, 05]
-1D947; [0D 31 79, 05, 05]
+1D92D; [0D 36 49, 05, 05]
-1D948; [0D 31 80, 05, 05]
+1D92E; [0D 36 50, 05, 05]
-1D949; [0D 31 87, 05, 05]
+1D92F; [0D 36 57, 05, 05]
-1D94A; [0D 31 8E, 05, 05]
+1D930; [0D 36 5E, 05, 05]
-1D94B; [0D 31 95, 05, 05]
+1D931; [0D 36 65, 05, 05]
-1D94C; [0D 31 9C, 05, 05]
+1D932; [0D 36 6C, 05, 05]
-1D94D; [0D 31 A3, 05, 05]
+1D933; [0D 36 73, 05, 05]
-1D94E; [0D 31 AA, 05, 05]
+1D934; [0D 36 7A, 05, 05]
-1D94F; [0D 31 B1, 05, 05]
+1D935; [0D 36 81, 05, 05]
-1D950; [0D 31 B8, 05, 05]
+1D936; [0D 36 88, 05, 05]
-1D951; [0D 31 BF, 05, 05]
+1D937; [0D 36 8F, 05, 05]
-1D952; [0D 31 C6, 05, 05]
+1D938; [0D 36 96, 05, 05]
-1D953; [0D 31 CD, 05, 05]
+1D939; [0D 36 9D, 05, 05]
-1D954; [0D 31 D4, 05, 05]
+1D93A; [0D 36 A4, 05, 05]
-1D955; [0D 31 DB, 05, 05]
+1D93B; [0D 36 AB, 05, 05]
-1D956; [0D 31 E2, 05, 05]
+1D93C; [0D 36 B2, 05, 05]
-1D957; [0D 31 E9, 05, 05]
+1D93D; [0D 36 B9, 05, 05]
-1D958; [0D 31 F0, 05, 05]
+1D93E; [0D 36 C0, 05, 05]
-1D959; [0D 31 F7, 05, 05]
+1D93F; [0D 36 C7, 05, 05]
-1D95A; [0D 31 FE, 05, 05]
+1D940; [0D 36 CE, 05, 05]
-1D95B; [0D 32 07, 05, 05]
+1D941; [0D 36 D5, 05, 05]
-1D95C; [0D 32 0E, 05, 05]
+1D942; [0D 36 DC, 05, 05]
-1D95D; [0D 32 15, 05, 05]
+1D943; [0D 36 E3, 05, 05]
-1D95E; [0D 32 1C, 05, 05]
+1D944; [0D 36 EA, 05, 05]
-1D95F; [0D 32 23, 05, 05]
+1D945; [0D 36 F1, 05, 05]
-1D960; [0D 32 2A, 05, 05]
+1D946; [0D 36 F8, 05, 05]
-1D961; [0D 32 31, 05, 05]
+1D947; [0D 36 FF, 05, 05]
-1D962; [0D 32 38, 05, 05]
+1D948; [0D 37 08, 05, 05]
-1D963; [0D 32 3F, 05, 05]
+1D949; [0D 37 0F, 05, 05]
-1D964; [0D 32 46, 05, 05]
+1D94A; [0D 37 16, 05, 05]
-1D965; [0D 32 4D, 05, 05]
+1D94B; [0D 37 1D, 05, 05]
-1D966; [0D 32 54, 05, 05]
+1D94C; [0D 37 24, 05, 05]
-1D967; [0D 32 5B, 05, 05]
+1D94D; [0D 37 2B, 05, 05]
-1D968; [0D 32 62, 05, 05]
+1D94E; [0D 37 32, 05, 05]
-1D969; [0D 32 69, 05, 05]
+1D94F; [0D 37 39, 05, 05]
-1D96A; [0D 32 70, 05, 05]
+1D950; [0D 37 40, 05, 05]
-1D96B; [0D 32 77, 05, 05]
+1D951; [0D 37 47, 05, 05]
-1D96C; [0D 32 7E, 05, 05]
+1D952; [0D 37 4E, 05, 05]
-1D96D; [0D 32 85, 05, 05]
+1D953; [0D 37 55, 05, 05]
-1D96E; [0D 32 8C, 05, 05]
+1D954; [0D 37 5C, 05, 05]
-1D96F; [0D 32 93, 05, 05]
+1D955; [0D 37 63, 05, 05]
-1D970; [0D 32 9A, 05, 05]
+1D956; [0D 37 6A, 05, 05]
-1D971; [0D 32 A1, 05, 05]
+1D957; [0D 37 71, 05, 05]
-1D972; [0D 32 A8, 05, 05]
+1D958; [0D 37 78, 05, 05]
-1D973; [0D 32 AF, 05, 05]
+1D959; [0D 37 7F, 05, 05]
-1D974; [0D 32 B6, 05, 05]
+1D95A; [0D 37 86, 05, 05]
-1D975; [0D 32 BD, 05, 05]
+1D95B; [0D 37 8D, 05, 05]
-1D976; [0D 32 C4, 05, 05]
+1D95C; [0D 37 94, 05, 05]
-1D977; [0D 32 CB, 05, 05]
+1D95D; [0D 37 9B, 05, 05]
-1D978; [0D 32 D2, 05, 05]
+1D95E; [0D 37 A2, 05, 05]
-1D979; [0D 32 D9, 05, 05]
+1D95F; [0D 37 A9, 05, 05]
-1D97A; [0D 32 E0, 05, 05]
+1D960; [0D 37 B0, 05, 05]
-1D97B; [0D 32 E7, 05, 05]
+1D961; [0D 37 B7, 05, 05]
-1D97C; [0D 32 EE, 05, 05]
+1D962; [0D 37 BE, 05, 05]
-1D97D; [0D 32 F5, 05, 05]
+1D963; [0D 37 C5, 05, 05]
-1D97E; [0D 32 FC, 05, 05]
+1D964; [0D 37 CC, 05, 05]
-1D97F; [0D 33 05, 05, 05]
+1D965; [0D 37 D3, 05, 05]
-1D980; [0D 33 0C, 05, 05]
+1D966; [0D 37 DA, 05, 05]
-1D981; [0D 33 13, 05, 05]
+1D967; [0D 37 E1, 05, 05]
-1D982; [0D 33 1A, 05, 05]
+1D968; [0D 37 E8, 05, 05]
-1D983; [0D 33 21, 05, 05]
+1D969; [0D 37 EF, 05, 05]
-1D984; [0D 33 28, 05, 05]
+1D96A; [0D 37 F6, 05, 05]
-1D985; [0D 33 2F, 05, 05]
+1D96B; [0D 37 FD, 05, 05]
-1D986; [0D 33 36, 05, 05]
+1D96C; [0D 38 06, 05, 05]
-1D987; [0D 33 3D, 05, 05]
+1D96D; [0D 38 0D, 05, 05]
-1D988; [0D 33 44, 05, 05]
+1D96E; [0D 38 14, 05, 05]
-1D989; [0D 33 4B, 05, 05]
+1D96F; [0D 38 1B, 05, 05]
-1D98A; [0D 33 52, 05, 05]
+1D970; [0D 38 22, 05, 05]
-1D98B; [0D 33 59, 05, 05]
+1D971; [0D 38 29, 05, 05]
-1D98C; [0D 33 60, 05, 05]
+1D972; [0D 38 30, 05, 05]
-1D98D; [0D 33 67, 05, 05]
+1D973; [0D 38 37, 05, 05]
-1D98E; [0D 33 6E, 05, 05]
+1D974; [0D 38 3E, 05, 05]
-1D98F; [0D 33 75, 05, 05]
+1D975; [0D 38 45, 05, 05]
-1D990; [0D 33 7C, 05, 05]
+1D976; [0D 38 4C, 05, 05]
-1D991; [0D 33 83, 05, 05]
+1D977; [0D 38 53, 05, 05]
-1D992; [0D 33 8A, 05, 05]
+1D978; [0D 38 5A, 05, 05]
-1D993; [0D 33 91, 05, 05]
+1D979; [0D 38 61, 05, 05]
-1D994; [0D 33 98, 05, 05]
+1D97A; [0D 38 68, 05, 05]
-1D995; [0D 33 9F, 05, 05]
+1D97B; [0D 38 6F, 05, 05]
-1D996; [0D 33 A6, 05, 05]
+1D97C; [0D 38 76, 05, 05]
-1D997; [0D 33 AD, 05, 05]
+1D97D; [0D 38 7D, 05, 05]
-1D998; [0D 33 B4, 05, 05]
+1D97E; [0D 38 84, 05, 05]
-1D999; [0D 33 BB, 05, 05]
+1D97F; [0D 38 8B, 05, 05]
-1D99A; [0D 33 C2, 05, 05]
+1D980; [0D 38 92, 05, 05]
-1D99B; [0D 33 C9, 05, 05]
+1D981; [0D 38 99, 05, 05]
-1D99C; [0D 33 D0, 05, 05]
+1D982; [0D 38 A0, 05, 05]
-1D99D; [0D 33 D7, 05, 05]
+1D983; [0D 38 A7, 05, 05]
-1D99E; [0D 33 DE, 05, 05]
+1D984; [0D 38 AE, 05, 05]
-1D99F; [0D 33 E5, 05, 05]
+1D985; [0D 38 B5, 05, 05]
-1D9A0; [0D 33 EC, 05, 05]
+1D986; [0D 38 BC, 05, 05]
-1D9A1; [0D 33 F3, 05, 05]
+1D987; [0D 38 C3, 05, 05]
-1D9A2; [0D 33 FA, 05, 05]
+1D988; [0D 38 CA, 05, 05]
-1D9A3; [0D 34 03, 05, 05]
+1D989; [0D 38 D1, 05, 05]
-1D9A4; [0D 34 0A, 05, 05]
+1D98A; [0D 38 D8, 05, 05]
-1D9A5; [0D 34 11, 05, 05]
+1D98B; [0D 38 DF, 05, 05]
-1D9A6; [0D 34 18, 05, 05]
+1D98C; [0D 38 E6, 05, 05]
-1D9A7; [0D 34 1F, 05, 05]
+1D98D; [0D 38 ED, 05, 05]
-1D9A8; [0D 34 26, 05, 05]
+1D98E; [0D 38 F4, 05, 05]
-1D9A9; [0D 34 2D, 05, 05]
+1D98F; [0D 38 FB, 05, 05]
-1D9AA; [0D 34 34, 05, 05]
+1D990; [0D 39 04, 05, 05]
-1D9AB; [0D 34 3B, 05, 05]
+1D991; [0D 39 0B, 05, 05]
-1D9AC; [0D 34 42, 05, 05]
+1D992; [0D 39 12, 05, 05]
-1D9AD; [0D 34 49, 05, 05]
+1D993; [0D 39 19, 05, 05]
-1D9AE; [0D 34 50, 05, 05]
+1D994; [0D 39 20, 05, 05]
-1D9AF; [0D 34 57, 05, 05]
+1D995; [0D 39 27, 05, 05]
-1D9B0; [0D 34 5E, 05, 05]
+1D996; [0D 39 2E, 05, 05]
-1D9B1; [0D 34 65, 05, 05]
+1D997; [0D 39 35, 05, 05]
-1D9B2; [0D 34 6C, 05, 05]
+1D998; [0D 39 3C, 05, 05]
-1D9B3; [0D 34 73, 05, 05]
+1D999; [0D 39 43, 05, 05]
-1D9B4; [0D 34 7A, 05, 05]
+1D99A; [0D 39 4A, 05, 05]
-1D9B5; [0D 34 81, 05, 05]
+1D99B; [0D 39 51, 05, 05]
-1D9B6; [0D 34 88, 05, 05]
+1D99C; [0D 39 58, 05, 05]
-1D9B7; [0D 34 8F, 05, 05]
+1D99D; [0D 39 5F, 05, 05]
-1D9B8; [0D 34 96, 05, 05]
+1D99E; [0D 39 66, 05, 05]
-1D9B9; [0D 34 9D, 05, 05]
+1D99F; [0D 39 6D, 05, 05]
-1D9BA; [0D 34 A4, 05, 05]
+1D9A0; [0D 39 74, 05, 05]
-1D9BB; [0D 34 AB, 05, 05]
+1D9A1; [0D 39 7B, 05, 05]
-1D9BC; [0D 34 B2, 05, 05]
+1D9A2; [0D 39 82, 05, 05]
-1D9BD; [0D 34 B9, 05, 05]
+1D9A3; [0D 39 89, 05, 05]
-1D9BE; [0D 34 C0, 05, 05]
+1D9A4; [0D 39 90, 05, 05]
-1D9BF; [0D 34 C7, 05, 05]
+1D9A5; [0D 39 97, 05, 05]
-1D9C0; [0D 34 CE, 05, 05]
+1D9A6; [0D 39 9E, 05, 05]
-1D9C1; [0D 34 D5, 05, 05]
+1D9A7; [0D 39 A5, 05, 05]
-1D9C2; [0D 34 DC, 05, 05]
+1D9A8; [0D 39 AC, 05, 05]
-1D9C3; [0D 34 E3, 05, 05]
+1D9A9; [0D 39 B3, 05, 05]
-1D9C4; [0D 34 EA, 05, 05]
+1D9AA; [0D 39 BA, 05, 05]
-1D9C5; [0D 34 F1, 05, 05]
+1D9AB; [0D 39 C1, 05, 05]
-1D9C6; [0D 34 F8, 05, 05]
+1D9AC; [0D 39 C8, 05, 05]
-1D9C7; [0D 34 FF, 05, 05]
+1D9AD; [0D 39 CF, 05, 05]
-1D9C8; [0D 35 08, 05, 05]
+1D9AE; [0D 39 D6, 05, 05]
-1D9C9; [0D 35 0F, 05, 05]
+1D9AF; [0D 39 DD, 05, 05]
-1D9CA; [0D 35 16, 05, 05]
+1D9B0; [0D 39 E4, 05, 05]
-1D9CB; [0D 35 1D, 05, 05]
+1D9B1; [0D 39 EB, 05, 05]
-1D9CC; [0D 35 24, 05, 05]
+1D9B2; [0D 39 F2, 05, 05]
-1D9CD; [0D 35 2B, 05, 05]
+1D9B3; [0D 39 F9, 05, 05]
-1D9CE; [0D 35 32, 05, 05]
+1D9B4; [0D 3A 02, 05, 05]
-1D9CF; [0D 35 39, 05, 05]
+1D9B5; [0D 3A 09, 05, 05]
-1D9D0; [0D 35 40, 05, 05]
+1D9B6; [0D 3A 10, 05, 05]
-1D9D1; [0D 35 47, 05, 05]
+1D9B7; [0D 3A 17, 05, 05]
-1D9D2; [0D 35 4E, 05, 05]
+1D9B8; [0D 3A 1E, 05, 05]
-1D9D3; [0D 35 55, 05, 05]
+1D9B9; [0D 3A 25, 05, 05]
-1D9D4; [0D 35 5C, 05, 05]
+1D9BA; [0D 3A 2C, 05, 05]
-1D9D5; [0D 35 63, 05, 05]
+1D9BB; [0D 3A 33, 05, 05]
-1D9D6; [0D 35 6A, 05, 05]
+1D9BC; [0D 3A 3A, 05, 05]
-1D9D7; [0D 35 71, 05, 05]
+1D9BD; [0D 3A 41, 05, 05]
-1D9D8; [0D 35 78, 05, 05]
+1D9BE; [0D 3A 48, 05, 05]
-1D9D9; [0D 35 7F, 05, 05]
+1D9BF; [0D 3A 4F, 05, 05]
-1D9DA; [0D 35 86, 05, 05]
+1D9C0; [0D 3A 56, 05, 05]
-1D9DB; [0D 35 8D, 05, 05]
+1D9C1; [0D 3A 5D, 05, 05]
-1D9DC; [0D 35 94, 05, 05]
+1D9C2; [0D 3A 64, 05, 05]
-1D9DD; [0D 35 9B, 05, 05]
+1D9C3; [0D 3A 6B, 05, 05]
-1D9DE; [0D 35 A2, 05, 05]
+1D9C4; [0D 3A 72, 05, 05]
-1D9DF; [0D 35 A9, 05, 05]
+1D9C5; [0D 3A 79, 05, 05]
-1D9E0; [0D 35 B0, 05, 05]
+1D9C6; [0D 3A 80, 05, 05]
-1D9E1; [0D 35 B7, 05, 05]
+1D9C7; [0D 3A 87, 05, 05]
-1D9E2; [0D 35 BE, 05, 05]
+1D9C8; [0D 3A 8E, 05, 05]
-1D9E3; [0D 35 C5, 05, 05]
+1D9C9; [0D 3A 95, 05, 05]
-1D9E4; [0D 35 CC, 05, 05]
+1D9CA; [0D 3A 9C, 05, 05]
-1D9E5; [0D 35 D3, 05, 05]
+1D9CB; [0D 3A A3, 05, 05]
-1D9E6; [0D 35 DA, 05, 05]
+1D9CC; [0D 3A AA, 05, 05]
-1D9E7; [0D 35 E1, 05, 05]
+1D9CD; [0D 3A B1, 05, 05]
-1D9E8; [0D 35 E8, 05, 05]
+1D9CE; [0D 3A B8, 05, 05]
-1D9E9; [0D 35 EF, 05, 05]
+1D9CF; [0D 3A BF, 05, 05]
-1D9EA; [0D 35 F6, 05, 05]
+1D9D0; [0D 3A C6, 05, 05]
-1D9EB; [0D 35 FD, 05, 05]
+1D9D1; [0D 3A CD, 05, 05]
-1D9EC; [0D 36 06, 05, 05]
+1D9D2; [0D 3A D4, 05, 05]
-1D9ED; [0D 36 0D, 05, 05]
+1D9D3; [0D 3A DB, 05, 05]
-1D9EE; [0D 36 14, 05, 05]
+1D9D4; [0D 3A E2, 05, 05]
-1D9EF; [0D 36 1B, 05, 05]
+1D9D5; [0D 3A E9, 05, 05]
-1D9F0; [0D 36 22, 05, 05]
+1D9D6; [0D 3A F0, 05, 05]
-1D9F1; [0D 36 29, 05, 05]
+1D9D7; [0D 3A F7, 05, 05]
-1D9F2; [0D 36 30, 05, 05]
+1D9D8; [0D 3A FE, 05, 05]
-1D9F3; [0D 36 37, 05, 05]
+1D9D9; [0D 3B 07, 05, 05]
-1D9F4; [0D 36 3E, 05, 05]
+1D9DA; [0D 3B 0E, 05, 05]
-1D9F5; [0D 36 45, 05, 05]
+1D9DB; [0D 3B 15, 05, 05]
-1D9F6; [0D 36 4C, 05, 05]
+1D9DC; [0D 3B 1C, 05, 05]
-1D9F7; [0D 36 53, 05, 05]
+1D9DD; [0D 3B 23, 05, 05]
-1D9F8; [0D 36 5A, 05, 05]
+1D9DE; [0D 3B 2A, 05, 05]
-1D9F9; [0D 36 61, 05, 05]
+1D9DF; [0D 3B 31, 05, 05]
-1D9FA; [0D 36 68, 05, 05]
+1D9E0; [0D 3B 38, 05, 05]
-1D9FB; [0D 36 6F, 05, 05]
+1D9E1; [0D 3B 3F, 05, 05]
-1D9FC; [0D 36 76, 05, 05]
+1D9E2; [0D 3B 46, 05, 05]
-1D9FD; [0D 36 7D, 05, 05]
+1D9E3; [0D 3B 4D, 05, 05]
-1D9FE; [0D 36 84, 05, 05]
+1D9E4; [0D 3B 54, 05, 05]
-1D9FF; [0D 36 8B, 05, 05]
+1D9E5; [0D 3B 5B, 05, 05]
-1DA37; [0D 36 92, 05, 05]
+1D9E6; [0D 3B 62, 05, 05]
-1DA38; [0D 36 99, 05, 05]
+1D9E7; [0D 3B 69, 05, 05]
-1DA39; [0D 36 A0, 05, 05]
+1D9E8; [0D 3B 70, 05, 05]
-1DA3A; [0D 36 A7, 05, 05]
+1D9E9; [0D 3B 77, 05, 05]
-1DA6D; [0D 36 AE, 05, 05]
+1D9EA; [0D 3B 7E, 05, 05]
-1DA6E; [0D 36 B5, 05, 05]
+1D9EB; [0D 3B 85, 05, 05]
-1DA6F; [0D 36 BC, 05, 05]
+1D9EC; [0D 3B 8C, 05, 05]
-1DA70; [0D 36 C3, 05, 05]
+1D9ED; [0D 3B 93, 05, 05]
-1DA71; [0D 36 CA, 05, 05]
+1D9EE; [0D 3B 9A, 05, 05]
-1DA72; [0D 36 D1, 05, 05]
+1D9EF; [0D 3B A1, 05, 05]
-1DA73; [0D 36 D8, 05, 05]
+1D9F0; [0D 3B A8, 05, 05]
-1DA74; [0D 36 DF, 05, 05]
+1D9F1; [0D 3B AF, 05, 05]
-1DA76; [0D 36 E6, 05, 05]
+1D9F2; [0D 3B B6, 05, 05]
-1DA77; [0D 36 ED, 05, 05]
+1D9F3; [0D 3B BD, 05, 05]
-1DA78; [0D 36 F4, 05, 05]
+1D9F4; [0D 3B C4, 05, 05]
-1DA79; [0D 36 FB, 05, 05]
+1D9F5; [0D 3B CB, 05, 05]
-1DA7A; [0D 37 04, 05, 05]
+1D9F6; [0D 3B D2, 05, 05]
-1DA7B; [0D 37 0B, 05, 05]
+1D9F7; [0D 3B D9, 05, 05]
-1DA7C; [0D 37 12, 05, 05]
+1D9F8; [0D 3B E0, 05, 05]
-1DA7D; [0D 37 19, 05, 05]
+1D9F9; [0D 3B E7, 05, 05]
-1DA7E; [0D 37 20, 05, 05]
+1D9FA; [0D 3B EE, 05, 05]
-1DA7F; [0D 37 27, 05, 05]
+1D9FB; [0D 3B F5, 05, 05]
-1DA80; [0D 37 2E, 05, 05]
+1D9FC; [0D 3B FC, 05, 05]
-1DA81; [0D 37 35, 05, 05]
+1D9FD; [0D 3C 05, 05, 05]
-1DA82; [0D 37 3C, 05, 05]
+1D9FE; [0D 3C 0C, 05, 05]
-1DA83; [0D 37 43, 05, 05]
+1D9FF; [0D 3C 13, 05, 05]
-1DA85; [0D 37 4A, 05, 05]
+1DA37; [0D 3C 1A, 05, 05]
-1DA86; [0D 37 51, 05, 05]
+1DA38; [0D 3C 21, 05, 05]
-2FF0; [0D 37 58, 05, 05]
+1DA39; [0D 3C 28, 05, 05]
-2FF1; [0D 37 5F, 05, 05]
+1DA3A; [0D 3C 2F, 05, 05]
-2FF2; [0D 37 66, 05, 05]
+1DA6D; [0D 3C 36, 05, 05]
-2FF3; [0D 37 6D, 05, 05]
+1DA6E; [0D 3C 3D, 05, 05]
-2FF4; [0D 37 74, 05, 05]
+1DA6F; [0D 3C 44, 05, 05]
-2FF5; [0D 37 7B, 05, 05]
+1DA70; [0D 3C 4B, 05, 05]
-2FF6; [0D 37 82, 05, 05]
+1DA71; [0D 3C 52, 05, 05]
-2FF7; [0D 37 89, 05, 05]
+1DA72; [0D 3C 59, 05, 05]
-2FF8; [0D 37 90, 05, 05]
+1DA73; [0D 3C 60, 05, 05]
-2FF9; [0D 37 97, 05, 05]
+1DA74; [0D 3C 67, 05, 05]
-2FFA; [0D 37 9E, 05, 05]
+1DA76; [0D 3C 6E, 05, 05]
-2FFB; [0D 37 A5, 05, 05]
+1DA77; [0D 3C 75, 05, 05]
-31C0; [0D 37 AC, 05, 05]
+1DA78; [0D 3C 7C, 05, 05]
-31C1; [0D 37 B3, 05, 05]
+1DA79; [0D 3C 83, 05, 05]
-31C2; [0D 37 BA, 05, 05]
+1DA7A; [0D 3C 8A, 05, 05]
-31C3; [0D 37 C1, 05, 05]
+1DA7B; [0D 3C 91, 05, 05]
-31C4; [0D 37 C8, 05, 05]
+1DA7C; [0D 3C 98, 05, 05]
-31C5; [0D 37 CF, 05, 05]
+1DA7D; [0D 3C 9F, 05, 05]
-31C6; [0D 37 D6, 05, 05]
+1DA7E; [0D 3C A6, 05, 05]
-31C7; [0D 37 DD, 05, 05]
+1DA7F; [0D 3C AD, 05, 05]
-31C8; [0D 37 E4, 05, 05]
+1DA80; [0D 3C B4, 05, 05]
-31C9; [0D 37 EB, 05, 05]
+1DA81; [0D 3C BB, 05, 05]
-31CA; [0D 37 F2, 05, 05]
+1DA82; [0D 3C C2, 05, 05]
-31CB; [0D 37 F9, 05, 05]
+1DA83; [0D 3C C9, 05, 05]
-31CC; [0D 38 02, 05, 05]
+1DA85; [0D 3C D0, 05, 05]
-31CD; [0D 38 09, 05, 05]
+1DA86; [0D 3C D7, 05, 05]
-31CE; [0D 38 10, 05, 05]
+2FF0; [0D 3C DE, 05, 05]
-31CF; [0D 38 17, 05, 05]
+2FF1; [0D 3C E5, 05, 05]
-31D0; [0D 38 1E, 05, 05]
+2FF2; [0D 3C EC, 05, 05]
-31D1; [0D 38 25, 05, 05]
+2FF3; [0D 3C F3, 05, 05]
-31D2; [0D 38 2C, 05, 05]
+2FF4; [0D 3C FA, 05, 05]
-31D3; [0D 38 33, 05, 05]
+2FF5; [0D 3D 03, 05, 05]
-31D4; [0D 38 3A, 05, 05]
+2FF6; [0D 3D 0A, 05, 05]
-31D5; [0D 38 41, 05, 05]
+2FF7; [0D 3D 11, 05, 05]
-31D6; [0D 38 48, 05, 05]
+2FF8; [0D 3D 18, 05, 05]
-31D7; [0D 38 4F, 05, 05]
+2FF9; [0D 3D 1F, 05, 05]
-31D8; [0D 38 56, 05, 05]
+2FFA; [0D 3D 26, 05, 05]
-31D9; [0D 38 5D, 05, 05]
+2FFB; [0D 3D 2D, 05, 05]
-31DA; [0D 38 64, 05, 05]
+31C0; [0D 3D 34, 05, 05]
-31DB; [0D 38 6B, 05, 05]
+31C1; [0D 3D 3B, 05, 05]
-31DC; [0D 38 72, 05, 05]
+31C2; [0D 3D 42, 05, 05]
-31DD; [0D 38 79, 05, 05]
+31C3; [0D 3D 49, 05, 05]
-31DE; [0D 38 80, 05, 05]
+31C4; [0D 3D 50, 05, 05]
-31DF; [0D 38 87, 05, 05]
+31C5; [0D 3D 57, 05, 05]
-31E0; [0D 38 8E, 05, 05]
+31C6; [0D 3D 5E, 05, 05]
-31E1; [0D 38 95, 05, 05]
+31C7; [0D 3D 65, 05, 05]
-31E2; [0D 38 9C, 05, 05]
+31C8; [0D 3D 6C, 05, 05]
-31E3; [0D 38 A3, 05, 05]
+31C9; [0D 3D 73, 05, 05]
-3004; [0D 38 AA, 05, 05]
+31CA; [0D 3D 7A, 05, 05]
-3012; [0D 3A, 05, 05]
-3036; [0D 3A, 05, 20]
+31CB; [0D 3D 81, 05, 05]
-3013; [0D 3C 02, 05, 05]
+31CC; [0D 3D 88, 05, 05]
-3020; [0D 3C 09, 05, 05]
+31CD; [0D 3D 8F, 05, 05]
-3037; [0D 3C 10, 05, 05]
+31CE; [0D 3D 96, 05, 05]
-303E; [0D 3C 17, 05, 05]
+31CF; [0D 3D 9D, 05, 05]
-303F; [0D 3C 1E, 05, 05]
+31D0; [0D 3D A4, 05, 05]
-3190; [0D 3C 25, 05, 05]
+31D1; [0D 3D AB, 05, 05]
-3191; [0D 3C 2C, 05, 05]
+31D2; [0D 3D B2, 05, 05]
-327F; [0D 3C 33, 05, 05]
+31D3; [0D 3D B9, 05, 05]
-FFFC; [0D 3C 3A, 05, 05]
+31D4; [0D 3D C0, 05, 05]
-02D0; [0D 3E, 05, 05]
+31D5; [0D 3D C7, 05, 05]
-02D1; [0D 40, 05, 05]
+31D6; [0D 3D CE, 05, 05]
-0971; [0D 42, 05, 05]
+31D7; [0D 3D D5, 05, 05]
-0E46; [0D 44, 05, 05]
+31D8; [0D 3D DC, 05, 05]
-0EC6; [0D 46, 05, 05]
+31D9; [0D 3D E3, 05, 05]
-17D7; [0D 48, 05, 05]
+31DA; [0D 3D EA, 05, 05]
-1AA7; [0D 4A, 05, 05]
+31DB; [0D 3D F1, 05, 05]
-A9CF; [0D 4C, 05, 05]
+31DC; [0D 3D F8, 05, 05]
-A9E6; [0D 4E, 05, 05]
+31DD; [0D 3D FF, 05, 05]
-AA70; [0D 50, 05, 05]
+31DE; [0D 3E 08, 05, 05]
-AADD; [0D 52 02, 05, 05]
+31DF; [0D 3E 0F, 05, 05]
-AAF3; [0D 52 09, 05, 05]
+31E0; [0D 3E 16, 05, 05]
-AAF4; [0D 52 10, 05, 05]
+31E1; [0D 3E 1D, 05, 05]
-16B42; [0D 52 17, 05, 05]
+31E2; [0D 3E 24, 05, 05]
-16B43; [0D 52 1E, 05, 05]
+31E3; [0D 3E 2B, 05, 05]
-3005; [0D 54, 05, 05]
+3004; [0D 3E 32, 05, 05]
-303B; [0D 56, 05, 05]
+3012; [0D 40, 05, 05]
+3036; [0D 40, 05, 20]
-16FE0; [0D 58 02, 05, 05]
+3013; [0D 42 02, 05, 05]
-16FE1; [0D 58 09, 05, 05]
+3020; [0D 42 09, 05, 05]
-3031; [0D 5A, 05, 05]
-3032; [0D 5A, 05, 05][, AE, 05]
+3037; [0D 42 10, 05, 05]
-3033; [0D 5C, 05, 05]
-3034; [0D 5C, 05, 05][, AE, 05]
+303E; [0D 42 17, 05, 05]
-3035; [0D 5E, 05, 05]
+303F; [0D 42 1E, 05, 05]
-309D; [0D 60, 05, 05]
-309E; [0D 60, 05, 05][, AE, 05]
+3190; [0D 42 25, 05, 05]
-30FC; [0D 62, 05, 05]
-FF70; [0D 62, 05, A0]
+3191; [0D 42 2C, 05, 05]
-30FD; [0D 64, 05, 05]
-30FE; [0D 64, 05, 05][, AE, 05]
+327F; [0D 42 33, 05, 05]
-FDD1 20AC; [0D 70 02, 05, 05] # CURRENCY first primary
+FFFC; [0D 42 3A, 05, 05]
-00A4; [0D 72, 05, 05]
+02D0; [0D 44, 05, 05]
-00A2; [0D 74, 05, 05]
-FFE0; [0D 74, 05, 20]
+02D1; [0D 46, 05, 05]
-0024; [0D 76, 05, 05]
-FF04; [0D 76, 05, 20]
-FE69; [0D 76, 05, 2E]
+0971; [0D 48, 05, 05]
-00A3; [0D 78, 05, 05]
-FFE1; [0D 78, 05, 20]
+0E46; [0D 4A, 05, 05]
-00A5; [0D 7A, 05, 05]
-FFE5; [0D 7A, 05, 20]
+0EC6; [0D 4C, 05, 05]
-058F; [0D 7C, 05, 05]
+17D7; [0D 4E, 05, 05]
-060B; [0D 7E, 05, 05]
+1AA7; [0D 50, 05, 05]
-09F2; [0D 80, 05, 05]
+A9CF; [0D 52, 05, 05]
-09F3; [0D 82, 05, 05]
+A9E6; [0D 54, 05, 05]
-09FB; [0D 84, 05, 05]
+AA70; [0D 56, 05, 05]
-0AF1; [0D 86, 05, 05]
+AADD; [0D 58 02, 05, 05]
-A838; [0D 88, 05, 05]
+AAF3; [0D 58 09, 05, 05]
-0BF9; [0D 8A, 05, 05]
+AAF4; [0D 58 10, 05, 05]
-0E3F; [0D 8C, 05, 05]
+16B42; [0D 58 17, 05, 05]
-17DB; [0D 8E, 05, 05]
+16B43; [0D 58 1E, 05, 05]
-20A0; [0D 90, 05, 05]
+3005; [0D 5A, 05, 05]
-20A1; [0D 92, 05, 05]
+303B; [0D 5C, 05, 05]
-20A2; [0D 94, 05, 05]
+16FE0; [0D 5E 02, 05, 05]
-20A3; [0D 96, 05, 05]
+16FE1; [0D 5E 09, 05, 05]
-20A4; [0D 98, 05, 05]
+3031; [0D 60, 05, 05]
+3032; [0D 60, 05, 05][, AE, 05]
-20A5; [0D 9A, 05, 05]
+3033; [0D 62, 05, 05]
+3034; [0D 62, 05, 05][, AE, 05]
-20A6; [0D 9C, 05, 05]
+3035; [0D 64, 05, 05]
-20A7; [0D 9E, 05, 05]
+309D; [0D 66, 05, 05]
+309E; [0D 66, 05, 05][, AE, 05]
-20A9; [0D A0, 05, 05]
-FFE6; [0D A0, 05, 20]
+30FC; [0D 68, 05, 05]
+FF70; [0D 68, 05, A0]
-20AA; [0D A2, 05, 05]
+30FD; [0D 6A, 05, 05]
+30FE; [0D 6A, 05, 05][, AE, 05]
-20AB; [0D A4, 05, 05]
+FDD1 20AC; [0D 76 02, 05, 05] # CURRENCY first primary
-20AC; [0D A6, 05, 05]
+00A4; [0D 78, 05, 05]
-20AD; [0D A8, 05, 05]
+00A2; [0D 7A, 05, 05]
+FFE0; [0D 7A, 05, 20]
-20AE; [0D AA, 05, 05]
+0024; [0D 7C, 05, 05]
+FF04; [0D 7C, 05, 20]
+FE69; [0D 7C, 05, 2E]
-20AF; [0D AC, 05, 05]
+00A3; [0D 7E, 05, 05]
+FFE1; [0D 7E, 05, 20]
-20B0; [0D AE, 05, 05]
+00A5; [0D 80, 05, 05]
+FFE5; [0D 80, 05, 20]
-20B1; [0D B0, 05, 05]
+058F; [0D 82, 05, 05]
-20B2; [0D B2, 05, 05]
+060B; [0D 84, 05, 05]
-20B3; [0D B4, 05, 05]
+07FE; [0D 86 02, 05, 05]
-20B4; [0D B6, 05, 05]
+07FF; [0D 86 09, 05, 05]
-20B5; [0D B8, 05, 05]
+09F2; [0D 88, 05, 05]
-20B6; [0D BA, 05, 05]
+09F3; [0D 8A, 05, 05]
-20B7; [0D BC, 05, 05]
+09FB; [0D 8C, 05, 05]
-20B8; [0D BE, 05, 05]
+0AF1; [0D 8E, 05, 05]
-20B9; [0D C0, 05, 05]
+A838; [0D 90, 05, 05]
-20BA; [0D C2, 05, 05]
+0BF9; [0D 92, 05, 05]
-20BB; [0D C4, 05, 05]
+0E3F; [0D 94, 05, 05]
-20BC; [0D C6, 05, 05]
+17DB; [0D 96, 05, 05]
-20BD; [0D C8, 05, 05]
+20A0; [0D 98, 05, 05]
-20BE; [0D CA, 05, 05]
+20A1; [0D 9A, 05, 05]
-20BF; [0D CC, 05, 05]
+20A2; [0D 9C, 05, 05]
-20A8; [0D CE, 05, 05]
+20A3; [0D 9E, 05, 05]
-FDFC; [0D D0, 05, 05]
+20A4; [0D A0, 05, 05]
+
+20A5; [0D A2, 05, 05]
+
+20A6; [0D A4, 05, 05]
+
+20A7; [0D A6, 05, 05]
+
+20A9; [0D A8, 05, 05]
+FFE6; [0D A8, 05, 20]
+
+20AA; [0D AA, 05, 05]
+
+20AB; [0D AC, 05, 05]
+
+20AC; [0D AE, 05, 05]
+
+20AD; [0D B0, 05, 05]
+
+20AE; [0D B2, 05, 05]
+
+20AF; [0D B4, 05, 05]
+
+20B0; [0D B6, 05, 05]
+
+20B1; [0D B8, 05, 05]
+
+20B2; [0D BA, 05, 05]
+
+20B3; [0D BC, 05, 05]
+
+20B4; [0D BE, 05, 05]
+
+20B5; [0D C0, 05, 05]
+
+20B6; [0D C2, 05, 05]
+
+20B7; [0D C4, 05, 05]
+
+20B8; [0D C6, 05, 05]
+
+20B9; [0D C8, 05, 05]
+
+1ECB0; [0D CA, 05, 05]
+
+20BA; [0D CC, 05, 05]
+
+20BB; [0D CE, 05, 05]
+
+20BC; [0D D0, 05, 05]
+
+20BD; [0D D2, 05, 05]
+
+20BE; [0D D4, 05, 05]
+
+20BF; [0D D6, 05, 05]
+
+20A8; [0D D8, 05, 05]
+
+FDFC; [0D DA, 05, 05]
FDD1 0034; [0E 02 02, 05, 05] # DIGIT first primary starts new lead byte
@@ -15698,59 +16028,77 @@ A835; [10 28, 05, 05]
10BAF; [11 68 F7, 05, 05]
-1173A; [11 68 FE, 05, 05]
+10F22; [11 68 FE, 05, 05]
+
+10F23; [11 69 07, 05, 05]
-1173B; [11 69 07, 05, 05]
+10F24; [11 69 0E, 05, 05]
-1105B; [11 69 0E, 05, 05]
+10F25; [11 69 15, 05, 05]
-1105C; [11 69 15, 05, 05]
+10F26; [11 69 1C, 05, 05]
-1105D; [11 69 1C, 05, 05]
+10F52; [11 69 23, 05, 05]
-1105E; [11 69 23, 05, 05]
+10F53; [11 69 2A, 05, 05]
-1105F; [11 69 2A, 05, 05]
+10F54; [11 69 31, 05, 05]
-11060; [11 69 31, 05, 05]
+1173A; [11 69 38, 05, 05]
-11061; [11 69 38, 05, 05]
+1173B; [11 69 3F, 05, 05]
-11062; [11 69 3F, 05, 05]
+1105B; [11 69 46, 05, 05]
-11063; [11 69 46, 05, 05]
+1105C; [11 69 4D, 05, 05]
-11064; [11 69 4D, 05, 05]
+1105D; [11 69 54, 05, 05]
-11065; [11 69 54, 05, 05]
+1105E; [11 69 5B, 05, 05]
-10A44; [11 69 5B, 05, 05]
+1105F; [11 69 62, 05, 05]
-10A45; [11 69 62, 05, 05]
+11060; [11 69 69, 05, 05]
-10A46; [11 69 69, 05, 05]
+11061; [11 69 70, 05, 05]
-10A47; [11 69 70, 05, 05]
+11062; [11 69 77, 05, 05]
-11C63; [11 69 77, 05, 05]
+11063; [11 69 7E, 05, 05]
-11C64; [11 69 7E, 05, 05]
+11064; [11 69 85, 05, 05]
-11C65; [11 69 85, 05, 05]
+11065; [11 69 8C, 05, 05]
-11C66; [11 69 8C, 05, 05]
+10A44; [11 69 93, 05, 05]
-11C67; [11 69 93, 05, 05]
+10A45; [11 69 9A, 05, 05]
-11C68; [11 69 9A, 05, 05]
+10A46; [11 69 A1, 05, 05]
-11C69; [11 69 A1, 05, 05]
+10A47; [11 69 A8, 05, 05]
-11C6A; [11 69 A8, 05, 05]
+10A48; [11 69 AF, 05, 05]
-11C6B; [11 69 AF, 05, 05]
+11C63; [11 69 B6, 05, 05]
-11C6C; [11 69 B6, 05, 05]
+11C64; [11 69 BD, 05, 05]
+
+11C65; [11 69 C4, 05, 05]
+
+11C66; [11 69 CB, 05, 05]
+
+11C67; [11 69 D2, 05, 05]
+
+11C68; [11 69 D9, 05, 05]
+
+11C69; [11 69 E0, 05, 05]
+
+11C6A; [11 69 E7, 05, 05]
+
+11C6B; [11 69 EE, 05, 05]
+
+11C6C; [11 69 F5, 05, 05]
111EA; [11 6B, 05, 05]
@@ -15806,43060 +16154,43884 @@ A835; [10 28, 05, 05]
16B61; [11 81 6B, 05, 05]
-109C9; [11 81 72, 05, 05]
+16E8A; [11 81 72, 05, 05]
+
+16E8B; [11 81 79, 05, 05]
+
+16E8C; [11 81 80, 05, 05]
+
+16E8D; [11 81 87, 05, 05]
+
+16E8E; [11 81 8E, 05, 05]
+
+16E8F; [11 81 95, 05, 05]
+
+16E90; [11 81 9C, 05, 05]
+
+16E91; [11 81 A3, 05, 05]
+
+16E92; [11 81 AA, 05, 05]
+
+16E93; [11 81 B1, 05, 05]
+
+1D2EA; [11 83, 05, 05]
+
+1D2EB; [11 85, 05, 05]
+
+1D2EC; [11 87, 05, 05]
+
+1D2ED; [11 89, 05, 05]
+
+1D2EE; [11 8B, 05, 05]
+
+1D2EF; [11 8D, 05, 05]
+
+1D2F0; [11 8F, 05, 05]
+
+1D2F1; [11 91, 05, 05]
+
+1D2F2; [11 93, 05, 05]
+
+1D2F3; [11 95, 05, 05]
+
+1EC7A; [11 97, 05, 05]
+
+1EC7B; [11 99, 05, 05]
+
+1EC7C; [11 9B, 05, 05]
+
+1EC7D; [11 9D, 05, 05]
+
+1EC7E; [11 9F, 05, 05]
+
+1EC7F; [11 A1, 05, 05]
+
+1EC80; [11 A3, 05, 05]
+
+1EC81; [11 A5, 05, 05]
+
+1EC82; [11 A7, 05, 05]
+
+1EC83; [11 A9, 05, 05]
+
+1EC84; [11 AB, 05, 05]
+
+1EC85; [11 AD, 05, 05]
+
+1EC86; [11 AF, 05, 05]
+
+1EC87; [11 B1, 05, 05]
+
+1EC88; [11 B3, 05, 05]
+
+1EC89; [11 B5, 05, 05]
+
+1EC8A; [11 B7, 05, 05]
+
+1EC8B; [11 B9, 05, 05]
+
+1EC8C; [11 BB, 05, 05]
+
+1EC8D; [11 BD, 05, 05]
+
+1EC8E; [11 BF, 05, 05]
+
+1EC8F; [11 C1, 05, 05]
+
+1EC90; [11 C3, 05, 05]
+
+1EC91; [11 C5, 05, 05]
+
+1EC92; [11 C7, 05, 05]
+
+1EC93; [11 C9, 05, 05]
+
+1EC94; [11 CB, 05, 05]
+
+1EC95; [11 CD, 05, 05]
+
+1EC96; [11 CF, 05, 05]
+
+1EC97; [11 D1, 05, 05]
+
+1EC98; [11 D3, 05, 05]
+
+1EC99; [11 D5, 05, 05]
+
+1EC9A; [11 D7, 05, 05]
+
+1EC9B; [11 D9, 05, 05]
+
+1EC9C; [11 DB, 05, 05]
+
+1EC9D; [11 DD, 05, 05]
+
+1EC9E; [11 DF, 05, 05]
+
+1EC9F; [11 E1, 05, 05]
+
+1ECA0; [11 E3, 05, 05]
+
+1ECA1; [11 E5, 05, 05]
+
+1ECA2; [11 E7, 05, 05]
+
+1ECAD; [11 E9, 05, 05]
+
+1ECAE; [11 EB, 05, 05]
+
+1ECAF; [11 ED, 05, 05]
+
+1ECB3; [11 EF, 05, 05]
+
+1ECB4; [11 F1, 05, 05]
+
+109C9; [11 F3 02, 05, 05]
+
+109CA; [11 F3 09, 05, 05]
+
+109CB; [11 F3 10, 05, 05]
+
+109CC; [11 F3 17, 05, 05]
+
+109CD; [11 F3 1E, 05, 05]
+
+109CE; [11 F3 25, 05, 05]
+
+109CF; [11 F3 2C, 05, 05]
+
+109D2; [11 F3 33, 05, 05]
+
+109D3; [11 F3 3A, 05, 05]
+
+109D4; [11 F3 41, 05, 05]
+
+109D5; [11 F3 48, 05, 05]
+
+109D6; [11 F3 4F, 05, 05]
+
+109D7; [11 F3 56, 05, 05]
+
+109D8; [11 F3 5D, 05, 05]
+
+109D9; [11 F3 64, 05, 05]
+
+109DA; [11 F3 6B, 05, 05]
+
+109DB; [11 F3 72, 05, 05]
+
+109DC; [11 F3 79, 05, 05]
+
+109DD; [11 F3 80, 05, 05]
+
+109DE; [11 F3 87, 05, 05]
+
+109DF; [11 F3 8E, 05, 05]
+
+109E0; [11 F3 95, 05, 05]
+
+109E1; [11 F3 9C, 05, 05]
+
+109E2; [11 F3 A3, 05, 05]
+
+109E3; [11 F3 AA, 05, 05]
+
+109E4; [11 F3 B1, 05, 05]
+
+109E5; [11 F3 B8, 05, 05]
+
+109E6; [11 F3 BF, 05, 05]
+
+109E7; [11 F3 C6, 05, 05]
+
+109E8; [11 F3 CD, 05, 05]
+
+109E9; [11 F3 D4, 05, 05]
+
+109EA; [11 F3 DB, 05, 05]
+
+109EB; [11 F3 E2, 05, 05]
+
+109EC; [11 F3 E9, 05, 05]
+
+109ED; [11 F3 F0, 05, 05]
+
+109EE; [11 F3 F7, 05, 05]
+
+109EF; [11 F3 FE, 05, 05]
+
+109F0; [11 F4 07, 05, 05]
+
+109F1; [11 F4 0E, 05, 05]
+
+109F2; [11 F4 15, 05, 05]
+
+109F3; [11 F4 1C, 05, 05]
+
+109F4; [11 F4 23, 05, 05]
+
+109F5; [11 F4 2A, 05, 05]
+
+109BD; [11 F4 31, 05, 05]
+
+109F6; [11 F4 38, 05, 05]
+
+109F7; [11 F4 3F, 05, 05]
+
+109F8; [11 F4 46, 05, 05]
+
+109F9; [11 F4 4D, 05, 05]
+
+109FA; [11 F4 54, 05, 05]
+
+109FB; [11 F4 5B, 05, 05]
+
+109FC; [11 F4 62, 05, 05]
+
+109FD; [11 F4 69, 05, 05]
+
+109FE; [11 F4 70, 05, 05]
+
+109FF; [11 F4 77, 05, 05]
+
+109BC; [11 F4 7E, 05, 05]
+
+12432; [11 F4 85, 05, 05]
+
+12433; [11 F4 8C, 05, 05]
+
+1245A; [11 F4 93, 05, 05]
+
+1245B; [11 F4 9A, 05, 05]
+
+1245C; [11 F4 A1, 05, 05]
+
+1245D; [11 F4 A8, 05, 05]
+
+1245E; [11 F4 AF, 05, 05]
+
+1245F; [11 F4 B6, 05, 05]
+
+12460; [11 F4 BD, 05, 05]
+
+12461; [11 F4 C4, 05, 05]
+
+12462; [11 F4 CB, 05, 05]
+
+12463; [11 F4 D2, 05, 05]
+
+12464; [11 F4 D9, 05, 05]
+
+12465; [11 F4 E0, 05, 05]
+
+12466; [11 F4 E7, 05, 05]
+
+12467; [11 F4 EE, 05, 05]
+
+12468; [11 F4 F5, 05, 05]
+
+1D369; [11 F6, 05, 05]
+
+1D36A; [11 F8, 05, 05]
+
+1D36B; [11 FA, 05, 05]
+
+1D36C; [11 FC, 05, 05]
+
+1D36D; [11 FE, 05, 05]
+
+1D36E; [12 02, 05, 05]
+
+1D36F; [12 04, 05, 05]
+
+1D370; [12 06, 05, 05]
+
+1D371; [12 08, 05, 05]
+
+0030; [13, 05, 05]
+0660; [13, 05, 05]
+06F0; [13, 05, 05]
+07C0; [13, 05, 05]
+0966; [13, 05, 05]
+09E6; [13, 05, 05]
+0A66; [13, 05, 05]
+0AE6; [13, 05, 05]
+0B66; [13, 05, 05]
+0BE6; [13, 05, 05]
+0C66; [13, 05, 05]
+0C78; [13, 05, 05]
+0CE6; [13, 05, 05]
+0D66; [13, 05, 05]
+0DE6; [13, 05, 05]
+0E50; [13, 05, 05]
+0ED0; [13, 05, 05]
+0F20; [13, 05, 05]
+1040; [13, 05, 05]
+1090; [13, 05, 05]
+17E0; [13, 05, 05]
+17F0; [13, 05, 05]
+1810; [13, 05, 05]
+1946; [13, 05, 05]
+19D0; [13, 05, 05]
+1A80; [13, 05, 05]
+1A90; [13, 05, 05]
+1B50; [13, 05, 05]
+1BB0; [13, 05, 05]
+1C40; [13, 05, 05]
+1C50; [13, 05, 05]
+3007; [13, 05, 05]
+A620; [13, 05, 05]
+A8D0; [13, 05, 05]
+A900; [13, 05, 05]
+A9D0; [13, 05, 05]
+A9F0; [13, 05, 05]
+AA50; [13, 05, 05]
+ABF0; [13, 05, 05]
+1018A; [13, 05, 05]
+104A0; [13, 05, 05]
+10D30; [13, 05, 05]
+11066; [13, 05, 05]
+110F0; [13, 05, 05]
+11136; [13, 05, 05]
+111D0; [13, 05, 05]
+112F0; [13, 05, 05]
+11450; [13, 05, 05]
+114D0; [13, 05, 05]
+11650; [13, 05, 05]
+116C0; [13, 05, 05]
+11730; [13, 05, 05]
+118E0; [13, 05, 05]
+11C50; [13, 05, 05]
+11D50; [13, 05, 05]
+11DA0; [13, 05, 05]
+16A60; [13, 05, 05]
+16B50; [13, 05, 05]
+16E80; [13, 05, 05]
+1D2E0; [13, 05, 05]
+1E950; [13, 05, 05]
+FF10; [13, 05, 10]
+0F33; [13, 05, 15]
+1D7CE; [13, 05, 1A]
+1D7D8; [13, 05, 1A]
+1D7E2; [13, 05, 1A]
+1D7EC; [13, 05, 1A]
+1D7F6; [13, 05, 1A]
+24EA; [13, 05, 1F]
+24FF; [13, 05, 1F]
+1F10B; [13, 05, 1F]
+1F10C; [13, 05, 1F]
+2070; [13, 05, 24]
+2080; [13, 05, 29]
+1F101; [13, 05, 15][06, 05, 1B]
+1F100; [13, 05, 15][08, 05, 18]
+2189; [13, 05, 33][0C 94, 05, 20][19, 05, 33]
+3358; [13, 05, 15][U+70B9, 10]
+
+0031; [15, 05, 05]
+0661; [15, 05, 05]
+06F1; [15, 05, 05]
+07C1; [15, 05, 05]
+0967; [15, 05, 05]
+09E7; [15, 05, 05]
+0A67; [15, 05, 05]
+0AE7; [15, 05, 05]
+0B67; [15, 05, 05]
+0BE7; [15, 05, 05]
+0C67; [15, 05, 05]
+0C79; [15, 05, 05]
+0C7C; [15, 05, 05]
+0CE7; [15, 05, 05]
+0D67; [15, 05, 05]
+0DE7; [15, 05, 05]
+0E51; [15, 05, 05]
+0ED1; [15, 05, 05]
+0F21; [15, 05, 05]
+1041; [15, 05, 05]
+1091; [15, 05, 05]
+1369; [15, 05, 05]
+17E1; [15, 05, 05]
+17F1; [15, 05, 05]
+1811; [15, 05, 05]
+1947; [15, 05, 05]
+19D1; [15, 05, 05]
+19DA; [15, 05, 05]
+1A81; [15, 05, 05]
+1A91; [15, 05, 05]
+1B51; [15, 05, 05]
+1BB1; [15, 05, 05]
+1C41; [15, 05, 05]
+1C51; [15, 05, 05]
+3021; [15, 05, 05]
+A621; [15, 05, 05]
+A8D1; [15, 05, 05]
+A901; [15, 05, 05]
+A9D1; [15, 05, 05]
+A9F1; [15, 05, 05]
+AA51; [15, 05, 05]
+ABF1; [15, 05, 05]
+10107; [15, 05, 05]
+10142; [15, 05, 05]
+10158; [15, 05, 05]
+10159; [15, 05, 05]
+1015A; [15, 05, 05]
+102E1; [15, 05, 05]
+10320; [15, 05, 05]
+103D1; [15, 05, 05]
+104A1; [15, 05, 05]
+10858; [15, 05, 05]
+10879; [15, 05, 05]
+108A7; [15, 05, 05]
+108FB; [15, 05, 05]
+10916; [15, 05, 05]
+109C0; [15, 05, 05]
+10A40; [15, 05, 05]
+10A7D; [15, 05, 05]
+10A9D; [15, 05, 05]
+10AEB; [15, 05, 05]
+10B58; [15, 05, 05]
+10B78; [15, 05, 05]
+10BA9; [15, 05, 05]
+10CFA; [15, 05, 05]
+10D31; [15, 05, 05]
+10E60; [15, 05, 05]
+10F1D; [15, 05, 05]
+10F51; [15, 05, 05]
+11052; [15, 05, 05]
+11067; [15, 05, 05]
+110F1; [15, 05, 05]
+11137; [15, 05, 05]
+111D1; [15, 05, 05]
+111E1; [15, 05, 05]
+112F1; [15, 05, 05]
+11451; [15, 05, 05]
+114D1; [15, 05, 05]
+11651; [15, 05, 05]
+116C1; [15, 05, 05]
+11731; [15, 05, 05]
+118E1; [15, 05, 05]
+11C51; [15, 05, 05]
+11C5A; [15, 05, 05]
+11D51; [15, 05, 05]
+11DA1; [15, 05, 05]
+12415; [15, 05, 05]
+1241E; [15, 05, 05]
+1242C; [15, 05, 05]
+12434; [15, 05, 05]
+1244F; [15, 05, 05]
+12458; [15, 05, 05]
+16A61; [15, 05, 05]
+16B51; [15, 05, 05]
+16E81; [15, 05, 05]
+1D2E1; [15, 05, 05]
+1D360; [15, 05, 05]
+1D372; [15, 05, 05]
+1D377; [15, 05, 05]
+1E8C7; [15, 05, 05]
+1E951; [15, 05, 05]
+1EC71; [15, 05, 05]
+1ECA3; [15, 05, 05]
+FF11; [15, 05, 10]
+0F2A; [15, 05, 15]
+1D7CF; [15, 05, 1A]
+1D7D9; [15, 05, 1A]
+1D7E3; [15, 05, 1A]
+1D7ED; [15, 05, 1A]
+1D7F7; [15, 05, 1A]
+2460; [15, 05, 1F]
+24F5; [15, 05, 1F]
+2776; [15, 05, 1F]
+2780; [15, 05, 1F]
+278A; [15, 05, 1F]
+00B9; [15, 05, 24]
+2081; [15, 05, 29]
+16E94; [15, 70, 05]
+1ECB1; [15, 70, 05]
+1F102; [15, 05, 15][06, 05, 1B]
+2488; [15, 05, 15][08, 05, 18]
+215F; [15, 05, 33][0C 94, 05, 20]
+2152; [15, 05, 33][0C 94, 05, 20][15, 05, 33][13, 05, 33]
+00BD; [15, 05, 33][0C 94, 05, 20][17, 05, 33]
+2153; [15, 05, 33][0C 94, 05, 20][19, 05, 33]
+00BC; [15, 05, 33][0C 94, 05, 20][1B, 05, 33]
+2155; [15, 05, 33][0C 94, 05, 20][1D, 05, 33]
+2159; [15, 05, 33][0C 94, 05, 20][1F, 05, 33]
+2150; [15, 05, 33][0C 94, 05, 20][21, 05, 33]
+215B; [15, 05, 33][0C 94, 05, 20][23, 05, 33]
+2151; [15, 05, 33][0C 94, 05, 20][25, 05, 34]
+2469; [15, 05, 1F][13, 05, 1F]
+24FE; [15, 05, 1F][13, 05, 1F]
+277F; [15, 05, 1F][13, 05, 1F]
+2789; [15, 05, 1F][13, 05, 1F]
+2793; [15, 05, 1F][13, 05, 1F]
+3248; [15, 05, 1F][13, 05, 1F]
+2491; [15, 05, 15][13, 05, 15][08, 05, 18]
+33E9; [15, 05, 15][13, 05, 15][U+65E5, 10]
+32C9; [15, 05, 15][13, 05, 15][U+6708, 10]
+3362; [15, 05, 15][13, 05, 15][U+70B9, 10]
+246A; [15, 05, 1F][15, 05, 1F]
+24EB; [15, 05, 1F][15, 05, 1F]
+2492; [15, 05, 15][15, 05, 15][08, 05, 18]
+33EA; [15, 05, 15][15, 05, 15][U+65E5, 10]
+32CA; [15, 05, 15][15, 05, 15][U+6708, 10]
+3363; [15, 05, 15][15, 05, 15][U+70B9, 10]
+246B; [15, 05, 1F][17, 05, 1F]
+24EC; [15, 05, 1F][17, 05, 1F]
+2493; [15, 05, 15][17, 05, 15][08, 05, 18]
+1F1A4; [15, 05, 2E][17, 05, 2E][13, 05, 2E][48, 05, B4]
+33EB; [15, 05, 15][17, 05, 15][U+65E5, 10]
+32CB; [15, 05, 15][17, 05, 15][U+6708, 10]
+3364; [15, 05, 15][17, 05, 15][U+70B9, 10]
+246C; [15, 05, 1F][19, 05, 1F]
+24ED; [15, 05, 1F][19, 05, 1F]
+2494; [15, 05, 15][19, 05, 15][08, 05, 18]
+33EC; [15, 05, 15][19, 05, 15][U+65E5, 10]
+3365; [15, 05, 15][19, 05, 15][U+70B9, 10]
+246D; [15, 05, 1F][1B, 05, 1F]
+24EE; [15, 05, 1F][1B, 05, 1F]
+2495; [15, 05, 15][1B, 05, 15][08, 05, 18]
+33ED; [15, 05, 15][1B, 05, 15][U+65E5, 10]
+3366; [15, 05, 15][1B, 05, 15][U+70B9, 10]
+246E; [15, 05, 1F][1D, 05, 1F]
+24EF; [15, 05, 1F][1D, 05, 1F]
+2496; [15, 05, 15][1D, 05, 15][08, 05, 18]
+33EE; [15, 05, 15][1D, 05, 15][U+65E5, 10]
+3367; [15, 05, 15][1D, 05, 15][U+70B9, 10]
+246F; [15, 05, 1F][1F, 05, 1F]
+24F0; [15, 05, 1F][1F, 05, 1F]
+2497; [15, 05, 15][1F, 05, 15][08, 05, 18]
+33EF; [15, 05, 15][1F, 05, 15][U+65E5, 10]
+3368; [15, 05, 15][1F, 05, 15][U+70B9, 10]
+2470; [15, 05, 1F][21, 05, 1F]
+24F1; [15, 05, 1F][21, 05, 1F]
+2498; [15, 05, 15][21, 05, 15][08, 05, 18]
+33F0; [15, 05, 15][21, 05, 15][U+65E5, 10]
+3369; [15, 05, 15][21, 05, 15][U+70B9, 10]
+2471; [15, 05, 1F][23, 05, 1F]
+24F2; [15, 05, 1F][23, 05, 1F]
+2499; [15, 05, 15][23, 05, 15][08, 05, 18]
+33F1; [15, 05, 15][23, 05, 15][U+65E5, 10]
+336A; [15, 05, 15][23, 05, 15][U+70B9, 10]
+2472; [15, 05, 1F][25, 05, 22]
+24F3; [15, 05, 1F][25, 05, 22]
+249A; [15, 05, 15][25, 05, 16][08, 05, 18]
+33F2; [15, 05, 15][25, 05, 16][U+65E5, 10]
+336B; [15, 05, 15][25, 05, 16][U+70B9, 10]
+33E0; [15, 05, 15][U+65E5, 10]
+32C0; [15, 05, 15][U+6708, 10]
+3359; [15, 05, 15][U+70B9, 10]
+
+0032; [17, 05, 05]
+0662; [17, 05, 05]
+06F2; [17, 05, 05]
+07C2; [17, 05, 05]
+0968; [17, 05, 05]
+09E8; [17, 05, 05]
+0A68; [17, 05, 05]
+0AE8; [17, 05, 05]
+0B68; [17, 05, 05]
+0BE8; [17, 05, 05]
+0C68; [17, 05, 05]
+0C7A; [17, 05, 05]
+0C7D; [17, 05, 05]
+0CE8; [17, 05, 05]
+0D68; [17, 05, 05]
+0DE8; [17, 05, 05]
+0E52; [17, 05, 05]
+0ED2; [17, 05, 05]
+0F22; [17, 05, 05]
+1042; [17, 05, 05]
+1092; [17, 05, 05]
+136A; [17, 05, 05]
+17E2; [17, 05, 05]
+17F2; [17, 05, 05]
+1812; [17, 05, 05]
+1948; [17, 05, 05]
+19D2; [17, 05, 05]
+1A82; [17, 05, 05]
+1A92; [17, 05, 05]
+1B52; [17, 05, 05]
+1BB2; [17, 05, 05]
+1C42; [17, 05, 05]
+1C52; [17, 05, 05]
+3022; [17, 05, 05]
+A622; [17, 05, 05]
+A8D2; [17, 05, 05]
+A902; [17, 05, 05]
+A9D2; [17, 05, 05]
+A9F2; [17, 05, 05]
+AA52; [17, 05, 05]
+ABF2; [17, 05, 05]
+10108; [17, 05, 05]
+1015B; [17, 05, 05]
+1015C; [17, 05, 05]
+1015D; [17, 05, 05]
+1015E; [17, 05, 05]
+102E2; [17, 05, 05]
+103D2; [17, 05, 05]
+104A2; [17, 05, 05]
+10859; [17, 05, 05]
+1087A; [17, 05, 05]
+108A8; [17, 05, 05]
+1091A; [17, 05, 05]
+109C1; [17, 05, 05]
+10A41; [17, 05, 05]
+10B59; [17, 05, 05]
+10B79; [17, 05, 05]
+10BAA; [17, 05, 05]
+10D32; [17, 05, 05]
+10E61; [17, 05, 05]
+10F1E; [17, 05, 05]
+11053; [17, 05, 05]
+11068; [17, 05, 05]
+110F2; [17, 05, 05]
+11138; [17, 05, 05]
+111D2; [17, 05, 05]
+111E2; [17, 05, 05]
+112F2; [17, 05, 05]
+11452; [17, 05, 05]
+114D2; [17, 05, 05]
+11652; [17, 05, 05]
+116C2; [17, 05, 05]
+11732; [17, 05, 05]
+118E2; [17, 05, 05]
+11C52; [17, 05, 05]
+11C5B; [17, 05, 05]
+11D52; [17, 05, 05]
+11DA2; [17, 05, 05]
+12400; [17, 05, 05]
+12416; [17, 05, 05]
+1241F; [17, 05, 05]
+12423; [17, 05, 05]
+1242D; [17, 05, 05]
+12435; [17, 05, 05]
+1244A; [17, 05, 05]
+12450; [17, 05, 05]
+12456; [17, 05, 05]
+12459; [17, 05, 05]
+16A62; [17, 05, 05]
+16B52; [17, 05, 05]
+16E82; [17, 05, 05]
+1D2E2; [17, 05, 05]
+1D361; [17, 05, 05]
+1D373; [17, 05, 05]
+1E8C8; [17, 05, 05]
+1E952; [17, 05, 05]
+1EC72; [17, 05, 05]
+1ECA4; [17, 05, 05]
+FF12; [17, 05, 10]
+0F2B; [17, 05, 15]
+1D7D0; [17, 05, 1A]
+1D7DA; [17, 05, 1A]
+1D7E4; [17, 05, 1A]
+1D7EE; [17, 05, 1A]
+1D7F8; [17, 05, 1A]
+2461; [17, 05, 1F]
+24F6; [17, 05, 1F]
+2777; [17, 05, 1F]
+2781; [17, 05, 1F]
+278B; [17, 05, 1F]
+00B2; [17, 05, 24]
+2082; [17, 05, 29]
+16E95; [17, 70, 05]
+1ECB2; [17, 70, 05]
+1F103; [17, 05, 15][06, 05, 1B]
+2489; [17, 05, 15][08, 05, 18]
+2154; [17, 05, 33][0C 94, 05, 20][19, 05, 33]
+2156; [17, 05, 33][0C 94, 05, 20][1D, 05, 33]
+2473; [17, 05, 1F][13, 05, 1F]
+24F4; [17, 05, 1F][13, 05, 1F]
+3249; [17, 05, 1F][13, 05, 1F]
+249B; [17, 05, 15][13, 05, 15][08, 05, 18]
+33F3; [17, 05, 15][13, 05, 15][U+65E5, 10]
+336C; [17, 05, 15][13, 05, 15][U+70B9, 10]
+3251; [17, 05, 1F][15, 05, 1F]
+33F4; [17, 05, 15][15, 05, 15][U+65E5, 10]
+336D; [17, 05, 15][15, 05, 15][U+70B9, 10]
+3252; [17, 05, 1F][17, 05, 1F]
+1F1A2; [17, 05, 2E][17, 05, 2E][08, 05, 30][17, 05, 2E]
+33F5; [17, 05, 15][17, 05, 15][U+65E5, 10]
+336E; [17, 05, 15][17, 05, 15][U+70B9, 10]
+3253; [17, 05, 1F][19, 05, 1F]
+33F6; [17, 05, 15][19, 05, 15][U+65E5, 10]
+336F; [17, 05, 15][19, 05, 15][U+70B9, 10]
+3254; [17, 05, 1F][1B, 05, 1F]
+33F7; [17, 05, 15][1B, 05, 15][U+65E5, 10]
+3370; [17, 05, 15][1B, 05, 15][U+70B9, 10]
+3255; [17, 05, 1F][1D, 05, 1F]
+33F8; [17, 05, 15][1D, 05, 15][U+65E5, 10]
+3256; [17, 05, 1F][1F, 05, 1F]
+33F9; [17, 05, 15][1F, 05, 15][U+65E5, 10]
+3257; [17, 05, 1F][21, 05, 1F]
+33FA; [17, 05, 15][21, 05, 15][U+65E5, 10]
+3258; [17, 05, 1F][23, 05, 1F]
+33FB; [17, 05, 15][23, 05, 15][U+65E5, 10]
+3259; [17, 05, 1F][25, 05, 22]
+33FC; [17, 05, 15][25, 05, 16][U+65E5, 10]
+1F19D; [17, 05, 2E][3E, 05, B4]
+1F19C; [17, 05, 2E][44, 05, 31][30, 05, 2E][04, 05, 30][4E, 05, B4][2E, 05, 2E][4C, 05, 31]
+33E1; [17, 05, 15][U+65E5, 10]
+32C1; [17, 05, 15][U+6708, 10]
+335A; [17, 05, 15][U+70B9, 10]
+
+0033; [19, 05, 05]
+0663; [19, 05, 05]
+06F3; [19, 05, 05]
+07C3; [19, 05, 05]
+0969; [19, 05, 05]
+09E9; [19, 05, 05]
+0A69; [19, 05, 05]
+0AE9; [19, 05, 05]
+0B69; [19, 05, 05]
+0BE9; [19, 05, 05]
+0C69; [19, 05, 05]
+0C7B; [19, 05, 05]
+0C7E; [19, 05, 05]
+0CE9; [19, 05, 05]
+0D69; [19, 05, 05]
+0DE9; [19, 05, 05]
+0E53; [19, 05, 05]
+0ED3; [19, 05, 05]
+0F23; [19, 05, 05]
+1043; [19, 05, 05]
+1093; [19, 05, 05]
+136B; [19, 05, 05]
+17E3; [19, 05, 05]
+17F3; [19, 05, 05]
+1813; [19, 05, 05]
+1949; [19, 05, 05]
+19D3; [19, 05, 05]
+1A83; [19, 05, 05]
+1A93; [19, 05, 05]
+1B53; [19, 05, 05]
+1BB3; [19, 05, 05]
+1C43; [19, 05, 05]
+1C53; [19, 05, 05]
+3023; [19, 05, 05]
+A623; [19, 05, 05]
+A8D3; [19, 05, 05]
+A903; [19, 05, 05]
+A9D3; [19, 05, 05]
+A9F3; [19, 05, 05]
+AA53; [19, 05, 05]
+ABF3; [19, 05, 05]
+10109; [19, 05, 05]
+102E3; [19, 05, 05]
+104A3; [19, 05, 05]
+1085A; [19, 05, 05]
+1087B; [19, 05, 05]
+108A9; [19, 05, 05]
+1091B; [19, 05, 05]
+109C2; [19, 05, 05]
+10A42; [19, 05, 05]
+10B5A; [19, 05, 05]
+10B7A; [19, 05, 05]
+10BAB; [19, 05, 05]
+10D33; [19, 05, 05]
+10E62; [19, 05, 05]
+10F1F; [19, 05, 05]
+11054; [19, 05, 05]
+11069; [19, 05, 05]
+110F3; [19, 05, 05]
+11139; [19, 05, 05]
+111D3; [19, 05, 05]
+111E3; [19, 05, 05]
+112F3; [19, 05, 05]
+11453; [19, 05, 05]
+114D3; [19, 05, 05]
+11653; [19, 05, 05]
+116C3; [19, 05, 05]
+11733; [19, 05, 05]
+118E3; [19, 05, 05]
+11C53; [19, 05, 05]
+11C5C; [19, 05, 05]
+11D53; [19, 05, 05]
+11DA3; [19, 05, 05]
+12401; [19, 05, 05]
+12408; [19, 05, 05]
+12417; [19, 05, 05]
+12420; [19, 05, 05]
+12424; [19, 05, 05]
+12425; [19, 05, 05]
+1242E; [19, 05, 05]
+1242F; [19, 05, 05]
+12436; [19, 05, 05]
+12437; [19, 05, 05]
+1243A; [19, 05, 05]
+1243B; [19, 05, 05]
+1244B; [19, 05, 05]
+12451; [19, 05, 05]
+12457; [19, 05, 05]
+16A63; [19, 05, 05]
+16B53; [19, 05, 05]
+16E83; [19, 05, 05]
+1D2E3; [19, 05, 05]
+1D362; [19, 05, 05]
+1D374; [19, 05, 05]
+1E8C9; [19, 05, 05]
+1E953; [19, 05, 05]
+1EC73; [19, 05, 05]
+1ECA5; [19, 05, 05]
+FF13; [19, 05, 10]
+0F2C; [19, 05, 15]
+1D7D1; [19, 05, 1A]
+1D7DB; [19, 05, 1A]
+1D7E5; [19, 05, 1A]
+1D7EF; [19, 05, 1A]
+1D7F9; [19, 05, 1A]
+2462; [19, 05, 1F]
+24F7; [19, 05, 1F]
+2778; [19, 05, 1F]
+2782; [19, 05, 1F]
+278C; [19, 05, 1F]
+00B3; [19, 05, 24]
+2083; [19, 05, 29]
+16E96; [19, 70, 05]
+1F104; [19, 05, 15][06, 05, 1B]
+248A; [19, 05, 15][08, 05, 18]
+00BE; [19, 05, 33][0C 94, 05, 20][1B, 05, 33]
+2157; [19, 05, 33][0C 94, 05, 20][1D, 05, 33]
+215C; [19, 05, 33][0C 94, 05, 20][23, 05, 33]
+324A; [19, 05, 1F][13, 05, 1F]
+325A; [19, 05, 1F][13, 05, 1F]
+33FD; [19, 05, 15][13, 05, 15][U+65E5, 10]
+325B; [19, 05, 1F][15, 05, 1F]
+33FE; [19, 05, 15][15, 05, 15][U+65E5, 10]
+325C; [19, 05, 1F][17, 05, 1F]
+325D; [19, 05, 1F][19, 05, 1F]
+325E; [19, 05, 1F][1B, 05, 1F]
+325F; [19, 05, 1F][1D, 05, 1F]
+32B1; [19, 05, 1F][1F, 05, 1F]
+32B2; [19, 05, 1F][21, 05, 1F]
+32B3; [19, 05, 1F][23, 05, 1F]
+32B4; [19, 05, 1F][25, 05, 22]
+1F19B; [19, 05, 2E][30, 05, B1]
+33E2; [19, 05, 15][U+65E5, 10]
+32C2; [19, 05, 15][U+6708, 10]
+335B; [19, 05, 15][U+70B9, 10]
+
+0034; [1B, 05, 05]
+0664; [1B, 05, 05]
+06F4; [1B, 05, 05]
+07C4; [1B, 05, 05]
+096A; [1B, 05, 05]
+09EA; [1B, 05, 05]
+0A6A; [1B, 05, 05]
+0AEA; [1B, 05, 05]
+0B6A; [1B, 05, 05]
+0BEA; [1B, 05, 05]
+0C6A; [1B, 05, 05]
+0CEA; [1B, 05, 05]
+0D6A; [1B, 05, 05]
+0DEA; [1B, 05, 05]
+0E54; [1B, 05, 05]
+0ED4; [1B, 05, 05]
+0F24; [1B, 05, 05]
+1044; [1B, 05, 05]
+1094; [1B, 05, 05]
+136C; [1B, 05, 05]
+17E4; [1B, 05, 05]
+17F4; [1B, 05, 05]
+1814; [1B, 05, 05]
+194A; [1B, 05, 05]
+19D4; [1B, 05, 05]
+1A84; [1B, 05, 05]
+1A94; [1B, 05, 05]
+1B54; [1B, 05, 05]
+1BB4; [1B, 05, 05]
+1C44; [1B, 05, 05]
+1C54; [1B, 05, 05]
+3024; [1B, 05, 05]
+A624; [1B, 05, 05]
+A8D4; [1B, 05, 05]
+A904; [1B, 05, 05]
+A9D4; [1B, 05, 05]
+A9F4; [1B, 05, 05]
+AA54; [1B, 05, 05]
+ABF4; [1B, 05, 05]
+1010A; [1B, 05, 05]
+102E4; [1B, 05, 05]
+104A4; [1B, 05, 05]
+1087C; [1B, 05, 05]
+108AA; [1B, 05, 05]
+108AB; [1B, 05, 05]
+109C3; [1B, 05, 05]
+10A43; [1B, 05, 05]
+10B5B; [1B, 05, 05]
+10B7B; [1B, 05, 05]
+10BAC; [1B, 05, 05]
+10D34; [1B, 05, 05]
+10E63; [1B, 05, 05]
+10F20; [1B, 05, 05]
+11055; [1B, 05, 05]
+1106A; [1B, 05, 05]
+110F4; [1B, 05, 05]
+1113A; [1B, 05, 05]
+111D4; [1B, 05, 05]
+111E4; [1B, 05, 05]
+112F4; [1B, 05, 05]
+11454; [1B, 05, 05]
+114D4; [1B, 05, 05]
+11654; [1B, 05, 05]
+116C4; [1B, 05, 05]
+11734; [1B, 05, 05]
+118E4; [1B, 05, 05]
+11C54; [1B, 05, 05]
+11C5D; [1B, 05, 05]
+11D54; [1B, 05, 05]
+11DA4; [1B, 05, 05]
+12402; [1B, 05, 05]
+12409; [1B, 05, 05]
+1240F; [1B, 05, 05]
+12418; [1B, 05, 05]
+12421; [1B, 05, 05]
+12426; [1B, 05, 05]
+12430; [1B, 05, 05]
+12438; [1B, 05, 05]
+1243C; [1B, 05, 05]
+1243D; [1B, 05, 05]
+1243E; [1B, 05, 05]
+1243F; [1B, 05, 05]
+1244C; [1B, 05, 05]
+12452; [1B, 05, 05]
+12453; [1B, 05, 05]
+12469; [1B, 05, 05]
+16A64; [1B, 05, 05]
+16B54; [1B, 05, 05]
+16E84; [1B, 05, 05]
+1D2E4; [1B, 05, 05]
+1D363; [1B, 05, 05]
+1D375; [1B, 05, 05]
+1E8CA; [1B, 05, 05]
+1E954; [1B, 05, 05]
+1EC74; [1B, 05, 05]
+1ECA6; [1B, 05, 05]
+FF14; [1B, 05, 10]
+0F2D; [1B, 05, 15]
+1D7D2; [1B, 05, 1A]
+1D7DC; [1B, 05, 1A]
+1D7E6; [1B, 05, 1A]
+1D7F0; [1B, 05, 1A]
+1D7FA; [1B, 05, 1A]
+2463; [1B, 05, 1F]
+24F8; [1B, 05, 1F]
+2779; [1B, 05, 1F]
+2783; [1B, 05, 1F]
+278D; [1B, 05, 1F]
+2074; [1B, 05, 24]
+2084; [1B, 05, 29]
+1F105; [1B, 05, 15][06, 05, 1B]
+248B; [1B, 05, 15][08, 05, 18]
+2158; [1B, 05, 33][0C 94, 05, 20][1D, 05, 33]
+324B; [1B, 05, 1F][13, 05, 1F]
+32B5; [1B, 05, 1F][13, 05, 1F]
+32B6; [1B, 05, 1F][15, 05, 1F]
+32B7; [1B, 05, 1F][17, 05, 1F]
+32B8; [1B, 05, 1F][19, 05, 1F]
+32B9; [1B, 05, 1F][1B, 05, 1F]
+32BA; [1B, 05, 1F][1D, 05, 1F]
+32BB; [1B, 05, 1F][1F, 05, 1F]
+32BC; [1B, 05, 1F][21, 05, 1F]
+32BD; [1B, 05, 1F][23, 05, 1F]
+32BE; [1B, 05, 1F][25, 05, 22]
+1F19E; [1B, 05, 2E][3E, 05, B4]
+33E3; [1B, 05, 15][U+65E5, 10]
+32C3; [1B, 05, 15][U+6708, 10]
+335C; [1B, 05, 15][U+70B9, 10]
+
+0035; [1D, 05, 05]
+0665; [1D, 05, 05]
+06F5; [1D, 05, 05]
+07C5; [1D, 05, 05]
+096B; [1D, 05, 05]
+09EB; [1D, 05, 05]
+0A6B; [1D, 05, 05]
+0AEB; [1D, 05, 05]
+0B6B; [1D, 05, 05]
+0BEB; [1D, 05, 05]
+0C6B; [1D, 05, 05]
+0CEB; [1D, 05, 05]
+0D6B; [1D, 05, 05]
+0DEB; [1D, 05, 05]
+0E55; [1D, 05, 05]
+0ED5; [1D, 05, 05]
+0F25; [1D, 05, 05]
+1045; [1D, 05, 05]
+1095; [1D, 05, 05]
+136D; [1D, 05, 05]
+17E5; [1D, 05, 05]
+17F5; [1D, 05, 05]
+1815; [1D, 05, 05]
+194B; [1D, 05, 05]
+19D5; [1D, 05, 05]
+1A85; [1D, 05, 05]
+1A95; [1D, 05, 05]
+1B55; [1D, 05, 05]
+1BB5; [1D, 05, 05]
+1C45; [1D, 05, 05]
+1C55; [1D, 05, 05]
+3025; [1D, 05, 05]
+A625; [1D, 05, 05]
+A8D5; [1D, 05, 05]
+A905; [1D, 05, 05]
+A9D5; [1D, 05, 05]
+A9F5; [1D, 05, 05]
+AA55; [1D, 05, 05]
+ABF5; [1D, 05, 05]
+1010B; [1D, 05, 05]
+10143; [1D, 05, 05]
+10148; [1D, 05, 05]
+1014F; [1D, 05, 05]
+1015F; [1D, 05, 05]
+10173; [1D, 05, 05]
+102E5; [1D, 05, 05]
+10321; [1D, 05, 05]
+104A5; [1D, 05, 05]
+1087D; [1D, 05, 05]
+108AC; [1D, 05, 05]
+108FC; [1D, 05, 05]
+109C4; [1D, 05, 05]
+10AEC; [1D, 05, 05]
+10CFB; [1D, 05, 05]
+10D35; [1D, 05, 05]
+10E64; [1D, 05, 05]
+10F21; [1D, 05, 05]
+11056; [1D, 05, 05]
+1106B; [1D, 05, 05]
+110F5; [1D, 05, 05]
+1113B; [1D, 05, 05]
+111D5; [1D, 05, 05]
+111E5; [1D, 05, 05]
+112F5; [1D, 05, 05]
+11455; [1D, 05, 05]
+114D5; [1D, 05, 05]
+11655; [1D, 05, 05]
+116C5; [1D, 05, 05]
+11735; [1D, 05, 05]
+118E5; [1D, 05, 05]
+11C55; [1D, 05, 05]
+11C5E; [1D, 05, 05]
+11D55; [1D, 05, 05]
+11DA5; [1D, 05, 05]
+12403; [1D, 05, 05]
+1240A; [1D, 05, 05]
+12410; [1D, 05, 05]
+12419; [1D, 05, 05]
+12422; [1D, 05, 05]
+12427; [1D, 05, 05]
+12431; [1D, 05, 05]
+12439; [1D, 05, 05]
+1244D; [1D, 05, 05]
+12454; [1D, 05, 05]
+12455; [1D, 05, 05]
+1246A; [1D, 05, 05]
+16A65; [1D, 05, 05]
+16B55; [1D, 05, 05]
+16E85; [1D, 05, 05]
+1D2E5; [1D, 05, 05]
+1D364; [1D, 05, 05]
+1D376; [1D, 05, 05]
+1D378; [1D, 05, 05]
+1E8CB; [1D, 05, 05]
+1E955; [1D, 05, 05]
+1EC75; [1D, 05, 05]
+1ECA7; [1D, 05, 05]
+FF15; [1D, 05, 10]
+0F2E; [1D, 05, 15]
+1D7D3; [1D, 05, 1A]
+1D7DD; [1D, 05, 1A]
+1D7E7; [1D, 05, 1A]
+1D7F1; [1D, 05, 1A]
+1D7FB; [1D, 05, 1A]
+2464; [1D, 05, 1F]
+24F9; [1D, 05, 1F]
+277A; [1D, 05, 1F]
+2784; [1D, 05, 1F]
+278E; [1D, 05, 1F]
+2075; [1D, 05, 24]
+2085; [1D, 05, 29]
+1F106; [1D, 05, 15][06, 05, 1B]
+248C; [1D, 05, 15][08, 05, 18]
+1F1A0; [1D, 05, 2E][08, 05, 30][15, 05, 2E]
+215A; [1D, 05, 33][0C 94, 05, 20][1F, 05, 33]
+215D; [1D, 05, 33][0C 94, 05, 20][23, 05, 33]
+324C; [1D, 05, 1F][13, 05, 1F]
+32BF; [1D, 05, 1F][13, 05, 1F]
+33E4; [1D, 05, 15][U+65E5, 10]
+32C4; [1D, 05, 15][U+6708, 10]
+335D; [1D, 05, 15][U+70B9, 10]
+
+0036; [1F, 05, 05]
+0666; [1F, 05, 05]
+06F6; [1F, 05, 05]
+07C6; [1F, 05, 05]
+096C; [1F, 05, 05]
+09EC; [1F, 05, 05]
+0A6C; [1F, 05, 05]
+0AEC; [1F, 05, 05]
+0B6C; [1F, 05, 05]
+0BEC; [1F, 05, 05]
+0C6C; [1F, 05, 05]
+0CEC; [1F, 05, 05]
+0D6C; [1F, 05, 05]
+0DEC; [1F, 05, 05]
+0E56; [1F, 05, 05]
+0ED6; [1F, 05, 05]
+0F26; [1F, 05, 05]
+1046; [1F, 05, 05]
+1096; [1F, 05, 05]
+136E; [1F, 05, 05]
+17E6; [1F, 05, 05]
+17F6; [1F, 05, 05]
+1816; [1F, 05, 05]
+194C; [1F, 05, 05]
+19D6; [1F, 05, 05]
+1A86; [1F, 05, 05]
+1A96; [1F, 05, 05]
+1B56; [1F, 05, 05]
+1BB6; [1F, 05, 05]
+1C46; [1F, 05, 05]
+1C56; [1F, 05, 05]
+2185; [1F, 05, 05]
+3026; [1F, 05, 05]
+A626; [1F, 05, 05]
+A8D6; [1F, 05, 05]
+A906; [1F, 05, 05]
+A9D6; [1F, 05, 05]
+A9F6; [1F, 05, 05]
+AA56; [1F, 05, 05]
+ABF6; [1F, 05, 05]
+1010C; [1F, 05, 05]
+102E6; [1F, 05, 05]
+104A6; [1F, 05, 05]
+109C5; [1F, 05, 05]
+10D36; [1F, 05, 05]
+10E65; [1F, 05, 05]
+11057; [1F, 05, 05]
+1106C; [1F, 05, 05]
+110F6; [1F, 05, 05]
+1113C; [1F, 05, 05]
+111D6; [1F, 05, 05]
+111E6; [1F, 05, 05]
+112F6; [1F, 05, 05]
+11456; [1F, 05, 05]
+114D6; [1F, 05, 05]
+11656; [1F, 05, 05]
+116C6; [1F, 05, 05]
+11736; [1F, 05, 05]
+118E6; [1F, 05, 05]
+11C56; [1F, 05, 05]
+11C5F; [1F, 05, 05]
+11D56; [1F, 05, 05]
+11DA6; [1F, 05, 05]
+12404; [1F, 05, 05]
+1240B; [1F, 05, 05]
+12411; [1F, 05, 05]
+1241A; [1F, 05, 05]
+12428; [1F, 05, 05]
+12440; [1F, 05, 05]
+1244E; [1F, 05, 05]
+1246B; [1F, 05, 05]
+16A66; [1F, 05, 05]
+16B56; [1F, 05, 05]
+16E86; [1F, 05, 05]
+1D2E6; [1F, 05, 05]
+1D365; [1F, 05, 05]
+1E8CC; [1F, 05, 05]
+1E956; [1F, 05, 05]
+1EC76; [1F, 05, 05]
+1ECA8; [1F, 05, 05]
+FF16; [1F, 05, 10]
+0F2F; [1F, 05, 15]
+1D7D4; [1F, 05, 1A]
+1D7DE; [1F, 05, 1A]
+1D7E8; [1F, 05, 1A]
+1D7F2; [1F, 05, 1A]
+1D7FC; [1F, 05, 1A]
+2465; [1F, 05, 1F]
+24FA; [1F, 05, 1F]
+277B; [1F, 05, 1F]
+2785; [1F, 05, 1F]
+278F; [1F, 05, 1F]
+2076; [1F, 05, 24]
+2086; [1F, 05, 29]
+1F107; [1F, 05, 15][06, 05, 1B]
+248D; [1F, 05, 15][08, 05, 18]
+324D; [1F, 05, 1F][13, 05, 1F]
+1F1A3; [1F, 05, 2E][13, 05, 2E][48, 05, B4]
+33E5; [1F, 05, 15][U+65E5, 10]
+32C5; [1F, 05, 15][U+6708, 10]
+335E; [1F, 05, 15][U+70B9, 10]
+
+0037; [21, 05, 05]
+0667; [21, 05, 05]
+06F7; [21, 05, 05]
+07C7; [21, 05, 05]
+096D; [21, 05, 05]
+09ED; [21, 05, 05]
+0A6D; [21, 05, 05]
+0AED; [21, 05, 05]
+0B6D; [21, 05, 05]
+0BED; [21, 05, 05]
+0C6D; [21, 05, 05]
+0CED; [21, 05, 05]
+0D6D; [21, 05, 05]
+0DED; [21, 05, 05]
+0E57; [21, 05, 05]
+0ED7; [21, 05, 05]
+0F27; [21, 05, 05]
+1047; [21, 05, 05]
+1097; [21, 05, 05]
+136F; [21, 05, 05]
+17E7; [21, 05, 05]
+17F7; [21, 05, 05]
+1817; [21, 05, 05]
+194D; [21, 05, 05]
+19D7; [21, 05, 05]
+1A87; [21, 05, 05]
+1A97; [21, 05, 05]
+1B57; [21, 05, 05]
+1BB7; [21, 05, 05]
+1C47; [21, 05, 05]
+1C57; [21, 05, 05]
+3027; [21, 05, 05]
+A627; [21, 05, 05]
+A8D7; [21, 05, 05]
+A907; [21, 05, 05]
+A9D7; [21, 05, 05]
+A9F7; [21, 05, 05]
+AA57; [21, 05, 05]
+ABF7; [21, 05, 05]
+1010D; [21, 05, 05]
+102E7; [21, 05, 05]
+104A7; [21, 05, 05]
+109C6; [21, 05, 05]
+10D37; [21, 05, 05]
+10E66; [21, 05, 05]
+11058; [21, 05, 05]
+1106D; [21, 05, 05]
+110F7; [21, 05, 05]
+1113D; [21, 05, 05]
+111D7; [21, 05, 05]
+111E7; [21, 05, 05]
+112F7; [21, 05, 05]
+11457; [21, 05, 05]
+114D7; [21, 05, 05]
+11657; [21, 05, 05]
+116C7; [21, 05, 05]
+11737; [21, 05, 05]
+118E7; [21, 05, 05]
+11C57; [21, 05, 05]
+11C60; [21, 05, 05]
+11D57; [21, 05, 05]
+11DA7; [21, 05, 05]
+12405; [21, 05, 05]
+1240C; [21, 05, 05]
+12412; [21, 05, 05]
+1241B; [21, 05, 05]
+12429; [21, 05, 05]
+12441; [21, 05, 05]
+12442; [21, 05, 05]
+12443; [21, 05, 05]
+1246C; [21, 05, 05]
+16A67; [21, 05, 05]
+16B57; [21, 05, 05]
+16E87; [21, 05, 05]
+1D2E7; [21, 05, 05]
+1D366; [21, 05, 05]
+1E8CD; [21, 05, 05]
+1E957; [21, 05, 05]
+1EC77; [21, 05, 05]
+1ECA9; [21, 05, 05]
+FF17; [21, 05, 10]
+0F30; [21, 05, 15]
+1D7D5; [21, 05, 1A]
+1D7DF; [21, 05, 1A]
+1D7E9; [21, 05, 1A]
+1D7F3; [21, 05, 1A]
+1D7FD; [21, 05, 1A]
+2466; [21, 05, 1F]
+24FB; [21, 05, 1F]
+277C; [21, 05, 1F]
+2786; [21, 05, 1F]
+2790; [21, 05, 1F]
+2077; [21, 05, 24]
+2087; [21, 05, 29]
+1F108; [21, 05, 15][06, 05, 1B]
+248E; [21, 05, 15][08, 05, 18]
+1F1A1; [21, 05, 2E][08, 05, 30][15, 05, 2E]
+215E; [21, 05, 33][0C 94, 05, 20][23, 05, 33]
+324E; [21, 05, 1F][13, 05, 1F]
+33E6; [21, 05, 15][U+65E5, 10]
+32C6; [21, 05, 15][U+6708, 10]
+335F; [21, 05, 15][U+70B9, 10]
+
+0038; [23, 05, 05]
+0668; [23, 05, 05]
+06F8; [23, 05, 05]
+07C8; [23, 05, 05]
+096E; [23, 05, 05]
+09EE; [23, 05, 05]
+0A6E; [23, 05, 05]
+0AEE; [23, 05, 05]
+0B6E; [23, 05, 05]
+0BEE; [23, 05, 05]
+0C6E; [23, 05, 05]
+0CEE; [23, 05, 05]
+0D6E; [23, 05, 05]
+0DEE; [23, 05, 05]
+0E58; [23, 05, 05]
+0ED8; [23, 05, 05]
+0F28; [23, 05, 05]
+1048; [23, 05, 05]
+1098; [23, 05, 05]
+1370; [23, 05, 05]
+17E8; [23, 05, 05]
+17F8; [23, 05, 05]
+1818; [23, 05, 05]
+194E; [23, 05, 05]
+19D8; [23, 05, 05]
+1A88; [23, 05, 05]
+1A98; [23, 05, 05]
+1B58; [23, 05, 05]
+1BB8; [23, 05, 05]
+1C48; [23, 05, 05]
+1C58; [23, 05, 05]
+3028; [23, 05, 05]
+A628; [23, 05, 05]
+A8D8; [23, 05, 05]
+A908; [23, 05, 05]
+A9D8; [23, 05, 05]
+A9F8; [23, 05, 05]
+AA58; [23, 05, 05]
+ABF8; [23, 05, 05]
+1010E; [23, 05, 05]
+102E8; [23, 05, 05]
+104A8; [23, 05, 05]
+109C7; [23, 05, 05]
+10D38; [23, 05, 05]
+10E67; [23, 05, 05]
+11059; [23, 05, 05]
+1106E; [23, 05, 05]
+110F8; [23, 05, 05]
+1113E; [23, 05, 05]
+111D8; [23, 05, 05]
+111E8; [23, 05, 05]
+112F8; [23, 05, 05]
+11458; [23, 05, 05]
+114D8; [23, 05, 05]
+11658; [23, 05, 05]
+116C8; [23, 05, 05]
+11738; [23, 05, 05]
+118E8; [23, 05, 05]
+11C58; [23, 05, 05]
+11C61; [23, 05, 05]
+11D58; [23, 05, 05]
+11DA8; [23, 05, 05]
+12406; [23, 05, 05]
+1240D; [23, 05, 05]
+12413; [23, 05, 05]
+1241C; [23, 05, 05]
+1242A; [23, 05, 05]
+12444; [23, 05, 05]
+12445; [23, 05, 05]
+1246D; [23, 05, 05]
+16A68; [23, 05, 05]
+16B58; [23, 05, 05]
+16E88; [23, 05, 05]
+1D2E8; [23, 05, 05]
+1D367; [23, 05, 05]
+1E8CE; [23, 05, 05]
+1E958; [23, 05, 05]
+1EC78; [23, 05, 05]
+1ECAA; [23, 05, 05]
+FF18; [23, 05, 10]
+0F31; [23, 05, 15]
+1D7D6; [23, 05, 1A]
+1D7E0; [23, 05, 1A]
+1D7EA; [23, 05, 1A]
+1D7F4; [23, 05, 1A]
+1D7FE; [23, 05, 1A]
+2467; [23, 05, 1F]
+24FC; [23, 05, 1F]
+277D; [23, 05, 1F]
+2787; [23, 05, 1F]
+2791; [23, 05, 1F]
+2078; [23, 05, 24]
+2088; [23, 05, 29]
+1F109; [23, 05, 15][06, 05, 1B]
+248F; [23, 05, 15][08, 05, 18]
+324F; [23, 05, 1F][13, 05, 1F]
+1F19F; [23, 05, 2E][3E, 05, B4]
+33E7; [23, 05, 15][U+65E5, 10]
+32C7; [23, 05, 15][U+6708, 10]
+3360; [23, 05, 15][U+70B9, 10]
+
+0039; [25, 05, 05]
+0669; [25, 05, 05]
+06F9; [25, 05, 05]
+07C9; [25, 05, 05]
+096F; [25, 05, 05]
+09EF; [25, 05, 05]
+0A6F; [25, 05, 05]
+0AEF; [25, 05, 05]
+0B6F; [25, 05, 05]
+0BEF; [25, 05, 05]
+0C6F; [25, 05, 05]
+0CEF; [25, 05, 05]
+0D6F; [25, 05, 05]
+0DEF; [25, 05, 05]
+0E59; [25, 05, 05]
+0ED9; [25, 05, 05]
+0F29; [25, 05, 05]
+1049; [25, 05, 05]
+1099; [25, 05, 05]
+1371; [25, 05, 05]
+17E9; [25, 05, 05]
+17F9; [25, 05, 05]
+1819; [25, 05, 05]
+194F; [25, 05, 05]
+19D9; [25, 05, 05]
+1A89; [25, 05, 05]
+1A99; [25, 05, 05]
+1B59; [25, 05, 05]
+1BB9; [25, 05, 05]
+1C49; [25, 05, 05]
+1C59; [25, 05, 05]
+3029; [25, 05, 05]
+A629; [25, 05, 05]
+A8D9; [25, 05, 05]
+A909; [25, 05, 05]
+A9D9; [25, 05, 05]
+A9F9; [25, 05, 05]
+AA59; [25, 05, 05]
+ABF9; [25, 05, 05]
+1010F; [25, 05, 05]
+102E9; [25, 05, 05]
+104A9; [25, 05, 05]
+109C8; [25, 05, 05]
+10D39; [25, 05, 05]
+10E68; [25, 05, 05]
+1105A; [25, 05, 05]
+1106F; [25, 05, 05]
+110F9; [25, 05, 05]
+1113F; [25, 05, 05]
+111D9; [25, 05, 05]
+111E9; [25, 05, 05]
+112F9; [25, 05, 05]
+11459; [25, 05, 05]
+114D9; [25, 05, 05]
+11659; [25, 05, 05]
+116C9; [25, 05, 05]
+11739; [25, 05, 05]
+118E9; [25, 05, 05]
+11C59; [25, 05, 05]
+11C62; [25, 05, 05]
+11D59; [25, 05, 05]
+11DA9; [25, 05, 05]
+12407; [25, 05, 05]
+1240E; [25, 05, 05]
+12414; [25, 05, 05]
+1241D; [25, 05, 05]
+1242B; [25, 05, 05]
+12446; [25, 05, 05]
+12447; [25, 05, 05]
+12448; [25, 05, 05]
+12449; [25, 05, 05]
+1246E; [25, 05, 05]
+16A69; [25, 05, 05]
+16B59; [25, 05, 05]
+16E89; [25, 05, 05]
+1D2E9; [25, 05, 05]
+1D368; [25, 05, 05]
+1E8CF; [25, 05, 05]
+1E959; [25, 05, 05]
+1EC79; [25, 05, 05]
+1ECAB; [25, 05, 05]
+FF19; [25, 05, 10]
+0F32; [25, 05, 16]
+1D7D7; [25, 05, 1C]
+1D7E1; [25, 05, 1C]
+1D7EB; [25, 05, 1C]
+1D7F5; [25, 05, 1C]
+1D7FF; [25, 05, 1C]
+2468; [25, 05, 22]
+24FD; [25, 05, 22]
+277E; [25, 05, 22]
+2788; [25, 05, 22]
+2792; [25, 05, 22]
+2079; [25, 05, 28]
+2089; [25, 05, 2E]
+1F10A; [25, 05, 16][06, 05, 1B]
+2490; [25, 05, 16][08, 05, 18]
+33E8; [25, 05, 16][U+65E5, 10]
+32C8; [25, 05, 16][U+6708, 10]
+3361; [25, 05, 16][U+70B9, 10]
+
+FDD0 FF21; [27 02 02, 05, 05] # REORDER_RESERVED_BEFORE_LATIN first primary starts new lead byte
+
+FDD1 004C; [29 02 02, 05, 05] # LATIN first primary starts new lead byte
+
+0061; [2A, 05, 05]
+FF41; [2A, 05, 10]
+0363; [2A, 05, 13]
+1D41A; [2A, 05, 16]
+1D44E; [2A, 05, 16]
+1D482; [2A, 05, 16]
+1D4B6; [2A, 05, 16]
+1D4EA; [2A, 05, 16]
+1D51E; [2A, 05, 16]
+1D552; [2A, 05, 16]
+1D586; [2A, 05, 16]
+1D5BA; [2A, 05, 16]
+1D5EE; [2A, 05, 16]
+1D622; [2A, 05, 16]
+1D656; [2A, 05, 16]
+1D68A; [2A, 05, 16]
+24D0; [2A, 05, 19]
+0041; [2A, 05, 9C]
+FF21; [2A, 05, 9F]
+1D400; [2A, 05, A5]
+1D434; [2A, 05, A5]
+1D468; [2A, 05, A5]
+1D49C; [2A, 05, A5]
+1D4D0; [2A, 05, A5]
+1D504; [2A, 05, A5]
+1D538; [2A, 05, A5]
+1D56C; [2A, 05, A5]
+1D5A0; [2A, 05, A5]
+1D5D4; [2A, 05, A5]
+1D608; [2A, 05, A5]
+1D63C; [2A, 05, A5]
+1D670; [2A, 05, A5]
+24B6; [2A, 05, A8]
+1F150; [2A, 05, A8]
+00AA; [2A, 05, 2B]
+1D43; [2A, 05, 2B]
+2090; [2A, 05, 2E]
+1D2C; [2A, 05, B4]
+1F130; [2A, 05, B4]
+1F170; [2A, 05, B4]
+00E1; [2A, 05, 05][, 88, 05]
+00C1; [2A, 05, 9C][, 88, 05]
+00E0; [2A, 05, 05][, 8A, 05]
+00C0; [2A, 05, 9C][, 8A, 05]
+0103; [2A, 05, 05][, 8C, 05]
+0102; [2A, 05, 9C][, 8C, 05]
+1EAF; [2A, 05, 05][, 8C, 05][, 88, 05]
+1EAE; [2A, 05, 9C][, 8C, 05][, 88, 05]
+1EB1; [2A, 05, 05][, 8C, 05][, 8A, 05]
+1EB0; [2A, 05, 9C][, 8C, 05][, 8A, 05]
+1EB5; [2A, 05, 05][, 8C, 05][, 9A, 05]
+1EB4; [2A, 05, 9C][, 8C, 05][, 9A, 05]
+1EB3; [2A, 05, 05][, 8C, 05][, B6, 05]
+1EB2; [2A, 05, 9C][, 8C, 05][, B6, 05]
+00E2; [2A, 05, 05][, 8E, 05]
+00C2; [2A, 05, 9C][, 8E, 05]
+1EA5; [2A, 05, 05][, 8E, 05][, 88, 05]
+1EA4; [2A, 05, 9C][, 8E, 05][, 88, 05]
+1EA7; [2A, 05, 05][, 8E, 05][, 8A, 05]
+1EA6; [2A, 05, 9C][, 8E, 05][, 8A, 05]
+1EAB; [2A, 05, 05][, 8E, 05][, 9A, 05]
+1EAA; [2A, 05, 9C][, 8E, 05][, 9A, 05]
+1EA9; [2A, 05, 05][, 8E, 05][, B6, 05]
+1EA8; [2A, 05, 9C][, 8E, 05][, B6, 05]
+01CE; [2A, 05, 05][, 90, 05]
+01CD; [2A, 05, 9C][, 90, 05]
+00E5; [2A, 05, 05][, 92, 05]
+00C5; [2A, 05, 9C][, 92, 05]
+212B; [2A, 05, 9C][, 92, 05]
+01FB; [2A, 05, 05][, 92, 05][, 88, 05]
+01FA; [2A, 05, 9C][, 92, 05][, 88, 05]
+00E4; [2A, 05, 05][, 96, 05]
+1DF2; [2A, 05, 13][, 96, 20]
+A79B; [2A, 05, 13][, 96, 20]
+00C4; [2A, 05, 9C][, 96, 05]
+A79A; [2A, 05, A2][, 96, 20]
+01DF; [2A, 05, 05][, 96, 05][, A4, 05]
+01DE; [2A, 05, 9C][, 96, 05][, A4, 05]
+00E3; [2A, 05, 05][, 9A, 05]
+00C3; [2A, 05, 9C][, 9A, 05]
+0227; [2A, 05, 05][, 9C, 05]
+0226; [2A, 05, 9C][, 9C, 05]
+01E1; [2A, 05, 05][, 9C, 05][, A4, 05]
+01E0; [2A, 05, 9C][, 9C, 05][, A4, 05]
+0105; [2A, 05, 05][, A2, 05]
+0104; [2A, 05, 9C][, A2, 05]
+0101; [2A, 05, 05][, A4, 05]
+0100; [2A, 05, 9C][, A4, 05]
+1EA3; [2A, 05, 05][, B6, 05]
+1EA2; [2A, 05, 9C][, B6, 05]
+0201; [2A, 05, 05][, B8, 05]
+0200; [2A, 05, 9C][, B8, 05]
+0203; [2A, 05, 05][, BC, 05]
+0202; [2A, 05, 9C][, BC, 05]
+1EA1; [2A, 05, 05][, C4, 05]
+1EA0; [2A, 05, 9C][, C4, 05]
+1EB7; [2A, 05, 05][, C4, 05][, 8C, 05]
+1EB6; [2A, 05, 9C][, C4, 05][, 8C, 05]
+1EAD; [2A, 05, 05][, C4, 05][, 8E, 05]
+1EAC; [2A, 05, 9C][, C4, 05][, 8E, 05]
+1E01; [2A, 05, 05][, C8, 05]
+1E00; [2A, 05, 9C][, C8, 05]
+1DD3; [2A, 70, 05]
+33C2; [2A, 05, 31][08, 05, 30][42, 05, 31][08, 05, 30]
+2100; [2A, 05, 13][0A 8A, 05, 2E][2E, 05, 13]
+2101; [2A, 05, 13][0A 8A, 05, 2E][4E, 05, 13]
+214D; [2A, 05, A2][0A 8A, 05, 2E][4E, 05, A2]
+33DF; [2A, 05, B4][0C 92, 05, 20][42, 05, 31]
+A733; [2A, 05, 13][2A, 05, 13]
+A732; [2A, 05, A2][2A, 05, A2]
+1F18E; [2A, 05, B4][2C, 05, B1]
+00E6; [2A, 70, 05][32, 05, 13]
+1DD4; [2A, 70, 05][32, 05, 13]
+00C6; [2A, 70, A0][32, 05, A2]
+1D2D; [2A, 70, 2E][32, 05, 2B]
+01FD; [2A, 70, 05][32, 05, 13][, 88, 05]
+01FC; [2A, 70, A0][32, 05, A2][, 88, 05]
+01E3; [2A, 70, 05][32, 05, 13][, A4, 05]
+01E2; [2A, 70, A0][32, 05, A2][, A4, 05]
+1DD5; [2A, 05, 13][46, 05, 13]
+A735; [2A, 05, 13][46, 05, 13]
+A734; [2A, 05, A2][46, 05, A2]
+A737; [2A, 05, 13][52, 05, 13]
+A736; [2A, 05, A2][52, 05, A2]
+3373; [2A, 05, B4][52, 05, B1]
+1DD6; [2A, 05, 13][54, 05, 13]
+A739; [2A, 05, 13][54, 05, 13]
+A738; [2A, 05, A2][54, 05, A2]
+A73B; [2A, 70, 05][54, 05, 13]
+A73A; [2A, 70, A0][54, 05, A2]
+A73D; [2A, 05, 13][5A, 05, 13]
+A73C; [2A, 05, A2][5A, 05, A2]
+1E9A; [2A, 05, 13][5D 56, 05, 20]
+
+1D00; [2B 06, 05, 05]
+
+2C65; [2B 08, 05, 05]
+023A; [2B 08, 05, A0]
+
+1D8F; [2B 0A, 05, 05]
+
+1D01; [2B 0C, 05, 05]
+
+1D02; [2B 0E, 05, 05]
+1D46; [2B 0E, 05, 20]
+
+AB31; [2B 10, 05, 05]
+
+0250; [2B 12, 05, 05]
+2C6F; [2B 12, 05, A0]
+1D44; [2B 12, 05, 2E]
+
+0251; [2B 14, 05, 05]
+1DE7; [2B 14, 05, 10]
+2C6D; [2B 14, 05, 9E]
+1D45; [2B 14, 05, 2C]
+
+AB30; [2B 16, 05, 05]
+
+1D90; [2B 18, 05, 05]
+
+0252; [2B 1A, 05, 05]
+2C70; [2B 1A, 05, A0]
+1D9B; [2B 1A, 05, 2E]
+
+AB64; [2B 1C, 05, 05]
+
+0062; [2C, 05, 05]
+FF42; [2C, 05, 10]
+1DE8; [2C, 05, 13]
+1D41B; [2C, 05, 16]
+1D44F; [2C, 05, 16]
+1D483; [2C, 05, 16]
+1D4B7; [2C, 05, 16]
+1D4EB; [2C, 05, 16]
+1D51F; [2C, 05, 16]
+1D553; [2C, 05, 16]
+1D587; [2C, 05, 16]
+1D5BB; [2C, 05, 16]
+1D5EF; [2C, 05, 16]
+1D623; [2C, 05, 16]
+1D657; [2C, 05, 16]
+1D68B; [2C, 05, 16]
+24D1; [2C, 05, 19]
+0042; [2C, 05, 9C]
+FF22; [2C, 05, 9F]
+212C; [2C, 05, A5]
+1D401; [2C, 05, A5]
+1D435; [2C, 05, A5]
+1D469; [2C, 05, A5]
+1D4D1; [2C, 05, A5]
+1D505; [2C, 05, A5]
+1D539; [2C, 05, A5]
+1D56D; [2C, 05, A5]
+1D5A1; [2C, 05, A5]
+1D5D5; [2C, 05, A5]
+1D609; [2C, 05, A5]
+1D63D; [2C, 05, A5]
+1D671; [2C, 05, A5]
+24B7; [2C, 05, A8]
+1F151; [2C, 05, A8]
+1D47; [2C, 05, 2B]
+1D2E; [2C, 05, B1]
+1F131; [2C, 05, B1]
+1F171; [2C, 05, B1]
+1E03; [2C, 05, 05][, 9C, 05]
+1E02; [2C, 05, 9C][, 9C, 05]
+1E05; [2C, 05, 05][, C4, 05]
+1E04; [2C, 05, 9C][, C4, 05]
+1E07; [2C, 05, 05][, D2, 05]
+1E06; [2C, 05, 9C][, D2, 05]
+3374; [2C, 05, 2E][2A, 05, 31][4C, 05, 31]
+33C3; [2C, 05, B1][4A, 05, 34]
+
+0299; [2D 06, 05, 05]
+
+0180; [2D 08, 05, 05]
+0243; [2D 08, 05, A0]
+
+1D2F; [2D 0A, 05, 05]
+
+1D03; [2D 0C, 05, 05]
+
+1D6C; [2D 0E, 05, 05]
+
+A797; [2D 10, 05, 05]
+A796; [2D 10, 05, A0]
+
+1D80; [2D 12, 05, 05]
+
+0253; [2D 14, 05, 05]
+0181; [2D 14, 05, A0]
+
+0183; [2D 16, 05, 05]
+0182; [2D 16, 05, A0]
+
+A7B5; [2D 18, 05, 05]
+1DE9; [2D 18, 05, 20]
+A7B4; [2D 18, 05, AE]
+
+0063; [2E, 05, 05]
+FF43; [2E, 05, 10]
+0368; [2E, 05, 13]
+217D; [2E, 05, 13]
+1D41C; [2E, 05, 16]
+1D450; [2E, 05, 16]
+1D484; [2E, 05, 16]
+1D4B8; [2E, 05, 16]
+1D4EC; [2E, 05, 16]
+1D520; [2E, 05, 16]
+1D554; [2E, 05, 16]
+1D588; [2E, 05, 16]
+1D5BC; [2E, 05, 16]
+1D5F0; [2E, 05, 16]
+1D624; [2E, 05, 16]
+1D658; [2E, 05, 16]
+1D68C; [2E, 05, 16]
+24D2; [2E, 05, 19]
+0043; [2E, 05, 9C]
+FF23; [2E, 05, 9F]
+216D; [2E, 05, A2]
+2102; [2E, 05, A5]
+212D; [2E, 05, A5]
+1D402; [2E, 05, A5]
+1D436; [2E, 05, A5]
+1D46A; [2E, 05, A5]
+1D49E; [2E, 05, A5]
+1D4D2; [2E, 05, A5]
+1D56E; [2E, 05, A5]
+1D5A2; [2E, 05, A5]
+1D5D6; [2E, 05, A5]
+1D60A; [2E, 05, A5]
+1D63E; [2E, 05, A5]
+1D672; [2E, 05, A5]
+24B8; [2E, 05, A8]
+1F12B; [2E, 05, A8]
+1F152; [2E, 05, A8]
+1D9C; [2E, 05, 2B]
+1F132; [2E, 05, B1]
+1F172; [2E, 05, B1]
+0107; [2E, 05, 05][, 88, 05]
+0106; [2E, 05, 9C][, 88, 05]
+0109; [2E, 05, 05][, 8E, 05]
+0108; [2E, 05, 9C][, 8E, 05]
+010D; [2E, 05, 05][, 90, 05]
+010C; [2E, 05, 9C][, 90, 05]
+010B; [2E, 05, 05][, 9C, 05]
+010A; [2E, 05, 9C][, 9C, 05]
+00E7; [2E, 05, 05][, A0, 05]
+1DD7; [2E, 05, 13][, A0, 20]
+00C7; [2E, 05, 9C][, A0, 05]
+1E09; [2E, 05, 05][, A0, 05][, 88, 05]
+1E08; [2E, 05, 9C][, A0, 05][, 88, 05]
+2105; [2E, 05, 13][0A 8A, 05, 2E][46, 05, 13]
+2106; [2E, 05, 13][0A 8A, 05, 2E][52, 05, 13]
+33C6; [2E, 05, B1][0C 92, 05, 20][3E, 05, 31][36, 05, 2E]
+3388; [2E, 05, 2E][2A, 05, 31][40, 05, 31]
+33C4; [2E, 05, 2E][2E, 05, 2E]
+1F12D; [2E, 05, A8][30, 05, A8]
+33C5; [2E, 05, 2E][30, 05, 2E]
+1F191; [2E, 05, B1][40, 05, B4]
+339D; [2E, 05, 2E][42, 05, 31]
+33A0; [2E, 05, 2E][42, 05, 31][17, 05, 2E]
+33A4; [2E, 05, 2E][42, 05, 31][19, 05, 2E]
+33C7; [2E, 05, B1][46, 05, 31][08, 05, 30]
+1F192; [2E, 05, B1][46, 05, B4][46, 05, B4][40, 05, B4]
+
+1D04; [2F 06, 05, 05]
+
+023C; [2F 08, 05, 05]
+023B; [2F 08, 05, A0]
+
+A793; [2F 0A, 05, 05]
+A792; [2F 0A, 05, A0]
+
+A794; [2F 0C, 05, 05]
+
+0188; [2F 0E, 05, 05]
+0187; [2F 0E, 05, A0]
+
+0255; [2F 10, 05, 05]
+1D9D; [2F 10, 05, 2E]
+
+2184; [2F 12, 05, 05]
+2183; [2F 12, 05, A0]
+
+A73F; [2F 14, 05, 05]
+A73E; [2F 14, 05, A0]
+
+0064; [30, 05, 05]
+FF44; [30, 05, 10]
+0369; [30, 05, 13]
+217E; [30, 05, 13]
+2146; [30, 05, 16]
+1D41D; [30, 05, 16]
+1D451; [30, 05, 16]
+1D485; [30, 05, 16]
+1D4B9; [30, 05, 16]
+1D4ED; [30, 05, 16]
+1D521; [30, 05, 16]
+1D555; [30, 05, 16]
+1D589; [30, 05, 16]
+1D5BD; [30, 05, 16]
+1D5F1; [30, 05, 16]
+1D625; [30, 05, 16]
+1D659; [30, 05, 16]
+1D68D; [30, 05, 16]
+24D3; [30, 05, 19]
+0044; [30, 05, 9C]
+FF24; [30, 05, 9F]
+216E; [30, 05, A2]
+2145; [30, 05, A5]
+1D403; [30, 05, A5]
+1D437; [30, 05, A5]
+1D46B; [30, 05, A5]
+1D49F; [30, 05, A5]
+1D4D3; [30, 05, A5]
+1D507; [30, 05, A5]
+1D53B; [30, 05, A5]
+1D56F; [30, 05, A5]
+1D5A3; [30, 05, A5]
+1D5D7; [30, 05, A5]
+1D60B; [30, 05, A5]
+1D63F; [30, 05, A5]
+1D673; [30, 05, A5]
+24B9; [30, 05, A8]
+1F153; [30, 05, A8]
+1D48; [30, 05, 2B]
+1F1A5; [30, 05, 2E]
+1D30; [30, 05, B1]
+1F133; [30, 05, B1]
+1F173; [30, 05, B1]
+010F; [30, 05, 05][, 90, 05]
+010E; [30, 05, 9C][, 90, 05]
+1E0B; [30, 05, 05][, 9C, 05]
+1E0A; [30, 05, 9C][, 9C, 05]
+1E11; [30, 05, 05][, A0, 05]
+1E10; [30, 05, 9C][, A0, 05]
+0111; [30, 05, 05][, B2, 05]
+0110; [30, 05, 9C][, B2, 05]
+1E0D; [30, 05, 05][, C4, 05]
+1E0C; [30, 05, 9C][, C4, 05]
+1E13; [30, 05, 05][, CC, 05]
+1E12; [30, 05, 9C][, CC, 05]
+1E0F; [30, 05, 05][, D2, 05]
+1E0E; [30, 05, 9C][, D2, 05]
+00F0; [30, 70, 05]
+1DD9; [30, 70, 05]
+00D0; [30, 70, A0]
+1D9E; [30, 70, 2E]
+1DD8; [30, 78, 05]
+A77A; [30, 78, 05]
+A779; [30, 78, A0]
+3372; [30, 05, 2E][2A, 05, 31]
+0238; [30, 05, 13][2C, 05, 13]
+33C8; [30, 05, 2E][2C, 05, B1]
+1F190; [30, 05, B1][3C, 05, B1]
+3397; [30, 05, 2E][40, 05, 31]
+3377; [30, 05, 2E][42, 05, 31]
+3378; [30, 05, 2E][42, 05, 31][17, 05, 2E]
+3379; [30, 05, 2E][42, 05, 31][19, 05, 2E]
+01F3; [30, 05, 13][5C, 05, 13]
+02A3; [30, 05, 13][5C, 05, 13]
+01F2; [30, 05, A2][5C, 05, 13]
+01F1; [30, 05, A2][5C, 05, A2]
+01C6; [30, 05, 13][5C, 05, 13][, 90, 20]
+01C5; [30, 05, A2][5C, 05, 13][, 90, 20]
+01C4; [30, 05, A2][5C, 05, A2][, 90, 20]
+02A5; [30, 05, 13][5D 12, 05, 20]
+02A4; [30, 05, 13][5D 1A, 05, 10]
+
+1D05; [31 06, 05, 05]
+
+1D06; [31 08, 05, 05]
+
+1D6D; [31 0A, 05, 05]
+
+1D81; [31 0C, 05, 05]
+
+0256; [31 0E, 05, 05]
+0189; [31 0E, 05, A0]
+
+0257; [31 10, 05, 05]
+018A; [31 10, 05, A0]
+
+1D91; [31 12, 05, 05]
+
+018C; [31 14, 05, 05]
+018B; [31 14, 05, A0]
+
+0221; [31 16, 05, 05]
+
+A771; [31 18, 05, 05]
+
+1E9F; [31 1A, 05, 05]
+
+0065; [32, 05, 05]
+FF45; [32, 05, 10]
+0364; [32, 05, 13]
+212F; [32, 05, 16]
+2147; [32, 05, 16]
+1D41E; [32, 05, 16]
+1D452; [32, 05, 16]
+1D486; [32, 05, 16]
+1D4EE; [32, 05, 16]
+1D522; [32, 05, 16]
+1D556; [32, 05, 16]
+1D58A; [32, 05, 16]
+1D5BE; [32, 05, 16]
+1D5F2; [32, 05, 16]
+1D626; [32, 05, 16]
+1D65A; [32, 05, 16]
+1D68E; [32, 05, 16]
+24D4; [32, 05, 19]
+0045; [32, 05, 9C]
+FF25; [32, 05, 9F]
+2130; [32, 05, A5]
+1D404; [32, 05, A5]
+1D438; [32, 05, A5]
+1D46C; [32, 05, A5]
+1D4D4; [32, 05, A5]
+1D508; [32, 05, A5]
+1D53C; [32, 05, A5]
+1D570; [32, 05, A5]
+1D5A4; [32, 05, A5]
+1D5D8; [32, 05, A5]
+1D60C; [32, 05, A5]
+1D640; [32, 05, A5]
+1D674; [32, 05, A5]
+24BA; [32, 05, A8]
+1F154; [32, 05, A8]
+1D49; [32, 05, 2B]
+2091; [32, 05, 2E]
+1D31; [32, 05, B4]
+1F134; [32, 05, B4]
+1F174; [32, 05, B4]
+00E9; [32, 05, 05][, 88, 05]
+00C9; [32, 05, 9C][, 88, 05]
+00E8; [32, 05, 05][, 8A, 05]
+00C8; [32, 05, 9C][, 8A, 05]
+0115; [32, 05, 05][, 8C, 05]
+0114; [32, 05, 9C][, 8C, 05]
+00EA; [32, 05, 05][, 8E, 05]
+00CA; [32, 05, 9C][, 8E, 05]
+1EBF; [32, 05, 05][, 8E, 05][, 88, 05]
+1EBE; [32, 05, 9C][, 8E, 05][, 88, 05]
+1EC1; [32, 05, 05][, 8E, 05][, 8A, 05]
+1EC0; [32, 05, 9C][, 8E, 05][, 8A, 05]
+1EC5; [32, 05, 05][, 8E, 05][, 9A, 05]
+1EC4; [32, 05, 9C][, 8E, 05][, 9A, 05]
+1EC3; [32, 05, 05][, 8E, 05][, B6, 05]
+1EC2; [32, 05, 9C][, 8E, 05][, B6, 05]
+011B; [32, 05, 05][, 90, 05]
+011A; [32, 05, 9C][, 90, 05]
+00EB; [32, 05, 05][, 96, 05]
+00CB; [32, 05, 9C][, 96, 05]
+1EBD; [32, 05, 05][, 9A, 05]
+1EBC; [32, 05, 9C][, 9A, 05]
+0117; [32, 05, 05][, 9C, 05]
+0116; [32, 05, 9C][, 9C, 05]
+0229; [32, 05, 05][, A0, 05]
+0228; [32, 05, 9C][, A0, 05]
+1E1D; [32, 05, 05][, A0, 05][, 8C, 05]
+1E1C; [32, 05, 9C][, A0, 05][, 8C, 05]
+0119; [32, 05, 05][, A2, 05]
+0118; [32, 05, 9C][, A2, 05]
+0113; [32, 05, 05][, A4, 05]
+0112; [32, 05, 9C][, A4, 05]
+1E17; [32, 05, 05][, A4, 05][, 88, 05]
+1E16; [32, 05, 9C][, A4, 05][, 88, 05]
+1E15; [32, 05, 05][, A4, 05][, 8A, 05]
+1E14; [32, 05, 9C][, A4, 05][, 8A, 05]
+1EBB; [32, 05, 05][, B6, 05]
+1EBA; [32, 05, 9C][, B6, 05]
+0205; [32, 05, 05][, B8, 05]
+0204; [32, 05, 9C][, B8, 05]
+0207; [32, 05, 05][, BC, 05]
+0206; [32, 05, 9C][, BC, 05]
+1EB9; [32, 05, 05][, C4, 05]
+1EB8; [32, 05, 9C][, C4, 05]
+1EC7; [32, 05, 05][, C4, 05][, 8E, 05]
+1EC6; [32, 05, 9C][, C4, 05][, 8E, 05]
+1E19; [32, 05, 05][, CC, 05]
+1E18; [32, 05, 9C][, CC, 05]
+1E1B; [32, 05, 05][, D0, 05]
+1E1A; [32, 05, 9C][, D0, 05]
+32CD; [32, 05, 31][4C, 05, 31][36, 05, 2E]
+32CE; [32, 05, 31][54, 05, B4]
+
+1D07; [33 06, 05, 05]
+
+AB32; [33 08, 05, 05]
+
+AB33; [33 0A, 05, 05]
+
+0247; [33 0C, 05, 05]
+0246; [33 0C, 05, A0]
+
+1D92; [33 0E, 05, 05]
+
+AB34; [33 10, 05, 05]
+
+2C78; [33 12, 05, 05]
+
+01DD; [33 14, 05, 05]
+018E; [33 14, 05, A0]
+1D32; [33 14, 05, AE]
+
+2C7B; [33 16, 05, 05]
+
+0259; [33 18, 05, 05]
+1DEA; [33 18, 05, 10]
+018F; [33 18, 05, 9B]
+1D4A; [33 18, 05, 26]
+2094; [33 18, 05, 31]
+
+1D95; [33 1A, 05, 05]
+
+025B; [33 1C, 05, 05]
+0190; [33 1C, 05, 90]
+2107; [33 1C, 05, 9E]
+1D4B; [33 1C, 05, 2C]
+
+1D93; [33 1E, 05, 05]
+
+0258; [33 20, 05, 05]
+
+025A; [33 22, 05, 05]
+
+025C; [33 24, 05, 05]
+A7AB; [33 24, 05, A0]
+1D9F; [33 24, 05, 2E]
+
+1D94; [33 26, 05, 05]
+
+1D08; [33 28, 05, 05]
+1D4C; [33 28, 05, 20]
+
+025D; [33 2A, 05, 05]
+
+025E; [33 2C, 05, 05]
+
+029A; [33 2E, 05, 05]
+
+0264; [33 30, 05, 05]
+
+0066; [34, 05, 05]
+FF46; [34, 05, 10]
+1DEB; [34, 05, 13]
+1D41F; [34, 05, 16]
+1D453; [34, 05, 16]
+1D487; [34, 05, 16]
+1D4BB; [34, 05, 16]
+1D4EF; [34, 05, 16]
+1D523; [34, 05, 16]
+1D557; [34, 05, 16]
+1D58B; [34, 05, 16]
+1D5BF; [34, 05, 16]
+1D5F3; [34, 05, 16]
+1D627; [34, 05, 16]
+1D65B; [34, 05, 16]
+1D68F; [34, 05, 16]
+24D5; [34, 05, 19]
+0046; [34, 05, 9C]
+FF26; [34, 05, 9F]
+2131; [34, 05, A5]
+1D405; [34, 05, A5]
+1D439; [34, 05, A5]
+1D46D; [34, 05, A5]
+1D4D5; [34, 05, A5]
+1D509; [34, 05, A5]
+1D53D; [34, 05, A5]
+1D571; [34, 05, A5]
+1D5A5; [34, 05, A5]
+1D5D9; [34, 05, A5]
+1D60D; [34, 05, A5]
+1D641; [34, 05, A5]
+1D675; [34, 05, A5]
+24BB; [34, 05, A8]
+1F155; [34, 05, A8]
+1DA0; [34, 05, 2B]
+1F135; [34, 05, B1]
+1F175; [34, 05, B1]
+1E1F; [34, 05, 05][, 9C, 05]
+1E1E; [34, 05, 9C][, 9C, 05]
+A77C; [34, 70, 05]
+A77B; [34, 70, A0]
+213B; [34, 05, A2][2A, 05, A2][58, 05, A2]
+FB00; [34, 05, 13][34, 05, 13]
+FB03; [34, 05, 13][34, 05, 13][3A, 05, 13]
+FB04; [34, 05, 13][34, 05, 13][40, 05, 13]
+FB01; [34, 05, 13][3A, 05, 13]
+FB02; [34, 05, 13][40, 05, 13]
+3399; [34, 05, 2E][42, 05, 31]
+02A9; [34, 05, 13][45 1E, 05, 10]
+1F193; [34, 05, B1][4C, 05, B4][32, 05, B4][32, 05, B4]
+
+A730; [35 06, 05, 05]
+
+AB35; [35 08, 05, 05]
+
+A799; [35 0A, 05, 05]
+A798; [35 0A, 05, A0]
+
+1D6E; [35 0C, 05, 05]
+
+1D82; [35 0E, 05, 05]
+
+0192; [35 10, 05, 05]
+0191; [35 10, 05, A0]
+
+214E; [35 12, 05, 05]
+2132; [35 12, 05, A0]
+
+A7FB; [35 14, 05, 05]
+
+0067; [36, 05, 05]
+FF47; [36, 05, 10]
+1DDA; [36, 05, 13]
+210A; [36, 05, 16]
+1D420; [36, 05, 16]
+1D454; [36, 05, 16]
+1D488; [36, 05, 16]
+1D4F0; [36, 05, 16]
+1D524; [36, 05, 16]
+1D558; [36, 05, 16]
+1D58C; [36, 05, 16]
+1D5C0; [36, 05, 16]
+1D5F4; [36, 05, 16]
+1D628; [36, 05, 16]
+1D65C; [36, 05, 16]
+1D690; [36, 05, 16]
+24D6; [36, 05, 19]
+0047; [36, 05, 9C]
+FF27; [36, 05, 9F]
+1D406; [36, 05, A5]
+1D43A; [36, 05, A5]
+1D46E; [36, 05, A5]
+1D4A2; [36, 05, A5]
+1D4D6; [36, 05, A5]
+1D50A; [36, 05, A5]
+1D53E; [36, 05, A5]
+1D572; [36, 05, A5]
+1D5A6; [36, 05, A5]
+1D5DA; [36, 05, A5]
+1D60E; [36, 05, A5]
+1D642; [36, 05, A5]
+1D676; [36, 05, A5]
+24BC; [36, 05, A8]
+1F156; [36, 05, A8]
+1D4D; [36, 05, 2B]
+1D33; [36, 05, B1]
+1F136; [36, 05, B1]
+1F176; [36, 05, B1]
+01F5; [36, 05, 05][, 88, 05]
+01F4; [36, 05, 9C][, 88, 05]
+011F; [36, 05, 05][, 8C, 05]
+011E; [36, 05, 9C][, 8C, 05]
+011D; [36, 05, 05][, 8E, 05]
+011C; [36, 05, 9C][, 8E, 05]
+01E7; [36, 05, 05][, 90, 05]
+01E6; [36, 05, 9C][, 90, 05]
+0121; [36, 05, 05][, 9C, 05]
+0120; [36, 05, 9C][, 9C, 05]
+0123; [36, 05, 05][, A0, 05]
+0122; [36, 05, 9C][, A0, 05]
+1E21; [36, 05, 05][, A4, 05]
+1E20; [36, 05, 9C][, A4, 05]
+A7A1; [36, 05, 13][, AA, 20]
+A7A0; [36, 05, A2][, AA, 20]
+1D79; [36, 70, 05]
+A77D; [36, 70, A0]
+33FF; [36, 05, 2E][2A, 05, 31][40, 05, 31]
+3387; [36, 05, B1][2C, 05, B1]
+3393; [36, 05, B1][38, 05, B4][5C, 05, 2E]
+33AC; [36, 05, B1][48, 05, B4][2A, 05, 31]
+33C9; [36, 05, B1][5A, 05, 2E]
+
+0261; [37 06, 05, 05]
+A7AC; [37 06, 05, A0]
+1DA2; [37 06, 05, 2E]
+
+AB36; [37 08, 05, 05]
+
+0262; [37 0A, 05, 05]
+1DDB; [37 0A, 05, 20]
+
+01E5; [37 0C, 05, 05]
+01E4; [37 0C, 05, A0]
+
+1D83; [37 0E, 05, 05]
+
+0260; [37 10, 05, 05]
+0193; [37 10, 05, A0]
+
+029B; [37 12, 05, 05]
+
+1D77; [37 14, 05, 05]
+
+A77F; [37 16, 05, 05]
+A77E; [37 16, 05, A0]
+
+0263; [37 18, 05, 05]
+0194; [37 18, 05, A0]
+02E0; [37 18, 05, 2E]
+
+01A3; [37 1A, 05, 05]
+01A2; [37 1A, 05, A0]
+
+0068; [38, 05, 05]
+FF48; [38, 05, 10]
+036A; [38, 05, 13]
+210E; [38, 05, 16]
+1D421; [38, 05, 16]
+1D489; [38, 05, 16]
+1D4BD; [38, 05, 16]
+1D4F1; [38, 05, 16]
+1D525; [38, 05, 16]
+1D559; [38, 05, 16]
+1D58D; [38, 05, 16]
+1D5C1; [38, 05, 16]
+1D5F5; [38, 05, 16]
+1D629; [38, 05, 16]
+1D65D; [38, 05, 16]
+1D691; [38, 05, 16]
+24D7; [38, 05, 19]
+0048; [38, 05, 9C]
+FF28; [38, 05, 9F]
+210B; [38, 05, A5]
+210C; [38, 05, A5]
+210D; [38, 05, A5]
+1D407; [38, 05, A5]
+1D43B; [38, 05, A5]
+1D46F; [38, 05, A5]
+1D4D7; [38, 05, A5]
+1D573; [38, 05, A5]
+1D5A7; [38, 05, A5]
+1D5DB; [38, 05, A5]
+1D60F; [38, 05, A5]
+1D643; [38, 05, A5]
+1D677; [38, 05, A5]
+24BD; [38, 05, A8]
+1F157; [38, 05, A8]
+02B0; [38, 05, 2B]
+2095; [38, 05, 2E]
+1D34; [38, 05, B4]
+1F137; [38, 05, B4]
+1F177; [38, 05, B4]
+0125; [38, 05, 05][, 8E, 05]
+0124; [38, 05, 9C][, 8E, 05]
+021F; [38, 05, 05][, 90, 05]
+021E; [38, 05, 9C][, 90, 05]
+1E27; [38, 05, 05][, 96, 05]
+1E26; [38, 05, 9C][, 96, 05]
+1E23; [38, 05, 05][, 9C, 05]
+1E22; [38, 05, 9C][, 9C, 05]
+1E29; [38, 05, 05][, A0, 05]
+1E28; [38, 05, 9C][, A0, 05]
+0127; [38, 05, 05][, B2, 05]
+210F; [38, 05, 05][, B2, 05]
+0126; [38, 05, 9C][, B2, 05]
+A7F8; [38, 05, 2B][, B2, 20]
+1E25; [38, 05, 05][, C4, 05]
+1E24; [38, 05, 9C][, C4, 05]
+1E2B; [38, 05, 05][, CE, 05]
+1E2A; [38, 05, 9C][, CE, 05]
+1E96; [38, 05, 05][, D2, 05]
+33CA; [38, 05, 31][2A, 05, 31]
+1F1A6; [38, 05, B4][2E, 05, 2E]
+1F1A7; [38, 05, B4][30, 05, 2E][4C, 05, B4]
+32CC; [38, 05, B4][36, 05, 2E]
+1F1A8; [38, 05, B4][3A, 05, 31][04, 05, 30][4C, 05, B4][32, 05, 31][4E, 05, 31]
+33CB; [38, 05, B4][48, 05, B4]
+3371; [38, 05, 31][48, 05, B4][2A, 05, 31]
+1F14A; [38, 05, B4][54, 05, B4]
+3390; [38, 05, B4][5C, 05, 2E]
+
+029C; [39 06, 05, 05]
+
+0195; [39 08, 05, 05]
+01F6; [39 08, 05, A0]
+
+A795; [39 0A, 05, 05]
+
+0266; [39 0C, 05, 05]
+A7AA; [39 0C, 05, A0]
+02B1; [39 0C, 05, 2E]
+
+2C68; [39 0E, 05, 05]
+2C67; [39 0E, 05, A0]
+
+2C76; [39 10, 05, 05]
+2C75; [39 10, 05, A0]
+
+A727; [39 12, 05, 05]
+A726; [39 12, 05, A0]
+AB5C; [39 12, 05, 2E]
+
+0267; [39 14, 05, 05]
+
+02BB; [39 16, 05, 05]
+
+02BD; [39 18, 05, 05]
+
+0069; [3A, 05, 05]
+FF49; [3A, 05, 10]
+0365; [3A, 05, 13]
+2170; [3A, 05, 13]
+2139; [3A, 05, 16]
+2148; [3A, 05, 16]
+1D422; [3A, 05, 16]
+1D456; [3A, 05, 16]
+1D48A; [3A, 05, 16]
+1D4BE; [3A, 05, 16]
+1D4F2; [3A, 05, 16]
+1D526; [3A, 05, 16]
+1D55A; [3A, 05, 16]
+1D58E; [3A, 05, 16]
+1D5C2; [3A, 05, 16]
+1D5F6; [3A, 05, 16]
+1D62A; [3A, 05, 16]
+1D65E; [3A, 05, 16]
+1D692; [3A, 05, 16]
+24D8; [3A, 05, 19]
+0049; [3A, 05, 9C]
+FF29; [3A, 05, 9F]
+2160; [3A, 05, A2]
+2110; [3A, 05, A5]
+2111; [3A, 05, A5]
+1D408; [3A, 05, A5]
+1D43C; [3A, 05, A5]
+1D470; [3A, 05, A5]
+1D4D8; [3A, 05, A5]
+1D540; [3A, 05, A5]
+1D574; [3A, 05, A5]
+1D5A8; [3A, 05, A5]
+1D5DC; [3A, 05, A5]
+1D610; [3A, 05, A5]
+1D644; [3A, 05, A5]
+1D678; [3A, 05, A5]
+24BE; [3A, 05, A8]
+1F158; [3A, 05, A8]
+2071; [3A, 05, 2B]
+1D62; [3A, 05, 2E]
+1D35; [3A, 05, B4]
+1F138; [3A, 05, B4]
+1F178; [3A, 05, B4]
+00ED; [3A, 05, 05][, 88, 05]
+00CD; [3A, 05, 9C][, 88, 05]
+00EC; [3A, 05, 05][, 8A, 05]
+00CC; [3A, 05, 9C][, 8A, 05]
+012D; [3A, 05, 05][, 8C, 05]
+012C; [3A, 05, 9C][, 8C, 05]
+00EE; [3A, 05, 05][, 8E, 05]
+00CE; [3A, 05, 9C][, 8E, 05]
+01D0; [3A, 05, 05][, 90, 05]
+01CF; [3A, 05, 9C][, 90, 05]
+00EF; [3A, 05, 05][, 96, 05]
+00CF; [3A, 05, 9C][, 96, 05]
+1E2F; [3A, 05, 05][, 96, 05][, 88, 05]
+1E2E; [3A, 05, 9C][, 96, 05][, 88, 05]
+0129; [3A, 05, 05][, 9A, 05]
+0128; [3A, 05, 9C][, 9A, 05]
+0130; [3A, 05, 9C][, 9C, 05]
+012F; [3A, 05, 05][, A2, 05]
+012E; [3A, 05, 9C][, A2, 05]
+012B; [3A, 05, 05][, A4, 05]
+012A; [3A, 05, 9C][, A4, 05]
+1EC9; [3A, 05, 05][, B6, 05]
+1EC8; [3A, 05, 9C][, B6, 05]
+0209; [3A, 05, 05][, B8, 05]
+0208; [3A, 05, 9C][, B8, 05]
+020B; [3A, 05, 05][, BC, 05]
+020A; [3A, 05, 9C][, BC, 05]
+1ECB; [3A, 05, 05][, C4, 05]
+1ECA; [3A, 05, 9C][, C4, 05]
+1E2D; [3A, 05, 05][, D0, 05]
+1E2C; [3A, 05, 9C][, D0, 05]
+1F18B; [3A, 05, B4][2E, 05, B1]
+1F194; [3A, 05, B4][30, 05, B1]
+2171; [3A, 05, 13][3A, 05, 13]
+2161; [3A, 05, A2][3A, 05, A2]
+2172; [3A, 05, 13][3A, 05, 13][3A, 05, 13]
+2162; [3A, 05, A2][3A, 05, A2][3A, 05, A2]
+0133; [3A, 05, 13][3C, 05, 13]
+0132; [3A, 05, A2][3C, 05, A2]
+33CC; [3A, 05, 31][44, 05, 31]
+337A; [3A, 05, B4][52, 05, B1]
+2173; [3A, 05, 13][54, 05, 13]
+2163; [3A, 05, A2][54, 05, A2]
+2178; [3A, 05, 13][58, 05, 13]
+2168; [3A, 05, A2][58, 05, A2]
+
+0131; [3B 06, 05, 05]
+1D6A4; [3B 06, 05, 20]
+
+026A; [3B 08, 05, 05]
+A7AE; [3B 08, 05, A0]
+1DA6; [3B 08, 05, 2E]
+
+A7FE; [3B 0A, 05, 05]
+
+A7F7; [3B 0C, 05, 05]
+
+1D09; [3B 0E, 05, 05]
+1D4E; [3B 0E, 05, 20]
+
+0268; [3B 10, 05, 05]
+0197; [3B 10, 05, A0]
+1DA4; [3B 10, 05, 2E]
+
+1D7B; [3B 12, 05, 05]
+1DA7; [3B 12, 05, 20]
+
+1D96; [3B 14, 05, 05]
+
+0269; [3B 16, 05, 05]
+0196; [3B 16, 05, A0]
+1DA5; [3B 16, 05, 2E]
+
+1D7C; [3B 18, 05, 05]
+
+006A; [3C, 05, 05]
+FF4A; [3C, 05, 10]
+2149; [3C, 05, 16]
+1D423; [3C, 05, 16]
+1D457; [3C, 05, 16]
+1D48B; [3C, 05, 16]
+1D4BF; [3C, 05, 16]
+1D4F3; [3C, 05, 16]
+1D527; [3C, 05, 16]
+1D55B; [3C, 05, 16]
+1D58F; [3C, 05, 16]
+1D5C3; [3C, 05, 16]
+1D5F7; [3C, 05, 16]
+1D62B; [3C, 05, 16]
+1D65F; [3C, 05, 16]
+1D693; [3C, 05, 16]
+24D9; [3C, 05, 19]
+004A; [3C, 05, 9C]
+FF2A; [3C, 05, 9F]
+1D409; [3C, 05, A5]
+1D43D; [3C, 05, A5]
+1D471; [3C, 05, A5]
+1D4A5; [3C, 05, A5]
+1D4D9; [3C, 05, A5]
+1D50D; [3C, 05, A5]
+1D541; [3C, 05, A5]
+1D575; [3C, 05, A5]
+1D5A9; [3C, 05, A5]
+1D5DD; [3C, 05, A5]
+1D611; [3C, 05, A5]
+1D645; [3C, 05, A5]
+1D679; [3C, 05, A5]
+24BF; [3C, 05, A8]
+1F159; [3C, 05, A8]
+02B2; [3C, 05, 2B]
+2C7C; [3C, 05, 2E]
+1D36; [3C, 05, B1]
+1F139; [3C, 05, B1]
+1F179; [3C, 05, B1]
+0135; [3C, 05, 05][, 8E, 05]
+0134; [3C, 05, 9C][, 8E, 05]
+01F0; [3C, 05, 05][, 90, 05]
+
+0237; [3D 06, 05, 05]
+1D6A5; [3D 06, 05, 20]
+
+1D0A; [3D 08, 05, 05]
+
+0249; [3D 0A, 05, 05]
+0248; [3D 0A, 05, A0]
+
+029D; [3D 0C, 05, 05]
+A7B2; [3D 0C, 05, A0]
+1DA8; [3D 0C, 05, 2E]
+
+025F; [3D 0E, 05, 05]
+1DA1; [3D 0E, 05, 20]
+
+0284; [3D 10, 05, 05]
+
+006B; [3E, 05, 05]
+FF4B; [3E, 05, 10]
+1DDC; [3E, 05, 13]
+1D424; [3E, 05, 16]
+1D458; [3E, 05, 16]
+1D48C; [3E, 05, 16]
+1D4C0; [3E, 05, 16]
+1D4F4; [3E, 05, 16]
+1D528; [3E, 05, 16]
+1D55C; [3E, 05, 16]
+1D590; [3E, 05, 16]
+1D5C4; [3E, 05, 16]
+1D5F8; [3E, 05, 16]
+1D62C; [3E, 05, 16]
+1D660; [3E, 05, 16]
+1D694; [3E, 05, 16]
+24DA; [3E, 05, 19]
+004B; [3E, 05, 9C]
+212A; [3E, 05, 9C]
+FF2B; [3E, 05, 9F]
+1D40A; [3E, 05, A5]
+1D43E; [3E, 05, A5]
+1D472; [3E, 05, A5]
+1D4A6; [3E, 05, A5]
+1D4DA; [3E, 05, A5]
+1D50E; [3E, 05, A5]
+1D542; [3E, 05, A5]
+1D576; [3E, 05, A5]
+1D5AA; [3E, 05, A5]
+1D5DE; [3E, 05, A5]
+1D612; [3E, 05, A5]
+1D646; [3E, 05, A5]
+1D67A; [3E, 05, A5]
+24C0; [3E, 05, A8]
+1F15A; [3E, 05, A8]
+1D4F; [3E, 05, 2B]
+2096; [3E, 05, 2E]
+1D37; [3E, 05, B4]
+1F13A; [3E, 05, B4]
+1F17A; [3E, 05, B4]
+1E31; [3E, 05, 05][, 88, 05]
+1E30; [3E, 05, 9C][, 88, 05]
+01E9; [3E, 05, 05][, 90, 05]
+01E8; [3E, 05, 9C][, 90, 05]
+0137; [3E, 05, 05][, A0, 05]
+0136; [3E, 05, 9C][, A0, 05]
+A7A3; [3E, 05, 13][, AA, 20]
+A7A2; [3E, 05, A2][, AA, 20]
+1E33; [3E, 05, 05][, C4, 05]
+1E32; [3E, 05, 9C][, C4, 05]
+1E35; [3E, 05, 05][, D2, 05]
+1E34; [3E, 05, 9C][, D2, 05]
+3384; [3E, 05, 31][2A, 05, B4]
+3385; [3E, 05, B4][2C, 05, B1]
+3389; [3E, 05, 31][2E, 05, 2E][2A, 05, 31][40, 05, 31]
+338F; [3E, 05, 31][36, 05, 2E]
+3391; [3E, 05, 31][38, 05, B4][5C, 05, 2E]
+33CD; [3E, 05, B4][3E, 05, B4]
+3398; [3E, 05, 31][40, 05, 31]
+339E; [3E, 05, 31][42, 05, 31]
+33CE; [3E, 05, B4][42, 05, B4]
+33A2; [3E, 05, 31][42, 05, 31][17, 05, 2E]
+33A6; [3E, 05, 31][42, 05, 31][19, 05, 2E]
+33AA; [3E, 05, 31][48, 05, B4][2A, 05, 31]
+33CF; [3E, 05, 31][50, 05, 31]
+33B8; [3E, 05, 31][54, 05, B4]
+33BE; [3E, 05, 31][56, 05, B8]
+33C0; [3E, 05, 31][60 56, 05, B1]
+
+1D0B; [3F 06, 05, 05]
+
+1D84; [3F 08, 05, 05]
+
+0199; [3F 0A, 05, 05]
+0198; [3F 0A, 05, A0]
+
+2C6A; [3F 0C, 05, 05]
+2C69; [3F 0C, 05, A0]
+
+A741; [3F 0E, 05, 05]
+A740; [3F 0E, 05, A0]
+
+A743; [3F 10, 05, 05]
+A742; [3F 10, 05, A0]
+
+A745; [3F 12, 05, 05]
+A744; [3F 12, 05, A0]
+
+029E; [3F 14, 05, 05]
+A7B0; [3F 14, 05, A0]
+
+006C; [40, 05, 05]
+FF4C; [40, 05, 10]
+1DDD; [40, 05, 13]
+217C; [40, 05, 13]
+2113; [40, 05, 16]
+1D425; [40, 05, 16]
+1D459; [40, 05, 16]
+1D48D; [40, 05, 16]
+1D4C1; [40, 05, 16]
+1D4F5; [40, 05, 16]
+1D529; [40, 05, 16]
+1D55D; [40, 05, 16]
+1D591; [40, 05, 16]
+1D5C5; [40, 05, 16]
+1D5F9; [40, 05, 16]
+1D62D; [40, 05, 16]
+1D661; [40, 05, 16]
+1D695; [40, 05, 16]
+24DB; [40, 05, 19]
+004C; [40, 05, 9C]
+FF2C; [40, 05, 9F]
+216C; [40, 05, A2]
+2112; [40, 05, A5]
+1D40B; [40, 05, A5]
+1D43F; [40, 05, A5]
+1D473; [40, 05, A5]
+1D4DB; [40, 05, A5]
+1D50F; [40, 05, A5]
+1D543; [40, 05, A5]
+1D577; [40, 05, A5]
+1D5AB; [40, 05, A5]
+1D5DF; [40, 05, A5]
+1D613; [40, 05, A5]
+1D647; [40, 05, A5]
+1D67B; [40, 05, A5]
+24C1; [40, 05, A8]
+1F15B; [40, 05, A8]
+02E1; [40, 05, 2B]
+2097; [40, 05, 2E]
+1D38; [40, 05, B4]
+1F13B; [40, 05, B4]
+1F17B; [40, 05, B4]
+013A; [40, 05, 05][, 88, 05]
+0139; [40, 05, 9C][, 88, 05]
+013E; [40, 05, 05][, 90, 05]
+013D; [40, 05, 9C][, 90, 05]
+013C; [40, 05, 05][, A0, 05]
+013B; [40, 05, 9C][, A0, 05]
+0142; [40, 05, 05][, B2, 05]
+0141; [40, 05, 9C][, B2, 05]
+1E37; [40, 05, 05][, C4, 05]
+1E36; [40, 05, 9C][, C4, 05]
+1E39; [40, 05, 05][, C4, 05][, A4, 05]
+1E38; [40, 05, 9C][, C4, 05][, A4, 05]
+1E3D; [40, 05, 05][, CC, 05]
+1E3C; [40, 05, 9C][, CC, 05]
+1E3B; [40, 05, 05][, D2, 05]
+1E3A; [40, 05, 9C][, D2, 05]
+0140; [40, 05, 05][, FB D6, 05]
+013F; [40, 05, 9C][, FB D6, 05]
+01C9; [40, 05, 13][3C, 05, 13]
+01C8; [40, 05, A2][3C, 05, 13]
+01C7; [40, 05, A2][3C, 05, A2]
+1EFB; [40, 05, 13][40, 05, 13]
+1EFA; [40, 05, A2][40, 05, A2]
+33D0; [40, 05, 31][42, 05, 31]
+33D1; [40, 05, 31][44, 05, 31]
+33D2; [40, 05, 31][46, 05, 31][36, 05, 2E]
+1F1A9; [40, 05, B4][46, 05, 31][4E, 05, 31][4E, 05, 31][40, 05, 31][32, 05, 31][4E, 05, 31][4E, 05, 31]
+02AA; [40, 05, 13][4E, 05, 13]
+32CF; [40, 05, B4][50, 05, B4][30, 05, B1]
+33D3; [40, 05, 31][58, 05, 31]
+02AB; [40, 05, 13][5C, 05, 13]
+
+029F; [41 06, 05, 05]
+1DDE; [41 06, 05, 20]
+1DAB; [41 06, 05, 2E]
+
+A747; [41 08, 05, 05]
+A746; [41 08, 05, A0]
+
+1D0C; [41 0A, 05, 05]
+
+A749; [41 0C, 05, 05]
+A748; [41 0C, 05, A0]
+
+019A; [41 0E, 05, 05]
+023D; [41 0E, 05, A0]
+
+2C61; [41 10, 05, 05]
+2C60; [41 10, 05, A0]
+
+026B; [41 12, 05, 05]
+2C62; [41 12, 05, A0]
+AB5E; [41 12, 05, 2E]
+
+AB38; [41 14, 05, 05]
+1DEC; [41 14, 05, 20]
+
+AB39; [41 16, 05, 05]
+
+026C; [41 18, 05, 05]
+A7AD; [41 18, 05, A0]
+
+AB37; [41 1A, 05, 05]
+AB5D; [41 1A, 05, 20]
+
+1D85; [41 1C, 05, 05]
+1DAA; [41 1C, 05, 20]
+
+026D; [41 1E, 05, 05]
+1DA9; [41 1E, 05, 20]
+
+A78E; [41 20, 05, 05]
+
+0234; [41 22, 05, 05]
+
+A772; [41 24, 05, 05]
+
+026E; [41 26, 05, 05]
+
+A781; [41 28, 05, 05]
+A780; [41 28, 05, A0]
+
+019B; [41 2A, 05, 05]
+
+028E; [41 2C, 05, 05]
+
+006D; [42, 05, 05]
+FF4D; [42, 05, 10]
+036B; [42, 05, 13]
+217F; [42, 05, 13]
+1D426; [42, 05, 16]
+1D45A; [42, 05, 16]
+1D48E; [42, 05, 16]
+1D4C2; [42, 05, 16]
+1D4F6; [42, 05, 16]
+1D52A; [42, 05, 16]
+1D55E; [42, 05, 16]
+1D592; [42, 05, 16]
+1D5C6; [42, 05, 16]
+1D5FA; [42, 05, 16]
+1D62E; [42, 05, 16]
+1D662; [42, 05, 16]
+1D696; [42, 05, 16]
+24DC; [42, 05, 19]
+004D; [42, 05, 9C]
+FF2D; [42, 05, 9F]
+216F; [42, 05, A2]
+2133; [42, 05, A5]
+1D40C; [42, 05, A5]
+1D440; [42, 05, A5]
+1D474; [42, 05, A5]
+1D4DC; [42, 05, A5]
+1D510; [42, 05, A5]
+1D544; [42, 05, A5]
+1D578; [42, 05, A5]
+1D5AC; [42, 05, A5]
+1D5E0; [42, 05, A5]
+1D614; [42, 05, A5]
+1D648; [42, 05, A5]
+1D67C; [42, 05, A5]
+24C2; [42, 05, A8]
+1F15C; [42, 05, A8]
+1D50; [42, 05, 2B]
+2098; [42, 05, 2E]
+1D39; [42, 05, B4]
+1F13C; [42, 05, B4]
+1F17C; [42, 05, B4]
+1E3F; [42, 05, 05][, 88, 05]
+1E3E; [42, 05, 9C][, 88, 05]
+1E41; [42, 05, 05][, 9C, 05]
+1E40; [42, 05, 9C][, 9C, 05]
+1E43; [42, 05, 05][, C4, 05]
+1E42; [42, 05, 9C][, C4, 05]
+33A7; [42, 05, 31][0C 92, 05, 20][4E, 05, 31]
+33A8; [42, 05, 31][0C 92, 05, 20][4E, 05, 31][17, 05, 2E]
+33A1; [42, 05, 31][17, 05, 2E]
+33A5; [42, 05, 31][19, 05, 2E]
+3383; [42, 05, 31][2A, 05, B4]
+33D4; [42, 05, 31][2C, 05, 2E]
+3386; [42, 05, B4][2C, 05, B1]
+1F16A; [42, 05, 2B][2E, 05, 2B]
+1F16B; [42, 05, 2B][30, 05, 2B]
+338E; [42, 05, 31][36, 05, 2E]
+3392; [42, 05, B4][38, 05, B4][5C, 05, 2E]
+33D5; [42, 05, 31][3A, 05, 31][40, 05, 31]
+3396; [42, 05, 31][40, 05, 31]
+339C; [42, 05, 31][42, 05, 31]
+339F; [42, 05, 31][42, 05, 31][17, 05, 2E]
+33A3; [42, 05, 31][42, 05, 31][19, 05, 2E]
+33D6; [42, 05, 31][46, 05, 31][40, 05, 31]
+33AB; [42, 05, B4][48, 05, B4][2A, 05, 31]
+33B3; [42, 05, 31][4E, 05, 31]
+33B7; [42, 05, 31][54, 05, B4]
+33B9; [42, 05, B4][54, 05, B4]
+1F14B; [42, 05, B4][54, 05, B4]
+33BD; [42, 05, 31][56, 05, B8]
+33BF; [42, 05, B4][56, 05, B8]
+33C1; [42, 05, B4][60 56, 05, B1]
+
+1D0D; [43 06, 05, 05]
+1DDF; [43 06, 05, 20]
+
+1D6F; [43 08, 05, 05]
+
+1D86; [43 0A, 05, 05]
+
+0271; [43 0C, 05, 05]
+2C6E; [43 0C, 05, A0]
+1DAC; [43 0C, 05, 2E]
+
+AB3A; [43 0E, 05, 05]
+
+A7FD; [43 10, 05, 05]
+
+A7FF; [43 12, 05, 05]
+
+A773; [43 14, 05, 05]
+
+006E; [44, 05, 05]
+FF4E; [44, 05, 10]
+1DE0; [44, 05, 13]
+1D427; [44, 05, 16]
+1D45B; [44, 05, 16]
+1D48F; [44, 05, 16]
+1D4C3; [44, 05, 16]
+1D4F7; [44, 05, 16]
+1D52B; [44, 05, 16]
+1D55F; [44, 05, 16]
+1D593; [44, 05, 16]
+1D5C7; [44, 05, 16]
+1D5FB; [44, 05, 16]
+1D62F; [44, 05, 16]
+1D663; [44, 05, 16]
+1D697; [44, 05, 16]
+24DD; [44, 05, 19]
+004E; [44, 05, 9C]
+FF2E; [44, 05, 9F]
+2115; [44, 05, A5]
+1D40D; [44, 05, A5]
+1D441; [44, 05, A5]
+1D475; [44, 05, A5]
+1D4A9; [44, 05, A5]
+1D4DD; [44, 05, A5]
+1D511; [44, 05, A5]
+1D579; [44, 05, A5]
+1D5AD; [44, 05, A5]
+1D5E1; [44, 05, A5]
+1D615; [44, 05, A5]
+1D649; [44, 05, A5]
+1D67D; [44, 05, A5]
+24C3; [44, 05, A8]
+1F15D; [44, 05, A8]
+207F; [44, 05, 2B]
+2099; [44, 05, 2E]
+1D3A; [44, 05, B4]
+1F13D; [44, 05, B4]
+1F17D; [44, 05, B4]
+0144; [44, 05, 05][, 88, 05]
+0143; [44, 05, 9C][, 88, 05]
+01F9; [44, 05, 05][, 8A, 05]
+01F8; [44, 05, 9C][, 8A, 05]
+0148; [44, 05, 05][, 90, 05]
+0147; [44, 05, 9C][, 90, 05]
+00F1; [44, 05, 05][, 9A, 05]
+00D1; [44, 05, 9C][, 9A, 05]
+1E45; [44, 05, 05][, 9C, 05]
+1E44; [44, 05, 9C][, 9C, 05]
+0146; [44, 05, 05][, A0, 05]
+0145; [44, 05, 9C][, A0, 05]
+A7A5; [44, 05, 13][, AA, 20]
+A7A4; [44, 05, A2][, AA, 20]
+1E47; [44, 05, 05][, C4, 05]
+1E46; [44, 05, 9C][, C4, 05]
+1E4B; [44, 05, 05][, CC, 05]
+1E4A; [44, 05, 9C][, CC, 05]
+1E49; [44, 05, 05][, D2, 05]
+1E48; [44, 05, 9C][, D2, 05]
+3381; [44, 05, 31][2A, 05, B4]
+1F195; [44, 05, B4][32, 05, B4][56, 05, B8]
+338B; [44, 05, 31][34, 05, B1]
+1F196; [44, 05, B4][36, 05, B1]
+01CC; [44, 05, 13][3C, 05, 13]
+01CB; [44, 05, A2][3C, 05, 13]
+01CA; [44, 05, A2][3C, 05, A2]
+339A; [44, 05, 31][42, 05, 31]
+2116; [44, 05, A2][46, 05, 13]
+33B1; [44, 05, 31][4E, 05, 31]
+33B5; [44, 05, 31][54, 05, B4]
+33BB; [44, 05, 31][56, 05, B8]
+
+0274; [45 06, 05, 05]
+1DE1; [45 06, 05, 20]
+1DB0; [45 06, 05, 2E]
+
+1D3B; [45 08, 05, 05]
+
+1D0E; [45 0A, 05, 05]
+
+1D70; [45 0C, 05, 05]
+
+0272; [45 0E, 05, 05]
+019D; [45 0E, 05, A0]
+1DAE; [45 0E, 05, 2E]
+
+019E; [45 10, 05, 05]
+0220; [45 10, 05, A0]
+
+A791; [45 12, 05, 05]
+A790; [45 12, 05, A0]
+
+1D87; [45 14, 05, 05]
+
+0273; [45 16, 05, 05]
+1DAF; [45 16, 05, 20]
+
+0235; [45 18, 05, 05]
+
+AB3B; [45 1A, 05, 05]
+
+A774; [45 1C, 05, 05]
+
+014B; [45 1E, 05, 05]
+014A; [45 1E, 05, 9E]
+1D51; [45 1E, 05, 2C]
+
+AB3C; [45 20, 05, 05]
+
+006F; [46, 05, 05]
+FF4F; [46, 05, 10]
+0366; [46, 05, 13]
+2134; [46, 05, 16]
+1D428; [46, 05, 16]
+1D45C; [46, 05, 16]
+1D490; [46, 05, 16]
+1D4F8; [46, 05, 16]
+1D52C; [46, 05, 16]
+1D560; [46, 05, 16]
+1D594; [46, 05, 16]
+1D5C8; [46, 05, 16]
+1D5FC; [46, 05, 16]
+1D630; [46, 05, 16]
+1D664; [46, 05, 16]
+1D698; [46, 05, 16]
+24DE; [46, 05, 19]
+004F; [46, 05, 9C]
+FF2F; [46, 05, 9F]
+1D40E; [46, 05, A5]
+1D442; [46, 05, A5]
+1D476; [46, 05, A5]
+1D4AA; [46, 05, A5]
+1D4DE; [46, 05, A5]
+1D512; [46, 05, A5]
+1D546; [46, 05, A5]
+1D57A; [46, 05, A5]
+1D5AE; [46, 05, A5]
+1D5E2; [46, 05, A5]
+1D616; [46, 05, A5]
+1D64A; [46, 05, A5]
+1D67E; [46, 05, A5]
+24C4; [46, 05, A8]
+1F15E; [46, 05, A8]
+00BA; [46, 05, 2B]
+1D52; [46, 05, 2B]
+2092; [46, 05, 2E]
+1D3C; [46, 05, B4]
+1F13E; [46, 05, B4]
+1F17E; [46, 05, B4]
+00F3; [46, 05, 05][, 88, 05]
+00D3; [46, 05, 9C][, 88, 05]
+00F2; [46, 05, 05][, 8A, 05]
+00D2; [46, 05, 9C][, 8A, 05]
+014F; [46, 05, 05][, 8C, 05]
+014E; [46, 05, 9C][, 8C, 05]
+00F4; [46, 05, 05][, 8E, 05]
+00D4; [46, 05, 9C][, 8E, 05]
+1ED1; [46, 05, 05][, 8E, 05][, 88, 05]
+1ED0; [46, 05, 9C][, 8E, 05][, 88, 05]
+1ED3; [46, 05, 05][, 8E, 05][, 8A, 05]
+1ED2; [46, 05, 9C][, 8E, 05][, 8A, 05]
+1ED7; [46, 05, 05][, 8E, 05][, 9A, 05]
+1ED6; [46, 05, 9C][, 8E, 05][, 9A, 05]
+1ED5; [46, 05, 05][, 8E, 05][, B6, 05]
+1ED4; [46, 05, 9C][, 8E, 05][, B6, 05]
+01D2; [46, 05, 05][, 90, 05]
+01D1; [46, 05, 9C][, 90, 05]
+00F6; [46, 05, 05][, 96, 05]
+1DF3; [46, 05, 13][, 96, 20]
+A79D; [46, 05, 13][, 96, 20]
+00D6; [46, 05, 9C][, 96, 05]
+A79C; [46, 05, A2][, 96, 20]
+022B; [46, 05, 05][, 96, 05][, A4, 05]
+022A; [46, 05, 9C][, 96, 05][, A4, 05]
+0151; [46, 05, 05][, 98, 05]
+0150; [46, 05, 9C][, 98, 05]
+00F5; [46, 05, 05][, 9A, 05]
+00D5; [46, 05, 9C][, 9A, 05]
+1E4D; [46, 05, 05][, 9A, 05][, 88, 05]
+1E4C; [46, 05, 9C][, 9A, 05][, 88, 05]
+1E4F; [46, 05, 05][, 9A, 05][, 96, 05]
+1E4E; [46, 05, 9C][, 9A, 05][, 96, 05]
+022D; [46, 05, 05][, 9A, 05][, A4, 05]
+022C; [46, 05, 9C][, 9A, 05][, A4, 05]
+022F; [46, 05, 05][, 9C, 05]
+022E; [46, 05, 9C][, 9C, 05]
+0231; [46, 05, 05][, 9C, 05][, A4, 05]
+0230; [46, 05, 9C][, 9C, 05][, A4, 05]
+00F8; [46, 05, 05][, 9E, 05]
+00D8; [46, 05, 9C][, 9E, 05]
+01FF; [46, 05, 05][, 9E, 05][, 88, 05]
+01FE; [46, 05, 9C][, 9E, 05][, 88, 05]
+01EB; [46, 05, 05][, A2, 05]
+01EA; [46, 05, 9C][, A2, 05]
+01ED; [46, 05, 05][, A2, 05][, A4, 05]
+01EC; [46, 05, 9C][, A2, 05][, A4, 05]
+014D; [46, 05, 05][, A4, 05]
+014C; [46, 05, 9C][, A4, 05]
+1E53; [46, 05, 05][, A4, 05][, 88, 05]
+1E52; [46, 05, 9C][, A4, 05][, 88, 05]
+1E51; [46, 05, 05][, A4, 05][, 8A, 05]
+1E50; [46, 05, 9C][, A4, 05][, 8A, 05]
+1DED; [46, 05, 13][, A8, 20]
+1ECF; [46, 05, 05][, B6, 05]
+1ECE; [46, 05, 9C][, B6, 05]
+020D; [46, 05, 05][, B8, 05]
+020C; [46, 05, 9C][, B8, 05]
+020F; [46, 05, 05][, BC, 05]
+020E; [46, 05, 9C][, BC, 05]
+01A1; [46, 05, 05][, BE, 05]
+01A0; [46, 05, 9C][, BE, 05]
+1EDB; [46, 05, 05][, BE, 05][, 88, 05]
+1EDA; [46, 05, 9C][, BE, 05][, 88, 05]
+1EDD; [46, 05, 05][, BE, 05][, 8A, 05]
+1EDC; [46, 05, 9C][, BE, 05][, 8A, 05]
+1EE1; [46, 05, 05][, BE, 05][, 9A, 05]
+1EE0; [46, 05, 9C][, BE, 05][, 9A, 05]
+1EDF; [46, 05, 05][, BE, 05][, B6, 05]
+1EDE; [46, 05, 9C][, BE, 05][, B6, 05]
+1EE3; [46, 05, 05][, BE, 05][, C4, 05]
+1EE2; [46, 05, 9C][, BE, 05][, C4, 05]
+1ECD; [46, 05, 05][, C4, 05]
+1ECC; [46, 05, 9C][, C4, 05]
+1ED9; [46, 05, 05][, C4, 05][, 8E, 05]
+1ED8; [46, 05, 9C][, C4, 05][, 8E, 05]
+0153; [46, 70, 05][32, 05, 13]
+0152; [46, 70, A0][32, 05, A2]
+A7F9; [46, 70, 2E][32, 05, 2B]
+1F197; [46, 05, B4][3E, 05, B4]
+A74F; [46, 05, 13][46, 05, 13]
+A74E; [46, 05, A2][46, 05, A2]
+3375; [46, 05, 31][54, 05, B4]
+
+1D0F; [47 06, 05, 05]
+
+1D11; [47 08, 05, 05]
+
+AB3D; [47 0A, 05, 05]
+
+0276; [47 0C, 05, 05]
+
+1D14; [47 0E, 05, 05]
+
+AB41; [47 10, 05, 05]
+
+AB42; [47 12, 05, 05]
+
+AB40; [47 14, 05, 05]
+
+AB43; [47 16, 05, 05]
+
+AB44; [47 18, 05, 05]
+
+1D13; [47 1A, 05, 05]
+
+AB3E; [47 1C, 05, 05]
+
+0254; [47 1E, 05, 05]
+0186; [47 1E, 05, A0]
+1D53; [47 1E, 05, 2E]
+
+1D10; [47 20, 05, 05]
+
+1D12; [47 22, 05, 05]
+
+AB3F; [47 24, 05, 05]
+
+1D97; [47 26, 05, 05]
+
+AB62; [47 28, 05, 05]
+
+A74D; [47 2A, 05, 05]
+A74C; [47 2A, 05, A0]
+
+1D16; [47 2C, 05, 05]
+1D54; [47 2C, 05, 20]
+
+1D17; [47 2E, 05, 05]
+1D55; [47 2E, 05, 20]
+
+2C7A; [47 30, 05, 05]
+
+0275; [47 32, 05, 05]
+019F; [47 32, 05, A0]
+1DB1; [47 32, 05, 2E]
+
+A74B; [47 34, 05, 05]
+A74A; [47 34, 05, A0]
+
+0277; [47 36, 05, 05]
+
+A7B7; [47 38, 05, 05]
+A7B6; [47 38, 05, A0]
+
+0223; [47 3A, 05, 05]
+0222; [47 3A, 05, A0]
+1D3D; [47 3A, 05, AE]
+
+1D15; [47 3C, 05, 05]
+
+0070; [48, 05, 05]
+FF50; [48, 05, 10]
+1DEE; [48, 05, 13]
+1D429; [48, 05, 16]
+1D45D; [48, 05, 16]
+1D491; [48, 05, 16]
+1D4C5; [48, 05, 16]
+1D4F9; [48, 05, 16]
+1D52D; [48, 05, 16]
+1D561; [48, 05, 16]
+1D595; [48, 05, 16]
+1D5C9; [48, 05, 16]
+1D5FD; [48, 05, 16]
+1D631; [48, 05, 16]
+1D665; [48, 05, 16]
+1D699; [48, 05, 16]
+24DF; [48, 05, 19]
+0050; [48, 05, 9C]
+FF30; [48, 05, 9F]
+2119; [48, 05, A5]
+1D40F; [48, 05, A5]
+1D443; [48, 05, A5]
+1D477; [48, 05, A5]
+1D4AB; [48, 05, A5]
+1D4DF; [48, 05, A5]
+1D513; [48, 05, A5]
+1D57B; [48, 05, A5]
+1D5AF; [48, 05, A5]
+1D5E3; [48, 05, A5]
+1D617; [48, 05, A5]
+1D64B; [48, 05, A5]
+1D67F; [48, 05, A5]
+24C5; [48, 05, A8]
+1F15F; [48, 05, A8]
+1D56; [48, 05, 2B]
+209A; [48, 05, 2E]
+1D3E; [48, 05, B4]
+1F13F; [48, 05, B4]
+1F17F; [48, 05, B4]
+1F18A; [48, 05, B4]
+1E55; [48, 05, 05][, 88, 05]
+1E54; [48, 05, 9C][, 88, 05]
+1E57; [48, 05, 05][, 9C, 05]
+1E56; [48, 05, 9C][, 9C, 05]
+33D8; [48, 05, 31][08, 05, 30][42, 05, 31][08, 05, 30]
+3380; [48, 05, 31][2A, 05, B4]
+33A9; [48, 05, B4][2A, 05, 31]
+1F18C; [48, 05, B4][2A, 05, B4]
+3376; [48, 05, 31][2E, 05, 2E]
+338A; [48, 05, 31][34, 05, B1]
+33D7; [48, 05, B4][38, 05, B4]
+33D9; [48, 05, B4][48, 05, B4][42, 05, B4]
+1F14E; [48, 05, B4][48, 05, B4][54, 05, B4]
+33DA; [48, 05, B4][4C, 05, B4]
+33B0; [48, 05, 31][4E, 05, 31]
+3250; [48, 05, B4][50, 05, B4][32, 05, B4]
+33B4; [48, 05, 31][54, 05, B4]
+33BA; [48, 05, 31][56, 05, B8]
+
+1D18; [49 06, 05, 05]
+
+1D7D; [49 08, 05, 05]
+2C63; [49 08, 05, A0]
+
+A751; [49 0A, 05, 05]
+A750; [49 0A, 05, A0]
+
+1D71; [49 0C, 05, 05]
+
+1D88; [49 0E, 05, 05]
+
+01A5; [49 10, 05, 05]
+01A4; [49 10, 05, A0]
+
+A753; [49 12, 05, 05]
+A752; [49 12, 05, A0]
+
+A755; [49 14, 05, 05]
+A754; [49 14, 05, A0]
+
+A7FC; [49 16, 05, 05]
+
+0278; [49 18, 05, 05]
+1DB2; [49 18, 05, 20]
+
+2C77; [49 1A, 05, 05]
+
+0071; [4A, 05, 05]
+FF51; [4A, 05, 10]
+1D42A; [4A, 05, 18]
+1D45E; [4A, 05, 18]
+1D492; [4A, 05, 18]
+1D4C6; [4A, 05, 18]
+1D4FA; [4A, 05, 18]
+1D52E; [4A, 05, 18]
+1D562; [4A, 05, 18]
+1D596; [4A, 05, 18]
+1D5CA; [4A, 05, 18]
+1D5FE; [4A, 05, 18]
+1D632; [4A, 05, 18]
+1D666; [4A, 05, 18]
+1D69A; [4A, 05, 18]
+24E0; [4A, 05, 1C]
+0051; [4A, 05, A0]
+FF31; [4A, 05, A4]
+211A; [4A, 05, AC]
+1D410; [4A, 05, AC]
+1D444; [4A, 05, AC]
+1D478; [4A, 05, AC]
+1D4AC; [4A, 05, AC]
+1D4E0; [4A, 05, AC]
+1D514; [4A, 05, AC]
+1D57C; [4A, 05, AC]
+1D5B0; [4A, 05, AC]
+1D5E4; [4A, 05, AC]
+1D618; [4A, 05, AC]
+1D64C; [4A, 05, AC]
+1D680; [4A, 05, AC]
+24C6; [4A, 05, B0]
+1F160; [4A, 05, B0]
+1F140; [4A, 05, B8]
+1F180; [4A, 05, B8]
+0239; [4A, 05, 14][48, 05, 13]
+
+A7AF; [4B 06, 05, 05]
+
+A757; [4B 08, 05, 05]
+A756; [4B 08, 05, A0]
+
+A759; [4B 0A, 05, 05]
+A758; [4B 0A, 05, A0]
+
+02A0; [4B 0C, 05, 05]
+
+024B; [4B 0E, 05, 05]
+024A; [4B 0E, 05, A0]
+
+0138; [4B 10, 05, 05]
+
+0072; [4C, 05, 05]
+FF52; [4C, 05, 10]
+036C; [4C, 05, 13]
+1DCA; [4C, 05, 13]
+1D42B; [4C, 05, 16]
+1D45F; [4C, 05, 16]
+1D493; [4C, 05, 16]
+1D4C7; [4C, 05, 16]
+1D4FB; [4C, 05, 16]
+1D52F; [4C, 05, 16]
+1D563; [4C, 05, 16]
+1D597; [4C, 05, 16]
+1D5CB; [4C, 05, 16]
+1D5FF; [4C, 05, 16]
+1D633; [4C, 05, 16]
+1D667; [4C, 05, 16]
+1D69B; [4C, 05, 16]
+24E1; [4C, 05, 19]
+0052; [4C, 05, 9C]
+FF32; [4C, 05, 9F]
+211B; [4C, 05, A5]
+211C; [4C, 05, A5]
+211D; [4C, 05, A5]
+1D411; [4C, 05, A5]
+1D445; [4C, 05, A5]
+1D479; [4C, 05, A5]
+1D4E1; [4C, 05, A5]
+1D57D; [4C, 05, A5]
+1D5B1; [4C, 05, A5]
+1D5E5; [4C, 05, A5]
+1D619; [4C, 05, A5]
+1D64D; [4C, 05, A5]
+1D681; [4C, 05, A5]
+24C7; [4C, 05, A8]
+1F12C; [4C, 05, A8]
+1F161; [4C, 05, A8]
+02B3; [4C, 05, 2B]
+1D63; [4C, 05, 2E]
+1D3F; [4C, 05, B4]
+1F141; [4C, 05, B4]
+1F181; [4C, 05, B4]
+0155; [4C, 05, 05][, 88, 05]
+0154; [4C, 05, 9C][, 88, 05]
+0159; [4C, 05, 05][, 90, 05]
+0158; [4C, 05, 9C][, 90, 05]
+1E59; [4C, 05, 05][, 9C, 05]
+1E58; [4C, 05, 9C][, 9C, 05]
+0157; [4C, 05, 05][, A0, 05]
+0156; [4C, 05, 9C][, A0, 05]
+A7A7; [4C, 05, 13][, AA, 20]
+A7A6; [4C, 05, A2][, AA, 20]
+0211; [4C, 05, 05][, B8, 05]
+0210; [4C, 05, 9C][, B8, 05]
+0213; [4C, 05, 05][, BC, 05]
+0212; [4C, 05, 9C][, BC, 05]
+1E5B; [4C, 05, 05][, C4, 05]
+1E5A; [4C, 05, 9C][, C4, 05]
+1E5D; [4C, 05, 05][, C4, 05][, A4, 05]
+1E5C; [4C, 05, 9C][, C4, 05][, A4, 05]
+1E5F; [4C, 05, 05][, D2, 05]
+1E5E; [4C, 05, 9C][, D2, 05]
+A783; [4C, 70, 05]
+A782; [4C, 70, A0]
+33AD; [4C, 05, 31][2A, 05, 31][30, 05, 2E]
+33AE; [4C, 05, 31][2A, 05, 31][30, 05, 2E][0C 92, 05, 20][4E, 05, 31]
+33AF; [4C, 05, 31][2A, 05, 31][30, 05, 2E][0C 92, 05, 20][4E, 05, 31][17, 05, 2E]
+
+AB45; [4D 06, 05, 05]
+
+0280; [4D 08, 05, 05]
+1DE2; [4D 08, 05, 20]
+01A6; [4D 08, 05, AE]
+
+AB46; [4D 0A, 05, 05]
+
+A75B; [4D 0C, 05, 05]
+1DE3; [4D 0C, 05, 20]
+A75A; [4D 0C, 05, AE]
+
+1D19; [4D 0E, 05, 05]
+
+024D; [4D 10, 05, 05]
+024C; [4D 10, 05, A0]
+
+1D72; [4D 12, 05, 05]
+
+0279; [4D 14, 05, 05]
+02B4; [4D 14, 05, 20]
+
+1D1A; [4D 16, 05, 05]
+
+027A; [4D 18, 05, 05]
+
+1D89; [4D 1A, 05, 05]
+
+027B; [4D 1C, 05, 05]
+02B5; [4D 1C, 05, 20]
+
+2C79; [4D 1E, 05, 05]
+
+027C; [4D 20, 05, 05]
+
+027D; [4D 22, 05, 05]
+2C64; [4D 22, 05, A0]
+
+AB49; [4D 24, 05, 05]
+
+027E; [4D 26, 05, 05]
+
+1D73; [4D 28, 05, 05]
+
+027F; [4D 2A, 05, 05]
+
+AB47; [4D 2C, 05, 05]
+
+AB48; [4D 2E, 05, 05]
+
+AB4A; [4D 30, 05, 05]
+
+AB4B; [4D 32, 05, 05]
+
+AB4C; [4D 34, 05, 05]
+
+0281; [4D 36, 05, 05]
+02B6; [4D 36, 05, 20]
+
+A775; [4D 38, 05, 05]
+
+A776; [4D 3A, 05, 05]
+
+A75D; [4D 3C, 05, 05]
+A75C; [4D 3C, 05, A0]
+
+0073; [4E, 05, 05]
+FF53; [4E, 05, 10]
+1DE4; [4E, 05, 13]
+1D42C; [4E, 05, 16]
+1D460; [4E, 05, 16]
+1D494; [4E, 05, 16]
+1D4C8; [4E, 05, 16]
+1D4FC; [4E, 05, 16]
+1D530; [4E, 05, 16]
+1D564; [4E, 05, 16]
+1D598; [4E, 05, 16]
+1D5CC; [4E, 05, 16]
+1D600; [4E, 05, 16]
+1D634; [4E, 05, 16]
+1D668; [4E, 05, 16]
+1D69C; [4E, 05, 16]
+24E2; [4E, 05, 19]
+0053; [4E, 05, 9C]
+FF33; [4E, 05, 9F]
+1D412; [4E, 05, A5]
+1D446; [4E, 05, A5]
+1D47A; [4E, 05, A5]
+1D4AE; [4E, 05, A5]
+1D4E2; [4E, 05, A5]
+1D516; [4E, 05, A5]
+1D54A; [4E, 05, A5]
+1D57E; [4E, 05, A5]
+1D5B2; [4E, 05, A5]
+1D5E6; [4E, 05, A5]
+1D61A; [4E, 05, A5]
+1D64E; [4E, 05, A5]
+1D682; [4E, 05, A5]
+24C8; [4E, 05, A8]
+1F162; [4E, 05, A8]
+02E2; [4E, 05, 2B]
+209B; [4E, 05, 2E]
+1F142; [4E, 05, B4]
+1F182; [4E, 05, B4]
+015B; [4E, 05, 05][, 88, 05]
+015A; [4E, 05, 9C][, 88, 05]
+1E65; [4E, 05, 05][, 88, 05][, 9C, 05]
+1E64; [4E, 05, 9C][, 88, 05][, 9C, 05]
+015D; [4E, 05, 05][, 8E, 05]
+015C; [4E, 05, 9C][, 8E, 05]
+0161; [4E, 05, 05][, 90, 05]
+0160; [4E, 05, 9C][, 90, 05]
+1E67; [4E, 05, 05][, 90, 05][, 9C, 05]
+1E66; [4E, 05, 9C][, 90, 05][, 9C, 05]
+1E61; [4E, 05, 05][, 9C, 05]
+1E60; [4E, 05, 9C][, 9C, 05]
+015F; [4E, 05, 05][, A0, 05]
+015E; [4E, 05, 9C][, A0, 05]
+A7A9; [4E, 05, 13][, AA, 20]
+A7A8; [4E, 05, A2][, AA, 20]
+1E63; [4E, 05, 05][, C4, 05]
+1E62; [4E, 05, 9C][, C4, 05]
+1E69; [4E, 05, 05][, C4, 05][, 9C, 05]
+1E68; [4E, 05, 9C][, C4, 05][, 9C, 05]
+0219; [4E, 05, 05][, CA, 05]
+0218; [4E, 05, 9C][, CA, 05]
+017F; [4E, 78, 05]
+1DE5; [4E, 78, 05]
+A785; [4E, 78, 05]
+A784; [4E, 78, A0]
+1E9B; [4E, 78, 05][, 9C, 05]
+1F18D; [4E, 05, B4][2A, 05, B4]
+1F14C; [4E, 05, B4][30, 05, B1]
+1F1AA; [4E, 05, B4][38, 05, B4][54, 05, B4]
+2120; [4E, 05, 2B][42, 05, 2B]
+1F198; [4E, 05, B4][46, 05, B4][4E, 05, B4]
+33DB; [4E, 05, 31][4C, 05, 31]
+1F14D; [4E, 05, B4][4E, 05, B4]
+00DF; [4E, 70, 05][4E, 05, 13]
+1E9E; [4E, 70, A0][4E, 05, A2]
+FB06; [4E, 05, 13][50, 05, 13]
+FB05; [4E, 78, 05][50, 05, 13]
+33DC; [4E, 05, B4][54, 05, 31]
+
+A731; [4F 06, 05, 05]
+
+1D74; [4F 08, 05, 05]
+
+1D8A; [4F 0A, 05, 05]
+
+0282; [4F 0C, 05, 05]
+1DB3; [4F 0C, 05, 20]
+
+023F; [4F 0E, 05, 05]
+2C7E; [4F 0E, 05, A0]
+
+1E9C; [4F 10, 05, 05]
+
+1E9D; [4F 12, 05, 05]
+
+0283; [4F 14, 05, 05]
+1DEF; [4F 14, 05, 10]
+01A9; [4F 14, 05, 9E]
+1DB4; [4F 14, 05, 2C]
+
+AB4D; [4F 16, 05, 05]
+
+1D8B; [4F 18, 05, 05]
+
+01AA; [4F 1A, 05, 05]
+
+0285; [4F 1C, 05, 05]
+
+1D98; [4F 1E, 05, 05]
+
+0286; [4F 20, 05, 05]
+
+0074; [50, 05, 05]
+FF54; [50, 05, 10]
+036D; [50, 05, 13]
+1D42D; [50, 05, 16]
+1D461; [50, 05, 16]
+1D495; [50, 05, 16]
+1D4C9; [50, 05, 16]
+1D4FD; [50, 05, 16]
+1D531; [50, 05, 16]
+1D565; [50, 05, 16]
+1D599; [50, 05, 16]
+1D5CD; [50, 05, 16]
+1D601; [50, 05, 16]
+1D635; [50, 05, 16]
+1D669; [50, 05, 16]
+1D69D; [50, 05, 16]
+24E3; [50, 05, 19]
+0054; [50, 05, 9C]
+FF34; [50, 05, 9F]
+1D413; [50, 05, A5]
+1D447; [50, 05, A5]
+1D47B; [50, 05, A5]
+1D4AF; [50, 05, A5]
+1D4E3; [50, 05, A5]
+1D517; [50, 05, A5]
+1D54B; [50, 05, A5]
+1D57F; [50, 05, A5]
+1D5B3; [50, 05, A5]
+1D5E7; [50, 05, A5]
+1D61B; [50, 05, A5]
+1D64F; [50, 05, A5]
+1D683; [50, 05, A5]
+24C9; [50, 05, A8]
+1F163; [50, 05, A8]
+1D57; [50, 05, 2B]
+209C; [50, 05, 2E]
+1D40; [50, 05, B4]
+1F143; [50, 05, B4]
+1F183; [50, 05, B4]
+0165; [50, 05, 05][, 90, 05]
+0164; [50, 05, 9C][, 90, 05]
+1E97; [50, 05, 05][, 96, 05]
+1E6B; [50, 05, 05][, 9C, 05]
+1E6A; [50, 05, 9C][, 9C, 05]
+0163; [50, 05, 05][, A0, 05]
+0162; [50, 05, 9C][, A0, 05]
+1E6D; [50, 05, 05][, C4, 05]
+1E6C; [50, 05, 9C][, C4, 05]
+021B; [50, 05, 05][, CA, 05]
+021A; [50, 05, 9C][, CA, 05]
+1E71; [50, 05, 05][, CC, 05]
+1E70; [50, 05, 9C][, CC, 05]
+1E6F; [50, 05, 05][, D2, 05]
+1E6E; [50, 05, 9C][, D2, 05]
+A787; [50, 78, 05]
+A786; [50, 78, A0]
+02A8; [50, 05, 13][2F 10, 05, 20]
+2121; [50, 05, A2][32, 05, A2][40, 05, A2]
+1D7A; [50, 70, 05][38, 05, 13]
+3394; [50, 05, B4][38, 05, B4][5C, 05, 2E]
+2122; [50, 05, 2B][42, 05, 2B]
+01BE; [50, 05, 13][4E, 05, 13]
+02A6; [50, 05, 13][4E, 05, 13]
+02A7; [50, 05, 13][4F 14, 05, 10]
+A729; [50, 05, 13][5C, 05, 13]
+A728; [50, 05, A2][5C, 05, 13]
+
+1D1B; [51 06, 05, 05]
+
+0167; [51 08, 05, 05]
+0166; [51 08, 05, A0]
+
+2C66; [51 0A, 05, 05]
+023E; [51 0A, 05, A0]
+
+1D75; [51 0C, 05, 05]
+
+01AB; [51 0E, 05, 05]
+1DB5; [51 0E, 05, 20]
+
+01AD; [51 10, 05, 05]
+01AC; [51 10, 05, A0]
+
+0288; [51 12, 05, 05]
+01AE; [51 12, 05, A0]
+
+0236; [51 14, 05, 05]
+
+A777; [51 16, 05, 05]
+
+0287; [51 18, 05, 05]
+A7B1; [51 18, 05, A0]
+
+0075; [52, 05, 05]
+FF55; [52, 05, 10]
+0367; [52, 05, 13]
+1D42E; [52, 05, 16]
+1D462; [52, 05, 16]
+1D496; [52, 05, 16]
+1D4CA; [52, 05, 16]
+1D4FE; [52, 05, 16]
+1D532; [52, 05, 16]
+1D566; [52, 05, 16]
+1D59A; [52, 05, 16]
+1D5CE; [52, 05, 16]
+1D602; [52, 05, 16]
+1D636; [52, 05, 16]
+1D66A; [52, 05, 16]
+1D69E; [52, 05, 16]
+24E4; [52, 05, 19]
+0055; [52, 05, 9C]
+FF35; [52, 05, 9F]
+1D414; [52, 05, A5]
+1D448; [52, 05, A5]
+1D47C; [52, 05, A5]
+1D4B0; [52, 05, A5]
+1D4E4; [52, 05, A5]
+1D518; [52, 05, A5]
+1D54C; [52, 05, A5]
+1D580; [52, 05, A5]
+1D5B4; [52, 05, A5]
+1D5E8; [52, 05, A5]
+1D61C; [52, 05, A5]
+1D650; [52, 05, A5]
+1D684; [52, 05, A5]
+24CA; [52, 05, A8]
+1F164; [52, 05, A8]
+1D58; [52, 05, 2B]
+1D64; [52, 05, 2E]
+1D41; [52, 05, B1]
+1F144; [52, 05, B1]
+1F184; [52, 05, B1]
+00FA; [52, 05, 05][, 88, 05]
+00DA; [52, 05, 9C][, 88, 05]
+00F9; [52, 05, 05][, 8A, 05]
+00D9; [52, 05, 9C][, 8A, 05]
+016D; [52, 05, 05][, 8C, 05]
+016C; [52, 05, 9C][, 8C, 05]
+00FB; [52, 05, 05][, 8E, 05]
+00DB; [52, 05, 9C][, 8E, 05]
+01D4; [52, 05, 05][, 90, 05]
+01D3; [52, 05, 9C][, 90, 05]
+016F; [52, 05, 05][, 92, 05]
+016E; [52, 05, 9C][, 92, 05]
+00FC; [52, 05, 05][, 96, 05]
+1DF4; [52, 05, 13][, 96, 20]
+A79F; [52, 05, 13][, 96, 20]
+00DC; [52, 05, 9C][, 96, 05]
+A79E; [52, 05, A2][, 96, 20]
+01D8; [52, 05, 05][, 96, 05][, 88, 05]
+01D7; [52, 05, 9C][, 96, 05][, 88, 05]
+01DC; [52, 05, 05][, 96, 05][, 8A, 05]
+01DB; [52, 05, 9C][, 96, 05][, 8A, 05]
+01DA; [52, 05, 05][, 96, 05][, 90, 05]
+01D9; [52, 05, 9C][, 96, 05][, 90, 05]
+01D6; [52, 05, 05][, 96, 05][, A4, 05]
+01D5; [52, 05, 9C][, 96, 05][, A4, 05]
+0171; [52, 05, 05][, 98, 05]
+0170; [52, 05, 9C][, 98, 05]
+0169; [52, 05, 05][, 9A, 05]
+0168; [52, 05, 9C][, 9A, 05]
+1E79; [52, 05, 05][, 9A, 05][, 88, 05]
+1E78; [52, 05, 9C][, 9A, 05][, 88, 05]
+0173; [52, 05, 05][, A2, 05]
+0172; [52, 05, 9C][, A2, 05]
+016B; [52, 05, 05][, A4, 05]
+016A; [52, 05, 9C][, A4, 05]
+1E7B; [52, 05, 05][, A4, 05][, 96, 05]
+1E7A; [52, 05, 9C][, A4, 05][, 96, 05]
+1DF0; [52, 05, 13][, A8, 20]
+1EE7; [52, 05, 05][, B6, 05]
+1EE6; [52, 05, 9C][, B6, 05]
+0215; [52, 05, 05][, B8, 05]
+0214; [52, 05, 9C][, B8, 05]
+0217; [52, 05, 05][, BC, 05]
+0216; [52, 05, 9C][, BC, 05]
+01B0; [52, 05, 05][, BE, 05]
+01AF; [52, 05, 9C][, BE, 05]
+1EE9; [52, 05, 05][, BE, 05][, 88, 05]
+1EE8; [52, 05, 9C][, BE, 05][, 88, 05]
+1EEB; [52, 05, 05][, BE, 05][, 8A, 05]
+1EEA; [52, 05, 9C][, BE, 05][, 8A, 05]
+1EEF; [52, 05, 05][, BE, 05][, 9A, 05]
+1EEE; [52, 05, 9C][, BE, 05][, 9A, 05]
+1EED; [52, 05, 05][, BE, 05][, B6, 05]
+1EEC; [52, 05, 9C][, BE, 05][, B6, 05]
+1EF1; [52, 05, 05][, BE, 05][, C4, 05]
+1EF0; [52, 05, 9C][, BE, 05][, C4, 05]
+1EE5; [52, 05, 05][, C4, 05]
+1EE4; [52, 05, 9C][, C4, 05]
+1E73; [52, 05, 05][, C6, 05]
+1E72; [52, 05, 9C][, C6, 05]
+1E77; [52, 05, 05][, CC, 05]
+1E76; [52, 05, 9C][, CC, 05]
+1E75; [52, 05, 05][, D0, 05]
+1E74; [52, 05, 9C][, D0, 05]
+1F1AB; [52, 05, B1][38, 05, B4][30, 05, B1]
+1F199; [52, 05, B1][48, 05, B4][07 56, 05, 30]
+
+1D1C; [53 06, 05, 05]
+1DB8; [53 06, 05, 20]
+
+AB4E; [53 08, 05, 05]
+
+1D1D; [53 0A, 05, 05]
+1D59; [53 0A, 05, 20]
+
+1D1E; [53 0C, 05, 05]
+
+1D6B; [53 0E, 05, 05]
+
+AB50; [53 10, 05, 05]
+
+AB51; [53 12, 05, 05]
+
+0289; [53 14, 05, 05]
+0244; [53 14, 05, A0]
+1DB6; [53 14, 05, 2E]
+
+AB4F; [53 16, 05, 05]
+
+A7B9; [53 18, 05, 05]
+A7B8; [53 18, 05, A0]
+
+1D7E; [53 1A, 05, 05]
+
+1D99; [53 1C, 05, 05]
+
+AB52; [53 1E, 05, 05]
+AB5F; [53 1E, 05, 20]
+
+0265; [53 20, 05, 05]
+A78D; [53 20, 05, A0]
+1DA3; [53 20, 05, 2E]
+
+02AE; [53 22, 05, 05]
+
+02AF; [53 24, 05, 05]
+
+026F; [53 26, 05, 05]
+019C; [53 26, 05, A0]
+1D5A; [53 26, 05, 2E]
+
+A7FA; [53 28, 05, 05]
+
+1D1F; [53 2A, 05, 05]
+
+0270; [53 2C, 05, 05]
+1DAD; [53 2C, 05, 20]
+
+028A; [53 2E, 05, 05]
+01B1; [53 2E, 05, A0]
+1DB7; [53 2E, 05, 2E]
+
+1D7F; [53 30, 05, 05]
+
+0076; [54, 05, 05]
+FF56; [54, 05, 10]
+036E; [54, 05, 13]
+2174; [54, 05, 13]
+1D42F; [54, 05, 16]
+1D463; [54, 05, 16]
+1D497; [54, 05, 16]
+1D4CB; [54, 05, 16]
+1D4FF; [54, 05, 16]
+1D533; [54, 05, 16]
+1D567; [54, 05, 16]
+1D59B; [54, 05, 16]
+1D5CF; [54, 05, 16]
+1D603; [54, 05, 16]
+1D637; [54, 05, 16]
+1D66B; [54, 05, 16]
+1D69F; [54, 05, 16]
+24E5; [54, 05, 19]
+0056; [54, 05, 9C]
+FF36; [54, 05, 9F]
+2164; [54, 05, A2]
+1D415; [54, 05, A5]
+1D449; [54, 05, A5]
+1D47D; [54, 05, A5]
+1D4B1; [54, 05, A5]
+1D4E5; [54, 05, A5]
+1D519; [54, 05, A5]
+1D54D; [54, 05, A5]
+1D581; [54, 05, A5]
+1D5B5; [54, 05, A5]
+1D5E9; [54, 05, A5]
+1D61D; [54, 05, A5]
+1D651; [54, 05, A5]
+1D685; [54, 05, A5]
+24CB; [54, 05, A8]
+1F165; [54, 05, A8]
+1D5B; [54, 05, 2B]
+1D65; [54, 05, 2E]
+2C7D; [54, 05, B4]
+1F145; [54, 05, B4]
+1F185; [54, 05, B4]
+1E7D; [54, 05, 05][, 9A, 05]
+1E7C; [54, 05, 9C][, 9A, 05]
+1E7F; [54, 05, 05][, C4, 05]
+1E7E; [54, 05, 9C][, C4, 05]
+33DE; [54, 05, B4][0C 92, 05, 20][42, 05, 31]
+2175; [54, 05, 13][3A, 05, 13]
+2165; [54, 05, A2][3A, 05, A2]
+2176; [54, 05, 13][3A, 05, 13][3A, 05, 13]
+2166; [54, 05, A2][3A, 05, A2][3A, 05, A2]
+2177; [54, 05, 13][3A, 05, 13][3A, 05, 13][3A, 05, 13]
+2167; [54, 05, A2][3A, 05, A2][3A, 05, A2][3A, 05, A2]
+1F1AC; [54, 05, B4][46, 05, B4][30, 05, B1]
+1F19A; [54, 05, B4][4E, 05, B4]
+A761; [54, 05, 13][5A, 05, 13]
+A760; [54, 05, A2][5A, 05, A2]
+
+1D20; [55 06, 05, 05]
+
+A75F; [55 08, 05, 05]
+A75E; [55 08, 05, A0]
+
+1D8C; [55 0A, 05, 05]
+
+028B; [55 0C, 05, 05]
+01B2; [55 0C, 05, A0]
+1DB9; [55 0C, 05, 2E]
+
+2C71; [55 0E, 05, 05]
+
+2C74; [55 10, 05, 05]
+
+1EFD; [55 12, 05, 05]
+1EFC; [55 12, 05, A0]
+
+028C; [55 14, 05, 05]
+0245; [55 14, 05, A0]
+1DBA; [55 14, 05, 2E]
+
+0077; [56, 05, 05]
+FF57; [56, 05, 10]
+1DF1; [56, 05, 14]
+1D430; [56, 05, 18]
+1D464; [56, 05, 18]
+1D498; [56, 05, 18]
+1D4CC; [56, 05, 18]
+1D500; [56, 05, 18]
+1D534; [56, 05, 18]
+1D568; [56, 05, 18]
+1D59C; [56, 05, 18]
+1D5D0; [56, 05, 18]
+1D604; [56, 05, 18]
+1D638; [56, 05, 18]
+1D66C; [56, 05, 18]
+1D6A0; [56, 05, 18]
+24E6; [56, 05, 1C]
+0057; [56, 05, A0]
+FF37; [56, 05, A4]
+1D416; [56, 05, AC]
+1D44A; [56, 05, AC]
+1D47E; [56, 05, AC]
+1D4B2; [56, 05, AC]
+1D4E6; [56, 05, AC]
+1D51A; [56, 05, AC]
+1D54E; [56, 05, AC]
+1D582; [56, 05, AC]
+1D5B6; [56, 05, AC]
+1D5EA; [56, 05, AC]
+1D61E; [56, 05, AC]
+1D652; [56, 05, AC]
+1D686; [56, 05, AC]
+24CC; [56, 05, B0]
+1F166; [56, 05, B0]
+02B7; [56, 05, 34]
+1D42; [56, 05, B8]
+1F146; [56, 05, B8]
+1F186; [56, 05, B8]
+1E83; [56, 05, 05][, 88, 05]
+1E82; [56, 05, A0][, 88, 05]
+1E81; [56, 05, 05][, 8A, 05]
+1E80; [56, 05, A0][, 8A, 05]
+0175; [56, 05, 05][, 8E, 05]
+0174; [56, 05, A0][, 8E, 05]
+1E98; [56, 05, 05][, 92, 05]
+1E85; [56, 05, 05][, 96, 05]
+1E84; [56, 05, A0][, 96, 05]
+1E87; [56, 05, 05][, 9C, 05]
+1E86; [56, 05, A0][, 9C, 05]
+1E89; [56, 05, 05][, C4, 05]
+1E88; [56, 05, A0][, C4, 05]
+33DD; [56, 05, B8][2C, 05, 2E]
+1F14F; [56, 05, B8][2E, 05, B1]
+1F18F; [56, 05, B8][2E, 05, B1]
+1F12E; [56, 05, B0][5C, 05, A8]
+
+1D21; [57 06, 05, 05]
+
+2C73; [57 08, 05, 05]
+2C72; [57 08, 05, A0]
+
+028D; [57 0A, 05, 05]
+
+0078; [58, 05, 05]
+FF58; [58, 05, 10]
+036F; [58, 05, 13]
+2179; [58, 05, 13]
+1D431; [58, 05, 16]
+1D465; [58, 05, 16]
+1D499; [58, 05, 16]
+1D4CD; [58, 05, 16]
+1D501; [58, 05, 16]
+1D535; [58, 05, 16]
+1D569; [58, 05, 16]
+1D59D; [58, 05, 16]
+1D5D1; [58, 05, 16]
+1D605; [58, 05, 16]
+1D639; [58, 05, 16]
+1D66D; [58, 05, 16]
+1D6A1; [58, 05, 16]
+24E7; [58, 05, 19]
+0058; [58, 05, 9C]
+FF38; [58, 05, 9F]
+2169; [58, 05, A2]
+1D417; [58, 05, A5]
+1D44B; [58, 05, A5]
+1D47F; [58, 05, A5]
+1D4B3; [58, 05, A5]
+1D4E7; [58, 05, A5]
+1D51B; [58, 05, A5]
+1D54F; [58, 05, A5]
+1D583; [58, 05, A5]
+1D5B7; [58, 05, A5]
+1D5EB; [58, 05, A5]
+1D61F; [58, 05, A5]
+1D653; [58, 05, A5]
+1D687; [58, 05, A5]
+24CD; [58, 05, A8]
+1F167; [58, 05, A8]
+02E3; [58, 05, 2B]
+2093; [58, 05, 2E]
+1F147; [58, 05, B4]
+1F187; [58, 05, B4]
+1E8D; [58, 05, 05][, 96, 05]
+1E8C; [58, 05, 9C][, 96, 05]
+1E8B; [58, 05, 05][, 9C, 05]
+1E8A; [58, 05, 9C][, 9C, 05]
+217A; [58, 05, 13][3A, 05, 13]
+216A; [58, 05, A2][3A, 05, A2]
+217B; [58, 05, 13][3A, 05, 13][3A, 05, 13]
+216B; [58, 05, A2][3A, 05, A2][3A, 05, A2]
+
+1D8D; [59 06, 05, 05]
+
+AB56; [59 08, 05, 05]
+
+AB57; [59 0A, 05, 05]
+
+AB58; [59 0C, 05, 05]
+
+AB59; [59 0E, 05, 05]
+
+AB53; [59 10, 05, 05]
+A7B3; [59 10, 05, A0]
+
+AB54; [59 12, 05, 05]
+
+AB55; [59 14, 05, 05]
+
+0079; [5A, 05, 05]
+FF59; [5A, 05, 10]
+1D432; [5A, 05, 16]
+1D466; [5A, 05, 16]
+1D49A; [5A, 05, 16]
+1D4CE; [5A, 05, 16]
+1D502; [5A, 05, 16]
+1D536; [5A, 05, 16]
+1D56A; [5A, 05, 16]
+1D59E; [5A, 05, 16]
+1D5D2; [5A, 05, 16]
+1D606; [5A, 05, 16]
+1D63A; [5A, 05, 16]
+1D66E; [5A, 05, 16]
+1D6A2; [5A, 05, 16]
+24E8; [5A, 05, 19]
+0059; [5A, 05, 9C]
+FF39; [5A, 05, 9F]
+1D418; [5A, 05, A5]
+1D44C; [5A, 05, A5]
+1D480; [5A, 05, A5]
+1D4B4; [5A, 05, A5]
+1D4E8; [5A, 05, A5]
+1D51C; [5A, 05, A5]
+1D550; [5A, 05, A5]
+1D584; [5A, 05, A5]
+1D5B8; [5A, 05, A5]
+1D5EC; [5A, 05, A5]
+1D620; [5A, 05, A5]
+1D654; [5A, 05, A5]
+1D688; [5A, 05, A5]
+24CE; [5A, 05, A8]
+1F168; [5A, 05, A8]
+02B8; [5A, 05, 2B]
+1F148; [5A, 05, B1]
+1F188; [5A, 05, B1]
+00FD; [5A, 05, 05][, 88, 05]
+00DD; [5A, 05, 9C][, 88, 05]
+1EF3; [5A, 05, 05][, 8A, 05]
+1EF2; [5A, 05, 9C][, 8A, 05]
+0177; [5A, 05, 05][, 8E, 05]
+0176; [5A, 05, 9C][, 8E, 05]
+1E99; [5A, 05, 05][, 92, 05]
+00FF; [5A, 05, 05][, 96, 05]
+0178; [5A, 05, 9C][, 96, 05]
+1EF9; [5A, 05, 05][, 9A, 05]
+1EF8; [5A, 05, 9C][, 9A, 05]
+1E8F; [5A, 05, 05][, 9C, 05]
+1E8E; [5A, 05, 9C][, 9C, 05]
+0233; [5A, 05, 05][, A4, 05]
+0232; [5A, 05, 9C][, A4, 05]
+1EF7; [5A, 05, 05][, B6, 05]
+1EF6; [5A, 05, 9C][, B6, 05]
+1EF5; [5A, 05, 05][, C4, 05]
+1EF4; [5A, 05, 9C][, C4, 05]
+
+028F; [5B 06, 05, 05]
+
+024F; [5B 08, 05, 05]
+024E; [5B 08, 05, A0]
+
+01B4; [5B 0A, 05, 05]
+01B3; [5B 0A, 05, A0]
+
+1EFF; [5B 0C, 05, 05]
+1EFE; [5B 0C, 05, A0]
+
+AB5A; [5B 0E, 05, 05]
+
+021D; [5B 10, 05, 05]
+021C; [5B 10, 05, A0]
+
+007A; [5C, 05, 05]
+FF5A; [5C, 05, 10]
+1DE6; [5C, 05, 13]
+1D433; [5C, 05, 16]
+1D467; [5C, 05, 16]
+1D49B; [5C, 05, 16]
+1D4CF; [5C, 05, 16]
+1D503; [5C, 05, 16]
+1D537; [5C, 05, 16]
+1D56B; [5C, 05, 16]
+1D59F; [5C, 05, 16]
+1D5D3; [5C, 05, 16]
+1D607; [5C, 05, 16]
+1D63B; [5C, 05, 16]
+1D66F; [5C, 05, 16]
+1D6A3; [5C, 05, 16]
+24E9; [5C, 05, 19]
+005A; [5C, 05, 9C]
+FF3A; [5C, 05, 9F]
+2124; [5C, 05, A5]
+2128; [5C, 05, A5]
+1D419; [5C, 05, A5]
+1D44D; [5C, 05, A5]
+1D481; [5C, 05, A5]
+1D4B5; [5C, 05, A5]
+1D4E9; [5C, 05, A5]
+1D585; [5C, 05, A5]
+1D5B9; [5C, 05, A5]
+1D5ED; [5C, 05, A5]
+1D621; [5C, 05, A5]
+1D655; [5C, 05, A5]
+1D689; [5C, 05, A5]
+24CF; [5C, 05, A8]
+1F169; [5C, 05, A8]
+1DBB; [5C, 05, 2B]
+1F149; [5C, 05, B1]
+1F189; [5C, 05, B1]
+017A; [5C, 05, 05][, 88, 05]
+0179; [5C, 05, 9C][, 88, 05]
+1E91; [5C, 05, 05][, 8E, 05]
+1E90; [5C, 05, 9C][, 8E, 05]
+017E; [5C, 05, 05][, 90, 05]
+017D; [5C, 05, 9C][, 90, 05]
+017C; [5C, 05, 05][, 9C, 05]
+017B; [5C, 05, 9C][, 9C, 05]
+1E93; [5C, 05, 05][, C4, 05]
+1E92; [5C, 05, 9C][, C4, 05]
+1E95; [5C, 05, 05][, D2, 05]
+1E94; [5C, 05, 9C][, D2, 05]
+018D; [5C, 05, 13][56, 05, 14]
+
+1D22; [5D 06, 05, 05]
+
+01B6; [5D 08, 05, 05]
+01B5; [5D 08, 05, A0]
+
+1D76; [5D 0A, 05, 05]
+
+1D8E; [5D 0C, 05, 05]
+
+0225; [5D 0E, 05, 05]
+0224; [5D 0E, 05, A0]
+
+0290; [5D 10, 05, 05]
+1DBC; [5D 10, 05, 20]
+
+0291; [5D 12, 05, 05]
+1DBD; [5D 12, 05, 2E]
+
+0240; [5D 14, 05, 05]
+2C7F; [5D 14, 05, A0]
+
+2C6C; [5D 16, 05, 05]
+2C6B; [5D 16, 05, A0]
+
+A763; [5D 18, 05, 05]
+A762; [5D 18, 05, A0]
+
+0292; [5D 1A, 05, 05]
+01B7; [5D 1A, 05, 9E]
+1DBE; [5D 1A, 05, 2C]
+01EF; [5D 1A, 05, 05][, 90, 05]
+01EE; [5D 1A, 05, 9E][, 90, 05]
+
+1D23; [5D 1C, 05, 05]
+
+01B9; [5D 1E, 05, 05]
+01B8; [5D 1E, 05, A0]
+
+1D9A; [5D 20, 05, 05]
+
+01BA; [5D 22, 05, 05]
+
+0293; [5D 24, 05, 05]
+
+00FE; [5D 26, 05, 05]
+00DE; [5D 26, 05, A0]
+
+A765; [5D 28, 05, 05]
+A764; [5D 28, 05, A0]
+
+A767; [5D 2A, 05, 05]
+A766; [5D 2A, 05, A0]
+
+01BF; [5D 2C, 05, 05]
+01F7; [5D 2C, 05, A0]
+
+A769; [5D 2E, 05, 05]
+A768; [5D 2E, 05, A0]
+
+AB60; [5D 30, 05, 05]
+
+AB61; [5D 32, 05, 05]
+
+AB63; [5D 34, 05, 05]
+
+A76B; [5D 36, 05, 05]
+A76A; [5D 36, 05, A0]
+
+A76D; [5D 38, 05, 05]
+A76C; [5D 38, 05, A0]
+
+A76F; [5D 3A, 05, 05]
+1DD2; [5D 3A, 05, 10]
+A76E; [5D 3A, 05, 9E]
+A770; [5D 3A, 05, 2C]
+
+A778; [5D 3C, 05, 05]
+
+01BB; [5D 3E, 05, 05]
+
+A72B; [5D 40, 05, 05]
+A72A; [5D 40, 05, A0]
+
+A72D; [5D 42, 05, 05]
+A72C; [5D 42, 05, A0]
+
+A72F; [5D 44, 05, 05]
+A72E; [5D 44, 05, A0]
+
+01A8; [5D 46, 05, 05]
+01A7; [5D 46, 05, A0]
+
+01BD; [5D 48, 05, 05]
+01BC; [5D 48, 05, A0]
+
+0185; [5D 4A, 05, 05]
+0184; [5D 4A, 05, A0]
+
+0294; [5D 4C, 05, 05]
+
+0242; [5D 4E, 05, 05]
+0241; [5D 4E, 05, A0]
+
+02C0; [5D 50, 05, 05]
+
+02BC; [5D 52, 05, 05]
+0149; [5D 52, 05, 20][44, 05, 13]
+
+02EE; [5D 54, 05, 05]
+
+02BE; [5D 56, 05, 05]
+
+A723; [5D 58, 05, 05]
+A722; [5D 58, 05, A0]
+
+A78C; [5D 5A, 05, 05]
+A78B; [5D 5A, 05, A0]
+
+A78F; [5D 5C, 05, 05]
+
+0295; [5D 5E, 05, 05]
+02E4; [5D 5E, 05, 20]
+
+02BF; [5D 60, 05, 05]
+
+02C1; [5D 62, 05, 05]
+
+1D24; [5D 64, 05, 05]
+
+1D25; [5D 66, 05, 05]
+1D5C; [5D 66, 05, 20]
+
+A725; [5D 68, 05, 05]
+A724; [5D 68, 05, A0]
+
+02A1; [5D 6A, 05, 05]
+
+02A2; [5D 6C, 05, 05]
+
+0296; [5D 6E, 05, 05]
+
+01C0; [5D 70, 05, 05]
+
+01C1; [5D 72, 05, 05]
+
+01C2; [5D 74, 05, 05]
+
+01C3; [5D 76, 05, 05]
+
+0297; [5D 78, 05, 05]
+
+0298; [5D 7A, 05, 05]
+
+02AC; [5D 7C, 05, 05]
+
+02AD; [5D 7E, 05, 05]
+
+FDD0 FF3A; [5E 02 02, 05, 05] # REORDER_RESERVED_AFTER_LATIN first primary starts new lead byte
+
+FDD1 03A9; [60 04 02, 05, 05] # GREEK first primary starts new lead byte (compressible)
+
+03B1; [60 06, 05, 05]
+1D6C2; [60 06, 05, 1B]
+1D6FC; [60 06, 05, 1B]
+1D736; [60 06, 05, 1B]
+1D770; [60 06, 05, 1B]
+1D7AA; [60 06, 05, 1B]
+0391; [60 06, 05, A6]
+1D6A8; [60 06, 05, B1]
+1D6E2; [60 06, 05, B1]
+1D71C; [60 06, 05, B1]
+1D756; [60 06, 05, B1]
+1D790; [60 06, 05, B1]
+1F00; [60 06, 05, 05][, 84, 05]
+1F08; [60 06, 05, A6][, 84, 05]
+1F04; [60 06, 05, 05][, 84, 05][, 88, 05]
+1F0C; [60 06, 05, A6][, 84, 05][, 88, 05]
+1F84; [60 06, 05, 05][, 84, 05][, 88, 05][, D8, 05]
+1F8C; [60 06, 05, A6][, 84, 05][, 88, 05][, D8, 05]
+1F02; [60 06, 05, 05][, 84, 05][, 8A, 05]
+1F0A; [60 06, 05, A6][, 84, 05][, 8A, 05]
+1F82; [60 06, 05, 05][, 84, 05][, 8A, 05][, D8, 05]
+1F8A; [60 06, 05, A6][, 84, 05][, 8A, 05][, D8, 05]
+1F06; [60 06, 05, 05][, 84, 05][, 94, 05]
+1F0E; [60 06, 05, A6][, 84, 05][, 94, 05]
+1F86; [60 06, 05, 05][, 84, 05][, 94, 05][, D8, 05]
+1F8E; [60 06, 05, A6][, 84, 05][, 94, 05][, D8, 05]
+1F80; [60 06, 05, 05][, 84, 05][, D8, 05]
+1F88; [60 06, 05, A6][, 84, 05][, D8, 05]
+1F01; [60 06, 05, 05][, 86, 05]
+1F09; [60 06, 05, A6][, 86, 05]
+1F05; [60 06, 05, 05][, 86, 05][, 88, 05]
+1F0D; [60 06, 05, A6][, 86, 05][, 88, 05]
+1F85; [60 06, 05, 05][, 86, 05][, 88, 05][, D8, 05]
+1F8D; [60 06, 05, A6][, 86, 05][, 88, 05][, D8, 05]
+1F03; [60 06, 05, 05][, 86, 05][, 8A, 05]
+1F0B; [60 06, 05, A6][, 86, 05][, 8A, 05]
+1F83; [60 06, 05, 05][, 86, 05][, 8A, 05][, D8, 05]
+1F8B; [60 06, 05, A6][, 86, 05][, 8A, 05][, D8, 05]
+1F07; [60 06, 05, 05][, 86, 05][, 94, 05]
+1F0F; [60 06, 05, A6][, 86, 05][, 94, 05]
+1F87; [60 06, 05, 05][, 86, 05][, 94, 05][, D8, 05]
+1F8F; [60 06, 05, A6][, 86, 05][, 94, 05][, D8, 05]
+1F81; [60 06, 05, 05][, 86, 05][, D8, 05]
+1F89; [60 06, 05, A6][, 86, 05][, D8, 05]
+03AC; [60 06, 05, 05][, 88, 05]
+1F71; [60 06, 05, 05][, 88, 05]
+0386; [60 06, 05, A6][, 88, 05]
+1FBB; [60 06, 05, A6][, 88, 05]
+1FB4; [60 06, 05, 05][, 88, 05][, D8, 05]
+1F70; [60 06, 05, 05][, 8A, 05]
+1FBA; [60 06, 05, A6][, 8A, 05]
+1FB2; [60 06, 05, 05][, 8A, 05][, D8, 05]
+1FB0; [60 06, 05, 05][, 8C, 05]
+1FB8; [60 06, 05, A6][, 8C, 05]
+1FB6; [60 06, 05, 05][, 94, 05]
+1FB7; [60 06, 05, 05][, 94, 05][, D8, 05]
+1FB1; [60 06, 05, 05][, A4, 05]
+1FB9; [60 06, 05, A6][, A4, 05]
+1FB3; [60 06, 05, 05][, D8, 05]
+1FBC; [60 06, 05, A6][, D8, 05]
+
+03B2; [60 08, 05, 05]
+03D0; [60 08, 05, 10]
+1D6C3; [60 08, 05, 17]
+1D6FD; [60 08, 05, 17]
+1D737; [60 08, 05, 17]
+1D771; [60 08, 05, 17]
+1D7AB; [60 08, 05, 17]
+0392; [60 08, 05, 9E]
+1D6A9; [60 08, 05, A5]
+1D6E3; [60 08, 05, A5]
+1D71D; [60 08, 05, A5]
+1D757; [60 08, 05, A5]
+1D791; [60 08, 05, A5]
+1D5D; [60 08, 05, 2C]
+1D66; [60 08, 05, 33]
+
+03B3; [60 0A, 05, 05]
+213D; [60 0A, 05, 10]
+1D6C4; [60 0A, 05, 10]
+1D6FE; [60 0A, 05, 10]
+1D738; [60 0A, 05, 10]
+1D772; [60 0A, 05, 10]
+1D7AC; [60 0A, 05, 10]
+0393; [60 0A, 05, 98]
+213E; [60 0A, 05, A0]
+1D6AA; [60 0A, 05, A0]
+1D6E4; [60 0A, 05, A0]
+1D71E; [60 0A, 05, A0]
+1D758; [60 0A, 05, A0]
+1D792; [60 0A, 05, A0]
+1D5E; [60 0A, 05, 28]
+1D67; [60 0A, 05, 30]
+
+1D26; [60 0C, 05, 05]
+
+03B4; [60 0E, 05, 05]
+1D6C5; [60 0E, 05, 10]
+1D6FF; [60 0E, 05, 10]
+1D739; [60 0E, 05, 10]
+1D773; [60 0E, 05, 10]
+1D7AD; [60 0E, 05, 10]
+0394; [60 0E, 05, 9B]
+1D6AB; [60 0E, 05, A6]
+1D6E5; [60 0E, 05, A6]
+1D71F; [60 0E, 05, A6]
+1D759; [60 0E, 05, A6]
+1D793; [60 0E, 05, A6]
+1D5F; [60 0E, 05, 31]
+
+03B5; [60 10, 05, 05]
+03F5; [60 10, 05, 10]
+1D6C6; [60 10, 05, 1B]
+1D6DC; [60 10, 05, 1B]
+1D700; [60 10, 05, 1B]
+1D716; [60 10, 05, 1B]
+1D73A; [60 10, 05, 1B]
+1D750; [60 10, 05, 1B]
+1D774; [60 10, 05, 1B]
+1D78A; [60 10, 05, 1B]
+1D7AE; [60 10, 05, 1B]
+1D7C4; [60 10, 05, 1B]
+0395; [60 10, 05, A6]
+1D6AC; [60 10, 05, B1]
+1D6E6; [60 10, 05, B1]
+1D720; [60 10, 05, B1]
+1D75A; [60 10, 05, B1]
+1D794; [60 10, 05, B1]
+1F10; [60 10, 05, 05][, 84, 05]
+1F18; [60 10, 05, A6][, 84, 05]
+1F14; [60 10, 05, 05][, 84, 05][, 88, 05]
+1F1C; [60 10, 05, A6][, 84, 05][, 88, 05]
+1F12; [60 10, 05, 05][, 84, 05][, 8A, 05]
+1F1A; [60 10, 05, A6][, 84, 05][, 8A, 05]
+1F11; [60 10, 05, 05][, 86, 05]
+1F19; [60 10, 05, A6][, 86, 05]
+1F15; [60 10, 05, 05][, 86, 05][, 88, 05]
+1F1D; [60 10, 05, A6][, 86, 05][, 88, 05]
+1F13; [60 10, 05, 05][, 86, 05][, 8A, 05]
+1F1B; [60 10, 05, A6][, 86, 05][, 8A, 05]
+03AD; [60 10, 05, 05][, 88, 05]
+1F73; [60 10, 05, 05][, 88, 05]
+0388; [60 10, 05, A6][, 88, 05]
+1FC9; [60 10, 05, A6][, 88, 05]
+1F72; [60 10, 05, 05][, 8A, 05]
+1FC8; [60 10, 05, A6][, 8A, 05]
+
+03DD; [60 12, 05, 05]
+1D7CB; [60 12, 05, 10]
+03DC; [60 12, 05, 9E]
+1D7CA; [60 12, 05, AC]
+
+0377; [60 14, 05, 05]
+0376; [60 14, 05, A0]
+
+03DB; [60 16, 05, 05]
+03DA; [60 16, 05, A0]
+
+03B6; [60 18, 05, 05]
+1D6C7; [60 18, 05, 10]
+1D701; [60 18, 05, 10]
+1D73B; [60 18, 05, 10]
+1D775; [60 18, 05, 10]
+1D7AF; [60 18, 05, 10]
+0396; [60 18, 05, 9E]
+1D6AD; [60 18, 05, AC]
+1D6E7; [60 18, 05, AC]
+1D721; [60 18, 05, AC]
+1D75B; [60 18, 05, AC]
+1D795; [60 18, 05, AC]
+
+0371; [60 1A, 05, 05]
+0370; [60 1A, 05, A0]
+
+03B7; [60 1C, 05, 05]
+1D6C8; [60 1C, 05, 10]
+1D702; [60 1C, 05, 10]
+1D73C; [60 1C, 05, 10]
+1D776; [60 1C, 05, 10]
+1D7B0; [60 1C, 05, 10]
+0397; [60 1C, 05, 9E]
+1D6AE; [60 1C, 05, AC]
+1D6E8; [60 1C, 05, AC]
+1D722; [60 1C, 05, AC]
+1D75C; [60 1C, 05, AC]
+1D796; [60 1C, 05, AC]
+1F20; [60 1C, 05, 05][, 84, 05]
+1F28; [60 1C, 05, 9E][, 84, 05]
+1F24; [60 1C, 05, 05][, 84, 05][, 88, 05]
+1F2C; [60 1C, 05, 9E][, 84, 05][, 88, 05]
+1F94; [60 1C, 05, 05][, 84, 05][, 88, 05][, D8, 05]
+1F9C; [60 1C, 05, 9E][, 84, 05][, 88, 05][, D8, 05]
+1F22; [60 1C, 05, 05][, 84, 05][, 8A, 05]
+1F2A; [60 1C, 05, 9E][, 84, 05][, 8A, 05]
+1F92; [60 1C, 05, 05][, 84, 05][, 8A, 05][, D8, 05]
+1F9A; [60 1C, 05, 9E][, 84, 05][, 8A, 05][, D8, 05]
+1F26; [60 1C, 05, 05][, 84, 05][, 94, 05]
+1F2E; [60 1C, 05, 9E][, 84, 05][, 94, 05]
+1F96; [60 1C, 05, 05][, 84, 05][, 94, 05][, D8, 05]
+1F9E; [60 1C, 05, 9E][, 84, 05][, 94, 05][, D8, 05]
+1F90; [60 1C, 05, 05][, 84, 05][, D8, 05]
+1F98; [60 1C, 05, 9E][, 84, 05][, D8, 05]
+1F21; [60 1C, 05, 05][, 86, 05]
+1F29; [60 1C, 05, 9E][, 86, 05]
+1F25; [60 1C, 05, 05][, 86, 05][, 88, 05]
+1F2D; [60 1C, 05, 9E][, 86, 05][, 88, 05]
+1F95; [60 1C, 05, 05][, 86, 05][, 88, 05][, D8, 05]
+1F9D; [60 1C, 05, 9E][, 86, 05][, 88, 05][, D8, 05]
+1F23; [60 1C, 05, 05][, 86, 05][, 8A, 05]
+1F2B; [60 1C, 05, 9E][, 86, 05][, 8A, 05]
+1F93; [60 1C, 05, 05][, 86, 05][, 8A, 05][, D8, 05]
+1F9B; [60 1C, 05, 9E][, 86, 05][, 8A, 05][, D8, 05]
+1F27; [60 1C, 05, 05][, 86, 05][, 94, 05]
+1F2F; [60 1C, 05, 9E][, 86, 05][, 94, 05]
+1F97; [60 1C, 05, 05][, 86, 05][, 94, 05][, D8, 05]
+1F9F; [60 1C, 05, 9E][, 86, 05][, 94, 05][, D8, 05]
+1F91; [60 1C, 05, 05][, 86, 05][, D8, 05]
+1F99; [60 1C, 05, 9E][, 86, 05][, D8, 05]
+03AE; [60 1C, 05, 05][, 88, 05]
+1F75; [60 1C, 05, 05][, 88, 05]
+0389; [60 1C, 05, 9E][, 88, 05]
+1FCB; [60 1C, 05, 9E][, 88, 05]
+1FC4; [60 1C, 05, 05][, 88, 05][, D8, 05]
+1F74; [60 1C, 05, 05][, 8A, 05]
+1FCA; [60 1C, 05, 9E][, 8A, 05]
+1FC2; [60 1C, 05, 05][, 8A, 05][, D8, 05]
+1FC6; [60 1C, 05, 05][, 94, 05]
+1FC7; [60 1C, 05, 05][, 94, 05][, D8, 05]
+1FC3; [60 1C, 05, 05][, D8, 05]
+1FCC; [60 1C, 05, 9E][, D8, 05]
+
+03B8; [60 1E, 05, 05]
+03D1; [60 1E, 05, 10]
+1D6C9; [60 1E, 05, 17]
+1D6DD; [60 1E, 05, 17]
+1D703; [60 1E, 05, 17]
+1D717; [60 1E, 05, 17]
+1D73D; [60 1E, 05, 17]
+1D751; [60 1E, 05, 17]
+1D777; [60 1E, 05, 17]
+1D78B; [60 1E, 05, 17]
+1D7B1; [60 1E, 05, 17]
+1D7C5; [60 1E, 05, 17]
+0398; [60 1E, 05, 9E]
+03F4; [60 1E, 05, A5]
+1D6AF; [60 1E, 05, AC]
+1D6B9; [60 1E, 05, AC]
+1D6E9; [60 1E, 05, AC]
+1D6F3; [60 1E, 05, AC]
+1D723; [60 1E, 05, AC]
+1D72D; [60 1E, 05, AC]
+1D75D; [60 1E, 05, AC]
+1D767; [60 1E, 05, AC]
+1D797; [60 1E, 05, AC]
+1D7A1; [60 1E, 05, AC]
+1DBF; [60 1E, 05, 33]
+
+03B9; [60 20, 05, 05]
+1FBE; [60 20, 05, 05]
+037A; [60 20, 05, 10]
+1D6CA; [60 20, 05, 1B]
+1D704; [60 20, 05, 1B]
+1D73E; [60 20, 05, 1B]
+1D778; [60 20, 05, 1B]
+1D7B2; [60 20, 05, 1B]
+0399; [60 20, 05, A6]
+1D6B0; [60 20, 05, B1]
+1D6EA; [60 20, 05, B1]
+1D724; [60 20, 05, B1]
+1D75E; [60 20, 05, B1]
+1D798; [60 20, 05, B1]
+1F30; [60 20, 05, 05][, 84, 05]
+1F38; [60 20, 05, A6][, 84, 05]
+1F34; [60 20, 05, 05][, 84, 05][, 88, 05]
+1F3C; [60 20, 05, A6][, 84, 05][, 88, 05]
+1F32; [60 20, 05, 05][, 84, 05][, 8A, 05]
+1F3A; [60 20, 05, A6][, 84, 05][, 8A, 05]
+1F36; [60 20, 05, 05][, 84, 05][, 94, 05]
+1F3E; [60 20, 05, A6][, 84, 05][, 94, 05]
+1F31; [60 20, 05, 05][, 86, 05]
+1F39; [60 20, 05, A6][, 86, 05]
+1F35; [60 20, 05, 05][, 86, 05][, 88, 05]
+1F3D; [60 20, 05, A6][, 86, 05][, 88, 05]
+1F33; [60 20, 05, 05][, 86, 05][, 8A, 05]
+1F3B; [60 20, 05, A6][, 86, 05][, 8A, 05]
+1F37; [60 20, 05, 05][, 86, 05][, 94, 05]
+1F3F; [60 20, 05, A6][, 86, 05][, 94, 05]
+03AF; [60 20, 05, 05][, 88, 05]
+1F77; [60 20, 05, 05][, 88, 05]
+038A; [60 20, 05, A6][, 88, 05]
+1FDB; [60 20, 05, A6][, 88, 05]
+1F76; [60 20, 05, 05][, 8A, 05]
+1FDA; [60 20, 05, A6][, 8A, 05]
+1FD0; [60 20, 05, 05][, 8C, 05]
+1FD8; [60 20, 05, A6][, 8C, 05]
+1FD6; [60 20, 05, 05][, 94, 05]
+03CA; [60 20, 05, 05][, 96, 05]
+03AA; [60 20, 05, A6][, 96, 05]
+0390; [60 20, 05, 05][, 96, 05][, 88, 05]
+1FD3; [60 20, 05, 05][, 96, 05][, 88, 05]
+1FD2; [60 20, 05, 05][, 96, 05][, 8A, 05]
+1FD7; [60 20, 05, 05][, 96, 05][, 94, 05]
+1FD1; [60 20, 05, 05][, A4, 05]
+1FD9; [60 20, 05, A6][, A4, 05]
+
+03F3; [60 22, 05, 05]
+037F; [60 22, 05, A0]
+
+03BA; [60 24, 05, 05]
+03F0; [60 24, 05, 10]
+1D6CB; [60 24, 05, 18]
+1D6DE; [60 24, 05, 18]
+1D705; [60 24, 05, 18]
+1D718; [60 24, 05, 18]
+1D73F; [60 24, 05, 18]
+1D752; [60 24, 05, 18]
+1D779; [60 24, 05, 18]
+1D78C; [60 24, 05, 18]
+1D7B3; [60 24, 05, 18]
+1D7C6; [60 24, 05, 18]
+039A; [60 24, 05, A0]
+1D6B1; [60 24, 05, B0]
+1D6EB; [60 24, 05, B0]
+1D725; [60 24, 05, B0]
+1D75F; [60 24, 05, B0]
+1D799; [60 24, 05, B0]
+03D7; [60 24, 05, 10][60 06, 05, 10][60 20, 05, 10]
+03CF; [60 24, 05, A8][60 06, 05, 10][60 20, 05, 10]
+
+03BB; [60 26, 05, 05]
+1D6CC; [60 26, 05, 10]
+1D706; [60 26, 05, 10]
+1D740; [60 26, 05, 10]
+1D77A; [60 26, 05, 10]
+1D7B4; [60 26, 05, 10]
+039B; [60 26, 05, 9E]
+1D6B2; [60 26, 05, AC]
+1D6EC; [60 26, 05, AC]
+1D726; [60 26, 05, AC]
+1D760; [60 26, 05, AC]
+1D79A; [60 26, 05, AC]
+
+1D27; [60 28, 05, 05]
+
+03BC; [60 2A, 05, 05]
+00B5; [60 2A, 05, 10]
+1D6CD; [60 2A, 05, 18]
+1D707; [60 2A, 05, 18]
+1D741; [60 2A, 05, 18]
+1D77B; [60 2A, 05, 18]
+1D7B5; [60 2A, 05, 18]
+039C; [60 2A, 05, A0]
+1D6B3; [60 2A, 05, A8]
+1D6ED; [60 2A, 05, A8]
+1D727; [60 2A, 05, A8]
+1D761; [60 2A, 05, A8]
+1D79B; [60 2A, 05, A8]
+3382; [60 2A, 05, 30][2A, 05, B4]
+338C; [60 2A, 05, 30][34, 05, B1]
+338D; [60 2A, 05, 30][36, 05, 2E]
+3395; [60 2A, 05, 30][40, 05, 31]
+339B; [60 2A, 05, 30][42, 05, 31]
+33B2; [60 2A, 05, 30][4E, 05, 31]
+33B6; [60 2A, 05, 30][54, 05, B4]
+33BC; [60 2A, 05, 30][56, 05, B8]
+
+03BD; [60 2C, 05, 05]
+1D6CE; [60 2C, 05, 10]
+1D708; [60 2C, 05, 10]
+1D742; [60 2C, 05, 10]
+1D77C; [60 2C, 05, 10]
+1D7B6; [60 2C, 05, 10]
+039D; [60 2C, 05, 9E]
+1D6B4; [60 2C, 05, AC]
+1D6EE; [60 2C, 05, AC]
+1D728; [60 2C, 05, AC]
+1D762; [60 2C, 05, AC]
+1D79C; [60 2C, 05, AC]
+
+03BE; [60 2E, 05, 05]
+1D6CF; [60 2E, 05, 10]
+1D709; [60 2E, 05, 10]
+1D743; [60 2E, 05, 10]
+1D77D; [60 2E, 05, 10]
+1D7B7; [60 2E, 05, 10]
+039E; [60 2E, 05, 9E]
+1D6B5; [60 2E, 05, AC]
+1D6EF; [60 2E, 05, AC]
+1D729; [60 2E, 05, AC]
+1D763; [60 2E, 05, AC]
+1D79D; [60 2E, 05, AC]
+
+03BF; [60 30, 05, 05]
+1D6D0; [60 30, 05, 10]
+1D70A; [60 30, 05, 10]
+1D744; [60 30, 05, 10]
+1D77E; [60 30, 05, 10]
+1D7B8; [60 30, 05, 10]
+039F; [60 30, 05, 9E]
+1D6B6; [60 30, 05, AC]
+1D6F0; [60 30, 05, AC]
+1D72A; [60 30, 05, AC]
+1D764; [60 30, 05, AC]
+1D79E; [60 30, 05, AC]
+1F40; [60 30, 05, 05][, 84, 05]
+1F48; [60 30, 05, 9E][, 84, 05]
+1F44; [60 30, 05, 05][, 84, 05][, 88, 05]
+1F4C; [60 30, 05, 9E][, 84, 05][, 88, 05]
+1F42; [60 30, 05, 05][, 84, 05][, 8A, 05]
+1F4A; [60 30, 05, 9E][, 84, 05][, 8A, 05]
+1F41; [60 30, 05, 05][, 86, 05]
+1F49; [60 30, 05, 9E][, 86, 05]
+1F45; [60 30, 05, 05][, 86, 05][, 88, 05]
+1F4D; [60 30, 05, 9E][, 86, 05][, 88, 05]
+1F43; [60 30, 05, 05][, 86, 05][, 8A, 05]
+1F4B; [60 30, 05, 9E][, 86, 05][, 8A, 05]
+03CC; [60 30, 05, 05][, 88, 05]
+1F79; [60 30, 05, 05][, 88, 05]
+038C; [60 30, 05, 9E][, 88, 05]
+1FF9; [60 30, 05, 9E][, 88, 05]
+1F78; [60 30, 05, 05][, 8A, 05]
+1FF8; [60 30, 05, 9E][, 8A, 05]
+
+03C0; [60 32, 05, 05]
+03D6; [60 32, 05, 10]
+213C; [60 32, 05, 1B]
+1D6D1; [60 32, 05, 1B]
+1D6E1; [60 32, 05, 1B]
+1D70B; [60 32, 05, 1B]
+1D71B; [60 32, 05, 1B]
+1D745; [60 32, 05, 1B]
+1D755; [60 32, 05, 1B]
+1D77F; [60 32, 05, 1B]
+1D78F; [60 32, 05, 1B]
+1D7B9; [60 32, 05, 1B]
+1D7C9; [60 32, 05, 1B]
+03A0; [60 32, 05, A6]
+213F; [60 32, 05, B1]
+1D6B7; [60 32, 05, B1]
+1D6F1; [60 32, 05, B1]
+1D72B; [60 32, 05, B1]
+1D765; [60 32, 05, B1]
+1D79F; [60 32, 05, B1]
+
+1D28; [60 34, 05, 05]
+
+03FB; [60 36, 05, 05]
+03FA; [60 36, 05, A0]
+
+03DF; [60 38, 05, 05]
+03DE; [60 38, 05, A0]
+
+03D9; [60 3A, 05, 05]
+03D8; [60 3A, 05, A0]
+
+03C1; [60 3C, 05, 05]
+03F1; [60 3C, 05, 10]
+1D6D2; [60 3C, 05, 18]
+1D6E0; [60 3C, 05, 18]
+1D70C; [60 3C, 05, 18]
+1D71A; [60 3C, 05, 18]
+1D746; [60 3C, 05, 18]
+1D754; [60 3C, 05, 18]
+1D780; [60 3C, 05, 18]
+1D78E; [60 3C, 05, 18]
+1D7BA; [60 3C, 05, 18]
+1D7C8; [60 3C, 05, 18]
+03A1; [60 3C, 05, A0]
+1D6B8; [60 3C, 05, A8]
+1D6F2; [60 3C, 05, A8]
+1D72C; [60 3C, 05, A8]
+1D766; [60 3C, 05, A8]
+1D7A0; [60 3C, 05, A8]
+1D68; [60 3C, 05, 30]
+1FE4; [60 3C, 05, 05][, 84, 05]
+1FE5; [60 3C, 05, 05][, 86, 05]
+1FEC; [60 3C, 05, A0][, 86, 05]
+
+1D29; [60 3E, 05, 05]
+
+03FC; [60 40, 05, 05]
+
+03C3; [60 42, 05, 05]
+03F2; [60 42, 05, 10]
+1D6D3; [60 42, 05, 17]
+1D6D4; [60 42, 05, 17]
+1D70D; [60 42, 05, 17]
+1D70E; [60 42, 05, 17]
+1D747; [60 42, 05, 17]
+1D748; [60 42, 05, 17]
+1D781; [60 42, 05, 17]
+1D782; [60 42, 05, 17]
+1D7BB; [60 42, 05, 17]
+1D7BC; [60 42, 05, 17]
+03A3; [60 42, 05, 9E]
+03F9; [60 42, 05, A5]
+1D6BA; [60 42, 05, AC]
+1D6F4; [60 42, 05, AC]
+1D72E; [60 42, 05, AC]
+1D768; [60 42, 05, AC]
+1D7A2; [60 42, 05, AC]
+03C2; [60 42, 05, 33]
+
+037C; [60 44, 05, 05]
+03FE; [60 44, 05, A0]
+
+037B; [60 46, 05, 05]
+03FD; [60 46, 05, A0]
+
+037D; [60 48, 05, 05]
+03FF; [60 48, 05, A0]
+
+03C4; [60 4A, 05, 05]
+1D6D5; [60 4A, 05, 10]
+1D70F; [60 4A, 05, 10]
+1D749; [60 4A, 05, 10]
+1D783; [60 4A, 05, 10]
+1D7BD; [60 4A, 05, 10]
+03A4; [60 4A, 05, 9E]
+1D6BB; [60 4A, 05, AC]
+1D6F5; [60 4A, 05, AC]
+1D72F; [60 4A, 05, AC]
+1D769; [60 4A, 05, AC]
+1D7A3; [60 4A, 05, AC]
+
+03C5; [60 4C, 05, 05]
+1D6D6; [60 4C, 05, 10]
+1D710; [60 4C, 05, 10]
+1D74A; [60 4C, 05, 10]
+1D784; [60 4C, 05, 10]
+1D7BE; [60 4C, 05, 10]
+03A5; [60 4C, 05, 9B]
+03D2; [60 4C, 05, A6]
+1D6BC; [60 4C, 05, B1]
+1D6F6; [60 4C, 05, B1]
+1D730; [60 4C, 05, B1]
+1D76A; [60 4C, 05, B1]
+1D7A4; [60 4C, 05, B1]
+1F50; [60 4C, 05, 05][, 84, 05]
+1F54; [60 4C, 05, 05][, 84, 05][, 88, 05]
+1F52; [60 4C, 05, 05][, 84, 05][, 8A, 05]
+1F56; [60 4C, 05, 05][, 84, 05][, 94, 05]
+1F51; [60 4C, 05, 05][, 86, 05]
+1F59; [60 4C, 05, 9B][, 86, 05]
+1F55; [60 4C, 05, 05][, 86, 05][, 88, 05]
+1F5D; [60 4C, 05, 9B][, 86, 05][, 88, 05]
+1F53; [60 4C, 05, 05][, 86, 05][, 8A, 05]
+1F5B; [60 4C, 05, 9B][, 86, 05][, 8A, 05]
+1F57; [60 4C, 05, 05][, 86, 05][, 94, 05]
+1F5F; [60 4C, 05, 9B][, 86, 05][, 94, 05]
+03CD; [60 4C, 05, 05][, 88, 05]
+1F7B; [60 4C, 05, 05][, 88, 05]
+038E; [60 4C, 05, 9B][, 88, 05]
+1FEB; [60 4C, 05, 9B][, 88, 05]
+03D3; [60 4C, 05, A6][, 88, 05]
+1F7A; [60 4C, 05, 05][, 8A, 05]
+1FEA; [60 4C, 05, 9B][, 8A, 05]
+1FE0; [60 4C, 05, 05][, 8C, 05]
+1FE8; [60 4C, 05, 9B][, 8C, 05]
+1FE6; [60 4C, 05, 05][, 94, 05]
+03CB; [60 4C, 05, 05][, 96, 05]
+03AB; [60 4C, 05, 9B][, 96, 05]
+03D4; [60 4C, 05, A6][, 96, 05]
+03B0; [60 4C, 05, 05][, 96, 05][, 88, 05]
+1FE3; [60 4C, 05, 05][, 96, 05][, 88, 05]
+1FE2; [60 4C, 05, 05][, 96, 05][, 8A, 05]
+1FE7; [60 4C, 05, 05][, 96, 05][, 94, 05]
+1FE1; [60 4C, 05, 05][, A4, 05]
+1FE9; [60 4C, 05, 9B][, A4, 05]
+
+03C6; [60 4E, 05, 05]
+03D5; [60 4E, 05, 10]
+1D6D7; [60 4E, 05, 17]
+1D6DF; [60 4E, 05, 17]
+1D711; [60 4E, 05, 17]
+1D719; [60 4E, 05, 17]
+1D74B; [60 4E, 05, 17]
+1D753; [60 4E, 05, 17]
+1D785; [60 4E, 05, 17]
+1D78D; [60 4E, 05, 17]
+1D7BF; [60 4E, 05, 17]
+1D7C7; [60 4E, 05, 17]
+03A6; [60 4E, 05, 9E]
+1D6BD; [60 4E, 05, A5]
+1D6F7; [60 4E, 05, A5]
+1D731; [60 4E, 05, A5]
+1D76B; [60 4E, 05, A5]
+1D7A5; [60 4E, 05, A5]
+1D60; [60 4E, 05, 2C]
+1D69; [60 4E, 05, 33]
+
+03C7; [60 50, 05, 05]
+1D6D8; [60 50, 05, 10]
+1D712; [60 50, 05, 10]
+1D74C; [60 50, 05, 10]
+1D786; [60 50, 05, 10]
+1D7C0; [60 50, 05, 10]
+03A7; [60 50, 05, 98]
+1D6BE; [60 50, 05, A0]
+1D6F8; [60 50, 05, A0]
+1D732; [60 50, 05, A0]
+1D76C; [60 50, 05, A0]
+1D7A6; [60 50, 05, A0]
+1D61; [60 50, 05, 28]
+1D6A; [60 50, 05, 30]
+
+03C8; [60 52, 05, 05]
+1D6D9; [60 52, 05, 10]
+1D713; [60 52, 05, 10]
+1D74D; [60 52, 05, 10]
+1D787; [60 52, 05, 10]
+1D7C1; [60 52, 05, 10]
+03A8; [60 52, 05, 9E]
+1D6BF; [60 52, 05, AC]
+1D6F9; [60 52, 05, AC]
+1D733; [60 52, 05, AC]
+1D76D; [60 52, 05, AC]
+1D7A7; [60 52, 05, AC]
+
+1D2A; [60 54, 05, 05]
+
+03C9; [60 56, 05, 05]
+1D6DA; [60 56, 05, 10]
+1D714; [60 56, 05, 10]
+1D74E; [60 56, 05, 10]
+1D788; [60 56, 05, 10]
+1D7C2; [60 56, 05, 10]
+03A9; [60 56, 05, 9B]
+2126; [60 56, 05, 9B]
+1D6C0; [60 56, 05, A6]
+1D6FA; [60 56, 05, A6]
+1D734; [60 56, 05, A6]
+1D76E; [60 56, 05, A6]
+1D7A8; [60 56, 05, A6]
+1F60; [60 56, 05, 05][, 84, 05]
+1F68; [60 56, 05, 9B][, 84, 05]
+1F64; [60 56, 05, 05][, 84, 05][, 88, 05]
+1F6C; [60 56, 05, 9B][, 84, 05][, 88, 05]
+1FA4; [60 56, 05, 05][, 84, 05][, 88, 05][, D8, 05]
+1FAC; [60 56, 05, 9B][, 84, 05][, 88, 05][, D8, 05]
+1F62; [60 56, 05, 05][, 84, 05][, 8A, 05]
+1F6A; [60 56, 05, 9B][, 84, 05][, 8A, 05]
+1FA2; [60 56, 05, 05][, 84, 05][, 8A, 05][, D8, 05]
+1FAA; [60 56, 05, 9B][, 84, 05][, 8A, 05][, D8, 05]
+1F66; [60 56, 05, 05][, 84, 05][, 94, 05]
+1F6E; [60 56, 05, 9B][, 84, 05][, 94, 05]
+1FA6; [60 56, 05, 05][, 84, 05][, 94, 05][, D8, 05]
+1FAE; [60 56, 05, 9B][, 84, 05][, 94, 05][, D8, 05]
+1FA0; [60 56, 05, 05][, 84, 05][, D8, 05]
+1FA8; [60 56, 05, 9B][, 84, 05][, D8, 05]
+1F61; [60 56, 05, 05][, 86, 05]
+1F69; [60 56, 05, 9B][, 86, 05]
+1F65; [60 56, 05, 05][, 86, 05][, 88, 05]
+1F6D; [60 56, 05, 9B][, 86, 05][, 88, 05]
+1FA5; [60 56, 05, 05][, 86, 05][, 88, 05][, D8, 05]
+1FAD; [60 56, 05, 9B][, 86, 05][, 88, 05][, D8, 05]
+1F63; [60 56, 05, 05][, 86, 05][, 8A, 05]
+1F6B; [60 56, 05, 9B][, 86, 05][, 8A, 05]
+1FA3; [60 56, 05, 05][, 86, 05][, 8A, 05][, D8, 05]
+1FAB; [60 56, 05, 9B][, 86, 05][, 8A, 05][, D8, 05]
+1F67; [60 56, 05, 05][, 86, 05][, 94, 05]
+1F6F; [60 56, 05, 9B][, 86, 05][, 94, 05]
+1FA7; [60 56, 05, 05][, 86, 05][, 94, 05][, D8, 05]
+1FAF; [60 56, 05, 9B][, 86, 05][, 94, 05][, D8, 05]
+1FA1; [60 56, 05, 05][, 86, 05][, D8, 05]
+1FA9; [60 56, 05, 9B][, 86, 05][, D8, 05]
+03CE; [60 56, 05, 05][, 88, 05]
+1F7D; [60 56, 05, 05][, 88, 05]
+038F; [60 56, 05, 9B][, 88, 05]
+1FFB; [60 56, 05, 9B][, 88, 05]
+1FF4; [60 56, 05, 05][, 88, 05][, D8, 05]
+1F7C; [60 56, 05, 05][, 8A, 05]
+1FFA; [60 56, 05, 9B][, 8A, 05]
+1FF2; [60 56, 05, 05][, 8A, 05][, D8, 05]
+1FF6; [60 56, 05, 05][, 94, 05]
+1FF7; [60 56, 05, 05][, 94, 05][, D8, 05]
+1FF3; [60 56, 05, 05][, D8, 05]
+1FFC; [60 56, 05, 9B][, D8, 05]
+
+AB65; [60 58, 05, 05]
+
+03E1; [60 5A, 05, 05]
+03E0; [60 5A, 05, A0]
+
+0373; [60 5C, 05, 05]
+0372; [60 5C, 05, A0]
+
+03F8; [60 5E, 05, 05]
+03F7; [60 5E, 05, A0]
+
+FDD1 03E2; [60 60 02, 05, 05] # COPTIC first primary (compressible)
+
+2C81; [60 62, 05, 05]
+2C80; [60 62, 05, AE]
+
+2C83; [60 64, 05, 05]
+2C82; [60 64, 05, A0]
+
+2C85; [60 66, 05, 05]
+2C84; [60 66, 05, A0]
+
+2C87; [60 68, 05, 05]
+2C86; [60 68, 05, A0]
+
+2C89; [60 6A, 05, 05]
+2C88; [60 6A, 05, A0]
+
+2CB7; [60 6C, 05, 05]
+2CB6; [60 6C, 05, A0]
+
+2C8B; [60 6E, 05, 05]
+2C8A; [60 6E, 05, A0]
+
+2C8D; [60 70, 05, 05]
+2C8C; [60 70, 05, A0]
+
+2C8F; [60 72, 05, 05]
+2C8E; [60 72, 05, A0]
+
+2C91; [60 74, 05, 05]
+2C90; [60 74, 05, A0]
+
+2C93; [60 76, 05, 05]
+2C92; [60 76, 05, AE]
+
+2C95; [60 78, 05, 05]
+2C94; [60 78, 05, AE]
+2CE4; [60 78, 05, 20][60 62, 05, 20][60 76, 05, 20]
+
+2CB9; [60 7A, 05, 05]
+2CB8; [60 7A, 05, A0]
+
+2C97; [60 7C, 05, 05]
+2C96; [60 7C, 05, A0]
+
+2C99; [60 7E, 05, 05]
+2C98; [60 7E, 05, A0]
+
+2C9B; [60 80, 05, 05]
+2C9A; [60 80, 05, A0]
+
+2CBB; [60 82, 05, 05]
+2CBA; [60 82, 05, A0]
+
+2CBD; [60 84, 05, 05]
+2CBC; [60 84, 05, A0]
+
+2C9D; [60 86, 05, 05]
+2C9C; [60 86, 05, A0]
+
+2C9F; [60 88, 05, 05]
+2C9E; [60 88, 05, A0]
+
+2CA1; [60 8A, 05, 05]
+2CA0; [60 8A, 05, A0]
+
+2CA3; [60 8C, 05, 05]
+2CA2; [60 8C, 05, A0]
+
+2CA5; [60 8E, 05, 05]
+2CA4; [60 8E, 05, A0]
+
+2CA7; [60 90, 05, 05]
+2CA6; [60 90, 05, A0]
+
+2CA9; [60 92, 05, 05]
+2CA8; [60 92, 05, A0]
+
+2CAB; [60 94, 05, 05]
+2CAA; [60 94, 05, A0]
+
+2CAD; [60 96, 05, 05]
+2CAC; [60 96, 05, A0]
+
+2CAF; [60 98, 05, 05]
+2CAE; [60 98, 05, A0]
+
+2CB1; [60 9A, 05, 05]
+2CB0; [60 9A, 05, A0]
+
+2CBF; [60 9C, 05, 05]
+2CBE; [60 9C, 05, A0]
+
+2CC1; [60 9E, 05, 05]
+2CC0; [60 9E, 05, A0]
+
+03E3; [60 A0, 05, 05]
+03E2; [60 A0, 05, A0]
+
+2CEC; [60 A2, 05, 05]
+2CEB; [60 A2, 05, A0]
+
+2CC3; [60 A4, 05, 05]
+2CC2; [60 A4, 05, A0]
+
+2CC5; [60 A6, 05, 05]
+2CC4; [60 A6, 05, A0]
+
+2CC7; [60 A8, 05, 05]
+2CC6; [60 A8, 05, A0]
+
+03E5; [60 AA, 05, 05]
+03E4; [60 AA, 05, A0]
+
+03E7; [60 AC, 05, 05]
+03E6; [60 AC, 05, A0]
+
+2CF3; [60 AE, 05, 05]
+2CF2; [60 AE, 05, A0]
+
+2CC9; [60 B0, 05, 05]
+2CC8; [60 B0, 05, A0]
+
+03E9; [60 B2, 05, 05]
+03E8; [60 B2, 05, A0]
+
+2CCB; [60 B4, 05, 05]
+2CCA; [60 B4, 05, A0]
+
+2CCD; [60 B6, 05, 05]
+2CCC; [60 B6, 05, A0]
+
+2CCF; [60 B8, 05, 05]
+2CCE; [60 B8, 05, A0]
+
+2CD1; [60 BA, 05, 05]
+2CD0; [60 BA, 05, A0]
+
+2CD3; [60 BC, 05, 05]
+2CD2; [60 BC, 05, A0]
+
+2CD5; [60 BE, 05, 05]
+2CD4; [60 BE, 05, A0]
+
+03EB; [60 C0, 05, 05]
+03EA; [60 C0, 05, A0]
+
+2CEE; [60 C2, 05, 05]
+2CED; [60 C2, 05, A0]
+
+2CD7; [60 C4, 05, 05]
+2CD6; [60 C4, 05, A0]
+
+03ED; [60 C6, 05, 05]
+03EC; [60 C6, 05, A0]
+
+2CD9; [60 C8, 05, 05]
+2CD8; [60 C8, 05, A0]
+
+2CDB; [60 CA, 05, 05]
+2CDA; [60 CA, 05, A0]
+
+2CDD; [60 CC, 05, 05]
+2CDC; [60 CC, 05, A0]
+
+03EF; [60 CE, 05, 05]
+03EE; [60 CE, 05, A0]
+
+2CB3; [60 D0, 05, 05]
+2CB2; [60 D0, 05, A0]
+
+2CB5; [60 D2, 05, 05]
+2CB4; [60 D2, 05, A0]
+
+2CDF; [60 D4, 05, 05]
+2CDE; [60 D4, 05, A0]
+
+2CE1; [60 D6, 05, 05]
+2CE0; [60 D6, 05, A0]
+
+2CE3; [60 D8, 05, 05]
+2CE2; [60 D8, 05, A0]
+
+FDD1 042F; [61 04 02, 05, 05] # CYRILLIC first primary starts new lead byte (compressible)
+
+0430; [61 06, 05, 05]
+2DF6; [61 06, 05, 20]
+0410; [61 06, 05, AE]
+04D1; [61 06, 05, 05][, 8C, 05]
+04D0; [61 06, 05, AE][, 8C, 05]
+04D3; [61 06, 05, 05][, 96, 05]
+04D2; [61 06, 05, AE][, 96, 05]
+
+04D9; [61 08, 05, 05]
+04D8; [61 08, 05, A0]
+04DB; [61 08, 05, 05][, 96, 05]
+04DA; [61 08, 05, A0][, 96, 05]
+
+04D5; [61 0A, 05, 05]
+04D4; [61 0A, 05, A0]
+
+0431; [61 0C, 05, 05]
+2DE0; [61 0C, 05, 20]
+0411; [61 0C, 05, AE]
+
+0432; [61 0E, 05, 05]
+1C80; [61 0E, 05, 20]
+2DE1; [61 0E, 05, 20]
+0412; [61 0E, 05, AE]
+
+0433; [61 10, 05, 05]
+2DE2; [61 10, 05, 20]
+0413; [61 10, 05, AE]
+0453; [61 10, 05, 05][, 88, 05]
+0403; [61 10, 05, AE][, 88, 05]
+0491; [61 10, 70, 05]
+0490; [61 10, 70, A0]
+
+0493; [61 12, 05, 05]
+0492; [61 12, 05, A0]
+
+04FB; [61 14, 05, 05]
+04FA; [61 14, 05, A0]
+
+0495; [61 16, 05, 05]
+0494; [61 16, 05, A0]
+
+04F7; [61 18, 05, 05]
+04F6; [61 18, 05, A0]
+
+0434; [61 1A, 05, 05]
+1C81; [61 1A, 05, 20]
+2DE3; [61 1A, 05, 20]
+0414; [61 1A, 05, AE]
+
+0501; [61 1C, 05, 05]
+0500; [61 1C, 05, A0]
+
+A681; [61 1E, 05, 05]
+A680; [61 1E, 05, A0]
+
+0452; [61 20, 05, 05]
+0402; [61 20, 05, A0]
+
+A663; [61 22, 05, 05]
+A662; [61 22, 05, A0]
+
+0503; [61 24, 05, 05]
+0502; [61 24, 05, A0]
+
+0499; [61 26, 05, 05]
+0498; [61 26, 05, A0]
+
+0435; [61 28, 05, 05]
+2DF7; [61 28, 05, 20]
+0415; [61 28, 05, AE]
+0450; [61 28, 05, 05][, 8A, 05]
+0400; [61 28, 05, AE][, 8A, 05]
+04D7; [61 28, 05, 05][, 8C, 05]
+04D6; [61 28, 05, AE][, 8C, 05]
+0451; [61 28, 05, 05][, 96, 05]
+0401; [61 28, 05, AE][, 96, 05]
+
+0454; [61 2A, 05, 05]
+A674; [61 2A, 05, 20]
+0404; [61 2A, 05, AE]
+
+0436; [61 2C, 05, 05]
+2DE4; [61 2C, 05, 20]
+0416; [61 2C, 05, AE]
+04C2; [61 2C, 05, 05][, 8C, 05]
+04C1; [61 2C, 05, AE][, 8C, 05]
+04DD; [61 2C, 05, 05][, 96, 05]
+04DC; [61 2C, 05, AE][, 96, 05]
+
+052B; [61 2E 02, 05, 05]
+052A; [61 2E 02, 05, A0]
+
+A685; [61 2E 09, 05, 05]
+A684; [61 2E 09, 05, A0]
+
+0497; [61 30, 05, 05]
+0496; [61 30, 05, A0]
+
+0437; [61 32, 05, 05]
+2DE5; [61 32, 05, 20]
+0417; [61 32, 05, AE]
+04DF; [61 32, 05, 05][, 96, 05]
+04DE; [61 32, 05, AE][, 96, 05]
+
+A641; [61 34, 05, 05]
+A640; [61 34, 05, A0]
+
+0505; [61 36, 05, 05]
+0504; [61 36, 05, A0]
+
+0511; [61 38 02, 05, 05]
+0510; [61 38 02, 05, A0]
+
+A643; [61 38 09, 05, 05]
+A642; [61 38 09, 05, A0]
+
+0455; [61 3A, 05, 05]
+0405; [61 3A, 05, A0]
+
+A645; [61 3C, 05, 05]
+A644; [61 3C, 05, A0]
+
+04E1; [61 3E, 05, 05]
+04E0; [61 3E, 05, A0]
+
+A689; [61 40, 05, 05]
+A688; [61 40, 05, A0]
+
+0507; [61 42, 05, 05]
+0506; [61 42, 05, A0]
+
+A683; [61 44, 05, 05]
+A682; [61 44, 05, A0]
+
+0438; [61 46, 05, 05]
+A675; [61 46, 05, 20]
+0418; [61 46, 05, AE]
+045D; [61 46, 05, 05][, 8A, 05]
+040D; [61 46, 05, AE][, 8A, 05]
+04E5; [61 46, 05, 05][, 96, 05]
+04E4; [61 46, 05, AE][, 96, 05]
+04E3; [61 46, 05, 05][, A4, 05]
+04E2; [61 46, 05, AE][, A4, 05]
+
+048B; [61 48, 05, 05]
+048A; [61 48, 05, A0]
+
+0456; [61 4A, 05, 05]
+0406; [61 4A, 05, AE]
+0457; [61 4A, 05, 05][, 96, 05]
+A676; [61 4A, 05, 20][, 96, 20]
+0407; [61 4A, 05, AE][, 96, 05]
+
+A647; [61 4C, 05, 05]
+A646; [61 4C, 05, A0]
+
+0438 0306; [61 4E, 05, 05]
+0439; [61 4E, 05, 05]
+0418 0306; [61 4E, 05, A0]
+0419; [61 4E, 05, A0]
+
+0458; [61 50, 05, 05]
+0408; [61 50, 05, A0]
+
+A649; [61 52, 05, 05]
+2DF8; [61 52, 05, 20]
+A648; [61 52, 05, AE]
+
+043A; [61 54, 05, 05]
+2DE6; [61 54, 05, 20]
+041A; [61 54, 05, AE]
+045C; [61 54, 05, 05][, 88, 05]
+040C; [61 54, 05, AE][, 88, 05]
+
+049B; [61 56, 05, 05]
+049A; [61 56, 05, A0]
+
+04C4; [61 58, 05, 05]
+04C3; [61 58, 05, A0]
+
+04A1; [61 5A, 05, 05]
+04A0; [61 5A, 05, A0]
+
+049F; [61 5C, 05, 05]
+049E; [61 5C, 05, A0]
+
+049D; [61 5E, 05, 05]
+049C; [61 5E, 05, A0]
+
+051F; [61 60 02, 05, 05]
+051E; [61 60 02, 05, A0]
+
+051B; [61 60 09, 05, 05]
+051A; [61 60 09, 05, A0]
+
+043B; [61 62, 05, 05]
+2DE7; [61 62, 05, 20]
+041B; [61 62, 05, AE]
+
+1D2B; [61 64, 05, 05]
+
+04C6; [61 66, 05, 05]
+04C5; [61 66, 05, A0]
+
+052F; [61 68 02, 05, 05]
+052E; [61 68 02, 05, A0]
+
+0513; [61 68 09, 05, 05]
+0512; [61 68 09, 05, A0]
+
+0521; [61 68 10, 05, 05]
+0520; [61 68 10, 05, A0]
+
+0459; [61 6A, 05, 05]
+0409; [61 6A, 05, A0]
+
+A665; [61 6C, 05, 05]
+A664; [61 6C, 05, A0]
+
+0509; [61 6E, 05, 05]
+0508; [61 6E, 05, A0]
+
+0515; [61 70, 05, 05]
+0514; [61 70, 05, A0]
+
+043C; [61 72, 05, 05]
+2DE8; [61 72, 05, 20]
+041C; [61 72, 05, AE]
+
+04CE; [61 74, 05, 05]
+04CD; [61 74, 05, A0]
+
+A667; [61 76, 05, 05]
+A666; [61 76, 05, A0]
+
+043D; [61 78, 05, 05]
+2DE9; [61 78, 05, 10]
+041D; [61 78, 05, 9E]
+1D78; [61 78, 05, 2C]
+
+0529; [61 7A, 05, 05]
+0528; [61 7A, 05, A0]
+
+04CA; [61 7C, 05, 05]
+04C9; [61 7C, 05, A0]
+
+04A3; [61 7E, 05, 05]
+04A2; [61 7E, 05, A0]
+
+04C8; [61 80, 05, 05]
+04C7; [61 80, 05, A0]
+
+0523; [61 82, 05, 05]
+0522; [61 82, 05, A0]
+
+04A5; [61 84, 05, 05]
+04A4; [61 84, 05, A0]
+
+045A; [61 86, 05, 05]
+040A; [61 86, 05, A0]
+
+050B; [61 88, 05, 05]
+050A; [61 88, 05, A0]
+
+043E; [61 8A, 05, 05]
+1C82; [61 8A, 05, 10]
+2DEA; [61 8A, 05, 10]
+A669; [61 8A, 05, 10]
+A66B; [61 8A, 05, 10]
+A66D; [61 8A, 05, 10]
+A66E; [61 8A, 05, 10]
+A699; [61 8A, 05, 10]
+A69B; [61 8A, 05, 10]
+041E; [61 8A, 05, 9E]
+A668; [61 8A, 05, AC]
+A66A; [61 8A, 05, AC]
+A66C; [61 8A, 05, AC]
+A698; [61 8A, 05, AC]
+A69A; [61 8A, 05, AC]
+04E7; [61 8A, 05, 05][, 96, 05]
+04E6; [61 8A, 05, 9E][, 96, 05]
+
+04E9; [61 8C, 05, 05]
+04E8; [61 8C, 05, A0]
+04EB; [61 8C, 05, 05][, 96, 05]
+04EA; [61 8C, 05, A0][, 96, 05]
+
+043F; [61 8E, 05, 05]
+2DEB; [61 8E, 05, 20]
+041F; [61 8E, 05, AE]
+
+0525; [61 90, 05, 05]
+0524; [61 90, 05, A0]
+
+04A7; [61 92, 05, 05]
+04A6; [61 92, 05, A0]
-109CA; [11 81 79, 05, 05]
+0481; [61 94, 05, 05]
+0480; [61 94, 05, A0]
-109CB; [11 81 80, 05, 05]
+0440; [61 96, 05, 05]
+2DEC; [61 96, 05, 20]
+0420; [61 96, 05, AE]
-109CC; [11 81 87, 05, 05]
+048F; [61 98, 05, 05]
+048E; [61 98, 05, A0]
-109CD; [11 81 8E, 05, 05]
+0517; [61 9A, 05, 05]
+0516; [61 9A, 05, A0]
-109CE; [11 81 95, 05, 05]
+0441; [61 9C, 05, 05]
+1C83; [61 9C, 05, 20]
+2DED; [61 9C, 05, 20]
+0421; [61 9C, 05, AE]
+2DF5; [61 9C, 05, 20][61 A2, 05, 20]
-109CF; [11 81 9C, 05, 05]
+050D; [61 9E, 05, 05]
+050C; [61 9E, 05, A0]
-109D2; [11 81 A3, 05, 05]
+04AB; [61 A0, 05, 05]
+04AA; [61 A0, 05, A0]
-109D3; [11 81 AA, 05, 05]
+0442; [61 A2, 05, 05]
+1C84; [61 A2, 05, 20]
+1C85; [61 A2, 05, 20]
+2DEE; [61 A2, 05, 20]
+0422; [61 A2, 05, AE]
-109D4; [11 81 B1, 05, 05]
+A68D; [61 A4 02, 05, 05]
+A68C; [61 A4 02, 05, A0]
-109D5; [11 81 B8, 05, 05]
+050F; [61 A4 09, 05, 05]
+050E; [61 A4 09, 05, A0]
-109D6; [11 81 BF, 05, 05]
+04AD; [61 A6, 05, 05]
+04AC; [61 A6, 05, A0]
-109D7; [11 81 C6, 05, 05]
+A68B; [61 A8, 05, 05]
+A68A; [61 A8, 05, A0]
-109D8; [11 81 CD, 05, 05]
+045B; [61 AA, 05, 05]
+040B; [61 AA, 05, A0]
-109D9; [11 81 D4, 05, 05]
+0443; [61 AC, 05, 05]
+A677; [61 AC, 05, 20]
+0423; [61 AC, 05, AE]
+045E; [61 AC, 05, 05][, 8C, 05]
+040E; [61 AC, 05, AE][, 8C, 05]
+04F1; [61 AC, 05, 05][, 96, 05]
+04F0; [61 AC, 05, AE][, 96, 05]
+04F3; [61 AC, 05, 05][, 98, 05]
+04F2; [61 AC, 05, AE][, 98, 05]
+04EF; [61 AC, 05, 05][, A4, 05]
+04EE; [61 AC, 05, AE][, A4, 05]
-109DA; [11 81 DB, 05, 05]
+04AF; [61 AE, 05, 05]
+04AE; [61 AE, 05, A0]
-109DB; [11 81 E2, 05, 05]
+04B1; [61 B0, 05, 05]
+04B0; [61 B0, 05, A0]
-109DC; [11 81 E9, 05, 05]
+A64B; [61 B2 02, 05, 05]
+1C88; [61 B2 02, 05, 20]
+2DF9; [61 B2 02, 05, 20]
+A64A; [61 B2 02, 05, AE]
-109DD; [11 81 F0, 05, 05]
+0479; [61 B2 09, 05, 05]
+0478; [61 B2 09, 05, A0]
-109DE; [11 81 F7, 05, 05]
+0444; [61 B4, 05, 05]
+A69E; [61 B4, 05, 20]
+0424; [61 B4, 05, AE]
-109DF; [11 81 FE, 05, 05]
+0445; [61 B6, 05, 05]
+2DEF; [61 B6, 05, 20]
+0425; [61 B6, 05, AE]
-109E0; [11 82 07, 05, 05]
+04FD; [61 B8 02, 05, 05]
+04FC; [61 B8 02, 05, A0]
-109E1; [11 82 0E, 05, 05]
+04FF; [61 B8 09, 05, 05]
+04FE; [61 B8 09, 05, A0]
-109E2; [11 82 15, 05, 05]
+04B3; [61 BA, 05, 05]
+04B2; [61 BA, 05, A0]
-109E3; [11 82 1C, 05, 05]
+04BB; [61 BC, 05, 05]
+04BA; [61 BC, 05, A0]
-109E4; [11 82 23, 05, 05]
+0527; [61 BE 02, 05, 05]
+0526; [61 BE 02, 05, A0]
-109E5; [11 82 2A, 05, 05]
+A695; [61 BE 09, 05, 05]
+A694; [61 BE 09, 05, A0]
-109E6; [11 82 31, 05, 05]
+0461; [61 BE 10, 05, 05]
+A67B; [61 BE 10, 05, 20]
+0460; [61 BE 10, 05, AE]
-109E7; [11 82 38, 05, 05]
+047F; [61 BE 17, 05, 05]
+047E; [61 BE 17, 05, A0]
-109E8; [11 82 3F, 05, 05]
+A64D; [61 BE 1E, 05, 05]
+A64C; [61 BE 1E, 05, A0]
-109E9; [11 82 46, 05, 05]
+047D; [61 BE 25, 05, 05]
+047C; [61 BE 25, 05, A0]
-109EA; [11 82 4D, 05, 05]
+047B; [61 BE 2C, 05, 05]
+047A; [61 BE 2C, 05, A0]
-109EB; [11 82 54, 05, 05]
+0446; [61 C0, 05, 05]
+2DF0; [61 C0, 05, 20]
+0426; [61 C0, 05, AE]
-109EC; [11 82 5B, 05, 05]
+A661; [61 C2 02, 05, 05]
+A660; [61 C2 02, 05, A0]
-109ED; [11 82 62, 05, 05]
+A68F; [61 C2 09, 05, 05]
+A68E; [61 C2 09, 05, A0]
-109EE; [11 82 69, 05, 05]
+04B5; [61 C4, 05, 05]
+04B4; [61 C4, 05, A0]
-109EF; [11 82 70, 05, 05]
+A691; [61 C6, 05, 05]
+A690; [61 C6, 05, A0]
-109F0; [11 82 77, 05, 05]
+0447; [61 C8, 05, 05]
+2DF1; [61 C8, 05, 20]
+0427; [61 C8, 05, AE]
+04F5; [61 C8, 05, 05][, 96, 05]
+04F4; [61 C8, 05, AE][, 96, 05]
-109F1; [11 82 7E, 05, 05]
+052D; [61 CA 02, 05, 05]
+052C; [61 CA 02, 05, A0]
-109F2; [11 82 85, 05, 05]
+A693; [61 CA 09, 05, 05]
+A692; [61 CA 09, 05, A0]
-109F3; [11 82 8C, 05, 05]
+04B7; [61 CC, 05, 05]
+04B6; [61 CC, 05, A0]
-109F4; [11 82 93, 05, 05]
+04CC; [61 CE, 05, 05]
+04CB; [61 CE, 05, A0]
-109F5; [11 82 9A, 05, 05]
+04B9; [61 D0, 05, 05]
+04B8; [61 D0, 05, A0]
-109BD; [11 82 A1, 05, 05]
+A687; [61 D2, 05, 05]
+A686; [61 D2, 05, A0]
-109F6; [11 82 A8, 05, 05]
+04BD; [61 D4, 05, 05]
+04BC; [61 D4, 05, A0]
-109F7; [11 82 AF, 05, 05]
+04BF; [61 D6, 05, 05]
+04BE; [61 D6, 05, A0]
-109F8; [11 82 B6, 05, 05]
+045F; [61 D8, 05, 05]
+040F; [61 D8, 05, A0]
-109F9; [11 82 BD, 05, 05]
+0448; [61 DA, 05, 05]
+2DF2; [61 DA, 05, 20]
+0428; [61 DA, 05, AE]
-109FA; [11 82 C4, 05, 05]
+A697; [61 DC, 05, 05]
+A696; [61 DC, 05, A0]
-109FB; [11 82 CB, 05, 05]
+0449; [61 DE, 05, 05]
+2DF3; [61 DE, 05, 20]
+0429; [61 DE, 05, AE]
-109FC; [11 82 D2, 05, 05]
+A64F; [61 E0 02, 05, 05]
+A64E; [61 E0 02, 05, A0]
-109FD; [11 82 D9, 05, 05]
+2E2F; [61 E0 09, 05, 05]
-109FE; [11 82 E0, 05, 05]
+A67F; [61 E0 10, 05, 05]
-109FF; [11 82 E7, 05, 05]
+044A; [61 E2, 05, 05]
+1C86; [61 E2, 05, 10]
+A678; [61 E2, 05, 10]
+042A; [61 E2, 05, 9E]
+A69C; [61 E2, 05, 2C]
-109BC; [11 82 EE, 05, 05]
+A651; [61 E4, 05, 05]
+A650; [61 E4, 05, A0]
-12432; [11 82 F5, 05, 05]
+044B; [61 E6, 05, 05]
+A679; [61 E6, 05, 20]
+042B; [61 E6, 05, AE]
+04F9; [61 E6, 05, 05][, 96, 05]
+04F8; [61 E6, 05, AE][, 96, 05]
-12433; [11 82 FC, 05, 05]
+044C; [61 E8, 05, 05]
+A67A; [61 E8, 05, 10]
+042C; [61 E8, 05, 9E]
+A69D; [61 E8, 05, 2C]
-1245A; [11 83 05, 05, 05]
+048D; [61 EA, 05, 05]
+048C; [61 EA, 05, A0]
-1245B; [11 83 0C, 05, 05]
+0463; [61 EC 02, 05, 05]
+1C87; [61 EC 02, 05, 20]
+2DFA; [61 EC 02, 05, 20]
+0462; [61 EC 02, 05, AE]
-1245C; [11 83 13, 05, 05]
+A653; [61 EC 09, 05, 05]
+A652; [61 EC 09, 05, A0]
-1245D; [11 83 1A, 05, 05]
+044D; [61 EE, 05, 05]
+042D; [61 EE, 05, A0]
+04ED; [61 EE, 05, 05][, 96, 05]
+04EC; [61 EE, 05, A0][, 96, 05]
-1245E; [11 83 21, 05, 05]
+044E; [61 F0, 05, 05]
+2DFB; [61 F0, 05, 20]
+042E; [61 F0, 05, AE]
-1245F; [11 83 28, 05, 05]
+A655; [61 F2 02, 05, 05]
+A654; [61 F2 02, 05, A0]
-12460; [11 83 2F, 05, 05]
+A657; [61 F2 09, 05, 05]
+2DFC; [61 F2 09, 05, 20]
+A656; [61 F2 09, 05, AE]
-12461; [11 83 36, 05, 05]
+044F; [61 F4, 05, 05]
+042F; [61 F4, 05, A0]
-12462; [11 83 3D, 05, 05]
+0519; [61 F6 02, 05, 05]
+0518; [61 F6 02, 05, A0]
-12463; [11 83 44, 05, 05]
+0465; [61 F6 09, 05, 05]
+A69F; [61 F6 09, 05, 20]
+0464; [61 F6 09, 05, AE]
-12464; [11 83 4B, 05, 05]
+0467; [61 F6 10, 05, 05]
+2DFD; [61 F6 10, 05, 20]
+0466; [61 F6 10, 05, AE]
-12465; [11 83 52, 05, 05]
+A659; [61 F6 17, 05, 05]
+A658; [61 F6 17, 05, A0]
-12466; [11 83 59, 05, 05]
+046B; [61 F6 1E, 05, 05]
+2DFE; [61 F6 1E, 05, 20]
+046A; [61 F6 1E, 05, AE]
-12467; [11 83 60, 05, 05]
+A65B; [61 F6 25, 05, 05]
+A65A; [61 F6 25, 05, A0]
-12468; [11 83 67, 05, 05]
+0469; [61 F6 2C, 05, 05]
+0468; [61 F6 2C, 05, A0]
-1D369; [11 85, 05, 05]
+A65D; [61 F6 33, 05, 05]
+A65C; [61 F6 33, 05, A0]
-1D36A; [11 87, 05, 05]
+046D; [61 F6 3A, 05, 05]
+2DFF; [61 F6 3A, 05, 20]
+046C; [61 F6 3A, 05, AE]
-1D36B; [11 89, 05, 05]
+046F; [61 F6 41, 05, 05]
+046E; [61 F6 41, 05, A0]
-1D36C; [11 8B, 05, 05]
+0471; [61 F6 48, 05, 05]
+0470; [61 F6 48, 05, A0]
-1D36D; [11 8D, 05, 05]
+0473; [61 F6 4F, 05, 05]
+2DF4; [61 F6 4F, 05, 20]
+0472; [61 F6 4F, 05, AE]
-1D36E; [11 8F, 05, 05]
+0475; [61 F6 56, 05, 05]
+0474; [61 F6 56, 05, A0]
+0477; [61 F6 56, 05, 05][, B8, 05]
+0476; [61 F6 56, 05, A0][, B8, 05]
-1D36F; [11 91, 05, 05]
+A65F; [61 F6 5D, 05, 05]
+A65E; [61 F6 5D, 05, A0]
-1D370; [11 93, 05, 05]
+04A9; [61 F8, 05, 05]
+04A8; [61 F8, 05, A0]
-1D371; [11 95, 05, 05]
+051D; [61 FA, 05, 05]
+051C; [61 FA, 05, A0]
-0030; [12, 05, 05]
-0660; [12, 05, 05]
-06F0; [12, 05, 05]
-07C0; [12, 05, 05]
-0966; [12, 05, 05]
-09E6; [12, 05, 05]
-0A66; [12, 05, 05]
-0AE6; [12, 05, 05]
-0B66; [12, 05, 05]
-0BE6; [12, 05, 05]
-0C66; [12, 05, 05]
-0C78; [12, 05, 05]
-0CE6; [12, 05, 05]
-0D66; [12, 05, 05]
-0DE6; [12, 05, 05]
-0E50; [12, 05, 05]
-0ED0; [12, 05, 05]
-0F20; [12, 05, 05]
-1040; [12, 05, 05]
-1090; [12, 05, 05]
-17E0; [12, 05, 05]
-17F0; [12, 05, 05]
-1810; [12, 05, 05]
-1946; [12, 05, 05]
-19D0; [12, 05, 05]
-1A80; [12, 05, 05]
-1A90; [12, 05, 05]
-1B50; [12, 05, 05]
-1BB0; [12, 05, 05]
-1C40; [12, 05, 05]
-1C50; [12, 05, 05]
-3007; [12, 05, 05]
-A620; [12, 05, 05]
-A8D0; [12, 05, 05]
-A900; [12, 05, 05]
-A9D0; [12, 05, 05]
-A9F0; [12, 05, 05]
-AA50; [12, 05, 05]
-ABF0; [12, 05, 05]
-1018A; [12, 05, 05]
-104A0; [12, 05, 05]
-11066; [12, 05, 05]
-110F0; [12, 05, 05]
-11136; [12, 05, 05]
-111D0; [12, 05, 05]
-112F0; [12, 05, 05]
-11450; [12, 05, 05]
-114D0; [12, 05, 05]
-11650; [12, 05, 05]
-116C0; [12, 05, 05]
-11730; [12, 05, 05]
-118E0; [12, 05, 05]
-11C50; [12, 05, 05]
-11D50; [12, 05, 05]
-16A60; [12, 05, 05]
-16B50; [12, 05, 05]
-1E950; [12, 05, 05]
-FF10; [12, 05, 10]
-0F33; [12, 05, 15]
-1D7CE; [12, 05, 1A]
-1D7D8; [12, 05, 1A]
-1D7E2; [12, 05, 1A]
-1D7EC; [12, 05, 1A]
-1D7F6; [12, 05, 1A]
-24EA; [12, 05, 1F]
-24FF; [12, 05, 1F]
-1F10B; [12, 05, 1F]
-1F10C; [12, 05, 1F]
-2070; [12, 05, 24]
-2080; [12, 05, 29]
-1F101; [12, 05, 15][06, 05, 1B]
-1F100; [12, 05, 15][08, 05, 18]
-2189; [12, 05, 33][0C 92, 05, 20][18, 05, 33]
-3358; [12, 05, 15][U+70B9, 10]
-
-0031; [14, 05, 05]
-0661; [14, 05, 05]
-06F1; [14, 05, 05]
-07C1; [14, 05, 05]
-0967; [14, 05, 05]
-09E7; [14, 05, 05]
-0A67; [14, 05, 05]
-0AE7; [14, 05, 05]
-0B67; [14, 05, 05]
-0BE7; [14, 05, 05]
-0C67; [14, 05, 05]
-0C79; [14, 05, 05]
-0C7C; [14, 05, 05]
-0CE7; [14, 05, 05]
-0D67; [14, 05, 05]
-0DE7; [14, 05, 05]
-0E51; [14, 05, 05]
-0ED1; [14, 05, 05]
-0F21; [14, 05, 05]
-1041; [14, 05, 05]
-1091; [14, 05, 05]
-1369; [14, 05, 05]
-17E1; [14, 05, 05]
-17F1; [14, 05, 05]
-1811; [14, 05, 05]
-1947; [14, 05, 05]
-19D1; [14, 05, 05]
-19DA; [14, 05, 05]
-1A81; [14, 05, 05]
-1A91; [14, 05, 05]
-1B51; [14, 05, 05]
-1BB1; [14, 05, 05]
-1C41; [14, 05, 05]
-1C51; [14, 05, 05]
-3021; [14, 05, 05]
-A621; [14, 05, 05]
-A8D1; [14, 05, 05]
-A901; [14, 05, 05]
-A9D1; [14, 05, 05]
-A9F1; [14, 05, 05]
-AA51; [14, 05, 05]
-ABF1; [14, 05, 05]
-10107; [14, 05, 05]
-10142; [14, 05, 05]
-10158; [14, 05, 05]
-10159; [14, 05, 05]
-1015A; [14, 05, 05]
-102E1; [14, 05, 05]
-10320; [14, 05, 05]
-103D1; [14, 05, 05]
-104A1; [14, 05, 05]
-10858; [14, 05, 05]
-10879; [14, 05, 05]
-108A7; [14, 05, 05]
-108FB; [14, 05, 05]
-10916; [14, 05, 05]
-109C0; [14, 05, 05]
-10A40; [14, 05, 05]
-10A7D; [14, 05, 05]
-10A9D; [14, 05, 05]
-10AEB; [14, 05, 05]
-10B58; [14, 05, 05]
-10B78; [14, 05, 05]
-10BA9; [14, 05, 05]
-10CFA; [14, 05, 05]
-10E60; [14, 05, 05]
-11052; [14, 05, 05]
-11067; [14, 05, 05]
-110F1; [14, 05, 05]
-11137; [14, 05, 05]
-111D1; [14, 05, 05]
-111E1; [14, 05, 05]
-112F1; [14, 05, 05]
-11451; [14, 05, 05]
-114D1; [14, 05, 05]
-11651; [14, 05, 05]
-116C1; [14, 05, 05]
-11731; [14, 05, 05]
-118E1; [14, 05, 05]
-11C51; [14, 05, 05]
-11C5A; [14, 05, 05]
-11D51; [14, 05, 05]
-12415; [14, 05, 05]
-1241E; [14, 05, 05]
-1242C; [14, 05, 05]
-12434; [14, 05, 05]
-1244F; [14, 05, 05]
-12458; [14, 05, 05]
-16A61; [14, 05, 05]
-16B51; [14, 05, 05]
-1D360; [14, 05, 05]
-1E8C7; [14, 05, 05]
-1E951; [14, 05, 05]
-FF11; [14, 05, 10]
-0F2A; [14, 05, 15]
-1D7CF; [14, 05, 1A]
-1D7D9; [14, 05, 1A]
-1D7E3; [14, 05, 1A]
-1D7ED; [14, 05, 1A]
-1D7F7; [14, 05, 1A]
-2460; [14, 05, 1F]
-24F5; [14, 05, 1F]
-2776; [14, 05, 1F]
-2780; [14, 05, 1F]
-278A; [14, 05, 1F]
-00B9; [14, 05, 24]
-2081; [14, 05, 29]
-1F102; [14, 05, 15][06, 05, 1B]
-2488; [14, 05, 15][08, 05, 18]
-215F; [14, 05, 33][0C 92, 05, 20]
-2152; [14, 05, 33][0C 92, 05, 20][14, 05, 33][12, 05, 33]
-00BD; [14, 05, 33][0C 92, 05, 20][16, 05, 33]
-2153; [14, 05, 33][0C 92, 05, 20][18, 05, 33]
-00BC; [14, 05, 33][0C 92, 05, 20][1A, 05, 33]
-2155; [14, 05, 33][0C 92, 05, 20][1C, 05, 33]
-2159; [14, 05, 33][0C 92, 05, 20][1E, 05, 33]
-2150; [14, 05, 33][0C 92, 05, 20][20, 05, 33]
-215B; [14, 05, 33][0C 92, 05, 20][22, 05, 33]
-2151; [14, 05, 33][0C 92, 05, 20][24, 05, 34]
-2469; [14, 05, 1F][12, 05, 1F]
-24FE; [14, 05, 1F][12, 05, 1F]
-277F; [14, 05, 1F][12, 05, 1F]
-2789; [14, 05, 1F][12, 05, 1F]
-2793; [14, 05, 1F][12, 05, 1F]
-3248; [14, 05, 1F][12, 05, 1F]
-2491; [14, 05, 15][12, 05, 15][08, 05, 18]
-33E9; [14, 05, 15][12, 05, 15][U+65E5, 10]
-32C9; [14, 05, 15][12, 05, 15][U+6708, 10]
-3362; [14, 05, 15][12, 05, 15][U+70B9, 10]
-246A; [14, 05, 1F][14, 05, 1F]
-24EB; [14, 05, 1F][14, 05, 1F]
-2492; [14, 05, 15][14, 05, 15][08, 05, 18]
-33EA; [14, 05, 15][14, 05, 15][U+65E5, 10]
-32CA; [14, 05, 15][14, 05, 15][U+6708, 10]
-3363; [14, 05, 15][14, 05, 15][U+70B9, 10]
-246B; [14, 05, 1F][16, 05, 1F]
-24EC; [14, 05, 1F][16, 05, 1F]
-2493; [14, 05, 15][16, 05, 15][08, 05, 18]
-1F1A4; [14, 05, 2E][16, 05, 2E][12, 05, 2E][47, 05, B4]
-33EB; [14, 05, 15][16, 05, 15][U+65E5, 10]
-32CB; [14, 05, 15][16, 05, 15][U+6708, 10]
-3364; [14, 05, 15][16, 05, 15][U+70B9, 10]
-246C; [14, 05, 1F][18, 05, 1F]
-24ED; [14, 05, 1F][18, 05, 1F]
-2494; [14, 05, 15][18, 05, 15][08, 05, 18]
-33EC; [14, 05, 15][18, 05, 15][U+65E5, 10]
-3365; [14, 05, 15][18, 05, 15][U+70B9, 10]
-246D; [14, 05, 1F][1A, 05, 1F]
-24EE; [14, 05, 1F][1A, 05, 1F]
-2495; [14, 05, 15][1A, 05, 15][08, 05, 18]
-33ED; [14, 05, 15][1A, 05, 15][U+65E5, 10]
-3366; [14, 05, 15][1A, 05, 15][U+70B9, 10]
-246E; [14, 05, 1F][1C, 05, 1F]
-24EF; [14, 05, 1F][1C, 05, 1F]
-2496; [14, 05, 15][1C, 05, 15][08, 05, 18]
-33EE; [14, 05, 15][1C, 05, 15][U+65E5, 10]
-3367; [14, 05, 15][1C, 05, 15][U+70B9, 10]
-246F; [14, 05, 1F][1E, 05, 1F]
-24F0; [14, 05, 1F][1E, 05, 1F]
-2497; [14, 05, 15][1E, 05, 15][08, 05, 18]
-33EF; [14, 05, 15][1E, 05, 15][U+65E5, 10]
-3368; [14, 05, 15][1E, 05, 15][U+70B9, 10]
-2470; [14, 05, 1F][20, 05, 1F]
-24F1; [14, 05, 1F][20, 05, 1F]
-2498; [14, 05, 15][20, 05, 15][08, 05, 18]
-33F0; [14, 05, 15][20, 05, 15][U+65E5, 10]
-3369; [14, 05, 15][20, 05, 15][U+70B9, 10]
-2471; [14, 05, 1F][22, 05, 1F]
-24F2; [14, 05, 1F][22, 05, 1F]
-2499; [14, 05, 15][22, 05, 15][08, 05, 18]
-33F1; [14, 05, 15][22, 05, 15][U+65E5, 10]
-336A; [14, 05, 15][22, 05, 15][U+70B9, 10]
-2472; [14, 05, 1F][24, 05, 22]
-24F3; [14, 05, 1F][24, 05, 22]
-249A; [14, 05, 15][24, 05, 16][08, 05, 18]
-33F2; [14, 05, 15][24, 05, 16][U+65E5, 10]
-336B; [14, 05, 15][24, 05, 16][U+70B9, 10]
-33E0; [14, 05, 15][U+65E5, 10]
-32C0; [14, 05, 15][U+6708, 10]
-3359; [14, 05, 15][U+70B9, 10]
-
-0032; [16, 05, 05]
-0662; [16, 05, 05]
-06F2; [16, 05, 05]
-07C2; [16, 05, 05]
-0968; [16, 05, 05]
-09E8; [16, 05, 05]
-0A68; [16, 05, 05]
-0AE8; [16, 05, 05]
-0B68; [16, 05, 05]
-0BE8; [16, 05, 05]
-0C68; [16, 05, 05]
-0C7A; [16, 05, 05]
-0C7D; [16, 05, 05]
-0CE8; [16, 05, 05]
-0D68; [16, 05, 05]
-0DE8; [16, 05, 05]
-0E52; [16, 05, 05]
-0ED2; [16, 05, 05]
-0F22; [16, 05, 05]
-1042; [16, 05, 05]
-1092; [16, 05, 05]
-136A; [16, 05, 05]
-17E2; [16, 05, 05]
-17F2; [16, 05, 05]
-1812; [16, 05, 05]
-1948; [16, 05, 05]
-19D2; [16, 05, 05]
-1A82; [16, 05, 05]
-1A92; [16, 05, 05]
-1B52; [16, 05, 05]
-1BB2; [16, 05, 05]
-1C42; [16, 05, 05]
-1C52; [16, 05, 05]
-3022; [16, 05, 05]
-A622; [16, 05, 05]
-A8D2; [16, 05, 05]
-A902; [16, 05, 05]
-A9D2; [16, 05, 05]
-A9F2; [16, 05, 05]
-AA52; [16, 05, 05]
-ABF2; [16, 05, 05]
-10108; [16, 05, 05]
-1015B; [16, 05, 05]
-1015C; [16, 05, 05]
-1015D; [16, 05, 05]
-1015E; [16, 05, 05]
-102E2; [16, 05, 05]
-103D2; [16, 05, 05]
-104A2; [16, 05, 05]
-10859; [16, 05, 05]
-1087A; [16, 05, 05]
-108A8; [16, 05, 05]
-1091A; [16, 05, 05]
-109C1; [16, 05, 05]
-10A41; [16, 05, 05]
-10B59; [16, 05, 05]
-10B79; [16, 05, 05]
-10BAA; [16, 05, 05]
-10E61; [16, 05, 05]
-11053; [16, 05, 05]
-11068; [16, 05, 05]
-110F2; [16, 05, 05]
-11138; [16, 05, 05]
-111D2; [16, 05, 05]
-111E2; [16, 05, 05]
-112F2; [16, 05, 05]
-11452; [16, 05, 05]
-114D2; [16, 05, 05]
-11652; [16, 05, 05]
-116C2; [16, 05, 05]
-11732; [16, 05, 05]
-118E2; [16, 05, 05]
-11C52; [16, 05, 05]
-11C5B; [16, 05, 05]
-11D52; [16, 05, 05]
-12400; [16, 05, 05]
-12416; [16, 05, 05]
-1241F; [16, 05, 05]
-12423; [16, 05, 05]
-1242D; [16, 05, 05]
-12435; [16, 05, 05]
-1244A; [16, 05, 05]
-12450; [16, 05, 05]
-12456; [16, 05, 05]
-12459; [16, 05, 05]
-16A62; [16, 05, 05]
-16B52; [16, 05, 05]
-1D361; [16, 05, 05]
-1E8C8; [16, 05, 05]
-1E952; [16, 05, 05]
-FF12; [16, 05, 10]
-0F2B; [16, 05, 15]
-1D7D0; [16, 05, 1A]
-1D7DA; [16, 05, 1A]
-1D7E4; [16, 05, 1A]
-1D7EE; [16, 05, 1A]
-1D7F8; [16, 05, 1A]
-2461; [16, 05, 1F]
-24F6; [16, 05, 1F]
-2777; [16, 05, 1F]
-2781; [16, 05, 1F]
-278B; [16, 05, 1F]
-00B2; [16, 05, 24]
-2082; [16, 05, 29]
-1F103; [16, 05, 15][06, 05, 1B]
-2489; [16, 05, 15][08, 05, 18]
-2154; [16, 05, 33][0C 92, 05, 20][18, 05, 33]
-2156; [16, 05, 33][0C 92, 05, 20][1C, 05, 33]
-2473; [16, 05, 1F][12, 05, 1F]
-24F4; [16, 05, 1F][12, 05, 1F]
-3249; [16, 05, 1F][12, 05, 1F]
-249B; [16, 05, 15][12, 05, 15][08, 05, 18]
-33F3; [16, 05, 15][12, 05, 15][U+65E5, 10]
-336C; [16, 05, 15][12, 05, 15][U+70B9, 10]
-3251; [16, 05, 1F][14, 05, 1F]
-33F4; [16, 05, 15][14, 05, 15][U+65E5, 10]
-336D; [16, 05, 15][14, 05, 15][U+70B9, 10]
-3252; [16, 05, 1F][16, 05, 1F]
-1F1A2; [16, 05, 2E][16, 05, 2E][08, 05, 30][16, 05, 2E]
-33F5; [16, 05, 15][16, 05, 15][U+65E5, 10]
-336E; [16, 05, 15][16, 05, 15][U+70B9, 10]
-3253; [16, 05, 1F][18, 05, 1F]
-33F6; [16, 05, 15][18, 05, 15][U+65E5, 10]
-336F; [16, 05, 15][18, 05, 15][U+70B9, 10]
-3254; [16, 05, 1F][1A, 05, 1F]
-33F7; [16, 05, 15][1A, 05, 15][U+65E5, 10]
-3370; [16, 05, 15][1A, 05, 15][U+70B9, 10]
-3255; [16, 05, 1F][1C, 05, 1F]
-33F8; [16, 05, 15][1C, 05, 15][U+65E5, 10]
-3256; [16, 05, 1F][1E, 05, 1F]
-33F9; [16, 05, 15][1E, 05, 15][U+65E5, 10]
-3257; [16, 05, 1F][20, 05, 1F]
-33FA; [16, 05, 15][20, 05, 15][U+65E5, 10]
-3258; [16, 05, 1F][22, 05, 1F]
-33FB; [16, 05, 15][22, 05, 15][U+65E5, 10]
-3259; [16, 05, 1F][24, 05, 22]
-33FC; [16, 05, 15][24, 05, 16][U+65E5, 10]
-1F19D; [16, 05, 2E][3D, 05, B4]
-1F19C; [16, 05, 2E][43, 05, 31][2F, 05, 2E][04, 05, 30][4D, 05, B4][2D, 05, 2E][4B, 05, 31]
-33E1; [16, 05, 15][U+65E5, 10]
-32C1; [16, 05, 15][U+6708, 10]
-335A; [16, 05, 15][U+70B9, 10]
-
-0033; [18, 05, 05]
-0663; [18, 05, 05]
-06F3; [18, 05, 05]
-07C3; [18, 05, 05]
-0969; [18, 05, 05]
-09E9; [18, 05, 05]
-0A69; [18, 05, 05]
-0AE9; [18, 05, 05]
-0B69; [18, 05, 05]
-0BE9; [18, 05, 05]
-0C69; [18, 05, 05]
-0C7B; [18, 05, 05]
-0C7E; [18, 05, 05]
-0CE9; [18, 05, 05]
-0D69; [18, 05, 05]
-0DE9; [18, 05, 05]
-0E53; [18, 05, 05]
-0ED3; [18, 05, 05]
-0F23; [18, 05, 05]
-1043; [18, 05, 05]
-1093; [18, 05, 05]
-136B; [18, 05, 05]
-17E3; [18, 05, 05]
-17F3; [18, 05, 05]
-1813; [18, 05, 05]
-1949; [18, 05, 05]
-19D3; [18, 05, 05]
-1A83; [18, 05, 05]
-1A93; [18, 05, 05]
-1B53; [18, 05, 05]
-1BB3; [18, 05, 05]
-1C43; [18, 05, 05]
-1C53; [18, 05, 05]
-3023; [18, 05, 05]
-A623; [18, 05, 05]
-A8D3; [18, 05, 05]
-A903; [18, 05, 05]
-A9D3; [18, 05, 05]
-A9F3; [18, 05, 05]
-AA53; [18, 05, 05]
-ABF3; [18, 05, 05]
-10109; [18, 05, 05]
-102E3; [18, 05, 05]
-104A3; [18, 05, 05]
-1085A; [18, 05, 05]
-1087B; [18, 05, 05]
-108A9; [18, 05, 05]
-1091B; [18, 05, 05]
-109C2; [18, 05, 05]
-10A42; [18, 05, 05]
-10B5A; [18, 05, 05]
-10B7A; [18, 05, 05]
-10BAB; [18, 05, 05]
-10E62; [18, 05, 05]
-11054; [18, 05, 05]
-11069; [18, 05, 05]
-110F3; [18, 05, 05]
-11139; [18, 05, 05]
-111D3; [18, 05, 05]
-111E3; [18, 05, 05]
-112F3; [18, 05, 05]
-11453; [18, 05, 05]
-114D3; [18, 05, 05]
-11653; [18, 05, 05]
-116C3; [18, 05, 05]
-11733; [18, 05, 05]
-118E3; [18, 05, 05]
-11C53; [18, 05, 05]
-11C5C; [18, 05, 05]
-11D53; [18, 05, 05]
-12401; [18, 05, 05]
-12408; [18, 05, 05]
-12417; [18, 05, 05]
-12420; [18, 05, 05]
-12424; [18, 05, 05]
-12425; [18, 05, 05]
-1242E; [18, 05, 05]
-1242F; [18, 05, 05]
-12436; [18, 05, 05]
-12437; [18, 05, 05]
-1243A; [18, 05, 05]
-1243B; [18, 05, 05]
-1244B; [18, 05, 05]
-12451; [18, 05, 05]
-12457; [18, 05, 05]
-16A63; [18, 05, 05]
-16B53; [18, 05, 05]
-1D362; [18, 05, 05]
-1E8C9; [18, 05, 05]
-1E953; [18, 05, 05]
-FF13; [18, 05, 10]
-0F2C; [18, 05, 15]
-1D7D1; [18, 05, 1A]
-1D7DB; [18, 05, 1A]
-1D7E5; [18, 05, 1A]
-1D7EF; [18, 05, 1A]
-1D7F9; [18, 05, 1A]
-2462; [18, 05, 1F]
-24F7; [18, 05, 1F]
-2778; [18, 05, 1F]
-2782; [18, 05, 1F]
-278C; [18, 05, 1F]
-00B3; [18, 05, 24]
-2083; [18, 05, 29]
-1F104; [18, 05, 15][06, 05, 1B]
-248A; [18, 05, 15][08, 05, 18]
-00BE; [18, 05, 33][0C 92, 05, 20][1A, 05, 33]
-2157; [18, 05, 33][0C 92, 05, 20][1C, 05, 33]
-215C; [18, 05, 33][0C 92, 05, 20][22, 05, 33]
-324A; [18, 05, 1F][12, 05, 1F]
-325A; [18, 05, 1F][12, 05, 1F]
-33FD; [18, 05, 15][12, 05, 15][U+65E5, 10]
-325B; [18, 05, 1F][14, 05, 1F]
-33FE; [18, 05, 15][14, 05, 15][U+65E5, 10]
-325C; [18, 05, 1F][16, 05, 1F]
-325D; [18, 05, 1F][18, 05, 1F]
-325E; [18, 05, 1F][1A, 05, 1F]
-325F; [18, 05, 1F][1C, 05, 1F]
-32B1; [18, 05, 1F][1E, 05, 1F]
-32B2; [18, 05, 1F][20, 05, 1F]
-32B3; [18, 05, 1F][22, 05, 1F]
-32B4; [18, 05, 1F][24, 05, 22]
-1F19B; [18, 05, 2E][2F, 05, B1]
-33E2; [18, 05, 15][U+65E5, 10]
-32C2; [18, 05, 15][U+6708, 10]
-335B; [18, 05, 15][U+70B9, 10]
-
-0034; [1A, 05, 05]
-0664; [1A, 05, 05]
-06F4; [1A, 05, 05]
-07C4; [1A, 05, 05]
-096A; [1A, 05, 05]
-09EA; [1A, 05, 05]
-0A6A; [1A, 05, 05]
-0AEA; [1A, 05, 05]
-0B6A; [1A, 05, 05]
-0BEA; [1A, 05, 05]
-0C6A; [1A, 05, 05]
-0CEA; [1A, 05, 05]
-0D6A; [1A, 05, 05]
-0DEA; [1A, 05, 05]
-0E54; [1A, 05, 05]
-0ED4; [1A, 05, 05]
-0F24; [1A, 05, 05]
-1044; [1A, 05, 05]
-1094; [1A, 05, 05]
-136C; [1A, 05, 05]
-17E4; [1A, 05, 05]
-17F4; [1A, 05, 05]
-1814; [1A, 05, 05]
-194A; [1A, 05, 05]
-19D4; [1A, 05, 05]
-1A84; [1A, 05, 05]
-1A94; [1A, 05, 05]
-1B54; [1A, 05, 05]
-1BB4; [1A, 05, 05]
-1C44; [1A, 05, 05]
-1C54; [1A, 05, 05]
-3024; [1A, 05, 05]
-A624; [1A, 05, 05]
-A8D4; [1A, 05, 05]
-A904; [1A, 05, 05]
-A9D4; [1A, 05, 05]
-A9F4; [1A, 05, 05]
-AA54; [1A, 05, 05]
-ABF4; [1A, 05, 05]
-1010A; [1A, 05, 05]
-102E4; [1A, 05, 05]
-104A4; [1A, 05, 05]
-1087C; [1A, 05, 05]
-108AA; [1A, 05, 05]
-108AB; [1A, 05, 05]
-109C3; [1A, 05, 05]
-10A43; [1A, 05, 05]
-10B5B; [1A, 05, 05]
-10B7B; [1A, 05, 05]
-10BAC; [1A, 05, 05]
-10E63; [1A, 05, 05]
-11055; [1A, 05, 05]
-1106A; [1A, 05, 05]
-110F4; [1A, 05, 05]
-1113A; [1A, 05, 05]
-111D4; [1A, 05, 05]
-111E4; [1A, 05, 05]
-112F4; [1A, 05, 05]
-11454; [1A, 05, 05]
-114D4; [1A, 05, 05]
-11654; [1A, 05, 05]
-116C4; [1A, 05, 05]
-11734; [1A, 05, 05]
-118E4; [1A, 05, 05]
-11C54; [1A, 05, 05]
-11C5D; [1A, 05, 05]
-11D54; [1A, 05, 05]
-12402; [1A, 05, 05]
-12409; [1A, 05, 05]
-1240F; [1A, 05, 05]
-12418; [1A, 05, 05]
-12421; [1A, 05, 05]
-12426; [1A, 05, 05]
-12430; [1A, 05, 05]
-12438; [1A, 05, 05]
-1243C; [1A, 05, 05]
-1243D; [1A, 05, 05]
-1243E; [1A, 05, 05]
-1243F; [1A, 05, 05]
-1244C; [1A, 05, 05]
-12452; [1A, 05, 05]
-12453; [1A, 05, 05]
-12469; [1A, 05, 05]
-16A64; [1A, 05, 05]
-16B54; [1A, 05, 05]
-1D363; [1A, 05, 05]
-1E8CA; [1A, 05, 05]
-1E954; [1A, 05, 05]
-FF14; [1A, 05, 10]
-0F2D; [1A, 05, 15]
-1D7D2; [1A, 05, 1A]
-1D7DC; [1A, 05, 1A]
-1D7E6; [1A, 05, 1A]
-1D7F0; [1A, 05, 1A]
-1D7FA; [1A, 05, 1A]
-2463; [1A, 05, 1F]
-24F8; [1A, 05, 1F]
-2779; [1A, 05, 1F]
-2783; [1A, 05, 1F]
-278D; [1A, 05, 1F]
-2074; [1A, 05, 24]
-2084; [1A, 05, 29]
-1F105; [1A, 05, 15][06, 05, 1B]
-248B; [1A, 05, 15][08, 05, 18]
-2158; [1A, 05, 33][0C 92, 05, 20][1C, 05, 33]
-324B; [1A, 05, 1F][12, 05, 1F]
-32B5; [1A, 05, 1F][12, 05, 1F]
-32B6; [1A, 05, 1F][14, 05, 1F]
-32B7; [1A, 05, 1F][16, 05, 1F]
-32B8; [1A, 05, 1F][18, 05, 1F]
-32B9; [1A, 05, 1F][1A, 05, 1F]
-32BA; [1A, 05, 1F][1C, 05, 1F]
-32BB; [1A, 05, 1F][1E, 05, 1F]
-32BC; [1A, 05, 1F][20, 05, 1F]
-32BD; [1A, 05, 1F][22, 05, 1F]
-32BE; [1A, 05, 1F][24, 05, 22]
-1F19E; [1A, 05, 2E][3D, 05, B4]
-33E3; [1A, 05, 15][U+65E5, 10]
-32C3; [1A, 05, 15][U+6708, 10]
-335C; [1A, 05, 15][U+70B9, 10]
-
-0035; [1C, 05, 05]
-0665; [1C, 05, 05]
-06F5; [1C, 05, 05]
-07C5; [1C, 05, 05]
-096B; [1C, 05, 05]
-09EB; [1C, 05, 05]
-0A6B; [1C, 05, 05]
-0AEB; [1C, 05, 05]
-0B6B; [1C, 05, 05]
-0BEB; [1C, 05, 05]
-0C6B; [1C, 05, 05]
-0CEB; [1C, 05, 05]
-0D6B; [1C, 05, 05]
-0DEB; [1C, 05, 05]
-0E55; [1C, 05, 05]
-0ED5; [1C, 05, 05]
-0F25; [1C, 05, 05]
-1045; [1C, 05, 05]
-1095; [1C, 05, 05]
-136D; [1C, 05, 05]
-17E5; [1C, 05, 05]
-17F5; [1C, 05, 05]
-1815; [1C, 05, 05]
-194B; [1C, 05, 05]
-19D5; [1C, 05, 05]
-1A85; [1C, 05, 05]
-1A95; [1C, 05, 05]
-1B55; [1C, 05, 05]
-1BB5; [1C, 05, 05]
-1C45; [1C, 05, 05]
-1C55; [1C, 05, 05]
-3025; [1C, 05, 05]
-A625; [1C, 05, 05]
-A8D5; [1C, 05, 05]
-A905; [1C, 05, 05]
-A9D5; [1C, 05, 05]
-A9F5; [1C, 05, 05]
-AA55; [1C, 05, 05]
-ABF5; [1C, 05, 05]
-1010B; [1C, 05, 05]
-10143; [1C, 05, 05]
-10148; [1C, 05, 05]
-1014F; [1C, 05, 05]
-1015F; [1C, 05, 05]
-10173; [1C, 05, 05]
-102E5; [1C, 05, 05]
-10321; [1C, 05, 05]
-104A5; [1C, 05, 05]
-1087D; [1C, 05, 05]
-108AC; [1C, 05, 05]
-108FC; [1C, 05, 05]
-109C4; [1C, 05, 05]
-10AEC; [1C, 05, 05]
-10CFB; [1C, 05, 05]
-10E64; [1C, 05, 05]
-11056; [1C, 05, 05]
-1106B; [1C, 05, 05]
-110F5; [1C, 05, 05]
-1113B; [1C, 05, 05]
-111D5; [1C, 05, 05]
-111E5; [1C, 05, 05]
-112F5; [1C, 05, 05]
-11455; [1C, 05, 05]
-114D5; [1C, 05, 05]
-11655; [1C, 05, 05]
-116C5; [1C, 05, 05]
-11735; [1C, 05, 05]
-118E5; [1C, 05, 05]
-11C55; [1C, 05, 05]
-11C5E; [1C, 05, 05]
-11D55; [1C, 05, 05]
-12403; [1C, 05, 05]
-1240A; [1C, 05, 05]
-12410; [1C, 05, 05]
-12419; [1C, 05, 05]
-12422; [1C, 05, 05]
-12427; [1C, 05, 05]
-12431; [1C, 05, 05]
-12439; [1C, 05, 05]
-1244D; [1C, 05, 05]
-12454; [1C, 05, 05]
-12455; [1C, 05, 05]
-1246A; [1C, 05, 05]
-16A65; [1C, 05, 05]
-16B55; [1C, 05, 05]
-1D364; [1C, 05, 05]
-1E8CB; [1C, 05, 05]
-1E955; [1C, 05, 05]
-FF15; [1C, 05, 10]
-0F2E; [1C, 05, 15]
-1D7D3; [1C, 05, 1A]
-1D7DD; [1C, 05, 1A]
-1D7E7; [1C, 05, 1A]
-1D7F1; [1C, 05, 1A]
-1D7FB; [1C, 05, 1A]
-2464; [1C, 05, 1F]
-24F9; [1C, 05, 1F]
-277A; [1C, 05, 1F]
-2784; [1C, 05, 1F]
-278E; [1C, 05, 1F]
-2075; [1C, 05, 24]
-2085; [1C, 05, 29]
-1F106; [1C, 05, 15][06, 05, 1B]
-248C; [1C, 05, 15][08, 05, 18]
-1F1A0; [1C, 05, 2E][08, 05, 30][14, 05, 2E]
-215A; [1C, 05, 33][0C 92, 05, 20][1E, 05, 33]
-215D; [1C, 05, 33][0C 92, 05, 20][22, 05, 33]
-324C; [1C, 05, 1F][12, 05, 1F]
-32BF; [1C, 05, 1F][12, 05, 1F]
-33E4; [1C, 05, 15][U+65E5, 10]
-32C4; [1C, 05, 15][U+6708, 10]
-335D; [1C, 05, 15][U+70B9, 10]
-
-0036; [1E, 05, 05]
-0666; [1E, 05, 05]
-06F6; [1E, 05, 05]
-07C6; [1E, 05, 05]
-096C; [1E, 05, 05]
-09EC; [1E, 05, 05]
-0A6C; [1E, 05, 05]
-0AEC; [1E, 05, 05]
-0B6C; [1E, 05, 05]
-0BEC; [1E, 05, 05]
-0C6C; [1E, 05, 05]
-0CEC; [1E, 05, 05]
-0D6C; [1E, 05, 05]
-0DEC; [1E, 05, 05]
-0E56; [1E, 05, 05]
-0ED6; [1E, 05, 05]
-0F26; [1E, 05, 05]
-1046; [1E, 05, 05]
-1096; [1E, 05, 05]
-136E; [1E, 05, 05]
-17E6; [1E, 05, 05]
-17F6; [1E, 05, 05]
-1816; [1E, 05, 05]
-194C; [1E, 05, 05]
-19D6; [1E, 05, 05]
-1A86; [1E, 05, 05]
-1A96; [1E, 05, 05]
-1B56; [1E, 05, 05]
-1BB6; [1E, 05, 05]
-1C46; [1E, 05, 05]
-1C56; [1E, 05, 05]
-2185; [1E, 05, 05]
-3026; [1E, 05, 05]
-A626; [1E, 05, 05]
-A8D6; [1E, 05, 05]
-A906; [1E, 05, 05]
-A9D6; [1E, 05, 05]
-A9F6; [1E, 05, 05]
-AA56; [1E, 05, 05]
-ABF6; [1E, 05, 05]
-1010C; [1E, 05, 05]
-102E6; [1E, 05, 05]
-104A6; [1E, 05, 05]
-109C5; [1E, 05, 05]
-10E65; [1E, 05, 05]
-11057; [1E, 05, 05]
-1106C; [1E, 05, 05]
-110F6; [1E, 05, 05]
-1113C; [1E, 05, 05]
-111D6; [1E, 05, 05]
-111E6; [1E, 05, 05]
-112F6; [1E, 05, 05]
-11456; [1E, 05, 05]
-114D6; [1E, 05, 05]
-11656; [1E, 05, 05]
-116C6; [1E, 05, 05]
-11736; [1E, 05, 05]
-118E6; [1E, 05, 05]
-11C56; [1E, 05, 05]
-11C5F; [1E, 05, 05]
-11D56; [1E, 05, 05]
-12404; [1E, 05, 05]
-1240B; [1E, 05, 05]
-12411; [1E, 05, 05]
-1241A; [1E, 05, 05]
-12428; [1E, 05, 05]
-12440; [1E, 05, 05]
-1244E; [1E, 05, 05]
-1246B; [1E, 05, 05]
-16A66; [1E, 05, 05]
-16B56; [1E, 05, 05]
-1D365; [1E, 05, 05]
-1E8CC; [1E, 05, 05]
-1E956; [1E, 05, 05]
-FF16; [1E, 05, 10]
-0F2F; [1E, 05, 15]
-1D7D4; [1E, 05, 1A]
-1D7DE; [1E, 05, 1A]
-1D7E8; [1E, 05, 1A]
-1D7F2; [1E, 05, 1A]
-1D7FC; [1E, 05, 1A]
-2465; [1E, 05, 1F]
-24FA; [1E, 05, 1F]
-277B; [1E, 05, 1F]
-2785; [1E, 05, 1F]
-278F; [1E, 05, 1F]
-2076; [1E, 05, 24]
-2086; [1E, 05, 29]
-1F107; [1E, 05, 15][06, 05, 1B]
-248D; [1E, 05, 15][08, 05, 18]
-324D; [1E, 05, 1F][12, 05, 1F]
-1F1A3; [1E, 05, 2E][12, 05, 2E][47, 05, B4]
-33E5; [1E, 05, 15][U+65E5, 10]
-32C5; [1E, 05, 15][U+6708, 10]
-335E; [1E, 05, 15][U+70B9, 10]
-
-0037; [20, 05, 05]
-0667; [20, 05, 05]
-06F7; [20, 05, 05]
-07C7; [20, 05, 05]
-096D; [20, 05, 05]
-09ED; [20, 05, 05]
-0A6D; [20, 05, 05]
-0AED; [20, 05, 05]
-0B6D; [20, 05, 05]
-0BED; [20, 05, 05]
-0C6D; [20, 05, 05]
-0CED; [20, 05, 05]
-0D6D; [20, 05, 05]
-0DED; [20, 05, 05]
-0E57; [20, 05, 05]
-0ED7; [20, 05, 05]
-0F27; [20, 05, 05]
-1047; [20, 05, 05]
-1097; [20, 05, 05]
-136F; [20, 05, 05]
-17E7; [20, 05, 05]
-17F7; [20, 05, 05]
-1817; [20, 05, 05]
-194D; [20, 05, 05]
-19D7; [20, 05, 05]
-1A87; [20, 05, 05]
-1A97; [20, 05, 05]
-1B57; [20, 05, 05]
-1BB7; [20, 05, 05]
-1C47; [20, 05, 05]
-1C57; [20, 05, 05]
-3027; [20, 05, 05]
-A627; [20, 05, 05]
-A8D7; [20, 05, 05]
-A907; [20, 05, 05]
-A9D7; [20, 05, 05]
-A9F7; [20, 05, 05]
-AA57; [20, 05, 05]
-ABF7; [20, 05, 05]
-1010D; [20, 05, 05]
-102E7; [20, 05, 05]
-104A7; [20, 05, 05]
-109C6; [20, 05, 05]
-10E66; [20, 05, 05]
-11058; [20, 05, 05]
-1106D; [20, 05, 05]
-110F7; [20, 05, 05]
-1113D; [20, 05, 05]
-111D7; [20, 05, 05]
-111E7; [20, 05, 05]
-112F7; [20, 05, 05]
-11457; [20, 05, 05]
-114D7; [20, 05, 05]
-11657; [20, 05, 05]
-116C7; [20, 05, 05]
-11737; [20, 05, 05]
-118E7; [20, 05, 05]
-11C57; [20, 05, 05]
-11C60; [20, 05, 05]
-11D57; [20, 05, 05]
-12405; [20, 05, 05]
-1240C; [20, 05, 05]
-12412; [20, 05, 05]
-1241B; [20, 05, 05]
-12429; [20, 05, 05]
-12441; [20, 05, 05]
-12442; [20, 05, 05]
-12443; [20, 05, 05]
-1246C; [20, 05, 05]
-16A67; [20, 05, 05]
-16B57; [20, 05, 05]
-1D366; [20, 05, 05]
-1E8CD; [20, 05, 05]
-1E957; [20, 05, 05]
-FF17; [20, 05, 10]
-0F30; [20, 05, 15]
-1D7D5; [20, 05, 1A]
-1D7DF; [20, 05, 1A]
-1D7E9; [20, 05, 1A]
-1D7F3; [20, 05, 1A]
-1D7FD; [20, 05, 1A]
-2466; [20, 05, 1F]
-24FB; [20, 05, 1F]
-277C; [20, 05, 1F]
-2786; [20, 05, 1F]
-2790; [20, 05, 1F]
-2077; [20, 05, 24]
-2087; [20, 05, 29]
-1F108; [20, 05, 15][06, 05, 1B]
-248E; [20, 05, 15][08, 05, 18]
-1F1A1; [20, 05, 2E][08, 05, 30][14, 05, 2E]
-215E; [20, 05, 33][0C 92, 05, 20][22, 05, 33]
-324E; [20, 05, 1F][12, 05, 1F]
-33E6; [20, 05, 15][U+65E5, 10]
-32C6; [20, 05, 15][U+6708, 10]
-335F; [20, 05, 15][U+70B9, 10]
-
-0038; [22, 05, 05]
-0668; [22, 05, 05]
-06F8; [22, 05, 05]
-07C8; [22, 05, 05]
-096E; [22, 05, 05]
-09EE; [22, 05, 05]
-0A6E; [22, 05, 05]
-0AEE; [22, 05, 05]
-0B6E; [22, 05, 05]
-0BEE; [22, 05, 05]
-0C6E; [22, 05, 05]
-0CEE; [22, 05, 05]
-0D6E; [22, 05, 05]
-0DEE; [22, 05, 05]
-0E58; [22, 05, 05]
-0ED8; [22, 05, 05]
-0F28; [22, 05, 05]
-1048; [22, 05, 05]
-1098; [22, 05, 05]
-1370; [22, 05, 05]
-17E8; [22, 05, 05]
-17F8; [22, 05, 05]
-1818; [22, 05, 05]
-194E; [22, 05, 05]
-19D8; [22, 05, 05]
-1A88; [22, 05, 05]
-1A98; [22, 05, 05]
-1B58; [22, 05, 05]
-1BB8; [22, 05, 05]
-1C48; [22, 05, 05]
-1C58; [22, 05, 05]
-3028; [22, 05, 05]
-A628; [22, 05, 05]
-A8D8; [22, 05, 05]
-A908; [22, 05, 05]
-A9D8; [22, 05, 05]
-A9F8; [22, 05, 05]
-AA58; [22, 05, 05]
-ABF8; [22, 05, 05]
-1010E; [22, 05, 05]
-102E8; [22, 05, 05]
-104A8; [22, 05, 05]
-109C7; [22, 05, 05]
-10E67; [22, 05, 05]
-11059; [22, 05, 05]
-1106E; [22, 05, 05]
-110F8; [22, 05, 05]
-1113E; [22, 05, 05]
-111D8; [22, 05, 05]
-111E8; [22, 05, 05]
-112F8; [22, 05, 05]
-11458; [22, 05, 05]
-114D8; [22, 05, 05]
-11658; [22, 05, 05]
-116C8; [22, 05, 05]
-11738; [22, 05, 05]
-118E8; [22, 05, 05]
-11C58; [22, 05, 05]
-11C61; [22, 05, 05]
-11D58; [22, 05, 05]
-12406; [22, 05, 05]
-1240D; [22, 05, 05]
-12413; [22, 05, 05]
-1241C; [22, 05, 05]
-1242A; [22, 05, 05]
-12444; [22, 05, 05]
-12445; [22, 05, 05]
-1246D; [22, 05, 05]
-16A68; [22, 05, 05]
-16B58; [22, 05, 05]
-1D367; [22, 05, 05]
-1E8CE; [22, 05, 05]
-1E958; [22, 05, 05]
-FF18; [22, 05, 10]
-0F31; [22, 05, 15]
-1D7D6; [22, 05, 1A]
-1D7E0; [22, 05, 1A]
-1D7EA; [22, 05, 1A]
-1D7F4; [22, 05, 1A]
-1D7FE; [22, 05, 1A]
-2467; [22, 05, 1F]
-24FC; [22, 05, 1F]
-277D; [22, 05, 1F]
-2787; [22, 05, 1F]
-2791; [22, 05, 1F]
-2078; [22, 05, 24]
-2088; [22, 05, 29]
-1F109; [22, 05, 15][06, 05, 1B]
-248F; [22, 05, 15][08, 05, 18]
-324F; [22, 05, 1F][12, 05, 1F]
-1F19F; [22, 05, 2E][3D, 05, B4]
-33E7; [22, 05, 15][U+65E5, 10]
-32C7; [22, 05, 15][U+6708, 10]
-3360; [22, 05, 15][U+70B9, 10]
-
-0039; [24, 05, 05]
-0669; [24, 05, 05]
-06F9; [24, 05, 05]
-07C9; [24, 05, 05]
-096F; [24, 05, 05]
-09EF; [24, 05, 05]
-0A6F; [24, 05, 05]
-0AEF; [24, 05, 05]
-0B6F; [24, 05, 05]
-0BEF; [24, 05, 05]
-0C6F; [24, 05, 05]
-0CEF; [24, 05, 05]
-0D6F; [24, 05, 05]
-0DEF; [24, 05, 05]
-0E59; [24, 05, 05]
-0ED9; [24, 05, 05]
-0F29; [24, 05, 05]
-1049; [24, 05, 05]
-1099; [24, 05, 05]
-1371; [24, 05, 05]
-17E9; [24, 05, 05]
-17F9; [24, 05, 05]
-1819; [24, 05, 05]
-194F; [24, 05, 05]
-19D9; [24, 05, 05]
-1A89; [24, 05, 05]
-1A99; [24, 05, 05]
-1B59; [24, 05, 05]
-1BB9; [24, 05, 05]
-1C49; [24, 05, 05]
-1C59; [24, 05, 05]
-3029; [24, 05, 05]
-A629; [24, 05, 05]
-A8D9; [24, 05, 05]
-A909; [24, 05, 05]
-A9D9; [24, 05, 05]
-A9F9; [24, 05, 05]
-AA59; [24, 05, 05]
-ABF9; [24, 05, 05]
-1010F; [24, 05, 05]
-102E9; [24, 05, 05]
-104A9; [24, 05, 05]
-109C8; [24, 05, 05]
-10E68; [24, 05, 05]
-1105A; [24, 05, 05]
-1106F; [24, 05, 05]
-110F9; [24, 05, 05]
-1113F; [24, 05, 05]
-111D9; [24, 05, 05]
-111E9; [24, 05, 05]
-112F9; [24, 05, 05]
-11459; [24, 05, 05]
-114D9; [24, 05, 05]
-11659; [24, 05, 05]
-116C9; [24, 05, 05]
-11739; [24, 05, 05]
-118E9; [24, 05, 05]
-11C59; [24, 05, 05]
-11C62; [24, 05, 05]
-11D59; [24, 05, 05]
-12407; [24, 05, 05]
-1240E; [24, 05, 05]
-12414; [24, 05, 05]
-1241D; [24, 05, 05]
-1242B; [24, 05, 05]
-12446; [24, 05, 05]
-12447; [24, 05, 05]
-12448; [24, 05, 05]
-12449; [24, 05, 05]
-1246E; [24, 05, 05]
-16A69; [24, 05, 05]
-16B59; [24, 05, 05]
-1D368; [24, 05, 05]
-1E8CF; [24, 05, 05]
-1E959; [24, 05, 05]
-FF19; [24, 05, 10]
-0F32; [24, 05, 16]
-1D7D7; [24, 05, 1C]
-1D7E1; [24, 05, 1C]
-1D7EB; [24, 05, 1C]
-1D7F5; [24, 05, 1C]
-1D7FF; [24, 05, 1C]
-2468; [24, 05, 22]
-24FD; [24, 05, 22]
-277E; [24, 05, 22]
-2788; [24, 05, 22]
-2792; [24, 05, 22]
-2079; [24, 05, 28]
-2089; [24, 05, 2E]
-1F10A; [24, 05, 16][06, 05, 1B]
-2490; [24, 05, 16][08, 05, 18]
-33E8; [24, 05, 16][U+65E5, 10]
-32C8; [24, 05, 16][U+6708, 10]
-3361; [24, 05, 16][U+70B9, 10]
-
-FDD0 FF21; [26 02 02, 05, 05] # REORDER_RESERVED_BEFORE_LATIN first primary starts new lead byte
-
-FDD1 004C; [28 02 02, 05, 05] # LATIN first primary starts new lead byte
-
-0061; [29, 05, 05]
-FF41; [29, 05, 10]
-0363; [29, 05, 13]
-1D41A; [29, 05, 16]
-1D44E; [29, 05, 16]
-1D482; [29, 05, 16]
-1D4B6; [29, 05, 16]
-1D4EA; [29, 05, 16]
-1D51E; [29, 05, 16]
-1D552; [29, 05, 16]
-1D586; [29, 05, 16]
-1D5BA; [29, 05, 16]
-1D5EE; [29, 05, 16]
-1D622; [29, 05, 16]
-1D656; [29, 05, 16]
-1D68A; [29, 05, 16]
-24D0; [29, 05, 19]
-0041; [29, 05, 9C]
-FF21; [29, 05, 9F]
-1D400; [29, 05, A5]
-1D434; [29, 05, A5]
-1D468; [29, 05, A5]
-1D49C; [29, 05, A5]
-1D4D0; [29, 05, A5]
-1D504; [29, 05, A5]
-1D538; [29, 05, A5]
-1D56C; [29, 05, A5]
-1D5A0; [29, 05, A5]
-1D5D4; [29, 05, A5]
-1D608; [29, 05, A5]
-1D63C; [29, 05, A5]
-1D670; [29, 05, A5]
-24B6; [29, 05, A8]
-1F150; [29, 05, A8]
-00AA; [29, 05, 2B]
-1D43; [29, 05, 2B]
-2090; [29, 05, 2E]
-1D2C; [29, 05, B4]
-1F130; [29, 05, B4]
-1F170; [29, 05, B4]
-00E1; [29, 05, 05][, 88, 05]
-00C1; [29, 05, 9C][, 88, 05]
-00E0; [29, 05, 05][, 8A, 05]
-00C0; [29, 05, 9C][, 8A, 05]
-0103; [29, 05, 05][, 8C, 05]
-0102; [29, 05, 9C][, 8C, 05]
-1EAF; [29, 05, 05][, 8C, 05][, 88, 05]
-1EAE; [29, 05, 9C][, 8C, 05][, 88, 05]
-1EB1; [29, 05, 05][, 8C, 05][, 8A, 05]
-1EB0; [29, 05, 9C][, 8C, 05][, 8A, 05]
-1EB5; [29, 05, 05][, 8C, 05][, 9A, 05]
-1EB4; [29, 05, 9C][, 8C, 05][, 9A, 05]
-1EB3; [29, 05, 05][, 8C, 05][, B6, 05]
-1EB2; [29, 05, 9C][, 8C, 05][, B6, 05]
-00E2; [29, 05, 05][, 8E, 05]
-00C2; [29, 05, 9C][, 8E, 05]
-1EA5; [29, 05, 05][, 8E, 05][, 88, 05]
-1EA4; [29, 05, 9C][, 8E, 05][, 88, 05]
-1EA7; [29, 05, 05][, 8E, 05][, 8A, 05]
-1EA6; [29, 05, 9C][, 8E, 05][, 8A, 05]
-1EAB; [29, 05, 05][, 8E, 05][, 9A, 05]
-1EAA; [29, 05, 9C][, 8E, 05][, 9A, 05]
-1EA9; [29, 05, 05][, 8E, 05][, B6, 05]
-1EA8; [29, 05, 9C][, 8E, 05][, B6, 05]
-01CE; [29, 05, 05][, 90, 05]
-01CD; [29, 05, 9C][, 90, 05]
-00E5; [29, 05, 05][, 92, 05]
-00C5; [29, 05, 9C][, 92, 05]
-212B; [29, 05, 9C][, 92, 05]
-01FB; [29, 05, 05][, 92, 05][, 88, 05]
-01FA; [29, 05, 9C][, 92, 05][, 88, 05]
-00E4; [29, 05, 05][, 96, 05]
-1DF2; [29, 05, 13][, 96, 20]
-A79B; [29, 05, 13][, 96, 20]
-00C4; [29, 05, 9C][, 96, 05]
-A79A; [29, 05, A2][, 96, 20]
-01DF; [29, 05, 05][, 96, 05][, A4, 05]
-01DE; [29, 05, 9C][, 96, 05][, A4, 05]
-00E3; [29, 05, 05][, 9A, 05]
-00C3; [29, 05, 9C][, 9A, 05]
-0227; [29, 05, 05][, 9C, 05]
-0226; [29, 05, 9C][, 9C, 05]
-01E1; [29, 05, 05][, 9C, 05][, A4, 05]
-01E0; [29, 05, 9C][, 9C, 05][, A4, 05]
-0105; [29, 05, 05][, A2, 05]
-0104; [29, 05, 9C][, A2, 05]
-0101; [29, 05, 05][, A4, 05]
-0100; [29, 05, 9C][, A4, 05]
-1EA3; [29, 05, 05][, B6, 05]
-1EA2; [29, 05, 9C][, B6, 05]
-0201; [29, 05, 05][, B8, 05]
-0200; [29, 05, 9C][, B8, 05]
-0203; [29, 05, 05][, BC, 05]
-0202; [29, 05, 9C][, BC, 05]
-1EA1; [29, 05, 05][, C4, 05]
-1EA0; [29, 05, 9C][, C4, 05]
-1EB7; [29, 05, 05][, C4, 05][, 8C, 05]
-1EB6; [29, 05, 9C][, C4, 05][, 8C, 05]
-1EAD; [29, 05, 05][, C4, 05][, 8E, 05]
-1EAC; [29, 05, 9C][, C4, 05][, 8E, 05]
-1E01; [29, 05, 05][, C8, 05]
-1E00; [29, 05, 9C][, C8, 05]
-1DD3; [29, 70, 05]
-33C2; [29, 05, 31][08, 05, 30][41, 05, 31][08, 05, 30]
-2100; [29, 05, 13][0A 87, 05, 2E][2D, 05, 13]
-2101; [29, 05, 13][0A 87, 05, 2E][4D, 05, 13]
-214D; [29, 05, A2][0A 87, 05, 2E][4D, 05, A2]
-33DF; [29, 05, B4][0C 90, 05, 20][41, 05, 31]
-A733; [29, 05, 13][29, 05, 13]
-A732; [29, 05, A2][29, 05, A2]
-1F18E; [29, 05, B4][2B, 05, B1]
-00E6; [29, 70, 05][31, 05, 13]
-1DD4; [29, 70, 05][31, 05, 13]
-00C6; [29, 70, A0][31, 05, A2]
-1D2D; [29, 70, 2E][31, 05, 2B]
-01FD; [29, 70, 05][31, 05, 13][, 88, 05]
-01FC; [29, 70, A0][31, 05, A2][, 88, 05]
-01E3; [29, 70, 05][31, 05, 13][, A4, 05]
-01E2; [29, 70, A0][31, 05, A2][, A4, 05]
-1DD5; [29, 05, 13][45, 05, 13]
-A735; [29, 05, 13][45, 05, 13]
-A734; [29, 05, A2][45, 05, A2]
-A737; [29, 05, 13][51, 05, 13]
-A736; [29, 05, A2][51, 05, A2]
-3373; [29, 05, B4][51, 05, B1]
-1DD6; [29, 05, 13][53, 05, 13]
-A739; [29, 05, 13][53, 05, 13]
-A738; [29, 05, A2][53, 05, A2]
-A73B; [29, 70, 05][53, 05, 13]
-A73A; [29, 70, A0][53, 05, A2]
-A73D; [29, 05, 13][59, 05, 13]
-A73C; [29, 05, A2][59, 05, A2]
-1E9A; [29, 05, 13][5C 56, 05, 20]
-
-1D00; [2A 06, 05, 05]
-
-2C65; [2A 08, 05, 05]
-023A; [2A 08, 05, A0]
-
-1D8F; [2A 0A, 05, 05]
-
-1D01; [2A 0C, 05, 05]
-
-1D02; [2A 0E, 05, 05]
-1D46; [2A 0E, 05, 20]
-
-AB31; [2A 10, 05, 05]
-
-0250; [2A 12, 05, 05]
-2C6F; [2A 12, 05, A0]
-1D44; [2A 12, 05, 2E]
-
-0251; [2A 14, 05, 05]
-1DE7; [2A 14, 05, 10]
-2C6D; [2A 14, 05, 9E]
-1D45; [2A 14, 05, 2C]
-
-AB30; [2A 16, 05, 05]
-
-1D90; [2A 18, 05, 05]
-
-0252; [2A 1A, 05, 05]
-2C70; [2A 1A, 05, A0]
-1D9B; [2A 1A, 05, 2E]
-
-AB64; [2A 1C, 05, 05]
-
-0062; [2B, 05, 05]
-FF42; [2B, 05, 10]
-1DE8; [2B, 05, 13]
-1D41B; [2B, 05, 16]
-1D44F; [2B, 05, 16]
-1D483; [2B, 05, 16]
-1D4B7; [2B, 05, 16]
-1D4EB; [2B, 05, 16]
-1D51F; [2B, 05, 16]
-1D553; [2B, 05, 16]
-1D587; [2B, 05, 16]
-1D5BB; [2B, 05, 16]
-1D5EF; [2B, 05, 16]
-1D623; [2B, 05, 16]
-1D657; [2B, 05, 16]
-1D68B; [2B, 05, 16]
-24D1; [2B, 05, 19]
-0042; [2B, 05, 9C]
-FF22; [2B, 05, 9F]
-212C; [2B, 05, A5]
-1D401; [2B, 05, A5]
-1D435; [2B, 05, A5]
-1D469; [2B, 05, A5]
-1D4D1; [2B, 05, A5]
-1D505; [2B, 05, A5]
-1D539; [2B, 05, A5]
-1D56D; [2B, 05, A5]
-1D5A1; [2B, 05, A5]
-1D5D5; [2B, 05, A5]
-1D609; [2B, 05, A5]
-1D63D; [2B, 05, A5]
-1D671; [2B, 05, A5]
-24B7; [2B, 05, A8]
-1F151; [2B, 05, A8]
-1D47; [2B, 05, 2B]
-1D2E; [2B, 05, B1]
-1F131; [2B, 05, B1]
-1F171; [2B, 05, B1]
-1E03; [2B, 05, 05][, 9C, 05]
-1E02; [2B, 05, 9C][, 9C, 05]
-1E05; [2B, 05, 05][, C4, 05]
-1E04; [2B, 05, 9C][, C4, 05]
-1E07; [2B, 05, 05][, D2, 05]
-1E06; [2B, 05, 9C][, D2, 05]
-3374; [2B, 05, 2E][29, 05, 31][4B, 05, 31]
-33C3; [2B, 05, B1][49, 05, 34]
-
-0299; [2C 06, 05, 05]
-
-0180; [2C 08, 05, 05]
-0243; [2C 08, 05, A0]
-
-1D2F; [2C 0A, 05, 05]
-
-1D03; [2C 0C, 05, 05]
-
-1D6C; [2C 0E, 05, 05]
-
-A797; [2C 10, 05, 05]
-A796; [2C 10, 05, A0]
-
-1D80; [2C 12, 05, 05]
-
-0253; [2C 14, 05, 05]
-0181; [2C 14, 05, A0]
-
-0183; [2C 16, 05, 05]
-0182; [2C 16, 05, A0]
-
-A7B5; [2C 18, 05, 05]
-1DE9; [2C 18, 05, 20]
-A7B4; [2C 18, 05, AE]
-
-0063; [2D, 05, 05]
-FF43; [2D, 05, 10]
-0368; [2D, 05, 13]
-217D; [2D, 05, 13]
-1D41C; [2D, 05, 16]
-1D450; [2D, 05, 16]
-1D484; [2D, 05, 16]
-1D4B8; [2D, 05, 16]
-1D4EC; [2D, 05, 16]
-1D520; [2D, 05, 16]
-1D554; [2D, 05, 16]
-1D588; [2D, 05, 16]
-1D5BC; [2D, 05, 16]
-1D5F0; [2D, 05, 16]
-1D624; [2D, 05, 16]
-1D658; [2D, 05, 16]
-1D68C; [2D, 05, 16]
-24D2; [2D, 05, 19]
-0043; [2D, 05, 9C]
-FF23; [2D, 05, 9F]
-216D; [2D, 05, A2]
-2102; [2D, 05, A5]
-212D; [2D, 05, A5]
-1D402; [2D, 05, A5]
-1D436; [2D, 05, A5]
-1D46A; [2D, 05, A5]
-1D49E; [2D, 05, A5]
-1D4D2; [2D, 05, A5]
-1D56E; [2D, 05, A5]
-1D5A2; [2D, 05, A5]
-1D5D6; [2D, 05, A5]
-1D60A; [2D, 05, A5]
-1D63E; [2D, 05, A5]
-1D672; [2D, 05, A5]
-24B8; [2D, 05, A8]
-1F12B; [2D, 05, A8]
-1F152; [2D, 05, A8]
-1D9C; [2D, 05, 2B]
-1F132; [2D, 05, B1]
-1F172; [2D, 05, B1]
-0107; [2D, 05, 05][, 88, 05]
-0106; [2D, 05, 9C][, 88, 05]
-0109; [2D, 05, 05][, 8E, 05]
-0108; [2D, 05, 9C][, 8E, 05]
-010D; [2D, 05, 05][, 90, 05]
-010C; [2D, 05, 9C][, 90, 05]
-010B; [2D, 05, 05][, 9C, 05]
-010A; [2D, 05, 9C][, 9C, 05]
-00E7; [2D, 05, 05][, A0, 05]
-1DD7; [2D, 05, 13][, A0, 20]
-00C7; [2D, 05, 9C][, A0, 05]
-1E09; [2D, 05, 05][, A0, 05][, 88, 05]
-1E08; [2D, 05, 9C][, A0, 05][, 88, 05]
-2105; [2D, 05, 13][0A 87, 05, 2E][45, 05, 13]
-2106; [2D, 05, 13][0A 87, 05, 2E][51, 05, 13]
-33C6; [2D, 05, B1][0C 90, 05, 20][3D, 05, 31][35, 05, 2E]
-3388; [2D, 05, 2E][29, 05, 31][3F, 05, 31]
-33C4; [2D, 05, 2E][2D, 05, 2E]
-1F12D; [2D, 05, A8][2F, 05, A8]
-33C5; [2D, 05, 2E][2F, 05, 2E]
-1F191; [2D, 05, B1][3F, 05, B4]
-339D; [2D, 05, 2E][41, 05, 31]
-33A0; [2D, 05, 2E][41, 05, 31][16, 05, 2E]
-33A4; [2D, 05, 2E][41, 05, 31][18, 05, 2E]
-33C7; [2D, 05, B1][45, 05, 31][08, 05, 30]
-1F192; [2D, 05, B1][45, 05, B4][45, 05, B4][3F, 05, B4]
-
-1D04; [2E 06, 05, 05]
-
-023C; [2E 08, 05, 05]
-023B; [2E 08, 05, A0]
-
-A793; [2E 0A, 05, 05]
-A792; [2E 0A, 05, A0]
-
-A794; [2E 0C, 05, 05]
-
-0188; [2E 0E, 05, 05]
-0187; [2E 0E, 05, A0]
-
-0255; [2E 10, 05, 05]
-1D9D; [2E 10, 05, 2E]
-
-2184; [2E 12, 05, 05]
-2183; [2E 12, 05, A0]
-
-A73F; [2E 14, 05, 05]
-A73E; [2E 14, 05, A0]
-
-0064; [2F, 05, 05]
-FF44; [2F, 05, 10]
-0369; [2F, 05, 13]
-217E; [2F, 05, 13]
-2146; [2F, 05, 16]
-1D41D; [2F, 05, 16]
-1D451; [2F, 05, 16]
-1D485; [2F, 05, 16]
-1D4B9; [2F, 05, 16]
-1D4ED; [2F, 05, 16]
-1D521; [2F, 05, 16]
-1D555; [2F, 05, 16]
-1D589; [2F, 05, 16]
-1D5BD; [2F, 05, 16]
-1D5F1; [2F, 05, 16]
-1D625; [2F, 05, 16]
-1D659; [2F, 05, 16]
-1D68D; [2F, 05, 16]
-24D3; [2F, 05, 19]
-0044; [2F, 05, 9C]
-FF24; [2F, 05, 9F]
-216E; [2F, 05, A2]
-2145; [2F, 05, A5]
-1D403; [2F, 05, A5]
-1D437; [2F, 05, A5]
-1D46B; [2F, 05, A5]
-1D49F; [2F, 05, A5]
-1D4D3; [2F, 05, A5]
-1D507; [2F, 05, A5]
-1D53B; [2F, 05, A5]
-1D56F; [2F, 05, A5]
-1D5A3; [2F, 05, A5]
-1D5D7; [2F, 05, A5]
-1D60B; [2F, 05, A5]
-1D63F; [2F, 05, A5]
-1D673; [2F, 05, A5]
-24B9; [2F, 05, A8]
-1F153; [2F, 05, A8]
-1D48; [2F, 05, 2B]
-1F1A5; [2F, 05, 2E]
-1D30; [2F, 05, B1]
-1F133; [2F, 05, B1]
-1F173; [2F, 05, B1]
-010F; [2F, 05, 05][, 90, 05]
-010E; [2F, 05, 9C][, 90, 05]
-1E0B; [2F, 05, 05][, 9C, 05]
-1E0A; [2F, 05, 9C][, 9C, 05]
-1E11; [2F, 05, 05][, A0, 05]
-1E10; [2F, 05, 9C][, A0, 05]
-0111; [2F, 05, 05][, B2, 05]
-0110; [2F, 05, 9C][, B2, 05]
-1E0D; [2F, 05, 05][, C4, 05]
-1E0C; [2F, 05, 9C][, C4, 05]
-1E13; [2F, 05, 05][, CC, 05]
-1E12; [2F, 05, 9C][, CC, 05]
-1E0F; [2F, 05, 05][, D2, 05]
-1E0E; [2F, 05, 9C][, D2, 05]
-00F0; [2F, 70, 05]
-1DD9; [2F, 70, 05]
-00D0; [2F, 70, A0]
-1D9E; [2F, 70, 2E]
-1DD8; [2F, 78, 05]
-A77A; [2F, 78, 05]
-A779; [2F, 78, A0]
-3372; [2F, 05, 2E][29, 05, 31]
-0238; [2F, 05, 13][2B, 05, 13]
-33C8; [2F, 05, 2E][2B, 05, B1]
-1F190; [2F, 05, B1][3B, 05, B1]
-3397; [2F, 05, 2E][3F, 05, 31]
-3377; [2F, 05, 2E][41, 05, 31]
-3378; [2F, 05, 2E][41, 05, 31][16, 05, 2E]
-3379; [2F, 05, 2E][41, 05, 31][18, 05, 2E]
-01F3; [2F, 05, 13][5B, 05, 13]
-02A3; [2F, 05, 13][5B, 05, 13]
-01F2; [2F, 05, A2][5B, 05, 13]
-01F1; [2F, 05, A2][5B, 05, A2]
-01C6; [2F, 05, 13][5B, 05, 13][, 90, 20]
-01C5; [2F, 05, A2][5B, 05, 13][, 90, 20]
-01C4; [2F, 05, A2][5B, 05, A2][, 90, 20]
-02A5; [2F, 05, 13][5C 12, 05, 20]
-02A4; [2F, 05, 13][5C 1A, 05, 10]
-
-1D05; [30 06, 05, 05]
-
-1D06; [30 08, 05, 05]
-
-1D6D; [30 0A, 05, 05]
-
-1D81; [30 0C, 05, 05]
-
-0256; [30 0E, 05, 05]
-0189; [30 0E, 05, A0]
-
-0257; [30 10, 05, 05]
-018A; [30 10, 05, A0]
-
-1D91; [30 12, 05, 05]
-
-018C; [30 14, 05, 05]
-018B; [30 14, 05, A0]
-
-0221; [30 16, 05, 05]
-
-A771; [30 18, 05, 05]
-
-1E9F; [30 1A, 05, 05]
-
-0065; [31, 05, 05]
-FF45; [31, 05, 10]
-0364; [31, 05, 13]
-212F; [31, 05, 16]
-2147; [31, 05, 16]
-1D41E; [31, 05, 16]
-1D452; [31, 05, 16]
-1D486; [31, 05, 16]
-1D4EE; [31, 05, 16]
-1D522; [31, 05, 16]
-1D556; [31, 05, 16]
-1D58A; [31, 05, 16]
-1D5BE; [31, 05, 16]
-1D5F2; [31, 05, 16]
-1D626; [31, 05, 16]
-1D65A; [31, 05, 16]
-1D68E; [31, 05, 16]
-24D4; [31, 05, 19]
-0045; [31, 05, 9C]
-FF25; [31, 05, 9F]
-2130; [31, 05, A5]
-1D404; [31, 05, A5]
-1D438; [31, 05, A5]
-1D46C; [31, 05, A5]
-1D4D4; [31, 05, A5]
-1D508; [31, 05, A5]
-1D53C; [31, 05, A5]
-1D570; [31, 05, A5]
-1D5A4; [31, 05, A5]
-1D5D8; [31, 05, A5]
-1D60C; [31, 05, A5]
-1D640; [31, 05, A5]
-1D674; [31, 05, A5]
-24BA; [31, 05, A8]
-1F154; [31, 05, A8]
-1D49; [31, 05, 2B]
-2091; [31, 05, 2E]
-1D31; [31, 05, B4]
-1F134; [31, 05, B4]
-1F174; [31, 05, B4]
-00E9; [31, 05, 05][, 88, 05]
-00C9; [31, 05, 9C][, 88, 05]
-00E8; [31, 05, 05][, 8A, 05]
-00C8; [31, 05, 9C][, 8A, 05]
-0115; [31, 05, 05][, 8C, 05]
-0114; [31, 05, 9C][, 8C, 05]
-00EA; [31, 05, 05][, 8E, 05]
-00CA; [31, 05, 9C][, 8E, 05]
-1EBF; [31, 05, 05][, 8E, 05][, 88, 05]
-1EBE; [31, 05, 9C][, 8E, 05][, 88, 05]
-1EC1; [31, 05, 05][, 8E, 05][, 8A, 05]
-1EC0; [31, 05, 9C][, 8E, 05][, 8A, 05]
-1EC5; [31, 05, 05][, 8E, 05][, 9A, 05]
-1EC4; [31, 05, 9C][, 8E, 05][, 9A, 05]
-1EC3; [31, 05, 05][, 8E, 05][, B6, 05]
-1EC2; [31, 05, 9C][, 8E, 05][, B6, 05]
-011B; [31, 05, 05][, 90, 05]
-011A; [31, 05, 9C][, 90, 05]
-00EB; [31, 05, 05][, 96, 05]
-00CB; [31, 05, 9C][, 96, 05]
-1EBD; [31, 05, 05][, 9A, 05]
-1EBC; [31, 05, 9C][, 9A, 05]
-0117; [31, 05, 05][, 9C, 05]
-0116; [31, 05, 9C][, 9C, 05]
-0229; [31, 05, 05][, A0, 05]
-0228; [31, 05, 9C][, A0, 05]
-1E1D; [31, 05, 05][, A0, 05][, 8C, 05]
-1E1C; [31, 05, 9C][, A0, 05][, 8C, 05]
-0119; [31, 05, 05][, A2, 05]
-0118; [31, 05, 9C][, A2, 05]
-0113; [31, 05, 05][, A4, 05]
-0112; [31, 05, 9C][, A4, 05]
-1E17; [31, 05, 05][, A4, 05][, 88, 05]
-1E16; [31, 05, 9C][, A4, 05][, 88, 05]
-1E15; [31, 05, 05][, A4, 05][, 8A, 05]
-1E14; [31, 05, 9C][, A4, 05][, 8A, 05]
-1EBB; [31, 05, 05][, B6, 05]
-1EBA; [31, 05, 9C][, B6, 05]
-0205; [31, 05, 05][, B8, 05]
-0204; [31, 05, 9C][, B8, 05]
-0207; [31, 05, 05][, BC, 05]
-0206; [31, 05, 9C][, BC, 05]
-1EB9; [31, 05, 05][, C4, 05]
-1EB8; [31, 05, 9C][, C4, 05]
-1EC7; [31, 05, 05][, C4, 05][, 8E, 05]
-1EC6; [31, 05, 9C][, C4, 05][, 8E, 05]
-1E19; [31, 05, 05][, CC, 05]
-1E18; [31, 05, 9C][, CC, 05]
-1E1B; [31, 05, 05][, D0, 05]
-1E1A; [31, 05, 9C][, D0, 05]
-32CD; [31, 05, 31][4B, 05, 31][35, 05, 2E]
-32CE; [31, 05, 31][53, 05, B4]
-
-1D07; [32 06, 05, 05]
-
-AB32; [32 08, 05, 05]
-
-AB33; [32 0A, 05, 05]
-
-0247; [32 0C, 05, 05]
-0246; [32 0C, 05, A0]
-
-1D92; [32 0E, 05, 05]
-
-AB34; [32 10, 05, 05]
-
-2C78; [32 12, 05, 05]
-
-01DD; [32 14, 05, 05]
-018E; [32 14, 05, A0]
-1D32; [32 14, 05, AE]
-
-2C7B; [32 16, 05, 05]
-
-0259; [32 18, 05, 05]
-1DEA; [32 18, 05, 10]
-018F; [32 18, 05, 9B]
-1D4A; [32 18, 05, 26]
-2094; [32 18, 05, 31]
-
-1D95; [32 1A, 05, 05]
-
-025B; [32 1C, 05, 05]
-0190; [32 1C, 05, 90]
-2107; [32 1C, 05, 9E]
-1D4B; [32 1C, 05, 2C]
-
-1D93; [32 1E, 05, 05]
-
-0258; [32 20, 05, 05]
-
-025A; [32 22, 05, 05]
-
-025C; [32 24, 05, 05]
-A7AB; [32 24, 05, A0]
-1D9F; [32 24, 05, 2E]
-
-1D94; [32 26, 05, 05]
-
-1D08; [32 28, 05, 05]
-1D4C; [32 28, 05, 20]
-
-025D; [32 2A, 05, 05]
-
-025E; [32 2C, 05, 05]
-
-029A; [32 2E, 05, 05]
-
-0264; [32 30, 05, 05]
-
-0066; [33, 05, 05]
-FF46; [33, 05, 10]
-1DEB; [33, 05, 13]
-1D41F; [33, 05, 16]
-1D453; [33, 05, 16]
-1D487; [33, 05, 16]
-1D4BB; [33, 05, 16]
-1D4EF; [33, 05, 16]
-1D523; [33, 05, 16]
-1D557; [33, 05, 16]
-1D58B; [33, 05, 16]
-1D5BF; [33, 05, 16]
-1D5F3; [33, 05, 16]
-1D627; [33, 05, 16]
-1D65B; [33, 05, 16]
-1D68F; [33, 05, 16]
-24D5; [33, 05, 19]
-0046; [33, 05, 9C]
-FF26; [33, 05, 9F]
-2131; [33, 05, A5]
-1D405; [33, 05, A5]
-1D439; [33, 05, A5]
-1D46D; [33, 05, A5]
-1D4D5; [33, 05, A5]
-1D509; [33, 05, A5]
-1D53D; [33, 05, A5]
-1D571; [33, 05, A5]
-1D5A5; [33, 05, A5]
-1D5D9; [33, 05, A5]
-1D60D; [33, 05, A5]
-1D641; [33, 05, A5]
-1D675; [33, 05, A5]
-24BB; [33, 05, A8]
-1F155; [33, 05, A8]
-1DA0; [33, 05, 2B]
-1F135; [33, 05, B1]
-1F175; [33, 05, B1]
-1E1F; [33, 05, 05][, 9C, 05]
-1E1E; [33, 05, 9C][, 9C, 05]
-A77C; [33, 70, 05]
-A77B; [33, 70, A0]
-213B; [33, 05, A2][29, 05, A2][57, 05, A2]
-FB00; [33, 05, 13][33, 05, 13]
-FB03; [33, 05, 13][33, 05, 13][39, 05, 13]
-FB04; [33, 05, 13][33, 05, 13][3F, 05, 13]
-FB01; [33, 05, 13][39, 05, 13]
-FB02; [33, 05, 13][3F, 05, 13]
-3399; [33, 05, 2E][41, 05, 31]
-02A9; [33, 05, 13][44 1E, 05, 10]
-1F193; [33, 05, B1][4B, 05, B4][31, 05, B4][31, 05, B4]
-
-A730; [34 06, 05, 05]
-
-AB35; [34 08, 05, 05]
-
-A799; [34 0A, 05, 05]
-A798; [34 0A, 05, A0]
-
-1D6E; [34 0C, 05, 05]
-
-1D82; [34 0E, 05, 05]
-
-0192; [34 10, 05, 05]
-0191; [34 10, 05, A0]
-
-214E; [34 12, 05, 05]
-2132; [34 12, 05, A0]
-
-A7FB; [34 14, 05, 05]
-
-0067; [35, 05, 05]
-FF47; [35, 05, 10]
-1DDA; [35, 05, 13]
-210A; [35, 05, 16]
-1D420; [35, 05, 16]
-1D454; [35, 05, 16]
-1D488; [35, 05, 16]
-1D4F0; [35, 05, 16]
-1D524; [35, 05, 16]
-1D558; [35, 05, 16]
-1D58C; [35, 05, 16]
-1D5C0; [35, 05, 16]
-1D5F4; [35, 05, 16]
-1D628; [35, 05, 16]
-1D65C; [35, 05, 16]
-1D690; [35, 05, 16]
-24D6; [35, 05, 19]
-0047; [35, 05, 9C]
-FF27; [35, 05, 9F]
-1D406; [35, 05, A5]
-1D43A; [35, 05, A5]
-1D46E; [35, 05, A5]
-1D4A2; [35, 05, A5]
-1D4D6; [35, 05, A5]
-1D50A; [35, 05, A5]
-1D53E; [35, 05, A5]
-1D572; [35, 05, A5]
-1D5A6; [35, 05, A5]
-1D5DA; [35, 05, A5]
-1D60E; [35, 05, A5]
-1D642; [35, 05, A5]
-1D676; [35, 05, A5]
-24BC; [35, 05, A8]
-1F156; [35, 05, A8]
-1D4D; [35, 05, 2B]
-1D33; [35, 05, B1]
-1F136; [35, 05, B1]
-1F176; [35, 05, B1]
-01F5; [35, 05, 05][, 88, 05]
-01F4; [35, 05, 9C][, 88, 05]
-011F; [35, 05, 05][, 8C, 05]
-011E; [35, 05, 9C][, 8C, 05]
-011D; [35, 05, 05][, 8E, 05]
-011C; [35, 05, 9C][, 8E, 05]
-01E7; [35, 05, 05][, 90, 05]
-01E6; [35, 05, 9C][, 90, 05]
-0121; [35, 05, 05][, 9C, 05]
-0120; [35, 05, 9C][, 9C, 05]
-0123; [35, 05, 05][, A0, 05]
-0122; [35, 05, 9C][, A0, 05]
-1E21; [35, 05, 05][, A4, 05]
-1E20; [35, 05, 9C][, A4, 05]
-A7A1; [35, 05, 13][, AA, 20]
-A7A0; [35, 05, A2][, AA, 20]
-1D79; [35, 70, 05]
-A77D; [35, 70, A0]
-33FF; [35, 05, 2E][29, 05, 31][3F, 05, 31]
-3387; [35, 05, B1][2B, 05, B1]
-3393; [35, 05, B1][37, 05, B4][5B, 05, 2E]
-33AC; [35, 05, B1][47, 05, B4][29, 05, 31]
-33C9; [35, 05, B1][59, 05, 2E]
-
-0261; [36 06, 05, 05]
-A7AC; [36 06, 05, A0]
-1DA2; [36 06, 05, 2E]
-
-AB36; [36 08, 05, 05]
-
-0262; [36 0A, 05, 05]
-1DDB; [36 0A, 05, 20]
-
-01E5; [36 0C, 05, 05]
-01E4; [36 0C, 05, A0]
-
-1D83; [36 0E, 05, 05]
-
-0260; [36 10, 05, 05]
-0193; [36 10, 05, A0]
-
-029B; [36 12, 05, 05]
-
-1D77; [36 14, 05, 05]
-
-A77F; [36 16, 05, 05]
-A77E; [36 16, 05, A0]
-
-0263; [36 18, 05, 05]
-0194; [36 18, 05, A0]
-02E0; [36 18, 05, 2E]
-
-01A3; [36 1A, 05, 05]
-01A2; [36 1A, 05, A0]
-
-0068; [37, 05, 05]
-FF48; [37, 05, 10]
-036A; [37, 05, 13]
-210E; [37, 05, 16]
-1D421; [37, 05, 16]
-1D489; [37, 05, 16]
-1D4BD; [37, 05, 16]
-1D4F1; [37, 05, 16]
-1D525; [37, 05, 16]
-1D559; [37, 05, 16]
-1D58D; [37, 05, 16]
-1D5C1; [37, 05, 16]
-1D5F5; [37, 05, 16]
-1D629; [37, 05, 16]
-1D65D; [37, 05, 16]
-1D691; [37, 05, 16]
-24D7; [37, 05, 19]
-0048; [37, 05, 9C]
-FF28; [37, 05, 9F]
-210B; [37, 05, A5]
-210C; [37, 05, A5]
-210D; [37, 05, A5]
-1D407; [37, 05, A5]
-1D43B; [37, 05, A5]
-1D46F; [37, 05, A5]
-1D4D7; [37, 05, A5]
-1D573; [37, 05, A5]
-1D5A7; [37, 05, A5]
-1D5DB; [37, 05, A5]
-1D60F; [37, 05, A5]
-1D643; [37, 05, A5]
-1D677; [37, 05, A5]
-24BD; [37, 05, A8]
-1F157; [37, 05, A8]
-02B0; [37, 05, 2B]
-2095; [37, 05, 2E]
-1D34; [37, 05, B4]
-1F137; [37, 05, B4]
-1F177; [37, 05, B4]
-0125; [37, 05, 05][, 8E, 05]
-0124; [37, 05, 9C][, 8E, 05]
-021F; [37, 05, 05][, 90, 05]
-021E; [37, 05, 9C][, 90, 05]
-1E27; [37, 05, 05][, 96, 05]
-1E26; [37, 05, 9C][, 96, 05]
-1E23; [37, 05, 05][, 9C, 05]
-1E22; [37, 05, 9C][, 9C, 05]
-1E29; [37, 05, 05][, A0, 05]
-1E28; [37, 05, 9C][, A0, 05]
-0127; [37, 05, 05][, B2, 05]
-210F; [37, 05, 05][, B2, 05]
-0126; [37, 05, 9C][, B2, 05]
-A7F8; [37, 05, 2B][, B2, 20]
-1E25; [37, 05, 05][, C4, 05]
-1E24; [37, 05, 9C][, C4, 05]
-1E2B; [37, 05, 05][, CE, 05]
-1E2A; [37, 05, 9C][, CE, 05]
-1E96; [37, 05, 05][, D2, 05]
-33CA; [37, 05, 31][29, 05, 31]
-1F1A6; [37, 05, B4][2D, 05, 2E]
-1F1A7; [37, 05, B4][2F, 05, 2E][4B, 05, B4]
-32CC; [37, 05, B4][35, 05, 2E]
-1F1A8; [37, 05, B4][39, 05, 31][04, 05, 30][4B, 05, B4][31, 05, 31][4D, 05, 31]
-33CB; [37, 05, B4][47, 05, B4]
-3371; [37, 05, 31][47, 05, B4][29, 05, 31]
-1F14A; [37, 05, B4][53, 05, B4]
-3390; [37, 05, B4][5B, 05, 2E]
-
-029C; [38 06, 05, 05]
-
-0195; [38 08, 05, 05]
-01F6; [38 08, 05, A0]
-
-A795; [38 0A, 05, 05]
-
-0266; [38 0C, 05, 05]
-A7AA; [38 0C, 05, A0]
-02B1; [38 0C, 05, 2E]
-
-2C68; [38 0E, 05, 05]
-2C67; [38 0E, 05, A0]
-
-2C76; [38 10, 05, 05]
-2C75; [38 10, 05, A0]
-
-A727; [38 12, 05, 05]
-A726; [38 12, 05, A0]
-AB5C; [38 12, 05, 2E]
-
-0267; [38 14, 05, 05]
-
-02BB; [38 16, 05, 05]
-
-02BD; [38 18, 05, 05]
-
-0069; [39, 05, 05]
-FF49; [39, 05, 10]
-0365; [39, 05, 13]
-2170; [39, 05, 13]
-2139; [39, 05, 16]
-2148; [39, 05, 16]
-1D422; [39, 05, 16]
-1D456; [39, 05, 16]
-1D48A; [39, 05, 16]
-1D4BE; [39, 05, 16]
-1D4F2; [39, 05, 16]
-1D526; [39, 05, 16]
-1D55A; [39, 05, 16]
-1D58E; [39, 05, 16]
-1D5C2; [39, 05, 16]
-1D5F6; [39, 05, 16]
-1D62A; [39, 05, 16]
-1D65E; [39, 05, 16]
-1D692; [39, 05, 16]
-24D8; [39, 05, 19]
-0049; [39, 05, 9C]
-FF29; [39, 05, 9F]
-2160; [39, 05, A2]
-2110; [39, 05, A5]
-2111; [39, 05, A5]
-1D408; [39, 05, A5]
-1D43C; [39, 05, A5]
-1D470; [39, 05, A5]
-1D4D8; [39, 05, A5]
-1D540; [39, 05, A5]
-1D574; [39, 05, A5]
-1D5A8; [39, 05, A5]
-1D5DC; [39, 05, A5]
-1D610; [39, 05, A5]
-1D644; [39, 05, A5]
-1D678; [39, 05, A5]
-24BE; [39, 05, A8]
-1F158; [39, 05, A8]
-2071; [39, 05, 2B]
-1D62; [39, 05, 2E]
-1D35; [39, 05, B4]
-1F138; [39, 05, B4]
-1F178; [39, 05, B4]
-00ED; [39, 05, 05][, 88, 05]
-00CD; [39, 05, 9C][, 88, 05]
-00EC; [39, 05, 05][, 8A, 05]
-00CC; [39, 05, 9C][, 8A, 05]
-012D; [39, 05, 05][, 8C, 05]
-012C; [39, 05, 9C][, 8C, 05]
-00EE; [39, 05, 05][, 8E, 05]
-00CE; [39, 05, 9C][, 8E, 05]
-01D0; [39, 05, 05][, 90, 05]
-01CF; [39, 05, 9C][, 90, 05]
-00EF; [39, 05, 05][, 96, 05]
-00CF; [39, 05, 9C][, 96, 05]
-1E2F; [39, 05, 05][, 96, 05][, 88, 05]
-1E2E; [39, 05, 9C][, 96, 05][, 88, 05]
-0129; [39, 05, 05][, 9A, 05]
-0128; [39, 05, 9C][, 9A, 05]
-0130; [39, 05, 9C][, 9C, 05]
-012F; [39, 05, 05][, A2, 05]
-012E; [39, 05, 9C][, A2, 05]
-012B; [39, 05, 05][, A4, 05]
-012A; [39, 05, 9C][, A4, 05]
-1EC9; [39, 05, 05][, B6, 05]
-1EC8; [39, 05, 9C][, B6, 05]
-0209; [39, 05, 05][, B8, 05]
-0208; [39, 05, 9C][, B8, 05]
-020B; [39, 05, 05][, BC, 05]
-020A; [39, 05, 9C][, BC, 05]
-1ECB; [39, 05, 05][, C4, 05]
-1ECA; [39, 05, 9C][, C4, 05]
-1E2D; [39, 05, 05][, D0, 05]
-1E2C; [39, 05, 9C][, D0, 05]
-1F18B; [39, 05, B4][2D, 05, B1]
-1F194; [39, 05, B4][2F, 05, B1]
-2171; [39, 05, 13][39, 05, 13]
-2161; [39, 05, A2][39, 05, A2]
-2172; [39, 05, 13][39, 05, 13][39, 05, 13]
-2162; [39, 05, A2][39, 05, A2][39, 05, A2]
-0133; [39, 05, 13][3B, 05, 13]
-0132; [39, 05, A2][3B, 05, A2]
-33CC; [39, 05, 31][43, 05, 31]
-337A; [39, 05, B4][51, 05, B1]
-2173; [39, 05, 13][53, 05, 13]
-2163; [39, 05, A2][53, 05, A2]
-2178; [39, 05, 13][57, 05, 13]
-2168; [39, 05, A2][57, 05, A2]
-
-0131; [3A 06, 05, 05]
-1D6A4; [3A 06, 05, 20]
-
-026A; [3A 08, 05, 05]
-A7AE; [3A 08, 05, A0]
-1DA6; [3A 08, 05, 2E]
-
-A7FE; [3A 0A, 05, 05]
-
-A7F7; [3A 0C, 05, 05]
-
-1D09; [3A 0E, 05, 05]
-1D4E; [3A 0E, 05, 20]
-
-0268; [3A 10, 05, 05]
-0197; [3A 10, 05, A0]
-1DA4; [3A 10, 05, 2E]
-
-1D7B; [3A 12, 05, 05]
-1DA7; [3A 12, 05, 20]
-
-1D96; [3A 14, 05, 05]
-
-0269; [3A 16, 05, 05]
-0196; [3A 16, 05, A0]
-1DA5; [3A 16, 05, 2E]
-
-1D7C; [3A 18, 05, 05]
-
-006A; [3B, 05, 05]
-FF4A; [3B, 05, 10]
-2149; [3B, 05, 16]
-1D423; [3B, 05, 16]
-1D457; [3B, 05, 16]
-1D48B; [3B, 05, 16]
-1D4BF; [3B, 05, 16]
-1D4F3; [3B, 05, 16]
-1D527; [3B, 05, 16]
-1D55B; [3B, 05, 16]
-1D58F; [3B, 05, 16]
-1D5C3; [3B, 05, 16]
-1D5F7; [3B, 05, 16]
-1D62B; [3B, 05, 16]
-1D65F; [3B, 05, 16]
-1D693; [3B, 05, 16]
-24D9; [3B, 05, 19]
-004A; [3B, 05, 9C]
-FF2A; [3B, 05, 9F]
-1D409; [3B, 05, A5]
-1D43D; [3B, 05, A5]
-1D471; [3B, 05, A5]
-1D4A5; [3B, 05, A5]
-1D4D9; [3B, 05, A5]
-1D50D; [3B, 05, A5]
-1D541; [3B, 05, A5]
-1D575; [3B, 05, A5]
-1D5A9; [3B, 05, A5]
-1D5DD; [3B, 05, A5]
-1D611; [3B, 05, A5]
-1D645; [3B, 05, A5]
-1D679; [3B, 05, A5]
-24BF; [3B, 05, A8]
-1F159; [3B, 05, A8]
-02B2; [3B, 05, 2B]
-2C7C; [3B, 05, 2E]
-1D36; [3B, 05, B1]
-1F139; [3B, 05, B1]
-1F179; [3B, 05, B1]
-0135; [3B, 05, 05][, 8E, 05]
-0134; [3B, 05, 9C][, 8E, 05]
-01F0; [3B, 05, 05][, 90, 05]
-
-0237; [3C 06, 05, 05]
-1D6A5; [3C 06, 05, 20]
-
-1D0A; [3C 08, 05, 05]
-
-0249; [3C 0A, 05, 05]
-0248; [3C 0A, 05, A0]
-
-029D; [3C 0C, 05, 05]
-A7B2; [3C 0C, 05, A0]
-1DA8; [3C 0C, 05, 2E]
-
-025F; [3C 0E, 05, 05]
-1DA1; [3C 0E, 05, 20]
-
-0284; [3C 10, 05, 05]
-
-006B; [3D, 05, 05]
-FF4B; [3D, 05, 10]
-1DDC; [3D, 05, 13]
-1D424; [3D, 05, 16]
-1D458; [3D, 05, 16]
-1D48C; [3D, 05, 16]
-1D4C0; [3D, 05, 16]
-1D4F4; [3D, 05, 16]
-1D528; [3D, 05, 16]
-1D55C; [3D, 05, 16]
-1D590; [3D, 05, 16]
-1D5C4; [3D, 05, 16]
-1D5F8; [3D, 05, 16]
-1D62C; [3D, 05, 16]
-1D660; [3D, 05, 16]
-1D694; [3D, 05, 16]
-24DA; [3D, 05, 19]
-004B; [3D, 05, 9C]
-212A; [3D, 05, 9C]
-FF2B; [3D, 05, 9F]
-1D40A; [3D, 05, A5]
-1D43E; [3D, 05, A5]
-1D472; [3D, 05, A5]
-1D4A6; [3D, 05, A5]
-1D4DA; [3D, 05, A5]
-1D50E; [3D, 05, A5]
-1D542; [3D, 05, A5]
-1D576; [3D, 05, A5]
-1D5AA; [3D, 05, A5]
-1D5DE; [3D, 05, A5]
-1D612; [3D, 05, A5]
-1D646; [3D, 05, A5]
-1D67A; [3D, 05, A5]
-24C0; [3D, 05, A8]
-1F15A; [3D, 05, A8]
-1D4F; [3D, 05, 2B]
-2096; [3D, 05, 2E]
-1D37; [3D, 05, B4]
-1F13A; [3D, 05, B4]
-1F17A; [3D, 05, B4]
-1E31; [3D, 05, 05][, 88, 05]
-1E30; [3D, 05, 9C][, 88, 05]
-01E9; [3D, 05, 05][, 90, 05]
-01E8; [3D, 05, 9C][, 90, 05]
-0137; [3D, 05, 05][, A0, 05]
-0136; [3D, 05, 9C][, A0, 05]
-A7A3; [3D, 05, 13][, AA, 20]
-A7A2; [3D, 05, A2][, AA, 20]
-1E33; [3D, 05, 05][, C4, 05]
-1E32; [3D, 05, 9C][, C4, 05]
-1E35; [3D, 05, 05][, D2, 05]
-1E34; [3D, 05, 9C][, D2, 05]
-3384; [3D, 05, 31][29, 05, B4]
-3385; [3D, 05, B4][2B, 05, B1]
-3389; [3D, 05, 31][2D, 05, 2E][29, 05, 31][3F, 05, 31]
-338F; [3D, 05, 31][35, 05, 2E]
-3391; [3D, 05, 31][37, 05, B4][5B, 05, 2E]
-33CD; [3D, 05, B4][3D, 05, B4]
-3398; [3D, 05, 31][3F, 05, 31]
-339E; [3D, 05, 31][41, 05, 31]
-33CE; [3D, 05, B4][41, 05, B4]
-33A2; [3D, 05, 31][41, 05, 31][16, 05, 2E]
-33A6; [3D, 05, 31][41, 05, 31][18, 05, 2E]
-33AA; [3D, 05, 31][47, 05, B4][29, 05, 31]
-33CF; [3D, 05, 31][4F, 05, 31]
-33B8; [3D, 05, 31][53, 05, B4]
-33BE; [3D, 05, 31][55, 05, B8]
-33C0; [3D, 05, 31][5F 56, 05, B1]
-
-1D0B; [3E 06, 05, 05]
-
-1D84; [3E 08, 05, 05]
-
-0199; [3E 0A, 05, 05]
-0198; [3E 0A, 05, A0]
-
-2C6A; [3E 0C, 05, 05]
-2C69; [3E 0C, 05, A0]
-
-A741; [3E 0E, 05, 05]
-A740; [3E 0E, 05, A0]
-
-A743; [3E 10, 05, 05]
-A742; [3E 10, 05, A0]
-
-A745; [3E 12, 05, 05]
-A744; [3E 12, 05, A0]
-
-029E; [3E 14, 05, 05]
-A7B0; [3E 14, 05, A0]
-
-006C; [3F, 05, 05]
-FF4C; [3F, 05, 10]
-1DDD; [3F, 05, 13]
-217C; [3F, 05, 13]
-2113; [3F, 05, 16]
-1D425; [3F, 05, 16]
-1D459; [3F, 05, 16]
-1D48D; [3F, 05, 16]
-1D4C1; [3F, 05, 16]
-1D4F5; [3F, 05, 16]
-1D529; [3F, 05, 16]
-1D55D; [3F, 05, 16]
-1D591; [3F, 05, 16]
-1D5C5; [3F, 05, 16]
-1D5F9; [3F, 05, 16]
-1D62D; [3F, 05, 16]
-1D661; [3F, 05, 16]
-1D695; [3F, 05, 16]
-24DB; [3F, 05, 19]
-004C; [3F, 05, 9C]
-FF2C; [3F, 05, 9F]
-216C; [3F, 05, A2]
-2112; [3F, 05, A5]
-1D40B; [3F, 05, A5]
-1D43F; [3F, 05, A5]
-1D473; [3F, 05, A5]
-1D4DB; [3F, 05, A5]
-1D50F; [3F, 05, A5]
-1D543; [3F, 05, A5]
-1D577; [3F, 05, A5]
-1D5AB; [3F, 05, A5]
-1D5DF; [3F, 05, A5]
-1D613; [3F, 05, A5]
-1D647; [3F, 05, A5]
-1D67B; [3F, 05, A5]
-24C1; [3F, 05, A8]
-1F15B; [3F, 05, A8]
-02E1; [3F, 05, 2B]
-2097; [3F, 05, 2E]
-1D38; [3F, 05, B4]
-1F13B; [3F, 05, B4]
-1F17B; [3F, 05, B4]
-013A; [3F, 05, 05][, 88, 05]
-0139; [3F, 05, 9C][, 88, 05]
-013E; [3F, 05, 05][, 90, 05]
-013D; [3F, 05, 9C][, 90, 05]
-013C; [3F, 05, 05][, A0, 05]
-013B; [3F, 05, 9C][, A0, 05]
-0142; [3F, 05, 05][, B2, 05]
-0141; [3F, 05, 9C][, B2, 05]
-1E37; [3F, 05, 05][, C4, 05]
-1E36; [3F, 05, 9C][, C4, 05]
-1E39; [3F, 05, 05][, C4, 05][, A4, 05]
-1E38; [3F, 05, 9C][, C4, 05][, A4, 05]
-1E3D; [3F, 05, 05][, CC, 05]
-1E3C; [3F, 05, 9C][, CC, 05]
-1E3B; [3F, 05, 05][, D2, 05]
-1E3A; [3F, 05, 9C][, D2, 05]
-0140; [3F, 05, 05][, FB B4, 05]
-013F; [3F, 05, 9C][, FB B4, 05]
-01C9; [3F, 05, 13][3B, 05, 13]
-01C8; [3F, 05, A2][3B, 05, 13]
-01C7; [3F, 05, A2][3B, 05, A2]
-1EFB; [3F, 05, 13][3F, 05, 13]
-1EFA; [3F, 05, A2][3F, 05, A2]
-33D0; [3F, 05, 31][41, 05, 31]
-33D1; [3F, 05, 31][43, 05, 31]
-33D2; [3F, 05, 31][45, 05, 31][35, 05, 2E]
-1F1A9; [3F, 05, B4][45, 05, 31][4D, 05, 31][4D, 05, 31][3F, 05, 31][31, 05, 31][4D, 05, 31][4D, 05, 31]
-02AA; [3F, 05, 13][4D, 05, 13]
-32CF; [3F, 05, B4][4F, 05, B4][2F, 05, B1]
-33D3; [3F, 05, 31][57, 05, 31]
-02AB; [3F, 05, 13][5B, 05, 13]
-
-029F; [40 06, 05, 05]
-1DDE; [40 06, 05, 20]
-1DAB; [40 06, 05, 2E]
-
-A747; [40 08, 05, 05]
-A746; [40 08, 05, A0]
-
-1D0C; [40 0A, 05, 05]
-
-A749; [40 0C, 05, 05]
-A748; [40 0C, 05, A0]
-
-019A; [40 0E, 05, 05]
-023D; [40 0E, 05, A0]
-
-2C61; [40 10, 05, 05]
-2C60; [40 10, 05, A0]
-
-026B; [40 12, 05, 05]
-2C62; [40 12, 05, A0]
-AB5E; [40 12, 05, 2E]
-
-AB38; [40 14, 05, 05]
-1DEC; [40 14, 05, 20]
-
-AB39; [40 16, 05, 05]
-
-026C; [40 18, 05, 05]
-A7AD; [40 18, 05, A0]
-
-AB37; [40 1A, 05, 05]
-AB5D; [40 1A, 05, 20]
-
-1D85; [40 1C, 05, 05]
-1DAA; [40 1C, 05, 20]
-
-026D; [40 1E, 05, 05]
-1DA9; [40 1E, 05, 20]
-
-A78E; [40 20, 05, 05]
-
-0234; [40 22, 05, 05]
-
-A772; [40 24, 05, 05]
-
-026E; [40 26, 05, 05]
-
-A781; [40 28, 05, 05]
-A780; [40 28, 05, A0]
-
-019B; [40 2A, 05, 05]
-
-028E; [40 2C, 05, 05]
-
-006D; [41, 05, 05]
-FF4D; [41, 05, 10]
-036B; [41, 05, 13]
-217F; [41, 05, 13]
-1D426; [41, 05, 16]
-1D45A; [41, 05, 16]
-1D48E; [41, 05, 16]
-1D4C2; [41, 05, 16]
-1D4F6; [41, 05, 16]
-1D52A; [41, 05, 16]
-1D55E; [41, 05, 16]
-1D592; [41, 05, 16]
-1D5C6; [41, 05, 16]
-1D5FA; [41, 05, 16]
-1D62E; [41, 05, 16]
-1D662; [41, 05, 16]
-1D696; [41, 05, 16]
-24DC; [41, 05, 19]
-004D; [41, 05, 9C]
-FF2D; [41, 05, 9F]
-216F; [41, 05, A2]
-2133; [41, 05, A5]
-1D40C; [41, 05, A5]
-1D440; [41, 05, A5]
-1D474; [41, 05, A5]
-1D4DC; [41, 05, A5]
-1D510; [41, 05, A5]
-1D544; [41, 05, A5]
-1D578; [41, 05, A5]
-1D5AC; [41, 05, A5]
-1D5E0; [41, 05, A5]
-1D614; [41, 05, A5]
-1D648; [41, 05, A5]
-1D67C; [41, 05, A5]
-24C2; [41, 05, A8]
-1F15C; [41, 05, A8]
-1D50; [41, 05, 2B]
-2098; [41, 05, 2E]
-1D39; [41, 05, B4]
-1F13C; [41, 05, B4]
-1F17C; [41, 05, B4]
-1E3F; [41, 05, 05][, 88, 05]
-1E3E; [41, 05, 9C][, 88, 05]
-1E41; [41, 05, 05][, 9C, 05]
-1E40; [41, 05, 9C][, 9C, 05]
-1E43; [41, 05, 05][, C4, 05]
-1E42; [41, 05, 9C][, C4, 05]
-33A7; [41, 05, 31][0C 90, 05, 20][4D, 05, 31]
-33A8; [41, 05, 31][0C 90, 05, 20][4D, 05, 31][16, 05, 2E]
-33A1; [41, 05, 31][16, 05, 2E]
-33A5; [41, 05, 31][18, 05, 2E]
-3383; [41, 05, 31][29, 05, B4]
-33D4; [41, 05, 31][2B, 05, 2E]
-3386; [41, 05, B4][2B, 05, B1]
-1F16A; [41, 05, 2B][2D, 05, 2B]
-1F16B; [41, 05, 2B][2F, 05, 2B]
-338E; [41, 05, 31][35, 05, 2E]
-3392; [41, 05, B4][37, 05, B4][5B, 05, 2E]
-33D5; [41, 05, 31][39, 05, 31][3F, 05, 31]
-3396; [41, 05, 31][3F, 05, 31]
-339C; [41, 05, 31][41, 05, 31]
-339F; [41, 05, 31][41, 05, 31][16, 05, 2E]
-33A3; [41, 05, 31][41, 05, 31][18, 05, 2E]
-33D6; [41, 05, 31][45, 05, 31][3F, 05, 31]
-33AB; [41, 05, B4][47, 05, B4][29, 05, 31]
-33B3; [41, 05, 31][4D, 05, 31]
-33B7; [41, 05, 31][53, 05, B4]
-33B9; [41, 05, B4][53, 05, B4]
-1F14B; [41, 05, B4][53, 05, B4]
-33BD; [41, 05, 31][55, 05, B8]
-33BF; [41, 05, B4][55, 05, B8]
-33C1; [41, 05, B4][5F 56, 05, B1]
-
-1D0D; [42 06, 05, 05]
-1DDF; [42 06, 05, 20]
-
-1D6F; [42 08, 05, 05]
-
-1D86; [42 0A, 05, 05]
-
-0271; [42 0C, 05, 05]
-2C6E; [42 0C, 05, A0]
-1DAC; [42 0C, 05, 2E]
-
-AB3A; [42 0E, 05, 05]
-
-A7FD; [42 10, 05, 05]
-
-A7FF; [42 12, 05, 05]
-
-A773; [42 14, 05, 05]
-
-006E; [43, 05, 05]
-FF4E; [43, 05, 10]
-1DE0; [43, 05, 13]
-1D427; [43, 05, 16]
-1D45B; [43, 05, 16]
-1D48F; [43, 05, 16]
-1D4C3; [43, 05, 16]
-1D4F7; [43, 05, 16]
-1D52B; [43, 05, 16]
-1D55F; [43, 05, 16]
-1D593; [43, 05, 16]
-1D5C7; [43, 05, 16]
-1D5FB; [43, 05, 16]
-1D62F; [43, 05, 16]
-1D663; [43, 05, 16]
-1D697; [43, 05, 16]
-24DD; [43, 05, 19]
-004E; [43, 05, 9C]
-FF2E; [43, 05, 9F]
-2115; [43, 05, A5]
-1D40D; [43, 05, A5]
-1D441; [43, 05, A5]
-1D475; [43, 05, A5]
-1D4A9; [43, 05, A5]
-1D4DD; [43, 05, A5]
-1D511; [43, 05, A5]
-1D579; [43, 05, A5]
-1D5AD; [43, 05, A5]
-1D5E1; [43, 05, A5]
-1D615; [43, 05, A5]
-1D649; [43, 05, A5]
-1D67D; [43, 05, A5]
-24C3; [43, 05, A8]
-1F15D; [43, 05, A8]
-207F; [43, 05, 2B]
-2099; [43, 05, 2E]
-1D3A; [43, 05, B4]
-1F13D; [43, 05, B4]
-1F17D; [43, 05, B4]
-0144; [43, 05, 05][, 88, 05]
-0143; [43, 05, 9C][, 88, 05]
-01F9; [43, 05, 05][, 8A, 05]
-01F8; [43, 05, 9C][, 8A, 05]
-0148; [43, 05, 05][, 90, 05]
-0147; [43, 05, 9C][, 90, 05]
-00F1; [43, 05, 05][, 9A, 05]
-00D1; [43, 05, 9C][, 9A, 05]
-1E45; [43, 05, 05][, 9C, 05]
-1E44; [43, 05, 9C][, 9C, 05]
-0146; [43, 05, 05][, A0, 05]
-0145; [43, 05, 9C][, A0, 05]
-A7A5; [43, 05, 13][, AA, 20]
-A7A4; [43, 05, A2][, AA, 20]
-1E47; [43, 05, 05][, C4, 05]
-1E46; [43, 05, 9C][, C4, 05]
-1E4B; [43, 05, 05][, CC, 05]
-1E4A; [43, 05, 9C][, CC, 05]
-1E49; [43, 05, 05][, D2, 05]
-1E48; [43, 05, 9C][, D2, 05]
-3381; [43, 05, 31][29, 05, B4]
-1F195; [43, 05, B4][31, 05, B4][55, 05, B8]
-338B; [43, 05, 31][33, 05, B1]
-1F196; [43, 05, B4][35, 05, B1]
-01CC; [43, 05, 13][3B, 05, 13]
-01CB; [43, 05, A2][3B, 05, 13]
-01CA; [43, 05, A2][3B, 05, A2]
-339A; [43, 05, 31][41, 05, 31]
-2116; [43, 05, A2][45, 05, 13]
-33B1; [43, 05, 31][4D, 05, 31]
-33B5; [43, 05, 31][53, 05, B4]
-33BB; [43, 05, 31][55, 05, B8]
-
-0274; [44 06, 05, 05]
-1DE1; [44 06, 05, 20]
-1DB0; [44 06, 05, 2E]
-
-1D3B; [44 08, 05, 05]
-
-1D0E; [44 0A, 05, 05]
-
-1D70; [44 0C, 05, 05]
-
-0272; [44 0E, 05, 05]
-019D; [44 0E, 05, A0]
-1DAE; [44 0E, 05, 2E]
-
-019E; [44 10, 05, 05]
-0220; [44 10, 05, A0]
-
-A791; [44 12, 05, 05]
-A790; [44 12, 05, A0]
-
-1D87; [44 14, 05, 05]
-
-0273; [44 16, 05, 05]
-1DAF; [44 16, 05, 20]
-
-0235; [44 18, 05, 05]
-
-AB3B; [44 1A, 05, 05]
-
-A774; [44 1C, 05, 05]
-
-014B; [44 1E, 05, 05]
-014A; [44 1E, 05, 9E]
-1D51; [44 1E, 05, 2C]
-
-AB3C; [44 20, 05, 05]
-
-006F; [45, 05, 05]
-FF4F; [45, 05, 10]
-0366; [45, 05, 13]
-2134; [45, 05, 16]
-1D428; [45, 05, 16]
-1D45C; [45, 05, 16]
-1D490; [45, 05, 16]
-1D4F8; [45, 05, 16]
-1D52C; [45, 05, 16]
-1D560; [45, 05, 16]
-1D594; [45, 05, 16]
-1D5C8; [45, 05, 16]
-1D5FC; [45, 05, 16]
-1D630; [45, 05, 16]
-1D664; [45, 05, 16]
-1D698; [45, 05, 16]
-24DE; [45, 05, 19]
-004F; [45, 05, 9C]
-FF2F; [45, 05, 9F]
-1D40E; [45, 05, A5]
-1D442; [45, 05, A5]
-1D476; [45, 05, A5]
-1D4AA; [45, 05, A5]
-1D4DE; [45, 05, A5]
-1D512; [45, 05, A5]
-1D546; [45, 05, A5]
-1D57A; [45, 05, A5]
-1D5AE; [45, 05, A5]
-1D5E2; [45, 05, A5]
-1D616; [45, 05, A5]
-1D64A; [45, 05, A5]
-1D67E; [45, 05, A5]
-24C4; [45, 05, A8]
-1F15E; [45, 05, A8]
-00BA; [45, 05, 2B]
-1D52; [45, 05, 2B]
-2092; [45, 05, 2E]
-1D3C; [45, 05, B4]
-1F13E; [45, 05, B4]
-1F17E; [45, 05, B4]
-00F3; [45, 05, 05][, 88, 05]
-00D3; [45, 05, 9C][, 88, 05]
-00F2; [45, 05, 05][, 8A, 05]
-00D2; [45, 05, 9C][, 8A, 05]
-014F; [45, 05, 05][, 8C, 05]
-014E; [45, 05, 9C][, 8C, 05]
-00F4; [45, 05, 05][, 8E, 05]
-00D4; [45, 05, 9C][, 8E, 05]
-1ED1; [45, 05, 05][, 8E, 05][, 88, 05]
-1ED0; [45, 05, 9C][, 8E, 05][, 88, 05]
-1ED3; [45, 05, 05][, 8E, 05][, 8A, 05]
-1ED2; [45, 05, 9C][, 8E, 05][, 8A, 05]
-1ED7; [45, 05, 05][, 8E, 05][, 9A, 05]
-1ED6; [45, 05, 9C][, 8E, 05][, 9A, 05]
-1ED5; [45, 05, 05][, 8E, 05][, B6, 05]
-1ED4; [45, 05, 9C][, 8E, 05][, B6, 05]
-01D2; [45, 05, 05][, 90, 05]
-01D1; [45, 05, 9C][, 90, 05]
-00F6; [45, 05, 05][, 96, 05]
-1DF3; [45, 05, 13][, 96, 20]
-A79D; [45, 05, 13][, 96, 20]
-00D6; [45, 05, 9C][, 96, 05]
-A79C; [45, 05, A2][, 96, 20]
-022B; [45, 05, 05][, 96, 05][, A4, 05]
-022A; [45, 05, 9C][, 96, 05][, A4, 05]
-0151; [45, 05, 05][, 98, 05]
-0150; [45, 05, 9C][, 98, 05]
-00F5; [45, 05, 05][, 9A, 05]
-00D5; [45, 05, 9C][, 9A, 05]
-1E4D; [45, 05, 05][, 9A, 05][, 88, 05]
-1E4C; [45, 05, 9C][, 9A, 05][, 88, 05]
-1E4F; [45, 05, 05][, 9A, 05][, 96, 05]
-1E4E; [45, 05, 9C][, 9A, 05][, 96, 05]
-022D; [45, 05, 05][, 9A, 05][, A4, 05]
-022C; [45, 05, 9C][, 9A, 05][, A4, 05]
-022F; [45, 05, 05][, 9C, 05]
-022E; [45, 05, 9C][, 9C, 05]
-0231; [45, 05, 05][, 9C, 05][, A4, 05]
-0230; [45, 05, 9C][, 9C, 05][, A4, 05]
-00F8; [45, 05, 05][, 9E, 05]
-00D8; [45, 05, 9C][, 9E, 05]
-01FF; [45, 05, 05][, 9E, 05][, 88, 05]
-01FE; [45, 05, 9C][, 9E, 05][, 88, 05]
-01EB; [45, 05, 05][, A2, 05]
-01EA; [45, 05, 9C][, A2, 05]
-01ED; [45, 05, 05][, A2, 05][, A4, 05]
-01EC; [45, 05, 9C][, A2, 05][, A4, 05]
-014D; [45, 05, 05][, A4, 05]
-014C; [45, 05, 9C][, A4, 05]
-1E53; [45, 05, 05][, A4, 05][, 88, 05]
-1E52; [45, 05, 9C][, A4, 05][, 88, 05]
-1E51; [45, 05, 05][, A4, 05][, 8A, 05]
-1E50; [45, 05, 9C][, A4, 05][, 8A, 05]
-1DED; [45, 05, 13][, A8, 20]
-1ECF; [45, 05, 05][, B6, 05]
-1ECE; [45, 05, 9C][, B6, 05]
-020D; [45, 05, 05][, B8, 05]
-020C; [45, 05, 9C][, B8, 05]
-020F; [45, 05, 05][, BC, 05]
-020E; [45, 05, 9C][, BC, 05]
-01A1; [45, 05, 05][, BE, 05]
-01A0; [45, 05, 9C][, BE, 05]
-1EDB; [45, 05, 05][, BE, 05][, 88, 05]
-1EDA; [45, 05, 9C][, BE, 05][, 88, 05]
-1EDD; [45, 05, 05][, BE, 05][, 8A, 05]
-1EDC; [45, 05, 9C][, BE, 05][, 8A, 05]
-1EE1; [45, 05, 05][, BE, 05][, 9A, 05]
-1EE0; [45, 05, 9C][, BE, 05][, 9A, 05]
-1EDF; [45, 05, 05][, BE, 05][, B6, 05]
-1EDE; [45, 05, 9C][, BE, 05][, B6, 05]
-1EE3; [45, 05, 05][, BE, 05][, C4, 05]
-1EE2; [45, 05, 9C][, BE, 05][, C4, 05]
-1ECD; [45, 05, 05][, C4, 05]
-1ECC; [45, 05, 9C][, C4, 05]
-1ED9; [45, 05, 05][, C4, 05][, 8E, 05]
-1ED8; [45, 05, 9C][, C4, 05][, 8E, 05]
-0153; [45, 70, 05][31, 05, 13]
-0152; [45, 70, A0][31, 05, A2]
-A7F9; [45, 70, 2E][31, 05, 2B]
-1F197; [45, 05, B4][3D, 05, B4]
-A74F; [45, 05, 13][45, 05, 13]
-A74E; [45, 05, A2][45, 05, A2]
-3375; [45, 05, 31][53, 05, B4]
-
-1D0F; [46 06, 05, 05]
-
-1D11; [46 08, 05, 05]
-
-AB3D; [46 0A, 05, 05]
-
-0276; [46 0C, 05, 05]
-
-1D14; [46 0E, 05, 05]
-
-AB41; [46 10, 05, 05]
-
-AB42; [46 12, 05, 05]
-
-AB40; [46 14, 05, 05]
-
-AB43; [46 16, 05, 05]
-
-AB44; [46 18, 05, 05]
-
-1D13; [46 1A, 05, 05]
-
-AB3E; [46 1C, 05, 05]
-
-0254; [46 1E, 05, 05]
-0186; [46 1E, 05, A0]
-1D53; [46 1E, 05, 2E]
-
-1D10; [46 20, 05, 05]
-
-1D12; [46 22, 05, 05]
-
-AB3F; [46 24, 05, 05]
-
-1D97; [46 26, 05, 05]
-
-AB62; [46 28, 05, 05]
-
-A74D; [46 2A, 05, 05]
-A74C; [46 2A, 05, A0]
-
-1D16; [46 2C, 05, 05]
-1D54; [46 2C, 05, 20]
-
-1D17; [46 2E, 05, 05]
-1D55; [46 2E, 05, 20]
-
-2C7A; [46 30, 05, 05]
-
-0275; [46 32, 05, 05]
-019F; [46 32, 05, A0]
-1DB1; [46 32, 05, 2E]
-
-A74B; [46 34, 05, 05]
-A74A; [46 34, 05, A0]
-
-0277; [46 36, 05, 05]
-
-A7B7; [46 38, 05, 05]
-A7B6; [46 38, 05, A0]
-
-0223; [46 3A, 05, 05]
-0222; [46 3A, 05, A0]
-1D3D; [46 3A, 05, AE]
-
-1D15; [46 3C, 05, 05]
-
-0070; [47, 05, 05]
-FF50; [47, 05, 10]
-1DEE; [47, 05, 13]
-1D429; [47, 05, 16]
-1D45D; [47, 05, 16]
-1D491; [47, 05, 16]
-1D4C5; [47, 05, 16]
-1D4F9; [47, 05, 16]
-1D52D; [47, 05, 16]
-1D561; [47, 05, 16]
-1D595; [47, 05, 16]
-1D5C9; [47, 05, 16]
-1D5FD; [47, 05, 16]
-1D631; [47, 05, 16]
-1D665; [47, 05, 16]
-1D699; [47, 05, 16]
-24DF; [47, 05, 19]
-0050; [47, 05, 9C]
-FF30; [47, 05, 9F]
-2119; [47, 05, A5]
-1D40F; [47, 05, A5]
-1D443; [47, 05, A5]
-1D477; [47, 05, A5]
-1D4AB; [47, 05, A5]
-1D4DF; [47, 05, A5]
-1D513; [47, 05, A5]
-1D57B; [47, 05, A5]
-1D5AF; [47, 05, A5]
-1D5E3; [47, 05, A5]
-1D617; [47, 05, A5]
-1D64B; [47, 05, A5]
-1D67F; [47, 05, A5]
-24C5; [47, 05, A8]
-1F15F; [47, 05, A8]
-1D56; [47, 05, 2B]
-209A; [47, 05, 2E]
-1D3E; [47, 05, B4]
-1F13F; [47, 05, B4]
-1F17F; [47, 05, B4]
-1F18A; [47, 05, B4]
-1E55; [47, 05, 05][, 88, 05]
-1E54; [47, 05, 9C][, 88, 05]
-1E57; [47, 05, 05][, 9C, 05]
-1E56; [47, 05, 9C][, 9C, 05]
-33D8; [47, 05, 31][08, 05, 30][41, 05, 31][08, 05, 30]
-3380; [47, 05, 31][29, 05, B4]
-33A9; [47, 05, B4][29, 05, 31]
-1F18C; [47, 05, B4][29, 05, B4]
-3376; [47, 05, 31][2D, 05, 2E]
-338A; [47, 05, 31][33, 05, B1]
-33D7; [47, 05, B4][37, 05, B4]
-33D9; [47, 05, B4][47, 05, B4][41, 05, B4]
-1F14E; [47, 05, B4][47, 05, B4][53, 05, B4]
-33DA; [47, 05, B4][4B, 05, B4]
-33B0; [47, 05, 31][4D, 05, 31]
-3250; [47, 05, B4][4F, 05, B4][31, 05, B4]
-33B4; [47, 05, 31][53, 05, B4]
-33BA; [47, 05, 31][55, 05, B8]
-
-1D18; [48 06, 05, 05]
-
-1D7D; [48 08, 05, 05]
-2C63; [48 08, 05, A0]
-
-A751; [48 0A, 05, 05]
-A750; [48 0A, 05, A0]
-
-1D71; [48 0C, 05, 05]
-
-1D88; [48 0E, 05, 05]
-
-01A5; [48 10, 05, 05]
-01A4; [48 10, 05, A0]
-
-A753; [48 12, 05, 05]
-A752; [48 12, 05, A0]
-
-A755; [48 14, 05, 05]
-A754; [48 14, 05, A0]
-
-A7FC; [48 16, 05, 05]
-
-0278; [48 18, 05, 05]
-1DB2; [48 18, 05, 20]
-
-2C77; [48 1A, 05, 05]
-
-0071; [49, 05, 05]
-FF51; [49, 05, 10]
-1D42A; [49, 05, 18]
-1D45E; [49, 05, 18]
-1D492; [49, 05, 18]
-1D4C6; [49, 05, 18]
-1D4FA; [49, 05, 18]
-1D52E; [49, 05, 18]
-1D562; [49, 05, 18]
-1D596; [49, 05, 18]
-1D5CA; [49, 05, 18]
-1D5FE; [49, 05, 18]
-1D632; [49, 05, 18]
-1D666; [49, 05, 18]
-1D69A; [49, 05, 18]
-24E0; [49, 05, 1C]
-0051; [49, 05, A0]
-FF31; [49, 05, A4]
-211A; [49, 05, AC]
-1D410; [49, 05, AC]
-1D444; [49, 05, AC]
-1D478; [49, 05, AC]
-1D4AC; [49, 05, AC]
-1D4E0; [49, 05, AC]
-1D514; [49, 05, AC]
-1D57C; [49, 05, AC]
-1D5B0; [49, 05, AC]
-1D5E4; [49, 05, AC]
-1D618; [49, 05, AC]
-1D64C; [49, 05, AC]
-1D680; [49, 05, AC]
-24C6; [49, 05, B0]
-1F160; [49, 05, B0]
-1F140; [49, 05, B8]
-1F180; [49, 05, B8]
-0239; [49, 05, 14][47, 05, 13]
-
-A757; [4A 06, 05, 05]
-A756; [4A 06, 05, A0]
-
-A759; [4A 08, 05, 05]
-A758; [4A 08, 05, A0]
-
-02A0; [4A 0A, 05, 05]
-
-024B; [4A 0C, 05, 05]
-024A; [4A 0C, 05, A0]
-
-0138; [4A 0E, 05, 05]
-
-0072; [4B, 05, 05]
-FF52; [4B, 05, 10]
-036C; [4B, 05, 13]
-1DCA; [4B, 05, 13]
-1D42B; [4B, 05, 16]
-1D45F; [4B, 05, 16]
-1D493; [4B, 05, 16]
-1D4C7; [4B, 05, 16]
-1D4FB; [4B, 05, 16]
-1D52F; [4B, 05, 16]
-1D563; [4B, 05, 16]
-1D597; [4B, 05, 16]
-1D5CB; [4B, 05, 16]
-1D5FF; [4B, 05, 16]
-1D633; [4B, 05, 16]
-1D667; [4B, 05, 16]
-1D69B; [4B, 05, 16]
-24E1; [4B, 05, 19]
-0052; [4B, 05, 9C]
-FF32; [4B, 05, 9F]
-211B; [4B, 05, A5]
-211C; [4B, 05, A5]
-211D; [4B, 05, A5]
-1D411; [4B, 05, A5]
-1D445; [4B, 05, A5]
-1D479; [4B, 05, A5]
-1D4E1; [4B, 05, A5]
-1D57D; [4B, 05, A5]
-1D5B1; [4B, 05, A5]
-1D5E5; [4B, 05, A5]
-1D619; [4B, 05, A5]
-1D64D; [4B, 05, A5]
-1D681; [4B, 05, A5]
-24C7; [4B, 05, A8]
-1F12C; [4B, 05, A8]
-1F161; [4B, 05, A8]
-02B3; [4B, 05, 2B]
-1D63; [4B, 05, 2E]
-1D3F; [4B, 05, B4]
-1F141; [4B, 05, B4]
-1F181; [4B, 05, B4]
-0155; [4B, 05, 05][, 88, 05]
-0154; [4B, 05, 9C][, 88, 05]
-0159; [4B, 05, 05][, 90, 05]
-0158; [4B, 05, 9C][, 90, 05]
-1E59; [4B, 05, 05][, 9C, 05]
-1E58; [4B, 05, 9C][, 9C, 05]
-0157; [4B, 05, 05][, A0, 05]
-0156; [4B, 05, 9C][, A0, 05]
-A7A7; [4B, 05, 13][, AA, 20]
-A7A6; [4B, 05, A2][, AA, 20]
-0211; [4B, 05, 05][, B8, 05]
-0210; [4B, 05, 9C][, B8, 05]
-0213; [4B, 05, 05][, BC, 05]
-0212; [4B, 05, 9C][, BC, 05]
-1E5B; [4B, 05, 05][, C4, 05]
-1E5A; [4B, 05, 9C][, C4, 05]
-1E5D; [4B, 05, 05][, C4, 05][, A4, 05]
-1E5C; [4B, 05, 9C][, C4, 05][, A4, 05]
-1E5F; [4B, 05, 05][, D2, 05]
-1E5E; [4B, 05, 9C][, D2, 05]
-A783; [4B, 70, 05]
-A782; [4B, 70, A0]
-33AD; [4B, 05, 31][29, 05, 31][2F, 05, 2E]
-33AE; [4B, 05, 31][29, 05, 31][2F, 05, 2E][0C 90, 05, 20][4D, 05, 31]
-33AF; [4B, 05, 31][29, 05, 31][2F, 05, 2E][0C 90, 05, 20][4D, 05, 31][16, 05, 2E]
-
-AB45; [4C 06, 05, 05]
-
-0280; [4C 08, 05, 05]
-1DE2; [4C 08, 05, 20]
-01A6; [4C 08, 05, AE]
-
-AB46; [4C 0A, 05, 05]
-
-A75B; [4C 0C, 05, 05]
-1DE3; [4C 0C, 05, 20]
-A75A; [4C 0C, 05, AE]
-
-1D19; [4C 0E, 05, 05]
-
-024D; [4C 10, 05, 05]
-024C; [4C 10, 05, A0]
-
-1D72; [4C 12, 05, 05]
-
-0279; [4C 14, 05, 05]
-02B4; [4C 14, 05, 20]
-
-1D1A; [4C 16, 05, 05]
-
-027A; [4C 18, 05, 05]
-
-1D89; [4C 1A, 05, 05]
-
-027B; [4C 1C, 05, 05]
-02B5; [4C 1C, 05, 20]
-
-2C79; [4C 1E, 05, 05]
-
-027C; [4C 20, 05, 05]
-
-027D; [4C 22, 05, 05]
-2C64; [4C 22, 05, A0]
-
-AB49; [4C 24, 05, 05]
-
-027E; [4C 26, 05, 05]
-
-1D73; [4C 28, 05, 05]
-
-027F; [4C 2A, 05, 05]
-
-AB47; [4C 2C, 05, 05]
-
-AB48; [4C 2E, 05, 05]
-
-AB4A; [4C 30, 05, 05]
-
-AB4B; [4C 32, 05, 05]
-
-AB4C; [4C 34, 05, 05]
-
-0281; [4C 36, 05, 05]
-02B6; [4C 36, 05, 20]
-
-A775; [4C 38, 05, 05]
-
-A776; [4C 3A, 05, 05]
-
-A75D; [4C 3C, 05, 05]
-A75C; [4C 3C, 05, A0]
-
-0073; [4D, 05, 05]
-FF53; [4D, 05, 10]
-1DE4; [4D, 05, 13]
-1D42C; [4D, 05, 16]
-1D460; [4D, 05, 16]
-1D494; [4D, 05, 16]
-1D4C8; [4D, 05, 16]
-1D4FC; [4D, 05, 16]
-1D530; [4D, 05, 16]
-1D564; [4D, 05, 16]
-1D598; [4D, 05, 16]
-1D5CC; [4D, 05, 16]
-1D600; [4D, 05, 16]
-1D634; [4D, 05, 16]
-1D668; [4D, 05, 16]
-1D69C; [4D, 05, 16]
-24E2; [4D, 05, 19]
-0053; [4D, 05, 9C]
-FF33; [4D, 05, 9F]
-1D412; [4D, 05, A5]
-1D446; [4D, 05, A5]
-1D47A; [4D, 05, A5]
-1D4AE; [4D, 05, A5]
-1D4E2; [4D, 05, A5]
-1D516; [4D, 05, A5]
-1D54A; [4D, 05, A5]
-1D57E; [4D, 05, A5]
-1D5B2; [4D, 05, A5]
-1D5E6; [4D, 05, A5]
-1D61A; [4D, 05, A5]
-1D64E; [4D, 05, A5]
-1D682; [4D, 05, A5]
-24C8; [4D, 05, A8]
-1F162; [4D, 05, A8]
-02E2; [4D, 05, 2B]
-209B; [4D, 05, 2E]
-1F142; [4D, 05, B4]
-1F182; [4D, 05, B4]
-015B; [4D, 05, 05][, 88, 05]
-015A; [4D, 05, 9C][, 88, 05]
-1E65; [4D, 05, 05][, 88, 05][, 9C, 05]
-1E64; [4D, 05, 9C][, 88, 05][, 9C, 05]
-015D; [4D, 05, 05][, 8E, 05]
-015C; [4D, 05, 9C][, 8E, 05]
-0161; [4D, 05, 05][, 90, 05]
-0160; [4D, 05, 9C][, 90, 05]
-1E67; [4D, 05, 05][, 90, 05][, 9C, 05]
-1E66; [4D, 05, 9C][, 90, 05][, 9C, 05]
-1E61; [4D, 05, 05][, 9C, 05]
-1E60; [4D, 05, 9C][, 9C, 05]
-015F; [4D, 05, 05][, A0, 05]
-015E; [4D, 05, 9C][, A0, 05]
-A7A9; [4D, 05, 13][, AA, 20]
-A7A8; [4D, 05, A2][, AA, 20]
-1E63; [4D, 05, 05][, C4, 05]
-1E62; [4D, 05, 9C][, C4, 05]
-1E69; [4D, 05, 05][, C4, 05][, 9C, 05]
-1E68; [4D, 05, 9C][, C4, 05][, 9C, 05]
-0219; [4D, 05, 05][, CA, 05]
-0218; [4D, 05, 9C][, CA, 05]
-017F; [4D, 78, 05]
-1DE5; [4D, 78, 05]
-A785; [4D, 78, 05]
-A784; [4D, 78, A0]
-1E9B; [4D, 78, 05][, 9C, 05]
-1F18D; [4D, 05, B4][29, 05, B4]
-1F14C; [4D, 05, B4][2F, 05, B1]
-1F1AA; [4D, 05, B4][37, 05, B4][53, 05, B4]
-2120; [4D, 05, 2B][41, 05, 2B]
-1F198; [4D, 05, B4][45, 05, B4][4D, 05, B4]
-33DB; [4D, 05, 31][4B, 05, 31]
-1F14D; [4D, 05, B4][4D, 05, B4]
-00DF; [4D, 70, 05][4D, 05, 13]
-1E9E; [4D, 70, A0][4D, 05, A2]
-FB06; [4D, 05, 13][4F, 05, 13]
-FB05; [4D, 78, 05][4F, 05, 13]
-33DC; [4D, 05, B4][53, 05, 31]
-
-A731; [4E 06, 05, 05]
-
-1D74; [4E 08, 05, 05]
-
-1D8A; [4E 0A, 05, 05]
-
-0282; [4E 0C, 05, 05]
-1DB3; [4E 0C, 05, 20]
-
-023F; [4E 0E, 05, 05]
-2C7E; [4E 0E, 05, A0]
-
-1E9C; [4E 10, 05, 05]
-
-1E9D; [4E 12, 05, 05]
-
-0283; [4E 14, 05, 05]
-1DEF; [4E 14, 05, 10]
-01A9; [4E 14, 05, 9E]
-1DB4; [4E 14, 05, 2C]
-
-AB4D; [4E 16, 05, 05]
-
-1D8B; [4E 18, 05, 05]
-
-01AA; [4E 1A, 05, 05]
-
-0285; [4E 1C, 05, 05]
-
-1D98; [4E 1E, 05, 05]
-
-0286; [4E 20, 05, 05]
-
-0074; [4F, 05, 05]
-FF54; [4F, 05, 10]
-036D; [4F, 05, 13]
-1D42D; [4F, 05, 16]
-1D461; [4F, 05, 16]
-1D495; [4F, 05, 16]
-1D4C9; [4F, 05, 16]
-1D4FD; [4F, 05, 16]
-1D531; [4F, 05, 16]
-1D565; [4F, 05, 16]
-1D599; [4F, 05, 16]
-1D5CD; [4F, 05, 16]
-1D601; [4F, 05, 16]
-1D635; [4F, 05, 16]
-1D669; [4F, 05, 16]
-1D69D; [4F, 05, 16]
-24E3; [4F, 05, 19]
-0054; [4F, 05, 9C]
-FF34; [4F, 05, 9F]
-1D413; [4F, 05, A5]
-1D447; [4F, 05, A5]
-1D47B; [4F, 05, A5]
-1D4AF; [4F, 05, A5]
-1D4E3; [4F, 05, A5]
-1D517; [4F, 05, A5]
-1D54B; [4F, 05, A5]
-1D57F; [4F, 05, A5]
-1D5B3; [4F, 05, A5]
-1D5E7; [4F, 05, A5]
-1D61B; [4F, 05, A5]
-1D64F; [4F, 05, A5]
-1D683; [4F, 05, A5]
-24C9; [4F, 05, A8]
-1F163; [4F, 05, A8]
-1D57; [4F, 05, 2B]
-209C; [4F, 05, 2E]
-1D40; [4F, 05, B4]
-1F143; [4F, 05, B4]
-1F183; [4F, 05, B4]
-0165; [4F, 05, 05][, 90, 05]
-0164; [4F, 05, 9C][, 90, 05]
-1E97; [4F, 05, 05][, 96, 05]
-1E6B; [4F, 05, 05][, 9C, 05]
-1E6A; [4F, 05, 9C][, 9C, 05]
-0163; [4F, 05, 05][, A0, 05]
-0162; [4F, 05, 9C][, A0, 05]
-1E6D; [4F, 05, 05][, C4, 05]
-1E6C; [4F, 05, 9C][, C4, 05]
-021B; [4F, 05, 05][, CA, 05]
-021A; [4F, 05, 9C][, CA, 05]
-1E71; [4F, 05, 05][, CC, 05]
-1E70; [4F, 05, 9C][, CC, 05]
-1E6F; [4F, 05, 05][, D2, 05]
-1E6E; [4F, 05, 9C][, D2, 05]
-A787; [4F, 78, 05]
-A786; [4F, 78, A0]
-02A8; [4F, 05, 13][2E 10, 05, 20]
-2121; [4F, 05, A2][31, 05, A2][3F, 05, A2]
-1D7A; [4F, 70, 05][37, 05, 13]
-3394; [4F, 05, B4][37, 05, B4][5B, 05, 2E]
-2122; [4F, 05, 2B][41, 05, 2B]
-01BE; [4F, 05, 13][4D, 05, 13]
-02A6; [4F, 05, 13][4D, 05, 13]
-02A7; [4F, 05, 13][4E 14, 05, 10]
-A729; [4F, 05, 13][5B, 05, 13]
-A728; [4F, 05, A2][5B, 05, 13]
-
-1D1B; [50 06, 05, 05]
-
-0167; [50 08, 05, 05]
-0166; [50 08, 05, A0]
-
-2C66; [50 0A, 05, 05]
-023E; [50 0A, 05, A0]
-
-1D75; [50 0C, 05, 05]
-
-01AB; [50 0E, 05, 05]
-1DB5; [50 0E, 05, 20]
-
-01AD; [50 10, 05, 05]
-01AC; [50 10, 05, A0]
-
-0288; [50 12, 05, 05]
-01AE; [50 12, 05, A0]
-
-0236; [50 14, 05, 05]
-
-A777; [50 16, 05, 05]
-
-0287; [50 18, 05, 05]
-A7B1; [50 18, 05, A0]
-
-0075; [51, 05, 05]
-FF55; [51, 05, 10]
-0367; [51, 05, 13]
-1D42E; [51, 05, 16]
-1D462; [51, 05, 16]
-1D496; [51, 05, 16]
-1D4CA; [51, 05, 16]
-1D4FE; [51, 05, 16]
-1D532; [51, 05, 16]
-1D566; [51, 05, 16]
-1D59A; [51, 05, 16]
-1D5CE; [51, 05, 16]
-1D602; [51, 05, 16]
-1D636; [51, 05, 16]
-1D66A; [51, 05, 16]
-1D69E; [51, 05, 16]
-24E4; [51, 05, 19]
-0055; [51, 05, 9C]
-FF35; [51, 05, 9F]
-1D414; [51, 05, A5]
-1D448; [51, 05, A5]
-1D47C; [51, 05, A5]
-1D4B0; [51, 05, A5]
-1D4E4; [51, 05, A5]
-1D518; [51, 05, A5]
-1D54C; [51, 05, A5]
-1D580; [51, 05, A5]
-1D5B4; [51, 05, A5]
-1D5E8; [51, 05, A5]
-1D61C; [51, 05, A5]
-1D650; [51, 05, A5]
-1D684; [51, 05, A5]
-24CA; [51, 05, A8]
-1F164; [51, 05, A8]
-1D58; [51, 05, 2B]
-1D64; [51, 05, 2E]
-1D41; [51, 05, B1]
-1F144; [51, 05, B1]
-1F184; [51, 05, B1]
-00FA; [51, 05, 05][, 88, 05]
-00DA; [51, 05, 9C][, 88, 05]
-00F9; [51, 05, 05][, 8A, 05]
-00D9; [51, 05, 9C][, 8A, 05]
-016D; [51, 05, 05][, 8C, 05]
-016C; [51, 05, 9C][, 8C, 05]
-00FB; [51, 05, 05][, 8E, 05]
-00DB; [51, 05, 9C][, 8E, 05]
-01D4; [51, 05, 05][, 90, 05]
-01D3; [51, 05, 9C][, 90, 05]
-016F; [51, 05, 05][, 92, 05]
-016E; [51, 05, 9C][, 92, 05]
-00FC; [51, 05, 05][, 96, 05]
-1DF4; [51, 05, 13][, 96, 20]
-A79F; [51, 05, 13][, 96, 20]
-00DC; [51, 05, 9C][, 96, 05]
-A79E; [51, 05, A2][, 96, 20]
-01D8; [51, 05, 05][, 96, 05][, 88, 05]
-01D7; [51, 05, 9C][, 96, 05][, 88, 05]
-01DC; [51, 05, 05][, 96, 05][, 8A, 05]
-01DB; [51, 05, 9C][, 96, 05][, 8A, 05]
-01DA; [51, 05, 05][, 96, 05][, 90, 05]
-01D9; [51, 05, 9C][, 96, 05][, 90, 05]
-01D6; [51, 05, 05][, 96, 05][, A4, 05]
-01D5; [51, 05, 9C][, 96, 05][, A4, 05]
-0171; [51, 05, 05][, 98, 05]
-0170; [51, 05, 9C][, 98, 05]
-0169; [51, 05, 05][, 9A, 05]
-0168; [51, 05, 9C][, 9A, 05]
-1E79; [51, 05, 05][, 9A, 05][, 88, 05]
-1E78; [51, 05, 9C][, 9A, 05][, 88, 05]
-0173; [51, 05, 05][, A2, 05]
-0172; [51, 05, 9C][, A2, 05]
-016B; [51, 05, 05][, A4, 05]
-016A; [51, 05, 9C][, A4, 05]
-1E7B; [51, 05, 05][, A4, 05][, 96, 05]
-1E7A; [51, 05, 9C][, A4, 05][, 96, 05]
-1DF0; [51, 05, 13][, A8, 20]
-1EE7; [51, 05, 05][, B6, 05]
-1EE6; [51, 05, 9C][, B6, 05]
-0215; [51, 05, 05][, B8, 05]
-0214; [51, 05, 9C][, B8, 05]
-0217; [51, 05, 05][, BC, 05]
-0216; [51, 05, 9C][, BC, 05]
-01B0; [51, 05, 05][, BE, 05]
-01AF; [51, 05, 9C][, BE, 05]
-1EE9; [51, 05, 05][, BE, 05][, 88, 05]
-1EE8; [51, 05, 9C][, BE, 05][, 88, 05]
-1EEB; [51, 05, 05][, BE, 05][, 8A, 05]
-1EEA; [51, 05, 9C][, BE, 05][, 8A, 05]
-1EEF; [51, 05, 05][, BE, 05][, 9A, 05]
-1EEE; [51, 05, 9C][, BE, 05][, 9A, 05]
-1EED; [51, 05, 05][, BE, 05][, B6, 05]
-1EEC; [51, 05, 9C][, BE, 05][, B6, 05]
-1EF1; [51, 05, 05][, BE, 05][, C4, 05]
-1EF0; [51, 05, 9C][, BE, 05][, C4, 05]
-1EE5; [51, 05, 05][, C4, 05]
-1EE4; [51, 05, 9C][, C4, 05]
-1E73; [51, 05, 05][, C6, 05]
-1E72; [51, 05, 9C][, C6, 05]
-1E77; [51, 05, 05][, CC, 05]
-1E76; [51, 05, 9C][, CC, 05]
-1E75; [51, 05, 05][, D0, 05]
-1E74; [51, 05, 9C][, D0, 05]
-1F1AB; [51, 05, B1][37, 05, B4][2F, 05, B1]
-1F199; [51, 05, B1][47, 05, B4][07 52, 05, 30]
-
-1D1C; [52 06, 05, 05]
-1DB8; [52 06, 05, 20]
-
-AB4E; [52 08, 05, 05]
-
-1D1D; [52 0A, 05, 05]
-1D59; [52 0A, 05, 20]
-
-1D1E; [52 0C, 05, 05]
-
-1D6B; [52 0E, 05, 05]
-
-AB50; [52 10, 05, 05]
-
-AB51; [52 12, 05, 05]
-
-0289; [52 14, 05, 05]
-0244; [52 14, 05, A0]
-1DB6; [52 14, 05, 2E]
-
-AB4F; [52 16, 05, 05]
-
-1D7E; [52 18, 05, 05]
-
-1D99; [52 1A, 05, 05]
-
-AB52; [52 1C, 05, 05]
-AB5F; [52 1C, 05, 20]
-
-0265; [52 1E, 05, 05]
-A78D; [52 1E, 05, A0]
-1DA3; [52 1E, 05, 2E]
-
-02AE; [52 20, 05, 05]
-
-02AF; [52 22, 05, 05]
-
-026F; [52 24, 05, 05]
-019C; [52 24, 05, A0]
-1D5A; [52 24, 05, 2E]
-
-A7FA; [52 26, 05, 05]
-
-1D1F; [52 28, 05, 05]
-
-0270; [52 2A, 05, 05]
-1DAD; [52 2A, 05, 20]
-
-028A; [52 2C, 05, 05]
-01B1; [52 2C, 05, A0]
-1DB7; [52 2C, 05, 2E]
-
-1D7F; [52 2E, 05, 05]
-
-0076; [53, 05, 05]
-FF56; [53, 05, 10]
-036E; [53, 05, 13]
-2174; [53, 05, 13]
-1D42F; [53, 05, 16]
-1D463; [53, 05, 16]
-1D497; [53, 05, 16]
-1D4CB; [53, 05, 16]
-1D4FF; [53, 05, 16]
-1D533; [53, 05, 16]
-1D567; [53, 05, 16]
-1D59B; [53, 05, 16]
-1D5CF; [53, 05, 16]
-1D603; [53, 05, 16]
-1D637; [53, 05, 16]
-1D66B; [53, 05, 16]
-1D69F; [53, 05, 16]
-24E5; [53, 05, 19]
-0056; [53, 05, 9C]
-FF36; [53, 05, 9F]
-2164; [53, 05, A2]
-1D415; [53, 05, A5]
-1D449; [53, 05, A5]
-1D47D; [53, 05, A5]
-1D4B1; [53, 05, A5]
-1D4E5; [53, 05, A5]
-1D519; [53, 05, A5]
-1D54D; [53, 05, A5]
-1D581; [53, 05, A5]
-1D5B5; [53, 05, A5]
-1D5E9; [53, 05, A5]
-1D61D; [53, 05, A5]
-1D651; [53, 05, A5]
-1D685; [53, 05, A5]
-24CB; [53, 05, A8]
-1F165; [53, 05, A8]
-1D5B; [53, 05, 2B]
-1D65; [53, 05, 2E]
-2C7D; [53, 05, B4]
-1F145; [53, 05, B4]
-1F185; [53, 05, B4]
-1E7D; [53, 05, 05][, 9A, 05]
-1E7C; [53, 05, 9C][, 9A, 05]
-1E7F; [53, 05, 05][, C4, 05]
-1E7E; [53, 05, 9C][, C4, 05]
-33DE; [53, 05, B4][0C 90, 05, 20][41, 05, 31]
-2175; [53, 05, 13][39, 05, 13]
-2165; [53, 05, A2][39, 05, A2]
-2176; [53, 05, 13][39, 05, 13][39, 05, 13]
-2166; [53, 05, A2][39, 05, A2][39, 05, A2]
-2177; [53, 05, 13][39, 05, 13][39, 05, 13][39, 05, 13]
-2167; [53, 05, A2][39, 05, A2][39, 05, A2][39, 05, A2]
-1F1AC; [53, 05, B4][45, 05, B4][2F, 05, B1]
-1F19A; [53, 05, B4][4D, 05, B4]
-A761; [53, 05, 13][59, 05, 13]
-A760; [53, 05, A2][59, 05, A2]
-
-1D20; [54 06, 05, 05]
-
-A75F; [54 08, 05, 05]
-A75E; [54 08, 05, A0]
-
-1D8C; [54 0A, 05, 05]
-
-028B; [54 0C, 05, 05]
-01B2; [54 0C, 05, A0]
-1DB9; [54 0C, 05, 2E]
-
-2C71; [54 0E, 05, 05]
-
-2C74; [54 10, 05, 05]
-
-1EFD; [54 12, 05, 05]
-1EFC; [54 12, 05, A0]
-
-028C; [54 14, 05, 05]
-0245; [54 14, 05, A0]
-1DBA; [54 14, 05, 2E]
-
-0077; [55, 05, 05]
-FF57; [55, 05, 10]
-1DF1; [55, 05, 14]
-1D430; [55, 05, 18]
-1D464; [55, 05, 18]
-1D498; [55, 05, 18]
-1D4CC; [55, 05, 18]
-1D500; [55, 05, 18]
-1D534; [55, 05, 18]
-1D568; [55, 05, 18]
-1D59C; [55, 05, 18]
-1D5D0; [55, 05, 18]
-1D604; [55, 05, 18]
-1D638; [55, 05, 18]
-1D66C; [55, 05, 18]
-1D6A0; [55, 05, 18]
-24E6; [55, 05, 1C]
-0057; [55, 05, A0]
-FF37; [55, 05, A4]
-1D416; [55, 05, AC]
-1D44A; [55, 05, AC]
-1D47E; [55, 05, AC]
-1D4B2; [55, 05, AC]
-1D4E6; [55, 05, AC]
-1D51A; [55, 05, AC]
-1D54E; [55, 05, AC]
-1D582; [55, 05, AC]
-1D5B6; [55, 05, AC]
-1D5EA; [55, 05, AC]
-1D61E; [55, 05, AC]
-1D652; [55, 05, AC]
-1D686; [55, 05, AC]
-24CC; [55, 05, B0]
-1F166; [55, 05, B0]
-02B7; [55, 05, 34]
-1D42; [55, 05, B8]
-1F146; [55, 05, B8]
-1F186; [55, 05, B8]
-1E83; [55, 05, 05][, 88, 05]
-1E82; [55, 05, A0][, 88, 05]
-1E81; [55, 05, 05][, 8A, 05]
-1E80; [55, 05, A0][, 8A, 05]
-0175; [55, 05, 05][, 8E, 05]
-0174; [55, 05, A0][, 8E, 05]
-1E98; [55, 05, 05][, 92, 05]
-1E85; [55, 05, 05][, 96, 05]
-1E84; [55, 05, A0][, 96, 05]
-1E87; [55, 05, 05][, 9C, 05]
-1E86; [55, 05, A0][, 9C, 05]
-1E89; [55, 05, 05][, C4, 05]
-1E88; [55, 05, A0][, C4, 05]
-33DD; [55, 05, B8][2B, 05, 2E]
-1F14F; [55, 05, B8][2D, 05, B1]
-1F18F; [55, 05, B8][2D, 05, B1]
-1F12E; [55, 05, B0][5B, 05, A8]
-
-1D21; [56 06, 05, 05]
-
-2C73; [56 08, 05, 05]
-2C72; [56 08, 05, A0]
-
-028D; [56 0A, 05, 05]
-
-0078; [57, 05, 05]
-FF58; [57, 05, 10]
-036F; [57, 05, 13]
-2179; [57, 05, 13]
-1D431; [57, 05, 16]
-1D465; [57, 05, 16]
-1D499; [57, 05, 16]
-1D4CD; [57, 05, 16]
-1D501; [57, 05, 16]
-1D535; [57, 05, 16]
-1D569; [57, 05, 16]
-1D59D; [57, 05, 16]
-1D5D1; [57, 05, 16]
-1D605; [57, 05, 16]
-1D639; [57, 05, 16]
-1D66D; [57, 05, 16]
-1D6A1; [57, 05, 16]
-24E7; [57, 05, 19]
-0058; [57, 05, 9C]
-FF38; [57, 05, 9F]
-2169; [57, 05, A2]
-1D417; [57, 05, A5]
-1D44B; [57, 05, A5]
-1D47F; [57, 05, A5]
-1D4B3; [57, 05, A5]
-1D4E7; [57, 05, A5]
-1D51B; [57, 05, A5]
-1D54F; [57, 05, A5]
-1D583; [57, 05, A5]
-1D5B7; [57, 05, A5]
-1D5EB; [57, 05, A5]
-1D61F; [57, 05, A5]
-1D653; [57, 05, A5]
-1D687; [57, 05, A5]
-24CD; [57, 05, A8]
-1F167; [57, 05, A8]
-02E3; [57, 05, 2B]
-2093; [57, 05, 2E]
-1F147; [57, 05, B4]
-1F187; [57, 05, B4]
-1E8D; [57, 05, 05][, 96, 05]
-1E8C; [57, 05, 9C][, 96, 05]
-1E8B; [57, 05, 05][, 9C, 05]
-1E8A; [57, 05, 9C][, 9C, 05]
-217A; [57, 05, 13][39, 05, 13]
-216A; [57, 05, A2][39, 05, A2]
-217B; [57, 05, 13][39, 05, 13][39, 05, 13]
-216B; [57, 05, A2][39, 05, A2][39, 05, A2]
-
-1D8D; [58 06, 05, 05]
-
-AB56; [58 08, 05, 05]
-
-AB57; [58 0A, 05, 05]
-
-AB58; [58 0C, 05, 05]
-
-AB59; [58 0E, 05, 05]
-
-AB53; [58 10, 05, 05]
-A7B3; [58 10, 05, A0]
-
-AB54; [58 12, 05, 05]
-
-AB55; [58 14, 05, 05]
-
-0079; [59, 05, 05]
-FF59; [59, 05, 10]
-1D432; [59, 05, 16]
-1D466; [59, 05, 16]
-1D49A; [59, 05, 16]
-1D4CE; [59, 05, 16]
-1D502; [59, 05, 16]
-1D536; [59, 05, 16]
-1D56A; [59, 05, 16]
-1D59E; [59, 05, 16]
-1D5D2; [59, 05, 16]
-1D606; [59, 05, 16]
-1D63A; [59, 05, 16]
-1D66E; [59, 05, 16]
-1D6A2; [59, 05, 16]
-24E8; [59, 05, 19]
-0059; [59, 05, 9C]
-FF39; [59, 05, 9F]
-1D418; [59, 05, A5]
-1D44C; [59, 05, A5]
-1D480; [59, 05, A5]
-1D4B4; [59, 05, A5]
-1D4E8; [59, 05, A5]
-1D51C; [59, 05, A5]
-1D550; [59, 05, A5]
-1D584; [59, 05, A5]
-1D5B8; [59, 05, A5]
-1D5EC; [59, 05, A5]
-1D620; [59, 05, A5]
-1D654; [59, 05, A5]
-1D688; [59, 05, A5]
-24CE; [59, 05, A8]
-1F168; [59, 05, A8]
-02B8; [59, 05, 2B]
-1F148; [59, 05, B1]
-1F188; [59, 05, B1]
-00FD; [59, 05, 05][, 88, 05]
-00DD; [59, 05, 9C][, 88, 05]
-1EF3; [59, 05, 05][, 8A, 05]
-1EF2; [59, 05, 9C][, 8A, 05]
-0177; [59, 05, 05][, 8E, 05]
-0176; [59, 05, 9C][, 8E, 05]
-1E99; [59, 05, 05][, 92, 05]
-00FF; [59, 05, 05][, 96, 05]
-0178; [59, 05, 9C][, 96, 05]
-1EF9; [59, 05, 05][, 9A, 05]
-1EF8; [59, 05, 9C][, 9A, 05]
-1E8F; [59, 05, 05][, 9C, 05]
-1E8E; [59, 05, 9C][, 9C, 05]
-0233; [59, 05, 05][, A4, 05]
-0232; [59, 05, 9C][, A4, 05]
-1EF7; [59, 05, 05][, B6, 05]
-1EF6; [59, 05, 9C][, B6, 05]
-1EF5; [59, 05, 05][, C4, 05]
-1EF4; [59, 05, 9C][, C4, 05]
-
-028F; [5A 06, 05, 05]
-
-024F; [5A 08, 05, 05]
-024E; [5A 08, 05, A0]
-
-01B4; [5A 0A, 05, 05]
-01B3; [5A 0A, 05, A0]
-
-1EFF; [5A 0C, 05, 05]
-1EFE; [5A 0C, 05, A0]
-
-AB5A; [5A 0E, 05, 05]
-
-021D; [5A 10, 05, 05]
-021C; [5A 10, 05, A0]
-
-007A; [5B, 05, 05]
-FF5A; [5B, 05, 10]
-1DE6; [5B, 05, 13]
-1D433; [5B, 05, 16]
-1D467; [5B, 05, 16]
-1D49B; [5B, 05, 16]
-1D4CF; [5B, 05, 16]
-1D503; [5B, 05, 16]
-1D537; [5B, 05, 16]
-1D56B; [5B, 05, 16]
-1D59F; [5B, 05, 16]
-1D5D3; [5B, 05, 16]
-1D607; [5B, 05, 16]
-1D63B; [5B, 05, 16]
-1D66F; [5B, 05, 16]
-1D6A3; [5B, 05, 16]
-24E9; [5B, 05, 19]
-005A; [5B, 05, 9C]
-FF3A; [5B, 05, 9F]
-2124; [5B, 05, A5]
-2128; [5B, 05, A5]
-1D419; [5B, 05, A5]
-1D44D; [5B, 05, A5]
-1D481; [5B, 05, A5]
-1D4B5; [5B, 05, A5]
-1D4E9; [5B, 05, A5]
-1D585; [5B, 05, A5]
-1D5B9; [5B, 05, A5]
-1D5ED; [5B, 05, A5]
-1D621; [5B, 05, A5]
-1D655; [5B, 05, A5]
-1D689; [5B, 05, A5]
-24CF; [5B, 05, A8]
-1F169; [5B, 05, A8]
-1DBB; [5B, 05, 2B]
-1F149; [5B, 05, B1]
-1F189; [5B, 05, B1]
-017A; [5B, 05, 05][, 88, 05]
-0179; [5B, 05, 9C][, 88, 05]
-1E91; [5B, 05, 05][, 8E, 05]
-1E90; [5B, 05, 9C][, 8E, 05]
-017E; [5B, 05, 05][, 90, 05]
-017D; [5B, 05, 9C][, 90, 05]
-017C; [5B, 05, 05][, 9C, 05]
-017B; [5B, 05, 9C][, 9C, 05]
-1E93; [5B, 05, 05][, C4, 05]
-1E92; [5B, 05, 9C][, C4, 05]
-1E95; [5B, 05, 05][, D2, 05]
-1E94; [5B, 05, 9C][, D2, 05]
-018D; [5B, 05, 13][55, 05, 14]
-
-1D22; [5C 06, 05, 05]
-
-01B6; [5C 08, 05, 05]
-01B5; [5C 08, 05, A0]
-
-1D76; [5C 0A, 05, 05]
-
-1D8E; [5C 0C, 05, 05]
-
-0225; [5C 0E, 05, 05]
-0224; [5C 0E, 05, A0]
-
-0290; [5C 10, 05, 05]
-1DBC; [5C 10, 05, 20]
+04CF; [61 FC, 05, 05]
+04C0; [61 FC, 05, A0]
-0291; [5C 12, 05, 05]
-1DBD; [5C 12, 05, 2E]
+FDD1 2C00; [62 04 02, 05, 05] # GLAGOLITIC first primary starts new lead byte (compressible)
-0240; [5C 14, 05, 05]
-2C7F; [5C 14, 05, A0]
+2C30; [62 06, 05, 05]
+1E000; [62 06, 05, 20]
+2C00; [62 06, 05, AE]
-2C6C; [5C 16, 05, 05]
-2C6B; [5C 16, 05, A0]
+2C31; [62 08, 05, 05]
+1E001; [62 08, 05, 20]
+2C01; [62 08, 05, AE]
-A763; [5C 18, 05, 05]
-A762; [5C 18, 05, A0]
+2C32; [62 0A, 05, 05]
+1E002; [62 0A, 05, 20]
+2C02; [62 0A, 05, AE]
-0292; [5C 1A, 05, 05]
-01B7; [5C 1A, 05, 9E]
-1DBE; [5C 1A, 05, 2C]
-01EF; [5C 1A, 05, 05][, 90, 05]
-01EE; [5C 1A, 05, 9E][, 90, 05]
+2C33; [62 0C, 05, 05]
+1E003; [62 0C, 05, 20]
+2C03; [62 0C, 05, AE]
-1D23; [5C 1C, 05, 05]
+2C34; [62 0E, 05, 05]
+1E004; [62 0E, 05, 20]
+2C04; [62 0E, 05, AE]
-01B9; [5C 1E, 05, 05]
-01B8; [5C 1E, 05, A0]
+2C35; [62 10, 05, 05]
+1E005; [62 10, 05, 20]
+2C05; [62 10, 05, AE]
-1D9A; [5C 20, 05, 05]
+2C36; [62 12, 05, 05]
+1E006; [62 12, 05, 20]
+2C06; [62 12, 05, AE]
-01BA; [5C 22, 05, 05]
+2C37; [62 14, 05, 05]
+2C07; [62 14, 05, A0]
-0293; [5C 24, 05, 05]
+2C38; [62 16, 05, 05]
+1E008; [62 16, 05, 20]
+2C08; [62 16, 05, AE]
-00FE; [5C 26, 05, 05]
-00DE; [5C 26, 05, A0]
+2C39; [62 18, 05, 05]
+1E009; [62 18, 05, 20]
+2C09; [62 18, 05, AE]
-A765; [5C 28, 05, 05]
-A764; [5C 28, 05, A0]
+2C3A; [62 1A, 05, 05]
+1E00A; [62 1A, 05, 20]
+2C0A; [62 1A, 05, AE]
-A767; [5C 2A, 05, 05]
-A766; [5C 2A, 05, A0]
+2C3B; [62 1C, 05, 05]
+1E00B; [62 1C, 05, 20]
+2C0B; [62 1C, 05, AE]
-01BF; [5C 2C, 05, 05]
-01F7; [5C 2C, 05, A0]
+2C3C; [62 1E, 05, 05]
+1E00C; [62 1E, 05, 20]
+2C0C; [62 1E, 05, AE]
-A769; [5C 2E, 05, 05]
-A768; [5C 2E, 05, A0]
+2C3D; [62 20, 05, 05]
+1E00D; [62 20, 05, 20]
+2C0D; [62 20, 05, AE]
-AB60; [5C 30, 05, 05]
+2C3E; [62 22, 05, 05]
+1E00E; [62 22, 05, 20]
+2C0E; [62 22, 05, AE]
-AB61; [5C 32, 05, 05]
+2C3F; [62 24, 05, 05]
+1E00F; [62 24, 05, 20]
+2C0F; [62 24, 05, AE]
-AB63; [5C 34, 05, 05]
+2C40; [62 26, 05, 05]
+1E010; [62 26, 05, 20]
+2C10; [62 26, 05, AE]
-A76B; [5C 36, 05, 05]
-A76A; [5C 36, 05, A0]
+2C41; [62 28, 05, 05]
+1E011; [62 28, 05, 20]
+2C11; [62 28, 05, AE]
-A76D; [5C 38, 05, 05]
-A76C; [5C 38, 05, A0]
+2C42; [62 2A, 05, 05]
+1E012; [62 2A, 05, 20]
+2C12; [62 2A, 05, AE]
-A76F; [5C 3A, 05, 05]
-1DD2; [5C 3A, 05, 10]
-A76E; [5C 3A, 05, 9E]
-A770; [5C 3A, 05, 2C]
+2C43; [62 2C, 05, 05]
+1E013; [62 2C, 05, 20]
+2C13; [62 2C, 05, AE]
-A778; [5C 3C, 05, 05]
+2C44; [62 2E, 05, 05]
+1E014; [62 2E, 05, 20]
+2C14; [62 2E, 05, AE]
-01BB; [5C 3E, 05, 05]
+2C45; [62 30, 05, 05]
+1E015; [62 30, 05, 20]
+2C15; [62 30, 05, AE]
-A72B; [5C 40, 05, 05]
-A72A; [5C 40, 05, A0]
+2C46; [62 32, 05, 05]
+1E016; [62 32, 05, 20]
+2C16; [62 32, 05, AE]
-A72D; [5C 42, 05, 05]
-A72C; [5C 42, 05, A0]
+2C47; [62 34, 05, 05]
+1E017; [62 34, 05, 20]
+2C17; [62 34, 05, AE]
-A72F; [5C 44, 05, 05]
-A72E; [5C 44, 05, A0]
+2C48; [62 36, 05, 05]
+1E018; [62 36, 05, 20]
+2C18; [62 36, 05, AE]
-01A8; [5C 46, 05, 05]
-01A7; [5C 46, 05, A0]
+2C49; [62 38, 05, 05]
+2C19; [62 38, 05, A0]
-01BD; [5C 48, 05, 05]
-01BC; [5C 48, 05, A0]
+2C4A; [62 3A, 05, 05]
+2C1A; [62 3A, 05, A0]
-0185; [5C 4A, 05, 05]
-0184; [5C 4A, 05, A0]
+2C4B; [62 3C, 05, 05]
+1E01B; [62 3C, 05, 20]
+2C1B; [62 3C, 05, AE]
-0294; [5C 4C, 05, 05]
+2C4C; [62 3E, 05, 05]
+1E01C; [62 3E, 05, 20]
+2C1C; [62 3E, 05, AE]
-0242; [5C 4E, 05, 05]
-0241; [5C 4E, 05, A0]
+2C4D; [62 40, 05, 05]
+1E01D; [62 40, 05, 20]
+2C1D; [62 40, 05, AE]
-02C0; [5C 50, 05, 05]
+2C4E; [62 42, 05, 05]
+1E01E; [62 42, 05, 20]
+2C1E; [62 42, 05, AE]
-02BC; [5C 52, 05, 05]
-0149; [5C 52, 05, 20][43, 05, 13]
+2C4F; [62 44, 05, 05]
+1E01F; [62 44, 05, 20]
+2C1F; [62 44, 05, AE]
-02EE; [5C 54, 05, 05]
+2C50; [62 46, 05, 05]
+1E020; [62 46, 05, 20]
+2C20; [62 46, 05, AE]
-02BE; [5C 56, 05, 05]
+2C51; [62 48, 05, 05]
+1E021; [62 48, 05, 20]
+2C21; [62 48, 05, AE]
-A723; [5C 58, 05, 05]
-A722; [5C 58, 05, A0]
+2C52; [62 4A, 05, 05]
+2C22; [62 4A, 05, A0]
-A78C; [5C 5A, 05, 05]
-A78B; [5C 5A, 05, A0]
+2C53; [62 4C, 05, 05]
+1E023; [62 4C, 05, 20]
+2C23; [62 4C, 05, AE]
-A78F; [5C 5C, 05, 05]
+2C54; [62 4E, 05, 05]
+1E024; [62 4E, 05, 20]
+2C24; [62 4E, 05, AE]
-0295; [5C 5E, 05, 05]
-02E4; [5C 5E, 05, 20]
+2C55; [62 50, 05, 05]
+2C25; [62 50, 05, A0]
-02BF; [5C 60, 05, 05]
+2C56; [62 52, 05, 05]
+1E026; [62 52, 05, 20]
+2C26; [62 52, 05, AE]
-02C1; [5C 62, 05, 05]
+2C57; [62 54, 05, 05]
+1E027; [62 54, 05, 20]
+2C27; [62 54, 05, AE]
-1D24; [5C 64, 05, 05]
+2C58; [62 56, 05, 05]
+1E028; [62 56, 05, 20]
+2C28; [62 56, 05, AE]
-1D25; [5C 66, 05, 05]
-1D5C; [5C 66, 05, 20]
+2C59; [62 58, 05, 05]
+1E029; [62 58, 05, 20]
+2C29; [62 58, 05, AE]
-A725; [5C 68, 05, 05]
-A724; [5C 68, 05, A0]
+2C5A; [62 5A, 05, 05]
+1E02A; [62 5A, 05, 20]
+2C2A; [62 5A, 05, AE]
-02A1; [5C 6A, 05, 05]
+2C5B; [62 5C, 05, 05]
+2C2B; [62 5C, 05, A0]
-02A2; [5C 6C, 05, 05]
+2C5C; [62 5E, 05, 05]
+2C2C; [62 5E, 05, A0]
-0296; [5C 6E, 05, 05]
+2C5D; [62 60, 05, 05]
+2C2D; [62 60, 05, A0]
-01C0; [5C 70, 05, 05]
+2C5E; [62 62, 05, 05]
+2C2E; [62 62, 05, A0]
-01C1; [5C 72, 05, 05]
-
-01C2; [5C 74, 05, 05]
-
-01C3; [5C 76, 05, 05]
-
-0297; [5C 78, 05, 05]
-
-0298; [5C 7A, 05, 05]
-
-02AC; [5C 7C, 05, 05]
-
-02AD; [5C 7E, 05, 05]
-
-FDD0 FF3A; [5D 02 02, 05, 05] # REORDER_RESERVED_AFTER_LATIN first primary starts new lead byte
-
-FDD1 03A9; [5F 04 02, 05, 05] # GREEK first primary starts new lead byte (compressible)
-
-03B1; [5F 06, 05, 05]
-1D6C2; [5F 06, 05, 1B]
-1D6FC; [5F 06, 05, 1B]
-1D736; [5F 06, 05, 1B]
-1D770; [5F 06, 05, 1B]
-1D7AA; [5F 06, 05, 1B]
-0391; [5F 06, 05, A6]
-1D6A8; [5F 06, 05, B1]
-1D6E2; [5F 06, 05, B1]
-1D71C; [5F 06, 05, B1]
-1D756; [5F 06, 05, B1]
-1D790; [5F 06, 05, B1]
-1F00; [5F 06, 05, 05][, 84, 05]
-1F08; [5F 06, 05, A6][, 84, 05]
-1F04; [5F 06, 05, 05][, 84, 05][, 88, 05]
-1F0C; [5F 06, 05, A6][, 84, 05][, 88, 05]
-1F84; [5F 06, 05, 05][, 84, 05][, 88, 05][, D8, 05]
-1F8C; [5F 06, 05, A6][, 84, 05][, 88, 05][, D8, 05]
-1F02; [5F 06, 05, 05][, 84, 05][, 8A, 05]
-1F0A; [5F 06, 05, A6][, 84, 05][, 8A, 05]
-1F82; [5F 06, 05, 05][, 84, 05][, 8A, 05][, D8, 05]
-1F8A; [5F 06, 05, A6][, 84, 05][, 8A, 05][, D8, 05]
-1F06; [5F 06, 05, 05][, 84, 05][, 94, 05]
-1F0E; [5F 06, 05, A6][, 84, 05][, 94, 05]
-1F86; [5F 06, 05, 05][, 84, 05][, 94, 05][, D8, 05]
-1F8E; [5F 06, 05, A6][, 84, 05][, 94, 05][, D8, 05]
-1F80; [5F 06, 05, 05][, 84, 05][, D8, 05]
-1F88; [5F 06, 05, A6][, 84, 05][, D8, 05]
-1F01; [5F 06, 05, 05][, 86, 05]
-1F09; [5F 06, 05, A6][, 86, 05]
-1F05; [5F 06, 05, 05][, 86, 05][, 88, 05]
-1F0D; [5F 06, 05, A6][, 86, 05][, 88, 05]
-1F85; [5F 06, 05, 05][, 86, 05][, 88, 05][, D8, 05]
-1F8D; [5F 06, 05, A6][, 86, 05][, 88, 05][, D8, 05]
-1F03; [5F 06, 05, 05][, 86, 05][, 8A, 05]
-1F0B; [5F 06, 05, A6][, 86, 05][, 8A, 05]
-1F83; [5F 06, 05, 05][, 86, 05][, 8A, 05][, D8, 05]
-1F8B; [5F 06, 05, A6][, 86, 05][, 8A, 05][, D8, 05]
-1F07; [5F 06, 05, 05][, 86, 05][, 94, 05]
-1F0F; [5F 06, 05, A6][, 86, 05][, 94, 05]
-1F87; [5F 06, 05, 05][, 86, 05][, 94, 05][, D8, 05]
-1F8F; [5F 06, 05, A6][, 86, 05][, 94, 05][, D8, 05]
-1F81; [5F 06, 05, 05][, 86, 05][, D8, 05]
-1F89; [5F 06, 05, A6][, 86, 05][, D8, 05]
-03AC; [5F 06, 05, 05][, 88, 05]
-1F71; [5F 06, 05, 05][, 88, 05]
-0386; [5F 06, 05, A6][, 88, 05]
-1FBB; [5F 06, 05, A6][, 88, 05]
-1FB4; [5F 06, 05, 05][, 88, 05][, D8, 05]
-1F70; [5F 06, 05, 05][, 8A, 05]
-1FBA; [5F 06, 05, A6][, 8A, 05]
-1FB2; [5F 06, 05, 05][, 8A, 05][, D8, 05]
-1FB0; [5F 06, 05, 05][, 8C, 05]
-1FB8; [5F 06, 05, A6][, 8C, 05]
-1FB6; [5F 06, 05, 05][, 94, 05]
-1FB7; [5F 06, 05, 05][, 94, 05][, D8, 05]
-1FB1; [5F 06, 05, 05][, A4, 05]
-1FB9; [5F 06, 05, A6][, A4, 05]
-1FB3; [5F 06, 05, 05][, D8, 05]
-1FBC; [5F 06, 05, A6][, D8, 05]
-
-03B2; [5F 08, 05, 05]
-03D0; [5F 08, 05, 10]
-1D6C3; [5F 08, 05, 17]
-1D6FD; [5F 08, 05, 17]
-1D737; [5F 08, 05, 17]
-1D771; [5F 08, 05, 17]
-1D7AB; [5F 08, 05, 17]
-0392; [5F 08, 05, 9E]
-1D6A9; [5F 08, 05, A5]
-1D6E3; [5F 08, 05, A5]
-1D71D; [5F 08, 05, A5]
-1D757; [5F 08, 05, A5]
-1D791; [5F 08, 05, A5]
-1D5D; [5F 08, 05, 2C]
-1D66; [5F 08, 05, 33]
-
-03B3; [5F 0A, 05, 05]
-213D; [5F 0A, 05, 10]
-1D6C4; [5F 0A, 05, 10]
-1D6FE; [5F 0A, 05, 10]
-1D738; [5F 0A, 05, 10]
-1D772; [5F 0A, 05, 10]
-1D7AC; [5F 0A, 05, 10]
-0393; [5F 0A, 05, 98]
-213E; [5F 0A, 05, A0]
-1D6AA; [5F 0A, 05, A0]
-1D6E4; [5F 0A, 05, A0]
-1D71E; [5F 0A, 05, A0]
-1D758; [5F 0A, 05, A0]
-1D792; [5F 0A, 05, A0]
-1D5E; [5F 0A, 05, 28]
-1D67; [5F 0A, 05, 30]
-
-1D26; [5F 0C, 05, 05]
-
-03B4; [5F 0E, 05, 05]
-1D6C5; [5F 0E, 05, 10]
-1D6FF; [5F 0E, 05, 10]
-1D739; [5F 0E, 05, 10]
-1D773; [5F 0E, 05, 10]
-1D7AD; [5F 0E, 05, 10]
-0394; [5F 0E, 05, 9B]
-1D6AB; [5F 0E, 05, A6]
-1D6E5; [5F 0E, 05, A6]
-1D71F; [5F 0E, 05, A6]
-1D759; [5F 0E, 05, A6]
-1D793; [5F 0E, 05, A6]
-1D5F; [5F 0E, 05, 31]
-
-03B5; [5F 10, 05, 05]
-03F5; [5F 10, 05, 10]
-1D6C6; [5F 10, 05, 1B]
-1D6DC; [5F 10, 05, 1B]
-1D700; [5F 10, 05, 1B]
-1D716; [5F 10, 05, 1B]
-1D73A; [5F 10, 05, 1B]
-1D750; [5F 10, 05, 1B]
-1D774; [5F 10, 05, 1B]
-1D78A; [5F 10, 05, 1B]
-1D7AE; [5F 10, 05, 1B]
-1D7C4; [5F 10, 05, 1B]
-0395; [5F 10, 05, A6]
-1D6AC; [5F 10, 05, B1]
-1D6E6; [5F 10, 05, B1]
-1D720; [5F 10, 05, B1]
-1D75A; [5F 10, 05, B1]
-1D794; [5F 10, 05, B1]
-1F10; [5F 10, 05, 05][, 84, 05]
-1F18; [5F 10, 05, A6][, 84, 05]
-1F14; [5F 10, 05, 05][, 84, 05][, 88, 05]
-1F1C; [5F 10, 05, A6][, 84, 05][, 88, 05]
-1F12; [5F 10, 05, 05][, 84, 05][, 8A, 05]
-1F1A; [5F 10, 05, A6][, 84, 05][, 8A, 05]
-1F11; [5F 10, 05, 05][, 86, 05]
-1F19; [5F 10, 05, A6][, 86, 05]
-1F15; [5F 10, 05, 05][, 86, 05][, 88, 05]
-1F1D; [5F 10, 05, A6][, 86, 05][, 88, 05]
-1F13; [5F 10, 05, 05][, 86, 05][, 8A, 05]
-1F1B; [5F 10, 05, A6][, 86, 05][, 8A, 05]
-03AD; [5F 10, 05, 05][, 88, 05]
-1F73; [5F 10, 05, 05][, 88, 05]
-0388; [5F 10, 05, A6][, 88, 05]
-1FC9; [5F 10, 05, A6][, 88, 05]
-1F72; [5F 10, 05, 05][, 8A, 05]
-1FC8; [5F 10, 05, A6][, 8A, 05]
-
-03DD; [5F 12, 05, 05]
-1D7CB; [5F 12, 05, 10]
-03DC; [5F 12, 05, 9E]
-1D7CA; [5F 12, 05, AC]
-
-0377; [5F 14, 05, 05]
-0376; [5F 14, 05, A0]
-
-03DB; [5F 16, 05, 05]
-03DA; [5F 16, 05, A0]
-
-03B6; [5F 18, 05, 05]
-1D6C7; [5F 18, 05, 10]
-1D701; [5F 18, 05, 10]
-1D73B; [5F 18, 05, 10]
-1D775; [5F 18, 05, 10]
-1D7AF; [5F 18, 05, 10]
-0396; [5F 18, 05, 9E]
-1D6AD; [5F 18, 05, AC]
-1D6E7; [5F 18, 05, AC]
-1D721; [5F 18, 05, AC]
-1D75B; [5F 18, 05, AC]
-1D795; [5F 18, 05, AC]
-
-0371; [5F 1A, 05, 05]
-0370; [5F 1A, 05, A0]
-
-03B7; [5F 1C, 05, 05]
-1D6C8; [5F 1C, 05, 10]
-1D702; [5F 1C, 05, 10]
-1D73C; [5F 1C, 05, 10]
-1D776; [5F 1C, 05, 10]
-1D7B0; [5F 1C, 05, 10]
-0397; [5F 1C, 05, 9E]
-1D6AE; [5F 1C, 05, AC]
-1D6E8; [5F 1C, 05, AC]
-1D722; [5F 1C, 05, AC]
-1D75C; [5F 1C, 05, AC]
-1D796; [5F 1C, 05, AC]
-1F20; [5F 1C, 05, 05][, 84, 05]
-1F28; [5F 1C, 05, 9E][, 84, 05]
-1F24; [5F 1C, 05, 05][, 84, 05][, 88, 05]
-1F2C; [5F 1C, 05, 9E][, 84, 05][, 88, 05]
-1F94; [5F 1C, 05, 05][, 84, 05][, 88, 05][, D8, 05]
-1F9C; [5F 1C, 05, 9E][, 84, 05][, 88, 05][, D8, 05]
-1F22; [5F 1C, 05, 05][, 84, 05][, 8A, 05]
-1F2A; [5F 1C, 05, 9E][, 84, 05][, 8A, 05]
-1F92; [5F 1C, 05, 05][, 84, 05][, 8A, 05][, D8, 05]
-1F9A; [5F 1C, 05, 9E][, 84, 05][, 8A, 05][, D8, 05]
-1F26; [5F 1C, 05, 05][, 84, 05][, 94, 05]
-1F2E; [5F 1C, 05, 9E][, 84, 05][, 94, 05]
-1F96; [5F 1C, 05, 05][, 84, 05][, 94, 05][, D8, 05]
-1F9E; [5F 1C, 05, 9E][, 84, 05][, 94, 05][, D8, 05]
-1F90; [5F 1C, 05, 05][, 84, 05][, D8, 05]
-1F98; [5F 1C, 05, 9E][, 84, 05][, D8, 05]
-1F21; [5F 1C, 05, 05][, 86, 05]
-1F29; [5F 1C, 05, 9E][, 86, 05]
-1F25; [5F 1C, 05, 05][, 86, 05][, 88, 05]
-1F2D; [5F 1C, 05, 9E][, 86, 05][, 88, 05]
-1F95; [5F 1C, 05, 05][, 86, 05][, 88, 05][, D8, 05]
-1F9D; [5F 1C, 05, 9E][, 86, 05][, 88, 05][, D8, 05]
-1F23; [5F 1C, 05, 05][, 86, 05][, 8A, 05]
-1F2B; [5F 1C, 05, 9E][, 86, 05][, 8A, 05]
-1F93; [5F 1C, 05, 05][, 86, 05][, 8A, 05][, D8, 05]
-1F9B; [5F 1C, 05, 9E][, 86, 05][, 8A, 05][, D8, 05]
-1F27; [5F 1C, 05, 05][, 86, 05][, 94, 05]
-1F2F; [5F 1C, 05, 9E][, 86, 05][, 94, 05]
-1F97; [5F 1C, 05, 05][, 86, 05][, 94, 05][, D8, 05]
-1F9F; [5F 1C, 05, 9E][, 86, 05][, 94, 05][, D8, 05]
-1F91; [5F 1C, 05, 05][, 86, 05][, D8, 05]
-1F99; [5F 1C, 05, 9E][, 86, 05][, D8, 05]
-03AE; [5F 1C, 05, 05][, 88, 05]
-1F75; [5F 1C, 05, 05][, 88, 05]
-0389; [5F 1C, 05, 9E][, 88, 05]
-1FCB; [5F 1C, 05, 9E][, 88, 05]
-1FC4; [5F 1C, 05, 05][, 88, 05][, D8, 05]
-1F74; [5F 1C, 05, 05][, 8A, 05]
-1FCA; [5F 1C, 05, 9E][, 8A, 05]
-1FC2; [5F 1C, 05, 05][, 8A, 05][, D8, 05]
-1FC6; [5F 1C, 05, 05][, 94, 05]
-1FC7; [5F 1C, 05, 05][, 94, 05][, D8, 05]
-1FC3; [5F 1C, 05, 05][, D8, 05]
-1FCC; [5F 1C, 05, 9E][, D8, 05]
-
-03B8; [5F 1E, 05, 05]
-03D1; [5F 1E, 05, 10]
-1D6C9; [5F 1E, 05, 17]
-1D6DD; [5F 1E, 05, 17]
-1D703; [5F 1E, 05, 17]
-1D717; [5F 1E, 05, 17]
-1D73D; [5F 1E, 05, 17]
-1D751; [5F 1E, 05, 17]
-1D777; [5F 1E, 05, 17]
-1D78B; [5F 1E, 05, 17]
-1D7B1; [5F 1E, 05, 17]
-1D7C5; [5F 1E, 05, 17]
-0398; [5F 1E, 05, 9E]
-03F4; [5F 1E, 05, A5]
-1D6AF; [5F 1E, 05, AC]
-1D6B9; [5F 1E, 05, AC]
-1D6E9; [5F 1E, 05, AC]
-1D6F3; [5F 1E, 05, AC]
-1D723; [5F 1E, 05, AC]
-1D72D; [5F 1E, 05, AC]
-1D75D; [5F 1E, 05, AC]
-1D767; [5F 1E, 05, AC]
-1D797; [5F 1E, 05, AC]
-1D7A1; [5F 1E, 05, AC]
-1DBF; [5F 1E, 05, 33]
-
-03B9; [5F 20, 05, 05]
-1FBE; [5F 20, 05, 05]
-037A; [5F 20, 05, 10]
-1D6CA; [5F 20, 05, 1B]
-1D704; [5F 20, 05, 1B]
-1D73E; [5F 20, 05, 1B]
-1D778; [5F 20, 05, 1B]
-1D7B2; [5F 20, 05, 1B]
-0399; [5F 20, 05, A6]
-1D6B0; [5F 20, 05, B1]
-1D6EA; [5F 20, 05, B1]
-1D724; [5F 20, 05, B1]
-1D75E; [5F 20, 05, B1]
-1D798; [5F 20, 05, B1]
-1F30; [5F 20, 05, 05][, 84, 05]
-1F38; [5F 20, 05, A6][, 84, 05]
-1F34; [5F 20, 05, 05][, 84, 05][, 88, 05]
-1F3C; [5F 20, 05, A6][, 84, 05][, 88, 05]
-1F32; [5F 20, 05, 05][, 84, 05][, 8A, 05]
-1F3A; [5F 20, 05, A6][, 84, 05][, 8A, 05]
-1F36; [5F 20, 05, 05][, 84, 05][, 94, 05]
-1F3E; [5F 20, 05, A6][, 84, 05][, 94, 05]
-1F31; [5F 20, 05, 05][, 86, 05]
-1F39; [5F 20, 05, A6][, 86, 05]
-1F35; [5F 20, 05, 05][, 86, 05][, 88, 05]
-1F3D; [5F 20, 05, A6][, 86, 05][, 88, 05]
-1F33; [5F 20, 05, 05][, 86, 05][, 8A, 05]
-1F3B; [5F 20, 05, A6][, 86, 05][, 8A, 05]
-1F37; [5F 20, 05, 05][, 86, 05][, 94, 05]
-1F3F; [5F 20, 05, A6][, 86, 05][, 94, 05]
-03AF; [5F 20, 05, 05][, 88, 05]
-1F77; [5F 20, 05, 05][, 88, 05]
-038A; [5F 20, 05, A6][, 88, 05]
-1FDB; [5F 20, 05, A6][, 88, 05]
-1F76; [5F 20, 05, 05][, 8A, 05]
-1FDA; [5F 20, 05, A6][, 8A, 05]
-1FD0; [5F 20, 05, 05][, 8C, 05]
-1FD8; [5F 20, 05, A6][, 8C, 05]
-1FD6; [5F 20, 05, 05][, 94, 05]
-03CA; [5F 20, 05, 05][, 96, 05]
-03AA; [5F 20, 05, A6][, 96, 05]
-0390; [5F 20, 05, 05][, 96, 05][, 88, 05]
-1FD3; [5F 20, 05, 05][, 96, 05][, 88, 05]
-1FD2; [5F 20, 05, 05][, 96, 05][, 8A, 05]
-1FD7; [5F 20, 05, 05][, 96, 05][, 94, 05]
-1FD1; [5F 20, 05, 05][, A4, 05]
-1FD9; [5F 20, 05, A6][, A4, 05]
-
-03F3; [5F 22, 05, 05]
-037F; [5F 22, 05, A0]
-
-03BA; [5F 24, 05, 05]
-03F0; [5F 24, 05, 10]
-1D6CB; [5F 24, 05, 18]
-1D6DE; [5F 24, 05, 18]
-1D705; [5F 24, 05, 18]
-1D718; [5F 24, 05, 18]
-1D73F; [5F 24, 05, 18]
-1D752; [5F 24, 05, 18]
-1D779; [5F 24, 05, 18]
-1D78C; [5F 24, 05, 18]
-1D7B3; [5F 24, 05, 18]
-1D7C6; [5F 24, 05, 18]
-039A; [5F 24, 05, A0]
-1D6B1; [5F 24, 05, B0]
-1D6EB; [5F 24, 05, B0]
-1D725; [5F 24, 05, B0]
-1D75F; [5F 24, 05, B0]
-1D799; [5F 24, 05, B0]
-03D7; [5F 24, 05, 10][5F 06, 05, 10][5F 20, 05, 10]
-03CF; [5F 24, 05, A8][5F 06, 05, 10][5F 20, 05, 10]
-
-03BB; [5F 26, 05, 05]
-1D6CC; [5F 26, 05, 10]
-1D706; [5F 26, 05, 10]
-1D740; [5F 26, 05, 10]
-1D77A; [5F 26, 05, 10]
-1D7B4; [5F 26, 05, 10]
-039B; [5F 26, 05, 9E]
-1D6B2; [5F 26, 05, AC]
-1D6EC; [5F 26, 05, AC]
-1D726; [5F 26, 05, AC]
-1D760; [5F 26, 05, AC]
-1D79A; [5F 26, 05, AC]
-
-1D27; [5F 28, 05, 05]
-
-03BC; [5F 2A, 05, 05]
-00B5; [5F 2A, 05, 10]
-1D6CD; [5F 2A, 05, 18]
-1D707; [5F 2A, 05, 18]
-1D741; [5F 2A, 05, 18]
-1D77B; [5F 2A, 05, 18]
-1D7B5; [5F 2A, 05, 18]
-039C; [5F 2A, 05, A0]
-1D6B3; [5F 2A, 05, A8]
-1D6ED; [5F 2A, 05, A8]
-1D727; [5F 2A, 05, A8]
-1D761; [5F 2A, 05, A8]
-1D79B; [5F 2A, 05, A8]
-3382; [5F 2A, 05, 30][29, 05, B4]
-338C; [5F 2A, 05, 30][33, 05, B1]
-338D; [5F 2A, 05, 30][35, 05, 2E]
-3395; [5F 2A, 05, 30][3F, 05, 31]
-339B; [5F 2A, 05, 30][41, 05, 31]
-33B2; [5F 2A, 05, 30][4D, 05, 31]
-33B6; [5F 2A, 05, 30][53, 05, B4]
-33BC; [5F 2A, 05, 30][55, 05, B8]
-
-03BD; [5F 2C, 05, 05]
-1D6CE; [5F 2C, 05, 10]
-1D708; [5F 2C, 05, 10]
-1D742; [5F 2C, 05, 10]
-1D77C; [5F 2C, 05, 10]
-1D7B6; [5F 2C, 05, 10]
-039D; [5F 2C, 05, 9E]
-1D6B4; [5F 2C, 05, AC]
-1D6EE; [5F 2C, 05, AC]
-1D728; [5F 2C, 05, AC]
-1D762; [5F 2C, 05, AC]
-1D79C; [5F 2C, 05, AC]
-
-03BE; [5F 2E, 05, 05]
-1D6CF; [5F 2E, 05, 10]
-1D709; [5F 2E, 05, 10]
-1D743; [5F 2E, 05, 10]
-1D77D; [5F 2E, 05, 10]
-1D7B7; [5F 2E, 05, 10]
-039E; [5F 2E, 05, 9E]
-1D6B5; [5F 2E, 05, AC]
-1D6EF; [5F 2E, 05, AC]
-1D729; [5F 2E, 05, AC]
-1D763; [5F 2E, 05, AC]
-1D79D; [5F 2E, 05, AC]
-
-03BF; [5F 30, 05, 05]
-1D6D0; [5F 30, 05, 10]
-1D70A; [5F 30, 05, 10]
-1D744; [5F 30, 05, 10]
-1D77E; [5F 30, 05, 10]
-1D7B8; [5F 30, 05, 10]
-039F; [5F 30, 05, 9E]
-1D6B6; [5F 30, 05, AC]
-1D6F0; [5F 30, 05, AC]
-1D72A; [5F 30, 05, AC]
-1D764; [5F 30, 05, AC]
-1D79E; [5F 30, 05, AC]
-1F40; [5F 30, 05, 05][, 84, 05]
-1F48; [5F 30, 05, 9E][, 84, 05]
-1F44; [5F 30, 05, 05][, 84, 05][, 88, 05]
-1F4C; [5F 30, 05, 9E][, 84, 05][, 88, 05]
-1F42; [5F 30, 05, 05][, 84, 05][, 8A, 05]
-1F4A; [5F 30, 05, 9E][, 84, 05][, 8A, 05]
-1F41; [5F 30, 05, 05][, 86, 05]
-1F49; [5F 30, 05, 9E][, 86, 05]
-1F45; [5F 30, 05, 05][, 86, 05][, 88, 05]
-1F4D; [5F 30, 05, 9E][, 86, 05][, 88, 05]
-1F43; [5F 30, 05, 05][, 86, 05][, 8A, 05]
-1F4B; [5F 30, 05, 9E][, 86, 05][, 8A, 05]
-03CC; [5F 30, 05, 05][, 88, 05]
-1F79; [5F 30, 05, 05][, 88, 05]
-038C; [5F 30, 05, 9E][, 88, 05]
-1FF9; [5F 30, 05, 9E][, 88, 05]
-1F78; [5F 30, 05, 05][, 8A, 05]
-1FF8; [5F 30, 05, 9E][, 8A, 05]
-
-03C0; [5F 32, 05, 05]
-03D6; [5F 32, 05, 10]
-213C; [5F 32, 05, 1B]
-1D6D1; [5F 32, 05, 1B]
-1D6E1; [5F 32, 05, 1B]
-1D70B; [5F 32, 05, 1B]
-1D71B; [5F 32, 05, 1B]
-1D745; [5F 32, 05, 1B]
-1D755; [5F 32, 05, 1B]
-1D77F; [5F 32, 05, 1B]
-1D78F; [5F 32, 05, 1B]
-1D7B9; [5F 32, 05, 1B]
-1D7C9; [5F 32, 05, 1B]
-03A0; [5F 32, 05, A6]
-213F; [5F 32, 05, B1]
-1D6B7; [5F 32, 05, B1]
-1D6F1; [5F 32, 05, B1]
-1D72B; [5F 32, 05, B1]
-1D765; [5F 32, 05, B1]
-1D79F; [5F 32, 05, B1]
-
-1D28; [5F 34, 05, 05]
-
-03FB; [5F 36, 05, 05]
-03FA; [5F 36, 05, A0]
-
-03DF; [5F 38, 05, 05]
-03DE; [5F 38, 05, A0]
-
-03D9; [5F 3A, 05, 05]
-03D8; [5F 3A, 05, A0]
-
-03C1; [5F 3C, 05, 05]
-03F1; [5F 3C, 05, 10]
-1D6D2; [5F 3C, 05, 18]
-1D6E0; [5F 3C, 05, 18]
-1D70C; [5F 3C, 05, 18]
-1D71A; [5F 3C, 05, 18]
-1D746; [5F 3C, 05, 18]
-1D754; [5F 3C, 05, 18]
-1D780; [5F 3C, 05, 18]
-1D78E; [5F 3C, 05, 18]
-1D7BA; [5F 3C, 05, 18]
-1D7C8; [5F 3C, 05, 18]
-03A1; [5F 3C, 05, A0]
-1D6B8; [5F 3C, 05, A8]
-1D6F2; [5F 3C, 05, A8]
-1D72C; [5F 3C, 05, A8]
-1D766; [5F 3C, 05, A8]
-1D7A0; [5F 3C, 05, A8]
-1D68; [5F 3C, 05, 30]
-1FE4; [5F 3C, 05, 05][, 84, 05]
-1FE5; [5F 3C, 05, 05][, 86, 05]
-1FEC; [5F 3C, 05, A0][, 86, 05]
-
-1D29; [5F 3E, 05, 05]
-
-03FC; [5F 40, 05, 05]
-
-03C3; [5F 42, 05, 05]
-03F2; [5F 42, 05, 10]
-1D6D3; [5F 42, 05, 17]
-1D6D4; [5F 42, 05, 17]
-1D70D; [5F 42, 05, 17]
-1D70E; [5F 42, 05, 17]
-1D747; [5F 42, 05, 17]
-1D748; [5F 42, 05, 17]
-1D781; [5F 42, 05, 17]
-1D782; [5F 42, 05, 17]
-1D7BB; [5F 42, 05, 17]
-1D7BC; [5F 42, 05, 17]
-03A3; [5F 42, 05, 9E]
-03F9; [5F 42, 05, A5]
-1D6BA; [5F 42, 05, AC]
-1D6F4; [5F 42, 05, AC]
-1D72E; [5F 42, 05, AC]
-1D768; [5F 42, 05, AC]
-1D7A2; [5F 42, 05, AC]
-03C2; [5F 42, 05, 33]
-
-037C; [5F 44, 05, 05]
-03FE; [5F 44, 05, A0]
-
-037B; [5F 46, 05, 05]
-03FD; [5F 46, 05, A0]
-
-037D; [5F 48, 05, 05]
-03FF; [5F 48, 05, A0]
-
-03C4; [5F 4A, 05, 05]
-1D6D5; [5F 4A, 05, 10]
-1D70F; [5F 4A, 05, 10]
-1D749; [5F 4A, 05, 10]
-1D783; [5F 4A, 05, 10]
-1D7BD; [5F 4A, 05, 10]
-03A4; [5F 4A, 05, 9E]
-1D6BB; [5F 4A, 05, AC]
-1D6F5; [5F 4A, 05, AC]
-1D72F; [5F 4A, 05, AC]
-1D769; [5F 4A, 05, AC]
-1D7A3; [5F 4A, 05, AC]
-
-03C5; [5F 4C, 05, 05]
-1D6D6; [5F 4C, 05, 10]
-1D710; [5F 4C, 05, 10]
-1D74A; [5F 4C, 05, 10]
-1D784; [5F 4C, 05, 10]
-1D7BE; [5F 4C, 05, 10]
-03A5; [5F 4C, 05, 9B]
-03D2; [5F 4C, 05, A6]
-1D6BC; [5F 4C, 05, B1]
-1D6F6; [5F 4C, 05, B1]
-1D730; [5F 4C, 05, B1]
-1D76A; [5F 4C, 05, B1]
-1D7A4; [5F 4C, 05, B1]
-1F50; [5F 4C, 05, 05][, 84, 05]
-1F54; [5F 4C, 05, 05][, 84, 05][, 88, 05]
-1F52; [5F 4C, 05, 05][, 84, 05][, 8A, 05]
-1F56; [5F 4C, 05, 05][, 84, 05][, 94, 05]
-1F51; [5F 4C, 05, 05][, 86, 05]
-1F59; [5F 4C, 05, 9B][, 86, 05]
-1F55; [5F 4C, 05, 05][, 86, 05][, 88, 05]
-1F5D; [5F 4C, 05, 9B][, 86, 05][, 88, 05]
-1F53; [5F 4C, 05, 05][, 86, 05][, 8A, 05]
-1F5B; [5F 4C, 05, 9B][, 86, 05][, 8A, 05]
-1F57; [5F 4C, 05, 05][, 86, 05][, 94, 05]
-1F5F; [5F 4C, 05, 9B][, 86, 05][, 94, 05]
-03CD; [5F 4C, 05, 05][, 88, 05]
-1F7B; [5F 4C, 05, 05][, 88, 05]
-038E; [5F 4C, 05, 9B][, 88, 05]
-1FEB; [5F 4C, 05, 9B][, 88, 05]
-03D3; [5F 4C, 05, A6][, 88, 05]
-1F7A; [5F 4C, 05, 05][, 8A, 05]
-1FEA; [5F 4C, 05, 9B][, 8A, 05]
-1FE0; [5F 4C, 05, 05][, 8C, 05]
-1FE8; [5F 4C, 05, 9B][, 8C, 05]
-1FE6; [5F 4C, 05, 05][, 94, 05]
-03CB; [5F 4C, 05, 05][, 96, 05]
-03AB; [5F 4C, 05, 9B][, 96, 05]
-03D4; [5F 4C, 05, A6][, 96, 05]
-03B0; [5F 4C, 05, 05][, 96, 05][, 88, 05]
-1FE3; [5F 4C, 05, 05][, 96, 05][, 88, 05]
-1FE2; [5F 4C, 05, 05][, 96, 05][, 8A, 05]
-1FE7; [5F 4C, 05, 05][, 96, 05][, 94, 05]
-1FE1; [5F 4C, 05, 05][, A4, 05]
-1FE9; [5F 4C, 05, 9B][, A4, 05]
-
-03C6; [5F 4E, 05, 05]
-03D5; [5F 4E, 05, 10]
-1D6D7; [5F 4E, 05, 17]
-1D6DF; [5F 4E, 05, 17]
-1D711; [5F 4E, 05, 17]
-1D719; [5F 4E, 05, 17]
-1D74B; [5F 4E, 05, 17]
-1D753; [5F 4E, 05, 17]
-1D785; [5F 4E, 05, 17]
-1D78D; [5F 4E, 05, 17]
-1D7BF; [5F 4E, 05, 17]
-1D7C7; [5F 4E, 05, 17]
-03A6; [5F 4E, 05, 9E]
-1D6BD; [5F 4E, 05, A5]
-1D6F7; [5F 4E, 05, A5]
-1D731; [5F 4E, 05, A5]
-1D76B; [5F 4E, 05, A5]
-1D7A5; [5F 4E, 05, A5]
-1D60; [5F 4E, 05, 2C]
-1D69; [5F 4E, 05, 33]
-
-03C7; [5F 50, 05, 05]
-1D6D8; [5F 50, 05, 10]
-1D712; [5F 50, 05, 10]
-1D74C; [5F 50, 05, 10]
-1D786; [5F 50, 05, 10]
-1D7C0; [5F 50, 05, 10]
-03A7; [5F 50, 05, 98]
-1D6BE; [5F 50, 05, A0]
-1D6F8; [5F 50, 05, A0]
-1D732; [5F 50, 05, A0]
-1D76C; [5F 50, 05, A0]
-1D7A6; [5F 50, 05, A0]
-1D61; [5F 50, 05, 28]
-1D6A; [5F 50, 05, 30]
-
-03C8; [5F 52, 05, 05]
-1D6D9; [5F 52, 05, 10]
-1D713; [5F 52, 05, 10]
-1D74D; [5F 52, 05, 10]
-1D787; [5F 52, 05, 10]
-1D7C1; [5F 52, 05, 10]
-03A8; [5F 52, 05, 9E]
-1D6BF; [5F 52, 05, AC]
-1D6F9; [5F 52, 05, AC]
-1D733; [5F 52, 05, AC]
-1D76D; [5F 52, 05, AC]
-1D7A7; [5F 52, 05, AC]
-
-1D2A; [5F 54, 05, 05]
-
-03C9; [5F 56, 05, 05]
-1D6DA; [5F 56, 05, 10]
-1D714; [5F 56, 05, 10]
-1D74E; [5F 56, 05, 10]
-1D788; [5F 56, 05, 10]
-1D7C2; [5F 56, 05, 10]
-03A9; [5F 56, 05, 9B]
-2126; [5F 56, 05, 9B]
-1D6C0; [5F 56, 05, A6]
-1D6FA; [5F 56, 05, A6]
-1D734; [5F 56, 05, A6]
-1D76E; [5F 56, 05, A6]
-1D7A8; [5F 56, 05, A6]
-1F60; [5F 56, 05, 05][, 84, 05]
-1F68; [5F 56, 05, 9B][, 84, 05]
-1F64; [5F 56, 05, 05][, 84, 05][, 88, 05]
-1F6C; [5F 56, 05, 9B][, 84, 05][, 88, 05]
-1FA4; [5F 56, 05, 05][, 84, 05][, 88, 05][, D8, 05]
-1FAC; [5F 56, 05, 9B][, 84, 05][, 88, 05][, D8, 05]
-1F62; [5F 56, 05, 05][, 84, 05][, 8A, 05]
-1F6A; [5F 56, 05, 9B][, 84, 05][, 8A, 05]
-1FA2; [5F 56, 05, 05][, 84, 05][, 8A, 05][, D8, 05]
-1FAA; [5F 56, 05, 9B][, 84, 05][, 8A, 05][, D8, 05]
-1F66; [5F 56, 05, 05][, 84, 05][, 94, 05]
-1F6E; [5F 56, 05, 9B][, 84, 05][, 94, 05]
-1FA6; [5F 56, 05, 05][, 84, 05][, 94, 05][, D8, 05]
-1FAE; [5F 56, 05, 9B][, 84, 05][, 94, 05][, D8, 05]
-1FA0; [5F 56, 05, 05][, 84, 05][, D8, 05]
-1FA8; [5F 56, 05, 9B][, 84, 05][, D8, 05]
-1F61; [5F 56, 05, 05][, 86, 05]
-1F69; [5F 56, 05, 9B][, 86, 05]
-1F65; [5F 56, 05, 05][, 86, 05][, 88, 05]
-1F6D; [5F 56, 05, 9B][, 86, 05][, 88, 05]
-1FA5; [5F 56, 05, 05][, 86, 05][, 88, 05][, D8, 05]
-1FAD; [5F 56, 05, 9B][, 86, 05][, 88, 05][, D8, 05]
-1F63; [5F 56, 05, 05][, 86, 05][, 8A, 05]
-1F6B; [5F 56, 05, 9B][, 86, 05][, 8A, 05]
-1FA3; [5F 56, 05, 05][, 86, 05][, 8A, 05][, D8, 05]
-1FAB; [5F 56, 05, 9B][, 86, 05][, 8A, 05][, D8, 05]
-1F67; [5F 56, 05, 05][, 86, 05][, 94, 05]
-1F6F; [5F 56, 05, 9B][, 86, 05][, 94, 05]
-1FA7; [5F 56, 05, 05][, 86, 05][, 94, 05][, D8, 05]
-1FAF; [5F 56, 05, 9B][, 86, 05][, 94, 05][, D8, 05]
-1FA1; [5F 56, 05, 05][, 86, 05][, D8, 05]
-1FA9; [5F 56, 05, 9B][, 86, 05][, D8, 05]
-03CE; [5F 56, 05, 05][, 88, 05]
-1F7D; [5F 56, 05, 05][, 88, 05]
-038F; [5F 56, 05, 9B][, 88, 05]
-1FFB; [5F 56, 05, 9B][, 88, 05]
-1FF4; [5F 56, 05, 05][, 88, 05][, D8, 05]
-1F7C; [5F 56, 05, 05][, 8A, 05]
-1FFA; [5F 56, 05, 9B][, 8A, 05]
-1FF2; [5F 56, 05, 05][, 8A, 05][, D8, 05]
-1FF6; [5F 56, 05, 05][, 94, 05]
-1FF7; [5F 56, 05, 05][, 94, 05][, D8, 05]
-1FF3; [5F 56, 05, 05][, D8, 05]
-1FFC; [5F 56, 05, 9B][, D8, 05]
-
-AB65; [5F 58, 05, 05]
-
-03E1; [5F 5A, 05, 05]
-03E0; [5F 5A, 05, A0]
-
-0373; [5F 5C, 05, 05]
-0372; [5F 5C, 05, A0]
-
-03F8; [5F 5E, 05, 05]
-03F7; [5F 5E, 05, A0]
-
-FDD1 03E2; [5F 60 02, 05, 05] # COPTIC first primary (compressible)
-
-2C81; [5F 62, 05, 05]
-2C80; [5F 62, 05, AE]
-
-2C83; [5F 64, 05, 05]
-2C82; [5F 64, 05, A0]
-
-2C85; [5F 66, 05, 05]
-2C84; [5F 66, 05, A0]
-
-2C87; [5F 68, 05, 05]
-2C86; [5F 68, 05, A0]
-
-2C89; [5F 6A, 05, 05]
-2C88; [5F 6A, 05, A0]
-
-2CB7; [5F 6C, 05, 05]
-2CB6; [5F 6C, 05, A0]
-
-2C8B; [5F 6E, 05, 05]
-2C8A; [5F 6E, 05, A0]
-
-2C8D; [5F 70, 05, 05]
-2C8C; [5F 70, 05, A0]
-
-2C8F; [5F 72, 05, 05]
-2C8E; [5F 72, 05, A0]
+FDD1 1036B; [62 64 02, 05, 05] # Old_Permic first primary (compressible)
-2C91; [5F 74, 05, 05]
-2C90; [5F 74, 05, A0]
-
-2C93; [5F 76, 05, 05]
-2C92; [5F 76, 05, AE]
+10350; [62 66, 05, 05]
+10376; [62 66, 05, 20]
-2C95; [5F 78, 05, 05]
-2C94; [5F 78, 05, AE]
-2CE4; [5F 78, 05, 20][5F 62, 05, 20][5F 76, 05, 20]
+10351; [62 68 02, 05, 05]
-2CB9; [5F 7A, 05, 05]
-2CB8; [5F 7A, 05, A0]
+10352; [62 68 09, 05, 05]
-2C97; [5F 7C, 05, 05]
-2C96; [5F 7C, 05, A0]
+10353; [62 6A, 05, 05]
+10377; [62 6A, 05, 20]
-2C99; [5F 7E, 05, 05]
-2C98; [5F 7E, 05, A0]
+10354; [62 6C 02, 05, 05]
-2C9B; [5F 80, 05, 05]
-2C9A; [5F 80, 05, A0]
+10355; [62 6C 09, 05, 05]
-2CBB; [5F 82, 05, 05]
-2CBA; [5F 82, 05, A0]
+10356; [62 6C 10, 05, 05]
-2CBD; [5F 84, 05, 05]
-2CBC; [5F 84, 05, A0]
+10357; [62 6E, 05, 05]
+10378; [62 6E, 05, 20]
-2C9D; [5F 86, 05, 05]
-2C9C; [5F 86, 05, A0]
+10358; [62 70 02, 05, 05]
-2C9F; [5F 88, 05, 05]
-2C9E; [5F 88, 05, A0]
+10359; [62 70 09, 05, 05]
-2CA1; [5F 8A, 05, 05]
-2CA0; [5F 8A, 05, A0]
+1035A; [62 70 10, 05, 05]
-2CA3; [5F 8C, 05, 05]
-2CA2; [5F 8C, 05, A0]
+1035B; [62 70 17, 05, 05]
-2CA5; [5F 8E, 05, 05]
-2CA4; [5F 8E, 05, A0]
+1035C; [62 70 1E, 05, 05]
-2CA7; [5F 90, 05, 05]
-2CA6; [5F 90, 05, A0]
+1035D; [62 72, 05, 05]
+10379; [62 72, 05, 20]
-2CA9; [5F 92, 05, 05]
-2CA8; [5F 92, 05, A0]
+1035E; [62 74 02, 05, 05]
-2CAB; [5F 94, 05, 05]
-2CAA; [5F 94, 05, A0]
+1035F; [62 74 09, 05, 05]
-2CAD; [5F 96, 05, 05]
-2CAC; [5F 96, 05, A0]
+10360; [62 74 10, 05, 05]
-2CAF; [5F 98, 05, 05]
-2CAE; [5F 98, 05, A0]
+10361; [62 76, 05, 05]
+1037A; [62 76, 05, 20]
-2CB1; [5F 9A, 05, 05]
-2CB0; [5F 9A, 05, A0]
+10362; [62 78 02, 05, 05]
-2CBF; [5F 9C, 05, 05]
-2CBE; [5F 9C, 05, A0]
+10363; [62 78 09, 05, 05]
-2CC1; [5F 9E, 05, 05]
-2CC0; [5F 9E, 05, A0]
+10364; [62 78 10, 05, 05]
-03E3; [5F A0, 05, 05]
-03E2; [5F A0, 05, A0]
+10365; [62 78 17, 05, 05]
-2CEC; [5F A2, 05, 05]
-2CEB; [5F A2, 05, A0]
+10366; [62 78 1E, 05, 05]
-2CC3; [5F A4, 05, 05]
-2CC2; [5F A4, 05, A0]
+10367; [62 78 25, 05, 05]
-2CC5; [5F A6, 05, 05]
-2CC4; [5F A6, 05, A0]
+10368; [62 78 2C, 05, 05]
-2CC7; [5F A8, 05, 05]
-2CC6; [5F A8, 05, A0]
+10369; [62 78 33, 05, 05]
-03E5; [5F AA, 05, 05]
-03E4; [5F AA, 05, A0]
+1036A; [62 78 3A, 05, 05]
-03E7; [5F AC, 05, 05]
-03E6; [5F AC, 05, A0]
+1036B; [62 78 41, 05, 05]
-2CF3; [5F AE, 05, 05]
-2CF2; [5F AE, 05, A0]
+1036C; [62 78 48, 05, 05]
-2CC9; [5F B0, 05, 05]
-2CC8; [5F B0, 05, A0]
+1036D; [62 78 4F, 05, 05]
-03E9; [5F B2, 05, 05]
-03E8; [5F B2, 05, A0]
+1036E; [62 78 56, 05, 05]
-2CCB; [5F B4, 05, 05]
-2CCA; [5F B4, 05, A0]
+1036F; [62 78 5D, 05, 05]
-2CCD; [5F B6, 05, 05]
-2CCC; [5F B6, 05, A0]
+10370; [62 78 64, 05, 05]
-2CCF; [5F B8, 05, 05]
-2CCE; [5F B8, 05, A0]
+10371; [62 78 6B, 05, 05]
-2CD1; [5F BA, 05, 05]
-2CD0; [5F BA, 05, A0]
+10372; [62 78 72, 05, 05]
-2CD3; [5F BC, 05, 05]
-2CD2; [5F BC, 05, A0]
+10373; [62 78 79, 05, 05]
-2CD5; [5F BE, 05, 05]
-2CD4; [5F BE, 05, A0]
+10374; [62 78 80, 05, 05]
-03EB; [5F C0, 05, 05]
-03EA; [5F C0, 05, A0]
+10375; [62 78 87, 05, 05]
-2CEE; [5F C2, 05, 05]
-2CED; [5F C2, 05, A0]
+FDD1 10D3; [63 04 02, 05, 05] # GEORGIAN first primary starts new lead byte (compressible)
-2CD7; [5F C4, 05, 05]
-2CD6; [5F C4, 05, A0]
+10D0; [63 06, 05, 05]
+1C90; [63 06, 05, A0]
-03ED; [5F C6, 05, 05]
-03EC; [5F C6, 05, A0]
+2D00; [63 08, 05, 05]
+10A0; [63 08, 05, A0]
-2CD9; [5F C8, 05, 05]
-2CD8; [5F C8, 05, A0]
+10D1; [63 0A, 05, 05]
+1C91; [63 0A, 05, A0]
-2CDB; [5F CA, 05, 05]
-2CDA; [5F CA, 05, A0]
+2D01; [63 0C, 05, 05]
+10A1; [63 0C, 05, A0]
-2CDD; [5F CC, 05, 05]
-2CDC; [5F CC, 05, A0]
+10D2; [63 0E, 05, 05]
+1C92; [63 0E, 05, A0]
-03EF; [5F CE, 05, 05]
-03EE; [5F CE, 05, A0]
+2D02; [63 10, 05, 05]
+10A2; [63 10, 05, A0]
-2CB3; [5F D0, 05, 05]
-2CB2; [5F D0, 05, A0]
+10D3; [63 12, 05, 05]
+1C93; [63 12, 05, A0]
-2CB5; [5F D2, 05, 05]
-2CB4; [5F D2, 05, A0]
+2D03; [63 14, 05, 05]
+10A3; [63 14, 05, A0]
-2CDF; [5F D4, 05, 05]
-2CDE; [5F D4, 05, A0]
+10D4; [63 16, 05, 05]
+1C94; [63 16, 05, A0]
-2CE1; [5F D6, 05, 05]
-2CE0; [5F D6, 05, A0]
+2D04; [63 18, 05, 05]
+10A4; [63 18, 05, A0]
-2CE3; [5F D8, 05, 05]
-2CE2; [5F D8, 05, A0]
+10D5; [63 1A, 05, 05]
+1C95; [63 1A, 05, A0]
-FDD1 042F; [60 04 02, 05, 05] # CYRILLIC first primary starts new lead byte (compressible)
+2D05; [63 1C, 05, 05]
+10A5; [63 1C, 05, A0]
-0430; [60 06, 05, 05]
-2DF6; [60 06, 05, 20]
-0410; [60 06, 05, AE]
-04D1; [60 06, 05, 05][, 8C, 05]
-04D0; [60 06, 05, AE][, 8C, 05]
-04D3; [60 06, 05, 05][, 96, 05]
-04D2; [60 06, 05, AE][, 96, 05]
+10D6; [63 1E, 05, 05]
+1C96; [63 1E, 05, A0]
-04D9; [60 08, 05, 05]
-04D8; [60 08, 05, A0]
-04DB; [60 08, 05, 05][, 96, 05]
-04DA; [60 08, 05, A0][, 96, 05]
+2D06; [63 20, 05, 05]
+10A6; [63 20, 05, A0]
-04D5; [60 0A, 05, 05]
-04D4; [60 0A, 05, A0]
+10F1; [63 22, 05, 05]
+1CB1; [63 22, 05, A0]
-0431; [60 0C, 05, 05]
-2DE0; [60 0C, 05, 20]
-0411; [60 0C, 05, AE]
+2D21; [63 24, 05, 05]
+10C1; [63 24, 05, A0]
-0432; [60 0E, 05, 05]
-1C80; [60 0E, 05, 20]
-2DE1; [60 0E, 05, 20]
-0412; [60 0E, 05, AE]
+10D7; [63 26, 05, 05]
+1C97; [63 26, 05, A0]
-0433; [60 10, 05, 05]
-2DE2; [60 10, 05, 20]
-0413; [60 10, 05, AE]
-0453; [60 10, 05, 05][, 88, 05]
-0403; [60 10, 05, AE][, 88, 05]
-0491; [60 10, 70, 05]
-0490; [60 10, 70, A0]
+2D07; [63 28, 05, 05]
+10A7; [63 28, 05, A0]
-0493; [60 12, 05, 05]
-0492; [60 12, 05, A0]
+10D8; [63 2A, 05, 05]
+1C98; [63 2A, 05, A0]
-04FB; [60 14, 05, 05]
-04FA; [60 14, 05, A0]
+2D08; [63 2C, 05, 05]
+10A8; [63 2C, 05, A0]
-0495; [60 16, 05, 05]
-0494; [60 16, 05, A0]
+10D9; [63 2E, 05, 05]
+1C99; [63 2E, 05, A0]
-04F7; [60 18, 05, 05]
-04F6; [60 18, 05, A0]
+2D09; [63 30, 05, 05]
+10A9; [63 30, 05, A0]
-0434; [60 1A, 05, 05]
-1C81; [60 1A, 05, 20]
-2DE3; [60 1A, 05, 20]
-0414; [60 1A, 05, AE]
+10DA; [63 32, 05, 05]
+1C9A; [63 32, 05, A0]
-0501; [60 1C, 05, 05]
-0500; [60 1C, 05, A0]
+2D0A; [63 34, 05, 05]
+10AA; [63 34, 05, A0]
-A681; [60 1E, 05, 05]
-A680; [60 1E, 05, A0]
+10DB; [63 36, 05, 05]
+1C9B; [63 36, 05, A0]
-0452; [60 20, 05, 05]
-0402; [60 20, 05, A0]
+2D0B; [63 38, 05, 05]
+10AB; [63 38, 05, A0]
-A663; [60 22, 05, 05]
-A662; [60 22, 05, A0]
+10DC; [63 3A, 05, 05]
+1C9C; [63 3A, 05, A0]
+10FC; [63 3A, 05, 2E]
-0503; [60 24, 05, 05]
-0502; [60 24, 05, A0]
+2D0C; [63 3C, 05, 05]
+10AC; [63 3C, 05, A0]
-0499; [60 26, 05, 05]
-0498; [60 26, 05, A0]
+10F2; [63 3E, 05, 05]
+1CB2; [63 3E, 05, A0]
-0435; [60 28, 05, 05]
-2DF7; [60 28, 05, 20]
-0415; [60 28, 05, AE]
-0450; [60 28, 05, 05][, 8A, 05]
-0400; [60 28, 05, AE][, 8A, 05]
-04D7; [60 28, 05, 05][, 8C, 05]
-04D6; [60 28, 05, AE][, 8C, 05]
-0451; [60 28, 05, 05][, 96, 05]
-0401; [60 28, 05, AE][, 96, 05]
+2D22; [63 40, 05, 05]
+10C2; [63 40, 05, A0]
-0454; [60 2A, 05, 05]
-A674; [60 2A, 05, 20]
-0404; [60 2A, 05, AE]
+10DD; [63 42, 05, 05]
+1C9D; [63 42, 05, A0]
-0436; [60 2C, 05, 05]
-2DE4; [60 2C, 05, 20]
-0416; [60 2C, 05, AE]
-04C2; [60 2C, 05, 05][, 8C, 05]
-04C1; [60 2C, 05, AE][, 8C, 05]
-04DD; [60 2C, 05, 05][, 96, 05]
-04DC; [60 2C, 05, AE][, 96, 05]
+2D0D; [63 44, 05, 05]
+10AD; [63 44, 05, A0]
-052B; [60 2E 02, 05, 05]
-052A; [60 2E 02, 05, A0]
+10DE; [63 46, 05, 05]
+1C9E; [63 46, 05, A0]
-A685; [60 2E 09, 05, 05]
-A684; [60 2E 09, 05, A0]
+2D0E; [63 48, 05, 05]
+10AE; [63 48, 05, A0]
-0497; [60 30, 05, 05]
-0496; [60 30, 05, A0]
+10DF; [63 4A, 05, 05]
+1C9F; [63 4A, 05, A0]
-0437; [60 32, 05, 05]
-2DE5; [60 32, 05, 20]
-0417; [60 32, 05, AE]
-04DF; [60 32, 05, 05][, 96, 05]
-04DE; [60 32, 05, AE][, 96, 05]
+2D0F; [63 4C, 05, 05]
+10AF; [63 4C, 05, A0]
-A641; [60 34, 05, 05]
-A640; [60 34, 05, A0]
+10E0; [63 4E, 05, 05]
+1CA0; [63 4E, 05, A0]
-0505; [60 36, 05, 05]
-0504; [60 36, 05, A0]
+2D10; [63 50, 05, 05]
+10B0; [63 50, 05, A0]
-0511; [60 38 02, 05, 05]
-0510; [60 38 02, 05, A0]
+10E1; [63 52, 05, 05]
+1CA1; [63 52, 05, A0]
-A643; [60 38 09, 05, 05]
-A642; [60 38 09, 05, A0]
+2D11; [63 54, 05, 05]
+10B1; [63 54, 05, A0]
-0455; [60 3A, 05, 05]
-0405; [60 3A, 05, A0]
+10E2; [63 56, 05, 05]
+1CA2; [63 56, 05, A0]
-A645; [60 3C, 05, 05]
-A644; [60 3C, 05, A0]
+2D12; [63 58, 05, 05]
+10B2; [63 58, 05, A0]
-04E1; [60 3E, 05, 05]
-04E0; [60 3E, 05, A0]
+10F3; [63 5A, 05, 05]
+1CB3; [63 5A, 05, A0]
-A689; [60 40, 05, 05]
-A688; [60 40, 05, A0]
+2D23; [63 5C, 05, 05]
+10C3; [63 5C, 05, A0]
-0507; [60 42, 05, 05]
-0506; [60 42, 05, A0]
+10E3; [63 5E, 05, 05]
+1CA3; [63 5E, 05, A0]
-A683; [60 44, 05, 05]
-A682; [60 44, 05, A0]
+2D13; [63 60, 05, 05]
+10B3; [63 60, 05, A0]
-0438; [60 46, 05, 05]
-A675; [60 46, 05, 20]
-0418; [60 46, 05, AE]
-045D; [60 46, 05, 05][, 8A, 05]
-040D; [60 46, 05, AE][, 8A, 05]
-04E5; [60 46, 05, 05][, 96, 05]
-04E4; [60 46, 05, AE][, 96, 05]
-04E3; [60 46, 05, 05][, A4, 05]
-04E2; [60 46, 05, AE][, A4, 05]
+10E4; [63 62, 05, 05]
+1CA4; [63 62, 05, A0]
-048B; [60 48, 05, 05]
-048A; [60 48, 05, A0]
+2D14; [63 64, 05, 05]
+10B4; [63 64, 05, A0]
-0456; [60 4A, 05, 05]
-0406; [60 4A, 05, AE]
-0457; [60 4A, 05, 05][, 96, 05]
-A676; [60 4A, 05, 20][, 96, 20]
-0407; [60 4A, 05, AE][, 96, 05]
+10E5; [63 66, 05, 05]
+1CA5; [63 66, 05, A0]
-A647; [60 4C, 05, 05]
-A646; [60 4C, 05, A0]
+2D15; [63 68, 05, 05]
+10B5; [63 68, 05, A0]
-0438 0306; [60 4E, 05, 05]
-0439; [60 4E, 05, 05]
-0418 0306; [60 4E, 05, A0]
-0419; [60 4E, 05, A0]
+10E6; [63 6A, 05, 05]
+1CA6; [63 6A, 05, A0]
-0458; [60 50, 05, 05]
-0408; [60 50, 05, A0]
+2D16; [63 6C, 05, 05]
+10B6; [63 6C, 05, A0]
-A649; [60 52, 05, 05]
-2DF8; [60 52, 05, 20]
-A648; [60 52, 05, AE]
+10E7; [63 6E, 05, 05]
+1CA7; [63 6E, 05, A0]
-043A; [60 54, 05, 05]
-2DE6; [60 54, 05, 20]
-041A; [60 54, 05, AE]
-045C; [60 54, 05, 05][, 88, 05]
-040C; [60 54, 05, AE][, 88, 05]
+2D17; [63 70, 05, 05]
+10B7; [63 70, 05, A0]
-049B; [60 56, 05, 05]
-049A; [60 56, 05, A0]
+10E8; [63 72, 05, 05]
+1CA8; [63 72, 05, A0]
-04C4; [60 58, 05, 05]
-04C3; [60 58, 05, A0]
+2D18; [63 74, 05, 05]
+10B8; [63 74, 05, A0]
-04A1; [60 5A, 05, 05]
-04A0; [60 5A, 05, A0]
+10E9; [63 76, 05, 05]
+1CA9; [63 76, 05, A0]
-049F; [60 5C, 05, 05]
-049E; [60 5C, 05, A0]
+2D19; [63 78, 05, 05]
+10B9; [63 78, 05, A0]
-049D; [60 5E, 05, 05]
-049C; [60 5E, 05, A0]
+10EA; [63 7A, 05, 05]
+1CAA; [63 7A, 05, A0]
-051F; [60 60 02, 05, 05]
-051E; [60 60 02, 05, A0]
+2D1A; [63 7C, 05, 05]
+10BA; [63 7C, 05, A0]
-051B; [60 60 09, 05, 05]
-051A; [60 60 09, 05, A0]
+10EB; [63 7E, 05, 05]
+1CAB; [63 7E, 05, A0]
-043B; [60 62, 05, 05]
-2DE7; [60 62, 05, 20]
-041B; [60 62, 05, AE]
+2D1B; [63 80, 05, 05]
+10BB; [63 80, 05, A0]
-1D2B; [60 64, 05, 05]
+10EC; [63 82, 05, 05]
+1CAC; [63 82, 05, A0]
-04C6; [60 66, 05, 05]
-04C5; [60 66, 05, A0]
+2D1C; [63 84, 05, 05]
+10BC; [63 84, 05, A0]
-052F; [60 68 02, 05, 05]
-052E; [60 68 02, 05, A0]
+10ED; [63 86, 05, 05]
+1CAD; [63 86, 05, A0]
-0513; [60 68 09, 05, 05]
-0512; [60 68 09, 05, A0]
+2D1D; [63 88, 05, 05]
+10BD; [63 88, 05, A0]
-0521; [60 68 10, 05, 05]
-0520; [60 68 10, 05, A0]
+10EE; [63 8A, 05, 05]
+1CAE; [63 8A, 05, A0]
-0459; [60 6A, 05, 05]
-0409; [60 6A, 05, A0]
+2D1E; [63 8C, 05, 05]
+10BE; [63 8C, 05, A0]
-A665; [60 6C, 05, 05]
-A664; [60 6C, 05, A0]
+10F4; [63 8E, 05, 05]
+1CB4; [63 8E, 05, A0]
-0509; [60 6E, 05, 05]
-0508; [60 6E, 05, A0]
+2D24; [63 90, 05, 05]
+10C4; [63 90, 05, A0]
-0515; [60 70, 05, 05]
-0514; [60 70, 05, A0]
+10EF; [63 92, 05, 05]
+1CAF; [63 92, 05, A0]
-043C; [60 72, 05, 05]
-2DE8; [60 72, 05, 20]
-041C; [60 72, 05, AE]
+2D1F; [63 94, 05, 05]
+10BF; [63 94, 05, A0]
-04CE; [60 74, 05, 05]
-04CD; [60 74, 05, A0]
+10F0; [63 96, 05, 05]
+1CB0; [63 96, 05, A0]
-A667; [60 76, 05, 05]
-A666; [60 76, 05, A0]
+2D20; [63 98, 05, 05]
+10C0; [63 98, 05, A0]
-043D; [60 78, 05, 05]
-2DE9; [60 78, 05, 10]
-041D; [60 78, 05, 9E]
-1D78; [60 78, 05, 2C]
+10F5; [63 9A, 05, 05]
+1CB5; [63 9A, 05, A0]
-0529; [60 7A, 05, 05]
-0528; [60 7A, 05, A0]
+2D25; [63 9C, 05, 05]
+10C5; [63 9C, 05, A0]
-04CA; [60 7C, 05, 05]
-04C9; [60 7C, 05, A0]
+10F6; [63 9E, 05, 05]
+1CB6; [63 9E, 05, A0]
-04A3; [60 7E, 05, 05]
-04A2; [60 7E, 05, A0]
+10F7; [63 A0, 05, 05]
+1CB7; [63 A0, 05, A0]
-04C8; [60 80, 05, 05]
-04C7; [60 80, 05, A0]
+2D27; [63 A2, 05, 05]
+10C7; [63 A2, 05, A0]
-0523; [60 82, 05, 05]
-0522; [60 82, 05, A0]
+10F8; [63 A4, 05, 05]
+1CB8; [63 A4, 05, A0]
-04A5; [60 84, 05, 05]
-04A4; [60 84, 05, A0]
+10F9; [63 A6, 05, 05]
+1CB9; [63 A6, 05, A0]
-045A; [60 86, 05, 05]
-040A; [60 86, 05, A0]
+10FA; [63 A8, 05, 05]
+1CBA; [63 A8, 05, A0]
-050B; [60 88, 05, 05]
-050A; [60 88, 05, A0]
+10FD; [63 AA, 05, 05]
+1CBD; [63 AA, 05, A0]
-043E; [60 8A, 05, 05]
-1C82; [60 8A, 05, 10]
-2DEA; [60 8A, 05, 10]
-A669; [60 8A, 05, 10]
-A66B; [60 8A, 05, 10]
-A66D; [60 8A, 05, 10]
-A66E; [60 8A, 05, 10]
-A699; [60 8A, 05, 10]
-A69B; [60 8A, 05, 10]
-041E; [60 8A, 05, 9E]
-A668; [60 8A, 05, AC]
-A66A; [60 8A, 05, AC]
-A66C; [60 8A, 05, AC]
-A698; [60 8A, 05, AC]
-A69A; [60 8A, 05, AC]
-04E7; [60 8A, 05, 05][, 96, 05]
-04E6; [60 8A, 05, 9E][, 96, 05]
+2D2D; [63 AC, 05, 05]
+10CD; [63 AC, 05, A0]
-04E9; [60 8C, 05, 05]
-04E8; [60 8C, 05, A0]
-04EB; [60 8C, 05, 05][, 96, 05]
-04EA; [60 8C, 05, A0][, 96, 05]
+10FE; [63 AE, 05, 05]
+1CBE; [63 AE, 05, A0]
-043F; [60 8E, 05, 05]
-2DEB; [60 8E, 05, 20]
-041F; [60 8E, 05, AE]
+10FF; [63 B0, 05, 05]
+1CBF; [63 B0, 05, A0]
-0525; [60 90, 05, 05]
-0524; [60 90, 05, A0]
+FDD1 0531; [64 04 02, 05, 05] # ARMENIAN first primary starts new lead byte (compressible)
-04A7; [60 92, 05, 05]
-04A6; [60 92, 05, A0]
+0561; [64 06, 05, 05]
+0531; [64 06, 05, A0]
-0481; [60 94, 05, 05]
-0480; [60 94, 05, A0]
+0560; [64 08, 05, 05]
-0440; [60 96, 05, 05]
-2DEC; [60 96, 05, 20]
-0420; [60 96, 05, AE]
+0562; [64 0A, 05, 05]
+0532; [64 0A, 05, A0]
-048F; [60 98, 05, 05]
-048E; [60 98, 05, A0]
+0563; [64 0C, 05, 05]
+0533; [64 0C, 05, A0]
-0517; [60 9A, 05, 05]
-0516; [60 9A, 05, A0]
+0564; [64 0E, 05, 05]
+0534; [64 0E, 05, A0]
-0441; [60 9C, 05, 05]
-1C83; [60 9C, 05, 20]
-2DED; [60 9C, 05, 20]
-0421; [60 9C, 05, AE]
-2DF5; [60 9C, 05, 20][60 A2, 05, 20]
+0565; [64 10, 05, 05]
+0535; [64 10, 05, AE]
+0587; [64 10, 05, 20][64 4C, 05, 20]
-050D; [60 9E, 05, 05]
-050C; [60 9E, 05, A0]
+0566; [64 12, 05, 05]
+0536; [64 12, 05, A0]
-04AB; [60 A0, 05, 05]
-04AA; [60 A0, 05, A0]
+0567; [64 14, 05, 05]
+0537; [64 14, 05, A0]
-0442; [60 A2, 05, 05]
-1C84; [60 A2, 05, 20]
-1C85; [60 A2, 05, 20]
-2DEE; [60 A2, 05, 20]
-0422; [60 A2, 05, AE]
+0568; [64 16, 05, 05]
+0538; [64 16, 05, A0]
-A68D; [60 A4 02, 05, 05]
-A68C; [60 A4 02, 05, A0]
+0569; [64 18, 05, 05]
+0539; [64 18, 05, A0]
-050F; [60 A4 09, 05, 05]
-050E; [60 A4 09, 05, A0]
+056A; [64 1A, 05, 05]
+053A; [64 1A, 05, A0]
-04AD; [60 A6, 05, 05]
-04AC; [60 A6, 05, A0]
+056B; [64 1C, 05, 05]
+053B; [64 1C, 05, AE]
-A68B; [60 A8, 05, 05]
-A68A; [60 A8, 05, A0]
+056C; [64 1E, 05, 05]
+053C; [64 1E, 05, A0]
-045B; [60 AA, 05, 05]
-040B; [60 AA, 05, A0]
+056D; [64 20, 05, 05]
+053D; [64 20, 05, AE]
-0443; [60 AC, 05, 05]
-A677; [60 AC, 05, 20]
-0423; [60 AC, 05, AE]
-045E; [60 AC, 05, 05][, 8C, 05]
-040E; [60 AC, 05, AE][, 8C, 05]
-04F1; [60 AC, 05, 05][, 96, 05]
-04F0; [60 AC, 05, AE][, 96, 05]
-04F3; [60 AC, 05, 05][, 98, 05]
-04F2; [60 AC, 05, AE][, 98, 05]
-04EF; [60 AC, 05, 05][, A4, 05]
-04EE; [60 AC, 05, AE][, A4, 05]
+056E; [64 22, 05, 05]
+053E; [64 22, 05, A0]
-04AF; [60 AE, 05, 05]
-04AE; [60 AE, 05, A0]
+056F; [64 24, 05, 05]
+053F; [64 24, 05, A0]
-04B1; [60 B0, 05, 05]
-04B0; [60 B0, 05, A0]
+0570; [64 26, 05, 05]
+0540; [64 26, 05, A0]
-A64B; [60 B2 02, 05, 05]
-1C88; [60 B2 02, 05, 20]
-2DF9; [60 B2 02, 05, 20]
-A64A; [60 B2 02, 05, AE]
+0571; [64 28, 05, 05]
+0541; [64 28, 05, A0]
-0479; [60 B2 09, 05, 05]
-0478; [60 B2 09, 05, A0]
+0572; [64 2A, 05, 05]
+0542; [64 2A, 05, A0]
-0444; [60 B4, 05, 05]
-A69E; [60 B4, 05, 20]
-0424; [60 B4, 05, AE]
+0573; [64 2C, 05, 05]
+0543; [64 2C, 05, A0]
-0445; [60 B6, 05, 05]
-2DEF; [60 B6, 05, 20]
-0425; [60 B6, 05, AE]
+0574; [64 2E, 05, 05]
+0544; [64 2E, 05, AE]
+FB14; [64 2E, 05, 20][64 10, 05, 20]
+FB15; [64 2E, 05, 20][64 1C, 05, 20]
+FB17; [64 2E, 05, 20][64 20, 05, 20]
+FB13; [64 2E, 05, 20][64 34, 05, 20]
-04FD; [60 B8 02, 05, 05]
-04FC; [60 B8 02, 05, A0]
+0575; [64 30, 05, 05]
+0545; [64 30, 05, A0]
-04FF; [60 B8 09, 05, 05]
-04FE; [60 B8 09, 05, A0]
+0588; [64 32, 05, 05]
-04B3; [60 BA, 05, 05]
-04B2; [60 BA, 05, A0]
+0576; [64 34, 05, 05]
+0546; [64 34, 05, AE]
-04BB; [60 BC, 05, 05]
-04BA; [60 BC, 05, A0]
+0577; [64 36, 05, 05]
+0547; [64 36, 05, A0]
-0527; [60 BE 02, 05, 05]
-0526; [60 BE 02, 05, A0]
+0578; [64 38, 05, 05]
+0548; [64 38, 05, A0]
-A695; [60 BE 09, 05, 05]
-A694; [60 BE 09, 05, A0]
+0579; [64 3A, 05, 05]
+0549; [64 3A, 05, A0]
-0461; [60 BE 10, 05, 05]
-A67B; [60 BE 10, 05, 20]
-0460; [60 BE 10, 05, AE]
+057A; [64 3C, 05, 05]
+054A; [64 3C, 05, A0]
-047F; [60 BE 17, 05, 05]
-047E; [60 BE 17, 05, A0]
+057B; [64 3E, 05, 05]
+054B; [64 3E, 05, A0]
-A64D; [60 BE 1E, 05, 05]
-A64C; [60 BE 1E, 05, A0]
+057C; [64 40, 05, 05]
+054C; [64 40, 05, A0]
-047D; [60 BE 25, 05, 05]
-047C; [60 BE 25, 05, A0]
+057D; [64 42, 05, 05]
+054D; [64 42, 05, A0]
-047B; [60 BE 2C, 05, 05]
-047A; [60 BE 2C, 05, A0]
+057E; [64 44, 05, 05]
+054E; [64 44, 05, AE]
+FB16; [64 44, 05, 20][64 34, 05, 20]
-0446; [60 C0, 05, 05]
-2DF0; [60 C0, 05, 20]
-0426; [60 C0, 05, AE]
+057F; [64 46, 05, 05]
+054F; [64 46, 05, A0]
-A661; [60 C2 02, 05, 05]
-A660; [60 C2 02, 05, A0]
+0580; [64 48, 05, 05]
+0550; [64 48, 05, A0]
-A68F; [60 C2 09, 05, 05]
-A68E; [60 C2 09, 05, A0]
+0581; [64 4A, 05, 05]
+0551; [64 4A, 05, A0]
-04B5; [60 C4, 05, 05]
-04B4; [60 C4, 05, A0]
+0582; [64 4C, 05, 05]
+0552; [64 4C, 05, AE]
-A691; [60 C6, 05, 05]
-A690; [60 C6, 05, A0]
+0583; [64 4E, 05, 05]
+0553; [64 4E, 05, A0]
-0447; [60 C8, 05, 05]
-2DF1; [60 C8, 05, 20]
-0427; [60 C8, 05, AE]
-04F5; [60 C8, 05, 05][, 96, 05]
-04F4; [60 C8, 05, AE][, 96, 05]
+0584; [64 50, 05, 05]
+0554; [64 50, 05, A0]
-052D; [60 CA 02, 05, 05]
-052C; [60 CA 02, 05, A0]
+0585; [64 52, 05, 05]
+0555; [64 52, 05, A0]
-A693; [60 CA 09, 05, 05]
-A692; [60 CA 09, 05, A0]
+0586; [64 54, 05, 05]
+0556; [64 54, 05, A0]
-04B7; [60 CC, 05, 05]
-04B6; [60 CC, 05, A0]
+0559; [64 56, 05, 05]
-04CC; [60 CE, 05, 05]
-04CB; [60 CE, 05, A0]
+FDD1 05D0; [65 04 02, 05, 05] # HEBREW first primary starts new lead byte (compressible)
-04B9; [60 D0, 05, 05]
-04B8; [60 D0, 05, A0]
+05D0; [65 06, 05, 05]
+2135; [65 06, 05, 20]
+FB21; [65 06, 05, 2E]
+FB2E; [65 06, 05, 05][, E3 14, 05]
+FB2F; [65 06, 05, 05][, E3 36, 05]
+FB30; [65 06, 05, 05][, E3 E0, 05]
+FB4F; [65 06, 05, 20][65 1C, 05, 20]
-A687; [60 D2, 05, 05]
-A686; [60 D2, 05, A0]
+05D1; [65 08, 05, 05]
+2136; [65 08, 05, 20]
+FB31; [65 08, 05, 05][, E3 E0, 05]
+FB4C; [65 08, 05, 05][, E4 04, 05]
-04BD; [60 D4, 05, 05]
-04BC; [60 D4, 05, A0]
+05D2; [65 0A, 05, 05]
+2137; [65 0A, 05, 20]
+FB32; [65 0A, 05, 05][, E3 E0, 05]
-04BF; [60 D6, 05, 05]
-04BE; [60 D6, 05, A0]
+05D3; [65 0C, 05, 05]
+2138; [65 0C, 05, 20]
+FB22; [65 0C, 05, 2E]
+FB33; [65 0C, 05, 05][, E3 E0, 05]
-045F; [60 D8, 05, 05]
-040F; [60 D8, 05, A0]
+05D4; [65 0E, 05, 05]
+FB23; [65 0E, 05, 2E]
+FB34; [65 0E, 05, 05][, E3 E0, 05]
-0448; [60 DA, 05, 05]
-2DF2; [60 DA, 05, 20]
-0428; [60 DA, 05, AE]
+05D5; [65 10, 05, 05]
+FB4B; [65 10, 05, 05][, E3 58, 05]
+FB35; [65 10, 05, 05][, E3 E0, 05]
+05F0; [65 10, 05, 20][65 10, 05, 20]
+05F1; [65 10, 05, 20][65 18, 05, 20]
-A697; [60 DC, 05, 05]
-A696; [60 DC, 05, A0]
+05D6; [65 12, 05, 05]
+FB36; [65 12, 05, 05][, E3 E0, 05]
-0449; [60 DE, 05, 05]
-2DF3; [60 DE, 05, 20]
-0429; [60 DE, 05, AE]
+05D7; [65 14, 05, 05]
-A64F; [60 E0 02, 05, 05]
-A64E; [60 E0 02, 05, A0]
+05D8; [65 16, 05, 05]
+FB38; [65 16, 05, 05][, E3 E0, 05]
-2E2F; [60 E0 09, 05, 05]
+05D9; [65 18, 05, 05]
+FB1D; [65 18, 05, 05][, E2 AC, 05]
+FB39; [65 18, 05, 05][, E3 E0, 05]
+05EF; [65 18, 05, 20][65 0E, 05, 20][65 10, 05, 20][65 0E, 05, 20]
+05F2; [65 18, 05, 20][65 18, 05, 20]
+FB1F; [65 18, 05, 20][65 18, 05, 20][, E3 14, 05]
-A67F; [60 E0 10, 05, 05]
+05DB; [65 1A, 05, 05]
+FB24; [65 1A, 05, 20]
+05DA; [65 1A, 05, 2E]
+FB3B; [65 1A, 05, 05][, E3 E0, 05]
+FB3A; [65 1A, 05, 2E][, E3 E0, 05]
+FB4D; [65 1A, 05, 05][, E4 04, 05]
-044A; [60 E2, 05, 05]
-1C86; [60 E2, 05, 10]
-A678; [60 E2, 05, 10]
-042A; [60 E2, 05, 9E]
-A69C; [60 E2, 05, 2C]
+05DC; [65 1C, 05, 05]
+FB25; [65 1C, 05, 2E]
+FB3C; [65 1C, 05, 05][, E3 E0, 05]
-A651; [60 E4, 05, 05]
-A650; [60 E4, 05, A0]
+05DE; [65 1E, 05, 05]
+FB26; [65 1E, 05, 20]
+05DD; [65 1E, 05, 2E]
+FB3E; [65 1E, 05, 05][, E3 E0, 05]
-044B; [60 E6, 05, 05]
-A679; [60 E6, 05, 20]
-042B; [60 E6, 05, AE]
-04F9; [60 E6, 05, 05][, 96, 05]
-04F8; [60 E6, 05, AE][, 96, 05]
+05E0; [65 20, 05, 05]
+05DF; [65 20, 05, 20]
+FB40; [65 20, 05, 05][, E3 E0, 05]
-044C; [60 E8, 05, 05]
-A67A; [60 E8, 05, 10]
-042C; [60 E8, 05, 9E]
-A69D; [60 E8, 05, 2C]
+05E1; [65 22, 05, 05]
+FB41; [65 22, 05, 05][, E3 E0, 05]
-048D; [60 EA, 05, 05]
-048C; [60 EA, 05, A0]
+05E2; [65 24, 05, 05]
+FB20; [65 24, 05, 20]
-0463; [60 EC 02, 05, 05]
-1C87; [60 EC 02, 05, 20]
-2DFA; [60 EC 02, 05, 20]
-0462; [60 EC 02, 05, AE]
+05E4; [65 26, 05, 05]
+05E3; [65 26, 05, 20]
+FB44; [65 26, 05, 05][, E3 E0, 05]
+FB43; [65 26, 05, 20][, E3 E0, 05]
+FB4E; [65 26, 05, 05][, E4 04, 05]
-A653; [60 EC 09, 05, 05]
-A652; [60 EC 09, 05, A0]
+05E6; [65 28, 05, 05]
+05E5; [65 28, 05, 20]
+FB46; [65 28, 05, 05][, E3 E0, 05]
-044D; [60 EE, 05, 05]
-042D; [60 EE, 05, A0]
-04ED; [60 EE, 05, 05][, 96, 05]
-04EC; [60 EE, 05, A0][, 96, 05]
+05E7; [65 2A, 05, 05]
+FB47; [65 2A, 05, 05][, E3 E0, 05]
-044E; [60 F0, 05, 05]
-2DFB; [60 F0, 05, 20]
-042E; [60 F0, 05, AE]
+05E8; [65 2C, 05, 05]
+FB27; [65 2C, 05, 20]
+FB48; [65 2C, 05, 05][, E3 E0, 05]
-A655; [60 F2 02, 05, 05]
-A654; [60 F2 02, 05, A0]
+05E9; [65 2E, 05, 05]
+FB2B; [65 2E, 05, 05][, E3 9C, 05]
+FB2A; [65 2E, 05, 05][, E3 BE, 05]
+FB49; [65 2E, 05, 05][, E3 E0, 05]
+FB2D; [65 2E, 05, 05][, E3 E0, 05][, E3 9C, 05]
+FB2C; [65 2E, 05, 05][, E3 E0, 05][, E3 BE, 05]
-A657; [60 F2 09, 05, 05]
-2DFC; [60 F2 09, 05, 20]
-A656; [60 F2 09, 05, AE]
+05EA; [65 30, 05, 05]
+FB28; [65 30, 05, 20]
+FB4A; [65 30, 05, 05][, E3 E0, 05]
-044F; [60 F4, 05, 05]
-042F; [60 F4, 05, A0]
+FDD1 10900; [65 32 02, 05, 05] # Phoenician first primary (compressible)
-0519; [60 F6 02, 05, 05]
-0518; [60 F6 02, 05, A0]
+10900; [65 32 09, 05, 05]
-0465; [60 F6 09, 05, 05]
-A69F; [60 F6 09, 05, 20]
-0464; [60 F6 09, 05, AE]
+10901; [65 32 10, 05, 05]
-0467; [60 F6 10, 05, 05]
-2DFD; [60 F6 10, 05, 20]
-0466; [60 F6 10, 05, AE]
+10902; [65 32 17, 05, 05]
-A659; [60 F6 17, 05, 05]
-A658; [60 F6 17, 05, A0]
+10903; [65 32 1E, 05, 05]
-046B; [60 F6 1E, 05, 05]
-2DFE; [60 F6 1E, 05, 20]
-046A; [60 F6 1E, 05, AE]
+10904; [65 32 25, 05, 05]
-A65B; [60 F6 25, 05, 05]
-A65A; [60 F6 25, 05, A0]
+10905; [65 32 2C, 05, 05]
-0469; [60 F6 2C, 05, 05]
-0468; [60 F6 2C, 05, A0]
+10906; [65 32 33, 05, 05]
-A65D; [60 F6 33, 05, 05]
-A65C; [60 F6 33, 05, A0]
+10907; [65 32 3A, 05, 05]
-046D; [60 F6 3A, 05, 05]
-2DFF; [60 F6 3A, 05, 20]
-046C; [60 F6 3A, 05, AE]
+10908; [65 32 41, 05, 05]
-046F; [60 F6 41, 05, 05]
-046E; [60 F6 41, 05, A0]
+10909; [65 32 48, 05, 05]
-0471; [60 F6 48, 05, 05]
-0470; [60 F6 48, 05, A0]
+1090A; [65 32 4F, 05, 05]
-0473; [60 F6 4F, 05, 05]
-2DF4; [60 F6 4F, 05, 20]
-0472; [60 F6 4F, 05, AE]
+1090B; [65 32 56, 05, 05]
-0475; [60 F6 56, 05, 05]
-0474; [60 F6 56, 05, A0]
-0477; [60 F6 56, 05, 05][, B8, 05]
-0476; [60 F6 56, 05, A0][, B8, 05]
+1090C; [65 32 5D, 05, 05]
-A65F; [60 F6 5D, 05, 05]
-A65E; [60 F6 5D, 05, A0]
+1090D; [65 32 64, 05, 05]
-04A9; [60 F8, 05, 05]
-04A8; [60 F8, 05, A0]
+1090E; [65 32 6B, 05, 05]
-051D; [60 FA, 05, 05]
-051C; [60 FA, 05, A0]
+1090F; [65 32 72, 05, 05]
-04CF; [60 FC, 05, 05]
-04C0; [60 FC, 05, A0]
+10910; [65 32 79, 05, 05]
-FDD1 2C00; [61 04 02, 05, 05] # GLAGOLITIC first primary starts new lead byte (compressible)
+10911; [65 32 80, 05, 05]
-2C30; [61 06, 05, 05]
-1E000; [61 06, 05, 20]
-2C00; [61 06, 05, AE]
+10912; [65 32 87, 05, 05]
-2C31; [61 08, 05, 05]
-1E001; [61 08, 05, 20]
-2C01; [61 08, 05, AE]
+10913; [65 32 8E, 05, 05]
-2C32; [61 0A, 05, 05]
-1E002; [61 0A, 05, 20]
-2C02; [61 0A, 05, AE]
+10914; [65 32 95, 05, 05]
-2C33; [61 0C, 05, 05]
-1E003; [61 0C, 05, 20]
-2C03; [61 0C, 05, AE]
+10915; [65 32 9C, 05, 05]
-2C34; [61 0E, 05, 05]
-1E004; [61 0E, 05, 20]
-2C04; [61 0E, 05, AE]
+FDD1 0800; [65 33 02, 05, 05] # Samaritan first primary (compressible)
-2C35; [61 10, 05, 05]
-1E005; [61 10, 05, 20]
-2C05; [61 10, 05, AE]
+0800; [65 33 09, 05, 05]
-2C36; [61 12, 05, 05]
-1E006; [61 12, 05, 20]
-2C06; [61 12, 05, AE]
+0801; [65 33 10, 05, 05]
-2C37; [61 14, 05, 05]
-2C07; [61 14, 05, A0]
+0802; [65 33 17, 05, 05]
-2C38; [61 16, 05, 05]
-1E008; [61 16, 05, 20]
-2C08; [61 16, 05, AE]
+0803; [65 33 1E, 05, 05]
-2C39; [61 18, 05, 05]
-1E009; [61 18, 05, 20]
-2C09; [61 18, 05, AE]
+0804; [65 33 25, 05, 05]
-2C3A; [61 1A, 05, 05]
-1E00A; [61 1A, 05, 20]
-2C0A; [61 1A, 05, AE]
+0805; [65 33 2C, 05, 05]
-2C3B; [61 1C, 05, 05]
-1E00B; [61 1C, 05, 20]
-2C0B; [61 1C, 05, AE]
+0806; [65 33 33, 05, 05]
-2C3C; [61 1E, 05, 05]
-1E00C; [61 1E, 05, 20]
-2C0C; [61 1E, 05, AE]
+0807; [65 33 3A, 05, 05]
-2C3D; [61 20, 05, 05]
-1E00D; [61 20, 05, 20]
-2C0D; [61 20, 05, AE]
+0808; [65 33 41, 05, 05]
-2C3E; [61 22, 05, 05]
-1E00E; [61 22, 05, 20]
-2C0E; [61 22, 05, AE]
+0809; [65 33 48, 05, 05]
-2C3F; [61 24, 05, 05]
-1E00F; [61 24, 05, 20]
-2C0F; [61 24, 05, AE]
+080A; [65 33 4F, 05, 05]
-2C40; [61 26, 05, 05]
-1E010; [61 26, 05, 20]
-2C10; [61 26, 05, AE]
+080B; [65 33 56, 05, 05]
-2C41; [61 28, 05, 05]
-1E011; [61 28, 05, 20]
-2C11; [61 28, 05, AE]
+080C; [65 33 5D, 05, 05]
-2C42; [61 2A, 05, 05]
-1E012; [61 2A, 05, 20]
-2C12; [61 2A, 05, AE]
+080D; [65 33 64, 05, 05]
-2C43; [61 2C, 05, 05]
-1E013; [61 2C, 05, 20]
-2C13; [61 2C, 05, AE]
+080E; [65 33 6B, 05, 05]
-2C44; [61 2E, 05, 05]
-1E014; [61 2E, 05, 20]
-2C14; [61 2E, 05, AE]
+080F; [65 33 72, 05, 05]
-2C45; [61 30, 05, 05]
-1E015; [61 30, 05, 20]
-2C15; [61 30, 05, AE]
+0810; [65 33 79, 05, 05]
-2C46; [61 32, 05, 05]
-1E016; [61 32, 05, 20]
-2C16; [61 32, 05, AE]
+0811; [65 33 80, 05, 05]
-2C47; [61 34, 05, 05]
-1E017; [61 34, 05, 20]
-2C17; [61 34, 05, AE]
+0812; [65 33 87, 05, 05]
-2C48; [61 36, 05, 05]
-1E018; [61 36, 05, 20]
-2C18; [61 36, 05, AE]
+0813; [65 33 8E, 05, 05]
-2C49; [61 38, 05, 05]
-2C19; [61 38, 05, A0]
+0814; [65 33 95, 05, 05]
-2C4A; [61 3A, 05, 05]
-2C1A; [61 3A, 05, A0]
+0815; [65 33 9C, 05, 05]
-2C4B; [61 3C, 05, 05]
-1E01B; [61 3C, 05, 20]
-2C1B; [61 3C, 05, AE]
+0816; [65 33 A3, 05, 05]
-2C4C; [61 3E, 05, 05]
-1E01C; [61 3E, 05, 20]
-2C1C; [61 3E, 05, AE]
+0817; [65 33 AA, 05, 05]
-2C4D; [61 40, 05, 05]
-1E01D; [61 40, 05, 20]
-2C1D; [61 40, 05, AE]
+081A; [65 33 B1, 05, 05]
-2C4E; [61 42, 05, 05]
-1E01E; [61 42, 05, 20]
-2C1E; [61 42, 05, AE]
+081B; [65 33 B8, 05, 05]
-2C4F; [61 44, 05, 05]
-1E01F; [61 44, 05, 20]
-2C1F; [61 44, 05, AE]
+FDD1 0628; [66 04 02, 05, 05] # ARABIC first primary starts new lead byte (compressible)
-2C50; [61 46, 05, 05]
-1E020; [61 46, 05, 20]
-2C20; [61 46, 05, AE]
+0621; [66 06, 05, 05]
+0674; [66 06, 05, 20]
+FE80; [66 06, 05, 2E]
+06FD; [66 06, 70, 05]
-2C51; [61 48, 05, 05]
-1E021; [61 48, 05, 20]
-2C21; [61 48, 05, AE]
+0622; [66 08, 05, 05]
+0627 0653; [66 08, 05, 05]
+FE82; [66 08, 05, 20]
+FE81; [66 08, 05, 2E]
-2C52; [61 4A, 05, 05]
-2C22; [61 4A, 05, A0]
+0623; [66 0A, 05, 05]
+0627 0654; [66 0A, 05, 05]
+FE84; [66 0A, 05, 20]
+FE83; [66 0A, 05, 2E]
-2C53; [61 4C, 05, 05]
-1E023; [61 4C, 05, 20]
-2C23; [61 4C, 05, AE]
+0672; [66 0C, 05, 05]
-2C54; [61 4E, 05, 05]
-1E024; [61 4E, 05, 20]
-2C24; [61 4E, 05, AE]
+0671; [66 0E, 05, 05]
+FB51; [66 0E, 05, 20]
+FB50; [66 0E, 05, 2E]
-2C55; [61 50, 05, 05]
-2C25; [61 50, 05, A0]
+0624; [66 10, 05, 05]
+0648 0654; [66 10, 05, 05]
+FE86; [66 10, 05, 20]
+FE85; [66 10, 05, 2E]
-2C56; [61 52, 05, 05]
-1E026; [61 52, 05, 20]
-2C26; [61 52, 05, AE]
+0625; [66 12, 05, 05]
+0627 0655; [66 12, 05, 05]
+FE88; [66 12, 05, 20]
+FE87; [66 12, 05, 2E]
-2C57; [61 54, 05, 05]
-1E027; [61 54, 05, 20]
-2C27; [61 54, 05, AE]
+0673; [66 14 02, 05, 05]
-2C58; [61 56, 05, 05]
-1E028; [61 56, 05, 20]
-2C28; [61 56, 05, AE]
+0773; [66 14 09, 05, 05]
-2C59; [61 58, 05, 05]
-1E029; [61 58, 05, 20]
-2C29; [61 58, 05, AE]
+0774; [66 14 10, 05, 05]
+
+0626; [66 16, 05, 05]
+064A 0654; [66 16, 05, 05]
+FE8B; [66 16, 05, 10]
+FE8C; [66 16, 05, 1B]
+FE8A; [66 16, 05, 26]
+FE89; [66 16, 05, 31]
+FBEB; [66 16, 05, 26][66 1A, 05, 26]
+FBEA; [66 16, 05, 31][66 1A, 05, 31]
+FC97; [66 16, 05, 10][66 3A, 05, 18]
+FC00; [66 16, 05, 31][66 3A, 05, 30]
+FC98; [66 16, 05, 10][66 48, 05, 18]
+FC01; [66 16, 05, 31][66 48, 05, 30]
+FC99; [66 16, 05, 10][66 4A, 05, 18]
+FC64; [66 16, 05, 26][66 6E, 05, 1E]
+FC65; [66 16, 05, 26][66 70, 05, 1E]
+FC9A; [66 16, 05, 10][66 C8, 05, 18]
+FCDF; [66 16, 05, 1B][66 C8, 05, 20]
+FC66; [66 16, 05, 26][66 C8, 05, 28]
+FC02; [66 16, 05, 31][66 C8, 05, 30]
+FC67; [66 16, 05, 26][66 CC, 05, 28]
+FC9B; [66 16, 05, 10][66 D6, 05, 18]
+FCE0; [66 16, 05, 1B][66 D6, 05, 20]
+FBED; [66 16, 05, 26][66 DC 10, 05, 20]
+FBEC; [66 16, 05, 31][66 DC 10, 05, 2E]
+FBEF; [66 16, 05, 26][66 DE, 05, 26]
+FBEE; [66 16, 05, 31][66 DE, 05, 31]
+FBF3; [66 16, 05, 26][66 E2 09, 05, 20]
+FBF2; [66 16, 05, 31][66 E2 09, 05, 2E]
+FBF1; [66 16, 05, 26][66 E4, 05, 1E]
+FBF0; [66 16, 05, 31][66 E4, 05, 2C]
+FBF5; [66 16, 05, 26][66 E6, 05, 20]
+FBF4; [66 16, 05, 31][66 E6, 05, 2E]
+FBFB; [66 16, 05, 10][66 EC, 05, 10]
+FBFA; [66 16, 05, 26][66 EC, 05, 26]
+FC68; [66 16, 05, 26][66 EC, 05, 26]
+FBF9; [66 16, 05, 31][66 EC, 05, 31]
+FC03; [66 16, 05, 31][66 EC, 05, 31]
+FC69; [66 16, 05, 26][66 EE, 05, 2C]
+FC04; [66 16, 05, 31][66 EE, 05, 33]
+FBF8; [66 16, 05, 10][66 F6, 05, 10]
+FBF7; [66 16, 05, 26][66 F6, 05, 26]
+FBF6; [66 16, 05, 31][66 F6, 05, 31]
+
+08A8; [66 18 02, 05, 05]
+
+08A9; [66 18 09, 05, 05]
+
+08AC; [66 18 10, 05, 05]
+
+0627; [66 1A, 05, 05]
+08AD; [66 1A, 05, 10]
+1EE00; [66 1A, 05, 1B]
+1EE80; [66 1A, 05, 1B]
+FE8E; [66 1A, 05, 26]
+FE8D; [66 1A, 05, 31]
+FD3C; [66 1A, 05, 26][, E5 C0, 1E]
+FD3D; [66 1A, 05, 31][, E5 C0, 2C]
+0675; [66 1A, 05, 10][66 06, 05, 20]
+FDF3; [66 1A, 05, 31][66 B6, 05, 30][66 1E, 05, 30][66 6E, 05, 2C]
+FDF2; [66 1A, 05, 31][66 C4, 05, 30][66 C4, 05, 30][66 D6, 05, 30]
+
+066E; [66 1C, 05, 05]
+1EE1C; [66 1C, 05, 20]
+1EE7C; [66 1C, 05, 20]
+
+0628; [66 1E, 05, 05]
+1EE01; [66 1E, 05, 10]
+1EE21; [66 1E, 05, 10]
+1EE61; [66 1E, 05, 10]
+1EE81; [66 1E, 05, 10]
+1EEA1; [66 1E, 05, 10]
+FE91; [66 1E, 05, 18]
+FE92; [66 1E, 05, 20]
+FE90; [66 1E, 05, 28]
+FE8F; [66 1E, 05, 30]
+FC9C; [66 1E, 05, 18][66 3A, 05, 18]
+FC05; [66 1E, 05, 30][66 3A, 05, 30]
+FC9D; [66 1E, 05, 18][66 48, 05, 18]
+FC06; [66 1E, 05, 30][66 48, 05, 30]
+FDC2; [66 1E, 05, 28][66 48, 05, 28][66 EE, 05, 2C]
+FC9E; [66 1E, 05, 18][66 4A, 05, 18]
+FC07; [66 1E, 05, 30][66 4A, 05, 30]
+FD9E; [66 1E, 05, 28][66 4A, 05, 28][66 EE, 05, 2C]
+FC6A; [66 1E, 05, 28][66 6E, 05, 1E]
+FC6B; [66 1E, 05, 28][66 70, 05, 1E]
+FC9F; [66 1E, 05, 18][66 C8, 05, 18]
+FCE1; [66 1E, 05, 20][66 C8, 05, 20]
+FC6C; [66 1E, 05, 28][66 C8, 05, 28]
+FC08; [66 1E, 05, 30][66 C8, 05, 30]
+FC6D; [66 1E, 05, 28][66 CC, 05, 28]
+FCA0; [66 1E, 05, 18][66 D6, 05, 18]
+FCE2; [66 1E, 05, 20][66 D6, 05, 20]
+FC6E; [66 1E, 05, 28][66 EC, 05, 26]
+FC09; [66 1E, 05, 30][66 EC, 05, 31]
+FC6F; [66 1E, 05, 28][66 EE, 05, 2C]
+FC0A; [66 1E, 05, 30][66 EE, 05, 33]
+
+067B; [66 20, 05, 05]
+FB54; [66 20, 05, 10]
+FB55; [66 20, 05, 1B]
+FB53; [66 20, 05, 26]
+FB52; [66 20, 05, 31]
+
+067E; [66 22, 05, 05]
+FB58; [66 22, 05, 10]
+FB59; [66 22, 05, 1B]
+FB57; [66 22, 05, 26]
+FB56; [66 22, 05, 31]
+
+0680; [66 24, 05, 05]
+FB5C; [66 24, 05, 10]
+FB5D; [66 24, 05, 1B]
+FB5B; [66 24, 05, 26]
+FB5A; [66 24, 05, 31]
+
+0750; [66 26 02, 05, 05]
+
+0751; [66 26 09, 05, 05]
+
+0752; [66 26 10, 05, 05]
+
+0753; [66 26 17, 05, 05]
+
+0754; [66 26 1E, 05, 05]
+
+0755; [66 26 25, 05, 05]
+
+08A0; [66 26 2C, 05, 05]
+
+0756; [66 26 33, 05, 05]
+
+08A1; [66 26 3A, 05, 05]
+
+08B6; [66 26 41, 05, 05]
+
+08B7; [66 26 48, 05, 05]
+
+0629; [66 28, 05, 05]
+FE94; [66 28, 05, 20]
+FE93; [66 28, 05, 2E]
+
+062A; [66 2A, 05, 05]
+1EE15; [66 2A, 05, 10]
+1EE35; [66 2A, 05, 10]
+1EE75; [66 2A, 05, 10]
+1EE95; [66 2A, 05, 10]
+1EEB5; [66 2A, 05, 10]
+FE97; [66 2A, 05, 18]
+FE98; [66 2A, 05, 20]
+FE96; [66 2A, 05, 28]
+FE95; [66 2A, 05, 30]
+FCA1; [66 2A, 05, 18][66 3A, 05, 18]
+FC0B; [66 2A, 05, 30][66 3A, 05, 30]
+FD50; [66 2A, 05, 18][66 3A, 05, 18][66 C8, 05, 18]
+FDA0; [66 2A, 05, 28][66 3A, 05, 28][66 EC, 05, 26]
+FD9F; [66 2A, 05, 28][66 3A, 05, 28][66 EE, 05, 2C]
+FCA2; [66 2A, 05, 18][66 48, 05, 18]
+FC0C; [66 2A, 05, 30][66 48, 05, 30]
+FD52; [66 2A, 05, 18][66 48, 05, 18][66 3A, 05, 18]
+FD51; [66 2A, 05, 28][66 48, 05, 28][66 3A, 05, 28]
+FD53; [66 2A, 05, 18][66 48, 05, 18][66 C8, 05, 18]
+FCA3; [66 2A, 05, 18][66 4A, 05, 18]
+FC0D; [66 2A, 05, 30][66 4A, 05, 30]
+FD54; [66 2A, 05, 18][66 4A, 05, 18][66 C8, 05, 18]
+FDA2; [66 2A, 05, 28][66 4A, 05, 28][66 EC, 05, 26]
+FDA1; [66 2A, 05, 28][66 4A, 05, 28][66 EE, 05, 2C]
+FC70; [66 2A, 05, 28][66 6E, 05, 1E]
+FC71; [66 2A, 05, 28][66 70, 05, 1E]
+FCA4; [66 2A, 05, 18][66 C8, 05, 18]
+FCE3; [66 2A, 05, 20][66 C8, 05, 20]
+FC72; [66 2A, 05, 28][66 C8, 05, 28]
+FC0E; [66 2A, 05, 30][66 C8, 05, 30]
+FD55; [66 2A, 05, 18][66 C8, 05, 18][66 3A, 05, 18]
+FD56; [66 2A, 05, 18][66 C8, 05, 18][66 48, 05, 18]
+FD57; [66 2A, 05, 18][66 C8, 05, 18][66 4A, 05, 18]
+FDA4; [66 2A, 05, 28][66 C8, 05, 28][66 EC, 05, 26]
+FDA3; [66 2A, 05, 28][66 C8, 05, 28][66 EE, 05, 2C]
+FC73; [66 2A, 05, 28][66 CC, 05, 28]
+FCA5; [66 2A, 05, 18][66 D6, 05, 18]
+FCE4; [66 2A, 05, 20][66 D6, 05, 20]
+FC74; [66 2A, 05, 28][66 EC, 05, 26]
+FC0F; [66 2A, 05, 30][66 EC, 05, 31]
+FC75; [66 2A, 05, 28][66 EE, 05, 2C]
+FC10; [66 2A, 05, 30][66 EE, 05, 33]
+
+062B; [66 2C, 05, 05]
+1EE16; [66 2C, 05, 10]
+1EE36; [66 2C, 05, 10]
+1EE76; [66 2C, 05, 10]
+1EE96; [66 2C, 05, 10]
+1EEB6; [66 2C, 05, 10]
+FE9B; [66 2C, 05, 18]
+FE9C; [66 2C, 05, 20]
+FE9A; [66 2C, 05, 28]
+FE99; [66 2C, 05, 30]
+FC11; [66 2C, 05, 30][66 3A, 05, 30]
+FC76; [66 2C, 05, 28][66 6E, 05, 1E]
+FC77; [66 2C, 05, 28][66 70, 05, 1E]
+FCA6; [66 2C, 05, 18][66 C8, 05, 18]
+FCE5; [66 2C, 05, 20][66 C8, 05, 20]
+FC78; [66 2C, 05, 28][66 C8, 05, 28]
+FC12; [66 2C, 05, 30][66 C8, 05, 30]
+FC79; [66 2C, 05, 28][66 CC, 05, 28]
+FCE6; [66 2C, 05, 20][66 D6, 05, 20]
+FC7A; [66 2C, 05, 28][66 EC, 05, 26]
+FC13; [66 2C, 05, 30][66 EC, 05, 31]
+FC7B; [66 2C, 05, 28][66 EE, 05, 2C]
+FC14; [66 2C, 05, 30][66 EE, 05, 33]
+
+0679; [66 2E, 05, 05]
+FB68; [66 2E, 05, 10]
+FB69; [66 2E, 05, 1B]
+FB67; [66 2E, 05, 26]
+FB66; [66 2E, 05, 31]
+
+067A; [66 30, 05, 05]
+FB60; [66 30, 05, 10]
+FB61; [66 30, 05, 1B]
+FB5F; [66 30, 05, 26]
+FB5E; [66 30, 05, 31]
+
+067C; [66 32, 05, 05]
+
+067D; [66 34, 05, 05]
+
+067F; [66 36, 05, 05]
+FB64; [66 36, 05, 10]
+FB65; [66 36, 05, 1B]
+FB63; [66 36, 05, 26]
+FB62; [66 36, 05, 31]
+
+08B8; [66 38, 05, 05]
+
+062C; [66 3A, 05, 05]
+1EE02; [66 3A, 05, 10]
+1EE22; [66 3A, 05, 10]
+1EE42; [66 3A, 05, 10]
+1EE62; [66 3A, 05, 10]
+1EE82; [66 3A, 05, 10]
+1EEA2; [66 3A, 05, 10]
+FE9F; [66 3A, 05, 18]
+FEA0; [66 3A, 05, 20]
+FE9E; [66 3A, 05, 28]
+FE9D; [66 3A, 05, 30]
+FCA7; [66 3A, 05, 18][66 48, 05, 18]
+FC15; [66 3A, 05, 30][66 48, 05, 30]
+FDA6; [66 3A, 05, 28][66 48, 05, 28][66 EC, 05, 26]
+FDBE; [66 3A, 05, 28][66 48, 05, 28][66 EE, 05, 2C]
+FDFB; [66 3A, 05, 30][66 C4, 05, 30][04, 05, 20][66 3A, 05, 30][66 C4, 05, 30][66 1A, 05, 31][66 C4, 05, 30][66 D6, 05, 30]
+FCA8; [66 3A, 05, 18][66 C8, 05, 18]
+FC16; [66 3A, 05, 30][66 C8, 05, 30]
+FD59; [66 3A, 05, 18][66 C8, 05, 18][66 48, 05, 18]
+FD58; [66 3A, 05, 28][66 C8, 05, 28][66 48, 05, 28]
+FDA7; [66 3A, 05, 28][66 C8, 05, 28][66 EC, 05, 26]
+FDA5; [66 3A, 05, 28][66 C8, 05, 28][66 EE, 05, 2C]
+FD1D; [66 3A, 05, 28][66 EC, 05, 26]
+FD01; [66 3A, 05, 30][66 EC, 05, 31]
+FD1E; [66 3A, 05, 28][66 EE, 05, 2C]
+FD02; [66 3A, 05, 30][66 EE, 05, 33]
+
+0683; [66 3C, 05, 05]
+FB78; [66 3C, 05, 10]
+FB79; [66 3C, 05, 1B]
+FB77; [66 3C, 05, 26]
+FB76; [66 3C, 05, 31]
+
+0684; [66 3E, 05, 05]
+FB74; [66 3E, 05, 10]
+FB75; [66 3E, 05, 1B]
+FB73; [66 3E, 05, 26]
+FB72; [66 3E, 05, 31]
+
+0686; [66 40, 05, 05]
+FB7C; [66 40, 05, 10]
+FB7D; [66 40, 05, 1B]
+FB7B; [66 40, 05, 26]
+FB7A; [66 40, 05, 31]
+
+06BF; [66 42, 05, 05]
+
+0687; [66 44, 05, 05]
+FB80; [66 44, 05, 10]
+FB81; [66 44, 05, 1B]
+FB7F; [66 44, 05, 26]
+FB7E; [66 44, 05, 31]
+
+08A2; [66 46, 05, 05]
+
+062D; [66 48, 05, 05]
+1EE07; [66 48, 05, 10]
+1EE27; [66 48, 05, 10]
+1EE47; [66 48, 05, 10]
+1EE67; [66 48, 05, 10]
+1EE87; [66 48, 05, 10]
+1EEA7; [66 48, 05, 10]
+FEA3; [66 48, 05, 18]
+FEA4; [66 48, 05, 20]
+FEA2; [66 48, 05, 28]
+FEA1; [66 48, 05, 30]
+FCA9; [66 48, 05, 18][66 3A, 05, 18]
+FC17; [66 48, 05, 30][66 3A, 05, 30]
+FDBF; [66 48, 05, 28][66 3A, 05, 28][66 EE, 05, 2C]
+FCAA; [66 48, 05, 18][66 C8, 05, 18]
+FC18; [66 48, 05, 30][66 C8, 05, 30]
+FD5B; [66 48, 05, 28][66 C8, 05, 28][66 EC, 05, 26]
+FD5A; [66 48, 05, 28][66 C8, 05, 28][66 EE, 05, 2C]
+FD1B; [66 48, 05, 28][66 EC, 05, 26]
+FCFF; [66 48, 05, 30][66 EC, 05, 31]
+FD1C; [66 48, 05, 28][66 EE, 05, 2C]
+FD00; [66 48, 05, 30][66 EE, 05, 33]
+
+062E; [66 4A, 05, 05]
+1EE17; [66 4A, 05, 10]
+1EE37; [66 4A, 05, 10]
+1EE57; [66 4A, 05, 10]
+1EE77; [66 4A, 05, 10]
+1EE97; [66 4A, 05, 10]
+1EEB7; [66 4A, 05, 10]
+FEA7; [66 4A, 05, 18]
+FEA8; [66 4A, 05, 20]
+FEA6; [66 4A, 05, 28]
+FEA5; [66 4A, 05, 30]
+FCAB; [66 4A, 05, 18][66 3A, 05, 18]
+FC19; [66 4A, 05, 30][66 3A, 05, 30]
+FC1A; [66 4A, 05, 30][66 48, 05, 30]
+FCAC; [66 4A, 05, 18][66 C8, 05, 18]
+FC1B; [66 4A, 05, 30][66 C8, 05, 30]
+FD1F; [66 4A, 05, 28][66 EC, 05, 26]
+FD03; [66 4A, 05, 30][66 EC, 05, 31]
+FD20; [66 4A, 05, 28][66 EE, 05, 2C]
+FD04; [66 4A, 05, 30][66 EE, 05, 33]
+
+0681; [66 4C, 05, 05]
+
+0682; [66 4E, 05, 05]
+
+0685; [66 50, 05, 05]
+
+0757; [66 52 02, 05, 05]
+
+0758; [66 52 09, 05, 05]
+
+076E; [66 52 10, 05, 05]
+
+076F; [66 52 17, 05, 05]
+
+0772; [66 52 1E, 05, 05]
+
+077C; [66 52 25, 05, 05]
-2C5A; [61 5A, 05, 05]
-1E02A; [61 5A, 05, 20]
-2C2A; [61 5A, 05, AE]
+062F; [66 54, 05, 05]
+1EE03; [66 54, 05, 10]
+1EE83; [66 54, 05, 10]
+1EEA3; [66 54, 05, 10]
+FEAA; [66 54, 05, 1E]
+FEA9; [66 54, 05, 2C]
-2C5B; [61 5C, 05, 05]
-2C2B; [61 5C, 05, A0]
+0630; [66 56, 05, 05]
+1EE18; [66 56, 05, 10]
+1EE98; [66 56, 05, 10]
+1EEB8; [66 56, 05, 10]
+FEAC; [66 56, 05, 1E]
+FEAB; [66 56, 05, 2C]
+FC5B; [66 56, 05, 2C][, EB 82, 2C]
-2C5C; [61 5E, 05, 05]
-2C2C; [61 5E, 05, A0]
+0688; [66 58, 05, 05]
+FB89; [66 58, 05, 20]
+FB88; [66 58, 05, 2E]
-2C5D; [61 60, 05, 05]
-2C2D; [61 60, 05, A0]
+0689; [66 5A, 05, 05]
-2C5E; [61 62, 05, 05]
-2C2E; [61 62, 05, A0]
+068A; [66 5C, 05, 05]
+
+068B; [66 5E, 05, 05]
+
+068C; [66 60, 05, 05]
+FB85; [66 60, 05, 20]
+FB84; [66 60, 05, 2E]
+
+068D; [66 62, 05, 05]
+FB83; [66 62, 05, 20]
+FB82; [66 62, 05, 2E]
+
+08AE; [66 64, 05, 05]
+
+068E; [66 66, 05, 05]
+FB87; [66 66, 05, 20]
+FB86; [66 66, 05, 2E]
+
+068F; [66 68, 05, 05]
+
+0690; [66 6A, 05, 05]
+
+06EE; [66 6C 02, 05, 05]
+
+0759; [66 6C 09, 05, 05]
+
+075A; [66 6C 10, 05, 05]
+
+0631; [66 6E, 05, 05]
+1EE13; [66 6E, 05, 10]
+1EE93; [66 6E, 05, 10]
+1EEB3; [66 6E, 05, 10]
+FEAE; [66 6E, 05, 1E]
+FEAD; [66 6E, 05, 2C]
+FC5C; [66 6E, 05, 2C][, EB 82, 2C]
+FDF6; [66 6E, 05, 2C][66 86, 05, 30][66 DE, 05, 31][66 C4, 05, 30]
+
+0632; [66 70, 05, 05]
+1EE06; [66 70, 05, 10]
+1EE86; [66 70, 05, 10]
+1EEA6; [66 70, 05, 10]
+FEB0; [66 70, 05, 1E]
+FEAF; [66 70, 05, 2C]
+
+0691; [66 72, 05, 05]
+FB8D; [66 72, 05, 20]
+FB8C; [66 72, 05, 2E]
+
+0692; [66 74, 05, 05]
+
+0693; [66 76, 05, 05]
+
+0694; [66 78, 05, 05]
+
+0695; [66 7A, 05, 05]
+
+0696; [66 7C, 05, 05]
+
+0697; [66 7E, 05, 05]
+
+0698; [66 80, 05, 05]
+FB8B; [66 80, 05, 20]
+FB8A; [66 80, 05, 2E]
+
+0699; [66 82, 05, 05]
+
+06EF; [66 84 02, 05, 05]
+
+075B; [66 84 09, 05, 05]
+
+076B; [66 84 10, 05, 05]
+
+076C; [66 84 17, 05, 05]
+
+0771; [66 84 1E, 05, 05]
+
+08AA; [66 84 25, 05, 05]
+
+08B2; [66 84 2C, 05, 05]
+
+08B9; [66 84 33, 05, 05]
+
+0633; [66 86, 05, 05]
+1EE0E; [66 86, 05, 10]
+1EE2E; [66 86, 05, 10]
+1EE4E; [66 86, 05, 10]
+1EE6E; [66 86, 05, 10]
+1EE8E; [66 86, 05, 10]
+1EEAE; [66 86, 05, 10]
+FEB3; [66 86, 05, 18]
+FEB4; [66 86, 05, 20]
+FEB2; [66 86, 05, 28]
+FEB1; [66 86, 05, 30]
+FCAD; [66 86, 05, 18][66 3A, 05, 18]
+FD34; [66 86, 05, 20][66 3A, 05, 20]
+FC1C; [66 86, 05, 30][66 3A, 05, 30]
+FD5D; [66 86, 05, 18][66 3A, 05, 18][66 48, 05, 18]
+FD5E; [66 86, 05, 28][66 3A, 05, 28][66 EC, 05, 26]
+FCAE; [66 86, 05, 18][66 48, 05, 18]
+FD35; [66 86, 05, 20][66 48, 05, 20]
+FC1D; [66 86, 05, 30][66 48, 05, 30]
+FD5C; [66 86, 05, 18][66 48, 05, 18][66 3A, 05, 18]
+FCAF; [66 86, 05, 18][66 4A, 05, 18]
+FD36; [66 86, 05, 20][66 4A, 05, 20]
+FC1E; [66 86, 05, 30][66 4A, 05, 30]
+FDA8; [66 86, 05, 28][66 4A, 05, 28][66 EC, 05, 26]
+FDC6; [66 86, 05, 28][66 4A, 05, 28][66 EE, 05, 2C]
+FD2A; [66 86, 05, 28][66 6E, 05, 1E]
+FD0E; [66 86, 05, 30][66 6E, 05, 2C]
+FCB0; [66 86, 05, 18][66 C8, 05, 18]
+FCE7; [66 86, 05, 20][66 C8, 05, 20]
+FC1F; [66 86, 05, 30][66 C8, 05, 30]
+FD61; [66 86, 05, 18][66 C8, 05, 18][66 3A, 05, 18]
+FD60; [66 86, 05, 18][66 C8, 05, 18][66 48, 05, 18]
+FD5F; [66 86, 05, 28][66 C8, 05, 28][66 48, 05, 28]
+FD63; [66 86, 05, 18][66 C8, 05, 18][66 C8, 05, 18]
+FD62; [66 86, 05, 28][66 C8, 05, 28][66 C8, 05, 28]
+FD31; [66 86, 05, 18][66 D6, 05, 18]
+FCE8; [66 86, 05, 20][66 D6, 05, 20]
+FD17; [66 86, 05, 28][66 EC, 05, 26]
+FCFB; [66 86, 05, 30][66 EC, 05, 31]
+FD18; [66 86, 05, 28][66 EE, 05, 2C]
+FCFC; [66 86, 05, 30][66 EE, 05, 33]
+
+0634; [66 88, 05, 05]
+1EE14; [66 88, 05, 10]
+1EE34; [66 88, 05, 10]
+1EE54; [66 88, 05, 10]
+1EE74; [66 88, 05, 10]
+1EE94; [66 88, 05, 10]
+1EEB4; [66 88, 05, 10]
+FEB7; [66 88, 05, 18]
+FEB8; [66 88, 05, 20]
+FEB6; [66 88, 05, 28]
+FEB5; [66 88, 05, 30]
+FD2D; [66 88, 05, 18][66 3A, 05, 18]
+FD37; [66 88, 05, 20][66 3A, 05, 20]
+FD25; [66 88, 05, 28][66 3A, 05, 28]
+FD09; [66 88, 05, 30][66 3A, 05, 30]
+FD69; [66 88, 05, 28][66 3A, 05, 28][66 EE, 05, 2C]
+FD2E; [66 88, 05, 18][66 48, 05, 18]
+FD38; [66 88, 05, 20][66 48, 05, 20]
+FD26; [66 88, 05, 28][66 48, 05, 28]
+FD0A; [66 88, 05, 30][66 48, 05, 30]
+FD68; [66 88, 05, 18][66 48, 05, 18][66 C8, 05, 18]
+FD67; [66 88, 05, 28][66 48, 05, 28][66 C8, 05, 28]
+FDAA; [66 88, 05, 28][66 48, 05, 28][66 EE, 05, 2C]
+FD2F; [66 88, 05, 18][66 4A, 05, 18]
+FD39; [66 88, 05, 20][66 4A, 05, 20]
+FD27; [66 88, 05, 28][66 4A, 05, 28]
+FD0B; [66 88, 05, 30][66 4A, 05, 30]
+FD29; [66 88, 05, 28][66 6E, 05, 1E]
+FD0D; [66 88, 05, 30][66 6E, 05, 2C]
+FD30; [66 88, 05, 18][66 C8, 05, 18]
+FCE9; [66 88, 05, 20][66 C8, 05, 20]
+FD28; [66 88, 05, 28][66 C8, 05, 28]
+FD0C; [66 88, 05, 30][66 C8, 05, 30]
+FD6B; [66 88, 05, 18][66 C8, 05, 18][66 4A, 05, 18]
+FD6A; [66 88, 05, 28][66 C8, 05, 28][66 4A, 05, 28]
+FD6D; [66 88, 05, 18][66 C8, 05, 18][66 C8, 05, 18]
+FD6C; [66 88, 05, 28][66 C8, 05, 28][66 C8, 05, 28]
+FD32; [66 88, 05, 18][66 D6, 05, 18]
+FCEA; [66 88, 05, 20][66 D6, 05, 20]
+FD19; [66 88, 05, 28][66 EC, 05, 26]
+FCFD; [66 88, 05, 30][66 EC, 05, 31]
+FD1A; [66 88, 05, 28][66 EE, 05, 2C]
+FCFE; [66 88, 05, 30][66 EE, 05, 33]
+
+069A; [66 8A, 05, 05]
+
+069B; [66 8C, 05, 05]
+
+069C; [66 8E, 05, 05]
+
+06FA; [66 90 02, 05, 05]
+
+075C; [66 90 09, 05, 05]
+
+076D; [66 90 10, 05, 05]
+
+0770; [66 90 17, 05, 05]
+
+077D; [66 90 1E, 05, 05]
+
+077E; [66 90 25, 05, 05]
+
+0635; [66 92, 05, 05]
+1EE11; [66 92, 05, 10]
+1EE31; [66 92, 05, 10]
+1EE51; [66 92, 05, 10]
+1EE71; [66 92, 05, 10]
+1EE91; [66 92, 05, 10]
+1EEB1; [66 92, 05, 10]
+FEBB; [66 92, 05, 18]
+FEBC; [66 92, 05, 20]
+FEBA; [66 92, 05, 28]
+FEB9; [66 92, 05, 30]
+FCB1; [66 92, 05, 18][66 48, 05, 18]
+FC20; [66 92, 05, 30][66 48, 05, 30]
+FD65; [66 92, 05, 18][66 48, 05, 18][66 48, 05, 18]
+FD64; [66 92, 05, 28][66 48, 05, 28][66 48, 05, 28]
+FDA9; [66 92, 05, 28][66 48, 05, 28][66 EE, 05, 2C]
+FCB2; [66 92, 05, 18][66 4A, 05, 18]
+FD2B; [66 92, 05, 28][66 6E, 05, 1E]
+FD0F; [66 92, 05, 30][66 6E, 05, 2C]
+FDF5; [66 92, 05, 30][66 C4, 05, 30][66 A6, 05, 30][66 C8, 05, 30]
+FDF9; [66 92, 05, 30][66 C4, 05, 30][66 EC, 05, 31]
+FDFA; [66 92, 05, 30][66 C4, 05, 30][66 EC, 05, 31][04, 05, 20][66 1A, 05, 31][66 C4, 05, 30][66 C4, 05, 30][66 D6, 05, 30][04, 05, 20][66 A6, 05, 30][66 C4, 05, 30][66 EE, 05, 33][66 D6, 05, 30][04, 05, 20][66 DE, 05, 31][66 86, 05, 30][66 C4, 05, 30][66 C8, 05, 30]
+FDF0; [66 92, 05, 30][66 C4, 05, 30][66 FA, 05, 2E]
+FCB3; [66 92, 05, 18][66 C8, 05, 18]
+FC21; [66 92, 05, 30][66 C8, 05, 30]
+FDC5; [66 92, 05, 18][66 C8, 05, 18][66 C8, 05, 18]
+FD66; [66 92, 05, 28][66 C8, 05, 28][66 C8, 05, 28]
+FD21; [66 92, 05, 28][66 EC, 05, 26]
+FD05; [66 92, 05, 30][66 EC, 05, 31]
+FD22; [66 92, 05, 28][66 EE, 05, 2C]
+FD06; [66 92, 05, 30][66 EE, 05, 33]
+
+0636; [66 94, 05, 05]
+1EE19; [66 94, 05, 10]
+1EE39; [66 94, 05, 10]
+1EE59; [66 94, 05, 10]
+1EE79; [66 94, 05, 10]
+1EE99; [66 94, 05, 10]
+1EEB9; [66 94, 05, 10]
+FEBF; [66 94, 05, 18]
+FEC0; [66 94, 05, 20]
+FEBE; [66 94, 05, 28]
+FEBD; [66 94, 05, 30]
+FCB4; [66 94, 05, 18][66 3A, 05, 18]
+FC22; [66 94, 05, 30][66 3A, 05, 30]
+FCB5; [66 94, 05, 18][66 48, 05, 18]
+FC23; [66 94, 05, 30][66 48, 05, 30]
+FD6E; [66 94, 05, 28][66 48, 05, 28][66 EC, 05, 26]
+FDAB; [66 94, 05, 28][66 48, 05, 28][66 EE, 05, 2C]
+FCB6; [66 94, 05, 18][66 4A, 05, 18]
+FC24; [66 94, 05, 30][66 4A, 05, 30]
+FD70; [66 94, 05, 18][66 4A, 05, 18][66 C8, 05, 18]
+FD6F; [66 94, 05, 28][66 4A, 05, 28][66 C8, 05, 28]
+FD2C; [66 94, 05, 28][66 6E, 05, 1E]
+FD10; [66 94, 05, 30][66 6E, 05, 2C]
+FCB7; [66 94, 05, 18][66 C8, 05, 18]
+FC25; [66 94, 05, 30][66 C8, 05, 30]
+FD23; [66 94, 05, 28][66 EC, 05, 26]
+FD07; [66 94, 05, 30][66 EC, 05, 31]
+FD24; [66 94, 05, 28][66 EE, 05, 2C]
+FD08; [66 94, 05, 30][66 EE, 05, 33]
+
+069D; [66 96, 05, 05]
+
+08AF; [66 98, 05, 05]
+
+069E; [66 9A, 05, 05]
+
+06FB; [66 9C, 05, 05]
+
+0637; [66 9E, 05, 05]
+1EE08; [66 9E, 05, 10]
+1EE68; [66 9E, 05, 10]
+1EE88; [66 9E, 05, 10]
+1EEA8; [66 9E, 05, 10]
+FEC3; [66 9E, 05, 18]
+FEC4; [66 9E, 05, 20]
+FEC2; [66 9E, 05, 28]
+FEC1; [66 9E, 05, 30]
+FCB8; [66 9E, 05, 18][66 48, 05, 18]
+FC26; [66 9E, 05, 30][66 48, 05, 30]
+FD33; [66 9E, 05, 18][66 C8, 05, 18]
+FD3A; [66 9E, 05, 20][66 C8, 05, 20]
+FC27; [66 9E, 05, 30][66 C8, 05, 30]
+FD72; [66 9E, 05, 18][66 C8, 05, 18][66 48, 05, 18]
+FD71; [66 9E, 05, 28][66 C8, 05, 28][66 48, 05, 28]
+FD73; [66 9E, 05, 18][66 C8, 05, 18][66 C8, 05, 18]
+FD74; [66 9E, 05, 28][66 C8, 05, 28][66 EE, 05, 2C]
+FD11; [66 9E, 05, 28][66 EC, 05, 26]
+FCF5; [66 9E, 05, 30][66 EC, 05, 31]
+FD12; [66 9E, 05, 28][66 EE, 05, 2C]
+FCF6; [66 9E, 05, 30][66 EE, 05, 33]
+
+0638; [66 A0, 05, 05]
+1EE1A; [66 A0, 05, 10]
+1EE7A; [66 A0, 05, 10]
+1EE9A; [66 A0, 05, 10]
+1EEBA; [66 A0, 05, 10]
+FEC7; [66 A0, 05, 18]
+FEC8; [66 A0, 05, 20]
+FEC6; [66 A0, 05, 28]
+FEC5; [66 A0, 05, 30]
+FCB9; [66 A0, 05, 18][66 C8, 05, 18]
+FD3B; [66 A0, 05, 20][66 C8, 05, 20]
+FC28; [66 A0, 05, 30][66 C8, 05, 30]
+
+069F; [66 A2, 05, 05]
+
+08A3; [66 A4, 05, 05]
+
+0639; [66 A6, 05, 05]
+1EE0F; [66 A6, 05, 10]
+1EE2F; [66 A6, 05, 10]
+1EE4F; [66 A6, 05, 10]
+1EE6F; [66 A6, 05, 10]
+1EE8F; [66 A6, 05, 10]
+1EEAF; [66 A6, 05, 10]
+FECB; [66 A6, 05, 18]
+FECC; [66 A6, 05, 20]
+FECA; [66 A6, 05, 28]
+FEC9; [66 A6, 05, 30]
+FCBA; [66 A6, 05, 18][66 3A, 05, 18]
+FC29; [66 A6, 05, 30][66 3A, 05, 30]
+FDC4; [66 A6, 05, 18][66 3A, 05, 18][66 C8, 05, 18]
+FD75; [66 A6, 05, 28][66 3A, 05, 28][66 C8, 05, 28]
+FDF7; [66 A6, 05, 30][66 C4, 05, 30][66 EE, 05, 33][66 D6, 05, 30]
+FCBB; [66 A6, 05, 18][66 C8, 05, 18]
+FC2A; [66 A6, 05, 30][66 C8, 05, 30]
+FD77; [66 A6, 05, 18][66 C8, 05, 18][66 C8, 05, 18]
+FD76; [66 A6, 05, 28][66 C8, 05, 28][66 C8, 05, 28]
+FD78; [66 A6, 05, 28][66 C8, 05, 28][66 EC, 05, 26]
+FDB6; [66 A6, 05, 28][66 C8, 05, 28][66 EE, 05, 2C]
+FD13; [66 A6, 05, 28][66 EC, 05, 26]
+FCF7; [66 A6, 05, 30][66 EC, 05, 31]
+FD14; [66 A6, 05, 28][66 EE, 05, 2C]
+FCF8; [66 A6, 05, 30][66 EE, 05, 33]
+
+063A; [66 A8, 05, 05]
+1EE1B; [66 A8, 05, 10]
+1EE3B; [66 A8, 05, 10]
+1EE5B; [66 A8, 05, 10]
+1EE7B; [66 A8, 05, 10]
+1EE9B; [66 A8, 05, 10]
+1EEBB; [66 A8, 05, 10]
+FECF; [66 A8, 05, 18]
+FED0; [66 A8, 05, 20]
+FECE; [66 A8, 05, 28]
+FECD; [66 A8, 05, 30]
+FCBC; [66 A8, 05, 18][66 3A, 05, 18]
+FC2B; [66 A8, 05, 30][66 3A, 05, 30]
+FCBD; [66 A8, 05, 18][66 C8, 05, 18]
+FC2C; [66 A8, 05, 30][66 C8, 05, 30]
+FD79; [66 A8, 05, 28][66 C8, 05, 28][66 C8, 05, 28]
+FD7B; [66 A8, 05, 28][66 C8, 05, 28][66 EC, 05, 26]
+FD7A; [66 A8, 05, 28][66 C8, 05, 28][66 EE, 05, 2C]
+FD15; [66 A8, 05, 28][66 EC, 05, 26]
+FCF9; [66 A8, 05, 30][66 EC, 05, 31]
+FD16; [66 A8, 05, 28][66 EE, 05, 2C]
+FCFA; [66 A8, 05, 30][66 EE, 05, 33]
+
+06A0; [66 AA, 05, 05]
+
+06FC; [66 AC 02, 05, 05]
+
+075D; [66 AC 09, 05, 05]
+
+075E; [66 AC 10, 05, 05]
+
+075F; [66 AC 17, 05, 05]
+
+08B3; [66 AC 1E, 05, 05]
+
+0641; [66 AE, 05, 05]
+1EE10; [66 AE, 05, 10]
+1EE30; [66 AE, 05, 10]
+1EE70; [66 AE, 05, 10]
+1EE90; [66 AE, 05, 10]
+1EEB0; [66 AE, 05, 10]
+FED3; [66 AE, 05, 18]
+FED4; [66 AE, 05, 20]
+FED2; [66 AE, 05, 28]
+FED1; [66 AE, 05, 30]
+FCBE; [66 AE, 05, 18][66 3A, 05, 18]
+FC2D; [66 AE, 05, 30][66 3A, 05, 30]
+FCBF; [66 AE, 05, 18][66 48, 05, 18]
+FC2E; [66 AE, 05, 30][66 48, 05, 30]
+FCC0; [66 AE, 05, 18][66 4A, 05, 18]
+FC2F; [66 AE, 05, 30][66 4A, 05, 30]
+FD7D; [66 AE, 05, 18][66 4A, 05, 18][66 C8, 05, 18]
+FD7C; [66 AE, 05, 28][66 4A, 05, 28][66 C8, 05, 28]
+FCC1; [66 AE, 05, 18][66 C8, 05, 18]
+FC30; [66 AE, 05, 30][66 C8, 05, 30]
+FDC1; [66 AE, 05, 28][66 C8, 05, 28][66 EE, 05, 2C]
+FC7C; [66 AE, 05, 28][66 EC, 05, 26]
+FC31; [66 AE, 05, 30][66 EC, 05, 31]
+FC7D; [66 AE, 05, 28][66 EE, 05, 2C]
+FC32; [66 AE, 05, 30][66 EE, 05, 33]
+
+06A1; [66 B0 02, 05, 05]
+1EE1E; [66 B0 02, 05, 20]
+1EE7E; [66 B0 02, 05, 20]
+
+06A2; [66 B0 09, 05, 05]
+
+08BB; [66 B0 10, 05, 05]
+
+06A3; [66 B0 17, 05, 05]
+
+06A4; [66 B0 1E, 05, 05]
+FB6C; [66 B0 1E, 05, 10]
+FB6D; [66 B0 1E, 05, 1B]
+FB6B; [66 B0 1E, 05, 26]
+FB6A; [66 B0 1E, 05, 31]
+
+08A4; [66 B0 25, 05, 05]
+
+06A5; [66 B0 2C, 05, 05]
+
+06A6; [66 B0 33, 05, 05]
+FB70; [66 B0 33, 05, 10]
+FB71; [66 B0 33, 05, 1B]
+FB6F; [66 B0 33, 05, 26]
+FB6E; [66 B0 33, 05, 31]
+
+0760; [66 B0 3A, 05, 05]
+
+0761; [66 B0 41, 05, 05]
+
+066F; [66 B0 48, 05, 05]
+1EE1F; [66 B0 48, 05, 20]
+1EE5F; [66 B0 48, 05, 20]
+
+0642; [66 B2, 05, 05]
+1EE12; [66 B2, 05, 10]
+1EE32; [66 B2, 05, 10]
+1EE52; [66 B2, 05, 10]
+1EE72; [66 B2, 05, 10]
+1EE92; [66 B2, 05, 10]
+1EEB2; [66 B2, 05, 10]
+FED7; [66 B2, 05, 18]
+FED8; [66 B2, 05, 20]
+FED6; [66 B2, 05, 28]
+FED5; [66 B2, 05, 30]
+FCC2; [66 B2, 05, 18][66 48, 05, 18]
+FC33; [66 B2, 05, 30][66 48, 05, 30]
+FDF1; [66 B2, 05, 30][66 C4, 05, 30][66 FA, 05, 2E]
+FCC3; [66 B2, 05, 18][66 C8, 05, 18]
+FC34; [66 B2, 05, 30][66 C8, 05, 30]
+FDB4; [66 B2, 05, 18][66 C8, 05, 18][66 48, 05, 18]
+FD7E; [66 B2, 05, 28][66 C8, 05, 28][66 48, 05, 28]
+FD7F; [66 B2, 05, 28][66 C8, 05, 28][66 C8, 05, 28]
+FDB2; [66 B2, 05, 28][66 C8, 05, 28][66 EE, 05, 2C]
+FC7E; [66 B2, 05, 28][66 EC, 05, 26]
+FC35; [66 B2, 05, 30][66 EC, 05, 31]
+FC7F; [66 B2, 05, 28][66 EE, 05, 2C]
+FC36; [66 B2, 05, 30][66 EE, 05, 33]
+
+06A7; [66 B4 02, 05, 05]
+
+08BC; [66 B4 09, 05, 05]
+
+06A8; [66 B4 10, 05, 05]
+
+08A5; [66 B4 17, 05, 05]
+
+0643; [66 B6, 05, 05]
+1EE0A; [66 B6, 05, 10]
+1EE2A; [66 B6, 05, 10]
+1EE6A; [66 B6, 05, 10]
+FEDB; [66 B6, 05, 18]
+FEDC; [66 B6, 05, 20]
+FEDA; [66 B6, 05, 28]
+FED9; [66 B6, 05, 30]
+FC80; [66 B6, 05, 28][66 1A, 05, 26]
+FC37; [66 B6, 05, 30][66 1A, 05, 31]
+FCC4; [66 B6, 05, 18][66 3A, 05, 18]
+FC38; [66 B6, 05, 30][66 3A, 05, 30]
+FCC5; [66 B6, 05, 18][66 48, 05, 18]
+FC39; [66 B6, 05, 30][66 48, 05, 30]
+FCC6; [66 B6, 05, 18][66 4A, 05, 18]
+FC3A; [66 B6, 05, 30][66 4A, 05, 30]
+FCC7; [66 B6, 05, 18][66 C4, 05, 18]
+FCEB; [66 B6, 05, 20][66 C4, 05, 20]
+FC81; [66 B6, 05, 28][66 C4, 05, 28]
+FC3B; [66 B6, 05, 30][66 C4, 05, 30]
+FCC8; [66 B6, 05, 18][66 C8, 05, 18]
+FCEC; [66 B6, 05, 20][66 C8, 05, 20]
+FC82; [66 B6, 05, 28][66 C8, 05, 28]
+FC3C; [66 B6, 05, 30][66 C8, 05, 30]
+FDC3; [66 B6, 05, 18][66 C8, 05, 18][66 C8, 05, 18]
+FDBB; [66 B6, 05, 28][66 C8, 05, 28][66 C8, 05, 28]
+FDB7; [66 B6, 05, 28][66 C8, 05, 28][66 EE, 05, 2C]
+FC83; [66 B6, 05, 28][66 EC, 05, 26]
+FC3D; [66 B6, 05, 30][66 EC, 05, 31]
+FC84; [66 B6, 05, 28][66 EE, 05, 2C]
+FC3E; [66 B6, 05, 30][66 EE, 05, 33]
+
+06A9; [66 B8, 05, 05]
+FB90; [66 B8, 05, 10]
+FB91; [66 B8, 05, 1B]
+FB8F; [66 B8, 05, 26]
+FB8E; [66 B8, 05, 31]
+
+06AA; [66 BA, 05, 05]
+
+06AB; [66 BC, 05, 05]
+
+06AC; [66 BE 02, 05, 05]
+
+077F; [66 BE 09, 05, 05]
+
+06AD; [66 BE 10, 05, 05]
+FBD5; [66 BE 10, 05, 10]
+FBD6; [66 BE 10, 05, 1B]
+FBD4; [66 BE 10, 05, 26]
+FBD3; [66 BE 10, 05, 31]
+
+06AE; [66 BE 17, 05, 05]
+
+08B4; [66 BE 1E, 05, 05]
+
+06AF; [66 C0, 05, 05]
+FB94; [66 C0, 05, 10]
+FB95; [66 C0, 05, 1B]
+FB93; [66 C0, 05, 26]
+FB92; [66 C0, 05, 31]
+
+08B0; [66 C2 02, 05, 05]
+
+06B0; [66 C2 09, 05, 05]
+
+06B1; [66 C2 10, 05, 05]
+FB9C; [66 C2 10, 05, 10]
+FB9D; [66 C2 10, 05, 1B]
+FB9B; [66 C2 10, 05, 26]
+FB9A; [66 C2 10, 05, 31]
+
+06B2; [66 C2 17, 05, 05]
+
+06B3; [66 C2 1E, 05, 05]
+FB98; [66 C2 1E, 05, 10]
+FB99; [66 C2 1E, 05, 1B]
+FB97; [66 C2 1E, 05, 26]
+FB96; [66 C2 1E, 05, 31]
+
+06B4; [66 C2 25, 05, 05]
+
+0762; [66 C2 2C, 05, 05]
+
+063B; [66 C2 33, 05, 05]
+
+063C; [66 C2 3A, 05, 05]
+
+0763; [66 C2 41, 05, 05]
+
+0764; [66 C2 48, 05, 05]
+
+0644; [66 C4, 05, 05]
+1EE0B; [66 C4, 05, 10]
+1EE2B; [66 C4, 05, 10]
+1EE4B; [66 C4, 05, 10]
+1EE8B; [66 C4, 05, 10]
+1EEAB; [66 C4, 05, 10]
+FEDF; [66 C4, 05, 18]
+FEE0; [66 C4, 05, 20]
+FEDE; [66 C4, 05, 28]
+FEDD; [66 C4, 05, 30]
+FEF6; [66 C4, 05, 28][66 08, 05, 20]
+FEF5; [66 C4, 05, 30][66 08, 05, 2E]
+FEF8; [66 C4, 05, 28][66 0A, 05, 20]
+FEF7; [66 C4, 05, 30][66 0A, 05, 2E]
+FEFA; [66 C4, 05, 28][66 12, 05, 20]
+FEF9; [66 C4, 05, 30][66 12, 05, 2E]
+FEFC; [66 C4, 05, 28][66 1A, 05, 26]
+FEFB; [66 C4, 05, 30][66 1A, 05, 31]
+FCC9; [66 C4, 05, 18][66 3A, 05, 18]
+FC3F; [66 C4, 05, 30][66 3A, 05, 30]
+FD83; [66 C4, 05, 18][66 3A, 05, 18][66 3A, 05, 18]
+FD84; [66 C4, 05, 28][66 3A, 05, 28][66 3A, 05, 28]
+FDBA; [66 C4, 05, 18][66 3A, 05, 18][66 C8, 05, 18]
+FDBC; [66 C4, 05, 28][66 3A, 05, 28][66 C8, 05, 28]
+FDAC; [66 C4, 05, 28][66 3A, 05, 28][66 EE, 05, 2C]
+FCCA; [66 C4, 05, 18][66 48, 05, 18]
+FC40; [66 C4, 05, 30][66 48, 05, 30]
+FDB5; [66 C4, 05, 18][66 48, 05, 18][66 C8, 05, 18]
+FD80; [66 C4, 05, 28][66 48, 05, 28][66 C8, 05, 28]
+FD82; [66 C4, 05, 28][66 48, 05, 28][66 EC, 05, 26]
+FD81; [66 C4, 05, 28][66 48, 05, 28][66 EE, 05, 2C]
+FCCB; [66 C4, 05, 18][66 4A, 05, 18]
+FC41; [66 C4, 05, 30][66 4A, 05, 30]
+FD86; [66 C4, 05, 18][66 4A, 05, 18][66 C8, 05, 18]
+FD85; [66 C4, 05, 28][66 4A, 05, 28][66 C8, 05, 28]
+FCCC; [66 C4, 05, 18][66 C8, 05, 18]
+FCED; [66 C4, 05, 20][66 C8, 05, 20]
+FC85; [66 C4, 05, 28][66 C8, 05, 28]
+FC42; [66 C4, 05, 30][66 C8, 05, 30]
+FD88; [66 C4, 05, 18][66 C8, 05, 18][66 48, 05, 18]
+FD87; [66 C4, 05, 28][66 C8, 05, 28][66 48, 05, 28]
+FDAD; [66 C4, 05, 28][66 C8, 05, 28][66 EE, 05, 2C]
+FCCD; [66 C4, 05, 18][66 D6, 05, 18]
+FC86; [66 C4, 05, 28][66 EC, 05, 26]
+FC43; [66 C4, 05, 30][66 EC, 05, 31]
+FC87; [66 C4, 05, 28][66 EE, 05, 2C]
+FC44; [66 C4, 05, 30][66 EE, 05, 33]
+
+06B5; [66 C6 02, 05, 05]
+
+06B6; [66 C6 09, 05, 05]
+
+06B7; [66 C6 10, 05, 05]
+
+06B8; [66 C6 17, 05, 05]
+
+076A; [66 C6 1E, 05, 05]
+
+08A6; [66 C6 25, 05, 05]
+
+0645; [66 C8, 05, 05]
+1EE0C; [66 C8, 05, 10]
+1EE2C; [66 C8, 05, 10]
+1EE6C; [66 C8, 05, 10]
+1EE8C; [66 C8, 05, 10]
+1EEAC; [66 C8, 05, 10]
+FEE3; [66 C8, 05, 18]
+FEE4; [66 C8, 05, 20]
+FEE2; [66 C8, 05, 28]
+FEE1; [66 C8, 05, 30]
+06FE; [66 C8, 70, 05]
+FC88; [66 C8, 05, 28][66 1A, 05, 26]
+FCCE; [66 C8, 05, 18][66 3A, 05, 18]
+FC45; [66 C8, 05, 30][66 3A, 05, 30]
+FD8C; [66 C8, 05, 18][66 3A, 05, 18][66 48, 05, 18]
+FD92; [66 C8, 05, 18][66 3A, 05, 18][66 4A, 05, 18]
+FD8D; [66 C8, 05, 18][66 3A, 05, 18][66 C8, 05, 18]
+FDC0; [66 C8, 05, 28][66 3A, 05, 28][66 EE, 05, 2C]
+FCCF; [66 C8, 05, 18][66 48, 05, 18]
+FC46; [66 C8, 05, 30][66 48, 05, 30]
+FD89; [66 C8, 05, 18][66 48, 05, 18][66 3A, 05, 18]
+FD8A; [66 C8, 05, 18][66 48, 05, 18][66 C8, 05, 18]
+FDF4; [66 C8, 05, 30][66 48, 05, 30][66 C8, 05, 30][66 54, 05, 2C]
+FD8B; [66 C8, 05, 28][66 48, 05, 28][66 EE, 05, 2C]
+FCD0; [66 C8, 05, 18][66 4A, 05, 18]
+FC47; [66 C8, 05, 30][66 4A, 05, 30]
+FD8E; [66 C8, 05, 18][66 4A, 05, 18][66 3A, 05, 18]
+FD8F; [66 C8, 05, 18][66 4A, 05, 18][66 C8, 05, 18]
+FDB9; [66 C8, 05, 28][66 4A, 05, 28][66 EE, 05, 2C]
+FCD1; [66 C8, 05, 18][66 C8, 05, 18]
+FC89; [66 C8, 05, 28][66 C8, 05, 28]
+FC48; [66 C8, 05, 30][66 C8, 05, 30]
+FDB1; [66 C8, 05, 28][66 C8, 05, 28][66 EE, 05, 2C]
+FC49; [66 C8, 05, 30][66 EC, 05, 31]
+FC4A; [66 C8, 05, 30][66 EE, 05, 33]
+
+0765; [66 CA 02, 05, 05]
+
+0766; [66 CA 09, 05, 05]
+
+08A7; [66 CA 10, 05, 05]
+
+0646; [66 CC, 05, 05]
+1EE0D; [66 CC, 05, 10]
+1EE2D; [66 CC, 05, 10]
+1EE4D; [66 CC, 05, 10]
+1EE6D; [66 CC, 05, 10]
+1EE8D; [66 CC, 05, 10]
+1EEAD; [66 CC, 05, 10]
+FEE7; [66 CC, 05, 18]
+FEE8; [66 CC, 05, 20]
+FEE6; [66 CC, 05, 28]
+FEE5; [66 CC, 05, 30]
+FCD2; [66 CC, 05, 18][66 3A, 05, 18]
+FC4B; [66 CC, 05, 30][66 3A, 05, 30]
+FDB8; [66 CC, 05, 18][66 3A, 05, 18][66 48, 05, 18]
+FDBD; [66 CC, 05, 28][66 3A, 05, 28][66 48, 05, 28]
+FD98; [66 CC, 05, 18][66 3A, 05, 18][66 C8, 05, 18]
+FD97; [66 CC, 05, 28][66 3A, 05, 28][66 C8, 05, 28]
+FD99; [66 CC, 05, 28][66 3A, 05, 28][66 EC, 05, 26]
+FDC7; [66 CC, 05, 28][66 3A, 05, 28][66 EE, 05, 2C]
+FCD3; [66 CC, 05, 18][66 48, 05, 18]
+FC4C; [66 CC, 05, 30][66 48, 05, 30]
+FD95; [66 CC, 05, 18][66 48, 05, 18][66 C8, 05, 18]
+FD96; [66 CC, 05, 28][66 48, 05, 28][66 EC, 05, 26]
+FDB3; [66 CC, 05, 28][66 48, 05, 28][66 EE, 05, 2C]
+FCD4; [66 CC, 05, 18][66 4A, 05, 18]
+FC4D; [66 CC, 05, 30][66 4A, 05, 30]
+FC8A; [66 CC, 05, 28][66 6E, 05, 1E]
+FC8B; [66 CC, 05, 28][66 70, 05, 1E]
+FCD5; [66 CC, 05, 18][66 C8, 05, 18]
+FCEE; [66 CC, 05, 20][66 C8, 05, 20]
+FC8C; [66 CC, 05, 28][66 C8, 05, 28]
+FC4E; [66 CC, 05, 30][66 C8, 05, 30]
+FD9B; [66 CC, 05, 28][66 C8, 05, 28][66 EC, 05, 26]
+FD9A; [66 CC, 05, 28][66 C8, 05, 28][66 EE, 05, 2C]
+FC8D; [66 CC, 05, 28][66 CC, 05, 28]
+FCD6; [66 CC, 05, 18][66 D6, 05, 18]
+FCEF; [66 CC, 05, 20][66 D6, 05, 20]
+FC8E; [66 CC, 05, 28][66 EC, 05, 26]
+FC4F; [66 CC, 05, 30][66 EC, 05, 31]
+FC8F; [66 CC, 05, 28][66 EE, 05, 2C]
+FC50; [66 CC, 05, 30][66 EE, 05, 33]
+
+06BA; [66 CE, 05, 05]
+1EE1D; [66 CE, 05, 10]
+1EE5D; [66 CE, 05, 10]
+FB9F; [66 CE, 05, 1E]
+FB9E; [66 CE, 05, 2C]
+
+08BD; [66 D0 02, 05, 05]
+
+06BB; [66 D0 09, 05, 05]
+FBA2; [66 D0 09, 05, 10]
+FBA3; [66 D0 09, 05, 1B]
+FBA1; [66 D0 09, 05, 26]
+FBA0; [66 D0 09, 05, 31]
+
+06BC; [66 D2, 05, 05]
+
+06BD; [66 D4 02, 05, 05]
+
+06B9; [66 D4 09, 05, 05]
+
+0767; [66 D4 10, 05, 05]
+
+0768; [66 D4 17, 05, 05]
+
+0769; [66 D4 1E, 05, 05]
+
+0647; [66 D6, 05, 05]
+1EE24; [66 D6, 05, 10]
+1EE64; [66 D6, 05, 10]
+1EE84; [66 D6, 05, 10]
+FEEB; [66 D6, 05, 18]
+FEEC; [66 D6, 05, 20]
+FEEA; [66 D6, 05, 28]
+FEE9; [66 D6, 05, 30]
+FCD9; [66 D6, 05, 18][, EB 82, 10]
+FCD7; [66 D6, 05, 18][66 3A, 05, 18]
+FC51; [66 D6, 05, 30][66 3A, 05, 30]
+FCD8; [66 D6, 05, 18][66 C8, 05, 18]
+FC52; [66 D6, 05, 30][66 C8, 05, 30]
+FD93; [66 D6, 05, 18][66 C8, 05, 18][66 3A, 05, 18]
+FD94; [66 D6, 05, 18][66 C8, 05, 18][66 C8, 05, 18]
+FC53; [66 D6, 05, 30][66 EC, 05, 31]
+FC54; [66 D6, 05, 30][66 EE, 05, 33]
+
+06BE; [66 D8, 05, 05]
+FBAC; [66 D8, 05, 10]
+FBAD; [66 D8, 05, 1B]
+FBAB; [66 D8, 05, 26]
+FBAA; [66 D8, 05, 31]
+
+06C1; [66 DA, 05, 05]
+FBA8; [66 DA, 05, 10]
+FBA9; [66 DA, 05, 1B]
+FBA7; [66 DA, 05, 26]
+FBA6; [66 DA, 05, 31]
+06C2; [66 DA, 05, 05][, E8 B2, 05]
+
+06C3; [66 DC 02, 05, 05]
+
+06FF; [66 DC 09, 05, 05]
+
+06D5; [66 DC 10, 05, 05]
+06C0; [66 DC 10, 05, 05][, E8 B2, 05]
+FBA5; [66 DC 10, 05, 20][, E8 B2, 20]
+FBA4; [66 DC 10, 05, 2E][, E8 B2, 2E]
+
+0648; [66 DE, 05, 05]
+06E5; [66 DE, 05, 10]
+1EE05; [66 DE, 05, 1B]
+1EE85; [66 DE, 05, 1B]
+1EEA5; [66 DE, 05, 1B]
+FEEE; [66 DE, 05, 26]
+FEED; [66 DE, 05, 31]
+0676; [66 DE, 05, 10][66 06, 05, 20]
+FDF8; [66 DE, 05, 31][66 86, 05, 30][66 C4, 05, 30][66 C8, 05, 30]
+
+06C4; [66 E0, 05, 05]
+
+06C5; [66 E2 02, 05, 05]
+FBE1; [66 E2 02, 05, 20]
+FBE0; [66 E2 02, 05, 2E]
+
+06C6; [66 E2 09, 05, 05]
+FBDA; [66 E2 09, 05, 20]
+FBD9; [66 E2 09, 05, 2E]
+
+06C7; [66 E4, 05, 05]
+FBD8; [66 E4, 05, 1E]
+FBD7; [66 E4, 05, 2C]
+0677; [66 E4, 05, 10][66 06, 05, 20]
+FBDD; [66 E4, 05, 2C][66 06, 05, 2E]
+
+06C8; [66 E6, 05, 05]
+FBDC; [66 E6, 05, 20]
+FBDB; [66 E6, 05, 2E]
+
+06C9; [66 E8, 05, 05]
+FBE3; [66 E8, 05, 20]
+FBE2; [66 E8, 05, 2E]
+
+06CA; [66 EA 02, 05, 05]
+
+06CB; [66 EA 09, 05, 05]
+FBDF; [66 EA 09, 05, 20]
+FBDE; [66 EA 09, 05, 2E]
+
+08B1; [66 EA 10, 05, 05]
+
+06CF; [66 EA 17, 05, 05]
+
+0778; [66 EA 1E, 05, 05]
+
+0779; [66 EA 25, 05, 05]
+
+08AB; [66 EA 2C, 05, 05]
+
+0649; [66 EC, 05, 05]
+FBE8; [66 EC, 05, 10]
+FBE9; [66 EC, 05, 1B]
+FEF0; [66 EC, 05, 26]
+FEEF; [66 EC, 05, 31]
+FC90; [66 EC, 05, 26][, EB 82, 1E]
+FC5D; [66 EC, 05, 31][, EB 82, 2C]
+
+064A; [66 EE, 05, 05]
+06E6; [66 EE, 05, 10]
+1EE09; [66 EE, 05, 17]
+1EE29; [66 EE, 05, 17]
+1EE49; [66 EE, 05, 17]
+1EE69; [66 EE, 05, 17]
+1EE89; [66 EE, 05, 17]
+1EEA9; [66 EE, 05, 17]
+FEF3; [66 EE, 05, 1E]
+FEF4; [66 EE, 05, 25]
+FEF2; [66 EE, 05, 2C]
+FEF1; [66 EE, 05, 33]
+0678; [66 EE, 05, 10][66 06, 05, 20]
+FCDA; [66 EE, 05, 1E][66 3A, 05, 18]
+FC55; [66 EE, 05, 33][66 3A, 05, 30]
+FDAF; [66 EE, 05, 2C][66 3A, 05, 28][66 EE, 05, 2C]
+FCDB; [66 EE, 05, 1E][66 48, 05, 18]
+FC56; [66 EE, 05, 33][66 48, 05, 30]
+FDAE; [66 EE, 05, 2C][66 48, 05, 28][66 EE, 05, 2C]
+FCDC; [66 EE, 05, 1E][66 4A, 05, 18]
+FC57; [66 EE, 05, 33][66 4A, 05, 30]
+FC91; [66 EE, 05, 2C][66 6E, 05, 1E]
+FC92; [66 EE, 05, 2C][66 70, 05, 1E]
+FCDD; [66 EE, 05, 1E][66 C8, 05, 18]
+FCF0; [66 EE, 05, 25][66 C8, 05, 20]
+FC93; [66 EE, 05, 2C][66 C8, 05, 28]
+FC58; [66 EE, 05, 33][66 C8, 05, 30]
+FD9D; [66 EE, 05, 1E][66 C8, 05, 18][66 C8, 05, 18]
+FD9C; [66 EE, 05, 2C][66 C8, 05, 28][66 C8, 05, 28]
+FDB0; [66 EE, 05, 2C][66 C8, 05, 28][66 EE, 05, 2C]
+FC94; [66 EE, 05, 2C][66 CC, 05, 28]
+FCDE; [66 EE, 05, 1E][66 D6, 05, 18]
+FCF1; [66 EE, 05, 25][66 D6, 05, 20]
+FC95; [66 EE, 05, 2C][66 EC, 05, 26]
+FC59; [66 EE, 05, 33][66 EC, 05, 31]
+FC96; [66 EE, 05, 2C][66 EE, 05, 2C]
+FC5A; [66 EE, 05, 33][66 EE, 05, 33]
-FDD1 1036B; [61 64 02, 05, 05] # Old_Permic first primary (compressible)
+06CC; [66 F0, 05, 05]
+FBFE; [66 F0, 05, 10]
+FBFF; [66 F0, 05, 1B]
+FBFD; [66 F0, 05, 26]
+FBFC; [66 F0, 05, 31]
-10350; [61 66, 05, 05]
-10376; [61 66, 05, 20]
+06CD; [66 F2, 05, 05]
-10351; [61 68 02, 05, 05]
+06CE; [66 F4, 05, 05]
-10352; [61 68 09, 05, 05]
+06D0; [66 F6, 05, 05]
+FBE6; [66 F6, 05, 10]
+FBE7; [66 F6, 05, 1B]
+FBE5; [66 F6, 05, 26]
+FBE4; [66 F6, 05, 31]
-10353; [61 6A, 05, 05]
-10377; [61 6A, 05, 20]
+06D1; [66 F8 02, 05, 05]
-10354; [61 6C 02, 05, 05]
+063D; [66 F8 09, 05, 05]
-10355; [61 6C 09, 05, 05]
+063E; [66 F8 10, 05, 05]
-10356; [61 6C 10, 05, 05]
+063F; [66 F8 17, 05, 05]
-10357; [61 6E, 05, 05]
-10378; [61 6E, 05, 20]
+0620; [66 F8 1E, 05, 05]
-10358; [61 70 02, 05, 05]
+0775; [66 F8 25, 05, 05]
-10359; [61 70 09, 05, 05]
+0776; [66 F8 2C, 05, 05]
-1035A; [61 70 10, 05, 05]
+0777; [66 F8 33, 05, 05]
-1035B; [61 70 17, 05, 05]
+08BA; [66 F8 3A, 05, 05]
-1035C; [61 70 1E, 05, 05]
+06D2; [66 FA, 05, 05]
+FBAF; [66 FA, 05, 20]
+FBAE; [66 FA, 05, 2E]
+06D3; [66 FA, 05, 05][, E8 B2, 05]
+FBB1; [66 FA, 05, 20][, E8 B2, 20]
+FBB0; [66 FA, 05, 2E][, E8 B2, 2E]
-1035D; [61 72, 05, 05]
-10379; [61 72, 05, 20]
+077A; [66 FC 02, 05, 05]
-1035E; [61 74 02, 05, 05]
+077B; [66 FC 09, 05, 05]
-1035F; [61 74 09, 05, 05]
+FDD1 0710; [67 04 02, 05, 05] # SYRIAC first primary starts new lead byte (compressible)
-10360; [61 74 10, 05, 05]
+0710; [67 04 09, 05, 05]
-10361; [61 76, 05, 05]
-1037A; [61 76, 05, 20]
+0712; [67 06, 05, 05]
+072D; [67 06, 70, 05]
-10362; [61 78 02, 05, 05]
+0713; [67 08, 05, 05]
+0714; [67 08, 70, 05]
+072E; [67 08, 78, 05]
-10363; [61 78 09, 05, 05]
+0716; [67 0A, 05, 05]
-10364; [61 78 10, 05, 05]
+0715; [67 0C, 05, 05]
+072F; [67 0C, 70, 05]
-10365; [61 78 17, 05, 05]
+0717; [67 0E 02, 05, 05]
-10366; [61 78 1E, 05, 05]
+0718; [67 0E 09, 05, 05]
-10367; [61 78 25, 05, 05]
+0719; [67 0E 10, 05, 05]
-10368; [61 78 2C, 05, 05]
+074D; [67 0E 17, 05, 05]
-10369; [61 78 33, 05, 05]
+071A; [67 0E 1E, 05, 05]
-1036A; [61 78 3A, 05, 05]
+071B; [67 10, 05, 05]
+071C; [67 10, 70, 05]
-1036B; [61 78 41, 05, 05]
+071D; [67 12 02, 05, 05]
-1036C; [61 78 48, 05, 05]
+071E; [67 12 09, 05, 05]
-1036D; [61 78 4F, 05, 05]
+071F; [67 12 10, 05, 05]
-1036E; [61 78 56, 05, 05]
+074E; [67 12 17, 05, 05]
-1036F; [61 78 5D, 05, 05]
+0720; [67 12 1E, 05, 05]
-10370; [61 78 64, 05, 05]
+0721; [67 12 25, 05, 05]
-10371; [61 78 6B, 05, 05]
+0722; [67 12 2C, 05, 05]
-10372; [61 78 72, 05, 05]
+0723; [67 14, 05, 05]
+0724; [67 14, 05, 20]
-10373; [61 78 79, 05, 05]
+0725; [67 16, 05, 05]
-10374; [61 78 80, 05, 05]
+0726; [67 18, 05, 05]
+0727; [67 18, 70, 05]
-10375; [61 78 87, 05, 05]
+074F; [67 1A 02, 05, 05]
-FDD1 10D3; [62 04 02, 05, 05] # GEORGIAN first primary starts new lead byte (compressible)
+0728; [67 1A 09, 05, 05]
-10D0; [62 06, 05, 05]
+0729; [67 1A 10, 05, 05]
-2D00; [62 08, 05, 05]
-10A0; [62 08, 05, A0]
+072A; [67 1A 17, 05, 05]
-10D1; [62 0A, 05, 05]
+072B; [67 1A 1E, 05, 05]
-2D01; [62 0C, 05, 05]
-10A1; [62 0C, 05, A0]
+072C; [67 1A 25, 05, 05]
-10D2; [62 0E, 05, 05]
+0860; [67 1A 2C, 05, 05]
-2D02; [62 10, 05, 05]
-10A2; [62 10, 05, A0]
+0861; [67 1A 33, 05, 05]
-10D3; [62 12, 05, 05]
+0862; [67 1A 3A, 05, 05]
-2D03; [62 14, 05, 05]
-10A3; [62 14, 05, A0]
+0863; [67 1A 41, 05, 05]
-10D4; [62 16, 05, 05]
+0864; [67 1A 48, 05, 05]
-2D04; [62 18, 05, 05]
-10A4; [62 18, 05, A0]
+0865; [67 1A 4F, 05, 05]
-10D5; [62 1A, 05, 05]
+0866; [67 1A 56, 05, 05]
-2D05; [62 1C, 05, 05]
-10A5; [62 1C, 05, A0]
+0867; [67 1A 5D, 05, 05]
-10D6; [62 1E, 05, 05]
+0868; [67 1A 64, 05, 05]
-2D06; [62 20, 05, 05]
-10A6; [62 20, 05, A0]
+0869; [67 1A 6B, 05, 05]
-10F1; [62 22, 05, 05]
+086A; [67 1A 72, 05, 05]
-2D21; [62 24, 05, 05]
-10C1; [62 24, 05, A0]
+FDD1 0840; [67 1B 02, 05, 05] # Mandaic first primary (compressible)
-10D7; [62 26, 05, 05]
+0840; [67 1B 09, 05, 05]
-2D07; [62 28, 05, 05]
-10A7; [62 28, 05, A0]
+0841; [67 1B 10, 05, 05]
-10D8; [62 2A, 05, 05]
+0842; [67 1B 17, 05, 05]
-2D08; [62 2C, 05, 05]
-10A8; [62 2C, 05, A0]
+0843; [67 1B 1E, 05, 05]
-10D9; [62 2E, 05, 05]
+0844; [67 1B 25, 05, 05]
-2D09; [62 30, 05, 05]
-10A9; [62 30, 05, A0]
+0845; [67 1B 2C, 05, 05]
-10DA; [62 32, 05, 05]
+0846; [67 1B 33, 05, 05]
-2D0A; [62 34, 05, 05]
-10AA; [62 34, 05, A0]
+0847; [67 1B 3A, 05, 05]
-10DB; [62 36, 05, 05]
+0848; [67 1B 41, 05, 05]
-2D0B; [62 38, 05, 05]
-10AB; [62 38, 05, A0]
+0849; [67 1B 48, 05, 05]
-10DC; [62 3A, 05, 05]
-10FC; [62 3A, 05, 20]
+084A; [67 1B 4F, 05, 05]
-2D0C; [62 3C, 05, 05]
-10AC; [62 3C, 05, A0]
+084B; [67 1B 56, 05, 05]
-10F2; [62 3E, 05, 05]
+084C; [67 1B 5D, 05, 05]
-2D22; [62 40, 05, 05]
-10C2; [62 40, 05, A0]
+084D; [67 1B 64, 05, 05]
-10DD; [62 42, 05, 05]
+084E; [67 1B 6B, 05, 05]
-2D0D; [62 44, 05, 05]
-10AD; [62 44, 05, A0]
+084F; [67 1B 72, 05, 05]
-10DE; [62 46, 05, 05]
+0850; [67 1B 79, 05, 05]
-2D0E; [62 48, 05, 05]
-10AE; [62 48, 05, A0]
+0851; [67 1B 80, 05, 05]
-10DF; [62 4A, 05, 05]
+0852; [67 1B 87, 05, 05]
-2D0F; [62 4C, 05, 05]
-10AF; [62 4C, 05, A0]
+0853; [67 1B 8E, 05, 05]
-10E0; [62 4E, 05, 05]
+0854; [67 1B 95, 05, 05]
-2D10; [62 50, 05, 05]
-10B0; [62 50, 05, A0]
+0855; [67 1B 9C, 05, 05]
-10E1; [62 52, 05, 05]
+0856; [67 1B A3, 05, 05]
-2D11; [62 54, 05, 05]
-10B1; [62 54, 05, A0]
+0857; [67 1B AA, 05, 05]
-10E2; [62 56, 05, 05]
+0858; [67 1B B1, 05, 05]
-2D12; [62 58, 05, 05]
-10B2; [62 58, 05, A0]
+FDD1 078C; [67 1C 02, 05, 05] # THAANA first primary (compressible)
-10F3; [62 5A, 05, 05]
+0780; [67 1E, 05, 05]
-2D23; [62 5C, 05, 05]
-10C3; [62 5C, 05, A0]
+0799; [67 20, 05, 05]
-10E3; [62 5E, 05, 05]
+079A; [67 22, 05, 05]
-2D13; [62 60, 05, 05]
-10B3; [62 60, 05, A0]
+0781; [67 24, 05, 05]
-10E4; [62 62, 05, 05]
+0782; [67 26, 05, 05]
-2D14; [62 64, 05, 05]
-10B4; [62 64, 05, A0]
+0783; [67 28, 05, 05]
-10E5; [62 66, 05, 05]
+079C; [67 2A, 05, 05]
-2D15; [62 68, 05, 05]
-10B5; [62 68, 05, A0]
+0784; [67 2C, 05, 05]
-10E6; [62 6A, 05, 05]
+0785; [67 2E, 05, 05]
-2D16; [62 6C, 05, 05]
-10B6; [62 6C, 05, A0]
+0786; [67 30, 05, 05]
-10E7; [62 6E, 05, 05]
+0787; [67 32, 05, 05]
-2D17; [62 70, 05, 05]
-10B7; [62 70, 05, A0]
+07A2; [67 34, 05, 05]
-10E8; [62 72, 05, 05]
+07A3; [67 36, 05, 05]
-2D18; [62 74, 05, 05]
-10B8; [62 74, 05, A0]
+0788; [67 38, 05, 05]
-10E9; [62 76, 05, 05]
+07A5; [67 3A, 05, 05]
-2D19; [62 78, 05, 05]
-10B9; [62 78, 05, A0]
+0789; [67 3C, 05, 05]
-10EA; [62 7A, 05, 05]
+078A; [67 3E, 05, 05]
-2D1A; [62 7C, 05, 05]
-10BA; [62 7C, 05, A0]
+078B; [67 40, 05, 05]
-10EB; [62 7E, 05, 05]
+079B; [67 42, 05, 05]
-2D1B; [62 80, 05, 05]
-10BB; [62 80, 05, A0]
+078C; [67 44, 05, 05]
-10EC; [62 82, 05, 05]
+0798; [67 46, 05, 05]
-2D1C; [62 84, 05, 05]
-10BC; [62 84, 05, A0]
+07A0; [67 48, 05, 05]
-10ED; [62 86, 05, 05]
+07A1; [67 4A, 05, 05]
-2D1D; [62 88, 05, 05]
-10BD; [62 88, 05, A0]
+078D; [67 4C, 05, 05]
-10EE; [62 8A, 05, 05]
+078E; [67 4E, 05, 05]
-2D1E; [62 8C, 05, 05]
-10BE; [62 8C, 05, A0]
+07A4; [67 50, 05, 05]
-10F4; [62 8E, 05, 05]
+078F; [67 52, 05, 05]
-2D24; [62 90, 05, 05]
-10C4; [62 90, 05, A0]
+0790; [67 54, 05, 05]
-10EF; [62 92, 05, 05]
+079D; [67 56, 05, 05]
-2D1F; [62 94, 05, 05]
-10BF; [62 94, 05, A0]
+079E; [67 58, 05, 05]
-10F0; [62 96, 05, 05]
+079F; [67 5A, 05, 05]
-2D20; [62 98, 05, 05]
-10C0; [62 98, 05, A0]
+0791; [67 5C, 05, 05]
-10F5; [62 9A, 05, 05]
+0792; [67 5E, 05, 05]
-2D25; [62 9C, 05, 05]
-10C5; [62 9C, 05, A0]
+0793; [67 60, 05, 05]
-10F6; [62 9E, 05, 05]
+0794; [67 62, 05, 05]
-10F7; [62 A0, 05, 05]
+0795; [67 64, 05, 05]
-2D27; [62 A2, 05, 05]
-10C7; [62 A2, 05, A0]
+0796; [67 66, 05, 05]
-10F8; [62 A4, 05, 05]
+0797; [67 68, 05, 05]
-10F9; [62 A6, 05, 05]
+07B1; [67 6A, 05, 05]
-10FA; [62 A8, 05, 05]
+07A6; [67 6C, 05, 05]
-10FD; [62 AA, 05, 05]
+07A7; [67 6E, 05, 05]
-2D2D; [62 AC, 05, 05]
-10CD; [62 AC, 05, A0]
+07A8; [67 70, 05, 05]
-10FE; [62 AE, 05, 05]
+07A9; [67 72, 05, 05]
-10FF; [62 B0, 05, 05]
+07AA; [67 74, 05, 05]
-FDD1 0531; [63 04 02, 05, 05] # ARMENIAN first primary starts new lead byte (compressible)
+07AB; [67 76, 05, 05]
-0561; [63 06, 05, 05]
-0531; [63 06, 05, A0]
+07AC; [67 78, 05, 05]
-0562; [63 08, 05, 05]
-0532; [63 08, 05, A0]
+07AD; [67 7A, 05, 05]
-0563; [63 0A, 05, 05]
-0533; [63 0A, 05, A0]
+07AE; [67 7C, 05, 05]
-0564; [63 0C, 05, 05]
-0534; [63 0C, 05, A0]
+07AF; [67 7E, 05, 05]
-0565; [63 0E, 05, 05]
-0535; [63 0E, 05, AE]
-0587; [63 0E, 05, 20][63 48, 05, 20]
+07B0; [67 80, 05, 05]
-0566; [63 10, 05, 05]
-0536; [63 10, 05, A0]
+FDD1 07CA; [67 82 02, 05, 05] # Nko first primary (compressible)
-0567; [63 12, 05, 05]
-0537; [63 12, 05, A0]
+07CA; [67 82 09, 05, 05]
-0568; [63 14, 05, 05]
-0538; [63 14, 05, A0]
+07CB; [67 82 10, 05, 05]
-0569; [63 16, 05, 05]
-0539; [63 16, 05, A0]
+07CC; [67 82 17, 05, 05]
-056A; [63 18, 05, 05]
-053A; [63 18, 05, A0]
+07CD; [67 82 1E, 05, 05]
-056B; [63 1A, 05, 05]
-053B; [63 1A, 05, AE]
+07CE; [67 82 25, 05, 05]
-056C; [63 1C, 05, 05]
-053C; [63 1C, 05, A0]
+07CF; [67 82 2C, 05, 05]
-056D; [63 1E, 05, 05]
-053D; [63 1E, 05, AE]
+07D0; [67 82 33, 05, 05]
-056E; [63 20, 05, 05]
-053E; [63 20, 05, A0]
+07D1; [67 82 3A, 05, 05]
-056F; [63 22, 05, 05]
-053F; [63 22, 05, A0]
+07D2; [67 82 41, 05, 05]
-0570; [63 24, 05, 05]
-0540; [63 24, 05, A0]
+07D3; [67 82 48, 05, 05]
-0571; [63 26, 05, 05]
-0541; [63 26, 05, A0]
+07D4; [67 82 4F, 05, 05]
-0572; [63 28, 05, 05]
-0542; [63 28, 05, A0]
+07D5; [67 82 56, 05, 05]
-0573; [63 2A, 05, 05]
-0543; [63 2A, 05, A0]
+07D6; [67 84, 05, 05]
+07E8; [67 84, 70, 05]
-0574; [63 2C, 05, 05]
-0544; [63 2C, 05, AE]
-FB14; [63 2C, 05, 20][63 0E, 05, 20]
-FB15; [63 2C, 05, 20][63 1A, 05, 20]
-FB17; [63 2C, 05, 20][63 1E, 05, 20]
-FB13; [63 2C, 05, 20][63 30, 05, 20]
+07D7; [67 86, 05, 05]
+07E9; [67 86, 70, 05]
-0575; [63 2E, 05, 05]
-0545; [63 2E, 05, A0]
+07D8; [67 88, 05, 05]
-0576; [63 30, 05, 05]
-0546; [63 30, 05, AE]
+07D9; [67 8A, 05, 05]
+07EA; [67 8A, 70, 05]
-0577; [63 32, 05, 05]
-0547; [63 32, 05, A0]
+07DA; [67 8C 02, 05, 05]
-0578; [63 34, 05, 05]
-0548; [63 34, 05, A0]
+07DB; [67 8C 09, 05, 05]
-0579; [63 36, 05, 05]
-0549; [63 36, 05, A0]
+07DC; [67 8C 10, 05, 05]
-057A; [63 38, 05, 05]
-054A; [63 38, 05, A0]
+07DD; [67 8C 17, 05, 05]
-057B; [63 3A, 05, 05]
-054B; [63 3A, 05, A0]
+07DE; [67 8C 1E, 05, 05]
-057C; [63 3C, 05, 05]
-054C; [63 3C, 05, A0]
+07DF; [67 8C 25, 05, 05]
-057D; [63 3E, 05, 05]
-054D; [63 3E, 05, A0]
+07E0; [67 8C 2C, 05, 05]
-057E; [63 40, 05, 05]
-054E; [63 40, 05, AE]
-FB16; [63 40, 05, 20][63 30, 05, 20]
+07E1; [67 8C 33, 05, 05]
-057F; [63 42, 05, 05]
-054F; [63 42, 05, A0]
+07E2; [67 8C 3A, 05, 05]
-0580; [63 44, 05, 05]
-0550; [63 44, 05, A0]
+07E3; [67 8C 41, 05, 05]
-0581; [63 46, 05, 05]
-0551; [63 46, 05, A0]
+07E4; [67 8C 48, 05, 05]
-0582; [63 48, 05, 05]
-0552; [63 48, 05, AE]
+07E5; [67 8C 4F, 05, 05]
-0583; [63 4A, 05, 05]
-0553; [63 4A, 05, A0]
+07E6; [67 8C 56, 05, 05]
-0584; [63 4C, 05, 05]
-0554; [63 4C, 05, A0]
+07E7; [67 8C 5D, 05, 05]
-0585; [63 4E, 05, 05]
-0555; [63 4E, 05, A0]
+07F4; [67 8C 64, 05, 05]
-0586; [63 50, 05, 05]
-0556; [63 50, 05, A0]
+07F5; [67 8C 6B, 05, 05]
-0559; [63 52, 05, 05]
+FDD1 2D30; [67 8D 02, 05, 05] # TIFINAGH first primary (compressible)
-FDD1 05D0; [64 04 02, 05, 05] # HEBREW first primary starts new lead byte (compressible)
+2D30; [67 8D 09, 05, 05]
-05D0; [64 06, 05, 05]
-2135; [64 06, 05, 20]
-FB21; [64 06, 05, 2E]
-FB2E; [64 06, 05, 05][, E3 14, 05]
-FB2F; [64 06, 05, 05][, E3 36, 05]
-FB30; [64 06, 05, 05][, E3 E0, 05]
-FB4F; [64 06, 05, 20][64 1C, 05, 20]
+2D31; [67 8D 10, 05, 05]
-05D1; [64 08, 05, 05]
-2136; [64 08, 05, 20]
-FB31; [64 08, 05, 05][, E3 E0, 05]
-FB4C; [64 08, 05, 05][, E4 04, 05]
+2D32; [67 8D 17, 05, 05]
-05D2; [64 0A, 05, 05]
-2137; [64 0A, 05, 20]
-FB32; [64 0A, 05, 05][, E3 E0, 05]
+2D33; [67 8D 1E, 05, 05]
-05D3; [64 0C, 05, 05]
-2138; [64 0C, 05, 20]
-FB22; [64 0C, 05, 2E]
-FB33; [64 0C, 05, 05][, E3 E0, 05]
+2D34; [67 8D 25, 05, 05]
-05D4; [64 0E, 05, 05]
-FB23; [64 0E, 05, 20]
-FB34; [64 0E, 05, 05][, E3 E0, 05]
+2D35; [67 8D 2C, 05, 05]
-05D5; [64 10, 05, 05]
-FB4B; [64 10, 05, 05][, E3 58, 05]
-FB35; [64 10, 05, 05][, E3 E0, 05]
-05F0; [64 10, 05, 20][64 10, 05, 20]
-05F1; [64 10, 05, 20][64 18, 05, 20]
+2D36; [67 8D 33, 05, 05]
-05D6; [64 12, 05, 05]
-FB36; [64 12, 05, 05][, E3 E0, 05]
+2D37; [67 8D 3A, 05, 05]
-05D7; [64 14, 05, 05]
+2D38; [67 8D 41, 05, 05]
-05D8; [64 16, 05, 05]
-FB38; [64 16, 05, 05][, E3 E0, 05]
+2D39; [67 8D 48, 05, 05]
-05D9; [64 18, 05, 05]
-FB1D; [64 18, 05, 05][, E2 AC, 05]
-FB39; [64 18, 05, 05][, E3 E0, 05]
-05F2; [64 18, 05, 20][64 18, 05, 20]
-FB1F; [64 18, 05, 20][64 18, 05, 20][, E3 14, 05]
+2D3A; [67 8D 4F, 05, 05]
-05DB; [64 1A, 05, 05]
-FB24; [64 1A, 05, 20]
-05DA; [64 1A, 05, 2E]
-FB3B; [64 1A, 05, 05][, E3 E0, 05]
-FB3A; [64 1A, 05, 2E][, E3 E0, 05]
-FB4D; [64 1A, 05, 05][, E4 04, 05]
+2D3B; [67 8D 56, 05, 05]
-05DC; [64 1C, 05, 05]
-FB25; [64 1C, 05, 2E]
-FB3C; [64 1C, 05, 05][, E3 E0, 05]
+2D66; [67 8D 5D, 05, 05]
-05DE; [64 1E, 05, 05]
-FB26; [64 1E, 05, 20]
-05DD; [64 1E, 05, 2E]
-FB3E; [64 1E, 05, 05][, E3 E0, 05]
+2D3C; [67 8D 64, 05, 05]
-05E0; [64 20, 05, 05]
-05DF; [64 20, 05, 20]
-FB40; [64 20, 05, 05][, E3 E0, 05]
+2D3D; [67 8D 6B, 05, 05]
-05E1; [64 22, 05, 05]
-FB41; [64 22, 05, 05][, E3 E0, 05]
+2D3E; [67 8D 72, 05, 05]
-05E2; [64 24, 05, 05]
-FB20; [64 24, 05, 20]
+2D3F; [67 8D 79, 05, 05]
-05E4; [64 26, 05, 05]
-05E3; [64 26, 05, 20]
-FB44; [64 26, 05, 05][, E3 E0, 05]
-FB43; [64 26, 05, 20][, E3 E0, 05]
-FB4E; [64 26, 05, 05][, E4 04, 05]
+2D40; [67 8D 80, 05, 05]
-05E6; [64 28, 05, 05]
-05E5; [64 28, 05, 20]
-FB46; [64 28, 05, 05][, E3 E0, 05]
+2D41; [67 8D 87, 05, 05]
-05E7; [64 2A, 05, 05]
-FB47; [64 2A, 05, 05][, E3 E0, 05]
+2D42; [67 8D 8E, 05, 05]
-05E8; [64 2C, 05, 05]
-FB27; [64 2C, 05, 20]
-FB48; [64 2C, 05, 05][, E3 E0, 05]
+2D43; [67 8D 95, 05, 05]
-05E9; [64 2E, 05, 05]
-FB2B; [64 2E, 05, 05][, E3 9C, 05]
-FB2A; [64 2E, 05, 05][, E3 BE, 05]
-FB49; [64 2E, 05, 05][, E3 E0, 05]
-FB2D; [64 2E, 05, 05][, E3 E0, 05][, E3 9C, 05]
-FB2C; [64 2E, 05, 05][, E3 E0, 05][, E3 BE, 05]
+2D44; [67 8D 9C, 05, 05]
-05EA; [64 30, 05, 05]
-FB28; [64 30, 05, 20]
-FB4A; [64 30, 05, 05][, E3 E0, 05]
+2D45; [67 8D A3, 05, 05]
-FDD1 10900; [64 32 02, 05, 05] # Phoenician first primary (compressible)
+2D46; [67 8D AA, 05, 05]
-10900; [64 32 09, 05, 05]
+2D47; [67 8D B1, 05, 05]
-10901; [64 32 10, 05, 05]
+2D48; [67 8D B8, 05, 05]
-10902; [64 32 17, 05, 05]
+2D49; [67 8D BF, 05, 05]
-10903; [64 32 1E, 05, 05]
+2D4A; [67 8D C6, 05, 05]
-10904; [64 32 25, 05, 05]
+2D4B; [67 8D CD, 05, 05]
-10905; [64 32 2C, 05, 05]
+2D4C; [67 8D D4, 05, 05]
-10906; [64 32 33, 05, 05]
+2D4D; [67 8D DB, 05, 05]
-10907; [64 32 3A, 05, 05]
+2D4E; [67 8D E2, 05, 05]
-10908; [64 32 41, 05, 05]
+2D4F; [67 8D E9, 05, 05]
-10909; [64 32 48, 05, 05]
+2D50; [67 8D F0, 05, 05]
-1090A; [64 32 4F, 05, 05]
+2D51; [67 8D F7, 05, 05]
-1090B; [64 32 56, 05, 05]
+2D52; [67 8D FE, 05, 05]
-1090C; [64 32 5D, 05, 05]
+2D53; [67 8E 07, 05, 05]
-1090D; [64 32 64, 05, 05]
+2D67; [67 8E 0E, 05, 05]
-1090E; [64 32 6B, 05, 05]
+2D54; [67 8E 15, 05, 05]
-1090F; [64 32 72, 05, 05]
+2D55; [67 8E 1C, 05, 05]
-10910; [64 32 79, 05, 05]
+2D56; [67 8E 23, 05, 05]
-10911; [64 32 80, 05, 05]
+2D57; [67 8E 2A, 05, 05]
-10912; [64 32 87, 05, 05]
+2D58; [67 8E 31, 05, 05]
-10913; [64 32 8E, 05, 05]
+2D59; [67 8E 38, 05, 05]
-10914; [64 32 95, 05, 05]
+2D5A; [67 8E 3F, 05, 05]
-10915; [64 32 9C, 05, 05]
+2D5B; [67 8E 46, 05, 05]
-FDD1 0800; [64 33 02, 05, 05] # Samaritan first primary (compressible)
+2D5C; [67 8E 4D, 05, 05]
-0800; [64 33 09, 05, 05]
+2D5D; [67 8E 54, 05, 05]
-0801; [64 33 10, 05, 05]
+2D5E; [67 8E 5B, 05, 05]
-0802; [64 33 17, 05, 05]
+2D5F; [67 8E 62, 05, 05]
-0803; [64 33 1E, 05, 05]
+2D60; [67 8E 69, 05, 05]
-0804; [64 33 25, 05, 05]
+2D61; [67 8E 70, 05, 05]
-0805; [64 33 2C, 05, 05]
+2D62; [67 8E 77, 05, 05]
-0806; [64 33 33, 05, 05]
+2D63; [67 8E 7E, 05, 05]
-0807; [64 33 3A, 05, 05]
+2D64; [67 8E 85, 05, 05]
-0808; [64 33 41, 05, 05]
+2D65; [67 8E 8C, 05, 05]
-0809; [64 33 48, 05, 05]
+2D6F; [67 8E 93, 05, 05]
-080A; [64 33 4F, 05, 05]
+FDD1 12A0; [67 8F 02, 05, 05] # ETHIOPIC first primary (compressible)
-080B; [64 33 56, 05, 05]
+1200; [67 8F 09, 05, 05]
-080C; [64 33 5D, 05, 05]
+1201; [67 8F 10, 05, 05]
-080D; [64 33 64, 05, 05]
+1202; [67 8F 17, 05, 05]
-080E; [64 33 6B, 05, 05]
+1203; [67 8F 1E, 05, 05]
-080F; [64 33 72, 05, 05]
+1204; [67 8F 25, 05, 05]
-0810; [64 33 79, 05, 05]
+1205; [67 8F 2C, 05, 05]
-0811; [64 33 80, 05, 05]
+1206; [67 8F 33, 05, 05]
-0812; [64 33 87, 05, 05]
+1207; [67 8F 3A, 05, 05]
-0813; [64 33 8E, 05, 05]
+1208; [67 8F 41, 05, 05]
-0814; [64 33 95, 05, 05]
+1209; [67 8F 48, 05, 05]
-0815; [64 33 9C, 05, 05]
+120A; [67 8F 4F, 05, 05]
-0816; [64 33 A3, 05, 05]
+120B; [67 8F 56, 05, 05]
-0817; [64 33 AA, 05, 05]
+120C; [67 8F 5D, 05, 05]
-081A; [64 33 B1, 05, 05]
+120D; [67 8F 64, 05, 05]
-081B; [64 33 B8, 05, 05]
+120E; [67 8F 6B, 05, 05]
-FDD1 0628; [65 04 02, 05, 05] # ARABIC first primary starts new lead byte (compressible)
+120F; [67 8F 72, 05, 05]
-0621; [65 06, 05, 05]
-0674; [65 06, 05, 20]
-FE80; [65 06, 05, 2E]
-06FD; [65 06, 70, 05]
+2D80; [67 8F 79, 05, 05]
-0622; [65 08, 05, 05]
-0627 0653; [65 08, 05, 05]
-FE82; [65 08, 05, 20]
-FE81; [65 08, 05, 2E]
+1210; [67 8F 80, 05, 05]
-0623; [65 0A, 05, 05]
-0627 0654; [65 0A, 05, 05]
-FE84; [65 0A, 05, 20]
-FE83; [65 0A, 05, 2E]
+1211; [67 8F 87, 05, 05]
-0672; [65 0C, 05, 05]
+1212; [67 8F 8E, 05, 05]
-0671; [65 0E, 05, 05]
-FB51; [65 0E, 05, 20]
-FB50; [65 0E, 05, 2E]
+1213; [67 8F 95, 05, 05]
-0624; [65 10, 05, 05]
-0648 0654; [65 10, 05, 05]
-FE86; [65 10, 05, 20]
-FE85; [65 10, 05, 2E]
+1214; [67 8F 9C, 05, 05]
-0625; [65 12, 05, 05]
-0627 0655; [65 12, 05, 05]
-FE88; [65 12, 05, 20]
-FE87; [65 12, 05, 2E]
+1215; [67 8F A3, 05, 05]
-0673; [65 14 02, 05, 05]
+1216; [67 8F AA, 05, 05]
-0773; [65 14 09, 05, 05]
+1217; [67 8F B1, 05, 05]
-0774; [65 14 10, 05, 05]
-
-0626; [65 16, 05, 05]
-064A 0654; [65 16, 05, 05]
-FE8B; [65 16, 05, 10]
-FE8C; [65 16, 05, 1B]
-FE8A; [65 16, 05, 26]
-FE89; [65 16, 05, 31]
-FBEB; [65 16, 05, 26][65 1A, 05, 26]
-FBEA; [65 16, 05, 31][65 1A, 05, 31]
-FC97; [65 16, 05, 10][65 3A, 05, 18]
-FC00; [65 16, 05, 31][65 3A, 05, 30]
-FC98; [65 16, 05, 10][65 48, 05, 18]
-FC01; [65 16, 05, 31][65 48, 05, 30]
-FC99; [65 16, 05, 10][65 4A, 05, 18]
-FC64; [65 16, 05, 26][65 6E, 05, 1E]
-FC65; [65 16, 05, 26][65 70, 05, 1E]
-FC9A; [65 16, 05, 10][65 C8, 05, 18]
-FCDF; [65 16, 05, 1B][65 C8, 05, 20]
-FC66; [65 16, 05, 26][65 C8, 05, 28]
-FC02; [65 16, 05, 31][65 C8, 05, 30]
-FC67; [65 16, 05, 26][65 CC, 05, 28]
-FC9B; [65 16, 05, 10][65 D6, 05, 18]
-FCE0; [65 16, 05, 1B][65 D6, 05, 20]
-FBED; [65 16, 05, 26][65 DC 10, 05, 20]
-FBEC; [65 16, 05, 31][65 DC 10, 05, 2E]
-FBEF; [65 16, 05, 26][65 DE, 05, 26]
-FBEE; [65 16, 05, 31][65 DE, 05, 31]
-FBF3; [65 16, 05, 26][65 E2 09, 05, 20]
-FBF2; [65 16, 05, 31][65 E2 09, 05, 2E]
-FBF1; [65 16, 05, 26][65 E4, 05, 1E]
-FBF0; [65 16, 05, 31][65 E4, 05, 2C]
-FBF5; [65 16, 05, 26][65 E6, 05, 20]
-FBF4; [65 16, 05, 31][65 E6, 05, 2E]
-FBFB; [65 16, 05, 10][65 EC, 05, 10]
-FBFA; [65 16, 05, 26][65 EC, 05, 26]
-FC68; [65 16, 05, 26][65 EC, 05, 26]
-FBF9; [65 16, 05, 31][65 EC, 05, 31]
-FC03; [65 16, 05, 31][65 EC, 05, 31]
-FC69; [65 16, 05, 26][65 EE, 05, 2C]
-FC04; [65 16, 05, 31][65 EE, 05, 33]
-FBF8; [65 16, 05, 10][65 F6, 05, 10]
-FBF7; [65 16, 05, 26][65 F6, 05, 26]
-FBF6; [65 16, 05, 31][65 F6, 05, 31]
-
-08A8; [65 18 02, 05, 05]
-
-08A9; [65 18 09, 05, 05]
-
-08AC; [65 18 10, 05, 05]
-
-0627; [65 1A, 05, 05]
-08AD; [65 1A, 05, 10]
-1EE00; [65 1A, 05, 1B]
-1EE80; [65 1A, 05, 1B]
-FE8E; [65 1A, 05, 26]
-FE8D; [65 1A, 05, 31]
-FD3C; [65 1A, 05, 26][, E5 C0, 1E]
-FD3D; [65 1A, 05, 31][, E5 C0, 2C]
-0675; [65 1A, 05, 10][65 06, 05, 20]
-FDF3; [65 1A, 05, 31][65 B6, 05, 30][65 1E, 05, 30][65 6E, 05, 2C]
-FDF2; [65 1A, 05, 31][65 C4, 05, 30][65 C4, 05, 30][65 D6, 05, 30]
-
-066E; [65 1C, 05, 05]
-1EE1C; [65 1C, 05, 20]
-1EE7C; [65 1C, 05, 20]
-
-0628; [65 1E, 05, 05]
-1EE01; [65 1E, 05, 10]
-1EE21; [65 1E, 05, 10]
-1EE61; [65 1E, 05, 10]
-1EE81; [65 1E, 05, 10]
-1EEA1; [65 1E, 05, 10]
-FE91; [65 1E, 05, 18]
-FE92; [65 1E, 05, 20]
-FE90; [65 1E, 05, 28]
-FE8F; [65 1E, 05, 30]
-FC9C; [65 1E, 05, 18][65 3A, 05, 18]
-FC05; [65 1E, 05, 30][65 3A, 05, 30]
-FC9D; [65 1E, 05, 18][65 48, 05, 18]
-FC06; [65 1E, 05, 30][65 48, 05, 30]
-FDC2; [65 1E, 05, 28][65 48, 05, 28][65 EE, 05, 2C]
-FC9E; [65 1E, 05, 18][65 4A, 05, 18]
-FC07; [65 1E, 05, 30][65 4A, 05, 30]
-FD9E; [65 1E, 05, 28][65 4A, 05, 28][65 EE, 05, 2C]
-FC6A; [65 1E, 05, 28][65 6E, 05, 1E]
-FC6B; [65 1E, 05, 28][65 70, 05, 1E]
-FC9F; [65 1E, 05, 18][65 C8, 05, 18]
-FCE1; [65 1E, 05, 20][65 C8, 05, 20]
-FC6C; [65 1E, 05, 28][65 C8, 05, 28]
-FC08; [65 1E, 05, 30][65 C8, 05, 30]
-FC6D; [65 1E, 05, 28][65 CC, 05, 28]
-FCA0; [65 1E, 05, 18][65 D6, 05, 18]
-FCE2; [65 1E, 05, 20][65 D6, 05, 20]
-FC6E; [65 1E, 05, 28][65 EC, 05, 26]
-FC09; [65 1E, 05, 30][65 EC, 05, 31]
-FC6F; [65 1E, 05, 28][65 EE, 05, 2C]
-FC0A; [65 1E, 05, 30][65 EE, 05, 33]
-
-067B; [65 20, 05, 05]
-FB54; [65 20, 05, 10]
-FB55; [65 20, 05, 1B]
-FB53; [65 20, 05, 26]
-FB52; [65 20, 05, 31]
-
-067E; [65 22, 05, 05]
-FB58; [65 22, 05, 10]
-FB59; [65 22, 05, 1B]
-FB57; [65 22, 05, 26]
-FB56; [65 22, 05, 31]
-
-0680; [65 24, 05, 05]
-FB5C; [65 24, 05, 10]
-FB5D; [65 24, 05, 1B]
-FB5B; [65 24, 05, 26]
-FB5A; [65 24, 05, 31]
-
-0750; [65 26 02, 05, 05]
-
-0751; [65 26 09, 05, 05]
-
-0752; [65 26 10, 05, 05]
-
-0753; [65 26 17, 05, 05]
-
-0754; [65 26 1E, 05, 05]
-
-0755; [65 26 25, 05, 05]
-
-08A0; [65 26 2C, 05, 05]
-
-0756; [65 26 33, 05, 05]
-
-08A1; [65 26 3A, 05, 05]
-
-08B6; [65 26 41, 05, 05]
-
-08B7; [65 26 48, 05, 05]
-
-0629; [65 28, 05, 05]
-FE94; [65 28, 05, 20]
-FE93; [65 28, 05, 2E]
-
-062A; [65 2A, 05, 05]
-1EE15; [65 2A, 05, 10]
-1EE35; [65 2A, 05, 10]
-1EE75; [65 2A, 05, 10]
-1EE95; [65 2A, 05, 10]
-1EEB5; [65 2A, 05, 10]
-FE97; [65 2A, 05, 18]
-FE98; [65 2A, 05, 20]
-FE96; [65 2A, 05, 28]
-FE95; [65 2A, 05, 30]
-FCA1; [65 2A, 05, 18][65 3A, 05, 18]
-FC0B; [65 2A, 05, 30][65 3A, 05, 30]
-FD50; [65 2A, 05, 18][65 3A, 05, 18][65 C8, 05, 18]
-FDA0; [65 2A, 05, 28][65 3A, 05, 28][65 EC, 05, 26]
-FD9F; [65 2A, 05, 28][65 3A, 05, 28][65 EE, 05, 2C]
-FCA2; [65 2A, 05, 18][65 48, 05, 18]
-FC0C; [65 2A, 05, 30][65 48, 05, 30]
-FD52; [65 2A, 05, 18][65 48, 05, 18][65 3A, 05, 18]
-FD51; [65 2A, 05, 28][65 48, 05, 28][65 3A, 05, 28]
-FD53; [65 2A, 05, 18][65 48, 05, 18][65 C8, 05, 18]
-FCA3; [65 2A, 05, 18][65 4A, 05, 18]
-FC0D; [65 2A, 05, 30][65 4A, 05, 30]
-FD54; [65 2A, 05, 18][65 4A, 05, 18][65 C8, 05, 18]
-FDA2; [65 2A, 05, 28][65 4A, 05, 28][65 EC, 05, 26]
-FDA1; [65 2A, 05, 28][65 4A, 05, 28][65 EE, 05, 2C]
-FC70; [65 2A, 05, 28][65 6E, 05, 1E]
-FC71; [65 2A, 05, 28][65 70, 05, 1E]
-FCA4; [65 2A, 05, 18][65 C8, 05, 18]
-FCE3; [65 2A, 05, 20][65 C8, 05, 20]
-FC72; [65 2A, 05, 28][65 C8, 05, 28]
-FC0E; [65 2A, 05, 30][65 C8, 05, 30]
-FD55; [65 2A, 05, 18][65 C8, 05, 18][65 3A, 05, 18]
-FD56; [65 2A, 05, 18][65 C8, 05, 18][65 48, 05, 18]
-FD57; [65 2A, 05, 18][65 C8, 05, 18][65 4A, 05, 18]
-FDA4; [65 2A, 05, 28][65 C8, 05, 28][65 EC, 05, 26]
-FDA3; [65 2A, 05, 28][65 C8, 05, 28][65 EE, 05, 2C]
-FC73; [65 2A, 05, 28][65 CC, 05, 28]
-FCA5; [65 2A, 05, 18][65 D6, 05, 18]
-FCE4; [65 2A, 05, 20][65 D6, 05, 20]
-FC74; [65 2A, 05, 28][65 EC, 05, 26]
-FC0F; [65 2A, 05, 30][65 EC, 05, 31]
-FC75; [65 2A, 05, 28][65 EE, 05, 2C]
-FC10; [65 2A, 05, 30][65 EE, 05, 33]
-
-062B; [65 2C, 05, 05]
-1EE16; [65 2C, 05, 10]
-1EE36; [65 2C, 05, 10]
-1EE76; [65 2C, 05, 10]
-1EE96; [65 2C, 05, 10]
-1EEB6; [65 2C, 05, 10]
-FE9B; [65 2C, 05, 18]
-FE9C; [65 2C, 05, 20]
-FE9A; [65 2C, 05, 28]
-FE99; [65 2C, 05, 30]
-FC11; [65 2C, 05, 30][65 3A, 05, 30]
-FC76; [65 2C, 05, 28][65 6E, 05, 1E]
-FC77; [65 2C, 05, 28][65 70, 05, 1E]
-FCA6; [65 2C, 05, 18][65 C8, 05, 18]
-FCE5; [65 2C, 05, 20][65 C8, 05, 20]
-FC78; [65 2C, 05, 28][65 C8, 05, 28]
-FC12; [65 2C, 05, 30][65 C8, 05, 30]
-FC79; [65 2C, 05, 28][65 CC, 05, 28]
-FCE6; [65 2C, 05, 20][65 D6, 05, 20]
-FC7A; [65 2C, 05, 28][65 EC, 05, 26]
-FC13; [65 2C, 05, 30][65 EC, 05, 31]
-FC7B; [65 2C, 05, 28][65 EE, 05, 2C]
-FC14; [65 2C, 05, 30][65 EE, 05, 33]
-
-0679; [65 2E, 05, 05]
-FB68; [65 2E, 05, 10]
-FB69; [65 2E, 05, 1B]
-FB67; [65 2E, 05, 26]
-FB66; [65 2E, 05, 31]
-
-067A; [65 30, 05, 05]
-FB60; [65 30, 05, 10]
-FB61; [65 30, 05, 1B]
-FB5F; [65 30, 05, 26]
-FB5E; [65 30, 05, 31]
-
-067C; [65 32, 05, 05]
-
-067D; [65 34, 05, 05]
-
-067F; [65 36, 05, 05]
-FB64; [65 36, 05, 10]
-FB65; [65 36, 05, 1B]
-FB63; [65 36, 05, 26]
-FB62; [65 36, 05, 31]
-
-08B8; [65 38, 05, 05]
-
-062C; [65 3A, 05, 05]
-1EE02; [65 3A, 05, 10]
-1EE22; [65 3A, 05, 10]
-1EE42; [65 3A, 05, 10]
-1EE62; [65 3A, 05, 10]
-1EE82; [65 3A, 05, 10]
-1EEA2; [65 3A, 05, 10]
-FE9F; [65 3A, 05, 18]
-FEA0; [65 3A, 05, 20]
-FE9E; [65 3A, 05, 28]
-FE9D; [65 3A, 05, 30]
-FCA7; [65 3A, 05, 18][65 48, 05, 18]
-FC15; [65 3A, 05, 30][65 48, 05, 30]
-FDA6; [65 3A, 05, 28][65 48, 05, 28][65 EC, 05, 26]
-FDBE; [65 3A, 05, 28][65 48, 05, 28][65 EE, 05, 2C]
-FDFB; [65 3A, 05, 30][65 C4, 05, 30][04, 05, 20][65 3A, 05, 30][65 C4, 05, 30][65 1A, 05, 31][65 C4, 05, 30][65 D6, 05, 30]
-FCA8; [65 3A, 05, 18][65 C8, 05, 18]
-FC16; [65 3A, 05, 30][65 C8, 05, 30]
-FD59; [65 3A, 05, 18][65 C8, 05, 18][65 48, 05, 18]
-FD58; [65 3A, 05, 28][65 C8, 05, 28][65 48, 05, 28]
-FDA7; [65 3A, 05, 28][65 C8, 05, 28][65 EC, 05, 26]
-FDA5; [65 3A, 05, 28][65 C8, 05, 28][65 EE, 05, 2C]
-FD1D; [65 3A, 05, 28][65 EC, 05, 26]
-FD01; [65 3A, 05, 30][65 EC, 05, 31]
-FD1E; [65 3A, 05, 28][65 EE, 05, 2C]
-FD02; [65 3A, 05, 30][65 EE, 05, 33]
-
-0683; [65 3C, 05, 05]
-FB78; [65 3C, 05, 10]
-FB79; [65 3C, 05, 1B]
-FB77; [65 3C, 05, 26]
-FB76; [65 3C, 05, 31]
-
-0684; [65 3E, 05, 05]
-FB74; [65 3E, 05, 10]
-FB75; [65 3E, 05, 1B]
-FB73; [65 3E, 05, 26]
-FB72; [65 3E, 05, 31]
-
-0686; [65 40, 05, 05]
-FB7C; [65 40, 05, 10]
-FB7D; [65 40, 05, 1B]
-FB7B; [65 40, 05, 26]
-FB7A; [65 40, 05, 31]
-
-06BF; [65 42, 05, 05]
-
-0687; [65 44, 05, 05]
-FB80; [65 44, 05, 10]
-FB81; [65 44, 05, 1B]
-FB7F; [65 44, 05, 26]
-FB7E; [65 44, 05, 31]
-
-08A2; [65 46, 05, 05]
-
-062D; [65 48, 05, 05]
-1EE07; [65 48, 05, 10]
-1EE27; [65 48, 05, 10]
-1EE47; [65 48, 05, 10]
-1EE67; [65 48, 05, 10]
-1EE87; [65 48, 05, 10]
-1EEA7; [65 48, 05, 10]
-FEA3; [65 48, 05, 18]
-FEA4; [65 48, 05, 20]
-FEA2; [65 48, 05, 28]
-FEA1; [65 48, 05, 30]
-FCA9; [65 48, 05, 18][65 3A, 05, 18]
-FC17; [65 48, 05, 30][65 3A, 05, 30]
-FDBF; [65 48, 05, 28][65 3A, 05, 28][65 EE, 05, 2C]
-FCAA; [65 48, 05, 18][65 C8, 05, 18]
-FC18; [65 48, 05, 30][65 C8, 05, 30]
-FD5B; [65 48, 05, 28][65 C8, 05, 28][65 EC, 05, 26]
-FD5A; [65 48, 05, 28][65 C8, 05, 28][65 EE, 05, 2C]
-FD1B; [65 48, 05, 28][65 EC, 05, 26]
-FCFF; [65 48, 05, 30][65 EC, 05, 31]
-FD1C; [65 48, 05, 28][65 EE, 05, 2C]
-FD00; [65 48, 05, 30][65 EE, 05, 33]
-
-062E; [65 4A, 05, 05]
-1EE17; [65 4A, 05, 10]
-1EE37; [65 4A, 05, 10]
-1EE57; [65 4A, 05, 10]
-1EE77; [65 4A, 05, 10]
-1EE97; [65 4A, 05, 10]
-1EEB7; [65 4A, 05, 10]
-FEA7; [65 4A, 05, 18]
-FEA8; [65 4A, 05, 20]
-FEA6; [65 4A, 05, 28]
-FEA5; [65 4A, 05, 30]
-FCAB; [65 4A, 05, 18][65 3A, 05, 18]
-FC19; [65 4A, 05, 30][65 3A, 05, 30]
-FC1A; [65 4A, 05, 30][65 48, 05, 30]
-FCAC; [65 4A, 05, 18][65 C8, 05, 18]
-FC1B; [65 4A, 05, 30][65 C8, 05, 30]
-FD1F; [65 4A, 05, 28][65 EC, 05, 26]
-FD03; [65 4A, 05, 30][65 EC, 05, 31]
-FD20; [65 4A, 05, 28][65 EE, 05, 2C]
-FD04; [65 4A, 05, 30][65 EE, 05, 33]
-
-0681; [65 4C, 05, 05]
-
-0682; [65 4E, 05, 05]
-
-0685; [65 50, 05, 05]
-
-0757; [65 52 02, 05, 05]
-
-0758; [65 52 09, 05, 05]
-
-076E; [65 52 10, 05, 05]
-
-076F; [65 52 17, 05, 05]
-
-0772; [65 52 1E, 05, 05]
-
-077C; [65 52 25, 05, 05]
+1218; [67 8F B8, 05, 05]
-062F; [65 54, 05, 05]
-1EE03; [65 54, 05, 10]
-1EE83; [65 54, 05, 10]
-1EEA3; [65 54, 05, 10]
-FEAA; [65 54, 05, 1E]
-FEA9; [65 54, 05, 2C]
+1219; [67 8F BF, 05, 05]
-0630; [65 56, 05, 05]
-1EE18; [65 56, 05, 10]
-1EE98; [65 56, 05, 10]
-1EEB8; [65 56, 05, 10]
-FEAC; [65 56, 05, 1E]
-FEAB; [65 56, 05, 2C]
-FC5B; [65 56, 05, 2C][, EB 82, 2C]
+121A; [67 8F C6, 05, 05]
-0688; [65 58, 05, 05]
-FB89; [65 58, 05, 20]
-FB88; [65 58, 05, 2E]
+121B; [67 8F CD, 05, 05]
-0689; [65 5A, 05, 05]
+121C; [67 8F D4, 05, 05]
-068A; [65 5C, 05, 05]
-
-068B; [65 5E, 05, 05]
-
-068C; [65 60, 05, 05]
-FB85; [65 60, 05, 20]
-FB84; [65 60, 05, 2E]
-
-068D; [65 62, 05, 05]
-FB83; [65 62, 05, 20]
-FB82; [65 62, 05, 2E]
-
-08AE; [65 64, 05, 05]
-
-068E; [65 66, 05, 05]
-FB87; [65 66, 05, 20]
-FB86; [65 66, 05, 2E]
-
-068F; [65 68, 05, 05]
-
-0690; [65 6A, 05, 05]
-
-06EE; [65 6C 02, 05, 05]
-
-0759; [65 6C 09, 05, 05]
-
-075A; [65 6C 10, 05, 05]
-
-0631; [65 6E, 05, 05]
-1EE13; [65 6E, 05, 10]
-1EE93; [65 6E, 05, 10]
-1EEB3; [65 6E, 05, 10]
-FEAE; [65 6E, 05, 1E]
-FEAD; [65 6E, 05, 2C]
-FC5C; [65 6E, 05, 2C][, EB 82, 2C]
-FDF6; [65 6E, 05, 2C][65 86, 05, 30][65 DE, 05, 31][65 C4, 05, 30]
-
-0632; [65 70, 05, 05]
-1EE06; [65 70, 05, 10]
-1EE86; [65 70, 05, 10]
-1EEA6; [65 70, 05, 10]
-FEB0; [65 70, 05, 1E]
-FEAF; [65 70, 05, 2C]
-
-0691; [65 72, 05, 05]
-FB8D; [65 72, 05, 20]
-FB8C; [65 72, 05, 2E]
-
-0692; [65 74, 05, 05]
-
-0693; [65 76, 05, 05]
-
-0694; [65 78, 05, 05]
-
-0695; [65 7A, 05, 05]
-
-0696; [65 7C, 05, 05]
-
-0697; [65 7E, 05, 05]
-
-0698; [65 80, 05, 05]
-FB8B; [65 80, 05, 20]
-FB8A; [65 80, 05, 2E]
-
-0699; [65 82, 05, 05]
-
-06EF; [65 84 02, 05, 05]
-
-075B; [65 84 09, 05, 05]
-
-076B; [65 84 10, 05, 05]
-
-076C; [65 84 17, 05, 05]
-
-0771; [65 84 1E, 05, 05]
-
-08AA; [65 84 25, 05, 05]
-
-08B2; [65 84 2C, 05, 05]
-
-08B9; [65 84 33, 05, 05]
-
-0633; [65 86, 05, 05]
-1EE0E; [65 86, 05, 10]
-1EE2E; [65 86, 05, 10]
-1EE4E; [65 86, 05, 10]
-1EE6E; [65 86, 05, 10]
-1EE8E; [65 86, 05, 10]
-1EEAE; [65 86, 05, 10]
-FEB3; [65 86, 05, 18]
-FEB4; [65 86, 05, 20]
-FEB2; [65 86, 05, 28]
-FEB1; [65 86, 05, 30]
-FCAD; [65 86, 05, 18][65 3A, 05, 18]
-FD34; [65 86, 05, 20][65 3A, 05, 20]
-FC1C; [65 86, 05, 30][65 3A, 05, 30]
-FD5D; [65 86, 05, 18][65 3A, 05, 18][65 48, 05, 18]
-FD5E; [65 86, 05, 28][65 3A, 05, 28][65 EC, 05, 26]
-FCAE; [65 86, 05, 18][65 48, 05, 18]
-FD35; [65 86, 05, 20][65 48, 05, 20]
-FC1D; [65 86, 05, 30][65 48, 05, 30]
-FD5C; [65 86, 05, 18][65 48, 05, 18][65 3A, 05, 18]
-FCAF; [65 86, 05, 18][65 4A, 05, 18]
-FD36; [65 86, 05, 20][65 4A, 05, 20]
-FC1E; [65 86, 05, 30][65 4A, 05, 30]
-FDA8; [65 86, 05, 28][65 4A, 05, 28][65 EC, 05, 26]
-FDC6; [65 86, 05, 28][65 4A, 05, 28][65 EE, 05, 2C]
-FD2A; [65 86, 05, 28][65 6E, 05, 1E]
-FD0E; [65 86, 05, 30][65 6E, 05, 2C]
-FCB0; [65 86, 05, 18][65 C8, 05, 18]
-FCE7; [65 86, 05, 20][65 C8, 05, 20]
-FC1F; [65 86, 05, 30][65 C8, 05, 30]
-FD61; [65 86, 05, 18][65 C8, 05, 18][65 3A, 05, 18]
-FD60; [65 86, 05, 18][65 C8, 05, 18][65 48, 05, 18]
-FD5F; [65 86, 05, 28][65 C8, 05, 28][65 48, 05, 28]
-FD63; [65 86, 05, 18][65 C8, 05, 18][65 C8, 05, 18]
-FD62; [65 86, 05, 28][65 C8, 05, 28][65 C8, 05, 28]
-FD31; [65 86, 05, 18][65 D6, 05, 18]
-FCE8; [65 86, 05, 20][65 D6, 05, 20]
-FD17; [65 86, 05, 28][65 EC, 05, 26]
-FCFB; [65 86, 05, 30][65 EC, 05, 31]
-FD18; [65 86, 05, 28][65 EE, 05, 2C]
-FCFC; [65 86, 05, 30][65 EE, 05, 33]
-
-0634; [65 88, 05, 05]
-1EE14; [65 88, 05, 10]
-1EE34; [65 88, 05, 10]
-1EE54; [65 88, 05, 10]
-1EE74; [65 88, 05, 10]
-1EE94; [65 88, 05, 10]
-1EEB4; [65 88, 05, 10]
-FEB7; [65 88, 05, 18]
-FEB8; [65 88, 05, 20]
-FEB6; [65 88, 05, 28]
-FEB5; [65 88, 05, 30]
-FD2D; [65 88, 05, 18][65 3A, 05, 18]
-FD37; [65 88, 05, 20][65 3A, 05, 20]
-FD25; [65 88, 05, 28][65 3A, 05, 28]
-FD09; [65 88, 05, 30][65 3A, 05, 30]
-FD69; [65 88, 05, 28][65 3A, 05, 28][65 EE, 05, 2C]
-FD2E; [65 88, 05, 18][65 48, 05, 18]
-FD38; [65 88, 05, 20][65 48, 05, 20]
-FD26; [65 88, 05, 28][65 48, 05, 28]
-FD0A; [65 88, 05, 30][65 48, 05, 30]
-FD68; [65 88, 05, 18][65 48, 05, 18][65 C8, 05, 18]
-FD67; [65 88, 05, 28][65 48, 05, 28][65 C8, 05, 28]
-FDAA; [65 88, 05, 28][65 48, 05, 28][65 EE, 05, 2C]
-FD2F; [65 88, 05, 18][65 4A, 05, 18]
-FD39; [65 88, 05, 20][65 4A, 05, 20]
-FD27; [65 88, 05, 28][65 4A, 05, 28]
-FD0B; [65 88, 05, 30][65 4A, 05, 30]
-FD29; [65 88, 05, 28][65 6E, 05, 1E]
-FD0D; [65 88, 05, 30][65 6E, 05, 2C]
-FD30; [65 88, 05, 18][65 C8, 05, 18]
-FCE9; [65 88, 05, 20][65 C8, 05, 20]
-FD28; [65 88, 05, 28][65 C8, 05, 28]
-FD0C; [65 88, 05, 30][65 C8, 05, 30]
-FD6B; [65 88, 05, 18][65 C8, 05, 18][65 4A, 05, 18]
-FD6A; [65 88, 05, 28][65 C8, 05, 28][65 4A, 05, 28]
-FD6D; [65 88, 05, 18][65 C8, 05, 18][65 C8, 05, 18]
-FD6C; [65 88, 05, 28][65 C8, 05, 28][65 C8, 05, 28]
-FD32; [65 88, 05, 18][65 D6, 05, 18]
-FCEA; [65 88, 05, 20][65 D6, 05, 20]
-FD19; [65 88, 05, 28][65 EC, 05, 26]
-FCFD; [65 88, 05, 30][65 EC, 05, 31]
-FD1A; [65 88, 05, 28][65 EE, 05, 2C]
-FCFE; [65 88, 05, 30][65 EE, 05, 33]
-
-069A; [65 8A, 05, 05]
-
-069B; [65 8C, 05, 05]
-
-069C; [65 8E, 05, 05]
-
-06FA; [65 90 02, 05, 05]
-
-075C; [65 90 09, 05, 05]
-
-076D; [65 90 10, 05, 05]
-
-0770; [65 90 17, 05, 05]
-
-077D; [65 90 1E, 05, 05]
-
-077E; [65 90 25, 05, 05]
-
-0635; [65 92, 05, 05]
-1EE11; [65 92, 05, 10]
-1EE31; [65 92, 05, 10]
-1EE51; [65 92, 05, 10]
-1EE71; [65 92, 05, 10]
-1EE91; [65 92, 05, 10]
-1EEB1; [65 92, 05, 10]
-FEBB; [65 92, 05, 18]
-FEBC; [65 92, 05, 20]
-FEBA; [65 92, 05, 28]
-FEB9; [65 92, 05, 30]
-FCB1; [65 92, 05, 18][65 48, 05, 18]
-FC20; [65 92, 05, 30][65 48, 05, 30]
-FD65; [65 92, 05, 18][65 48, 05, 18][65 48, 05, 18]
-FD64; [65 92, 05, 28][65 48, 05, 28][65 48, 05, 28]
-FDA9; [65 92, 05, 28][65 48, 05, 28][65 EE, 05, 2C]
-FCB2; [65 92, 05, 18][65 4A, 05, 18]
-FD2B; [65 92, 05, 28][65 6E, 05, 1E]
-FD0F; [65 92, 05, 30][65 6E, 05, 2C]
-FDF5; [65 92, 05, 30][65 C4, 05, 30][65 A6, 05, 30][65 C8, 05, 30]
-FDF9; [65 92, 05, 30][65 C4, 05, 30][65 EC, 05, 31]
-FDFA; [65 92, 05, 30][65 C4, 05, 30][65 EC, 05, 31][04, 05, 20][65 1A, 05, 31][65 C4, 05, 30][65 C4, 05, 30][65 D6, 05, 30][04, 05, 20][65 A6, 05, 30][65 C4, 05, 30][65 EE, 05, 33][65 D6, 05, 30][04, 05, 20][65 DE, 05, 31][65 86, 05, 30][65 C4, 05, 30][65 C8, 05, 30]
-FDF0; [65 92, 05, 30][65 C4, 05, 30][65 FA, 05, 2E]
-FCB3; [65 92, 05, 18][65 C8, 05, 18]
-FC21; [65 92, 05, 30][65 C8, 05, 30]
-FDC5; [65 92, 05, 18][65 C8, 05, 18][65 C8, 05, 18]
-FD66; [65 92, 05, 28][65 C8, 05, 28][65 C8, 05, 28]
-FD21; [65 92, 05, 28][65 EC, 05, 26]
-FD05; [65 92, 05, 30][65 EC, 05, 31]
-FD22; [65 92, 05, 28][65 EE, 05, 2C]
-FD06; [65 92, 05, 30][65 EE, 05, 33]
-
-0636; [65 94, 05, 05]
-1EE19; [65 94, 05, 10]
-1EE39; [65 94, 05, 10]
-1EE59; [65 94, 05, 10]
-1EE79; [65 94, 05, 10]
-1EE99; [65 94, 05, 10]
-1EEB9; [65 94, 05, 10]
-FEBF; [65 94, 05, 18]
-FEC0; [65 94, 05, 20]
-FEBE; [65 94, 05, 28]
-FEBD; [65 94, 05, 30]
-FCB4; [65 94, 05, 18][65 3A, 05, 18]
-FC22; [65 94, 05, 30][65 3A, 05, 30]
-FCB5; [65 94, 05, 18][65 48, 05, 18]
-FC23; [65 94, 05, 30][65 48, 05, 30]
-FD6E; [65 94, 05, 28][65 48, 05, 28][65 EC, 05, 26]
-FDAB; [65 94, 05, 28][65 48, 05, 28][65 EE, 05, 2C]
-FCB6; [65 94, 05, 18][65 4A, 05, 18]
-FC24; [65 94, 05, 30][65 4A, 05, 30]
-FD70; [65 94, 05, 18][65 4A, 05, 18][65 C8, 05, 18]
-FD6F; [65 94, 05, 28][65 4A, 05, 28][65 C8, 05, 28]
-FD2C; [65 94, 05, 28][65 6E, 05, 1E]
-FD10; [65 94, 05, 30][65 6E, 05, 2C]
-FCB7; [65 94, 05, 18][65 C8, 05, 18]
-FC25; [65 94, 05, 30][65 C8, 05, 30]
-FD23; [65 94, 05, 28][65 EC, 05, 26]
-FD07; [65 94, 05, 30][65 EC, 05, 31]
-FD24; [65 94, 05, 28][65 EE, 05, 2C]
-FD08; [65 94, 05, 30][65 EE, 05, 33]
-
-069D; [65 96, 05, 05]
-
-08AF; [65 98, 05, 05]
-
-069E; [65 9A, 05, 05]
-
-06FB; [65 9C, 05, 05]
-
-0637; [65 9E, 05, 05]
-1EE08; [65 9E, 05, 10]
-1EE68; [65 9E, 05, 10]
-1EE88; [65 9E, 05, 10]
-1EEA8; [65 9E, 05, 10]
-FEC3; [65 9E, 05, 18]
-FEC4; [65 9E, 05, 20]
-FEC2; [65 9E, 05, 28]
-FEC1; [65 9E, 05, 30]
-FCB8; [65 9E, 05, 18][65 48, 05, 18]
-FC26; [65 9E, 05, 30][65 48, 05, 30]
-FD33; [65 9E, 05, 18][65 C8, 05, 18]
-FD3A; [65 9E, 05, 20][65 C8, 05, 20]
-FC27; [65 9E, 05, 30][65 C8, 05, 30]
-FD72; [65 9E, 05, 18][65 C8, 05, 18][65 48, 05, 18]
-FD71; [65 9E, 05, 28][65 C8, 05, 28][65 48, 05, 28]
-FD73; [65 9E, 05, 18][65 C8, 05, 18][65 C8, 05, 18]
-FD74; [65 9E, 05, 28][65 C8, 05, 28][65 EE, 05, 2C]
-FD11; [65 9E, 05, 28][65 EC, 05, 26]
-FCF5; [65 9E, 05, 30][65 EC, 05, 31]
-FD12; [65 9E, 05, 28][65 EE, 05, 2C]
-FCF6; [65 9E, 05, 30][65 EE, 05, 33]
-
-0638; [65 A0, 05, 05]
-1EE1A; [65 A0, 05, 10]
-1EE7A; [65 A0, 05, 10]
-1EE9A; [65 A0, 05, 10]
-1EEBA; [65 A0, 05, 10]
-FEC7; [65 A0, 05, 18]
-FEC8; [65 A0, 05, 20]
-FEC6; [65 A0, 05, 28]
-FEC5; [65 A0, 05, 30]
-FCB9; [65 A0, 05, 18][65 C8, 05, 18]
-FD3B; [65 A0, 05, 20][65 C8, 05, 20]
-FC28; [65 A0, 05, 30][65 C8, 05, 30]
-
-069F; [65 A2, 05, 05]
-
-08A3; [65 A4, 05, 05]
-
-0639; [65 A6, 05, 05]
-1EE0F; [65 A6, 05, 10]
-1EE2F; [65 A6, 05, 10]
-1EE4F; [65 A6, 05, 10]
-1EE6F; [65 A6, 05, 10]
-1EE8F; [65 A6, 05, 10]
-1EEAF; [65 A6, 05, 10]
-FECB; [65 A6, 05, 18]
-FECC; [65 A6, 05, 20]
-FECA; [65 A6, 05, 28]
-FEC9; [65 A6, 05, 30]
-FCBA; [65 A6, 05, 18][65 3A, 05, 18]
-FC29; [65 A6, 05, 30][65 3A, 05, 30]
-FDC4; [65 A6, 05, 18][65 3A, 05, 18][65 C8, 05, 18]
-FD75; [65 A6, 05, 28][65 3A, 05, 28][65 C8, 05, 28]
-FDF7; [65 A6, 05, 30][65 C4, 05, 30][65 EE, 05, 33][65 D6, 05, 30]
-FCBB; [65 A6, 05, 18][65 C8, 05, 18]
-FC2A; [65 A6, 05, 30][65 C8, 05, 30]
-FD77; [65 A6, 05, 18][65 C8, 05, 18][65 C8, 05, 18]
-FD76; [65 A6, 05, 28][65 C8, 05, 28][65 C8, 05, 28]
-FD78; [65 A6, 05, 28][65 C8, 05, 28][65 EC, 05, 26]
-FDB6; [65 A6, 05, 28][65 C8, 05, 28][65 EE, 05, 2C]
-FD13; [65 A6, 05, 28][65 EC, 05, 26]
-FCF7; [65 A6, 05, 30][65 EC, 05, 31]
-FD14; [65 A6, 05, 28][65 EE, 05, 2C]
-FCF8; [65 A6, 05, 30][65 EE, 05, 33]
-
-063A; [65 A8, 05, 05]
-1EE1B; [65 A8, 05, 10]
-1EE3B; [65 A8, 05, 10]
-1EE5B; [65 A8, 05, 10]
-1EE7B; [65 A8, 05, 10]
-1EE9B; [65 A8, 05, 10]
-1EEBB; [65 A8, 05, 10]
-FECF; [65 A8, 05, 18]
-FED0; [65 A8, 05, 20]
-FECE; [65 A8, 05, 28]
-FECD; [65 A8, 05, 30]
-FCBC; [65 A8, 05, 18][65 3A, 05, 18]
-FC2B; [65 A8, 05, 30][65 3A, 05, 30]
-FCBD; [65 A8, 05, 18][65 C8, 05, 18]
-FC2C; [65 A8, 05, 30][65 C8, 05, 30]
-FD79; [65 A8, 05, 28][65 C8, 05, 28][65 C8, 05, 28]
-FD7B; [65 A8, 05, 28][65 C8, 05, 28][65 EC, 05, 26]
-FD7A; [65 A8, 05, 28][65 C8, 05, 28][65 EE, 05, 2C]
-FD15; [65 A8, 05, 28][65 EC, 05, 26]
-FCF9; [65 A8, 05, 30][65 EC, 05, 31]
-FD16; [65 A8, 05, 28][65 EE, 05, 2C]
-FCFA; [65 A8, 05, 30][65 EE, 05, 33]
-
-06A0; [65 AA, 05, 05]
-
-06FC; [65 AC 02, 05, 05]
-
-075D; [65 AC 09, 05, 05]
-
-075E; [65 AC 10, 05, 05]
-
-075F; [65 AC 17, 05, 05]
-
-08B3; [65 AC 1E, 05, 05]
-
-0641; [65 AE, 05, 05]
-1EE10; [65 AE, 05, 10]
-1EE30; [65 AE, 05, 10]
-1EE70; [65 AE, 05, 10]
-1EE90; [65 AE, 05, 10]
-1EEB0; [65 AE, 05, 10]
-FED3; [65 AE, 05, 18]
-FED4; [65 AE, 05, 20]
-FED2; [65 AE, 05, 28]
-FED1; [65 AE, 05, 30]
-FCBE; [65 AE, 05, 18][65 3A, 05, 18]
-FC2D; [65 AE, 05, 30][65 3A, 05, 30]
-FCBF; [65 AE, 05, 18][65 48, 05, 18]
-FC2E; [65 AE, 05, 30][65 48, 05, 30]
-FCC0; [65 AE, 05, 18][65 4A, 05, 18]
-FC2F; [65 AE, 05, 30][65 4A, 05, 30]
-FD7D; [65 AE, 05, 18][65 4A, 05, 18][65 C8, 05, 18]
-FD7C; [65 AE, 05, 28][65 4A, 05, 28][65 C8, 05, 28]
-FCC1; [65 AE, 05, 18][65 C8, 05, 18]
-FC30; [65 AE, 05, 30][65 C8, 05, 30]
-FDC1; [65 AE, 05, 28][65 C8, 05, 28][65 EE, 05, 2C]
-FC7C; [65 AE, 05, 28][65 EC, 05, 26]
-FC31; [65 AE, 05, 30][65 EC, 05, 31]
-FC7D; [65 AE, 05, 28][65 EE, 05, 2C]
-FC32; [65 AE, 05, 30][65 EE, 05, 33]
-
-06A1; [65 B0 02, 05, 05]
-1EE1E; [65 B0 02, 05, 20]
-1EE7E; [65 B0 02, 05, 20]
-
-06A2; [65 B0 09, 05, 05]
-
-08BB; [65 B0 10, 05, 05]
-
-06A3; [65 B0 17, 05, 05]
-
-06A4; [65 B0 1E, 05, 05]
-FB6C; [65 B0 1E, 05, 10]
-FB6D; [65 B0 1E, 05, 1B]
-FB6B; [65 B0 1E, 05, 26]
-FB6A; [65 B0 1E, 05, 31]
-
-08A4; [65 B0 25, 05, 05]
-
-06A5; [65 B0 2C, 05, 05]
-
-06A6; [65 B0 33, 05, 05]
-FB70; [65 B0 33, 05, 10]
-FB71; [65 B0 33, 05, 1B]
-FB6F; [65 B0 33, 05, 26]
-FB6E; [65 B0 33, 05, 31]
-
-0760; [65 B0 3A, 05, 05]
-
-0761; [65 B0 41, 05, 05]
-
-066F; [65 B0 48, 05, 05]
-1EE1F; [65 B0 48, 05, 20]
-1EE5F; [65 B0 48, 05, 20]
-
-0642; [65 B2, 05, 05]
-1EE12; [65 B2, 05, 10]
-1EE32; [65 B2, 05, 10]
-1EE52; [65 B2, 05, 10]
-1EE72; [65 B2, 05, 10]
-1EE92; [65 B2, 05, 10]
-1EEB2; [65 B2, 05, 10]
-FED7; [65 B2, 05, 18]
-FED8; [65 B2, 05, 20]
-FED6; [65 B2, 05, 28]
-FED5; [65 B2, 05, 30]
-FCC2; [65 B2, 05, 18][65 48, 05, 18]
-FC33; [65 B2, 05, 30][65 48, 05, 30]
-FDF1; [65 B2, 05, 30][65 C4, 05, 30][65 FA, 05, 2E]
-FCC3; [65 B2, 05, 18][65 C8, 05, 18]
-FC34; [65 B2, 05, 30][65 C8, 05, 30]
-FDB4; [65 B2, 05, 18][65 C8, 05, 18][65 48, 05, 18]
-FD7E; [65 B2, 05, 28][65 C8, 05, 28][65 48, 05, 28]
-FD7F; [65 B2, 05, 28][65 C8, 05, 28][65 C8, 05, 28]
-FDB2; [65 B2, 05, 28][65 C8, 05, 28][65 EE, 05, 2C]
-FC7E; [65 B2, 05, 28][65 EC, 05, 26]
-FC35; [65 B2, 05, 30][65 EC, 05, 31]
-FC7F; [65 B2, 05, 28][65 EE, 05, 2C]
-FC36; [65 B2, 05, 30][65 EE, 05, 33]
-
-06A7; [65 B4 02, 05, 05]
-
-08BC; [65 B4 09, 05, 05]
-
-06A8; [65 B4 10, 05, 05]
-
-08A5; [65 B4 17, 05, 05]
-
-0643; [65 B6, 05, 05]
-1EE0A; [65 B6, 05, 10]
-1EE2A; [65 B6, 05, 10]
-1EE6A; [65 B6, 05, 10]
-FEDB; [65 B6, 05, 18]
-FEDC; [65 B6, 05, 20]
-FEDA; [65 B6, 05, 28]
-FED9; [65 B6, 05, 30]
-FC80; [65 B6, 05, 28][65 1A, 05, 26]
-FC37; [65 B6, 05, 30][65 1A, 05, 31]
-FCC4; [65 B6, 05, 18][65 3A, 05, 18]
-FC38; [65 B6, 05, 30][65 3A, 05, 30]
-FCC5; [65 B6, 05, 18][65 48, 05, 18]
-FC39; [65 B6, 05, 30][65 48, 05, 30]
-FCC6; [65 B6, 05, 18][65 4A, 05, 18]
-FC3A; [65 B6, 05, 30][65 4A, 05, 30]
-FCC7; [65 B6, 05, 18][65 C4, 05, 18]
-FCEB; [65 B6, 05, 20][65 C4, 05, 20]
-FC81; [65 B6, 05, 28][65 C4, 05, 28]
-FC3B; [65 B6, 05, 30][65 C4, 05, 30]
-FCC8; [65 B6, 05, 18][65 C8, 05, 18]
-FCEC; [65 B6, 05, 20][65 C8, 05, 20]
-FC82; [65 B6, 05, 28][65 C8, 05, 28]
-FC3C; [65 B6, 05, 30][65 C8, 05, 30]
-FDC3; [65 B6, 05, 18][65 C8, 05, 18][65 C8, 05, 18]
-FDBB; [65 B6, 05, 28][65 C8, 05, 28][65 C8, 05, 28]
-FDB7; [65 B6, 05, 28][65 C8, 05, 28][65 EE, 05, 2C]
-FC83; [65 B6, 05, 28][65 EC, 05, 26]
-FC3D; [65 B6, 05, 30][65 EC, 05, 31]
-FC84; [65 B6, 05, 28][65 EE, 05, 2C]
-FC3E; [65 B6, 05, 30][65 EE, 05, 33]
-
-06A9; [65 B8, 05, 05]
-FB90; [65 B8, 05, 10]
-FB91; [65 B8, 05, 1B]
-FB8F; [65 B8, 05, 26]
-FB8E; [65 B8, 05, 31]
-
-06AA; [65 BA, 05, 05]
-
-06AB; [65 BC, 05, 05]
-
-06AC; [65 BE 02, 05, 05]
-
-077F; [65 BE 09, 05, 05]
-
-06AD; [65 BE 10, 05, 05]
-FBD5; [65 BE 10, 05, 10]
-FBD6; [65 BE 10, 05, 1B]
-FBD4; [65 BE 10, 05, 26]
-FBD3; [65 BE 10, 05, 31]
-
-06AE; [65 BE 17, 05, 05]
-
-08B4; [65 BE 1E, 05, 05]
-
-06AF; [65 C0, 05, 05]
-FB94; [65 C0, 05, 10]
-FB95; [65 C0, 05, 1B]
-FB93; [65 C0, 05, 26]
-FB92; [65 C0, 05, 31]
-
-08B0; [65 C2 02, 05, 05]
-
-06B0; [65 C2 09, 05, 05]
-
-06B1; [65 C2 10, 05, 05]
-FB9C; [65 C2 10, 05, 10]
-FB9D; [65 C2 10, 05, 1B]
-FB9B; [65 C2 10, 05, 26]
-FB9A; [65 C2 10, 05, 31]
-
-06B2; [65 C2 17, 05, 05]
-
-06B3; [65 C2 1E, 05, 05]
-FB98; [65 C2 1E, 05, 10]
-FB99; [65 C2 1E, 05, 1B]
-FB97; [65 C2 1E, 05, 26]
-FB96; [65 C2 1E, 05, 31]
-
-06B4; [65 C2 25, 05, 05]
-
-0762; [65 C2 2C, 05, 05]
-
-063B; [65 C2 33, 05, 05]
-
-063C; [65 C2 3A, 05, 05]
-
-0763; [65 C2 41, 05, 05]
-
-0764; [65 C2 48, 05, 05]
-
-0644; [65 C4, 05, 05]
-1EE0B; [65 C4, 05, 10]
-1EE2B; [65 C4, 05, 10]
-1EE4B; [65 C4, 05, 10]
-1EE8B; [65 C4, 05, 10]
-1EEAB; [65 C4, 05, 10]
-FEDF; [65 C4, 05, 18]
-FEE0; [65 C4, 05, 20]
-FEDE; [65 C4, 05, 28]
-FEDD; [65 C4, 05, 30]
-FEF6; [65 C4, 05, 28][65 08, 05, 20]
-FEF5; [65 C4, 05, 30][65 08, 05, 2E]
-FEF8; [65 C4, 05, 28][65 0A, 05, 20]
-FEF7; [65 C4, 05, 30][65 0A, 05, 2E]
-FEFA; [65 C4, 05, 28][65 12, 05, 20]
-FEF9; [65 C4, 05, 30][65 12, 05, 2E]
-FEFC; [65 C4, 05, 28][65 1A, 05, 26]
-FEFB; [65 C4, 05, 30][65 1A, 05, 31]
-FCC9; [65 C4, 05, 18][65 3A, 05, 18]
-FC3F; [65 C4, 05, 30][65 3A, 05, 30]
-FD83; [65 C4, 05, 18][65 3A, 05, 18][65 3A, 05, 18]
-FD84; [65 C4, 05, 28][65 3A, 05, 28][65 3A, 05, 28]
-FDBA; [65 C4, 05, 18][65 3A, 05, 18][65 C8, 05, 18]
-FDBC; [65 C4, 05, 28][65 3A, 05, 28][65 C8, 05, 28]
-FDAC; [65 C4, 05, 28][65 3A, 05, 28][65 EE, 05, 2C]
-FCCA; [65 C4, 05, 18][65 48, 05, 18]
-FC40; [65 C4, 05, 30][65 48, 05, 30]
-FDB5; [65 C4, 05, 18][65 48, 05, 18][65 C8, 05, 18]
-FD80; [65 C4, 05, 28][65 48, 05, 28][65 C8, 05, 28]
-FD82; [65 C4, 05, 28][65 48, 05, 28][65 EC, 05, 26]
-FD81; [65 C4, 05, 28][65 48, 05, 28][65 EE, 05, 2C]
-FCCB; [65 C4, 05, 18][65 4A, 05, 18]
-FC41; [65 C4, 05, 30][65 4A, 05, 30]
-FD86; [65 C4, 05, 18][65 4A, 05, 18][65 C8, 05, 18]
-FD85; [65 C4, 05, 28][65 4A, 05, 28][65 C8, 05, 28]
-FCCC; [65 C4, 05, 18][65 C8, 05, 18]
-FCED; [65 C4, 05, 20][65 C8, 05, 20]
-FC85; [65 C4, 05, 28][65 C8, 05, 28]
-FC42; [65 C4, 05, 30][65 C8, 05, 30]
-FD88; [65 C4, 05, 18][65 C8, 05, 18][65 48, 05, 18]
-FD87; [65 C4, 05, 28][65 C8, 05, 28][65 48, 05, 28]
-FDAD; [65 C4, 05, 28][65 C8, 05, 28][65 EE, 05, 2C]
-FCCD; [65 C4, 05, 18][65 D6, 05, 18]
-FC86; [65 C4, 05, 28][65 EC, 05, 26]
-FC43; [65 C4, 05, 30][65 EC, 05, 31]
-FC87; [65 C4, 05, 28][65 EE, 05, 2C]
-FC44; [65 C4, 05, 30][65 EE, 05, 33]
-
-06B5; [65 C6 02, 05, 05]
-
-06B6; [65 C6 09, 05, 05]
-
-06B7; [65 C6 10, 05, 05]
-
-06B8; [65 C6 17, 05, 05]
-
-076A; [65 C6 1E, 05, 05]
-
-08A6; [65 C6 25, 05, 05]
-
-0645; [65 C8, 05, 05]
-1EE0C; [65 C8, 05, 10]
-1EE2C; [65 C8, 05, 10]
-1EE6C; [65 C8, 05, 10]
-1EE8C; [65 C8, 05, 10]
-1EEAC; [65 C8, 05, 10]
-FEE3; [65 C8, 05, 18]
-FEE4; [65 C8, 05, 20]
-FEE2; [65 C8, 05, 28]
-FEE1; [65 C8, 05, 30]
-06FE; [65 C8, 70, 05]
-FC88; [65 C8, 05, 28][65 1A, 05, 26]
-FCCE; [65 C8, 05, 18][65 3A, 05, 18]
-FC45; [65 C8, 05, 30][65 3A, 05, 30]
-FD8C; [65 C8, 05, 18][65 3A, 05, 18][65 48, 05, 18]
-FD92; [65 C8, 05, 18][65 3A, 05, 18][65 4A, 05, 18]
-FD8D; [65 C8, 05, 18][65 3A, 05, 18][65 C8, 05, 18]
-FDC0; [65 C8, 05, 28][65 3A, 05, 28][65 EE, 05, 2C]
-FCCF; [65 C8, 05, 18][65 48, 05, 18]
-FC46; [65 C8, 05, 30][65 48, 05, 30]
-FD89; [65 C8, 05, 18][65 48, 05, 18][65 3A, 05, 18]
-FD8A; [65 C8, 05, 18][65 48, 05, 18][65 C8, 05, 18]
-FDF4; [65 C8, 05, 30][65 48, 05, 30][65 C8, 05, 30][65 54, 05, 2C]
-FD8B; [65 C8, 05, 28][65 48, 05, 28][65 EE, 05, 2C]
-FCD0; [65 C8, 05, 18][65 4A, 05, 18]
-FC47; [65 C8, 05, 30][65 4A, 05, 30]
-FD8E; [65 C8, 05, 18][65 4A, 05, 18][65 3A, 05, 18]
-FD8F; [65 C8, 05, 18][65 4A, 05, 18][65 C8, 05, 18]
-FDB9; [65 C8, 05, 28][65 4A, 05, 28][65 EE, 05, 2C]
-FCD1; [65 C8, 05, 18][65 C8, 05, 18]
-FC89; [65 C8, 05, 28][65 C8, 05, 28]
-FC48; [65 C8, 05, 30][65 C8, 05, 30]
-FDB1; [65 C8, 05, 28][65 C8, 05, 28][65 EE, 05, 2C]
-FC49; [65 C8, 05, 30][65 EC, 05, 31]
-FC4A; [65 C8, 05, 30][65 EE, 05, 33]
-
-0765; [65 CA 02, 05, 05]
-
-0766; [65 CA 09, 05, 05]
-
-08A7; [65 CA 10, 05, 05]
-
-0646; [65 CC, 05, 05]
-1EE0D; [65 CC, 05, 10]
-1EE2D; [65 CC, 05, 10]
-1EE4D; [65 CC, 05, 10]
-1EE6D; [65 CC, 05, 10]
-1EE8D; [65 CC, 05, 10]
-1EEAD; [65 CC, 05, 10]
-FEE7; [65 CC, 05, 18]
-FEE8; [65 CC, 05, 20]
-FEE6; [65 CC, 05, 28]
-FEE5; [65 CC, 05, 30]
-FCD2; [65 CC, 05, 18][65 3A, 05, 18]
-FC4B; [65 CC, 05, 30][65 3A, 05, 30]
-FDB8; [65 CC, 05, 18][65 3A, 05, 18][65 48, 05, 18]
-FDBD; [65 CC, 05, 28][65 3A, 05, 28][65 48, 05, 28]
-FD98; [65 CC, 05, 18][65 3A, 05, 18][65 C8, 05, 18]
-FD97; [65 CC, 05, 28][65 3A, 05, 28][65 C8, 05, 28]
-FD99; [65 CC, 05, 28][65 3A, 05, 28][65 EC, 05, 26]
-FDC7; [65 CC, 05, 28][65 3A, 05, 28][65 EE, 05, 2C]
-FCD3; [65 CC, 05, 18][65 48, 05, 18]
-FC4C; [65 CC, 05, 30][65 48, 05, 30]
-FD95; [65 CC, 05, 18][65 48, 05, 18][65 C8, 05, 18]
-FD96; [65 CC, 05, 28][65 48, 05, 28][65 EC, 05, 26]
-FDB3; [65 CC, 05, 28][65 48, 05, 28][65 EE, 05, 2C]
-FCD4; [65 CC, 05, 18][65 4A, 05, 18]
-FC4D; [65 CC, 05, 30][65 4A, 05, 30]
-FC8A; [65 CC, 05, 28][65 6E, 05, 1E]
-FC8B; [65 CC, 05, 28][65 70, 05, 1E]
-FCD5; [65 CC, 05, 18][65 C8, 05, 18]
-FCEE; [65 CC, 05, 20][65 C8, 05, 20]
-FC8C; [65 CC, 05, 28][65 C8, 05, 28]
-FC4E; [65 CC, 05, 30][65 C8, 05, 30]
-FD9B; [65 CC, 05, 28][65 C8, 05, 28][65 EC, 05, 26]
-FD9A; [65 CC, 05, 28][65 C8, 05, 28][65 EE, 05, 2C]
-FC8D; [65 CC, 05, 28][65 CC, 05, 28]
-FCD6; [65 CC, 05, 18][65 D6, 05, 18]
-FCEF; [65 CC, 05, 20][65 D6, 05, 20]
-FC8E; [65 CC, 05, 28][65 EC, 05, 26]
-FC4F; [65 CC, 05, 30][65 EC, 05, 31]
-FC8F; [65 CC, 05, 28][65 EE, 05, 2C]
-FC50; [65 CC, 05, 30][65 EE, 05, 33]
-
-06BA; [65 CE, 05, 05]
-1EE1D; [65 CE, 05, 10]
-1EE5D; [65 CE, 05, 10]
-FB9F; [65 CE, 05, 1E]
-FB9E; [65 CE, 05, 2C]
-
-08BD; [65 D0 02, 05, 05]
-
-06BB; [65 D0 09, 05, 05]
-FBA2; [65 D0 09, 05, 10]
-FBA3; [65 D0 09, 05, 1B]
-FBA1; [65 D0 09, 05, 26]
-FBA0; [65 D0 09, 05, 31]
-
-06BC; [65 D2, 05, 05]
-
-06BD; [65 D4 02, 05, 05]
-
-06B9; [65 D4 09, 05, 05]
-
-0767; [65 D4 10, 05, 05]
-
-0768; [65 D4 17, 05, 05]
-
-0769; [65 D4 1E, 05, 05]
-
-0647; [65 D6, 05, 05]
-1EE24; [65 D6, 05, 10]
-1EE64; [65 D6, 05, 10]
-1EE84; [65 D6, 05, 10]
-FEEB; [65 D6, 05, 18]
-FEEC; [65 D6, 05, 20]
-FEEA; [65 D6, 05, 28]
-FEE9; [65 D6, 05, 30]
-FCD9; [65 D6, 05, 18][, EB 82, 10]
-FCD7; [65 D6, 05, 18][65 3A, 05, 18]
-FC51; [65 D6, 05, 30][65 3A, 05, 30]
-FCD8; [65 D6, 05, 18][65 C8, 05, 18]
-FC52; [65 D6, 05, 30][65 C8, 05, 30]
-FD93; [65 D6, 05, 18][65 C8, 05, 18][65 3A, 05, 18]
-FD94; [65 D6, 05, 18][65 C8, 05, 18][65 C8, 05, 18]
-FC53; [65 D6, 05, 30][65 EC, 05, 31]
-FC54; [65 D6, 05, 30][65 EE, 05, 33]
-
-06BE; [65 D8, 05, 05]
-FBAC; [65 D8, 05, 10]
-FBAD; [65 D8, 05, 1B]
-FBAB; [65 D8, 05, 26]
-FBAA; [65 D8, 05, 31]
-
-06C1; [65 DA, 05, 05]
-FBA8; [65 DA, 05, 10]
-FBA9; [65 DA, 05, 1B]
-FBA7; [65 DA, 05, 26]
-FBA6; [65 DA, 05, 31]
-06C2; [65 DA, 05, 05][, E8 B2, 05]
-
-06C3; [65 DC 02, 05, 05]
-
-06FF; [65 DC 09, 05, 05]
-
-06D5; [65 DC 10, 05, 05]
-06C0; [65 DC 10, 05, 05][, E8 B2, 05]
-FBA5; [65 DC 10, 05, 20][, E8 B2, 20]
-FBA4; [65 DC 10, 05, 2E][, E8 B2, 2E]
-
-0648; [65 DE, 05, 05]
-06E5; [65 DE, 05, 10]
-1EE05; [65 DE, 05, 1B]
-1EE85; [65 DE, 05, 1B]
-1EEA5; [65 DE, 05, 1B]
-FEEE; [65 DE, 05, 26]
-FEED; [65 DE, 05, 31]
-0676; [65 DE, 05, 10][65 06, 05, 20]
-FDF8; [65 DE, 05, 31][65 86, 05, 30][65 C4, 05, 30][65 C8, 05, 30]
-
-06C4; [65 E0, 05, 05]
-
-06C5; [65 E2 02, 05, 05]
-FBE1; [65 E2 02, 05, 20]
-FBE0; [65 E2 02, 05, 2E]
-
-06C6; [65 E2 09, 05, 05]
-FBDA; [65 E2 09, 05, 20]
-FBD9; [65 E2 09, 05, 2E]
-
-06C7; [65 E4, 05, 05]
-FBD8; [65 E4, 05, 1E]
-FBD7; [65 E4, 05, 2C]
-0677; [65 E4, 05, 10][65 06, 05, 20]
-FBDD; [65 E4, 05, 2C][65 06, 05, 2E]
-
-06C8; [65 E6, 05, 05]
-FBDC; [65 E6, 05, 20]
-FBDB; [65 E6, 05, 2E]
-
-06C9; [65 E8, 05, 05]
-FBE3; [65 E8, 05, 20]
-FBE2; [65 E8, 05, 2E]
-
-06CA; [65 EA 02, 05, 05]
-
-06CB; [65 EA 09, 05, 05]
-FBDF; [65 EA 09, 05, 20]
-FBDE; [65 EA 09, 05, 2E]
-
-08B1; [65 EA 10, 05, 05]
-
-06CF; [65 EA 17, 05, 05]
-
-0778; [65 EA 1E, 05, 05]
-
-0779; [65 EA 25, 05, 05]
-
-08AB; [65 EA 2C, 05, 05]
-
-0649; [65 EC, 05, 05]
-FBE8; [65 EC, 05, 10]
-FBE9; [65 EC, 05, 1B]
-FEF0; [65 EC, 05, 26]
-FEEF; [65 EC, 05, 31]
-FC90; [65 EC, 05, 26][, EB 82, 1E]
-FC5D; [65 EC, 05, 31][, EB 82, 2C]
-
-064A; [65 EE, 05, 05]
-06E6; [65 EE, 05, 10]
-1EE09; [65 EE, 05, 17]
-1EE29; [65 EE, 05, 17]
-1EE49; [65 EE, 05, 17]
-1EE69; [65 EE, 05, 17]
-1EE89; [65 EE, 05, 17]
-1EEA9; [65 EE, 05, 17]
-FEF3; [65 EE, 05, 1E]
-FEF4; [65 EE, 05, 25]
-FEF2; [65 EE, 05, 2C]
-FEF1; [65 EE, 05, 33]
-0678; [65 EE, 05, 10][65 06, 05, 20]
-FCDA; [65 EE, 05, 1E][65 3A, 05, 18]
-FC55; [65 EE, 05, 33][65 3A, 05, 30]
-FDAF; [65 EE, 05, 2C][65 3A, 05, 28][65 EE, 05, 2C]
-FCDB; [65 EE, 05, 1E][65 48, 05, 18]
-FC56; [65 EE, 05, 33][65 48, 05, 30]
-FDAE; [65 EE, 05, 2C][65 48, 05, 28][65 EE, 05, 2C]
-FCDC; [65 EE, 05, 1E][65 4A, 05, 18]
-FC57; [65 EE, 05, 33][65 4A, 05, 30]
-FC91; [65 EE, 05, 2C][65 6E, 05, 1E]
-FC92; [65 EE, 05, 2C][65 70, 05, 1E]
-FCDD; [65 EE, 05, 1E][65 C8, 05, 18]
-FCF0; [65 EE, 05, 25][65 C8, 05, 20]
-FC93; [65 EE, 05, 2C][65 C8, 05, 28]
-FC58; [65 EE, 05, 33][65 C8, 05, 30]
-FD9D; [65 EE, 05, 1E][65 C8, 05, 18][65 C8, 05, 18]
-FD9C; [65 EE, 05, 2C][65 C8, 05, 28][65 C8, 05, 28]
-FDB0; [65 EE, 05, 2C][65 C8, 05, 28][65 EE, 05, 2C]
-FC94; [65 EE, 05, 2C][65 CC, 05, 28]
-FCDE; [65 EE, 05, 1E][65 D6, 05, 18]
-FCF1; [65 EE, 05, 25][65 D6, 05, 20]
-FC95; [65 EE, 05, 2C][65 EC, 05, 26]
-FC59; [65 EE, 05, 33][65 EC, 05, 31]
-FC96; [65 EE, 05, 2C][65 EE, 05, 2C]
-FC5A; [65 EE, 05, 33][65 EE, 05, 33]
+121D; [67 8F DB, 05, 05]
-06CC; [65 F0, 05, 05]
-FBFE; [65 F0, 05, 10]
-FBFF; [65 F0, 05, 1B]
-FBFD; [65 F0, 05, 26]
-FBFC; [65 F0, 05, 31]
+121E; [67 8F E2, 05, 05]
-06CD; [65 F2, 05, 05]
+121F; [67 8F E9, 05, 05]
-06CE; [65 F4, 05, 05]
+1380; [67 8F F0, 05, 05]
-06D0; [65 F6, 05, 05]
-FBE6; [65 F6, 05, 10]
-FBE7; [65 F6, 05, 1B]
-FBE5; [65 F6, 05, 26]
-FBE4; [65 F6, 05, 31]
+1381; [67 8F F7, 05, 05]
-06D1; [65 F8 02, 05, 05]
+1382; [67 8F FE, 05, 05]
-063D; [65 F8 09, 05, 05]
+1383; [67 90 07, 05, 05]
-063E; [65 F8 10, 05, 05]
+2D81; [67 90 0E, 05, 05]
-063F; [65 F8 17, 05, 05]
+1220; [67 90 15, 05, 05]
-0620; [65 F8 1E, 05, 05]
+1221; [67 90 1C, 05, 05]
-0775; [65 F8 25, 05, 05]
+1222; [67 90 23, 05, 05]
-0776; [65 F8 2C, 05, 05]
+1223; [67 90 2A, 05, 05]
-0777; [65 F8 33, 05, 05]
+1224; [67 90 31, 05, 05]
-08BA; [65 F8 3A, 05, 05]
+1225; [67 90 38, 05, 05]
-06D2; [65 FA, 05, 05]
-FBAF; [65 FA, 05, 20]
-FBAE; [65 FA, 05, 2E]
-06D3; [65 FA, 05, 05][, E8 B2, 05]
-FBB1; [65 FA, 05, 20][, E8 B2, 20]
-FBB0; [65 FA, 05, 2E][, E8 B2, 2E]
+1226; [67 90 3F, 05, 05]
-077A; [65 FC 02, 05, 05]
+1227; [67 90 46, 05, 05]
-077B; [65 FC 09, 05, 05]
+1228; [67 90 4D, 05, 05]
-FDD1 0710; [66 04 02, 05, 05] # SYRIAC first primary starts new lead byte (compressible)
+1229; [67 90 54, 05, 05]
-0710; [66 04 09, 05, 05]
+122A; [67 90 5B, 05, 05]
-0712; [66 06, 05, 05]
-072D; [66 06, 70, 05]
+122B; [67 90 62, 05, 05]
-0713; [66 08, 05, 05]
-0714; [66 08, 70, 05]
-072E; [66 08, 78, 05]
+122C; [67 90 69, 05, 05]
-0716; [66 0A, 05, 05]
+122D; [67 90 70, 05, 05]
-0715; [66 0C, 05, 05]
-072F; [66 0C, 70, 05]
+122E; [67 90 77, 05, 05]
-0717; [66 0E 02, 05, 05]
+122F; [67 90 7E, 05, 05]
-0718; [66 0E 09, 05, 05]
+2D82; [67 90 85, 05, 05]
-0719; [66 0E 10, 05, 05]
+1230; [67 90 8C, 05, 05]
-074D; [66 0E 17, 05, 05]
+1231; [67 90 93, 05, 05]
-071A; [66 0E 1E, 05, 05]
+1232; [67 90 9A, 05, 05]
-071B; [66 10, 05, 05]
-071C; [66 10, 70, 05]
+1233; [67 90 A1, 05, 05]
-071D; [66 12 02, 05, 05]
+1234; [67 90 A8, 05, 05]
-071E; [66 12 09, 05, 05]
+1235; [67 90 AF, 05, 05]
-071F; [66 12 10, 05, 05]
+1236; [67 90 B6, 05, 05]
-074E; [66 12 17, 05, 05]
+1237; [67 90 BD, 05, 05]
-0720; [66 12 1E, 05, 05]
+2D83; [67 90 C4, 05, 05]
-0721; [66 12 25, 05, 05]
+AB01; [67 90 CB, 05, 05]
-0722; [66 12 2C, 05, 05]
+AB02; [67 90 D2, 05, 05]
-0723; [66 14, 05, 05]
-0724; [66 14, 05, 20]
+AB03; [67 90 D9, 05, 05]
-0725; [66 16, 05, 05]
+AB04; [67 90 E0, 05, 05]
-0726; [66 18, 05, 05]
-0727; [66 18, 70, 05]
+AB05; [67 90 E7, 05, 05]
-074F; [66 1A 02, 05, 05]
+AB06; [67 90 EE, 05, 05]
-0728; [66 1A 09, 05, 05]
+1238; [67 90 F5, 05, 05]
-0729; [66 1A 10, 05, 05]
+1239; [67 90 FC, 05, 05]
-072A; [66 1A 17, 05, 05]
+123A; [67 91 05, 05, 05]
-072B; [66 1A 1E, 05, 05]
+123B; [67 91 0C, 05, 05]
-072C; [66 1A 25, 05, 05]
+123C; [67 91 13, 05, 05]
-0860; [66 1A 2C, 05, 05]
+123D; [67 91 1A, 05, 05]
-0861; [66 1A 33, 05, 05]
+123E; [67 91 21, 05, 05]
-0862; [66 1A 3A, 05, 05]
+123F; [67 91 28, 05, 05]
-0863; [66 1A 41, 05, 05]
+2D84; [67 91 2F, 05, 05]
-0864; [66 1A 48, 05, 05]
+1240; [67 91 36, 05, 05]
-0865; [66 1A 4F, 05, 05]
+1241; [67 91 3D, 05, 05]
-0866; [66 1A 56, 05, 05]
+1242; [67 91 44, 05, 05]
-0867; [66 1A 5D, 05, 05]
+1243; [67 91 4B, 05, 05]
-0868; [66 1A 64, 05, 05]
+1244; [67 91 52, 05, 05]
-0869; [66 1A 6B, 05, 05]
+1245; [67 91 59, 05, 05]
-086A; [66 1A 72, 05, 05]
+1246; [67 91 60, 05, 05]
-FDD1 0840; [66 1B 02, 05, 05] # Mandaic first primary (compressible)
+1247; [67 91 67, 05, 05]
-0840; [66 1B 09, 05, 05]
+1248; [67 91 6E, 05, 05]
-0841; [66 1B 10, 05, 05]
+124A; [67 91 75, 05, 05]
-0842; [66 1B 17, 05, 05]
+124B; [67 91 7C, 05, 05]
-0843; [66 1B 1E, 05, 05]
+124C; [67 91 83, 05, 05]
-0844; [66 1B 25, 05, 05]
+124D; [67 91 8A, 05, 05]
-0845; [66 1B 2C, 05, 05]
+1250; [67 91 91, 05, 05]
-0846; [66 1B 33, 05, 05]
+1251; [67 91 98, 05, 05]
-0847; [66 1B 3A, 05, 05]
+1252; [67 91 9F, 05, 05]
-0848; [66 1B 41, 05, 05]
+1253; [67 91 A6, 05, 05]
-0849; [66 1B 48, 05, 05]
+1254; [67 91 AD, 05, 05]
-084A; [66 1B 4F, 05, 05]
+1255; [67 91 B4, 05, 05]
-084B; [66 1B 56, 05, 05]
+1256; [67 91 BB, 05, 05]
-084C; [66 1B 5D, 05, 05]
+1258; [67 91 C2, 05, 05]
-084D; [66 1B 64, 05, 05]
+125A; [67 91 C9, 05, 05]
-084E; [66 1B 6B, 05, 05]
+125B; [67 91 D0, 05, 05]
-084F; [66 1B 72, 05, 05]
+125C; [67 91 D7, 05, 05]
-0850; [66 1B 79, 05, 05]
+125D; [67 91 DE, 05, 05]
-0851; [66 1B 80, 05, 05]
+1260; [67 91 E5, 05, 05]
-0852; [66 1B 87, 05, 05]
+1261; [67 91 EC, 05, 05]
-0853; [66 1B 8E, 05, 05]
+1262; [67 91 F3, 05, 05]
-0854; [66 1B 95, 05, 05]
+1263; [67 91 FA, 05, 05]
-0855; [66 1B 9C, 05, 05]
+1264; [67 92 03, 05, 05]
-0856; [66 1B A3, 05, 05]
+1265; [67 92 0A, 05, 05]
-0857; [66 1B AA, 05, 05]
+1266; [67 92 11, 05, 05]
-0858; [66 1B B1, 05, 05]
+1267; [67 92 18, 05, 05]
-FDD1 078C; [66 1C 02, 05, 05] # THAANA first primary (compressible)
+1384; [67 92 1F, 05, 05]
-0780; [66 1E, 05, 05]
+1385; [67 92 26, 05, 05]
-0799; [66 20, 05, 05]
+1386; [67 92 2D, 05, 05]
-079A; [66 22, 05, 05]
+1387; [67 92 34, 05, 05]
-0781; [66 24, 05, 05]
+2D85; [67 92 3B, 05, 05]
-0782; [66 26, 05, 05]
+1268; [67 92 42, 05, 05]
-0783; [66 28, 05, 05]
+1269; [67 92 49, 05, 05]
-079C; [66 2A, 05, 05]
+126A; [67 92 50, 05, 05]
-0784; [66 2C, 05, 05]
+126B; [67 92 57, 05, 05]
-0785; [66 2E, 05, 05]
+126C; [67 92 5E, 05, 05]
-0786; [66 30, 05, 05]
+126D; [67 92 65, 05, 05]
-0787; [66 32, 05, 05]
+126E; [67 92 6C, 05, 05]
-07A2; [66 34, 05, 05]
+126F; [67 92 73, 05, 05]
-07A3; [66 36, 05, 05]
+1270; [67 92 7A, 05, 05]
-0788; [66 38, 05, 05]
+1271; [67 92 81, 05, 05]
-07A5; [66 3A, 05, 05]
+1272; [67 92 88, 05, 05]
-0789; [66 3C, 05, 05]
+1273; [67 92 8F, 05, 05]
-078A; [66 3E, 05, 05]
+1274; [67 92 96, 05, 05]
-078B; [66 40, 05, 05]
+1275; [67 92 9D, 05, 05]
-079B; [66 42, 05, 05]
+1276; [67 92 A4, 05, 05]
-078C; [66 44, 05, 05]
+1277; [67 92 AB, 05, 05]
-0798; [66 46, 05, 05]
+2D86; [67 92 B2, 05, 05]
-07A0; [66 48, 05, 05]
+1278; [67 92 B9, 05, 05]
-07A1; [66 4A, 05, 05]
+1279; [67 92 C0, 05, 05]
-078D; [66 4C, 05, 05]
+127A; [67 92 C7, 05, 05]
-078E; [66 4E, 05, 05]
+127B; [67 92 CE, 05, 05]
-07A4; [66 50, 05, 05]
+127C; [67 92 D5, 05, 05]
-078F; [66 52, 05, 05]
+127D; [67 92 DC, 05, 05]
-0790; [66 54, 05, 05]
+127E; [67 92 E3, 05, 05]
-079D; [66 56, 05, 05]
+127F; [67 92 EA, 05, 05]
-079E; [66 58, 05, 05]
+2D87; [67 92 F1, 05, 05]
-079F; [66 5A, 05, 05]
+1280; [67 92 F8, 05, 05]
-0791; [66 5C, 05, 05]
+1281; [67 92 FF, 05, 05]
-0792; [66 5E, 05, 05]
+1282; [67 93 08, 05, 05]
-0793; [66 60, 05, 05]
+1283; [67 93 0F, 05, 05]
-0794; [66 62, 05, 05]
+1284; [67 93 16, 05, 05]
-0795; [66 64, 05, 05]
+1285; [67 93 1D, 05, 05]
-0796; [66 66, 05, 05]
+1286; [67 93 24, 05, 05]
-0797; [66 68, 05, 05]
+1287; [67 93 2B, 05, 05]
-07B1; [66 6A, 05, 05]
+1288; [67 93 32, 05, 05]
-07A6; [66 6C, 05, 05]
+128A; [67 93 39, 05, 05]
-07A7; [66 6E, 05, 05]
+128B; [67 93 40, 05, 05]
-07A8; [66 70, 05, 05]
+128C; [67 93 47, 05, 05]
-07A9; [66 72, 05, 05]
+128D; [67 93 4E, 05, 05]
-07AA; [66 74, 05, 05]
+1290; [67 93 55, 05, 05]
-07AB; [66 76, 05, 05]
+1291; [67 93 5C, 05, 05]
-07AC; [66 78, 05, 05]
+1292; [67 93 63, 05, 05]
-07AD; [66 7A, 05, 05]
+1293; [67 93 6A, 05, 05]
-07AE; [66 7C, 05, 05]
+1294; [67 93 71, 05, 05]
-07AF; [66 7E, 05, 05]
+1295; [67 93 78, 05, 05]
-07B0; [66 80, 05, 05]
+1296; [67 93 7F, 05, 05]
-FDD1 07CA; [66 82 02, 05, 05] # Nko first primary (compressible)
+1297; [67 93 86, 05, 05]
-07CA; [66 82 09, 05, 05]
+2D88; [67 93 8D, 05, 05]
-07CB; [66 82 10, 05, 05]
+1298; [67 93 94, 05, 05]
-07CC; [66 82 17, 05, 05]
+1299; [67 93 9B, 05, 05]
-07CD; [66 82 1E, 05, 05]
+129A; [67 93 A2, 05, 05]
-07CE; [66 82 25, 05, 05]
+129B; [67 93 A9, 05, 05]
-07CF; [66 82 2C, 05, 05]
+129C; [67 93 B0, 05, 05]
-07D0; [66 82 33, 05, 05]
+129D; [67 93 B7, 05, 05]
-07D1; [66 82 3A, 05, 05]
+129E; [67 93 BE, 05, 05]
-07D2; [66 82 41, 05, 05]
+129F; [67 93 C5, 05, 05]
-07D3; [66 82 48, 05, 05]
+2D89; [67 93 CC, 05, 05]
-07D4; [66 82 4F, 05, 05]
+12A0; [67 93 D3, 05, 05]
-07D5; [66 82 56, 05, 05]
+12A1; [67 93 DA, 05, 05]
-07D6; [66 84, 05, 05]
-07E8; [66 84, 70, 05]
+12A2; [67 93 E1, 05, 05]
-07D7; [66 86, 05, 05]
-07E9; [66 86, 70, 05]
+12A3; [67 93 E8, 05, 05]
-07D8; [66 88, 05, 05]
+12A4; [67 93 EF, 05, 05]
-07D9; [66 8A, 05, 05]
-07EA; [66 8A, 70, 05]
+12A5; [67 93 F6, 05, 05]
-07DA; [66 8C 02, 05, 05]
+12A6; [67 93 FD, 05, 05]
-07DB; [66 8C 09, 05, 05]
+12A7; [67 94 06, 05, 05]
-07DC; [66 8C 10, 05, 05]
+2D8A; [67 94 0D, 05, 05]
-07DD; [66 8C 17, 05, 05]
+12A8; [67 94 14, 05, 05]
-07DE; [66 8C 1E, 05, 05]
+12A9; [67 94 1B, 05, 05]
-07DF; [66 8C 25, 05, 05]
+12AA; [67 94 22, 05, 05]
-07E0; [66 8C 2C, 05, 05]
+12AB; [67 94 29, 05, 05]
-07E1; [66 8C 33, 05, 05]
+12AC; [67 94 30, 05, 05]
-07E2; [66 8C 3A, 05, 05]
+12AD; [67 94 37, 05, 05]
-07E3; [66 8C 41, 05, 05]
+12AE; [67 94 3E, 05, 05]
-07E4; [66 8C 48, 05, 05]
+12AF; [67 94 45, 05, 05]
-07E5; [66 8C 4F, 05, 05]
+12B0; [67 94 4C, 05, 05]
-07E6; [66 8C 56, 05, 05]
+12B2; [67 94 53, 05, 05]
-07E7; [66 8C 5D, 05, 05]
+12B3; [67 94 5A, 05, 05]
-07F4; [66 8C 64, 05, 05]
+12B4; [67 94 61, 05, 05]
-07F5; [66 8C 6B, 05, 05]
+12B5; [67 94 68, 05, 05]
-FDD1 2D30; [66 8D 02, 05, 05] # TIFINAGH first primary (compressible)
+12B8; [67 94 6F, 05, 05]
-2D30; [66 8D 09, 05, 05]
+12B9; [67 94 76, 05, 05]
-2D31; [66 8D 10, 05, 05]
+12BA; [67 94 7D, 05, 05]
-2D32; [66 8D 17, 05, 05]
+12BB; [67 94 84, 05, 05]
-2D33; [66 8D 1E, 05, 05]
+12BC; [67 94 8B, 05, 05]
-2D34; [66 8D 25, 05, 05]
+12BD; [67 94 92, 05, 05]
-2D35; [66 8D 2C, 05, 05]
+12BE; [67 94 99, 05, 05]
-2D36; [66 8D 33, 05, 05]
+12C0; [67 94 A0, 05, 05]
-2D37; [66 8D 3A, 05, 05]
+12C2; [67 94 A7, 05, 05]
-2D38; [66 8D 41, 05, 05]
+12C3; [67 94 AE, 05, 05]
-2D39; [66 8D 48, 05, 05]
+12C4; [67 94 B5, 05, 05]
-2D3A; [66 8D 4F, 05, 05]
+12C5; [67 94 BC, 05, 05]
-2D3B; [66 8D 56, 05, 05]
+12C8; [67 94 C3, 05, 05]
-2D66; [66 8D 5D, 05, 05]
+12C9; [67 94 CA, 05, 05]
-2D3C; [66 8D 64, 05, 05]
+12CA; [67 94 D1, 05, 05]
-2D3D; [66 8D 6B, 05, 05]
+12CB; [67 94 D8, 05, 05]
-2D3E; [66 8D 72, 05, 05]
+12CC; [67 94 DF, 05, 05]
-2D3F; [66 8D 79, 05, 05]
+12CD; [67 94 E6, 05, 05]
-2D40; [66 8D 80, 05, 05]
+12CE; [67 94 ED, 05, 05]
-2D41; [66 8D 87, 05, 05]
+12CF; [67 94 F4, 05, 05]
-2D42; [66 8D 8E, 05, 05]
+12D0; [67 94 FB, 05, 05]
-2D43; [66 8D 95, 05, 05]
+12D1; [67 95 04, 05, 05]
-2D44; [66 8D 9C, 05, 05]
+12D2; [67 95 0B, 05, 05]
-2D45; [66 8D A3, 05, 05]
+12D3; [67 95 12, 05, 05]
-2D46; [66 8D AA, 05, 05]
+12D4; [67 95 19, 05, 05]
-2D47; [66 8D B1, 05, 05]
+12D5; [67 95 20, 05, 05]
-2D48; [66 8D B8, 05, 05]
+12D6; [67 95 27, 05, 05]
-2D49; [66 8D BF, 05, 05]
+12D8; [67 95 2E, 05, 05]
-2D4A; [66 8D C6, 05, 05]
+12D9; [67 95 35, 05, 05]
-2D4B; [66 8D CD, 05, 05]
+12DA; [67 95 3C, 05, 05]
-2D4C; [66 8D D4, 05, 05]
+12DB; [67 95 43, 05, 05]
-2D4D; [66 8D DB, 05, 05]
+12DC; [67 95 4A, 05, 05]
-2D4E; [66 8D E2, 05, 05]
+12DD; [67 95 51, 05, 05]
-2D4F; [66 8D E9, 05, 05]
+12DE; [67 95 58, 05, 05]
-2D50; [66 8D F0, 05, 05]
+12DF; [67 95 5F, 05, 05]
-2D51; [66 8D F7, 05, 05]
+2D8B; [67 95 66, 05, 05]
-2D52; [66 8D FE, 05, 05]
+AB11; [67 95 6D, 05, 05]
-2D53; [66 8E 07, 05, 05]
+AB12; [67 95 74, 05, 05]
-2D67; [66 8E 0E, 05, 05]
+AB13; [67 95 7B, 05, 05]
-2D54; [66 8E 15, 05, 05]
+AB14; [67 95 82, 05, 05]
-2D55; [66 8E 1C, 05, 05]
+AB15; [67 95 89, 05, 05]
-2D56; [66 8E 23, 05, 05]
+AB16; [67 95 90, 05, 05]
-2D57; [66 8E 2A, 05, 05]
+12E0; [67 95 97, 05, 05]
-2D58; [66 8E 31, 05, 05]
+12E1; [67 95 9E, 05, 05]
-2D59; [66 8E 38, 05, 05]
+12E2; [67 95 A5, 05, 05]
-2D5A; [66 8E 3F, 05, 05]
+12E3; [67 95 AC, 05, 05]
-2D5B; [66 8E 46, 05, 05]
+12E4; [67 95 B3, 05, 05]
-2D5C; [66 8E 4D, 05, 05]
+12E5; [67 95 BA, 05, 05]
-2D5D; [66 8E 54, 05, 05]
+12E6; [67 95 C1, 05, 05]
-2D5E; [66 8E 5B, 05, 05]
+12E7; [67 95 C8, 05, 05]
-2D5F; [66 8E 62, 05, 05]
+12E8; [67 95 CF, 05, 05]
-2D60; [66 8E 69, 05, 05]
+12E9; [67 95 D6, 05, 05]
-2D61; [66 8E 70, 05, 05]
+12EA; [67 95 DD, 05, 05]
-2D62; [66 8E 77, 05, 05]
+12EB; [67 95 E4, 05, 05]
-2D63; [66 8E 7E, 05, 05]
+12EC; [67 95 EB, 05, 05]
-2D64; [66 8E 85, 05, 05]
+12ED; [67 95 F2, 05, 05]
-2D65; [66 8E 8C, 05, 05]
+12EE; [67 95 F9, 05, 05]
-2D6F; [66 8E 93, 05, 05]
+12EF; [67 96 02, 05, 05]
-FDD1 12A0; [66 8F 02, 05, 05] # ETHIOPIC first primary (compressible)
+12F0; [67 96 09, 05, 05]
-1200; [66 8F 09, 05, 05]
+12F1; [67 96 10, 05, 05]
-1201; [66 8F 10, 05, 05]
+12F2; [67 96 17, 05, 05]
-1202; [66 8F 17, 05, 05]
+12F3; [67 96 1E, 05, 05]
-1203; [66 8F 1E, 05, 05]
+12F4; [67 96 25, 05, 05]
-1204; [66 8F 25, 05, 05]
+12F5; [67 96 2C, 05, 05]
-1205; [66 8F 2C, 05, 05]
+12F6; [67 96 33, 05, 05]
-1206; [66 8F 33, 05, 05]
+12F7; [67 96 3A, 05, 05]
-1207; [66 8F 3A, 05, 05]
+2D8C; [67 96 41, 05, 05]
-1208; [66 8F 41, 05, 05]
+AB09; [67 96 48, 05, 05]
-1209; [66 8F 48, 05, 05]
+AB0A; [67 96 4F, 05, 05]
-120A; [66 8F 4F, 05, 05]
+AB0B; [67 96 56, 05, 05]
-120B; [66 8F 56, 05, 05]
+AB0C; [67 96 5D, 05, 05]
-120C; [66 8F 5D, 05, 05]
+AB0D; [67 96 64, 05, 05]
-120D; [66 8F 64, 05, 05]
+AB0E; [67 96 6B, 05, 05]
-120E; [66 8F 6B, 05, 05]
+12F8; [67 96 72, 05, 05]
-120F; [66 8F 72, 05, 05]
+12F9; [67 96 79, 05, 05]
-2D80; [66 8F 79, 05, 05]
+12FA; [67 96 80, 05, 05]
-1210; [66 8F 80, 05, 05]
+12FB; [67 96 87, 05, 05]
-1211; [66 8F 87, 05, 05]
+12FC; [67 96 8E, 05, 05]
-1212; [66 8F 8E, 05, 05]
+12FD; [67 96 95, 05, 05]
-1213; [66 8F 95, 05, 05]
+12FE; [67 96 9C, 05, 05]
-1214; [66 8F 9C, 05, 05]
+12FF; [67 96 A3, 05, 05]
-1215; [66 8F A3, 05, 05]
+2D8D; [67 96 AA, 05, 05]
-1216; [66 8F AA, 05, 05]
+1300; [67 96 B1, 05, 05]
-1217; [66 8F B1, 05, 05]
+1301; [67 96 B8, 05, 05]
-1218; [66 8F B8, 05, 05]
+1302; [67 96 BF, 05, 05]
-1219; [66 8F BF, 05, 05]
+1303; [67 96 C6, 05, 05]
-121A; [66 8F C6, 05, 05]
+1304; [67 96 CD, 05, 05]
-121B; [66 8F CD, 05, 05]
+1305; [67 96 D4, 05, 05]
-121C; [66 8F D4, 05, 05]
+1306; [67 96 DB, 05, 05]
-121D; [66 8F DB, 05, 05]
+1307; [67 96 E2, 05, 05]
-121E; [66 8F E2, 05, 05]
+2D8E; [67 96 E9, 05, 05]
-121F; [66 8F E9, 05, 05]
+1308; [67 96 F0, 05, 05]
-1380; [66 8F F0, 05, 05]
+1309; [67 96 F7, 05, 05]
-1381; [66 8F F7, 05, 05]
+130A; [67 96 FE, 05, 05]
-1382; [66 8F FE, 05, 05]
+130B; [67 97 07, 05, 05]
-1383; [66 90 07, 05, 05]
+130C; [67 97 0E, 05, 05]
-2D81; [66 90 0E, 05, 05]
+130D; [67 97 15, 05, 05]
-1220; [66 90 15, 05, 05]
+130E; [67 97 1C, 05, 05]
-1221; [66 90 1C, 05, 05]
+130F; [67 97 23, 05, 05]
-1222; [66 90 23, 05, 05]
+1310; [67 97 2A, 05, 05]
-1223; [66 90 2A, 05, 05]
+1312; [67 97 31, 05, 05]
-1224; [66 90 31, 05, 05]
+1313; [67 97 38, 05, 05]
-1225; [66 90 38, 05, 05]
+1314; [67 97 3F, 05, 05]
-1226; [66 90 3F, 05, 05]
+1315; [67 97 46, 05, 05]
-1227; [66 90 46, 05, 05]
+1318; [67 97 4D, 05, 05]
-1228; [66 90 4D, 05, 05]
+1319; [67 97 54, 05, 05]
-1229; [66 90 54, 05, 05]
+131A; [67 97 5B, 05, 05]
-122A; [66 90 5B, 05, 05]
+131B; [67 97 62, 05, 05]
-122B; [66 90 62, 05, 05]
+131C; [67 97 69, 05, 05]
-122C; [66 90 69, 05, 05]
+131D; [67 97 70, 05, 05]
-122D; [66 90 70, 05, 05]
+131E; [67 97 77, 05, 05]
-122E; [66 90 77, 05, 05]
+131F; [67 97 7E, 05, 05]
-122F; [66 90 7E, 05, 05]
+2D93; [67 97 85, 05, 05]
-2D82; [66 90 85, 05, 05]
+2D94; [67 97 8C, 05, 05]
-1230; [66 90 8C, 05, 05]
+2D95; [67 97 93, 05, 05]
-1231; [66 90 93, 05, 05]
+2D96; [67 97 9A, 05, 05]
-1232; [66 90 9A, 05, 05]
+1320; [67 97 A1, 05, 05]
-1233; [66 90 A1, 05, 05]
+1321; [67 97 A8, 05, 05]
-1234; [66 90 A8, 05, 05]
+1322; [67 97 AF, 05, 05]
-1235; [66 90 AF, 05, 05]
+1323; [67 97 B6, 05, 05]
-1236; [66 90 B6, 05, 05]
+1324; [67 97 BD, 05, 05]
-1237; [66 90 BD, 05, 05]
+1325; [67 97 C4, 05, 05]
-2D83; [66 90 C4, 05, 05]
+1326; [67 97 CB, 05, 05]
-AB01; [66 90 CB, 05, 05]
+1327; [67 97 D2, 05, 05]
-AB02; [66 90 D2, 05, 05]
+2D8F; [67 97 D9, 05, 05]
-AB03; [66 90 D9, 05, 05]
+1328; [67 97 E0, 05, 05]
-AB04; [66 90 E0, 05, 05]
+1329; [67 97 E7, 05, 05]
-AB05; [66 90 E7, 05, 05]
+132A; [67 97 EE, 05, 05]
-AB06; [66 90 EE, 05, 05]
+132B; [67 97 F5, 05, 05]
-1238; [66 90 F5, 05, 05]
+132C; [67 97 FC, 05, 05]
-1239; [66 90 FC, 05, 05]
+132D; [67 98 05, 05, 05]
-123A; [66 91 05, 05, 05]
+132E; [67 98 0C, 05, 05]
-123B; [66 91 0C, 05, 05]
+132F; [67 98 13, 05, 05]
-123C; [66 91 13, 05, 05]
+2D90; [67 98 1A, 05, 05]
-123D; [66 91 1A, 05, 05]
+AB20; [67 98 21, 05, 05]
-123E; [66 91 21, 05, 05]
+AB21; [67 98 28, 05, 05]
-123F; [66 91 28, 05, 05]
+AB22; [67 98 2F, 05, 05]
-2D84; [66 91 2F, 05, 05]
+AB23; [67 98 36, 05, 05]
-1240; [66 91 36, 05, 05]
+AB24; [67 98 3D, 05, 05]
-1241; [66 91 3D, 05, 05]
+AB25; [67 98 44, 05, 05]
-1242; [66 91 44, 05, 05]
+AB26; [67 98 4B, 05, 05]
-1243; [66 91 4B, 05, 05]
+1330; [67 98 52, 05, 05]
-1244; [66 91 52, 05, 05]
+1331; [67 98 59, 05, 05]
-1245; [66 91 59, 05, 05]
+1332; [67 98 60, 05, 05]
-1246; [66 91 60, 05, 05]
+1333; [67 98 67, 05, 05]
-1247; [66 91 67, 05, 05]
+1334; [67 98 6E, 05, 05]
-1248; [66 91 6E, 05, 05]
+1335; [67 98 75, 05, 05]
-124A; [66 91 75, 05, 05]
+1336; [67 98 7C, 05, 05]
-124B; [66 91 7C, 05, 05]
+1337; [67 98 83, 05, 05]
-124C; [66 91 83, 05, 05]
+2D91; [67 98 8A, 05, 05]
-124D; [66 91 8A, 05, 05]
+1338; [67 98 91, 05, 05]
-1250; [66 91 91, 05, 05]
+1339; [67 98 98, 05, 05]
-1251; [66 91 98, 05, 05]
+133A; [67 98 9F, 05, 05]
-1252; [66 91 9F, 05, 05]
+133B; [67 98 A6, 05, 05]
-1253; [66 91 A6, 05, 05]
+133C; [67 98 AD, 05, 05]
-1254; [66 91 AD, 05, 05]
+133D; [67 98 B4, 05, 05]
-1255; [66 91 B4, 05, 05]
+133E; [67 98 BB, 05, 05]
-1256; [66 91 BB, 05, 05]
+133F; [67 98 C2, 05, 05]
-1258; [66 91 C2, 05, 05]
+AB28; [67 98 C9, 05, 05]
-125A; [66 91 C9, 05, 05]
+AB29; [67 98 D0, 05, 05]
-125B; [66 91 D0, 05, 05]
+AB2A; [67 98 D7, 05, 05]
-125C; [66 91 D7, 05, 05]
+AB2B; [67 98 DE, 05, 05]
-125D; [66 91 DE, 05, 05]
+AB2C; [67 98 E5, 05, 05]
-1260; [66 91 E5, 05, 05]
+AB2D; [67 98 EC, 05, 05]
-1261; [66 91 EC, 05, 05]
+AB2E; [67 98 F3, 05, 05]
-1262; [66 91 F3, 05, 05]
+1340; [67 98 FA, 05, 05]
-1263; [66 91 FA, 05, 05]
+1341; [67 99 03, 05, 05]
-1264; [66 92 03, 05, 05]
+1342; [67 99 0A, 05, 05]
-1265; [66 92 0A, 05, 05]
+1343; [67 99 11, 05, 05]
-1266; [66 92 11, 05, 05]
+1344; [67 99 18, 05, 05]
-1267; [66 92 18, 05, 05]
+1345; [67 99 1F, 05, 05]
-1384; [66 92 1F, 05, 05]
+1346; [67 99 26, 05, 05]
-1385; [66 92 26, 05, 05]
+1347; [67 99 2D, 05, 05]
-1386; [66 92 2D, 05, 05]
+1348; [67 99 34, 05, 05]
-1387; [66 92 34, 05, 05]
+1349; [67 99 3B, 05, 05]
-2D85; [66 92 3B, 05, 05]
+134A; [67 99 42, 05, 05]
-1268; [66 92 42, 05, 05]
+134B; [67 99 49, 05, 05]
-1269; [66 92 49, 05, 05]
+134C; [67 99 50, 05, 05]
-126A; [66 92 50, 05, 05]
+134D; [67 99 57, 05, 05]
-126B; [66 92 57, 05, 05]
+134E; [67 99 5E, 05, 05]
-126C; [66 92 5E, 05, 05]
+134F; [67 99 65, 05, 05]
-126D; [66 92 65, 05, 05]
+1388; [67 99 6C, 05, 05]
-126E; [66 92 6C, 05, 05]
+1389; [67 99 73, 05, 05]
-126F; [66 92 73, 05, 05]
+138A; [67 99 7A, 05, 05]
-1270; [66 92 7A, 05, 05]
+138B; [67 99 81, 05, 05]
-1271; [66 92 81, 05, 05]
+1350; [67 99 88, 05, 05]
-1272; [66 92 88, 05, 05]
+1351; [67 99 8F, 05, 05]
-1273; [66 92 8F, 05, 05]
+1352; [67 99 96, 05, 05]
-1274; [66 92 96, 05, 05]
+1353; [67 99 9D, 05, 05]
-1275; [66 92 9D, 05, 05]
+1354; [67 99 A4, 05, 05]
-1276; [66 92 A4, 05, 05]
+1355; [67 99 AB, 05, 05]
-1277; [66 92 AB, 05, 05]
+1356; [67 99 B2, 05, 05]
-2D86; [66 92 B2, 05, 05]
+1357; [67 99 B9, 05, 05]
-1278; [66 92 B9, 05, 05]
+138C; [67 99 C0, 05, 05]
-1279; [66 92 C0, 05, 05]
+138D; [67 99 C7, 05, 05]
-127A; [66 92 C7, 05, 05]
+138E; [67 99 CE, 05, 05]
-127B; [66 92 CE, 05, 05]
+138F; [67 99 D5, 05, 05]
-127C; [66 92 D5, 05, 05]
+2D92; [67 99 DC, 05, 05]
-127D; [66 92 DC, 05, 05]
+1358; [67 99 E3, 05, 05]
-127E; [66 92 E3, 05, 05]
+1359; [67 99 EA, 05, 05]
-127F; [66 92 EA, 05, 05]
+135A; [67 99 F1, 05, 05]
-2D87; [66 92 F1, 05, 05]
+2DA0; [67 99 F8, 05, 05]
-1280; [66 92 F8, 05, 05]
+2DA1; [67 99 FF, 05, 05]
-1281; [66 92 FF, 05, 05]
+2DA2; [67 9A 08, 05, 05]
-1282; [66 93 08, 05, 05]
+2DA3; [67 9A 0F, 05, 05]
-1283; [66 93 0F, 05, 05]
+2DA4; [67 9A 16, 05, 05]
-1284; [66 93 16, 05, 05]
+2DA5; [67 9A 1D, 05, 05]
-1285; [66 93 1D, 05, 05]
+2DA6; [67 9A 24, 05, 05]
-1286; [66 93 24, 05, 05]
+2DA8; [67 9A 2B, 05, 05]
-1287; [66 93 2B, 05, 05]
+2DA9; [67 9A 32, 05, 05]
-1288; [66 93 32, 05, 05]
+2DAA; [67 9A 39, 05, 05]
-128A; [66 93 39, 05, 05]
+2DAB; [67 9A 40, 05, 05]
-128B; [66 93 40, 05, 05]
+2DAC; [67 9A 47, 05, 05]
-128C; [66 93 47, 05, 05]
+2DAD; [67 9A 4E, 05, 05]
-128D; [66 93 4E, 05, 05]
+2DAE; [67 9A 55, 05, 05]
-1290; [66 93 55, 05, 05]
+2DB0; [67 9A 5C, 05, 05]
-1291; [66 93 5C, 05, 05]
+2DB1; [67 9A 63, 05, 05]
-1292; [66 93 63, 05, 05]
+2DB2; [67 9A 6A, 05, 05]
-1293; [66 93 6A, 05, 05]
+2DB3; [67 9A 71, 05, 05]
-1294; [66 93 71, 05, 05]
+2DB4; [67 9A 78, 05, 05]
-1295; [66 93 78, 05, 05]
+2DB5; [67 9A 7F, 05, 05]
-1296; [66 93 7F, 05, 05]
+2DB6; [67 9A 86, 05, 05]
-1297; [66 93 86, 05, 05]
+2DB8; [67 9A 8D, 05, 05]
-2D88; [66 93 8D, 05, 05]
+2DB9; [67 9A 94, 05, 05]
-1298; [66 93 94, 05, 05]
+2DBA; [67 9A 9B, 05, 05]
-1299; [66 93 9B, 05, 05]
+2DBB; [67 9A A2, 05, 05]
-129A; [66 93 A2, 05, 05]
+2DBC; [67 9A A9, 05, 05]
-129B; [66 93 A9, 05, 05]
+2DBD; [67 9A B0, 05, 05]
-129C; [66 93 B0, 05, 05]
+2DBE; [67 9A B7, 05, 05]
-129D; [66 93 B7, 05, 05]
+2DC0; [67 9A BE, 05, 05]
-129E; [66 93 BE, 05, 05]
+2DC1; [67 9A C5, 05, 05]
-129F; [66 93 C5, 05, 05]
+2DC2; [67 9A CC, 05, 05]
-2D89; [66 93 CC, 05, 05]
+2DC3; [67 9A D3, 05, 05]
-12A0; [66 93 D3, 05, 05]
+2DC4; [67 9A DA, 05, 05]
-12A1; [66 93 DA, 05, 05]
+2DC5; [67 9A E1, 05, 05]
-12A2; [66 93 E1, 05, 05]
+2DC6; [67 9A E8, 05, 05]
-12A3; [66 93 E8, 05, 05]
+2DC8; [67 9A EF, 05, 05]
-12A4; [66 93 EF, 05, 05]
+2DC9; [67 9A F6, 05, 05]
-12A5; [66 93 F6, 05, 05]
+2DCA; [67 9A FD, 05, 05]
-12A6; [66 93 FD, 05, 05]
+2DCB; [67 9B 06, 05, 05]
-12A7; [66 94 06, 05, 05]
+2DCC; [67 9B 0D, 05, 05]
-2D8A; [66 94 0D, 05, 05]
+2DCD; [67 9B 14, 05, 05]
-12A8; [66 94 14, 05, 05]
+2DCE; [67 9B 1B, 05, 05]
-12A9; [66 94 1B, 05, 05]
+2DD0; [67 9B 22, 05, 05]
-12AA; [66 94 22, 05, 05]
+2DD1; [67 9B 29, 05, 05]
-12AB; [66 94 29, 05, 05]
+2DD2; [67 9B 30, 05, 05]
-12AC; [66 94 30, 05, 05]
+2DD3; [67 9B 37, 05, 05]
-12AD; [66 94 37, 05, 05]
+2DD4; [67 9B 3E, 05, 05]
-12AE; [66 94 3E, 05, 05]
+2DD5; [67 9B 45, 05, 05]
-12AF; [66 94 45, 05, 05]
+2DD6; [67 9B 4C, 05, 05]
-12B0; [66 94 4C, 05, 05]
+2DD8; [67 9B 53, 05, 05]
-12B2; [66 94 53, 05, 05]
+2DD9; [67 9B 5A, 05, 05]
-12B3; [66 94 5A, 05, 05]
+2DDA; [67 9B 61, 05, 05]
-12B4; [66 94 61, 05, 05]
+2DDB; [67 9B 68, 05, 05]
-12B5; [66 94 68, 05, 05]
+2DDC; [67 9B 6F, 05, 05]
-12B8; [66 94 6F, 05, 05]
+2DDD; [67 9B 76, 05, 05]
-12B9; [66 94 76, 05, 05]
+2DDE; [67 9B 7D, 05, 05]
-12BA; [66 94 7D, 05, 05]
+FDD1 0905; [68 04 02, 05, 05] # DEVANAGARI first primary starts new lead byte (compressible)
-12BB; [66 94 84, 05, 05]
+0950; [68 06, 05, 05]
-12BC; [66 94 8B, 05, 05]
+A8FD; [68 08, 05, 05]
-12BD; [66 94 92, 05, 05]
+0972; [68 0A, 05, 05]
-12BE; [66 94 99, 05, 05]
+0904; [68 0C, 05, 05]
-12C0; [66 94 A0, 05, 05]
+0905; [68 0E, 05, 05]
-12C2; [66 94 A7, 05, 05]
+0906; [68 10, 05, 05]
-12C3; [66 94 AE, 05, 05]
+0973; [68 12, 05, 05]
-12C4; [66 94 B5, 05, 05]
+0974; [68 14, 05, 05]
-12C5; [66 94 BC, 05, 05]
+0975; [68 16, 05, 05]
-12C8; [66 94 C3, 05, 05]
+0976; [68 18, 05, 05]
-12C9; [66 94 CA, 05, 05]
+0977; [68 1A, 05, 05]
-12CA; [66 94 D1, 05, 05]
+0907; [68 1C, 05, 05]
-12CB; [66 94 D8, 05, 05]
+0908; [68 1E, 05, 05]
-12CC; [66 94 DF, 05, 05]
+0909; [68 20, 05, 05]
-12CD; [66 94 E6, 05, 05]
+090A; [68 22, 05, 05]
-12CE; [66 94 ED, 05, 05]
+090B; [68 24, 05, 05]
-12CF; [66 94 F4, 05, 05]
+0960; [68 26, 05, 05]
-12D0; [66 94 FB, 05, 05]
+090C; [68 28, 05, 05]
-12D1; [66 95 04, 05, 05]
+0961; [68 2A, 05, 05]
-12D2; [66 95 0B, 05, 05]
+090D; [68 2C, 05, 05]
-12D3; [66 95 12, 05, 05]
+090E; [68 2E, 05, 05]
-12D4; [66 95 19, 05, 05]
+090F; [68 30, 05, 05]
-12D5; [66 95 20, 05, 05]
+0910; [68 32, 05, 05]
-12D6; [66 95 27, 05, 05]
+A8FE; [68 34, 05, 05]
-12D8; [66 95 2E, 05, 05]
+0911; [68 36, 05, 05]
-12D9; [66 95 35, 05, 05]
+0912; [68 38, 05, 05]
-12DA; [66 95 3C, 05, 05]
+0913; [68 3A, 05, 05]
-12DB; [66 95 43, 05, 05]
+0914; [68 3C, 05, 05]
-12DC; [66 95 4A, 05, 05]
+0915; [68 3E, 05, 05]
+0958; [68 3E, 05, 05][, F1 22, 05]
-12DD; [66 95 51, 05, 05]
+0916; [68 40, 05, 05]
+0959; [68 40, 05, 05][, F1 22, 05]
-12DE; [66 95 58, 05, 05]
+0917; [68 42, 05, 05]
+095A; [68 42, 05, 05][, F1 22, 05]
-12DF; [66 95 5F, 05, 05]
+097B; [68 44, 05, 05]
-2D8B; [66 95 66, 05, 05]
+0918; [68 46, 05, 05]
-AB11; [66 95 6D, 05, 05]
+0919; [68 48, 05, 05]
-AB12; [66 95 74, 05, 05]
+091A; [68 4A, 05, 05]
-AB13; [66 95 7B, 05, 05]
+091B; [68 4C, 05, 05]
-AB14; [66 95 82, 05, 05]
+091C; [68 4E, 05, 05]
+095B; [68 4E, 05, 05][, F1 22, 05]
-AB15; [66 95 89, 05, 05]
+0979; [68 50, 05, 05]
-AB16; [66 95 90, 05, 05]
+097C; [68 52, 05, 05]
-12E0; [66 95 97, 05, 05]
+091D; [68 54, 05, 05]
-12E1; [66 95 9E, 05, 05]
+091E; [68 56, 05, 05]
-12E2; [66 95 A5, 05, 05]
+091F; [68 58, 05, 05]
-12E3; [66 95 AC, 05, 05]
+0920; [68 5A, 05, 05]
-12E4; [66 95 B3, 05, 05]
+0978; [68 5C, 05, 05]
-12E5; [66 95 BA, 05, 05]
+0921; [68 5E, 05, 05]
+095C; [68 5E, 05, 05][, F1 22, 05]
-12E6; [66 95 C1, 05, 05]
+097E; [68 60, 05, 05]
-12E7; [66 95 C8, 05, 05]
+0922; [68 62, 05, 05]
+095D; [68 62, 05, 05][, F1 22, 05]
-12E8; [66 95 CF, 05, 05]
+0923; [68 64, 05, 05]
-12E9; [66 95 D6, 05, 05]
+0924; [68 66, 05, 05]
-12EA; [66 95 DD, 05, 05]
+0925; [68 68, 05, 05]
-12EB; [66 95 E4, 05, 05]
+0926; [68 6A, 05, 05]
-12EC; [66 95 EB, 05, 05]
+0927; [68 6C, 05, 05]
-12ED; [66 95 F2, 05, 05]
+0928; [68 6E, 05, 05]
+0929; [68 6E, 05, 05][, F1 22, 05]
-12EE; [66 95 F9, 05, 05]
+092A; [68 70, 05, 05]
-12EF; [66 96 02, 05, 05]
+092B; [68 72, 05, 05]
+095E; [68 72, 05, 05][, F1 22, 05]
-12F0; [66 96 09, 05, 05]
+092C; [68 74, 05, 05]
-12F1; [66 96 10, 05, 05]
+097F; [68 76, 05, 05]
-12F2; [66 96 17, 05, 05]
+092D; [68 78, 05, 05]
-12F3; [66 96 1E, 05, 05]
+092E; [68 7A, 05, 05]
-12F4; [66 96 25, 05, 05]
+092F; [68 7C, 05, 05]
+095F; [68 7C, 05, 05][, F1 22, 05]
-12F5; [66 96 2C, 05, 05]
+097A; [68 7E, 05, 05]
-12F6; [66 96 33, 05, 05]
+0930; [68 80, 05, 05]
+0931; [68 80, 05, 05][, F1 22, 05]
-12F7; [66 96 3A, 05, 05]
+0932; [68 82, 05, 05]
-2D8C; [66 96 41, 05, 05]
+0933; [68 84, 05, 05]
+0934; [68 84, 05, 05][, F1 22, 05]
-AB09; [66 96 48, 05, 05]
+0935; [68 86, 05, 05]
-AB0A; [66 96 4F, 05, 05]
+0936; [68 88, 05, 05]
-AB0B; [66 96 56, 05, 05]
+0937; [68 8A, 05, 05]
-AB0C; [66 96 5D, 05, 05]
+0938; [68 8C, 05, 05]
-AB0D; [66 96 64, 05, 05]
+0939; [68 8E, 05, 05]
-AB0E; [66 96 6B, 05, 05]
+093D; [68 90, 05, 05]
-12F8; [66 96 72, 05, 05]
+097D; [68 92, 05, 05]
-12F9; [66 96 79, 05, 05]
+1CE9; [68 94, 05, 05]
+1CEA; [68 94, 05, 20]
+1CEB; [68 94, 05, 20]
+1CEC; [68 94, 05, 20]
+1CEE; [68 94, 05, 20]
+1CEF; [68 94, 05, 20]
+1CF0; [68 94, 05, 20]
+1CF1; [68 94, 05, 20]
-12FA; [66 96 80, 05, 05]
+1CF5; [68 96, 05, 05]
-12FB; [66 96 87, 05, 05]
+1CF6; [68 98, 05, 05]
-12FC; [66 96 8E, 05, 05]
+A8F2; [68 9A, 05, 05]
+A8F3; [68 9A, 05, 20]
+A8F4; [68 9A, 05, 20]
+A8F5; [68 9A, 05, 20]
+A8F6; [68 9A, 05, 20]
+A8F7; [68 9A, 05, 20]
-12FD; [66 96 95, 05, 05]
+A8FB; [68 9C, 05, 05]
-12FE; [66 96 9C, 05, 05]
+093E; [68 9E, 05, 05]
-12FF; [66 96 A3, 05, 05]
+093A; [68 A0, 05, 05]
-2D8D; [66 96 AA, 05, 05]
+093B; [68 A2, 05, 05]
-1300; [66 96 B1, 05, 05]
+094F; [68 A4, 05, 05]
-1301; [66 96 B8, 05, 05]
+0956; [68 A6, 05, 05]
-1302; [66 96 BF, 05, 05]
+0957; [68 A8, 05, 05]
-1303; [66 96 C6, 05, 05]
+093F; [68 AA, 05, 05]
-1304; [66 96 CD, 05, 05]
+0940; [68 AC, 05, 05]
-1305; [66 96 D4, 05, 05]
+0941; [68 AE, 05, 05]
-1306; [66 96 DB, 05, 05]
+0942; [68 B0, 05, 05]
-1307; [66 96 E2, 05, 05]
+0943; [68 B2, 05, 05]
-2D8E; [66 96 E9, 05, 05]
+0944; [68 B4, 05, 05]
-1308; [66 96 F0, 05, 05]
+0962; [68 B6, 05, 05]
-1309; [66 96 F7, 05, 05]
+0963; [68 B8, 05, 05]
-130A; [66 96 FE, 05, 05]
+0945; [68 BA, 05, 05]
-130B; [66 97 07, 05, 05]
+0955; [68 BC, 05, 05]
-130C; [66 97 0E, 05, 05]
+0946; [68 BE, 05, 05]
-130D; [66 97 15, 05, 05]
+0947; [68 C0, 05, 05]
-130E; [66 97 1C, 05, 05]
+094E; [68 C2, 05, 05]
-130F; [66 97 23, 05, 05]
+0948; [68 C4, 05, 05]
-1310; [66 97 2A, 05, 05]
+A8FF; [68 C6, 05, 05]
-1312; [66 97 31, 05, 05]
+0949; [68 C8, 05, 05]
-1313; [66 97 38, 05, 05]
+094A; [68 CA, 05, 05]
-1314; [66 97 3F, 05, 05]
+094B; [68 CC, 05, 05]
-1315; [66 97 46, 05, 05]
+094C; [68 CE, 05, 05]
-1318; [66 97 4D, 05, 05]
+094D; [68 D0, 05, 05]
-1319; [66 97 54, 05, 05]
+FDD1 0995; [69 04 02, 05, 05] # BENGALI first primary starts new lead byte (compressible)
-131A; [66 97 5B, 05, 05]
+0980; [69 06, 05, 05]
-131B; [66 97 62, 05, 05]
+0985; [69 08, 05, 05]
-131C; [66 97 69, 05, 05]
+0986; [69 0A, 05, 05]
-131D; [66 97 70, 05, 05]
+0987; [69 0C, 05, 05]
-131E; [66 97 77, 05, 05]
+0988; [69 0E, 05, 05]
-131F; [66 97 7E, 05, 05]
+0989; [69 10, 05, 05]
-2D93; [66 97 85, 05, 05]
+098A; [69 12, 05, 05]
-2D94; [66 97 8C, 05, 05]
+098B; [69 14, 05, 05]
-2D95; [66 97 93, 05, 05]
+09E0; [69 16, 05, 05]
-2D96; [66 97 9A, 05, 05]
+098C; [69 18, 05, 05]
-1320; [66 97 A1, 05, 05]
+09E1; [69 1A, 05, 05]
-1321; [66 97 A8, 05, 05]
+098F; [69 1C, 05, 05]
-1322; [66 97 AF, 05, 05]
+0990; [69 1E, 05, 05]
-1323; [66 97 B6, 05, 05]
+0993; [69 20, 05, 05]
-1324; [66 97 BD, 05, 05]
+0994; [69 22, 05, 05]
-1325; [66 97 C4, 05, 05]
+0995; [69 24, 05, 05]
-1326; [66 97 CB, 05, 05]
+0996; [69 26, 05, 05]
-1327; [66 97 D2, 05, 05]
+0997; [69 28, 05, 05]
-2D8F; [66 97 D9, 05, 05]
+0998; [69 2A, 05, 05]
-1328; [66 97 E0, 05, 05]
+0999; [69 2C, 05, 05]
-1329; [66 97 E7, 05, 05]
+099A; [69 2E, 05, 05]
-132A; [66 97 EE, 05, 05]
+099B; [69 30, 05, 05]
-132B; [66 97 F5, 05, 05]
+099C; [69 32, 05, 05]
-132C; [66 97 FC, 05, 05]
+099D; [69 34, 05, 05]
-132D; [66 98 05, 05, 05]
+099E; [69 36, 05, 05]
-132E; [66 98 0C, 05, 05]
+099F; [69 38, 05, 05]
-132F; [66 98 13, 05, 05]
+09A0; [69 3A, 05, 05]
-2D90; [66 98 1A, 05, 05]
+09A1; [69 3C, 05, 05]
+09DC; [69 3C, 05, 05][, F1 22, 05]
-AB20; [66 98 21, 05, 05]
+09A2; [69 3E, 05, 05]
+09DD; [69 3E, 05, 05][, F1 22, 05]
-AB21; [66 98 28, 05, 05]
+09A3; [69 40, 05, 05]
-AB22; [66 98 2F, 05, 05]
+09A4; [69 42, 05, 05]
+09CE; [69 42, 05, 20][69 84, 05, 20]
-AB23; [66 98 36, 05, 05]
+09A5; [69 44, 05, 05]
-AB24; [66 98 3D, 05, 05]
+09A6; [69 46, 05, 05]
-AB25; [66 98 44, 05, 05]
+09A7; [69 48, 05, 05]
-AB26; [66 98 4B, 05, 05]
+09A8; [69 4A, 05, 05]
-1330; [66 98 52, 05, 05]
+09AA; [69 4C, 05, 05]
-1331; [66 98 59, 05, 05]
+09AB; [69 4E, 05, 05]
-1332; [66 98 60, 05, 05]
+09AC; [69 50, 05, 05]
-1333; [66 98 67, 05, 05]
+09AD; [69 52, 05, 05]
-1334; [66 98 6E, 05, 05]
+09AE; [69 54, 05, 05]
-1335; [66 98 75, 05, 05]
+09AF; [69 56, 05, 05]
+09DF; [69 56, 05, 05][, F1 22, 05]
-1336; [66 98 7C, 05, 05]
+09B0; [69 58, 05, 05]
-1337; [66 98 83, 05, 05]
+09F0; [69 5A, 05, 05]
-2D91; [66 98 8A, 05, 05]
+09B2; [69 5C, 05, 05]
-1338; [66 98 91, 05, 05]
+09F1; [69 5E, 05, 05]
-1339; [66 98 98, 05, 05]
+09B6; [69 60, 05, 05]
-133A; [66 98 9F, 05, 05]
+09B7; [69 62, 05, 05]
-133B; [66 98 A6, 05, 05]
+09B8; [69 64, 05, 05]
-133C; [66 98 AD, 05, 05]
+09B9; [69 66, 05, 05]
-133D; [66 98 B4, 05, 05]
+09BD; [69 68, 05, 05]
-133E; [66 98 BB, 05, 05]
+09BE; [69 6A, 05, 05]
-133F; [66 98 C2, 05, 05]
+09BF; [69 6C, 05, 05]
-AB28; [66 98 C9, 05, 05]
+09C0; [69 6E, 05, 05]
-AB29; [66 98 D0, 05, 05]
+09C1; [69 70, 05, 05]
-AB2A; [66 98 D7, 05, 05]
+09C2; [69 72, 05, 05]
-AB2B; [66 98 DE, 05, 05]
+09C3; [69 74, 05, 05]
-AB2C; [66 98 E5, 05, 05]
+09C4; [69 76, 05, 05]
-AB2D; [66 98 EC, 05, 05]
+09E2; [69 78, 05, 05]
-AB2E; [66 98 F3, 05, 05]
+09E3; [69 7A, 05, 05]
-1340; [66 98 FA, 05, 05]
+09C7; [69 7C, 05, 05]
-1341; [66 99 03, 05, 05]
+09C8; [69 7E, 05, 05]
-1342; [66 99 0A, 05, 05]
+09C7 09BE; [69 80, 05, 05]
+09CB; [69 80, 05, 05]
-1343; [66 99 11, 05, 05]
+09C7 09D7; [69 82, 05, 05]
+09CC; [69 82, 05, 05]
-1344; [66 99 18, 05, 05]
+09CD; [69 84, 05, 05]
-1345; [66 99 1F, 05, 05]
+09D7; [69 86, 05, 05]
-1346; [66 99 26, 05, 05]
+09FC; [69 88, 05, 05]
-1347; [66 99 2D, 05, 05]
+FDD1 0A15; [6A 04 02, 05, 05] # GURMUKHI first primary starts new lead byte (compressible)
-1348; [66 99 34, 05, 05]
+0A74; [6A 06, 05, 05]
-1349; [66 99 3B, 05, 05]
+0A73; [6A 08, 05, 05]
-134A; [66 99 42, 05, 05]
+0A09; [6A 0A, 05, 05]
-134B; [66 99 49, 05, 05]
+0A0A; [6A 0C, 05, 05]
-134C; [66 99 50, 05, 05]
+0A13; [6A 0E, 05, 05]
-134D; [66 99 57, 05, 05]
+0A05; [6A 10, 05, 05]
-134E; [66 99 5E, 05, 05]
+0A06; [6A 12, 05, 05]
-134F; [66 99 65, 05, 05]
+0A10; [6A 14, 05, 05]
-1388; [66 99 6C, 05, 05]
+0A14; [6A 16, 05, 05]
-1389; [66 99 73, 05, 05]
+0A72; [6A 18, 05, 05]
-138A; [66 99 7A, 05, 05]
+0A07; [6A 1A, 05, 05]
-138B; [66 99 81, 05, 05]
+0A08; [6A 1C, 05, 05]
-1350; [66 99 88, 05, 05]
+0A0F; [6A 1E, 05, 05]
-1351; [66 99 8F, 05, 05]
+0A38; [6A 20, 05, 05]
+0A36; [6A 20, 05, 05][, F1 22, 05]
-1352; [66 99 96, 05, 05]
+0A39; [6A 22, 05, 05]
-1353; [66 99 9D, 05, 05]
+0A51; [6A 24, 05, 05]
-1354; [66 99 A4, 05, 05]
+0A15; [6A 26, 05, 05]
-1355; [66 99 AB, 05, 05]
+0A16; [6A 28, 05, 05]
+0A59; [6A 28, 05, 05][, F1 22, 05]
-1356; [66 99 B2, 05, 05]
+0A17; [6A 2A, 05, 05]
+0A5A; [6A 2A, 05, 05][, F1 22, 05]
-1357; [66 99 B9, 05, 05]
+0A18; [6A 2C, 05, 05]
-138C; [66 99 C0, 05, 05]
+0A19; [6A 2E, 05, 05]
-138D; [66 99 C7, 05, 05]
+0A1A; [6A 30, 05, 05]
-138E; [66 99 CE, 05, 05]
+0A1B; [6A 32, 05, 05]
-138F; [66 99 D5, 05, 05]
+0A1C; [6A 34, 05, 05]
+0A5B; [6A 34, 05, 05][, F1 22, 05]
-2D92; [66 99 DC, 05, 05]
+0A1D; [6A 36, 05, 05]
-1358; [66 99 E3, 05, 05]
+0A1E; [6A 38, 05, 05]
-1359; [66 99 EA, 05, 05]
+0A1F; [6A 3A, 05, 05]
-135A; [66 99 F1, 05, 05]
+0A20; [6A 3C, 05, 05]
-2DA0; [66 99 F8, 05, 05]
+0A21; [6A 3E, 05, 05]
-2DA1; [66 99 FF, 05, 05]
+0A22; [6A 40, 05, 05]
-2DA2; [66 9A 08, 05, 05]
+0A23; [6A 42, 05, 05]
-2DA3; [66 9A 0F, 05, 05]
+0A24; [6A 44, 05, 05]
-2DA4; [66 9A 16, 05, 05]
+0A25; [6A 46, 05, 05]
-2DA5; [66 9A 1D, 05, 05]
+0A26; [6A 48, 05, 05]
-2DA6; [66 9A 24, 05, 05]
+0A27; [6A 4A, 05, 05]
-2DA8; [66 9A 2B, 05, 05]
+0A28; [6A 4C, 05, 05]
-2DA9; [66 9A 32, 05, 05]
+0A2A; [6A 4E, 05, 05]
-2DAA; [66 9A 39, 05, 05]
+0A2B; [6A 50, 05, 05]
+0A5E; [6A 50, 05, 05][, F1 22, 05]
-2DAB; [66 9A 40, 05, 05]
+0A2C; [6A 52, 05, 05]
-2DAC; [66 9A 47, 05, 05]
+0A2D; [6A 54, 05, 05]
-2DAD; [66 9A 4E, 05, 05]
+0A2E; [6A 56, 05, 05]
-2DAE; [66 9A 55, 05, 05]
+0A2F; [6A 58, 05, 05]
-2DB0; [66 9A 5C, 05, 05]
+0A75; [6A 5A, 05, 05]
-2DB1; [66 9A 63, 05, 05]
+0A30; [6A 5C, 05, 05]
-2DB2; [66 9A 6A, 05, 05]
+0A32; [6A 5E, 05, 05]
+0A33; [6A 5E, 05, 05][, F1 22, 05]
-2DB3; [66 9A 71, 05, 05]
+0A35; [6A 60, 05, 05]
-2DB4; [66 9A 78, 05, 05]
+0A5C; [6A 62, 05, 05]
-2DB5; [66 9A 7F, 05, 05]
+0A3E; [6A 64, 05, 05]
-2DB6; [66 9A 86, 05, 05]
+0A3F; [6A 66, 05, 05]
-2DB8; [66 9A 8D, 05, 05]
+0A40; [6A 68, 05, 05]
-2DB9; [66 9A 94, 05, 05]
+0A41; [6A 6A, 05, 05]
-2DBA; [66 9A 9B, 05, 05]
+0A42; [6A 6C, 05, 05]
-2DBB; [66 9A A2, 05, 05]
+0A47; [6A 6E, 05, 05]
-2DBC; [66 9A A9, 05, 05]
+0A48; [6A 70, 05, 05]
-2DBD; [66 9A B0, 05, 05]
+0A4B; [6A 72, 05, 05]
-2DBE; [66 9A B7, 05, 05]
+0A4C; [6A 74, 05, 05]
-2DC0; [66 9A BE, 05, 05]
+0A4D; [6A 76, 05, 05]
-2DC1; [66 9A C5, 05, 05]
+FDD1 0A95; [6B 04 02, 05, 05] # GUJARATI first primary starts new lead byte (compressible)
-2DC2; [66 9A CC, 05, 05]
+0AD0; [6B 06, 05, 05]
-2DC3; [66 9A D3, 05, 05]
+0A85; [6B 08, 05, 05]
-2DC4; [66 9A DA, 05, 05]
+0A86; [6B 0A, 05, 05]
-2DC5; [66 9A E1, 05, 05]
+0A87; [6B 0C, 05, 05]
-2DC6; [66 9A E8, 05, 05]
+0A88; [6B 0E, 05, 05]
-2DC8; [66 9A EF, 05, 05]
+0A89; [6B 10, 05, 05]
-2DC9; [66 9A F6, 05, 05]
+0A8A; [6B 12, 05, 05]
-2DCA; [66 9A FD, 05, 05]
+0A8B; [6B 14, 05, 05]
-2DCB; [66 9B 06, 05, 05]
+0AE0; [6B 16, 05, 05]
-2DCC; [66 9B 0D, 05, 05]
+0A8C; [6B 18, 05, 05]
-2DCD; [66 9B 14, 05, 05]
+0AE1; [6B 1A, 05, 05]
-2DCE; [66 9B 1B, 05, 05]
+0A8D; [6B 1C, 05, 05]
-2DD0; [66 9B 22, 05, 05]
+0A8F; [6B 1E, 05, 05]
-2DD1; [66 9B 29, 05, 05]
+0A90; [6B 20, 05, 05]
-2DD2; [66 9B 30, 05, 05]
+0A91; [6B 22, 05, 05]
-2DD3; [66 9B 37, 05, 05]
+0A93; [6B 24, 05, 05]
-2DD4; [66 9B 3E, 05, 05]
+0A94; [6B 26, 05, 05]
-2DD5; [66 9B 45, 05, 05]
+0A95; [6B 28, 05, 05]
-2DD6; [66 9B 4C, 05, 05]
+0A96; [6B 2A, 05, 05]
-2DD8; [66 9B 53, 05, 05]
+0A97; [6B 2C, 05, 05]
-2DD9; [66 9B 5A, 05, 05]
+0A98; [6B 2E, 05, 05]
-2DDA; [66 9B 61, 05, 05]
+0A99; [6B 30, 05, 05]
-2DDB; [66 9B 68, 05, 05]
+0A9A; [6B 32, 05, 05]
-2DDC; [66 9B 6F, 05, 05]
+0A9B; [6B 34, 05, 05]
-2DDD; [66 9B 76, 05, 05]
+0A9C; [6B 36, 05, 05]
-2DDE; [66 9B 7D, 05, 05]
+0AF9; [6B 38, 05, 05]
-FDD1 0905; [67 04 02, 05, 05] # DEVANAGARI first primary starts new lead byte (compressible)
+0A9D; [6B 3A, 05, 05]
-0950; [67 06, 05, 05]
+0A9E; [6B 3C, 05, 05]
-A8FD; [67 08, 05, 05]
+0A9F; [6B 3E, 05, 05]
-0972; [67 0A, 05, 05]
+0AA0; [6B 40, 05, 05]
-0904; [67 0C, 05, 05]
+0AA1; [6B 42, 05, 05]
-0905; [67 0E, 05, 05]
+0AA2; [6B 44, 05, 05]
-0906; [67 10, 05, 05]
+0AA3; [6B 46, 05, 05]
-0973; [67 12, 05, 05]
+0AA4; [6B 48, 05, 05]
-0974; [67 14, 05, 05]
+0AA5; [6B 4A, 05, 05]
-0975; [67 16, 05, 05]
+0AA6; [6B 4C, 05, 05]
-0976; [67 18, 05, 05]
+0AA7; [6B 4E, 05, 05]
-0977; [67 1A, 05, 05]
+0AA8; [6B 50, 05, 05]
-0907; [67 1C, 05, 05]
+0AAA; [6B 52, 05, 05]
-0908; [67 1E, 05, 05]
+0AAB; [6B 54, 05, 05]
-0909; [67 20, 05, 05]
+0AAC; [6B 56, 05, 05]
-090A; [67 22, 05, 05]
+0AAD; [6B 58, 05, 05]
-090B; [67 24, 05, 05]
+0AAE; [6B 5A, 05, 05]
-0960; [67 26, 05, 05]
+0AAF; [6B 5C, 05, 05]
-090C; [67 28, 05, 05]
+0AB0; [6B 5E, 05, 05]
-0961; [67 2A, 05, 05]
+0AB2; [6B 60, 05, 05]
-090D; [67 2C, 05, 05]
+0AB5; [6B 62, 05, 05]
-090E; [67 2E, 05, 05]
+0AB6; [6B 64, 05, 05]
-090F; [67 30, 05, 05]
+0AB7; [6B 66, 05, 05]
-0910; [67 32, 05, 05]
+0AB8; [6B 68, 05, 05]
-0911; [67 34, 05, 05]
+0AB9; [6B 6A, 05, 05]
-0912; [67 36, 05, 05]
+0AB3; [6B 6C, 05, 05]
-0913; [67 38, 05, 05]
+0ABD; [6B 6E, 05, 05]
-0914; [67 3A, 05, 05]
+0ABE; [6B 70, 05, 05]
-0915; [67 3C, 05, 05]
-0958; [67 3C, 05, 05][, F1 22, 05]
+0ABF; [6B 72, 05, 05]
-0916; [67 3E, 05, 05]
-0959; [67 3E, 05, 05][, F1 22, 05]
+0AC0; [6B 74, 05, 05]
-0917; [67 40, 05, 05]
-095A; [67 40, 05, 05][, F1 22, 05]
+0AC1; [6B 76, 05, 05]
-097B; [67 42, 05, 05]
+0AC2; [6B 78, 05, 05]
-0918; [67 44, 05, 05]
+0AC3; [6B 7A, 05, 05]
-0919; [67 46, 05, 05]
+0AC4; [6B 7C, 05, 05]
-091A; [67 48, 05, 05]
+0AE2; [6B 7E, 05, 05]
-091B; [67 4A, 05, 05]
+0AE3; [6B 80, 05, 05]
-091C; [67 4C, 05, 05]
-095B; [67 4C, 05, 05][, F1 22, 05]
+0AC5; [6B 82, 05, 05]
-0979; [67 4E, 05, 05]
+0AC7; [6B 84, 05, 05]
-097C; [67 50, 05, 05]
+0AC8; [6B 86, 05, 05]
-091D; [67 52, 05, 05]
+0AC9; [6B 88, 05, 05]
-091E; [67 54, 05, 05]
+0ACB; [6B 8A, 05, 05]
-091F; [67 56, 05, 05]
+0ACC; [6B 8C, 05, 05]
-0920; [67 58, 05, 05]
+0ACD; [6B 8E, 05, 05]
-0978; [67 5A, 05, 05]
+FDD1 0B15; [6C 04 02, 05, 05] # ORIYA first primary starts new lead byte (compressible)
-0921; [67 5C, 05, 05]
-095C; [67 5C, 05, 05][, F1 22, 05]
+0B05; [6C 06, 05, 05]
-097E; [67 5E, 05, 05]
+0B06; [6C 08, 05, 05]
-0922; [67 60, 05, 05]
-095D; [67 60, 05, 05][, F1 22, 05]
+0B07; [6C 0A, 05, 05]
-0923; [67 62, 05, 05]
+0B08; [6C 0C, 05, 05]
-0924; [67 64, 05, 05]
+0B09; [6C 0E, 05, 05]
-0925; [67 66, 05, 05]
+0B0A; [6C 10, 05, 05]
-0926; [67 68, 05, 05]
+0B0B; [6C 12, 05, 05]
-0927; [67 6A, 05, 05]
+0B60; [6C 14, 05, 05]
-0928; [67 6C, 05, 05]
-0929; [67 6C, 05, 05][, F1 22, 05]
+0B0C; [6C 16, 05, 05]
-092A; [67 6E, 05, 05]
+0B61; [6C 18, 05, 05]
-092B; [67 70, 05, 05]
-095E; [67 70, 05, 05][, F1 22, 05]
+0B0F; [6C 1A, 05, 05]
-092C; [67 72, 05, 05]
+0B10; [6C 1C, 05, 05]
-097F; [67 74, 05, 05]
+0B13; [6C 1E, 05, 05]
-092D; [67 76, 05, 05]
+0B14; [6C 20, 05, 05]
-092E; [67 78, 05, 05]
+0B15; [6C 22, 05, 05]
-092F; [67 7A, 05, 05]
-095F; [67 7A, 05, 05][, F1 22, 05]
+0B16; [6C 24, 05, 05]
-097A; [67 7C, 05, 05]
+0B17; [6C 26, 05, 05]
-0930; [67 7E, 05, 05]
-0931; [67 7E, 05, 05][, F1 22, 05]
+0B18; [6C 28, 05, 05]
-0932; [67 80, 05, 05]
+0B19; [6C 2A, 05, 05]
-0933; [67 82, 05, 05]
-0934; [67 82, 05, 05][, F1 22, 05]
+0B1A; [6C 2C, 05, 05]
-0935; [67 84, 05, 05]
+0B1B; [6C 2E, 05, 05]
-0936; [67 86, 05, 05]
+0B1C; [6C 30, 05, 05]
-0937; [67 88, 05, 05]
+0B1D; [6C 32, 05, 05]
-0938; [67 8A, 05, 05]
+0B1E; [6C 34, 05, 05]
-0939; [67 8C, 05, 05]
+0B1F; [6C 36, 05, 05]
-093D; [67 8E, 05, 05]
+0B20; [6C 38, 05, 05]
-097D; [67 90, 05, 05]
+0B21; [6C 3A, 05, 05]
+0B5C; [6C 3A, 05, 05][, F1 22, 05]
-1CE9; [67 92, 05, 05]
-1CEA; [67 92, 05, 20]
-1CEB; [67 92, 05, 20]
-1CEC; [67 92, 05, 20]
-1CEE; [67 92, 05, 20]
-1CEF; [67 92, 05, 20]
-1CF0; [67 92, 05, 20]
-1CF1; [67 92, 05, 20]
+0B22; [6C 3C, 05, 05]
+0B5D; [6C 3C, 05, 05][, F1 22, 05]
-1CF5; [67 94, 05, 05]
+0B23; [6C 3E, 05, 05]
-1CF6; [67 96, 05, 05]
+0B24; [6C 40, 05, 05]
-A8F2; [67 98, 05, 05]
-A8F3; [67 98, 05, 20]
-A8F4; [67 98, 05, 20]
-A8F5; [67 98, 05, 20]
-A8F6; [67 98, 05, 20]
-A8F7; [67 98, 05, 20]
+0B25; [6C 42, 05, 05]
-A8FB; [67 9A, 05, 05]
+0B26; [6C 44, 05, 05]
-093E; [67 9C, 05, 05]
+0B27; [6C 46, 05, 05]
-093A; [67 9E, 05, 05]
+0B28; [6C 48, 05, 05]
-093B; [67 A0, 05, 05]
+0B2A; [6C 4A, 05, 05]
-094F; [67 A2, 05, 05]
+0B2B; [6C 4C, 05, 05]
-0956; [67 A4, 05, 05]
+0B2C; [6C 4E, 05, 05]
-0957; [67 A6, 05, 05]
+0B2D; [6C 50, 05, 05]
-093F; [67 A8, 05, 05]
+0B2E; [6C 52, 05, 05]
-0940; [67 AA, 05, 05]
+0B2F; [6C 54, 05, 05]
-0941; [67 AC, 05, 05]
+0B5F; [6C 56, 05, 05]
-0942; [67 AE, 05, 05]
+0B30; [6C 58, 05, 05]
-0943; [67 B0, 05, 05]
+0B32; [6C 5A, 05, 05]
-0944; [67 B2, 05, 05]
+0B33; [6C 5C, 05, 05]
-0962; [67 B4, 05, 05]
+0B35; [6C 5E, 05, 05]
-0963; [67 B6, 05, 05]
+0B71; [6C 60, 05, 05]
-0945; [67 B8, 05, 05]
+0B36; [6C 62, 05, 05]
-0955; [67 BA, 05, 05]
+0B37; [6C 64, 05, 05]
-0946; [67 BC, 05, 05]
+0B38; [6C 66, 05, 05]
-0947; [67 BE, 05, 05]
+0B39; [6C 68, 05, 05]
-094E; [67 C0, 05, 05]
+0B3D; [6C 6A, 05, 05]
-0948; [67 C2, 05, 05]
+0B3E; [6C 6C, 05, 05]
-0949; [67 C4, 05, 05]
+0B3F; [6C 6E, 05, 05]
-094A; [67 C6, 05, 05]
+0B40; [6C 70, 05, 05]
-094B; [67 C8, 05, 05]
+0B41; [6C 72, 05, 05]
-094C; [67 CA, 05, 05]
+0B42; [6C 74, 05, 05]
-094D; [67 CC, 05, 05]
+0B43; [6C 76, 05, 05]
-FDD1 0995; [68 04 02, 05, 05] # BENGALI first primary starts new lead byte (compressible)
+0B44; [6C 78, 05, 05]
-0980; [68 06, 05, 05]
+0B62; [6C 7A, 05, 05]
-0985; [68 08, 05, 05]
+0B63; [6C 7C, 05, 05]
-0986; [68 0A, 05, 05]
+0B47; [6C 7E, 05, 05]
-0987; [68 0C, 05, 05]
+0B47 0B56; [6C 80, 05, 05]
+0B48; [6C 80, 05, 05]
-0988; [68 0E, 05, 05]
+0B47 0B3E; [6C 82, 05, 05]
+0B4B; [6C 82, 05, 05]
-0989; [68 10, 05, 05]
+0B47 0B57; [6C 84, 05, 05]
+0B4C; [6C 84, 05, 05]
-098A; [68 12, 05, 05]
+0B4D; [6C 86, 05, 05]
-098B; [68 14, 05, 05]
+0B56; [6C 88, 05, 05]
-09E0; [68 16, 05, 05]
+0B57; [6C 8A, 05, 05]
-098C; [68 18, 05, 05]
+FDD1 0B95; [6D 04 02, 05, 05] # TAMIL first primary starts new lead byte (compressible)
-09E1; [68 1A, 05, 05]
+0BD0; [6D 06, 05, 05]
-098F; [68 1C, 05, 05]
+0B85; [6D 08, 05, 05]
-0990; [68 1E, 05, 05]
+0B86; [6D 0A, 05, 05]
-0993; [68 20, 05, 05]
+0B87; [6D 0C, 05, 05]
-0994; [68 22, 05, 05]
+0B88; [6D 0E, 05, 05]
-0995; [68 24, 05, 05]
+0B89; [6D 10, 05, 05]
-0996; [68 26, 05, 05]
+0B8A; [6D 12, 05, 05]
-0997; [68 28, 05, 05]
+0B8E; [6D 14, 05, 05]
-0998; [68 2A, 05, 05]
+0B8F; [6D 16, 05, 05]
-0999; [68 2C, 05, 05]
+0B90; [6D 18, 05, 05]
-099A; [68 2E, 05, 05]
+0B92; [6D 1A, 05, 05]
-099B; [68 30, 05, 05]
+0B93; [6D 1C, 05, 05]
-099C; [68 32, 05, 05]
+0B92 0BD7; [6D 1E, 05, 05]
+0B94; [6D 1E, 05, 05]
-099D; [68 34, 05, 05]
+0B83; [6D 20, 05, 05]
-099E; [68 36, 05, 05]
+0B95; [6D 22, 05, 05]
-099F; [68 38, 05, 05]
+0B99; [6D 24, 05, 05]
-09A0; [68 3A, 05, 05]
+0B9A; [6D 26, 05, 05]
-09A1; [68 3C, 05, 05]
-09DC; [68 3C, 05, 05][, F1 22, 05]
+0B9E; [6D 28, 05, 05]
-09A2; [68 3E, 05, 05]
-09DD; [68 3E, 05, 05][, F1 22, 05]
+0B9F; [6D 2A, 05, 05]
-09A3; [68 40, 05, 05]
+0BA3; [6D 2C, 05, 05]
-09A4; [68 42, 05, 05]
-09CE; [68 42, 05, 20][68 84, 05, 20]
+0BA4; [6D 2E, 05, 05]
-09A5; [68 44, 05, 05]
+0BA8; [6D 30, 05, 05]
-09A6; [68 46, 05, 05]
+0BAA; [6D 32, 05, 05]
-09A7; [68 48, 05, 05]
+0BAE; [6D 34, 05, 05]
-09A8; [68 4A, 05, 05]
+0BAF; [6D 36, 05, 05]
-09AA; [68 4C, 05, 05]
+0BB0; [6D 38, 05, 05]
-09AB; [68 4E, 05, 05]
+0BB2; [6D 3A, 05, 05]
-09AC; [68 50, 05, 05]
+0BB5; [6D 3C, 05, 05]
-09AD; [68 52, 05, 05]
+0BB4; [6D 3E, 05, 05]
-09AE; [68 54, 05, 05]
+0BB3; [6D 40, 05, 05]
-09AF; [68 56, 05, 05]
-09DF; [68 56, 05, 05][, F1 22, 05]
+0BB1; [6D 42, 05, 05]
-09B0; [68 58, 05, 05]
+0BA9; [6D 44, 05, 05]
-09F0; [68 5A, 05, 05]
+0B9C; [6D 46, 05, 05]
-09B2; [68 5C, 05, 05]
+0BB6; [6D 48, 05, 05]
-09F1; [68 5E, 05, 05]
+0BB7; [6D 4A, 05, 05]
-09B6; [68 60, 05, 05]
+0BB8; [6D 4C, 05, 05]
-09B7; [68 62, 05, 05]
+0BB9; [6D 4E, 05, 05]
-09B8; [68 64, 05, 05]
+0BBE; [6D 50, 05, 05]
-09B9; [68 66, 05, 05]
+0BBF; [6D 52, 05, 05]
-09BD; [68 68, 05, 05]
+0BC0; [6D 54, 05, 05]
-09BE; [68 6A, 05, 05]
+0BC1; [6D 56, 05, 05]
-09BF; [68 6C, 05, 05]
+0BC2; [6D 58, 05, 05]
-09C0; [68 6E, 05, 05]
+0BC6; [6D 5A, 05, 05]
-09C1; [68 70, 05, 05]
+0BC7; [6D 5C, 05, 05]
-09C2; [68 72, 05, 05]
+0BC8; [6D 5E, 05, 05]
-09C3; [68 74, 05, 05]
+0BC6 0BBE; [6D 60, 05, 05]
+0BCA; [6D 60, 05, 05]
-09C4; [68 76, 05, 05]
+0BC7 0BBE; [6D 62, 05, 05]
+0BCB; [6D 62, 05, 05]
-09E2; [68 78, 05, 05]
+0BC6 0BD7; [6D 64, 05, 05]
+0BCC; [6D 64, 05, 05]
-09E3; [68 7A, 05, 05]
+0BCD; [6D 66, 05, 05]
-09C7; [68 7C, 05, 05]
+0BD7; [6D 68, 05, 05]
-09C8; [68 7E, 05, 05]
+FDD1 0C15; [6E 04 02, 05, 05] # TELUGU first primary starts new lead byte (compressible)
-09C7 09BE; [68 80, 05, 05]
-09CB; [68 80, 05, 05]
+0C05; [6E 06, 05, 05]
-09C7 09D7; [68 82, 05, 05]
-09CC; [68 82, 05, 05]
+0C06; [6E 08, 05, 05]
-09CD; [68 84, 05, 05]
+0C07; [6E 0A, 05, 05]
-09D7; [68 86, 05, 05]
+0C08; [6E 0C, 05, 05]
-09FC; [68 88, 05, 05]
+0C09; [6E 0E, 05, 05]
-FDD1 0A15; [69 04 02, 05, 05] # GURMUKHI first primary starts new lead byte (compressible)
+0C0A; [6E 10, 05, 05]
-0A74; [69 06, 05, 05]
+0C0B; [6E 12, 05, 05]
-0A73; [69 08, 05, 05]
+0C60; [6E 14, 05, 05]
-0A09; [69 0A, 05, 05]
+0C0C; [6E 16, 05, 05]
-0A0A; [69 0C, 05, 05]
+0C61; [6E 18, 05, 05]
-0A13; [69 0E, 05, 05]
+0C0E; [6E 1A, 05, 05]
-0A05; [69 10, 05, 05]
+0C0F; [6E 1C, 05, 05]
-0A06; [69 12, 05, 05]
+0C10; [6E 1E, 05, 05]
-0A10; [69 14, 05, 05]
+0C12; [6E 20, 05, 05]
-0A14; [69 16, 05, 05]
+0C13; [6E 22, 05, 05]
-0A72; [69 18, 05, 05]
+0C14; [6E 24, 05, 05]
-0A07; [69 1A, 05, 05]
+0C15; [6E 26, 05, 05]
-0A08; [69 1C, 05, 05]
+0C16; [6E 28, 05, 05]
-0A0F; [69 1E, 05, 05]
+0C17; [6E 2A, 05, 05]
-0A38; [69 20, 05, 05]
-0A36; [69 20, 05, 05][, F1 22, 05]
+0C18; [6E 2C, 05, 05]
-0A39; [69 22, 05, 05]
+0C19; [6E 2E, 05, 05]
-0A51; [69 24, 05, 05]
+0C1A; [6E 30, 05, 05]
-0A15; [69 26, 05, 05]
+0C58; [6E 32, 05, 05]
-0A16; [69 28, 05, 05]
-0A59; [69 28, 05, 05][, F1 22, 05]
+0C1B; [6E 34, 05, 05]
-0A17; [69 2A, 05, 05]
-0A5A; [69 2A, 05, 05][, F1 22, 05]
+0C1C; [6E 36, 05, 05]
-0A18; [69 2C, 05, 05]
+0C59; [6E 38, 05, 05]
-0A19; [69 2E, 05, 05]
+0C1D; [6E 3A, 05, 05]
-0A1A; [69 30, 05, 05]
+0C1E; [6E 3C, 05, 05]
-0A1B; [69 32, 05, 05]
+0C1F; [6E 3E, 05, 05]
-0A1C; [69 34, 05, 05]
-0A5B; [69 34, 05, 05][, F1 22, 05]
+0C20; [6E 40, 05, 05]
-0A1D; [69 36, 05, 05]
+0C21; [6E 42, 05, 05]
-0A1E; [69 38, 05, 05]
+0C22; [6E 44, 05, 05]
-0A1F; [69 3A, 05, 05]
+0C23; [6E 46, 05, 05]
-0A20; [69 3C, 05, 05]
+0C24; [6E 48, 05, 05]
-0A21; [69 3E, 05, 05]
+0C25; [6E 4A, 05, 05]
-0A22; [69 40, 05, 05]
+0C26; [6E 4C, 05, 05]
-0A23; [69 42, 05, 05]
+0C27; [6E 4E, 05, 05]
-0A24; [69 44, 05, 05]
+0C28; [6E 50, 05, 05]
-0A25; [69 46, 05, 05]
+0C2A; [6E 52, 05, 05]
-0A26; [69 48, 05, 05]
+0C2B; [6E 54, 05, 05]
-0A27; [69 4A, 05, 05]
+0C2C; [6E 56, 05, 05]
-0A28; [69 4C, 05, 05]
+0C2D; [6E 58, 05, 05]
-0A2A; [69 4E, 05, 05]
+0C2E; [6E 5A, 05, 05]
-0A2B; [69 50, 05, 05]
-0A5E; [69 50, 05, 05][, F1 22, 05]
+0C2F; [6E 5C, 05, 05]
-0A2C; [69 52, 05, 05]
+0C30; [6E 5E, 05, 05]
-0A2D; [69 54, 05, 05]
+0C31; [6E 60, 05, 05]
-0A2E; [69 56, 05, 05]
+0C32; [6E 62, 05, 05]
-0A2F; [69 58, 05, 05]
+0C35; [6E 64, 05, 05]
-0A75; [69 5A, 05, 05]
+0C36; [6E 66, 05, 05]
-0A30; [69 5C, 05, 05]
+0C37; [6E 68, 05, 05]
-0A32; [69 5E, 05, 05]
-0A33; [69 5E, 05, 05][, F1 22, 05]
+0C38; [6E 6A, 05, 05]
-0A35; [69 60, 05, 05]
+0C39; [6E 6C, 05, 05]
-0A5C; [69 62, 05, 05]
+0C33; [6E 6E, 05, 05]
-0A3E; [69 64, 05, 05]
+0C34; [6E 70, 05, 05]
-0A3F; [69 66, 05, 05]
+0C5A; [6E 72, 05, 05]
-0A40; [69 68, 05, 05]
+0C3D; [6E 74, 05, 05]
-0A41; [69 6A, 05, 05]
+0C3E; [6E 76, 05, 05]
-0A42; [69 6C, 05, 05]
+0C3F; [6E 78, 05, 05]
-0A47; [69 6E, 05, 05]
+0C40; [6E 7A, 05, 05]
-0A48; [69 70, 05, 05]
+0C41; [6E 7C, 05, 05]
-0A4B; [69 72, 05, 05]
+0C42; [6E 7E, 05, 05]
-0A4C; [69 74, 05, 05]
+0C43; [6E 80, 05, 05]
-0A4D; [69 76, 05, 05]
+0C44; [6E 82, 05, 05]
-FDD1 0A95; [6A 04 02, 05, 05] # GUJARATI first primary starts new lead byte (compressible)
+0C62; [6E 84, 05, 05]
-0AD0; [6A 06, 05, 05]
+0C63; [6E 86, 05, 05]
-0A85; [6A 08, 05, 05]
+0C46; [6E 88, 05, 05]
-0A86; [6A 0A, 05, 05]
+0C47; [6E 8A, 05, 05]
-0A87; [6A 0C, 05, 05]
+0C46 0C56; [6E 8C, 05, 05]
+0C48; [6E 8C, 05, 05]
-0A88; [6A 0E, 05, 05]
+0C4A; [6E 8E, 05, 05]
-0A89; [6A 10, 05, 05]
+0C4B; [6E 90, 05, 05]
-0A8A; [6A 12, 05, 05]
+0C4C; [6E 92, 05, 05]
-0A8B; [6A 14, 05, 05]
+0C4D; [6E 94, 05, 05]
-0AE0; [6A 16, 05, 05]
+0C55; [6E 96, 05, 05]
-0A8C; [6A 18, 05, 05]
+0C56; [6E 98, 05, 05]
-0AE1; [6A 1A, 05, 05]
+FDD1 0C95; [6F 04 02, 05, 05] # KANNADA first primary starts new lead byte (compressible)
-0A8D; [6A 1C, 05, 05]
+0C85; [6F 06, 05, 05]
-0A8F; [6A 1E, 05, 05]
+0C86; [6F 08, 05, 05]
-0A90; [6A 20, 05, 05]
+0C87; [6F 0A, 05, 05]
-0A91; [6A 22, 05, 05]
+0C88; [6F 0C, 05, 05]
-0A93; [6A 24, 05, 05]
+0C89; [6F 0E, 05, 05]
-0A94; [6A 26, 05, 05]
+0C8A; [6F 10, 05, 05]
-0A95; [6A 28, 05, 05]
+0C8B; [6F 12, 05, 05]
-0A96; [6A 2A, 05, 05]
+0CE0; [6F 14, 05, 05]
-0A97; [6A 2C, 05, 05]
+0C8C; [6F 16, 05, 05]
-0A98; [6A 2E, 05, 05]
+0CE1; [6F 18, 05, 05]
-0A99; [6A 30, 05, 05]
+0C8E; [6F 1A, 05, 05]
-0A9A; [6A 32, 05, 05]
+0C8F; [6F 1C, 05, 05]
-0A9B; [6A 34, 05, 05]
+0C90; [6F 1E, 05, 05]
-0A9C; [6A 36, 05, 05]
+0C92; [6F 20, 05, 05]
-0AF9; [6A 38, 05, 05]
+0C93; [6F 22, 05, 05]
-0A9D; [6A 3A, 05, 05]
+0C94; [6F 24, 05, 05]
-0A9E; [6A 3C, 05, 05]
+0C95; [6F 26, 05, 05]
-0A9F; [6A 3E, 05, 05]
+0C96; [6F 28, 05, 05]
-0AA0; [6A 40, 05, 05]
+0C97; [6F 2A, 05, 05]
-0AA1; [6A 42, 05, 05]
+0C98; [6F 2C, 05, 05]
-0AA2; [6A 44, 05, 05]
+0C99; [6F 2E, 05, 05]
-0AA3; [6A 46, 05, 05]
+0C9A; [6F 30, 05, 05]
-0AA4; [6A 48, 05, 05]
+0C9B; [6F 32, 05, 05]
-0AA5; [6A 4A, 05, 05]
+0C9C; [6F 34, 05, 05]
-0AA6; [6A 4C, 05, 05]
+0C9D; [6F 36, 05, 05]
-0AA7; [6A 4E, 05, 05]
+0C9E; [6F 38, 05, 05]
-0AA8; [6A 50, 05, 05]
+0C9F; [6F 3A, 05, 05]
-0AAA; [6A 52, 05, 05]
+0CA0; [6F 3C, 05, 05]
-0AAB; [6A 54, 05, 05]
+0CA1; [6F 3E, 05, 05]
-0AAC; [6A 56, 05, 05]
+0CA2; [6F 40, 05, 05]
-0AAD; [6A 58, 05, 05]
+0CA3; [6F 42, 05, 05]
-0AAE; [6A 5A, 05, 05]
+0CA4; [6F 44, 05, 05]
-0AAF; [6A 5C, 05, 05]
+0CA5; [6F 46, 05, 05]
-0AB0; [6A 5E, 05, 05]
+0CA6; [6F 48, 05, 05]
-0AB2; [6A 60, 05, 05]
+0CA7; [6F 4A, 05, 05]
-0AB5; [6A 62, 05, 05]
+0CA8; [6F 4C, 05, 05]
-0AB6; [6A 64, 05, 05]
+0CAA; [6F 4E, 05, 05]
-0AB7; [6A 66, 05, 05]
+0CAB; [6F 50, 05, 05]
-0AB8; [6A 68, 05, 05]
+0CAC; [6F 52, 05, 05]
-0AB9; [6A 6A, 05, 05]
+0CAD; [6F 54, 05, 05]
-0AB3; [6A 6C, 05, 05]
+0CAE; [6F 56, 05, 05]
-0ABD; [6A 6E, 05, 05]
+0CAF; [6F 58, 05, 05]
-0ABE; [6A 70, 05, 05]
+0CB0; [6F 5A, 05, 05]
-0ABF; [6A 72, 05, 05]
+0CB1; [6F 5C, 05, 05]
-0AC0; [6A 74, 05, 05]
+0CB2; [6F 5E, 05, 05]
-0AC1; [6A 76, 05, 05]
+0CB5; [6F 60, 05, 05]
-0AC2; [6A 78, 05, 05]
+0CB6; [6F 62, 05, 05]
-0AC3; [6A 7A, 05, 05]
+0CB7; [6F 64, 05, 05]
-0AC4; [6A 7C, 05, 05]
+0CB8; [6F 66, 05, 05]
-0AE2; [6A 7E, 05, 05]
+0CB9; [6F 68, 05, 05]
-0AE3; [6A 80, 05, 05]
+0CB3; [6F 6A, 05, 05]
-0AC5; [6A 82, 05, 05]
+0CDE; [6F 6C, 05, 05]
-0AC7; [6A 84, 05, 05]
+0CBD; [6F 6E, 05, 05]
-0AC8; [6A 86, 05, 05]
+0CF1; [6F 70, 05, 05]
-0AC9; [6A 88, 05, 05]
+0CF2; [6F 72, 05, 05]
-0ACB; [6A 8A, 05, 05]
+0C80; [6F 74, 05, 05]
-0ACC; [6A 8C, 05, 05]
+0CBE; [6F 76, 05, 05]
-0ACD; [6A 8E, 05, 05]
+0CBF; [6F 78, 05, 05]
-FDD1 0B15; [6B 04 02, 05, 05] # ORIYA first primary starts new lead byte (compressible)
+0CBF 0CD5; [6F 7A, 05, 05]
+0CC0; [6F 7A, 05, 05]
-0B05; [6B 06, 05, 05]
+0CC1; [6F 7C, 05, 05]
-0B06; [6B 08, 05, 05]
+0CC2; [6F 7E, 05, 05]
-0B07; [6B 0A, 05, 05]
+0CC3; [6F 80, 05, 05]
-0B08; [6B 0C, 05, 05]
+0CC4; [6F 82, 05, 05]
-0B09; [6B 0E, 05, 05]
+0CE2; [6F 84, 05, 05]
-0B0A; [6B 10, 05, 05]
+0CE3; [6F 86, 05, 05]
-0B0B; [6B 12, 05, 05]
+0CC6; [6F 88, 05, 05]
-0B60; [6B 14, 05, 05]
+0CC6 0CD5; [6F 8A, 05, 05]
+0CC7; [6F 8A, 05, 05]
-0B0C; [6B 16, 05, 05]
+0CC6 0CD6; [6F 8C, 05, 05]
+0CC8; [6F 8C, 05, 05]
-0B61; [6B 18, 05, 05]
+0CC6 0CC2; [6F 8E, 05, 05]
+0CCA; [6F 8E, 05, 05]
-0B0F; [6B 1A, 05, 05]
+0CC6 0CC2 0CD5; [6F 90, 05, 05]
+0CCA 0CD5; [6F 90, 05, 05]
+0CCB; [6F 90, 05, 05]
-0B10; [6B 1C, 05, 05]
+0CCC; [6F 92, 05, 05]
-0B13; [6B 1E, 05, 05]
+0CCD; [6F 94, 05, 05]
-0B14; [6B 20, 05, 05]
+0CD5; [6F 96, 05, 05]
-0B15; [6B 22, 05, 05]
+0CD6; [6F 98, 05, 05]
-0B16; [6B 24, 05, 05]
+FDD1 0D15; [70 04 02, 05, 05] # MALAYALAM first primary starts new lead byte (compressible)
-0B17; [6B 26, 05, 05]
+0D05; [70 06, 05, 05]
-0B18; [6B 28, 05, 05]
+0D06; [70 08, 05, 05]
-0B19; [6B 2A, 05, 05]
+0D07; [70 0A, 05, 05]
-0B1A; [6B 2C, 05, 05]
+0D08; [70 0C, 05, 05]
-0B1B; [6B 2E, 05, 05]
+0D5F; [70 0E, 05, 05]
-0B1C; [6B 30, 05, 05]
+0D09; [70 10, 05, 05]
-0B1D; [6B 32, 05, 05]
+0D0A; [70 12, 05, 05]
-0B1E; [6B 34, 05, 05]
+0D0B; [70 14, 05, 05]
-0B1F; [6B 36, 05, 05]
+0D60; [70 16, 05, 05]
-0B20; [6B 38, 05, 05]
+0D0C; [70 18, 05, 05]
-0B21; [6B 3A, 05, 05]
-0B5C; [6B 3A, 05, 05][, F1 22, 05]
+0D61; [70 1A, 05, 05]
-0B22; [6B 3C, 05, 05]
-0B5D; [6B 3C, 05, 05][, F1 22, 05]
+0D0E; [70 1C, 05, 05]
-0B23; [6B 3E, 05, 05]
+0D0F; [70 1E, 05, 05]
-0B24; [6B 40, 05, 05]
+0D10; [70 20, 05, 05]
-0B25; [6B 42, 05, 05]
+0D12; [70 22, 05, 05]
-0B26; [6B 44, 05, 05]
+0D13; [70 24, 05, 05]
-0B27; [6B 46, 05, 05]
+0D14; [70 26, 05, 05]
-0B28; [6B 48, 05, 05]
+0D15; [70 28, 05, 05]
+0D7F; [70 28, 05, 20][70 96, 05, 20]
-0B2A; [6B 4A, 05, 05]
+0D16; [70 2A, 05, 05]
-0B2B; [6B 4C, 05, 05]
+0D17; [70 2C, 05, 05]
-0B2C; [6B 4E, 05, 05]
+0D18; [70 2E, 05, 05]
-0B2D; [6B 50, 05, 05]
+0D19; [70 30, 05, 05]
-0B2E; [6B 52, 05, 05]
+0D1A; [70 32, 05, 05]
-0B2F; [6B 54, 05, 05]
+0D1B; [70 34, 05, 05]
-0B5F; [6B 56, 05, 05]
+0D1C; [70 36, 05, 05]
-0B30; [6B 58, 05, 05]
+0D1D; [70 38, 05, 05]
-0B32; [6B 5A, 05, 05]
+0D1E; [70 3A, 05, 05]
-0B33; [6B 5C, 05, 05]
+0D1F; [70 3C, 05, 05]
-0B35; [6B 5E, 05, 05]
+0D20; [70 3E, 05, 05]
-0B71; [6B 60, 05, 05]
+0D21; [70 40, 05, 05]
-0B36; [6B 62, 05, 05]
+0D22; [70 42, 05, 05]
-0B37; [6B 64, 05, 05]
+0D23; [70 44, 05, 05]
+0D7A; [70 44, 05, 20][70 96, 05, 20]
-0B38; [6B 66, 05, 05]
+0D24; [70 46, 05, 05]
-0B39; [6B 68, 05, 05]
+0D25; [70 48, 05, 05]
-0B3D; [6B 6A, 05, 05]
+0D26; [70 4A, 05, 05]
-0B3E; [6B 6C, 05, 05]
+0D27; [70 4C, 05, 05]
-0B3F; [6B 6E, 05, 05]
+0D28; [70 4E, 05, 05]
+0D7B; [70 4E, 05, 20][70 96, 05, 20]
-0B40; [6B 70, 05, 05]
+0D29; [70 50, 05, 05]
-0B41; [6B 72, 05, 05]
+0D2A; [70 52, 05, 05]
-0B42; [6B 74, 05, 05]
+0D2B; [70 54, 05, 05]
-0B43; [6B 76, 05, 05]
+0D2C; [70 56, 05, 05]
-0B44; [6B 78, 05, 05]
+0D2D; [70 58, 05, 05]
-0B62; [6B 7A, 05, 05]
+0D2E; [70 5A, 05, 05]
+0D54; [70 5A, 05, 20][70 96, 05, 20]
-0B63; [6B 7C, 05, 05]
+0D2F; [70 5C, 05, 05]
+0D55; [70 5C, 05, 20][70 96, 05, 20]
-0B47; [6B 7E, 05, 05]
+0D30; [70 5E, 05, 05]
+0D4E; [70 5E, 05, 20][70 96, 05, 20]
+0D7C; [70 5E, 05, 20][70 96, 05, 20]
-0B47 0B56; [6B 80, 05, 05]
-0B48; [6B 80, 05, 05]
+0D32; [70 60, 05, 05]
+0D7D; [70 60, 05, 20][70 96, 05, 20]
-0B47 0B3E; [6B 82, 05, 05]
-0B4B; [6B 82, 05, 05]
+0D35; [70 62, 05, 05]
-0B47 0B57; [6B 84, 05, 05]
-0B4C; [6B 84, 05, 05]
+0D36; [70 64, 05, 05]
-0B4D; [6B 86, 05, 05]
+0D37; [70 66, 05, 05]
-0B56; [6B 88, 05, 05]
+0D38; [70 68, 05, 05]
-0B57; [6B 8A, 05, 05]
+0D39; [70 6A, 05, 05]
-FDD1 0B95; [6C 04 02, 05, 05] # TAMIL first primary starts new lead byte (compressible)
+0D33; [70 6C, 05, 05]
+0D7E; [70 6C, 05, 20][70 96, 05, 20]
-0BD0; [6C 06, 05, 05]
+0D34; [70 6E, 05, 05]
+0D56; [70 6E, 05, 20][70 96, 05, 20]
-0B85; [6C 08, 05, 05]
+0D31; [70 70, 05, 05]
-0B86; [6C 0A, 05, 05]
+0D3A; [70 72, 05, 05]
-0B87; [6C 0C, 05, 05]
+0D3D; [70 74, 05, 05]
-0B88; [6C 0E, 05, 05]
+0D3E; [70 76, 05, 05]
-0B89; [6C 10, 05, 05]
+0D3F; [70 78, 05, 05]
-0B8A; [6C 12, 05, 05]
+0D40; [70 7A, 05, 05]
-0B8E; [6C 14, 05, 05]
+0D41; [70 7C, 05, 05]
-0B8F; [6C 16, 05, 05]
+0D42; [70 7E, 05, 05]
-0B90; [6C 18, 05, 05]
+0D43; [70 80, 05, 05]
-0B92; [6C 1A, 05, 05]
+0D44; [70 82, 05, 05]
-0B93; [6C 1C, 05, 05]
+0D62; [70 84, 05, 05]
-0B92 0BD7; [6C 1E, 05, 05]
-0B94; [6C 1E, 05, 05]
+0D63; [70 86, 05, 05]
-0B83; [6C 20, 05, 05]
+0D46; [70 88, 05, 05]
-0B95; [6C 22, 05, 05]
+0D47; [70 8A, 05, 05]
-0B99; [6C 24, 05, 05]
+0D48; [70 8C, 05, 05]
-0B9A; [6C 26, 05, 05]
+0D46 0D3E; [70 8E, 05, 05]
+0D4A; [70 8E, 05, 05]
-0B9E; [6C 28, 05, 05]
+0D47 0D3E; [70 90, 05, 05]
+0D4B; [70 90, 05, 05]
-0B9F; [6C 2A, 05, 05]
+0D46 0D57; [70 92, 05, 05]
+0D4C; [70 92, 05, 05]
-0BA3; [6C 2C, 05, 05]
+0D57; [70 94, 05, 05]
-0BA4; [6C 2E, 05, 05]
+0D4D; [70 96, 05, 05]
+0D3B; [70 96, 05, 20]
+0D3C; [70 96, 05, 20]
-0BA8; [6C 30, 05, 05]
+FDD1 0D85; [71 04 02, 05, 05] # SINHALA first primary starts new lead byte (compressible)
-0BAA; [6C 32, 05, 05]
+0D85; [71 06, 05, 05]
-0BAE; [6C 34, 05, 05]
+0D86; [71 08, 05, 05]
-0BAF; [6C 36, 05, 05]
+0D87; [71 0A, 05, 05]
-0BB0; [6C 38, 05, 05]
+0D88; [71 0C, 05, 05]
-0BB2; [6C 3A, 05, 05]
+0D89; [71 0E, 05, 05]
-0BB5; [6C 3C, 05, 05]
+0D8A; [71 10, 05, 05]
-0BB4; [6C 3E, 05, 05]
+0D8B; [71 12, 05, 05]
-0BB3; [6C 40, 05, 05]
+0D8C; [71 14, 05, 05]
-0BB1; [6C 42, 05, 05]
+0D8D; [71 16, 05, 05]
-0BA9; [6C 44, 05, 05]
+0D8E; [71 18, 05, 05]
-0B9C; [6C 46, 05, 05]
+0D8F; [71 1A, 05, 05]
-0BB6; [6C 48, 05, 05]
+0D90; [71 1C, 05, 05]
-0BB7; [6C 4A, 05, 05]
+0D91; [71 1E, 05, 05]
-0BB8; [6C 4C, 05, 05]
+0D92; [71 20, 05, 05]
-0BB9; [6C 4E, 05, 05]
+0D93; [71 22, 05, 05]
-0BBE; [6C 50, 05, 05]
+0D94; [71 24, 05, 05]
-0BBF; [6C 52, 05, 05]
+0D95; [71 26, 05, 05]
-0BC0; [6C 54, 05, 05]
+0D96; [71 28, 05, 05]
-0BC1; [6C 56, 05, 05]
+0D9A; [71 2A, 05, 05]
-0BC2; [6C 58, 05, 05]
+0D9B; [71 2C, 05, 05]
-0BC6; [6C 5A, 05, 05]
+0D9C; [71 2E, 05, 05]
-0BC7; [6C 5C, 05, 05]
+0D9D; [71 30, 05, 05]
-0BC8; [6C 5E, 05, 05]
+0D9E; [71 32, 05, 05]
-0BC6 0BBE; [6C 60, 05, 05]
-0BCA; [6C 60, 05, 05]
+0D9F; [71 34, 05, 05]
-0BC7 0BBE; [6C 62, 05, 05]
-0BCB; [6C 62, 05, 05]
+0DA0; [71 36, 05, 05]
-0BC6 0BD7; [6C 64, 05, 05]
-0BCC; [6C 64, 05, 05]
+0DA1; [71 38, 05, 05]
-0BCD; [6C 66, 05, 05]
+0DA2; [71 3A, 05, 05]
-0BD7; [6C 68, 05, 05]
+0DA3; [71 3C, 05, 05]
-FDD1 0C15; [6D 04 02, 05, 05] # TELUGU first primary starts new lead byte (compressible)
+0DA4; [71 3E, 05, 05]
-0C05; [6D 06, 05, 05]
+0DA5; [71 40, 05, 05]
-0C06; [6D 08, 05, 05]
+0DA6; [71 42, 05, 05]
-0C07; [6D 0A, 05, 05]
+0DA7; [71 44, 05, 05]
-0C08; [6D 0C, 05, 05]
+0DA8; [71 46, 05, 05]
-0C09; [6D 0E, 05, 05]
+0DA9; [71 48, 05, 05]
-0C0A; [6D 10, 05, 05]
+0DAA; [71 4A, 05, 05]
-0C0B; [6D 12, 05, 05]
+0DAB; [71 4C, 05, 05]
-0C60; [6D 14, 05, 05]
+0DAC; [71 4E, 05, 05]
-0C0C; [6D 16, 05, 05]
+0DAD; [71 50, 05, 05]
-0C61; [6D 18, 05, 05]
+0DAE; [71 52, 05, 05]
-0C0E; [6D 1A, 05, 05]
+0DAF; [71 54, 05, 05]
-0C0F; [6D 1C, 05, 05]
+0DB0; [71 56, 05, 05]
-0C10; [6D 1E, 05, 05]
+0DB1; [71 58, 05, 05]
-0C12; [6D 20, 05, 05]
+0DB3; [71 5A, 05, 05]
-0C13; [6D 22, 05, 05]
+0DB4; [71 5C, 05, 05]
-0C14; [6D 24, 05, 05]
+0DB5; [71 5E, 05, 05]
-0C15; [6D 26, 05, 05]
+0DB6; [71 60, 05, 05]
-0C16; [6D 28, 05, 05]
+0DB7; [71 62, 05, 05]
-0C17; [6D 2A, 05, 05]
+0DB8; [71 64, 05, 05]
-0C18; [6D 2C, 05, 05]
+0DB9; [71 66, 05, 05]
-0C19; [6D 2E, 05, 05]
+0DBA; [71 68, 05, 05]
-0C1A; [6D 30, 05, 05]
+0DBB; [71 6A, 05, 05]
-0C58; [6D 32, 05, 05]
+0DBD; [71 6C, 05, 05]
-0C1B; [6D 34, 05, 05]
+0DC0; [71 6E, 05, 05]
-0C1C; [6D 36, 05, 05]
+0DC1; [71 70, 05, 05]
-0C59; [6D 38, 05, 05]
+0DC2; [71 72, 05, 05]
-0C1D; [6D 3A, 05, 05]
+0DC3; [71 74, 05, 05]
-0C1E; [6D 3C, 05, 05]
+0DC4; [71 76, 05, 05]
-0C1F; [6D 3E, 05, 05]
+0DC5; [71 78, 05, 05]
-0C20; [6D 40, 05, 05]
+0DC6; [71 7A, 05, 05]
-0C21; [6D 42, 05, 05]
+0DCF; [71 7C, 05, 05]
-0C22; [6D 44, 05, 05]
+0DD0; [71 7E, 05, 05]
-0C23; [6D 46, 05, 05]
+0DD1; [71 80, 05, 05]
-0C24; [6D 48, 05, 05]
+0DD2; [71 82, 05, 05]
-0C25; [6D 4A, 05, 05]
+0DD3; [71 84, 05, 05]
-0C26; [6D 4C, 05, 05]
+0DD4; [71 86, 05, 05]
-0C27; [6D 4E, 05, 05]
+0DD6; [71 88, 05, 05]
-0C28; [6D 50, 05, 05]
+0DD8; [71 8A, 05, 05]
-0C2A; [6D 52, 05, 05]
+0DF2; [71 8C, 05, 05]
-0C2B; [6D 54, 05, 05]
+0DDF; [71 8E, 05, 05]
-0C2C; [6D 56, 05, 05]
+0DF3; [71 90, 05, 05]
-0C2D; [6D 58, 05, 05]
+0DD9; [71 92, 05, 05]
-0C2E; [6D 5A, 05, 05]
+0DD9 0DCA; [71 94, 05, 05]
+0DDA; [71 94, 05, 05]
-0C2F; [6D 5C, 05, 05]
+0DDB; [71 96, 05, 05]
-0C30; [6D 5E, 05, 05]
+0DD9 0DCF; [71 98, 05, 05]
+0DDC; [71 98, 05, 05]
-0C31; [6D 60, 05, 05]
+0DD9 0DCF 0DCA; [71 9A, 05, 05]
+0DDC 0DCA; [71 9A, 05, 05]
+0DDD; [71 9A, 05, 05]
-0C32; [6D 62, 05, 05]
+0DD9 0DDF; [71 9C, 05, 05]
+0DDE; [71 9C, 05, 05]
-0C35; [6D 64, 05, 05]
+0DCA; [71 9E, 05, 05]
-0C36; [6D 66, 05, 05]
+FDD1 ABC0; [71 A0 02, 05, 05] # Meetei Mayek first primary (compressible)
-0C37; [6D 68, 05, 05]
+AAF2; [71 A0 09, 05, 05]
-0C38; [6D 6A, 05, 05]
+ABC0; [71 A0 10, 05, 05]
-0C39; [6D 6C, 05, 05]
+ABC1; [71 A0 17, 05, 05]
-0C33; [6D 6E, 05, 05]
+ABC2; [71 A0 1E, 05, 05]
-0C34; [6D 70, 05, 05]
+ABC3; [71 A0 25, 05, 05]
-0C5A; [6D 72, 05, 05]
+ABC4; [71 A0 2C, 05, 05]
-0C3D; [6D 74, 05, 05]
+ABC5; [71 A0 33, 05, 05]
-0C3E; [6D 76, 05, 05]
+ABC6; [71 A0 3A, 05, 05]
-0C3F; [6D 78, 05, 05]
+ABC7; [71 A0 41, 05, 05]
-0C40; [6D 7A, 05, 05]
+ABC8; [71 A0 48, 05, 05]
-0C41; [6D 7C, 05, 05]
+ABC9; [71 A0 4F, 05, 05]
-0C42; [6D 7E, 05, 05]
+ABCA; [71 A0 56, 05, 05]
-0C43; [6D 80, 05, 05]
+ABCB; [71 A0 5D, 05, 05]
-0C44; [6D 82, 05, 05]
+ABCC; [71 A0 64, 05, 05]
-0C62; [6D 84, 05, 05]
+ABCD; [71 A0 6B, 05, 05]
-0C63; [6D 86, 05, 05]
+ABCE; [71 A0 72, 05, 05]
-0C46; [6D 88, 05, 05]
+ABCF; [71 A0 79, 05, 05]
-0C47; [6D 8A, 05, 05]
+ABD0; [71 A0 80, 05, 05]
-0C46 0C56; [6D 8C, 05, 05]
-0C48; [6D 8C, 05, 05]
+ABD1; [71 A0 87, 05, 05]
-0C4A; [6D 8E, 05, 05]
+ABD2; [71 A0 8E, 05, 05]
-0C4B; [6D 90, 05, 05]
+ABD3; [71 A0 95, 05, 05]
-0C4C; [6D 92, 05, 05]
+ABD4; [71 A0 9C, 05, 05]
-0C4D; [6D 94, 05, 05]
+ABD5; [71 A0 A3, 05, 05]
-0C55; [6D 96, 05, 05]
+ABD6; [71 A0 AA, 05, 05]
-0C56; [6D 98, 05, 05]
+ABD7; [71 A0 B1, 05, 05]
-FDD1 0C95; [6E 04 02, 05, 05] # KANNADA first primary starts new lead byte (compressible)
+ABD8; [71 A0 B8, 05, 05]
-0C85; [6E 06, 05, 05]
+ABD9; [71 A0 BF, 05, 05]
-0C86; [6E 08, 05, 05]
+ABDA; [71 A0 C6, 05, 05]
-0C87; [6E 0A, 05, 05]
+AAE0; [71 A0 CD, 05, 05]
-0C88; [6E 0C, 05, 05]
+AAE1; [71 A0 D4, 05, 05]
-0C89; [6E 0E, 05, 05]
+AAE2; [71 A0 DB, 05, 05]
-0C8A; [6E 10, 05, 05]
+AAE3; [71 A0 E2, 05, 05]
-0C8B; [6E 12, 05, 05]
+AAE4; [71 A0 E9, 05, 05]
-0CE0; [6E 14, 05, 05]
+AAE5; [71 A0 F0, 05, 05]
-0C8C; [6E 16, 05, 05]
+AAE6; [71 A0 F7, 05, 05]
-0CE1; [6E 18, 05, 05]
+AAE7; [71 A0 FE, 05, 05]
-0C8E; [6E 1A, 05, 05]
+AAE8; [71 A1 07, 05, 05]
-0C8F; [6E 1C, 05, 05]
+AAE9; [71 A1 0E, 05, 05]
-0C90; [6E 1E, 05, 05]
+AAEA; [71 A1 15, 05, 05]
-0C92; [6E 20, 05, 05]
+ABE3; [71 A1 1C, 05, 05]
-0C93; [6E 22, 05, 05]
+ABE4; [71 A1 23, 05, 05]
-0C94; [6E 24, 05, 05]
+ABE5; [71 A1 2A, 05, 05]
-0C95; [6E 26, 05, 05]
+ABE6; [71 A1 31, 05, 05]
-0C96; [6E 28, 05, 05]
+ABE7; [71 A1 38, 05, 05]
-0C97; [6E 2A, 05, 05]
+ABE8; [71 A1 3F, 05, 05]
-0C98; [6E 2C, 05, 05]
+ABE9; [71 A1 46, 05, 05]
-0C99; [6E 2E, 05, 05]
+ABEA; [71 A1 4D, 05, 05]
-0C9A; [6E 30, 05, 05]
+AAEB; [71 A1 54, 05, 05]
-0C9B; [6E 32, 05, 05]
+AAEC; [71 A1 5B, 05, 05]
-0C9C; [6E 34, 05, 05]
+AAED; [71 A1 62, 05, 05]
-0C9D; [6E 36, 05, 05]
+AAEE; [71 A1 69, 05, 05]
-0C9E; [6E 38, 05, 05]
+AAEF; [71 A1 70, 05, 05]
-0C9F; [6E 3A, 05, 05]
+AAF5; [71 A1 77, 05, 05]
-0CA0; [6E 3C, 05, 05]
+ABDB; [71 A1 7E, 05, 05]
-0CA1; [6E 3E, 05, 05]
+ABDC; [71 A1 85, 05, 05]
-0CA2; [6E 40, 05, 05]
+ABDD; [71 A1 8C, 05, 05]
-0CA3; [6E 42, 05, 05]
+ABDE; [71 A1 93, 05, 05]
-0CA4; [6E 44, 05, 05]
+ABDF; [71 A1 9A, 05, 05]
-0CA5; [6E 46, 05, 05]
+ABE0; [71 A1 A1, 05, 05]
-0CA6; [6E 48, 05, 05]
+ABE1; [71 A1 A8, 05, 05]
-0CA7; [6E 4A, 05, 05]
+ABE2; [71 A1 AF, 05, 05]
-0CA8; [6E 4C, 05, 05]
+ABED; [71 A1 B6, 05, 05]
-0CAA; [6E 4E, 05, 05]
+AAF6; [71 A1 BD, 05, 05]
-0CAB; [6E 50, 05, 05]
+FDD1 A800; [71 A2 02, 05, 05] # SYLOTI_NAGRI first primary (compressible)
-0CAC; [6E 52, 05, 05]
+A800; [71 A2 09, 05, 05]
-0CAD; [6E 54, 05, 05]
+A801; [71 A2 10, 05, 05]
-0CAE; [6E 56, 05, 05]
+A802; [71 A2 17, 05, 05]
-0CAF; [6E 58, 05, 05]
+A803; [71 A2 1E, 05, 05]
-0CB0; [6E 5A, 05, 05]
+A804; [71 A2 25, 05, 05]
-0CB1; [6E 5C, 05, 05]
+A805; [71 A2 2C, 05, 05]
-0CB2; [6E 5E, 05, 05]
+A806; [71 A2 33, 05, 05]
-0CB5; [6E 60, 05, 05]
+A807; [71 A2 3A, 05, 05]
-0CB6; [6E 62, 05, 05]
+A808; [71 A2 41, 05, 05]
-0CB7; [6E 64, 05, 05]
+A809; [71 A2 48, 05, 05]
-0CB8; [6E 66, 05, 05]
+A80A; [71 A2 4F, 05, 05]
-0CB9; [6E 68, 05, 05]
+A80C; [71 A2 56, 05, 05]
-0CB3; [6E 6A, 05, 05]
+A80D; [71 A2 5D, 05, 05]
-0CDE; [6E 6C, 05, 05]
+A80E; [71 A2 64, 05, 05]
-0CBD; [6E 6E, 05, 05]
+A80F; [71 A2 6B, 05, 05]
-0CF1; [6E 70, 05, 05]
+A810; [71 A2 72, 05, 05]
-0CF2; [6E 72, 05, 05]
+A811; [71 A2 79, 05, 05]
-0C80; [6E 74, 05, 05]
+A812; [71 A2 80, 05, 05]
-0CBE; [6E 76, 05, 05]
+A813; [71 A2 87, 05, 05]
-0CBF; [6E 78, 05, 05]
+A814; [71 A2 8E, 05, 05]
-0CBF 0CD5; [6E 7A, 05, 05]
-0CC0; [6E 7A, 05, 05]
+A815; [71 A2 95, 05, 05]
-0CC1; [6E 7C, 05, 05]
+A816; [71 A2 9C, 05, 05]
-0CC2; [6E 7E, 05, 05]
+A817; [71 A2 A3, 05, 05]
-0CC3; [6E 80, 05, 05]
+A818; [71 A2 AA, 05, 05]
-0CC4; [6E 82, 05, 05]
+A819; [71 A2 B1, 05, 05]
-0CE2; [6E 84, 05, 05]
+A81A; [71 A2 B8, 05, 05]
-0CE3; [6E 86, 05, 05]
+A81B; [71 A2 BF, 05, 05]
-0CC6; [6E 88, 05, 05]
+A81C; [71 A2 C6, 05, 05]
-0CC6 0CD5; [6E 8A, 05, 05]
-0CC7; [6E 8A, 05, 05]
+A81D; [71 A2 CD, 05, 05]
-0CC6 0CD6; [6E 8C, 05, 05]
-0CC8; [6E 8C, 05, 05]
+A81E; [71 A2 D4, 05, 05]
-0CC6 0CC2; [6E 8E, 05, 05]
-0CCA; [6E 8E, 05, 05]
+A81F; [71 A2 DB, 05, 05]
-0CC6 0CC2 0CD5; [6E 90, 05, 05]
-0CCA 0CD5; [6E 90, 05, 05]
-0CCB; [6E 90, 05, 05]
+A820; [71 A2 E2, 05, 05]
-0CCC; [6E 92, 05, 05]
+A821; [71 A2 E9, 05, 05]
-0CCD; [6E 94, 05, 05]
+A822; [71 A2 F0, 05, 05]
-0CD5; [6E 96, 05, 05]
+A823; [71 A2 F7, 05, 05]
-0CD6; [6E 98, 05, 05]
+A824; [71 A2 FE, 05, 05]
-FDD1 0D15; [6F 04 02, 05, 05] # MALAYALAM first primary starts new lead byte (compressible)
+A825; [71 A3 07, 05, 05]
-0D05; [6F 06, 05, 05]
+A826; [71 A3 0E, 05, 05]
-0D06; [6F 08, 05, 05]
+A827; [71 A3 15, 05, 05]
-0D07; [6F 0A, 05, 05]
+FDD1 A882; [71 A4 02, 05, 05] # Saurashtra first primary (compressible)
-0D08; [6F 0C, 05, 05]
+A882; [71 A4 09, 05, 05]
-0D5F; [6F 0E, 05, 05]
+A883; [71 A4 10, 05, 05]
-0D09; [6F 10, 05, 05]
+A884; [71 A4 17, 05, 05]
-0D0A; [6F 12, 05, 05]
+A885; [71 A4 1E, 05, 05]
-0D0B; [6F 14, 05, 05]
+A886; [71 A4 25, 05, 05]
-0D60; [6F 16, 05, 05]
+A887; [71 A4 2C, 05, 05]
-0D0C; [6F 18, 05, 05]
+A888; [71 A4 33, 05, 05]
-0D61; [6F 1A, 05, 05]
+A889; [71 A4 3A, 05, 05]
-0D0E; [6F 1C, 05, 05]
+A88A; [71 A4 41, 05, 05]
-0D0F; [6F 1E, 05, 05]
+A88B; [71 A4 48, 05, 05]
-0D10; [6F 20, 05, 05]
+A88C; [71 A4 4F, 05, 05]
-0D12; [6F 22, 05, 05]
+A88D; [71 A4 56, 05, 05]
-0D13; [6F 24, 05, 05]
+A88E; [71 A4 5D, 05, 05]
-0D14; [6F 26, 05, 05]
+A88F; [71 A4 64, 05, 05]
-0D15; [6F 28, 05, 05]
-0D7F; [6F 28, 05, 20][6F 96, 05, 20]
+A890; [71 A4 6B, 05, 05]
-0D16; [6F 2A, 05, 05]
+A891; [71 A4 72, 05, 05]
-0D17; [6F 2C, 05, 05]
+A892; [71 A4 79, 05, 05]
-0D18; [6F 2E, 05, 05]
+A893; [71 A4 80, 05, 05]
-0D19; [6F 30, 05, 05]
+A894; [71 A4 87, 05, 05]
-0D1A; [6F 32, 05, 05]
+A895; [71 A4 8E, 05, 05]
-0D1B; [6F 34, 05, 05]
+A896; [71 A4 95, 05, 05]
-0D1C; [6F 36, 05, 05]
+A897; [71 A4 9C, 05, 05]
-0D1D; [6F 38, 05, 05]
+A898; [71 A4 A3, 05, 05]
-0D1E; [6F 3A, 05, 05]
+A899; [71 A4 AA, 05, 05]
-0D1F; [6F 3C, 05, 05]
+A89A; [71 A4 B1, 05, 05]
-0D20; [6F 3E, 05, 05]
+A89B; [71 A4 B8, 05, 05]
-0D21; [6F 40, 05, 05]
+A89C; [71 A4 BF, 05, 05]
-0D22; [6F 42, 05, 05]
+A89D; [71 A4 C6, 05, 05]
-0D23; [6F 44, 05, 05]
-0D7A; [6F 44, 05, 20][6F 96, 05, 20]
+A89E; [71 A4 CD, 05, 05]
-0D24; [6F 46, 05, 05]
+A89F; [71 A4 D4, 05, 05]
-0D25; [6F 48, 05, 05]
+A8A0; [71 A4 DB, 05, 05]
-0D26; [6F 4A, 05, 05]
+A8A1; [71 A4 E2, 05, 05]
-0D27; [6F 4C, 05, 05]
+A8A2; [71 A4 E9, 05, 05]
-0D28; [6F 4E, 05, 05]
-0D7B; [6F 4E, 05, 20][6F 96, 05, 20]
+A8A3; [71 A4 F0, 05, 05]
-0D29; [6F 50, 05, 05]
+A8A4; [71 A4 F7, 05, 05]
-0D2A; [6F 52, 05, 05]
+A8A5; [71 A4 FE, 05, 05]
-0D2B; [6F 54, 05, 05]
+A8A6; [71 A5 07, 05, 05]
-0D2C; [6F 56, 05, 05]
+A8A7; [71 A5 0E, 05, 05]
-0D2D; [6F 58, 05, 05]
+A8A8; [71 A5 15, 05, 05]
-0D2E; [6F 5A, 05, 05]
-0D54; [6F 5A, 05, 20][6F 96, 05, 20]
+A8A9; [71 A5 1C, 05, 05]
-0D2F; [6F 5C, 05, 05]
-0D55; [6F 5C, 05, 20][6F 96, 05, 20]
+A8AA; [71 A5 23, 05, 05]
-0D30; [6F 5E, 05, 05]
-0D4E; [6F 5E, 05, 20][6F 96, 05, 20]
-0D7C; [6F 5E, 05, 20][6F 96, 05, 20]
+A8AB; [71 A5 2A, 05, 05]
-0D32; [6F 60, 05, 05]
-0D7D; [6F 60, 05, 20][6F 96, 05, 20]
+A8AC; [71 A5 31, 05, 05]
-0D35; [6F 62, 05, 05]
+A8AD; [71 A5 38, 05, 05]
-0D36; [6F 64, 05, 05]
+A8AE; [71 A5 3F, 05, 05]
-0D37; [6F 66, 05, 05]
+A8AF; [71 A5 46, 05, 05]
-0D38; [6F 68, 05, 05]
+A8B0; [71 A5 4D, 05, 05]
-0D39; [6F 6A, 05, 05]
+A8B1; [71 A5 54, 05, 05]
-0D33; [6F 6C, 05, 05]
-0D7E; [6F 6C, 05, 20][6F 96, 05, 20]
+A8B2; [71 A5 5B, 05, 05]
-0D34; [6F 6E, 05, 05]
-0D56; [6F 6E, 05, 20][6F 96, 05, 20]
+A8B3; [71 A5 62, 05, 05]
-0D31; [6F 70, 05, 05]
+A8B4; [71 A5 69, 05, 05]
-0D3A; [6F 72, 05, 05]
+A8B5; [71 A5 70, 05, 05]
-0D3D; [6F 74, 05, 05]
+A8B6; [71 A5 77, 05, 05]
-0D3E; [6F 76, 05, 05]
+A8B7; [71 A5 7E, 05, 05]
-0D3F; [6F 78, 05, 05]
+A8B8; [71 A5 85, 05, 05]
-0D40; [6F 7A, 05, 05]
+A8B9; [71 A5 8C, 05, 05]
-0D41; [6F 7C, 05, 05]
+A8BA; [71 A5 93, 05, 05]
-0D42; [6F 7E, 05, 05]
+A8BB; [71 A5 9A, 05, 05]
-0D43; [6F 80, 05, 05]
+A8BC; [71 A5 A1, 05, 05]
-0D44; [6F 82, 05, 05]
+A8BD; [71 A5 A8, 05, 05]
-0D62; [6F 84, 05, 05]
+A8BE; [71 A5 AF, 05, 05]
-0D63; [6F 86, 05, 05]
+A8BF; [71 A5 B6, 05, 05]
-0D46; [6F 88, 05, 05]
+A8C0; [71 A5 BD, 05, 05]
-0D47; [6F 8A, 05, 05]
+A8C1; [71 A5 C4, 05, 05]
-0D48; [6F 8C, 05, 05]
+A8C2; [71 A5 CB, 05, 05]
-0D46 0D3E; [6F 8E, 05, 05]
-0D4A; [6F 8E, 05, 05]
+A8C3; [71 A5 D2, 05, 05]
-0D47 0D3E; [6F 90, 05, 05]
-0D4B; [6F 90, 05, 05]
+A8C4; [71 A5 D9, 05, 05]
-0D46 0D57; [6F 92, 05, 05]
-0D4C; [6F 92, 05, 05]
+FDD1 11083; [71 A6 02, 05, 05] # Kaithi first primary (compressible)
-0D57; [6F 94, 05, 05]
+11083; [71 A6 09, 05, 05]
-0D4D; [6F 96, 05, 05]
-0D3B; [6F 96, 05, 20]
-0D3C; [6F 96, 05, 20]
+11084; [71 A6 10, 05, 05]
-FDD1 0D85; [70 04 02, 05, 05] # SINHALA first primary starts new lead byte (compressible)
+11085; [71 A6 17, 05, 05]
-0D85; [70 06, 05, 05]
+11086; [71 A6 1E, 05, 05]
-0D86; [70 08, 05, 05]
+11087; [71 A6 25, 05, 05]
-0D87; [70 0A, 05, 05]
+11088; [71 A6 2C, 05, 05]
-0D88; [70 0C, 05, 05]
+11089; [71 A6 33, 05, 05]
-0D89; [70 0E, 05, 05]
+1108A; [71 A6 3A, 05, 05]
-0D8A; [70 10, 05, 05]
+1108B; [71 A6 41, 05, 05]
-0D8B; [70 12, 05, 05]
+1108C; [71 A6 48, 05, 05]
-0D8C; [70 14, 05, 05]
+1108D; [71 A6 4F, 05, 05]
-0D8D; [70 16, 05, 05]
+1108E; [71 A6 56, 05, 05]
-0D8E; [70 18, 05, 05]
+1108F; [71 A6 5D, 05, 05]
-0D8F; [70 1A, 05, 05]
+11090; [71 A6 64, 05, 05]
-0D90; [70 1C, 05, 05]
+11091; [71 A6 6B, 05, 05]
-0D91; [70 1E, 05, 05]
+11092; [71 A6 72, 05, 05]
-0D92; [70 20, 05, 05]
+11093; [71 A6 79, 05, 05]
-0D93; [70 22, 05, 05]
+11094; [71 A6 80, 05, 05]
-0D94; [70 24, 05, 05]
+11095; [71 A6 87, 05, 05]
-0D95; [70 26, 05, 05]
+11096; [71 A6 8E, 05, 05]
-0D96; [70 28, 05, 05]
+11097; [71 A6 95, 05, 05]
-0D9A; [70 2A, 05, 05]
+11098; [71 A6 9C, 05, 05]
-0D9B; [70 2C, 05, 05]
+11099; [71 A6 A3, 05, 05]
+1109A; [71 A6 A3, 05, 05][, F1 22, 05]
-0D9C; [70 2E, 05, 05]
+1109B; [71 A6 AA, 05, 05]
+1109C; [71 A6 AA, 05, 05][, F1 22, 05]
-0D9D; [70 30, 05, 05]
+1109D; [71 A6 B1, 05, 05]
-0D9E; [70 32, 05, 05]
+1109E; [71 A6 B8, 05, 05]
-0D9F; [70 34, 05, 05]
+1109F; [71 A6 BF, 05, 05]
-0DA0; [70 36, 05, 05]
+110A0; [71 A6 C6, 05, 05]
-0DA1; [70 38, 05, 05]
+110A1; [71 A6 CD, 05, 05]
-0DA2; [70 3A, 05, 05]
+110A2; [71 A6 D4, 05, 05]
-0DA3; [70 3C, 05, 05]
+110A3; [71 A6 DB, 05, 05]
-0DA4; [70 3E, 05, 05]
+110A4; [71 A6 E2, 05, 05]
-0DA5; [70 40, 05, 05]
+110A5; [71 A6 E9, 05, 05]
+110AB; [71 A6 E9, 05, 05][, F1 22, 05]
-0DA6; [70 42, 05, 05]
+110A6; [71 A6 F0, 05, 05]
-0DA7; [70 44, 05, 05]
+110A7; [71 A6 F7, 05, 05]
-0DA8; [70 46, 05, 05]
+110A8; [71 A6 FE, 05, 05]
-0DA9; [70 48, 05, 05]
+110A9; [71 A7 07, 05, 05]
-0DAA; [70 4A, 05, 05]
+110AA; [71 A7 0E, 05, 05]
-0DAB; [70 4C, 05, 05]
+110AC; [71 A7 15, 05, 05]
-0DAC; [70 4E, 05, 05]
+110AD; [71 A7 1C, 05, 05]
-0DAD; [70 50, 05, 05]
+110AE; [71 A7 23, 05, 05]
-0DAE; [70 52, 05, 05]
+110AF; [71 A7 2A, 05, 05]
-0DAF; [70 54, 05, 05]
+110B0; [71 A7 31, 05, 05]
-0DB0; [70 56, 05, 05]
+110B1; [71 A7 38, 05, 05]
-0DB1; [70 58, 05, 05]
+110B2; [71 A7 3F, 05, 05]
-0DB3; [70 5A, 05, 05]
+110B3; [71 A7 46, 05, 05]
-0DB4; [70 5C, 05, 05]
+110B4; [71 A7 4D, 05, 05]
-0DB5; [70 5E, 05, 05]
+110B5; [71 A7 54, 05, 05]
-0DB6; [70 60, 05, 05]
+110B6; [71 A7 5B, 05, 05]
-0DB7; [70 62, 05, 05]
+110B7; [71 A7 62, 05, 05]
-0DB8; [70 64, 05, 05]
+110B8; [71 A7 69, 05, 05]
-0DB9; [70 66, 05, 05]
+110B9; [71 A7 70, 05, 05]
-0DBA; [70 68, 05, 05]
+FDD1 11152; [71 A8 02, 05, 05] # Mahajani first primary (compressible)
-0DBB; [70 6A, 05, 05]
+11150; [71 A8 09, 05, 05]
-0DBD; [70 6C, 05, 05]
+11151; [71 A8 10, 05, 05]
-0DC0; [70 6E, 05, 05]
+11152; [71 A8 17, 05, 05]
-0DC1; [70 70, 05, 05]
+11153; [71 A8 1E, 05, 05]
-0DC2; [70 72, 05, 05]
+11154; [71 A8 25, 05, 05]
-0DC3; [70 74, 05, 05]
+11155; [71 A8 2C, 05, 05]
-0DC4; [70 76, 05, 05]
+11156; [71 A8 33, 05, 05]
-0DC5; [70 78, 05, 05]
+11157; [71 A8 3A, 05, 05]
-0DC6; [70 7A, 05, 05]
+11158; [71 A8 41, 05, 05]
-0DCF; [70 7C, 05, 05]
+11159; [71 A8 48, 05, 05]
-0DD0; [70 7E, 05, 05]
+1115A; [71 A8 4F, 05, 05]
-0DD1; [70 80, 05, 05]
+1115B; [71 A8 56, 05, 05]
-0DD2; [70 82, 05, 05]
+1115C; [71 A8 5D, 05, 05]
-0DD3; [70 84, 05, 05]
+1115D; [71 A8 64, 05, 05]
-0DD4; [70 86, 05, 05]
+1115E; [71 A8 6B, 05, 05]
-0DD6; [70 88, 05, 05]
+1115F; [71 A8 72, 05, 05]
-0DD8; [70 8A, 05, 05]
+11160; [71 A8 79, 05, 05]
-0DF2; [70 8C, 05, 05]
+11161; [71 A8 80, 05, 05]
-0DDF; [70 8E, 05, 05]
+11162; [71 A8 87, 05, 05]
-0DF3; [70 90, 05, 05]
+11163; [71 A8 8E, 05, 05]
-0DD9; [70 92, 05, 05]
+11164; [71 A8 95, 05, 05]
-0DD9 0DCA; [70 94, 05, 05]
-0DDA; [70 94, 05, 05]
+11165; [71 A8 9C, 05, 05]
-0DDB; [70 96, 05, 05]
+11166; [71 A8 A3, 05, 05]
-0DD9 0DCF; [70 98, 05, 05]
-0DDC; [70 98, 05, 05]
+11167; [71 A8 AA, 05, 05]
-0DD9 0DCF 0DCA; [70 9A, 05, 05]
-0DDC 0DCA; [70 9A, 05, 05]
-0DDD; [70 9A, 05, 05]
+11168; [71 A8 B1, 05, 05]
-0DD9 0DDF; [70 9C, 05, 05]
-0DDE; [70 9C, 05, 05]
+11169; [71 A8 B8, 05, 05]
-0DCA; [70 9E, 05, 05]
+1116A; [71 A8 BF, 05, 05]
-FDD1 ABC0; [70 A0 02, 05, 05] # Meetei Mayek first primary (compressible)
+1116B; [71 A8 C6, 05, 05]
-AAF2; [70 A0 09, 05, 05]
+1116C; [71 A8 CD, 05, 05]
-ABC0; [70 A0 10, 05, 05]
+1116D; [71 A8 D4, 05, 05]
-ABC1; [70 A0 17, 05, 05]
+1116E; [71 A8 DB, 05, 05]
-ABC2; [70 A0 1E, 05, 05]
+1116F; [71 A8 E2, 05, 05]
-ABC3; [70 A0 25, 05, 05]
+11176; [71 A8 E9, 05, 05]
-ABC4; [70 A0 2C, 05, 05]
+11170; [71 A8 F0, 05, 05]
-ABC5; [70 A0 33, 05, 05]
+11171; [71 A8 F7, 05, 05]
-ABC6; [70 A0 3A, 05, 05]
+11172; [71 A8 FE, 05, 05]
-ABC7; [70 A0 41, 05, 05]
+FDD1 11183; [71 AA 02, 05, 05] # Sharada first primary (compressible)
-ABC8; [70 A0 48, 05, 05]
+111C4; [71 AA 09, 05, 05]
-ABC9; [70 A0 4F, 05, 05]
+111DA; [71 AA 10, 05, 05]
-ABCA; [70 A0 56, 05, 05]
+11183; [71 AA 17, 05, 05]
-ABCB; [70 A0 5D, 05, 05]
+11184; [71 AA 1E, 05, 05]
-ABCC; [70 A0 64, 05, 05]
+11185; [71 AA 25, 05, 05]
-ABCD; [70 A0 6B, 05, 05]
+11186; [71 AA 2C, 05, 05]
-ABCE; [70 A0 72, 05, 05]
+11187; [71 AA 33, 05, 05]
-ABCF; [70 A0 79, 05, 05]
+11188; [71 AA 3A, 05, 05]
-ABD0; [70 A0 80, 05, 05]
+11189; [71 AA 41, 05, 05]
-ABD1; [70 A0 87, 05, 05]
+1118A; [71 AA 48, 05, 05]
-ABD2; [70 A0 8E, 05, 05]
+1118B; [71 AA 4F, 05, 05]
-ABD3; [70 A0 95, 05, 05]
+1118C; [71 AA 56, 05, 05]
-ABD4; [70 A0 9C, 05, 05]
+1118D; [71 AA 5D, 05, 05]
-ABD5; [70 A0 A3, 05, 05]
+1118E; [71 AA 64, 05, 05]
-ABD6; [70 A0 AA, 05, 05]
+1118F; [71 AA 6B, 05, 05]
-ABD7; [70 A0 B1, 05, 05]
+11190; [71 AA 72, 05, 05]
-ABD8; [70 A0 B8, 05, 05]
+11191; [71 AA 79, 05, 05]
-ABD9; [70 A0 BF, 05, 05]
+11192; [71 AA 80, 05, 05]
-ABDA; [70 A0 C6, 05, 05]
+11193; [71 AA 87, 05, 05]
-AAE0; [70 A0 CD, 05, 05]
+11194; [71 AA 8E, 05, 05]
-AAE1; [70 A0 D4, 05, 05]
+11195; [71 AA 95, 05, 05]
-AAE2; [70 A0 DB, 05, 05]
+11196; [71 AA 9C, 05, 05]
-AAE3; [70 A0 E2, 05, 05]
+11197; [71 AA A3, 05, 05]
-AAE4; [70 A0 E9, 05, 05]
+11198; [71 AA AA, 05, 05]
-AAE5; [70 A0 F0, 05, 05]
+11199; [71 AA B1, 05, 05]
-AAE6; [70 A0 F7, 05, 05]
+1119A; [71 AA B8, 05, 05]
-AAE7; [70 A0 FE, 05, 05]
+1119B; [71 AA BF, 05, 05]
-AAE8; [70 A1 07, 05, 05]
+1119C; [71 AA C6, 05, 05]
-AAE9; [70 A1 0E, 05, 05]
+1119D; [71 AA CD, 05, 05]
-AAEA; [70 A1 15, 05, 05]
+1119E; [71 AA D4, 05, 05]
-ABE3; [70 A1 1C, 05, 05]
+1119F; [71 AA DB, 05, 05]
-ABE4; [70 A1 23, 05, 05]
+111A0; [71 AA E2, 05, 05]
-ABE5; [70 A1 2A, 05, 05]
+111A1; [71 AA E9, 05, 05]
-ABE6; [70 A1 31, 05, 05]
+111A2; [71 AA F0, 05, 05]
-ABE7; [70 A1 38, 05, 05]
+111A3; [71 AA F7, 05, 05]
-ABE8; [70 A1 3F, 05, 05]
+111A4; [71 AA FE, 05, 05]
-ABE9; [70 A1 46, 05, 05]
+111A5; [71 AB 07, 05, 05]
-ABEA; [70 A1 4D, 05, 05]
+111A6; [71 AB 0E, 05, 05]
-AAEB; [70 A1 54, 05, 05]
+111A7; [71 AB 15, 05, 05]
-AAEC; [70 A1 5B, 05, 05]
+111A8; [71 AB 1C, 05, 05]
-AAED; [70 A1 62, 05, 05]
+111A9; [71 AB 23, 05, 05]
-AAEE; [70 A1 69, 05, 05]
+111AA; [71 AB 2A, 05, 05]
-AAEF; [70 A1 70, 05, 05]
+111AB; [71 AB 31, 05, 05]
-AAF5; [70 A1 77, 05, 05]
+111AC; [71 AB 38, 05, 05]
-ABDB; [70 A1 7E, 05, 05]
+111AD; [71 AB 3F, 05, 05]
-ABDC; [70 A1 85, 05, 05]
+111AE; [71 AB 46, 05, 05]
-ABDD; [70 A1 8C, 05, 05]
+111AF; [71 AB 4D, 05, 05]
-ABDE; [70 A1 93, 05, 05]
+111B0; [71 AB 54, 05, 05]
-ABDF; [70 A1 9A, 05, 05]
+111B1; [71 AB 5B, 05, 05]
-ABE0; [70 A1 A1, 05, 05]
+111B2; [71 AB 62, 05, 05]
-ABE1; [70 A1 A8, 05, 05]
+111C1; [71 AB 69, 05, 05]
-ABE2; [70 A1 AF, 05, 05]
+111C2; [71 AB 70, 05, 05]
-ABED; [70 A1 B6, 05, 05]
+111C3; [71 AB 77, 05, 05]
-AAF6; [70 A1 BD, 05, 05]
+111DC; [71 AB 7E, 05, 05]
-FDD1 A800; [70 A2 02, 05, 05] # SYLOTI_NAGRI first primary (compressible)
+111B3; [71 AB 85, 05, 05]
-A800; [70 A2 09, 05, 05]
+111B4; [71 AB 8C, 05, 05]
-A801; [70 A2 10, 05, 05]
+111B5; [71 AB 93, 05, 05]
-A802; [70 A2 17, 05, 05]
+111B6; [71 AB 9A, 05, 05]
-A803; [70 A2 1E, 05, 05]
+111B7; [71 AB A1, 05, 05]
-A804; [70 A2 25, 05, 05]
+111B8; [71 AB A8, 05, 05]
-A805; [70 A2 2C, 05, 05]
+111B9; [71 AB AF, 05, 05]
-A806; [70 A2 33, 05, 05]
+111BA; [71 AB B6, 05, 05]
-A807; [70 A2 3A, 05, 05]
+111BB; [71 AB BD, 05, 05]
-A808; [70 A2 41, 05, 05]
+111BC; [71 AB C4, 05, 05]
-A809; [70 A2 48, 05, 05]
+111BD; [71 AB CB, 05, 05]
-A80A; [70 A2 4F, 05, 05]
+111BE; [71 AB D2, 05, 05]
-A80C; [70 A2 56, 05, 05]
+111BF; [71 AB D9, 05, 05]
-A80D; [70 A2 5D, 05, 05]
+111C0; [71 AB E0, 05, 05]
-A80E; [70 A2 64, 05, 05]
+FDD1 11208; [71 AC 02, 05, 05] # Khojki first primary (compressible)
-A80F; [70 A2 6B, 05, 05]
+11200; [71 AC 09, 05, 05]
-A810; [70 A2 72, 05, 05]
+11201; [71 AC 10, 05, 05]
-A811; [70 A2 79, 05, 05]
+11202; [71 AC 17, 05, 05]
-A812; [70 A2 80, 05, 05]
+11203; [71 AC 1E, 05, 05]
-A813; [70 A2 87, 05, 05]
+11204; [71 AC 25, 05, 05]
-A814; [70 A2 8E, 05, 05]
+11205; [71 AC 2C, 05, 05]
-A815; [70 A2 95, 05, 05]
+11206; [71 AC 33, 05, 05]
-A816; [70 A2 9C, 05, 05]
+11207; [71 AC 3A, 05, 05]
-A817; [70 A2 A3, 05, 05]
+11208; [71 AC 41, 05, 05]
-A818; [70 A2 AA, 05, 05]
+11209; [71 AC 48, 05, 05]
-A819; [70 A2 B1, 05, 05]
+1120A; [71 AC 4F, 05, 05]
-A81A; [70 A2 B8, 05, 05]
+1120B; [71 AC 56, 05, 05]
-A81B; [70 A2 BF, 05, 05]
+1120C; [71 AC 5D, 05, 05]
-A81C; [70 A2 C6, 05, 05]
+1120D; [71 AC 64, 05, 05]
-A81D; [70 A2 CD, 05, 05]
+1120E; [71 AC 6B, 05, 05]
-A81E; [70 A2 D4, 05, 05]
+1120F; [71 AC 72, 05, 05]
-A81F; [70 A2 DB, 05, 05]
+11210; [71 AC 79, 05, 05]
-A820; [70 A2 E2, 05, 05]
+11211; [71 AC 80, 05, 05]
-A821; [70 A2 E9, 05, 05]
+11213; [71 AC 87, 05, 05]
-A822; [70 A2 F0, 05, 05]
+11214; [71 AC 8E, 05, 05]
-A823; [70 A2 F7, 05, 05]
+11215; [71 AC 95, 05, 05]
-A824; [70 A2 FE, 05, 05]
+11216; [71 AC 9C, 05, 05]
-A825; [70 A3 07, 05, 05]
+11217; [71 AC A3, 05, 05]
-A826; [70 A3 0E, 05, 05]
+11218; [71 AC AA, 05, 05]
-A827; [70 A3 15, 05, 05]
+11219; [71 AC B1, 05, 05]
-FDD1 A882; [70 A4 02, 05, 05] # Saurashtra first primary (compressible)
+1121A; [71 AC B8, 05, 05]
-A882; [70 A4 09, 05, 05]
+1121B; [71 AC BF, 05, 05]
-A883; [70 A4 10, 05, 05]
+1121C; [71 AC C6, 05, 05]
-A884; [70 A4 17, 05, 05]
+1121D; [71 AC CD, 05, 05]
-A885; [70 A4 1E, 05, 05]
+1121E; [71 AC D4, 05, 05]
-A886; [70 A4 25, 05, 05]
+1121F; [71 AC DB, 05, 05]
-A887; [70 A4 2C, 05, 05]
+11220; [71 AC E2, 05, 05]
-A888; [70 A4 33, 05, 05]
+11221; [71 AC E9, 05, 05]
-A889; [70 A4 3A, 05, 05]
+11222; [71 AC F0, 05, 05]
-A88A; [70 A4 41, 05, 05]
+11223; [71 AC F7, 05, 05]
-A88B; [70 A4 48, 05, 05]
+11224; [71 AC FE, 05, 05]
-A88C; [70 A4 4F, 05, 05]
+11225; [71 AD 07, 05, 05]
-A88D; [70 A4 56, 05, 05]
+11226; [71 AD 0E, 05, 05]
-A88E; [70 A4 5D, 05, 05]
+11227; [71 AD 15, 05, 05]
-A88F; [70 A4 64, 05, 05]
+11228; [71 AD 1C, 05, 05]
-A890; [70 A4 6B, 05, 05]
+11229; [71 AD 23, 05, 05]
-A891; [70 A4 72, 05, 05]
+1122A; [71 AD 2A, 05, 05]
-A892; [70 A4 79, 05, 05]
+1122B; [71 AD 31, 05, 05]
-A893; [70 A4 80, 05, 05]
+1122C; [71 AD 38, 05, 05]
-A894; [70 A4 87, 05, 05]
+1122D; [71 AD 3F, 05, 05]
-A895; [70 A4 8E, 05, 05]
+1122E; [71 AD 46, 05, 05]
-A896; [70 A4 95, 05, 05]
+1122F; [71 AD 4D, 05, 05]
-A897; [70 A4 9C, 05, 05]
+11230; [71 AD 54, 05, 05]
-A898; [70 A4 A3, 05, 05]
+11231; [71 AD 5B, 05, 05]
-A899; [70 A4 AA, 05, 05]
+11232; [71 AD 62, 05, 05]
-A89A; [70 A4 B1, 05, 05]
+11233; [71 AD 69, 05, 05]
-A89B; [70 A4 B8, 05, 05]
+11235; [71 AD 70, 05, 05]
-A89C; [70 A4 BF, 05, 05]
+FDD1 112BE; [71 AE 02, 05, 05] # Khudawadi first primary (compressible)
-A89D; [70 A4 C6, 05, 05]
+112B0; [71 AE 09, 05, 05]
-A89E; [70 A4 CD, 05, 05]
+112B1; [71 AE 10, 05, 05]
-A89F; [70 A4 D4, 05, 05]
+112B2; [71 AE 17, 05, 05]
-A8A0; [70 A4 DB, 05, 05]
+112B3; [71 AE 1E, 05, 05]
-A8A1; [70 A4 E2, 05, 05]
+112B4; [71 AE 25, 05, 05]
-A8A2; [70 A4 E9, 05, 05]
+112B5; [71 AE 2C, 05, 05]
-A8A3; [70 A4 F0, 05, 05]
+112B6; [71 AE 33, 05, 05]
-A8A4; [70 A4 F7, 05, 05]
+112B7; [71 AE 3A, 05, 05]
-A8A5; [70 A4 FE, 05, 05]
+112B8; [71 AE 41, 05, 05]
-A8A6; [70 A5 07, 05, 05]
+112B9; [71 AE 48, 05, 05]
-A8A7; [70 A5 0E, 05, 05]
+112BA; [71 AE 4F, 05, 05]
-A8A8; [70 A5 15, 05, 05]
+112BB; [71 AE 56, 05, 05]
-A8A9; [70 A5 1C, 05, 05]
+112BC; [71 AE 5D, 05, 05]
-A8AA; [70 A5 23, 05, 05]
+112BD; [71 AE 64, 05, 05]
-A8AB; [70 A5 2A, 05, 05]
+112BE; [71 AE 6B, 05, 05]
-A8AC; [70 A5 31, 05, 05]
+112BF; [71 AE 72, 05, 05]
-A8AD; [70 A5 38, 05, 05]
+112C0; [71 AE 79, 05, 05]
-A8AE; [70 A5 3F, 05, 05]
+112C1; [71 AE 80, 05, 05]
-A8AF; [70 A5 46, 05, 05]
+112C2; [71 AE 87, 05, 05]
-A8B0; [70 A5 4D, 05, 05]
+112C3; [71 AE 8E, 05, 05]
-A8B1; [70 A5 54, 05, 05]
+112C4; [71 AE 95, 05, 05]
-A8B2; [70 A5 5B, 05, 05]
+112C5; [71 AE 9C, 05, 05]
-A8B3; [70 A5 62, 05, 05]
+112C6; [71 AE A3, 05, 05]
-A8B4; [70 A5 69, 05, 05]
+112C7; [71 AE AA, 05, 05]
-A8B5; [70 A5 70, 05, 05]
+112C8; [71 AE B1, 05, 05]
-A8B6; [70 A5 77, 05, 05]
+112C9; [71 AE B8, 05, 05]
-A8B7; [70 A5 7E, 05, 05]
+112CA; [71 AE BF, 05, 05]
-A8B8; [70 A5 85, 05, 05]
+112CB; [71 AE C6, 05, 05]
-A8B9; [70 A5 8C, 05, 05]
+112CC; [71 AE CD, 05, 05]
-A8BA; [70 A5 93, 05, 05]
+112CD; [71 AE D4, 05, 05]
-A8BB; [70 A5 9A, 05, 05]
+112CE; [71 AE DB, 05, 05]
-A8BC; [70 A5 A1, 05, 05]
+112CF; [71 AE E2, 05, 05]
-A8BD; [70 A5 A8, 05, 05]
+112D0; [71 AE E9, 05, 05]
-A8BE; [70 A5 AF, 05, 05]
+112D1; [71 AE F0, 05, 05]
-A8BF; [70 A5 B6, 05, 05]
+112D2; [71 AE F7, 05, 05]
-A8C0; [70 A5 BD, 05, 05]
+112D3; [71 AE FE, 05, 05]
-A8C1; [70 A5 C4, 05, 05]
+112D4; [71 AF 07, 05, 05]
-A8C2; [70 A5 CB, 05, 05]
+112D5; [71 AF 0E, 05, 05]
-A8C3; [70 A5 D2, 05, 05]
+112D6; [71 AF 15, 05, 05]
-A8C4; [70 A5 D9, 05, 05]
+112D7; [71 AF 1C, 05, 05]
-FDD1 11083; [70 A6 02, 05, 05] # Kaithi first primary (compressible)
+112D8; [71 AF 23, 05, 05]
-11083; [70 A6 09, 05, 05]
+112D9; [71 AF 2A, 05, 05]
-11084; [70 A6 10, 05, 05]
+112DA; [71 AF 31, 05, 05]
-11085; [70 A6 17, 05, 05]
+112DB; [71 AF 38, 05, 05]
-11086; [70 A6 1E, 05, 05]
+112DC; [71 AF 3F, 05, 05]
-11087; [70 A6 25, 05, 05]
+112DD; [71 AF 46, 05, 05]
-11088; [70 A6 2C, 05, 05]
+112DE; [71 AF 4D, 05, 05]
-11089; [70 A6 33, 05, 05]
+112E0; [71 AF 54, 05, 05]
-1108A; [70 A6 3A, 05, 05]
+112E1; [71 AF 5B, 05, 05]
-1108B; [70 A6 41, 05, 05]
+112E2; [71 AF 62, 05, 05]
-1108C; [70 A6 48, 05, 05]
+112E3; [71 AF 69, 05, 05]
-1108D; [70 A6 4F, 05, 05]
+112E4; [71 AF 70, 05, 05]
-1108E; [70 A6 56, 05, 05]
+112E5; [71 AF 77, 05, 05]
-1108F; [70 A6 5D, 05, 05]
+112E6; [71 AF 7E, 05, 05]
-11090; [70 A6 64, 05, 05]
+112E7; [71 AF 85, 05, 05]
-11091; [70 A6 6B, 05, 05]
+112E8; [71 AF 8C, 05, 05]
-11092; [70 A6 72, 05, 05]
+112EA; [71 AF 93, 05, 05]
-11093; [70 A6 79, 05, 05]
+FDD1 1128F; [71 B0 02, 05, 05] # Multani first primary (compressible)
-11094; [70 A6 80, 05, 05]
+11280; [71 B0 09, 05, 05]
-11095; [70 A6 87, 05, 05]
+11281; [71 B0 10, 05, 05]
-11096; [70 A6 8E, 05, 05]
+11282; [71 B0 17, 05, 05]
-11097; [70 A6 95, 05, 05]
+11283; [71 B0 1E, 05, 05]
-11098; [70 A6 9C, 05, 05]
+112A5; [71 B0 25, 05, 05]
-11099; [70 A6 A3, 05, 05]
-1109A; [70 A6 A3, 05, 05][, F1 22, 05]
+112A6; [71 B0 2C, 05, 05]
-1109B; [70 A6 AA, 05, 05]
-1109C; [70 A6 AA, 05, 05][, F1 22, 05]
+11284; [71 B0 33, 05, 05]
-1109D; [70 A6 B1, 05, 05]
+11285; [71 B0 3A, 05, 05]
-1109E; [70 A6 B8, 05, 05]
+11286; [71 B0 41, 05, 05]
-1109F; [70 A6 BF, 05, 05]
+11288; [71 B0 48, 05, 05]
-110A0; [70 A6 C6, 05, 05]
+1128A; [71 B0 4F, 05, 05]
-110A1; [70 A6 CD, 05, 05]
+1128B; [71 B0 56, 05, 05]
-110A2; [70 A6 D4, 05, 05]
+1128C; [71 B0 5D, 05, 05]
-110A3; [70 A6 DB, 05, 05]
+1128D; [71 B0 64, 05, 05]
-110A4; [70 A6 E2, 05, 05]
+1128F; [71 B0 6B, 05, 05]
-110A5; [70 A6 E9, 05, 05]
-110AB; [70 A6 E9, 05, 05][, F1 22, 05]
+11290; [71 B0 72, 05, 05]
-110A6; [70 A6 F0, 05, 05]
+11291; [71 B0 79, 05, 05]
-110A7; [70 A6 F7, 05, 05]
+11292; [71 B0 80, 05, 05]
-110A8; [70 A6 FE, 05, 05]
+11293; [71 B0 87, 05, 05]
-110A9; [70 A7 07, 05, 05]
+11294; [71 B0 8E, 05, 05]
-110AA; [70 A7 0E, 05, 05]
+11295; [71 B0 95, 05, 05]
-110AC; [70 A7 15, 05, 05]
+11296; [71 B0 9C, 05, 05]
-110AD; [70 A7 1C, 05, 05]
+11297; [71 B0 A3, 05, 05]
-110AE; [70 A7 23, 05, 05]
+11298; [71 B0 AA, 05, 05]
-110AF; [70 A7 2A, 05, 05]
+11299; [71 B0 B1, 05, 05]
-110B0; [70 A7 31, 05, 05]
+1129A; [71 B0 B8, 05, 05]
-110B1; [70 A7 38, 05, 05]
+1129B; [71 B0 BF, 05, 05]
-110B2; [70 A7 3F, 05, 05]
+1129C; [71 B0 C6, 05, 05]
-110B3; [70 A7 46, 05, 05]
+1129D; [71 B0 CD, 05, 05]
-110B4; [70 A7 4D, 05, 05]
+1129F; [71 B0 D4, 05, 05]
-110B5; [70 A7 54, 05, 05]
+112A0; [71 B0 DB, 05, 05]
-110B6; [70 A7 5B, 05, 05]
+112A1; [71 B0 E2, 05, 05]
-110B7; [70 A7 62, 05, 05]
+112A2; [71 B0 E9, 05, 05]
-110B8; [70 A7 69, 05, 05]
+112A3; [71 B0 F0, 05, 05]
-110B9; [70 A7 70, 05, 05]
+112A4; [71 B0 F7, 05, 05]
-FDD1 11152; [70 A8 02, 05, 05] # Mahajani first primary (compressible)
+112A7; [71 B0 FE, 05, 05]
-11150; [70 A8 09, 05, 05]
+112A8; [71 B1 07, 05, 05]
-11151; [70 A8 10, 05, 05]
+FDD1 11315; [71 B2 02, 05, 05] # Grantha first primary (compressible)
-11152; [70 A8 17, 05, 05]
+11350; [71 B2 09, 05, 05]
-11153; [70 A8 1E, 05, 05]
+11305; [71 B2 10, 05, 05]
-11154; [70 A8 25, 05, 05]
+11306; [71 B2 17, 05, 05]
-11155; [70 A8 2C, 05, 05]
+11307; [71 B2 1E, 05, 05]
-11156; [70 A8 33, 05, 05]
+11308; [71 B2 25, 05, 05]
-11157; [70 A8 3A, 05, 05]
+11309; [71 B2 2C, 05, 05]
-11158; [70 A8 41, 05, 05]
+1130A; [71 B2 33, 05, 05]
-11159; [70 A8 48, 05, 05]
+1130B; [71 B2 3A, 05, 05]
-1115A; [70 A8 4F, 05, 05]
+11360; [71 B2 41, 05, 05]
-1115B; [70 A8 56, 05, 05]
+1130C; [71 B2 48, 05, 05]
-1115C; [70 A8 5D, 05, 05]
+11361; [71 B2 4F, 05, 05]
-1115D; [70 A8 64, 05, 05]
+1130F; [71 B2 56, 05, 05]
-1115E; [70 A8 6B, 05, 05]
+11310; [71 B2 5D, 05, 05]
-1115F; [70 A8 72, 05, 05]
+11313; [71 B2 64, 05, 05]
-11160; [70 A8 79, 05, 05]
+11314; [71 B2 6B, 05, 05]
-11161; [70 A8 80, 05, 05]
+11315; [71 B2 72, 05, 05]
-11162; [70 A8 87, 05, 05]
+11316; [71 B2 79, 05, 05]
-11163; [70 A8 8E, 05, 05]
+11317; [71 B2 80, 05, 05]
-11164; [70 A8 95, 05, 05]
+11318; [71 B2 87, 05, 05]
-11165; [70 A8 9C, 05, 05]
+11319; [71 B2 8E, 05, 05]
-11166; [70 A8 A3, 05, 05]
+1131A; [71 B2 95, 05, 05]
-11167; [70 A8 AA, 05, 05]
+1131B; [71 B2 9C, 05, 05]
-11168; [70 A8 B1, 05, 05]
+1131C; [71 B2 A3, 05, 05]
-11169; [70 A8 B8, 05, 05]
+1131D; [71 B2 AA, 05, 05]
-1116A; [70 A8 BF, 05, 05]
+1131E; [71 B2 B1, 05, 05]
-1116B; [70 A8 C6, 05, 05]
+1131F; [71 B2 B8, 05, 05]
-1116C; [70 A8 CD, 05, 05]
+11320; [71 B2 BF, 05, 05]
-1116D; [70 A8 D4, 05, 05]
+11321; [71 B2 C6, 05, 05]
-1116E; [70 A8 DB, 05, 05]
+11322; [71 B2 CD, 05, 05]
-1116F; [70 A8 E2, 05, 05]
+11323; [71 B2 D4, 05, 05]
-11176; [70 A8 E9, 05, 05]
+11324; [71 B2 DB, 05, 05]
-11170; [70 A8 F0, 05, 05]
+11325; [71 B2 E2, 05, 05]
-11171; [70 A8 F7, 05, 05]
+11326; [71 B2 E9, 05, 05]
-11172; [70 A8 FE, 05, 05]
+11327; [71 B2 F0, 05, 05]
-FDD1 11183; [70 AA 02, 05, 05] # Sharada first primary (compressible)
+11328; [71 B2 F7, 05, 05]
-111C4; [70 AA 09, 05, 05]
+1132A; [71 B2 FE, 05, 05]
-111DA; [70 AA 10, 05, 05]
+1132B; [71 B3 07, 05, 05]
-11183; [70 AA 17, 05, 05]
+1132C; [71 B3 0E, 05, 05]
-11184; [70 AA 1E, 05, 05]
+1132D; [71 B3 15, 05, 05]
-11185; [70 AA 25, 05, 05]
+1132E; [71 B3 1C, 05, 05]
-11186; [70 AA 2C, 05, 05]
+1132F; [71 B3 23, 05, 05]
-11187; [70 AA 33, 05, 05]
+11330; [71 B3 2A, 05, 05]
-11188; [70 AA 3A, 05, 05]
+11332; [71 B3 31, 05, 05]
-11189; [70 AA 41, 05, 05]
+11333; [71 B3 38, 05, 05]
-1118A; [70 AA 48, 05, 05]
+11335; [71 B3 3F, 05, 05]
-1118B; [70 AA 4F, 05, 05]
+11336; [71 B3 46, 05, 05]
-1118C; [70 AA 56, 05, 05]
+11337; [71 B3 4D, 05, 05]
-1118D; [70 AA 5D, 05, 05]
+11338; [71 B3 54, 05, 05]
-1118E; [70 AA 64, 05, 05]
+11339; [71 B3 5B, 05, 05]
-1118F; [70 AA 6B, 05, 05]
+1133D; [71 B3 62, 05, 05]
-11190; [70 AA 72, 05, 05]
+1135E; [71 B3 69, 05, 05]
-11191; [70 AA 79, 05, 05]
+1135F; [71 B3 70, 05, 05]
-11192; [70 AA 80, 05, 05]
+1133E; [71 B3 77, 05, 05]
-11193; [70 AA 87, 05, 05]
+1133F; [71 B3 7E, 05, 05]
-11194; [70 AA 8E, 05, 05]
+11340; [71 B3 85, 05, 05]
-11195; [70 AA 95, 05, 05]
+11341; [71 B3 8C, 05, 05]
-11196; [70 AA 9C, 05, 05]
+11342; [71 B3 93, 05, 05]
-11197; [70 AA A3, 05, 05]
+11343; [71 B3 9A, 05, 05]
-11198; [70 AA AA, 05, 05]
+11344; [71 B3 A1, 05, 05]
-11199; [70 AA B1, 05, 05]
+11362; [71 B3 A8, 05, 05]
-1119A; [70 AA B8, 05, 05]
+11363; [71 B3 AF, 05, 05]
-1119B; [70 AA BF, 05, 05]
+11347; [71 B3 B6, 05, 05]
-1119C; [70 AA C6, 05, 05]
+11348; [71 B3 BD, 05, 05]
-1119D; [70 AA CD, 05, 05]
+11347 1133E; [71 B3 C4, 05, 05]
+1134B; [71 B3 C4, 05, 05]
-1119E; [70 AA D4, 05, 05]
+11347 11357; [71 B3 CB, 05, 05]
+1134C; [71 B3 CB, 05, 05]
-1119F; [70 AA DB, 05, 05]
+1134D; [71 B3 D2, 05, 05]
-111A0; [70 AA E2, 05, 05]
+11357; [71 B3 D9, 05, 05]
-111A1; [70 AA E9, 05, 05]
+1135D; [71 B3 E0, 05, 05]
-111A2; [70 AA F0, 05, 05]
+FDD1 11412; [71 B4 02, 05, 05] # Newa first primary (compressible)
-111A3; [70 AA F7, 05, 05]
+11449; [71 B4 09, 05, 05]
-111A4; [70 AA FE, 05, 05]
+1144A; [71 B4 10, 05, 05]
-111A5; [70 AB 07, 05, 05]
+11400; [71 B4 17, 05, 05]
-111A6; [70 AB 0E, 05, 05]
+11401; [71 B4 1E, 05, 05]
-111A7; [70 AB 15, 05, 05]
+11402; [71 B4 25, 05, 05]
-111A8; [70 AB 1C, 05, 05]
+11403; [71 B4 2C, 05, 05]
-111A9; [70 AB 23, 05, 05]
+11404; [71 B4 33, 05, 05]
-111AA; [70 AB 2A, 05, 05]
+11405; [71 B4 3A, 05, 05]
-111AB; [70 AB 31, 05, 05]
+11406; [71 B4 41, 05, 05]
-111AC; [70 AB 38, 05, 05]
+11407; [71 B4 48, 05, 05]
-111AD; [70 AB 3F, 05, 05]
+11408; [71 B4 4F, 05, 05]
-111AE; [70 AB 46, 05, 05]
+11409; [71 B4 56, 05, 05]
-111AF; [70 AB 4D, 05, 05]
+1140A; [71 B4 5D, 05, 05]
-111B0; [70 AB 54, 05, 05]
+1140B; [71 B4 64, 05, 05]
-111B1; [70 AB 5B, 05, 05]
+1140C; [71 B4 6B, 05, 05]
-111B2; [70 AB 62, 05, 05]
+1140D; [71 B4 72, 05, 05]
-111C1; [70 AB 69, 05, 05]
+1140E; [71 B4 79, 05, 05]
-111C2; [70 AB 70, 05, 05]
+1140F; [71 B4 80, 05, 05]
-111C3; [70 AB 77, 05, 05]
+11410; [71 B4 87, 05, 05]
-111DC; [70 AB 7E, 05, 05]
+11411; [71 B4 8E, 05, 05]
-111B3; [70 AB 85, 05, 05]
+11412; [71 B4 95, 05, 05]
-111B4; [70 AB 8C, 05, 05]
+11413; [71 B4 9C, 05, 05]
-111B5; [70 AB 93, 05, 05]
+11414; [71 B4 A3, 05, 05]
-111B6; [70 AB 9A, 05, 05]
+11415; [71 B4 AA, 05, 05]
-111B7; [70 AB A1, 05, 05]
+11416; [71 B4 B1, 05, 05]
-111B8; [70 AB A8, 05, 05]
+11417; [71 B4 B8, 05, 05]
-111B9; [70 AB AF, 05, 05]
+11418; [71 B4 BF, 05, 05]
-111BA; [70 AB B6, 05, 05]
+11419; [71 B4 C6, 05, 05]
-111BB; [70 AB BD, 05, 05]
+1141A; [71 B4 CD, 05, 05]
-111BC; [70 AB C4, 05, 05]
+1141B; [71 B4 D4, 05, 05]
-111BD; [70 AB CB, 05, 05]
+1141C; [71 B4 DB, 05, 05]
-111BE; [70 AB D2, 05, 05]
+1141D; [71 B4 E2, 05, 05]
-111BF; [70 AB D9, 05, 05]
+1141E; [71 B4 E9, 05, 05]
-111C0; [70 AB E0, 05, 05]
+1141F; [71 B4 F0, 05, 05]
-FDD1 11208; [70 AC 02, 05, 05] # Khojki first primary (compressible)
+11420; [71 B4 F7, 05, 05]
-11200; [70 AC 09, 05, 05]
+11421; [71 B4 FE, 05, 05]
-11201; [70 AC 10, 05, 05]
+11422; [71 B5 07, 05, 05]
-11202; [70 AC 17, 05, 05]
+11423; [71 B5 0E, 05, 05]
-11203; [70 AC 1E, 05, 05]
+11424; [71 B5 15, 05, 05]
-11204; [70 AC 25, 05, 05]
+11425; [71 B5 1C, 05, 05]
-11205; [70 AC 2C, 05, 05]
+11426; [71 B5 23, 05, 05]
-11206; [70 AC 33, 05, 05]
+11427; [71 B5 2A, 05, 05]
-11207; [70 AC 3A, 05, 05]
+11428; [71 B5 31, 05, 05]
-11208; [70 AC 41, 05, 05]
+11429; [71 B5 38, 05, 05]
-11209; [70 AC 48, 05, 05]
+1142A; [71 B5 3F, 05, 05]
-1120A; [70 AC 4F, 05, 05]
+1142B; [71 B5 46, 05, 05]
-1120B; [70 AC 56, 05, 05]
+1142C; [71 B5 4D, 05, 05]
-1120C; [70 AC 5D, 05, 05]
+1142D; [71 B5 54, 05, 05]
-1120D; [70 AC 64, 05, 05]
+1142E; [71 B5 5B, 05, 05]
-1120E; [70 AC 6B, 05, 05]
+1142F; [71 B5 62, 05, 05]
-1120F; [70 AC 72, 05, 05]
+11430; [71 B5 69, 05, 05]
-11210; [70 AC 79, 05, 05]
+11431; [71 B5 70, 05, 05]
-11211; [70 AC 80, 05, 05]
+11432; [71 B5 77, 05, 05]
-11213; [70 AC 87, 05, 05]
+11433; [71 B5 7E, 05, 05]
-11214; [70 AC 8E, 05, 05]
+11434; [71 B5 85, 05, 05]
-11215; [70 AC 95, 05, 05]
+11447; [71 B5 8C, 05, 05]
-11216; [70 AC 9C, 05, 05]
+11448; [71 B5 93, 05, 05]
-11217; [70 AC A3, 05, 05]
+11435; [71 B5 9A, 05, 05]
-11218; [70 AC AA, 05, 05]
+11436; [71 B5 A1, 05, 05]
-11219; [70 AC B1, 05, 05]
+11437; [71 B5 A8, 05, 05]
-1121A; [70 AC B8, 05, 05]
+11438; [71 B5 AF, 05, 05]
-1121B; [70 AC BF, 05, 05]
+11439; [71 B5 B6, 05, 05]
-1121C; [70 AC C6, 05, 05]
+1143A; [71 B5 BD, 05, 05]
-1121D; [70 AC CD, 05, 05]
+1143B; [71 B5 C4, 05, 05]
-1121E; [70 AC D4, 05, 05]
+1143C; [71 B5 CB, 05, 05]
-1121F; [70 AC DB, 05, 05]
+1143D; [71 B5 D2, 05, 05]
-11220; [70 AC E2, 05, 05]
+1143E; [71 B5 D9, 05, 05]
-11221; [70 AC E9, 05, 05]
+1143F; [71 B5 E0, 05, 05]
-11222; [70 AC F0, 05, 05]
+11440; [71 B5 E7, 05, 05]
-11223; [70 AC F7, 05, 05]
+11441; [71 B5 EE, 05, 05]
-11224; [70 AC FE, 05, 05]
+11442; [71 B5 F5, 05, 05]
-11225; [70 AD 07, 05, 05]
+FDD1 11484; [71 B6 02, 05, 05] # Tirhuta first primary (compressible)
-11226; [70 AD 0E, 05, 05]
+114C7; [71 B6 09, 05, 05]
-11227; [70 AD 15, 05, 05]
+11480; [71 B6 10, 05, 05]
-11228; [70 AD 1C, 05, 05]
+11481; [71 B6 17, 05, 05]
-11229; [70 AD 23, 05, 05]
+11482; [71 B6 1E, 05, 05]
-1122A; [70 AD 2A, 05, 05]
+11483; [71 B6 25, 05, 05]
-1122B; [70 AD 31, 05, 05]
+11484; [71 B6 2C, 05, 05]
-1122C; [70 AD 38, 05, 05]
+11485; [71 B6 33, 05, 05]
-1122D; [70 AD 3F, 05, 05]
+11486; [71 B6 3A, 05, 05]
-1122E; [70 AD 46, 05, 05]
+11487; [71 B6 41, 05, 05]
-1122F; [70 AD 4D, 05, 05]
+11488; [71 B6 48, 05, 05]
-11230; [70 AD 54, 05, 05]
+11489; [71 B6 4F, 05, 05]
-11231; [70 AD 5B, 05, 05]
+1148A; [71 B6 56, 05, 05]
-11232; [70 AD 62, 05, 05]
+1148B; [71 B6 5D, 05, 05]
-11233; [70 AD 69, 05, 05]
+1148C; [71 B6 64, 05, 05]
-11235; [70 AD 70, 05, 05]
+1148D; [71 B6 6B, 05, 05]
-FDD1 112BE; [70 AE 02, 05, 05] # Khudawadi first primary (compressible)
+1148E; [71 B6 72, 05, 05]
-112B0; [70 AE 09, 05, 05]
+1148F; [71 B6 79, 05, 05]
-112B1; [70 AE 10, 05, 05]
+11490; [71 B6 80, 05, 05]
-112B2; [70 AE 17, 05, 05]
+11491; [71 B6 87, 05, 05]
-112B3; [70 AE 1E, 05, 05]
+11492; [71 B6 8E, 05, 05]
-112B4; [70 AE 25, 05, 05]
+11493; [71 B6 95, 05, 05]
-112B5; [70 AE 2C, 05, 05]
+11494; [71 B6 9C, 05, 05]
-112B6; [70 AE 33, 05, 05]
+11495; [71 B6 A3, 05, 05]
-112B7; [70 AE 3A, 05, 05]
+11496; [71 B6 AA, 05, 05]
-112B8; [70 AE 41, 05, 05]
+11497; [71 B6 B1, 05, 05]
-112B9; [70 AE 48, 05, 05]
+11498; [71 B6 B8, 05, 05]
-112BA; [70 AE 4F, 05, 05]
+11499; [71 B6 BF, 05, 05]
-112BB; [70 AE 56, 05, 05]
+1149A; [71 B6 C6, 05, 05]
-112BC; [70 AE 5D, 05, 05]
+1149B; [71 B6 CD, 05, 05]
-112BD; [70 AE 64, 05, 05]
+1149C; [71 B6 D4, 05, 05]
-112BE; [70 AE 6B, 05, 05]
+1149D; [71 B6 DB, 05, 05]
-112BF; [70 AE 72, 05, 05]
+1149E; [71 B6 E2, 05, 05]
-112C0; [70 AE 79, 05, 05]
+1149F; [71 B6 E9, 05, 05]
-112C1; [70 AE 80, 05, 05]
+114A0; [71 B6 F0, 05, 05]
-112C2; [70 AE 87, 05, 05]
+114A1; [71 B6 F7, 05, 05]
-112C3; [70 AE 8E, 05, 05]
+114A2; [71 B6 FE, 05, 05]
-112C4; [70 AE 95, 05, 05]
+114A3; [71 B7 07, 05, 05]
-112C5; [70 AE 9C, 05, 05]
+114A4; [71 B7 0E, 05, 05]
-112C6; [70 AE A3, 05, 05]
+114A5; [71 B7 15, 05, 05]
-112C7; [70 AE AA, 05, 05]
+114A6; [71 B7 1C, 05, 05]
-112C8; [70 AE B1, 05, 05]
+114A7; [71 B7 23, 05, 05]
-112C9; [70 AE B8, 05, 05]
+114A8; [71 B7 2A, 05, 05]
-112CA; [70 AE BF, 05, 05]
+114A9; [71 B7 31, 05, 05]
-112CB; [70 AE C6, 05, 05]
+114AA; [71 B7 38, 05, 05]
-112CC; [70 AE CD, 05, 05]
+114AB; [71 B7 3F, 05, 05]
-112CD; [70 AE D4, 05, 05]
+114AC; [71 B7 46, 05, 05]
-112CE; [70 AE DB, 05, 05]
+114AD; [71 B7 4D, 05, 05]
-112CF; [70 AE E2, 05, 05]
+114AE; [71 B7 54, 05, 05]
-112D0; [70 AE E9, 05, 05]
+114AF; [71 B7 5B, 05, 05]
-112D1; [70 AE F0, 05, 05]
+114C4; [71 B7 62, 05, 05]
-112D2; [70 AE F7, 05, 05]
+114C5; [71 B7 69, 05, 05]
-112D3; [70 AE FE, 05, 05]
+114B0; [71 B7 70, 05, 05]
-112D4; [70 AF 07, 05, 05]
+114B1; [71 B7 77, 05, 05]
-112D5; [70 AF 0E, 05, 05]
+114B2; [71 B7 7E, 05, 05]
-112D6; [70 AF 15, 05, 05]
+114B3; [71 B7 85, 05, 05]
-112D7; [70 AF 1C, 05, 05]
+114B4; [71 B7 8C, 05, 05]
-112D8; [70 AF 23, 05, 05]
+114B5; [71 B7 93, 05, 05]
-112D9; [70 AF 2A, 05, 05]
+114B6; [71 B7 9A, 05, 05]
-112DA; [70 AF 31, 05, 05]
+114B7; [71 B7 A1, 05, 05]
-112DB; [70 AF 38, 05, 05]
+114B8; [71 B7 A8, 05, 05]
-112DC; [70 AF 3F, 05, 05]
+114B9; [71 B7 AF, 05, 05]
-112DD; [70 AF 46, 05, 05]
+114BA; [71 B7 B6, 05, 05]
-112DE; [70 AF 4D, 05, 05]
+114B9 114BA; [71 B7 BD, 05, 05]
+114BB; [71 B7 BD, 05, 05]
-112E0; [70 AF 54, 05, 05]
+114B9 114B0; [71 B7 C4, 05, 05]
+114BC; [71 B7 C4, 05, 05]
-112E1; [70 AF 5B, 05, 05]
+114BD; [71 B7 CB, 05, 05]
-112E2; [70 AF 62, 05, 05]
+114B9 114BD; [71 B7 D2, 05, 05]
+114BE; [71 B7 D2, 05, 05]
-112E3; [70 AF 69, 05, 05]
+114C2; [71 B7 D9, 05, 05]
-112E4; [70 AF 70, 05, 05]
+FDD1 1158E; [71 B8 02, 05, 05] # Siddham first primary (compressible)
-112E5; [70 AF 77, 05, 05]
+11580; [71 B8 09, 05, 05]
-112E6; [70 AF 7E, 05, 05]
+11581; [71 B8 10, 05, 05]
-112E7; [70 AF 85, 05, 05]
+11582; [71 BA, 05, 05]
+115D8; [71 BA, 70, 05]
+115D9; [71 BA, 78, 05]
-112E8; [70 AF 8C, 05, 05]
+11583; [71 BC, 05, 05]
+115DA; [71 BC, 70, 05]
-112EA; [70 AF 93, 05, 05]
+11584; [71 BE, 05, 05]
+115DB; [71 BE, 70, 05]
-FDD1 1128F; [70 B0 02, 05, 05] # Multani first primary (compressible)
+11585; [71 C0 02, 05, 05]
-11280; [70 B0 09, 05, 05]
+11586; [71 C0 09, 05, 05]
-11281; [70 B0 10, 05, 05]
+11587; [71 C0 10, 05, 05]
-11282; [70 B0 17, 05, 05]
+11588; [71 C0 17, 05, 05]
-11283; [70 B0 1E, 05, 05]
+11589; [71 C0 1E, 05, 05]
-112A5; [70 B0 25, 05, 05]
+1158A; [71 C0 25, 05, 05]
-112A6; [70 B0 2C, 05, 05]
+1158B; [71 C0 2C, 05, 05]
-11284; [70 B0 33, 05, 05]
+1158C; [71 C0 33, 05, 05]
-11285; [70 B0 3A, 05, 05]
+1158D; [71 C0 3A, 05, 05]
-11286; [70 B0 41, 05, 05]
+1158E; [71 C0 41, 05, 05]
-11288; [70 B0 48, 05, 05]
+1158F; [71 C0 48, 05, 05]
-1128A; [70 B0 4F, 05, 05]
+11590; [71 C0 4F, 05, 05]
-1128B; [70 B0 56, 05, 05]
+11591; [71 C0 56, 05, 05]
-1128C; [70 B0 5D, 05, 05]
+11592; [71 C0 5D, 05, 05]
-1128D; [70 B0 64, 05, 05]
+11593; [71 C0 64, 05, 05]
-1128F; [70 B0 6B, 05, 05]
+11594; [71 C0 6B, 05, 05]
-11290; [70 B0 72, 05, 05]
+11595; [71 C0 72, 05, 05]
-11291; [70 B0 79, 05, 05]
+11596; [71 C0 79, 05, 05]
-11292; [70 B0 80, 05, 05]
+11597; [71 C0 80, 05, 05]
-11293; [70 B0 87, 05, 05]
+11598; [71 C0 87, 05, 05]
-11294; [70 B0 8E, 05, 05]
+11599; [71 C0 8E, 05, 05]
-11295; [70 B0 95, 05, 05]
+1159A; [71 C0 95, 05, 05]
-11296; [70 B0 9C, 05, 05]
+1159B; [71 C0 9C, 05, 05]
-11297; [70 B0 A3, 05, 05]
+1159C; [71 C0 A3, 05, 05]
-11298; [70 B0 AA, 05, 05]
+1159D; [71 C0 AA, 05, 05]
-11299; [70 B0 B1, 05, 05]
+1159E; [71 C0 B1, 05, 05]
-1129A; [70 B0 B8, 05, 05]
+1159F; [71 C0 B8, 05, 05]
-1129B; [70 B0 BF, 05, 05]
+115A0; [71 C0 BF, 05, 05]
-1129C; [70 B0 C6, 05, 05]
+115A1; [71 C0 C6, 05, 05]
-1129D; [70 B0 CD, 05, 05]
+115A2; [71 C0 CD, 05, 05]
-1129F; [70 B0 D4, 05, 05]
+115A3; [71 C0 D4, 05, 05]
-112A0; [70 B0 DB, 05, 05]
+115A4; [71 C0 DB, 05, 05]
-112A1; [70 B0 E2, 05, 05]
+115A5; [71 C0 E2, 05, 05]
-112A2; [70 B0 E9, 05, 05]
+115A6; [71 C0 E9, 05, 05]
-112A3; [70 B0 F0, 05, 05]
+115A7; [71 C0 F0, 05, 05]
-112A4; [70 B0 F7, 05, 05]
+115A8; [71 C0 F7, 05, 05]
-112A7; [70 B0 FE, 05, 05]
+115A9; [71 C0 FE, 05, 05]
-112A8; [70 B1 07, 05, 05]
+115AA; [71 C1 07, 05, 05]
-FDD1 11315; [70 B2 02, 05, 05] # Grantha first primary (compressible)
+115AB; [71 C1 0E, 05, 05]
-11350; [70 B2 09, 05, 05]
+115AC; [71 C1 15, 05, 05]
-11305; [70 B2 10, 05, 05]
+115AD; [71 C1 1C, 05, 05]
-11306; [70 B2 17, 05, 05]
+115AE; [71 C1 23, 05, 05]
-11307; [70 B2 1E, 05, 05]
+115AF; [71 C1 2A, 05, 05]
-11308; [70 B2 25, 05, 05]
+115B0; [71 C1 31, 05, 05]
-11309; [70 B2 2C, 05, 05]
+115B1; [71 C1 38, 05, 05]
-1130A; [70 B2 33, 05, 05]
+115B2; [71 C3, 05, 05]
+115DC; [71 C3, 70, 05]
-1130B; [70 B2 3A, 05, 05]
+115B3; [71 C5, 05, 05]
+115DD; [71 C5, 70, 05]
-11360; [70 B2 41, 05, 05]
+115B4; [71 C7 02, 05, 05]
-1130C; [70 B2 48, 05, 05]
+115B5; [71 C7 09, 05, 05]
-11361; [70 B2 4F, 05, 05]
+115B8; [71 C7 10, 05, 05]
-1130F; [70 B2 56, 05, 05]
+115B9; [71 C7 17, 05, 05]
-11310; [70 B2 5D, 05, 05]
+115B8 115AF; [71 C7 1E, 05, 05]
+115BA; [71 C7 1E, 05, 05]
-11313; [70 B2 64, 05, 05]
+115B9 115AF; [71 C7 25, 05, 05]
+115BB; [71 C7 25, 05, 05]
-11314; [70 B2 6B, 05, 05]
+115BF; [71 C7 2C, 05, 05]
-11315; [70 B2 72, 05, 05]
+FDD1 1160E; [71 C8 02, 05, 05] # Modi first primary (compressible)
-11316; [70 B2 79, 05, 05]
+11600; [71 C8 09, 05, 05]
-11317; [70 B2 80, 05, 05]
+11601; [71 C8 10, 05, 05]
-11318; [70 B2 87, 05, 05]
+11602; [71 C8 17, 05, 05]
-11319; [70 B2 8E, 05, 05]
+11603; [71 C8 1E, 05, 05]
-1131A; [70 B2 95, 05, 05]
+11604; [71 C8 25, 05, 05]
-1131B; [70 B2 9C, 05, 05]
+11605; [71 C8 2C, 05, 05]
-1131C; [70 B2 A3, 05, 05]
+11606; [71 C8 33, 05, 05]
-1131D; [70 B2 AA, 05, 05]
+11607; [71 C8 3A, 05, 05]
-1131E; [70 B2 B1, 05, 05]
+11608; [71 C8 41, 05, 05]
-1131F; [70 B2 B8, 05, 05]
+11609; [71 C8 48, 05, 05]
-11320; [70 B2 BF, 05, 05]
+1160A; [71 C8 4F, 05, 05]
-11321; [70 B2 C6, 05, 05]
+1160B; [71 C8 56, 05, 05]
-11322; [70 B2 CD, 05, 05]
+1160C; [71 C8 5D, 05, 05]
-11323; [70 B2 D4, 05, 05]
+1160D; [71 C8 64, 05, 05]
-11324; [70 B2 DB, 05, 05]
+1160E; [71 C8 6B, 05, 05]
-11325; [70 B2 E2, 05, 05]
+1160F; [71 C8 72, 05, 05]
-11326; [70 B2 E9, 05, 05]
+11610; [71 C8 79, 05, 05]
-11327; [70 B2 F0, 05, 05]
+11611; [71 C8 80, 05, 05]
-11328; [70 B2 F7, 05, 05]
+11612; [71 C8 87, 05, 05]
-1132A; [70 B2 FE, 05, 05]
+11613; [71 C8 8E, 05, 05]
-1132B; [70 B3 07, 05, 05]
+11614; [71 C8 95, 05, 05]
-1132C; [70 B3 0E, 05, 05]
+11615; [71 C8 9C, 05, 05]
-1132D; [70 B3 15, 05, 05]
+11616; [71 C8 A3, 05, 05]
-1132E; [70 B3 1C, 05, 05]
+11617; [71 C8 AA, 05, 05]
-1132F; [70 B3 23, 05, 05]
+11618; [71 C8 B1, 05, 05]
-11330; [70 B3 2A, 05, 05]
+11619; [71 C8 B8, 05, 05]
-11332; [70 B3 31, 05, 05]
+1161A; [71 C8 BF, 05, 05]
-11333; [70 B3 38, 05, 05]
+1161B; [71 C8 C6, 05, 05]
-11335; [70 B3 3F, 05, 05]
+1161C; [71 C8 CD, 05, 05]
-11336; [70 B3 46, 05, 05]
+1161D; [71 C8 D4, 05, 05]
-11337; [70 B3 4D, 05, 05]
+1161E; [71 C8 DB, 05, 05]
-11338; [70 B3 54, 05, 05]
+1161F; [71 C8 E2, 05, 05]
-11339; [70 B3 5B, 05, 05]
+11620; [71 C8 E9, 05, 05]
-1133D; [70 B3 62, 05, 05]
+11621; [71 C8 F0, 05, 05]
-1135E; [70 B3 69, 05, 05]
+11622; [71 C8 F7, 05, 05]
-1135F; [70 B3 70, 05, 05]
+11623; [71 C8 FE, 05, 05]
-1133E; [70 B3 77, 05, 05]
+11624; [71 C9 07, 05, 05]
-1133F; [70 B3 7E, 05, 05]
+11625; [71 C9 0E, 05, 05]
-11340; [70 B3 85, 05, 05]
+11626; [71 C9 15, 05, 05]
-11341; [70 B3 8C, 05, 05]
+11627; [71 C9 1C, 05, 05]
-11342; [70 B3 93, 05, 05]
+11628; [71 C9 23, 05, 05]
-11343; [70 B3 9A, 05, 05]
+11629; [71 C9 2A, 05, 05]
-11344; [70 B3 A1, 05, 05]
+1162A; [71 C9 31, 05, 05]
-11362; [70 B3 A8, 05, 05]
+1162B; [71 C9 38, 05, 05]
-11363; [70 B3 AF, 05, 05]
+1162C; [71 C9 3F, 05, 05]
-11347; [70 B3 B6, 05, 05]
+1162D; [71 C9 46, 05, 05]
-11348; [70 B3 BD, 05, 05]
+1162E; [71 C9 4D, 05, 05]
-11347 1133E; [70 B3 C4, 05, 05]
-1134B; [70 B3 C4, 05, 05]
+1162F; [71 C9 54, 05, 05]
-11347 11357; [70 B3 CB, 05, 05]
-1134C; [70 B3 CB, 05, 05]
+11630; [71 C9 5B, 05, 05]
-1134D; [70 B3 D2, 05, 05]
+11631; [71 C9 62, 05, 05]
-11357; [70 B3 D9, 05, 05]
+11632; [71 C9 69, 05, 05]
-1135D; [70 B3 E0, 05, 05]
+11633; [71 C9 70, 05, 05]
-FDD1 11412; [70 B4 02, 05, 05] # Newa first primary (compressible)
+11634; [71 C9 77, 05, 05]
-11449; [70 B4 09, 05, 05]
+11635; [71 C9 7E, 05, 05]
-1144A; [70 B4 10, 05, 05]
+11636; [71 C9 85, 05, 05]
-11400; [70 B4 17, 05, 05]
+11637; [71 C9 8C, 05, 05]
-11401; [70 B4 1E, 05, 05]
+11638; [71 C9 93, 05, 05]
-11402; [70 B4 25, 05, 05]
+11639; [71 C9 9A, 05, 05]
-11403; [70 B4 2C, 05, 05]
+1163A; [71 C9 A1, 05, 05]
-11404; [70 B4 33, 05, 05]
+1163B; [71 C9 A8, 05, 05]
-11405; [70 B4 3A, 05, 05]
+1163C; [71 C9 AF, 05, 05]
-11406; [70 B4 41, 05, 05]
+1163F; [71 C9 B6, 05, 05]
-11407; [70 B4 48, 05, 05]
+11644; [71 C9 BD, 05, 05]
-11408; [70 B4 4F, 05, 05]
+FDD1 11680; [71 CA 02, 05, 05] # Takri first primary (compressible)
-11409; [70 B4 56, 05, 05]
+11680; [71 CA 09, 05, 05]
-1140A; [70 B4 5D, 05, 05]
+11681; [71 CA 10, 05, 05]
-1140B; [70 B4 64, 05, 05]
+11682; [71 CA 17, 05, 05]
-1140C; [70 B4 6B, 05, 05]
+11683; [71 CA 1E, 05, 05]
-1140D; [70 B4 72, 05, 05]
+11684; [71 CA 25, 05, 05]
-1140E; [70 B4 79, 05, 05]
+11685; [71 CA 2C, 05, 05]
-1140F; [70 B4 80, 05, 05]
+11686; [71 CA 33, 05, 05]
-11410; [70 B4 87, 05, 05]
+11687; [71 CA 3A, 05, 05]
-11411; [70 B4 8E, 05, 05]
+11688; [71 CA 41, 05, 05]
-11412; [70 B4 95, 05, 05]
+11689; [71 CA 48, 05, 05]
-11413; [70 B4 9C, 05, 05]
+116A8; [71 CA 4F, 05, 05]
-11414; [70 B4 A3, 05, 05]
+116A7; [71 CA 56, 05, 05]
-11415; [70 B4 AA, 05, 05]
+116A9; [71 CA 5D, 05, 05]
-11416; [70 B4 B1, 05, 05]
+1168A; [71 CA 64, 05, 05]
-11417; [70 B4 B8, 05, 05]
+1168B; [71 CA 6B, 05, 05]
-11418; [70 B4 BF, 05, 05]
+1168C; [71 CA 72, 05, 05]
-11419; [70 B4 C6, 05, 05]
+1168D; [71 CA 79, 05, 05]
-1141A; [70 B4 CD, 05, 05]
+1168E; [71 CA 80, 05, 05]
-1141B; [70 B4 D4, 05, 05]
+1168F; [71 CA 87, 05, 05]
-1141C; [70 B4 DB, 05, 05]
+11690; [71 CA 8E, 05, 05]
-1141D; [70 B4 E2, 05, 05]
+11691; [71 CA 95, 05, 05]
-1141E; [70 B4 E9, 05, 05]
+11692; [71 CA 9C, 05, 05]
-1141F; [70 B4 F0, 05, 05]
+11693; [71 CA A3, 05, 05]
-11420; [70 B4 F7, 05, 05]
+11694; [71 CA AA, 05, 05]
-11421; [70 B4 FE, 05, 05]
+11695; [71 CA B1, 05, 05]
-11422; [70 B5 07, 05, 05]
+11696; [71 CA B8, 05, 05]
-11423; [70 B5 0E, 05, 05]
+11697; [71 CA BF, 05, 05]
-11424; [70 B5 15, 05, 05]
+11698; [71 CA C6, 05, 05]
-11425; [70 B5 1C, 05, 05]
+11699; [71 CA CD, 05, 05]
-11426; [70 B5 23, 05, 05]
+1169A; [71 CA D4, 05, 05]
-11427; [70 B5 2A, 05, 05]
+1169B; [71 CA DB, 05, 05]
-11428; [70 B5 31, 05, 05]
+1169C; [71 CA E2, 05, 05]
-11429; [70 B5 38, 05, 05]
+1169D; [71 CA E9, 05, 05]
-1142A; [70 B5 3F, 05, 05]
+1169E; [71 CA F0, 05, 05]
-1142B; [70 B5 46, 05, 05]
+1169F; [71 CA F7, 05, 05]
-1142C; [70 B5 4D, 05, 05]
+116A0; [71 CA FE, 05, 05]
-1142D; [70 B5 54, 05, 05]
+116A1; [71 CB 07, 05, 05]
-1142E; [70 B5 5B, 05, 05]
+116A2; [71 CB 0E, 05, 05]
-1142F; [70 B5 62, 05, 05]
+116A3; [71 CB 15, 05, 05]
-11430; [70 B5 69, 05, 05]
+116A4; [71 CB 1C, 05, 05]
-11431; [70 B5 70, 05, 05]
+116A5; [71 CB 23, 05, 05]
-11432; [70 B5 77, 05, 05]
+116A6; [71 CB 2A, 05, 05]
-11433; [70 B5 7E, 05, 05]
+116AA; [71 CB 31, 05, 05]
-11434; [70 B5 85, 05, 05]
+116AD; [71 CB 38, 05, 05]
-11447; [70 B5 8C, 05, 05]
+116AE; [71 CB 3F, 05, 05]
-11448; [70 B5 93, 05, 05]
+116AF; [71 CB 46, 05, 05]
-11435; [70 B5 9A, 05, 05]
+116B0; [71 CB 4D, 05, 05]
-11436; [70 B5 A1, 05, 05]
+116B1; [71 CB 54, 05, 05]
-11437; [70 B5 A8, 05, 05]
+116B2; [71 CB 5B, 05, 05]
-11438; [70 B5 AF, 05, 05]
+116B3; [71 CB 62, 05, 05]
-11439; [70 B5 B6, 05, 05]
+116B4; [71 CB 69, 05, 05]
-1143A; [70 B5 BD, 05, 05]
+116B5; [71 CB 70, 05, 05]
-1143B; [70 B5 C4, 05, 05]
+116B6; [71 CB 77, 05, 05]
-1143C; [70 B5 CB, 05, 05]
+FDD1 1180B; [71 CC 02, 05, 05] # Dogra first primary (compressible)
-1143D; [70 B5 D2, 05, 05]
+11800; [71 CC 09, 05, 05]
-1143E; [70 B5 D9, 05, 05]
+11801; [71 CC 10, 05, 05]
-1143F; [70 B5 E0, 05, 05]
+11802; [71 CC 17, 05, 05]
-11440; [70 B5 E7, 05, 05]
+11803; [71 CC 1E, 05, 05]
-11441; [70 B5 EE, 05, 05]
+11804; [71 CC 25, 05, 05]
-11442; [70 B5 F5, 05, 05]
+11805; [71 CC 2C, 05, 05]
-FDD1 11484; [70 B6 02, 05, 05] # Tirhuta first primary (compressible)
+11806; [71 CC 33, 05, 05]
-114C7; [70 B6 09, 05, 05]
+11807; [71 CC 3A, 05, 05]
-11480; [70 B6 10, 05, 05]
+11808; [71 CC 41, 05, 05]
-11481; [70 B6 17, 05, 05]
+11809; [71 CC 48, 05, 05]
-11482; [70 B6 1E, 05, 05]
+1180A; [71 CC 4F, 05, 05]
-11483; [70 B6 25, 05, 05]
+1180B; [71 CC 56, 05, 05]
-11484; [70 B6 2C, 05, 05]
+1180C; [71 CC 5D, 05, 05]
-11485; [70 B6 33, 05, 05]
+1180D; [71 CC 64, 05, 05]
-11486; [70 B6 3A, 05, 05]
+1180E; [71 CC 6B, 05, 05]
-11487; [70 B6 41, 05, 05]
+1180F; [71 CC 72, 05, 05]
-11488; [70 B6 48, 05, 05]
+11810; [71 CC 79, 05, 05]
-11489; [70 B6 4F, 05, 05]
+11811; [71 CC 80, 05, 05]
-1148A; [70 B6 56, 05, 05]
+11812; [71 CC 87, 05, 05]
-1148B; [70 B6 5D, 05, 05]
+11813; [71 CC 8E, 05, 05]
-1148C; [70 B6 64, 05, 05]
+11814; [71 CC 95, 05, 05]
-1148D; [70 B6 6B, 05, 05]
+11815; [71 CC 9C, 05, 05]
-1148E; [70 B6 72, 05, 05]
+11816; [71 CC A3, 05, 05]
-1148F; [70 B6 79, 05, 05]
+11817; [71 CC AA, 05, 05]
-11490; [70 B6 80, 05, 05]
+11818; [71 CC B1, 05, 05]
-11491; [70 B6 87, 05, 05]
+11819; [71 CC B8, 05, 05]
-11492; [70 B6 8E, 05, 05]
+1181A; [71 CC BF, 05, 05]
-11493; [70 B6 95, 05, 05]
+1181B; [71 CC C6, 05, 05]
-11494; [70 B6 9C, 05, 05]
+1181C; [71 CC CD, 05, 05]
-11495; [70 B6 A3, 05, 05]
+1181D; [71 CC D4, 05, 05]
-11496; [70 B6 AA, 05, 05]
+1181E; [71 CC DB, 05, 05]
-11497; [70 B6 B1, 05, 05]
+1181F; [71 CC E2, 05, 05]
-11498; [70 B6 B8, 05, 05]
+11820; [71 CC E9, 05, 05]
-11499; [70 B6 BF, 05, 05]
+11821; [71 CC F0, 05, 05]
-1149A; [70 B6 C6, 05, 05]
+11822; [71 CC F7, 05, 05]
-1149B; [70 B6 CD, 05, 05]
+11823; [71 CC FE, 05, 05]
-1149C; [70 B6 D4, 05, 05]
+11824; [71 CD 07, 05, 05]
-1149D; [70 B6 DB, 05, 05]
+11825; [71 CD 0E, 05, 05]
-1149E; [70 B6 E2, 05, 05]
+11826; [71 CD 15, 05, 05]
-1149F; [70 B6 E9, 05, 05]
+11827; [71 CD 1C, 05, 05]
-114A0; [70 B6 F0, 05, 05]
+11828; [71 CD 23, 05, 05]
-114A1; [70 B6 F7, 05, 05]
+11829; [71 CD 2A, 05, 05]
-114A2; [70 B6 FE, 05, 05]
+1182A; [71 CD 31, 05, 05]
-114A3; [70 B7 07, 05, 05]
+1182B; [71 CD 38, 05, 05]
-114A4; [70 B7 0E, 05, 05]
+1182C; [71 CD 3F, 05, 05]
-114A5; [70 B7 15, 05, 05]
+1182D; [71 CD 46, 05, 05]
-114A6; [70 B7 1C, 05, 05]
+1182E; [71 CD 4D, 05, 05]
-114A7; [70 B7 23, 05, 05]
+1182F; [71 CD 54, 05, 05]
-114A8; [70 B7 2A, 05, 05]
+11830; [71 CD 5B, 05, 05]
-114A9; [70 B7 31, 05, 05]
+11831; [71 CD 62, 05, 05]
-114AA; [70 B7 38, 05, 05]
+11832; [71 CD 69, 05, 05]
-114AB; [70 B7 3F, 05, 05]
+11833; [71 CD 70, 05, 05]
-114AC; [70 B7 46, 05, 05]
+11834; [71 CD 77, 05, 05]
-114AD; [70 B7 4D, 05, 05]
+11835; [71 CD 7E, 05, 05]
-114AE; [70 B7 54, 05, 05]
+11836; [71 CD 85, 05, 05]
-114AF; [70 B7 5B, 05, 05]
+11839; [71 CD 8C, 05, 05]
-114C4; [70 B7 62, 05, 05]
+FDD1 11717; [71 CE 02, 05, 05] # Ahom first primary (compressible)
-114C5; [70 B7 69, 05, 05]
+11700; [71 CE 09, 05, 05]
-114B0; [70 B7 70, 05, 05]
+11701; [71 CE 10, 05, 05]
-114B1; [70 B7 77, 05, 05]
+11702; [71 CE 17, 05, 05]
-114B2; [70 B7 7E, 05, 05]
+11703; [71 CE 1E, 05, 05]
-114B3; [70 B7 85, 05, 05]
+11704; [71 D0, 05, 05]
+11705; [71 D0, 70, 05]
-114B4; [70 B7 8C, 05, 05]
+11706; [71 D2 02, 05, 05]
-114B5; [70 B7 93, 05, 05]
+11707; [71 D2 09, 05, 05]
-114B6; [70 B7 9A, 05, 05]
+11708; [71 D4, 05, 05]
+1171A; [71 D4, 70, 05]
-114B7; [70 B7 A1, 05, 05]
+11709; [71 D6 02, 05, 05]
-114B8; [70 B7 A8, 05, 05]
+1170A; [71 D6 09, 05, 05]
-114B9; [70 B7 AF, 05, 05]
+1170B; [71 D6 10, 05, 05]
-114BA; [70 B7 B6, 05, 05]
+1170C; [71 D6 17, 05, 05]
-114B9 114BA; [70 B7 BD, 05, 05]
-114BB; [70 B7 BD, 05, 05]
+1170D; [71 D6 1E, 05, 05]
-114B9 114B0; [70 B7 C4, 05, 05]
-114BC; [70 B7 C4, 05, 05]
+1170E; [71 D6 25, 05, 05]
-114BD; [70 B7 CB, 05, 05]
+1170F; [71 D6 2C, 05, 05]
-114B9 114BD; [70 B7 D2, 05, 05]
-114BE; [70 B7 D2, 05, 05]
+11710; [71 D6 33, 05, 05]
-114C2; [70 B7 D9, 05, 05]
+11711; [71 D6 3A, 05, 05]
-FDD1 1158E; [70 B8 02, 05, 05] # Siddham first primary (compressible)
+11712; [71 D6 41, 05, 05]
-11580; [70 B8 09, 05, 05]
+11713; [71 D6 48, 05, 05]
-11581; [70 B8 10, 05, 05]
+11714; [71 D6 4F, 05, 05]
-11582; [70 BA, 05, 05]
-115D8; [70 BA, 70, 05]
-115D9; [70 BA, 78, 05]
+11715; [71 D8, 05, 05]
+11716; [71 D8, 70, 05]
-11583; [70 BC, 05, 05]
-115DA; [70 BC, 70, 05]
+11717; [71 DA 02, 05, 05]
-11584; [70 BE, 05, 05]
-115DB; [70 BE, 70, 05]
+11718; [71 DA 09, 05, 05]
-11585; [70 C0 02, 05, 05]
+11719; [71 DA 10, 05, 05]
-11586; [70 C0 09, 05, 05]
+11720; [71 DA 17, 05, 05]
-11587; [70 C0 10, 05, 05]
+11721; [71 DA 1E, 05, 05]
-11588; [70 C0 17, 05, 05]
+11722; [71 DA 25, 05, 05]
-11589; [70 C0 1E, 05, 05]
+11723; [71 DA 2C, 05, 05]
-1158A; [70 C0 25, 05, 05]
+11724; [71 DA 33, 05, 05]
-1158B; [70 C0 2C, 05, 05]
+11725; [71 DA 3A, 05, 05]
-1158C; [70 C0 33, 05, 05]
+11726; [71 DA 41, 05, 05]
-1158D; [70 C0 3A, 05, 05]
+11727; [71 DA 48, 05, 05]
-1158E; [70 C0 41, 05, 05]
+11728; [71 DA 4F, 05, 05]
-1158F; [70 C0 48, 05, 05]
+11729; [71 DA 56, 05, 05]
-11590; [70 C0 4F, 05, 05]
+1172A; [71 DA 5D, 05, 05]
-11591; [70 C0 56, 05, 05]
+1172B; [71 DA 64, 05, 05]
-11592; [70 C0 5D, 05, 05]
+1171D; [71 DA 6B, 05, 05]
-11593; [70 C0 64, 05, 05]
+1171E; [71 DA 72, 05, 05]
-11594; [70 C0 6B, 05, 05]
+1171F; [71 DA 79, 05, 05]
-11595; [70 C0 72, 05, 05]
+FDD1 11D10; [71 DB 02, 05, 05] # Masaram_Gondi first primary (compressible)
-11596; [70 C0 79, 05, 05]
+11D00; [71 DB 09, 05, 05]
-11597; [70 C0 80, 05, 05]
+11D01; [71 DB 10, 05, 05]
-11598; [70 C0 87, 05, 05]
+11D02; [71 DB 17, 05, 05]
-11599; [70 C0 8E, 05, 05]
+11D03; [71 DB 1E, 05, 05]
-1159A; [70 C0 95, 05, 05]
+11D04; [71 DB 25, 05, 05]
-1159B; [70 C0 9C, 05, 05]
+11D05; [71 DB 2C, 05, 05]
-1159C; [70 C0 A3, 05, 05]
+11D06; [71 DB 33, 05, 05]
-1159D; [70 C0 AA, 05, 05]
+11D08; [71 DB 3A, 05, 05]
-1159E; [70 C0 B1, 05, 05]
+11D09; [71 DB 41, 05, 05]
-1159F; [70 C0 B8, 05, 05]
+11D0B; [71 DB 48, 05, 05]
-115A0; [70 C0 BF, 05, 05]
+11D0C; [71 DB 4F, 05, 05]
-115A1; [70 C0 C6, 05, 05]
+11D0D; [71 DB 56, 05, 05]
-115A2; [70 C0 CD, 05, 05]
+11D0E; [71 DB 5D, 05, 05]
-115A3; [70 C0 D4, 05, 05]
+11D0F; [71 DB 64, 05, 05]
-115A4; [70 C0 DB, 05, 05]
+11D10; [71 DB 6B, 05, 05]
-115A5; [70 C0 E2, 05, 05]
+11D11; [71 DB 72, 05, 05]
-115A6; [70 C0 E9, 05, 05]
+11D12; [71 DB 79, 05, 05]
-115A7; [70 C0 F0, 05, 05]
+11D13; [71 DB 80, 05, 05]
-115A8; [70 C0 F7, 05, 05]
+11D14; [71 DB 87, 05, 05]
-115A9; [70 C0 FE, 05, 05]
+11D15; [71 DB 8E, 05, 05]
-115AA; [70 C1 07, 05, 05]
+11D16; [71 DB 95, 05, 05]
-115AB; [70 C1 0E, 05, 05]
+11D17; [71 DB 9C, 05, 05]
-115AC; [70 C1 15, 05, 05]
+11D18; [71 DB A3, 05, 05]
-115AD; [70 C1 1C, 05, 05]
+11D19; [71 DB AA, 05, 05]
-115AE; [70 C1 23, 05, 05]
+11D1A; [71 DB B1, 05, 05]
-115AF; [70 C1 2A, 05, 05]
+11D1B; [71 DB B8, 05, 05]
-115B0; [70 C1 31, 05, 05]
+11D1C; [71 DB BF, 05, 05]
-115B1; [70 C1 38, 05, 05]
+11D1D; [71 DB C6, 05, 05]
-115B2; [70 C3, 05, 05]
-115DC; [70 C3, 70, 05]
+11D1E; [71 DB CD, 05, 05]
-115B3; [70 C5, 05, 05]
-115DD; [70 C5, 70, 05]
+11D1F; [71 DB D4, 05, 05]
-115B4; [70 C7 02, 05, 05]
+11D20; [71 DB DB, 05, 05]
-115B5; [70 C7 09, 05, 05]
+11D21; [71 DB E2, 05, 05]
-115B8; [70 C7 10, 05, 05]
+11D22; [71 DB E9, 05, 05]
-115B9; [70 C7 17, 05, 05]
+11D23; [71 DB F0, 05, 05]
-115B8 115AF; [70 C7 1E, 05, 05]
-115BA; [70 C7 1E, 05, 05]
+11D24; [71 DB F7, 05, 05]
-115B9 115AF; [70 C7 25, 05, 05]
-115BB; [70 C7 25, 05, 05]
+11D25; [71 DB FE, 05, 05]
-115BF; [70 C7 2C, 05, 05]
+11D26; [71 DD, 05, 05]
+11D46; [71 DD, 05, 20]
+11D47; [71 DD, 05, 2E]
-FDD1 1160E; [70 C8 02, 05, 05] # Modi first primary (compressible)
+11D27; [71 DF 02, 05, 05]
-11600; [70 C8 09, 05, 05]
+11D28; [71 DF 09, 05, 05]
-11601; [70 C8 10, 05, 05]
+11D29; [71 DF 10, 05, 05]
-11602; [70 C8 17, 05, 05]
+11D2A; [71 DF 17, 05, 05]
-11603; [70 C8 1E, 05, 05]
+11D2B; [71 DF 1E, 05, 05]
-11604; [70 C8 25, 05, 05]
+11D2C; [71 DF 25, 05, 05]
-11605; [70 C8 2C, 05, 05]
+11D2D; [71 DF 2C, 05, 05]
-11606; [70 C8 33, 05, 05]
+11D2E; [71 DF 33, 05, 05]
-11607; [70 C8 3A, 05, 05]
+11D2F; [71 DF 3A, 05, 05]
-11608; [70 C8 41, 05, 05]
+11D30; [71 DF 41, 05, 05]
-11609; [70 C8 48, 05, 05]
+11D31; [71 DF 48, 05, 05]
-1160A; [70 C8 4F, 05, 05]
+11D32; [71 DF 4F, 05, 05]
-1160B; [70 C8 56, 05, 05]
+11D33; [71 DF 56, 05, 05]
-1160C; [70 C8 5D, 05, 05]
+11D34; [71 DF 5D, 05, 05]
-1160D; [70 C8 64, 05, 05]
+11D35; [71 DF 64, 05, 05]
-1160E; [70 C8 6B, 05, 05]
+11D36; [71 DF 6B, 05, 05]
-1160F; [70 C8 72, 05, 05]
+11D3A; [71 DF 72, 05, 05]
-11610; [70 C8 79, 05, 05]
+11D3C; [71 DF 79, 05, 05]
-11611; [70 C8 80, 05, 05]
+11D3D; [71 DF 80, 05, 05]
-11612; [70 C8 87, 05, 05]
+11D3F; [71 DF 87, 05, 05]
-11613; [70 C8 8E, 05, 05]
+11D44; [71 DF 8E, 05, 05]
-11614; [70 C8 95, 05, 05]
+11D45; [71 DF 95, 05, 05]
-11615; [70 C8 9C, 05, 05]
+FDD1 11D71; [71 E0 02, 05, 05] # Gunjala_Gondi first primary (compressible)
-11616; [70 C8 A3, 05, 05]
+11D98; [71 E0 09, 05, 05]
-11617; [70 C8 AA, 05, 05]
+11D60; [71 E0 10, 05, 05]
-11618; [70 C8 B1, 05, 05]
+11D61; [71 E0 17, 05, 05]
-11619; [70 C8 B8, 05, 05]
+11D62; [71 E0 1E, 05, 05]
-1161A; [70 C8 BF, 05, 05]
+11D63; [71 E0 25, 05, 05]
-1161B; [70 C8 C6, 05, 05]
+11D64; [71 E0 2C, 05, 05]
-1161C; [70 C8 CD, 05, 05]
+11D65; [71 E0 33, 05, 05]
-1161D; [70 C8 D4, 05, 05]
+11D67; [71 E0 3A, 05, 05]
-1161E; [70 C8 DB, 05, 05]
+11D68; [71 E0 41, 05, 05]
-1161F; [70 C8 E2, 05, 05]
+11D6A; [71 E0 48, 05, 05]
-11620; [70 C8 E9, 05, 05]
+11D6B; [71 E0 4F, 05, 05]
-11621; [70 C8 F0, 05, 05]
+11D6C; [71 E0 56, 05, 05]
-11622; [70 C8 F7, 05, 05]
+11D6D; [71 E0 5D, 05, 05]
-11623; [70 C8 FE, 05, 05]
+11D6E; [71 E0 64, 05, 05]
-11624; [70 C9 07, 05, 05]
+11D6F; [71 E0 6B, 05, 05]
-11625; [70 C9 0E, 05, 05]
+11D70; [71 E0 72, 05, 05]
-11626; [70 C9 15, 05, 05]
+11D71; [71 E0 79, 05, 05]
-11627; [70 C9 1C, 05, 05]
+11D72; [71 E0 80, 05, 05]
-11628; [70 C9 23, 05, 05]
+11D73; [71 E0 87, 05, 05]
-11629; [70 C9 2A, 05, 05]
+11D74; [71 E0 8E, 05, 05]
-1162A; [70 C9 31, 05, 05]
+11D75; [71 E0 95, 05, 05]
-1162B; [70 C9 38, 05, 05]
+11D76; [71 E0 9C, 05, 05]
-1162C; [70 C9 3F, 05, 05]
+11D77; [71 E0 A3, 05, 05]
-1162D; [70 C9 46, 05, 05]
+11D78; [71 E0 AA, 05, 05]
-1162E; [70 C9 4D, 05, 05]
+11D79; [71 E0 B1, 05, 05]
-1162F; [70 C9 54, 05, 05]
+11D7A; [71 E0 B8, 05, 05]
-11630; [70 C9 5B, 05, 05]
+11D7B; [71 E0 BF, 05, 05]
-11631; [70 C9 62, 05, 05]
+11D7C; [71 E0 C6, 05, 05]
-11632; [70 C9 69, 05, 05]
+11D7D; [71 E0 CD, 05, 05]
-11633; [70 C9 70, 05, 05]
+11D7E; [71 E0 D4, 05, 05]
-11634; [70 C9 77, 05, 05]
+11D7F; [71 E0 DB, 05, 05]
-11635; [70 C9 7E, 05, 05]
+11D80; [71 E0 E2, 05, 05]
-11636; [70 C9 85, 05, 05]
+11D81; [71 E0 E9, 05, 05]
-11637; [70 C9 8C, 05, 05]
+11D82; [71 E0 F0, 05, 05]
-11638; [70 C9 93, 05, 05]
+11D83; [71 E0 F7, 05, 05]
-11639; [70 C9 9A, 05, 05]
+11D84; [71 E0 FE, 05, 05]
-1163A; [70 C9 A1, 05, 05]
+11D85; [71 E1 07, 05, 05]
-1163B; [70 C9 A8, 05, 05]
+11D86; [71 E1 0E, 05, 05]
-1163C; [70 C9 AF, 05, 05]
+11D87; [71 E1 15, 05, 05]
-1163F; [70 C9 B6, 05, 05]
+11D88; [71 E1 1C, 05, 05]
-11644; [70 C9 BD, 05, 05]
+11D89; [71 E1 23, 05, 05]
-FDD1 11680; [70 CA 02, 05, 05] # Takri first primary (compressible)
+11D8A; [71 E1 2A, 05, 05]
-11680; [70 CA 09, 05, 05]
+11D8B; [71 E1 31, 05, 05]
-11681; [70 CA 10, 05, 05]
+11D8C; [71 E1 38, 05, 05]
-11682; [70 CA 17, 05, 05]
+11D8D; [71 E1 3F, 05, 05]
-11683; [70 CA 1E, 05, 05]
+11D8E; [71 E1 46, 05, 05]
-11684; [70 CA 25, 05, 05]
+11D90; [71 E1 4D, 05, 05]
-11685; [70 CA 2C, 05, 05]
+11D91; [71 E1 54, 05, 05]
-11686; [70 CA 33, 05, 05]
+11D93; [71 E1 5B, 05, 05]
-11687; [70 CA 3A, 05, 05]
+11D94; [71 E1 62, 05, 05]
-11688; [70 CA 41, 05, 05]
+11D97; [71 E1 69, 05, 05]
-11689; [70 CA 48, 05, 05]
+FDD1 1B83; [71 E2 02, 05, 05] # Sundanese first primary (compressible)
-116A8; [70 CA 4F, 05, 05]
+1B83; [71 E4, 05, 05]
+1BBA; [71 E4, 05, 20]
-116A7; [70 CA 56, 05, 05]
+1B84; [71 E6 02, 05, 05]
-116A9; [70 CA 5D, 05, 05]
+1B85; [71 E6 09, 05, 05]
-1168A; [70 CA 64, 05, 05]
+1B86; [71 E6 10, 05, 05]
-1168B; [70 CA 6B, 05, 05]
+1B87; [71 E6 17, 05, 05]
-1168C; [70 CA 72, 05, 05]
+1B88; [71 E6 1E, 05, 05]
-1168D; [70 CA 79, 05, 05]
+1B89; [71 E6 25, 05, 05]
-1168E; [70 CA 80, 05, 05]
+1B8A; [71 E8, 05, 05]
+1BBE; [71 E8, 05, 20]
-1168F; [70 CA 87, 05, 05]
+1BAE; [71 EA 02, 05, 05]
-11690; [70 CA 8E, 05, 05]
+1B8B; [71 EA 09, 05, 05]
-11691; [70 CA 95, 05, 05]
+1B8C; [71 EA 10, 05, 05]
-11692; [70 CA 9C, 05, 05]
+1B8D; [71 EA 17, 05, 05]
-11693; [70 CA A3, 05, 05]
+1B8E; [71 EA 1E, 05, 05]
-11694; [70 CA AA, 05, 05]
+1B8F; [71 EA 25, 05, 05]
-11695; [70 CA B1, 05, 05]
+1B90; [71 EA 2C, 05, 05]
-11696; [70 CA B8, 05, 05]
+1B91; [71 EA 33, 05, 05]
-11697; [70 CA BF, 05, 05]
+1B92; [71 EA 3A, 05, 05]
-11698; [70 CA C6, 05, 05]
+1B93; [71 EA 41, 05, 05]
-11699; [70 CA CD, 05, 05]
+1B94; [71 EA 48, 05, 05]
-1169A; [70 CA D4, 05, 05]
+1B95; [71 EA 4F, 05, 05]
-1169B; [70 CA DB, 05, 05]
+1B96; [71 EA 56, 05, 05]
-1169C; [70 CA E2, 05, 05]
+1B97; [71 EA 5D, 05, 05]
-1169D; [70 CA E9, 05, 05]
+1B98; [71 EA 64, 05, 05]
-1169E; [70 CA F0, 05, 05]
+1BBD; [71 EA 6B, 05, 05]
-1169F; [70 CA F7, 05, 05]
+1B99; [71 EC, 05, 05]
+1BBF; [71 EC, 05, 20]
-116A0; [70 CA FE, 05, 05]
+1BAC; [71 EE 02, 05, 05]
-116A1; [70 CB 07, 05, 05]
+1B9A; [71 EE 09, 05, 05]
-116A2; [70 CB 0E, 05, 05]
+1BA1; [71 EE 10, 05, 05]
-116A3; [70 CB 15, 05, 05]
+1B9B; [71 EE 17, 05, 05]
-116A4; [70 CB 1C, 05, 05]
+1BA2; [71 EE 1E, 05, 05]
-116A5; [70 CB 23, 05, 05]
+1BBB; [71 EE 25, 05, 05]
-116A6; [70 CB 2A, 05, 05]
+1B9C; [71 EE 2C, 05, 05]
-116AA; [70 CB 31, 05, 05]
+1BA3; [71 EE 33, 05, 05]
-116AD; [70 CB 38, 05, 05]
+1BBC; [71 EE 3A, 05, 05]
-116AE; [70 CB 3F, 05, 05]
+1B9D; [71 EE 41, 05, 05]
-116AF; [70 CB 46, 05, 05]
+1BAD; [71 EE 48, 05, 05]
-116B0; [70 CB 4D, 05, 05]
+1B9E; [71 EE 4F, 05, 05]
-116B1; [70 CB 54, 05, 05]
+1B9F; [71 EE 56, 05, 05]
-116B2; [70 CB 5B, 05, 05]
+1BAF; [71 EE 5D, 05, 05]
-116B3; [70 CB 62, 05, 05]
+1BA0; [71 EE 64, 05, 05]
-116B4; [70 CB 69, 05, 05]
+1BA4; [71 EE 6B, 05, 05]
-116B5; [70 CB 70, 05, 05]
+1BA5; [71 EE 72, 05, 05]
-116B6; [70 CB 77, 05, 05]
+1BA6; [71 EE 79, 05, 05]
-FDD1 11717; [70 CC 02, 05, 05] # Ahom first primary (compressible)
+1BA7; [71 EE 80, 05, 05]
-11700; [70 CC 09, 05, 05]
+1BA8; [71 EE 87, 05, 05]
-11701; [70 CC 10, 05, 05]
+1BA9; [71 EE 8E, 05, 05]
-11702; [70 CC 17, 05, 05]
+1BAA; [71 EE 95, 05, 05]
-11703; [70 CC 1E, 05, 05]
+1BAB; [71 EE 9C, 05, 05]
-11704; [70 CE, 05, 05]
-11705; [70 CE, 70, 05]
+FDD1 11005; [71 EF 02, 05, 05] # Brahmi first primary (compressible)
-11706; [70 D0 02, 05, 05]
+11005; [71 EF 09, 05, 05]
-11707; [70 D0 09, 05, 05]
+11006; [71 EF 10, 05, 05]
-11708; [70 D0 10, 05, 05]
+11007; [71 EF 17, 05, 05]
-11709; [70 D0 17, 05, 05]
+11008; [71 EF 1E, 05, 05]
-1170A; [70 D0 1E, 05, 05]
+11009; [71 EF 25, 05, 05]
-1170B; [70 D0 25, 05, 05]
+1100A; [71 EF 2C, 05, 05]
-1170C; [70 D0 2C, 05, 05]
+1100B; [71 EF 33, 05, 05]
-1170D; [70 D0 33, 05, 05]
+1100C; [71 EF 3A, 05, 05]
-1170E; [70 D0 3A, 05, 05]
+1100D; [71 EF 41, 05, 05]
-1170F; [70 D0 41, 05, 05]
+1100E; [71 EF 48, 05, 05]
-11710; [70 D0 48, 05, 05]
+1100F; [71 EF 4F, 05, 05]
-11711; [70 D0 4F, 05, 05]
+11010; [71 EF 56, 05, 05]
-11712; [70 D0 56, 05, 05]
+11011; [71 EF 5D, 05, 05]
-11713; [70 D0 5D, 05, 05]
+11012; [71 EF 64, 05, 05]
-11714; [70 D0 64, 05, 05]
+11013; [71 EF 6B, 05, 05]
-11715; [70 D2, 05, 05]
-11716; [70 D2, 70, 05]
+11014; [71 EF 72, 05, 05]
-11717; [70 D4 02, 05, 05]
+11015; [71 EF 79, 05, 05]
-11718; [70 D4 09, 05, 05]
+11016; [71 EF 80, 05, 05]
-11719; [70 D4 10, 05, 05]
+11017; [71 EF 87, 05, 05]
-11720; [70 D4 17, 05, 05]
+11018; [71 EF 8E, 05, 05]
-11721; [70 D4 1E, 05, 05]
+11019; [71 EF 95, 05, 05]
-11722; [70 D4 25, 05, 05]
+1101A; [71 EF 9C, 05, 05]
-11723; [70 D4 2C, 05, 05]
+1101B; [71 EF A3, 05, 05]
-11724; [70 D4 33, 05, 05]
+1101C; [71 EF AA, 05, 05]
-11725; [70 D4 3A, 05, 05]
+1101D; [71 EF B1, 05, 05]
-11726; [70 D4 41, 05, 05]
+1101E; [71 EF B8, 05, 05]
-11727; [70 D4 48, 05, 05]
+1101F; [71 EF BF, 05, 05]
-11728; [70 D4 4F, 05, 05]
+11020; [71 EF C6, 05, 05]
-11729; [70 D4 56, 05, 05]
+11021; [71 EF CD, 05, 05]
-1172A; [70 D4 5D, 05, 05]
+11022; [71 EF D4, 05, 05]
-1172B; [70 D4 64, 05, 05]
+11023; [71 EF DB, 05, 05]
-1171D; [70 D4 6B, 05, 05]
+11024; [71 EF E2, 05, 05]
-1171E; [70 D4 72, 05, 05]
+11025; [71 EF E9, 05, 05]
-1171F; [70 D4 79, 05, 05]
+11026; [71 EF F0, 05, 05]
-FDD1 11D10; [70 D5 02, 05, 05] # Masaram_Gondi first primary (compressible)
+11027; [71 EF F7, 05, 05]
-11D00; [70 D5 09, 05, 05]
+11028; [71 EF FE, 05, 05]
-11D01; [70 D5 10, 05, 05]
+11029; [71 F0 07, 05, 05]
-11D02; [70 D5 17, 05, 05]
+1102A; [71 F0 0E, 05, 05]
-11D03; [70 D5 1E, 05, 05]
+1102B; [71 F0 15, 05, 05]
-11D04; [70 D5 25, 05, 05]
+1102C; [71 F0 1C, 05, 05]
-11D05; [70 D5 2C, 05, 05]
+1102D; [71 F0 23, 05, 05]
-11D06; [70 D5 33, 05, 05]
+1102E; [71 F0 2A, 05, 05]
-11D08; [70 D5 3A, 05, 05]
+1102F; [71 F0 31, 05, 05]
-11D09; [70 D5 41, 05, 05]
+11030; [71 F0 38, 05, 05]
-11D0B; [70 D5 48, 05, 05]
+11031; [71 F0 3F, 05, 05]
-11D0C; [70 D5 4F, 05, 05]
+11032; [71 F0 46, 05, 05]
-11D0D; [70 D5 56, 05, 05]
+11033; [71 F0 4D, 05, 05]
-11D0E; [70 D5 5D, 05, 05]
+11003; [71 F0 54, 05, 05]
-11D0F; [70 D5 64, 05, 05]
+11004; [71 F0 5B, 05, 05]
-11D10; [70 D5 6B, 05, 05]
+11034; [71 F0 62, 05, 05]
-11D11; [70 D5 72, 05, 05]
+11035; [71 F0 69, 05, 05]
-11D12; [70 D5 79, 05, 05]
+11036; [71 F0 70, 05, 05]
-11D13; [70 D5 80, 05, 05]
+11037; [71 F0 77, 05, 05]
-11D14; [70 D5 87, 05, 05]
+11038; [71 F0 7E, 05, 05]
-11D15; [70 D5 8E, 05, 05]
+11039; [71 F0 85, 05, 05]
-11D16; [70 D5 95, 05, 05]
+1103A; [71 F0 8C, 05, 05]
-11D17; [70 D5 9C, 05, 05]
+1103B; [71 F0 93, 05, 05]
-11D18; [70 D5 A3, 05, 05]
+1103C; [71 F0 9A, 05, 05]
-11D19; [70 D5 AA, 05, 05]
+1103D; [71 F0 A1, 05, 05]
-11D1A; [70 D5 B1, 05, 05]
+1103E; [71 F0 A8, 05, 05]
-11D1B; [70 D5 B8, 05, 05]
+1103F; [71 F0 AF, 05, 05]
-11D1C; [70 D5 BF, 05, 05]
+11040; [71 F0 B6, 05, 05]
-11D1D; [70 D5 C6, 05, 05]
+11041; [71 F0 BD, 05, 05]
-11D1E; [70 D5 CD, 05, 05]
+11042; [71 F0 C4, 05, 05]
-11D1F; [70 D5 D4, 05, 05]
+11043; [71 F0 CB, 05, 05]
-11D20; [70 D5 DB, 05, 05]
+11044; [71 F0 D2, 05, 05]
-11D21; [70 D5 E2, 05, 05]
+11045; [71 F0 D9, 05, 05]
-11D22; [70 D5 E9, 05, 05]
+11046; [71 F0 E0, 05, 05]
-11D23; [70 D5 F0, 05, 05]
+1107F; [71 F0 E7, 05, 05]
-11D24; [70 D5 F7, 05, 05]
+FDD1 10A00; [71 F1 02, 05, 05] # KHAROSHTHI first primary (compressible)
-11D25; [70 D5 FE, 05, 05]
+10A00; [71 F1 09, 05, 05]
-11D26; [70 D7, 05, 05]
-11D46; [70 D7, 05, 20]
-11D47; [70 D7, 05, 2E]
+10A01; [71 F1 10, 05, 05]
-11D27; [70 D9 02, 05, 05]
+10A02; [71 F1 17, 05, 05]
-11D28; [70 D9 09, 05, 05]
+10A03; [71 F1 1E, 05, 05]
-11D29; [70 D9 10, 05, 05]
+10A05; [71 F1 25, 05, 05]
-11D2A; [70 D9 17, 05, 05]
+10A06; [71 F1 2C, 05, 05]
-11D2B; [70 D9 1E, 05, 05]
+10A0C; [71 F1 33, 05, 05]
-11D2C; [70 D9 25, 05, 05]
+10A10; [71 F1 3A, 05, 05]
-11D2D; [70 D9 2C, 05, 05]
+10A32; [71 F1 41, 05, 05]
-11D2E; [70 D9 33, 05, 05]
+10A11; [71 F1 48, 05, 05]
-11D2F; [70 D9 3A, 05, 05]
+10A12; [71 F1 4F, 05, 05]
-11D30; [70 D9 41, 05, 05]
+10A13; [71 F1 56, 05, 05]
-11D31; [70 D9 48, 05, 05]
+10A15; [71 F1 5D, 05, 05]
-11D32; [70 D9 4F, 05, 05]
+10A16; [71 F1 64, 05, 05]
-11D33; [70 D9 56, 05, 05]
+10A17; [71 F1 6B, 05, 05]
-11D34; [70 D9 5D, 05, 05]
+10A19; [71 F1 72, 05, 05]
-11D35; [70 D9 64, 05, 05]
+10A1A; [71 F1 79, 05, 05]
-11D36; [70 D9 6B, 05, 05]
+10A34; [71 F1 80, 05, 05]
-11D3A; [70 D9 72, 05, 05]
+10A1B; [71 F1 87, 05, 05]
-11D3C; [70 D9 79, 05, 05]
+10A33; [71 F1 8E, 05, 05]
-11D3D; [70 D9 80, 05, 05]
+10A1C; [71 F1 95, 05, 05]
-11D3F; [70 D9 87, 05, 05]
+10A1D; [71 F1 9C, 05, 05]
-11D44; [70 D9 8E, 05, 05]
+10A1E; [71 F1 A3, 05, 05]
-11D45; [70 D9 95, 05, 05]
+10A1F; [71 F1 AA, 05, 05]
-FDD1 1B83; [70 DA 02, 05, 05] # Sundanese first primary (compressible)
+10A20; [71 F1 B1, 05, 05]
-1B83; [70 DC, 05, 05]
-1BBA; [70 DC, 05, 20]
+10A21; [71 F1 B8, 05, 05]
-1B84; [70 DE 02, 05, 05]
+10A22; [71 F1 BF, 05, 05]
-1B85; [70 DE 09, 05, 05]
+10A23; [71 F1 C6, 05, 05]
-1B86; [70 DE 10, 05, 05]
+10A24; [71 F1 CD, 05, 05]
-1B87; [70 DE 17, 05, 05]
+10A25; [71 F1 D4, 05, 05]
-1B88; [70 DE 1E, 05, 05]
+10A26; [71 F1 DB, 05, 05]
-1B89; [70 DE 25, 05, 05]
+10A27; [71 F1 E2, 05, 05]
-1B8A; [70 E0, 05, 05]
-1BBE; [70 E0, 05, 20]
+10A28; [71 F1 E9, 05, 05]
-1BAE; [70 E2 02, 05, 05]
+10A29; [71 F1 F0, 05, 05]
-1B8B; [70 E2 09, 05, 05]
+10A2A; [71 F1 F7, 05, 05]
-1B8C; [70 E2 10, 05, 05]
+10A2B; [71 F1 FE, 05, 05]
-1B8D; [70 E2 17, 05, 05]
+10A2C; [71 F2 07, 05, 05]
-1B8E; [70 E2 1E, 05, 05]
+10A35; [71 F2 0E, 05, 05]
-1B8F; [70 E2 25, 05, 05]
+10A2D; [71 F2 15, 05, 05]
-1B90; [70 E2 2C, 05, 05]
+10A2E; [71 F2 1C, 05, 05]
-1B91; [70 E2 33, 05, 05]
+10A2F; [71 F2 23, 05, 05]
-1B92; [70 E2 3A, 05, 05]
+10A30; [71 F2 2A, 05, 05]
-1B93; [70 E2 41, 05, 05]
+10A31; [71 F2 31, 05, 05]
-1B94; [70 E2 48, 05, 05]
+10A3F; [71 F2 38, 05, 05]
-1B95; [70 E2 4F, 05, 05]
+FDD1 11C0E; [71 F3 02, 05, 05] # Bhaiksuki first primary (compressible)
-1B96; [70 E2 56, 05, 05]
+11C00; [71 F3 09, 05, 05]
-1B97; [70 E2 5D, 05, 05]
+11C01; [71 F3 10, 05, 05]
-1B98; [70 E2 64, 05, 05]
+11C02; [71 F3 17, 05, 05]
-1BBD; [70 E2 6B, 05, 05]
+11C03; [71 F3 1E, 05, 05]
-1B99; [70 E4, 05, 05]
-1BBF; [70 E4, 05, 20]
+11C04; [71 F3 25, 05, 05]
-1BAC; [70 E6 02, 05, 05]
+11C05; [71 F3 2C, 05, 05]
-1B9A; [70 E6 09, 05, 05]
+11C06; [71 F3 33, 05, 05]
-1BA1; [70 E6 10, 05, 05]
+11C07; [71 F3 3A, 05, 05]
-1B9B; [70 E6 17, 05, 05]
+11C08; [71 F3 41, 05, 05]
-1BA2; [70 E6 1E, 05, 05]
+11C0A; [71 F3 48, 05, 05]
-1BBB; [70 E6 25, 05, 05]
+11C0B; [71 F3 4F, 05, 05]
-1B9C; [70 E6 2C, 05, 05]
+11C0C; [71 F3 56, 05, 05]
-1BA3; [70 E6 33, 05, 05]
+11C0D; [71 F3 5D, 05, 05]
-1BBC; [70 E6 3A, 05, 05]
+11C0E; [71 F3 64, 05, 05]
-1B9D; [70 E6 41, 05, 05]
+11C0F; [71 F3 6B, 05, 05]
-1BAD; [70 E6 48, 05, 05]
+11C10; [71 F3 72, 05, 05]
-1B9E; [70 E6 4F, 05, 05]
+11C11; [71 F3 79, 05, 05]
-1B9F; [70 E6 56, 05, 05]
+11C12; [71 F3 80, 05, 05]
-1BAF; [70 E6 5D, 05, 05]
+11C13; [71 F3 87, 05, 05]
-1BA0; [70 E6 64, 05, 05]
+11C14; [71 F3 8E, 05, 05]
-1BA4; [70 E6 6B, 05, 05]
+11C15; [71 F3 95, 05, 05]
-1BA5; [70 E6 72, 05, 05]
+11C16; [71 F3 9C, 05, 05]
-1BA6; [70 E6 79, 05, 05]
+11C17; [71 F3 A3, 05, 05]
-1BA7; [70 E6 80, 05, 05]
+11C18; [71 F3 AA, 05, 05]
-1BA8; [70 E6 87, 05, 05]
+11C19; [71 F3 B1, 05, 05]
-1BA9; [70 E6 8E, 05, 05]
+11C1A; [71 F3 B8, 05, 05]
-1BAA; [70 E6 95, 05, 05]
+11C1B; [71 F3 BF, 05, 05]
-1BAB; [70 E6 9C, 05, 05]
+11C1C; [71 F3 C6, 05, 05]
-FDD1 11005; [70 E7 02, 05, 05] # Brahmi first primary (compressible)
+11C1D; [71 F3 CD, 05, 05]
-11005; [70 E7 09, 05, 05]
+11C1E; [71 F3 D4, 05, 05]
-11006; [70 E7 10, 05, 05]
+11C1F; [71 F3 DB, 05, 05]
-11007; [70 E7 17, 05, 05]
+11C20; [71 F3 E2, 05, 05]
-11008; [70 E7 1E, 05, 05]
+11C21; [71 F3 E9, 05, 05]
-11009; [70 E7 25, 05, 05]
+11C22; [71 F3 F0, 05, 05]
-1100A; [70 E7 2C, 05, 05]
+11C23; [71 F3 F7, 05, 05]
-1100B; [70 E7 33, 05, 05]
+11C24; [71 F3 FE, 05, 05]
-1100C; [70 E7 3A, 05, 05]
+11C25; [71 F4 07, 05, 05]
-1100D; [70 E7 41, 05, 05]
+11C26; [71 F4 0E, 05, 05]
-1100E; [70 E7 48, 05, 05]
+11C27; [71 F4 15, 05, 05]
-1100F; [70 E7 4F, 05, 05]
+11C28; [71 F4 1C, 05, 05]
-11010; [70 E7 56, 05, 05]
+11C29; [71 F4 23, 05, 05]
-11011; [70 E7 5D, 05, 05]
+11C2A; [71 F4 2A, 05, 05]
-11012; [70 E7 64, 05, 05]
+11C2B; [71 F4 31, 05, 05]
-11013; [70 E7 6B, 05, 05]
+11C2C; [71 F4 38, 05, 05]
-11014; [70 E7 72, 05, 05]
+11C2D; [71 F4 3F, 05, 05]
-11015; [70 E7 79, 05, 05]
+11C2E; [71 F4 46, 05, 05]
-11016; [70 E7 80, 05, 05]
+11C40; [71 F4 4D, 05, 05]
-11017; [70 E7 87, 05, 05]
+11C2F; [71 F4 54, 05, 05]
-11018; [70 E7 8E, 05, 05]
+11C30; [71 F4 5B, 05, 05]
-11019; [70 E7 95, 05, 05]
+11C31; [71 F4 62, 05, 05]
-1101A; [70 E7 9C, 05, 05]
+11C32; [71 F4 69, 05, 05]
-1101B; [70 E7 A3, 05, 05]
+11C33; [71 F4 70, 05, 05]
-1101C; [70 E7 AA, 05, 05]
+11C34; [71 F4 77, 05, 05]
-1101D; [70 E7 B1, 05, 05]
+11C35; [71 F4 7E, 05, 05]
-1101E; [70 E7 B8, 05, 05]
+11C36; [71 F4 85, 05, 05]
-1101F; [70 E7 BF, 05, 05]
+11C38; [71 F4 8C, 05, 05]
-11020; [70 E7 C6, 05, 05]
+11C39; [71 F4 93, 05, 05]
-11021; [70 E7 CD, 05, 05]
+11C3A; [71 F4 9A, 05, 05]
-11022; [70 E7 D4, 05, 05]
+11C3B; [71 F4 A1, 05, 05]
-11023; [70 E7 DB, 05, 05]
+11C3F; [71 F4 A8, 05, 05]
-11024; [70 E7 E2, 05, 05]
+FDD1 0E17; [72 04 02, 05, 05] # THAI first primary starts new lead byte (compressible)
-11025; [70 E7 E9, 05, 05]
+0E01; [72 06, 05, 05]
+0E40 0E01; [72 06, 05, 05][72 7A, 05, 05]
+0E41 0E01; [72 06, 05, 05][72 7C, 05, 05]
+0E42 0E01; [72 06, 05, 05][72 7E, 05, 05]
+0E43 0E01; [72 06, 05, 05][72 80, 05, 05]
+0E44 0E01; [72 06, 05, 05][72 82, 05, 05]
-11026; [70 E7 F0, 05, 05]
+0E02; [72 08, 05, 05]
+0E40 0E02; [72 08, 05, 05][72 7A, 05, 05]
+0E41 0E02; [72 08, 05, 05][72 7C, 05, 05]
+0E42 0E02; [72 08, 05, 05][72 7E, 05, 05]
+0E43 0E02; [72 08, 05, 05][72 80, 05, 05]
+0E44 0E02; [72 08, 05, 05][72 82, 05, 05]
-11027; [70 E7 F7, 05, 05]
+0E03; [72 0A, 05, 05]
+0E40 0E03; [72 0A, 05, 05][72 7A, 05, 05]
+0E41 0E03; [72 0A, 05, 05][72 7C, 05, 05]
+0E42 0E03; [72 0A, 05, 05][72 7E, 05, 05]
+0E43 0E03; [72 0A, 05, 05][72 80, 05, 05]
+0E44 0E03; [72 0A, 05, 05][72 82, 05, 05]
-11028; [70 E7 FE, 05, 05]
+0E04; [72 0C, 05, 05]
+0E40 0E04; [72 0C, 05, 05][72 7A, 05, 05]
+0E41 0E04; [72 0C, 05, 05][72 7C, 05, 05]
+0E42 0E04; [72 0C, 05, 05][72 7E, 05, 05]
+0E43 0E04; [72 0C, 05, 05][72 80, 05, 05]
+0E44 0E04; [72 0C, 05, 05][72 82, 05, 05]
-11029; [70 E8 07, 05, 05]
+0E05; [72 0E, 05, 05]
+0E40 0E05; [72 0E, 05, 05][72 7A, 05, 05]
+0E41 0E05; [72 0E, 05, 05][72 7C, 05, 05]
+0E42 0E05; [72 0E, 05, 05][72 7E, 05, 05]
+0E43 0E05; [72 0E, 05, 05][72 80, 05, 05]
+0E44 0E05; [72 0E, 05, 05][72 82, 05, 05]
-1102A; [70 E8 0E, 05, 05]
+0E06; [72 10, 05, 05]
+0E40 0E06; [72 10, 05, 05][72 7A, 05, 05]
+0E41 0E06; [72 10, 05, 05][72 7C, 05, 05]
+0E42 0E06; [72 10, 05, 05][72 7E, 05, 05]
+0E43 0E06; [72 10, 05, 05][72 80, 05, 05]
+0E44 0E06; [72 10, 05, 05][72 82, 05, 05]
-1102B; [70 E8 15, 05, 05]
+0E07; [72 12, 05, 05]
+0E40 0E07; [72 12, 05, 05][72 7A, 05, 05]
+0E41 0E07; [72 12, 05, 05][72 7C, 05, 05]
+0E42 0E07; [72 12, 05, 05][72 7E, 05, 05]
+0E43 0E07; [72 12, 05, 05][72 80, 05, 05]
+0E44 0E07; [72 12, 05, 05][72 82, 05, 05]
+
+0E08; [72 14, 05, 05]
+0E40 0E08; [72 14, 05, 05][72 7A, 05, 05]
+0E41 0E08; [72 14, 05, 05][72 7C, 05, 05]
+0E42 0E08; [72 14, 05, 05][72 7E, 05, 05]
+0E43 0E08; [72 14, 05, 05][72 80, 05, 05]
+0E44 0E08; [72 14, 05, 05][72 82, 05, 05]
+
+0E09; [72 16, 05, 05]
+0E40 0E09; [72 16, 05, 05][72 7A, 05, 05]
+0E41 0E09; [72 16, 05, 05][72 7C, 05, 05]
+0E42 0E09; [72 16, 05, 05][72 7E, 05, 05]
+0E43 0E09; [72 16, 05, 05][72 80, 05, 05]
+0E44 0E09; [72 16, 05, 05][72 82, 05, 05]
+
+0E0A; [72 18, 05, 05]
+0E40 0E0A; [72 18, 05, 05][72 7A, 05, 05]
+0E41 0E0A; [72 18, 05, 05][72 7C, 05, 05]
+0E42 0E0A; [72 18, 05, 05][72 7E, 05, 05]
+0E43 0E0A; [72 18, 05, 05][72 80, 05, 05]
+0E44 0E0A; [72 18, 05, 05][72 82, 05, 05]
+
+0E0B; [72 1A, 05, 05]
+0E40 0E0B; [72 1A, 05, 05][72 7A, 05, 05]
+0E41 0E0B; [72 1A, 05, 05][72 7C, 05, 05]
+0E42 0E0B; [72 1A, 05, 05][72 7E, 05, 05]
+0E43 0E0B; [72 1A, 05, 05][72 80, 05, 05]
+0E44 0E0B; [72 1A, 05, 05][72 82, 05, 05]
+
+0E0C; [72 1C, 05, 05]
+0E40 0E0C; [72 1C, 05, 05][72 7A, 05, 05]
+0E41 0E0C; [72 1C, 05, 05][72 7C, 05, 05]
+0E42 0E0C; [72 1C, 05, 05][72 7E, 05, 05]
+0E43 0E0C; [72 1C, 05, 05][72 80, 05, 05]
+0E44 0E0C; [72 1C, 05, 05][72 82, 05, 05]
+
+0E0D; [72 1E, 05, 05]
+0E40 0E0D; [72 1E, 05, 05][72 7A, 05, 05]
+0E41 0E0D; [72 1E, 05, 05][72 7C, 05, 05]
+0E42 0E0D; [72 1E, 05, 05][72 7E, 05, 05]
+0E43 0E0D; [72 1E, 05, 05][72 80, 05, 05]
+0E44 0E0D; [72 1E, 05, 05][72 82, 05, 05]
+
+0E0E; [72 20, 05, 05]
+0E40 0E0E; [72 20, 05, 05][72 7A, 05, 05]
+0E41 0E0E; [72 20, 05, 05][72 7C, 05, 05]
+0E42 0E0E; [72 20, 05, 05][72 7E, 05, 05]
+0E43 0E0E; [72 20, 05, 05][72 80, 05, 05]
+0E44 0E0E; [72 20, 05, 05][72 82, 05, 05]
+
+0E0F; [72 22, 05, 05]
+0E40 0E0F; [72 22, 05, 05][72 7A, 05, 05]
+0E41 0E0F; [72 22, 05, 05][72 7C, 05, 05]
+0E42 0E0F; [72 22, 05, 05][72 7E, 05, 05]
+0E43 0E0F; [72 22, 05, 05][72 80, 05, 05]
+0E44 0E0F; [72 22, 05, 05][72 82, 05, 05]
+
+0E10; [72 24, 05, 05]
+0E40 0E10; [72 24, 05, 05][72 7A, 05, 05]
+0E41 0E10; [72 24, 05, 05][72 7C, 05, 05]
+0E42 0E10; [72 24, 05, 05][72 7E, 05, 05]
+0E43 0E10; [72 24, 05, 05][72 80, 05, 05]
+0E44 0E10; [72 24, 05, 05][72 82, 05, 05]
+
+0E11; [72 26, 05, 05]
+0E40 0E11; [72 26, 05, 05][72 7A, 05, 05]
+0E41 0E11; [72 26, 05, 05][72 7C, 05, 05]
+0E42 0E11; [72 26, 05, 05][72 7E, 05, 05]
+0E43 0E11; [72 26, 05, 05][72 80, 05, 05]
+0E44 0E11; [72 26, 05, 05][72 82, 05, 05]
+
+0E12; [72 28, 05, 05]
+0E40 0E12; [72 28, 05, 05][72 7A, 05, 05]
+0E41 0E12; [72 28, 05, 05][72 7C, 05, 05]
+0E42 0E12; [72 28, 05, 05][72 7E, 05, 05]
+0E43 0E12; [72 28, 05, 05][72 80, 05, 05]
+0E44 0E12; [72 28, 05, 05][72 82, 05, 05]
+
+0E13; [72 2A, 05, 05]
+0E40 0E13; [72 2A, 05, 05][72 7A, 05, 05]
+0E41 0E13; [72 2A, 05, 05][72 7C, 05, 05]
+0E42 0E13; [72 2A, 05, 05][72 7E, 05, 05]
+0E43 0E13; [72 2A, 05, 05][72 80, 05, 05]
+0E44 0E13; [72 2A, 05, 05][72 82, 05, 05]
+
+0E14; [72 2C, 05, 05]
+0E40 0E14; [72 2C, 05, 05][72 7A, 05, 05]
+0E41 0E14; [72 2C, 05, 05][72 7C, 05, 05]
+0E42 0E14; [72 2C, 05, 05][72 7E, 05, 05]
+0E43 0E14; [72 2C, 05, 05][72 80, 05, 05]
+0E44 0E14; [72 2C, 05, 05][72 82, 05, 05]
+
+0E15; [72 2E, 05, 05]
+0E40 0E15; [72 2E, 05, 05][72 7A, 05, 05]
+0E41 0E15; [72 2E, 05, 05][72 7C, 05, 05]
+0E42 0E15; [72 2E, 05, 05][72 7E, 05, 05]
+0E43 0E15; [72 2E, 05, 05][72 80, 05, 05]
+0E44 0E15; [72 2E, 05, 05][72 82, 05, 05]
+
+0E16; [72 30, 05, 05]
+0E40 0E16; [72 30, 05, 05][72 7A, 05, 05]
+0E41 0E16; [72 30, 05, 05][72 7C, 05, 05]
+0E42 0E16; [72 30, 05, 05][72 7E, 05, 05]
+0E43 0E16; [72 30, 05, 05][72 80, 05, 05]
+0E44 0E16; [72 30, 05, 05][72 82, 05, 05]
+
+0E17; [72 32, 05, 05]
+0E40 0E17; [72 32, 05, 05][72 7A, 05, 05]
+0E41 0E17; [72 32, 05, 05][72 7C, 05, 05]
+0E42 0E17; [72 32, 05, 05][72 7E, 05, 05]
+0E43 0E17; [72 32, 05, 05][72 80, 05, 05]
+0E44 0E17; [72 32, 05, 05][72 82, 05, 05]
+
+0E18; [72 34, 05, 05]
+0E40 0E18; [72 34, 05, 05][72 7A, 05, 05]
+0E41 0E18; [72 34, 05, 05][72 7C, 05, 05]
+0E42 0E18; [72 34, 05, 05][72 7E, 05, 05]
+0E43 0E18; [72 34, 05, 05][72 80, 05, 05]
+0E44 0E18; [72 34, 05, 05][72 82, 05, 05]
+
+0E19; [72 36, 05, 05]
+0E40 0E19; [72 36, 05, 05][72 7A, 05, 05]
+0E41 0E19; [72 36, 05, 05][72 7C, 05, 05]
+0E42 0E19; [72 36, 05, 05][72 7E, 05, 05]
+0E43 0E19; [72 36, 05, 05][72 80, 05, 05]
+0E44 0E19; [72 36, 05, 05][72 82, 05, 05]
+
+0E1A; [72 38, 05, 05]
+0E40 0E1A; [72 38, 05, 05][72 7A, 05, 05]
+0E41 0E1A; [72 38, 05, 05][72 7C, 05, 05]
+0E42 0E1A; [72 38, 05, 05][72 7E, 05, 05]
+0E43 0E1A; [72 38, 05, 05][72 80, 05, 05]
+0E44 0E1A; [72 38, 05, 05][72 82, 05, 05]
+
+0E1B; [72 3A, 05, 05]
+0E40 0E1B; [72 3A, 05, 05][72 7A, 05, 05]
+0E41 0E1B; [72 3A, 05, 05][72 7C, 05, 05]
+0E42 0E1B; [72 3A, 05, 05][72 7E, 05, 05]
+0E43 0E1B; [72 3A, 05, 05][72 80, 05, 05]
+0E44 0E1B; [72 3A, 05, 05][72 82, 05, 05]
+
+0E1C; [72 3C, 05, 05]
+0E40 0E1C; [72 3C, 05, 05][72 7A, 05, 05]
+0E41 0E1C; [72 3C, 05, 05][72 7C, 05, 05]
+0E42 0E1C; [72 3C, 05, 05][72 7E, 05, 05]
+0E43 0E1C; [72 3C, 05, 05][72 80, 05, 05]
+0E44 0E1C; [72 3C, 05, 05][72 82, 05, 05]
+
+0E1D; [72 3E, 05, 05]
+0E40 0E1D; [72 3E, 05, 05][72 7A, 05, 05]
+0E41 0E1D; [72 3E, 05, 05][72 7C, 05, 05]
+0E42 0E1D; [72 3E, 05, 05][72 7E, 05, 05]
+0E43 0E1D; [72 3E, 05, 05][72 80, 05, 05]
+0E44 0E1D; [72 3E, 05, 05][72 82, 05, 05]
+
+0E1E; [72 40, 05, 05]
+0E40 0E1E; [72 40, 05, 05][72 7A, 05, 05]
+0E41 0E1E; [72 40, 05, 05][72 7C, 05, 05]
+0E42 0E1E; [72 40, 05, 05][72 7E, 05, 05]
+0E43 0E1E; [72 40, 05, 05][72 80, 05, 05]
+0E44 0E1E; [72 40, 05, 05][72 82, 05, 05]
+
+0E1F; [72 42, 05, 05]
+0E40 0E1F; [72 42, 05, 05][72 7A, 05, 05]
+0E41 0E1F; [72 42, 05, 05][72 7C, 05, 05]
+0E42 0E1F; [72 42, 05, 05][72 7E, 05, 05]
+0E43 0E1F; [72 42, 05, 05][72 80, 05, 05]
+0E44 0E1F; [72 42, 05, 05][72 82, 05, 05]
+
+0E20; [72 44, 05, 05]
+0E40 0E20; [72 44, 05, 05][72 7A, 05, 05]
+0E41 0E20; [72 44, 05, 05][72 7C, 05, 05]
+0E42 0E20; [72 44, 05, 05][72 7E, 05, 05]
+0E43 0E20; [72 44, 05, 05][72 80, 05, 05]
+0E44 0E20; [72 44, 05, 05][72 82, 05, 05]
+
+0E21; [72 46, 05, 05]
+0E40 0E21; [72 46, 05, 05][72 7A, 05, 05]
+0E41 0E21; [72 46, 05, 05][72 7C, 05, 05]
+0E42 0E21; [72 46, 05, 05][72 7E, 05, 05]
+0E43 0E21; [72 46, 05, 05][72 80, 05, 05]
+0E44 0E21; [72 46, 05, 05][72 82, 05, 05]
+
+0E22; [72 48, 05, 05]
+0E40 0E22; [72 48, 05, 05][72 7A, 05, 05]
+0E41 0E22; [72 48, 05, 05][72 7C, 05, 05]
+0E42 0E22; [72 48, 05, 05][72 7E, 05, 05]
+0E43 0E22; [72 48, 05, 05][72 80, 05, 05]
+0E44 0E22; [72 48, 05, 05][72 82, 05, 05]
+
+0E23; [72 4A, 05, 05]
+0E40 0E23; [72 4A, 05, 05][72 7A, 05, 05]
+0E41 0E23; [72 4A, 05, 05][72 7C, 05, 05]
+0E42 0E23; [72 4A, 05, 05][72 7E, 05, 05]
+0E43 0E23; [72 4A, 05, 05][72 80, 05, 05]
+0E44 0E23; [72 4A, 05, 05][72 82, 05, 05]
+
+0E24; [72 4C, 05, 05]
+0E40 0E24; [72 4C, 05, 05][72 7A, 05, 05]
+0E41 0E24; [72 4C, 05, 05][72 7C, 05, 05]
+0E42 0E24; [72 4C, 05, 05][72 7E, 05, 05]
+0E43 0E24; [72 4C, 05, 05][72 80, 05, 05]
+0E44 0E24; [72 4C, 05, 05][72 82, 05, 05]
+
+0E25; [72 4E, 05, 05]
+0E40 0E25; [72 4E, 05, 05][72 7A, 05, 05]
+0E41 0E25; [72 4E, 05, 05][72 7C, 05, 05]
+0E42 0E25; [72 4E, 05, 05][72 7E, 05, 05]
+0E43 0E25; [72 4E, 05, 05][72 80, 05, 05]
+0E44 0E25; [72 4E, 05, 05][72 82, 05, 05]
+
+0E26; [72 50, 05, 05]
+0E40 0E26; [72 50, 05, 05][72 7A, 05, 05]
+0E41 0E26; [72 50, 05, 05][72 7C, 05, 05]
+0E42 0E26; [72 50, 05, 05][72 7E, 05, 05]
+0E43 0E26; [72 50, 05, 05][72 80, 05, 05]
+0E44 0E26; [72 50, 05, 05][72 82, 05, 05]
+
+0E27; [72 52, 05, 05]
+0E40 0E27; [72 52, 05, 05][72 7A, 05, 05]
+0E41 0E27; [72 52, 05, 05][72 7C, 05, 05]
+0E42 0E27; [72 52, 05, 05][72 7E, 05, 05]
+0E43 0E27; [72 52, 05, 05][72 80, 05, 05]
+0E44 0E27; [72 52, 05, 05][72 82, 05, 05]
+
+0E28; [72 54, 05, 05]
+0E40 0E28; [72 54, 05, 05][72 7A, 05, 05]
+0E41 0E28; [72 54, 05, 05][72 7C, 05, 05]
+0E42 0E28; [72 54, 05, 05][72 7E, 05, 05]
+0E43 0E28; [72 54, 05, 05][72 80, 05, 05]
+0E44 0E28; [72 54, 05, 05][72 82, 05, 05]
+
+0E29; [72 56, 05, 05]
+0E40 0E29; [72 56, 05, 05][72 7A, 05, 05]
+0E41 0E29; [72 56, 05, 05][72 7C, 05, 05]
+0E42 0E29; [72 56, 05, 05][72 7E, 05, 05]
+0E43 0E29; [72 56, 05, 05][72 80, 05, 05]
+0E44 0E29; [72 56, 05, 05][72 82, 05, 05]
+
+0E2A; [72 58, 05, 05]
+0E40 0E2A; [72 58, 05, 05][72 7A, 05, 05]
+0E41 0E2A; [72 58, 05, 05][72 7C, 05, 05]
+0E42 0E2A; [72 58, 05, 05][72 7E, 05, 05]
+0E43 0E2A; [72 58, 05, 05][72 80, 05, 05]
+0E44 0E2A; [72 58, 05, 05][72 82, 05, 05]
+
+0E2B; [72 5A, 05, 05]
+0E40 0E2B; [72 5A, 05, 05][72 7A, 05, 05]
+0E41 0E2B; [72 5A, 05, 05][72 7C, 05, 05]
+0E42 0E2B; [72 5A, 05, 05][72 7E, 05, 05]
+0E43 0E2B; [72 5A, 05, 05][72 80, 05, 05]
+0E44 0E2B; [72 5A, 05, 05][72 82, 05, 05]
+
+0E2C; [72 5C, 05, 05]
+0E40 0E2C; [72 5C, 05, 05][72 7A, 05, 05]
+0E41 0E2C; [72 5C, 05, 05][72 7C, 05, 05]
+0E42 0E2C; [72 5C, 05, 05][72 7E, 05, 05]
+0E43 0E2C; [72 5C, 05, 05][72 80, 05, 05]
+0E44 0E2C; [72 5C, 05, 05][72 82, 05, 05]
+
+0E2D; [72 5E, 05, 05]
+0E40 0E2D; [72 5E, 05, 05][72 7A, 05, 05]
+0E41 0E2D; [72 5E, 05, 05][72 7C, 05, 05]
+0E42 0E2D; [72 5E, 05, 05][72 7E, 05, 05]
+0E43 0E2D; [72 5E, 05, 05][72 80, 05, 05]
+0E44 0E2D; [72 5E, 05, 05][72 82, 05, 05]
+
+0E2E; [72 60, 05, 05]
+0E40 0E2E; [72 60, 05, 05][72 7A, 05, 05]
+0E41 0E2E; [72 60, 05, 05][72 7C, 05, 05]
+0E42 0E2E; [72 60, 05, 05][72 7E, 05, 05]
+0E43 0E2E; [72 60, 05, 05][72 80, 05, 05]
+0E44 0E2E; [72 60, 05, 05][72 82, 05, 05]
+
+0E2F; [72 62, 05, 05]
+
+0E30; [72 64, 05, 05]
+
+0E31; [72 66, 05, 05]
+
+0E32; [72 68, 05, 05]
+
+0E33; [72 6A, 05, 05]
+0E4D 0E32; [72 6A, 05, 05]
+
+0E34; [72 6C, 05, 05]
+
+0E35; [72 6E, 05, 05]
+
+0E36; [72 70, 05, 05]
+
+0E37; [72 72, 05, 05]
+
+0E38; [72 74, 05, 05]
+
+0E39; [72 76, 05, 05]
+
+0E3A; [72 78, 05, 05]
+
+0E40; [72 7A, 05, 05]
+
+0E41; [72 7C, 05, 05]
+
+0E42; [72 7E, 05, 05]
+
+0E43; [72 80, 05, 05]
+
+0E44; [72 82, 05, 05]
+
+0E45; [72 84, 05, 05]
+
+FDD1 0EA5; [73 04 02, 05, 05] # LAO first primary starts new lead byte (compressible)
+
+0EDE; [73 06, 05, 05]
+0EC0 0EDE; [73 06, 05, 05][73 5C, 05, 05]
+0EC1 0EDE; [73 06, 05, 05][73 5E, 05, 05]
+0EC2 0EDE; [73 06, 05, 05][73 60, 05, 05]
+0EC3 0EDE; [73 06, 05, 05][73 62, 05, 05]
+0EC4 0EDE; [73 06, 05, 05][73 64, 05, 05]
+
+0E81; [73 08, 05, 05]
+0EC0 0E81; [73 08, 05, 05][73 5C, 05, 05]
+0EC1 0E81; [73 08, 05, 05][73 5E, 05, 05]
+0EC2 0E81; [73 08, 05, 05][73 60, 05, 05]
+0EC3 0E81; [73 08, 05, 05][73 62, 05, 05]
+0EC4 0E81; [73 08, 05, 05][73 64, 05, 05]
+
+0E82; [73 0A, 05, 05]
+0EC0 0E82; [73 0A, 05, 05][73 5C, 05, 05]
+0EC1 0E82; [73 0A, 05, 05][73 5E, 05, 05]
+0EC2 0E82; [73 0A, 05, 05][73 60, 05, 05]
+0EC3 0E82; [73 0A, 05, 05][73 62, 05, 05]
+0EC4 0E82; [73 0A, 05, 05][73 64, 05, 05]
+
+0E84; [73 0C, 05, 05]
+0EC0 0E84; [73 0C, 05, 05][73 5C, 05, 05]
+0EC1 0E84; [73 0C, 05, 05][73 5E, 05, 05]
+0EC2 0E84; [73 0C, 05, 05][73 60, 05, 05]
+0EC3 0E84; [73 0C, 05, 05][73 62, 05, 05]
+0EC4 0E84; [73 0C, 05, 05][73 64, 05, 05]
+
+0E87; [73 0E, 05, 05]
+0EC0 0E87; [73 0E, 05, 05][73 5C, 05, 05]
+0EC1 0E87; [73 0E, 05, 05][73 5E, 05, 05]
+0EC2 0E87; [73 0E, 05, 05][73 60, 05, 05]
+0EC3 0E87; [73 0E, 05, 05][73 62, 05, 05]
+0EC4 0E87; [73 0E, 05, 05][73 64, 05, 05]
+
+0E88; [73 10, 05, 05]
+0EC0 0E88; [73 10, 05, 05][73 5C, 05, 05]
+0EC1 0E88; [73 10, 05, 05][73 5E, 05, 05]
+0EC2 0E88; [73 10, 05, 05][73 60, 05, 05]
+0EC3 0E88; [73 10, 05, 05][73 62, 05, 05]
+0EC4 0E88; [73 10, 05, 05][73 64, 05, 05]
+
+0EAA; [73 12, 05, 05]
+0EC0 0EAA; [73 12, 05, 05][73 5C, 05, 05]
+0EC1 0EAA; [73 12, 05, 05][73 5E, 05, 05]
+0EC2 0EAA; [73 12, 05, 05][73 60, 05, 05]
+0EC3 0EAA; [73 12, 05, 05][73 62, 05, 05]
+0EC4 0EAA; [73 12, 05, 05][73 64, 05, 05]
+
+0E8A; [73 14, 05, 05]
+0EC0 0E8A; [73 14, 05, 05][73 5C, 05, 05]
+0EC1 0E8A; [73 14, 05, 05][73 5E, 05, 05]
+0EC2 0E8A; [73 14, 05, 05][73 60, 05, 05]
+0EC3 0E8A; [73 14, 05, 05][73 62, 05, 05]
+0EC4 0E8A; [73 14, 05, 05][73 64, 05, 05]
+
+0EDF; [73 16, 05, 05]
+0EC0 0EDF; [73 16, 05, 05][73 5C, 05, 05]
+0EC1 0EDF; [73 16, 05, 05][73 5E, 05, 05]
+0EC2 0EDF; [73 16, 05, 05][73 60, 05, 05]
+0EC3 0EDF; [73 16, 05, 05][73 62, 05, 05]
+0EC4 0EDF; [73 16, 05, 05][73 64, 05, 05]
+
+0E8D; [73 18, 05, 05]
+0EC0 0E8D; [73 18, 05, 05][73 5C, 05, 05]
+0EC1 0E8D; [73 18, 05, 05][73 5E, 05, 05]
+0EC2 0E8D; [73 18, 05, 05][73 60, 05, 05]
+0EC3 0E8D; [73 18, 05, 05][73 62, 05, 05]
+0EC4 0E8D; [73 18, 05, 05][73 64, 05, 05]
+
+0E94; [73 1A, 05, 05]
+0EC0 0E94; [73 1A, 05, 05][73 5C, 05, 05]
+0EC1 0E94; [73 1A, 05, 05][73 5E, 05, 05]
+0EC2 0E94; [73 1A, 05, 05][73 60, 05, 05]
+0EC3 0E94; [73 1A, 05, 05][73 62, 05, 05]
+0EC4 0E94; [73 1A, 05, 05][73 64, 05, 05]
+
+0E95; [73 1C, 05, 05]
+0EC0 0E95; [73 1C, 05, 05][73 5C, 05, 05]
+0EC1 0E95; [73 1C, 05, 05][73 5E, 05, 05]
+0EC2 0E95; [73 1C, 05, 05][73 60, 05, 05]
+0EC3 0E95; [73 1C, 05, 05][73 62, 05, 05]
+0EC4 0E95; [73 1C, 05, 05][73 64, 05, 05]
+
+0E96; [73 1E, 05, 05]
+0EC0 0E96; [73 1E, 05, 05][73 5C, 05, 05]
+0EC1 0E96; [73 1E, 05, 05][73 5E, 05, 05]
+0EC2 0E96; [73 1E, 05, 05][73 60, 05, 05]
+0EC3 0E96; [73 1E, 05, 05][73 62, 05, 05]
+0EC4 0E96; [73 1E, 05, 05][73 64, 05, 05]
+
+0E97; [73 20, 05, 05]
+0EC0 0E97; [73 20, 05, 05][73 5C, 05, 05]
+0EC1 0E97; [73 20, 05, 05][73 5E, 05, 05]
+0EC2 0E97; [73 20, 05, 05][73 60, 05, 05]
+0EC3 0E97; [73 20, 05, 05][73 62, 05, 05]
+0EC4 0E97; [73 20, 05, 05][73 64, 05, 05]
+
+0E99; [73 22, 05, 05]
+0EC0 0E99; [73 22, 05, 05][73 5C, 05, 05]
+0EC1 0E99; [73 22, 05, 05][73 5E, 05, 05]
+0EC2 0E99; [73 22, 05, 05][73 60, 05, 05]
+0EC3 0E99; [73 22, 05, 05][73 62, 05, 05]
+0EC4 0E99; [73 22, 05, 05][73 64, 05, 05]
+
+0E9A; [73 24, 05, 05]
+0EC0 0E9A; [73 24, 05, 05][73 5C, 05, 05]
+0EC1 0E9A; [73 24, 05, 05][73 5E, 05, 05]
+0EC2 0E9A; [73 24, 05, 05][73 60, 05, 05]
+0EC3 0E9A; [73 24, 05, 05][73 62, 05, 05]
+0EC4 0E9A; [73 24, 05, 05][73 64, 05, 05]
+
+0E9B; [73 26, 05, 05]
+0EC0 0E9B; [73 26, 05, 05][73 5C, 05, 05]
+0EC1 0E9B; [73 26, 05, 05][73 5E, 05, 05]
+0EC2 0E9B; [73 26, 05, 05][73 60, 05, 05]
+0EC3 0E9B; [73 26, 05, 05][73 62, 05, 05]
+0EC4 0E9B; [73 26, 05, 05][73 64, 05, 05]
+
+0E9C; [73 28, 05, 05]
+0EC0 0E9C; [73 28, 05, 05][73 5C, 05, 05]
+0EC1 0E9C; [73 28, 05, 05][73 5E, 05, 05]
+0EC2 0E9C; [73 28, 05, 05][73 60, 05, 05]
+0EC3 0E9C; [73 28, 05, 05][73 62, 05, 05]
+0EC4 0E9C; [73 28, 05, 05][73 64, 05, 05]
+
+0E9D; [73 2A, 05, 05]
+0EC0 0E9D; [73 2A, 05, 05][73 5C, 05, 05]
+0EC1 0E9D; [73 2A, 05, 05][73 5E, 05, 05]
+0EC2 0E9D; [73 2A, 05, 05][73 60, 05, 05]
+0EC3 0E9D; [73 2A, 05, 05][73 62, 05, 05]
+0EC4 0E9D; [73 2A, 05, 05][73 64, 05, 05]
+
+0E9E; [73 2C, 05, 05]
+0EC0 0E9E; [73 2C, 05, 05][73 5C, 05, 05]
+0EC1 0E9E; [73 2C, 05, 05][73 5E, 05, 05]
+0EC2 0E9E; [73 2C, 05, 05][73 60, 05, 05]
+0EC3 0E9E; [73 2C, 05, 05][73 62, 05, 05]
+0EC4 0E9E; [73 2C, 05, 05][73 64, 05, 05]
+
+0E9F; [73 2E, 05, 05]
+0EC0 0E9F; [73 2E, 05, 05][73 5C, 05, 05]
+0EC1 0E9F; [73 2E, 05, 05][73 5E, 05, 05]
+0EC2 0E9F; [73 2E, 05, 05][73 60, 05, 05]
+0EC3 0E9F; [73 2E, 05, 05][73 62, 05, 05]
+0EC4 0E9F; [73 2E, 05, 05][73 64, 05, 05]
+
+0EA1; [73 30, 05, 05]
+0EC0 0EA1; [73 30, 05, 05][73 5C, 05, 05]
+0EC1 0EA1; [73 30, 05, 05][73 5E, 05, 05]
+0EC2 0EA1; [73 30, 05, 05][73 60, 05, 05]
+0EC3 0EA1; [73 30, 05, 05][73 62, 05, 05]
+0EC4 0EA1; [73 30, 05, 05][73 64, 05, 05]
+
+0EA2; [73 32, 05, 05]
+0EC0 0EA2; [73 32, 05, 05][73 5C, 05, 05]
+0EC1 0EA2; [73 32, 05, 05][73 5E, 05, 05]
+0EC2 0EA2; [73 32, 05, 05][73 60, 05, 05]
+0EC3 0EA2; [73 32, 05, 05][73 62, 05, 05]
+0EC4 0EA2; [73 32, 05, 05][73 64, 05, 05]
+
+0EA3; [73 34, 05, 05]
+0EC0 0EA3; [73 34, 05, 05][73 5C, 05, 05]
+0EC1 0EA3; [73 34, 05, 05][73 5E, 05, 05]
+0EC2 0EA3; [73 34, 05, 05][73 60, 05, 05]
+0EC3 0EA3; [73 34, 05, 05][73 62, 05, 05]
+0EC4 0EA3; [73 34, 05, 05][73 64, 05, 05]
+
+0EA5; [73 36, 05, 05]
+0EC0 0EA5; [73 36, 05, 05][73 5C, 05, 05]
+0EC1 0EA5; [73 36, 05, 05][73 5E, 05, 05]
+0EC2 0EA5; [73 36, 05, 05][73 60, 05, 05]
+0EC3 0EA5; [73 36, 05, 05][73 62, 05, 05]
+0EC4 0EA5; [73 36, 05, 05][73 64, 05, 05]
+
+0EA7; [73 38, 05, 05]
+0EC0 0EA7; [73 38, 05, 05][73 5C, 05, 05]
+0EC1 0EA7; [73 38, 05, 05][73 5E, 05, 05]
+0EC2 0EA7; [73 38, 05, 05][73 60, 05, 05]
+0EC3 0EA7; [73 38, 05, 05][73 62, 05, 05]
+0EC4 0EA7; [73 38, 05, 05][73 64, 05, 05]
+
+0EAB; [73 3A, 05, 05]
+0EDC; [73 3A, 05, 20][73 22, 05, 20]
+0EC0 0EDC; [73 3A, 05, 20][73 22, 05, 20][73 5C, 05, 05]
+0EC1 0EDC; [73 3A, 05, 20][73 22, 05, 20][73 5E, 05, 05]
+0EC2 0EDC; [73 3A, 05, 20][73 22, 05, 20][73 60, 05, 05]
+0EC3 0EDC; [73 3A, 05, 20][73 22, 05, 20][73 62, 05, 05]
+0EC4 0EDC; [73 3A, 05, 20][73 22, 05, 20][73 64, 05, 05]
+0EDD; [73 3A, 05, 20][73 30, 05, 20]
+0EC0 0EDD; [73 3A, 05, 20][73 30, 05, 20][73 5C, 05, 05]
+0EC1 0EDD; [73 3A, 05, 20][73 30, 05, 20][73 5E, 05, 05]
+0EC2 0EDD; [73 3A, 05, 20][73 30, 05, 20][73 60, 05, 05]
+0EC3 0EDD; [73 3A, 05, 20][73 30, 05, 20][73 62, 05, 05]
+0EC4 0EDD; [73 3A, 05, 20][73 30, 05, 20][73 64, 05, 05]
+0EC0 0EAB; [73 3A, 05, 05][73 5C, 05, 05]
+0EC1 0EAB; [73 3A, 05, 05][73 5E, 05, 05]
+0EC2 0EAB; [73 3A, 05, 05][73 60, 05, 05]
+0EC3 0EAB; [73 3A, 05, 05][73 62, 05, 05]
+0EC4 0EAB; [73 3A, 05, 05][73 64, 05, 05]
+
+0EAD; [73 3C, 05, 05]
+0EC0 0EAD; [73 3C, 05, 05][73 5C, 05, 05]
+0EC1 0EAD; [73 3C, 05, 05][73 5E, 05, 05]
+0EC2 0EAD; [73 3C, 05, 05][73 60, 05, 05]
+0EC3 0EAD; [73 3C, 05, 05][73 62, 05, 05]
+0EC4 0EAD; [73 3C, 05, 05][73 64, 05, 05]
+
+0EAE; [73 3E, 05, 05]
+0EC0 0EAE; [73 3E, 05, 05][73 5C, 05, 05]
+0EC1 0EAE; [73 3E, 05, 05][73 5E, 05, 05]
+0EC2 0EAE; [73 3E, 05, 05][73 60, 05, 05]
+0EC3 0EAE; [73 3E, 05, 05][73 62, 05, 05]
+0EC4 0EAE; [73 3E, 05, 05][73 64, 05, 05]
+
+0EAF; [73 40, 05, 05]
+
+0EB0; [73 42, 05, 05]
+
+0EB1; [73 44, 05, 05]
+
+0EB2; [73 46, 05, 05]
+
+0EB3; [73 48, 05, 05]
+0ECD 0EB2; [73 48, 05, 05]
+
+0EB4; [73 4A, 05, 05]
+
+0EB5; [73 4C, 05, 05]
+
+0EB6; [73 4E, 05, 05]
+
+0EB7; [73 50, 05, 05]
+
+0EB8; [73 52, 05, 05]
+
+0EB9; [73 54, 05, 05]
+
+0EBB; [73 56, 05, 05]
+
+0EBC; [73 58, 05, 05]
+
+0EBD; [73 5A, 05, 05]
+
+0EC0; [73 5C, 05, 05]
+
+0EC1; [73 5E, 05, 05]
+
+0EC2; [73 60, 05, 05]
+
+0EC3; [73 62, 05, 05]
+
+0EC4; [73 64, 05, 05]
+
+FDD1 AA80; [73 66 02, 05, 05] # Tai Viet first primary (compressible)
+
+AA80; [73 66 09, 05, 05]
+AAB5 AA80; [73 66 09, 05, 05][73 67 7E, 05, 05]
+AAB6 AA80; [73 66 09, 05, 05][73 67 85, 05, 05]
+AAB9 AA80; [73 66 09, 05, 05][73 67 9A, 05, 05]
+AABB AA80; [73 66 09, 05, 05][73 67 A8, 05, 05]
+AABC AA80; [73 66 09, 05, 05][73 67 AF, 05, 05]
+
+AA81; [73 66 10, 05, 05]
+AAB5 AA81; [73 66 10, 05, 05][73 67 7E, 05, 05]
+AAB6 AA81; [73 66 10, 05, 05][73 67 85, 05, 05]
+AAB9 AA81; [73 66 10, 05, 05][73 67 9A, 05, 05]
+AABB AA81; [73 66 10, 05, 05][73 67 A8, 05, 05]
+AABC AA81; [73 66 10, 05, 05][73 67 AF, 05, 05]
+
+AA82; [73 66 17, 05, 05]
+AAB5 AA82; [73 66 17, 05, 05][73 67 7E, 05, 05]
+AAB6 AA82; [73 66 17, 05, 05][73 67 85, 05, 05]
+AAB9 AA82; [73 66 17, 05, 05][73 67 9A, 05, 05]
+AABB AA82; [73 66 17, 05, 05][73 67 A8, 05, 05]
+AABC AA82; [73 66 17, 05, 05][73 67 AF, 05, 05]
+
+AA83; [73 66 1E, 05, 05]
+AAB5 AA83; [73 66 1E, 05, 05][73 67 7E, 05, 05]
+AAB6 AA83; [73 66 1E, 05, 05][73 67 85, 05, 05]
+AAB9 AA83; [73 66 1E, 05, 05][73 67 9A, 05, 05]
+AABB AA83; [73 66 1E, 05, 05][73 67 A8, 05, 05]
+AABC AA83; [73 66 1E, 05, 05][73 67 AF, 05, 05]
+
+AA84; [73 66 25, 05, 05]
+AAB5 AA84; [73 66 25, 05, 05][73 67 7E, 05, 05]
+AAB6 AA84; [73 66 25, 05, 05][73 67 85, 05, 05]
+AAB9 AA84; [73 66 25, 05, 05][73 67 9A, 05, 05]
+AABB AA84; [73 66 25, 05, 05][73 67 A8, 05, 05]
+AABC AA84; [73 66 25, 05, 05][73 67 AF, 05, 05]
+
+AA85; [73 66 2C, 05, 05]
+AAB5 AA85; [73 66 2C, 05, 05][73 67 7E, 05, 05]
+AAB6 AA85; [73 66 2C, 05, 05][73 67 85, 05, 05]
+AAB9 AA85; [73 66 2C, 05, 05][73 67 9A, 05, 05]
+AABB AA85; [73 66 2C, 05, 05][73 67 A8, 05, 05]
+AABC AA85; [73 66 2C, 05, 05][73 67 AF, 05, 05]
+
+AA86; [73 66 33, 05, 05]
+AAB5 AA86; [73 66 33, 05, 05][73 67 7E, 05, 05]
+AAB6 AA86; [73 66 33, 05, 05][73 67 85, 05, 05]
+AAB9 AA86; [73 66 33, 05, 05][73 67 9A, 05, 05]
+AABB AA86; [73 66 33, 05, 05][73 67 A8, 05, 05]
+AABC AA86; [73 66 33, 05, 05][73 67 AF, 05, 05]
+
+AA87; [73 66 3A, 05, 05]
+AAB5 AA87; [73 66 3A, 05, 05][73 67 7E, 05, 05]
+AAB6 AA87; [73 66 3A, 05, 05][73 67 85, 05, 05]
+AAB9 AA87; [73 66 3A, 05, 05][73 67 9A, 05, 05]
+AABB AA87; [73 66 3A, 05, 05][73 67 A8, 05, 05]
+AABC AA87; [73 66 3A, 05, 05][73 67 AF, 05, 05]
+
+AA88; [73 66 41, 05, 05]
+AAB5 AA88; [73 66 41, 05, 05][73 67 7E, 05, 05]
+AAB6 AA88; [73 66 41, 05, 05][73 67 85, 05, 05]
+AAB9 AA88; [73 66 41, 05, 05][73 67 9A, 05, 05]
+AABB AA88; [73 66 41, 05, 05][73 67 A8, 05, 05]
+AABC AA88; [73 66 41, 05, 05][73 67 AF, 05, 05]
+
+AA89; [73 66 48, 05, 05]
+AAB5 AA89; [73 66 48, 05, 05][73 67 7E, 05, 05]
+AAB6 AA89; [73 66 48, 05, 05][73 67 85, 05, 05]
+AAB9 AA89; [73 66 48, 05, 05][73 67 9A, 05, 05]
+AABB AA89; [73 66 48, 05, 05][73 67 A8, 05, 05]
+AABC AA89; [73 66 48, 05, 05][73 67 AF, 05, 05]
+
+AA8A; [73 66 4F, 05, 05]
+AAB5 AA8A; [73 66 4F, 05, 05][73 67 7E, 05, 05]
+AAB6 AA8A; [73 66 4F, 05, 05][73 67 85, 05, 05]
+AAB9 AA8A; [73 66 4F, 05, 05][73 67 9A, 05, 05]
+AABB AA8A; [73 66 4F, 05, 05][73 67 A8, 05, 05]
+AABC AA8A; [73 66 4F, 05, 05][73 67 AF, 05, 05]
+
+AA8B; [73 66 56, 05, 05]
+AAB5 AA8B; [73 66 56, 05, 05][73 67 7E, 05, 05]
+AAB6 AA8B; [73 66 56, 05, 05][73 67 85, 05, 05]
+AAB9 AA8B; [73 66 56, 05, 05][73 67 9A, 05, 05]
+AABB AA8B; [73 66 56, 05, 05][73 67 A8, 05, 05]
+AABC AA8B; [73 66 56, 05, 05][73 67 AF, 05, 05]
+
+AA8C; [73 66 5D, 05, 05]
+AAB5 AA8C; [73 66 5D, 05, 05][73 67 7E, 05, 05]
+AAB6 AA8C; [73 66 5D, 05, 05][73 67 85, 05, 05]
+AAB9 AA8C; [73 66 5D, 05, 05][73 67 9A, 05, 05]
+AABB AA8C; [73 66 5D, 05, 05][73 67 A8, 05, 05]
+AABC AA8C; [73 66 5D, 05, 05][73 67 AF, 05, 05]
+
+AA8D; [73 66 64, 05, 05]
+AAB5 AA8D; [73 66 64, 05, 05][73 67 7E, 05, 05]
+AAB6 AA8D; [73 66 64, 05, 05][73 67 85, 05, 05]
+AAB9 AA8D; [73 66 64, 05, 05][73 67 9A, 05, 05]
+AABB AA8D; [73 66 64, 05, 05][73 67 A8, 05, 05]
+AABC AA8D; [73 66 64, 05, 05][73 67 AF, 05, 05]
+
+AA8E; [73 66 6B, 05, 05]
+AAB5 AA8E; [73 66 6B, 05, 05][73 67 7E, 05, 05]
+AAB6 AA8E; [73 66 6B, 05, 05][73 67 85, 05, 05]
+AAB9 AA8E; [73 66 6B, 05, 05][73 67 9A, 05, 05]
+AABB AA8E; [73 66 6B, 05, 05][73 67 A8, 05, 05]
+AABC AA8E; [73 66 6B, 05, 05][73 67 AF, 05, 05]
+
+AA8F; [73 66 72, 05, 05]
+AAB5 AA8F; [73 66 72, 05, 05][73 67 7E, 05, 05]
+AAB6 AA8F; [73 66 72, 05, 05][73 67 85, 05, 05]
+AAB9 AA8F; [73 66 72, 05, 05][73 67 9A, 05, 05]
+AABB AA8F; [73 66 72, 05, 05][73 67 A8, 05, 05]
+AABC AA8F; [73 66 72, 05, 05][73 67 AF, 05, 05]
+
+AA90; [73 66 79, 05, 05]
+AAB5 AA90; [73 66 79, 05, 05][73 67 7E, 05, 05]
+AAB6 AA90; [73 66 79, 05, 05][73 67 85, 05, 05]
+AAB9 AA90; [73 66 79, 05, 05][73 67 9A, 05, 05]
+AABB AA90; [73 66 79, 05, 05][73 67 A8, 05, 05]
+AABC AA90; [73 66 79, 05, 05][73 67 AF, 05, 05]
+
+AA91; [73 66 80, 05, 05]
+AAB5 AA91; [73 66 80, 05, 05][73 67 7E, 05, 05]
+AAB6 AA91; [73 66 80, 05, 05][73 67 85, 05, 05]
+AAB9 AA91; [73 66 80, 05, 05][73 67 9A, 05, 05]
+AABB AA91; [73 66 80, 05, 05][73 67 A8, 05, 05]
+AABC AA91; [73 66 80, 05, 05][73 67 AF, 05, 05]
+
+AA92; [73 66 87, 05, 05]
+AAB5 AA92; [73 66 87, 05, 05][73 67 7E, 05, 05]
+AAB6 AA92; [73 66 87, 05, 05][73 67 85, 05, 05]
+AAB9 AA92; [73 66 87, 05, 05][73 67 9A, 05, 05]
+AABB AA92; [73 66 87, 05, 05][73 67 A8, 05, 05]
+AABC AA92; [73 66 87, 05, 05][73 67 AF, 05, 05]
+
+AA93; [73 66 8E, 05, 05]
+AAB5 AA93; [73 66 8E, 05, 05][73 67 7E, 05, 05]
+AAB6 AA93; [73 66 8E, 05, 05][73 67 85, 05, 05]
+AAB9 AA93; [73 66 8E, 05, 05][73 67 9A, 05, 05]
+AABB AA93; [73 66 8E, 05, 05][73 67 A8, 05, 05]
+AABC AA93; [73 66 8E, 05, 05][73 67 AF, 05, 05]
+
+AA94; [73 66 95, 05, 05]
+AAB5 AA94; [73 66 95, 05, 05][73 67 7E, 05, 05]
+AAB6 AA94; [73 66 95, 05, 05][73 67 85, 05, 05]
+AAB9 AA94; [73 66 95, 05, 05][73 67 9A, 05, 05]
+AABB AA94; [73 66 95, 05, 05][73 67 A8, 05, 05]
+AABC AA94; [73 66 95, 05, 05][73 67 AF, 05, 05]
+
+AA95; [73 66 9C, 05, 05]
+AAB5 AA95; [73 66 9C, 05, 05][73 67 7E, 05, 05]
+AAB6 AA95; [73 66 9C, 05, 05][73 67 85, 05, 05]
+AAB9 AA95; [73 66 9C, 05, 05][73 67 9A, 05, 05]
+AABB AA95; [73 66 9C, 05, 05][73 67 A8, 05, 05]
+AABC AA95; [73 66 9C, 05, 05][73 67 AF, 05, 05]
+
+AA96; [73 66 A3, 05, 05]
+AAB5 AA96; [73 66 A3, 05, 05][73 67 7E, 05, 05]
+AAB6 AA96; [73 66 A3, 05, 05][73 67 85, 05, 05]
+AAB9 AA96; [73 66 A3, 05, 05][73 67 9A, 05, 05]
+AABB AA96; [73 66 A3, 05, 05][73 67 A8, 05, 05]
+AABC AA96; [73 66 A3, 05, 05][73 67 AF, 05, 05]
+
+AA97; [73 66 AA, 05, 05]
+AAB5 AA97; [73 66 AA, 05, 05][73 67 7E, 05, 05]
+AAB6 AA97; [73 66 AA, 05, 05][73 67 85, 05, 05]
+AAB9 AA97; [73 66 AA, 05, 05][73 67 9A, 05, 05]
+AABB AA97; [73 66 AA, 05, 05][73 67 A8, 05, 05]
+AABC AA97; [73 66 AA, 05, 05][73 67 AF, 05, 05]
+
+AA98; [73 66 B1, 05, 05]
+AAB5 AA98; [73 66 B1, 05, 05][73 67 7E, 05, 05]
+AAB6 AA98; [73 66 B1, 05, 05][73 67 85, 05, 05]
+AAB9 AA98; [73 66 B1, 05, 05][73 67 9A, 05, 05]
+AABB AA98; [73 66 B1, 05, 05][73 67 A8, 05, 05]
+AABC AA98; [73 66 B1, 05, 05][73 67 AF, 05, 05]
+
+AA99; [73 66 B8, 05, 05]
+AAB5 AA99; [73 66 B8, 05, 05][73 67 7E, 05, 05]
+AAB6 AA99; [73 66 B8, 05, 05][73 67 85, 05, 05]
+AAB9 AA99; [73 66 B8, 05, 05][73 67 9A, 05, 05]
+AABB AA99; [73 66 B8, 05, 05][73 67 A8, 05, 05]
+AABC AA99; [73 66 B8, 05, 05][73 67 AF, 05, 05]
+
+AA9A; [73 66 BF, 05, 05]
+AAB5 AA9A; [73 66 BF, 05, 05][73 67 7E, 05, 05]
+AAB6 AA9A; [73 66 BF, 05, 05][73 67 85, 05, 05]
+AAB9 AA9A; [73 66 BF, 05, 05][73 67 9A, 05, 05]
+AABB AA9A; [73 66 BF, 05, 05][73 67 A8, 05, 05]
+AABC AA9A; [73 66 BF, 05, 05][73 67 AF, 05, 05]
+
+AA9B; [73 66 C6, 05, 05]
+AAB5 AA9B; [73 66 C6, 05, 05][73 67 7E, 05, 05]
+AAB6 AA9B; [73 66 C6, 05, 05][73 67 85, 05, 05]
+AAB9 AA9B; [73 66 C6, 05, 05][73 67 9A, 05, 05]
+AABB AA9B; [73 66 C6, 05, 05][73 67 A8, 05, 05]
+AABC AA9B; [73 66 C6, 05, 05][73 67 AF, 05, 05]
+
+AA9C; [73 66 CD, 05, 05]
+AAB5 AA9C; [73 66 CD, 05, 05][73 67 7E, 05, 05]
+AAB6 AA9C; [73 66 CD, 05, 05][73 67 85, 05, 05]
+AAB9 AA9C; [73 66 CD, 05, 05][73 67 9A, 05, 05]
+AABB AA9C; [73 66 CD, 05, 05][73 67 A8, 05, 05]
+AABC AA9C; [73 66 CD, 05, 05][73 67 AF, 05, 05]
+
+AA9D; [73 66 D4, 05, 05]
+AAB5 AA9D; [73 66 D4, 05, 05][73 67 7E, 05, 05]
+AAB6 AA9D; [73 66 D4, 05, 05][73 67 85, 05, 05]
+AAB9 AA9D; [73 66 D4, 05, 05][73 67 9A, 05, 05]
+AABB AA9D; [73 66 D4, 05, 05][73 67 A8, 05, 05]
+AABC AA9D; [73 66 D4, 05, 05][73 67 AF, 05, 05]
+
+AA9E; [73 66 DB, 05, 05]
+AAB5 AA9E; [73 66 DB, 05, 05][73 67 7E, 05, 05]
+AAB6 AA9E; [73 66 DB, 05, 05][73 67 85, 05, 05]
+AAB9 AA9E; [73 66 DB, 05, 05][73 67 9A, 05, 05]
+AABB AA9E; [73 66 DB, 05, 05][73 67 A8, 05, 05]
+AABC AA9E; [73 66 DB, 05, 05][73 67 AF, 05, 05]
+
+AA9F; [73 66 E2, 05, 05]
+AAB5 AA9F; [73 66 E2, 05, 05][73 67 7E, 05, 05]
+AAB6 AA9F; [73 66 E2, 05, 05][73 67 85, 05, 05]
+AAB9 AA9F; [73 66 E2, 05, 05][73 67 9A, 05, 05]
+AABB AA9F; [73 66 E2, 05, 05][73 67 A8, 05, 05]
+AABC AA9F; [73 66 E2, 05, 05][73 67 AF, 05, 05]
+
+AAA0; [73 66 E9, 05, 05]
+AAB5 AAA0; [73 66 E9, 05, 05][73 67 7E, 05, 05]
+AAB6 AAA0; [73 66 E9, 05, 05][73 67 85, 05, 05]
+AAB9 AAA0; [73 66 E9, 05, 05][73 67 9A, 05, 05]
+AABB AAA0; [73 66 E9, 05, 05][73 67 A8, 05, 05]
+AABC AAA0; [73 66 E9, 05, 05][73 67 AF, 05, 05]
+
+AAA1; [73 66 F0, 05, 05]
+AAB5 AAA1; [73 66 F0, 05, 05][73 67 7E, 05, 05]
+AAB6 AAA1; [73 66 F0, 05, 05][73 67 85, 05, 05]
+AAB9 AAA1; [73 66 F0, 05, 05][73 67 9A, 05, 05]
+AABB AAA1; [73 66 F0, 05, 05][73 67 A8, 05, 05]
+AABC AAA1; [73 66 F0, 05, 05][73 67 AF, 05, 05]
+
+AAA2; [73 66 F7, 05, 05]
+AAB5 AAA2; [73 66 F7, 05, 05][73 67 7E, 05, 05]
+AAB6 AAA2; [73 66 F7, 05, 05][73 67 85, 05, 05]
+AAB9 AAA2; [73 66 F7, 05, 05][73 67 9A, 05, 05]
+AABB AAA2; [73 66 F7, 05, 05][73 67 A8, 05, 05]
+AABC AAA2; [73 66 F7, 05, 05][73 67 AF, 05, 05]
+
+AAA3; [73 66 FE, 05, 05]
+AAB5 AAA3; [73 66 FE, 05, 05][73 67 7E, 05, 05]
+AAB6 AAA3; [73 66 FE, 05, 05][73 67 85, 05, 05]
+AAB9 AAA3; [73 66 FE, 05, 05][73 67 9A, 05, 05]
+AABB AAA3; [73 66 FE, 05, 05][73 67 A8, 05, 05]
+AABC AAA3; [73 66 FE, 05, 05][73 67 AF, 05, 05]
+
+AAA4; [73 67 07, 05, 05]
+AAB5 AAA4; [73 67 07, 05, 05][73 67 7E, 05, 05]
+AAB6 AAA4; [73 67 07, 05, 05][73 67 85, 05, 05]
+AAB9 AAA4; [73 67 07, 05, 05][73 67 9A, 05, 05]
+AABB AAA4; [73 67 07, 05, 05][73 67 A8, 05, 05]
+AABC AAA4; [73 67 07, 05, 05][73 67 AF, 05, 05]
+
+AAA5; [73 67 0E, 05, 05]
+AAB5 AAA5; [73 67 0E, 05, 05][73 67 7E, 05, 05]
+AAB6 AAA5; [73 67 0E, 05, 05][73 67 85, 05, 05]
+AAB9 AAA5; [73 67 0E, 05, 05][73 67 9A, 05, 05]
+AABB AAA5; [73 67 0E, 05, 05][73 67 A8, 05, 05]
+AABC AAA5; [73 67 0E, 05, 05][73 67 AF, 05, 05]
+
+AAA6; [73 67 15, 05, 05]
+AAB5 AAA6; [73 67 15, 05, 05][73 67 7E, 05, 05]
+AAB6 AAA6; [73 67 15, 05, 05][73 67 85, 05, 05]
+AAB9 AAA6; [73 67 15, 05, 05][73 67 9A, 05, 05]
+AABB AAA6; [73 67 15, 05, 05][73 67 A8, 05, 05]
+AABC AAA6; [73 67 15, 05, 05][73 67 AF, 05, 05]
+
+AAA7; [73 67 1C, 05, 05]
+AAB5 AAA7; [73 67 1C, 05, 05][73 67 7E, 05, 05]
+AAB6 AAA7; [73 67 1C, 05, 05][73 67 85, 05, 05]
+AAB9 AAA7; [73 67 1C, 05, 05][73 67 9A, 05, 05]
+AABB AAA7; [73 67 1C, 05, 05][73 67 A8, 05, 05]
+AABC AAA7; [73 67 1C, 05, 05][73 67 AF, 05, 05]
+
+AAA8; [73 67 23, 05, 05]
+AAB5 AAA8; [73 67 23, 05, 05][73 67 7E, 05, 05]
+AAB6 AAA8; [73 67 23, 05, 05][73 67 85, 05, 05]
+AAB9 AAA8; [73 67 23, 05, 05][73 67 9A, 05, 05]
+AABB AAA8; [73 67 23, 05, 05][73 67 A8, 05, 05]
+AABC AAA8; [73 67 23, 05, 05][73 67 AF, 05, 05]
+
+AAA9; [73 67 2A, 05, 05]
+AAB5 AAA9; [73 67 2A, 05, 05][73 67 7E, 05, 05]
+AAB6 AAA9; [73 67 2A, 05, 05][73 67 85, 05, 05]
+AAB9 AAA9; [73 67 2A, 05, 05][73 67 9A, 05, 05]
+AABB AAA9; [73 67 2A, 05, 05][73 67 A8, 05, 05]
+AABC AAA9; [73 67 2A, 05, 05][73 67 AF, 05, 05]
+
+AAAA; [73 67 31, 05, 05]
+AAB5 AAAA; [73 67 31, 05, 05][73 67 7E, 05, 05]
+AAB6 AAAA; [73 67 31, 05, 05][73 67 85, 05, 05]
+AAB9 AAAA; [73 67 31, 05, 05][73 67 9A, 05, 05]
+AABB AAAA; [73 67 31, 05, 05][73 67 A8, 05, 05]
+AABC AAAA; [73 67 31, 05, 05][73 67 AF, 05, 05]
-1102C; [70 E8 1C, 05, 05]
+AAAB; [73 67 38, 05, 05]
+AAB5 AAAB; [73 67 38, 05, 05][73 67 7E, 05, 05]
+AAB6 AAAB; [73 67 38, 05, 05][73 67 85, 05, 05]
+AAB9 AAAB; [73 67 38, 05, 05][73 67 9A, 05, 05]
+AABB AAAB; [73 67 38, 05, 05][73 67 A8, 05, 05]
+AABC AAAB; [73 67 38, 05, 05][73 67 AF, 05, 05]
-1102D; [70 E8 23, 05, 05]
+AAAC; [73 67 3F, 05, 05]
+AAB5 AAAC; [73 67 3F, 05, 05][73 67 7E, 05, 05]
+AAB6 AAAC; [73 67 3F, 05, 05][73 67 85, 05, 05]
+AAB9 AAAC; [73 67 3F, 05, 05][73 67 9A, 05, 05]
+AABB AAAC; [73 67 3F, 05, 05][73 67 A8, 05, 05]
+AABC AAAC; [73 67 3F, 05, 05][73 67 AF, 05, 05]
-1102E; [70 E8 2A, 05, 05]
+AAAD; [73 67 46, 05, 05]
+AAB5 AAAD; [73 67 46, 05, 05][73 67 7E, 05, 05]
+AAB6 AAAD; [73 67 46, 05, 05][73 67 85, 05, 05]
+AAB9 AAAD; [73 67 46, 05, 05][73 67 9A, 05, 05]
+AABB AAAD; [73 67 46, 05, 05][73 67 A8, 05, 05]
+AABC AAAD; [73 67 46, 05, 05][73 67 AF, 05, 05]
-1102F; [70 E8 31, 05, 05]
+AAAE; [73 67 4D, 05, 05]
+AAB5 AAAE; [73 67 4D, 05, 05][73 67 7E, 05, 05]
+AAB6 AAAE; [73 67 4D, 05, 05][73 67 85, 05, 05]
+AAB9 AAAE; [73 67 4D, 05, 05][73 67 9A, 05, 05]
+AABB AAAE; [73 67 4D, 05, 05][73 67 A8, 05, 05]
+AABC AAAE; [73 67 4D, 05, 05][73 67 AF, 05, 05]
-11030; [70 E8 38, 05, 05]
+AAAF; [73 67 54, 05, 05]
+AAB5 AAAF; [73 67 54, 05, 05][73 67 7E, 05, 05]
+AAB6 AAAF; [73 67 54, 05, 05][73 67 85, 05, 05]
+AAB9 AAAF; [73 67 54, 05, 05][73 67 9A, 05, 05]
+AABB AAAF; [73 67 54, 05, 05][73 67 A8, 05, 05]
+AABC AAAF; [73 67 54, 05, 05][73 67 AF, 05, 05]
-11031; [70 E8 3F, 05, 05]
+AAB0; [73 67 5B, 05, 05]
-11032; [70 E8 46, 05, 05]
+AAB1; [73 67 62, 05, 05]
-11033; [70 E8 4D, 05, 05]
+AAB2; [73 67 69, 05, 05]
-11003; [70 E8 54, 05, 05]
+AAB3; [73 67 70, 05, 05]
-11004; [70 E8 5B, 05, 05]
+AAB4; [73 67 77, 05, 05]
-11034; [70 E8 62, 05, 05]
+AAB5; [73 67 7E, 05, 05]
-11035; [70 E8 69, 05, 05]
+AAB6; [73 67 85, 05, 05]
-11036; [70 E8 70, 05, 05]
+AAB7; [73 67 8C, 05, 05]
-11037; [70 E8 77, 05, 05]
+AAB8; [73 67 93, 05, 05]
-11038; [70 E8 7E, 05, 05]
+AAB9; [73 67 9A, 05, 05]
-11039; [70 E8 85, 05, 05]
+AABA; [73 67 A1, 05, 05]
-1103A; [70 E8 8C, 05, 05]
+AABB; [73 67 A8, 05, 05]
-1103B; [70 E8 93, 05, 05]
+AABC; [73 67 AF, 05, 05]
-1103C; [70 E8 9A, 05, 05]
+AABD; [73 67 B6, 05, 05]
-1103D; [70 E8 A1, 05, 05]
+AABE; [73 67 BD, 05, 05]
-1103E; [70 E8 A8, 05, 05]
+AAC0; [73 67 C4, 05, 05]
-1103F; [70 E8 AF, 05, 05]
+AAC2; [73 67 CB, 05, 05]
-11040; [70 E8 B6, 05, 05]
+AADB; [73 67 D2, 05, 05]
-11041; [70 E8 BD, 05, 05]
+AADC; [73 67 D9, 05, 05]
-11042; [70 E8 C4, 05, 05]
+FDD1 0F40; [74 04 02, 05, 05] # TIBETAN first primary starts new lead byte (compressible)
-11043; [70 E8 CB, 05, 05]
+0F40; [74 06, 05, 05]
+0F69; [74 06, 05, 05][74 88, 05, 05]
-11044; [70 E8 D2, 05, 05]
+0F90; [74 08, 05, 05]
+0FB9; [74 08, 05, 05][74 88, 05, 05]
-11045; [70 E8 D9, 05, 05]
+0F6B; [74 0A, 05, 05]
-11046; [70 E8 E0, 05, 05]
+0F41; [74 0C, 05, 05]
-1107F; [70 E8 E7, 05, 05]
+0F91; [74 0E, 05, 05]
-FDD1 10A00; [70 E9 02, 05, 05] # KHAROSHTHI first primary (compressible)
+0F42; [74 10, 05, 05]
+0F43; [74 10, 05, 05][74 90, 05, 05]
-10A00; [70 E9 09, 05, 05]
+0F92; [74 12, 05, 05]
+0F93; [74 12, 05, 05][74 90, 05, 05]
-10A01; [70 E9 10, 05, 05]
+0F44; [74 14, 05, 05]
-10A02; [70 E9 17, 05, 05]
+0F94; [74 16, 05, 05]
-10A03; [70 E9 1E, 05, 05]
+0F45; [74 18, 05, 05]
-10A05; [70 E9 25, 05, 05]
+0F95; [74 1A, 05, 05]
-10A06; [70 E9 2C, 05, 05]
+0F46; [74 1C, 05, 05]
-10A0C; [70 E9 33, 05, 05]
+0F96; [74 1E, 05, 05]
-10A10; [70 E9 3A, 05, 05]
+0F47; [74 20, 05, 05]
-10A11; [70 E9 41, 05, 05]
+0F97; [74 22, 05, 05]
-10A12; [70 E9 48, 05, 05]
+0F49; [74 24, 05, 05]
-10A13; [70 E9 4F, 05, 05]
+0F99; [74 26, 05, 05]
-10A15; [70 E9 56, 05, 05]
+0F4A; [74 28, 05, 05]
-10A16; [70 E9 5D, 05, 05]
+0F9A; [74 2A, 05, 05]
-10A17; [70 E9 64, 05, 05]
+0F4B; [74 2C, 05, 05]
-10A19; [70 E9 6B, 05, 05]
+0F9B; [74 2E, 05, 05]
-10A1A; [70 E9 72, 05, 05]
+0F4C; [74 30, 05, 05]
+0F4D; [74 30, 05, 05][74 90, 05, 05]
-10A1B; [70 E9 79, 05, 05]
+0F9C; [74 32, 05, 05]
+0F9D; [74 32, 05, 05][74 90, 05, 05]
-10A1C; [70 E9 80, 05, 05]
+0F4E; [74 34, 05, 05]
-10A1D; [70 E9 87, 05, 05]
+0F9E; [74 36, 05, 05]
-10A1E; [70 E9 8E, 05, 05]
+0F4F; [74 38, 05, 05]
-10A1F; [70 E9 95, 05, 05]
+0F9F; [74 3A, 05, 05]
-10A20; [70 E9 9C, 05, 05]
+0F50; [74 3C, 05, 05]
-10A21; [70 E9 A3, 05, 05]
+0FA0; [74 3E, 05, 05]
-10A22; [70 E9 AA, 05, 05]
+0F51; [74 40, 05, 05]
+0F52; [74 40, 05, 05][74 90, 05, 05]
-10A23; [70 E9 B1, 05, 05]
+0FA1; [74 42, 05, 05]
+0FA2; [74 42, 05, 05][74 90, 05, 05]
-10A24; [70 E9 B8, 05, 05]
+0F53; [74 44, 05, 05]
-10A25; [70 E9 BF, 05, 05]
+0FA3; [74 46, 05, 05]
-10A26; [70 E9 C6, 05, 05]
+0F54; [74 48, 05, 05]
-10A27; [70 E9 CD, 05, 05]
+0FA4; [74 4A, 05, 05]
-10A28; [70 E9 D4, 05, 05]
+0F55; [74 4C, 05, 05]
-10A29; [70 E9 DB, 05, 05]
+0FA5; [74 4E, 05, 05]
-10A2A; [70 E9 E2, 05, 05]
+0F56; [74 50, 05, 05]
+0F57; [74 50, 05, 05][74 90, 05, 05]
-10A2B; [70 E9 E9, 05, 05]
+0FA6; [74 52, 05, 05]
+0FA7; [74 52, 05, 05][74 90, 05, 05]
-10A2C; [70 E9 F0, 05, 05]
+0F58; [74 54, 05, 05]
-10A2D; [70 E9 F7, 05, 05]
+0FA8; [74 56, 05, 05]
-10A2E; [70 E9 FE, 05, 05]
+0F59; [74 58, 05, 05]
-10A2F; [70 EA 07, 05, 05]
+0FA9; [74 5A, 05, 05]
-10A30; [70 EA 0E, 05, 05]
+0F5A; [74 5C, 05, 05]
-10A31; [70 EA 15, 05, 05]
+0FAA; [74 5E, 05, 05]
-10A32; [70 EA 1C, 05, 05]
+0F5B; [74 60, 05, 05]
+0F5C; [74 60, 05, 05][74 90, 05, 05]
-10A33; [70 EA 23, 05, 05]
+0FAB; [74 62, 05, 05]
+0FAC; [74 62, 05, 05][74 90, 05, 05]
-10A3F; [70 EA 2A, 05, 05]
+0F5D; [74 64, 05, 05]
-FDD1 11C0E; [70 EB 02, 05, 05] # Bhaiksuki first primary (compressible)
+0FAD; [74 66, 05, 05]
+0FBA; [74 66, 70, 05]
-11C00; [70 EB 09, 05, 05]
+0F5E; [74 68, 05, 05]
-11C01; [70 EB 10, 05, 05]
+0FAE; [74 6A, 05, 05]
-11C02; [70 EB 17, 05, 05]
+0F5F; [74 6C, 05, 05]
-11C03; [70 EB 1E, 05, 05]
+0FAF; [74 6E, 05, 05]
-11C04; [70 EB 25, 05, 05]
+0F60; [74 70, 05, 05]
-11C05; [70 EB 2C, 05, 05]
+0FB0; [74 72, 05, 05]
-11C06; [70 EB 33, 05, 05]
+0F61; [74 74, 05, 05]
-11C07; [70 EB 3A, 05, 05]
+0FB1; [74 76, 05, 05]
+0FBB; [74 76, 70, 05]
-11C08; [70 EB 41, 05, 05]
+0F62; [74 78, 05, 05]
+0F6A; [74 78, 70, 05]
-11C0A; [70 EB 48, 05, 05]
+0FB2; [74 7A, 05, 05]
+0FBC; [74 7A, 70, 05]
+0FB2 0F71; [74 7A, 05, 05][74 A6, 05, 05]
+0FB2 0F71 0F72; [74 7A, 05, 05][74 AA, 05, 05]
+0FB2 0F73; [74 7A, 05, 05][74 AA, 05, 05]
+0FB2 0F71 0F74; [74 7A, 05, 05][74 B2, 05, 05]
+0FB2 0F75; [74 7A, 05, 05][74 B2, 05, 05]
-11C0B; [70 EB 4F, 05, 05]
+0F6C; [74 7C, 05, 05]
-11C0C; [70 EB 56, 05, 05]
+0F63; [74 7E, 05, 05]
-11C0D; [70 EB 5D, 05, 05]
+0FB3; [74 80, 05, 05]
+0FB3 0F71; [74 80, 05, 05][74 A6, 05, 05]
+0FB3 0F71 0F72; [74 80, 05, 05][74 AA, 05, 05]
+0FB3 0F73; [74 80, 05, 05][74 AA, 05, 05]
+0FB3 0F71 0F74; [74 80, 05, 05][74 B2, 05, 05]
+0FB3 0F75; [74 80, 05, 05][74 B2, 05, 05]
-11C0E; [70 EB 64, 05, 05]
+0F64; [74 82, 05, 05]
-11C0F; [70 EB 6B, 05, 05]
+0FB4; [74 84, 05, 05]
-11C10; [70 EB 72, 05, 05]
+0F65; [74 86, 05, 05]
-11C11; [70 EB 79, 05, 05]
+0FB5; [74 88, 05, 05]
-11C12; [70 EB 80, 05, 05]
+0F66; [74 8A, 05, 05]
-11C13; [70 EB 87, 05, 05]
+0FB6; [74 8C, 05, 05]
-11C14; [70 EB 8E, 05, 05]
+0F67; [74 8E, 05, 05]
-11C15; [70 EB 95, 05, 05]
+0FB7; [74 90, 05, 05]
-11C16; [70 EB 9C, 05, 05]
+0F68; [74 92, 05, 05]
+0F00; [74 92, 05, 20][74 C0, 05, 20][, F1 66, 20]
-11C17; [70 EB A3, 05, 05]
+0FB8; [74 94, 05, 05]
-11C18; [70 EB AA, 05, 05]
+0F88; [74 96, 05, 05]
-11C19; [70 EB B1, 05, 05]
+0F8D; [74 98, 05, 05]
-11C1A; [70 EB B8, 05, 05]
+0F89; [74 9A, 05, 05]
-11C1B; [70 EB BF, 05, 05]
+0F8E; [74 9C, 05, 05]
-11C1C; [70 EB C6, 05, 05]
+0F8C; [74 9E, 05, 05]
-11C1D; [70 EB CD, 05, 05]
+0F8F; [74 A0, 05, 05]
-11C1E; [70 EB D4, 05, 05]
+0F8A; [74 A2, 05, 05]
-11C1F; [70 EB DB, 05, 05]
+0F8B; [74 A4, 05, 05]
-11C20; [70 EB E2, 05, 05]
+0F71; [74 A6, 05, 05]
-11C21; [70 EB E9, 05, 05]
+0F72; [74 A8, 05, 05]
-11C22; [70 EB F0, 05, 05]
+0F71 0F72; [74 AA, 05, 05]
+0F73; [74 AA, 05, 05]
-11C23; [70 EB F7, 05, 05]
+0F80; [74 AC, 05, 05]
-11C24; [70 EB FE, 05, 05]
+0F71 0F80; [74 AE, 05, 05]
+0F81; [74 AE, 05, 05]
-11C25; [70 EC 07, 05, 05]
+0F74; [74 B0, 05, 05]
-11C26; [70 EC 0E, 05, 05]
+0F71 0F74; [74 B2, 05, 05]
+0F75; [74 B2, 05, 05]
-11C27; [70 EC 15, 05, 05]
+0F76; [74 B4, 05, 05]
+0FB2 0F80; [74 B4, 05, 05]
-11C28; [70 EC 1C, 05, 05]
+0F77; [74 B6, 05, 05]
+0FB2 0F71 0F80; [74 B6, 05, 05]
+0FB2 0F81; [74 B6, 05, 05]
-11C29; [70 EC 23, 05, 05]
+0F78; [74 B8, 05, 05]
+0FB3 0F80; [74 B8, 05, 05]
-11C2A; [70 EC 2A, 05, 05]
+0F79; [74 BA, 05, 05]
+0FB3 0F71 0F80; [74 BA, 05, 05]
+0FB3 0F81; [74 BA, 05, 05]
-11C2B; [70 EC 31, 05, 05]
+0F7A; [74 BC, 05, 05]
-11C2C; [70 EC 38, 05, 05]
+0F7B; [74 BE, 05, 05]
-11C2D; [70 EC 3F, 05, 05]
+0F7C; [74 C0, 05, 05]
-11C2E; [70 EC 46, 05, 05]
+0F7D; [74 C2, 05, 05]
-11C40; [70 EC 4D, 05, 05]
+0F84; [74 C4, 05, 05]
-11C2F; [70 EC 54, 05, 05]
+FDD1 11A0B; [74 C6 02, 05, 05] # Zanabazar_Square first primary (compressible)
-11C30; [70 EC 5B, 05, 05]
+11A0B; [74 C6 09, 05, 05]
-11C31; [70 EC 62, 05, 05]
+11A32; [74 C6 10, 05, 05]
-11C32; [70 EC 69, 05, 05]
+11A0C; [74 C6 17, 05, 05]
-11C33; [70 EC 70, 05, 05]
+11A0D; [74 C6 1E, 05, 05]
-11C34; [70 EC 77, 05, 05]
+11A0E; [74 C6 25, 05, 05]
-11C35; [70 EC 7E, 05, 05]
+11A0F; [74 C6 2C, 05, 05]
-11C36; [70 EC 85, 05, 05]
+11A10; [74 C6 33, 05, 05]
-11C38; [70 EC 8C, 05, 05]
+11A11; [74 C6 3A, 05, 05]
-11C39; [70 EC 93, 05, 05]
+11A12; [74 C6 41, 05, 05]
-11C3A; [70 EC 9A, 05, 05]
+11A13; [74 C6 48, 05, 05]
-11C3B; [70 EC A1, 05, 05]
+11A14; [74 C6 4F, 05, 05]
-11C3F; [70 EC A8, 05, 05]
+11A15; [74 C6 56, 05, 05]
-FDD1 0E17; [71 04 02, 05, 05] # THAI first primary starts new lead byte (compressible)
+11A16; [74 C6 5D, 05, 05]
-0E01; [71 06, 05, 05]
-0E40 0E01; [71 06, 05, 05][71 7A, 05, 05]
-0E41 0E01; [71 06, 05, 05][71 7C, 05, 05]
-0E42 0E01; [71 06, 05, 05][71 7E, 05, 05]
-0E43 0E01; [71 06, 05, 05][71 80, 05, 05]
-0E44 0E01; [71 06, 05, 05][71 82, 05, 05]
+11A17; [74 C6 64, 05, 05]
-0E02; [71 08, 05, 05]
-0E40 0E02; [71 08, 05, 05][71 7A, 05, 05]
-0E41 0E02; [71 08, 05, 05][71 7C, 05, 05]
-0E42 0E02; [71 08, 05, 05][71 7E, 05, 05]
-0E43 0E02; [71 08, 05, 05][71 80, 05, 05]
-0E44 0E02; [71 08, 05, 05][71 82, 05, 05]
+11A18; [74 C6 6B, 05, 05]
-0E03; [71 0A, 05, 05]
-0E40 0E03; [71 0A, 05, 05][71 7A, 05, 05]
-0E41 0E03; [71 0A, 05, 05][71 7C, 05, 05]
-0E42 0E03; [71 0A, 05, 05][71 7E, 05, 05]
-0E43 0E03; [71 0A, 05, 05][71 80, 05, 05]
-0E44 0E03; [71 0A, 05, 05][71 82, 05, 05]
+11A19; [74 C6 72, 05, 05]
-0E04; [71 0C, 05, 05]
-0E40 0E04; [71 0C, 05, 05][71 7A, 05, 05]
-0E41 0E04; [71 0C, 05, 05][71 7C, 05, 05]
-0E42 0E04; [71 0C, 05, 05][71 7E, 05, 05]
-0E43 0E04; [71 0C, 05, 05][71 80, 05, 05]
-0E44 0E04; [71 0C, 05, 05][71 82, 05, 05]
+11A1A; [74 C6 79, 05, 05]
-0E05; [71 0E, 05, 05]
-0E40 0E05; [71 0E, 05, 05][71 7A, 05, 05]
-0E41 0E05; [71 0E, 05, 05][71 7C, 05, 05]
-0E42 0E05; [71 0E, 05, 05][71 7E, 05, 05]
-0E43 0E05; [71 0E, 05, 05][71 80, 05, 05]
-0E44 0E05; [71 0E, 05, 05][71 82, 05, 05]
+11A1B; [74 C6 80, 05, 05]
-0E06; [71 10, 05, 05]
-0E40 0E06; [71 10, 05, 05][71 7A, 05, 05]
-0E41 0E06; [71 10, 05, 05][71 7C, 05, 05]
-0E42 0E06; [71 10, 05, 05][71 7E, 05, 05]
-0E43 0E06; [71 10, 05, 05][71 80, 05, 05]
-0E44 0E06; [71 10, 05, 05][71 82, 05, 05]
+11A1C; [74 C6 87, 05, 05]
-0E07; [71 12, 05, 05]
-0E40 0E07; [71 12, 05, 05][71 7A, 05, 05]
-0E41 0E07; [71 12, 05, 05][71 7C, 05, 05]
-0E42 0E07; [71 12, 05, 05][71 7E, 05, 05]
-0E43 0E07; [71 12, 05, 05][71 80, 05, 05]
-0E44 0E07; [71 12, 05, 05][71 82, 05, 05]
-
-0E08; [71 14, 05, 05]
-0E40 0E08; [71 14, 05, 05][71 7A, 05, 05]
-0E41 0E08; [71 14, 05, 05][71 7C, 05, 05]
-0E42 0E08; [71 14, 05, 05][71 7E, 05, 05]
-0E43 0E08; [71 14, 05, 05][71 80, 05, 05]
-0E44 0E08; [71 14, 05, 05][71 82, 05, 05]
-
-0E09; [71 16, 05, 05]
-0E40 0E09; [71 16, 05, 05][71 7A, 05, 05]
-0E41 0E09; [71 16, 05, 05][71 7C, 05, 05]
-0E42 0E09; [71 16, 05, 05][71 7E, 05, 05]
-0E43 0E09; [71 16, 05, 05][71 80, 05, 05]
-0E44 0E09; [71 16, 05, 05][71 82, 05, 05]
-
-0E0A; [71 18, 05, 05]
-0E40 0E0A; [71 18, 05, 05][71 7A, 05, 05]
-0E41 0E0A; [71 18, 05, 05][71 7C, 05, 05]
-0E42 0E0A; [71 18, 05, 05][71 7E, 05, 05]
-0E43 0E0A; [71 18, 05, 05][71 80, 05, 05]
-0E44 0E0A; [71 18, 05, 05][71 82, 05, 05]
-
-0E0B; [71 1A, 05, 05]
-0E40 0E0B; [71 1A, 05, 05][71 7A, 05, 05]
-0E41 0E0B; [71 1A, 05, 05][71 7C, 05, 05]
-0E42 0E0B; [71 1A, 05, 05][71 7E, 05, 05]
-0E43 0E0B; [71 1A, 05, 05][71 80, 05, 05]
-0E44 0E0B; [71 1A, 05, 05][71 82, 05, 05]
-
-0E0C; [71 1C, 05, 05]
-0E40 0E0C; [71 1C, 05, 05][71 7A, 05, 05]
-0E41 0E0C; [71 1C, 05, 05][71 7C, 05, 05]
-0E42 0E0C; [71 1C, 05, 05][71 7E, 05, 05]
-0E43 0E0C; [71 1C, 05, 05][71 80, 05, 05]
-0E44 0E0C; [71 1C, 05, 05][71 82, 05, 05]
-
-0E0D; [71 1E, 05, 05]
-0E40 0E0D; [71 1E, 05, 05][71 7A, 05, 05]
-0E41 0E0D; [71 1E, 05, 05][71 7C, 05, 05]
-0E42 0E0D; [71 1E, 05, 05][71 7E, 05, 05]
-0E43 0E0D; [71 1E, 05, 05][71 80, 05, 05]
-0E44 0E0D; [71 1E, 05, 05][71 82, 05, 05]
-
-0E0E; [71 20, 05, 05]
-0E40 0E0E; [71 20, 05, 05][71 7A, 05, 05]
-0E41 0E0E; [71 20, 05, 05][71 7C, 05, 05]
-0E42 0E0E; [71 20, 05, 05][71 7E, 05, 05]
-0E43 0E0E; [71 20, 05, 05][71 80, 05, 05]
-0E44 0E0E; [71 20, 05, 05][71 82, 05, 05]
-
-0E0F; [71 22, 05, 05]
-0E40 0E0F; [71 22, 05, 05][71 7A, 05, 05]
-0E41 0E0F; [71 22, 05, 05][71 7C, 05, 05]
-0E42 0E0F; [71 22, 05, 05][71 7E, 05, 05]
-0E43 0E0F; [71 22, 05, 05][71 80, 05, 05]
-0E44 0E0F; [71 22, 05, 05][71 82, 05, 05]
-
-0E10; [71 24, 05, 05]
-0E40 0E10; [71 24, 05, 05][71 7A, 05, 05]
-0E41 0E10; [71 24, 05, 05][71 7C, 05, 05]
-0E42 0E10; [71 24, 05, 05][71 7E, 05, 05]
-0E43 0E10; [71 24, 05, 05][71 80, 05, 05]
-0E44 0E10; [71 24, 05, 05][71 82, 05, 05]
-
-0E11; [71 26, 05, 05]
-0E40 0E11; [71 26, 05, 05][71 7A, 05, 05]
-0E41 0E11; [71 26, 05, 05][71 7C, 05, 05]
-0E42 0E11; [71 26, 05, 05][71 7E, 05, 05]
-0E43 0E11; [71 26, 05, 05][71 80, 05, 05]
-0E44 0E11; [71 26, 05, 05][71 82, 05, 05]
-
-0E12; [71 28, 05, 05]
-0E40 0E12; [71 28, 05, 05][71 7A, 05, 05]
-0E41 0E12; [71 28, 05, 05][71 7C, 05, 05]
-0E42 0E12; [71 28, 05, 05][71 7E, 05, 05]
-0E43 0E12; [71 28, 05, 05][71 80, 05, 05]
-0E44 0E12; [71 28, 05, 05][71 82, 05, 05]
-
-0E13; [71 2A, 05, 05]
-0E40 0E13; [71 2A, 05, 05][71 7A, 05, 05]
-0E41 0E13; [71 2A, 05, 05][71 7C, 05, 05]
-0E42 0E13; [71 2A, 05, 05][71 7E, 05, 05]
-0E43 0E13; [71 2A, 05, 05][71 80, 05, 05]
-0E44 0E13; [71 2A, 05, 05][71 82, 05, 05]
-
-0E14; [71 2C, 05, 05]
-0E40 0E14; [71 2C, 05, 05][71 7A, 05, 05]
-0E41 0E14; [71 2C, 05, 05][71 7C, 05, 05]
-0E42 0E14; [71 2C, 05, 05][71 7E, 05, 05]
-0E43 0E14; [71 2C, 05, 05][71 80, 05, 05]
-0E44 0E14; [71 2C, 05, 05][71 82, 05, 05]
-
-0E15; [71 2E, 05, 05]
-0E40 0E15; [71 2E, 05, 05][71 7A, 05, 05]
-0E41 0E15; [71 2E, 05, 05][71 7C, 05, 05]
-0E42 0E15; [71 2E, 05, 05][71 7E, 05, 05]
-0E43 0E15; [71 2E, 05, 05][71 80, 05, 05]
-0E44 0E15; [71 2E, 05, 05][71 82, 05, 05]
-
-0E16; [71 30, 05, 05]
-0E40 0E16; [71 30, 05, 05][71 7A, 05, 05]
-0E41 0E16; [71 30, 05, 05][71 7C, 05, 05]
-0E42 0E16; [71 30, 05, 05][71 7E, 05, 05]
-0E43 0E16; [71 30, 05, 05][71 80, 05, 05]
-0E44 0E16; [71 30, 05, 05][71 82, 05, 05]
-
-0E17; [71 32, 05, 05]
-0E40 0E17; [71 32, 05, 05][71 7A, 05, 05]
-0E41 0E17; [71 32, 05, 05][71 7C, 05, 05]
-0E42 0E17; [71 32, 05, 05][71 7E, 05, 05]
-0E43 0E17; [71 32, 05, 05][71 80, 05, 05]
-0E44 0E17; [71 32, 05, 05][71 82, 05, 05]
-
-0E18; [71 34, 05, 05]
-0E40 0E18; [71 34, 05, 05][71 7A, 05, 05]
-0E41 0E18; [71 34, 05, 05][71 7C, 05, 05]
-0E42 0E18; [71 34, 05, 05][71 7E, 05, 05]
-0E43 0E18; [71 34, 05, 05][71 80, 05, 05]
-0E44 0E18; [71 34, 05, 05][71 82, 05, 05]
-
-0E19; [71 36, 05, 05]
-0E40 0E19; [71 36, 05, 05][71 7A, 05, 05]
-0E41 0E19; [71 36, 05, 05][71 7C, 05, 05]
-0E42 0E19; [71 36, 05, 05][71 7E, 05, 05]
-0E43 0E19; [71 36, 05, 05][71 80, 05, 05]
-0E44 0E19; [71 36, 05, 05][71 82, 05, 05]
-
-0E1A; [71 38, 05, 05]
-0E40 0E1A; [71 38, 05, 05][71 7A, 05, 05]
-0E41 0E1A; [71 38, 05, 05][71 7C, 05, 05]
-0E42 0E1A; [71 38, 05, 05][71 7E, 05, 05]
-0E43 0E1A; [71 38, 05, 05][71 80, 05, 05]
-0E44 0E1A; [71 38, 05, 05][71 82, 05, 05]
-
-0E1B; [71 3A, 05, 05]
-0E40 0E1B; [71 3A, 05, 05][71 7A, 05, 05]
-0E41 0E1B; [71 3A, 05, 05][71 7C, 05, 05]
-0E42 0E1B; [71 3A, 05, 05][71 7E, 05, 05]
-0E43 0E1B; [71 3A, 05, 05][71 80, 05, 05]
-0E44 0E1B; [71 3A, 05, 05][71 82, 05, 05]
-
-0E1C; [71 3C, 05, 05]
-0E40 0E1C; [71 3C, 05, 05][71 7A, 05, 05]
-0E41 0E1C; [71 3C, 05, 05][71 7C, 05, 05]
-0E42 0E1C; [71 3C, 05, 05][71 7E, 05, 05]
-0E43 0E1C; [71 3C, 05, 05][71 80, 05, 05]
-0E44 0E1C; [71 3C, 05, 05][71 82, 05, 05]
-
-0E1D; [71 3E, 05, 05]
-0E40 0E1D; [71 3E, 05, 05][71 7A, 05, 05]
-0E41 0E1D; [71 3E, 05, 05][71 7C, 05, 05]
-0E42 0E1D; [71 3E, 05, 05][71 7E, 05, 05]
-0E43 0E1D; [71 3E, 05, 05][71 80, 05, 05]
-0E44 0E1D; [71 3E, 05, 05][71 82, 05, 05]
-
-0E1E; [71 40, 05, 05]
-0E40 0E1E; [71 40, 05, 05][71 7A, 05, 05]
-0E41 0E1E; [71 40, 05, 05][71 7C, 05, 05]
-0E42 0E1E; [71 40, 05, 05][71 7E, 05, 05]
-0E43 0E1E; [71 40, 05, 05][71 80, 05, 05]
-0E44 0E1E; [71 40, 05, 05][71 82, 05, 05]
-
-0E1F; [71 42, 05, 05]
-0E40 0E1F; [71 42, 05, 05][71 7A, 05, 05]
-0E41 0E1F; [71 42, 05, 05][71 7C, 05, 05]
-0E42 0E1F; [71 42, 05, 05][71 7E, 05, 05]
-0E43 0E1F; [71 42, 05, 05][71 80, 05, 05]
-0E44 0E1F; [71 42, 05, 05][71 82, 05, 05]
-
-0E20; [71 44, 05, 05]
-0E40 0E20; [71 44, 05, 05][71 7A, 05, 05]
-0E41 0E20; [71 44, 05, 05][71 7C, 05, 05]
-0E42 0E20; [71 44, 05, 05][71 7E, 05, 05]
-0E43 0E20; [71 44, 05, 05][71 80, 05, 05]
-0E44 0E20; [71 44, 05, 05][71 82, 05, 05]
-
-0E21; [71 46, 05, 05]
-0E40 0E21; [71 46, 05, 05][71 7A, 05, 05]
-0E41 0E21; [71 46, 05, 05][71 7C, 05, 05]
-0E42 0E21; [71 46, 05, 05][71 7E, 05, 05]
-0E43 0E21; [71 46, 05, 05][71 80, 05, 05]
-0E44 0E21; [71 46, 05, 05][71 82, 05, 05]
-
-0E22; [71 48, 05, 05]
-0E40 0E22; [71 48, 05, 05][71 7A, 05, 05]
-0E41 0E22; [71 48, 05, 05][71 7C, 05, 05]
-0E42 0E22; [71 48, 05, 05][71 7E, 05, 05]
-0E43 0E22; [71 48, 05, 05][71 80, 05, 05]
-0E44 0E22; [71 48, 05, 05][71 82, 05, 05]
-
-0E23; [71 4A, 05, 05]
-0E40 0E23; [71 4A, 05, 05][71 7A, 05, 05]
-0E41 0E23; [71 4A, 05, 05][71 7C, 05, 05]
-0E42 0E23; [71 4A, 05, 05][71 7E, 05, 05]
-0E43 0E23; [71 4A, 05, 05][71 80, 05, 05]
-0E44 0E23; [71 4A, 05, 05][71 82, 05, 05]
-
-0E24; [71 4C, 05, 05]
-0E40 0E24; [71 4C, 05, 05][71 7A, 05, 05]
-0E41 0E24; [71 4C, 05, 05][71 7C, 05, 05]
-0E42 0E24; [71 4C, 05, 05][71 7E, 05, 05]
-0E43 0E24; [71 4C, 05, 05][71 80, 05, 05]
-0E44 0E24; [71 4C, 05, 05][71 82, 05, 05]
-
-0E25; [71 4E, 05, 05]
-0E40 0E25; [71 4E, 05, 05][71 7A, 05, 05]
-0E41 0E25; [71 4E, 05, 05][71 7C, 05, 05]
-0E42 0E25; [71 4E, 05, 05][71 7E, 05, 05]
-0E43 0E25; [71 4E, 05, 05][71 80, 05, 05]
-0E44 0E25; [71 4E, 05, 05][71 82, 05, 05]
-
-0E26; [71 50, 05, 05]
-0E40 0E26; [71 50, 05, 05][71 7A, 05, 05]
-0E41 0E26; [71 50, 05, 05][71 7C, 05, 05]
-0E42 0E26; [71 50, 05, 05][71 7E, 05, 05]
-0E43 0E26; [71 50, 05, 05][71 80, 05, 05]
-0E44 0E26; [71 50, 05, 05][71 82, 05, 05]
-
-0E27; [71 52, 05, 05]
-0E40 0E27; [71 52, 05, 05][71 7A, 05, 05]
-0E41 0E27; [71 52, 05, 05][71 7C, 05, 05]
-0E42 0E27; [71 52, 05, 05][71 7E, 05, 05]
-0E43 0E27; [71 52, 05, 05][71 80, 05, 05]
-0E44 0E27; [71 52, 05, 05][71 82, 05, 05]
-
-0E28; [71 54, 05, 05]
-0E40 0E28; [71 54, 05, 05][71 7A, 05, 05]
-0E41 0E28; [71 54, 05, 05][71 7C, 05, 05]
-0E42 0E28; [71 54, 05, 05][71 7E, 05, 05]
-0E43 0E28; [71 54, 05, 05][71 80, 05, 05]
-0E44 0E28; [71 54, 05, 05][71 82, 05, 05]
-
-0E29; [71 56, 05, 05]
-0E40 0E29; [71 56, 05, 05][71 7A, 05, 05]
-0E41 0E29; [71 56, 05, 05][71 7C, 05, 05]
-0E42 0E29; [71 56, 05, 05][71 7E, 05, 05]
-0E43 0E29; [71 56, 05, 05][71 80, 05, 05]
-0E44 0E29; [71 56, 05, 05][71 82, 05, 05]
-
-0E2A; [71 58, 05, 05]
-0E40 0E2A; [71 58, 05, 05][71 7A, 05, 05]
-0E41 0E2A; [71 58, 05, 05][71 7C, 05, 05]
-0E42 0E2A; [71 58, 05, 05][71 7E, 05, 05]
-0E43 0E2A; [71 58, 05, 05][71 80, 05, 05]
-0E44 0E2A; [71 58, 05, 05][71 82, 05, 05]
-
-0E2B; [71 5A, 05, 05]
-0E40 0E2B; [71 5A, 05, 05][71 7A, 05, 05]
-0E41 0E2B; [71 5A, 05, 05][71 7C, 05, 05]
-0E42 0E2B; [71 5A, 05, 05][71 7E, 05, 05]
-0E43 0E2B; [71 5A, 05, 05][71 80, 05, 05]
-0E44 0E2B; [71 5A, 05, 05][71 82, 05, 05]
-
-0E2C; [71 5C, 05, 05]
-0E40 0E2C; [71 5C, 05, 05][71 7A, 05, 05]
-0E41 0E2C; [71 5C, 05, 05][71 7C, 05, 05]
-0E42 0E2C; [71 5C, 05, 05][71 7E, 05, 05]
-0E43 0E2C; [71 5C, 05, 05][71 80, 05, 05]
-0E44 0E2C; [71 5C, 05, 05][71 82, 05, 05]
-
-0E2D; [71 5E, 05, 05]
-0E40 0E2D; [71 5E, 05, 05][71 7A, 05, 05]
-0E41 0E2D; [71 5E, 05, 05][71 7C, 05, 05]
-0E42 0E2D; [71 5E, 05, 05][71 7E, 05, 05]
-0E43 0E2D; [71 5E, 05, 05][71 80, 05, 05]
-0E44 0E2D; [71 5E, 05, 05][71 82, 05, 05]
-
-0E2E; [71 60, 05, 05]
-0E40 0E2E; [71 60, 05, 05][71 7A, 05, 05]
-0E41 0E2E; [71 60, 05, 05][71 7C, 05, 05]
-0E42 0E2E; [71 60, 05, 05][71 7E, 05, 05]
-0E43 0E2E; [71 60, 05, 05][71 80, 05, 05]
-0E44 0E2E; [71 60, 05, 05][71 82, 05, 05]
-
-0E2F; [71 62, 05, 05]
-
-0E30; [71 64, 05, 05]
-
-0E31; [71 66, 05, 05]
-
-0E32; [71 68, 05, 05]
-
-0E33; [71 6A, 05, 05]
-0E4D 0E32; [71 6A, 05, 05]
-
-0E34; [71 6C, 05, 05]
-
-0E35; [71 6E, 05, 05]
-
-0E36; [71 70, 05, 05]
-
-0E37; [71 72, 05, 05]
-
-0E38; [71 74, 05, 05]
-
-0E39; [71 76, 05, 05]
-
-0E3A; [71 78, 05, 05]
-
-0E40; [71 7A, 05, 05]
-
-0E41; [71 7C, 05, 05]
-
-0E42; [71 7E, 05, 05]
-
-0E43; [71 80, 05, 05]
-
-0E44; [71 82, 05, 05]
-
-0E45; [71 84, 05, 05]
-
-FDD1 0EA5; [72 04 02, 05, 05] # LAO first primary starts new lead byte (compressible)
-
-0EDE; [72 06, 05, 05]
-0EC0 0EDE; [72 06, 05, 05][72 5C, 05, 05]
-0EC1 0EDE; [72 06, 05, 05][72 5E, 05, 05]
-0EC2 0EDE; [72 06, 05, 05][72 60, 05, 05]
-0EC3 0EDE; [72 06, 05, 05][72 62, 05, 05]
-0EC4 0EDE; [72 06, 05, 05][72 64, 05, 05]
-
-0E81; [72 08, 05, 05]
-0EC0 0E81; [72 08, 05, 05][72 5C, 05, 05]
-0EC1 0E81; [72 08, 05, 05][72 5E, 05, 05]
-0EC2 0E81; [72 08, 05, 05][72 60, 05, 05]
-0EC3 0E81; [72 08, 05, 05][72 62, 05, 05]
-0EC4 0E81; [72 08, 05, 05][72 64, 05, 05]
-
-0E82; [72 0A, 05, 05]
-0EC0 0E82; [72 0A, 05, 05][72 5C, 05, 05]
-0EC1 0E82; [72 0A, 05, 05][72 5E, 05, 05]
-0EC2 0E82; [72 0A, 05, 05][72 60, 05, 05]
-0EC3 0E82; [72 0A, 05, 05][72 62, 05, 05]
-0EC4 0E82; [72 0A, 05, 05][72 64, 05, 05]
-
-0E84; [72 0C, 05, 05]
-0EC0 0E84; [72 0C, 05, 05][72 5C, 05, 05]
-0EC1 0E84; [72 0C, 05, 05][72 5E, 05, 05]
-0EC2 0E84; [72 0C, 05, 05][72 60, 05, 05]
-0EC3 0E84; [72 0C, 05, 05][72 62, 05, 05]
-0EC4 0E84; [72 0C, 05, 05][72 64, 05, 05]
-
-0E87; [72 0E, 05, 05]
-0EC0 0E87; [72 0E, 05, 05][72 5C, 05, 05]
-0EC1 0E87; [72 0E, 05, 05][72 5E, 05, 05]
-0EC2 0E87; [72 0E, 05, 05][72 60, 05, 05]
-0EC3 0E87; [72 0E, 05, 05][72 62, 05, 05]
-0EC4 0E87; [72 0E, 05, 05][72 64, 05, 05]
-
-0E88; [72 10, 05, 05]
-0EC0 0E88; [72 10, 05, 05][72 5C, 05, 05]
-0EC1 0E88; [72 10, 05, 05][72 5E, 05, 05]
-0EC2 0E88; [72 10, 05, 05][72 60, 05, 05]
-0EC3 0E88; [72 10, 05, 05][72 62, 05, 05]
-0EC4 0E88; [72 10, 05, 05][72 64, 05, 05]
-
-0EAA; [72 12, 05, 05]
-0EC0 0EAA; [72 12, 05, 05][72 5C, 05, 05]
-0EC1 0EAA; [72 12, 05, 05][72 5E, 05, 05]
-0EC2 0EAA; [72 12, 05, 05][72 60, 05, 05]
-0EC3 0EAA; [72 12, 05, 05][72 62, 05, 05]
-0EC4 0EAA; [72 12, 05, 05][72 64, 05, 05]
-
-0E8A; [72 14, 05, 05]
-0EC0 0E8A; [72 14, 05, 05][72 5C, 05, 05]
-0EC1 0E8A; [72 14, 05, 05][72 5E, 05, 05]
-0EC2 0E8A; [72 14, 05, 05][72 60, 05, 05]
-0EC3 0E8A; [72 14, 05, 05][72 62, 05, 05]
-0EC4 0E8A; [72 14, 05, 05][72 64, 05, 05]
-
-0EDF; [72 16, 05, 05]
-0EC0 0EDF; [72 16, 05, 05][72 5C, 05, 05]
-0EC1 0EDF; [72 16, 05, 05][72 5E, 05, 05]
-0EC2 0EDF; [72 16, 05, 05][72 60, 05, 05]
-0EC3 0EDF; [72 16, 05, 05][72 62, 05, 05]
-0EC4 0EDF; [72 16, 05, 05][72 64, 05, 05]
-
-0E8D; [72 18, 05, 05]
-0EC0 0E8D; [72 18, 05, 05][72 5C, 05, 05]
-0EC1 0E8D; [72 18, 05, 05][72 5E, 05, 05]
-0EC2 0E8D; [72 18, 05, 05][72 60, 05, 05]
-0EC3 0E8D; [72 18, 05, 05][72 62, 05, 05]
-0EC4 0E8D; [72 18, 05, 05][72 64, 05, 05]
-
-0E94; [72 1A, 05, 05]
-0EC0 0E94; [72 1A, 05, 05][72 5C, 05, 05]
-0EC1 0E94; [72 1A, 05, 05][72 5E, 05, 05]
-0EC2 0E94; [72 1A, 05, 05][72 60, 05, 05]
-0EC3 0E94; [72 1A, 05, 05][72 62, 05, 05]
-0EC4 0E94; [72 1A, 05, 05][72 64, 05, 05]
-
-0E95; [72 1C, 05, 05]
-0EC0 0E95; [72 1C, 05, 05][72 5C, 05, 05]
-0EC1 0E95; [72 1C, 05, 05][72 5E, 05, 05]
-0EC2 0E95; [72 1C, 05, 05][72 60, 05, 05]
-0EC3 0E95; [72 1C, 05, 05][72 62, 05, 05]
-0EC4 0E95; [72 1C, 05, 05][72 64, 05, 05]
-
-0E96; [72 1E, 05, 05]
-0EC0 0E96; [72 1E, 05, 05][72 5C, 05, 05]
-0EC1 0E96; [72 1E, 05, 05][72 5E, 05, 05]
-0EC2 0E96; [72 1E, 05, 05][72 60, 05, 05]
-0EC3 0E96; [72 1E, 05, 05][72 62, 05, 05]
-0EC4 0E96; [72 1E, 05, 05][72 64, 05, 05]
-
-0E97; [72 20, 05, 05]
-0EC0 0E97; [72 20, 05, 05][72 5C, 05, 05]
-0EC1 0E97; [72 20, 05, 05][72 5E, 05, 05]
-0EC2 0E97; [72 20, 05, 05][72 60, 05, 05]
-0EC3 0E97; [72 20, 05, 05][72 62, 05, 05]
-0EC4 0E97; [72 20, 05, 05][72 64, 05, 05]
-
-0E99; [72 22, 05, 05]
-0EC0 0E99; [72 22, 05, 05][72 5C, 05, 05]
-0EC1 0E99; [72 22, 05, 05][72 5E, 05, 05]
-0EC2 0E99; [72 22, 05, 05][72 60, 05, 05]
-0EC3 0E99; [72 22, 05, 05][72 62, 05, 05]
-0EC4 0E99; [72 22, 05, 05][72 64, 05, 05]
-
-0E9A; [72 24, 05, 05]
-0EC0 0E9A; [72 24, 05, 05][72 5C, 05, 05]
-0EC1 0E9A; [72 24, 05, 05][72 5E, 05, 05]
-0EC2 0E9A; [72 24, 05, 05][72 60, 05, 05]
-0EC3 0E9A; [72 24, 05, 05][72 62, 05, 05]
-0EC4 0E9A; [72 24, 05, 05][72 64, 05, 05]
-
-0E9B; [72 26, 05, 05]
-0EC0 0E9B; [72 26, 05, 05][72 5C, 05, 05]
-0EC1 0E9B; [72 26, 05, 05][72 5E, 05, 05]
-0EC2 0E9B; [72 26, 05, 05][72 60, 05, 05]
-0EC3 0E9B; [72 26, 05, 05][72 62, 05, 05]
-0EC4 0E9B; [72 26, 05, 05][72 64, 05, 05]
-
-0E9C; [72 28, 05, 05]
-0EC0 0E9C; [72 28, 05, 05][72 5C, 05, 05]
-0EC1 0E9C; [72 28, 05, 05][72 5E, 05, 05]
-0EC2 0E9C; [72 28, 05, 05][72 60, 05, 05]
-0EC3 0E9C; [72 28, 05, 05][72 62, 05, 05]
-0EC4 0E9C; [72 28, 05, 05][72 64, 05, 05]
-
-0E9D; [72 2A, 05, 05]
-0EC0 0E9D; [72 2A, 05, 05][72 5C, 05, 05]
-0EC1 0E9D; [72 2A, 05, 05][72 5E, 05, 05]
-0EC2 0E9D; [72 2A, 05, 05][72 60, 05, 05]
-0EC3 0E9D; [72 2A, 05, 05][72 62, 05, 05]
-0EC4 0E9D; [72 2A, 05, 05][72 64, 05, 05]
-
-0E9E; [72 2C, 05, 05]
-0EC0 0E9E; [72 2C, 05, 05][72 5C, 05, 05]
-0EC1 0E9E; [72 2C, 05, 05][72 5E, 05, 05]
-0EC2 0E9E; [72 2C, 05, 05][72 60, 05, 05]
-0EC3 0E9E; [72 2C, 05, 05][72 62, 05, 05]
-0EC4 0E9E; [72 2C, 05, 05][72 64, 05, 05]
-
-0E9F; [72 2E, 05, 05]
-0EC0 0E9F; [72 2E, 05, 05][72 5C, 05, 05]
-0EC1 0E9F; [72 2E, 05, 05][72 5E, 05, 05]
-0EC2 0E9F; [72 2E, 05, 05][72 60, 05, 05]
-0EC3 0E9F; [72 2E, 05, 05][72 62, 05, 05]
-0EC4 0E9F; [72 2E, 05, 05][72 64, 05, 05]
-
-0EA1; [72 30, 05, 05]
-0EC0 0EA1; [72 30, 05, 05][72 5C, 05, 05]
-0EC1 0EA1; [72 30, 05, 05][72 5E, 05, 05]
-0EC2 0EA1; [72 30, 05, 05][72 60, 05, 05]
-0EC3 0EA1; [72 30, 05, 05][72 62, 05, 05]
-0EC4 0EA1; [72 30, 05, 05][72 64, 05, 05]
-
-0EA2; [72 32, 05, 05]
-0EC0 0EA2; [72 32, 05, 05][72 5C, 05, 05]
-0EC1 0EA2; [72 32, 05, 05][72 5E, 05, 05]
-0EC2 0EA2; [72 32, 05, 05][72 60, 05, 05]
-0EC3 0EA2; [72 32, 05, 05][72 62, 05, 05]
-0EC4 0EA2; [72 32, 05, 05][72 64, 05, 05]
-
-0EA3; [72 34, 05, 05]
-0EC0 0EA3; [72 34, 05, 05][72 5C, 05, 05]
-0EC1 0EA3; [72 34, 05, 05][72 5E, 05, 05]
-0EC2 0EA3; [72 34, 05, 05][72 60, 05, 05]
-0EC3 0EA3; [72 34, 05, 05][72 62, 05, 05]
-0EC4 0EA3; [72 34, 05, 05][72 64, 05, 05]
-
-0EA5; [72 36, 05, 05]
-0EC0 0EA5; [72 36, 05, 05][72 5C, 05, 05]
-0EC1 0EA5; [72 36, 05, 05][72 5E, 05, 05]
-0EC2 0EA5; [72 36, 05, 05][72 60, 05, 05]
-0EC3 0EA5; [72 36, 05, 05][72 62, 05, 05]
-0EC4 0EA5; [72 36, 05, 05][72 64, 05, 05]
-
-0EA7; [72 38, 05, 05]
-0EC0 0EA7; [72 38, 05, 05][72 5C, 05, 05]
-0EC1 0EA7; [72 38, 05, 05][72 5E, 05, 05]
-0EC2 0EA7; [72 38, 05, 05][72 60, 05, 05]
-0EC3 0EA7; [72 38, 05, 05][72 62, 05, 05]
-0EC4 0EA7; [72 38, 05, 05][72 64, 05, 05]
-
-0EAB; [72 3A, 05, 05]
-0EDC; [72 3A, 05, 20][72 22, 05, 20]
-0EC0 0EDC; [72 3A, 05, 20][72 22, 05, 20][72 5C, 05, 05]
-0EC1 0EDC; [72 3A, 05, 20][72 22, 05, 20][72 5E, 05, 05]
-0EC2 0EDC; [72 3A, 05, 20][72 22, 05, 20][72 60, 05, 05]
-0EC3 0EDC; [72 3A, 05, 20][72 22, 05, 20][72 62, 05, 05]
-0EC4 0EDC; [72 3A, 05, 20][72 22, 05, 20][72 64, 05, 05]
-0EDD; [72 3A, 05, 20][72 30, 05, 20]
-0EC0 0EDD; [72 3A, 05, 20][72 30, 05, 20][72 5C, 05, 05]
-0EC1 0EDD; [72 3A, 05, 20][72 30, 05, 20][72 5E, 05, 05]
-0EC2 0EDD; [72 3A, 05, 20][72 30, 05, 20][72 60, 05, 05]
-0EC3 0EDD; [72 3A, 05, 20][72 30, 05, 20][72 62, 05, 05]
-0EC4 0EDD; [72 3A, 05, 20][72 30, 05, 20][72 64, 05, 05]
-0EC0 0EAB; [72 3A, 05, 05][72 5C, 05, 05]
-0EC1 0EAB; [72 3A, 05, 05][72 5E, 05, 05]
-0EC2 0EAB; [72 3A, 05, 05][72 60, 05, 05]
-0EC3 0EAB; [72 3A, 05, 05][72 62, 05, 05]
-0EC4 0EAB; [72 3A, 05, 05][72 64, 05, 05]
-
-0EAD; [72 3C, 05, 05]
-0EC0 0EAD; [72 3C, 05, 05][72 5C, 05, 05]
-0EC1 0EAD; [72 3C, 05, 05][72 5E, 05, 05]
-0EC2 0EAD; [72 3C, 05, 05][72 60, 05, 05]
-0EC3 0EAD; [72 3C, 05, 05][72 62, 05, 05]
-0EC4 0EAD; [72 3C, 05, 05][72 64, 05, 05]
-
-0EAE; [72 3E, 05, 05]
-0EC0 0EAE; [72 3E, 05, 05][72 5C, 05, 05]
-0EC1 0EAE; [72 3E, 05, 05][72 5E, 05, 05]
-0EC2 0EAE; [72 3E, 05, 05][72 60, 05, 05]
-0EC3 0EAE; [72 3E, 05, 05][72 62, 05, 05]
-0EC4 0EAE; [72 3E, 05, 05][72 64, 05, 05]
-
-0EAF; [72 40, 05, 05]
-
-0EB0; [72 42, 05, 05]
-
-0EB1; [72 44, 05, 05]
-
-0EB2; [72 46, 05, 05]
-
-0EB3; [72 48, 05, 05]
-0ECD 0EB2; [72 48, 05, 05]
-
-0EB4; [72 4A, 05, 05]
-
-0EB5; [72 4C, 05, 05]
-
-0EB6; [72 4E, 05, 05]
-
-0EB7; [72 50, 05, 05]
-
-0EB8; [72 52, 05, 05]
-
-0EB9; [72 54, 05, 05]
-
-0EBB; [72 56, 05, 05]
-
-0EBC; [72 58, 05, 05]
-
-0EBD; [72 5A, 05, 05]
-
-0EC0; [72 5C, 05, 05]
-
-0EC1; [72 5E, 05, 05]
-
-0EC2; [72 60, 05, 05]
-
-0EC3; [72 62, 05, 05]
-
-0EC4; [72 64, 05, 05]
-
-FDD1 AA80; [72 66 02, 05, 05] # Tai Viet first primary (compressible)
-
-AA80; [72 66 09, 05, 05]
-AAB5 AA80; [72 66 09, 05, 05][72 67 7E, 05, 05]
-AAB6 AA80; [72 66 09, 05, 05][72 67 85, 05, 05]
-AAB9 AA80; [72 66 09, 05, 05][72 67 9A, 05, 05]
-AABB AA80; [72 66 09, 05, 05][72 67 A8, 05, 05]
-AABC AA80; [72 66 09, 05, 05][72 67 AF, 05, 05]
-
-AA81; [72 66 10, 05, 05]
-AAB5 AA81; [72 66 10, 05, 05][72 67 7E, 05, 05]
-AAB6 AA81; [72 66 10, 05, 05][72 67 85, 05, 05]
-AAB9 AA81; [72 66 10, 05, 05][72 67 9A, 05, 05]
-AABB AA81; [72 66 10, 05, 05][72 67 A8, 05, 05]
-AABC AA81; [72 66 10, 05, 05][72 67 AF, 05, 05]
-
-AA82; [72 66 17, 05, 05]
-AAB5 AA82; [72 66 17, 05, 05][72 67 7E, 05, 05]
-AAB6 AA82; [72 66 17, 05, 05][72 67 85, 05, 05]
-AAB9 AA82; [72 66 17, 05, 05][72 67 9A, 05, 05]
-AABB AA82; [72 66 17, 05, 05][72 67 A8, 05, 05]
-AABC AA82; [72 66 17, 05, 05][72 67 AF, 05, 05]
-
-AA83; [72 66 1E, 05, 05]
-AAB5 AA83; [72 66 1E, 05, 05][72 67 7E, 05, 05]
-AAB6 AA83; [72 66 1E, 05, 05][72 67 85, 05, 05]
-AAB9 AA83; [72 66 1E, 05, 05][72 67 9A, 05, 05]
-AABB AA83; [72 66 1E, 05, 05][72 67 A8, 05, 05]
-AABC AA83; [72 66 1E, 05, 05][72 67 AF, 05, 05]
-
-AA84; [72 66 25, 05, 05]
-AAB5 AA84; [72 66 25, 05, 05][72 67 7E, 05, 05]
-AAB6 AA84; [72 66 25, 05, 05][72 67 85, 05, 05]
-AAB9 AA84; [72 66 25, 05, 05][72 67 9A, 05, 05]
-AABB AA84; [72 66 25, 05, 05][72 67 A8, 05, 05]
-AABC AA84; [72 66 25, 05, 05][72 67 AF, 05, 05]
-
-AA85; [72 66 2C, 05, 05]
-AAB5 AA85; [72 66 2C, 05, 05][72 67 7E, 05, 05]
-AAB6 AA85; [72 66 2C, 05, 05][72 67 85, 05, 05]
-AAB9 AA85; [72 66 2C, 05, 05][72 67 9A, 05, 05]
-AABB AA85; [72 66 2C, 05, 05][72 67 A8, 05, 05]
-AABC AA85; [72 66 2C, 05, 05][72 67 AF, 05, 05]
-
-AA86; [72 66 33, 05, 05]
-AAB5 AA86; [72 66 33, 05, 05][72 67 7E, 05, 05]
-AAB6 AA86; [72 66 33, 05, 05][72 67 85, 05, 05]
-AAB9 AA86; [72 66 33, 05, 05][72 67 9A, 05, 05]
-AABB AA86; [72 66 33, 05, 05][72 67 A8, 05, 05]
-AABC AA86; [72 66 33, 05, 05][72 67 AF, 05, 05]
-
-AA87; [72 66 3A, 05, 05]
-AAB5 AA87; [72 66 3A, 05, 05][72 67 7E, 05, 05]
-AAB6 AA87; [72 66 3A, 05, 05][72 67 85, 05, 05]
-AAB9 AA87; [72 66 3A, 05, 05][72 67 9A, 05, 05]
-AABB AA87; [72 66 3A, 05, 05][72 67 A8, 05, 05]
-AABC AA87; [72 66 3A, 05, 05][72 67 AF, 05, 05]
-
-AA88; [72 66 41, 05, 05]
-AAB5 AA88; [72 66 41, 05, 05][72 67 7E, 05, 05]
-AAB6 AA88; [72 66 41, 05, 05][72 67 85, 05, 05]
-AAB9 AA88; [72 66 41, 05, 05][72 67 9A, 05, 05]
-AABB AA88; [72 66 41, 05, 05][72 67 A8, 05, 05]
-AABC AA88; [72 66 41, 05, 05][72 67 AF, 05, 05]
-
-AA89; [72 66 48, 05, 05]
-AAB5 AA89; [72 66 48, 05, 05][72 67 7E, 05, 05]
-AAB6 AA89; [72 66 48, 05, 05][72 67 85, 05, 05]
-AAB9 AA89; [72 66 48, 05, 05][72 67 9A, 05, 05]
-AABB AA89; [72 66 48, 05, 05][72 67 A8, 05, 05]
-AABC AA89; [72 66 48, 05, 05][72 67 AF, 05, 05]
-
-AA8A; [72 66 4F, 05, 05]
-AAB5 AA8A; [72 66 4F, 05, 05][72 67 7E, 05, 05]
-AAB6 AA8A; [72 66 4F, 05, 05][72 67 85, 05, 05]
-AAB9 AA8A; [72 66 4F, 05, 05][72 67 9A, 05, 05]
-AABB AA8A; [72 66 4F, 05, 05][72 67 A8, 05, 05]
-AABC AA8A; [72 66 4F, 05, 05][72 67 AF, 05, 05]
-
-AA8B; [72 66 56, 05, 05]
-AAB5 AA8B; [72 66 56, 05, 05][72 67 7E, 05, 05]
-AAB6 AA8B; [72 66 56, 05, 05][72 67 85, 05, 05]
-AAB9 AA8B; [72 66 56, 05, 05][72 67 9A, 05, 05]
-AABB AA8B; [72 66 56, 05, 05][72 67 A8, 05, 05]
-AABC AA8B; [72 66 56, 05, 05][72 67 AF, 05, 05]
-
-AA8C; [72 66 5D, 05, 05]
-AAB5 AA8C; [72 66 5D, 05, 05][72 67 7E, 05, 05]
-AAB6 AA8C; [72 66 5D, 05, 05][72 67 85, 05, 05]
-AAB9 AA8C; [72 66 5D, 05, 05][72 67 9A, 05, 05]
-AABB AA8C; [72 66 5D, 05, 05][72 67 A8, 05, 05]
-AABC AA8C; [72 66 5D, 05, 05][72 67 AF, 05, 05]
-
-AA8D; [72 66 64, 05, 05]
-AAB5 AA8D; [72 66 64, 05, 05][72 67 7E, 05, 05]
-AAB6 AA8D; [72 66 64, 05, 05][72 67 85, 05, 05]
-AAB9 AA8D; [72 66 64, 05, 05][72 67 9A, 05, 05]
-AABB AA8D; [72 66 64, 05, 05][72 67 A8, 05, 05]
-AABC AA8D; [72 66 64, 05, 05][72 67 AF, 05, 05]
-
-AA8E; [72 66 6B, 05, 05]
-AAB5 AA8E; [72 66 6B, 05, 05][72 67 7E, 05, 05]
-AAB6 AA8E; [72 66 6B, 05, 05][72 67 85, 05, 05]
-AAB9 AA8E; [72 66 6B, 05, 05][72 67 9A, 05, 05]
-AABB AA8E; [72 66 6B, 05, 05][72 67 A8, 05, 05]
-AABC AA8E; [72 66 6B, 05, 05][72 67 AF, 05, 05]
-
-AA8F; [72 66 72, 05, 05]
-AAB5 AA8F; [72 66 72, 05, 05][72 67 7E, 05, 05]
-AAB6 AA8F; [72 66 72, 05, 05][72 67 85, 05, 05]
-AAB9 AA8F; [72 66 72, 05, 05][72 67 9A, 05, 05]
-AABB AA8F; [72 66 72, 05, 05][72 67 A8, 05, 05]
-AABC AA8F; [72 66 72, 05, 05][72 67 AF, 05, 05]
-
-AA90; [72 66 79, 05, 05]
-AAB5 AA90; [72 66 79, 05, 05][72 67 7E, 05, 05]
-AAB6 AA90; [72 66 79, 05, 05][72 67 85, 05, 05]
-AAB9 AA90; [72 66 79, 05, 05][72 67 9A, 05, 05]
-AABB AA90; [72 66 79, 05, 05][72 67 A8, 05, 05]
-AABC AA90; [72 66 79, 05, 05][72 67 AF, 05, 05]
-
-AA91; [72 66 80, 05, 05]
-AAB5 AA91; [72 66 80, 05, 05][72 67 7E, 05, 05]
-AAB6 AA91; [72 66 80, 05, 05][72 67 85, 05, 05]
-AAB9 AA91; [72 66 80, 05, 05][72 67 9A, 05, 05]
-AABB AA91; [72 66 80, 05, 05][72 67 A8, 05, 05]
-AABC AA91; [72 66 80, 05, 05][72 67 AF, 05, 05]
-
-AA92; [72 66 87, 05, 05]
-AAB5 AA92; [72 66 87, 05, 05][72 67 7E, 05, 05]
-AAB6 AA92; [72 66 87, 05, 05][72 67 85, 05, 05]
-AAB9 AA92; [72 66 87, 05, 05][72 67 9A, 05, 05]
-AABB AA92; [72 66 87, 05, 05][72 67 A8, 05, 05]
-AABC AA92; [72 66 87, 05, 05][72 67 AF, 05, 05]
-
-AA93; [72 66 8E, 05, 05]
-AAB5 AA93; [72 66 8E, 05, 05][72 67 7E, 05, 05]
-AAB6 AA93; [72 66 8E, 05, 05][72 67 85, 05, 05]
-AAB9 AA93; [72 66 8E, 05, 05][72 67 9A, 05, 05]
-AABB AA93; [72 66 8E, 05, 05][72 67 A8, 05, 05]
-AABC AA93; [72 66 8E, 05, 05][72 67 AF, 05, 05]
-
-AA94; [72 66 95, 05, 05]
-AAB5 AA94; [72 66 95, 05, 05][72 67 7E, 05, 05]
-AAB6 AA94; [72 66 95, 05, 05][72 67 85, 05, 05]
-AAB9 AA94; [72 66 95, 05, 05][72 67 9A, 05, 05]
-AABB AA94; [72 66 95, 05, 05][72 67 A8, 05, 05]
-AABC AA94; [72 66 95, 05, 05][72 67 AF, 05, 05]
-
-AA95; [72 66 9C, 05, 05]
-AAB5 AA95; [72 66 9C, 05, 05][72 67 7E, 05, 05]
-AAB6 AA95; [72 66 9C, 05, 05][72 67 85, 05, 05]
-AAB9 AA95; [72 66 9C, 05, 05][72 67 9A, 05, 05]
-AABB AA95; [72 66 9C, 05, 05][72 67 A8, 05, 05]
-AABC AA95; [72 66 9C, 05, 05][72 67 AF, 05, 05]
-
-AA96; [72 66 A3, 05, 05]
-AAB5 AA96; [72 66 A3, 05, 05][72 67 7E, 05, 05]
-AAB6 AA96; [72 66 A3, 05, 05][72 67 85, 05, 05]
-AAB9 AA96; [72 66 A3, 05, 05][72 67 9A, 05, 05]
-AABB AA96; [72 66 A3, 05, 05][72 67 A8, 05, 05]
-AABC AA96; [72 66 A3, 05, 05][72 67 AF, 05, 05]
-
-AA97; [72 66 AA, 05, 05]
-AAB5 AA97; [72 66 AA, 05, 05][72 67 7E, 05, 05]
-AAB6 AA97; [72 66 AA, 05, 05][72 67 85, 05, 05]
-AAB9 AA97; [72 66 AA, 05, 05][72 67 9A, 05, 05]
-AABB AA97; [72 66 AA, 05, 05][72 67 A8, 05, 05]
-AABC AA97; [72 66 AA, 05, 05][72 67 AF, 05, 05]
-
-AA98; [72 66 B1, 05, 05]
-AAB5 AA98; [72 66 B1, 05, 05][72 67 7E, 05, 05]
-AAB6 AA98; [72 66 B1, 05, 05][72 67 85, 05, 05]
-AAB9 AA98; [72 66 B1, 05, 05][72 67 9A, 05, 05]
-AABB AA98; [72 66 B1, 05, 05][72 67 A8, 05, 05]
-AABC AA98; [72 66 B1, 05, 05][72 67 AF, 05, 05]
-
-AA99; [72 66 B8, 05, 05]
-AAB5 AA99; [72 66 B8, 05, 05][72 67 7E, 05, 05]
-AAB6 AA99; [72 66 B8, 05, 05][72 67 85, 05, 05]
-AAB9 AA99; [72 66 B8, 05, 05][72 67 9A, 05, 05]
-AABB AA99; [72 66 B8, 05, 05][72 67 A8, 05, 05]
-AABC AA99; [72 66 B8, 05, 05][72 67 AF, 05, 05]
-
-AA9A; [72 66 BF, 05, 05]
-AAB5 AA9A; [72 66 BF, 05, 05][72 67 7E, 05, 05]
-AAB6 AA9A; [72 66 BF, 05, 05][72 67 85, 05, 05]
-AAB9 AA9A; [72 66 BF, 05, 05][72 67 9A, 05, 05]
-AABB AA9A; [72 66 BF, 05, 05][72 67 A8, 05, 05]
-AABC AA9A; [72 66 BF, 05, 05][72 67 AF, 05, 05]
-
-AA9B; [72 66 C6, 05, 05]
-AAB5 AA9B; [72 66 C6, 05, 05][72 67 7E, 05, 05]
-AAB6 AA9B; [72 66 C6, 05, 05][72 67 85, 05, 05]
-AAB9 AA9B; [72 66 C6, 05, 05][72 67 9A, 05, 05]
-AABB AA9B; [72 66 C6, 05, 05][72 67 A8, 05, 05]
-AABC AA9B; [72 66 C6, 05, 05][72 67 AF, 05, 05]
-
-AA9C; [72 66 CD, 05, 05]
-AAB5 AA9C; [72 66 CD, 05, 05][72 67 7E, 05, 05]
-AAB6 AA9C; [72 66 CD, 05, 05][72 67 85, 05, 05]
-AAB9 AA9C; [72 66 CD, 05, 05][72 67 9A, 05, 05]
-AABB AA9C; [72 66 CD, 05, 05][72 67 A8, 05, 05]
-AABC AA9C; [72 66 CD, 05, 05][72 67 AF, 05, 05]
-
-AA9D; [72 66 D4, 05, 05]
-AAB5 AA9D; [72 66 D4, 05, 05][72 67 7E, 05, 05]
-AAB6 AA9D; [72 66 D4, 05, 05][72 67 85, 05, 05]
-AAB9 AA9D; [72 66 D4, 05, 05][72 67 9A, 05, 05]
-AABB AA9D; [72 66 D4, 05, 05][72 67 A8, 05, 05]
-AABC AA9D; [72 66 D4, 05, 05][72 67 AF, 05, 05]
-
-AA9E; [72 66 DB, 05, 05]
-AAB5 AA9E; [72 66 DB, 05, 05][72 67 7E, 05, 05]
-AAB6 AA9E; [72 66 DB, 05, 05][72 67 85, 05, 05]
-AAB9 AA9E; [72 66 DB, 05, 05][72 67 9A, 05, 05]
-AABB AA9E; [72 66 DB, 05, 05][72 67 A8, 05, 05]
-AABC AA9E; [72 66 DB, 05, 05][72 67 AF, 05, 05]
-
-AA9F; [72 66 E2, 05, 05]
-AAB5 AA9F; [72 66 E2, 05, 05][72 67 7E, 05, 05]
-AAB6 AA9F; [72 66 E2, 05, 05][72 67 85, 05, 05]
-AAB9 AA9F; [72 66 E2, 05, 05][72 67 9A, 05, 05]
-AABB AA9F; [72 66 E2, 05, 05][72 67 A8, 05, 05]
-AABC AA9F; [72 66 E2, 05, 05][72 67 AF, 05, 05]
-
-AAA0; [72 66 E9, 05, 05]
-AAB5 AAA0; [72 66 E9, 05, 05][72 67 7E, 05, 05]
-AAB6 AAA0; [72 66 E9, 05, 05][72 67 85, 05, 05]
-AAB9 AAA0; [72 66 E9, 05, 05][72 67 9A, 05, 05]
-AABB AAA0; [72 66 E9, 05, 05][72 67 A8, 05, 05]
-AABC AAA0; [72 66 E9, 05, 05][72 67 AF, 05, 05]
-
-AAA1; [72 66 F0, 05, 05]
-AAB5 AAA1; [72 66 F0, 05, 05][72 67 7E, 05, 05]
-AAB6 AAA1; [72 66 F0, 05, 05][72 67 85, 05, 05]
-AAB9 AAA1; [72 66 F0, 05, 05][72 67 9A, 05, 05]
-AABB AAA1; [72 66 F0, 05, 05][72 67 A8, 05, 05]
-AABC AAA1; [72 66 F0, 05, 05][72 67 AF, 05, 05]
-
-AAA2; [72 66 F7, 05, 05]
-AAB5 AAA2; [72 66 F7, 05, 05][72 67 7E, 05, 05]
-AAB6 AAA2; [72 66 F7, 05, 05][72 67 85, 05, 05]
-AAB9 AAA2; [72 66 F7, 05, 05][72 67 9A, 05, 05]
-AABB AAA2; [72 66 F7, 05, 05][72 67 A8, 05, 05]
-AABC AAA2; [72 66 F7, 05, 05][72 67 AF, 05, 05]
-
-AAA3; [72 66 FE, 05, 05]
-AAB5 AAA3; [72 66 FE, 05, 05][72 67 7E, 05, 05]
-AAB6 AAA3; [72 66 FE, 05, 05][72 67 85, 05, 05]
-AAB9 AAA3; [72 66 FE, 05, 05][72 67 9A, 05, 05]
-AABB AAA3; [72 66 FE, 05, 05][72 67 A8, 05, 05]
-AABC AAA3; [72 66 FE, 05, 05][72 67 AF, 05, 05]
-
-AAA4; [72 67 07, 05, 05]
-AAB5 AAA4; [72 67 07, 05, 05][72 67 7E, 05, 05]
-AAB6 AAA4; [72 67 07, 05, 05][72 67 85, 05, 05]
-AAB9 AAA4; [72 67 07, 05, 05][72 67 9A, 05, 05]
-AABB AAA4; [72 67 07, 05, 05][72 67 A8, 05, 05]
-AABC AAA4; [72 67 07, 05, 05][72 67 AF, 05, 05]
-
-AAA5; [72 67 0E, 05, 05]
-AAB5 AAA5; [72 67 0E, 05, 05][72 67 7E, 05, 05]
-AAB6 AAA5; [72 67 0E, 05, 05][72 67 85, 05, 05]
-AAB9 AAA5; [72 67 0E, 05, 05][72 67 9A, 05, 05]
-AABB AAA5; [72 67 0E, 05, 05][72 67 A8, 05, 05]
-AABC AAA5; [72 67 0E, 05, 05][72 67 AF, 05, 05]
-
-AAA6; [72 67 15, 05, 05]
-AAB5 AAA6; [72 67 15, 05, 05][72 67 7E, 05, 05]
-AAB6 AAA6; [72 67 15, 05, 05][72 67 85, 05, 05]
-AAB9 AAA6; [72 67 15, 05, 05][72 67 9A, 05, 05]
-AABB AAA6; [72 67 15, 05, 05][72 67 A8, 05, 05]
-AABC AAA6; [72 67 15, 05, 05][72 67 AF, 05, 05]
-
-AAA7; [72 67 1C, 05, 05]
-AAB5 AAA7; [72 67 1C, 05, 05][72 67 7E, 05, 05]
-AAB6 AAA7; [72 67 1C, 05, 05][72 67 85, 05, 05]
-AAB9 AAA7; [72 67 1C, 05, 05][72 67 9A, 05, 05]
-AABB AAA7; [72 67 1C, 05, 05][72 67 A8, 05, 05]
-AABC AAA7; [72 67 1C, 05, 05][72 67 AF, 05, 05]
-
-AAA8; [72 67 23, 05, 05]
-AAB5 AAA8; [72 67 23, 05, 05][72 67 7E, 05, 05]
-AAB6 AAA8; [72 67 23, 05, 05][72 67 85, 05, 05]
-AAB9 AAA8; [72 67 23, 05, 05][72 67 9A, 05, 05]
-AABB AAA8; [72 67 23, 05, 05][72 67 A8, 05, 05]
-AABC AAA8; [72 67 23, 05, 05][72 67 AF, 05, 05]
-
-AAA9; [72 67 2A, 05, 05]
-AAB5 AAA9; [72 67 2A, 05, 05][72 67 7E, 05, 05]
-AAB6 AAA9; [72 67 2A, 05, 05][72 67 85, 05, 05]
-AAB9 AAA9; [72 67 2A, 05, 05][72 67 9A, 05, 05]
-AABB AAA9; [72 67 2A, 05, 05][72 67 A8, 05, 05]
-AABC AAA9; [72 67 2A, 05, 05][72 67 AF, 05, 05]
-
-AAAA; [72 67 31, 05, 05]
-AAB5 AAAA; [72 67 31, 05, 05][72 67 7E, 05, 05]
-AAB6 AAAA; [72 67 31, 05, 05][72 67 85, 05, 05]
-AAB9 AAAA; [72 67 31, 05, 05][72 67 9A, 05, 05]
-AABB AAAA; [72 67 31, 05, 05][72 67 A8, 05, 05]
-AABC AAAA; [72 67 31, 05, 05][72 67 AF, 05, 05]
+11A1D; [74 C6 8E, 05, 05]
-AAAB; [72 67 38, 05, 05]
-AAB5 AAAB; [72 67 38, 05, 05][72 67 7E, 05, 05]
-AAB6 AAAB; [72 67 38, 05, 05][72 67 85, 05, 05]
-AAB9 AAAB; [72 67 38, 05, 05][72 67 9A, 05, 05]
-AABB AAAB; [72 67 38, 05, 05][72 67 A8, 05, 05]
-AABC AAAB; [72 67 38, 05, 05][72 67 AF, 05, 05]
+11A1E; [74 C6 95, 05, 05]
-AAAC; [72 67 3F, 05, 05]
-AAB5 AAAC; [72 67 3F, 05, 05][72 67 7E, 05, 05]
-AAB6 AAAC; [72 67 3F, 05, 05][72 67 85, 05, 05]
-AAB9 AAAC; [72 67 3F, 05, 05][72 67 9A, 05, 05]
-AABB AAAC; [72 67 3F, 05, 05][72 67 A8, 05, 05]
-AABC AAAC; [72 67 3F, 05, 05][72 67 AF, 05, 05]
+11A1F; [74 C6 9C, 05, 05]
-AAAD; [72 67 46, 05, 05]
-AAB5 AAAD; [72 67 46, 05, 05][72 67 7E, 05, 05]
-AAB6 AAAD; [72 67 46, 05, 05][72 67 85, 05, 05]
-AAB9 AAAD; [72 67 46, 05, 05][72 67 9A, 05, 05]
-AABB AAAD; [72 67 46, 05, 05][72 67 A8, 05, 05]
-AABC AAAD; [72 67 46, 05, 05][72 67 AF, 05, 05]
+11A20; [74 C6 A3, 05, 05]
-AAAE; [72 67 4D, 05, 05]
-AAB5 AAAE; [72 67 4D, 05, 05][72 67 7E, 05, 05]
-AAB6 AAAE; [72 67 4D, 05, 05][72 67 85, 05, 05]
-AAB9 AAAE; [72 67 4D, 05, 05][72 67 9A, 05, 05]
-AABB AAAE; [72 67 4D, 05, 05][72 67 A8, 05, 05]
-AABC AAAE; [72 67 4D, 05, 05][72 67 AF, 05, 05]
+11A21; [74 C6 AA, 05, 05]
-AAAF; [72 67 54, 05, 05]
-AAB5 AAAF; [72 67 54, 05, 05][72 67 7E, 05, 05]
-AAB6 AAAF; [72 67 54, 05, 05][72 67 85, 05, 05]
-AAB9 AAAF; [72 67 54, 05, 05][72 67 9A, 05, 05]
-AABB AAAF; [72 67 54, 05, 05][72 67 A8, 05, 05]
-AABC AAAF; [72 67 54, 05, 05][72 67 AF, 05, 05]
+11A22; [74 C6 B1, 05, 05]
-AAB0; [72 67 5B, 05, 05]
+11A23; [74 C6 B8, 05, 05]
-AAB1; [72 67 62, 05, 05]
+11A24; [74 C6 BF, 05, 05]
-AAB2; [72 67 69, 05, 05]
+11A25; [74 C6 C6, 05, 05]
-AAB3; [72 67 70, 05, 05]
+11A26; [74 C6 CD, 05, 05]
-AAB4; [72 67 77, 05, 05]
+11A27; [74 C6 D4, 05, 05]
-AAB5; [72 67 7E, 05, 05]
+11A28; [74 C6 DB, 05, 05]
-AAB6; [72 67 85, 05, 05]
+11A29; [74 C6 E2, 05, 05]
-AAB7; [72 67 8C, 05, 05]
+11A2A; [74 C8, 05, 05]
+11A3B; [74 C8, 05, 20]
-AAB8; [72 67 93, 05, 05]
+11A2B; [74 CA, 05, 05]
+11A3A; [74 CA, 05, 20]
+11A3C; [74 CA, 05, 2E]
-AAB9; [72 67 9A, 05, 05]
+11A2C; [74 CC, 05, 05]
+11A3D; [74 CC, 05, 20]
-AABA; [72 67 A1, 05, 05]
+11A2D; [74 CE, 05, 05]
+11A3E; [74 CE, 05, 20]
-AABB; [72 67 A8, 05, 05]
+11A2E; [74 D0 02, 05, 05]
-AABC; [72 67 AF, 05, 05]
+11A2F; [74 D0 09, 05, 05]
-AABD; [72 67 B6, 05, 05]
+11A30; [74 D0 10, 05, 05]
-AABE; [72 67 BD, 05, 05]
+11A31; [74 D0 17, 05, 05]
-AAC0; [72 67 C4, 05, 05]
+11A00; [74 D0 1E, 05, 05]
-AAC2; [72 67 CB, 05, 05]
+11A01; [74 D0 25, 05, 05]
-AADB; [72 67 D2, 05, 05]
+11A02; [74 D0 2C, 05, 05]
-AADC; [72 67 D9, 05, 05]
+11A03; [74 D0 33, 05, 05]
-FDD1 0F40; [73 04 02, 05, 05] # TIBETAN first primary starts new lead byte (compressible)
+11A04; [74 D0 3A, 05, 05]
-0F40; [73 06, 05, 05]
-0F69; [73 06, 05, 05][73 88, 05, 05]
+11A05; [74 D0 41, 05, 05]
-0F90; [73 08, 05, 05]
-0FB9; [73 08, 05, 05][73 88, 05, 05]
+11A06; [74 D0 48, 05, 05]
-0F6B; [73 0A, 05, 05]
+11A07; [74 D0 4F, 05, 05]
-0F41; [73 0C, 05, 05]
+11A08; [74 D0 56, 05, 05]
-0F91; [73 0E, 05, 05]
+11A09; [74 D0 5D, 05, 05]
-0F42; [73 10, 05, 05]
-0F43; [73 10, 05, 05][73 90, 05, 05]
+11A0A; [74 D0 64, 05, 05]
-0F92; [73 12, 05, 05]
-0F93; [73 12, 05, 05][73 90, 05, 05]
+11A34; [74 D0 6B, 05, 05]
-0F44; [73 14, 05, 05]
+11A47; [74 D0 72, 05, 05]
-0F94; [73 16, 05, 05]
+FDD1 11A5C; [74 D1 02, 05, 05] # Soyombo first primary (compressible)
-0F45; [73 18, 05, 05]
+11A50; [74 D1 09, 05, 05]
-0F95; [73 1A, 05, 05]
+11A51; [74 D1 10, 05, 05]
-0F46; [73 1C, 05, 05]
+11A52; [74 D1 17, 05, 05]
-0F96; [73 1E, 05, 05]
+11A53; [74 D1 1E, 05, 05]
-0F47; [73 20, 05, 05]
+11A59; [74 D1 25, 05, 05]
-0F97; [73 22, 05, 05]
+11A5A; [74 D1 2C, 05, 05]
-0F49; [73 24, 05, 05]
+11A54; [74 D1 33, 05, 05]
-0F99; [73 26, 05, 05]
+11A56; [74 D1 3A, 05, 05]
-0F4A; [73 28, 05, 05]
+11A55; [74 D1 41, 05, 05]
-0F9A; [73 2A, 05, 05]
+11A57; [74 D1 48, 05, 05]
-0F4B; [73 2C, 05, 05]
+11A58; [74 D1 4F, 05, 05]
-0F9B; [73 2E, 05, 05]
+11A5B; [74 D1 56, 05, 05]
-0F4C; [73 30, 05, 05]
-0F4D; [73 30, 05, 05][73 90, 05, 05]
+11A5C; [74 D3, 05, 05]
+11A8A; [74 D3, 05, 20]
-0F9C; [73 32, 05, 05]
-0F9D; [73 32, 05, 05][73 90, 05, 05]
+11A83; [74 D5, 05, 05]
-0F4E; [73 34, 05, 05]
+11A5D; [74 D7, 05, 05]
+11A8B; [74 D7, 05, 20]
-0F9E; [73 36, 05, 05]
+11A5E; [74 D9 02, 05, 05]
-0F4F; [73 38, 05, 05]
+11A5F; [74 D9 09, 05, 05]
-0F9F; [73 3A, 05, 05]
+11A60; [74 DB, 05, 05]
+11A8C; [74 DB, 05, 20]
-0F50; [73 3C, 05, 05]
+11A61; [74 DD 02, 05, 05]
-0FA0; [73 3E, 05, 05]
+11A62; [74 DD 09, 05, 05]
-0F51; [73 40, 05, 05]
-0F52; [73 40, 05, 05][73 90, 05, 05]
+11A63; [74 DD 10, 05, 05]
-0FA1; [73 42, 05, 05]
-0FA2; [73 42, 05, 05][73 90, 05, 05]
+11A64; [74 DD 17, 05, 05]
-0F53; [73 44, 05, 05]
+11A65; [74 DD 1E, 05, 05]
-0FA3; [73 46, 05, 05]
+11A66; [74 DD 25, 05, 05]
-0F54; [73 48, 05, 05]
+11A67; [74 DD 2C, 05, 05]
-0FA4; [73 4A, 05, 05]
+11A68; [74 DD 33, 05, 05]
-0F55; [73 4C, 05, 05]
+11A69; [74 DD 3A, 05, 05]
-0FA5; [73 4E, 05, 05]
+11A6A; [74 DD 41, 05, 05]
-0F56; [73 50, 05, 05]
-0F57; [73 50, 05, 05][73 90, 05, 05]
+11A6B; [74 DF, 05, 05]
+11A8D; [74 DF, 05, 20]
-0FA6; [73 52, 05, 05]
-0FA7; [73 52, 05, 05][73 90, 05, 05]
+11A6C; [74 E1 02, 05, 05]
-0F58; [73 54, 05, 05]
+11A6D; [74 E1 09, 05, 05]
-0FA8; [73 56, 05, 05]
+11A6E; [74 E1 10, 05, 05]
-0F59; [73 58, 05, 05]
+11A6F; [74 E3, 05, 05]
+11A8E; [74 E3, 05, 20]
-0FA9; [73 5A, 05, 05]
+11A70; [74 E5, 05, 05]
+11A8F; [74 E5, 05, 20]
-0F5A; [73 5C, 05, 05]
+11A71; [74 E7 02, 05, 05]
-0FAA; [73 5E, 05, 05]
+11A72; [74 E7 09, 05, 05]
-0F5B; [73 60, 05, 05]
-0F5C; [73 60, 05, 05][73 90, 05, 05]
+11A73; [74 E7 10, 05, 05]
-0FAB; [73 62, 05, 05]
-0FAC; [73 62, 05, 05][73 90, 05, 05]
+11A74; [74 E9, 05, 05]
+11A90; [74 E9, 05, 20]
-0F5D; [73 64, 05, 05]
+11A75; [74 EB 02, 05, 05]
-0FAD; [73 66, 05, 05]
-0FBA; [73 66, 70, 05]
+11A76; [74 EB 09, 05, 05]
-0F5E; [73 68, 05, 05]
+11A77; [74 EB 10, 05, 05]
-0FAE; [73 6A, 05, 05]
+11A78; [74 EB 17, 05, 05]
-0F5F; [73 6C, 05, 05]
+11A79; [74 EB 1E, 05, 05]
-0FAF; [73 6E, 05, 05]
+11A7A; [74 ED, 05, 05]
+11A95; [74 ED, 05, 20]
-0F60; [73 70, 05, 05]
+11A7B; [74 EF, 05, 05]
-0FB0; [73 72, 05, 05]
+11A7C; [74 F1, 05, 05]
+11A86; [74 F1, 05, 20]
+11A91; [74 F1, 05, 2E]
-0F61; [73 74, 05, 05]
+11A7D; [74 F3, 05, 05]
+11A87; [74 F3, 05, 20]
+11A92; [74 F3, 05, 2E]
-0FB1; [73 76, 05, 05]
-0FBB; [73 76, 70, 05]
+11A7E; [74 F5, 05, 05]
-0F62; [73 78, 05, 05]
-0F6A; [73 78, 70, 05]
+11A7F; [74 F7, 05, 05]
+11A88; [74 F7, 05, 20]
+11A93; [74 F7, 05, 2E]
-0FB2; [73 7A, 05, 05]
-0FBC; [73 7A, 70, 05]
-0FB2 0F71; [73 7A, 05, 05][73 A6, 05, 05]
-0FB2 0F71 0F72; [73 7A, 05, 05][73 AA, 05, 05]
-0FB2 0F73; [73 7A, 05, 05][73 AA, 05, 05]
-0FB2 0F71 0F74; [73 7A, 05, 05][73 B2, 05, 05]
-0FB2 0F75; [73 7A, 05, 05][73 B2, 05, 05]
+11A80; [74 F9, 05, 05]
-0F6C; [73 7C, 05, 05]
+11A81; [74 FB, 05, 05]
+11A89; [74 FB, 05, 20]
+11A94; [74 FB, 05, 2E]
-0F63; [73 7E, 05, 05]
+11A82; [74 FD 02, 05, 05]
-0FB3; [73 80, 05, 05]
-0FB3 0F71; [73 80, 05, 05][73 A6, 05, 05]
-0FB3 0F71 0F72; [73 80, 05, 05][73 AA, 05, 05]
-0FB3 0F73; [73 80, 05, 05][73 AA, 05, 05]
-0FB3 0F71 0F74; [73 80, 05, 05][73 B2, 05, 05]
-0FB3 0F75; [73 80, 05, 05][73 B2, 05, 05]
+11A99; [74 FD 09, 05, 05]
-0F64; [73 82, 05, 05]
+11A9D; [74 FD 10, 05, 05]
-0FB4; [73 84, 05, 05]
+FDD1 11C72; [75 04 02, 05, 05] # Marchen first primary starts new lead byte (compressible)
-0F65; [73 86, 05, 05]
+11C72; [75 04 09, 05, 05]
-0FB5; [73 88, 05, 05]
+11C92; [75 04 10, 05, 05]
-0F66; [73 8A, 05, 05]
+11C73; [75 04 17, 05, 05]
-0FB6; [73 8C, 05, 05]
+11C93; [75 04 1E, 05, 05]
-0F67; [73 8E, 05, 05]
+11C74; [75 04 25, 05, 05]
-0FB7; [73 90, 05, 05]
+11C94; [75 04 2C, 05, 05]
-0F68; [73 92, 05, 05]
-0F00; [73 92, 05, 20][73 C0, 05, 20][, F1 66, 20]
+11C75; [75 04 33, 05, 05]
-0FB8; [73 94, 05, 05]
+11C95; [75 04 3A, 05, 05]
-0F88; [73 96, 05, 05]
+11C76; [75 04 41, 05, 05]
-0F8D; [73 98, 05, 05]
+11C96; [75 04 48, 05, 05]
-0F89; [73 9A, 05, 05]
+11C77; [75 04 4F, 05, 05]
-0F8E; [73 9C, 05, 05]
+11C97; [75 04 56, 05, 05]
-0F8C; [73 9E, 05, 05]
+11C78; [75 04 5D, 05, 05]
-0F8F; [73 A0, 05, 05]
+11C98; [75 04 64, 05, 05]
-0F8A; [73 A2, 05, 05]
+11C79; [75 04 6B, 05, 05]
-0F8B; [73 A4, 05, 05]
+11C99; [75 04 72, 05, 05]
-0F71; [73 A6, 05, 05]
+11C7A; [75 04 79, 05, 05]
-0F72; [73 A8, 05, 05]
+11C9A; [75 04 80, 05, 05]
-0F71 0F72; [73 AA, 05, 05]
-0F73; [73 AA, 05, 05]
+11C7B; [75 04 87, 05, 05]
-0F80; [73 AC, 05, 05]
+11C9B; [75 04 8E, 05, 05]
-0F71 0F80; [73 AE, 05, 05]
-0F81; [73 AE, 05, 05]
+11C7C; [75 04 95, 05, 05]
-0F74; [73 B0, 05, 05]
+11C9C; [75 04 9C, 05, 05]
-0F71 0F74; [73 B2, 05, 05]
-0F75; [73 B2, 05, 05]
+11C7D; [75 04 A3, 05, 05]
-0F76; [73 B4, 05, 05]
-0FB2 0F80; [73 B4, 05, 05]
+11C9D; [75 04 AA, 05, 05]
-0F77; [73 B6, 05, 05]
-0FB2 0F71 0F80; [73 B6, 05, 05]
-0FB2 0F81; [73 B6, 05, 05]
+11C7E; [75 04 B1, 05, 05]
-0F78; [73 B8, 05, 05]
-0FB3 0F80; [73 B8, 05, 05]
+11C9E; [75 04 B8, 05, 05]
-0F79; [73 BA, 05, 05]
-0FB3 0F71 0F80; [73 BA, 05, 05]
-0FB3 0F81; [73 BA, 05, 05]
+11C7F; [75 04 BF, 05, 05]
-0F7A; [73 BC, 05, 05]
+11C9F; [75 04 C6, 05, 05]
-0F7B; [73 BE, 05, 05]
+11C80; [75 04 CD, 05, 05]
-0F7C; [73 C0, 05, 05]
+11CA0; [75 04 D4, 05, 05]
-0F7D; [73 C2, 05, 05]
+11C81; [75 04 DB, 05, 05]
-0F84; [73 C4, 05, 05]
+11CA1; [75 04 E2, 05, 05]
-FDD1 11A0B; [73 C6 02, 05, 05] # Zanabazar_Square first primary (compressible)
+11C82; [75 04 E9, 05, 05]
-11A0B; [73 C6 09, 05, 05]
+11CA2; [75 04 F0, 05, 05]
-11A32; [73 C6 10, 05, 05]
+11C83; [75 04 F7, 05, 05]
-11A0C; [73 C6 17, 05, 05]
+11CA3; [75 04 FE, 05, 05]
-11A0D; [73 C6 1E, 05, 05]
+11C84; [75 05 07, 05, 05]
-11A0E; [73 C6 25, 05, 05]
+11CA4; [75 05 0E, 05, 05]
-11A0F; [73 C6 2C, 05, 05]
+11C85; [75 05 15, 05, 05]
-11A10; [73 C6 33, 05, 05]
+11CA5; [75 05 1C, 05, 05]
-11A11; [73 C6 3A, 05, 05]
+11C86; [75 05 23, 05, 05]
-11A12; [73 C6 41, 05, 05]
+11CA6; [75 05 2A, 05, 05]
-11A13; [73 C6 48, 05, 05]
+11C87; [75 05 31, 05, 05]
-11A14; [73 C6 4F, 05, 05]
+11CA7; [75 05 38, 05, 05]
-11A15; [73 C6 56, 05, 05]
+11C88; [75 05 3F, 05, 05]
-11A16; [73 C6 5D, 05, 05]
+11C89; [75 05 46, 05, 05]
-11A17; [73 C6 64, 05, 05]
+11CA9; [75 05 4D, 05, 05]
-11A18; [73 C6 6B, 05, 05]
+11C8A; [75 05 54, 05, 05]
-11A19; [73 C6 72, 05, 05]
+11CAA; [75 05 5B, 05, 05]
-11A1A; [73 C6 79, 05, 05]
+11C8B; [75 05 62, 05, 05]
-11A1B; [73 C6 80, 05, 05]
+11CAB; [75 05 69, 05, 05]
-11A1C; [73 C6 87, 05, 05]
+11C8C; [75 05 70, 05, 05]
-11A1D; [73 C6 8E, 05, 05]
+11CAC; [75 05 77, 05, 05]
-11A1E; [73 C6 95, 05, 05]
+11C8D; [75 05 7E, 05, 05]
-11A1F; [73 C6 9C, 05, 05]
+11CAD; [75 05 85, 05, 05]
-11A20; [73 C6 A3, 05, 05]
+11C8E; [75 05 8C, 05, 05]
-11A21; [73 C6 AA, 05, 05]
+11CAE; [75 05 93, 05, 05]
-11A22; [73 C6 B1, 05, 05]
+11C8F; [75 05 9A, 05, 05]
-11A23; [73 C6 B8, 05, 05]
+11CAF; [75 05 A1, 05, 05]
-11A24; [73 C6 BF, 05, 05]
+11CB0; [75 05 A8, 05, 05]
-11A25; [73 C6 C6, 05, 05]
+11CB1; [75 05 AF, 05, 05]
-11A26; [73 C6 CD, 05, 05]
+11CB2; [75 05 B6, 05, 05]
-11A27; [73 C6 D4, 05, 05]
+11CB3; [75 05 BD, 05, 05]
-11A28; [73 C6 DB, 05, 05]
+11CB4; [75 05 C4, 05, 05]
-11A29; [73 C6 E2, 05, 05]
+FDD1 1C00; [75 06 02, 05, 05] # Lepcha first primary (compressible)
-11A2A; [73 C8, 05, 05]
-11A3B; [73 C8, 05, 20]
+1C00; [75 06 09, 05, 05]
-11A2B; [73 CA, 05, 05]
-11A3A; [73 CA, 05, 20]
-11A3C; [73 CA, 05, 2E]
+1C01; [75 06 10, 05, 05]
-11A2C; [73 CC, 05, 05]
-11A3D; [73 CC, 05, 20]
+1C02; [75 06 17, 05, 05]
-11A2D; [73 CE, 05, 05]
-11A3E; [73 CE, 05, 20]
+1C03; [75 06 1E, 05, 05]
-11A2E; [73 D0 02, 05, 05]
+1C04; [75 06 25, 05, 05]
-11A2F; [73 D0 09, 05, 05]
+1C05; [75 06 2C, 05, 05]
-11A30; [73 D0 10, 05, 05]
+1C06; [75 06 33, 05, 05]
-11A31; [73 D0 17, 05, 05]
+1C07; [75 06 3A, 05, 05]
-11A00; [73 D0 1E, 05, 05]
+1C08; [75 06 41, 05, 05]
-11A01; [73 D0 25, 05, 05]
+1C09; [75 06 48, 05, 05]
-11A02; [73 D0 2C, 05, 05]
+1C4D; [75 06 4F, 05, 05]
-11A03; [73 D0 33, 05, 05]
+1C4E; [75 06 56, 05, 05]
-11A04; [73 D0 3A, 05, 05]
+1C4F; [75 06 5D, 05, 05]
-11A05; [73 D0 41, 05, 05]
+1C0A; [75 06 64, 05, 05]
-11A06; [73 D0 48, 05, 05]
+1C0B; [75 06 6B, 05, 05]
-11A07; [73 D0 4F, 05, 05]
+1C0C; [75 06 72, 05, 05]
-11A08; [73 D0 56, 05, 05]
+1C0D; [75 06 79, 05, 05]
-11A09; [73 D0 5D, 05, 05]
+1C0E; [75 06 80, 05, 05]
-11A0A; [73 D0 64, 05, 05]
+1C0F; [75 06 87, 05, 05]
-11A34; [73 D0 6B, 05, 05]
+1C10; [75 06 8E, 05, 05]
-11A47; [73 D0 72, 05, 05]
+1C11; [75 06 95, 05, 05]
-FDD1 11A5C; [73 D1 02, 05, 05] # Soyombo first primary (compressible)
+1C12; [75 06 9C, 05, 05]
-11A50; [73 D1 09, 05, 05]
+1C13; [75 06 A3, 05, 05]
-11A51; [73 D1 10, 05, 05]
+1C14; [75 06 AA, 05, 05]
-11A52; [73 D1 17, 05, 05]
+1C15; [75 06 B1, 05, 05]
-11A53; [73 D1 1E, 05, 05]
+1C16; [75 06 B8, 05, 05]
-11A59; [73 D1 25, 05, 05]
+1C17; [75 06 BF, 05, 05]
-11A5A; [73 D1 2C, 05, 05]
+1C18; [75 06 C6, 05, 05]
-11A54; [73 D1 33, 05, 05]
+1C19; [75 06 CD, 05, 05]
-11A56; [73 D1 3A, 05, 05]
+1C1A; [75 06 D4, 05, 05]
-11A55; [73 D1 41, 05, 05]
+1C24; [75 06 DB, 05, 05]
-11A57; [73 D1 48, 05, 05]
+1C1B; [75 06 E2, 05, 05]
-11A58; [73 D1 4F, 05, 05]
+1C25; [75 06 E9, 05, 05]
-11A5B; [73 D1 56, 05, 05]
+1C1C; [75 06 F0, 05, 05]
-11A5C; [73 D3, 05, 05]
-11A8A; [73 D3, 05, 20]
+1C1D; [75 06 F7, 05, 05]
-11A83; [73 D5, 05, 05]
+1C1E; [75 06 FE, 05, 05]
-11A5D; [73 D7, 05, 05]
-11A8B; [73 D7, 05, 20]
+1C1F; [75 07 07, 05, 05]
-11A5E; [73 D9 02, 05, 05]
+1C20; [75 07 0E, 05, 05]
-11A5F; [73 D9 09, 05, 05]
+1C21; [75 07 15, 05, 05]
-11A60; [73 DB, 05, 05]
-11A8C; [73 DB, 05, 20]
+1C22; [75 07 1C, 05, 05]
-11A61; [73 DD 02, 05, 05]
+1C23; [75 07 23, 05, 05]
-11A62; [73 DD 09, 05, 05]
+1C36; [75 07 2A, 05, 05]
-11A63; [73 DD 10, 05, 05]
+1C26; [75 07 31, 05, 05]
-11A64; [73 DD 17, 05, 05]
+1C27; [75 07 38, 05, 05]
-11A65; [73 DD 1E, 05, 05]
+1C28; [75 07 3F, 05, 05]
-11A66; [73 DD 25, 05, 05]
+1C29; [75 07 46, 05, 05]
-11A67; [73 DD 2C, 05, 05]
+1C2A; [75 07 4D, 05, 05]
-11A68; [73 DD 33, 05, 05]
+1C2B; [75 07 54, 05, 05]
-11A69; [73 DD 3A, 05, 05]
+1C2C; [75 07 5B, 05, 05]
-11A6A; [73 DD 41, 05, 05]
+1C2D; [75 07 62, 05, 05]
-11A6B; [73 DF, 05, 05]
-11A8D; [73 DF, 05, 20]
+1C2E; [75 07 69, 05, 05]
-11A6C; [73 E1 02, 05, 05]
+1C2F; [75 07 70, 05, 05]
-11A6D; [73 E1 09, 05, 05]
+1C30; [75 07 77, 05, 05]
-11A6E; [73 E1 10, 05, 05]
+1C31; [75 07 7E, 05, 05]
-11A6F; [73 E3, 05, 05]
-11A8E; [73 E3, 05, 20]
+1C32; [75 07 85, 05, 05]
-11A70; [73 E5, 05, 05]
-11A8F; [73 E5, 05, 20]
+1C33; [75 07 8C, 05, 05]
-11A71; [73 E7 02, 05, 05]
+1C34; [75 07 93, 05, 05]
-11A72; [73 E7 09, 05, 05]
+1C35; [75 07 9A, 05, 05]
-11A73; [73 E7 10, 05, 05]
+FDD1 A840; [75 08 02, 05, 05] # Phags-pa first primary (compressible)
-11A74; [73 E9, 05, 05]
-11A90; [73 E9, 05, 20]
+A840; [75 08 09, 05, 05]
-11A75; [73 EB 02, 05, 05]
+A841; [75 08 10, 05, 05]
-11A76; [73 EB 09, 05, 05]
+A842; [75 08 17, 05, 05]
-11A77; [73 EB 10, 05, 05]
+A843; [75 08 1E, 05, 05]
-11A78; [73 EB 17, 05, 05]
+A844; [75 08 25, 05, 05]
-11A79; [73 EB 1E, 05, 05]
+A845; [75 08 2C, 05, 05]
-11A7A; [73 ED, 05, 05]
-11A95; [73 ED, 05, 20]
+A846; [75 08 33, 05, 05]
-11A7B; [73 EF, 05, 05]
+A847; [75 08 3A, 05, 05]
-11A7C; [73 F1, 05, 05]
-11A86; [73 F1, 05, 20]
-11A91; [73 F1, 05, 2E]
+A869; [75 08 41, 05, 05]
-11A7D; [73 F3, 05, 05]
-11A87; [73 F3, 05, 20]
-11A92; [73 F3, 05, 2E]
+A86A; [75 08 48, 05, 05]
-11A7E; [73 F5, 05, 05]
+A86B; [75 08 4F, 05, 05]
-11A7F; [73 F7, 05, 05]
-11A88; [73 F7, 05, 20]
-11A93; [73 F7, 05, 2E]
+A86C; [75 08 56, 05, 05]
-11A80; [73 F9, 05, 05]
+A848; [75 08 5D, 05, 05]
-11A81; [73 FB, 05, 05]
-11A89; [73 FB, 05, 20]
-11A94; [73 FB, 05, 2E]
+A849; [75 08 64, 05, 05]
-11A82; [73 FD 02, 05, 05]
+A84A; [75 08 6B, 05, 05]
-11A99; [73 FD 09, 05, 05]
+A84B; [75 08 72, 05, 05]
-FDD1 11C72; [74 04 02, 05, 05] # Marchen first primary starts new lead byte (compressible)
+A84C; [75 08 79, 05, 05]
-11C72; [74 04 09, 05, 05]
+A84D; [75 08 80, 05, 05]
-11C92; [74 04 10, 05, 05]
+A84E; [75 08 87, 05, 05]
-11C73; [74 04 17, 05, 05]
+A84F; [75 08 8E, 05, 05]
-11C93; [74 04 1E, 05, 05]
+A850; [75 08 95, 05, 05]
-11C74; [74 04 25, 05, 05]
+A851; [75 08 9C, 05, 05]
-11C94; [74 04 2C, 05, 05]
+A852; [75 08 A3, 05, 05]
-11C75; [74 04 33, 05, 05]
+A853; [75 08 AA, 05, 05]
-11C95; [74 04 3A, 05, 05]
+A867; [75 08 B1, 05, 05]
-11C76; [74 04 41, 05, 05]
+A854; [75 08 B8, 05, 05]
-11C96; [74 04 48, 05, 05]
+A855; [75 08 BF, 05, 05]
-11C77; [74 04 4F, 05, 05]
+A856; [75 08 C6, 05, 05]
-11C97; [74 04 56, 05, 05]
+A857; [75 08 CD, 05, 05]
-11C78; [74 04 5D, 05, 05]
+A868; [75 08 D4, 05, 05]
-11C98; [74 04 64, 05, 05]
+A86D; [75 08 DB, 05, 05]
-11C79; [74 04 6B, 05, 05]
+A858; [75 08 E2, 05, 05]
-11C99; [74 04 72, 05, 05]
+A871; [75 08 E9, 05, 05]
-11C7A; [74 04 79, 05, 05]
+A872; [75 08 F0, 05, 05]
-11C9A; [74 04 80, 05, 05]
+A859; [75 08 F7, 05, 05]
-11C7B; [74 04 87, 05, 05]
+A85A; [75 08 FE, 05, 05]
-11C9B; [74 04 8E, 05, 05]
+A86E; [75 09 07, 05, 05]
-11C7C; [74 04 95, 05, 05]
+A85B; [75 09 0E, 05, 05]
-11C9C; [74 04 9C, 05, 05]
+A85C; [75 09 15, 05, 05]
-11C7D; [74 04 A3, 05, 05]
+A86F; [75 09 1C, 05, 05]
-11C9D; [74 04 AA, 05, 05]
+A870; [75 09 23, 05, 05]
-11C7E; [74 04 B1, 05, 05]
+A85D; [75 09 2A, 05, 05]
-11C9E; [74 04 B8, 05, 05]
+A862; [75 09 31, 05, 05]
-11C7F; [74 04 BF, 05, 05]
+A863; [75 09 38, 05, 05]
-11C9F; [74 04 C6, 05, 05]
+A864; [75 09 3F, 05, 05]
-11C80; [74 04 CD, 05, 05]
+A865; [75 09 46, 05, 05]
-11CA0; [74 04 D4, 05, 05]
+A85E; [75 09 4D, 05, 05]
-11C81; [74 04 DB, 05, 05]
+A85F; [75 09 54, 05, 05]
-11CA1; [74 04 E2, 05, 05]
+A860; [75 09 5B, 05, 05]
-11C82; [74 04 E9, 05, 05]
+A861; [75 09 62, 05, 05]
-11CA2; [74 04 F0, 05, 05]
+A866; [75 09 69, 05, 05]
-11C83; [74 04 F7, 05, 05]
+A873; [75 09 70, 05, 05]
-11CA3; [74 04 FE, 05, 05]
+FDD1 1900; [75 0A 02, 05, 05] # LIMBU first primary (compressible)
-11C84; [74 05 07, 05, 05]
+1900; [75 0A 09, 05, 05]
-11CA4; [74 05 0E, 05, 05]
+1901; [75 0A 10, 05, 05]
-11C85; [74 05 15, 05, 05]
+1902; [75 0A 17, 05, 05]
-11CA5; [74 05 1C, 05, 05]
+1903; [75 0A 1E, 05, 05]
-11C86; [74 05 23, 05, 05]
+1904; [75 0A 25, 05, 05]
-11CA6; [74 05 2A, 05, 05]
+1905; [75 0A 2C, 05, 05]
-11C87; [74 05 31, 05, 05]
+1906; [75 0A 33, 05, 05]
-11CA7; [74 05 38, 05, 05]
+1907; [75 0A 3A, 05, 05]
-11C88; [74 05 3F, 05, 05]
+1908; [75 0C, 05, 05]
+191D; [75 0C, 05, 20][75 14, 05, 20]
-11C89; [74 05 46, 05, 05]
+1909; [75 0E 02, 05, 05]
-11CA9; [74 05 4D, 05, 05]
+190A; [75 0E 09, 05, 05]
-11C8A; [74 05 54, 05, 05]
+190B; [75 10, 05, 05]
+191E; [75 10, 05, 20][75 16, 05, 20]
-11CAA; [74 05 5B, 05, 05]
+190C; [75 12 02, 05, 05]
-11C8B; [74 05 62, 05, 05]
+190D; [75 12 09, 05, 05]
-11CAB; [74 05 69, 05, 05]
+190E; [75 12 10, 05, 05]
-11C8C; [74 05 70, 05, 05]
+190F; [75 12 17, 05, 05]
-11CAC; [74 05 77, 05, 05]
+1910; [75 12 1E, 05, 05]
-11C8D; [74 05 7E, 05, 05]
+1911; [75 12 25, 05, 05]
-11CAD; [74 05 85, 05, 05]
+1912; [75 12 2C, 05, 05]
-11C8E; [74 05 8C, 05, 05]
+1913; [75 12 33, 05, 05]
-11CAE; [74 05 93, 05, 05]
+1914; [75 12 3A, 05, 05]
-11C8F; [74 05 9A, 05, 05]
+1915; [75 12 41, 05, 05]
-11CAF; [74 05 A1, 05, 05]
+1916; [75 12 48, 05, 05]
-11CB0; [74 05 A8, 05, 05]
+1917; [75 12 4F, 05, 05]
-11CB1; [74 05 AF, 05, 05]
+1918; [75 12 56, 05, 05]
-11CB2; [74 05 B6, 05, 05]
+1919; [75 12 5D, 05, 05]
-11CB3; [74 05 BD, 05, 05]
+191A; [75 12 64, 05, 05]
-11CB4; [74 05 C4, 05, 05]
+191B; [75 12 6B, 05, 05]
-FDD1 1C00; [74 06 02, 05, 05] # Lepcha first primary (compressible)
+191C; [75 12 72, 05, 05]
-1C00; [74 06 09, 05, 05]
+1920; [75 12 79, 05, 05]
-1C01; [74 06 10, 05, 05]
+1921; [75 12 80, 05, 05]
-1C02; [74 06 17, 05, 05]
+1922; [75 12 87, 05, 05]
-1C03; [74 06 1E, 05, 05]
+1923; [75 12 8E, 05, 05]
-1C04; [74 06 25, 05, 05]
+1924; [75 12 95, 05, 05]
-1C05; [74 06 2C, 05, 05]
+1925; [75 12 9C, 05, 05]
-1C06; [74 06 33, 05, 05]
+1926; [75 12 A3, 05, 05]
-1C07; [74 06 3A, 05, 05]
+1927; [75 12 AA, 05, 05]
-1C08; [74 06 41, 05, 05]
+1928; [75 12 B1, 05, 05]
-1C09; [74 06 48, 05, 05]
+1929; [75 14, 05, 05]
-1C4D; [74 06 4F, 05, 05]
+192A; [75 16, 05, 05]
-1C4E; [74 06 56, 05, 05]
+192B; [75 18 02, 05, 05]
-1C4F; [74 06 5D, 05, 05]
+1930; [75 18 09, 05, 05]
-1C0A; [74 06 64, 05, 05]
+1931; [75 18 10, 05, 05]
-1C0B; [74 06 6B, 05, 05]
+1932; [75 18 17, 05, 05]
-1C0C; [74 06 72, 05, 05]
+1933; [75 18 1E, 05, 05]
-1C0D; [74 06 79, 05, 05]
+1934; [75 18 25, 05, 05]
-1C0E; [74 06 80, 05, 05]
+1935; [75 18 2C, 05, 05]
-1C0F; [74 06 87, 05, 05]
+1936; [75 18 33, 05, 05]
-1C10; [74 06 8E, 05, 05]
+1937; [75 18 3A, 05, 05]
-1C11; [74 06 95, 05, 05]
+1938; [75 18 41, 05, 05]
-1C12; [74 06 9C, 05, 05]
+FDD1 1703; [75 19 02, 05, 05] # TAGALOG first primary (compressible)
-1C13; [74 06 A3, 05, 05]
+1700; [75 19 09, 05, 05]
-1C14; [74 06 AA, 05, 05]
+1701; [75 19 10, 05, 05]
-1C15; [74 06 B1, 05, 05]
+1702; [75 19 17, 05, 05]
-1C16; [74 06 B8, 05, 05]
+1703; [75 19 1E, 05, 05]
-1C17; [74 06 BF, 05, 05]
+1704; [75 19 25, 05, 05]
-1C18; [74 06 C6, 05, 05]
+1705; [75 19 2C, 05, 05]
-1C19; [74 06 CD, 05, 05]
+1706; [75 19 33, 05, 05]
-1C1A; [74 06 D4, 05, 05]
+1707; [75 19 3A, 05, 05]
-1C24; [74 06 DB, 05, 05]
+1708; [75 19 41, 05, 05]
-1C1B; [74 06 E2, 05, 05]
+1709; [75 19 48, 05, 05]
-1C25; [74 06 E9, 05, 05]
+170A; [75 19 4F, 05, 05]
-1C1C; [74 06 F0, 05, 05]
+170B; [75 19 56, 05, 05]
-1C1D; [74 06 F7, 05, 05]
+170C; [75 19 5D, 05, 05]
-1C1E; [74 06 FE, 05, 05]
+170E; [75 19 64, 05, 05]
-1C1F; [74 07 07, 05, 05]
+170F; [75 19 6B, 05, 05]
-1C20; [74 07 0E, 05, 05]
+1710; [75 19 72, 05, 05]
-1C21; [74 07 15, 05, 05]
+1711; [75 19 79, 05, 05]
-1C22; [74 07 1C, 05, 05]
+1712; [75 19 80, 05, 05]
-1C23; [74 07 23, 05, 05]
+1713; [75 19 87, 05, 05]
-1C36; [74 07 2A, 05, 05]
+1714; [75 19 8E, 05, 05]
-1C26; [74 07 31, 05, 05]
+FDD1 1723; [75 1A 02, 05, 05] # HANUNOO first primary (compressible)
-1C27; [74 07 38, 05, 05]
+1720; [75 1A 09, 05, 05]
-1C28; [74 07 3F, 05, 05]
+1721; [75 1A 10, 05, 05]
-1C29; [74 07 46, 05, 05]
+1722; [75 1A 17, 05, 05]
-1C2A; [74 07 4D, 05, 05]
+1723; [75 1A 1E, 05, 05]
-1C2B; [74 07 54, 05, 05]
+1724; [75 1A 25, 05, 05]
-1C2C; [74 07 5B, 05, 05]
+1725; [75 1A 2C, 05, 05]
-1C2D; [74 07 62, 05, 05]
+1726; [75 1A 33, 05, 05]
-1C2E; [74 07 69, 05, 05]
+1727; [75 1A 3A, 05, 05]
-1C2F; [74 07 70, 05, 05]
+1728; [75 1A 41, 05, 05]
-1C30; [74 07 77, 05, 05]
+1729; [75 1A 48, 05, 05]
-1C31; [74 07 7E, 05, 05]
+172A; [75 1A 4F, 05, 05]
-1C32; [74 07 85, 05, 05]
+172B; [75 1A 56, 05, 05]
-1C33; [74 07 8C, 05, 05]
+172C; [75 1A 5D, 05, 05]
-1C34; [74 07 93, 05, 05]
+172D; [75 1A 64, 05, 05]
-1C35; [74 07 9A, 05, 05]
+172E; [75 1A 6B, 05, 05]
-FDD1 A840; [74 08 02, 05, 05] # Phags-pa first primary (compressible)
+172F; [75 1A 72, 05, 05]
-A840; [74 08 09, 05, 05]
+1730; [75 1A 79, 05, 05]
-A841; [74 08 10, 05, 05]
+1731; [75 1A 80, 05, 05]
-A842; [74 08 17, 05, 05]
+1732; [75 1A 87, 05, 05]
-A843; [74 08 1E, 05, 05]
+1733; [75 1A 8E, 05, 05]
-A844; [74 08 25, 05, 05]
+1734; [75 1A 95, 05, 05]
-A845; [74 08 2C, 05, 05]
+FDD1 1743; [75 1B 02, 05, 05] # BUHID first primary (compressible)
-A846; [74 08 33, 05, 05]
+1740; [75 1B 09, 05, 05]
-A847; [74 08 3A, 05, 05]
+1741; [75 1B 10, 05, 05]
-A869; [74 08 41, 05, 05]
+1742; [75 1B 17, 05, 05]
-A86A; [74 08 48, 05, 05]
+1743; [75 1B 1E, 05, 05]
-A86B; [74 08 4F, 05, 05]
+1744; [75 1B 25, 05, 05]
-A86C; [74 08 56, 05, 05]
+1745; [75 1B 2C, 05, 05]
-A848; [74 08 5D, 05, 05]
+1746; [75 1B 33, 05, 05]
-A849; [74 08 64, 05, 05]
+1747; [75 1B 3A, 05, 05]
-A84A; [74 08 6B, 05, 05]
+1748; [75 1B 41, 05, 05]
-A84B; [74 08 72, 05, 05]
+1749; [75 1B 48, 05, 05]
-A84C; [74 08 79, 05, 05]
+174A; [75 1B 4F, 05, 05]
-A84D; [74 08 80, 05, 05]
+174B; [75 1B 56, 05, 05]
-A84E; [74 08 87, 05, 05]
+174C; [75 1B 5D, 05, 05]
-A84F; [74 08 8E, 05, 05]
+174D; [75 1B 64, 05, 05]
-A850; [74 08 95, 05, 05]
+174E; [75 1B 6B, 05, 05]
-A851; [74 08 9C, 05, 05]
+174F; [75 1B 72, 05, 05]
-A852; [74 08 A3, 05, 05]
+1750; [75 1B 79, 05, 05]
-A853; [74 08 AA, 05, 05]
+1751; [75 1B 80, 05, 05]
-A867; [74 08 B1, 05, 05]
+1752; [75 1B 87, 05, 05]
-A854; [74 08 B8, 05, 05]
+1753; [75 1B 8E, 05, 05]
-A855; [74 08 BF, 05, 05]
+FDD1 1763; [75 1C 02, 05, 05] # TAGBANWA first primary (compressible)
-A856; [74 08 C6, 05, 05]
+1760; [75 1C 09, 05, 05]
-A857; [74 08 CD, 05, 05]
+1761; [75 1C 10, 05, 05]
-A868; [74 08 D4, 05, 05]
+1762; [75 1C 17, 05, 05]
-A86D; [74 08 DB, 05, 05]
+1763; [75 1C 1E, 05, 05]
-A858; [74 08 E2, 05, 05]
+1764; [75 1C 25, 05, 05]
-A871; [74 08 E9, 05, 05]
+1765; [75 1C 2C, 05, 05]
-A872; [74 08 F0, 05, 05]
+1766; [75 1C 33, 05, 05]
-A859; [74 08 F7, 05, 05]
+1767; [75 1C 3A, 05, 05]
-A85A; [74 08 FE, 05, 05]
+1768; [75 1C 41, 05, 05]
-A86E; [74 09 07, 05, 05]
+1769; [75 1C 48, 05, 05]
-A85B; [74 09 0E, 05, 05]
+176A; [75 1C 4F, 05, 05]
-A85C; [74 09 15, 05, 05]
+176B; [75 1C 56, 05, 05]
-A86F; [74 09 1C, 05, 05]
+176C; [75 1C 5D, 05, 05]
-A870; [74 09 23, 05, 05]
+176E; [75 1C 64, 05, 05]
-A85D; [74 09 2A, 05, 05]
+176F; [75 1C 6B, 05, 05]
-A862; [74 09 31, 05, 05]
+1770; [75 1C 72, 05, 05]
-A863; [74 09 38, 05, 05]
+1772; [75 1C 79, 05, 05]
-A864; [74 09 3F, 05, 05]
+1773; [75 1C 80, 05, 05]
-A865; [74 09 46, 05, 05]
+FDD1 1A00; [75 1D 02, 05, 05] # BUGINESE first primary (compressible)
-A85E; [74 09 4D, 05, 05]
+1A00; [75 1D 09, 05, 05]
-A85F; [74 09 54, 05, 05]
+1A01; [75 1D 10, 05, 05]
-A860; [74 09 5B, 05, 05]
+1A02; [75 1D 17, 05, 05]
-A861; [74 09 62, 05, 05]
+1A03; [75 1D 1E, 05, 05]
-A866; [74 09 69, 05, 05]
+1A04; [75 1D 25, 05, 05]
-A873; [74 09 70, 05, 05]
+1A05; [75 1D 2C, 05, 05]
-FDD1 1900; [74 0A 02, 05, 05] # LIMBU first primary (compressible)
+1A06; [75 1D 33, 05, 05]
-1900; [74 0A 09, 05, 05]
+1A07; [75 1D 3A, 05, 05]
-1901; [74 0A 10, 05, 05]
+1A08; [75 1D 41, 05, 05]
-1902; [74 0A 17, 05, 05]
+1A09; [75 1D 48, 05, 05]
-1903; [74 0A 1E, 05, 05]
+1A0A; [75 1D 4F, 05, 05]
-1904; [74 0A 25, 05, 05]
+1A0B; [75 1D 56, 05, 05]
-1905; [74 0A 2C, 05, 05]
+1A0C; [75 1D 5D, 05, 05]
-1906; [74 0A 33, 05, 05]
+1A0D; [75 1D 64, 05, 05]
-1907; [74 0A 3A, 05, 05]
+1A0E; [75 1D 6B, 05, 05]
-1908; [74 0C, 05, 05]
-191D; [74 0C, 05, 20][74 14, 05, 20]
+1A0F; [75 1D 72, 05, 05]
-1909; [74 0E 02, 05, 05]
+1A10; [75 1D 79, 05, 05]
-190A; [74 0E 09, 05, 05]
+1A11; [75 1D 80, 05, 05]
-190B; [74 10, 05, 05]
-191E; [74 10, 05, 20][74 16, 05, 20]
+1A12; [75 1D 87, 05, 05]
-190C; [74 12 02, 05, 05]
+1A13; [75 1D 8E, 05, 05]
-190D; [74 12 09, 05, 05]
+1A14; [75 1D 95, 05, 05]
-190E; [74 12 10, 05, 05]
+1A15; [75 1D 9C, 05, 05]
-190F; [74 12 17, 05, 05]
+1A16; [75 1D A3, 05, 05]
-1910; [74 12 1E, 05, 05]
+1A17; [75 1D AA, 05, 05]
-1911; [74 12 25, 05, 05]
+1A18; [75 1D B1, 05, 05]
-1912; [74 12 2C, 05, 05]
+1A19; [75 1D B8, 05, 05]
-1913; [74 12 33, 05, 05]
+1A1A; [75 1D BF, 05, 05]
-1914; [74 12 3A, 05, 05]
+1A1B; [75 1D C6, 05, 05]
-1915; [74 12 41, 05, 05]
+FDD1 11EE5; [75 1E 02, 05, 05] # Makasar first primary (compressible)
-1916; [74 12 48, 05, 05]
+11EE0; [75 1E 09, 05, 05]
-1917; [74 12 4F, 05, 05]
+11EE1; [75 1E 10, 05, 05]
-1918; [74 12 56, 05, 05]
+11EE2; [75 1E 17, 05, 05]
-1919; [74 12 5D, 05, 05]
+11EE3; [75 1E 1E, 05, 05]
-191A; [74 12 64, 05, 05]
+11EE4; [75 1E 25, 05, 05]
-191B; [74 12 6B, 05, 05]
+11EE5; [75 1E 2C, 05, 05]
-191C; [74 12 72, 05, 05]
+11EE6; [75 1E 33, 05, 05]
-1920; [74 12 79, 05, 05]
+11EE7; [75 1E 3A, 05, 05]
-1921; [74 12 80, 05, 05]
+11EE8; [75 1E 41, 05, 05]
-1922; [74 12 87, 05, 05]
+11EE9; [75 1E 48, 05, 05]
-1923; [74 12 8E, 05, 05]
+11EEA; [75 1E 4F, 05, 05]
-1924; [74 12 95, 05, 05]
+11EEB; [75 1E 56, 05, 05]
-1925; [74 12 9C, 05, 05]
+11EEC; [75 1E 5D, 05, 05]
-1926; [74 12 A3, 05, 05]
+11EED; [75 1E 64, 05, 05]
-1927; [74 12 AA, 05, 05]
+11EEE; [75 1E 6B, 05, 05]
-1928; [74 12 B1, 05, 05]
+11EEF; [75 1E 72, 05, 05]
-1929; [74 14, 05, 05]
+11EF0; [75 1E 79, 05, 05]
-192A; [74 16, 05, 05]
+11EF1; [75 1E 80, 05, 05]
-192B; [74 18 02, 05, 05]
+11EF2; [75 1E 87, 05, 05]
-1930; [74 18 09, 05, 05]
+11EF3; [75 1E 8E, 05, 05]
-1931; [74 18 10, 05, 05]
+11EF4; [75 1E 95, 05, 05]
-1932; [74 18 17, 05, 05]
+11EF5; [75 1E 9C, 05, 05]
-1933; [74 18 1E, 05, 05]
+11EF6; [75 1E A3, 05, 05]
-1934; [74 18 25, 05, 05]
+FDD1 1BC0; [75 1F 02, 05, 05] # Batak first primary (compressible)
-1935; [74 18 2C, 05, 05]
+1BC0; [75 21, 05, 05]
+1BC1; [75 21, 05, 20]
-1936; [74 18 33, 05, 05]
+1BC2; [75 23, 05, 05]
+1BC3; [75 23, 05, 20]
+1BC4; [75 23, 05, 20]
-1937; [74 18 3A, 05, 05]
+1BC5; [75 25, 05, 05]
+1BC6; [75 25, 05, 20]
-1938; [74 18 41, 05, 05]
+1BC7; [75 27, 05, 05]
+1BC8; [75 27, 05, 20]
-FDD1 1703; [74 19 02, 05, 05] # TAGALOG first primary (compressible)
+1BC9; [75 29, 05, 05]
+1BCA; [75 29, 05, 20]
-1700; [74 19 09, 05, 05]
+1BCB; [75 2B, 05, 05]
+1BCC; [75 2B, 05, 20]
+1BCD; [75 2B, 05, 20]
-1701; [74 19 10, 05, 05]
+1BCE; [75 2D, 05, 05]
+1BCF; [75 2D, 05, 20]
-1702; [74 19 17, 05, 05]
+1BD0; [75 2F 02, 05, 05]
-1703; [74 19 1E, 05, 05]
+1BD1; [75 2F 09, 05, 05]
-1704; [74 19 25, 05, 05]
+1BD2; [75 31, 05, 05]
+1BD3; [75 31, 05, 20]
-1705; [74 19 2C, 05, 05]
+1BD4; [75 33, 05, 05]
+1BD5; [75 33, 05, 20]
-1706; [74 19 33, 05, 05]
+1BD6; [75 35, 05, 05]
+1BD7; [75 35, 05, 20]
-1707; [74 19 3A, 05, 05]
+1BD8; [75 37, 05, 05]
+1BD9; [75 37, 05, 20]
+1BDA; [75 37, 05, 20]
-1708; [74 19 41, 05, 05]
+1BDB; [75 39, 05, 05]
+1BDC; [75 39, 05, 20]
-1709; [74 19 48, 05, 05]
+1BDD; [75 3B, 05, 05]
-170A; [74 19 4F, 05, 05]
+1BDE; [75 3D, 05, 05]
+1BDF; [75 3D, 05, 20]
-170B; [74 19 56, 05, 05]
+1BE0; [75 3F 02, 05, 05]
-170C; [74 19 5D, 05, 05]
+1BE1; [75 3F 09, 05, 05]
-170E; [74 19 64, 05, 05]
+1BE2; [75 3F 10, 05, 05]
-170F; [74 19 6B, 05, 05]
+1BE3; [75 3F 17, 05, 05]
-1710; [74 19 72, 05, 05]
+1BE4; [75 3F 1E, 05, 05]
-1711; [74 19 79, 05, 05]
+1BE5; [75 3F 25, 05, 05]
-1712; [74 19 80, 05, 05]
+1BE7; [75 41, 05, 05]
+1BE8; [75 41, 05, 20]
-1713; [74 19 87, 05, 05]
+1BE9; [75 43, 05, 05]
-1714; [74 19 8E, 05, 05]
+1BEA; [75 45, 05, 05]
+1BEB; [75 45, 05, 20]
-FDD1 1723; [74 1A 02, 05, 05] # HANUNOO first primary (compressible)
+1BEC; [75 47, 05, 05]
+1BED; [75 47, 05, 20]
-1720; [74 1A 09, 05, 05]
+1BEE; [75 49, 05, 05]
+1BEF; [75 49, 05, 20]
-1721; [74 1A 10, 05, 05]
+1BF0; [75 4B 02, 05, 05]
-1722; [74 1A 17, 05, 05]
+1BF1; [75 4B 09, 05, 05]
-1723; [74 1A 1E, 05, 05]
+1BF2; [75 4B 10, 05, 05]
-1724; [74 1A 25, 05, 05]
+1BF3; [75 4B 17, 05, 05]
-1725; [74 1A 2C, 05, 05]
+FDD1 A930; [75 4C 02, 05, 05] # Rejang first primary (compressible)
-1726; [74 1A 33, 05, 05]
+A930; [75 4C 09, 05, 05]
-1727; [74 1A 3A, 05, 05]
+A931; [75 4C 10, 05, 05]
-1728; [74 1A 41, 05, 05]
+A932; [75 4C 17, 05, 05]
-1729; [74 1A 48, 05, 05]
+A933; [75 4C 1E, 05, 05]
-172A; [74 1A 4F, 05, 05]
+A934; [75 4C 25, 05, 05]
-172B; [74 1A 56, 05, 05]
+A935; [75 4C 2C, 05, 05]
-172C; [74 1A 5D, 05, 05]
+A936; [75 4C 33, 05, 05]
-172D; [74 1A 64, 05, 05]
+A937; [75 4C 3A, 05, 05]
-172E; [74 1A 6B, 05, 05]
+A938; [75 4C 41, 05, 05]
-172F; [74 1A 72, 05, 05]
+A939; [75 4C 48, 05, 05]
-1730; [74 1A 79, 05, 05]
+A93A; [75 4C 4F, 05, 05]
-1731; [74 1A 80, 05, 05]
+A93B; [75 4C 56, 05, 05]
-1732; [74 1A 87, 05, 05]
+A93C; [75 4C 5D, 05, 05]
-1733; [74 1A 8E, 05, 05]
+A93D; [75 4C 64, 05, 05]
-1734; [74 1A 95, 05, 05]
+A93E; [75 4C 6B, 05, 05]
-FDD1 1743; [74 1B 02, 05, 05] # BUHID first primary (compressible)
+A93F; [75 4C 72, 05, 05]
-1740; [74 1B 09, 05, 05]
+A940; [75 4C 79, 05, 05]
-1741; [74 1B 10, 05, 05]
+A941; [75 4C 80, 05, 05]
-1742; [74 1B 17, 05, 05]
+A942; [75 4C 87, 05, 05]
-1743; [74 1B 1E, 05, 05]
+A943; [75 4C 8E, 05, 05]
-1744; [74 1B 25, 05, 05]
+A944; [75 4C 95, 05, 05]
-1745; [74 1B 2C, 05, 05]
+A945; [75 4C 9C, 05, 05]
-1746; [74 1B 33, 05, 05]
+A946; [75 4C A3, 05, 05]
-1747; [74 1B 3A, 05, 05]
+A947; [75 4C AA, 05, 05]
-1748; [74 1B 41, 05, 05]
+A948; [75 4C B1, 05, 05]
-1749; [74 1B 48, 05, 05]
+A949; [75 4C B8, 05, 05]
-174A; [74 1B 4F, 05, 05]
+A94A; [75 4C BF, 05, 05]
-174B; [74 1B 56, 05, 05]
+A94B; [75 4C C6, 05, 05]
-174C; [74 1B 5D, 05, 05]
+A94C; [75 4C CD, 05, 05]
-174D; [74 1B 64, 05, 05]
+A94D; [75 4C D4, 05, 05]
-174E; [74 1B 6B, 05, 05]
+A94E; [75 4C DB, 05, 05]
-174F; [74 1B 72, 05, 05]
+A94F; [75 4C E2, 05, 05]
-1750; [74 1B 79, 05, 05]
+A950; [75 4C E9, 05, 05]
-1751; [74 1B 80, 05, 05]
+A951; [75 4C F0, 05, 05]
-1752; [74 1B 87, 05, 05]
+A952; [75 4C F7, 05, 05]
-1753; [74 1B 8E, 05, 05]
+A953; [75 4C FE, 05, 05]
-FDD1 1763; [74 1C 02, 05, 05] # TAGBANWA first primary (compressible)
+FDD1 A90A; [75 4E 02, 05, 05] # Kayah Li first primary (compressible)
-1760; [74 1C 09, 05, 05]
+A90A; [75 4E 09, 05, 05]
-1761; [74 1C 10, 05, 05]
+A90B; [75 4E 10, 05, 05]
-1762; [74 1C 17, 05, 05]
+A90C; [75 4E 17, 05, 05]
-1763; [74 1C 1E, 05, 05]
+A90D; [75 4E 1E, 05, 05]
-1764; [74 1C 25, 05, 05]
+A90E; [75 4E 25, 05, 05]
-1765; [74 1C 2C, 05, 05]
+A90F; [75 4E 2C, 05, 05]
-1766; [74 1C 33, 05, 05]
+A910; [75 4E 33, 05, 05]
-1767; [74 1C 3A, 05, 05]
+A911; [75 4E 3A, 05, 05]
-1768; [74 1C 41, 05, 05]
+A912; [75 4E 41, 05, 05]
-1769; [74 1C 48, 05, 05]
+A913; [75 4E 48, 05, 05]
-176A; [74 1C 4F, 05, 05]
+A914; [75 4E 4F, 05, 05]
-176B; [74 1C 56, 05, 05]
+A915; [75 4E 56, 05, 05]
-176C; [74 1C 5D, 05, 05]
+A916; [75 4E 5D, 05, 05]
-176E; [74 1C 64, 05, 05]
+A917; [75 4E 64, 05, 05]
-176F; [74 1C 6B, 05, 05]
+A918; [75 4E 6B, 05, 05]
-1770; [74 1C 72, 05, 05]
+A919; [75 4E 72, 05, 05]
-1772; [74 1C 79, 05, 05]
+A91A; [75 4E 79, 05, 05]
-1773; [74 1C 80, 05, 05]
+A91B; [75 4E 80, 05, 05]
-FDD1 1A00; [74 1D 02, 05, 05] # BUGINESE first primary (compressible)
+A91C; [75 4E 87, 05, 05]
-1A00; [74 1D 09, 05, 05]
+A91D; [75 4E 8E, 05, 05]
-1A01; [74 1D 10, 05, 05]
+A91E; [75 4E 95, 05, 05]
-1A02; [74 1D 17, 05, 05]
+A91F; [75 4E 9C, 05, 05]
-1A03; [74 1D 1E, 05, 05]
+A920; [75 4E A3, 05, 05]
-1A04; [74 1D 25, 05, 05]
+A921; [75 4E AA, 05, 05]
-1A05; [74 1D 2C, 05, 05]
+A922; [75 4E B1, 05, 05]
-1A06; [74 1D 33, 05, 05]
+A923; [75 4E B8, 05, 05]
-1A07; [74 1D 3A, 05, 05]
+A924; [75 4E BF, 05, 05]
-1A08; [74 1D 41, 05, 05]
+A925; [75 4E C6, 05, 05]
-1A09; [74 1D 48, 05, 05]
+A926; [75 4E CD, 05, 05]
-1A0A; [74 1D 4F, 05, 05]
+A927; [75 4E D4, 05, 05]
-1A0B; [74 1D 56, 05, 05]
+A928; [75 4E DB, 05, 05]
-1A0C; [74 1D 5D, 05, 05]
+A929; [75 4E E2, 05, 05]
-1A0D; [74 1D 64, 05, 05]
+A92A; [75 4E E9, 05, 05]
-1A0E; [74 1D 6B, 05, 05]
+FDD1 1000; [75 4F 02, 05, 05] # MYANMAR first primary (compressible)
-1A0F; [74 1D 72, 05, 05]
+1000; [75 4F 09, 05, 05]
-1A10; [74 1D 79, 05, 05]
+1075; [75 4F 10, 05, 05]
-1A11; [74 1D 80, 05, 05]
+1001; [75 4F 17, 05, 05]
-1A12; [74 1D 87, 05, 05]
+1076; [75 4F 1E, 05, 05]
-1A13; [74 1D 8E, 05, 05]
+1002; [75 4F 25, 05, 05]
-1A14; [74 1D 95, 05, 05]
+1077; [75 4F 2C, 05, 05]
-1A15; [74 1D 9C, 05, 05]
+AA60; [75 4F 33, 05, 05]
-1A16; [74 1D A3, 05, 05]
+A9E9; [75 4F 3A, 05, 05]
-1A17; [74 1D AA, 05, 05]
+1003; [75 4F 41, 05, 05]
-1A18; [74 1D B1, 05, 05]
+A9E0; [75 4F 48, 05, 05]
-1A19; [74 1D B8, 05, 05]
+A9EA; [75 4F 4F, 05, 05]
-1A1A; [74 1D BF, 05, 05]
+1004; [75 4F 56, 05, 05]
-1A1B; [74 1D C6, 05, 05]
+105A; [75 4F 5D, 05, 05]
-FDD1 1BC0; [74 1E 02, 05, 05] # Batak first primary (compressible)
+1005; [75 4F 64, 05, 05]
-1BC0; [74 20, 05, 05]
-1BC1; [74 20, 05, 20]
+1078; [75 4F 6B, 05, 05]
-1BC2; [74 22, 05, 05]
-1BC3; [74 22, 05, 20]
-1BC4; [74 22, 05, 20]
+AA61; [75 4F 72, 05, 05]
-1BC5; [74 24, 05, 05]
-1BC6; [74 24, 05, 20]
+1006; [75 4F 79, 05, 05]
-1BC7; [74 26, 05, 05]
-1BC8; [74 26, 05, 20]
+A9E1; [75 4F 80, 05, 05]
-1BC9; [74 28, 05, 05]
-1BCA; [74 28, 05, 20]
+AA62; [75 4F 87, 05, 05]
-1BCB; [74 2A, 05, 05]
-1BCC; [74 2A, 05, 20]
-1BCD; [74 2A, 05, 20]
+AA7E; [75 4F 8E, 05, 05]
-1BCE; [74 2C, 05, 05]
-1BCF; [74 2C, 05, 20]
+1007; [75 4F 95, 05, 05]
-1BD0; [74 2E 02, 05, 05]
+AA63; [75 4F 9C, 05, 05]
-1BD1; [74 2E 09, 05, 05]
+A9EB; [75 4F A3, 05, 05]
-1BD2; [74 30, 05, 05]
-1BD3; [74 30, 05, 20]
+1079; [75 4F AA, 05, 05]
-1BD4; [74 32, 05, 05]
-1BD5; [74 32, 05, 20]
+AA72; [75 4F B1, 05, 05]
-1BD6; [74 34, 05, 05]
-1BD7; [74 34, 05, 20]
+1008; [75 4F B8, 05, 05]
-1BD8; [74 36, 05, 05]
-1BD9; [74 36, 05, 20]
-1BDA; [74 36, 05, 20]
+105B; [75 4F BF, 05, 05]
-1BDB; [74 38, 05, 05]
-1BDC; [74 38, 05, 20]
+A9E2; [75 4F C6, 05, 05]
-1BDD; [74 3A, 05, 05]
+AA64; [75 4F CD, 05, 05]
-1BDE; [74 3C, 05, 05]
-1BDF; [74 3C, 05, 20]
+A9EC; [75 4F D4, 05, 05]
-1BE0; [74 3E 02, 05, 05]
+1061; [75 4F DB, 05, 05]
-1BE1; [74 3E 09, 05, 05]
+AA7F; [75 4F E2, 05, 05]
-1BE2; [74 3E 10, 05, 05]
+1009; [75 4F E9, 05, 05]
-1BE3; [74 3E 17, 05, 05]
+107A; [75 4F F0, 05, 05]
-1BE4; [74 3E 1E, 05, 05]
+AA65; [75 4F F7, 05, 05]
-1BE5; [74 3E 25, 05, 05]
+A9E7; [75 4F FE, 05, 05]
-1BE7; [74 40, 05, 05]
-1BE8; [74 40, 05, 20]
+100A; [75 50 07, 05, 05]
-1BE9; [74 42, 05, 05]
+100B; [75 50 0E, 05, 05]
-1BEA; [74 44, 05, 05]
-1BEB; [74 44, 05, 20]
+AA66; [75 50 15, 05, 05]
-1BEC; [74 46, 05, 05]
-1BED; [74 46, 05, 20]
+100C; [75 50 1C, 05, 05]
-1BEE; [74 48, 05, 05]
-1BEF; [74 48, 05, 20]
+AA67; [75 50 23, 05, 05]
-1BF0; [74 4A 02, 05, 05]
+100D; [75 50 2A, 05, 05]
-1BF1; [74 4A 09, 05, 05]
+AA68; [75 50 31, 05, 05]
-1BF2; [74 4A 10, 05, 05]
+A9ED; [75 50 38, 05, 05]
-1BF3; [74 4A 17, 05, 05]
+100E; [75 50 3F, 05, 05]
-FDD1 A930; [74 4B 02, 05, 05] # Rejang first primary (compressible)
+AA69; [75 50 46, 05, 05]
-A930; [74 4B 09, 05, 05]
+A9EE; [75 50 4D, 05, 05]
-A931; [74 4B 10, 05, 05]
+100F; [75 50 54, 05, 05]
-A932; [74 4B 17, 05, 05]
+106E; [75 50 5B, 05, 05]
-A933; [74 4B 1E, 05, 05]
+A9E3; [75 50 62, 05, 05]
-A934; [74 4B 25, 05, 05]
+A9EF; [75 50 69, 05, 05]
-A935; [74 4B 2C, 05, 05]
+1010; [75 50 70, 05, 05]
-A936; [74 4B 33, 05, 05]
+1011; [75 50 77, 05, 05]
-A937; [74 4B 3A, 05, 05]
+1012; [75 50 7E, 05, 05]
-A938; [74 4B 41, 05, 05]
+107B; [75 50 85, 05, 05]
-A939; [74 4B 48, 05, 05]
+A9FB; [75 50 8C, 05, 05]
-A93A; [74 4B 4F, 05, 05]
+1013; [75 50 93, 05, 05]
-A93B; [74 4B 56, 05, 05]
+AA6A; [75 50 9A, 05, 05]
-A93C; [74 4B 5D, 05, 05]
+A9FC; [75 50 A1, 05, 05]
-A93D; [74 4B 64, 05, 05]
+1014; [75 50 A8, 05, 05]
-A93E; [74 4B 6B, 05, 05]
+107C; [75 50 AF, 05, 05]
-A93F; [74 4B 72, 05, 05]
+AA6B; [75 50 B6, 05, 05]
-A940; [74 4B 79, 05, 05]
+105E; [75 50 BD, 05, 05]
-A941; [74 4B 80, 05, 05]
+1015; [75 50 C4, 05, 05]
-A942; [74 4B 87, 05, 05]
+1016; [75 50 CB, 05, 05]
-A943; [74 4B 8E, 05, 05]
+107D; [75 50 D2, 05, 05]
-A944; [74 4B 95, 05, 05]
+107E; [75 50 D9, 05, 05]
-A945; [74 4B 9C, 05, 05]
+AA6F; [75 50 E0, 05, 05]
-A946; [74 4B A3, 05, 05]
+108E; [75 50 E7, 05, 05]
-A947; [74 4B AA, 05, 05]
+A9E8; [75 50 EE, 05, 05]
-A948; [74 4B B1, 05, 05]
+1017; [75 50 F5, 05, 05]
-A949; [74 4B B8, 05, 05]
+107F; [75 50 FC, 05, 05]
-A94A; [74 4B BF, 05, 05]
+A9FD; [75 51 05, 05, 05]
-A94B; [74 4B C6, 05, 05]
+1018; [75 51 0C, 05, 05]
-A94C; [74 4B CD, 05, 05]
+A9E4; [75 51 13, 05, 05]
-A94D; [74 4B D4, 05, 05]
+A9FE; [75 51 1A, 05, 05]
-A94E; [74 4B DB, 05, 05]
+1019; [75 51 21, 05, 05]
-A94F; [74 4B E2, 05, 05]
+105F; [75 51 28, 05, 05]
-A950; [74 4B E9, 05, 05]
+101A; [75 51 2F, 05, 05]
-A951; [74 4B F0, 05, 05]
+103B; [75 51 36, 05, 05]
-A952; [74 4B F7, 05, 05]
+101B; [75 51 3D, 05, 05]
-A953; [74 4B FE, 05, 05]
+AA73; [75 51 44, 05, 05]
-FDD1 A90A; [74 4D 02, 05, 05] # Kayah Li first primary (compressible)
+AA7A; [75 51 4B, 05, 05]
-A90A; [74 4D 09, 05, 05]
+103C; [75 51 52, 05, 05]
-A90B; [74 4D 10, 05, 05]
+101C; [75 51 59, 05, 05]
-A90C; [74 4D 17, 05, 05]
+1060; [75 51 60, 05, 05]
-A90D; [74 4D 1E, 05, 05]
+101D; [75 51 67, 05, 05]
-A90E; [74 4D 25, 05, 05]
+103D; [75 51 6E, 05, 05]
-A90F; [74 4D 2C, 05, 05]
+1082; [75 51 75, 05, 05]
-A910; [74 4D 33, 05, 05]
+1080; [75 51 7C, 05, 05]
-A911; [74 4D 3A, 05, 05]
+1050; [75 51 83, 05, 05]
-A912; [74 4D 41, 05, 05]
+1051; [75 51 8A, 05, 05]
-A913; [74 4D 48, 05, 05]
+1065; [75 51 91, 05, 05]
-A914; [74 4D 4F, 05, 05]
+101E; [75 53, 05, 05]
+103F; [75 53, 05, 20][75 5B, 05, 20][75 53, 05, 20]
-A915; [74 4D 56, 05, 05]
+AA6C; [75 55 02, 05, 05]
-A916; [74 4D 5D, 05, 05]
+101F; [75 55 09, 05, 05]
-A917; [74 4D 64, 05, 05]
+1081; [75 55 10, 05, 05]
-A918; [74 4D 6B, 05, 05]
+AA6D; [75 55 17, 05, 05]
-A919; [74 4D 72, 05, 05]
+103E; [75 55 1E, 05, 05]
-A91A; [74 4D 79, 05, 05]
+AA6E; [75 55 25, 05, 05]
-A91B; [74 4D 80, 05, 05]
+AA71; [75 55 2C, 05, 05]
-A91C; [74 4D 87, 05, 05]
+1020; [75 55 33, 05, 05]
-A91D; [74 4D 8E, 05, 05]
+A9FA; [75 55 3A, 05, 05]
-A91E; [74 4D 95, 05, 05]
+105C; [75 55 41, 05, 05]
-A91F; [74 4D 9C, 05, 05]
+105D; [75 55 48, 05, 05]
-A920; [74 4D A3, 05, 05]
+106F; [75 55 4F, 05, 05]
-A921; [74 4D AA, 05, 05]
+1070; [75 55 56, 05, 05]
-A922; [74 4D B1, 05, 05]
+1066; [75 55 5D, 05, 05]
-A923; [74 4D B8, 05, 05]
+1021; [75 55 64, 05, 05]
-A924; [74 4D BF, 05, 05]
+1022; [75 55 6B, 05, 05]
-A925; [74 4D C6, 05, 05]
+1023; [75 55 72, 05, 05]
-A926; [74 4D CD, 05, 05]
+1024; [75 55 79, 05, 05]
-A927; [74 4D D4, 05, 05]
+1025; [75 55 80, 05, 05]
-A928; [74 4D DB, 05, 05]
+1025 102E; [75 55 87, 05, 05]
+1026; [75 55 87, 05, 05]
-A929; [74 4D E2, 05, 05]
+1052; [75 55 8E, 05, 05]
-A92A; [74 4D E9, 05, 05]
+1053; [75 55 95, 05, 05]
-FDD1 1000; [74 4E 02, 05, 05] # MYANMAR first primary (compressible)
+1054; [75 55 9C, 05, 05]
-1000; [74 4E 09, 05, 05]
+1055; [75 55 A3, 05, 05]
-1075; [74 4E 10, 05, 05]
+1027; [75 55 AA, 05, 05]
-1001; [74 4E 17, 05, 05]
+1028; [75 55 B1, 05, 05]
-1076; [74 4E 1E, 05, 05]
+1029; [75 55 B8, 05, 05]
-1002; [74 4E 25, 05, 05]
+102A; [75 55 BF, 05, 05]
-1077; [74 4E 2C, 05, 05]
+102C; [75 57, 05, 05]
+102B; [75 57, 05, 20]
-AA60; [74 4E 33, 05, 05]
+1083; [75 59 02, 05, 05]
-A9E9; [74 4E 3A, 05, 05]
+1072; [75 59 09, 05, 05]
-1003; [74 4E 41, 05, 05]
+109C; [75 59 10, 05, 05]
-A9E0; [74 4E 48, 05, 05]
+102D; [75 59 17, 05, 05]
-A9EA; [74 4E 4F, 05, 05]
+1071; [75 59 1E, 05, 05]
-1004; [74 4E 56, 05, 05]
+102E; [75 59 25, 05, 05]
-105A; [74 4E 5D, 05, 05]
+1033; [75 59 2C, 05, 05]
-1005; [74 4E 64, 05, 05]
+102F; [75 59 33, 05, 05]
-1078; [74 4E 6B, 05, 05]
+1073; [75 59 3A, 05, 05]
-AA61; [74 4E 72, 05, 05]
+1074; [75 59 41, 05, 05]
-1006; [74 4E 79, 05, 05]
+1030; [75 59 48, 05, 05]
-A9E1; [74 4E 80, 05, 05]
+1056; [75 59 4F, 05, 05]
-AA62; [74 4E 87, 05, 05]
+1057; [75 59 56, 05, 05]
-AA7E; [74 4E 8E, 05, 05]
+1058; [75 59 5D, 05, 05]
-1007; [74 4E 95, 05, 05]
+1059; [75 59 64, 05, 05]
-AA63; [74 4E 9C, 05, 05]
+1031; [75 59 6B, 05, 05]
-A9EB; [74 4E A3, 05, 05]
+1084; [75 59 72, 05, 05]
-1079; [74 4E AA, 05, 05]
+1035; [75 59 79, 05, 05]
-AA72; [74 4E B1, 05, 05]
+1085; [75 59 80, 05, 05]
-1008; [74 4E B8, 05, 05]
+1032; [75 59 87, 05, 05]
-105B; [74 4E BF, 05, 05]
+109D; [75 59 8E, 05, 05]
-A9E2; [74 4E C6, 05, 05]
+1034; [75 59 95, 05, 05]
-AA64; [74 4E CD, 05, 05]
+1062; [75 59 9C, 05, 05]
-A9EC; [74 4E D4, 05, 05]
+1067; [75 59 A3, 05, 05]
-1061; [74 4E DB, 05, 05]
+1068; [75 59 AA, 05, 05]
-AA7F; [74 4E E2, 05, 05]
+A9E5; [75 59 B1, 05, 05]
-1009; [74 4E E9, 05, 05]
+1086; [75 59 B8, 05, 05]
-107A; [74 4E F0, 05, 05]
+1039; [75 5B, 05, 05]
-AA65; [74 4E F7, 05, 05]
+103A; [75 5D 02, 05, 05]
-A9E7; [74 4E FE, 05, 05]
+1063; [75 5D 09, 05, 05]
-100A; [74 4F 07, 05, 05]
+1064; [75 5D 10, 05, 05]
-100B; [74 4F 0E, 05, 05]
+1069; [75 5D 17, 05, 05]
-AA66; [74 4F 15, 05, 05]
+106A; [75 5D 1E, 05, 05]
-100C; [74 4F 1C, 05, 05]
+106B; [75 5D 25, 05, 05]
-AA67; [74 4F 23, 05, 05]
+106C; [75 5D 2C, 05, 05]
-100D; [74 4F 2A, 05, 05]
+106D; [75 5D 33, 05, 05]
-AA68; [74 4F 31, 05, 05]
+1087; [75 5D 3A, 05, 05]
-A9ED; [74 4F 38, 05, 05]
+108B; [75 5D 41, 05, 05]
-100E; [74 4F 3F, 05, 05]
+1088; [75 5D 48, 05, 05]
-AA69; [74 4F 46, 05, 05]
+108C; [75 5D 4F, 05, 05]
-A9EE; [74 4F 4D, 05, 05]
+108D; [75 5D 56, 05, 05]
-100F; [74 4F 54, 05, 05]
+1089; [75 5D 5D, 05, 05]
-106E; [74 4F 5B, 05, 05]
+108A; [75 5D 64, 05, 05]
-A9E3; [74 4F 62, 05, 05]
+108F; [75 5D 6B, 05, 05]
-A9EF; [74 4F 69, 05, 05]
+109A; [75 5D 72, 05, 05]
-1010; [74 4F 70, 05, 05]
+109B; [75 5D 79, 05, 05]
-1011; [74 4F 77, 05, 05]
+AA7B; [75 5D 80, 05, 05]
-1012; [74 4F 7E, 05, 05]
+AA7C; [75 5D 87, 05, 05]
-107B; [74 4F 85, 05, 05]
+AA7D; [75 5D 8E, 05, 05]
-A9FB; [74 4F 8C, 05, 05]
+AA74; [75 5D 95, 05, 05]
-1013; [74 4F 93, 05, 05]
+AA75; [75 5D 9C, 05, 05]
-AA6A; [74 4F 9A, 05, 05]
+AA76; [75 5D A3, 05, 05]
-A9FC; [74 4F A1, 05, 05]
+FDD1 10D12; [75 5E 02, 05, 05] # Hanifi_Rohingya first primary (compressible)
-1014; [74 4F A8, 05, 05]
+10D00; [75 5E 09, 05, 05]
-107C; [74 4F AF, 05, 05]
+10D1D; [75 5E 10, 05, 05]
-AA6B; [74 4F B6, 05, 05]
+10D1E; [75 5E 17, 05, 05]
-105E; [74 4F BD, 05, 05]
+10D1F; [75 5E 1E, 05, 05]
-1015; [74 4F C4, 05, 05]
+10D20; [75 5E 25, 05, 05]
-1016; [74 4F CB, 05, 05]
+10D21; [75 5E 2C, 05, 05]
-107D; [74 4F D2, 05, 05]
+10D01; [75 5E 33, 05, 05]
-107E; [74 4F D9, 05, 05]
+10D02; [75 5E 3A, 05, 05]
-AA6F; [74 4F E0, 05, 05]
+10D03; [75 5E 41, 05, 05]
-108E; [74 4F E7, 05, 05]
+10D04; [75 5E 48, 05, 05]
-A9E8; [74 4F EE, 05, 05]
+10D05; [75 5E 4F, 05, 05]
-1017; [74 4F F5, 05, 05]
+10D06; [75 5E 56, 05, 05]
-107F; [74 4F FC, 05, 05]
+10D07; [75 5E 5D, 05, 05]
-A9FD; [74 50 05, 05, 05]
+10D08; [75 5E 64, 05, 05]
-1018; [74 50 0C, 05, 05]
+10D09; [75 5E 6B, 05, 05]
-A9E4; [74 50 13, 05, 05]
+10D0A; [75 5E 72, 05, 05]
-A9FE; [74 50 1A, 05, 05]
+10D0B; [75 5E 79, 05, 05]
-1019; [74 50 21, 05, 05]
+10D0C; [75 5E 80, 05, 05]
-105F; [74 50 28, 05, 05]
+10D0D; [75 5E 87, 05, 05]
-101A; [74 50 2F, 05, 05]
+10D0E; [75 5E 8E, 05, 05]
-103B; [74 50 36, 05, 05]
+10D0F; [75 5E 95, 05, 05]
-101B; [74 50 3D, 05, 05]
+10D10; [75 5E 9C, 05, 05]
-AA73; [74 50 44, 05, 05]
+10D11; [75 5E A3, 05, 05]
-AA7A; [74 50 4B, 05, 05]
+10D12; [75 5E AA, 05, 05]
-103C; [74 50 52, 05, 05]
+10D13; [75 5E B1, 05, 05]
-101C; [74 50 59, 05, 05]
+10D14; [75 5E B8, 05, 05]
-1060; [74 50 60, 05, 05]
+10D15; [75 5E BF, 05, 05]
-101D; [74 50 67, 05, 05]
+10D16; [75 5E C6, 05, 05]
-103D; [74 50 6E, 05, 05]
+10D17; [75 5E CD, 05, 05]
-1082; [74 50 75, 05, 05]
+10D18; [75 5E D4, 05, 05]
-1080; [74 50 7C, 05, 05]
+10D19; [75 5E DB, 05, 05]
-1050; [74 50 83, 05, 05]
+10D1A; [75 5E E2, 05, 05]
-1051; [74 50 8A, 05, 05]
+10D1B; [75 5E E9, 05, 05]
-1065; [74 50 91, 05, 05]
+10D1C; [75 5E F0, 05, 05]
-101E; [74 52, 05, 05]
-103F; [74 52, 05, 20][74 5A, 05, 20][74 52, 05, 20]
+10D22; [75 5E F7, 05, 05]
-AA6C; [74 54 02, 05, 05]
+10D23; [75 5E FE, 05, 05]
-101F; [74 54 09, 05, 05]
+FDD1 11103; [75 60 02, 05, 05] # Chakma first primary (compressible)
-1081; [74 54 10, 05, 05]
+11103; [75 60 09, 05, 05]
-AA6D; [74 54 17, 05, 05]
+11104; [75 60 10, 05, 05]
-103E; [74 54 1E, 05, 05]
+11105; [75 60 17, 05, 05]
-AA6E; [74 54 25, 05, 05]
+11106; [75 60 1E, 05, 05]
-AA71; [74 54 2C, 05, 05]
+11107; [75 60 25, 05, 05]
-1020; [74 54 33, 05, 05]
+11108; [75 60 2C, 05, 05]
-A9FA; [74 54 3A, 05, 05]
+11109; [75 60 33, 05, 05]
-105C; [74 54 41, 05, 05]
+1110A; [75 60 3A, 05, 05]
-105D; [74 54 48, 05, 05]
+1110B; [75 60 41, 05, 05]
-106F; [74 54 4F, 05, 05]
+1110C; [75 60 48, 05, 05]
-1070; [74 54 56, 05, 05]
+1110D; [75 60 4F, 05, 05]
-1066; [74 54 5D, 05, 05]
+1110E; [75 60 56, 05, 05]
-1021; [74 54 64, 05, 05]
+1110F; [75 60 5D, 05, 05]
-1022; [74 54 6B, 05, 05]
+11110; [75 60 64, 05, 05]
-1023; [74 54 72, 05, 05]
+11111; [75 60 6B, 05, 05]
-1024; [74 54 79, 05, 05]
+11112; [75 60 72, 05, 05]
-1025; [74 54 80, 05, 05]
+11113; [75 60 79, 05, 05]
-1025 102E; [74 54 87, 05, 05]
-1026; [74 54 87, 05, 05]
+11114; [75 60 80, 05, 05]
-1052; [74 54 8E, 05, 05]
+11115; [75 60 87, 05, 05]
-1053; [74 54 95, 05, 05]
+11116; [75 60 8E, 05, 05]
-1054; [74 54 9C, 05, 05]
+11117; [75 60 95, 05, 05]
-1055; [74 54 A3, 05, 05]
+11118; [75 60 9C, 05, 05]
-1027; [74 54 AA, 05, 05]
+11119; [75 60 A3, 05, 05]
-1028; [74 54 B1, 05, 05]
+1111A; [75 60 AA, 05, 05]
-1029; [74 54 B8, 05, 05]
+1111B; [75 60 B1, 05, 05]
-102A; [74 54 BF, 05, 05]
+1111C; [75 60 B8, 05, 05]
-102C; [74 56, 05, 05]
-102B; [74 56, 05, 20]
+1111D; [75 60 BF, 05, 05]
-1083; [74 58 02, 05, 05]
+1111E; [75 60 C6, 05, 05]
-1072; [74 58 09, 05, 05]
+1111F; [75 60 CD, 05, 05]
-109C; [74 58 10, 05, 05]
+11120; [75 60 D4, 05, 05]
-102D; [74 58 17, 05, 05]
+11121; [75 60 DB, 05, 05]
-1071; [74 58 1E, 05, 05]
+11122; [75 60 E2, 05, 05]
-102E; [74 58 25, 05, 05]
+11123; [75 60 E9, 05, 05]
-1033; [74 58 2C, 05, 05]
+11124; [75 60 F0, 05, 05]
-102F; [74 58 33, 05, 05]
+11125; [75 60 F7, 05, 05]
-1073; [74 58 3A, 05, 05]
+11126; [75 60 FE, 05, 05]
-1074; [74 58 41, 05, 05]
+11144; [75 61 07, 05, 05]
-1030; [74 58 48, 05, 05]
+11127; [75 61 0E, 05, 05]
-1056; [74 58 4F, 05, 05]
+11128; [75 61 15, 05, 05]
-1057; [74 58 56, 05, 05]
+11129; [75 61 1C, 05, 05]
-1058; [74 58 5D, 05, 05]
+1112A; [75 61 23, 05, 05]
-1059; [74 58 64, 05, 05]
+1112B; [75 61 2A, 05, 05]
-1031; [74 58 6B, 05, 05]
+1112C; [75 61 31, 05, 05]
-1084; [74 58 72, 05, 05]
+1112D; [75 61 38, 05, 05]
-1035; [74 58 79, 05, 05]
+1112E; [75 61 3F, 05, 05]
+11131 11127; [75 61 3F, 05, 05]
-1085; [74 58 80, 05, 05]
+1112F; [75 61 46, 05, 05]
+11132 11127; [75 61 46, 05, 05]
-1032; [74 58 87, 05, 05]
+11130; [75 61 4D, 05, 05]
-109D; [74 58 8E, 05, 05]
+11131; [75 61 54, 05, 05]
-1034; [74 58 95, 05, 05]
+11132; [75 61 5B, 05, 05]
-1062; [74 58 9C, 05, 05]
+11145; [75 61 62, 05, 05]
-1067; [74 58 A3, 05, 05]
+11146; [75 61 69, 05, 05]
-1068; [74 58 AA, 05, 05]
+11133; [75 61 70, 05, 05]
-A9E5; [74 58 B1, 05, 05]
+11134; [75 61 77, 05, 05]
-1086; [74 58 B8, 05, 05]
+FDD1 1780; [75 62 02, 05, 05] # KHMER first primary (compressible)
-1039; [74 5A, 05, 05]
+1780; [75 64, 05, 05]
-103A; [74 5C 02, 05, 05]
+1781; [75 66, 05, 05]
-1063; [74 5C 09, 05, 05]
+1782; [75 68, 05, 05]
-1064; [74 5C 10, 05, 05]
+1783; [75 6A, 05, 05]
-1069; [74 5C 17, 05, 05]
+1784; [75 6C, 05, 05]
-106A; [74 5C 1E, 05, 05]
+1785; [75 6E, 05, 05]
-106B; [74 5C 25, 05, 05]
+1786; [75 70, 05, 05]
-106C; [74 5C 2C, 05, 05]
+1787; [75 72, 05, 05]
-106D; [74 5C 33, 05, 05]
+1788; [75 74, 05, 05]
-1087; [74 5C 3A, 05, 05]
+1789; [75 76, 05, 05]
-108B; [74 5C 41, 05, 05]
+178A; [75 78, 05, 05]
-1088; [74 5C 48, 05, 05]
+178B; [75 7A, 05, 05]
-108C; [74 5C 4F, 05, 05]
+178C; [75 7C, 05, 05]
-108D; [74 5C 56, 05, 05]
+178D; [75 7E, 05, 05]
-1089; [74 5C 5D, 05, 05]
+178E; [75 80, 05, 05]
-108A; [74 5C 64, 05, 05]
+178F; [75 82, 05, 05]
-108F; [74 5C 6B, 05, 05]
+1790; [75 84, 05, 05]
-109A; [74 5C 72, 05, 05]
+1791; [75 86, 05, 05]
-109B; [74 5C 79, 05, 05]
+1792; [75 88, 05, 05]
-AA7B; [74 5C 80, 05, 05]
+1793; [75 8A, 05, 05]
-AA7C; [74 5C 87, 05, 05]
+1794; [75 8C, 05, 05]
-AA7D; [74 5C 8E, 05, 05]
+1795; [75 8E, 05, 05]
-AA74; [74 5C 95, 05, 05]
+1796; [75 90, 05, 05]
-AA75; [74 5C 9C, 05, 05]
+1797; [75 92, 05, 05]
-AA76; [74 5C A3, 05, 05]
+1798; [75 94, 05, 05]
-FDD1 11103; [74 5D 02, 05, 05] # Chakma first primary (compressible)
+1799; [75 96, 05, 05]
-11103; [74 5D 09, 05, 05]
+179A; [75 98, 05, 05]
-11104; [74 5D 10, 05, 05]
+179B; [75 9A, 05, 05]
-11105; [74 5D 17, 05, 05]
+179C; [75 9C, 05, 05]
-11106; [74 5D 1E, 05, 05]
+179D; [75 9E, 05, 05]
-11107; [74 5D 25, 05, 05]
+179E; [75 A0, 05, 05]
-11108; [74 5D 2C, 05, 05]
+179F; [75 A2, 05, 05]
-11109; [74 5D 33, 05, 05]
+17A0; [75 A4, 05, 05]
-1110A; [74 5D 3A, 05, 05]
+17A1; [75 A6, 05, 05]
-1110B; [74 5D 41, 05, 05]
+17A2; [75 A8, 05, 05]
-1110C; [74 5D 48, 05, 05]
+17DC; [75 AA, 05, 05]
-1110D; [74 5D 4F, 05, 05]
+17A3; [75 AC, 05, 05]
-1110E; [74 5D 56, 05, 05]
+17A4; [75 AE, 05, 05]
-1110F; [74 5D 5D, 05, 05]
+17A5; [75 B0, 05, 05]
-11110; [74 5D 64, 05, 05]
+17A6; [75 B2, 05, 05]
-11111; [74 5D 6B, 05, 05]
+17A7; [75 B4, 05, 05]
-11112; [74 5D 72, 05, 05]
+17A8; [75 B6, 05, 05]
-11113; [74 5D 79, 05, 05]
+17A9; [75 B8, 05, 05]
-11114; [74 5D 80, 05, 05]
+17AA; [75 BA, 05, 05]
-11115; [74 5D 87, 05, 05]
+17AB; [75 BC, 05, 05]
-11116; [74 5D 8E, 05, 05]
+17AC; [75 BE, 05, 05]
-11117; [74 5D 95, 05, 05]
+17AD; [75 C0, 05, 05]
-11118; [74 5D 9C, 05, 05]
+17AE; [75 C2, 05, 05]
-11119; [74 5D A3, 05, 05]
+17AF; [75 C4, 05, 05]
-1111A; [74 5D AA, 05, 05]
+17B0; [75 C6, 05, 05]
-1111B; [74 5D B1, 05, 05]
+17B1; [75 C8, 05, 05]
-1111C; [74 5D B8, 05, 05]
+17B2; [75 CA, 05, 05]
-1111D; [74 5D BF, 05, 05]
+17B3; [75 CC, 05, 05]
-1111E; [74 5D C6, 05, 05]
+17B6; [75 CE, 05, 05]
-1111F; [74 5D CD, 05, 05]
+17B7; [75 D0, 05, 05]
-11120; [74 5D D4, 05, 05]
+17B8; [75 D2, 05, 05]
-11121; [74 5D DB, 05, 05]
+17B9; [75 D4, 05, 05]
-11122; [74 5D E2, 05, 05]
+17BA; [75 D6, 05, 05]
-11123; [74 5D E9, 05, 05]
+17BB; [75 D8, 05, 05]
-11124; [74 5D F0, 05, 05]
+17BC; [75 DA, 05, 05]
-11125; [74 5D F7, 05, 05]
+17BD; [75 DC, 05, 05]
-11126; [74 5D FE, 05, 05]
+17BE; [75 DE, 05, 05]
-11127; [74 5E 07, 05, 05]
+17BF; [75 E0, 05, 05]
-11128; [74 5E 0E, 05, 05]
+17C0; [75 E2, 05, 05]
-11129; [74 5E 15, 05, 05]
+17C1; [75 E4, 05, 05]
-1112A; [74 5E 1C, 05, 05]
+17C2; [75 E6, 05, 05]
-1112B; [74 5E 23, 05, 05]
+17C3; [75 E8, 05, 05]
-1112C; [74 5E 2A, 05, 05]
+17C4; [75 EA, 05, 05]
-1112D; [74 5E 31, 05, 05]
+17C5; [75 EC, 05, 05]
-1112E; [74 5E 38, 05, 05]
-11131 11127; [74 5E 38, 05, 05]
+17D2; [75 EE, 05, 05]
-1112F; [74 5E 3F, 05, 05]
-11132 11127; [74 5E 3F, 05, 05]
+FDD1 1950; [76 04 02, 05, 05] # TAI_LE first primary starts new lead byte (compressible)
-11130; [74 5E 46, 05, 05]
+1950; [76 04 09, 05, 05]
-11131; [74 5E 4D, 05, 05]
+1951; [76 04 10, 05, 05]
-11132; [74 5E 54, 05, 05]
+1952; [76 04 17, 05, 05]
-11133; [74 5E 5B, 05, 05]
+1953; [76 04 1E, 05, 05]
-11134; [74 5E 62, 05, 05]
+1954; [76 04 25, 05, 05]
-FDD1 1780; [74 5F 02, 05, 05] # KHMER first primary (compressible)
+1955; [76 04 2C, 05, 05]
-1780; [74 61, 05, 05]
+1956; [76 04 33, 05, 05]
-1781; [74 63, 05, 05]
+1957; [76 04 3A, 05, 05]
-1782; [74 65, 05, 05]
+1958; [76 04 41, 05, 05]
-1783; [74 67, 05, 05]
+1959; [76 04 48, 05, 05]
-1784; [74 69, 05, 05]
+195A; [76 04 4F, 05, 05]
-1785; [74 6B, 05, 05]
+195B; [76 04 56, 05, 05]
-1786; [74 6D, 05, 05]
+195C; [76 04 5D, 05, 05]
-1787; [74 6F, 05, 05]
+195D; [76 04 64, 05, 05]
-1788; [74 71, 05, 05]
+195E; [76 04 6B, 05, 05]
-1789; [74 73, 05, 05]
+195F; [76 04 72, 05, 05]
-178A; [74 75, 05, 05]
+1960; [76 04 79, 05, 05]
-178B; [74 77, 05, 05]
+1961; [76 04 80, 05, 05]
-178C; [74 79, 05, 05]
+1962; [76 04 87, 05, 05]
-178D; [74 7B, 05, 05]
+1963; [76 04 8E, 05, 05]
-178E; [74 7D, 05, 05]
+1964; [76 04 95, 05, 05]
-178F; [74 7F, 05, 05]
+1965; [76 04 9C, 05, 05]
-1790; [74 81, 05, 05]
+1966; [76 04 A3, 05, 05]
-1791; [74 83, 05, 05]
+1967; [76 04 AA, 05, 05]
-1792; [74 85, 05, 05]
+1968; [76 04 B1, 05, 05]
-1793; [74 87, 05, 05]
+1969; [76 04 B8, 05, 05]
-1794; [74 89, 05, 05]
+196A; [76 04 BF, 05, 05]
-1795; [74 8B, 05, 05]
+196B; [76 04 C6, 05, 05]
-1796; [74 8D, 05, 05]
+196C; [76 04 CD, 05, 05]
-1797; [74 8F, 05, 05]
+196D; [76 04 D4, 05, 05]
-1798; [74 91, 05, 05]
+1970; [76 04 DB, 05, 05]
-1799; [74 93, 05, 05]
+1971; [76 04 E2, 05, 05]
-179A; [74 95, 05, 05]
+1972; [76 04 E9, 05, 05]
-179B; [74 97, 05, 05]
+1973; [76 04 F0, 05, 05]
-179C; [74 99, 05, 05]
+1974; [76 04 F7, 05, 05]
-179D; [74 9B, 05, 05]
+FDD1 1980; [76 05 02, 05, 05] # NEW_TAI_LUE first primary (compressible)
-179E; [74 9D, 05, 05]
+1980; [76 05 09, 05, 05]
+19B5 1980; [76 05 09, 05, 05][76 09 8E, 05, 05]
+19B6 1980; [76 05 09, 05, 05][76 0B, 05, 05]
+19B7 1980; [76 05 09, 05, 05][76 0D 02, 05, 05]
+19BA 1980; [76 05 09, 05, 05][76 0D 17, 05, 05]
-179F; [74 9F, 05, 05]
+1981; [76 05 10, 05, 05]
+19B5 1981; [76 05 10, 05, 05][76 09 8E, 05, 05]
+19B6 1981; [76 05 10, 05, 05][76 0B, 05, 05]
+19B7 1981; [76 05 10, 05, 05][76 0D 02, 05, 05]
+19BA 1981; [76 05 10, 05, 05][76 0D 17, 05, 05]
-17A0; [74 A1, 05, 05]
+1982; [76 05 17, 05, 05]
+19B5 1982; [76 05 17, 05, 05][76 09 8E, 05, 05]
+19B6 1982; [76 05 17, 05, 05][76 0B, 05, 05]
+19B7 1982; [76 05 17, 05, 05][76 0D 02, 05, 05]
+19BA 1982; [76 05 17, 05, 05][76 0D 17, 05, 05]
-17A1; [74 A3, 05, 05]
+1983; [76 05 1E, 05, 05]
+19B5 1983; [76 05 1E, 05, 05][76 09 8E, 05, 05]
+19B6 1983; [76 05 1E, 05, 05][76 0B, 05, 05]
+19B7 1983; [76 05 1E, 05, 05][76 0D 02, 05, 05]
+19BA 1983; [76 05 1E, 05, 05][76 0D 17, 05, 05]
-17A2; [74 A5, 05, 05]
+1984; [76 05 25, 05, 05]
+19B5 1984; [76 05 25, 05, 05][76 09 8E, 05, 05]
+19B6 1984; [76 05 25, 05, 05][76 0B, 05, 05]
+19B7 1984; [76 05 25, 05, 05][76 0D 02, 05, 05]
+19BA 1984; [76 05 25, 05, 05][76 0D 17, 05, 05]
-17DC; [74 A7, 05, 05]
+1985; [76 05 2C, 05, 05]
+19B5 1985; [76 05 2C, 05, 05][76 09 8E, 05, 05]
+19B6 1985; [76 05 2C, 05, 05][76 0B, 05, 05]
+19B7 1985; [76 05 2C, 05, 05][76 0D 02, 05, 05]
+19BA 1985; [76 05 2C, 05, 05][76 0D 17, 05, 05]
-17A3; [74 A9, 05, 05]
+1986; [76 05 33, 05, 05]
+19B5 1986; [76 05 33, 05, 05][76 09 8E, 05, 05]
+19B6 1986; [76 05 33, 05, 05][76 0B, 05, 05]
+19B7 1986; [76 05 33, 05, 05][76 0D 02, 05, 05]
+19BA 1986; [76 05 33, 05, 05][76 0D 17, 05, 05]
-17A4; [74 AB, 05, 05]
+1987; [76 05 3A, 05, 05]
+19B5 1987; [76 05 3A, 05, 05][76 09 8E, 05, 05]
+19B6 1987; [76 05 3A, 05, 05][76 0B, 05, 05]
+19B7 1987; [76 05 3A, 05, 05][76 0D 02, 05, 05]
+19BA 1987; [76 05 3A, 05, 05][76 0D 17, 05, 05]
-17A5; [74 AD, 05, 05]
+1988; [76 05 41, 05, 05]
+19B5 1988; [76 05 41, 05, 05][76 09 8E, 05, 05]
+19B6 1988; [76 05 41, 05, 05][76 0B, 05, 05]
+19B7 1988; [76 05 41, 05, 05][76 0D 02, 05, 05]
+19BA 1988; [76 05 41, 05, 05][76 0D 17, 05, 05]
+
+1989; [76 05 48, 05, 05]
+19B5 1989; [76 05 48, 05, 05][76 09 8E, 05, 05]
+19B6 1989; [76 05 48, 05, 05][76 0B, 05, 05]
+19B7 1989; [76 05 48, 05, 05][76 0D 02, 05, 05]
+19BA 1989; [76 05 48, 05, 05][76 0D 17, 05, 05]
+
+198A; [76 05 4F, 05, 05]
+19B5 198A; [76 05 4F, 05, 05][76 09 8E, 05, 05]
+19B6 198A; [76 05 4F, 05, 05][76 0B, 05, 05]
+19B7 198A; [76 05 4F, 05, 05][76 0D 02, 05, 05]
+19BA 198A; [76 05 4F, 05, 05][76 0D 17, 05, 05]
+
+198B; [76 05 56, 05, 05]
+19B5 198B; [76 05 56, 05, 05][76 09 8E, 05, 05]
+19B6 198B; [76 05 56, 05, 05][76 0B, 05, 05]
+19B7 198B; [76 05 56, 05, 05][76 0D 02, 05, 05]
+19BA 198B; [76 05 56, 05, 05][76 0D 17, 05, 05]
+
+198C; [76 05 5D, 05, 05]
+19B5 198C; [76 05 5D, 05, 05][76 09 8E, 05, 05]
+19B6 198C; [76 05 5D, 05, 05][76 0B, 05, 05]
+19B7 198C; [76 05 5D, 05, 05][76 0D 02, 05, 05]
+19BA 198C; [76 05 5D, 05, 05][76 0D 17, 05, 05]
+
+198D; [76 05 64, 05, 05]
+19B5 198D; [76 05 64, 05, 05][76 09 8E, 05, 05]
+19B6 198D; [76 05 64, 05, 05][76 0B, 05, 05]
+19B7 198D; [76 05 64, 05, 05][76 0D 02, 05, 05]
+19BA 198D; [76 05 64, 05, 05][76 0D 17, 05, 05]
+
+198E; [76 05 6B, 05, 05]
+19B5 198E; [76 05 6B, 05, 05][76 09 8E, 05, 05]
+19B6 198E; [76 05 6B, 05, 05][76 0B, 05, 05]
+19B7 198E; [76 05 6B, 05, 05][76 0D 02, 05, 05]
+19BA 198E; [76 05 6B, 05, 05][76 0D 17, 05, 05]
+
+198F; [76 05 72, 05, 05]
+19B5 198F; [76 05 72, 05, 05][76 09 8E, 05, 05]
+19B6 198F; [76 05 72, 05, 05][76 0B, 05, 05]
+19B7 198F; [76 05 72, 05, 05][76 0D 02, 05, 05]
+19BA 198F; [76 05 72, 05, 05][76 0D 17, 05, 05]
+
+1990; [76 05 79, 05, 05]
+19B5 1990; [76 05 79, 05, 05][76 09 8E, 05, 05]
+19B6 1990; [76 05 79, 05, 05][76 0B, 05, 05]
+19B7 1990; [76 05 79, 05, 05][76 0D 02, 05, 05]
+19BA 1990; [76 05 79, 05, 05][76 0D 17, 05, 05]
+
+1991; [76 05 80, 05, 05]
+19B5 1991; [76 05 80, 05, 05][76 09 8E, 05, 05]
+19B6 1991; [76 05 80, 05, 05][76 0B, 05, 05]
+19B7 1991; [76 05 80, 05, 05][76 0D 02, 05, 05]
+19BA 1991; [76 05 80, 05, 05][76 0D 17, 05, 05]
+
+1992; [76 05 87, 05, 05]
+19B5 1992; [76 05 87, 05, 05][76 09 8E, 05, 05]
+19B6 1992; [76 05 87, 05, 05][76 0B, 05, 05]
+19B7 1992; [76 05 87, 05, 05][76 0D 02, 05, 05]
+19BA 1992; [76 05 87, 05, 05][76 0D 17, 05, 05]
+
+1993; [76 05 8E, 05, 05]
+19B5 1993; [76 05 8E, 05, 05][76 09 8E, 05, 05]
+19B6 1993; [76 05 8E, 05, 05][76 0B, 05, 05]
+19B7 1993; [76 05 8E, 05, 05][76 0D 02, 05, 05]
+19BA 1993; [76 05 8E, 05, 05][76 0D 17, 05, 05]
+
+1994; [76 05 95, 05, 05]
+19B5 1994; [76 05 95, 05, 05][76 09 8E, 05, 05]
+19B6 1994; [76 05 95, 05, 05][76 0B, 05, 05]
+19B7 1994; [76 05 95, 05, 05][76 0D 02, 05, 05]
+19BA 1994; [76 05 95, 05, 05][76 0D 17, 05, 05]
+
+1995; [76 05 9C, 05, 05]
+19B5 1995; [76 05 9C, 05, 05][76 09 8E, 05, 05]
+19B6 1995; [76 05 9C, 05, 05][76 0B, 05, 05]
+19B7 1995; [76 05 9C, 05, 05][76 0D 02, 05, 05]
+19BA 1995; [76 05 9C, 05, 05][76 0D 17, 05, 05]
+
+1996; [76 05 A3, 05, 05]
+19B5 1996; [76 05 A3, 05, 05][76 09 8E, 05, 05]
+19B6 1996; [76 05 A3, 05, 05][76 0B, 05, 05]
+19B7 1996; [76 05 A3, 05, 05][76 0D 02, 05, 05]
+19BA 1996; [76 05 A3, 05, 05][76 0D 17, 05, 05]
+
+1997; [76 05 AA, 05, 05]
+19B5 1997; [76 05 AA, 05, 05][76 09 8E, 05, 05]
+19B6 1997; [76 05 AA, 05, 05][76 0B, 05, 05]
+19B7 1997; [76 05 AA, 05, 05][76 0D 02, 05, 05]
+19BA 1997; [76 05 AA, 05, 05][76 0D 17, 05, 05]
+
+1998; [76 05 B1, 05, 05]
+19B5 1998; [76 05 B1, 05, 05][76 09 8E, 05, 05]
+19B6 1998; [76 05 B1, 05, 05][76 0B, 05, 05]
+19B7 1998; [76 05 B1, 05, 05][76 0D 02, 05, 05]
+19BA 1998; [76 05 B1, 05, 05][76 0D 17, 05, 05]
+
+1999; [76 05 B8, 05, 05]
+19B5 1999; [76 05 B8, 05, 05][76 09 8E, 05, 05]
+19B6 1999; [76 05 B8, 05, 05][76 0B, 05, 05]
+19B7 1999; [76 05 B8, 05, 05][76 0D 02, 05, 05]
+19BA 1999; [76 05 B8, 05, 05][76 0D 17, 05, 05]
+
+199A; [76 05 BF, 05, 05]
+19B5 199A; [76 05 BF, 05, 05][76 09 8E, 05, 05]
+19B6 199A; [76 05 BF, 05, 05][76 0B, 05, 05]
+19B7 199A; [76 05 BF, 05, 05][76 0D 02, 05, 05]
+19BA 199A; [76 05 BF, 05, 05][76 0D 17, 05, 05]
+
+199B; [76 05 C6, 05, 05]
+19B5 199B; [76 05 C6, 05, 05][76 09 8E, 05, 05]
+19B6 199B; [76 05 C6, 05, 05][76 0B, 05, 05]
+19B7 199B; [76 05 C6, 05, 05][76 0D 02, 05, 05]
+19BA 199B; [76 05 C6, 05, 05][76 0D 17, 05, 05]
+
+199C; [76 07, 05, 05]
+19B5 199C; [76 07, 05, 05][76 09 8E, 05, 05]
+19B6 199C; [76 07, 05, 05][76 0B, 05, 05]
+19DE; [76 07, 05, 20][76 0B, 05, 20]
+19DF; [76 07, 05, 20][76 0B, 05, 20][76 0F, 05, 20]
+19B7 199C; [76 07, 05, 05][76 0D 02, 05, 05]
+19BA 199C; [76 07, 05, 05][76 0D 17, 05, 05]
+
+199D; [76 09 02, 05, 05]
+19B5 199D; [76 09 02, 05, 05][76 09 8E, 05, 05]
+19B6 199D; [76 09 02, 05, 05][76 0B, 05, 05]
+19B7 199D; [76 09 02, 05, 05][76 0D 02, 05, 05]
+19BA 199D; [76 09 02, 05, 05][76 0D 17, 05, 05]
+
+199E; [76 09 09, 05, 05]
+19B5 199E; [76 09 09, 05, 05][76 09 8E, 05, 05]
+19B6 199E; [76 09 09, 05, 05][76 0B, 05, 05]
+19B7 199E; [76 09 09, 05, 05][76 0D 02, 05, 05]
+19BA 199E; [76 09 09, 05, 05][76 0D 17, 05, 05]
+
+199F; [76 09 10, 05, 05]
+19B5 199F; [76 09 10, 05, 05][76 09 8E, 05, 05]
+19B6 199F; [76 09 10, 05, 05][76 0B, 05, 05]
+19B7 199F; [76 09 10, 05, 05][76 0D 02, 05, 05]
+19BA 199F; [76 09 10, 05, 05][76 0D 17, 05, 05]
+
+19A0; [76 09 17, 05, 05]
+19B5 19A0; [76 09 17, 05, 05][76 09 8E, 05, 05]
+19B6 19A0; [76 09 17, 05, 05][76 0B, 05, 05]
+19B7 19A0; [76 09 17, 05, 05][76 0D 02, 05, 05]
+19BA 19A0; [76 09 17, 05, 05][76 0D 17, 05, 05]
+
+19A1; [76 09 1E, 05, 05]
+19B5 19A1; [76 09 1E, 05, 05][76 09 8E, 05, 05]
+19B6 19A1; [76 09 1E, 05, 05][76 0B, 05, 05]
+19B7 19A1; [76 09 1E, 05, 05][76 0D 02, 05, 05]
+19BA 19A1; [76 09 1E, 05, 05][76 0D 17, 05, 05]
+
+19A2; [76 09 25, 05, 05]
+19B5 19A2; [76 09 25, 05, 05][76 09 8E, 05, 05]
+19B6 19A2; [76 09 25, 05, 05][76 0B, 05, 05]
+19B7 19A2; [76 09 25, 05, 05][76 0D 02, 05, 05]
+19BA 19A2; [76 09 25, 05, 05][76 0D 17, 05, 05]
+
+19A3; [76 09 2C, 05, 05]
+19B5 19A3; [76 09 2C, 05, 05][76 09 8E, 05, 05]
+19B6 19A3; [76 09 2C, 05, 05][76 0B, 05, 05]
+19B7 19A3; [76 09 2C, 05, 05][76 0D 02, 05, 05]
+19BA 19A3; [76 09 2C, 05, 05][76 0D 17, 05, 05]
-17A6; [74 AF, 05, 05]
+19A4; [76 09 33, 05, 05]
+19B5 19A4; [76 09 33, 05, 05][76 09 8E, 05, 05]
+19B6 19A4; [76 09 33, 05, 05][76 0B, 05, 05]
+19B7 19A4; [76 09 33, 05, 05][76 0D 02, 05, 05]
+19BA 19A4; [76 09 33, 05, 05][76 0D 17, 05, 05]
-17A7; [74 B1, 05, 05]
+19A5; [76 09 3A, 05, 05]
+19B5 19A5; [76 09 3A, 05, 05][76 09 8E, 05, 05]
+19B6 19A5; [76 09 3A, 05, 05][76 0B, 05, 05]
+19B7 19A5; [76 09 3A, 05, 05][76 0D 02, 05, 05]
+19BA 19A5; [76 09 3A, 05, 05][76 0D 17, 05, 05]
-17A8; [74 B3, 05, 05]
+19A6; [76 09 41, 05, 05]
+19B5 19A6; [76 09 41, 05, 05][76 09 8E, 05, 05]
+19B6 19A6; [76 09 41, 05, 05][76 0B, 05, 05]
+19B7 19A6; [76 09 41, 05, 05][76 0D 02, 05, 05]
+19BA 19A6; [76 09 41, 05, 05][76 0D 17, 05, 05]
-17A9; [74 B5, 05, 05]
+19A7; [76 09 48, 05, 05]
+19B5 19A7; [76 09 48, 05, 05][76 09 8E, 05, 05]
+19B6 19A7; [76 09 48, 05, 05][76 0B, 05, 05]
+19B7 19A7; [76 09 48, 05, 05][76 0D 02, 05, 05]
+19BA 19A7; [76 09 48, 05, 05][76 0D 17, 05, 05]
-17AA; [74 B7, 05, 05]
+19A8; [76 09 4F, 05, 05]
+19B5 19A8; [76 09 4F, 05, 05][76 09 8E, 05, 05]
+19B6 19A8; [76 09 4F, 05, 05][76 0B, 05, 05]
+19B7 19A8; [76 09 4F, 05, 05][76 0D 02, 05, 05]
+19BA 19A8; [76 09 4F, 05, 05][76 0D 17, 05, 05]
-17AB; [74 B9, 05, 05]
+19A9; [76 09 56, 05, 05]
+19B5 19A9; [76 09 56, 05, 05][76 09 8E, 05, 05]
+19B6 19A9; [76 09 56, 05, 05][76 0B, 05, 05]
+19B7 19A9; [76 09 56, 05, 05][76 0D 02, 05, 05]
+19BA 19A9; [76 09 56, 05, 05][76 0D 17, 05, 05]
-17AC; [74 BB, 05, 05]
+19AA; [76 09 5D, 05, 05]
+19B5 19AA; [76 09 5D, 05, 05][76 09 8E, 05, 05]
+19B6 19AA; [76 09 5D, 05, 05][76 0B, 05, 05]
+19B7 19AA; [76 09 5D, 05, 05][76 0D 02, 05, 05]
+19BA 19AA; [76 09 5D, 05, 05][76 0D 17, 05, 05]
-17AD; [74 BD, 05, 05]
+19AB; [76 09 64, 05, 05]
+19B5 19AB; [76 09 64, 05, 05][76 09 8E, 05, 05]
+19B6 19AB; [76 09 64, 05, 05][76 0B, 05, 05]
+19B7 19AB; [76 09 64, 05, 05][76 0D 02, 05, 05]
+19BA 19AB; [76 09 64, 05, 05][76 0D 17, 05, 05]
-17AE; [74 BF, 05, 05]
+19B0; [76 09 6B, 05, 05]
-17AF; [74 C1, 05, 05]
+19B1; [76 09 72, 05, 05]
-17B0; [74 C3, 05, 05]
+19B2; [76 09 79, 05, 05]
-17B1; [74 C5, 05, 05]
+19B3; [76 09 80, 05, 05]
-17B2; [74 C7, 05, 05]
+19B4; [76 09 87, 05, 05]
-17B3; [74 C9, 05, 05]
+19B5; [76 09 8E, 05, 05]
-17B6; [74 CB, 05, 05]
+19B6; [76 0B, 05, 05]
-17B7; [74 CD, 05, 05]
+19B7; [76 0D 02, 05, 05]
-17B8; [74 CF, 05, 05]
+19B8; [76 0D 09, 05, 05]
-17B9; [74 D1, 05, 05]
+19B9; [76 0D 10, 05, 05]
-17BA; [74 D3, 05, 05]
+19BA; [76 0D 17, 05, 05]
-17BB; [74 D5, 05, 05]
+19BB; [76 0D 1E, 05, 05]
-17BC; [74 D7, 05, 05]
+19BC; [76 0D 25, 05, 05]
-17BD; [74 D9, 05, 05]
+19BD; [76 0D 2C, 05, 05]
-17BE; [74 DB, 05, 05]
+19BE; [76 0D 33, 05, 05]
-17BF; [74 DD, 05, 05]
+19BF; [76 0D 3A, 05, 05]
-17C0; [74 DF, 05, 05]
+19C0; [76 0D 41, 05, 05]
-17C1; [74 E1, 05, 05]
+19C1; [76 0F, 05, 05]
-17C2; [74 E3, 05, 05]
+19C2; [76 11 02, 05, 05]
-17C3; [74 E5, 05, 05]
+19C3; [76 11 09, 05, 05]
-17C4; [74 E7, 05, 05]
+19C4; [76 11 10, 05, 05]
-17C5; [74 E9, 05, 05]
+19C5; [76 11 17, 05, 05]
-17D2; [74 EB, 05, 05]
+19C6; [76 11 1E, 05, 05]
-FDD1 1950; [75 04 02, 05, 05] # TAI_LE first primary starts new lead byte (compressible)
+19C7; [76 11 25, 05, 05]
-1950; [75 04 09, 05, 05]
+19C8; [76 11 2C, 05, 05]
-1951; [75 04 10, 05, 05]
+19C9; [76 11 33, 05, 05]
-1952; [75 04 17, 05, 05]
+FDD1 1A20; [76 12 02, 05, 05] # Tai Tham first primary (compressible)
-1953; [75 04 1E, 05, 05]
+1A20; [76 12 09, 05, 05]
-1954; [75 04 25, 05, 05]
+1A21; [76 12 10, 05, 05]
-1955; [75 04 2C, 05, 05]
+1A22; [76 12 17, 05, 05]
-1956; [75 04 33, 05, 05]
+1A23; [76 12 1E, 05, 05]
-1957; [75 04 3A, 05, 05]
+1A24; [76 12 25, 05, 05]
-1958; [75 04 41, 05, 05]
+1A25; [76 12 2C, 05, 05]
-1959; [75 04 48, 05, 05]
+1A26; [76 14, 05, 05]
+1A58; [76 14, 05, 20]
+1A59; [76 14, 05, 20]
-195A; [75 04 4F, 05, 05]
+1A27; [76 16 02, 05, 05]
-195B; [75 04 56, 05, 05]
+1A28; [76 16 09, 05, 05]
-195C; [75 04 5D, 05, 05]
+1A29; [76 16 10, 05, 05]
-195D; [75 04 64, 05, 05]
+1A2A; [76 16 17, 05, 05]
-195E; [75 04 6B, 05, 05]
+1A2B; [76 16 1E, 05, 05]
-195F; [75 04 72, 05, 05]
+1A2C; [76 16 25, 05, 05]
-1960; [75 04 79, 05, 05]
+1A2D; [76 16 2C, 05, 05]
-1961; [75 04 80, 05, 05]
+1A2E; [76 16 33, 05, 05]
-1962; [75 04 87, 05, 05]
+1A2F; [76 16 3A, 05, 05]
-1963; [75 04 8E, 05, 05]
+1A30; [76 16 41, 05, 05]
-1964; [75 04 95, 05, 05]
+1A31; [76 16 48, 05, 05]
-1965; [75 04 9C, 05, 05]
+1A32; [76 16 4F, 05, 05]
-1966; [75 04 A3, 05, 05]
+1A33; [76 16 56, 05, 05]
-1967; [75 04 AA, 05, 05]
+1A34; [76 16 5D, 05, 05]
-1968; [75 04 B1, 05, 05]
+1A35; [76 16 64, 05, 05]
-1969; [75 04 B8, 05, 05]
+1A36; [76 16 6B, 05, 05]
-196A; [75 04 BF, 05, 05]
+1A37; [76 16 72, 05, 05]
-196B; [75 04 C6, 05, 05]
+1A38; [76 16 79, 05, 05]
-196C; [75 04 CD, 05, 05]
+1A39; [76 16 80, 05, 05]
-196D; [75 04 D4, 05, 05]
+1A3A; [76 16 87, 05, 05]
-1970; [75 04 DB, 05, 05]
+1A3B; [76 18, 05, 05]
+1A5A; [76 18, 05, 20]
+1A5B; [76 18, 05, 20]
-1971; [75 04 E2, 05, 05]
+1A3C; [76 1A 02, 05, 05]
-1972; [75 04 E9, 05, 05]
+1A3D; [76 1A 09, 05, 05]
-1973; [75 04 F0, 05, 05]
+1A3E; [76 1A 10, 05, 05]
-1974; [75 04 F7, 05, 05]
+1A3F; [76 1A 17, 05, 05]
-FDD1 1980; [75 05 02, 05, 05] # NEW_TAI_LUE first primary (compressible)
+1A40; [76 1A 1E, 05, 05]
-1980; [75 05 09, 05, 05]
-19B5 1980; [75 05 09, 05, 05][75 09 8E, 05, 05]
-19B6 1980; [75 05 09, 05, 05][75 0B, 05, 05]
-19B7 1980; [75 05 09, 05, 05][75 0D 02, 05, 05]
-19BA 1980; [75 05 09, 05, 05][75 0D 17, 05, 05]
+1A41; [76 1A 25, 05, 05]
-1981; [75 05 10, 05, 05]
-19B5 1981; [75 05 10, 05, 05][75 09 8E, 05, 05]
-19B6 1981; [75 05 10, 05, 05][75 0B, 05, 05]
-19B7 1981; [75 05 10, 05, 05][75 0D 02, 05, 05]
-19BA 1981; [75 05 10, 05, 05][75 0D 17, 05, 05]
+1A42; [76 1A 2C, 05, 05]
-1982; [75 05 17, 05, 05]
-19B5 1982; [75 05 17, 05, 05][75 09 8E, 05, 05]
-19B6 1982; [75 05 17, 05, 05][75 0B, 05, 05]
-19B7 1982; [75 05 17, 05, 05][75 0D 02, 05, 05]
-19BA 1982; [75 05 17, 05, 05][75 0D 17, 05, 05]
+1A43; [76 1A 33, 05, 05]
-1983; [75 05 1E, 05, 05]
-19B5 1983; [75 05 1E, 05, 05][75 09 8E, 05, 05]
-19B6 1983; [75 05 1E, 05, 05][75 0B, 05, 05]
-19B7 1983; [75 05 1E, 05, 05][75 0D 02, 05, 05]
-19BA 1983; [75 05 1E, 05, 05][75 0D 17, 05, 05]
+1A44; [76 1A 3A, 05, 05]
-1984; [75 05 25, 05, 05]
-19B5 1984; [75 05 25, 05, 05][75 09 8E, 05, 05]
-19B6 1984; [75 05 25, 05, 05][75 0B, 05, 05]
-19B7 1984; [75 05 25, 05, 05][75 0D 02, 05, 05]
-19BA 1984; [75 05 25, 05, 05][75 0D 17, 05, 05]
+1A45; [76 1A 41, 05, 05]
-1985; [75 05 2C, 05, 05]
-19B5 1985; [75 05 2C, 05, 05][75 09 8E, 05, 05]
-19B6 1985; [75 05 2C, 05, 05][75 0B, 05, 05]
-19B7 1985; [75 05 2C, 05, 05][75 0D 02, 05, 05]
-19BA 1985; [75 05 2C, 05, 05][75 0D 17, 05, 05]
+1A46; [76 1C, 05, 05]
+1A54; [76 1C, 05, 20][76 24, 05, 20][76 1C, 05, 20]
-1986; [75 05 33, 05, 05]
-19B5 1986; [75 05 33, 05, 05][75 09 8E, 05, 05]
-19B6 1986; [75 05 33, 05, 05][75 0B, 05, 05]
-19B7 1986; [75 05 33, 05, 05][75 0D 02, 05, 05]
-19BA 1986; [75 05 33, 05, 05][75 0D 17, 05, 05]
+1A47; [76 1E 02, 05, 05]
-1987; [75 05 3A, 05, 05]
-19B5 1987; [75 05 3A, 05, 05][75 09 8E, 05, 05]
-19B6 1987; [75 05 3A, 05, 05][75 0B, 05, 05]
-19B7 1987; [75 05 3A, 05, 05][75 0D 02, 05, 05]
-19BA 1987; [75 05 3A, 05, 05][75 0D 17, 05, 05]
+1A48; [76 1E 09, 05, 05]
-1988; [75 05 41, 05, 05]
-19B5 1988; [75 05 41, 05, 05][75 09 8E, 05, 05]
-19B6 1988; [75 05 41, 05, 05][75 0B, 05, 05]
-19B7 1988; [75 05 41, 05, 05][75 0D 02, 05, 05]
-19BA 1988; [75 05 41, 05, 05][75 0D 17, 05, 05]
-
-1989; [75 05 48, 05, 05]
-19B5 1989; [75 05 48, 05, 05][75 09 8E, 05, 05]
-19B6 1989; [75 05 48, 05, 05][75 0B, 05, 05]
-19B7 1989; [75 05 48, 05, 05][75 0D 02, 05, 05]
-19BA 1989; [75 05 48, 05, 05][75 0D 17, 05, 05]
-
-198A; [75 05 4F, 05, 05]
-19B5 198A; [75 05 4F, 05, 05][75 09 8E, 05, 05]
-19B6 198A; [75 05 4F, 05, 05][75 0B, 05, 05]
-19B7 198A; [75 05 4F, 05, 05][75 0D 02, 05, 05]
-19BA 198A; [75 05 4F, 05, 05][75 0D 17, 05, 05]
-
-198B; [75 05 56, 05, 05]
-19B5 198B; [75 05 56, 05, 05][75 09 8E, 05, 05]
-19B6 198B; [75 05 56, 05, 05][75 0B, 05, 05]
-19B7 198B; [75 05 56, 05, 05][75 0D 02, 05, 05]
-19BA 198B; [75 05 56, 05, 05][75 0D 17, 05, 05]
-
-198C; [75 05 5D, 05, 05]
-19B5 198C; [75 05 5D, 05, 05][75 09 8E, 05, 05]
-19B6 198C; [75 05 5D, 05, 05][75 0B, 05, 05]
-19B7 198C; [75 05 5D, 05, 05][75 0D 02, 05, 05]
-19BA 198C; [75 05 5D, 05, 05][75 0D 17, 05, 05]
-
-198D; [75 05 64, 05, 05]
-19B5 198D; [75 05 64, 05, 05][75 09 8E, 05, 05]
-19B6 198D; [75 05 64, 05, 05][75 0B, 05, 05]
-19B7 198D; [75 05 64, 05, 05][75 0D 02, 05, 05]
-19BA 198D; [75 05 64, 05, 05][75 0D 17, 05, 05]
-
-198E; [75 05 6B, 05, 05]
-19B5 198E; [75 05 6B, 05, 05][75 09 8E, 05, 05]
-19B6 198E; [75 05 6B, 05, 05][75 0B, 05, 05]
-19B7 198E; [75 05 6B, 05, 05][75 0D 02, 05, 05]
-19BA 198E; [75 05 6B, 05, 05][75 0D 17, 05, 05]
-
-198F; [75 05 72, 05, 05]
-19B5 198F; [75 05 72, 05, 05][75 09 8E, 05, 05]
-19B6 198F; [75 05 72, 05, 05][75 0B, 05, 05]
-19B7 198F; [75 05 72, 05, 05][75 0D 02, 05, 05]
-19BA 198F; [75 05 72, 05, 05][75 0D 17, 05, 05]
-
-1990; [75 05 79, 05, 05]
-19B5 1990; [75 05 79, 05, 05][75 09 8E, 05, 05]
-19B6 1990; [75 05 79, 05, 05][75 0B, 05, 05]
-19B7 1990; [75 05 79, 05, 05][75 0D 02, 05, 05]
-19BA 1990; [75 05 79, 05, 05][75 0D 17, 05, 05]
-
-1991; [75 05 80, 05, 05]
-19B5 1991; [75 05 80, 05, 05][75 09 8E, 05, 05]
-19B6 1991; [75 05 80, 05, 05][75 0B, 05, 05]
-19B7 1991; [75 05 80, 05, 05][75 0D 02, 05, 05]
-19BA 1991; [75 05 80, 05, 05][75 0D 17, 05, 05]
-
-1992; [75 05 87, 05, 05]
-19B5 1992; [75 05 87, 05, 05][75 09 8E, 05, 05]
-19B6 1992; [75 05 87, 05, 05][75 0B, 05, 05]
-19B7 1992; [75 05 87, 05, 05][75 0D 02, 05, 05]
-19BA 1992; [75 05 87, 05, 05][75 0D 17, 05, 05]
-
-1993; [75 05 8E, 05, 05]
-19B5 1993; [75 05 8E, 05, 05][75 09 8E, 05, 05]
-19B6 1993; [75 05 8E, 05, 05][75 0B, 05, 05]
-19B7 1993; [75 05 8E, 05, 05][75 0D 02, 05, 05]
-19BA 1993; [75 05 8E, 05, 05][75 0D 17, 05, 05]
-
-1994; [75 05 95, 05, 05]
-19B5 1994; [75 05 95, 05, 05][75 09 8E, 05, 05]
-19B6 1994; [75 05 95, 05, 05][75 0B, 05, 05]
-19B7 1994; [75 05 95, 05, 05][75 0D 02, 05, 05]
-19BA 1994; [75 05 95, 05, 05][75 0D 17, 05, 05]
-
-1995; [75 05 9C, 05, 05]
-19B5 1995; [75 05 9C, 05, 05][75 09 8E, 05, 05]
-19B6 1995; [75 05 9C, 05, 05][75 0B, 05, 05]
-19B7 1995; [75 05 9C, 05, 05][75 0D 02, 05, 05]
-19BA 1995; [75 05 9C, 05, 05][75 0D 17, 05, 05]
-
-1996; [75 05 A3, 05, 05]
-19B5 1996; [75 05 A3, 05, 05][75 09 8E, 05, 05]
-19B6 1996; [75 05 A3, 05, 05][75 0B, 05, 05]
-19B7 1996; [75 05 A3, 05, 05][75 0D 02, 05, 05]
-19BA 1996; [75 05 A3, 05, 05][75 0D 17, 05, 05]
-
-1997; [75 05 AA, 05, 05]
-19B5 1997; [75 05 AA, 05, 05][75 09 8E, 05, 05]
-19B6 1997; [75 05 AA, 05, 05][75 0B, 05, 05]
-19B7 1997; [75 05 AA, 05, 05][75 0D 02, 05, 05]
-19BA 1997; [75 05 AA, 05, 05][75 0D 17, 05, 05]
-
-1998; [75 05 B1, 05, 05]
-19B5 1998; [75 05 B1, 05, 05][75 09 8E, 05, 05]
-19B6 1998; [75 05 B1, 05, 05][75 0B, 05, 05]
-19B7 1998; [75 05 B1, 05, 05][75 0D 02, 05, 05]
-19BA 1998; [75 05 B1, 05, 05][75 0D 17, 05, 05]
-
-1999; [75 05 B8, 05, 05]
-19B5 1999; [75 05 B8, 05, 05][75 09 8E, 05, 05]
-19B6 1999; [75 05 B8, 05, 05][75 0B, 05, 05]
-19B7 1999; [75 05 B8, 05, 05][75 0D 02, 05, 05]
-19BA 1999; [75 05 B8, 05, 05][75 0D 17, 05, 05]
-
-199A; [75 05 BF, 05, 05]
-19B5 199A; [75 05 BF, 05, 05][75 09 8E, 05, 05]
-19B6 199A; [75 05 BF, 05, 05][75 0B, 05, 05]
-19B7 199A; [75 05 BF, 05, 05][75 0D 02, 05, 05]
-19BA 199A; [75 05 BF, 05, 05][75 0D 17, 05, 05]
-
-199B; [75 05 C6, 05, 05]
-19B5 199B; [75 05 C6, 05, 05][75 09 8E, 05, 05]
-19B6 199B; [75 05 C6, 05, 05][75 0B, 05, 05]
-19B7 199B; [75 05 C6, 05, 05][75 0D 02, 05, 05]
-19BA 199B; [75 05 C6, 05, 05][75 0D 17, 05, 05]
-
-199C; [75 07, 05, 05]
-19B5 199C; [75 07, 05, 05][75 09 8E, 05, 05]
-19B6 199C; [75 07, 05, 05][75 0B, 05, 05]
-19DE; [75 07, 05, 20][75 0B, 05, 20]
-19DF; [75 07, 05, 20][75 0B, 05, 20][75 0F, 05, 20]
-19B7 199C; [75 07, 05, 05][75 0D 02, 05, 05]
-19BA 199C; [75 07, 05, 05][75 0D 17, 05, 05]
-
-199D; [75 09 02, 05, 05]
-19B5 199D; [75 09 02, 05, 05][75 09 8E, 05, 05]
-19B6 199D; [75 09 02, 05, 05][75 0B, 05, 05]
-19B7 199D; [75 09 02, 05, 05][75 0D 02, 05, 05]
-19BA 199D; [75 09 02, 05, 05][75 0D 17, 05, 05]
-
-199E; [75 09 09, 05, 05]
-19B5 199E; [75 09 09, 05, 05][75 09 8E, 05, 05]
-19B6 199E; [75 09 09, 05, 05][75 0B, 05, 05]
-19B7 199E; [75 09 09, 05, 05][75 0D 02, 05, 05]
-19BA 199E; [75 09 09, 05, 05][75 0D 17, 05, 05]
-
-199F; [75 09 10, 05, 05]
-19B5 199F; [75 09 10, 05, 05][75 09 8E, 05, 05]
-19B6 199F; [75 09 10, 05, 05][75 0B, 05, 05]
-19B7 199F; [75 09 10, 05, 05][75 0D 02, 05, 05]
-19BA 199F; [75 09 10, 05, 05][75 0D 17, 05, 05]
-
-19A0; [75 09 17, 05, 05]
-19B5 19A0; [75 09 17, 05, 05][75 09 8E, 05, 05]
-19B6 19A0; [75 09 17, 05, 05][75 0B, 05, 05]
-19B7 19A0; [75 09 17, 05, 05][75 0D 02, 05, 05]
-19BA 19A0; [75 09 17, 05, 05][75 0D 17, 05, 05]
-
-19A1; [75 09 1E, 05, 05]
-19B5 19A1; [75 09 1E, 05, 05][75 09 8E, 05, 05]
-19B6 19A1; [75 09 1E, 05, 05][75 0B, 05, 05]
-19B7 19A1; [75 09 1E, 05, 05][75 0D 02, 05, 05]
-19BA 19A1; [75 09 1E, 05, 05][75 0D 17, 05, 05]
-
-19A2; [75 09 25, 05, 05]
-19B5 19A2; [75 09 25, 05, 05][75 09 8E, 05, 05]
-19B6 19A2; [75 09 25, 05, 05][75 0B, 05, 05]
-19B7 19A2; [75 09 25, 05, 05][75 0D 02, 05, 05]
-19BA 19A2; [75 09 25, 05, 05][75 0D 17, 05, 05]
-
-19A3; [75 09 2C, 05, 05]
-19B5 19A3; [75 09 2C, 05, 05][75 09 8E, 05, 05]
-19B6 19A3; [75 09 2C, 05, 05][75 0B, 05, 05]
-19B7 19A3; [75 09 2C, 05, 05][75 0D 02, 05, 05]
-19BA 19A3; [75 09 2C, 05, 05][75 0D 17, 05, 05]
+1A49; [76 1E 10, 05, 05]
-19A4; [75 09 33, 05, 05]
-19B5 19A4; [75 09 33, 05, 05][75 09 8E, 05, 05]
-19B6 19A4; [75 09 33, 05, 05][75 0B, 05, 05]
-19B7 19A4; [75 09 33, 05, 05][75 0D 02, 05, 05]
-19BA 19A4; [75 09 33, 05, 05][75 0D 17, 05, 05]
+1A4A; [76 1E 17, 05, 05]
-19A5; [75 09 3A, 05, 05]
-19B5 19A5; [75 09 3A, 05, 05][75 09 8E, 05, 05]
-19B6 19A5; [75 09 3A, 05, 05][75 0B, 05, 05]
-19B7 19A5; [75 09 3A, 05, 05][75 0D 02, 05, 05]
-19BA 19A5; [75 09 3A, 05, 05][75 0D 17, 05, 05]
+1A4B; [76 1E 1E, 05, 05]
-19A6; [75 09 41, 05, 05]
-19B5 19A6; [75 09 41, 05, 05][75 09 8E, 05, 05]
-19B6 19A6; [75 09 41, 05, 05][75 0B, 05, 05]
-19B7 19A6; [75 09 41, 05, 05][75 0D 02, 05, 05]
-19BA 19A6; [75 09 41, 05, 05][75 0D 17, 05, 05]
+1A4C; [76 1E 25, 05, 05]
-19A7; [75 09 48, 05, 05]
-19B5 19A7; [75 09 48, 05, 05][75 09 8E, 05, 05]
-19B6 19A7; [75 09 48, 05, 05][75 0B, 05, 05]
-19B7 19A7; [75 09 48, 05, 05][75 0D 02, 05, 05]
-19BA 19A7; [75 09 48, 05, 05][75 0D 17, 05, 05]
+1A53; [76 1E 2C, 05, 05]
-19A8; [75 09 4F, 05, 05]
-19B5 19A8; [75 09 4F, 05, 05][75 09 8E, 05, 05]
-19B6 19A8; [75 09 4F, 05, 05][75 0B, 05, 05]
-19B7 19A8; [75 09 4F, 05, 05][75 0D 02, 05, 05]
-19BA 19A8; [75 09 4F, 05, 05][75 0D 17, 05, 05]
+1A6B; [76 1E 33, 05, 05]
-19A9; [75 09 56, 05, 05]
-19B5 19A9; [75 09 56, 05, 05][75 09 8E, 05, 05]
-19B6 19A9; [75 09 56, 05, 05][75 0B, 05, 05]
-19B7 19A9; [75 09 56, 05, 05][75 0D 02, 05, 05]
-19BA 19A9; [75 09 56, 05, 05][75 0D 17, 05, 05]
+1A55; [76 1E 3A, 05, 05]
-19AA; [75 09 5D, 05, 05]
-19B5 19AA; [75 09 5D, 05, 05][75 09 8E, 05, 05]
-19B6 19AA; [75 09 5D, 05, 05][75 0B, 05, 05]
-19B7 19AA; [75 09 5D, 05, 05][75 0D 02, 05, 05]
-19BA 19AA; [75 09 5D, 05, 05][75 0D 17, 05, 05]
+1A56; [76 1E 41, 05, 05]
-19AB; [75 09 64, 05, 05]
-19B5 19AB; [75 09 64, 05, 05][75 09 8E, 05, 05]
-19B6 19AB; [75 09 64, 05, 05][75 0B, 05, 05]
-19B7 19AB; [75 09 64, 05, 05][75 0D 02, 05, 05]
-19BA 19AB; [75 09 64, 05, 05][75 0D 17, 05, 05]
+1A57; [76 1E 48, 05, 05]
-19B0; [75 09 6B, 05, 05]
+1A5C; [76 1E 4F, 05, 05]
-19B1; [75 09 72, 05, 05]
+1A5D; [76 1E 56, 05, 05]
-19B2; [75 09 79, 05, 05]
+1A5E; [76 1E 5D, 05, 05]
-19B3; [75 09 80, 05, 05]
+1A4D; [76 1E 64, 05, 05]
-19B4; [75 09 87, 05, 05]
+1A4E; [76 1E 6B, 05, 05]
-19B5; [75 09 8E, 05, 05]
+1A4F; [76 1E 72, 05, 05]
-19B6; [75 0B, 05, 05]
+1A50; [76 1E 79, 05, 05]
-19B7; [75 0D 02, 05, 05]
+1A51; [76 1E 80, 05, 05]
-19B8; [75 0D 09, 05, 05]
+1A52; [76 1E 87, 05, 05]
-19B9; [75 0D 10, 05, 05]
+1A61; [76 1E 8E, 05, 05]
-19BA; [75 0D 17, 05, 05]
+1A6C; [76 1E 95, 05, 05]
-19BB; [75 0D 1E, 05, 05]
+1A62; [76 1E 9C, 05, 05]
-19BC; [75 0D 25, 05, 05]
+1A63; [76 20, 05, 05]
+1A64; [76 20, 05, 20]
-19BD; [75 0D 2C, 05, 05]
+1A65; [76 22 02, 05, 05]
-19BE; [75 0D 33, 05, 05]
+1A66; [76 22 09, 05, 05]
-19BF; [75 0D 3A, 05, 05]
+1A67; [76 22 10, 05, 05]
-19C0; [75 0D 41, 05, 05]
+1A68; [76 22 17, 05, 05]
-19C1; [75 0F, 05, 05]
+1A69; [76 22 1E, 05, 05]
-19C2; [75 11 02, 05, 05]
+1A6A; [76 22 25, 05, 05]
-19C3; [75 11 09, 05, 05]
+1A6E; [76 22 2C, 05, 05]
-19C4; [75 11 10, 05, 05]
+1A6F; [76 22 33, 05, 05]
-19C5; [75 11 17, 05, 05]
+1A73; [76 22 3A, 05, 05]
-19C6; [75 11 1E, 05, 05]
+1A70; [76 22 41, 05, 05]
-19C7; [75 11 25, 05, 05]
+1A71; [76 22 48, 05, 05]
-19C8; [75 11 2C, 05, 05]
+1A72; [76 22 4F, 05, 05]
-19C9; [75 11 33, 05, 05]
+1A6D; [76 22 56, 05, 05]
-FDD1 1A20; [75 12 02, 05, 05] # Tai Tham first primary (compressible)
+1A60; [76 24, 05, 05]
-1A20; [75 12 09, 05, 05]
+FDD1 AA00; [76 26 02, 05, 05] # Cham first primary (compressible)
-1A21; [75 12 10, 05, 05]
+AA00; [76 26 09, 05, 05]
-1A22; [75 12 17, 05, 05]
+AA01; [76 26 10, 05, 05]
-1A23; [75 12 1E, 05, 05]
+AA02; [76 26 17, 05, 05]
-1A24; [75 12 25, 05, 05]
+AA03; [76 26 1E, 05, 05]
-1A25; [75 12 2C, 05, 05]
+AA04; [76 26 25, 05, 05]
-1A26; [75 14, 05, 05]
-1A58; [75 14, 05, 20]
-1A59; [75 14, 05, 20]
+AA05; [76 26 2C, 05, 05]
-1A27; [75 16 02, 05, 05]
+AA06; [76 26 33, 05, 05]
-1A28; [75 16 09, 05, 05]
+AA07; [76 26 3A, 05, 05]
-1A29; [75 16 10, 05, 05]
+AA08; [76 26 41, 05, 05]
-1A2A; [75 16 17, 05, 05]
+AA09; [76 26 48, 05, 05]
-1A2B; [75 16 1E, 05, 05]
+AA0A; [76 26 4F, 05, 05]
-1A2C; [75 16 25, 05, 05]
+AA0B; [76 26 56, 05, 05]
-1A2D; [75 16 2C, 05, 05]
+AA0C; [76 26 5D, 05, 05]
-1A2E; [75 16 33, 05, 05]
+AA0D; [76 26 64, 05, 05]
-1A2F; [75 16 3A, 05, 05]
+AA0E; [76 26 6B, 05, 05]
-1A30; [75 16 41, 05, 05]
+AA0F; [76 26 72, 05, 05]
-1A31; [75 16 48, 05, 05]
+AA10; [76 26 79, 05, 05]
-1A32; [75 16 4F, 05, 05]
+AA11; [76 26 80, 05, 05]
-1A33; [75 16 56, 05, 05]
+AA12; [76 26 87, 05, 05]
-1A34; [75 16 5D, 05, 05]
+AA13; [76 26 8E, 05, 05]
-1A35; [75 16 64, 05, 05]
+AA14; [76 26 95, 05, 05]
-1A36; [75 16 6B, 05, 05]
+AA15; [76 26 9C, 05, 05]
-1A37; [75 16 72, 05, 05]
+AA16; [76 26 A3, 05, 05]
-1A38; [75 16 79, 05, 05]
+AA17; [76 26 AA, 05, 05]
-1A39; [75 16 80, 05, 05]
+AA18; [76 26 B1, 05, 05]
-1A3A; [75 16 87, 05, 05]
+AA19; [76 26 B8, 05, 05]
-1A3B; [75 18, 05, 05]
-1A5A; [75 18, 05, 20]
-1A5B; [75 18, 05, 20]
+AA1A; [76 26 BF, 05, 05]
-1A3C; [75 1A 02, 05, 05]
+AA1B; [76 26 C6, 05, 05]
-1A3D; [75 1A 09, 05, 05]
+AA1C; [76 26 CD, 05, 05]
-1A3E; [75 1A 10, 05, 05]
+AA1D; [76 26 D4, 05, 05]
-1A3F; [75 1A 17, 05, 05]
+AA1E; [76 26 DB, 05, 05]
-1A40; [75 1A 1E, 05, 05]
+AA1F; [76 26 E2, 05, 05]
-1A41; [75 1A 25, 05, 05]
+AA20; [76 26 E9, 05, 05]
-1A42; [75 1A 2C, 05, 05]
+AA21; [76 26 F0, 05, 05]
-1A43; [75 1A 33, 05, 05]
+AA22; [76 26 F7, 05, 05]
-1A44; [75 1A 3A, 05, 05]
+AA23; [76 26 FE, 05, 05]
-1A45; [75 1A 41, 05, 05]
+AA24; [76 27 07, 05, 05]
-1A46; [75 1C, 05, 05]
-1A54; [75 1C, 05, 20][75 24, 05, 20][75 1C, 05, 20]
+AA25; [76 27 0E, 05, 05]
-1A47; [75 1E 02, 05, 05]
+AA26; [76 27 15, 05, 05]
-1A48; [75 1E 09, 05, 05]
+AA27; [76 27 1C, 05, 05]
-1A49; [75 1E 10, 05, 05]
+AA28; [76 27 23, 05, 05]
-1A4A; [75 1E 17, 05, 05]
+AA33; [76 27 2A, 05, 05]
-1A4B; [75 1E 1E, 05, 05]
+AA34; [76 27 31, 05, 05]
-1A4C; [75 1E 25, 05, 05]
+AA35; [76 27 38, 05, 05]
-1A53; [75 1E 2C, 05, 05]
+AA36; [76 27 3F, 05, 05]
-1A6B; [75 1E 33, 05, 05]
+AA29; [76 27 46, 05, 05]
-1A55; [75 1E 3A, 05, 05]
+AA2A; [76 27 4D, 05, 05]
-1A56; [75 1E 41, 05, 05]
+AA2B; [76 27 54, 05, 05]
-1A57; [75 1E 48, 05, 05]
+AA2C; [76 27 5B, 05, 05]
-1A5C; [75 1E 4F, 05, 05]
+AA2D; [76 27 62, 05, 05]
-1A5D; [75 1E 56, 05, 05]
+AA2E; [76 27 69, 05, 05]
-1A5E; [75 1E 5D, 05, 05]
+AA2F; [76 27 70, 05, 05]
-1A4D; [75 1E 64, 05, 05]
+AA30; [76 27 77, 05, 05]
-1A4E; [75 1E 6B, 05, 05]
+AA31; [76 27 7E, 05, 05]
-1A4F; [75 1E 72, 05, 05]
+AA32; [76 27 85, 05, 05]
-1A50; [75 1E 79, 05, 05]
+AA40; [76 27 8C, 05, 05]
-1A51; [75 1E 80, 05, 05]
+AA41; [76 27 93, 05, 05]
-1A52; [75 1E 87, 05, 05]
+AA42; [76 27 9A, 05, 05]
-1A61; [75 1E 8E, 05, 05]
+AA43; [76 27 A1, 05, 05]
-1A6C; [75 1E 95, 05, 05]
+AA44; [76 27 A8, 05, 05]
-1A62; [75 1E 9C, 05, 05]
+AA45; [76 27 AF, 05, 05]
-1A63; [75 20, 05, 05]
-1A64; [75 20, 05, 20]
+AA46; [76 27 B6, 05, 05]
-1A65; [75 22 02, 05, 05]
+AA47; [76 27 BD, 05, 05]
-1A66; [75 22 09, 05, 05]
+AA48; [76 27 C4, 05, 05]
-1A67; [75 22 10, 05, 05]
+AA49; [76 27 CB, 05, 05]
-1A68; [75 22 17, 05, 05]
+AA4A; [76 27 D2, 05, 05]
-1A69; [75 22 1E, 05, 05]
+AA4B; [76 27 D9, 05, 05]
-1A6A; [75 22 25, 05, 05]
+AA4C; [76 27 E0, 05, 05]
-1A6E; [75 22 2C, 05, 05]
+AA4D; [76 27 E7, 05, 05]
-1A6F; [75 22 33, 05, 05]
+FDD1 1B05; [76 28 02, 05, 05] # Balinese first primary (compressible)
-1A73; [75 22 3A, 05, 05]
+1B05; [76 28 09, 05, 05]
-1A70; [75 22 41, 05, 05]
+1B05 1B35; [76 28 10, 05, 05]
+1B06; [76 28 10, 05, 05]
-1A71; [75 22 48, 05, 05]
+1B07; [76 28 17, 05, 05]
-1A72; [75 22 4F, 05, 05]
+1B07 1B35; [76 28 1E, 05, 05]
+1B08; [76 28 1E, 05, 05]
-1A6D; [75 22 56, 05, 05]
+1B09; [76 28 25, 05, 05]
-1A60; [75 24, 05, 05]
+1B09 1B35; [76 28 2C, 05, 05]
+1B0A; [76 28 2C, 05, 05]
-FDD1 AA00; [75 26 02, 05, 05] # Cham first primary (compressible)
+1B0B; [76 28 33, 05, 05]
-AA00; [75 26 09, 05, 05]
+1B0B 1B35; [76 28 3A, 05, 05]
+1B0C; [76 28 3A, 05, 05]
-AA01; [75 26 10, 05, 05]
+1B0D; [76 28 41, 05, 05]
-AA02; [75 26 17, 05, 05]
+1B0D 1B35; [76 28 48, 05, 05]
+1B0E; [76 28 48, 05, 05]
-AA03; [75 26 1E, 05, 05]
+1B0F; [76 28 4F, 05, 05]
-AA04; [75 26 25, 05, 05]
+1B10; [76 28 56, 05, 05]
-AA05; [75 26 2C, 05, 05]
+1B11; [76 28 5D, 05, 05]
-AA06; [75 26 33, 05, 05]
+1B11 1B35; [76 28 64, 05, 05]
+1B12; [76 28 64, 05, 05]
-AA07; [75 26 3A, 05, 05]
+1B13; [76 28 6B, 05, 05]
-AA08; [75 26 41, 05, 05]
+1B45; [76 28 72, 05, 05]
-AA09; [75 26 48, 05, 05]
+1B46; [76 28 79, 05, 05]
-AA0A; [75 26 4F, 05, 05]
+1B14; [76 28 80, 05, 05]
-AA0B; [75 26 56, 05, 05]
+1B15; [76 28 87, 05, 05]
-AA0C; [75 26 5D, 05, 05]
+1B16; [76 28 8E, 05, 05]
-AA0D; [75 26 64, 05, 05]
+1B17; [76 28 95, 05, 05]
-AA0E; [75 26 6B, 05, 05]
+1B18; [76 28 9C, 05, 05]
-AA0F; [75 26 72, 05, 05]
+1B19; [76 28 A3, 05, 05]
-AA10; [75 26 79, 05, 05]
+1B1A; [76 28 AA, 05, 05]
-AA11; [75 26 80, 05, 05]
+1B1B; [76 28 B1, 05, 05]
-AA12; [75 26 87, 05, 05]
+1B1C; [76 28 B8, 05, 05]
-AA13; [75 26 8E, 05, 05]
+1B1D; [76 28 BF, 05, 05]
-AA14; [75 26 95, 05, 05]
+1B1E; [76 28 C6, 05, 05]
-AA15; [75 26 9C, 05, 05]
+1B1F; [76 28 CD, 05, 05]
-AA16; [75 26 A3, 05, 05]
+1B20; [76 28 D4, 05, 05]
-AA17; [75 26 AA, 05, 05]
+1B21; [76 28 DB, 05, 05]
-AA18; [75 26 B1, 05, 05]
+1B22; [76 28 E2, 05, 05]
-AA19; [75 26 B8, 05, 05]
+1B47; [76 28 E9, 05, 05]
-AA1A; [75 26 BF, 05, 05]
+1B23; [76 28 F0, 05, 05]
-AA1B; [75 26 C6, 05, 05]
+1B24; [76 28 F7, 05, 05]
-AA1C; [75 26 CD, 05, 05]
+1B25; [76 28 FE, 05, 05]
-AA1D; [75 26 D4, 05, 05]
+1B26; [76 29 07, 05, 05]
-AA1E; [75 26 DB, 05, 05]
+1B27; [76 29 0E, 05, 05]
-AA1F; [75 26 E2, 05, 05]
+1B48; [76 29 15, 05, 05]
-AA20; [75 26 E9, 05, 05]
+1B28; [76 29 1C, 05, 05]
-AA21; [75 26 F0, 05, 05]
+1B29; [76 29 23, 05, 05]
-AA22; [75 26 F7, 05, 05]
+1B2A; [76 29 2A, 05, 05]
-AA23; [75 26 FE, 05, 05]
+1B2B; [76 29 31, 05, 05]
-AA24; [75 27 07, 05, 05]
+1B2C; [76 29 38, 05, 05]
-AA25; [75 27 0E, 05, 05]
+1B2D; [76 29 3F, 05, 05]
-AA26; [75 27 15, 05, 05]
+1B2E; [76 29 46, 05, 05]
-AA27; [75 27 1C, 05, 05]
+1B2F; [76 29 4D, 05, 05]
-AA28; [75 27 23, 05, 05]
+1B49; [76 29 54, 05, 05]
-AA33; [75 27 2A, 05, 05]
+1B30; [76 29 5B, 05, 05]
-AA34; [75 27 31, 05, 05]
+1B31; [76 29 62, 05, 05]
-AA35; [75 27 38, 05, 05]
+1B32; [76 29 69, 05, 05]
-AA36; [75 27 3F, 05, 05]
+1B4A; [76 29 70, 05, 05]
-AA29; [75 27 46, 05, 05]
+1B4B; [76 29 77, 05, 05]
-AA2A; [75 27 4D, 05, 05]
+1B33; [76 29 7E, 05, 05]
-AA2B; [75 27 54, 05, 05]
+1B35; [76 29 85, 05, 05]
-AA2C; [75 27 5B, 05, 05]
+1B36; [76 29 8C, 05, 05]
-AA2D; [75 27 62, 05, 05]
+1B37; [76 29 93, 05, 05]
-AA2E; [75 27 69, 05, 05]
+1B38; [76 29 9A, 05, 05]
-AA2F; [75 27 70, 05, 05]
+1B39; [76 29 A1, 05, 05]
-AA30; [75 27 77, 05, 05]
+1B3A; [76 29 A8, 05, 05]
-AA31; [75 27 7E, 05, 05]
+1B3A 1B35; [76 29 AF, 05, 05]
+1B3B; [76 29 AF, 05, 05]
-AA32; [75 27 85, 05, 05]
+1B3C; [76 29 B6, 05, 05]
-AA40; [75 27 8C, 05, 05]
+1B3C 1B35; [76 29 BD, 05, 05]
+1B3D; [76 29 BD, 05, 05]
-AA41; [75 27 93, 05, 05]
+1B3E; [76 29 C4, 05, 05]
-AA42; [75 27 9A, 05, 05]
+1B3F; [76 29 CB, 05, 05]
-AA43; [75 27 A1, 05, 05]
+1B3E 1B35; [76 29 D2, 05, 05]
+1B40; [76 29 D2, 05, 05]
-AA44; [75 27 A8, 05, 05]
+1B3F 1B35; [76 29 D9, 05, 05]
+1B41; [76 29 D9, 05, 05]
-AA45; [75 27 AF, 05, 05]
+1B42; [76 29 E0, 05, 05]
-AA46; [75 27 B6, 05, 05]
+1B42 1B35; [76 29 E7, 05, 05]
+1B43; [76 29 E7, 05, 05]
-AA47; [75 27 BD, 05, 05]
+1B44; [76 29 EE, 05, 05]
-AA48; [75 27 C4, 05, 05]
+FDD1 A984; [76 2A 02, 05, 05] # Javanese first primary (compressible)
-AA49; [75 27 CB, 05, 05]
+A984; [76 2A 09, 05, 05]
-AA4A; [75 27 D2, 05, 05]
+A985; [76 2A 10, 05, 05]
-AA4B; [75 27 D9, 05, 05]
+A986; [76 2A 17, 05, 05]
-AA4C; [75 27 E0, 05, 05]
+A987; [76 2A 1E, 05, 05]
-AA4D; [75 27 E7, 05, 05]
+A988; [76 2A 25, 05, 05]
-FDD1 1B05; [75 28 02, 05, 05] # Balinese first primary (compressible)
+A989; [76 2A 2C, 05, 05]
-1B05; [75 28 09, 05, 05]
+A98A; [76 2A 33, 05, 05]
-1B05 1B35; [75 28 10, 05, 05]
-1B06; [75 28 10, 05, 05]
+A98B; [76 2A 3A, 05, 05]
-1B07; [75 28 17, 05, 05]
+A98C; [76 2A 41, 05, 05]
-1B07 1B35; [75 28 1E, 05, 05]
-1B08; [75 28 1E, 05, 05]
+A98D; [76 2A 48, 05, 05]
-1B09; [75 28 25, 05, 05]
+A98E; [76 2A 4F, 05, 05]
-1B09 1B35; [75 28 2C, 05, 05]
-1B0A; [75 28 2C, 05, 05]
+A98F; [76 2A 56, 05, 05]
-1B0B; [75 28 33, 05, 05]
+A990; [76 2A 5D, 05, 05]
-1B0B 1B35; [75 28 3A, 05, 05]
-1B0C; [75 28 3A, 05, 05]
+A991; [76 2A 64, 05, 05]
-1B0D; [75 28 41, 05, 05]
+A992; [76 2A 6B, 05, 05]
-1B0D 1B35; [75 28 48, 05, 05]
-1B0E; [75 28 48, 05, 05]
+A993; [76 2A 72, 05, 05]
-1B0F; [75 28 4F, 05, 05]
+A994; [76 2A 79, 05, 05]
-1B10; [75 28 56, 05, 05]
+A995; [76 2A 80, 05, 05]
-1B11; [75 28 5D, 05, 05]
+A996; [76 2A 87, 05, 05]
-1B11 1B35; [75 28 64, 05, 05]
-1B12; [75 28 64, 05, 05]
+A997; [76 2A 8E, 05, 05]
-1B13; [75 28 6B, 05, 05]
+A998; [76 2A 95, 05, 05]
-1B45; [75 28 72, 05, 05]
+A999; [76 2A 9C, 05, 05]
-1B46; [75 28 79, 05, 05]
+A99A; [76 2A A3, 05, 05]
-1B14; [75 28 80, 05, 05]
+A99B; [76 2A AA, 05, 05]
-1B15; [75 28 87, 05, 05]
+A99C; [76 2A B1, 05, 05]
-1B16; [75 28 8E, 05, 05]
+A99D; [76 2A B8, 05, 05]
-1B17; [75 28 95, 05, 05]
+A99E; [76 2A BF, 05, 05]
-1B18; [75 28 9C, 05, 05]
+A99F; [76 2A C6, 05, 05]
-1B19; [75 28 A3, 05, 05]
+A9A0; [76 2A CD, 05, 05]
-1B1A; [75 28 AA, 05, 05]
+A9A1; [76 2A D4, 05, 05]
-1B1B; [75 28 B1, 05, 05]
+A9A2; [76 2A DB, 05, 05]
-1B1C; [75 28 B8, 05, 05]
+A9A3; [76 2A E2, 05, 05]
-1B1D; [75 28 BF, 05, 05]
+A9A4; [76 2A E9, 05, 05]
-1B1E; [75 28 C6, 05, 05]
+A9A5; [76 2A F0, 05, 05]
-1B1F; [75 28 CD, 05, 05]
+A9A6; [76 2A F7, 05, 05]
-1B20; [75 28 D4, 05, 05]
+A9A7; [76 2A FE, 05, 05]
-1B21; [75 28 DB, 05, 05]
+A9A8; [76 2B 07, 05, 05]
-1B22; [75 28 E2, 05, 05]
+A9A9; [76 2B 0E, 05, 05]
-1B47; [75 28 E9, 05, 05]
+A9AA; [76 2B 15, 05, 05]
-1B23; [75 28 F0, 05, 05]
+A9BE; [76 2B 1C, 05, 05]
-1B24; [75 28 F7, 05, 05]
+A9AB; [76 2D, 05, 05]
+A9AC; [76 2D, 05, 20]
-1B25; [75 28 FE, 05, 05]
+A9BF; [76 2F 02, 05, 05]
-1B26; [75 29 07, 05, 05]
+A9AD; [76 2F 09, 05, 05]
-1B27; [75 29 0E, 05, 05]
+A9AE; [76 2F 10, 05, 05]
-1B48; [75 29 15, 05, 05]
+A9AF; [76 2F 17, 05, 05]
-1B28; [75 29 1C, 05, 05]
+A9B0; [76 2F 1E, 05, 05]
-1B29; [75 29 23, 05, 05]
+A9B1; [76 2F 25, 05, 05]
-1B2A; [75 29 2A, 05, 05]
+A9B2; [76 2F 2C, 05, 05]
-1B2B; [75 29 31, 05, 05]
+A9B4; [76 2F 33, 05, 05]
-1B2C; [75 29 38, 05, 05]
+A9BC; [76 2F 3A, 05, 05]
-1B2D; [75 29 3F, 05, 05]
+A9B6; [76 2F 41, 05, 05]
-1B2E; [75 29 46, 05, 05]
+A9B7; [76 2F 48, 05, 05]
-1B2F; [75 29 4D, 05, 05]
+A9B8; [76 2F 4F, 05, 05]
-1B49; [75 29 54, 05, 05]
+A9B9; [76 2F 56, 05, 05]
-1B30; [75 29 5B, 05, 05]
+A9BD; [76 2F 5D, 05, 05]
-1B31; [75 29 62, 05, 05]
+A9BA; [76 2F 64, 05, 05]
-1B32; [75 29 69, 05, 05]
+A9BB; [76 2F 6B, 05, 05]
-1B4A; [75 29 70, 05, 05]
+A9B5; [76 2F 72, 05, 05]
-1B4B; [75 29 77, 05, 05]
+A9C0; [76 2F 79, 05, 05]
-1B33; [75 29 7E, 05, 05]
+FDD1 1826; [76 30 02, 05, 05] # MONGOLIAN first primary (compressible)
-1B35; [75 29 85, 05, 05]
+1880; [76 30 09, 05, 05]
-1B36; [75 29 8C, 05, 05]
+1881; [76 30 10, 05, 05]
-1B37; [75 29 93, 05, 05]
+1882; [76 30 17, 05, 05]
-1B38; [75 29 9A, 05, 05]
+1883; [76 30 1E, 05, 05]
-1B39; [75 29 A1, 05, 05]
+1884; [76 30 25, 05, 05]
-1B3A; [75 29 A8, 05, 05]
+1885; [76 30 2C, 05, 05]
-1B3A 1B35; [75 29 AF, 05, 05]
-1B3B; [75 29 AF, 05, 05]
+1886; [76 30 33, 05, 05]
-1B3C; [75 29 B6, 05, 05]
+1843; [76 30 3A, 05, 05]
-1B3C 1B35; [75 29 BD, 05, 05]
-1B3D; [75 29 BD, 05, 05]
+1820; [76 30 41, 05, 05]
-1B3E; [75 29 C4, 05, 05]
+1887; [76 30 48, 05, 05]
-1B3F; [75 29 CB, 05, 05]
+1821; [76 30 4F, 05, 05]
-1B3E 1B35; [75 29 D2, 05, 05]
-1B40; [75 29 D2, 05, 05]
+1844; [76 30 56, 05, 05]
-1B3F 1B35; [75 29 D9, 05, 05]
-1B41; [75 29 D9, 05, 05]
+185D; [76 30 5D, 05, 05]
-1B42; [75 29 E0, 05, 05]
+1822; [76 30 64, 05, 05]
-1B42 1B35; [75 29 E7, 05, 05]
-1B43; [75 29 E7, 05, 05]
+1845; [76 30 6B, 05, 05]
-1B44; [75 29 EE, 05, 05]
+185E; [76 30 72, 05, 05]
-FDD1 A984; [75 2A 02, 05, 05] # Javanese first primary (compressible)
+1873; [76 30 79, 05, 05]
-A984; [75 2A 09, 05, 05]
+1888; [76 30 80, 05, 05]
-A985; [75 2A 10, 05, 05]
+185F; [76 30 87, 05, 05]
-A986; [75 2A 17, 05, 05]
+1823; [76 30 8E, 05, 05]
-A987; [75 2A 1E, 05, 05]
+1846; [76 30 95, 05, 05]
-A988; [75 2A 25, 05, 05]
+1824; [76 30 9C, 05, 05]
-A989; [75 2A 2C, 05, 05]
+1847; [76 30 A3, 05, 05]
-A98A; [75 2A 33, 05, 05]
+1861; [76 30 AA, 05, 05]
-A98B; [75 2A 3A, 05, 05]
+1825; [76 30 B1, 05, 05]
-A98C; [75 2A 41, 05, 05]
+1848; [76 30 B8, 05, 05]
-A98D; [75 2A 48, 05, 05]
+1826; [76 30 BF, 05, 05]
-A98E; [75 2A 4F, 05, 05]
+1849; [76 30 C6, 05, 05]
-A98F; [75 2A 56, 05, 05]
+1860; [76 30 CD, 05, 05]
-A990; [75 2A 5D, 05, 05]
+1827; [76 30 D4, 05, 05]
-A991; [75 2A 64, 05, 05]
+1828; [76 30 DB, 05, 05]
-A992; [75 2A 6B, 05, 05]
+1829; [76 30 E2, 05, 05]
-A993; [75 2A 72, 05, 05]
+184A; [76 30 E9, 05, 05]
-A994; [75 2A 79, 05, 05]
+1862; [76 30 F0, 05, 05]
-A995; [75 2A 80, 05, 05]
+188A; [76 30 F7, 05, 05]
-A996; [75 2A 87, 05, 05]
+189B; [76 30 FE, 05, 05]
-A997; [75 2A 8E, 05, 05]
+182A; [76 31 07, 05, 05]
-A998; [75 2A 95, 05, 05]
+184B; [76 31 0E, 05, 05]
-A999; [75 2A 9C, 05, 05]
+182B; [76 31 15, 05, 05]
-A99A; [75 2A A3, 05, 05]
+184C; [76 31 1C, 05, 05]
-A99B; [75 2A AA, 05, 05]
+1866; [76 31 23, 05, 05]
-A99C; [75 2A B1, 05, 05]
+182C; [76 31 2A, 05, 05]
-A99D; [75 2A B8, 05, 05]
+184D; [76 31 31, 05, 05]
-A99E; [75 2A BF, 05, 05]
+182D; [76 31 38, 05, 05]
-A99F; [75 2A C6, 05, 05]
+184E; [76 31 3F, 05, 05]
-A9A0; [75 2A CD, 05, 05]
+1864; [76 31 46, 05, 05]
-A9A1; [75 2A D4, 05, 05]
+189A; [76 31 4D, 05, 05]
-A9A2; [75 2A DB, 05, 05]
+1865; [76 31 54, 05, 05]
-A9A3; [75 2A E2, 05, 05]
+182E; [76 31 5B, 05, 05]
-A9A4; [75 2A E9, 05, 05]
+184F; [76 31 62, 05, 05]
-A9A5; [75 2A F0, 05, 05]
+182F; [76 31 69, 05, 05]
-A9A6; [75 2A F7, 05, 05]
+1830; [76 31 70, 05, 05]
-A9A7; [75 2A FE, 05, 05]
+1831; [76 31 77, 05, 05]
-A9A8; [75 2B 07, 05, 05]
+1867; [76 31 7E, 05, 05]
-A9A9; [75 2B 0E, 05, 05]
+189C; [76 31 85, 05, 05]
-A9AA; [75 2B 15, 05, 05]
+189D; [76 31 8C, 05, 05]
-A9BE; [75 2B 1C, 05, 05]
+18A2; [76 31 93, 05, 05]
-A9AB; [75 2D, 05, 05]
-A9AC; [75 2D, 05, 20]
+18A4; [76 31 9A, 05, 05]
-A9BF; [75 2F 02, 05, 05]
+18A5; [76 31 A1, 05, 05]
-A9AD; [75 2F 09, 05, 05]
+1832; [76 31 A8, 05, 05]
-A9AE; [75 2F 10, 05, 05]
+1850; [76 31 AF, 05, 05]
-A9AF; [75 2F 17, 05, 05]
+1868; [76 31 B6, 05, 05]
-A9B0; [75 2F 1E, 05, 05]
+1833; [76 31 BD, 05, 05]
-A9B1; [75 2F 25, 05, 05]
+1851; [76 31 C4, 05, 05]
-A9B2; [75 2F 2C, 05, 05]
+1869; [76 31 CB, 05, 05]
-A9B4; [75 2F 33, 05, 05]
+1834; [76 31 D2, 05, 05]
-A9BC; [75 2F 3A, 05, 05]
+1852; [76 31 D9, 05, 05]
-A9B6; [75 2F 41, 05, 05]
+1871; [76 31 E0, 05, 05]
-A9B7; [75 2F 48, 05, 05]
+1878; [76 31 E7, 05, 05]
-A9B8; [75 2F 4F, 05, 05]
+185C; [76 31 EE, 05, 05]
-A9B9; [75 2F 56, 05, 05]
+188B; [76 31 F5, 05, 05]
-A9BD; [75 2F 5D, 05, 05]
+1835; [76 31 FC, 05, 05]
-A9BA; [75 2F 64, 05, 05]
+1853; [76 32 05, 05, 05]
-A9BB; [75 2F 6B, 05, 05]
+186A; [76 32 0C, 05, 05]
-A9B5; [75 2F 72, 05, 05]
+1877; [76 32 13, 05, 05]
-A9C0; [75 2F 79, 05, 05]
+1836; [76 32 1A, 05, 05]
-FDD1 1826; [75 30 02, 05, 05] # MONGOLIAN first primary (compressible)
+1855; [76 32 21, 05, 05]
-1880; [75 30 09, 05, 05]
+1872; [76 32 28, 05, 05]
-1881; [75 30 10, 05, 05]
+1837; [76 32 2F, 05, 05]
-1882; [75 30 17, 05, 05]
+1875; [76 32 36, 05, 05]
-1883; [75 30 1E, 05, 05]
+1838; [76 32 3D, 05, 05]
-1884; [75 30 25, 05, 05]
+1856; [76 32 44, 05, 05]
-1885; [75 30 2C, 05, 05]
+1839; [76 32 4B, 05, 05]
-1886; [75 30 33, 05, 05]
+186B; [76 32 52, 05, 05]
-1843; [75 30 3A, 05, 05]
+1876; [76 32 59, 05, 05]
-1820; [75 30 41, 05, 05]
+183A; [76 32 60, 05, 05]
-1887; [75 30 48, 05, 05]
+1857; [76 32 67, 05, 05]
-1821; [75 30 4F, 05, 05]
+1863; [76 32 6E, 05, 05]
-1844; [75 30 56, 05, 05]
+1874; [76 32 75, 05, 05]
-185D; [75 30 5D, 05, 05]
+1889; [76 32 7C, 05, 05]
-1822; [75 30 64, 05, 05]
+183B; [76 32 83, 05, 05]
-1845; [75 30 6B, 05, 05]
+183C; [76 32 8A, 05, 05]
-185E; [75 30 72, 05, 05]
+1854; [76 32 91, 05, 05]
-1873; [75 30 79, 05, 05]
+186E; [76 32 98, 05, 05]
-1888; [75 30 80, 05, 05]
+183D; [76 32 9F, 05, 05]
-185F; [75 30 87, 05, 05]
+186F; [76 32 A6, 05, 05]
-1823; [75 30 8E, 05, 05]
+1858; [76 32 AD, 05, 05]
-1846; [75 30 95, 05, 05]
+186C; [76 32 B4, 05, 05]
-1824; [75 30 9C, 05, 05]
+183E; [76 32 BB, 05, 05]
-1847; [75 30 A3, 05, 05]
+1859; [76 32 C2, 05, 05]
-1861; [75 30 AA, 05, 05]
+186D; [76 32 C9, 05, 05]
-1825; [75 30 B1, 05, 05]
+183F; [76 32 D0, 05, 05]
-1848; [75 30 B8, 05, 05]
+1840; [76 32 D7, 05, 05]
-1826; [75 30 BF, 05, 05]
+1841; [76 32 DE, 05, 05]
-1849; [75 30 C6, 05, 05]
+1842; [76 32 E5, 05, 05]
-1860; [75 30 CD, 05, 05]
+185A; [76 32 EC, 05, 05]
-1827; [75 30 D4, 05, 05]
+185B; [76 32 F3, 05, 05]
-1828; [75 30 DB, 05, 05]
+1870; [76 32 FA, 05, 05]
-1829; [75 30 E2, 05, 05]
+188C; [76 33 03, 05, 05]
-184A; [75 30 E9, 05, 05]
+189E; [76 33 0A, 05, 05]
-1862; [75 30 F0, 05, 05]
+188D; [76 33 11, 05, 05]
-188A; [75 30 F7, 05, 05]
+188E; [76 33 18, 05, 05]
-189B; [75 30 FE, 05, 05]
+189F; [76 33 1F, 05, 05]
-182A; [75 31 07, 05, 05]
+188F; [76 33 26, 05, 05]
-184B; [75 31 0E, 05, 05]
+1890; [76 33 2D, 05, 05]
-182B; [75 31 15, 05, 05]
+1898; [76 33 34, 05, 05]
-184C; [75 31 1C, 05, 05]
+18A0; [76 33 3B, 05, 05]
-1866; [75 31 23, 05, 05]
+1891; [76 33 42, 05, 05]
-182C; [75 31 2A, 05, 05]
+18A1; [76 33 49, 05, 05]
-184D; [75 31 31, 05, 05]
+1892; [76 33 50, 05, 05]
-182D; [75 31 38, 05, 05]
+1893; [76 33 57, 05, 05]
-184E; [75 31 3F, 05, 05]
+18A8; [76 33 5E, 05, 05]
-1864; [75 31 46, 05, 05]
+1894; [76 33 65, 05, 05]
-189A; [75 31 4D, 05, 05]
+18A3; [76 33 6C, 05, 05]
-1865; [75 31 54, 05, 05]
+1895; [76 33 73, 05, 05]
-182E; [75 31 5B, 05, 05]
+1899; [76 33 7A, 05, 05]
-184F; [75 31 62, 05, 05]
+1896; [76 33 81, 05, 05]
-182F; [75 31 69, 05, 05]
+1897; [76 33 88, 05, 05]
-1830; [75 31 70, 05, 05]
+18A6; [76 33 8F, 05, 05]
-1831; [75 31 77, 05, 05]
+18A7; [76 33 96, 05, 05]
-1867; [75 31 7E, 05, 05]
+18AA; [76 33 9D, 05, 05]
-189C; [75 31 85, 05, 05]
+18A9; [76 33 A4, 05, 05]
-189D; [75 31 8C, 05, 05]
+FDD1 1C5A; [76 34 02, 05, 05] # Ol Chiki first primary (compressible)
-18A2; [75 31 93, 05, 05]
+1C5A; [76 34 09, 05, 05]
-18A4; [75 31 9A, 05, 05]
+1C5B; [76 34 10, 05, 05]
-18A5; [75 31 A1, 05, 05]
+1C5C; [76 34 17, 05, 05]
-1832; [75 31 A8, 05, 05]
+1C5D; [76 34 1E, 05, 05]
-1850; [75 31 AF, 05, 05]
+1C5E; [76 34 25, 05, 05]
-1868; [75 31 B6, 05, 05]
+1C5F; [76 34 2C, 05, 05]
-1833; [75 31 BD, 05, 05]
+1C60; [76 34 33, 05, 05]
-1851; [75 31 C4, 05, 05]
+1C61; [76 34 3A, 05, 05]
-1869; [75 31 CB, 05, 05]
+1C62; [76 34 41, 05, 05]
-1834; [75 31 D2, 05, 05]
+1C63; [76 34 48, 05, 05]
-1852; [75 31 D9, 05, 05]
+1C64; [76 34 4F, 05, 05]
-1871; [75 31 E0, 05, 05]
+1C65; [76 34 56, 05, 05]
-185C; [75 31 E7, 05, 05]
+1C66; [76 34 5D, 05, 05]
-188B; [75 31 EE, 05, 05]
+1C67; [76 34 64, 05, 05]
-1835; [75 31 F5, 05, 05]
+1C68; [76 34 6B, 05, 05]
-1853; [75 31 FC, 05, 05]
+1C69; [76 34 72, 05, 05]
-186A; [75 32 05, 05, 05]
+1C6A; [76 34 79, 05, 05]
-1877; [75 32 0C, 05, 05]
+1C6B; [76 34 80, 05, 05]
-1836; [75 32 13, 05, 05]
+1C6C; [76 34 87, 05, 05]
-1855; [75 32 1A, 05, 05]
+1C6D; [76 34 8E, 05, 05]
-1872; [75 32 21, 05, 05]
+1C6E; [76 34 95, 05, 05]
-1837; [75 32 28, 05, 05]
+1C6F; [76 34 9C, 05, 05]
-1875; [75 32 2F, 05, 05]
+1C70; [76 34 A3, 05, 05]
-1838; [75 32 36, 05, 05]
+1C71; [76 34 AA, 05, 05]
-1856; [75 32 3D, 05, 05]
+1C72; [76 34 B1, 05, 05]
-1839; [75 32 44, 05, 05]
+1C73; [76 34 B8, 05, 05]
-186B; [75 32 4B, 05, 05]
+1C74; [76 34 BF, 05, 05]
-1876; [75 32 52, 05, 05]
+1C75; [76 34 C6, 05, 05]
-183A; [75 32 59, 05, 05]
+1C76; [76 34 CD, 05, 05]
-1857; [75 32 60, 05, 05]
+1C77; [76 34 D4, 05, 05]
-1863; [75 32 67, 05, 05]
+1C78; [76 34 DB, 05, 05]
-1874; [75 32 6E, 05, 05]
+1C79; [76 34 E2, 05, 05]
-1889; [75 32 75, 05, 05]
+1C7A; [76 34 E9, 05, 05]
-183B; [75 32 7C, 05, 05]
+1C7B; [76 34 F0, 05, 05]
-183C; [75 32 83, 05, 05]
+1C7C; [76 34 F7, 05, 05]
-1854; [75 32 8A, 05, 05]
+1C7D; [76 34 FE, 05, 05]
-186E; [75 32 91, 05, 05]
+FDD1 13C4; [76 36 02, 05, 05] # CHEROKEE first primary (compressible)
-183D; [75 32 98, 05, 05]
+AB70; [76 38, 05, 05]
+13A0; [76 38, 05, A0]
-186F; [75 32 9F, 05, 05]
+AB71; [76 3A, 05, 05]
+13A1; [76 3A, 05, A0]
-1858; [75 32 A6, 05, 05]
+AB72; [76 3C, 05, 05]
+13A2; [76 3C, 05, A0]
-186C; [75 32 AD, 05, 05]
+AB73; [76 3E, 05, 05]
+13A3; [76 3E, 05, A0]
-183E; [75 32 B4, 05, 05]
+AB74; [76 40, 05, 05]
+13A4; [76 40, 05, A0]
-1859; [75 32 BB, 05, 05]
+AB75; [76 42, 05, 05]
+13A5; [76 42, 05, A0]
-186D; [75 32 C2, 05, 05]
+AB76; [76 44, 05, 05]
+13A6; [76 44, 05, A0]
-183F; [75 32 C9, 05, 05]
+AB77; [76 46, 05, 05]
+13A7; [76 46, 05, A0]
-1840; [75 32 D0, 05, 05]
+AB78; [76 48, 05, 05]
+13A8; [76 48, 05, A0]
-1841; [75 32 D7, 05, 05]
+AB79; [76 4A, 05, 05]
+13A9; [76 4A, 05, A0]
-1842; [75 32 DE, 05, 05]
+AB7A; [76 4C, 05, 05]
+13AA; [76 4C, 05, A0]
-185A; [75 32 E5, 05, 05]
+AB7B; [76 4E, 05, 05]
+13AB; [76 4E, 05, A0]
-185B; [75 32 EC, 05, 05]
+AB7C; [76 50, 05, 05]
+13AC; [76 50, 05, A0]
-1870; [75 32 F3, 05, 05]
+AB7D; [76 52, 05, 05]
+13AD; [76 52, 05, A0]
-188C; [75 32 FA, 05, 05]
+AB7E; [76 54, 05, 05]
+13AE; [76 54, 05, A0]
-189E; [75 33 03, 05, 05]
+AB7F; [76 56, 05, 05]
+13AF; [76 56, 05, A0]
-188D; [75 33 0A, 05, 05]
+AB80; [76 58, 05, 05]
+13B0; [76 58, 05, A0]
-188E; [75 33 11, 05, 05]
+AB81; [76 5A, 05, 05]
+13B1; [76 5A, 05, A0]
-189F; [75 33 18, 05, 05]
+AB82; [76 5C, 05, 05]
+13B2; [76 5C, 05, A0]
-188F; [75 33 1F, 05, 05]
+AB83; [76 5E, 05, 05]
+13B3; [76 5E, 05, A0]
-1890; [75 33 26, 05, 05]
+AB84; [76 60, 05, 05]
+13B4; [76 60, 05, A0]
-1898; [75 33 2D, 05, 05]
+AB85; [76 62, 05, 05]
+13B5; [76 62, 05, A0]
-18A0; [75 33 34, 05, 05]
+AB86; [76 64, 05, 05]
+13B6; [76 64, 05, A0]
-1891; [75 33 3B, 05, 05]
+AB87; [76 66, 05, 05]
+13B7; [76 66, 05, A0]
-18A1; [75 33 42, 05, 05]
+AB88; [76 68, 05, 05]
+13B8; [76 68, 05, A0]
-1892; [75 33 49, 05, 05]
+AB89; [76 6A, 05, 05]
+13B9; [76 6A, 05, A0]
-1893; [75 33 50, 05, 05]
+AB8A; [76 6C, 05, 05]
+13BA; [76 6C, 05, A0]
-18A8; [75 33 57, 05, 05]
+AB8B; [76 6E, 05, 05]
+13BB; [76 6E, 05, A0]
-1894; [75 33 5E, 05, 05]
+AB8C; [76 70, 05, 05]
+13BC; [76 70, 05, A0]
-18A3; [75 33 65, 05, 05]
+AB8D; [76 72, 05, 05]
+13BD; [76 72, 05, A0]
-1895; [75 33 6C, 05, 05]
+AB8E; [76 74, 05, 05]
+13BE; [76 74, 05, A0]
-1899; [75 33 73, 05, 05]
+AB8F; [76 76, 05, 05]
+13BF; [76 76, 05, A0]
-1896; [75 33 7A, 05, 05]
+AB90; [76 78, 05, 05]
+13C0; [76 78, 05, A0]
-1897; [75 33 81, 05, 05]
+AB91; [76 7A, 05, 05]
+13C1; [76 7A, 05, A0]
-18A6; [75 33 88, 05, 05]
+AB92; [76 7C, 05, 05]
+13C2; [76 7C, 05, A0]
-18A7; [75 33 8F, 05, 05]
+AB93; [76 7E, 05, 05]
+13C3; [76 7E, 05, A0]
-18AA; [75 33 96, 05, 05]
+AB94; [76 80, 05, 05]
+13C4; [76 80, 05, A0]
-18A9; [75 33 9D, 05, 05]
+AB95; [76 82, 05, 05]
+13C5; [76 82, 05, A0]
-FDD1 1C5A; [75 34 02, 05, 05] # Ol Chiki first primary (compressible)
+AB96; [76 84, 05, 05]
+13C6; [76 84, 05, A0]
-1C5A; [75 34 09, 05, 05]
+AB97; [76 86, 05, 05]
+13C7; [76 86, 05, A0]
-1C5B; [75 34 10, 05, 05]
+AB98; [76 88, 05, 05]
+13C8; [76 88, 05, A0]
-1C5C; [75 34 17, 05, 05]
+AB99; [76 8A, 05, 05]
+13C9; [76 8A, 05, A0]
-1C5D; [75 34 1E, 05, 05]
+AB9A; [76 8C, 05, 05]
+13CA; [76 8C, 05, A0]
-1C5E; [75 34 25, 05, 05]
+AB9B; [76 8E, 05, 05]
+13CB; [76 8E, 05, A0]
-1C5F; [75 34 2C, 05, 05]
+AB9C; [76 90, 05, 05]
+13CC; [76 90, 05, A0]
-1C60; [75 34 33, 05, 05]
+AB9D; [76 92, 05, 05]
+13CD; [76 92, 05, A0]
-1C61; [75 34 3A, 05, 05]
+AB9E; [76 94, 05, 05]
+13CE; [76 94, 05, A0]
-1C62; [75 34 41, 05, 05]
+AB9F; [76 96, 05, 05]
+13CF; [76 96, 05, A0]
-1C63; [75 34 48, 05, 05]
+ABA0; [76 98, 05, 05]
+13D0; [76 98, 05, A0]
-1C64; [75 34 4F, 05, 05]
+ABA1; [76 9A, 05, 05]
+13D1; [76 9A, 05, A0]
-1C65; [75 34 56, 05, 05]
+ABA2; [76 9C, 05, 05]
+13D2; [76 9C, 05, A0]
-1C66; [75 34 5D, 05, 05]
+ABA3; [76 9E, 05, 05]
+13D3; [76 9E, 05, A0]
-1C67; [75 34 64, 05, 05]
+ABA4; [76 A0, 05, 05]
+13D4; [76 A0, 05, A0]
-1C68; [75 34 6B, 05, 05]
+ABA5; [76 A2, 05, 05]
+13D5; [76 A2, 05, A0]
-1C69; [75 34 72, 05, 05]
+ABA6; [76 A4, 05, 05]
+13D6; [76 A4, 05, A0]
-1C6A; [75 34 79, 05, 05]
+ABA7; [76 A6, 05, 05]
+13D7; [76 A6, 05, A0]
-1C6B; [75 34 80, 05, 05]
+ABA8; [76 A8, 05, 05]
+13D8; [76 A8, 05, A0]
-1C6C; [75 34 87, 05, 05]
+ABA9; [76 AA, 05, 05]
+13D9; [76 AA, 05, A0]
-1C6D; [75 34 8E, 05, 05]
+ABAA; [76 AC, 05, 05]
+13DA; [76 AC, 05, A0]
-1C6E; [75 34 95, 05, 05]
+ABAB; [76 AE, 05, 05]
+13DB; [76 AE, 05, A0]
-1C6F; [75 34 9C, 05, 05]
+ABAC; [76 B0, 05, 05]
+13DC; [76 B0, 05, A0]
-1C70; [75 34 A3, 05, 05]
+ABAD; [76 B2, 05, 05]
+13DD; [76 B2, 05, A0]
-1C71; [75 34 AA, 05, 05]
+ABAE; [76 B4, 05, 05]
+13DE; [76 B4, 05, A0]
-1C72; [75 34 B1, 05, 05]
+ABAF; [76 B6, 05, 05]
+13DF; [76 B6, 05, A0]
-1C73; [75 34 B8, 05, 05]
+ABB0; [76 B8, 05, 05]
+13E0; [76 B8, 05, A0]
-1C74; [75 34 BF, 05, 05]
+ABB1; [76 BA, 05, 05]
+13E1; [76 BA, 05, A0]
-1C75; [75 34 C6, 05, 05]
+ABB2; [76 BC, 05, 05]
+13E2; [76 BC, 05, A0]
-1C76; [75 34 CD, 05, 05]
+ABB3; [76 BE, 05, 05]
+13E3; [76 BE, 05, A0]
-1C77; [75 34 D4, 05, 05]
+ABB4; [76 C0, 05, 05]
+13E4; [76 C0, 05, A0]
-1C78; [75 34 DB, 05, 05]
+ABB5; [76 C2, 05, 05]
+13E5; [76 C2, 05, A0]
-1C79; [75 34 E2, 05, 05]
+ABB6; [76 C4, 05, 05]
+13E6; [76 C4, 05, A0]
-1C7A; [75 34 E9, 05, 05]
+ABB7; [76 C6, 05, 05]
+13E7; [76 C6, 05, A0]
-1C7B; [75 34 F0, 05, 05]
+ABB8; [76 C8, 05, 05]
+13E8; [76 C8, 05, A0]
-1C7C; [75 34 F7, 05, 05]
+ABB9; [76 CA, 05, 05]
+13E9; [76 CA, 05, A0]
-1C7D; [75 34 FE, 05, 05]
+ABBA; [76 CC, 05, 05]
+13EA; [76 CC, 05, A0]
-FDD1 13C4; [75 36 02, 05, 05] # CHEROKEE first primary (compressible)
+ABBB; [76 CE, 05, 05]
+13EB; [76 CE, 05, A0]
-AB70; [75 38, 05, 05]
-13A0; [75 38, 05, A0]
+ABBC; [76 D0, 05, 05]
+13EC; [76 D0, 05, A0]
-AB71; [75 3A, 05, 05]
-13A1; [75 3A, 05, A0]
+ABBD; [76 D2, 05, 05]
+13ED; [76 D2, 05, A0]
-AB72; [75 3C, 05, 05]
-13A2; [75 3C, 05, A0]
+ABBE; [76 D4, 05, 05]
+13EE; [76 D4, 05, A0]
-AB73; [75 3E, 05, 05]
-13A3; [75 3E, 05, A0]
+ABBF; [76 D6, 05, 05]
+13EF; [76 D6, 05, A0]
-AB74; [75 40, 05, 05]
-13A4; [75 40, 05, A0]
+13F8; [76 D8, 05, 05]
+13F0; [76 D8, 05, A0]
-AB75; [75 42, 05, 05]
-13A5; [75 42, 05, A0]
+13F9; [76 DA, 05, 05]
+13F1; [76 DA, 05, A0]
-AB76; [75 44, 05, 05]
-13A6; [75 44, 05, A0]
+13FA; [76 DC, 05, 05]
+13F2; [76 DC, 05, A0]
-AB77; [75 46, 05, 05]
-13A7; [75 46, 05, A0]
+13FB; [76 DE, 05, 05]
+13F3; [76 DE, 05, A0]
-AB78; [75 48, 05, 05]
-13A8; [75 48, 05, A0]
+13FC; [76 E0, 05, 05]
+13F4; [76 E0, 05, A0]
-AB79; [75 4A, 05, 05]
-13A9; [75 4A, 05, A0]
+13FD; [76 E2, 05, 05]
+13F5; [76 E2, 05, A0]
-AB7A; [75 4C, 05, 05]
-13AA; [75 4C, 05, A0]
+FDD1 104B5; [76 E4 02, 05, 05] # Osage first primary (compressible)
-AB7B; [75 4E, 05, 05]
-13AB; [75 4E, 05, A0]
+104D8; [76 E4 09, 05, 05]
+104B0; [76 E4 09, 05, A0]
-AB7C; [75 50, 05, 05]
-13AC; [75 50, 05, A0]
+104D9; [76 E4 10, 05, 05]
+104B1; [76 E4 10, 05, A0]
-AB7D; [75 52, 05, 05]
-13AD; [75 52, 05, A0]
+104DA; [76 E4 17, 05, 05]
+104B2; [76 E4 17, 05, A0]
-AB7E; [75 54, 05, 05]
-13AE; [75 54, 05, A0]
+104DB; [76 E4 1E, 05, 05]
+104B3; [76 E4 1E, 05, A0]
-AB7F; [75 56, 05, 05]
-13AF; [75 56, 05, A0]
+104DC; [76 E4 25, 05, 05]
+104B4; [76 E4 25, 05, A0]
-AB80; [75 58, 05, 05]
-13B0; [75 58, 05, A0]
+104DD; [76 E4 2C, 05, 05]
+104B5; [76 E4 2C, 05, A0]
-AB81; [75 5A, 05, 05]
-13B1; [75 5A, 05, A0]
+104DE; [76 E4 33, 05, 05]
+104B6; [76 E4 33, 05, A0]
-AB82; [75 5C, 05, 05]
-13B2; [75 5C, 05, A0]
+104DF; [76 E4 3A, 05, 05]
+104B7; [76 E4 3A, 05, A0]
-AB83; [75 5E, 05, 05]
-13B3; [75 5E, 05, A0]
+104E0; [76 E4 41, 05, 05]
+104B8; [76 E4 41, 05, A0]
-AB84; [75 60, 05, 05]
-13B4; [75 60, 05, A0]
+104E1; [76 E4 48, 05, 05]
+104B9; [76 E4 48, 05, A0]
-AB85; [75 62, 05, 05]
-13B5; [75 62, 05, A0]
+104E2; [76 E4 4F, 05, 05]
+104BA; [76 E4 4F, 05, A0]
-AB86; [75 64, 05, 05]
-13B6; [75 64, 05, A0]
+104E3; [76 E4 56, 05, 05]
+104BB; [76 E4 56, 05, A0]
-AB87; [75 66, 05, 05]
-13B7; [75 66, 05, A0]
+104E4; [76 E4 5D, 05, 05]
+104BC; [76 E4 5D, 05, A0]
-AB88; [75 68, 05, 05]
-13B8; [75 68, 05, A0]
+104E5; [76 E4 64, 05, 05]
+104BD; [76 E4 64, 05, A0]
-AB89; [75 6A, 05, 05]
-13B9; [75 6A, 05, A0]
+104E6; [76 E4 6B, 05, 05]
+104BE; [76 E4 6B, 05, A0]
-AB8A; [75 6C, 05, 05]
-13BA; [75 6C, 05, A0]
+104E7; [76 E4 72, 05, 05]
+104BF; [76 E4 72, 05, A0]
-AB8B; [75 6E, 05, 05]
-13BB; [75 6E, 05, A0]
+104E8; [76 E4 79, 05, 05]
+104C0; [76 E4 79, 05, A0]
-AB8C; [75 70, 05, 05]
-13BC; [75 70, 05, A0]
+104E9; [76 E4 80, 05, 05]
+104C1; [76 E4 80, 05, A0]
-AB8D; [75 72, 05, 05]
-13BD; [75 72, 05, A0]
+104EA; [76 E4 87, 05, 05]
+104C2; [76 E4 87, 05, A0]
-AB8E; [75 74, 05, 05]
-13BE; [75 74, 05, A0]
+104EB; [76 E4 8E, 05, 05]
+104C3; [76 E4 8E, 05, A0]
-AB8F; [75 76, 05, 05]
-13BF; [75 76, 05, A0]
+104EC; [76 E4 95, 05, 05]
+104C4; [76 E4 95, 05, A0]
-AB90; [75 78, 05, 05]
-13C0; [75 78, 05, A0]
+104ED; [76 E4 9C, 05, 05]
+104C5; [76 E4 9C, 05, A0]
-AB91; [75 7A, 05, 05]
-13C1; [75 7A, 05, A0]
+104EE; [76 E4 A3, 05, 05]
+104C6; [76 E4 A3, 05, A0]
-AB92; [75 7C, 05, 05]
-13C2; [75 7C, 05, A0]
+104EF; [76 E4 AA, 05, 05]
+104C7; [76 E4 AA, 05, A0]
-AB93; [75 7E, 05, 05]
-13C3; [75 7E, 05, A0]
+104F0; [76 E4 B1, 05, 05]
+104C8; [76 E4 B1, 05, A0]
-AB94; [75 80, 05, 05]
-13C4; [75 80, 05, A0]
+104F1; [76 E4 B8, 05, 05]
+104C9; [76 E4 B8, 05, A0]
-AB95; [75 82, 05, 05]
-13C5; [75 82, 05, A0]
+104F2; [76 E4 BF, 05, 05]
+104CA; [76 E4 BF, 05, A0]
-AB96; [75 84, 05, 05]
-13C6; [75 84, 05, A0]
+104F3; [76 E4 C6, 05, 05]
+104CB; [76 E4 C6, 05, A0]
-AB97; [75 86, 05, 05]
-13C7; [75 86, 05, A0]
+104F4; [76 E4 CD, 05, 05]
+104CC; [76 E4 CD, 05, A0]
-AB98; [75 88, 05, 05]
-13C8; [75 88, 05, A0]
+104F5; [76 E4 D4, 05, 05]
+104CD; [76 E4 D4, 05, A0]
-AB99; [75 8A, 05, 05]
-13C9; [75 8A, 05, A0]
+104F6; [76 E4 DB, 05, 05]
+104CE; [76 E4 DB, 05, A0]
-AB9A; [75 8C, 05, 05]
-13CA; [75 8C, 05, A0]
+104F7; [76 E4 E2, 05, 05]
+104CF; [76 E4 E2, 05, A0]
-AB9B; [75 8E, 05, 05]
-13CB; [75 8E, 05, A0]
+104F8; [76 E4 E9, 05, 05]
+104D0; [76 E4 E9, 05, A0]
-AB9C; [75 90, 05, 05]
-13CC; [75 90, 05, A0]
+104F9; [76 E4 F0, 05, 05]
+104D1; [76 E4 F0, 05, A0]
-AB9D; [75 92, 05, 05]
-13CD; [75 92, 05, A0]
+104FA; [76 E4 F7, 05, 05]
+104D2; [76 E4 F7, 05, A0]
-AB9E; [75 94, 05, 05]
-13CE; [75 94, 05, A0]
+104FB; [76 E4 FE, 05, 05]
+104D3; [76 E4 FE, 05, A0]
-AB9F; [75 96, 05, 05]
-13CF; [75 96, 05, A0]
+FDD1 14C0; [76 E6 02, 05, 05] # CANADIAN-ABORIGINAL first primary (compressible)
-ABA0; [75 98, 05, 05]
-13D0; [75 98, 05, A0]
+1401; [76 E6 09, 05, 05]
-ABA1; [75 9A, 05, 05]
-13D1; [75 9A, 05, A0]
+1402; [76 E6 10, 05, 05]
-ABA2; [75 9C, 05, 05]
-13D2; [75 9C, 05, A0]
+1403; [76 E6 17, 05, 05]
-ABA3; [75 9E, 05, 05]
-13D3; [75 9E, 05, A0]
+1404; [76 E6 1E, 05, 05]
-ABA4; [75 A0, 05, 05]
-13D4; [75 A0, 05, A0]
+1405; [76 E6 25, 05, 05]
-ABA5; [75 A2, 05, 05]
-13D5; [75 A2, 05, A0]
+1406; [76 E6 2C, 05, 05]
-ABA6; [75 A4, 05, 05]
-13D6; [75 A4, 05, A0]
+1407; [76 E6 33, 05, 05]
-ABA7; [75 A6, 05, 05]
-13D7; [75 A6, 05, A0]
+1408; [76 E6 3A, 05, 05]
-ABA8; [75 A8, 05, 05]
-13D8; [75 A8, 05, A0]
+1409; [76 E6 41, 05, 05]
-ABA9; [75 AA, 05, 05]
-13D9; [75 AA, 05, A0]
+140A; [76 E6 48, 05, 05]
-ABAA; [75 AC, 05, 05]
-13DA; [75 AC, 05, A0]
+140B; [76 E6 4F, 05, 05]
-ABAB; [75 AE, 05, 05]
-13DB; [75 AE, 05, A0]
+140C; [76 E6 56, 05, 05]
-ABAC; [75 B0, 05, 05]
-13DC; [75 B0, 05, A0]
+140D; [76 E6 5D, 05, 05]
-ABAD; [75 B2, 05, 05]
-13DD; [75 B2, 05, A0]
+140E; [76 E6 64, 05, 05]
-ABAE; [75 B4, 05, 05]
-13DE; [75 B4, 05, A0]
+140F; [76 E6 6B, 05, 05]
-ABAF; [75 B6, 05, 05]
-13DF; [75 B6, 05, A0]
+1410; [76 E6 72, 05, 05]
-ABB0; [75 B8, 05, 05]
-13E0; [75 B8, 05, A0]
+1411; [76 E6 79, 05, 05]
-ABB1; [75 BA, 05, 05]
-13E1; [75 BA, 05, A0]
+1412; [76 E6 80, 05, 05]
-ABB2; [75 BC, 05, 05]
-13E2; [75 BC, 05, A0]
+1413; [76 E6 87, 05, 05]
-ABB3; [75 BE, 05, 05]
-13E3; [75 BE, 05, A0]
+1414; [76 E6 8E, 05, 05]
-ABB4; [75 C0, 05, 05]
-13E4; [75 C0, 05, A0]
+1415; [76 E6 95, 05, 05]
-ABB5; [75 C2, 05, 05]
-13E5; [75 C2, 05, A0]
+1416; [76 E6 9C, 05, 05]
-ABB6; [75 C4, 05, 05]
-13E6; [75 C4, 05, A0]
+1417; [76 E6 A3, 05, 05]
-ABB7; [75 C6, 05, 05]
-13E7; [75 C6, 05, A0]
+1418; [76 E6 AA, 05, 05]
-ABB8; [75 C8, 05, 05]
-13E8; [75 C8, 05, A0]
+1419; [76 E6 B1, 05, 05]
-ABB9; [75 CA, 05, 05]
-13E9; [75 CA, 05, A0]
+141A; [76 E6 B8, 05, 05]
-ABBA; [75 CC, 05, 05]
-13EA; [75 CC, 05, A0]
+141B; [76 E6 BF, 05, 05]
-ABBB; [75 CE, 05, 05]
-13EB; [75 CE, 05, A0]
+141C; [76 E6 C6, 05, 05]
-ABBC; [75 D0, 05, 05]
-13EC; [75 D0, 05, A0]
+141D; [76 E6 CD, 05, 05]
-ABBD; [75 D2, 05, 05]
-13ED; [75 D2, 05, A0]
+141E; [76 E6 D4, 05, 05]
-ABBE; [75 D4, 05, 05]
-13EE; [75 D4, 05, A0]
+141F; [76 E6 DB, 05, 05]
-ABBF; [75 D6, 05, 05]
-13EF; [75 D6, 05, A0]
+1420; [76 E6 E2, 05, 05]
-13F8; [75 D8, 05, 05]
-13F0; [75 D8, 05, A0]
+1421; [76 E6 E9, 05, 05]
-13F9; [75 DA, 05, 05]
-13F1; [75 DA, 05, A0]
+1422; [76 E6 F0, 05, 05]
-13FA; [75 DC, 05, 05]
-13F2; [75 DC, 05, A0]
+1423; [76 E6 F7, 05, 05]
-13FB; [75 DE, 05, 05]
-13F3; [75 DE, 05, A0]
+1424; [76 E6 FE, 05, 05]
-13FC; [75 E0, 05, 05]
-13F4; [75 E0, 05, A0]
+1425; [76 E7 07, 05, 05]
-13FD; [75 E2, 05, 05]
-13F5; [75 E2, 05, A0]
+1426; [76 E7 0E, 05, 05]
-FDD1 104B5; [75 E4 02, 05, 05] # Osage first primary (compressible)
+1427; [76 E7 15, 05, 05]
-104D8; [75 E4 09, 05, 05]
-104B0; [75 E4 09, 05, A0]
+1428; [76 E7 1C, 05, 05]
-104D9; [75 E4 10, 05, 05]
-104B1; [75 E4 10, 05, A0]
+1429; [76 E7 23, 05, 05]
-104DA; [75 E4 17, 05, 05]
-104B2; [75 E4 17, 05, A0]
+142A; [76 E7 2A, 05, 05]
-104DB; [75 E4 1E, 05, 05]
-104B3; [75 E4 1E, 05, A0]
+142B; [76 E7 31, 05, 05]
-104DC; [75 E4 25, 05, 05]
-104B4; [75 E4 25, 05, A0]
+142C; [76 E7 38, 05, 05]
-104DD; [75 E4 2C, 05, 05]
-104B5; [75 E4 2C, 05, A0]
+142D; [76 E7 3F, 05, 05]
-104DE; [75 E4 33, 05, 05]
-104B6; [75 E4 33, 05, A0]
+142E; [76 E7 46, 05, 05]
-104DF; [75 E4 3A, 05, 05]
-104B7; [75 E4 3A, 05, A0]
+142F; [76 E7 4D, 05, 05]
-104E0; [75 E4 41, 05, 05]
-104B8; [75 E4 41, 05, A0]
+1430; [76 E7 54, 05, 05]
-104E1; [75 E4 48, 05, 05]
-104B9; [75 E4 48, 05, A0]
+1431; [76 E7 5B, 05, 05]
-104E2; [75 E4 4F, 05, 05]
-104BA; [75 E4 4F, 05, A0]
+1432; [76 E7 62, 05, 05]
-104E3; [75 E4 56, 05, 05]
-104BB; [75 E4 56, 05, A0]
+1433; [76 E7 69, 05, 05]
-104E4; [75 E4 5D, 05, 05]
-104BC; [75 E4 5D, 05, A0]
+1434; [76 E7 70, 05, 05]
-104E5; [75 E4 64, 05, 05]
-104BD; [75 E4 64, 05, A0]
+1435; [76 E7 77, 05, 05]
-104E6; [75 E4 6B, 05, 05]
-104BE; [75 E4 6B, 05, A0]
+1436; [76 E7 7E, 05, 05]
-104E7; [75 E4 72, 05, 05]
-104BF; [75 E4 72, 05, A0]
+1437; [76 E7 85, 05, 05]
-104E8; [75 E4 79, 05, 05]
-104C0; [75 E4 79, 05, A0]
+1438; [76 E7 8C, 05, 05]
-104E9; [75 E4 80, 05, 05]
-104C1; [75 E4 80, 05, A0]
+1439; [76 E7 93, 05, 05]
-104EA; [75 E4 87, 05, 05]
-104C2; [75 E4 87, 05, A0]
+143A; [76 E7 9A, 05, 05]
-104EB; [75 E4 8E, 05, 05]
-104C3; [75 E4 8E, 05, A0]
+143B; [76 E7 A1, 05, 05]
-104EC; [75 E4 95, 05, 05]
-104C4; [75 E4 95, 05, A0]
+143C; [76 E7 A8, 05, 05]
-104ED; [75 E4 9C, 05, 05]
-104C5; [75 E4 9C, 05, A0]
+143D; [76 E7 AF, 05, 05]
-104EE; [75 E4 A3, 05, 05]
-104C6; [75 E4 A3, 05, A0]
+143E; [76 E7 B6, 05, 05]
-104EF; [75 E4 AA, 05, 05]
-104C7; [75 E4 AA, 05, A0]
+143F; [76 E7 BD, 05, 05]
-104F0; [75 E4 B1, 05, 05]
-104C8; [75 E4 B1, 05, A0]
+1440; [76 E7 C4, 05, 05]
-104F1; [75 E4 B8, 05, 05]
-104C9; [75 E4 B8, 05, A0]
+1441; [76 E7 CB, 05, 05]
-104F2; [75 E4 BF, 05, 05]
-104CA; [75 E4 BF, 05, A0]
+1442; [76 E7 D2, 05, 05]
-104F3; [75 E4 C6, 05, 05]
-104CB; [75 E4 C6, 05, A0]
+1443; [76 E7 D9, 05, 05]
-104F4; [75 E4 CD, 05, 05]
-104CC; [75 E4 CD, 05, A0]
+1444; [76 E7 E0, 05, 05]
-104F5; [75 E4 D4, 05, 05]
-104CD; [75 E4 D4, 05, A0]
+1445; [76 E7 E7, 05, 05]
-104F6; [75 E4 DB, 05, 05]
-104CE; [75 E4 DB, 05, A0]
+1446; [76 E7 EE, 05, 05]
-104F7; [75 E4 E2, 05, 05]
-104CF; [75 E4 E2, 05, A0]
+1447; [76 E7 F5, 05, 05]
-104F8; [75 E4 E9, 05, 05]
-104D0; [75 E4 E9, 05, A0]
+1448; [76 E7 FC, 05, 05]
-104F9; [75 E4 F0, 05, 05]
-104D1; [75 E4 F0, 05, A0]
+1449; [76 E8 05, 05, 05]
-104FA; [75 E4 F7, 05, 05]
-104D2; [75 E4 F7, 05, A0]
+144A; [76 E8 0C, 05, 05]
-104FB; [75 E4 FE, 05, 05]
-104D3; [75 E4 FE, 05, A0]
+144B; [76 E8 13, 05, 05]
-FDD1 14C0; [75 E6 02, 05, 05] # CANADIAN-ABORIGINAL first primary (compressible)
+144C; [76 E8 1A, 05, 05]
-1401; [75 E6 09, 05, 05]
+144D; [76 E8 21, 05, 05]
-1402; [75 E6 10, 05, 05]
+144E; [76 E8 28, 05, 05]
-1403; [75 E6 17, 05, 05]
+144F; [76 E8 2F, 05, 05]
-1404; [75 E6 1E, 05, 05]
+1450; [76 E8 36, 05, 05]
-1405; [75 E6 25, 05, 05]
+1451; [76 E8 3D, 05, 05]
-1406; [75 E6 2C, 05, 05]
+1452; [76 E8 44, 05, 05]
-1407; [75 E6 33, 05, 05]
+1453; [76 E8 4B, 05, 05]
-1408; [75 E6 3A, 05, 05]
+1454; [76 E8 52, 05, 05]
-1409; [75 E6 41, 05, 05]
+1455; [76 E8 59, 05, 05]
-140A; [75 E6 48, 05, 05]
+1456; [76 E8 60, 05, 05]
-140B; [75 E6 4F, 05, 05]
+1457; [76 E8 67, 05, 05]
-140C; [75 E6 56, 05, 05]
+1458; [76 E8 6E, 05, 05]
-140D; [75 E6 5D, 05, 05]
+1459; [76 E8 75, 05, 05]
-140E; [75 E6 64, 05, 05]
+145A; [76 E8 7C, 05, 05]
-140F; [75 E6 6B, 05, 05]
+145B; [76 E8 83, 05, 05]
-1410; [75 E6 72, 05, 05]
+145C; [76 E8 8A, 05, 05]
-1411; [75 E6 79, 05, 05]
+145D; [76 E8 91, 05, 05]
-1412; [75 E6 80, 05, 05]
+145E; [76 E8 98, 05, 05]
-1413; [75 E6 87, 05, 05]
+145F; [76 E8 9F, 05, 05]
-1414; [75 E6 8E, 05, 05]
+1460; [76 E8 A6, 05, 05]
-1415; [75 E6 95, 05, 05]
+1461; [76 E8 AD, 05, 05]
-1416; [75 E6 9C, 05, 05]
+1462; [76 E8 B4, 05, 05]
-1417; [75 E6 A3, 05, 05]
+1463; [76 E8 BB, 05, 05]
-1418; [75 E6 AA, 05, 05]
+1464; [76 E8 C2, 05, 05]
-1419; [75 E6 B1, 05, 05]
+1465; [76 E8 C9, 05, 05]
-141A; [75 E6 B8, 05, 05]
+1466; [76 E8 D0, 05, 05]
-141B; [75 E6 BF, 05, 05]
+1467; [76 E8 D7, 05, 05]
-141C; [75 E6 C6, 05, 05]
+1468; [76 E8 DE, 05, 05]
-141D; [75 E6 CD, 05, 05]
+1469; [76 E8 E5, 05, 05]
-141E; [75 E6 D4, 05, 05]
+146A; [76 E8 EC, 05, 05]
-141F; [75 E6 DB, 05, 05]
+146B; [76 E8 F3, 05, 05]
-1420; [75 E6 E2, 05, 05]
+146C; [76 E8 FA, 05, 05]
-1421; [75 E6 E9, 05, 05]
+146D; [76 E9 03, 05, 05]
-1422; [75 E6 F0, 05, 05]
+146E; [76 E9 0A, 05, 05]
-1423; [75 E6 F7, 05, 05]
+146F; [76 E9 11, 05, 05]
-1424; [75 E6 FE, 05, 05]
+1470; [76 E9 18, 05, 05]
-1425; [75 E7 07, 05, 05]
+1471; [76 E9 1F, 05, 05]
-1426; [75 E7 0E, 05, 05]
+1472; [76 E9 26, 05, 05]
-1427; [75 E7 15, 05, 05]
+1473; [76 E9 2D, 05, 05]
-1428; [75 E7 1C, 05, 05]
+1474; [76 E9 34, 05, 05]
-1429; [75 E7 23, 05, 05]
+1475; [76 E9 3B, 05, 05]
-142A; [75 E7 2A, 05, 05]
+1476; [76 E9 42, 05, 05]
-142B; [75 E7 31, 05, 05]
+1477; [76 E9 49, 05, 05]
-142C; [75 E7 38, 05, 05]
+1478; [76 E9 50, 05, 05]
-142D; [75 E7 3F, 05, 05]
+1479; [76 E9 57, 05, 05]
-142E; [75 E7 46, 05, 05]
+147A; [76 E9 5E, 05, 05]
-142F; [75 E7 4D, 05, 05]
+147B; [76 E9 65, 05, 05]
-1430; [75 E7 54, 05, 05]
+147C; [76 E9 6C, 05, 05]
-1431; [75 E7 5B, 05, 05]
+147D; [76 E9 73, 05, 05]
-1432; [75 E7 62, 05, 05]
+147E; [76 E9 7A, 05, 05]
-1433; [75 E7 69, 05, 05]
+147F; [76 E9 81, 05, 05]
-1434; [75 E7 70, 05, 05]
+1480; [76 E9 88, 05, 05]
-1435; [75 E7 77, 05, 05]
+1481; [76 E9 8F, 05, 05]
-1436; [75 E7 7E, 05, 05]
+1482; [76 E9 96, 05, 05]
-1437; [75 E7 85, 05, 05]
+1483; [76 E9 9D, 05, 05]
-1438; [75 E7 8C, 05, 05]
+1484; [76 E9 A4, 05, 05]
-1439; [75 E7 93, 05, 05]
+1485; [76 E9 AB, 05, 05]
-143A; [75 E7 9A, 05, 05]
+1486; [76 E9 B2, 05, 05]
-143B; [75 E7 A1, 05, 05]
+1487; [76 E9 B9, 05, 05]
-143C; [75 E7 A8, 05, 05]
+1488; [76 E9 C0, 05, 05]
-143D; [75 E7 AF, 05, 05]
+1489; [76 E9 C7, 05, 05]
-143E; [75 E7 B6, 05, 05]
+148A; [76 E9 CE, 05, 05]
-143F; [75 E7 BD, 05, 05]
+148B; [76 E9 D5, 05, 05]
-1440; [75 E7 C4, 05, 05]
+148C; [76 E9 DC, 05, 05]
-1441; [75 E7 CB, 05, 05]
+148D; [76 E9 E3, 05, 05]
-1442; [75 E7 D2, 05, 05]
+148E; [76 E9 EA, 05, 05]
-1443; [75 E7 D9, 05, 05]
+148F; [76 E9 F1, 05, 05]
-1444; [75 E7 E0, 05, 05]
+1490; [76 E9 F8, 05, 05]
-1445; [75 E7 E7, 05, 05]
+1491; [76 E9 FF, 05, 05]
-1446; [75 E7 EE, 05, 05]
+1492; [76 EA 08, 05, 05]
-1447; [75 E7 F5, 05, 05]
+1493; [76 EA 0F, 05, 05]
-1448; [75 E7 FC, 05, 05]
+1494; [76 EA 16, 05, 05]
-1449; [75 E8 05, 05, 05]
+1495; [76 EA 1D, 05, 05]
-144A; [75 E8 0C, 05, 05]
+1496; [76 EA 24, 05, 05]
-144B; [75 E8 13, 05, 05]
+1497; [76 EA 2B, 05, 05]
-144C; [75 E8 1A, 05, 05]
+1498; [76 EA 32, 05, 05]
-144D; [75 E8 21, 05, 05]
+1499; [76 EA 39, 05, 05]
-144E; [75 E8 28, 05, 05]
+149A; [76 EA 40, 05, 05]
-144F; [75 E8 2F, 05, 05]
+149B; [76 EA 47, 05, 05]
-1450; [75 E8 36, 05, 05]
+149C; [76 EA 4E, 05, 05]
-1451; [75 E8 3D, 05, 05]
+149D; [76 EA 55, 05, 05]
-1452; [75 E8 44, 05, 05]
+149E; [76 EA 5C, 05, 05]
-1453; [75 E8 4B, 05, 05]
+149F; [76 EA 63, 05, 05]
-1454; [75 E8 52, 05, 05]
+14A0; [76 EA 6A, 05, 05]
-1455; [75 E8 59, 05, 05]
+14A1; [76 EA 71, 05, 05]
-1456; [75 E8 60, 05, 05]
+14A2; [76 EA 78, 05, 05]
-1457; [75 E8 67, 05, 05]
+14A3; [76 EA 7F, 05, 05]
-1458; [75 E8 6E, 05, 05]
+14A4; [76 EA 86, 05, 05]
-1459; [75 E8 75, 05, 05]
+14A5; [76 EA 8D, 05, 05]
-145A; [75 E8 7C, 05, 05]
+14A6; [76 EA 94, 05, 05]
-145B; [75 E8 83, 05, 05]
+14A7; [76 EA 9B, 05, 05]
-145C; [75 E8 8A, 05, 05]
+14A8; [76 EA A2, 05, 05]
-145D; [75 E8 91, 05, 05]
+14A9; [76 EA A9, 05, 05]
-145E; [75 E8 98, 05, 05]
+14AA; [76 EA B0, 05, 05]
-145F; [75 E8 9F, 05, 05]
+14AB; [76 EA B7, 05, 05]
-1460; [75 E8 A6, 05, 05]
+14AC; [76 EA BE, 05, 05]
-1461; [75 E8 AD, 05, 05]
+14AD; [76 EA C5, 05, 05]
-1462; [75 E8 B4, 05, 05]
+14AE; [76 EA CC, 05, 05]
-1463; [75 E8 BB, 05, 05]
+14AF; [76 EA D3, 05, 05]
-1464; [75 E8 C2, 05, 05]
+14B0; [76 EA DA, 05, 05]
-1465; [75 E8 C9, 05, 05]
+14B1; [76 EA E1, 05, 05]
-1466; [75 E8 D0, 05, 05]
+14B2; [76 EA E8, 05, 05]
-1467; [75 E8 D7, 05, 05]
+14B3; [76 EA EF, 05, 05]
-1468; [75 E8 DE, 05, 05]
+14B4; [76 EA F6, 05, 05]
-1469; [75 E8 E5, 05, 05]
+14B5; [76 EA FD, 05, 05]
-146A; [75 E8 EC, 05, 05]
+14B6; [76 EB 06, 05, 05]
-146B; [75 E8 F3, 05, 05]
+14B7; [76 EB 0D, 05, 05]
-146C; [75 E8 FA, 05, 05]
+14B8; [76 EB 14, 05, 05]
-146D; [75 E9 03, 05, 05]
+14B9; [76 EB 1B, 05, 05]
-146E; [75 E9 0A, 05, 05]
+14BA; [76 EB 22, 05, 05]
-146F; [75 E9 11, 05, 05]
+14BB; [76 EB 29, 05, 05]
-1470; [75 E9 18, 05, 05]
+14BC; [76 EB 30, 05, 05]
-1471; [75 E9 1F, 05, 05]
+14BD; [76 EB 37, 05, 05]
-1472; [75 E9 26, 05, 05]
+14BE; [76 EB 3E, 05, 05]
-1473; [75 E9 2D, 05, 05]
+14BF; [76 EB 45, 05, 05]
-1474; [75 E9 34, 05, 05]
+14C0; [76 EB 4C, 05, 05]
-1475; [75 E9 3B, 05, 05]
+14C1; [76 EB 53, 05, 05]
-1476; [75 E9 42, 05, 05]
+14C2; [76 EB 5A, 05, 05]
-1477; [75 E9 49, 05, 05]
+14C3; [76 EB 61, 05, 05]
-1478; [75 E9 50, 05, 05]
+14C4; [76 EB 68, 05, 05]
-1479; [75 E9 57, 05, 05]
+14C5; [76 EB 6F, 05, 05]
-147A; [75 E9 5E, 05, 05]
+14C6; [76 EB 76, 05, 05]
-147B; [75 E9 65, 05, 05]
+14C7; [76 EB 7D, 05, 05]
-147C; [75 E9 6C, 05, 05]
+14C8; [76 EB 84, 05, 05]
-147D; [75 E9 73, 05, 05]
+14C9; [76 EB 8B, 05, 05]
-147E; [75 E9 7A, 05, 05]
+14CA; [76 EB 92, 05, 05]
-147F; [75 E9 81, 05, 05]
+14CB; [76 EB 99, 05, 05]
-1480; [75 E9 88, 05, 05]
+14CC; [76 EB A0, 05, 05]
-1481; [75 E9 8F, 05, 05]
+14CD; [76 EB A7, 05, 05]
-1482; [75 E9 96, 05, 05]
+14CE; [76 EB AE, 05, 05]
-1483; [75 E9 9D, 05, 05]
+14CF; [76 EB B5, 05, 05]
-1484; [75 E9 A4, 05, 05]
+14D0; [76 EB BC, 05, 05]
-1485; [75 E9 AB, 05, 05]
+14D1; [76 EB C3, 05, 05]
-1486; [75 E9 B2, 05, 05]
+14D2; [76 EB CA, 05, 05]
-1487; [75 E9 B9, 05, 05]
+14D3; [76 EB D1, 05, 05]
-1488; [75 E9 C0, 05, 05]
+14D4; [76 EB D8, 05, 05]
-1489; [75 E9 C7, 05, 05]
+14D5; [76 EB DF, 05, 05]
-148A; [75 E9 CE, 05, 05]
+14D6; [76 EB E6, 05, 05]
-148B; [75 E9 D5, 05, 05]
+14D7; [76 EB ED, 05, 05]
-148C; [75 E9 DC, 05, 05]
+14D8; [76 EB F4, 05, 05]
-148D; [75 E9 E3, 05, 05]
+14D9; [76 EB FB, 05, 05]
-148E; [75 E9 EA, 05, 05]
+14DA; [76 EC 04, 05, 05]
-148F; [75 E9 F1, 05, 05]
+14DB; [76 EC 0B, 05, 05]
-1490; [75 E9 F8, 05, 05]
+14DC; [76 EC 12, 05, 05]
-1491; [75 E9 FF, 05, 05]
+14DD; [76 EC 19, 05, 05]
-1492; [75 EA 08, 05, 05]
+14DE; [76 EC 20, 05, 05]
-1493; [75 EA 0F, 05, 05]
+14DF; [76 EC 27, 05, 05]
-1494; [75 EA 16, 05, 05]
+14E0; [76 EC 2E, 05, 05]
-1495; [75 EA 1D, 05, 05]
+14E1; [76 EC 35, 05, 05]
-1496; [75 EA 24, 05, 05]
+14E2; [76 EC 3C, 05, 05]
-1497; [75 EA 2B, 05, 05]
+14E3; [76 EC 43, 05, 05]
-1498; [75 EA 32, 05, 05]
+14E4; [76 EC 4A, 05, 05]
-1499; [75 EA 39, 05, 05]
+14E5; [76 EC 51, 05, 05]
-149A; [75 EA 40, 05, 05]
+14E6; [76 EC 58, 05, 05]
-149B; [75 EA 47, 05, 05]
+14E7; [76 EC 5F, 05, 05]
-149C; [75 EA 4E, 05, 05]
+14E8; [76 EC 66, 05, 05]
-149D; [75 EA 55, 05, 05]
+14E9; [76 EC 6D, 05, 05]
-149E; [75 EA 5C, 05, 05]
+14EA; [76 EC 74, 05, 05]
-149F; [75 EA 63, 05, 05]
+14EB; [76 EC 7B, 05, 05]
-14A0; [75 EA 6A, 05, 05]
+14EC; [76 EC 82, 05, 05]
-14A1; [75 EA 71, 05, 05]
+14ED; [76 EC 89, 05, 05]
-14A2; [75 EA 78, 05, 05]
+14EE; [76 EC 90, 05, 05]
-14A3; [75 EA 7F, 05, 05]
+14EF; [76 EC 97, 05, 05]
-14A4; [75 EA 86, 05, 05]
+14F0; [76 EC 9E, 05, 05]
-14A5; [75 EA 8D, 05, 05]
+14F1; [76 EC A5, 05, 05]
-14A6; [75 EA 94, 05, 05]
+14F2; [76 EC AC, 05, 05]
-14A7; [75 EA 9B, 05, 05]
+14F3; [76 EC B3, 05, 05]
-14A8; [75 EA A2, 05, 05]
+14F4; [76 EC BA, 05, 05]
-14A9; [75 EA A9, 05, 05]
+14F5; [76 EC C1, 05, 05]
-14AA; [75 EA B0, 05, 05]
+14F6; [76 EC C8, 05, 05]
-14AB; [75 EA B7, 05, 05]
+14F7; [76 EC CF, 05, 05]
-14AC; [75 EA BE, 05, 05]
+14F8; [76 EC D6, 05, 05]
-14AD; [75 EA C5, 05, 05]
+14F9; [76 EC DD, 05, 05]
-14AE; [75 EA CC, 05, 05]
+14FA; [76 EC E4, 05, 05]
-14AF; [75 EA D3, 05, 05]
+14FB; [76 EC EB, 05, 05]
-14B0; [75 EA DA, 05, 05]
+14FC; [76 EC F2, 05, 05]
-14B1; [75 EA E1, 05, 05]
+14FD; [76 EC F9, 05, 05]
-14B2; [75 EA E8, 05, 05]
+14FE; [76 ED 02, 05, 05]
-14B3; [75 EA EF, 05, 05]
+14FF; [76 ED 09, 05, 05]
-14B4; [75 EA F6, 05, 05]
+1500; [76 ED 10, 05, 05]
-14B5; [75 EA FD, 05, 05]
+1501; [76 ED 17, 05, 05]
-14B6; [75 EB 06, 05, 05]
+1502; [76 ED 1E, 05, 05]
-14B7; [75 EB 0D, 05, 05]
+1503; [76 ED 25, 05, 05]
-14B8; [75 EB 14, 05, 05]
+1504; [76 ED 2C, 05, 05]
-14B9; [75 EB 1B, 05, 05]
+1505; [76 ED 33, 05, 05]
-14BA; [75 EB 22, 05, 05]
+1506; [76 ED 3A, 05, 05]
-14BB; [75 EB 29, 05, 05]
+1507; [76 ED 41, 05, 05]
-14BC; [75 EB 30, 05, 05]
+1508; [76 ED 48, 05, 05]
-14BD; [75 EB 37, 05, 05]
+1509; [76 ED 4F, 05, 05]
-14BE; [75 EB 3E, 05, 05]
+150A; [76 ED 56, 05, 05]
-14BF; [75 EB 45, 05, 05]
+150B; [76 ED 5D, 05, 05]
-14C0; [75 EB 4C, 05, 05]
+150C; [76 ED 64, 05, 05]
-14C1; [75 EB 53, 05, 05]
+150D; [76 ED 6B, 05, 05]
-14C2; [75 EB 5A, 05, 05]
+150E; [76 ED 72, 05, 05]
-14C3; [75 EB 61, 05, 05]
+150F; [76 ED 79, 05, 05]
-14C4; [75 EB 68, 05, 05]
+1510; [76 ED 80, 05, 05]
-14C5; [75 EB 6F, 05, 05]
+1511; [76 ED 87, 05, 05]
-14C6; [75 EB 76, 05, 05]
+1512; [76 ED 8E, 05, 05]
-14C7; [75 EB 7D, 05, 05]
+1513; [76 ED 95, 05, 05]
-14C8; [75 EB 84, 05, 05]
+1514; [76 ED 9C, 05, 05]
-14C9; [75 EB 8B, 05, 05]
+1515; [76 ED A3, 05, 05]
-14CA; [75 EB 92, 05, 05]
+1516; [76 ED AA, 05, 05]
-14CB; [75 EB 99, 05, 05]
+1517; [76 ED B1, 05, 05]
-14CC; [75 EB A0, 05, 05]
+1518; [76 ED B8, 05, 05]
-14CD; [75 EB A7, 05, 05]
+1519; [76 ED BF, 05, 05]
-14CE; [75 EB AE, 05, 05]
+151A; [76 ED C6, 05, 05]
-14CF; [75 EB B5, 05, 05]
+151B; [76 ED CD, 05, 05]
-14D0; [75 EB BC, 05, 05]
+151C; [76 ED D4, 05, 05]
-14D1; [75 EB C3, 05, 05]
+151D; [76 ED DB, 05, 05]
-14D2; [75 EB CA, 05, 05]
+151E; [76 ED E2, 05, 05]
-14D3; [75 EB D1, 05, 05]
+151F; [76 ED E9, 05, 05]
-14D4; [75 EB D8, 05, 05]
+1520; [76 ED F0, 05, 05]
-14D5; [75 EB DF, 05, 05]
+1521; [76 ED F7, 05, 05]
-14D6; [75 EB E6, 05, 05]
+1522; [76 ED FE, 05, 05]
-14D7; [75 EB ED, 05, 05]
+1523; [76 EE 07, 05, 05]
-14D8; [75 EB F4, 05, 05]
+1524; [76 EE 0E, 05, 05]
-14D9; [75 EB FB, 05, 05]
+1525; [76 EE 15, 05, 05]
-14DA; [75 EC 04, 05, 05]
+1526; [76 EE 1C, 05, 05]
-14DB; [75 EC 0B, 05, 05]
+1527; [76 EE 23, 05, 05]
-14DC; [75 EC 12, 05, 05]
+1528; [76 EE 2A, 05, 05]
-14DD; [75 EC 19, 05, 05]
+1529; [76 EE 31, 05, 05]
-14DE; [75 EC 20, 05, 05]
+152A; [76 EE 38, 05, 05]
-14DF; [75 EC 27, 05, 05]
+152B; [76 EE 3F, 05, 05]
-14E0; [75 EC 2E, 05, 05]
+152C; [76 EE 46, 05, 05]
-14E1; [75 EC 35, 05, 05]
+152D; [76 EE 4D, 05, 05]
-14E2; [75 EC 3C, 05, 05]
+152E; [76 EE 54, 05, 05]
-14E3; [75 EC 43, 05, 05]
+152F; [76 EE 5B, 05, 05]
-14E4; [75 EC 4A, 05, 05]
+1530; [76 EE 62, 05, 05]
-14E5; [75 EC 51, 05, 05]
+1531; [76 EE 69, 05, 05]
-14E6; [75 EC 58, 05, 05]
+1532; [76 EE 70, 05, 05]
-14E7; [75 EC 5F, 05, 05]
+1533; [76 EE 77, 05, 05]
-14E8; [75 EC 66, 05, 05]
+1534; [76 EE 7E, 05, 05]
-14E9; [75 EC 6D, 05, 05]
+1535; [76 EE 85, 05, 05]
-14EA; [75 EC 74, 05, 05]
+1536; [76 EE 8C, 05, 05]
-14EB; [75 EC 7B, 05, 05]
+1537; [76 EE 93, 05, 05]
-14EC; [75 EC 82, 05, 05]
+1538; [76 EE 9A, 05, 05]
-14ED; [75 EC 89, 05, 05]
+1539; [76 EE A1, 05, 05]
-14EE; [75 EC 90, 05, 05]
+153A; [76 EE A8, 05, 05]
-14EF; [75 EC 97, 05, 05]
+153B; [76 EE AF, 05, 05]
-14F0; [75 EC 9E, 05, 05]
+153C; [76 EE B6, 05, 05]
-14F1; [75 EC A5, 05, 05]
+153D; [76 EE BD, 05, 05]
-14F2; [75 EC AC, 05, 05]
+153E; [76 EE C4, 05, 05]
-14F3; [75 EC B3, 05, 05]
+153F; [76 EE CB, 05, 05]
-14F4; [75 EC BA, 05, 05]
+1540; [76 EE D2, 05, 05]
-14F5; [75 EC C1, 05, 05]
+1541; [76 EE D9, 05, 05]
-14F6; [75 EC C8, 05, 05]
+1542; [76 EE E0, 05, 05]
-14F7; [75 EC CF, 05, 05]
+1543; [76 EE E7, 05, 05]
-14F8; [75 EC D6, 05, 05]
+1544; [76 EE EE, 05, 05]
-14F9; [75 EC DD, 05, 05]
+1545; [76 EE F5, 05, 05]
-14FA; [75 EC E4, 05, 05]
+1546; [76 EE FC, 05, 05]
-14FB; [75 EC EB, 05, 05]
+1547; [76 EF 05, 05, 05]
-14FC; [75 EC F2, 05, 05]
+1548; [76 EF 0C, 05, 05]
-14FD; [75 EC F9, 05, 05]
+1549; [76 EF 13, 05, 05]
-14FE; [75 ED 02, 05, 05]
+154A; [76 EF 1A, 05, 05]
-14FF; [75 ED 09, 05, 05]
+154B; [76 EF 21, 05, 05]
-1500; [75 ED 10, 05, 05]
+154C; [76 EF 28, 05, 05]
-1501; [75 ED 17, 05, 05]
+154D; [76 EF 2F, 05, 05]
-1502; [75 ED 1E, 05, 05]
+154E; [76 EF 36, 05, 05]
-1503; [75 ED 25, 05, 05]
+154F; [76 EF 3D, 05, 05]
-1504; [75 ED 2C, 05, 05]
+1550; [76 EF 44, 05, 05]
-1505; [75 ED 33, 05, 05]
+1551; [76 EF 4B, 05, 05]
-1506; [75 ED 3A, 05, 05]
+1552; [76 EF 52, 05, 05]
-1507; [75 ED 41, 05, 05]
+1553; [76 EF 59, 05, 05]
-1508; [75 ED 48, 05, 05]
+1554; [76 EF 60, 05, 05]
-1509; [75 ED 4F, 05, 05]
+1555; [76 EF 67, 05, 05]
-150A; [75 ED 56, 05, 05]
+1556; [76 EF 6E, 05, 05]
-150B; [75 ED 5D, 05, 05]
+1557; [76 EF 75, 05, 05]
-150C; [75 ED 64, 05, 05]
+1558; [76 EF 7C, 05, 05]
-150D; [75 ED 6B, 05, 05]
+1559; [76 EF 83, 05, 05]
-150E; [75 ED 72, 05, 05]
+155A; [76 EF 8A, 05, 05]
-150F; [75 ED 79, 05, 05]
+155B; [76 EF 91, 05, 05]
-1510; [75 ED 80, 05, 05]
+155C; [76 EF 98, 05, 05]
-1511; [75 ED 87, 05, 05]
+155D; [76 EF 9F, 05, 05]
-1512; [75 ED 8E, 05, 05]
+155E; [76 EF A6, 05, 05]
-1513; [75 ED 95, 05, 05]
+155F; [76 EF AD, 05, 05]
-1514; [75 ED 9C, 05, 05]
+1560; [76 EF B4, 05, 05]
-1515; [75 ED A3, 05, 05]
+1561; [76 EF BB, 05, 05]
-1516; [75 ED AA, 05, 05]
+1562; [76 EF C2, 05, 05]
-1517; [75 ED B1, 05, 05]
+1563; [76 EF C9, 05, 05]
-1518; [75 ED B8, 05, 05]
+1564; [76 EF D0, 05, 05]
-1519; [75 ED BF, 05, 05]
+1565; [76 EF D7, 05, 05]
-151A; [75 ED C6, 05, 05]
+1566; [76 EF DE, 05, 05]
-151B; [75 ED CD, 05, 05]
+1567; [76 EF E5, 05, 05]
-151C; [75 ED D4, 05, 05]
+1568; [76 EF EC, 05, 05]
-151D; [75 ED DB, 05, 05]
+1569; [76 EF F3, 05, 05]
-151E; [75 ED E2, 05, 05]
+156A; [76 EF FA, 05, 05]
-151F; [75 ED E9, 05, 05]
+156B; [76 F0 03, 05, 05]
-1520; [75 ED F0, 05, 05]
+156C; [76 F0 0A, 05, 05]
-1521; [75 ED F7, 05, 05]
+156D; [76 F0 11, 05, 05]
-1522; [75 ED FE, 05, 05]
+156E; [76 F0 18, 05, 05]
-1523; [75 EE 07, 05, 05]
+156F; [76 F0 1F, 05, 05]
-1524; [75 EE 0E, 05, 05]
+1570; [76 F0 26, 05, 05]
-1525; [75 EE 15, 05, 05]
+1571; [76 F0 2D, 05, 05]
-1526; [75 EE 1C, 05, 05]
+1572; [76 F0 34, 05, 05]
-1527; [75 EE 23, 05, 05]
+1573; [76 F0 3B, 05, 05]
-1528; [75 EE 2A, 05, 05]
+1574; [76 F0 42, 05, 05]
-1529; [75 EE 31, 05, 05]
+1575; [76 F0 49, 05, 05]
-152A; [75 EE 38, 05, 05]
+1576; [76 F0 50, 05, 05]
-152B; [75 EE 3F, 05, 05]
+1577; [76 F0 57, 05, 05]
-152C; [75 EE 46, 05, 05]
+1578; [76 F0 5E, 05, 05]
-152D; [75 EE 4D, 05, 05]
+1579; [76 F0 65, 05, 05]
-152E; [75 EE 54, 05, 05]
+157A; [76 F0 6C, 05, 05]
-152F; [75 EE 5B, 05, 05]
+157B; [76 F0 73, 05, 05]
-1530; [75 EE 62, 05, 05]
+157D; [76 F0 7A, 05, 05]
-1531; [75 EE 69, 05, 05]
+166F; [76 F0 81, 05, 05]
-1532; [75 EE 70, 05, 05]
+157E; [76 F0 88, 05, 05]
-1533; [75 EE 77, 05, 05]
+157F; [76 F0 8F, 05, 05]
-1534; [75 EE 7E, 05, 05]
+1580; [76 F0 96, 05, 05]
-1535; [75 EE 85, 05, 05]
+1581; [76 F0 9D, 05, 05]
-1536; [75 EE 8C, 05, 05]
+1582; [76 F0 A4, 05, 05]
-1537; [75 EE 93, 05, 05]
+1583; [76 F0 AB, 05, 05]
-1538; [75 EE 9A, 05, 05]
+1584; [76 F0 B2, 05, 05]
-1539; [75 EE A1, 05, 05]
+1585; [76 F0 B9, 05, 05]
-153A; [75 EE A8, 05, 05]
+1586; [76 F0 C0, 05, 05]
-153B; [75 EE AF, 05, 05]
+1587; [76 F0 C7, 05, 05]
-153C; [75 EE B6, 05, 05]
+1588; [76 F0 CE, 05, 05]
-153D; [75 EE BD, 05, 05]
+1589; [76 F0 D5, 05, 05]
-153E; [75 EE C4, 05, 05]
+158A; [76 F0 DC, 05, 05]
-153F; [75 EE CB, 05, 05]
+158B; [76 F0 E3, 05, 05]
-1540; [75 EE D2, 05, 05]
+158C; [76 F0 EA, 05, 05]
-1541; [75 EE D9, 05, 05]
+158D; [76 F0 F1, 05, 05]
-1542; [75 EE E0, 05, 05]
+1670; [76 F0 F8, 05, 05]
-1543; [75 EE E7, 05, 05]
+158E; [76 F0 FF, 05, 05]
-1544; [75 EE EE, 05, 05]
+158F; [76 F1 08, 05, 05]
-1545; [75 EE F5, 05, 05]
+1590; [76 F1 0F, 05, 05]
-1546; [75 EE FC, 05, 05]
+1591; [76 F1 16, 05, 05]
-1547; [75 EF 05, 05, 05]
+1592; [76 F1 1D, 05, 05]
-1548; [75 EF 0C, 05, 05]
+1593; [76 F1 24, 05, 05]
-1549; [75 EF 13, 05, 05]
+1594; [76 F1 2B, 05, 05]
-154A; [75 EF 1A, 05, 05]
+1595; [76 F1 32, 05, 05]
-154B; [75 EF 21, 05, 05]
+1671; [76 F1 39, 05, 05]
-154C; [75 EF 28, 05, 05]
+1672; [76 F1 40, 05, 05]
-154D; [75 EF 2F, 05, 05]
+1673; [76 F1 47, 05, 05]
-154E; [75 EF 36, 05, 05]
+1674; [76 F1 4E, 05, 05]
-154F; [75 EF 3D, 05, 05]
+1675; [76 F1 55, 05, 05]
-1550; [75 EF 44, 05, 05]
+1676; [76 F1 5C, 05, 05]
-1551; [75 EF 4B, 05, 05]
+1596; [76 F1 63, 05, 05]
-1552; [75 EF 52, 05, 05]
+1597; [76 F1 6A, 05, 05]
-1553; [75 EF 59, 05, 05]
+1598; [76 F1 71, 05, 05]
-1554; [75 EF 60, 05, 05]
+1599; [76 F1 78, 05, 05]
-1555; [75 EF 67, 05, 05]
+159A; [76 F1 7F, 05, 05]
-1556; [75 EF 6E, 05, 05]
+159B; [76 F1 86, 05, 05]
-1557; [75 EF 75, 05, 05]
+159C; [76 F1 8D, 05, 05]
-1558; [75 EF 7C, 05, 05]
+159D; [76 F1 94, 05, 05]
-1559; [75 EF 83, 05, 05]
+159E; [76 F1 9B, 05, 05]
-155A; [75 EF 8A, 05, 05]
+159F; [76 F1 A2, 05, 05]
-155B; [75 EF 91, 05, 05]
+15A0; [76 F1 A9, 05, 05]
-155C; [75 EF 98, 05, 05]
+15A1; [76 F1 B0, 05, 05]
-155D; [75 EF 9F, 05, 05]
+15A2; [76 F1 B7, 05, 05]
-155E; [75 EF A6, 05, 05]
+15A3; [76 F1 BE, 05, 05]
-155F; [75 EF AD, 05, 05]
+15A4; [76 F1 C5, 05, 05]
-1560; [75 EF B4, 05, 05]
+15A5; [76 F1 CC, 05, 05]
-1561; [75 EF BB, 05, 05]
+15A6; [76 F1 D3, 05, 05]
-1562; [75 EF C2, 05, 05]
+157C; [76 F1 DA, 05, 05]
-1563; [75 EF C9, 05, 05]
+15A7; [76 F1 E1, 05, 05]
-1564; [75 EF D0, 05, 05]
+15A8; [76 F1 E8, 05, 05]
-1565; [75 EF D7, 05, 05]
+15A9; [76 F1 EF, 05, 05]
-1566; [75 EF DE, 05, 05]
+15AA; [76 F1 F6, 05, 05]
-1567; [75 EF E5, 05, 05]
+15AB; [76 F1 FD, 05, 05]
-1568; [75 EF EC, 05, 05]
+15AC; [76 F2 06, 05, 05]
-1569; [75 EF F3, 05, 05]
+15AD; [76 F2 0D, 05, 05]
-156A; [75 EF FA, 05, 05]
+15AE; [76 F2 14, 05, 05]
-156B; [75 F0 03, 05, 05]
+15AF; [76 F2 1B, 05, 05]
-156C; [75 F0 0A, 05, 05]
+15B0; [76 F2 22, 05, 05]
-156D; [75 F0 11, 05, 05]
+15B1; [76 F2 29, 05, 05]
-156E; [75 F0 18, 05, 05]
+15B2; [76 F2 30, 05, 05]
-156F; [75 F0 1F, 05, 05]
+15B3; [76 F2 37, 05, 05]
-1570; [75 F0 26, 05, 05]
+15B4; [76 F2 3E, 05, 05]
-1571; [75 F0 2D, 05, 05]
+15B5; [76 F2 45, 05, 05]
-1572; [75 F0 34, 05, 05]
+15B6; [76 F2 4C, 05, 05]
-1573; [75 F0 3B, 05, 05]
+15B7; [76 F2 53, 05, 05]
-1574; [75 F0 42, 05, 05]
+15B8; [76 F2 5A, 05, 05]
-1575; [75 F0 49, 05, 05]
+15B9; [76 F2 61, 05, 05]
-1576; [75 F0 50, 05, 05]
+15BA; [76 F2 68, 05, 05]
-1577; [75 F0 57, 05, 05]
+15BB; [76 F2 6F, 05, 05]
-1578; [75 F0 5E, 05, 05]
+15BC; [76 F2 76, 05, 05]
-1579; [75 F0 65, 05, 05]
+15BD; [76 F2 7D, 05, 05]
-157A; [75 F0 6C, 05, 05]
+15BE; [76 F2 84, 05, 05]
-157B; [75 F0 73, 05, 05]
+15BF; [76 F2 8B, 05, 05]
-157D; [75 F0 7A, 05, 05]
+15C0; [76 F2 92, 05, 05]
-166F; [75 F0 81, 05, 05]
+15C1; [76 F2 99, 05, 05]
-157E; [75 F0 88, 05, 05]
+15C2; [76 F2 A0, 05, 05]
-157F; [75 F0 8F, 05, 05]
+15C3; [76 F2 A7, 05, 05]
-1580; [75 F0 96, 05, 05]
+15C4; [76 F2 AE, 05, 05]
-1581; [75 F0 9D, 05, 05]
+15C5; [76 F2 B5, 05, 05]
-1582; [75 F0 A4, 05, 05]
+15C6; [76 F2 BC, 05, 05]
-1583; [75 F0 AB, 05, 05]
+15C7; [76 F2 C3, 05, 05]
-1584; [75 F0 B2, 05, 05]
+15C8; [76 F2 CA, 05, 05]
-1585; [75 F0 B9, 05, 05]
+15C9; [76 F2 D1, 05, 05]
-1586; [75 F0 C0, 05, 05]
+15CA; [76 F2 D8, 05, 05]
-1587; [75 F0 C7, 05, 05]
+15CB; [76 F2 DF, 05, 05]
-1588; [75 F0 CE, 05, 05]
+15CC; [76 F2 E6, 05, 05]
-1589; [75 F0 D5, 05, 05]
+15CD; [76 F2 ED, 05, 05]
-158A; [75 F0 DC, 05, 05]
+15CE; [76 F2 F4, 05, 05]
-158B; [75 F0 E3, 05, 05]
+15CF; [76 F2 FB, 05, 05]
-158C; [75 F0 EA, 05, 05]
+15D0; [76 F3 04, 05, 05]
-158D; [75 F0 F1, 05, 05]
+15D1; [76 F3 0B, 05, 05]
-1670; [75 F0 F8, 05, 05]
+15D2; [76 F3 12, 05, 05]
-158E; [75 F0 FF, 05, 05]
+15D3; [76 F3 19, 05, 05]
-158F; [75 F1 08, 05, 05]
+15D4; [76 F3 20, 05, 05]
-1590; [75 F1 0F, 05, 05]
+15D5; [76 F3 27, 05, 05]
-1591; [75 F1 16, 05, 05]
+15D6; [76 F3 2E, 05, 05]
-1592; [75 F1 1D, 05, 05]
+15D7; [76 F3 35, 05, 05]
-1593; [75 F1 24, 05, 05]
+15D8; [76 F3 3C, 05, 05]
-1594; [75 F1 2B, 05, 05]
+15D9; [76 F3 43, 05, 05]
-1595; [75 F1 32, 05, 05]
+15DA; [76 F3 4A, 05, 05]
-1671; [75 F1 39, 05, 05]
+15DB; [76 F3 51, 05, 05]
-1672; [75 F1 40, 05, 05]
+15DC; [76 F3 58, 05, 05]
-1673; [75 F1 47, 05, 05]
+15DD; [76 F3 5F, 05, 05]
-1674; [75 F1 4E, 05, 05]
+15DE; [76 F3 66, 05, 05]
-1675; [75 F1 55, 05, 05]
+15DF; [76 F3 6D, 05, 05]
-1676; [75 F1 5C, 05, 05]
+15E0; [76 F3 74, 05, 05]
-1596; [75 F1 63, 05, 05]
+15E1; [76 F3 7B, 05, 05]
-1597; [75 F1 6A, 05, 05]
+15E2; [76 F3 82, 05, 05]
-1598; [75 F1 71, 05, 05]
+15E3; [76 F3 89, 05, 05]
-1599; [75 F1 78, 05, 05]
+15E4; [76 F3 90, 05, 05]
-159A; [75 F1 7F, 05, 05]
+15E5; [76 F3 97, 05, 05]
-159B; [75 F1 86, 05, 05]
+15E6; [76 F3 9E, 05, 05]
-159C; [75 F1 8D, 05, 05]
+15E7; [76 F3 A5, 05, 05]
-159D; [75 F1 94, 05, 05]
+15E8; [76 F3 AC, 05, 05]
-159E; [75 F1 9B, 05, 05]
+15E9; [76 F3 B3, 05, 05]
-159F; [75 F1 A2, 05, 05]
+15EA; [76 F3 BA, 05, 05]
-15A0; [75 F1 A9, 05, 05]
+15EB; [76 F3 C1, 05, 05]
-15A1; [75 F1 B0, 05, 05]
+15EC; [76 F3 C8, 05, 05]
-15A2; [75 F1 B7, 05, 05]
+15ED; [76 F3 CF, 05, 05]
-15A3; [75 F1 BE, 05, 05]
+15EE; [76 F3 D6, 05, 05]
-15A4; [75 F1 C5, 05, 05]
+15EF; [76 F3 DD, 05, 05]
-15A5; [75 F1 CC, 05, 05]
+15F0; [76 F3 E4, 05, 05]
-15A6; [75 F1 D3, 05, 05]
+15F1; [76 F3 EB, 05, 05]
-157C; [75 F1 DA, 05, 05]
+15F2; [76 F3 F2, 05, 05]
-15A7; [75 F1 E1, 05, 05]
+15F3; [76 F3 F9, 05, 05]
-15A8; [75 F1 E8, 05, 05]
+15F4; [76 F4 02, 05, 05]
-15A9; [75 F1 EF, 05, 05]
+15F5; [76 F4 09, 05, 05]
-15AA; [75 F1 F6, 05, 05]
+15F6; [76 F4 10, 05, 05]
-15AB; [75 F1 FD, 05, 05]
+15F7; [76 F4 17, 05, 05]
-15AC; [75 F2 06, 05, 05]
+15F8; [76 F4 1E, 05, 05]
-15AD; [75 F2 0D, 05, 05]
+15F9; [76 F4 25, 05, 05]
-15AE; [75 F2 14, 05, 05]
+15FA; [76 F4 2C, 05, 05]
-15AF; [75 F2 1B, 05, 05]
+15FB; [76 F4 33, 05, 05]
-15B0; [75 F2 22, 05, 05]
+15FC; [76 F4 3A, 05, 05]
-15B1; [75 F2 29, 05, 05]
+15FD; [76 F4 41, 05, 05]
-15B2; [75 F2 30, 05, 05]
+15FE; [76 F4 48, 05, 05]
-15B3; [75 F2 37, 05, 05]
+15FF; [76 F4 4F, 05, 05]
-15B4; [75 F2 3E, 05, 05]
+1600; [76 F4 56, 05, 05]
-15B5; [75 F2 45, 05, 05]
+1601; [76 F4 5D, 05, 05]
-15B6; [75 F2 4C, 05, 05]
+1602; [76 F4 64, 05, 05]
-15B7; [75 F2 53, 05, 05]
+1603; [76 F4 6B, 05, 05]
-15B8; [75 F2 5A, 05, 05]
+1604; [76 F4 72, 05, 05]
-15B9; [75 F2 61, 05, 05]
+1605; [76 F4 79, 05, 05]
-15BA; [75 F2 68, 05, 05]
+1606; [76 F4 80, 05, 05]
-15BB; [75 F2 6F, 05, 05]
+1607; [76 F4 87, 05, 05]
-15BC; [75 F2 76, 05, 05]
+1608; [76 F4 8E, 05, 05]
-15BD; [75 F2 7D, 05, 05]
+1609; [76 F4 95, 05, 05]
-15BE; [75 F2 84, 05, 05]
+160A; [76 F4 9C, 05, 05]
-15BF; [75 F2 8B, 05, 05]
+160B; [76 F4 A3, 05, 05]
-15C0; [75 F2 92, 05, 05]
+160C; [76 F4 AA, 05, 05]
-15C1; [75 F2 99, 05, 05]
+160D; [76 F4 B1, 05, 05]
-15C2; [75 F2 A0, 05, 05]
+160E; [76 F4 B8, 05, 05]
-15C3; [75 F2 A7, 05, 05]
+160F; [76 F4 BF, 05, 05]
-15C4; [75 F2 AE, 05, 05]
+1610; [76 F4 C6, 05, 05]
-15C5; [75 F2 B5, 05, 05]
+1611; [76 F4 CD, 05, 05]
-15C6; [75 F2 BC, 05, 05]
+1612; [76 F4 D4, 05, 05]
-15C7; [75 F2 C3, 05, 05]
+1613; [76 F4 DB, 05, 05]
-15C8; [75 F2 CA, 05, 05]
+1614; [76 F4 E2, 05, 05]
-15C9; [75 F2 D1, 05, 05]
+1615; [76 F4 E9, 05, 05]
-15CA; [75 F2 D8, 05, 05]
+1616; [76 F4 F0, 05, 05]
-15CB; [75 F2 DF, 05, 05]
+1617; [76 F4 F7, 05, 05]
-15CC; [75 F2 E6, 05, 05]
+1618; [76 F4 FE, 05, 05]
-15CD; [75 F2 ED, 05, 05]
+1619; [76 F5 07, 05, 05]
-15CE; [75 F2 F4, 05, 05]
+161A; [76 F5 0E, 05, 05]
-15CF; [75 F2 FB, 05, 05]
+161B; [76 F5 15, 05, 05]
-15D0; [75 F3 04, 05, 05]
+161C; [76 F5 1C, 05, 05]
-15D1; [75 F3 0B, 05, 05]
+161D; [76 F5 23, 05, 05]
-15D2; [75 F3 12, 05, 05]
+161E; [76 F5 2A, 05, 05]
-15D3; [75 F3 19, 05, 05]
+161F; [76 F5 31, 05, 05]
-15D4; [75 F3 20, 05, 05]
+1620; [76 F5 38, 05, 05]
-15D5; [75 F3 27, 05, 05]
+1621; [76 F5 3F, 05, 05]
-15D6; [75 F3 2E, 05, 05]
+1622; [76 F5 46, 05, 05]
-15D7; [75 F3 35, 05, 05]
+1623; [76 F5 4D, 05, 05]
-15D8; [75 F3 3C, 05, 05]
+1624; [76 F5 54, 05, 05]
-15D9; [75 F3 43, 05, 05]
+1625; [76 F5 5B, 05, 05]
-15DA; [75 F3 4A, 05, 05]
+1626; [76 F5 62, 05, 05]
-15DB; [75 F3 51, 05, 05]
+1627; [76 F5 69, 05, 05]
-15DC; [75 F3 58, 05, 05]
+1628; [76 F5 70, 05, 05]
-15DD; [75 F3 5F, 05, 05]
+1629; [76 F5 77, 05, 05]
-15DE; [75 F3 66, 05, 05]
+162A; [76 F5 7E, 05, 05]
-15DF; [75 F3 6D, 05, 05]
+162B; [76 F5 85, 05, 05]
-15E0; [75 F3 74, 05, 05]
+162C; [76 F5 8C, 05, 05]
-15E1; [75 F3 7B, 05, 05]
+162D; [76 F5 93, 05, 05]
-15E2; [75 F3 82, 05, 05]
+162E; [76 F5 9A, 05, 05]
-15E3; [75 F3 89, 05, 05]
+162F; [76 F5 A1, 05, 05]
-15E4; [75 F3 90, 05, 05]
+1630; [76 F5 A8, 05, 05]
-15E5; [75 F3 97, 05, 05]
+1631; [76 F5 AF, 05, 05]
-15E6; [75 F3 9E, 05, 05]
+1632; [76 F5 B6, 05, 05]
-15E7; [75 F3 A5, 05, 05]
+1633; [76 F5 BD, 05, 05]
-15E8; [75 F3 AC, 05, 05]
+1634; [76 F5 C4, 05, 05]
-15E9; [75 F3 B3, 05, 05]
+1635; [76 F5 CB, 05, 05]
-15EA; [75 F3 BA, 05, 05]
+1636; [76 F5 D2, 05, 05]
-15EB; [75 F3 C1, 05, 05]
+1637; [76 F5 D9, 05, 05]
-15EC; [75 F3 C8, 05, 05]
+1638; [76 F5 E0, 05, 05]
-15ED; [75 F3 CF, 05, 05]
+1639; [76 F5 E7, 05, 05]
-15EE; [75 F3 D6, 05, 05]
+163A; [76 F5 EE, 05, 05]
-15EF; [75 F3 DD, 05, 05]
+163B; [76 F5 F5, 05, 05]
-15F0; [75 F3 E4, 05, 05]
+163C; [76 F5 FC, 05, 05]
-15F1; [75 F3 EB, 05, 05]
+163D; [76 F6 05, 05, 05]
-15F2; [75 F3 F2, 05, 05]
+163E; [76 F6 0C, 05, 05]
-15F3; [75 F3 F9, 05, 05]
+163F; [76 F6 13, 05, 05]
-15F4; [75 F4 02, 05, 05]
+1640; [76 F6 1A, 05, 05]
-15F5; [75 F4 09, 05, 05]
+1641; [76 F6 21, 05, 05]
-15F6; [75 F4 10, 05, 05]
+1642; [76 F6 28, 05, 05]
-15F7; [75 F4 17, 05, 05]
+1643; [76 F6 2F, 05, 05]
-15F8; [75 F4 1E, 05, 05]
+1644; [76 F6 36, 05, 05]
-15F9; [75 F4 25, 05, 05]
+1645; [76 F6 3D, 05, 05]
-15FA; [75 F4 2C, 05, 05]
+1646; [76 F6 44, 05, 05]
-15FB; [75 F4 33, 05, 05]
+1647; [76 F6 4B, 05, 05]
-15FC; [75 F4 3A, 05, 05]
+1648; [76 F6 52, 05, 05]
-15FD; [75 F4 41, 05, 05]
+1649; [76 F6 59, 05, 05]
-15FE; [75 F4 48, 05, 05]
+164A; [76 F6 60, 05, 05]
-15FF; [75 F4 4F, 05, 05]
+164B; [76 F6 67, 05, 05]
-1600; [75 F4 56, 05, 05]
+164C; [76 F6 6E, 05, 05]
-1601; [75 F4 5D, 05, 05]
+164D; [76 F6 75, 05, 05]
-1602; [75 F4 64, 05, 05]
+164E; [76 F6 7C, 05, 05]
-1603; [75 F4 6B, 05, 05]
+164F; [76 F6 83, 05, 05]
-1604; [75 F4 72, 05, 05]
+1650; [76 F6 8A, 05, 05]
-1605; [75 F4 79, 05, 05]
+1651; [76 F6 91, 05, 05]
-1606; [75 F4 80, 05, 05]
+1652; [76 F6 98, 05, 05]
-1607; [75 F4 87, 05, 05]
+1653; [76 F6 9F, 05, 05]
-1608; [75 F4 8E, 05, 05]
+1654; [76 F6 A6, 05, 05]
-1609; [75 F4 95, 05, 05]
+1655; [76 F6 AD, 05, 05]
-160A; [75 F4 9C, 05, 05]
+1656; [76 F6 B4, 05, 05]
-160B; [75 F4 A3, 05, 05]
+1657; [76 F6 BB, 05, 05]
-160C; [75 F4 AA, 05, 05]
+1658; [76 F6 C2, 05, 05]
-160D; [75 F4 B1, 05, 05]
+1659; [76 F6 C9, 05, 05]
-160E; [75 F4 B8, 05, 05]
+165A; [76 F6 D0, 05, 05]
-160F; [75 F4 BF, 05, 05]
+165B; [76 F6 D7, 05, 05]
-1610; [75 F4 C6, 05, 05]
+165C; [76 F6 DE, 05, 05]
-1611; [75 F4 CD, 05, 05]
+165D; [76 F6 E5, 05, 05]
-1612; [75 F4 D4, 05, 05]
+165E; [76 F6 EC, 05, 05]
-1613; [75 F4 DB, 05, 05]
+165F; [76 F6 F3, 05, 05]
-1614; [75 F4 E2, 05, 05]
+1660; [76 F6 FA, 05, 05]
-1615; [75 F4 E9, 05, 05]
+1661; [76 F7 03, 05, 05]
-1616; [75 F4 F0, 05, 05]
+1662; [76 F7 0A, 05, 05]
-1617; [75 F4 F7, 05, 05]
+1663; [76 F7 11, 05, 05]
-1618; [75 F4 FE, 05, 05]
+1664; [76 F7 18, 05, 05]
-1619; [75 F5 07, 05, 05]
+1665; [76 F7 1F, 05, 05]
-161A; [75 F5 0E, 05, 05]
+1666; [76 F7 26, 05, 05]
-161B; [75 F5 15, 05, 05]
+1667; [76 F7 2D, 05, 05]
-161C; [75 F5 1C, 05, 05]
+1668; [76 F7 34, 05, 05]
-161D; [75 F5 23, 05, 05]
+1669; [76 F7 3B, 05, 05]
-161E; [75 F5 2A, 05, 05]
+166A; [76 F7 42, 05, 05]
-161F; [75 F5 31, 05, 05]
+166B; [76 F7 49, 05, 05]
-1620; [75 F5 38, 05, 05]
+166C; [76 F7 50, 05, 05]
-1621; [75 F5 3F, 05, 05]
+1677; [76 F7 57, 05, 05]
-1622; [75 F5 46, 05, 05]
+1678; [76 F7 5E, 05, 05]
-1623; [75 F5 4D, 05, 05]
+1679; [76 F7 65, 05, 05]
-1624; [75 F5 54, 05, 05]
+167A; [76 F7 6C, 05, 05]
-1625; [75 F5 5B, 05, 05]
+167B; [76 F7 73, 05, 05]
-1626; [75 F5 62, 05, 05]
+167C; [76 F7 7A, 05, 05]
-1627; [75 F5 69, 05, 05]
+167D; [76 F7 81, 05, 05]
-1628; [75 F5 70, 05, 05]
+167E; [76 F7 88, 05, 05]
-1629; [75 F5 77, 05, 05]
+167F; [76 F7 8F, 05, 05]
-162A; [75 F5 7E, 05, 05]
+18B0; [76 F7 96, 05, 05]
-162B; [75 F5 85, 05, 05]
+18B1; [76 F7 9D, 05, 05]
-162C; [75 F5 8C, 05, 05]
+18B2; [76 F7 A4, 05, 05]
-162D; [75 F5 93, 05, 05]
+18B3; [76 F7 AB, 05, 05]
-162E; [75 F5 9A, 05, 05]
+18B4; [76 F7 B2, 05, 05]
-162F; [75 F5 A1, 05, 05]
+18B5; [76 F7 B9, 05, 05]
-1630; [75 F5 A8, 05, 05]
+18B6; [76 F7 C0, 05, 05]
-1631; [75 F5 AF, 05, 05]
+18B7; [76 F7 C7, 05, 05]
-1632; [75 F5 B6, 05, 05]
+18B8; [76 F7 CE, 05, 05]
-1633; [75 F5 BD, 05, 05]
+18B9; [76 F7 D5, 05, 05]
-1634; [75 F5 C4, 05, 05]
+18BA; [76 F7 DC, 05, 05]
-1635; [75 F5 CB, 05, 05]
+18BB; [76 F7 E3, 05, 05]
-1636; [75 F5 D2, 05, 05]
+18BC; [76 F7 EA, 05, 05]
-1637; [75 F5 D9, 05, 05]
+18BD; [76 F7 F1, 05, 05]
-1638; [75 F5 E0, 05, 05]
+18BE; [76 F7 F8, 05, 05]
-1639; [75 F5 E7, 05, 05]
+18BF; [76 F7 FF, 05, 05]
-163A; [75 F5 EE, 05, 05]
+18C0; [76 F8 08, 05, 05]
-163B; [75 F5 F5, 05, 05]
+18C1; [76 F8 0F, 05, 05]
-163C; [75 F5 FC, 05, 05]
+18C2; [76 F8 16, 05, 05]
-163D; [75 F6 05, 05, 05]
+18C3; [76 F8 1D, 05, 05]
-163E; [75 F6 0C, 05, 05]
+18C4; [76 F8 24, 05, 05]
-163F; [75 F6 13, 05, 05]
+18C5; [76 F8 2B, 05, 05]
-1640; [75 F6 1A, 05, 05]
+18C6; [76 F8 32, 05, 05]
-1641; [75 F6 21, 05, 05]
+18C7; [76 F8 39, 05, 05]
-1642; [75 F6 28, 05, 05]
+18C8; [76 F8 40, 05, 05]
-1643; [75 F6 2F, 05, 05]
+18C9; [76 F8 47, 05, 05]
-1644; [75 F6 36, 05, 05]
+18CA; [76 F8 4E, 05, 05]
-1645; [75 F6 3D, 05, 05]
+18CB; [76 F8 55, 05, 05]
-1646; [75 F6 44, 05, 05]
+18CC; [76 F8 5C, 05, 05]
-1647; [75 F6 4B, 05, 05]
+18CD; [76 F8 63, 05, 05]
-1648; [75 F6 52, 05, 05]
+18CE; [76 F8 6A, 05, 05]
-1649; [75 F6 59, 05, 05]
+18CF; [76 F8 71, 05, 05]
-164A; [75 F6 60, 05, 05]
+18D0; [76 F8 78, 05, 05]
-164B; [75 F6 67, 05, 05]
+18D1; [76 F8 7F, 05, 05]
-164C; [75 F6 6E, 05, 05]
+18D2; [76 F8 86, 05, 05]
-164D; [75 F6 75, 05, 05]
+18D3; [76 F8 8D, 05, 05]
-164E; [75 F6 7C, 05, 05]
+18D4; [76 F8 94, 05, 05]
-164F; [75 F6 83, 05, 05]
+18D5; [76 F8 9B, 05, 05]
-1650; [75 F6 8A, 05, 05]
+18D6; [76 F8 A2, 05, 05]
-1651; [75 F6 91, 05, 05]
+18D7; [76 F8 A9, 05, 05]
-1652; [75 F6 98, 05, 05]
+18D8; [76 F8 B0, 05, 05]
-1653; [75 F6 9F, 05, 05]
+18D9; [76 F8 B7, 05, 05]
-1654; [75 F6 A6, 05, 05]
+18DA; [76 F8 BE, 05, 05]
-1655; [75 F6 AD, 05, 05]
+18DB; [76 F8 C5, 05, 05]
-1656; [75 F6 B4, 05, 05]
+18DC; [76 F8 CC, 05, 05]
-1657; [75 F6 BB, 05, 05]
+18DD; [76 F8 D3, 05, 05]
-1658; [75 F6 C2, 05, 05]
+18DE; [76 F8 DA, 05, 05]
-1659; [75 F6 C9, 05, 05]
+18DF; [76 F8 E1, 05, 05]
-165A; [75 F6 D0, 05, 05]
+18E0; [76 F8 E8, 05, 05]
-165B; [75 F6 D7, 05, 05]
+18E1; [76 F8 EF, 05, 05]
-165C; [75 F6 DE, 05, 05]
+18E2; [76 F8 F6, 05, 05]
-165D; [75 F6 E5, 05, 05]
+18E3; [76 F8 FD, 05, 05]
-165E; [75 F6 EC, 05, 05]
+18E4; [76 F9 06, 05, 05]
-165F; [75 F6 F3, 05, 05]
+18E5; [76 F9 0D, 05, 05]
-1660; [75 F6 FA, 05, 05]
+18E6; [76 F9 14, 05, 05]
-1661; [75 F7 03, 05, 05]
+18E7; [76 F9 1B, 05, 05]
-1662; [75 F7 0A, 05, 05]
+18E8; [76 F9 22, 05, 05]
-1663; [75 F7 11, 05, 05]
+18E9; [76 F9 29, 05, 05]
-1664; [75 F7 18, 05, 05]
+18EA; [76 F9 30, 05, 05]
-1665; [75 F7 1F, 05, 05]
+18EB; [76 F9 37, 05, 05]
-1666; [75 F7 26, 05, 05]
+18EC; [76 F9 3E, 05, 05]
-1667; [75 F7 2D, 05, 05]
+18ED; [76 F9 45, 05, 05]
-1668; [75 F7 34, 05, 05]
+18EE; [76 F9 4C, 05, 05]
-1669; [75 F7 3B, 05, 05]
+18EF; [76 F9 53, 05, 05]
-166A; [75 F7 42, 05, 05]
+18F0; [76 F9 5A, 05, 05]
-166B; [75 F7 49, 05, 05]
+18F1; [76 F9 61, 05, 05]
-166C; [75 F7 50, 05, 05]
+18F2; [76 F9 68, 05, 05]
-1677; [75 F7 57, 05, 05]
+18F3; [76 F9 6F, 05, 05]
-1678; [75 F7 5E, 05, 05]
+18F4; [76 F9 76, 05, 05]
-1679; [75 F7 65, 05, 05]
+18F5; [76 F9 7D, 05, 05]
-167A; [75 F7 6C, 05, 05]
+FDD1 168F; [76 FA 02, 05, 05] # OGHAM first primary (compressible)
-167B; [75 F7 73, 05, 05]
+1681; [76 FA 09, 05, 05]
-167C; [75 F7 7A, 05, 05]
+1682; [76 FA 10, 05, 05]
-167D; [75 F7 81, 05, 05]
+1683; [76 FA 17, 05, 05]
-167E; [75 F7 88, 05, 05]
+1684; [76 FA 1E, 05, 05]
-167F; [75 F7 8F, 05, 05]
+1685; [76 FA 25, 05, 05]
-18B0; [75 F7 96, 05, 05]
+1686; [76 FA 2C, 05, 05]
-18B1; [75 F7 9D, 05, 05]
+1687; [76 FA 33, 05, 05]
-18B2; [75 F7 A4, 05, 05]
+1688; [76 FA 3A, 05, 05]
-18B3; [75 F7 AB, 05, 05]
+1689; [76 FA 41, 05, 05]
-18B4; [75 F7 B2, 05, 05]
+168A; [76 FA 48, 05, 05]
-18B5; [75 F7 B9, 05, 05]
+168B; [76 FA 4F, 05, 05]
-18B6; [75 F7 C0, 05, 05]
+168C; [76 FA 56, 05, 05]
-18B7; [75 F7 C7, 05, 05]
+168D; [76 FA 5D, 05, 05]
-18B8; [75 F7 CE, 05, 05]
+168E; [76 FA 64, 05, 05]
-18B9; [75 F7 D5, 05, 05]
+168F; [76 FA 6B, 05, 05]
-18BA; [75 F7 DC, 05, 05]
+1690; [76 FA 72, 05, 05]
-18BB; [75 F7 E3, 05, 05]
+1691; [76 FA 79, 05, 05]
-18BC; [75 F7 EA, 05, 05]
+1692; [76 FA 80, 05, 05]
-18BD; [75 F7 F1, 05, 05]
+1693; [76 FA 87, 05, 05]
-18BE; [75 F7 F8, 05, 05]
+1694; [76 FA 8E, 05, 05]
-18BF; [75 F7 FF, 05, 05]
+1695; [76 FA 95, 05, 05]
-18C0; [75 F8 08, 05, 05]
+1696; [76 FA 9C, 05, 05]
-18C1; [75 F8 0F, 05, 05]
+1697; [76 FA A3, 05, 05]
-18C2; [75 F8 16, 05, 05]
+1698; [76 FA AA, 05, 05]
-18C3; [75 F8 1D, 05, 05]
+1699; [76 FA B1, 05, 05]
-18C4; [75 F8 24, 05, 05]
+169A; [76 FA B8, 05, 05]
-18C5; [75 F8 2B, 05, 05]
+FDD1 16A0; [77 04 02, 05, 05] # RUNIC first primary starts new lead byte (compressible)
-18C6; [75 F8 32, 05, 05]
+16A0; [77 06, 05, 05]
+16A1; [77 06, 70, 05]
-18C7; [75 F8 39, 05, 05]
+16A2; [77 08, 05, 05]
+16A4; [77 08, 70, 05]
+16A5; [77 08, 78, 05]
-18C8; [75 F8 40, 05, 05]
+16A6; [77 0A, 05, 05]
+16A7; [77 0A, 70, 05]
+16F0; [77 0A, 05, 20][77 0A, 05, 20]
-18C9; [75 F8 47, 05, 05]
+16A8; [77 0C, 05, 05]
+16A9; [77 0C, 70, 05]
+16AC; [77 0C, 74, 05]
+16AD; [77 0C, 78, 05]
+16AE; [77 0C, 7C, 05]
-18CA; [75 F8 4E, 05, 05]
+16F4; [77 0E 02, 05, 05]
-18CB; [75 F8 55, 05, 05]
+16AF; [77 0E 09, 05, 05]
-18CC; [75 F8 5C, 05, 05]
+16B0; [77 0E 10, 05, 05]
-18CD; [75 F8 63, 05, 05]
+16B1; [77 0E 17, 05, 05]
-18CE; [75 F8 6A, 05, 05]
+16B2; [77 10, 05, 05]
+16B3; [77 10, 70, 05]
+16B4; [77 10, 74, 05]
+16B5; [77 10, 78, 05]
+16B6; [77 10, 7C, 05]
-18CF; [75 F8 71, 05, 05]
+16F1; [77 12 02, 05, 05]
-18D0; [75 F8 78, 05, 05]
+16B7; [77 12 09, 05, 05]
-18D1; [75 F8 7F, 05, 05]
+16B9; [77 14, 05, 05]
+16E9; [77 14, 70, 05]
-18D2; [75 F8 86, 05, 05]
+16BA; [77 16, 05, 05]
+16BB; [77 16, 70, 05]
+16BC; [77 16, 75, 05]
+16BD; [77 16, 7A, 05]
-18D3; [75 F8 8D, 05, 05]
+16BE; [77 18, 05, 05]
+16BF; [77 18, 70, 05]
+16C0; [77 18, 78, 05]
-18D4; [75 F8 94, 05, 05]
+16C1; [77 1A, 05, 05]
+16C2; [77 1A, 70, 05]
-18D5; [75 F8 9B, 05, 05]
+16F5; [77 1C, 05, 05]
-18D6; [75 F8 A2, 05, 05]
+16C3; [77 1E, 05, 05]
+16C4; [77 1E, 70, 05]
-18D7; [75 F8 A9, 05, 05]
+16C5; [77 20, 05, 05]
+16C6; [77 20, 70, 05]
+16EE; [77 20, 05, 20][77 34, 05, 20]
-18D8; [75 F8 B0, 05, 05]
+16C7; [77 22, 05, 05]
-18D9; [75 F8 B7, 05, 05]
+16C8; [77 24, 05, 05]
+16D5; [77 24, 70, 05]
-18DA; [75 F8 BE, 05, 05]
+16C9; [77 26, 05, 05]
-18DB; [75 F8 C5, 05, 05]
+16CA; [77 28, 05, 05]
+16CB; [77 28, 70, 05]
+16EA; [77 28, 73, 05]
+16CC; [77 28, 76, 05]
+16CD; [77 28, 79, 05]
+16CE; [77 28, 7C, 05]
-18DC; [75 F8 CC, 05, 05]
+16F2; [77 2A, 05, 05]
-18DD; [75 F8 D3, 05, 05]
+16CF; [77 2C, 05, 05]
+16D0; [77 2C, 70, 05]
+16D1; [77 2C, 78, 05]
-18DE; [75 F8 DA, 05, 05]
+16D2; [77 2E, 05, 05]
+16D3; [77 2E, 70, 05]
+16D4; [77 2E, 78, 05]
-18DF; [75 F8 E1, 05, 05]
+16D6; [77 30 02, 05, 05]
-18E0; [75 F8 E8, 05, 05]
+16F6; [77 30 09, 05, 05]
-18E1; [75 F8 EF, 05, 05]
+16D7; [77 32, 05, 05]
+16D8; [77 32, 70, 05]
+16D9; [77 32, 78, 05]
+16EF; [77 32, 70, 05][77 32, 70, 05]
-18E2; [75 F8 F6, 05, 05]
+16DA; [77 34, 05, 05]
+16DB; [77 34, 70, 05]
-18E3; [75 F8 FD, 05, 05]
+16DC; [77 36, 05, 05]
+16DD; [77 36, 70, 05]
-18E4; [75 F9 06, 05, 05]
+16DE; [77 38 02, 05, 05]
-18E5; [75 F9 0D, 05, 05]
+16DF; [77 38 09, 05, 05]
-18E6; [75 F9 14, 05, 05]
+16F3; [77 38 10, 05, 05]
-18E7; [75 F9 1B, 05, 05]
+16AA; [77 38 17, 05, 05]
-18E8; [75 F9 22, 05, 05]
+16F7; [77 38 1E, 05, 05]
-18E9; [75 F9 29, 05, 05]
+16AB; [77 38 25, 05, 05]
-18EA; [75 F9 30, 05, 05]
+16F8; [77 38 2C, 05, 05]
-18EB; [75 F9 37, 05, 05]
+16A3; [77 38 33, 05, 05]
-18EC; [75 F9 3E, 05, 05]
+16E0; [77 38 3A, 05, 05]
-18ED; [75 F9 45, 05, 05]
+16E3; [77 38 41, 05, 05]
-18EE; [75 F9 4C, 05, 05]
+16B8; [77 38 48, 05, 05]
-18EF; [75 F9 53, 05, 05]
+16E4; [77 38 4F, 05, 05]
-18F0; [75 F9 5A, 05, 05]
+16E1; [77 38 56, 05, 05]
-18F1; [75 F9 61, 05, 05]
+16E2; [77 38 5D, 05, 05]
-18F2; [75 F9 68, 05, 05]
+16E5; [77 38 64, 05, 05]
-18F3; [75 F9 6F, 05, 05]
+16E6; [77 3A, 05, 05]
+16E7; [77 3A, 70, 05]
+16E8; [77 3A, 78, 05]
-18F4; [75 F9 76, 05, 05]
+FDD1 10CA1; [77 3C 02, 05, 05] # Old_Hungarian first primary (compressible)
-18F5; [75 F9 7D, 05, 05]
+10CC0; [77 3E, 05, 05]
+10C80; [77 3E, 05, A0]
+10CC1; [77 3E, 70, 05]
+10C81; [77 3E, 70, A0]
-FDD1 168F; [75 FA 02, 05, 05] # OGHAM first primary (compressible)
+10CC2; [77 40, 05, 05]
+10C82; [77 40, 05, A0]
-1681; [75 FA 09, 05, 05]
+10CC3; [77 42, 05, 05]
+10C83; [77 42, 05, A0]
-1682; [75 FA 10, 05, 05]
+10CC4; [77 44, 05, 05]
+10C84; [77 44, 05, A0]
-1683; [75 FA 17, 05, 05]
+10CC5; [77 46, 05, 05]
+10C85; [77 46, 05, A0]
-1684; [75 FA 1E, 05, 05]
+10CC6; [77 48, 05, 05]
+10C86; [77 48, 05, A0]
-1685; [75 FA 25, 05, 05]
+10CC7; [77 4A, 05, 05]
+10C87; [77 4A, 05, A0]
-1686; [75 FA 2C, 05, 05]
+10CC8; [77 4C, 05, 05]
+10C88; [77 4C, 05, A0]
-1687; [75 FA 33, 05, 05]
+10CC9; [77 4E, 05, 05]
+10C89; [77 4E, 05, A0]
+10CCA; [77 4E, 70, 05]
+10C8A; [77 4E, 70, A0]
+10CCB; [77 4E, 78, 05]
+10C8B; [77 4E, 78, A0]
-1688; [75 FA 3A, 05, 05]
+10CCC; [77 50, 05, 05]
+10C8C; [77 50, 05, A0]
-1689; [75 FA 41, 05, 05]
+10CCD; [77 52, 05, 05]
+10C8D; [77 52, 05, A0]
-168A; [75 FA 48, 05, 05]
+10CCE; [77 54, 05, 05]
+10C8E; [77 54, 05, A0]
-168B; [75 FA 4F, 05, 05]
+10CCF; [77 56, 05, 05]
+10C8F; [77 56, 05, A0]
-168C; [75 FA 56, 05, 05]
+10CD0; [77 58, 05, 05]
+10C90; [77 58, 05, A0]
+10CD1; [77 58, 70, 05]
+10C91; [77 58, 70, A0]
-168D; [75 FA 5D, 05, 05]
+10CD2; [77 5A, 05, 05]
+10C92; [77 5A, 05, A0]
-168E; [75 FA 64, 05, 05]
+10CD3; [77 5C, 05, 05]
+10C93; [77 5C, 05, A0]
-168F; [75 FA 6B, 05, 05]
+10CD4; [77 5E, 05, 05]
+10C94; [77 5E, 05, A0]
-1690; [75 FA 72, 05, 05]
+10CD5; [77 60, 05, 05]
+10C95; [77 60, 05, A0]
-1691; [75 FA 79, 05, 05]
+10CD6; [77 62, 05, 05]
+10C96; [77 62, 05, A0]
-1692; [75 FA 80, 05, 05]
+10CD7; [77 64, 05, 05]
+10C97; [77 64, 05, A0]
-1693; [75 FA 87, 05, 05]
+10CD8; [77 66, 05, 05]
+10C98; [77 66, 05, A0]
-1694; [75 FA 8E, 05, 05]
+10CD9; [77 68, 05, 05]
+10C99; [77 68, 05, A0]
-1695; [75 FA 95, 05, 05]
+10CDA; [77 6A, 05, 05]
+10C9A; [77 6A, 05, A0]
-1696; [75 FA 9C, 05, 05]
+10CDB; [77 6C, 05, 05]
+10C9B; [77 6C, 05, A0]
+10CDC; [77 6C, 70, 05]
+10C9C; [77 6C, 70, A0]
-1697; [75 FA A3, 05, 05]
+10CDD; [77 6E, 05, 05]
+10C9D; [77 6E, 05, A0]
+10CDE; [77 6E, 70, 05]
+10C9E; [77 6E, 70, A0]
+10CDF; [77 6E, 78, 05]
+10C9F; [77 6E, 78, A0]
-1698; [75 FA AA, 05, 05]
+10CE0; [77 70, 05, 05]
+10CA0; [77 70, 05, A0]
-1699; [75 FA B1, 05, 05]
+10CE1; [77 72, 05, 05]
+10CA1; [77 72, 05, A0]
-169A; [75 FA B8, 05, 05]
+10CE2; [77 74, 05, 05]
+10CA2; [77 74, 05, A0]
+10CE3; [77 74, 70, 05]
+10CA3; [77 74, 70, A0]
-FDD1 16A0; [76 04 02, 05, 05] # RUNIC first primary starts new lead byte (compressible)
+10CE4; [77 76, 05, 05]
+10CA4; [77 76, 05, A0]
-16A0; [76 06, 05, 05]
-16A1; [76 06, 70, 05]
+10CE5; [77 78, 05, 05]
+10CA5; [77 78, 05, A0]
-16A2; [76 08, 05, 05]
-16A4; [76 08, 70, 05]
-16A5; [76 08, 78, 05]
+10CE6; [77 7A, 05, 05]
+10CA6; [77 7A, 05, A0]
-16A6; [76 0A, 05, 05]
-16A7; [76 0A, 70, 05]
-16F0; [76 0A, 05, 20][76 0A, 05, 20]
+10CE7; [77 7C, 05, 05]
+10CA7; [77 7C, 05, A0]
-16A8; [76 0C, 05, 05]
-16A9; [76 0C, 70, 05]
-16AC; [76 0C, 74, 05]
-16AD; [76 0C, 78, 05]
-16AE; [76 0C, 7C, 05]
+10CE8; [77 7E, 05, 05]
+10CA8; [77 7E, 05, A0]
-16F4; [76 0E 02, 05, 05]
+10CE9; [77 80, 05, 05]
+10CA9; [77 80, 05, A0]
-16AF; [76 0E 09, 05, 05]
+10CEA; [77 82, 05, 05]
+10CAA; [77 82, 05, A0]
+10CEB; [77 82, 70, 05]
+10CAB; [77 82, 70, A0]
-16B0; [76 0E 10, 05, 05]
+10CEC; [77 84, 05, 05]
+10CAC; [77 84, 05, A0]
+10CED; [77 84, 70, 05]
+10CAD; [77 84, 70, A0]
-16B1; [76 0E 17, 05, 05]
+10CEE; [77 86, 05, 05]
+10CAE; [77 86, 05, A0]
-16B2; [76 10, 05, 05]
-16B3; [76 10, 70, 05]
-16B4; [76 10, 74, 05]
-16B5; [76 10, 78, 05]
-16B6; [76 10, 7C, 05]
+10CEF; [77 88, 05, 05]
+10CAF; [77 88, 05, A0]
-16F1; [76 12 02, 05, 05]
+10CF0; [77 8A, 05, 05]
+10CB0; [77 8A, 05, A0]
-16B7; [76 12 09, 05, 05]
+10CF1; [77 8C, 05, 05]
+10CB1; [77 8C, 05, A0]
-16B9; [76 14, 05, 05]
-16E9; [76 14, 70, 05]
+10CF2; [77 8E, 05, 05]
+10CB2; [77 8E, 05, A0]
-16BA; [76 16, 05, 05]
-16BB; [76 16, 70, 05]
-16BC; [76 16, 75, 05]
-16BD; [76 16, 7A, 05]
+FDD1 10C00; [77 90 02, 05, 05] # Old Turkic first primary (compressible)
-16BE; [76 18, 05, 05]
-16BF; [76 18, 70, 05]
-16C0; [76 18, 78, 05]
+10C00; [77 92, 05, 05]
+10C01; [77 92, 70, 05]
-16C1; [76 1A, 05, 05]
-16C2; [76 1A, 70, 05]
+10C02; [77 94, 05, 05]
-16F5; [76 1C, 05, 05]
+10C03; [77 96, 05, 05]
+10C04; [77 96, 70, 05]
-16C3; [76 1E, 05, 05]
-16C4; [76 1E, 70, 05]
+10C05; [77 98 02, 05, 05]
-16C5; [76 20, 05, 05]
-16C6; [76 20, 70, 05]
-16EE; [76 20, 05, 20][76 34, 05, 20]
+10C06; [77 98 09, 05, 05]
-16C7; [76 22, 05, 05]
+10C07; [77 9A, 05, 05]
+10C08; [77 9A, 70, 05]
-16C8; [76 24, 05, 05]
-16D5; [76 24, 70, 05]
+10C09; [77 9C, 05, 05]
+10C0A; [77 9C, 70, 05]
-16C9; [76 26, 05, 05]
+10C0B; [77 9E, 05, 05]
+10C0C; [77 9E, 70, 05]
-16CA; [76 28, 05, 05]
-16CB; [76 28, 70, 05]
-16EA; [76 28, 73, 05]
-16CC; [76 28, 76, 05]
-16CD; [76 28, 79, 05]
-16CE; [76 28, 7C, 05]
+10C0D; [77 A0, 05, 05]
+10C0E; [77 A0, 70, 05]
-16F2; [76 2A, 05, 05]
+10C0F; [77 A2, 05, 05]
+10C10; [77 A2, 70, 05]
-16CF; [76 2C, 05, 05]
-16D0; [76 2C, 70, 05]
-16D1; [76 2C, 78, 05]
+10C11; [77 A4, 05, 05]
+10C12; [77 A4, 70, 05]
-16D2; [76 2E, 05, 05]
-16D3; [76 2E, 70, 05]
-16D4; [76 2E, 78, 05]
+10C13; [77 A6, 05, 05]
-16D6; [76 30 02, 05, 05]
+10C14; [77 A8, 05, 05]
+10C15; [77 A8, 70, 05]
-16F6; [76 30 09, 05, 05]
+10C16; [77 AA, 05, 05]
+10C17; [77 AA, 70, 05]
-16D7; [76 32, 05, 05]
-16D8; [76 32, 70, 05]
-16D9; [76 32, 78, 05]
-16EF; [76 32, 70, 05][76 32, 70, 05]
+10C18; [77 AC, 05, 05]
+10C19; [77 AC, 70, 05]
-16DA; [76 34, 05, 05]
-16DB; [76 34, 70, 05]
+10C1A; [77 AE, 05, 05]
+10C1B; [77 AE, 70, 05]
-16DC; [76 36, 05, 05]
-16DD; [76 36, 70, 05]
+10C1C; [77 B0, 05, 05]
+10C1D; [77 B0, 70, 05]
-16DE; [76 38 02, 05, 05]
+10C1E; [77 B2, 05, 05]
+10C1F; [77 B2, 70, 05]
-16DF; [76 38 09, 05, 05]
+10C20; [77 B4 02, 05, 05]
-16F3; [76 38 10, 05, 05]
+10C21; [77 B4 09, 05, 05]
-16AA; [76 38 17, 05, 05]
+10C22; [77 B4 10, 05, 05]
-16F7; [76 38 1E, 05, 05]
+10C23; [77 B4 17, 05, 05]
-16AB; [76 38 25, 05, 05]
+10C24; [77 B6, 05, 05]
+10C25; [77 B6, 70, 05]
-16F8; [76 38 2C, 05, 05]
+10C26; [77 B8, 05, 05]
+10C27; [77 B8, 70, 05]
-16A3; [76 38 33, 05, 05]
+10C28; [77 BA, 05, 05]
+10C29; [77 BA, 70, 05]
-16E0; [76 38 3A, 05, 05]
+10C2A; [77 BC, 05, 05]
+10C2B; [77 BC, 70, 05]
-16E3; [76 38 41, 05, 05]
+10C2C; [77 BE, 05, 05]
-16B8; [76 38 48, 05, 05]
+10C2D; [77 C0, 05, 05]
+10C2E; [77 C0, 70, 05]
-16E4; [76 38 4F, 05, 05]
+10C2F; [77 C2 02, 05, 05]
-16E1; [76 38 56, 05, 05]
+10C30; [77 C2 09, 05, 05]
-16E2; [76 38 5D, 05, 05]
+10C31; [77 C2 10, 05, 05]
-16E5; [76 38 64, 05, 05]
+10C32; [77 C4, 05, 05]
+10C33; [77 C4, 70, 05]
-16E6; [76 3A, 05, 05]
-16E7; [76 3A, 70, 05]
-16E8; [76 3A, 78, 05]
+10C34; [77 C6, 05, 05]
+10C35; [77 C6, 70, 05]
-FDD1 10CA1; [76 3C 02, 05, 05] # Old_Hungarian first primary (compressible)
+10C36; [77 C8, 05, 05]
+10C37; [77 C8, 70, 05]
-10CC0; [76 3E, 05, 05]
-10C80; [76 3E, 05, A0]
-10CC1; [76 3E, 70, 05]
-10C81; [76 3E, 70, A0]
+10C38; [77 CA, 05, 05]
+10C39; [77 CA, 70, 05]
-10CC2; [76 40, 05, 05]
-10C82; [76 40, 05, A0]
+10C3A; [77 CC, 05, 05]
+10C3B; [77 CC, 70, 05]
-10CC3; [76 42, 05, 05]
-10C83; [76 42, 05, A0]
+10C3C; [77 CE 02, 05, 05]
-10CC4; [76 44, 05, 05]
-10C84; [76 44, 05, A0]
+10C3D; [77 CE 09, 05, 05]
-10CC5; [76 46, 05, 05]
-10C85; [76 46, 05, A0]
+10C3E; [77 CE 10, 05, 05]
-10CC6; [76 48, 05, 05]
-10C86; [76 48, 05, A0]
+10C3F; [77 D0, 05, 05]
+10C40; [77 D0, 70, 05]
-10CC7; [76 4A, 05, 05]
-10C87; [76 4A, 05, A0]
+10C41; [77 D2, 05, 05]
+10C42; [77 D2, 70, 05]
-10CC8; [76 4C, 05, 05]
-10C88; [76 4C, 05, A0]
+10C43; [77 D4, 05, 05]
+10C44; [77 D4, 70, 05]
-10CC9; [76 4E, 05, 05]
-10C89; [76 4E, 05, A0]
-10CCA; [76 4E, 70, 05]
-10C8A; [76 4E, 70, A0]
-10CCB; [76 4E, 78, 05]
-10C8B; [76 4E, 78, A0]
+10C45; [77 D6, 05, 05]
+10C46; [77 D6, 70, 05]
-10CCC; [76 50, 05, 05]
-10C8C; [76 50, 05, A0]
+10C47; [77 D8 02, 05, 05]
-10CCD; [76 52, 05, 05]
-10C8D; [76 52, 05, A0]
+10C48; [77 D8 09, 05, 05]
-10CCE; [76 54, 05, 05]
-10C8E; [76 54, 05, A0]
+FDD1 A549; [78 04 02, 05, 05] # Vai first primary starts new lead byte (compressible)
-10CCF; [76 56, 05, 05]
-10C8F; [76 56, 05, A0]
+A500; [78 04 09, 05, 05]
-10CD0; [76 58, 05, 05]
-10C90; [76 58, 05, A0]
-10CD1; [76 58, 70, 05]
-10C91; [76 58, 70, A0]
+A501; [78 04 10, 05, 05]
-10CD2; [76 5A, 05, 05]
-10C92; [76 5A, 05, A0]
+A502; [78 04 17, 05, 05]
-10CD3; [76 5C, 05, 05]
-10C93; [76 5C, 05, A0]
+A503; [78 04 1E, 05, 05]
-10CD4; [76 5E, 05, 05]
-10C94; [76 5E, 05, A0]
+A504; [78 04 25, 05, 05]
-10CD5; [76 60, 05, 05]
-10C95; [76 60, 05, A0]
+A505; [78 04 2C, 05, 05]
-10CD6; [76 62, 05, 05]
-10C96; [76 62, 05, A0]
+A506; [78 04 33, 05, 05]
-10CD7; [76 64, 05, 05]
-10C97; [76 64, 05, A0]
+A507; [78 04 3A, 05, 05]
-10CD8; [76 66, 05, 05]
-10C98; [76 66, 05, A0]
+A508; [78 04 41, 05, 05]
-10CD9; [76 68, 05, 05]
-10C99; [76 68, 05, A0]
+A509; [78 04 48, 05, 05]
-10CDA; [76 6A, 05, 05]
-10C9A; [76 6A, 05, A0]
+A50A; [78 04 4F, 05, 05]
-10CDB; [76 6C, 05, 05]
-10C9B; [76 6C, 05, A0]
-10CDC; [76 6C, 70, 05]
-10C9C; [76 6C, 70, A0]
+A50B; [78 04 56, 05, 05]
-10CDD; [76 6E, 05, 05]
-10C9D; [76 6E, 05, A0]
-10CDE; [76 6E, 70, 05]
-10C9E; [76 6E, 70, A0]
-10CDF; [76 6E, 78, 05]
-10C9F; [76 6E, 78, A0]
+A50C; [78 06, 05, 05]
+A613; [78 06, 05, 20][78 48, 05, 20]
-10CE0; [76 70, 05, 05]
-10CA0; [76 70, 05, A0]
+A50D; [78 08 02, 05, 05]
-10CE1; [76 72, 05, 05]
-10CA1; [76 72, 05, A0]
+A50E; [78 08 09, 05, 05]
-10CE2; [76 74, 05, 05]
-10CA2; [76 74, 05, A0]
-10CE3; [76 74, 70, 05]
-10CA3; [76 74, 70, A0]
+A50F; [78 08 10, 05, 05]
-10CE4; [76 76, 05, 05]
-10CA4; [76 76, 05, A0]
+A510; [78 08 17, 05, 05]
-10CE5; [76 78, 05, 05]
-10CA5; [76 78, 05, A0]
+A511; [78 08 1E, 05, 05]
-10CE6; [76 7A, 05, 05]
-10CA6; [76 7A, 05, A0]
+A512; [78 08 25, 05, 05]
-10CE7; [76 7C, 05, 05]
-10CA7; [76 7C, 05, A0]
+A513; [78 08 2C, 05, 05]
-10CE8; [76 7E, 05, 05]
-10CA8; [76 7E, 05, A0]
+A514; [78 08 33, 05, 05]
-10CE9; [76 80, 05, 05]
-10CA9; [76 80, 05, A0]
+A515; [78 08 3A, 05, 05]
-10CEA; [76 82, 05, 05]
-10CAA; [76 82, 05, A0]
-10CEB; [76 82, 70, 05]
-10CAB; [76 82, 70, A0]
+A516; [78 08 41, 05, 05]
-10CEC; [76 84, 05, 05]
-10CAC; [76 84, 05, A0]
-10CED; [76 84, 70, 05]
-10CAD; [76 84, 70, A0]
+A517; [78 08 48, 05, 05]
-10CEE; [76 86, 05, 05]
-10CAE; [76 86, 05, A0]
+A518; [78 08 4F, 05, 05]
-10CEF; [76 88, 05, 05]
-10CAF; [76 88, 05, A0]
+A519; [78 08 56, 05, 05]
-10CF0; [76 8A, 05, 05]
-10CB0; [76 8A, 05, A0]
+A51A; [78 08 5D, 05, 05]
-10CF1; [76 8C, 05, 05]
-10CB1; [76 8C, 05, A0]
+A51B; [78 08 64, 05, 05]
-10CF2; [76 8E, 05, 05]
-10CB2; [76 8E, 05, A0]
+A51C; [78 08 6B, 05, 05]
-FDD1 10C00; [76 90 02, 05, 05] # Old Turkic first primary (compressible)
+A51D; [78 08 72, 05, 05]
-10C00; [76 92, 05, 05]
-10C01; [76 92, 70, 05]
+A51E; [78 0A, 05, 05]
+A614; [78 0A, 05, 20][78 48, 05, 20]
-10C02; [76 94, 05, 05]
+A51F; [78 0C 02, 05, 05]
-10C03; [76 96, 05, 05]
-10C04; [76 96, 70, 05]
+A520; [78 0C 09, 05, 05]
-10C05; [76 98 02, 05, 05]
+A521; [78 0C 10, 05, 05]
-10C06; [76 98 09, 05, 05]
+A522; [78 0C 17, 05, 05]
-10C07; [76 9A, 05, 05]
-10C08; [76 9A, 70, 05]
+A523; [78 0C 1E, 05, 05]
-10C09; [76 9C, 05, 05]
-10C0A; [76 9C, 70, 05]
+A524; [78 0C 25, 05, 05]
-10C0B; [76 9E, 05, 05]
-10C0C; [76 9E, 70, 05]
+A525; [78 0C 2C, 05, 05]
-10C0D; [76 A0, 05, 05]
-10C0E; [76 A0, 70, 05]
+A526; [78 0C 33, 05, 05]
-10C0F; [76 A2, 05, 05]
-10C10; [76 A2, 70, 05]
+A527; [78 0C 3A, 05, 05]
-10C11; [76 A4, 05, 05]
-10C12; [76 A4, 70, 05]
+A528; [78 0C 41, 05, 05]
-10C13; [76 A6, 05, 05]
+A529; [78 0C 48, 05, 05]
-10C14; [76 A8, 05, 05]
-10C15; [76 A8, 70, 05]
+A52A; [78 0C 4F, 05, 05]
-10C16; [76 AA, 05, 05]
-10C17; [76 AA, 70, 05]
+A52B; [78 0C 56, 05, 05]
-10C18; [76 AC, 05, 05]
-10C19; [76 AC, 70, 05]
+A52C; [78 0C 5D, 05, 05]
-10C1A; [76 AE, 05, 05]
-10C1B; [76 AE, 70, 05]
+A52D; [78 0C 64, 05, 05]
-10C1C; [76 B0, 05, 05]
-10C1D; [76 B0, 70, 05]
+A52E; [78 0C 6B, 05, 05]
-10C1E; [76 B2, 05, 05]
-10C1F; [76 B2, 70, 05]
+A52F; [78 0C 72, 05, 05]
-10C20; [76 B4 02, 05, 05]
+A530; [78 0C 79, 05, 05]
-10C21; [76 B4 09, 05, 05]
+A531; [78 0C 80, 05, 05]
-10C22; [76 B4 10, 05, 05]
+A532; [78 0C 87, 05, 05]
-10C23; [76 B4 17, 05, 05]
+A533; [78 0E, 05, 05]
+A615; [78 0E, 05, 20][78 48, 05, 20]
-10C24; [76 B6, 05, 05]
-10C25; [76 B6, 70, 05]
+A534; [78 10 02, 05, 05]
-10C26; [76 B8, 05, 05]
-10C27; [76 B8, 70, 05]
+A535; [78 10 09, 05, 05]
-10C28; [76 BA, 05, 05]
-10C29; [76 BA, 70, 05]
+A536; [78 10 10, 05, 05]
-10C2A; [76 BC, 05, 05]
-10C2B; [76 BC, 70, 05]
+A537; [78 10 17, 05, 05]
-10C2C; [76 BE, 05, 05]
+A538; [78 10 1E, 05, 05]
-10C2D; [76 C0, 05, 05]
-10C2E; [76 C0, 70, 05]
+A539; [78 10 25, 05, 05]
-10C2F; [76 C2 02, 05, 05]
+A53A; [78 10 2C, 05, 05]
-10C30; [76 C2 09, 05, 05]
+A53B; [78 10 33, 05, 05]
-10C31; [76 C2 10, 05, 05]
+A53C; [78 10 3A, 05, 05]
-10C32; [76 C4, 05, 05]
-10C33; [76 C4, 70, 05]
+A53D; [78 10 41, 05, 05]
-10C34; [76 C6, 05, 05]
-10C35; [76 C6, 70, 05]
+A53E; [78 10 48, 05, 05]
-10C36; [76 C8, 05, 05]
-10C37; [76 C8, 70, 05]
+A53F; [78 10 4F, 05, 05]
-10C38; [76 CA, 05, 05]
-10C39; [76 CA, 70, 05]
+A540; [78 10 56, 05, 05]
-10C3A; [76 CC, 05, 05]
-10C3B; [76 CC, 70, 05]
+A541; [78 10 5D, 05, 05]
-10C3C; [76 CE 02, 05, 05]
+A542; [78 10 64, 05, 05]
-10C3D; [76 CE 09, 05, 05]
+A543; [78 10 6B, 05, 05]
-10C3E; [76 CE 10, 05, 05]
+A544; [78 10 72, 05, 05]
-10C3F; [76 D0, 05, 05]
-10C40; [76 D0, 70, 05]
+A545; [78 10 79, 05, 05]
-10C41; [76 D2, 05, 05]
-10C42; [76 D2, 70, 05]
+A546; [78 10 80, 05, 05]
-10C43; [76 D4, 05, 05]
-10C44; [76 D4, 70, 05]
+A547; [78 12, 05, 05]
+A616; [78 12, 05, 20][78 4A, 05, 20]
-10C45; [76 D6, 05, 05]
-10C46; [76 D6, 70, 05]
+A548; [78 14 02, 05, 05]
-10C47; [76 D8 02, 05, 05]
+A549; [78 14 09, 05, 05]
-10C48; [76 D8 09, 05, 05]
+A54A; [78 14 10, 05, 05]
-FDD1 A549; [77 04 02, 05, 05] # Vai first primary starts new lead byte (compressible)
+A54B; [78 14 17, 05, 05]
-A500; [77 04 09, 05, 05]
+A54C; [78 14 1E, 05, 05]
-A501; [77 04 10, 05, 05]
+A54D; [78 14 25, 05, 05]
-A502; [77 04 17, 05, 05]
+A54E; [78 14 2C, 05, 05]
-A503; [77 04 1E, 05, 05]
+A54F; [78 14 33, 05, 05]
-A504; [77 04 25, 05, 05]
+A550; [78 14 3A, 05, 05]
-A505; [77 04 2C, 05, 05]
+A551; [78 14 41, 05, 05]
-A506; [77 04 33, 05, 05]
+A552; [78 16, 05, 05]
+A617; [78 16, 05, 20][78 48, 05, 20]
-A507; [77 04 3A, 05, 05]
+A553; [78 18 02, 05, 05]
-A508; [77 04 41, 05, 05]
+A554; [78 18 09, 05, 05]
-A509; [77 04 48, 05, 05]
+A555; [78 18 10, 05, 05]
-A50A; [77 04 4F, 05, 05]
+A556; [78 18 17, 05, 05]
-A50B; [77 04 56, 05, 05]
+A557; [78 18 1E, 05, 05]
-A50C; [77 06, 05, 05]
-A613; [77 06, 05, 20][77 48, 05, 20]
+A558; [78 1A, 05, 05]
+A610; [78 1A, 05, 20]
+A618; [78 1A, 05, 20][78 4A, 05, 20]
-A50D; [77 08 02, 05, 05]
+A559; [78 1C, 05, 05]
-A50E; [77 08 09, 05, 05]
+A55A; [78 1E, 05, 05]
+A619; [78 1E, 05, 20][78 4A, 05, 20]
-A50F; [77 08 10, 05, 05]
+A55B; [78 20 02, 05, 05]
-A510; [77 08 17, 05, 05]
+A55C; [78 20 09, 05, 05]
-A511; [77 08 1E, 05, 05]
+A55D; [78 20 10, 05, 05]
-A512; [77 08 25, 05, 05]
+A55E; [78 20 17, 05, 05]
-A513; [77 08 2C, 05, 05]
+A55F; [78 20 1E, 05, 05]
-A514; [77 08 33, 05, 05]
+A560; [78 22, 05, 05]
+A61A; [78 22, 05, 20][78 48, 05, 20]
-A515; [77 08 3A, 05, 05]
+A561; [78 24 02, 05, 05]
-A516; [77 08 41, 05, 05]
+A562; [78 24 09, 05, 05]
-A517; [77 08 48, 05, 05]
+A563; [78 24 10, 05, 05]
-A518; [77 08 4F, 05, 05]
+A564; [78 24 17, 05, 05]
-A519; [77 08 56, 05, 05]
+A565; [78 24 1E, 05, 05]
-A51A; [77 08 5D, 05, 05]
+A566; [78 24 25, 05, 05]
-A51B; [77 08 64, 05, 05]
+A567; [78 24 2C, 05, 05]
-A51C; [77 08 6B, 05, 05]
+A568; [78 24 33, 05, 05]
-A51D; [77 08 72, 05, 05]
+A569; [78 24 3A, 05, 05]
-A51E; [77 0A, 05, 05]
-A614; [77 0A, 05, 20][77 48, 05, 20]
+A56A; [78 26, 05, 05]
+A611; [78 26, 05, 20]
-A51F; [77 0C 02, 05, 05]
+A56B; [78 28 02, 05, 05]
-A520; [77 0C 09, 05, 05]
+A56C; [78 28 09, 05, 05]
-A521; [77 0C 10, 05, 05]
+A56D; [78 28 10, 05, 05]
-A522; [77 0C 17, 05, 05]
+A56E; [78 2A, 05, 05]
+A62A; [78 2A, 05, 20]
-A523; [77 0C 1E, 05, 05]
+A56F; [78 2C 02, 05, 05]
-A524; [77 0C 25, 05, 05]
+A570; [78 2C 09, 05, 05]
-A525; [77 0C 2C, 05, 05]
+A571; [78 2C 10, 05, 05]
-A526; [77 0C 33, 05, 05]
+A572; [78 2C 17, 05, 05]
-A527; [77 0C 3A, 05, 05]
+A573; [78 2C 1E, 05, 05]
-A528; [77 0C 41, 05, 05]
+A574; [78 2C 25, 05, 05]
-A529; [77 0C 48, 05, 05]
+A575; [78 2C 2C, 05, 05]
-A52A; [77 0C 4F, 05, 05]
+A576; [78 2C 33, 05, 05]
-A52B; [77 0C 56, 05, 05]
+A577; [78 2C 3A, 05, 05]
-A52C; [77 0C 5D, 05, 05]
+A578; [78 2C 41, 05, 05]
-A52D; [77 0C 64, 05, 05]
+A579; [78 2C 48, 05, 05]
-A52E; [77 0C 6B, 05, 05]
+A57A; [78 2C 4F, 05, 05]
-A52F; [77 0C 72, 05, 05]
+A57B; [78 2C 56, 05, 05]
-A530; [77 0C 79, 05, 05]
+A57C; [78 2C 5D, 05, 05]
-A531; [77 0C 80, 05, 05]
+A57D; [78 2C 64, 05, 05]
-A532; [77 0C 87, 05, 05]
+A57E; [78 2C 6B, 05, 05]
-A533; [77 0E, 05, 05]
-A615; [77 0E, 05, 20][77 48, 05, 20]
+A57F; [78 2C 72, 05, 05]
-A534; [77 10 02, 05, 05]
+A580; [78 2C 79, 05, 05]
-A535; [77 10 09, 05, 05]
+A581; [78 2C 80, 05, 05]
-A536; [77 10 10, 05, 05]
+A582; [78 2C 87, 05, 05]
-A537; [77 10 17, 05, 05]
+A583; [78 2C 8E, 05, 05]
-A538; [77 10 1E, 05, 05]
+A584; [78 2C 95, 05, 05]
-A539; [77 10 25, 05, 05]
+A585; [78 2E, 05, 05]
+A61B; [78 2E, 05, 20][78 48, 05, 20]
-A53A; [77 10 2C, 05, 05]
+A586; [78 30, 05, 05]
-A53B; [77 10 33, 05, 05]
+A587; [78 32, 05, 05]
+A612; [78 32, 05, 20]
-A53C; [77 10 3A, 05, 05]
+A588; [78 34 02, 05, 05]
-A53D; [77 10 41, 05, 05]
+A589; [78 34 09, 05, 05]
-A53E; [77 10 48, 05, 05]
+A58A; [78 34 10, 05, 05]
-A53F; [77 10 4F, 05, 05]
+A58B; [78 34 17, 05, 05]
-A540; [77 10 56, 05, 05]
+A58C; [78 34 1E, 05, 05]
-A541; [77 10 5D, 05, 05]
+A58D; [78 34 25, 05, 05]
-A542; [77 10 64, 05, 05]
+A58E; [78 34 2C, 05, 05]
-A543; [77 10 6B, 05, 05]
+A58F; [78 34 33, 05, 05]
-A544; [77 10 72, 05, 05]
+A590; [78 34 3A, 05, 05]
-A545; [77 10 79, 05, 05]
+A591; [78 34 41, 05, 05]
-A546; [77 10 80, 05, 05]
+A592; [78 34 48, 05, 05]
-A547; [77 12, 05, 05]
-A616; [77 12, 05, 20][77 4A, 05, 20]
+A593; [78 34 4F, 05, 05]
-A548; [77 14 02, 05, 05]
+A594; [78 34 56, 05, 05]
-A549; [77 14 09, 05, 05]
+A595; [78 34 5D, 05, 05]
-A54A; [77 14 10, 05, 05]
+A596; [78 34 64, 05, 05]
-A54B; [77 14 17, 05, 05]
+A597; [78 34 6B, 05, 05]
-A54C; [77 14 1E, 05, 05]
+A598; [78 34 72, 05, 05]
-A54D; [77 14 25, 05, 05]
+A599; [78 34 79, 05, 05]
-A54E; [77 14 2C, 05, 05]
+A59A; [78 34 80, 05, 05]
-A54F; [77 14 33, 05, 05]
+A59B; [78 34 87, 05, 05]
-A550; [77 14 3A, 05, 05]
+A59C; [78 34 8E, 05, 05]
-A551; [77 14 41, 05, 05]
+A59D; [78 34 95, 05, 05]
-A552; [77 16, 05, 05]
-A617; [77 16, 05, 20][77 48, 05, 20]
+A59E; [78 34 9C, 05, 05]
-A553; [77 18 02, 05, 05]
+A59F; [78 34 A3, 05, 05]
-A554; [77 18 09, 05, 05]
+A5A0; [78 34 AA, 05, 05]
-A555; [77 18 10, 05, 05]
+A5A1; [78 34 B1, 05, 05]
-A556; [77 18 17, 05, 05]
+A5A2; [78 34 B8, 05, 05]
-A557; [77 18 1E, 05, 05]
+A5A3; [78 34 BF, 05, 05]
-A558; [77 1A, 05, 05]
-A610; [77 1A, 05, 20]
-A618; [77 1A, 05, 20][77 4A, 05, 20]
+A5A4; [78 34 C6, 05, 05]
-A559; [77 1C, 05, 05]
+A5A5; [78 34 CD, 05, 05]
-A55A; [77 1E, 05, 05]
-A619; [77 1E, 05, 20][77 4A, 05, 20]
+A5A6; [78 34 D4, 05, 05]
-A55B; [77 20 02, 05, 05]
+A5A7; [78 34 DB, 05, 05]
-A55C; [77 20 09, 05, 05]
+A5A8; [78 34 E2, 05, 05]
-A55D; [77 20 10, 05, 05]
+A5A9; [78 34 E9, 05, 05]
-A55E; [77 20 17, 05, 05]
+A5AA; [78 34 F0, 05, 05]
-A55F; [77 20 1E, 05, 05]
+A5AB; [78 34 F7, 05, 05]
-A560; [77 22, 05, 05]
-A61A; [77 22, 05, 20][77 48, 05, 20]
+A5AC; [78 34 FE, 05, 05]
-A561; [77 24 02, 05, 05]
+A5AD; [78 35 07, 05, 05]
-A562; [77 24 09, 05, 05]
+A5AE; [78 35 0E, 05, 05]
-A563; [77 24 10, 05, 05]
+A5AF; [78 35 15, 05, 05]
-A564; [77 24 17, 05, 05]
+A5B0; [78 35 1C, 05, 05]
-A565; [77 24 1E, 05, 05]
+A5B1; [78 35 23, 05, 05]
-A566; [77 24 25, 05, 05]
+A5B2; [78 35 2A, 05, 05]
-A567; [77 24 2C, 05, 05]
+A5B3; [78 35 31, 05, 05]
-A568; [77 24 33, 05, 05]
+A5B4; [78 37, 05, 05]
+A61C; [78 37, 05, 20][78 48, 05, 20]
-A569; [77 24 3A, 05, 05]
+A5B5; [78 39 02, 05, 05]
-A56A; [77 26, 05, 05]
-A611; [77 26, 05, 20]
+A5B6; [78 39 09, 05, 05]
-A56B; [77 28 02, 05, 05]
+A5B7; [78 39 10, 05, 05]
-A56C; [77 28 09, 05, 05]
+A5B8; [78 39 17, 05, 05]
-A56D; [77 28 10, 05, 05]
+A5B9; [78 39 1E, 05, 05]
-A56E; [77 2A, 05, 05]
-A62A; [77 2A, 05, 20]
+A5BA; [78 39 25, 05, 05]
-A56F; [77 2C 02, 05, 05]
+A5BB; [78 39 2C, 05, 05]
-A570; [77 2C 09, 05, 05]
+A5BC; [78 39 33, 05, 05]
-A571; [77 2C 10, 05, 05]
+A5BD; [78 39 3A, 05, 05]
-A572; [77 2C 17, 05, 05]
+A5BE; [78 39 41, 05, 05]
-A573; [77 2C 1E, 05, 05]
+A5BF; [78 39 48, 05, 05]
-A574; [77 2C 25, 05, 05]
+A5C0; [78 39 4F, 05, 05]
-A575; [77 2C 2C, 05, 05]
+A5C1; [78 39 56, 05, 05]
-A576; [77 2C 33, 05, 05]
+A5C2; [78 39 5D, 05, 05]
-A577; [77 2C 3A, 05, 05]
+A5C3; [78 39 64, 05, 05]
-A578; [77 2C 41, 05, 05]
+A5C4; [78 39 6B, 05, 05]
-A579; [77 2C 48, 05, 05]
+A5C5; [78 39 72, 05, 05]
-A57A; [77 2C 4F, 05, 05]
+A5C6; [78 39 79, 05, 05]
-A57B; [77 2C 56, 05, 05]
+A5C7; [78 39 80, 05, 05]
-A57C; [77 2C 5D, 05, 05]
+A5C8; [78 39 87, 05, 05]
-A57D; [77 2C 64, 05, 05]
+A5C9; [78 39 8E, 05, 05]
-A57E; [77 2C 6B, 05, 05]
+A5CA; [78 39 95, 05, 05]
-A57F; [77 2C 72, 05, 05]
+A5CB; [78 3B, 05, 05]
+A61D; [78 3B, 05, 20][78 48, 05, 20]
-A580; [77 2C 79, 05, 05]
+A5CC; [78 3D 02, 05, 05]
-A581; [77 2C 80, 05, 05]
+A5CD; [78 3D 09, 05, 05]
-A582; [77 2C 87, 05, 05]
+A5CE; [78 3D 10, 05, 05]
-A583; [77 2C 8E, 05, 05]
+A5CF; [78 3D 17, 05, 05]
-A584; [77 2C 95, 05, 05]
+A5D0; [78 3D 1E, 05, 05]
-A585; [77 2E, 05, 05]
-A61B; [77 2E, 05, 20][77 48, 05, 20]
+A5D1; [78 3F, 05, 05]
+A62B; [78 3F, 05, 20]
+A61E; [78 3F, 05, 20][78 4A, 05, 20]
-A586; [77 30, 05, 05]
+A5D2; [78 41 02, 05, 05]
-A587; [77 32, 05, 05]
-A612; [77 32, 05, 20]
+A5D3; [78 41 09, 05, 05]
-A588; [77 34 02, 05, 05]
+A5D4; [78 41 10, 05, 05]
-A589; [77 34 09, 05, 05]
+A5D5; [78 41 17, 05, 05]
-A58A; [77 34 10, 05, 05]
+A5D6; [78 41 1E, 05, 05]
-A58B; [77 34 17, 05, 05]
+A5D7; [78 41 25, 05, 05]
-A58C; [77 34 1E, 05, 05]
+A5D8; [78 43, 05, 05]
+A61F; [78 43, 05, 20][78 48, 05, 20]
-A58D; [77 34 25, 05, 05]
+A5D9; [78 45 02, 05, 05]
-A58E; [77 34 2C, 05, 05]
+A5DA; [78 45 09, 05, 05]
-A58F; [77 34 33, 05, 05]
+A5DB; [78 45 10, 05, 05]
-A590; [77 34 3A, 05, 05]
+A5DC; [78 45 17, 05, 05]
-A591; [77 34 41, 05, 05]
+A5DD; [78 45 1E, 05, 05]
-A592; [77 34 48, 05, 05]
+A5DE; [78 45 25, 05, 05]
-A593; [77 34 4F, 05, 05]
+A5DF; [78 45 2C, 05, 05]
-A594; [77 34 56, 05, 05]
+A5E0; [78 45 33, 05, 05]
-A595; [77 34 5D, 05, 05]
+A5E1; [78 45 3A, 05, 05]
-A596; [77 34 64, 05, 05]
+A5E2; [78 45 41, 05, 05]
-A597; [77 34 6B, 05, 05]
+A5E3; [78 45 48, 05, 05]
-A598; [77 34 72, 05, 05]
+A5E4; [78 45 4F, 05, 05]
-A599; [77 34 79, 05, 05]
+A5E5; [78 45 56, 05, 05]
-A59A; [77 34 80, 05, 05]
+A5E6; [78 45 5D, 05, 05]
-A59B; [77 34 87, 05, 05]
+A5E7; [78 45 64, 05, 05]
-A59C; [77 34 8E, 05, 05]
+A5E8; [78 45 6B, 05, 05]
-A59D; [77 34 95, 05, 05]
+A5E9; [78 45 72, 05, 05]
-A59E; [77 34 9C, 05, 05]
+A5EA; [78 45 79, 05, 05]
-A59F; [77 34 A3, 05, 05]
+A5EB; [78 45 80, 05, 05]
-A5A0; [77 34 AA, 05, 05]
+A5EC; [78 45 87, 05, 05]
-A5A1; [77 34 B1, 05, 05]
+A5ED; [78 45 8E, 05, 05]
-A5A2; [77 34 B8, 05, 05]
+A5EE; [78 45 95, 05, 05]
-A5A3; [77 34 BF, 05, 05]
+A5EF; [78 45 9C, 05, 05]
-A5A4; [77 34 C6, 05, 05]
+A5F0; [78 45 A3, 05, 05]
-A5A5; [77 34 CD, 05, 05]
+A5F1; [78 45 AA, 05, 05]
-A5A6; [77 34 D4, 05, 05]
+A5F2; [78 45 B1, 05, 05]
-A5A7; [77 34 DB, 05, 05]
+A5F3; [78 45 B8, 05, 05]
-A5A8; [77 34 E2, 05, 05]
+A5F4; [78 45 BF, 05, 05]
-A5A9; [77 34 E9, 05, 05]
+A5F5; [78 45 C6, 05, 05]
-A5AA; [77 34 F0, 05, 05]
+A5F6; [78 45 CD, 05, 05]
-A5AB; [77 34 F7, 05, 05]
+A5F7; [78 45 D4, 05, 05]
-A5AC; [77 34 FE, 05, 05]
+A5F8; [78 45 DB, 05, 05]
-A5AD; [77 35 07, 05, 05]
+A5F9; [78 45 E2, 05, 05]
-A5AE; [77 35 0E, 05, 05]
+A5FA; [78 45 E9, 05, 05]
-A5AF; [77 35 15, 05, 05]
+A5FB; [78 45 F0, 05, 05]
-A5B0; [77 35 1C, 05, 05]
+A5FC; [78 45 F7, 05, 05]
-A5B1; [77 35 23, 05, 05]
+A5FD; [78 45 FE, 05, 05]
-A5B2; [77 35 2A, 05, 05]
+A5FE; [78 46 07, 05, 05]
-A5B3; [77 35 31, 05, 05]
+A5FF; [78 46 0E, 05, 05]
-A5B4; [77 37, 05, 05]
-A61C; [77 37, 05, 20][77 48, 05, 20]
+A600; [78 46 15, 05, 05]
-A5B5; [77 39 02, 05, 05]
+A601; [78 46 1C, 05, 05]
-A5B6; [77 39 09, 05, 05]
+A602; [78 46 23, 05, 05]
-A5B7; [77 39 10, 05, 05]
+A603; [78 46 2A, 05, 05]
-A5B8; [77 39 17, 05, 05]
+A604; [78 46 31, 05, 05]
-A5B9; [77 39 1E, 05, 05]
+A605; [78 46 38, 05, 05]
-A5BA; [77 39 25, 05, 05]
+A606; [78 46 3F, 05, 05]
-A5BB; [77 39 2C, 05, 05]
+A607; [78 46 46, 05, 05]
-A5BC; [77 39 33, 05, 05]
+A608; [78 46 4D, 05, 05]
-A5BD; [77 39 3A, 05, 05]
+A609; [78 46 54, 05, 05]
-A5BE; [77 39 41, 05, 05]
+A60A; [78 46 5B, 05, 05]
-A5BF; [77 39 48, 05, 05]
+A60B; [78 48, 05, 05]
-A5C0; [77 39 4F, 05, 05]
+A60C; [78 4A, 05, 05]
-A5C1; [77 39 56, 05, 05]
+FDD1 A6A0; [78 4C 02, 05, 05] # Bamum first primary (compressible)
-A5C2; [77 39 5D, 05, 05]
+A6A0; [78 4C 09, 05, 05]
-A5C3; [77 39 64, 05, 05]
+A6A1; [78 4C 10, 05, 05]
-A5C4; [77 39 6B, 05, 05]
+A6A2; [78 4C 17, 05, 05]
-A5C5; [77 39 72, 05, 05]
+A6A3; [78 4C 1E, 05, 05]
-A5C6; [77 39 79, 05, 05]
+A6A4; [78 4C 25, 05, 05]
-A5C7; [77 39 80, 05, 05]
+A6A5; [78 4C 2C, 05, 05]
-A5C8; [77 39 87, 05, 05]
+A6A6; [78 4C 33, 05, 05]
-A5C9; [77 39 8E, 05, 05]
+A6A7; [78 4C 3A, 05, 05]
-A5CA; [77 39 95, 05, 05]
+A6A8; [78 4C 41, 05, 05]
-A5CB; [77 3B, 05, 05]
-A61D; [77 3B, 05, 20][77 48, 05, 20]
+A6A9; [78 4C 48, 05, 05]
-A5CC; [77 3D 02, 05, 05]
+A6AA; [78 4C 4F, 05, 05]
-A5CD; [77 3D 09, 05, 05]
+A6AB; [78 4C 56, 05, 05]
-A5CE; [77 3D 10, 05, 05]
+A6AC; [78 4C 5D, 05, 05]
-A5CF; [77 3D 17, 05, 05]
+A6AD; [78 4C 64, 05, 05]
-A5D0; [77 3D 1E, 05, 05]
+A6AE; [78 4C 6B, 05, 05]
-A5D1; [77 3F, 05, 05]
-A62B; [77 3F, 05, 20]
-A61E; [77 3F, 05, 20][77 4A, 05, 20]
+A6AF; [78 4C 72, 05, 05]
-A5D2; [77 41 02, 05, 05]
+A6B0; [78 4C 79, 05, 05]
-A5D3; [77 41 09, 05, 05]
+A6B1; [78 4C 80, 05, 05]
-A5D4; [77 41 10, 05, 05]
+A6B2; [78 4C 87, 05, 05]
-A5D5; [77 41 17, 05, 05]
+A6B3; [78 4C 8E, 05, 05]
-A5D6; [77 41 1E, 05, 05]
+A6B4; [78 4C 95, 05, 05]
-A5D7; [77 41 25, 05, 05]
+A6B5; [78 4C 9C, 05, 05]
-A5D8; [77 43, 05, 05]
-A61F; [77 43, 05, 20][77 48, 05, 20]
+A6B6; [78 4C A3, 05, 05]
-A5D9; [77 45 02, 05, 05]
+A6B7; [78 4C AA, 05, 05]
-A5DA; [77 45 09, 05, 05]
+A6B8; [78 4C B1, 05, 05]
-A5DB; [77 45 10, 05, 05]
+A6B9; [78 4C B8, 05, 05]
-A5DC; [77 45 17, 05, 05]
+A6BA; [78 4C BF, 05, 05]
-A5DD; [77 45 1E, 05, 05]
+A6BB; [78 4C C6, 05, 05]
-A5DE; [77 45 25, 05, 05]
+A6BC; [78 4C CD, 05, 05]
-A5DF; [77 45 2C, 05, 05]
+A6BD; [78 4C D4, 05, 05]
-A5E0; [77 45 33, 05, 05]
+A6BE; [78 4C DB, 05, 05]
-A5E1; [77 45 3A, 05, 05]
+A6BF; [78 4C E2, 05, 05]
-A5E2; [77 45 41, 05, 05]
+A6C0; [78 4C E9, 05, 05]
-A5E3; [77 45 48, 05, 05]
+A6C1; [78 4C F0, 05, 05]
-A5E4; [77 45 4F, 05, 05]
+A6C2; [78 4C F7, 05, 05]
-A5E5; [77 45 56, 05, 05]
+A6C3; [78 4C FE, 05, 05]
-A5E6; [77 45 5D, 05, 05]
+A6C4; [78 4D 07, 05, 05]
-A5E7; [77 45 64, 05, 05]
+A6C5; [78 4D 0E, 05, 05]
-A5E8; [77 45 6B, 05, 05]
+A6C6; [78 4D 15, 05, 05]
-A5E9; [77 45 72, 05, 05]
+A6C7; [78 4D 1C, 05, 05]
-A5EA; [77 45 79, 05, 05]
+A6C8; [78 4D 23, 05, 05]
-A5EB; [77 45 80, 05, 05]
+A6C9; [78 4D 2A, 05, 05]
-A5EC; [77 45 87, 05, 05]
+A6CA; [78 4D 31, 05, 05]
-A5ED; [77 45 8E, 05, 05]
+A6CB; [78 4D 38, 05, 05]
-A5EE; [77 45 95, 05, 05]
+A6CC; [78 4D 3F, 05, 05]
-A5EF; [77 45 9C, 05, 05]
+A6CD; [78 4D 46, 05, 05]
-A5F0; [77 45 A3, 05, 05]
+A6CE; [78 4D 4D, 05, 05]
-A5F1; [77 45 AA, 05, 05]
+A6CF; [78 4D 54, 05, 05]
-A5F2; [77 45 B1, 05, 05]
+A6D0; [78 4D 5B, 05, 05]
-A5F3; [77 45 B8, 05, 05]
+A6D1; [78 4D 62, 05, 05]
-A5F4; [77 45 BF, 05, 05]
+A6D2; [78 4D 69, 05, 05]
-A5F5; [77 45 C6, 05, 05]
+A6D3; [78 4D 70, 05, 05]
-A5F6; [77 45 CD, 05, 05]
+A6D4; [78 4D 77, 05, 05]
-A5F7; [77 45 D4, 05, 05]
+A6D5; [78 4D 7E, 05, 05]
-A5F8; [77 45 DB, 05, 05]
+A6D6; [78 4D 85, 05, 05]
-A5F9; [77 45 E2, 05, 05]
+A6D7; [78 4D 8C, 05, 05]
-A5FA; [77 45 E9, 05, 05]
+A6D8; [78 4D 93, 05, 05]
-A5FB; [77 45 F0, 05, 05]
+A6D9; [78 4D 9A, 05, 05]
-A5FC; [77 45 F7, 05, 05]
+A6DA; [78 4D A1, 05, 05]
-A5FD; [77 45 FE, 05, 05]
+A6DB; [78 4D A8, 05, 05]
-A5FE; [77 46 07, 05, 05]
+A6DC; [78 4D AF, 05, 05]
-A5FF; [77 46 0E, 05, 05]
+A6DD; [78 4D B6, 05, 05]
-A600; [77 46 15, 05, 05]
+A6DE; [78 4D BD, 05, 05]
-A601; [77 46 1C, 05, 05]
+A6DF; [78 4D C4, 05, 05]
-A602; [77 46 23, 05, 05]
+A6E0; [78 4D CB, 05, 05]
-A603; [77 46 2A, 05, 05]
+A6E1; [78 4D D2, 05, 05]
-A604; [77 46 31, 05, 05]
+A6E2; [78 4D D9, 05, 05]
-A605; [77 46 38, 05, 05]
+A6E3; [78 4D E0, 05, 05]
-A606; [77 46 3F, 05, 05]
+A6E4; [78 4D E7, 05, 05]
-A607; [77 46 46, 05, 05]
+A6E5; [78 4D EE, 05, 05]
-A608; [77 46 4D, 05, 05]
+A6E6; [78 4D F5, 05, 05]
-A609; [77 46 54, 05, 05]
+A6E7; [78 4D FC, 05, 05]
-A60A; [77 46 5B, 05, 05]
+A6E8; [78 4E 05, 05, 05]
-A60B; [77 48, 05, 05]
+A6E9; [78 4E 0C, 05, 05]
-A60C; [77 4A, 05, 05]
+A6EA; [78 4E 13, 05, 05]
-FDD1 A6A0; [77 4C 02, 05, 05] # Bamum first primary (compressible)
+A6EB; [78 4E 1A, 05, 05]
-A6A0; [77 4C 09, 05, 05]
+A6EC; [78 4E 21, 05, 05]
-A6A1; [77 4C 10, 05, 05]
+A6ED; [78 4E 28, 05, 05]
-A6A2; [77 4C 17, 05, 05]
+A6EE; [78 4E 2F, 05, 05]
-A6A3; [77 4C 1E, 05, 05]
+A6EF; [78 4E 36, 05, 05]
-A6A4; [77 4C 25, 05, 05]
+16800; [78 4E 3D, 05, 05]
-A6A5; [77 4C 2C, 05, 05]
+16801; [78 4E 44, 05, 05]
-A6A6; [77 4C 33, 05, 05]
+16802; [78 4E 4B, 05, 05]
-A6A7; [77 4C 3A, 05, 05]
+16803; [78 4E 52, 05, 05]
-A6A8; [77 4C 41, 05, 05]
+16804; [78 4E 59, 05, 05]
-A6A9; [77 4C 48, 05, 05]
+16805; [78 4E 60, 05, 05]
-A6AA; [77 4C 4F, 05, 05]
+16806; [78 4E 67, 05, 05]
-A6AB; [77 4C 56, 05, 05]
+16807; [78 4E 6E, 05, 05]
-A6AC; [77 4C 5D, 05, 05]
+16808; [78 4E 75, 05, 05]
-A6AD; [77 4C 64, 05, 05]
+16809; [78 4E 7C, 05, 05]
-A6AE; [77 4C 6B, 05, 05]
+1680A; [78 4E 83, 05, 05]
-A6AF; [77 4C 72, 05, 05]
+1680B; [78 4E 8A, 05, 05]
-A6B0; [77 4C 79, 05, 05]
+1680C; [78 4E 91, 05, 05]
-A6B1; [77 4C 80, 05, 05]
+1680D; [78 4E 98, 05, 05]
-A6B2; [77 4C 87, 05, 05]
+1680E; [78 4E 9F, 05, 05]
-A6B3; [77 4C 8E, 05, 05]
+1680F; [78 4E A6, 05, 05]
-A6B4; [77 4C 95, 05, 05]
+16810; [78 4E AD, 05, 05]
-A6B5; [77 4C 9C, 05, 05]
+16811; [78 4E B4, 05, 05]
-A6B6; [77 4C A3, 05, 05]
+16812; [78 4E BB, 05, 05]
-A6B7; [77 4C AA, 05, 05]
+16813; [78 4E C2, 05, 05]
-A6B8; [77 4C B1, 05, 05]
+16814; [78 4E C9, 05, 05]
-A6B9; [77 4C B8, 05, 05]
+16815; [78 4E D0, 05, 05]
-A6BA; [77 4C BF, 05, 05]
+16816; [78 4E D7, 05, 05]
-A6BB; [77 4C C6, 05, 05]
+16817; [78 4E DE, 05, 05]
-A6BC; [77 4C CD, 05, 05]
+16818; [78 4E E5, 05, 05]
-A6BD; [77 4C D4, 05, 05]
+16819; [78 4E EC, 05, 05]
-A6BE; [77 4C DB, 05, 05]
+1681A; [78 4E F3, 05, 05]
-A6BF; [77 4C E2, 05, 05]
+1681B; [78 4E FA, 05, 05]
-A6C0; [77 4C E9, 05, 05]
+1681C; [78 4F 03, 05, 05]
-A6C1; [77 4C F0, 05, 05]
+1681D; [78 4F 0A, 05, 05]
-A6C2; [77 4C F7, 05, 05]
+1681E; [78 4F 11, 05, 05]
-A6C3; [77 4C FE, 05, 05]
+1681F; [78 4F 18, 05, 05]
-A6C4; [77 4D 07, 05, 05]
+16820; [78 4F 1F, 05, 05]
-A6C5; [77 4D 0E, 05, 05]
+16821; [78 4F 26, 05, 05]
-A6C6; [77 4D 15, 05, 05]
+16822; [78 4F 2D, 05, 05]
-A6C7; [77 4D 1C, 05, 05]
+16823; [78 4F 34, 05, 05]
-A6C8; [77 4D 23, 05, 05]
+16824; [78 4F 3B, 05, 05]
-A6C9; [77 4D 2A, 05, 05]
+16825; [78 4F 42, 05, 05]
-A6CA; [77 4D 31, 05, 05]
+16826; [78 4F 49, 05, 05]
-A6CB; [77 4D 38, 05, 05]
+16827; [78 4F 50, 05, 05]
-A6CC; [77 4D 3F, 05, 05]
+16828; [78 4F 57, 05, 05]
-A6CD; [77 4D 46, 05, 05]
+16829; [78 4F 5E, 05, 05]
-A6CE; [77 4D 4D, 05, 05]
+1682A; [78 4F 65, 05, 05]
-A6CF; [77 4D 54, 05, 05]
+1682B; [78 4F 6C, 05, 05]
-A6D0; [77 4D 5B, 05, 05]
+1682C; [78 4F 73, 05, 05]
-A6D1; [77 4D 62, 05, 05]
+1682D; [78 4F 7A, 05, 05]
-A6D2; [77 4D 69, 05, 05]
+1682E; [78 4F 81, 05, 05]
-A6D3; [77 4D 70, 05, 05]
+1682F; [78 4F 88, 05, 05]
-A6D4; [77 4D 77, 05, 05]
+16830; [78 4F 8F, 05, 05]
-A6D5; [77 4D 7E, 05, 05]
+16831; [78 4F 96, 05, 05]
-A6D6; [77 4D 85, 05, 05]
+16832; [78 4F 9D, 05, 05]
-A6D7; [77 4D 8C, 05, 05]
+16833; [78 4F A4, 05, 05]
-A6D8; [77 4D 93, 05, 05]
+16834; [78 4F AB, 05, 05]
-A6D9; [77 4D 9A, 05, 05]
+16835; [78 4F B2, 05, 05]
-A6DA; [77 4D A1, 05, 05]
+16836; [78 4F B9, 05, 05]
-A6DB; [77 4D A8, 05, 05]
+16837; [78 4F C0, 05, 05]
-A6DC; [77 4D AF, 05, 05]
+16838; [78 4F C7, 05, 05]
-A6DD; [77 4D B6, 05, 05]
+16839; [78 4F CE, 05, 05]
-A6DE; [77 4D BD, 05, 05]
+1683A; [78 4F D5, 05, 05]
-A6DF; [77 4D C4, 05, 05]
+1683B; [78 4F DC, 05, 05]
-A6E0; [77 4D CB, 05, 05]
+1683C; [78 4F E3, 05, 05]
-A6E1; [77 4D D2, 05, 05]
+1683D; [78 4F EA, 05, 05]
-A6E2; [77 4D D9, 05, 05]
+1683E; [78 4F F1, 05, 05]
-A6E3; [77 4D E0, 05, 05]
+1683F; [78 4F F8, 05, 05]
-A6E4; [77 4D E7, 05, 05]
+16840; [78 4F FF, 05, 05]
-A6E5; [77 4D EE, 05, 05]
+16841; [78 50 08, 05, 05]
-A6E6; [77 4D F5, 05, 05]
+16842; [78 50 0F, 05, 05]
-A6E7; [77 4D FC, 05, 05]
+16843; [78 50 16, 05, 05]
-A6E8; [77 4E 05, 05, 05]
+16844; [78 50 1D, 05, 05]
-A6E9; [77 4E 0C, 05, 05]
+16845; [78 50 24, 05, 05]
-A6EA; [77 4E 13, 05, 05]
+16846; [78 50 2B, 05, 05]
-A6EB; [77 4E 1A, 05, 05]
+16847; [78 50 32, 05, 05]
-A6EC; [77 4E 21, 05, 05]
+16848; [78 50 39, 05, 05]
-A6ED; [77 4E 28, 05, 05]
+16849; [78 50 40, 05, 05]
-A6EE; [77 4E 2F, 05, 05]
+1684A; [78 50 47, 05, 05]
-A6EF; [77 4E 36, 05, 05]
+1684B; [78 50 4E, 05, 05]
-16800; [77 4E 3D, 05, 05]
+1684C; [78 50 55, 05, 05]
-16801; [77 4E 44, 05, 05]
+1684D; [78 50 5C, 05, 05]
-16802; [77 4E 4B, 05, 05]
+1684E; [78 50 63, 05, 05]
-16803; [77 4E 52, 05, 05]
+1684F; [78 50 6A, 05, 05]
-16804; [77 4E 59, 05, 05]
+16850; [78 50 71, 05, 05]
-16805; [77 4E 60, 05, 05]
+16851; [78 50 78, 05, 05]
-16806; [77 4E 67, 05, 05]
+16852; [78 50 7F, 05, 05]
-16807; [77 4E 6E, 05, 05]
+16853; [78 50 86, 05, 05]
-16808; [77 4E 75, 05, 05]
+16854; [78 50 8D, 05, 05]
-16809; [77 4E 7C, 05, 05]
+16855; [78 50 94, 05, 05]
-1680A; [77 4E 83, 05, 05]
+16856; [78 50 9B, 05, 05]
-1680B; [77 4E 8A, 05, 05]
+16857; [78 50 A2, 05, 05]
-1680C; [77 4E 91, 05, 05]
+16858; [78 50 A9, 05, 05]
-1680D; [77 4E 98, 05, 05]
+16859; [78 50 B0, 05, 05]
-1680E; [77 4E 9F, 05, 05]
+1685A; [78 50 B7, 05, 05]
-1680F; [77 4E A6, 05, 05]
+1685B; [78 50 BE, 05, 05]
-16810; [77 4E AD, 05, 05]
+1685C; [78 50 C5, 05, 05]
-16811; [77 4E B4, 05, 05]
+1685D; [78 50 CC, 05, 05]
-16812; [77 4E BB, 05, 05]
+1685E; [78 50 D3, 05, 05]
-16813; [77 4E C2, 05, 05]
+1685F; [78 50 DA, 05, 05]
-16814; [77 4E C9, 05, 05]
+16860; [78 50 E1, 05, 05]
-16815; [77 4E D0, 05, 05]
+16861; [78 50 E8, 05, 05]
-16816; [77 4E D7, 05, 05]
+16862; [78 50 EF, 05, 05]
-16817; [77 4E DE, 05, 05]
+16863; [78 50 F6, 05, 05]
-16818; [77 4E E5, 05, 05]
+16864; [78 50 FD, 05, 05]
-16819; [77 4E EC, 05, 05]
+16865; [78 51 06, 05, 05]
-1681A; [77 4E F3, 05, 05]
+16866; [78 51 0D, 05, 05]
-1681B; [77 4E FA, 05, 05]
+16867; [78 51 14, 05, 05]
-1681C; [77 4F 03, 05, 05]
+16868; [78 51 1B, 05, 05]
-1681D; [77 4F 0A, 05, 05]
+16869; [78 51 22, 05, 05]
-1681E; [77 4F 11, 05, 05]
+1686A; [78 51 29, 05, 05]
-1681F; [77 4F 18, 05, 05]
+1686B; [78 51 30, 05, 05]
-16820; [77 4F 1F, 05, 05]
+1686C; [78 51 37, 05, 05]
-16821; [77 4F 26, 05, 05]
+1686D; [78 51 3E, 05, 05]
-16822; [77 4F 2D, 05, 05]
+1686E; [78 51 45, 05, 05]
-16823; [77 4F 34, 05, 05]
+1686F; [78 51 4C, 05, 05]
-16824; [77 4F 3B, 05, 05]
+16870; [78 51 53, 05, 05]
-16825; [77 4F 42, 05, 05]
+16871; [78 51 5A, 05, 05]
-16826; [77 4F 49, 05, 05]
+16872; [78 51 61, 05, 05]
-16827; [77 4F 50, 05, 05]
+16873; [78 51 68, 05, 05]
-16828; [77 4F 57, 05, 05]
+16874; [78 51 6F, 05, 05]
-16829; [77 4F 5E, 05, 05]
+16875; [78 51 76, 05, 05]
-1682A; [77 4F 65, 05, 05]
+16876; [78 51 7D, 05, 05]
-1682B; [77 4F 6C, 05, 05]
+16877; [78 51 84, 05, 05]
-1682C; [77 4F 73, 05, 05]
+16878; [78 51 8B, 05, 05]
-1682D; [77 4F 7A, 05, 05]
+16879; [78 51 92, 05, 05]
-1682E; [77 4F 81, 05, 05]
+1687A; [78 51 99, 05, 05]
-1682F; [77 4F 88, 05, 05]
+1687B; [78 51 A0, 05, 05]
-16830; [77 4F 8F, 05, 05]
+1687C; [78 51 A7, 05, 05]
-16831; [77 4F 96, 05, 05]
+1687D; [78 51 AE, 05, 05]
-16832; [77 4F 9D, 05, 05]
+1687E; [78 51 B5, 05, 05]
-16833; [77 4F A4, 05, 05]
+1687F; [78 51 BC, 05, 05]
-16834; [77 4F AB, 05, 05]
+16880; [78 51 C3, 05, 05]
-16835; [77 4F B2, 05, 05]
+16881; [78 51 CA, 05, 05]
-16836; [77 4F B9, 05, 05]
+16882; [78 51 D1, 05, 05]
-16837; [77 4F C0, 05, 05]
+16883; [78 51 D8, 05, 05]
-16838; [77 4F C7, 05, 05]
+16884; [78 51 DF, 05, 05]
-16839; [77 4F CE, 05, 05]
+16885; [78 51 E6, 05, 05]
-1683A; [77 4F D5, 05, 05]
+16886; [78 51 ED, 05, 05]
-1683B; [77 4F DC, 05, 05]
+16887; [78 51 F4, 05, 05]
-1683C; [77 4F E3, 05, 05]
+16888; [78 51 FB, 05, 05]
-1683D; [77 4F EA, 05, 05]
+16889; [78 52 04, 05, 05]
-1683E; [77 4F F1, 05, 05]
+1688A; [78 52 0B, 05, 05]
-1683F; [77 4F F8, 05, 05]
+1688B; [78 52 12, 05, 05]
-16840; [77 4F FF, 05, 05]
+1688C; [78 52 19, 05, 05]
-16841; [77 50 08, 05, 05]
+1688D; [78 52 20, 05, 05]
-16842; [77 50 0F, 05, 05]
+1688E; [78 52 27, 05, 05]
-16843; [77 50 16, 05, 05]
+1688F; [78 52 2E, 05, 05]
-16844; [77 50 1D, 05, 05]
+16890; [78 52 35, 05, 05]
-16845; [77 50 24, 05, 05]
+16891; [78 52 3C, 05, 05]
-16846; [77 50 2B, 05, 05]
+16892; [78 52 43, 05, 05]
-16847; [77 50 32, 05, 05]
+16893; [78 52 4A, 05, 05]
-16848; [77 50 39, 05, 05]
+16894; [78 52 51, 05, 05]
-16849; [77 50 40, 05, 05]
+16895; [78 52 58, 05, 05]
-1684A; [77 50 47, 05, 05]
+16896; [78 52 5F, 05, 05]
-1684B; [77 50 4E, 05, 05]
+16897; [78 52 66, 05, 05]
-1684C; [77 50 55, 05, 05]
+16898; [78 52 6D, 05, 05]
-1684D; [77 50 5C, 05, 05]
+16899; [78 52 74, 05, 05]
-1684E; [77 50 63, 05, 05]
+1689A; [78 52 7B, 05, 05]
-1684F; [77 50 6A, 05, 05]
+1689B; [78 52 82, 05, 05]
-16850; [77 50 71, 05, 05]
+1689C; [78 52 89, 05, 05]
-16851; [77 50 78, 05, 05]
+1689D; [78 52 90, 05, 05]
-16852; [77 50 7F, 05, 05]
+1689E; [78 52 97, 05, 05]
-16853; [77 50 86, 05, 05]
+1689F; [78 52 9E, 05, 05]
-16854; [77 50 8D, 05, 05]
+168A0; [78 52 A5, 05, 05]
-16855; [77 50 94, 05, 05]
+168A1; [78 52 AC, 05, 05]
-16856; [77 50 9B, 05, 05]
+168A2; [78 52 B3, 05, 05]
-16857; [77 50 A2, 05, 05]
+168A3; [78 52 BA, 05, 05]
-16858; [77 50 A9, 05, 05]
+168A4; [78 52 C1, 05, 05]
-16859; [77 50 B0, 05, 05]
+168A5; [78 52 C8, 05, 05]
-1685A; [77 50 B7, 05, 05]
+168A6; [78 52 CF, 05, 05]
-1685B; [77 50 BE, 05, 05]
+168A7; [78 52 D6, 05, 05]
-1685C; [77 50 C5, 05, 05]
+168A8; [78 52 DD, 05, 05]
-1685D; [77 50 CC, 05, 05]
+168A9; [78 52 E4, 05, 05]
-1685E; [77 50 D3, 05, 05]
+168AA; [78 52 EB, 05, 05]
-1685F; [77 50 DA, 05, 05]
+168AB; [78 52 F2, 05, 05]
-16860; [77 50 E1, 05, 05]
+168AC; [78 52 F9, 05, 05]
-16861; [77 50 E8, 05, 05]
+168AD; [78 53 02, 05, 05]
-16862; [77 50 EF, 05, 05]
+168AE; [78 53 09, 05, 05]
-16863; [77 50 F6, 05, 05]
+168AF; [78 53 10, 05, 05]
-16864; [77 50 FD, 05, 05]
+168B0; [78 53 17, 05, 05]
-16865; [77 51 06, 05, 05]
+168B1; [78 53 1E, 05, 05]
-16866; [77 51 0D, 05, 05]
+168B2; [78 53 25, 05, 05]
-16867; [77 51 14, 05, 05]
+168B3; [78 53 2C, 05, 05]
-16868; [77 51 1B, 05, 05]
+168B4; [78 53 33, 05, 05]
-16869; [77 51 22, 05, 05]
+168B5; [78 53 3A, 05, 05]
-1686A; [77 51 29, 05, 05]
+168B6; [78 53 41, 05, 05]
-1686B; [77 51 30, 05, 05]
+168B7; [78 53 48, 05, 05]
-1686C; [77 51 37, 05, 05]
+168B8; [78 53 4F, 05, 05]
-1686D; [77 51 3E, 05, 05]
+168B9; [78 53 56, 05, 05]
-1686E; [77 51 45, 05, 05]
+168BA; [78 53 5D, 05, 05]
-1686F; [77 51 4C, 05, 05]
+168BB; [78 53 64, 05, 05]
-16870; [77 51 53, 05, 05]
+168BC; [78 53 6B, 05, 05]
-16871; [77 51 5A, 05, 05]
+168BD; [78 53 72, 05, 05]
-16872; [77 51 61, 05, 05]
+168BE; [78 53 79, 05, 05]
-16873; [77 51 68, 05, 05]
+168BF; [78 53 80, 05, 05]
-16874; [77 51 6F, 05, 05]
+168C0; [78 53 87, 05, 05]
-16875; [77 51 76, 05, 05]
+168C1; [78 53 8E, 05, 05]
-16876; [77 51 7D, 05, 05]
+168C2; [78 53 95, 05, 05]
-16877; [77 51 84, 05, 05]
+168C3; [78 53 9C, 05, 05]
-16878; [77 51 8B, 05, 05]
+168C4; [78 53 A3, 05, 05]
-16879; [77 51 92, 05, 05]
+168C5; [78 53 AA, 05, 05]
-1687A; [77 51 99, 05, 05]
+168C6; [78 53 B1, 05, 05]
-1687B; [77 51 A0, 05, 05]
+168C7; [78 53 B8, 05, 05]
-1687C; [77 51 A7, 05, 05]
+168C8; [78 53 BF, 05, 05]
-1687D; [77 51 AE, 05, 05]
+168C9; [78 53 C6, 05, 05]
-1687E; [77 51 B5, 05, 05]
+168CA; [78 53 CD, 05, 05]
-1687F; [77 51 BC, 05, 05]
+168CB; [78 53 D4, 05, 05]
-16880; [77 51 C3, 05, 05]
+168CC; [78 53 DB, 05, 05]
-16881; [77 51 CA, 05, 05]
+168CD; [78 53 E2, 05, 05]
-16882; [77 51 D1, 05, 05]
+168CE; [78 53 E9, 05, 05]
-16883; [77 51 D8, 05, 05]
+168CF; [78 53 F0, 05, 05]
-16884; [77 51 DF, 05, 05]
+168D0; [78 53 F7, 05, 05]
-16885; [77 51 E6, 05, 05]
+168D1; [78 53 FE, 05, 05]
-16886; [77 51 ED, 05, 05]
+168D2; [78 54 07, 05, 05]
-16887; [77 51 F4, 05, 05]
+168D3; [78 54 0E, 05, 05]
-16888; [77 51 FB, 05, 05]
+168D4; [78 54 15, 05, 05]
-16889; [77 52 04, 05, 05]
+168D5; [78 54 1C, 05, 05]
-1688A; [77 52 0B, 05, 05]
+168D6; [78 54 23, 05, 05]
-1688B; [77 52 12, 05, 05]
+168D7; [78 54 2A, 05, 05]
-1688C; [77 52 19, 05, 05]
+168D8; [78 54 31, 05, 05]
-1688D; [77 52 20, 05, 05]
+168D9; [78 54 38, 05, 05]
-1688E; [77 52 27, 05, 05]
+168DA; [78 54 3F, 05, 05]
-1688F; [77 52 2E, 05, 05]
+168DB; [78 54 46, 05, 05]
-16890; [77 52 35, 05, 05]
+168DC; [78 54 4D, 05, 05]
-16891; [77 52 3C, 05, 05]
+168DD; [78 54 54, 05, 05]
-16892; [77 52 43, 05, 05]
+168DE; [78 54 5B, 05, 05]
-16893; [77 52 4A, 05, 05]
+168DF; [78 54 62, 05, 05]
-16894; [77 52 51, 05, 05]
+168E0; [78 54 69, 05, 05]
-16895; [77 52 58, 05, 05]
+168E1; [78 54 70, 05, 05]
-16896; [77 52 5F, 05, 05]
+168E2; [78 54 77, 05, 05]
-16897; [77 52 66, 05, 05]
+168E3; [78 54 7E, 05, 05]
-16898; [77 52 6D, 05, 05]
+168E4; [78 54 85, 05, 05]
-16899; [77 52 74, 05, 05]
+168E5; [78 54 8C, 05, 05]
-1689A; [77 52 7B, 05, 05]
+168E6; [78 54 93, 05, 05]
-1689B; [77 52 82, 05, 05]
+168E7; [78 54 9A, 05, 05]
-1689C; [77 52 89, 05, 05]
+168E8; [78 54 A1, 05, 05]
-1689D; [77 52 90, 05, 05]
+168E9; [78 54 A8, 05, 05]
-1689E; [77 52 97, 05, 05]
+168EA; [78 54 AF, 05, 05]
-1689F; [77 52 9E, 05, 05]
+168EB; [78 54 B6, 05, 05]
-168A0; [77 52 A5, 05, 05]
+168EC; [78 54 BD, 05, 05]
-168A1; [77 52 AC, 05, 05]
+168ED; [78 54 C4, 05, 05]
-168A2; [77 52 B3, 05, 05]
+168EE; [78 54 CB, 05, 05]
-168A3; [77 52 BA, 05, 05]
+168EF; [78 54 D2, 05, 05]
-168A4; [77 52 C1, 05, 05]
+168F0; [78 54 D9, 05, 05]
-168A5; [77 52 C8, 05, 05]
+168F1; [78 54 E0, 05, 05]
-168A6; [77 52 CF, 05, 05]
+168F2; [78 54 E7, 05, 05]
-168A7; [77 52 D6, 05, 05]
+168F3; [78 54 EE, 05, 05]
-168A8; [77 52 DD, 05, 05]
+168F4; [78 54 F5, 05, 05]
-168A9; [77 52 E4, 05, 05]
+168F5; [78 54 FC, 05, 05]
-168AA; [77 52 EB, 05, 05]
+168F6; [78 55 05, 05, 05]
-168AB; [77 52 F2, 05, 05]
+168F7; [78 55 0C, 05, 05]
-168AC; [77 52 F9, 05, 05]
+168F8; [78 55 13, 05, 05]
-168AD; [77 53 02, 05, 05]
+168F9; [78 55 1A, 05, 05]
-168AE; [77 53 09, 05, 05]
+168FA; [78 55 21, 05, 05]
-168AF; [77 53 10, 05, 05]
+168FB; [78 55 28, 05, 05]
-168B0; [77 53 17, 05, 05]
+168FC; [78 55 2F, 05, 05]
-168B1; [77 53 1E, 05, 05]
+168FD; [78 55 36, 05, 05]
-168B2; [77 53 25, 05, 05]
+168FE; [78 55 3D, 05, 05]
-168B3; [77 53 2C, 05, 05]
+168FF; [78 55 44, 05, 05]
-168B4; [77 53 33, 05, 05]
+16900; [78 55 4B, 05, 05]
-168B5; [77 53 3A, 05, 05]
+16901; [78 55 52, 05, 05]
-168B6; [77 53 41, 05, 05]
+16902; [78 55 59, 05, 05]
-168B7; [77 53 48, 05, 05]
+16903; [78 55 60, 05, 05]
-168B8; [77 53 4F, 05, 05]
+16904; [78 55 67, 05, 05]
-168B9; [77 53 56, 05, 05]
+16905; [78 55 6E, 05, 05]
-168BA; [77 53 5D, 05, 05]
+16906; [78 55 75, 05, 05]
-168BB; [77 53 64, 05, 05]
+16907; [78 55 7C, 05, 05]
-168BC; [77 53 6B, 05, 05]
+16908; [78 55 83, 05, 05]
-168BD; [77 53 72, 05, 05]
+16909; [78 55 8A, 05, 05]
-168BE; [77 53 79, 05, 05]
+1690A; [78 55 91, 05, 05]
-168BF; [77 53 80, 05, 05]
+1690B; [78 55 98, 05, 05]
-168C0; [77 53 87, 05, 05]
+1690C; [78 55 9F, 05, 05]
-168C1; [77 53 8E, 05, 05]
+1690D; [78 55 A6, 05, 05]
-168C2; [77 53 95, 05, 05]
+1690E; [78 55 AD, 05, 05]
-168C3; [77 53 9C, 05, 05]
+1690F; [78 55 B4, 05, 05]
-168C4; [77 53 A3, 05, 05]
+16910; [78 55 BB, 05, 05]
-168C5; [77 53 AA, 05, 05]
+16911; [78 55 C2, 05, 05]
-168C6; [77 53 B1, 05, 05]
+16912; [78 55 C9, 05, 05]
-168C7; [77 53 B8, 05, 05]
+16913; [78 55 D0, 05, 05]
-168C8; [77 53 BF, 05, 05]
+16914; [78 55 D7, 05, 05]
-168C9; [77 53 C6, 05, 05]
+16915; [78 55 DE, 05, 05]
-168CA; [77 53 CD, 05, 05]
+16916; [78 55 E5, 05, 05]
-168CB; [77 53 D4, 05, 05]
+16917; [78 55 EC, 05, 05]
-168CC; [77 53 DB, 05, 05]
+16918; [78 55 F3, 05, 05]
-168CD; [77 53 E2, 05, 05]
+16919; [78 55 FA, 05, 05]
-168CE; [77 53 E9, 05, 05]
+1691A; [78 56 03, 05, 05]
-168CF; [77 53 F0, 05, 05]
+1691B; [78 56 0A, 05, 05]
-168D0; [77 53 F7, 05, 05]
+1691C; [78 56 11, 05, 05]
-168D1; [77 53 FE, 05, 05]
+1691D; [78 56 18, 05, 05]
-168D2; [77 54 07, 05, 05]
+1691E; [78 56 1F, 05, 05]
-168D3; [77 54 0E, 05, 05]
+1691F; [78 56 26, 05, 05]
-168D4; [77 54 15, 05, 05]
+16920; [78 56 2D, 05, 05]
-168D5; [77 54 1C, 05, 05]
+16921; [78 56 34, 05, 05]
-168D6; [77 54 23, 05, 05]
+16922; [78 56 3B, 05, 05]
-168D7; [77 54 2A, 05, 05]
+16923; [78 56 42, 05, 05]
-168D8; [77 54 31, 05, 05]
+16924; [78 56 49, 05, 05]
-168D9; [77 54 38, 05, 05]
+16925; [78 56 50, 05, 05]
-168DA; [77 54 3F, 05, 05]
+16926; [78 56 57, 05, 05]
-168DB; [77 54 46, 05, 05]
+16927; [78 56 5E, 05, 05]
-168DC; [77 54 4D, 05, 05]
+16928; [78 56 65, 05, 05]
-168DD; [77 54 54, 05, 05]
+16929; [78 56 6C, 05, 05]
-168DE; [77 54 5B, 05, 05]
+1692A; [78 56 73, 05, 05]
-168DF; [77 54 62, 05, 05]
+1692B; [78 56 7A, 05, 05]
-168E0; [77 54 69, 05, 05]
+1692C; [78 56 81, 05, 05]
-168E1; [77 54 70, 05, 05]
+1692D; [78 56 88, 05, 05]
-168E2; [77 54 77, 05, 05]
+1692E; [78 56 8F, 05, 05]
-168E3; [77 54 7E, 05, 05]
+1692F; [78 56 96, 05, 05]
-168E4; [77 54 85, 05, 05]
+16930; [78 56 9D, 05, 05]
-168E5; [77 54 8C, 05, 05]
+16931; [78 56 A4, 05, 05]
-168E6; [77 54 93, 05, 05]
+16932; [78 56 AB, 05, 05]
-168E7; [77 54 9A, 05, 05]
+16933; [78 56 B2, 05, 05]
-168E8; [77 54 A1, 05, 05]
+16934; [78 56 B9, 05, 05]
-168E9; [77 54 A8, 05, 05]
+16935; [78 56 C0, 05, 05]
-168EA; [77 54 AF, 05, 05]
+16936; [78 56 C7, 05, 05]
-168EB; [77 54 B6, 05, 05]
+16937; [78 56 CE, 05, 05]
-168EC; [77 54 BD, 05, 05]
+16938; [78 56 D5, 05, 05]
-168ED; [77 54 C4, 05, 05]
+16939; [78 56 DC, 05, 05]
-168EE; [77 54 CB, 05, 05]
+1693A; [78 56 E3, 05, 05]
-168EF; [77 54 D2, 05, 05]
+1693B; [78 56 EA, 05, 05]
-168F0; [77 54 D9, 05, 05]
+1693C; [78 56 F1, 05, 05]
-168F1; [77 54 E0, 05, 05]
+1693D; [78 56 F8, 05, 05]
-168F2; [77 54 E7, 05, 05]
+1693E; [78 56 FF, 05, 05]
-168F3; [77 54 EE, 05, 05]
+1693F; [78 57 08, 05, 05]
-168F4; [77 54 F5, 05, 05]
+16940; [78 57 0F, 05, 05]
-168F5; [77 54 FC, 05, 05]
+16941; [78 57 16, 05, 05]
-168F6; [77 55 05, 05, 05]
+16942; [78 57 1D, 05, 05]
-168F7; [77 55 0C, 05, 05]
+16943; [78 57 24, 05, 05]
-168F8; [77 55 13, 05, 05]
+16944; [78 57 2B, 05, 05]
-168F9; [77 55 1A, 05, 05]
+16945; [78 57 32, 05, 05]
-168FA; [77 55 21, 05, 05]
+16946; [78 57 39, 05, 05]
-168FB; [77 55 28, 05, 05]
+16947; [78 57 40, 05, 05]
-168FC; [77 55 2F, 05, 05]
+16948; [78 57 47, 05, 05]
-168FD; [77 55 36, 05, 05]
+16949; [78 57 4E, 05, 05]
-168FE; [77 55 3D, 05, 05]
+1694A; [78 57 55, 05, 05]
-168FF; [77 55 44, 05, 05]
+1694B; [78 57 5C, 05, 05]
-16900; [77 55 4B, 05, 05]
+1694C; [78 57 63, 05, 05]
-16901; [77 55 52, 05, 05]
+1694D; [78 57 6A, 05, 05]
-16902; [77 55 59, 05, 05]
+1694E; [78 57 71, 05, 05]
-16903; [77 55 60, 05, 05]
+1694F; [78 57 78, 05, 05]
-16904; [77 55 67, 05, 05]
+16950; [78 57 7F, 05, 05]
-16905; [77 55 6E, 05, 05]
+16951; [78 57 86, 05, 05]
-16906; [77 55 75, 05, 05]
+16952; [78 57 8D, 05, 05]
-16907; [77 55 7C, 05, 05]
+16953; [78 57 94, 05, 05]
-16908; [77 55 83, 05, 05]
+16954; [78 57 9B, 05, 05]
-16909; [77 55 8A, 05, 05]
+16955; [78 57 A2, 05, 05]
-1690A; [77 55 91, 05, 05]
+16956; [78 57 A9, 05, 05]
-1690B; [77 55 98, 05, 05]
+16957; [78 57 B0, 05, 05]
-1690C; [77 55 9F, 05, 05]
+16958; [78 57 B7, 05, 05]
-1690D; [77 55 A6, 05, 05]
+16959; [78 57 BE, 05, 05]
-1690E; [77 55 AD, 05, 05]
+1695A; [78 57 C5, 05, 05]
-1690F; [77 55 B4, 05, 05]
+1695B; [78 57 CC, 05, 05]
-16910; [77 55 BB, 05, 05]
+1695C; [78 57 D3, 05, 05]
-16911; [77 55 C2, 05, 05]
+1695D; [78 57 DA, 05, 05]
-16912; [77 55 C9, 05, 05]
+1695E; [78 57 E1, 05, 05]
-16913; [77 55 D0, 05, 05]
+1695F; [78 57 E8, 05, 05]
-16914; [77 55 D7, 05, 05]
+16960; [78 57 EF, 05, 05]
-16915; [77 55 DE, 05, 05]
+16961; [78 57 F6, 05, 05]
-16916; [77 55 E5, 05, 05]
+16962; [78 57 FD, 05, 05]
-16917; [77 55 EC, 05, 05]
+16963; [78 58 06, 05, 05]
-16918; [77 55 F3, 05, 05]
+16964; [78 58 0D, 05, 05]
-16919; [77 55 FA, 05, 05]
+16965; [78 58 14, 05, 05]
-1691A; [77 56 03, 05, 05]
+16966; [78 58 1B, 05, 05]
-1691B; [77 56 0A, 05, 05]
+16967; [78 58 22, 05, 05]
-1691C; [77 56 11, 05, 05]
+16968; [78 58 29, 05, 05]
-1691D; [77 56 18, 05, 05]
+16969; [78 58 30, 05, 05]
-1691E; [77 56 1F, 05, 05]
+1696A; [78 58 37, 05, 05]
-1691F; [77 56 26, 05, 05]
+1696B; [78 58 3E, 05, 05]
-16920; [77 56 2D, 05, 05]
+1696C; [78 58 45, 05, 05]
-16921; [77 56 34, 05, 05]
+1696D; [78 58 4C, 05, 05]
-16922; [77 56 3B, 05, 05]
+1696E; [78 58 53, 05, 05]
-16923; [77 56 42, 05, 05]
+1696F; [78 58 5A, 05, 05]
-16924; [77 56 49, 05, 05]
+16970; [78 58 61, 05, 05]
-16925; [77 56 50, 05, 05]
+16971; [78 58 68, 05, 05]
-16926; [77 56 57, 05, 05]
+16972; [78 58 6F, 05, 05]
-16927; [77 56 5E, 05, 05]
+16973; [78 58 76, 05, 05]
-16928; [77 56 65, 05, 05]
+16974; [78 58 7D, 05, 05]
-16929; [77 56 6C, 05, 05]
+16975; [78 58 84, 05, 05]
-1692A; [77 56 73, 05, 05]
+16976; [78 58 8B, 05, 05]
-1692B; [77 56 7A, 05, 05]
+16977; [78 58 92, 05, 05]
-1692C; [77 56 81, 05, 05]
+16978; [78 58 99, 05, 05]
-1692D; [77 56 88, 05, 05]
+16979; [78 58 A0, 05, 05]
-1692E; [77 56 8F, 05, 05]
+1697A; [78 58 A7, 05, 05]
-1692F; [77 56 96, 05, 05]
+1697B; [78 58 AE, 05, 05]
-16930; [77 56 9D, 05, 05]
+1697C; [78 58 B5, 05, 05]
-16931; [77 56 A4, 05, 05]
+1697D; [78 58 BC, 05, 05]
-16932; [77 56 AB, 05, 05]
+1697E; [78 58 C3, 05, 05]
-16933; [77 56 B2, 05, 05]
+1697F; [78 58 CA, 05, 05]
-16934; [77 56 B9, 05, 05]
+16980; [78 58 D1, 05, 05]
-16935; [77 56 C0, 05, 05]
+16981; [78 58 D8, 05, 05]
-16936; [77 56 C7, 05, 05]
+16982; [78 58 DF, 05, 05]
-16937; [77 56 CE, 05, 05]
+16983; [78 58 E6, 05, 05]
-16938; [77 56 D5, 05, 05]
+16984; [78 58 ED, 05, 05]
-16939; [77 56 DC, 05, 05]
+16985; [78 58 F4, 05, 05]
-1693A; [77 56 E3, 05, 05]
+16986; [78 58 FB, 05, 05]
-1693B; [77 56 EA, 05, 05]
+16987; [78 59 04, 05, 05]
-1693C; [77 56 F1, 05, 05]
+16988; [78 59 0B, 05, 05]
-1693D; [77 56 F8, 05, 05]
+16989; [78 59 12, 05, 05]
-1693E; [77 56 FF, 05, 05]
+1698A; [78 59 19, 05, 05]
-1693F; [77 57 08, 05, 05]
+1698B; [78 59 20, 05, 05]
-16940; [77 57 0F, 05, 05]
+1698C; [78 59 27, 05, 05]
-16941; [77 57 16, 05, 05]
+1698D; [78 59 2E, 05, 05]
-16942; [77 57 1D, 05, 05]
+1698E; [78 59 35, 05, 05]
-16943; [77 57 24, 05, 05]
+1698F; [78 59 3C, 05, 05]
-16944; [77 57 2B, 05, 05]
+16990; [78 59 43, 05, 05]
-16945; [77 57 32, 05, 05]
+16991; [78 59 4A, 05, 05]
-16946; [77 57 39, 05, 05]
+16992; [78 59 51, 05, 05]
-16947; [77 57 40, 05, 05]
+16993; [78 59 58, 05, 05]
-16948; [77 57 47, 05, 05]
+16994; [78 59 5F, 05, 05]
-16949; [77 57 4E, 05, 05]
+16995; [78 59 66, 05, 05]
-1694A; [77 57 55, 05, 05]
+16996; [78 59 6D, 05, 05]
-1694B; [77 57 5C, 05, 05]
+16997; [78 59 74, 05, 05]
-1694C; [77 57 63, 05, 05]
+16998; [78 59 7B, 05, 05]
-1694D; [77 57 6A, 05, 05]
+16999; [78 59 82, 05, 05]
-1694E; [77 57 71, 05, 05]
+1699A; [78 59 89, 05, 05]
-1694F; [77 57 78, 05, 05]
+1699B; [78 59 90, 05, 05]
-16950; [77 57 7F, 05, 05]
+1699C; [78 59 97, 05, 05]
-16951; [77 57 86, 05, 05]
+1699D; [78 59 9E, 05, 05]
-16952; [77 57 8D, 05, 05]
+1699E; [78 59 A5, 05, 05]
-16953; [77 57 94, 05, 05]
+1699F; [78 59 AC, 05, 05]
-16954; [77 57 9B, 05, 05]
+169A0; [78 59 B3, 05, 05]
-16955; [77 57 A2, 05, 05]
+169A1; [78 59 BA, 05, 05]
-16956; [77 57 A9, 05, 05]
+169A2; [78 59 C1, 05, 05]
-16957; [77 57 B0, 05, 05]
+169A3; [78 59 C8, 05, 05]
-16958; [77 57 B7, 05, 05]
+169A4; [78 59 CF, 05, 05]
-16959; [77 57 BE, 05, 05]
+169A5; [78 59 D6, 05, 05]
-1695A; [77 57 C5, 05, 05]
+169A6; [78 59 DD, 05, 05]
-1695B; [77 57 CC, 05, 05]
+169A7; [78 59 E4, 05, 05]
-1695C; [77 57 D3, 05, 05]
+169A8; [78 59 EB, 05, 05]
-1695D; [77 57 DA, 05, 05]
+169A9; [78 59 F2, 05, 05]
-1695E; [77 57 E1, 05, 05]
+169AA; [78 59 F9, 05, 05]
-1695F; [77 57 E8, 05, 05]
+169AB; [78 5A 02, 05, 05]
-16960; [77 57 EF, 05, 05]
+169AC; [78 5A 09, 05, 05]
-16961; [77 57 F6, 05, 05]
+169AD; [78 5A 10, 05, 05]
-16962; [77 57 FD, 05, 05]
+169AE; [78 5A 17, 05, 05]
-16963; [77 58 06, 05, 05]
+169AF; [78 5A 1E, 05, 05]
-16964; [77 58 0D, 05, 05]
+169B0; [78 5A 25, 05, 05]
-16965; [77 58 14, 05, 05]
+169B1; [78 5A 2C, 05, 05]
-16966; [77 58 1B, 05, 05]
+169B2; [78 5A 33, 05, 05]
-16967; [77 58 22, 05, 05]
+169B3; [78 5A 3A, 05, 05]
-16968; [77 58 29, 05, 05]
+169B4; [78 5A 41, 05, 05]
-16969; [77 58 30, 05, 05]
+169B5; [78 5A 48, 05, 05]
-1696A; [77 58 37, 05, 05]
+169B6; [78 5A 4F, 05, 05]
-1696B; [77 58 3E, 05, 05]
+169B7; [78 5A 56, 05, 05]
-1696C; [77 58 45, 05, 05]
+169B8; [78 5A 5D, 05, 05]
-1696D; [77 58 4C, 05, 05]
+169B9; [78 5A 64, 05, 05]
-1696E; [77 58 53, 05, 05]
+169BA; [78 5A 6B, 05, 05]
-1696F; [77 58 5A, 05, 05]
+169BB; [78 5A 72, 05, 05]
-16970; [77 58 61, 05, 05]
+169BC; [78 5A 79, 05, 05]
-16971; [77 58 68, 05, 05]
+169BD; [78 5A 80, 05, 05]
-16972; [77 58 6F, 05, 05]
+169BE; [78 5A 87, 05, 05]
-16973; [77 58 76, 05, 05]
+169BF; [78 5A 8E, 05, 05]
-16974; [77 58 7D, 05, 05]
+169C0; [78 5A 95, 05, 05]
-16975; [77 58 84, 05, 05]
+169C1; [78 5A 9C, 05, 05]
-16976; [77 58 8B, 05, 05]
+169C2; [78 5A A3, 05, 05]
-16977; [77 58 92, 05, 05]
+169C3; [78 5A AA, 05, 05]
-16978; [77 58 99, 05, 05]
+169C4; [78 5A B1, 05, 05]
-16979; [77 58 A0, 05, 05]
+169C5; [78 5A B8, 05, 05]
-1697A; [77 58 A7, 05, 05]
+169C6; [78 5A BF, 05, 05]
-1697B; [77 58 AE, 05, 05]
+169C7; [78 5A C6, 05, 05]
-1697C; [77 58 B5, 05, 05]
+169C8; [78 5A CD, 05, 05]
-1697D; [77 58 BC, 05, 05]
+169C9; [78 5A D4, 05, 05]
-1697E; [77 58 C3, 05, 05]
+169CA; [78 5A DB, 05, 05]
-1697F; [77 58 CA, 05, 05]
+169CB; [78 5A E2, 05, 05]
-16980; [77 58 D1, 05, 05]
+169CC; [78 5A E9, 05, 05]
-16981; [77 58 D8, 05, 05]
+169CD; [78 5A F0, 05, 05]
-16982; [77 58 DF, 05, 05]
+169CE; [78 5A F7, 05, 05]
-16983; [77 58 E6, 05, 05]
+169CF; [78 5A FE, 05, 05]
-16984; [77 58 ED, 05, 05]
+169D0; [78 5B 07, 05, 05]
-16985; [77 58 F4, 05, 05]
+169D1; [78 5B 0E, 05, 05]
-16986; [77 58 FB, 05, 05]
+169D2; [78 5B 15, 05, 05]
-16987; [77 59 04, 05, 05]
+169D3; [78 5B 1C, 05, 05]
-16988; [77 59 0B, 05, 05]
+169D4; [78 5B 23, 05, 05]
-16989; [77 59 12, 05, 05]
+169D5; [78 5B 2A, 05, 05]
-1698A; [77 59 19, 05, 05]
+169D6; [78 5B 31, 05, 05]
-1698B; [77 59 20, 05, 05]
+169D7; [78 5B 38, 05, 05]
-1698C; [77 59 27, 05, 05]
+169D8; [78 5B 3F, 05, 05]
-1698D; [77 59 2E, 05, 05]
+169D9; [78 5B 46, 05, 05]
-1698E; [77 59 35, 05, 05]
+169DA; [78 5B 4D, 05, 05]
-1698F; [77 59 3C, 05, 05]
+169DB; [78 5B 54, 05, 05]
-16990; [77 59 43, 05, 05]
+169DC; [78 5B 5B, 05, 05]
-16991; [77 59 4A, 05, 05]
+169DD; [78 5B 62, 05, 05]
-16992; [77 59 51, 05, 05]
+169DE; [78 5B 69, 05, 05]
-16993; [77 59 58, 05, 05]
+169DF; [78 5B 70, 05, 05]
-16994; [77 59 5F, 05, 05]
+169E0; [78 5B 77, 05, 05]
-16995; [77 59 66, 05, 05]
+169E1; [78 5B 7E, 05, 05]
-16996; [77 59 6D, 05, 05]
+169E2; [78 5B 85, 05, 05]
-16997; [77 59 74, 05, 05]
+169E3; [78 5B 8C, 05, 05]
-16998; [77 59 7B, 05, 05]
+169E4; [78 5B 93, 05, 05]
-16999; [77 59 82, 05, 05]
+169E5; [78 5B 9A, 05, 05]
-1699A; [77 59 89, 05, 05]
+169E6; [78 5B A1, 05, 05]
-1699B; [77 59 90, 05, 05]
+169E7; [78 5B A8, 05, 05]
-1699C; [77 59 97, 05, 05]
+169E8; [78 5B AF, 05, 05]
-1699D; [77 59 9E, 05, 05]
+169E9; [78 5B B6, 05, 05]
-1699E; [77 59 A5, 05, 05]
+169EA; [78 5B BD, 05, 05]
-1699F; [77 59 AC, 05, 05]
+169EB; [78 5B C4, 05, 05]
-169A0; [77 59 B3, 05, 05]
+169EC; [78 5B CB, 05, 05]
-169A1; [77 59 BA, 05, 05]
+169ED; [78 5B D2, 05, 05]
-169A2; [77 59 C1, 05, 05]
+169EE; [78 5B D9, 05, 05]
-169A3; [77 59 C8, 05, 05]
+169EF; [78 5B E0, 05, 05]
-169A4; [77 59 CF, 05, 05]
+169F0; [78 5B E7, 05, 05]
-169A5; [77 59 D6, 05, 05]
+169F1; [78 5B EE, 05, 05]
-169A6; [77 59 DD, 05, 05]
+169F2; [78 5B F5, 05, 05]
-169A7; [77 59 E4, 05, 05]
+169F3; [78 5B FC, 05, 05]
-169A8; [77 59 EB, 05, 05]
+169F4; [78 5C 05, 05, 05]
-169A9; [77 59 F2, 05, 05]
+169F5; [78 5C 0C, 05, 05]
-169AA; [77 59 F9, 05, 05]
+169F6; [78 5C 13, 05, 05]
-169AB; [77 5A 02, 05, 05]
+169F7; [78 5C 1A, 05, 05]
-169AC; [77 5A 09, 05, 05]
+169F8; [78 5C 21, 05, 05]
-169AD; [77 5A 10, 05, 05]
+169F9; [78 5C 28, 05, 05]
-169AE; [77 5A 17, 05, 05]
+169FA; [78 5C 2F, 05, 05]
-169AF; [77 5A 1E, 05, 05]
+169FB; [78 5C 36, 05, 05]
-169B0; [77 5A 25, 05, 05]
+169FC; [78 5C 3D, 05, 05]
-169B1; [77 5A 2C, 05, 05]
+169FD; [78 5C 44, 05, 05]
-169B2; [77 5A 33, 05, 05]
+169FE; [78 5C 4B, 05, 05]
-169B3; [77 5A 3A, 05, 05]
+169FF; [78 5C 52, 05, 05]
-169B4; [77 5A 41, 05, 05]
+16A00; [78 5C 59, 05, 05]
-169B5; [77 5A 48, 05, 05]
+16A01; [78 5C 60, 05, 05]
-169B6; [77 5A 4F, 05, 05]
+16A02; [78 5C 67, 05, 05]
-169B7; [77 5A 56, 05, 05]
+16A03; [78 5C 6E, 05, 05]
-169B8; [77 5A 5D, 05, 05]
+16A04; [78 5C 75, 05, 05]
-169B9; [77 5A 64, 05, 05]
+16A05; [78 5C 7C, 05, 05]
-169BA; [77 5A 6B, 05, 05]
+16A06; [78 5C 83, 05, 05]
-169BB; [77 5A 72, 05, 05]
+16A07; [78 5C 8A, 05, 05]
-169BC; [77 5A 79, 05, 05]
+16A08; [78 5C 91, 05, 05]
-169BD; [77 5A 80, 05, 05]
+16A09; [78 5C 98, 05, 05]
-169BE; [77 5A 87, 05, 05]
+16A0A; [78 5C 9F, 05, 05]
-169BF; [77 5A 8E, 05, 05]
+16A0B; [78 5C A6, 05, 05]
-169C0; [77 5A 95, 05, 05]
+16A0C; [78 5C AD, 05, 05]
-169C1; [77 5A 9C, 05, 05]
+16A0D; [78 5C B4, 05, 05]
-169C2; [77 5A A3, 05, 05]
+16A0E; [78 5C BB, 05, 05]
-169C3; [77 5A AA, 05, 05]
+16A0F; [78 5C C2, 05, 05]
-169C4; [77 5A B1, 05, 05]
+16A10; [78 5C C9, 05, 05]
-169C5; [77 5A B8, 05, 05]
+16A11; [78 5C D0, 05, 05]
-169C6; [77 5A BF, 05, 05]
+16A12; [78 5C D7, 05, 05]
-169C7; [77 5A C6, 05, 05]
+16A13; [78 5C DE, 05, 05]
-169C8; [77 5A CD, 05, 05]
+16A14; [78 5C E5, 05, 05]
-169C9; [77 5A D4, 05, 05]
+16A15; [78 5C EC, 05, 05]
-169CA; [77 5A DB, 05, 05]
+16A16; [78 5C F3, 05, 05]
-169CB; [77 5A E2, 05, 05]
+16A17; [78 5C FA, 05, 05]
-169CC; [77 5A E9, 05, 05]
+16A18; [78 5D 03, 05, 05]
-169CD; [77 5A F0, 05, 05]
+16A19; [78 5D 0A, 05, 05]
-169CE; [77 5A F7, 05, 05]
+16A1A; [78 5D 11, 05, 05]
-169CF; [77 5A FE, 05, 05]
+16A1B; [78 5D 18, 05, 05]
-169D0; [77 5B 07, 05, 05]
+16A1C; [78 5D 1F, 05, 05]
-169D1; [77 5B 0E, 05, 05]
+16A1D; [78 5D 26, 05, 05]
-169D2; [77 5B 15, 05, 05]
+16A1E; [78 5D 2D, 05, 05]
-169D3; [77 5B 1C, 05, 05]
+16A1F; [78 5D 34, 05, 05]
-169D4; [77 5B 23, 05, 05]
+16A20; [78 5D 3B, 05, 05]
-169D5; [77 5B 2A, 05, 05]
+16A21; [78 5D 42, 05, 05]
-169D6; [77 5B 31, 05, 05]
+16A22; [78 5D 49, 05, 05]
-169D7; [77 5B 38, 05, 05]
+16A23; [78 5D 50, 05, 05]
-169D8; [77 5B 3F, 05, 05]
+16A24; [78 5D 57, 05, 05]
-169D9; [77 5B 46, 05, 05]
+16A25; [78 5D 5E, 05, 05]
-169DA; [77 5B 4D, 05, 05]
+16A26; [78 5D 65, 05, 05]
-169DB; [77 5B 54, 05, 05]
+16A27; [78 5D 6C, 05, 05]
-169DC; [77 5B 5B, 05, 05]
+16A28; [78 5D 73, 05, 05]
-169DD; [77 5B 62, 05, 05]
+16A29; [78 5D 7A, 05, 05]
-169DE; [77 5B 69, 05, 05]
+16A2A; [78 5D 81, 05, 05]
-169DF; [77 5B 70, 05, 05]
+16A2B; [78 5D 88, 05, 05]
-169E0; [77 5B 77, 05, 05]
+16A2C; [78 5D 8F, 05, 05]
-169E1; [77 5B 7E, 05, 05]
+16A2D; [78 5D 96, 05, 05]
-169E2; [77 5B 85, 05, 05]
+16A2E; [78 5D 9D, 05, 05]
-169E3; [77 5B 8C, 05, 05]
+16A2F; [78 5D A4, 05, 05]
-169E4; [77 5B 93, 05, 05]
+16A30; [78 5D AB, 05, 05]
-169E5; [77 5B 9A, 05, 05]
+16A31; [78 5D B2, 05, 05]
-169E6; [77 5B A1, 05, 05]
+16A32; [78 5D B9, 05, 05]
-169E7; [77 5B A8, 05, 05]
+16A33; [78 5D C0, 05, 05]
-169E8; [77 5B AF, 05, 05]
+16A34; [78 5D C7, 05, 05]
-169E9; [77 5B B6, 05, 05]
+16A35; [78 5D CE, 05, 05]
-169EA; [77 5B BD, 05, 05]
+16A36; [78 5D D5, 05, 05]
-169EB; [77 5B C4, 05, 05]
+16A37; [78 5D DC, 05, 05]
-169EC; [77 5B CB, 05, 05]
+16A38; [78 5D E3, 05, 05]
-169ED; [77 5B D2, 05, 05]
+FDD1 16AE6; [78 5E 02, 05, 05] # Bassa_Vah first primary (compressible)
-169EE; [77 5B D9, 05, 05]
+16AD0; [78 5E 09, 05, 05]
-169EF; [77 5B E0, 05, 05]
+16AD1; [78 5E 10, 05, 05]
-169F0; [77 5B E7, 05, 05]
+16AD2; [78 5E 17, 05, 05]
-169F1; [77 5B EE, 05, 05]
+16AD3; [78 5E 1E, 05, 05]
-169F2; [77 5B F5, 05, 05]
+16AD4; [78 5E 25, 05, 05]
-169F3; [77 5B FC, 05, 05]
+16AD5; [78 5E 2C, 05, 05]
-169F4; [77 5C 05, 05, 05]
+16AD6; [78 5E 33, 05, 05]
-169F5; [77 5C 0C, 05, 05]
+16AD7; [78 5E 3A, 05, 05]
-169F6; [77 5C 13, 05, 05]
+16AD8; [78 5E 41, 05, 05]
-169F7; [77 5C 1A, 05, 05]
+16AD9; [78 5E 48, 05, 05]
-169F8; [77 5C 21, 05, 05]
+16ADA; [78 5E 4F, 05, 05]
-169F9; [77 5C 28, 05, 05]
+16ADB; [78 5E 56, 05, 05]
-169FA; [77 5C 2F, 05, 05]
+16ADC; [78 5E 5D, 05, 05]
-169FB; [77 5C 36, 05, 05]
+16ADD; [78 5E 64, 05, 05]
-169FC; [77 5C 3D, 05, 05]
+16ADE; [78 5E 6B, 05, 05]
-169FD; [77 5C 44, 05, 05]
+16ADF; [78 5E 72, 05, 05]
-169FE; [77 5C 4B, 05, 05]
+16AE0; [78 5E 79, 05, 05]
-169FF; [77 5C 52, 05, 05]
+16AE1; [78 5E 80, 05, 05]
-16A00; [77 5C 59, 05, 05]
+16AE2; [78 5E 87, 05, 05]
-16A01; [77 5C 60, 05, 05]
+16AE3; [78 5E 8E, 05, 05]
-16A02; [77 5C 67, 05, 05]
+16AE4; [78 5E 95, 05, 05]
-16A03; [77 5C 6E, 05, 05]
+16AE5; [78 5E 9C, 05, 05]
-16A04; [77 5C 75, 05, 05]
+16AE6; [78 5E A3, 05, 05]
-16A05; [77 5C 7C, 05, 05]
+16AE7; [78 5E AA, 05, 05]
-16A06; [77 5C 83, 05, 05]
+16AE8; [78 5E B1, 05, 05]
-16A07; [77 5C 8A, 05, 05]
+16AE9; [78 5E B8, 05, 05]
-16A08; [77 5C 91, 05, 05]
+16AEA; [78 5E BF, 05, 05]
-16A09; [77 5C 98, 05, 05]
+16AEB; [78 5E C6, 05, 05]
-16A0A; [77 5C 9F, 05, 05]
+16AEC; [78 5E CD, 05, 05]
-16A0B; [77 5C A6, 05, 05]
+16AED; [78 5E D4, 05, 05]
-16A0C; [77 5C AD, 05, 05]
+FDD1 1E802; [78 5F 02, 05, 05] # Mende_Kikakui first primary (compressible)
-16A0D; [77 5C B4, 05, 05]
+1E800; [78 5F 09, 05, 05]
-16A0E; [77 5C BB, 05, 05]
+1E801; [78 5F 10, 05, 05]
-16A0F; [77 5C C2, 05, 05]
+1E802; [78 5F 17, 05, 05]
-16A10; [77 5C C9, 05, 05]
+1E803; [78 5F 1E, 05, 05]
-16A11; [77 5C D0, 05, 05]
+1E804; [78 5F 25, 05, 05]
-16A12; [77 5C D7, 05, 05]
+1E805; [78 5F 2C, 05, 05]
-16A13; [77 5C DE, 05, 05]
+1E806; [78 5F 33, 05, 05]
-16A14; [77 5C E5, 05, 05]
+1E807; [78 5F 3A, 05, 05]
-16A15; [77 5C EC, 05, 05]
+1E808; [78 5F 41, 05, 05]
-16A16; [77 5C F3, 05, 05]
+1E809; [78 5F 48, 05, 05]
-16A17; [77 5C FA, 05, 05]
+1E80A; [78 5F 4F, 05, 05]
-16A18; [77 5D 03, 05, 05]
+1E80B; [78 5F 56, 05, 05]
-16A19; [77 5D 0A, 05, 05]
+1E80C; [78 5F 5D, 05, 05]
-16A1A; [77 5D 11, 05, 05]
+1E80D; [78 5F 64, 05, 05]
-16A1B; [77 5D 18, 05, 05]
+1E80E; [78 5F 6B, 05, 05]
-16A1C; [77 5D 1F, 05, 05]
+1E80F; [78 5F 72, 05, 05]
-16A1D; [77 5D 26, 05, 05]
+1E810; [78 5F 79, 05, 05]
-16A1E; [77 5D 2D, 05, 05]
+1E811; [78 5F 80, 05, 05]
-16A1F; [77 5D 34, 05, 05]
+1E812; [78 5F 87, 05, 05]
-16A20; [77 5D 3B, 05, 05]
+1E813; [78 5F 8E, 05, 05]
-16A21; [77 5D 42, 05, 05]
+1E814; [78 5F 95, 05, 05]
-16A22; [77 5D 49, 05, 05]
+1E815; [78 5F 9C, 05, 05]
-16A23; [77 5D 50, 05, 05]
+1E816; [78 5F A3, 05, 05]
-16A24; [77 5D 57, 05, 05]
+1E817; [78 5F AA, 05, 05]
-16A25; [77 5D 5E, 05, 05]
+1E818; [78 5F B1, 05, 05]
-16A26; [77 5D 65, 05, 05]
+1E819; [78 5F B8, 05, 05]
-16A27; [77 5D 6C, 05, 05]
+1E81A; [78 5F BF, 05, 05]
-16A28; [77 5D 73, 05, 05]
+1E81B; [78 5F C6, 05, 05]
-16A29; [77 5D 7A, 05, 05]
+1E81C; [78 5F CD, 05, 05]
-16A2A; [77 5D 81, 05, 05]
+1E81D; [78 5F D4, 05, 05]
-16A2B; [77 5D 88, 05, 05]
+1E81E; [78 5F DB, 05, 05]
-16A2C; [77 5D 8F, 05, 05]
+1E81F; [78 5F E2, 05, 05]
-16A2D; [77 5D 96, 05, 05]
+1E820; [78 5F E9, 05, 05]
-16A2E; [77 5D 9D, 05, 05]
+1E821; [78 5F F0, 05, 05]
-16A2F; [77 5D A4, 05, 05]
+1E822; [78 5F F7, 05, 05]
-16A30; [77 5D AB, 05, 05]
+1E823; [78 5F FE, 05, 05]
-16A31; [77 5D B2, 05, 05]
+1E824; [78 60 07, 05, 05]
-16A32; [77 5D B9, 05, 05]
+1E825; [78 60 0E, 05, 05]
-16A33; [77 5D C0, 05, 05]
+1E826; [78 60 15, 05, 05]
-16A34; [77 5D C7, 05, 05]
+1E827; [78 60 1C, 05, 05]
-16A35; [77 5D CE, 05, 05]
+1E828; [78 60 23, 05, 05]
-16A36; [77 5D D5, 05, 05]
+1E829; [78 60 2A, 05, 05]
-16A37; [77 5D DC, 05, 05]
+1E82A; [78 60 31, 05, 05]
-16A38; [77 5D E3, 05, 05]
+1E82B; [78 60 38, 05, 05]
-FDD1 16AE6; [77 5E 02, 05, 05] # Bassa_Vah first primary (compressible)
+1E82C; [78 60 3F, 05, 05]
-16AD0; [77 5E 09, 05, 05]
+1E82D; [78 60 46, 05, 05]
-16AD1; [77 5E 10, 05, 05]
+1E82E; [78 60 4D, 05, 05]
-16AD2; [77 5E 17, 05, 05]
+1E82F; [78 60 54, 05, 05]
-16AD3; [77 5E 1E, 05, 05]
+1E830; [78 60 5B, 05, 05]
-16AD4; [77 5E 25, 05, 05]
+1E831; [78 60 62, 05, 05]
-16AD5; [77 5E 2C, 05, 05]
+1E832; [78 60 69, 05, 05]
-16AD6; [77 5E 33, 05, 05]
+1E833; [78 60 70, 05, 05]
-16AD7; [77 5E 3A, 05, 05]
+1E834; [78 60 77, 05, 05]
-16AD8; [77 5E 41, 05, 05]
+1E835; [78 60 7E, 05, 05]
-16AD9; [77 5E 48, 05, 05]
+1E836; [78 60 85, 05, 05]
-16ADA; [77 5E 4F, 05, 05]
+1E837; [78 60 8C, 05, 05]
-16ADB; [77 5E 56, 05, 05]
+1E838; [78 60 93, 05, 05]
-16ADC; [77 5E 5D, 05, 05]
+1E839; [78 60 9A, 05, 05]
-16ADD; [77 5E 64, 05, 05]
+1E83A; [78 60 A1, 05, 05]
-16ADE; [77 5E 6B, 05, 05]
+1E83B; [78 60 A8, 05, 05]
-16ADF; [77 5E 72, 05, 05]
+1E83C; [78 60 AF, 05, 05]
-16AE0; [77 5E 79, 05, 05]
+1E83D; [78 60 B6, 05, 05]
-16AE1; [77 5E 80, 05, 05]
+1E83E; [78 60 BD, 05, 05]
-16AE2; [77 5E 87, 05, 05]
+1E83F; [78 60 C4, 05, 05]
-16AE3; [77 5E 8E, 05, 05]
+1E840; [78 60 CB, 05, 05]
-16AE4; [77 5E 95, 05, 05]
+1E841; [78 60 D2, 05, 05]
-16AE5; [77 5E 9C, 05, 05]
+1E842; [78 60 D9, 05, 05]
-16AE6; [77 5E A3, 05, 05]
+1E843; [78 60 E0, 05, 05]
-16AE7; [77 5E AA, 05, 05]
+1E844; [78 60 E7, 05, 05]
-16AE8; [77 5E B1, 05, 05]
+1E845; [78 60 EE, 05, 05]
-16AE9; [77 5E B8, 05, 05]
+1E846; [78 60 F5, 05, 05]
-16AEA; [77 5E BF, 05, 05]
+1E847; [78 60 FC, 05, 05]
-16AEB; [77 5E C6, 05, 05]
+1E848; [78 61 05, 05, 05]
-16AEC; [77 5E CD, 05, 05]
+1E849; [78 61 0C, 05, 05]
-16AED; [77 5E D4, 05, 05]
+1E84A; [78 61 13, 05, 05]
-FDD1 1E802; [77 5F 02, 05, 05] # Mende_Kikakui first primary (compressible)
+1E84B; [78 61 1A, 05, 05]
-1E800; [77 5F 09, 05, 05]
+1E84C; [78 61 21, 05, 05]
-1E801; [77 5F 10, 05, 05]
+1E84D; [78 61 28, 05, 05]
-1E802; [77 5F 17, 05, 05]
+1E84E; [78 61 2F, 05, 05]
-1E803; [77 5F 1E, 05, 05]
+1E84F; [78 61 36, 05, 05]
-1E804; [77 5F 25, 05, 05]
+1E850; [78 61 3D, 05, 05]
-1E805; [77 5F 2C, 05, 05]
+1E851; [78 61 44, 05, 05]
-1E806; [77 5F 33, 05, 05]
+1E852; [78 61 4B, 05, 05]
-1E807; [77 5F 3A, 05, 05]
+1E853; [78 61 52, 05, 05]
-1E808; [77 5F 41, 05, 05]
+1E854; [78 61 59, 05, 05]
-1E809; [77 5F 48, 05, 05]
+1E855; [78 61 60, 05, 05]
-1E80A; [77 5F 4F, 05, 05]
+1E856; [78 61 67, 05, 05]
-1E80B; [77 5F 56, 05, 05]
+1E857; [78 61 6E, 05, 05]
-1E80C; [77 5F 5D, 05, 05]
+1E858; [78 61 75, 05, 05]
-1E80D; [77 5F 64, 05, 05]
+1E859; [78 61 7C, 05, 05]
-1E80E; [77 5F 6B, 05, 05]
+1E85A; [78 61 83, 05, 05]
-1E80F; [77 5F 72, 05, 05]
+1E85B; [78 61 8A, 05, 05]
-1E810; [77 5F 79, 05, 05]
+1E85C; [78 61 91, 05, 05]
-1E811; [77 5F 80, 05, 05]
+1E85D; [78 61 98, 05, 05]
-1E812; [77 5F 87, 05, 05]
+1E85E; [78 61 9F, 05, 05]
-1E813; [77 5F 8E, 05, 05]
+1E85F; [78 61 A6, 05, 05]
-1E814; [77 5F 95, 05, 05]
+1E860; [78 61 AD, 05, 05]
-1E815; [77 5F 9C, 05, 05]
+1E861; [78 61 B4, 05, 05]
-1E816; [77 5F A3, 05, 05]
+1E862; [78 61 BB, 05, 05]
-1E817; [77 5F AA, 05, 05]
+1E863; [78 61 C2, 05, 05]
-1E818; [77 5F B1, 05, 05]
+1E864; [78 61 C9, 05, 05]
-1E819; [77 5F B8, 05, 05]
+1E865; [78 61 D0, 05, 05]
-1E81A; [77 5F BF, 05, 05]
+1E866; [78 61 D7, 05, 05]
-1E81B; [77 5F C6, 05, 05]
+1E867; [78 61 DE, 05, 05]
-1E81C; [77 5F CD, 05, 05]
+1E868; [78 61 E5, 05, 05]
-1E81D; [77 5F D4, 05, 05]
+1E869; [78 61 EC, 05, 05]
-1E81E; [77 5F DB, 05, 05]
+1E86A; [78 61 F3, 05, 05]
-1E81F; [77 5F E2, 05, 05]
+1E86B; [78 61 FA, 05, 05]
-1E820; [77 5F E9, 05, 05]
+1E86C; [78 62 03, 05, 05]
-1E821; [77 5F F0, 05, 05]
+1E86D; [78 62 0A, 05, 05]
-1E822; [77 5F F7, 05, 05]
+1E86E; [78 62 11, 05, 05]
-1E823; [77 5F FE, 05, 05]
+1E86F; [78 62 18, 05, 05]
-1E824; [77 60 07, 05, 05]
+1E870; [78 62 1F, 05, 05]
-1E825; [77 60 0E, 05, 05]
+1E871; [78 62 26, 05, 05]
-1E826; [77 60 15, 05, 05]
+1E872; [78 62 2D, 05, 05]
-1E827; [77 60 1C, 05, 05]
+1E873; [78 62 34, 05, 05]
-1E828; [77 60 23, 05, 05]
+1E874; [78 62 3B, 05, 05]
-1E829; [77 60 2A, 05, 05]
+1E875; [78 62 42, 05, 05]
-1E82A; [77 60 31, 05, 05]
+1E876; [78 62 49, 05, 05]
-1E82B; [77 60 38, 05, 05]
+1E877; [78 62 50, 05, 05]
-1E82C; [77 60 3F, 05, 05]
+1E878; [78 62 57, 05, 05]
-1E82D; [77 60 46, 05, 05]
+1E879; [78 62 5E, 05, 05]
-1E82E; [77 60 4D, 05, 05]
+1E87A; [78 62 65, 05, 05]
-1E82F; [77 60 54, 05, 05]
+1E87B; [78 62 6C, 05, 05]
-1E830; [77 60 5B, 05, 05]
+1E87C; [78 62 73, 05, 05]
-1E831; [77 60 62, 05, 05]
+1E87D; [78 62 7A, 05, 05]
-1E832; [77 60 69, 05, 05]
+1E87E; [78 62 81, 05, 05]
-1E833; [77 60 70, 05, 05]
+1E87F; [78 62 88, 05, 05]
-1E834; [77 60 77, 05, 05]
+1E880; [78 62 8F, 05, 05]
-1E835; [77 60 7E, 05, 05]
+1E881; [78 62 96, 05, 05]
-1E836; [77 60 85, 05, 05]
+1E882; [78 62 9D, 05, 05]
-1E837; [77 60 8C, 05, 05]
+1E883; [78 62 A4, 05, 05]
-1E838; [77 60 93, 05, 05]
+1E884; [78 62 AB, 05, 05]
-1E839; [77 60 9A, 05, 05]
+1E885; [78 62 B2, 05, 05]
-1E83A; [77 60 A1, 05, 05]
+1E886; [78 62 B9, 05, 05]
-1E83B; [77 60 A8, 05, 05]
+1E887; [78 62 C0, 05, 05]
-1E83C; [77 60 AF, 05, 05]
+1E888; [78 62 C7, 05, 05]
-1E83D; [77 60 B6, 05, 05]
+1E889; [78 62 CE, 05, 05]
-1E83E; [77 60 BD, 05, 05]
+1E88A; [78 62 D5, 05, 05]
-1E83F; [77 60 C4, 05, 05]
+1E88B; [78 62 DC, 05, 05]
-1E840; [77 60 CB, 05, 05]
+1E88C; [78 62 E3, 05, 05]
-1E841; [77 60 D2, 05, 05]
+1E88D; [78 62 EA, 05, 05]
-1E842; [77 60 D9, 05, 05]
+1E88E; [78 62 F1, 05, 05]
-1E843; [77 60 E0, 05, 05]
+1E88F; [78 62 F8, 05, 05]
-1E844; [77 60 E7, 05, 05]
+1E890; [78 62 FF, 05, 05]
-1E845; [77 60 EE, 05, 05]
+1E891; [78 63 08, 05, 05]
-1E846; [77 60 F5, 05, 05]
+1E892; [78 63 0F, 05, 05]
-1E847; [77 60 FC, 05, 05]
+1E893; [78 63 16, 05, 05]
-1E848; [77 61 05, 05, 05]
+1E894; [78 63 1D, 05, 05]
-1E849; [77 61 0C, 05, 05]
+1E895; [78 63 24, 05, 05]
-1E84A; [77 61 13, 05, 05]
+1E896; [78 63 2B, 05, 05]
-1E84B; [77 61 1A, 05, 05]
+1E897; [78 63 32, 05, 05]
-1E84C; [77 61 21, 05, 05]
+1E898; [78 63 39, 05, 05]
-1E84D; [77 61 28, 05, 05]
+1E899; [78 63 40, 05, 05]
-1E84E; [77 61 2F, 05, 05]
+1E89A; [78 63 47, 05, 05]
-1E84F; [77 61 36, 05, 05]
+1E89B; [78 63 4E, 05, 05]
-1E850; [77 61 3D, 05, 05]
+1E89C; [78 63 55, 05, 05]
-1E851; [77 61 44, 05, 05]
+1E89D; [78 63 5C, 05, 05]
-1E852; [77 61 4B, 05, 05]
+1E89E; [78 63 63, 05, 05]
-1E853; [77 61 52, 05, 05]
+1E89F; [78 63 6A, 05, 05]
-1E854; [77 61 59, 05, 05]
+1E8A0; [78 63 71, 05, 05]
-1E855; [77 61 60, 05, 05]
+1E8A1; [78 63 78, 05, 05]
-1E856; [77 61 67, 05, 05]
+1E8A2; [78 63 7F, 05, 05]
-1E857; [77 61 6E, 05, 05]
+1E8A3; [78 63 86, 05, 05]
-1E858; [77 61 75, 05, 05]
+1E8A4; [78 63 8D, 05, 05]
-1E859; [77 61 7C, 05, 05]
+1E8A5; [78 63 94, 05, 05]
-1E85A; [77 61 83, 05, 05]
+1E8A6; [78 63 9B, 05, 05]
-1E85B; [77 61 8A, 05, 05]
+1E8A7; [78 63 A2, 05, 05]
-1E85C; [77 61 91, 05, 05]
+1E8A8; [78 63 A9, 05, 05]
-1E85D; [77 61 98, 05, 05]
+1E8A9; [78 63 B0, 05, 05]
-1E85E; [77 61 9F, 05, 05]
+1E8AA; [78 63 B7, 05, 05]
-1E85F; [77 61 A6, 05, 05]
+1E8AB; [78 63 BE, 05, 05]
-1E860; [77 61 AD, 05, 05]
+1E8AC; [78 63 C5, 05, 05]
-1E861; [77 61 B4, 05, 05]
+1E8AD; [78 63 CC, 05, 05]
-1E862; [77 61 BB, 05, 05]
+1E8AE; [78 63 D3, 05, 05]
-1E863; [77 61 C2, 05, 05]
+1E8AF; [78 63 DA, 05, 05]
-1E864; [77 61 C9, 05, 05]
+1E8B0; [78 63 E1, 05, 05]
-1E865; [77 61 D0, 05, 05]
+1E8B1; [78 63 E8, 05, 05]
-1E866; [77 61 D7, 05, 05]
+1E8B2; [78 63 EF, 05, 05]
-1E867; [77 61 DE, 05, 05]
+1E8B3; [78 63 F6, 05, 05]
-1E868; [77 61 E5, 05, 05]
+1E8B4; [78 63 FD, 05, 05]
-1E869; [77 61 EC, 05, 05]
+1E8B5; [78 64 06, 05, 05]
-1E86A; [77 61 F3, 05, 05]
+1E8B6; [78 64 0D, 05, 05]
-1E86B; [77 61 FA, 05, 05]
+1E8B7; [78 64 14, 05, 05]
-1E86C; [77 62 03, 05, 05]
+1E8B8; [78 64 1B, 05, 05]
-1E86D; [77 62 0A, 05, 05]
+1E8B9; [78 64 22, 05, 05]
-1E86E; [77 62 11, 05, 05]
+1E8BA; [78 64 29, 05, 05]
-1E86F; [77 62 18, 05, 05]
+1E8BB; [78 64 30, 05, 05]
-1E870; [77 62 1F, 05, 05]
+1E8BC; [78 64 37, 05, 05]
-1E871; [77 62 26, 05, 05]
+1E8BD; [78 64 3E, 05, 05]
-1E872; [77 62 2D, 05, 05]
+1E8BE; [78 64 45, 05, 05]
-1E873; [77 62 34, 05, 05]
+1E8BF; [78 64 4C, 05, 05]
-1E874; [77 62 3B, 05, 05]
+1E8C0; [78 64 53, 05, 05]
-1E875; [77 62 42, 05, 05]
+1E8C1; [78 64 5A, 05, 05]
-1E876; [77 62 49, 05, 05]
+1E8C2; [78 64 61, 05, 05]
-1E877; [77 62 50, 05, 05]
+1E8C3; [78 64 68, 05, 05]
-1E878; [77 62 57, 05, 05]
+1E8C4; [78 64 6F, 05, 05]
-1E879; [77 62 5E, 05, 05]
+FDD1 16E40; [78 65 02, 05, 05] # Medefaidrin first primary (compressible)
-1E87A; [77 62 65, 05, 05]
+16E60; [78 67, 05, 05]
+16E40; [78 67, 05, A0]
-1E87B; [77 62 6C, 05, 05]
+16E61; [78 69, 05, 05]
+16E41; [78 69, 05, A0]
-1E87C; [77 62 73, 05, 05]
+16E62; [78 6B, 05, 05]
+16E42; [78 6B, 05, A0]
-1E87D; [77 62 7A, 05, 05]
+16E63; [78 6D, 05, 05]
+16E43; [78 6D, 05, A0]
-1E87E; [77 62 81, 05, 05]
+16E64; [78 6F, 05, 05]
+16E44; [78 6F, 05, A0]
-1E87F; [77 62 88, 05, 05]
+16E65; [78 71, 05, 05]
+16E45; [78 71, 05, A0]
-1E880; [77 62 8F, 05, 05]
+16E66; [78 73, 05, 05]
+16E46; [78 73, 05, A0]
-1E881; [77 62 96, 05, 05]
+16E67; [78 75, 05, 05]
+16E47; [78 75, 05, A0]
-1E882; [77 62 9D, 05, 05]
+16E68; [78 77, 05, 05]
+16E48; [78 77, 05, A0]
-1E883; [77 62 A4, 05, 05]
+16E69; [78 79, 05, 05]
+16E49; [78 79, 05, A0]
-1E884; [77 62 AB, 05, 05]
+16E6A; [78 7B, 05, 05]
+16E4A; [78 7B, 05, A0]
-1E885; [77 62 B2, 05, 05]
+16E6B; [78 7D, 05, 05]
+16E4B; [78 7D, 05, A0]
-1E886; [77 62 B9, 05, 05]
+16E6C; [78 7F, 05, 05]
+16E4C; [78 7F, 05, A0]
-1E887; [77 62 C0, 05, 05]
+16E6D; [78 81, 05, 05]
+16E4D; [78 81, 05, A0]
-1E888; [77 62 C7, 05, 05]
+16E6E; [78 83, 05, 05]
+16E4E; [78 83, 05, A0]
-1E889; [77 62 CE, 05, 05]
+16E6F; [78 85, 05, 05]
+16E4F; [78 85, 05, A0]
-1E88A; [77 62 D5, 05, 05]
+16E70; [78 87, 05, 05]
+16E50; [78 87, 05, A0]
-1E88B; [77 62 DC, 05, 05]
+16E71; [78 89, 05, 05]
+16E51; [78 89, 05, A0]
-1E88C; [77 62 E3, 05, 05]
+16E72; [78 8B, 05, 05]
+16E52; [78 8B, 05, A0]
-1E88D; [77 62 EA, 05, 05]
+16E73; [78 8D, 05, 05]
+16E53; [78 8D, 05, A0]
-1E88E; [77 62 F1, 05, 05]
+16E74; [78 8F, 05, 05]
+16E54; [78 8F, 05, A0]
-1E88F; [77 62 F8, 05, 05]
+16E75; [78 91, 05, 05]
+16E55; [78 91, 05, A0]
-1E890; [77 62 FF, 05, 05]
+16E76; [78 93, 05, 05]
+16E56; [78 93, 05, A0]
-1E891; [77 63 08, 05, 05]
+16E77; [78 95, 05, 05]
+16E57; [78 95, 05, A0]
-1E892; [77 63 0F, 05, 05]
+16E78; [78 97, 05, 05]
+16E58; [78 97, 05, A0]
-1E893; [77 63 16, 05, 05]
+16E79; [78 99, 05, 05]
+16E59; [78 99, 05, A0]
-1E894; [77 63 1D, 05, 05]
+16E7A; [78 9B, 05, 05]
+16E5A; [78 9B, 05, A0]
-1E895; [77 63 24, 05, 05]
+16E7B; [78 9D, 05, 05]
+16E5B; [78 9D, 05, A0]
-1E896; [77 63 2B, 05, 05]
+16E7C; [78 9F, 05, 05]
+16E5C; [78 9F, 05, A0]
-1E897; [77 63 32, 05, 05]
+16E7D; [78 A1, 05, 05]
+16E5D; [78 A1, 05, A0]
-1E898; [77 63 39, 05, 05]
+16E7E; [78 A3, 05, 05]
+16E5E; [78 A3, 05, A0]
-1E899; [77 63 40, 05, 05]
+16E7F; [78 A5, 05, 05]
+16E5F; [78 A5, 05, A0]
-1E89A; [77 63 47, 05, 05]
+FDD1 1E909; [78 A7 02, 05, 05] # Adlam first primary (compressible)
-1E89B; [77 63 4E, 05, 05]
+1E922; [78 A9, 05, 05]
+1E900; [78 A9, 05, A0]
-1E89C; [77 63 55, 05, 05]
+1E923; [78 AB, 05, 05]
+1E901; [78 AB, 05, A0]
-1E89D; [77 63 5C, 05, 05]
+1E924; [78 AD, 05, 05]
+1E902; [78 AD, 05, A0]
-1E89E; [77 63 63, 05, 05]
+1E925; [78 AF, 05, 05]
+1E903; [78 AF, 05, A0]
-1E89F; [77 63 6A, 05, 05]
+1E926; [78 B1, 05, 05]
+1E904; [78 B1, 05, A0]
-1E8A0; [77 63 71, 05, 05]
+1E927; [78 B3, 05, 05]
+1E905; [78 B3, 05, A0]
-1E8A1; [77 63 78, 05, 05]
+1E928; [78 B5, 05, 05]
+1E906; [78 B5, 05, A0]
-1E8A2; [77 63 7F, 05, 05]
+1E929; [78 B7, 05, 05]
+1E907; [78 B7, 05, A0]
-1E8A3; [77 63 86, 05, 05]
+1E92A; [78 B9, 05, 05]
+1E908; [78 B9, 05, A0]
-1E8A4; [77 63 8D, 05, 05]
+1E92B; [78 BB, 05, 05]
+1E909; [78 BB, 05, A0]
-1E8A5; [77 63 94, 05, 05]
+1E92C; [78 BD, 05, 05]
+1E90A; [78 BD, 05, A0]
-1E8A6; [77 63 9B, 05, 05]
+1E92D; [78 BF, 05, 05]
+1E90B; [78 BF, 05, A0]
-1E8A7; [77 63 A2, 05, 05]
+1E92E; [78 C1, 05, 05]
+1E90C; [78 C1, 05, A0]
-1E8A8; [77 63 A9, 05, 05]
+1E92F; [78 C3, 05, 05]
+1E90D; [78 C3, 05, A0]
-1E8A9; [77 63 B0, 05, 05]
+1E930; [78 C5, 05, 05]
+1E90E; [78 C5, 05, A0]
-1E8AA; [77 63 B7, 05, 05]
+1E931; [78 C7, 05, 05]
+1E90F; [78 C7, 05, A0]
-1E8AB; [77 63 BE, 05, 05]
+1E932; [78 C9, 05, 05]
+1E910; [78 C9, 05, A0]
-1E8AC; [77 63 C5, 05, 05]
+1E933; [78 CB, 05, 05]
+1E911; [78 CB, 05, A0]
-1E8AD; [77 63 CC, 05, 05]
+1E934; [78 CD, 05, 05]
+1E912; [78 CD, 05, A0]
-1E8AE; [77 63 D3, 05, 05]
+1E935; [78 CF, 05, 05]
+1E913; [78 CF, 05, A0]
-1E8AF; [77 63 DA, 05, 05]
+1E936; [78 D1, 05, 05]
+1E914; [78 D1, 05, A0]
-1E8B0; [77 63 E1, 05, 05]
+1E937; [78 D3, 05, 05]
+1E915; [78 D3, 05, A0]
-1E8B1; [77 63 E8, 05, 05]
+1E938; [78 D5, 05, 05]
+1E916; [78 D5, 05, A0]
-1E8B2; [77 63 EF, 05, 05]
+1E939; [78 D7, 05, 05]
+1E917; [78 D7, 05, A0]
-1E8B3; [77 63 F6, 05, 05]
+1E93A; [78 D9, 05, 05]
+1E918; [78 D9, 05, A0]
-1E8B4; [77 63 FD, 05, 05]
+1E93B; [78 DB, 05, 05]
+1E919; [78 DB, 05, A0]
-1E8B5; [77 64 06, 05, 05]
+1E93C; [78 DD, 05, 05]
+1E91A; [78 DD, 05, A0]
-1E8B6; [77 64 0D, 05, 05]
+1E93D; [78 DF, 05, 05]
+1E91B; [78 DF, 05, A0]
-1E8B7; [77 64 14, 05, 05]
+1E93E; [78 E1, 05, 05]
+1E91C; [78 E1, 05, A0]
-1E8B8; [77 64 1B, 05, 05]
+1E93F; [78 E3, 05, 05]
+1E91D; [78 E3, 05, A0]
-1E8B9; [77 64 22, 05, 05]
+1E940; [78 E5, 05, 05]
+1E91E; [78 E5, 05, A0]
-1E8BA; [77 64 29, 05, 05]
+1E941; [78 E7, 05, 05]
+1E91F; [78 E7, 05, A0]
-1E8BB; [77 64 30, 05, 05]
+1E942; [78 E9, 05, 05]
+1E920; [78 E9, 05, A0]
-1E8BC; [77 64 37, 05, 05]
+1E943; [78 EB, 05, 05]
+1E921; [78 EB, 05, A0]
-1E8BD; [77 64 3E, 05, 05]
+FDD1 AC00; [79 04 02, 05, 05] # HANGUL first primary starts new lead byte (compressible)
-1E8BE; [77 64 45, 05, 05]
+1100; [79 06, 05, 05]
+3131; [79 06, 05, 10]
+3260; [79 06, 05, 1E]
+FFA1; [79 06, 05, AC]
+326E; [79 06, 05, 1E][79 67, 05, 1E]
-1E8BF; [77 64 4C, 05, 05]
+1101; [79 08, 05, 05]
+3132; [79 08, 05, 20]
+FFA2; [79 08, 05, AE]
-1E8C0; [77 64 53, 05, 05]
+1102; [79 0A, 05, 05]
+3134; [79 0A, 05, 10]
+3261; [79 0A, 05, 1E]
+FFA4; [79 0A, 05, AC]
+326F; [79 0A, 05, 1E][79 67, 05, 1E]
-1E8C1; [77 64 5A, 05, 05]
+1103; [79 0C, 05, 05]
+3137; [79 0C, 05, 10]
+3262; [79 0C, 05, 1E]
+FFA7; [79 0C, 05, AC]
+3270; [79 0C, 05, 1E][79 67, 05, 1E]
-1E8C2; [77 64 61, 05, 05]
+1104; [79 0E, 05, 05]
+3138; [79 0E, 05, 20]
+FFA8; [79 0E, 05, AE]
-1E8C3; [77 64 68, 05, 05]
+1105; [79 10, 05, 05]
+3139; [79 10, 05, 10]
+3263; [79 10, 05, 1E]
+FFA9; [79 10, 05, AC]
+3271; [79 10, 05, 1E][79 67, 05, 1E]
-1E8C4; [77 64 6F, 05, 05]
+1106; [79 12, 05, 05]
+3141; [79 12, 05, 10]
+3264; [79 12, 05, 1E]
+FFB1; [79 12, 05, AC]
+3272; [79 12, 05, 1E][79 67, 05, 1E]
-FDD1 1E909; [77 65 02, 05, 05] # Adlam first primary (compressible)
+1107; [79 14, 05, 05]
+3142; [79 14, 05, 10]
+3265; [79 14, 05, 1E]
+FFB2; [79 14, 05, AC]
+3273; [79 14, 05, 1E][79 67, 05, 1E]
-1E922; [77 67, 05, 05]
-1E900; [77 67, 05, A0]
+1108; [79 16, 05, 05]
+3143; [79 16, 05, 20]
+FFB3; [79 16, 05, AE]
-1E923; [77 69, 05, 05]
-1E901; [77 69, 05, A0]
+1109; [79 18, 05, 05]
+3145; [79 18, 05, 10]
+3266; [79 18, 05, 1E]
+FFB5; [79 18, 05, AC]
+3274; [79 18, 05, 1E][79 67, 05, 1E]
-1E924; [77 6B, 05, 05]
-1E902; [77 6B, 05, A0]
+110A; [79 1A, 05, 05]
+3146; [79 1A, 05, 20]
+FFB6; [79 1A, 05, AE]
-1E925; [77 6D, 05, 05]
-1E903; [77 6D, 05, A0]
+110B; [79 1C, 05, 05]
+3147; [79 1C, 05, 10]
+3267; [79 1C, 05, 1E]
+FFB7; [79 1C, 05, AC]
+3275; [79 1C, 05, 1E][79 67, 05, 1E]
+327E; [79 1C, 05, 1E][79 81, 05, 1E]
-1E926; [77 6F, 05, 05]
-1E904; [77 6F, 05, A0]
+110C; [79 1E, 05, 05]
+3148; [79 1E, 05, 10]
+3268; [79 1E, 05, 1E]
+FFB8; [79 1E, 05, AC]
+3276; [79 1E, 05, 1E][79 67, 05, 1E]
+327D; [79 1E, 05, 1E][79 81, 05, 1E][79 1C, 05, 1E][79 8D, 05, 1E]
-1E927; [77 71, 05, 05]
-1E905; [77 71, 05, A0]
+110D; [79 20, 05, 05]
+3149; [79 20, 05, 20]
+FFB9; [79 20, 05, AE]
-1E928; [77 73, 05, 05]
-1E906; [77 73, 05, A0]
+110E; [79 22, 05, 05]
+314A; [79 22, 05, 10]
+3269; [79 22, 05, 1E]
+FFBA; [79 22, 05, AC]
+3277; [79 22, 05, 1E][79 67, 05, 1E]
+327C; [79 22, 05, 1E][79 67, 05, 1E][79 D1, 05, 20][79 06, 05, 1E][79 77, 05, 1E]
-1E929; [77 75, 05, 05]
-1E907; [77 75, 05, A0]
+110F; [79 24, 05, 05]
+314B; [79 24, 05, 10]
+326A; [79 24, 05, 1E]
+FFBB; [79 24, 05, AC]
+3278; [79 24, 05, 1E][79 67, 05, 1E]
-1E92A; [77 77, 05, 05]
-1E908; [77 77, 05, A0]
+1110; [79 26, 05, 05]
+314C; [79 26, 05, 10]
+326B; [79 26, 05, 1E]
+FFBC; [79 26, 05, AC]
+3279; [79 26, 05, 1E][79 67, 05, 1E]
-1E92B; [77 79, 05, 05]
-1E909; [77 79, 05, A0]
+1111; [79 28, 05, 05]
+314D; [79 28, 05, 10]
+326C; [79 28, 05, 1E]
+FFBD; [79 28, 05, AC]
+327A; [79 28, 05, 1E][79 67, 05, 1E]
-1E92C; [77 7B, 05, 05]
-1E90A; [77 7B, 05, A0]
+1112; [79 2A, 05, 05]
+314E; [79 2A, 05, 10]
+326D; [79 2A, 05, 1E]
+FFBE; [79 2A, 05, AC]
+327B; [79 2A, 05, 1E][79 67, 05, 1E]
-1E92D; [77 7D, 05, 05]
-1E90B; [77 7D, 05, A0]
+1113; [79 2C, 05, 05]
-1E92E; [77 7F, 05, 05]
-1E90C; [77 7F, 05, A0]
+1114; [79 2E, 05, 05]
+3165; [79 2E, 05, 20]
-1E92F; [77 81, 05, 05]
-1E90D; [77 81, 05, A0]
+1115; [79 30, 05, 05]
+3166; [79 30, 05, 20]
-1E930; [77 83, 05, 05]
-1E90E; [77 83, 05, A0]
+1116; [79 32 02, 05, 05]
-1E931; [77 85, 05, 05]
-1E90F; [77 85, 05, A0]
+1117; [79 32 09, 05, 05]
-1E932; [77 87, 05, 05]
-1E910; [77 87, 05, A0]
+1118; [79 32 10, 05, 05]
-1E933; [77 89, 05, 05]
-1E911; [77 89, 05, A0]
+1119; [79 32 17, 05, 05]
-1E934; [77 8B, 05, 05]
-1E912; [77 8B, 05, A0]
+111A; [79 34, 05, 05]
+3140; [79 34, 05, 20]
+FFB0; [79 34, 05, AE]
-1E935; [77 8D, 05, 05]
-1E913; [77 8D, 05, A0]
+111B; [79 36, 05, 05]
-1E936; [77 8F, 05, 05]
-1E914; [77 8F, 05, A0]
+111C; [79 38, 05, 05]
+316E; [79 38, 05, 20]
-1E937; [77 91, 05, 05]
-1E915; [77 91, 05, A0]
+111D; [79 3A, 05, 05]
+3171; [79 3A, 05, 20]
-1E938; [77 93, 05, 05]
-1E916; [77 93, 05, A0]
+111E; [79 3C, 05, 05]
+3172; [79 3C, 05, 20]
-1E939; [77 95, 05, 05]
-1E917; [77 95, 05, A0]
+111F; [79 3E, 05, 05]
-1E93A; [77 97, 05, 05]
-1E918; [77 97, 05, A0]
+1120; [79 40, 05, 05]
+3173; [79 40, 05, 20]
-1E93B; [77 99, 05, 05]
-1E919; [77 99, 05, A0]
+1121; [79 42, 05, 05]
+3144; [79 42, 05, 20]
+FFB4; [79 42, 05, AE]
-1E93C; [77 9B, 05, 05]
-1E91A; [77 9B, 05, A0]
+1122; [79 44, 05, 05]
+3174; [79 44, 05, 20]
-1E93D; [77 9D, 05, 05]
-1E91B; [77 9D, 05, A0]
+1123; [79 46, 05, 05]
+3175; [79 46, 05, 20]
-1E93E; [77 9F, 05, 05]
-1E91C; [77 9F, 05, A0]
+1124; [79 48 02, 05, 05]
-1E93F; [77 A1, 05, 05]
-1E91D; [77 A1, 05, A0]
+1125; [79 48 09, 05, 05]
-1E940; [77 A3, 05, 05]
-1E91E; [77 A3, 05, A0]
+1126; [79 48 10, 05, 05]
-1E941; [77 A5, 05, 05]
-1E91F; [77 A5, 05, A0]
+1127; [79 4A, 05, 05]
+3176; [79 4A, 05, 20]
-1E942; [77 A7, 05, 05]
-1E920; [77 A7, 05, A0]
+1128; [79 4C, 05, 05]
-1E943; [77 A9, 05, 05]
-1E921; [77 A9, 05, A0]
+1129; [79 4E, 05, 05]
+3177; [79 4E, 05, 20]
-FDD1 AC00; [78 04 02, 05, 05] # HANGUL first primary starts new lead byte (compressible)
+112A; [79 50, 05, 05]
-1100; [78 06, 05, 05]
-3131; [78 06, 05, 10]
-3260; [78 06, 05, 1E]
-FFA1; [78 06, 05, AC]
-326E; [78 06, 05, 1E][78 67, 05, 1E]
+112B; [79 52, 05, 05]
+3178; [79 52, 05, 20]
-1101; [78 08, 05, 05]
-3132; [78 08, 05, 20]
-FFA2; [78 08, 05, AE]
+112C; [79 54, 05, 05]
+3179; [79 54, 05, 20]
-1102; [78 0A, 05, 05]
-3134; [78 0A, 05, 10]
-3261; [78 0A, 05, 1E]
-FFA4; [78 0A, 05, AC]
-326F; [78 0A, 05, 1E][78 67, 05, 1E]
+112D; [79 56, 05, 05]
+317A; [79 56, 05, 20]
-1103; [78 0C, 05, 05]
-3137; [78 0C, 05, 10]
-3262; [78 0C, 05, 1E]
-FFA7; [78 0C, 05, AC]
-3270; [78 0C, 05, 1E][78 67, 05, 1E]
+112E; [79 58, 05, 05]
+317B; [79 58, 05, 20]
-1104; [78 0E, 05, 05]
-3138; [78 0E, 05, 20]
-FFA8; [78 0E, 05, AE]
+112F; [79 5A, 05, 05]
+317C; [79 5A, 05, 20]
-1105; [78 10, 05, 05]
-3139; [78 10, 05, 10]
-3263; [78 10, 05, 1E]
-FFA9; [78 10, 05, AC]
-3271; [78 10, 05, 1E][78 67, 05, 1E]
+1130; [79 5C 02, 05, 05]
-1106; [78 12, 05, 05]
-3141; [78 12, 05, 10]
-3264; [78 12, 05, 1E]
-FFB1; [78 12, 05, AC]
-3272; [78 12, 05, 1E][78 67, 05, 1E]
+1131; [79 5C 09, 05, 05]
-1107; [78 14, 05, 05]
-3142; [78 14, 05, 10]
-3265; [78 14, 05, 1E]
-FFB2; [78 14, 05, AC]
-3273; [78 14, 05, 1E][78 67, 05, 1E]
+1132; [79 5C 10, 05, 05]
+317D; [79 5C 10, 05, 20]
-1108; [78 16, 05, 05]
-3143; [78 16, 05, 20]
-FFB3; [78 16, 05, AE]
+1133; [79 5C 17, 05, 05]
-1109; [78 18, 05, 05]
-3145; [78 18, 05, 10]
-3266; [78 18, 05, 1E]
-FFB5; [78 18, 05, AC]
-3274; [78 18, 05, 1E][78 67, 05, 1E]
+1134; [79 5C 1E, 05, 05]
-110A; [78 1A, 05, 05]
-3146; [78 1A, 05, 20]
-FFB6; [78 1A, 05, AE]
+1135; [79 5C 25, 05, 05]
-110B; [78 1C, 05, 05]
-3147; [78 1C, 05, 10]
-3267; [78 1C, 05, 1E]
-FFB7; [78 1C, 05, AC]
-3275; [78 1C, 05, 1E][78 67, 05, 1E]
-327E; [78 1C, 05, 1E][78 81, 05, 1E]
+1136; [79 5C 2C, 05, 05]
+317E; [79 5C 2C, 05, 20]
-110C; [78 1E, 05, 05]
-3148; [78 1E, 05, 10]
-3268; [78 1E, 05, 1E]
-FFB8; [78 1E, 05, AC]
-3276; [78 1E, 05, 1E][78 67, 05, 1E]
-327D; [78 1E, 05, 1E][78 81, 05, 1E][78 1C, 05, 1E][78 8D, 05, 1E]
+1137; [79 5C 33, 05, 05]
-110D; [78 20, 05, 05]
-3149; [78 20, 05, 20]
-FFB9; [78 20, 05, AE]
+1138; [79 5C 3A, 05, 05]
-110E; [78 22, 05, 05]
-314A; [78 22, 05, 10]
-3269; [78 22, 05, 1E]
-FFBA; [78 22, 05, AC]
-3277; [78 22, 05, 1E][78 67, 05, 1E]
-327C; [78 22, 05, 1E][78 67, 05, 1E][78 D1, 05, 20][78 06, 05, 1E][78 77, 05, 1E]
+1139; [79 5C 41, 05, 05]
-110F; [78 24, 05, 05]
-314B; [78 24, 05, 10]
-326A; [78 24, 05, 1E]
-FFBB; [78 24, 05, AC]
-3278; [78 24, 05, 1E][78 67, 05, 1E]
+113A; [79 5C 48, 05, 05]
-1110; [78 26, 05, 05]
-314C; [78 26, 05, 10]
-326B; [78 26, 05, 1E]
-FFBC; [78 26, 05, AC]
-3279; [78 26, 05, 1E][78 67, 05, 1E]
+113B; [79 5C 4F, 05, 05]
-1111; [78 28, 05, 05]
-314D; [78 28, 05, 10]
-326C; [78 28, 05, 1E]
-FFBD; [78 28, 05, AC]
-327A; [78 28, 05, 1E][78 67, 05, 1E]
+113C; [79 5C 56, 05, 05]
-1112; [78 2A, 05, 05]
-314E; [78 2A, 05, 10]
-326D; [78 2A, 05, 1E]
-FFBE; [78 2A, 05, AC]
-327B; [78 2A, 05, 1E][78 67, 05, 1E]
+113D; [79 5C 5D, 05, 05]
-1113; [78 2C, 05, 05]
+113E; [79 5C 64, 05, 05]
-1114; [78 2E, 05, 05]
-3165; [78 2E, 05, 20]
+113F; [79 5C 6B, 05, 05]
-1115; [78 30, 05, 05]
-3166; [78 30, 05, 20]
+1140; [79 5C 72, 05, 05]
+317F; [79 5C 72, 05, 20]
-1116; [78 32 02, 05, 05]
+1141; [79 5C 79, 05, 05]
-1117; [78 32 09, 05, 05]
+1142; [79 5C 80, 05, 05]
-1118; [78 32 10, 05, 05]
+1143; [79 5C 87, 05, 05]
-1119; [78 32 17, 05, 05]
+1144; [79 5C 8E, 05, 05]
-111A; [78 34, 05, 05]
-3140; [78 34, 05, 20]
-FFB0; [78 34, 05, AE]
+1145; [79 5C 95, 05, 05]
-111B; [78 36, 05, 05]
+1146; [79 5C 9C, 05, 05]
-111C; [78 38, 05, 05]
-316E; [78 38, 05, 20]
+1147; [79 5C A3, 05, 05]
+3180; [79 5C A3, 05, 20]
-111D; [78 3A, 05, 05]
-3171; [78 3A, 05, 20]
+1148; [79 5C AA, 05, 05]
-111E; [78 3C, 05, 05]
-3172; [78 3C, 05, 20]
+1149; [79 5C B1, 05, 05]
-111F; [78 3E, 05, 05]
+114A; [79 5C B8, 05, 05]
-1120; [78 40, 05, 05]
-3173; [78 40, 05, 20]
+114B; [79 5C BF, 05, 05]
-1121; [78 42, 05, 05]
-3144; [78 42, 05, 20]
-FFB4; [78 42, 05, AE]
+114C; [79 5C C6, 05, 05]
+3181; [79 5C C6, 05, 20]
-1122; [78 44, 05, 05]
-3174; [78 44, 05, 20]
+114D; [79 5C CD, 05, 05]
-1123; [78 46, 05, 05]
-3175; [78 46, 05, 20]
+114E; [79 5C D4, 05, 05]
-1124; [78 48 02, 05, 05]
+114F; [79 5C DB, 05, 05]
-1125; [78 48 09, 05, 05]
+1150; [79 5C E2, 05, 05]
-1126; [78 48 10, 05, 05]
+1151; [79 5C E9, 05, 05]
-1127; [78 4A, 05, 05]
-3176; [78 4A, 05, 20]
+1152; [79 5C F0, 05, 05]
-1128; [78 4C, 05, 05]
+1153; [79 5C F7, 05, 05]
-1129; [78 4E, 05, 05]
-3177; [78 4E, 05, 20]
+1154; [79 5C FE, 05, 05]
-112A; [78 50, 05, 05]
+1155; [79 5D 07, 05, 05]
-112B; [78 52, 05, 05]
-3178; [78 52, 05, 20]
+1156; [79 5D 0E, 05, 05]
-112C; [78 54, 05, 05]
-3179; [78 54, 05, 20]
+1157; [79 5F, 05, 05]
+3184; [79 5F, 05, 20]
-112D; [78 56, 05, 05]
-317A; [78 56, 05, 20]
+1158; [79 61, 05, 05]
+3185; [79 61, 05, 20]
-112E; [78 58, 05, 05]
-317B; [78 58, 05, 20]
+1159; [79 63, 05, 05]
+3186; [79 63, 05, 20]
-112F; [78 5A, 05, 05]
-317C; [78 5A, 05, 20]
+115A; [79 65 02, 05, 05]
-1130; [78 5C 02, 05, 05]
+115B; [79 65 09, 05, 05]
-1131; [78 5C 09, 05, 05]
+115C; [79 65 10, 05, 05]
-1132; [78 5C 10, 05, 05]
-317D; [78 5C 10, 05, 20]
+115D; [79 65 17, 05, 05]
-1133; [78 5C 17, 05, 05]
+115E; [79 65 1E, 05, 05]
-1134; [78 5C 1E, 05, 05]
+A960; [79 65 25, 05, 05]
-1135; [78 5C 25, 05, 05]
+A961; [79 65 2C, 05, 05]
-1136; [78 5C 2C, 05, 05]
-317E; [78 5C 2C, 05, 20]
+A962; [79 65 33, 05, 05]
-1137; [78 5C 33, 05, 05]
+A963; [79 65 3A, 05, 05]
-1138; [78 5C 3A, 05, 05]
+A964; [79 65 41, 05, 05]
-1139; [78 5C 41, 05, 05]
+A965; [79 65 48, 05, 05]
-113A; [78 5C 48, 05, 05]
+A966; [79 65 4F, 05, 05]
-113B; [78 5C 4F, 05, 05]
+A967; [79 65 56, 05, 05]
-113C; [78 5C 56, 05, 05]
+A968; [79 65 5D, 05, 05]
-113D; [78 5C 5D, 05, 05]
+A969; [79 65 64, 05, 05]
-113E; [78 5C 64, 05, 05]
+A96A; [79 65 6B, 05, 05]
-113F; [78 5C 6B, 05, 05]
+A96B; [79 65 72, 05, 05]
-1140; [78 5C 72, 05, 05]
-317F; [78 5C 72, 05, 20]
+A96C; [79 65 79, 05, 05]
-1141; [78 5C 79, 05, 05]
+A96D; [79 65 80, 05, 05]
-1142; [78 5C 80, 05, 05]
+A96E; [79 65 87, 05, 05]
-1143; [78 5C 87, 05, 05]
+A96F; [79 65 8E, 05, 05]
-1144; [78 5C 8E, 05, 05]
+A970; [79 65 95, 05, 05]
-1145; [78 5C 95, 05, 05]
+A971; [79 65 9C, 05, 05]
-1146; [78 5C 9C, 05, 05]
+A972; [79 65 A3, 05, 05]
-1147; [78 5C A3, 05, 05]
-3180; [78 5C A3, 05, 20]
+A973; [79 65 AA, 05, 05]
-1148; [78 5C AA, 05, 05]
+A974; [79 65 B1, 05, 05]
-1149; [78 5C B1, 05, 05]
+A975; [79 65 B8, 05, 05]
-114A; [78 5C B8, 05, 05]
+A976; [79 65 BF, 05, 05]
-114B; [78 5C BF, 05, 05]
+A977; [79 65 C6, 05, 05]
-114C; [78 5C C6, 05, 05]
-3181; [78 5C C6, 05, 20]
+A978; [79 65 CD, 05, 05]
-114D; [78 5C CD, 05, 05]
+A979; [79 65 D4, 05, 05]
-114E; [78 5C D4, 05, 05]
+A97A; [79 65 DB, 05, 05]
-114F; [78 5C DB, 05, 05]
+A97B; [79 65 E2, 05, 05]
-1150; [78 5C E2, 05, 05]
+A97C; [79 65 E9, 05, 05]
-1151; [78 5C E9, 05, 05]
+115F; [79 65 F0, 05, 05]
-1152; [78 5C F0, 05, 05]
+1160; [79 65 F7, 05, 05]
+3164; [79 65 F7, 05, 20]
+FFA0; [79 65 F7, 05, AE]
-1153; [78 5C F7, 05, 05]
+1161; [79 67, 05, 05]
+314F; [79 67, 05, 10]
+FFC2; [79 67, 05, AC]
-1154; [78 5C FE, 05, 05]
+1162; [79 69, 05, 05]
+3150; [79 69, 05, 20]
+FFC3; [79 69, 05, AE]
-1155; [78 5D 07, 05, 05]
+1163; [79 6B, 05, 05]
+3151; [79 6B, 05, 20]
+FFC4; [79 6B, 05, AE]
-1156; [78 5D 0E, 05, 05]
+1164; [79 6D, 05, 05]
+3152; [79 6D, 05, 20]
+FFC5; [79 6D, 05, AE]
-1157; [78 5F, 05, 05]
-3184; [78 5F, 05, 20]
+1165; [79 6F, 05, 05]
+3153; [79 6F, 05, 20]
+FFC6; [79 6F, 05, AE]
-1158; [78 61, 05, 05]
-3185; [78 61, 05, 20]
+1166; [79 71, 05, 05]
+3154; [79 71, 05, 20]
+FFC7; [79 71, 05, AE]
-1159; [78 63, 05, 05]
-3186; [78 63, 05, 20]
+1167; [79 73, 05, 05]
+3155; [79 73, 05, 20]
+FFCA; [79 73, 05, AE]
-115A; [78 65 02, 05, 05]
+1168; [79 75, 05, 05]
+3156; [79 75, 05, 20]
+FFCB; [79 75, 05, AE]
-115B; [78 65 09, 05, 05]
+1169; [79 77, 05, 05]
+3157; [79 77, 05, 10]
+FFCC; [79 77, 05, AC]
-115C; [78 65 10, 05, 05]
+116A; [79 79, 05, 05]
+3158; [79 79, 05, 20]
+FFCD; [79 79, 05, AE]
-115D; [78 65 17, 05, 05]
+116B; [79 7B, 05, 05]
+3159; [79 7B, 05, 20]
+FFCE; [79 7B, 05, AE]
-115E; [78 65 1E, 05, 05]
+116C; [79 7D, 05, 05]
+315A; [79 7D, 05, 20]
+FFCF; [79 7D, 05, AE]
-A960; [78 65 25, 05, 05]
+116D; [79 7F, 05, 05]
+315B; [79 7F, 05, 20]
+FFD2; [79 7F, 05, AE]
-A961; [78 65 2C, 05, 05]
+116E; [79 81, 05, 05]
+315C; [79 81, 05, 10]
+FFD3; [79 81, 05, AC]
-A962; [78 65 33, 05, 05]
+116F; [79 83, 05, 05]
+315D; [79 83, 05, 20]
+FFD4; [79 83, 05, AE]
-A963; [78 65 3A, 05, 05]
+1170; [79 85, 05, 05]
+315E; [79 85, 05, 20]
+FFD5; [79 85, 05, AE]
-A964; [78 65 41, 05, 05]
+1171; [79 87, 05, 05]
+315F; [79 87, 05, 20]
+FFD6; [79 87, 05, AE]
-A965; [78 65 48, 05, 05]
+1172; [79 89, 05, 05]
+3160; [79 89, 05, 20]
+FFD7; [79 89, 05, AE]
-A966; [78 65 4F, 05, 05]
+1173; [79 8B, 05, 05]
+3161; [79 8B, 05, 20]
+FFDA; [79 8B, 05, AE]
-A967; [78 65 56, 05, 05]
+1174; [79 8D, 05, 05]
+3162; [79 8D, 05, 10]
+FFDB; [79 8D, 05, AC]
-A968; [78 65 5D, 05, 05]
+1175; [79 8F, 05, 05]
+3163; [79 8F, 05, 20]
+FFDC; [79 8F, 05, AE]
-A969; [78 65 64, 05, 05]
+1176; [79 91 02, 05, 05]
-A96A; [78 65 6B, 05, 05]
+1177; [79 91 09, 05, 05]
-A96B; [78 65 72, 05, 05]
+1178; [79 91 10, 05, 05]
-A96C; [78 65 79, 05, 05]
+1179; [79 91 17, 05, 05]
-A96D; [78 65 80, 05, 05]
+117A; [79 91 1E, 05, 05]
-A96E; [78 65 87, 05, 05]
+117B; [79 91 25, 05, 05]
-A96F; [78 65 8E, 05, 05]
+117C; [79 91 2C, 05, 05]
-A970; [78 65 95, 05, 05]
+117D; [79 91 33, 05, 05]
-A971; [78 65 9C, 05, 05]
+117E; [79 91 3A, 05, 05]
-A972; [78 65 A3, 05, 05]
+117F; [79 91 41, 05, 05]
-A973; [78 65 AA, 05, 05]
+1180; [79 91 48, 05, 05]
-A974; [78 65 B1, 05, 05]
+1181; [79 91 4F, 05, 05]
-A975; [78 65 B8, 05, 05]
+1182; [79 91 56, 05, 05]
-A976; [78 65 BF, 05, 05]
+1183; [79 91 5D, 05, 05]
-A977; [78 65 C6, 05, 05]
+1184; [79 93, 05, 05]
+3187; [79 93, 05, 20]
-A978; [78 65 CD, 05, 05]
+1185; [79 95, 05, 05]
+3188; [79 95, 05, 20]
-A979; [78 65 D4, 05, 05]
+1186; [79 97, 05, 05]
-A97A; [78 65 DB, 05, 05]
+1187; [79 99, 05, 05]
-A97B; [78 65 E2, 05, 05]
+1188; [79 9B, 05, 05]
+3189; [79 9B, 05, 20]
-A97C; [78 65 E9, 05, 05]
+1189; [79 9D 02, 05, 05]
-115F; [78 65 F0, 05, 05]
+118A; [79 9D 09, 05, 05]
-1160; [78 65 F7, 05, 05]
-3164; [78 65 F7, 05, 20]
-FFA0; [78 65 F7, 05, AE]
+118B; [79 9D 10, 05, 05]
-1161; [78 67, 05, 05]
-314F; [78 67, 05, 10]
-FFC2; [78 67, 05, AC]
+118C; [79 9D 17, 05, 05]
-1162; [78 69, 05, 05]
-3150; [78 69, 05, 20]
-FFC3; [78 69, 05, AE]
+118D; [79 9D 1E, 05, 05]
-1163; [78 6B, 05, 05]
-3151; [78 6B, 05, 20]
-FFC4; [78 6B, 05, AE]
+118E; [79 9D 25, 05, 05]
-1164; [78 6D, 05, 05]
-3152; [78 6D, 05, 20]
-FFC5; [78 6D, 05, AE]
+118F; [79 9D 2C, 05, 05]
-1165; [78 6F, 05, 05]
-3153; [78 6F, 05, 20]
-FFC6; [78 6F, 05, AE]
+1190; [79 9D 33, 05, 05]
-1166; [78 71, 05, 05]
-3154; [78 71, 05, 20]
-FFC7; [78 71, 05, AE]
+1191; [79 9F, 05, 05]
+318A; [79 9F, 05, 20]
-1167; [78 73, 05, 05]
-3155; [78 73, 05, 20]
-FFCA; [78 73, 05, AE]
+1192; [79 A1, 05, 05]
+318B; [79 A1, 05, 20]
-1168; [78 75, 05, 05]
-3156; [78 75, 05, 20]
-FFCB; [78 75, 05, AE]
+1193; [79 A3, 05, 05]
-1169; [78 77, 05, 05]
-3157; [78 77, 05, 10]
-FFCC; [78 77, 05, AC]
+1194; [79 A5, 05, 05]
+318C; [79 A5, 05, 20]
-116A; [78 79, 05, 05]
-3158; [78 79, 05, 20]
-FFCD; [78 79, 05, AE]
+1195; [79 A7 02, 05, 05]
-116B; [78 7B, 05, 05]
-3159; [78 7B, 05, 20]
-FFCE; [78 7B, 05, AE]
+1196; [79 A7 09, 05, 05]
-116C; [78 7D, 05, 05]
-315A; [78 7D, 05, 20]
-FFCF; [78 7D, 05, AE]
+1197; [79 A7 10, 05, 05]
-116D; [78 7F, 05, 05]
-315B; [78 7F, 05, 20]
-FFD2; [78 7F, 05, AE]
+1198; [79 A7 17, 05, 05]
-116E; [78 81, 05, 05]
-315C; [78 81, 05, 10]
-FFD3; [78 81, 05, AC]
+1199; [79 A7 1E, 05, 05]
-116F; [78 83, 05, 05]
-315D; [78 83, 05, 20]
-FFD4; [78 83, 05, AE]
+119A; [79 A7 25, 05, 05]
-1170; [78 85, 05, 05]
-315E; [78 85, 05, 20]
-FFD5; [78 85, 05, AE]
+119B; [79 A7 2C, 05, 05]
-1171; [78 87, 05, 05]
-315F; [78 87, 05, 20]
-FFD6; [78 87, 05, AE]
+119C; [79 A7 33, 05, 05]
-1172; [78 89, 05, 05]
-3160; [78 89, 05, 20]
-FFD7; [78 89, 05, AE]
+119D; [79 A7 3A, 05, 05]
-1173; [78 8B, 05, 05]
-3161; [78 8B, 05, 20]
-FFDA; [78 8B, 05, AE]
+119E; [79 A9, 05, 05]
+318D; [79 A9, 05, 20]
-1174; [78 8D, 05, 05]
-3162; [78 8D, 05, 10]
-FFDB; [78 8D, 05, AC]
+119F; [79 AB, 05, 05]
-1175; [78 8F, 05, 05]
-3163; [78 8F, 05, 20]
-FFDC; [78 8F, 05, AE]
+11A0; [79 AD, 05, 05]
-1176; [78 91 02, 05, 05]
+11A1; [79 AF, 05, 05]
+318E; [79 AF, 05, 20]
-1177; [78 91 09, 05, 05]
+11A2; [79 B1 02, 05, 05]
-1178; [78 91 10, 05, 05]
+11A3; [79 B1 09, 05, 05]
-1179; [78 91 17, 05, 05]
+11A4; [79 B1 10, 05, 05]
-117A; [78 91 1E, 05, 05]
+11A5; [79 B1 17, 05, 05]
-117B; [78 91 25, 05, 05]
+11A6; [79 B1 1E, 05, 05]
-117C; [78 91 2C, 05, 05]
+11A7; [79 B1 25, 05, 05]
-117D; [78 91 33, 05, 05]
+D7B0; [79 B1 2C, 05, 05]
-117E; [78 91 3A, 05, 05]
+D7B1; [79 B1 33, 05, 05]
-117F; [78 91 41, 05, 05]
+D7B2; [79 B1 3A, 05, 05]
-1180; [78 91 48, 05, 05]
+D7B3; [79 B1 41, 05, 05]
-1181; [78 91 4F, 05, 05]
+D7B4; [79 B1 48, 05, 05]
-1182; [78 91 56, 05, 05]
+D7B5; [79 B1 4F, 05, 05]
-1183; [78 91 5D, 05, 05]
+D7B6; [79 B1 56, 05, 05]
-1184; [78 93, 05, 05]
-3187; [78 93, 05, 20]
+D7B7; [79 B1 5D, 05, 05]
-1185; [78 95, 05, 05]
-3188; [78 95, 05, 20]
+D7B8; [79 B1 64, 05, 05]
-1186; [78 97, 05, 05]
+D7B9; [79 B1 6B, 05, 05]
-1187; [78 99, 05, 05]
+D7BA; [79 B1 72, 05, 05]
-1188; [78 9B, 05, 05]
-3189; [78 9B, 05, 20]
+D7BB; [79 B1 79, 05, 05]
-1189; [78 9D 02, 05, 05]
+D7BC; [79 B1 80, 05, 05]
-118A; [78 9D 09, 05, 05]
+D7BD; [79 B1 87, 05, 05]
-118B; [78 9D 10, 05, 05]
+D7BE; [79 B1 8E, 05, 05]
-118C; [78 9D 17, 05, 05]
+D7BF; [79 B1 95, 05, 05]
-118D; [78 9D 1E, 05, 05]
+D7C0; [79 B1 9C, 05, 05]
-118E; [78 9D 25, 05, 05]
+D7C1; [79 B1 A3, 05, 05]
-118F; [78 9D 2C, 05, 05]
+D7C2; [79 B1 AA, 05, 05]
-1190; [78 9D 33, 05, 05]
+D7C3; [79 B1 B1, 05, 05]
-1191; [78 9F, 05, 05]
-318A; [78 9F, 05, 20]
+D7C4; [79 B1 B8, 05, 05]
-1192; [78 A1, 05, 05]
-318B; [78 A1, 05, 20]
+D7C5; [79 B1 BF, 05, 05]
-1193; [78 A3, 05, 05]
+D7C6; [79 B1 C6, 05, 05]
-1194; [78 A5, 05, 05]
-318C; [78 A5, 05, 20]
+11A8; [79 B3, 05, 05]
-1195; [78 A7 02, 05, 05]
+11A9; [79 B5, 05, 05]
-1196; [78 A7 09, 05, 05]
+11AA; [79 B7, 05, 05]
+3133; [79 B7, 05, 20]
+FFA3; [79 B7, 05, AE]
-1197; [78 A7 10, 05, 05]
+11AB; [79 B9, 05, 05]
-1198; [78 A7 17, 05, 05]
+11AC; [79 BB, 05, 05]
+3135; [79 BB, 05, 20]
+FFA5; [79 BB, 05, AE]
-1199; [78 A7 1E, 05, 05]
+11AD; [79 BD, 05, 05]
+3136; [79 BD, 05, 20]
+FFA6; [79 BD, 05, AE]
-119A; [78 A7 25, 05, 05]
+11AE; [79 BF, 05, 05]
-119B; [78 A7 2C, 05, 05]
+11AF; [79 C1, 05, 05]
-119C; [78 A7 33, 05, 05]
+11B0; [79 C3, 05, 05]
+313A; [79 C3, 05, 20]
+FFAA; [79 C3, 05, AE]
-119D; [78 A7 3A, 05, 05]
+11B1; [79 C5, 05, 05]
+313B; [79 C5, 05, 20]
+FFAB; [79 C5, 05, AE]
-119E; [78 A9, 05, 05]
-318D; [78 A9, 05, 20]
+11B2; [79 C7, 05, 05]
+313C; [79 C7, 05, 20]
+FFAC; [79 C7, 05, AE]
-119F; [78 AB, 05, 05]
+11B3; [79 C9, 05, 05]
+313D; [79 C9, 05, 20]
+FFAD; [79 C9, 05, AE]
-11A0; [78 AD, 05, 05]
+11B4; [79 CB, 05, 05]
+313E; [79 CB, 05, 20]
+FFAE; [79 CB, 05, AE]
-11A1; [78 AF, 05, 05]
-318E; [78 AF, 05, 20]
+11B5; [79 CD, 05, 05]
+313F; [79 CD, 05, 20]
+FFAF; [79 CD, 05, AE]
-11A2; [78 B1 02, 05, 05]
+11B6; [79 CF, 05, 05]
-11A3; [78 B1 09, 05, 05]
+11B7; [79 D1, 05, 05]
-11A4; [78 B1 10, 05, 05]
+11B8; [79 D3, 05, 05]
-11A5; [78 B1 17, 05, 05]
+11B9; [79 D5, 05, 05]
-11A6; [78 B1 1E, 05, 05]
+11BA; [79 D7, 05, 05]
-11A7; [78 B1 25, 05, 05]
+11BB; [79 D9, 05, 05]
-D7B0; [78 B1 2C, 05, 05]
+11BC; [79 DB, 05, 05]
-D7B1; [78 B1 33, 05, 05]
+11BD; [79 DD, 05, 05]
-D7B2; [78 B1 3A, 05, 05]
+11BE; [79 DF, 05, 05]
-D7B3; [78 B1 41, 05, 05]
+11BF; [79 E1, 05, 05]
-D7B4; [78 B1 48, 05, 05]
+11C0; [79 E3, 05, 05]
-D7B5; [78 B1 4F, 05, 05]
+11C1; [79 E5, 05, 05]
-D7B6; [78 B1 56, 05, 05]
+11C2; [79 E7, 05, 05]
-D7B7; [78 B1 5D, 05, 05]
+11C3; [79 E9 02, 05, 05]
-D7B8; [78 B1 64, 05, 05]
+11C4; [79 E9 09, 05, 05]
-D7B9; [78 B1 6B, 05, 05]
+11C5; [79 E9 10, 05, 05]
-D7BA; [78 B1 72, 05, 05]
+11C6; [79 E9 17, 05, 05]
-D7BB; [78 B1 79, 05, 05]
+11C7; [79 EB, 05, 05]
+3167; [79 EB, 05, 20]
-D7BC; [78 B1 80, 05, 05]
+11C8; [79 ED, 05, 05]
+3168; [79 ED, 05, 20]
-D7BD; [78 B1 87, 05, 05]
+11C9; [79 EF 02, 05, 05]
-D7BE; [78 B1 8E, 05, 05]
+11CA; [79 EF 09, 05, 05]
-D7BF; [78 B1 95, 05, 05]
+11CB; [79 EF 10, 05, 05]
-D7C0; [78 B1 9C, 05, 05]
+11CC; [79 F1, 05, 05]
+3169; [79 F1, 05, 20]
-D7C1; [78 B1 A3, 05, 05]
+11CD; [79 F3, 05, 05]
-D7C2; [78 B1 AA, 05, 05]
+11CE; [79 F5, 05, 05]
+316A; [79 F5, 05, 20]
-D7C3; [78 B1 B1, 05, 05]
+11CF; [79 F7 02, 05, 05]
-D7C4; [78 B1 B8, 05, 05]
+11D0; [79 F7 09, 05, 05]
-D7C5; [78 B1 BF, 05, 05]
+11D1; [79 F7 10, 05, 05]
-D7C6; [78 B1 C6, 05, 05]
+11D2; [79 F7 17, 05, 05]
-11A8; [78 B3, 05, 05]
+11D3; [79 F7 1E, 05, 05]
+316B; [79 F7 1E, 05, 20]
-11A9; [78 B5, 05, 05]
+11D4; [79 F7 25, 05, 05]
-11AA; [78 B7, 05, 05]
-3133; [78 B7, 05, 20]
-FFA3; [78 B7, 05, AE]
+11D5; [79 F7 2C, 05, 05]
-11AB; [78 B9, 05, 05]
+11D6; [79 F7 33, 05, 05]
-11AC; [78 BB, 05, 05]
-3135; [78 BB, 05, 20]
-FFA5; [78 BB, 05, AE]
+11D7; [79 F7 3A, 05, 05]
+316C; [79 F7 3A, 05, 20]
-11AD; [78 BD, 05, 05]
-3136; [78 BD, 05, 20]
-FFA6; [78 BD, 05, AE]
+11D8; [79 F7 41, 05, 05]
-11AE; [78 BF, 05, 05]
+11D9; [79 F7 48, 05, 05]
+316D; [79 F7 48, 05, 20]
-11AF; [78 C1, 05, 05]
+11DA; [79 F7 4F, 05, 05]
-11B0; [78 C3, 05, 05]
-313A; [78 C3, 05, 20]
-FFAA; [78 C3, 05, AE]
+11DB; [79 F7 56, 05, 05]
-11B1; [78 C5, 05, 05]
-313B; [78 C5, 05, 20]
-FFAB; [78 C5, 05, AE]
+11DC; [79 F7 5D, 05, 05]
-11B2; [78 C7, 05, 05]
-313C; [78 C7, 05, 20]
-FFAC; [78 C7, 05, AE]
+11DD; [79 F7 64, 05, 05]
+316F; [79 F7 64, 05, 20]
-11B3; [78 C9, 05, 05]
-313D; [78 C9, 05, 20]
-FFAD; [78 C9, 05, AE]
+11DE; [79 F7 6B, 05, 05]
-11B4; [78 CB, 05, 05]
-313E; [78 CB, 05, 20]
-FFAE; [78 CB, 05, AE]
+11DF; [79 F7 72, 05, 05]
+3170; [79 F7 72, 05, 20]
-11B5; [78 CD, 05, 05]
-313F; [78 CD, 05, 20]
-FFAF; [78 CD, 05, AE]
+11E0; [79 F7 79, 05, 05]
-11B6; [78 CF, 05, 05]
+11E1; [79 F7 80, 05, 05]
-11B7; [78 D1, 05, 05]
+11E2; [79 F7 87, 05, 05]
-11B8; [78 D3, 05, 05]
+11E3; [79 F7 8E, 05, 05]
-11B9; [78 D5, 05, 05]
+11E4; [79 F7 95, 05, 05]
-11BA; [78 D7, 05, 05]
+11E5; [79 F7 9C, 05, 05]
-11BB; [78 D9, 05, 05]
+11E6; [79 F7 A3, 05, 05]
-11BC; [78 DB, 05, 05]
+11E7; [79 F7 AA, 05, 05]
-11BD; [78 DD, 05, 05]
+11E8; [79 F7 B1, 05, 05]
-11BE; [78 DF, 05, 05]
+11E9; [79 F7 B8, 05, 05]
-11BF; [78 E1, 05, 05]
+11EA; [79 F7 BF, 05, 05]
-11C0; [78 E3, 05, 05]
+11EB; [79 F7 C6, 05, 05]
-11C1; [78 E5, 05, 05]
+11EC; [79 F7 CD, 05, 05]
-11C2; [78 E7, 05, 05]
+11ED; [79 F7 D4, 05, 05]
-11C3; [78 E9 02, 05, 05]
+11EE; [79 F7 DB, 05, 05]
-11C4; [78 E9 09, 05, 05]
+11EF; [79 F7 E2, 05, 05]
-11C5; [78 E9 10, 05, 05]
+11F0; [79 F7 E9, 05, 05]
-11C6; [78 E9 17, 05, 05]
+11F1; [79 F7 F0, 05, 05]
+3182; [79 F7 F0, 05, 20]
-11C7; [78 EB, 05, 05]
-3167; [78 EB, 05, 20]
+11F2; [79 F7 F7, 05, 05]
+3183; [79 F7 F7, 05, 20]
-11C8; [78 ED, 05, 05]
-3168; [78 ED, 05, 20]
+11F3; [79 F7 FE, 05, 05]
-11C9; [78 EF 02, 05, 05]
+11F4; [79 F8 07, 05, 05]
-11CA; [78 EF 09, 05, 05]
+11F5; [79 F8 0E, 05, 05]
-11CB; [78 EF 10, 05, 05]
+11F6; [79 F8 15, 05, 05]
-11CC; [78 F1, 05, 05]
-3169; [78 F1, 05, 20]
+11F7; [79 F8 1C, 05, 05]
-11CD; [78 F3, 05, 05]
+11F8; [79 F8 23, 05, 05]
-11CE; [78 F5, 05, 05]
-316A; [78 F5, 05, 20]
+11F9; [79 F8 2A, 05, 05]
-11CF; [78 F7 02, 05, 05]
+11FA; [79 F8 31, 05, 05]
-11D0; [78 F7 09, 05, 05]
+11FB; [79 F8 38, 05, 05]
-11D1; [78 F7 10, 05, 05]
+11FC; [79 F8 3F, 05, 05]
-11D2; [78 F7 17, 05, 05]
+11FD; [79 F8 46, 05, 05]
-11D3; [78 F7 1E, 05, 05]
-316B; [78 F7 1E, 05, 20]
+11FE; [79 F8 4D, 05, 05]
-11D4; [78 F7 25, 05, 05]
+11FF; [79 F8 54, 05, 05]
-11D5; [78 F7 2C, 05, 05]
+D7CB; [79 F8 5B, 05, 05]
-11D6; [78 F7 33, 05, 05]
+D7CC; [79 F8 62, 05, 05]
-11D7; [78 F7 3A, 05, 05]
-316C; [78 F7 3A, 05, 20]
+D7CD; [79 F8 69, 05, 05]
-11D8; [78 F7 41, 05, 05]
+D7CE; [79 F8 70, 05, 05]
-11D9; [78 F7 48, 05, 05]
-316D; [78 F7 48, 05, 20]
+D7CF; [79 F8 77, 05, 05]
-11DA; [78 F7 4F, 05, 05]
+D7D0; [79 F8 7E, 05, 05]
-11DB; [78 F7 56, 05, 05]
+D7D1; [79 F8 85, 05, 05]
-11DC; [78 F7 5D, 05, 05]
+D7D2; [79 F8 8C, 05, 05]
-11DD; [78 F7 64, 05, 05]
-316F; [78 F7 64, 05, 20]
+D7D3; [79 F8 93, 05, 05]
-11DE; [78 F7 6B, 05, 05]
+D7D4; [79 F8 9A, 05, 05]
-11DF; [78 F7 72, 05, 05]
-3170; [78 F7 72, 05, 20]
+D7D5; [79 F8 A1, 05, 05]
-11E0; [78 F7 79, 05, 05]
+D7D6; [79 F8 A8, 05, 05]
-11E1; [78 F7 80, 05, 05]
+D7D7; [79 F8 AF, 05, 05]
-11E2; [78 F7 87, 05, 05]
+D7D8; [79 F8 B6, 05, 05]
-11E3; [78 F7 8E, 05, 05]
+D7D9; [79 F8 BD, 05, 05]
-11E4; [78 F7 95, 05, 05]
+D7DA; [79 F8 C4, 05, 05]
-11E5; [78 F7 9C, 05, 05]
+D7DB; [79 F8 CB, 05, 05]
-11E6; [78 F7 A3, 05, 05]
+D7DC; [79 F8 D2, 05, 05]
-11E7; [78 F7 AA, 05, 05]
+D7DD; [79 F8 D9, 05, 05]
-11E8; [78 F7 B1, 05, 05]
+D7DE; [79 F8 E0, 05, 05]
-11E9; [78 F7 B8, 05, 05]
+D7DF; [79 F8 E7, 05, 05]
-11EA; [78 F7 BF, 05, 05]
+D7E0; [79 F8 EE, 05, 05]
-11EB; [78 F7 C6, 05, 05]
+D7E1; [79 F8 F5, 05, 05]
-11EC; [78 F7 CD, 05, 05]
+D7E2; [79 F8 FC, 05, 05]
-11ED; [78 F7 D4, 05, 05]
+D7E3; [79 F9 05, 05, 05]
-11EE; [78 F7 DB, 05, 05]
+D7E4; [79 F9 0C, 05, 05]
-11EF; [78 F7 E2, 05, 05]
+D7E5; [79 F9 13, 05, 05]
-11F0; [78 F7 E9, 05, 05]
+D7E6; [79 F9 1A, 05, 05]
-11F1; [78 F7 F0, 05, 05]
-3182; [78 F7 F0, 05, 20]
+D7E7; [79 F9 21, 05, 05]
-11F2; [78 F7 F7, 05, 05]
-3183; [78 F7 F7, 05, 20]
+D7E8; [79 F9 28, 05, 05]
-11F3; [78 F7 FE, 05, 05]
+D7E9; [79 F9 2F, 05, 05]
-11F4; [78 F8 07, 05, 05]
+D7EA; [79 F9 36, 05, 05]
-11F5; [78 F8 0E, 05, 05]
+D7EB; [79 F9 3D, 05, 05]
-11F6; [78 F8 15, 05, 05]
+D7EC; [79 F9 44, 05, 05]
-11F7; [78 F8 1C, 05, 05]
+D7ED; [79 F9 4B, 05, 05]
-11F8; [78 F8 23, 05, 05]
+D7EE; [79 F9 52, 05, 05]
-11F9; [78 F8 2A, 05, 05]
+D7EF; [79 F9 59, 05, 05]
-11FA; [78 F8 31, 05, 05]
+D7F0; [79 F9 60, 05, 05]
-11FB; [78 F8 38, 05, 05]
+D7F1; [79 F9 67, 05, 05]
-11FC; [78 F8 3F, 05, 05]
+D7F2; [79 F9 6E, 05, 05]
-11FD; [78 F8 46, 05, 05]
+D7F3; [79 F9 75, 05, 05]
-11FE; [78 F8 4D, 05, 05]
+D7F4; [79 F9 7C, 05, 05]
-11FF; [78 F8 54, 05, 05]
+D7F5; [79 F9 83, 05, 05]
-D7CB; [78 F8 5B, 05, 05]
+D7F6; [79 F9 8A, 05, 05]
-D7CC; [78 F8 62, 05, 05]
+D7F7; [79 F9 91, 05, 05]
-D7CD; [78 F8 69, 05, 05]
+D7F8; [79 F9 98, 05, 05]
-D7CE; [78 F8 70, 05, 05]
+D7F9; [79 F9 9F, 05, 05]
-D7CF; [78 F8 77, 05, 05]
+D7FA; [79 F9 A6, 05, 05]
-D7D0; [78 F8 7E, 05, 05]
+D7FB; [79 F9 AD, 05, 05]
-D7D1; [78 F8 85, 05, 05]
+FDD1 304B; [7A 04 02, 05, 05] # HIRAGANA first primary starts new lead byte (compressible)
-D7D2; [78 F8 8C, 05, 05]
+FDD1 30AB; [7A 04 02, 05, 05] # KATAKANA first primary (compressible)
-D7D3; [78 F8 93, 05, 05]
+3041; [7A 06, 05, 03]
+3042; [7A 06, 05, 85]
+30A1; [7A 06, 05, 10]
+FF67; [7A 06, 05, 17]
+30A2; [7A 06, 05, 9E]
+FF71; [7A 06, 05, A5]
+32D0; [7A 06, 05, 2C]
+3303; [7A 06, 05, 33][0D 68, 05, 2E][7A 58, 05, 30]
+3300; [7A 06, 05, 33][7A 3A, 05, 30][, B0, 2E][0D 68, 05, 2E][7A 2E, 05, 33]
+3301; [7A 06, 05, 33][7A 58, 05, 30][7A 3E, 05, 30][7A 06, 05, 33]
+3302; [7A 06, 05, 33][7A 66, 05, 2C][7A 40, 05, 30][, B0, 2E][7A 06, 05, 33]
-D7D4; [78 F8 9A, 05, 05]
+3043; [7A 08, 05, 03]
+3044; [7A 08, 05, 85]
+30A3; [7A 08, 05, 10]
+FF68; [7A 08, 05, 17]
+30A4; [7A 08, 05, 9E]
+FF72; [7A 08, 05, A5]
+32D1; [7A 08, 05, 2C]
+3304; [7A 08, 05, 33][7A 32, 05, 31][7A 66, 05, 2C][7A 16, 05, 30][, AE, 2E]
+3305; [7A 08, 05, 33][7A 66, 05, 2C][7A 28, 05, 31]
-D7D5; [78 F8 A1, 05, 05]
+3045; [7A 0A, 05, 03]
+3046; [7A 0A, 05, 85]
+30A5; [7A 0A, 05, 10]
+FF69; [7A 0A, 05, 17]
+30A6; [7A 0A, 05, 9E]
+FF73; [7A 0A, 05, A5]
+32D2; [7A 0A, 05, 2C]
+3094; [7A 0A, 05, 85][, AE, 05]
+30F4; [7A 0A, 05, 9E][, AE, 05]
+3306; [7A 0A, 05, 33][7A 10, 05, 33][7A 66, 05, 2C]
+
+1B000; [7A 0C, 05, 85]
+
+3047; [7A 0E, 05, 03]
+3048; [7A 0E, 05, 85]
+30A7; [7A 0E, 05, 10]
+FF6A; [7A 0E, 05, 17]
+30A8; [7A 0E, 05, 9E]
+FF74; [7A 0E, 05, A5]
+32D3; [7A 0E, 05, 2C]
+3308; [7A 0E, 05, 33][0D 68, 05, 2E][7A 12, 05, 30][0D 68, 05, 2E]
+3307; [7A 0E, 05, 33][7A 20, 05, 30][7A 16, 05, 30][0D 68, 05, 2E][7A 2E, 05, 33][, AE, 2E]
+
+3049; [7A 10, 05, 03]
+304A; [7A 10, 05, 85]
+30A9; [7A 10, 05, 10]
+FF6B; [7A 10, 05, 17]
+30AA; [7A 10, 05, 9E]
+FF75; [7A 10, 05, A5]
+32D4; [7A 10, 05, 2C]
+330A; [7A 10, 05, 33][0D 68, 05, 2E][7A 48, 05, 30]
+3309; [7A 10, 05, 33][7A 66, 05, 2C][7A 20, 05, 30]
+
+3095; [7A 12, 05, 03]
+304B; [7A 12, 05, 85]
+30F5; [7A 12, 05, 10]
+30AB; [7A 12, 05, 98]
+FF76; [7A 12, 05, A0]
+32D5; [7A 12, 05, 28]
+304C; [7A 12, 05, 85][, AE, 05]
+30AC; [7A 12, 05, 98][, AE, 05]
+330B; [7A 12, 05, 30][7A 08, 05, 33][7A 56, 05, 33]
+330C; [7A 12, 05, 30][7A 54, 05, 30][7A 2A, 05, 33][7A 2E, 05, 33]
+330D; [7A 12, 05, 30][7A 5C, 05, 30][7A 56, 05, 33][0D 68, 05, 2E]
+330E; [7A 12, 05, 30][, AE, 2E][7A 5C, 05, 30][7A 66, 05, 2C]
+330F; [7A 12, 05, 30][, AE, 2E][7A 66, 05, 2C][7A 44, 05, 31]
+
+304D; [7A 14, 05, 85]
+30AD; [7A 14, 05, 90]
+FF77; [7A 14, 05, 9B]
+32D6; [7A 14, 05, 26]
+304E; [7A 14, 05, 85][, AE, 05]
+30AE; [7A 14, 05, 90][, AE, 05]
+3310; [7A 14, 05, 31][, AE, 2E][7A 12, 05, 30][, AE, 2E]
+3311; [7A 14, 05, 31][, AE, 2E][7A 32, 05, 31][0D 68, 05, 2E]
+3312; [7A 14, 05, 31][7A 50, 05, 33][7A 56, 05, 33][0D 68, 05, 2E]
+3313; [7A 14, 05, 31][, AE, 2E][7A 58, 05, 30][7A 26, 05, 31][, AE, 2E][0D 68, 05, 2E]
+3314; [7A 14, 05, 31][7A 5C, 05, 30]
+3315; [7A 14, 05, 31][7A 5C, 05, 30][7A 16, 05, 30][, AE, 2E][7A 54, 05, 30][7A 48, 05, 30]
+3316; [7A 14, 05, 31][7A 5C, 05, 30][7A 4A, 05, 31][0D 68, 05, 2E][7A 2E, 05, 33][7A 58, 05, 30]
+3317; [7A 14, 05, 31][7A 5C, 05, 30][7A 5E, 05, 30][7A 2A, 05, 33][7A 2E, 05, 33]
+
+304F; [7A 16, 05, 85]
+31F0; [7A 16, 05, 10]
+30AF; [7A 16, 05, 98]
+FF78; [7A 16, 05, A0]
+32D7; [7A 16, 05, 28]
+3050; [7A 16, 05, 85][, AE, 05]
+30B0; [7A 16, 05, 98][, AE, 05]
+3318; [7A 16, 05, 30][, AE, 2E][7A 54, 05, 30][7A 48, 05, 30]
+3319; [7A 16, 05, 30][, AE, 2E][7A 54, 05, 30][7A 48, 05, 30][7A 2E, 05, 33][7A 66, 05, 2C]
+331A; [7A 16, 05, 30][7A 58, 05, 30][7A 22, 05, 31][, AE, 2E][7A 08, 05, 33][7A 5C, 05, 30]
+331B; [7A 16, 05, 30][7A 5C, 05, 30][0D 68, 05, 2E][7A 36, 05, 31]
+
+3096; [7A 18, 05, 03]
+3051; [7A 18, 05, 85]
+30F6; [7A 18, 05, 10]
+30B1; [7A 18, 05, 98]
+FF79; [7A 18, 05, A0]
+32D8; [7A 18, 05, 28]
+3052; [7A 18, 05, 85][, AE, 05]
+30B2; [7A 18, 05, 98][, AE, 05]
+331C; [7A 18, 05, 30][0D 68, 05, 2E][7A 20, 05, 30]
+
+3053; [7A 1A, 05, 85]
+30B3; [7A 1A, 05, 90]
+FF7A; [7A 1A, 05, 98]
+32D9; [7A 1A, 05, 20]
+3054; [7A 1A, 05, 85][, AE, 05]
+30B4; [7A 1A, 05, 90][, AE, 05]
+331E; [7A 1A, 05, 30][0D 68, 05, 2E][7A 42, 05, 30][, B0, 2E]
+1F201; [7A 1A, 05, 30][7A 1A, 05, 30]
+30FF; [7A 1A, 05, 28][7A 2E, 05, 2C]
+331D; [7A 1A, 05, 30][7A 58, 05, 30][7A 30, 05, 31]
+
+3055; [7A 1C, 05, 85]
+30B5; [7A 1C, 05, 90]
+FF7B; [7A 1C, 05, 9B]
+32DA; [7A 1C, 05, 26]
+1F202; [7A 1C, 05, 31]
+3056; [7A 1C, 05, 85][, AE, 05]
+30B6; [7A 1C, 05, 90][, AE, 05]
+331F; [7A 1C, 05, 31][7A 08, 05, 33][7A 16, 05, 30][7A 58, 05, 30]
+3320; [7A 1C, 05, 31][7A 66, 05, 2C][7A 28, 05, 31][0D 68, 05, 2E][7A 48, 05, 30]
+
+3057; [7A 1E, 05, 85]
+31F1; [7A 1E, 05, 10]
+30B7; [7A 1E, 05, 98]
+FF7C; [7A 1E, 05, A0]
+32DB; [7A 1E, 05, 28]
+3058; [7A 1E, 05, 85][, AE, 05]
+30B8; [7A 1E, 05, 98][, AE, 05]
+3006; [7A 1E, 05, 03][7A 4A, 05, 03]
+3321; [7A 1E, 05, 30][7A 56, 05, 33][7A 66, 05, 2C][7A 16, 05, 30][, AE, 2E]
+
+3059; [7A 20, 05, 85]
+31F2; [7A 20, 05, 10]
+30B9; [7A 20, 05, 98]
+FF7D; [7A 20, 05, A0]
+32DC; [7A 20, 05, 28]
+305A; [7A 20, 05, 85][, AE, 05]
+30BA; [7A 20, 05, 98][, AE, 05]
+
+305B; [7A 22, 05, 85]
+30BB; [7A 22, 05, 90]
+FF7E; [7A 22, 05, 9B]
+32DD; [7A 22, 05, 26]
+305C; [7A 22, 05, 85][, AE, 05]
+30BC; [7A 22, 05, 90][, AE, 05]
+3322; [7A 22, 05, 31][7A 66, 05, 2C][7A 28, 05, 31]
+3323; [7A 22, 05, 31][7A 66, 05, 2C][7A 2E, 05, 33]
+
+305D; [7A 24, 05, 85]
+30BD; [7A 24, 05, 90]
+FF7F; [7A 24, 05, 9B]
+32DE; [7A 24, 05, 26]
+305E; [7A 24, 05, 85][, AE, 05]
+30BE; [7A 24, 05, 90][, AE, 05]
+
+305F; [7A 26, 05, 85]
+30BF; [7A 26, 05, 90]
+FF80; [7A 26, 05, 9B]
+32DF; [7A 26, 05, 26]
+3060; [7A 26, 05, 85][, AE, 05]
+30C0; [7A 26, 05, 90][, AE, 05]
+3324; [7A 26, 05, 31][, AE, 2E][0D 68, 05, 2E][7A 20, 05, 30]
+
+3061; [7A 28, 05, 85]
+30C1; [7A 28, 05, 90]
+FF81; [7A 28, 05, 9B]
+32E0; [7A 28, 05, 26]
+3062; [7A 28, 05, 85][, AE, 05]
+30C2; [7A 28, 05, 90][, AE, 05]
+
+3063; [7A 2A, 05, 03]
+3064; [7A 2A, 05, 85]
+30C3; [7A 2A, 05, 10]
+FF6F; [7A 2A, 05, 17]
+30C4; [7A 2A, 05, 9E]
+FF82; [7A 2A, 05, A5]
+32E1; [7A 2A, 05, 2C]
+3065; [7A 2A, 05, 85][, AE, 05]
+30C5; [7A 2A, 05, 9E][, AE, 05]
+
+3066; [7A 2C, 05, 85]
+30C6; [7A 2C, 05, 90]
+FF83; [7A 2C, 05, 9B]
+32E2; [7A 2C, 05, 26]
+3067; [7A 2C, 05, 85][, AE, 05]
+30C7; [7A 2C, 05, 90][, AE, 05]
+1F213; [7A 2C, 05, 31][, AE, 2E]
+3325; [7A 2C, 05, 31][, AE, 2E][7A 1E, 05, 30]
+
+3068; [7A 2E, 05, 85]
+31F3; [7A 2E, 05, 10]
+30C8; [7A 2E, 05, 97]
+FF84; [7A 2E, 05, 9E]
+32E3; [7A 2E, 05, 25]
+3069; [7A 2E, 05, 85][, AE, 05]
+30C9; [7A 2E, 05, 97][, AE, 05]
+3326; [7A 2E, 05, 33][, AE, 2E][7A 58, 05, 30]
+3327; [7A 2E, 05, 33][7A 66, 05, 2C]
+
+306A; [7A 30, 05, 85]
+30CA; [7A 30, 05, 90]
+FF85; [7A 30, 05, 9B]
+32E4; [7A 30, 05, 26]
+3328; [7A 30, 05, 31][7A 38, 05, 31]
+
+306B; [7A 32, 05, 85]
+30CB; [7A 32, 05, 90]
+FF86; [7A 32, 05, 9B]
+32E5; [7A 32, 05, 26]
+
+306C; [7A 34, 05, 85]
+31F4; [7A 34, 05, 10]
+30CC; [7A 34, 05, 9B]
+FF87; [7A 34, 05, A6]
+32E6; [7A 34, 05, 31]
+
+306D; [7A 36, 05, 85]
+30CD; [7A 36, 05, 90]
+FF88; [7A 36, 05, 9B]
+32E7; [7A 36, 05, 26]
+
+306E; [7A 38, 05, 85]
+30CE; [7A 38, 05, 90]
+FF89; [7A 38, 05, 9B]
+32E8; [7A 38, 05, 26]
+3329; [7A 38, 05, 31][7A 2A, 05, 33][7A 2E, 05, 33]
+
+306F; [7A 3A, 05, 85]
+31F5; [7A 3A, 05, 10]
+30CF; [7A 3A, 05, 98]
+FF8A; [7A 3A, 05, A0]
+32E9; [7A 3A, 05, 28]
+3070; [7A 3A, 05, 85][, AE, 05]
+30D0; [7A 3A, 05, 98][, AE, 05]
+3071; [7A 3A, 05, 85][, B0, 05]
+30D1; [7A 3A, 05, 98][, B0, 05]
+332B; [7A 3A, 05, 30][, B0, 2E][0D 68, 05, 2E][7A 22, 05, 31][7A 66, 05, 2C][7A 2E, 05, 33]
+332C; [7A 3A, 05, 30][, B0, 2E][0D 68, 05, 2E][7A 2A, 05, 33]
+332D; [7A 3A, 05, 30][, AE, 2E][0D 68, 05, 2E][7A 5A, 05, 30][7A 58, 05, 30]
+332A; [7A 3A, 05, 30][7A 08, 05, 33][7A 2A, 05, 33]
+
+3072; [7A 3C, 05, 85]
+31F6; [7A 3C, 05, 10]
+30D2; [7A 3C, 05, 98]
+FF8B; [7A 3C, 05, A0]
+32EA; [7A 3C, 05, 28]
+3073; [7A 3C, 05, 85][, AE, 05]
+30D3; [7A 3C, 05, 98][, AE, 05]
+3074; [7A 3C, 05, 85][, B0, 05]
+30D4; [7A 3C, 05, 98][, B0, 05]
+332E; [7A 3C, 05, 30][, B0, 2E][7A 06, 05, 33][7A 20, 05, 30][7A 2E, 05, 33][7A 58, 05, 30]
+332F; [7A 3C, 05, 30][, B0, 2E][7A 16, 05, 30][7A 58, 05, 30]
+3330; [7A 3C, 05, 30][, B0, 2E][7A 1A, 05, 30]
+3331; [7A 3C, 05, 30][, AE, 2E][7A 58, 05, 30]
+
+3075; [7A 3E, 05, 85]
+31F7; [7A 3E, 05, 10]
+30D5; [7A 3E, 05, 98]
+FF8C; [7A 3E, 05, A0]
+32EB; [7A 3E, 05, 28]
+3076; [7A 3E, 05, 85][, AE, 05]
+30D6; [7A 3E, 05, 98][, AE, 05]
+3077; [7A 3E, 05, 85][, B0, 05]
+30D7; [7A 3E, 05, 98][, B0, 05]
+3332; [7A 3E, 05, 30][7A 06, 05, 33][7A 54, 05, 30][7A 2A, 05, 33][7A 2E, 05, 33][, AE, 2E]
+3333; [7A 3E, 05, 30][7A 08, 05, 33][0D 68, 05, 2E][7A 2E, 05, 33]
+3334; [7A 3E, 05, 30][, AE, 2E][7A 2A, 05, 33][7A 1E, 05, 30][7A 0E, 05, 33][7A 58, 05, 30]
+3335; [7A 3E, 05, 30][7A 54, 05, 30][7A 66, 05, 2C]
+
+3078; [7A 40, 05, 85]
+31F8; [7A 40, 05, 10]
+30D8; [7A 40, 05, 98]
+FF8D; [7A 40, 05, A0]
+32EC; [7A 40, 05, 28]
+3079; [7A 40, 05, 85][, AE, 05]
+30D9; [7A 40, 05, 98][, AE, 05]
+307A; [7A 40, 05, 85][, B0, 05]
+30DA; [7A 40, 05, 98][, B0, 05]
+333B; [7A 40, 05, 30][, B0, 2E][0D 68, 05, 2E][7A 1E, 05, 30][, AE, 2E]
+333C; [7A 40, 05, 30][, AE, 2E][0D 68, 05, 2E][7A 26, 05, 31]
+3336; [7A 40, 05, 30][7A 16, 05, 30][7A 26, 05, 31][0D 68, 05, 2E][7A 58, 05, 30]
+3337; [7A 40, 05, 30][, B0, 2E][7A 24, 05, 31]
+3338; [7A 40, 05, 30][, B0, 2E][7A 32, 05, 31][7A 3C, 05, 30]
+3339; [7A 40, 05, 30][7A 58, 05, 30][7A 2A, 05, 33]
+333A; [7A 40, 05, 30][, B0, 2E][7A 66, 05, 2C][7A 20, 05, 30]
+
+307B; [7A 42, 05, 85]
+31F9; [7A 42, 05, 10]
+30DB; [7A 42, 05, 98]
+FF8E; [7A 42, 05, A0]
+32ED; [7A 42, 05, 28]
+307C; [7A 42, 05, 85][, AE, 05]
+30DC; [7A 42, 05, 98][, AE, 05]
+307D; [7A 42, 05, 85][, B0, 05]
+30DD; [7A 42, 05, 98][, B0, 05]
+3341; [7A 42, 05, 30][0D 68, 05, 2E][7A 58, 05, 30]
+3342; [7A 42, 05, 30][0D 68, 05, 2E][7A 66, 05, 2C]
+333D; [7A 42, 05, 30][, B0, 2E][7A 08, 05, 33][7A 66, 05, 2C][7A 2E, 05, 33]
+1F200; [7A 42, 05, 30][7A 12, 05, 30]
+333E; [7A 42, 05, 30][, AE, 2E][7A 58, 05, 30][7A 2E, 05, 33]
+333F; [7A 42, 05, 30][7A 66, 05, 2C]
+3340; [7A 42, 05, 30][, B0, 2E][7A 66, 05, 2C][7A 2E, 05, 33][, AE, 2E]
+
+307E; [7A 44, 05, 85]
+30DE; [7A 44, 05, 90]
+FF8F; [7A 44, 05, 9B]
+32EE; [7A 44, 05, 26]
+3343; [7A 44, 05, 31][7A 08, 05, 33][7A 16, 05, 30][7A 5C, 05, 30]
+3344; [7A 44, 05, 31][7A 08, 05, 33][7A 58, 05, 30]
+303C; [7A 44, 05, 03][7A 20, 05, 03]
+3345; [7A 44, 05, 31][7A 2A, 05, 33][7A 3A, 05, 30]
+3346; [7A 44, 05, 31][7A 58, 05, 30][7A 16, 05, 30]
+3347; [7A 44, 05, 31][7A 66, 05, 2C][7A 1E, 05, 30][7A 52, 05, 34][7A 66, 05, 2C]
+
+307F; [7A 46, 05, 85]
+30DF; [7A 46, 05, 90]
+FF90; [7A 46, 05, 9B]
+32EF; [7A 46, 05, 26]
+3348; [7A 46, 05, 31][7A 16, 05, 30][7A 5C, 05, 30][7A 66, 05, 2C]
+3349; [7A 46, 05, 31][7A 56, 05, 33]
+334A; [7A 46, 05, 31][7A 56, 05, 33][7A 3A, 05, 30][, AE, 2E][0D 68, 05, 2E][7A 58, 05, 30]
+
+3080; [7A 48, 05, 85]
+31FA; [7A 48, 05, 10]
+30E0; [7A 48, 05, 98]
+FF91; [7A 48, 05, A0]
+32F0; [7A 48, 05, 28]
+
+3081; [7A 4A, 05, 85]
+30E1; [7A 4A, 05, 90]
+FF92; [7A 4A, 05, 9B]
+32F1; [7A 4A, 05, 26]
+334D; [7A 4A, 05, 31][0D 68, 05, 2E][7A 2E, 05, 33][7A 58, 05, 30]
+334B; [7A 4A, 05, 31][7A 12, 05, 30][, AE, 2E]
+334C; [7A 4A, 05, 31][7A 12, 05, 30][, AE, 2E][7A 2E, 05, 33][7A 66, 05, 2C]
+
+3082; [7A 4C, 05, 85]
+30E2; [7A 4C, 05, 90]
+FF93; [7A 4C, 05, 9E]
+32F2; [7A 4C, 05, 2C]
+
+3083; [7A 4E, 05, 03]
+3084; [7A 4E, 05, 85]
+30E3; [7A 4E, 05, 10]
+FF6C; [7A 4E, 05, 17]
+30E4; [7A 4E, 05, 9E]
+FF94; [7A 4E, 05, A5]
+32F3; [7A 4E, 05, 2C]
+334E; [7A 4E, 05, 33][0D 68, 05, 2E][7A 2E, 05, 33][, AE, 2E]
+334F; [7A 4E, 05, 33][0D 68, 05, 2E][7A 58, 05, 30]
+
+3085; [7A 50, 05, 03]
+3086; [7A 50, 05, 85]
+30E5; [7A 50, 05, 10]
+FF6D; [7A 50, 05, 17]
+30E6; [7A 50, 05, 9E]
+FF95; [7A 50, 05, A5]
+32F4; [7A 50, 05, 2C]
+3350; [7A 50, 05, 33][7A 06, 05, 33][7A 66, 05, 2C]
+
+3087; [7A 52, 05, 03]
+3088; [7A 52, 05, 85]
+30E7; [7A 52, 05, 10]
+FF6E; [7A 52, 05, 16]
+30E8; [7A 52, 05, 9C]
+FF96; [7A 52, 05, A2]
+32F5; [7A 52, 05, 28]
+309F; [7A 52, 05, 2E][7A 56, 05, 2C]
+
+3089; [7A 54, 05, 85]
+31FB; [7A 54, 05, 10]
+30E9; [7A 54, 05, 98]
+FF97; [7A 54, 05, A0]
+32F6; [7A 54, 05, 28]
+
+308A; [7A 56, 05, 85]
+31FC; [7A 56, 05, 10]
+30EA; [7A 56, 05, 97]
+FF98; [7A 56, 05, 9E]
+32F7; [7A 56, 05, 25]
+3351; [7A 56, 05, 33][7A 2A, 05, 33][7A 2E, 05, 33][7A 58, 05, 30]
+3352; [7A 56, 05, 33][7A 54, 05, 30]
+
+308B; [7A 58, 05, 85]
+31FD; [7A 58, 05, 10]
+30EB; [7A 58, 05, 98]
+FF99; [7A 58, 05, A0]
+32F8; [7A 58, 05, 28]
+3354; [7A 58, 05, 30][0D 68, 05, 2E][7A 3E, 05, 30][, AE, 2E][7A 58, 05, 30]
+3353; [7A 58, 05, 30][7A 3C, 05, 30][, B0, 2E][0D 68, 05, 2E]
+
+308C; [7A 5A, 05, 85]
+31FE; [7A 5A, 05, 10]
+30EC; [7A 5A, 05, 98]
+FF9A; [7A 5A, 05, A0]
+32F9; [7A 5A, 05, 28]
+3355; [7A 5A, 05, 30][7A 48, 05, 30]
+3356; [7A 5A, 05, 30][7A 66, 05, 2C][7A 2E, 05, 33][7A 18, 05, 30][, AE, 2E][7A 66, 05, 2C]
-D7D6; [78 F8 A8, 05, 05]
+308D; [7A 5C, 05, 85]
+31FF; [7A 5C, 05, 10]
+30ED; [7A 5C, 05, 98]
+FF9B; [7A 5C, 05, A0]
+32FA; [7A 5C, 05, 28]
-D7D7; [78 F8 AF, 05, 05]
+308E; [7A 5E, 05, 03]
+308F; [7A 5E, 05, 85]
+30EE; [7A 5E, 05, 10]
+30EF; [7A 5E, 05, 98]
+FF9C; [7A 5E, 05, A0]
+32FB; [7A 5E, 05, 28]
+30F7; [7A 5E, 05, 98][, AE, 05]
+3357; [7A 5E, 05, 30][7A 2A, 05, 33][7A 2E, 05, 33]
-D7D8; [78 F8 B6, 05, 05]
+3090; [7A 60, 05, 85]
+30F0; [7A 60, 05, A0]
+32FC; [7A 60, 05, 2E]
+30F8; [7A 60, 05, A0][, AE, 05]
-D7D9; [78 F8 BD, 05, 05]
+3091; [7A 62, 05, 85]
+30F1; [7A 62, 05, A0]
+32FD; [7A 62, 05, 2E]
+30F9; [7A 62, 05, A0][, AE, 05]
-D7DA; [78 F8 C4, 05, 05]
+3092; [7A 64, 05, 85]
+30F2; [7A 64, 05, 90]
+FF66; [7A 64, 05, 9E]
+32FE; [7A 64, 05, 2C]
+30FA; [7A 64, 05, 90][, AE, 05]
-D7DB; [78 F8 CB, 05, 05]
+3093; [7A 66, 05, 85]
+30F3; [7A 66, 05, 90]
+FF9D; [7A 66, 05, 9E]
-D7DC; [78 F8 D2, 05, 05]
+1B002; [7A 68 02, 05, 05]
-D7DD; [78 F8 D9, 05, 05]
+1B003; [7A 68 09, 05, 05]
-D7DE; [78 F8 E0, 05, 05]
+1B004; [7A 68 10, 05, 05]
-D7DF; [78 F8 E7, 05, 05]
+1B005; [7A 68 17, 05, 05]
-D7E0; [78 F8 EE, 05, 05]
+1B006; [7A 68 1E, 05, 05]
-D7E1; [78 F8 F5, 05, 05]
+1B007; [7A 68 25, 05, 05]
-D7E2; [78 F8 FC, 05, 05]
+1B008; [7A 68 2C, 05, 05]
-D7E3; [78 F9 05, 05, 05]
+1B009; [7A 68 33, 05, 05]
-D7E4; [78 F9 0C, 05, 05]
+1B00A; [7A 68 3A, 05, 05]
-D7E5; [78 F9 13, 05, 05]
+1B00B; [7A 68 41, 05, 05]
-D7E6; [78 F9 1A, 05, 05]
+1B00C; [7A 68 48, 05, 05]
-D7E7; [78 F9 21, 05, 05]
+1B00D; [7A 68 4F, 05, 05]
-D7E8; [78 F9 28, 05, 05]
+1B00E; [7A 68 56, 05, 05]
-D7E9; [78 F9 2F, 05, 05]
+1B001; [7A 68 5D, 05, 05]
-D7EA; [78 F9 36, 05, 05]
+1B00F; [7A 68 64, 05, 05]
-D7EB; [78 F9 3D, 05, 05]
+1B010; [7A 68 6B, 05, 05]
-D7EC; [78 F9 44, 05, 05]
+1B011; [7A 68 72, 05, 05]
-D7ED; [78 F9 4B, 05, 05]
+1B012; [7A 68 79, 05, 05]
-D7EE; [78 F9 52, 05, 05]
+1B013; [7A 68 80, 05, 05]
-D7EF; [78 F9 59, 05, 05]
+1B014; [7A 68 87, 05, 05]
-D7F0; [78 F9 60, 05, 05]
+1B015; [7A 68 8E, 05, 05]
-D7F1; [78 F9 67, 05, 05]
+1B016; [7A 68 95, 05, 05]
-D7F2; [78 F9 6E, 05, 05]
+1B017; [7A 68 9C, 05, 05]
-D7F3; [78 F9 75, 05, 05]
+1B018; [7A 68 A3, 05, 05]
-D7F4; [78 F9 7C, 05, 05]
+1B019; [7A 68 AA, 05, 05]
-D7F5; [78 F9 83, 05, 05]
+1B01A; [7A 68 B1, 05, 05]
-D7F6; [78 F9 8A, 05, 05]
+1B01B; [7A 68 B8, 05, 05]
-D7F7; [78 F9 91, 05, 05]
+1B01C; [7A 68 BF, 05, 05]
-D7F8; [78 F9 98, 05, 05]
+1B01D; [7A 68 C6, 05, 05]
-D7F9; [78 F9 9F, 05, 05]
+1B01E; [7A 68 CD, 05, 05]
-D7FA; [78 F9 A6, 05, 05]
+1B01F; [7A 68 D4, 05, 05]
-D7FB; [78 F9 AD, 05, 05]
+1B020; [7A 68 DB, 05, 05]
-FDD1 304B; [79 04 02, 05, 05] # HIRAGANA first primary starts new lead byte (compressible)
+1B021; [7A 68 E2, 05, 05]
-FDD1 30AB; [79 04 02, 05, 05] # KATAKANA first primary (compressible)
+1B022; [7A 68 E9, 05, 05]
-3041; [79 06, 05, 03]
-3042; [79 06, 05, 85]
-30A1; [79 06, 05, 10]
-FF67; [79 06, 05, 17]
-30A2; [79 06, 05, 9E]
-FF71; [79 06, 05, A5]
-32D0; [79 06, 05, 2C]
-3303; [79 06, 05, 33][0D 62, 05, 2E][79 58, 05, 30]
-3300; [79 06, 05, 33][79 3A, 05, 30][, B0, 2E][0D 62, 05, 2E][79 2E, 05, 33]
-3301; [79 06, 05, 33][79 58, 05, 30][79 3E, 05, 30][79 06, 05, 33]
-3302; [79 06, 05, 33][79 66, 05, 2C][79 40, 05, 30][, B0, 2E][79 06, 05, 33]
+1B023; [7A 68 F0, 05, 05]
-3043; [79 08, 05, 03]
-3044; [79 08, 05, 85]
-30A3; [79 08, 05, 10]
-FF68; [79 08, 05, 17]
-30A4; [79 08, 05, 9E]
-FF72; [79 08, 05, A5]
-32D1; [79 08, 05, 2C]
-3304; [79 08, 05, 33][79 32, 05, 31][79 66, 05, 2C][79 16, 05, 30][, AE, 2E]
-3305; [79 08, 05, 33][79 66, 05, 2C][79 28, 05, 31]
+1B024; [7A 68 F7, 05, 05]
-3045; [79 0A, 05, 03]
-3046; [79 0A, 05, 85]
-30A5; [79 0A, 05, 10]
-FF69; [79 0A, 05, 17]
-30A6; [79 0A, 05, 9E]
-FF73; [79 0A, 05, A5]
-32D2; [79 0A, 05, 2C]
-3094; [79 0A, 05, 85][, AE, 05]
-30F4; [79 0A, 05, 9E][, AE, 05]
-3306; [79 0A, 05, 33][79 10, 05, 33][79 66, 05, 2C]
-
-1B000; [79 0C, 05, 85]
-
-3047; [79 0E, 05, 03]
-3048; [79 0E, 05, 85]
-30A7; [79 0E, 05, 10]
-FF6A; [79 0E, 05, 17]
-30A8; [79 0E, 05, 9E]
-FF74; [79 0E, 05, A5]
-32D3; [79 0E, 05, 2C]
-3308; [79 0E, 05, 33][0D 62, 05, 2E][79 12, 05, 30][0D 62, 05, 2E]
-3307; [79 0E, 05, 33][79 20, 05, 30][79 16, 05, 30][0D 62, 05, 2E][79 2E, 05, 33][, AE, 2E]
-
-3049; [79 10, 05, 03]
-304A; [79 10, 05, 85]
-30A9; [79 10, 05, 10]
-FF6B; [79 10, 05, 17]
-30AA; [79 10, 05, 9E]
-FF75; [79 10, 05, A5]
-32D4; [79 10, 05, 2C]
-330A; [79 10, 05, 33][0D 62, 05, 2E][79 48, 05, 30]
-3309; [79 10, 05, 33][79 66, 05, 2C][79 20, 05, 30]
-
-3095; [79 12, 05, 03]
-304B; [79 12, 05, 85]
-30F5; [79 12, 05, 10]
-30AB; [79 12, 05, 98]
-FF76; [79 12, 05, A0]
-32D5; [79 12, 05, 28]
-304C; [79 12, 05, 85][, AE, 05]
-30AC; [79 12, 05, 98][, AE, 05]
-330B; [79 12, 05, 30][79 08, 05, 33][79 56, 05, 33]
-330C; [79 12, 05, 30][79 54, 05, 30][79 2A, 05, 33][79 2E, 05, 33]
-330D; [79 12, 05, 30][79 5C, 05, 30][79 56, 05, 33][0D 62, 05, 2E]
-330E; [79 12, 05, 30][, AE, 2E][79 5C, 05, 30][79 66, 05, 2C]
-330F; [79 12, 05, 30][, AE, 2E][79 66, 05, 2C][79 44, 05, 31]
-
-304D; [79 14, 05, 85]
-30AD; [79 14, 05, 90]
-FF77; [79 14, 05, 9B]
-32D6; [79 14, 05, 26]
-304E; [79 14, 05, 85][, AE, 05]
-30AE; [79 14, 05, 90][, AE, 05]
-3310; [79 14, 05, 31][, AE, 2E][79 12, 05, 30][, AE, 2E]
-3311; [79 14, 05, 31][, AE, 2E][79 32, 05, 31][0D 62, 05, 2E]
-3312; [79 14, 05, 31][79 50, 05, 33][79 56, 05, 33][0D 62, 05, 2E]
-3313; [79 14, 05, 31][, AE, 2E][79 58, 05, 30][79 26, 05, 31][, AE, 2E][0D 62, 05, 2E]
-3314; [79 14, 05, 31][79 5C, 05, 30]
-3315; [79 14, 05, 31][79 5C, 05, 30][79 16, 05, 30][, AE, 2E][79 54, 05, 30][79 48, 05, 30]
-3316; [79 14, 05, 31][79 5C, 05, 30][79 4A, 05, 31][0D 62, 05, 2E][79 2E, 05, 33][79 58, 05, 30]
-3317; [79 14, 05, 31][79 5C, 05, 30][79 5E, 05, 30][79 2A, 05, 33][79 2E, 05, 33]
-
-304F; [79 16, 05, 85]
-31F0; [79 16, 05, 10]
-30AF; [79 16, 05, 98]
-FF78; [79 16, 05, A0]
-32D7; [79 16, 05, 28]
-3050; [79 16, 05, 85][, AE, 05]
-30B0; [79 16, 05, 98][, AE, 05]
-3318; [79 16, 05, 30][, AE, 2E][79 54, 05, 30][79 48, 05, 30]
-3319; [79 16, 05, 30][, AE, 2E][79 54, 05, 30][79 48, 05, 30][79 2E, 05, 33][79 66, 05, 2C]
-331A; [79 16, 05, 30][79 58, 05, 30][79 22, 05, 31][, AE, 2E][79 08, 05, 33][79 5C, 05, 30]
-331B; [79 16, 05, 30][79 5C, 05, 30][0D 62, 05, 2E][79 36, 05, 31]
-
-3096; [79 18, 05, 03]
-3051; [79 18, 05, 85]
-30F6; [79 18, 05, 10]
-30B1; [79 18, 05, 98]
-FF79; [79 18, 05, A0]
-32D8; [79 18, 05, 28]
-3052; [79 18, 05, 85][, AE, 05]
-30B2; [79 18, 05, 98][, AE, 05]
-331C; [79 18, 05, 30][0D 62, 05, 2E][79 20, 05, 30]
-
-3053; [79 1A, 05, 85]
-30B3; [79 1A, 05, 90]
-FF7A; [79 1A, 05, 98]
-32D9; [79 1A, 05, 20]
-3054; [79 1A, 05, 85][, AE, 05]
-30B4; [79 1A, 05, 90][, AE, 05]
-331E; [79 1A, 05, 30][0D 62, 05, 2E][79 42, 05, 30][, B0, 2E]
-1F201; [79 1A, 05, 30][79 1A, 05, 30]
-30FF; [79 1A, 05, 28][79 2E, 05, 2C]
-331D; [79 1A, 05, 30][79 58, 05, 30][79 30, 05, 31]
-
-3055; [79 1C, 05, 85]
-30B5; [79 1C, 05, 90]
-FF7B; [79 1C, 05, 9B]
-32DA; [79 1C, 05, 26]
-1F202; [79 1C, 05, 31]
-3056; [79 1C, 05, 85][, AE, 05]
-30B6; [79 1C, 05, 90][, AE, 05]
-331F; [79 1C, 05, 31][79 08, 05, 33][79 16, 05, 30][79 58, 05, 30]
-3320; [79 1C, 05, 31][79 66, 05, 2C][79 28, 05, 31][0D 62, 05, 2E][79 48, 05, 30]
-
-3057; [79 1E, 05, 85]
-31F1; [79 1E, 05, 10]
-30B7; [79 1E, 05, 98]
-FF7C; [79 1E, 05, A0]
-32DB; [79 1E, 05, 28]
-3058; [79 1E, 05, 85][, AE, 05]
-30B8; [79 1E, 05, 98][, AE, 05]
-3006; [79 1E, 05, 03][79 4A, 05, 03]
-3321; [79 1E, 05, 30][79 56, 05, 33][79 66, 05, 2C][79 16, 05, 30][, AE, 2E]
-
-3059; [79 20, 05, 85]
-31F2; [79 20, 05, 10]
-30B9; [79 20, 05, 98]
-FF7D; [79 20, 05, A0]
-32DC; [79 20, 05, 28]
-305A; [79 20, 05, 85][, AE, 05]
-30BA; [79 20, 05, 98][, AE, 05]
-
-305B; [79 22, 05, 85]
-30BB; [79 22, 05, 90]
-FF7E; [79 22, 05, 9B]
-32DD; [79 22, 05, 26]
-305C; [79 22, 05, 85][, AE, 05]
-30BC; [79 22, 05, 90][, AE, 05]
-3322; [79 22, 05, 31][79 66, 05, 2C][79 28, 05, 31]
-3323; [79 22, 05, 31][79 66, 05, 2C][79 2E, 05, 33]
-
-305D; [79 24, 05, 85]
-30BD; [79 24, 05, 90]
-FF7F; [79 24, 05, 9B]
-32DE; [79 24, 05, 26]
-305E; [79 24, 05, 85][, AE, 05]
-30BE; [79 24, 05, 90][, AE, 05]
-
-305F; [79 26, 05, 85]
-30BF; [79 26, 05, 90]
-FF80; [79 26, 05, 9B]
-32DF; [79 26, 05, 26]
-3060; [79 26, 05, 85][, AE, 05]
-30C0; [79 26, 05, 90][, AE, 05]
-3324; [79 26, 05, 31][, AE, 2E][0D 62, 05, 2E][79 20, 05, 30]
-
-3061; [79 28, 05, 85]
-30C1; [79 28, 05, 90]
-FF81; [79 28, 05, 9B]
-32E0; [79 28, 05, 26]
-3062; [79 28, 05, 85][, AE, 05]
-30C2; [79 28, 05, 90][, AE, 05]
-
-3063; [79 2A, 05, 03]
-3064; [79 2A, 05, 85]
-30C3; [79 2A, 05, 10]
-FF6F; [79 2A, 05, 17]
-30C4; [79 2A, 05, 9E]
-FF82; [79 2A, 05, A5]
-32E1; [79 2A, 05, 2C]
-3065; [79 2A, 05, 85][, AE, 05]
-30C5; [79 2A, 05, 9E][, AE, 05]
-
-3066; [79 2C, 05, 85]
-30C6; [79 2C, 05, 90]
-FF83; [79 2C, 05, 9B]
-32E2; [79 2C, 05, 26]
-3067; [79 2C, 05, 85][, AE, 05]
-30C7; [79 2C, 05, 90][, AE, 05]
-1F213; [79 2C, 05, 31][, AE, 2E]
-3325; [79 2C, 05, 31][, AE, 2E][79 1E, 05, 30]
-
-3068; [79 2E, 05, 85]
-31F3; [79 2E, 05, 10]
-30C8; [79 2E, 05, 97]
-FF84; [79 2E, 05, 9E]
-32E3; [79 2E, 05, 25]
-3069; [79 2E, 05, 85][, AE, 05]
-30C9; [79 2E, 05, 97][, AE, 05]
-3326; [79 2E, 05, 33][, AE, 2E][79 58, 05, 30]
-3327; [79 2E, 05, 33][79 66, 05, 2C]
-
-306A; [79 30, 05, 85]
-30CA; [79 30, 05, 90]
-FF85; [79 30, 05, 9B]
-32E4; [79 30, 05, 26]
-3328; [79 30, 05, 31][79 38, 05, 31]
-
-306B; [79 32, 05, 85]
-30CB; [79 32, 05, 90]
-FF86; [79 32, 05, 9B]
-32E5; [79 32, 05, 26]
-
-306C; [79 34, 05, 85]
-31F4; [79 34, 05, 10]
-30CC; [79 34, 05, 9B]
-FF87; [79 34, 05, A6]
-32E6; [79 34, 05, 31]
-
-306D; [79 36, 05, 85]
-30CD; [79 36, 05, 90]
-FF88; [79 36, 05, 9B]
-32E7; [79 36, 05, 26]
-
-306E; [79 38, 05, 85]
-30CE; [79 38, 05, 90]
-FF89; [79 38, 05, 9B]
-32E8; [79 38, 05, 26]
-3329; [79 38, 05, 31][79 2A, 05, 33][79 2E, 05, 33]
-
-306F; [79 3A, 05, 85]
-31F5; [79 3A, 05, 10]
-30CF; [79 3A, 05, 98]
-FF8A; [79 3A, 05, A0]
-32E9; [79 3A, 05, 28]
-3070; [79 3A, 05, 85][, AE, 05]
-30D0; [79 3A, 05, 98][, AE, 05]
-3071; [79 3A, 05, 85][, B0, 05]
-30D1; [79 3A, 05, 98][, B0, 05]
-332B; [79 3A, 05, 30][, B0, 2E][0D 62, 05, 2E][79 22, 05, 31][79 66, 05, 2C][79 2E, 05, 33]
-332C; [79 3A, 05, 30][, B0, 2E][0D 62, 05, 2E][79 2A, 05, 33]
-332D; [79 3A, 05, 30][, AE, 2E][0D 62, 05, 2E][79 5A, 05, 30][79 58, 05, 30]
-332A; [79 3A, 05, 30][79 08, 05, 33][79 2A, 05, 33]
-
-3072; [79 3C, 05, 85]
-31F6; [79 3C, 05, 10]
-30D2; [79 3C, 05, 98]
-FF8B; [79 3C, 05, A0]
-32EA; [79 3C, 05, 28]
-3073; [79 3C, 05, 85][, AE, 05]
-30D3; [79 3C, 05, 98][, AE, 05]
-3074; [79 3C, 05, 85][, B0, 05]
-30D4; [79 3C, 05, 98][, B0, 05]
-332E; [79 3C, 05, 30][, B0, 2E][79 06, 05, 33][79 20, 05, 30][79 2E, 05, 33][79 58, 05, 30]
-332F; [79 3C, 05, 30][, B0, 2E][79 16, 05, 30][79 58, 05, 30]
-3330; [79 3C, 05, 30][, B0, 2E][79 1A, 05, 30]
-3331; [79 3C, 05, 30][, AE, 2E][79 58, 05, 30]
-
-3075; [79 3E, 05, 85]
-31F7; [79 3E, 05, 10]
-30D5; [79 3E, 05, 98]
-FF8C; [79 3E, 05, A0]
-32EB; [79 3E, 05, 28]
-3076; [79 3E, 05, 85][, AE, 05]
-30D6; [79 3E, 05, 98][, AE, 05]
-3077; [79 3E, 05, 85][, B0, 05]
-30D7; [79 3E, 05, 98][, B0, 05]
-3332; [79 3E, 05, 30][79 06, 05, 33][79 54, 05, 30][79 2A, 05, 33][79 2E, 05, 33][, AE, 2E]
-3333; [79 3E, 05, 30][79 08, 05, 33][0D 62, 05, 2E][79 2E, 05, 33]
-3334; [79 3E, 05, 30][, AE, 2E][79 2A, 05, 33][79 1E, 05, 30][79 0E, 05, 33][79 58, 05, 30]
-3335; [79 3E, 05, 30][79 54, 05, 30][79 66, 05, 2C]
-
-3078; [79 40, 05, 85]
-31F8; [79 40, 05, 10]
-30D8; [79 40, 05, 98]
-FF8D; [79 40, 05, A0]
-32EC; [79 40, 05, 28]
-3079; [79 40, 05, 85][, AE, 05]
-30D9; [79 40, 05, 98][, AE, 05]
-307A; [79 40, 05, 85][, B0, 05]
-30DA; [79 40, 05, 98][, B0, 05]
-333B; [79 40, 05, 30][, B0, 2E][0D 62, 05, 2E][79 1E, 05, 30][, AE, 2E]
-333C; [79 40, 05, 30][, AE, 2E][0D 62, 05, 2E][79 26, 05, 31]
-3336; [79 40, 05, 30][79 16, 05, 30][79 26, 05, 31][0D 62, 05, 2E][79 58, 05, 30]
-3337; [79 40, 05, 30][, B0, 2E][79 24, 05, 31]
-3338; [79 40, 05, 30][, B0, 2E][79 32, 05, 31][79 3C, 05, 30]
-3339; [79 40, 05, 30][79 58, 05, 30][79 2A, 05, 33]
-333A; [79 40, 05, 30][, B0, 2E][79 66, 05, 2C][79 20, 05, 30]
-
-307B; [79 42, 05, 85]
-31F9; [79 42, 05, 10]
-30DB; [79 42, 05, 98]
-FF8E; [79 42, 05, A0]
-32ED; [79 42, 05, 28]
-307C; [79 42, 05, 85][, AE, 05]
-30DC; [79 42, 05, 98][, AE, 05]
-307D; [79 42, 05, 85][, B0, 05]
-30DD; [79 42, 05, 98][, B0, 05]
-3341; [79 42, 05, 30][0D 62, 05, 2E][79 58, 05, 30]
-3342; [79 42, 05, 30][0D 62, 05, 2E][79 66, 05, 2C]
-333D; [79 42, 05, 30][, B0, 2E][79 08, 05, 33][79 66, 05, 2C][79 2E, 05, 33]
-1F200; [79 42, 05, 30][79 12, 05, 30]
-333E; [79 42, 05, 30][, AE, 2E][79 58, 05, 30][79 2E, 05, 33]
-333F; [79 42, 05, 30][79 66, 05, 2C]
-3340; [79 42, 05, 30][, B0, 2E][79 66, 05, 2C][79 2E, 05, 33][, AE, 2E]
-
-307E; [79 44, 05, 85]
-30DE; [79 44, 05, 90]
-FF8F; [79 44, 05, 9B]
-32EE; [79 44, 05, 26]
-3343; [79 44, 05, 31][79 08, 05, 33][79 16, 05, 30][79 5C, 05, 30]
-3344; [79 44, 05, 31][79 08, 05, 33][79 58, 05, 30]
-303C; [79 44, 05, 03][79 20, 05, 03]
-3345; [79 44, 05, 31][79 2A, 05, 33][79 3A, 05, 30]
-3346; [79 44, 05, 31][79 58, 05, 30][79 16, 05, 30]
-3347; [79 44, 05, 31][79 66, 05, 2C][79 1E, 05, 30][79 52, 05, 34][79 66, 05, 2C]
-
-307F; [79 46, 05, 85]
-30DF; [79 46, 05, 90]
-FF90; [79 46, 05, 9B]
-32EF; [79 46, 05, 26]
-3348; [79 46, 05, 31][79 16, 05, 30][79 5C, 05, 30][79 66, 05, 2C]
-3349; [79 46, 05, 31][79 56, 05, 33]
-334A; [79 46, 05, 31][79 56, 05, 33][79 3A, 05, 30][, AE, 2E][0D 62, 05, 2E][79 58, 05, 30]
-
-3080; [79 48, 05, 85]
-31FA; [79 48, 05, 10]
-30E0; [79 48, 05, 98]
-FF91; [79 48, 05, A0]
-32F0; [79 48, 05, 28]
-
-3081; [79 4A, 05, 85]
-30E1; [79 4A, 05, 90]
-FF92; [79 4A, 05, 9B]
-32F1; [79 4A, 05, 26]
-334D; [79 4A, 05, 31][0D 62, 05, 2E][79 2E, 05, 33][79 58, 05, 30]
-334B; [79 4A, 05, 31][79 12, 05, 30][, AE, 2E]
-334C; [79 4A, 05, 31][79 12, 05, 30][, AE, 2E][79 2E, 05, 33][79 66, 05, 2C]
-
-3082; [79 4C, 05, 85]
-30E2; [79 4C, 05, 90]
-FF93; [79 4C, 05, 9E]
-32F2; [79 4C, 05, 2C]
-
-3083; [79 4E, 05, 03]
-3084; [79 4E, 05, 85]
-30E3; [79 4E, 05, 10]
-FF6C; [79 4E, 05, 17]
-30E4; [79 4E, 05, 9E]
-FF94; [79 4E, 05, A5]
-32F3; [79 4E, 05, 2C]
-334E; [79 4E, 05, 33][0D 62, 05, 2E][79 2E, 05, 33][, AE, 2E]
-334F; [79 4E, 05, 33][0D 62, 05, 2E][79 58, 05, 30]
-
-3085; [79 50, 05, 03]
-3086; [79 50, 05, 85]
-30E5; [79 50, 05, 10]
-FF6D; [79 50, 05, 17]
-30E6; [79 50, 05, 9E]
-FF95; [79 50, 05, A5]
-32F4; [79 50, 05, 2C]
-3350; [79 50, 05, 33][79 06, 05, 33][79 66, 05, 2C]
-
-3087; [79 52, 05, 03]
-3088; [79 52, 05, 85]
-30E7; [79 52, 05, 10]
-FF6E; [79 52, 05, 16]
-30E8; [79 52, 05, 9C]
-FF96; [79 52, 05, A2]
-32F5; [79 52, 05, 28]
-309F; [79 52, 05, 2E][79 56, 05, 2C]
-
-3089; [79 54, 05, 85]
-31FB; [79 54, 05, 10]
-30E9; [79 54, 05, 98]
-FF97; [79 54, 05, A0]
-32F6; [79 54, 05, 28]
-
-308A; [79 56, 05, 85]
-31FC; [79 56, 05, 10]
-30EA; [79 56, 05, 97]
-FF98; [79 56, 05, 9E]
-32F7; [79 56, 05, 25]
-3351; [79 56, 05, 33][79 2A, 05, 33][79 2E, 05, 33][79 58, 05, 30]
-3352; [79 56, 05, 33][79 54, 05, 30]
-
-308B; [79 58, 05, 85]
-31FD; [79 58, 05, 10]
-30EB; [79 58, 05, 98]
-FF99; [79 58, 05, A0]
-32F8; [79 58, 05, 28]
-3354; [79 58, 05, 30][0D 62, 05, 2E][79 3E, 05, 30][, AE, 2E][79 58, 05, 30]
-3353; [79 58, 05, 30][79 3C, 05, 30][, B0, 2E][0D 62, 05, 2E]
-
-308C; [79 5A, 05, 85]
-31FE; [79 5A, 05, 10]
-30EC; [79 5A, 05, 98]
-FF9A; [79 5A, 05, A0]
-32F9; [79 5A, 05, 28]
-3355; [79 5A, 05, 30][79 48, 05, 30]
-3356; [79 5A, 05, 30][79 66, 05, 2C][79 2E, 05, 33][79 18, 05, 30][, AE, 2E][79 66, 05, 2C]
+1B025; [7A 68 FE, 05, 05]
-308D; [79 5C, 05, 85]
-31FF; [79 5C, 05, 10]
-30ED; [79 5C, 05, 98]
-FF9B; [79 5C, 05, A0]
-32FA; [79 5C, 05, 28]
+1B026; [7A 69 07, 05, 05]
-308E; [79 5E, 05, 03]
-308F; [79 5E, 05, 85]
-30EE; [79 5E, 05, 10]
-30EF; [79 5E, 05, 98]
-FF9C; [79 5E, 05, A0]
-32FB; [79 5E, 05, 28]
-30F7; [79 5E, 05, 98][, AE, 05]
-3357; [79 5E, 05, 30][79 2A, 05, 33][79 2E, 05, 33]
+1B027; [7A 69 0E, 05, 05]
-3090; [79 60, 05, 85]
-30F0; [79 60, 05, A0]
-32FC; [79 60, 05, 2E]
-30F8; [79 60, 05, A0][, AE, 05]
+1B028; [7A 69 15, 05, 05]
-3091; [79 62, 05, 85]
-30F1; [79 62, 05, A0]
-32FD; [79 62, 05, 2E]
-30F9; [79 62, 05, A0][, AE, 05]
+1B029; [7A 69 1C, 05, 05]
-3092; [79 64, 05, 85]
-30F2; [79 64, 05, 90]
-FF66; [79 64, 05, 9E]
-32FE; [79 64, 05, 2C]
-30FA; [79 64, 05, 90][, AE, 05]
+1B02A; [7A 69 23, 05, 05]
-3093; [79 66, 05, 85]
-30F3; [79 66, 05, 90]
-FF9D; [79 66, 05, 9E]
+1B02B; [7A 69 2A, 05, 05]
-1B002; [79 68 02, 05, 05]
+1B02C; [7A 69 31, 05, 05]
-1B003; [79 68 09, 05, 05]
+1B02D; [7A 69 38, 05, 05]
-1B004; [79 68 10, 05, 05]
+1B02E; [7A 69 3F, 05, 05]
-1B005; [79 68 17, 05, 05]
+1B02F; [7A 69 46, 05, 05]
-1B006; [79 68 1E, 05, 05]
+1B030; [7A 69 4D, 05, 05]
-1B007; [79 68 25, 05, 05]
+1B031; [7A 69 54, 05, 05]
-1B008; [79 68 2C, 05, 05]
+1B032; [7A 69 5B, 05, 05]
-1B009; [79 68 33, 05, 05]
+1B033; [7A 69 62, 05, 05]
-1B00A; [79 68 3A, 05, 05]
+1B034; [7A 69 69, 05, 05]
-1B00B; [79 68 41, 05, 05]
+1B035; [7A 69 70, 05, 05]
-1B00C; [79 68 48, 05, 05]
+1B036; [7A 69 77, 05, 05]
-1B00D; [79 68 4F, 05, 05]
+1B037; [7A 69 7E, 05, 05]
-1B00E; [79 68 56, 05, 05]
+1B038; [7A 69 85, 05, 05]
-1B001; [79 68 5D, 05, 05]
+1B039; [7A 69 8C, 05, 05]
-1B00F; [79 68 64, 05, 05]
+1B03A; [7A 69 93, 05, 05]
-1B010; [79 68 6B, 05, 05]
+1B03B; [7A 69 9A, 05, 05]
-1B011; [79 68 72, 05, 05]
+1B03C; [7A 69 A1, 05, 05]
-1B012; [79 68 79, 05, 05]
+1B03D; [7A 69 A8, 05, 05]
-1B013; [79 68 80, 05, 05]
+1B03E; [7A 69 AF, 05, 05]
-1B014; [79 68 87, 05, 05]
+1B03F; [7A 69 B6, 05, 05]
-1B015; [79 68 8E, 05, 05]
+1B040; [7A 69 BD, 05, 05]
-1B016; [79 68 95, 05, 05]
+1B041; [7A 69 C4, 05, 05]
-1B017; [79 68 9C, 05, 05]
+1B042; [7A 69 CB, 05, 05]
-1B018; [79 68 A3, 05, 05]
+1B043; [7A 69 D2, 05, 05]
-1B019; [79 68 AA, 05, 05]
+1B044; [7A 69 D9, 05, 05]
-1B01A; [79 68 B1, 05, 05]
+1B045; [7A 69 E0, 05, 05]
-1B01B; [79 68 B8, 05, 05]
+1B046; [7A 69 E7, 05, 05]
-1B01C; [79 68 BF, 05, 05]
+1B047; [7A 69 EE, 05, 05]
-1B01D; [79 68 C6, 05, 05]
+1B048; [7A 69 F5, 05, 05]
-1B01E; [79 68 CD, 05, 05]
+1B049; [7A 69 FC, 05, 05]
-1B01F; [79 68 D4, 05, 05]
+1B04A; [7A 6A 05, 05, 05]
-1B020; [79 68 DB, 05, 05]
+1B04B; [7A 6A 0C, 05, 05]
-1B021; [79 68 E2, 05, 05]
+1B04C; [7A 6A 13, 05, 05]
-1B022; [79 68 E9, 05, 05]
+1B04D; [7A 6A 1A, 05, 05]
-1B023; [79 68 F0, 05, 05]
+1B04E; [7A 6A 21, 05, 05]
-1B024; [79 68 F7, 05, 05]
+1B04F; [7A 6A 28, 05, 05]
-1B025; [79 68 FE, 05, 05]
+1B050; [7A 6A 2F, 05, 05]
-1B026; [79 69 07, 05, 05]
+1B051; [7A 6A 36, 05, 05]
-1B027; [79 69 0E, 05, 05]
+1B052; [7A 6A 3D, 05, 05]
-1B028; [79 69 15, 05, 05]
+1B053; [7A 6A 44, 05, 05]
-1B029; [79 69 1C, 05, 05]
+1B054; [7A 6A 4B, 05, 05]
-1B02A; [79 69 23, 05, 05]
+1B055; [7A 6A 52, 05, 05]
-1B02B; [79 69 2A, 05, 05]
+1B056; [7A 6A 59, 05, 05]
-1B02C; [79 69 31, 05, 05]
+1B057; [7A 6A 60, 05, 05]
-1B02D; [79 69 38, 05, 05]
+1B058; [7A 6A 67, 05, 05]
-1B02E; [79 69 3F, 05, 05]
+1B059; [7A 6A 6E, 05, 05]
-1B02F; [79 69 46, 05, 05]
+1B05A; [7A 6A 75, 05, 05]
-1B030; [79 69 4D, 05, 05]
+1B05B; [7A 6A 7C, 05, 05]
-1B031; [79 69 54, 05, 05]
+1B05C; [7A 6A 83, 05, 05]
-1B032; [79 69 5B, 05, 05]
+1B05D; [7A 6A 8A, 05, 05]
-1B033; [79 69 62, 05, 05]
+1B05E; [7A 6A 91, 05, 05]
-1B034; [79 69 69, 05, 05]
+1B05F; [7A 6A 98, 05, 05]
-1B035; [79 69 70, 05, 05]
+1B060; [7A 6A 9F, 05, 05]
-1B036; [79 69 77, 05, 05]
+1B061; [7A 6A A6, 05, 05]
-1B037; [79 69 7E, 05, 05]
+1B062; [7A 6A AD, 05, 05]
-1B038; [79 69 85, 05, 05]
+1B063; [7A 6A B4, 05, 05]
-1B039; [79 69 8C, 05, 05]
+1B064; [7A 6A BB, 05, 05]
-1B03A; [79 69 93, 05, 05]
+1B065; [7A 6A C2, 05, 05]
-1B03B; [79 69 9A, 05, 05]
+1B066; [7A 6A C9, 05, 05]
-1B03C; [79 69 A1, 05, 05]
+1B067; [7A 6A D0, 05, 05]
-1B03D; [79 69 A8, 05, 05]
+1B068; [7A 6A D7, 05, 05]
-1B03E; [79 69 AF, 05, 05]
+1B069; [7A 6A DE, 05, 05]
-1B03F; [79 69 B6, 05, 05]
+1B06A; [7A 6A E5, 05, 05]
-1B040; [79 69 BD, 05, 05]
+1B06B; [7A 6A EC, 05, 05]
-1B041; [79 69 C4, 05, 05]
+1B06C; [7A 6A F3, 05, 05]
-1B042; [79 69 CB, 05, 05]
+1B06D; [7A 6A FA, 05, 05]
-1B043; [79 69 D2, 05, 05]
+1B06E; [7A 6B 03, 05, 05]
-1B044; [79 69 D9, 05, 05]
+1B06F; [7A 6B 0A, 05, 05]
-1B045; [79 69 E0, 05, 05]
+1B070; [7A 6B 11, 05, 05]
-1B046; [79 69 E7, 05, 05]
+1B071; [7A 6B 18, 05, 05]
-1B047; [79 69 EE, 05, 05]
+1B072; [7A 6B 1F, 05, 05]
-1B048; [79 69 F5, 05, 05]
+1B073; [7A 6B 26, 05, 05]
-1B049; [79 69 FC, 05, 05]
+1B074; [7A 6B 2D, 05, 05]
-1B04A; [79 6A 05, 05, 05]
+1B075; [7A 6B 34, 05, 05]
-1B04B; [79 6A 0C, 05, 05]
+1B076; [7A 6B 3B, 05, 05]
-1B04C; [79 6A 13, 05, 05]
+1B077; [7A 6B 42, 05, 05]
-1B04D; [79 6A 1A, 05, 05]
+1B078; [7A 6B 49, 05, 05]
-1B04E; [79 6A 21, 05, 05]
+1B079; [7A 6B 50, 05, 05]
-1B04F; [79 6A 28, 05, 05]
+1B07A; [7A 6B 57, 05, 05]
-1B050; [79 6A 2F, 05, 05]
+1B07B; [7A 6B 5E, 05, 05]
-1B051; [79 6A 36, 05, 05]
+1B07C; [7A 6B 65, 05, 05]
-1B052; [79 6A 3D, 05, 05]
+1B07D; [7A 6B 6C, 05, 05]
-1B053; [79 6A 44, 05, 05]
+1B07E; [7A 6B 73, 05, 05]
-1B054; [79 6A 4B, 05, 05]
+1B07F; [7A 6B 7A, 05, 05]
-1B055; [79 6A 52, 05, 05]
+1B080; [7A 6B 81, 05, 05]
-1B056; [79 6A 59, 05, 05]
+1B081; [7A 6B 88, 05, 05]
-1B057; [79 6A 60, 05, 05]
+1B082; [7A 6B 8F, 05, 05]
-1B058; [79 6A 67, 05, 05]
+1B083; [7A 6B 96, 05, 05]
-1B059; [79 6A 6E, 05, 05]
+1B084; [7A 6B 9D, 05, 05]
-1B05A; [79 6A 75, 05, 05]
+1B085; [7A 6B A4, 05, 05]
-1B05B; [79 6A 7C, 05, 05]
+1B086; [7A 6B AB, 05, 05]
-1B05C; [79 6A 83, 05, 05]
+1B087; [7A 6B B2, 05, 05]
-1B05D; [79 6A 8A, 05, 05]
+1B088; [7A 6B B9, 05, 05]
-1B05E; [79 6A 91, 05, 05]
+1B089; [7A 6B C0, 05, 05]
-1B05F; [79 6A 98, 05, 05]
+1B08A; [7A 6B C7, 05, 05]
-1B060; [79 6A 9F, 05, 05]
+1B08B; [7A 6B CE, 05, 05]
-1B061; [79 6A A6, 05, 05]
+1B08C; [7A 6B D5, 05, 05]
-1B062; [79 6A AD, 05, 05]
+1B08D; [7A 6B DC, 05, 05]
-1B063; [79 6A B4, 05, 05]
+1B08E; [7A 6B E3, 05, 05]
-1B064; [79 6A BB, 05, 05]
+1B08F; [7A 6B EA, 05, 05]
-1B065; [79 6A C2, 05, 05]
+1B090; [7A 6B F1, 05, 05]
-1B066; [79 6A C9, 05, 05]
+1B091; [7A 6B F8, 05, 05]
-1B067; [79 6A D0, 05, 05]
+1B092; [7A 6B FF, 05, 05]
-1B068; [79 6A D7, 05, 05]
+1B093; [7A 6C 08, 05, 05]
-1B069; [79 6A DE, 05, 05]
+1B094; [7A 6C 0F, 05, 05]
-1B06A; [79 6A E5, 05, 05]
+1B095; [7A 6C 16, 05, 05]
-1B06B; [79 6A EC, 05, 05]
+1B096; [7A 6C 1D, 05, 05]
-1B06C; [79 6A F3, 05, 05]
+1B097; [7A 6C 24, 05, 05]
-1B06D; [79 6A FA, 05, 05]
+1B098; [7A 6C 2B, 05, 05]
-1B06E; [79 6B 03, 05, 05]
+1B099; [7A 6C 32, 05, 05]
-1B06F; [79 6B 0A, 05, 05]
+1B09A; [7A 6C 39, 05, 05]
-1B070; [79 6B 11, 05, 05]
+1B09B; [7A 6C 40, 05, 05]
-1B071; [79 6B 18, 05, 05]
+1B09C; [7A 6C 47, 05, 05]
-1B072; [79 6B 1F, 05, 05]
+1B09D; [7A 6C 4E, 05, 05]
-1B073; [79 6B 26, 05, 05]
+1B09E; [7A 6C 55, 05, 05]
-1B074; [79 6B 2D, 05, 05]
+1B09F; [7A 6C 5C, 05, 05]
-1B075; [79 6B 34, 05, 05]
+1B0A0; [7A 6C 63, 05, 05]
-1B076; [79 6B 3B, 05, 05]
+1B0A1; [7A 6C 6A, 05, 05]
-1B077; [79 6B 42, 05, 05]
+1B0A2; [7A 6C 71, 05, 05]
-1B078; [79 6B 49, 05, 05]
+1B0A3; [7A 6C 78, 05, 05]
-1B079; [79 6B 50, 05, 05]
+1B0A4; [7A 6C 7F, 05, 05]
-1B07A; [79 6B 57, 05, 05]
+1B0A5; [7A 6C 86, 05, 05]
-1B07B; [79 6B 5E, 05, 05]
+1B0A6; [7A 6C 8D, 05, 05]
-1B07C; [79 6B 65, 05, 05]
+1B0A7; [7A 6C 94, 05, 05]
-1B07D; [79 6B 6C, 05, 05]
+1B0A8; [7A 6C 9B, 05, 05]
-1B07E; [79 6B 73, 05, 05]
+1B0A9; [7A 6C A2, 05, 05]
-1B07F; [79 6B 7A, 05, 05]
+1B0AA; [7A 6C A9, 05, 05]
-1B080; [79 6B 81, 05, 05]
+1B0AB; [7A 6C B0, 05, 05]
-1B081; [79 6B 88, 05, 05]
+1B0AC; [7A 6C B7, 05, 05]
-1B082; [79 6B 8F, 05, 05]
+1B0AD; [7A 6C BE, 05, 05]
-1B083; [79 6B 96, 05, 05]
+1B0AE; [7A 6C C5, 05, 05]
-1B084; [79 6B 9D, 05, 05]
+1B0AF; [7A 6C CC, 05, 05]
-1B085; [79 6B A4, 05, 05]
+1B0B0; [7A 6C D3, 05, 05]
-1B086; [79 6B AB, 05, 05]
+1B0B1; [7A 6C DA, 05, 05]
-1B087; [79 6B B2, 05, 05]
+1B0B2; [7A 6C E1, 05, 05]
-1B088; [79 6B B9, 05, 05]
+1B0B3; [7A 6C E8, 05, 05]
-1B089; [79 6B C0, 05, 05]
+1B0B4; [7A 6C EF, 05, 05]
-1B08A; [79 6B C7, 05, 05]
+1B0B5; [7A 6C F6, 05, 05]
-1B08B; [79 6B CE, 05, 05]
+1B0B6; [7A 6C FD, 05, 05]
-1B08C; [79 6B D5, 05, 05]
+1B0B7; [7A 6D 06, 05, 05]
-1B08D; [79 6B DC, 05, 05]
+1B0B8; [7A 6D 0D, 05, 05]
-1B08E; [79 6B E3, 05, 05]
+1B0B9; [7A 6D 14, 05, 05]
-1B08F; [79 6B EA, 05, 05]
+1B0BA; [7A 6D 1B, 05, 05]
-1B090; [79 6B F1, 05, 05]
+1B0BB; [7A 6D 22, 05, 05]
-1B091; [79 6B F8, 05, 05]
+1B0BC; [7A 6D 29, 05, 05]
-1B092; [79 6B FF, 05, 05]
+1B0BD; [7A 6D 30, 05, 05]
-1B093; [79 6C 08, 05, 05]
+1B0BE; [7A 6D 37, 05, 05]
-1B094; [79 6C 0F, 05, 05]
+1B0BF; [7A 6D 3E, 05, 05]
-1B095; [79 6C 16, 05, 05]
+1B0C0; [7A 6D 45, 05, 05]
-1B096; [79 6C 1D, 05, 05]
+1B0C1; [7A 6D 4C, 05, 05]
-1B097; [79 6C 24, 05, 05]
+1B0C2; [7A 6D 53, 05, 05]
-1B098; [79 6C 2B, 05, 05]
+1B0C3; [7A 6D 5A, 05, 05]
-1B099; [79 6C 32, 05, 05]
+1B0C4; [7A 6D 61, 05, 05]
-1B09A; [79 6C 39, 05, 05]
+1B0C5; [7A 6D 68, 05, 05]
-1B09B; [79 6C 40, 05, 05]
+1B0C6; [7A 6D 6F, 05, 05]
-1B09C; [79 6C 47, 05, 05]
+1B0C7; [7A 6D 76, 05, 05]
-1B09D; [79 6C 4E, 05, 05]
+1B0C8; [7A 6D 7D, 05, 05]
-1B09E; [79 6C 55, 05, 05]
+1B0C9; [7A 6D 84, 05, 05]
-1B09F; [79 6C 5C, 05, 05]
+1B0CA; [7A 6D 8B, 05, 05]
-1B0A0; [79 6C 63, 05, 05]
+1B0CB; [7A 6D 92, 05, 05]
-1B0A1; [79 6C 6A, 05, 05]
+1B0CC; [7A 6D 99, 05, 05]
-1B0A2; [79 6C 71, 05, 05]
+1B0CD; [7A 6D A0, 05, 05]
-1B0A3; [79 6C 78, 05, 05]
+1B0CE; [7A 6D A7, 05, 05]
-1B0A4; [79 6C 7F, 05, 05]
+1B0CF; [7A 6D AE, 05, 05]
-1B0A5; [79 6C 86, 05, 05]
+1B0D0; [7A 6D B5, 05, 05]
-1B0A6; [79 6C 8D, 05, 05]
+1B0D1; [7A 6D BC, 05, 05]
-1B0A7; [79 6C 94, 05, 05]
+1B0D2; [7A 6D C3, 05, 05]
-1B0A8; [79 6C 9B, 05, 05]
+1B0D3; [7A 6D CA, 05, 05]
-1B0A9; [79 6C A2, 05, 05]
+1B0D4; [7A 6D D1, 05, 05]
-1B0AA; [79 6C A9, 05, 05]
+1B0D5; [7A 6D D8, 05, 05]
-1B0AB; [79 6C B0, 05, 05]
+1B0D6; [7A 6D DF, 05, 05]
-1B0AC; [79 6C B7, 05, 05]
+1B0D7; [7A 6D E6, 05, 05]
-1B0AD; [79 6C BE, 05, 05]
+1B0D8; [7A 6D ED, 05, 05]
-1B0AE; [79 6C C5, 05, 05]
+1B0D9; [7A 6D F4, 05, 05]
-1B0AF; [79 6C CC, 05, 05]
+1B0DA; [7A 6D FB, 05, 05]
-1B0B0; [79 6C D3, 05, 05]
+1B0DB; [7A 6E 04, 05, 05]
-1B0B1; [79 6C DA, 05, 05]
+1B0DC; [7A 6E 0B, 05, 05]
-1B0B2; [79 6C E1, 05, 05]
+1B0DD; [7A 6E 12, 05, 05]
-1B0B3; [79 6C E8, 05, 05]
+1B0DE; [7A 6E 19, 05, 05]
-1B0B4; [79 6C EF, 05, 05]
+1B0DF; [7A 6E 20, 05, 05]
-1B0B5; [79 6C F6, 05, 05]
+1B0E0; [7A 6E 27, 05, 05]
-1B0B6; [79 6C FD, 05, 05]
+1B0E1; [7A 6E 2E, 05, 05]
-1B0B7; [79 6D 06, 05, 05]
+1B0E2; [7A 6E 35, 05, 05]
-1B0B8; [79 6D 0D, 05, 05]
+1B0E3; [7A 6E 3C, 05, 05]
-1B0B9; [79 6D 14, 05, 05]
+1B0E4; [7A 6E 43, 05, 05]
-1B0BA; [79 6D 1B, 05, 05]
+1B0E5; [7A 6E 4A, 05, 05]
-1B0BB; [79 6D 22, 05, 05]
+1B0E6; [7A 6E 51, 05, 05]
-1B0BC; [79 6D 29, 05, 05]
+1B0E7; [7A 6E 58, 05, 05]
-1B0BD; [79 6D 30, 05, 05]
+1B0E8; [7A 6E 5F, 05, 05]
-1B0BE; [79 6D 37, 05, 05]
+1B0E9; [7A 6E 66, 05, 05]
-1B0BF; [79 6D 3E, 05, 05]
+1B0EA; [7A 6E 6D, 05, 05]
-1B0C0; [79 6D 45, 05, 05]
+1B0EB; [7A 6E 74, 05, 05]
-1B0C1; [79 6D 4C, 05, 05]
+1B0EC; [7A 6E 7B, 05, 05]
-1B0C2; [79 6D 53, 05, 05]
+1B0ED; [7A 6E 82, 05, 05]
-1B0C3; [79 6D 5A, 05, 05]
+1B0EE; [7A 6E 89, 05, 05]
-1B0C4; [79 6D 61, 05, 05]
+1B0EF; [7A 6E 90, 05, 05]
-1B0C5; [79 6D 68, 05, 05]
+1B0F0; [7A 6E 97, 05, 05]
-1B0C6; [79 6D 6F, 05, 05]
+1B0F1; [7A 6E 9E, 05, 05]
-1B0C7; [79 6D 76, 05, 05]
+1B0F2; [7A 6E A5, 05, 05]
-1B0C8; [79 6D 7D, 05, 05]
+1B0F3; [7A 6E AC, 05, 05]
-1B0C9; [79 6D 84, 05, 05]
+1B0F4; [7A 6E B3, 05, 05]
-1B0CA; [79 6D 8B, 05, 05]
+1B0F5; [7A 6E BA, 05, 05]
-1B0CB; [79 6D 92, 05, 05]
+1B0F6; [7A 6E C1, 05, 05]
-1B0CC; [79 6D 99, 05, 05]
+1B0F7; [7A 6E C8, 05, 05]
-1B0CD; [79 6D A0, 05, 05]
+1B0F8; [7A 6E CF, 05, 05]
-1B0CE; [79 6D A7, 05, 05]
+1B0F9; [7A 6E D6, 05, 05]
-1B0CF; [79 6D AE, 05, 05]
+1B0FA; [7A 6E DD, 05, 05]
-1B0D0; [79 6D B5, 05, 05]
+1B0FB; [7A 6E E4, 05, 05]
-1B0D1; [79 6D BC, 05, 05]
+1B0FC; [7A 6E EB, 05, 05]
-1B0D2; [79 6D C3, 05, 05]
+1B0FD; [7A 6E F2, 05, 05]
-1B0D3; [79 6D CA, 05, 05]
+1B0FE; [7A 6E F9, 05, 05]
-1B0D4; [79 6D D1, 05, 05]
+1B0FF; [7A 6F 02, 05, 05]
-1B0D5; [79 6D D8, 05, 05]
+1B100; [7A 6F 09, 05, 05]
-1B0D6; [79 6D DF, 05, 05]
+1B101; [7A 6F 10, 05, 05]
-1B0D7; [79 6D E6, 05, 05]
+1B102; [7A 6F 17, 05, 05]
-1B0D8; [79 6D ED, 05, 05]
+1B103; [7A 6F 1E, 05, 05]
-1B0D9; [79 6D F4, 05, 05]
+1B104; [7A 6F 25, 05, 05]
-1B0DA; [79 6D FB, 05, 05]
+1B105; [7A 6F 2C, 05, 05]
-1B0DB; [79 6E 04, 05, 05]
+1B106; [7A 6F 33, 05, 05]
-1B0DC; [79 6E 0B, 05, 05]
+1B107; [7A 6F 3A, 05, 05]
-1B0DD; [79 6E 12, 05, 05]
+1B108; [7A 6F 41, 05, 05]
-1B0DE; [79 6E 19, 05, 05]
+1B109; [7A 6F 48, 05, 05]
-1B0DF; [79 6E 20, 05, 05]
+1B10A; [7A 6F 4F, 05, 05]
-1B0E0; [79 6E 27, 05, 05]
+1B10B; [7A 6F 56, 05, 05]
-1B0E1; [79 6E 2E, 05, 05]
+1B10C; [7A 6F 5D, 05, 05]
-1B0E2; [79 6E 35, 05, 05]
+1B10D; [7A 6F 64, 05, 05]
-1B0E3; [79 6E 3C, 05, 05]
+1B10E; [7A 6F 6B, 05, 05]
-1B0E4; [79 6E 43, 05, 05]
+1B10F; [7A 6F 72, 05, 05]
-1B0E5; [79 6E 4A, 05, 05]
+1B110; [7A 6F 79, 05, 05]
-1B0E6; [79 6E 51, 05, 05]
+1B111; [7A 6F 80, 05, 05]
-1B0E7; [79 6E 58, 05, 05]
+1B112; [7A 6F 87, 05, 05]
-1B0E8; [79 6E 5F, 05, 05]
+1B113; [7A 6F 8E, 05, 05]
-1B0E9; [79 6E 66, 05, 05]
+1B114; [7A 6F 95, 05, 05]
-1B0EA; [79 6E 6D, 05, 05]
+1B115; [7A 6F 9C, 05, 05]
-1B0EB; [79 6E 74, 05, 05]
+1B116; [7A 6F A3, 05, 05]
-1B0EC; [79 6E 7B, 05, 05]
+1B117; [7A 6F AA, 05, 05]
-1B0ED; [79 6E 82, 05, 05]
+1B118; [7A 6F B1, 05, 05]
-1B0EE; [79 6E 89, 05, 05]
+1B119; [7A 6F B8, 05, 05]
-1B0EF; [79 6E 90, 05, 05]
+1B11A; [7A 6F BF, 05, 05]
-1B0F0; [79 6E 97, 05, 05]
+1B11B; [7A 6F C6, 05, 05]
-1B0F1; [79 6E 9E, 05, 05]
+1B11C; [7A 6F CD, 05, 05]
-1B0F2; [79 6E A5, 05, 05]
+1B11D; [7A 6F D4, 05, 05]
-1B0F3; [79 6E AC, 05, 05]
+1B11E; [7A 6F DB, 05, 05]
-1B0F4; [79 6E B3, 05, 05]
+FDD1 3105; [7B 04 02, 05, 05] # BOPOMOFO first primary starts new lead byte (compressible)
-1B0F5; [79 6E BA, 05, 05]
+3105; [7B 06, 05, 05]
+31A0; [7B 06, 70, 05]
-1B0F6; [79 6E C1, 05, 05]
+3106; [7B 08, 05, 05]
+31B4; [7B 08, 05, 20]
-1B0F7; [79 6E C8, 05, 05]
+3107; [7B 0A, 05, 05]
-1B0F8; [79 6E CF, 05, 05]
+31AC; [7B 0C, 05, 05]
-1B0F9; [79 6E D6, 05, 05]
+3108; [7B 0E, 05, 05]
-1B0FA; [79 6E DD, 05, 05]
+312A; [7B 10, 05, 05]
-1B0FB; [79 6E E4, 05, 05]
+3109; [7B 12, 05, 05]
-1B0FC; [79 6E EB, 05, 05]
+310A; [7B 14, 05, 05]
+31B5; [7B 14, 05, 20]
-1B0FD; [79 6E F2, 05, 05]
+310B; [7B 16, 05, 05]
-1B0FE; [79 6E F9, 05, 05]
+312F; [7B 18, 05, 05]
-1B0FF; [79 6F 02, 05, 05]
+310C; [7B 1A, 05, 05]
-1B100; [79 6F 09, 05, 05]
+310D; [7B 1C, 05, 05]
+31A3; [7B 1C, 70, 05]
-1B101; [79 6F 10, 05, 05]
+310E; [7B 1E, 05, 05]
+31B6; [7B 1E, 05, 20]
-1B102; [79 6F 17, 05, 05]
+312B; [7B 20, 05, 05]
-1B103; [79 6F 1E, 05, 05]
+31AD; [7B 22, 05, 05]
-1B104; [79 6F 25, 05, 05]
+310F; [7B 24, 05, 05]
+31B7; [7B 24, 05, 20]
-1B105; [79 6F 2C, 05, 05]
+3110; [7B 26, 05, 05]
+31A2; [7B 26, 70, 05]
-1B106; [79 6F 33, 05, 05]
+3111; [7B 28, 05, 05]
-1B107; [79 6F 3A, 05, 05]
+3112; [7B 2A, 05, 05]
-1B108; [79 6F 41, 05, 05]
+312C; [7B 2C, 05, 05]
-1B109; [79 6F 48, 05, 05]
+3113; [7B 2E, 05, 05]
-1B10A; [79 6F 4F, 05, 05]
+3114; [7B 30, 05, 05]
-1B10B; [79 6F 56, 05, 05]
+3115; [7B 32, 05, 05]
-1B10C; [79 6F 5D, 05, 05]
+3116; [7B 34, 05, 05]
-1B10D; [79 6F 64, 05, 05]
+3117; [7B 36, 05, 05]
+31A1; [7B 36, 70, 05]
-1B10E; [79 6F 6B, 05, 05]
+3118; [7B 38, 05, 05]
-1B10F; [79 6F 72, 05, 05]
+3119; [7B 3A, 05, 05]
-1B110; [79 6F 79, 05, 05]
+31B8; [7B 3C, 05, 05]
-1B111; [79 6F 80, 05, 05]
+31B9; [7B 3E, 05, 05]
-1B112; [79 6F 87, 05, 05]
+31BA; [7B 40, 05, 05]
-1B113; [79 6F 8E, 05, 05]
+311A; [7B 42, 05, 05]
+31A9; [7B 42, 70, 05]
-1B114; [79 6F 95, 05, 05]
+311B; [7B 44, 05, 05]
+31A7; [7B 44, 70, 05]
-1B115; [79 6F 9C, 05, 05]
+31A6; [7B 46, 05, 05]
-1B116; [79 6F A3, 05, 05]
+311C; [7B 48, 05, 05]
+312E; [7B 48, 05, 20]
-1B117; [79 6F AA, 05, 05]
+311D; [7B 4A, 05, 05]
-1B118; [79 6F B1, 05, 05]
+31A4; [7B 4C, 05, 05]
+31A5; [7B 4C, 70, 05]
-1B119; [79 6F B8, 05, 05]
+311E; [7B 4E, 05, 05]
+31AE; [7B 4E, 70, 05]
-1B11A; [79 6F BF, 05, 05]
+311F; [7B 50, 05, 05]
-1B11B; [79 6F C6, 05, 05]
+3120; [7B 52, 05, 05]
+31AF; [7B 52, 70, 05]
-1B11C; [79 6F CD, 05, 05]
+3121; [7B 54, 05, 05]
-1B11D; [79 6F D4, 05, 05]
+3122; [7B 56, 05, 05]
-1B11E; [79 6F DB, 05, 05]
+3123; [7B 58, 05, 05]
-FDD1 3105; [7A 04 02, 05, 05] # BOPOMOFO first primary starts new lead byte (compressible)
+3124; [7B 5A, 05, 05]
-3105; [7A 06, 05, 05]
-31A0; [7A 06, 70, 05]
+31B2; [7B 5C, 05, 05]
-3106; [7A 08, 05, 05]
-31B4; [7A 08, 05, 20]
+3125; [7B 5E, 05, 05]
-3107; [7A 0A, 05, 05]
+31B0; [7B 60, 05, 05]
-3108; [7A 0C, 05, 05]
+31B1; [7B 62, 05, 05]
-312A; [7A 0E, 05, 05]
+3126; [7B 64, 05, 05]
-3109; [7A 10, 05, 05]
+3127; [7B 66, 05, 05]
+31AA; [7B 66, 70, 05]
+31B3; [7B 66, 70, 20]
-310A; [7A 12, 05, 05]
-31B5; [7A 12, 05, 20]
+3128; [7B 68, 05, 05]
+31AB; [7B 68, 70, 05]
+31A8; [7B 68, 78, 05]
-310B; [7A 14, 05, 05]
+3129; [7B 6A, 05, 05]
-310C; [7A 16, 05, 05]
+312D; [7B 6C, 05, 05]
-310D; [7A 18, 05, 05]
-31A3; [7A 18, 70, 05]
+FDD1 A288; [7B 6E 02, 05, 05] # YI first primary (compressible)
-310E; [7A 1A, 05, 05]
-31B6; [7A 1A, 05, 20]
+A000; [7B 6E 09, 05, 05]
-312B; [7A 1C, 05, 05]
+A001; [7B 6E 10, 05, 05]
-31AD; [7A 1E, 05, 05]
+A002; [7B 6E 17, 05, 05]
-310F; [7A 20, 05, 05]
-31B7; [7A 20, 05, 20]
+A003; [7B 6E 1E, 05, 05]
-3110; [7A 22, 05, 05]
-31A2; [7A 22, 70, 05]
+A004; [7B 6E 25, 05, 05]
-3111; [7A 24, 05, 05]
+A005; [7B 6E 2C, 05, 05]
-3112; [7A 26, 05, 05]
+A006; [7B 6E 33, 05, 05]
-312C; [7A 28, 05, 05]
+A007; [7B 6E 3A, 05, 05]
-3113; [7A 2A, 05, 05]
+A008; [7B 6E 41, 05, 05]
-3114; [7A 2C, 05, 05]
+A009; [7B 6E 48, 05, 05]
-3115; [7A 2E, 05, 05]
+A00A; [7B 6E 4F, 05, 05]
-3116; [7A 30, 05, 05]
+A00B; [7B 6E 56, 05, 05]
-3117; [7A 32, 05, 05]
-31A1; [7A 32, 70, 05]
+A00C; [7B 6E 5D, 05, 05]
-3118; [7A 34, 05, 05]
+A00D; [7B 6E 64, 05, 05]
-3119; [7A 36, 05, 05]
+A00E; [7B 6E 6B, 05, 05]
-31B8; [7A 38, 05, 05]
+A00F; [7B 6E 72, 05, 05]
-31B9; [7A 3A, 05, 05]
+A010; [7B 6E 79, 05, 05]
-31BA; [7A 3C, 05, 05]
+A011; [7B 6E 80, 05, 05]
-311A; [7A 3E, 05, 05]
-31A9; [7A 3E, 70, 05]
+A012; [7B 6E 87, 05, 05]
-311B; [7A 40, 05, 05]
-31A7; [7A 40, 70, 05]
+A013; [7B 6E 8E, 05, 05]
-31A6; [7A 42, 05, 05]
+A014; [7B 6E 95, 05, 05]
-311C; [7A 44, 05, 05]
-312E; [7A 44, 05, 20]
+A015; [7B 6E 9C, 05, 05]
-311D; [7A 46, 05, 05]
+A016; [7B 6E A3, 05, 05]
-31A4; [7A 48, 05, 05]
-31A5; [7A 48, 70, 05]
+A017; [7B 6E AA, 05, 05]
-311E; [7A 4A, 05, 05]
-31AE; [7A 4A, 70, 05]
+A018; [7B 6E B1, 05, 05]
-311F; [7A 4C, 05, 05]
+A019; [7B 6E B8, 05, 05]
-3120; [7A 4E, 05, 05]
-31AF; [7A 4E, 70, 05]
+A01A; [7B 6E BF, 05, 05]
-3121; [7A 50, 05, 05]
+A01B; [7B 6E C6, 05, 05]
-3122; [7A 52, 05, 05]
+A01C; [7B 6E CD, 05, 05]
-3123; [7A 54, 05, 05]
+A01D; [7B 6E D4, 05, 05]
-3124; [7A 56, 05, 05]
+A01E; [7B 6E DB, 05, 05]
-31B2; [7A 58, 05, 05]
+A01F; [7B 6E E2, 05, 05]
-3125; [7A 5A, 05, 05]
+A020; [7B 6E E9, 05, 05]
-31B0; [7A 5C, 05, 05]
+A021; [7B 6E F0, 05, 05]
-31B1; [7A 5E, 05, 05]
+A022; [7B 6E F7, 05, 05]
-31AC; [7A 60, 05, 05]
+A023; [7B 6E FE, 05, 05]
-3126; [7A 62, 05, 05]
+A024; [7B 6F 07, 05, 05]
-3127; [7A 64, 05, 05]
-31AA; [7A 64, 70, 05]
-31B3; [7A 64, 70, 20]
+A025; [7B 6F 0E, 05, 05]
-3128; [7A 66, 05, 05]
-31AB; [7A 66, 70, 05]
-31A8; [7A 66, 78, 05]
+A026; [7B 6F 15, 05, 05]
-3129; [7A 68, 05, 05]
+A027; [7B 6F 1C, 05, 05]
-312D; [7A 6A, 05, 05]
+A028; [7B 6F 23, 05, 05]
-FDD1 A288; [7A 6C 02, 05, 05] # YI first primary (compressible)
+A029; [7B 6F 2A, 05, 05]
-A000; [7A 6C 09, 05, 05]
+A02A; [7B 6F 31, 05, 05]
-A001; [7A 6C 10, 05, 05]
+A02B; [7B 6F 38, 05, 05]
-A002; [7A 6C 17, 05, 05]
+A02C; [7B 6F 3F, 05, 05]
-A003; [7A 6C 1E, 05, 05]
+A02D; [7B 6F 46, 05, 05]
-A004; [7A 6C 25, 05, 05]
+A02E; [7B 6F 4D, 05, 05]
-A005; [7A 6C 2C, 05, 05]
+A02F; [7B 6F 54, 05, 05]
-A006; [7A 6C 33, 05, 05]
+A030; [7B 6F 5B, 05, 05]
-A007; [7A 6C 3A, 05, 05]
+A031; [7B 6F 62, 05, 05]
-A008; [7A 6C 41, 05, 05]
+A032; [7B 6F 69, 05, 05]
-A009; [7A 6C 48, 05, 05]
+A033; [7B 6F 70, 05, 05]
-A00A; [7A 6C 4F, 05, 05]
+A034; [7B 6F 77, 05, 05]
-A00B; [7A 6C 56, 05, 05]
+A035; [7B 6F 7E, 05, 05]
-A00C; [7A 6C 5D, 05, 05]
+A036; [7B 6F 85, 05, 05]
-A00D; [7A 6C 64, 05, 05]
+A037; [7B 6F 8C, 05, 05]
-A00E; [7A 6C 6B, 05, 05]
+A038; [7B 6F 93, 05, 05]
-A00F; [7A 6C 72, 05, 05]
+A039; [7B 6F 9A, 05, 05]
-A010; [7A 6C 79, 05, 05]
+A03A; [7B 6F A1, 05, 05]
-A011; [7A 6C 80, 05, 05]
+A03B; [7B 6F A8, 05, 05]
-A012; [7A 6C 87, 05, 05]
+A03C; [7B 6F AF, 05, 05]
-A013; [7A 6C 8E, 05, 05]
+A03D; [7B 6F B6, 05, 05]
-A014; [7A 6C 95, 05, 05]
+A03E; [7B 6F BD, 05, 05]
-A015; [7A 6C 9C, 05, 05]
+A03F; [7B 6F C4, 05, 05]
-A016; [7A 6C A3, 05, 05]
+A040; [7B 6F CB, 05, 05]
-A017; [7A 6C AA, 05, 05]
+A041; [7B 6F D2, 05, 05]
-A018; [7A 6C B1, 05, 05]
+A042; [7B 6F D9, 05, 05]
-A019; [7A 6C B8, 05, 05]
+A043; [7B 6F E0, 05, 05]
-A01A; [7A 6C BF, 05, 05]
+A044; [7B 6F E7, 05, 05]
-A01B; [7A 6C C6, 05, 05]
+A045; [7B 6F EE, 05, 05]
-A01C; [7A 6C CD, 05, 05]
+A046; [7B 6F F5, 05, 05]
-A01D; [7A 6C D4, 05, 05]
+A047; [7B 6F FC, 05, 05]
-A01E; [7A 6C DB, 05, 05]
+A048; [7B 70 05, 05, 05]
-A01F; [7A 6C E2, 05, 05]
+A049; [7B 70 0C, 05, 05]
-A020; [7A 6C E9, 05, 05]
+A04A; [7B 70 13, 05, 05]
-A021; [7A 6C F0, 05, 05]
+A04B; [7B 70 1A, 05, 05]
-A022; [7A 6C F7, 05, 05]
+A04C; [7B 70 21, 05, 05]
-A023; [7A 6C FE, 05, 05]
+A04D; [7B 70 28, 05, 05]
-A024; [7A 6D 07, 05, 05]
+A04E; [7B 70 2F, 05, 05]
-A025; [7A 6D 0E, 05, 05]
+A04F; [7B 70 36, 05, 05]
-A026; [7A 6D 15, 05, 05]
+A050; [7B 70 3D, 05, 05]
-A027; [7A 6D 1C, 05, 05]
+A051; [7B 70 44, 05, 05]
-A028; [7A 6D 23, 05, 05]
+A052; [7B 70 4B, 05, 05]
-A029; [7A 6D 2A, 05, 05]
+A053; [7B 70 52, 05, 05]
-A02A; [7A 6D 31, 05, 05]
+A054; [7B 70 59, 05, 05]
-A02B; [7A 6D 38, 05, 05]
+A055; [7B 70 60, 05, 05]
-A02C; [7A 6D 3F, 05, 05]
+A056; [7B 70 67, 05, 05]
-A02D; [7A 6D 46, 05, 05]
+A057; [7B 70 6E, 05, 05]
-A02E; [7A 6D 4D, 05, 05]
+A058; [7B 70 75, 05, 05]
-A02F; [7A 6D 54, 05, 05]
+A059; [7B 70 7C, 05, 05]
-A030; [7A 6D 5B, 05, 05]
+A05A; [7B 70 83, 05, 05]
-A031; [7A 6D 62, 05, 05]
+A05B; [7B 70 8A, 05, 05]
-A032; [7A 6D 69, 05, 05]
+A05C; [7B 70 91, 05, 05]
-A033; [7A 6D 70, 05, 05]
+A05D; [7B 70 98, 05, 05]
-A034; [7A 6D 77, 05, 05]
+A05E; [7B 70 9F, 05, 05]
-A035; [7A 6D 7E, 05, 05]
+A05F; [7B 70 A6, 05, 05]
-A036; [7A 6D 85, 05, 05]
+A060; [7B 70 AD, 05, 05]
-A037; [7A 6D 8C, 05, 05]
+A061; [7B 70 B4, 05, 05]
-A038; [7A 6D 93, 05, 05]
+A062; [7B 70 BB, 05, 05]
-A039; [7A 6D 9A, 05, 05]
+A063; [7B 70 C2, 05, 05]
-A03A; [7A 6D A1, 05, 05]
+A064; [7B 70 C9, 05, 05]
-A03B; [7A 6D A8, 05, 05]
+A065; [7B 70 D0, 05, 05]
-A03C; [7A 6D AF, 05, 05]
+A066; [7B 70 D7, 05, 05]
-A03D; [7A 6D B6, 05, 05]
+A067; [7B 70 DE, 05, 05]
-A03E; [7A 6D BD, 05, 05]
+A068; [7B 70 E5, 05, 05]
-A03F; [7A 6D C4, 05, 05]
+A069; [7B 70 EC, 05, 05]
-A040; [7A 6D CB, 05, 05]
+A06A; [7B 70 F3, 05, 05]
-A041; [7A 6D D2, 05, 05]
+A06B; [7B 70 FA, 05, 05]
-A042; [7A 6D D9, 05, 05]
+A06C; [7B 71 03, 05, 05]
-A043; [7A 6D E0, 05, 05]
+A06D; [7B 71 0A, 05, 05]
-A044; [7A 6D E7, 05, 05]
+A06E; [7B 71 11, 05, 05]
-A045; [7A 6D EE, 05, 05]
+A06F; [7B 71 18, 05, 05]
-A046; [7A 6D F5, 05, 05]
+A070; [7B 71 1F, 05, 05]
-A047; [7A 6D FC, 05, 05]
+A071; [7B 71 26, 05, 05]
-A048; [7A 6E 05, 05, 05]
+A072; [7B 71 2D, 05, 05]
-A049; [7A 6E 0C, 05, 05]
+A073; [7B 71 34, 05, 05]
-A04A; [7A 6E 13, 05, 05]
+A074; [7B 71 3B, 05, 05]
-A04B; [7A 6E 1A, 05, 05]
+A075; [7B 71 42, 05, 05]
-A04C; [7A 6E 21, 05, 05]
+A076; [7B 71 49, 05, 05]
-A04D; [7A 6E 28, 05, 05]
+A077; [7B 71 50, 05, 05]
-A04E; [7A 6E 2F, 05, 05]
+A078; [7B 71 57, 05, 05]
-A04F; [7A 6E 36, 05, 05]
+A079; [7B 71 5E, 05, 05]
-A050; [7A 6E 3D, 05, 05]
+A07A; [7B 71 65, 05, 05]
-A051; [7A 6E 44, 05, 05]
+A07B; [7B 71 6C, 05, 05]
-A052; [7A 6E 4B, 05, 05]
+A07C; [7B 71 73, 05, 05]
-A053; [7A 6E 52, 05, 05]
+A07D; [7B 71 7A, 05, 05]
-A054; [7A 6E 59, 05, 05]
+A07E; [7B 71 81, 05, 05]
-A055; [7A 6E 60, 05, 05]
+A07F; [7B 71 88, 05, 05]
-A056; [7A 6E 67, 05, 05]
+A080; [7B 71 8F, 05, 05]
-A057; [7A 6E 6E, 05, 05]
+A081; [7B 71 96, 05, 05]
-A058; [7A 6E 75, 05, 05]
+A082; [7B 71 9D, 05, 05]
-A059; [7A 6E 7C, 05, 05]
+A083; [7B 71 A4, 05, 05]
-A05A; [7A 6E 83, 05, 05]
+A084; [7B 71 AB, 05, 05]
-A05B; [7A 6E 8A, 05, 05]
+A085; [7B 71 B2, 05, 05]
-A05C; [7A 6E 91, 05, 05]
+A086; [7B 71 B9, 05, 05]
-A05D; [7A 6E 98, 05, 05]
+A087; [7B 71 C0, 05, 05]
-A05E; [7A 6E 9F, 05, 05]
+A088; [7B 71 C7, 05, 05]
-A05F; [7A 6E A6, 05, 05]
+A089; [7B 71 CE, 05, 05]
-A060; [7A 6E AD, 05, 05]
+A08A; [7B 71 D5, 05, 05]
-A061; [7A 6E B4, 05, 05]
+A08B; [7B 71 DC, 05, 05]
-A062; [7A 6E BB, 05, 05]
+A08C; [7B 71 E3, 05, 05]
-A063; [7A 6E C2, 05, 05]
+A08D; [7B 71 EA, 05, 05]
-A064; [7A 6E C9, 05, 05]
+A08E; [7B 71 F1, 05, 05]
-A065; [7A 6E D0, 05, 05]
+A08F; [7B 71 F8, 05, 05]
-A066; [7A 6E D7, 05, 05]
+A090; [7B 71 FF, 05, 05]
-A067; [7A 6E DE, 05, 05]
+A091; [7B 72 08, 05, 05]
-A068; [7A 6E E5, 05, 05]
+A092; [7B 72 0F, 05, 05]
-A069; [7A 6E EC, 05, 05]
+A093; [7B 72 16, 05, 05]
-A06A; [7A 6E F3, 05, 05]
+A094; [7B 72 1D, 05, 05]
-A06B; [7A 6E FA, 05, 05]
+A095; [7B 72 24, 05, 05]
-A06C; [7A 6F 03, 05, 05]
+A096; [7B 72 2B, 05, 05]
-A06D; [7A 6F 0A, 05, 05]
+A097; [7B 72 32, 05, 05]
-A06E; [7A 6F 11, 05, 05]
+A098; [7B 72 39, 05, 05]
-A06F; [7A 6F 18, 05, 05]
+A099; [7B 72 40, 05, 05]
-A070; [7A 6F 1F, 05, 05]
+A09A; [7B 72 47, 05, 05]
-A071; [7A 6F 26, 05, 05]
+A09B; [7B 72 4E, 05, 05]
-A072; [7A 6F 2D, 05, 05]
+A09C; [7B 72 55, 05, 05]
-A073; [7A 6F 34, 05, 05]
+A09D; [7B 72 5C, 05, 05]
-A074; [7A 6F 3B, 05, 05]
+A09E; [7B 72 63, 05, 05]
-A075; [7A 6F 42, 05, 05]
+A09F; [7B 72 6A, 05, 05]
-A076; [7A 6F 49, 05, 05]
+A0A0; [7B 72 71, 05, 05]
-A077; [7A 6F 50, 05, 05]
+A0A1; [7B 72 78, 05, 05]
-A078; [7A 6F 57, 05, 05]
+A0A2; [7B 72 7F, 05, 05]
-A079; [7A 6F 5E, 05, 05]
+A0A3; [7B 72 86, 05, 05]
-A07A; [7A 6F 65, 05, 05]
+A0A4; [7B 72 8D, 05, 05]
-A07B; [7A 6F 6C, 05, 05]
+A0A5; [7B 72 94, 05, 05]
-A07C; [7A 6F 73, 05, 05]
+A0A6; [7B 72 9B, 05, 05]
-A07D; [7A 6F 7A, 05, 05]
+A0A7; [7B 72 A2, 05, 05]
-A07E; [7A 6F 81, 05, 05]
+A0A8; [7B 72 A9, 05, 05]
-A07F; [7A 6F 88, 05, 05]
+A0A9; [7B 72 B0, 05, 05]
-A080; [7A 6F 8F, 05, 05]
+A0AA; [7B 72 B7, 05, 05]
-A081; [7A 6F 96, 05, 05]
+A0AB; [7B 72 BE, 05, 05]
-A082; [7A 6F 9D, 05, 05]
+A0AC; [7B 72 C5, 05, 05]
-A083; [7A 6F A4, 05, 05]
+A0AD; [7B 72 CC, 05, 05]
-A084; [7A 6F AB, 05, 05]
+A0AE; [7B 72 D3, 05, 05]
-A085; [7A 6F B2, 05, 05]
+A0AF; [7B 72 DA, 05, 05]
-A086; [7A 6F B9, 05, 05]
+A0B0; [7B 72 E1, 05, 05]
-A087; [7A 6F C0, 05, 05]
+A0B1; [7B 72 E8, 05, 05]
-A088; [7A 6F C7, 05, 05]
+A0B2; [7B 72 EF, 05, 05]
-A089; [7A 6F CE, 05, 05]
+A0B3; [7B 72 F6, 05, 05]
-A08A; [7A 6F D5, 05, 05]
+A0B4; [7B 72 FD, 05, 05]
-A08B; [7A 6F DC, 05, 05]
+A0B5; [7B 73 06, 05, 05]
-A08C; [7A 6F E3, 05, 05]
+A0B6; [7B 73 0D, 05, 05]
-A08D; [7A 6F EA, 05, 05]
+A0B7; [7B 73 14, 05, 05]
-A08E; [7A 6F F1, 05, 05]
+A0B8; [7B 73 1B, 05, 05]
-A08F; [7A 6F F8, 05, 05]
+A0B9; [7B 73 22, 05, 05]
-A090; [7A 6F FF, 05, 05]
+A0BA; [7B 73 29, 05, 05]
-A091; [7A 70 08, 05, 05]
+A0BB; [7B 73 30, 05, 05]
-A092; [7A 70 0F, 05, 05]
+A0BC; [7B 73 37, 05, 05]
-A093; [7A 70 16, 05, 05]
+A0BD; [7B 73 3E, 05, 05]
-A094; [7A 70 1D, 05, 05]
+A0BE; [7B 73 45, 05, 05]
-A095; [7A 70 24, 05, 05]
+A0BF; [7B 73 4C, 05, 05]
-A096; [7A 70 2B, 05, 05]
+A0C0; [7B 73 53, 05, 05]
-A097; [7A 70 32, 05, 05]
+A0C1; [7B 73 5A, 05, 05]
-A098; [7A 70 39, 05, 05]
+A0C2; [7B 73 61, 05, 05]
-A099; [7A 70 40, 05, 05]
+A0C3; [7B 73 68, 05, 05]
-A09A; [7A 70 47, 05, 05]
+A0C4; [7B 73 6F, 05, 05]
-A09B; [7A 70 4E, 05, 05]
+A0C5; [7B 73 76, 05, 05]
-A09C; [7A 70 55, 05, 05]
+A0C6; [7B 73 7D, 05, 05]
-A09D; [7A 70 5C, 05, 05]
+A0C7; [7B 73 84, 05, 05]
-A09E; [7A 70 63, 05, 05]
+A0C8; [7B 73 8B, 05, 05]
-A09F; [7A 70 6A, 05, 05]
+A0C9; [7B 73 92, 05, 05]
-A0A0; [7A 70 71, 05, 05]
+A0CA; [7B 73 99, 05, 05]
-A0A1; [7A 70 78, 05, 05]
+A0CB; [7B 73 A0, 05, 05]
-A0A2; [7A 70 7F, 05, 05]
+A0CC; [7B 73 A7, 05, 05]
-A0A3; [7A 70 86, 05, 05]
+A0CD; [7B 73 AE, 05, 05]
-A0A4; [7A 70 8D, 05, 05]
+A0CE; [7B 73 B5, 05, 05]
-A0A5; [7A 70 94, 05, 05]
+A0CF; [7B 73 BC, 05, 05]
-A0A6; [7A 70 9B, 05, 05]
+A0D0; [7B 73 C3, 05, 05]
-A0A7; [7A 70 A2, 05, 05]
+A0D1; [7B 73 CA, 05, 05]
-A0A8; [7A 70 A9, 05, 05]
+A0D2; [7B 73 D1, 05, 05]
-A0A9; [7A 70 B0, 05, 05]
+A0D3; [7B 73 D8, 05, 05]
-A0AA; [7A 70 B7, 05, 05]
+A0D4; [7B 73 DF, 05, 05]
-A0AB; [7A 70 BE, 05, 05]
+A0D5; [7B 73 E6, 05, 05]
-A0AC; [7A 70 C5, 05, 05]
+A0D6; [7B 73 ED, 05, 05]
-A0AD; [7A 70 CC, 05, 05]
+A0D7; [7B 73 F4, 05, 05]
-A0AE; [7A 70 D3, 05, 05]
+A0D8; [7B 73 FB, 05, 05]
-A0AF; [7A 70 DA, 05, 05]
+A0D9; [7B 74 04, 05, 05]
-A0B0; [7A 70 E1, 05, 05]
+A0DA; [7B 74 0B, 05, 05]
-A0B1; [7A 70 E8, 05, 05]
+A0DB; [7B 74 12, 05, 05]
-A0B2; [7A 70 EF, 05, 05]
+A0DC; [7B 74 19, 05, 05]
-A0B3; [7A 70 F6, 05, 05]
+A0DD; [7B 74 20, 05, 05]
-A0B4; [7A 70 FD, 05, 05]
+A0DE; [7B 74 27, 05, 05]
-A0B5; [7A 71 06, 05, 05]
+A0DF; [7B 74 2E, 05, 05]
-A0B6; [7A 71 0D, 05, 05]
+A0E0; [7B 74 35, 05, 05]
-A0B7; [7A 71 14, 05, 05]
+A0E1; [7B 74 3C, 05, 05]
-A0B8; [7A 71 1B, 05, 05]
+A0E2; [7B 74 43, 05, 05]
-A0B9; [7A 71 22, 05, 05]
+A0E3; [7B 74 4A, 05, 05]
-A0BA; [7A 71 29, 05, 05]
+A0E4; [7B 74 51, 05, 05]
-A0BB; [7A 71 30, 05, 05]
+A0E5; [7B 74 58, 05, 05]
-A0BC; [7A 71 37, 05, 05]
+A0E6; [7B 74 5F, 05, 05]
-A0BD; [7A 71 3E, 05, 05]
+A0E7; [7B 74 66, 05, 05]
-A0BE; [7A 71 45, 05, 05]
+A0E8; [7B 74 6D, 05, 05]
-A0BF; [7A 71 4C, 05, 05]
+A0E9; [7B 74 74, 05, 05]
-A0C0; [7A 71 53, 05, 05]
+A0EA; [7B 74 7B, 05, 05]
-A0C1; [7A 71 5A, 05, 05]
+A0EB; [7B 74 82, 05, 05]
-A0C2; [7A 71 61, 05, 05]
+A0EC; [7B 74 89, 05, 05]
-A0C3; [7A 71 68, 05, 05]
+A0ED; [7B 74 90, 05, 05]
-A0C4; [7A 71 6F, 05, 05]
+A0EE; [7B 74 97, 05, 05]
-A0C5; [7A 71 76, 05, 05]
+A0EF; [7B 74 9E, 05, 05]
-A0C6; [7A 71 7D, 05, 05]
+A0F0; [7B 74 A5, 05, 05]
-A0C7; [7A 71 84, 05, 05]
+A0F1; [7B 74 AC, 05, 05]
-A0C8; [7A 71 8B, 05, 05]
+A0F2; [7B 74 B3, 05, 05]
-A0C9; [7A 71 92, 05, 05]
+A0F3; [7B 74 BA, 05, 05]
-A0CA; [7A 71 99, 05, 05]
+A0F4; [7B 74 C1, 05, 05]
-A0CB; [7A 71 A0, 05, 05]
+A0F5; [7B 74 C8, 05, 05]
-A0CC; [7A 71 A7, 05, 05]
+A0F6; [7B 74 CF, 05, 05]
-A0CD; [7A 71 AE, 05, 05]
+A0F7; [7B 74 D6, 05, 05]
-A0CE; [7A 71 B5, 05, 05]
+A0F8; [7B 74 DD, 05, 05]
-A0CF; [7A 71 BC, 05, 05]
+A0F9; [7B 74 E4, 05, 05]
-A0D0; [7A 71 C3, 05, 05]
+A0FA; [7B 74 EB, 05, 05]
-A0D1; [7A 71 CA, 05, 05]
+A0FB; [7B 74 F2, 05, 05]
-A0D2; [7A 71 D1, 05, 05]
+A0FC; [7B 74 F9, 05, 05]
-A0D3; [7A 71 D8, 05, 05]
+A0FD; [7B 75 02, 05, 05]
-A0D4; [7A 71 DF, 05, 05]
+A0FE; [7B 75 09, 05, 05]
-A0D5; [7A 71 E6, 05, 05]
+A0FF; [7B 75 10, 05, 05]
-A0D6; [7A 71 ED, 05, 05]
+A100; [7B 75 17, 05, 05]
-A0D7; [7A 71 F4, 05, 05]
+A101; [7B 75 1E, 05, 05]
-A0D8; [7A 71 FB, 05, 05]
+A102; [7B 75 25, 05, 05]
-A0D9; [7A 72 04, 05, 05]
+A103; [7B 75 2C, 05, 05]
-A0DA; [7A 72 0B, 05, 05]
+A104; [7B 75 33, 05, 05]
-A0DB; [7A 72 12, 05, 05]
+A105; [7B 75 3A, 05, 05]
-A0DC; [7A 72 19, 05, 05]
+A106; [7B 75 41, 05, 05]
-A0DD; [7A 72 20, 05, 05]
+A107; [7B 75 48, 05, 05]
-A0DE; [7A 72 27, 05, 05]
+A108; [7B 75 4F, 05, 05]
-A0DF; [7A 72 2E, 05, 05]
+A109; [7B 75 56, 05, 05]
-A0E0; [7A 72 35, 05, 05]
+A10A; [7B 75 5D, 05, 05]
-A0E1; [7A 72 3C, 05, 05]
+A10B; [7B 75 64, 05, 05]
-A0E2; [7A 72 43, 05, 05]
+A10C; [7B 75 6B, 05, 05]
-A0E3; [7A 72 4A, 05, 05]
+A10D; [7B 75 72, 05, 05]
-A0E4; [7A 72 51, 05, 05]
+A10E; [7B 75 79, 05, 05]
-A0E5; [7A 72 58, 05, 05]
+A10F; [7B 75 80, 05, 05]
-A0E6; [7A 72 5F, 05, 05]
+A110; [7B 75 87, 05, 05]
-A0E7; [7A 72 66, 05, 05]
+A111; [7B 75 8E, 05, 05]
-A0E8; [7A 72 6D, 05, 05]
+A112; [7B 75 95, 05, 05]
-A0E9; [7A 72 74, 05, 05]
+A113; [7B 75 9C, 05, 05]
-A0EA; [7A 72 7B, 05, 05]
+A114; [7B 75 A3, 05, 05]
-A0EB; [7A 72 82, 05, 05]
+A115; [7B 75 AA, 05, 05]
-A0EC; [7A 72 89, 05, 05]
+A116; [7B 75 B1, 05, 05]
-A0ED; [7A 72 90, 05, 05]
+A117; [7B 75 B8, 05, 05]
-A0EE; [7A 72 97, 05, 05]
+A118; [7B 75 BF, 05, 05]
-A0EF; [7A 72 9E, 05, 05]
+A119; [7B 75 C6, 05, 05]
-A0F0; [7A 72 A5, 05, 05]
+A11A; [7B 75 CD, 05, 05]
-A0F1; [7A 72 AC, 05, 05]
+A11B; [7B 75 D4, 05, 05]
-A0F2; [7A 72 B3, 05, 05]
+A11C; [7B 75 DB, 05, 05]
-A0F3; [7A 72 BA, 05, 05]
+A11D; [7B 75 E2, 05, 05]
-A0F4; [7A 72 C1, 05, 05]
+A11E; [7B 75 E9, 05, 05]
-A0F5; [7A 72 C8, 05, 05]
+A11F; [7B 75 F0, 05, 05]
-A0F6; [7A 72 CF, 05, 05]
+A120; [7B 75 F7, 05, 05]
-A0F7; [7A 72 D6, 05, 05]
+A121; [7B 75 FE, 05, 05]
-A0F8; [7A 72 DD, 05, 05]
+A122; [7B 76 07, 05, 05]
-A0F9; [7A 72 E4, 05, 05]
+A123; [7B 76 0E, 05, 05]
-A0FA; [7A 72 EB, 05, 05]
+A124; [7B 76 15, 05, 05]
-A0FB; [7A 72 F2, 05, 05]
+A125; [7B 76 1C, 05, 05]
-A0FC; [7A 72 F9, 05, 05]
+A126; [7B 76 23, 05, 05]
-A0FD; [7A 73 02, 05, 05]
+A127; [7B 76 2A, 05, 05]
-A0FE; [7A 73 09, 05, 05]
+A128; [7B 76 31, 05, 05]
-A0FF; [7A 73 10, 05, 05]
+A129; [7B 76 38, 05, 05]
-A100; [7A 73 17, 05, 05]
+A12A; [7B 76 3F, 05, 05]
-A101; [7A 73 1E, 05, 05]
+A12B; [7B 76 46, 05, 05]
-A102; [7A 73 25, 05, 05]
+A12C; [7B 76 4D, 05, 05]
-A103; [7A 73 2C, 05, 05]
+A12D; [7B 76 54, 05, 05]
-A104; [7A 73 33, 05, 05]
+A12E; [7B 76 5B, 05, 05]
-A105; [7A 73 3A, 05, 05]
+A12F; [7B 76 62, 05, 05]
-A106; [7A 73 41, 05, 05]
+A130; [7B 76 69, 05, 05]
-A107; [7A 73 48, 05, 05]
+A131; [7B 76 70, 05, 05]
-A108; [7A 73 4F, 05, 05]
+A132; [7B 76 77, 05, 05]
-A109; [7A 73 56, 05, 05]
+A133; [7B 76 7E, 05, 05]
-A10A; [7A 73 5D, 05, 05]
+A134; [7B 76 85, 05, 05]
-A10B; [7A 73 64, 05, 05]
+A135; [7B 76 8C, 05, 05]
-A10C; [7A 73 6B, 05, 05]
+A136; [7B 76 93, 05, 05]
-A10D; [7A 73 72, 05, 05]
+A137; [7B 76 9A, 05, 05]
-A10E; [7A 73 79, 05, 05]
+A138; [7B 76 A1, 05, 05]
-A10F; [7A 73 80, 05, 05]
+A139; [7B 76 A8, 05, 05]
-A110; [7A 73 87, 05, 05]
+A13A; [7B 76 AF, 05, 05]
-A111; [7A 73 8E, 05, 05]
+A13B; [7B 76 B6, 05, 05]
-A112; [7A 73 95, 05, 05]
+A13C; [7B 76 BD, 05, 05]
-A113; [7A 73 9C, 05, 05]
+A13D; [7B 76 C4, 05, 05]
-A114; [7A 73 A3, 05, 05]
+A13E; [7B 76 CB, 05, 05]
-A115; [7A 73 AA, 05, 05]
+A13F; [7B 76 D2, 05, 05]
-A116; [7A 73 B1, 05, 05]
+A140; [7B 76 D9, 05, 05]
-A117; [7A 73 B8, 05, 05]
+A141; [7B 76 E0, 05, 05]
-A118; [7A 73 BF, 05, 05]
+A142; [7B 76 E7, 05, 05]
-A119; [7A 73 C6, 05, 05]
+A143; [7B 76 EE, 05, 05]
-A11A; [7A 73 CD, 05, 05]
+A144; [7B 76 F5, 05, 05]
-A11B; [7A 73 D4, 05, 05]
+A145; [7B 76 FC, 05, 05]
-A11C; [7A 73 DB, 05, 05]
+A146; [7B 77 05, 05, 05]
-A11D; [7A 73 E2, 05, 05]
+A147; [7B 77 0C, 05, 05]
-A11E; [7A 73 E9, 05, 05]
+A148; [7B 77 13, 05, 05]
-A11F; [7A 73 F0, 05, 05]
+A149; [7B 77 1A, 05, 05]
-A120; [7A 73 F7, 05, 05]
+A14A; [7B 77 21, 05, 05]
-A121; [7A 73 FE, 05, 05]
+A14B; [7B 77 28, 05, 05]
-A122; [7A 74 07, 05, 05]
+A14C; [7B 77 2F, 05, 05]
-A123; [7A 74 0E, 05, 05]
+A14D; [7B 77 36, 05, 05]
-A124; [7A 74 15, 05, 05]
+A14E; [7B 77 3D, 05, 05]
-A125; [7A 74 1C, 05, 05]
+A14F; [7B 77 44, 05, 05]
-A126; [7A 74 23, 05, 05]
+A150; [7B 77 4B, 05, 05]
-A127; [7A 74 2A, 05, 05]
+A151; [7B 77 52, 05, 05]
-A128; [7A 74 31, 05, 05]
+A152; [7B 77 59, 05, 05]
-A129; [7A 74 38, 05, 05]
+A153; [7B 77 60, 05, 05]
-A12A; [7A 74 3F, 05, 05]
+A154; [7B 77 67, 05, 05]
-A12B; [7A 74 46, 05, 05]
+A155; [7B 77 6E, 05, 05]
-A12C; [7A 74 4D, 05, 05]
+A156; [7B 77 75, 05, 05]
-A12D; [7A 74 54, 05, 05]
+A157; [7B 77 7C, 05, 05]
-A12E; [7A 74 5B, 05, 05]
+A158; [7B 77 83, 05, 05]
-A12F; [7A 74 62, 05, 05]
+A159; [7B 77 8A, 05, 05]
-A130; [7A 74 69, 05, 05]
+A15A; [7B 77 91, 05, 05]
-A131; [7A 74 70, 05, 05]
+A15B; [7B 77 98, 05, 05]
-A132; [7A 74 77, 05, 05]
+A15C; [7B 77 9F, 05, 05]
-A133; [7A 74 7E, 05, 05]
+A15D; [7B 77 A6, 05, 05]
-A134; [7A 74 85, 05, 05]
+A15E; [7B 77 AD, 05, 05]
-A135; [7A 74 8C, 05, 05]
+A15F; [7B 77 B4, 05, 05]
-A136; [7A 74 93, 05, 05]
+A160; [7B 77 BB, 05, 05]
-A137; [7A 74 9A, 05, 05]
+A161; [7B 77 C2, 05, 05]
-A138; [7A 74 A1, 05, 05]
+A162; [7B 77 C9, 05, 05]
-A139; [7A 74 A8, 05, 05]
+A163; [7B 77 D0, 05, 05]
-A13A; [7A 74 AF, 05, 05]
+A164; [7B 77 D7, 05, 05]
-A13B; [7A 74 B6, 05, 05]
+A165; [7B 77 DE, 05, 05]
-A13C; [7A 74 BD, 05, 05]
+A166; [7B 77 E5, 05, 05]
-A13D; [7A 74 C4, 05, 05]
+A167; [7B 77 EC, 05, 05]
-A13E; [7A 74 CB, 05, 05]
+A168; [7B 77 F3, 05, 05]
-A13F; [7A 74 D2, 05, 05]
+A169; [7B 77 FA, 05, 05]
-A140; [7A 74 D9, 05, 05]
+A16A; [7B 78 03, 05, 05]
-A141; [7A 74 E0, 05, 05]
+A16B; [7B 78 0A, 05, 05]
-A142; [7A 74 E7, 05, 05]
+A16C; [7B 78 11, 05, 05]
-A143; [7A 74 EE, 05, 05]
+A16D; [7B 78 18, 05, 05]
-A144; [7A 74 F5, 05, 05]
+A16E; [7B 78 1F, 05, 05]
-A145; [7A 74 FC, 05, 05]
+A16F; [7B 78 26, 05, 05]
-A146; [7A 75 05, 05, 05]
+A170; [7B 78 2D, 05, 05]
-A147; [7A 75 0C, 05, 05]
+A171; [7B 78 34, 05, 05]
-A148; [7A 75 13, 05, 05]
+A172; [7B 78 3B, 05, 05]
-A149; [7A 75 1A, 05, 05]
+A173; [7B 78 42, 05, 05]
-A14A; [7A 75 21, 05, 05]
+A174; [7B 78 49, 05, 05]
-A14B; [7A 75 28, 05, 05]
+A175; [7B 78 50, 05, 05]
-A14C; [7A 75 2F, 05, 05]
+A176; [7B 78 57, 05, 05]
-A14D; [7A 75 36, 05, 05]
+A177; [7B 78 5E, 05, 05]
-A14E; [7A 75 3D, 05, 05]
+A178; [7B 78 65, 05, 05]
-A14F; [7A 75 44, 05, 05]
+A179; [7B 78 6C, 05, 05]
-A150; [7A 75 4B, 05, 05]
+A17A; [7B 78 73, 05, 05]
-A151; [7A 75 52, 05, 05]
+A17B; [7B 78 7A, 05, 05]
-A152; [7A 75 59, 05, 05]
+A17C; [7B 78 81, 05, 05]
-A153; [7A 75 60, 05, 05]
+A17D; [7B 78 88, 05, 05]
-A154; [7A 75 67, 05, 05]
+A17E; [7B 78 8F, 05, 05]
-A155; [7A 75 6E, 05, 05]
+A17F; [7B 78 96, 05, 05]
-A156; [7A 75 75, 05, 05]
+A180; [7B 78 9D, 05, 05]
-A157; [7A 75 7C, 05, 05]
+A181; [7B 78 A4, 05, 05]
-A158; [7A 75 83, 05, 05]
+A182; [7B 78 AB, 05, 05]
-A159; [7A 75 8A, 05, 05]
+A183; [7B 78 B2, 05, 05]
-A15A; [7A 75 91, 05, 05]
+A184; [7B 78 B9, 05, 05]
-A15B; [7A 75 98, 05, 05]
+A185; [7B 78 C0, 05, 05]
-A15C; [7A 75 9F, 05, 05]
+A186; [7B 78 C7, 05, 05]
-A15D; [7A 75 A6, 05, 05]
+A187; [7B 78 CE, 05, 05]
-A15E; [7A 75 AD, 05, 05]
+A188; [7B 78 D5, 05, 05]
-A15F; [7A 75 B4, 05, 05]
+A189; [7B 78 DC, 05, 05]
-A160; [7A 75 BB, 05, 05]
+A18A; [7B 78 E3, 05, 05]
-A161; [7A 75 C2, 05, 05]
+A18B; [7B 78 EA, 05, 05]
-A162; [7A 75 C9, 05, 05]
+A18C; [7B 78 F1, 05, 05]
-A163; [7A 75 D0, 05, 05]
+A18D; [7B 78 F8, 05, 05]
-A164; [7A 75 D7, 05, 05]
+A18E; [7B 78 FF, 05, 05]
-A165; [7A 75 DE, 05, 05]
+A18F; [7B 79 08, 05, 05]
-A166; [7A 75 E5, 05, 05]
+A190; [7B 79 0F, 05, 05]
-A167; [7A 75 EC, 05, 05]
+A191; [7B 79 16, 05, 05]
-A168; [7A 75 F3, 05, 05]
+A192; [7B 79 1D, 05, 05]
-A169; [7A 75 FA, 05, 05]
+A193; [7B 79 24, 05, 05]
-A16A; [7A 76 03, 05, 05]
+A194; [7B 79 2B, 05, 05]
-A16B; [7A 76 0A, 05, 05]
+A195; [7B 79 32, 05, 05]
-A16C; [7A 76 11, 05, 05]
+A196; [7B 79 39, 05, 05]
-A16D; [7A 76 18, 05, 05]
+A197; [7B 79 40, 05, 05]
-A16E; [7A 76 1F, 05, 05]
+A198; [7B 79 47, 05, 05]
-A16F; [7A 76 26, 05, 05]
+A199; [7B 79 4E, 05, 05]
-A170; [7A 76 2D, 05, 05]
+A19A; [7B 79 55, 05, 05]
-A171; [7A 76 34, 05, 05]
+A19B; [7B 79 5C, 05, 05]
-A172; [7A 76 3B, 05, 05]
+A19C; [7B 79 63, 05, 05]
-A173; [7A 76 42, 05, 05]
+A19D; [7B 79 6A, 05, 05]
-A174; [7A 76 49, 05, 05]
+A19E; [7B 79 71, 05, 05]
-A175; [7A 76 50, 05, 05]
+A19F; [7B 79 78, 05, 05]
-A176; [7A 76 57, 05, 05]
+A1A0; [7B 79 7F, 05, 05]
-A177; [7A 76 5E, 05, 05]
+A1A1; [7B 79 86, 05, 05]
-A178; [7A 76 65, 05, 05]
+A1A2; [7B 79 8D, 05, 05]
-A179; [7A 76 6C, 05, 05]
+A1A3; [7B 79 94, 05, 05]
-A17A; [7A 76 73, 05, 05]
+A1A4; [7B 79 9B, 05, 05]
-A17B; [7A 76 7A, 05, 05]
+A1A5; [7B 79 A2, 05, 05]
-A17C; [7A 76 81, 05, 05]
+A1A6; [7B 79 A9, 05, 05]
-A17D; [7A 76 88, 05, 05]
+A1A7; [7B 79 B0, 05, 05]
-A17E; [7A 76 8F, 05, 05]
+A1A8; [7B 79 B7, 05, 05]
-A17F; [7A 76 96, 05, 05]
+A1A9; [7B 79 BE, 05, 05]
-A180; [7A 76 9D, 05, 05]
+A1AA; [7B 79 C5, 05, 05]
-A181; [7A 76 A4, 05, 05]
+A1AB; [7B 79 CC, 05, 05]
-A182; [7A 76 AB, 05, 05]
+A1AC; [7B 79 D3, 05, 05]
-A183; [7A 76 B2, 05, 05]
+A1AD; [7B 79 DA, 05, 05]
-A184; [7A 76 B9, 05, 05]
+A1AE; [7B 79 E1, 05, 05]
-A185; [7A 76 C0, 05, 05]
+A1AF; [7B 79 E8, 05, 05]
-A186; [7A 76 C7, 05, 05]
+A1B0; [7B 79 EF, 05, 05]
-A187; [7A 76 CE, 05, 05]
+A1B1; [7B 79 F6, 05, 05]
-A188; [7A 76 D5, 05, 05]
+A1B2; [7B 79 FD, 05, 05]
-A189; [7A 76 DC, 05, 05]
+A1B3; [7B 7A 06, 05, 05]
-A18A; [7A 76 E3, 05, 05]
+A1B4; [7B 7A 0D, 05, 05]
-A18B; [7A 76 EA, 05, 05]
+A1B5; [7B 7A 14, 05, 05]
-A18C; [7A 76 F1, 05, 05]
+A1B6; [7B 7A 1B, 05, 05]
-A18D; [7A 76 F8, 05, 05]
+A1B7; [7B 7A 22, 05, 05]
-A18E; [7A 76 FF, 05, 05]
+A1B8; [7B 7A 29, 05, 05]
-A18F; [7A 77 08, 05, 05]
+A1B9; [7B 7A 30, 05, 05]
-A190; [7A 77 0F, 05, 05]
+A1BA; [7B 7A 37, 05, 05]
-A191; [7A 77 16, 05, 05]
+A1BB; [7B 7A 3E, 05, 05]
-A192; [7A 77 1D, 05, 05]
+A1BC; [7B 7A 45, 05, 05]
-A193; [7A 77 24, 05, 05]
+A1BD; [7B 7A 4C, 05, 05]
-A194; [7A 77 2B, 05, 05]
+A1BE; [7B 7A 53, 05, 05]
-A195; [7A 77 32, 05, 05]
+A1BF; [7B 7A 5A, 05, 05]
-A196; [7A 77 39, 05, 05]
+A1C0; [7B 7A 61, 05, 05]
-A197; [7A 77 40, 05, 05]
+A1C1; [7B 7A 68, 05, 05]
-A198; [7A 77 47, 05, 05]
+A1C2; [7B 7A 6F, 05, 05]
-A199; [7A 77 4E, 05, 05]
+A1C3; [7B 7A 76, 05, 05]
-A19A; [7A 77 55, 05, 05]
+A1C4; [7B 7A 7D, 05, 05]
-A19B; [7A 77 5C, 05, 05]
+A1C5; [7B 7A 84, 05, 05]
-A19C; [7A 77 63, 05, 05]
+A1C6; [7B 7A 8B, 05, 05]
-A19D; [7A 77 6A, 05, 05]
+A1C7; [7B 7A 92, 05, 05]
-A19E; [7A 77 71, 05, 05]
+A1C8; [7B 7A 99, 05, 05]
-A19F; [7A 77 78, 05, 05]
+A1C9; [7B 7A A0, 05, 05]
-A1A0; [7A 77 7F, 05, 05]
+A1CA; [7B 7A A7, 05, 05]
-A1A1; [7A 77 86, 05, 05]
+A1CB; [7B 7A AE, 05, 05]
-A1A2; [7A 77 8D, 05, 05]
+A1CC; [7B 7A B5, 05, 05]
-A1A3; [7A 77 94, 05, 05]
+A1CD; [7B 7A BC, 05, 05]
-A1A4; [7A 77 9B, 05, 05]
+A1CE; [7B 7A C3, 05, 05]
-A1A5; [7A 77 A2, 05, 05]
+A1CF; [7B 7A CA, 05, 05]
-A1A6; [7A 77 A9, 05, 05]
+A1D0; [7B 7A D1, 05, 05]
-A1A7; [7A 77 B0, 05, 05]
+A1D1; [7B 7A D8, 05, 05]
-A1A8; [7A 77 B7, 05, 05]
+A1D2; [7B 7A DF, 05, 05]
-A1A9; [7A 77 BE, 05, 05]
+A1D3; [7B 7A E6, 05, 05]
-A1AA; [7A 77 C5, 05, 05]
+A1D4; [7B 7A ED, 05, 05]
-A1AB; [7A 77 CC, 05, 05]
+A1D5; [7B 7A F4, 05, 05]
-A1AC; [7A 77 D3, 05, 05]
+A1D6; [7B 7A FB, 05, 05]
-A1AD; [7A 77 DA, 05, 05]
+A1D7; [7B 7B 04, 05, 05]
-A1AE; [7A 77 E1, 05, 05]
+A1D8; [7B 7B 0B, 05, 05]
-A1AF; [7A 77 E8, 05, 05]
+A1D9; [7B 7B 12, 05, 05]
-A1B0; [7A 77 EF, 05, 05]
+A1DA; [7B 7B 19, 05, 05]
-A1B1; [7A 77 F6, 05, 05]
+A1DB; [7B 7B 20, 05, 05]
-A1B2; [7A 77 FD, 05, 05]
+A1DC; [7B 7B 27, 05, 05]
-A1B3; [7A 78 06, 05, 05]
+A1DD; [7B 7B 2E, 05, 05]
-A1B4; [7A 78 0D, 05, 05]
+A1DE; [7B 7B 35, 05, 05]
-A1B5; [7A 78 14, 05, 05]
+A1DF; [7B 7B 3C, 05, 05]
-A1B6; [7A 78 1B, 05, 05]
+A1E0; [7B 7B 43, 05, 05]
-A1B7; [7A 78 22, 05, 05]
+A1E1; [7B 7B 4A, 05, 05]
-A1B8; [7A 78 29, 05, 05]
+A1E2; [7B 7B 51, 05, 05]
-A1B9; [7A 78 30, 05, 05]
+A1E3; [7B 7B 58, 05, 05]
-A1BA; [7A 78 37, 05, 05]
+A1E4; [7B 7B 5F, 05, 05]
-A1BB; [7A 78 3E, 05, 05]
+A1E5; [7B 7B 66, 05, 05]
-A1BC; [7A 78 45, 05, 05]
+A1E6; [7B 7B 6D, 05, 05]
-A1BD; [7A 78 4C, 05, 05]
+A1E7; [7B 7B 74, 05, 05]
-A1BE; [7A 78 53, 05, 05]
+A1E8; [7B 7B 7B, 05, 05]
-A1BF; [7A 78 5A, 05, 05]
+A1E9; [7B 7B 82, 05, 05]
-A1C0; [7A 78 61, 05, 05]
+A1EA; [7B 7B 89, 05, 05]
-A1C1; [7A 78 68, 05, 05]
+A1EB; [7B 7B 90, 05, 05]
-A1C2; [7A 78 6F, 05, 05]
+A1EC; [7B 7B 97, 05, 05]
-A1C3; [7A 78 76, 05, 05]
+A1ED; [7B 7B 9E, 05, 05]
-A1C4; [7A 78 7D, 05, 05]
+A1EE; [7B 7B A5, 05, 05]
-A1C5; [7A 78 84, 05, 05]
+A1EF; [7B 7B AC, 05, 05]
-A1C6; [7A 78 8B, 05, 05]
+A1F0; [7B 7B B3, 05, 05]
-A1C7; [7A 78 92, 05, 05]
+A1F1; [7B 7B BA, 05, 05]
-A1C8; [7A 78 99, 05, 05]
+A1F2; [7B 7B C1, 05, 05]
-A1C9; [7A 78 A0, 05, 05]
+A1F3; [7B 7B C8, 05, 05]
-A1CA; [7A 78 A7, 05, 05]
+A1F4; [7B 7B CF, 05, 05]
-A1CB; [7A 78 AE, 05, 05]
+A1F5; [7B 7B D6, 05, 05]
-A1CC; [7A 78 B5, 05, 05]
+A1F6; [7B 7B DD, 05, 05]
-A1CD; [7A 78 BC, 05, 05]
+A1F7; [7B 7B E4, 05, 05]
-A1CE; [7A 78 C3, 05, 05]
+A1F8; [7B 7B EB, 05, 05]
-A1CF; [7A 78 CA, 05, 05]
+A1F9; [7B 7B F2, 05, 05]
-A1D0; [7A 78 D1, 05, 05]
+A1FA; [7B 7B F9, 05, 05]
-A1D1; [7A 78 D8, 05, 05]
+A1FB; [7B 7C 02, 05, 05]
-A1D2; [7A 78 DF, 05, 05]
+A1FC; [7B 7C 09, 05, 05]
-A1D3; [7A 78 E6, 05, 05]
+A1FD; [7B 7C 10, 05, 05]
-A1D4; [7A 78 ED, 05, 05]
+A1FE; [7B 7C 17, 05, 05]
-A1D5; [7A 78 F4, 05, 05]
+A1FF; [7B 7C 1E, 05, 05]
-A1D6; [7A 78 FB, 05, 05]
+A200; [7B 7C 25, 05, 05]
-A1D7; [7A 79 04, 05, 05]
+A201; [7B 7C 2C, 05, 05]
-A1D8; [7A 79 0B, 05, 05]
+A202; [7B 7C 33, 05, 05]
-A1D9; [7A 79 12, 05, 05]
+A203; [7B 7C 3A, 05, 05]
-A1DA; [7A 79 19, 05, 05]
+A204; [7B 7C 41, 05, 05]
-A1DB; [7A 79 20, 05, 05]
+A205; [7B 7C 48, 05, 05]
-A1DC; [7A 79 27, 05, 05]
+A206; [7B 7C 4F, 05, 05]
-A1DD; [7A 79 2E, 05, 05]
+A207; [7B 7C 56, 05, 05]
-A1DE; [7A 79 35, 05, 05]
+A208; [7B 7C 5D, 05, 05]
-A1DF; [7A 79 3C, 05, 05]
+A209; [7B 7C 64, 05, 05]
-A1E0; [7A 79 43, 05, 05]
+A20A; [7B 7C 6B, 05, 05]
-A1E1; [7A 79 4A, 05, 05]
+A20B; [7B 7C 72, 05, 05]
-A1E2; [7A 79 51, 05, 05]
+A20C; [7B 7C 79, 05, 05]
-A1E3; [7A 79 58, 05, 05]
+A20D; [7B 7C 80, 05, 05]
-A1E4; [7A 79 5F, 05, 05]
+A20E; [7B 7C 87, 05, 05]
-A1E5; [7A 79 66, 05, 05]
+A20F; [7B 7C 8E, 05, 05]
-A1E6; [7A 79 6D, 05, 05]
+A210; [7B 7C 95, 05, 05]
-A1E7; [7A 79 74, 05, 05]
+A211; [7B 7C 9C, 05, 05]
-A1E8; [7A 79 7B, 05, 05]
+A212; [7B 7C A3, 05, 05]
-A1E9; [7A 79 82, 05, 05]
+A213; [7B 7C AA, 05, 05]
-A1EA; [7A 79 89, 05, 05]
+A214; [7B 7C B1, 05, 05]
-A1EB; [7A 79 90, 05, 05]
+A215; [7B 7C B8, 05, 05]
-A1EC; [7A 79 97, 05, 05]
+A216; [7B 7C BF, 05, 05]
-A1ED; [7A 79 9E, 05, 05]
+A217; [7B 7C C6, 05, 05]
-A1EE; [7A 79 A5, 05, 05]
+A218; [7B 7C CD, 05, 05]
-A1EF; [7A 79 AC, 05, 05]
+A219; [7B 7C D4, 05, 05]
-A1F0; [7A 79 B3, 05, 05]
+A21A; [7B 7C DB, 05, 05]
-A1F1; [7A 79 BA, 05, 05]
+A21B; [7B 7C E2, 05, 05]
-A1F2; [7A 79 C1, 05, 05]
+A21C; [7B 7C E9, 05, 05]
-A1F3; [7A 79 C8, 05, 05]
+A21D; [7B 7C F0, 05, 05]
-A1F4; [7A 79 CF, 05, 05]
+A21E; [7B 7C F7, 05, 05]
-A1F5; [7A 79 D6, 05, 05]
+A21F; [7B 7C FE, 05, 05]
-A1F6; [7A 79 DD, 05, 05]
+A220; [7B 7D 07, 05, 05]
-A1F7; [7A 79 E4, 05, 05]
+A221; [7B 7D 0E, 05, 05]
-A1F8; [7A 79 EB, 05, 05]
+A222; [7B 7D 15, 05, 05]
-A1F9; [7A 79 F2, 05, 05]
+A223; [7B 7D 1C, 05, 05]
-A1FA; [7A 79 F9, 05, 05]
+A224; [7B 7D 23, 05, 05]
-A1FB; [7A 7A 02, 05, 05]
+A225; [7B 7D 2A, 05, 05]
-A1FC; [7A 7A 09, 05, 05]
+A226; [7B 7D 31, 05, 05]
-A1FD; [7A 7A 10, 05, 05]
+A227; [7B 7D 38, 05, 05]
-A1FE; [7A 7A 17, 05, 05]
+A228; [7B 7D 3F, 05, 05]
-A1FF; [7A 7A 1E, 05, 05]
+A229; [7B 7D 46, 05, 05]
-A200; [7A 7A 25, 05, 05]
+A22A; [7B 7D 4D, 05, 05]
-A201; [7A 7A 2C, 05, 05]
+A22B; [7B 7D 54, 05, 05]
-A202; [7A 7A 33, 05, 05]
+A22C; [7B 7D 5B, 05, 05]
-A203; [7A 7A 3A, 05, 05]
+A22D; [7B 7D 62, 05, 05]
-A204; [7A 7A 41, 05, 05]
+A22E; [7B 7D 69, 05, 05]
-A205; [7A 7A 48, 05, 05]
+A22F; [7B 7D 70, 05, 05]
-A206; [7A 7A 4F, 05, 05]
+A230; [7B 7D 77, 05, 05]
-A207; [7A 7A 56, 05, 05]
+A231; [7B 7D 7E, 05, 05]
-A208; [7A 7A 5D, 05, 05]
+A232; [7B 7D 85, 05, 05]
-A209; [7A 7A 64, 05, 05]
+A233; [7B 7D 8C, 05, 05]
-A20A; [7A 7A 6B, 05, 05]
+A234; [7B 7D 93, 05, 05]
-A20B; [7A 7A 72, 05, 05]
+A235; [7B 7D 9A, 05, 05]
-A20C; [7A 7A 79, 05, 05]
+A236; [7B 7D A1, 05, 05]
-A20D; [7A 7A 80, 05, 05]
+A237; [7B 7D A8, 05, 05]
-A20E; [7A 7A 87, 05, 05]
+A238; [7B 7D AF, 05, 05]
-A20F; [7A 7A 8E, 05, 05]
+A239; [7B 7D B6, 05, 05]
-A210; [7A 7A 95, 05, 05]
+A23A; [7B 7D BD, 05, 05]
-A211; [7A 7A 9C, 05, 05]
+A23B; [7B 7D C4, 05, 05]
-A212; [7A 7A A3, 05, 05]
+A23C; [7B 7D CB, 05, 05]
-A213; [7A 7A AA, 05, 05]
+A23D; [7B 7D D2, 05, 05]
-A214; [7A 7A B1, 05, 05]
+A23E; [7B 7D D9, 05, 05]
-A215; [7A 7A B8, 05, 05]
+A23F; [7B 7D E0, 05, 05]
-A216; [7A 7A BF, 05, 05]
+A240; [7B 7D E7, 05, 05]
-A217; [7A 7A C6, 05, 05]
+A241; [7B 7D EE, 05, 05]
-A218; [7A 7A CD, 05, 05]
+A242; [7B 7D F5, 05, 05]
-A219; [7A 7A D4, 05, 05]
+A243; [7B 7D FC, 05, 05]
-A21A; [7A 7A DB, 05, 05]
+A244; [7B 7E 05, 05, 05]
-A21B; [7A 7A E2, 05, 05]
+A245; [7B 7E 0C, 05, 05]
-A21C; [7A 7A E9, 05, 05]
+A246; [7B 7E 13, 05, 05]
-A21D; [7A 7A F0, 05, 05]
+A247; [7B 7E 1A, 05, 05]
-A21E; [7A 7A F7, 05, 05]
+A248; [7B 7E 21, 05, 05]
-A21F; [7A 7A FE, 05, 05]
+A249; [7B 7E 28, 05, 05]
-A220; [7A 7B 07, 05, 05]
+A24A; [7B 7E 2F, 05, 05]
-A221; [7A 7B 0E, 05, 05]
+A24B; [7B 7E 36, 05, 05]
-A222; [7A 7B 15, 05, 05]
+A24C; [7B 7E 3D, 05, 05]
-A223; [7A 7B 1C, 05, 05]
+A24D; [7B 7E 44, 05, 05]
-A224; [7A 7B 23, 05, 05]
+A24E; [7B 7E 4B, 05, 05]
-A225; [7A 7B 2A, 05, 05]
+A24F; [7B 7E 52, 05, 05]
-A226; [7A 7B 31, 05, 05]
+A250; [7B 7E 59, 05, 05]
-A227; [7A 7B 38, 05, 05]
+A251; [7B 7E 60, 05, 05]
-A228; [7A 7B 3F, 05, 05]
+A252; [7B 7E 67, 05, 05]
-A229; [7A 7B 46, 05, 05]
+A253; [7B 7E 6E, 05, 05]
-A22A; [7A 7B 4D, 05, 05]
+A254; [7B 7E 75, 05, 05]
-A22B; [7A 7B 54, 05, 05]
+A255; [7B 7E 7C, 05, 05]
-A22C; [7A 7B 5B, 05, 05]
+A256; [7B 7E 83, 05, 05]
-A22D; [7A 7B 62, 05, 05]
+A257; [7B 7E 8A, 05, 05]
-A22E; [7A 7B 69, 05, 05]
+A258; [7B 7E 91, 05, 05]
-A22F; [7A 7B 70, 05, 05]
+A259; [7B 7E 98, 05, 05]
-A230; [7A 7B 77, 05, 05]
+A25A; [7B 7E 9F, 05, 05]
-A231; [7A 7B 7E, 05, 05]
+A25B; [7B 7E A6, 05, 05]
-A232; [7A 7B 85, 05, 05]
+A25C; [7B 7E AD, 05, 05]
-A233; [7A 7B 8C, 05, 05]
+A25D; [7B 7E B4, 05, 05]
-A234; [7A 7B 93, 05, 05]
+A25E; [7B 7E BB, 05, 05]
-A235; [7A 7B 9A, 05, 05]
+A25F; [7B 7E C2, 05, 05]
-A236; [7A 7B A1, 05, 05]
+A260; [7B 7E C9, 05, 05]
-A237; [7A 7B A8, 05, 05]
+A261; [7B 7E D0, 05, 05]
-A238; [7A 7B AF, 05, 05]
+A262; [7B 7E D7, 05, 05]
-A239; [7A 7B B6, 05, 05]
+A263; [7B 7E DE, 05, 05]
-A23A; [7A 7B BD, 05, 05]
+A264; [7B 7E E5, 05, 05]
-A23B; [7A 7B C4, 05, 05]
+A265; [7B 7E EC, 05, 05]
-A23C; [7A 7B CB, 05, 05]
+A266; [7B 7E F3, 05, 05]
-A23D; [7A 7B D2, 05, 05]
+A267; [7B 7E FA, 05, 05]
-A23E; [7A 7B D9, 05, 05]
+A268; [7B 7F 03, 05, 05]
-A23F; [7A 7B E0, 05, 05]
+A269; [7B 7F 0A, 05, 05]
-A240; [7A 7B E7, 05, 05]
+A26A; [7B 7F 11, 05, 05]
-A241; [7A 7B EE, 05, 05]
+A26B; [7B 7F 18, 05, 05]
-A242; [7A 7B F5, 05, 05]
+A26C; [7B 7F 1F, 05, 05]
-A243; [7A 7B FC, 05, 05]
+A26D; [7B 7F 26, 05, 05]
-A244; [7A 7C 05, 05, 05]
+A26E; [7B 7F 2D, 05, 05]
-A245; [7A 7C 0C, 05, 05]
+A26F; [7B 7F 34, 05, 05]
-A246; [7A 7C 13, 05, 05]
+A270; [7B 7F 3B, 05, 05]
-A247; [7A 7C 1A, 05, 05]
+A271; [7B 7F 42, 05, 05]
-A248; [7A 7C 21, 05, 05]
+A272; [7B 7F 49, 05, 05]
-A249; [7A 7C 28, 05, 05]
+A273; [7B 7F 50, 05, 05]
-A24A; [7A 7C 2F, 05, 05]
+A274; [7B 7F 57, 05, 05]
-A24B; [7A 7C 36, 05, 05]
+A275; [7B 7F 5E, 05, 05]
-A24C; [7A 7C 3D, 05, 05]
+A276; [7B 7F 65, 05, 05]
-A24D; [7A 7C 44, 05, 05]
+A277; [7B 7F 6C, 05, 05]
-A24E; [7A 7C 4B, 05, 05]
+A278; [7B 7F 73, 05, 05]
-A24F; [7A 7C 52, 05, 05]
+A279; [7B 7F 7A, 05, 05]
-A250; [7A 7C 59, 05, 05]
+A27A; [7B 7F 81, 05, 05]
-A251; [7A 7C 60, 05, 05]
+A27B; [7B 7F 88, 05, 05]
-A252; [7A 7C 67, 05, 05]
+A27C; [7B 7F 8F, 05, 05]
-A253; [7A 7C 6E, 05, 05]
+A27D; [7B 7F 96, 05, 05]
-A254; [7A 7C 75, 05, 05]
+A27E; [7B 7F 9D, 05, 05]
-A255; [7A 7C 7C, 05, 05]
+A27F; [7B 7F A4, 05, 05]
-A256; [7A 7C 83, 05, 05]
+A280; [7B 7F AB, 05, 05]
-A257; [7A 7C 8A, 05, 05]
+A281; [7B 7F B2, 05, 05]
-A258; [7A 7C 91, 05, 05]
+A282; [7B 7F B9, 05, 05]
-A259; [7A 7C 98, 05, 05]
+A283; [7B 7F C0, 05, 05]
-A25A; [7A 7C 9F, 05, 05]
+A284; [7B 7F C7, 05, 05]
-A25B; [7A 7C A6, 05, 05]
+A285; [7B 7F CE, 05, 05]
-A25C; [7A 7C AD, 05, 05]
+A286; [7B 7F D5, 05, 05]
-A25D; [7A 7C B4, 05, 05]
+A287; [7B 7F DC, 05, 05]
-A25E; [7A 7C BB, 05, 05]
+A288; [7B 7F E3, 05, 05]
-A25F; [7A 7C C2, 05, 05]
+A289; [7B 7F EA, 05, 05]
-A260; [7A 7C C9, 05, 05]
+A28A; [7B 7F F1, 05, 05]
-A261; [7A 7C D0, 05, 05]
+A28B; [7B 7F F8, 05, 05]
-A262; [7A 7C D7, 05, 05]
+A28C; [7B 7F FF, 05, 05]
-A263; [7A 7C DE, 05, 05]
+A28D; [7B 80 08, 05, 05]
-A264; [7A 7C E5, 05, 05]
+A28E; [7B 80 0F, 05, 05]
-A265; [7A 7C EC, 05, 05]
+A28F; [7B 80 16, 05, 05]
-A266; [7A 7C F3, 05, 05]
+A290; [7B 80 1D, 05, 05]
-A267; [7A 7C FA, 05, 05]
+A291; [7B 80 24, 05, 05]
-A268; [7A 7D 03, 05, 05]
+A292; [7B 80 2B, 05, 05]
-A269; [7A 7D 0A, 05, 05]
+A293; [7B 80 32, 05, 05]
-A26A; [7A 7D 11, 05, 05]
+A294; [7B 80 39, 05, 05]
-A26B; [7A 7D 18, 05, 05]
+A295; [7B 80 40, 05, 05]
-A26C; [7A 7D 1F, 05, 05]
+A296; [7B 80 47, 05, 05]
-A26D; [7A 7D 26, 05, 05]
+A297; [7B 80 4E, 05, 05]
-A26E; [7A 7D 2D, 05, 05]
+A298; [7B 80 55, 05, 05]
-A26F; [7A 7D 34, 05, 05]
+A299; [7B 80 5C, 05, 05]
-A270; [7A 7D 3B, 05, 05]
+A29A; [7B 80 63, 05, 05]
-A271; [7A 7D 42, 05, 05]
+A29B; [7B 80 6A, 05, 05]
-A272; [7A 7D 49, 05, 05]
+A29C; [7B 80 71, 05, 05]
-A273; [7A 7D 50, 05, 05]
+A29D; [7B 80 78, 05, 05]
-A274; [7A 7D 57, 05, 05]
+A29E; [7B 80 7F, 05, 05]
-A275; [7A 7D 5E, 05, 05]
+A29F; [7B 80 86, 05, 05]
-A276; [7A 7D 65, 05, 05]
+A2A0; [7B 80 8D, 05, 05]
-A277; [7A 7D 6C, 05, 05]
+A2A1; [7B 80 94, 05, 05]
-A278; [7A 7D 73, 05, 05]
+A2A2; [7B 80 9B, 05, 05]
-A279; [7A 7D 7A, 05, 05]
+A2A3; [7B 80 A2, 05, 05]
-A27A; [7A 7D 81, 05, 05]
+A2A4; [7B 80 A9, 05, 05]
-A27B; [7A 7D 88, 05, 05]
+A2A5; [7B 80 B0, 05, 05]
-A27C; [7A 7D 8F, 05, 05]
+A2A6; [7B 80 B7, 05, 05]
-A27D; [7A 7D 96, 05, 05]
+A2A7; [7B 80 BE, 05, 05]
-A27E; [7A 7D 9D, 05, 05]
+A2A8; [7B 80 C5, 05, 05]
-A27F; [7A 7D A4, 05, 05]
+A2A9; [7B 80 CC, 05, 05]
-A280; [7A 7D AB, 05, 05]
+A2AA; [7B 80 D3, 05, 05]
-A281; [7A 7D B2, 05, 05]
+A2AB; [7B 80 DA, 05, 05]
-A282; [7A 7D B9, 05, 05]
+A2AC; [7B 80 E1, 05, 05]
-A283; [7A 7D C0, 05, 05]
+A2AD; [7B 80 E8, 05, 05]
-A284; [7A 7D C7, 05, 05]
+A2AE; [7B 80 EF, 05, 05]
-A285; [7A 7D CE, 05, 05]
+A2AF; [7B 80 F6, 05, 05]
-A286; [7A 7D D5, 05, 05]
+A2B0; [7B 80 FD, 05, 05]
-A287; [7A 7D DC, 05, 05]
+A2B1; [7B 81 06, 05, 05]
-A288; [7A 7D E3, 05, 05]
+A2B2; [7B 81 0D, 05, 05]
-A289; [7A 7D EA, 05, 05]
+A2B3; [7B 81 14, 05, 05]
-A28A; [7A 7D F1, 05, 05]
+A2B4; [7B 81 1B, 05, 05]
-A28B; [7A 7D F8, 05, 05]
+A2B5; [7B 81 22, 05, 05]
-A28C; [7A 7D FF, 05, 05]
+A2B6; [7B 81 29, 05, 05]
-A28D; [7A 7E 08, 05, 05]
+A2B7; [7B 81 30, 05, 05]
-A28E; [7A 7E 0F, 05, 05]
+A2B8; [7B 81 37, 05, 05]
-A28F; [7A 7E 16, 05, 05]
+A2B9; [7B 81 3E, 05, 05]
-A290; [7A 7E 1D, 05, 05]
+A2BA; [7B 81 45, 05, 05]
-A291; [7A 7E 24, 05, 05]
+A2BB; [7B 81 4C, 05, 05]
-A292; [7A 7E 2B, 05, 05]
+A2BC; [7B 81 53, 05, 05]
-A293; [7A 7E 32, 05, 05]
+A2BD; [7B 81 5A, 05, 05]
-A294; [7A 7E 39, 05, 05]
+A2BE; [7B 81 61, 05, 05]
-A295; [7A 7E 40, 05, 05]
+A2BF; [7B 81 68, 05, 05]
-A296; [7A 7E 47, 05, 05]
+A2C0; [7B 81 6F, 05, 05]
-A297; [7A 7E 4E, 05, 05]
+A2C1; [7B 81 76, 05, 05]
-A298; [7A 7E 55, 05, 05]
+A2C2; [7B 81 7D, 05, 05]
-A299; [7A 7E 5C, 05, 05]
+A2C3; [7B 81 84, 05, 05]
-A29A; [7A 7E 63, 05, 05]
+A2C4; [7B 81 8B, 05, 05]
-A29B; [7A 7E 6A, 05, 05]
+A2C5; [7B 81 92, 05, 05]
-A29C; [7A 7E 71, 05, 05]
+A2C6; [7B 81 99, 05, 05]
-A29D; [7A 7E 78, 05, 05]
+A2C7; [7B 81 A0, 05, 05]
-A29E; [7A 7E 7F, 05, 05]
+A2C8; [7B 81 A7, 05, 05]
-A29F; [7A 7E 86, 05, 05]
+A2C9; [7B 81 AE, 05, 05]
-A2A0; [7A 7E 8D, 05, 05]
+A2CA; [7B 81 B5, 05, 05]
-A2A1; [7A 7E 94, 05, 05]
+A2CB; [7B 81 BC, 05, 05]
-A2A2; [7A 7E 9B, 05, 05]
+A2CC; [7B 81 C3, 05, 05]
-A2A3; [7A 7E A2, 05, 05]
+A2CD; [7B 81 CA, 05, 05]
-A2A4; [7A 7E A9, 05, 05]
+A2CE; [7B 81 D1, 05, 05]
-A2A5; [7A 7E B0, 05, 05]
+A2CF; [7B 81 D8, 05, 05]
-A2A6; [7A 7E B7, 05, 05]
+A2D0; [7B 81 DF, 05, 05]
-A2A7; [7A 7E BE, 05, 05]
+A2D1; [7B 81 E6, 05, 05]
-A2A8; [7A 7E C5, 05, 05]
+A2D2; [7B 81 ED, 05, 05]
-A2A9; [7A 7E CC, 05, 05]
+A2D3; [7B 81 F4, 05, 05]
-A2AA; [7A 7E D3, 05, 05]
+A2D4; [7B 81 FB, 05, 05]
-A2AB; [7A 7E DA, 05, 05]
+A2D5; [7B 82 04, 05, 05]
-A2AC; [7A 7E E1, 05, 05]
+A2D6; [7B 82 0B, 05, 05]
-A2AD; [7A 7E E8, 05, 05]
+A2D7; [7B 82 12, 05, 05]
-A2AE; [7A 7E EF, 05, 05]
+A2D8; [7B 82 19, 05, 05]
-A2AF; [7A 7E F6, 05, 05]
+A2D9; [7B 82 20, 05, 05]
-A2B0; [7A 7E FD, 05, 05]
+A2DA; [7B 82 27, 05, 05]
-A2B1; [7A 7F 06, 05, 05]
+A2DB; [7B 82 2E, 05, 05]
-A2B2; [7A 7F 0D, 05, 05]
+A2DC; [7B 82 35, 05, 05]
-A2B3; [7A 7F 14, 05, 05]
+A2DD; [7B 82 3C, 05, 05]
-A2B4; [7A 7F 1B, 05, 05]
+A2DE; [7B 82 43, 05, 05]
-A2B5; [7A 7F 22, 05, 05]
+A2DF; [7B 82 4A, 05, 05]
-A2B6; [7A 7F 29, 05, 05]
+A2E0; [7B 82 51, 05, 05]
-A2B7; [7A 7F 30, 05, 05]
+A2E1; [7B 82 58, 05, 05]
-A2B8; [7A 7F 37, 05, 05]
+A2E2; [7B 82 5F, 05, 05]
-A2B9; [7A 7F 3E, 05, 05]
+A2E3; [7B 82 66, 05, 05]
-A2BA; [7A 7F 45, 05, 05]
+A2E4; [7B 82 6D, 05, 05]
-A2BB; [7A 7F 4C, 05, 05]
+A2E5; [7B 82 74, 05, 05]
-A2BC; [7A 7F 53, 05, 05]
+A2E6; [7B 82 7B, 05, 05]
-A2BD; [7A 7F 5A, 05, 05]
+A2E7; [7B 82 82, 05, 05]
-A2BE; [7A 7F 61, 05, 05]
+A2E8; [7B 82 89, 05, 05]
-A2BF; [7A 7F 68, 05, 05]
+A2E9; [7B 82 90, 05, 05]
-A2C0; [7A 7F 6F, 05, 05]
+A2EA; [7B 82 97, 05, 05]
-A2C1; [7A 7F 76, 05, 05]
+A2EB; [7B 82 9E, 05, 05]
-A2C2; [7A 7F 7D, 05, 05]
+A2EC; [7B 82 A5, 05, 05]
-A2C3; [7A 7F 84, 05, 05]
+A2ED; [7B 82 AC, 05, 05]
-A2C4; [7A 7F 8B, 05, 05]
+A2EE; [7B 82 B3, 05, 05]
-A2C5; [7A 7F 92, 05, 05]
+A2EF; [7B 82 BA, 05, 05]
-A2C6; [7A 7F 99, 05, 05]
+A2F0; [7B 82 C1, 05, 05]
-A2C7; [7A 7F A0, 05, 05]
+A2F1; [7B 82 C8, 05, 05]
-A2C8; [7A 7F A7, 05, 05]
+A2F2; [7B 82 CF, 05, 05]
-A2C9; [7A 7F AE, 05, 05]
+A2F3; [7B 82 D6, 05, 05]
-A2CA; [7A 7F B5, 05, 05]
+A2F4; [7B 82 DD, 05, 05]
-A2CB; [7A 7F BC, 05, 05]
+A2F5; [7B 82 E4, 05, 05]
-A2CC; [7A 7F C3, 05, 05]
+A2F6; [7B 82 EB, 05, 05]
-A2CD; [7A 7F CA, 05, 05]
+A2F7; [7B 82 F2, 05, 05]
-A2CE; [7A 7F D1, 05, 05]
+A2F8; [7B 82 F9, 05, 05]
-A2CF; [7A 7F D8, 05, 05]
+A2F9; [7B 83 02, 05, 05]
-A2D0; [7A 7F DF, 05, 05]
+A2FA; [7B 83 09, 05, 05]
-A2D1; [7A 7F E6, 05, 05]
+A2FB; [7B 83 10, 05, 05]
-A2D2; [7A 7F ED, 05, 05]
+A2FC; [7B 83 17, 05, 05]
-A2D3; [7A 7F F4, 05, 05]
+A2FD; [7B 83 1E, 05, 05]
-A2D4; [7A 7F FB, 05, 05]
+A2FE; [7B 83 25, 05, 05]
-A2D5; [7A 80 04, 05, 05]
+A2FF; [7B 83 2C, 05, 05]
-A2D6; [7A 80 0B, 05, 05]
+A300; [7B 83 33, 05, 05]
-A2D7; [7A 80 12, 05, 05]
+A301; [7B 83 3A, 05, 05]
-A2D8; [7A 80 19, 05, 05]
+A302; [7B 83 41, 05, 05]
-A2D9; [7A 80 20, 05, 05]
+A303; [7B 83 48, 05, 05]
-A2DA; [7A 80 27, 05, 05]
+A304; [7B 83 4F, 05, 05]
-A2DB; [7A 80 2E, 05, 05]
+A305; [7B 83 56, 05, 05]
-A2DC; [7A 80 35, 05, 05]
+A306; [7B 83 5D, 05, 05]
-A2DD; [7A 80 3C, 05, 05]
+A307; [7B 83 64, 05, 05]
-A2DE; [7A 80 43, 05, 05]
+A308; [7B 83 6B, 05, 05]
-A2DF; [7A 80 4A, 05, 05]
+A309; [7B 83 72, 05, 05]
-A2E0; [7A 80 51, 05, 05]
+A30A; [7B 83 79, 05, 05]
-A2E1; [7A 80 58, 05, 05]
+A30B; [7B 83 80, 05, 05]
-A2E2; [7A 80 5F, 05, 05]
+A30C; [7B 83 87, 05, 05]
-A2E3; [7A 80 66, 05, 05]
+A30D; [7B 83 8E, 05, 05]
-A2E4; [7A 80 6D, 05, 05]
+A30E; [7B 83 95, 05, 05]
-A2E5; [7A 80 74, 05, 05]
+A30F; [7B 83 9C, 05, 05]
-A2E6; [7A 80 7B, 05, 05]
+A310; [7B 83 A3, 05, 05]
-A2E7; [7A 80 82, 05, 05]
+A311; [7B 83 AA, 05, 05]
-A2E8; [7A 80 89, 05, 05]
+A312; [7B 83 B1, 05, 05]
-A2E9; [7A 80 90, 05, 05]
+A313; [7B 83 B8, 05, 05]
-A2EA; [7A 80 97, 05, 05]
+A314; [7B 83 BF, 05, 05]
-A2EB; [7A 80 9E, 05, 05]
+A315; [7B 83 C6, 05, 05]
-A2EC; [7A 80 A5, 05, 05]
+A316; [7B 83 CD, 05, 05]
-A2ED; [7A 80 AC, 05, 05]
+A317; [7B 83 D4, 05, 05]
-A2EE; [7A 80 B3, 05, 05]
+A318; [7B 83 DB, 05, 05]
-A2EF; [7A 80 BA, 05, 05]
+A319; [7B 83 E2, 05, 05]
-A2F0; [7A 80 C1, 05, 05]
+A31A; [7B 83 E9, 05, 05]
-A2F1; [7A 80 C8, 05, 05]
+A31B; [7B 83 F0, 05, 05]
-A2F2; [7A 80 CF, 05, 05]
+A31C; [7B 83 F7, 05, 05]
-A2F3; [7A 80 D6, 05, 05]
+A31D; [7B 83 FE, 05, 05]
-A2F4; [7A 80 DD, 05, 05]
+A31E; [7B 84 07, 05, 05]
-A2F5; [7A 80 E4, 05, 05]
+A31F; [7B 84 0E, 05, 05]
-A2F6; [7A 80 EB, 05, 05]
+A320; [7B 84 15, 05, 05]
-A2F7; [7A 80 F2, 05, 05]
+A321; [7B 84 1C, 05, 05]
-A2F8; [7A 80 F9, 05, 05]
+A322; [7B 84 23, 05, 05]
-A2F9; [7A 81 02, 05, 05]
+A323; [7B 84 2A, 05, 05]
-A2FA; [7A 81 09, 05, 05]
+A324; [7B 84 31, 05, 05]
-A2FB; [7A 81 10, 05, 05]
+A325; [7B 84 38, 05, 05]
-A2FC; [7A 81 17, 05, 05]
+A326; [7B 84 3F, 05, 05]
-A2FD; [7A 81 1E, 05, 05]
+A327; [7B 84 46, 05, 05]
-A2FE; [7A 81 25, 05, 05]
+A328; [7B 84 4D, 05, 05]
-A2FF; [7A 81 2C, 05, 05]
+A329; [7B 84 54, 05, 05]
-A300; [7A 81 33, 05, 05]
+A32A; [7B 84 5B, 05, 05]
-A301; [7A 81 3A, 05, 05]
+A32B; [7B 84 62, 05, 05]
-A302; [7A 81 41, 05, 05]
+A32C; [7B 84 69, 05, 05]
-A303; [7A 81 48, 05, 05]
+A32D; [7B 84 70, 05, 05]
-A304; [7A 81 4F, 05, 05]
+A32E; [7B 84 77, 05, 05]
-A305; [7A 81 56, 05, 05]
+A32F; [7B 84 7E, 05, 05]
-A306; [7A 81 5D, 05, 05]
+A330; [7B 84 85, 05, 05]
-A307; [7A 81 64, 05, 05]
+A331; [7B 84 8C, 05, 05]
-A308; [7A 81 6B, 05, 05]
+A332; [7B 84 93, 05, 05]
-A309; [7A 81 72, 05, 05]
+A333; [7B 84 9A, 05, 05]
-A30A; [7A 81 79, 05, 05]
+A334; [7B 84 A1, 05, 05]
-A30B; [7A 81 80, 05, 05]
+A335; [7B 84 A8, 05, 05]
-A30C; [7A 81 87, 05, 05]
+A336; [7B 84 AF, 05, 05]
-A30D; [7A 81 8E, 05, 05]
+A337; [7B 84 B6, 05, 05]
-A30E; [7A 81 95, 05, 05]
+A338; [7B 84 BD, 05, 05]
-A30F; [7A 81 9C, 05, 05]
+A339; [7B 84 C4, 05, 05]
-A310; [7A 81 A3, 05, 05]
+A33A; [7B 84 CB, 05, 05]
-A311; [7A 81 AA, 05, 05]
+A33B; [7B 84 D2, 05, 05]
-A312; [7A 81 B1, 05, 05]
+A33C; [7B 84 D9, 05, 05]
-A313; [7A 81 B8, 05, 05]
+A33D; [7B 84 E0, 05, 05]
-A314; [7A 81 BF, 05, 05]
+A33E; [7B 84 E7, 05, 05]
-A315; [7A 81 C6, 05, 05]
+A33F; [7B 84 EE, 05, 05]
-A316; [7A 81 CD, 05, 05]
+A340; [7B 84 F5, 05, 05]
-A317; [7A 81 D4, 05, 05]
+A341; [7B 84 FC, 05, 05]
-A318; [7A 81 DB, 05, 05]
+A342; [7B 85 05, 05, 05]
-A319; [7A 81 E2, 05, 05]
+A343; [7B 85 0C, 05, 05]
-A31A; [7A 81 E9, 05, 05]
+A344; [7B 85 13, 05, 05]
-A31B; [7A 81 F0, 05, 05]
+A345; [7B 85 1A, 05, 05]
-A31C; [7A 81 F7, 05, 05]
+A346; [7B 85 21, 05, 05]
-A31D; [7A 81 FE, 05, 05]
+A347; [7B 85 28, 05, 05]
-A31E; [7A 82 07, 05, 05]
+A348; [7B 85 2F, 05, 05]
-A31F; [7A 82 0E, 05, 05]
+A349; [7B 85 36, 05, 05]
-A320; [7A 82 15, 05, 05]
+A34A; [7B 85 3D, 05, 05]
-A321; [7A 82 1C, 05, 05]
+A34B; [7B 85 44, 05, 05]
-A322; [7A 82 23, 05, 05]
+A34C; [7B 85 4B, 05, 05]
-A323; [7A 82 2A, 05, 05]
+A34D; [7B 85 52, 05, 05]
-A324; [7A 82 31, 05, 05]
+A34E; [7B 85 59, 05, 05]
-A325; [7A 82 38, 05, 05]
+A34F; [7B 85 60, 05, 05]
-A326; [7A 82 3F, 05, 05]
+A350; [7B 85 67, 05, 05]
-A327; [7A 82 46, 05, 05]
+A351; [7B 85 6E, 05, 05]
-A328; [7A 82 4D, 05, 05]
+A352; [7B 85 75, 05, 05]
-A329; [7A 82 54, 05, 05]
+A353; [7B 85 7C, 05, 05]
-A32A; [7A 82 5B, 05, 05]
+A354; [7B 85 83, 05, 05]
-A32B; [7A 82 62, 05, 05]
+A355; [7B 85 8A, 05, 05]
-A32C; [7A 82 69, 05, 05]
+A356; [7B 85 91, 05, 05]
-A32D; [7A 82 70, 05, 05]
+A357; [7B 85 98, 05, 05]
-A32E; [7A 82 77, 05, 05]
+A358; [7B 85 9F, 05, 05]
-A32F; [7A 82 7E, 05, 05]
+A359; [7B 85 A6, 05, 05]
-A330; [7A 82 85, 05, 05]
+A35A; [7B 85 AD, 05, 05]
-A331; [7A 82 8C, 05, 05]
+A35B; [7B 85 B4, 05, 05]
-A332; [7A 82 93, 05, 05]
+A35C; [7B 85 BB, 05, 05]
-A333; [7A 82 9A, 05, 05]
+A35D; [7B 85 C2, 05, 05]
-A334; [7A 82 A1, 05, 05]
+A35E; [7B 85 C9, 05, 05]
-A335; [7A 82 A8, 05, 05]
+A35F; [7B 85 D0, 05, 05]
-A336; [7A 82 AF, 05, 05]
+A360; [7B 85 D7, 05, 05]
-A337; [7A 82 B6, 05, 05]
+A361; [7B 85 DE, 05, 05]
-A338; [7A 82 BD, 05, 05]
+A362; [7B 85 E5, 05, 05]
-A339; [7A 82 C4, 05, 05]
+A363; [7B 85 EC, 05, 05]
-A33A; [7A 82 CB, 05, 05]
+A364; [7B 85 F3, 05, 05]
-A33B; [7A 82 D2, 05, 05]
+A365; [7B 85 FA, 05, 05]
-A33C; [7A 82 D9, 05, 05]
+A366; [7B 86 03, 05, 05]
-A33D; [7A 82 E0, 05, 05]
+A367; [7B 86 0A, 05, 05]
-A33E; [7A 82 E7, 05, 05]
+A368; [7B 86 11, 05, 05]
-A33F; [7A 82 EE, 05, 05]
+A369; [7B 86 18, 05, 05]
-A340; [7A 82 F5, 05, 05]
+A36A; [7B 86 1F, 05, 05]
-A341; [7A 82 FC, 05, 05]
+A36B; [7B 86 26, 05, 05]
-A342; [7A 83 05, 05, 05]
+A36C; [7B 86 2D, 05, 05]
-A343; [7A 83 0C, 05, 05]
+A36D; [7B 86 34, 05, 05]
-A344; [7A 83 13, 05, 05]
+A36E; [7B 86 3B, 05, 05]
-A345; [7A 83 1A, 05, 05]
+A36F; [7B 86 42, 05, 05]
-A346; [7A 83 21, 05, 05]
+A370; [7B 86 49, 05, 05]
-A347; [7A 83 28, 05, 05]
+A371; [7B 86 50, 05, 05]
-A348; [7A 83 2F, 05, 05]
+A372; [7B 86 57, 05, 05]
-A349; [7A 83 36, 05, 05]
+A373; [7B 86 5E, 05, 05]
-A34A; [7A 83 3D, 05, 05]
+A374; [7B 86 65, 05, 05]
-A34B; [7A 83 44, 05, 05]
+A375; [7B 86 6C, 05, 05]
-A34C; [7A 83 4B, 05, 05]
+A376; [7B 86 73, 05, 05]
-A34D; [7A 83 52, 05, 05]
+A377; [7B 86 7A, 05, 05]
-A34E; [7A 83 59, 05, 05]
+A378; [7B 86 81, 05, 05]
-A34F; [7A 83 60, 05, 05]
+A379; [7B 86 88, 05, 05]
-A350; [7A 83 67, 05, 05]
+A37A; [7B 86 8F, 05, 05]
-A351; [7A 83 6E, 05, 05]
+A37B; [7B 86 96, 05, 05]
-A352; [7A 83 75, 05, 05]
+A37C; [7B 86 9D, 05, 05]
-A353; [7A 83 7C, 05, 05]
+A37D; [7B 86 A4, 05, 05]
-A354; [7A 83 83, 05, 05]
+A37E; [7B 86 AB, 05, 05]
-A355; [7A 83 8A, 05, 05]
+A37F; [7B 86 B2, 05, 05]
-A356; [7A 83 91, 05, 05]
+A380; [7B 86 B9, 05, 05]
-A357; [7A 83 98, 05, 05]
+A381; [7B 86 C0, 05, 05]
-A358; [7A 83 9F, 05, 05]
+A382; [7B 86 C7, 05, 05]
-A359; [7A 83 A6, 05, 05]
+A383; [7B 86 CE, 05, 05]
-A35A; [7A 83 AD, 05, 05]
+A384; [7B 86 D5, 05, 05]
-A35B; [7A 83 B4, 05, 05]
+A385; [7B 86 DC, 05, 05]
-A35C; [7A 83 BB, 05, 05]
+A386; [7B 86 E3, 05, 05]
-A35D; [7A 83 C2, 05, 05]
+A387; [7B 86 EA, 05, 05]
-A35E; [7A 83 C9, 05, 05]
+A388; [7B 86 F1, 05, 05]
-A35F; [7A 83 D0, 05, 05]
+A389; [7B 86 F8, 05, 05]
-A360; [7A 83 D7, 05, 05]
+A38A; [7B 86 FF, 05, 05]
-A361; [7A 83 DE, 05, 05]
+A38B; [7B 87 08, 05, 05]
-A362; [7A 83 E5, 05, 05]
+A38C; [7B 87 0F, 05, 05]
-A363; [7A 83 EC, 05, 05]
+A38D; [7B 87 16, 05, 05]
-A364; [7A 83 F3, 05, 05]
+A38E; [7B 87 1D, 05, 05]
-A365; [7A 83 FA, 05, 05]
+A38F; [7B 87 24, 05, 05]
-A366; [7A 84 03, 05, 05]
+A390; [7B 87 2B, 05, 05]
-A367; [7A 84 0A, 05, 05]
+A391; [7B 87 32, 05, 05]
-A368; [7A 84 11, 05, 05]
+A392; [7B 87 39, 05, 05]
-A369; [7A 84 18, 05, 05]
+A393; [7B 87 40, 05, 05]
-A36A; [7A 84 1F, 05, 05]
+A394; [7B 87 47, 05, 05]
-A36B; [7A 84 26, 05, 05]
+A395; [7B 87 4E, 05, 05]
-A36C; [7A 84 2D, 05, 05]
+A396; [7B 87 55, 05, 05]
-A36D; [7A 84 34, 05, 05]
+A397; [7B 87 5C, 05, 05]
-A36E; [7A 84 3B, 05, 05]
+A398; [7B 87 63, 05, 05]
-A36F; [7A 84 42, 05, 05]
+A399; [7B 87 6A, 05, 05]
-A370; [7A 84 49, 05, 05]
+A39A; [7B 87 71, 05, 05]
-A371; [7A 84 50, 05, 05]
+A39B; [7B 87 78, 05, 05]
-A372; [7A 84 57, 05, 05]
+A39C; [7B 87 7F, 05, 05]
-A373; [7A 84 5E, 05, 05]
+A39D; [7B 87 86, 05, 05]
-A374; [7A 84 65, 05, 05]
+A39E; [7B 87 8D, 05, 05]
-A375; [7A 84 6C, 05, 05]
+A39F; [7B 87 94, 05, 05]
-A376; [7A 84 73, 05, 05]
+A3A0; [7B 87 9B, 05, 05]
-A377; [7A 84 7A, 05, 05]
+A3A1; [7B 87 A2, 05, 05]
-A378; [7A 84 81, 05, 05]
+A3A2; [7B 87 A9, 05, 05]
-A379; [7A 84 88, 05, 05]
+A3A3; [7B 87 B0, 05, 05]
-A37A; [7A 84 8F, 05, 05]
+A3A4; [7B 87 B7, 05, 05]
-A37B; [7A 84 96, 05, 05]
+A3A5; [7B 87 BE, 05, 05]
-A37C; [7A 84 9D, 05, 05]
+A3A6; [7B 87 C5, 05, 05]
-A37D; [7A 84 A4, 05, 05]
+A3A7; [7B 87 CC, 05, 05]
-A37E; [7A 84 AB, 05, 05]
+A3A8; [7B 87 D3, 05, 05]
-A37F; [7A 84 B2, 05, 05]
+A3A9; [7B 87 DA, 05, 05]
-A380; [7A 84 B9, 05, 05]
+A3AA; [7B 87 E1, 05, 05]
-A381; [7A 84 C0, 05, 05]
+A3AB; [7B 87 E8, 05, 05]
-A382; [7A 84 C7, 05, 05]
+A3AC; [7B 87 EF, 05, 05]
-A383; [7A 84 CE, 05, 05]
+A3AD; [7B 87 F6, 05, 05]
-A384; [7A 84 D5, 05, 05]
+A3AE; [7B 87 FD, 05, 05]
-A385; [7A 84 DC, 05, 05]
+A3AF; [7B 88 06, 05, 05]
-A386; [7A 84 E3, 05, 05]
+A3B0; [7B 88 0D, 05, 05]
-A387; [7A 84 EA, 05, 05]
+A3B1; [7B 88 14, 05, 05]
-A388; [7A 84 F1, 05, 05]
+A3B2; [7B 88 1B, 05, 05]
-A389; [7A 84 F8, 05, 05]
+A3B3; [7B 88 22, 05, 05]
-A38A; [7A 84 FF, 05, 05]
+A3B4; [7B 88 29, 05, 05]
-A38B; [7A 85 08, 05, 05]
+A3B5; [7B 88 30, 05, 05]
-A38C; [7A 85 0F, 05, 05]
+A3B6; [7B 88 37, 05, 05]
-A38D; [7A 85 16, 05, 05]
+A3B7; [7B 88 3E, 05, 05]
-A38E; [7A 85 1D, 05, 05]
+A3B8; [7B 88 45, 05, 05]
-A38F; [7A 85 24, 05, 05]
+A3B9; [7B 88 4C, 05, 05]
-A390; [7A 85 2B, 05, 05]
+A3BA; [7B 88 53, 05, 05]
-A391; [7A 85 32, 05, 05]
+A3BB; [7B 88 5A, 05, 05]
-A392; [7A 85 39, 05, 05]
+A3BC; [7B 88 61, 05, 05]
-A393; [7A 85 40, 05, 05]
+A3BD; [7B 88 68, 05, 05]
-A394; [7A 85 47, 05, 05]
+A3BE; [7B 88 6F, 05, 05]
-A395; [7A 85 4E, 05, 05]
+A3BF; [7B 88 76, 05, 05]
-A396; [7A 85 55, 05, 05]
+A3C0; [7B 88 7D, 05, 05]
-A397; [7A 85 5C, 05, 05]
+A3C1; [7B 88 84, 05, 05]
-A398; [7A 85 63, 05, 05]
+A3C2; [7B 88 8B, 05, 05]
-A399; [7A 85 6A, 05, 05]
+A3C3; [7B 88 92, 05, 05]
-A39A; [7A 85 71, 05, 05]
+A3C4; [7B 88 99, 05, 05]
-A39B; [7A 85 78, 05, 05]
+A3C5; [7B 88 A0, 05, 05]
-A39C; [7A 85 7F, 05, 05]
+A3C6; [7B 88 A7, 05, 05]
-A39D; [7A 85 86, 05, 05]
+A3C7; [7B 88 AE, 05, 05]
-A39E; [7A 85 8D, 05, 05]
+A3C8; [7B 88 B5, 05, 05]
-A39F; [7A 85 94, 05, 05]
+A3C9; [7B 88 BC, 05, 05]
-A3A0; [7A 85 9B, 05, 05]
+A3CA; [7B 88 C3, 05, 05]
-A3A1; [7A 85 A2, 05, 05]
+A3CB; [7B 88 CA, 05, 05]
-A3A2; [7A 85 A9, 05, 05]
+A3CC; [7B 88 D1, 05, 05]
-A3A3; [7A 85 B0, 05, 05]
+A3CD; [7B 88 D8, 05, 05]
-A3A4; [7A 85 B7, 05, 05]
+A3CE; [7B 88 DF, 05, 05]
-A3A5; [7A 85 BE, 05, 05]
+A3CF; [7B 88 E6, 05, 05]
-A3A6; [7A 85 C5, 05, 05]
+A3D0; [7B 88 ED, 05, 05]
-A3A7; [7A 85 CC, 05, 05]
+A3D1; [7B 88 F4, 05, 05]
-A3A8; [7A 85 D3, 05, 05]
+A3D2; [7B 88 FB, 05, 05]
-A3A9; [7A 85 DA, 05, 05]
+A3D3; [7B 89 04, 05, 05]
-A3AA; [7A 85 E1, 05, 05]
+A3D4; [7B 89 0B, 05, 05]
-A3AB; [7A 85 E8, 05, 05]
+A3D5; [7B 89 12, 05, 05]
-A3AC; [7A 85 EF, 05, 05]
+A3D6; [7B 89 19, 05, 05]
-A3AD; [7A 85 F6, 05, 05]
+A3D7; [7B 89 20, 05, 05]
-A3AE; [7A 85 FD, 05, 05]
+A3D8; [7B 89 27, 05, 05]
-A3AF; [7A 86 06, 05, 05]
+A3D9; [7B 89 2E, 05, 05]
-A3B0; [7A 86 0D, 05, 05]
+A3DA; [7B 89 35, 05, 05]
-A3B1; [7A 86 14, 05, 05]
+A3DB; [7B 89 3C, 05, 05]
-A3B2; [7A 86 1B, 05, 05]
+A3DC; [7B 89 43, 05, 05]
-A3B3; [7A 86 22, 05, 05]
+A3DD; [7B 89 4A, 05, 05]
-A3B4; [7A 86 29, 05, 05]
+A3DE; [7B 89 51, 05, 05]
-A3B5; [7A 86 30, 05, 05]
+A3DF; [7B 89 58, 05, 05]
-A3B6; [7A 86 37, 05, 05]
+A3E0; [7B 89 5F, 05, 05]
-A3B7; [7A 86 3E, 05, 05]
+A3E1; [7B 89 66, 05, 05]
-A3B8; [7A 86 45, 05, 05]
+A3E2; [7B 89 6D, 05, 05]
-A3B9; [7A 86 4C, 05, 05]
+A3E3; [7B 89 74, 05, 05]
-A3BA; [7A 86 53, 05, 05]
+A3E4; [7B 89 7B, 05, 05]
-A3BB; [7A 86 5A, 05, 05]
+A3E5; [7B 89 82, 05, 05]
-A3BC; [7A 86 61, 05, 05]
+A3E6; [7B 89 89, 05, 05]
-A3BD; [7A 86 68, 05, 05]
+A3E7; [7B 89 90, 05, 05]
-A3BE; [7A 86 6F, 05, 05]
+A3E8; [7B 89 97, 05, 05]
-A3BF; [7A 86 76, 05, 05]
+A3E9; [7B 89 9E, 05, 05]
-A3C0; [7A 86 7D, 05, 05]
+A3EA; [7B 89 A5, 05, 05]
-A3C1; [7A 86 84, 05, 05]
+A3EB; [7B 89 AC, 05, 05]
-A3C2; [7A 86 8B, 05, 05]
+A3EC; [7B 89 B3, 05, 05]
-A3C3; [7A 86 92, 05, 05]
+A3ED; [7B 89 BA, 05, 05]
-A3C4; [7A 86 99, 05, 05]
+A3EE; [7B 89 C1, 05, 05]
-A3C5; [7A 86 A0, 05, 05]
+A3EF; [7B 89 C8, 05, 05]
-A3C6; [7A 86 A7, 05, 05]
+A3F0; [7B 89 CF, 05, 05]
-A3C7; [7A 86 AE, 05, 05]
+A3F1; [7B 89 D6, 05, 05]
-A3C8; [7A 86 B5, 05, 05]
+A3F2; [7B 89 DD, 05, 05]
-A3C9; [7A 86 BC, 05, 05]
+A3F3; [7B 89 E4, 05, 05]
-A3CA; [7A 86 C3, 05, 05]
+A3F4; [7B 89 EB, 05, 05]
-A3CB; [7A 86 CA, 05, 05]
+A3F5; [7B 89 F2, 05, 05]
-A3CC; [7A 86 D1, 05, 05]
+A3F6; [7B 89 F9, 05, 05]
-A3CD; [7A 86 D8, 05, 05]
+A3F7; [7B 8A 02, 05, 05]
-A3CE; [7A 86 DF, 05, 05]
+A3F8; [7B 8A 09, 05, 05]
-A3CF; [7A 86 E6, 05, 05]
+A3F9; [7B 8A 10, 05, 05]
-A3D0; [7A 86 ED, 05, 05]
+A3FA; [7B 8A 17, 05, 05]
-A3D1; [7A 86 F4, 05, 05]
+A3FB; [7B 8A 1E, 05, 05]
-A3D2; [7A 86 FB, 05, 05]
+A3FC; [7B 8A 25, 05, 05]
-A3D3; [7A 87 04, 05, 05]
+A3FD; [7B 8A 2C, 05, 05]
-A3D4; [7A 87 0B, 05, 05]
+A3FE; [7B 8A 33, 05, 05]
-A3D5; [7A 87 12, 05, 05]
+A3FF; [7B 8A 3A, 05, 05]
-A3D6; [7A 87 19, 05, 05]
+A400; [7B 8A 41, 05, 05]
-A3D7; [7A 87 20, 05, 05]
+A401; [7B 8A 48, 05, 05]
-A3D8; [7A 87 27, 05, 05]
+A402; [7B 8A 4F, 05, 05]
-A3D9; [7A 87 2E, 05, 05]
+A403; [7B 8A 56, 05, 05]
-A3DA; [7A 87 35, 05, 05]
+A404; [7B 8A 5D, 05, 05]
-A3DB; [7A 87 3C, 05, 05]
+A405; [7B 8A 64, 05, 05]
-A3DC; [7A 87 43, 05, 05]
+A406; [7B 8A 6B, 05, 05]
-A3DD; [7A 87 4A, 05, 05]
+A407; [7B 8A 72, 05, 05]
-A3DE; [7A 87 51, 05, 05]
+A408; [7B 8A 79, 05, 05]
-A3DF; [7A 87 58, 05, 05]
+A409; [7B 8A 80, 05, 05]
-A3E0; [7A 87 5F, 05, 05]
+A40A; [7B 8A 87, 05, 05]
-A3E1; [7A 87 66, 05, 05]
+A40B; [7B 8A 8E, 05, 05]
-A3E2; [7A 87 6D, 05, 05]
+A40C; [7B 8A 95, 05, 05]
-A3E3; [7A 87 74, 05, 05]
+A40D; [7B 8A 9C, 05, 05]
-A3E4; [7A 87 7B, 05, 05]
+A40E; [7B 8A A3, 05, 05]
-A3E5; [7A 87 82, 05, 05]
+A40F; [7B 8A AA, 05, 05]
-A3E6; [7A 87 89, 05, 05]
+A410; [7B 8A B1, 05, 05]
-A3E7; [7A 87 90, 05, 05]
+A411; [7B 8A B8, 05, 05]
-A3E8; [7A 87 97, 05, 05]
+A412; [7B 8A BF, 05, 05]
-A3E9; [7A 87 9E, 05, 05]
+A413; [7B 8A C6, 05, 05]
-A3EA; [7A 87 A5, 05, 05]
+A414; [7B 8A CD, 05, 05]
-A3EB; [7A 87 AC, 05, 05]
+A415; [7B 8A D4, 05, 05]
-A3EC; [7A 87 B3, 05, 05]
+A416; [7B 8A DB, 05, 05]
-A3ED; [7A 87 BA, 05, 05]
+A417; [7B 8A E2, 05, 05]
-A3EE; [7A 87 C1, 05, 05]
+A418; [7B 8A E9, 05, 05]
-A3EF; [7A 87 C8, 05, 05]
+A419; [7B 8A F0, 05, 05]
-A3F0; [7A 87 CF, 05, 05]
+A41A; [7B 8A F7, 05, 05]
-A3F1; [7A 87 D6, 05, 05]
+A41B; [7B 8A FE, 05, 05]
-A3F2; [7A 87 DD, 05, 05]
+A41C; [7B 8B 07, 05, 05]
-A3F3; [7A 87 E4, 05, 05]
+A41D; [7B 8B 0E, 05, 05]
-A3F4; [7A 87 EB, 05, 05]
+A41E; [7B 8B 15, 05, 05]
-A3F5; [7A 87 F2, 05, 05]
+A41F; [7B 8B 1C, 05, 05]
-A3F6; [7A 87 F9, 05, 05]
+A420; [7B 8B 23, 05, 05]
-A3F7; [7A 88 02, 05, 05]
+A421; [7B 8B 2A, 05, 05]
-A3F8; [7A 88 09, 05, 05]
+A422; [7B 8B 31, 05, 05]
-A3F9; [7A 88 10, 05, 05]
+A423; [7B 8B 38, 05, 05]
-A3FA; [7A 88 17, 05, 05]
+A424; [7B 8B 3F, 05, 05]
-A3FB; [7A 88 1E, 05, 05]
+A425; [7B 8B 46, 05, 05]
-A3FC; [7A 88 25, 05, 05]
+A426; [7B 8B 4D, 05, 05]
-A3FD; [7A 88 2C, 05, 05]
+A427; [7B 8B 54, 05, 05]
-A3FE; [7A 88 33, 05, 05]
+A428; [7B 8B 5B, 05, 05]
-A3FF; [7A 88 3A, 05, 05]
+A429; [7B 8B 62, 05, 05]
-A400; [7A 88 41, 05, 05]
+A42A; [7B 8B 69, 05, 05]
-A401; [7A 88 48, 05, 05]
+A42B; [7B 8B 70, 05, 05]
-A402; [7A 88 4F, 05, 05]
+A42C; [7B 8B 77, 05, 05]
-A403; [7A 88 56, 05, 05]
+A42D; [7B 8B 7E, 05, 05]
-A404; [7A 88 5D, 05, 05]
+A42E; [7B 8B 85, 05, 05]
-A405; [7A 88 64, 05, 05]
+A42F; [7B 8B 8C, 05, 05]
-A406; [7A 88 6B, 05, 05]
+A430; [7B 8B 93, 05, 05]
-A407; [7A 88 72, 05, 05]
+A431; [7B 8B 9A, 05, 05]
-A408; [7A 88 79, 05, 05]
+A432; [7B 8B A1, 05, 05]
-A409; [7A 88 80, 05, 05]
+A433; [7B 8B A8, 05, 05]
-A40A; [7A 88 87, 05, 05]
+A434; [7B 8B AF, 05, 05]
-A40B; [7A 88 8E, 05, 05]
+A435; [7B 8B B6, 05, 05]
-A40C; [7A 88 95, 05, 05]
+A436; [7B 8B BD, 05, 05]
-A40D; [7A 88 9C, 05, 05]
+A437; [7B 8B C4, 05, 05]
-A40E; [7A 88 A3, 05, 05]
+A438; [7B 8B CB, 05, 05]
-A40F; [7A 88 AA, 05, 05]
+A439; [7B 8B D2, 05, 05]
-A410; [7A 88 B1, 05, 05]
+A43A; [7B 8B D9, 05, 05]
-A411; [7A 88 B8, 05, 05]
+A43B; [7B 8B E0, 05, 05]
-A412; [7A 88 BF, 05, 05]
+A43C; [7B 8B E7, 05, 05]
-A413; [7A 88 C6, 05, 05]
+A43D; [7B 8B EE, 05, 05]
-A414; [7A 88 CD, 05, 05]
+A43E; [7B 8B F5, 05, 05]
-A415; [7A 88 D4, 05, 05]
+A43F; [7B 8B FC, 05, 05]
-A416; [7A 88 DB, 05, 05]
+A440; [7B 8C 05, 05, 05]
-A417; [7A 88 E2, 05, 05]
+A441; [7B 8C 0C, 05, 05]
-A418; [7A 88 E9, 05, 05]
+A442; [7B 8C 13, 05, 05]
-A419; [7A 88 F0, 05, 05]
+A443; [7B 8C 1A, 05, 05]
-A41A; [7A 88 F7, 05, 05]
+A444; [7B 8C 21, 05, 05]
-A41B; [7A 88 FE, 05, 05]
+A445; [7B 8C 28, 05, 05]
-A41C; [7A 89 07, 05, 05]
+A446; [7B 8C 2F, 05, 05]
-A41D; [7A 89 0E, 05, 05]
+A447; [7B 8C 36, 05, 05]
-A41E; [7A 89 15, 05, 05]
+A448; [7B 8C 3D, 05, 05]
-A41F; [7A 89 1C, 05, 05]
+A449; [7B 8C 44, 05, 05]
-A420; [7A 89 23, 05, 05]
+A44A; [7B 8C 4B, 05, 05]
-A421; [7A 89 2A, 05, 05]
+A44B; [7B 8C 52, 05, 05]
-A422; [7A 89 31, 05, 05]
+A44C; [7B 8C 59, 05, 05]
-A423; [7A 89 38, 05, 05]
+A44D; [7B 8C 60, 05, 05]
-A424; [7A 89 3F, 05, 05]
+A44E; [7B 8C 67, 05, 05]
-A425; [7A 89 46, 05, 05]
+A44F; [7B 8C 6E, 05, 05]
-A426; [7A 89 4D, 05, 05]
+A450; [7B 8C 75, 05, 05]
-A427; [7A 89 54, 05, 05]
+A451; [7B 8C 7C, 05, 05]
-A428; [7A 89 5B, 05, 05]
+A452; [7B 8C 83, 05, 05]
-A429; [7A 89 62, 05, 05]
+A453; [7B 8C 8A, 05, 05]
-A42A; [7A 89 69, 05, 05]
+A454; [7B 8C 91, 05, 05]
-A42B; [7A 89 70, 05, 05]
+A455; [7B 8C 98, 05, 05]
-A42C; [7A 89 77, 05, 05]
+A456; [7B 8C 9F, 05, 05]
-A42D; [7A 89 7E, 05, 05]
+A457; [7B 8C A6, 05, 05]
-A42E; [7A 89 85, 05, 05]
+A458; [7B 8C AD, 05, 05]
-A42F; [7A 89 8C, 05, 05]
+A459; [7B 8C B4, 05, 05]
-A430; [7A 89 93, 05, 05]
+A45A; [7B 8C BB, 05, 05]
-A431; [7A 89 9A, 05, 05]
+A45B; [7B 8C C2, 05, 05]
-A432; [7A 89 A1, 05, 05]
+A45C; [7B 8C C9, 05, 05]
-A433; [7A 89 A8, 05, 05]
+A45D; [7B 8C D0, 05, 05]
-A434; [7A 89 AF, 05, 05]
+A45E; [7B 8C D7, 05, 05]
-A435; [7A 89 B6, 05, 05]
+A45F; [7B 8C DE, 05, 05]
-A436; [7A 89 BD, 05, 05]
+A460; [7B 8C E5, 05, 05]
-A437; [7A 89 C4, 05, 05]
+A461; [7B 8C EC, 05, 05]
-A438; [7A 89 CB, 05, 05]
+A462; [7B 8C F3, 05, 05]
-A439; [7A 89 D2, 05, 05]
+A463; [7B 8C FA, 05, 05]
-A43A; [7A 89 D9, 05, 05]
+A464; [7B 8D 03, 05, 05]
-A43B; [7A 89 E0, 05, 05]
+A465; [7B 8D 0A, 05, 05]
-A43C; [7A 89 E7, 05, 05]
+A466; [7B 8D 11, 05, 05]
-A43D; [7A 89 EE, 05, 05]
+A467; [7B 8D 18, 05, 05]
-A43E; [7A 89 F5, 05, 05]
+A468; [7B 8D 1F, 05, 05]
-A43F; [7A 89 FC, 05, 05]
+A469; [7B 8D 26, 05, 05]
-A440; [7A 8A 05, 05, 05]
+A46A; [7B 8D 2D, 05, 05]
-A441; [7A 8A 0C, 05, 05]
+A46B; [7B 8D 34, 05, 05]
-A442; [7A 8A 13, 05, 05]
+A46C; [7B 8D 3B, 05, 05]
-A443; [7A 8A 1A, 05, 05]
+A46D; [7B 8D 42, 05, 05]
-A444; [7A 8A 21, 05, 05]
+A46E; [7B 8D 49, 05, 05]
-A445; [7A 8A 28, 05, 05]
+A46F; [7B 8D 50, 05, 05]
-A446; [7A 8A 2F, 05, 05]
+A470; [7B 8D 57, 05, 05]
-A447; [7A 8A 36, 05, 05]
+A471; [7B 8D 5E, 05, 05]
-A448; [7A 8A 3D, 05, 05]
+A472; [7B 8D 65, 05, 05]
-A449; [7A 8A 44, 05, 05]
+A473; [7B 8D 6C, 05, 05]
-A44A; [7A 8A 4B, 05, 05]
+A474; [7B 8D 73, 05, 05]
-A44B; [7A 8A 52, 05, 05]
+A475; [7B 8D 7A, 05, 05]
-A44C; [7A 8A 59, 05, 05]
+A476; [7B 8D 81, 05, 05]
-A44D; [7A 8A 60, 05, 05]
+A477; [7B 8D 88, 05, 05]
-A44E; [7A 8A 67, 05, 05]
+A478; [7B 8D 8F, 05, 05]
-A44F; [7A 8A 6E, 05, 05]
+A479; [7B 8D 96, 05, 05]
-A450; [7A 8A 75, 05, 05]
+A47A; [7B 8D 9D, 05, 05]
-A451; [7A 8A 7C, 05, 05]
+A47B; [7B 8D A4, 05, 05]
-A452; [7A 8A 83, 05, 05]
+A47C; [7B 8D AB, 05, 05]
-A453; [7A 8A 8A, 05, 05]
+A47D; [7B 8D B2, 05, 05]
-A454; [7A 8A 91, 05, 05]
+A47E; [7B 8D B9, 05, 05]
-A455; [7A 8A 98, 05, 05]
+A47F; [7B 8D C0, 05, 05]
-A456; [7A 8A 9F, 05, 05]
+A480; [7B 8D C7, 05, 05]
-A457; [7A 8A A6, 05, 05]
+A481; [7B 8D CE, 05, 05]
-A458; [7A 8A AD, 05, 05]
+A482; [7B 8D D5, 05, 05]
-A459; [7A 8A B4, 05, 05]
+A483; [7B 8D DC, 05, 05]
-A45A; [7A 8A BB, 05, 05]
+A484; [7B 8D E3, 05, 05]
-A45B; [7A 8A C2, 05, 05]
+A485; [7B 8D EA, 05, 05]
-A45C; [7A 8A C9, 05, 05]
+A486; [7B 8D F1, 05, 05]
-A45D; [7A 8A D0, 05, 05]
+A487; [7B 8D F8, 05, 05]
-A45E; [7A 8A D7, 05, 05]
+A488; [7B 8D FF, 05, 05]
-A45F; [7A 8A DE, 05, 05]
+A489; [7B 8E 08, 05, 05]
-A460; [7A 8A E5, 05, 05]
+A48A; [7B 8E 0F, 05, 05]
-A461; [7A 8A EC, 05, 05]
+A48B; [7B 8E 16, 05, 05]
-A462; [7A 8A F3, 05, 05]
+A48C; [7B 8E 1D, 05, 05]
-A463; [7A 8A FA, 05, 05]
+FDD1 A4D0; [7B 8F 02, 05, 05] # Lisu first primary (compressible)
-A464; [7A 8B 03, 05, 05]
+A4F8; [7B 8F 09, 05, 05]
-A465; [7A 8B 0A, 05, 05]
+A4F9; [7B 8F 10, 05, 05]
-A466; [7A 8B 11, 05, 05]
+A4FA; [7B 8F 17, 05, 05]
-A467; [7A 8B 18, 05, 05]
+A4FB; [7B 8F 1E, 05, 05]
-A468; [7A 8B 1F, 05, 05]
+A4FD; [7B 8F 25, 05, 05]
-A469; [7A 8B 26, 05, 05]
+A4FC; [7B 8F 2C, 05, 05]
-A46A; [7A 8B 2D, 05, 05]
+A4D0; [7B 8F 33, 05, 05]
-A46B; [7A 8B 34, 05, 05]
+A4D1; [7B 8F 3A, 05, 05]
-A46C; [7A 8B 3B, 05, 05]
+A4D2; [7B 8F 41, 05, 05]
-A46D; [7A 8B 42, 05, 05]
+A4D3; [7B 8F 48, 05, 05]
-A46E; [7A 8B 49, 05, 05]
+A4D4; [7B 8F 4F, 05, 05]
-A46F; [7A 8B 50, 05, 05]
+A4D5; [7B 8F 56, 05, 05]
-A470; [7A 8B 57, 05, 05]
+A4D6; [7B 8F 5D, 05, 05]
-A471; [7A 8B 5E, 05, 05]
+A4D7; [7B 8F 64, 05, 05]
-A472; [7A 8B 65, 05, 05]
+A4D8; [7B 8F 6B, 05, 05]
-A473; [7A 8B 6C, 05, 05]
+A4D9; [7B 8F 72, 05, 05]
-A474; [7A 8B 73, 05, 05]
+A4DA; [7B 8F 79, 05, 05]
-A475; [7A 8B 7A, 05, 05]
+A4DB; [7B 8F 80, 05, 05]
-A476; [7A 8B 81, 05, 05]
+A4DC; [7B 8F 87, 05, 05]
-A477; [7A 8B 88, 05, 05]
+A4DD; [7B 8F 8E, 05, 05]
-A478; [7A 8B 8F, 05, 05]
+A4DE; [7B 8F 95, 05, 05]
-A479; [7A 8B 96, 05, 05]
+A4DF; [7B 8F 9C, 05, 05]
-A47A; [7A 8B 9D, 05, 05]
+A4E0; [7B 8F A3, 05, 05]
-A47B; [7A 8B A4, 05, 05]
+A4E1; [7B 8F AA, 05, 05]
-A47C; [7A 8B AB, 05, 05]
+A4E2; [7B 8F B1, 05, 05]
-A47D; [7A 8B B2, 05, 05]
+A4E3; [7B 8F B8, 05, 05]
-A47E; [7A 8B B9, 05, 05]
+A4E4; [7B 8F BF, 05, 05]
-A47F; [7A 8B C0, 05, 05]
+A4E5; [7B 8F C6, 05, 05]
-A480; [7A 8B C7, 05, 05]
+A4E6; [7B 8F CD, 05, 05]
-A481; [7A 8B CE, 05, 05]
+A4E7; [7B 8F D4, 05, 05]
-A482; [7A 8B D5, 05, 05]
+A4E8; [7B 8F DB, 05, 05]
-A483; [7A 8B DC, 05, 05]
+A4E9; [7B 8F E2, 05, 05]
-A484; [7A 8B E3, 05, 05]
+A4EB; [7B 8F E9, 05, 05]
-A485; [7A 8B EA, 05, 05]
+A4ED; [7B 8F F0, 05, 05]
-A486; [7A 8B F1, 05, 05]
+A4EA; [7B 8F F7, 05, 05]
-A487; [7A 8B F8, 05, 05]
+A4EC; [7B 8F FE, 05, 05]
-A488; [7A 8B FF, 05, 05]
+A4EE; [7B 90 07, 05, 05]
-A489; [7A 8C 08, 05, 05]
+A4EF; [7B 90 0E, 05, 05]
-A48A; [7A 8C 0F, 05, 05]
+A4F0; [7B 90 15, 05, 05]
-A48B; [7A 8C 16, 05, 05]
+A4F1; [7B 90 1C, 05, 05]
-A48C; [7A 8C 1D, 05, 05]
+A4F2; [7B 90 23, 05, 05]
-FDD1 A4D0; [7A 8D 02, 05, 05] # Lisu first primary (compressible)
+A4F3; [7B 90 2A, 05, 05]
-A4F8; [7A 8D 09, 05, 05]
+A4F4; [7B 90 31, 05, 05]
-A4F9; [7A 8D 10, 05, 05]
+A4F5; [7B 90 38, 05, 05]
-A4FA; [7A 8D 17, 05, 05]
+A4F6; [7B 90 3F, 05, 05]
-A4FB; [7A 8D 1E, 05, 05]
+A4F7; [7B 90 46, 05, 05]
-A4FD; [7A 8D 25, 05, 05]
+FDD1 16F00; [7B 91 02, 05, 05] # Miao first primary (compressible)
-A4FC; [7A 8D 2C, 05, 05]
+16F00; [7B 91 09, 05, 05]
-A4D0; [7A 8D 33, 05, 05]
+16F01; [7B 91 10, 05, 05]
-A4D1; [7A 8D 3A, 05, 05]
+16F02; [7B 91 17, 05, 05]
-A4D2; [7A 8D 41, 05, 05]
+16F03; [7B 91 1E, 05, 05]
-A4D3; [7A 8D 48, 05, 05]
+16F04; [7B 93, 05, 05]
+16F06; [7B 93, 05, 20]
-A4D4; [7A 8D 4F, 05, 05]
+16F05; [7B 95 02, 05, 05]
-A4D5; [7A 8D 56, 05, 05]
+16F07; [7B 95 09, 05, 05]
-A4D6; [7A 8D 5D, 05, 05]
+16F08; [7B 95 10, 05, 05]
-A4D7; [7A 8D 64, 05, 05]
+16F09; [7B 95 17, 05, 05]
-A4D8; [7A 8D 6B, 05, 05]
+16F0A; [7B 95 1E, 05, 05]
-A4D9; [7A 8D 72, 05, 05]
+16F0B; [7B 95 25, 05, 05]
-A4DA; [7A 8D 79, 05, 05]
+16F0C; [7B 95 2C, 05, 05]
-A4DB; [7A 8D 80, 05, 05]
+16F0D; [7B 95 33, 05, 05]
-A4DC; [7A 8D 87, 05, 05]
+16F0E; [7B 95 3A, 05, 05]
-A4DD; [7A 8D 8E, 05, 05]
+16F0F; [7B 95 41, 05, 05]
-A4DE; [7A 8D 95, 05, 05]
+16F10; [7B 97, 05, 05]
+16F13; [7B 97, 05, 20]
-A4DF; [7A 8D 9C, 05, 05]
+16F11; [7B 99 02, 05, 05]
-A4E0; [7A 8D A3, 05, 05]
+16F12; [7B 99 09, 05, 05]
-A4E1; [7A 8D AA, 05, 05]
+16F14; [7B 99 10, 05, 05]
-A4E2; [7A 8D B1, 05, 05]
+16F15; [7B 99 17, 05, 05]
-A4E3; [7A 8D B8, 05, 05]
+16F16; [7B 99 1E, 05, 05]
-A4E4; [7A 8D BF, 05, 05]
+16F17; [7B 99 25, 05, 05]
-A4E5; [7A 8D C6, 05, 05]
+16F18; [7B 99 2C, 05, 05]
-A4E6; [7A 8D CD, 05, 05]
+16F19; [7B 99 33, 05, 05]
-A4E7; [7A 8D D4, 05, 05]
+16F1A; [7B 99 3A, 05, 05]
-A4E8; [7A 8D DB, 05, 05]
+16F1B; [7B 99 41, 05, 05]
-A4E9; [7A 8D E2, 05, 05]
+16F1C; [7B 99 48, 05, 05]
-A4EB; [7A 8D E9, 05, 05]
+16F1D; [7B 99 4F, 05, 05]
-A4ED; [7A 8D F0, 05, 05]
+16F1E; [7B 99 56, 05, 05]
-A4EA; [7A 8D F7, 05, 05]
+16F1F; [7B 99 5D, 05, 05]
-A4EC; [7A 8D FE, 05, 05]
+16F20; [7B 99 64, 05, 05]
-A4EE; [7A 8E 07, 05, 05]
+16F21; [7B 99 6B, 05, 05]
-A4EF; [7A 8E 0E, 05, 05]
+16F22; [7B 99 72, 05, 05]
-A4F0; [7A 8E 15, 05, 05]
+16F23; [7B 9B, 05, 05]
+16F25; [7B 9B, 05, 20]
-A4F1; [7A 8E 1C, 05, 05]
+16F24; [7B 9D 02, 05, 05]
-A4F2; [7A 8E 23, 05, 05]
+16F26; [7B 9D 09, 05, 05]
-A4F3; [7A 8E 2A, 05, 05]
+16F27; [7B 9D 10, 05, 05]
-A4F4; [7A 8E 31, 05, 05]
+16F28; [7B 9D 17, 05, 05]
-A4F5; [7A 8E 38, 05, 05]
+16F29; [7B 9D 1E, 05, 05]
-A4F6; [7A 8E 3F, 05, 05]
+16F2A; [7B 9D 25, 05, 05]
-A4F7; [7A 8E 46, 05, 05]
+16F2B; [7B 9D 2C, 05, 05]
-FDD1 16F00; [7A 8F 02, 05, 05] # Miao first primary (compressible)
+16F2C; [7B 9D 33, 05, 05]
-16F00; [7A 8F 09, 05, 05]
+16F2D; [7B 9D 3A, 05, 05]
-16F01; [7A 8F 10, 05, 05]
+16F2E; [7B 9D 41, 05, 05]
-16F02; [7A 8F 17, 05, 05]
+16F2F; [7B 9D 48, 05, 05]
-16F03; [7A 8F 1E, 05, 05]
+16F30; [7B 9D 4F, 05, 05]
-16F04; [7A 91, 05, 05]
-16F06; [7A 91, 05, 20]
+16F31; [7B 9D 56, 05, 05]
-16F05; [7A 93 02, 05, 05]
+16F32; [7B 9D 5D, 05, 05]
-16F07; [7A 93 09, 05, 05]
+16F33; [7B 9D 64, 05, 05]
-16F08; [7A 93 10, 05, 05]
+16F34; [7B 9D 6B, 05, 05]
-16F09; [7A 93 17, 05, 05]
+16F35; [7B 9D 72, 05, 05]
-16F0A; [7A 93 1E, 05, 05]
+16F36; [7B 9D 79, 05, 05]
-16F0B; [7A 93 25, 05, 05]
+16F37; [7B 9D 80, 05, 05]
-16F0C; [7A 93 2C, 05, 05]
+16F38; [7B 9D 87, 05, 05]
-16F0D; [7A 93 33, 05, 05]
+16F39; [7B 9D 8E, 05, 05]
-16F0E; [7A 93 3A, 05, 05]
+16F3A; [7B 9D 95, 05, 05]
-16F0F; [7A 93 41, 05, 05]
+16F3B; [7B 9D 9C, 05, 05]
-16F10; [7A 95, 05, 05]
-16F13; [7A 95, 05, 20]
+16F3C; [7B 9D A3, 05, 05]
-16F11; [7A 97 02, 05, 05]
+16F3D; [7B 9F, 05, 05]
+16F3F; [7B 9F, 05, 20]
-16F12; [7A 97 09, 05, 05]
+16F3E; [7B A1 02, 05, 05]
-16F14; [7A 97 10, 05, 05]
+16F40; [7B A1 09, 05, 05]
-16F15; [7A 97 17, 05, 05]
+16F41; [7B A1 10, 05, 05]
-16F16; [7A 97 1E, 05, 05]
+16F42; [7B A1 17, 05, 05]
-16F17; [7A 97 25, 05, 05]
+16F43; [7B A1 1E, 05, 05]
-16F18; [7A 97 2C, 05, 05]
+16F44; [7B A1 25, 05, 05]
-16F19; [7A 97 33, 05, 05]
+16F50; [7B A1 2C, 05, 05]
-16F1A; [7A 97 3A, 05, 05]
+16F51; [7B A1 33, 05, 05]
-16F1B; [7A 97 41, 05, 05]
+16F52; [7B A1 3A, 05, 05]
-16F1C; [7A 97 48, 05, 05]
+16F53; [7B A1 41, 05, 05]
-16F1D; [7A 97 4F, 05, 05]
+16F54; [7B A1 48, 05, 05]
-16F1E; [7A 97 56, 05, 05]
+16F55; [7B A1 4F, 05, 05]
-16F1F; [7A 97 5D, 05, 05]
+16F56; [7B A1 56, 05, 05]
-16F20; [7A 97 64, 05, 05]
+16F57; [7B A1 5D, 05, 05]
-16F21; [7A 97 6B, 05, 05]
+16F58; [7B A1 64, 05, 05]
-16F22; [7A 97 72, 05, 05]
+16F59; [7B A1 6B, 05, 05]
-16F23; [7A 99, 05, 05]
-16F25; [7A 99, 05, 20]
+16F5A; [7B A1 72, 05, 05]
-16F24; [7A 9B 02, 05, 05]
+16F5B; [7B A1 79, 05, 05]
-16F26; [7A 9B 09, 05, 05]
+16F5C; [7B A1 80, 05, 05]
-16F27; [7A 9B 10, 05, 05]
+16F5D; [7B A1 87, 05, 05]
-16F28; [7A 9B 17, 05, 05]
+16F5E; [7B A1 8E, 05, 05]
-16F29; [7A 9B 1E, 05, 05]
+16F5F; [7B A1 95, 05, 05]
-16F2A; [7A 9B 25, 05, 05]
+16F60; [7B A1 9C, 05, 05]
-16F2B; [7A 9B 2C, 05, 05]
+16F61; [7B A1 A3, 05, 05]
-16F2C; [7A 9B 33, 05, 05]
+16F62; [7B A1 AA, 05, 05]
-16F2D; [7A 9B 3A, 05, 05]
+16F63; [7B A1 B1, 05, 05]
-16F2E; [7A 9B 41, 05, 05]
+16F64; [7B A1 B8, 05, 05]
-16F2F; [7A 9B 48, 05, 05]
+16F65; [7B A1 BF, 05, 05]
-16F30; [7A 9B 4F, 05, 05]
+16F66; [7B A1 C6, 05, 05]
-16F31; [7A 9B 56, 05, 05]
+16F67; [7B A1 CD, 05, 05]
-16F32; [7A 9B 5D, 05, 05]
+16F68; [7B A1 D4, 05, 05]
-16F33; [7A 9B 64, 05, 05]
+16F69; [7B A1 DB, 05, 05]
-16F34; [7A 9B 6B, 05, 05]
+16F6A; [7B A1 E2, 05, 05]
-16F35; [7A 9B 72, 05, 05]
+16F6B; [7B A1 E9, 05, 05]
-16F36; [7A 9B 79, 05, 05]
+16F6C; [7B A1 F0, 05, 05]
-16F37; [7A 9B 80, 05, 05]
+16F6D; [7B A1 F7, 05, 05]
-16F38; [7A 9B 87, 05, 05]
+16F6E; [7B A1 FE, 05, 05]
-16F39; [7A 9B 8E, 05, 05]
+16F6F; [7B A2 07, 05, 05]
-16F3A; [7A 9B 95, 05, 05]
+16F70; [7B A2 0E, 05, 05]
-16F3B; [7A 9B 9C, 05, 05]
+16F71; [7B A2 15, 05, 05]
-16F3C; [7A 9B A3, 05, 05]
+16F72; [7B A2 1C, 05, 05]
-16F3D; [7A 9D, 05, 05]
-16F3F; [7A 9D, 05, 20]
+16F73; [7B A2 23, 05, 05]
-16F3E; [7A 9F 02, 05, 05]
+16F74; [7B A2 2A, 05, 05]
-16F40; [7A 9F 09, 05, 05]
+16F75; [7B A2 31, 05, 05]
-16F41; [7A 9F 10, 05, 05]
+16F76; [7B A2 38, 05, 05]
-16F42; [7A 9F 17, 05, 05]
+16F77; [7B A2 3F, 05, 05]
-16F43; [7A 9F 1E, 05, 05]
+16F78; [7B A2 46, 05, 05]
-16F44; [7A 9F 25, 05, 05]
+16F79; [7B A2 4D, 05, 05]
-16F50; [7A 9F 2C, 05, 05]
+16F7A; [7B A2 54, 05, 05]
-16F51; [7A 9F 33, 05, 05]
+16F7B; [7B A2 5B, 05, 05]
-16F52; [7A 9F 3A, 05, 05]
+16F7C; [7B A2 62, 05, 05]
-16F53; [7A 9F 41, 05, 05]
+16F7D; [7B A2 69, 05, 05]
-16F54; [7A 9F 48, 05, 05]
+16F7E; [7B A2 70, 05, 05]
-16F55; [7A 9F 4F, 05, 05]
+16F8F; [7B A2 77, 05, 05]
-16F56; [7A 9F 56, 05, 05]
+16F90; [7B A2 7E, 05, 05]
-16F57; [7A 9F 5D, 05, 05]
+16F91; [7B A2 85, 05, 05]
-16F58; [7A 9F 64, 05, 05]
+16F92; [7B A2 8C, 05, 05]
-16F59; [7A 9F 6B, 05, 05]
+16F93; [7B A2 93, 05, 05]
-16F5A; [7A 9F 72, 05, 05]
+16F94; [7B A2 9A, 05, 05]
-16F5B; [7A 9F 79, 05, 05]
+16F95; [7B A2 A1, 05, 05]
-16F5C; [7A 9F 80, 05, 05]
+16F96; [7B A2 A8, 05, 05]
-16F5D; [7A 9F 87, 05, 05]
+16F97; [7B A2 AF, 05, 05]
-16F5E; [7A 9F 8E, 05, 05]
+16F98; [7B A2 B6, 05, 05]
-16F5F; [7A 9F 95, 05, 05]
+16F99; [7B A2 BD, 05, 05]
-16F60; [7A 9F 9C, 05, 05]
+16F9A; [7B A2 C4, 05, 05]
-16F61; [7A 9F A3, 05, 05]
+16F9B; [7B A2 CB, 05, 05]
-16F62; [7A 9F AA, 05, 05]
+16F9C; [7B A2 D2, 05, 05]
-16F63; [7A 9F B1, 05, 05]
+16F9D; [7B A2 D9, 05, 05]
-16F64; [7A 9F B8, 05, 05]
+16F9E; [7B A2 E0, 05, 05]
-16F65; [7A 9F BF, 05, 05]
+16F9F; [7B A2 E7, 05, 05]
-16F66; [7A 9F C6, 05, 05]
+FDD1 118B4; [7B A3 02, 05, 05] # Warang_Citi first primary (compressible)
-16F67; [7A 9F CD, 05, 05]
+118FF; [7B A3 09, 05, 05]
-16F68; [7A 9F D4, 05, 05]
+118C0; [7B A5, 05, 05]
+118A0; [7B A5, 05, A0]
-16F69; [7A 9F DB, 05, 05]
+118C1; [7B A7, 05, 05]
+118A1; [7B A7, 05, A0]
-16F6A; [7A 9F E2, 05, 05]
+118C2; [7B A9, 05, 05]
+118A2; [7B A9, 05, A0]
-16F6B; [7A 9F E9, 05, 05]
+118C3; [7B AB, 05, 05]
+118A3; [7B AB, 05, A0]
-16F6C; [7A 9F F0, 05, 05]
+118C4; [7B AD, 05, 05]
+118A4; [7B AD, 05, A0]
-16F6D; [7A 9F F7, 05, 05]
+118C5; [7B AF, 05, 05]
+118A5; [7B AF, 05, A0]
-16F6E; [7A 9F FE, 05, 05]
+118C6; [7B B1, 05, 05]
+118A6; [7B B1, 05, A0]
-16F6F; [7A A0 07, 05, 05]
+118C7; [7B B3, 05, 05]
+118A7; [7B B3, 05, A0]
-16F70; [7A A0 0E, 05, 05]
+118C8; [7B B5, 05, 05]
+118A8; [7B B5, 05, A0]
-16F71; [7A A0 15, 05, 05]
+118C9; [7B B7, 05, 05]
+118A9; [7B B7, 05, A0]
-16F72; [7A A0 1C, 05, 05]
+118CA; [7B B9, 05, 05]
+118AA; [7B B9, 05, A0]
-16F73; [7A A0 23, 05, 05]
+118CB; [7B BB, 05, 05]
+118AB; [7B BB, 05, A0]
-16F74; [7A A0 2A, 05, 05]
+118CC; [7B BD, 05, 05]
+118AC; [7B BD, 05, A0]
-16F75; [7A A0 31, 05, 05]
+118CD; [7B BF, 05, 05]
+118AD; [7B BF, 05, A0]
-16F76; [7A A0 38, 05, 05]
+118CE; [7B C1, 05, 05]
+118AE; [7B C1, 05, A0]
-16F77; [7A A0 3F, 05, 05]
+118CF; [7B C3, 05, 05]
+118AF; [7B C3, 05, A0]
-16F78; [7A A0 46, 05, 05]
+118D0; [7B C5, 05, 05]
+118B0; [7B C5, 05, A0]
-16F79; [7A A0 4D, 05, 05]
+118D1; [7B C7, 05, 05]
+118B1; [7B C7, 05, A0]
-16F7A; [7A A0 54, 05, 05]
+118D2; [7B C9, 05, 05]
+118B2; [7B C9, 05, A0]
-16F7B; [7A A0 5B, 05, 05]
+118D3; [7B CB, 05, 05]
+118B3; [7B CB, 05, A0]
-16F7C; [7A A0 62, 05, 05]
+118D4; [7B CD, 05, 05]
+118B4; [7B CD, 05, A0]
-16F7D; [7A A0 69, 05, 05]
+118D5; [7B CF, 05, 05]
+118B5; [7B CF, 05, A0]
-16F7E; [7A A0 70, 05, 05]
+118D6; [7B D1, 05, 05]
+118B6; [7B D1, 05, A0]
-16F8F; [7A A0 77, 05, 05]
+118D7; [7B D3, 05, 05]
+118B7; [7B D3, 05, A0]
-16F90; [7A A0 7E, 05, 05]
+118D8; [7B D5, 05, 05]
+118B8; [7B D5, 05, A0]
-16F91; [7A A0 85, 05, 05]
+118D9; [7B D7, 05, 05]
+118B9; [7B D7, 05, A0]
-16F92; [7A A0 8C, 05, 05]
+118DA; [7B D9, 05, 05]
+118BA; [7B D9, 05, A0]
-16F93; [7A A0 93, 05, 05]
+118DB; [7B DB, 05, 05]
+118BB; [7B DB, 05, A0]
-16F94; [7A A0 9A, 05, 05]
+118DC; [7B DD, 05, 05]
+118BC; [7B DD, 05, A0]
-16F95; [7A A0 A1, 05, 05]
+118DD; [7B DF, 05, 05]
+118BD; [7B DF, 05, A0]
-16F96; [7A A0 A8, 05, 05]
+118DE; [7B E1, 05, 05]
+118BE; [7B E1, 05, A0]
-16F97; [7A A0 AF, 05, 05]
+118DF; [7B E3, 05, 05]
+118BF; [7B E3, 05, A0]
-16F98; [7A A0 B6, 05, 05]
+FDD1 11AC0; [7B E5 02, 05, 05] # Pau_Cin_Hau first primary (compressible)
-16F99; [7A A0 BD, 05, 05]
+11AD5; [7B E5 09, 05, 05]
-16F9A; [7A A0 C4, 05, 05]
+11AD6; [7B E5 10, 05, 05]
-16F9B; [7A A0 CB, 05, 05]
+11AD7; [7B E5 17, 05, 05]
-16F9C; [7A A0 D2, 05, 05]
+11AD8; [7B E5 1E, 05, 05]
-16F9D; [7A A0 D9, 05, 05]
+11AD9; [7B E5 25, 05, 05]
-16F9E; [7A A0 E0, 05, 05]
+11ADA; [7B E5 2C, 05, 05]
-16F9F; [7A A0 E7, 05, 05]
+11ADB; [7B E5 33, 05, 05]
-FDD1 118B4; [7A A1 02, 05, 05] # Warang_Citi first primary (compressible)
+11AC0; [7B E5 3A, 05, 05]
-118FF; [7A A1 09, 05, 05]
+11AC1; [7B E5 41, 05, 05]
-118C0; [7A A3, 05, 05]
-118A0; [7A A3, 05, A0]
+11AC2; [7B E5 48, 05, 05]
-118C1; [7A A5, 05, 05]
-118A1; [7A A5, 05, A0]
+11AC3; [7B E5 4F, 05, 05]
-118C2; [7A A7, 05, 05]
-118A2; [7A A7, 05, A0]
+11AC4; [7B E5 56, 05, 05]
-118C3; [7A A9, 05, 05]
-118A3; [7A A9, 05, A0]
+11AC5; [7B E5 5D, 05, 05]
-118C4; [7A AB, 05, 05]
-118A4; [7A AB, 05, A0]
+11AC6; [7B E5 64, 05, 05]
-118C5; [7A AD, 05, 05]
-118A5; [7A AD, 05, A0]
+11AC7; [7B E5 6B, 05, 05]
-118C6; [7A AF, 05, 05]
-118A6; [7A AF, 05, A0]
+11AC8; [7B E5 72, 05, 05]
-118C7; [7A B1, 05, 05]
-118A7; [7A B1, 05, A0]
+11AC9; [7B E5 79, 05, 05]
-118C8; [7A B3, 05, 05]
-118A8; [7A B3, 05, A0]
+11ACA; [7B E5 80, 05, 05]
-118C9; [7A B5, 05, 05]
-118A9; [7A B5, 05, A0]
+11ACB; [7B E5 87, 05, 05]
-118CA; [7A B7, 05, 05]
-118AA; [7A B7, 05, A0]
+11ACC; [7B E5 8E, 05, 05]
-118CB; [7A B9, 05, 05]
-118AB; [7A B9, 05, A0]
+11ACD; [7B E5 95, 05, 05]
-118CC; [7A BB, 05, 05]
-118AC; [7A BB, 05, A0]
+11ACE; [7B E5 9C, 05, 05]
-118CD; [7A BD, 05, 05]
-118AD; [7A BD, 05, A0]
+11ACF; [7B E5 A3, 05, 05]
-118CE; [7A BF, 05, 05]
-118AE; [7A BF, 05, A0]
+11AD0; [7B E5 AA, 05, 05]
-118CF; [7A C1, 05, 05]
-118AF; [7A C1, 05, A0]
+11AD1; [7B E5 B1, 05, 05]
-118D0; [7A C3, 05, 05]
-118B0; [7A C3, 05, A0]
+11AD2; [7B E5 B8, 05, 05]
-118D1; [7A C5, 05, 05]
-118B1; [7A C5, 05, A0]
+11AD3; [7B E5 BF, 05, 05]
-118D2; [7A C7, 05, 05]
-118B2; [7A C7, 05, A0]
+11AD4; [7B E5 C6, 05, 05]
-118D3; [7A C9, 05, 05]
-118B3; [7A C9, 05, A0]
+11ADC; [7B E5 CD, 05, 05]
-118D4; [7A CB, 05, 05]
-118B4; [7A CB, 05, A0]
+11ADD; [7B E5 D4, 05, 05]
-118D5; [7A CD, 05, 05]
-118B5; [7A CD, 05, A0]
+11ADF; [7B E5 DB, 05, 05]
-118D6; [7A CF, 05, 05]
-118B6; [7A CF, 05, A0]
+11AE0; [7B E5 E2, 05, 05]
-118D7; [7A D1, 05, 05]
-118B7; [7A D1, 05, A0]
+11AE1; [7B E5 E9, 05, 05]
-118D8; [7A D3, 05, 05]
-118B8; [7A D3, 05, A0]
+11AE2; [7B E5 F0, 05, 05]
-118D9; [7A D5, 05, 05]
-118B9; [7A D5, 05, A0]
+11AE3; [7B E5 F7, 05, 05]
-118DA; [7A D7, 05, 05]
-118BA; [7A D7, 05, A0]
+11ADE; [7B E5 FE, 05, 05]
-118DB; [7A D9, 05, 05]
-118BB; [7A D9, 05, A0]
+11AE4; [7B E6 07, 05, 05]
-118DC; [7A DB, 05, 05]
-118BC; [7A DB, 05, A0]
+11AEF; [7B E6 0E, 05, 05]
-118DD; [7A DD, 05, 05]
-118BD; [7A DD, 05, A0]
+11AF2; [7B E6 15, 05, 05]
-118DE; [7A DF, 05, 05]
-118BE; [7A DF, 05, A0]
+11AF1; [7B E6 1C, 05, 05]
-118DF; [7A E1, 05, 05]
-118BF; [7A E1, 05, A0]
+11AE6; [7B E6 23, 05, 05]
-FDD1 11AC0; [7A E3 02, 05, 05] # Pau_Cin_Hau first primary (compressible)
+11AE9; [7B E6 2A, 05, 05]
-11AD5; [7A E3 09, 05, 05]
+11AE5; [7B E6 31, 05, 05]
-11AD6; [7A E3 10, 05, 05]
+11AE8; [7B E6 38, 05, 05]
-11AD7; [7A E3 17, 05, 05]
+11AF4; [7B E6 3F, 05, 05]
-11AD8; [7A E3 1E, 05, 05]
+11AF7; [7B E6 46, 05, 05]
-11AD9; [7A E3 25, 05, 05]
+11AF3; [7B E6 4D, 05, 05]
-11ADA; [7A E3 2C, 05, 05]
+11AF6; [7B E6 54, 05, 05]
-11ADB; [7A E3 33, 05, 05]
+11AEC; [7B E6 5B, 05, 05]
-11AC0; [7A E3 3A, 05, 05]
+11AEE; [7B E6 62, 05, 05]
-11AC1; [7A E3 41, 05, 05]
+11AEB; [7B E6 69, 05, 05]
-11AC2; [7A E3 48, 05, 05]
+11AED; [7B E6 70, 05, 05]
-11AC3; [7A E3 4F, 05, 05]
+11AF5; [7B E6 77, 05, 05]
-11AC4; [7A E3 56, 05, 05]
+11AF8; [7B E6 7E, 05, 05]
-11AC5; [7A E3 5D, 05, 05]
+11AE7; [7B E6 85, 05, 05]
-11AC6; [7A E3 64, 05, 05]
+11AEA; [7B E6 8C, 05, 05]
-11AC7; [7A E3 6B, 05, 05]
+11AF0; [7B E6 93, 05, 05]
-11AC8; [7A E3 72, 05, 05]
+FDD1 16B1C; [7B E7 02, 05, 05] # Pahawh_Hmong first primary (compressible)
-11AC9; [7A E3 79, 05, 05]
+16B00; [7B E7 09, 05, 05]
-11ACA; [7A E3 80, 05, 05]
+16B01; [7B E7 10, 05, 05]
-11ACB; [7A E3 87, 05, 05]
+16B02; [7B E7 17, 05, 05]
-11ACC; [7A E3 8E, 05, 05]
+16B03; [7B E7 1E, 05, 05]
-11ACD; [7A E3 95, 05, 05]
+16B04; [7B E7 25, 05, 05]
-11ACE; [7A E3 9C, 05, 05]
+16B05; [7B E7 2C, 05, 05]
-11ACF; [7A E3 A3, 05, 05]
+16B06; [7B E7 33, 05, 05]
-11AD0; [7A E3 AA, 05, 05]
+16B07; [7B E7 3A, 05, 05]
-11AD1; [7A E3 B1, 05, 05]
+16B08; [7B E7 41, 05, 05]
-11AD2; [7A E3 B8, 05, 05]
+16B09; [7B E7 48, 05, 05]
-11AD3; [7A E3 BF, 05, 05]
+16B0A; [7B E7 4F, 05, 05]
-11AD4; [7A E3 C6, 05, 05]
+16B0B; [7B E7 56, 05, 05]
-11ADC; [7A E3 CD, 05, 05]
+16B0C; [7B E7 5D, 05, 05]
-11ADD; [7A E3 D4, 05, 05]
+16B0D; [7B E7 64, 05, 05]
-11ADF; [7A E3 DB, 05, 05]
+16B0E; [7B E7 6B, 05, 05]
-11AE0; [7A E3 E2, 05, 05]
+16B0F; [7B E7 72, 05, 05]
-11AE1; [7A E3 E9, 05, 05]
+16B10; [7B E7 79, 05, 05]
-11AE2; [7A E3 F0, 05, 05]
+16B11; [7B E7 80, 05, 05]
-11AE3; [7A E3 F7, 05, 05]
+16B12; [7B E7 87, 05, 05]
-11ADE; [7A E3 FE, 05, 05]
+16B13; [7B E7 8E, 05, 05]
-11AE4; [7A E4 07, 05, 05]
+16B14; [7B E7 95, 05, 05]
-11AEF; [7A E4 0E, 05, 05]
+16B15; [7B E7 9C, 05, 05]
-11AF2; [7A E4 15, 05, 05]
+16B16; [7B E7 A3, 05, 05]
-11AF1; [7A E4 1C, 05, 05]
+16B17; [7B E7 AA, 05, 05]
-11AE6; [7A E4 23, 05, 05]
+16B18; [7B E7 B1, 05, 05]
-11AE9; [7A E4 2A, 05, 05]
+16B19; [7B E7 B8, 05, 05]
-11AE5; [7A E4 31, 05, 05]
+16B1A; [7B E7 BF, 05, 05]
-11AE8; [7A E4 38, 05, 05]
+16B1B; [7B E7 C6, 05, 05]
-11AF4; [7A E4 3F, 05, 05]
+16B1C; [7B E7 CD, 05, 05]
-11AF7; [7A E4 46, 05, 05]
+16B1D; [7B E7 D4, 05, 05]
-11AF3; [7A E4 4D, 05, 05]
+16B1E; [7B E7 DB, 05, 05]
-11AF6; [7A E4 54, 05, 05]
+16B1F; [7B E7 E2, 05, 05]
-11AEC; [7A E4 5B, 05, 05]
+16B20; [7B E7 E9, 05, 05]
-11AEE; [7A E4 62, 05, 05]
+16B21; [7B E7 F0, 05, 05]
-11AEB; [7A E4 69, 05, 05]
+16B22; [7B E7 F7, 05, 05]
-11AED; [7A E4 70, 05, 05]
+16B23; [7B E7 FE, 05, 05]
-11AF5; [7A E4 77, 05, 05]
+16B24; [7B E8 07, 05, 05]
-11AF8; [7A E4 7E, 05, 05]
+16B25; [7B E8 0E, 05, 05]
-11AE7; [7A E4 85, 05, 05]
+16B26; [7B E8 15, 05, 05]
-11AEA; [7A E4 8C, 05, 05]
+16B27; [7B E8 1C, 05, 05]
-11AF0; [7A E4 93, 05, 05]
+16B28; [7B E8 23, 05, 05]
-FDD1 16B1C; [7A E5 02, 05, 05] # Pahawh_Hmong first primary (compressible)
+16B29; [7B E8 2A, 05, 05]
-16B00; [7A E5 09, 05, 05]
+16B2A; [7B E8 31, 05, 05]
-16B01; [7A E5 10, 05, 05]
+16B2B; [7B E8 38, 05, 05]
-16B02; [7A E5 17, 05, 05]
+16B2C; [7B E8 3F, 05, 05]
-16B03; [7A E5 1E, 05, 05]
+16B2D; [7B E8 46, 05, 05]
-16B04; [7A E5 25, 05, 05]
+16B2E; [7B E8 4D, 05, 05]
-16B05; [7A E5 2C, 05, 05]
+16B2F; [7B E8 54, 05, 05]
-16B06; [7A E5 33, 05, 05]
+16B40; [7B E8 5B, 05, 05]
-16B07; [7A E5 3A, 05, 05]
+16B41; [7B E8 62, 05, 05]
-16B08; [7A E5 41, 05, 05]
+16B63; [7B E8 69, 05, 05]
-16B09; [7A E5 48, 05, 05]
+16B64; [7B E8 70, 05, 05]
-16B0A; [7A E5 4F, 05, 05]
+16B65; [7B E8 77, 05, 05]
-16B0B; [7A E5 56, 05, 05]
+16B66; [7B E8 7E, 05, 05]
-16B0C; [7A E5 5D, 05, 05]
+16B67; [7B E8 85, 05, 05]
-16B0D; [7A E5 64, 05, 05]
+16B68; [7B E8 8C, 05, 05]
-16B0E; [7A E5 6B, 05, 05]
+16B69; [7B E8 93, 05, 05]
-16B0F; [7A E5 72, 05, 05]
+16B6A; [7B E8 9A, 05, 05]
-16B10; [7A E5 79, 05, 05]
+16B6B; [7B E8 A1, 05, 05]
-16B11; [7A E5 80, 05, 05]
+16B6C; [7B E8 A8, 05, 05]
-16B12; [7A E5 87, 05, 05]
+16B6D; [7B E8 AF, 05, 05]
-16B13; [7A E5 8E, 05, 05]
+16B6E; [7B E8 B6, 05, 05]
-16B14; [7A E5 95, 05, 05]
+16B6F; [7B E8 BD, 05, 05]
-16B15; [7A E5 9C, 05, 05]
+16B70; [7B E8 C4, 05, 05]
-16B16; [7A E5 A3, 05, 05]
+16B71; [7B E8 CB, 05, 05]
-16B17; [7A E5 AA, 05, 05]
+16B72; [7B E8 D2, 05, 05]
-16B18; [7A E5 B1, 05, 05]
+16B73; [7B E8 D9, 05, 05]
-16B19; [7A E5 B8, 05, 05]
+16B74; [7B E8 E0, 05, 05]
-16B1A; [7A E5 BF, 05, 05]
+16B75; [7B E8 E7, 05, 05]
-16B1B; [7A E5 C6, 05, 05]
+16B76; [7B E8 EE, 05, 05]
-16B1C; [7A E5 CD, 05, 05]
+16B77; [7B E8 F5, 05, 05]
-16B1D; [7A E5 D4, 05, 05]
+16B7D; [7B E8 FC, 05, 05]
-16B1E; [7A E5 DB, 05, 05]
+16B7E; [7B E9 05, 05, 05]
-16B1F; [7A E5 E2, 05, 05]
+16B7F; [7B E9 0C, 05, 05]
-16B20; [7A E5 E9, 05, 05]
+16B80; [7B E9 13, 05, 05]
-16B21; [7A E5 F0, 05, 05]
+16B81; [7B E9 1A, 05, 05]
-16B22; [7A E5 F7, 05, 05]
+16B82; [7B E9 21, 05, 05]
-16B23; [7A E5 FE, 05, 05]
+16B83; [7B E9 28, 05, 05]
-16B24; [7A E6 07, 05, 05]
+16B84; [7B E9 2F, 05, 05]
-16B25; [7A E6 0E, 05, 05]
+16B85; [7B E9 36, 05, 05]
-16B26; [7A E6 15, 05, 05]
+16B86; [7B E9 3D, 05, 05]
-16B27; [7A E6 1C, 05, 05]
+16B87; [7B E9 44, 05, 05]
-16B28; [7A E6 23, 05, 05]
+16B88; [7B E9 4B, 05, 05]
-16B29; [7A E6 2A, 05, 05]
+16B89; [7B E9 52, 05, 05]
-16B2A; [7A E6 31, 05, 05]
+16B8A; [7B E9 59, 05, 05]
-16B2B; [7A E6 38, 05, 05]
+16B8B; [7B E9 60, 05, 05]
-16B2C; [7A E6 3F, 05, 05]
+16B8C; [7B E9 67, 05, 05]
-16B2D; [7A E6 46, 05, 05]
+16B8D; [7B E9 6E, 05, 05]
-16B2E; [7A E6 4D, 05, 05]
+16B8E; [7B E9 75, 05, 05]
-16B2F; [7A E6 54, 05, 05]
+16B8F; [7B E9 7C, 05, 05]
-16B40; [7A E6 5B, 05, 05]
+FDD1 10280; [7B EA 02, 05, 05] # Lycian first primary (compressible)
-16B41; [7A E6 62, 05, 05]
+10280; [7B EA 09, 05, 05]
-16B63; [7A E6 69, 05, 05]
+10281; [7B EA 10, 05, 05]
-16B64; [7A E6 70, 05, 05]
+10282; [7B EA 17, 05, 05]
-16B65; [7A E6 77, 05, 05]
+10283; [7B EA 1E, 05, 05]
-16B66; [7A E6 7E, 05, 05]
+10284; [7B EA 25, 05, 05]
-16B67; [7A E6 85, 05, 05]
+10285; [7B EA 2C, 05, 05]
-16B68; [7A E6 8C, 05, 05]
+10286; [7B EA 33, 05, 05]
-16B69; [7A E6 93, 05, 05]
+10287; [7B EA 3A, 05, 05]
-16B6A; [7A E6 9A, 05, 05]
+10288; [7B EA 41, 05, 05]
-16B6B; [7A E6 A1, 05, 05]
+10289; [7B EA 48, 05, 05]
-16B6C; [7A E6 A8, 05, 05]
+1028A; [7B EA 4F, 05, 05]
-16B6D; [7A E6 AF, 05, 05]
+1028B; [7B EA 56, 05, 05]
-16B6E; [7A E6 B6, 05, 05]
+1028C; [7B EA 5D, 05, 05]
-16B6F; [7A E6 BD, 05, 05]
+1028D; [7B EA 64, 05, 05]
-16B70; [7A E6 C4, 05, 05]
+1028E; [7B EA 6B, 05, 05]
-16B71; [7A E6 CB, 05, 05]
+1028F; [7B EA 72, 05, 05]
-16B72; [7A E6 D2, 05, 05]
+10290; [7B EA 79, 05, 05]
-16B73; [7A E6 D9, 05, 05]
+10291; [7B EA 80, 05, 05]
-16B74; [7A E6 E0, 05, 05]
+10292; [7B EA 87, 05, 05]
-16B75; [7A E6 E7, 05, 05]
+10293; [7B EA 8E, 05, 05]
-16B76; [7A E6 EE, 05, 05]
+10294; [7B EA 95, 05, 05]
-16B77; [7A E6 F5, 05, 05]
+10295; [7B EA 9C, 05, 05]
-16B7D; [7A E6 FC, 05, 05]
+10296; [7B EA A3, 05, 05]
-16B7E; [7A E7 05, 05, 05]
+10297; [7B EA AA, 05, 05]
-16B7F; [7A E7 0C, 05, 05]
+10298; [7B EA B1, 05, 05]
-16B80; [7A E7 13, 05, 05]
+10299; [7B EA B8, 05, 05]
-16B81; [7A E7 1A, 05, 05]
+1029A; [7B EA BF, 05, 05]
-16B82; [7A E7 21, 05, 05]
+1029B; [7B EA C6, 05, 05]
-16B83; [7A E7 28, 05, 05]
+1029C; [7B EA CD, 05, 05]
-16B84; [7A E7 2F, 05, 05]
+FDD1 102A0; [7B EB 02, 05, 05] # Carian first primary (compressible)
-16B85; [7A E7 36, 05, 05]
+102A0; [7B EB 09, 05, 05]
-16B86; [7A E7 3D, 05, 05]
+102A1; [7B EB 10, 05, 05]
-16B87; [7A E7 44, 05, 05]
+102A2; [7B EB 17, 05, 05]
-16B88; [7A E7 4B, 05, 05]
+102A3; [7B EB 1E, 05, 05]
-16B89; [7A E7 52, 05, 05]
+102A4; [7B EB 25, 05, 05]
-16B8A; [7A E7 59, 05, 05]
+102A5; [7B EB 2C, 05, 05]
-16B8B; [7A E7 60, 05, 05]
+102A6; [7B EB 33, 05, 05]
-16B8C; [7A E7 67, 05, 05]
+102A7; [7B EB 3A, 05, 05]
-16B8D; [7A E7 6E, 05, 05]
+102A8; [7B EB 41, 05, 05]
-16B8E; [7A E7 75, 05, 05]
+102A9; [7B EB 48, 05, 05]
-16B8F; [7A E7 7C, 05, 05]
+102AA; [7B EB 4F, 05, 05]
-FDD1 10280; [7A E8 02, 05, 05] # Lycian first primary (compressible)
+102AB; [7B EB 56, 05, 05]
-10280; [7A E8 09, 05, 05]
+102AC; [7B EB 5D, 05, 05]
-10281; [7A E8 10, 05, 05]
+102AD; [7B EB 64, 05, 05]
-10282; [7A E8 17, 05, 05]
+102AE; [7B EB 6B, 05, 05]
-10283; [7A E8 1E, 05, 05]
+102AF; [7B EB 72, 05, 05]
-10284; [7A E8 25, 05, 05]
+102B0; [7B EB 79, 05, 05]
-10285; [7A E8 2C, 05, 05]
+102B1; [7B EB 80, 05, 05]
-10286; [7A E8 33, 05, 05]
+102B2; [7B EB 87, 05, 05]
-10287; [7A E8 3A, 05, 05]
+102B3; [7B EB 8E, 05, 05]
-10288; [7A E8 41, 05, 05]
+102B4; [7B EB 95, 05, 05]
-10289; [7A E8 48, 05, 05]
+102B5; [7B EB 9C, 05, 05]
-1028A; [7A E8 4F, 05, 05]
+102B6; [7B EB A3, 05, 05]
-1028B; [7A E8 56, 05, 05]
+102B7; [7B EB AA, 05, 05]
-1028C; [7A E8 5D, 05, 05]
+102B8; [7B EB B1, 05, 05]
-1028D; [7A E8 64, 05, 05]
+102B9; [7B EB B8, 05, 05]
-1028E; [7A E8 6B, 05, 05]
+102BA; [7B EB BF, 05, 05]
-1028F; [7A E8 72, 05, 05]
+102BB; [7B EB C6, 05, 05]
-10290; [7A E8 79, 05, 05]
+102BC; [7B EB CD, 05, 05]
-10291; [7A E8 80, 05, 05]
+102BD; [7B EB D4, 05, 05]
-10292; [7A E8 87, 05, 05]
+102BE; [7B EB DB, 05, 05]
-10293; [7A E8 8E, 05, 05]
+102BF; [7B EB E2, 05, 05]
-10294; [7A E8 95, 05, 05]
+102C0; [7B EB E9, 05, 05]
-10295; [7A E8 9C, 05, 05]
+102C1; [7B EB F0, 05, 05]
-10296; [7A E8 A3, 05, 05]
+102C2; [7B EB F7, 05, 05]
-10297; [7A E8 AA, 05, 05]
+102C3; [7B EB FE, 05, 05]
-10298; [7A E8 B1, 05, 05]
+102C4; [7B EC 07, 05, 05]
-10299; [7A E8 B8, 05, 05]
+102C5; [7B EC 0E, 05, 05]
-1029A; [7A E8 BF, 05, 05]
+102C6; [7B EC 15, 05, 05]
-1029B; [7A E8 C6, 05, 05]
+102C7; [7B EC 1C, 05, 05]
-1029C; [7A E8 CD, 05, 05]
+102C8; [7B EC 23, 05, 05]
-FDD1 102A0; [7A E9 02, 05, 05] # Carian first primary (compressible)
+102C9; [7B EC 2A, 05, 05]
-102A0; [7A E9 09, 05, 05]
+102CA; [7B EC 31, 05, 05]
-102A1; [7A E9 10, 05, 05]
+102CB; [7B EC 38, 05, 05]
-102A2; [7A E9 17, 05, 05]
+102CC; [7B EC 3F, 05, 05]
-102A3; [7A E9 1E, 05, 05]
+102CD; [7B EC 46, 05, 05]
-102A4; [7A E9 25, 05, 05]
+102CE; [7B EC 4D, 05, 05]
-102A5; [7A E9 2C, 05, 05]
+102CF; [7B EC 54, 05, 05]
-102A6; [7A E9 33, 05, 05]
+102D0; [7B EC 5B, 05, 05]
-102A7; [7A E9 3A, 05, 05]
+FDD1 10920; [7B ED 02, 05, 05] # Lydian first primary (compressible)
-102A8; [7A E9 41, 05, 05]
+10920; [7B ED 09, 05, 05]
-102A9; [7A E9 48, 05, 05]
+10921; [7B ED 10, 05, 05]
-102AA; [7A E9 4F, 05, 05]
+10922; [7B ED 17, 05, 05]
-102AB; [7A E9 56, 05, 05]
+10923; [7B ED 1E, 05, 05]
-102AC; [7A E9 5D, 05, 05]
+10924; [7B ED 25, 05, 05]
-102AD; [7A E9 64, 05, 05]
+10925; [7B ED 2C, 05, 05]
-102AE; [7A E9 6B, 05, 05]
+10926; [7B ED 33, 05, 05]
-102AF; [7A E9 72, 05, 05]
+10927; [7B ED 3A, 05, 05]
-102B0; [7A E9 79, 05, 05]
+10928; [7B ED 41, 05, 05]
-102B1; [7A E9 80, 05, 05]
+10929; [7B ED 48, 05, 05]
-102B2; [7A E9 87, 05, 05]
+1092A; [7B ED 4F, 05, 05]
-102B3; [7A E9 8E, 05, 05]
+1092B; [7B ED 56, 05, 05]
-102B4; [7A E9 95, 05, 05]
+1092C; [7B ED 5D, 05, 05]
-102B5; [7A E9 9C, 05, 05]
+1092D; [7B ED 64, 05, 05]
-102B6; [7A E9 A3, 05, 05]
+1092E; [7B ED 6B, 05, 05]
-102B7; [7A E9 AA, 05, 05]
+1092F; [7B ED 72, 05, 05]
-102B8; [7A E9 B1, 05, 05]
+10930; [7B ED 79, 05, 05]
-102B9; [7A E9 B8, 05, 05]
+10931; [7B ED 80, 05, 05]
-102BA; [7A E9 BF, 05, 05]
+10932; [7B ED 87, 05, 05]
-102BB; [7A E9 C6, 05, 05]
+10933; [7B ED 8E, 05, 05]
-102BC; [7A E9 CD, 05, 05]
+10934; [7B ED 95, 05, 05]
-102BD; [7A E9 D4, 05, 05]
+10935; [7B ED 9C, 05, 05]
-102BE; [7A E9 DB, 05, 05]
+10936; [7B ED A3, 05, 05]
-102BF; [7A E9 E2, 05, 05]
+10937; [7B ED AA, 05, 05]
-102C0; [7A E9 E9, 05, 05]
+10938; [7B ED B1, 05, 05]
-102C1; [7A E9 F0, 05, 05]
+10939; [7B ED B8, 05, 05]
-102C2; [7A E9 F7, 05, 05]
+FDD1 10300; [7B EE 02, 05, 05] # OLD_ITALIC first primary (compressible)
-102C3; [7A E9 FE, 05, 05]
+10300; [7B EE 09, 05, 05]
-102C4; [7A EA 07, 05, 05]
+10301; [7B EE 10, 05, 05]
-102C5; [7A EA 0E, 05, 05]
+10302; [7B EE 17, 05, 05]
-102C6; [7A EA 15, 05, 05]
+10303; [7B EE 1E, 05, 05]
-102C7; [7A EA 1C, 05, 05]
+10304; [7B EE 25, 05, 05]
-102C8; [7A EA 23, 05, 05]
+10305; [7B EE 2C, 05, 05]
-102C9; [7A EA 2A, 05, 05]
+10306; [7B EE 33, 05, 05]
-102CA; [7A EA 31, 05, 05]
+10307; [7B EE 3A, 05, 05]
-102CB; [7A EA 38, 05, 05]
+10308; [7B EE 41, 05, 05]
-102CC; [7A EA 3F, 05, 05]
+10309; [7B EE 48, 05, 05]
-102CD; [7A EA 46, 05, 05]
+1030A; [7B EE 4F, 05, 05]
-102CE; [7A EA 4D, 05, 05]
+1030B; [7B EE 56, 05, 05]
-102CF; [7A EA 54, 05, 05]
+1030C; [7B EE 5D, 05, 05]
-102D0; [7A EA 5B, 05, 05]
+1030D; [7B EE 64, 05, 05]
-FDD1 10920; [7A EB 02, 05, 05] # Lydian first primary (compressible)
+1030E; [7B EE 6B, 05, 05]
-10920; [7A EB 09, 05, 05]
+1031F; [7B EE 72, 05, 05]
-10921; [7A EB 10, 05, 05]
+1030F; [7B EE 79, 05, 05]
-10922; [7A EB 17, 05, 05]
+10310; [7B EE 80, 05, 05]
-10923; [7A EB 1E, 05, 05]
+10311; [7B EE 87, 05, 05]
-10924; [7A EB 25, 05, 05]
+10312; [7B EE 8E, 05, 05]
-10925; [7A EB 2C, 05, 05]
+10313; [7B EE 95, 05, 05]
-10926; [7A EB 33, 05, 05]
+10314; [7B EE 9C, 05, 05]
-10927; [7A EB 3A, 05, 05]
+10315; [7B EE A3, 05, 05]
-10928; [7A EB 41, 05, 05]
+10316; [7B EE AA, 05, 05]
-10929; [7A EB 48, 05, 05]
+10317; [7B EE B1, 05, 05]
-1092A; [7A EB 4F, 05, 05]
+10318; [7B EE B8, 05, 05]
-1092B; [7A EB 56, 05, 05]
+10319; [7B EE BF, 05, 05]
-1092C; [7A EB 5D, 05, 05]
+1031A; [7B EE C6, 05, 05]
-1092D; [7A EB 64, 05, 05]
+1031B; [7B EE CD, 05, 05]
-1092E; [7A EB 6B, 05, 05]
+1031C; [7B EE D4, 05, 05]
-1092F; [7A EB 72, 05, 05]
+1031D; [7B EE DB, 05, 05]
-10930; [7A EB 79, 05, 05]
+1031E; [7B EE E2, 05, 05]
-10931; [7A EB 80, 05, 05]
+1032D; [7B EE E9, 05, 05]
-10932; [7A EB 87, 05, 05]
+1032E; [7B EE F0, 05, 05]
-10933; [7A EB 8E, 05, 05]
+1032F; [7B EE F7, 05, 05]
-10934; [7A EB 95, 05, 05]
+FDD1 10330; [7B EF 02, 05, 05] # GOTHIC first primary (compressible)
-10935; [7A EB 9C, 05, 05]
+10330; [7B EF 09, 05, 05]
-10936; [7A EB A3, 05, 05]
+10331; [7B EF 10, 05, 05]
-10937; [7A EB AA, 05, 05]
+10332; [7B EF 17, 05, 05]
-10938; [7A EB B1, 05, 05]
+10333; [7B EF 1E, 05, 05]
-10939; [7A EB B8, 05, 05]
+10334; [7B EF 25, 05, 05]
-FDD1 10300; [7A EC 02, 05, 05] # OLD_ITALIC first primary (compressible)
+10335; [7B EF 2C, 05, 05]
-10300; [7A EC 09, 05, 05]
+10336; [7B EF 33, 05, 05]
-10301; [7A EC 10, 05, 05]
+10337; [7B EF 3A, 05, 05]
-10302; [7A EC 17, 05, 05]
+10338; [7B EF 41, 05, 05]
-10303; [7A EC 1E, 05, 05]
+10339; [7B EF 48, 05, 05]
-10304; [7A EC 25, 05, 05]
+1033A; [7B EF 4F, 05, 05]
-10305; [7A EC 2C, 05, 05]
+1033B; [7B EF 56, 05, 05]
-10306; [7A EC 33, 05, 05]
+1033C; [7B EF 5D, 05, 05]
-10307; [7A EC 3A, 05, 05]
+1033D; [7B EF 64, 05, 05]
-10308; [7A EC 41, 05, 05]
+1033E; [7B EF 6B, 05, 05]
-10309; [7A EC 48, 05, 05]
+1033F; [7B EF 72, 05, 05]
-1030A; [7A EC 4F, 05, 05]
+10340; [7B EF 79, 05, 05]
-1030B; [7A EC 56, 05, 05]
+10341; [7B EF 80, 05, 05]
-1030C; [7A EC 5D, 05, 05]
+10342; [7B EF 87, 05, 05]
-1030D; [7A EC 64, 05, 05]
+10343; [7B EF 8E, 05, 05]
-1030E; [7A EC 6B, 05, 05]
+10344; [7B EF 95, 05, 05]
-1031F; [7A EC 72, 05, 05]
+10345; [7B EF 9C, 05, 05]
-1030F; [7A EC 79, 05, 05]
+10346; [7B EF A3, 05, 05]
-10310; [7A EC 80, 05, 05]
+10347; [7B EF AA, 05, 05]
-10311; [7A EC 87, 05, 05]
+10348; [7B EF B1, 05, 05]
-10312; [7A EC 8E, 05, 05]
+10349; [7B EF B8, 05, 05]
-10313; [7A EC 95, 05, 05]
+1034A; [7B EF BF, 05, 05]
-10314; [7A EC 9C, 05, 05]
+FDD1 10414; [7C 04 02, 05, 05] # DESERET first primary starts new lead byte (compressible)
-10315; [7A EC A3, 05, 05]
+10428; [7C 06, 05, 05]
+10400; [7C 06, 05, A0]
-10316; [7A EC AA, 05, 05]
+10429; [7C 08, 05, 05]
+10401; [7C 08, 05, A0]
-10317; [7A EC B1, 05, 05]
+1042A; [7C 0A, 05, 05]
+10402; [7C 0A, 05, A0]
-10318; [7A EC B8, 05, 05]
+1042B; [7C 0C, 05, 05]
+10403; [7C 0C, 05, A0]
-10319; [7A EC BF, 05, 05]
+1042C; [7C 0E, 05, 05]
+10404; [7C 0E, 05, A0]
-1031A; [7A EC C6, 05, 05]
+1042D; [7C 10, 05, 05]
+10405; [7C 10, 05, A0]
-1031B; [7A EC CD, 05, 05]
+1042E; [7C 12, 05, 05]
+10406; [7C 12, 05, A0]
-1031C; [7A EC D4, 05, 05]
+1042F; [7C 14, 05, 05]
+10407; [7C 14, 05, A0]
-1031D; [7A EC DB, 05, 05]
+10430; [7C 16, 05, 05]
+10408; [7C 16, 05, A0]
-1031E; [7A EC E2, 05, 05]
+10431; [7C 18, 05, 05]
+10409; [7C 18, 05, A0]
-1032D; [7A EC E9, 05, 05]
+10432; [7C 1A, 05, 05]
+1040A; [7C 1A, 05, A0]
-1032E; [7A EC F0, 05, 05]
+10433; [7C 1C, 05, 05]
+1040B; [7C 1C, 05, A0]
-1032F; [7A EC F7, 05, 05]
+10434; [7C 1E, 05, 05]
+1040C; [7C 1E, 05, A0]
-FDD1 10330; [7A ED 02, 05, 05] # GOTHIC first primary (compressible)
+10435; [7C 20, 05, 05]
+1040D; [7C 20, 05, A0]
-10330; [7A ED 09, 05, 05]
+10436; [7C 22, 05, 05]
+1040E; [7C 22, 05, A0]
-10331; [7A ED 10, 05, 05]
+10437; [7C 24, 05, 05]
+1040F; [7C 24, 05, A0]
-10332; [7A ED 17, 05, 05]
+10438; [7C 26, 05, 05]
+10410; [7C 26, 05, A0]
-10333; [7A ED 1E, 05, 05]
+10439; [7C 28, 05, 05]
+10411; [7C 28, 05, A0]
-10334; [7A ED 25, 05, 05]
+1043A; [7C 2A, 05, 05]
+10412; [7C 2A, 05, A0]
-10335; [7A ED 2C, 05, 05]
+1043B; [7C 2C, 05, 05]
+10413; [7C 2C, 05, A0]
-10336; [7A ED 33, 05, 05]
+1043C; [7C 2E, 05, 05]
+10414; [7C 2E, 05, A0]
-10337; [7A ED 3A, 05, 05]
+1043D; [7C 30, 05, 05]
+10415; [7C 30, 05, A0]
-10338; [7A ED 41, 05, 05]
+1043E; [7C 32, 05, 05]
+10416; [7C 32, 05, A0]
-10339; [7A ED 48, 05, 05]
+1043F; [7C 34, 05, 05]
+10417; [7C 34, 05, A0]
-1033A; [7A ED 4F, 05, 05]
+10440; [7C 36, 05, 05]
+10418; [7C 36, 05, A0]
-1033B; [7A ED 56, 05, 05]
+10441; [7C 38, 05, 05]
+10419; [7C 38, 05, A0]
-1033C; [7A ED 5D, 05, 05]
+10442; [7C 3A, 05, 05]
+1041A; [7C 3A, 05, A0]
-1033D; [7A ED 64, 05, 05]
+10443; [7C 3C, 05, 05]
+1041B; [7C 3C, 05, A0]
-1033E; [7A ED 6B, 05, 05]
+10444; [7C 3E, 05, 05]
+1041C; [7C 3E, 05, A0]
-1033F; [7A ED 72, 05, 05]
+10445; [7C 40, 05, 05]
+1041D; [7C 40, 05, A0]
-10340; [7A ED 79, 05, 05]
+10446; [7C 42, 05, 05]
+1041E; [7C 42, 05, A0]
-10341; [7A ED 80, 05, 05]
+10447; [7C 44, 05, 05]
+1041F; [7C 44, 05, A0]
-10342; [7A ED 87, 05, 05]
+10448; [7C 46, 05, 05]
+10420; [7C 46, 05, A0]
-10343; [7A ED 8E, 05, 05]
+10449; [7C 48, 05, 05]
+10421; [7C 48, 05, A0]
-10344; [7A ED 95, 05, 05]
+1044A; [7C 4A, 05, 05]
+10422; [7C 4A, 05, A0]
-10345; [7A ED 9C, 05, 05]
+1044B; [7C 4C, 05, 05]
+10423; [7C 4C, 05, A0]
-10346; [7A ED A3, 05, 05]
+1044C; [7C 4E, 05, 05]
+10424; [7C 4E, 05, A0]
-10347; [7A ED AA, 05, 05]
+1044D; [7C 50, 05, 05]
+10425; [7C 50, 05, A0]
-10348; [7A ED B1, 05, 05]
+1044E; [7C 52, 05, 05]
+10426; [7C 52, 05, A0]
-10349; [7A ED B8, 05, 05]
+1044F; [7C 54, 05, 05]
+10427; [7C 54, 05, A0]
-1034A; [7A ED BF, 05, 05]
+FDD1 10450; [7C 56 02, 05, 05] # SHAVIAN first primary (compressible)
-FDD1 10414; [7B 04 02, 05, 05] # DESERET first primary starts new lead byte (compressible)
+10450; [7C 56 09, 05, 05]
-10428; [7B 06, 05, 05]
-10400; [7B 06, 05, A0]
+10451; [7C 56 10, 05, 05]
-10429; [7B 08, 05, 05]
-10401; [7B 08, 05, A0]
+10452; [7C 56 17, 05, 05]
-1042A; [7B 0A, 05, 05]
-10402; [7B 0A, 05, A0]
+10453; [7C 56 1E, 05, 05]
-1042B; [7B 0C, 05, 05]
-10403; [7B 0C, 05, A0]
+10454; [7C 56 25, 05, 05]
-1042C; [7B 0E, 05, 05]
-10404; [7B 0E, 05, A0]
+10455; [7C 56 2C, 05, 05]
-1042D; [7B 10, 05, 05]
-10405; [7B 10, 05, A0]
+10456; [7C 56 33, 05, 05]
-1042E; [7B 12, 05, 05]
-10406; [7B 12, 05, A0]
+10457; [7C 56 3A, 05, 05]
-1042F; [7B 14, 05, 05]
-10407; [7B 14, 05, A0]
+10458; [7C 56 41, 05, 05]
-10430; [7B 16, 05, 05]
-10408; [7B 16, 05, A0]
+10459; [7C 56 48, 05, 05]
-10431; [7B 18, 05, 05]
-10409; [7B 18, 05, A0]
+1045A; [7C 56 4F, 05, 05]
-10432; [7B 1A, 05, 05]
-1040A; [7B 1A, 05, A0]
+1045B; [7C 56 56, 05, 05]
-10433; [7B 1C, 05, 05]
-1040B; [7B 1C, 05, A0]
+1045C; [7C 56 5D, 05, 05]
-10434; [7B 1E, 05, 05]
-1040C; [7B 1E, 05, A0]
+1045D; [7C 56 64, 05, 05]
-10435; [7B 20, 05, 05]
-1040D; [7B 20, 05, A0]
+1045E; [7C 56 6B, 05, 05]
-10436; [7B 22, 05, 05]
-1040E; [7B 22, 05, A0]
+1045F; [7C 56 72, 05, 05]
-10437; [7B 24, 05, 05]
-1040F; [7B 24, 05, A0]
+10460; [7C 56 79, 05, 05]
-10438; [7B 26, 05, 05]
-10410; [7B 26, 05, A0]
+10461; [7C 56 80, 05, 05]
-10439; [7B 28, 05, 05]
-10411; [7B 28, 05, A0]
+10462; [7C 56 87, 05, 05]
-1043A; [7B 2A, 05, 05]
-10412; [7B 2A, 05, A0]
+10463; [7C 56 8E, 05, 05]
-1043B; [7B 2C, 05, 05]
-10413; [7B 2C, 05, A0]
+10464; [7C 56 95, 05, 05]
-1043C; [7B 2E, 05, 05]
-10414; [7B 2E, 05, A0]
+10465; [7C 56 9C, 05, 05]
-1043D; [7B 30, 05, 05]
-10415; [7B 30, 05, A0]
+10466; [7C 56 A3, 05, 05]
-1043E; [7B 32, 05, 05]
-10416; [7B 32, 05, A0]
+10467; [7C 56 AA, 05, 05]
-1043F; [7B 34, 05, 05]
-10417; [7B 34, 05, A0]
+10468; [7C 56 B1, 05, 05]
-10440; [7B 36, 05, 05]
-10418; [7B 36, 05, A0]
+10469; [7C 56 B8, 05, 05]
-10441; [7B 38, 05, 05]
-10419; [7B 38, 05, A0]
+1046A; [7C 56 BF, 05, 05]
-10442; [7B 3A, 05, 05]
-1041A; [7B 3A, 05, A0]
+1046B; [7C 56 C6, 05, 05]
-10443; [7B 3C, 05, 05]
-1041B; [7B 3C, 05, A0]
+1046C; [7C 56 CD, 05, 05]
-10444; [7B 3E, 05, 05]
-1041C; [7B 3E, 05, A0]
+1046D; [7C 56 D4, 05, 05]
-10445; [7B 40, 05, 05]
-1041D; [7B 40, 05, A0]
+1046E; [7C 56 DB, 05, 05]
-10446; [7B 42, 05, 05]
-1041E; [7B 42, 05, A0]
+1046F; [7C 56 E2, 05, 05]
-10447; [7B 44, 05, 05]
-1041F; [7B 44, 05, A0]
+10470; [7C 56 E9, 05, 05]
-10448; [7B 46, 05, 05]
-10420; [7B 46, 05, A0]
+10471; [7C 56 F0, 05, 05]
-10449; [7B 48, 05, 05]
-10421; [7B 48, 05, A0]
+10472; [7C 56 F7, 05, 05]
-1044A; [7B 4A, 05, 05]
-10422; [7B 4A, 05, A0]
+10473; [7C 56 FE, 05, 05]
-1044B; [7B 4C, 05, 05]
-10423; [7B 4C, 05, A0]
+10474; [7C 57 07, 05, 05]
-1044C; [7B 4E, 05, 05]
-10424; [7B 4E, 05, A0]
+10475; [7C 57 0E, 05, 05]
-1044D; [7B 50, 05, 05]
-10425; [7B 50, 05, A0]
+10476; [7C 57 15, 05, 05]
-1044E; [7B 52, 05, 05]
-10426; [7B 52, 05, A0]
+10477; [7C 57 1C, 05, 05]
-1044F; [7B 54, 05, 05]
-10427; [7B 54, 05, A0]
+10478; [7C 57 23, 05, 05]
-FDD1 10450; [7B 56 02, 05, 05] # SHAVIAN first primary (compressible)
+10479; [7C 57 2A, 05, 05]
-10450; [7B 56 09, 05, 05]
+1047A; [7C 57 31, 05, 05]
-10451; [7B 56 10, 05, 05]
+1047B; [7C 57 38, 05, 05]
-10452; [7B 56 17, 05, 05]
+1047C; [7C 57 3F, 05, 05]
-10453; [7B 56 1E, 05, 05]
+1047D; [7C 57 46, 05, 05]
-10454; [7B 56 25, 05, 05]
+1047E; [7C 57 4D, 05, 05]
-10455; [7B 56 2C, 05, 05]
+1047F; [7C 57 54, 05, 05]
-10456; [7B 56 33, 05, 05]
+FDD1 1BC20; [7C 58 02, 05, 05] # Duployan first primary (compressible)
-10457; [7B 56 3A, 05, 05]
+1BC00; [7C 58 09, 05, 05]
-10458; [7B 56 41, 05, 05]
+1BC01; [7C 58 10, 05, 05]
-10459; [7B 56 48, 05, 05]
+1BC02; [7C 58 17, 05, 05]
-1045A; [7B 56 4F, 05, 05]
+1BC03; [7C 58 1E, 05, 05]
-1045B; [7B 56 56, 05, 05]
+1BC04; [7C 58 25, 05, 05]
-1045C; [7B 56 5D, 05, 05]
+1BC05; [7C 58 2C, 05, 05]
-1045D; [7B 56 64, 05, 05]
+1BC06; [7C 58 33, 05, 05]
-1045E; [7B 56 6B, 05, 05]
+1BC07; [7C 58 3A, 05, 05]
-1045F; [7B 56 72, 05, 05]
+1BC08; [7C 58 41, 05, 05]
-10460; [7B 56 79, 05, 05]
+1BC09; [7C 58 48, 05, 05]
-10461; [7B 56 80, 05, 05]
+1BC0A; [7C 58 4F, 05, 05]
-10462; [7B 56 87, 05, 05]
+1BC0B; [7C 58 56, 05, 05]
-10463; [7B 56 8E, 05, 05]
+1BC0C; [7C 58 5D, 05, 05]
-10464; [7B 56 95, 05, 05]
+1BC0D; [7C 58 64, 05, 05]
-10465; [7B 56 9C, 05, 05]
+1BC0E; [7C 58 6B, 05, 05]
-10466; [7B 56 A3, 05, 05]
+1BC0F; [7C 58 72, 05, 05]
-10467; [7B 56 AA, 05, 05]
+1BC10; [7C 58 79, 05, 05]
-10468; [7B 56 B1, 05, 05]
+1BC11; [7C 58 80, 05, 05]
-10469; [7B 56 B8, 05, 05]
+1BC12; [7C 58 87, 05, 05]
-1046A; [7B 56 BF, 05, 05]
+1BC13; [7C 58 8E, 05, 05]
-1046B; [7B 56 C6, 05, 05]
+1BC14; [7C 58 95, 05, 05]
-1046C; [7B 56 CD, 05, 05]
+1BC15; [7C 58 9C, 05, 05]
-1046D; [7B 56 D4, 05, 05]
+1BC16; [7C 58 A3, 05, 05]
-1046E; [7B 56 DB, 05, 05]
+1BC17; [7C 58 AA, 05, 05]
-1046F; [7B 56 E2, 05, 05]
+1BC18; [7C 58 B1, 05, 05]
-10470; [7B 56 E9, 05, 05]
+1BC19; [7C 58 B8, 05, 05]
-10471; [7B 56 F0, 05, 05]
+1BC1A; [7C 58 BF, 05, 05]
-10472; [7B 56 F7, 05, 05]
+1BC1B; [7C 58 C6, 05, 05]
-10473; [7B 56 FE, 05, 05]
+1BC1C; [7C 58 CD, 05, 05]
-10474; [7B 57 07, 05, 05]
+1BC1D; [7C 58 D4, 05, 05]
-10475; [7B 57 0E, 05, 05]
+1BC1E; [7C 58 DB, 05, 05]
-10476; [7B 57 15, 05, 05]
+1BC1F; [7C 58 E2, 05, 05]
-10477; [7B 57 1C, 05, 05]
+1BC20; [7C 58 E9, 05, 05]
-10478; [7B 57 23, 05, 05]
+1BC21; [7C 58 F0, 05, 05]
-10479; [7B 57 2A, 05, 05]
+1BC22; [7C 58 F7, 05, 05]
-1047A; [7B 57 31, 05, 05]
+1BC23; [7C 58 FE, 05, 05]
-1047B; [7B 57 38, 05, 05]
+1BC24; [7C 59 07, 05, 05]
-1047C; [7B 57 3F, 05, 05]
+1BC25; [7C 59 0E, 05, 05]
-1047D; [7B 57 46, 05, 05]
+1BC26; [7C 59 15, 05, 05]
-1047E; [7B 57 4D, 05, 05]
+1BC27; [7C 59 1C, 05, 05]
-1047F; [7B 57 54, 05, 05]
+1BC28; [7C 59 23, 05, 05]
-FDD1 1BC20; [7B 58 02, 05, 05] # Duployan first primary (compressible)
+1BC29; [7C 59 2A, 05, 05]
-1BC00; [7B 58 09, 05, 05]
+1BC2A; [7C 59 31, 05, 05]
-1BC01; [7B 58 10, 05, 05]
+1BC2B; [7C 59 38, 05, 05]
-1BC02; [7B 58 17, 05, 05]
+1BC2C; [7C 59 3F, 05, 05]
-1BC03; [7B 58 1E, 05, 05]
+1BC2D; [7C 59 46, 05, 05]
-1BC04; [7B 58 25, 05, 05]
+1BC2E; [7C 59 4D, 05, 05]
-1BC05; [7B 58 2C, 05, 05]
+1BC2F; [7C 59 54, 05, 05]
-1BC06; [7B 58 33, 05, 05]
+1BC30; [7C 59 5B, 05, 05]
-1BC07; [7B 58 3A, 05, 05]
+1BC31; [7C 59 62, 05, 05]
-1BC08; [7B 58 41, 05, 05]
+1BC32; [7C 59 69, 05, 05]
-1BC09; [7B 58 48, 05, 05]
+1BC33; [7C 59 70, 05, 05]
-1BC0A; [7B 58 4F, 05, 05]
+1BC34; [7C 59 77, 05, 05]
-1BC0B; [7B 58 56, 05, 05]
+1BC35; [7C 59 7E, 05, 05]
-1BC0C; [7B 58 5D, 05, 05]
+1BC36; [7C 59 85, 05, 05]
-1BC0D; [7B 58 64, 05, 05]
+1BC37; [7C 59 8C, 05, 05]
-1BC0E; [7B 58 6B, 05, 05]
+1BC38; [7C 59 93, 05, 05]
-1BC0F; [7B 58 72, 05, 05]
+1BC39; [7C 59 9A, 05, 05]
-1BC10; [7B 58 79, 05, 05]
+1BC3A; [7C 59 A1, 05, 05]
-1BC11; [7B 58 80, 05, 05]
+1BC3B; [7C 59 A8, 05, 05]
-1BC12; [7B 58 87, 05, 05]
+1BC3C; [7C 59 AF, 05, 05]
-1BC13; [7B 58 8E, 05, 05]
+1BC3D; [7C 59 B6, 05, 05]
-1BC14; [7B 58 95, 05, 05]
+1BC3E; [7C 59 BD, 05, 05]
-1BC15; [7B 58 9C, 05, 05]
+1BC3F; [7C 59 C4, 05, 05]
-1BC16; [7B 58 A3, 05, 05]
+1BC40; [7C 59 CB, 05, 05]
-1BC17; [7B 58 AA, 05, 05]
+1BC41; [7C 59 D2, 05, 05]
-1BC18; [7B 58 B1, 05, 05]
+1BC42; [7C 59 D9, 05, 05]
-1BC19; [7B 58 B8, 05, 05]
+1BC43; [7C 59 E0, 05, 05]
-1BC1A; [7B 58 BF, 05, 05]
+1BC44; [7C 59 E7, 05, 05]
-1BC1B; [7B 58 C6, 05, 05]
+1BC45; [7C 59 EE, 05, 05]
-1BC1C; [7B 58 CD, 05, 05]
+1BC46; [7C 59 F5, 05, 05]
-1BC1D; [7B 58 D4, 05, 05]
+1BC47; [7C 59 FC, 05, 05]
-1BC1E; [7B 58 DB, 05, 05]
+1BC48; [7C 5A 05, 05, 05]
-1BC1F; [7B 58 E2, 05, 05]
+1BC49; [7C 5A 0C, 05, 05]
-1BC20; [7B 58 E9, 05, 05]
+1BC4A; [7C 5A 13, 05, 05]
-1BC21; [7B 58 F0, 05, 05]
+1BC4B; [7C 5A 1A, 05, 05]
-1BC22; [7B 58 F7, 05, 05]
+1BC4C; [7C 5A 21, 05, 05]
-1BC23; [7B 58 FE, 05, 05]
+1BC4D; [7C 5A 28, 05, 05]
-1BC24; [7B 59 07, 05, 05]
+1BC4E; [7C 5A 2F, 05, 05]
-1BC25; [7B 59 0E, 05, 05]
+1BC4F; [7C 5A 36, 05, 05]
-1BC26; [7B 59 15, 05, 05]
+1BC50; [7C 5A 3D, 05, 05]
-1BC27; [7B 59 1C, 05, 05]
+1BC51; [7C 5A 44, 05, 05]
-1BC28; [7B 59 23, 05, 05]
+1BC52; [7C 5A 4B, 05, 05]
-1BC29; [7B 59 2A, 05, 05]
+1BC53; [7C 5A 52, 05, 05]
-1BC2A; [7B 59 31, 05, 05]
+1BC54; [7C 5A 59, 05, 05]
-1BC2B; [7B 59 38, 05, 05]
+1BC55; [7C 5A 60, 05, 05]
-1BC2C; [7B 59 3F, 05, 05]
+1BC56; [7C 5A 67, 05, 05]
-1BC2D; [7B 59 46, 05, 05]
+1BC57; [7C 5A 6E, 05, 05]
-1BC2E; [7B 59 4D, 05, 05]
+1BC58; [7C 5A 75, 05, 05]
-1BC2F; [7B 59 54, 05, 05]
+1BC59; [7C 5A 7C, 05, 05]
-1BC30; [7B 59 5B, 05, 05]
+1BC5A; [7C 5A 83, 05, 05]
-1BC31; [7B 59 62, 05, 05]
+1BC5B; [7C 5A 8A, 05, 05]
-1BC32; [7B 59 69, 05, 05]
+1BC5C; [7C 5A 91, 05, 05]
-1BC33; [7B 59 70, 05, 05]
+1BC5D; [7C 5A 98, 05, 05]
-1BC34; [7B 59 77, 05, 05]
+1BC5E; [7C 5A 9F, 05, 05]
-1BC35; [7B 59 7E, 05, 05]
+1BC5F; [7C 5A A6, 05, 05]
-1BC36; [7B 59 85, 05, 05]
+1BC60; [7C 5A AD, 05, 05]
-1BC37; [7B 59 8C, 05, 05]
+1BC61; [7C 5A B4, 05, 05]
-1BC38; [7B 59 93, 05, 05]
+1BC62; [7C 5A BB, 05, 05]
-1BC39; [7B 59 9A, 05, 05]
+1BC63; [7C 5A C2, 05, 05]
-1BC3A; [7B 59 A1, 05, 05]
+1BC64; [7C 5A C9, 05, 05]
-1BC3B; [7B 59 A8, 05, 05]
+1BC65; [7C 5A D0, 05, 05]
-1BC3C; [7B 59 AF, 05, 05]
+1BC66; [7C 5A D7, 05, 05]
-1BC3D; [7B 59 B6, 05, 05]
+1BC67; [7C 5A DE, 05, 05]
-1BC3E; [7B 59 BD, 05, 05]
+1BC68; [7C 5A E5, 05, 05]
-1BC3F; [7B 59 C4, 05, 05]
+1BC69; [7C 5A EC, 05, 05]
-1BC40; [7B 59 CB, 05, 05]
+1BC6A; [7C 5A F3, 05, 05]
-1BC41; [7B 59 D2, 05, 05]
+1BC70; [7C 5A FA, 05, 05]
-1BC42; [7B 59 D9, 05, 05]
+1BC71; [7C 5B 03, 05, 05]
-1BC43; [7B 59 E0, 05, 05]
+1BC72; [7C 5B 0A, 05, 05]
-1BC44; [7B 59 E7, 05, 05]
+1BC73; [7C 5B 11, 05, 05]
-1BC45; [7B 59 EE, 05, 05]
+1BC74; [7C 5B 18, 05, 05]
-1BC46; [7B 59 F5, 05, 05]
+1BC75; [7C 5B 1F, 05, 05]
-1BC47; [7B 59 FC, 05, 05]
+1BC76; [7C 5B 26, 05, 05]
-1BC48; [7B 5A 05, 05, 05]
+1BC77; [7C 5B 2D, 05, 05]
-1BC49; [7B 5A 0C, 05, 05]
+1BC78; [7C 5B 34, 05, 05]
-1BC4A; [7B 5A 13, 05, 05]
+1BC79; [7C 5B 3B, 05, 05]
-1BC4B; [7B 5A 1A, 05, 05]
+1BC7A; [7C 5B 42, 05, 05]
-1BC4C; [7B 5A 21, 05, 05]
+1BC7B; [7C 5B 49, 05, 05]
-1BC4D; [7B 5A 28, 05, 05]
+1BC7C; [7C 5B 50, 05, 05]
-1BC4E; [7B 5A 2F, 05, 05]
+1BC80; [7C 5B 57, 05, 05]
-1BC4F; [7B 5A 36, 05, 05]
+1BC81; [7C 5B 5E, 05, 05]
-1BC50; [7B 5A 3D, 05, 05]
+1BC82; [7C 5B 65, 05, 05]
-1BC51; [7B 5A 44, 05, 05]
+1BC83; [7C 5B 6C, 05, 05]
-1BC52; [7B 5A 4B, 05, 05]
+1BC84; [7C 5B 73, 05, 05]
-1BC53; [7B 5A 52, 05, 05]
+1BC85; [7C 5B 7A, 05, 05]
-1BC54; [7B 5A 59, 05, 05]
+1BC86; [7C 5B 81, 05, 05]
-1BC55; [7B 5A 60, 05, 05]
+1BC87; [7C 5B 88, 05, 05]
-1BC56; [7B 5A 67, 05, 05]
+1BC88; [7C 5B 8F, 05, 05]
-1BC57; [7B 5A 6E, 05, 05]
+1BC90; [7C 5B 96, 05, 05]
-1BC58; [7B 5A 75, 05, 05]
+1BC91; [7C 5B 9D, 05, 05]
-1BC59; [7B 5A 7C, 05, 05]
+1BC92; [7C 5B A4, 05, 05]
-1BC5A; [7B 5A 83, 05, 05]
+1BC93; [7C 5B AB, 05, 05]
-1BC5B; [7B 5A 8A, 05, 05]
+1BC94; [7C 5B B2, 05, 05]
-1BC5C; [7B 5A 91, 05, 05]
+1BC95; [7C 5B B9, 05, 05]
-1BC5D; [7B 5A 98, 05, 05]
+1BC96; [7C 5B C0, 05, 05]
-1BC5E; [7B 5A 9F, 05, 05]
+1BC97; [7C 5B C7, 05, 05]
-1BC5F; [7B 5A A6, 05, 05]
+1BC98; [7C 5B CE, 05, 05]
-1BC60; [7B 5A AD, 05, 05]
+1BC99; [7C 5B D5, 05, 05]
-1BC61; [7B 5A B4, 05, 05]
+FDD1 10480; [7C 5C 02, 05, 05] # OSMANYA first primary (compressible)
-1BC62; [7B 5A BB, 05, 05]
+10480; [7C 5C 09, 05, 05]
-1BC63; [7B 5A C2, 05, 05]
+10481; [7C 5C 10, 05, 05]
-1BC64; [7B 5A C9, 05, 05]
+10482; [7C 5C 17, 05, 05]
-1BC65; [7B 5A D0, 05, 05]
+10483; [7C 5C 1E, 05, 05]
-1BC66; [7B 5A D7, 05, 05]
+10484; [7C 5C 25, 05, 05]
-1BC67; [7B 5A DE, 05, 05]
+10485; [7C 5C 2C, 05, 05]
-1BC68; [7B 5A E5, 05, 05]
+10486; [7C 5C 33, 05, 05]
-1BC69; [7B 5A EC, 05, 05]
+10487; [7C 5C 3A, 05, 05]
-1BC6A; [7B 5A F3, 05, 05]
+10488; [7C 5C 41, 05, 05]
-1BC70; [7B 5A FA, 05, 05]
+10489; [7C 5C 48, 05, 05]
-1BC71; [7B 5B 03, 05, 05]
+1048A; [7C 5C 4F, 05, 05]
-1BC72; [7B 5B 0A, 05, 05]
+1048B; [7C 5C 56, 05, 05]
-1BC73; [7B 5B 11, 05, 05]
+1048C; [7C 5C 5D, 05, 05]
-1BC74; [7B 5B 18, 05, 05]
+1048D; [7C 5C 64, 05, 05]
-1BC75; [7B 5B 1F, 05, 05]
+1048E; [7C 5C 6B, 05, 05]
-1BC76; [7B 5B 26, 05, 05]
+1048F; [7C 5C 72, 05, 05]
-1BC77; [7B 5B 2D, 05, 05]
+10490; [7C 5C 79, 05, 05]
-1BC78; [7B 5B 34, 05, 05]
+10491; [7C 5C 80, 05, 05]
-1BC79; [7B 5B 3B, 05, 05]
+10492; [7C 5C 87, 05, 05]
-1BC7A; [7B 5B 42, 05, 05]
+10493; [7C 5C 8E, 05, 05]
-1BC7B; [7B 5B 49, 05, 05]
+10494; [7C 5C 95, 05, 05]
-1BC7C; [7B 5B 50, 05, 05]
+10495; [7C 5C 9C, 05, 05]
-1BC80; [7B 5B 57, 05, 05]
+10496; [7C 5C A3, 05, 05]
-1BC81; [7B 5B 5E, 05, 05]
+10497; [7C 5C AA, 05, 05]
-1BC82; [7B 5B 65, 05, 05]
+10498; [7C 5C B1, 05, 05]
-1BC83; [7B 5B 6C, 05, 05]
+10499; [7C 5C B8, 05, 05]
-1BC84; [7B 5B 73, 05, 05]
+1049A; [7C 5C BF, 05, 05]
-1BC85; [7B 5B 7A, 05, 05]
+1049B; [7C 5C C6, 05, 05]
-1BC86; [7B 5B 81, 05, 05]
+1049C; [7C 5C CD, 05, 05]
-1BC87; [7B 5B 88, 05, 05]
+1049D; [7C 5C D4, 05, 05]
-1BC88; [7B 5B 8F, 05, 05]
+FDD1 10500; [7C 5D 02, 05, 05] # Elbasan first primary (compressible)
-1BC90; [7B 5B 96, 05, 05]
+10500; [7C 5D 09, 05, 05]
-1BC91; [7B 5B 9D, 05, 05]
+10501; [7C 5D 10, 05, 05]
-1BC92; [7B 5B A4, 05, 05]
+10502; [7C 5D 17, 05, 05]
-1BC93; [7B 5B AB, 05, 05]
+10503; [7C 5D 1E, 05, 05]
-1BC94; [7B 5B B2, 05, 05]
+10504; [7C 5D 25, 05, 05]
-1BC95; [7B 5B B9, 05, 05]
+10505; [7C 5D 2C, 05, 05]
-1BC96; [7B 5B C0, 05, 05]
+10506; [7C 5D 33, 05, 05]
-1BC97; [7B 5B C7, 05, 05]
+10507; [7C 5D 3A, 05, 05]
-1BC98; [7B 5B CE, 05, 05]
+10508; [7C 5D 41, 05, 05]
-1BC99; [7B 5B D5, 05, 05]
+10509; [7C 5D 48, 05, 05]
-FDD1 10480; [7B 5C 02, 05, 05] # OSMANYA first primary (compressible)
+1050A; [7C 5D 4F, 05, 05]
-10480; [7B 5C 09, 05, 05]
+1050B; [7C 5D 56, 05, 05]
-10481; [7B 5C 10, 05, 05]
+1050C; [7C 5D 5D, 05, 05]
-10482; [7B 5C 17, 05, 05]
+1050D; [7C 5D 64, 05, 05]
-10483; [7B 5C 1E, 05, 05]
+1050E; [7C 5D 6B, 05, 05]
-10484; [7B 5C 25, 05, 05]
+1050F; [7C 5D 72, 05, 05]
-10485; [7B 5C 2C, 05, 05]
+10510; [7C 5D 79, 05, 05]
-10486; [7B 5C 33, 05, 05]
+10511; [7C 5D 80, 05, 05]
-10487; [7B 5C 3A, 05, 05]
+10512; [7C 5D 87, 05, 05]
-10488; [7B 5C 41, 05, 05]
+10513; [7C 5D 8E, 05, 05]
-10489; [7B 5C 48, 05, 05]
+10514; [7C 5D 95, 05, 05]
-1048A; [7B 5C 4F, 05, 05]
+10515; [7C 5D 9C, 05, 05]
-1048B; [7B 5C 56, 05, 05]
+10516; [7C 5D A3, 05, 05]
-1048C; [7B 5C 5D, 05, 05]
+10517; [7C 5D AA, 05, 05]
-1048D; [7B 5C 64, 05, 05]
+10518; [7C 5D B1, 05, 05]
-1048E; [7B 5C 6B, 05, 05]
+10519; [7C 5D B8, 05, 05]
-1048F; [7B 5C 72, 05, 05]
+1051A; [7C 5D BF, 05, 05]
-10490; [7B 5C 79, 05, 05]
+1051B; [7C 5D C6, 05, 05]
-10491; [7B 5C 80, 05, 05]
+1051C; [7C 5D CD, 05, 05]
-10492; [7B 5C 87, 05, 05]
+1051D; [7C 5D D4, 05, 05]
-10493; [7B 5C 8E, 05, 05]
+1051E; [7C 5D DB, 05, 05]
-10494; [7B 5C 95, 05, 05]
+1051F; [7C 5D E2, 05, 05]
-10495; [7B 5C 9C, 05, 05]
+10520; [7C 5D E9, 05, 05]
-10496; [7B 5C A3, 05, 05]
+10521; [7C 5D F0, 05, 05]
-10497; [7B 5C AA, 05, 05]
+10522; [7C 5D F7, 05, 05]
-10498; [7B 5C B1, 05, 05]
+10523; [7C 5D FE, 05, 05]
-10499; [7B 5C B8, 05, 05]
+10524; [7C 5E 07, 05, 05]
-1049A; [7B 5C BF, 05, 05]
+10525; [7C 5E 0E, 05, 05]
-1049B; [7B 5C C6, 05, 05]
+10526; [7C 5E 15, 05, 05]
-1049C; [7B 5C CD, 05, 05]
+10527; [7C 5E 1C, 05, 05]
-1049D; [7B 5C D4, 05, 05]
+FDD1 10537; [7C 5F 02, 05, 05] # Caucasian_Albanian first primary (compressible)
-FDD1 10500; [7B 5D 02, 05, 05] # Elbasan first primary (compressible)
+10530; [7C 5F 09, 05, 05]
-10500; [7B 5D 09, 05, 05]
+10531; [7C 5F 10, 05, 05]
-10501; [7B 5D 10, 05, 05]
+10532; [7C 5F 17, 05, 05]
-10502; [7B 5D 17, 05, 05]
+10533; [7C 5F 1E, 05, 05]
-10503; [7B 5D 1E, 05, 05]
+10534; [7C 5F 25, 05, 05]
-10504; [7B 5D 25, 05, 05]
+10535; [7C 5F 2C, 05, 05]
-10505; [7B 5D 2C, 05, 05]
+10536; [7C 5F 33, 05, 05]
-10506; [7B 5D 33, 05, 05]
+10537; [7C 5F 3A, 05, 05]
-10507; [7B 5D 3A, 05, 05]
+10538; [7C 5F 41, 05, 05]
-10508; [7B 5D 41, 05, 05]
+10539; [7C 5F 48, 05, 05]
-10509; [7B 5D 48, 05, 05]
+1053A; [7C 5F 4F, 05, 05]
-1050A; [7B 5D 4F, 05, 05]
+1053B; [7C 5F 56, 05, 05]
-1050B; [7B 5D 56, 05, 05]
+1053C; [7C 5F 5D, 05, 05]
-1050C; [7B 5D 5D, 05, 05]
+1053D; [7C 5F 64, 05, 05]
-1050D; [7B 5D 64, 05, 05]
+1053E; [7C 5F 6B, 05, 05]
-1050E; [7B 5D 6B, 05, 05]
+1053F; [7C 5F 72, 05, 05]
-1050F; [7B 5D 72, 05, 05]
+10540; [7C 5F 79, 05, 05]
-10510; [7B 5D 79, 05, 05]
+10541; [7C 5F 80, 05, 05]
-10511; [7B 5D 80, 05, 05]
+10542; [7C 5F 87, 05, 05]
-10512; [7B 5D 87, 05, 05]
+10543; [7C 5F 8E, 05, 05]
-10513; [7B 5D 8E, 05, 05]
+10544; [7C 5F 95, 05, 05]
-10514; [7B 5D 95, 05, 05]
+10545; [7C 5F 9C, 05, 05]
-10515; [7B 5D 9C, 05, 05]
+10546; [7C 5F A3, 05, 05]
-10516; [7B 5D A3, 05, 05]
+10547; [7C 5F AA, 05, 05]
-10517; [7B 5D AA, 05, 05]
+10548; [7C 5F B1, 05, 05]
-10518; [7B 5D B1, 05, 05]
+10549; [7C 5F B8, 05, 05]
-10519; [7B 5D B8, 05, 05]
+1054A; [7C 5F BF, 05, 05]
-1051A; [7B 5D BF, 05, 05]
+1054B; [7C 5F C6, 05, 05]
-1051B; [7B 5D C6, 05, 05]
+1054C; [7C 5F CD, 05, 05]
-1051C; [7B 5D CD, 05, 05]
+1054D; [7C 5F D4, 05, 05]
-1051D; [7B 5D D4, 05, 05]
+1054E; [7C 5F DB, 05, 05]
-1051E; [7B 5D DB, 05, 05]
+1054F; [7C 5F E2, 05, 05]
-1051F; [7B 5D E2, 05, 05]
+10550; [7C 5F E9, 05, 05]
-10520; [7B 5D E9, 05, 05]
+10551; [7C 5F F0, 05, 05]
-10521; [7B 5D F0, 05, 05]
+10552; [7C 5F F7, 05, 05]
-10522; [7B 5D F7, 05, 05]
+10553; [7C 5F FE, 05, 05]
-10523; [7B 5D FE, 05, 05]
+10554; [7C 60 07, 05, 05]
-10524; [7B 5E 07, 05, 05]
+10555; [7C 60 0E, 05, 05]
-10525; [7B 5E 0E, 05, 05]
+10556; [7C 60 15, 05, 05]
-10526; [7B 5E 15, 05, 05]
+10557; [7C 60 1C, 05, 05]
-10527; [7B 5E 1C, 05, 05]
+10558; [7C 60 23, 05, 05]
-FDD1 10537; [7B 5F 02, 05, 05] # Caucasian_Albanian first primary (compressible)
+10559; [7C 60 2A, 05, 05]
-10530; [7B 5F 09, 05, 05]
+1055A; [7C 60 31, 05, 05]
-10531; [7B 5F 10, 05, 05]
+1055B; [7C 60 38, 05, 05]
-10532; [7B 5F 17, 05, 05]
+1055C; [7C 60 3F, 05, 05]
-10533; [7B 5F 1E, 05, 05]
+1055D; [7C 60 46, 05, 05]
-10534; [7B 5F 25, 05, 05]
+1055E; [7C 60 4D, 05, 05]
-10535; [7B 5F 2C, 05, 05]
+1055F; [7C 60 54, 05, 05]
-10536; [7B 5F 33, 05, 05]
+10560; [7C 60 5B, 05, 05]
-10537; [7B 5F 3A, 05, 05]
+10561; [7C 60 62, 05, 05]
-10538; [7B 5F 41, 05, 05]
+10562; [7C 60 69, 05, 05]
-10539; [7B 5F 48, 05, 05]
+10563; [7C 60 70, 05, 05]
-1053A; [7B 5F 4F, 05, 05]
+FDD1 110D0; [7C 61 02, 05, 05] # Sora_Sompeng first primary (compressible)
-1053B; [7B 5F 56, 05, 05]
+110D0; [7C 61 09, 05, 05]
-1053C; [7B 5F 5D, 05, 05]
+110D1; [7C 61 10, 05, 05]
-1053D; [7B 5F 64, 05, 05]
+110D2; [7C 61 17, 05, 05]
-1053E; [7B 5F 6B, 05, 05]
+110D3; [7C 61 1E, 05, 05]
-1053F; [7B 5F 72, 05, 05]
+110D4; [7C 61 25, 05, 05]
-10540; [7B 5F 79, 05, 05]
+110D5; [7C 61 2C, 05, 05]
-10541; [7B 5F 80, 05, 05]
+110D6; [7C 61 33, 05, 05]
-10542; [7B 5F 87, 05, 05]
+110D7; [7C 61 3A, 05, 05]
-10543; [7B 5F 8E, 05, 05]
+110D8; [7C 61 41, 05, 05]
-10544; [7B 5F 95, 05, 05]
+110D9; [7C 61 48, 05, 05]
-10545; [7B 5F 9C, 05, 05]
+110DA; [7C 61 4F, 05, 05]
-10546; [7B 5F A3, 05, 05]
+110DB; [7C 61 56, 05, 05]
-10547; [7B 5F AA, 05, 05]
+110DC; [7C 61 5D, 05, 05]
-10548; [7B 5F B1, 05, 05]
+110DD; [7C 61 64, 05, 05]
-10549; [7B 5F B8, 05, 05]
+110DE; [7C 61 6B, 05, 05]
-1054A; [7B 5F BF, 05, 05]
+110DF; [7C 61 72, 05, 05]
-1054B; [7B 5F C6, 05, 05]
+110E0; [7C 61 79, 05, 05]
-1054C; [7B 5F CD, 05, 05]
+110E1; [7C 61 80, 05, 05]
-1054D; [7B 5F D4, 05, 05]
+110E2; [7C 61 87, 05, 05]
-1054E; [7B 5F DB, 05, 05]
+110E3; [7C 61 8E, 05, 05]
-1054F; [7B 5F E2, 05, 05]
+110E4; [7C 61 95, 05, 05]
-10550; [7B 5F E9, 05, 05]
+110E5; [7C 61 9C, 05, 05]
-10551; [7B 5F F0, 05, 05]
+110E6; [7C 61 A3, 05, 05]
-10552; [7B 5F F7, 05, 05]
+110E7; [7C 61 AA, 05, 05]
-10553; [7B 5F FE, 05, 05]
+110E8; [7C 61 B1, 05, 05]
-10554; [7B 60 07, 05, 05]
+FDD1 16A4F; [7C 62 02, 05, 05] # Mro first primary (compressible)
-10555; [7B 60 0E, 05, 05]
+16A40; [7C 62 09, 05, 05]
-10556; [7B 60 15, 05, 05]
+16A41; [7C 62 10, 05, 05]
-10557; [7B 60 1C, 05, 05]
+16A42; [7C 62 17, 05, 05]
-10558; [7B 60 23, 05, 05]
+16A43; [7C 62 1E, 05, 05]
-10559; [7B 60 2A, 05, 05]
+16A44; [7C 62 25, 05, 05]
-1055A; [7B 60 31, 05, 05]
+16A45; [7C 62 2C, 05, 05]
-1055B; [7B 60 38, 05, 05]
+16A46; [7C 62 33, 05, 05]
-1055C; [7B 60 3F, 05, 05]
+16A47; [7C 62 3A, 05, 05]
-1055D; [7B 60 46, 05, 05]
+16A48; [7C 62 41, 05, 05]
-1055E; [7B 60 4D, 05, 05]
+16A49; [7C 62 48, 05, 05]
-1055F; [7B 60 54, 05, 05]
+16A4A; [7C 62 4F, 05, 05]
-10560; [7B 60 5B, 05, 05]
+16A4B; [7C 62 56, 05, 05]
-10561; [7B 60 62, 05, 05]
+16A4C; [7C 62 5D, 05, 05]
-10562; [7B 60 69, 05, 05]
+16A4D; [7C 62 64, 05, 05]
-10563; [7B 60 70, 05, 05]
+16A4E; [7C 62 6B, 05, 05]
-FDD1 110D0; [7B 61 02, 05, 05] # Sora_Sompeng first primary (compressible)
+16A4F; [7C 62 72, 05, 05]
-110D0; [7B 61 09, 05, 05]
+16A50; [7C 62 79, 05, 05]
-110D1; [7B 61 10, 05, 05]
+16A51; [7C 62 80, 05, 05]
-110D2; [7B 61 17, 05, 05]
+16A52; [7C 62 87, 05, 05]
-110D3; [7B 61 1E, 05, 05]
+16A53; [7C 62 8E, 05, 05]
-110D4; [7B 61 25, 05, 05]
+16A54; [7C 62 95, 05, 05]
-110D5; [7B 61 2C, 05, 05]
+16A55; [7C 62 9C, 05, 05]
-110D6; [7B 61 33, 05, 05]
+16A56; [7C 62 A3, 05, 05]
-110D7; [7B 61 3A, 05, 05]
+16A57; [7C 62 AA, 05, 05]
-110D8; [7B 61 41, 05, 05]
+16A58; [7C 62 B1, 05, 05]
-110D9; [7B 61 48, 05, 05]
+16A59; [7C 62 B8, 05, 05]
-110DA; [7B 61 4F, 05, 05]
+16A5A; [7C 62 BF, 05, 05]
-110DB; [7B 61 56, 05, 05]
+16A5B; [7C 62 C6, 05, 05]
-110DC; [7B 61 5D, 05, 05]
+16A5C; [7C 62 CD, 05, 05]
-110DD; [7B 61 64, 05, 05]
+16A5D; [7C 62 D4, 05, 05]
-110DE; [7B 61 6B, 05, 05]
+16A5E; [7C 62 DB, 05, 05]
-110DF; [7B 61 72, 05, 05]
+FDD1 10000; [7C 63 02, 05, 05] # LINEAR_B first primary (compressible)
-110E0; [7B 61 79, 05, 05]
+10000; [7C 63 09, 05, 05]
-110E1; [7B 61 80, 05, 05]
+10001; [7C 63 10, 05, 05]
-110E2; [7B 61 87, 05, 05]
+10002; [7C 63 17, 05, 05]
-110E3; [7B 61 8E, 05, 05]
+10003; [7C 63 1E, 05, 05]
-110E4; [7B 61 95, 05, 05]
+10004; [7C 63 25, 05, 05]
-110E5; [7B 61 9C, 05, 05]
+10005; [7C 63 2C, 05, 05]
-110E6; [7B 61 A3, 05, 05]
+10006; [7C 63 33, 05, 05]
-110E7; [7B 61 AA, 05, 05]
+10007; [7C 63 3A, 05, 05]
-110E8; [7B 61 B1, 05, 05]
+10008; [7C 63 41, 05, 05]
-FDD1 16A4F; [7B 62 02, 05, 05] # Mro first primary (compressible)
+10009; [7C 63 48, 05, 05]
-16A40; [7B 62 09, 05, 05]
+1000A; [7C 63 4F, 05, 05]
-16A41; [7B 62 10, 05, 05]
+1000B; [7C 63 56, 05, 05]
-16A42; [7B 62 17, 05, 05]
+1000D; [7C 63 5D, 05, 05]
-16A43; [7B 62 1E, 05, 05]
+1000E; [7C 63 64, 05, 05]
-16A44; [7B 62 25, 05, 05]
+1000F; [7C 63 6B, 05, 05]
-16A45; [7B 62 2C, 05, 05]
+10010; [7C 63 72, 05, 05]
-16A46; [7B 62 33, 05, 05]
+10011; [7C 63 79, 05, 05]
-16A47; [7B 62 3A, 05, 05]
+10012; [7C 63 80, 05, 05]
-16A48; [7B 62 41, 05, 05]
+10013; [7C 63 87, 05, 05]
-16A49; [7B 62 48, 05, 05]
+10014; [7C 63 8E, 05, 05]
-16A4A; [7B 62 4F, 05, 05]
+10015; [7C 63 95, 05, 05]
-16A4B; [7B 62 56, 05, 05]
+10016; [7C 63 9C, 05, 05]
-16A4C; [7B 62 5D, 05, 05]
+10017; [7C 63 A3, 05, 05]
-16A4D; [7B 62 64, 05, 05]
+10018; [7C 63 AA, 05, 05]
-16A4E; [7B 62 6B, 05, 05]
+10019; [7C 63 B1, 05, 05]
-16A4F; [7B 62 72, 05, 05]
+1001A; [7C 63 B8, 05, 05]
-16A50; [7B 62 79, 05, 05]
+1001B; [7C 63 BF, 05, 05]
-16A51; [7B 62 80, 05, 05]
+1001C; [7C 63 C6, 05, 05]
-16A52; [7B 62 87, 05, 05]
+1001D; [7C 63 CD, 05, 05]
-16A53; [7B 62 8E, 05, 05]
+1001E; [7C 63 D4, 05, 05]
-16A54; [7B 62 95, 05, 05]
+1001F; [7C 63 DB, 05, 05]
-16A55; [7B 62 9C, 05, 05]
+10020; [7C 63 E2, 05, 05]
-16A56; [7B 62 A3, 05, 05]
+10021; [7C 63 E9, 05, 05]
-16A57; [7B 62 AA, 05, 05]
+10022; [7C 63 F0, 05, 05]
-16A58; [7B 62 B1, 05, 05]
+10023; [7C 63 F7, 05, 05]
-16A59; [7B 62 B8, 05, 05]
+10024; [7C 63 FE, 05, 05]
-16A5A; [7B 62 BF, 05, 05]
+10025; [7C 64 07, 05, 05]
-16A5B; [7B 62 C6, 05, 05]
+10026; [7C 64 0E, 05, 05]
-16A5C; [7B 62 CD, 05, 05]
+10028; [7C 64 15, 05, 05]
-16A5D; [7B 62 D4, 05, 05]
+10029; [7C 64 1C, 05, 05]
-16A5E; [7B 62 DB, 05, 05]
+1002A; [7C 64 23, 05, 05]
-FDD1 10000; [7B 63 02, 05, 05] # LINEAR_B first primary (compressible)
+1002B; [7C 64 2A, 05, 05]
-10000; [7B 63 09, 05, 05]
+1002C; [7C 64 31, 05, 05]
-10001; [7B 63 10, 05, 05]
+1002D; [7C 64 38, 05, 05]
-10002; [7B 63 17, 05, 05]
+1002E; [7C 64 3F, 05, 05]
-10003; [7B 63 1E, 05, 05]
+1002F; [7C 64 46, 05, 05]
-10004; [7B 63 25, 05, 05]
+10030; [7C 64 4D, 05, 05]
-10005; [7B 63 2C, 05, 05]
+10031; [7C 64 54, 05, 05]
-10006; [7B 63 33, 05, 05]
+10032; [7C 64 5B, 05, 05]
-10007; [7B 63 3A, 05, 05]
+10033; [7C 64 62, 05, 05]
-10008; [7B 63 41, 05, 05]
+10034; [7C 64 69, 05, 05]
-10009; [7B 63 48, 05, 05]
+10035; [7C 64 70, 05, 05]
-1000A; [7B 63 4F, 05, 05]
+10036; [7C 64 77, 05, 05]
-1000B; [7B 63 56, 05, 05]
+10037; [7C 64 7E, 05, 05]
-1000D; [7B 63 5D, 05, 05]
+10038; [7C 64 85, 05, 05]
-1000E; [7B 63 64, 05, 05]
+10039; [7C 64 8C, 05, 05]
-1000F; [7B 63 6B, 05, 05]
+1003A; [7C 64 93, 05, 05]
-10010; [7B 63 72, 05, 05]
+1003C; [7C 64 9A, 05, 05]
-10011; [7B 63 79, 05, 05]
+1003D; [7C 64 A1, 05, 05]
-10012; [7B 63 80, 05, 05]
+1003F; [7C 64 A8, 05, 05]
-10013; [7B 63 87, 05, 05]
+10040; [7C 64 AF, 05, 05]
-10014; [7B 63 8E, 05, 05]
+10041; [7C 64 B6, 05, 05]
-10015; [7B 63 95, 05, 05]
+10042; [7C 64 BD, 05, 05]
-10016; [7B 63 9C, 05, 05]
+10043; [7C 64 C4, 05, 05]
-10017; [7B 63 A3, 05, 05]
+10044; [7C 64 CB, 05, 05]
-10018; [7B 63 AA, 05, 05]
+10045; [7C 64 D2, 05, 05]
-10019; [7B 63 B1, 05, 05]
+10046; [7C 64 D9, 05, 05]
-1001A; [7B 63 B8, 05, 05]
+10047; [7C 64 E0, 05, 05]
-1001B; [7B 63 BF, 05, 05]
+10048; [7C 64 E7, 05, 05]
-1001C; [7B 63 C6, 05, 05]
+10049; [7C 64 EE, 05, 05]
-1001D; [7B 63 CD, 05, 05]
+1004A; [7C 64 F5, 05, 05]
-1001E; [7B 63 D4, 05, 05]
+1004B; [7C 64 FC, 05, 05]
-1001F; [7B 63 DB, 05, 05]
+1004C; [7C 65 05, 05, 05]
-10020; [7B 63 E2, 05, 05]
+1004D; [7C 65 0C, 05, 05]
-10021; [7B 63 E9, 05, 05]
+10050; [7C 65 13, 05, 05]
-10022; [7B 63 F0, 05, 05]
+10051; [7C 65 1A, 05, 05]
-10023; [7B 63 F7, 05, 05]
+10052; [7C 65 21, 05, 05]
-10024; [7B 63 FE, 05, 05]
+10053; [7C 65 28, 05, 05]
-10025; [7B 64 07, 05, 05]
+10054; [7C 65 2F, 05, 05]
-10026; [7B 64 0E, 05, 05]
+10055; [7C 65 36, 05, 05]
-10028; [7B 64 15, 05, 05]
+10056; [7C 65 3D, 05, 05]
-10029; [7B 64 1C, 05, 05]
+10057; [7C 65 44, 05, 05]
-1002A; [7B 64 23, 05, 05]
+10058; [7C 65 4B, 05, 05]
-1002B; [7B 64 2A, 05, 05]
+10059; [7C 65 52, 05, 05]
-1002C; [7B 64 31, 05, 05]
+1005A; [7C 65 59, 05, 05]
-1002D; [7B 64 38, 05, 05]
+1005B; [7C 65 60, 05, 05]
-1002E; [7B 64 3F, 05, 05]
+1005C; [7C 65 67, 05, 05]
-1002F; [7B 64 46, 05, 05]
+1005D; [7C 65 6E, 05, 05]
-10030; [7B 64 4D, 05, 05]
+10080; [7C 65 75, 05, 05]
-10031; [7B 64 54, 05, 05]
+10081; [7C 65 7C, 05, 05]
-10032; [7B 64 5B, 05, 05]
+10082; [7C 65 83, 05, 05]
-10033; [7B 64 62, 05, 05]
+10083; [7C 65 8A, 05, 05]
-10034; [7B 64 69, 05, 05]
+10084; [7C 65 91, 05, 05]
-10035; [7B 64 70, 05, 05]
+10085; [7C 65 98, 05, 05]
-10036; [7B 64 77, 05, 05]
+10086; [7C 65 9F, 05, 05]
-10037; [7B 64 7E, 05, 05]
+10087; [7C 65 A6, 05, 05]
-10038; [7B 64 85, 05, 05]
+10088; [7C 65 AD, 05, 05]
-10039; [7B 64 8C, 05, 05]
+10089; [7C 65 B4, 05, 05]
-1003A; [7B 64 93, 05, 05]
+1008A; [7C 65 BB, 05, 05]
-1003C; [7B 64 9A, 05, 05]
+1008B; [7C 65 C2, 05, 05]
-1003D; [7B 64 A1, 05, 05]
+1008C; [7C 65 C9, 05, 05]
-1003F; [7B 64 A8, 05, 05]
+1008D; [7C 65 D0, 05, 05]
-10040; [7B 64 AF, 05, 05]
+1008E; [7C 65 D7, 05, 05]
-10041; [7B 64 B6, 05, 05]
+1008F; [7C 65 DE, 05, 05]
-10042; [7B 64 BD, 05, 05]
+10090; [7C 65 E5, 05, 05]
-10043; [7B 64 C4, 05, 05]
+10091; [7C 65 EC, 05, 05]
-10044; [7B 64 CB, 05, 05]
+10092; [7C 65 F3, 05, 05]
-10045; [7B 64 D2, 05, 05]
+10093; [7C 65 FA, 05, 05]
-10046; [7B 64 D9, 05, 05]
+10094; [7C 66 03, 05, 05]
-10047; [7B 64 E0, 05, 05]
+10095; [7C 66 0A, 05, 05]
-10048; [7B 64 E7, 05, 05]
+10096; [7C 66 11, 05, 05]
-10049; [7B 64 EE, 05, 05]
+10097; [7C 66 18, 05, 05]
-1004A; [7B 64 F5, 05, 05]
+10098; [7C 66 1F, 05, 05]
-1004B; [7B 64 FC, 05, 05]
+10099; [7C 66 26, 05, 05]
-1004C; [7B 65 05, 05, 05]
+1009A; [7C 66 2D, 05, 05]
-1004D; [7B 65 0C, 05, 05]
+1009B; [7C 66 34, 05, 05]
-10050; [7B 65 13, 05, 05]
+1009C; [7C 66 3B, 05, 05]
-10051; [7B 65 1A, 05, 05]
+1009D; [7C 66 42, 05, 05]
-10052; [7B 65 21, 05, 05]
+1009E; [7C 66 49, 05, 05]
-10053; [7B 65 28, 05, 05]
+1009F; [7C 66 50, 05, 05]
-10054; [7B 65 2F, 05, 05]
+100A0; [7C 66 57, 05, 05]
-10055; [7B 65 36, 05, 05]
+100A1; [7C 66 5E, 05, 05]
-10056; [7B 65 3D, 05, 05]
+100A2; [7C 66 65, 05, 05]
-10057; [7B 65 44, 05, 05]
+100A3; [7C 66 6C, 05, 05]
-10058; [7B 65 4B, 05, 05]
+100A4; [7C 66 73, 05, 05]
-10059; [7B 65 52, 05, 05]
+100A5; [7C 66 7A, 05, 05]
-1005A; [7B 65 59, 05, 05]
+100A6; [7C 66 81, 05, 05]
-1005B; [7B 65 60, 05, 05]
+100A7; [7C 66 88, 05, 05]
-1005C; [7B 65 67, 05, 05]
+100A8; [7C 66 8F, 05, 05]
-1005D; [7B 65 6E, 05, 05]
+100A9; [7C 66 96, 05, 05]
-10080; [7B 65 75, 05, 05]
+100AA; [7C 66 9D, 05, 05]
-10081; [7B 65 7C, 05, 05]
+100AB; [7C 66 A4, 05, 05]
-10082; [7B 65 83, 05, 05]
+100AC; [7C 66 AB, 05, 05]
-10083; [7B 65 8A, 05, 05]
+100AD; [7C 66 B2, 05, 05]
-10084; [7B 65 91, 05, 05]
+100AE; [7C 66 B9, 05, 05]
-10085; [7B 65 98, 05, 05]
+100AF; [7C 66 C0, 05, 05]
-10086; [7B 65 9F, 05, 05]
+100B0; [7C 66 C7, 05, 05]
-10087; [7B 65 A6, 05, 05]
+100B1; [7C 66 CE, 05, 05]
-10088; [7B 65 AD, 05, 05]
+100B2; [7C 66 D5, 05, 05]
-10089; [7B 65 B4, 05, 05]
+100B3; [7C 66 DC, 05, 05]
-1008A; [7B 65 BB, 05, 05]
+100B4; [7C 66 E3, 05, 05]
-1008B; [7B 65 C2, 05, 05]
+100B5; [7C 66 EA, 05, 05]
-1008C; [7B 65 C9, 05, 05]
+100B6; [7C 66 F1, 05, 05]
-1008D; [7B 65 D0, 05, 05]
+100B7; [7C 66 F8, 05, 05]
-1008E; [7B 65 D7, 05, 05]
+100B8; [7C 66 FF, 05, 05]
-1008F; [7B 65 DE, 05, 05]
+100B9; [7C 67 08, 05, 05]
-10090; [7B 65 E5, 05, 05]
+100BA; [7C 67 0F, 05, 05]
-10091; [7B 65 EC, 05, 05]
+100BB; [7C 67 16, 05, 05]
-10092; [7B 65 F3, 05, 05]
+100BC; [7C 67 1D, 05, 05]
-10093; [7B 65 FA, 05, 05]
+100BD; [7C 67 24, 05, 05]
-10094; [7B 66 03, 05, 05]
+100BE; [7C 67 2B, 05, 05]
-10095; [7B 66 0A, 05, 05]
+100BF; [7C 67 32, 05, 05]
-10096; [7B 66 11, 05, 05]
+100C0; [7C 67 39, 05, 05]
-10097; [7B 66 18, 05, 05]
+100C1; [7C 67 40, 05, 05]
-10098; [7B 66 1F, 05, 05]
+100C2; [7C 67 47, 05, 05]
-10099; [7B 66 26, 05, 05]
+100C3; [7C 67 4E, 05, 05]
-1009A; [7B 66 2D, 05, 05]
+100C4; [7C 67 55, 05, 05]
-1009B; [7B 66 34, 05, 05]
+100C5; [7C 67 5C, 05, 05]
-1009C; [7B 66 3B, 05, 05]
+100C6; [7C 67 63, 05, 05]
-1009D; [7B 66 42, 05, 05]
+100C7; [7C 67 6A, 05, 05]
-1009E; [7B 66 49, 05, 05]
+100C8; [7C 67 71, 05, 05]
-1009F; [7B 66 50, 05, 05]
+100C9; [7C 67 78, 05, 05]
-100A0; [7B 66 57, 05, 05]
+100CA; [7C 67 7F, 05, 05]
-100A1; [7B 66 5E, 05, 05]
+100CB; [7C 67 86, 05, 05]
-100A2; [7B 66 65, 05, 05]
+100CC; [7C 67 8D, 05, 05]
-100A3; [7B 66 6C, 05, 05]
+100CD; [7C 67 94, 05, 05]
-100A4; [7B 66 73, 05, 05]
+100CE; [7C 67 9B, 05, 05]
-100A5; [7B 66 7A, 05, 05]
+100CF; [7C 67 A2, 05, 05]
-100A6; [7B 66 81, 05, 05]
+100D0; [7C 67 A9, 05, 05]
-100A7; [7B 66 88, 05, 05]
+100D1; [7C 67 B0, 05, 05]
-100A8; [7B 66 8F, 05, 05]
+100D2; [7C 67 B7, 05, 05]
-100A9; [7B 66 96, 05, 05]
+100D3; [7C 67 BE, 05, 05]
-100AA; [7B 66 9D, 05, 05]
+100D4; [7C 67 C5, 05, 05]
-100AB; [7B 66 A4, 05, 05]
+100D5; [7C 67 CC, 05, 05]
-100AC; [7B 66 AB, 05, 05]
+100D6; [7C 67 D3, 05, 05]
-100AD; [7B 66 B2, 05, 05]
+100D7; [7C 67 DA, 05, 05]
-100AE; [7B 66 B9, 05, 05]
+100D8; [7C 67 E1, 05, 05]
-100AF; [7B 66 C0, 05, 05]
+100D9; [7C 67 E8, 05, 05]
-100B0; [7B 66 C7, 05, 05]
+100DA; [7C 67 EF, 05, 05]
-100B1; [7B 66 CE, 05, 05]
+100DB; [7C 67 F6, 05, 05]
-100B2; [7B 66 D5, 05, 05]
+100DC; [7C 67 FD, 05, 05]
-100B3; [7B 66 DC, 05, 05]
+100DD; [7C 68 06, 05, 05]
-100B4; [7B 66 E3, 05, 05]
+100DE; [7C 68 0D, 05, 05]
-100B5; [7B 66 EA, 05, 05]
+100DF; [7C 68 14, 05, 05]
-100B6; [7B 66 F1, 05, 05]
+100E0; [7C 68 1B, 05, 05]
-100B7; [7B 66 F8, 05, 05]
+100E1; [7C 68 22, 05, 05]
-100B8; [7B 66 FF, 05, 05]
+100E2; [7C 68 29, 05, 05]
-100B9; [7B 67 08, 05, 05]
+100E3; [7C 68 30, 05, 05]
-100BA; [7B 67 0F, 05, 05]
+100E4; [7C 68 37, 05, 05]
-100BB; [7B 67 16, 05, 05]
+100E5; [7C 68 3E, 05, 05]
-100BC; [7B 67 1D, 05, 05]
+100E6; [7C 68 45, 05, 05]
-100BD; [7B 67 24, 05, 05]
+100E7; [7C 68 4C, 05, 05]
-100BE; [7B 67 2B, 05, 05]
+100E8; [7C 68 53, 05, 05]
-100BF; [7B 67 32, 05, 05]
+100E9; [7C 68 5A, 05, 05]
-100C0; [7B 67 39, 05, 05]
+100EA; [7C 68 61, 05, 05]
-100C1; [7B 67 40, 05, 05]
+100EB; [7C 68 68, 05, 05]
-100C2; [7B 67 47, 05, 05]
+100EC; [7C 68 6F, 05, 05]
-100C3; [7B 67 4E, 05, 05]
+100ED; [7C 68 76, 05, 05]
-100C4; [7B 67 55, 05, 05]
+100EE; [7C 68 7D, 05, 05]
-100C5; [7B 67 5C, 05, 05]
+100EF; [7C 68 84, 05, 05]
-100C6; [7B 67 63, 05, 05]
+100F0; [7C 68 8B, 05, 05]
-100C7; [7B 67 6A, 05, 05]
+100F1; [7C 68 92, 05, 05]
-100C8; [7B 67 71, 05, 05]
+100F2; [7C 68 99, 05, 05]
-100C9; [7B 67 78, 05, 05]
+100F3; [7C 68 A0, 05, 05]
-100CA; [7B 67 7F, 05, 05]
+100F4; [7C 68 A7, 05, 05]
-100CB; [7B 67 86, 05, 05]
+100F5; [7C 68 AE, 05, 05]
-100CC; [7B 67 8D, 05, 05]
+100F6; [7C 68 B5, 05, 05]
-100CD; [7B 67 94, 05, 05]
+100F7; [7C 68 BC, 05, 05]
-100CE; [7B 67 9B, 05, 05]
+100F8; [7C 68 C3, 05, 05]
-100CF; [7B 67 A2, 05, 05]
+100F9; [7C 68 CA, 05, 05]
-100D0; [7B 67 A9, 05, 05]
+100FA; [7C 68 D1, 05, 05]
-100D1; [7B 67 B0, 05, 05]
+FDD1 10647; [7C 69 02, 05, 05] # Linear_A first primary (compressible)
-100D2; [7B 67 B7, 05, 05]
+10600; [7C 69 09, 05, 05]
-100D3; [7B 67 BE, 05, 05]
+10601; [7C 69 10, 05, 05]
-100D4; [7B 67 C5, 05, 05]
+10602; [7C 69 17, 05, 05]
-100D5; [7B 67 CC, 05, 05]
+10603; [7C 69 1E, 05, 05]
-100D6; [7B 67 D3, 05, 05]
+10604; [7C 69 25, 05, 05]
-100D7; [7B 67 DA, 05, 05]
+10605; [7C 69 2C, 05, 05]
-100D8; [7B 67 E1, 05, 05]
+10606; [7C 69 33, 05, 05]
-100D9; [7B 67 E8, 05, 05]
+10607; [7C 69 3A, 05, 05]
-100DA; [7B 67 EF, 05, 05]
+10608; [7C 69 41, 05, 05]
-100DB; [7B 67 F6, 05, 05]
+10609; [7C 69 48, 05, 05]
-100DC; [7B 67 FD, 05, 05]
+1060A; [7C 69 4F, 05, 05]
-100DD; [7B 68 06, 05, 05]
+1060B; [7C 69 56, 05, 05]
-100DE; [7B 68 0D, 05, 05]
+1060C; [7C 69 5D, 05, 05]
-100DF; [7B 68 14, 05, 05]
+1060D; [7C 69 64, 05, 05]
-100E0; [7B 68 1B, 05, 05]
+1060E; [7C 69 6B, 05, 05]
-100E1; [7B 68 22, 05, 05]
+1060F; [7C 69 72, 05, 05]
-100E2; [7B 68 29, 05, 05]
+10610; [7C 69 79, 05, 05]
-100E3; [7B 68 30, 05, 05]
+10611; [7C 69 80, 05, 05]
-100E4; [7B 68 37, 05, 05]
+10612; [7C 69 87, 05, 05]
-100E5; [7B 68 3E, 05, 05]
+10613; [7C 69 8E, 05, 05]
-100E6; [7B 68 45, 05, 05]
+10614; [7C 69 95, 05, 05]
-100E7; [7B 68 4C, 05, 05]
+10615; [7C 69 9C, 05, 05]
-100E8; [7B 68 53, 05, 05]
+10616; [7C 69 A3, 05, 05]
-100E9; [7B 68 5A, 05, 05]
+10617; [7C 69 AA, 05, 05]
-100EA; [7B 68 61, 05, 05]
+10618; [7C 69 B1, 05, 05]
-100EB; [7B 68 68, 05, 05]
+10619; [7C 69 B8, 05, 05]
-100EC; [7B 68 6F, 05, 05]
+1061A; [7C 69 BF, 05, 05]
-100ED; [7B 68 76, 05, 05]
+1061B; [7C 69 C6, 05, 05]
-100EE; [7B 68 7D, 05, 05]
+1061C; [7C 69 CD, 05, 05]
-100EF; [7B 68 84, 05, 05]
+1061D; [7C 69 D4, 05, 05]
-100F0; [7B 68 8B, 05, 05]
+1061E; [7C 69 DB, 05, 05]
-100F1; [7B 68 92, 05, 05]
+1061F; [7C 69 E2, 05, 05]
-100F2; [7B 68 99, 05, 05]
+10620; [7C 69 E9, 05, 05]
-100F3; [7B 68 A0, 05, 05]
+10621; [7C 69 F0, 05, 05]
-100F4; [7B 68 A7, 05, 05]
+10622; [7C 69 F7, 05, 05]
-100F5; [7B 68 AE, 05, 05]
+10623; [7C 69 FE, 05, 05]
-100F6; [7B 68 B5, 05, 05]
+10624; [7C 6A 07, 05, 05]
-100F7; [7B 68 BC, 05, 05]
+10625; [7C 6A 0E, 05, 05]
-100F8; [7B 68 C3, 05, 05]
+10626; [7C 6A 15, 05, 05]
-100F9; [7B 68 CA, 05, 05]
+10627; [7C 6A 1C, 05, 05]
-100FA; [7B 68 D1, 05, 05]
+10628; [7C 6A 23, 05, 05]
-FDD1 10647; [7B 69 02, 05, 05] # Linear_A first primary (compressible)
+10629; [7C 6A 2A, 05, 05]
-10600; [7B 69 09, 05, 05]
+1062A; [7C 6A 31, 05, 05]
-10601; [7B 69 10, 05, 05]
+1062B; [7C 6A 38, 05, 05]
-10602; [7B 69 17, 05, 05]
+1062C; [7C 6A 3F, 05, 05]
-10603; [7B 69 1E, 05, 05]
+1062D; [7C 6A 46, 05, 05]
-10604; [7B 69 25, 05, 05]
+1062E; [7C 6A 4D, 05, 05]
-10605; [7B 69 2C, 05, 05]
+1062F; [7C 6A 54, 05, 05]
-10606; [7B 69 33, 05, 05]
+10630; [7C 6A 5B, 05, 05]
-10607; [7B 69 3A, 05, 05]
+10631; [7C 6A 62, 05, 05]
-10608; [7B 69 41, 05, 05]
+10632; [7C 6A 69, 05, 05]
-10609; [7B 69 48, 05, 05]
+10633; [7C 6A 70, 05, 05]
-1060A; [7B 69 4F, 05, 05]
+10634; [7C 6A 77, 05, 05]
-1060B; [7B 69 56, 05, 05]
+10635; [7C 6A 7E, 05, 05]
-1060C; [7B 69 5D, 05, 05]
+10636; [7C 6A 85, 05, 05]
-1060D; [7B 69 64, 05, 05]
+10637; [7C 6A 8C, 05, 05]
-1060E; [7B 69 6B, 05, 05]
+10638; [7C 6A 93, 05, 05]
-1060F; [7B 69 72, 05, 05]
+10639; [7C 6A 9A, 05, 05]
-10610; [7B 69 79, 05, 05]
+1063A; [7C 6A A1, 05, 05]
-10611; [7B 69 80, 05, 05]
+1063B; [7C 6A A8, 05, 05]
-10612; [7B 69 87, 05, 05]
+1063C; [7C 6A AF, 05, 05]
-10613; [7B 69 8E, 05, 05]
+1063D; [7C 6A B6, 05, 05]
-10614; [7B 69 95, 05, 05]
+1063E; [7C 6A BD, 05, 05]
-10615; [7B 69 9C, 05, 05]
+1063F; [7C 6A C4, 05, 05]
-10616; [7B 69 A3, 05, 05]
+10640; [7C 6A CB, 05, 05]
-10617; [7B 69 AA, 05, 05]
+10641; [7C 6A D2, 05, 05]
-10618; [7B 69 B1, 05, 05]
+10642; [7C 6A D9, 05, 05]
-10619; [7B 69 B8, 05, 05]
+10643; [7C 6A E0, 05, 05]
-1061A; [7B 69 BF, 05, 05]
+10644; [7C 6A E7, 05, 05]
-1061B; [7B 69 C6, 05, 05]
+10645; [7C 6A EE, 05, 05]
-1061C; [7B 69 CD, 05, 05]
+10646; [7C 6A F5, 05, 05]
-1061D; [7B 69 D4, 05, 05]
+10647; [7C 6A FC, 05, 05]
-1061E; [7B 69 DB, 05, 05]
+10648; [7C 6B 05, 05, 05]
-1061F; [7B 69 E2, 05, 05]
+10649; [7C 6B 0C, 05, 05]
-10620; [7B 69 E9, 05, 05]
+1064A; [7C 6B 13, 05, 05]
-10621; [7B 69 F0, 05, 05]
+1064B; [7C 6B 1A, 05, 05]
-10622; [7B 69 F7, 05, 05]
+1064C; [7C 6B 21, 05, 05]
-10623; [7B 69 FE, 05, 05]
+1064D; [7C 6B 28, 05, 05]
-10624; [7B 6A 07, 05, 05]
+1064E; [7C 6B 2F, 05, 05]
-10625; [7B 6A 0E, 05, 05]
+1064F; [7C 6B 36, 05, 05]
-10626; [7B 6A 15, 05, 05]
+10650; [7C 6B 3D, 05, 05]
-10627; [7B 6A 1C, 05, 05]
+10651; [7C 6B 44, 05, 05]
-10628; [7B 6A 23, 05, 05]
+10652; [7C 6B 4B, 05, 05]
-10629; [7B 6A 2A, 05, 05]
+10653; [7C 6B 52, 05, 05]
-1062A; [7B 6A 31, 05, 05]
+10654; [7C 6B 59, 05, 05]
-1062B; [7B 6A 38, 05, 05]
+10655; [7C 6B 60, 05, 05]
-1062C; [7B 6A 3F, 05, 05]
+10656; [7C 6B 67, 05, 05]
-1062D; [7B 6A 46, 05, 05]
+10657; [7C 6B 6E, 05, 05]
-1062E; [7B 6A 4D, 05, 05]
+10658; [7C 6B 75, 05, 05]
-1062F; [7B 6A 54, 05, 05]
+10659; [7C 6B 7C, 05, 05]
-10630; [7B 6A 5B, 05, 05]
+1065A; [7C 6B 83, 05, 05]
-10631; [7B 6A 62, 05, 05]
+1065B; [7C 6B 8A, 05, 05]
-10632; [7B 6A 69, 05, 05]
+1065C; [7C 6B 91, 05, 05]
-10633; [7B 6A 70, 05, 05]
+1065D; [7C 6B 98, 05, 05]
-10634; [7B 6A 77, 05, 05]
+1065E; [7C 6B 9F, 05, 05]
-10635; [7B 6A 7E, 05, 05]
+1065F; [7C 6B A6, 05, 05]
-10636; [7B 6A 85, 05, 05]
+10660; [7C 6B AD, 05, 05]
-10637; [7B 6A 8C, 05, 05]
+10661; [7C 6B B4, 05, 05]
-10638; [7B 6A 93, 05, 05]
+10662; [7C 6B BB, 05, 05]
-10639; [7B 6A 9A, 05, 05]
+10663; [7C 6B C2, 05, 05]
-1063A; [7B 6A A1, 05, 05]
+10664; [7C 6B C9, 05, 05]
-1063B; [7B 6A A8, 05, 05]
+10665; [7C 6B D0, 05, 05]
-1063C; [7B 6A AF, 05, 05]
+10666; [7C 6B D7, 05, 05]
-1063D; [7B 6A B6, 05, 05]
+10667; [7C 6B DE, 05, 05]
-1063E; [7B 6A BD, 05, 05]
+10668; [7C 6B E5, 05, 05]
-1063F; [7B 6A C4, 05, 05]
+10669; [7C 6B EC, 05, 05]
-10640; [7B 6A CB, 05, 05]
+1066A; [7C 6B F3, 05, 05]
-10641; [7B 6A D2, 05, 05]
+1066B; [7C 6B FA, 05, 05]
-10642; [7B 6A D9, 05, 05]
+1066C; [7C 6C 03, 05, 05]
-10643; [7B 6A E0, 05, 05]
+1066D; [7C 6C 0A, 05, 05]
-10644; [7B 6A E7, 05, 05]
+1066E; [7C 6C 11, 05, 05]
-10645; [7B 6A EE, 05, 05]
+1066F; [7C 6C 18, 05, 05]
-10646; [7B 6A F5, 05, 05]
+10670; [7C 6C 1F, 05, 05]
-10647; [7B 6A FC, 05, 05]
+10671; [7C 6C 26, 05, 05]
-10648; [7B 6B 05, 05, 05]
+10672; [7C 6C 2D, 05, 05]
-10649; [7B 6B 0C, 05, 05]
+10673; [7C 6C 34, 05, 05]
-1064A; [7B 6B 13, 05, 05]
+10674; [7C 6C 3B, 05, 05]
-1064B; [7B 6B 1A, 05, 05]
+10675; [7C 6C 42, 05, 05]
-1064C; [7B 6B 21, 05, 05]
+10676; [7C 6C 49, 05, 05]
-1064D; [7B 6B 28, 05, 05]
+10677; [7C 6C 50, 05, 05]
-1064E; [7B 6B 2F, 05, 05]
+10678; [7C 6C 57, 05, 05]
-1064F; [7B 6B 36, 05, 05]
+10679; [7C 6C 5E, 05, 05]
-10650; [7B 6B 3D, 05, 05]
+1067A; [7C 6C 65, 05, 05]
-10651; [7B 6B 44, 05, 05]
+1067B; [7C 6C 6C, 05, 05]
-10652; [7B 6B 4B, 05, 05]
+1067C; [7C 6C 73, 05, 05]
-10653; [7B 6B 52, 05, 05]
+1067D; [7C 6C 7A, 05, 05]
-10654; [7B 6B 59, 05, 05]
+1067E; [7C 6C 81, 05, 05]
-10655; [7B 6B 60, 05, 05]
+1067F; [7C 6C 88, 05, 05]
-10656; [7B 6B 67, 05, 05]
+10680; [7C 6C 8F, 05, 05]
-10657; [7B 6B 6E, 05, 05]
+10681; [7C 6C 96, 05, 05]
-10658; [7B 6B 75, 05, 05]
+10682; [7C 6C 9D, 05, 05]
-10659; [7B 6B 7C, 05, 05]
+10683; [7C 6C A4, 05, 05]
-1065A; [7B 6B 83, 05, 05]
+10684; [7C 6C AB, 05, 05]
-1065B; [7B 6B 8A, 05, 05]
+10685; [7C 6C B2, 05, 05]
-1065C; [7B 6B 91, 05, 05]
+10686; [7C 6C B9, 05, 05]
-1065D; [7B 6B 98, 05, 05]
+10687; [7C 6C C0, 05, 05]
-1065E; [7B 6B 9F, 05, 05]
+10688; [7C 6C C7, 05, 05]
-1065F; [7B 6B A6, 05, 05]
+10689; [7C 6C CE, 05, 05]
-10660; [7B 6B AD, 05, 05]
+1068A; [7C 6C D5, 05, 05]
-10661; [7B 6B B4, 05, 05]
+1068B; [7C 6C DC, 05, 05]
-10662; [7B 6B BB, 05, 05]
+1068C; [7C 6C E3, 05, 05]
-10663; [7B 6B C2, 05, 05]
+1068D; [7C 6C EA, 05, 05]
-10664; [7B 6B C9, 05, 05]
+1068E; [7C 6C F1, 05, 05]
-10665; [7B 6B D0, 05, 05]
+1068F; [7C 6C F8, 05, 05]
-10666; [7B 6B D7, 05, 05]
+10690; [7C 6C FF, 05, 05]
-10667; [7B 6B DE, 05, 05]
+10691; [7C 6D 08, 05, 05]
-10668; [7B 6B E5, 05, 05]
+10692; [7C 6D 0F, 05, 05]
-10669; [7B 6B EC, 05, 05]
+10693; [7C 6D 16, 05, 05]
-1066A; [7B 6B F3, 05, 05]
+10694; [7C 6D 1D, 05, 05]
-1066B; [7B 6B FA, 05, 05]
+10695; [7C 6D 24, 05, 05]
-1066C; [7B 6C 03, 05, 05]
+10696; [7C 6D 2B, 05, 05]
-1066D; [7B 6C 0A, 05, 05]
+10697; [7C 6D 32, 05, 05]
-1066E; [7B 6C 11, 05, 05]
+10698; [7C 6D 39, 05, 05]
-1066F; [7B 6C 18, 05, 05]
+10699; [7C 6D 40, 05, 05]
-10670; [7B 6C 1F, 05, 05]
+1069A; [7C 6D 47, 05, 05]
-10671; [7B 6C 26, 05, 05]
+1069B; [7C 6D 4E, 05, 05]
-10672; [7B 6C 2D, 05, 05]
+1069C; [7C 6D 55, 05, 05]
-10673; [7B 6C 34, 05, 05]
+1069D; [7C 6D 5C, 05, 05]
-10674; [7B 6C 3B, 05, 05]
+1069E; [7C 6D 63, 05, 05]
-10675; [7B 6C 42, 05, 05]
+1069F; [7C 6D 6A, 05, 05]
-10676; [7B 6C 49, 05, 05]
+106A0; [7C 6D 71, 05, 05]
-10677; [7B 6C 50, 05, 05]
+106A1; [7C 6D 78, 05, 05]
-10678; [7B 6C 57, 05, 05]
+106A2; [7C 6D 7F, 05, 05]
-10679; [7B 6C 5E, 05, 05]
+106A3; [7C 6D 86, 05, 05]
-1067A; [7B 6C 65, 05, 05]
+106A4; [7C 6D 8D, 05, 05]
-1067B; [7B 6C 6C, 05, 05]
+106A5; [7C 6D 94, 05, 05]
-1067C; [7B 6C 73, 05, 05]
+106A6; [7C 6D 9B, 05, 05]
-1067D; [7B 6C 7A, 05, 05]
+106A7; [7C 6D A2, 05, 05]
-1067E; [7B 6C 81, 05, 05]
+106A8; [7C 6D A9, 05, 05]
-1067F; [7B 6C 88, 05, 05]
+106A9; [7C 6D B0, 05, 05]
-10680; [7B 6C 8F, 05, 05]
+106AA; [7C 6D B7, 05, 05]
-10681; [7B 6C 96, 05, 05]
+106AB; [7C 6D BE, 05, 05]
-10682; [7B 6C 9D, 05, 05]
+106AC; [7C 6D C5, 05, 05]
-10683; [7B 6C A4, 05, 05]
+106AD; [7C 6D CC, 05, 05]
-10684; [7B 6C AB, 05, 05]
+106AE; [7C 6D D3, 05, 05]
-10685; [7B 6C B2, 05, 05]
+106AF; [7C 6D DA, 05, 05]
-10686; [7B 6C B9, 05, 05]
+106B0; [7C 6D E1, 05, 05]
-10687; [7B 6C C0, 05, 05]
+106B1; [7C 6D E8, 05, 05]
-10688; [7B 6C C7, 05, 05]
+106B2; [7C 6D EF, 05, 05]
-10689; [7B 6C CE, 05, 05]
+106B3; [7C 6D F6, 05, 05]
-1068A; [7B 6C D5, 05, 05]
+106B4; [7C 6D FD, 05, 05]
-1068B; [7B 6C DC, 05, 05]
+106B5; [7C 6E 06, 05, 05]
-1068C; [7B 6C E3, 05, 05]
+106B6; [7C 6E 0D, 05, 05]
-1068D; [7B 6C EA, 05, 05]
+106B7; [7C 6E 14, 05, 05]
-1068E; [7B 6C F1, 05, 05]
+106B8; [7C 6E 1B, 05, 05]
-1068F; [7B 6C F8, 05, 05]
+106B9; [7C 6E 22, 05, 05]
-10690; [7B 6C FF, 05, 05]
+106BA; [7C 6E 29, 05, 05]
-10691; [7B 6D 08, 05, 05]
+106BB; [7C 6E 30, 05, 05]
-10692; [7B 6D 0F, 05, 05]
+106BC; [7C 6E 37, 05, 05]
-10693; [7B 6D 16, 05, 05]
+106BD; [7C 6E 3E, 05, 05]
-10694; [7B 6D 1D, 05, 05]
+106BE; [7C 6E 45, 05, 05]
-10695; [7B 6D 24, 05, 05]
+106BF; [7C 6E 4C, 05, 05]
-10696; [7B 6D 2B, 05, 05]
+106C0; [7C 6E 53, 05, 05]
-10697; [7B 6D 32, 05, 05]
+106C1; [7C 6E 5A, 05, 05]
-10698; [7B 6D 39, 05, 05]
+106C2; [7C 6E 61, 05, 05]
-10699; [7B 6D 40, 05, 05]
+106C3; [7C 6E 68, 05, 05]
-1069A; [7B 6D 47, 05, 05]
+106C4; [7C 6E 6F, 05, 05]
-1069B; [7B 6D 4E, 05, 05]
+106C5; [7C 6E 76, 05, 05]
-1069C; [7B 6D 55, 05, 05]
+106C6; [7C 6E 7D, 05, 05]
-1069D; [7B 6D 5C, 05, 05]
+106C7; [7C 6E 84, 05, 05]
-1069E; [7B 6D 63, 05, 05]
+106C8; [7C 6E 8B, 05, 05]
-1069F; [7B 6D 6A, 05, 05]
+106C9; [7C 6E 92, 05, 05]
-106A0; [7B 6D 71, 05, 05]
+106CA; [7C 6E 99, 05, 05]
-106A1; [7B 6D 78, 05, 05]
+106CB; [7C 6E A0, 05, 05]
-106A2; [7B 6D 7F, 05, 05]
+106CC; [7C 6E A7, 05, 05]
-106A3; [7B 6D 86, 05, 05]
+106CD; [7C 6E AE, 05, 05]
-106A4; [7B 6D 8D, 05, 05]
+106CE; [7C 6E B5, 05, 05]
-106A5; [7B 6D 94, 05, 05]
+106CF; [7C 6E BC, 05, 05]
-106A6; [7B 6D 9B, 05, 05]
+106D0; [7C 6E C3, 05, 05]
-106A7; [7B 6D A2, 05, 05]
+106D1; [7C 6E CA, 05, 05]
-106A8; [7B 6D A9, 05, 05]
+106D2; [7C 6E D1, 05, 05]
-106A9; [7B 6D B0, 05, 05]
+106D3; [7C 6E D8, 05, 05]
-106AA; [7B 6D B7, 05, 05]
+106D4; [7C 6E DF, 05, 05]
-106AB; [7B 6D BE, 05, 05]
+106D5; [7C 6E E6, 05, 05]
-106AC; [7B 6D C5, 05, 05]
+106D6; [7C 6E ED, 05, 05]
-106AD; [7B 6D CC, 05, 05]
+106D7; [7C 6E F4, 05, 05]
-106AE; [7B 6D D3, 05, 05]
+106D8; [7C 6E FB, 05, 05]
-106AF; [7B 6D DA, 05, 05]
+106D9; [7C 6F 04, 05, 05]
-106B0; [7B 6D E1, 05, 05]
+106DA; [7C 6F 0B, 05, 05]
-106B1; [7B 6D E8, 05, 05]
+106DB; [7C 6F 12, 05, 05]
-106B2; [7B 6D EF, 05, 05]
+106DC; [7C 6F 19, 05, 05]
-106B3; [7B 6D F6, 05, 05]
+106DD; [7C 6F 20, 05, 05]
-106B4; [7B 6D FD, 05, 05]
+106DE; [7C 6F 27, 05, 05]
-106B5; [7B 6E 06, 05, 05]
+106DF; [7C 6F 2E, 05, 05]
-106B6; [7B 6E 0D, 05, 05]
+106E0; [7C 6F 35, 05, 05]
-106B7; [7B 6E 14, 05, 05]
+106E1; [7C 6F 3C, 05, 05]
-106B8; [7B 6E 1B, 05, 05]
+106E2; [7C 6F 43, 05, 05]
-106B9; [7B 6E 22, 05, 05]
+106E3; [7C 6F 4A, 05, 05]
-106BA; [7B 6E 29, 05, 05]
+106E4; [7C 6F 51, 05, 05]
-106BB; [7B 6E 30, 05, 05]
+106E5; [7C 6F 58, 05, 05]
-106BC; [7B 6E 37, 05, 05]
+106E6; [7C 6F 5F, 05, 05]
-106BD; [7B 6E 3E, 05, 05]
+106E7; [7C 6F 66, 05, 05]
-106BE; [7B 6E 45, 05, 05]
+106E8; [7C 6F 6D, 05, 05]
-106BF; [7B 6E 4C, 05, 05]
+106E9; [7C 6F 74, 05, 05]
-106C0; [7B 6E 53, 05, 05]
+106EA; [7C 6F 7B, 05, 05]
-106C1; [7B 6E 5A, 05, 05]
+106EB; [7C 6F 82, 05, 05]
-106C2; [7B 6E 61, 05, 05]
+106EC; [7C 6F 89, 05, 05]
-106C3; [7B 6E 68, 05, 05]
+106ED; [7C 6F 90, 05, 05]
-106C4; [7B 6E 6F, 05, 05]
+106EE; [7C 6F 97, 05, 05]
-106C5; [7B 6E 76, 05, 05]
+106EF; [7C 6F 9E, 05, 05]
-106C6; [7B 6E 7D, 05, 05]
+106F0; [7C 6F A5, 05, 05]
-106C7; [7B 6E 84, 05, 05]
+106F1; [7C 6F AC, 05, 05]
-106C8; [7B 6E 8B, 05, 05]
+106F2; [7C 6F B3, 05, 05]
-106C9; [7B 6E 92, 05, 05]
+106F3; [7C 6F BA, 05, 05]
-106CA; [7B 6E 99, 05, 05]
+106F4; [7C 6F C1, 05, 05]
-106CB; [7B 6E A0, 05, 05]
+106F5; [7C 6F C8, 05, 05]
-106CC; [7B 6E A7, 05, 05]
+106F6; [7C 6F CF, 05, 05]
-106CD; [7B 6E AE, 05, 05]
+106F7; [7C 6F D6, 05, 05]
-106CE; [7B 6E B5, 05, 05]
+106F8; [7C 6F DD, 05, 05]
-106CF; [7B 6E BC, 05, 05]
+106F9; [7C 6F E4, 05, 05]
-106D0; [7B 6E C3, 05, 05]
+106FA; [7C 6F EB, 05, 05]
-106D1; [7B 6E CA, 05, 05]
+106FB; [7C 6F F2, 05, 05]
-106D2; [7B 6E D1, 05, 05]
+106FC; [7C 6F F9, 05, 05]
-106D3; [7B 6E D8, 05, 05]
+106FD; [7C 70 02, 05, 05]
-106D4; [7B 6E DF, 05, 05]
+106FE; [7C 70 09, 05, 05]
-106D5; [7B 6E E6, 05, 05]
+106FF; [7C 70 10, 05, 05]
-106D6; [7B 6E ED, 05, 05]
+10700; [7C 70 17, 05, 05]
-106D7; [7B 6E F4, 05, 05]
+10701; [7C 70 1E, 05, 05]
-106D8; [7B 6E FB, 05, 05]
+10702; [7C 70 25, 05, 05]
-106D9; [7B 6F 04, 05, 05]
+10703; [7C 70 2C, 05, 05]
-106DA; [7B 6F 0B, 05, 05]
+10704; [7C 70 33, 05, 05]
-106DB; [7B 6F 12, 05, 05]
+10705; [7C 70 3A, 05, 05]
-106DC; [7B 6F 19, 05, 05]
+10706; [7C 70 41, 05, 05]
-106DD; [7B 6F 20, 05, 05]
+10707; [7C 70 48, 05, 05]
-106DE; [7B 6F 27, 05, 05]
+10708; [7C 70 4F, 05, 05]
-106DF; [7B 6F 2E, 05, 05]
+10709; [7C 70 56, 05, 05]
-106E0; [7B 6F 35, 05, 05]
+1070A; [7C 70 5D, 05, 05]
-106E1; [7B 6F 3C, 05, 05]
+1070B; [7C 70 64, 05, 05]
-106E2; [7B 6F 43, 05, 05]
+1070C; [7C 70 6B, 05, 05]
-106E3; [7B 6F 4A, 05, 05]
+1070D; [7C 70 72, 05, 05]
-106E4; [7B 6F 51, 05, 05]
+1070E; [7C 70 79, 05, 05]
-106E5; [7B 6F 58, 05, 05]
+1070F; [7C 70 80, 05, 05]
-106E6; [7B 6F 5F, 05, 05]
+10710; [7C 70 87, 05, 05]
-106E7; [7B 6F 66, 05, 05]
+10711; [7C 70 8E, 05, 05]
-106E8; [7B 6F 6D, 05, 05]
+10712; [7C 70 95, 05, 05]
-106E9; [7B 6F 74, 05, 05]
+10713; [7C 70 9C, 05, 05]
-106EA; [7B 6F 7B, 05, 05]
+10714; [7C 70 A3, 05, 05]
-106EB; [7B 6F 82, 05, 05]
+10715; [7C 70 AA, 05, 05]
-106EC; [7B 6F 89, 05, 05]
+10716; [7C 70 B1, 05, 05]
-106ED; [7B 6F 90, 05, 05]
+10717; [7C 70 B8, 05, 05]
-106EE; [7B 6F 97, 05, 05]
+10718; [7C 70 BF, 05, 05]
-106EF; [7B 6F 9E, 05, 05]
+10719; [7C 70 C6, 05, 05]
-106F0; [7B 6F A5, 05, 05]
+1071A; [7C 70 CD, 05, 05]
-106F1; [7B 6F AC, 05, 05]
+1071B; [7C 70 D4, 05, 05]
-106F2; [7B 6F B3, 05, 05]
+1071C; [7C 70 DB, 05, 05]
-106F3; [7B 6F BA, 05, 05]
+1071D; [7C 70 E2, 05, 05]
-106F4; [7B 6F C1, 05, 05]
+1071E; [7C 70 E9, 05, 05]
-106F5; [7B 6F C8, 05, 05]
+1071F; [7C 70 F0, 05, 05]
-106F6; [7B 6F CF, 05, 05]
+10720; [7C 70 F7, 05, 05]
-106F7; [7B 6F D6, 05, 05]
+10721; [7C 70 FE, 05, 05]
-106F8; [7B 6F DD, 05, 05]
+10722; [7C 71 07, 05, 05]
-106F9; [7B 6F E4, 05, 05]
+10723; [7C 71 0E, 05, 05]
-106FA; [7B 6F EB, 05, 05]
+10724; [7C 71 15, 05, 05]
-106FB; [7B 6F F2, 05, 05]
+10725; [7C 71 1C, 05, 05]
-106FC; [7B 6F F9, 05, 05]
+10726; [7C 71 23, 05, 05]
-106FD; [7B 70 02, 05, 05]
+10727; [7C 71 2A, 05, 05]
-106FE; [7B 70 09, 05, 05]
+10728; [7C 71 31, 05, 05]
-106FF; [7B 70 10, 05, 05]
+10729; [7C 71 38, 05, 05]
-10700; [7B 70 17, 05, 05]
+1072A; [7C 71 3F, 05, 05]
-10701; [7B 70 1E, 05, 05]
+1072B; [7C 71 46, 05, 05]
-10702; [7B 70 25, 05, 05]
+1072C; [7C 71 4D, 05, 05]
-10703; [7B 70 2C, 05, 05]
+1072D; [7C 71 54, 05, 05]
-10704; [7B 70 33, 05, 05]
+1072E; [7C 71 5B, 05, 05]
-10705; [7B 70 3A, 05, 05]
+1072F; [7C 71 62, 05, 05]
-10706; [7B 70 41, 05, 05]
+10730; [7C 71 69, 05, 05]
-10707; [7B 70 48, 05, 05]
+10731; [7C 71 70, 05, 05]
-10708; [7B 70 4F, 05, 05]
+10732; [7C 71 77, 05, 05]
-10709; [7B 70 56, 05, 05]
+10733; [7C 71 7E, 05, 05]
-1070A; [7B 70 5D, 05, 05]
+10734; [7C 71 85, 05, 05]
-1070B; [7B 70 64, 05, 05]
+10735; [7C 71 8C, 05, 05]
-1070C; [7B 70 6B, 05, 05]
+10736; [7C 71 93, 05, 05]
-1070D; [7B 70 72, 05, 05]
+10740; [7C 71 9A, 05, 05]
-1070E; [7B 70 79, 05, 05]
+10741; [7C 71 A1, 05, 05]
-1070F; [7B 70 80, 05, 05]
+10742; [7C 71 A8, 05, 05]
-10710; [7B 70 87, 05, 05]
+10743; [7C 71 AF, 05, 05]
-10711; [7B 70 8E, 05, 05]
+10744; [7C 71 B6, 05, 05]
-10712; [7B 70 95, 05, 05]
+10745; [7C 71 BD, 05, 05]
-10713; [7B 70 9C, 05, 05]
+10746; [7C 71 C4, 05, 05]
-10714; [7B 70 A3, 05, 05]
+10747; [7C 71 CB, 05, 05]
-10715; [7B 70 AA, 05, 05]
+10748; [7C 71 D2, 05, 05]
-10716; [7B 70 B1, 05, 05]
+10749; [7C 71 D9, 05, 05]
-10717; [7B 70 B8, 05, 05]
+1074A; [7C 71 E0, 05, 05]
-10718; [7B 70 BF, 05, 05]
+1074B; [7C 71 E7, 05, 05]
-10719; [7B 70 C6, 05, 05]
+1074C; [7C 71 EE, 05, 05]
-1071A; [7B 70 CD, 05, 05]
+1074D; [7C 71 F5, 05, 05]
-1071B; [7B 70 D4, 05, 05]
+1074E; [7C 71 FC, 05, 05]
-1071C; [7B 70 DB, 05, 05]
+1074F; [7C 72 05, 05, 05]
-1071D; [7B 70 E2, 05, 05]
+10750; [7C 72 0C, 05, 05]
-1071E; [7B 70 E9, 05, 05]
+10751; [7C 72 13, 05, 05]
-1071F; [7B 70 F0, 05, 05]
+10752; [7C 72 1A, 05, 05]
-10720; [7B 70 F7, 05, 05]
+10753; [7C 72 21, 05, 05]
-10721; [7B 70 FE, 05, 05]
+10754; [7C 72 28, 05, 05]
-10722; [7B 71 07, 05, 05]
+10755; [7C 72 2F, 05, 05]
-10723; [7B 71 0E, 05, 05]
+10760; [7C 72 36, 05, 05]
-10724; [7B 71 15, 05, 05]
+10761; [7C 72 3D, 05, 05]
-10725; [7B 71 1C, 05, 05]
+10762; [7C 72 44, 05, 05]
-10726; [7B 71 23, 05, 05]
+10763; [7C 72 4B, 05, 05]
-10727; [7B 71 2A, 05, 05]
+10764; [7C 72 52, 05, 05]
-10728; [7B 71 31, 05, 05]
+10765; [7C 72 59, 05, 05]
-10729; [7B 71 38, 05, 05]
+10766; [7C 72 60, 05, 05]
-1072A; [7B 71 3F, 05, 05]
+10767; [7C 72 67, 05, 05]
-1072B; [7B 71 46, 05, 05]
+FDD1 10800; [7C 73 02, 05, 05] # CYPRIOT first primary (compressible)
-1072C; [7B 71 4D, 05, 05]
+10800; [7C 73 09, 05, 05]
-1072D; [7B 71 54, 05, 05]
+10801; [7C 73 10, 05, 05]
-1072E; [7B 71 5B, 05, 05]
+10802; [7C 73 17, 05, 05]
-1072F; [7B 71 62, 05, 05]
+10803; [7C 73 1E, 05, 05]
-10730; [7B 71 69, 05, 05]
+10804; [7C 73 25, 05, 05]
-10731; [7B 71 70, 05, 05]
+10805; [7C 73 2C, 05, 05]
-10732; [7B 71 77, 05, 05]
+10808; [7C 73 33, 05, 05]
-10733; [7B 71 7E, 05, 05]
+1080A; [7C 73 3A, 05, 05]
-10734; [7B 71 85, 05, 05]
+1080B; [7C 73 41, 05, 05]
-10735; [7B 71 8C, 05, 05]
+1080C; [7C 73 48, 05, 05]
-10736; [7B 71 93, 05, 05]
+1080D; [7C 73 4F, 05, 05]
-10740; [7B 71 9A, 05, 05]
+1080E; [7C 73 56, 05, 05]
-10741; [7B 71 A1, 05, 05]
+1080F; [7C 73 5D, 05, 05]
-10742; [7B 71 A8, 05, 05]
+10810; [7C 73 64, 05, 05]
-10743; [7B 71 AF, 05, 05]
+10811; [7C 73 6B, 05, 05]
-10744; [7B 71 B6, 05, 05]
+10812; [7C 73 72, 05, 05]
-10745; [7B 71 BD, 05, 05]
+10813; [7C 73 79, 05, 05]
-10746; [7B 71 C4, 05, 05]
+10814; [7C 73 80, 05, 05]
-10747; [7B 71 CB, 05, 05]
+10815; [7C 73 87, 05, 05]
-10748; [7B 71 D2, 05, 05]
+10816; [7C 73 8E, 05, 05]
-10749; [7B 71 D9, 05, 05]
+10817; [7C 73 95, 05, 05]
-1074A; [7B 71 E0, 05, 05]
+10818; [7C 73 9C, 05, 05]
-1074B; [7B 71 E7, 05, 05]
+10819; [7C 73 A3, 05, 05]
-1074C; [7B 71 EE, 05, 05]
+1081A; [7C 73 AA, 05, 05]
-1074D; [7B 71 F5, 05, 05]
+1081B; [7C 73 B1, 05, 05]
-1074E; [7B 71 FC, 05, 05]
+1081C; [7C 73 B8, 05, 05]
-1074F; [7B 72 05, 05, 05]
+1081D; [7C 73 BF, 05, 05]
-10750; [7B 72 0C, 05, 05]
+1081E; [7C 73 C6, 05, 05]
-10751; [7B 72 13, 05, 05]
+1081F; [7C 73 CD, 05, 05]
-10752; [7B 72 1A, 05, 05]
+10820; [7C 73 D4, 05, 05]
-10753; [7B 72 21, 05, 05]
+10821; [7C 73 DB, 05, 05]
-10754; [7B 72 28, 05, 05]
+10822; [7C 73 E2, 05, 05]
-10755; [7B 72 2F, 05, 05]
+10823; [7C 73 E9, 05, 05]
-10760; [7B 72 36, 05, 05]
+10824; [7C 73 F0, 05, 05]
-10761; [7B 72 3D, 05, 05]
+10825; [7C 73 F7, 05, 05]
-10762; [7B 72 44, 05, 05]
+10826; [7C 73 FE, 05, 05]
-10763; [7B 72 4B, 05, 05]
+10827; [7C 74 07, 05, 05]
-10764; [7B 72 52, 05, 05]
+10828; [7C 74 0E, 05, 05]
-10765; [7B 72 59, 05, 05]
+10829; [7C 74 15, 05, 05]
-10766; [7B 72 60, 05, 05]
+1082A; [7C 74 1C, 05, 05]
-10767; [7B 72 67, 05, 05]
+1082B; [7C 74 23, 05, 05]
-FDD1 10800; [7B 73 02, 05, 05] # CYPRIOT first primary (compressible)
+1082C; [7C 74 2A, 05, 05]
-10800; [7B 73 09, 05, 05]
+1082D; [7C 74 31, 05, 05]
-10801; [7B 73 10, 05, 05]
+1082E; [7C 74 38, 05, 05]
-10802; [7B 73 17, 05, 05]
+1082F; [7C 74 3F, 05, 05]
-10803; [7B 73 1E, 05, 05]
+10830; [7C 74 46, 05, 05]
-10804; [7B 73 25, 05, 05]
+10831; [7C 74 4D, 05, 05]
-10805; [7B 73 2C, 05, 05]
+10832; [7C 74 54, 05, 05]
-10808; [7B 73 33, 05, 05]
+10833; [7C 74 5B, 05, 05]
-1080A; [7B 73 3A, 05, 05]
+10834; [7C 74 62, 05, 05]
-1080B; [7B 73 41, 05, 05]
+10835; [7C 74 69, 05, 05]
-1080C; [7B 73 48, 05, 05]
+10837; [7C 74 70, 05, 05]
-1080D; [7B 73 4F, 05, 05]
+10838; [7C 74 77, 05, 05]
-1080E; [7B 73 56, 05, 05]
+1083C; [7C 74 7E, 05, 05]
-1080F; [7B 73 5D, 05, 05]
+1083F; [7C 74 85, 05, 05]
-10810; [7B 73 64, 05, 05]
+FDD1 10A60; [7C 75 02, 05, 05] # Old South Arabian first primary (compressible)
-10811; [7B 73 6B, 05, 05]
+10A60; [7C 75 09, 05, 05]
-10812; [7B 73 72, 05, 05]
+10A61; [7C 75 10, 05, 05]
-10813; [7B 73 79, 05, 05]
+10A62; [7C 75 17, 05, 05]
-10814; [7B 73 80, 05, 05]
+10A63; [7C 75 1E, 05, 05]
-10815; [7B 73 87, 05, 05]
+10A64; [7C 75 25, 05, 05]
-10816; [7B 73 8E, 05, 05]
+10A65; [7C 75 2C, 05, 05]
-10817; [7B 73 95, 05, 05]
+10A66; [7C 75 33, 05, 05]
-10818; [7B 73 9C, 05, 05]
+10A67; [7C 75 3A, 05, 05]
-10819; [7B 73 A3, 05, 05]
+10A68; [7C 75 41, 05, 05]
-1081A; [7B 73 AA, 05, 05]
+10A69; [7C 75 48, 05, 05]
-1081B; [7B 73 B1, 05, 05]
+10A6A; [7C 75 4F, 05, 05]
-1081C; [7B 73 B8, 05, 05]
+10A6B; [7C 75 56, 05, 05]
-1081D; [7B 73 BF, 05, 05]
+10A6C; [7C 75 5D, 05, 05]
-1081E; [7B 73 C6, 05, 05]
+10A6D; [7C 75 64, 05, 05]
-1081F; [7B 73 CD, 05, 05]
+10A6E; [7C 75 6B, 05, 05]
-10820; [7B 73 D4, 05, 05]
+10A6F; [7C 75 72, 05, 05]
-10821; [7B 73 DB, 05, 05]
+10A70; [7C 75 79, 05, 05]
-10822; [7B 73 E2, 05, 05]
+10A71; [7C 75 80, 05, 05]
-10823; [7B 73 E9, 05, 05]
+10A72; [7C 75 87, 05, 05]
-10824; [7B 73 F0, 05, 05]
+10A73; [7C 75 8E, 05, 05]
-10825; [7B 73 F7, 05, 05]
+10A74; [7C 75 95, 05, 05]
-10826; [7B 73 FE, 05, 05]
+10A75; [7C 75 9C, 05, 05]
-10827; [7B 74 07, 05, 05]
+10A76; [7C 75 A3, 05, 05]
-10828; [7B 74 0E, 05, 05]
+10A77; [7C 75 AA, 05, 05]
-10829; [7B 74 15, 05, 05]
+10A78; [7C 75 B1, 05, 05]
-1082A; [7B 74 1C, 05, 05]
+10A79; [7C 75 B8, 05, 05]
-1082B; [7B 74 23, 05, 05]
+10A7A; [7C 75 BF, 05, 05]
-1082C; [7B 74 2A, 05, 05]
+10A7B; [7C 75 C6, 05, 05]
-1082D; [7B 74 31, 05, 05]
+10A7C; [7C 75 CD, 05, 05]
-1082E; [7B 74 38, 05, 05]
+FDD1 10A95; [7C 76 02, 05, 05] # Old_North_Arabian first primary (compressible)
-1082F; [7B 74 3F, 05, 05]
+10A80; [7C 76 09, 05, 05]
-10830; [7B 74 46, 05, 05]
+10A81; [7C 76 10, 05, 05]
-10831; [7B 74 4D, 05, 05]
+10A82; [7C 76 17, 05, 05]
-10832; [7B 74 54, 05, 05]
+10A83; [7C 76 1E, 05, 05]
-10833; [7B 74 5B, 05, 05]
+10A84; [7C 76 25, 05, 05]
-10834; [7B 74 62, 05, 05]
+10A85; [7C 76 2C, 05, 05]
-10835; [7B 74 69, 05, 05]
+10A86; [7C 76 33, 05, 05]
-10837; [7B 74 70, 05, 05]
+10A87; [7C 76 3A, 05, 05]
-10838; [7B 74 77, 05, 05]
+10A88; [7C 76 41, 05, 05]
-1083C; [7B 74 7E, 05, 05]
+10A89; [7C 76 48, 05, 05]
-1083F; [7B 74 85, 05, 05]
+10A8A; [7C 76 4F, 05, 05]
-FDD1 10A60; [7B 75 02, 05, 05] # Old South Arabian first primary (compressible)
+10A8B; [7C 76 56, 05, 05]
-10A60; [7B 75 09, 05, 05]
+10A8C; [7C 76 5D, 05, 05]
-10A61; [7B 75 10, 05, 05]
+10A8D; [7C 76 64, 05, 05]
-10A62; [7B 75 17, 05, 05]
+10A8E; [7C 76 6B, 05, 05]
-10A63; [7B 75 1E, 05, 05]
+10A8F; [7C 76 72, 05, 05]
-10A64; [7B 75 25, 05, 05]
+10A90; [7C 76 79, 05, 05]
-10A65; [7B 75 2C, 05, 05]
+10A91; [7C 76 80, 05, 05]
-10A66; [7B 75 33, 05, 05]
+10A92; [7C 76 87, 05, 05]
-10A67; [7B 75 3A, 05, 05]
+10A93; [7C 76 8E, 05, 05]
-10A68; [7B 75 41, 05, 05]
+10A94; [7C 76 95, 05, 05]
-10A69; [7B 75 48, 05, 05]
+10A95; [7C 76 9C, 05, 05]
-10A6A; [7B 75 4F, 05, 05]
+10A96; [7C 76 A3, 05, 05]
-10A6B; [7B 75 56, 05, 05]
+10A97; [7C 76 AA, 05, 05]
-10A6C; [7B 75 5D, 05, 05]
+10A98; [7C 76 B1, 05, 05]
-10A6D; [7B 75 64, 05, 05]
+10A99; [7C 76 B8, 05, 05]
-10A6E; [7B 75 6B, 05, 05]
+10A9A; [7C 76 BF, 05, 05]
-10A6F; [7B 75 72, 05, 05]
+10A9B; [7C 76 C6, 05, 05]
-10A70; [7B 75 79, 05, 05]
+10A9C; [7C 76 CD, 05, 05]
-10A71; [7B 75 80, 05, 05]
+FDD1 10B00; [7C 77 02, 05, 05] # Avestan first primary (compressible)
-10A72; [7B 75 87, 05, 05]
+10B00; [7C 77 09, 05, 05]
-10A73; [7B 75 8E, 05, 05]
+10B01; [7C 77 10, 05, 05]
-10A74; [7B 75 95, 05, 05]
+10B02; [7C 77 17, 05, 05]
-10A75; [7B 75 9C, 05, 05]
+10B03; [7C 77 1E, 05, 05]
-10A76; [7B 75 A3, 05, 05]
+10B04; [7C 77 25, 05, 05]
-10A77; [7B 75 AA, 05, 05]
+10B05; [7C 77 2C, 05, 05]
-10A78; [7B 75 B1, 05, 05]
+10B06; [7C 77 33, 05, 05]
-10A79; [7B 75 B8, 05, 05]
+10B07; [7C 77 3A, 05, 05]
-10A7A; [7B 75 BF, 05, 05]
+10B08; [7C 77 41, 05, 05]
-10A7B; [7B 75 C6, 05, 05]
+10B09; [7C 77 48, 05, 05]
-10A7C; [7B 75 CD, 05, 05]
+10B0A; [7C 77 4F, 05, 05]
-FDD1 10A95; [7B 76 02, 05, 05] # Old_North_Arabian first primary (compressible)
+10B0B; [7C 77 56, 05, 05]
-10A80; [7B 76 09, 05, 05]
+10B0C; [7C 77 5D, 05, 05]
-10A81; [7B 76 10, 05, 05]
+10B0D; [7C 77 64, 05, 05]
-10A82; [7B 76 17, 05, 05]
+10B0E; [7C 77 6B, 05, 05]
-10A83; [7B 76 1E, 05, 05]
+10B0F; [7C 77 72, 05, 05]
-10A84; [7B 76 25, 05, 05]
+10B10; [7C 77 79, 05, 05]
-10A85; [7B 76 2C, 05, 05]
+10B11; [7C 77 80, 05, 05]
-10A86; [7B 76 33, 05, 05]
+10B12; [7C 77 87, 05, 05]
-10A87; [7B 76 3A, 05, 05]
+10B13; [7C 77 8E, 05, 05]
-10A88; [7B 76 41, 05, 05]
+10B14; [7C 77 95, 05, 05]
-10A89; [7B 76 48, 05, 05]
+10B15; [7C 77 9C, 05, 05]
-10A8A; [7B 76 4F, 05, 05]
+10B16; [7C 77 A3, 05, 05]
-10A8B; [7B 76 56, 05, 05]
+10B17; [7C 77 AA, 05, 05]
-10A8C; [7B 76 5D, 05, 05]
+10B18; [7C 77 B1, 05, 05]
-10A8D; [7B 76 64, 05, 05]
+10B19; [7C 77 B8, 05, 05]
-10A8E; [7B 76 6B, 05, 05]
+10B1A; [7C 77 BF, 05, 05]
-10A8F; [7B 76 72, 05, 05]
+10B1B; [7C 77 C6, 05, 05]
-10A90; [7B 76 79, 05, 05]
+10B1C; [7C 77 CD, 05, 05]
-10A91; [7B 76 80, 05, 05]
+10B1D; [7C 77 D4, 05, 05]
-10A92; [7B 76 87, 05, 05]
+10B1E; [7C 77 DB, 05, 05]
-10A93; [7B 76 8E, 05, 05]
+10B1F; [7C 77 E2, 05, 05]
-10A94; [7B 76 95, 05, 05]
+10B20; [7C 77 E9, 05, 05]
-10A95; [7B 76 9C, 05, 05]
+10B21; [7C 77 F0, 05, 05]
-10A96; [7B 76 A3, 05, 05]
+10B22; [7C 77 F7, 05, 05]
-10A97; [7B 76 AA, 05, 05]
+10B23; [7C 77 FE, 05, 05]
-10A98; [7B 76 B1, 05, 05]
+10B24; [7C 78 07, 05, 05]
-10A99; [7B 76 B8, 05, 05]
+10B25; [7C 78 0E, 05, 05]
-10A9A; [7B 76 BF, 05, 05]
+10B26; [7C 78 15, 05, 05]
-10A9B; [7B 76 C6, 05, 05]
+10B27; [7C 78 1C, 05, 05]
-10A9C; [7B 76 CD, 05, 05]
+10B28; [7C 78 23, 05, 05]
-FDD1 10B00; [7B 77 02, 05, 05] # Avestan first primary (compressible)
+10B29; [7C 78 2A, 05, 05]
-10B00; [7B 77 09, 05, 05]
+10B2A; [7C 78 31, 05, 05]
-10B01; [7B 77 10, 05, 05]
+10B2B; [7C 78 38, 05, 05]
-10B02; [7B 77 17, 05, 05]
+10B2C; [7C 78 3F, 05, 05]
-10B03; [7B 77 1E, 05, 05]
+10B2D; [7C 7A, 05, 05]
+10B2E; [7C 7A, 70, 05]
-10B04; [7B 77 25, 05, 05]
+10B2F; [7C 7C 02, 05, 05]
-10B05; [7B 77 2C, 05, 05]
+10B30; [7C 7C 09, 05, 05]
-10B06; [7B 77 33, 05, 05]
+10B31; [7C 7C 10, 05, 05]
-10B07; [7B 77 3A, 05, 05]
+10B32; [7C 7C 17, 05, 05]
-10B08; [7B 77 41, 05, 05]
+10B33; [7C 7C 1E, 05, 05]
-10B09; [7B 77 48, 05, 05]
+10B34; [7C 7C 25, 05, 05]
-10B0A; [7B 77 4F, 05, 05]
+10B35; [7C 7C 2C, 05, 05]
-10B0B; [7B 77 56, 05, 05]
+FDD1 10873; [7C 7D 02, 05, 05] # Palmyrene first primary (compressible)
-10B0C; [7B 77 5D, 05, 05]
+10860; [7C 7D 09, 05, 05]
-10B0D; [7B 77 64, 05, 05]
+10861; [7C 7D 10, 05, 05]
-10B0E; [7B 77 6B, 05, 05]
+10862; [7C 7D 17, 05, 05]
-10B0F; [7B 77 72, 05, 05]
+10863; [7C 7D 1E, 05, 05]
-10B10; [7B 77 79, 05, 05]
+10864; [7C 7D 25, 05, 05]
-10B11; [7B 77 80, 05, 05]
+10865; [7C 7D 2C, 05, 05]
-10B12; [7B 77 87, 05, 05]
+10866; [7C 7D 33, 05, 05]
-10B13; [7B 77 8E, 05, 05]
+10867; [7C 7D 3A, 05, 05]
-10B14; [7B 77 95, 05, 05]
+10868; [7C 7D 41, 05, 05]
-10B15; [7B 77 9C, 05, 05]
+10869; [7C 7D 48, 05, 05]
-10B16; [7B 77 A3, 05, 05]
+1086A; [7C 7D 4F, 05, 05]
-10B17; [7B 77 AA, 05, 05]
+1086B; [7C 7D 56, 05, 05]
-10B18; [7B 77 B1, 05, 05]
+1086C; [7C 7D 5D, 05, 05]
-10B19; [7B 77 B8, 05, 05]
+1086E; [7C 7F, 05, 05]
+1086D; [7C 7F, 05, 20]
-10B1A; [7B 77 BF, 05, 05]
+1086F; [7C 81 02, 05, 05]
-10B1B; [7B 77 C6, 05, 05]
+10870; [7C 81 09, 05, 05]
-10B1C; [7B 77 CD, 05, 05]
+10871; [7C 81 10, 05, 05]
-10B1D; [7B 77 D4, 05, 05]
+10872; [7C 81 17, 05, 05]
-10B1E; [7B 77 DB, 05, 05]
+10873; [7C 81 1E, 05, 05]
-10B1F; [7B 77 E2, 05, 05]
+10874; [7C 81 25, 05, 05]
-10B20; [7B 77 E9, 05, 05]
+10875; [7C 81 2C, 05, 05]
-10B21; [7B 77 F0, 05, 05]
+10876; [7C 81 33, 05, 05]
-10B22; [7B 77 F7, 05, 05]
+FDD1 10896; [7C 82 02, 05, 05] # Nabataean first primary (compressible)
-10B23; [7B 77 FE, 05, 05]
+10881; [7C 84, 05, 05]
+10880; [7C 84, 05, 20]
-10B24; [7B 78 07, 05, 05]
+10883; [7C 86, 05, 05]
+10882; [7C 86, 05, 20]
-10B25; [7B 78 0E, 05, 05]
+10884; [7C 88 02, 05, 05]
-10B26; [7B 78 15, 05, 05]
+10885; [7C 88 09, 05, 05]
-10B27; [7B 78 1C, 05, 05]
+10887; [7C 8A, 05, 05]
+10886; [7C 8A, 05, 20]
-10B28; [7B 78 23, 05, 05]
+10888; [7C 8C 02, 05, 05]
-10B29; [7B 78 2A, 05, 05]
+10889; [7C 8C 09, 05, 05]
-10B2A; [7B 78 31, 05, 05]
+1088A; [7C 8C 10, 05, 05]
-10B2B; [7B 78 38, 05, 05]
+1088B; [7C 8C 17, 05, 05]
-10B2C; [7B 78 3F, 05, 05]
+1088D; [7C 8E, 05, 05]
+1088C; [7C 8E, 05, 20]
-10B2D; [7B 7A, 05, 05]
-10B2E; [7B 7A, 70, 05]
+1088F; [7C 90, 05, 05]
+1088E; [7C 90, 05, 20]
-10B2F; [7B 7C 02, 05, 05]
+10891; [7C 92, 05, 05]
+10890; [7C 92, 05, 20]
-10B30; [7B 7C 09, 05, 05]
+10893; [7C 94, 05, 05]
+10892; [7C 94, 05, 20]
-10B31; [7B 7C 10, 05, 05]
+10895; [7C 96, 05, 05]
+10894; [7C 96, 05, 20]
-10B32; [7B 7C 17, 05, 05]
+10896; [7C 98 02, 05, 05]
-10B33; [7B 7C 1E, 05, 05]
+10897; [7C 98 09, 05, 05]
-10B34; [7B 7C 25, 05, 05]
+10898; [7C 98 10, 05, 05]
-10B35; [7B 7C 2C, 05, 05]
+10899; [7C 98 17, 05, 05]
-FDD1 10873; [7B 7D 02, 05, 05] # Palmyrene first primary (compressible)
+1089A; [7C 98 1E, 05, 05]
-10860; [7B 7D 09, 05, 05]
+1089B; [7C 98 25, 05, 05]
-10861; [7B 7D 10, 05, 05]
+1089D; [7C 9A, 05, 05]
+1089C; [7C 9A, 05, 20]
-10862; [7B 7D 17, 05, 05]
+1089E; [7C 9C 02, 05, 05]
-10863; [7B 7D 1E, 05, 05]
+FDD1 108F4; [7C 9D 02, 05, 05] # Hatran first primary (compressible)
-10864; [7B 7D 25, 05, 05]
+108E0; [7C 9D 09, 05, 05]
-10865; [7B 7D 2C, 05, 05]
+108E1; [7C 9D 10, 05, 05]
-10866; [7B 7D 33, 05, 05]
+108E2; [7C 9D 17, 05, 05]
-10867; [7B 7D 3A, 05, 05]
+108E3; [7C 9D 1E, 05, 05]
-10868; [7B 7D 41, 05, 05]
+108E4; [7C 9D 25, 05, 05]
-10869; [7B 7D 48, 05, 05]
+108E5; [7C 9D 2C, 05, 05]
-1086A; [7B 7D 4F, 05, 05]
+108E6; [7C 9D 33, 05, 05]
-1086B; [7B 7D 56, 05, 05]
+108E7; [7C 9D 3A, 05, 05]
-1086C; [7B 7D 5D, 05, 05]
+108E8; [7C 9D 41, 05, 05]
-1086E; [7B 7F, 05, 05]
-1086D; [7B 7F, 05, 20]
+108E9; [7C 9D 48, 05, 05]
-1086F; [7B 81 02, 05, 05]
+108EA; [7C 9D 4F, 05, 05]
-10870; [7B 81 09, 05, 05]
+108EB; [7C 9D 56, 05, 05]
-10871; [7B 81 10, 05, 05]
+108EC; [7C 9D 5D, 05, 05]
-10872; [7B 81 17, 05, 05]
+108ED; [7C 9D 64, 05, 05]
-10873; [7B 81 1E, 05, 05]
+108EE; [7C 9D 6B, 05, 05]
-10874; [7B 81 25, 05, 05]
+108EF; [7C 9D 72, 05, 05]
-10875; [7B 81 2C, 05, 05]
+108F0; [7C 9D 79, 05, 05]
-10876; [7B 81 33, 05, 05]
+108F1; [7C 9D 80, 05, 05]
-FDD1 10896; [7B 82 02, 05, 05] # Nabataean first primary (compressible)
+108F2; [7C 9D 87, 05, 05]
-10881; [7B 84, 05, 05]
-10880; [7B 84, 05, 20]
+108F4; [7C 9D 8E, 05, 05]
-10883; [7B 86, 05, 05]
-10882; [7B 86, 05, 20]
+108F5; [7C 9D 95, 05, 05]
-10884; [7B 88 02, 05, 05]
+FDD1 10840; [7C 9E 02, 05, 05] # Imperial Aramaic first primary (compressible)
-10885; [7B 88 09, 05, 05]
+10840; [7C 9E 09, 05, 05]
-10887; [7B 8A, 05, 05]
-10886; [7B 8A, 05, 20]
+10841; [7C 9E 10, 05, 05]
-10888; [7B 8C 02, 05, 05]
+10842; [7C 9E 17, 05, 05]
-10889; [7B 8C 09, 05, 05]
+10843; [7C 9E 1E, 05, 05]
-1088A; [7B 8C 10, 05, 05]
+10844; [7C 9E 25, 05, 05]
-1088B; [7B 8C 17, 05, 05]
+10845; [7C 9E 2C, 05, 05]
-1088D; [7B 8E, 05, 05]
-1088C; [7B 8E, 05, 20]
+10846; [7C 9E 33, 05, 05]
-1088F; [7B 90, 05, 05]
-1088E; [7B 90, 05, 20]
+10847; [7C 9E 3A, 05, 05]
-10891; [7B 92, 05, 05]
-10890; [7B 92, 05, 20]
+10848; [7C 9E 41, 05, 05]
-10893; [7B 94, 05, 05]
-10892; [7B 94, 05, 20]
+10849; [7C 9E 48, 05, 05]
-10895; [7B 96, 05, 05]
-10894; [7B 96, 05, 20]
+1084A; [7C 9E 4F, 05, 05]
-10896; [7B 98 02, 05, 05]
+1084B; [7C 9E 56, 05, 05]
-10897; [7B 98 09, 05, 05]
+1084C; [7C 9E 5D, 05, 05]
-10898; [7B 98 10, 05, 05]
+1084D; [7C 9E 64, 05, 05]
-10899; [7B 98 17, 05, 05]
+1084E; [7C 9E 6B, 05, 05]
-1089A; [7B 98 1E, 05, 05]
+1084F; [7C 9E 72, 05, 05]
-1089B; [7B 98 25, 05, 05]
+10850; [7C 9E 79, 05, 05]
-1089D; [7B 9A, 05, 05]
-1089C; [7B 9A, 05, 20]
+10851; [7C 9E 80, 05, 05]
-1089E; [7B 9C 02, 05, 05]
+10852; [7C 9E 87, 05, 05]
-FDD1 108F4; [7B 9D 02, 05, 05] # Hatran first primary (compressible)
+10853; [7C 9E 8E, 05, 05]
-108E0; [7B 9D 09, 05, 05]
+10854; [7C 9E 95, 05, 05]
-108E1; [7B 9D 10, 05, 05]
+10855; [7C 9E 9C, 05, 05]
-108E2; [7B 9D 17, 05, 05]
+FDD1 10B40; [7C 9F 02, 05, 05] # Inscriptional Parthian first primary (compressible)
-108E3; [7B 9D 1E, 05, 05]
+10B40; [7C 9F 09, 05, 05]
-108E4; [7B 9D 25, 05, 05]
+10B41; [7C 9F 10, 05, 05]
-108E5; [7B 9D 2C, 05, 05]
+10B42; [7C 9F 17, 05, 05]
-108E6; [7B 9D 33, 05, 05]
+10B43; [7C 9F 1E, 05, 05]
-108E7; [7B 9D 3A, 05, 05]
+10B44; [7C 9F 25, 05, 05]
-108E8; [7B 9D 41, 05, 05]
+10B45; [7C 9F 2C, 05, 05]
-108E9; [7B 9D 48, 05, 05]
+10B46; [7C 9F 33, 05, 05]
-108EA; [7B 9D 4F, 05, 05]
+10B47; [7C 9F 3A, 05, 05]
-108EB; [7B 9D 56, 05, 05]
+10B48; [7C 9F 41, 05, 05]
-108EC; [7B 9D 5D, 05, 05]
+10B49; [7C 9F 48, 05, 05]
-108ED; [7B 9D 64, 05, 05]
+10B4A; [7C 9F 4F, 05, 05]
-108EE; [7B 9D 6B, 05, 05]
+10B4B; [7C 9F 56, 05, 05]
-108EF; [7B 9D 72, 05, 05]
+10B4C; [7C 9F 5D, 05, 05]
-108F0; [7B 9D 79, 05, 05]
+10B4D; [7C 9F 64, 05, 05]
-108F1; [7B 9D 80, 05, 05]
+10B4E; [7C 9F 6B, 05, 05]
-108F2; [7B 9D 87, 05, 05]
+10B4F; [7C 9F 72, 05, 05]
-108F4; [7B 9D 8E, 05, 05]
+10B50; [7C 9F 79, 05, 05]
-108F5; [7B 9D 95, 05, 05]
+10B51; [7C 9F 80, 05, 05]
-FDD1 10840; [7B 9E 02, 05, 05] # Imperial Aramaic first primary (compressible)
+10B52; [7C 9F 87, 05, 05]
-10840; [7B 9E 09, 05, 05]
+10B53; [7C 9F 8E, 05, 05]
-10841; [7B 9E 10, 05, 05]
+10B54; [7C 9F 95, 05, 05]
-10842; [7B 9E 17, 05, 05]
+10B55; [7C 9F 9C, 05, 05]
-10843; [7B 9E 1E, 05, 05]
+FDD1 10B60; [7C A0 02, 05, 05] # Inscriptional Pahlavi first primary (compressible)
-10844; [7B 9E 25, 05, 05]
+10B60; [7C A0 09, 05, 05]
-10845; [7B 9E 2C, 05, 05]
+10B61; [7C A0 10, 05, 05]
-10846; [7B 9E 33, 05, 05]
+10B62; [7C A0 17, 05, 05]
-10847; [7B 9E 3A, 05, 05]
+10B63; [7C A0 1E, 05, 05]
-10848; [7B 9E 41, 05, 05]
+10B64; [7C A0 25, 05, 05]
-10849; [7B 9E 48, 05, 05]
+10B65; [7C A0 2C, 05, 05]
-1084A; [7B 9E 4F, 05, 05]
+10B66; [7C A0 33, 05, 05]
-1084B; [7B 9E 56, 05, 05]
+10B67; [7C A0 3A, 05, 05]
-1084C; [7B 9E 5D, 05, 05]
+10B68; [7C A0 41, 05, 05]
-1084D; [7B 9E 64, 05, 05]
+10B69; [7C A0 48, 05, 05]
-1084E; [7B 9E 6B, 05, 05]
+10B6A; [7C A0 4F, 05, 05]
-1084F; [7B 9E 72, 05, 05]
+10B6B; [7C A0 56, 05, 05]
-10850; [7B 9E 79, 05, 05]
+10B6C; [7C A0 5D, 05, 05]
-10851; [7B 9E 80, 05, 05]
+10B6D; [7C A0 64, 05, 05]
-10852; [7B 9E 87, 05, 05]
+10B6E; [7C A0 6B, 05, 05]
-10853; [7B 9E 8E, 05, 05]
+10B6F; [7C A0 72, 05, 05]
-10854; [7B 9E 95, 05, 05]
+10B70; [7C A0 79, 05, 05]
-10855; [7B 9E 9C, 05, 05]
+10B71; [7C A0 80, 05, 05]
-FDD1 10B40; [7B 9F 02, 05, 05] # Inscriptional Parthian first primary (compressible)
+10B72; [7C A0 87, 05, 05]
-10B40; [7B 9F 09, 05, 05]
+FDD1 10B8F; [7C A1 02, 05, 05] # Psalter_Pahlavi first primary (compressible)
-10B41; [7B 9F 10, 05, 05]
+10B80; [7C A1 09, 05, 05]
-10B42; [7B 9F 17, 05, 05]
+10B81; [7C A1 10, 05, 05]
-10B43; [7B 9F 1E, 05, 05]
+10B82; [7C A1 17, 05, 05]
-10B44; [7B 9F 25, 05, 05]
+10B83; [7C A1 1E, 05, 05]
-10B45; [7B 9F 2C, 05, 05]
+10B84; [7C A1 25, 05, 05]
-10B46; [7B 9F 33, 05, 05]
+10B85; [7C A1 2C, 05, 05]
-10B47; [7B 9F 3A, 05, 05]
+10B86; [7C A1 33, 05, 05]
-10B48; [7B 9F 41, 05, 05]
+10B87; [7C A1 3A, 05, 05]
-10B49; [7B 9F 48, 05, 05]
+10B88; [7C A1 41, 05, 05]
-10B4A; [7B 9F 4F, 05, 05]
+10B89; [7C A1 48, 05, 05]
-10B4B; [7B 9F 56, 05, 05]
+10B8A; [7C A1 4F, 05, 05]
-10B4C; [7B 9F 5D, 05, 05]
+10B8B; [7C A1 56, 05, 05]
-10B4D; [7B 9F 64, 05, 05]
+10B8C; [7C A1 5D, 05, 05]
-10B4E; [7B 9F 6B, 05, 05]
+10B8D; [7C A1 64, 05, 05]
-10B4F; [7B 9F 72, 05, 05]
+10B8E; [7C A1 6B, 05, 05]
-10B50; [7B 9F 79, 05, 05]
+10B8F; [7C A1 72, 05, 05]
-10B51; [7B 9F 80, 05, 05]
+10B90; [7C A1 79, 05, 05]
-10B52; [7B 9F 87, 05, 05]
+10B91; [7C A1 80, 05, 05]
-10B53; [7B 9F 8E, 05, 05]
+FDD1 10AD8; [7C A2 02, 05, 05] # Manichaean first primary (compressible)
-10B54; [7B 9F 95, 05, 05]
+10AC0; [7C A2 09, 05, 05]
-10B55; [7B 9F 9C, 05, 05]
+10AC1; [7C A2 10, 05, 05]
-FDD1 10B60; [7B A0 02, 05, 05] # Inscriptional Pahlavi first primary (compressible)
+10AC2; [7C A2 17, 05, 05]
-10B60; [7B A0 09, 05, 05]
+10AC3; [7C A2 1E, 05, 05]
-10B61; [7B A0 10, 05, 05]
+10AC4; [7C A2 25, 05, 05]
-10B62; [7B A0 17, 05, 05]
+10AC5; [7C A2 2C, 05, 05]
-10B63; [7B A0 1E, 05, 05]
+10AC6; [7C A2 33, 05, 05]
-10B64; [7B A0 25, 05, 05]
+10AC7; [7C A4, 05, 05]
+10AC8; [7C A4, 70, 05]
-10B65; [7B A0 2C, 05, 05]
+10AC9; [7C A6 02, 05, 05]
-10B66; [7B A0 33, 05, 05]
+10ACA; [7C A6 09, 05, 05]
-10B67; [7B A0 3A, 05, 05]
+10ACB; [7C A6 10, 05, 05]
-10B68; [7B A0 41, 05, 05]
+10ACC; [7C A6 17, 05, 05]
-10B69; [7B A0 48, 05, 05]
+10ACD; [7C A6 1E, 05, 05]
-10B6A; [7B A0 4F, 05, 05]
+10ACE; [7C A6 25, 05, 05]
-10B6B; [7B A0 56, 05, 05]
+10ACF; [7C A6 2C, 05, 05]
-10B6C; [7B A0 5D, 05, 05]
+10AD0; [7C A6 33, 05, 05]
-10B6D; [7B A0 64, 05, 05]
+10AD1; [7C A6 3A, 05, 05]
-10B6E; [7B A0 6B, 05, 05]
+10AD2; [7C A6 41, 05, 05]
-10B6F; [7B A0 72, 05, 05]
+10AD3; [7C A6 48, 05, 05]
-10B70; [7B A0 79, 05, 05]
+10AD4; [7C A6 4F, 05, 05]
-10B71; [7B A0 80, 05, 05]
+10AD5; [7C A6 56, 05, 05]
-10B72; [7B A0 87, 05, 05]
+10AD6; [7C A6 5D, 05, 05]
-FDD1 10B8F; [7B A1 02, 05, 05] # Psalter_Pahlavi first primary (compressible)
+10AD7; [7C A6 64, 05, 05]
-10B80; [7B A1 09, 05, 05]
+10AD8; [7C A6 6B, 05, 05]
-10B81; [7B A1 10, 05, 05]
+10AD9; [7C A6 72, 05, 05]
-10B82; [7B A1 17, 05, 05]
+10ADA; [7C A6 79, 05, 05]
-10B83; [7B A1 1E, 05, 05]
+10ADB; [7C A6 80, 05, 05]
-10B84; [7B A1 25, 05, 05]
+10ADC; [7C A6 87, 05, 05]
-10B85; [7B A1 2C, 05, 05]
+10ADD; [7C A6 8E, 05, 05]
-10B86; [7B A1 33, 05, 05]
+10ADE; [7C A6 95, 05, 05]
-10B87; [7B A1 3A, 05, 05]
+10ADF; [7C A6 9C, 05, 05]
-10B88; [7B A1 41, 05, 05]
+10AE0; [7C A6 A3, 05, 05]
-10B89; [7B A1 48, 05, 05]
+10AE1; [7C A6 AA, 05, 05]
-10B8A; [7B A1 4F, 05, 05]
+10AE2; [7C A6 B1, 05, 05]
-10B8B; [7B A1 56, 05, 05]
+10AE3; [7C A6 B8, 05, 05]
-10B8C; [7B A1 5D, 05, 05]
+10AE4; [7C A6 BF, 05, 05]
-10B8D; [7B A1 64, 05, 05]
+FDD1 10F19; [7C A7 02, 05, 05] # Old_Sogdian first primary (compressible)
-10B8E; [7B A1 6B, 05, 05]
+10F00; [7C A9, 05, 05]
+10F01; [7C A9, 05, 20]
-10B8F; [7B A1 72, 05, 05]
+10F02; [7C AB, 05, 05]
+10F03; [7C AB, 05, 20]
-10B90; [7B A1 79, 05, 05]
+10F04; [7C AD, 05, 05]
-10B91; [7B A1 80, 05, 05]
+10F05; [7C AF, 05, 05]
+10F06; [7C AF, 05, 20]
-FDD1 10AD8; [7B A2 02, 05, 05] # Manichaean first primary (compressible)
+10F07; [7C B1 02, 05, 05]
-10AC0; [7B A2 09, 05, 05]
+10F08; [7C B1 09, 05, 05]
-10AC1; [7B A2 10, 05, 05]
+10F09; [7C B1 10, 05, 05]
-10AC2; [7B A2 17, 05, 05]
+10F0A; [7C B1 17, 05, 05]
-10AC3; [7B A2 1E, 05, 05]
+10F0B; [7C B1 1E, 05, 05]
-10AC4; [7B A2 25, 05, 05]
+10F0C; [7C B1 25, 05, 05]
-10AC5; [7B A2 2C, 05, 05]
+10F0D; [7C B1 2C, 05, 05]
-10AC6; [7B A2 33, 05, 05]
+10F0E; [7C B3, 05, 05]
+10F0F; [7C B3, 05, 20]
+10F10; [7C B3, 70, 05]
-10AC7; [7B A4, 05, 05]
-10AC8; [7B A4, 70, 05]
+10F11; [7C B5, 05, 05]
-10AC9; [7B A6 02, 05, 05]
+10F12; [7C B7, 05, 05]
+10F13; [7C B7, 70, 05]
+10F27; [7C B7, 05, 20][7C BD, 05, 20]
-10ACA; [7B A6 09, 05, 05]
+10F14; [7C B9, 05, 05]
-10ACB; [7B A6 10, 05, 05]
+10F15; [7C BB, 05, 05]
+10F16; [7C BB, 05, 20]
+10F17; [7C BB, 70, 05]
-10ACC; [7B A6 17, 05, 05]
+10F18; [7C BD, 05, 05]
-10ACD; [7B A6 1E, 05, 05]
+10F19; [7C BF, 05, 05]
-10ACE; [7B A6 25, 05, 05]
+10F1A; [7C C1, 05, 05]
+10F1B; [7C C1, 05, 20]
+10F1C; [7C C1, 70, 05]
-10ACF; [7B A6 2C, 05, 05]
+FDD1 10F42; [7C C3 02, 05, 05] # Sogdian first primary (compressible)
-10AD0; [7B A6 33, 05, 05]
+10F30; [7C C3 09, 05, 05]
-10AD1; [7B A6 3A, 05, 05]
+10F31; [7C C3 10, 05, 05]
-10AD2; [7B A6 41, 05, 05]
+10F32; [7C C3 17, 05, 05]
-10AD3; [7B A6 48, 05, 05]
+10F33; [7C C3 1E, 05, 05]
-10AD4; [7B A6 4F, 05, 05]
+10F34; [7C C3 25, 05, 05]
-10AD5; [7B A6 56, 05, 05]
+10F35; [7C C3 2C, 05, 05]
-10AD6; [7B A6 5D, 05, 05]
+10F36; [7C C3 33, 05, 05]
-10AD7; [7B A6 64, 05, 05]
+10F37; [7C C3 3A, 05, 05]
-10AD8; [7B A6 6B, 05, 05]
+10F38; [7C C3 41, 05, 05]
-10AD9; [7B A6 72, 05, 05]
+10F39; [7C C3 48, 05, 05]
-10ADA; [7B A6 79, 05, 05]
+10F3A; [7C C3 4F, 05, 05]
-10ADB; [7B A6 80, 05, 05]
+10F3B; [7C C3 56, 05, 05]
-10ADC; [7B A6 87, 05, 05]
+10F3C; [7C C3 5D, 05, 05]
-10ADD; [7B A6 8E, 05, 05]
+10F3D; [7C C3 64, 05, 05]
-10ADE; [7B A6 95, 05, 05]
+10F3E; [7C C3 6B, 05, 05]
-10ADF; [7B A6 9C, 05, 05]
+10F3F; [7C C3 72, 05, 05]
-10AE0; [7B A6 A3, 05, 05]
+10F40; [7C C3 79, 05, 05]
-10AE1; [7B A6 AA, 05, 05]
+10F41; [7C C5, 05, 05]
+10F45; [7C C5, 70, 05]
-10AE2; [7B A6 B1, 05, 05]
+10F42; [7C C7 02, 05, 05]
-10AE3; [7B A6 B8, 05, 05]
+10F43; [7C C7 09, 05, 05]
-10AE4; [7B A6 BF, 05, 05]
+10F44; [7C C7 10, 05, 05]
-FDD1 10380; [7B A7 02, 05, 05] # UGARITIC first primary (compressible)
+FDD1 10380; [7C C8 02, 05, 05] # UGARITIC first primary (compressible)
-10380; [7B A7 09, 05, 05]
+10380; [7C C8 09, 05, 05]
-10381; [7B A7 10, 05, 05]
+10381; [7C C8 10, 05, 05]
-10382; [7B A7 17, 05, 05]
+10382; [7C C8 17, 05, 05]
-10383; [7B A7 1E, 05, 05]
+10383; [7C C8 1E, 05, 05]
-10384; [7B A7 25, 05, 05]
+10384; [7C C8 25, 05, 05]
-10385; [7B A7 2C, 05, 05]
+10385; [7C C8 2C, 05, 05]
-10386; [7B A7 33, 05, 05]
+10386; [7C C8 33, 05, 05]
-10387; [7B A7 3A, 05, 05]
+10387; [7C C8 3A, 05, 05]
-10388; [7B A7 41, 05, 05]
+10388; [7C C8 41, 05, 05]
-10389; [7B A7 48, 05, 05]
+10389; [7C C8 48, 05, 05]
-1038A; [7B A7 4F, 05, 05]
+1038A; [7C C8 4F, 05, 05]
-1038B; [7B A7 56, 05, 05]
+1038B; [7C C8 56, 05, 05]
-1038C; [7B A7 5D, 05, 05]
+1038C; [7C C8 5D, 05, 05]
-1038D; [7B A7 64, 05, 05]
+1038D; [7C C8 64, 05, 05]
-1038E; [7B A7 6B, 05, 05]
+1038E; [7C C8 6B, 05, 05]
-1038F; [7B A7 72, 05, 05]
+1038F; [7C C8 72, 05, 05]
-10390; [7B A7 79, 05, 05]
+10390; [7C C8 79, 05, 05]
-10391; [7B A7 80, 05, 05]
+10391; [7C C8 80, 05, 05]
-10392; [7B A7 87, 05, 05]
+10392; [7C C8 87, 05, 05]
-10393; [7B A7 8E, 05, 05]
+10393; [7C C8 8E, 05, 05]
-10394; [7B A7 95, 05, 05]
+10394; [7C C8 95, 05, 05]
-10395; [7B A7 9C, 05, 05]
+10395; [7C C8 9C, 05, 05]
-10396; [7B A7 A3, 05, 05]
+10396; [7C C8 A3, 05, 05]
-10397; [7B A7 AA, 05, 05]
+10397; [7C C8 AA, 05, 05]
-10398; [7B A7 B1, 05, 05]
+10398; [7C C8 B1, 05, 05]
-10399; [7B A7 B8, 05, 05]
+10399; [7C C8 B8, 05, 05]
-1039A; [7B A7 BF, 05, 05]
+1039A; [7C C8 BF, 05, 05]
-1039B; [7B A7 C6, 05, 05]
+1039B; [7C C8 C6, 05, 05]
-1039C; [7B A7 CD, 05, 05]
+1039C; [7C C8 CD, 05, 05]
-1039D; [7B A7 D4, 05, 05]
+1039D; [7C C8 D4, 05, 05]
-FDD1 103A0; [7B A8 02, 05, 05] # OLD_PERSIAN first primary (compressible)
+FDD1 103A0; [7C C9 02, 05, 05] # OLD_PERSIAN first primary (compressible)
-103A0; [7B A8 09, 05, 05]
+103A0; [7C C9 09, 05, 05]
-103A1; [7B A8 10, 05, 05]
+103A1; [7C C9 10, 05, 05]
-103A2; [7B A8 17, 05, 05]
+103A2; [7C C9 17, 05, 05]
-103A3; [7B A8 1E, 05, 05]
+103A3; [7C C9 1E, 05, 05]
-103A4; [7B A8 25, 05, 05]
+103A4; [7C C9 25, 05, 05]
-103A5; [7B A8 2C, 05, 05]
+103A5; [7C C9 2C, 05, 05]
-103A6; [7B A8 33, 05, 05]
+103A6; [7C C9 33, 05, 05]
-103A7; [7B A8 3A, 05, 05]
+103A7; [7C C9 3A, 05, 05]
-103A8; [7B A8 41, 05, 05]
+103A8; [7C C9 41, 05, 05]
-103A9; [7B A8 48, 05, 05]
+103A9; [7C C9 48, 05, 05]
-103AA; [7B A8 4F, 05, 05]
+103AA; [7C C9 4F, 05, 05]
-103AB; [7B A8 56, 05, 05]
+103AB; [7C C9 56, 05, 05]
-103AC; [7B A8 5D, 05, 05]
+103AC; [7C C9 5D, 05, 05]
-103AD; [7B A8 64, 05, 05]
+103AD; [7C C9 64, 05, 05]
-103AE; [7B A8 6B, 05, 05]
+103AE; [7C C9 6B, 05, 05]
-103AF; [7B A8 72, 05, 05]
+103AF; [7C C9 72, 05, 05]
-103B0; [7B A8 79, 05, 05]
+103B0; [7C C9 79, 05, 05]
-103B1; [7B A8 80, 05, 05]
+103B1; [7C C9 80, 05, 05]
-103B2; [7B A8 87, 05, 05]
+103B2; [7C C9 87, 05, 05]
-103B3; [7B A8 8E, 05, 05]
+103B3; [7C C9 8E, 05, 05]
-103B4; [7B A8 95, 05, 05]
+103B4; [7C C9 95, 05, 05]
-103B5; [7B A8 9C, 05, 05]
+103B5; [7C C9 9C, 05, 05]
-103B6; [7B A8 A3, 05, 05]
+103B6; [7C C9 A3, 05, 05]
-103B7; [7B A8 AA, 05, 05]
+103B7; [7C C9 AA, 05, 05]
-103B8; [7B A8 B1, 05, 05]
+103B8; [7C C9 B1, 05, 05]
-103B9; [7B A8 B8, 05, 05]
+103B9; [7C C9 B8, 05, 05]
-103BA; [7B A8 BF, 05, 05]
+103BA; [7C C9 BF, 05, 05]
-103BB; [7B A8 C6, 05, 05]
+103BB; [7C C9 C6, 05, 05]
-103BC; [7B A8 CD, 05, 05]
+103BC; [7C C9 CD, 05, 05]
-103BD; [7B A8 D4, 05, 05]
+103BD; [7C C9 D4, 05, 05]
-103BE; [7B A8 DB, 05, 05]
+103BE; [7C C9 DB, 05, 05]
-103BF; [7B A8 E2, 05, 05]
+103BF; [7C C9 E2, 05, 05]
-103C0; [7B A8 E9, 05, 05]
+103C0; [7C C9 E9, 05, 05]
-103C1; [7B A8 F0, 05, 05]
+103C1; [7C C9 F0, 05, 05]
-103C2; [7B A8 F7, 05, 05]
+103C2; [7C C9 F7, 05, 05]
-103C3; [7B A8 FE, 05, 05]
+103C3; [7C C9 FE, 05, 05]
-103C8; [7B A9 07, 05, 05]
+103C8; [7C CA 07, 05, 05]
-103C9; [7B A9 0E, 05, 05]
+103C9; [7C CA 0E, 05, 05]
-103CA; [7B A9 15, 05, 05]
+103CA; [7C CA 15, 05, 05]
-103CB; [7B A9 1C, 05, 05]
+103CB; [7C CA 1C, 05, 05]
-103CC; [7B A9 23, 05, 05]
+103CC; [7C CA 23, 05, 05]
-103CD; [7B A9 2A, 05, 05]
+103CD; [7C CA 2A, 05, 05]
-103CE; [7B A9 31, 05, 05]
+103CE; [7C CA 31, 05, 05]
-103CF; [7B A9 38, 05, 05]
+103CF; [7C CA 38, 05, 05]
-FDD1 12000; [7B AA 02, 05, 05] # Cuneiform first primary (compressible)
+FDD1 12000; [7C CB 02, 05, 05] # Cuneiform first primary (compressible)
-12000; [7B AA 09, 05, 05]
+12000; [7C CB 09, 05, 05]
-12001; [7B AA 10, 05, 05]
+12001; [7C CB 10, 05, 05]
-12002; [7B AA 17, 05, 05]
+12002; [7C CB 17, 05, 05]
-12003; [7B AA 1E, 05, 05]
+12003; [7C CB 1E, 05, 05]
-12004; [7B AA 25, 05, 05]
+12004; [7C CB 25, 05, 05]
-12005; [7B AA 2C, 05, 05]
+12005; [7C CB 2C, 05, 05]
-12006; [7B AA 33, 05, 05]
+12006; [7C CB 33, 05, 05]
-12007; [7B AA 3A, 05, 05]
+12007; [7C CB 3A, 05, 05]
-12008; [7B AA 41, 05, 05]
+12008; [7C CB 41, 05, 05]
-12009; [7B AA 48, 05, 05]
+12009; [7C CB 48, 05, 05]
-1200A; [7B AA 4F, 05, 05]
+1200A; [7C CB 4F, 05, 05]
-1200B; [7B AA 56, 05, 05]
+1200B; [7C CB 56, 05, 05]
-1200C; [7B AA 5D, 05, 05]
+1200C; [7C CB 5D, 05, 05]
-1200D; [7B AA 64, 05, 05]
+1200D; [7C CB 64, 05, 05]
-1200E; [7B AA 6B, 05, 05]
+1200E; [7C CB 6B, 05, 05]
-1200F; [7B AA 72, 05, 05]
+1200F; [7C CB 72, 05, 05]
-12010; [7B AA 79, 05, 05]
+12010; [7C CB 79, 05, 05]
-12011; [7B AA 80, 05, 05]
+12011; [7C CB 80, 05, 05]
-12012; [7B AA 87, 05, 05]
+12012; [7C CB 87, 05, 05]
-12013; [7B AA 8E, 05, 05]
+12013; [7C CB 8E, 05, 05]
-12014; [7B AA 95, 05, 05]
+12014; [7C CB 95, 05, 05]
-12015; [7B AA 9C, 05, 05]
+12015; [7C CB 9C, 05, 05]
-12016; [7B AA A3, 05, 05]
+12016; [7C CB A3, 05, 05]
-12017; [7B AA AA, 05, 05]
+12017; [7C CB AA, 05, 05]
-12018; [7B AA B1, 05, 05]
+12018; [7C CB B1, 05, 05]
-12019; [7B AA B8, 05, 05]
+12019; [7C CB B8, 05, 05]
-1201A; [7B AA BF, 05, 05]
+1201A; [7C CB BF, 05, 05]
-1201B; [7B AA C6, 05, 05]
+1201B; [7C CB C6, 05, 05]
-1201C; [7B AA CD, 05, 05]
+1201C; [7C CB CD, 05, 05]
-1201D; [7B AA D4, 05, 05]
+1201D; [7C CB D4, 05, 05]
-1201E; [7B AA DB, 05, 05]
+1201E; [7C CB DB, 05, 05]
-1201F; [7B AA E2, 05, 05]
+1201F; [7C CB E2, 05, 05]
-12020; [7B AA E9, 05, 05]
+12020; [7C CB E9, 05, 05]
-12021; [7B AA F0, 05, 05]
+12021; [7C CB F0, 05, 05]
-12022; [7B AA F7, 05, 05]
+12022; [7C CB F7, 05, 05]
-12023; [7B AA FE, 05, 05]
+12023; [7C CB FE, 05, 05]
-12024; [7B AB 07, 05, 05]
+12024; [7C CC 07, 05, 05]
-12025; [7B AB 0E, 05, 05]
+12025; [7C CC 0E, 05, 05]
-12026; [7B AB 15, 05, 05]
+12026; [7C CC 15, 05, 05]
-12027; [7B AB 1C, 05, 05]
+12027; [7C CC 1C, 05, 05]
-12028; [7B AB 23, 05, 05]
+12028; [7C CC 23, 05, 05]
-12029; [7B AB 2A, 05, 05]
+12029; [7C CC 2A, 05, 05]
-1202A; [7B AB 31, 05, 05]
+1202A; [7C CC 31, 05, 05]
-1202B; [7B AB 38, 05, 05]
+1202B; [7C CC 38, 05, 05]
-1202C; [7B AB 3F, 05, 05]
+1202C; [7C CC 3F, 05, 05]
-1202D; [7B AB 46, 05, 05]
+1202D; [7C CC 46, 05, 05]
-1202E; [7B AB 4D, 05, 05]
+1202E; [7C CC 4D, 05, 05]
-1202F; [7B AB 54, 05, 05]
+1202F; [7C CC 54, 05, 05]
-12030; [7B AB 5B, 05, 05]
+12030; [7C CC 5B, 05, 05]
-12031; [7B AB 62, 05, 05]
+12031; [7C CC 62, 05, 05]
-12032; [7B AB 69, 05, 05]
+12032; [7C CC 69, 05, 05]
-12033; [7B AB 70, 05, 05]
+12033; [7C CC 70, 05, 05]
-12034; [7B AB 77, 05, 05]
+12034; [7C CC 77, 05, 05]
-12035; [7B AB 7E, 05, 05]
+12035; [7C CC 7E, 05, 05]
-12036; [7B AB 85, 05, 05]
+12036; [7C CC 85, 05, 05]
-12037; [7B AB 8C, 05, 05]
+12037; [7C CC 8C, 05, 05]
-12038; [7B AB 93, 05, 05]
+12038; [7C CC 93, 05, 05]
-12039; [7B AB 9A, 05, 05]
+12039; [7C CC 9A, 05, 05]
-1203A; [7B AB A1, 05, 05]
+1203A; [7C CC A1, 05, 05]
-1203B; [7B AB A8, 05, 05]
+1203B; [7C CC A8, 05, 05]
-1203C; [7B AB AF, 05, 05]
+1203C; [7C CC AF, 05, 05]
-1203D; [7B AB B6, 05, 05]
+1203D; [7C CC B6, 05, 05]
-1203E; [7B AB BD, 05, 05]
+1203E; [7C CC BD, 05, 05]
-1203F; [7B AB C4, 05, 05]
+1203F; [7C CC C4, 05, 05]
-12040; [7B AB CB, 05, 05]
+12040; [7C CC CB, 05, 05]
-12041; [7B AB D2, 05, 05]
+12041; [7C CC D2, 05, 05]
-12042; [7B AB D9, 05, 05]
+12042; [7C CC D9, 05, 05]
-12043; [7B AB E0, 05, 05]
+12043; [7C CC E0, 05, 05]
-12044; [7B AB E7, 05, 05]
+12044; [7C CC E7, 05, 05]
-12045; [7B AB EE, 05, 05]
+12045; [7C CC EE, 05, 05]
-12046; [7B AB F5, 05, 05]
+12046; [7C CC F5, 05, 05]
-12047; [7B AB FC, 05, 05]
+12047; [7C CC FC, 05, 05]
-12048; [7B AC 05, 05, 05]
+12048; [7C CD 05, 05, 05]
-12049; [7B AC 0C, 05, 05]
+12049; [7C CD 0C, 05, 05]
-1204A; [7B AC 13, 05, 05]
+1204A; [7C CD 13, 05, 05]
-1204B; [7B AC 1A, 05, 05]
+1204B; [7C CD 1A, 05, 05]
-1204C; [7B AC 21, 05, 05]
+1204C; [7C CD 21, 05, 05]
-1204D; [7B AC 28, 05, 05]
+1204D; [7C CD 28, 05, 05]
-1204E; [7B AC 2F, 05, 05]
+1204E; [7C CD 2F, 05, 05]
-1204F; [7B AC 36, 05, 05]
+1204F; [7C CD 36, 05, 05]
-12050; [7B AC 3D, 05, 05]
+12050; [7C CD 3D, 05, 05]
-12051; [7B AC 44, 05, 05]
+12051; [7C CD 44, 05, 05]
-12052; [7B AC 4B, 05, 05]
+12052; [7C CD 4B, 05, 05]
-12053; [7B AC 52, 05, 05]
+12053; [7C CD 52, 05, 05]
-12054; [7B AC 59, 05, 05]
+12054; [7C CD 59, 05, 05]
-12055; [7B AC 60, 05, 05]
+12055; [7C CD 60, 05, 05]
-12056; [7B AC 67, 05, 05]
+12056; [7C CD 67, 05, 05]
-12057; [7B AC 6E, 05, 05]
+12057; [7C CD 6E, 05, 05]
-12058; [7B AC 75, 05, 05]
+12058; [7C CD 75, 05, 05]
-12059; [7B AC 7C, 05, 05]
+12059; [7C CD 7C, 05, 05]
-1205A; [7B AC 83, 05, 05]
+1205A; [7C CD 83, 05, 05]
-1205B; [7B AC 8A, 05, 05]
+1205B; [7C CD 8A, 05, 05]
-1205C; [7B AC 91, 05, 05]
+1205C; [7C CD 91, 05, 05]
-1205D; [7B AC 98, 05, 05]
+1205D; [7C CD 98, 05, 05]
-1205E; [7B AC 9F, 05, 05]
+1205E; [7C CD 9F, 05, 05]
-1205F; [7B AC A6, 05, 05]
+1205F; [7C CD A6, 05, 05]
-12060; [7B AC AD, 05, 05]
+12060; [7C CD AD, 05, 05]
-12061; [7B AC B4, 05, 05]
+12061; [7C CD B4, 05, 05]
-12062; [7B AC BB, 05, 05]
+12062; [7C CD BB, 05, 05]
-12063; [7B AC C2, 05, 05]
+12063; [7C CD C2, 05, 05]
-12064; [7B AC C9, 05, 05]
+12064; [7C CD C9, 05, 05]
-12065; [7B AC D0, 05, 05]
+12065; [7C CD D0, 05, 05]
-12066; [7B AC D7, 05, 05]
+12066; [7C CD D7, 05, 05]
-12067; [7B AC DE, 05, 05]
+12067; [7C CD DE, 05, 05]
-12068; [7B AC E5, 05, 05]
+12068; [7C CD E5, 05, 05]
-12069; [7B AC EC, 05, 05]
+12069; [7C CD EC, 05, 05]
-1206A; [7B AC F3, 05, 05]
+1206A; [7C CD F3, 05, 05]
-1206B; [7B AC FA, 05, 05]
+1206B; [7C CD FA, 05, 05]
-1206C; [7B AD 03, 05, 05]
+1206C; [7C CE 03, 05, 05]
-1206D; [7B AD 0A, 05, 05]
+1206D; [7C CE 0A, 05, 05]
-1206E; [7B AD 11, 05, 05]
+1206E; [7C CE 11, 05, 05]
-1206F; [7B AD 18, 05, 05]
+1206F; [7C CE 18, 05, 05]
-12070; [7B AD 1F, 05, 05]
+12070; [7C CE 1F, 05, 05]
-12071; [7B AD 26, 05, 05]
+12071; [7C CE 26, 05, 05]
-12072; [7B AD 2D, 05, 05]
+12072; [7C CE 2D, 05, 05]
-12073; [7B AD 34, 05, 05]
+12073; [7C CE 34, 05, 05]
-12074; [7B AD 3B, 05, 05]
+12074; [7C CE 3B, 05, 05]
-12075; [7B AD 42, 05, 05]
+12075; [7C CE 42, 05, 05]
-12076; [7B AD 49, 05, 05]
+12076; [7C CE 49, 05, 05]
-12077; [7B AD 50, 05, 05]
+12077; [7C CE 50, 05, 05]
-12078; [7B AD 57, 05, 05]
+12078; [7C CE 57, 05, 05]
-12079; [7B AD 5E, 05, 05]
+12079; [7C CE 5E, 05, 05]
-1207A; [7B AD 65, 05, 05]
+1207A; [7C CE 65, 05, 05]
-1207B; [7B AD 6C, 05, 05]
+1207B; [7C CE 6C, 05, 05]
-1207C; [7B AD 73, 05, 05]
+1207C; [7C CE 73, 05, 05]
-1207D; [7B AD 7A, 05, 05]
+1207D; [7C CE 7A, 05, 05]
-1207E; [7B AD 81, 05, 05]
+1207E; [7C CE 81, 05, 05]
-1207F; [7B AD 88, 05, 05]
+1207F; [7C CE 88, 05, 05]
-12080; [7B AD 8F, 05, 05]
+12080; [7C CE 8F, 05, 05]
-12081; [7B AD 96, 05, 05]
+12081; [7C CE 96, 05, 05]
-12082; [7B AD 9D, 05, 05]
+12082; [7C CE 9D, 05, 05]
-12083; [7B AD A4, 05, 05]
+12083; [7C CE A4, 05, 05]
-12084; [7B AD AB, 05, 05]
+12084; [7C CE AB, 05, 05]
-12085; [7B AD B2, 05, 05]
+12085; [7C CE B2, 05, 05]
-12086; [7B AD B9, 05, 05]
+12086; [7C CE B9, 05, 05]
-12087; [7B AD C0, 05, 05]
+12087; [7C CE C0, 05, 05]
-12088; [7B AD C7, 05, 05]
+12088; [7C CE C7, 05, 05]
-12089; [7B AD CE, 05, 05]
+12089; [7C CE CE, 05, 05]
-1208A; [7B AD D5, 05, 05]
+1208A; [7C CE D5, 05, 05]
-1208B; [7B AD DC, 05, 05]
+1208B; [7C CE DC, 05, 05]
-1208C; [7B AD E3, 05, 05]
+1208C; [7C CE E3, 05, 05]
-1208D; [7B AD EA, 05, 05]
+1208D; [7C CE EA, 05, 05]
-1208E; [7B AD F1, 05, 05]
+1208E; [7C CE F1, 05, 05]
-1208F; [7B AD F8, 05, 05]
+1208F; [7C CE F8, 05, 05]
-12090; [7B AD FF, 05, 05]
+12090; [7C CE FF, 05, 05]
-12091; [7B AE 08, 05, 05]
+12091; [7C CF 08, 05, 05]
-12092; [7B AE 0F, 05, 05]
+12092; [7C CF 0F, 05, 05]
-12093; [7B AE 16, 05, 05]
+12093; [7C CF 16, 05, 05]
-12094; [7B AE 1D, 05, 05]
+12094; [7C CF 1D, 05, 05]
-12095; [7B AE 24, 05, 05]
+12095; [7C CF 24, 05, 05]
-12096; [7B AE 2B, 05, 05]
+12096; [7C CF 2B, 05, 05]
-12097; [7B AE 32, 05, 05]
+12097; [7C CF 32, 05, 05]
-12098; [7B AE 39, 05, 05]
+12098; [7C CF 39, 05, 05]
-12099; [7B AE 40, 05, 05]
+12099; [7C CF 40, 05, 05]
-1209A; [7B AE 47, 05, 05]
+1209A; [7C CF 47, 05, 05]
-1209B; [7B AE 4E, 05, 05]
+1209B; [7C CF 4E, 05, 05]
-1209C; [7B AE 55, 05, 05]
+1209C; [7C CF 55, 05, 05]
-1209D; [7B AE 5C, 05, 05]
+1209D; [7C CF 5C, 05, 05]
-1209E; [7B AE 63, 05, 05]
+1209E; [7C CF 63, 05, 05]
-1209F; [7B AE 6A, 05, 05]
+1209F; [7C CF 6A, 05, 05]
-120A0; [7B AE 71, 05, 05]
+120A0; [7C CF 71, 05, 05]
-120A1; [7B AE 78, 05, 05]
+120A1; [7C CF 78, 05, 05]
-120A2; [7B AE 7F, 05, 05]
+120A2; [7C CF 7F, 05, 05]
-120A3; [7B AE 86, 05, 05]
+120A3; [7C CF 86, 05, 05]
-120A4; [7B AE 8D, 05, 05]
+120A4; [7C CF 8D, 05, 05]
-120A5; [7B AE 94, 05, 05]
+120A5; [7C CF 94, 05, 05]
-120A6; [7B AE 9B, 05, 05]
+120A6; [7C CF 9B, 05, 05]
-120A7; [7B AE A2, 05, 05]
+120A7; [7C CF A2, 05, 05]
-120A8; [7B AE A9, 05, 05]
+120A8; [7C CF A9, 05, 05]
-120A9; [7B AE B0, 05, 05]
+120A9; [7C CF B0, 05, 05]
-120AA; [7B AE B7, 05, 05]
+120AA; [7C CF B7, 05, 05]
-120AB; [7B AE BE, 05, 05]
+120AB; [7C CF BE, 05, 05]
-120AC; [7B AE C5, 05, 05]
+120AC; [7C CF C5, 05, 05]
-120AD; [7B AE CC, 05, 05]
+120AD; [7C CF CC, 05, 05]
-120AE; [7B AE D3, 05, 05]
+120AE; [7C CF D3, 05, 05]
-120AF; [7B AE DA, 05, 05]
+120AF; [7C CF DA, 05, 05]
-120B0; [7B AE E1, 05, 05]
+120B0; [7C CF E1, 05, 05]
-120B1; [7B AE E8, 05, 05]
+120B1; [7C CF E8, 05, 05]
-120B2; [7B AE EF, 05, 05]
+120B2; [7C CF EF, 05, 05]
-120B3; [7B AE F6, 05, 05]
+120B3; [7C CF F6, 05, 05]
-120B4; [7B AE FD, 05, 05]
+120B4; [7C CF FD, 05, 05]
-120B5; [7B AF 06, 05, 05]
+120B5; [7C D0 06, 05, 05]
-120B6; [7B AF 0D, 05, 05]
+120B6; [7C D0 0D, 05, 05]
-120B7; [7B AF 14, 05, 05]
+120B7; [7C D0 14, 05, 05]
-120B8; [7B AF 1B, 05, 05]
+120B8; [7C D0 1B, 05, 05]
-120B9; [7B AF 22, 05, 05]
+120B9; [7C D0 22, 05, 05]
-120BA; [7B AF 29, 05, 05]
+120BA; [7C D0 29, 05, 05]
-120BB; [7B AF 30, 05, 05]
+120BB; [7C D0 30, 05, 05]
-120BC; [7B AF 37, 05, 05]
+120BC; [7C D0 37, 05, 05]
-120BD; [7B AF 3E, 05, 05]
+120BD; [7C D0 3E, 05, 05]
-120BE; [7B AF 45, 05, 05]
+120BE; [7C D0 45, 05, 05]
-120BF; [7B AF 4C, 05, 05]
+120BF; [7C D0 4C, 05, 05]
-120C0; [7B AF 53, 05, 05]
+120C0; [7C D0 53, 05, 05]
-120C1; [7B AF 5A, 05, 05]
+120C1; [7C D0 5A, 05, 05]
-120C2; [7B AF 61, 05, 05]
+120C2; [7C D0 61, 05, 05]
-120C3; [7B AF 68, 05, 05]
+120C3; [7C D0 68, 05, 05]
-120C4; [7B AF 6F, 05, 05]
+120C4; [7C D0 6F, 05, 05]
-120C5; [7B AF 76, 05, 05]
+120C5; [7C D0 76, 05, 05]
-120C6; [7B AF 7D, 05, 05]
+120C6; [7C D0 7D, 05, 05]
-120C7; [7B AF 84, 05, 05]
+120C7; [7C D0 84, 05, 05]
-120C8; [7B AF 8B, 05, 05]
+120C8; [7C D0 8B, 05, 05]
-120C9; [7B AF 92, 05, 05]
+120C9; [7C D0 92, 05, 05]
-120CA; [7B AF 99, 05, 05]
+120CA; [7C D0 99, 05, 05]
-120CB; [7B AF A0, 05, 05]
+120CB; [7C D0 A0, 05, 05]
-120CC; [7B AF A7, 05, 05]
+120CC; [7C D0 A7, 05, 05]
-120CD; [7B AF AE, 05, 05]
+120CD; [7C D0 AE, 05, 05]
-120CE; [7B AF B5, 05, 05]
+120CE; [7C D0 B5, 05, 05]
-120CF; [7B AF BC, 05, 05]
+120CF; [7C D0 BC, 05, 05]
-120D0; [7B AF C3, 05, 05]
+120D0; [7C D0 C3, 05, 05]
-120D1; [7B AF CA, 05, 05]
+120D1; [7C D0 CA, 05, 05]
-120D2; [7B AF D1, 05, 05]
+120D2; [7C D0 D1, 05, 05]
-120D3; [7B AF D8, 05, 05]
+120D3; [7C D0 D8, 05, 05]
-120D4; [7B AF DF, 05, 05]
+120D4; [7C D0 DF, 05, 05]
-120D5; [7B AF E6, 05, 05]
+120D5; [7C D0 E6, 05, 05]
-120D6; [7B AF ED, 05, 05]
+120D6; [7C D0 ED, 05, 05]
-120D7; [7B AF F4, 05, 05]
+120D7; [7C D0 F4, 05, 05]
-120D8; [7B AF FB, 05, 05]
+120D8; [7C D0 FB, 05, 05]
-120D9; [7B B0 04, 05, 05]
+120D9; [7C D1 04, 05, 05]
-120DA; [7B B0 0B, 05, 05]
+120DA; [7C D1 0B, 05, 05]
-120DB; [7B B0 12, 05, 05]
+120DB; [7C D1 12, 05, 05]
-120DC; [7B B0 19, 05, 05]
+120DC; [7C D1 19, 05, 05]
-120DD; [7B B0 20, 05, 05]
+120DD; [7C D1 20, 05, 05]
-120DE; [7B B0 27, 05, 05]
+120DE; [7C D1 27, 05, 05]
-120DF; [7B B0 2E, 05, 05]
+120DF; [7C D1 2E, 05, 05]
-120E0; [7B B0 35, 05, 05]
+120E0; [7C D1 35, 05, 05]
-120E1; [7B B0 3C, 05, 05]
+120E1; [7C D1 3C, 05, 05]
-120E2; [7B B0 43, 05, 05]
+120E2; [7C D1 43, 05, 05]
-120E3; [7B B0 4A, 05, 05]
+120E3; [7C D1 4A, 05, 05]
-120E4; [7B B0 51, 05, 05]
+120E4; [7C D1 51, 05, 05]
-120E5; [7B B0 58, 05, 05]
+120E5; [7C D1 58, 05, 05]
-120E6; [7B B0 5F, 05, 05]
+120E6; [7C D1 5F, 05, 05]
-120E7; [7B B0 66, 05, 05]
+120E7; [7C D1 66, 05, 05]
-120E8; [7B B0 6D, 05, 05]
+120E8; [7C D1 6D, 05, 05]
-120E9; [7B B0 74, 05, 05]
+120E9; [7C D1 74, 05, 05]
-120EA; [7B B0 7B, 05, 05]
+120EA; [7C D1 7B, 05, 05]
-120EB; [7B B0 82, 05, 05]
+120EB; [7C D1 82, 05, 05]
-120EC; [7B B0 89, 05, 05]
+120EC; [7C D1 89, 05, 05]
-120ED; [7B B0 90, 05, 05]
+120ED; [7C D1 90, 05, 05]
-120EE; [7B B0 97, 05, 05]
+120EE; [7C D1 97, 05, 05]
-120EF; [7B B0 9E, 05, 05]
+120EF; [7C D1 9E, 05, 05]
-120F0; [7B B0 A5, 05, 05]
+120F0; [7C D1 A5, 05, 05]
-120F1; [7B B0 AC, 05, 05]
+120F1; [7C D1 AC, 05, 05]
-120F2; [7B B0 B3, 05, 05]
+120F2; [7C D1 B3, 05, 05]
-120F3; [7B B0 BA, 05, 05]
+120F3; [7C D1 BA, 05, 05]
-120F4; [7B B0 C1, 05, 05]
+120F4; [7C D1 C1, 05, 05]
-120F5; [7B B0 C8, 05, 05]
+120F5; [7C D1 C8, 05, 05]
-120F6; [7B B0 CF, 05, 05]
+120F6; [7C D1 CF, 05, 05]
-120F7; [7B B0 D6, 05, 05]
+120F7; [7C D1 D6, 05, 05]
-120F8; [7B B0 DD, 05, 05]
+120F8; [7C D1 DD, 05, 05]
-120F9; [7B B0 E4, 05, 05]
+120F9; [7C D1 E4, 05, 05]
-120FA; [7B B0 EB, 05, 05]
+120FA; [7C D1 EB, 05, 05]
-120FB; [7B B0 F2, 05, 05]
+120FB; [7C D1 F2, 05, 05]
-120FC; [7B B0 F9, 05, 05]
+120FC; [7C D1 F9, 05, 05]
-120FD; [7B B1 02, 05, 05]
+120FD; [7C D2 02, 05, 05]
-120FE; [7B B1 09, 05, 05]
+120FE; [7C D2 09, 05, 05]
-120FF; [7B B1 10, 05, 05]
+120FF; [7C D2 10, 05, 05]
-12100; [7B B1 17, 05, 05]
+12100; [7C D2 17, 05, 05]
-12101; [7B B1 1E, 05, 05]
+12101; [7C D2 1E, 05, 05]
-12102; [7B B1 25, 05, 05]
+12102; [7C D2 25, 05, 05]
-12103; [7B B1 2C, 05, 05]
+12103; [7C D2 2C, 05, 05]
-12104; [7B B1 33, 05, 05]
+12104; [7C D2 33, 05, 05]
-12105; [7B B1 3A, 05, 05]
+12105; [7C D2 3A, 05, 05]
-12106; [7B B1 41, 05, 05]
+12106; [7C D2 41, 05, 05]
-12107; [7B B1 48, 05, 05]
+12107; [7C D2 48, 05, 05]
-12108; [7B B1 4F, 05, 05]
+12108; [7C D2 4F, 05, 05]
-12109; [7B B1 56, 05, 05]
+12109; [7C D2 56, 05, 05]
-1210A; [7B B1 5D, 05, 05]
+1210A; [7C D2 5D, 05, 05]
-1210B; [7B B1 64, 05, 05]
+1210B; [7C D2 64, 05, 05]
-1210C; [7B B1 6B, 05, 05]
+1210C; [7C D2 6B, 05, 05]
-1210D; [7B B1 72, 05, 05]
+1210D; [7C D2 72, 05, 05]
-1210E; [7B B1 79, 05, 05]
+1210E; [7C D2 79, 05, 05]
-1210F; [7B B1 80, 05, 05]
+1210F; [7C D2 80, 05, 05]
-12110; [7B B1 87, 05, 05]
+12110; [7C D2 87, 05, 05]
-12111; [7B B1 8E, 05, 05]
+12111; [7C D2 8E, 05, 05]
-12112; [7B B1 95, 05, 05]
+12112; [7C D2 95, 05, 05]
-12113; [7B B1 9C, 05, 05]
+12113; [7C D2 9C, 05, 05]
-12114; [7B B1 A3, 05, 05]
+12114; [7C D2 A3, 05, 05]
-12115; [7B B1 AA, 05, 05]
+12115; [7C D2 AA, 05, 05]
-12116; [7B B1 B1, 05, 05]
+12116; [7C D2 B1, 05, 05]
-12117; [7B B1 B8, 05, 05]
+12117; [7C D2 B8, 05, 05]
-12118; [7B B1 BF, 05, 05]
+12118; [7C D2 BF, 05, 05]
-12119; [7B B1 C6, 05, 05]
+12119; [7C D2 C6, 05, 05]
-1211A; [7B B1 CD, 05, 05]
+1211A; [7C D2 CD, 05, 05]
-1211B; [7B B1 D4, 05, 05]
+1211B; [7C D2 D4, 05, 05]
-1211C; [7B B1 DB, 05, 05]
+1211C; [7C D2 DB, 05, 05]
-1211D; [7B B1 E2, 05, 05]
+1211D; [7C D2 E2, 05, 05]
-1211E; [7B B1 E9, 05, 05]
+1211E; [7C D2 E9, 05, 05]
-1211F; [7B B1 F0, 05, 05]
+1211F; [7C D2 F0, 05, 05]
-12120; [7B B1 F7, 05, 05]
+12120; [7C D2 F7, 05, 05]
-12121; [7B B1 FE, 05, 05]
+12121; [7C D2 FE, 05, 05]
-12122; [7B B2 07, 05, 05]
+12122; [7C D3 07, 05, 05]
-12123; [7B B2 0E, 05, 05]
+12123; [7C D3 0E, 05, 05]
-12124; [7B B2 15, 05, 05]
+12124; [7C D3 15, 05, 05]
-12125; [7B B2 1C, 05, 05]
+12125; [7C D3 1C, 05, 05]
-12126; [7B B2 23, 05, 05]
+12126; [7C D3 23, 05, 05]
-12127; [7B B2 2A, 05, 05]
+12127; [7C D3 2A, 05, 05]
-12128; [7B B2 31, 05, 05]
+12128; [7C D3 31, 05, 05]
-12129; [7B B2 38, 05, 05]
+12129; [7C D3 38, 05, 05]
-1212A; [7B B2 3F, 05, 05]
+1212A; [7C D3 3F, 05, 05]
-1212B; [7B B2 46, 05, 05]
+1212B; [7C D3 46, 05, 05]
-1212C; [7B B2 4D, 05, 05]
+1212C; [7C D3 4D, 05, 05]
-1212D; [7B B2 54, 05, 05]
+1212D; [7C D3 54, 05, 05]
-1212E; [7B B2 5B, 05, 05]
+1212E; [7C D3 5B, 05, 05]
-1212F; [7B B2 62, 05, 05]
+1212F; [7C D3 62, 05, 05]
-12130; [7B B2 69, 05, 05]
+12130; [7C D3 69, 05, 05]
-12131; [7B B2 70, 05, 05]
+12131; [7C D3 70, 05, 05]
-12132; [7B B2 77, 05, 05]
+12132; [7C D3 77, 05, 05]
-12133; [7B B2 7E, 05, 05]
+12133; [7C D3 7E, 05, 05]
-12134; [7B B2 85, 05, 05]
+12134; [7C D3 85, 05, 05]
-12135; [7B B2 8C, 05, 05]
+12135; [7C D3 8C, 05, 05]
-12136; [7B B2 93, 05, 05]
+12136; [7C D3 93, 05, 05]
-12137; [7B B2 9A, 05, 05]
+12137; [7C D3 9A, 05, 05]
-12138; [7B B2 A1, 05, 05]
+12138; [7C D3 A1, 05, 05]
-12139; [7B B2 A8, 05, 05]
+12139; [7C D3 A8, 05, 05]
-1213A; [7B B2 AF, 05, 05]
+1213A; [7C D3 AF, 05, 05]
-1213B; [7B B2 B6, 05, 05]
+1213B; [7C D3 B6, 05, 05]
-1213C; [7B B2 BD, 05, 05]
+1213C; [7C D3 BD, 05, 05]
-1213D; [7B B2 C4, 05, 05]
+1213D; [7C D3 C4, 05, 05]
-1213E; [7B B2 CB, 05, 05]
+1213E; [7C D3 CB, 05, 05]
-1213F; [7B B2 D2, 05, 05]
+1213F; [7C D3 D2, 05, 05]
-12140; [7B B2 D9, 05, 05]
+12140; [7C D3 D9, 05, 05]
-12141; [7B B2 E0, 05, 05]
+12141; [7C D3 E0, 05, 05]
-12142; [7B B2 E7, 05, 05]
+12142; [7C D3 E7, 05, 05]
-12143; [7B B2 EE, 05, 05]
+12143; [7C D3 EE, 05, 05]
-12144; [7B B2 F5, 05, 05]
+12144; [7C D3 F5, 05, 05]
-12145; [7B B2 FC, 05, 05]
+12145; [7C D3 FC, 05, 05]
-12146; [7B B3 05, 05, 05]
+12146; [7C D4 05, 05, 05]
-12147; [7B B3 0C, 05, 05]
+12147; [7C D4 0C, 05, 05]
-12148; [7B B3 13, 05, 05]
+12148; [7C D4 13, 05, 05]
-12149; [7B B3 1A, 05, 05]
+12149; [7C D4 1A, 05, 05]
-1214A; [7B B3 21, 05, 05]
+1214A; [7C D4 21, 05, 05]
-1214B; [7B B3 28, 05, 05]
+1214B; [7C D4 28, 05, 05]
-1214C; [7B B3 2F, 05, 05]
+1214C; [7C D4 2F, 05, 05]
-1214D; [7B B3 36, 05, 05]
+1214D; [7C D4 36, 05, 05]
-1214E; [7B B3 3D, 05, 05]
+1214E; [7C D4 3D, 05, 05]
-1214F; [7B B3 44, 05, 05]
+1214F; [7C D4 44, 05, 05]
-12150; [7B B3 4B, 05, 05]
+12150; [7C D4 4B, 05, 05]
-12151; [7B B3 52, 05, 05]
+12151; [7C D4 52, 05, 05]
-12152; [7B B3 59, 05, 05]
+12152; [7C D4 59, 05, 05]
-12153; [7B B3 60, 05, 05]
+12153; [7C D4 60, 05, 05]
-12154; [7B B3 67, 05, 05]
+12154; [7C D4 67, 05, 05]
-12155; [7B B3 6E, 05, 05]
+12155; [7C D4 6E, 05, 05]
-12156; [7B B3 75, 05, 05]
+12156; [7C D4 75, 05, 05]
-12157; [7B B3 7C, 05, 05]
+12157; [7C D4 7C, 05, 05]
-12158; [7B B3 83, 05, 05]
+12158; [7C D4 83, 05, 05]
-12159; [7B B3 8A, 05, 05]
+12159; [7C D4 8A, 05, 05]
-1215A; [7B B3 91, 05, 05]
+1215A; [7C D4 91, 05, 05]
-1215B; [7B B3 98, 05, 05]
+1215B; [7C D4 98, 05, 05]
-1215C; [7B B3 9F, 05, 05]
+1215C; [7C D4 9F, 05, 05]
-1215D; [7B B3 A6, 05, 05]
+1215D; [7C D4 A6, 05, 05]
-1215E; [7B B3 AD, 05, 05]
+1215E; [7C D4 AD, 05, 05]
-1215F; [7B B3 B4, 05, 05]
+1215F; [7C D4 B4, 05, 05]
-12160; [7B B3 BB, 05, 05]
+12160; [7C D4 BB, 05, 05]
-12161; [7B B3 C2, 05, 05]
+12161; [7C D4 C2, 05, 05]
-12162; [7B B3 C9, 05, 05]
+12162; [7C D4 C9, 05, 05]
-12163; [7B B3 D0, 05, 05]
+12163; [7C D4 D0, 05, 05]
-12164; [7B B3 D7, 05, 05]
+12164; [7C D4 D7, 05, 05]
-12165; [7B B3 DE, 05, 05]
+12165; [7C D4 DE, 05, 05]
-12166; [7B B3 E5, 05, 05]
+12166; [7C D4 E5, 05, 05]
-12167; [7B B3 EC, 05, 05]
+12167; [7C D4 EC, 05, 05]
-12168; [7B B3 F3, 05, 05]
+12168; [7C D4 F3, 05, 05]
-12169; [7B B3 FA, 05, 05]
+12169; [7C D4 FA, 05, 05]
-1216A; [7B B4 03, 05, 05]
+1216A; [7C D5 03, 05, 05]
-1216B; [7B B4 0A, 05, 05]
+1216B; [7C D5 0A, 05, 05]
-1216C; [7B B4 11, 05, 05]
+1216C; [7C D5 11, 05, 05]
-1216D; [7B B4 18, 05, 05]
+1216D; [7C D5 18, 05, 05]
-1216E; [7B B4 1F, 05, 05]
+1216E; [7C D5 1F, 05, 05]
-1216F; [7B B4 26, 05, 05]
+1216F; [7C D5 26, 05, 05]
-12170; [7B B4 2D, 05, 05]
+12170; [7C D5 2D, 05, 05]
-12171; [7B B4 34, 05, 05]
+12171; [7C D5 34, 05, 05]
-12172; [7B B4 3B, 05, 05]
+12172; [7C D5 3B, 05, 05]
-12173; [7B B4 42, 05, 05]
+12173; [7C D5 42, 05, 05]
-12174; [7B B4 49, 05, 05]
+12174; [7C D5 49, 05, 05]
-12175; [7B B4 50, 05, 05]
+12175; [7C D5 50, 05, 05]
-12176; [7B B4 57, 05, 05]
+12176; [7C D5 57, 05, 05]
-12177; [7B B4 5E, 05, 05]
+12177; [7C D5 5E, 05, 05]
-12178; [7B B4 65, 05, 05]
+12178; [7C D5 65, 05, 05]
-12179; [7B B4 6C, 05, 05]
+12179; [7C D5 6C, 05, 05]
-1217A; [7B B4 73, 05, 05]
+1217A; [7C D5 73, 05, 05]
-1217B; [7B B4 7A, 05, 05]
+1217B; [7C D5 7A, 05, 05]
-1217C; [7B B4 81, 05, 05]
+1217C; [7C D5 81, 05, 05]
-1217D; [7B B4 88, 05, 05]
+1217D; [7C D5 88, 05, 05]
-1217E; [7B B4 8F, 05, 05]
+1217E; [7C D5 8F, 05, 05]
-1217F; [7B B4 96, 05, 05]
+1217F; [7C D5 96, 05, 05]
-12180; [7B B4 9D, 05, 05]
+12180; [7C D5 9D, 05, 05]
-12181; [7B B4 A4, 05, 05]
+12181; [7C D5 A4, 05, 05]
-12182; [7B B4 AB, 05, 05]
+12182; [7C D5 AB, 05, 05]
-12183; [7B B4 B2, 05, 05]
+12183; [7C D5 B2, 05, 05]
-12184; [7B B4 B9, 05, 05]
+12184; [7C D5 B9, 05, 05]
-12185; [7B B4 C0, 05, 05]
+12185; [7C D5 C0, 05, 05]
-12186; [7B B4 C7, 05, 05]
+12186; [7C D5 C7, 05, 05]
-12187; [7B B4 CE, 05, 05]
+12187; [7C D5 CE, 05, 05]
-12188; [7B B4 D5, 05, 05]
+12188; [7C D5 D5, 05, 05]
-12189; [7B B4 DC, 05, 05]
+12189; [7C D5 DC, 05, 05]
-1218A; [7B B4 E3, 05, 05]
+1218A; [7C D5 E3, 05, 05]
-1218B; [7B B4 EA, 05, 05]
+1218B; [7C D5 EA, 05, 05]
-1218C; [7B B4 F1, 05, 05]
+1218C; [7C D5 F1, 05, 05]
-1218D; [7B B4 F8, 05, 05]
+1218D; [7C D5 F8, 05, 05]
-1218E; [7B B4 FF, 05, 05]
+1218E; [7C D5 FF, 05, 05]
-1218F; [7B B5 08, 05, 05]
+1218F; [7C D6 08, 05, 05]
-12190; [7B B5 0F, 05, 05]
+12190; [7C D6 0F, 05, 05]
-12191; [7B B5 16, 05, 05]
+12191; [7C D6 16, 05, 05]
-12192; [7B B5 1D, 05, 05]
+12192; [7C D6 1D, 05, 05]
-12193; [7B B5 24, 05, 05]
+12193; [7C D6 24, 05, 05]
-12194; [7B B5 2B, 05, 05]
+12194; [7C D6 2B, 05, 05]
-12195; [7B B5 32, 05, 05]
+12195; [7C D6 32, 05, 05]
-12196; [7B B5 39, 05, 05]
+12196; [7C D6 39, 05, 05]
-12197; [7B B5 40, 05, 05]
+12197; [7C D6 40, 05, 05]
-12198; [7B B5 47, 05, 05]
+12198; [7C D6 47, 05, 05]
-12199; [7B B5 4E, 05, 05]
+12199; [7C D6 4E, 05, 05]
-1219A; [7B B5 55, 05, 05]
+1219A; [7C D6 55, 05, 05]
-1219B; [7B B5 5C, 05, 05]
+1219B; [7C D6 5C, 05, 05]
-1219C; [7B B5 63, 05, 05]
+1219C; [7C D6 63, 05, 05]
-1219D; [7B B5 6A, 05, 05]
+1219D; [7C D6 6A, 05, 05]
-1219E; [7B B5 71, 05, 05]
+1219E; [7C D6 71, 05, 05]
-1219F; [7B B5 78, 05, 05]
+1219F; [7C D6 78, 05, 05]
-121A0; [7B B5 7F, 05, 05]
+121A0; [7C D6 7F, 05, 05]
-121A1; [7B B5 86, 05, 05]
+121A1; [7C D6 86, 05, 05]
-121A2; [7B B5 8D, 05, 05]
+121A2; [7C D6 8D, 05, 05]
-121A3; [7B B5 94, 05, 05]
+121A3; [7C D6 94, 05, 05]
-121A4; [7B B5 9B, 05, 05]
+121A4; [7C D6 9B, 05, 05]
-121A5; [7B B5 A2, 05, 05]
+121A5; [7C D6 A2, 05, 05]
-121A6; [7B B5 A9, 05, 05]
+121A6; [7C D6 A9, 05, 05]
-121A7; [7B B5 B0, 05, 05]
+121A7; [7C D6 B0, 05, 05]
-121A8; [7B B5 B7, 05, 05]
+121A8; [7C D6 B7, 05, 05]
-121A9; [7B B5 BE, 05, 05]
+121A9; [7C D6 BE, 05, 05]
-121AA; [7B B5 C5, 05, 05]
+121AA; [7C D6 C5, 05, 05]
-121AB; [7B B5 CC, 05, 05]
+121AB; [7C D6 CC, 05, 05]
-121AC; [7B B5 D3, 05, 05]
+121AC; [7C D6 D3, 05, 05]
-121AD; [7B B5 DA, 05, 05]
+121AD; [7C D6 DA, 05, 05]
-121AE; [7B B5 E1, 05, 05]
+121AE; [7C D6 E1, 05, 05]
-121AF; [7B B5 E8, 05, 05]
+121AF; [7C D6 E8, 05, 05]
-121B0; [7B B5 EF, 05, 05]
+121B0; [7C D6 EF, 05, 05]
-121B1; [7B B5 F6, 05, 05]
+121B1; [7C D6 F6, 05, 05]
-121B2; [7B B5 FD, 05, 05]
+121B2; [7C D6 FD, 05, 05]
-121B3; [7B B6 06, 05, 05]
+121B3; [7C D7 06, 05, 05]
-121B4; [7B B6 0D, 05, 05]
+121B4; [7C D7 0D, 05, 05]
-121B5; [7B B6 14, 05, 05]
+121B5; [7C D7 14, 05, 05]
-121B6; [7B B6 1B, 05, 05]
+121B6; [7C D7 1B, 05, 05]
-121B7; [7B B6 22, 05, 05]
+121B7; [7C D7 22, 05, 05]
-121B8; [7B B6 29, 05, 05]
+121B8; [7C D7 29, 05, 05]
-121B9; [7B B6 30, 05, 05]
+121B9; [7C D7 30, 05, 05]
-121BA; [7B B6 37, 05, 05]
+121BA; [7C D7 37, 05, 05]
-121BB; [7B B6 3E, 05, 05]
+121BB; [7C D7 3E, 05, 05]
-121BC; [7B B6 45, 05, 05]
+121BC; [7C D7 45, 05, 05]
-121BD; [7B B6 4C, 05, 05]
+121BD; [7C D7 4C, 05, 05]
-121BE; [7B B6 53, 05, 05]
+121BE; [7C D7 53, 05, 05]
-121BF; [7B B6 5A, 05, 05]
+121BF; [7C D7 5A, 05, 05]
-121C0; [7B B6 61, 05, 05]
+121C0; [7C D7 61, 05, 05]
-121C1; [7B B6 68, 05, 05]
+121C1; [7C D7 68, 05, 05]
-121C2; [7B B6 6F, 05, 05]
+121C2; [7C D7 6F, 05, 05]
-121C3; [7B B6 76, 05, 05]
+121C3; [7C D7 76, 05, 05]
-121C4; [7B B6 7D, 05, 05]
+121C4; [7C D7 7D, 05, 05]
-121C5; [7B B6 84, 05, 05]
+121C5; [7C D7 84, 05, 05]
-121C6; [7B B6 8B, 05, 05]
+121C6; [7C D7 8B, 05, 05]
-121C7; [7B B6 92, 05, 05]
+121C7; [7C D7 92, 05, 05]
-121C8; [7B B6 99, 05, 05]
+121C8; [7C D7 99, 05, 05]
-121C9; [7B B6 A0, 05, 05]
+121C9; [7C D7 A0, 05, 05]
-121CA; [7B B6 A7, 05, 05]
+121CA; [7C D7 A7, 05, 05]
-121CB; [7B B6 AE, 05, 05]
+121CB; [7C D7 AE, 05, 05]
-121CC; [7B B6 B5, 05, 05]
+121CC; [7C D7 B5, 05, 05]
-121CD; [7B B6 BC, 05, 05]
+121CD; [7C D7 BC, 05, 05]
-121CE; [7B B6 C3, 05, 05]
+121CE; [7C D7 C3, 05, 05]
-121CF; [7B B6 CA, 05, 05]
+121CF; [7C D7 CA, 05, 05]
-121D0; [7B B6 D1, 05, 05]
+121D0; [7C D7 D1, 05, 05]
-121D1; [7B B6 D8, 05, 05]
+121D1; [7C D7 D8, 05, 05]
-121D2; [7B B6 DF, 05, 05]
+121D2; [7C D7 DF, 05, 05]
-121D3; [7B B6 E6, 05, 05]
+121D3; [7C D7 E6, 05, 05]
-121D4; [7B B6 ED, 05, 05]
+121D4; [7C D7 ED, 05, 05]
-121D5; [7B B6 F4, 05, 05]
+121D5; [7C D7 F4, 05, 05]
-121D6; [7B B6 FB, 05, 05]
+121D6; [7C D7 FB, 05, 05]
-121D7; [7B B7 04, 05, 05]
+121D7; [7C D8 04, 05, 05]
-121D8; [7B B7 0B, 05, 05]
+121D8; [7C D8 0B, 05, 05]
-121D9; [7B B7 12, 05, 05]
+121D9; [7C D8 12, 05, 05]
-121DA; [7B B7 19, 05, 05]
+121DA; [7C D8 19, 05, 05]
-121DB; [7B B7 20, 05, 05]
+121DB; [7C D8 20, 05, 05]
-121DC; [7B B7 27, 05, 05]
+121DC; [7C D8 27, 05, 05]
-121DD; [7B B7 2E, 05, 05]
+121DD; [7C D8 2E, 05, 05]
-121DE; [7B B7 35, 05, 05]
+121DE; [7C D8 35, 05, 05]
-121DF; [7B B7 3C, 05, 05]
+121DF; [7C D8 3C, 05, 05]
-121E0; [7B B7 43, 05, 05]
+121E0; [7C D8 43, 05, 05]
-121E1; [7B B7 4A, 05, 05]
+121E1; [7C D8 4A, 05, 05]
-121E2; [7B B7 51, 05, 05]
+121E2; [7C D8 51, 05, 05]
-121E3; [7B B7 58, 05, 05]
+121E3; [7C D8 58, 05, 05]
-121E4; [7B B7 5F, 05, 05]
+121E4; [7C D8 5F, 05, 05]
-121E5; [7B B7 66, 05, 05]
+121E5; [7C D8 66, 05, 05]
-121E6; [7B B7 6D, 05, 05]
+121E6; [7C D8 6D, 05, 05]
-121E7; [7B B7 74, 05, 05]
+121E7; [7C D8 74, 05, 05]
-121E8; [7B B7 7B, 05, 05]
+121E8; [7C D8 7B, 05, 05]
-121E9; [7B B7 82, 05, 05]
+121E9; [7C D8 82, 05, 05]
-121EA; [7B B7 89, 05, 05]
+121EA; [7C D8 89, 05, 05]
-121EB; [7B B7 90, 05, 05]
+121EB; [7C D8 90, 05, 05]
-121EC; [7B B7 97, 05, 05]
+121EC; [7C D8 97, 05, 05]
-121ED; [7B B7 9E, 05, 05]
+121ED; [7C D8 9E, 05, 05]
-121EE; [7B B7 A5, 05, 05]
+121EE; [7C D8 A5, 05, 05]
-121EF; [7B B7 AC, 05, 05]
+121EF; [7C D8 AC, 05, 05]
-121F0; [7B B7 B3, 05, 05]
+121F0; [7C D8 B3, 05, 05]
-121F1; [7B B7 BA, 05, 05]
+121F1; [7C D8 BA, 05, 05]
-121F2; [7B B7 C1, 05, 05]
+121F2; [7C D8 C1, 05, 05]
-121F3; [7B B7 C8, 05, 05]
+121F3; [7C D8 C8, 05, 05]
-121F4; [7B B7 CF, 05, 05]
+121F4; [7C D8 CF, 05, 05]
-121F5; [7B B7 D6, 05, 05]
+121F5; [7C D8 D6, 05, 05]
-121F6; [7B B7 DD, 05, 05]
+121F6; [7C D8 DD, 05, 05]
-121F7; [7B B7 E4, 05, 05]
+121F7; [7C D8 E4, 05, 05]
-121F8; [7B B7 EB, 05, 05]
+121F8; [7C D8 EB, 05, 05]
-121F9; [7B B7 F2, 05, 05]
+121F9; [7C D8 F2, 05, 05]
-121FA; [7B B7 F9, 05, 05]
+121FA; [7C D8 F9, 05, 05]
-121FB; [7B B8 02, 05, 05]
+121FB; [7C D9 02, 05, 05]
-121FC; [7B B8 09, 05, 05]
+121FC; [7C D9 09, 05, 05]
-121FD; [7B B8 10, 05, 05]
+121FD; [7C D9 10, 05, 05]
-121FE; [7B B8 17, 05, 05]
+121FE; [7C D9 17, 05, 05]
-121FF; [7B B8 1E, 05, 05]
+121FF; [7C D9 1E, 05, 05]
-12200; [7B B8 25, 05, 05]
+12200; [7C D9 25, 05, 05]
-12201; [7B B8 2C, 05, 05]
+12201; [7C D9 2C, 05, 05]
-12202; [7B B8 33, 05, 05]
+12202; [7C D9 33, 05, 05]
-12203; [7B B8 3A, 05, 05]
+12203; [7C D9 3A, 05, 05]
-12204; [7B B8 41, 05, 05]
+12204; [7C D9 41, 05, 05]
-12205; [7B B8 48, 05, 05]
+12205; [7C D9 48, 05, 05]
-12206; [7B B8 4F, 05, 05]
+12206; [7C D9 4F, 05, 05]
-12207; [7B B8 56, 05, 05]
+12207; [7C D9 56, 05, 05]
-12208; [7B B8 5D, 05, 05]
+12208; [7C D9 5D, 05, 05]
-12209; [7B B8 64, 05, 05]
+12209; [7C D9 64, 05, 05]
-1220A; [7B B8 6B, 05, 05]
+1220A; [7C D9 6B, 05, 05]
-1220B; [7B B8 72, 05, 05]
+1220B; [7C D9 72, 05, 05]
-1220C; [7B B8 79, 05, 05]
+1220C; [7C D9 79, 05, 05]
-1220D; [7B B8 80, 05, 05]
+1220D; [7C D9 80, 05, 05]
-1220E; [7B B8 87, 05, 05]
+1220E; [7C D9 87, 05, 05]
-1220F; [7B B8 8E, 05, 05]
+1220F; [7C D9 8E, 05, 05]
-12210; [7B B8 95, 05, 05]
+12210; [7C D9 95, 05, 05]
-12211; [7B B8 9C, 05, 05]
+12211; [7C D9 9C, 05, 05]
-12212; [7B B8 A3, 05, 05]
+12212; [7C D9 A3, 05, 05]
-12213; [7B B8 AA, 05, 05]
+12213; [7C D9 AA, 05, 05]
-12214; [7B B8 B1, 05, 05]
+12214; [7C D9 B1, 05, 05]
-12215; [7B B8 B8, 05, 05]
+12215; [7C D9 B8, 05, 05]
-12216; [7B B8 BF, 05, 05]
+12216; [7C D9 BF, 05, 05]
-12217; [7B B8 C6, 05, 05]
+12217; [7C D9 C6, 05, 05]
-12218; [7B B8 CD, 05, 05]
+12218; [7C D9 CD, 05, 05]
-12219; [7B B8 D4, 05, 05]
+12219; [7C D9 D4, 05, 05]
-1221A; [7B B8 DB, 05, 05]
+1221A; [7C D9 DB, 05, 05]
-1221B; [7B B8 E2, 05, 05]
+1221B; [7C D9 E2, 05, 05]
-1221C; [7B B8 E9, 05, 05]
+1221C; [7C D9 E9, 05, 05]
-1221D; [7B B8 F0, 05, 05]
+1221D; [7C D9 F0, 05, 05]
-1221E; [7B B8 F7, 05, 05]
+1221E; [7C D9 F7, 05, 05]
-1221F; [7B B8 FE, 05, 05]
+1221F; [7C D9 FE, 05, 05]
-12220; [7B B9 07, 05, 05]
+12220; [7C DA 07, 05, 05]
-12221; [7B B9 0E, 05, 05]
+12221; [7C DA 0E, 05, 05]
-12222; [7B B9 15, 05, 05]
+12222; [7C DA 15, 05, 05]
-12223; [7B B9 1C, 05, 05]
+12223; [7C DA 1C, 05, 05]
-12224; [7B B9 23, 05, 05]
+12224; [7C DA 23, 05, 05]
-12225; [7B B9 2A, 05, 05]
+12225; [7C DA 2A, 05, 05]
-12226; [7B B9 31, 05, 05]
+12226; [7C DA 31, 05, 05]
-12227; [7B B9 38, 05, 05]
+12227; [7C DA 38, 05, 05]
-12228; [7B B9 3F, 05, 05]
+12228; [7C DA 3F, 05, 05]
-12229; [7B B9 46, 05, 05]
+12229; [7C DA 46, 05, 05]
-1222A; [7B B9 4D, 05, 05]
+1222A; [7C DA 4D, 05, 05]
-1222B; [7B B9 54, 05, 05]
+1222B; [7C DA 54, 05, 05]
-1222C; [7B B9 5B, 05, 05]
+1222C; [7C DA 5B, 05, 05]
-1222D; [7B B9 62, 05, 05]
+1222D; [7C DA 62, 05, 05]
-1222E; [7B B9 69, 05, 05]
+1222E; [7C DA 69, 05, 05]
-1222F; [7B B9 70, 05, 05]
+1222F; [7C DA 70, 05, 05]
-12230; [7B B9 77, 05, 05]
+12230; [7C DA 77, 05, 05]
-12231; [7B B9 7E, 05, 05]
+12231; [7C DA 7E, 05, 05]
-12232; [7B B9 85, 05, 05]
+12232; [7C DA 85, 05, 05]
-12233; [7B B9 8C, 05, 05]
+12233; [7C DA 8C, 05, 05]
-12234; [7B B9 93, 05, 05]
+12234; [7C DA 93, 05, 05]
-12235; [7B B9 9A, 05, 05]
+12235; [7C DA 9A, 05, 05]
-12236; [7B B9 A1, 05, 05]
+12236; [7C DA A1, 05, 05]
-12237; [7B B9 A8, 05, 05]
+12237; [7C DA A8, 05, 05]
-12238; [7B B9 AF, 05, 05]
+12238; [7C DA AF, 05, 05]
-12239; [7B B9 B6, 05, 05]
+12239; [7C DA B6, 05, 05]
-1223A; [7B B9 BD, 05, 05]
+1223A; [7C DA BD, 05, 05]
-1223B; [7B B9 C4, 05, 05]
+1223B; [7C DA C4, 05, 05]
-1223C; [7B B9 CB, 05, 05]
+1223C; [7C DA CB, 05, 05]
-1223D; [7B B9 D2, 05, 05]
+1223D; [7C DA D2, 05, 05]
-1223E; [7B B9 D9, 05, 05]
+1223E; [7C DA D9, 05, 05]
-1223F; [7B B9 E0, 05, 05]
+1223F; [7C DA E0, 05, 05]
-12240; [7B B9 E7, 05, 05]
+12240; [7C DA E7, 05, 05]
-12241; [7B B9 EE, 05, 05]
+12241; [7C DA EE, 05, 05]
-12242; [7B B9 F5, 05, 05]
+12242; [7C DA F5, 05, 05]
-12243; [7B B9 FC, 05, 05]
+12243; [7C DA FC, 05, 05]
-12244; [7B BA 05, 05, 05]
+12244; [7C DB 05, 05, 05]
-12245; [7B BA 0C, 05, 05]
+12245; [7C DB 0C, 05, 05]
-12246; [7B BA 13, 05, 05]
+12246; [7C DB 13, 05, 05]
-12247; [7B BA 1A, 05, 05]
+12247; [7C DB 1A, 05, 05]
-12248; [7B BA 21, 05, 05]
+12248; [7C DB 21, 05, 05]
-12249; [7B BA 28, 05, 05]
+12249; [7C DB 28, 05, 05]
-1224A; [7B BA 2F, 05, 05]
+1224A; [7C DB 2F, 05, 05]
-1224B; [7B BA 36, 05, 05]
+1224B; [7C DB 36, 05, 05]
-1224C; [7B BA 3D, 05, 05]
+1224C; [7C DB 3D, 05, 05]
-1224D; [7B BA 44, 05, 05]
+1224D; [7C DB 44, 05, 05]
-1224E; [7B BA 4B, 05, 05]
+1224E; [7C DB 4B, 05, 05]
-1224F; [7B BA 52, 05, 05]
+1224F; [7C DB 52, 05, 05]
-12250; [7B BA 59, 05, 05]
+12250; [7C DB 59, 05, 05]
-12251; [7B BA 60, 05, 05]
+12251; [7C DB 60, 05, 05]
-12252; [7B BA 67, 05, 05]
+12252; [7C DB 67, 05, 05]
-12253; [7B BA 6E, 05, 05]
+12253; [7C DB 6E, 05, 05]
-12254; [7B BA 75, 05, 05]
+12254; [7C DB 75, 05, 05]
-12255; [7B BA 7C, 05, 05]
+12255; [7C DB 7C, 05, 05]
-12256; [7B BA 83, 05, 05]
+12256; [7C DB 83, 05, 05]
-12257; [7B BA 8A, 05, 05]
+12257; [7C DB 8A, 05, 05]
-12258; [7B BA 91, 05, 05]
+12258; [7C DB 91, 05, 05]
-12259; [7B BA 98, 05, 05]
+12259; [7C DB 98, 05, 05]
-1225A; [7B BA 9F, 05, 05]
+1225A; [7C DB 9F, 05, 05]
-1225B; [7B BA A6, 05, 05]
+1225B; [7C DB A6, 05, 05]
-1225C; [7B BA AD, 05, 05]
+1225C; [7C DB AD, 05, 05]
-1225D; [7B BA B4, 05, 05]
+1225D; [7C DB B4, 05, 05]
-1225E; [7B BA BB, 05, 05]
+1225E; [7C DB BB, 05, 05]
-1225F; [7B BA C2, 05, 05]
+1225F; [7C DB C2, 05, 05]
-12260; [7B BA C9, 05, 05]
+12260; [7C DB C9, 05, 05]
-12261; [7B BA D0, 05, 05]
+12261; [7C DB D0, 05, 05]
-12262; [7B BA D7, 05, 05]
+12262; [7C DB D7, 05, 05]
-122D4; [7B BA DE, 05, 05]
+122D4; [7C DB DE, 05, 05]
-122D5; [7B BA E5, 05, 05]
+122D5; [7C DB E5, 05, 05]
-12263; [7B BA EC, 05, 05]
+12263; [7C DB EC, 05, 05]
-12264; [7B BA F3, 05, 05]
+12264; [7C DB F3, 05, 05]
-12265; [7B BA FA, 05, 05]
+12265; [7C DB FA, 05, 05]
-12266; [7B BB 03, 05, 05]
+12266; [7C DC 03, 05, 05]
-12267; [7B BB 0A, 05, 05]
+12267; [7C DC 0A, 05, 05]
-12268; [7B BB 11, 05, 05]
+12268; [7C DC 11, 05, 05]
-12269; [7B BB 18, 05, 05]
+12269; [7C DC 18, 05, 05]
-1226A; [7B BB 1F, 05, 05]
+1226A; [7C DC 1F, 05, 05]
-1226B; [7B BB 26, 05, 05]
+1226B; [7C DC 26, 05, 05]
-1226C; [7B BB 2D, 05, 05]
+1226C; [7C DC 2D, 05, 05]
-1226D; [7B BB 34, 05, 05]
+1226D; [7C DC 34, 05, 05]
-1226E; [7B BB 3B, 05, 05]
+1226E; [7C DC 3B, 05, 05]
-1226F; [7B BB 42, 05, 05]
+1226F; [7C DC 42, 05, 05]
-12270; [7B BB 49, 05, 05]
+12270; [7C DC 49, 05, 05]
-12271; [7B BB 50, 05, 05]
+12271; [7C DC 50, 05, 05]
-12272; [7B BB 57, 05, 05]
+12272; [7C DC 57, 05, 05]
-12273; [7B BB 5E, 05, 05]
+12273; [7C DC 5E, 05, 05]
-12274; [7B BB 65, 05, 05]
+12274; [7C DC 65, 05, 05]
-12275; [7B BB 6C, 05, 05]
+12275; [7C DC 6C, 05, 05]
-12276; [7B BB 73, 05, 05]
+12276; [7C DC 73, 05, 05]
-12277; [7B BB 7A, 05, 05]
+12277; [7C DC 7A, 05, 05]
-12278; [7B BB 81, 05, 05]
+12278; [7C DC 81, 05, 05]
-12279; [7B BB 88, 05, 05]
+12279; [7C DC 88, 05, 05]
-1227A; [7B BB 8F, 05, 05]
+1227A; [7C DC 8F, 05, 05]
-1227B; [7B BB 96, 05, 05]
+1227B; [7C DC 96, 05, 05]
-1227C; [7B BB 9D, 05, 05]
+1227C; [7C DC 9D, 05, 05]
-1227D; [7B BB A4, 05, 05]
+1227D; [7C DC A4, 05, 05]
-1227E; [7B BB AB, 05, 05]
+1227E; [7C DC AB, 05, 05]
-1227F; [7B BB B2, 05, 05]
+1227F; [7C DC B2, 05, 05]
-12280; [7B BB B9, 05, 05]
+12280; [7C DC B9, 05, 05]
-12281; [7B BB C0, 05, 05]
+12281; [7C DC C0, 05, 05]
-12282; [7B BB C7, 05, 05]
+12282; [7C DC C7, 05, 05]
-12283; [7B BB CE, 05, 05]
+12283; [7C DC CE, 05, 05]
-12284; [7B BB D5, 05, 05]
+12284; [7C DC D5, 05, 05]
-12285; [7B BB DC, 05, 05]
+12285; [7C DC DC, 05, 05]
-12286; [7B BB E3, 05, 05]
+12286; [7C DC E3, 05, 05]
-12287; [7B BB EA, 05, 05]
+12287; [7C DC EA, 05, 05]
-12288; [7B BB F1, 05, 05]
+12288; [7C DC F1, 05, 05]
-12289; [7B BB F8, 05, 05]
+12289; [7C DC F8, 05, 05]
-1228A; [7B BB FF, 05, 05]
+1228A; [7C DC FF, 05, 05]
-1228B; [7B BC 08, 05, 05]
+1228B; [7C DD 08, 05, 05]
-1228C; [7B BC 0F, 05, 05]
+1228C; [7C DD 0F, 05, 05]
-1228D; [7B BC 16, 05, 05]
+1228D; [7C DD 16, 05, 05]
-1228E; [7B BC 1D, 05, 05]
+1228E; [7C DD 1D, 05, 05]
-1228F; [7B BC 24, 05, 05]
+1228F; [7C DD 24, 05, 05]
-12290; [7B BC 2B, 05, 05]
+12290; [7C DD 2B, 05, 05]
-12291; [7B BC 32, 05, 05]
+12291; [7C DD 32, 05, 05]
-12292; [7B BC 39, 05, 05]
+12292; [7C DD 39, 05, 05]
-12293; [7B BC 40, 05, 05]
+12293; [7C DD 40, 05, 05]
-12294; [7B BC 47, 05, 05]
+12294; [7C DD 47, 05, 05]
-12295; [7B BC 4E, 05, 05]
+12295; [7C DD 4E, 05, 05]
-12296; [7B BC 55, 05, 05]
+12296; [7C DD 55, 05, 05]
-12297; [7B BC 5C, 05, 05]
+12297; [7C DD 5C, 05, 05]
-12298; [7B BC 63, 05, 05]
+12298; [7C DD 63, 05, 05]
-12299; [7B BC 6A, 05, 05]
+12299; [7C DD 6A, 05, 05]
-1229A; [7B BC 71, 05, 05]
+1229A; [7C DD 71, 05, 05]
-1229B; [7B BC 78, 05, 05]
+1229B; [7C DD 78, 05, 05]
-1229C; [7B BC 7F, 05, 05]
+1229C; [7C DD 7F, 05, 05]
-1229D; [7B BC 86, 05, 05]
+1229D; [7C DD 86, 05, 05]
-1229E; [7B BC 8D, 05, 05]
+1229E; [7C DD 8D, 05, 05]
-1229F; [7B BC 94, 05, 05]
+1229F; [7C DD 94, 05, 05]
-122A0; [7B BC 9B, 05, 05]
+122A0; [7C DD 9B, 05, 05]
-122A1; [7B BC A2, 05, 05]
+122A1; [7C DD A2, 05, 05]
-122A2; [7B BC A9, 05, 05]
+122A2; [7C DD A9, 05, 05]
-122A3; [7B BC B0, 05, 05]
+122A3; [7C DD B0, 05, 05]
-122A4; [7B BC B7, 05, 05]
+122A4; [7C DD B7, 05, 05]
-122A5; [7B BC BE, 05, 05]
+122A5; [7C DD BE, 05, 05]
-122A6; [7B BC C5, 05, 05]
+122A6; [7C DD C5, 05, 05]
-122A7; [7B BC CC, 05, 05]
+122A7; [7C DD CC, 05, 05]
-122A8; [7B BC D3, 05, 05]
+122A8; [7C DD D3, 05, 05]
-122A9; [7B BC DA, 05, 05]
+122A9; [7C DD DA, 05, 05]
-122AA; [7B BC E1, 05, 05]
+122AA; [7C DD E1, 05, 05]
-122AB; [7B BC E8, 05, 05]
+122AB; [7C DD E8, 05, 05]
-122AC; [7B BC EF, 05, 05]
+122AC; [7C DD EF, 05, 05]
-122AD; [7B BC F6, 05, 05]
+122AD; [7C DD F6, 05, 05]
-122AE; [7B BC FD, 05, 05]
+122AE; [7C DD FD, 05, 05]
-122AF; [7B BD 06, 05, 05]
+122AF; [7C DE 06, 05, 05]
-122B0; [7B BD 0D, 05, 05]
+122B0; [7C DE 0D, 05, 05]
-122B1; [7B BD 14, 05, 05]
+122B1; [7C DE 14, 05, 05]
-122B2; [7B BD 1B, 05, 05]
+122B2; [7C DE 1B, 05, 05]
-122B3; [7B BD 22, 05, 05]
+122B3; [7C DE 22, 05, 05]
-122B4; [7B BD 29, 05, 05]
+122B4; [7C DE 29, 05, 05]
-122B5; [7B BD 30, 05, 05]
+122B5; [7C DE 30, 05, 05]
-122B6; [7B BD 37, 05, 05]
+122B6; [7C DE 37, 05, 05]
-122B7; [7B BD 3E, 05, 05]
+122B7; [7C DE 3E, 05, 05]
-122B8; [7B BD 45, 05, 05]
+122B8; [7C DE 45, 05, 05]
-122B9; [7B BD 4C, 05, 05]
+122B9; [7C DE 4C, 05, 05]
-122BA; [7B BD 53, 05, 05]
+122BA; [7C DE 53, 05, 05]
-122BB; [7B BD 5A, 05, 05]
+122BB; [7C DE 5A, 05, 05]
-122BC; [7B BD 61, 05, 05]
+122BC; [7C DE 61, 05, 05]
-122BD; [7B BD 68, 05, 05]
+122BD; [7C DE 68, 05, 05]
-122BE; [7B BD 6F, 05, 05]
+122BE; [7C DE 6F, 05, 05]
-122BF; [7B BD 76, 05, 05]
+122BF; [7C DE 76, 05, 05]
-122C0; [7B BD 7D, 05, 05]
+122C0; [7C DE 7D, 05, 05]
-122C1; [7B BD 84, 05, 05]
+122C1; [7C DE 84, 05, 05]
-122C2; [7B BD 8B, 05, 05]
+122C2; [7C DE 8B, 05, 05]
-122C3; [7B BD 92, 05, 05]
+122C3; [7C DE 92, 05, 05]
-122C4; [7B BD 99, 05, 05]
+122C4; [7C DE 99, 05, 05]
-122C5; [7B BD A0, 05, 05]
+122C5; [7C DE A0, 05, 05]
-122C6; [7B BD A7, 05, 05]
+122C6; [7C DE A7, 05, 05]
-122C7; [7B BD AE, 05, 05]
+122C7; [7C DE AE, 05, 05]
-122C8; [7B BD B5, 05, 05]
+122C8; [7C DE B5, 05, 05]
-122C9; [7B BD BC, 05, 05]
+122C9; [7C DE BC, 05, 05]
-122CA; [7B BD C3, 05, 05]
+122CA; [7C DE C3, 05, 05]
-122CB; [7B BD CA, 05, 05]
+122CB; [7C DE CA, 05, 05]
-122CC; [7B BD D1, 05, 05]
+122CC; [7C DE D1, 05, 05]
-122CD; [7B BD D8, 05, 05]
+122CD; [7C DE D8, 05, 05]
-122CE; [7B BD DF, 05, 05]
+122CE; [7C DE DF, 05, 05]
-122CF; [7B BD E6, 05, 05]
+122CF; [7C DE E6, 05, 05]
-122D0; [7B BD ED, 05, 05]
+122D0; [7C DE ED, 05, 05]
-122D1; [7B BD F4, 05, 05]
+122D1; [7C DE F4, 05, 05]
-122D2; [7B BD FB, 05, 05]
+122D2; [7C DE FB, 05, 05]
-122D3; [7B BE 04, 05, 05]
+122D3; [7C DF 04, 05, 05]
-122D6; [7B BE 0B, 05, 05]
+122D6; [7C DF 0B, 05, 05]
-122D7; [7B BE 12, 05, 05]
+122D7; [7C DF 12, 05, 05]
-122D8; [7B BE 19, 05, 05]
+122D8; [7C DF 19, 05, 05]
-122D9; [7B BE 20, 05, 05]
+122D9; [7C DF 20, 05, 05]
-122DA; [7B BE 27, 05, 05]
+122DA; [7C DF 27, 05, 05]
-122DB; [7B BE 2E, 05, 05]
+122DB; [7C DF 2E, 05, 05]
-122DC; [7B BE 35, 05, 05]
+122DC; [7C DF 35, 05, 05]
-122DD; [7B BE 3C, 05, 05]
+122DD; [7C DF 3C, 05, 05]
-122DE; [7B BE 43, 05, 05]
+122DE; [7C DF 43, 05, 05]
-122DF; [7B BE 4A, 05, 05]
+122DF; [7C DF 4A, 05, 05]
-122E0; [7B BE 51, 05, 05]
+122E0; [7C DF 51, 05, 05]
-122E1; [7B BE 58, 05, 05]
+122E1; [7C DF 58, 05, 05]
-122E2; [7B BE 5F, 05, 05]
+122E2; [7C DF 5F, 05, 05]
-122E3; [7B BE 66, 05, 05]
+122E3; [7C DF 66, 05, 05]
-122E4; [7B BE 6D, 05, 05]
+122E4; [7C DF 6D, 05, 05]
-122E5; [7B BE 74, 05, 05]
+122E5; [7C DF 74, 05, 05]
-122E6; [7B BE 7B, 05, 05]
+122E6; [7C DF 7B, 05, 05]
-122E7; [7B BE 82, 05, 05]
+122E7; [7C DF 82, 05, 05]
-122E8; [7B BE 89, 05, 05]
+122E8; [7C DF 89, 05, 05]
-122E9; [7B BE 90, 05, 05]
+122E9; [7C DF 90, 05, 05]
-122EA; [7B BE 97, 05, 05]
+122EA; [7C DF 97, 05, 05]
-122EB; [7B BE 9E, 05, 05]
+122EB; [7C DF 9E, 05, 05]
-122EC; [7B BE A5, 05, 05]
+122EC; [7C DF A5, 05, 05]
-122ED; [7B BE AC, 05, 05]
+122ED; [7C DF AC, 05, 05]
-122EE; [7B BE B3, 05, 05]
+122EE; [7C DF B3, 05, 05]
-122EF; [7B BE BA, 05, 05]
+122EF; [7C DF BA, 05, 05]
-122F0; [7B BE C1, 05, 05]
+122F0; [7C DF C1, 05, 05]
-122F1; [7B BE C8, 05, 05]
+122F1; [7C DF C8, 05, 05]
-122F2; [7B BE CF, 05, 05]
+122F2; [7C DF CF, 05, 05]
-122F3; [7B BE D6, 05, 05]
+122F3; [7C DF D6, 05, 05]
-122F4; [7B BE DD, 05, 05]
+122F4; [7C DF DD, 05, 05]
-122F5; [7B BE E4, 05, 05]
+122F5; [7C DF E4, 05, 05]
-122F6; [7B BE EB, 05, 05]
+122F6; [7C DF EB, 05, 05]
-122F7; [7B BE F2, 05, 05]
+122F7; [7C DF F2, 05, 05]
-122F8; [7B BE F9, 05, 05]
+122F8; [7C DF F9, 05, 05]
-122F9; [7B BF 02, 05, 05]
+122F9; [7C E0 02, 05, 05]
-122FA; [7B BF 09, 05, 05]
+122FA; [7C E0 09, 05, 05]
-122FB; [7B BF 10, 05, 05]
+122FB; [7C E0 10, 05, 05]
-122FC; [7B BF 17, 05, 05]
+122FC; [7C E0 17, 05, 05]
-122FD; [7B BF 1E, 05, 05]
+122FD; [7C E0 1E, 05, 05]
-122FE; [7B BF 25, 05, 05]
+122FE; [7C E0 25, 05, 05]
-122FF; [7B BF 2C, 05, 05]
+122FF; [7C E0 2C, 05, 05]
-12300; [7B BF 33, 05, 05]
+12300; [7C E0 33, 05, 05]
-12301; [7B BF 3A, 05, 05]
+12301; [7C E0 3A, 05, 05]
-12302; [7B BF 41, 05, 05]
+12302; [7C E0 41, 05, 05]
-12303; [7B BF 48, 05, 05]
+12303; [7C E0 48, 05, 05]
-12304; [7B BF 4F, 05, 05]
+12304; [7C E0 4F, 05, 05]
-12305; [7B BF 56, 05, 05]
+12305; [7C E0 56, 05, 05]
-12306; [7B BF 5D, 05, 05]
+12306; [7C E0 5D, 05, 05]
-12307; [7B BF 64, 05, 05]
+12307; [7C E0 64, 05, 05]
-12308; [7B BF 6B, 05, 05]
+12308; [7C E0 6B, 05, 05]
-12309; [7B BF 72, 05, 05]
+12309; [7C E0 72, 05, 05]
-1230A; [7B BF 79, 05, 05]
+1230A; [7C E0 79, 05, 05]
-1230B; [7B BF 80, 05, 05]
+1230B; [7C E0 80, 05, 05]
-1230C; [7B BF 87, 05, 05]
+1230C; [7C E0 87, 05, 05]
-1230D; [7B BF 8E, 05, 05]
+1230D; [7C E0 8E, 05, 05]
-1230E; [7B BF 95, 05, 05]
+1230E; [7C E0 95, 05, 05]
-1230F; [7B BF 9C, 05, 05]
+1230F; [7C E0 9C, 05, 05]
-12310; [7B BF A3, 05, 05]
+12310; [7C E0 A3, 05, 05]
-12311; [7B BF AA, 05, 05]
+12311; [7C E0 AA, 05, 05]
-12312; [7B BF B1, 05, 05]
+12312; [7C E0 B1, 05, 05]
-12313; [7B BF B8, 05, 05]
+12313; [7C E0 B8, 05, 05]
-12314; [7B BF BF, 05, 05]
+12314; [7C E0 BF, 05, 05]
-12315; [7B BF C6, 05, 05]
+12315; [7C E0 C6, 05, 05]
-12316; [7B BF CD, 05, 05]
+12316; [7C E0 CD, 05, 05]
-12317; [7B BF D4, 05, 05]
+12317; [7C E0 D4, 05, 05]
-12318; [7B BF DB, 05, 05]
+12318; [7C E0 DB, 05, 05]
-12319; [7B BF E2, 05, 05]
+12319; [7C E0 E2, 05, 05]
-1231A; [7B BF E9, 05, 05]
+1231A; [7C E0 E9, 05, 05]
-1231B; [7B BF F0, 05, 05]
+1231B; [7C E0 F0, 05, 05]
-1231C; [7B BF F7, 05, 05]
+1231C; [7C E0 F7, 05, 05]
-1231D; [7B BF FE, 05, 05]
+1231D; [7C E0 FE, 05, 05]
-1231E; [7B C0 07, 05, 05]
+1231E; [7C E1 07, 05, 05]
-1231F; [7B C0 0E, 05, 05]
+1231F; [7C E1 0E, 05, 05]
-12320; [7B C0 15, 05, 05]
+12320; [7C E1 15, 05, 05]
-12321; [7B C0 1C, 05, 05]
+12321; [7C E1 1C, 05, 05]
-12322; [7B C0 23, 05, 05]
+12322; [7C E1 23, 05, 05]
-12323; [7B C0 2A, 05, 05]
+12323; [7C E1 2A, 05, 05]
-12324; [7B C0 31, 05, 05]
+12324; [7C E1 31, 05, 05]
-12325; [7B C0 38, 05, 05]
+12325; [7C E1 38, 05, 05]
-12326; [7B C0 3F, 05, 05]
+12326; [7C E1 3F, 05, 05]
-12327; [7B C0 46, 05, 05]
+12327; [7C E1 46, 05, 05]
-12328; [7B C0 4D, 05, 05]
+12328; [7C E1 4D, 05, 05]
-12329; [7B C0 54, 05, 05]
+12329; [7C E1 54, 05, 05]
-1232A; [7B C0 5B, 05, 05]
+1232A; [7C E1 5B, 05, 05]
-1232B; [7B C0 62, 05, 05]
+1232B; [7C E1 62, 05, 05]
-1232C; [7B C0 69, 05, 05]
+1232C; [7C E1 69, 05, 05]
-1232D; [7B C0 70, 05, 05]
+1232D; [7C E1 70, 05, 05]
-1232E; [7B C0 77, 05, 05]
+1232E; [7C E1 77, 05, 05]
-1232F; [7B C0 7E, 05, 05]
+1232F; [7C E1 7E, 05, 05]
-12330; [7B C0 85, 05, 05]
+12330; [7C E1 85, 05, 05]
-12331; [7B C0 8C, 05, 05]
+12331; [7C E1 8C, 05, 05]
-12332; [7B C0 93, 05, 05]
+12332; [7C E1 93, 05, 05]
-12333; [7B C0 9A, 05, 05]
+12333; [7C E1 9A, 05, 05]
-12334; [7B C0 A1, 05, 05]
+12334; [7C E1 A1, 05, 05]
-12335; [7B C0 A8, 05, 05]
+12335; [7C E1 A8, 05, 05]
-12336; [7B C0 AF, 05, 05]
+12336; [7C E1 AF, 05, 05]
-12337; [7B C0 B6, 05, 05]
+12337; [7C E1 B6, 05, 05]
-12338; [7B C0 BD, 05, 05]
+12338; [7C E1 BD, 05, 05]
-12339; [7B C0 C4, 05, 05]
+12339; [7C E1 C4, 05, 05]
-1233A; [7B C0 CB, 05, 05]
+1233A; [7C E1 CB, 05, 05]
-1233B; [7B C0 D2, 05, 05]
+1233B; [7C E1 D2, 05, 05]
-1233C; [7B C0 D9, 05, 05]
+1233C; [7C E1 D9, 05, 05]
-1233D; [7B C0 E0, 05, 05]
+1233D; [7C E1 E0, 05, 05]
-1233E; [7B C0 E7, 05, 05]
+1233E; [7C E1 E7, 05, 05]
-1233F; [7B C0 EE, 05, 05]
+1233F; [7C E1 EE, 05, 05]
-12340; [7B C0 F5, 05, 05]
+12340; [7C E1 F5, 05, 05]
-12341; [7B C0 FC, 05, 05]
+12341; [7C E1 FC, 05, 05]
-12342; [7B C1 05, 05, 05]
+12342; [7C E2 05, 05, 05]
-12343; [7B C1 0C, 05, 05]
+12343; [7C E2 0C, 05, 05]
-12344; [7B C1 13, 05, 05]
+12344; [7C E2 13, 05, 05]
-12345; [7B C1 1A, 05, 05]
+12345; [7C E2 1A, 05, 05]
-12346; [7B C1 21, 05, 05]
+12346; [7C E2 21, 05, 05]
-12347; [7B C1 28, 05, 05]
+12347; [7C E2 28, 05, 05]
-12348; [7B C1 2F, 05, 05]
+12348; [7C E2 2F, 05, 05]
-12349; [7B C1 36, 05, 05]
+12349; [7C E2 36, 05, 05]
-1234A; [7B C1 3D, 05, 05]
+1234A; [7C E2 3D, 05, 05]
-1234B; [7B C1 44, 05, 05]
+1234B; [7C E2 44, 05, 05]
-1234C; [7B C1 4B, 05, 05]
+1234C; [7C E2 4B, 05, 05]
-1234D; [7B C1 52, 05, 05]
+1234D; [7C E2 52, 05, 05]
-1234E; [7B C1 59, 05, 05]
+1234E; [7C E2 59, 05, 05]
-1234F; [7B C1 60, 05, 05]
+1234F; [7C E2 60, 05, 05]
-12350; [7B C1 67, 05, 05]
+12350; [7C E2 67, 05, 05]
-12351; [7B C1 6E, 05, 05]
+12351; [7C E2 6E, 05, 05]
-12352; [7B C1 75, 05, 05]
+12352; [7C E2 75, 05, 05]
-12353; [7B C1 7C, 05, 05]
+12353; [7C E2 7C, 05, 05]
-12354; [7B C1 83, 05, 05]
+12354; [7C E2 83, 05, 05]
-12355; [7B C1 8A, 05, 05]
+12355; [7C E2 8A, 05, 05]
-12356; [7B C1 91, 05, 05]
+12356; [7C E2 91, 05, 05]
-12357; [7B C1 98, 05, 05]
+12357; [7C E2 98, 05, 05]
-12358; [7B C1 9F, 05, 05]
+12358; [7C E2 9F, 05, 05]
-12359; [7B C1 A6, 05, 05]
+12359; [7C E2 A6, 05, 05]
-1235A; [7B C1 AD, 05, 05]
+1235A; [7C E2 AD, 05, 05]
-1235B; [7B C1 B4, 05, 05]
+1235B; [7C E2 B4, 05, 05]
-1235C; [7B C1 BB, 05, 05]
+1235C; [7C E2 BB, 05, 05]
-1235D; [7B C1 C2, 05, 05]
+1235D; [7C E2 C2, 05, 05]
-1235E; [7B C1 C9, 05, 05]
+1235E; [7C E2 C9, 05, 05]
-1235F; [7B C1 D0, 05, 05]
+1235F; [7C E2 D0, 05, 05]
-12360; [7B C1 D7, 05, 05]
+12360; [7C E2 D7, 05, 05]
-12361; [7B C1 DE, 05, 05]
+12361; [7C E2 DE, 05, 05]
-12362; [7B C1 E5, 05, 05]
+12362; [7C E2 E5, 05, 05]
-12363; [7B C1 EC, 05, 05]
+12363; [7C E2 EC, 05, 05]
-12364; [7B C1 F3, 05, 05]
+12364; [7C E2 F3, 05, 05]
-12365; [7B C1 FA, 05, 05]
+12365; [7C E2 FA, 05, 05]
-12366; [7B C2 03, 05, 05]
+12366; [7C E3 03, 05, 05]
-12367; [7B C2 0A, 05, 05]
+12367; [7C E3 0A, 05, 05]
-12368; [7B C2 11, 05, 05]
+12368; [7C E3 11, 05, 05]
-12369; [7B C2 18, 05, 05]
+12369; [7C E3 18, 05, 05]
-1236A; [7B C2 1F, 05, 05]
+1236A; [7C E3 1F, 05, 05]
-1236B; [7B C2 26, 05, 05]
+1236B; [7C E3 26, 05, 05]
-1236C; [7B C2 2D, 05, 05]
+1236C; [7C E3 2D, 05, 05]
-1236D; [7B C2 34, 05, 05]
+1236D; [7C E3 34, 05, 05]
-1236E; [7B C2 3B, 05, 05]
+1236E; [7C E3 3B, 05, 05]
-1236F; [7B C2 42, 05, 05]
+1236F; [7C E3 42, 05, 05]
-12370; [7B C2 49, 05, 05]
+12370; [7C E3 49, 05, 05]
-12371; [7B C2 50, 05, 05]
+12371; [7C E3 50, 05, 05]
-12372; [7B C2 57, 05, 05]
+12372; [7C E3 57, 05, 05]
-12373; [7B C2 5E, 05, 05]
+12373; [7C E3 5E, 05, 05]
-12374; [7B C2 65, 05, 05]
+12374; [7C E3 65, 05, 05]
-12375; [7B C2 6C, 05, 05]
+12375; [7C E3 6C, 05, 05]
-12376; [7B C2 73, 05, 05]
+12376; [7C E3 73, 05, 05]
-12377; [7B C2 7A, 05, 05]
+12377; [7C E3 7A, 05, 05]
-12378; [7B C2 81, 05, 05]
+12378; [7C E3 81, 05, 05]
-12379; [7B C2 88, 05, 05]
+12379; [7C E3 88, 05, 05]
-1237A; [7B C2 8F, 05, 05]
+1237A; [7C E3 8F, 05, 05]
-1237B; [7B C2 96, 05, 05]
+1237B; [7C E3 96, 05, 05]
-1237C; [7B C2 9D, 05, 05]
+1237C; [7C E3 9D, 05, 05]
-1237D; [7B C2 A4, 05, 05]
+1237D; [7C E3 A4, 05, 05]
-1237E; [7B C2 AB, 05, 05]
+1237E; [7C E3 AB, 05, 05]
-1237F; [7B C2 B2, 05, 05]
+1237F; [7C E3 B2, 05, 05]
-12380; [7B C2 B9, 05, 05]
+12380; [7C E3 B9, 05, 05]
-12381; [7B C2 C0, 05, 05]
+12381; [7C E3 C0, 05, 05]
-12382; [7B C2 C7, 05, 05]
+12382; [7C E3 C7, 05, 05]
-12383; [7B C2 CE, 05, 05]
+12383; [7C E3 CE, 05, 05]
-12384; [7B C2 D5, 05, 05]
+12384; [7C E3 D5, 05, 05]
-12385; [7B C2 DC, 05, 05]
+12385; [7C E3 DC, 05, 05]
-12386; [7B C2 E3, 05, 05]
+12386; [7C E3 E3, 05, 05]
-12387; [7B C2 EA, 05, 05]
+12387; [7C E3 EA, 05, 05]
-12388; [7B C2 F1, 05, 05]
+12388; [7C E3 F1, 05, 05]
-12389; [7B C2 F8, 05, 05]
+12389; [7C E3 F8, 05, 05]
-1238A; [7B C2 FF, 05, 05]
+1238A; [7C E3 FF, 05, 05]
-1238B; [7B C3 08, 05, 05]
+1238B; [7C E4 08, 05, 05]
-1238C; [7B C3 0F, 05, 05]
+1238C; [7C E4 0F, 05, 05]
-1238D; [7B C3 16, 05, 05]
+1238D; [7C E4 16, 05, 05]
-1238E; [7B C3 1D, 05, 05]
+1238E; [7C E4 1D, 05, 05]
-1238F; [7B C3 24, 05, 05]
+1238F; [7C E4 24, 05, 05]
-12390; [7B C3 2B, 05, 05]
+12390; [7C E4 2B, 05, 05]
-12391; [7B C3 32, 05, 05]
+12391; [7C E4 32, 05, 05]
-12392; [7B C3 39, 05, 05]
+12392; [7C E4 39, 05, 05]
-12393; [7B C3 40, 05, 05]
+12393; [7C E4 40, 05, 05]
-12394; [7B C3 47, 05, 05]
+12394; [7C E4 47, 05, 05]
-12395; [7B C3 4E, 05, 05]
+12395; [7C E4 4E, 05, 05]
-12396; [7B C3 55, 05, 05]
+12396; [7C E4 55, 05, 05]
-12397; [7B C3 5C, 05, 05]
+12397; [7C E4 5C, 05, 05]
-12398; [7B C3 63, 05, 05]
+12398; [7C E4 63, 05, 05]
-12399; [7B C3 6A, 05, 05]
+12399; [7C E4 6A, 05, 05]
-12480; [7B C3 71, 05, 05]
+12480; [7C E4 71, 05, 05]
-12481; [7B C3 78, 05, 05]
+12481; [7C E4 78, 05, 05]
-12482; [7B C3 7F, 05, 05]
+12482; [7C E4 7F, 05, 05]
-12483; [7B C3 86, 05, 05]
+12483; [7C E4 86, 05, 05]
-12484; [7B C3 8D, 05, 05]
+12484; [7C E4 8D, 05, 05]
-12485; [7B C3 94, 05, 05]
+12485; [7C E4 94, 05, 05]
-12486; [7B C3 9B, 05, 05]
+12486; [7C E4 9B, 05, 05]
-12487; [7B C3 A2, 05, 05]
+12487; [7C E4 A2, 05, 05]
-12488; [7B C3 A9, 05, 05]
+12488; [7C E4 A9, 05, 05]
-12489; [7B C3 B0, 05, 05]
+12489; [7C E4 B0, 05, 05]
-1248A; [7B C3 B7, 05, 05]
+1248A; [7C E4 B7, 05, 05]
-1248B; [7B C3 BE, 05, 05]
+1248B; [7C E4 BE, 05, 05]
-1248C; [7B C3 C5, 05, 05]
+1248C; [7C E4 C5, 05, 05]
-1248D; [7B C3 CC, 05, 05]
+1248D; [7C E4 CC, 05, 05]
-1248E; [7B C3 D3, 05, 05]
+1248E; [7C E4 D3, 05, 05]
-1248F; [7B C3 DA, 05, 05]
+1248F; [7C E4 DA, 05, 05]
-12490; [7B C3 E1, 05, 05]
+12490; [7C E4 E1, 05, 05]
-12491; [7B C3 E8, 05, 05]
+12491; [7C E4 E8, 05, 05]
-12492; [7B C3 EF, 05, 05]
+12492; [7C E4 EF, 05, 05]
-12493; [7B C3 F6, 05, 05]
+12493; [7C E4 F6, 05, 05]
-12494; [7B C3 FD, 05, 05]
+12494; [7C E4 FD, 05, 05]
-12495; [7B C4 06, 05, 05]
+12495; [7C E5 06, 05, 05]
-12496; [7B C4 0D, 05, 05]
+12496; [7C E5 0D, 05, 05]
-12497; [7B C4 14, 05, 05]
+12497; [7C E5 14, 05, 05]
-12498; [7B C4 1B, 05, 05]
+12498; [7C E5 1B, 05, 05]
-12499; [7B C4 22, 05, 05]
+12499; [7C E5 22, 05, 05]
-1249A; [7B C4 29, 05, 05]
+1249A; [7C E5 29, 05, 05]
-1249B; [7B C4 30, 05, 05]
+1249B; [7C E5 30, 05, 05]
-1249C; [7B C4 37, 05, 05]
+1249C; [7C E5 37, 05, 05]
-1249D; [7B C4 3E, 05, 05]
+1249D; [7C E5 3E, 05, 05]
-1249E; [7B C4 45, 05, 05]
+1249E; [7C E5 45, 05, 05]
-1249F; [7B C4 4C, 05, 05]
+1249F; [7C E5 4C, 05, 05]
-124A0; [7B C4 53, 05, 05]
+124A0; [7C E5 53, 05, 05]
-124A1; [7B C4 5A, 05, 05]
+124A1; [7C E5 5A, 05, 05]
-124A2; [7B C4 61, 05, 05]
+124A2; [7C E5 61, 05, 05]
-124A3; [7B C4 68, 05, 05]
+124A3; [7C E5 68, 05, 05]
-124A4; [7B C4 6F, 05, 05]
+124A4; [7C E5 6F, 05, 05]
-124A5; [7B C4 76, 05, 05]
+124A5; [7C E5 76, 05, 05]
-124A6; [7B C4 7D, 05, 05]
+124A6; [7C E5 7D, 05, 05]
-124A7; [7B C4 84, 05, 05]
+124A7; [7C E5 84, 05, 05]
-124A8; [7B C4 8B, 05, 05]
+124A8; [7C E5 8B, 05, 05]
-124A9; [7B C4 92, 05, 05]
+124A9; [7C E5 92, 05, 05]
-124AA; [7B C4 99, 05, 05]
+124AA; [7C E5 99, 05, 05]
-124AB; [7B C4 A0, 05, 05]
+124AB; [7C E5 A0, 05, 05]
-124AC; [7B C4 A7, 05, 05]
+124AC; [7C E5 A7, 05, 05]
-124AD; [7B C4 AE, 05, 05]
+124AD; [7C E5 AE, 05, 05]
-124AE; [7B C4 B5, 05, 05]
+124AE; [7C E5 B5, 05, 05]
-124AF; [7B C4 BC, 05, 05]
+124AF; [7C E5 BC, 05, 05]
-124B0; [7B C4 C3, 05, 05]
+124B0; [7C E5 C3, 05, 05]
-124B1; [7B C4 CA, 05, 05]
+124B1; [7C E5 CA, 05, 05]
-124B2; [7B C4 D1, 05, 05]
+124B2; [7C E5 D1, 05, 05]
-124B3; [7B C4 D8, 05, 05]
+124B3; [7C E5 D8, 05, 05]
-124B4; [7B C4 DF, 05, 05]
+124B4; [7C E5 DF, 05, 05]
-124B5; [7B C4 E6, 05, 05]
+124B5; [7C E5 E6, 05, 05]
-124B6; [7B C4 ED, 05, 05]
+124B6; [7C E5 ED, 05, 05]
-124B7; [7B C4 F4, 05, 05]
+124B7; [7C E5 F4, 05, 05]
-124B8; [7B C4 FB, 05, 05]
+124B8; [7C E5 FB, 05, 05]
-124B9; [7B C5 04, 05, 05]
+124B9; [7C E6 04, 05, 05]
-124BA; [7B C5 0B, 05, 05]
+124BA; [7C E6 0B, 05, 05]
-124BB; [7B C5 12, 05, 05]
+124BB; [7C E6 12, 05, 05]
-124BC; [7B C5 19, 05, 05]
+124BC; [7C E6 19, 05, 05]
-124BD; [7B C5 20, 05, 05]
+124BD; [7C E6 20, 05, 05]
-124BE; [7B C5 27, 05, 05]
+124BE; [7C E6 27, 05, 05]
-124BF; [7B C5 2E, 05, 05]
+124BF; [7C E6 2E, 05, 05]
-124C0; [7B C5 35, 05, 05]
+124C0; [7C E6 35, 05, 05]
-124C1; [7B C5 3C, 05, 05]
+124C1; [7C E6 3C, 05, 05]
-124C2; [7B C5 43, 05, 05]
+124C2; [7C E6 43, 05, 05]
-124C3; [7B C5 4A, 05, 05]
+124C3; [7C E6 4A, 05, 05]
-124C4; [7B C5 51, 05, 05]
+124C4; [7C E6 51, 05, 05]
-124C5; [7B C5 58, 05, 05]
+124C5; [7C E6 58, 05, 05]
-124C6; [7B C5 5F, 05, 05]
+124C6; [7C E6 5F, 05, 05]
-124C7; [7B C5 66, 05, 05]
+124C7; [7C E6 66, 05, 05]
-124C8; [7B C5 6D, 05, 05]
+124C8; [7C E6 6D, 05, 05]
-124C9; [7B C5 74, 05, 05]
+124C9; [7C E6 74, 05, 05]
-124CA; [7B C5 7B, 05, 05]
+124CA; [7C E6 7B, 05, 05]
-124CB; [7B C5 82, 05, 05]
+124CB; [7C E6 82, 05, 05]
-124CC; [7B C5 89, 05, 05]
+124CC; [7C E6 89, 05, 05]
-124CD; [7B C5 90, 05, 05]
+124CD; [7C E6 90, 05, 05]
-124CE; [7B C5 97, 05, 05]
+124CE; [7C E6 97, 05, 05]
-124CF; [7B C5 9E, 05, 05]
+124CF; [7C E6 9E, 05, 05]
-124D0; [7B C5 A5, 05, 05]
+124D0; [7C E6 A5, 05, 05]
-124D1; [7B C5 AC, 05, 05]
+124D1; [7C E6 AC, 05, 05]
-124D2; [7B C5 B3, 05, 05]
+124D2; [7C E6 B3, 05, 05]
-124D3; [7B C5 BA, 05, 05]
+124D3; [7C E6 BA, 05, 05]
-124D4; [7B C5 C1, 05, 05]
+124D4; [7C E6 C1, 05, 05]
-124D5; [7B C5 C8, 05, 05]
+124D5; [7C E6 C8, 05, 05]
-124D6; [7B C5 CF, 05, 05]
+124D6; [7C E6 CF, 05, 05]
-124D7; [7B C5 D6, 05, 05]
+124D7; [7C E6 D6, 05, 05]
-124D8; [7B C5 DD, 05, 05]
+124D8; [7C E6 DD, 05, 05]
-124D9; [7B C5 E4, 05, 05]
+124D9; [7C E6 E4, 05, 05]
-124DA; [7B C5 EB, 05, 05]
+124DA; [7C E6 EB, 05, 05]
-124DB; [7B C5 F2, 05, 05]
+124DB; [7C E6 F2, 05, 05]
-124DC; [7B C5 F9, 05, 05]
+124DC; [7C E6 F9, 05, 05]
-124DD; [7B C6 02, 05, 05]
+124DD; [7C E7 02, 05, 05]
-124DE; [7B C6 09, 05, 05]
+124DE; [7C E7 09, 05, 05]
-124DF; [7B C6 10, 05, 05]
+124DF; [7C E7 10, 05, 05]
-124E0; [7B C6 17, 05, 05]
+124E0; [7C E7 17, 05, 05]
-124E1; [7B C6 1E, 05, 05]
+124E1; [7C E7 1E, 05, 05]
-124E2; [7B C6 25, 05, 05]
+124E2; [7C E7 25, 05, 05]
-124E3; [7B C6 2C, 05, 05]
+124E3; [7C E7 2C, 05, 05]
-124E4; [7B C6 33, 05, 05]
+124E4; [7C E7 33, 05, 05]
-124E5; [7B C6 3A, 05, 05]
+124E5; [7C E7 3A, 05, 05]
-124E6; [7B C6 41, 05, 05]
+124E6; [7C E7 41, 05, 05]
-124E7; [7B C6 48, 05, 05]
+124E7; [7C E7 48, 05, 05]
-124E8; [7B C6 4F, 05, 05]
+124E8; [7C E7 4F, 05, 05]
-124E9; [7B C6 56, 05, 05]
+124E9; [7C E7 56, 05, 05]
-124EA; [7B C6 5D, 05, 05]
+124EA; [7C E7 5D, 05, 05]
-124EB; [7B C6 64, 05, 05]
+124EB; [7C E7 64, 05, 05]
-124EC; [7B C6 6B, 05, 05]
+124EC; [7C E7 6B, 05, 05]
-124ED; [7B C6 72, 05, 05]
+124ED; [7C E7 72, 05, 05]
-124EE; [7B C6 79, 05, 05]
+124EE; [7C E7 79, 05, 05]
-124EF; [7B C6 80, 05, 05]
+124EF; [7C E7 80, 05, 05]
-124F0; [7B C6 87, 05, 05]
+124F0; [7C E7 87, 05, 05]
-124F1; [7B C6 8E, 05, 05]
+124F1; [7C E7 8E, 05, 05]
-124F2; [7B C6 95, 05, 05]
+124F2; [7C E7 95, 05, 05]
-124F3; [7B C6 9C, 05, 05]
+124F3; [7C E7 9C, 05, 05]
-124F4; [7B C6 A3, 05, 05]
+124F4; [7C E7 A3, 05, 05]
-124F5; [7B C6 AA, 05, 05]
+124F5; [7C E7 AA, 05, 05]
-124F6; [7B C6 B1, 05, 05]
+124F6; [7C E7 B1, 05, 05]
-124F7; [7B C6 B8, 05, 05]
+124F7; [7C E7 B8, 05, 05]
-124F8; [7B C6 BF, 05, 05]
+124F8; [7C E7 BF, 05, 05]
-124F9; [7B C6 C6, 05, 05]
+124F9; [7C E7 C6, 05, 05]
-124FA; [7B C6 CD, 05, 05]
+124FA; [7C E7 CD, 05, 05]
-124FB; [7B C6 D4, 05, 05]
+124FB; [7C E7 D4, 05, 05]
-124FC; [7B C6 DB, 05, 05]
+124FC; [7C E7 DB, 05, 05]
-124FD; [7B C6 E2, 05, 05]
+124FD; [7C E7 E2, 05, 05]
-124FE; [7B C6 E9, 05, 05]
+124FE; [7C E7 E9, 05, 05]
-124FF; [7B C6 F0, 05, 05]
+124FF; [7C E7 F0, 05, 05]
-12500; [7B C6 F7, 05, 05]
+12500; [7C E7 F7, 05, 05]
-12501; [7B C6 FE, 05, 05]
+12501; [7C E7 FE, 05, 05]
-12502; [7B C7 07, 05, 05]
+12502; [7C E8 07, 05, 05]
-12503; [7B C7 0E, 05, 05]
+12503; [7C E8 0E, 05, 05]
-12504; [7B C7 15, 05, 05]
+12504; [7C E8 15, 05, 05]
-12505; [7B C7 1C, 05, 05]
+12505; [7C E8 1C, 05, 05]
-12506; [7B C7 23, 05, 05]
+12506; [7C E8 23, 05, 05]
-12507; [7B C7 2A, 05, 05]
+12507; [7C E8 2A, 05, 05]
-12508; [7B C7 31, 05, 05]
+12508; [7C E8 31, 05, 05]
-12509; [7B C7 38, 05, 05]
+12509; [7C E8 38, 05, 05]
-1250A; [7B C7 3F, 05, 05]
+1250A; [7C E8 3F, 05, 05]
-1250B; [7B C7 46, 05, 05]
+1250B; [7C E8 46, 05, 05]
-1250C; [7B C7 4D, 05, 05]
+1250C; [7C E8 4D, 05, 05]
-1250D; [7B C7 54, 05, 05]
+1250D; [7C E8 54, 05, 05]
-1250E; [7B C7 5B, 05, 05]
+1250E; [7C E8 5B, 05, 05]
-1250F; [7B C7 62, 05, 05]
+1250F; [7C E8 62, 05, 05]
-12510; [7B C7 69, 05, 05]
+12510; [7C E8 69, 05, 05]
-12511; [7B C7 70, 05, 05]
+12511; [7C E8 70, 05, 05]
-12512; [7B C7 77, 05, 05]
+12512; [7C E8 77, 05, 05]
-12513; [7B C7 7E, 05, 05]
+12513; [7C E8 7E, 05, 05]
-12514; [7B C7 85, 05, 05]
+12514; [7C E8 85, 05, 05]
-12515; [7B C7 8C, 05, 05]
+12515; [7C E8 8C, 05, 05]
-12516; [7B C7 93, 05, 05]
+12516; [7C E8 93, 05, 05]
-12517; [7B C7 9A, 05, 05]
+12517; [7C E8 9A, 05, 05]
-12518; [7B C7 A1, 05, 05]
+12518; [7C E8 A1, 05, 05]
-12519; [7B C7 A8, 05, 05]
+12519; [7C E8 A8, 05, 05]
-1251A; [7B C7 AF, 05, 05]
+1251A; [7C E8 AF, 05, 05]
-1251B; [7B C7 B6, 05, 05]
+1251B; [7C E8 B6, 05, 05]
-1251C; [7B C7 BD, 05, 05]
+1251C; [7C E8 BD, 05, 05]
-1251D; [7B C7 C4, 05, 05]
+1251D; [7C E8 C4, 05, 05]
-1251E; [7B C7 CB, 05, 05]
+1251E; [7C E8 CB, 05, 05]
-1251F; [7B C7 D2, 05, 05]
+1251F; [7C E8 D2, 05, 05]
-12520; [7B C7 D9, 05, 05]
+12520; [7C E8 D9, 05, 05]
-12521; [7B C7 E0, 05, 05]
+12521; [7C E8 E0, 05, 05]
-12522; [7B C7 E7, 05, 05]
+12522; [7C E8 E7, 05, 05]
-12523; [7B C7 EE, 05, 05]
+12523; [7C E8 EE, 05, 05]
-12524; [7B C7 F5, 05, 05]
+12524; [7C E8 F5, 05, 05]
-12525; [7B C7 FC, 05, 05]
+12525; [7C E8 FC, 05, 05]
-12526; [7B C8 05, 05, 05]
+12526; [7C E9 05, 05, 05]
-12527; [7B C8 0C, 05, 05]
+12527; [7C E9 0C, 05, 05]
-12528; [7B C8 13, 05, 05]
+12528; [7C E9 13, 05, 05]
-12529; [7B C8 1A, 05, 05]
+12529; [7C E9 1A, 05, 05]
-1252A; [7B C8 21, 05, 05]
+1252A; [7C E9 21, 05, 05]
-1252B; [7B C8 28, 05, 05]
+1252B; [7C E9 28, 05, 05]
-1252C; [7B C8 2F, 05, 05]
+1252C; [7C E9 2F, 05, 05]
-1252D; [7B C8 36, 05, 05]
+1252D; [7C E9 36, 05, 05]
-1252E; [7B C8 3D, 05, 05]
+1252E; [7C E9 3D, 05, 05]
-1252F; [7B C8 44, 05, 05]
+1252F; [7C E9 44, 05, 05]
-12530; [7B C8 4B, 05, 05]
+12530; [7C E9 4B, 05, 05]
-12531; [7B C8 52, 05, 05]
+12531; [7C E9 52, 05, 05]
-12532; [7B C8 59, 05, 05]
+12532; [7C E9 59, 05, 05]
-12533; [7B C8 60, 05, 05]
+12533; [7C E9 60, 05, 05]
-12534; [7B C8 67, 05, 05]
+12534; [7C E9 67, 05, 05]
-12535; [7B C8 6E, 05, 05]
+12535; [7C E9 6E, 05, 05]
-12536; [7B C8 75, 05, 05]
+12536; [7C E9 75, 05, 05]
-12537; [7B C8 7C, 05, 05]
+12537; [7C E9 7C, 05, 05]
-12538; [7B C8 83, 05, 05]
+12538; [7C E9 83, 05, 05]
-12539; [7B C8 8A, 05, 05]
+12539; [7C E9 8A, 05, 05]
-1253A; [7B C8 91, 05, 05]
+1253A; [7C E9 91, 05, 05]
-1253B; [7B C8 98, 05, 05]
+1253B; [7C E9 98, 05, 05]
-1253C; [7B C8 9F, 05, 05]
+1253C; [7C E9 9F, 05, 05]
-1253D; [7B C8 A6, 05, 05]
+1253D; [7C E9 A6, 05, 05]
-1253E; [7B C8 AD, 05, 05]
+1253E; [7C E9 AD, 05, 05]
-1253F; [7B C8 B4, 05, 05]
+1253F; [7C E9 B4, 05, 05]
-12540; [7B C8 BB, 05, 05]
+12540; [7C E9 BB, 05, 05]
-12541; [7B C8 C2, 05, 05]
+12541; [7C E9 C2, 05, 05]
-12542; [7B C8 C9, 05, 05]
+12542; [7C E9 C9, 05, 05]
-12543; [7B C8 D0, 05, 05]
+12543; [7C E9 D0, 05, 05]
-FDD1 13153; [7B C9 02, 05, 05] # Egyptian Hieroglyphs first primary (compressible)
+FDD1 13153; [7D 04 02, 05, 05] # Egyptian Hieroglyphs first primary starts new lead byte (compressible)
-13000; [7B C9 09, 05, 05]
+13000; [7D 04 09, 05, 05]
-13001; [7B C9 10, 05, 05]
+13001; [7D 04 10, 05, 05]
-13002; [7B C9 17, 05, 05]
+13002; [7D 04 17, 05, 05]
-13003; [7B C9 1E, 05, 05]
+13003; [7D 04 1E, 05, 05]
-13004; [7B C9 25, 05, 05]
+13004; [7D 04 25, 05, 05]
-13005; [7B C9 2C, 05, 05]
+13005; [7D 04 2C, 05, 05]
-13006; [7B C9 33, 05, 05]
+13006; [7D 04 33, 05, 05]
-13007; [7B C9 3A, 05, 05]
+13007; [7D 04 3A, 05, 05]
-13008; [7B C9 41, 05, 05]
+13008; [7D 04 41, 05, 05]
-13009; [7B C9 48, 05, 05]
+13009; [7D 04 48, 05, 05]
-1300A; [7B C9 4F, 05, 05]
+1300A; [7D 04 4F, 05, 05]
-1300B; [7B C9 56, 05, 05]
+1300B; [7D 04 56, 05, 05]
-1300C; [7B C9 5D, 05, 05]
+1300C; [7D 04 5D, 05, 05]
-1300D; [7B C9 64, 05, 05]
+1300D; [7D 04 64, 05, 05]
-1300E; [7B C9 6B, 05, 05]
+1300E; [7D 04 6B, 05, 05]
-1300F; [7B C9 72, 05, 05]
+1300F; [7D 04 72, 05, 05]
-13010; [7B C9 79, 05, 05]
+13010; [7D 04 79, 05, 05]
-13011; [7B C9 80, 05, 05]
+13011; [7D 04 80, 05, 05]
-13012; [7B C9 87, 05, 05]
+13012; [7D 04 87, 05, 05]
-13013; [7B C9 8E, 05, 05]
+13013; [7D 04 8E, 05, 05]
-13014; [7B C9 95, 05, 05]
+13014; [7D 04 95, 05, 05]
-13015; [7B C9 9C, 05, 05]
+13015; [7D 04 9C, 05, 05]
-13016; [7B C9 A3, 05, 05]
+13016; [7D 04 A3, 05, 05]
-13017; [7B C9 AA, 05, 05]
+13017; [7D 04 AA, 05, 05]
-13018; [7B C9 B1, 05, 05]
+13018; [7D 04 B1, 05, 05]
-13019; [7B C9 B8, 05, 05]
+13019; [7D 04 B8, 05, 05]
-1301A; [7B C9 BF, 05, 05]
+1301A; [7D 04 BF, 05, 05]
-1301B; [7B C9 C6, 05, 05]
+1301B; [7D 04 C6, 05, 05]
-1301C; [7B C9 CD, 05, 05]
+1301C; [7D 04 CD, 05, 05]
-1301D; [7B C9 D4, 05, 05]
+1301D; [7D 04 D4, 05, 05]
-1301E; [7B C9 DB, 05, 05]
+1301E; [7D 04 DB, 05, 05]
-1301F; [7B C9 E2, 05, 05]
+1301F; [7D 04 E2, 05, 05]
-13020; [7B C9 E9, 05, 05]
+13020; [7D 04 E9, 05, 05]
-13021; [7B C9 F0, 05, 05]
+13021; [7D 04 F0, 05, 05]
-13022; [7B C9 F7, 05, 05]
+13022; [7D 04 F7, 05, 05]
-13023; [7B C9 FE, 05, 05]
+13023; [7D 04 FE, 05, 05]
-13024; [7B CA 07, 05, 05]
+13024; [7D 05 07, 05, 05]
-13025; [7B CA 0E, 05, 05]
+13025; [7D 05 0E, 05, 05]
-13026; [7B CA 15, 05, 05]
+13026; [7D 05 15, 05, 05]
-13027; [7B CA 1C, 05, 05]
+13027; [7D 05 1C, 05, 05]
-13028; [7B CA 23, 05, 05]
+13028; [7D 05 23, 05, 05]
-13029; [7B CA 2A, 05, 05]
+13029; [7D 05 2A, 05, 05]
-1302A; [7B CA 31, 05, 05]
+1302A; [7D 05 31, 05, 05]
-1302B; [7B CA 38, 05, 05]
+1302B; [7D 05 38, 05, 05]
-1302C; [7B CA 3F, 05, 05]
+1302C; [7D 05 3F, 05, 05]
-1302D; [7B CA 46, 05, 05]
+1302D; [7D 05 46, 05, 05]
-1302E; [7B CA 4D, 05, 05]
+1302E; [7D 05 4D, 05, 05]
-1302F; [7B CA 54, 05, 05]
+1302F; [7D 05 54, 05, 05]
-13030; [7B CA 5B, 05, 05]
+13030; [7D 05 5B, 05, 05]
-13031; [7B CA 62, 05, 05]
+13031; [7D 05 62, 05, 05]
-13032; [7B CA 69, 05, 05]
+13032; [7D 05 69, 05, 05]
-13033; [7B CA 70, 05, 05]
+13033; [7D 05 70, 05, 05]
-13034; [7B CA 77, 05, 05]
+13034; [7D 05 77, 05, 05]
-13035; [7B CA 7E, 05, 05]
+13035; [7D 05 7E, 05, 05]
-13036; [7B CA 85, 05, 05]
+13036; [7D 05 85, 05, 05]
-13037; [7B CA 8C, 05, 05]
+13037; [7D 05 8C, 05, 05]
-13038; [7B CA 93, 05, 05]
+13038; [7D 05 93, 05, 05]
-13039; [7B CA 9A, 05, 05]
+13039; [7D 05 9A, 05, 05]
-1303A; [7B CA A1, 05, 05]
+1303A; [7D 05 A1, 05, 05]
-1303B; [7B CA A8, 05, 05]
+1303B; [7D 05 A8, 05, 05]
-1303C; [7B CA AF, 05, 05]
+1303C; [7D 05 AF, 05, 05]
-1303D; [7B CA B6, 05, 05]
+1303D; [7D 05 B6, 05, 05]
-1303E; [7B CA BD, 05, 05]
+1303E; [7D 05 BD, 05, 05]
-1303F; [7B CA C4, 05, 05]
+1303F; [7D 05 C4, 05, 05]
-13040; [7B CA CB, 05, 05]
+13040; [7D 05 CB, 05, 05]
-13041; [7B CA D2, 05, 05]
+13041; [7D 05 D2, 05, 05]
-13042; [7B CA D9, 05, 05]
+13042; [7D 05 D9, 05, 05]
-13043; [7B CA E0, 05, 05]
+13043; [7D 05 E0, 05, 05]
-13044; [7B CA E7, 05, 05]
+13044; [7D 05 E7, 05, 05]
-13045; [7B CA EE, 05, 05]
+13045; [7D 05 EE, 05, 05]
-13046; [7B CA F5, 05, 05]
+13046; [7D 05 F5, 05, 05]
-13047; [7B CA FC, 05, 05]
+13047; [7D 05 FC, 05, 05]
-13048; [7B CB 05, 05, 05]
+13048; [7D 06 05, 05, 05]
-13049; [7B CB 0C, 05, 05]
+13049; [7D 06 0C, 05, 05]
-1304A; [7B CB 13, 05, 05]
+1304A; [7D 06 13, 05, 05]
-1304B; [7B CB 1A, 05, 05]
+1304B; [7D 06 1A, 05, 05]
-1304C; [7B CB 21, 05, 05]
+1304C; [7D 06 21, 05, 05]
-1304D; [7B CB 28, 05, 05]
+1304D; [7D 06 28, 05, 05]
-1304E; [7B CB 2F, 05, 05]
+1304E; [7D 06 2F, 05, 05]
-1304F; [7B CB 36, 05, 05]
+1304F; [7D 06 36, 05, 05]
-13050; [7B CB 3D, 05, 05]
+13050; [7D 06 3D, 05, 05]
-13051; [7B CB 44, 05, 05]
+13051; [7D 06 44, 05, 05]
-13052; [7B CB 4B, 05, 05]
+13052; [7D 06 4B, 05, 05]
-13053; [7B CB 52, 05, 05]
+13053; [7D 06 52, 05, 05]
-13054; [7B CB 59, 05, 05]
+13054; [7D 06 59, 05, 05]
-13055; [7B CB 60, 05, 05]
+13055; [7D 06 60, 05, 05]
-13056; [7B CB 67, 05, 05]
+13056; [7D 06 67, 05, 05]
-13057; [7B CB 6E, 05, 05]
+13057; [7D 06 6E, 05, 05]
-13058; [7B CB 75, 05, 05]
+13058; [7D 06 75, 05, 05]
-13059; [7B CB 7C, 05, 05]
+13059; [7D 06 7C, 05, 05]
-1305A; [7B CB 83, 05, 05]
+1305A; [7D 06 83, 05, 05]
-1305B; [7B CB 8A, 05, 05]
+1305B; [7D 06 8A, 05, 05]
-1305C; [7B CB 91, 05, 05]
+1305C; [7D 06 91, 05, 05]
-1305D; [7B CB 98, 05, 05]
+1305D; [7D 06 98, 05, 05]
-1305E; [7B CB 9F, 05, 05]
+1305E; [7D 06 9F, 05, 05]
-1305F; [7B CB A6, 05, 05]
+1305F; [7D 06 A6, 05, 05]
-13060; [7B CB AD, 05, 05]
+13060; [7D 06 AD, 05, 05]
-13061; [7B CB B4, 05, 05]
+13061; [7D 06 B4, 05, 05]
-13062; [7B CB BB, 05, 05]
+13062; [7D 06 BB, 05, 05]
-13063; [7B CB C2, 05, 05]
+13063; [7D 06 C2, 05, 05]
-13064; [7B CB C9, 05, 05]
+13064; [7D 06 C9, 05, 05]
-13065; [7B CB D0, 05, 05]
+13065; [7D 06 D0, 05, 05]
-13066; [7B CB D7, 05, 05]
+13066; [7D 06 D7, 05, 05]
-13067; [7B CB DE, 05, 05]
+13067; [7D 06 DE, 05, 05]
-13068; [7B CB E5, 05, 05]
+13068; [7D 06 E5, 05, 05]
-13069; [7B CB EC, 05, 05]
+13069; [7D 06 EC, 05, 05]
-1306A; [7B CB F3, 05, 05]
+1306A; [7D 06 F3, 05, 05]
-1306B; [7B CB FA, 05, 05]
+1306B; [7D 06 FA, 05, 05]
-1306C; [7B CC 03, 05, 05]
+1306C; [7D 07 03, 05, 05]
-1306D; [7B CC 0A, 05, 05]
+1306D; [7D 07 0A, 05, 05]
-1306E; [7B CC 11, 05, 05]
+1306E; [7D 07 11, 05, 05]
-1306F; [7B CC 18, 05, 05]
+1306F; [7D 07 18, 05, 05]
-13070; [7B CC 1F, 05, 05]
+13070; [7D 07 1F, 05, 05]
-13071; [7B CC 26, 05, 05]
+13071; [7D 07 26, 05, 05]
-13072; [7B CC 2D, 05, 05]
+13072; [7D 07 2D, 05, 05]
-13073; [7B CC 34, 05, 05]
+13073; [7D 07 34, 05, 05]
-13074; [7B CC 3B, 05, 05]
+13074; [7D 07 3B, 05, 05]
-13075; [7B CC 42, 05, 05]
+13075; [7D 07 42, 05, 05]
-13076; [7B CC 49, 05, 05]
+13076; [7D 07 49, 05, 05]
-13077; [7B CC 50, 05, 05]
+13077; [7D 07 50, 05, 05]
-13078; [7B CC 57, 05, 05]
+13078; [7D 07 57, 05, 05]
-13079; [7B CC 5E, 05, 05]
+13079; [7D 07 5E, 05, 05]
-1307A; [7B CC 65, 05, 05]
+1307A; [7D 07 65, 05, 05]
-1307B; [7B CC 6C, 05, 05]
+1307B; [7D 07 6C, 05, 05]
-1307C; [7B CC 73, 05, 05]
+1307C; [7D 07 73, 05, 05]
-1307D; [7B CC 7A, 05, 05]
+1307D; [7D 07 7A, 05, 05]
-1307E; [7B CC 81, 05, 05]
+1307E; [7D 07 81, 05, 05]
-1307F; [7B CC 88, 05, 05]
+1307F; [7D 07 88, 05, 05]
-13080; [7B CC 8F, 05, 05]
+13080; [7D 07 8F, 05, 05]
-13081; [7B CC 96, 05, 05]
+13081; [7D 07 96, 05, 05]
-13082; [7B CC 9D, 05, 05]
+13082; [7D 07 9D, 05, 05]
-13083; [7B CC A4, 05, 05]
+13083; [7D 07 A4, 05, 05]
-13084; [7B CC AB, 05, 05]
+13084; [7D 07 AB, 05, 05]
-13085; [7B CC B2, 05, 05]
+13085; [7D 07 B2, 05, 05]
-13086; [7B CC B9, 05, 05]
+13086; [7D 07 B9, 05, 05]
-13087; [7B CC C0, 05, 05]
+13087; [7D 07 C0, 05, 05]
-13088; [7B CC C7, 05, 05]
+13088; [7D 07 C7, 05, 05]
-13089; [7B CC CE, 05, 05]
+13089; [7D 07 CE, 05, 05]
-1308A; [7B CC D5, 05, 05]
+1308A; [7D 07 D5, 05, 05]
-1308B; [7B CC DC, 05, 05]
+1308B; [7D 07 DC, 05, 05]
-1308C; [7B CC E3, 05, 05]
+1308C; [7D 07 E3, 05, 05]
-1308D; [7B CC EA, 05, 05]
+1308D; [7D 07 EA, 05, 05]
-1308E; [7B CC F1, 05, 05]
+1308E; [7D 07 F1, 05, 05]
-1308F; [7B CC F8, 05, 05]
+1308F; [7D 07 F8, 05, 05]
-13090; [7B CC FF, 05, 05]
+13090; [7D 07 FF, 05, 05]
-13091; [7B CD 08, 05, 05]
+13091; [7D 08 08, 05, 05]
-13092; [7B CD 0F, 05, 05]
+13092; [7D 08 0F, 05, 05]
-13093; [7B CD 16, 05, 05]
+13093; [7D 08 16, 05, 05]
-13094; [7B CD 1D, 05, 05]
+13094; [7D 08 1D, 05, 05]
-13095; [7B CD 24, 05, 05]
+13095; [7D 08 24, 05, 05]
-13096; [7B CD 2B, 05, 05]
+13096; [7D 08 2B, 05, 05]
-13097; [7B CD 32, 05, 05]
+13097; [7D 08 32, 05, 05]
-13098; [7B CD 39, 05, 05]
+13098; [7D 08 39, 05, 05]
-13099; [7B CD 40, 05, 05]
+13099; [7D 08 40, 05, 05]
-1309A; [7B CD 47, 05, 05]
+1309A; [7D 08 47, 05, 05]
-1309B; [7B CD 4E, 05, 05]
+1309B; [7D 08 4E, 05, 05]
-1309C; [7B CD 55, 05, 05]
+1309C; [7D 08 55, 05, 05]
-1309D; [7B CD 5C, 05, 05]
+1309D; [7D 08 5C, 05, 05]
-1309E; [7B CD 63, 05, 05]
+1309E; [7D 08 63, 05, 05]
-1309F; [7B CD 6A, 05, 05]
+1309F; [7D 08 6A, 05, 05]
-130A0; [7B CD 71, 05, 05]
+130A0; [7D 08 71, 05, 05]
-130A1; [7B CD 78, 05, 05]
+130A1; [7D 08 78, 05, 05]
-130A2; [7B CD 7F, 05, 05]
+130A2; [7D 08 7F, 05, 05]
-130A3; [7B CD 86, 05, 05]
+130A3; [7D 08 86, 05, 05]
-130A4; [7B CD 8D, 05, 05]
+130A4; [7D 08 8D, 05, 05]
-130A5; [7B CD 94, 05, 05]
+130A5; [7D 08 94, 05, 05]
-130A6; [7B CD 9B, 05, 05]
+130A6; [7D 08 9B, 05, 05]
-130A7; [7B CD A2, 05, 05]
+130A7; [7D 08 A2, 05, 05]
-130A8; [7B CD A9, 05, 05]
+130A8; [7D 08 A9, 05, 05]
-130A9; [7B CD B0, 05, 05]
+130A9; [7D 08 B0, 05, 05]
-130AA; [7B CD B7, 05, 05]
+130AA; [7D 08 B7, 05, 05]
-130AB; [7B CD BE, 05, 05]
+130AB; [7D 08 BE, 05, 05]
-130AC; [7B CD C5, 05, 05]
+130AC; [7D 08 C5, 05, 05]
-130AD; [7B CD CC, 05, 05]
+130AD; [7D 08 CC, 05, 05]
-130AE; [7B CD D3, 05, 05]
+130AE; [7D 08 D3, 05, 05]
-130AF; [7B CD DA, 05, 05]
+130AF; [7D 08 DA, 05, 05]
-130B0; [7B CD E1, 05, 05]
+130B0; [7D 08 E1, 05, 05]
-130B1; [7B CD E8, 05, 05]
+130B1; [7D 08 E8, 05, 05]
-130B2; [7B CD EF, 05, 05]
+130B2; [7D 08 EF, 05, 05]
-130B3; [7B CD F6, 05, 05]
+130B3; [7D 08 F6, 05, 05]
-130B4; [7B CD FD, 05, 05]
+130B4; [7D 08 FD, 05, 05]
-130B5; [7B CE 06, 05, 05]
+130B5; [7D 09 06, 05, 05]
-130B6; [7B CE 0D, 05, 05]
+130B6; [7D 09 0D, 05, 05]
-130B7; [7B CE 14, 05, 05]
+130B7; [7D 09 14, 05, 05]
-130B8; [7B CE 1B, 05, 05]
+130B8; [7D 09 1B, 05, 05]
-130B9; [7B CE 22, 05, 05]
+130B9; [7D 09 22, 05, 05]
-130BA; [7B CE 29, 05, 05]
+130BA; [7D 09 29, 05, 05]
-130BB; [7B CE 30, 05, 05]
+130BB; [7D 09 30, 05, 05]
-130BC; [7B CE 37, 05, 05]
+130BC; [7D 09 37, 05, 05]
-130BD; [7B CE 3E, 05, 05]
+130BD; [7D 09 3E, 05, 05]
-130BE; [7B CE 45, 05, 05]
+130BE; [7D 09 45, 05, 05]
-130BF; [7B CE 4C, 05, 05]
+130BF; [7D 09 4C, 05, 05]
-130C0; [7B CE 53, 05, 05]
+130C0; [7D 09 53, 05, 05]
-130C1; [7B CE 5A, 05, 05]
+130C1; [7D 09 5A, 05, 05]
-130C2; [7B CE 61, 05, 05]
+130C2; [7D 09 61, 05, 05]
-130C3; [7B CE 68, 05, 05]
+130C3; [7D 09 68, 05, 05]
-130C4; [7B CE 6F, 05, 05]
+130C4; [7D 09 6F, 05, 05]
-130C5; [7B CE 76, 05, 05]
+130C5; [7D 09 76, 05, 05]
-130C6; [7B CE 7D, 05, 05]
+130C6; [7D 09 7D, 05, 05]
-130C7; [7B CE 84, 05, 05]
+130C7; [7D 09 84, 05, 05]
-130C8; [7B CE 8B, 05, 05]
+130C8; [7D 09 8B, 05, 05]
-130C9; [7B CE 92, 05, 05]
+130C9; [7D 09 92, 05, 05]
-130CA; [7B CE 99, 05, 05]
+130CA; [7D 09 99, 05, 05]
-130CB; [7B CE A0, 05, 05]
+130CB; [7D 09 A0, 05, 05]
-130CC; [7B CE A7, 05, 05]
+130CC; [7D 09 A7, 05, 05]
-130CD; [7B CE AE, 05, 05]
+130CD; [7D 09 AE, 05, 05]
-130CE; [7B CE B5, 05, 05]
+130CE; [7D 09 B5, 05, 05]
-130CF; [7B CE BC, 05, 05]
+130CF; [7D 09 BC, 05, 05]
-130D0; [7B CE C3, 05, 05]
+130D0; [7D 09 C3, 05, 05]
-130D1; [7B CE CA, 05, 05]
+130D1; [7D 09 CA, 05, 05]
-130D2; [7B CE D1, 05, 05]
+130D2; [7D 09 D1, 05, 05]
-130D3; [7B CE D8, 05, 05]
+130D3; [7D 09 D8, 05, 05]
-130D4; [7B CE DF, 05, 05]
+130D4; [7D 09 DF, 05, 05]
-130D5; [7B CE E6, 05, 05]
+130D5; [7D 09 E6, 05, 05]
-130D6; [7B CE ED, 05, 05]
+130D6; [7D 09 ED, 05, 05]
-130D7; [7B CE F4, 05, 05]
+130D7; [7D 09 F4, 05, 05]
-130D8; [7B CE FB, 05, 05]
+130D8; [7D 09 FB, 05, 05]
-130D9; [7B CF 04, 05, 05]
+130D9; [7D 0A 04, 05, 05]
-130DA; [7B CF 0B, 05, 05]
+130DA; [7D 0A 0B, 05, 05]
-130DB; [7B CF 12, 05, 05]
+130DB; [7D 0A 12, 05, 05]
-130DC; [7B CF 19, 05, 05]
+130DC; [7D 0A 19, 05, 05]
-130DD; [7B CF 20, 05, 05]
+130DD; [7D 0A 20, 05, 05]
-130DE; [7B CF 27, 05, 05]
+130DE; [7D 0A 27, 05, 05]
-130DF; [7B CF 2E, 05, 05]
+130DF; [7D 0A 2E, 05, 05]
-130E0; [7B CF 35, 05, 05]
+130E0; [7D 0A 35, 05, 05]
-130E1; [7B CF 3C, 05, 05]
+130E1; [7D 0A 3C, 05, 05]
-130E2; [7B CF 43, 05, 05]
+130E2; [7D 0A 43, 05, 05]
-130E3; [7B CF 4A, 05, 05]
+130E3; [7D 0A 4A, 05, 05]
-130E4; [7B CF 51, 05, 05]
+130E4; [7D 0A 51, 05, 05]
-130E5; [7B CF 58, 05, 05]
+130E5; [7D 0A 58, 05, 05]
-130E6; [7B CF 5F, 05, 05]
+130E6; [7D 0A 5F, 05, 05]
-130E7; [7B CF 66, 05, 05]
+130E7; [7D 0A 66, 05, 05]
-130E8; [7B CF 6D, 05, 05]
+130E8; [7D 0A 6D, 05, 05]
-130E9; [7B CF 74, 05, 05]
+130E9; [7D 0A 74, 05, 05]
-130EA; [7B CF 7B, 05, 05]
+130EA; [7D 0A 7B, 05, 05]
-130EB; [7B CF 82, 05, 05]
+130EB; [7D 0A 82, 05, 05]
-130EC; [7B CF 89, 05, 05]
+130EC; [7D 0A 89, 05, 05]
-130ED; [7B CF 90, 05, 05]
+130ED; [7D 0A 90, 05, 05]
-130EE; [7B CF 97, 05, 05]
+130EE; [7D 0A 97, 05, 05]
-130EF; [7B CF 9E, 05, 05]
+130EF; [7D 0A 9E, 05, 05]
-130F0; [7B CF A5, 05, 05]
+130F0; [7D 0A A5, 05, 05]
-130F1; [7B CF AC, 05, 05]
+130F1; [7D 0A AC, 05, 05]
-130F2; [7B CF B3, 05, 05]
+130F2; [7D 0A B3, 05, 05]
-130F3; [7B CF BA, 05, 05]
+130F3; [7D 0A BA, 05, 05]
-130F4; [7B CF C1, 05, 05]
+130F4; [7D 0A C1, 05, 05]
-130F5; [7B CF C8, 05, 05]
+130F5; [7D 0A C8, 05, 05]
-130F6; [7B CF CF, 05, 05]
+130F6; [7D 0A CF, 05, 05]
-130F7; [7B CF D6, 05, 05]
+130F7; [7D 0A D6, 05, 05]
-130F8; [7B CF DD, 05, 05]
+130F8; [7D 0A DD, 05, 05]
-130F9; [7B CF E4, 05, 05]
+130F9; [7D 0A E4, 05, 05]
-130FA; [7B CF EB, 05, 05]
+130FA; [7D 0A EB, 05, 05]
-130FB; [7B CF F2, 05, 05]
+130FB; [7D 0A F2, 05, 05]
-130FC; [7B CF F9, 05, 05]
+130FC; [7D 0A F9, 05, 05]
-130FD; [7B D0 02, 05, 05]
+130FD; [7D 0B 02, 05, 05]
-130FE; [7B D0 09, 05, 05]
+130FE; [7D 0B 09, 05, 05]
-130FF; [7B D0 10, 05, 05]
+130FF; [7D 0B 10, 05, 05]
-13100; [7B D0 17, 05, 05]
+13100; [7D 0B 17, 05, 05]
-13101; [7B D0 1E, 05, 05]
+13101; [7D 0B 1E, 05, 05]
-13102; [7B D0 25, 05, 05]
+13102; [7D 0B 25, 05, 05]
-13103; [7B D0 2C, 05, 05]
+13103; [7D 0B 2C, 05, 05]
-13104; [7B D0 33, 05, 05]
+13104; [7D 0B 33, 05, 05]
-13105; [7B D0 3A, 05, 05]
+13105; [7D 0B 3A, 05, 05]
-13106; [7B D0 41, 05, 05]
+13106; [7D 0B 41, 05, 05]
-13107; [7B D0 48, 05, 05]
+13107; [7D 0B 48, 05, 05]
-13108; [7B D0 4F, 05, 05]
+13108; [7D 0B 4F, 05, 05]
-13109; [7B D0 56, 05, 05]
+13109; [7D 0B 56, 05, 05]
-1310A; [7B D0 5D, 05, 05]
+1310A; [7D 0B 5D, 05, 05]
-1310B; [7B D0 64, 05, 05]
+1310B; [7D 0B 64, 05, 05]
-1310C; [7B D0 6B, 05, 05]
+1310C; [7D 0B 6B, 05, 05]
-1310D; [7B D0 72, 05, 05]
+1310D; [7D 0B 72, 05, 05]
-1310E; [7B D0 79, 05, 05]
+1310E; [7D 0B 79, 05, 05]
-1310F; [7B D0 80, 05, 05]
+1310F; [7D 0B 80, 05, 05]
-13110; [7B D0 87, 05, 05]
+13110; [7D 0B 87, 05, 05]
-13111; [7B D0 8E, 05, 05]
+13111; [7D 0B 8E, 05, 05]
-13112; [7B D0 95, 05, 05]
+13112; [7D 0B 95, 05, 05]
-13113; [7B D0 9C, 05, 05]
+13113; [7D 0B 9C, 05, 05]
-13114; [7B D0 A3, 05, 05]
+13114; [7D 0B A3, 05, 05]
-13115; [7B D0 AA, 05, 05]
+13115; [7D 0B AA, 05, 05]
-13116; [7B D0 B1, 05, 05]
+13116; [7D 0B B1, 05, 05]
-13117; [7B D0 B8, 05, 05]
+13117; [7D 0B B8, 05, 05]
-13118; [7B D0 BF, 05, 05]
+13118; [7D 0B BF, 05, 05]
-13119; [7B D0 C6, 05, 05]
+13119; [7D 0B C6, 05, 05]
-1311A; [7B D0 CD, 05, 05]
+1311A; [7D 0B CD, 05, 05]
-1311B; [7B D0 D4, 05, 05]
+1311B; [7D 0B D4, 05, 05]
-1311C; [7B D0 DB, 05, 05]
+1311C; [7D 0B DB, 05, 05]
-1311D; [7B D0 E2, 05, 05]
+1311D; [7D 0B E2, 05, 05]
-1311E; [7B D0 E9, 05, 05]
+1311E; [7D 0B E9, 05, 05]
-1311F; [7B D0 F0, 05, 05]
+1311F; [7D 0B F0, 05, 05]
-13120; [7B D0 F7, 05, 05]
+13120; [7D 0B F7, 05, 05]
-13121; [7B D0 FE, 05, 05]
+13121; [7D 0B FE, 05, 05]
-13122; [7B D1 07, 05, 05]
+13122; [7D 0C 07, 05, 05]
-13123; [7B D1 0E, 05, 05]
+13123; [7D 0C 0E, 05, 05]
-13124; [7B D1 15, 05, 05]
+13124; [7D 0C 15, 05, 05]
-13125; [7B D1 1C, 05, 05]
+13125; [7D 0C 1C, 05, 05]
-13126; [7B D1 23, 05, 05]
+13126; [7D 0C 23, 05, 05]
-13127; [7B D1 2A, 05, 05]
+13127; [7D 0C 2A, 05, 05]
-13128; [7B D1 31, 05, 05]
+13128; [7D 0C 31, 05, 05]
-13129; [7B D1 38, 05, 05]
+13129; [7D 0C 38, 05, 05]
-1312A; [7B D1 3F, 05, 05]
+1312A; [7D 0C 3F, 05, 05]
-1312B; [7B D1 46, 05, 05]
+1312B; [7D 0C 46, 05, 05]
-1312C; [7B D1 4D, 05, 05]
+1312C; [7D 0C 4D, 05, 05]
-1312D; [7B D1 54, 05, 05]
+1312D; [7D 0C 54, 05, 05]
-1312E; [7B D1 5B, 05, 05]
+1312E; [7D 0C 5B, 05, 05]
-1312F; [7B D1 62, 05, 05]
+1312F; [7D 0C 62, 05, 05]
-13130; [7B D1 69, 05, 05]
+13130; [7D 0C 69, 05, 05]
-13131; [7B D1 70, 05, 05]
+13131; [7D 0C 70, 05, 05]
-13132; [7B D1 77, 05, 05]
+13132; [7D 0C 77, 05, 05]
-13133; [7B D1 7E, 05, 05]
+13133; [7D 0C 7E, 05, 05]
-13134; [7B D1 85, 05, 05]
+13134; [7D 0C 85, 05, 05]
-13135; [7B D1 8C, 05, 05]
+13135; [7D 0C 8C, 05, 05]
-13136; [7B D1 93, 05, 05]
+13136; [7D 0C 93, 05, 05]
-13137; [7B D1 9A, 05, 05]
+13137; [7D 0C 9A, 05, 05]
-13138; [7B D1 A1, 05, 05]
+13138; [7D 0C A1, 05, 05]
-13139; [7B D1 A8, 05, 05]
+13139; [7D 0C A8, 05, 05]
-1313A; [7B D1 AF, 05, 05]
+1313A; [7D 0C AF, 05, 05]
-1313B; [7B D1 B6, 05, 05]
+1313B; [7D 0C B6, 05, 05]
-1313C; [7B D1 BD, 05, 05]
+1313C; [7D 0C BD, 05, 05]
-1313D; [7B D1 C4, 05, 05]
+1313D; [7D 0C C4, 05, 05]
-1313E; [7B D1 CB, 05, 05]
+1313E; [7D 0C CB, 05, 05]
-1313F; [7B D1 D2, 05, 05]
+1313F; [7D 0C D2, 05, 05]
-13140; [7B D1 D9, 05, 05]
+13140; [7D 0C D9, 05, 05]
-13141; [7B D1 E0, 05, 05]
+13141; [7D 0C E0, 05, 05]
-13142; [7B D1 E7, 05, 05]
+13142; [7D 0C E7, 05, 05]
-13143; [7B D1 EE, 05, 05]
+13143; [7D 0C EE, 05, 05]
-13144; [7B D1 F5, 05, 05]
+13144; [7D 0C F5, 05, 05]
-13145; [7B D1 FC, 05, 05]
+13145; [7D 0C FC, 05, 05]
-13146; [7B D2 05, 05, 05]
+13146; [7D 0D 05, 05, 05]
-13147; [7B D2 0C, 05, 05]
+13147; [7D 0D 0C, 05, 05]
-13148; [7B D2 13, 05, 05]
+13148; [7D 0D 13, 05, 05]
-13149; [7B D2 1A, 05, 05]
+13149; [7D 0D 1A, 05, 05]
-1314A; [7B D2 21, 05, 05]
+1314A; [7D 0D 21, 05, 05]
-1314B; [7B D2 28, 05, 05]
+1314B; [7D 0D 28, 05, 05]
-1314C; [7B D2 2F, 05, 05]
+1314C; [7D 0D 2F, 05, 05]
-1314D; [7B D2 36, 05, 05]
+1314D; [7D 0D 36, 05, 05]
-1314E; [7B D2 3D, 05, 05]
+1314E; [7D 0D 3D, 05, 05]
-1314F; [7B D2 44, 05, 05]
+1314F; [7D 0D 44, 05, 05]
-13150; [7B D2 4B, 05, 05]
+13150; [7D 0D 4B, 05, 05]
-13151; [7B D2 52, 05, 05]
+13151; [7D 0D 52, 05, 05]
-13152; [7B D2 59, 05, 05]
+13152; [7D 0D 59, 05, 05]
-13153; [7B D2 60, 05, 05]
+13153; [7D 0D 60, 05, 05]
-13154; [7B D2 67, 05, 05]
+13154; [7D 0D 67, 05, 05]
-13155; [7B D2 6E, 05, 05]
+13155; [7D 0D 6E, 05, 05]
-13156; [7B D2 75, 05, 05]
+13156; [7D 0D 75, 05, 05]
-13157; [7B D2 7C, 05, 05]
+13157; [7D 0D 7C, 05, 05]
-13158; [7B D2 83, 05, 05]
+13158; [7D 0D 83, 05, 05]
-13159; [7B D2 8A, 05, 05]
+13159; [7D 0D 8A, 05, 05]
-1315A; [7B D2 91, 05, 05]
+1315A; [7D 0D 91, 05, 05]
-1315B; [7B D2 98, 05, 05]
+1315B; [7D 0D 98, 05, 05]
-1315C; [7B D2 9F, 05, 05]
+1315C; [7D 0D 9F, 05, 05]
-1315D; [7B D2 A6, 05, 05]
+1315D; [7D 0D A6, 05, 05]
-1315E; [7B D2 AD, 05, 05]
+1315E; [7D 0D AD, 05, 05]
-1315F; [7B D2 B4, 05, 05]
+1315F; [7D 0D B4, 05, 05]
-13160; [7B D2 BB, 05, 05]
+13160; [7D 0D BB, 05, 05]
-13161; [7B D2 C2, 05, 05]
+13161; [7D 0D C2, 05, 05]
-13162; [7B D2 C9, 05, 05]
+13162; [7D 0D C9, 05, 05]
-13163; [7B D2 D0, 05, 05]
+13163; [7D 0D D0, 05, 05]
-13164; [7B D2 D7, 05, 05]
+13164; [7D 0D D7, 05, 05]
-13165; [7B D2 DE, 05, 05]
+13165; [7D 0D DE, 05, 05]
-13166; [7B D2 E5, 05, 05]
+13166; [7D 0D E5, 05, 05]
-13167; [7B D2 EC, 05, 05]
+13167; [7D 0D EC, 05, 05]
-13168; [7B D2 F3, 05, 05]
+13168; [7D 0D F3, 05, 05]
-13169; [7B D2 FA, 05, 05]
+13169; [7D 0D FA, 05, 05]
-1316A; [7B D3 03, 05, 05]
+1316A; [7D 0E 03, 05, 05]
-1316B; [7B D3 0A, 05, 05]
+1316B; [7D 0E 0A, 05, 05]
-1316C; [7B D3 11, 05, 05]
+1316C; [7D 0E 11, 05, 05]
-1316D; [7B D3 18, 05, 05]
+1316D; [7D 0E 18, 05, 05]
-1316E; [7B D3 1F, 05, 05]
+1316E; [7D 0E 1F, 05, 05]
-1316F; [7B D3 26, 05, 05]
+1316F; [7D 0E 26, 05, 05]
-13170; [7B D3 2D, 05, 05]
+13170; [7D 0E 2D, 05, 05]
-13171; [7B D3 34, 05, 05]
+13171; [7D 0E 34, 05, 05]
-13172; [7B D3 3B, 05, 05]
+13172; [7D 0E 3B, 05, 05]
-13173; [7B D3 42, 05, 05]
+13173; [7D 0E 42, 05, 05]
-13174; [7B D3 49, 05, 05]
+13174; [7D 0E 49, 05, 05]
-13175; [7B D3 50, 05, 05]
+13175; [7D 0E 50, 05, 05]
-13176; [7B D3 57, 05, 05]
+13176; [7D 0E 57, 05, 05]
-13177; [7B D3 5E, 05, 05]
+13177; [7D 0E 5E, 05, 05]
-13178; [7B D3 65, 05, 05]
+13178; [7D 0E 65, 05, 05]
-13179; [7B D3 6C, 05, 05]
+13179; [7D 0E 6C, 05, 05]
-1317A; [7B D3 73, 05, 05]
+1317A; [7D 0E 73, 05, 05]
-1317B; [7B D3 7A, 05, 05]
+1317B; [7D 0E 7A, 05, 05]
-1317C; [7B D3 81, 05, 05]
+1317C; [7D 0E 81, 05, 05]
-1317D; [7B D3 88, 05, 05]
+1317D; [7D 0E 88, 05, 05]
-1317E; [7B D3 8F, 05, 05]
+1317E; [7D 0E 8F, 05, 05]
-1317F; [7B D3 96, 05, 05]
+1317F; [7D 0E 96, 05, 05]
-13180; [7B D3 9D, 05, 05]
+13180; [7D 0E 9D, 05, 05]
-13181; [7B D3 A4, 05, 05]
+13181; [7D 0E A4, 05, 05]
-13182; [7B D3 AB, 05, 05]
+13182; [7D 0E AB, 05, 05]
-13183; [7B D3 B2, 05, 05]
+13183; [7D 0E B2, 05, 05]
-13184; [7B D3 B9, 05, 05]
+13184; [7D 0E B9, 05, 05]
-13185; [7B D3 C0, 05, 05]
+13185; [7D 0E C0, 05, 05]
-13186; [7B D3 C7, 05, 05]
+13186; [7D 0E C7, 05, 05]
-13187; [7B D3 CE, 05, 05]
+13187; [7D 0E CE, 05, 05]
-13188; [7B D3 D5, 05, 05]
+13188; [7D 0E D5, 05, 05]
-13189; [7B D3 DC, 05, 05]
+13189; [7D 0E DC, 05, 05]
-1318A; [7B D3 E3, 05, 05]
+1318A; [7D 0E E3, 05, 05]
-1318B; [7B D3 EA, 05, 05]
+1318B; [7D 0E EA, 05, 05]
-1318C; [7B D3 F1, 05, 05]
+1318C; [7D 0E F1, 05, 05]
-1318D; [7B D3 F8, 05, 05]
+1318D; [7D 0E F8, 05, 05]
-1318E; [7B D3 FF, 05, 05]
+1318E; [7D 0E FF, 05, 05]
-1318F; [7B D4 08, 05, 05]
+1318F; [7D 0F 08, 05, 05]
-13190; [7B D4 0F, 05, 05]
+13190; [7D 0F 0F, 05, 05]
-13191; [7B D4 16, 05, 05]
+13191; [7D 0F 16, 05, 05]
-13192; [7B D4 1D, 05, 05]
+13192; [7D 0F 1D, 05, 05]
-13193; [7B D4 24, 05, 05]
+13193; [7D 0F 24, 05, 05]
-13194; [7B D4 2B, 05, 05]
+13194; [7D 0F 2B, 05, 05]
-13195; [7B D4 32, 05, 05]
+13195; [7D 0F 32, 05, 05]
-13196; [7B D4 39, 05, 05]
+13196; [7D 0F 39, 05, 05]
-13197; [7B D4 40, 05, 05]
+13197; [7D 0F 40, 05, 05]
-13198; [7B D4 47, 05, 05]
+13198; [7D 0F 47, 05, 05]
-13199; [7B D4 4E, 05, 05]
+13199; [7D 0F 4E, 05, 05]
-1319A; [7B D4 55, 05, 05]
+1319A; [7D 0F 55, 05, 05]
-1319B; [7B D4 5C, 05, 05]
+1319B; [7D 0F 5C, 05, 05]
-1319C; [7B D4 63, 05, 05]
+1319C; [7D 0F 63, 05, 05]
-1319D; [7B D4 6A, 05, 05]
+1319D; [7D 0F 6A, 05, 05]
-1319E; [7B D4 71, 05, 05]
+1319E; [7D 0F 71, 05, 05]
-1319F; [7B D4 78, 05, 05]
+1319F; [7D 0F 78, 05, 05]
-131A0; [7B D4 7F, 05, 05]
+131A0; [7D 0F 7F, 05, 05]
-131A1; [7B D4 86, 05, 05]
+131A1; [7D 0F 86, 05, 05]
-131A2; [7B D4 8D, 05, 05]
+131A2; [7D 0F 8D, 05, 05]
-131A3; [7B D4 94, 05, 05]
+131A3; [7D 0F 94, 05, 05]
-131A4; [7B D4 9B, 05, 05]
+131A4; [7D 0F 9B, 05, 05]
-131A5; [7B D4 A2, 05, 05]
+131A5; [7D 0F A2, 05, 05]
-131A6; [7B D4 A9, 05, 05]
+131A6; [7D 0F A9, 05, 05]
-131A7; [7B D4 B0, 05, 05]
+131A7; [7D 0F B0, 05, 05]
-131A8; [7B D4 B7, 05, 05]
+131A8; [7D 0F B7, 05, 05]
-131A9; [7B D4 BE, 05, 05]
+131A9; [7D 0F BE, 05, 05]
-131AA; [7B D4 C5, 05, 05]
+131AA; [7D 0F C5, 05, 05]
-131AB; [7B D4 CC, 05, 05]
+131AB; [7D 0F CC, 05, 05]
-131AC; [7B D4 D3, 05, 05]
+131AC; [7D 0F D3, 05, 05]
-131AD; [7B D4 DA, 05, 05]
+131AD; [7D 0F DA, 05, 05]
-131AE; [7B D4 E1, 05, 05]
+131AE; [7D 0F E1, 05, 05]
-131AF; [7B D4 E8, 05, 05]
+131AF; [7D 0F E8, 05, 05]
-131B0; [7B D4 EF, 05, 05]
+131B0; [7D 0F EF, 05, 05]
-131B1; [7B D4 F6, 05, 05]
+131B1; [7D 0F F6, 05, 05]
-131B2; [7B D4 FD, 05, 05]
+131B2; [7D 0F FD, 05, 05]
-131B3; [7B D5 06, 05, 05]
+131B3; [7D 10 06, 05, 05]
-131B4; [7B D5 0D, 05, 05]
+131B4; [7D 10 0D, 05, 05]
-131B5; [7B D5 14, 05, 05]
+131B5; [7D 10 14, 05, 05]
-131B6; [7B D5 1B, 05, 05]
+131B6; [7D 10 1B, 05, 05]
-131B7; [7B D5 22, 05, 05]
+131B7; [7D 10 22, 05, 05]
-131B8; [7B D5 29, 05, 05]
+131B8; [7D 10 29, 05, 05]
-131B9; [7B D5 30, 05, 05]
+131B9; [7D 10 30, 05, 05]
-131BA; [7B D5 37, 05, 05]
+131BA; [7D 10 37, 05, 05]
-131BB; [7B D5 3E, 05, 05]
+131BB; [7D 10 3E, 05, 05]
-131BC; [7B D5 45, 05, 05]
+131BC; [7D 10 45, 05, 05]
-131BD; [7B D5 4C, 05, 05]
+131BD; [7D 10 4C, 05, 05]
-131BE; [7B D5 53, 05, 05]
+131BE; [7D 10 53, 05, 05]
-131BF; [7B D5 5A, 05, 05]
+131BF; [7D 10 5A, 05, 05]
-131C0; [7B D5 61, 05, 05]
+131C0; [7D 10 61, 05, 05]
-131C1; [7B D5 68, 05, 05]
+131C1; [7D 10 68, 05, 05]
-131C2; [7B D5 6F, 05, 05]
+131C2; [7D 10 6F, 05, 05]
-131C3; [7B D5 76, 05, 05]
+131C3; [7D 10 76, 05, 05]
-131C4; [7B D5 7D, 05, 05]
+131C4; [7D 10 7D, 05, 05]
-131C5; [7B D5 84, 05, 05]
+131C5; [7D 10 84, 05, 05]
-131C6; [7B D5 8B, 05, 05]
+131C6; [7D 10 8B, 05, 05]
-131C7; [7B D5 92, 05, 05]
+131C7; [7D 10 92, 05, 05]
-131C8; [7B D5 99, 05, 05]
+131C8; [7D 10 99, 05, 05]
-131C9; [7B D5 A0, 05, 05]
+131C9; [7D 10 A0, 05, 05]
-131CA; [7B D5 A7, 05, 05]
+131CA; [7D 10 A7, 05, 05]
-131CB; [7B D5 AE, 05, 05]
+131CB; [7D 10 AE, 05, 05]
-131CC; [7B D5 B5, 05, 05]
+131CC; [7D 10 B5, 05, 05]
-131CD; [7B D5 BC, 05, 05]
+131CD; [7D 10 BC, 05, 05]
-131CE; [7B D5 C3, 05, 05]
+131CE; [7D 10 C3, 05, 05]
-131CF; [7B D5 CA, 05, 05]
+131CF; [7D 10 CA, 05, 05]
-131D0; [7B D5 D1, 05, 05]
+131D0; [7D 10 D1, 05, 05]
-131D1; [7B D5 D8, 05, 05]
+131D1; [7D 10 D8, 05, 05]
-131D2; [7B D5 DF, 05, 05]
+131D2; [7D 10 DF, 05, 05]
-131D3; [7B D5 E6, 05, 05]
+131D3; [7D 10 E6, 05, 05]
-131D4; [7B D5 ED, 05, 05]
+131D4; [7D 10 ED, 05, 05]
-131D5; [7B D5 F4, 05, 05]
+131D5; [7D 10 F4, 05, 05]
-131D6; [7B D5 FB, 05, 05]
+131D6; [7D 10 FB, 05, 05]
-131D7; [7B D6 04, 05, 05]
+131D7; [7D 11 04, 05, 05]
-131D8; [7B D6 0B, 05, 05]
+131D8; [7D 11 0B, 05, 05]
-131D9; [7B D6 12, 05, 05]
+131D9; [7D 11 12, 05, 05]
-131DA; [7B D6 19, 05, 05]
+131DA; [7D 11 19, 05, 05]
-131DB; [7B D6 20, 05, 05]
+131DB; [7D 11 20, 05, 05]
-131DC; [7B D6 27, 05, 05]
+131DC; [7D 11 27, 05, 05]
-131DD; [7B D6 2E, 05, 05]
+131DD; [7D 11 2E, 05, 05]
-131DE; [7B D6 35, 05, 05]
+131DE; [7D 11 35, 05, 05]
-131DF; [7B D6 3C, 05, 05]
+131DF; [7D 11 3C, 05, 05]
-131E0; [7B D6 43, 05, 05]
+131E0; [7D 11 43, 05, 05]
-131E1; [7B D6 4A, 05, 05]
+131E1; [7D 11 4A, 05, 05]
-131E2; [7B D6 51, 05, 05]
+131E2; [7D 11 51, 05, 05]
-131E3; [7B D6 58, 05, 05]
+131E3; [7D 11 58, 05, 05]
-131E4; [7B D6 5F, 05, 05]
+131E4; [7D 11 5F, 05, 05]
-131E5; [7B D6 66, 05, 05]
+131E5; [7D 11 66, 05, 05]
-131E6; [7B D6 6D, 05, 05]
+131E6; [7D 11 6D, 05, 05]
-131E7; [7B D6 74, 05, 05]
+131E7; [7D 11 74, 05, 05]
-131E8; [7B D6 7B, 05, 05]
+131E8; [7D 11 7B, 05, 05]
-131E9; [7B D6 82, 05, 05]
+131E9; [7D 11 82, 05, 05]
-131EA; [7B D6 89, 05, 05]
+131EA; [7D 11 89, 05, 05]
-131EB; [7B D6 90, 05, 05]
+131EB; [7D 11 90, 05, 05]
-131EC; [7B D6 97, 05, 05]
+131EC; [7D 11 97, 05, 05]
-131ED; [7B D6 9E, 05, 05]
+131ED; [7D 11 9E, 05, 05]
-131EE; [7B D6 A5, 05, 05]
+131EE; [7D 11 A5, 05, 05]
-131EF; [7B D6 AC, 05, 05]
+131EF; [7D 11 AC, 05, 05]
-131F0; [7B D6 B3, 05, 05]
+131F0; [7D 11 B3, 05, 05]
-131F1; [7B D6 BA, 05, 05]
+131F1; [7D 11 BA, 05, 05]
-131F2; [7B D6 C1, 05, 05]
+131F2; [7D 11 C1, 05, 05]
-131F3; [7B D6 C8, 05, 05]
+131F3; [7D 11 C8, 05, 05]
-131F4; [7B D6 CF, 05, 05]
+131F4; [7D 11 CF, 05, 05]
-131F5; [7B D6 D6, 05, 05]
+131F5; [7D 11 D6, 05, 05]
-131F6; [7B D6 DD, 05, 05]
+131F6; [7D 11 DD, 05, 05]
-131F7; [7B D6 E4, 05, 05]
+131F7; [7D 11 E4, 05, 05]
-131F8; [7B D6 EB, 05, 05]
+131F8; [7D 11 EB, 05, 05]
-131F9; [7B D6 F2, 05, 05]
+131F9; [7D 11 F2, 05, 05]
-131FA; [7B D6 F9, 05, 05]
+131FA; [7D 11 F9, 05, 05]
-131FB; [7B D7 02, 05, 05]
+131FB; [7D 12 02, 05, 05]
-131FC; [7B D7 09, 05, 05]
+131FC; [7D 12 09, 05, 05]
-131FD; [7B D7 10, 05, 05]
+131FD; [7D 12 10, 05, 05]
-131FE; [7B D7 17, 05, 05]
+131FE; [7D 12 17, 05, 05]
-131FF; [7B D7 1E, 05, 05]
+131FF; [7D 12 1E, 05, 05]
-13200; [7B D7 25, 05, 05]
+13200; [7D 12 25, 05, 05]
-13201; [7B D7 2C, 05, 05]
+13201; [7D 12 2C, 05, 05]
-13202; [7B D7 33, 05, 05]
+13202; [7D 12 33, 05, 05]
-13203; [7B D7 3A, 05, 05]
+13203; [7D 12 3A, 05, 05]
-13204; [7B D7 41, 05, 05]
+13204; [7D 12 41, 05, 05]
-13205; [7B D7 48, 05, 05]
+13205; [7D 12 48, 05, 05]
-13206; [7B D7 4F, 05, 05]
+13206; [7D 12 4F, 05, 05]
-13207; [7B D7 56, 05, 05]
+13207; [7D 12 56, 05, 05]
-13208; [7B D7 5D, 05, 05]
+13208; [7D 12 5D, 05, 05]
-13209; [7B D7 64, 05, 05]
+13209; [7D 12 64, 05, 05]
-1320A; [7B D7 6B, 05, 05]
+1320A; [7D 12 6B, 05, 05]
-1320B; [7B D7 72, 05, 05]
+1320B; [7D 12 72, 05, 05]
-1320C; [7B D7 79, 05, 05]
+1320C; [7D 12 79, 05, 05]
-1320D; [7B D7 80, 05, 05]
+1320D; [7D 12 80, 05, 05]
-1320E; [7B D7 87, 05, 05]
+1320E; [7D 12 87, 05, 05]
-1320F; [7B D7 8E, 05, 05]
+1320F; [7D 12 8E, 05, 05]
-13210; [7B D7 95, 05, 05]
+13210; [7D 12 95, 05, 05]
-13211; [7B D7 9C, 05, 05]
+13211; [7D 12 9C, 05, 05]
-13212; [7B D7 A3, 05, 05]
+13212; [7D 12 A3, 05, 05]
-13213; [7B D7 AA, 05, 05]
+13213; [7D 12 AA, 05, 05]
-13214; [7B D7 B1, 05, 05]
+13214; [7D 12 B1, 05, 05]
-13215; [7B D7 B8, 05, 05]
+13215; [7D 12 B8, 05, 05]
-13216; [7B D7 BF, 05, 05]
+13216; [7D 12 BF, 05, 05]
-13217; [7B D7 C6, 05, 05]
+13217; [7D 12 C6, 05, 05]
-13218; [7B D7 CD, 05, 05]
+13218; [7D 12 CD, 05, 05]
-13219; [7B D7 D4, 05, 05]
+13219; [7D 12 D4, 05, 05]
-1321A; [7B D7 DB, 05, 05]
+1321A; [7D 12 DB, 05, 05]
-1321B; [7B D7 E2, 05, 05]
+1321B; [7D 12 E2, 05, 05]
-1321C; [7B D7 E9, 05, 05]
+1321C; [7D 12 E9, 05, 05]
-1321D; [7B D7 F0, 05, 05]
+1321D; [7D 12 F0, 05, 05]
-1321E; [7B D7 F7, 05, 05]
+1321E; [7D 12 F7, 05, 05]
-1321F; [7B D7 FE, 05, 05]
+1321F; [7D 12 FE, 05, 05]
-13220; [7B D8 07, 05, 05]
+13220; [7D 13 07, 05, 05]
-13221; [7B D8 0E, 05, 05]
+13221; [7D 13 0E, 05, 05]
-13222; [7B D8 15, 05, 05]
+13222; [7D 13 15, 05, 05]
-13223; [7B D8 1C, 05, 05]
+13223; [7D 13 1C, 05, 05]
-13224; [7B D8 23, 05, 05]
+13224; [7D 13 23, 05, 05]
-13225; [7B D8 2A, 05, 05]
+13225; [7D 13 2A, 05, 05]
-13226; [7B D8 31, 05, 05]
+13226; [7D 13 31, 05, 05]
-13227; [7B D8 38, 05, 05]
+13227; [7D 13 38, 05, 05]
-13228; [7B D8 3F, 05, 05]
+13228; [7D 13 3F, 05, 05]
-13229; [7B D8 46, 05, 05]
+13229; [7D 13 46, 05, 05]
-1322A; [7B D8 4D, 05, 05]
+1322A; [7D 13 4D, 05, 05]
-1322B; [7B D8 54, 05, 05]
+1322B; [7D 13 54, 05, 05]
-1322C; [7B D8 5B, 05, 05]
+1322C; [7D 13 5B, 05, 05]
-1322D; [7B D8 62, 05, 05]
+1322D; [7D 13 62, 05, 05]
-1322E; [7B D8 69, 05, 05]
+1322E; [7D 13 69, 05, 05]
-1322F; [7B D8 70, 05, 05]
+1322F; [7D 13 70, 05, 05]
-13230; [7B D8 77, 05, 05]
+13230; [7D 13 77, 05, 05]
-13231; [7B D8 7E, 05, 05]
+13231; [7D 13 7E, 05, 05]
-13232; [7B D8 85, 05, 05]
+13232; [7D 13 85, 05, 05]
-13233; [7B D8 8C, 05, 05]
+13233; [7D 13 8C, 05, 05]
-13234; [7B D8 93, 05, 05]
+13234; [7D 13 93, 05, 05]
-13235; [7B D8 9A, 05, 05]
+13235; [7D 13 9A, 05, 05]
-13236; [7B D8 A1, 05, 05]
+13236; [7D 13 A1, 05, 05]
-13237; [7B D8 A8, 05, 05]
+13237; [7D 13 A8, 05, 05]
-13238; [7B D8 AF, 05, 05]
+13238; [7D 13 AF, 05, 05]
-13239; [7B D8 B6, 05, 05]
+13239; [7D 13 B6, 05, 05]
-1323A; [7B D8 BD, 05, 05]
+1323A; [7D 13 BD, 05, 05]
-1323B; [7B D8 C4, 05, 05]
+1323B; [7D 13 C4, 05, 05]
-1323C; [7B D8 CB, 05, 05]
+1323C; [7D 13 CB, 05, 05]
-1323D; [7B D8 D2, 05, 05]
+1323D; [7D 13 D2, 05, 05]
-1323E; [7B D8 D9, 05, 05]
+1323E; [7D 13 D9, 05, 05]
-1323F; [7B D8 E0, 05, 05]
+1323F; [7D 13 E0, 05, 05]
-13240; [7B D8 E7, 05, 05]
+13240; [7D 13 E7, 05, 05]
-13241; [7B D8 EE, 05, 05]
+13241; [7D 13 EE, 05, 05]
-13242; [7B D8 F5, 05, 05]
+13242; [7D 13 F5, 05, 05]
-13243; [7B D8 FC, 05, 05]
+13243; [7D 13 FC, 05, 05]
-13244; [7B D9 05, 05, 05]
+13244; [7D 14 05, 05, 05]
-13245; [7B D9 0C, 05, 05]
+13245; [7D 14 0C, 05, 05]
-13246; [7B D9 13, 05, 05]
+13246; [7D 14 13, 05, 05]
-13247; [7B D9 1A, 05, 05]
+13247; [7D 14 1A, 05, 05]
-13248; [7B D9 21, 05, 05]
+13248; [7D 14 21, 05, 05]
-13249; [7B D9 28, 05, 05]
+13249; [7D 14 28, 05, 05]
-1324A; [7B D9 2F, 05, 05]
+1324A; [7D 14 2F, 05, 05]
-1324B; [7B D9 36, 05, 05]
+1324B; [7D 14 36, 05, 05]
-1324C; [7B D9 3D, 05, 05]
+1324C; [7D 14 3D, 05, 05]
-1324D; [7B D9 44, 05, 05]
+1324D; [7D 14 44, 05, 05]
-1324E; [7B D9 4B, 05, 05]
+1324E; [7D 14 4B, 05, 05]
-1324F; [7B D9 52, 05, 05]
+1324F; [7D 14 52, 05, 05]
-13250; [7B D9 59, 05, 05]
+13250; [7D 14 59, 05, 05]
-13251; [7B D9 60, 05, 05]
+13251; [7D 14 60, 05, 05]
-13252; [7B D9 67, 05, 05]
+13252; [7D 14 67, 05, 05]
-13253; [7B D9 6E, 05, 05]
+13253; [7D 14 6E, 05, 05]
-13254; [7B D9 75, 05, 05]
+13254; [7D 14 75, 05, 05]
-13255; [7B D9 7C, 05, 05]
+13255; [7D 14 7C, 05, 05]
-13256; [7B D9 83, 05, 05]
+13256; [7D 14 83, 05, 05]
-13257; [7B D9 8A, 05, 05]
+13257; [7D 14 8A, 05, 05]
-13258; [7B D9 91, 05, 05]
+13258; [7D 14 91, 05, 05]
-13259; [7B D9 98, 05, 05]
+13259; [7D 14 98, 05, 05]
-1325A; [7B D9 9F, 05, 05]
+1325A; [7D 14 9F, 05, 05]
-1325B; [7B D9 A6, 05, 05]
+1325B; [7D 14 A6, 05, 05]
-1325C; [7B D9 AD, 05, 05]
+1325C; [7D 14 AD, 05, 05]
-1325D; [7B D9 B4, 05, 05]
+1325D; [7D 14 B4, 05, 05]
-1325E; [7B D9 BB, 05, 05]
+1325E; [7D 14 BB, 05, 05]
-1325F; [7B D9 C2, 05, 05]
+1325F; [7D 14 C2, 05, 05]
-13260; [7B D9 C9, 05, 05]
+13260; [7D 14 C9, 05, 05]
-13261; [7B D9 D0, 05, 05]
+13261; [7D 14 D0, 05, 05]
-13262; [7B D9 D7, 05, 05]
+13262; [7D 14 D7, 05, 05]
-13263; [7B D9 DE, 05, 05]
+13263; [7D 14 DE, 05, 05]
-13264; [7B D9 E5, 05, 05]
+13264; [7D 14 E5, 05, 05]
-13265; [7B D9 EC, 05, 05]
+13265; [7D 14 EC, 05, 05]
-13266; [7B D9 F3, 05, 05]
+13266; [7D 14 F3, 05, 05]
-13267; [7B D9 FA, 05, 05]
+13267; [7D 14 FA, 05, 05]
-13268; [7B DA 03, 05, 05]
+13268; [7D 15 03, 05, 05]
-13269; [7B DA 0A, 05, 05]
+13269; [7D 15 0A, 05, 05]
-1326A; [7B DA 11, 05, 05]
+1326A; [7D 15 11, 05, 05]
-1326B; [7B DA 18, 05, 05]
+1326B; [7D 15 18, 05, 05]
-1326C; [7B DA 1F, 05, 05]
+1326C; [7D 15 1F, 05, 05]
-1326D; [7B DA 26, 05, 05]
+1326D; [7D 15 26, 05, 05]
-1326E; [7B DA 2D, 05, 05]
+1326E; [7D 15 2D, 05, 05]
-1326F; [7B DA 34, 05, 05]
+1326F; [7D 15 34, 05, 05]
-13270; [7B DA 3B, 05, 05]
+13270; [7D 15 3B, 05, 05]
-13271; [7B DA 42, 05, 05]
+13271; [7D 15 42, 05, 05]
-13272; [7B DA 49, 05, 05]
+13272; [7D 15 49, 05, 05]
-13273; [7B DA 50, 05, 05]
+13273; [7D 15 50, 05, 05]
-13274; [7B DA 57, 05, 05]
+13274; [7D 15 57, 05, 05]
-13275; [7B DA 5E, 05, 05]
+13275; [7D 15 5E, 05, 05]
-13276; [7B DA 65, 05, 05]
+13276; [7D 15 65, 05, 05]
-13277; [7B DA 6C, 05, 05]
+13277; [7D 15 6C, 05, 05]
-13278; [7B DA 73, 05, 05]
+13278; [7D 15 73, 05, 05]
-13279; [7B DA 7A, 05, 05]
+13279; [7D 15 7A, 05, 05]
-1327A; [7B DA 81, 05, 05]
+1327A; [7D 15 81, 05, 05]
-1327B; [7B DA 88, 05, 05]
+1327B; [7D 15 88, 05, 05]
-1327C; [7B DA 8F, 05, 05]
+1327C; [7D 15 8F, 05, 05]
-1327D; [7B DA 96, 05, 05]
+1327D; [7D 15 96, 05, 05]
-1327E; [7B DA 9D, 05, 05]
+1327E; [7D 15 9D, 05, 05]
-1327F; [7B DA A4, 05, 05]
+1327F; [7D 15 A4, 05, 05]
-13280; [7B DA AB, 05, 05]
+13280; [7D 15 AB, 05, 05]
-13281; [7B DA B2, 05, 05]
+13281; [7D 15 B2, 05, 05]
-13282; [7B DA B9, 05, 05]
+13282; [7D 15 B9, 05, 05]
-13283; [7B DA C0, 05, 05]
+13283; [7D 15 C0, 05, 05]
-13284; [7B DA C7, 05, 05]
+13284; [7D 15 C7, 05, 05]
-13285; [7B DA CE, 05, 05]
+13285; [7D 15 CE, 05, 05]
-13286; [7B DA D5, 05, 05]
+13286; [7D 15 D5, 05, 05]
-13287; [7B DA DC, 05, 05]
+13287; [7D 15 DC, 05, 05]
-13288; [7B DA E3, 05, 05]
+13288; [7D 15 E3, 05, 05]
-13289; [7B DA EA, 05, 05]
+13289; [7D 15 EA, 05, 05]
-1328A; [7B DA F1, 05, 05]
+1328A; [7D 15 F1, 05, 05]
-1328B; [7B DA F8, 05, 05]
+1328B; [7D 15 F8, 05, 05]
-1328C; [7B DA FF, 05, 05]
+1328C; [7D 15 FF, 05, 05]
-1328D; [7B DB 08, 05, 05]
+1328D; [7D 16 08, 05, 05]
-1328E; [7B DB 0F, 05, 05]
+1328E; [7D 16 0F, 05, 05]
-1328F; [7B DB 16, 05, 05]
+1328F; [7D 16 16, 05, 05]
-13290; [7B DB 1D, 05, 05]
+13290; [7D 16 1D, 05, 05]
-13291; [7B DB 24, 05, 05]
+13291; [7D 16 24, 05, 05]
-13292; [7B DB 2B, 05, 05]
+13292; [7D 16 2B, 05, 05]
-13293; [7B DB 32, 05, 05]
+13293; [7D 16 32, 05, 05]
-13294; [7B DB 39, 05, 05]
+13294; [7D 16 39, 05, 05]
-13295; [7B DB 40, 05, 05]
+13295; [7D 16 40, 05, 05]
-13296; [7B DB 47, 05, 05]
+13296; [7D 16 47, 05, 05]
-13297; [7B DB 4E, 05, 05]
+13297; [7D 16 4E, 05, 05]
-13298; [7B DB 55, 05, 05]
+13298; [7D 16 55, 05, 05]
-13299; [7B DB 5C, 05, 05]
+13299; [7D 16 5C, 05, 05]
-1329A; [7B DB 63, 05, 05]
+1329A; [7D 16 63, 05, 05]
-1329B; [7B DB 6A, 05, 05]
+1329B; [7D 16 6A, 05, 05]
-1329C; [7B DB 71, 05, 05]
+1329C; [7D 16 71, 05, 05]
-1329D; [7B DB 78, 05, 05]
+1329D; [7D 16 78, 05, 05]
-1329E; [7B DB 7F, 05, 05]
+1329E; [7D 16 7F, 05, 05]
-1329F; [7B DB 86, 05, 05]
+1329F; [7D 16 86, 05, 05]
-132A0; [7B DB 8D, 05, 05]
+132A0; [7D 16 8D, 05, 05]
-132A1; [7B DB 94, 05, 05]
+132A1; [7D 16 94, 05, 05]
-132A2; [7B DB 9B, 05, 05]
+132A2; [7D 16 9B, 05, 05]
-132A3; [7B DB A2, 05, 05]
+132A3; [7D 16 A2, 05, 05]
-132A4; [7B DB A9, 05, 05]
+132A4; [7D 16 A9, 05, 05]
-132A5; [7B DB B0, 05, 05]
+132A5; [7D 16 B0, 05, 05]
-132A6; [7B DB B7, 05, 05]
+132A6; [7D 16 B7, 05, 05]
-132A7; [7B DB BE, 05, 05]
+132A7; [7D 16 BE, 05, 05]
-132A8; [7B DB C5, 05, 05]
+132A8; [7D 16 C5, 05, 05]
-132A9; [7B DB CC, 05, 05]
+132A9; [7D 16 CC, 05, 05]
-132AA; [7B DB D3, 05, 05]
+132AA; [7D 16 D3, 05, 05]
-132AB; [7B DB DA, 05, 05]
+132AB; [7D 16 DA, 05, 05]
-132AC; [7B DB E1, 05, 05]
+132AC; [7D 16 E1, 05, 05]
-132AD; [7B DB E8, 05, 05]
+132AD; [7D 16 E8, 05, 05]
-132AE; [7B DB EF, 05, 05]
+132AE; [7D 16 EF, 05, 05]
-132AF; [7B DB F6, 05, 05]
+132AF; [7D 16 F6, 05, 05]
-132B0; [7B DB FD, 05, 05]
+132B0; [7D 16 FD, 05, 05]
-132B1; [7B DC 06, 05, 05]
+132B1; [7D 17 06, 05, 05]
-132B2; [7B DC 0D, 05, 05]
+132B2; [7D 17 0D, 05, 05]
-132B3; [7B DC 14, 05, 05]
+132B3; [7D 17 14, 05, 05]
-132B4; [7B DC 1B, 05, 05]
+132B4; [7D 17 1B, 05, 05]
-132B5; [7B DC 22, 05, 05]
+132B5; [7D 17 22, 05, 05]
-132B6; [7B DC 29, 05, 05]
+132B6; [7D 17 29, 05, 05]
-132B7; [7B DC 30, 05, 05]
+132B7; [7D 17 30, 05, 05]
-132B8; [7B DC 37, 05, 05]
+132B8; [7D 17 37, 05, 05]
-132B9; [7B DC 3E, 05, 05]
+132B9; [7D 17 3E, 05, 05]
-132BA; [7B DC 45, 05, 05]
+132BA; [7D 17 45, 05, 05]
-132BB; [7B DC 4C, 05, 05]
+132BB; [7D 17 4C, 05, 05]
-132BC; [7B DC 53, 05, 05]
+132BC; [7D 17 53, 05, 05]
-132BD; [7B DC 5A, 05, 05]
+132BD; [7D 17 5A, 05, 05]
-132BE; [7B DC 61, 05, 05]
+132BE; [7D 17 61, 05, 05]
-132BF; [7B DC 68, 05, 05]
+132BF; [7D 17 68, 05, 05]
-132C0; [7B DC 6F, 05, 05]
+132C0; [7D 17 6F, 05, 05]
-132C1; [7B DC 76, 05, 05]
+132C1; [7D 17 76, 05, 05]
-132C2; [7B DC 7D, 05, 05]
+132C2; [7D 17 7D, 05, 05]
-132C3; [7B DC 84, 05, 05]
+132C3; [7D 17 84, 05, 05]
-132C4; [7B DC 8B, 05, 05]
+132C4; [7D 17 8B, 05, 05]
-132C5; [7B DC 92, 05, 05]
+132C5; [7D 17 92, 05, 05]
-132C6; [7B DC 99, 05, 05]
+132C6; [7D 17 99, 05, 05]
-132C7; [7B DC A0, 05, 05]
+132C7; [7D 17 A0, 05, 05]
-132C8; [7B DC A7, 05, 05]
+132C8; [7D 17 A7, 05, 05]
-132C9; [7B DC AE, 05, 05]
+132C9; [7D 17 AE, 05, 05]
-132CA; [7B DC B5, 05, 05]
+132CA; [7D 17 B5, 05, 05]
-132CB; [7B DC BC, 05, 05]
+132CB; [7D 17 BC, 05, 05]
-132CC; [7B DC C3, 05, 05]
+132CC; [7D 17 C3, 05, 05]
-132CD; [7B DC CA, 05, 05]
+132CD; [7D 17 CA, 05, 05]
-132CE; [7B DC D1, 05, 05]
+132CE; [7D 17 D1, 05, 05]
-132CF; [7B DC D8, 05, 05]
+132CF; [7D 17 D8, 05, 05]
-132D0; [7B DC DF, 05, 05]
+132D0; [7D 17 DF, 05, 05]
-132D1; [7B DC E6, 05, 05]
+132D1; [7D 17 E6, 05, 05]
-132D2; [7B DC ED, 05, 05]
+132D2; [7D 17 ED, 05, 05]
-132D3; [7B DC F4, 05, 05]
+132D3; [7D 17 F4, 05, 05]
-132D4; [7B DC FB, 05, 05]
+132D4; [7D 17 FB, 05, 05]
-132D5; [7B DD 04, 05, 05]
+132D5; [7D 18 04, 05, 05]
-132D6; [7B DD 0B, 05, 05]
+132D6; [7D 18 0B, 05, 05]
-132D7; [7B DD 12, 05, 05]
+132D7; [7D 18 12, 05, 05]
-132D8; [7B DD 19, 05, 05]
+132D8; [7D 18 19, 05, 05]
-132D9; [7B DD 20, 05, 05]
+132D9; [7D 18 20, 05, 05]
-132DA; [7B DD 27, 05, 05]
+132DA; [7D 18 27, 05, 05]
-132DB; [7B DD 2E, 05, 05]
+132DB; [7D 18 2E, 05, 05]
-132DC; [7B DD 35, 05, 05]
+132DC; [7D 18 35, 05, 05]
-132DD; [7B DD 3C, 05, 05]
+132DD; [7D 18 3C, 05, 05]
-132DE; [7B DD 43, 05, 05]
+132DE; [7D 18 43, 05, 05]
-132DF; [7B DD 4A, 05, 05]
+132DF; [7D 18 4A, 05, 05]
-132E0; [7B DD 51, 05, 05]
+132E0; [7D 18 51, 05, 05]
-132E1; [7B DD 58, 05, 05]
+132E1; [7D 18 58, 05, 05]
-132E2; [7B DD 5F, 05, 05]
+132E2; [7D 18 5F, 05, 05]
-132E3; [7B DD 66, 05, 05]
+132E3; [7D 18 66, 05, 05]
-132E4; [7B DD 6D, 05, 05]
+132E4; [7D 18 6D, 05, 05]
-132E5; [7B DD 74, 05, 05]
+132E5; [7D 18 74, 05, 05]
-132E6; [7B DD 7B, 05, 05]
+132E6; [7D 18 7B, 05, 05]
-132E7; [7B DD 82, 05, 05]
+132E7; [7D 18 82, 05, 05]
-132E8; [7B DD 89, 05, 05]
+132E8; [7D 18 89, 05, 05]
-132E9; [7B DD 90, 05, 05]
+132E9; [7D 18 90, 05, 05]
-132EA; [7B DD 97, 05, 05]
+132EA; [7D 18 97, 05, 05]
-132EB; [7B DD 9E, 05, 05]
+132EB; [7D 18 9E, 05, 05]
-132EC; [7B DD A5, 05, 05]
+132EC; [7D 18 A5, 05, 05]
-132ED; [7B DD AC, 05, 05]
+132ED; [7D 18 AC, 05, 05]
-132EE; [7B DD B3, 05, 05]
+132EE; [7D 18 B3, 05, 05]
-132EF; [7B DD BA, 05, 05]
+132EF; [7D 18 BA, 05, 05]
-132F0; [7B DD C1, 05, 05]
+132F0; [7D 18 C1, 05, 05]
-132F1; [7B DD C8, 05, 05]
+132F1; [7D 18 C8, 05, 05]
-132F2; [7B DD CF, 05, 05]
+132F2; [7D 18 CF, 05, 05]
-132F3; [7B DD D6, 05, 05]
+132F3; [7D 18 D6, 05, 05]
-132F4; [7B DD DD, 05, 05]
+132F4; [7D 18 DD, 05, 05]
-132F5; [7B DD E4, 05, 05]
+132F5; [7D 18 E4, 05, 05]
-132F6; [7B DD EB, 05, 05]
+132F6; [7D 18 EB, 05, 05]
-132F7; [7B DD F2, 05, 05]
+132F7; [7D 18 F2, 05, 05]
-132F8; [7B DD F9, 05, 05]
+132F8; [7D 18 F9, 05, 05]
-132F9; [7B DE 02, 05, 05]
+132F9; [7D 19 02, 05, 05]
-132FA; [7B DE 09, 05, 05]
+132FA; [7D 19 09, 05, 05]
-132FB; [7B DE 10, 05, 05]
+132FB; [7D 19 10, 05, 05]
-132FC; [7B DE 17, 05, 05]
+132FC; [7D 19 17, 05, 05]
-132FD; [7B DE 1E, 05, 05]
+132FD; [7D 19 1E, 05, 05]
-132FE; [7B DE 25, 05, 05]
+132FE; [7D 19 25, 05, 05]
-132FF; [7B DE 2C, 05, 05]
+132FF; [7D 19 2C, 05, 05]
-13300; [7B DE 33, 05, 05]
+13300; [7D 19 33, 05, 05]
-13301; [7B DE 3A, 05, 05]
+13301; [7D 19 3A, 05, 05]
-13302; [7B DE 41, 05, 05]
+13302; [7D 19 41, 05, 05]
-13303; [7B DE 48, 05, 05]
+13303; [7D 19 48, 05, 05]
-13304; [7B DE 4F, 05, 05]
+13304; [7D 19 4F, 05, 05]
-13305; [7B DE 56, 05, 05]
+13305; [7D 19 56, 05, 05]
-13306; [7B DE 5D, 05, 05]
+13306; [7D 19 5D, 05, 05]
-13307; [7B DE 64, 05, 05]
+13307; [7D 19 64, 05, 05]
-13308; [7B DE 6B, 05, 05]
+13308; [7D 19 6B, 05, 05]
-13309; [7B DE 72, 05, 05]
+13309; [7D 19 72, 05, 05]
-1330A; [7B DE 79, 05, 05]
+1330A; [7D 19 79, 05, 05]
-1330B; [7B DE 80, 05, 05]
+1330B; [7D 19 80, 05, 05]
-1330C; [7B DE 87, 05, 05]
+1330C; [7D 19 87, 05, 05]
-1330D; [7B DE 8E, 05, 05]
+1330D; [7D 19 8E, 05, 05]
-1330E; [7B DE 95, 05, 05]
+1330E; [7D 19 95, 05, 05]
-1330F; [7B DE 9C, 05, 05]
+1330F; [7D 19 9C, 05, 05]
-13310; [7B DE A3, 05, 05]
+13310; [7D 19 A3, 05, 05]
-13311; [7B DE AA, 05, 05]
+13311; [7D 19 AA, 05, 05]
-13312; [7B DE B1, 05, 05]
+13312; [7D 19 B1, 05, 05]
-13313; [7B DE B8, 05, 05]
+13313; [7D 19 B8, 05, 05]
-13314; [7B DE BF, 05, 05]
+13314; [7D 19 BF, 05, 05]
-13315; [7B DE C6, 05, 05]
+13315; [7D 19 C6, 05, 05]
-13316; [7B DE CD, 05, 05]
+13316; [7D 19 CD, 05, 05]
-13317; [7B DE D4, 05, 05]
+13317; [7D 19 D4, 05, 05]
-13318; [7B DE DB, 05, 05]
+13318; [7D 19 DB, 05, 05]
-13319; [7B DE E2, 05, 05]
+13319; [7D 19 E2, 05, 05]
-1331A; [7B DE E9, 05, 05]
+1331A; [7D 19 E9, 05, 05]
-1331B; [7B DE F0, 05, 05]
+1331B; [7D 19 F0, 05, 05]
-1331C; [7B DE F7, 05, 05]
+1331C; [7D 19 F7, 05, 05]
-1331D; [7B DE FE, 05, 05]
+1331D; [7D 19 FE, 05, 05]
-1331E; [7B DF 07, 05, 05]
+1331E; [7D 1A 07, 05, 05]
-1331F; [7B DF 0E, 05, 05]
+1331F; [7D 1A 0E, 05, 05]
-13320; [7B DF 15, 05, 05]
+13320; [7D 1A 15, 05, 05]
-13321; [7B DF 1C, 05, 05]
+13321; [7D 1A 1C, 05, 05]
-13322; [7B DF 23, 05, 05]
+13322; [7D 1A 23, 05, 05]
-13323; [7B DF 2A, 05, 05]
+13323; [7D 1A 2A, 05, 05]
-13324; [7B DF 31, 05, 05]
+13324; [7D 1A 31, 05, 05]
-13325; [7B DF 38, 05, 05]
+13325; [7D 1A 38, 05, 05]
-13326; [7B DF 3F, 05, 05]
+13326; [7D 1A 3F, 05, 05]
-13327; [7B DF 46, 05, 05]
+13327; [7D 1A 46, 05, 05]
-13328; [7B DF 4D, 05, 05]
+13328; [7D 1A 4D, 05, 05]
-13329; [7B DF 54, 05, 05]
+13329; [7D 1A 54, 05, 05]
-1332A; [7B DF 5B, 05, 05]
+1332A; [7D 1A 5B, 05, 05]
-1332B; [7B DF 62, 05, 05]
+1332B; [7D 1A 62, 05, 05]
-1332C; [7B DF 69, 05, 05]
+1332C; [7D 1A 69, 05, 05]
-1332D; [7B DF 70, 05, 05]
+1332D; [7D 1A 70, 05, 05]
-1332E; [7B DF 77, 05, 05]
+1332E; [7D 1A 77, 05, 05]
-1332F; [7B DF 7E, 05, 05]
+1332F; [7D 1A 7E, 05, 05]
-13330; [7B DF 85, 05, 05]
+13330; [7D 1A 85, 05, 05]
-13331; [7B DF 8C, 05, 05]
+13331; [7D 1A 8C, 05, 05]
-13332; [7B DF 93, 05, 05]
+13332; [7D 1A 93, 05, 05]
-13333; [7B DF 9A, 05, 05]
+13333; [7D 1A 9A, 05, 05]
-13334; [7B DF A1, 05, 05]
+13334; [7D 1A A1, 05, 05]
-13335; [7B DF A8, 05, 05]
+13335; [7D 1A A8, 05, 05]
-13336; [7B DF AF, 05, 05]
+13336; [7D 1A AF, 05, 05]
-13337; [7B DF B6, 05, 05]
+13337; [7D 1A B6, 05, 05]
-13338; [7B DF BD, 05, 05]
+13338; [7D 1A BD, 05, 05]
-13339; [7B DF C4, 05, 05]
+13339; [7D 1A C4, 05, 05]
-1333A; [7B DF CB, 05, 05]
+1333A; [7D 1A CB, 05, 05]
-1333B; [7B DF D2, 05, 05]
+1333B; [7D 1A D2, 05, 05]
-1333C; [7B DF D9, 05, 05]
+1333C; [7D 1A D9, 05, 05]
-1333D; [7B DF E0, 05, 05]
+1333D; [7D 1A E0, 05, 05]
-1333E; [7B DF E7, 05, 05]
+1333E; [7D 1A E7, 05, 05]
-1333F; [7B DF EE, 05, 05]
+1333F; [7D 1A EE, 05, 05]
-13340; [7B DF F5, 05, 05]
+13340; [7D 1A F5, 05, 05]
-13341; [7B DF FC, 05, 05]
+13341; [7D 1A FC, 05, 05]
-13342; [7B E0 05, 05, 05]
+13342; [7D 1B 05, 05, 05]
-13343; [7B E0 0C, 05, 05]
+13343; [7D 1B 0C, 05, 05]
-13344; [7B E0 13, 05, 05]
+13344; [7D 1B 13, 05, 05]
-13345; [7B E0 1A, 05, 05]
+13345; [7D 1B 1A, 05, 05]
-13346; [7B E0 21, 05, 05]
+13346; [7D 1B 21, 05, 05]
-13347; [7B E0 28, 05, 05]
+13347; [7D 1B 28, 05, 05]
-13348; [7B E0 2F, 05, 05]
+13348; [7D 1B 2F, 05, 05]
-13349; [7B E0 36, 05, 05]
+13349; [7D 1B 36, 05, 05]
-1334A; [7B E0 3D, 05, 05]
+1334A; [7D 1B 3D, 05, 05]
-1334B; [7B E0 44, 05, 05]
+1334B; [7D 1B 44, 05, 05]
-1334C; [7B E0 4B, 05, 05]
+1334C; [7D 1B 4B, 05, 05]
-1334D; [7B E0 52, 05, 05]
+1334D; [7D 1B 52, 05, 05]
-1334E; [7B E0 59, 05, 05]
+1334E; [7D 1B 59, 05, 05]
-1334F; [7B E0 60, 05, 05]
+1334F; [7D 1B 60, 05, 05]
-13350; [7B E0 67, 05, 05]
+13350; [7D 1B 67, 05, 05]
-13351; [7B E0 6E, 05, 05]
+13351; [7D 1B 6E, 05, 05]
-13352; [7B E0 75, 05, 05]
+13352; [7D 1B 75, 05, 05]
-13353; [7B E0 7C, 05, 05]
+13353; [7D 1B 7C, 05, 05]
-13354; [7B E0 83, 05, 05]
+13354; [7D 1B 83, 05, 05]
-13355; [7B E0 8A, 05, 05]
+13355; [7D 1B 8A, 05, 05]
-13356; [7B E0 91, 05, 05]
+13356; [7D 1B 91, 05, 05]
-13357; [7B E0 98, 05, 05]
+13357; [7D 1B 98, 05, 05]
-13358; [7B E0 9F, 05, 05]
+13358; [7D 1B 9F, 05, 05]
-13359; [7B E0 A6, 05, 05]
+13359; [7D 1B A6, 05, 05]
-1335A; [7B E0 AD, 05, 05]
+1335A; [7D 1B AD, 05, 05]
-1335B; [7B E0 B4, 05, 05]
+1335B; [7D 1B B4, 05, 05]
-1335C; [7B E0 BB, 05, 05]
+1335C; [7D 1B BB, 05, 05]
-1335D; [7B E0 C2, 05, 05]
+1335D; [7D 1B C2, 05, 05]
-1335E; [7B E0 C9, 05, 05]
+1335E; [7D 1B C9, 05, 05]
-1335F; [7B E0 D0, 05, 05]
+1335F; [7D 1B D0, 05, 05]
-13360; [7B E0 D7, 05, 05]
+13360; [7D 1B D7, 05, 05]
-13361; [7B E0 DE, 05, 05]
+13361; [7D 1B DE, 05, 05]
-13362; [7B E0 E5, 05, 05]
+13362; [7D 1B E5, 05, 05]
-13363; [7B E0 EC, 05, 05]
+13363; [7D 1B EC, 05, 05]
-13364; [7B E0 F3, 05, 05]
+13364; [7D 1B F3, 05, 05]
-13365; [7B E0 FA, 05, 05]
+13365; [7D 1B FA, 05, 05]
-13366; [7B E1 03, 05, 05]
+13366; [7D 1C 03, 05, 05]
-13367; [7B E1 0A, 05, 05]
+13367; [7D 1C 0A, 05, 05]
-13368; [7B E1 11, 05, 05]
+13368; [7D 1C 11, 05, 05]
-13369; [7B E1 18, 05, 05]
+13369; [7D 1C 18, 05, 05]
-1336A; [7B E1 1F, 05, 05]
+1336A; [7D 1C 1F, 05, 05]
-1336B; [7B E1 26, 05, 05]
+1336B; [7D 1C 26, 05, 05]
-1336C; [7B E1 2D, 05, 05]
+1336C; [7D 1C 2D, 05, 05]
-1336D; [7B E1 34, 05, 05]
+1336D; [7D 1C 34, 05, 05]
-1336E; [7B E1 3B, 05, 05]
+1336E; [7D 1C 3B, 05, 05]
-1336F; [7B E1 42, 05, 05]
+1336F; [7D 1C 42, 05, 05]
-13370; [7B E1 49, 05, 05]
+13370; [7D 1C 49, 05, 05]
-13371; [7B E1 50, 05, 05]
+13371; [7D 1C 50, 05, 05]
-13372; [7B E1 57, 05, 05]
+13372; [7D 1C 57, 05, 05]
-13373; [7B E1 5E, 05, 05]
+13373; [7D 1C 5E, 05, 05]
-13374; [7B E1 65, 05, 05]
+13374; [7D 1C 65, 05, 05]
-13375; [7B E1 6C, 05, 05]
+13375; [7D 1C 6C, 05, 05]
-13376; [7B E1 73, 05, 05]
+13376; [7D 1C 73, 05, 05]
-13377; [7B E1 7A, 05, 05]
+13377; [7D 1C 7A, 05, 05]
-13378; [7B E1 81, 05, 05]
+13378; [7D 1C 81, 05, 05]
-13379; [7B E1 88, 05, 05]
+13379; [7D 1C 88, 05, 05]
-1337A; [7B E1 8F, 05, 05]
+1337A; [7D 1C 8F, 05, 05]
-1337B; [7B E1 96, 05, 05]
+1337B; [7D 1C 96, 05, 05]
-1337C; [7B E1 9D, 05, 05]
+1337C; [7D 1C 9D, 05, 05]
-1337D; [7B E1 A4, 05, 05]
+1337D; [7D 1C A4, 05, 05]
-1337E; [7B E1 AB, 05, 05]
+1337E; [7D 1C AB, 05, 05]
-1337F; [7B E1 B2, 05, 05]
+1337F; [7D 1C B2, 05, 05]
-13380; [7B E1 B9, 05, 05]
+13380; [7D 1C B9, 05, 05]
-13381; [7B E1 C0, 05, 05]
+13381; [7D 1C C0, 05, 05]
-13382; [7B E1 C7, 05, 05]
+13382; [7D 1C C7, 05, 05]
-13383; [7B E1 CE, 05, 05]
+13383; [7D 1C CE, 05, 05]
-13384; [7B E1 D5, 05, 05]
+13384; [7D 1C D5, 05, 05]
-13385; [7B E1 DC, 05, 05]
+13385; [7D 1C DC, 05, 05]
-13386; [7B E1 E3, 05, 05]
+13386; [7D 1C E3, 05, 05]
-13387; [7B E1 EA, 05, 05]
+13387; [7D 1C EA, 05, 05]
-13388; [7B E1 F1, 05, 05]
+13388; [7D 1C F1, 05, 05]
-13389; [7B E1 F8, 05, 05]
+13389; [7D 1C F8, 05, 05]
-1338A; [7B E1 FF, 05, 05]
+1338A; [7D 1C FF, 05, 05]
-1338B; [7B E2 08, 05, 05]
+1338B; [7D 1D 08, 05, 05]
-1338C; [7B E2 0F, 05, 05]
+1338C; [7D 1D 0F, 05, 05]
-1338D; [7B E2 16, 05, 05]
+1338D; [7D 1D 16, 05, 05]
-1338E; [7B E2 1D, 05, 05]
+1338E; [7D 1D 1D, 05, 05]
-1338F; [7B E2 24, 05, 05]
+1338F; [7D 1D 24, 05, 05]
-13390; [7B E2 2B, 05, 05]
+13390; [7D 1D 2B, 05, 05]
-13391; [7B E2 32, 05, 05]
+13391; [7D 1D 32, 05, 05]
-13392; [7B E2 39, 05, 05]
+13392; [7D 1D 39, 05, 05]
-13393; [7B E2 40, 05, 05]
+13393; [7D 1D 40, 05, 05]
-13394; [7B E2 47, 05, 05]
+13394; [7D 1D 47, 05, 05]
-13395; [7B E2 4E, 05, 05]
+13395; [7D 1D 4E, 05, 05]
-13396; [7B E2 55, 05, 05]
+13396; [7D 1D 55, 05, 05]
-13397; [7B E2 5C, 05, 05]
+13397; [7D 1D 5C, 05, 05]
-13398; [7B E2 63, 05, 05]
+13398; [7D 1D 63, 05, 05]
-13399; [7B E2 6A, 05, 05]
+13399; [7D 1D 6A, 05, 05]
-1339A; [7B E2 71, 05, 05]
+1339A; [7D 1D 71, 05, 05]
-1339B; [7B E2 78, 05, 05]
+1339B; [7D 1D 78, 05, 05]
-1339C; [7B E2 7F, 05, 05]
+1339C; [7D 1D 7F, 05, 05]
-1339D; [7B E2 86, 05, 05]
+1339D; [7D 1D 86, 05, 05]
-1339E; [7B E2 8D, 05, 05]
+1339E; [7D 1D 8D, 05, 05]
-1339F; [7B E2 94, 05, 05]
+1339F; [7D 1D 94, 05, 05]
-133A0; [7B E2 9B, 05, 05]
+133A0; [7D 1D 9B, 05, 05]
-133A1; [7B E2 A2, 05, 05]
+133A1; [7D 1D A2, 05, 05]
-133A2; [7B E2 A9, 05, 05]
+133A2; [7D 1D A9, 05, 05]
-133A3; [7B E2 B0, 05, 05]
+133A3; [7D 1D B0, 05, 05]
-133A4; [7B E2 B7, 05, 05]
+133A4; [7D 1D B7, 05, 05]
-133A5; [7B E2 BE, 05, 05]
+133A5; [7D 1D BE, 05, 05]
-133A6; [7B E2 C5, 05, 05]
+133A6; [7D 1D C5, 05, 05]
-133A7; [7B E2 CC, 05, 05]
+133A7; [7D 1D CC, 05, 05]
-133A8; [7B E2 D3, 05, 05]
+133A8; [7D 1D D3, 05, 05]
-133A9; [7B E2 DA, 05, 05]
+133A9; [7D 1D DA, 05, 05]
-133AA; [7B E2 E1, 05, 05]
+133AA; [7D 1D E1, 05, 05]
-133AB; [7B E2 E8, 05, 05]
+133AB; [7D 1D E8, 05, 05]
-133AC; [7B E2 EF, 05, 05]
+133AC; [7D 1D EF, 05, 05]
-133AD; [7B E2 F6, 05, 05]
+133AD; [7D 1D F6, 05, 05]
-133AE; [7B E2 FD, 05, 05]
+133AE; [7D 1D FD, 05, 05]
-133AF; [7B E3 06, 05, 05]
+133AF; [7D 1E 06, 05, 05]
-133B0; [7B E3 0D, 05, 05]
+133B0; [7D 1E 0D, 05, 05]
-133B1; [7B E3 14, 05, 05]
+133B1; [7D 1E 14, 05, 05]
-133B2; [7B E3 1B, 05, 05]
+133B2; [7D 1E 1B, 05, 05]
-133B3; [7B E3 22, 05, 05]
+133B3; [7D 1E 22, 05, 05]
-133B4; [7B E3 29, 05, 05]
+133B4; [7D 1E 29, 05, 05]
-133B5; [7B E3 30, 05, 05]
+133B5; [7D 1E 30, 05, 05]
-133B6; [7B E3 37, 05, 05]
+133B6; [7D 1E 37, 05, 05]
-133B7; [7B E3 3E, 05, 05]
+133B7; [7D 1E 3E, 05, 05]
-133B8; [7B E3 45, 05, 05]
+133B8; [7D 1E 45, 05, 05]
-133B9; [7B E3 4C, 05, 05]
+133B9; [7D 1E 4C, 05, 05]
-133BA; [7B E3 53, 05, 05]
+133BA; [7D 1E 53, 05, 05]
-133BB; [7B E3 5A, 05, 05]
+133BB; [7D 1E 5A, 05, 05]
-133BC; [7B E3 61, 05, 05]
+133BC; [7D 1E 61, 05, 05]
-133BD; [7B E3 68, 05, 05]
+133BD; [7D 1E 68, 05, 05]
-133BE; [7B E3 6F, 05, 05]
+133BE; [7D 1E 6F, 05, 05]
-133BF; [7B E3 76, 05, 05]
+133BF; [7D 1E 76, 05, 05]
-133C0; [7B E3 7D, 05, 05]
+133C0; [7D 1E 7D, 05, 05]
-133C1; [7B E3 84, 05, 05]
+133C1; [7D 1E 84, 05, 05]
-133C2; [7B E3 8B, 05, 05]
+133C2; [7D 1E 8B, 05, 05]
-133C3; [7B E3 92, 05, 05]
+133C3; [7D 1E 92, 05, 05]
-133C4; [7B E3 99, 05, 05]
+133C4; [7D 1E 99, 05, 05]
-133C5; [7B E3 A0, 05, 05]
+133C5; [7D 1E A0, 05, 05]
-133C6; [7B E3 A7, 05, 05]
+133C6; [7D 1E A7, 05, 05]
-133C7; [7B E3 AE, 05, 05]
+133C7; [7D 1E AE, 05, 05]
-133C8; [7B E3 B5, 05, 05]
+133C8; [7D 1E B5, 05, 05]
-133C9; [7B E3 BC, 05, 05]
+133C9; [7D 1E BC, 05, 05]
-133CA; [7B E3 C3, 05, 05]
+133CA; [7D 1E C3, 05, 05]
-133CB; [7B E3 CA, 05, 05]
+133CB; [7D 1E CA, 05, 05]
-133CC; [7B E3 D1, 05, 05]
+133CC; [7D 1E D1, 05, 05]
-133CD; [7B E3 D8, 05, 05]
+133CD; [7D 1E D8, 05, 05]
-133CE; [7B E3 DF, 05, 05]
+133CE; [7D 1E DF, 05, 05]
-133CF; [7B E3 E6, 05, 05]
+133CF; [7D 1E E6, 05, 05]
-133D0; [7B E3 ED, 05, 05]
+133D0; [7D 1E ED, 05, 05]
-133D1; [7B E3 F4, 05, 05]
+133D1; [7D 1E F4, 05, 05]
-133D2; [7B E3 FB, 05, 05]
+133D2; [7D 1E FB, 05, 05]
-133D3; [7B E4 04, 05, 05]
+133D3; [7D 1F 04, 05, 05]
-133D4; [7B E4 0B, 05, 05]
+133D4; [7D 1F 0B, 05, 05]
-133D5; [7B E4 12, 05, 05]
+133D5; [7D 1F 12, 05, 05]
-133D6; [7B E4 19, 05, 05]
+133D6; [7D 1F 19, 05, 05]
-133D7; [7B E4 20, 05, 05]
+133D7; [7D 1F 20, 05, 05]
-133D8; [7B E4 27, 05, 05]
+133D8; [7D 1F 27, 05, 05]
-133D9; [7B E4 2E, 05, 05]
+133D9; [7D 1F 2E, 05, 05]
-133DA; [7B E4 35, 05, 05]
+133DA; [7D 1F 35, 05, 05]
-133DB; [7B E4 3C, 05, 05]
+133DB; [7D 1F 3C, 05, 05]
-133DC; [7B E4 43, 05, 05]
+133DC; [7D 1F 43, 05, 05]
-133DD; [7B E4 4A, 05, 05]
+133DD; [7D 1F 4A, 05, 05]
-133DE; [7B E4 51, 05, 05]
+133DE; [7D 1F 51, 05, 05]
-133DF; [7B E4 58, 05, 05]
+133DF; [7D 1F 58, 05, 05]
-133E0; [7B E4 5F, 05, 05]
+133E0; [7D 1F 5F, 05, 05]
-133E1; [7B E4 66, 05, 05]
+133E1; [7D 1F 66, 05, 05]
-133E2; [7B E4 6D, 05, 05]
+133E2; [7D 1F 6D, 05, 05]
-133E3; [7B E4 74, 05, 05]
+133E3; [7D 1F 74, 05, 05]
-133E4; [7B E4 7B, 05, 05]
+133E4; [7D 1F 7B, 05, 05]
-133E5; [7B E4 82, 05, 05]
+133E5; [7D 1F 82, 05, 05]
-133E6; [7B E4 89, 05, 05]
+133E6; [7D 1F 89, 05, 05]
-133E7; [7B E4 90, 05, 05]
+133E7; [7D 1F 90, 05, 05]
-133E8; [7B E4 97, 05, 05]
+133E8; [7D 1F 97, 05, 05]
-133E9; [7B E4 9E, 05, 05]
+133E9; [7D 1F 9E, 05, 05]
-133EA; [7B E4 A5, 05, 05]
+133EA; [7D 1F A5, 05, 05]
-133EB; [7B E4 AC, 05, 05]
+133EB; [7D 1F AC, 05, 05]
-133EC; [7B E4 B3, 05, 05]
+133EC; [7D 1F B3, 05, 05]
-133ED; [7B E4 BA, 05, 05]
+133ED; [7D 1F BA, 05, 05]
-133EE; [7B E4 C1, 05, 05]
+133EE; [7D 1F C1, 05, 05]
-133EF; [7B E4 C8, 05, 05]
+133EF; [7D 1F C8, 05, 05]
-133F0; [7B E4 CF, 05, 05]
+133F0; [7D 1F CF, 05, 05]
-133F1; [7B E4 D6, 05, 05]
+133F1; [7D 1F D6, 05, 05]
-133F2; [7B E4 DD, 05, 05]
+133F2; [7D 1F DD, 05, 05]
-133F3; [7B E4 E4, 05, 05]
+133F3; [7D 1F E4, 05, 05]
-133F4; [7B E4 EB, 05, 05]
+133F4; [7D 1F EB, 05, 05]
-133F5; [7B E4 F2, 05, 05]
+133F5; [7D 1F F2, 05, 05]
-133F6; [7B E4 F9, 05, 05]
+133F6; [7D 1F F9, 05, 05]
-133F7; [7B E5 02, 05, 05]
+133F7; [7D 20 02, 05, 05]
-133F8; [7B E5 09, 05, 05]
+133F8; [7D 20 09, 05, 05]
-133F9; [7B E5 10, 05, 05]
+133F9; [7D 20 10, 05, 05]
-133FA; [7B E5 17, 05, 05]
+133FA; [7D 20 17, 05, 05]
-133FB; [7B E5 1E, 05, 05]
+133FB; [7D 20 1E, 05, 05]
-133FC; [7B E5 25, 05, 05]
+133FC; [7D 20 25, 05, 05]
-133FD; [7B E5 2C, 05, 05]
+133FD; [7D 20 2C, 05, 05]
-133FE; [7B E5 33, 05, 05]
+133FE; [7D 20 33, 05, 05]
-133FF; [7B E5 3A, 05, 05]
+133FF; [7D 20 3A, 05, 05]
-13400; [7B E5 41, 05, 05]
+13400; [7D 20 41, 05, 05]
-13401; [7B E5 48, 05, 05]
+13401; [7D 20 48, 05, 05]
-13402; [7B E5 4F, 05, 05]
+13402; [7D 20 4F, 05, 05]
-13403; [7B E5 56, 05, 05]
+13403; [7D 20 56, 05, 05]
-13404; [7B E5 5D, 05, 05]
+13404; [7D 20 5D, 05, 05]
-13405; [7B E5 64, 05, 05]
+13405; [7D 20 64, 05, 05]
-13406; [7B E5 6B, 05, 05]
+13406; [7D 20 6B, 05, 05]
-13407; [7B E5 72, 05, 05]
+13407; [7D 20 72, 05, 05]
-13408; [7B E5 79, 05, 05]
+13408; [7D 20 79, 05, 05]
-13409; [7B E5 80, 05, 05]
+13409; [7D 20 80, 05, 05]
-1340A; [7B E5 87, 05, 05]
+1340A; [7D 20 87, 05, 05]
-1340B; [7B E5 8E, 05, 05]
+1340B; [7D 20 8E, 05, 05]
-1340C; [7B E5 95, 05, 05]
+1340C; [7D 20 95, 05, 05]
-1340D; [7B E5 9C, 05, 05]
+1340D; [7D 20 9C, 05, 05]
-1340E; [7B E5 A3, 05, 05]
+1340E; [7D 20 A3, 05, 05]
-1340F; [7B E5 AA, 05, 05]
+1340F; [7D 20 AA, 05, 05]
-13410; [7B E5 B1, 05, 05]
+13410; [7D 20 B1, 05, 05]
-13411; [7B E5 B8, 05, 05]
+13411; [7D 20 B8, 05, 05]
-13412; [7B E5 BF, 05, 05]
+13412; [7D 20 BF, 05, 05]
-13413; [7B E5 C6, 05, 05]
+13413; [7D 20 C6, 05, 05]
-13414; [7B E5 CD, 05, 05]
+13414; [7D 20 CD, 05, 05]
-13415; [7B E5 D4, 05, 05]
+13415; [7D 20 D4, 05, 05]
-13416; [7B E5 DB, 05, 05]
+13416; [7D 20 DB, 05, 05]
-13417; [7B E5 E2, 05, 05]
+13417; [7D 20 E2, 05, 05]
-13418; [7B E5 E9, 05, 05]
+13418; [7D 20 E9, 05, 05]
-13419; [7B E5 F0, 05, 05]
+13419; [7D 20 F0, 05, 05]
-1341A; [7B E5 F7, 05, 05]
+1341A; [7D 20 F7, 05, 05]
-1341B; [7B E5 FE, 05, 05]
+1341B; [7D 20 FE, 05, 05]
-1341C; [7B E6 07, 05, 05]
+1341C; [7D 21 07, 05, 05]
-1341D; [7B E6 0E, 05, 05]
+1341D; [7D 21 0E, 05, 05]
-1341E; [7B E6 15, 05, 05]
+1341E; [7D 21 15, 05, 05]
-1341F; [7B E6 1C, 05, 05]
+1341F; [7D 21 1C, 05, 05]
-13420; [7B E6 23, 05, 05]
+13420; [7D 21 23, 05, 05]
-13421; [7B E6 2A, 05, 05]
+13421; [7D 21 2A, 05, 05]
-13422; [7B E6 31, 05, 05]
+13422; [7D 21 31, 05, 05]
-13423; [7B E6 38, 05, 05]
+13423; [7D 21 38, 05, 05]
-13424; [7B E6 3F, 05, 05]
+13424; [7D 21 3F, 05, 05]
-13425; [7B E6 46, 05, 05]
+13425; [7D 21 46, 05, 05]
-13426; [7B E6 4D, 05, 05]
+13426; [7D 21 4D, 05, 05]
-13427; [7B E6 54, 05, 05]
+13427; [7D 21 54, 05, 05]
-13428; [7B E6 5B, 05, 05]
+13428; [7D 21 5B, 05, 05]
-13429; [7B E6 62, 05, 05]
+13429; [7D 21 62, 05, 05]
-1342A; [7B E6 69, 05, 05]
+1342A; [7D 21 69, 05, 05]
-1342B; [7B E6 70, 05, 05]
+1342B; [7D 21 70, 05, 05]
-1342C; [7B E6 77, 05, 05]
+1342C; [7D 21 77, 05, 05]
-1342D; [7B E6 7E, 05, 05]
+1342D; [7D 21 7E, 05, 05]
-1342E; [7B E6 85, 05, 05]
+1342E; [7D 21 85, 05, 05]
-FDD1 109A0; [7C 04 02, 05, 05] # Meroitic_Cursive first primary starts new lead byte (compressible)
+FDD1 109A0; [7D 22 02, 05, 05] # Meroitic_Cursive first primary (compressible)
-FDD1 10980; [7C 04 02, 05, 05] # Meroitic_Hieroglyphs first primary (compressible)
+FDD1 10980; [7D 22 02, 05, 05] # Meroitic_Hieroglyphs first primary (compressible)
-109A0; [7C 06, 05, 05]
-10980; [7C 06, 70, 05]
+109A0; [7D 24, 05, 05]
+10980; [7D 24, 70, 05]
-109A1; [7C 08, 05, 05]
-10981; [7C 08, 70, 05]
+109A1; [7D 26, 05, 05]
+10981; [7D 26, 70, 05]
-109A2; [7C 0A, 05, 05]
-10982; [7C 0A, 70, 05]
+109A2; [7D 28, 05, 05]
+10982; [7D 28, 70, 05]
-109A3; [7C 0C, 05, 05]
-10983; [7C 0C, 70, 05]
+109A3; [7D 2A, 05, 05]
+10983; [7D 2A, 70, 05]
-109A4; [7C 0E, 05, 05]
-10984; [7C 0E, 70, 05]
+109A4; [7D 2C, 05, 05]
+10984; [7D 2C, 70, 05]
-109A5; [7C 10, 05, 05]
-10985; [7C 10, 70, 05]
+109A5; [7D 2E, 05, 05]
+10985; [7D 2E, 70, 05]
-109A6; [7C 12, 05, 05]
-10986; [7C 12, 70, 05]
-10987; [7C 12, 78, 05]
+109A6; [7D 30, 05, 05]
+10986; [7D 30, 70, 05]
+10987; [7D 30, 78, 05]
-109A7; [7C 14, 05, 05]
-10988; [7C 14, 70, 05]
+109A7; [7D 32, 05, 05]
+10988; [7D 32, 70, 05]
-109A8; [7C 16, 05, 05]
-10989; [7C 16, 70, 05]
+109A8; [7D 34, 05, 05]
+10989; [7D 34, 70, 05]
-109A9; [7C 18, 05, 05]
-1098A; [7C 18, 70, 05]
-1098B; [7C 18, 78, 05]
+109A9; [7D 36, 05, 05]
+1098A; [7D 36, 70, 05]
+1098B; [7D 36, 78, 05]
-109AA; [7C 1A, 05, 05]
-1098C; [7C 1A, 70, 05]
-1098D; [7C 1A, 78, 05]
+109AA; [7D 38, 05, 05]
+1098C; [7D 38, 70, 05]
+1098D; [7D 38, 78, 05]
-109AB; [7C 1C, 05, 05]
-1098E; [7C 1C, 70, 05]
-1098F; [7C 1C, 78, 05]
+109AB; [7D 3A, 05, 05]
+1098E; [7D 3A, 70, 05]
+1098F; [7D 3A, 78, 05]
-109AC; [7C 1E, 05, 05]
-10990; [7C 1E, 70, 05]
+109AC; [7D 3C, 05, 05]
+10990; [7D 3C, 70, 05]
-109AD; [7C 20, 05, 05]
-10991; [7C 20, 70, 05]
+109AD; [7D 3E, 05, 05]
+10991; [7D 3E, 70, 05]
-109AE; [7C 22, 05, 05]
-10992; [7C 22, 70, 05]
+109AE; [7D 40, 05, 05]
+10992; [7D 40, 70, 05]
-109AF; [7C 24, 05, 05]
-109B0; [7C 24, 70, 05]
-10993; [7C 24, 75, 05]
-10994; [7C 24, 7A, 05]
+109AF; [7D 42, 05, 05]
+109B0; [7D 42, 70, 05]
+10993; [7D 42, 75, 05]
+10994; [7D 42, 7A, 05]
-109B1; [7C 26, 05, 05]
-10995; [7C 26, 70, 05]
+109B1; [7D 44, 05, 05]
+10995; [7D 44, 70, 05]
-109B2; [7C 28, 05, 05]
-10996; [7C 28, 70, 05]
+109B2; [7D 46, 05, 05]
+10996; [7D 46, 70, 05]
-109B3; [7C 2A, 05, 05]
-10997; [7C 2A, 70, 05]
+109B3; [7D 48, 05, 05]
+10997; [7D 48, 70, 05]
-109B4; [7C 2C, 05, 05]
-10998; [7C 2C, 70, 05]
-10999; [7C 2C, 78, 05]
+109B4; [7D 4A, 05, 05]
+10998; [7D 4A, 70, 05]
+10999; [7D 4A, 78, 05]
-109B5; [7C 2E, 05, 05]
-1099A; [7C 2E, 70, 05]
-1099B; [7C 2E, 78, 05]
+109B5; [7D 4C, 05, 05]
+1099A; [7D 4C, 70, 05]
+1099B; [7D 4C, 78, 05]
-109B6; [7C 30, 05, 05]
-1099C; [7C 30, 70, 05]
+109B6; [7D 4E, 05, 05]
+1099C; [7D 4E, 70, 05]
-109B7; [7C 32, 05, 05]
-1099D; [7C 32, 70, 05]
+109B7; [7D 50, 05, 05]
+1099D; [7D 50, 70, 05]
-109BE; [7C 34 02, 05, 05]
+109BE; [7D 52 02, 05, 05]
-109BF; [7C 34 09, 05, 05]
+109BF; [7D 52 09, 05, 05]
-1099E; [7C 34 10, 05, 05]
+1099E; [7D 52 10, 05, 05]
-1099F; [7C 34 17, 05, 05]
+1099F; [7D 52 17, 05, 05]
-FDD1 14400; [7C 35 02, 05, 05] # Anatolian_Hieroglyphs first primary (compressible)
+FDD1 14400; [7D 53 02, 05, 05] # Anatolian_Hieroglyphs first primary (compressible)
-14400; [7C 35 09, 05, 05]
+14400; [7D 53 09, 05, 05]
-14401; [7C 35 10, 05, 05]
+14401; [7D 53 10, 05, 05]
-14402; [7C 35 17, 05, 05]
+14402; [7D 53 17, 05, 05]
-14403; [7C 35 1E, 05, 05]
+14403; [7D 53 1E, 05, 05]
-14404; [7C 35 25, 05, 05]
+14404; [7D 53 25, 05, 05]
-14405; [7C 35 2C, 05, 05]
+14405; [7D 53 2C, 05, 05]
-14406; [7C 35 33, 05, 05]
+14406; [7D 53 33, 05, 05]
-14407; [7C 35 3A, 05, 05]
+14407; [7D 53 3A, 05, 05]
-14408; [7C 35 41, 05, 05]
+14408; [7D 53 41, 05, 05]
-14409; [7C 35 48, 05, 05]
+14409; [7D 53 48, 05, 05]
-1440A; [7C 35 4F, 05, 05]
+1440A; [7D 53 4F, 05, 05]
-1440B; [7C 35 56, 05, 05]
+1440B; [7D 53 56, 05, 05]
-1440C; [7C 35 5D, 05, 05]
+1440C; [7D 53 5D, 05, 05]
-1440D; [7C 35 64, 05, 05]
+1440D; [7D 53 64, 05, 05]
-1440E; [7C 35 6B, 05, 05]
+1440E; [7D 53 6B, 05, 05]
-1440F; [7C 35 72, 05, 05]
+1440F; [7D 53 72, 05, 05]
-14410; [7C 35 79, 05, 05]
+14410; [7D 53 79, 05, 05]
-14411; [7C 35 80, 05, 05]
+14411; [7D 53 80, 05, 05]
-14412; [7C 35 87, 05, 05]
+14412; [7D 53 87, 05, 05]
-14413; [7C 35 8E, 05, 05]
+14413; [7D 53 8E, 05, 05]
-14414; [7C 35 95, 05, 05]
+14414; [7D 53 95, 05, 05]
-14415; [7C 35 9C, 05, 05]
+14415; [7D 53 9C, 05, 05]
-14416; [7C 35 A3, 05, 05]
+14416; [7D 53 A3, 05, 05]
-14417; [7C 35 AA, 05, 05]
+14417; [7D 53 AA, 05, 05]
-14418; [7C 35 B1, 05, 05]
+14418; [7D 53 B1, 05, 05]
-14419; [7C 35 B8, 05, 05]
+14419; [7D 53 B8, 05, 05]
-1441A; [7C 35 BF, 05, 05]
+1441A; [7D 53 BF, 05, 05]
-1441B; [7C 35 C6, 05, 05]
+1441B; [7D 53 C6, 05, 05]
-1441C; [7C 35 CD, 05, 05]
+1441C; [7D 53 CD, 05, 05]
-1441D; [7C 35 D4, 05, 05]
+1441D; [7D 53 D4, 05, 05]
-1441E; [7C 35 DB, 05, 05]
+1441E; [7D 53 DB, 05, 05]
-1441F; [7C 35 E2, 05, 05]
+1441F; [7D 53 E2, 05, 05]
-14420; [7C 35 E9, 05, 05]
+14420; [7D 53 E9, 05, 05]
-14421; [7C 35 F0, 05, 05]
+14421; [7D 53 F0, 05, 05]
-14422; [7C 35 F7, 05, 05]
+14422; [7D 53 F7, 05, 05]
-14423; [7C 35 FE, 05, 05]
+14423; [7D 53 FE, 05, 05]
-14424; [7C 36 07, 05, 05]
+14424; [7D 54 07, 05, 05]
-14425; [7C 36 0E, 05, 05]
+14425; [7D 54 0E, 05, 05]
-14426; [7C 36 15, 05, 05]
+14426; [7D 54 15, 05, 05]
-14427; [7C 36 1C, 05, 05]
+14427; [7D 54 1C, 05, 05]
-14428; [7C 36 23, 05, 05]
+14428; [7D 54 23, 05, 05]
-14429; [7C 36 2A, 05, 05]
+14429; [7D 54 2A, 05, 05]
-1442A; [7C 36 31, 05, 05]
+1442A; [7D 54 31, 05, 05]
-1442B; [7C 36 38, 05, 05]
+1442B; [7D 54 38, 05, 05]
-1442C; [7C 36 3F, 05, 05]
+1442C; [7D 54 3F, 05, 05]
-1442D; [7C 36 46, 05, 05]
+1442D; [7D 54 46, 05, 05]
-1442E; [7C 36 4D, 05, 05]
+1442E; [7D 54 4D, 05, 05]
-1442F; [7C 36 54, 05, 05]
+1442F; [7D 54 54, 05, 05]
-14430; [7C 36 5B, 05, 05]
+14430; [7D 54 5B, 05, 05]
-14431; [7C 36 62, 05, 05]
+14431; [7D 54 62, 05, 05]
-14432; [7C 36 69, 05, 05]
+14432; [7D 54 69, 05, 05]
-14433; [7C 36 70, 05, 05]
+14433; [7D 54 70, 05, 05]
-14434; [7C 36 77, 05, 05]
+14434; [7D 54 77, 05, 05]
-14435; [7C 36 7E, 05, 05]
+14435; [7D 54 7E, 05, 05]
-14436; [7C 36 85, 05, 05]
+14436; [7D 54 85, 05, 05]
-14437; [7C 36 8C, 05, 05]
+14437; [7D 54 8C, 05, 05]
-14438; [7C 36 93, 05, 05]
+14438; [7D 54 93, 05, 05]
-14439; [7C 36 9A, 05, 05]
+14439; [7D 54 9A, 05, 05]
-1443A; [7C 36 A1, 05, 05]
+1443A; [7D 54 A1, 05, 05]
-1443B; [7C 36 A8, 05, 05]
+1443B; [7D 54 A8, 05, 05]
-1443C; [7C 36 AF, 05, 05]
+1443C; [7D 54 AF, 05, 05]
-1443D; [7C 36 B6, 05, 05]
+1443D; [7D 54 B6, 05, 05]
-1443E; [7C 36 BD, 05, 05]
+1443E; [7D 54 BD, 05, 05]
-1443F; [7C 36 C4, 05, 05]
+1443F; [7D 54 C4, 05, 05]
-14440; [7C 36 CB, 05, 05]
+14440; [7D 54 CB, 05, 05]
-14441; [7C 36 D2, 05, 05]
+14441; [7D 54 D2, 05, 05]
-14442; [7C 36 D9, 05, 05]
+14442; [7D 54 D9, 05, 05]
-14443; [7C 36 E0, 05, 05]
+14443; [7D 54 E0, 05, 05]
-14444; [7C 36 E7, 05, 05]
+14444; [7D 54 E7, 05, 05]
-14445; [7C 36 EE, 05, 05]
+14445; [7D 54 EE, 05, 05]
-14446; [7C 36 F5, 05, 05]
+14446; [7D 54 F5, 05, 05]
-14447; [7C 36 FC, 05, 05]
+14447; [7D 54 FC, 05, 05]
-14448; [7C 37 05, 05, 05]
+14448; [7D 55 05, 05, 05]
-14449; [7C 37 0C, 05, 05]
+14449; [7D 55 0C, 05, 05]
-1444A; [7C 37 13, 05, 05]
+1444A; [7D 55 13, 05, 05]
-1444B; [7C 37 1A, 05, 05]
+1444B; [7D 55 1A, 05, 05]
-1444C; [7C 37 21, 05, 05]
+1444C; [7D 55 21, 05, 05]
-1444D; [7C 37 28, 05, 05]
+1444D; [7D 55 28, 05, 05]
-1444E; [7C 37 2F, 05, 05]
+1444E; [7D 55 2F, 05, 05]
-1444F; [7C 37 36, 05, 05]
+1444F; [7D 55 36, 05, 05]
-14450; [7C 37 3D, 05, 05]
+14450; [7D 55 3D, 05, 05]
-14451; [7C 37 44, 05, 05]
+14451; [7D 55 44, 05, 05]
-14452; [7C 37 4B, 05, 05]
+14452; [7D 55 4B, 05, 05]
-14453; [7C 37 52, 05, 05]
+14453; [7D 55 52, 05, 05]
-14454; [7C 37 59, 05, 05]
+14454; [7D 55 59, 05, 05]
-14455; [7C 37 60, 05, 05]
+14455; [7D 55 60, 05, 05]
-14456; [7C 37 67, 05, 05]
+14456; [7D 55 67, 05, 05]
-14457; [7C 37 6E, 05, 05]
+14457; [7D 55 6E, 05, 05]
-14458; [7C 37 75, 05, 05]
+14458; [7D 55 75, 05, 05]
-14459; [7C 37 7C, 05, 05]
+14459; [7D 55 7C, 05, 05]
-1445A; [7C 37 83, 05, 05]
+1445A; [7D 55 83, 05, 05]
-1445B; [7C 37 8A, 05, 05]
+1445B; [7D 55 8A, 05, 05]
-1445C; [7C 37 91, 05, 05]
+1445C; [7D 55 91, 05, 05]
-1445D; [7C 37 98, 05, 05]
+1445D; [7D 55 98, 05, 05]
-1445E; [7C 37 9F, 05, 05]
+1445E; [7D 55 9F, 05, 05]
-1445F; [7C 37 A6, 05, 05]
+1445F; [7D 55 A6, 05, 05]
-14460; [7C 37 AD, 05, 05]
+14460; [7D 55 AD, 05, 05]
-14461; [7C 37 B4, 05, 05]
+14461; [7D 55 B4, 05, 05]
-14462; [7C 37 BB, 05, 05]
+14462; [7D 55 BB, 05, 05]
-14463; [7C 37 C2, 05, 05]
+14463; [7D 55 C2, 05, 05]
-14464; [7C 37 C9, 05, 05]
+14464; [7D 55 C9, 05, 05]
-14465; [7C 37 D0, 05, 05]
+14465; [7D 55 D0, 05, 05]
-14466; [7C 37 D7, 05, 05]
+14466; [7D 55 D7, 05, 05]
-14467; [7C 37 DE, 05, 05]
+14467; [7D 55 DE, 05, 05]
-14468; [7C 37 E5, 05, 05]
+14468; [7D 55 E5, 05, 05]
-14469; [7C 37 EC, 05, 05]
+14469; [7D 55 EC, 05, 05]
-1446A; [7C 37 F3, 05, 05]
+1446A; [7D 55 F3, 05, 05]
-1446B; [7C 37 FA, 05, 05]
+1446B; [7D 55 FA, 05, 05]
-1446C; [7C 38 03, 05, 05]
+1446C; [7D 56 03, 05, 05]
-1446D; [7C 38 0A, 05, 05]
+1446D; [7D 56 0A, 05, 05]
-1446E; [7C 38 11, 05, 05]
+1446E; [7D 56 11, 05, 05]
-1446F; [7C 38 18, 05, 05]
+1446F; [7D 56 18, 05, 05]
-14470; [7C 38 1F, 05, 05]
+14470; [7D 56 1F, 05, 05]
-14471; [7C 38 26, 05, 05]
+14471; [7D 56 26, 05, 05]
-14472; [7C 38 2D, 05, 05]
+14472; [7D 56 2D, 05, 05]
-14473; [7C 38 34, 05, 05]
+14473; [7D 56 34, 05, 05]
-14474; [7C 38 3B, 05, 05]
+14474; [7D 56 3B, 05, 05]
-14475; [7C 38 42, 05, 05]
+14475; [7D 56 42, 05, 05]
-14476; [7C 38 49, 05, 05]
+14476; [7D 56 49, 05, 05]
-14477; [7C 38 50, 05, 05]
+14477; [7D 56 50, 05, 05]
-14478; [7C 38 57, 05, 05]
+14478; [7D 56 57, 05, 05]
-14479; [7C 38 5E, 05, 05]
+14479; [7D 56 5E, 05, 05]
-1447A; [7C 38 65, 05, 05]
+1447A; [7D 56 65, 05, 05]
-1447B; [7C 38 6C, 05, 05]
+1447B; [7D 56 6C, 05, 05]
-1447C; [7C 38 73, 05, 05]
+1447C; [7D 56 73, 05, 05]
-1447D; [7C 38 7A, 05, 05]
+1447D; [7D 56 7A, 05, 05]
-1447E; [7C 38 81, 05, 05]
+1447E; [7D 56 81, 05, 05]
-1447F; [7C 38 88, 05, 05]
+1447F; [7D 56 88, 05, 05]
-14480; [7C 38 8F, 05, 05]
+14480; [7D 56 8F, 05, 05]
-14481; [7C 38 96, 05, 05]
+14481; [7D 56 96, 05, 05]
-14482; [7C 38 9D, 05, 05]
+14482; [7D 56 9D, 05, 05]
-14483; [7C 38 A4, 05, 05]
+14483; [7D 56 A4, 05, 05]
-14484; [7C 38 AB, 05, 05]
+14484; [7D 56 AB, 05, 05]
-14485; [7C 38 B2, 05, 05]
+14485; [7D 56 B2, 05, 05]
-14486; [7C 38 B9, 05, 05]
+14486; [7D 56 B9, 05, 05]
-14487; [7C 38 C0, 05, 05]
+14487; [7D 56 C0, 05, 05]
-14488; [7C 38 C7, 05, 05]
+14488; [7D 56 C7, 05, 05]
-14489; [7C 38 CE, 05, 05]
+14489; [7D 56 CE, 05, 05]
-1448A; [7C 38 D5, 05, 05]
+1448A; [7D 56 D5, 05, 05]
-1448B; [7C 38 DC, 05, 05]
+1448B; [7D 56 DC, 05, 05]
-1448C; [7C 38 E3, 05, 05]
+1448C; [7D 56 E3, 05, 05]
-1448D; [7C 38 EA, 05, 05]
+1448D; [7D 56 EA, 05, 05]
-1448E; [7C 38 F1, 05, 05]
+1448E; [7D 56 F1, 05, 05]
-1448F; [7C 38 F8, 05, 05]
+1448F; [7D 56 F8, 05, 05]
-14490; [7C 38 FF, 05, 05]
+14490; [7D 56 FF, 05, 05]
-14491; [7C 39 08, 05, 05]
+14491; [7D 57 08, 05, 05]
-14492; [7C 39 0F, 05, 05]
+14492; [7D 57 0F, 05, 05]
-14493; [7C 39 16, 05, 05]
+14493; [7D 57 16, 05, 05]
-14494; [7C 39 1D, 05, 05]
+14494; [7D 57 1D, 05, 05]
-14495; [7C 39 24, 05, 05]
+14495; [7D 57 24, 05, 05]
-14496; [7C 39 2B, 05, 05]
+14496; [7D 57 2B, 05, 05]
-14497; [7C 39 32, 05, 05]
+14497; [7D 57 32, 05, 05]
-14498; [7C 39 39, 05, 05]
+14498; [7D 57 39, 05, 05]
-14499; [7C 39 40, 05, 05]
+14499; [7D 57 40, 05, 05]
-1449A; [7C 39 47, 05, 05]
+1449A; [7D 57 47, 05, 05]
-1449B; [7C 39 4E, 05, 05]
+1449B; [7D 57 4E, 05, 05]
-1449C; [7C 39 55, 05, 05]
+1449C; [7D 57 55, 05, 05]
-1449D; [7C 39 5C, 05, 05]
+1449D; [7D 57 5C, 05, 05]
-1449E; [7C 39 63, 05, 05]
+1449E; [7D 57 63, 05, 05]
-1449F; [7C 39 6A, 05, 05]
+1449F; [7D 57 6A, 05, 05]
-144A0; [7C 39 71, 05, 05]
+144A0; [7D 57 71, 05, 05]
-144A1; [7C 39 78, 05, 05]
+144A1; [7D 57 78, 05, 05]
-144A2; [7C 39 7F, 05, 05]
+144A2; [7D 57 7F, 05, 05]
-144A3; [7C 39 86, 05, 05]
+144A3; [7D 57 86, 05, 05]
-144A4; [7C 39 8D, 05, 05]
+144A4; [7D 57 8D, 05, 05]
-144A5; [7C 39 94, 05, 05]
+144A5; [7D 57 94, 05, 05]
-144A6; [7C 39 9B, 05, 05]
+144A6; [7D 57 9B, 05, 05]
-144A7; [7C 39 A2, 05, 05]
+144A7; [7D 57 A2, 05, 05]
-144A8; [7C 39 A9, 05, 05]
+144A8; [7D 57 A9, 05, 05]
-144A9; [7C 39 B0, 05, 05]
+144A9; [7D 57 B0, 05, 05]
-144AA; [7C 39 B7, 05, 05]
+144AA; [7D 57 B7, 05, 05]
-144AB; [7C 39 BE, 05, 05]
+144AB; [7D 57 BE, 05, 05]
-144AC; [7C 39 C5, 05, 05]
+144AC; [7D 57 C5, 05, 05]
-144AD; [7C 39 CC, 05, 05]
+144AD; [7D 57 CC, 05, 05]
-144AE; [7C 39 D3, 05, 05]
+144AE; [7D 57 D3, 05, 05]
-144AF; [7C 39 DA, 05, 05]
+144AF; [7D 57 DA, 05, 05]
-144B0; [7C 39 E1, 05, 05]
+144B0; [7D 57 E1, 05, 05]
-144B1; [7C 39 E8, 05, 05]
+144B1; [7D 57 E8, 05, 05]
-144B2; [7C 39 EF, 05, 05]
+144B2; [7D 57 EF, 05, 05]
-144B3; [7C 39 F6, 05, 05]
+144B3; [7D 57 F6, 05, 05]
-144B4; [7C 39 FD, 05, 05]
+144B4; [7D 57 FD, 05, 05]
-144B5; [7C 3A 06, 05, 05]
+144B5; [7D 58 06, 05, 05]
-144B6; [7C 3A 0D, 05, 05]
+144B6; [7D 58 0D, 05, 05]
-144B7; [7C 3A 14, 05, 05]
+144B7; [7D 58 14, 05, 05]
-144B8; [7C 3A 1B, 05, 05]
+144B8; [7D 58 1B, 05, 05]
-144B9; [7C 3A 22, 05, 05]
+144B9; [7D 58 22, 05, 05]
-144BA; [7C 3A 29, 05, 05]
+144BA; [7D 58 29, 05, 05]
-144BB; [7C 3A 30, 05, 05]
+144BB; [7D 58 30, 05, 05]
-144BC; [7C 3A 37, 05, 05]
+144BC; [7D 58 37, 05, 05]
-144BD; [7C 3A 3E, 05, 05]
+144BD; [7D 58 3E, 05, 05]
-144BE; [7C 3A 45, 05, 05]
+144BE; [7D 58 45, 05, 05]
-144BF; [7C 3A 4C, 05, 05]
+144BF; [7D 58 4C, 05, 05]
-144C0; [7C 3A 53, 05, 05]
+144C0; [7D 58 53, 05, 05]
-144C1; [7C 3A 5A, 05, 05]
+144C1; [7D 58 5A, 05, 05]
-144C2; [7C 3A 61, 05, 05]
+144C2; [7D 58 61, 05, 05]
-144C3; [7C 3A 68, 05, 05]
+144C3; [7D 58 68, 05, 05]
-144C4; [7C 3A 6F, 05, 05]
+144C4; [7D 58 6F, 05, 05]
-144C5; [7C 3A 76, 05, 05]
+144C5; [7D 58 76, 05, 05]
-144C6; [7C 3A 7D, 05, 05]
+144C6; [7D 58 7D, 05, 05]
-144C7; [7C 3A 84, 05, 05]
+144C7; [7D 58 84, 05, 05]
-144C8; [7C 3A 8B, 05, 05]
+144C8; [7D 58 8B, 05, 05]
-144C9; [7C 3A 92, 05, 05]
+144C9; [7D 58 92, 05, 05]
-144CA; [7C 3A 99, 05, 05]
+144CA; [7D 58 99, 05, 05]
-144CB; [7C 3A A0, 05, 05]
+144CB; [7D 58 A0, 05, 05]
-144CC; [7C 3A A7, 05, 05]
+144CC; [7D 58 A7, 05, 05]
-144CD; [7C 3A AE, 05, 05]
+144CD; [7D 58 AE, 05, 05]
-144CE; [7C 3A B5, 05, 05]
+144CE; [7D 58 B5, 05, 05]
-144CF; [7C 3A BC, 05, 05]
+144CF; [7D 58 BC, 05, 05]
-144D0; [7C 3A C3, 05, 05]
+144D0; [7D 58 C3, 05, 05]
-144D1; [7C 3A CA, 05, 05]
+144D1; [7D 58 CA, 05, 05]
-144D2; [7C 3A D1, 05, 05]
+144D2; [7D 58 D1, 05, 05]
-144D3; [7C 3A D8, 05, 05]
+144D3; [7D 58 D8, 05, 05]
-144D4; [7C 3A DF, 05, 05]
+144D4; [7D 58 DF, 05, 05]
-144D5; [7C 3A E6, 05, 05]
+144D5; [7D 58 E6, 05, 05]
-144D6; [7C 3A ED, 05, 05]
+144D6; [7D 58 ED, 05, 05]
-144D7; [7C 3A F4, 05, 05]
+144D7; [7D 58 F4, 05, 05]
-144D8; [7C 3A FB, 05, 05]
+144D8; [7D 58 FB, 05, 05]
-144D9; [7C 3B 04, 05, 05]
+144D9; [7D 59 04, 05, 05]
-144DA; [7C 3B 0B, 05, 05]
+144DA; [7D 59 0B, 05, 05]
-144DB; [7C 3B 12, 05, 05]
+144DB; [7D 59 12, 05, 05]
-144DC; [7C 3B 19, 05, 05]
+144DC; [7D 59 19, 05, 05]
-144DD; [7C 3B 20, 05, 05]
+144DD; [7D 59 20, 05, 05]
-144DE; [7C 3B 27, 05, 05]
+144DE; [7D 59 27, 05, 05]
-144DF; [7C 3B 2E, 05, 05]
+144DF; [7D 59 2E, 05, 05]
-144E0; [7C 3B 35, 05, 05]
+144E0; [7D 59 35, 05, 05]
-144E1; [7C 3B 3C, 05, 05]
+144E1; [7D 59 3C, 05, 05]
-144E2; [7C 3B 43, 05, 05]
+144E2; [7D 59 43, 05, 05]
-144E3; [7C 3B 4A, 05, 05]
+144E3; [7D 59 4A, 05, 05]
-144E4; [7C 3B 51, 05, 05]
+144E4; [7D 59 51, 05, 05]
-144E5; [7C 3B 58, 05, 05]
+144E5; [7D 59 58, 05, 05]
-144E6; [7C 3B 5F, 05, 05]
+144E6; [7D 59 5F, 05, 05]
-144E7; [7C 3B 66, 05, 05]
+144E7; [7D 59 66, 05, 05]
-144E8; [7C 3B 6D, 05, 05]
+144E8; [7D 59 6D, 05, 05]
-144E9; [7C 3B 74, 05, 05]
+144E9; [7D 59 74, 05, 05]
-144EA; [7C 3B 7B, 05, 05]
+144EA; [7D 59 7B, 05, 05]
-144EB; [7C 3B 82, 05, 05]
+144EB; [7D 59 82, 05, 05]
-144EC; [7C 3B 89, 05, 05]
+144EC; [7D 59 89, 05, 05]
-144ED; [7C 3B 90, 05, 05]
+144ED; [7D 59 90, 05, 05]
-144EE; [7C 3B 97, 05, 05]
+144EE; [7D 59 97, 05, 05]
-144EF; [7C 3B 9E, 05, 05]
+144EF; [7D 59 9E, 05, 05]
-144F0; [7C 3B A5, 05, 05]
+144F0; [7D 59 A5, 05, 05]
-144F1; [7C 3B AC, 05, 05]
+144F1; [7D 59 AC, 05, 05]
-144F2; [7C 3B B3, 05, 05]
+144F2; [7D 59 B3, 05, 05]
-144F3; [7C 3B BA, 05, 05]
+144F3; [7D 59 BA, 05, 05]
-144F4; [7C 3B C1, 05, 05]
+144F4; [7D 59 C1, 05, 05]
-144F5; [7C 3B C8, 05, 05]
+144F5; [7D 59 C8, 05, 05]
-144F6; [7C 3B CF, 05, 05]
+144F6; [7D 59 CF, 05, 05]
-144F7; [7C 3B D6, 05, 05]
+144F7; [7D 59 D6, 05, 05]
-144F8; [7C 3B DD, 05, 05]
+144F8; [7D 59 DD, 05, 05]
-144F9; [7C 3B E4, 05, 05]
+144F9; [7D 59 E4, 05, 05]
-144FA; [7C 3B EB, 05, 05]
+144FA; [7D 59 EB, 05, 05]
-144FB; [7C 3B F2, 05, 05]
+144FB; [7D 59 F2, 05, 05]
-144FC; [7C 3B F9, 05, 05]
+144FC; [7D 59 F9, 05, 05]
-144FD; [7C 3C 02, 05, 05]
+144FD; [7D 5A 02, 05, 05]
-144FE; [7C 3C 09, 05, 05]
+144FE; [7D 5A 09, 05, 05]
-144FF; [7C 3C 10, 05, 05]
+144FF; [7D 5A 10, 05, 05]
-14500; [7C 3C 17, 05, 05]
+14500; [7D 5A 17, 05, 05]
-14501; [7C 3C 1E, 05, 05]
+14501; [7D 5A 1E, 05, 05]
-14502; [7C 3C 25, 05, 05]
+14502; [7D 5A 25, 05, 05]
-14503; [7C 3C 2C, 05, 05]
+14503; [7D 5A 2C, 05, 05]
-14504; [7C 3C 33, 05, 05]
+14504; [7D 5A 33, 05, 05]
-14505; [7C 3C 3A, 05, 05]
+14505; [7D 5A 3A, 05, 05]
-14506; [7C 3C 41, 05, 05]
+14506; [7D 5A 41, 05, 05]
-14507; [7C 3C 48, 05, 05]
+14507; [7D 5A 48, 05, 05]
-14508; [7C 3C 4F, 05, 05]
+14508; [7D 5A 4F, 05, 05]
-14509; [7C 3C 56, 05, 05]
+14509; [7D 5A 56, 05, 05]
-1450A; [7C 3C 5D, 05, 05]
+1450A; [7D 5A 5D, 05, 05]
-1450B; [7C 3C 64, 05, 05]
+1450B; [7D 5A 64, 05, 05]
-1450C; [7C 3C 6B, 05, 05]
+1450C; [7D 5A 6B, 05, 05]
-1450D; [7C 3C 72, 05, 05]
+1450D; [7D 5A 72, 05, 05]
-1450E; [7C 3C 79, 05, 05]
+1450E; [7D 5A 79, 05, 05]
-1450F; [7C 3C 80, 05, 05]
+1450F; [7D 5A 80, 05, 05]
-14510; [7C 3C 87, 05, 05]
+14510; [7D 5A 87, 05, 05]
-14511; [7C 3C 8E, 05, 05]
+14511; [7D 5A 8E, 05, 05]
-14512; [7C 3C 95, 05, 05]
+14512; [7D 5A 95, 05, 05]
-14513; [7C 3C 9C, 05, 05]
+14513; [7D 5A 9C, 05, 05]
-14514; [7C 3C A3, 05, 05]
+14514; [7D 5A A3, 05, 05]
-14515; [7C 3C AA, 05, 05]
+14515; [7D 5A AA, 05, 05]
-14516; [7C 3C B1, 05, 05]
+14516; [7D 5A B1, 05, 05]
-14517; [7C 3C B8, 05, 05]
+14517; [7D 5A B8, 05, 05]
-14518; [7C 3C BF, 05, 05]
+14518; [7D 5A BF, 05, 05]
-14519; [7C 3C C6, 05, 05]
+14519; [7D 5A C6, 05, 05]
-1451A; [7C 3C CD, 05, 05]
+1451A; [7D 5A CD, 05, 05]
-1451B; [7C 3C D4, 05, 05]
+1451B; [7D 5A D4, 05, 05]
-1451C; [7C 3C DB, 05, 05]
+1451C; [7D 5A DB, 05, 05]
-1451D; [7C 3C E2, 05, 05]
+1451D; [7D 5A E2, 05, 05]
-1451E; [7C 3C E9, 05, 05]
+1451E; [7D 5A E9, 05, 05]
-1451F; [7C 3C F0, 05, 05]
+1451F; [7D 5A F0, 05, 05]
-14520; [7C 3C F7, 05, 05]
+14520; [7D 5A F7, 05, 05]
-14521; [7C 3C FE, 05, 05]
+14521; [7D 5A FE, 05, 05]
-14522; [7C 3D 07, 05, 05]
+14522; [7D 5B 07, 05, 05]
-14523; [7C 3D 0E, 05, 05]
+14523; [7D 5B 0E, 05, 05]
-14524; [7C 3D 15, 05, 05]
+14524; [7D 5B 15, 05, 05]
-14525; [7C 3D 1C, 05, 05]
+14525; [7D 5B 1C, 05, 05]
-14526; [7C 3D 23, 05, 05]
+14526; [7D 5B 23, 05, 05]
-14527; [7C 3D 2A, 05, 05]
+14527; [7D 5B 2A, 05, 05]
-14528; [7C 3D 31, 05, 05]
+14528; [7D 5B 31, 05, 05]
-14529; [7C 3D 38, 05, 05]
+14529; [7D 5B 38, 05, 05]
-1452A; [7C 3D 3F, 05, 05]
+1452A; [7D 5B 3F, 05, 05]
-1452B; [7C 3D 46, 05, 05]
+1452B; [7D 5B 46, 05, 05]
-1452C; [7C 3D 4D, 05, 05]
+1452C; [7D 5B 4D, 05, 05]
-1452D; [7C 3D 54, 05, 05]
+1452D; [7D 5B 54, 05, 05]
-1452E; [7C 3D 5B, 05, 05]
+1452E; [7D 5B 5B, 05, 05]
-1452F; [7C 3D 62, 05, 05]
+1452F; [7D 5B 62, 05, 05]
-14530; [7C 3D 69, 05, 05]
+14530; [7D 5B 69, 05, 05]
-14531; [7C 3D 70, 05, 05]
+14531; [7D 5B 70, 05, 05]
-14532; [7C 3D 77, 05, 05]
+14532; [7D 5B 77, 05, 05]
-14533; [7C 3D 7E, 05, 05]
+14533; [7D 5B 7E, 05, 05]
-14534; [7C 3D 85, 05, 05]
+14534; [7D 5B 85, 05, 05]
-14535; [7C 3D 8C, 05, 05]
+14535; [7D 5B 8C, 05, 05]
-14536; [7C 3D 93, 05, 05]
+14536; [7D 5B 93, 05, 05]
-14537; [7C 3D 9A, 05, 05]
+14537; [7D 5B 9A, 05, 05]
-14538; [7C 3D A1, 05, 05]
+14538; [7D 5B A1, 05, 05]
-14539; [7C 3D A8, 05, 05]
+14539; [7D 5B A8, 05, 05]
-1453A; [7C 3D AF, 05, 05]
+1453A; [7D 5B AF, 05, 05]
-1453B; [7C 3D B6, 05, 05]
+1453B; [7D 5B B6, 05, 05]
-1453C; [7C 3D BD, 05, 05]
+1453C; [7D 5B BD, 05, 05]
-1453D; [7C 3D C4, 05, 05]
+1453D; [7D 5B C4, 05, 05]
-1453E; [7C 3D CB, 05, 05]
+1453E; [7D 5B CB, 05, 05]
-1453F; [7C 3D D2, 05, 05]
+1453F; [7D 5B D2, 05, 05]
-14540; [7C 3D D9, 05, 05]
+14540; [7D 5B D9, 05, 05]
-14541; [7C 3D E0, 05, 05]
+14541; [7D 5B E0, 05, 05]
-14542; [7C 3D E7, 05, 05]
+14542; [7D 5B E7, 05, 05]
-14543; [7C 3D EE, 05, 05]
+14543; [7D 5B EE, 05, 05]
-14544; [7C 3D F5, 05, 05]
+14544; [7D 5B F5, 05, 05]
-14545; [7C 3D FC, 05, 05]
+14545; [7D 5B FC, 05, 05]
-14546; [7C 3E 05, 05, 05]
+14546; [7D 5C 05, 05, 05]
-14547; [7C 3E 0C, 05, 05]
+14547; [7D 5C 0C, 05, 05]
-14548; [7C 3E 13, 05, 05]
+14548; [7D 5C 13, 05, 05]
-14549; [7C 3E 1A, 05, 05]
+14549; [7D 5C 1A, 05, 05]
-1454A; [7C 3E 21, 05, 05]
+1454A; [7D 5C 21, 05, 05]
-1454B; [7C 3E 28, 05, 05]
+1454B; [7D 5C 28, 05, 05]
-1454C; [7C 3E 2F, 05, 05]
+1454C; [7D 5C 2F, 05, 05]
-1454D; [7C 3E 36, 05, 05]
+1454D; [7D 5C 36, 05, 05]
-1454E; [7C 3E 3D, 05, 05]
+1454E; [7D 5C 3D, 05, 05]
-1454F; [7C 3E 44, 05, 05]
+1454F; [7D 5C 44, 05, 05]
-14550; [7C 3E 4B, 05, 05]
+14550; [7D 5C 4B, 05, 05]
-14551; [7C 3E 52, 05, 05]
+14551; [7D 5C 52, 05, 05]
-14552; [7C 3E 59, 05, 05]
+14552; [7D 5C 59, 05, 05]
-14553; [7C 3E 60, 05, 05]
+14553; [7D 5C 60, 05, 05]
-14554; [7C 3E 67, 05, 05]
+14554; [7D 5C 67, 05, 05]
-14555; [7C 3E 6E, 05, 05]
+14555; [7D 5C 6E, 05, 05]
-14556; [7C 3E 75, 05, 05]
+14556; [7D 5C 75, 05, 05]
-14557; [7C 3E 7C, 05, 05]
+14557; [7D 5C 7C, 05, 05]
-14558; [7C 3E 83, 05, 05]
+14558; [7D 5C 83, 05, 05]
-14559; [7C 3E 8A, 05, 05]
+14559; [7D 5C 8A, 05, 05]
-1455A; [7C 3E 91, 05, 05]
+1455A; [7D 5C 91, 05, 05]
-1455B; [7C 3E 98, 05, 05]
+1455B; [7D 5C 98, 05, 05]
-1455C; [7C 3E 9F, 05, 05]
+1455C; [7D 5C 9F, 05, 05]
-1455D; [7C 3E A6, 05, 05]
+1455D; [7D 5C A6, 05, 05]
-1455E; [7C 3E AD, 05, 05]
+1455E; [7D 5C AD, 05, 05]
-1455F; [7C 3E B4, 05, 05]
+1455F; [7D 5C B4, 05, 05]
-14560; [7C 3E BB, 05, 05]
+14560; [7D 5C BB, 05, 05]
-14561; [7C 3E C2, 05, 05]
+14561; [7D 5C C2, 05, 05]
-14562; [7C 3E C9, 05, 05]
+14562; [7D 5C C9, 05, 05]
-14563; [7C 3E D0, 05, 05]
+14563; [7D 5C D0, 05, 05]
-14564; [7C 3E D7, 05, 05]
+14564; [7D 5C D7, 05, 05]
-14565; [7C 3E DE, 05, 05]
+14565; [7D 5C DE, 05, 05]
-14566; [7C 3E E5, 05, 05]
+14566; [7D 5C E5, 05, 05]
-14567; [7C 3E EC, 05, 05]
+14567; [7D 5C EC, 05, 05]
-14568; [7C 3E F3, 05, 05]
+14568; [7D 5C F3, 05, 05]
-14569; [7C 3E FA, 05, 05]
+14569; [7D 5C FA, 05, 05]
-1456A; [7C 3F 03, 05, 05]
+1456A; [7D 5D 03, 05, 05]
-1456B; [7C 3F 0A, 05, 05]
+1456B; [7D 5D 0A, 05, 05]
-1456C; [7C 3F 11, 05, 05]
+1456C; [7D 5D 11, 05, 05]
-1456D; [7C 3F 18, 05, 05]
+1456D; [7D 5D 18, 05, 05]
-1456E; [7C 3F 1F, 05, 05]
+1456E; [7D 5D 1F, 05, 05]
-1456F; [7C 3F 26, 05, 05]
+1456F; [7D 5D 26, 05, 05]
-14570; [7C 3F 2D, 05, 05]
+14570; [7D 5D 2D, 05, 05]
-14571; [7C 3F 34, 05, 05]
+14571; [7D 5D 34, 05, 05]
-14572; [7C 3F 3B, 05, 05]
+14572; [7D 5D 3B, 05, 05]
-14573; [7C 3F 42, 05, 05]
+14573; [7D 5D 42, 05, 05]
-14574; [7C 3F 49, 05, 05]
+14574; [7D 5D 49, 05, 05]
-14575; [7C 3F 50, 05, 05]
+14575; [7D 5D 50, 05, 05]
-14576; [7C 3F 57, 05, 05]
+14576; [7D 5D 57, 05, 05]
-14577; [7C 3F 5E, 05, 05]
+14577; [7D 5D 5E, 05, 05]
-14578; [7C 3F 65, 05, 05]
+14578; [7D 5D 65, 05, 05]
-14579; [7C 3F 6C, 05, 05]
+14579; [7D 5D 6C, 05, 05]
-1457A; [7C 3F 73, 05, 05]
+1457A; [7D 5D 73, 05, 05]
-1457B; [7C 3F 7A, 05, 05]
+1457B; [7D 5D 7A, 05, 05]
-1457C; [7C 3F 81, 05, 05]
+1457C; [7D 5D 81, 05, 05]
-1457D; [7C 3F 88, 05, 05]
+1457D; [7D 5D 88, 05, 05]
-1457E; [7C 3F 8F, 05, 05]
+1457E; [7D 5D 8F, 05, 05]
-1457F; [7C 3F 96, 05, 05]
+1457F; [7D 5D 96, 05, 05]
-14580; [7C 3F 9D, 05, 05]
+14580; [7D 5D 9D, 05, 05]
-14581; [7C 3F A4, 05, 05]
+14581; [7D 5D A4, 05, 05]
-14582; [7C 3F AB, 05, 05]
+14582; [7D 5D AB, 05, 05]
-14583; [7C 3F B2, 05, 05]
+14583; [7D 5D B2, 05, 05]
-14584; [7C 3F B9, 05, 05]
+14584; [7D 5D B9, 05, 05]
-14585; [7C 3F C0, 05, 05]
+14585; [7D 5D C0, 05, 05]
-14586; [7C 3F C7, 05, 05]
+14586; [7D 5D C7, 05, 05]
-14587; [7C 3F CE, 05, 05]
+14587; [7D 5D CE, 05, 05]
-14588; [7C 3F D5, 05, 05]
+14588; [7D 5D D5, 05, 05]
-14589; [7C 3F DC, 05, 05]
+14589; [7D 5D DC, 05, 05]
-1458A; [7C 3F E3, 05, 05]
+1458A; [7D 5D E3, 05, 05]
-1458B; [7C 3F EA, 05, 05]
+1458B; [7D 5D EA, 05, 05]
-1458C; [7C 3F F1, 05, 05]
+1458C; [7D 5D F1, 05, 05]
-1458D; [7C 3F F8, 05, 05]
+1458D; [7D 5D F8, 05, 05]
-1458E; [7C 3F FF, 05, 05]
+1458E; [7D 5D FF, 05, 05]
-1458F; [7C 40 08, 05, 05]
+1458F; [7D 5E 08, 05, 05]
-14590; [7C 40 0F, 05, 05]
+14590; [7D 5E 0F, 05, 05]
-14591; [7C 40 16, 05, 05]
+14591; [7D 5E 16, 05, 05]
-14592; [7C 40 1D, 05, 05]
+14592; [7D 5E 1D, 05, 05]
-14593; [7C 40 24, 05, 05]
+14593; [7D 5E 24, 05, 05]
-14594; [7C 40 2B, 05, 05]
+14594; [7D 5E 2B, 05, 05]
-14595; [7C 40 32, 05, 05]
+14595; [7D 5E 32, 05, 05]
-14596; [7C 40 39, 05, 05]
+14596; [7D 5E 39, 05, 05]
-14597; [7C 40 40, 05, 05]
+14597; [7D 5E 40, 05, 05]
-14598; [7C 40 47, 05, 05]
+14598; [7D 5E 47, 05, 05]
-14599; [7C 40 4E, 05, 05]
+14599; [7D 5E 4E, 05, 05]
-1459A; [7C 40 55, 05, 05]
+1459A; [7D 5E 55, 05, 05]
-1459B; [7C 40 5C, 05, 05]
+1459B; [7D 5E 5C, 05, 05]
-1459C; [7C 40 63, 05, 05]
+1459C; [7D 5E 63, 05, 05]
-1459D; [7C 40 6A, 05, 05]
+1459D; [7D 5E 6A, 05, 05]
-1459E; [7C 40 71, 05, 05]
+1459E; [7D 5E 71, 05, 05]
-1459F; [7C 40 78, 05, 05]
+1459F; [7D 5E 78, 05, 05]
-145A0; [7C 40 7F, 05, 05]
+145A0; [7D 5E 7F, 05, 05]
-145A1; [7C 40 86, 05, 05]
+145A1; [7D 5E 86, 05, 05]
-145A2; [7C 40 8D, 05, 05]
+145A2; [7D 5E 8D, 05, 05]
-145A3; [7C 40 94, 05, 05]
+145A3; [7D 5E 94, 05, 05]
-145A4; [7C 40 9B, 05, 05]
+145A4; [7D 5E 9B, 05, 05]
-145A5; [7C 40 A2, 05, 05]
+145A5; [7D 5E A2, 05, 05]
-145A6; [7C 40 A9, 05, 05]
+145A6; [7D 5E A9, 05, 05]
-145A7; [7C 40 B0, 05, 05]
+145A7; [7D 5E B0, 05, 05]
-145A8; [7C 40 B7, 05, 05]
+145A8; [7D 5E B7, 05, 05]
-145A9; [7C 40 BE, 05, 05]
+145A9; [7D 5E BE, 05, 05]
-145AA; [7C 40 C5, 05, 05]
+145AA; [7D 5E C5, 05, 05]
-145AB; [7C 40 CC, 05, 05]
+145AB; [7D 5E CC, 05, 05]
-145AC; [7C 40 D3, 05, 05]
+145AC; [7D 5E D3, 05, 05]
-145AD; [7C 40 DA, 05, 05]
+145AD; [7D 5E DA, 05, 05]
-145AE; [7C 40 E1, 05, 05]
+145AE; [7D 5E E1, 05, 05]
-145AF; [7C 40 E8, 05, 05]
+145AF; [7D 5E E8, 05, 05]
-145B0; [7C 40 EF, 05, 05]
+145B0; [7D 5E EF, 05, 05]
-145B1; [7C 40 F6, 05, 05]
+145B1; [7D 5E F6, 05, 05]
-145B2; [7C 40 FD, 05, 05]
+145B2; [7D 5E FD, 05, 05]
-145B3; [7C 41 06, 05, 05]
+145B3; [7D 5F 06, 05, 05]
-145B4; [7C 41 0D, 05, 05]
+145B4; [7D 5F 0D, 05, 05]
-145B5; [7C 41 14, 05, 05]
+145B5; [7D 5F 14, 05, 05]
-145B6; [7C 41 1B, 05, 05]
+145B6; [7D 5F 1B, 05, 05]
-145B7; [7C 41 22, 05, 05]
+145B7; [7D 5F 22, 05, 05]
-145B8; [7C 41 29, 05, 05]
+145B8; [7D 5F 29, 05, 05]
-145B9; [7C 41 30, 05, 05]
+145B9; [7D 5F 30, 05, 05]
-145BA; [7C 41 37, 05, 05]
+145BA; [7D 5F 37, 05, 05]
-145BB; [7C 41 3E, 05, 05]
+145BB; [7D 5F 3E, 05, 05]
-145BC; [7C 41 45, 05, 05]
+145BC; [7D 5F 45, 05, 05]
-145BD; [7C 41 4C, 05, 05]
+145BD; [7D 5F 4C, 05, 05]
-145BE; [7C 41 53, 05, 05]
+145BE; [7D 5F 53, 05, 05]
-145BF; [7C 41 5A, 05, 05]
+145BF; [7D 5F 5A, 05, 05]
-145C0; [7C 41 61, 05, 05]
+145C0; [7D 5F 61, 05, 05]
-145C1; [7C 41 68, 05, 05]
+145C1; [7D 5F 68, 05, 05]
-145C2; [7C 41 6F, 05, 05]
+145C2; [7D 5F 6F, 05, 05]
-145C3; [7C 41 76, 05, 05]
+145C3; [7D 5F 76, 05, 05]
-145C4; [7C 41 7D, 05, 05]
+145C4; [7D 5F 7D, 05, 05]
-145C5; [7C 41 84, 05, 05]
+145C5; [7D 5F 84, 05, 05]
-145C6; [7C 41 8B, 05, 05]
+145C6; [7D 5F 8B, 05, 05]
-145C7; [7C 41 92, 05, 05]
+145C7; [7D 5F 92, 05, 05]
-145C8; [7C 41 99, 05, 05]
+145C8; [7D 5F 99, 05, 05]
-145C9; [7C 41 A0, 05, 05]
+145C9; [7D 5F A0, 05, 05]
-145CA; [7C 41 A7, 05, 05]
+145CA; [7D 5F A7, 05, 05]
-145CB; [7C 41 AE, 05, 05]
+145CB; [7D 5F AE, 05, 05]
-145CC; [7C 41 B5, 05, 05]
+145CC; [7D 5F B5, 05, 05]
-145CD; [7C 41 BC, 05, 05]
+145CD; [7D 5F BC, 05, 05]
-145CE; [7C 41 C3, 05, 05]
+145CE; [7D 5F C3, 05, 05]
-145CF; [7C 41 CA, 05, 05]
+145CF; [7D 5F CA, 05, 05]
-145D0; [7C 41 D1, 05, 05]
+145D0; [7D 5F D1, 05, 05]
-145D1; [7C 41 D8, 05, 05]
+145D1; [7D 5F D8, 05, 05]
-145D2; [7C 41 DF, 05, 05]
+145D2; [7D 5F DF, 05, 05]
-145D3; [7C 41 E6, 05, 05]
+145D3; [7D 5F E6, 05, 05]
-145D4; [7C 41 ED, 05, 05]
+145D4; [7D 5F ED, 05, 05]
-145D5; [7C 41 F4, 05, 05]
+145D5; [7D 5F F4, 05, 05]
-145D6; [7C 41 FB, 05, 05]
+145D6; [7D 5F FB, 05, 05]
-145D7; [7C 42 04, 05, 05]
+145D7; [7D 60 04, 05, 05]
-145D8; [7C 42 0B, 05, 05]
+145D8; [7D 60 0B, 05, 05]
-145D9; [7C 42 12, 05, 05]
+145D9; [7D 60 12, 05, 05]
-145DA; [7C 42 19, 05, 05]
+145DA; [7D 60 19, 05, 05]
-145DB; [7C 42 20, 05, 05]
+145DB; [7D 60 20, 05, 05]
-145DC; [7C 42 27, 05, 05]
+145DC; [7D 60 27, 05, 05]
-145DD; [7C 42 2E, 05, 05]
+145DD; [7D 60 2E, 05, 05]
-145DE; [7C 42 35, 05, 05]
+145DE; [7D 60 35, 05, 05]
-145DF; [7C 42 3C, 05, 05]
+145DF; [7D 60 3C, 05, 05]
-145E0; [7C 42 43, 05, 05]
+145E0; [7D 60 43, 05, 05]
-145E1; [7C 42 4A, 05, 05]
+145E1; [7D 60 4A, 05, 05]
-145E2; [7C 42 51, 05, 05]
+145E2; [7D 60 51, 05, 05]
-145E3; [7C 42 58, 05, 05]
+145E3; [7D 60 58, 05, 05]
-145E4; [7C 42 5F, 05, 05]
+145E4; [7D 60 5F, 05, 05]
-145E5; [7C 42 66, 05, 05]
+145E5; [7D 60 66, 05, 05]
-145E6; [7C 42 6D, 05, 05]
+145E6; [7D 60 6D, 05, 05]
-145E7; [7C 42 74, 05, 05]
+145E7; [7D 60 74, 05, 05]
-145E8; [7C 42 7B, 05, 05]
+145E8; [7D 60 7B, 05, 05]
-145E9; [7C 42 82, 05, 05]
+145E9; [7D 60 82, 05, 05]
-145EA; [7C 42 89, 05, 05]
+145EA; [7D 60 89, 05, 05]
-145EB; [7C 42 90, 05, 05]
+145EB; [7D 60 90, 05, 05]
-145EC; [7C 42 97, 05, 05]
+145EC; [7D 60 97, 05, 05]
-145ED; [7C 42 9E, 05, 05]
+145ED; [7D 60 9E, 05, 05]
-145EE; [7C 42 A5, 05, 05]
+145EE; [7D 60 A5, 05, 05]
-145EF; [7C 42 AC, 05, 05]
+145EF; [7D 60 AC, 05, 05]
-145F0; [7C 42 B3, 05, 05]
+145F0; [7D 60 B3, 05, 05]
-145F1; [7C 42 BA, 05, 05]
+145F1; [7D 60 BA, 05, 05]
-145F2; [7C 42 C1, 05, 05]
+145F2; [7D 60 C1, 05, 05]
-145F3; [7C 42 C8, 05, 05]
+145F3; [7D 60 C8, 05, 05]
-145F4; [7C 42 CF, 05, 05]
+145F4; [7D 60 CF, 05, 05]
-145F5; [7C 42 D6, 05, 05]
+145F5; [7D 60 D6, 05, 05]
-145F6; [7C 42 DD, 05, 05]
+145F6; [7D 60 DD, 05, 05]
-145F7; [7C 42 E4, 05, 05]
+145F7; [7D 60 E4, 05, 05]
-145F8; [7C 42 EB, 05, 05]
+145F8; [7D 60 EB, 05, 05]
-145F9; [7C 42 F2, 05, 05]
+145F9; [7D 60 F2, 05, 05]
-145FA; [7C 42 F9, 05, 05]
+145FA; [7D 60 F9, 05, 05]
-145FB; [7C 43 02, 05, 05]
+145FB; [7D 61 02, 05, 05]
-145FC; [7C 43 09, 05, 05]
+145FC; [7D 61 09, 05, 05]
-145FD; [7C 43 10, 05, 05]
+145FD; [7D 61 10, 05, 05]
-145FE; [7C 43 17, 05, 05]
+145FE; [7D 61 17, 05, 05]
-145FF; [7C 43 1E, 05, 05]
+145FF; [7D 61 1E, 05, 05]
-14600; [7C 43 25, 05, 05]
+14600; [7D 61 25, 05, 05]
-14601; [7C 43 2C, 05, 05]
+14601; [7D 61 2C, 05, 05]
-14602; [7C 43 33, 05, 05]
+14602; [7D 61 33, 05, 05]
-14603; [7C 43 3A, 05, 05]
+14603; [7D 61 3A, 05, 05]
-14604; [7C 43 41, 05, 05]
+14604; [7D 61 41, 05, 05]
-14605; [7C 43 48, 05, 05]
+14605; [7D 61 48, 05, 05]
-14606; [7C 43 4F, 05, 05]
+14606; [7D 61 4F, 05, 05]
-14607; [7C 43 56, 05, 05]
+14607; [7D 61 56, 05, 05]
-14608; [7C 43 5D, 05, 05]
+14608; [7D 61 5D, 05, 05]
-14609; [7C 43 64, 05, 05]
+14609; [7D 61 64, 05, 05]
-1460A; [7C 43 6B, 05, 05]
+1460A; [7D 61 6B, 05, 05]
-1460B; [7C 43 72, 05, 05]
+1460B; [7D 61 72, 05, 05]
-1460C; [7C 43 79, 05, 05]
+1460C; [7D 61 79, 05, 05]
-1460D; [7C 43 80, 05, 05]
+1460D; [7D 61 80, 05, 05]
-1460E; [7C 43 87, 05, 05]
+1460E; [7D 61 87, 05, 05]
-1460F; [7C 43 8E, 05, 05]
+1460F; [7D 61 8E, 05, 05]
-14610; [7C 43 95, 05, 05]
+14610; [7D 61 95, 05, 05]
-14611; [7C 43 9C, 05, 05]
+14611; [7D 61 9C, 05, 05]
-14612; [7C 43 A3, 05, 05]
+14612; [7D 61 A3, 05, 05]
-14613; [7C 43 AA, 05, 05]
+14613; [7D 61 AA, 05, 05]
-14614; [7C 43 B1, 05, 05]
+14614; [7D 61 B1, 05, 05]
-14615; [7C 43 B8, 05, 05]
+14615; [7D 61 B8, 05, 05]
-14616; [7C 43 BF, 05, 05]
+14616; [7D 61 BF, 05, 05]
-14617; [7C 43 C6, 05, 05]
+14617; [7D 61 C6, 05, 05]
-14618; [7C 43 CD, 05, 05]
+14618; [7D 61 CD, 05, 05]
-14619; [7C 43 D4, 05, 05]
+14619; [7D 61 D4, 05, 05]
-1461A; [7C 43 DB, 05, 05]
+1461A; [7D 61 DB, 05, 05]
-1461B; [7C 43 E2, 05, 05]
+1461B; [7D 61 E2, 05, 05]
-1461C; [7C 43 E9, 05, 05]
+1461C; [7D 61 E9, 05, 05]
-1461D; [7C 43 F0, 05, 05]
+1461D; [7D 61 F0, 05, 05]
-1461E; [7C 43 F7, 05, 05]
+1461E; [7D 61 F7, 05, 05]
-1461F; [7C 43 FE, 05, 05]
+1461F; [7D 61 FE, 05, 05]
-14620; [7C 44 07, 05, 05]
+14620; [7D 62 07, 05, 05]
-14621; [7C 44 0E, 05, 05]
+14621; [7D 62 0E, 05, 05]
-14622; [7C 44 15, 05, 05]
+14622; [7D 62 15, 05, 05]
-14623; [7C 44 1C, 05, 05]
+14623; [7D 62 1C, 05, 05]
-14624; [7C 44 23, 05, 05]
+14624; [7D 62 23, 05, 05]
-14625; [7C 44 2A, 05, 05]
+14625; [7D 62 2A, 05, 05]
-14626; [7C 44 31, 05, 05]
+14626; [7D 62 31, 05, 05]
-14627; [7C 44 38, 05, 05]
+14627; [7D 62 38, 05, 05]
-14628; [7C 44 3F, 05, 05]
+14628; [7D 62 3F, 05, 05]
-14629; [7C 44 46, 05, 05]
+14629; [7D 62 46, 05, 05]
-1462A; [7C 44 4D, 05, 05]
+1462A; [7D 62 4D, 05, 05]
-1462B; [7C 44 54, 05, 05]
+1462B; [7D 62 54, 05, 05]
-1462C; [7C 44 5B, 05, 05]
+1462C; [7D 62 5B, 05, 05]
-1462D; [7C 44 62, 05, 05]
+1462D; [7D 62 62, 05, 05]
-1462E; [7C 44 69, 05, 05]
+1462E; [7D 62 69, 05, 05]
-1462F; [7C 44 70, 05, 05]
+1462F; [7D 62 70, 05, 05]
-14630; [7C 44 77, 05, 05]
+14630; [7D 62 77, 05, 05]
-14631; [7C 44 7E, 05, 05]
+14631; [7D 62 7E, 05, 05]
-14632; [7C 44 85, 05, 05]
+14632; [7D 62 85, 05, 05]
-14633; [7C 44 8C, 05, 05]
+14633; [7D 62 8C, 05, 05]
-14634; [7C 44 93, 05, 05]
+14634; [7D 62 93, 05, 05]
-14635; [7C 44 9A, 05, 05]
+14635; [7D 62 9A, 05, 05]
-14636; [7C 44 A1, 05, 05]
+14636; [7D 62 A1, 05, 05]
-14637; [7C 44 A8, 05, 05]
+14637; [7D 62 A8, 05, 05]
-14638; [7C 44 AF, 05, 05]
+14638; [7D 62 AF, 05, 05]
-14639; [7C 44 B6, 05, 05]
+14639; [7D 62 B6, 05, 05]
-1463A; [7C 44 BD, 05, 05]
+1463A; [7D 62 BD, 05, 05]
-1463B; [7C 44 C4, 05, 05]
+1463B; [7D 62 C4, 05, 05]
-1463C; [7C 44 CB, 05, 05]
+1463C; [7D 62 CB, 05, 05]
-1463D; [7C 44 D2, 05, 05]
+1463D; [7D 62 D2, 05, 05]
-1463E; [7C 44 D9, 05, 05]
+1463E; [7D 62 D9, 05, 05]
-1463F; [7C 44 E0, 05, 05]
+1463F; [7D 62 E0, 05, 05]
-14640; [7C 44 E7, 05, 05]
+14640; [7D 62 E7, 05, 05]
-14641; [7C 44 EE, 05, 05]
+14641; [7D 62 EE, 05, 05]
-14642; [7C 44 F5, 05, 05]
+14642; [7D 62 F5, 05, 05]
-14643; [7C 44 FC, 05, 05]
+14643; [7D 62 FC, 05, 05]
-14644; [7C 45 05, 05, 05]
+14644; [7D 63 05, 05, 05]
-14645; [7C 45 0C, 05, 05]
+14645; [7D 63 0C, 05, 05]
-14646; [7C 45 13, 05, 05]
+14646; [7D 63 13, 05, 05]
-FDD1 18229; [7C 46 02, 05, 05] # Tangut first primary (compressible)
+FDD1 18229; [7D 64 02, 05, 05] # Tangut first primary (compressible)
-17000; [7C 46 04, 05, 05]
-17001; [7C 46 06, 05, 05]
-17002; [7C 46 08, 05, 05]
-17003; [7C 46 0A, 05, 05]
-17004; [7C 46 0C, 05, 05]
-17005; [7C 46 0E, 05, 05]
-17006; [7C 46 10, 05, 05]
-17007; [7C 46 12, 05, 05]
-17008; [7C 46 14, 05, 05]
-17009; [7C 46 16, 05, 05]
-1700A; [7C 46 18, 05, 05]
-1700B; [7C 46 1A, 05, 05]
-1700C; [7C 46 1C, 05, 05]
-1700D; [7C 46 1E, 05, 05]
-1700E; [7C 46 20, 05, 05]
-1700F; [7C 46 22, 05, 05]
-17010; [7C 46 24, 05, 05]
-17011; [7C 46 26, 05, 05]
-17012; [7C 46 28, 05, 05]
-17013; [7C 46 2A, 05, 05]
-17014; [7C 46 2C, 05, 05]
-17015; [7C 46 2E, 05, 05]
-17016; [7C 46 30, 05, 05]
-17017; [7C 46 32, 05, 05]
-17018; [7C 46 34, 05, 05]
-17019; [7C 46 36, 05, 05]
-1701A; [7C 46 38, 05, 05]
-1701B; [7C 46 3A, 05, 05]
-1701C; [7C 46 3C, 05, 05]
-1701D; [7C 46 3E, 05, 05]
-1701E; [7C 46 40, 05, 05]
-1701F; [7C 46 42, 05, 05]
-17020; [7C 46 44, 05, 05]
-17021; [7C 46 46, 05, 05]
-17022; [7C 46 48, 05, 05]
-17023; [7C 46 4A, 05, 05]
-17024; [7C 46 4C, 05, 05]
-17025; [7C 46 4E, 05, 05]
-17026; [7C 46 50, 05, 05]
-17027; [7C 46 52, 05, 05]
-17028; [7C 46 54, 05, 05]
-17029; [7C 46 56, 05, 05]
-1702A; [7C 46 58, 05, 05]
-1702B; [7C 46 5A, 05, 05]
-1702C; [7C 46 5C, 05, 05]
-1702D; [7C 46 5E, 05, 05]
-1702E; [7C 46 60, 05, 05]
-1702F; [7C 46 62, 05, 05]
-17030; [7C 46 64, 05, 05]
-17031; [7C 46 66, 05, 05]
-17032; [7C 46 68, 05, 05]
-17033; [7C 46 6A, 05, 05]
-17034; [7C 46 6C, 05, 05]
-17035; [7C 46 6E, 05, 05]
-17036; [7C 46 70, 05, 05]
-17037; [7C 46 72, 05, 05]
-17038; [7C 46 74, 05, 05]
-17039; [7C 46 76, 05, 05]
-1703A; [7C 46 78, 05, 05]
-1703B; [7C 46 7A, 05, 05]
-1703C; [7C 46 7C, 05, 05]
-1703D; [7C 46 7E, 05, 05]
-1703E; [7C 46 80, 05, 05]
-1703F; [7C 46 82, 05, 05]
-17040; [7C 46 84, 05, 05]
-17041; [7C 46 86, 05, 05]
-17042; [7C 46 88, 05, 05]
-17043; [7C 46 8A, 05, 05]
-17044; [7C 46 8C, 05, 05]
-17045; [7C 46 8E, 05, 05]
-17046; [7C 46 90, 05, 05]
-17047; [7C 46 92, 05, 05]
-17048; [7C 46 94, 05, 05]
-17049; [7C 46 96, 05, 05]
-1704A; [7C 46 98, 05, 05]
-1704B; [7C 46 9A, 05, 05]
-1704C; [7C 46 9C, 05, 05]
-1704D; [7C 46 9E, 05, 05]
-1704E; [7C 46 A0, 05, 05]
-1704F; [7C 46 A2, 05, 05]
-17050; [7C 46 A4, 05, 05]
-17051; [7C 46 A6, 05, 05]
-17052; [7C 46 A8, 05, 05]
-17053; [7C 46 AA, 05, 05]
-17054; [7C 46 AC, 05, 05]
-17055; [7C 46 AE, 05, 05]
-17056; [7C 46 B0, 05, 05]
-17057; [7C 46 B2, 05, 05]
-17058; [7C 46 B4, 05, 05]
-17059; [7C 46 B6, 05, 05]
-1705A; [7C 46 B8, 05, 05]
-1705B; [7C 46 BA, 05, 05]
-1705C; [7C 46 BC, 05, 05]
-1705D; [7C 46 BE, 05, 05]
-1705E; [7C 46 C0, 05, 05]
-1705F; [7C 46 C2, 05, 05]
-17060; [7C 46 C4, 05, 05]
-17061; [7C 46 C6, 05, 05]
-17062; [7C 46 C8, 05, 05]
-17063; [7C 46 CA, 05, 05]
-17064; [7C 46 CC, 05, 05]
-17065; [7C 46 CE, 05, 05]
-17066; [7C 46 D0, 05, 05]
-17067; [7C 46 D2, 05, 05]
-17068; [7C 46 D4, 05, 05]
-17069; [7C 46 D6, 05, 05]
-1706A; [7C 46 D8, 05, 05]
-1706B; [7C 46 DA, 05, 05]
-1706C; [7C 46 DC, 05, 05]
-1706D; [7C 46 DE, 05, 05]
-1706E; [7C 46 E0, 05, 05]
-1706F; [7C 46 E2, 05, 05]
-17070; [7C 46 E4, 05, 05]
-17071; [7C 46 E6, 05, 05]
-17072; [7C 46 E8, 05, 05]
-17073; [7C 46 EA, 05, 05]
-17074; [7C 46 EC, 05, 05]
-17075; [7C 46 EE, 05, 05]
-17076; [7C 46 F0, 05, 05]
-17077; [7C 46 F2, 05, 05]
-17078; [7C 46 F4, 05, 05]
-17079; [7C 46 F6, 05, 05]
-1707A; [7C 46 F8, 05, 05]
-1707B; [7C 46 FA, 05, 05]
-1707C; [7C 46 FC, 05, 05]
-1707D; [7C 46 FE, 05, 05]
-1707E; [7C 47 02, 05, 05]
-1707F; [7C 47 04, 05, 05]
-17080; [7C 47 06, 05, 05]
-17081; [7C 47 08, 05, 05]
-17082; [7C 47 0A, 05, 05]
-17083; [7C 47 0C, 05, 05]
-17084; [7C 47 0E, 05, 05]
-17085; [7C 47 10, 05, 05]
-17086; [7C 47 12, 05, 05]
-17087; [7C 47 14, 05, 05]
-17088; [7C 47 16, 05, 05]
-17089; [7C 47 18, 05, 05]
-1708A; [7C 47 1A, 05, 05]
-1708B; [7C 47 1C, 05, 05]
-1708C; [7C 47 1E, 05, 05]
-1708D; [7C 47 20, 05, 05]
-1708E; [7C 47 22, 05, 05]
-1708F; [7C 47 24, 05, 05]
-17090; [7C 47 26, 05, 05]
-17091; [7C 47 28, 05, 05]
-17092; [7C 47 2A, 05, 05]
-17093; [7C 47 2C, 05, 05]
-17094; [7C 47 2E, 05, 05]
-17095; [7C 47 30, 05, 05]
-17096; [7C 47 32, 05, 05]
-17097; [7C 47 34, 05, 05]
-17098; [7C 47 36, 05, 05]
-17099; [7C 47 38, 05, 05]
-1709A; [7C 47 3A, 05, 05]
-1709B; [7C 47 3C, 05, 05]
-1709C; [7C 47 3E, 05, 05]
-1709D; [7C 47 40, 05, 05]
-1709E; [7C 47 42, 05, 05]
-1709F; [7C 47 44, 05, 05]
-170A0; [7C 47 46, 05, 05]
-170A1; [7C 47 48, 05, 05]
-170A2; [7C 47 4A, 05, 05]
-170A3; [7C 47 4C, 05, 05]
-170A4; [7C 47 4E, 05, 05]
-170A5; [7C 47 50, 05, 05]
-170A6; [7C 47 52, 05, 05]
-170A7; [7C 47 54, 05, 05]
-170A8; [7C 47 56, 05, 05]
-170A9; [7C 47 58, 05, 05]
-170AA; [7C 47 5A, 05, 05]
-170AB; [7C 47 5C, 05, 05]
-170AC; [7C 47 5E, 05, 05]
-170AD; [7C 47 60, 05, 05]
-170AE; [7C 47 62, 05, 05]
-170AF; [7C 47 64, 05, 05]
-170B0; [7C 47 66, 05, 05]
-170B1; [7C 47 68, 05, 05]
-170B2; [7C 47 6A, 05, 05]
-170B3; [7C 47 6C, 05, 05]
-170B4; [7C 47 6E, 05, 05]
-170B5; [7C 47 70, 05, 05]
-170B6; [7C 47 72, 05, 05]
-170B7; [7C 47 74, 05, 05]
-170B8; [7C 47 76, 05, 05]
-170B9; [7C 47 78, 05, 05]
-170BA; [7C 47 7A, 05, 05]
-170BB; [7C 47 7C, 05, 05]
-170BC; [7C 47 7E, 05, 05]
-170BD; [7C 47 80, 05, 05]
-170BE; [7C 47 82, 05, 05]
-170BF; [7C 47 84, 05, 05]
-170C0; [7C 47 86, 05, 05]
-170C1; [7C 47 88, 05, 05]
-170C2; [7C 47 8A, 05, 05]
-170C3; [7C 47 8C, 05, 05]
-170C4; [7C 47 8E, 05, 05]
-170C5; [7C 47 90, 05, 05]
-170C6; [7C 47 92, 05, 05]
-170C7; [7C 47 94, 05, 05]
-170C8; [7C 47 96, 05, 05]
-170C9; [7C 47 98, 05, 05]
-170CA; [7C 47 9A, 05, 05]
-170CB; [7C 47 9C, 05, 05]
-170CC; [7C 47 9E, 05, 05]
-170CD; [7C 47 A0, 05, 05]
-170CE; [7C 47 A2, 05, 05]
-170CF; [7C 47 A4, 05, 05]
-170D0; [7C 47 A6, 05, 05]
-170D1; [7C 47 A8, 05, 05]
-170D2; [7C 47 AA, 05, 05]
-170D3; [7C 47 AC, 05, 05]
-170D4; [7C 47 AE, 05, 05]
-170D5; [7C 47 B0, 05, 05]
-170D6; [7C 47 B2, 05, 05]
-170D7; [7C 47 B4, 05, 05]
-170D8; [7C 47 B6, 05, 05]
-170D9; [7C 47 B8, 05, 05]
-170DA; [7C 47 BA, 05, 05]
-170DB; [7C 47 BC, 05, 05]
-170DC; [7C 47 BE, 05, 05]
-170DD; [7C 47 C0, 05, 05]
-170DE; [7C 47 C2, 05, 05]
-170DF; [7C 47 C4, 05, 05]
-170E0; [7C 47 C6, 05, 05]
-170E1; [7C 47 C8, 05, 05]
-170E2; [7C 47 CA, 05, 05]
-170E3; [7C 47 CC, 05, 05]
-170E4; [7C 47 CE, 05, 05]
-170E5; [7C 47 D0, 05, 05]
-170E6; [7C 47 D2, 05, 05]
-170E7; [7C 47 D4, 05, 05]
-170E8; [7C 47 D6, 05, 05]
-170E9; [7C 47 D8, 05, 05]
-170EA; [7C 47 DA, 05, 05]
-170EB; [7C 47 DC, 05, 05]
-170EC; [7C 47 DE, 05, 05]
-170ED; [7C 47 E0, 05, 05]
-170EE; [7C 47 E2, 05, 05]
-170EF; [7C 47 E4, 05, 05]
-170F0; [7C 47 E6, 05, 05]
-170F1; [7C 47 E8, 05, 05]
-170F2; [7C 47 EA, 05, 05]
-170F3; [7C 47 EC, 05, 05]
-170F4; [7C 47 EE, 05, 05]
-170F5; [7C 47 F0, 05, 05]
-170F6; [7C 47 F2, 05, 05]
-170F7; [7C 47 F4, 05, 05]
-170F8; [7C 47 F6, 05, 05]
-170F9; [7C 47 F8, 05, 05]
-170FA; [7C 47 FA, 05, 05]
-170FB; [7C 47 FC, 05, 05]
-170FC; [7C 47 FE, 05, 05]
-170FD; [7C 48 02, 05, 05]
-170FE; [7C 48 04, 05, 05]
-170FF; [7C 48 06, 05, 05]
-17100; [7C 48 08, 05, 05]
-17101; [7C 48 0A, 05, 05]
-17102; [7C 48 0C, 05, 05]
-17103; [7C 48 0E, 05, 05]
-17104; [7C 48 10, 05, 05]
-17105; [7C 48 12, 05, 05]
-17106; [7C 48 14, 05, 05]
-17107; [7C 48 16, 05, 05]
-17108; [7C 48 18, 05, 05]
-17109; [7C 48 1A, 05, 05]
-1710A; [7C 48 1C, 05, 05]
-1710B; [7C 48 1E, 05, 05]
-1710C; [7C 48 20, 05, 05]
-1710D; [7C 48 22, 05, 05]
-1710E; [7C 48 24, 05, 05]
-1710F; [7C 48 26, 05, 05]
-17110; [7C 48 28, 05, 05]
-17111; [7C 48 2A, 05, 05]
-17112; [7C 48 2C, 05, 05]
-17113; [7C 48 2E, 05, 05]
-17114; [7C 48 30, 05, 05]
-17115; [7C 48 32, 05, 05]
-17116; [7C 48 34, 05, 05]
-17117; [7C 48 36, 05, 05]
-17118; [7C 48 38, 05, 05]
-17119; [7C 48 3A, 05, 05]
-1711A; [7C 48 3C, 05, 05]
-1711B; [7C 48 3E, 05, 05]
-1711C; [7C 48 40, 05, 05]
-1711D; [7C 48 42, 05, 05]
-1711E; [7C 48 44, 05, 05]
-1711F; [7C 48 46, 05, 05]
-17120; [7C 48 48, 05, 05]
-17121; [7C 48 4A, 05, 05]
-17122; [7C 48 4C, 05, 05]
-17123; [7C 48 4E, 05, 05]
-17124; [7C 48 50, 05, 05]
-17125; [7C 48 52, 05, 05]
-17126; [7C 48 54, 05, 05]
-17127; [7C 48 56, 05, 05]
-17128; [7C 48 58, 05, 05]
-17129; [7C 48 5A, 05, 05]
-1712A; [7C 48 5C, 05, 05]
-1712B; [7C 48 5E, 05, 05]
-1712C; [7C 48 60, 05, 05]
-1712D; [7C 48 62, 05, 05]
-1712E; [7C 48 64, 05, 05]
-1712F; [7C 48 66, 05, 05]
-17130; [7C 48 68, 05, 05]
-17131; [7C 48 6A, 05, 05]
-17132; [7C 48 6C, 05, 05]
-17133; [7C 48 6E, 05, 05]
-17134; [7C 48 70, 05, 05]
-17135; [7C 48 72, 05, 05]
-17136; [7C 48 74, 05, 05]
-17137; [7C 48 76, 05, 05]
-17138; [7C 48 78, 05, 05]
-17139; [7C 48 7A, 05, 05]
-1713A; [7C 48 7C, 05, 05]
-1713B; [7C 48 7E, 05, 05]
-1713C; [7C 48 80, 05, 05]
-1713D; [7C 48 82, 05, 05]
-1713E; [7C 48 84, 05, 05]
-1713F; [7C 48 86, 05, 05]
-17140; [7C 48 88, 05, 05]
-17141; [7C 48 8A, 05, 05]
-17142; [7C 48 8C, 05, 05]
-17143; [7C 48 8E, 05, 05]
-17144; [7C 48 90, 05, 05]
-17145; [7C 48 92, 05, 05]
-17146; [7C 48 94, 05, 05]
-17147; [7C 48 96, 05, 05]
-17148; [7C 48 98, 05, 05]
-17149; [7C 48 9A, 05, 05]
-1714A; [7C 48 9C, 05, 05]
-1714B; [7C 48 9E, 05, 05]
-1714C; [7C 48 A0, 05, 05]
-1714D; [7C 48 A2, 05, 05]
-1714E; [7C 48 A4, 05, 05]
-1714F; [7C 48 A6, 05, 05]
-17150; [7C 48 A8, 05, 05]
-17151; [7C 48 AA, 05, 05]
-17152; [7C 48 AC, 05, 05]
-17153; [7C 48 AE, 05, 05]
-17154; [7C 48 B0, 05, 05]
-17155; [7C 48 B2, 05, 05]
-17156; [7C 48 B4, 05, 05]
-17157; [7C 48 B6, 05, 05]
-17158; [7C 48 B8, 05, 05]
-17159; [7C 48 BA, 05, 05]
-1715A; [7C 48 BC, 05, 05]
-1715B; [7C 48 BE, 05, 05]
-1715C; [7C 48 C0, 05, 05]
-1715D; [7C 48 C2, 05, 05]
-1715E; [7C 48 C4, 05, 05]
-1715F; [7C 48 C6, 05, 05]
-17160; [7C 48 C8, 05, 05]
-17161; [7C 48 CA, 05, 05]
-17162; [7C 48 CC, 05, 05]
-17163; [7C 48 CE, 05, 05]
-17164; [7C 48 D0, 05, 05]
-17165; [7C 48 D2, 05, 05]
-17166; [7C 48 D4, 05, 05]
-17167; [7C 48 D6, 05, 05]
-17168; [7C 48 D8, 05, 05]
-17169; [7C 48 DA, 05, 05]
-1716A; [7C 48 DC, 05, 05]
-1716B; [7C 48 DE, 05, 05]
-1716C; [7C 48 E0, 05, 05]
-1716D; [7C 48 E2, 05, 05]
-1716E; [7C 48 E4, 05, 05]
-1716F; [7C 48 E6, 05, 05]
-17170; [7C 48 E8, 05, 05]
-17171; [7C 48 EA, 05, 05]
-17172; [7C 48 EC, 05, 05]
-17173; [7C 48 EE, 05, 05]
-17174; [7C 48 F0, 05, 05]
-17175; [7C 48 F2, 05, 05]
-17176; [7C 48 F4, 05, 05]
-17177; [7C 48 F6, 05, 05]
-17178; [7C 48 F8, 05, 05]
-17179; [7C 48 FA, 05, 05]
-1717A; [7C 48 FC, 05, 05]
-1717B; [7C 48 FE, 05, 05]
-1717C; [7C 49 02, 05, 05]
-1717D; [7C 49 04, 05, 05]
-1717E; [7C 49 06, 05, 05]
-1717F; [7C 49 08, 05, 05]
-17180; [7C 49 0A, 05, 05]
-17181; [7C 49 0C, 05, 05]
-17182; [7C 49 0E, 05, 05]
-17183; [7C 49 10, 05, 05]
-17184; [7C 49 12, 05, 05]
-17185; [7C 49 14, 05, 05]
-17186; [7C 49 16, 05, 05]
-17187; [7C 49 18, 05, 05]
-17188; [7C 49 1A, 05, 05]
-17189; [7C 49 1C, 05, 05]
-1718A; [7C 49 1E, 05, 05]
-1718B; [7C 49 20, 05, 05]
-1718C; [7C 49 22, 05, 05]
-1718D; [7C 49 24, 05, 05]
-1718E; [7C 49 26, 05, 05]
-1718F; [7C 49 28, 05, 05]
-17190; [7C 49 2A, 05, 05]
-17191; [7C 49 2C, 05, 05]
-17192; [7C 49 2E, 05, 05]
-17193; [7C 49 30, 05, 05]
-17194; [7C 49 32, 05, 05]
-17195; [7C 49 34, 05, 05]
-17196; [7C 49 36, 05, 05]
-17197; [7C 49 38, 05, 05]
-17198; [7C 49 3A, 05, 05]
-17199; [7C 49 3C, 05, 05]
-1719A; [7C 49 3E, 05, 05]
-1719B; [7C 49 40, 05, 05]
-1719C; [7C 49 42, 05, 05]
-1719D; [7C 49 44, 05, 05]
-1719E; [7C 49 46, 05, 05]
-1719F; [7C 49 48, 05, 05]
-171A0; [7C 49 4A, 05, 05]
-171A1; [7C 49 4C, 05, 05]
-171A2; [7C 49 4E, 05, 05]
-171A3; [7C 49 50, 05, 05]
-171A4; [7C 49 52, 05, 05]
-171A5; [7C 49 54, 05, 05]
-171A6; [7C 49 56, 05, 05]
-171A7; [7C 49 58, 05, 05]
-171A8; [7C 49 5A, 05, 05]
-171A9; [7C 49 5C, 05, 05]
-171AA; [7C 49 5E, 05, 05]
-171AB; [7C 49 60, 05, 05]
-171AC; [7C 49 62, 05, 05]
-171AD; [7C 49 64, 05, 05]
-171AE; [7C 49 66, 05, 05]
-171AF; [7C 49 68, 05, 05]
-171B0; [7C 49 6A, 05, 05]
-171B1; [7C 49 6C, 05, 05]
-171B2; [7C 49 6E, 05, 05]
-171B3; [7C 49 70, 05, 05]
-171B4; [7C 49 72, 05, 05]
-171B5; [7C 49 74, 05, 05]
-171B6; [7C 49 76, 05, 05]
-171B7; [7C 49 78, 05, 05]
-171B8; [7C 49 7A, 05, 05]
-171B9; [7C 49 7C, 05, 05]
-171BA; [7C 49 7E, 05, 05]
-171BB; [7C 49 80, 05, 05]
-171BC; [7C 49 82, 05, 05]
-171BD; [7C 49 84, 05, 05]
-171BE; [7C 49 86, 05, 05]
-171BF; [7C 49 88, 05, 05]
-171C0; [7C 49 8A, 05, 05]
-171C1; [7C 49 8C, 05, 05]
-171C2; [7C 49 8E, 05, 05]
-171C3; [7C 49 90, 05, 05]
-171C4; [7C 49 92, 05, 05]
-171C5; [7C 49 94, 05, 05]
-171C6; [7C 49 96, 05, 05]
-171C7; [7C 49 98, 05, 05]
-171C8; [7C 49 9A, 05, 05]
-171C9; [7C 49 9C, 05, 05]
-171CA; [7C 49 9E, 05, 05]
-171CB; [7C 49 A0, 05, 05]
-171CC; [7C 49 A2, 05, 05]
-171CD; [7C 49 A4, 05, 05]
-171CE; [7C 49 A6, 05, 05]
-171CF; [7C 49 A8, 05, 05]
-171D0; [7C 49 AA, 05, 05]
-171D1; [7C 49 AC, 05, 05]
-171D2; [7C 49 AE, 05, 05]
-171D3; [7C 49 B0, 05, 05]
-171D4; [7C 49 B2, 05, 05]
-171D5; [7C 49 B4, 05, 05]
-171D6; [7C 49 B6, 05, 05]
-171D7; [7C 49 B8, 05, 05]
-171D8; [7C 49 BA, 05, 05]
-171D9; [7C 49 BC, 05, 05]
-171DA; [7C 49 BE, 05, 05]
-171DB; [7C 49 C0, 05, 05]
-171DC; [7C 49 C2, 05, 05]
-171DD; [7C 49 C4, 05, 05]
-171DE; [7C 49 C6, 05, 05]
-171DF; [7C 49 C8, 05, 05]
-171E0; [7C 49 CA, 05, 05]
-171E1; [7C 49 CC, 05, 05]
-171E2; [7C 49 CE, 05, 05]
-171E3; [7C 49 D0, 05, 05]
-171E4; [7C 49 D2, 05, 05]
-171E5; [7C 49 D4, 05, 05]
-171E6; [7C 49 D6, 05, 05]
-171E7; [7C 49 D8, 05, 05]
-171E8; [7C 49 DA, 05, 05]
-171E9; [7C 49 DC, 05, 05]
-171EA; [7C 49 DE, 05, 05]
-171EB; [7C 49 E0, 05, 05]
-171EC; [7C 49 E2, 05, 05]
-171ED; [7C 49 E4, 05, 05]
-171EE; [7C 49 E6, 05, 05]
-171EF; [7C 49 E8, 05, 05]
-171F0; [7C 49 EA, 05, 05]
-171F1; [7C 49 EC, 05, 05]
-171F2; [7C 49 EE, 05, 05]
-171F3; [7C 49 F0, 05, 05]
-171F4; [7C 49 F2, 05, 05]
-171F5; [7C 49 F4, 05, 05]
-171F6; [7C 49 F6, 05, 05]
-171F7; [7C 49 F8, 05, 05]
-171F8; [7C 49 FA, 05, 05]
-171F9; [7C 49 FC, 05, 05]
-171FA; [7C 49 FE, 05, 05]
-171FB; [7C 4A 02, 05, 05]
-171FC; [7C 4A 04, 05, 05]
-171FD; [7C 4A 06, 05, 05]
-171FE; [7C 4A 08, 05, 05]
-171FF; [7C 4A 0A, 05, 05]
-17200; [7C 4A 0C, 05, 05]
-17201; [7C 4A 0E, 05, 05]
-17202; [7C 4A 10, 05, 05]
-17203; [7C 4A 12, 05, 05]
-17204; [7C 4A 14, 05, 05]
-17205; [7C 4A 16, 05, 05]
-17206; [7C 4A 18, 05, 05]
-17207; [7C 4A 1A, 05, 05]
-17208; [7C 4A 1C, 05, 05]
-17209; [7C 4A 1E, 05, 05]
-1720A; [7C 4A 20, 05, 05]
-1720B; [7C 4A 22, 05, 05]
-1720C; [7C 4A 24, 05, 05]
-1720D; [7C 4A 26, 05, 05]
-1720E; [7C 4A 28, 05, 05]
-1720F; [7C 4A 2A, 05, 05]
-17210; [7C 4A 2C, 05, 05]
-17211; [7C 4A 2E, 05, 05]
-17212; [7C 4A 30, 05, 05]
-17213; [7C 4A 32, 05, 05]
-17214; [7C 4A 34, 05, 05]
-17215; [7C 4A 36, 05, 05]
-17216; [7C 4A 38, 05, 05]
-17217; [7C 4A 3A, 05, 05]
-17218; [7C 4A 3C, 05, 05]
-17219; [7C 4A 3E, 05, 05]
-1721A; [7C 4A 40, 05, 05]
-1721B; [7C 4A 42, 05, 05]
-1721C; [7C 4A 44, 05, 05]
-1721D; [7C 4A 46, 05, 05]
-1721E; [7C 4A 48, 05, 05]
-1721F; [7C 4A 4A, 05, 05]
-17220; [7C 4A 4C, 05, 05]
-17221; [7C 4A 4E, 05, 05]
-17222; [7C 4A 50, 05, 05]
-17223; [7C 4A 52, 05, 05]
-17224; [7C 4A 54, 05, 05]
-17225; [7C 4A 56, 05, 05]
-17226; [7C 4A 58, 05, 05]
-17227; [7C 4A 5A, 05, 05]
-17228; [7C 4A 5C, 05, 05]
-17229; [7C 4A 5E, 05, 05]
-1722A; [7C 4A 60, 05, 05]
-1722B; [7C 4A 62, 05, 05]
-1722C; [7C 4A 64, 05, 05]
-1722D; [7C 4A 66, 05, 05]
-1722E; [7C 4A 68, 05, 05]
-1722F; [7C 4A 6A, 05, 05]
-17230; [7C 4A 6C, 05, 05]
-17231; [7C 4A 6E, 05, 05]
-17232; [7C 4A 70, 05, 05]
-17233; [7C 4A 72, 05, 05]
-17234; [7C 4A 74, 05, 05]
-17235; [7C 4A 76, 05, 05]
-17236; [7C 4A 78, 05, 05]
-17237; [7C 4A 7A, 05, 05]
-17238; [7C 4A 7C, 05, 05]
-17239; [7C 4A 7E, 05, 05]
-1723A; [7C 4A 80, 05, 05]
-1723B; [7C 4A 82, 05, 05]
-1723C; [7C 4A 84, 05, 05]
-1723D; [7C 4A 86, 05, 05]
-1723E; [7C 4A 88, 05, 05]
-1723F; [7C 4A 8A, 05, 05]
-17240; [7C 4A 8C, 05, 05]
-17241; [7C 4A 8E, 05, 05]
-17242; [7C 4A 90, 05, 05]
-17243; [7C 4A 92, 05, 05]
-17244; [7C 4A 94, 05, 05]
-17245; [7C 4A 96, 05, 05]
-17246; [7C 4A 98, 05, 05]
-17247; [7C 4A 9A, 05, 05]
-17248; [7C 4A 9C, 05, 05]
-17249; [7C 4A 9E, 05, 05]
-1724A; [7C 4A A0, 05, 05]
-1724B; [7C 4A A2, 05, 05]
-1724C; [7C 4A A4, 05, 05]
-1724D; [7C 4A A6, 05, 05]
-1724E; [7C 4A A8, 05, 05]
-1724F; [7C 4A AA, 05, 05]
-17250; [7C 4A AC, 05, 05]
-17251; [7C 4A AE, 05, 05]
-17252; [7C 4A B0, 05, 05]
-17253; [7C 4A B2, 05, 05]
-17254; [7C 4A B4, 05, 05]
-17255; [7C 4A B6, 05, 05]
-17256; [7C 4A B8, 05, 05]
-17257; [7C 4A BA, 05, 05]
-17258; [7C 4A BC, 05, 05]
-17259; [7C 4A BE, 05, 05]
-1725A; [7C 4A C0, 05, 05]
-1725B; [7C 4A C2, 05, 05]
-1725C; [7C 4A C4, 05, 05]
-1725D; [7C 4A C6, 05, 05]
-1725E; [7C 4A C8, 05, 05]
-1725F; [7C 4A CA, 05, 05]
-17260; [7C 4A CC, 05, 05]
-17261; [7C 4A CE, 05, 05]
-17262; [7C 4A D0, 05, 05]
-17263; [7C 4A D2, 05, 05]
-17264; [7C 4A D4, 05, 05]
-17265; [7C 4A D6, 05, 05]
-17266; [7C 4A D8, 05, 05]
-17267; [7C 4A DA, 05, 05]
-17268; [7C 4A DC, 05, 05]
-17269; [7C 4A DE, 05, 05]
-1726A; [7C 4A E0, 05, 05]
-1726B; [7C 4A E2, 05, 05]
-1726C; [7C 4A E4, 05, 05]
-1726D; [7C 4A E6, 05, 05]
-1726E; [7C 4A E8, 05, 05]
-1726F; [7C 4A EA, 05, 05]
-17270; [7C 4A EC, 05, 05]
-17271; [7C 4A EE, 05, 05]
-17272; [7C 4A F0, 05, 05]
-17273; [7C 4A F2, 05, 05]
-17274; [7C 4A F4, 05, 05]
-17275; [7C 4A F6, 05, 05]
-17276; [7C 4A F8, 05, 05]
-17277; [7C 4A FA, 05, 05]
-17278; [7C 4A FC, 05, 05]
-17279; [7C 4A FE, 05, 05]
-1727A; [7C 4B 02, 05, 05]
-1727B; [7C 4B 04, 05, 05]
-1727C; [7C 4B 06, 05, 05]
-1727D; [7C 4B 08, 05, 05]
-1727E; [7C 4B 0A, 05, 05]
-1727F; [7C 4B 0C, 05, 05]
-17280; [7C 4B 0E, 05, 05]
-17281; [7C 4B 10, 05, 05]
-17282; [7C 4B 12, 05, 05]
-17283; [7C 4B 14, 05, 05]
-17284; [7C 4B 16, 05, 05]
-17285; [7C 4B 18, 05, 05]
-17286; [7C 4B 1A, 05, 05]
-17287; [7C 4B 1C, 05, 05]
-17288; [7C 4B 1E, 05, 05]
-17289; [7C 4B 20, 05, 05]
-1728A; [7C 4B 22, 05, 05]
-1728B; [7C 4B 24, 05, 05]
-1728C; [7C 4B 26, 05, 05]
-1728D; [7C 4B 28, 05, 05]
-1728E; [7C 4B 2A, 05, 05]
-1728F; [7C 4B 2C, 05, 05]
-17290; [7C 4B 2E, 05, 05]
-17291; [7C 4B 30, 05, 05]
-17292; [7C 4B 32, 05, 05]
-17293; [7C 4B 34, 05, 05]
-17294; [7C 4B 36, 05, 05]
-17295; [7C 4B 38, 05, 05]
-17296; [7C 4B 3A, 05, 05]
-17297; [7C 4B 3C, 05, 05]
-17298; [7C 4B 3E, 05, 05]
-17299; [7C 4B 40, 05, 05]
-1729A; [7C 4B 42, 05, 05]
-1729B; [7C 4B 44, 05, 05]
-1729C; [7C 4B 46, 05, 05]
-1729D; [7C 4B 48, 05, 05]
-1729E; [7C 4B 4A, 05, 05]
-1729F; [7C 4B 4C, 05, 05]
-172A0; [7C 4B 4E, 05, 05]
-172A1; [7C 4B 50, 05, 05]
-172A2; [7C 4B 52, 05, 05]
-172A3; [7C 4B 54, 05, 05]
-172A4; [7C 4B 56, 05, 05]
-172A5; [7C 4B 58, 05, 05]
-172A6; [7C 4B 5A, 05, 05]
-172A7; [7C 4B 5C, 05, 05]
-172A8; [7C 4B 5E, 05, 05]
-172A9; [7C 4B 60, 05, 05]
-172AA; [7C 4B 62, 05, 05]
-172AB; [7C 4B 64, 05, 05]
-172AC; [7C 4B 66, 05, 05]
-172AD; [7C 4B 68, 05, 05]
-172AE; [7C 4B 6A, 05, 05]
-172AF; [7C 4B 6C, 05, 05]
-172B0; [7C 4B 6E, 05, 05]
-172B1; [7C 4B 70, 05, 05]
-172B2; [7C 4B 72, 05, 05]
-172B3; [7C 4B 74, 05, 05]
-172B4; [7C 4B 76, 05, 05]
-172B5; [7C 4B 78, 05, 05]
-172B6; [7C 4B 7A, 05, 05]
-172B7; [7C 4B 7C, 05, 05]
-172B8; [7C 4B 7E, 05, 05]
-172B9; [7C 4B 80, 05, 05]
-172BA; [7C 4B 82, 05, 05]
-172BB; [7C 4B 84, 05, 05]
-172BC; [7C 4B 86, 05, 05]
-172BD; [7C 4B 88, 05, 05]
-172BE; [7C 4B 8A, 05, 05]
-172BF; [7C 4B 8C, 05, 05]
-172C0; [7C 4B 8E, 05, 05]
-172C1; [7C 4B 90, 05, 05]
-172C2; [7C 4B 92, 05, 05]
-172C3; [7C 4B 94, 05, 05]
-172C4; [7C 4B 96, 05, 05]
-172C5; [7C 4B 98, 05, 05]
-172C6; [7C 4B 9A, 05, 05]
-172C7; [7C 4B 9C, 05, 05]
-172C8; [7C 4B 9E, 05, 05]
-172C9; [7C 4B A0, 05, 05]
-172CA; [7C 4B A2, 05, 05]
-172CB; [7C 4B A4, 05, 05]
-172CC; [7C 4B A6, 05, 05]
-172CD; [7C 4B A8, 05, 05]
-172CE; [7C 4B AA, 05, 05]
-172CF; [7C 4B AC, 05, 05]
-172D0; [7C 4B AE, 05, 05]
-172D1; [7C 4B B0, 05, 05]
-172D2; [7C 4B B2, 05, 05]
-172D3; [7C 4B B4, 05, 05]
-172D4; [7C 4B B6, 05, 05]
-172D5; [7C 4B B8, 05, 05]
-172D6; [7C 4B BA, 05, 05]
-172D7; [7C 4B BC, 05, 05]
-172D8; [7C 4B BE, 05, 05]
-172D9; [7C 4B C0, 05, 05]
-172DA; [7C 4B C2, 05, 05]
-172DB; [7C 4B C4, 05, 05]
-172DC; [7C 4B C6, 05, 05]
-172DD; [7C 4B C8, 05, 05]
-172DE; [7C 4B CA, 05, 05]
-172DF; [7C 4B CC, 05, 05]
-172E0; [7C 4B CE, 05, 05]
-172E1; [7C 4B D0, 05, 05]
-172E2; [7C 4B D2, 05, 05]
-172E3; [7C 4B D4, 05, 05]
-172E4; [7C 4B D6, 05, 05]
-172E5; [7C 4B D8, 05, 05]
-172E6; [7C 4B DA, 05, 05]
-172E7; [7C 4B DC, 05, 05]
-172E8; [7C 4B DE, 05, 05]
-172E9; [7C 4B E0, 05, 05]
-172EA; [7C 4B E2, 05, 05]
-172EB; [7C 4B E4, 05, 05]
-172EC; [7C 4B E6, 05, 05]
-172ED; [7C 4B E8, 05, 05]
-172EE; [7C 4B EA, 05, 05]
-172EF; [7C 4B EC, 05, 05]
-172F0; [7C 4B EE, 05, 05]
-172F1; [7C 4B F0, 05, 05]
-172F2; [7C 4B F2, 05, 05]
-172F3; [7C 4B F4, 05, 05]
-172F4; [7C 4B F6, 05, 05]
-172F5; [7C 4B F8, 05, 05]
-172F6; [7C 4B FA, 05, 05]
-172F7; [7C 4B FC, 05, 05]
-172F8; [7C 4B FE, 05, 05]
-172F9; [7C 4C 02, 05, 05]
-172FA; [7C 4C 04, 05, 05]
-172FB; [7C 4C 06, 05, 05]
-172FC; [7C 4C 08, 05, 05]
-172FD; [7C 4C 0A, 05, 05]
-172FE; [7C 4C 0C, 05, 05]
-172FF; [7C 4C 0E, 05, 05]
-17300; [7C 4C 10, 05, 05]
-17301; [7C 4C 12, 05, 05]
-17302; [7C 4C 14, 05, 05]
-17303; [7C 4C 16, 05, 05]
-17304; [7C 4C 18, 05, 05]
-17305; [7C 4C 1A, 05, 05]
-17306; [7C 4C 1C, 05, 05]
-17307; [7C 4C 1E, 05, 05]
-17308; [7C 4C 20, 05, 05]
-17309; [7C 4C 22, 05, 05]
-1730A; [7C 4C 24, 05, 05]
-1730B; [7C 4C 26, 05, 05]
-1730C; [7C 4C 28, 05, 05]
-1730D; [7C 4C 2A, 05, 05]
-1730E; [7C 4C 2C, 05, 05]
-1730F; [7C 4C 2E, 05, 05]
-17310; [7C 4C 30, 05, 05]
-17311; [7C 4C 32, 05, 05]
-17312; [7C 4C 34, 05, 05]
-17313; [7C 4C 36, 05, 05]
-17314; [7C 4C 38, 05, 05]
-17315; [7C 4C 3A, 05, 05]
-17316; [7C 4C 3C, 05, 05]
-17317; [7C 4C 3E, 05, 05]
-17318; [7C 4C 40, 05, 05]
-17319; [7C 4C 42, 05, 05]
-1731A; [7C 4C 44, 05, 05]
-1731B; [7C 4C 46, 05, 05]
-1731C; [7C 4C 48, 05, 05]
-1731D; [7C 4C 4A, 05, 05]
-1731E; [7C 4C 4C, 05, 05]
-1731F; [7C 4C 4E, 05, 05]
-17320; [7C 4C 50, 05, 05]
-17321; [7C 4C 52, 05, 05]
-17322; [7C 4C 54, 05, 05]
-17323; [7C 4C 56, 05, 05]
-17324; [7C 4C 58, 05, 05]
-17325; [7C 4C 5A, 05, 05]
-17326; [7C 4C 5C, 05, 05]
-17327; [7C 4C 5E, 05, 05]
-17328; [7C 4C 60, 05, 05]
-17329; [7C 4C 62, 05, 05]
-1732A; [7C 4C 64, 05, 05]
-1732B; [7C 4C 66, 05, 05]
-1732C; [7C 4C 68, 05, 05]
-1732D; [7C 4C 6A, 05, 05]
-1732E; [7C 4C 6C, 05, 05]
-1732F; [7C 4C 6E, 05, 05]
-17330; [7C 4C 70, 05, 05]
-17331; [7C 4C 72, 05, 05]
-17332; [7C 4C 74, 05, 05]
-17333; [7C 4C 76, 05, 05]
-17334; [7C 4C 78, 05, 05]
-17335; [7C 4C 7A, 05, 05]
-17336; [7C 4C 7C, 05, 05]
-17337; [7C 4C 7E, 05, 05]
-17338; [7C 4C 80, 05, 05]
-17339; [7C 4C 82, 05, 05]
-1733A; [7C 4C 84, 05, 05]
-1733B; [7C 4C 86, 05, 05]
-1733C; [7C 4C 88, 05, 05]
-1733D; [7C 4C 8A, 05, 05]
-1733E; [7C 4C 8C, 05, 05]
-1733F; [7C 4C 8E, 05, 05]
-17340; [7C 4C 90, 05, 05]
-17341; [7C 4C 92, 05, 05]
-17342; [7C 4C 94, 05, 05]
-17343; [7C 4C 96, 05, 05]
-17344; [7C 4C 98, 05, 05]
-17345; [7C 4C 9A, 05, 05]
-17346; [7C 4C 9C, 05, 05]
-17347; [7C 4C 9E, 05, 05]
-17348; [7C 4C A0, 05, 05]
-17349; [7C 4C A2, 05, 05]
-1734A; [7C 4C A4, 05, 05]
-1734B; [7C 4C A6, 05, 05]
-1734C; [7C 4C A8, 05, 05]
-1734D; [7C 4C AA, 05, 05]
-1734E; [7C 4C AC, 05, 05]
-1734F; [7C 4C AE, 05, 05]
-17350; [7C 4C B0, 05, 05]
-17351; [7C 4C B2, 05, 05]
-17352; [7C 4C B4, 05, 05]
-17353; [7C 4C B6, 05, 05]
-17354; [7C 4C B8, 05, 05]
-17355; [7C 4C BA, 05, 05]
-17356; [7C 4C BC, 05, 05]
-17357; [7C 4C BE, 05, 05]
-17358; [7C 4C C0, 05, 05]
-17359; [7C 4C C2, 05, 05]
-1735A; [7C 4C C4, 05, 05]
-1735B; [7C 4C C6, 05, 05]
-1735C; [7C 4C C8, 05, 05]
-1735D; [7C 4C CA, 05, 05]
-1735E; [7C 4C CC, 05, 05]
-1735F; [7C 4C CE, 05, 05]
-17360; [7C 4C D0, 05, 05]
-17361; [7C 4C D2, 05, 05]
-17362; [7C 4C D4, 05, 05]
-17363; [7C 4C D6, 05, 05]
-17364; [7C 4C D8, 05, 05]
-17365; [7C 4C DA, 05, 05]
-17366; [7C 4C DC, 05, 05]
-17367; [7C 4C DE, 05, 05]
-17368; [7C 4C E0, 05, 05]
-17369; [7C 4C E2, 05, 05]
-1736A; [7C 4C E4, 05, 05]
-1736B; [7C 4C E6, 05, 05]
-1736C; [7C 4C E8, 05, 05]
-1736D; [7C 4C EA, 05, 05]
-1736E; [7C 4C EC, 05, 05]
-1736F; [7C 4C EE, 05, 05]
-17370; [7C 4C F0, 05, 05]
-17371; [7C 4C F2, 05, 05]
-17372; [7C 4C F4, 05, 05]
-17373; [7C 4C F6, 05, 05]
-17374; [7C 4C F8, 05, 05]
-17375; [7C 4C FA, 05, 05]
-17376; [7C 4C FC, 05, 05]
-17377; [7C 4C FE, 05, 05]
-17378; [7C 4D 02, 05, 05]
-17379; [7C 4D 04, 05, 05]
-1737A; [7C 4D 06, 05, 05]
-1737B; [7C 4D 08, 05, 05]
-1737C; [7C 4D 0A, 05, 05]
-1737D; [7C 4D 0C, 05, 05]
-1737E; [7C 4D 0E, 05, 05]
-1737F; [7C 4D 10, 05, 05]
-17380; [7C 4D 12, 05, 05]
-17381; [7C 4D 14, 05, 05]
-17382; [7C 4D 16, 05, 05]
-17383; [7C 4D 18, 05, 05]
-17384; [7C 4D 1A, 05, 05]
-17385; [7C 4D 1C, 05, 05]
-17386; [7C 4D 1E, 05, 05]
-17387; [7C 4D 20, 05, 05]
-17388; [7C 4D 22, 05, 05]
-17389; [7C 4D 24, 05, 05]
-1738A; [7C 4D 26, 05, 05]
-1738B; [7C 4D 28, 05, 05]
-1738C; [7C 4D 2A, 05, 05]
-1738D; [7C 4D 2C, 05, 05]
-1738E; [7C 4D 2E, 05, 05]
-1738F; [7C 4D 30, 05, 05]
-17390; [7C 4D 32, 05, 05]
-17391; [7C 4D 34, 05, 05]
-17392; [7C 4D 36, 05, 05]
-17393; [7C 4D 38, 05, 05]
-17394; [7C 4D 3A, 05, 05]
-17395; [7C 4D 3C, 05, 05]
-17396; [7C 4D 3E, 05, 05]
-17397; [7C 4D 40, 05, 05]
-17398; [7C 4D 42, 05, 05]
-17399; [7C 4D 44, 05, 05]
-1739A; [7C 4D 46, 05, 05]
-1739B; [7C 4D 48, 05, 05]
-1739C; [7C 4D 4A, 05, 05]
-1739D; [7C 4D 4C, 05, 05]
-1739E; [7C 4D 4E, 05, 05]
-1739F; [7C 4D 50, 05, 05]
-173A0; [7C 4D 52, 05, 05]
-173A1; [7C 4D 54, 05, 05]
-173A2; [7C 4D 56, 05, 05]
-173A3; [7C 4D 58, 05, 05]
-173A4; [7C 4D 5A, 05, 05]
-173A5; [7C 4D 5C, 05, 05]
-173A6; [7C 4D 5E, 05, 05]
-173A7; [7C 4D 60, 05, 05]
-173A8; [7C 4D 62, 05, 05]
-173A9; [7C 4D 64, 05, 05]
-173AA; [7C 4D 66, 05, 05]
-173AB; [7C 4D 68, 05, 05]
-173AC; [7C 4D 6A, 05, 05]
-173AD; [7C 4D 6C, 05, 05]
-173AE; [7C 4D 6E, 05, 05]
-173AF; [7C 4D 70, 05, 05]
-173B0; [7C 4D 72, 05, 05]
-173B1; [7C 4D 74, 05, 05]
-173B2; [7C 4D 76, 05, 05]
-173B3; [7C 4D 78, 05, 05]
-173B4; [7C 4D 7A, 05, 05]
-173B5; [7C 4D 7C, 05, 05]
-173B6; [7C 4D 7E, 05, 05]
-173B7; [7C 4D 80, 05, 05]
-173B8; [7C 4D 82, 05, 05]
-173B9; [7C 4D 84, 05, 05]
-173BA; [7C 4D 86, 05, 05]
-173BB; [7C 4D 88, 05, 05]
-173BC; [7C 4D 8A, 05, 05]
-173BD; [7C 4D 8C, 05, 05]
-173BE; [7C 4D 8E, 05, 05]
-173BF; [7C 4D 90, 05, 05]
-173C0; [7C 4D 92, 05, 05]
-173C1; [7C 4D 94, 05, 05]
-173C2; [7C 4D 96, 05, 05]
-173C3; [7C 4D 98, 05, 05]
-173C4; [7C 4D 9A, 05, 05]
-173C5; [7C 4D 9C, 05, 05]
-173C6; [7C 4D 9E, 05, 05]
-173C7; [7C 4D A0, 05, 05]
-173C8; [7C 4D A2, 05, 05]
-173C9; [7C 4D A4, 05, 05]
-173CA; [7C 4D A6, 05, 05]
-173CB; [7C 4D A8, 05, 05]
-173CC; [7C 4D AA, 05, 05]
-173CD; [7C 4D AC, 05, 05]
-173CE; [7C 4D AE, 05, 05]
-173CF; [7C 4D B0, 05, 05]
-173D0; [7C 4D B2, 05, 05]
-173D1; [7C 4D B4, 05, 05]
-173D2; [7C 4D B6, 05, 05]
-173D3; [7C 4D B8, 05, 05]
-173D4; [7C 4D BA, 05, 05]
-173D5; [7C 4D BC, 05, 05]
-173D6; [7C 4D BE, 05, 05]
-173D7; [7C 4D C0, 05, 05]
-173D8; [7C 4D C2, 05, 05]
-173D9; [7C 4D C4, 05, 05]
-173DA; [7C 4D C6, 05, 05]
-173DB; [7C 4D C8, 05, 05]
-173DC; [7C 4D CA, 05, 05]
-173DD; [7C 4D CC, 05, 05]
-173DE; [7C 4D CE, 05, 05]
-173DF; [7C 4D D0, 05, 05]
-173E0; [7C 4D D2, 05, 05]
-173E1; [7C 4D D4, 05, 05]
-173E2; [7C 4D D6, 05, 05]
-173E3; [7C 4D D8, 05, 05]
-173E4; [7C 4D DA, 05, 05]
-173E5; [7C 4D DC, 05, 05]
-173E6; [7C 4D DE, 05, 05]
-173E7; [7C 4D E0, 05, 05]
-173E8; [7C 4D E2, 05, 05]
-173E9; [7C 4D E4, 05, 05]
-173EA; [7C 4D E6, 05, 05]
-173EB; [7C 4D E8, 05, 05]
-173EC; [7C 4D EA, 05, 05]
-173ED; [7C 4D EC, 05, 05]
-173EE; [7C 4D EE, 05, 05]
-173EF; [7C 4D F0, 05, 05]
-173F0; [7C 4D F2, 05, 05]
-173F1; [7C 4D F4, 05, 05]
-173F2; [7C 4D F6, 05, 05]
-173F3; [7C 4D F8, 05, 05]
-173F4; [7C 4D FA, 05, 05]
-173F5; [7C 4D FC, 05, 05]
-173F6; [7C 4D FE, 05, 05]
-173F7; [7C 4E 02, 05, 05]
-173F8; [7C 4E 04, 05, 05]
-173F9; [7C 4E 06, 05, 05]
-173FA; [7C 4E 08, 05, 05]
-173FB; [7C 4E 0A, 05, 05]
-173FC; [7C 4E 0C, 05, 05]
-173FD; [7C 4E 0E, 05, 05]
-173FE; [7C 4E 10, 05, 05]
-173FF; [7C 4E 12, 05, 05]
-17400; [7C 4E 14, 05, 05]
-17401; [7C 4E 16, 05, 05]
-17402; [7C 4E 18, 05, 05]
-17403; [7C 4E 1A, 05, 05]
-17404; [7C 4E 1C, 05, 05]
-17405; [7C 4E 1E, 05, 05]
-17406; [7C 4E 20, 05, 05]
-17407; [7C 4E 22, 05, 05]
-17408; [7C 4E 24, 05, 05]
-17409; [7C 4E 26, 05, 05]
-1740A; [7C 4E 28, 05, 05]
-1740B; [7C 4E 2A, 05, 05]
-1740C; [7C 4E 2C, 05, 05]
-1740D; [7C 4E 2E, 05, 05]
-1740E; [7C 4E 30, 05, 05]
-1740F; [7C 4E 32, 05, 05]
-17410; [7C 4E 34, 05, 05]
-17411; [7C 4E 36, 05, 05]
-17412; [7C 4E 38, 05, 05]
-17413; [7C 4E 3A, 05, 05]
-17414; [7C 4E 3C, 05, 05]
-17415; [7C 4E 3E, 05, 05]
-17416; [7C 4E 40, 05, 05]
-17417; [7C 4E 42, 05, 05]
-17418; [7C 4E 44, 05, 05]
-17419; [7C 4E 46, 05, 05]
-1741A; [7C 4E 48, 05, 05]
-1741B; [7C 4E 4A, 05, 05]
-1741C; [7C 4E 4C, 05, 05]
-1741D; [7C 4E 4E, 05, 05]
-1741E; [7C 4E 50, 05, 05]
-1741F; [7C 4E 52, 05, 05]
-17420; [7C 4E 54, 05, 05]
-17421; [7C 4E 56, 05, 05]
-17422; [7C 4E 58, 05, 05]
-17423; [7C 4E 5A, 05, 05]
-17424; [7C 4E 5C, 05, 05]
-17425; [7C 4E 5E, 05, 05]
-17426; [7C 4E 60, 05, 05]
-17427; [7C 4E 62, 05, 05]
-17428; [7C 4E 64, 05, 05]
-17429; [7C 4E 66, 05, 05]
-1742A; [7C 4E 68, 05, 05]
-1742B; [7C 4E 6A, 05, 05]
-1742C; [7C 4E 6C, 05, 05]
-1742D; [7C 4E 6E, 05, 05]
-1742E; [7C 4E 70, 05, 05]
-1742F; [7C 4E 72, 05, 05]
-17430; [7C 4E 74, 05, 05]
-17431; [7C 4E 76, 05, 05]
-17432; [7C 4E 78, 05, 05]
-17433; [7C 4E 7A, 05, 05]
-17434; [7C 4E 7C, 05, 05]
-17435; [7C 4E 7E, 05, 05]
-17436; [7C 4E 80, 05, 05]
-17437; [7C 4E 82, 05, 05]
-17438; [7C 4E 84, 05, 05]
-17439; [7C 4E 86, 05, 05]
-1743A; [7C 4E 88, 05, 05]
-1743B; [7C 4E 8A, 05, 05]
-1743C; [7C 4E 8C, 05, 05]
-1743D; [7C 4E 8E, 05, 05]
-1743E; [7C 4E 90, 05, 05]
-1743F; [7C 4E 92, 05, 05]
-17440; [7C 4E 94, 05, 05]
-17441; [7C 4E 96, 05, 05]
-17442; [7C 4E 98, 05, 05]
-17443; [7C 4E 9A, 05, 05]
-17444; [7C 4E 9C, 05, 05]
-17445; [7C 4E 9E, 05, 05]
-17446; [7C 4E A0, 05, 05]
-17447; [7C 4E A2, 05, 05]
-17448; [7C 4E A4, 05, 05]
-17449; [7C 4E A6, 05, 05]
-1744A; [7C 4E A8, 05, 05]
-1744B; [7C 4E AA, 05, 05]
-1744C; [7C 4E AC, 05, 05]
-1744D; [7C 4E AE, 05, 05]
-1744E; [7C 4E B0, 05, 05]
-1744F; [7C 4E B2, 05, 05]
-17450; [7C 4E B4, 05, 05]
-17451; [7C 4E B6, 05, 05]
-17452; [7C 4E B8, 05, 05]
-17453; [7C 4E BA, 05, 05]
-17454; [7C 4E BC, 05, 05]
-17455; [7C 4E BE, 05, 05]
-17456; [7C 4E C0, 05, 05]
-17457; [7C 4E C2, 05, 05]
-17458; [7C 4E C4, 05, 05]
-17459; [7C 4E C6, 05, 05]
-1745A; [7C 4E C8, 05, 05]
-1745B; [7C 4E CA, 05, 05]
-1745C; [7C 4E CC, 05, 05]
-1745D; [7C 4E CE, 05, 05]
-1745E; [7C 4E D0, 05, 05]
-1745F; [7C 4E D2, 05, 05]
-17460; [7C 4E D4, 05, 05]
-17461; [7C 4E D6, 05, 05]
-17462; [7C 4E D8, 05, 05]
-17463; [7C 4E DA, 05, 05]
-17464; [7C 4E DC, 05, 05]
-17465; [7C 4E DE, 05, 05]
-17466; [7C 4E E0, 05, 05]
-17467; [7C 4E E2, 05, 05]
-17468; [7C 4E E4, 05, 05]
-17469; [7C 4E E6, 05, 05]
-1746A; [7C 4E E8, 05, 05]
-1746B; [7C 4E EA, 05, 05]
-1746C; [7C 4E EC, 05, 05]
-1746D; [7C 4E EE, 05, 05]
-1746E; [7C 4E F0, 05, 05]
-1746F; [7C 4E F2, 05, 05]
-17470; [7C 4E F4, 05, 05]
-17471; [7C 4E F6, 05, 05]
-17472; [7C 4E F8, 05, 05]
-17473; [7C 4E FA, 05, 05]
-17474; [7C 4E FC, 05, 05]
-17475; [7C 4E FE, 05, 05]
-17476; [7C 4F 02, 05, 05]
-17477; [7C 4F 04, 05, 05]
-17478; [7C 4F 06, 05, 05]
-17479; [7C 4F 08, 05, 05]
-1747A; [7C 4F 0A, 05, 05]
-1747B; [7C 4F 0C, 05, 05]
-1747C; [7C 4F 0E, 05, 05]
-1747D; [7C 4F 10, 05, 05]
-1747E; [7C 4F 12, 05, 05]
-1747F; [7C 4F 14, 05, 05]
-17480; [7C 4F 16, 05, 05]
-17481; [7C 4F 18, 05, 05]
-17482; [7C 4F 1A, 05, 05]
-17483; [7C 4F 1C, 05, 05]
-17484; [7C 4F 1E, 05, 05]
-17485; [7C 4F 20, 05, 05]
-17486; [7C 4F 22, 05, 05]
-17487; [7C 4F 24, 05, 05]
-17488; [7C 4F 26, 05, 05]
-17489; [7C 4F 28, 05, 05]
-1748A; [7C 4F 2A, 05, 05]
-1748B; [7C 4F 2C, 05, 05]
-1748C; [7C 4F 2E, 05, 05]
-1748D; [7C 4F 30, 05, 05]
-1748E; [7C 4F 32, 05, 05]
-1748F; [7C 4F 34, 05, 05]
-17490; [7C 4F 36, 05, 05]
-17491; [7C 4F 38, 05, 05]
-17492; [7C 4F 3A, 05, 05]
-17493; [7C 4F 3C, 05, 05]
-17494; [7C 4F 3E, 05, 05]
-17495; [7C 4F 40, 05, 05]
-17496; [7C 4F 42, 05, 05]
-17497; [7C 4F 44, 05, 05]
-17498; [7C 4F 46, 05, 05]
-17499; [7C 4F 48, 05, 05]
-1749A; [7C 4F 4A, 05, 05]
-1749B; [7C 4F 4C, 05, 05]
-1749C; [7C 4F 4E, 05, 05]
-1749D; [7C 4F 50, 05, 05]
-1749E; [7C 4F 52, 05, 05]
-1749F; [7C 4F 54, 05, 05]
-174A0; [7C 4F 56, 05, 05]
-174A1; [7C 4F 58, 05, 05]
-174A2; [7C 4F 5A, 05, 05]
-174A3; [7C 4F 5C, 05, 05]
-174A4; [7C 4F 5E, 05, 05]
-174A5; [7C 4F 60, 05, 05]
-174A6; [7C 4F 62, 05, 05]
-174A7; [7C 4F 64, 05, 05]
-174A8; [7C 4F 66, 05, 05]
-174A9; [7C 4F 68, 05, 05]
-174AA; [7C 4F 6A, 05, 05]
-174AB; [7C 4F 6C, 05, 05]
-174AC; [7C 4F 6E, 05, 05]
-174AD; [7C 4F 70, 05, 05]
-174AE; [7C 4F 72, 05, 05]
-174AF; [7C 4F 74, 05, 05]
-174B0; [7C 4F 76, 05, 05]
-174B1; [7C 4F 78, 05, 05]
-174B2; [7C 4F 7A, 05, 05]
-174B3; [7C 4F 7C, 05, 05]
-174B4; [7C 4F 7E, 05, 05]
-174B5; [7C 4F 80, 05, 05]
-174B6; [7C 4F 82, 05, 05]
-174B7; [7C 4F 84, 05, 05]
-174B8; [7C 4F 86, 05, 05]
-174B9; [7C 4F 88, 05, 05]
-174BA; [7C 4F 8A, 05, 05]
-174BB; [7C 4F 8C, 05, 05]
-174BC; [7C 4F 8E, 05, 05]
-174BD; [7C 4F 90, 05, 05]
-174BE; [7C 4F 92, 05, 05]
-174BF; [7C 4F 94, 05, 05]
-174C0; [7C 4F 96, 05, 05]
-174C1; [7C 4F 98, 05, 05]
-174C2; [7C 4F 9A, 05, 05]
-174C3; [7C 4F 9C, 05, 05]
-174C4; [7C 4F 9E, 05, 05]
-174C5; [7C 4F A0, 05, 05]
-174C6; [7C 4F A2, 05, 05]
-174C7; [7C 4F A4, 05, 05]
-174C8; [7C 4F A6, 05, 05]
-174C9; [7C 4F A8, 05, 05]
-174CA; [7C 4F AA, 05, 05]
-174CB; [7C 4F AC, 05, 05]
-174CC; [7C 4F AE, 05, 05]
-174CD; [7C 4F B0, 05, 05]
-174CE; [7C 4F B2, 05, 05]
-174CF; [7C 4F B4, 05, 05]
-174D0; [7C 4F B6, 05, 05]
-174D1; [7C 4F B8, 05, 05]
-174D2; [7C 4F BA, 05, 05]
-174D3; [7C 4F BC, 05, 05]
-174D4; [7C 4F BE, 05, 05]
-174D5; [7C 4F C0, 05, 05]
-174D6; [7C 4F C2, 05, 05]
-174D7; [7C 4F C4, 05, 05]
-174D8; [7C 4F C6, 05, 05]
-174D9; [7C 4F C8, 05, 05]
-174DA; [7C 4F CA, 05, 05]
-174DB; [7C 4F CC, 05, 05]
-174DC; [7C 4F CE, 05, 05]
-174DD; [7C 4F D0, 05, 05]
-174DE; [7C 4F D2, 05, 05]
-174DF; [7C 4F D4, 05, 05]
-174E0; [7C 4F D6, 05, 05]
-174E1; [7C 4F D8, 05, 05]
-174E2; [7C 4F DA, 05, 05]
-174E3; [7C 4F DC, 05, 05]
-174E4; [7C 4F DE, 05, 05]
-174E5; [7C 4F E0, 05, 05]
-174E6; [7C 4F E2, 05, 05]
-174E7; [7C 4F E4, 05, 05]
-174E8; [7C 4F E6, 05, 05]
-174E9; [7C 4F E8, 05, 05]
-174EA; [7C 4F EA, 05, 05]
-174EB; [7C 4F EC, 05, 05]
-174EC; [7C 4F EE, 05, 05]
-174ED; [7C 4F F0, 05, 05]
-174EE; [7C 4F F2, 05, 05]
-174EF; [7C 4F F4, 05, 05]
-174F0; [7C 4F F6, 05, 05]
-174F1; [7C 4F F8, 05, 05]
-174F2; [7C 4F FA, 05, 05]
-174F3; [7C 4F FC, 05, 05]
-174F4; [7C 4F FE, 05, 05]
-174F5; [7C 50 02, 05, 05]
-174F6; [7C 50 04, 05, 05]
-174F7; [7C 50 06, 05, 05]
-174F8; [7C 50 08, 05, 05]
-174F9; [7C 50 0A, 05, 05]
-174FA; [7C 50 0C, 05, 05]
-174FB; [7C 50 0E, 05, 05]
-174FC; [7C 50 10, 05, 05]
-174FD; [7C 50 12, 05, 05]
-174FE; [7C 50 14, 05, 05]
-174FF; [7C 50 16, 05, 05]
-17500; [7C 50 18, 05, 05]
-17501; [7C 50 1A, 05, 05]
-17502; [7C 50 1C, 05, 05]
-17503; [7C 50 1E, 05, 05]
-17504; [7C 50 20, 05, 05]
-17505; [7C 50 22, 05, 05]
-17506; [7C 50 24, 05, 05]
-17507; [7C 50 26, 05, 05]
-17508; [7C 50 28, 05, 05]
-17509; [7C 50 2A, 05, 05]
-1750A; [7C 50 2C, 05, 05]
-1750B; [7C 50 2E, 05, 05]
-1750C; [7C 50 30, 05, 05]
-1750D; [7C 50 32, 05, 05]
-1750E; [7C 50 34, 05, 05]
-1750F; [7C 50 36, 05, 05]
-17510; [7C 50 38, 05, 05]
-17511; [7C 50 3A, 05, 05]
-17512; [7C 50 3C, 05, 05]
-17513; [7C 50 3E, 05, 05]
-17514; [7C 50 40, 05, 05]
-17515; [7C 50 42, 05, 05]
-17516; [7C 50 44, 05, 05]
-17517; [7C 50 46, 05, 05]
-17518; [7C 50 48, 05, 05]
-17519; [7C 50 4A, 05, 05]
-1751A; [7C 50 4C, 05, 05]
-1751B; [7C 50 4E, 05, 05]
-1751C; [7C 50 50, 05, 05]
-1751D; [7C 50 52, 05, 05]
-1751E; [7C 50 54, 05, 05]
-1751F; [7C 50 56, 05, 05]
-17520; [7C 50 58, 05, 05]
-17521; [7C 50 5A, 05, 05]
-17522; [7C 50 5C, 05, 05]
-17523; [7C 50 5E, 05, 05]
-17524; [7C 50 60, 05, 05]
-17525; [7C 50 62, 05, 05]
-17526; [7C 50 64, 05, 05]
-17527; [7C 50 66, 05, 05]
-17528; [7C 50 68, 05, 05]
-17529; [7C 50 6A, 05, 05]
-1752A; [7C 50 6C, 05, 05]
-1752B; [7C 50 6E, 05, 05]
-1752C; [7C 50 70, 05, 05]
-1752D; [7C 50 72, 05, 05]
-1752E; [7C 50 74, 05, 05]
-1752F; [7C 50 76, 05, 05]
-17530; [7C 50 78, 05, 05]
-17531; [7C 50 7A, 05, 05]
-17532; [7C 50 7C, 05, 05]
-17533; [7C 50 7E, 05, 05]
-17534; [7C 50 80, 05, 05]
-17535; [7C 50 82, 05, 05]
-17536; [7C 50 84, 05, 05]
-17537; [7C 50 86, 05, 05]
-17538; [7C 50 88, 05, 05]
-17539; [7C 50 8A, 05, 05]
-1753A; [7C 50 8C, 05, 05]
-1753B; [7C 50 8E, 05, 05]
-1753C; [7C 50 90, 05, 05]
-1753D; [7C 50 92, 05, 05]
-1753E; [7C 50 94, 05, 05]
-1753F; [7C 50 96, 05, 05]
-17540; [7C 50 98, 05, 05]
-17541; [7C 50 9A, 05, 05]
-17542; [7C 50 9C, 05, 05]
-17543; [7C 50 9E, 05, 05]
-17544; [7C 50 A0, 05, 05]
-17545; [7C 50 A2, 05, 05]
-17546; [7C 50 A4, 05, 05]
-17547; [7C 50 A6, 05, 05]
-17548; [7C 50 A8, 05, 05]
-17549; [7C 50 AA, 05, 05]
-1754A; [7C 50 AC, 05, 05]
-1754B; [7C 50 AE, 05, 05]
-1754C; [7C 50 B0, 05, 05]
-1754D; [7C 50 B2, 05, 05]
-1754E; [7C 50 B4, 05, 05]
-1754F; [7C 50 B6, 05, 05]
-17550; [7C 50 B8, 05, 05]
-17551; [7C 50 BA, 05, 05]
-17552; [7C 50 BC, 05, 05]
-17553; [7C 50 BE, 05, 05]
-17554; [7C 50 C0, 05, 05]
-17555; [7C 50 C2, 05, 05]
-17556; [7C 50 C4, 05, 05]
-17557; [7C 50 C6, 05, 05]
-17558; [7C 50 C8, 05, 05]
-17559; [7C 50 CA, 05, 05]
-1755A; [7C 50 CC, 05, 05]
-1755B; [7C 50 CE, 05, 05]
-1755C; [7C 50 D0, 05, 05]
-1755D; [7C 50 D2, 05, 05]
-1755E; [7C 50 D4, 05, 05]
-1755F; [7C 50 D6, 05, 05]
-17560; [7C 50 D8, 05, 05]
-17561; [7C 50 DA, 05, 05]
-17562; [7C 50 DC, 05, 05]
-17563; [7C 50 DE, 05, 05]
-17564; [7C 50 E0, 05, 05]
-17565; [7C 50 E2, 05, 05]
-17566; [7C 50 E4, 05, 05]
-17567; [7C 50 E6, 05, 05]
-17568; [7C 50 E8, 05, 05]
-17569; [7C 50 EA, 05, 05]
-1756A; [7C 50 EC, 05, 05]
-1756B; [7C 50 EE, 05, 05]
-1756C; [7C 50 F0, 05, 05]
-1756D; [7C 50 F2, 05, 05]
-1756E; [7C 50 F4, 05, 05]
-1756F; [7C 50 F6, 05, 05]
-17570; [7C 50 F8, 05, 05]
-17571; [7C 50 FA, 05, 05]
-17572; [7C 50 FC, 05, 05]
-17573; [7C 50 FE, 05, 05]
-17574; [7C 51 02, 05, 05]
-17575; [7C 51 04, 05, 05]
-17576; [7C 51 06, 05, 05]
-17577; [7C 51 08, 05, 05]
-17578; [7C 51 0A, 05, 05]
-17579; [7C 51 0C, 05, 05]
-1757A; [7C 51 0E, 05, 05]
-1757B; [7C 51 10, 05, 05]
-1757C; [7C 51 12, 05, 05]
-1757D; [7C 51 14, 05, 05]
-1757E; [7C 51 16, 05, 05]
-1757F; [7C 51 18, 05, 05]
-17580; [7C 51 1A, 05, 05]
-17581; [7C 51 1C, 05, 05]
-17582; [7C 51 1E, 05, 05]
-17583; [7C 51 20, 05, 05]
-17584; [7C 51 22, 05, 05]
-17585; [7C 51 24, 05, 05]
-17586; [7C 51 26, 05, 05]
-17587; [7C 51 28, 05, 05]
-17588; [7C 51 2A, 05, 05]
-17589; [7C 51 2C, 05, 05]
-1758A; [7C 51 2E, 05, 05]
-1758B; [7C 51 30, 05, 05]
-1758C; [7C 51 32, 05, 05]
-1758D; [7C 51 34, 05, 05]
-1758E; [7C 51 36, 05, 05]
-1758F; [7C 51 38, 05, 05]
-17590; [7C 51 3A, 05, 05]
-17591; [7C 51 3C, 05, 05]
-17592; [7C 51 3E, 05, 05]
-17593; [7C 51 40, 05, 05]
-17594; [7C 51 42, 05, 05]
-17595; [7C 51 44, 05, 05]
-17596; [7C 51 46, 05, 05]
-17597; [7C 51 48, 05, 05]
-17598; [7C 51 4A, 05, 05]
-17599; [7C 51 4C, 05, 05]
-1759A; [7C 51 4E, 05, 05]
-1759B; [7C 51 50, 05, 05]
-1759C; [7C 51 52, 05, 05]
-1759D; [7C 51 54, 05, 05]
-1759E; [7C 51 56, 05, 05]
-1759F; [7C 51 58, 05, 05]
-175A0; [7C 51 5A, 05, 05]
-175A1; [7C 51 5C, 05, 05]
-175A2; [7C 51 5E, 05, 05]
-175A3; [7C 51 60, 05, 05]
-175A4; [7C 51 62, 05, 05]
-175A5; [7C 51 64, 05, 05]
-175A6; [7C 51 66, 05, 05]
-175A7; [7C 51 68, 05, 05]
-175A8; [7C 51 6A, 05, 05]
-175A9; [7C 51 6C, 05, 05]
-175AA; [7C 51 6E, 05, 05]
-175AB; [7C 51 70, 05, 05]
-175AC; [7C 51 72, 05, 05]
-175AD; [7C 51 74, 05, 05]
-175AE; [7C 51 76, 05, 05]
-175AF; [7C 51 78, 05, 05]
-175B0; [7C 51 7A, 05, 05]
-175B1; [7C 51 7C, 05, 05]
-175B2; [7C 51 7E, 05, 05]
-175B3; [7C 51 80, 05, 05]
-175B4; [7C 51 82, 05, 05]
-175B5; [7C 51 84, 05, 05]
-175B6; [7C 51 86, 05, 05]
-175B7; [7C 51 88, 05, 05]
-175B8; [7C 51 8A, 05, 05]
-175B9; [7C 51 8C, 05, 05]
-175BA; [7C 51 8E, 05, 05]
-175BB; [7C 51 90, 05, 05]
-175BC; [7C 51 92, 05, 05]
-175BD; [7C 51 94, 05, 05]
-175BE; [7C 51 96, 05, 05]
-175BF; [7C 51 98, 05, 05]
-175C0; [7C 51 9A, 05, 05]
-175C1; [7C 51 9C, 05, 05]
-175C2; [7C 51 9E, 05, 05]
-175C3; [7C 51 A0, 05, 05]
-175C4; [7C 51 A2, 05, 05]
-175C5; [7C 51 A4, 05, 05]
-175C6; [7C 51 A6, 05, 05]
-175C7; [7C 51 A8, 05, 05]
-175C8; [7C 51 AA, 05, 05]
-175C9; [7C 51 AC, 05, 05]
-175CA; [7C 51 AE, 05, 05]
-175CB; [7C 51 B0, 05, 05]
-175CC; [7C 51 B2, 05, 05]
-175CD; [7C 51 B4, 05, 05]
-175CE; [7C 51 B6, 05, 05]
-175CF; [7C 51 B8, 05, 05]
-175D0; [7C 51 BA, 05, 05]
-175D1; [7C 51 BC, 05, 05]
-175D2; [7C 51 BE, 05, 05]
-175D3; [7C 51 C0, 05, 05]
-175D4; [7C 51 C2, 05, 05]
-175D5; [7C 51 C4, 05, 05]
-175D6; [7C 51 C6, 05, 05]
-175D7; [7C 51 C8, 05, 05]
-175D8; [7C 51 CA, 05, 05]
-175D9; [7C 51 CC, 05, 05]
-175DA; [7C 51 CE, 05, 05]
-175DB; [7C 51 D0, 05, 05]
-175DC; [7C 51 D2, 05, 05]
-175DD; [7C 51 D4, 05, 05]
-175DE; [7C 51 D6, 05, 05]
-175DF; [7C 51 D8, 05, 05]
-175E0; [7C 51 DA, 05, 05]
-175E1; [7C 51 DC, 05, 05]
-175E2; [7C 51 DE, 05, 05]
-175E3; [7C 51 E0, 05, 05]
-175E4; [7C 51 E2, 05, 05]
-175E5; [7C 51 E4, 05, 05]
-175E6; [7C 51 E6, 05, 05]
-175E7; [7C 51 E8, 05, 05]
-175E8; [7C 51 EA, 05, 05]
-175E9; [7C 51 EC, 05, 05]
-175EA; [7C 51 EE, 05, 05]
-175EB; [7C 51 F0, 05, 05]
-175EC; [7C 51 F2, 05, 05]
-175ED; [7C 51 F4, 05, 05]
-175EE; [7C 51 F6, 05, 05]
-175EF; [7C 51 F8, 05, 05]
-175F0; [7C 51 FA, 05, 05]
-175F1; [7C 51 FC, 05, 05]
-175F2; [7C 51 FE, 05, 05]
-175F3; [7C 52 02, 05, 05]
-175F4; [7C 52 04, 05, 05]
-175F5; [7C 52 06, 05, 05]
-175F6; [7C 52 08, 05, 05]
-175F7; [7C 52 0A, 05, 05]
-175F8; [7C 52 0C, 05, 05]
-175F9; [7C 52 0E, 05, 05]
-175FA; [7C 52 10, 05, 05]
-175FB; [7C 52 12, 05, 05]
-175FC; [7C 52 14, 05, 05]
-175FD; [7C 52 16, 05, 05]
-175FE; [7C 52 18, 05, 05]
-175FF; [7C 52 1A, 05, 05]
-17600; [7C 52 1C, 05, 05]
-17601; [7C 52 1E, 05, 05]
-17602; [7C 52 20, 05, 05]
-17603; [7C 52 22, 05, 05]
-17604; [7C 52 24, 05, 05]
-17605; [7C 52 26, 05, 05]
-17606; [7C 52 28, 05, 05]
-17607; [7C 52 2A, 05, 05]
-17608; [7C 52 2C, 05, 05]
-17609; [7C 52 2E, 05, 05]
-1760A; [7C 52 30, 05, 05]
-1760B; [7C 52 32, 05, 05]
-1760C; [7C 52 34, 05, 05]
-1760D; [7C 52 36, 05, 05]
-1760E; [7C 52 38, 05, 05]
-1760F; [7C 52 3A, 05, 05]
-17610; [7C 52 3C, 05, 05]
-17611; [7C 52 3E, 05, 05]
-17612; [7C 52 40, 05, 05]
-17613; [7C 52 42, 05, 05]
-17614; [7C 52 44, 05, 05]
-17615; [7C 52 46, 05, 05]
-17616; [7C 52 48, 05, 05]
-17617; [7C 52 4A, 05, 05]
-17618; [7C 52 4C, 05, 05]
-17619; [7C 52 4E, 05, 05]
-1761A; [7C 52 50, 05, 05]
-1761B; [7C 52 52, 05, 05]
-1761C; [7C 52 54, 05, 05]
-1761D; [7C 52 56, 05, 05]
-1761E; [7C 52 58, 05, 05]
-1761F; [7C 52 5A, 05, 05]
-17620; [7C 52 5C, 05, 05]
-17621; [7C 52 5E, 05, 05]
-17622; [7C 52 60, 05, 05]
-17623; [7C 52 62, 05, 05]
-17624; [7C 52 64, 05, 05]
-17625; [7C 52 66, 05, 05]
-17626; [7C 52 68, 05, 05]
-17627; [7C 52 6A, 05, 05]
-17628; [7C 52 6C, 05, 05]
-17629; [7C 52 6E, 05, 05]
-1762A; [7C 52 70, 05, 05]
-1762B; [7C 52 72, 05, 05]
-1762C; [7C 52 74, 05, 05]
-1762D; [7C 52 76, 05, 05]
-1762E; [7C 52 78, 05, 05]
-1762F; [7C 52 7A, 05, 05]
-17630; [7C 52 7C, 05, 05]
-17631; [7C 52 7E, 05, 05]
-17632; [7C 52 80, 05, 05]
-17633; [7C 52 82, 05, 05]
-17634; [7C 52 84, 05, 05]
-17635; [7C 52 86, 05, 05]
-17636; [7C 52 88, 05, 05]
-17637; [7C 52 8A, 05, 05]
-17638; [7C 52 8C, 05, 05]
-17639; [7C 52 8E, 05, 05]
-1763A; [7C 52 90, 05, 05]
-1763B; [7C 52 92, 05, 05]
-1763C; [7C 52 94, 05, 05]
-1763D; [7C 52 96, 05, 05]
-1763E; [7C 52 98, 05, 05]
-1763F; [7C 52 9A, 05, 05]
-17640; [7C 52 9C, 05, 05]
-17641; [7C 52 9E, 05, 05]
-17642; [7C 52 A0, 05, 05]
-17643; [7C 52 A2, 05, 05]
-17644; [7C 52 A4, 05, 05]
-17645; [7C 52 A6, 05, 05]
-17646; [7C 52 A8, 05, 05]
-17647; [7C 52 AA, 05, 05]
-17648; [7C 52 AC, 05, 05]
-17649; [7C 52 AE, 05, 05]
-1764A; [7C 52 B0, 05, 05]
-1764B; [7C 52 B2, 05, 05]
-1764C; [7C 52 B4, 05, 05]
-1764D; [7C 52 B6, 05, 05]
-1764E; [7C 52 B8, 05, 05]
-1764F; [7C 52 BA, 05, 05]
-17650; [7C 52 BC, 05, 05]
-17651; [7C 52 BE, 05, 05]
-17652; [7C 52 C0, 05, 05]
-17653; [7C 52 C2, 05, 05]
-17654; [7C 52 C4, 05, 05]
-17655; [7C 52 C6, 05, 05]
-17656; [7C 52 C8, 05, 05]
-17657; [7C 52 CA, 05, 05]
-17658; [7C 52 CC, 05, 05]
-17659; [7C 52 CE, 05, 05]
-1765A; [7C 52 D0, 05, 05]
-1765B; [7C 52 D2, 05, 05]
-1765C; [7C 52 D4, 05, 05]
-1765D; [7C 52 D6, 05, 05]
-1765E; [7C 52 D8, 05, 05]
-1765F; [7C 52 DA, 05, 05]
-17660; [7C 52 DC, 05, 05]
-17661; [7C 52 DE, 05, 05]
-17662; [7C 52 E0, 05, 05]
-17663; [7C 52 E2, 05, 05]
-17664; [7C 52 E4, 05, 05]
-17665; [7C 52 E6, 05, 05]
-17666; [7C 52 E8, 05, 05]
-17667; [7C 52 EA, 05, 05]
-17668; [7C 52 EC, 05, 05]
-17669; [7C 52 EE, 05, 05]
-1766A; [7C 52 F0, 05, 05]
-1766B; [7C 52 F2, 05, 05]
-1766C; [7C 52 F4, 05, 05]
-1766D; [7C 52 F6, 05, 05]
-1766E; [7C 52 F8, 05, 05]
-1766F; [7C 52 FA, 05, 05]
-17670; [7C 52 FC, 05, 05]
-17671; [7C 52 FE, 05, 05]
-17672; [7C 53 02, 05, 05]
-17673; [7C 53 04, 05, 05]
-17674; [7C 53 06, 05, 05]
-17675; [7C 53 08, 05, 05]
-17676; [7C 53 0A, 05, 05]
-17677; [7C 53 0C, 05, 05]
-17678; [7C 53 0E, 05, 05]
-17679; [7C 53 10, 05, 05]
-1767A; [7C 53 12, 05, 05]
-1767B; [7C 53 14, 05, 05]
-1767C; [7C 53 16, 05, 05]
-1767D; [7C 53 18, 05, 05]
-1767E; [7C 53 1A, 05, 05]
-1767F; [7C 53 1C, 05, 05]
-17680; [7C 53 1E, 05, 05]
-17681; [7C 53 20, 05, 05]
-17682; [7C 53 22, 05, 05]
-17683; [7C 53 24, 05, 05]
-17684; [7C 53 26, 05, 05]
-17685; [7C 53 28, 05, 05]
-17686; [7C 53 2A, 05, 05]
-17687; [7C 53 2C, 05, 05]
-17688; [7C 53 2E, 05, 05]
-17689; [7C 53 30, 05, 05]
-1768A; [7C 53 32, 05, 05]
-1768B; [7C 53 34, 05, 05]
-1768C; [7C 53 36, 05, 05]
-1768D; [7C 53 38, 05, 05]
-1768E; [7C 53 3A, 05, 05]
-1768F; [7C 53 3C, 05, 05]
-17690; [7C 53 3E, 05, 05]
-17691; [7C 53 40, 05, 05]
-17692; [7C 53 42, 05, 05]
-17693; [7C 53 44, 05, 05]
-17694; [7C 53 46, 05, 05]
-17695; [7C 53 48, 05, 05]
-17696; [7C 53 4A, 05, 05]
-17697; [7C 53 4C, 05, 05]
-17698; [7C 53 4E, 05, 05]
-17699; [7C 53 50, 05, 05]
-1769A; [7C 53 52, 05, 05]
-1769B; [7C 53 54, 05, 05]
-1769C; [7C 53 56, 05, 05]
-1769D; [7C 53 58, 05, 05]
-1769E; [7C 53 5A, 05, 05]
-1769F; [7C 53 5C, 05, 05]
-176A0; [7C 53 5E, 05, 05]
-176A1; [7C 53 60, 05, 05]
-176A2; [7C 53 62, 05, 05]
-176A3; [7C 53 64, 05, 05]
-176A4; [7C 53 66, 05, 05]
-176A5; [7C 53 68, 05, 05]
-176A6; [7C 53 6A, 05, 05]
-176A7; [7C 53 6C, 05, 05]
-176A8; [7C 53 6E, 05, 05]
-176A9; [7C 53 70, 05, 05]
-176AA; [7C 53 72, 05, 05]
-176AB; [7C 53 74, 05, 05]
-176AC; [7C 53 76, 05, 05]
-176AD; [7C 53 78, 05, 05]
-176AE; [7C 53 7A, 05, 05]
-176AF; [7C 53 7C, 05, 05]
-176B0; [7C 53 7E, 05, 05]
-176B1; [7C 53 80, 05, 05]
-176B2; [7C 53 82, 05, 05]
-176B3; [7C 53 84, 05, 05]
-176B4; [7C 53 86, 05, 05]
-176B5; [7C 53 88, 05, 05]
-176B6; [7C 53 8A, 05, 05]
-176B7; [7C 53 8C, 05, 05]
-176B8; [7C 53 8E, 05, 05]
-176B9; [7C 53 90, 05, 05]
-176BA; [7C 53 92, 05, 05]
-176BB; [7C 53 94, 05, 05]
-176BC; [7C 53 96, 05, 05]
-176BD; [7C 53 98, 05, 05]
-176BE; [7C 53 9A, 05, 05]
-176BF; [7C 53 9C, 05, 05]
-176C0; [7C 53 9E, 05, 05]
-176C1; [7C 53 A0, 05, 05]
-176C2; [7C 53 A2, 05, 05]
-176C3; [7C 53 A4, 05, 05]
-176C4; [7C 53 A6, 05, 05]
-176C5; [7C 53 A8, 05, 05]
-176C6; [7C 53 AA, 05, 05]
-176C7; [7C 53 AC, 05, 05]
-176C8; [7C 53 AE, 05, 05]
-176C9; [7C 53 B0, 05, 05]
-176CA; [7C 53 B2, 05, 05]
-176CB; [7C 53 B4, 05, 05]
-176CC; [7C 53 B6, 05, 05]
-176CD; [7C 53 B8, 05, 05]
-176CE; [7C 53 BA, 05, 05]
-176CF; [7C 53 BC, 05, 05]
-176D0; [7C 53 BE, 05, 05]
-176D1; [7C 53 C0, 05, 05]
-176D2; [7C 53 C2, 05, 05]
-176D3; [7C 53 C4, 05, 05]
-176D4; [7C 53 C6, 05, 05]
-176D5; [7C 53 C8, 05, 05]
-176D6; [7C 53 CA, 05, 05]
-176D7; [7C 53 CC, 05, 05]
-176D8; [7C 53 CE, 05, 05]
-176D9; [7C 53 D0, 05, 05]
-176DA; [7C 53 D2, 05, 05]
-176DB; [7C 53 D4, 05, 05]
-176DC; [7C 53 D6, 05, 05]
-176DD; [7C 53 D8, 05, 05]
-176DE; [7C 53 DA, 05, 05]
-176DF; [7C 53 DC, 05, 05]
-176E0; [7C 53 DE, 05, 05]
-176E1; [7C 53 E0, 05, 05]
-176E2; [7C 53 E2, 05, 05]
-176E3; [7C 53 E4, 05, 05]
-176E4; [7C 53 E6, 05, 05]
-176E5; [7C 53 E8, 05, 05]
-176E6; [7C 53 EA, 05, 05]
-176E7; [7C 53 EC, 05, 05]
-176E8; [7C 53 EE, 05, 05]
-176E9; [7C 53 F0, 05, 05]
-176EA; [7C 53 F2, 05, 05]
-176EB; [7C 53 F4, 05, 05]
-176EC; [7C 53 F6, 05, 05]
-176ED; [7C 53 F8, 05, 05]
-176EE; [7C 53 FA, 05, 05]
-176EF; [7C 53 FC, 05, 05]
-176F0; [7C 53 FE, 05, 05]
-176F1; [7C 54 02, 05, 05]
-176F2; [7C 54 04, 05, 05]
-176F3; [7C 54 06, 05, 05]
-176F4; [7C 54 08, 05, 05]
-176F5; [7C 54 0A, 05, 05]
-176F6; [7C 54 0C, 05, 05]
-176F7; [7C 54 0E, 05, 05]
-176F8; [7C 54 10, 05, 05]
-176F9; [7C 54 12, 05, 05]
-176FA; [7C 54 14, 05, 05]
-176FB; [7C 54 16, 05, 05]
-176FC; [7C 54 18, 05, 05]
-176FD; [7C 54 1A, 05, 05]
-176FE; [7C 54 1C, 05, 05]
-176FF; [7C 54 1E, 05, 05]
-17700; [7C 54 20, 05, 05]
-17701; [7C 54 22, 05, 05]
-17702; [7C 54 24, 05, 05]
-17703; [7C 54 26, 05, 05]
-17704; [7C 54 28, 05, 05]
-17705; [7C 54 2A, 05, 05]
-17706; [7C 54 2C, 05, 05]
-17707; [7C 54 2E, 05, 05]
-17708; [7C 54 30, 05, 05]
-17709; [7C 54 32, 05, 05]
-1770A; [7C 54 34, 05, 05]
-1770B; [7C 54 36, 05, 05]
-1770C; [7C 54 38, 05, 05]
-1770D; [7C 54 3A, 05, 05]
-1770E; [7C 54 3C, 05, 05]
-1770F; [7C 54 3E, 05, 05]
-17710; [7C 54 40, 05, 05]
-17711; [7C 54 42, 05, 05]
-17712; [7C 54 44, 05, 05]
-17713; [7C 54 46, 05, 05]
-17714; [7C 54 48, 05, 05]
-17715; [7C 54 4A, 05, 05]
-17716; [7C 54 4C, 05, 05]
-17717; [7C 54 4E, 05, 05]
-17718; [7C 54 50, 05, 05]
-17719; [7C 54 52, 05, 05]
-1771A; [7C 54 54, 05, 05]
-1771B; [7C 54 56, 05, 05]
-1771C; [7C 54 58, 05, 05]
-1771D; [7C 54 5A, 05, 05]
-1771E; [7C 54 5C, 05, 05]
-1771F; [7C 54 5E, 05, 05]
-17720; [7C 54 60, 05, 05]
-17721; [7C 54 62, 05, 05]
-17722; [7C 54 64, 05, 05]
-17723; [7C 54 66, 05, 05]
-17724; [7C 54 68, 05, 05]
-17725; [7C 54 6A, 05, 05]
-17726; [7C 54 6C, 05, 05]
-17727; [7C 54 6E, 05, 05]
-17728; [7C 54 70, 05, 05]
-17729; [7C 54 72, 05, 05]
-1772A; [7C 54 74, 05, 05]
-1772B; [7C 54 76, 05, 05]
-1772C; [7C 54 78, 05, 05]
-1772D; [7C 54 7A, 05, 05]
-1772E; [7C 54 7C, 05, 05]
-1772F; [7C 54 7E, 05, 05]
-17730; [7C 54 80, 05, 05]
-17731; [7C 54 82, 05, 05]
-17732; [7C 54 84, 05, 05]
-17733; [7C 54 86, 05, 05]
-17734; [7C 54 88, 05, 05]
-17735; [7C 54 8A, 05, 05]
-17736; [7C 54 8C, 05, 05]
-17737; [7C 54 8E, 05, 05]
-17738; [7C 54 90, 05, 05]
-17739; [7C 54 92, 05, 05]
-1773A; [7C 54 94, 05, 05]
-1773B; [7C 54 96, 05, 05]
-1773C; [7C 54 98, 05, 05]
-1773D; [7C 54 9A, 05, 05]
-1773E; [7C 54 9C, 05, 05]
-1773F; [7C 54 9E, 05, 05]
-17740; [7C 54 A0, 05, 05]
-17741; [7C 54 A2, 05, 05]
-17742; [7C 54 A4, 05, 05]
-17743; [7C 54 A6, 05, 05]
-17744; [7C 54 A8, 05, 05]
-17745; [7C 54 AA, 05, 05]
-17746; [7C 54 AC, 05, 05]
-17747; [7C 54 AE, 05, 05]
-17748; [7C 54 B0, 05, 05]
-17749; [7C 54 B2, 05, 05]
-1774A; [7C 54 B4, 05, 05]
-1774B; [7C 54 B6, 05, 05]
-1774C; [7C 54 B8, 05, 05]
-1774D; [7C 54 BA, 05, 05]
-1774E; [7C 54 BC, 05, 05]
-1774F; [7C 54 BE, 05, 05]
-17750; [7C 54 C0, 05, 05]
-17751; [7C 54 C2, 05, 05]
-17752; [7C 54 C4, 05, 05]
-17753; [7C 54 C6, 05, 05]
-17754; [7C 54 C8, 05, 05]
-17755; [7C 54 CA, 05, 05]
-17756; [7C 54 CC, 05, 05]
-17757; [7C 54 CE, 05, 05]
-17758; [7C 54 D0, 05, 05]
-17759; [7C 54 D2, 05, 05]
-1775A; [7C 54 D4, 05, 05]
-1775B; [7C 54 D6, 05, 05]
-1775C; [7C 54 D8, 05, 05]
-1775D; [7C 54 DA, 05, 05]
-1775E; [7C 54 DC, 05, 05]
-1775F; [7C 54 DE, 05, 05]
-17760; [7C 54 E0, 05, 05]
-17761; [7C 54 E2, 05, 05]
-17762; [7C 54 E4, 05, 05]
-17763; [7C 54 E6, 05, 05]
-17764; [7C 54 E8, 05, 05]
-17765; [7C 54 EA, 05, 05]
-17766; [7C 54 EC, 05, 05]
-17767; [7C 54 EE, 05, 05]
-17768; [7C 54 F0, 05, 05]
-17769; [7C 54 F2, 05, 05]
-1776A; [7C 54 F4, 05, 05]
-1776B; [7C 54 F6, 05, 05]
-1776C; [7C 54 F8, 05, 05]
-1776D; [7C 54 FA, 05, 05]
-1776E; [7C 54 FC, 05, 05]
-1776F; [7C 54 FE, 05, 05]
-17770; [7C 55 02, 05, 05]
-17771; [7C 55 04, 05, 05]
-17772; [7C 55 06, 05, 05]
-17773; [7C 55 08, 05, 05]
-17774; [7C 55 0A, 05, 05]
-17775; [7C 55 0C, 05, 05]
-17776; [7C 55 0E, 05, 05]
-17777; [7C 55 10, 05, 05]
-17778; [7C 55 12, 05, 05]
-17779; [7C 55 14, 05, 05]
-1777A; [7C 55 16, 05, 05]
-1777B; [7C 55 18, 05, 05]
-1777C; [7C 55 1A, 05, 05]
-1777D; [7C 55 1C, 05, 05]
-1777E; [7C 55 1E, 05, 05]
-1777F; [7C 55 20, 05, 05]
-17780; [7C 55 22, 05, 05]
-17781; [7C 55 24, 05, 05]
-17782; [7C 55 26, 05, 05]
-17783; [7C 55 28, 05, 05]
-17784; [7C 55 2A, 05, 05]
-17785; [7C 55 2C, 05, 05]
-17786; [7C 55 2E, 05, 05]
-17787; [7C 55 30, 05, 05]
-17788; [7C 55 32, 05, 05]
-17789; [7C 55 34, 05, 05]
-1778A; [7C 55 36, 05, 05]
-1778B; [7C 55 38, 05, 05]
-1778C; [7C 55 3A, 05, 05]
-1778D; [7C 55 3C, 05, 05]
-1778E; [7C 55 3E, 05, 05]
-1778F; [7C 55 40, 05, 05]
-17790; [7C 55 42, 05, 05]
-17791; [7C 55 44, 05, 05]
-17792; [7C 55 46, 05, 05]
-17793; [7C 55 48, 05, 05]
-17794; [7C 55 4A, 05, 05]
-17795; [7C 55 4C, 05, 05]
-17796; [7C 55 4E, 05, 05]
-17797; [7C 55 50, 05, 05]
-17798; [7C 55 52, 05, 05]
-17799; [7C 55 54, 05, 05]
-1779A; [7C 55 56, 05, 05]
-1779B; [7C 55 58, 05, 05]
-1779C; [7C 55 5A, 05, 05]
-1779D; [7C 55 5C, 05, 05]
-1779E; [7C 55 5E, 05, 05]
-1779F; [7C 55 60, 05, 05]
-177A0; [7C 55 62, 05, 05]
-177A1; [7C 55 64, 05, 05]
-177A2; [7C 55 66, 05, 05]
-177A3; [7C 55 68, 05, 05]
-177A4; [7C 55 6A, 05, 05]
-177A5; [7C 55 6C, 05, 05]
-177A6; [7C 55 6E, 05, 05]
-177A7; [7C 55 70, 05, 05]
-177A8; [7C 55 72, 05, 05]
-177A9; [7C 55 74, 05, 05]
-177AA; [7C 55 76, 05, 05]
-177AB; [7C 55 78, 05, 05]
-177AC; [7C 55 7A, 05, 05]
-177AD; [7C 55 7C, 05, 05]
-177AE; [7C 55 7E, 05, 05]
-177AF; [7C 55 80, 05, 05]
-177B0; [7C 55 82, 05, 05]
-177B1; [7C 55 84, 05, 05]
-177B2; [7C 55 86, 05, 05]
-177B3; [7C 55 88, 05, 05]
-177B4; [7C 55 8A, 05, 05]
-177B5; [7C 55 8C, 05, 05]
-177B6; [7C 55 8E, 05, 05]
-177B7; [7C 55 90, 05, 05]
-177B8; [7C 55 92, 05, 05]
-177B9; [7C 55 94, 05, 05]
-177BA; [7C 55 96, 05, 05]
-177BB; [7C 55 98, 05, 05]
-177BC; [7C 55 9A, 05, 05]
-177BD; [7C 55 9C, 05, 05]
-177BE; [7C 55 9E, 05, 05]
-177BF; [7C 55 A0, 05, 05]
-177C0; [7C 55 A2, 05, 05]
-177C1; [7C 55 A4, 05, 05]
-177C2; [7C 55 A6, 05, 05]
-177C3; [7C 55 A8, 05, 05]
-177C4; [7C 55 AA, 05, 05]
-177C5; [7C 55 AC, 05, 05]
-177C6; [7C 55 AE, 05, 05]
-177C7; [7C 55 B0, 05, 05]
-177C8; [7C 55 B2, 05, 05]
-177C9; [7C 55 B4, 05, 05]
-177CA; [7C 55 B6, 05, 05]
-177CB; [7C 55 B8, 05, 05]
-177CC; [7C 55 BA, 05, 05]
-177CD; [7C 55 BC, 05, 05]
-177CE; [7C 55 BE, 05, 05]
-177CF; [7C 55 C0, 05, 05]
-177D0; [7C 55 C2, 05, 05]
-177D1; [7C 55 C4, 05, 05]
-177D2; [7C 55 C6, 05, 05]
-177D3; [7C 55 C8, 05, 05]
-177D4; [7C 55 CA, 05, 05]
-177D5; [7C 55 CC, 05, 05]
-177D6; [7C 55 CE, 05, 05]
-177D7; [7C 55 D0, 05, 05]
-177D8; [7C 55 D2, 05, 05]
-177D9; [7C 55 D4, 05, 05]
-177DA; [7C 55 D6, 05, 05]
-177DB; [7C 55 D8, 05, 05]
-177DC; [7C 55 DA, 05, 05]
-177DD; [7C 55 DC, 05, 05]
-177DE; [7C 55 DE, 05, 05]
-177DF; [7C 55 E0, 05, 05]
-177E0; [7C 55 E2, 05, 05]
-177E1; [7C 55 E4, 05, 05]
-177E2; [7C 55 E6, 05, 05]
-177E3; [7C 55 E8, 05, 05]
-177E4; [7C 55 EA, 05, 05]
-177E5; [7C 55 EC, 05, 05]
-177E6; [7C 55 EE, 05, 05]
-177E7; [7C 55 F0, 05, 05]
-177E8; [7C 55 F2, 05, 05]
-177E9; [7C 55 F4, 05, 05]
-177EA; [7C 55 F6, 05, 05]
-177EB; [7C 55 F8, 05, 05]
-177EC; [7C 55 FA, 05, 05]
-177ED; [7C 55 FC, 05, 05]
-177EE; [7C 55 FE, 05, 05]
-177EF; [7C 56 02, 05, 05]
-177F0; [7C 56 04, 05, 05]
-177F1; [7C 56 06, 05, 05]
-177F2; [7C 56 08, 05, 05]
-177F3; [7C 56 0A, 05, 05]
-177F4; [7C 56 0C, 05, 05]
-177F5; [7C 56 0E, 05, 05]
-177F6; [7C 56 10, 05, 05]
-177F7; [7C 56 12, 05, 05]
-177F8; [7C 56 14, 05, 05]
-177F9; [7C 56 16, 05, 05]
-177FA; [7C 56 18, 05, 05]
-177FB; [7C 56 1A, 05, 05]
-177FC; [7C 56 1C, 05, 05]
-177FD; [7C 56 1E, 05, 05]
-177FE; [7C 56 20, 05, 05]
-177FF; [7C 56 22, 05, 05]
-17800; [7C 56 24, 05, 05]
-17801; [7C 56 26, 05, 05]
-17802; [7C 56 28, 05, 05]
-17803; [7C 56 2A, 05, 05]
-17804; [7C 56 2C, 05, 05]
-17805; [7C 56 2E, 05, 05]
-17806; [7C 56 30, 05, 05]
-17807; [7C 56 32, 05, 05]
-17808; [7C 56 34, 05, 05]
-17809; [7C 56 36, 05, 05]
-1780A; [7C 56 38, 05, 05]
-1780B; [7C 56 3A, 05, 05]
-1780C; [7C 56 3C, 05, 05]
-1780D; [7C 56 3E, 05, 05]
-1780E; [7C 56 40, 05, 05]
-1780F; [7C 56 42, 05, 05]
-17810; [7C 56 44, 05, 05]
-17811; [7C 56 46, 05, 05]
-17812; [7C 56 48, 05, 05]
-17813; [7C 56 4A, 05, 05]
-17814; [7C 56 4C, 05, 05]
-17815; [7C 56 4E, 05, 05]
-17816; [7C 56 50, 05, 05]
-17817; [7C 56 52, 05, 05]
-17818; [7C 56 54, 05, 05]
-17819; [7C 56 56, 05, 05]
-1781A; [7C 56 58, 05, 05]
-1781B; [7C 56 5A, 05, 05]
-1781C; [7C 56 5C, 05, 05]
-1781D; [7C 56 5E, 05, 05]
-1781E; [7C 56 60, 05, 05]
-1781F; [7C 56 62, 05, 05]
-17820; [7C 56 64, 05, 05]
-17821; [7C 56 66, 05, 05]
-17822; [7C 56 68, 05, 05]
-17823; [7C 56 6A, 05, 05]
-17824; [7C 56 6C, 05, 05]
-17825; [7C 56 6E, 05, 05]
-17826; [7C 56 70, 05, 05]
-17827; [7C 56 72, 05, 05]
-17828; [7C 56 74, 05, 05]
-17829; [7C 56 76, 05, 05]
-1782A; [7C 56 78, 05, 05]
-1782B; [7C 56 7A, 05, 05]
-1782C; [7C 56 7C, 05, 05]
-1782D; [7C 56 7E, 05, 05]
-1782E; [7C 56 80, 05, 05]
-1782F; [7C 56 82, 05, 05]
-17830; [7C 56 84, 05, 05]
-17831; [7C 56 86, 05, 05]
-17832; [7C 56 88, 05, 05]
-17833; [7C 56 8A, 05, 05]
-17834; [7C 56 8C, 05, 05]
-17835; [7C 56 8E, 05, 05]
-17836; [7C 56 90, 05, 05]
-17837; [7C 56 92, 05, 05]
-17838; [7C 56 94, 05, 05]
-17839; [7C 56 96, 05, 05]
-1783A; [7C 56 98, 05, 05]
-1783B; [7C 56 9A, 05, 05]
-1783C; [7C 56 9C, 05, 05]
-1783D; [7C 56 9E, 05, 05]
-1783E; [7C 56 A0, 05, 05]
-1783F; [7C 56 A2, 05, 05]
-17840; [7C 56 A4, 05, 05]
-17841; [7C 56 A6, 05, 05]
-17842; [7C 56 A8, 05, 05]
-17843; [7C 56 AA, 05, 05]
-17844; [7C 56 AC, 05, 05]
-17845; [7C 56 AE, 05, 05]
-17846; [7C 56 B0, 05, 05]
-17847; [7C 56 B2, 05, 05]
-17848; [7C 56 B4, 05, 05]
-17849; [7C 56 B6, 05, 05]
-1784A; [7C 56 B8, 05, 05]
-1784B; [7C 56 BA, 05, 05]
-1784C; [7C 56 BC, 05, 05]
-1784D; [7C 56 BE, 05, 05]
-1784E; [7C 56 C0, 05, 05]
-1784F; [7C 56 C2, 05, 05]
-17850; [7C 56 C4, 05, 05]
-17851; [7C 56 C6, 05, 05]
-17852; [7C 56 C8, 05, 05]
-17853; [7C 56 CA, 05, 05]
-17854; [7C 56 CC, 05, 05]
-17855; [7C 56 CE, 05, 05]
-17856; [7C 56 D0, 05, 05]
-17857; [7C 56 D2, 05, 05]
-17858; [7C 56 D4, 05, 05]
-17859; [7C 56 D6, 05, 05]
-1785A; [7C 56 D8, 05, 05]
-1785B; [7C 56 DA, 05, 05]
-1785C; [7C 56 DC, 05, 05]
-1785D; [7C 56 DE, 05, 05]
-1785E; [7C 56 E0, 05, 05]
-1785F; [7C 56 E2, 05, 05]
-17860; [7C 56 E4, 05, 05]
-17861; [7C 56 E6, 05, 05]
-17862; [7C 56 E8, 05, 05]
-17863; [7C 56 EA, 05, 05]
-17864; [7C 56 EC, 05, 05]
-17865; [7C 56 EE, 05, 05]
-17866; [7C 56 F0, 05, 05]
-17867; [7C 56 F2, 05, 05]
-17868; [7C 56 F4, 05, 05]
-17869; [7C 56 F6, 05, 05]
-1786A; [7C 56 F8, 05, 05]
-1786B; [7C 56 FA, 05, 05]
-1786C; [7C 56 FC, 05, 05]
-1786D; [7C 56 FE, 05, 05]
-1786E; [7C 57 02, 05, 05]
-1786F; [7C 57 04, 05, 05]
-17870; [7C 57 06, 05, 05]
-17871; [7C 57 08, 05, 05]
-17872; [7C 57 0A, 05, 05]
-17873; [7C 57 0C, 05, 05]
-17874; [7C 57 0E, 05, 05]
-17875; [7C 57 10, 05, 05]
-17876; [7C 57 12, 05, 05]
-17877; [7C 57 14, 05, 05]
-17878; [7C 57 16, 05, 05]
-17879; [7C 57 18, 05, 05]
-1787A; [7C 57 1A, 05, 05]
-1787B; [7C 57 1C, 05, 05]
-1787C; [7C 57 1E, 05, 05]
-1787D; [7C 57 20, 05, 05]
-1787E; [7C 57 22, 05, 05]
-1787F; [7C 57 24, 05, 05]
-17880; [7C 57 26, 05, 05]
-17881; [7C 57 28, 05, 05]
-17882; [7C 57 2A, 05, 05]
-17883; [7C 57 2C, 05, 05]
-17884; [7C 57 2E, 05, 05]
-17885; [7C 57 30, 05, 05]
-17886; [7C 57 32, 05, 05]
-17887; [7C 57 34, 05, 05]
-17888; [7C 57 36, 05, 05]
-17889; [7C 57 38, 05, 05]
-1788A; [7C 57 3A, 05, 05]
-1788B; [7C 57 3C, 05, 05]
-1788C; [7C 57 3E, 05, 05]
-1788D; [7C 57 40, 05, 05]
-1788E; [7C 57 42, 05, 05]
-1788F; [7C 57 44, 05, 05]
-17890; [7C 57 46, 05, 05]
-17891; [7C 57 48, 05, 05]
-17892; [7C 57 4A, 05, 05]
-17893; [7C 57 4C, 05, 05]
-17894; [7C 57 4E, 05, 05]
-17895; [7C 57 50, 05, 05]
-17896; [7C 57 52, 05, 05]
-17897; [7C 57 54, 05, 05]
-17898; [7C 57 56, 05, 05]
-17899; [7C 57 58, 05, 05]
-1789A; [7C 57 5A, 05, 05]
-1789B; [7C 57 5C, 05, 05]
-1789C; [7C 57 5E, 05, 05]
-1789D; [7C 57 60, 05, 05]
-1789E; [7C 57 62, 05, 05]
-1789F; [7C 57 64, 05, 05]
-178A0; [7C 57 66, 05, 05]
-178A1; [7C 57 68, 05, 05]
-178A2; [7C 57 6A, 05, 05]
-178A3; [7C 57 6C, 05, 05]
-178A4; [7C 57 6E, 05, 05]
-178A5; [7C 57 70, 05, 05]
-178A6; [7C 57 72, 05, 05]
-178A7; [7C 57 74, 05, 05]
-178A8; [7C 57 76, 05, 05]
-178A9; [7C 57 78, 05, 05]
-178AA; [7C 57 7A, 05, 05]
-178AB; [7C 57 7C, 05, 05]
-178AC; [7C 57 7E, 05, 05]
-178AD; [7C 57 80, 05, 05]
-178AE; [7C 57 82, 05, 05]
-178AF; [7C 57 84, 05, 05]
-178B0; [7C 57 86, 05, 05]
-178B1; [7C 57 88, 05, 05]
-178B2; [7C 57 8A, 05, 05]
-178B3; [7C 57 8C, 05, 05]
-178B4; [7C 57 8E, 05, 05]
-178B5; [7C 57 90, 05, 05]
-178B6; [7C 57 92, 05, 05]
-178B7; [7C 57 94, 05, 05]
-178B8; [7C 57 96, 05, 05]
-178B9; [7C 57 98, 05, 05]
-178BA; [7C 57 9A, 05, 05]
-178BB; [7C 57 9C, 05, 05]
-178BC; [7C 57 9E, 05, 05]
-178BD; [7C 57 A0, 05, 05]
-178BE; [7C 57 A2, 05, 05]
-178BF; [7C 57 A4, 05, 05]
-178C0; [7C 57 A6, 05, 05]
-178C1; [7C 57 A8, 05, 05]
-178C2; [7C 57 AA, 05, 05]
-178C3; [7C 57 AC, 05, 05]
-178C4; [7C 57 AE, 05, 05]
-178C5; [7C 57 B0, 05, 05]
-178C6; [7C 57 B2, 05, 05]
-178C7; [7C 57 B4, 05, 05]
-178C8; [7C 57 B6, 05, 05]
-178C9; [7C 57 B8, 05, 05]
-178CA; [7C 57 BA, 05, 05]
-178CB; [7C 57 BC, 05, 05]
-178CC; [7C 57 BE, 05, 05]
-178CD; [7C 57 C0, 05, 05]
-178CE; [7C 57 C2, 05, 05]
-178CF; [7C 57 C4, 05, 05]
-178D0; [7C 57 C6, 05, 05]
-178D1; [7C 57 C8, 05, 05]
-178D2; [7C 57 CA, 05, 05]
-178D3; [7C 57 CC, 05, 05]
-178D4; [7C 57 CE, 05, 05]
-178D5; [7C 57 D0, 05, 05]
-178D6; [7C 57 D2, 05, 05]
-178D7; [7C 57 D4, 05, 05]
-178D8; [7C 57 D6, 05, 05]
-178D9; [7C 57 D8, 05, 05]
-178DA; [7C 57 DA, 05, 05]
-178DB; [7C 57 DC, 05, 05]
-178DC; [7C 57 DE, 05, 05]
-178DD; [7C 57 E0, 05, 05]
-178DE; [7C 57 E2, 05, 05]
-178DF; [7C 57 E4, 05, 05]
-178E0; [7C 57 E6, 05, 05]
-178E1; [7C 57 E8, 05, 05]
-178E2; [7C 57 EA, 05, 05]
-178E3; [7C 57 EC, 05, 05]
-178E4; [7C 57 EE, 05, 05]
-178E5; [7C 57 F0, 05, 05]
-178E6; [7C 57 F2, 05, 05]
-178E7; [7C 57 F4, 05, 05]
-178E8; [7C 57 F6, 05, 05]
-178E9; [7C 57 F8, 05, 05]
-178EA; [7C 57 FA, 05, 05]
-178EB; [7C 57 FC, 05, 05]
-178EC; [7C 57 FE, 05, 05]
-178ED; [7C 58 02, 05, 05]
-178EE; [7C 58 04, 05, 05]
-178EF; [7C 58 06, 05, 05]
-178F0; [7C 58 08, 05, 05]
-178F1; [7C 58 0A, 05, 05]
-178F2; [7C 58 0C, 05, 05]
-178F3; [7C 58 0E, 05, 05]
-178F4; [7C 58 10, 05, 05]
-178F5; [7C 58 12, 05, 05]
-178F6; [7C 58 14, 05, 05]
-178F7; [7C 58 16, 05, 05]
-178F8; [7C 58 18, 05, 05]
-178F9; [7C 58 1A, 05, 05]
-178FA; [7C 58 1C, 05, 05]
-178FB; [7C 58 1E, 05, 05]
-178FC; [7C 58 20, 05, 05]
-178FD; [7C 58 22, 05, 05]
-178FE; [7C 58 24, 05, 05]
-178FF; [7C 58 26, 05, 05]
-17900; [7C 58 28, 05, 05]
-17901; [7C 58 2A, 05, 05]
-17902; [7C 58 2C, 05, 05]
-17903; [7C 58 2E, 05, 05]
-17904; [7C 58 30, 05, 05]
-17905; [7C 58 32, 05, 05]
-17906; [7C 58 34, 05, 05]
-17907; [7C 58 36, 05, 05]
-17908; [7C 58 38, 05, 05]
-17909; [7C 58 3A, 05, 05]
-1790A; [7C 58 3C, 05, 05]
-1790B; [7C 58 3E, 05, 05]
-1790C; [7C 58 40, 05, 05]
-1790D; [7C 58 42, 05, 05]
-1790E; [7C 58 44, 05, 05]
-1790F; [7C 58 46, 05, 05]
-17910; [7C 58 48, 05, 05]
-17911; [7C 58 4A, 05, 05]
-17912; [7C 58 4C, 05, 05]
-17913; [7C 58 4E, 05, 05]
-17914; [7C 58 50, 05, 05]
-17915; [7C 58 52, 05, 05]
-17916; [7C 58 54, 05, 05]
-17917; [7C 58 56, 05, 05]
-17918; [7C 58 58, 05, 05]
-17919; [7C 58 5A, 05, 05]
-1791A; [7C 58 5C, 05, 05]
-1791B; [7C 58 5E, 05, 05]
-1791C; [7C 58 60, 05, 05]
-1791D; [7C 58 62, 05, 05]
-1791E; [7C 58 64, 05, 05]
-1791F; [7C 58 66, 05, 05]
-17920; [7C 58 68, 05, 05]
-17921; [7C 58 6A, 05, 05]
-17922; [7C 58 6C, 05, 05]
-17923; [7C 58 6E, 05, 05]
-17924; [7C 58 70, 05, 05]
-17925; [7C 58 72, 05, 05]
-17926; [7C 58 74, 05, 05]
-17927; [7C 58 76, 05, 05]
-17928; [7C 58 78, 05, 05]
-17929; [7C 58 7A, 05, 05]
-1792A; [7C 58 7C, 05, 05]
-1792B; [7C 58 7E, 05, 05]
-1792C; [7C 58 80, 05, 05]
-1792D; [7C 58 82, 05, 05]
-1792E; [7C 58 84, 05, 05]
-1792F; [7C 58 86, 05, 05]
-17930; [7C 58 88, 05, 05]
-17931; [7C 58 8A, 05, 05]
-17932; [7C 58 8C, 05, 05]
-17933; [7C 58 8E, 05, 05]
-17934; [7C 58 90, 05, 05]
-17935; [7C 58 92, 05, 05]
-17936; [7C 58 94, 05, 05]
-17937; [7C 58 96, 05, 05]
-17938; [7C 58 98, 05, 05]
-17939; [7C 58 9A, 05, 05]
-1793A; [7C 58 9C, 05, 05]
-1793B; [7C 58 9E, 05, 05]
-1793C; [7C 58 A0, 05, 05]
-1793D; [7C 58 A2, 05, 05]
-1793E; [7C 58 A4, 05, 05]
-1793F; [7C 58 A6, 05, 05]
-17940; [7C 58 A8, 05, 05]
-17941; [7C 58 AA, 05, 05]
-17942; [7C 58 AC, 05, 05]
-17943; [7C 58 AE, 05, 05]
-17944; [7C 58 B0, 05, 05]
-17945; [7C 58 B2, 05, 05]
-17946; [7C 58 B4, 05, 05]
-17947; [7C 58 B6, 05, 05]
-17948; [7C 58 B8, 05, 05]
-17949; [7C 58 BA, 05, 05]
-1794A; [7C 58 BC, 05, 05]
-1794B; [7C 58 BE, 05, 05]
-1794C; [7C 58 C0, 05, 05]
-1794D; [7C 58 C2, 05, 05]
-1794E; [7C 58 C4, 05, 05]
-1794F; [7C 58 C6, 05, 05]
-17950; [7C 58 C8, 05, 05]
-17951; [7C 58 CA, 05, 05]
-17952; [7C 58 CC, 05, 05]
-17953; [7C 58 CE, 05, 05]
-17954; [7C 58 D0, 05, 05]
-17955; [7C 58 D2, 05, 05]
-17956; [7C 58 D4, 05, 05]
-17957; [7C 58 D6, 05, 05]
-17958; [7C 58 D8, 05, 05]
-17959; [7C 58 DA, 05, 05]
-1795A; [7C 58 DC, 05, 05]
-1795B; [7C 58 DE, 05, 05]
-1795C; [7C 58 E0, 05, 05]
-1795D; [7C 58 E2, 05, 05]
-1795E; [7C 58 E4, 05, 05]
-1795F; [7C 58 E6, 05, 05]
-17960; [7C 58 E8, 05, 05]
-17961; [7C 58 EA, 05, 05]
-17962; [7C 58 EC, 05, 05]
-17963; [7C 58 EE, 05, 05]
-17964; [7C 58 F0, 05, 05]
-17965; [7C 58 F2, 05, 05]
-17966; [7C 58 F4, 05, 05]
-17967; [7C 58 F6, 05, 05]
-17968; [7C 58 F8, 05, 05]
-17969; [7C 58 FA, 05, 05]
-1796A; [7C 58 FC, 05, 05]
-1796B; [7C 58 FE, 05, 05]
-1796C; [7C 59 02, 05, 05]
-1796D; [7C 59 04, 05, 05]
-1796E; [7C 59 06, 05, 05]
-1796F; [7C 59 08, 05, 05]
-17970; [7C 59 0A, 05, 05]
-17971; [7C 59 0C, 05, 05]
-17972; [7C 59 0E, 05, 05]
-17973; [7C 59 10, 05, 05]
-17974; [7C 59 12, 05, 05]
-17975; [7C 59 14, 05, 05]
-17976; [7C 59 16, 05, 05]
-17977; [7C 59 18, 05, 05]
-17978; [7C 59 1A, 05, 05]
-17979; [7C 59 1C, 05, 05]
-1797A; [7C 59 1E, 05, 05]
-1797B; [7C 59 20, 05, 05]
-1797C; [7C 59 22, 05, 05]
-1797D; [7C 59 24, 05, 05]
-1797E; [7C 59 26, 05, 05]
-1797F; [7C 59 28, 05, 05]
-17980; [7C 59 2A, 05, 05]
-17981; [7C 59 2C, 05, 05]
-17982; [7C 59 2E, 05, 05]
-17983; [7C 59 30, 05, 05]
-17984; [7C 59 32, 05, 05]
-17985; [7C 59 34, 05, 05]
-17986; [7C 59 36, 05, 05]
-17987; [7C 59 38, 05, 05]
-17988; [7C 59 3A, 05, 05]
-17989; [7C 59 3C, 05, 05]
-1798A; [7C 59 3E, 05, 05]
-1798B; [7C 59 40, 05, 05]
-1798C; [7C 59 42, 05, 05]
-1798D; [7C 59 44, 05, 05]
-1798E; [7C 59 46, 05, 05]
-1798F; [7C 59 48, 05, 05]
-17990; [7C 59 4A, 05, 05]
-17991; [7C 59 4C, 05, 05]
-17992; [7C 59 4E, 05, 05]
-17993; [7C 59 50, 05, 05]
-17994; [7C 59 52, 05, 05]
-17995; [7C 59 54, 05, 05]
-17996; [7C 59 56, 05, 05]
-17997; [7C 59 58, 05, 05]
-17998; [7C 59 5A, 05, 05]
-17999; [7C 59 5C, 05, 05]
-1799A; [7C 59 5E, 05, 05]
-1799B; [7C 59 60, 05, 05]
-1799C; [7C 59 62, 05, 05]
-1799D; [7C 59 64, 05, 05]
-1799E; [7C 59 66, 05, 05]
-1799F; [7C 59 68, 05, 05]
-179A0; [7C 59 6A, 05, 05]
-179A1; [7C 59 6C, 05, 05]
-179A2; [7C 59 6E, 05, 05]
-179A3; [7C 59 70, 05, 05]
-179A4; [7C 59 72, 05, 05]
-179A5; [7C 59 74, 05, 05]
-179A6; [7C 59 76, 05, 05]
-179A7; [7C 59 78, 05, 05]
-179A8; [7C 59 7A, 05, 05]
-179A9; [7C 59 7C, 05, 05]
-179AA; [7C 59 7E, 05, 05]
-179AB; [7C 59 80, 05, 05]
-179AC; [7C 59 82, 05, 05]
-179AD; [7C 59 84, 05, 05]
-179AE; [7C 59 86, 05, 05]
-179AF; [7C 59 88, 05, 05]
-179B0; [7C 59 8A, 05, 05]
-179B1; [7C 59 8C, 05, 05]
-179B2; [7C 59 8E, 05, 05]
-179B3; [7C 59 90, 05, 05]
-179B4; [7C 59 92, 05, 05]
-179B5; [7C 59 94, 05, 05]
-179B6; [7C 59 96, 05, 05]
-179B7; [7C 59 98, 05, 05]
-179B8; [7C 59 9A, 05, 05]
-179B9; [7C 59 9C, 05, 05]
-179BA; [7C 59 9E, 05, 05]
-179BB; [7C 59 A0, 05, 05]
-179BC; [7C 59 A2, 05, 05]
-179BD; [7C 59 A4, 05, 05]
-179BE; [7C 59 A6, 05, 05]
-179BF; [7C 59 A8, 05, 05]
-179C0; [7C 59 AA, 05, 05]
-179C1; [7C 59 AC, 05, 05]
-179C2; [7C 59 AE, 05, 05]
-179C3; [7C 59 B0, 05, 05]
-179C4; [7C 59 B2, 05, 05]
-179C5; [7C 59 B4, 05, 05]
-179C6; [7C 59 B6, 05, 05]
-179C7; [7C 59 B8, 05, 05]
-179C8; [7C 59 BA, 05, 05]
-179C9; [7C 59 BC, 05, 05]
-179CA; [7C 59 BE, 05, 05]
-179CB; [7C 59 C0, 05, 05]
-179CC; [7C 59 C2, 05, 05]
-179CD; [7C 59 C4, 05, 05]
-179CE; [7C 59 C6, 05, 05]
-179CF; [7C 59 C8, 05, 05]
-179D0; [7C 59 CA, 05, 05]
-179D1; [7C 59 CC, 05, 05]
-179D2; [7C 59 CE, 05, 05]
-179D3; [7C 59 D0, 05, 05]
-179D4; [7C 59 D2, 05, 05]
-179D5; [7C 59 D4, 05, 05]
-179D6; [7C 59 D6, 05, 05]
-179D7; [7C 59 D8, 05, 05]
-179D8; [7C 59 DA, 05, 05]
-179D9; [7C 59 DC, 05, 05]
-179DA; [7C 59 DE, 05, 05]
-179DB; [7C 59 E0, 05, 05]
-179DC; [7C 59 E2, 05, 05]
-179DD; [7C 59 E4, 05, 05]
-179DE; [7C 59 E6, 05, 05]
-179DF; [7C 59 E8, 05, 05]
-179E0; [7C 59 EA, 05, 05]
-179E1; [7C 59 EC, 05, 05]
-179E2; [7C 59 EE, 05, 05]
-179E3; [7C 59 F0, 05, 05]
-179E4; [7C 59 F2, 05, 05]
-179E5; [7C 59 F4, 05, 05]
-179E6; [7C 59 F6, 05, 05]
-179E7; [7C 59 F8, 05, 05]
-179E8; [7C 59 FA, 05, 05]
-179E9; [7C 59 FC, 05, 05]
-179EA; [7C 59 FE, 05, 05]
-179EB; [7C 5A 02, 05, 05]
-179EC; [7C 5A 04, 05, 05]
-179ED; [7C 5A 06, 05, 05]
-179EE; [7C 5A 08, 05, 05]
-179EF; [7C 5A 0A, 05, 05]
-179F0; [7C 5A 0C, 05, 05]
-179F1; [7C 5A 0E, 05, 05]
-179F2; [7C 5A 10, 05, 05]
-179F3; [7C 5A 12, 05, 05]
-179F4; [7C 5A 14, 05, 05]
-179F5; [7C 5A 16, 05, 05]
-179F6; [7C 5A 18, 05, 05]
-179F7; [7C 5A 1A, 05, 05]
-179F8; [7C 5A 1C, 05, 05]
-179F9; [7C 5A 1E, 05, 05]
-179FA; [7C 5A 20, 05, 05]
-179FB; [7C 5A 22, 05, 05]
-179FC; [7C 5A 24, 05, 05]
-179FD; [7C 5A 26, 05, 05]
-179FE; [7C 5A 28, 05, 05]
-179FF; [7C 5A 2A, 05, 05]
-17A00; [7C 5A 2C, 05, 05]
-17A01; [7C 5A 2E, 05, 05]
-17A02; [7C 5A 30, 05, 05]
-17A03; [7C 5A 32, 05, 05]
-17A04; [7C 5A 34, 05, 05]
-17A05; [7C 5A 36, 05, 05]
-17A06; [7C 5A 38, 05, 05]
-17A07; [7C 5A 3A, 05, 05]
-17A08; [7C 5A 3C, 05, 05]
-17A09; [7C 5A 3E, 05, 05]
-17A0A; [7C 5A 40, 05, 05]
-17A0B; [7C 5A 42, 05, 05]
-17A0C; [7C 5A 44, 05, 05]
-17A0D; [7C 5A 46, 05, 05]
-17A0E; [7C 5A 48, 05, 05]
-17A0F; [7C 5A 4A, 05, 05]
-17A10; [7C 5A 4C, 05, 05]
-17A11; [7C 5A 4E, 05, 05]
-17A12; [7C 5A 50, 05, 05]
-17A13; [7C 5A 52, 05, 05]
-17A14; [7C 5A 54, 05, 05]
-17A15; [7C 5A 56, 05, 05]
-17A16; [7C 5A 58, 05, 05]
-17A17; [7C 5A 5A, 05, 05]
-17A18; [7C 5A 5C, 05, 05]
-17A19; [7C 5A 5E, 05, 05]
-17A1A; [7C 5A 60, 05, 05]
-17A1B; [7C 5A 62, 05, 05]
-17A1C; [7C 5A 64, 05, 05]
-17A1D; [7C 5A 66, 05, 05]
-17A1E; [7C 5A 68, 05, 05]
-17A1F; [7C 5A 6A, 05, 05]
-17A20; [7C 5A 6C, 05, 05]
-17A21; [7C 5A 6E, 05, 05]
-17A22; [7C 5A 70, 05, 05]
-17A23; [7C 5A 72, 05, 05]
-17A24; [7C 5A 74, 05, 05]
-17A25; [7C 5A 76, 05, 05]
-17A26; [7C 5A 78, 05, 05]
-17A27; [7C 5A 7A, 05, 05]
-17A28; [7C 5A 7C, 05, 05]
-17A29; [7C 5A 7E, 05, 05]
-17A2A; [7C 5A 80, 05, 05]
-17A2B; [7C 5A 82, 05, 05]
-17A2C; [7C 5A 84, 05, 05]
-17A2D; [7C 5A 86, 05, 05]
-17A2E; [7C 5A 88, 05, 05]
-17A2F; [7C 5A 8A, 05, 05]
-17A30; [7C 5A 8C, 05, 05]
-17A31; [7C 5A 8E, 05, 05]
-17A32; [7C 5A 90, 05, 05]
-17A33; [7C 5A 92, 05, 05]
-17A34; [7C 5A 94, 05, 05]
-17A35; [7C 5A 96, 05, 05]
-17A36; [7C 5A 98, 05, 05]
-17A37; [7C 5A 9A, 05, 05]
-17A38; [7C 5A 9C, 05, 05]
-17A39; [7C 5A 9E, 05, 05]
-17A3A; [7C 5A A0, 05, 05]
-17A3B; [7C 5A A2, 05, 05]
-17A3C; [7C 5A A4, 05, 05]
-17A3D; [7C 5A A6, 05, 05]
-17A3E; [7C 5A A8, 05, 05]
-17A3F; [7C 5A AA, 05, 05]
-17A40; [7C 5A AC, 05, 05]
-17A41; [7C 5A AE, 05, 05]
-17A42; [7C 5A B0, 05, 05]
-17A43; [7C 5A B2, 05, 05]
-17A44; [7C 5A B4, 05, 05]
-17A45; [7C 5A B6, 05, 05]
-17A46; [7C 5A B8, 05, 05]
-17A47; [7C 5A BA, 05, 05]
-17A48; [7C 5A BC, 05, 05]
-17A49; [7C 5A BE, 05, 05]
-17A4A; [7C 5A C0, 05, 05]
-17A4B; [7C 5A C2, 05, 05]
-17A4C; [7C 5A C4, 05, 05]
-17A4D; [7C 5A C6, 05, 05]
-17A4E; [7C 5A C8, 05, 05]
-17A4F; [7C 5A CA, 05, 05]
-17A50; [7C 5A CC, 05, 05]
-17A51; [7C 5A CE, 05, 05]
-17A52; [7C 5A D0, 05, 05]
-17A53; [7C 5A D2, 05, 05]
-17A54; [7C 5A D4, 05, 05]
-17A55; [7C 5A D6, 05, 05]
-17A56; [7C 5A D8, 05, 05]
-17A57; [7C 5A DA, 05, 05]
-17A58; [7C 5A DC, 05, 05]
-17A59; [7C 5A DE, 05, 05]
-17A5A; [7C 5A E0, 05, 05]
-17A5B; [7C 5A E2, 05, 05]
-17A5C; [7C 5A E4, 05, 05]
-17A5D; [7C 5A E6, 05, 05]
-17A5E; [7C 5A E8, 05, 05]
-17A5F; [7C 5A EA, 05, 05]
-17A60; [7C 5A EC, 05, 05]
-17A61; [7C 5A EE, 05, 05]
-17A62; [7C 5A F0, 05, 05]
-17A63; [7C 5A F2, 05, 05]
-17A64; [7C 5A F4, 05, 05]
-17A65; [7C 5A F6, 05, 05]
-17A66; [7C 5A F8, 05, 05]
-17A67; [7C 5A FA, 05, 05]
-17A68; [7C 5A FC, 05, 05]
-17A69; [7C 5A FE, 05, 05]
-17A6A; [7C 5B 02, 05, 05]
-17A6B; [7C 5B 04, 05, 05]
-17A6C; [7C 5B 06, 05, 05]
-17A6D; [7C 5B 08, 05, 05]
-17A6E; [7C 5B 0A, 05, 05]
-17A6F; [7C 5B 0C, 05, 05]
-17A70; [7C 5B 0E, 05, 05]
-17A71; [7C 5B 10, 05, 05]
-17A72; [7C 5B 12, 05, 05]
-17A73; [7C 5B 14, 05, 05]
-17A74; [7C 5B 16, 05, 05]
-17A75; [7C 5B 18, 05, 05]
-17A76; [7C 5B 1A, 05, 05]
-17A77; [7C 5B 1C, 05, 05]
-17A78; [7C 5B 1E, 05, 05]
-17A79; [7C 5B 20, 05, 05]
-17A7A; [7C 5B 22, 05, 05]
-17A7B; [7C 5B 24, 05, 05]
-17A7C; [7C 5B 26, 05, 05]
-17A7D; [7C 5B 28, 05, 05]
-17A7E; [7C 5B 2A, 05, 05]
-17A7F; [7C 5B 2C, 05, 05]
-17A80; [7C 5B 2E, 05, 05]
-17A81; [7C 5B 30, 05, 05]
-17A82; [7C 5B 32, 05, 05]
-17A83; [7C 5B 34, 05, 05]
-17A84; [7C 5B 36, 05, 05]
-17A85; [7C 5B 38, 05, 05]
-17A86; [7C 5B 3A, 05, 05]
-17A87; [7C 5B 3C, 05, 05]
-17A88; [7C 5B 3E, 05, 05]
-17A89; [7C 5B 40, 05, 05]
-17A8A; [7C 5B 42, 05, 05]
-17A8B; [7C 5B 44, 05, 05]
-17A8C; [7C 5B 46, 05, 05]
-17A8D; [7C 5B 48, 05, 05]
-17A8E; [7C 5B 4A, 05, 05]
-17A8F; [7C 5B 4C, 05, 05]
-17A90; [7C 5B 4E, 05, 05]
-17A91; [7C 5B 50, 05, 05]
-17A92; [7C 5B 52, 05, 05]
-17A93; [7C 5B 54, 05, 05]
-17A94; [7C 5B 56, 05, 05]
-17A95; [7C 5B 58, 05, 05]
-17A96; [7C 5B 5A, 05, 05]
-17A97; [7C 5B 5C, 05, 05]
-17A98; [7C 5B 5E, 05, 05]
-17A99; [7C 5B 60, 05, 05]
-17A9A; [7C 5B 62, 05, 05]
-17A9B; [7C 5B 64, 05, 05]
-17A9C; [7C 5B 66, 05, 05]
-17A9D; [7C 5B 68, 05, 05]
-17A9E; [7C 5B 6A, 05, 05]
-17A9F; [7C 5B 6C, 05, 05]
-17AA0; [7C 5B 6E, 05, 05]
-17AA1; [7C 5B 70, 05, 05]
-17AA2; [7C 5B 72, 05, 05]
-17AA3; [7C 5B 74, 05, 05]
-17AA4; [7C 5B 76, 05, 05]
-17AA5; [7C 5B 78, 05, 05]
-17AA6; [7C 5B 7A, 05, 05]
-17AA7; [7C 5B 7C, 05, 05]
-17AA8; [7C 5B 7E, 05, 05]
-17AA9; [7C 5B 80, 05, 05]
-17AAA; [7C 5B 82, 05, 05]
-17AAB; [7C 5B 84, 05, 05]
-17AAC; [7C 5B 86, 05, 05]
-17AAD; [7C 5B 88, 05, 05]
-17AAE; [7C 5B 8A, 05, 05]
-17AAF; [7C 5B 8C, 05, 05]
-17AB0; [7C 5B 8E, 05, 05]
-17AB1; [7C 5B 90, 05, 05]
-17AB2; [7C 5B 92, 05, 05]
-17AB3; [7C 5B 94, 05, 05]
-17AB4; [7C 5B 96, 05, 05]
-17AB5; [7C 5B 98, 05, 05]
-17AB6; [7C 5B 9A, 05, 05]
-17AB7; [7C 5B 9C, 05, 05]
-17AB8; [7C 5B 9E, 05, 05]
-17AB9; [7C 5B A0, 05, 05]
-17ABA; [7C 5B A2, 05, 05]
-17ABB; [7C 5B A4, 05, 05]
-17ABC; [7C 5B A6, 05, 05]
-17ABD; [7C 5B A8, 05, 05]
-17ABE; [7C 5B AA, 05, 05]
-17ABF; [7C 5B AC, 05, 05]
-17AC0; [7C 5B AE, 05, 05]
-17AC1; [7C 5B B0, 05, 05]
-17AC2; [7C 5B B2, 05, 05]
-17AC3; [7C 5B B4, 05, 05]
-17AC4; [7C 5B B6, 05, 05]
-17AC5; [7C 5B B8, 05, 05]
-17AC6; [7C 5B BA, 05, 05]
-17AC7; [7C 5B BC, 05, 05]
-17AC8; [7C 5B BE, 05, 05]
-17AC9; [7C 5B C0, 05, 05]
-17ACA; [7C 5B C2, 05, 05]
-17ACB; [7C 5B C4, 05, 05]
-17ACC; [7C 5B C6, 05, 05]
-17ACD; [7C 5B C8, 05, 05]
-17ACE; [7C 5B CA, 05, 05]
-17ACF; [7C 5B CC, 05, 05]
-17AD0; [7C 5B CE, 05, 05]
-17AD1; [7C 5B D0, 05, 05]
-17AD2; [7C 5B D2, 05, 05]
-17AD3; [7C 5B D4, 05, 05]
-17AD4; [7C 5B D6, 05, 05]
-17AD5; [7C 5B D8, 05, 05]
-17AD6; [7C 5B DA, 05, 05]
-17AD7; [7C 5B DC, 05, 05]
-17AD8; [7C 5B DE, 05, 05]
-17AD9; [7C 5B E0, 05, 05]
-17ADA; [7C 5B E2, 05, 05]
-17ADB; [7C 5B E4, 05, 05]
-17ADC; [7C 5B E6, 05, 05]
-17ADD; [7C 5B E8, 05, 05]
-17ADE; [7C 5B EA, 05, 05]
-17ADF; [7C 5B EC, 05, 05]
-17AE0; [7C 5B EE, 05, 05]
-17AE1; [7C 5B F0, 05, 05]
-17AE2; [7C 5B F2, 05, 05]
-17AE3; [7C 5B F4, 05, 05]
-17AE4; [7C 5B F6, 05, 05]
-17AE5; [7C 5B F8, 05, 05]
-17AE6; [7C 5B FA, 05, 05]
-17AE7; [7C 5B FC, 05, 05]
-17AE8; [7C 5B FE, 05, 05]
-17AE9; [7C 5C 02, 05, 05]
-17AEA; [7C 5C 04, 05, 05]
-17AEB; [7C 5C 06, 05, 05]
-17AEC; [7C 5C 08, 05, 05]
-17AED; [7C 5C 0A, 05, 05]
-17AEE; [7C 5C 0C, 05, 05]
-17AEF; [7C 5C 0E, 05, 05]
-17AF0; [7C 5C 10, 05, 05]
-17AF1; [7C 5C 12, 05, 05]
-17AF2; [7C 5C 14, 05, 05]
-17AF3; [7C 5C 16, 05, 05]
-17AF4; [7C 5C 18, 05, 05]
-17AF5; [7C 5C 1A, 05, 05]
-17AF6; [7C 5C 1C, 05, 05]
-17AF7; [7C 5C 1E, 05, 05]
-17AF8; [7C 5C 20, 05, 05]
-17AF9; [7C 5C 22, 05, 05]
-17AFA; [7C 5C 24, 05, 05]
-17AFB; [7C 5C 26, 05, 05]
-17AFC; [7C 5C 28, 05, 05]
-17AFD; [7C 5C 2A, 05, 05]
-17AFE; [7C 5C 2C, 05, 05]
-17AFF; [7C 5C 2E, 05, 05]
-17B00; [7C 5C 30, 05, 05]
-17B01; [7C 5C 32, 05, 05]
-17B02; [7C 5C 34, 05, 05]
-17B03; [7C 5C 36, 05, 05]
-17B04; [7C 5C 38, 05, 05]
-17B05; [7C 5C 3A, 05, 05]
-17B06; [7C 5C 3C, 05, 05]
-17B07; [7C 5C 3E, 05, 05]
-17B08; [7C 5C 40, 05, 05]
-17B09; [7C 5C 42, 05, 05]
-17B0A; [7C 5C 44, 05, 05]
-17B0B; [7C 5C 46, 05, 05]
-17B0C; [7C 5C 48, 05, 05]
-17B0D; [7C 5C 4A, 05, 05]
-17B0E; [7C 5C 4C, 05, 05]
-17B0F; [7C 5C 4E, 05, 05]
-17B10; [7C 5C 50, 05, 05]
-17B11; [7C 5C 52, 05, 05]
-17B12; [7C 5C 54, 05, 05]
-17B13; [7C 5C 56, 05, 05]
-17B14; [7C 5C 58, 05, 05]
-17B15; [7C 5C 5A, 05, 05]
-17B16; [7C 5C 5C, 05, 05]
-17B17; [7C 5C 5E, 05, 05]
-17B18; [7C 5C 60, 05, 05]
-17B19; [7C 5C 62, 05, 05]
-17B1A; [7C 5C 64, 05, 05]
-17B1B; [7C 5C 66, 05, 05]
-17B1C; [7C 5C 68, 05, 05]
-17B1D; [7C 5C 6A, 05, 05]
-17B1E; [7C 5C 6C, 05, 05]
-17B1F; [7C 5C 6E, 05, 05]
-17B20; [7C 5C 70, 05, 05]
-17B21; [7C 5C 72, 05, 05]
-17B22; [7C 5C 74, 05, 05]
-17B23; [7C 5C 76, 05, 05]
-17B24; [7C 5C 78, 05, 05]
-17B25; [7C 5C 7A, 05, 05]
-17B26; [7C 5C 7C, 05, 05]
-17B27; [7C 5C 7E, 05, 05]
-17B28; [7C 5C 80, 05, 05]
-17B29; [7C 5C 82, 05, 05]
-17B2A; [7C 5C 84, 05, 05]
-17B2B; [7C 5C 86, 05, 05]
-17B2C; [7C 5C 88, 05, 05]
-17B2D; [7C 5C 8A, 05, 05]
-17B2E; [7C 5C 8C, 05, 05]
-17B2F; [7C 5C 8E, 05, 05]
-17B30; [7C 5C 90, 05, 05]
-17B31; [7C 5C 92, 05, 05]
-17B32; [7C 5C 94, 05, 05]
-17B33; [7C 5C 96, 05, 05]
-17B34; [7C 5C 98, 05, 05]
-17B35; [7C 5C 9A, 05, 05]
-17B36; [7C 5C 9C, 05, 05]
-17B37; [7C 5C 9E, 05, 05]
-17B38; [7C 5C A0, 05, 05]
-17B39; [7C 5C A2, 05, 05]
-17B3A; [7C 5C A4, 05, 05]
-17B3B; [7C 5C A6, 05, 05]
-17B3C; [7C 5C A8, 05, 05]
-17B3D; [7C 5C AA, 05, 05]
-17B3E; [7C 5C AC, 05, 05]
-17B3F; [7C 5C AE, 05, 05]
-17B40; [7C 5C B0, 05, 05]
-17B41; [7C 5C B2, 05, 05]
-17B42; [7C 5C B4, 05, 05]
-17B43; [7C 5C B6, 05, 05]
-17B44; [7C 5C B8, 05, 05]
-17B45; [7C 5C BA, 05, 05]
-17B46; [7C 5C BC, 05, 05]
-17B47; [7C 5C BE, 05, 05]
-17B48; [7C 5C C0, 05, 05]
-17B49; [7C 5C C2, 05, 05]
-17B4A; [7C 5C C4, 05, 05]
-17B4B; [7C 5C C6, 05, 05]
-17B4C; [7C 5C C8, 05, 05]
-17B4D; [7C 5C CA, 05, 05]
-17B4E; [7C 5C CC, 05, 05]
-17B4F; [7C 5C CE, 05, 05]
-17B50; [7C 5C D0, 05, 05]
-17B51; [7C 5C D2, 05, 05]
-17B52; [7C 5C D4, 05, 05]
-17B53; [7C 5C D6, 05, 05]
-17B54; [7C 5C D8, 05, 05]
-17B55; [7C 5C DA, 05, 05]
-17B56; [7C 5C DC, 05, 05]
-17B57; [7C 5C DE, 05, 05]
-17B58; [7C 5C E0, 05, 05]
-17B59; [7C 5C E2, 05, 05]
-17B5A; [7C 5C E4, 05, 05]
-17B5B; [7C 5C E6, 05, 05]
-17B5C; [7C 5C E8, 05, 05]
-17B5D; [7C 5C EA, 05, 05]
-17B5E; [7C 5C EC, 05, 05]
-17B5F; [7C 5C EE, 05, 05]
-17B60; [7C 5C F0, 05, 05]
-17B61; [7C 5C F2, 05, 05]
-17B62; [7C 5C F4, 05, 05]
-17B63; [7C 5C F6, 05, 05]
-17B64; [7C 5C F8, 05, 05]
-17B65; [7C 5C FA, 05, 05]
-17B66; [7C 5C FC, 05, 05]
-17B67; [7C 5C FE, 05, 05]
-17B68; [7C 5D 02, 05, 05]
-17B69; [7C 5D 04, 05, 05]
-17B6A; [7C 5D 06, 05, 05]
-17B6B; [7C 5D 08, 05, 05]
-17B6C; [7C 5D 0A, 05, 05]
-17B6D; [7C 5D 0C, 05, 05]
-17B6E; [7C 5D 0E, 05, 05]
-17B6F; [7C 5D 10, 05, 05]
-17B70; [7C 5D 12, 05, 05]
-17B71; [7C 5D 14, 05, 05]
-17B72; [7C 5D 16, 05, 05]
-17B73; [7C 5D 18, 05, 05]
-17B74; [7C 5D 1A, 05, 05]
-17B75; [7C 5D 1C, 05, 05]
-17B76; [7C 5D 1E, 05, 05]
-17B77; [7C 5D 20, 05, 05]
-17B78; [7C 5D 22, 05, 05]
-17B79; [7C 5D 24, 05, 05]
-17B7A; [7C 5D 26, 05, 05]
-17B7B; [7C 5D 28, 05, 05]
-17B7C; [7C 5D 2A, 05, 05]
-17B7D; [7C 5D 2C, 05, 05]
-17B7E; [7C 5D 2E, 05, 05]
-17B7F; [7C 5D 30, 05, 05]
-17B80; [7C 5D 32, 05, 05]
-17B81; [7C 5D 34, 05, 05]
-17B82; [7C 5D 36, 05, 05]
-17B83; [7C 5D 38, 05, 05]
-17B84; [7C 5D 3A, 05, 05]
-17B85; [7C 5D 3C, 05, 05]
-17B86; [7C 5D 3E, 05, 05]
-17B87; [7C 5D 40, 05, 05]
-17B88; [7C 5D 42, 05, 05]
-17B89; [7C 5D 44, 05, 05]
-17B8A; [7C 5D 46, 05, 05]
-17B8B; [7C 5D 48, 05, 05]
-17B8C; [7C 5D 4A, 05, 05]
-17B8D; [7C 5D 4C, 05, 05]
-17B8E; [7C 5D 4E, 05, 05]
-17B8F; [7C 5D 50, 05, 05]
-17B90; [7C 5D 52, 05, 05]
-17B91; [7C 5D 54, 05, 05]
-17B92; [7C 5D 56, 05, 05]
-17B93; [7C 5D 58, 05, 05]
-17B94; [7C 5D 5A, 05, 05]
-17B95; [7C 5D 5C, 05, 05]
-17B96; [7C 5D 5E, 05, 05]
-17B97; [7C 5D 60, 05, 05]
-17B98; [7C 5D 62, 05, 05]
-17B99; [7C 5D 64, 05, 05]
-17B9A; [7C 5D 66, 05, 05]
-17B9B; [7C 5D 68, 05, 05]
-17B9C; [7C 5D 6A, 05, 05]
-17B9D; [7C 5D 6C, 05, 05]
-17B9E; [7C 5D 6E, 05, 05]
-17B9F; [7C 5D 70, 05, 05]
-17BA0; [7C 5D 72, 05, 05]
-17BA1; [7C 5D 74, 05, 05]
-17BA2; [7C 5D 76, 05, 05]
-17BA3; [7C 5D 78, 05, 05]
-17BA4; [7C 5D 7A, 05, 05]
-17BA5; [7C 5D 7C, 05, 05]
-17BA6; [7C 5D 7E, 05, 05]
-17BA7; [7C 5D 80, 05, 05]
-17BA8; [7C 5D 82, 05, 05]
-17BA9; [7C 5D 84, 05, 05]
-17BAA; [7C 5D 86, 05, 05]
-17BAB; [7C 5D 88, 05, 05]
-17BAC; [7C 5D 8A, 05, 05]
-17BAD; [7C 5D 8C, 05, 05]
-17BAE; [7C 5D 8E, 05, 05]
-17BAF; [7C 5D 90, 05, 05]
-17BB0; [7C 5D 92, 05, 05]
-17BB1; [7C 5D 94, 05, 05]
-17BB2; [7C 5D 96, 05, 05]
-17BB3; [7C 5D 98, 05, 05]
-17BB4; [7C 5D 9A, 05, 05]
-17BB5; [7C 5D 9C, 05, 05]
-17BB6; [7C 5D 9E, 05, 05]
-17BB7; [7C 5D A0, 05, 05]
-17BB8; [7C 5D A2, 05, 05]
-17BB9; [7C 5D A4, 05, 05]
-17BBA; [7C 5D A6, 05, 05]
-17BBB; [7C 5D A8, 05, 05]
-17BBC; [7C 5D AA, 05, 05]
-17BBD; [7C 5D AC, 05, 05]
-17BBE; [7C 5D AE, 05, 05]
-17BBF; [7C 5D B0, 05, 05]
-17BC0; [7C 5D B2, 05, 05]
-17BC1; [7C 5D B4, 05, 05]
-17BC2; [7C 5D B6, 05, 05]
-17BC3; [7C 5D B8, 05, 05]
-17BC4; [7C 5D BA, 05, 05]
-17BC5; [7C 5D BC, 05, 05]
-17BC6; [7C 5D BE, 05, 05]
-17BC7; [7C 5D C0, 05, 05]
-17BC8; [7C 5D C2, 05, 05]
-17BC9; [7C 5D C4, 05, 05]
-17BCA; [7C 5D C6, 05, 05]
-17BCB; [7C 5D C8, 05, 05]
-17BCC; [7C 5D CA, 05, 05]
-17BCD; [7C 5D CC, 05, 05]
-17BCE; [7C 5D CE, 05, 05]
-17BCF; [7C 5D D0, 05, 05]
-17BD0; [7C 5D D2, 05, 05]
-17BD1; [7C 5D D4, 05, 05]
-17BD2; [7C 5D D6, 05, 05]
-17BD3; [7C 5D D8, 05, 05]
-17BD4; [7C 5D DA, 05, 05]
-17BD5; [7C 5D DC, 05, 05]
-17BD6; [7C 5D DE, 05, 05]
-17BD7; [7C 5D E0, 05, 05]
-17BD8; [7C 5D E2, 05, 05]
-17BD9; [7C 5D E4, 05, 05]
-17BDA; [7C 5D E6, 05, 05]
-17BDB; [7C 5D E8, 05, 05]
-17BDC; [7C 5D EA, 05, 05]
-17BDD; [7C 5D EC, 05, 05]
-17BDE; [7C 5D EE, 05, 05]
-17BDF; [7C 5D F0, 05, 05]
-17BE0; [7C 5D F2, 05, 05]
-17BE1; [7C 5D F4, 05, 05]
-17BE2; [7C 5D F6, 05, 05]
-17BE3; [7C 5D F8, 05, 05]
-17BE4; [7C 5D FA, 05, 05]
-17BE5; [7C 5D FC, 05, 05]
-17BE6; [7C 5D FE, 05, 05]
-17BE7; [7C 5E 02, 05, 05]
-17BE8; [7C 5E 04, 05, 05]
-17BE9; [7C 5E 06, 05, 05]
-17BEA; [7C 5E 08, 05, 05]
-17BEB; [7C 5E 0A, 05, 05]
-17BEC; [7C 5E 0C, 05, 05]
-17BED; [7C 5E 0E, 05, 05]
-17BEE; [7C 5E 10, 05, 05]
-17BEF; [7C 5E 12, 05, 05]
-17BF0; [7C 5E 14, 05, 05]
-17BF1; [7C 5E 16, 05, 05]
-17BF2; [7C 5E 18, 05, 05]
-17BF3; [7C 5E 1A, 05, 05]
-17BF4; [7C 5E 1C, 05, 05]
-17BF5; [7C 5E 1E, 05, 05]
-17BF6; [7C 5E 20, 05, 05]
-17BF7; [7C 5E 22, 05, 05]
-17BF8; [7C 5E 24, 05, 05]
-17BF9; [7C 5E 26, 05, 05]
-17BFA; [7C 5E 28, 05, 05]
-17BFB; [7C 5E 2A, 05, 05]
-17BFC; [7C 5E 2C, 05, 05]
-17BFD; [7C 5E 2E, 05, 05]
-17BFE; [7C 5E 30, 05, 05]
-17BFF; [7C 5E 32, 05, 05]
-17C00; [7C 5E 34, 05, 05]
-17C01; [7C 5E 36, 05, 05]
-17C02; [7C 5E 38, 05, 05]
-17C03; [7C 5E 3A, 05, 05]
-17C04; [7C 5E 3C, 05, 05]
-17C05; [7C 5E 3E, 05, 05]
-17C06; [7C 5E 40, 05, 05]
-17C07; [7C 5E 42, 05, 05]
-17C08; [7C 5E 44, 05, 05]
-17C09; [7C 5E 46, 05, 05]
-17C0A; [7C 5E 48, 05, 05]
-17C0B; [7C 5E 4A, 05, 05]
-17C0C; [7C 5E 4C, 05, 05]
-17C0D; [7C 5E 4E, 05, 05]
-17C0E; [7C 5E 50, 05, 05]
-17C0F; [7C 5E 52, 05, 05]
-17C10; [7C 5E 54, 05, 05]
-17C11; [7C 5E 56, 05, 05]
-17C12; [7C 5E 58, 05, 05]
-17C13; [7C 5E 5A, 05, 05]
-17C14; [7C 5E 5C, 05, 05]
-17C15; [7C 5E 5E, 05, 05]
-17C16; [7C 5E 60, 05, 05]
-17C17; [7C 5E 62, 05, 05]
-17C18; [7C 5E 64, 05, 05]
-17C19; [7C 5E 66, 05, 05]
-17C1A; [7C 5E 68, 05, 05]
-17C1B; [7C 5E 6A, 05, 05]
-17C1C; [7C 5E 6C, 05, 05]
-17C1D; [7C 5E 6E, 05, 05]
-17C1E; [7C 5E 70, 05, 05]
-17C1F; [7C 5E 72, 05, 05]
-17C20; [7C 5E 74, 05, 05]
-17C21; [7C 5E 76, 05, 05]
-17C22; [7C 5E 78, 05, 05]
-17C23; [7C 5E 7A, 05, 05]
-17C24; [7C 5E 7C, 05, 05]
-17C25; [7C 5E 7E, 05, 05]
-17C26; [7C 5E 80, 05, 05]
-17C27; [7C 5E 82, 05, 05]
-17C28; [7C 5E 84, 05, 05]
-17C29; [7C 5E 86, 05, 05]
-17C2A; [7C 5E 88, 05, 05]
-17C2B; [7C 5E 8A, 05, 05]
-17C2C; [7C 5E 8C, 05, 05]
-17C2D; [7C 5E 8E, 05, 05]
-17C2E; [7C 5E 90, 05, 05]
-17C2F; [7C 5E 92, 05, 05]
-17C30; [7C 5E 94, 05, 05]
-17C31; [7C 5E 96, 05, 05]
-17C32; [7C 5E 98, 05, 05]
-17C33; [7C 5E 9A, 05, 05]
-17C34; [7C 5E 9C, 05, 05]
-17C35; [7C 5E 9E, 05, 05]
-17C36; [7C 5E A0, 05, 05]
-17C37; [7C 5E A2, 05, 05]
-17C38; [7C 5E A4, 05, 05]
-17C39; [7C 5E A6, 05, 05]
-17C3A; [7C 5E A8, 05, 05]
-17C3B; [7C 5E AA, 05, 05]
-17C3C; [7C 5E AC, 05, 05]
-17C3D; [7C 5E AE, 05, 05]
-17C3E; [7C 5E B0, 05, 05]
-17C3F; [7C 5E B2, 05, 05]
-17C40; [7C 5E B4, 05, 05]
-17C41; [7C 5E B6, 05, 05]
-17C42; [7C 5E B8, 05, 05]
-17C43; [7C 5E BA, 05, 05]
-17C44; [7C 5E BC, 05, 05]
-17C45; [7C 5E BE, 05, 05]
-17C46; [7C 5E C0, 05, 05]
-17C47; [7C 5E C2, 05, 05]
-17C48; [7C 5E C4, 05, 05]
-17C49; [7C 5E C6, 05, 05]
-17C4A; [7C 5E C8, 05, 05]
-17C4B; [7C 5E CA, 05, 05]
-17C4C; [7C 5E CC, 05, 05]
-17C4D; [7C 5E CE, 05, 05]
-17C4E; [7C 5E D0, 05, 05]
-17C4F; [7C 5E D2, 05, 05]
-17C50; [7C 5E D4, 05, 05]
-17C51; [7C 5E D6, 05, 05]
-17C52; [7C 5E D8, 05, 05]
-17C53; [7C 5E DA, 05, 05]
-17C54; [7C 5E DC, 05, 05]
-17C55; [7C 5E DE, 05, 05]
-17C56; [7C 5E E0, 05, 05]
-17C57; [7C 5E E2, 05, 05]
-17C58; [7C 5E E4, 05, 05]
-17C59; [7C 5E E6, 05, 05]
-17C5A; [7C 5E E8, 05, 05]
-17C5B; [7C 5E EA, 05, 05]
-17C5C; [7C 5E EC, 05, 05]
-17C5D; [7C 5E EE, 05, 05]
-17C5E; [7C 5E F0, 05, 05]
-17C5F; [7C 5E F2, 05, 05]
-17C60; [7C 5E F4, 05, 05]
-17C61; [7C 5E F6, 05, 05]
-17C62; [7C 5E F8, 05, 05]
-17C63; [7C 5E FA, 05, 05]
-17C64; [7C 5E FC, 05, 05]
-17C65; [7C 5E FE, 05, 05]
-17C66; [7C 5F 02, 05, 05]
-17C67; [7C 5F 04, 05, 05]
-17C68; [7C 5F 06, 05, 05]
-17C69; [7C 5F 08, 05, 05]
-17C6A; [7C 5F 0A, 05, 05]
-17C6B; [7C 5F 0C, 05, 05]
-17C6C; [7C 5F 0E, 05, 05]
-17C6D; [7C 5F 10, 05, 05]
-17C6E; [7C 5F 12, 05, 05]
-17C6F; [7C 5F 14, 05, 05]
-17C70; [7C 5F 16, 05, 05]
-17C71; [7C 5F 18, 05, 05]
-17C72; [7C 5F 1A, 05, 05]
-17C73; [7C 5F 1C, 05, 05]
-17C74; [7C 5F 1E, 05, 05]
-17C75; [7C 5F 20, 05, 05]
-17C76; [7C 5F 22, 05, 05]
-17C77; [7C 5F 24, 05, 05]
-17C78; [7C 5F 26, 05, 05]
-17C79; [7C 5F 28, 05, 05]
-17C7A; [7C 5F 2A, 05, 05]
-17C7B; [7C 5F 2C, 05, 05]
-17C7C; [7C 5F 2E, 05, 05]
-17C7D; [7C 5F 30, 05, 05]
-17C7E; [7C 5F 32, 05, 05]
-17C7F; [7C 5F 34, 05, 05]
-17C80; [7C 5F 36, 05, 05]
-17C81; [7C 5F 38, 05, 05]
-17C82; [7C 5F 3A, 05, 05]
-17C83; [7C 5F 3C, 05, 05]
-17C84; [7C 5F 3E, 05, 05]
-17C85; [7C 5F 40, 05, 05]
-17C86; [7C 5F 42, 05, 05]
-17C87; [7C 5F 44, 05, 05]
-17C88; [7C 5F 46, 05, 05]
-17C89; [7C 5F 48, 05, 05]
-17C8A; [7C 5F 4A, 05, 05]
-17C8B; [7C 5F 4C, 05, 05]
-17C8C; [7C 5F 4E, 05, 05]
-17C8D; [7C 5F 50, 05, 05]
-17C8E; [7C 5F 52, 05, 05]
-17C8F; [7C 5F 54, 05, 05]
-17C90; [7C 5F 56, 05, 05]
-17C91; [7C 5F 58, 05, 05]
-17C92; [7C 5F 5A, 05, 05]
-17C93; [7C 5F 5C, 05, 05]
-17C94; [7C 5F 5E, 05, 05]
-17C95; [7C 5F 60, 05, 05]
-17C96; [7C 5F 62, 05, 05]
-17C97; [7C 5F 64, 05, 05]
-17C98; [7C 5F 66, 05, 05]
-17C99; [7C 5F 68, 05, 05]
-17C9A; [7C 5F 6A, 05, 05]
-17C9B; [7C 5F 6C, 05, 05]
-17C9C; [7C 5F 6E, 05, 05]
-17C9D; [7C 5F 70, 05, 05]
-17C9E; [7C 5F 72, 05, 05]
-17C9F; [7C 5F 74, 05, 05]
-17CA0; [7C 5F 76, 05, 05]
-17CA1; [7C 5F 78, 05, 05]
-17CA2; [7C 5F 7A, 05, 05]
-17CA3; [7C 5F 7C, 05, 05]
-17CA4; [7C 5F 7E, 05, 05]
-17CA5; [7C 5F 80, 05, 05]
-17CA6; [7C 5F 82, 05, 05]
-17CA7; [7C 5F 84, 05, 05]
-17CA8; [7C 5F 86, 05, 05]
-17CA9; [7C 5F 88, 05, 05]
-17CAA; [7C 5F 8A, 05, 05]
-17CAB; [7C 5F 8C, 05, 05]
-17CAC; [7C 5F 8E, 05, 05]
-17CAD; [7C 5F 90, 05, 05]
-17CAE; [7C 5F 92, 05, 05]
-17CAF; [7C 5F 94, 05, 05]
-17CB0; [7C 5F 96, 05, 05]
-17CB1; [7C 5F 98, 05, 05]
-17CB2; [7C 5F 9A, 05, 05]
-17CB3; [7C 5F 9C, 05, 05]
-17CB4; [7C 5F 9E, 05, 05]
-17CB5; [7C 5F A0, 05, 05]
-17CB6; [7C 5F A2, 05, 05]
-17CB7; [7C 5F A4, 05, 05]
-17CB8; [7C 5F A6, 05, 05]
-17CB9; [7C 5F A8, 05, 05]
-17CBA; [7C 5F AA, 05, 05]
-17CBB; [7C 5F AC, 05, 05]
-17CBC; [7C 5F AE, 05, 05]
-17CBD; [7C 5F B0, 05, 05]
-17CBE; [7C 5F B2, 05, 05]
-17CBF; [7C 5F B4, 05, 05]
-17CC0; [7C 5F B6, 05, 05]
-17CC1; [7C 5F B8, 05, 05]
-17CC2; [7C 5F BA, 05, 05]
-17CC3; [7C 5F BC, 05, 05]
-17CC4; [7C 5F BE, 05, 05]
-17CC5; [7C 5F C0, 05, 05]
-17CC6; [7C 5F C2, 05, 05]
-17CC7; [7C 5F C4, 05, 05]
-17CC8; [7C 5F C6, 05, 05]
-17CC9; [7C 5F C8, 05, 05]
-17CCA; [7C 5F CA, 05, 05]
-17CCB; [7C 5F CC, 05, 05]
-17CCC; [7C 5F CE, 05, 05]
-17CCD; [7C 5F D0, 05, 05]
-17CCE; [7C 5F D2, 05, 05]
-17CCF; [7C 5F D4, 05, 05]
-17CD0; [7C 5F D6, 05, 05]
-17CD1; [7C 5F D8, 05, 05]
-17CD2; [7C 5F DA, 05, 05]
-17CD3; [7C 5F DC, 05, 05]
-17CD4; [7C 5F DE, 05, 05]
-17CD5; [7C 5F E0, 05, 05]
-17CD6; [7C 5F E2, 05, 05]
-17CD7; [7C 5F E4, 05, 05]
-17CD8; [7C 5F E6, 05, 05]
-17CD9; [7C 5F E8, 05, 05]
-17CDA; [7C 5F EA, 05, 05]
-17CDB; [7C 5F EC, 05, 05]
-17CDC; [7C 5F EE, 05, 05]
-17CDD; [7C 5F F0, 05, 05]
-17CDE; [7C 5F F2, 05, 05]
-17CDF; [7C 5F F4, 05, 05]
-17CE0; [7C 5F F6, 05, 05]
-17CE1; [7C 5F F8, 05, 05]
-17CE2; [7C 5F FA, 05, 05]
-17CE3; [7C 5F FC, 05, 05]
-17CE4; [7C 5F FE, 05, 05]
-17CE5; [7C 60 02, 05, 05]
-17CE6; [7C 60 04, 05, 05]
-17CE7; [7C 60 06, 05, 05]
-17CE8; [7C 60 08, 05, 05]
-17CE9; [7C 60 0A, 05, 05]
-17CEA; [7C 60 0C, 05, 05]
-17CEB; [7C 60 0E, 05, 05]
-17CEC; [7C 60 10, 05, 05]
-17CED; [7C 60 12, 05, 05]
-17CEE; [7C 60 14, 05, 05]
-17CEF; [7C 60 16, 05, 05]
-17CF0; [7C 60 18, 05, 05]
-17CF1; [7C 60 1A, 05, 05]
-17CF2; [7C 60 1C, 05, 05]
-17CF3; [7C 60 1E, 05, 05]
-17CF4; [7C 60 20, 05, 05]
-17CF5; [7C 60 22, 05, 05]
-17CF6; [7C 60 24, 05, 05]
-17CF7; [7C 60 26, 05, 05]
-17CF8; [7C 60 28, 05, 05]
-17CF9; [7C 60 2A, 05, 05]
-17CFA; [7C 60 2C, 05, 05]
-17CFB; [7C 60 2E, 05, 05]
-17CFC; [7C 60 30, 05, 05]
-17CFD; [7C 60 32, 05, 05]
-17CFE; [7C 60 34, 05, 05]
-17CFF; [7C 60 36, 05, 05]
-17D00; [7C 60 38, 05, 05]
-17D01; [7C 60 3A, 05, 05]
-17D02; [7C 60 3C, 05, 05]
-17D03; [7C 60 3E, 05, 05]
-17D04; [7C 60 40, 05, 05]
-17D05; [7C 60 42, 05, 05]
-17D06; [7C 60 44, 05, 05]
-17D07; [7C 60 46, 05, 05]
-17D08; [7C 60 48, 05, 05]
-17D09; [7C 60 4A, 05, 05]
-17D0A; [7C 60 4C, 05, 05]
-17D0B; [7C 60 4E, 05, 05]
-17D0C; [7C 60 50, 05, 05]
-17D0D; [7C 60 52, 05, 05]
-17D0E; [7C 60 54, 05, 05]
-17D0F; [7C 60 56, 05, 05]
-17D10; [7C 60 58, 05, 05]
-17D11; [7C 60 5A, 05, 05]
-17D12; [7C 60 5C, 05, 05]
-17D13; [7C 60 5E, 05, 05]
-17D14; [7C 60 60, 05, 05]
-17D15; [7C 60 62, 05, 05]
-17D16; [7C 60 64, 05, 05]
-17D17; [7C 60 66, 05, 05]
-17D18; [7C 60 68, 05, 05]
-17D19; [7C 60 6A, 05, 05]
-17D1A; [7C 60 6C, 05, 05]
-17D1B; [7C 60 6E, 05, 05]
-17D1C; [7C 60 70, 05, 05]
-17D1D; [7C 60 72, 05, 05]
-17D1E; [7C 60 74, 05, 05]
-17D1F; [7C 60 76, 05, 05]
-17D20; [7C 60 78, 05, 05]
-17D21; [7C 60 7A, 05, 05]
-17D22; [7C 60 7C, 05, 05]
-17D23; [7C 60 7E, 05, 05]
-17D24; [7C 60 80, 05, 05]
-17D25; [7C 60 82, 05, 05]
-17D26; [7C 60 84, 05, 05]
-17D27; [7C 60 86, 05, 05]
-17D28; [7C 60 88, 05, 05]
-17D29; [7C 60 8A, 05, 05]
-17D2A; [7C 60 8C, 05, 05]
-17D2B; [7C 60 8E, 05, 05]
-17D2C; [7C 60 90, 05, 05]
-17D2D; [7C 60 92, 05, 05]
-17D2E; [7C 60 94, 05, 05]
-17D2F; [7C 60 96, 05, 05]
-17D30; [7C 60 98, 05, 05]
-17D31; [7C 60 9A, 05, 05]
-17D32; [7C 60 9C, 05, 05]
-17D33; [7C 60 9E, 05, 05]
-17D34; [7C 60 A0, 05, 05]
-17D35; [7C 60 A2, 05, 05]
-17D36; [7C 60 A4, 05, 05]
-17D37; [7C 60 A6, 05, 05]
-17D38; [7C 60 A8, 05, 05]
-17D39; [7C 60 AA, 05, 05]
-17D3A; [7C 60 AC, 05, 05]
-17D3B; [7C 60 AE, 05, 05]
-17D3C; [7C 60 B0, 05, 05]
-17D3D; [7C 60 B2, 05, 05]
-17D3E; [7C 60 B4, 05, 05]
-17D3F; [7C 60 B6, 05, 05]
-17D40; [7C 60 B8, 05, 05]
-17D41; [7C 60 BA, 05, 05]
-17D42; [7C 60 BC, 05, 05]
-17D43; [7C 60 BE, 05, 05]
-17D44; [7C 60 C0, 05, 05]
-17D45; [7C 60 C2, 05, 05]
-17D46; [7C 60 C4, 05, 05]
-17D47; [7C 60 C6, 05, 05]
-17D48; [7C 60 C8, 05, 05]
-17D49; [7C 60 CA, 05, 05]
-17D4A; [7C 60 CC, 05, 05]
-17D4B; [7C 60 CE, 05, 05]
-17D4C; [7C 60 D0, 05, 05]
-17D4D; [7C 60 D2, 05, 05]
-17D4E; [7C 60 D4, 05, 05]
-17D4F; [7C 60 D6, 05, 05]
-17D50; [7C 60 D8, 05, 05]
-17D51; [7C 60 DA, 05, 05]
-17D52; [7C 60 DC, 05, 05]
-17D53; [7C 60 DE, 05, 05]
-17D54; [7C 60 E0, 05, 05]
-17D55; [7C 60 E2, 05, 05]
-17D56; [7C 60 E4, 05, 05]
-17D57; [7C 60 E6, 05, 05]
-17D58; [7C 60 E8, 05, 05]
-17D59; [7C 60 EA, 05, 05]
-17D5A; [7C 60 EC, 05, 05]
-17D5B; [7C 60 EE, 05, 05]
-17D5C; [7C 60 F0, 05, 05]
-17D5D; [7C 60 F2, 05, 05]
-17D5E; [7C 60 F4, 05, 05]
-17D5F; [7C 60 F6, 05, 05]
-17D60; [7C 60 F8, 05, 05]
-17D61; [7C 60 FA, 05, 05]
-17D62; [7C 60 FC, 05, 05]
-17D63; [7C 60 FE, 05, 05]
-17D64; [7C 61 02, 05, 05]
-17D65; [7C 61 04, 05, 05]
-17D66; [7C 61 06, 05, 05]
-17D67; [7C 61 08, 05, 05]
-17D68; [7C 61 0A, 05, 05]
-17D69; [7C 61 0C, 05, 05]
-17D6A; [7C 61 0E, 05, 05]
-17D6B; [7C 61 10, 05, 05]
-17D6C; [7C 61 12, 05, 05]
-17D6D; [7C 61 14, 05, 05]
-17D6E; [7C 61 16, 05, 05]
-17D6F; [7C 61 18, 05, 05]
-17D70; [7C 61 1A, 05, 05]
-17D71; [7C 61 1C, 05, 05]
-17D72; [7C 61 1E, 05, 05]
-17D73; [7C 61 20, 05, 05]
-17D74; [7C 61 22, 05, 05]
-17D75; [7C 61 24, 05, 05]
-17D76; [7C 61 26, 05, 05]
-17D77; [7C 61 28, 05, 05]
-17D78; [7C 61 2A, 05, 05]
-17D79; [7C 61 2C, 05, 05]
-17D7A; [7C 61 2E, 05, 05]
-17D7B; [7C 61 30, 05, 05]
-17D7C; [7C 61 32, 05, 05]
-17D7D; [7C 61 34, 05, 05]
-17D7E; [7C 61 36, 05, 05]
-17D7F; [7C 61 38, 05, 05]
-17D80; [7C 61 3A, 05, 05]
-17D81; [7C 61 3C, 05, 05]
-17D82; [7C 61 3E, 05, 05]
-17D83; [7C 61 40, 05, 05]
-17D84; [7C 61 42, 05, 05]
-17D85; [7C 61 44, 05, 05]
-17D86; [7C 61 46, 05, 05]
-17D87; [7C 61 48, 05, 05]
-17D88; [7C 61 4A, 05, 05]
-17D89; [7C 61 4C, 05, 05]
-17D8A; [7C 61 4E, 05, 05]
-17D8B; [7C 61 50, 05, 05]
-17D8C; [7C 61 52, 05, 05]
-17D8D; [7C 61 54, 05, 05]
-17D8E; [7C 61 56, 05, 05]
-17D8F; [7C 61 58, 05, 05]
-17D90; [7C 61 5A, 05, 05]
-17D91; [7C 61 5C, 05, 05]
-17D92; [7C 61 5E, 05, 05]
-17D93; [7C 61 60, 05, 05]
-17D94; [7C 61 62, 05, 05]
-17D95; [7C 61 64, 05, 05]
-17D96; [7C 61 66, 05, 05]
-17D97; [7C 61 68, 05, 05]
-17D98; [7C 61 6A, 05, 05]
-17D99; [7C 61 6C, 05, 05]
-17D9A; [7C 61 6E, 05, 05]
-17D9B; [7C 61 70, 05, 05]
-17D9C; [7C 61 72, 05, 05]
-17D9D; [7C 61 74, 05, 05]
-17D9E; [7C 61 76, 05, 05]
-17D9F; [7C 61 78, 05, 05]
-17DA0; [7C 61 7A, 05, 05]
-17DA1; [7C 61 7C, 05, 05]
-17DA2; [7C 61 7E, 05, 05]
-17DA3; [7C 61 80, 05, 05]
-17DA4; [7C 61 82, 05, 05]
-17DA5; [7C 61 84, 05, 05]
-17DA6; [7C 61 86, 05, 05]
-17DA7; [7C 61 88, 05, 05]
-17DA8; [7C 61 8A, 05, 05]
-17DA9; [7C 61 8C, 05, 05]
-17DAA; [7C 61 8E, 05, 05]
-17DAB; [7C 61 90, 05, 05]
-17DAC; [7C 61 92, 05, 05]
-17DAD; [7C 61 94, 05, 05]
-17DAE; [7C 61 96, 05, 05]
-17DAF; [7C 61 98, 05, 05]
-17DB0; [7C 61 9A, 05, 05]
-17DB1; [7C 61 9C, 05, 05]
-17DB2; [7C 61 9E, 05, 05]
-17DB3; [7C 61 A0, 05, 05]
-17DB4; [7C 61 A2, 05, 05]
-17DB5; [7C 61 A4, 05, 05]
-17DB6; [7C 61 A6, 05, 05]
-17DB7; [7C 61 A8, 05, 05]
-17DB8; [7C 61 AA, 05, 05]
-17DB9; [7C 61 AC, 05, 05]
-17DBA; [7C 61 AE, 05, 05]
-17DBB; [7C 61 B0, 05, 05]
-17DBC; [7C 61 B2, 05, 05]
-17DBD; [7C 61 B4, 05, 05]
-17DBE; [7C 61 B6, 05, 05]
-17DBF; [7C 61 B8, 05, 05]
-17DC0; [7C 61 BA, 05, 05]
-17DC1; [7C 61 BC, 05, 05]
-17DC2; [7C 61 BE, 05, 05]
-17DC3; [7C 61 C0, 05, 05]
-17DC4; [7C 61 C2, 05, 05]
-17DC5; [7C 61 C4, 05, 05]
-17DC6; [7C 61 C6, 05, 05]
-17DC7; [7C 61 C8, 05, 05]
-17DC8; [7C 61 CA, 05, 05]
-17DC9; [7C 61 CC, 05, 05]
-17DCA; [7C 61 CE, 05, 05]
-17DCB; [7C 61 D0, 05, 05]
-17DCC; [7C 61 D2, 05, 05]
-17DCD; [7C 61 D4, 05, 05]
-17DCE; [7C 61 D6, 05, 05]
-17DCF; [7C 61 D8, 05, 05]
-17DD0; [7C 61 DA, 05, 05]
-17DD1; [7C 61 DC, 05, 05]
-17DD2; [7C 61 DE, 05, 05]
-17DD3; [7C 61 E0, 05, 05]
-17DD4; [7C 61 E2, 05, 05]
-17DD5; [7C 61 E4, 05, 05]
-17DD6; [7C 61 E6, 05, 05]
-17DD7; [7C 61 E8, 05, 05]
-17DD8; [7C 61 EA, 05, 05]
-17DD9; [7C 61 EC, 05, 05]
-17DDA; [7C 61 EE, 05, 05]
-17DDB; [7C 61 F0, 05, 05]
-17DDC; [7C 61 F2, 05, 05]
-17DDD; [7C 61 F4, 05, 05]
-17DDE; [7C 61 F6, 05, 05]
-17DDF; [7C 61 F8, 05, 05]
-17DE0; [7C 61 FA, 05, 05]
-17DE1; [7C 61 FC, 05, 05]
-17DE2; [7C 61 FE, 05, 05]
-17DE3; [7C 62 02, 05, 05]
-17DE4; [7C 62 04, 05, 05]
-17DE5; [7C 62 06, 05, 05]
-17DE6; [7C 62 08, 05, 05]
-17DE7; [7C 62 0A, 05, 05]
-17DE8; [7C 62 0C, 05, 05]
-17DE9; [7C 62 0E, 05, 05]
-17DEA; [7C 62 10, 05, 05]
-17DEB; [7C 62 12, 05, 05]
-17DEC; [7C 62 14, 05, 05]
-17DED; [7C 62 16, 05, 05]
-17DEE; [7C 62 18, 05, 05]
-17DEF; [7C 62 1A, 05, 05]
-17DF0; [7C 62 1C, 05, 05]
-17DF1; [7C 62 1E, 05, 05]
-17DF2; [7C 62 20, 05, 05]
-17DF3; [7C 62 22, 05, 05]
-17DF4; [7C 62 24, 05, 05]
-17DF5; [7C 62 26, 05, 05]
-17DF6; [7C 62 28, 05, 05]
-17DF7; [7C 62 2A, 05, 05]
-17DF8; [7C 62 2C, 05, 05]
-17DF9; [7C 62 2E, 05, 05]
-17DFA; [7C 62 30, 05, 05]
-17DFB; [7C 62 32, 05, 05]
-17DFC; [7C 62 34, 05, 05]
-17DFD; [7C 62 36, 05, 05]
-17DFE; [7C 62 38, 05, 05]
-17DFF; [7C 62 3A, 05, 05]
-17E00; [7C 62 3C, 05, 05]
-17E01; [7C 62 3E, 05, 05]
-17E02; [7C 62 40, 05, 05]
-17E03; [7C 62 42, 05, 05]
-17E04; [7C 62 44, 05, 05]
-17E05; [7C 62 46, 05, 05]
-17E06; [7C 62 48, 05, 05]
-17E07; [7C 62 4A, 05, 05]
-17E08; [7C 62 4C, 05, 05]
-17E09; [7C 62 4E, 05, 05]
-17E0A; [7C 62 50, 05, 05]
-17E0B; [7C 62 52, 05, 05]
-17E0C; [7C 62 54, 05, 05]
-17E0D; [7C 62 56, 05, 05]
-17E0E; [7C 62 58, 05, 05]
-17E0F; [7C 62 5A, 05, 05]
-17E10; [7C 62 5C, 05, 05]
-17E11; [7C 62 5E, 05, 05]
-17E12; [7C 62 60, 05, 05]
-17E13; [7C 62 62, 05, 05]
-17E14; [7C 62 64, 05, 05]
-17E15; [7C 62 66, 05, 05]
-17E16; [7C 62 68, 05, 05]
-17E17; [7C 62 6A, 05, 05]
-17E18; [7C 62 6C, 05, 05]
-17E19; [7C 62 6E, 05, 05]
-17E1A; [7C 62 70, 05, 05]
-17E1B; [7C 62 72, 05, 05]
-17E1C; [7C 62 74, 05, 05]
-17E1D; [7C 62 76, 05, 05]
-17E1E; [7C 62 78, 05, 05]
-17E1F; [7C 62 7A, 05, 05]
-17E20; [7C 62 7C, 05, 05]
-17E21; [7C 62 7E, 05, 05]
-17E22; [7C 62 80, 05, 05]
-17E23; [7C 62 82, 05, 05]
-17E24; [7C 62 84, 05, 05]
-17E25; [7C 62 86, 05, 05]
-17E26; [7C 62 88, 05, 05]
-17E27; [7C 62 8A, 05, 05]
-17E28; [7C 62 8C, 05, 05]
-17E29; [7C 62 8E, 05, 05]
-17E2A; [7C 62 90, 05, 05]
-17E2B; [7C 62 92, 05, 05]
-17E2C; [7C 62 94, 05, 05]
-17E2D; [7C 62 96, 05, 05]
-17E2E; [7C 62 98, 05, 05]
-17E2F; [7C 62 9A, 05, 05]
-17E30; [7C 62 9C, 05, 05]
-17E31; [7C 62 9E, 05, 05]
-17E32; [7C 62 A0, 05, 05]
-17E33; [7C 62 A2, 05, 05]
-17E34; [7C 62 A4, 05, 05]
-17E35; [7C 62 A6, 05, 05]
-17E36; [7C 62 A8, 05, 05]
-17E37; [7C 62 AA, 05, 05]
-17E38; [7C 62 AC, 05, 05]
-17E39; [7C 62 AE, 05, 05]
-17E3A; [7C 62 B0, 05, 05]
-17E3B; [7C 62 B2, 05, 05]
-17E3C; [7C 62 B4, 05, 05]
-17E3D; [7C 62 B6, 05, 05]
-17E3E; [7C 62 B8, 05, 05]
-17E3F; [7C 62 BA, 05, 05]
-17E40; [7C 62 BC, 05, 05]
-17E41; [7C 62 BE, 05, 05]
-17E42; [7C 62 C0, 05, 05]
-17E43; [7C 62 C2, 05, 05]
-17E44; [7C 62 C4, 05, 05]
-17E45; [7C 62 C6, 05, 05]
-17E46; [7C 62 C8, 05, 05]
-17E47; [7C 62 CA, 05, 05]
-17E48; [7C 62 CC, 05, 05]
-17E49; [7C 62 CE, 05, 05]
-17E4A; [7C 62 D0, 05, 05]
-17E4B; [7C 62 D2, 05, 05]
-17E4C; [7C 62 D4, 05, 05]
-17E4D; [7C 62 D6, 05, 05]
-17E4E; [7C 62 D8, 05, 05]
-17E4F; [7C 62 DA, 05, 05]
-17E50; [7C 62 DC, 05, 05]
-17E51; [7C 62 DE, 05, 05]
-17E52; [7C 62 E0, 05, 05]
-17E53; [7C 62 E2, 05, 05]
-17E54; [7C 62 E4, 05, 05]
-17E55; [7C 62 E6, 05, 05]
-17E56; [7C 62 E8, 05, 05]
-17E57; [7C 62 EA, 05, 05]
-17E58; [7C 62 EC, 05, 05]
-17E59; [7C 62 EE, 05, 05]
-17E5A; [7C 62 F0, 05, 05]
-17E5B; [7C 62 F2, 05, 05]
-17E5C; [7C 62 F4, 05, 05]
-17E5D; [7C 62 F6, 05, 05]
-17E5E; [7C 62 F8, 05, 05]
-17E5F; [7C 62 FA, 05, 05]
-17E60; [7C 62 FC, 05, 05]
-17E61; [7C 62 FE, 05, 05]
-17E62; [7C 63 02, 05, 05]
-17E63; [7C 63 04, 05, 05]
-17E64; [7C 63 06, 05, 05]
-17E65; [7C 63 08, 05, 05]
-17E66; [7C 63 0A, 05, 05]
-17E67; [7C 63 0C, 05, 05]
-17E68; [7C 63 0E, 05, 05]
-17E69; [7C 63 10, 05, 05]
-17E6A; [7C 63 12, 05, 05]
-17E6B; [7C 63 14, 05, 05]
-17E6C; [7C 63 16, 05, 05]
-17E6D; [7C 63 18, 05, 05]
-17E6E; [7C 63 1A, 05, 05]
-17E6F; [7C 63 1C, 05, 05]
-17E70; [7C 63 1E, 05, 05]
-17E71; [7C 63 20, 05, 05]
-17E72; [7C 63 22, 05, 05]
-17E73; [7C 63 24, 05, 05]
-17E74; [7C 63 26, 05, 05]
-17E75; [7C 63 28, 05, 05]
-17E76; [7C 63 2A, 05, 05]
-17E77; [7C 63 2C, 05, 05]
-17E78; [7C 63 2E, 05, 05]
-17E79; [7C 63 30, 05, 05]
-17E7A; [7C 63 32, 05, 05]
-17E7B; [7C 63 34, 05, 05]
-17E7C; [7C 63 36, 05, 05]
-17E7D; [7C 63 38, 05, 05]
-17E7E; [7C 63 3A, 05, 05]
-17E7F; [7C 63 3C, 05, 05]
-17E80; [7C 63 3E, 05, 05]
-17E81; [7C 63 40, 05, 05]
-17E82; [7C 63 42, 05, 05]
-17E83; [7C 63 44, 05, 05]
-17E84; [7C 63 46, 05, 05]
-17E85; [7C 63 48, 05, 05]
-17E86; [7C 63 4A, 05, 05]
-17E87; [7C 63 4C, 05, 05]
-17E88; [7C 63 4E, 05, 05]
-17E89; [7C 63 50, 05, 05]
-17E8A; [7C 63 52, 05, 05]
-17E8B; [7C 63 54, 05, 05]
-17E8C; [7C 63 56, 05, 05]
-17E8D; [7C 63 58, 05, 05]
-17E8E; [7C 63 5A, 05, 05]
-17E8F; [7C 63 5C, 05, 05]
-17E90; [7C 63 5E, 05, 05]
-17E91; [7C 63 60, 05, 05]
-17E92; [7C 63 62, 05, 05]
-17E93; [7C 63 64, 05, 05]
-17E94; [7C 63 66, 05, 05]
-17E95; [7C 63 68, 05, 05]
-17E96; [7C 63 6A, 05, 05]
-17E97; [7C 63 6C, 05, 05]
-17E98; [7C 63 6E, 05, 05]
-17E99; [7C 63 70, 05, 05]
-17E9A; [7C 63 72, 05, 05]
-17E9B; [7C 63 74, 05, 05]
-17E9C; [7C 63 76, 05, 05]
-17E9D; [7C 63 78, 05, 05]
-17E9E; [7C 63 7A, 05, 05]
-17E9F; [7C 63 7C, 05, 05]
-17EA0; [7C 63 7E, 05, 05]
-17EA1; [7C 63 80, 05, 05]
-17EA2; [7C 63 82, 05, 05]
-17EA3; [7C 63 84, 05, 05]
-17EA4; [7C 63 86, 05, 05]
-17EA5; [7C 63 88, 05, 05]
-17EA6; [7C 63 8A, 05, 05]
-17EA7; [7C 63 8C, 05, 05]
-17EA8; [7C 63 8E, 05, 05]
-17EA9; [7C 63 90, 05, 05]
-17EAA; [7C 63 92, 05, 05]
-17EAB; [7C 63 94, 05, 05]
-17EAC; [7C 63 96, 05, 05]
-17EAD; [7C 63 98, 05, 05]
-17EAE; [7C 63 9A, 05, 05]
-17EAF; [7C 63 9C, 05, 05]
-17EB0; [7C 63 9E, 05, 05]
-17EB1; [7C 63 A0, 05, 05]
-17EB2; [7C 63 A2, 05, 05]
-17EB3; [7C 63 A4, 05, 05]
-17EB4; [7C 63 A6, 05, 05]
-17EB5; [7C 63 A8, 05, 05]
-17EB6; [7C 63 AA, 05, 05]
-17EB7; [7C 63 AC, 05, 05]
-17EB8; [7C 63 AE, 05, 05]
-17EB9; [7C 63 B0, 05, 05]
-17EBA; [7C 63 B2, 05, 05]
-17EBB; [7C 63 B4, 05, 05]
-17EBC; [7C 63 B6, 05, 05]
-17EBD; [7C 63 B8, 05, 05]
-17EBE; [7C 63 BA, 05, 05]
-17EBF; [7C 63 BC, 05, 05]
-17EC0; [7C 63 BE, 05, 05]
-17EC1; [7C 63 C0, 05, 05]
-17EC2; [7C 63 C2, 05, 05]
-17EC3; [7C 63 C4, 05, 05]
-17EC4; [7C 63 C6, 05, 05]
-17EC5; [7C 63 C8, 05, 05]
-17EC6; [7C 63 CA, 05, 05]
-17EC7; [7C 63 CC, 05, 05]
-17EC8; [7C 63 CE, 05, 05]
-17EC9; [7C 63 D0, 05, 05]
-17ECA; [7C 63 D2, 05, 05]
-17ECB; [7C 63 D4, 05, 05]
-17ECC; [7C 63 D6, 05, 05]
-17ECD; [7C 63 D8, 05, 05]
-17ECE; [7C 63 DA, 05, 05]
-17ECF; [7C 63 DC, 05, 05]
-17ED0; [7C 63 DE, 05, 05]
-17ED1; [7C 63 E0, 05, 05]
-17ED2; [7C 63 E2, 05, 05]
-17ED3; [7C 63 E4, 05, 05]
-17ED4; [7C 63 E6, 05, 05]
-17ED5; [7C 63 E8, 05, 05]
-17ED6; [7C 63 EA, 05, 05]
-17ED7; [7C 63 EC, 05, 05]
-17ED8; [7C 63 EE, 05, 05]
-17ED9; [7C 63 F0, 05, 05]
-17EDA; [7C 63 F2, 05, 05]
-17EDB; [7C 63 F4, 05, 05]
-17EDC; [7C 63 F6, 05, 05]
-17EDD; [7C 63 F8, 05, 05]
-17EDE; [7C 63 FA, 05, 05]
-17EDF; [7C 63 FC, 05, 05]
-17EE0; [7C 63 FE, 05, 05]
-17EE1; [7C 64 02, 05, 05]
-17EE2; [7C 64 04, 05, 05]
-17EE3; [7C 64 06, 05, 05]
-17EE4; [7C 64 08, 05, 05]
-17EE5; [7C 64 0A, 05, 05]
-17EE6; [7C 64 0C, 05, 05]
-17EE7; [7C 64 0E, 05, 05]
-17EE8; [7C 64 10, 05, 05]
-17EE9; [7C 64 12, 05, 05]
-17EEA; [7C 64 14, 05, 05]
-17EEB; [7C 64 16, 05, 05]
-17EEC; [7C 64 18, 05, 05]
-17EED; [7C 64 1A, 05, 05]
-17EEE; [7C 64 1C, 05, 05]
-17EEF; [7C 64 1E, 05, 05]
-17EF0; [7C 64 20, 05, 05]
-17EF1; [7C 64 22, 05, 05]
-17EF2; [7C 64 24, 05, 05]
-17EF3; [7C 64 26, 05, 05]
-17EF4; [7C 64 28, 05, 05]
-17EF5; [7C 64 2A, 05, 05]
-17EF6; [7C 64 2C, 05, 05]
-17EF7; [7C 64 2E, 05, 05]
-17EF8; [7C 64 30, 05, 05]
-17EF9; [7C 64 32, 05, 05]
-17EFA; [7C 64 34, 05, 05]
-17EFB; [7C 64 36, 05, 05]
-17EFC; [7C 64 38, 05, 05]
-17EFD; [7C 64 3A, 05, 05]
-17EFE; [7C 64 3C, 05, 05]
-17EFF; [7C 64 3E, 05, 05]
-17F00; [7C 64 40, 05, 05]
-17F01; [7C 64 42, 05, 05]
-17F02; [7C 64 44, 05, 05]
-17F03; [7C 64 46, 05, 05]
-17F04; [7C 64 48, 05, 05]
-17F05; [7C 64 4A, 05, 05]
-17F06; [7C 64 4C, 05, 05]
-17F07; [7C 64 4E, 05, 05]
-17F08; [7C 64 50, 05, 05]
-17F09; [7C 64 52, 05, 05]
-17F0A; [7C 64 54, 05, 05]
-17F0B; [7C 64 56, 05, 05]
-17F0C; [7C 64 58, 05, 05]
-17F0D; [7C 64 5A, 05, 05]
-17F0E; [7C 64 5C, 05, 05]
-17F0F; [7C 64 5E, 05, 05]
-17F10; [7C 64 60, 05, 05]
-17F11; [7C 64 62, 05, 05]
-17F12; [7C 64 64, 05, 05]
-17F13; [7C 64 66, 05, 05]
-17F14; [7C 64 68, 05, 05]
-17F15; [7C 64 6A, 05, 05]
-17F16; [7C 64 6C, 05, 05]
-17F17; [7C 64 6E, 05, 05]
-17F18; [7C 64 70, 05, 05]
-17F19; [7C 64 72, 05, 05]
-17F1A; [7C 64 74, 05, 05]
-17F1B; [7C 64 76, 05, 05]
-17F1C; [7C 64 78, 05, 05]
-17F1D; [7C 64 7A, 05, 05]
-17F1E; [7C 64 7C, 05, 05]
-17F1F; [7C 64 7E, 05, 05]
-17F20; [7C 64 80, 05, 05]
-17F21; [7C 64 82, 05, 05]
-17F22; [7C 64 84, 05, 05]
-17F23; [7C 64 86, 05, 05]
-17F24; [7C 64 88, 05, 05]
-17F25; [7C 64 8A, 05, 05]
-17F26; [7C 64 8C, 05, 05]
-17F27; [7C 64 8E, 05, 05]
-17F28; [7C 64 90, 05, 05]
-17F29; [7C 64 92, 05, 05]
-17F2A; [7C 64 94, 05, 05]
-17F2B; [7C 64 96, 05, 05]
-17F2C; [7C 64 98, 05, 05]
-17F2D; [7C 64 9A, 05, 05]
-17F2E; [7C 64 9C, 05, 05]
-17F2F; [7C 64 9E, 05, 05]
-17F30; [7C 64 A0, 05, 05]
-17F31; [7C 64 A2, 05, 05]
-17F32; [7C 64 A4, 05, 05]
-17F33; [7C 64 A6, 05, 05]
-17F34; [7C 64 A8, 05, 05]
-17F35; [7C 64 AA, 05, 05]
-17F36; [7C 64 AC, 05, 05]
-17F37; [7C 64 AE, 05, 05]
-17F38; [7C 64 B0, 05, 05]
-17F39; [7C 64 B2, 05, 05]
-17F3A; [7C 64 B4, 05, 05]
-17F3B; [7C 64 B6, 05, 05]
-17F3C; [7C 64 B8, 05, 05]
-17F3D; [7C 64 BA, 05, 05]
-17F3E; [7C 64 BC, 05, 05]
-17F3F; [7C 64 BE, 05, 05]
-17F40; [7C 64 C0, 05, 05]
-17F41; [7C 64 C2, 05, 05]
-17F42; [7C 64 C4, 05, 05]
-17F43; [7C 64 C6, 05, 05]
-17F44; [7C 64 C8, 05, 05]
-17F45; [7C 64 CA, 05, 05]
-17F46; [7C 64 CC, 05, 05]
-17F47; [7C 64 CE, 05, 05]
-17F48; [7C 64 D0, 05, 05]
-17F49; [7C 64 D2, 05, 05]
-17F4A; [7C 64 D4, 05, 05]
-17F4B; [7C 64 D6, 05, 05]
-17F4C; [7C 64 D8, 05, 05]
-17F4D; [7C 64 DA, 05, 05]
-17F4E; [7C 64 DC, 05, 05]
-17F4F; [7C 64 DE, 05, 05]
-17F50; [7C 64 E0, 05, 05]
-17F51; [7C 64 E2, 05, 05]
-17F52; [7C 64 E4, 05, 05]
-17F53; [7C 64 E6, 05, 05]
-17F54; [7C 64 E8, 05, 05]
-17F55; [7C 64 EA, 05, 05]
-17F56; [7C 64 EC, 05, 05]
-17F57; [7C 64 EE, 05, 05]
-17F58; [7C 64 F0, 05, 05]
-17F59; [7C 64 F2, 05, 05]
-17F5A; [7C 64 F4, 05, 05]
-17F5B; [7C 64 F6, 05, 05]
-17F5C; [7C 64 F8, 05, 05]
-17F5D; [7C 64 FA, 05, 05]
-17F5E; [7C 64 FC, 05, 05]
-17F5F; [7C 64 FE, 05, 05]
-17F60; [7C 65 02, 05, 05]
-17F61; [7C 65 04, 05, 05]
-17F62; [7C 65 06, 05, 05]
-17F63; [7C 65 08, 05, 05]
-17F64; [7C 65 0A, 05, 05]
-17F65; [7C 65 0C, 05, 05]
-17F66; [7C 65 0E, 05, 05]
-17F67; [7C 65 10, 05, 05]
-17F68; [7C 65 12, 05, 05]
-17F69; [7C 65 14, 05, 05]
-17F6A; [7C 65 16, 05, 05]
-17F6B; [7C 65 18, 05, 05]
-17F6C; [7C 65 1A, 05, 05]
-17F6D; [7C 65 1C, 05, 05]
-17F6E; [7C 65 1E, 05, 05]
-17F6F; [7C 65 20, 05, 05]
-17F70; [7C 65 22, 05, 05]
-17F71; [7C 65 24, 05, 05]
-17F72; [7C 65 26, 05, 05]
-17F73; [7C 65 28, 05, 05]
-17F74; [7C 65 2A, 05, 05]
-17F75; [7C 65 2C, 05, 05]
-17F76; [7C 65 2E, 05, 05]
-17F77; [7C 65 30, 05, 05]
-17F78; [7C 65 32, 05, 05]
-17F79; [7C 65 34, 05, 05]
-17F7A; [7C 65 36, 05, 05]
-17F7B; [7C 65 38, 05, 05]
-17F7C; [7C 65 3A, 05, 05]
-17F7D; [7C 65 3C, 05, 05]
-17F7E; [7C 65 3E, 05, 05]
-17F7F; [7C 65 40, 05, 05]
-17F80; [7C 65 42, 05, 05]
-17F81; [7C 65 44, 05, 05]
-17F82; [7C 65 46, 05, 05]
-17F83; [7C 65 48, 05, 05]
-17F84; [7C 65 4A, 05, 05]
-17F85; [7C 65 4C, 05, 05]
-17F86; [7C 65 4E, 05, 05]
-17F87; [7C 65 50, 05, 05]
-17F88; [7C 65 52, 05, 05]
-17F89; [7C 65 54, 05, 05]
-17F8A; [7C 65 56, 05, 05]
-17F8B; [7C 65 58, 05, 05]
-17F8C; [7C 65 5A, 05, 05]
-17F8D; [7C 65 5C, 05, 05]
-17F8E; [7C 65 5E, 05, 05]
-17F8F; [7C 65 60, 05, 05]
-17F90; [7C 65 62, 05, 05]
-17F91; [7C 65 64, 05, 05]
-17F92; [7C 65 66, 05, 05]
-17F93; [7C 65 68, 05, 05]
-17F94; [7C 65 6A, 05, 05]
-17F95; [7C 65 6C, 05, 05]
-17F96; [7C 65 6E, 05, 05]
-17F97; [7C 65 70, 05, 05]
-17F98; [7C 65 72, 05, 05]
-17F99; [7C 65 74, 05, 05]
-17F9A; [7C 65 76, 05, 05]
-17F9B; [7C 65 78, 05, 05]
-17F9C; [7C 65 7A, 05, 05]
-17F9D; [7C 65 7C, 05, 05]
-17F9E; [7C 65 7E, 05, 05]
-17F9F; [7C 65 80, 05, 05]
-17FA0; [7C 65 82, 05, 05]
-17FA1; [7C 65 84, 05, 05]
-17FA2; [7C 65 86, 05, 05]
-17FA3; [7C 65 88, 05, 05]
-17FA4; [7C 65 8A, 05, 05]
-17FA5; [7C 65 8C, 05, 05]
-17FA6; [7C 65 8E, 05, 05]
-17FA7; [7C 65 90, 05, 05]
-17FA8; [7C 65 92, 05, 05]
-17FA9; [7C 65 94, 05, 05]
-17FAA; [7C 65 96, 05, 05]
-17FAB; [7C 65 98, 05, 05]
-17FAC; [7C 65 9A, 05, 05]
-17FAD; [7C 65 9C, 05, 05]
-17FAE; [7C 65 9E, 05, 05]
-17FAF; [7C 65 A0, 05, 05]
-17FB0; [7C 65 A2, 05, 05]
-17FB1; [7C 65 A4, 05, 05]
-17FB2; [7C 65 A6, 05, 05]
-17FB3; [7C 65 A8, 05, 05]
-17FB4; [7C 65 AA, 05, 05]
-17FB5; [7C 65 AC, 05, 05]
-17FB6; [7C 65 AE, 05, 05]
-17FB7; [7C 65 B0, 05, 05]
-17FB8; [7C 65 B2, 05, 05]
-17FB9; [7C 65 B4, 05, 05]
-17FBA; [7C 65 B6, 05, 05]
-17FBB; [7C 65 B8, 05, 05]
-17FBC; [7C 65 BA, 05, 05]
-17FBD; [7C 65 BC, 05, 05]
-17FBE; [7C 65 BE, 05, 05]
-17FBF; [7C 65 C0, 05, 05]
-17FC0; [7C 65 C2, 05, 05]
-17FC1; [7C 65 C4, 05, 05]
-17FC2; [7C 65 C6, 05, 05]
-17FC3; [7C 65 C8, 05, 05]
-17FC4; [7C 65 CA, 05, 05]
-17FC5; [7C 65 CC, 05, 05]
-17FC6; [7C 65 CE, 05, 05]
-17FC7; [7C 65 D0, 05, 05]
-17FC8; [7C 65 D2, 05, 05]
-17FC9; [7C 65 D4, 05, 05]
-17FCA; [7C 65 D6, 05, 05]
-17FCB; [7C 65 D8, 05, 05]
-17FCC; [7C 65 DA, 05, 05]
-17FCD; [7C 65 DC, 05, 05]
-17FCE; [7C 65 DE, 05, 05]
-17FCF; [7C 65 E0, 05, 05]
-17FD0; [7C 65 E2, 05, 05]
-17FD1; [7C 65 E4, 05, 05]
-17FD2; [7C 65 E6, 05, 05]
-17FD3; [7C 65 E8, 05, 05]
-17FD4; [7C 65 EA, 05, 05]
-17FD5; [7C 65 EC, 05, 05]
-17FD6; [7C 65 EE, 05, 05]
-17FD7; [7C 65 F0, 05, 05]
-17FD8; [7C 65 F2, 05, 05]
-17FD9; [7C 65 F4, 05, 05]
-17FDA; [7C 65 F6, 05, 05]
-17FDB; [7C 65 F8, 05, 05]
-17FDC; [7C 65 FA, 05, 05]
-17FDD; [7C 65 FC, 05, 05]
-17FDE; [7C 65 FE, 05, 05]
-17FDF; [7C 66 02, 05, 05]
-17FE0; [7C 66 04, 05, 05]
-17FE1; [7C 66 06, 05, 05]
-17FE2; [7C 66 08, 05, 05]
-17FE3; [7C 66 0A, 05, 05]
-17FE4; [7C 66 0C, 05, 05]
-17FE5; [7C 66 0E, 05, 05]
-17FE6; [7C 66 10, 05, 05]
-17FE7; [7C 66 12, 05, 05]
-17FE8; [7C 66 14, 05, 05]
-17FE9; [7C 66 16, 05, 05]
-17FEA; [7C 66 18, 05, 05]
-17FEB; [7C 66 1A, 05, 05]
-17FEC; [7C 66 1C, 05, 05]
-17FED; [7C 66 1E, 05, 05]
-17FEE; [7C 66 20, 05, 05]
-17FEF; [7C 66 22, 05, 05]
-17FF0; [7C 66 24, 05, 05]
-17FF1; [7C 66 26, 05, 05]
-17FF2; [7C 66 28, 05, 05]
-17FF3; [7C 66 2A, 05, 05]
-17FF4; [7C 66 2C, 05, 05]
-17FF5; [7C 66 2E, 05, 05]
-17FF6; [7C 66 30, 05, 05]
-17FF7; [7C 66 32, 05, 05]
-17FF8; [7C 66 34, 05, 05]
-17FF9; [7C 66 36, 05, 05]
-17FFA; [7C 66 38, 05, 05]
-17FFB; [7C 66 3A, 05, 05]
-17FFC; [7C 66 3C, 05, 05]
-17FFD; [7C 66 3E, 05, 05]
-17FFE; [7C 66 40, 05, 05]
-17FFF; [7C 66 42, 05, 05]
-18000; [7C 66 44, 05, 05]
-18001; [7C 66 46, 05, 05]
-18002; [7C 66 48, 05, 05]
-18003; [7C 66 4A, 05, 05]
-18004; [7C 66 4C, 05, 05]
-18005; [7C 66 4E, 05, 05]
-18006; [7C 66 50, 05, 05]
-18007; [7C 66 52, 05, 05]
-18008; [7C 66 54, 05, 05]
-18009; [7C 66 56, 05, 05]
-1800A; [7C 66 58, 05, 05]
-1800B; [7C 66 5A, 05, 05]
-1800C; [7C 66 5C, 05, 05]
-1800D; [7C 66 5E, 05, 05]
-1800E; [7C 66 60, 05, 05]
-1800F; [7C 66 62, 05, 05]
-18010; [7C 66 64, 05, 05]
-18011; [7C 66 66, 05, 05]
-18012; [7C 66 68, 05, 05]
-18013; [7C 66 6A, 05, 05]
-18014; [7C 66 6C, 05, 05]
-18015; [7C 66 6E, 05, 05]
-18016; [7C 66 70, 05, 05]
-18017; [7C 66 72, 05, 05]
-18018; [7C 66 74, 05, 05]
-18019; [7C 66 76, 05, 05]
-1801A; [7C 66 78, 05, 05]
-1801B; [7C 66 7A, 05, 05]
-1801C; [7C 66 7C, 05, 05]
-1801D; [7C 66 7E, 05, 05]
-1801E; [7C 66 80, 05, 05]
-1801F; [7C 66 82, 05, 05]
-18020; [7C 66 84, 05, 05]
-18021; [7C 66 86, 05, 05]
-18022; [7C 66 88, 05, 05]
-18023; [7C 66 8A, 05, 05]
-18024; [7C 66 8C, 05, 05]
-18025; [7C 66 8E, 05, 05]
-18026; [7C 66 90, 05, 05]
-18027; [7C 66 92, 05, 05]
-18028; [7C 66 94, 05, 05]
-18029; [7C 66 96, 05, 05]
-1802A; [7C 66 98, 05, 05]
-1802B; [7C 66 9A, 05, 05]
-1802C; [7C 66 9C, 05, 05]
-1802D; [7C 66 9E, 05, 05]
-1802E; [7C 66 A0, 05, 05]
-1802F; [7C 66 A2, 05, 05]
-18030; [7C 66 A4, 05, 05]
-18031; [7C 66 A6, 05, 05]
-18032; [7C 66 A8, 05, 05]
-18033; [7C 66 AA, 05, 05]
-18034; [7C 66 AC, 05, 05]
-18035; [7C 66 AE, 05, 05]
-18036; [7C 66 B0, 05, 05]
-18037; [7C 66 B2, 05, 05]
-18038; [7C 66 B4, 05, 05]
-18039; [7C 66 B6, 05, 05]
-1803A; [7C 66 B8, 05, 05]
-1803B; [7C 66 BA, 05, 05]
-1803C; [7C 66 BC, 05, 05]
-1803D; [7C 66 BE, 05, 05]
-1803E; [7C 66 C0, 05, 05]
-1803F; [7C 66 C2, 05, 05]
-18040; [7C 66 C4, 05, 05]
-18041; [7C 66 C6, 05, 05]
-18042; [7C 66 C8, 05, 05]
-18043; [7C 66 CA, 05, 05]
-18044; [7C 66 CC, 05, 05]
-18045; [7C 66 CE, 05, 05]
-18046; [7C 66 D0, 05, 05]
-18047; [7C 66 D2, 05, 05]
-18048; [7C 66 D4, 05, 05]
-18049; [7C 66 D6, 05, 05]
-1804A; [7C 66 D8, 05, 05]
-1804B; [7C 66 DA, 05, 05]
-1804C; [7C 66 DC, 05, 05]
-1804D; [7C 66 DE, 05, 05]
-1804E; [7C 66 E0, 05, 05]
-1804F; [7C 66 E2, 05, 05]
-18050; [7C 66 E4, 05, 05]
-18051; [7C 66 E6, 05, 05]
-18052; [7C 66 E8, 05, 05]
-18053; [7C 66 EA, 05, 05]
-18054; [7C 66 EC, 05, 05]
-18055; [7C 66 EE, 05, 05]
-18056; [7C 66 F0, 05, 05]
-18057; [7C 66 F2, 05, 05]
-18058; [7C 66 F4, 05, 05]
-18059; [7C 66 F6, 05, 05]
-1805A; [7C 66 F8, 05, 05]
-1805B; [7C 66 FA, 05, 05]
-1805C; [7C 66 FC, 05, 05]
-1805D; [7C 66 FE, 05, 05]
-1805E; [7C 67 02, 05, 05]
-1805F; [7C 67 04, 05, 05]
-18060; [7C 67 06, 05, 05]
-18061; [7C 67 08, 05, 05]
-18062; [7C 67 0A, 05, 05]
-18063; [7C 67 0C, 05, 05]
-18064; [7C 67 0E, 05, 05]
-18065; [7C 67 10, 05, 05]
-18066; [7C 67 12, 05, 05]
-18067; [7C 67 14, 05, 05]
-18068; [7C 67 16, 05, 05]
-18069; [7C 67 18, 05, 05]
-1806A; [7C 67 1A, 05, 05]
-1806B; [7C 67 1C, 05, 05]
-1806C; [7C 67 1E, 05, 05]
-1806D; [7C 67 20, 05, 05]
-1806E; [7C 67 22, 05, 05]
-1806F; [7C 67 24, 05, 05]
-18070; [7C 67 26, 05, 05]
-18071; [7C 67 28, 05, 05]
-18072; [7C 67 2A, 05, 05]
-18073; [7C 67 2C, 05, 05]
-18074; [7C 67 2E, 05, 05]
-18075; [7C 67 30, 05, 05]
-18076; [7C 67 32, 05, 05]
-18077; [7C 67 34, 05, 05]
-18078; [7C 67 36, 05, 05]
-18079; [7C 67 38, 05, 05]
-1807A; [7C 67 3A, 05, 05]
-1807B; [7C 67 3C, 05, 05]
-1807C; [7C 67 3E, 05, 05]
-1807D; [7C 67 40, 05, 05]
-1807E; [7C 67 42, 05, 05]
-1807F; [7C 67 44, 05, 05]
-18080; [7C 67 46, 05, 05]
-18081; [7C 67 48, 05, 05]
-18082; [7C 67 4A, 05, 05]
-18083; [7C 67 4C, 05, 05]
-18084; [7C 67 4E, 05, 05]
-18085; [7C 67 50, 05, 05]
-18086; [7C 67 52, 05, 05]
-18087; [7C 67 54, 05, 05]
-18088; [7C 67 56, 05, 05]
-18089; [7C 67 58, 05, 05]
-1808A; [7C 67 5A, 05, 05]
-1808B; [7C 67 5C, 05, 05]
-1808C; [7C 67 5E, 05, 05]
-1808D; [7C 67 60, 05, 05]
-1808E; [7C 67 62, 05, 05]
-1808F; [7C 67 64, 05, 05]
-18090; [7C 67 66, 05, 05]
-18091; [7C 67 68, 05, 05]
-18092; [7C 67 6A, 05, 05]
-18093; [7C 67 6C, 05, 05]
-18094; [7C 67 6E, 05, 05]
-18095; [7C 67 70, 05, 05]
-18096; [7C 67 72, 05, 05]
-18097; [7C 67 74, 05, 05]
-18098; [7C 67 76, 05, 05]
-18099; [7C 67 78, 05, 05]
-1809A; [7C 67 7A, 05, 05]
-1809B; [7C 67 7C, 05, 05]
-1809C; [7C 67 7E, 05, 05]
-1809D; [7C 67 80, 05, 05]
-1809E; [7C 67 82, 05, 05]
-1809F; [7C 67 84, 05, 05]
-180A0; [7C 67 86, 05, 05]
-180A1; [7C 67 88, 05, 05]
-180A2; [7C 67 8A, 05, 05]
-180A3; [7C 67 8C, 05, 05]
-180A4; [7C 67 8E, 05, 05]
-180A5; [7C 67 90, 05, 05]
-180A6; [7C 67 92, 05, 05]
-180A7; [7C 67 94, 05, 05]
-180A8; [7C 67 96, 05, 05]
-180A9; [7C 67 98, 05, 05]
-180AA; [7C 67 9A, 05, 05]
-180AB; [7C 67 9C, 05, 05]
-180AC; [7C 67 9E, 05, 05]
-180AD; [7C 67 A0, 05, 05]
-180AE; [7C 67 A2, 05, 05]
-180AF; [7C 67 A4, 05, 05]
-180B0; [7C 67 A6, 05, 05]
-180B1; [7C 67 A8, 05, 05]
-180B2; [7C 67 AA, 05, 05]
-180B3; [7C 67 AC, 05, 05]
-180B4; [7C 67 AE, 05, 05]
-180B5; [7C 67 B0, 05, 05]
-180B6; [7C 67 B2, 05, 05]
-180B7; [7C 67 B4, 05, 05]
-180B8; [7C 67 B6, 05, 05]
-180B9; [7C 67 B8, 05, 05]
-180BA; [7C 67 BA, 05, 05]
-180BB; [7C 67 BC, 05, 05]
-180BC; [7C 67 BE, 05, 05]
-180BD; [7C 67 C0, 05, 05]
-180BE; [7C 67 C2, 05, 05]
-180BF; [7C 67 C4, 05, 05]
-180C0; [7C 67 C6, 05, 05]
-180C1; [7C 67 C8, 05, 05]
-180C2; [7C 67 CA, 05, 05]
-180C3; [7C 67 CC, 05, 05]
-180C4; [7C 67 CE, 05, 05]
-180C5; [7C 67 D0, 05, 05]
-180C6; [7C 67 D2, 05, 05]
-180C7; [7C 67 D4, 05, 05]
-180C8; [7C 67 D6, 05, 05]
-180C9; [7C 67 D8, 05, 05]
-180CA; [7C 67 DA, 05, 05]
-180CB; [7C 67 DC, 05, 05]
-180CC; [7C 67 DE, 05, 05]
-180CD; [7C 67 E0, 05, 05]
-180CE; [7C 67 E2, 05, 05]
-180CF; [7C 67 E4, 05, 05]
-180D0; [7C 67 E6, 05, 05]
-180D1; [7C 67 E8, 05, 05]
-180D2; [7C 67 EA, 05, 05]
-180D3; [7C 67 EC, 05, 05]
-180D4; [7C 67 EE, 05, 05]
-180D5; [7C 67 F0, 05, 05]
-180D6; [7C 67 F2, 05, 05]
-180D7; [7C 67 F4, 05, 05]
-180D8; [7C 67 F6, 05, 05]
-180D9; [7C 67 F8, 05, 05]
-180DA; [7C 67 FA, 05, 05]
-180DB; [7C 67 FC, 05, 05]
-180DC; [7C 67 FE, 05, 05]
-180DD; [7C 68 02, 05, 05]
-180DE; [7C 68 04, 05, 05]
-180DF; [7C 68 06, 05, 05]
-180E0; [7C 68 08, 05, 05]
-180E1; [7C 68 0A, 05, 05]
-180E2; [7C 68 0C, 05, 05]
-180E3; [7C 68 0E, 05, 05]
-180E4; [7C 68 10, 05, 05]
-180E5; [7C 68 12, 05, 05]
-180E6; [7C 68 14, 05, 05]
-180E7; [7C 68 16, 05, 05]
-180E8; [7C 68 18, 05, 05]
-180E9; [7C 68 1A, 05, 05]
-180EA; [7C 68 1C, 05, 05]
-180EB; [7C 68 1E, 05, 05]
-180EC; [7C 68 20, 05, 05]
-180ED; [7C 68 22, 05, 05]
-180EE; [7C 68 24, 05, 05]
-180EF; [7C 68 26, 05, 05]
-180F0; [7C 68 28, 05, 05]
-180F1; [7C 68 2A, 05, 05]
-180F2; [7C 68 2C, 05, 05]
-180F3; [7C 68 2E, 05, 05]
-180F4; [7C 68 30, 05, 05]
-180F5; [7C 68 32, 05, 05]
-180F6; [7C 68 34, 05, 05]
-180F7; [7C 68 36, 05, 05]
-180F8; [7C 68 38, 05, 05]
-180F9; [7C 68 3A, 05, 05]
-180FA; [7C 68 3C, 05, 05]
-180FB; [7C 68 3E, 05, 05]
-180FC; [7C 68 40, 05, 05]
-180FD; [7C 68 42, 05, 05]
-180FE; [7C 68 44, 05, 05]
-180FF; [7C 68 46, 05, 05]
-18100; [7C 68 48, 05, 05]
-18101; [7C 68 4A, 05, 05]
-18102; [7C 68 4C, 05, 05]
-18103; [7C 68 4E, 05, 05]
-18104; [7C 68 50, 05, 05]
-18105; [7C 68 52, 05, 05]
-18106; [7C 68 54, 05, 05]
-18107; [7C 68 56, 05, 05]
-18108; [7C 68 58, 05, 05]
-18109; [7C 68 5A, 05, 05]
-1810A; [7C 68 5C, 05, 05]
-1810B; [7C 68 5E, 05, 05]
-1810C; [7C 68 60, 05, 05]
-1810D; [7C 68 62, 05, 05]
-1810E; [7C 68 64, 05, 05]
-1810F; [7C 68 66, 05, 05]
-18110; [7C 68 68, 05, 05]
-18111; [7C 68 6A, 05, 05]
-18112; [7C 68 6C, 05, 05]
-18113; [7C 68 6E, 05, 05]
-18114; [7C 68 70, 05, 05]
-18115; [7C 68 72, 05, 05]
-18116; [7C 68 74, 05, 05]
-18117; [7C 68 76, 05, 05]
-18118; [7C 68 78, 05, 05]
-18119; [7C 68 7A, 05, 05]
-1811A; [7C 68 7C, 05, 05]
-1811B; [7C 68 7E, 05, 05]
-1811C; [7C 68 80, 05, 05]
-1811D; [7C 68 82, 05, 05]
-1811E; [7C 68 84, 05, 05]
-1811F; [7C 68 86, 05, 05]
-18120; [7C 68 88, 05, 05]
-18121; [7C 68 8A, 05, 05]
-18122; [7C 68 8C, 05, 05]
-18123; [7C 68 8E, 05, 05]
-18124; [7C 68 90, 05, 05]
-18125; [7C 68 92, 05, 05]
-18126; [7C 68 94, 05, 05]
-18127; [7C 68 96, 05, 05]
-18128; [7C 68 98, 05, 05]
-18129; [7C 68 9A, 05, 05]
-1812A; [7C 68 9C, 05, 05]
-1812B; [7C 68 9E, 05, 05]
-1812C; [7C 68 A0, 05, 05]
-1812D; [7C 68 A2, 05, 05]
-1812E; [7C 68 A4, 05, 05]
-1812F; [7C 68 A6, 05, 05]
-18130; [7C 68 A8, 05, 05]
-18131; [7C 68 AA, 05, 05]
-18132; [7C 68 AC, 05, 05]
-18133; [7C 68 AE, 05, 05]
-18134; [7C 68 B0, 05, 05]
-18135; [7C 68 B2, 05, 05]
-18136; [7C 68 B4, 05, 05]
-18137; [7C 68 B6, 05, 05]
-18138; [7C 68 B8, 05, 05]
-18139; [7C 68 BA, 05, 05]
-1813A; [7C 68 BC, 05, 05]
-1813B; [7C 68 BE, 05, 05]
-1813C; [7C 68 C0, 05, 05]
-1813D; [7C 68 C2, 05, 05]
-1813E; [7C 68 C4, 05, 05]
-1813F; [7C 68 C6, 05, 05]
-18140; [7C 68 C8, 05, 05]
-18141; [7C 68 CA, 05, 05]
-18142; [7C 68 CC, 05, 05]
-18143; [7C 68 CE, 05, 05]
-18144; [7C 68 D0, 05, 05]
-18145; [7C 68 D2, 05, 05]
-18146; [7C 68 D4, 05, 05]
-18147; [7C 68 D6, 05, 05]
-18148; [7C 68 D8, 05, 05]
-18149; [7C 68 DA, 05, 05]
-1814A; [7C 68 DC, 05, 05]
-1814B; [7C 68 DE, 05, 05]
-1814C; [7C 68 E0, 05, 05]
-1814D; [7C 68 E2, 05, 05]
-1814E; [7C 68 E4, 05, 05]
-1814F; [7C 68 E6, 05, 05]
-18150; [7C 68 E8, 05, 05]
-18151; [7C 68 EA, 05, 05]
-18152; [7C 68 EC, 05, 05]
-18153; [7C 68 EE, 05, 05]
-18154; [7C 68 F0, 05, 05]
-18155; [7C 68 F2, 05, 05]
-18156; [7C 68 F4, 05, 05]
-18157; [7C 68 F6, 05, 05]
-18158; [7C 68 F8, 05, 05]
-18159; [7C 68 FA, 05, 05]
-1815A; [7C 68 FC, 05, 05]
-1815B; [7C 68 FE, 05, 05]
-1815C; [7C 69 02, 05, 05]
-1815D; [7C 69 04, 05, 05]
-1815E; [7C 69 06, 05, 05]
-1815F; [7C 69 08, 05, 05]
-18160; [7C 69 0A, 05, 05]
-18161; [7C 69 0C, 05, 05]
-18162; [7C 69 0E, 05, 05]
-18163; [7C 69 10, 05, 05]
-18164; [7C 69 12, 05, 05]
-18165; [7C 69 14, 05, 05]
-18166; [7C 69 16, 05, 05]
-18167; [7C 69 18, 05, 05]
-18168; [7C 69 1A, 05, 05]
-18169; [7C 69 1C, 05, 05]
-1816A; [7C 69 1E, 05, 05]
-1816B; [7C 69 20, 05, 05]
-1816C; [7C 69 22, 05, 05]
-1816D; [7C 69 24, 05, 05]
-1816E; [7C 69 26, 05, 05]
-1816F; [7C 69 28, 05, 05]
-18170; [7C 69 2A, 05, 05]
-18171; [7C 69 2C, 05, 05]
-18172; [7C 69 2E, 05, 05]
-18173; [7C 69 30, 05, 05]
-18174; [7C 69 32, 05, 05]
-18175; [7C 69 34, 05, 05]
-18176; [7C 69 36, 05, 05]
-18177; [7C 69 38, 05, 05]
-18178; [7C 69 3A, 05, 05]
-18179; [7C 69 3C, 05, 05]
-1817A; [7C 69 3E, 05, 05]
-1817B; [7C 69 40, 05, 05]
-1817C; [7C 69 42, 05, 05]
-1817D; [7C 69 44, 05, 05]
-1817E; [7C 69 46, 05, 05]
-1817F; [7C 69 48, 05, 05]
-18180; [7C 69 4A, 05, 05]
-18181; [7C 69 4C, 05, 05]
-18182; [7C 69 4E, 05, 05]
-18183; [7C 69 50, 05, 05]
-18184; [7C 69 52, 05, 05]
-18185; [7C 69 54, 05, 05]
-18186; [7C 69 56, 05, 05]
-18187; [7C 69 58, 05, 05]
-18188; [7C 69 5A, 05, 05]
-18189; [7C 69 5C, 05, 05]
-1818A; [7C 69 5E, 05, 05]
-1818B; [7C 69 60, 05, 05]
-1818C; [7C 69 62, 05, 05]
-1818D; [7C 69 64, 05, 05]
-1818E; [7C 69 66, 05, 05]
-1818F; [7C 69 68, 05, 05]
-18190; [7C 69 6A, 05, 05]
-18191; [7C 69 6C, 05, 05]
-18192; [7C 69 6E, 05, 05]
-18193; [7C 69 70, 05, 05]
-18194; [7C 69 72, 05, 05]
-18195; [7C 69 74, 05, 05]
-18196; [7C 69 76, 05, 05]
-18197; [7C 69 78, 05, 05]
-18198; [7C 69 7A, 05, 05]
-18199; [7C 69 7C, 05, 05]
-1819A; [7C 69 7E, 05, 05]
-1819B; [7C 69 80, 05, 05]
-1819C; [7C 69 82, 05, 05]
-1819D; [7C 69 84, 05, 05]
-1819E; [7C 69 86, 05, 05]
-1819F; [7C 69 88, 05, 05]
-181A0; [7C 69 8A, 05, 05]
-181A1; [7C 69 8C, 05, 05]
-181A2; [7C 69 8E, 05, 05]
-181A3; [7C 69 90, 05, 05]
-181A4; [7C 69 92, 05, 05]
-181A5; [7C 69 94, 05, 05]
-181A6; [7C 69 96, 05, 05]
-181A7; [7C 69 98, 05, 05]
-181A8; [7C 69 9A, 05, 05]
-181A9; [7C 69 9C, 05, 05]
-181AA; [7C 69 9E, 05, 05]
-181AB; [7C 69 A0, 05, 05]
-181AC; [7C 69 A2, 05, 05]
-181AD; [7C 69 A4, 05, 05]
-181AE; [7C 69 A6, 05, 05]
-181AF; [7C 69 A8, 05, 05]
-181B0; [7C 69 AA, 05, 05]
-181B1; [7C 69 AC, 05, 05]
-181B2; [7C 69 AE, 05, 05]
-181B3; [7C 69 B0, 05, 05]
-181B4; [7C 69 B2, 05, 05]
-181B5; [7C 69 B4, 05, 05]
-181B6; [7C 69 B6, 05, 05]
-181B7; [7C 69 B8, 05, 05]
-181B8; [7C 69 BA, 05, 05]
-181B9; [7C 69 BC, 05, 05]
-181BA; [7C 69 BE, 05, 05]
-181BB; [7C 69 C0, 05, 05]
-181BC; [7C 69 C2, 05, 05]
-181BD; [7C 69 C4, 05, 05]
-181BE; [7C 69 C6, 05, 05]
-181BF; [7C 69 C8, 05, 05]
-181C0; [7C 69 CA, 05, 05]
-181C1; [7C 69 CC, 05, 05]
-181C2; [7C 69 CE, 05, 05]
-181C3; [7C 69 D0, 05, 05]
-181C4; [7C 69 D2, 05, 05]
-181C5; [7C 69 D4, 05, 05]
-181C6; [7C 69 D6, 05, 05]
-181C7; [7C 69 D8, 05, 05]
-181C8; [7C 69 DA, 05, 05]
-181C9; [7C 69 DC, 05, 05]
-181CA; [7C 69 DE, 05, 05]
-181CB; [7C 69 E0, 05, 05]
-181CC; [7C 69 E2, 05, 05]
-181CD; [7C 69 E4, 05, 05]
-181CE; [7C 69 E6, 05, 05]
-181CF; [7C 69 E8, 05, 05]
-181D0; [7C 69 EA, 05, 05]
-181D1; [7C 69 EC, 05, 05]
-181D2; [7C 69 EE, 05, 05]
-181D3; [7C 69 F0, 05, 05]
-181D4; [7C 69 F2, 05, 05]
-181D5; [7C 69 F4, 05, 05]
-181D6; [7C 69 F6, 05, 05]
-181D7; [7C 69 F8, 05, 05]
-181D8; [7C 69 FA, 05, 05]
-181D9; [7C 69 FC, 05, 05]
-181DA; [7C 69 FE, 05, 05]
-181DB; [7C 6A 02, 05, 05]
-181DC; [7C 6A 04, 05, 05]
-181DD; [7C 6A 06, 05, 05]
-181DE; [7C 6A 08, 05, 05]
-181DF; [7C 6A 0A, 05, 05]
-181E0; [7C 6A 0C, 05, 05]
-181E1; [7C 6A 0E, 05, 05]
-181E2; [7C 6A 10, 05, 05]
-181E3; [7C 6A 12, 05, 05]
-181E4; [7C 6A 14, 05, 05]
-181E5; [7C 6A 16, 05, 05]
-181E6; [7C 6A 18, 05, 05]
-181E7; [7C 6A 1A, 05, 05]
-181E8; [7C 6A 1C, 05, 05]
-181E9; [7C 6A 1E, 05, 05]
-181EA; [7C 6A 20, 05, 05]
-181EB; [7C 6A 22, 05, 05]
-181EC; [7C 6A 24, 05, 05]
-181ED; [7C 6A 26, 05, 05]
-181EE; [7C 6A 28, 05, 05]
-181EF; [7C 6A 2A, 05, 05]
-181F0; [7C 6A 2C, 05, 05]
-181F1; [7C 6A 2E, 05, 05]
-181F2; [7C 6A 30, 05, 05]
-181F3; [7C 6A 32, 05, 05]
-181F4; [7C 6A 34, 05, 05]
-181F5; [7C 6A 36, 05, 05]
-181F6; [7C 6A 38, 05, 05]
-181F7; [7C 6A 3A, 05, 05]
-181F8; [7C 6A 3C, 05, 05]
-181F9; [7C 6A 3E, 05, 05]
-181FA; [7C 6A 40, 05, 05]
-181FB; [7C 6A 42, 05, 05]
-181FC; [7C 6A 44, 05, 05]
-181FD; [7C 6A 46, 05, 05]
-181FE; [7C 6A 48, 05, 05]
-181FF; [7C 6A 4A, 05, 05]
-18200; [7C 6A 4C, 05, 05]
-18201; [7C 6A 4E, 05, 05]
-18202; [7C 6A 50, 05, 05]
-18203; [7C 6A 52, 05, 05]
-18204; [7C 6A 54, 05, 05]
-18205; [7C 6A 56, 05, 05]
-18206; [7C 6A 58, 05, 05]
-18207; [7C 6A 5A, 05, 05]
-18208; [7C 6A 5C, 05, 05]
-18209; [7C 6A 5E, 05, 05]
-1820A; [7C 6A 60, 05, 05]
-1820B; [7C 6A 62, 05, 05]
-1820C; [7C 6A 64, 05, 05]
-1820D; [7C 6A 66, 05, 05]
-1820E; [7C 6A 68, 05, 05]
-1820F; [7C 6A 6A, 05, 05]
-18210; [7C 6A 6C, 05, 05]
-18211; [7C 6A 6E, 05, 05]
-18212; [7C 6A 70, 05, 05]
-18213; [7C 6A 72, 05, 05]
-18214; [7C 6A 74, 05, 05]
-18215; [7C 6A 76, 05, 05]
-18216; [7C 6A 78, 05, 05]
-18217; [7C 6A 7A, 05, 05]
-18218; [7C 6A 7C, 05, 05]
-18219; [7C 6A 7E, 05, 05]
-1821A; [7C 6A 80, 05, 05]
-1821B; [7C 6A 82, 05, 05]
-1821C; [7C 6A 84, 05, 05]
-1821D; [7C 6A 86, 05, 05]
-1821E; [7C 6A 88, 05, 05]
-1821F; [7C 6A 8A, 05, 05]
-18220; [7C 6A 8C, 05, 05]
-18221; [7C 6A 8E, 05, 05]
-18222; [7C 6A 90, 05, 05]
-18223; [7C 6A 92, 05, 05]
-18224; [7C 6A 94, 05, 05]
-18225; [7C 6A 96, 05, 05]
-18226; [7C 6A 98, 05, 05]
-18227; [7C 6A 9A, 05, 05]
-18228; [7C 6A 9C, 05, 05]
-18229; [7C 6A 9E, 05, 05]
-1822A; [7C 6A A0, 05, 05]
-1822B; [7C 6A A2, 05, 05]
-1822C; [7C 6A A4, 05, 05]
-1822D; [7C 6A A6, 05, 05]
-1822E; [7C 6A A8, 05, 05]
-1822F; [7C 6A AA, 05, 05]
-18230; [7C 6A AC, 05, 05]
-18231; [7C 6A AE, 05, 05]
-18232; [7C 6A B0, 05, 05]
-18233; [7C 6A B2, 05, 05]
-18234; [7C 6A B4, 05, 05]
-18235; [7C 6A B6, 05, 05]
-18236; [7C 6A B8, 05, 05]
-18237; [7C 6A BA, 05, 05]
-18238; [7C 6A BC, 05, 05]
-18239; [7C 6A BE, 05, 05]
-1823A; [7C 6A C0, 05, 05]
-1823B; [7C 6A C2, 05, 05]
-1823C; [7C 6A C4, 05, 05]
-1823D; [7C 6A C6, 05, 05]
-1823E; [7C 6A C8, 05, 05]
-1823F; [7C 6A CA, 05, 05]
-18240; [7C 6A CC, 05, 05]
-18241; [7C 6A CE, 05, 05]
-18242; [7C 6A D0, 05, 05]
-18243; [7C 6A D2, 05, 05]
-18244; [7C 6A D4, 05, 05]
-18245; [7C 6A D6, 05, 05]
-18246; [7C 6A D8, 05, 05]
-18247; [7C 6A DA, 05, 05]
-18248; [7C 6A DC, 05, 05]
-18249; [7C 6A DE, 05, 05]
-1824A; [7C 6A E0, 05, 05]
-1824B; [7C 6A E2, 05, 05]
-1824C; [7C 6A E4, 05, 05]
-1824D; [7C 6A E6, 05, 05]
-1824E; [7C 6A E8, 05, 05]
-1824F; [7C 6A EA, 05, 05]
-18250; [7C 6A EC, 05, 05]
-18251; [7C 6A EE, 05, 05]
-18252; [7C 6A F0, 05, 05]
-18253; [7C 6A F2, 05, 05]
-18254; [7C 6A F4, 05, 05]
-18255; [7C 6A F6, 05, 05]
-18256; [7C 6A F8, 05, 05]
-18257; [7C 6A FA, 05, 05]
-18258; [7C 6A FC, 05, 05]
-18259; [7C 6A FE, 05, 05]
-1825A; [7C 6B 02, 05, 05]
-1825B; [7C 6B 04, 05, 05]
-1825C; [7C 6B 06, 05, 05]
-1825D; [7C 6B 08, 05, 05]
-1825E; [7C 6B 0A, 05, 05]
-1825F; [7C 6B 0C, 05, 05]
-18260; [7C 6B 0E, 05, 05]
-18261; [7C 6B 10, 05, 05]
-18262; [7C 6B 12, 05, 05]
-18263; [7C 6B 14, 05, 05]
-18264; [7C 6B 16, 05, 05]
-18265; [7C 6B 18, 05, 05]
-18266; [7C 6B 1A, 05, 05]
-18267; [7C 6B 1C, 05, 05]
-18268; [7C 6B 1E, 05, 05]
-18269; [7C 6B 20, 05, 05]
-1826A; [7C 6B 22, 05, 05]
-1826B; [7C 6B 24, 05, 05]
-1826C; [7C 6B 26, 05, 05]
-1826D; [7C 6B 28, 05, 05]
-1826E; [7C 6B 2A, 05, 05]
-1826F; [7C 6B 2C, 05, 05]
-18270; [7C 6B 2E, 05, 05]
-18271; [7C 6B 30, 05, 05]
-18272; [7C 6B 32, 05, 05]
-18273; [7C 6B 34, 05, 05]
-18274; [7C 6B 36, 05, 05]
-18275; [7C 6B 38, 05, 05]
-18276; [7C 6B 3A, 05, 05]
-18277; [7C 6B 3C, 05, 05]
-18278; [7C 6B 3E, 05, 05]
-18279; [7C 6B 40, 05, 05]
-1827A; [7C 6B 42, 05, 05]
-1827B; [7C 6B 44, 05, 05]
-1827C; [7C 6B 46, 05, 05]
-1827D; [7C 6B 48, 05, 05]
-1827E; [7C 6B 4A, 05, 05]
-1827F; [7C 6B 4C, 05, 05]
-18280; [7C 6B 4E, 05, 05]
-18281; [7C 6B 50, 05, 05]
-18282; [7C 6B 52, 05, 05]
-18283; [7C 6B 54, 05, 05]
-18284; [7C 6B 56, 05, 05]
-18285; [7C 6B 58, 05, 05]
-18286; [7C 6B 5A, 05, 05]
-18287; [7C 6B 5C, 05, 05]
-18288; [7C 6B 5E, 05, 05]
-18289; [7C 6B 60, 05, 05]
-1828A; [7C 6B 62, 05, 05]
-1828B; [7C 6B 64, 05, 05]
-1828C; [7C 6B 66, 05, 05]
-1828D; [7C 6B 68, 05, 05]
-1828E; [7C 6B 6A, 05, 05]
-1828F; [7C 6B 6C, 05, 05]
-18290; [7C 6B 6E, 05, 05]
-18291; [7C 6B 70, 05, 05]
-18292; [7C 6B 72, 05, 05]
-18293; [7C 6B 74, 05, 05]
-18294; [7C 6B 76, 05, 05]
-18295; [7C 6B 78, 05, 05]
-18296; [7C 6B 7A, 05, 05]
-18297; [7C 6B 7C, 05, 05]
-18298; [7C 6B 7E, 05, 05]
-18299; [7C 6B 80, 05, 05]
-1829A; [7C 6B 82, 05, 05]
-1829B; [7C 6B 84, 05, 05]
-1829C; [7C 6B 86, 05, 05]
-1829D; [7C 6B 88, 05, 05]
-1829E; [7C 6B 8A, 05, 05]
-1829F; [7C 6B 8C, 05, 05]
-182A0; [7C 6B 8E, 05, 05]
-182A1; [7C 6B 90, 05, 05]
-182A2; [7C 6B 92, 05, 05]
-182A3; [7C 6B 94, 05, 05]
-182A4; [7C 6B 96, 05, 05]
-182A5; [7C 6B 98, 05, 05]
-182A6; [7C 6B 9A, 05, 05]
-182A7; [7C 6B 9C, 05, 05]
-182A8; [7C 6B 9E, 05, 05]
-182A9; [7C 6B A0, 05, 05]
-182AA; [7C 6B A2, 05, 05]
-182AB; [7C 6B A4, 05, 05]
-182AC; [7C 6B A6, 05, 05]
-182AD; [7C 6B A8, 05, 05]
-182AE; [7C 6B AA, 05, 05]
-182AF; [7C 6B AC, 05, 05]
-182B0; [7C 6B AE, 05, 05]
-182B1; [7C 6B B0, 05, 05]
-182B2; [7C 6B B2, 05, 05]
-182B3; [7C 6B B4, 05, 05]
-182B4; [7C 6B B6, 05, 05]
-182B5; [7C 6B B8, 05, 05]
-182B6; [7C 6B BA, 05, 05]
-182B7; [7C 6B BC, 05, 05]
-182B8; [7C 6B BE, 05, 05]
-182B9; [7C 6B C0, 05, 05]
-182BA; [7C 6B C2, 05, 05]
-182BB; [7C 6B C4, 05, 05]
-182BC; [7C 6B C6, 05, 05]
-182BD; [7C 6B C8, 05, 05]
-182BE; [7C 6B CA, 05, 05]
-182BF; [7C 6B CC, 05, 05]
-182C0; [7C 6B CE, 05, 05]
-182C1; [7C 6B D0, 05, 05]
-182C2; [7C 6B D2, 05, 05]
-182C3; [7C 6B D4, 05, 05]
-182C4; [7C 6B D6, 05, 05]
-182C5; [7C 6B D8, 05, 05]
-182C6; [7C 6B DA, 05, 05]
-182C7; [7C 6B DC, 05, 05]
-182C8; [7C 6B DE, 05, 05]
-182C9; [7C 6B E0, 05, 05]
-182CA; [7C 6B E2, 05, 05]
-182CB; [7C 6B E4, 05, 05]
-182CC; [7C 6B E6, 05, 05]
-182CD; [7C 6B E8, 05, 05]
-182CE; [7C 6B EA, 05, 05]
-182CF; [7C 6B EC, 05, 05]
-182D0; [7C 6B EE, 05, 05]
-182D1; [7C 6B F0, 05, 05]
-182D2; [7C 6B F2, 05, 05]
-182D3; [7C 6B F4, 05, 05]
-182D4; [7C 6B F6, 05, 05]
-182D5; [7C 6B F8, 05, 05]
-182D6; [7C 6B FA, 05, 05]
-182D7; [7C 6B FC, 05, 05]
-182D8; [7C 6B FE, 05, 05]
-182D9; [7C 6C 02, 05, 05]
-182DA; [7C 6C 04, 05, 05]
-182DB; [7C 6C 06, 05, 05]
-182DC; [7C 6C 08, 05, 05]
-182DD; [7C 6C 0A, 05, 05]
-182DE; [7C 6C 0C, 05, 05]
-182DF; [7C 6C 0E, 05, 05]
-182E0; [7C 6C 10, 05, 05]
-182E1; [7C 6C 12, 05, 05]
-182E2; [7C 6C 14, 05, 05]
-182E3; [7C 6C 16, 05, 05]
-182E4; [7C 6C 18, 05, 05]
-182E5; [7C 6C 1A, 05, 05]
-182E6; [7C 6C 1C, 05, 05]
-182E7; [7C 6C 1E, 05, 05]
-182E8; [7C 6C 20, 05, 05]
-182E9; [7C 6C 22, 05, 05]
-182EA; [7C 6C 24, 05, 05]
-182EB; [7C 6C 26, 05, 05]
-182EC; [7C 6C 28, 05, 05]
-182ED; [7C 6C 2A, 05, 05]
-182EE; [7C 6C 2C, 05, 05]
-182EF; [7C 6C 2E, 05, 05]
-182F0; [7C 6C 30, 05, 05]
-182F1; [7C 6C 32, 05, 05]
-182F2; [7C 6C 34, 05, 05]
-182F3; [7C 6C 36, 05, 05]
-182F4; [7C 6C 38, 05, 05]
-182F5; [7C 6C 3A, 05, 05]
-182F6; [7C 6C 3C, 05, 05]
-182F7; [7C 6C 3E, 05, 05]
-182F8; [7C 6C 40, 05, 05]
-182F9; [7C 6C 42, 05, 05]
-182FA; [7C 6C 44, 05, 05]
-182FB; [7C 6C 46, 05, 05]
-182FC; [7C 6C 48, 05, 05]
-182FD; [7C 6C 4A, 05, 05]
-182FE; [7C 6C 4C, 05, 05]
-182FF; [7C 6C 4E, 05, 05]
-18300; [7C 6C 50, 05, 05]
-18301; [7C 6C 52, 05, 05]
-18302; [7C 6C 54, 05, 05]
-18303; [7C 6C 56, 05, 05]
-18304; [7C 6C 58, 05, 05]
-18305; [7C 6C 5A, 05, 05]
-18306; [7C 6C 5C, 05, 05]
-18307; [7C 6C 5E, 05, 05]
-18308; [7C 6C 60, 05, 05]
-18309; [7C 6C 62, 05, 05]
-1830A; [7C 6C 64, 05, 05]
-1830B; [7C 6C 66, 05, 05]
-1830C; [7C 6C 68, 05, 05]
-1830D; [7C 6C 6A, 05, 05]
-1830E; [7C 6C 6C, 05, 05]
-1830F; [7C 6C 6E, 05, 05]
-18310; [7C 6C 70, 05, 05]
-18311; [7C 6C 72, 05, 05]
-18312; [7C 6C 74, 05, 05]
-18313; [7C 6C 76, 05, 05]
-18314; [7C 6C 78, 05, 05]
-18315; [7C 6C 7A, 05, 05]
-18316; [7C 6C 7C, 05, 05]
-18317; [7C 6C 7E, 05, 05]
-18318; [7C 6C 80, 05, 05]
-18319; [7C 6C 82, 05, 05]
-1831A; [7C 6C 84, 05, 05]
-1831B; [7C 6C 86, 05, 05]
-1831C; [7C 6C 88, 05, 05]
-1831D; [7C 6C 8A, 05, 05]
-1831E; [7C 6C 8C, 05, 05]
-1831F; [7C 6C 8E, 05, 05]
-18320; [7C 6C 90, 05, 05]
-18321; [7C 6C 92, 05, 05]
-18322; [7C 6C 94, 05, 05]
-18323; [7C 6C 96, 05, 05]
-18324; [7C 6C 98, 05, 05]
-18325; [7C 6C 9A, 05, 05]
-18326; [7C 6C 9C, 05, 05]
-18327; [7C 6C 9E, 05, 05]
-18328; [7C 6C A0, 05, 05]
-18329; [7C 6C A2, 05, 05]
-1832A; [7C 6C A4, 05, 05]
-1832B; [7C 6C A6, 05, 05]
-1832C; [7C 6C A8, 05, 05]
-1832D; [7C 6C AA, 05, 05]
-1832E; [7C 6C AC, 05, 05]
-1832F; [7C 6C AE, 05, 05]
-18330; [7C 6C B0, 05, 05]
-18331; [7C 6C B2, 05, 05]
-18332; [7C 6C B4, 05, 05]
-18333; [7C 6C B6, 05, 05]
-18334; [7C 6C B8, 05, 05]
-18335; [7C 6C BA, 05, 05]
-18336; [7C 6C BC, 05, 05]
-18337; [7C 6C BE, 05, 05]
-18338; [7C 6C C0, 05, 05]
-18339; [7C 6C C2, 05, 05]
-1833A; [7C 6C C4, 05, 05]
-1833B; [7C 6C C6, 05, 05]
-1833C; [7C 6C C8, 05, 05]
-1833D; [7C 6C CA, 05, 05]
-1833E; [7C 6C CC, 05, 05]
-1833F; [7C 6C CE, 05, 05]
-18340; [7C 6C D0, 05, 05]
-18341; [7C 6C D2, 05, 05]
-18342; [7C 6C D4, 05, 05]
-18343; [7C 6C D6, 05, 05]
-18344; [7C 6C D8, 05, 05]
-18345; [7C 6C DA, 05, 05]
-18346; [7C 6C DC, 05, 05]
-18347; [7C 6C DE, 05, 05]
-18348; [7C 6C E0, 05, 05]
-18349; [7C 6C E2, 05, 05]
-1834A; [7C 6C E4, 05, 05]
-1834B; [7C 6C E6, 05, 05]
-1834C; [7C 6C E8, 05, 05]
-1834D; [7C 6C EA, 05, 05]
-1834E; [7C 6C EC, 05, 05]
-1834F; [7C 6C EE, 05, 05]
-18350; [7C 6C F0, 05, 05]
-18351; [7C 6C F2, 05, 05]
-18352; [7C 6C F4, 05, 05]
-18353; [7C 6C F6, 05, 05]
-18354; [7C 6C F8, 05, 05]
-18355; [7C 6C FA, 05, 05]
-18356; [7C 6C FC, 05, 05]
-18357; [7C 6C FE, 05, 05]
-18358; [7C 6D 02, 05, 05]
-18359; [7C 6D 04, 05, 05]
-1835A; [7C 6D 06, 05, 05]
-1835B; [7C 6D 08, 05, 05]
-1835C; [7C 6D 0A, 05, 05]
-1835D; [7C 6D 0C, 05, 05]
-1835E; [7C 6D 0E, 05, 05]
-1835F; [7C 6D 10, 05, 05]
-18360; [7C 6D 12, 05, 05]
-18361; [7C 6D 14, 05, 05]
-18362; [7C 6D 16, 05, 05]
-18363; [7C 6D 18, 05, 05]
-18364; [7C 6D 1A, 05, 05]
-18365; [7C 6D 1C, 05, 05]
-18366; [7C 6D 1E, 05, 05]
-18367; [7C 6D 20, 05, 05]
-18368; [7C 6D 22, 05, 05]
-18369; [7C 6D 24, 05, 05]
-1836A; [7C 6D 26, 05, 05]
-1836B; [7C 6D 28, 05, 05]
-1836C; [7C 6D 2A, 05, 05]
-1836D; [7C 6D 2C, 05, 05]
-1836E; [7C 6D 2E, 05, 05]
-1836F; [7C 6D 30, 05, 05]
-18370; [7C 6D 32, 05, 05]
-18371; [7C 6D 34, 05, 05]
-18372; [7C 6D 36, 05, 05]
-18373; [7C 6D 38, 05, 05]
-18374; [7C 6D 3A, 05, 05]
-18375; [7C 6D 3C, 05, 05]
-18376; [7C 6D 3E, 05, 05]
-18377; [7C 6D 40, 05, 05]
-18378; [7C 6D 42, 05, 05]
-18379; [7C 6D 44, 05, 05]
-1837A; [7C 6D 46, 05, 05]
-1837B; [7C 6D 48, 05, 05]
-1837C; [7C 6D 4A, 05, 05]
-1837D; [7C 6D 4C, 05, 05]
-1837E; [7C 6D 4E, 05, 05]
-1837F; [7C 6D 50, 05, 05]
-18380; [7C 6D 52, 05, 05]
-18381; [7C 6D 54, 05, 05]
-18382; [7C 6D 56, 05, 05]
-18383; [7C 6D 58, 05, 05]
-18384; [7C 6D 5A, 05, 05]
-18385; [7C 6D 5C, 05, 05]
-18386; [7C 6D 5E, 05, 05]
-18387; [7C 6D 60, 05, 05]
-18388; [7C 6D 62, 05, 05]
-18389; [7C 6D 64, 05, 05]
-1838A; [7C 6D 66, 05, 05]
-1838B; [7C 6D 68, 05, 05]
-1838C; [7C 6D 6A, 05, 05]
-1838D; [7C 6D 6C, 05, 05]
-1838E; [7C 6D 6E, 05, 05]
-1838F; [7C 6D 70, 05, 05]
-18390; [7C 6D 72, 05, 05]
-18391; [7C 6D 74, 05, 05]
-18392; [7C 6D 76, 05, 05]
-18393; [7C 6D 78, 05, 05]
-18394; [7C 6D 7A, 05, 05]
-18395; [7C 6D 7C, 05, 05]
-18396; [7C 6D 7E, 05, 05]
-18397; [7C 6D 80, 05, 05]
-18398; [7C 6D 82, 05, 05]
-18399; [7C 6D 84, 05, 05]
-1839A; [7C 6D 86, 05, 05]
-1839B; [7C 6D 88, 05, 05]
-1839C; [7C 6D 8A, 05, 05]
-1839D; [7C 6D 8C, 05, 05]
-1839E; [7C 6D 8E, 05, 05]
-1839F; [7C 6D 90, 05, 05]
-183A0; [7C 6D 92, 05, 05]
-183A1; [7C 6D 94, 05, 05]
-183A2; [7C 6D 96, 05, 05]
-183A3; [7C 6D 98, 05, 05]
-183A4; [7C 6D 9A, 05, 05]
-183A5; [7C 6D 9C, 05, 05]
-183A6; [7C 6D 9E, 05, 05]
-183A7; [7C 6D A0, 05, 05]
-183A8; [7C 6D A2, 05, 05]
-183A9; [7C 6D A4, 05, 05]
-183AA; [7C 6D A6, 05, 05]
-183AB; [7C 6D A8, 05, 05]
-183AC; [7C 6D AA, 05, 05]
-183AD; [7C 6D AC, 05, 05]
-183AE; [7C 6D AE, 05, 05]
-183AF; [7C 6D B0, 05, 05]
-183B0; [7C 6D B2, 05, 05]
-183B1; [7C 6D B4, 05, 05]
-183B2; [7C 6D B6, 05, 05]
-183B3; [7C 6D B8, 05, 05]
-183B4; [7C 6D BA, 05, 05]
-183B5; [7C 6D BC, 05, 05]
-183B6; [7C 6D BE, 05, 05]
-183B7; [7C 6D C0, 05, 05]
-183B8; [7C 6D C2, 05, 05]
-183B9; [7C 6D C4, 05, 05]
-183BA; [7C 6D C6, 05, 05]
-183BB; [7C 6D C8, 05, 05]
-183BC; [7C 6D CA, 05, 05]
-183BD; [7C 6D CC, 05, 05]
-183BE; [7C 6D CE, 05, 05]
-183BF; [7C 6D D0, 05, 05]
-183C0; [7C 6D D2, 05, 05]
-183C1; [7C 6D D4, 05, 05]
-183C2; [7C 6D D6, 05, 05]
-183C3; [7C 6D D8, 05, 05]
-183C4; [7C 6D DA, 05, 05]
-183C5; [7C 6D DC, 05, 05]
-183C6; [7C 6D DE, 05, 05]
-183C7; [7C 6D E0, 05, 05]
-183C8; [7C 6D E2, 05, 05]
-183C9; [7C 6D E4, 05, 05]
-183CA; [7C 6D E6, 05, 05]
-183CB; [7C 6D E8, 05, 05]
-183CC; [7C 6D EA, 05, 05]
-183CD; [7C 6D EC, 05, 05]
-183CE; [7C 6D EE, 05, 05]
-183CF; [7C 6D F0, 05, 05]
-183D0; [7C 6D F2, 05, 05]
-183D1; [7C 6D F4, 05, 05]
-183D2; [7C 6D F6, 05, 05]
-183D3; [7C 6D F8, 05, 05]
-183D4; [7C 6D FA, 05, 05]
-183D5; [7C 6D FC, 05, 05]
-183D6; [7C 6D FE, 05, 05]
-183D7; [7C 6E 02, 05, 05]
-183D8; [7C 6E 04, 05, 05]
-183D9; [7C 6E 06, 05, 05]
-183DA; [7C 6E 08, 05, 05]
-183DB; [7C 6E 0A, 05, 05]
-183DC; [7C 6E 0C, 05, 05]
-183DD; [7C 6E 0E, 05, 05]
-183DE; [7C 6E 10, 05, 05]
-183DF; [7C 6E 12, 05, 05]
-183E0; [7C 6E 14, 05, 05]
-183E1; [7C 6E 16, 05, 05]
-183E2; [7C 6E 18, 05, 05]
-183E3; [7C 6E 1A, 05, 05]
-183E4; [7C 6E 1C, 05, 05]
-183E5; [7C 6E 1E, 05, 05]
-183E6; [7C 6E 20, 05, 05]
-183E7; [7C 6E 22, 05, 05]
-183E8; [7C 6E 24, 05, 05]
-183E9; [7C 6E 26, 05, 05]
-183EA; [7C 6E 28, 05, 05]
-183EB; [7C 6E 2A, 05, 05]
-183EC; [7C 6E 2C, 05, 05]
-183ED; [7C 6E 2E, 05, 05]
-183EE; [7C 6E 30, 05, 05]
-183EF; [7C 6E 32, 05, 05]
-183F0; [7C 6E 34, 05, 05]
-183F1; [7C 6E 36, 05, 05]
-183F2; [7C 6E 38, 05, 05]
-183F3; [7C 6E 3A, 05, 05]
-183F4; [7C 6E 3C, 05, 05]
-183F5; [7C 6E 3E, 05, 05]
-183F6; [7C 6E 40, 05, 05]
-183F7; [7C 6E 42, 05, 05]
-183F8; [7C 6E 44, 05, 05]
-183F9; [7C 6E 46, 05, 05]
-183FA; [7C 6E 48, 05, 05]
-183FB; [7C 6E 4A, 05, 05]
-183FC; [7C 6E 4C, 05, 05]
-183FD; [7C 6E 4E, 05, 05]
-183FE; [7C 6E 50, 05, 05]
-183FF; [7C 6E 52, 05, 05]
-18400; [7C 6E 54, 05, 05]
-18401; [7C 6E 56, 05, 05]
-18402; [7C 6E 58, 05, 05]
-18403; [7C 6E 5A, 05, 05]
-18404; [7C 6E 5C, 05, 05]
-18405; [7C 6E 5E, 05, 05]
-18406; [7C 6E 60, 05, 05]
-18407; [7C 6E 62, 05, 05]
-18408; [7C 6E 64, 05, 05]
-18409; [7C 6E 66, 05, 05]
-1840A; [7C 6E 68, 05, 05]
-1840B; [7C 6E 6A, 05, 05]
-1840C; [7C 6E 6C, 05, 05]
-1840D; [7C 6E 6E, 05, 05]
-1840E; [7C 6E 70, 05, 05]
-1840F; [7C 6E 72, 05, 05]
-18410; [7C 6E 74, 05, 05]
-18411; [7C 6E 76, 05, 05]
-18412; [7C 6E 78, 05, 05]
-18413; [7C 6E 7A, 05, 05]
-18414; [7C 6E 7C, 05, 05]
-18415; [7C 6E 7E, 05, 05]
-18416; [7C 6E 80, 05, 05]
-18417; [7C 6E 82, 05, 05]
-18418; [7C 6E 84, 05, 05]
-18419; [7C 6E 86, 05, 05]
-1841A; [7C 6E 88, 05, 05]
-1841B; [7C 6E 8A, 05, 05]
-1841C; [7C 6E 8C, 05, 05]
-1841D; [7C 6E 8E, 05, 05]
-1841E; [7C 6E 90, 05, 05]
-1841F; [7C 6E 92, 05, 05]
-18420; [7C 6E 94, 05, 05]
-18421; [7C 6E 96, 05, 05]
-18422; [7C 6E 98, 05, 05]
-18423; [7C 6E 9A, 05, 05]
-18424; [7C 6E 9C, 05, 05]
-18425; [7C 6E 9E, 05, 05]
-18426; [7C 6E A0, 05, 05]
-18427; [7C 6E A2, 05, 05]
-18428; [7C 6E A4, 05, 05]
-18429; [7C 6E A6, 05, 05]
-1842A; [7C 6E A8, 05, 05]
-1842B; [7C 6E AA, 05, 05]
-1842C; [7C 6E AC, 05, 05]
-1842D; [7C 6E AE, 05, 05]
-1842E; [7C 6E B0, 05, 05]
-1842F; [7C 6E B2, 05, 05]
-18430; [7C 6E B4, 05, 05]
-18431; [7C 6E B6, 05, 05]
-18432; [7C 6E B8, 05, 05]
-18433; [7C 6E BA, 05, 05]
-18434; [7C 6E BC, 05, 05]
-18435; [7C 6E BE, 05, 05]
-18436; [7C 6E C0, 05, 05]
-18437; [7C 6E C2, 05, 05]
-18438; [7C 6E C4, 05, 05]
-18439; [7C 6E C6, 05, 05]
-1843A; [7C 6E C8, 05, 05]
-1843B; [7C 6E CA, 05, 05]
-1843C; [7C 6E CC, 05, 05]
-1843D; [7C 6E CE, 05, 05]
-1843E; [7C 6E D0, 05, 05]
-1843F; [7C 6E D2, 05, 05]
-18440; [7C 6E D4, 05, 05]
-18441; [7C 6E D6, 05, 05]
-18442; [7C 6E D8, 05, 05]
-18443; [7C 6E DA, 05, 05]
-18444; [7C 6E DC, 05, 05]
-18445; [7C 6E DE, 05, 05]
-18446; [7C 6E E0, 05, 05]
-18447; [7C 6E E2, 05, 05]
-18448; [7C 6E E4, 05, 05]
-18449; [7C 6E E6, 05, 05]
-1844A; [7C 6E E8, 05, 05]
-1844B; [7C 6E EA, 05, 05]
-1844C; [7C 6E EC, 05, 05]
-1844D; [7C 6E EE, 05, 05]
-1844E; [7C 6E F0, 05, 05]
-1844F; [7C 6E F2, 05, 05]
-18450; [7C 6E F4, 05, 05]
-18451; [7C 6E F6, 05, 05]
-18452; [7C 6E F8, 05, 05]
-18453; [7C 6E FA, 05, 05]
-18454; [7C 6E FC, 05, 05]
-18455; [7C 6E FE, 05, 05]
-18456; [7C 6F 02, 05, 05]
-18457; [7C 6F 04, 05, 05]
-18458; [7C 6F 06, 05, 05]
-18459; [7C 6F 08, 05, 05]
-1845A; [7C 6F 0A, 05, 05]
-1845B; [7C 6F 0C, 05, 05]
-1845C; [7C 6F 0E, 05, 05]
-1845D; [7C 6F 10, 05, 05]
-1845E; [7C 6F 12, 05, 05]
-1845F; [7C 6F 14, 05, 05]
-18460; [7C 6F 16, 05, 05]
-18461; [7C 6F 18, 05, 05]
-18462; [7C 6F 1A, 05, 05]
-18463; [7C 6F 1C, 05, 05]
-18464; [7C 6F 1E, 05, 05]
-18465; [7C 6F 20, 05, 05]
-18466; [7C 6F 22, 05, 05]
-18467; [7C 6F 24, 05, 05]
-18468; [7C 6F 26, 05, 05]
-18469; [7C 6F 28, 05, 05]
-1846A; [7C 6F 2A, 05, 05]
-1846B; [7C 6F 2C, 05, 05]
-1846C; [7C 6F 2E, 05, 05]
-1846D; [7C 6F 30, 05, 05]
-1846E; [7C 6F 32, 05, 05]
-1846F; [7C 6F 34, 05, 05]
-18470; [7C 6F 36, 05, 05]
-18471; [7C 6F 38, 05, 05]
-18472; [7C 6F 3A, 05, 05]
-18473; [7C 6F 3C, 05, 05]
-18474; [7C 6F 3E, 05, 05]
-18475; [7C 6F 40, 05, 05]
-18476; [7C 6F 42, 05, 05]
-18477; [7C 6F 44, 05, 05]
-18478; [7C 6F 46, 05, 05]
-18479; [7C 6F 48, 05, 05]
-1847A; [7C 6F 4A, 05, 05]
-1847B; [7C 6F 4C, 05, 05]
-1847C; [7C 6F 4E, 05, 05]
-1847D; [7C 6F 50, 05, 05]
-1847E; [7C 6F 52, 05, 05]
-1847F; [7C 6F 54, 05, 05]
-18480; [7C 6F 56, 05, 05]
-18481; [7C 6F 58, 05, 05]
-18482; [7C 6F 5A, 05, 05]
-18483; [7C 6F 5C, 05, 05]
-18484; [7C 6F 5E, 05, 05]
-18485; [7C 6F 60, 05, 05]
-18486; [7C 6F 62, 05, 05]
-18487; [7C 6F 64, 05, 05]
-18488; [7C 6F 66, 05, 05]
-18489; [7C 6F 68, 05, 05]
-1848A; [7C 6F 6A, 05, 05]
-1848B; [7C 6F 6C, 05, 05]
-1848C; [7C 6F 6E, 05, 05]
-1848D; [7C 6F 70, 05, 05]
-1848E; [7C 6F 72, 05, 05]
-1848F; [7C 6F 74, 05, 05]
-18490; [7C 6F 76, 05, 05]
-18491; [7C 6F 78, 05, 05]
-18492; [7C 6F 7A, 05, 05]
-18493; [7C 6F 7C, 05, 05]
-18494; [7C 6F 7E, 05, 05]
-18495; [7C 6F 80, 05, 05]
-18496; [7C 6F 82, 05, 05]
-18497; [7C 6F 84, 05, 05]
-18498; [7C 6F 86, 05, 05]
-18499; [7C 6F 88, 05, 05]
-1849A; [7C 6F 8A, 05, 05]
-1849B; [7C 6F 8C, 05, 05]
-1849C; [7C 6F 8E, 05, 05]
-1849D; [7C 6F 90, 05, 05]
-1849E; [7C 6F 92, 05, 05]
-1849F; [7C 6F 94, 05, 05]
-184A0; [7C 6F 96, 05, 05]
-184A1; [7C 6F 98, 05, 05]
-184A2; [7C 6F 9A, 05, 05]
-184A3; [7C 6F 9C, 05, 05]
-184A4; [7C 6F 9E, 05, 05]
-184A5; [7C 6F A0, 05, 05]
-184A6; [7C 6F A2, 05, 05]
-184A7; [7C 6F A4, 05, 05]
-184A8; [7C 6F A6, 05, 05]
-184A9; [7C 6F A8, 05, 05]
-184AA; [7C 6F AA, 05, 05]
-184AB; [7C 6F AC, 05, 05]
-184AC; [7C 6F AE, 05, 05]
-184AD; [7C 6F B0, 05, 05]
-184AE; [7C 6F B2, 05, 05]
-184AF; [7C 6F B4, 05, 05]
-184B0; [7C 6F B6, 05, 05]
-184B1; [7C 6F B8, 05, 05]
-184B2; [7C 6F BA, 05, 05]
-184B3; [7C 6F BC, 05, 05]
-184B4; [7C 6F BE, 05, 05]
-184B5; [7C 6F C0, 05, 05]
-184B6; [7C 6F C2, 05, 05]
-184B7; [7C 6F C4, 05, 05]
-184B8; [7C 6F C6, 05, 05]
-184B9; [7C 6F C8, 05, 05]
-184BA; [7C 6F CA, 05, 05]
-184BB; [7C 6F CC, 05, 05]
-184BC; [7C 6F CE, 05, 05]
-184BD; [7C 6F D0, 05, 05]
-184BE; [7C 6F D2, 05, 05]
-184BF; [7C 6F D4, 05, 05]
-184C0; [7C 6F D6, 05, 05]
-184C1; [7C 6F D8, 05, 05]
-184C2; [7C 6F DA, 05, 05]
-184C3; [7C 6F DC, 05, 05]
-184C4; [7C 6F DE, 05, 05]
-184C5; [7C 6F E0, 05, 05]
-184C6; [7C 6F E2, 05, 05]
-184C7; [7C 6F E4, 05, 05]
-184C8; [7C 6F E6, 05, 05]
-184C9; [7C 6F E8, 05, 05]
-184CA; [7C 6F EA, 05, 05]
-184CB; [7C 6F EC, 05, 05]
-184CC; [7C 6F EE, 05, 05]
-184CD; [7C 6F F0, 05, 05]
-184CE; [7C 6F F2, 05, 05]
-184CF; [7C 6F F4, 05, 05]
-184D0; [7C 6F F6, 05, 05]
-184D1; [7C 6F F8, 05, 05]
-184D2; [7C 6F FA, 05, 05]
-184D3; [7C 6F FC, 05, 05]
-184D4; [7C 6F FE, 05, 05]
-184D5; [7C 70 02, 05, 05]
-184D6; [7C 70 04, 05, 05]
-184D7; [7C 70 06, 05, 05]
-184D8; [7C 70 08, 05, 05]
-184D9; [7C 70 0A, 05, 05]
-184DA; [7C 70 0C, 05, 05]
-184DB; [7C 70 0E, 05, 05]
-184DC; [7C 70 10, 05, 05]
-184DD; [7C 70 12, 05, 05]
-184DE; [7C 70 14, 05, 05]
-184DF; [7C 70 16, 05, 05]
-184E0; [7C 70 18, 05, 05]
-184E1; [7C 70 1A, 05, 05]
-184E2; [7C 70 1C, 05, 05]
-184E3; [7C 70 1E, 05, 05]
-184E4; [7C 70 20, 05, 05]
-184E5; [7C 70 22, 05, 05]
-184E6; [7C 70 24, 05, 05]
-184E7; [7C 70 26, 05, 05]
-184E8; [7C 70 28, 05, 05]
-184E9; [7C 70 2A, 05, 05]
-184EA; [7C 70 2C, 05, 05]
-184EB; [7C 70 2E, 05, 05]
-184EC; [7C 70 30, 05, 05]
-184ED; [7C 70 32, 05, 05]
-184EE; [7C 70 34, 05, 05]
-184EF; [7C 70 36, 05, 05]
-184F0; [7C 70 38, 05, 05]
-184F1; [7C 70 3A, 05, 05]
-184F2; [7C 70 3C, 05, 05]
-184F3; [7C 70 3E, 05, 05]
-184F4; [7C 70 40, 05, 05]
-184F5; [7C 70 42, 05, 05]
-184F6; [7C 70 44, 05, 05]
-184F7; [7C 70 46, 05, 05]
-184F8; [7C 70 48, 05, 05]
-184F9; [7C 70 4A, 05, 05]
-184FA; [7C 70 4C, 05, 05]
-184FB; [7C 70 4E, 05, 05]
-184FC; [7C 70 50, 05, 05]
-184FD; [7C 70 52, 05, 05]
-184FE; [7C 70 54, 05, 05]
-184FF; [7C 70 56, 05, 05]
-18500; [7C 70 58, 05, 05]
-18501; [7C 70 5A, 05, 05]
-18502; [7C 70 5C, 05, 05]
-18503; [7C 70 5E, 05, 05]
-18504; [7C 70 60, 05, 05]
-18505; [7C 70 62, 05, 05]
-18506; [7C 70 64, 05, 05]
-18507; [7C 70 66, 05, 05]
-18508; [7C 70 68, 05, 05]
-18509; [7C 70 6A, 05, 05]
-1850A; [7C 70 6C, 05, 05]
-1850B; [7C 70 6E, 05, 05]
-1850C; [7C 70 70, 05, 05]
-1850D; [7C 70 72, 05, 05]
-1850E; [7C 70 74, 05, 05]
-1850F; [7C 70 76, 05, 05]
-18510; [7C 70 78, 05, 05]
-18511; [7C 70 7A, 05, 05]
-18512; [7C 70 7C, 05, 05]
-18513; [7C 70 7E, 05, 05]
-18514; [7C 70 80, 05, 05]
-18515; [7C 70 82, 05, 05]
-18516; [7C 70 84, 05, 05]
-18517; [7C 70 86, 05, 05]
-18518; [7C 70 88, 05, 05]
-18519; [7C 70 8A, 05, 05]
-1851A; [7C 70 8C, 05, 05]
-1851B; [7C 70 8E, 05, 05]
-1851C; [7C 70 90, 05, 05]
-1851D; [7C 70 92, 05, 05]
-1851E; [7C 70 94, 05, 05]
-1851F; [7C 70 96, 05, 05]
-18520; [7C 70 98, 05, 05]
-18521; [7C 70 9A, 05, 05]
-18522; [7C 70 9C, 05, 05]
-18523; [7C 70 9E, 05, 05]
-18524; [7C 70 A0, 05, 05]
-18525; [7C 70 A2, 05, 05]
-18526; [7C 70 A4, 05, 05]
-18527; [7C 70 A6, 05, 05]
-18528; [7C 70 A8, 05, 05]
-18529; [7C 70 AA, 05, 05]
-1852A; [7C 70 AC, 05, 05]
-1852B; [7C 70 AE, 05, 05]
-1852C; [7C 70 B0, 05, 05]
-1852D; [7C 70 B2, 05, 05]
-1852E; [7C 70 B4, 05, 05]
-1852F; [7C 70 B6, 05, 05]
-18530; [7C 70 B8, 05, 05]
-18531; [7C 70 BA, 05, 05]
-18532; [7C 70 BC, 05, 05]
-18533; [7C 70 BE, 05, 05]
-18534; [7C 70 C0, 05, 05]
-18535; [7C 70 C2, 05, 05]
-18536; [7C 70 C4, 05, 05]
-18537; [7C 70 C6, 05, 05]
-18538; [7C 70 C8, 05, 05]
-18539; [7C 70 CA, 05, 05]
-1853A; [7C 70 CC, 05, 05]
-1853B; [7C 70 CE, 05, 05]
-1853C; [7C 70 D0, 05, 05]
-1853D; [7C 70 D2, 05, 05]
-1853E; [7C 70 D4, 05, 05]
-1853F; [7C 70 D6, 05, 05]
-18540; [7C 70 D8, 05, 05]
-18541; [7C 70 DA, 05, 05]
-18542; [7C 70 DC, 05, 05]
-18543; [7C 70 DE, 05, 05]
-18544; [7C 70 E0, 05, 05]
-18545; [7C 70 E2, 05, 05]
-18546; [7C 70 E4, 05, 05]
-18547; [7C 70 E6, 05, 05]
-18548; [7C 70 E8, 05, 05]
-18549; [7C 70 EA, 05, 05]
-1854A; [7C 70 EC, 05, 05]
-1854B; [7C 70 EE, 05, 05]
-1854C; [7C 70 F0, 05, 05]
-1854D; [7C 70 F2, 05, 05]
-1854E; [7C 70 F4, 05, 05]
-1854F; [7C 70 F6, 05, 05]
-18550; [7C 70 F8, 05, 05]
-18551; [7C 70 FA, 05, 05]
-18552; [7C 70 FC, 05, 05]
-18553; [7C 70 FE, 05, 05]
-18554; [7C 71 02, 05, 05]
-18555; [7C 71 04, 05, 05]
-18556; [7C 71 06, 05, 05]
-18557; [7C 71 08, 05, 05]
-18558; [7C 71 0A, 05, 05]
-18559; [7C 71 0C, 05, 05]
-1855A; [7C 71 0E, 05, 05]
-1855B; [7C 71 10, 05, 05]
-1855C; [7C 71 12, 05, 05]
-1855D; [7C 71 14, 05, 05]
-1855E; [7C 71 16, 05, 05]
-1855F; [7C 71 18, 05, 05]
-18560; [7C 71 1A, 05, 05]
-18561; [7C 71 1C, 05, 05]
-18562; [7C 71 1E, 05, 05]
-18563; [7C 71 20, 05, 05]
-18564; [7C 71 22, 05, 05]
-18565; [7C 71 24, 05, 05]
-18566; [7C 71 26, 05, 05]
-18567; [7C 71 28, 05, 05]
-18568; [7C 71 2A, 05, 05]
-18569; [7C 71 2C, 05, 05]
-1856A; [7C 71 2E, 05, 05]
-1856B; [7C 71 30, 05, 05]
-1856C; [7C 71 32, 05, 05]
-1856D; [7C 71 34, 05, 05]
-1856E; [7C 71 36, 05, 05]
-1856F; [7C 71 38, 05, 05]
-18570; [7C 71 3A, 05, 05]
-18571; [7C 71 3C, 05, 05]
-18572; [7C 71 3E, 05, 05]
-18573; [7C 71 40, 05, 05]
-18574; [7C 71 42, 05, 05]
-18575; [7C 71 44, 05, 05]
-18576; [7C 71 46, 05, 05]
-18577; [7C 71 48, 05, 05]
-18578; [7C 71 4A, 05, 05]
-18579; [7C 71 4C, 05, 05]
-1857A; [7C 71 4E, 05, 05]
-1857B; [7C 71 50, 05, 05]
-1857C; [7C 71 52, 05, 05]
-1857D; [7C 71 54, 05, 05]
-1857E; [7C 71 56, 05, 05]
-1857F; [7C 71 58, 05, 05]
-18580; [7C 71 5A, 05, 05]
-18581; [7C 71 5C, 05, 05]
-18582; [7C 71 5E, 05, 05]
-18583; [7C 71 60, 05, 05]
-18584; [7C 71 62, 05, 05]
-18585; [7C 71 64, 05, 05]
-18586; [7C 71 66, 05, 05]
-18587; [7C 71 68, 05, 05]
-18588; [7C 71 6A, 05, 05]
-18589; [7C 71 6C, 05, 05]
-1858A; [7C 71 6E, 05, 05]
-1858B; [7C 71 70, 05, 05]
-1858C; [7C 71 72, 05, 05]
-1858D; [7C 71 74, 05, 05]
-1858E; [7C 71 76, 05, 05]
-1858F; [7C 71 78, 05, 05]
-18590; [7C 71 7A, 05, 05]
-18591; [7C 71 7C, 05, 05]
-18592; [7C 71 7E, 05, 05]
-18593; [7C 71 80, 05, 05]
-18594; [7C 71 82, 05, 05]
-18595; [7C 71 84, 05, 05]
-18596; [7C 71 86, 05, 05]
-18597; [7C 71 88, 05, 05]
-18598; [7C 71 8A, 05, 05]
-18599; [7C 71 8C, 05, 05]
-1859A; [7C 71 8E, 05, 05]
-1859B; [7C 71 90, 05, 05]
-1859C; [7C 71 92, 05, 05]
-1859D; [7C 71 94, 05, 05]
-1859E; [7C 71 96, 05, 05]
-1859F; [7C 71 98, 05, 05]
-185A0; [7C 71 9A, 05, 05]
-185A1; [7C 71 9C, 05, 05]
-185A2; [7C 71 9E, 05, 05]
-185A3; [7C 71 A0, 05, 05]
-185A4; [7C 71 A2, 05, 05]
-185A5; [7C 71 A4, 05, 05]
-185A6; [7C 71 A6, 05, 05]
-185A7; [7C 71 A8, 05, 05]
-185A8; [7C 71 AA, 05, 05]
-185A9; [7C 71 AC, 05, 05]
-185AA; [7C 71 AE, 05, 05]
-185AB; [7C 71 B0, 05, 05]
-185AC; [7C 71 B2, 05, 05]
-185AD; [7C 71 B4, 05, 05]
-185AE; [7C 71 B6, 05, 05]
-185AF; [7C 71 B8, 05, 05]
-185B0; [7C 71 BA, 05, 05]
-185B1; [7C 71 BC, 05, 05]
-185B2; [7C 71 BE, 05, 05]
-185B3; [7C 71 C0, 05, 05]
-185B4; [7C 71 C2, 05, 05]
-185B5; [7C 71 C4, 05, 05]
-185B6; [7C 71 C6, 05, 05]
-185B7; [7C 71 C8, 05, 05]
-185B8; [7C 71 CA, 05, 05]
-185B9; [7C 71 CC, 05, 05]
-185BA; [7C 71 CE, 05, 05]
-185BB; [7C 71 D0, 05, 05]
-185BC; [7C 71 D2, 05, 05]
-185BD; [7C 71 D4, 05, 05]
-185BE; [7C 71 D6, 05, 05]
-185BF; [7C 71 D8, 05, 05]
-185C0; [7C 71 DA, 05, 05]
-185C1; [7C 71 DC, 05, 05]
-185C2; [7C 71 DE, 05, 05]
-185C3; [7C 71 E0, 05, 05]
-185C4; [7C 71 E2, 05, 05]
-185C5; [7C 71 E4, 05, 05]
-185C6; [7C 71 E6, 05, 05]
-185C7; [7C 71 E8, 05, 05]
-185C8; [7C 71 EA, 05, 05]
-185C9; [7C 71 EC, 05, 05]
-185CA; [7C 71 EE, 05, 05]
-185CB; [7C 71 F0, 05, 05]
-185CC; [7C 71 F2, 05, 05]
-185CD; [7C 71 F4, 05, 05]
-185CE; [7C 71 F6, 05, 05]
-185CF; [7C 71 F8, 05, 05]
-185D0; [7C 71 FA, 05, 05]
-185D1; [7C 71 FC, 05, 05]
-185D2; [7C 71 FE, 05, 05]
-185D3; [7C 72 02, 05, 05]
-185D4; [7C 72 04, 05, 05]
-185D5; [7C 72 06, 05, 05]
-185D6; [7C 72 08, 05, 05]
-185D7; [7C 72 0A, 05, 05]
-185D8; [7C 72 0C, 05, 05]
-185D9; [7C 72 0E, 05, 05]
-185DA; [7C 72 10, 05, 05]
-185DB; [7C 72 12, 05, 05]
-185DC; [7C 72 14, 05, 05]
-185DD; [7C 72 16, 05, 05]
-185DE; [7C 72 18, 05, 05]
-185DF; [7C 72 1A, 05, 05]
-185E0; [7C 72 1C, 05, 05]
-185E1; [7C 72 1E, 05, 05]
-185E2; [7C 72 20, 05, 05]
-185E3; [7C 72 22, 05, 05]
-185E4; [7C 72 24, 05, 05]
-185E5; [7C 72 26, 05, 05]
-185E6; [7C 72 28, 05, 05]
-185E7; [7C 72 2A, 05, 05]
-185E8; [7C 72 2C, 05, 05]
-185E9; [7C 72 2E, 05, 05]
-185EA; [7C 72 30, 05, 05]
-185EB; [7C 72 32, 05, 05]
-185EC; [7C 72 34, 05, 05]
-185ED; [7C 72 36, 05, 05]
-185EE; [7C 72 38, 05, 05]
-185EF; [7C 72 3A, 05, 05]
-185F0; [7C 72 3C, 05, 05]
-185F1; [7C 72 3E, 05, 05]
-185F2; [7C 72 40, 05, 05]
-185F3; [7C 72 42, 05, 05]
-185F4; [7C 72 44, 05, 05]
-185F5; [7C 72 46, 05, 05]
-185F6; [7C 72 48, 05, 05]
-185F7; [7C 72 4A, 05, 05]
-185F8; [7C 72 4C, 05, 05]
-185F9; [7C 72 4E, 05, 05]
-185FA; [7C 72 50, 05, 05]
-185FB; [7C 72 52, 05, 05]
-185FC; [7C 72 54, 05, 05]
-185FD; [7C 72 56, 05, 05]
-185FE; [7C 72 58, 05, 05]
-185FF; [7C 72 5A, 05, 05]
-18600; [7C 72 5C, 05, 05]
-18601; [7C 72 5E, 05, 05]
-18602; [7C 72 60, 05, 05]
-18603; [7C 72 62, 05, 05]
-18604; [7C 72 64, 05, 05]
-18605; [7C 72 66, 05, 05]
-18606; [7C 72 68, 05, 05]
-18607; [7C 72 6A, 05, 05]
-18608; [7C 72 6C, 05, 05]
-18609; [7C 72 6E, 05, 05]
-1860A; [7C 72 70, 05, 05]
-1860B; [7C 72 72, 05, 05]
-1860C; [7C 72 74, 05, 05]
-1860D; [7C 72 76, 05, 05]
-1860E; [7C 72 78, 05, 05]
-1860F; [7C 72 7A, 05, 05]
-18610; [7C 72 7C, 05, 05]
-18611; [7C 72 7E, 05, 05]
-18612; [7C 72 80, 05, 05]
-18613; [7C 72 82, 05, 05]
-18614; [7C 72 84, 05, 05]
-18615; [7C 72 86, 05, 05]
-18616; [7C 72 88, 05, 05]
-18617; [7C 72 8A, 05, 05]
-18618; [7C 72 8C, 05, 05]
-18619; [7C 72 8E, 05, 05]
-1861A; [7C 72 90, 05, 05]
-1861B; [7C 72 92, 05, 05]
-1861C; [7C 72 94, 05, 05]
-1861D; [7C 72 96, 05, 05]
-1861E; [7C 72 98, 05, 05]
-1861F; [7C 72 9A, 05, 05]
-18620; [7C 72 9C, 05, 05]
-18621; [7C 72 9E, 05, 05]
-18622; [7C 72 A0, 05, 05]
-18623; [7C 72 A2, 05, 05]
-18624; [7C 72 A4, 05, 05]
-18625; [7C 72 A6, 05, 05]
-18626; [7C 72 A8, 05, 05]
-18627; [7C 72 AA, 05, 05]
-18628; [7C 72 AC, 05, 05]
-18629; [7C 72 AE, 05, 05]
-1862A; [7C 72 B0, 05, 05]
-1862B; [7C 72 B2, 05, 05]
-1862C; [7C 72 B4, 05, 05]
-1862D; [7C 72 B6, 05, 05]
-1862E; [7C 72 B8, 05, 05]
-1862F; [7C 72 BA, 05, 05]
-18630; [7C 72 BC, 05, 05]
-18631; [7C 72 BE, 05, 05]
-18632; [7C 72 C0, 05, 05]
-18633; [7C 72 C2, 05, 05]
-18634; [7C 72 C4, 05, 05]
-18635; [7C 72 C6, 05, 05]
-18636; [7C 72 C8, 05, 05]
-18637; [7C 72 CA, 05, 05]
-18638; [7C 72 CC, 05, 05]
-18639; [7C 72 CE, 05, 05]
-1863A; [7C 72 D0, 05, 05]
-1863B; [7C 72 D2, 05, 05]
-1863C; [7C 72 D4, 05, 05]
-1863D; [7C 72 D6, 05, 05]
-1863E; [7C 72 D8, 05, 05]
-1863F; [7C 72 DA, 05, 05]
-18640; [7C 72 DC, 05, 05]
-18641; [7C 72 DE, 05, 05]
-18642; [7C 72 E0, 05, 05]
-18643; [7C 72 E2, 05, 05]
-18644; [7C 72 E4, 05, 05]
-18645; [7C 72 E6, 05, 05]
-18646; [7C 72 E8, 05, 05]
-18647; [7C 72 EA, 05, 05]
-18648; [7C 72 EC, 05, 05]
-18649; [7C 72 EE, 05, 05]
-1864A; [7C 72 F0, 05, 05]
-1864B; [7C 72 F2, 05, 05]
-1864C; [7C 72 F4, 05, 05]
-1864D; [7C 72 F6, 05, 05]
-1864E; [7C 72 F8, 05, 05]
-1864F; [7C 72 FA, 05, 05]
-18650; [7C 72 FC, 05, 05]
-18651; [7C 72 FE, 05, 05]
-18652; [7C 73 02, 05, 05]
-18653; [7C 73 04, 05, 05]
-18654; [7C 73 06, 05, 05]
-18655; [7C 73 08, 05, 05]
-18656; [7C 73 0A, 05, 05]
-18657; [7C 73 0C, 05, 05]
-18658; [7C 73 0E, 05, 05]
-18659; [7C 73 10, 05, 05]
-1865A; [7C 73 12, 05, 05]
-1865B; [7C 73 14, 05, 05]
-1865C; [7C 73 16, 05, 05]
-1865D; [7C 73 18, 05, 05]
-1865E; [7C 73 1A, 05, 05]
-1865F; [7C 73 1C, 05, 05]
-18660; [7C 73 1E, 05, 05]
-18661; [7C 73 20, 05, 05]
-18662; [7C 73 22, 05, 05]
-18663; [7C 73 24, 05, 05]
-18664; [7C 73 26, 05, 05]
-18665; [7C 73 28, 05, 05]
-18666; [7C 73 2A, 05, 05]
-18667; [7C 73 2C, 05, 05]
-18668; [7C 73 2E, 05, 05]
-18669; [7C 73 30, 05, 05]
-1866A; [7C 73 32, 05, 05]
-1866B; [7C 73 34, 05, 05]
-1866C; [7C 73 36, 05, 05]
-1866D; [7C 73 38, 05, 05]
-1866E; [7C 73 3A, 05, 05]
-1866F; [7C 73 3C, 05, 05]
-18670; [7C 73 3E, 05, 05]
-18671; [7C 73 40, 05, 05]
-18672; [7C 73 42, 05, 05]
-18673; [7C 73 44, 05, 05]
-18674; [7C 73 46, 05, 05]
-18675; [7C 73 48, 05, 05]
-18676; [7C 73 4A, 05, 05]
-18677; [7C 73 4C, 05, 05]
-18678; [7C 73 4E, 05, 05]
-18679; [7C 73 50, 05, 05]
-1867A; [7C 73 52, 05, 05]
-1867B; [7C 73 54, 05, 05]
-1867C; [7C 73 56, 05, 05]
-1867D; [7C 73 58, 05, 05]
-1867E; [7C 73 5A, 05, 05]
-1867F; [7C 73 5C, 05, 05]
-18680; [7C 73 5E, 05, 05]
-18681; [7C 73 60, 05, 05]
-18682; [7C 73 62, 05, 05]
-18683; [7C 73 64, 05, 05]
-18684; [7C 73 66, 05, 05]
-18685; [7C 73 68, 05, 05]
-18686; [7C 73 6A, 05, 05]
-18687; [7C 73 6C, 05, 05]
-18688; [7C 73 6E, 05, 05]
-18689; [7C 73 70, 05, 05]
-1868A; [7C 73 72, 05, 05]
-1868B; [7C 73 74, 05, 05]
-1868C; [7C 73 76, 05, 05]
-1868D; [7C 73 78, 05, 05]
-1868E; [7C 73 7A, 05, 05]
-1868F; [7C 73 7C, 05, 05]
-18690; [7C 73 7E, 05, 05]
-18691; [7C 73 80, 05, 05]
-18692; [7C 73 82, 05, 05]
-18693; [7C 73 84, 05, 05]
-18694; [7C 73 86, 05, 05]
-18695; [7C 73 88, 05, 05]
-18696; [7C 73 8A, 05, 05]
-18697; [7C 73 8C, 05, 05]
-18698; [7C 73 8E, 05, 05]
-18699; [7C 73 90, 05, 05]
-1869A; [7C 73 92, 05, 05]
-1869B; [7C 73 94, 05, 05]
-1869C; [7C 73 96, 05, 05]
-1869D; [7C 73 98, 05, 05]
-1869E; [7C 73 9A, 05, 05]
-1869F; [7C 73 9C, 05, 05]
-186A0; [7C 73 9E, 05, 05]
-186A1; [7C 73 A0, 05, 05]
-186A2; [7C 73 A2, 05, 05]
-186A3; [7C 73 A4, 05, 05]
-186A4; [7C 73 A6, 05, 05]
-186A5; [7C 73 A8, 05, 05]
-186A6; [7C 73 AA, 05, 05]
-186A7; [7C 73 AC, 05, 05]
-186A8; [7C 73 AE, 05, 05]
-186A9; [7C 73 B0, 05, 05]
-186AA; [7C 73 B2, 05, 05]
-186AB; [7C 73 B4, 05, 05]
-186AC; [7C 73 B6, 05, 05]
-186AD; [7C 73 B8, 05, 05]
-186AE; [7C 73 BA, 05, 05]
-186AF; [7C 73 BC, 05, 05]
-186B0; [7C 73 BE, 05, 05]
-186B1; [7C 73 C0, 05, 05]
-186B2; [7C 73 C2, 05, 05]
-186B3; [7C 73 C4, 05, 05]
-186B4; [7C 73 C6, 05, 05]
-186B5; [7C 73 C8, 05, 05]
-186B6; [7C 73 CA, 05, 05]
-186B7; [7C 73 CC, 05, 05]
-186B8; [7C 73 CE, 05, 05]
-186B9; [7C 73 D0, 05, 05]
-186BA; [7C 73 D2, 05, 05]
-186BB; [7C 73 D4, 05, 05]
-186BC; [7C 73 D6, 05, 05]
-186BD; [7C 73 D8, 05, 05]
-186BE; [7C 73 DA, 05, 05]
-186BF; [7C 73 DC, 05, 05]
-186C0; [7C 73 DE, 05, 05]
-186C1; [7C 73 E0, 05, 05]
-186C2; [7C 73 E2, 05, 05]
-186C3; [7C 73 E4, 05, 05]
-186C4; [7C 73 E6, 05, 05]
-186C5; [7C 73 E8, 05, 05]
-186C6; [7C 73 EA, 05, 05]
-186C7; [7C 73 EC, 05, 05]
-186C8; [7C 73 EE, 05, 05]
-186C9; [7C 73 F0, 05, 05]
-186CA; [7C 73 F2, 05, 05]
-186CB; [7C 73 F4, 05, 05]
-186CC; [7C 73 F6, 05, 05]
-186CD; [7C 73 F8, 05, 05]
-186CE; [7C 73 FA, 05, 05]
-186CF; [7C 73 FC, 05, 05]
-186D0; [7C 73 FE, 05, 05]
-186D1; [7C 74 02, 05, 05]
-186D2; [7C 74 04, 05, 05]
-186D3; [7C 74 06, 05, 05]
-186D4; [7C 74 08, 05, 05]
-186D5; [7C 74 0A, 05, 05]
-186D6; [7C 74 0C, 05, 05]
-186D7; [7C 74 0E, 05, 05]
-186D8; [7C 74 10, 05, 05]
-186D9; [7C 74 12, 05, 05]
-186DA; [7C 74 14, 05, 05]
-186DB; [7C 74 16, 05, 05]
-186DC; [7C 74 18, 05, 05]
-186DD; [7C 74 1A, 05, 05]
-186DE; [7C 74 1C, 05, 05]
-186DF; [7C 74 1E, 05, 05]
-186E0; [7C 74 20, 05, 05]
-186E1; [7C 74 22, 05, 05]
-186E2; [7C 74 24, 05, 05]
-186E3; [7C 74 26, 05, 05]
-186E4; [7C 74 28, 05, 05]
-186E5; [7C 74 2A, 05, 05]
-186E6; [7C 74 2C, 05, 05]
-186E7; [7C 74 2E, 05, 05]
-186E8; [7C 74 30, 05, 05]
-186E9; [7C 74 32, 05, 05]
-186EA; [7C 74 34, 05, 05]
-186EB; [7C 74 36, 05, 05]
-186EC; [7C 74 38, 05, 05]
-186ED; [7C 74 3A, 05, 05]
-186EE; [7C 74 3C, 05, 05]
-186EF; [7C 74 3E, 05, 05]
-186F0; [7C 74 40, 05, 05]
-186F1; [7C 74 42, 05, 05]
-186F2; [7C 74 44, 05, 05]
-186F3; [7C 74 46, 05, 05]
-186F4; [7C 74 48, 05, 05]
-186F5; [7C 74 4A, 05, 05]
-186F6; [7C 74 4C, 05, 05]
-186F7; [7C 74 4E, 05, 05]
-186F8; [7C 74 50, 05, 05]
-186F9; [7C 74 52, 05, 05]
-186FA; [7C 74 54, 05, 05]
-186FB; [7C 74 56, 05, 05]
-186FC; [7C 74 58, 05, 05]
-186FD; [7C 74 5A, 05, 05]
-186FE; [7C 74 5C, 05, 05]
-186FF; [7C 74 5E, 05, 05]
-18700; [7C 74 60, 05, 05]
-18701; [7C 74 62, 05, 05]
-18702; [7C 74 64, 05, 05]
-18703; [7C 74 66, 05, 05]
-18704; [7C 74 68, 05, 05]
-18705; [7C 74 6A, 05, 05]
-18706; [7C 74 6C, 05, 05]
-18707; [7C 74 6E, 05, 05]
-18708; [7C 74 70, 05, 05]
-18709; [7C 74 72, 05, 05]
-1870A; [7C 74 74, 05, 05]
-1870B; [7C 74 76, 05, 05]
-1870C; [7C 74 78, 05, 05]
-1870D; [7C 74 7A, 05, 05]
-1870E; [7C 74 7C, 05, 05]
-1870F; [7C 74 7E, 05, 05]
-18710; [7C 74 80, 05, 05]
-18711; [7C 74 82, 05, 05]
-18712; [7C 74 84, 05, 05]
-18713; [7C 74 86, 05, 05]
-18714; [7C 74 88, 05, 05]
-18715; [7C 74 8A, 05, 05]
-18716; [7C 74 8C, 05, 05]
-18717; [7C 74 8E, 05, 05]
-18718; [7C 74 90, 05, 05]
-18719; [7C 74 92, 05, 05]
-1871A; [7C 74 94, 05, 05]
-1871B; [7C 74 96, 05, 05]
-1871C; [7C 74 98, 05, 05]
-1871D; [7C 74 9A, 05, 05]
-1871E; [7C 74 9C, 05, 05]
-1871F; [7C 74 9E, 05, 05]
-18720; [7C 74 A0, 05, 05]
-18721; [7C 74 A2, 05, 05]
-18722; [7C 74 A4, 05, 05]
-18723; [7C 74 A6, 05, 05]
-18724; [7C 74 A8, 05, 05]
-18725; [7C 74 AA, 05, 05]
-18726; [7C 74 AC, 05, 05]
-18727; [7C 74 AE, 05, 05]
-18728; [7C 74 B0, 05, 05]
-18729; [7C 74 B2, 05, 05]
-1872A; [7C 74 B4, 05, 05]
-1872B; [7C 74 B6, 05, 05]
-1872C; [7C 74 B8, 05, 05]
-1872D; [7C 74 BA, 05, 05]
-1872E; [7C 74 BC, 05, 05]
-1872F; [7C 74 BE, 05, 05]
-18730; [7C 74 C0, 05, 05]
-18731; [7C 74 C2, 05, 05]
-18732; [7C 74 C4, 05, 05]
-18733; [7C 74 C6, 05, 05]
-18734; [7C 74 C8, 05, 05]
-18735; [7C 74 CA, 05, 05]
-18736; [7C 74 CC, 05, 05]
-18737; [7C 74 CE, 05, 05]
-18738; [7C 74 D0, 05, 05]
-18739; [7C 74 D2, 05, 05]
-1873A; [7C 74 D4, 05, 05]
-1873B; [7C 74 D6, 05, 05]
-1873C; [7C 74 D8, 05, 05]
-1873D; [7C 74 DA, 05, 05]
-1873E; [7C 74 DC, 05, 05]
-1873F; [7C 74 DE, 05, 05]
-18740; [7C 74 E0, 05, 05]
-18741; [7C 74 E2, 05, 05]
-18742; [7C 74 E4, 05, 05]
-18743; [7C 74 E6, 05, 05]
-18744; [7C 74 E8, 05, 05]
-18745; [7C 74 EA, 05, 05]
-18746; [7C 74 EC, 05, 05]
-18747; [7C 74 EE, 05, 05]
-18748; [7C 74 F0, 05, 05]
-18749; [7C 74 F2, 05, 05]
-1874A; [7C 74 F4, 05, 05]
-1874B; [7C 74 F6, 05, 05]
-1874C; [7C 74 F8, 05, 05]
-1874D; [7C 74 FA, 05, 05]
-1874E; [7C 74 FC, 05, 05]
-1874F; [7C 74 FE, 05, 05]
-18750; [7C 75 02, 05, 05]
-18751; [7C 75 04, 05, 05]
-18752; [7C 75 06, 05, 05]
-18753; [7C 75 08, 05, 05]
-18754; [7C 75 0A, 05, 05]
-18755; [7C 75 0C, 05, 05]
-18756; [7C 75 0E, 05, 05]
-18757; [7C 75 10, 05, 05]
-18758; [7C 75 12, 05, 05]
-18759; [7C 75 14, 05, 05]
-1875A; [7C 75 16, 05, 05]
-1875B; [7C 75 18, 05, 05]
-1875C; [7C 75 1A, 05, 05]
-1875D; [7C 75 1C, 05, 05]
-1875E; [7C 75 1E, 05, 05]
-1875F; [7C 75 20, 05, 05]
-18760; [7C 75 22, 05, 05]
-18761; [7C 75 24, 05, 05]
-18762; [7C 75 26, 05, 05]
-18763; [7C 75 28, 05, 05]
-18764; [7C 75 2A, 05, 05]
-18765; [7C 75 2C, 05, 05]
-18766; [7C 75 2E, 05, 05]
-18767; [7C 75 30, 05, 05]
-18768; [7C 75 32, 05, 05]
-18769; [7C 75 34, 05, 05]
-1876A; [7C 75 36, 05, 05]
-1876B; [7C 75 38, 05, 05]
-1876C; [7C 75 3A, 05, 05]
-1876D; [7C 75 3C, 05, 05]
-1876E; [7C 75 3E, 05, 05]
-1876F; [7C 75 40, 05, 05]
-18770; [7C 75 42, 05, 05]
-18771; [7C 75 44, 05, 05]
-18772; [7C 75 46, 05, 05]
-18773; [7C 75 48, 05, 05]
-18774; [7C 75 4A, 05, 05]
-18775; [7C 75 4C, 05, 05]
-18776; [7C 75 4E, 05, 05]
-18777; [7C 75 50, 05, 05]
-18778; [7C 75 52, 05, 05]
-18779; [7C 75 54, 05, 05]
-1877A; [7C 75 56, 05, 05]
-1877B; [7C 75 58, 05, 05]
-1877C; [7C 75 5A, 05, 05]
-1877D; [7C 75 5C, 05, 05]
-1877E; [7C 75 5E, 05, 05]
-1877F; [7C 75 60, 05, 05]
-18780; [7C 75 62, 05, 05]
-18781; [7C 75 64, 05, 05]
-18782; [7C 75 66, 05, 05]
-18783; [7C 75 68, 05, 05]
-18784; [7C 75 6A, 05, 05]
-18785; [7C 75 6C, 05, 05]
-18786; [7C 75 6E, 05, 05]
-18787; [7C 75 70, 05, 05]
-18788; [7C 75 72, 05, 05]
-18789; [7C 75 74, 05, 05]
-1878A; [7C 75 76, 05, 05]
-1878B; [7C 75 78, 05, 05]
-1878C; [7C 75 7A, 05, 05]
-1878D; [7C 75 7C, 05, 05]
-1878E; [7C 75 7E, 05, 05]
-1878F; [7C 75 80, 05, 05]
-18790; [7C 75 82, 05, 05]
-18791; [7C 75 84, 05, 05]
-18792; [7C 75 86, 05, 05]
-18793; [7C 75 88, 05, 05]
-18794; [7C 75 8A, 05, 05]
-18795; [7C 75 8C, 05, 05]
-18796; [7C 75 8E, 05, 05]
-18797; [7C 75 90, 05, 05]
-18798; [7C 75 92, 05, 05]
-18799; [7C 75 94, 05, 05]
-1879A; [7C 75 96, 05, 05]
-1879B; [7C 75 98, 05, 05]
-1879C; [7C 75 9A, 05, 05]
-1879D; [7C 75 9C, 05, 05]
-1879E; [7C 75 9E, 05, 05]
-1879F; [7C 75 A0, 05, 05]
-187A0; [7C 75 A2, 05, 05]
-187A1; [7C 75 A4, 05, 05]
-187A2; [7C 75 A6, 05, 05]
-187A3; [7C 75 A8, 05, 05]
-187A4; [7C 75 AA, 05, 05]
-187A5; [7C 75 AC, 05, 05]
-187A6; [7C 75 AE, 05, 05]
-187A7; [7C 75 B0, 05, 05]
-187A8; [7C 75 B2, 05, 05]
-187A9; [7C 75 B4, 05, 05]
-187AA; [7C 75 B6, 05, 05]
-187AB; [7C 75 B8, 05, 05]
-187AC; [7C 75 BA, 05, 05]
-187AD; [7C 75 BC, 05, 05]
-187AE; [7C 75 BE, 05, 05]
-187AF; [7C 75 C0, 05, 05]
-187B0; [7C 75 C2, 05, 05]
-187B1; [7C 75 C4, 05, 05]
-187B2; [7C 75 C6, 05, 05]
-187B3; [7C 75 C8, 05, 05]
-187B4; [7C 75 CA, 05, 05]
-187B5; [7C 75 CC, 05, 05]
-187B6; [7C 75 CE, 05, 05]
-187B7; [7C 75 D0, 05, 05]
-187B8; [7C 75 D2, 05, 05]
-187B9; [7C 75 D4, 05, 05]
-187BA; [7C 75 D6, 05, 05]
-187BB; [7C 75 D8, 05, 05]
-187BC; [7C 75 DA, 05, 05]
-187BD; [7C 75 DC, 05, 05]
-187BE; [7C 75 DE, 05, 05]
-187BF; [7C 75 E0, 05, 05]
-187C0; [7C 75 E2, 05, 05]
-187C1; [7C 75 E4, 05, 05]
-187C2; [7C 75 E6, 05, 05]
-187C3; [7C 75 E8, 05, 05]
-187C4; [7C 75 EA, 05, 05]
-187C5; [7C 75 EC, 05, 05]
-187C6; [7C 75 EE, 05, 05]
-187C7; [7C 75 F0, 05, 05]
-187C8; [7C 75 F2, 05, 05]
-187C9; [7C 75 F4, 05, 05]
-187CA; [7C 75 F6, 05, 05]
-187CB; [7C 75 F8, 05, 05]
-187CC; [7C 75 FA, 05, 05]
-187CD; [7C 75 FC, 05, 05]
-187CE; [7C 75 FE, 05, 05]
-187CF; [7C 76 02, 05, 05]
-187D0; [7C 76 04, 05, 05]
-187D1; [7C 76 06, 05, 05]
-187D2; [7C 76 08, 05, 05]
-187D3; [7C 76 0A, 05, 05]
-187D4; [7C 76 0C, 05, 05]
-187D5; [7C 76 0E, 05, 05]
-187D6; [7C 76 10, 05, 05]
-187D7; [7C 76 12, 05, 05]
-187D8; [7C 76 14, 05, 05]
-187D9; [7C 76 16, 05, 05]
-187DA; [7C 76 18, 05, 05]
-187DB; [7C 76 1A, 05, 05]
-187DC; [7C 76 1C, 05, 05]
-187DD; [7C 76 1E, 05, 05]
-187DE; [7C 76 20, 05, 05]
-187DF; [7C 76 22, 05, 05]
-187E0; [7C 76 24, 05, 05]
-187E1; [7C 76 26, 05, 05]
-187E2; [7C 76 28, 05, 05]
-187E3; [7C 76 2A, 05, 05]
-187E4; [7C 76 2C, 05, 05]
-187E5; [7C 76 2E, 05, 05]
-187E6; [7C 76 30, 05, 05]
-187E7; [7C 76 32, 05, 05]
-187E8; [7C 76 34, 05, 05]
-187E9; [7C 76 36, 05, 05]
-187EA; [7C 76 38, 05, 05]
-187EB; [7C 76 3A, 05, 05]
-187EC; [7C 76 3C, 05, 05]
-18800; [7C 76 3E, 05, 05]
-18801; [7C 76 40, 05, 05]
-18802; [7C 76 42, 05, 05]
-18803; [7C 76 44, 05, 05]
-18804; [7C 76 46, 05, 05]
-18805; [7C 76 48, 05, 05]
-18806; [7C 76 4A, 05, 05]
-18807; [7C 76 4C, 05, 05]
-18808; [7C 76 4E, 05, 05]
-18809; [7C 76 50, 05, 05]
-1880A; [7C 76 52, 05, 05]
-1880B; [7C 76 54, 05, 05]
-1880C; [7C 76 56, 05, 05]
-1880D; [7C 76 58, 05, 05]
-1880E; [7C 76 5A, 05, 05]
-1880F; [7C 76 5C, 05, 05]
-18810; [7C 76 5E, 05, 05]
-18811; [7C 76 60, 05, 05]
-18812; [7C 76 62, 05, 05]
-18813; [7C 76 64, 05, 05]
-18814; [7C 76 66, 05, 05]
-18815; [7C 76 68, 05, 05]
-18816; [7C 76 6A, 05, 05]
-18817; [7C 76 6C, 05, 05]
-18818; [7C 76 6E, 05, 05]
-18819; [7C 76 70, 05, 05]
-1881A; [7C 76 72, 05, 05]
-1881B; [7C 76 74, 05, 05]
-1881C; [7C 76 76, 05, 05]
-1881D; [7C 76 78, 05, 05]
-1881E; [7C 76 7A, 05, 05]
-1881F; [7C 76 7C, 05, 05]
-18820; [7C 76 7E, 05, 05]
-18821; [7C 76 80, 05, 05]
-18822; [7C 76 82, 05, 05]
-18823; [7C 76 84, 05, 05]
-18824; [7C 76 86, 05, 05]
-18825; [7C 76 88, 05, 05]
-18826; [7C 76 8A, 05, 05]
-18827; [7C 76 8C, 05, 05]
-18828; [7C 76 8E, 05, 05]
-18829; [7C 76 90, 05, 05]
-1882A; [7C 76 92, 05, 05]
-1882B; [7C 76 94, 05, 05]
-1882C; [7C 76 96, 05, 05]
-1882D; [7C 76 98, 05, 05]
-1882E; [7C 76 9A, 05, 05]
-1882F; [7C 76 9C, 05, 05]
-18830; [7C 76 9E, 05, 05]
-18831; [7C 76 A0, 05, 05]
-18832; [7C 76 A2, 05, 05]
-18833; [7C 76 A4, 05, 05]
-18834; [7C 76 A6, 05, 05]
-18835; [7C 76 A8, 05, 05]
-18836; [7C 76 AA, 05, 05]
-18837; [7C 76 AC, 05, 05]
-18838; [7C 76 AE, 05, 05]
-18839; [7C 76 B0, 05, 05]
-1883A; [7C 76 B2, 05, 05]
-1883B; [7C 76 B4, 05, 05]
-1883C; [7C 76 B6, 05, 05]
-1883D; [7C 76 B8, 05, 05]
-1883E; [7C 76 BA, 05, 05]
-1883F; [7C 76 BC, 05, 05]
-18840; [7C 76 BE, 05, 05]
-18841; [7C 76 C0, 05, 05]
-18842; [7C 76 C2, 05, 05]
-18843; [7C 76 C4, 05, 05]
-18844; [7C 76 C6, 05, 05]
-18845; [7C 76 C8, 05, 05]
-18846; [7C 76 CA, 05, 05]
-18847; [7C 76 CC, 05, 05]
-18848; [7C 76 CE, 05, 05]
-18849; [7C 76 D0, 05, 05]
-1884A; [7C 76 D2, 05, 05]
-1884B; [7C 76 D4, 05, 05]
-1884C; [7C 76 D6, 05, 05]
-1884D; [7C 76 D8, 05, 05]
-1884E; [7C 76 DA, 05, 05]
-1884F; [7C 76 DC, 05, 05]
-18850; [7C 76 DE, 05, 05]
-18851; [7C 76 E0, 05, 05]
-18852; [7C 76 E2, 05, 05]
-18853; [7C 76 E4, 05, 05]
-18854; [7C 76 E6, 05, 05]
-18855; [7C 76 E8, 05, 05]
-18856; [7C 76 EA, 05, 05]
-18857; [7C 76 EC, 05, 05]
-18858; [7C 76 EE, 05, 05]
-18859; [7C 76 F0, 05, 05]
-1885A; [7C 76 F2, 05, 05]
-1885B; [7C 76 F4, 05, 05]
-1885C; [7C 76 F6, 05, 05]
-1885D; [7C 76 F8, 05, 05]
-1885E; [7C 76 FA, 05, 05]
-1885F; [7C 76 FC, 05, 05]
-18860; [7C 76 FE, 05, 05]
-18861; [7C 77 02, 05, 05]
-18862; [7C 77 04, 05, 05]
-18863; [7C 77 06, 05, 05]
-18864; [7C 77 08, 05, 05]
-18865; [7C 77 0A, 05, 05]
-18866; [7C 77 0C, 05, 05]
-18867; [7C 77 0E, 05, 05]
-18868; [7C 77 10, 05, 05]
-18869; [7C 77 12, 05, 05]
-1886A; [7C 77 14, 05, 05]
-1886B; [7C 77 16, 05, 05]
-1886C; [7C 77 18, 05, 05]
-1886D; [7C 77 1A, 05, 05]
-1886E; [7C 77 1C, 05, 05]
-1886F; [7C 77 1E, 05, 05]
-18870; [7C 77 20, 05, 05]
-18871; [7C 77 22, 05, 05]
-18872; [7C 77 24, 05, 05]
-18873; [7C 77 26, 05, 05]
-18874; [7C 77 28, 05, 05]
-18875; [7C 77 2A, 05, 05]
-18876; [7C 77 2C, 05, 05]
-18877; [7C 77 2E, 05, 05]
-18878; [7C 77 30, 05, 05]
-18879; [7C 77 32, 05, 05]
-1887A; [7C 77 34, 05, 05]
-1887B; [7C 77 36, 05, 05]
-1887C; [7C 77 38, 05, 05]
-1887D; [7C 77 3A, 05, 05]
-1887E; [7C 77 3C, 05, 05]
-1887F; [7C 77 3E, 05, 05]
-18880; [7C 77 40, 05, 05]
-18881; [7C 77 42, 05, 05]
-18882; [7C 77 44, 05, 05]
-18883; [7C 77 46, 05, 05]
-18884; [7C 77 48, 05, 05]
-18885; [7C 77 4A, 05, 05]
-18886; [7C 77 4C, 05, 05]
-18887; [7C 77 4E, 05, 05]
-18888; [7C 77 50, 05, 05]
-18889; [7C 77 52, 05, 05]
-1888A; [7C 77 54, 05, 05]
-1888B; [7C 77 56, 05, 05]
-1888C; [7C 77 58, 05, 05]
-1888D; [7C 77 5A, 05, 05]
-1888E; [7C 77 5C, 05, 05]
-1888F; [7C 77 5E, 05, 05]
-18890; [7C 77 60, 05, 05]
-18891; [7C 77 62, 05, 05]
-18892; [7C 77 64, 05, 05]
-18893; [7C 77 66, 05, 05]
-18894; [7C 77 68, 05, 05]
-18895; [7C 77 6A, 05, 05]
-18896; [7C 77 6C, 05, 05]
-18897; [7C 77 6E, 05, 05]
-18898; [7C 77 70, 05, 05]
-18899; [7C 77 72, 05, 05]
-1889A; [7C 77 74, 05, 05]
-1889B; [7C 77 76, 05, 05]
-1889C; [7C 77 78, 05, 05]
-1889D; [7C 77 7A, 05, 05]
-1889E; [7C 77 7C, 05, 05]
-1889F; [7C 77 7E, 05, 05]
-188A0; [7C 77 80, 05, 05]
-188A1; [7C 77 82, 05, 05]
-188A2; [7C 77 84, 05, 05]
-188A3; [7C 77 86, 05, 05]
-188A4; [7C 77 88, 05, 05]
-188A5; [7C 77 8A, 05, 05]
-188A6; [7C 77 8C, 05, 05]
-188A7; [7C 77 8E, 05, 05]
-188A8; [7C 77 90, 05, 05]
-188A9; [7C 77 92, 05, 05]
-188AA; [7C 77 94, 05, 05]
-188AB; [7C 77 96, 05, 05]
-188AC; [7C 77 98, 05, 05]
-188AD; [7C 77 9A, 05, 05]
-188AE; [7C 77 9C, 05, 05]
-188AF; [7C 77 9E, 05, 05]
-188B0; [7C 77 A0, 05, 05]
-188B1; [7C 77 A2, 05, 05]
-188B2; [7C 77 A4, 05, 05]
-188B3; [7C 77 A6, 05, 05]
-188B4; [7C 77 A8, 05, 05]
-188B5; [7C 77 AA, 05, 05]
-188B6; [7C 77 AC, 05, 05]
-188B7; [7C 77 AE, 05, 05]
-188B8; [7C 77 B0, 05, 05]
-188B9; [7C 77 B2, 05, 05]
-188BA; [7C 77 B4, 05, 05]
-188BB; [7C 77 B6, 05, 05]
-188BC; [7C 77 B8, 05, 05]
-188BD; [7C 77 BA, 05, 05]
-188BE; [7C 77 BC, 05, 05]
-188BF; [7C 77 BE, 05, 05]
-188C0; [7C 77 C0, 05, 05]
-188C1; [7C 77 C2, 05, 05]
-188C2; [7C 77 C4, 05, 05]
-188C3; [7C 77 C6, 05, 05]
-188C4; [7C 77 C8, 05, 05]
-188C5; [7C 77 CA, 05, 05]
-188C6; [7C 77 CC, 05, 05]
-188C7; [7C 77 CE, 05, 05]
-188C8; [7C 77 D0, 05, 05]
-188C9; [7C 77 D2, 05, 05]
-188CA; [7C 77 D4, 05, 05]
-188CB; [7C 77 D6, 05, 05]
-188CC; [7C 77 D8, 05, 05]
-188CD; [7C 77 DA, 05, 05]
-188CE; [7C 77 DC, 05, 05]
-188CF; [7C 77 DE, 05, 05]
-188D0; [7C 77 E0, 05, 05]
-188D1; [7C 77 E2, 05, 05]
-188D2; [7C 77 E4, 05, 05]
-188D3; [7C 77 E6, 05, 05]
-188D4; [7C 77 E8, 05, 05]
-188D5; [7C 77 EA, 05, 05]
-188D6; [7C 77 EC, 05, 05]
-188D7; [7C 77 EE, 05, 05]
-188D8; [7C 77 F0, 05, 05]
-188D9; [7C 77 F2, 05, 05]
-188DA; [7C 77 F4, 05, 05]
-188DB; [7C 77 F6, 05, 05]
-188DC; [7C 77 F8, 05, 05]
-188DD; [7C 77 FA, 05, 05]
-188DE; [7C 77 FC, 05, 05]
-188DF; [7C 77 FE, 05, 05]
-188E0; [7C 78 02, 05, 05]
-188E1; [7C 78 04, 05, 05]
-188E2; [7C 78 06, 05, 05]
-188E3; [7C 78 08, 05, 05]
-188E4; [7C 78 0A, 05, 05]
-188E5; [7C 78 0C, 05, 05]
-188E6; [7C 78 0E, 05, 05]
-188E7; [7C 78 10, 05, 05]
-188E8; [7C 78 12, 05, 05]
-188E9; [7C 78 14, 05, 05]
-188EA; [7C 78 16, 05, 05]
-188EB; [7C 78 18, 05, 05]
-188EC; [7C 78 1A, 05, 05]
-188ED; [7C 78 1C, 05, 05]
-188EE; [7C 78 1E, 05, 05]
-188EF; [7C 78 20, 05, 05]
-188F0; [7C 78 22, 05, 05]
-188F1; [7C 78 24, 05, 05]
-188F2; [7C 78 26, 05, 05]
-188F3; [7C 78 28, 05, 05]
-188F4; [7C 78 2A, 05, 05]
-188F5; [7C 78 2C, 05, 05]
-188F6; [7C 78 2E, 05, 05]
-188F7; [7C 78 30, 05, 05]
-188F8; [7C 78 32, 05, 05]
-188F9; [7C 78 34, 05, 05]
-188FA; [7C 78 36, 05, 05]
-188FB; [7C 78 38, 05, 05]
-188FC; [7C 78 3A, 05, 05]
-188FD; [7C 78 3C, 05, 05]
-188FE; [7C 78 3E, 05, 05]
-188FF; [7C 78 40, 05, 05]
-18900; [7C 78 42, 05, 05]
-18901; [7C 78 44, 05, 05]
-18902; [7C 78 46, 05, 05]
-18903; [7C 78 48, 05, 05]
-18904; [7C 78 4A, 05, 05]
-18905; [7C 78 4C, 05, 05]
-18906; [7C 78 4E, 05, 05]
-18907; [7C 78 50, 05, 05]
-18908; [7C 78 52, 05, 05]
-18909; [7C 78 54, 05, 05]
-1890A; [7C 78 56, 05, 05]
-1890B; [7C 78 58, 05, 05]
-1890C; [7C 78 5A, 05, 05]
-1890D; [7C 78 5C, 05, 05]
-1890E; [7C 78 5E, 05, 05]
-1890F; [7C 78 60, 05, 05]
-18910; [7C 78 62, 05, 05]
-18911; [7C 78 64, 05, 05]
-18912; [7C 78 66, 05, 05]
-18913; [7C 78 68, 05, 05]
-18914; [7C 78 6A, 05, 05]
-18915; [7C 78 6C, 05, 05]
-18916; [7C 78 6E, 05, 05]
-18917; [7C 78 70, 05, 05]
-18918; [7C 78 72, 05, 05]
-18919; [7C 78 74, 05, 05]
-1891A; [7C 78 76, 05, 05]
-1891B; [7C 78 78, 05, 05]
-1891C; [7C 78 7A, 05, 05]
-1891D; [7C 78 7C, 05, 05]
-1891E; [7C 78 7E, 05, 05]
-1891F; [7C 78 80, 05, 05]
-18920; [7C 78 82, 05, 05]
-18921; [7C 78 84, 05, 05]
-18922; [7C 78 86, 05, 05]
-18923; [7C 78 88, 05, 05]
-18924; [7C 78 8A, 05, 05]
-18925; [7C 78 8C, 05, 05]
-18926; [7C 78 8E, 05, 05]
-18927; [7C 78 90, 05, 05]
-18928; [7C 78 92, 05, 05]
-18929; [7C 78 94, 05, 05]
-1892A; [7C 78 96, 05, 05]
-1892B; [7C 78 98, 05, 05]
-1892C; [7C 78 9A, 05, 05]
-1892D; [7C 78 9C, 05, 05]
-1892E; [7C 78 9E, 05, 05]
-1892F; [7C 78 A0, 05, 05]
-18930; [7C 78 A2, 05, 05]
-18931; [7C 78 A4, 05, 05]
-18932; [7C 78 A6, 05, 05]
-18933; [7C 78 A8, 05, 05]
-18934; [7C 78 AA, 05, 05]
-18935; [7C 78 AC, 05, 05]
-18936; [7C 78 AE, 05, 05]
-18937; [7C 78 B0, 05, 05]
-18938; [7C 78 B2, 05, 05]
-18939; [7C 78 B4, 05, 05]
-1893A; [7C 78 B6, 05, 05]
-1893B; [7C 78 B8, 05, 05]
-1893C; [7C 78 BA, 05, 05]
-1893D; [7C 78 BC, 05, 05]
-1893E; [7C 78 BE, 05, 05]
-1893F; [7C 78 C0, 05, 05]
-18940; [7C 78 C2, 05, 05]
-18941; [7C 78 C4, 05, 05]
-18942; [7C 78 C6, 05, 05]
-18943; [7C 78 C8, 05, 05]
-18944; [7C 78 CA, 05, 05]
-18945; [7C 78 CC, 05, 05]
-18946; [7C 78 CE, 05, 05]
-18947; [7C 78 D0, 05, 05]
-18948; [7C 78 D2, 05, 05]
-18949; [7C 78 D4, 05, 05]
-1894A; [7C 78 D6, 05, 05]
-1894B; [7C 78 D8, 05, 05]
-1894C; [7C 78 DA, 05, 05]
-1894D; [7C 78 DC, 05, 05]
-1894E; [7C 78 DE, 05, 05]
-1894F; [7C 78 E0, 05, 05]
-18950; [7C 78 E2, 05, 05]
-18951; [7C 78 E4, 05, 05]
-18952; [7C 78 E6, 05, 05]
-18953; [7C 78 E8, 05, 05]
-18954; [7C 78 EA, 05, 05]
-18955; [7C 78 EC, 05, 05]
-18956; [7C 78 EE, 05, 05]
-18957; [7C 78 F0, 05, 05]
-18958; [7C 78 F2, 05, 05]
-18959; [7C 78 F4, 05, 05]
-1895A; [7C 78 F6, 05, 05]
-1895B; [7C 78 F8, 05, 05]
-1895C; [7C 78 FA, 05, 05]
-1895D; [7C 78 FC, 05, 05]
-1895E; [7C 78 FE, 05, 05]
-1895F; [7C 79 02, 05, 05]
-18960; [7C 79 04, 05, 05]
-18961; [7C 79 06, 05, 05]
-18962; [7C 79 08, 05, 05]
-18963; [7C 79 0A, 05, 05]
-18964; [7C 79 0C, 05, 05]
-18965; [7C 79 0E, 05, 05]
-18966; [7C 79 10, 05, 05]
-18967; [7C 79 12, 05, 05]
-18968; [7C 79 14, 05, 05]
-18969; [7C 79 16, 05, 05]
-1896A; [7C 79 18, 05, 05]
-1896B; [7C 79 1A, 05, 05]
-1896C; [7C 79 1C, 05, 05]
-1896D; [7C 79 1E, 05, 05]
-1896E; [7C 79 20, 05, 05]
-1896F; [7C 79 22, 05, 05]
-18970; [7C 79 24, 05, 05]
-18971; [7C 79 26, 05, 05]
-18972; [7C 79 28, 05, 05]
-18973; [7C 79 2A, 05, 05]
-18974; [7C 79 2C, 05, 05]
-18975; [7C 79 2E, 05, 05]
-18976; [7C 79 30, 05, 05]
-18977; [7C 79 32, 05, 05]
-18978; [7C 79 34, 05, 05]
-18979; [7C 79 36, 05, 05]
-1897A; [7C 79 38, 05, 05]
-1897B; [7C 79 3A, 05, 05]
-1897C; [7C 79 3C, 05, 05]
-1897D; [7C 79 3E, 05, 05]
-1897E; [7C 79 40, 05, 05]
-1897F; [7C 79 42, 05, 05]
-18980; [7C 79 44, 05, 05]
-18981; [7C 79 46, 05, 05]
-18982; [7C 79 48, 05, 05]
-18983; [7C 79 4A, 05, 05]
-18984; [7C 79 4C, 05, 05]
-18985; [7C 79 4E, 05, 05]
-18986; [7C 79 50, 05, 05]
-18987; [7C 79 52, 05, 05]
-18988; [7C 79 54, 05, 05]
-18989; [7C 79 56, 05, 05]
-1898A; [7C 79 58, 05, 05]
-1898B; [7C 79 5A, 05, 05]
-1898C; [7C 79 5C, 05, 05]
-1898D; [7C 79 5E, 05, 05]
-1898E; [7C 79 60, 05, 05]
-1898F; [7C 79 62, 05, 05]
-18990; [7C 79 64, 05, 05]
-18991; [7C 79 66, 05, 05]
-18992; [7C 79 68, 05, 05]
-18993; [7C 79 6A, 05, 05]
-18994; [7C 79 6C, 05, 05]
-18995; [7C 79 6E, 05, 05]
-18996; [7C 79 70, 05, 05]
-18997; [7C 79 72, 05, 05]
-18998; [7C 79 74, 05, 05]
-18999; [7C 79 76, 05, 05]
-1899A; [7C 79 78, 05, 05]
-1899B; [7C 79 7A, 05, 05]
-1899C; [7C 79 7C, 05, 05]
-1899D; [7C 79 7E, 05, 05]
-1899E; [7C 79 80, 05, 05]
-1899F; [7C 79 82, 05, 05]
-189A0; [7C 79 84, 05, 05]
-189A1; [7C 79 86, 05, 05]
-189A2; [7C 79 88, 05, 05]
-189A3; [7C 79 8A, 05, 05]
-189A4; [7C 79 8C, 05, 05]
-189A5; [7C 79 8E, 05, 05]
-189A6; [7C 79 90, 05, 05]
-189A7; [7C 79 92, 05, 05]
-189A8; [7C 79 94, 05, 05]
-189A9; [7C 79 96, 05, 05]
-189AA; [7C 79 98, 05, 05]
-189AB; [7C 79 9A, 05, 05]
-189AC; [7C 79 9C, 05, 05]
-189AD; [7C 79 9E, 05, 05]
-189AE; [7C 79 A0, 05, 05]
-189AF; [7C 79 A2, 05, 05]
-189B0; [7C 79 A4, 05, 05]
-189B1; [7C 79 A6, 05, 05]
-189B2; [7C 79 A8, 05, 05]
-189B3; [7C 79 AA, 05, 05]
-189B4; [7C 79 AC, 05, 05]
-189B5; [7C 79 AE, 05, 05]
-189B6; [7C 79 B0, 05, 05]
-189B7; [7C 79 B2, 05, 05]
-189B8; [7C 79 B4, 05, 05]
-189B9; [7C 79 B6, 05, 05]
-189BA; [7C 79 B8, 05, 05]
-189BB; [7C 79 BA, 05, 05]
-189BC; [7C 79 BC, 05, 05]
-189BD; [7C 79 BE, 05, 05]
-189BE; [7C 79 C0, 05, 05]
-189BF; [7C 79 C2, 05, 05]
-189C0; [7C 79 C4, 05, 05]
-189C1; [7C 79 C6, 05, 05]
-189C2; [7C 79 C8, 05, 05]
-189C3; [7C 79 CA, 05, 05]
-189C4; [7C 79 CC, 05, 05]
-189C5; [7C 79 CE, 05, 05]
-189C6; [7C 79 D0, 05, 05]
-189C7; [7C 79 D2, 05, 05]
-189C8; [7C 79 D4, 05, 05]
-189C9; [7C 79 D6, 05, 05]
-189CA; [7C 79 D8, 05, 05]
-189CB; [7C 79 DA, 05, 05]
-189CC; [7C 79 DC, 05, 05]
-189CD; [7C 79 DE, 05, 05]
-189CE; [7C 79 E0, 05, 05]
-189CF; [7C 79 E2, 05, 05]
-189D0; [7C 79 E4, 05, 05]
-189D1; [7C 79 E6, 05, 05]
-189D2; [7C 79 E8, 05, 05]
-189D3; [7C 79 EA, 05, 05]
-189D4; [7C 79 EC, 05, 05]
-189D5; [7C 79 EE, 05, 05]
-189D6; [7C 79 F0, 05, 05]
-189D7; [7C 79 F2, 05, 05]
-189D8; [7C 79 F4, 05, 05]
-189D9; [7C 79 F6, 05, 05]
-189DA; [7C 79 F8, 05, 05]
-189DB; [7C 79 FA, 05, 05]
-189DC; [7C 79 FC, 05, 05]
-189DD; [7C 79 FE, 05, 05]
-189DE; [7C 7A 02, 05, 05]
-189DF; [7C 7A 04, 05, 05]
-189E0; [7C 7A 06, 05, 05]
-189E1; [7C 7A 08, 05, 05]
-189E2; [7C 7A 0A, 05, 05]
-189E3; [7C 7A 0C, 05, 05]
-189E4; [7C 7A 0E, 05, 05]
-189E5; [7C 7A 10, 05, 05]
-189E6; [7C 7A 12, 05, 05]
-189E7; [7C 7A 14, 05, 05]
-189E8; [7C 7A 16, 05, 05]
-189E9; [7C 7A 18, 05, 05]
-189EA; [7C 7A 1A, 05, 05]
-189EB; [7C 7A 1C, 05, 05]
-189EC; [7C 7A 1E, 05, 05]
-189ED; [7C 7A 20, 05, 05]
-189EE; [7C 7A 22, 05, 05]
-189EF; [7C 7A 24, 05, 05]
-189F0; [7C 7A 26, 05, 05]
-189F1; [7C 7A 28, 05, 05]
-189F2; [7C 7A 2A, 05, 05]
-189F3; [7C 7A 2C, 05, 05]
-189F4; [7C 7A 2E, 05, 05]
-189F5; [7C 7A 30, 05, 05]
-189F6; [7C 7A 32, 05, 05]
-189F7; [7C 7A 34, 05, 05]
-189F8; [7C 7A 36, 05, 05]
-189F9; [7C 7A 38, 05, 05]
-189FA; [7C 7A 3A, 05, 05]
-189FB; [7C 7A 3C, 05, 05]
-189FC; [7C 7A 3E, 05, 05]
-189FD; [7C 7A 40, 05, 05]
-189FE; [7C 7A 42, 05, 05]
-189FF; [7C 7A 44, 05, 05]
-18A00; [7C 7A 46, 05, 05]
-18A01; [7C 7A 48, 05, 05]
-18A02; [7C 7A 4A, 05, 05]
-18A03; [7C 7A 4C, 05, 05]
-18A04; [7C 7A 4E, 05, 05]
-18A05; [7C 7A 50, 05, 05]
-18A06; [7C 7A 52, 05, 05]
-18A07; [7C 7A 54, 05, 05]
-18A08; [7C 7A 56, 05, 05]
-18A09; [7C 7A 58, 05, 05]
-18A0A; [7C 7A 5A, 05, 05]
-18A0B; [7C 7A 5C, 05, 05]
-18A0C; [7C 7A 5E, 05, 05]
-18A0D; [7C 7A 60, 05, 05]
-18A0E; [7C 7A 62, 05, 05]
-18A0F; [7C 7A 64, 05, 05]
-18A10; [7C 7A 66, 05, 05]
-18A11; [7C 7A 68, 05, 05]
-18A12; [7C 7A 6A, 05, 05]
-18A13; [7C 7A 6C, 05, 05]
-18A14; [7C 7A 6E, 05, 05]
-18A15; [7C 7A 70, 05, 05]
-18A16; [7C 7A 72, 05, 05]
-18A17; [7C 7A 74, 05, 05]
-18A18; [7C 7A 76, 05, 05]
-18A19; [7C 7A 78, 05, 05]
-18A1A; [7C 7A 7A, 05, 05]
-18A1B; [7C 7A 7C, 05, 05]
-18A1C; [7C 7A 7E, 05, 05]
-18A1D; [7C 7A 80, 05, 05]
-18A1E; [7C 7A 82, 05, 05]
-18A1F; [7C 7A 84, 05, 05]
-18A20; [7C 7A 86, 05, 05]
-18A21; [7C 7A 88, 05, 05]
-18A22; [7C 7A 8A, 05, 05]
-18A23; [7C 7A 8C, 05, 05]
-18A24; [7C 7A 8E, 05, 05]
-18A25; [7C 7A 90, 05, 05]
-18A26; [7C 7A 92, 05, 05]
-18A27; [7C 7A 94, 05, 05]
-18A28; [7C 7A 96, 05, 05]
-18A29; [7C 7A 98, 05, 05]
-18A2A; [7C 7A 9A, 05, 05]
-18A2B; [7C 7A 9C, 05, 05]
-18A2C; [7C 7A 9E, 05, 05]
-18A2D; [7C 7A A0, 05, 05]
-18A2E; [7C 7A A2, 05, 05]
-18A2F; [7C 7A A4, 05, 05]
-18A30; [7C 7A A6, 05, 05]
-18A31; [7C 7A A8, 05, 05]
-18A32; [7C 7A AA, 05, 05]
-18A33; [7C 7A AC, 05, 05]
-18A34; [7C 7A AE, 05, 05]
-18A35; [7C 7A B0, 05, 05]
-18A36; [7C 7A B2, 05, 05]
-18A37; [7C 7A B4, 05, 05]
-18A38; [7C 7A B6, 05, 05]
-18A39; [7C 7A B8, 05, 05]
-18A3A; [7C 7A BA, 05, 05]
-18A3B; [7C 7A BC, 05, 05]
-18A3C; [7C 7A BE, 05, 05]
-18A3D; [7C 7A C0, 05, 05]
-18A3E; [7C 7A C2, 05, 05]
-18A3F; [7C 7A C4, 05, 05]
-18A40; [7C 7A C6, 05, 05]
-18A41; [7C 7A C8, 05, 05]
-18A42; [7C 7A CA, 05, 05]
-18A43; [7C 7A CC, 05, 05]
-18A44; [7C 7A CE, 05, 05]
-18A45; [7C 7A D0, 05, 05]
-18A46; [7C 7A D2, 05, 05]
-18A47; [7C 7A D4, 05, 05]
-18A48; [7C 7A D6, 05, 05]
-18A49; [7C 7A D8, 05, 05]
-18A4A; [7C 7A DA, 05, 05]
-18A4B; [7C 7A DC, 05, 05]
-18A4C; [7C 7A DE, 05, 05]
-18A4D; [7C 7A E0, 05, 05]
-18A4E; [7C 7A E2, 05, 05]
-18A4F; [7C 7A E4, 05, 05]
-18A50; [7C 7A E6, 05, 05]
-18A51; [7C 7A E8, 05, 05]
-18A52; [7C 7A EA, 05, 05]
-18A53; [7C 7A EC, 05, 05]
-18A54; [7C 7A EE, 05, 05]
-18A55; [7C 7A F0, 05, 05]
-18A56; [7C 7A F2, 05, 05]
-18A57; [7C 7A F4, 05, 05]
-18A58; [7C 7A F6, 05, 05]
-18A59; [7C 7A F8, 05, 05]
-18A5A; [7C 7A FA, 05, 05]
-18A5B; [7C 7A FC, 05, 05]
-18A5C; [7C 7A FE, 05, 05]
-18A5D; [7C 7B 02, 05, 05]
-18A5E; [7C 7B 04, 05, 05]
-18A5F; [7C 7B 06, 05, 05]
-18A60; [7C 7B 08, 05, 05]
-18A61; [7C 7B 0A, 05, 05]
-18A62; [7C 7B 0C, 05, 05]
-18A63; [7C 7B 0E, 05, 05]
-18A64; [7C 7B 10, 05, 05]
-18A65; [7C 7B 12, 05, 05]
-18A66; [7C 7B 14, 05, 05]
-18A67; [7C 7B 16, 05, 05]
-18A68; [7C 7B 18, 05, 05]
-18A69; [7C 7B 1A, 05, 05]
-18A6A; [7C 7B 1C, 05, 05]
-18A6B; [7C 7B 1E, 05, 05]
-18A6C; [7C 7B 20, 05, 05]
-18A6D; [7C 7B 22, 05, 05]
-18A6E; [7C 7B 24, 05, 05]
-18A6F; [7C 7B 26, 05, 05]
-18A70; [7C 7B 28, 05, 05]
-18A71; [7C 7B 2A, 05, 05]
-18A72; [7C 7B 2C, 05, 05]
-18A73; [7C 7B 2E, 05, 05]
-18A74; [7C 7B 30, 05, 05]
-18A75; [7C 7B 32, 05, 05]
-18A76; [7C 7B 34, 05, 05]
-18A77; [7C 7B 36, 05, 05]
-18A78; [7C 7B 38, 05, 05]
-18A79; [7C 7B 3A, 05, 05]
-18A7A; [7C 7B 3C, 05, 05]
-18A7B; [7C 7B 3E, 05, 05]
-18A7C; [7C 7B 40, 05, 05]
-18A7D; [7C 7B 42, 05, 05]
-18A7E; [7C 7B 44, 05, 05]
-18A7F; [7C 7B 46, 05, 05]
-18A80; [7C 7B 48, 05, 05]
-18A81; [7C 7B 4A, 05, 05]
-18A82; [7C 7B 4C, 05, 05]
-18A83; [7C 7B 4E, 05, 05]
-18A84; [7C 7B 50, 05, 05]
-18A85; [7C 7B 52, 05, 05]
-18A86; [7C 7B 54, 05, 05]
-18A87; [7C 7B 56, 05, 05]
-18A88; [7C 7B 58, 05, 05]
-18A89; [7C 7B 5A, 05, 05]
-18A8A; [7C 7B 5C, 05, 05]
-18A8B; [7C 7B 5E, 05, 05]
-18A8C; [7C 7B 60, 05, 05]
-18A8D; [7C 7B 62, 05, 05]
-18A8E; [7C 7B 64, 05, 05]
-18A8F; [7C 7B 66, 05, 05]
-18A90; [7C 7B 68, 05, 05]
-18A91; [7C 7B 6A, 05, 05]
-18A92; [7C 7B 6C, 05, 05]
-18A93; [7C 7B 6E, 05, 05]
-18A94; [7C 7B 70, 05, 05]
-18A95; [7C 7B 72, 05, 05]
-18A96; [7C 7B 74, 05, 05]
-18A97; [7C 7B 76, 05, 05]
-18A98; [7C 7B 78, 05, 05]
-18A99; [7C 7B 7A, 05, 05]
-18A9A; [7C 7B 7C, 05, 05]
-18A9B; [7C 7B 7E, 05, 05]
-18A9C; [7C 7B 80, 05, 05]
-18A9D; [7C 7B 82, 05, 05]
-18A9E; [7C 7B 84, 05, 05]
-18A9F; [7C 7B 86, 05, 05]
-18AA0; [7C 7B 88, 05, 05]
-18AA1; [7C 7B 8A, 05, 05]
-18AA2; [7C 7B 8C, 05, 05]
-18AA3; [7C 7B 8E, 05, 05]
-18AA4; [7C 7B 90, 05, 05]
-18AA5; [7C 7B 92, 05, 05]
-18AA6; [7C 7B 94, 05, 05]
-18AA7; [7C 7B 96, 05, 05]
-18AA8; [7C 7B 98, 05, 05]
-18AA9; [7C 7B 9A, 05, 05]
-18AAA; [7C 7B 9C, 05, 05]
-18AAB; [7C 7B 9E, 05, 05]
-18AAC; [7C 7B A0, 05, 05]
-18AAD; [7C 7B A2, 05, 05]
-18AAE; [7C 7B A4, 05, 05]
-18AAF; [7C 7B A6, 05, 05]
-18AB0; [7C 7B A8, 05, 05]
-18AB1; [7C 7B AA, 05, 05]
-18AB2; [7C 7B AC, 05, 05]
-18AB3; [7C 7B AE, 05, 05]
-18AB4; [7C 7B B0, 05, 05]
-18AB5; [7C 7B B2, 05, 05]
-18AB6; [7C 7B B4, 05, 05]
-18AB7; [7C 7B B6, 05, 05]
-18AB8; [7C 7B B8, 05, 05]
-18AB9; [7C 7B BA, 05, 05]
-18ABA; [7C 7B BC, 05, 05]
-18ABB; [7C 7B BE, 05, 05]
-18ABC; [7C 7B C0, 05, 05]
-18ABD; [7C 7B C2, 05, 05]
-18ABE; [7C 7B C4, 05, 05]
-18ABF; [7C 7B C6, 05, 05]
-18AC0; [7C 7B C8, 05, 05]
-18AC1; [7C 7B CA, 05, 05]
-18AC2; [7C 7B CC, 05, 05]
-18AC3; [7C 7B CE, 05, 05]
-18AC4; [7C 7B D0, 05, 05]
-18AC5; [7C 7B D2, 05, 05]
-18AC6; [7C 7B D4, 05, 05]
-18AC7; [7C 7B D6, 05, 05]
-18AC8; [7C 7B D8, 05, 05]
-18AC9; [7C 7B DA, 05, 05]
-18ACA; [7C 7B DC, 05, 05]
-18ACB; [7C 7B DE, 05, 05]
-18ACC; [7C 7B E0, 05, 05]
-18ACD; [7C 7B E2, 05, 05]
-18ACE; [7C 7B E4, 05, 05]
-18ACF; [7C 7B E6, 05, 05]
-18AD0; [7C 7B E8, 05, 05]
-18AD1; [7C 7B EA, 05, 05]
-18AD2; [7C 7B EC, 05, 05]
-18AD3; [7C 7B EE, 05, 05]
-18AD4; [7C 7B F0, 05, 05]
-18AD5; [7C 7B F2, 05, 05]
-18AD6; [7C 7B F4, 05, 05]
-18AD7; [7C 7B F6, 05, 05]
-18AD8; [7C 7B F8, 05, 05]
-18AD9; [7C 7B FA, 05, 05]
-18ADA; [7C 7B FC, 05, 05]
-18ADB; [7C 7B FE, 05, 05]
-18ADC; [7C 7C 02, 05, 05]
-18ADD; [7C 7C 04, 05, 05]
-18ADE; [7C 7C 06, 05, 05]
-18ADF; [7C 7C 08, 05, 05]
-18AE0; [7C 7C 0A, 05, 05]
-18AE1; [7C 7C 0C, 05, 05]
-18AE2; [7C 7C 0E, 05, 05]
-18AE3; [7C 7C 10, 05, 05]
-18AE4; [7C 7C 12, 05, 05]
-18AE5; [7C 7C 14, 05, 05]
-18AE6; [7C 7C 16, 05, 05]
-18AE7; [7C 7C 18, 05, 05]
-18AE8; [7C 7C 1A, 05, 05]
-18AE9; [7C 7C 1C, 05, 05]
-18AEA; [7C 7C 1E, 05, 05]
-18AEB; [7C 7C 20, 05, 05]
-18AEC; [7C 7C 22, 05, 05]
-18AED; [7C 7C 24, 05, 05]
-18AEE; [7C 7C 26, 05, 05]
-18AEF; [7C 7C 28, 05, 05]
-18AF0; [7C 7C 2A, 05, 05]
-18AF1; [7C 7C 2C, 05, 05]
-18AF2; [7C 7C 2E, 05, 05]
-
-FDD1 1B1C4; [7C 7D 02, 05, 05] # Nushu first primary (compressible)
-
-1B170; [7C 7D 09, 05, 05]
-1B171; [7C 7D 10, 05, 05]
-1B172; [7C 7D 17, 05, 05]
-1B173; [7C 7D 1E, 05, 05]
-1B174; [7C 7D 25, 05, 05]
-1B175; [7C 7D 2C, 05, 05]
-1B176; [7C 7D 33, 05, 05]
-1B177; [7C 7D 3A, 05, 05]
-1B178; [7C 7D 41, 05, 05]
-1B179; [7C 7D 48, 05, 05]
-1B17A; [7C 7D 4F, 05, 05]
-1B17B; [7C 7D 56, 05, 05]
-1B17C; [7C 7D 5D, 05, 05]
-1B17D; [7C 7D 64, 05, 05]
-1B17E; [7C 7D 6B, 05, 05]
-1B17F; [7C 7D 72, 05, 05]
-1B180; [7C 7D 79, 05, 05]
-1B181; [7C 7D 80, 05, 05]
-1B182; [7C 7D 87, 05, 05]
-1B183; [7C 7D 8E, 05, 05]
-1B184; [7C 7D 95, 05, 05]
-1B185; [7C 7D 9C, 05, 05]
-1B186; [7C 7D A3, 05, 05]
-1B187; [7C 7D AA, 05, 05]
-1B188; [7C 7D B1, 05, 05]
-1B189; [7C 7D B8, 05, 05]
-1B18A; [7C 7D BF, 05, 05]
-1B18B; [7C 7D C6, 05, 05]
-1B18C; [7C 7D CD, 05, 05]
-1B18D; [7C 7D D4, 05, 05]
-1B18E; [7C 7D DB, 05, 05]
-1B18F; [7C 7D E2, 05, 05]
-1B190; [7C 7D E9, 05, 05]
-1B191; [7C 7D F0, 05, 05]
-1B192; [7C 7D F7, 05, 05]
-1B193; [7C 7D FE, 05, 05]
-1B194; [7C 7E 07, 05, 05]
-1B195; [7C 7E 0E, 05, 05]
-1B196; [7C 7E 15, 05, 05]
-1B197; [7C 7E 1C, 05, 05]
-1B198; [7C 7E 23, 05, 05]
-1B199; [7C 7E 2A, 05, 05]
-1B19A; [7C 7E 31, 05, 05]
-1B19B; [7C 7E 38, 05, 05]
-1B19C; [7C 7E 3F, 05, 05]
-1B19D; [7C 7E 46, 05, 05]
-1B19E; [7C 7E 4D, 05, 05]
-1B19F; [7C 7E 54, 05, 05]
-1B1A0; [7C 7E 5B, 05, 05]
-1B1A1; [7C 7E 62, 05, 05]
-1B1A2; [7C 7E 69, 05, 05]
-1B1A3; [7C 7E 70, 05, 05]
-1B1A4; [7C 7E 77, 05, 05]
-1B1A5; [7C 7E 7E, 05, 05]
-1B1A6; [7C 7E 85, 05, 05]
-1B1A7; [7C 7E 8C, 05, 05]
-1B1A8; [7C 7E 93, 05, 05]
-1B1A9; [7C 7E 9A, 05, 05]
-1B1AA; [7C 7E A1, 05, 05]
-1B1AB; [7C 7E A8, 05, 05]
-1B1AC; [7C 7E AF, 05, 05]
-1B1AD; [7C 7E B6, 05, 05]
-1B1AE; [7C 7E BD, 05, 05]
-1B1AF; [7C 7E C4, 05, 05]
-1B1B0; [7C 7E CB, 05, 05]
-1B1B1; [7C 7E D2, 05, 05]
-1B1B2; [7C 7E D9, 05, 05]
-1B1B3; [7C 7E E0, 05, 05]
-1B1B4; [7C 7E E7, 05, 05]
-1B1B5; [7C 7E EE, 05, 05]
-1B1B6; [7C 7E F5, 05, 05]
-1B1B7; [7C 7E FC, 05, 05]
-1B1B8; [7C 7F 05, 05, 05]
-1B1B9; [7C 7F 0C, 05, 05]
-1B1BA; [7C 7F 13, 05, 05]
-1B1BB; [7C 7F 1A, 05, 05]
-1B1BC; [7C 7F 21, 05, 05]
-1B1BD; [7C 7F 28, 05, 05]
-1B1BE; [7C 7F 2F, 05, 05]
-1B1BF; [7C 7F 36, 05, 05]
-1B1C0; [7C 7F 3D, 05, 05]
-1B1C1; [7C 7F 44, 05, 05]
-1B1C2; [7C 7F 4B, 05, 05]
-1B1C3; [7C 7F 52, 05, 05]
-1B1C4; [7C 7F 59, 05, 05]
-1B1C5; [7C 7F 60, 05, 05]
-1B1C6; [7C 7F 67, 05, 05]
-1B1C7; [7C 7F 6E, 05, 05]
-1B1C8; [7C 7F 75, 05, 05]
-1B1C9; [7C 7F 7C, 05, 05]
-1B1CA; [7C 7F 83, 05, 05]
-1B1CB; [7C 7F 8A, 05, 05]
-1B1CC; [7C 7F 91, 05, 05]
-1B1CD; [7C 7F 98, 05, 05]
-1B1CE; [7C 7F 9F, 05, 05]
-1B1CF; [7C 7F A6, 05, 05]
-1B1D0; [7C 7F AD, 05, 05]
-1B1D1; [7C 7F B4, 05, 05]
-1B1D2; [7C 7F BB, 05, 05]
-1B1D3; [7C 7F C2, 05, 05]
-1B1D4; [7C 7F C9, 05, 05]
-1B1D5; [7C 7F D0, 05, 05]
-1B1D6; [7C 7F D7, 05, 05]
-1B1D7; [7C 7F DE, 05, 05]
-1B1D8; [7C 7F E5, 05, 05]
-1B1D9; [7C 7F EC, 05, 05]
-1B1DA; [7C 7F F3, 05, 05]
-1B1DB; [7C 7F FA, 05, 05]
-1B1DC; [7C 80 03, 05, 05]
-1B1DD; [7C 80 0A, 05, 05]
-1B1DE; [7C 80 11, 05, 05]
-1B1DF; [7C 80 18, 05, 05]
-1B1E0; [7C 80 1F, 05, 05]
-1B1E1; [7C 80 26, 05, 05]
-1B1E2; [7C 80 2D, 05, 05]
-1B1E3; [7C 80 34, 05, 05]
-1B1E4; [7C 80 3B, 05, 05]
-1B1E5; [7C 80 42, 05, 05]
-1B1E6; [7C 80 49, 05, 05]
-1B1E7; [7C 80 50, 05, 05]
-1B1E8; [7C 80 57, 05, 05]
-1B1E9; [7C 80 5E, 05, 05]
-1B1EA; [7C 80 65, 05, 05]
-1B1EB; [7C 80 6C, 05, 05]
-1B1EC; [7C 80 73, 05, 05]
-1B1ED; [7C 80 7A, 05, 05]
-1B1EE; [7C 80 81, 05, 05]
-1B1EF; [7C 80 88, 05, 05]
-1B1F0; [7C 80 8F, 05, 05]
-1B1F1; [7C 80 96, 05, 05]
-1B1F2; [7C 80 9D, 05, 05]
-1B1F3; [7C 80 A4, 05, 05]
-1B1F4; [7C 80 AB, 05, 05]
-1B1F5; [7C 80 B2, 05, 05]
-1B1F6; [7C 80 B9, 05, 05]
-1B1F7; [7C 80 C0, 05, 05]
-1B1F8; [7C 80 C7, 05, 05]
-1B1F9; [7C 80 CE, 05, 05]
-1B1FA; [7C 80 D5, 05, 05]
-1B1FB; [7C 80 DC, 05, 05]
-1B1FC; [7C 80 E3, 05, 05]
-1B1FD; [7C 80 EA, 05, 05]
-1B1FE; [7C 80 F1, 05, 05]
-1B1FF; [7C 80 F8, 05, 05]
-1B200; [7C 80 FF, 05, 05]
-1B201; [7C 81 08, 05, 05]
-1B202; [7C 81 0F, 05, 05]
-1B203; [7C 81 16, 05, 05]
-1B204; [7C 81 1D, 05, 05]
-1B205; [7C 81 24, 05, 05]
-1B206; [7C 81 2B, 05, 05]
-1B207; [7C 81 32, 05, 05]
-1B208; [7C 81 39, 05, 05]
-1B209; [7C 81 40, 05, 05]
-1B20A; [7C 81 47, 05, 05]
-1B20B; [7C 81 4E, 05, 05]
-1B20C; [7C 81 55, 05, 05]
-1B20D; [7C 81 5C, 05, 05]
-1B20E; [7C 81 63, 05, 05]
-1B20F; [7C 81 6A, 05, 05]
-1B210; [7C 81 71, 05, 05]
-1B211; [7C 81 78, 05, 05]
-1B212; [7C 81 7F, 05, 05]
-1B213; [7C 81 86, 05, 05]
-1B214; [7C 81 8D, 05, 05]
-1B215; [7C 81 94, 05, 05]
-1B216; [7C 81 9B, 05, 05]
-1B217; [7C 81 A2, 05, 05]
-1B218; [7C 81 A9, 05, 05]
-1B219; [7C 81 B0, 05, 05]
-1B21A; [7C 81 B7, 05, 05]
-1B21B; [7C 81 BE, 05, 05]
-1B21C; [7C 81 C5, 05, 05]
-1B21D; [7C 81 CC, 05, 05]
-1B21E; [7C 81 D3, 05, 05]
-1B21F; [7C 81 DA, 05, 05]
-1B220; [7C 81 E1, 05, 05]
-1B221; [7C 81 E8, 05, 05]
-1B222; [7C 81 EF, 05, 05]
-1B223; [7C 81 F6, 05, 05]
-1B224; [7C 81 FD, 05, 05]
-1B225; [7C 82 06, 05, 05]
-1B226; [7C 82 0D, 05, 05]
-1B227; [7C 82 14, 05, 05]
-1B228; [7C 82 1B, 05, 05]
-1B229; [7C 82 22, 05, 05]
-1B22A; [7C 82 29, 05, 05]
-1B22B; [7C 82 30, 05, 05]
-1B22C; [7C 82 37, 05, 05]
-1B22D; [7C 82 3E, 05, 05]
-1B22E; [7C 82 45, 05, 05]
-1B22F; [7C 82 4C, 05, 05]
-1B230; [7C 82 53, 05, 05]
-1B231; [7C 82 5A, 05, 05]
-1B232; [7C 82 61, 05, 05]
-1B233; [7C 82 68, 05, 05]
-1B234; [7C 82 6F, 05, 05]
-1B235; [7C 82 76, 05, 05]
-1B236; [7C 82 7D, 05, 05]
-1B237; [7C 82 84, 05, 05]
-1B238; [7C 82 8B, 05, 05]
-1B239; [7C 82 92, 05, 05]
-1B23A; [7C 82 99, 05, 05]
-1B23B; [7C 82 A0, 05, 05]
-1B23C; [7C 82 A7, 05, 05]
-1B23D; [7C 82 AE, 05, 05]
-1B23E; [7C 82 B5, 05, 05]
-1B23F; [7C 82 BC, 05, 05]
-1B240; [7C 82 C3, 05, 05]
-1B241; [7C 82 CA, 05, 05]
-1B242; [7C 82 D1, 05, 05]
-1B243; [7C 82 D8, 05, 05]
-1B244; [7C 82 DF, 05, 05]
-1B245; [7C 82 E6, 05, 05]
-1B246; [7C 82 ED, 05, 05]
-1B247; [7C 82 F4, 05, 05]
-1B248; [7C 82 FB, 05, 05]
-1B249; [7C 83 04, 05, 05]
-1B24A; [7C 83 0B, 05, 05]
-1B24B; [7C 83 12, 05, 05]
-1B24C; [7C 83 19, 05, 05]
-1B24D; [7C 83 20, 05, 05]
-1B24E; [7C 83 27, 05, 05]
-1B24F; [7C 83 2E, 05, 05]
-1B250; [7C 83 35, 05, 05]
-1B251; [7C 83 3C, 05, 05]
-1B252; [7C 83 43, 05, 05]
-1B253; [7C 83 4A, 05, 05]
-1B254; [7C 83 51, 05, 05]
-1B255; [7C 83 58, 05, 05]
-1B256; [7C 83 5F, 05, 05]
-1B257; [7C 83 66, 05, 05]
-1B258; [7C 83 6D, 05, 05]
-1B259; [7C 83 74, 05, 05]
-1B25A; [7C 83 7B, 05, 05]
-1B25B; [7C 83 82, 05, 05]
-1B25C; [7C 83 89, 05, 05]
-1B25D; [7C 83 90, 05, 05]
-1B25E; [7C 83 97, 05, 05]
-1B25F; [7C 83 9E, 05, 05]
-1B260; [7C 83 A5, 05, 05]
-1B261; [7C 83 AC, 05, 05]
-1B262; [7C 83 B3, 05, 05]
-1B263; [7C 83 BA, 05, 05]
-1B264; [7C 83 C1, 05, 05]
-1B265; [7C 83 C8, 05, 05]
-1B266; [7C 83 CF, 05, 05]
-1B267; [7C 83 D6, 05, 05]
-1B268; [7C 83 DD, 05, 05]
-1B269; [7C 83 E4, 05, 05]
-1B26A; [7C 83 EB, 05, 05]
-1B26B; [7C 83 F2, 05, 05]
-1B26C; [7C 83 F9, 05, 05]
-1B26D; [7C 84 02, 05, 05]
-1B26E; [7C 84 09, 05, 05]
-1B26F; [7C 84 10, 05, 05]
-1B270; [7C 84 17, 05, 05]
-1B271; [7C 84 1E, 05, 05]
-1B272; [7C 84 25, 05, 05]
-1B273; [7C 84 2C, 05, 05]
-1B274; [7C 84 33, 05, 05]
-1B275; [7C 84 3A, 05, 05]
-1B276; [7C 84 41, 05, 05]
-1B277; [7C 84 48, 05, 05]
-1B278; [7C 84 4F, 05, 05]
-1B279; [7C 84 56, 05, 05]
-1B27A; [7C 84 5D, 05, 05]
-1B27B; [7C 84 64, 05, 05]
-1B27C; [7C 84 6B, 05, 05]
-1B27D; [7C 84 72, 05, 05]
-1B27E; [7C 84 79, 05, 05]
-1B27F; [7C 84 80, 05, 05]
-1B280; [7C 84 87, 05, 05]
-1B281; [7C 84 8E, 05, 05]
-1B282; [7C 84 95, 05, 05]
-1B283; [7C 84 9C, 05, 05]
-1B284; [7C 84 A3, 05, 05]
-1B285; [7C 84 AA, 05, 05]
-1B286; [7C 84 B1, 05, 05]
-1B287; [7C 84 B8, 05, 05]
-1B288; [7C 84 BF, 05, 05]
-1B289; [7C 84 C6, 05, 05]
-1B28A; [7C 84 CD, 05, 05]
-1B28B; [7C 84 D4, 05, 05]
-1B28C; [7C 84 DB, 05, 05]
-1B28D; [7C 84 E2, 05, 05]
-1B28E; [7C 84 E9, 05, 05]
-1B28F; [7C 84 F0, 05, 05]
-1B290; [7C 84 F7, 05, 05]
-1B291; [7C 84 FE, 05, 05]
-1B292; [7C 85 07, 05, 05]
-1B293; [7C 85 0E, 05, 05]
-1B294; [7C 85 15, 05, 05]
-1B295; [7C 85 1C, 05, 05]
-1B296; [7C 85 23, 05, 05]
-1B297; [7C 85 2A, 05, 05]
-1B298; [7C 85 31, 05, 05]
-1B299; [7C 85 38, 05, 05]
-1B29A; [7C 85 3F, 05, 05]
-1B29B; [7C 85 46, 05, 05]
-1B29C; [7C 85 4D, 05, 05]
-1B29D; [7C 85 54, 05, 05]
-1B29E; [7C 85 5B, 05, 05]
-1B29F; [7C 85 62, 05, 05]
-1B2A0; [7C 85 69, 05, 05]
-1B2A1; [7C 85 70, 05, 05]
-1B2A2; [7C 85 77, 05, 05]
-1B2A3; [7C 85 7E, 05, 05]
-1B2A4; [7C 85 85, 05, 05]
-1B2A5; [7C 85 8C, 05, 05]
-1B2A6; [7C 85 93, 05, 05]
-1B2A7; [7C 85 9A, 05, 05]
-1B2A8; [7C 85 A1, 05, 05]
-1B2A9; [7C 85 A8, 05, 05]
-1B2AA; [7C 85 AF, 05, 05]
-1B2AB; [7C 85 B6, 05, 05]
-1B2AC; [7C 85 BD, 05, 05]
-1B2AD; [7C 85 C4, 05, 05]
-1B2AE; [7C 85 CB, 05, 05]
-1B2AF; [7C 85 D2, 05, 05]
-1B2B0; [7C 85 D9, 05, 05]
-1B2B1; [7C 85 E0, 05, 05]
-1B2B2; [7C 85 E7, 05, 05]
-1B2B3; [7C 85 EE, 05, 05]
-1B2B4; [7C 85 F5, 05, 05]
-1B2B5; [7C 85 FC, 05, 05]
-1B2B6; [7C 86 05, 05, 05]
-1B2B7; [7C 86 0C, 05, 05]
-1B2B8; [7C 86 13, 05, 05]
-1B2B9; [7C 86 1A, 05, 05]
-1B2BA; [7C 86 21, 05, 05]
-1B2BB; [7C 86 28, 05, 05]
-1B2BC; [7C 86 2F, 05, 05]
-1B2BD; [7C 86 36, 05, 05]
-1B2BE; [7C 86 3D, 05, 05]
-1B2BF; [7C 86 44, 05, 05]
-1B2C0; [7C 86 4B, 05, 05]
-1B2C1; [7C 86 52, 05, 05]
-1B2C2; [7C 86 59, 05, 05]
-1B2C3; [7C 86 60, 05, 05]
-1B2C4; [7C 86 67, 05, 05]
-1B2C5; [7C 86 6E, 05, 05]
-1B2C6; [7C 86 75, 05, 05]
-1B2C7; [7C 86 7C, 05, 05]
-1B2C8; [7C 86 83, 05, 05]
-1B2C9; [7C 86 8A, 05, 05]
-1B2CA; [7C 86 91, 05, 05]
-1B2CB; [7C 86 98, 05, 05]
-1B2CC; [7C 86 9F, 05, 05]
-1B2CD; [7C 86 A6, 05, 05]
-1B2CE; [7C 86 AD, 05, 05]
-1B2CF; [7C 86 B4, 05, 05]
-1B2D0; [7C 86 BB, 05, 05]
-1B2D1; [7C 86 C2, 05, 05]
-1B2D2; [7C 86 C9, 05, 05]
-1B2D3; [7C 86 D0, 05, 05]
-1B2D4; [7C 86 D7, 05, 05]
-1B2D5; [7C 86 DE, 05, 05]
-1B2D6; [7C 86 E5, 05, 05]
-1B2D7; [7C 86 EC, 05, 05]
-1B2D8; [7C 86 F3, 05, 05]
-1B2D9; [7C 86 FA, 05, 05]
-1B2DA; [7C 87 03, 05, 05]
-1B2DB; [7C 87 0A, 05, 05]
-1B2DC; [7C 87 11, 05, 05]
-1B2DD; [7C 87 18, 05, 05]
-1B2DE; [7C 87 1F, 05, 05]
-1B2DF; [7C 87 26, 05, 05]
-1B2E0; [7C 87 2D, 05, 05]
-1B2E1; [7C 87 34, 05, 05]
-1B2E2; [7C 87 3B, 05, 05]
-1B2E3; [7C 87 42, 05, 05]
-1B2E4; [7C 87 49, 05, 05]
-1B2E5; [7C 87 50, 05, 05]
-1B2E6; [7C 87 57, 05, 05]
-1B2E7; [7C 87 5E, 05, 05]
-1B2E8; [7C 87 65, 05, 05]
-1B2E9; [7C 87 6C, 05, 05]
-1B2EA; [7C 87 73, 05, 05]
-1B2EB; [7C 87 7A, 05, 05]
-1B2EC; [7C 87 81, 05, 05]
-1B2ED; [7C 87 88, 05, 05]
-1B2EE; [7C 87 8F, 05, 05]
-1B2EF; [7C 87 96, 05, 05]
-1B2F0; [7C 87 9D, 05, 05]
-1B2F1; [7C 87 A4, 05, 05]
-1B2F2; [7C 87 AB, 05, 05]
-1B2F3; [7C 87 B2, 05, 05]
-1B2F4; [7C 87 B9, 05, 05]
-1B2F5; [7C 87 C0, 05, 05]
-1B2F6; [7C 87 C7, 05, 05]
-1B2F7; [7C 87 CE, 05, 05]
-1B2F8; [7C 87 D5, 05, 05]
-1B2F9; [7C 87 DC, 05, 05]
-1B2FA; [7C 87 E3, 05, 05]
-1B2FB; [7C 87 EA, 05, 05]
-
-FDD1 5B57; [7D 02 02, 05, 05] # HAN first primary starts new lead byte
+17000; [7D 64 04, 05, 05]
+17001; [7D 64 06, 05, 05]
+17002; [7D 64 08, 05, 05]
+17003; [7D 64 0A, 05, 05]
+17004; [7D 64 0C, 05, 05]
+17005; [7D 64 0E, 05, 05]
+17006; [7D 64 10, 05, 05]
+17007; [7D 64 12, 05, 05]
+17008; [7D 64 14, 05, 05]
+17009; [7D 64 16, 05, 05]
+1700A; [7D 64 18, 05, 05]
+1700B; [7D 64 1A, 05, 05]
+1700C; [7D 64 1C, 05, 05]
+1700D; [7D 64 1E, 05, 05]
+1700E; [7D 64 20, 05, 05]
+1700F; [7D 64 22, 05, 05]
+17010; [7D 64 24, 05, 05]
+17011; [7D 64 26, 05, 05]
+17012; [7D 64 28, 05, 05]
+17013; [7D 64 2A, 05, 05]
+17014; [7D 64 2C, 05, 05]
+17015; [7D 64 2E, 05, 05]
+17016; [7D 64 30, 05, 05]
+17017; [7D 64 32, 05, 05]
+17018; [7D 64 34, 05, 05]
+17019; [7D 64 36, 05, 05]
+1701A; [7D 64 38, 05, 05]
+1701B; [7D 64 3A, 05, 05]
+1701C; [7D 64 3C, 05, 05]
+1701D; [7D 64 3E, 05, 05]
+1701E; [7D 64 40, 05, 05]
+1701F; [7D 64 42, 05, 05]
+17020; [7D 64 44, 05, 05]
+17021; [7D 64 46, 05, 05]
+17022; [7D 64 48, 05, 05]
+17023; [7D 64 4A, 05, 05]
+17024; [7D 64 4C, 05, 05]
+17025; [7D 64 4E, 05, 05]
+17026; [7D 64 50, 05, 05]
+17027; [7D 64 52, 05, 05]
+17028; [7D 64 54, 05, 05]
+17029; [7D 64 56, 05, 05]
+1702A; [7D 64 58, 05, 05]
+1702B; [7D 64 5A, 05, 05]
+1702C; [7D 64 5C, 05, 05]
+1702D; [7D 64 5E, 05, 05]
+1702E; [7D 64 60, 05, 05]
+1702F; [7D 64 62, 05, 05]
+17030; [7D 64 64, 05, 05]
+17031; [7D 64 66, 05, 05]
+17032; [7D 64 68, 05, 05]
+17033; [7D 64 6A, 05, 05]
+17034; [7D 64 6C, 05, 05]
+17035; [7D 64 6E, 05, 05]
+17036; [7D 64 70, 05, 05]
+17037; [7D 64 72, 05, 05]
+17038; [7D 64 74, 05, 05]
+17039; [7D 64 76, 05, 05]
+1703A; [7D 64 78, 05, 05]
+1703B; [7D 64 7A, 05, 05]
+1703C; [7D 64 7C, 05, 05]
+1703D; [7D 64 7E, 05, 05]
+1703E; [7D 64 80, 05, 05]
+1703F; [7D 64 82, 05, 05]
+17040; [7D 64 84, 05, 05]
+17041; [7D 64 86, 05, 05]
+17042; [7D 64 88, 05, 05]
+17043; [7D 64 8A, 05, 05]
+17044; [7D 64 8C, 05, 05]
+17045; [7D 64 8E, 05, 05]
+17046; [7D 64 90, 05, 05]
+17047; [7D 64 92, 05, 05]
+17048; [7D 64 94, 05, 05]
+17049; [7D 64 96, 05, 05]
+1704A; [7D 64 98, 05, 05]
+1704B; [7D 64 9A, 05, 05]
+1704C; [7D 64 9C, 05, 05]
+1704D; [7D 64 9E, 05, 05]
+1704E; [7D 64 A0, 05, 05]
+1704F; [7D 64 A2, 05, 05]
+17050; [7D 64 A4, 05, 05]
+17051; [7D 64 A6, 05, 05]
+17052; [7D 64 A8, 05, 05]
+17053; [7D 64 AA, 05, 05]
+17054; [7D 64 AC, 05, 05]
+17055; [7D 64 AE, 05, 05]
+17056; [7D 64 B0, 05, 05]
+17057; [7D 64 B2, 05, 05]
+17058; [7D 64 B4, 05, 05]
+17059; [7D 64 B6, 05, 05]
+1705A; [7D 64 B8, 05, 05]
+1705B; [7D 64 BA, 05, 05]
+1705C; [7D 64 BC, 05, 05]
+1705D; [7D 64 BE, 05, 05]
+1705E; [7D 64 C0, 05, 05]
+1705F; [7D 64 C2, 05, 05]
+17060; [7D 64 C4, 05, 05]
+17061; [7D 64 C6, 05, 05]
+17062; [7D 64 C8, 05, 05]
+17063; [7D 64 CA, 05, 05]
+17064; [7D 64 CC, 05, 05]
+17065; [7D 64 CE, 05, 05]
+17066; [7D 64 D0, 05, 05]
+17067; [7D 64 D2, 05, 05]
+17068; [7D 64 D4, 05, 05]
+17069; [7D 64 D6, 05, 05]
+1706A; [7D 64 D8, 05, 05]
+1706B; [7D 64 DA, 05, 05]
+1706C; [7D 64 DC, 05, 05]
+1706D; [7D 64 DE, 05, 05]
+1706E; [7D 64 E0, 05, 05]
+1706F; [7D 64 E2, 05, 05]
+17070; [7D 64 E4, 05, 05]
+17071; [7D 64 E6, 05, 05]
+17072; [7D 64 E8, 05, 05]
+17073; [7D 64 EA, 05, 05]
+17074; [7D 64 EC, 05, 05]
+17075; [7D 64 EE, 05, 05]
+17076; [7D 64 F0, 05, 05]
+17077; [7D 64 F2, 05, 05]
+17078; [7D 64 F4, 05, 05]
+17079; [7D 64 F6, 05, 05]
+1707A; [7D 64 F8, 05, 05]
+1707B; [7D 64 FA, 05, 05]
+1707C; [7D 64 FC, 05, 05]
+1707D; [7D 64 FE, 05, 05]
+1707E; [7D 65 02, 05, 05]
+1707F; [7D 65 04, 05, 05]
+17080; [7D 65 06, 05, 05]
+17081; [7D 65 08, 05, 05]
+17082; [7D 65 0A, 05, 05]
+17083; [7D 65 0C, 05, 05]
+17084; [7D 65 0E, 05, 05]
+17085; [7D 65 10, 05, 05]
+17086; [7D 65 12, 05, 05]
+17087; [7D 65 14, 05, 05]
+17088; [7D 65 16, 05, 05]
+17089; [7D 65 18, 05, 05]
+1708A; [7D 65 1A, 05, 05]
+1708B; [7D 65 1C, 05, 05]
+1708C; [7D 65 1E, 05, 05]
+1708D; [7D 65 20, 05, 05]
+1708E; [7D 65 22, 05, 05]
+1708F; [7D 65 24, 05, 05]
+17090; [7D 65 26, 05, 05]
+17091; [7D 65 28, 05, 05]
+17092; [7D 65 2A, 05, 05]
+17093; [7D 65 2C, 05, 05]
+17094; [7D 65 2E, 05, 05]
+17095; [7D 65 30, 05, 05]
+17096; [7D 65 32, 05, 05]
+17097; [7D 65 34, 05, 05]
+17098; [7D 65 36, 05, 05]
+17099; [7D 65 38, 05, 05]
+1709A; [7D 65 3A, 05, 05]
+1709B; [7D 65 3C, 05, 05]
+1709C; [7D 65 3E, 05, 05]
+1709D; [7D 65 40, 05, 05]
+1709E; [7D 65 42, 05, 05]
+1709F; [7D 65 44, 05, 05]
+170A0; [7D 65 46, 05, 05]
+170A1; [7D 65 48, 05, 05]
+170A2; [7D 65 4A, 05, 05]
+170A3; [7D 65 4C, 05, 05]
+170A4; [7D 65 4E, 05, 05]
+170A5; [7D 65 50, 05, 05]
+170A6; [7D 65 52, 05, 05]
+170A7; [7D 65 54, 05, 05]
+170A8; [7D 65 56, 05, 05]
+170A9; [7D 65 58, 05, 05]
+170AA; [7D 65 5A, 05, 05]
+170AB; [7D 65 5C, 05, 05]
+170AC; [7D 65 5E, 05, 05]
+170AD; [7D 65 60, 05, 05]
+170AE; [7D 65 62, 05, 05]
+170AF; [7D 65 64, 05, 05]
+170B0; [7D 65 66, 05, 05]
+170B1; [7D 65 68, 05, 05]
+170B2; [7D 65 6A, 05, 05]
+170B3; [7D 65 6C, 05, 05]
+170B4; [7D 65 6E, 05, 05]
+170B5; [7D 65 70, 05, 05]
+170B6; [7D 65 72, 05, 05]
+170B7; [7D 65 74, 05, 05]
+170B8; [7D 65 76, 05, 05]
+170B9; [7D 65 78, 05, 05]
+170BA; [7D 65 7A, 05, 05]
+170BB; [7D 65 7C, 05, 05]
+170BC; [7D 65 7E, 05, 05]
+170BD; [7D 65 80, 05, 05]
+170BE; [7D 65 82, 05, 05]
+170BF; [7D 65 84, 05, 05]
+170C0; [7D 65 86, 05, 05]
+170C1; [7D 65 88, 05, 05]
+170C2; [7D 65 8A, 05, 05]
+170C3; [7D 65 8C, 05, 05]
+170C4; [7D 65 8E, 05, 05]
+170C5; [7D 65 90, 05, 05]
+170C6; [7D 65 92, 05, 05]
+170C7; [7D 65 94, 05, 05]
+170C8; [7D 65 96, 05, 05]
+170C9; [7D 65 98, 05, 05]
+170CA; [7D 65 9A, 05, 05]
+170CB; [7D 65 9C, 05, 05]
+170CC; [7D 65 9E, 05, 05]
+170CD; [7D 65 A0, 05, 05]
+170CE; [7D 65 A2, 05, 05]
+170CF; [7D 65 A4, 05, 05]
+170D0; [7D 65 A6, 05, 05]
+170D1; [7D 65 A8, 05, 05]
+170D2; [7D 65 AA, 05, 05]
+170D3; [7D 65 AC, 05, 05]
+170D4; [7D 65 AE, 05, 05]
+170D5; [7D 65 B0, 05, 05]
+170D6; [7D 65 B2, 05, 05]
+170D7; [7D 65 B4, 05, 05]
+170D8; [7D 65 B6, 05, 05]
+170D9; [7D 65 B8, 05, 05]
+170DA; [7D 65 BA, 05, 05]
+170DB; [7D 65 BC, 05, 05]
+170DC; [7D 65 BE, 05, 05]
+170DD; [7D 65 C0, 05, 05]
+170DE; [7D 65 C2, 05, 05]
+170DF; [7D 65 C4, 05, 05]
+170E0; [7D 65 C6, 05, 05]
+170E1; [7D 65 C8, 05, 05]
+170E2; [7D 65 CA, 05, 05]
+170E3; [7D 65 CC, 05, 05]
+170E4; [7D 65 CE, 05, 05]
+170E5; [7D 65 D0, 05, 05]
+170E6; [7D 65 D2, 05, 05]
+170E7; [7D 65 D4, 05, 05]
+170E8; [7D 65 D6, 05, 05]
+170E9; [7D 65 D8, 05, 05]
+170EA; [7D 65 DA, 05, 05]
+170EB; [7D 65 DC, 05, 05]
+170EC; [7D 65 DE, 05, 05]
+170ED; [7D 65 E0, 05, 05]
+170EE; [7D 65 E2, 05, 05]
+170EF; [7D 65 E4, 05, 05]
+170F0; [7D 65 E6, 05, 05]
+170F1; [7D 65 E8, 05, 05]
+170F2; [7D 65 EA, 05, 05]
+170F3; [7D 65 EC, 05, 05]
+170F4; [7D 65 EE, 05, 05]
+170F5; [7D 65 F0, 05, 05]
+170F6; [7D 65 F2, 05, 05]
+170F7; [7D 65 F4, 05, 05]
+170F8; [7D 65 F6, 05, 05]
+170F9; [7D 65 F8, 05, 05]
+170FA; [7D 65 FA, 05, 05]
+170FB; [7D 65 FC, 05, 05]
+170FC; [7D 65 FE, 05, 05]
+170FD; [7D 66 02, 05, 05]
+170FE; [7D 66 04, 05, 05]
+170FF; [7D 66 06, 05, 05]
+17100; [7D 66 08, 05, 05]
+17101; [7D 66 0A, 05, 05]
+17102; [7D 66 0C, 05, 05]
+17103; [7D 66 0E, 05, 05]
+17104; [7D 66 10, 05, 05]
+17105; [7D 66 12, 05, 05]
+17106; [7D 66 14, 05, 05]
+17107; [7D 66 16, 05, 05]
+17108; [7D 66 18, 05, 05]
+17109; [7D 66 1A, 05, 05]
+1710A; [7D 66 1C, 05, 05]
+1710B; [7D 66 1E, 05, 05]
+1710C; [7D 66 20, 05, 05]
+1710D; [7D 66 22, 05, 05]
+1710E; [7D 66 24, 05, 05]
+1710F; [7D 66 26, 05, 05]
+17110; [7D 66 28, 05, 05]
+17111; [7D 66 2A, 05, 05]
+17112; [7D 66 2C, 05, 05]
+17113; [7D 66 2E, 05, 05]
+17114; [7D 66 30, 05, 05]
+17115; [7D 66 32, 05, 05]
+17116; [7D 66 34, 05, 05]
+17117; [7D 66 36, 05, 05]
+17118; [7D 66 38, 05, 05]
+17119; [7D 66 3A, 05, 05]
+1711A; [7D 66 3C, 05, 05]
+1711B; [7D 66 3E, 05, 05]
+1711C; [7D 66 40, 05, 05]
+1711D; [7D 66 42, 05, 05]
+1711E; [7D 66 44, 05, 05]
+1711F; [7D 66 46, 05, 05]
+17120; [7D 66 48, 05, 05]
+17121; [7D 66 4A, 05, 05]
+17122; [7D 66 4C, 05, 05]
+17123; [7D 66 4E, 05, 05]
+17124; [7D 66 50, 05, 05]
+17125; [7D 66 52, 05, 05]
+17126; [7D 66 54, 05, 05]
+17127; [7D 66 56, 05, 05]
+17128; [7D 66 58, 05, 05]
+17129; [7D 66 5A, 05, 05]
+1712A; [7D 66 5C, 05, 05]
+1712B; [7D 66 5E, 05, 05]
+1712C; [7D 66 60, 05, 05]
+1712D; [7D 66 62, 05, 05]
+1712E; [7D 66 64, 05, 05]
+1712F; [7D 66 66, 05, 05]
+17130; [7D 66 68, 05, 05]
+17131; [7D 66 6A, 05, 05]
+17132; [7D 66 6C, 05, 05]
+17133; [7D 66 6E, 05, 05]
+17134; [7D 66 70, 05, 05]
+17135; [7D 66 72, 05, 05]
+17136; [7D 66 74, 05, 05]
+17137; [7D 66 76, 05, 05]
+17138; [7D 66 78, 05, 05]
+17139; [7D 66 7A, 05, 05]
+1713A; [7D 66 7C, 05, 05]
+1713B; [7D 66 7E, 05, 05]
+1713C; [7D 66 80, 05, 05]
+1713D; [7D 66 82, 05, 05]
+1713E; [7D 66 84, 05, 05]
+1713F; [7D 66 86, 05, 05]
+17140; [7D 66 88, 05, 05]
+17141; [7D 66 8A, 05, 05]
+17142; [7D 66 8C, 05, 05]
+17143; [7D 66 8E, 05, 05]
+17144; [7D 66 90, 05, 05]
+17145; [7D 66 92, 05, 05]
+17146; [7D 66 94, 05, 05]
+17147; [7D 66 96, 05, 05]
+17148; [7D 66 98, 05, 05]
+17149; [7D 66 9A, 05, 05]
+1714A; [7D 66 9C, 05, 05]
+1714B; [7D 66 9E, 05, 05]
+1714C; [7D 66 A0, 05, 05]
+1714D; [7D 66 A2, 05, 05]
+1714E; [7D 66 A4, 05, 05]
+1714F; [7D 66 A6, 05, 05]
+17150; [7D 66 A8, 05, 05]
+17151; [7D 66 AA, 05, 05]
+17152; [7D 66 AC, 05, 05]
+17153; [7D 66 AE, 05, 05]
+17154; [7D 66 B0, 05, 05]
+17155; [7D 66 B2, 05, 05]
+17156; [7D 66 B4, 05, 05]
+17157; [7D 66 B6, 05, 05]
+17158; [7D 66 B8, 05, 05]
+17159; [7D 66 BA, 05, 05]
+1715A; [7D 66 BC, 05, 05]
+1715B; [7D 66 BE, 05, 05]
+1715C; [7D 66 C0, 05, 05]
+1715D; [7D 66 C2, 05, 05]
+1715E; [7D 66 C4, 05, 05]
+1715F; [7D 66 C6, 05, 05]
+17160; [7D 66 C8, 05, 05]
+17161; [7D 66 CA, 05, 05]
+17162; [7D 66 CC, 05, 05]
+17163; [7D 66 CE, 05, 05]
+17164; [7D 66 D0, 05, 05]
+17165; [7D 66 D2, 05, 05]
+17166; [7D 66 D4, 05, 05]
+17167; [7D 66 D6, 05, 05]
+17168; [7D 66 D8, 05, 05]
+17169; [7D 66 DA, 05, 05]
+1716A; [7D 66 DC, 05, 05]
+1716B; [7D 66 DE, 05, 05]
+1716C; [7D 66 E0, 05, 05]
+1716D; [7D 66 E2, 05, 05]
+1716E; [7D 66 E4, 05, 05]
+1716F; [7D 66 E6, 05, 05]
+17170; [7D 66 E8, 05, 05]
+17171; [7D 66 EA, 05, 05]
+17172; [7D 66 EC, 05, 05]
+17173; [7D 66 EE, 05, 05]
+17174; [7D 66 F0, 05, 05]
+17175; [7D 66 F2, 05, 05]
+17176; [7D 66 F4, 05, 05]
+17177; [7D 66 F6, 05, 05]
+17178; [7D 66 F8, 05, 05]
+17179; [7D 66 FA, 05, 05]
+1717A; [7D 66 FC, 05, 05]
+1717B; [7D 66 FE, 05, 05]
+1717C; [7D 67 02, 05, 05]
+1717D; [7D 67 04, 05, 05]
+1717E; [7D 67 06, 05, 05]
+1717F; [7D 67 08, 05, 05]
+17180; [7D 67 0A, 05, 05]
+17181; [7D 67 0C, 05, 05]
+17182; [7D 67 0E, 05, 05]
+17183; [7D 67 10, 05, 05]
+17184; [7D 67 12, 05, 05]
+17185; [7D 67 14, 05, 05]
+17186; [7D 67 16, 05, 05]
+17187; [7D 67 18, 05, 05]
+17188; [7D 67 1A, 05, 05]
+17189; [7D 67 1C, 05, 05]
+1718A; [7D 67 1E, 05, 05]
+1718B; [7D 67 20, 05, 05]
+1718C; [7D 67 22, 05, 05]
+1718D; [7D 67 24, 05, 05]
+1718E; [7D 67 26, 05, 05]
+1718F; [7D 67 28, 05, 05]
+17190; [7D 67 2A, 05, 05]
+17191; [7D 67 2C, 05, 05]
+17192; [7D 67 2E, 05, 05]
+17193; [7D 67 30, 05, 05]
+17194; [7D 67 32, 05, 05]
+17195; [7D 67 34, 05, 05]
+17196; [7D 67 36, 05, 05]
+17197; [7D 67 38, 05, 05]
+17198; [7D 67 3A, 05, 05]
+17199; [7D 67 3C, 05, 05]
+1719A; [7D 67 3E, 05, 05]
+1719B; [7D 67 40, 05, 05]
+1719C; [7D 67 42, 05, 05]
+1719D; [7D 67 44, 05, 05]
+1719E; [7D 67 46, 05, 05]
+1719F; [7D 67 48, 05, 05]
+171A0; [7D 67 4A, 05, 05]
+171A1; [7D 67 4C, 05, 05]
+171A2; [7D 67 4E, 05, 05]
+171A3; [7D 67 50, 05, 05]
+171A4; [7D 67 52, 05, 05]
+171A5; [7D 67 54, 05, 05]
+171A6; [7D 67 56, 05, 05]
+171A7; [7D 67 58, 05, 05]
+171A8; [7D 67 5A, 05, 05]
+171A9; [7D 67 5C, 05, 05]
+171AA; [7D 67 5E, 05, 05]
+171AB; [7D 67 60, 05, 05]
+171AC; [7D 67 62, 05, 05]
+171AD; [7D 67 64, 05, 05]
+171AE; [7D 67 66, 05, 05]
+171AF; [7D 67 68, 05, 05]
+171B0; [7D 67 6A, 05, 05]
+171B1; [7D 67 6C, 05, 05]
+171B2; [7D 67 6E, 05, 05]
+171B3; [7D 67 70, 05, 05]
+171B4; [7D 67 72, 05, 05]
+171B5; [7D 67 74, 05, 05]
+171B6; [7D 67 76, 05, 05]
+171B7; [7D 67 78, 05, 05]
+171B8; [7D 67 7A, 05, 05]
+171B9; [7D 67 7C, 05, 05]
+171BA; [7D 67 7E, 05, 05]
+171BB; [7D 67 80, 05, 05]
+171BC; [7D 67 82, 05, 05]
+171BD; [7D 67 84, 05, 05]
+171BE; [7D 67 86, 05, 05]
+171BF; [7D 67 88, 05, 05]
+171C0; [7D 67 8A, 05, 05]
+171C1; [7D 67 8C, 05, 05]
+171C2; [7D 67 8E, 05, 05]
+171C3; [7D 67 90, 05, 05]
+171C4; [7D 67 92, 05, 05]
+171C5; [7D 67 94, 05, 05]
+171C6; [7D 67 96, 05, 05]
+171C7; [7D 67 98, 05, 05]
+171C8; [7D 67 9A, 05, 05]
+171C9; [7D 67 9C, 05, 05]
+171CA; [7D 67 9E, 05, 05]
+171CB; [7D 67 A0, 05, 05]
+171CC; [7D 67 A2, 05, 05]
+171CD; [7D 67 A4, 05, 05]
+171CE; [7D 67 A6, 05, 05]
+171CF; [7D 67 A8, 05, 05]
+171D0; [7D 67 AA, 05, 05]
+171D1; [7D 67 AC, 05, 05]
+171D2; [7D 67 AE, 05, 05]
+171D3; [7D 67 B0, 05, 05]
+171D4; [7D 67 B2, 05, 05]
+171D5; [7D 67 B4, 05, 05]
+171D6; [7D 67 B6, 05, 05]
+171D7; [7D 67 B8, 05, 05]
+171D8; [7D 67 BA, 05, 05]
+171D9; [7D 67 BC, 05, 05]
+171DA; [7D 67 BE, 05, 05]
+171DB; [7D 67 C0, 05, 05]
+171DC; [7D 67 C2, 05, 05]
+171DD; [7D 67 C4, 05, 05]
+171DE; [7D 67 C6, 05, 05]
+171DF; [7D 67 C8, 05, 05]
+171E0; [7D 67 CA, 05, 05]
+171E1; [7D 67 CC, 05, 05]
+171E2; [7D 67 CE, 05, 05]
+171E3; [7D 67 D0, 05, 05]
+171E4; [7D 67 D2, 05, 05]
+171E5; [7D 67 D4, 05, 05]
+171E6; [7D 67 D6, 05, 05]
+171E7; [7D 67 D8, 05, 05]
+171E8; [7D 67 DA, 05, 05]
+171E9; [7D 67 DC, 05, 05]
+171EA; [7D 67 DE, 05, 05]
+171EB; [7D 67 E0, 05, 05]
+171EC; [7D 67 E2, 05, 05]
+171ED; [7D 67 E4, 05, 05]
+171EE; [7D 67 E6, 05, 05]
+171EF; [7D 67 E8, 05, 05]
+171F0; [7D 67 EA, 05, 05]
+171F1; [7D 67 EC, 05, 05]
+171F2; [7D 67 EE, 05, 05]
+171F3; [7D 67 F0, 05, 05]
+171F4; [7D 67 F2, 05, 05]
+171F5; [7D 67 F4, 05, 05]
+171F6; [7D 67 F6, 05, 05]
+171F7; [7D 67 F8, 05, 05]
+171F8; [7D 67 FA, 05, 05]
+171F9; [7D 67 FC, 05, 05]
+171FA; [7D 67 FE, 05, 05]
+171FB; [7D 68 02, 05, 05]
+171FC; [7D 68 04, 05, 05]
+171FD; [7D 68 06, 05, 05]
+171FE; [7D 68 08, 05, 05]
+171FF; [7D 68 0A, 05, 05]
+17200; [7D 68 0C, 05, 05]
+17201; [7D 68 0E, 05, 05]
+17202; [7D 68 10, 05, 05]
+17203; [7D 68 12, 05, 05]
+17204; [7D 68 14, 05, 05]
+17205; [7D 68 16, 05, 05]
+17206; [7D 68 18, 05, 05]
+17207; [7D 68 1A, 05, 05]
+17208; [7D 68 1C, 05, 05]
+17209; [7D 68 1E, 05, 05]
+1720A; [7D 68 20, 05, 05]
+1720B; [7D 68 22, 05, 05]
+1720C; [7D 68 24, 05, 05]
+1720D; [7D 68 26, 05, 05]
+1720E; [7D 68 28, 05, 05]
+1720F; [7D 68 2A, 05, 05]
+17210; [7D 68 2C, 05, 05]
+17211; [7D 68 2E, 05, 05]
+17212; [7D 68 30, 05, 05]
+17213; [7D 68 32, 05, 05]
+17214; [7D 68 34, 05, 05]
+17215; [7D 68 36, 05, 05]
+17216; [7D 68 38, 05, 05]
+17217; [7D 68 3A, 05, 05]
+17218; [7D 68 3C, 05, 05]
+17219; [7D 68 3E, 05, 05]
+1721A; [7D 68 40, 05, 05]
+1721B; [7D 68 42, 05, 05]
+1721C; [7D 68 44, 05, 05]
+1721D; [7D 68 46, 05, 05]
+1721E; [7D 68 48, 05, 05]
+1721F; [7D 68 4A, 05, 05]
+17220; [7D 68 4C, 05, 05]
+17221; [7D 68 4E, 05, 05]
+17222; [7D 68 50, 05, 05]
+17223; [7D 68 52, 05, 05]
+17224; [7D 68 54, 05, 05]
+17225; [7D 68 56, 05, 05]
+17226; [7D 68 58, 05, 05]
+17227; [7D 68 5A, 05, 05]
+17228; [7D 68 5C, 05, 05]
+17229; [7D 68 5E, 05, 05]
+1722A; [7D 68 60, 05, 05]
+1722B; [7D 68 62, 05, 05]
+1722C; [7D 68 64, 05, 05]
+1722D; [7D 68 66, 05, 05]
+1722E; [7D 68 68, 05, 05]
+1722F; [7D 68 6A, 05, 05]
+17230; [7D 68 6C, 05, 05]
+17231; [7D 68 6E, 05, 05]
+17232; [7D 68 70, 05, 05]
+17233; [7D 68 72, 05, 05]
+17234; [7D 68 74, 05, 05]
+17235; [7D 68 76, 05, 05]
+17236; [7D 68 78, 05, 05]
+17237; [7D 68 7A, 05, 05]
+17238; [7D 68 7C, 05, 05]
+17239; [7D 68 7E, 05, 05]
+1723A; [7D 68 80, 05, 05]
+1723B; [7D 68 82, 05, 05]
+1723C; [7D 68 84, 05, 05]
+1723D; [7D 68 86, 05, 05]
+1723E; [7D 68 88, 05, 05]
+1723F; [7D 68 8A, 05, 05]
+17240; [7D 68 8C, 05, 05]
+17241; [7D 68 8E, 05, 05]
+17242; [7D 68 90, 05, 05]
+17243; [7D 68 92, 05, 05]
+17244; [7D 68 94, 05, 05]
+17245; [7D 68 96, 05, 05]
+17246; [7D 68 98, 05, 05]
+17247; [7D 68 9A, 05, 05]
+17248; [7D 68 9C, 05, 05]
+17249; [7D 68 9E, 05, 05]
+1724A; [7D 68 A0, 05, 05]
+1724B; [7D 68 A2, 05, 05]
+1724C; [7D 68 A4, 05, 05]
+1724D; [7D 68 A6, 05, 05]
+1724E; [7D 68 A8, 05, 05]
+1724F; [7D 68 AA, 05, 05]
+17250; [7D 68 AC, 05, 05]
+17251; [7D 68 AE, 05, 05]
+17252; [7D 68 B0, 05, 05]
+17253; [7D 68 B2, 05, 05]
+17254; [7D 68 B4, 05, 05]
+17255; [7D 68 B6, 05, 05]
+17256; [7D 68 B8, 05, 05]
+17257; [7D 68 BA, 05, 05]
+17258; [7D 68 BC, 05, 05]
+17259; [7D 68 BE, 05, 05]
+1725A; [7D 68 C0, 05, 05]
+1725B; [7D 68 C2, 05, 05]
+1725C; [7D 68 C4, 05, 05]
+1725D; [7D 68 C6, 05, 05]
+1725E; [7D 68 C8, 05, 05]
+1725F; [7D 68 CA, 05, 05]
+17260; [7D 68 CC, 05, 05]
+17261; [7D 68 CE, 05, 05]
+17262; [7D 68 D0, 05, 05]
+17263; [7D 68 D2, 05, 05]
+17264; [7D 68 D4, 05, 05]
+17265; [7D 68 D6, 05, 05]
+17266; [7D 68 D8, 05, 05]
+17267; [7D 68 DA, 05, 05]
+17268; [7D 68 DC, 05, 05]
+17269; [7D 68 DE, 05, 05]
+1726A; [7D 68 E0, 05, 05]
+1726B; [7D 68 E2, 05, 05]
+1726C; [7D 68 E4, 05, 05]
+1726D; [7D 68 E6, 05, 05]
+1726E; [7D 68 E8, 05, 05]
+1726F; [7D 68 EA, 05, 05]
+17270; [7D 68 EC, 05, 05]
+17271; [7D 68 EE, 05, 05]
+17272; [7D 68 F0, 05, 05]
+17273; [7D 68 F2, 05, 05]
+17274; [7D 68 F4, 05, 05]
+17275; [7D 68 F6, 05, 05]
+17276; [7D 68 F8, 05, 05]
+17277; [7D 68 FA, 05, 05]
+17278; [7D 68 FC, 05, 05]
+17279; [7D 68 FE, 05, 05]
+1727A; [7D 69 02, 05, 05]
+1727B; [7D 69 04, 05, 05]
+1727C; [7D 69 06, 05, 05]
+1727D; [7D 69 08, 05, 05]
+1727E; [7D 69 0A, 05, 05]
+1727F; [7D 69 0C, 05, 05]
+17280; [7D 69 0E, 05, 05]
+17281; [7D 69 10, 05, 05]
+17282; [7D 69 12, 05, 05]
+17283; [7D 69 14, 05, 05]
+17284; [7D 69 16, 05, 05]
+17285; [7D 69 18, 05, 05]
+17286; [7D 69 1A, 05, 05]
+17287; [7D 69 1C, 05, 05]
+17288; [7D 69 1E, 05, 05]
+17289; [7D 69 20, 05, 05]
+1728A; [7D 69 22, 05, 05]
+1728B; [7D 69 24, 05, 05]
+1728C; [7D 69 26, 05, 05]
+1728D; [7D 69 28, 05, 05]
+1728E; [7D 69 2A, 05, 05]
+1728F; [7D 69 2C, 05, 05]
+17290; [7D 69 2E, 05, 05]
+17291; [7D 69 30, 05, 05]
+17292; [7D 69 32, 05, 05]
+17293; [7D 69 34, 05, 05]
+17294; [7D 69 36, 05, 05]
+17295; [7D 69 38, 05, 05]
+17296; [7D 69 3A, 05, 05]
+17297; [7D 69 3C, 05, 05]
+17298; [7D 69 3E, 05, 05]
+17299; [7D 69 40, 05, 05]
+1729A; [7D 69 42, 05, 05]
+1729B; [7D 69 44, 05, 05]
+1729C; [7D 69 46, 05, 05]
+1729D; [7D 69 48, 05, 05]
+1729E; [7D 69 4A, 05, 05]
+1729F; [7D 69 4C, 05, 05]
+172A0; [7D 69 4E, 05, 05]
+172A1; [7D 69 50, 05, 05]
+172A2; [7D 69 52, 05, 05]
+172A3; [7D 69 54, 05, 05]
+172A4; [7D 69 56, 05, 05]
+172A5; [7D 69 58, 05, 05]
+172A6; [7D 69 5A, 05, 05]
+172A7; [7D 69 5C, 05, 05]
+172A8; [7D 69 5E, 05, 05]
+172A9; [7D 69 60, 05, 05]
+172AA; [7D 69 62, 05, 05]
+172AB; [7D 69 64, 05, 05]
+172AC; [7D 69 66, 05, 05]
+172AD; [7D 69 68, 05, 05]
+172AE; [7D 69 6A, 05, 05]
+172AF; [7D 69 6C, 05, 05]
+172B0; [7D 69 6E, 05, 05]
+172B1; [7D 69 70, 05, 05]
+172B2; [7D 69 72, 05, 05]
+172B3; [7D 69 74, 05, 05]
+172B4; [7D 69 76, 05, 05]
+172B5; [7D 69 78, 05, 05]
+172B6; [7D 69 7A, 05, 05]
+172B7; [7D 69 7C, 05, 05]
+172B8; [7D 69 7E, 05, 05]
+172B9; [7D 69 80, 05, 05]
+172BA; [7D 69 82, 05, 05]
+172BB; [7D 69 84, 05, 05]
+172BC; [7D 69 86, 05, 05]
+172BD; [7D 69 88, 05, 05]
+172BE; [7D 69 8A, 05, 05]
+172BF; [7D 69 8C, 05, 05]
+172C0; [7D 69 8E, 05, 05]
+172C1; [7D 69 90, 05, 05]
+172C2; [7D 69 92, 05, 05]
+172C3; [7D 69 94, 05, 05]
+172C4; [7D 69 96, 05, 05]
+172C5; [7D 69 98, 05, 05]
+172C6; [7D 69 9A, 05, 05]
+172C7; [7D 69 9C, 05, 05]
+172C8; [7D 69 9E, 05, 05]
+172C9; [7D 69 A0, 05, 05]
+172CA; [7D 69 A2, 05, 05]
+172CB; [7D 69 A4, 05, 05]
+172CC; [7D 69 A6, 05, 05]
+172CD; [7D 69 A8, 05, 05]
+172CE; [7D 69 AA, 05, 05]
+172CF; [7D 69 AC, 05, 05]
+172D0; [7D 69 AE, 05, 05]
+172D1; [7D 69 B0, 05, 05]
+172D2; [7D 69 B2, 05, 05]
+172D3; [7D 69 B4, 05, 05]
+172D4; [7D 69 B6, 05, 05]
+172D5; [7D 69 B8, 05, 05]
+172D6; [7D 69 BA, 05, 05]
+172D7; [7D 69 BC, 05, 05]
+172D8; [7D 69 BE, 05, 05]
+172D9; [7D 69 C0, 05, 05]
+172DA; [7D 69 C2, 05, 05]
+172DB; [7D 69 C4, 05, 05]
+172DC; [7D 69 C6, 05, 05]
+172DD; [7D 69 C8, 05, 05]
+172DE; [7D 69 CA, 05, 05]
+172DF; [7D 69 CC, 05, 05]
+172E0; [7D 69 CE, 05, 05]
+172E1; [7D 69 D0, 05, 05]
+172E2; [7D 69 D2, 05, 05]
+172E3; [7D 69 D4, 05, 05]
+172E4; [7D 69 D6, 05, 05]
+172E5; [7D 69 D8, 05, 05]
+172E6; [7D 69 DA, 05, 05]
+172E7; [7D 69 DC, 05, 05]
+172E8; [7D 69 DE, 05, 05]
+172E9; [7D 69 E0, 05, 05]
+172EA; [7D 69 E2, 05, 05]
+172EB; [7D 69 E4, 05, 05]
+172EC; [7D 69 E6, 05, 05]
+172ED; [7D 69 E8, 05, 05]
+172EE; [7D 69 EA, 05, 05]
+172EF; [7D 69 EC, 05, 05]
+172F0; [7D 69 EE, 05, 05]
+172F1; [7D 69 F0, 05, 05]
+172F2; [7D 69 F2, 05, 05]
+172F3; [7D 69 F4, 05, 05]
+172F4; [7D 69 F6, 05, 05]
+172F5; [7D 69 F8, 05, 05]
+172F6; [7D 69 FA, 05, 05]
+172F7; [7D 69 FC, 05, 05]
+172F8; [7D 69 FE, 05, 05]
+172F9; [7D 6A 02, 05, 05]
+172FA; [7D 6A 04, 05, 05]
+172FB; [7D 6A 06, 05, 05]
+172FC; [7D 6A 08, 05, 05]
+172FD; [7D 6A 0A, 05, 05]
+172FE; [7D 6A 0C, 05, 05]
+172FF; [7D 6A 0E, 05, 05]
+17300; [7D 6A 10, 05, 05]
+17301; [7D 6A 12, 05, 05]
+17302; [7D 6A 14, 05, 05]
+17303; [7D 6A 16, 05, 05]
+17304; [7D 6A 18, 05, 05]
+17305; [7D 6A 1A, 05, 05]
+17306; [7D 6A 1C, 05, 05]
+17307; [7D 6A 1E, 05, 05]
+17308; [7D 6A 20, 05, 05]
+17309; [7D 6A 22, 05, 05]
+1730A; [7D 6A 24, 05, 05]
+1730B; [7D 6A 26, 05, 05]
+1730C; [7D 6A 28, 05, 05]
+1730D; [7D 6A 2A, 05, 05]
+1730E; [7D 6A 2C, 05, 05]
+1730F; [7D 6A 2E, 05, 05]
+17310; [7D 6A 30, 05, 05]
+17311; [7D 6A 32, 05, 05]
+17312; [7D 6A 34, 05, 05]
+17313; [7D 6A 36, 05, 05]
+17314; [7D 6A 38, 05, 05]
+17315; [7D 6A 3A, 05, 05]
+17316; [7D 6A 3C, 05, 05]
+17317; [7D 6A 3E, 05, 05]
+17318; [7D 6A 40, 05, 05]
+17319; [7D 6A 42, 05, 05]
+1731A; [7D 6A 44, 05, 05]
+1731B; [7D 6A 46, 05, 05]
+1731C; [7D 6A 48, 05, 05]
+1731D; [7D 6A 4A, 05, 05]
+1731E; [7D 6A 4C, 05, 05]
+1731F; [7D 6A 4E, 05, 05]
+17320; [7D 6A 50, 05, 05]
+17321; [7D 6A 52, 05, 05]
+17322; [7D 6A 54, 05, 05]
+17323; [7D 6A 56, 05, 05]
+17324; [7D 6A 58, 05, 05]
+17325; [7D 6A 5A, 05, 05]
+17326; [7D 6A 5C, 05, 05]
+17327; [7D 6A 5E, 05, 05]
+17328; [7D 6A 60, 05, 05]
+17329; [7D 6A 62, 05, 05]
+1732A; [7D 6A 64, 05, 05]
+1732B; [7D 6A 66, 05, 05]
+1732C; [7D 6A 68, 05, 05]
+1732D; [7D 6A 6A, 05, 05]
+1732E; [7D 6A 6C, 05, 05]
+1732F; [7D 6A 6E, 05, 05]
+17330; [7D 6A 70, 05, 05]
+17331; [7D 6A 72, 05, 05]
+17332; [7D 6A 74, 05, 05]
+17333; [7D 6A 76, 05, 05]
+17334; [7D 6A 78, 05, 05]
+17335; [7D 6A 7A, 05, 05]
+17336; [7D 6A 7C, 05, 05]
+17337; [7D 6A 7E, 05, 05]
+17338; [7D 6A 80, 05, 05]
+17339; [7D 6A 82, 05, 05]
+1733A; [7D 6A 84, 05, 05]
+1733B; [7D 6A 86, 05, 05]
+1733C; [7D 6A 88, 05, 05]
+1733D; [7D 6A 8A, 05, 05]
+1733E; [7D 6A 8C, 05, 05]
+1733F; [7D 6A 8E, 05, 05]
+17340; [7D 6A 90, 05, 05]
+17341; [7D 6A 92, 05, 05]
+17342; [7D 6A 94, 05, 05]
+17343; [7D 6A 96, 05, 05]
+17344; [7D 6A 98, 05, 05]
+17345; [7D 6A 9A, 05, 05]
+17346; [7D 6A 9C, 05, 05]
+17347; [7D 6A 9E, 05, 05]
+17348; [7D 6A A0, 05, 05]
+17349; [7D 6A A2, 05, 05]
+1734A; [7D 6A A4, 05, 05]
+1734B; [7D 6A A6, 05, 05]
+1734C; [7D 6A A8, 05, 05]
+1734D; [7D 6A AA, 05, 05]
+1734E; [7D 6A AC, 05, 05]
+1734F; [7D 6A AE, 05, 05]
+17350; [7D 6A B0, 05, 05]
+17351; [7D 6A B2, 05, 05]
+17352; [7D 6A B4, 05, 05]
+17353; [7D 6A B6, 05, 05]
+17354; [7D 6A B8, 05, 05]
+17355; [7D 6A BA, 05, 05]
+17356; [7D 6A BC, 05, 05]
+17357; [7D 6A BE, 05, 05]
+17358; [7D 6A C0, 05, 05]
+17359; [7D 6A C2, 05, 05]
+1735A; [7D 6A C4, 05, 05]
+1735B; [7D 6A C6, 05, 05]
+1735C; [7D 6A C8, 05, 05]
+1735D; [7D 6A CA, 05, 05]
+1735E; [7D 6A CC, 05, 05]
+1735F; [7D 6A CE, 05, 05]
+17360; [7D 6A D0, 05, 05]
+17361; [7D 6A D2, 05, 05]
+17362; [7D 6A D4, 05, 05]
+17363; [7D 6A D6, 05, 05]
+17364; [7D 6A D8, 05, 05]
+17365; [7D 6A DA, 05, 05]
+17366; [7D 6A DC, 05, 05]
+17367; [7D 6A DE, 05, 05]
+17368; [7D 6A E0, 05, 05]
+17369; [7D 6A E2, 05, 05]
+1736A; [7D 6A E4, 05, 05]
+1736B; [7D 6A E6, 05, 05]
+1736C; [7D 6A E8, 05, 05]
+1736D; [7D 6A EA, 05, 05]
+1736E; [7D 6A EC, 05, 05]
+1736F; [7D 6A EE, 05, 05]
+17370; [7D 6A F0, 05, 05]
+17371; [7D 6A F2, 05, 05]
+17372; [7D 6A F4, 05, 05]
+17373; [7D 6A F6, 05, 05]
+17374; [7D 6A F8, 05, 05]
+17375; [7D 6A FA, 05, 05]
+17376; [7D 6A FC, 05, 05]
+17377; [7D 6A FE, 05, 05]
+17378; [7D 6B 02, 05, 05]
+17379; [7D 6B 04, 05, 05]
+1737A; [7D 6B 06, 05, 05]
+1737B; [7D 6B 08, 05, 05]
+1737C; [7D 6B 0A, 05, 05]
+1737D; [7D 6B 0C, 05, 05]
+1737E; [7D 6B 0E, 05, 05]
+1737F; [7D 6B 10, 05, 05]
+17380; [7D 6B 12, 05, 05]
+17381; [7D 6B 14, 05, 05]
+17382; [7D 6B 16, 05, 05]
+17383; [7D 6B 18, 05, 05]
+17384; [7D 6B 1A, 05, 05]
+17385; [7D 6B 1C, 05, 05]
+17386; [7D 6B 1E, 05, 05]
+17387; [7D 6B 20, 05, 05]
+17388; [7D 6B 22, 05, 05]
+17389; [7D 6B 24, 05, 05]
+1738A; [7D 6B 26, 05, 05]
+1738B; [7D 6B 28, 05, 05]
+1738C; [7D 6B 2A, 05, 05]
+1738D; [7D 6B 2C, 05, 05]
+1738E; [7D 6B 2E, 05, 05]
+1738F; [7D 6B 30, 05, 05]
+17390; [7D 6B 32, 05, 05]
+17391; [7D 6B 34, 05, 05]
+17392; [7D 6B 36, 05, 05]
+17393; [7D 6B 38, 05, 05]
+17394; [7D 6B 3A, 05, 05]
+17395; [7D 6B 3C, 05, 05]
+17396; [7D 6B 3E, 05, 05]
+17397; [7D 6B 40, 05, 05]
+17398; [7D 6B 42, 05, 05]
+17399; [7D 6B 44, 05, 05]
+1739A; [7D 6B 46, 05, 05]
+1739B; [7D 6B 48, 05, 05]
+1739C; [7D 6B 4A, 05, 05]
+1739D; [7D 6B 4C, 05, 05]
+1739E; [7D 6B 4E, 05, 05]
+1739F; [7D 6B 50, 05, 05]
+173A0; [7D 6B 52, 05, 05]
+173A1; [7D 6B 54, 05, 05]
+173A2; [7D 6B 56, 05, 05]
+173A3; [7D 6B 58, 05, 05]
+173A4; [7D 6B 5A, 05, 05]
+173A5; [7D 6B 5C, 05, 05]
+173A6; [7D 6B 5E, 05, 05]
+173A7; [7D 6B 60, 05, 05]
+173A8; [7D 6B 62, 05, 05]
+173A9; [7D 6B 64, 05, 05]
+173AA; [7D 6B 66, 05, 05]
+173AB; [7D 6B 68, 05, 05]
+173AC; [7D 6B 6A, 05, 05]
+173AD; [7D 6B 6C, 05, 05]
+173AE; [7D 6B 6E, 05, 05]
+173AF; [7D 6B 70, 05, 05]
+173B0; [7D 6B 72, 05, 05]
+173B1; [7D 6B 74, 05, 05]
+173B2; [7D 6B 76, 05, 05]
+173B3; [7D 6B 78, 05, 05]
+173B4; [7D 6B 7A, 05, 05]
+173B5; [7D 6B 7C, 05, 05]
+173B6; [7D 6B 7E, 05, 05]
+173B7; [7D 6B 80, 05, 05]
+173B8; [7D 6B 82, 05, 05]
+173B9; [7D 6B 84, 05, 05]
+173BA; [7D 6B 86, 05, 05]
+173BB; [7D 6B 88, 05, 05]
+173BC; [7D 6B 8A, 05, 05]
+173BD; [7D 6B 8C, 05, 05]
+173BE; [7D 6B 8E, 05, 05]
+173BF; [7D 6B 90, 05, 05]
+173C0; [7D 6B 92, 05, 05]
+173C1; [7D 6B 94, 05, 05]
+173C2; [7D 6B 96, 05, 05]
+173C3; [7D 6B 98, 05, 05]
+173C4; [7D 6B 9A, 05, 05]
+173C5; [7D 6B 9C, 05, 05]
+173C6; [7D 6B 9E, 05, 05]
+173C7; [7D 6B A0, 05, 05]
+173C8; [7D 6B A2, 05, 05]
+173C9; [7D 6B A4, 05, 05]
+173CA; [7D 6B A6, 05, 05]
+173CB; [7D 6B A8, 05, 05]
+173CC; [7D 6B AA, 05, 05]
+173CD; [7D 6B AC, 05, 05]
+173CE; [7D 6B AE, 05, 05]
+173CF; [7D 6B B0, 05, 05]
+173D0; [7D 6B B2, 05, 05]
+173D1; [7D 6B B4, 05, 05]
+173D2; [7D 6B B6, 05, 05]
+173D3; [7D 6B B8, 05, 05]
+173D4; [7D 6B BA, 05, 05]
+173D5; [7D 6B BC, 05, 05]
+173D6; [7D 6B BE, 05, 05]
+173D7; [7D 6B C0, 05, 05]
+173D8; [7D 6B C2, 05, 05]
+173D9; [7D 6B C4, 05, 05]
+173DA; [7D 6B C6, 05, 05]
+173DB; [7D 6B C8, 05, 05]
+173DC; [7D 6B CA, 05, 05]
+173DD; [7D 6B CC, 05, 05]
+173DE; [7D 6B CE, 05, 05]
+173DF; [7D 6B D0, 05, 05]
+173E0; [7D 6B D2, 05, 05]
+173E1; [7D 6B D4, 05, 05]
+173E2; [7D 6B D6, 05, 05]
+173E3; [7D 6B D8, 05, 05]
+173E4; [7D 6B DA, 05, 05]
+173E5; [7D 6B DC, 05, 05]
+173E6; [7D 6B DE, 05, 05]
+173E7; [7D 6B E0, 05, 05]
+173E8; [7D 6B E2, 05, 05]
+173E9; [7D 6B E4, 05, 05]
+173EA; [7D 6B E6, 05, 05]
+173EB; [7D 6B E8, 05, 05]
+173EC; [7D 6B EA, 05, 05]
+173ED; [7D 6B EC, 05, 05]
+173EE; [7D 6B EE, 05, 05]
+173EF; [7D 6B F0, 05, 05]
+173F0; [7D 6B F2, 05, 05]
+173F1; [7D 6B F4, 05, 05]
+173F2; [7D 6B F6, 05, 05]
+173F3; [7D 6B F8, 05, 05]
+173F4; [7D 6B FA, 05, 05]
+173F5; [7D 6B FC, 05, 05]
+173F6; [7D 6B FE, 05, 05]
+173F7; [7D 6C 02, 05, 05]
+173F8; [7D 6C 04, 05, 05]
+173F9; [7D 6C 06, 05, 05]
+173FA; [7D 6C 08, 05, 05]
+173FB; [7D 6C 0A, 05, 05]
+173FC; [7D 6C 0C, 05, 05]
+173FD; [7D 6C 0E, 05, 05]
+173FE; [7D 6C 10, 05, 05]
+173FF; [7D 6C 12, 05, 05]
+17400; [7D 6C 14, 05, 05]
+17401; [7D 6C 16, 05, 05]
+17402; [7D 6C 18, 05, 05]
+17403; [7D 6C 1A, 05, 05]
+17404; [7D 6C 1C, 05, 05]
+17405; [7D 6C 1E, 05, 05]
+17406; [7D 6C 20, 05, 05]
+17407; [7D 6C 22, 05, 05]
+17408; [7D 6C 24, 05, 05]
+17409; [7D 6C 26, 05, 05]
+1740A; [7D 6C 28, 05, 05]
+1740B; [7D 6C 2A, 05, 05]
+1740C; [7D 6C 2C, 05, 05]
+1740D; [7D 6C 2E, 05, 05]
+1740E; [7D 6C 30, 05, 05]
+1740F; [7D 6C 32, 05, 05]
+17410; [7D 6C 34, 05, 05]
+17411; [7D 6C 36, 05, 05]
+17412; [7D 6C 38, 05, 05]
+17413; [7D 6C 3A, 05, 05]
+17414; [7D 6C 3C, 05, 05]
+17415; [7D 6C 3E, 05, 05]
+17416; [7D 6C 40, 05, 05]
+17417; [7D 6C 42, 05, 05]
+17418; [7D 6C 44, 05, 05]
+17419; [7D 6C 46, 05, 05]
+1741A; [7D 6C 48, 05, 05]
+1741B; [7D 6C 4A, 05, 05]
+1741C; [7D 6C 4C, 05, 05]
+1741D; [7D 6C 4E, 05, 05]
+1741E; [7D 6C 50, 05, 05]
+1741F; [7D 6C 52, 05, 05]
+17420; [7D 6C 54, 05, 05]
+17421; [7D 6C 56, 05, 05]
+17422; [7D 6C 58, 05, 05]
+17423; [7D 6C 5A, 05, 05]
+17424; [7D 6C 5C, 05, 05]
+17425; [7D 6C 5E, 05, 05]
+17426; [7D 6C 60, 05, 05]
+17427; [7D 6C 62, 05, 05]
+17428; [7D 6C 64, 05, 05]
+17429; [7D 6C 66, 05, 05]
+1742A; [7D 6C 68, 05, 05]
+1742B; [7D 6C 6A, 05, 05]
+1742C; [7D 6C 6C, 05, 05]
+1742D; [7D 6C 6E, 05, 05]
+1742E; [7D 6C 70, 05, 05]
+1742F; [7D 6C 72, 05, 05]
+17430; [7D 6C 74, 05, 05]
+17431; [7D 6C 76, 05, 05]
+17432; [7D 6C 78, 05, 05]
+17433; [7D 6C 7A, 05, 05]
+17434; [7D 6C 7C, 05, 05]
+17435; [7D 6C 7E, 05, 05]
+17436; [7D 6C 80, 05, 05]
+17437; [7D 6C 82, 05, 05]
+17438; [7D 6C 84, 05, 05]
+17439; [7D 6C 86, 05, 05]
+1743A; [7D 6C 88, 05, 05]
+1743B; [7D 6C 8A, 05, 05]
+1743C; [7D 6C 8C, 05, 05]
+1743D; [7D 6C 8E, 05, 05]
+1743E; [7D 6C 90, 05, 05]
+1743F; [7D 6C 92, 05, 05]
+17440; [7D 6C 94, 05, 05]
+17441; [7D 6C 96, 05, 05]
+17442; [7D 6C 98, 05, 05]
+17443; [7D 6C 9A, 05, 05]
+17444; [7D 6C 9C, 05, 05]
+17445; [7D 6C 9E, 05, 05]
+17446; [7D 6C A0, 05, 05]
+17447; [7D 6C A2, 05, 05]
+17448; [7D 6C A4, 05, 05]
+17449; [7D 6C A6, 05, 05]
+1744A; [7D 6C A8, 05, 05]
+1744B; [7D 6C AA, 05, 05]
+1744C; [7D 6C AC, 05, 05]
+1744D; [7D 6C AE, 05, 05]
+1744E; [7D 6C B0, 05, 05]
+1744F; [7D 6C B2, 05, 05]
+17450; [7D 6C B4, 05, 05]
+17451; [7D 6C B6, 05, 05]
+17452; [7D 6C B8, 05, 05]
+17453; [7D 6C BA, 05, 05]
+17454; [7D 6C BC, 05, 05]
+17455; [7D 6C BE, 05, 05]
+17456; [7D 6C C0, 05, 05]
+17457; [7D 6C C2, 05, 05]
+17458; [7D 6C C4, 05, 05]
+17459; [7D 6C C6, 05, 05]
+1745A; [7D 6C C8, 05, 05]
+1745B; [7D 6C CA, 05, 05]
+1745C; [7D 6C CC, 05, 05]
+1745D; [7D 6C CE, 05, 05]
+1745E; [7D 6C D0, 05, 05]
+1745F; [7D 6C D2, 05, 05]
+17460; [7D 6C D4, 05, 05]
+17461; [7D 6C D6, 05, 05]
+17462; [7D 6C D8, 05, 05]
+17463; [7D 6C DA, 05, 05]
+17464; [7D 6C DC, 05, 05]
+17465; [7D 6C DE, 05, 05]
+17466; [7D 6C E0, 05, 05]
+17467; [7D 6C E2, 05, 05]
+17468; [7D 6C E4, 05, 05]
+17469; [7D 6C E6, 05, 05]
+1746A; [7D 6C E8, 05, 05]
+1746B; [7D 6C EA, 05, 05]
+1746C; [7D 6C EC, 05, 05]
+1746D; [7D 6C EE, 05, 05]
+1746E; [7D 6C F0, 05, 05]
+1746F; [7D 6C F2, 05, 05]
+17470; [7D 6C F4, 05, 05]
+17471; [7D 6C F6, 05, 05]
+17472; [7D 6C F8, 05, 05]
+17473; [7D 6C FA, 05, 05]
+17474; [7D 6C FC, 05, 05]
+17475; [7D 6C FE, 05, 05]
+17476; [7D 6D 02, 05, 05]
+17477; [7D 6D 04, 05, 05]
+17478; [7D 6D 06, 05, 05]
+17479; [7D 6D 08, 05, 05]
+1747A; [7D 6D 0A, 05, 05]
+1747B; [7D 6D 0C, 05, 05]
+1747C; [7D 6D 0E, 05, 05]
+1747D; [7D 6D 10, 05, 05]
+1747E; [7D 6D 12, 05, 05]
+1747F; [7D 6D 14, 05, 05]
+17480; [7D 6D 16, 05, 05]
+17481; [7D 6D 18, 05, 05]
+17482; [7D 6D 1A, 05, 05]
+17483; [7D 6D 1C, 05, 05]
+17484; [7D 6D 1E, 05, 05]
+17485; [7D 6D 20, 05, 05]
+17486; [7D 6D 22, 05, 05]
+17487; [7D 6D 24, 05, 05]
+17488; [7D 6D 26, 05, 05]
+17489; [7D 6D 28, 05, 05]
+1748A; [7D 6D 2A, 05, 05]
+1748B; [7D 6D 2C, 05, 05]
+1748C; [7D 6D 2E, 05, 05]
+1748D; [7D 6D 30, 05, 05]
+1748E; [7D 6D 32, 05, 05]
+1748F; [7D 6D 34, 05, 05]
+17490; [7D 6D 36, 05, 05]
+17491; [7D 6D 38, 05, 05]
+17492; [7D 6D 3A, 05, 05]
+17493; [7D 6D 3C, 05, 05]
+17494; [7D 6D 3E, 05, 05]
+17495; [7D 6D 40, 05, 05]
+17496; [7D 6D 42, 05, 05]
+17497; [7D 6D 44, 05, 05]
+17498; [7D 6D 46, 05, 05]
+17499; [7D 6D 48, 05, 05]
+1749A; [7D 6D 4A, 05, 05]
+1749B; [7D 6D 4C, 05, 05]
+1749C; [7D 6D 4E, 05, 05]
+1749D; [7D 6D 50, 05, 05]
+1749E; [7D 6D 52, 05, 05]
+1749F; [7D 6D 54, 05, 05]
+174A0; [7D 6D 56, 05, 05]
+174A1; [7D 6D 58, 05, 05]
+174A2; [7D 6D 5A, 05, 05]
+174A3; [7D 6D 5C, 05, 05]
+174A4; [7D 6D 5E, 05, 05]
+174A5; [7D 6D 60, 05, 05]
+174A6; [7D 6D 62, 05, 05]
+174A7; [7D 6D 64, 05, 05]
+174A8; [7D 6D 66, 05, 05]
+174A9; [7D 6D 68, 05, 05]
+174AA; [7D 6D 6A, 05, 05]
+174AB; [7D 6D 6C, 05, 05]
+174AC; [7D 6D 6E, 05, 05]
+174AD; [7D 6D 70, 05, 05]
+174AE; [7D 6D 72, 05, 05]
+174AF; [7D 6D 74, 05, 05]
+174B0; [7D 6D 76, 05, 05]
+174B1; [7D 6D 78, 05, 05]
+174B2; [7D 6D 7A, 05, 05]
+174B3; [7D 6D 7C, 05, 05]
+174B4; [7D 6D 7E, 05, 05]
+174B5; [7D 6D 80, 05, 05]
+174B6; [7D 6D 82, 05, 05]
+174B7; [7D 6D 84, 05, 05]
+174B8; [7D 6D 86, 05, 05]
+174B9; [7D 6D 88, 05, 05]
+174BA; [7D 6D 8A, 05, 05]
+174BB; [7D 6D 8C, 05, 05]
+174BC; [7D 6D 8E, 05, 05]
+174BD; [7D 6D 90, 05, 05]
+174BE; [7D 6D 92, 05, 05]
+174BF; [7D 6D 94, 05, 05]
+174C0; [7D 6D 96, 05, 05]
+174C1; [7D 6D 98, 05, 05]
+174C2; [7D 6D 9A, 05, 05]
+174C3; [7D 6D 9C, 05, 05]
+174C4; [7D 6D 9E, 05, 05]
+174C5; [7D 6D A0, 05, 05]
+174C6; [7D 6D A2, 05, 05]
+174C7; [7D 6D A4, 05, 05]
+174C8; [7D 6D A6, 05, 05]
+174C9; [7D 6D A8, 05, 05]
+174CA; [7D 6D AA, 05, 05]
+174CB; [7D 6D AC, 05, 05]
+174CC; [7D 6D AE, 05, 05]
+174CD; [7D 6D B0, 05, 05]
+174CE; [7D 6D B2, 05, 05]
+174CF; [7D 6D B4, 05, 05]
+174D0; [7D 6D B6, 05, 05]
+174D1; [7D 6D B8, 05, 05]
+174D2; [7D 6D BA, 05, 05]
+174D3; [7D 6D BC, 05, 05]
+174D4; [7D 6D BE, 05, 05]
+174D5; [7D 6D C0, 05, 05]
+174D6; [7D 6D C2, 05, 05]
+174D7; [7D 6D C4, 05, 05]
+174D8; [7D 6D C6, 05, 05]
+174D9; [7D 6D C8, 05, 05]
+174DA; [7D 6D CA, 05, 05]
+174DB; [7D 6D CC, 05, 05]
+174DC; [7D 6D CE, 05, 05]
+174DD; [7D 6D D0, 05, 05]
+174DE; [7D 6D D2, 05, 05]
+174DF; [7D 6D D4, 05, 05]
+174E0; [7D 6D D6, 05, 05]
+174E1; [7D 6D D8, 05, 05]
+174E2; [7D 6D DA, 05, 05]
+174E3; [7D 6D DC, 05, 05]
+174E4; [7D 6D DE, 05, 05]
+174E5; [7D 6D E0, 05, 05]
+174E6; [7D 6D E2, 05, 05]
+174E7; [7D 6D E4, 05, 05]
+174E8; [7D 6D E6, 05, 05]
+174E9; [7D 6D E8, 05, 05]
+174EA; [7D 6D EA, 05, 05]
+174EB; [7D 6D EC, 05, 05]
+174EC; [7D 6D EE, 05, 05]
+174ED; [7D 6D F0, 05, 05]
+174EE; [7D 6D F2, 05, 05]
+174EF; [7D 6D F4, 05, 05]
+174F0; [7D 6D F6, 05, 05]
+174F1; [7D 6D F8, 05, 05]
+174F2; [7D 6D FA, 05, 05]
+174F3; [7D 6D FC, 05, 05]
+174F4; [7D 6D FE, 05, 05]
+174F5; [7D 6E 02, 05, 05]
+174F6; [7D 6E 04, 05, 05]
+174F7; [7D 6E 06, 05, 05]
+174F8; [7D 6E 08, 05, 05]
+174F9; [7D 6E 0A, 05, 05]
+174FA; [7D 6E 0C, 05, 05]
+174FB; [7D 6E 0E, 05, 05]
+174FC; [7D 6E 10, 05, 05]
+174FD; [7D 6E 12, 05, 05]
+174FE; [7D 6E 14, 05, 05]
+174FF; [7D 6E 16, 05, 05]
+17500; [7D 6E 18, 05, 05]
+17501; [7D 6E 1A, 05, 05]
+17502; [7D 6E 1C, 05, 05]
+17503; [7D 6E 1E, 05, 05]
+17504; [7D 6E 20, 05, 05]
+17505; [7D 6E 22, 05, 05]
+17506; [7D 6E 24, 05, 05]
+17507; [7D 6E 26, 05, 05]
+17508; [7D 6E 28, 05, 05]
+17509; [7D 6E 2A, 05, 05]
+1750A; [7D 6E 2C, 05, 05]
+1750B; [7D 6E 2E, 05, 05]
+1750C; [7D 6E 30, 05, 05]
+1750D; [7D 6E 32, 05, 05]
+1750E; [7D 6E 34, 05, 05]
+1750F; [7D 6E 36, 05, 05]
+17510; [7D 6E 38, 05, 05]
+17511; [7D 6E 3A, 05, 05]
+17512; [7D 6E 3C, 05, 05]
+17513; [7D 6E 3E, 05, 05]
+17514; [7D 6E 40, 05, 05]
+17515; [7D 6E 42, 05, 05]
+17516; [7D 6E 44, 05, 05]
+17517; [7D 6E 46, 05, 05]
+17518; [7D 6E 48, 05, 05]
+17519; [7D 6E 4A, 05, 05]
+1751A; [7D 6E 4C, 05, 05]
+1751B; [7D 6E 4E, 05, 05]
+1751C; [7D 6E 50, 05, 05]
+1751D; [7D 6E 52, 05, 05]
+1751E; [7D 6E 54, 05, 05]
+1751F; [7D 6E 56, 05, 05]
+17520; [7D 6E 58, 05, 05]
+17521; [7D 6E 5A, 05, 05]
+17522; [7D 6E 5C, 05, 05]
+17523; [7D 6E 5E, 05, 05]
+17524; [7D 6E 60, 05, 05]
+17525; [7D 6E 62, 05, 05]
+17526; [7D 6E 64, 05, 05]
+17527; [7D 6E 66, 05, 05]
+17528; [7D 6E 68, 05, 05]
+17529; [7D 6E 6A, 05, 05]
+1752A; [7D 6E 6C, 05, 05]
+1752B; [7D 6E 6E, 05, 05]
+1752C; [7D 6E 70, 05, 05]
+1752D; [7D 6E 72, 05, 05]
+1752E; [7D 6E 74, 05, 05]
+1752F; [7D 6E 76, 05, 05]
+17530; [7D 6E 78, 05, 05]
+17531; [7D 6E 7A, 05, 05]
+17532; [7D 6E 7C, 05, 05]
+17533; [7D 6E 7E, 05, 05]
+17534; [7D 6E 80, 05, 05]
+17535; [7D 6E 82, 05, 05]
+17536; [7D 6E 84, 05, 05]
+17537; [7D 6E 86, 05, 05]
+17538; [7D 6E 88, 05, 05]
+17539; [7D 6E 8A, 05, 05]
+1753A; [7D 6E 8C, 05, 05]
+1753B; [7D 6E 8E, 05, 05]
+1753C; [7D 6E 90, 05, 05]
+1753D; [7D 6E 92, 05, 05]
+1753E; [7D 6E 94, 05, 05]
+1753F; [7D 6E 96, 05, 05]
+17540; [7D 6E 98, 05, 05]
+17541; [7D 6E 9A, 05, 05]
+17542; [7D 6E 9C, 05, 05]
+17543; [7D 6E 9E, 05, 05]
+17544; [7D 6E A0, 05, 05]
+17545; [7D 6E A2, 05, 05]
+17546; [7D 6E A4, 05, 05]
+17547; [7D 6E A6, 05, 05]
+17548; [7D 6E A8, 05, 05]
+17549; [7D 6E AA, 05, 05]
+1754A; [7D 6E AC, 05, 05]
+1754B; [7D 6E AE, 05, 05]
+1754C; [7D 6E B0, 05, 05]
+1754D; [7D 6E B2, 05, 05]
+1754E; [7D 6E B4, 05, 05]
+1754F; [7D 6E B6, 05, 05]
+17550; [7D 6E B8, 05, 05]
+17551; [7D 6E BA, 05, 05]
+17552; [7D 6E BC, 05, 05]
+17553; [7D 6E BE, 05, 05]
+17554; [7D 6E C0, 05, 05]
+17555; [7D 6E C2, 05, 05]
+17556; [7D 6E C4, 05, 05]
+17557; [7D 6E C6, 05, 05]
+17558; [7D 6E C8, 05, 05]
+17559; [7D 6E CA, 05, 05]
+1755A; [7D 6E CC, 05, 05]
+1755B; [7D 6E CE, 05, 05]
+1755C; [7D 6E D0, 05, 05]
+1755D; [7D 6E D2, 05, 05]
+1755E; [7D 6E D4, 05, 05]
+1755F; [7D 6E D6, 05, 05]
+17560; [7D 6E D8, 05, 05]
+17561; [7D 6E DA, 05, 05]
+17562; [7D 6E DC, 05, 05]
+17563; [7D 6E DE, 05, 05]
+17564; [7D 6E E0, 05, 05]
+17565; [7D 6E E2, 05, 05]
+17566; [7D 6E E4, 05, 05]
+17567; [7D 6E E6, 05, 05]
+17568; [7D 6E E8, 05, 05]
+17569; [7D 6E EA, 05, 05]
+1756A; [7D 6E EC, 05, 05]
+1756B; [7D 6E EE, 05, 05]
+1756C; [7D 6E F0, 05, 05]
+1756D; [7D 6E F2, 05, 05]
+1756E; [7D 6E F4, 05, 05]
+1756F; [7D 6E F6, 05, 05]
+17570; [7D 6E F8, 05, 05]
+17571; [7D 6E FA, 05, 05]
+17572; [7D 6E FC, 05, 05]
+17573; [7D 6E FE, 05, 05]
+17574; [7D 6F 02, 05, 05]
+17575; [7D 6F 04, 05, 05]
+17576; [7D 6F 06, 05, 05]
+17577; [7D 6F 08, 05, 05]
+17578; [7D 6F 0A, 05, 05]
+17579; [7D 6F 0C, 05, 05]
+1757A; [7D 6F 0E, 05, 05]
+1757B; [7D 6F 10, 05, 05]
+1757C; [7D 6F 12, 05, 05]
+1757D; [7D 6F 14, 05, 05]
+1757E; [7D 6F 16, 05, 05]
+1757F; [7D 6F 18, 05, 05]
+17580; [7D 6F 1A, 05, 05]
+17581; [7D 6F 1C, 05, 05]
+17582; [7D 6F 1E, 05, 05]
+17583; [7D 6F 20, 05, 05]
+17584; [7D 6F 22, 05, 05]
+17585; [7D 6F 24, 05, 05]
+17586; [7D 6F 26, 05, 05]
+17587; [7D 6F 28, 05, 05]
+17588; [7D 6F 2A, 05, 05]
+17589; [7D 6F 2C, 05, 05]
+1758A; [7D 6F 2E, 05, 05]
+1758B; [7D 6F 30, 05, 05]
+1758C; [7D 6F 32, 05, 05]
+1758D; [7D 6F 34, 05, 05]
+1758E; [7D 6F 36, 05, 05]
+1758F; [7D 6F 38, 05, 05]
+17590; [7D 6F 3A, 05, 05]
+17591; [7D 6F 3C, 05, 05]
+17592; [7D 6F 3E, 05, 05]
+17593; [7D 6F 40, 05, 05]
+17594; [7D 6F 42, 05, 05]
+17595; [7D 6F 44, 05, 05]
+17596; [7D 6F 46, 05, 05]
+17597; [7D 6F 48, 05, 05]
+17598; [7D 6F 4A, 05, 05]
+17599; [7D 6F 4C, 05, 05]
+1759A; [7D 6F 4E, 05, 05]
+1759B; [7D 6F 50, 05, 05]
+1759C; [7D 6F 52, 05, 05]
+1759D; [7D 6F 54, 05, 05]
+1759E; [7D 6F 56, 05, 05]
+1759F; [7D 6F 58, 05, 05]
+175A0; [7D 6F 5A, 05, 05]
+175A1; [7D 6F 5C, 05, 05]
+175A2; [7D 6F 5E, 05, 05]
+175A3; [7D 6F 60, 05, 05]
+175A4; [7D 6F 62, 05, 05]
+175A5; [7D 6F 64, 05, 05]
+175A6; [7D 6F 66, 05, 05]
+175A7; [7D 6F 68, 05, 05]
+175A8; [7D 6F 6A, 05, 05]
+175A9; [7D 6F 6C, 05, 05]
+175AA; [7D 6F 6E, 05, 05]
+175AB; [7D 6F 70, 05, 05]
+175AC; [7D 6F 72, 05, 05]
+175AD; [7D 6F 74, 05, 05]
+175AE; [7D 6F 76, 05, 05]
+175AF; [7D 6F 78, 05, 05]
+175B0; [7D 6F 7A, 05, 05]
+175B1; [7D 6F 7C, 05, 05]
+175B2; [7D 6F 7E, 05, 05]
+175B3; [7D 6F 80, 05, 05]
+175B4; [7D 6F 82, 05, 05]
+175B5; [7D 6F 84, 05, 05]
+175B6; [7D 6F 86, 05, 05]
+175B7; [7D 6F 88, 05, 05]
+175B8; [7D 6F 8A, 05, 05]
+175B9; [7D 6F 8C, 05, 05]
+175BA; [7D 6F 8E, 05, 05]
+175BB; [7D 6F 90, 05, 05]
+175BC; [7D 6F 92, 05, 05]
+175BD; [7D 6F 94, 05, 05]
+175BE; [7D 6F 96, 05, 05]
+175BF; [7D 6F 98, 05, 05]
+175C0; [7D 6F 9A, 05, 05]
+175C1; [7D 6F 9C, 05, 05]
+175C2; [7D 6F 9E, 05, 05]
+175C3; [7D 6F A0, 05, 05]
+175C4; [7D 6F A2, 05, 05]
+175C5; [7D 6F A4, 05, 05]
+175C6; [7D 6F A6, 05, 05]
+175C7; [7D 6F A8, 05, 05]
+175C8; [7D 6F AA, 05, 05]
+175C9; [7D 6F AC, 05, 05]
+175CA; [7D 6F AE, 05, 05]
+175CB; [7D 6F B0, 05, 05]
+175CC; [7D 6F B2, 05, 05]
+175CD; [7D 6F B4, 05, 05]
+175CE; [7D 6F B6, 05, 05]
+175CF; [7D 6F B8, 05, 05]
+175D0; [7D 6F BA, 05, 05]
+175D1; [7D 6F BC, 05, 05]
+175D2; [7D 6F BE, 05, 05]
+175D3; [7D 6F C0, 05, 05]
+175D4; [7D 6F C2, 05, 05]
+175D5; [7D 6F C4, 05, 05]
+175D6; [7D 6F C6, 05, 05]
+175D7; [7D 6F C8, 05, 05]
+175D8; [7D 6F CA, 05, 05]
+175D9; [7D 6F CC, 05, 05]
+175DA; [7D 6F CE, 05, 05]
+175DB; [7D 6F D0, 05, 05]
+175DC; [7D 6F D2, 05, 05]
+175DD; [7D 6F D4, 05, 05]
+175DE; [7D 6F D6, 05, 05]
+175DF; [7D 6F D8, 05, 05]
+175E0; [7D 6F DA, 05, 05]
+175E1; [7D 6F DC, 05, 05]
+175E2; [7D 6F DE, 05, 05]
+175E3; [7D 6F E0, 05, 05]
+175E4; [7D 6F E2, 05, 05]
+175E5; [7D 6F E4, 05, 05]
+175E6; [7D 6F E6, 05, 05]
+175E7; [7D 6F E8, 05, 05]
+175E8; [7D 6F EA, 05, 05]
+175E9; [7D 6F EC, 05, 05]
+175EA; [7D 6F EE, 05, 05]
+175EB; [7D 6F F0, 05, 05]
+175EC; [7D 6F F2, 05, 05]
+175ED; [7D 6F F4, 05, 05]
+175EE; [7D 6F F6, 05, 05]
+175EF; [7D 6F F8, 05, 05]
+175F0; [7D 6F FA, 05, 05]
+175F1; [7D 6F FC, 05, 05]
+175F2; [7D 6F FE, 05, 05]
+175F3; [7D 70 02, 05, 05]
+175F4; [7D 70 04, 05, 05]
+175F5; [7D 70 06, 05, 05]
+175F6; [7D 70 08, 05, 05]
+175F7; [7D 70 0A, 05, 05]
+175F8; [7D 70 0C, 05, 05]
+175F9; [7D 70 0E, 05, 05]
+175FA; [7D 70 10, 05, 05]
+175FB; [7D 70 12, 05, 05]
+175FC; [7D 70 14, 05, 05]
+175FD; [7D 70 16, 05, 05]
+175FE; [7D 70 18, 05, 05]
+175FF; [7D 70 1A, 05, 05]
+17600; [7D 70 1C, 05, 05]
+17601; [7D 70 1E, 05, 05]
+17602; [7D 70 20, 05, 05]
+17603; [7D 70 22, 05, 05]
+17604; [7D 70 24, 05, 05]
+17605; [7D 70 26, 05, 05]
+17606; [7D 70 28, 05, 05]
+17607; [7D 70 2A, 05, 05]
+17608; [7D 70 2C, 05, 05]
+17609; [7D 70 2E, 05, 05]
+1760A; [7D 70 30, 05, 05]
+1760B; [7D 70 32, 05, 05]
+1760C; [7D 70 34, 05, 05]
+1760D; [7D 70 36, 05, 05]
+1760E; [7D 70 38, 05, 05]
+1760F; [7D 70 3A, 05, 05]
+17610; [7D 70 3C, 05, 05]
+17611; [7D 70 3E, 05, 05]
+17612; [7D 70 40, 05, 05]
+17613; [7D 70 42, 05, 05]
+17614; [7D 70 44, 05, 05]
+17615; [7D 70 46, 05, 05]
+17616; [7D 70 48, 05, 05]
+17617; [7D 70 4A, 05, 05]
+17618; [7D 70 4C, 05, 05]
+17619; [7D 70 4E, 05, 05]
+1761A; [7D 70 50, 05, 05]
+1761B; [7D 70 52, 05, 05]
+1761C; [7D 70 54, 05, 05]
+1761D; [7D 70 56, 05, 05]
+1761E; [7D 70 58, 05, 05]
+1761F; [7D 70 5A, 05, 05]
+17620; [7D 70 5C, 05, 05]
+17621; [7D 70 5E, 05, 05]
+17622; [7D 70 60, 05, 05]
+17623; [7D 70 62, 05, 05]
+17624; [7D 70 64, 05, 05]
+17625; [7D 70 66, 05, 05]
+17626; [7D 70 68, 05, 05]
+17627; [7D 70 6A, 05, 05]
+17628; [7D 70 6C, 05, 05]
+17629; [7D 70 6E, 05, 05]
+1762A; [7D 70 70, 05, 05]
+1762B; [7D 70 72, 05, 05]
+1762C; [7D 70 74, 05, 05]
+1762D; [7D 70 76, 05, 05]
+1762E; [7D 70 78, 05, 05]
+1762F; [7D 70 7A, 05, 05]
+17630; [7D 70 7C, 05, 05]
+17631; [7D 70 7E, 05, 05]
+17632; [7D 70 80, 05, 05]
+17633; [7D 70 82, 05, 05]
+17634; [7D 70 84, 05, 05]
+17635; [7D 70 86, 05, 05]
+17636; [7D 70 88, 05, 05]
+17637; [7D 70 8A, 05, 05]
+17638; [7D 70 8C, 05, 05]
+17639; [7D 70 8E, 05, 05]
+1763A; [7D 70 90, 05, 05]
+1763B; [7D 70 92, 05, 05]
+1763C; [7D 70 94, 05, 05]
+1763D; [7D 70 96, 05, 05]
+1763E; [7D 70 98, 05, 05]
+1763F; [7D 70 9A, 05, 05]
+17640; [7D 70 9C, 05, 05]
+17641; [7D 70 9E, 05, 05]
+17642; [7D 70 A0, 05, 05]
+17643; [7D 70 A2, 05, 05]
+17644; [7D 70 A4, 05, 05]
+17645; [7D 70 A6, 05, 05]
+17646; [7D 70 A8, 05, 05]
+17647; [7D 70 AA, 05, 05]
+17648; [7D 70 AC, 05, 05]
+17649; [7D 70 AE, 05, 05]
+1764A; [7D 70 B0, 05, 05]
+1764B; [7D 70 B2, 05, 05]
+1764C; [7D 70 B4, 05, 05]
+1764D; [7D 70 B6, 05, 05]
+1764E; [7D 70 B8, 05, 05]
+1764F; [7D 70 BA, 05, 05]
+17650; [7D 70 BC, 05, 05]
+17651; [7D 70 BE, 05, 05]
+17652; [7D 70 C0, 05, 05]
+17653; [7D 70 C2, 05, 05]
+17654; [7D 70 C4, 05, 05]
+17655; [7D 70 C6, 05, 05]
+17656; [7D 70 C8, 05, 05]
+17657; [7D 70 CA, 05, 05]
+17658; [7D 70 CC, 05, 05]
+17659; [7D 70 CE, 05, 05]
+1765A; [7D 70 D0, 05, 05]
+1765B; [7D 70 D2, 05, 05]
+1765C; [7D 70 D4, 05, 05]
+1765D; [7D 70 D6, 05, 05]
+1765E; [7D 70 D8, 05, 05]
+1765F; [7D 70 DA, 05, 05]
+17660; [7D 70 DC, 05, 05]
+17661; [7D 70 DE, 05, 05]
+17662; [7D 70 E0, 05, 05]
+17663; [7D 70 E2, 05, 05]
+17664; [7D 70 E4, 05, 05]
+17665; [7D 70 E6, 05, 05]
+17666; [7D 70 E8, 05, 05]
+17667; [7D 70 EA, 05, 05]
+17668; [7D 70 EC, 05, 05]
+17669; [7D 70 EE, 05, 05]
+1766A; [7D 70 F0, 05, 05]
+1766B; [7D 70 F2, 05, 05]
+1766C; [7D 70 F4, 05, 05]
+1766D; [7D 70 F6, 05, 05]
+1766E; [7D 70 F8, 05, 05]
+1766F; [7D 70 FA, 05, 05]
+17670; [7D 70 FC, 05, 05]
+17671; [7D 70 FE, 05, 05]
+17672; [7D 71 02, 05, 05]
+17673; [7D 71 04, 05, 05]
+17674; [7D 71 06, 05, 05]
+17675; [7D 71 08, 05, 05]
+17676; [7D 71 0A, 05, 05]
+17677; [7D 71 0C, 05, 05]
+17678; [7D 71 0E, 05, 05]
+17679; [7D 71 10, 05, 05]
+1767A; [7D 71 12, 05, 05]
+1767B; [7D 71 14, 05, 05]
+1767C; [7D 71 16, 05, 05]
+1767D; [7D 71 18, 05, 05]
+1767E; [7D 71 1A, 05, 05]
+1767F; [7D 71 1C, 05, 05]
+17680; [7D 71 1E, 05, 05]
+17681; [7D 71 20, 05, 05]
+17682; [7D 71 22, 05, 05]
+17683; [7D 71 24, 05, 05]
+17684; [7D 71 26, 05, 05]
+17685; [7D 71 28, 05, 05]
+17686; [7D 71 2A, 05, 05]
+17687; [7D 71 2C, 05, 05]
+17688; [7D 71 2E, 05, 05]
+17689; [7D 71 30, 05, 05]
+1768A; [7D 71 32, 05, 05]
+1768B; [7D 71 34, 05, 05]
+1768C; [7D 71 36, 05, 05]
+1768D; [7D 71 38, 05, 05]
+1768E; [7D 71 3A, 05, 05]
+1768F; [7D 71 3C, 05, 05]
+17690; [7D 71 3E, 05, 05]
+17691; [7D 71 40, 05, 05]
+17692; [7D 71 42, 05, 05]
+17693; [7D 71 44, 05, 05]
+17694; [7D 71 46, 05, 05]
+17695; [7D 71 48, 05, 05]
+17696; [7D 71 4A, 05, 05]
+17697; [7D 71 4C, 05, 05]
+17698; [7D 71 4E, 05, 05]
+17699; [7D 71 50, 05, 05]
+1769A; [7D 71 52, 05, 05]
+1769B; [7D 71 54, 05, 05]
+1769C; [7D 71 56, 05, 05]
+1769D; [7D 71 58, 05, 05]
+1769E; [7D 71 5A, 05, 05]
+1769F; [7D 71 5C, 05, 05]
+176A0; [7D 71 5E, 05, 05]
+176A1; [7D 71 60, 05, 05]
+176A2; [7D 71 62, 05, 05]
+176A3; [7D 71 64, 05, 05]
+176A4; [7D 71 66, 05, 05]
+176A5; [7D 71 68, 05, 05]
+176A6; [7D 71 6A, 05, 05]
+176A7; [7D 71 6C, 05, 05]
+176A8; [7D 71 6E, 05, 05]
+176A9; [7D 71 70, 05, 05]
+176AA; [7D 71 72, 05, 05]
+176AB; [7D 71 74, 05, 05]
+176AC; [7D 71 76, 05, 05]
+176AD; [7D 71 78, 05, 05]
+176AE; [7D 71 7A, 05, 05]
+176AF; [7D 71 7C, 05, 05]
+176B0; [7D 71 7E, 05, 05]
+176B1; [7D 71 80, 05, 05]
+176B2; [7D 71 82, 05, 05]
+176B3; [7D 71 84, 05, 05]
+176B4; [7D 71 86, 05, 05]
+176B5; [7D 71 88, 05, 05]
+176B6; [7D 71 8A, 05, 05]
+176B7; [7D 71 8C, 05, 05]
+176B8; [7D 71 8E, 05, 05]
+176B9; [7D 71 90, 05, 05]
+176BA; [7D 71 92, 05, 05]
+176BB; [7D 71 94, 05, 05]
+176BC; [7D 71 96, 05, 05]
+176BD; [7D 71 98, 05, 05]
+176BE; [7D 71 9A, 05, 05]
+176BF; [7D 71 9C, 05, 05]
+176C0; [7D 71 9E, 05, 05]
+176C1; [7D 71 A0, 05, 05]
+176C2; [7D 71 A2, 05, 05]
+176C3; [7D 71 A4, 05, 05]
+176C4; [7D 71 A6, 05, 05]
+176C5; [7D 71 A8, 05, 05]
+176C6; [7D 71 AA, 05, 05]
+176C7; [7D 71 AC, 05, 05]
+176C8; [7D 71 AE, 05, 05]
+176C9; [7D 71 B0, 05, 05]
+176CA; [7D 71 B2, 05, 05]
+176CB; [7D 71 B4, 05, 05]
+176CC; [7D 71 B6, 05, 05]
+176CD; [7D 71 B8, 05, 05]
+176CE; [7D 71 BA, 05, 05]
+176CF; [7D 71 BC, 05, 05]
+176D0; [7D 71 BE, 05, 05]
+176D1; [7D 71 C0, 05, 05]
+176D2; [7D 71 C2, 05, 05]
+176D3; [7D 71 C4, 05, 05]
+176D4; [7D 71 C6, 05, 05]
+176D5; [7D 71 C8, 05, 05]
+176D6; [7D 71 CA, 05, 05]
+176D7; [7D 71 CC, 05, 05]
+176D8; [7D 71 CE, 05, 05]
+176D9; [7D 71 D0, 05, 05]
+176DA; [7D 71 D2, 05, 05]
+176DB; [7D 71 D4, 05, 05]
+176DC; [7D 71 D6, 05, 05]
+176DD; [7D 71 D8, 05, 05]
+176DE; [7D 71 DA, 05, 05]
+176DF; [7D 71 DC, 05, 05]
+176E0; [7D 71 DE, 05, 05]
+176E1; [7D 71 E0, 05, 05]
+176E2; [7D 71 E2, 05, 05]
+176E3; [7D 71 E4, 05, 05]
+176E4; [7D 71 E6, 05, 05]
+176E5; [7D 71 E8, 05, 05]
+176E6; [7D 71 EA, 05, 05]
+176E7; [7D 71 EC, 05, 05]
+176E8; [7D 71 EE, 05, 05]
+176E9; [7D 71 F0, 05, 05]
+176EA; [7D 71 F2, 05, 05]
+176EB; [7D 71 F4, 05, 05]
+176EC; [7D 71 F6, 05, 05]
+176ED; [7D 71 F8, 05, 05]
+176EE; [7D 71 FA, 05, 05]
+176EF; [7D 71 FC, 05, 05]
+176F0; [7D 71 FE, 05, 05]
+176F1; [7D 72 02, 05, 05]
+176F2; [7D 72 04, 05, 05]
+176F3; [7D 72 06, 05, 05]
+176F4; [7D 72 08, 05, 05]
+176F5; [7D 72 0A, 05, 05]
+176F6; [7D 72 0C, 05, 05]
+176F7; [7D 72 0E, 05, 05]
+176F8; [7D 72 10, 05, 05]
+176F9; [7D 72 12, 05, 05]
+176FA; [7D 72 14, 05, 05]
+176FB; [7D 72 16, 05, 05]
+176FC; [7D 72 18, 05, 05]
+176FD; [7D 72 1A, 05, 05]
+176FE; [7D 72 1C, 05, 05]
+176FF; [7D 72 1E, 05, 05]
+17700; [7D 72 20, 05, 05]
+17701; [7D 72 22, 05, 05]
+17702; [7D 72 24, 05, 05]
+17703; [7D 72 26, 05, 05]
+17704; [7D 72 28, 05, 05]
+17705; [7D 72 2A, 05, 05]
+17706; [7D 72 2C, 05, 05]
+17707; [7D 72 2E, 05, 05]
+17708; [7D 72 30, 05, 05]
+17709; [7D 72 32, 05, 05]
+1770A; [7D 72 34, 05, 05]
+1770B; [7D 72 36, 05, 05]
+1770C; [7D 72 38, 05, 05]
+1770D; [7D 72 3A, 05, 05]
+1770E; [7D 72 3C, 05, 05]
+1770F; [7D 72 3E, 05, 05]
+17710; [7D 72 40, 05, 05]
+17711; [7D 72 42, 05, 05]
+17712; [7D 72 44, 05, 05]
+17713; [7D 72 46, 05, 05]
+17714; [7D 72 48, 05, 05]
+17715; [7D 72 4A, 05, 05]
+17716; [7D 72 4C, 05, 05]
+17717; [7D 72 4E, 05, 05]
+17718; [7D 72 50, 05, 05]
+17719; [7D 72 52, 05, 05]
+1771A; [7D 72 54, 05, 05]
+1771B; [7D 72 56, 05, 05]
+1771C; [7D 72 58, 05, 05]
+1771D; [7D 72 5A, 05, 05]
+1771E; [7D 72 5C, 05, 05]
+1771F; [7D 72 5E, 05, 05]
+17720; [7D 72 60, 05, 05]
+17721; [7D 72 62, 05, 05]
+17722; [7D 72 64, 05, 05]
+17723; [7D 72 66, 05, 05]
+17724; [7D 72 68, 05, 05]
+17725; [7D 72 6A, 05, 05]
+17726; [7D 72 6C, 05, 05]
+17727; [7D 72 6E, 05, 05]
+17728; [7D 72 70, 05, 05]
+17729; [7D 72 72, 05, 05]
+1772A; [7D 72 74, 05, 05]
+1772B; [7D 72 76, 05, 05]
+1772C; [7D 72 78, 05, 05]
+1772D; [7D 72 7A, 05, 05]
+1772E; [7D 72 7C, 05, 05]
+1772F; [7D 72 7E, 05, 05]
+17730; [7D 72 80, 05, 05]
+17731; [7D 72 82, 05, 05]
+17732; [7D 72 84, 05, 05]
+17733; [7D 72 86, 05, 05]
+17734; [7D 72 88, 05, 05]
+17735; [7D 72 8A, 05, 05]
+17736; [7D 72 8C, 05, 05]
+17737; [7D 72 8E, 05, 05]
+17738; [7D 72 90, 05, 05]
+17739; [7D 72 92, 05, 05]
+1773A; [7D 72 94, 05, 05]
+1773B; [7D 72 96, 05, 05]
+1773C; [7D 72 98, 05, 05]
+1773D; [7D 72 9A, 05, 05]
+1773E; [7D 72 9C, 05, 05]
+1773F; [7D 72 9E, 05, 05]
+17740; [7D 72 A0, 05, 05]
+17741; [7D 72 A2, 05, 05]
+17742; [7D 72 A4, 05, 05]
+17743; [7D 72 A6, 05, 05]
+17744; [7D 72 A8, 05, 05]
+17745; [7D 72 AA, 05, 05]
+17746; [7D 72 AC, 05, 05]
+17747; [7D 72 AE, 05, 05]
+17748; [7D 72 B0, 05, 05]
+17749; [7D 72 B2, 05, 05]
+1774A; [7D 72 B4, 05, 05]
+1774B; [7D 72 B6, 05, 05]
+1774C; [7D 72 B8, 05, 05]
+1774D; [7D 72 BA, 05, 05]
+1774E; [7D 72 BC, 05, 05]
+1774F; [7D 72 BE, 05, 05]
+17750; [7D 72 C0, 05, 05]
+17751; [7D 72 C2, 05, 05]
+17752; [7D 72 C4, 05, 05]
+17753; [7D 72 C6, 05, 05]
+17754; [7D 72 C8, 05, 05]
+17755; [7D 72 CA, 05, 05]
+17756; [7D 72 CC, 05, 05]
+17757; [7D 72 CE, 05, 05]
+17758; [7D 72 D0, 05, 05]
+17759; [7D 72 D2, 05, 05]
+1775A; [7D 72 D4, 05, 05]
+1775B; [7D 72 D6, 05, 05]
+1775C; [7D 72 D8, 05, 05]
+1775D; [7D 72 DA, 05, 05]
+1775E; [7D 72 DC, 05, 05]
+1775F; [7D 72 DE, 05, 05]
+17760; [7D 72 E0, 05, 05]
+17761; [7D 72 E2, 05, 05]
+17762; [7D 72 E4, 05, 05]
+17763; [7D 72 E6, 05, 05]
+17764; [7D 72 E8, 05, 05]
+17765; [7D 72 EA, 05, 05]
+17766; [7D 72 EC, 05, 05]
+17767; [7D 72 EE, 05, 05]
+17768; [7D 72 F0, 05, 05]
+17769; [7D 72 F2, 05, 05]
+1776A; [7D 72 F4, 05, 05]
+1776B; [7D 72 F6, 05, 05]
+1776C; [7D 72 F8, 05, 05]
+1776D; [7D 72 FA, 05, 05]
+1776E; [7D 72 FC, 05, 05]
+1776F; [7D 72 FE, 05, 05]
+17770; [7D 73 02, 05, 05]
+17771; [7D 73 04, 05, 05]
+17772; [7D 73 06, 05, 05]
+17773; [7D 73 08, 05, 05]
+17774; [7D 73 0A, 05, 05]
+17775; [7D 73 0C, 05, 05]
+17776; [7D 73 0E, 05, 05]
+17777; [7D 73 10, 05, 05]
+17778; [7D 73 12, 05, 05]
+17779; [7D 73 14, 05, 05]
+1777A; [7D 73 16, 05, 05]
+1777B; [7D 73 18, 05, 05]
+1777C; [7D 73 1A, 05, 05]
+1777D; [7D 73 1C, 05, 05]
+1777E; [7D 73 1E, 05, 05]
+1777F; [7D 73 20, 05, 05]
+17780; [7D 73 22, 05, 05]
+17781; [7D 73 24, 05, 05]
+17782; [7D 73 26, 05, 05]
+17783; [7D 73 28, 05, 05]
+17784; [7D 73 2A, 05, 05]
+17785; [7D 73 2C, 05, 05]
+17786; [7D 73 2E, 05, 05]
+17787; [7D 73 30, 05, 05]
+17788; [7D 73 32, 05, 05]
+17789; [7D 73 34, 05, 05]
+1778A; [7D 73 36, 05, 05]
+1778B; [7D 73 38, 05, 05]
+1778C; [7D 73 3A, 05, 05]
+1778D; [7D 73 3C, 05, 05]
+1778E; [7D 73 3E, 05, 05]
+1778F; [7D 73 40, 05, 05]
+17790; [7D 73 42, 05, 05]
+17791; [7D 73 44, 05, 05]
+17792; [7D 73 46, 05, 05]
+17793; [7D 73 48, 05, 05]
+17794; [7D 73 4A, 05, 05]
+17795; [7D 73 4C, 05, 05]
+17796; [7D 73 4E, 05, 05]
+17797; [7D 73 50, 05, 05]
+17798; [7D 73 52, 05, 05]
+17799; [7D 73 54, 05, 05]
+1779A; [7D 73 56, 05, 05]
+1779B; [7D 73 58, 05, 05]
+1779C; [7D 73 5A, 05, 05]
+1779D; [7D 73 5C, 05, 05]
+1779E; [7D 73 5E, 05, 05]
+1779F; [7D 73 60, 05, 05]
+177A0; [7D 73 62, 05, 05]
+177A1; [7D 73 64, 05, 05]
+177A2; [7D 73 66, 05, 05]
+177A3; [7D 73 68, 05, 05]
+177A4; [7D 73 6A, 05, 05]
+177A5; [7D 73 6C, 05, 05]
+177A6; [7D 73 6E, 05, 05]
+177A7; [7D 73 70, 05, 05]
+177A8; [7D 73 72, 05, 05]
+177A9; [7D 73 74, 05, 05]
+177AA; [7D 73 76, 05, 05]
+177AB; [7D 73 78, 05, 05]
+177AC; [7D 73 7A, 05, 05]
+177AD; [7D 73 7C, 05, 05]
+177AE; [7D 73 7E, 05, 05]
+177AF; [7D 73 80, 05, 05]
+177B0; [7D 73 82, 05, 05]
+177B1; [7D 73 84, 05, 05]
+177B2; [7D 73 86, 05, 05]
+177B3; [7D 73 88, 05, 05]
+177B4; [7D 73 8A, 05, 05]
+177B5; [7D 73 8C, 05, 05]
+177B6; [7D 73 8E, 05, 05]
+177B7; [7D 73 90, 05, 05]
+177B8; [7D 73 92, 05, 05]
+177B9; [7D 73 94, 05, 05]
+177BA; [7D 73 96, 05, 05]
+177BB; [7D 73 98, 05, 05]
+177BC; [7D 73 9A, 05, 05]
+177BD; [7D 73 9C, 05, 05]
+177BE; [7D 73 9E, 05, 05]
+177BF; [7D 73 A0, 05, 05]
+177C0; [7D 73 A2, 05, 05]
+177C1; [7D 73 A4, 05, 05]
+177C2; [7D 73 A6, 05, 05]
+177C3; [7D 73 A8, 05, 05]
+177C4; [7D 73 AA, 05, 05]
+177C5; [7D 73 AC, 05, 05]
+177C6; [7D 73 AE, 05, 05]
+177C7; [7D 73 B0, 05, 05]
+177C8; [7D 73 B2, 05, 05]
+177C9; [7D 73 B4, 05, 05]
+177CA; [7D 73 B6, 05, 05]
+177CB; [7D 73 B8, 05, 05]
+177CC; [7D 73 BA, 05, 05]
+177CD; [7D 73 BC, 05, 05]
+177CE; [7D 73 BE, 05, 05]
+177CF; [7D 73 C0, 05, 05]
+177D0; [7D 73 C2, 05, 05]
+177D1; [7D 73 C4, 05, 05]
+177D2; [7D 73 C6, 05, 05]
+177D3; [7D 73 C8, 05, 05]
+177D4; [7D 73 CA, 05, 05]
+177D5; [7D 73 CC, 05, 05]
+177D6; [7D 73 CE, 05, 05]
+177D7; [7D 73 D0, 05, 05]
+177D8; [7D 73 D2, 05, 05]
+177D9; [7D 73 D4, 05, 05]
+177DA; [7D 73 D6, 05, 05]
+177DB; [7D 73 D8, 05, 05]
+177DC; [7D 73 DA, 05, 05]
+177DD; [7D 73 DC, 05, 05]
+177DE; [7D 73 DE, 05, 05]
+177DF; [7D 73 E0, 05, 05]
+177E0; [7D 73 E2, 05, 05]
+177E1; [7D 73 E4, 05, 05]
+177E2; [7D 73 E6, 05, 05]
+177E3; [7D 73 E8, 05, 05]
+177E4; [7D 73 EA, 05, 05]
+177E5; [7D 73 EC, 05, 05]
+177E6; [7D 73 EE, 05, 05]
+177E7; [7D 73 F0, 05, 05]
+177E8; [7D 73 F2, 05, 05]
+177E9; [7D 73 F4, 05, 05]
+177EA; [7D 73 F6, 05, 05]
+177EB; [7D 73 F8, 05, 05]
+177EC; [7D 73 FA, 05, 05]
+177ED; [7D 73 FC, 05, 05]
+177EE; [7D 73 FE, 05, 05]
+177EF; [7D 74 02, 05, 05]
+177F0; [7D 74 04, 05, 05]
+177F1; [7D 74 06, 05, 05]
+177F2; [7D 74 08, 05, 05]
+177F3; [7D 74 0A, 05, 05]
+177F4; [7D 74 0C, 05, 05]
+177F5; [7D 74 0E, 05, 05]
+177F6; [7D 74 10, 05, 05]
+177F7; [7D 74 12, 05, 05]
+177F8; [7D 74 14, 05, 05]
+177F9; [7D 74 16, 05, 05]
+177FA; [7D 74 18, 05, 05]
+177FB; [7D 74 1A, 05, 05]
+177FC; [7D 74 1C, 05, 05]
+177FD; [7D 74 1E, 05, 05]
+177FE; [7D 74 20, 05, 05]
+177FF; [7D 74 22, 05, 05]
+17800; [7D 74 24, 05, 05]
+17801; [7D 74 26, 05, 05]
+17802; [7D 74 28, 05, 05]
+17803; [7D 74 2A, 05, 05]
+17804; [7D 74 2C, 05, 05]
+17805; [7D 74 2E, 05, 05]
+17806; [7D 74 30, 05, 05]
+17807; [7D 74 32, 05, 05]
+17808; [7D 74 34, 05, 05]
+17809; [7D 74 36, 05, 05]
+1780A; [7D 74 38, 05, 05]
+1780B; [7D 74 3A, 05, 05]
+1780C; [7D 74 3C, 05, 05]
+1780D; [7D 74 3E, 05, 05]
+1780E; [7D 74 40, 05, 05]
+1780F; [7D 74 42, 05, 05]
+17810; [7D 74 44, 05, 05]
+17811; [7D 74 46, 05, 05]
+17812; [7D 74 48, 05, 05]
+17813; [7D 74 4A, 05, 05]
+17814; [7D 74 4C, 05, 05]
+17815; [7D 74 4E, 05, 05]
+17816; [7D 74 50, 05, 05]
+17817; [7D 74 52, 05, 05]
+17818; [7D 74 54, 05, 05]
+17819; [7D 74 56, 05, 05]
+1781A; [7D 74 58, 05, 05]
+1781B; [7D 74 5A, 05, 05]
+1781C; [7D 74 5C, 05, 05]
+1781D; [7D 74 5E, 05, 05]
+1781E; [7D 74 60, 05, 05]
+1781F; [7D 74 62, 05, 05]
+17820; [7D 74 64, 05, 05]
+17821; [7D 74 66, 05, 05]
+17822; [7D 74 68, 05, 05]
+17823; [7D 74 6A, 05, 05]
+17824; [7D 74 6C, 05, 05]
+17825; [7D 74 6E, 05, 05]
+17826; [7D 74 70, 05, 05]
+17827; [7D 74 72, 05, 05]
+17828; [7D 74 74, 05, 05]
+17829; [7D 74 76, 05, 05]
+1782A; [7D 74 78, 05, 05]
+1782B; [7D 74 7A, 05, 05]
+1782C; [7D 74 7C, 05, 05]
+1782D; [7D 74 7E, 05, 05]
+1782E; [7D 74 80, 05, 05]
+1782F; [7D 74 82, 05, 05]
+17830; [7D 74 84, 05, 05]
+17831; [7D 74 86, 05, 05]
+17832; [7D 74 88, 05, 05]
+17833; [7D 74 8A, 05, 05]
+17834; [7D 74 8C, 05, 05]
+17835; [7D 74 8E, 05, 05]
+17836; [7D 74 90, 05, 05]
+17837; [7D 74 92, 05, 05]
+17838; [7D 74 94, 05, 05]
+17839; [7D 74 96, 05, 05]
+1783A; [7D 74 98, 05, 05]
+1783B; [7D 74 9A, 05, 05]
+1783C; [7D 74 9C, 05, 05]
+1783D; [7D 74 9E, 05, 05]
+1783E; [7D 74 A0, 05, 05]
+1783F; [7D 74 A2, 05, 05]
+17840; [7D 74 A4, 05, 05]
+17841; [7D 74 A6, 05, 05]
+17842; [7D 74 A8, 05, 05]
+17843; [7D 74 AA, 05, 05]
+17844; [7D 74 AC, 05, 05]
+17845; [7D 74 AE, 05, 05]
+17846; [7D 74 B0, 05, 05]
+17847; [7D 74 B2, 05, 05]
+17848; [7D 74 B4, 05, 05]
+17849; [7D 74 B6, 05, 05]
+1784A; [7D 74 B8, 05, 05]
+1784B; [7D 74 BA, 05, 05]
+1784C; [7D 74 BC, 05, 05]
+1784D; [7D 74 BE, 05, 05]
+1784E; [7D 74 C0, 05, 05]
+1784F; [7D 74 C2, 05, 05]
+17850; [7D 74 C4, 05, 05]
+17851; [7D 74 C6, 05, 05]
+17852; [7D 74 C8, 05, 05]
+17853; [7D 74 CA, 05, 05]
+17854; [7D 74 CC, 05, 05]
+17855; [7D 74 CE, 05, 05]
+17856; [7D 74 D0, 05, 05]
+17857; [7D 74 D2, 05, 05]
+17858; [7D 74 D4, 05, 05]
+17859; [7D 74 D6, 05, 05]
+1785A; [7D 74 D8, 05, 05]
+1785B; [7D 74 DA, 05, 05]
+1785C; [7D 74 DC, 05, 05]
+1785D; [7D 74 DE, 05, 05]
+1785E; [7D 74 E0, 05, 05]
+1785F; [7D 74 E2, 05, 05]
+17860; [7D 74 E4, 05, 05]
+17861; [7D 74 E6, 05, 05]
+17862; [7D 74 E8, 05, 05]
+17863; [7D 74 EA, 05, 05]
+17864; [7D 74 EC, 05, 05]
+17865; [7D 74 EE, 05, 05]
+17866; [7D 74 F0, 05, 05]
+17867; [7D 74 F2, 05, 05]
+17868; [7D 74 F4, 05, 05]
+17869; [7D 74 F6, 05, 05]
+1786A; [7D 74 F8, 05, 05]
+1786B; [7D 74 FA, 05, 05]
+1786C; [7D 74 FC, 05, 05]
+1786D; [7D 74 FE, 05, 05]
+1786E; [7D 75 02, 05, 05]
+1786F; [7D 75 04, 05, 05]
+17870; [7D 75 06, 05, 05]
+17871; [7D 75 08, 05, 05]
+17872; [7D 75 0A, 05, 05]
+17873; [7D 75 0C, 05, 05]
+17874; [7D 75 0E, 05, 05]
+17875; [7D 75 10, 05, 05]
+17876; [7D 75 12, 05, 05]
+17877; [7D 75 14, 05, 05]
+17878; [7D 75 16, 05, 05]
+17879; [7D 75 18, 05, 05]
+1787A; [7D 75 1A, 05, 05]
+1787B; [7D 75 1C, 05, 05]
+1787C; [7D 75 1E, 05, 05]
+1787D; [7D 75 20, 05, 05]
+1787E; [7D 75 22, 05, 05]
+1787F; [7D 75 24, 05, 05]
+17880; [7D 75 26, 05, 05]
+17881; [7D 75 28, 05, 05]
+17882; [7D 75 2A, 05, 05]
+17883; [7D 75 2C, 05, 05]
+17884; [7D 75 2E, 05, 05]
+17885; [7D 75 30, 05, 05]
+17886; [7D 75 32, 05, 05]
+17887; [7D 75 34, 05, 05]
+17888; [7D 75 36, 05, 05]
+17889; [7D 75 38, 05, 05]
+1788A; [7D 75 3A, 05, 05]
+1788B; [7D 75 3C, 05, 05]
+1788C; [7D 75 3E, 05, 05]
+1788D; [7D 75 40, 05, 05]
+1788E; [7D 75 42, 05, 05]
+1788F; [7D 75 44, 05, 05]
+17890; [7D 75 46, 05, 05]
+17891; [7D 75 48, 05, 05]
+17892; [7D 75 4A, 05, 05]
+17893; [7D 75 4C, 05, 05]
+17894; [7D 75 4E, 05, 05]
+17895; [7D 75 50, 05, 05]
+17896; [7D 75 52, 05, 05]
+17897; [7D 75 54, 05, 05]
+17898; [7D 75 56, 05, 05]
+17899; [7D 75 58, 05, 05]
+1789A; [7D 75 5A, 05, 05]
+1789B; [7D 75 5C, 05, 05]
+1789C; [7D 75 5E, 05, 05]
+1789D; [7D 75 60, 05, 05]
+1789E; [7D 75 62, 05, 05]
+1789F; [7D 75 64, 05, 05]
+178A0; [7D 75 66, 05, 05]
+178A1; [7D 75 68, 05, 05]
+178A2; [7D 75 6A, 05, 05]
+178A3; [7D 75 6C, 05, 05]
+178A4; [7D 75 6E, 05, 05]
+178A5; [7D 75 70, 05, 05]
+178A6; [7D 75 72, 05, 05]
+178A7; [7D 75 74, 05, 05]
+178A8; [7D 75 76, 05, 05]
+178A9; [7D 75 78, 05, 05]
+178AA; [7D 75 7A, 05, 05]
+178AB; [7D 75 7C, 05, 05]
+178AC; [7D 75 7E, 05, 05]
+178AD; [7D 75 80, 05, 05]
+178AE; [7D 75 82, 05, 05]
+178AF; [7D 75 84, 05, 05]
+178B0; [7D 75 86, 05, 05]
+178B1; [7D 75 88, 05, 05]
+178B2; [7D 75 8A, 05, 05]
+178B3; [7D 75 8C, 05, 05]
+178B4; [7D 75 8E, 05, 05]
+178B5; [7D 75 90, 05, 05]
+178B6; [7D 75 92, 05, 05]
+178B7; [7D 75 94, 05, 05]
+178B8; [7D 75 96, 05, 05]
+178B9; [7D 75 98, 05, 05]
+178BA; [7D 75 9A, 05, 05]
+178BB; [7D 75 9C, 05, 05]
+178BC; [7D 75 9E, 05, 05]
+178BD; [7D 75 A0, 05, 05]
+178BE; [7D 75 A2, 05, 05]
+178BF; [7D 75 A4, 05, 05]
+178C0; [7D 75 A6, 05, 05]
+178C1; [7D 75 A8, 05, 05]
+178C2; [7D 75 AA, 05, 05]
+178C3; [7D 75 AC, 05, 05]
+178C4; [7D 75 AE, 05, 05]
+178C5; [7D 75 B0, 05, 05]
+178C6; [7D 75 B2, 05, 05]
+178C7; [7D 75 B4, 05, 05]
+178C8; [7D 75 B6, 05, 05]
+178C9; [7D 75 B8, 05, 05]
+178CA; [7D 75 BA, 05, 05]
+178CB; [7D 75 BC, 05, 05]
+178CC; [7D 75 BE, 05, 05]
+178CD; [7D 75 C0, 05, 05]
+178CE; [7D 75 C2, 05, 05]
+178CF; [7D 75 C4, 05, 05]
+178D0; [7D 75 C6, 05, 05]
+178D1; [7D 75 C8, 05, 05]
+178D2; [7D 75 CA, 05, 05]
+178D3; [7D 75 CC, 05, 05]
+178D4; [7D 75 CE, 05, 05]
+178D5; [7D 75 D0, 05, 05]
+178D6; [7D 75 D2, 05, 05]
+178D7; [7D 75 D4, 05, 05]
+178D8; [7D 75 D6, 05, 05]
+178D9; [7D 75 D8, 05, 05]
+178DA; [7D 75 DA, 05, 05]
+178DB; [7D 75 DC, 05, 05]
+178DC; [7D 75 DE, 05, 05]
+178DD; [7D 75 E0, 05, 05]
+178DE; [7D 75 E2, 05, 05]
+178DF; [7D 75 E4, 05, 05]
+178E0; [7D 75 E6, 05, 05]
+178E1; [7D 75 E8, 05, 05]
+178E2; [7D 75 EA, 05, 05]
+178E3; [7D 75 EC, 05, 05]
+178E4; [7D 75 EE, 05, 05]
+178E5; [7D 75 F0, 05, 05]
+178E6; [7D 75 F2, 05, 05]
+178E7; [7D 75 F4, 05, 05]
+178E8; [7D 75 F6, 05, 05]
+178E9; [7D 75 F8, 05, 05]
+178EA; [7D 75 FA, 05, 05]
+178EB; [7D 75 FC, 05, 05]
+178EC; [7D 75 FE, 05, 05]
+178ED; [7D 76 02, 05, 05]
+178EE; [7D 76 04, 05, 05]
+178EF; [7D 76 06, 05, 05]
+178F0; [7D 76 08, 05, 05]
+178F1; [7D 76 0A, 05, 05]
+178F2; [7D 76 0C, 05, 05]
+178F3; [7D 76 0E, 05, 05]
+178F4; [7D 76 10, 05, 05]
+178F5; [7D 76 12, 05, 05]
+178F6; [7D 76 14, 05, 05]
+178F7; [7D 76 16, 05, 05]
+178F8; [7D 76 18, 05, 05]
+178F9; [7D 76 1A, 05, 05]
+178FA; [7D 76 1C, 05, 05]
+178FB; [7D 76 1E, 05, 05]
+178FC; [7D 76 20, 05, 05]
+178FD; [7D 76 22, 05, 05]
+178FE; [7D 76 24, 05, 05]
+178FF; [7D 76 26, 05, 05]
+17900; [7D 76 28, 05, 05]
+17901; [7D 76 2A, 05, 05]
+17902; [7D 76 2C, 05, 05]
+17903; [7D 76 2E, 05, 05]
+17904; [7D 76 30, 05, 05]
+17905; [7D 76 32, 05, 05]
+17906; [7D 76 34, 05, 05]
+17907; [7D 76 36, 05, 05]
+17908; [7D 76 38, 05, 05]
+17909; [7D 76 3A, 05, 05]
+1790A; [7D 76 3C, 05, 05]
+1790B; [7D 76 3E, 05, 05]
+1790C; [7D 76 40, 05, 05]
+1790D; [7D 76 42, 05, 05]
+1790E; [7D 76 44, 05, 05]
+1790F; [7D 76 46, 05, 05]
+17910; [7D 76 48, 05, 05]
+17911; [7D 76 4A, 05, 05]
+17912; [7D 76 4C, 05, 05]
+17913; [7D 76 4E, 05, 05]
+17914; [7D 76 50, 05, 05]
+17915; [7D 76 52, 05, 05]
+17916; [7D 76 54, 05, 05]
+17917; [7D 76 56, 05, 05]
+17918; [7D 76 58, 05, 05]
+17919; [7D 76 5A, 05, 05]
+1791A; [7D 76 5C, 05, 05]
+1791B; [7D 76 5E, 05, 05]
+1791C; [7D 76 60, 05, 05]
+1791D; [7D 76 62, 05, 05]
+1791E; [7D 76 64, 05, 05]
+1791F; [7D 76 66, 05, 05]
+17920; [7D 76 68, 05, 05]
+17921; [7D 76 6A, 05, 05]
+17922; [7D 76 6C, 05, 05]
+17923; [7D 76 6E, 05, 05]
+17924; [7D 76 70, 05, 05]
+17925; [7D 76 72, 05, 05]
+17926; [7D 76 74, 05, 05]
+17927; [7D 76 76, 05, 05]
+17928; [7D 76 78, 05, 05]
+17929; [7D 76 7A, 05, 05]
+1792A; [7D 76 7C, 05, 05]
+1792B; [7D 76 7E, 05, 05]
+1792C; [7D 76 80, 05, 05]
+1792D; [7D 76 82, 05, 05]
+1792E; [7D 76 84, 05, 05]
+1792F; [7D 76 86, 05, 05]
+17930; [7D 76 88, 05, 05]
+17931; [7D 76 8A, 05, 05]
+17932; [7D 76 8C, 05, 05]
+17933; [7D 76 8E, 05, 05]
+17934; [7D 76 90, 05, 05]
+17935; [7D 76 92, 05, 05]
+17936; [7D 76 94, 05, 05]
+17937; [7D 76 96, 05, 05]
+17938; [7D 76 98, 05, 05]
+17939; [7D 76 9A, 05, 05]
+1793A; [7D 76 9C, 05, 05]
+1793B; [7D 76 9E, 05, 05]
+1793C; [7D 76 A0, 05, 05]
+1793D; [7D 76 A2, 05, 05]
+1793E; [7D 76 A4, 05, 05]
+1793F; [7D 76 A6, 05, 05]
+17940; [7D 76 A8, 05, 05]
+17941; [7D 76 AA, 05, 05]
+17942; [7D 76 AC, 05, 05]
+17943; [7D 76 AE, 05, 05]
+17944; [7D 76 B0, 05, 05]
+17945; [7D 76 B2, 05, 05]
+17946; [7D 76 B4, 05, 05]
+17947; [7D 76 B6, 05, 05]
+17948; [7D 76 B8, 05, 05]
+17949; [7D 76 BA, 05, 05]
+1794A; [7D 76 BC, 05, 05]
+1794B; [7D 76 BE, 05, 05]
+1794C; [7D 76 C0, 05, 05]
+1794D; [7D 76 C2, 05, 05]
+1794E; [7D 76 C4, 05, 05]
+1794F; [7D 76 C6, 05, 05]
+17950; [7D 76 C8, 05, 05]
+17951; [7D 76 CA, 05, 05]
+17952; [7D 76 CC, 05, 05]
+17953; [7D 76 CE, 05, 05]
+17954; [7D 76 D0, 05, 05]
+17955; [7D 76 D2, 05, 05]
+17956; [7D 76 D4, 05, 05]
+17957; [7D 76 D6, 05, 05]
+17958; [7D 76 D8, 05, 05]
+17959; [7D 76 DA, 05, 05]
+1795A; [7D 76 DC, 05, 05]
+1795B; [7D 76 DE, 05, 05]
+1795C; [7D 76 E0, 05, 05]
+1795D; [7D 76 E2, 05, 05]
+1795E; [7D 76 E4, 05, 05]
+1795F; [7D 76 E6, 05, 05]
+17960; [7D 76 E8, 05, 05]
+17961; [7D 76 EA, 05, 05]
+17962; [7D 76 EC, 05, 05]
+17963; [7D 76 EE, 05, 05]
+17964; [7D 76 F0, 05, 05]
+17965; [7D 76 F2, 05, 05]
+17966; [7D 76 F4, 05, 05]
+17967; [7D 76 F6, 05, 05]
+17968; [7D 76 F8, 05, 05]
+17969; [7D 76 FA, 05, 05]
+1796A; [7D 76 FC, 05, 05]
+1796B; [7D 76 FE, 05, 05]
+1796C; [7D 77 02, 05, 05]
+1796D; [7D 77 04, 05, 05]
+1796E; [7D 77 06, 05, 05]
+1796F; [7D 77 08, 05, 05]
+17970; [7D 77 0A, 05, 05]
+17971; [7D 77 0C, 05, 05]
+17972; [7D 77 0E, 05, 05]
+17973; [7D 77 10, 05, 05]
+17974; [7D 77 12, 05, 05]
+17975; [7D 77 14, 05, 05]
+17976; [7D 77 16, 05, 05]
+17977; [7D 77 18, 05, 05]
+17978; [7D 77 1A, 05, 05]
+17979; [7D 77 1C, 05, 05]
+1797A; [7D 77 1E, 05, 05]
+1797B; [7D 77 20, 05, 05]
+1797C; [7D 77 22, 05, 05]
+1797D; [7D 77 24, 05, 05]
+1797E; [7D 77 26, 05, 05]
+1797F; [7D 77 28, 05, 05]
+17980; [7D 77 2A, 05, 05]
+17981; [7D 77 2C, 05, 05]
+17982; [7D 77 2E, 05, 05]
+17983; [7D 77 30, 05, 05]
+17984; [7D 77 32, 05, 05]
+17985; [7D 77 34, 05, 05]
+17986; [7D 77 36, 05, 05]
+17987; [7D 77 38, 05, 05]
+17988; [7D 77 3A, 05, 05]
+17989; [7D 77 3C, 05, 05]
+1798A; [7D 77 3E, 05, 05]
+1798B; [7D 77 40, 05, 05]
+1798C; [7D 77 42, 05, 05]
+1798D; [7D 77 44, 05, 05]
+1798E; [7D 77 46, 05, 05]
+1798F; [7D 77 48, 05, 05]
+17990; [7D 77 4A, 05, 05]
+17991; [7D 77 4C, 05, 05]
+17992; [7D 77 4E, 05, 05]
+17993; [7D 77 50, 05, 05]
+17994; [7D 77 52, 05, 05]
+17995; [7D 77 54, 05, 05]
+17996; [7D 77 56, 05, 05]
+17997; [7D 77 58, 05, 05]
+17998; [7D 77 5A, 05, 05]
+17999; [7D 77 5C, 05, 05]
+1799A; [7D 77 5E, 05, 05]
+1799B; [7D 77 60, 05, 05]
+1799C; [7D 77 62, 05, 05]
+1799D; [7D 77 64, 05, 05]
+1799E; [7D 77 66, 05, 05]
+1799F; [7D 77 68, 05, 05]
+179A0; [7D 77 6A, 05, 05]
+179A1; [7D 77 6C, 05, 05]
+179A2; [7D 77 6E, 05, 05]
+179A3; [7D 77 70, 05, 05]
+179A4; [7D 77 72, 05, 05]
+179A5; [7D 77 74, 05, 05]
+179A6; [7D 77 76, 05, 05]
+179A7; [7D 77 78, 05, 05]
+179A8; [7D 77 7A, 05, 05]
+179A9; [7D 77 7C, 05, 05]
+179AA; [7D 77 7E, 05, 05]
+179AB; [7D 77 80, 05, 05]
+179AC; [7D 77 82, 05, 05]
+179AD; [7D 77 84, 05, 05]
+179AE; [7D 77 86, 05, 05]
+179AF; [7D 77 88, 05, 05]
+179B0; [7D 77 8A, 05, 05]
+179B1; [7D 77 8C, 05, 05]
+179B2; [7D 77 8E, 05, 05]
+179B3; [7D 77 90, 05, 05]
+179B4; [7D 77 92, 05, 05]
+179B5; [7D 77 94, 05, 05]
+179B6; [7D 77 96, 05, 05]
+179B7; [7D 77 98, 05, 05]
+179B8; [7D 77 9A, 05, 05]
+179B9; [7D 77 9C, 05, 05]
+179BA; [7D 77 9E, 05, 05]
+179BB; [7D 77 A0, 05, 05]
+179BC; [7D 77 A2, 05, 05]
+179BD; [7D 77 A4, 05, 05]
+179BE; [7D 77 A6, 05, 05]
+179BF; [7D 77 A8, 05, 05]
+179C0; [7D 77 AA, 05, 05]
+179C1; [7D 77 AC, 05, 05]
+179C2; [7D 77 AE, 05, 05]
+179C3; [7D 77 B0, 05, 05]
+179C4; [7D 77 B2, 05, 05]
+179C5; [7D 77 B4, 05, 05]
+179C6; [7D 77 B6, 05, 05]
+179C7; [7D 77 B8, 05, 05]
+179C8; [7D 77 BA, 05, 05]
+179C9; [7D 77 BC, 05, 05]
+179CA; [7D 77 BE, 05, 05]
+179CB; [7D 77 C0, 05, 05]
+179CC; [7D 77 C2, 05, 05]
+179CD; [7D 77 C4, 05, 05]
+179CE; [7D 77 C6, 05, 05]
+179CF; [7D 77 C8, 05, 05]
+179D0; [7D 77 CA, 05, 05]
+179D1; [7D 77 CC, 05, 05]
+179D2; [7D 77 CE, 05, 05]
+179D3; [7D 77 D0, 05, 05]
+179D4; [7D 77 D2, 05, 05]
+179D5; [7D 77 D4, 05, 05]
+179D6; [7D 77 D6, 05, 05]
+179D7; [7D 77 D8, 05, 05]
+179D8; [7D 77 DA, 05, 05]
+179D9; [7D 77 DC, 05, 05]
+179DA; [7D 77 DE, 05, 05]
+179DB; [7D 77 E0, 05, 05]
+179DC; [7D 77 E2, 05, 05]
+179DD; [7D 77 E4, 05, 05]
+179DE; [7D 77 E6, 05, 05]
+179DF; [7D 77 E8, 05, 05]
+179E0; [7D 77 EA, 05, 05]
+179E1; [7D 77 EC, 05, 05]
+179E2; [7D 77 EE, 05, 05]
+179E3; [7D 77 F0, 05, 05]
+179E4; [7D 77 F2, 05, 05]
+179E5; [7D 77 F4, 05, 05]
+179E6; [7D 77 F6, 05, 05]
+179E7; [7D 77 F8, 05, 05]
+179E8; [7D 77 FA, 05, 05]
+179E9; [7D 77 FC, 05, 05]
+179EA; [7D 77 FE, 05, 05]
+179EB; [7D 78 02, 05, 05]
+179EC; [7D 78 04, 05, 05]
+179ED; [7D 78 06, 05, 05]
+179EE; [7D 78 08, 05, 05]
+179EF; [7D 78 0A, 05, 05]
+179F0; [7D 78 0C, 05, 05]
+179F1; [7D 78 0E, 05, 05]
+179F2; [7D 78 10, 05, 05]
+179F3; [7D 78 12, 05, 05]
+179F4; [7D 78 14, 05, 05]
+179F5; [7D 78 16, 05, 05]
+179F6; [7D 78 18, 05, 05]
+179F7; [7D 78 1A, 05, 05]
+179F8; [7D 78 1C, 05, 05]
+179F9; [7D 78 1E, 05, 05]
+179FA; [7D 78 20, 05, 05]
+179FB; [7D 78 22, 05, 05]
+179FC; [7D 78 24, 05, 05]
+179FD; [7D 78 26, 05, 05]
+179FE; [7D 78 28, 05, 05]
+179FF; [7D 78 2A, 05, 05]
+17A00; [7D 78 2C, 05, 05]
+17A01; [7D 78 2E, 05, 05]
+17A02; [7D 78 30, 05, 05]
+17A03; [7D 78 32, 05, 05]
+17A04; [7D 78 34, 05, 05]
+17A05; [7D 78 36, 05, 05]
+17A06; [7D 78 38, 05, 05]
+17A07; [7D 78 3A, 05, 05]
+17A08; [7D 78 3C, 05, 05]
+17A09; [7D 78 3E, 05, 05]
+17A0A; [7D 78 40, 05, 05]
+17A0B; [7D 78 42, 05, 05]
+17A0C; [7D 78 44, 05, 05]
+17A0D; [7D 78 46, 05, 05]
+17A0E; [7D 78 48, 05, 05]
+17A0F; [7D 78 4A, 05, 05]
+17A10; [7D 78 4C, 05, 05]
+17A11; [7D 78 4E, 05, 05]
+17A12; [7D 78 50, 05, 05]
+17A13; [7D 78 52, 05, 05]
+17A14; [7D 78 54, 05, 05]
+17A15; [7D 78 56, 05, 05]
+17A16; [7D 78 58, 05, 05]
+17A17; [7D 78 5A, 05, 05]
+17A18; [7D 78 5C, 05, 05]
+17A19; [7D 78 5E, 05, 05]
+17A1A; [7D 78 60, 05, 05]
+17A1B; [7D 78 62, 05, 05]
+17A1C; [7D 78 64, 05, 05]
+17A1D; [7D 78 66, 05, 05]
+17A1E; [7D 78 68, 05, 05]
+17A1F; [7D 78 6A, 05, 05]
+17A20; [7D 78 6C, 05, 05]
+17A21; [7D 78 6E, 05, 05]
+17A22; [7D 78 70, 05, 05]
+17A23; [7D 78 72, 05, 05]
+17A24; [7D 78 74, 05, 05]
+17A25; [7D 78 76, 05, 05]
+17A26; [7D 78 78, 05, 05]
+17A27; [7D 78 7A, 05, 05]
+17A28; [7D 78 7C, 05, 05]
+17A29; [7D 78 7E, 05, 05]
+17A2A; [7D 78 80, 05, 05]
+17A2B; [7D 78 82, 05, 05]
+17A2C; [7D 78 84, 05, 05]
+17A2D; [7D 78 86, 05, 05]
+17A2E; [7D 78 88, 05, 05]
+17A2F; [7D 78 8A, 05, 05]
+17A30; [7D 78 8C, 05, 05]
+17A31; [7D 78 8E, 05, 05]
+17A32; [7D 78 90, 05, 05]
+17A33; [7D 78 92, 05, 05]
+17A34; [7D 78 94, 05, 05]
+17A35; [7D 78 96, 05, 05]
+17A36; [7D 78 98, 05, 05]
+17A37; [7D 78 9A, 05, 05]
+17A38; [7D 78 9C, 05, 05]
+17A39; [7D 78 9E, 05, 05]
+17A3A; [7D 78 A0, 05, 05]
+17A3B; [7D 78 A2, 05, 05]
+17A3C; [7D 78 A4, 05, 05]
+17A3D; [7D 78 A6, 05, 05]
+17A3E; [7D 78 A8, 05, 05]
+17A3F; [7D 78 AA, 05, 05]
+17A40; [7D 78 AC, 05, 05]
+17A41; [7D 78 AE, 05, 05]
+17A42; [7D 78 B0, 05, 05]
+17A43; [7D 78 B2, 05, 05]
+17A44; [7D 78 B4, 05, 05]
+17A45; [7D 78 B6, 05, 05]
+17A46; [7D 78 B8, 05, 05]
+17A47; [7D 78 BA, 05, 05]
+17A48; [7D 78 BC, 05, 05]
+17A49; [7D 78 BE, 05, 05]
+17A4A; [7D 78 C0, 05, 05]
+17A4B; [7D 78 C2, 05, 05]
+17A4C; [7D 78 C4, 05, 05]
+17A4D; [7D 78 C6, 05, 05]
+17A4E; [7D 78 C8, 05, 05]
+17A4F; [7D 78 CA, 05, 05]
+17A50; [7D 78 CC, 05, 05]
+17A51; [7D 78 CE, 05, 05]
+17A52; [7D 78 D0, 05, 05]
+17A53; [7D 78 D2, 05, 05]
+17A54; [7D 78 D4, 05, 05]
+17A55; [7D 78 D6, 05, 05]
+17A56; [7D 78 D8, 05, 05]
+17A57; [7D 78 DA, 05, 05]
+17A58; [7D 78 DC, 05, 05]
+17A59; [7D 78 DE, 05, 05]
+17A5A; [7D 78 E0, 05, 05]
+17A5B; [7D 78 E2, 05, 05]
+17A5C; [7D 78 E4, 05, 05]
+17A5D; [7D 78 E6, 05, 05]
+17A5E; [7D 78 E8, 05, 05]
+17A5F; [7D 78 EA, 05, 05]
+17A60; [7D 78 EC, 05, 05]
+17A61; [7D 78 EE, 05, 05]
+17A62; [7D 78 F0, 05, 05]
+17A63; [7D 78 F2, 05, 05]
+17A64; [7D 78 F4, 05, 05]
+17A65; [7D 78 F6, 05, 05]
+17A66; [7D 78 F8, 05, 05]
+17A67; [7D 78 FA, 05, 05]
+17A68; [7D 78 FC, 05, 05]
+17A69; [7D 78 FE, 05, 05]
+17A6A; [7D 79 02, 05, 05]
+17A6B; [7D 79 04, 05, 05]
+17A6C; [7D 79 06, 05, 05]
+17A6D; [7D 79 08, 05, 05]
+17A6E; [7D 79 0A, 05, 05]
+17A6F; [7D 79 0C, 05, 05]
+17A70; [7D 79 0E, 05, 05]
+17A71; [7D 79 10, 05, 05]
+17A72; [7D 79 12, 05, 05]
+17A73; [7D 79 14, 05, 05]
+17A74; [7D 79 16, 05, 05]
+17A75; [7D 79 18, 05, 05]
+17A76; [7D 79 1A, 05, 05]
+17A77; [7D 79 1C, 05, 05]
+17A78; [7D 79 1E, 05, 05]
+17A79; [7D 79 20, 05, 05]
+17A7A; [7D 79 22, 05, 05]
+17A7B; [7D 79 24, 05, 05]
+17A7C; [7D 79 26, 05, 05]
+17A7D; [7D 79 28, 05, 05]
+17A7E; [7D 79 2A, 05, 05]
+17A7F; [7D 79 2C, 05, 05]
+17A80; [7D 79 2E, 05, 05]
+17A81; [7D 79 30, 05, 05]
+17A82; [7D 79 32, 05, 05]
+17A83; [7D 79 34, 05, 05]
+17A84; [7D 79 36, 05, 05]
+17A85; [7D 79 38, 05, 05]
+17A86; [7D 79 3A, 05, 05]
+17A87; [7D 79 3C, 05, 05]
+17A88; [7D 79 3E, 05, 05]
+17A89; [7D 79 40, 05, 05]
+17A8A; [7D 79 42, 05, 05]
+17A8B; [7D 79 44, 05, 05]
+17A8C; [7D 79 46, 05, 05]
+17A8D; [7D 79 48, 05, 05]
+17A8E; [7D 79 4A, 05, 05]
+17A8F; [7D 79 4C, 05, 05]
+17A90; [7D 79 4E, 05, 05]
+17A91; [7D 79 50, 05, 05]
+17A92; [7D 79 52, 05, 05]
+17A93; [7D 79 54, 05, 05]
+17A94; [7D 79 56, 05, 05]
+17A95; [7D 79 58, 05, 05]
+17A96; [7D 79 5A, 05, 05]
+17A97; [7D 79 5C, 05, 05]
+17A98; [7D 79 5E, 05, 05]
+17A99; [7D 79 60, 05, 05]
+17A9A; [7D 79 62, 05, 05]
+17A9B; [7D 79 64, 05, 05]
+17A9C; [7D 79 66, 05, 05]
+17A9D; [7D 79 68, 05, 05]
+17A9E; [7D 79 6A, 05, 05]
+17A9F; [7D 79 6C, 05, 05]
+17AA0; [7D 79 6E, 05, 05]
+17AA1; [7D 79 70, 05, 05]
+17AA2; [7D 79 72, 05, 05]
+17AA3; [7D 79 74, 05, 05]
+17AA4; [7D 79 76, 05, 05]
+17AA5; [7D 79 78, 05, 05]
+17AA6; [7D 79 7A, 05, 05]
+17AA7; [7D 79 7C, 05, 05]
+17AA8; [7D 79 7E, 05, 05]
+17AA9; [7D 79 80, 05, 05]
+17AAA; [7D 79 82, 05, 05]
+17AAB; [7D 79 84, 05, 05]
+17AAC; [7D 79 86, 05, 05]
+17AAD; [7D 79 88, 05, 05]
+17AAE; [7D 79 8A, 05, 05]
+17AAF; [7D 79 8C, 05, 05]
+17AB0; [7D 79 8E, 05, 05]
+17AB1; [7D 79 90, 05, 05]
+17AB2; [7D 79 92, 05, 05]
+17AB3; [7D 79 94, 05, 05]
+17AB4; [7D 79 96, 05, 05]
+17AB5; [7D 79 98, 05, 05]
+17AB6; [7D 79 9A, 05, 05]
+17AB7; [7D 79 9C, 05, 05]
+17AB8; [7D 79 9E, 05, 05]
+17AB9; [7D 79 A0, 05, 05]
+17ABA; [7D 79 A2, 05, 05]
+17ABB; [7D 79 A4, 05, 05]
+17ABC; [7D 79 A6, 05, 05]
+17ABD; [7D 79 A8, 05, 05]
+17ABE; [7D 79 AA, 05, 05]
+17ABF; [7D 79 AC, 05, 05]
+17AC0; [7D 79 AE, 05, 05]
+17AC1; [7D 79 B0, 05, 05]
+17AC2; [7D 79 B2, 05, 05]
+17AC3; [7D 79 B4, 05, 05]
+17AC4; [7D 79 B6, 05, 05]
+17AC5; [7D 79 B8, 05, 05]
+17AC6; [7D 79 BA, 05, 05]
+17AC7; [7D 79 BC, 05, 05]
+17AC8; [7D 79 BE, 05, 05]
+17AC9; [7D 79 C0, 05, 05]
+17ACA; [7D 79 C2, 05, 05]
+17ACB; [7D 79 C4, 05, 05]
+17ACC; [7D 79 C6, 05, 05]
+17ACD; [7D 79 C8, 05, 05]
+17ACE; [7D 79 CA, 05, 05]
+17ACF; [7D 79 CC, 05, 05]
+17AD0; [7D 79 CE, 05, 05]
+17AD1; [7D 79 D0, 05, 05]
+17AD2; [7D 79 D2, 05, 05]
+17AD3; [7D 79 D4, 05, 05]
+17AD4; [7D 79 D6, 05, 05]
+17AD5; [7D 79 D8, 05, 05]
+17AD6; [7D 79 DA, 05, 05]
+17AD7; [7D 79 DC, 05, 05]
+17AD8; [7D 79 DE, 05, 05]
+17AD9; [7D 79 E0, 05, 05]
+17ADA; [7D 79 E2, 05, 05]
+17ADB; [7D 79 E4, 05, 05]
+17ADC; [7D 79 E6, 05, 05]
+17ADD; [7D 79 E8, 05, 05]
+17ADE; [7D 79 EA, 05, 05]
+17ADF; [7D 79 EC, 05, 05]
+17AE0; [7D 79 EE, 05, 05]
+17AE1; [7D 79 F0, 05, 05]
+17AE2; [7D 79 F2, 05, 05]
+17AE3; [7D 79 F4, 05, 05]
+17AE4; [7D 79 F6, 05, 05]
+17AE5; [7D 79 F8, 05, 05]
+17AE6; [7D 79 FA, 05, 05]
+17AE7; [7D 79 FC, 05, 05]
+17AE8; [7D 79 FE, 05, 05]
+17AE9; [7D 7A 02, 05, 05]
+17AEA; [7D 7A 04, 05, 05]
+17AEB; [7D 7A 06, 05, 05]
+17AEC; [7D 7A 08, 05, 05]
+17AED; [7D 7A 0A, 05, 05]
+17AEE; [7D 7A 0C, 05, 05]
+17AEF; [7D 7A 0E, 05, 05]
+17AF0; [7D 7A 10, 05, 05]
+17AF1; [7D 7A 12, 05, 05]
+17AF2; [7D 7A 14, 05, 05]
+17AF3; [7D 7A 16, 05, 05]
+17AF4; [7D 7A 18, 05, 05]
+17AF5; [7D 7A 1A, 05, 05]
+17AF6; [7D 7A 1C, 05, 05]
+17AF7; [7D 7A 1E, 05, 05]
+17AF8; [7D 7A 20, 05, 05]
+17AF9; [7D 7A 22, 05, 05]
+17AFA; [7D 7A 24, 05, 05]
+17AFB; [7D 7A 26, 05, 05]
+17AFC; [7D 7A 28, 05, 05]
+17AFD; [7D 7A 2A, 05, 05]
+17AFE; [7D 7A 2C, 05, 05]
+17AFF; [7D 7A 2E, 05, 05]
+17B00; [7D 7A 30, 05, 05]
+17B01; [7D 7A 32, 05, 05]
+17B02; [7D 7A 34, 05, 05]
+17B03; [7D 7A 36, 05, 05]
+17B04; [7D 7A 38, 05, 05]
+17B05; [7D 7A 3A, 05, 05]
+17B06; [7D 7A 3C, 05, 05]
+17B07; [7D 7A 3E, 05, 05]
+17B08; [7D 7A 40, 05, 05]
+17B09; [7D 7A 42, 05, 05]
+17B0A; [7D 7A 44, 05, 05]
+17B0B; [7D 7A 46, 05, 05]
+17B0C; [7D 7A 48, 05, 05]
+17B0D; [7D 7A 4A, 05, 05]
+17B0E; [7D 7A 4C, 05, 05]
+17B0F; [7D 7A 4E, 05, 05]
+17B10; [7D 7A 50, 05, 05]
+17B11; [7D 7A 52, 05, 05]
+17B12; [7D 7A 54, 05, 05]
+17B13; [7D 7A 56, 05, 05]
+17B14; [7D 7A 58, 05, 05]
+17B15; [7D 7A 5A, 05, 05]
+17B16; [7D 7A 5C, 05, 05]
+17B17; [7D 7A 5E, 05, 05]
+17B18; [7D 7A 60, 05, 05]
+17B19; [7D 7A 62, 05, 05]
+17B1A; [7D 7A 64, 05, 05]
+17B1B; [7D 7A 66, 05, 05]
+17B1C; [7D 7A 68, 05, 05]
+17B1D; [7D 7A 6A, 05, 05]
+17B1E; [7D 7A 6C, 05, 05]
+17B1F; [7D 7A 6E, 05, 05]
+17B20; [7D 7A 70, 05, 05]
+17B21; [7D 7A 72, 05, 05]
+17B22; [7D 7A 74, 05, 05]
+17B23; [7D 7A 76, 05, 05]
+17B24; [7D 7A 78, 05, 05]
+17B25; [7D 7A 7A, 05, 05]
+17B26; [7D 7A 7C, 05, 05]
+17B27; [7D 7A 7E, 05, 05]
+17B28; [7D 7A 80, 05, 05]
+17B29; [7D 7A 82, 05, 05]
+17B2A; [7D 7A 84, 05, 05]
+17B2B; [7D 7A 86, 05, 05]
+17B2C; [7D 7A 88, 05, 05]
+17B2D; [7D 7A 8A, 05, 05]
+17B2E; [7D 7A 8C, 05, 05]
+17B2F; [7D 7A 8E, 05, 05]
+17B30; [7D 7A 90, 05, 05]
+17B31; [7D 7A 92, 05, 05]
+17B32; [7D 7A 94, 05, 05]
+17B33; [7D 7A 96, 05, 05]
+17B34; [7D 7A 98, 05, 05]
+17B35; [7D 7A 9A, 05, 05]
+17B36; [7D 7A 9C, 05, 05]
+17B37; [7D 7A 9E, 05, 05]
+17B38; [7D 7A A0, 05, 05]
+17B39; [7D 7A A2, 05, 05]
+17B3A; [7D 7A A4, 05, 05]
+17B3B; [7D 7A A6, 05, 05]
+17B3C; [7D 7A A8, 05, 05]
+17B3D; [7D 7A AA, 05, 05]
+17B3E; [7D 7A AC, 05, 05]
+17B3F; [7D 7A AE, 05, 05]
+17B40; [7D 7A B0, 05, 05]
+17B41; [7D 7A B2, 05, 05]
+17B42; [7D 7A B4, 05, 05]
+17B43; [7D 7A B6, 05, 05]
+17B44; [7D 7A B8, 05, 05]
+17B45; [7D 7A BA, 05, 05]
+17B46; [7D 7A BC, 05, 05]
+17B47; [7D 7A BE, 05, 05]
+17B48; [7D 7A C0, 05, 05]
+17B49; [7D 7A C2, 05, 05]
+17B4A; [7D 7A C4, 05, 05]
+17B4B; [7D 7A C6, 05, 05]
+17B4C; [7D 7A C8, 05, 05]
+17B4D; [7D 7A CA, 05, 05]
+17B4E; [7D 7A CC, 05, 05]
+17B4F; [7D 7A CE, 05, 05]
+17B50; [7D 7A D0, 05, 05]
+17B51; [7D 7A D2, 05, 05]
+17B52; [7D 7A D4, 05, 05]
+17B53; [7D 7A D6, 05, 05]
+17B54; [7D 7A D8, 05, 05]
+17B55; [7D 7A DA, 05, 05]
+17B56; [7D 7A DC, 05, 05]
+17B57; [7D 7A DE, 05, 05]
+17B58; [7D 7A E0, 05, 05]
+17B59; [7D 7A E2, 05, 05]
+17B5A; [7D 7A E4, 05, 05]
+17B5B; [7D 7A E6, 05, 05]
+17B5C; [7D 7A E8, 05, 05]
+17B5D; [7D 7A EA, 05, 05]
+17B5E; [7D 7A EC, 05, 05]
+17B5F; [7D 7A EE, 05, 05]
+17B60; [7D 7A F0, 05, 05]
+17B61; [7D 7A F2, 05, 05]
+17B62; [7D 7A F4, 05, 05]
+17B63; [7D 7A F6, 05, 05]
+17B64; [7D 7A F8, 05, 05]
+17B65; [7D 7A FA, 05, 05]
+17B66; [7D 7A FC, 05, 05]
+17B67; [7D 7A FE, 05, 05]
+17B68; [7D 7B 02, 05, 05]
+17B69; [7D 7B 04, 05, 05]
+17B6A; [7D 7B 06, 05, 05]
+17B6B; [7D 7B 08, 05, 05]
+17B6C; [7D 7B 0A, 05, 05]
+17B6D; [7D 7B 0C, 05, 05]
+17B6E; [7D 7B 0E, 05, 05]
+17B6F; [7D 7B 10, 05, 05]
+17B70; [7D 7B 12, 05, 05]
+17B71; [7D 7B 14, 05, 05]
+17B72; [7D 7B 16, 05, 05]
+17B73; [7D 7B 18, 05, 05]
+17B74; [7D 7B 1A, 05, 05]
+17B75; [7D 7B 1C, 05, 05]
+17B76; [7D 7B 1E, 05, 05]
+17B77; [7D 7B 20, 05, 05]
+17B78; [7D 7B 22, 05, 05]
+17B79; [7D 7B 24, 05, 05]
+17B7A; [7D 7B 26, 05, 05]
+17B7B; [7D 7B 28, 05, 05]
+17B7C; [7D 7B 2A, 05, 05]
+17B7D; [7D 7B 2C, 05, 05]
+17B7E; [7D 7B 2E, 05, 05]
+17B7F; [7D 7B 30, 05, 05]
+17B80; [7D 7B 32, 05, 05]
+17B81; [7D 7B 34, 05, 05]
+17B82; [7D 7B 36, 05, 05]
+17B83; [7D 7B 38, 05, 05]
+17B84; [7D 7B 3A, 05, 05]
+17B85; [7D 7B 3C, 05, 05]
+17B86; [7D 7B 3E, 05, 05]
+17B87; [7D 7B 40, 05, 05]
+17B88; [7D 7B 42, 05, 05]
+17B89; [7D 7B 44, 05, 05]
+17B8A; [7D 7B 46, 05, 05]
+17B8B; [7D 7B 48, 05, 05]
+17B8C; [7D 7B 4A, 05, 05]
+17B8D; [7D 7B 4C, 05, 05]
+17B8E; [7D 7B 4E, 05, 05]
+17B8F; [7D 7B 50, 05, 05]
+17B90; [7D 7B 52, 05, 05]
+17B91; [7D 7B 54, 05, 05]
+17B92; [7D 7B 56, 05, 05]
+17B93; [7D 7B 58, 05, 05]
+17B94; [7D 7B 5A, 05, 05]
+17B95; [7D 7B 5C, 05, 05]
+17B96; [7D 7B 5E, 05, 05]
+17B97; [7D 7B 60, 05, 05]
+17B98; [7D 7B 62, 05, 05]
+17B99; [7D 7B 64, 05, 05]
+17B9A; [7D 7B 66, 05, 05]
+17B9B; [7D 7B 68, 05, 05]
+17B9C; [7D 7B 6A, 05, 05]
+17B9D; [7D 7B 6C, 05, 05]
+17B9E; [7D 7B 6E, 05, 05]
+17B9F; [7D 7B 70, 05, 05]
+17BA0; [7D 7B 72, 05, 05]
+17BA1; [7D 7B 74, 05, 05]
+17BA2; [7D 7B 76, 05, 05]
+17BA3; [7D 7B 78, 05, 05]
+17BA4; [7D 7B 7A, 05, 05]
+17BA5; [7D 7B 7C, 05, 05]
+17BA6; [7D 7B 7E, 05, 05]
+17BA7; [7D 7B 80, 05, 05]
+17BA8; [7D 7B 82, 05, 05]
+17BA9; [7D 7B 84, 05, 05]
+17BAA; [7D 7B 86, 05, 05]
+17BAB; [7D 7B 88, 05, 05]
+17BAC; [7D 7B 8A, 05, 05]
+17BAD; [7D 7B 8C, 05, 05]
+17BAE; [7D 7B 8E, 05, 05]
+17BAF; [7D 7B 90, 05, 05]
+17BB0; [7D 7B 92, 05, 05]
+17BB1; [7D 7B 94, 05, 05]
+17BB2; [7D 7B 96, 05, 05]
+17BB3; [7D 7B 98, 05, 05]
+17BB4; [7D 7B 9A, 05, 05]
+17BB5; [7D 7B 9C, 05, 05]
+17BB6; [7D 7B 9E, 05, 05]
+17BB7; [7D 7B A0, 05, 05]
+17BB8; [7D 7B A2, 05, 05]
+17BB9; [7D 7B A4, 05, 05]
+17BBA; [7D 7B A6, 05, 05]
+17BBB; [7D 7B A8, 05, 05]
+17BBC; [7D 7B AA, 05, 05]
+17BBD; [7D 7B AC, 05, 05]
+17BBE; [7D 7B AE, 05, 05]
+17BBF; [7D 7B B0, 05, 05]
+17BC0; [7D 7B B2, 05, 05]
+17BC1; [7D 7B B4, 05, 05]
+17BC2; [7D 7B B6, 05, 05]
+17BC3; [7D 7B B8, 05, 05]
+17BC4; [7D 7B BA, 05, 05]
+17BC5; [7D 7B BC, 05, 05]
+17BC6; [7D 7B BE, 05, 05]
+17BC7; [7D 7B C0, 05, 05]
+17BC8; [7D 7B C2, 05, 05]
+17BC9; [7D 7B C4, 05, 05]
+17BCA; [7D 7B C6, 05, 05]
+17BCB; [7D 7B C8, 05, 05]
+17BCC; [7D 7B CA, 05, 05]
+17BCD; [7D 7B CC, 05, 05]
+17BCE; [7D 7B CE, 05, 05]
+17BCF; [7D 7B D0, 05, 05]
+17BD0; [7D 7B D2, 05, 05]
+17BD1; [7D 7B D4, 05, 05]
+17BD2; [7D 7B D6, 05, 05]
+17BD3; [7D 7B D8, 05, 05]
+17BD4; [7D 7B DA, 05, 05]
+17BD5; [7D 7B DC, 05, 05]
+17BD6; [7D 7B DE, 05, 05]
+17BD7; [7D 7B E0, 05, 05]
+17BD8; [7D 7B E2, 05, 05]
+17BD9; [7D 7B E4, 05, 05]
+17BDA; [7D 7B E6, 05, 05]
+17BDB; [7D 7B E8, 05, 05]
+17BDC; [7D 7B EA, 05, 05]
+17BDD; [7D 7B EC, 05, 05]
+17BDE; [7D 7B EE, 05, 05]
+17BDF; [7D 7B F0, 05, 05]
+17BE0; [7D 7B F2, 05, 05]
+17BE1; [7D 7B F4, 05, 05]
+17BE2; [7D 7B F6, 05, 05]
+17BE3; [7D 7B F8, 05, 05]
+17BE4; [7D 7B FA, 05, 05]
+17BE5; [7D 7B FC, 05, 05]
+17BE6; [7D 7B FE, 05, 05]
+17BE7; [7D 7C 02, 05, 05]
+17BE8; [7D 7C 04, 05, 05]
+17BE9; [7D 7C 06, 05, 05]
+17BEA; [7D 7C 08, 05, 05]
+17BEB; [7D 7C 0A, 05, 05]
+17BEC; [7D 7C 0C, 05, 05]
+17BED; [7D 7C 0E, 05, 05]
+17BEE; [7D 7C 10, 05, 05]
+17BEF; [7D 7C 12, 05, 05]
+17BF0; [7D 7C 14, 05, 05]
+17BF1; [7D 7C 16, 05, 05]
+17BF2; [7D 7C 18, 05, 05]
+17BF3; [7D 7C 1A, 05, 05]
+17BF4; [7D 7C 1C, 05, 05]
+17BF5; [7D 7C 1E, 05, 05]
+17BF6; [7D 7C 20, 05, 05]
+17BF7; [7D 7C 22, 05, 05]
+17BF8; [7D 7C 24, 05, 05]
+17BF9; [7D 7C 26, 05, 05]
+17BFA; [7D 7C 28, 05, 05]
+17BFB; [7D 7C 2A, 05, 05]
+17BFC; [7D 7C 2C, 05, 05]
+17BFD; [7D 7C 2E, 05, 05]
+17BFE; [7D 7C 30, 05, 05]
+17BFF; [7D 7C 32, 05, 05]
+17C00; [7D 7C 34, 05, 05]
+17C01; [7D 7C 36, 05, 05]
+17C02; [7D 7C 38, 05, 05]
+17C03; [7D 7C 3A, 05, 05]
+17C04; [7D 7C 3C, 05, 05]
+17C05; [7D 7C 3E, 05, 05]
+17C06; [7D 7C 40, 05, 05]
+17C07; [7D 7C 42, 05, 05]
+17C08; [7D 7C 44, 05, 05]
+17C09; [7D 7C 46, 05, 05]
+17C0A; [7D 7C 48, 05, 05]
+17C0B; [7D 7C 4A, 05, 05]
+17C0C; [7D 7C 4C, 05, 05]
+17C0D; [7D 7C 4E, 05, 05]
+17C0E; [7D 7C 50, 05, 05]
+17C0F; [7D 7C 52, 05, 05]
+17C10; [7D 7C 54, 05, 05]
+17C11; [7D 7C 56, 05, 05]
+17C12; [7D 7C 58, 05, 05]
+17C13; [7D 7C 5A, 05, 05]
+17C14; [7D 7C 5C, 05, 05]
+17C15; [7D 7C 5E, 05, 05]
+17C16; [7D 7C 60, 05, 05]
+17C17; [7D 7C 62, 05, 05]
+17C18; [7D 7C 64, 05, 05]
+17C19; [7D 7C 66, 05, 05]
+17C1A; [7D 7C 68, 05, 05]
+17C1B; [7D 7C 6A, 05, 05]
+17C1C; [7D 7C 6C, 05, 05]
+17C1D; [7D 7C 6E, 05, 05]
+17C1E; [7D 7C 70, 05, 05]
+17C1F; [7D 7C 72, 05, 05]
+17C20; [7D 7C 74, 05, 05]
+17C21; [7D 7C 76, 05, 05]
+17C22; [7D 7C 78, 05, 05]
+17C23; [7D 7C 7A, 05, 05]
+17C24; [7D 7C 7C, 05, 05]
+17C25; [7D 7C 7E, 05, 05]
+17C26; [7D 7C 80, 05, 05]
+17C27; [7D 7C 82, 05, 05]
+17C28; [7D 7C 84, 05, 05]
+17C29; [7D 7C 86, 05, 05]
+17C2A; [7D 7C 88, 05, 05]
+17C2B; [7D 7C 8A, 05, 05]
+17C2C; [7D 7C 8C, 05, 05]
+17C2D; [7D 7C 8E, 05, 05]
+17C2E; [7D 7C 90, 05, 05]
+17C2F; [7D 7C 92, 05, 05]
+17C30; [7D 7C 94, 05, 05]
+17C31; [7D 7C 96, 05, 05]
+17C32; [7D 7C 98, 05, 05]
+17C33; [7D 7C 9A, 05, 05]
+17C34; [7D 7C 9C, 05, 05]
+17C35; [7D 7C 9E, 05, 05]
+17C36; [7D 7C A0, 05, 05]
+17C37; [7D 7C A2, 05, 05]
+17C38; [7D 7C A4, 05, 05]
+17C39; [7D 7C A6, 05, 05]
+17C3A; [7D 7C A8, 05, 05]
+17C3B; [7D 7C AA, 05, 05]
+17C3C; [7D 7C AC, 05, 05]
+17C3D; [7D 7C AE, 05, 05]
+17C3E; [7D 7C B0, 05, 05]
+17C3F; [7D 7C B2, 05, 05]
+17C40; [7D 7C B4, 05, 05]
+17C41; [7D 7C B6, 05, 05]
+17C42; [7D 7C B8, 05, 05]
+17C43; [7D 7C BA, 05, 05]
+17C44; [7D 7C BC, 05, 05]
+17C45; [7D 7C BE, 05, 05]
+17C46; [7D 7C C0, 05, 05]
+17C47; [7D 7C C2, 05, 05]
+17C48; [7D 7C C4, 05, 05]
+17C49; [7D 7C C6, 05, 05]
+17C4A; [7D 7C C8, 05, 05]
+17C4B; [7D 7C CA, 05, 05]
+17C4C; [7D 7C CC, 05, 05]
+17C4D; [7D 7C CE, 05, 05]
+17C4E; [7D 7C D0, 05, 05]
+17C4F; [7D 7C D2, 05, 05]
+17C50; [7D 7C D4, 05, 05]
+17C51; [7D 7C D6, 05, 05]
+17C52; [7D 7C D8, 05, 05]
+17C53; [7D 7C DA, 05, 05]
+17C54; [7D 7C DC, 05, 05]
+17C55; [7D 7C DE, 05, 05]
+17C56; [7D 7C E0, 05, 05]
+17C57; [7D 7C E2, 05, 05]
+17C58; [7D 7C E4, 05, 05]
+17C59; [7D 7C E6, 05, 05]
+17C5A; [7D 7C E8, 05, 05]
+17C5B; [7D 7C EA, 05, 05]
+17C5C; [7D 7C EC, 05, 05]
+17C5D; [7D 7C EE, 05, 05]
+17C5E; [7D 7C F0, 05, 05]
+17C5F; [7D 7C F2, 05, 05]
+17C60; [7D 7C F4, 05, 05]
+17C61; [7D 7C F6, 05, 05]
+17C62; [7D 7C F8, 05, 05]
+17C63; [7D 7C FA, 05, 05]
+17C64; [7D 7C FC, 05, 05]
+17C65; [7D 7C FE, 05, 05]
+17C66; [7D 7D 02, 05, 05]
+17C67; [7D 7D 04, 05, 05]
+17C68; [7D 7D 06, 05, 05]
+17C69; [7D 7D 08, 05, 05]
+17C6A; [7D 7D 0A, 05, 05]
+17C6B; [7D 7D 0C, 05, 05]
+17C6C; [7D 7D 0E, 05, 05]
+17C6D; [7D 7D 10, 05, 05]
+17C6E; [7D 7D 12, 05, 05]
+17C6F; [7D 7D 14, 05, 05]
+17C70; [7D 7D 16, 05, 05]
+17C71; [7D 7D 18, 05, 05]
+17C72; [7D 7D 1A, 05, 05]
+17C73; [7D 7D 1C, 05, 05]
+17C74; [7D 7D 1E, 05, 05]
+17C75; [7D 7D 20, 05, 05]
+17C76; [7D 7D 22, 05, 05]
+17C77; [7D 7D 24, 05, 05]
+17C78; [7D 7D 26, 05, 05]
+17C79; [7D 7D 28, 05, 05]
+17C7A; [7D 7D 2A, 05, 05]
+17C7B; [7D 7D 2C, 05, 05]
+17C7C; [7D 7D 2E, 05, 05]
+17C7D; [7D 7D 30, 05, 05]
+17C7E; [7D 7D 32, 05, 05]
+17C7F; [7D 7D 34, 05, 05]
+17C80; [7D 7D 36, 05, 05]
+17C81; [7D 7D 38, 05, 05]
+17C82; [7D 7D 3A, 05, 05]
+17C83; [7D 7D 3C, 05, 05]
+17C84; [7D 7D 3E, 05, 05]
+17C85; [7D 7D 40, 05, 05]
+17C86; [7D 7D 42, 05, 05]
+17C87; [7D 7D 44, 05, 05]
+17C88; [7D 7D 46, 05, 05]
+17C89; [7D 7D 48, 05, 05]
+17C8A; [7D 7D 4A, 05, 05]
+17C8B; [7D 7D 4C, 05, 05]
+17C8C; [7D 7D 4E, 05, 05]
+17C8D; [7D 7D 50, 05, 05]
+17C8E; [7D 7D 52, 05, 05]
+17C8F; [7D 7D 54, 05, 05]
+17C90; [7D 7D 56, 05, 05]
+17C91; [7D 7D 58, 05, 05]
+17C92; [7D 7D 5A, 05, 05]
+17C93; [7D 7D 5C, 05, 05]
+17C94; [7D 7D 5E, 05, 05]
+17C95; [7D 7D 60, 05, 05]
+17C96; [7D 7D 62, 05, 05]
+17C97; [7D 7D 64, 05, 05]
+17C98; [7D 7D 66, 05, 05]
+17C99; [7D 7D 68, 05, 05]
+17C9A; [7D 7D 6A, 05, 05]
+17C9B; [7D 7D 6C, 05, 05]
+17C9C; [7D 7D 6E, 05, 05]
+17C9D; [7D 7D 70, 05, 05]
+17C9E; [7D 7D 72, 05, 05]
+17C9F; [7D 7D 74, 05, 05]
+17CA0; [7D 7D 76, 05, 05]
+17CA1; [7D 7D 78, 05, 05]
+17CA2; [7D 7D 7A, 05, 05]
+17CA3; [7D 7D 7C, 05, 05]
+17CA4; [7D 7D 7E, 05, 05]
+17CA5; [7D 7D 80, 05, 05]
+17CA6; [7D 7D 82, 05, 05]
+17CA7; [7D 7D 84, 05, 05]
+17CA8; [7D 7D 86, 05, 05]
+17CA9; [7D 7D 88, 05, 05]
+17CAA; [7D 7D 8A, 05, 05]
+17CAB; [7D 7D 8C, 05, 05]
+17CAC; [7D 7D 8E, 05, 05]
+17CAD; [7D 7D 90, 05, 05]
+17CAE; [7D 7D 92, 05, 05]
+17CAF; [7D 7D 94, 05, 05]
+17CB0; [7D 7D 96, 05, 05]
+17CB1; [7D 7D 98, 05, 05]
+17CB2; [7D 7D 9A, 05, 05]
+17CB3; [7D 7D 9C, 05, 05]
+17CB4; [7D 7D 9E, 05, 05]
+17CB5; [7D 7D A0, 05, 05]
+17CB6; [7D 7D A2, 05, 05]
+17CB7; [7D 7D A4, 05, 05]
+17CB8; [7D 7D A6, 05, 05]
+17CB9; [7D 7D A8, 05, 05]
+17CBA; [7D 7D AA, 05, 05]
+17CBB; [7D 7D AC, 05, 05]
+17CBC; [7D 7D AE, 05, 05]
+17CBD; [7D 7D B0, 05, 05]
+17CBE; [7D 7D B2, 05, 05]
+17CBF; [7D 7D B4, 05, 05]
+17CC0; [7D 7D B6, 05, 05]
+17CC1; [7D 7D B8, 05, 05]
+17CC2; [7D 7D BA, 05, 05]
+17CC3; [7D 7D BC, 05, 05]
+17CC4; [7D 7D BE, 05, 05]
+17CC5; [7D 7D C0, 05, 05]
+17CC6; [7D 7D C2, 05, 05]
+17CC7; [7D 7D C4, 05, 05]
+17CC8; [7D 7D C6, 05, 05]
+17CC9; [7D 7D C8, 05, 05]
+17CCA; [7D 7D CA, 05, 05]
+17CCB; [7D 7D CC, 05, 05]
+17CCC; [7D 7D CE, 05, 05]
+17CCD; [7D 7D D0, 05, 05]
+17CCE; [7D 7D D2, 05, 05]
+17CCF; [7D 7D D4, 05, 05]
+17CD0; [7D 7D D6, 05, 05]
+17CD1; [7D 7D D8, 05, 05]
+17CD2; [7D 7D DA, 05, 05]
+17CD3; [7D 7D DC, 05, 05]
+17CD4; [7D 7D DE, 05, 05]
+17CD5; [7D 7D E0, 05, 05]
+17CD6; [7D 7D E2, 05, 05]
+17CD7; [7D 7D E4, 05, 05]
+17CD8; [7D 7D E6, 05, 05]
+17CD9; [7D 7D E8, 05, 05]
+17CDA; [7D 7D EA, 05, 05]
+17CDB; [7D 7D EC, 05, 05]
+17CDC; [7D 7D EE, 05, 05]
+17CDD; [7D 7D F0, 05, 05]
+17CDE; [7D 7D F2, 05, 05]
+17CDF; [7D 7D F4, 05, 05]
+17CE0; [7D 7D F6, 05, 05]
+17CE1; [7D 7D F8, 05, 05]
+17CE2; [7D 7D FA, 05, 05]
+17CE3; [7D 7D FC, 05, 05]
+17CE4; [7D 7D FE, 05, 05]
+17CE5; [7D 7E 02, 05, 05]
+17CE6; [7D 7E 04, 05, 05]
+17CE7; [7D 7E 06, 05, 05]
+17CE8; [7D 7E 08, 05, 05]
+17CE9; [7D 7E 0A, 05, 05]
+17CEA; [7D 7E 0C, 05, 05]
+17CEB; [7D 7E 0E, 05, 05]
+17CEC; [7D 7E 10, 05, 05]
+17CED; [7D 7E 12, 05, 05]
+17CEE; [7D 7E 14, 05, 05]
+17CEF; [7D 7E 16, 05, 05]
+17CF0; [7D 7E 18, 05, 05]
+17CF1; [7D 7E 1A, 05, 05]
+17CF2; [7D 7E 1C, 05, 05]
+17CF3; [7D 7E 1E, 05, 05]
+17CF4; [7D 7E 20, 05, 05]
+17CF5; [7D 7E 22, 05, 05]
+17CF6; [7D 7E 24, 05, 05]
+17CF7; [7D 7E 26, 05, 05]
+17CF8; [7D 7E 28, 05, 05]
+17CF9; [7D 7E 2A, 05, 05]
+17CFA; [7D 7E 2C, 05, 05]
+17CFB; [7D 7E 2E, 05, 05]
+17CFC; [7D 7E 30, 05, 05]
+17CFD; [7D 7E 32, 05, 05]
+17CFE; [7D 7E 34, 05, 05]
+17CFF; [7D 7E 36, 05, 05]
+17D00; [7D 7E 38, 05, 05]
+17D01; [7D 7E 3A, 05, 05]
+17D02; [7D 7E 3C, 05, 05]
+17D03; [7D 7E 3E, 05, 05]
+17D04; [7D 7E 40, 05, 05]
+17D05; [7D 7E 42, 05, 05]
+17D06; [7D 7E 44, 05, 05]
+17D07; [7D 7E 46, 05, 05]
+17D08; [7D 7E 48, 05, 05]
+17D09; [7D 7E 4A, 05, 05]
+17D0A; [7D 7E 4C, 05, 05]
+17D0B; [7D 7E 4E, 05, 05]
+17D0C; [7D 7E 50, 05, 05]
+17D0D; [7D 7E 52, 05, 05]
+17D0E; [7D 7E 54, 05, 05]
+17D0F; [7D 7E 56, 05, 05]
+17D10; [7D 7E 58, 05, 05]
+17D11; [7D 7E 5A, 05, 05]
+17D12; [7D 7E 5C, 05, 05]
+17D13; [7D 7E 5E, 05, 05]
+17D14; [7D 7E 60, 05, 05]
+17D15; [7D 7E 62, 05, 05]
+17D16; [7D 7E 64, 05, 05]
+17D17; [7D 7E 66, 05, 05]
+17D18; [7D 7E 68, 05, 05]
+17D19; [7D 7E 6A, 05, 05]
+17D1A; [7D 7E 6C, 05, 05]
+17D1B; [7D 7E 6E, 05, 05]
+17D1C; [7D 7E 70, 05, 05]
+17D1D; [7D 7E 72, 05, 05]
+17D1E; [7D 7E 74, 05, 05]
+17D1F; [7D 7E 76, 05, 05]
+17D20; [7D 7E 78, 05, 05]
+17D21; [7D 7E 7A, 05, 05]
+17D22; [7D 7E 7C, 05, 05]
+17D23; [7D 7E 7E, 05, 05]
+17D24; [7D 7E 80, 05, 05]
+17D25; [7D 7E 82, 05, 05]
+17D26; [7D 7E 84, 05, 05]
+17D27; [7D 7E 86, 05, 05]
+17D28; [7D 7E 88, 05, 05]
+17D29; [7D 7E 8A, 05, 05]
+17D2A; [7D 7E 8C, 05, 05]
+17D2B; [7D 7E 8E, 05, 05]
+17D2C; [7D 7E 90, 05, 05]
+17D2D; [7D 7E 92, 05, 05]
+17D2E; [7D 7E 94, 05, 05]
+17D2F; [7D 7E 96, 05, 05]
+17D30; [7D 7E 98, 05, 05]
+17D31; [7D 7E 9A, 05, 05]
+17D32; [7D 7E 9C, 05, 05]
+17D33; [7D 7E 9E, 05, 05]
+17D34; [7D 7E A0, 05, 05]
+17D35; [7D 7E A2, 05, 05]
+17D36; [7D 7E A4, 05, 05]
+17D37; [7D 7E A6, 05, 05]
+17D38; [7D 7E A8, 05, 05]
+17D39; [7D 7E AA, 05, 05]
+17D3A; [7D 7E AC, 05, 05]
+17D3B; [7D 7E AE, 05, 05]
+17D3C; [7D 7E B0, 05, 05]
+17D3D; [7D 7E B2, 05, 05]
+17D3E; [7D 7E B4, 05, 05]
+17D3F; [7D 7E B6, 05, 05]
+17D40; [7D 7E B8, 05, 05]
+17D41; [7D 7E BA, 05, 05]
+17D42; [7D 7E BC, 05, 05]
+17D43; [7D 7E BE, 05, 05]
+17D44; [7D 7E C0, 05, 05]
+17D45; [7D 7E C2, 05, 05]
+17D46; [7D 7E C4, 05, 05]
+17D47; [7D 7E C6, 05, 05]
+17D48; [7D 7E C8, 05, 05]
+17D49; [7D 7E CA, 05, 05]
+17D4A; [7D 7E CC, 05, 05]
+17D4B; [7D 7E CE, 05, 05]
+17D4C; [7D 7E D0, 05, 05]
+17D4D; [7D 7E D2, 05, 05]
+17D4E; [7D 7E D4, 05, 05]
+17D4F; [7D 7E D6, 05, 05]
+17D50; [7D 7E D8, 05, 05]
+17D51; [7D 7E DA, 05, 05]
+17D52; [7D 7E DC, 05, 05]
+17D53; [7D 7E DE, 05, 05]
+17D54; [7D 7E E0, 05, 05]
+17D55; [7D 7E E2, 05, 05]
+17D56; [7D 7E E4, 05, 05]
+17D57; [7D 7E E6, 05, 05]
+17D58; [7D 7E E8, 05, 05]
+17D59; [7D 7E EA, 05, 05]
+17D5A; [7D 7E EC, 05, 05]
+17D5B; [7D 7E EE, 05, 05]
+17D5C; [7D 7E F0, 05, 05]
+17D5D; [7D 7E F2, 05, 05]
+17D5E; [7D 7E F4, 05, 05]
+17D5F; [7D 7E F6, 05, 05]
+17D60; [7D 7E F8, 05, 05]
+17D61; [7D 7E FA, 05, 05]
+17D62; [7D 7E FC, 05, 05]
+17D63; [7D 7E FE, 05, 05]
+17D64; [7D 7F 02, 05, 05]
+17D65; [7D 7F 04, 05, 05]
+17D66; [7D 7F 06, 05, 05]
+17D67; [7D 7F 08, 05, 05]
+17D68; [7D 7F 0A, 05, 05]
+17D69; [7D 7F 0C, 05, 05]
+17D6A; [7D 7F 0E, 05, 05]
+17D6B; [7D 7F 10, 05, 05]
+17D6C; [7D 7F 12, 05, 05]
+17D6D; [7D 7F 14, 05, 05]
+17D6E; [7D 7F 16, 05, 05]
+17D6F; [7D 7F 18, 05, 05]
+17D70; [7D 7F 1A, 05, 05]
+17D71; [7D 7F 1C, 05, 05]
+17D72; [7D 7F 1E, 05, 05]
+17D73; [7D 7F 20, 05, 05]
+17D74; [7D 7F 22, 05, 05]
+17D75; [7D 7F 24, 05, 05]
+17D76; [7D 7F 26, 05, 05]
+17D77; [7D 7F 28, 05, 05]
+17D78; [7D 7F 2A, 05, 05]
+17D79; [7D 7F 2C, 05, 05]
+17D7A; [7D 7F 2E, 05, 05]
+17D7B; [7D 7F 30, 05, 05]
+17D7C; [7D 7F 32, 05, 05]
+17D7D; [7D 7F 34, 05, 05]
+17D7E; [7D 7F 36, 05, 05]
+17D7F; [7D 7F 38, 05, 05]
+17D80; [7D 7F 3A, 05, 05]
+17D81; [7D 7F 3C, 05, 05]
+17D82; [7D 7F 3E, 05, 05]
+17D83; [7D 7F 40, 05, 05]
+17D84; [7D 7F 42, 05, 05]
+17D85; [7D 7F 44, 05, 05]
+17D86; [7D 7F 46, 05, 05]
+17D87; [7D 7F 48, 05, 05]
+17D88; [7D 7F 4A, 05, 05]
+17D89; [7D 7F 4C, 05, 05]
+17D8A; [7D 7F 4E, 05, 05]
+17D8B; [7D 7F 50, 05, 05]
+17D8C; [7D 7F 52, 05, 05]
+17D8D; [7D 7F 54, 05, 05]
+17D8E; [7D 7F 56, 05, 05]
+17D8F; [7D 7F 58, 05, 05]
+17D90; [7D 7F 5A, 05, 05]
+17D91; [7D 7F 5C, 05, 05]
+17D92; [7D 7F 5E, 05, 05]
+17D93; [7D 7F 60, 05, 05]
+17D94; [7D 7F 62, 05, 05]
+17D95; [7D 7F 64, 05, 05]
+17D96; [7D 7F 66, 05, 05]
+17D97; [7D 7F 68, 05, 05]
+17D98; [7D 7F 6A, 05, 05]
+17D99; [7D 7F 6C, 05, 05]
+17D9A; [7D 7F 6E, 05, 05]
+17D9B; [7D 7F 70, 05, 05]
+17D9C; [7D 7F 72, 05, 05]
+17D9D; [7D 7F 74, 05, 05]
+17D9E; [7D 7F 76, 05, 05]
+17D9F; [7D 7F 78, 05, 05]
+17DA0; [7D 7F 7A, 05, 05]
+17DA1; [7D 7F 7C, 05, 05]
+17DA2; [7D 7F 7E, 05, 05]
+17DA3; [7D 7F 80, 05, 05]
+17DA4; [7D 7F 82, 05, 05]
+17DA5; [7D 7F 84, 05, 05]
+17DA6; [7D 7F 86, 05, 05]
+17DA7; [7D 7F 88, 05, 05]
+17DA8; [7D 7F 8A, 05, 05]
+17DA9; [7D 7F 8C, 05, 05]
+17DAA; [7D 7F 8E, 05, 05]
+17DAB; [7D 7F 90, 05, 05]
+17DAC; [7D 7F 92, 05, 05]
+17DAD; [7D 7F 94, 05, 05]
+17DAE; [7D 7F 96, 05, 05]
+17DAF; [7D 7F 98, 05, 05]
+17DB0; [7D 7F 9A, 05, 05]
+17DB1; [7D 7F 9C, 05, 05]
+17DB2; [7D 7F 9E, 05, 05]
+17DB3; [7D 7F A0, 05, 05]
+17DB4; [7D 7F A2, 05, 05]
+17DB5; [7D 7F A4, 05, 05]
+17DB6; [7D 7F A6, 05, 05]
+17DB7; [7D 7F A8, 05, 05]
+17DB8; [7D 7F AA, 05, 05]
+17DB9; [7D 7F AC, 05, 05]
+17DBA; [7D 7F AE, 05, 05]
+17DBB; [7D 7F B0, 05, 05]
+17DBC; [7D 7F B2, 05, 05]
+17DBD; [7D 7F B4, 05, 05]
+17DBE; [7D 7F B6, 05, 05]
+17DBF; [7D 7F B8, 05, 05]
+17DC0; [7D 7F BA, 05, 05]
+17DC1; [7D 7F BC, 05, 05]
+17DC2; [7D 7F BE, 05, 05]
+17DC3; [7D 7F C0, 05, 05]
+17DC4; [7D 7F C2, 05, 05]
+17DC5; [7D 7F C4, 05, 05]
+17DC6; [7D 7F C6, 05, 05]
+17DC7; [7D 7F C8, 05, 05]
+17DC8; [7D 7F CA, 05, 05]
+17DC9; [7D 7F CC, 05, 05]
+17DCA; [7D 7F CE, 05, 05]
+17DCB; [7D 7F D0, 05, 05]
+17DCC; [7D 7F D2, 05, 05]
+17DCD; [7D 7F D4, 05, 05]
+17DCE; [7D 7F D6, 05, 05]
+17DCF; [7D 7F D8, 05, 05]
+17DD0; [7D 7F DA, 05, 05]
+17DD1; [7D 7F DC, 05, 05]
+17DD2; [7D 7F DE, 05, 05]
+17DD3; [7D 7F E0, 05, 05]
+17DD4; [7D 7F E2, 05, 05]
+17DD5; [7D 7F E4, 05, 05]
+17DD6; [7D 7F E6, 05, 05]
+17DD7; [7D 7F E8, 05, 05]
+17DD8; [7D 7F EA, 05, 05]
+17DD9; [7D 7F EC, 05, 05]
+17DDA; [7D 7F EE, 05, 05]
+17DDB; [7D 7F F0, 05, 05]
+17DDC; [7D 7F F2, 05, 05]
+17DDD; [7D 7F F4, 05, 05]
+17DDE; [7D 7F F6, 05, 05]
+17DDF; [7D 7F F8, 05, 05]
+17DE0; [7D 7F FA, 05, 05]
+17DE1; [7D 7F FC, 05, 05]
+17DE2; [7D 7F FE, 05, 05]
+17DE3; [7D 80 02, 05, 05]
+17DE4; [7D 80 04, 05, 05]
+17DE5; [7D 80 06, 05, 05]
+17DE6; [7D 80 08, 05, 05]
+17DE7; [7D 80 0A, 05, 05]
+17DE8; [7D 80 0C, 05, 05]
+17DE9; [7D 80 0E, 05, 05]
+17DEA; [7D 80 10, 05, 05]
+17DEB; [7D 80 12, 05, 05]
+17DEC; [7D 80 14, 05, 05]
+17DED; [7D 80 16, 05, 05]
+17DEE; [7D 80 18, 05, 05]
+17DEF; [7D 80 1A, 05, 05]
+17DF0; [7D 80 1C, 05, 05]
+17DF1; [7D 80 1E, 05, 05]
+17DF2; [7D 80 20, 05, 05]
+17DF3; [7D 80 22, 05, 05]
+17DF4; [7D 80 24, 05, 05]
+17DF5; [7D 80 26, 05, 05]
+17DF6; [7D 80 28, 05, 05]
+17DF7; [7D 80 2A, 05, 05]
+17DF8; [7D 80 2C, 05, 05]
+17DF9; [7D 80 2E, 05, 05]
+17DFA; [7D 80 30, 05, 05]
+17DFB; [7D 80 32, 05, 05]
+17DFC; [7D 80 34, 05, 05]
+17DFD; [7D 80 36, 05, 05]
+17DFE; [7D 80 38, 05, 05]
+17DFF; [7D 80 3A, 05, 05]
+17E00; [7D 80 3C, 05, 05]
+17E01; [7D 80 3E, 05, 05]
+17E02; [7D 80 40, 05, 05]
+17E03; [7D 80 42, 05, 05]
+17E04; [7D 80 44, 05, 05]
+17E05; [7D 80 46, 05, 05]
+17E06; [7D 80 48, 05, 05]
+17E07; [7D 80 4A, 05, 05]
+17E08; [7D 80 4C, 05, 05]
+17E09; [7D 80 4E, 05, 05]
+17E0A; [7D 80 50, 05, 05]
+17E0B; [7D 80 52, 05, 05]
+17E0C; [7D 80 54, 05, 05]
+17E0D; [7D 80 56, 05, 05]
+17E0E; [7D 80 58, 05, 05]
+17E0F; [7D 80 5A, 05, 05]
+17E10; [7D 80 5C, 05, 05]
+17E11; [7D 80 5E, 05, 05]
+17E12; [7D 80 60, 05, 05]
+17E13; [7D 80 62, 05, 05]
+17E14; [7D 80 64, 05, 05]
+17E15; [7D 80 66, 05, 05]
+17E16; [7D 80 68, 05, 05]
+17E17; [7D 80 6A, 05, 05]
+17E18; [7D 80 6C, 05, 05]
+17E19; [7D 80 6E, 05, 05]
+17E1A; [7D 80 70, 05, 05]
+17E1B; [7D 80 72, 05, 05]
+17E1C; [7D 80 74, 05, 05]
+17E1D; [7D 80 76, 05, 05]
+17E1E; [7D 80 78, 05, 05]
+17E1F; [7D 80 7A, 05, 05]
+17E20; [7D 80 7C, 05, 05]
+17E21; [7D 80 7E, 05, 05]
+17E22; [7D 80 80, 05, 05]
+17E23; [7D 80 82, 05, 05]
+17E24; [7D 80 84, 05, 05]
+17E25; [7D 80 86, 05, 05]
+17E26; [7D 80 88, 05, 05]
+17E27; [7D 80 8A, 05, 05]
+17E28; [7D 80 8C, 05, 05]
+17E29; [7D 80 8E, 05, 05]
+17E2A; [7D 80 90, 05, 05]
+17E2B; [7D 80 92, 05, 05]
+17E2C; [7D 80 94, 05, 05]
+17E2D; [7D 80 96, 05, 05]
+17E2E; [7D 80 98, 05, 05]
+17E2F; [7D 80 9A, 05, 05]
+17E30; [7D 80 9C, 05, 05]
+17E31; [7D 80 9E, 05, 05]
+17E32; [7D 80 A0, 05, 05]
+17E33; [7D 80 A2, 05, 05]
+17E34; [7D 80 A4, 05, 05]
+17E35; [7D 80 A6, 05, 05]
+17E36; [7D 80 A8, 05, 05]
+17E37; [7D 80 AA, 05, 05]
+17E38; [7D 80 AC, 05, 05]
+17E39; [7D 80 AE, 05, 05]
+17E3A; [7D 80 B0, 05, 05]
+17E3B; [7D 80 B2, 05, 05]
+17E3C; [7D 80 B4, 05, 05]
+17E3D; [7D 80 B6, 05, 05]
+17E3E; [7D 80 B8, 05, 05]
+17E3F; [7D 80 BA, 05, 05]
+17E40; [7D 80 BC, 05, 05]
+17E41; [7D 80 BE, 05, 05]
+17E42; [7D 80 C0, 05, 05]
+17E43; [7D 80 C2, 05, 05]
+17E44; [7D 80 C4, 05, 05]
+17E45; [7D 80 C6, 05, 05]
+17E46; [7D 80 C8, 05, 05]
+17E47; [7D 80 CA, 05, 05]
+17E48; [7D 80 CC, 05, 05]
+17E49; [7D 80 CE, 05, 05]
+17E4A; [7D 80 D0, 05, 05]
+17E4B; [7D 80 D2, 05, 05]
+17E4C; [7D 80 D4, 05, 05]
+17E4D; [7D 80 D6, 05, 05]
+17E4E; [7D 80 D8, 05, 05]
+17E4F; [7D 80 DA, 05, 05]
+17E50; [7D 80 DC, 05, 05]
+17E51; [7D 80 DE, 05, 05]
+17E52; [7D 80 E0, 05, 05]
+17E53; [7D 80 E2, 05, 05]
+17E54; [7D 80 E4, 05, 05]
+17E55; [7D 80 E6, 05, 05]
+17E56; [7D 80 E8, 05, 05]
+17E57; [7D 80 EA, 05, 05]
+17E58; [7D 80 EC, 05, 05]
+17E59; [7D 80 EE, 05, 05]
+17E5A; [7D 80 F0, 05, 05]
+17E5B; [7D 80 F2, 05, 05]
+17E5C; [7D 80 F4, 05, 05]
+17E5D; [7D 80 F6, 05, 05]
+17E5E; [7D 80 F8, 05, 05]
+17E5F; [7D 80 FA, 05, 05]
+17E60; [7D 80 FC, 05, 05]
+17E61; [7D 80 FE, 05, 05]
+17E62; [7D 81 02, 05, 05]
+17E63; [7D 81 04, 05, 05]
+17E64; [7D 81 06, 05, 05]
+17E65; [7D 81 08, 05, 05]
+17E66; [7D 81 0A, 05, 05]
+17E67; [7D 81 0C, 05, 05]
+17E68; [7D 81 0E, 05, 05]
+17E69; [7D 81 10, 05, 05]
+17E6A; [7D 81 12, 05, 05]
+17E6B; [7D 81 14, 05, 05]
+17E6C; [7D 81 16, 05, 05]
+17E6D; [7D 81 18, 05, 05]
+17E6E; [7D 81 1A, 05, 05]
+17E6F; [7D 81 1C, 05, 05]
+17E70; [7D 81 1E, 05, 05]
+17E71; [7D 81 20, 05, 05]
+17E72; [7D 81 22, 05, 05]
+17E73; [7D 81 24, 05, 05]
+17E74; [7D 81 26, 05, 05]
+17E75; [7D 81 28, 05, 05]
+17E76; [7D 81 2A, 05, 05]
+17E77; [7D 81 2C, 05, 05]
+17E78; [7D 81 2E, 05, 05]
+17E79; [7D 81 30, 05, 05]
+17E7A; [7D 81 32, 05, 05]
+17E7B; [7D 81 34, 05, 05]
+17E7C; [7D 81 36, 05, 05]
+17E7D; [7D 81 38, 05, 05]
+17E7E; [7D 81 3A, 05, 05]
+17E7F; [7D 81 3C, 05, 05]
+17E80; [7D 81 3E, 05, 05]
+17E81; [7D 81 40, 05, 05]
+17E82; [7D 81 42, 05, 05]
+17E83; [7D 81 44, 05, 05]
+17E84; [7D 81 46, 05, 05]
+17E85; [7D 81 48, 05, 05]
+17E86; [7D 81 4A, 05, 05]
+17E87; [7D 81 4C, 05, 05]
+17E88; [7D 81 4E, 05, 05]
+17E89; [7D 81 50, 05, 05]
+17E8A; [7D 81 52, 05, 05]
+17E8B; [7D 81 54, 05, 05]
+17E8C; [7D 81 56, 05, 05]
+17E8D; [7D 81 58, 05, 05]
+17E8E; [7D 81 5A, 05, 05]
+17E8F; [7D 81 5C, 05, 05]
+17E90; [7D 81 5E, 05, 05]
+17E91; [7D 81 60, 05, 05]
+17E92; [7D 81 62, 05, 05]
+17E93; [7D 81 64, 05, 05]
+17E94; [7D 81 66, 05, 05]
+17E95; [7D 81 68, 05, 05]
+17E96; [7D 81 6A, 05, 05]
+17E97; [7D 81 6C, 05, 05]
+17E98; [7D 81 6E, 05, 05]
+17E99; [7D 81 70, 05, 05]
+17E9A; [7D 81 72, 05, 05]
+17E9B; [7D 81 74, 05, 05]
+17E9C; [7D 81 76, 05, 05]
+17E9D; [7D 81 78, 05, 05]
+17E9E; [7D 81 7A, 05, 05]
+17E9F; [7D 81 7C, 05, 05]
+17EA0; [7D 81 7E, 05, 05]
+17EA1; [7D 81 80, 05, 05]
+17EA2; [7D 81 82, 05, 05]
+17EA3; [7D 81 84, 05, 05]
+17EA4; [7D 81 86, 05, 05]
+17EA5; [7D 81 88, 05, 05]
+17EA6; [7D 81 8A, 05, 05]
+17EA7; [7D 81 8C, 05, 05]
+17EA8; [7D 81 8E, 05, 05]
+17EA9; [7D 81 90, 05, 05]
+17EAA; [7D 81 92, 05, 05]
+17EAB; [7D 81 94, 05, 05]
+17EAC; [7D 81 96, 05, 05]
+17EAD; [7D 81 98, 05, 05]
+17EAE; [7D 81 9A, 05, 05]
+17EAF; [7D 81 9C, 05, 05]
+17EB0; [7D 81 9E, 05, 05]
+17EB1; [7D 81 A0, 05, 05]
+17EB2; [7D 81 A2, 05, 05]
+17EB3; [7D 81 A4, 05, 05]
+17EB4; [7D 81 A6, 05, 05]
+17EB5; [7D 81 A8, 05, 05]
+17EB6; [7D 81 AA, 05, 05]
+17EB7; [7D 81 AC, 05, 05]
+17EB8; [7D 81 AE, 05, 05]
+17EB9; [7D 81 B0, 05, 05]
+17EBA; [7D 81 B2, 05, 05]
+17EBB; [7D 81 B4, 05, 05]
+17EBC; [7D 81 B6, 05, 05]
+17EBD; [7D 81 B8, 05, 05]
+17EBE; [7D 81 BA, 05, 05]
+17EBF; [7D 81 BC, 05, 05]
+17EC0; [7D 81 BE, 05, 05]
+17EC1; [7D 81 C0, 05, 05]
+17EC2; [7D 81 C2, 05, 05]
+17EC3; [7D 81 C4, 05, 05]
+17EC4; [7D 81 C6, 05, 05]
+17EC5; [7D 81 C8, 05, 05]
+17EC6; [7D 81 CA, 05, 05]
+17EC7; [7D 81 CC, 05, 05]
+17EC8; [7D 81 CE, 05, 05]
+17EC9; [7D 81 D0, 05, 05]
+17ECA; [7D 81 D2, 05, 05]
+17ECB; [7D 81 D4, 05, 05]
+17ECC; [7D 81 D6, 05, 05]
+17ECD; [7D 81 D8, 05, 05]
+17ECE; [7D 81 DA, 05, 05]
+17ECF; [7D 81 DC, 05, 05]
+17ED0; [7D 81 DE, 05, 05]
+17ED1; [7D 81 E0, 05, 05]
+17ED2; [7D 81 E2, 05, 05]
+17ED3; [7D 81 E4, 05, 05]
+17ED4; [7D 81 E6, 05, 05]
+17ED5; [7D 81 E8, 05, 05]
+17ED6; [7D 81 EA, 05, 05]
+17ED7; [7D 81 EC, 05, 05]
+17ED8; [7D 81 EE, 05, 05]
+17ED9; [7D 81 F0, 05, 05]
+17EDA; [7D 81 F2, 05, 05]
+17EDB; [7D 81 F4, 05, 05]
+17EDC; [7D 81 F6, 05, 05]
+17EDD; [7D 81 F8, 05, 05]
+17EDE; [7D 81 FA, 05, 05]
+17EDF; [7D 81 FC, 05, 05]
+17EE0; [7D 81 FE, 05, 05]
+17EE1; [7D 82 02, 05, 05]
+17EE2; [7D 82 04, 05, 05]
+17EE3; [7D 82 06, 05, 05]
+17EE4; [7D 82 08, 05, 05]
+17EE5; [7D 82 0A, 05, 05]
+17EE6; [7D 82 0C, 05, 05]
+17EE7; [7D 82 0E, 05, 05]
+17EE8; [7D 82 10, 05, 05]
+17EE9; [7D 82 12, 05, 05]
+17EEA; [7D 82 14, 05, 05]
+17EEB; [7D 82 16, 05, 05]
+17EEC; [7D 82 18, 05, 05]
+17EED; [7D 82 1A, 05, 05]
+17EEE; [7D 82 1C, 05, 05]
+17EEF; [7D 82 1E, 05, 05]
+17EF0; [7D 82 20, 05, 05]
+17EF1; [7D 82 22, 05, 05]
+17EF2; [7D 82 24, 05, 05]
+17EF3; [7D 82 26, 05, 05]
+17EF4; [7D 82 28, 05, 05]
+17EF5; [7D 82 2A, 05, 05]
+17EF6; [7D 82 2C, 05, 05]
+17EF7; [7D 82 2E, 05, 05]
+17EF8; [7D 82 30, 05, 05]
+17EF9; [7D 82 32, 05, 05]
+17EFA; [7D 82 34, 05, 05]
+17EFB; [7D 82 36, 05, 05]
+17EFC; [7D 82 38, 05, 05]
+17EFD; [7D 82 3A, 05, 05]
+17EFE; [7D 82 3C, 05, 05]
+17EFF; [7D 82 3E, 05, 05]
+17F00; [7D 82 40, 05, 05]
+17F01; [7D 82 42, 05, 05]
+17F02; [7D 82 44, 05, 05]
+17F03; [7D 82 46, 05, 05]
+17F04; [7D 82 48, 05, 05]
+17F05; [7D 82 4A, 05, 05]
+17F06; [7D 82 4C, 05, 05]
+17F07; [7D 82 4E, 05, 05]
+17F08; [7D 82 50, 05, 05]
+17F09; [7D 82 52, 05, 05]
+17F0A; [7D 82 54, 05, 05]
+17F0B; [7D 82 56, 05, 05]
+17F0C; [7D 82 58, 05, 05]
+17F0D; [7D 82 5A, 05, 05]
+17F0E; [7D 82 5C, 05, 05]
+17F0F; [7D 82 5E, 05, 05]
+17F10; [7D 82 60, 05, 05]
+17F11; [7D 82 62, 05, 05]
+17F12; [7D 82 64, 05, 05]
+17F13; [7D 82 66, 05, 05]
+17F14; [7D 82 68, 05, 05]
+17F15; [7D 82 6A, 05, 05]
+17F16; [7D 82 6C, 05, 05]
+17F17; [7D 82 6E, 05, 05]
+17F18; [7D 82 70, 05, 05]
+17F19; [7D 82 72, 05, 05]
+17F1A; [7D 82 74, 05, 05]
+17F1B; [7D 82 76, 05, 05]
+17F1C; [7D 82 78, 05, 05]
+17F1D; [7D 82 7A, 05, 05]
+17F1E; [7D 82 7C, 05, 05]
+17F1F; [7D 82 7E, 05, 05]
+17F20; [7D 82 80, 05, 05]
+17F21; [7D 82 82, 05, 05]
+17F22; [7D 82 84, 05, 05]
+17F23; [7D 82 86, 05, 05]
+17F24; [7D 82 88, 05, 05]
+17F25; [7D 82 8A, 05, 05]
+17F26; [7D 82 8C, 05, 05]
+17F27; [7D 82 8E, 05, 05]
+17F28; [7D 82 90, 05, 05]
+17F29; [7D 82 92, 05, 05]
+17F2A; [7D 82 94, 05, 05]
+17F2B; [7D 82 96, 05, 05]
+17F2C; [7D 82 98, 05, 05]
+17F2D; [7D 82 9A, 05, 05]
+17F2E; [7D 82 9C, 05, 05]
+17F2F; [7D 82 9E, 05, 05]
+17F30; [7D 82 A0, 05, 05]
+17F31; [7D 82 A2, 05, 05]
+17F32; [7D 82 A4, 05, 05]
+17F33; [7D 82 A6, 05, 05]
+17F34; [7D 82 A8, 05, 05]
+17F35; [7D 82 AA, 05, 05]
+17F36; [7D 82 AC, 05, 05]
+17F37; [7D 82 AE, 05, 05]
+17F38; [7D 82 B0, 05, 05]
+17F39; [7D 82 B2, 05, 05]
+17F3A; [7D 82 B4, 05, 05]
+17F3B; [7D 82 B6, 05, 05]
+17F3C; [7D 82 B8, 05, 05]
+17F3D; [7D 82 BA, 05, 05]
+17F3E; [7D 82 BC, 05, 05]
+17F3F; [7D 82 BE, 05, 05]
+17F40; [7D 82 C0, 05, 05]
+17F41; [7D 82 C2, 05, 05]
+17F42; [7D 82 C4, 05, 05]
+17F43; [7D 82 C6, 05, 05]
+17F44; [7D 82 C8, 05, 05]
+17F45; [7D 82 CA, 05, 05]
+17F46; [7D 82 CC, 05, 05]
+17F47; [7D 82 CE, 05, 05]
+17F48; [7D 82 D0, 05, 05]
+17F49; [7D 82 D2, 05, 05]
+17F4A; [7D 82 D4, 05, 05]
+17F4B; [7D 82 D6, 05, 05]
+17F4C; [7D 82 D8, 05, 05]
+17F4D; [7D 82 DA, 05, 05]
+17F4E; [7D 82 DC, 05, 05]
+17F4F; [7D 82 DE, 05, 05]
+17F50; [7D 82 E0, 05, 05]
+17F51; [7D 82 E2, 05, 05]
+17F52; [7D 82 E4, 05, 05]
+17F53; [7D 82 E6, 05, 05]
+17F54; [7D 82 E8, 05, 05]
+17F55; [7D 82 EA, 05, 05]
+17F56; [7D 82 EC, 05, 05]
+17F57; [7D 82 EE, 05, 05]
+17F58; [7D 82 F0, 05, 05]
+17F59; [7D 82 F2, 05, 05]
+17F5A; [7D 82 F4, 05, 05]
+17F5B; [7D 82 F6, 05, 05]
+17F5C; [7D 82 F8, 05, 05]
+17F5D; [7D 82 FA, 05, 05]
+17F5E; [7D 82 FC, 05, 05]
+17F5F; [7D 82 FE, 05, 05]
+17F60; [7D 83 02, 05, 05]
+17F61; [7D 83 04, 05, 05]
+17F62; [7D 83 06, 05, 05]
+17F63; [7D 83 08, 05, 05]
+17F64; [7D 83 0A, 05, 05]
+17F65; [7D 83 0C, 05, 05]
+17F66; [7D 83 0E, 05, 05]
+17F67; [7D 83 10, 05, 05]
+17F68; [7D 83 12, 05, 05]
+17F69; [7D 83 14, 05, 05]
+17F6A; [7D 83 16, 05, 05]
+17F6B; [7D 83 18, 05, 05]
+17F6C; [7D 83 1A, 05, 05]
+17F6D; [7D 83 1C, 05, 05]
+17F6E; [7D 83 1E, 05, 05]
+17F6F; [7D 83 20, 05, 05]
+17F70; [7D 83 22, 05, 05]
+17F71; [7D 83 24, 05, 05]
+17F72; [7D 83 26, 05, 05]
+17F73; [7D 83 28, 05, 05]
+17F74; [7D 83 2A, 05, 05]
+17F75; [7D 83 2C, 05, 05]
+17F76; [7D 83 2E, 05, 05]
+17F77; [7D 83 30, 05, 05]
+17F78; [7D 83 32, 05, 05]
+17F79; [7D 83 34, 05, 05]
+17F7A; [7D 83 36, 05, 05]
+17F7B; [7D 83 38, 05, 05]
+17F7C; [7D 83 3A, 05, 05]
+17F7D; [7D 83 3C, 05, 05]
+17F7E; [7D 83 3E, 05, 05]
+17F7F; [7D 83 40, 05, 05]
+17F80; [7D 83 42, 05, 05]
+17F81; [7D 83 44, 05, 05]
+17F82; [7D 83 46, 05, 05]
+17F83; [7D 83 48, 05, 05]
+17F84; [7D 83 4A, 05, 05]
+17F85; [7D 83 4C, 05, 05]
+17F86; [7D 83 4E, 05, 05]
+17F87; [7D 83 50, 05, 05]
+17F88; [7D 83 52, 05, 05]
+17F89; [7D 83 54, 05, 05]
+17F8A; [7D 83 56, 05, 05]
+17F8B; [7D 83 58, 05, 05]
+17F8C; [7D 83 5A, 05, 05]
+17F8D; [7D 83 5C, 05, 05]
+17F8E; [7D 83 5E, 05, 05]
+17F8F; [7D 83 60, 05, 05]
+17F90; [7D 83 62, 05, 05]
+17F91; [7D 83 64, 05, 05]
+17F92; [7D 83 66, 05, 05]
+17F93; [7D 83 68, 05, 05]
+17F94; [7D 83 6A, 05, 05]
+17F95; [7D 83 6C, 05, 05]
+17F96; [7D 83 6E, 05, 05]
+17F97; [7D 83 70, 05, 05]
+17F98; [7D 83 72, 05, 05]
+17F99; [7D 83 74, 05, 05]
+17F9A; [7D 83 76, 05, 05]
+17F9B; [7D 83 78, 05, 05]
+17F9C; [7D 83 7A, 05, 05]
+17F9D; [7D 83 7C, 05, 05]
+17F9E; [7D 83 7E, 05, 05]
+17F9F; [7D 83 80, 05, 05]
+17FA0; [7D 83 82, 05, 05]
+17FA1; [7D 83 84, 05, 05]
+17FA2; [7D 83 86, 05, 05]
+17FA3; [7D 83 88, 05, 05]
+17FA4; [7D 83 8A, 05, 05]
+17FA5; [7D 83 8C, 05, 05]
+17FA6; [7D 83 8E, 05, 05]
+17FA7; [7D 83 90, 05, 05]
+17FA8; [7D 83 92, 05, 05]
+17FA9; [7D 83 94, 05, 05]
+17FAA; [7D 83 96, 05, 05]
+17FAB; [7D 83 98, 05, 05]
+17FAC; [7D 83 9A, 05, 05]
+17FAD; [7D 83 9C, 05, 05]
+17FAE; [7D 83 9E, 05, 05]
+17FAF; [7D 83 A0, 05, 05]
+17FB0; [7D 83 A2, 05, 05]
+17FB1; [7D 83 A4, 05, 05]
+17FB2; [7D 83 A6, 05, 05]
+17FB3; [7D 83 A8, 05, 05]
+17FB4; [7D 83 AA, 05, 05]
+17FB5; [7D 83 AC, 05, 05]
+17FB6; [7D 83 AE, 05, 05]
+17FB7; [7D 83 B0, 05, 05]
+17FB8; [7D 83 B2, 05, 05]
+17FB9; [7D 83 B4, 05, 05]
+17FBA; [7D 83 B6, 05, 05]
+17FBB; [7D 83 B8, 05, 05]
+17FBC; [7D 83 BA, 05, 05]
+17FBD; [7D 83 BC, 05, 05]
+17FBE; [7D 83 BE, 05, 05]
+17FBF; [7D 83 C0, 05, 05]
+17FC0; [7D 83 C2, 05, 05]
+17FC1; [7D 83 C4, 05, 05]
+17FC2; [7D 83 C6, 05, 05]
+17FC3; [7D 83 C8, 05, 05]
+17FC4; [7D 83 CA, 05, 05]
+17FC5; [7D 83 CC, 05, 05]
+17FC6; [7D 83 CE, 05, 05]
+17FC7; [7D 83 D0, 05, 05]
+17FC8; [7D 83 D2, 05, 05]
+17FC9; [7D 83 D4, 05, 05]
+17FCA; [7D 83 D6, 05, 05]
+17FCB; [7D 83 D8, 05, 05]
+17FCC; [7D 83 DA, 05, 05]
+17FCD; [7D 83 DC, 05, 05]
+17FCE; [7D 83 DE, 05, 05]
+17FCF; [7D 83 E0, 05, 05]
+17FD0; [7D 83 E2, 05, 05]
+17FD1; [7D 83 E4, 05, 05]
+17FD2; [7D 83 E6, 05, 05]
+17FD3; [7D 83 E8, 05, 05]
+17FD4; [7D 83 EA, 05, 05]
+17FD5; [7D 83 EC, 05, 05]
+17FD6; [7D 83 EE, 05, 05]
+17FD7; [7D 83 F0, 05, 05]
+17FD8; [7D 83 F2, 05, 05]
+17FD9; [7D 83 F4, 05, 05]
+17FDA; [7D 83 F6, 05, 05]
+17FDB; [7D 83 F8, 05, 05]
+17FDC; [7D 83 FA, 05, 05]
+17FDD; [7D 83 FC, 05, 05]
+17FDE; [7D 83 FE, 05, 05]
+17FDF; [7D 84 02, 05, 05]
+17FE0; [7D 84 04, 05, 05]
+17FE1; [7D 84 06, 05, 05]
+17FE2; [7D 84 08, 05, 05]
+17FE3; [7D 84 0A, 05, 05]
+17FE4; [7D 84 0C, 05, 05]
+17FE5; [7D 84 0E, 05, 05]
+17FE6; [7D 84 10, 05, 05]
+17FE7; [7D 84 12, 05, 05]
+17FE8; [7D 84 14, 05, 05]
+17FE9; [7D 84 16, 05, 05]
+17FEA; [7D 84 18, 05, 05]
+17FEB; [7D 84 1A, 05, 05]
+17FEC; [7D 84 1C, 05, 05]
+17FED; [7D 84 1E, 05, 05]
+17FEE; [7D 84 20, 05, 05]
+17FEF; [7D 84 22, 05, 05]
+17FF0; [7D 84 24, 05, 05]
+17FF1; [7D 84 26, 05, 05]
+17FF2; [7D 84 28, 05, 05]
+17FF3; [7D 84 2A, 05, 05]
+17FF4; [7D 84 2C, 05, 05]
+17FF5; [7D 84 2E, 05, 05]
+17FF6; [7D 84 30, 05, 05]
+17FF7; [7D 84 32, 05, 05]
+17FF8; [7D 84 34, 05, 05]
+17FF9; [7D 84 36, 05, 05]
+17FFA; [7D 84 38, 05, 05]
+17FFB; [7D 84 3A, 05, 05]
+17FFC; [7D 84 3C, 05, 05]
+17FFD; [7D 84 3E, 05, 05]
+17FFE; [7D 84 40, 05, 05]
+17FFF; [7D 84 42, 05, 05]
+18000; [7D 84 44, 05, 05]
+18001; [7D 84 46, 05, 05]
+18002; [7D 84 48, 05, 05]
+18003; [7D 84 4A, 05, 05]
+18004; [7D 84 4C, 05, 05]
+18005; [7D 84 4E, 05, 05]
+18006; [7D 84 50, 05, 05]
+18007; [7D 84 52, 05, 05]
+18008; [7D 84 54, 05, 05]
+18009; [7D 84 56, 05, 05]
+1800A; [7D 84 58, 05, 05]
+1800B; [7D 84 5A, 05, 05]
+1800C; [7D 84 5C, 05, 05]
+1800D; [7D 84 5E, 05, 05]
+1800E; [7D 84 60, 05, 05]
+1800F; [7D 84 62, 05, 05]
+18010; [7D 84 64, 05, 05]
+18011; [7D 84 66, 05, 05]
+18012; [7D 84 68, 05, 05]
+18013; [7D 84 6A, 05, 05]
+18014; [7D 84 6C, 05, 05]
+18015; [7D 84 6E, 05, 05]
+18016; [7D 84 70, 05, 05]
+18017; [7D 84 72, 05, 05]
+18018; [7D 84 74, 05, 05]
+18019; [7D 84 76, 05, 05]
+1801A; [7D 84 78, 05, 05]
+1801B; [7D 84 7A, 05, 05]
+1801C; [7D 84 7C, 05, 05]
+1801D; [7D 84 7E, 05, 05]
+1801E; [7D 84 80, 05, 05]
+1801F; [7D 84 82, 05, 05]
+18020; [7D 84 84, 05, 05]
+18021; [7D 84 86, 05, 05]
+18022; [7D 84 88, 05, 05]
+18023; [7D 84 8A, 05, 05]
+18024; [7D 84 8C, 05, 05]
+18025; [7D 84 8E, 05, 05]
+18026; [7D 84 90, 05, 05]
+18027; [7D 84 92, 05, 05]
+18028; [7D 84 94, 05, 05]
+18029; [7D 84 96, 05, 05]
+1802A; [7D 84 98, 05, 05]
+1802B; [7D 84 9A, 05, 05]
+1802C; [7D 84 9C, 05, 05]
+1802D; [7D 84 9E, 05, 05]
+1802E; [7D 84 A0, 05, 05]
+1802F; [7D 84 A2, 05, 05]
+18030; [7D 84 A4, 05, 05]
+18031; [7D 84 A6, 05, 05]
+18032; [7D 84 A8, 05, 05]
+18033; [7D 84 AA, 05, 05]
+18034; [7D 84 AC, 05, 05]
+18035; [7D 84 AE, 05, 05]
+18036; [7D 84 B0, 05, 05]
+18037; [7D 84 B2, 05, 05]
+18038; [7D 84 B4, 05, 05]
+18039; [7D 84 B6, 05, 05]
+1803A; [7D 84 B8, 05, 05]
+1803B; [7D 84 BA, 05, 05]
+1803C; [7D 84 BC, 05, 05]
+1803D; [7D 84 BE, 05, 05]
+1803E; [7D 84 C0, 05, 05]
+1803F; [7D 84 C2, 05, 05]
+18040; [7D 84 C4, 05, 05]
+18041; [7D 84 C6, 05, 05]
+18042; [7D 84 C8, 05, 05]
+18043; [7D 84 CA, 05, 05]
+18044; [7D 84 CC, 05, 05]
+18045; [7D 84 CE, 05, 05]
+18046; [7D 84 D0, 05, 05]
+18047; [7D 84 D2, 05, 05]
+18048; [7D 84 D4, 05, 05]
+18049; [7D 84 D6, 05, 05]
+1804A; [7D 84 D8, 05, 05]
+1804B; [7D 84 DA, 05, 05]
+1804C; [7D 84 DC, 05, 05]
+1804D; [7D 84 DE, 05, 05]
+1804E; [7D 84 E0, 05, 05]
+1804F; [7D 84 E2, 05, 05]
+18050; [7D 84 E4, 05, 05]
+18051; [7D 84 E6, 05, 05]
+18052; [7D 84 E8, 05, 05]
+18053; [7D 84 EA, 05, 05]
+18054; [7D 84 EC, 05, 05]
+18055; [7D 84 EE, 05, 05]
+18056; [7D 84 F0, 05, 05]
+18057; [7D 84 F2, 05, 05]
+18058; [7D 84 F4, 05, 05]
+18059; [7D 84 F6, 05, 05]
+1805A; [7D 84 F8, 05, 05]
+1805B; [7D 84 FA, 05, 05]
+1805C; [7D 84 FC, 05, 05]
+1805D; [7D 84 FE, 05, 05]
+1805E; [7D 85 02, 05, 05]
+1805F; [7D 85 04, 05, 05]
+18060; [7D 85 06, 05, 05]
+18061; [7D 85 08, 05, 05]
+18062; [7D 85 0A, 05, 05]
+18063; [7D 85 0C, 05, 05]
+18064; [7D 85 0E, 05, 05]
+18065; [7D 85 10, 05, 05]
+18066; [7D 85 12, 05, 05]
+18067; [7D 85 14, 05, 05]
+18068; [7D 85 16, 05, 05]
+18069; [7D 85 18, 05, 05]
+1806A; [7D 85 1A, 05, 05]
+1806B; [7D 85 1C, 05, 05]
+1806C; [7D 85 1E, 05, 05]
+1806D; [7D 85 20, 05, 05]
+1806E; [7D 85 22, 05, 05]
+1806F; [7D 85 24, 05, 05]
+18070; [7D 85 26, 05, 05]
+18071; [7D 85 28, 05, 05]
+18072; [7D 85 2A, 05, 05]
+18073; [7D 85 2C, 05, 05]
+18074; [7D 85 2E, 05, 05]
+18075; [7D 85 30, 05, 05]
+18076; [7D 85 32, 05, 05]
+18077; [7D 85 34, 05, 05]
+18078; [7D 85 36, 05, 05]
+18079; [7D 85 38, 05, 05]
+1807A; [7D 85 3A, 05, 05]
+1807B; [7D 85 3C, 05, 05]
+1807C; [7D 85 3E, 05, 05]
+1807D; [7D 85 40, 05, 05]
+1807E; [7D 85 42, 05, 05]
+1807F; [7D 85 44, 05, 05]
+18080; [7D 85 46, 05, 05]
+18081; [7D 85 48, 05, 05]
+18082; [7D 85 4A, 05, 05]
+18083; [7D 85 4C, 05, 05]
+18084; [7D 85 4E, 05, 05]
+18085; [7D 85 50, 05, 05]
+18086; [7D 85 52, 05, 05]
+18087; [7D 85 54, 05, 05]
+18088; [7D 85 56, 05, 05]
+18089; [7D 85 58, 05, 05]
+1808A; [7D 85 5A, 05, 05]
+1808B; [7D 85 5C, 05, 05]
+1808C; [7D 85 5E, 05, 05]
+1808D; [7D 85 60, 05, 05]
+1808E; [7D 85 62, 05, 05]
+1808F; [7D 85 64, 05, 05]
+18090; [7D 85 66, 05, 05]
+18091; [7D 85 68, 05, 05]
+18092; [7D 85 6A, 05, 05]
+18093; [7D 85 6C, 05, 05]
+18094; [7D 85 6E, 05, 05]
+18095; [7D 85 70, 05, 05]
+18096; [7D 85 72, 05, 05]
+18097; [7D 85 74, 05, 05]
+18098; [7D 85 76, 05, 05]
+18099; [7D 85 78, 05, 05]
+1809A; [7D 85 7A, 05, 05]
+1809B; [7D 85 7C, 05, 05]
+1809C; [7D 85 7E, 05, 05]
+1809D; [7D 85 80, 05, 05]
+1809E; [7D 85 82, 05, 05]
+1809F; [7D 85 84, 05, 05]
+180A0; [7D 85 86, 05, 05]
+180A1; [7D 85 88, 05, 05]
+180A2; [7D 85 8A, 05, 05]
+180A3; [7D 85 8C, 05, 05]
+180A4; [7D 85 8E, 05, 05]
+180A5; [7D 85 90, 05, 05]
+180A6; [7D 85 92, 05, 05]
+180A7; [7D 85 94, 05, 05]
+180A8; [7D 85 96, 05, 05]
+180A9; [7D 85 98, 05, 05]
+180AA; [7D 85 9A, 05, 05]
+180AB; [7D 85 9C, 05, 05]
+180AC; [7D 85 9E, 05, 05]
+180AD; [7D 85 A0, 05, 05]
+180AE; [7D 85 A2, 05, 05]
+180AF; [7D 85 A4, 05, 05]
+180B0; [7D 85 A6, 05, 05]
+180B1; [7D 85 A8, 05, 05]
+180B2; [7D 85 AA, 05, 05]
+180B3; [7D 85 AC, 05, 05]
+180B4; [7D 85 AE, 05, 05]
+180B5; [7D 85 B0, 05, 05]
+180B6; [7D 85 B2, 05, 05]
+180B7; [7D 85 B4, 05, 05]
+180B8; [7D 85 B6, 05, 05]
+180B9; [7D 85 B8, 05, 05]
+180BA; [7D 85 BA, 05, 05]
+180BB; [7D 85 BC, 05, 05]
+180BC; [7D 85 BE, 05, 05]
+180BD; [7D 85 C0, 05, 05]
+180BE; [7D 85 C2, 05, 05]
+180BF; [7D 85 C4, 05, 05]
+180C0; [7D 85 C6, 05, 05]
+180C1; [7D 85 C8, 05, 05]
+180C2; [7D 85 CA, 05, 05]
+180C3; [7D 85 CC, 05, 05]
+180C4; [7D 85 CE, 05, 05]
+180C5; [7D 85 D0, 05, 05]
+180C6; [7D 85 D2, 05, 05]
+180C7; [7D 85 D4, 05, 05]
+180C8; [7D 85 D6, 05, 05]
+180C9; [7D 85 D8, 05, 05]
+180CA; [7D 85 DA, 05, 05]
+180CB; [7D 85 DC, 05, 05]
+180CC; [7D 85 DE, 05, 05]
+180CD; [7D 85 E0, 05, 05]
+180CE; [7D 85 E2, 05, 05]
+180CF; [7D 85 E4, 05, 05]
+180D0; [7D 85 E6, 05, 05]
+180D1; [7D 85 E8, 05, 05]
+180D2; [7D 85 EA, 05, 05]
+180D3; [7D 85 EC, 05, 05]
+180D4; [7D 85 EE, 05, 05]
+180D5; [7D 85 F0, 05, 05]
+180D6; [7D 85 F2, 05, 05]
+180D7; [7D 85 F4, 05, 05]
+180D8; [7D 85 F6, 05, 05]
+180D9; [7D 85 F8, 05, 05]
+180DA; [7D 85 FA, 05, 05]
+180DB; [7D 85 FC, 05, 05]
+180DC; [7D 85 FE, 05, 05]
+180DD; [7D 86 02, 05, 05]
+180DE; [7D 86 04, 05, 05]
+180DF; [7D 86 06, 05, 05]
+180E0; [7D 86 08, 05, 05]
+180E1; [7D 86 0A, 05, 05]
+180E2; [7D 86 0C, 05, 05]
+180E3; [7D 86 0E, 05, 05]
+180E4; [7D 86 10, 05, 05]
+180E5; [7D 86 12, 05, 05]
+180E6; [7D 86 14, 05, 05]
+180E7; [7D 86 16, 05, 05]
+180E8; [7D 86 18, 05, 05]
+180E9; [7D 86 1A, 05, 05]
+180EA; [7D 86 1C, 05, 05]
+180EB; [7D 86 1E, 05, 05]
+180EC; [7D 86 20, 05, 05]
+180ED; [7D 86 22, 05, 05]
+180EE; [7D 86 24, 05, 05]
+180EF; [7D 86 26, 05, 05]
+180F0; [7D 86 28, 05, 05]
+180F1; [7D 86 2A, 05, 05]
+180F2; [7D 86 2C, 05, 05]
+180F3; [7D 86 2E, 05, 05]
+180F4; [7D 86 30, 05, 05]
+180F5; [7D 86 32, 05, 05]
+180F6; [7D 86 34, 05, 05]
+180F7; [7D 86 36, 05, 05]
+180F8; [7D 86 38, 05, 05]
+180F9; [7D 86 3A, 05, 05]
+180FA; [7D 86 3C, 05, 05]
+180FB; [7D 86 3E, 05, 05]
+180FC; [7D 86 40, 05, 05]
+180FD; [7D 86 42, 05, 05]
+180FE; [7D 86 44, 05, 05]
+180FF; [7D 86 46, 05, 05]
+18100; [7D 86 48, 05, 05]
+18101; [7D 86 4A, 05, 05]
+18102; [7D 86 4C, 05, 05]
+18103; [7D 86 4E, 05, 05]
+18104; [7D 86 50, 05, 05]
+18105; [7D 86 52, 05, 05]
+18106; [7D 86 54, 05, 05]
+18107; [7D 86 56, 05, 05]
+18108; [7D 86 58, 05, 05]
+18109; [7D 86 5A, 05, 05]
+1810A; [7D 86 5C, 05, 05]
+1810B; [7D 86 5E, 05, 05]
+1810C; [7D 86 60, 05, 05]
+1810D; [7D 86 62, 05, 05]
+1810E; [7D 86 64, 05, 05]
+1810F; [7D 86 66, 05, 05]
+18110; [7D 86 68, 05, 05]
+18111; [7D 86 6A, 05, 05]
+18112; [7D 86 6C, 05, 05]
+18113; [7D 86 6E, 05, 05]
+18114; [7D 86 70, 05, 05]
+18115; [7D 86 72, 05, 05]
+18116; [7D 86 74, 05, 05]
+18117; [7D 86 76, 05, 05]
+18118; [7D 86 78, 05, 05]
+18119; [7D 86 7A, 05, 05]
+1811A; [7D 86 7C, 05, 05]
+1811B; [7D 86 7E, 05, 05]
+1811C; [7D 86 80, 05, 05]
+1811D; [7D 86 82, 05, 05]
+1811E; [7D 86 84, 05, 05]
+1811F; [7D 86 86, 05, 05]
+18120; [7D 86 88, 05, 05]
+18121; [7D 86 8A, 05, 05]
+18122; [7D 86 8C, 05, 05]
+18123; [7D 86 8E, 05, 05]
+18124; [7D 86 90, 05, 05]
+18125; [7D 86 92, 05, 05]
+18126; [7D 86 94, 05, 05]
+18127; [7D 86 96, 05, 05]
+18128; [7D 86 98, 05, 05]
+18129; [7D 86 9A, 05, 05]
+1812A; [7D 86 9C, 05, 05]
+1812B; [7D 86 9E, 05, 05]
+1812C; [7D 86 A0, 05, 05]
+1812D; [7D 86 A2, 05, 05]
+1812E; [7D 86 A4, 05, 05]
+1812F; [7D 86 A6, 05, 05]
+18130; [7D 86 A8, 05, 05]
+18131; [7D 86 AA, 05, 05]
+18132; [7D 86 AC, 05, 05]
+18133; [7D 86 AE, 05, 05]
+18134; [7D 86 B0, 05, 05]
+18135; [7D 86 B2, 05, 05]
+18136; [7D 86 B4, 05, 05]
+18137; [7D 86 B6, 05, 05]
+18138; [7D 86 B8, 05, 05]
+18139; [7D 86 BA, 05, 05]
+1813A; [7D 86 BC, 05, 05]
+1813B; [7D 86 BE, 05, 05]
+1813C; [7D 86 C0, 05, 05]
+1813D; [7D 86 C2, 05, 05]
+1813E; [7D 86 C4, 05, 05]
+1813F; [7D 86 C6, 05, 05]
+18140; [7D 86 C8, 05, 05]
+18141; [7D 86 CA, 05, 05]
+18142; [7D 86 CC, 05, 05]
+18143; [7D 86 CE, 05, 05]
+18144; [7D 86 D0, 05, 05]
+18145; [7D 86 D2, 05, 05]
+18146; [7D 86 D4, 05, 05]
+18147; [7D 86 D6, 05, 05]
+18148; [7D 86 D8, 05, 05]
+18149; [7D 86 DA, 05, 05]
+1814A; [7D 86 DC, 05, 05]
+1814B; [7D 86 DE, 05, 05]
+1814C; [7D 86 E0, 05, 05]
+1814D; [7D 86 E2, 05, 05]
+1814E; [7D 86 E4, 05, 05]
+1814F; [7D 86 E6, 05, 05]
+18150; [7D 86 E8, 05, 05]
+18151; [7D 86 EA, 05, 05]
+18152; [7D 86 EC, 05, 05]
+18153; [7D 86 EE, 05, 05]
+18154; [7D 86 F0, 05, 05]
+18155; [7D 86 F2, 05, 05]
+18156; [7D 86 F4, 05, 05]
+18157; [7D 86 F6, 05, 05]
+18158; [7D 86 F8, 05, 05]
+18159; [7D 86 FA, 05, 05]
+1815A; [7D 86 FC, 05, 05]
+1815B; [7D 86 FE, 05, 05]
+1815C; [7D 87 02, 05, 05]
+1815D; [7D 87 04, 05, 05]
+1815E; [7D 87 06, 05, 05]
+1815F; [7D 87 08, 05, 05]
+18160; [7D 87 0A, 05, 05]
+18161; [7D 87 0C, 05, 05]
+18162; [7D 87 0E, 05, 05]
+18163; [7D 87 10, 05, 05]
+18164; [7D 87 12, 05, 05]
+18165; [7D 87 14, 05, 05]
+18166; [7D 87 16, 05, 05]
+18167; [7D 87 18, 05, 05]
+18168; [7D 87 1A, 05, 05]
+18169; [7D 87 1C, 05, 05]
+1816A; [7D 87 1E, 05, 05]
+1816B; [7D 87 20, 05, 05]
+1816C; [7D 87 22, 05, 05]
+1816D; [7D 87 24, 05, 05]
+1816E; [7D 87 26, 05, 05]
+1816F; [7D 87 28, 05, 05]
+18170; [7D 87 2A, 05, 05]
+18171; [7D 87 2C, 05, 05]
+18172; [7D 87 2E, 05, 05]
+18173; [7D 87 30, 05, 05]
+18174; [7D 87 32, 05, 05]
+18175; [7D 87 34, 05, 05]
+18176; [7D 87 36, 05, 05]
+18177; [7D 87 38, 05, 05]
+18178; [7D 87 3A, 05, 05]
+18179; [7D 87 3C, 05, 05]
+1817A; [7D 87 3E, 05, 05]
+1817B; [7D 87 40, 05, 05]
+1817C; [7D 87 42, 05, 05]
+1817D; [7D 87 44, 05, 05]
+1817E; [7D 87 46, 05, 05]
+1817F; [7D 87 48, 05, 05]
+18180; [7D 87 4A, 05, 05]
+18181; [7D 87 4C, 05, 05]
+18182; [7D 87 4E, 05, 05]
+18183; [7D 87 50, 05, 05]
+18184; [7D 87 52, 05, 05]
+18185; [7D 87 54, 05, 05]
+18186; [7D 87 56, 05, 05]
+18187; [7D 87 58, 05, 05]
+18188; [7D 87 5A, 05, 05]
+18189; [7D 87 5C, 05, 05]
+1818A; [7D 87 5E, 05, 05]
+1818B; [7D 87 60, 05, 05]
+1818C; [7D 87 62, 05, 05]
+1818D; [7D 87 64, 05, 05]
+1818E; [7D 87 66, 05, 05]
+1818F; [7D 87 68, 05, 05]
+18190; [7D 87 6A, 05, 05]
+18191; [7D 87 6C, 05, 05]
+18192; [7D 87 6E, 05, 05]
+18193; [7D 87 70, 05, 05]
+18194; [7D 87 72, 05, 05]
+18195; [7D 87 74, 05, 05]
+18196; [7D 87 76, 05, 05]
+18197; [7D 87 78, 05, 05]
+18198; [7D 87 7A, 05, 05]
+18199; [7D 87 7C, 05, 05]
+1819A; [7D 87 7E, 05, 05]
+1819B; [7D 87 80, 05, 05]
+1819C; [7D 87 82, 05, 05]
+1819D; [7D 87 84, 05, 05]
+1819E; [7D 87 86, 05, 05]
+1819F; [7D 87 88, 05, 05]
+181A0; [7D 87 8A, 05, 05]
+181A1; [7D 87 8C, 05, 05]
+181A2; [7D 87 8E, 05, 05]
+181A3; [7D 87 90, 05, 05]
+181A4; [7D 87 92, 05, 05]
+181A5; [7D 87 94, 05, 05]
+181A6; [7D 87 96, 05, 05]
+181A7; [7D 87 98, 05, 05]
+181A8; [7D 87 9A, 05, 05]
+181A9; [7D 87 9C, 05, 05]
+181AA; [7D 87 9E, 05, 05]
+181AB; [7D 87 A0, 05, 05]
+181AC; [7D 87 A2, 05, 05]
+181AD; [7D 87 A4, 05, 05]
+181AE; [7D 87 A6, 05, 05]
+181AF; [7D 87 A8, 05, 05]
+181B0; [7D 87 AA, 05, 05]
+181B1; [7D 87 AC, 05, 05]
+181B2; [7D 87 AE, 05, 05]
+181B3; [7D 87 B0, 05, 05]
+181B4; [7D 87 B2, 05, 05]
+181B5; [7D 87 B4, 05, 05]
+181B6; [7D 87 B6, 05, 05]
+181B7; [7D 87 B8, 05, 05]
+181B8; [7D 87 BA, 05, 05]
+181B9; [7D 87 BC, 05, 05]
+181BA; [7D 87 BE, 05, 05]
+181BB; [7D 87 C0, 05, 05]
+181BC; [7D 87 C2, 05, 05]
+181BD; [7D 87 C4, 05, 05]
+181BE; [7D 87 C6, 05, 05]
+181BF; [7D 87 C8, 05, 05]
+181C0; [7D 87 CA, 05, 05]
+181C1; [7D 87 CC, 05, 05]
+181C2; [7D 87 CE, 05, 05]
+181C3; [7D 87 D0, 05, 05]
+181C4; [7D 87 D2, 05, 05]
+181C5; [7D 87 D4, 05, 05]
+181C6; [7D 87 D6, 05, 05]
+181C7; [7D 87 D8, 05, 05]
+181C8; [7D 87 DA, 05, 05]
+181C9; [7D 87 DC, 05, 05]
+181CA; [7D 87 DE, 05, 05]
+181CB; [7D 87 E0, 05, 05]
+181CC; [7D 87 E2, 05, 05]
+181CD; [7D 87 E4, 05, 05]
+181CE; [7D 87 E6, 05, 05]
+181CF; [7D 87 E8, 05, 05]
+181D0; [7D 87 EA, 05, 05]
+181D1; [7D 87 EC, 05, 05]
+181D2; [7D 87 EE, 05, 05]
+181D3; [7D 87 F0, 05, 05]
+181D4; [7D 87 F2, 05, 05]
+181D5; [7D 87 F4, 05, 05]
+181D6; [7D 87 F6, 05, 05]
+181D7; [7D 87 F8, 05, 05]
+181D8; [7D 87 FA, 05, 05]
+181D9; [7D 87 FC, 05, 05]
+181DA; [7D 87 FE, 05, 05]
+181DB; [7D 88 02, 05, 05]
+181DC; [7D 88 04, 05, 05]
+181DD; [7D 88 06, 05, 05]
+181DE; [7D 88 08, 05, 05]
+181DF; [7D 88 0A, 05, 05]
+181E0; [7D 88 0C, 05, 05]
+181E1; [7D 88 0E, 05, 05]
+181E2; [7D 88 10, 05, 05]
+181E3; [7D 88 12, 05, 05]
+181E4; [7D 88 14, 05, 05]
+181E5; [7D 88 16, 05, 05]
+181E6; [7D 88 18, 05, 05]
+181E7; [7D 88 1A, 05, 05]
+181E8; [7D 88 1C, 05, 05]
+181E9; [7D 88 1E, 05, 05]
+181EA; [7D 88 20, 05, 05]
+181EB; [7D 88 22, 05, 05]
+181EC; [7D 88 24, 05, 05]
+181ED; [7D 88 26, 05, 05]
+181EE; [7D 88 28, 05, 05]
+181EF; [7D 88 2A, 05, 05]
+181F0; [7D 88 2C, 05, 05]
+181F1; [7D 88 2E, 05, 05]
+181F2; [7D 88 30, 05, 05]
+181F3; [7D 88 32, 05, 05]
+181F4; [7D 88 34, 05, 05]
+181F5; [7D 88 36, 05, 05]
+181F6; [7D 88 38, 05, 05]
+181F7; [7D 88 3A, 05, 05]
+181F8; [7D 88 3C, 05, 05]
+181F9; [7D 88 3E, 05, 05]
+181FA; [7D 88 40, 05, 05]
+181FB; [7D 88 42, 05, 05]
+181FC; [7D 88 44, 05, 05]
+181FD; [7D 88 46, 05, 05]
+181FE; [7D 88 48, 05, 05]
+181FF; [7D 88 4A, 05, 05]
+18200; [7D 88 4C, 05, 05]
+18201; [7D 88 4E, 05, 05]
+18202; [7D 88 50, 05, 05]
+18203; [7D 88 52, 05, 05]
+18204; [7D 88 54, 05, 05]
+18205; [7D 88 56, 05, 05]
+18206; [7D 88 58, 05, 05]
+18207; [7D 88 5A, 05, 05]
+18208; [7D 88 5C, 05, 05]
+18209; [7D 88 5E, 05, 05]
+1820A; [7D 88 60, 05, 05]
+1820B; [7D 88 62, 05, 05]
+1820C; [7D 88 64, 05, 05]
+1820D; [7D 88 66, 05, 05]
+1820E; [7D 88 68, 05, 05]
+1820F; [7D 88 6A, 05, 05]
+18210; [7D 88 6C, 05, 05]
+18211; [7D 88 6E, 05, 05]
+18212; [7D 88 70, 05, 05]
+18213; [7D 88 72, 05, 05]
+18214; [7D 88 74, 05, 05]
+18215; [7D 88 76, 05, 05]
+18216; [7D 88 78, 05, 05]
+18217; [7D 88 7A, 05, 05]
+18218; [7D 88 7C, 05, 05]
+18219; [7D 88 7E, 05, 05]
+1821A; [7D 88 80, 05, 05]
+1821B; [7D 88 82, 05, 05]
+1821C; [7D 88 84, 05, 05]
+1821D; [7D 88 86, 05, 05]
+1821E; [7D 88 88, 05, 05]
+1821F; [7D 88 8A, 05, 05]
+18220; [7D 88 8C, 05, 05]
+18221; [7D 88 8E, 05, 05]
+18222; [7D 88 90, 05, 05]
+18223; [7D 88 92, 05, 05]
+18224; [7D 88 94, 05, 05]
+18225; [7D 88 96, 05, 05]
+18226; [7D 88 98, 05, 05]
+18227; [7D 88 9A, 05, 05]
+18228; [7D 88 9C, 05, 05]
+18229; [7D 88 9E, 05, 05]
+1822A; [7D 88 A0, 05, 05]
+1822B; [7D 88 A2, 05, 05]
+1822C; [7D 88 A4, 05, 05]
+1822D; [7D 88 A6, 05, 05]
+1822E; [7D 88 A8, 05, 05]
+1822F; [7D 88 AA, 05, 05]
+18230; [7D 88 AC, 05, 05]
+18231; [7D 88 AE, 05, 05]
+18232; [7D 88 B0, 05, 05]
+18233; [7D 88 B2, 05, 05]
+18234; [7D 88 B4, 05, 05]
+18235; [7D 88 B6, 05, 05]
+18236; [7D 88 B8, 05, 05]
+18237; [7D 88 BA, 05, 05]
+18238; [7D 88 BC, 05, 05]
+18239; [7D 88 BE, 05, 05]
+1823A; [7D 88 C0, 05, 05]
+1823B; [7D 88 C2, 05, 05]
+1823C; [7D 88 C4, 05, 05]
+1823D; [7D 88 C6, 05, 05]
+1823E; [7D 88 C8, 05, 05]
+1823F; [7D 88 CA, 05, 05]
+18240; [7D 88 CC, 05, 05]
+18241; [7D 88 CE, 05, 05]
+18242; [7D 88 D0, 05, 05]
+18243; [7D 88 D2, 05, 05]
+18244; [7D 88 D4, 05, 05]
+18245; [7D 88 D6, 05, 05]
+18246; [7D 88 D8, 05, 05]
+18247; [7D 88 DA, 05, 05]
+18248; [7D 88 DC, 05, 05]
+18249; [7D 88 DE, 05, 05]
+1824A; [7D 88 E0, 05, 05]
+1824B; [7D 88 E2, 05, 05]
+1824C; [7D 88 E4, 05, 05]
+1824D; [7D 88 E6, 05, 05]
+1824E; [7D 88 E8, 05, 05]
+1824F; [7D 88 EA, 05, 05]
+18250; [7D 88 EC, 05, 05]
+18251; [7D 88 EE, 05, 05]
+18252; [7D 88 F0, 05, 05]
+18253; [7D 88 F2, 05, 05]
+18254; [7D 88 F4, 05, 05]
+18255; [7D 88 F6, 05, 05]
+18256; [7D 88 F8, 05, 05]
+18257; [7D 88 FA, 05, 05]
+18258; [7D 88 FC, 05, 05]
+18259; [7D 88 FE, 05, 05]
+1825A; [7D 89 02, 05, 05]
+1825B; [7D 89 04, 05, 05]
+1825C; [7D 89 06, 05, 05]
+1825D; [7D 89 08, 05, 05]
+1825E; [7D 89 0A, 05, 05]
+1825F; [7D 89 0C, 05, 05]
+18260; [7D 89 0E, 05, 05]
+18261; [7D 89 10, 05, 05]
+18262; [7D 89 12, 05, 05]
+18263; [7D 89 14, 05, 05]
+18264; [7D 89 16, 05, 05]
+18265; [7D 89 18, 05, 05]
+18266; [7D 89 1A, 05, 05]
+18267; [7D 89 1C, 05, 05]
+18268; [7D 89 1E, 05, 05]
+18269; [7D 89 20, 05, 05]
+1826A; [7D 89 22, 05, 05]
+1826B; [7D 89 24, 05, 05]
+1826C; [7D 89 26, 05, 05]
+1826D; [7D 89 28, 05, 05]
+1826E; [7D 89 2A, 05, 05]
+1826F; [7D 89 2C, 05, 05]
+18270; [7D 89 2E, 05, 05]
+18271; [7D 89 30, 05, 05]
+18272; [7D 89 32, 05, 05]
+18273; [7D 89 34, 05, 05]
+18274; [7D 89 36, 05, 05]
+18275; [7D 89 38, 05, 05]
+18276; [7D 89 3A, 05, 05]
+18277; [7D 89 3C, 05, 05]
+18278; [7D 89 3E, 05, 05]
+18279; [7D 89 40, 05, 05]
+1827A; [7D 89 42, 05, 05]
+1827B; [7D 89 44, 05, 05]
+1827C; [7D 89 46, 05, 05]
+1827D; [7D 89 48, 05, 05]
+1827E; [7D 89 4A, 05, 05]
+1827F; [7D 89 4C, 05, 05]
+18280; [7D 89 4E, 05, 05]
+18281; [7D 89 50, 05, 05]
+18282; [7D 89 52, 05, 05]
+18283; [7D 89 54, 05, 05]
+18284; [7D 89 56, 05, 05]
+18285; [7D 89 58, 05, 05]
+18286; [7D 89 5A, 05, 05]
+18287; [7D 89 5C, 05, 05]
+18288; [7D 89 5E, 05, 05]
+18289; [7D 89 60, 05, 05]
+1828A; [7D 89 62, 05, 05]
+1828B; [7D 89 64, 05, 05]
+1828C; [7D 89 66, 05, 05]
+1828D; [7D 89 68, 05, 05]
+1828E; [7D 89 6A, 05, 05]
+1828F; [7D 89 6C, 05, 05]
+18290; [7D 89 6E, 05, 05]
+18291; [7D 89 70, 05, 05]
+18292; [7D 89 72, 05, 05]
+18293; [7D 89 74, 05, 05]
+18294; [7D 89 76, 05, 05]
+18295; [7D 89 78, 05, 05]
+18296; [7D 89 7A, 05, 05]
+18297; [7D 89 7C, 05, 05]
+18298; [7D 89 7E, 05, 05]
+18299; [7D 89 80, 05, 05]
+1829A; [7D 89 82, 05, 05]
+1829B; [7D 89 84, 05, 05]
+1829C; [7D 89 86, 05, 05]
+1829D; [7D 89 88, 05, 05]
+1829E; [7D 89 8A, 05, 05]
+1829F; [7D 89 8C, 05, 05]
+182A0; [7D 89 8E, 05, 05]
+182A1; [7D 89 90, 05, 05]
+182A2; [7D 89 92, 05, 05]
+182A3; [7D 89 94, 05, 05]
+182A4; [7D 89 96, 05, 05]
+182A5; [7D 89 98, 05, 05]
+182A6; [7D 89 9A, 05, 05]
+182A7; [7D 89 9C, 05, 05]
+182A8; [7D 89 9E, 05, 05]
+182A9; [7D 89 A0, 05, 05]
+182AA; [7D 89 A2, 05, 05]
+182AB; [7D 89 A4, 05, 05]
+182AC; [7D 89 A6, 05, 05]
+182AD; [7D 89 A8, 05, 05]
+182AE; [7D 89 AA, 05, 05]
+182AF; [7D 89 AC, 05, 05]
+182B0; [7D 89 AE, 05, 05]
+182B1; [7D 89 B0, 05, 05]
+182B2; [7D 89 B2, 05, 05]
+182B3; [7D 89 B4, 05, 05]
+182B4; [7D 89 B6, 05, 05]
+182B5; [7D 89 B8, 05, 05]
+182B6; [7D 89 BA, 05, 05]
+182B7; [7D 89 BC, 05, 05]
+182B8; [7D 89 BE, 05, 05]
+182B9; [7D 89 C0, 05, 05]
+182BA; [7D 89 C2, 05, 05]
+182BB; [7D 89 C4, 05, 05]
+182BC; [7D 89 C6, 05, 05]
+182BD; [7D 89 C8, 05, 05]
+182BE; [7D 89 CA, 05, 05]
+182BF; [7D 89 CC, 05, 05]
+182C0; [7D 89 CE, 05, 05]
+182C1; [7D 89 D0, 05, 05]
+182C2; [7D 89 D2, 05, 05]
+182C3; [7D 89 D4, 05, 05]
+182C4; [7D 89 D6, 05, 05]
+182C5; [7D 89 D8, 05, 05]
+182C6; [7D 89 DA, 05, 05]
+182C7; [7D 89 DC, 05, 05]
+182C8; [7D 89 DE, 05, 05]
+182C9; [7D 89 E0, 05, 05]
+182CA; [7D 89 E2, 05, 05]
+182CB; [7D 89 E4, 05, 05]
+182CC; [7D 89 E6, 05, 05]
+182CD; [7D 89 E8, 05, 05]
+182CE; [7D 89 EA, 05, 05]
+182CF; [7D 89 EC, 05, 05]
+182D0; [7D 89 EE, 05, 05]
+182D1; [7D 89 F0, 05, 05]
+182D2; [7D 89 F2, 05, 05]
+182D3; [7D 89 F4, 05, 05]
+182D4; [7D 89 F6, 05, 05]
+182D5; [7D 89 F8, 05, 05]
+182D6; [7D 89 FA, 05, 05]
+182D7; [7D 89 FC, 05, 05]
+182D8; [7D 89 FE, 05, 05]
+182D9; [7D 8A 02, 05, 05]
+182DA; [7D 8A 04, 05, 05]
+182DB; [7D 8A 06, 05, 05]
+182DC; [7D 8A 08, 05, 05]
+182DD; [7D 8A 0A, 05, 05]
+182DE; [7D 8A 0C, 05, 05]
+182DF; [7D 8A 0E, 05, 05]
+182E0; [7D 8A 10, 05, 05]
+182E1; [7D 8A 12, 05, 05]
+182E2; [7D 8A 14, 05, 05]
+182E3; [7D 8A 16, 05, 05]
+182E4; [7D 8A 18, 05, 05]
+182E5; [7D 8A 1A, 05, 05]
+182E6; [7D 8A 1C, 05, 05]
+182E7; [7D 8A 1E, 05, 05]
+182E8; [7D 8A 20, 05, 05]
+182E9; [7D 8A 22, 05, 05]
+182EA; [7D 8A 24, 05, 05]
+182EB; [7D 8A 26, 05, 05]
+182EC; [7D 8A 28, 05, 05]
+182ED; [7D 8A 2A, 05, 05]
+182EE; [7D 8A 2C, 05, 05]
+182EF; [7D 8A 2E, 05, 05]
+182F0; [7D 8A 30, 05, 05]
+182F1; [7D 8A 32, 05, 05]
+182F2; [7D 8A 34, 05, 05]
+182F3; [7D 8A 36, 05, 05]
+182F4; [7D 8A 38, 05, 05]
+182F5; [7D 8A 3A, 05, 05]
+182F6; [7D 8A 3C, 05, 05]
+182F7; [7D 8A 3E, 05, 05]
+182F8; [7D 8A 40, 05, 05]
+182F9; [7D 8A 42, 05, 05]
+182FA; [7D 8A 44, 05, 05]
+182FB; [7D 8A 46, 05, 05]
+182FC; [7D 8A 48, 05, 05]
+182FD; [7D 8A 4A, 05, 05]
+182FE; [7D 8A 4C, 05, 05]
+182FF; [7D 8A 4E, 05, 05]
+18300; [7D 8A 50, 05, 05]
+18301; [7D 8A 52, 05, 05]
+18302; [7D 8A 54, 05, 05]
+18303; [7D 8A 56, 05, 05]
+18304; [7D 8A 58, 05, 05]
+18305; [7D 8A 5A, 05, 05]
+18306; [7D 8A 5C, 05, 05]
+18307; [7D 8A 5E, 05, 05]
+18308; [7D 8A 60, 05, 05]
+18309; [7D 8A 62, 05, 05]
+1830A; [7D 8A 64, 05, 05]
+1830B; [7D 8A 66, 05, 05]
+1830C; [7D 8A 68, 05, 05]
+1830D; [7D 8A 6A, 05, 05]
+1830E; [7D 8A 6C, 05, 05]
+1830F; [7D 8A 6E, 05, 05]
+18310; [7D 8A 70, 05, 05]
+18311; [7D 8A 72, 05, 05]
+18312; [7D 8A 74, 05, 05]
+18313; [7D 8A 76, 05, 05]
+18314; [7D 8A 78, 05, 05]
+18315; [7D 8A 7A, 05, 05]
+18316; [7D 8A 7C, 05, 05]
+18317; [7D 8A 7E, 05, 05]
+18318; [7D 8A 80, 05, 05]
+18319; [7D 8A 82, 05, 05]
+1831A; [7D 8A 84, 05, 05]
+1831B; [7D 8A 86, 05, 05]
+1831C; [7D 8A 88, 05, 05]
+1831D; [7D 8A 8A, 05, 05]
+1831E; [7D 8A 8C, 05, 05]
+1831F; [7D 8A 8E, 05, 05]
+18320; [7D 8A 90, 05, 05]
+18321; [7D 8A 92, 05, 05]
+18322; [7D 8A 94, 05, 05]
+18323; [7D 8A 96, 05, 05]
+18324; [7D 8A 98, 05, 05]
+18325; [7D 8A 9A, 05, 05]
+18326; [7D 8A 9C, 05, 05]
+18327; [7D 8A 9E, 05, 05]
+18328; [7D 8A A0, 05, 05]
+18329; [7D 8A A2, 05, 05]
+1832A; [7D 8A A4, 05, 05]
+1832B; [7D 8A A6, 05, 05]
+1832C; [7D 8A A8, 05, 05]
+1832D; [7D 8A AA, 05, 05]
+1832E; [7D 8A AC, 05, 05]
+1832F; [7D 8A AE, 05, 05]
+18330; [7D 8A B0, 05, 05]
+18331; [7D 8A B2, 05, 05]
+18332; [7D 8A B4, 05, 05]
+18333; [7D 8A B6, 05, 05]
+18334; [7D 8A B8, 05, 05]
+18335; [7D 8A BA, 05, 05]
+18336; [7D 8A BC, 05, 05]
+18337; [7D 8A BE, 05, 05]
+18338; [7D 8A C0, 05, 05]
+18339; [7D 8A C2, 05, 05]
+1833A; [7D 8A C4, 05, 05]
+1833B; [7D 8A C6, 05, 05]
+1833C; [7D 8A C8, 05, 05]
+1833D; [7D 8A CA, 05, 05]
+1833E; [7D 8A CC, 05, 05]
+1833F; [7D 8A CE, 05, 05]
+18340; [7D 8A D0, 05, 05]
+18341; [7D 8A D2, 05, 05]
+18342; [7D 8A D4, 05, 05]
+18343; [7D 8A D6, 05, 05]
+18344; [7D 8A D8, 05, 05]
+18345; [7D 8A DA, 05, 05]
+18346; [7D 8A DC, 05, 05]
+18347; [7D 8A DE, 05, 05]
+18348; [7D 8A E0, 05, 05]
+18349; [7D 8A E2, 05, 05]
+1834A; [7D 8A E4, 05, 05]
+1834B; [7D 8A E6, 05, 05]
+1834C; [7D 8A E8, 05, 05]
+1834D; [7D 8A EA, 05, 05]
+1834E; [7D 8A EC, 05, 05]
+1834F; [7D 8A EE, 05, 05]
+18350; [7D 8A F0, 05, 05]
+18351; [7D 8A F2, 05, 05]
+18352; [7D 8A F4, 05, 05]
+18353; [7D 8A F6, 05, 05]
+18354; [7D 8A F8, 05, 05]
+18355; [7D 8A FA, 05, 05]
+18356; [7D 8A FC, 05, 05]
+18357; [7D 8A FE, 05, 05]
+18358; [7D 8B 02, 05, 05]
+18359; [7D 8B 04, 05, 05]
+1835A; [7D 8B 06, 05, 05]
+1835B; [7D 8B 08, 05, 05]
+1835C; [7D 8B 0A, 05, 05]
+1835D; [7D 8B 0C, 05, 05]
+1835E; [7D 8B 0E, 05, 05]
+1835F; [7D 8B 10, 05, 05]
+18360; [7D 8B 12, 05, 05]
+18361; [7D 8B 14, 05, 05]
+18362; [7D 8B 16, 05, 05]
+18363; [7D 8B 18, 05, 05]
+18364; [7D 8B 1A, 05, 05]
+18365; [7D 8B 1C, 05, 05]
+18366; [7D 8B 1E, 05, 05]
+18367; [7D 8B 20, 05, 05]
+18368; [7D 8B 22, 05, 05]
+18369; [7D 8B 24, 05, 05]
+1836A; [7D 8B 26, 05, 05]
+1836B; [7D 8B 28, 05, 05]
+1836C; [7D 8B 2A, 05, 05]
+1836D; [7D 8B 2C, 05, 05]
+1836E; [7D 8B 2E, 05, 05]
+1836F; [7D 8B 30, 05, 05]
+18370; [7D 8B 32, 05, 05]
+18371; [7D 8B 34, 05, 05]
+18372; [7D 8B 36, 05, 05]
+18373; [7D 8B 38, 05, 05]
+18374; [7D 8B 3A, 05, 05]
+18375; [7D 8B 3C, 05, 05]
+18376; [7D 8B 3E, 05, 05]
+18377; [7D 8B 40, 05, 05]
+18378; [7D 8B 42, 05, 05]
+18379; [7D 8B 44, 05, 05]
+1837A; [7D 8B 46, 05, 05]
+1837B; [7D 8B 48, 05, 05]
+1837C; [7D 8B 4A, 05, 05]
+1837D; [7D 8B 4C, 05, 05]
+1837E; [7D 8B 4E, 05, 05]
+1837F; [7D 8B 50, 05, 05]
+18380; [7D 8B 52, 05, 05]
+18381; [7D 8B 54, 05, 05]
+18382; [7D 8B 56, 05, 05]
+18383; [7D 8B 58, 05, 05]
+18384; [7D 8B 5A, 05, 05]
+18385; [7D 8B 5C, 05, 05]
+18386; [7D 8B 5E, 05, 05]
+18387; [7D 8B 60, 05, 05]
+18388; [7D 8B 62, 05, 05]
+18389; [7D 8B 64, 05, 05]
+1838A; [7D 8B 66, 05, 05]
+1838B; [7D 8B 68, 05, 05]
+1838C; [7D 8B 6A, 05, 05]
+1838D; [7D 8B 6C, 05, 05]
+1838E; [7D 8B 6E, 05, 05]
+1838F; [7D 8B 70, 05, 05]
+18390; [7D 8B 72, 05, 05]
+18391; [7D 8B 74, 05, 05]
+18392; [7D 8B 76, 05, 05]
+18393; [7D 8B 78, 05, 05]
+18394; [7D 8B 7A, 05, 05]
+18395; [7D 8B 7C, 05, 05]
+18396; [7D 8B 7E, 05, 05]
+18397; [7D 8B 80, 05, 05]
+18398; [7D 8B 82, 05, 05]
+18399; [7D 8B 84, 05, 05]
+1839A; [7D 8B 86, 05, 05]
+1839B; [7D 8B 88, 05, 05]
+1839C; [7D 8B 8A, 05, 05]
+1839D; [7D 8B 8C, 05, 05]
+1839E; [7D 8B 8E, 05, 05]
+1839F; [7D 8B 90, 05, 05]
+183A0; [7D 8B 92, 05, 05]
+183A1; [7D 8B 94, 05, 05]
+183A2; [7D 8B 96, 05, 05]
+183A3; [7D 8B 98, 05, 05]
+183A4; [7D 8B 9A, 05, 05]
+183A5; [7D 8B 9C, 05, 05]
+183A6; [7D 8B 9E, 05, 05]
+183A7; [7D 8B A0, 05, 05]
+183A8; [7D 8B A2, 05, 05]
+183A9; [7D 8B A4, 05, 05]
+183AA; [7D 8B A6, 05, 05]
+183AB; [7D 8B A8, 05, 05]
+183AC; [7D 8B AA, 05, 05]
+183AD; [7D 8B AC, 05, 05]
+183AE; [7D 8B AE, 05, 05]
+183AF; [7D 8B B0, 05, 05]
+183B0; [7D 8B B2, 05, 05]
+183B1; [7D 8B B4, 05, 05]
+183B2; [7D 8B B6, 05, 05]
+183B3; [7D 8B B8, 05, 05]
+183B4; [7D 8B BA, 05, 05]
+183B5; [7D 8B BC, 05, 05]
+183B6; [7D 8B BE, 05, 05]
+183B7; [7D 8B C0, 05, 05]
+183B8; [7D 8B C2, 05, 05]
+183B9; [7D 8B C4, 05, 05]
+183BA; [7D 8B C6, 05, 05]
+183BB; [7D 8B C8, 05, 05]
+183BC; [7D 8B CA, 05, 05]
+183BD; [7D 8B CC, 05, 05]
+183BE; [7D 8B CE, 05, 05]
+183BF; [7D 8B D0, 05, 05]
+183C0; [7D 8B D2, 05, 05]
+183C1; [7D 8B D4, 05, 05]
+183C2; [7D 8B D6, 05, 05]
+183C3; [7D 8B D8, 05, 05]
+183C4; [7D 8B DA, 05, 05]
+183C5; [7D 8B DC, 05, 05]
+183C6; [7D 8B DE, 05, 05]
+183C7; [7D 8B E0, 05, 05]
+183C8; [7D 8B E2, 05, 05]
+183C9; [7D 8B E4, 05, 05]
+183CA; [7D 8B E6, 05, 05]
+183CB; [7D 8B E8, 05, 05]
+183CC; [7D 8B EA, 05, 05]
+183CD; [7D 8B EC, 05, 05]
+183CE; [7D 8B EE, 05, 05]
+183CF; [7D 8B F0, 05, 05]
+183D0; [7D 8B F2, 05, 05]
+183D1; [7D 8B F4, 05, 05]
+183D2; [7D 8B F6, 05, 05]
+183D3; [7D 8B F8, 05, 05]
+183D4; [7D 8B FA, 05, 05]
+183D5; [7D 8B FC, 05, 05]
+183D6; [7D 8B FE, 05, 05]
+183D7; [7D 8C 02, 05, 05]
+183D8; [7D 8C 04, 05, 05]
+183D9; [7D 8C 06, 05, 05]
+183DA; [7D 8C 08, 05, 05]
+183DB; [7D 8C 0A, 05, 05]
+183DC; [7D 8C 0C, 05, 05]
+183DD; [7D 8C 0E, 05, 05]
+183DE; [7D 8C 10, 05, 05]
+183DF; [7D 8C 12, 05, 05]
+183E0; [7D 8C 14, 05, 05]
+183E1; [7D 8C 16, 05, 05]
+183E2; [7D 8C 18, 05, 05]
+183E3; [7D 8C 1A, 05, 05]
+183E4; [7D 8C 1C, 05, 05]
+183E5; [7D 8C 1E, 05, 05]
+183E6; [7D 8C 20, 05, 05]
+183E7; [7D 8C 22, 05, 05]
+183E8; [7D 8C 24, 05, 05]
+183E9; [7D 8C 26, 05, 05]
+183EA; [7D 8C 28, 05, 05]
+183EB; [7D 8C 2A, 05, 05]
+183EC; [7D 8C 2C, 05, 05]
+183ED; [7D 8C 2E, 05, 05]
+183EE; [7D 8C 30, 05, 05]
+183EF; [7D 8C 32, 05, 05]
+183F0; [7D 8C 34, 05, 05]
+183F1; [7D 8C 36, 05, 05]
+183F2; [7D 8C 38, 05, 05]
+183F3; [7D 8C 3A, 05, 05]
+183F4; [7D 8C 3C, 05, 05]
+183F5; [7D 8C 3E, 05, 05]
+183F6; [7D 8C 40, 05, 05]
+183F7; [7D 8C 42, 05, 05]
+183F8; [7D 8C 44, 05, 05]
+183F9; [7D 8C 46, 05, 05]
+183FA; [7D 8C 48, 05, 05]
+183FB; [7D 8C 4A, 05, 05]
+183FC; [7D 8C 4C, 05, 05]
+183FD; [7D 8C 4E, 05, 05]
+183FE; [7D 8C 50, 05, 05]
+183FF; [7D 8C 52, 05, 05]
+18400; [7D 8C 54, 05, 05]
+18401; [7D 8C 56, 05, 05]
+18402; [7D 8C 58, 05, 05]
+18403; [7D 8C 5A, 05, 05]
+18404; [7D 8C 5C, 05, 05]
+18405; [7D 8C 5E, 05, 05]
+18406; [7D 8C 60, 05, 05]
+18407; [7D 8C 62, 05, 05]
+18408; [7D 8C 64, 05, 05]
+18409; [7D 8C 66, 05, 05]
+1840A; [7D 8C 68, 05, 05]
+1840B; [7D 8C 6A, 05, 05]
+1840C; [7D 8C 6C, 05, 05]
+1840D; [7D 8C 6E, 05, 05]
+1840E; [7D 8C 70, 05, 05]
+1840F; [7D 8C 72, 05, 05]
+18410; [7D 8C 74, 05, 05]
+18411; [7D 8C 76, 05, 05]
+18412; [7D 8C 78, 05, 05]
+18413; [7D 8C 7A, 05, 05]
+18414; [7D 8C 7C, 05, 05]
+18415; [7D 8C 7E, 05, 05]
+18416; [7D 8C 80, 05, 05]
+18417; [7D 8C 82, 05, 05]
+18418; [7D 8C 84, 05, 05]
+18419; [7D 8C 86, 05, 05]
+1841A; [7D 8C 88, 05, 05]
+1841B; [7D 8C 8A, 05, 05]
+1841C; [7D 8C 8C, 05, 05]
+1841D; [7D 8C 8E, 05, 05]
+1841E; [7D 8C 90, 05, 05]
+1841F; [7D 8C 92, 05, 05]
+18420; [7D 8C 94, 05, 05]
+18421; [7D 8C 96, 05, 05]
+18422; [7D 8C 98, 05, 05]
+18423; [7D 8C 9A, 05, 05]
+18424; [7D 8C 9C, 05, 05]
+18425; [7D 8C 9E, 05, 05]
+18426; [7D 8C A0, 05, 05]
+18427; [7D 8C A2, 05, 05]
+18428; [7D 8C A4, 05, 05]
+18429; [7D 8C A6, 05, 05]
+1842A; [7D 8C A8, 05, 05]
+1842B; [7D 8C AA, 05, 05]
+1842C; [7D 8C AC, 05, 05]
+1842D; [7D 8C AE, 05, 05]
+1842E; [7D 8C B0, 05, 05]
+1842F; [7D 8C B2, 05, 05]
+18430; [7D 8C B4, 05, 05]
+18431; [7D 8C B6, 05, 05]
+18432; [7D 8C B8, 05, 05]
+18433; [7D 8C BA, 05, 05]
+18434; [7D 8C BC, 05, 05]
+18435; [7D 8C BE, 05, 05]
+18436; [7D 8C C0, 05, 05]
+18437; [7D 8C C2, 05, 05]
+18438; [7D 8C C4, 05, 05]
+18439; [7D 8C C6, 05, 05]
+1843A; [7D 8C C8, 05, 05]
+1843B; [7D 8C CA, 05, 05]
+1843C; [7D 8C CC, 05, 05]
+1843D; [7D 8C CE, 05, 05]
+1843E; [7D 8C D0, 05, 05]
+1843F; [7D 8C D2, 05, 05]
+18440; [7D 8C D4, 05, 05]
+18441; [7D 8C D6, 05, 05]
+18442; [7D 8C D8, 05, 05]
+18443; [7D 8C DA, 05, 05]
+18444; [7D 8C DC, 05, 05]
+18445; [7D 8C DE, 05, 05]
+18446; [7D 8C E0, 05, 05]
+18447; [7D 8C E2, 05, 05]
+18448; [7D 8C E4, 05, 05]
+18449; [7D 8C E6, 05, 05]
+1844A; [7D 8C E8, 05, 05]
+1844B; [7D 8C EA, 05, 05]
+1844C; [7D 8C EC, 05, 05]
+1844D; [7D 8C EE, 05, 05]
+1844E; [7D 8C F0, 05, 05]
+1844F; [7D 8C F2, 05, 05]
+18450; [7D 8C F4, 05, 05]
+18451; [7D 8C F6, 05, 05]
+18452; [7D 8C F8, 05, 05]
+18453; [7D 8C FA, 05, 05]
+18454; [7D 8C FC, 05, 05]
+18455; [7D 8C FE, 05, 05]
+18456; [7D 8D 02, 05, 05]
+18457; [7D 8D 04, 05, 05]
+18458; [7D 8D 06, 05, 05]
+18459; [7D 8D 08, 05, 05]
+1845A; [7D 8D 0A, 05, 05]
+1845B; [7D 8D 0C, 05, 05]
+1845C; [7D 8D 0E, 05, 05]
+1845D; [7D 8D 10, 05, 05]
+1845E; [7D 8D 12, 05, 05]
+1845F; [7D 8D 14, 05, 05]
+18460; [7D 8D 16, 05, 05]
+18461; [7D 8D 18, 05, 05]
+18462; [7D 8D 1A, 05, 05]
+18463; [7D 8D 1C, 05, 05]
+18464; [7D 8D 1E, 05, 05]
+18465; [7D 8D 20, 05, 05]
+18466; [7D 8D 22, 05, 05]
+18467; [7D 8D 24, 05, 05]
+18468; [7D 8D 26, 05, 05]
+18469; [7D 8D 28, 05, 05]
+1846A; [7D 8D 2A, 05, 05]
+1846B; [7D 8D 2C, 05, 05]
+1846C; [7D 8D 2E, 05, 05]
+1846D; [7D 8D 30, 05, 05]
+1846E; [7D 8D 32, 05, 05]
+1846F; [7D 8D 34, 05, 05]
+18470; [7D 8D 36, 05, 05]
+18471; [7D 8D 38, 05, 05]
+18472; [7D 8D 3A, 05, 05]
+18473; [7D 8D 3C, 05, 05]
+18474; [7D 8D 3E, 05, 05]
+18475; [7D 8D 40, 05, 05]
+18476; [7D 8D 42, 05, 05]
+18477; [7D 8D 44, 05, 05]
+18478; [7D 8D 46, 05, 05]
+18479; [7D 8D 48, 05, 05]
+1847A; [7D 8D 4A, 05, 05]
+1847B; [7D 8D 4C, 05, 05]
+1847C; [7D 8D 4E, 05, 05]
+1847D; [7D 8D 50, 05, 05]
+1847E; [7D 8D 52, 05, 05]
+1847F; [7D 8D 54, 05, 05]
+18480; [7D 8D 56, 05, 05]
+18481; [7D 8D 58, 05, 05]
+18482; [7D 8D 5A, 05, 05]
+18483; [7D 8D 5C, 05, 05]
+18484; [7D 8D 5E, 05, 05]
+18485; [7D 8D 60, 05, 05]
+18486; [7D 8D 62, 05, 05]
+18487; [7D 8D 64, 05, 05]
+18488; [7D 8D 66, 05, 05]
+18489; [7D 8D 68, 05, 05]
+1848A; [7D 8D 6A, 05, 05]
+1848B; [7D 8D 6C, 05, 05]
+1848C; [7D 8D 6E, 05, 05]
+1848D; [7D 8D 70, 05, 05]
+1848E; [7D 8D 72, 05, 05]
+1848F; [7D 8D 74, 05, 05]
+18490; [7D 8D 76, 05, 05]
+18491; [7D 8D 78, 05, 05]
+18492; [7D 8D 7A, 05, 05]
+18493; [7D 8D 7C, 05, 05]
+18494; [7D 8D 7E, 05, 05]
+18495; [7D 8D 80, 05, 05]
+18496; [7D 8D 82, 05, 05]
+18497; [7D 8D 84, 05, 05]
+18498; [7D 8D 86, 05, 05]
+18499; [7D 8D 88, 05, 05]
+1849A; [7D 8D 8A, 05, 05]
+1849B; [7D 8D 8C, 05, 05]
+1849C; [7D 8D 8E, 05, 05]
+1849D; [7D 8D 90, 05, 05]
+1849E; [7D 8D 92, 05, 05]
+1849F; [7D 8D 94, 05, 05]
+184A0; [7D 8D 96, 05, 05]
+184A1; [7D 8D 98, 05, 05]
+184A2; [7D 8D 9A, 05, 05]
+184A3; [7D 8D 9C, 05, 05]
+184A4; [7D 8D 9E, 05, 05]
+184A5; [7D 8D A0, 05, 05]
+184A6; [7D 8D A2, 05, 05]
+184A7; [7D 8D A4, 05, 05]
+184A8; [7D 8D A6, 05, 05]
+184A9; [7D 8D A8, 05, 05]
+184AA; [7D 8D AA, 05, 05]
+184AB; [7D 8D AC, 05, 05]
+184AC; [7D 8D AE, 05, 05]
+184AD; [7D 8D B0, 05, 05]
+184AE; [7D 8D B2, 05, 05]
+184AF; [7D 8D B4, 05, 05]
+184B0; [7D 8D B6, 05, 05]
+184B1; [7D 8D B8, 05, 05]
+184B2; [7D 8D BA, 05, 05]
+184B3; [7D 8D BC, 05, 05]
+184B4; [7D 8D BE, 05, 05]
+184B5; [7D 8D C0, 05, 05]
+184B6; [7D 8D C2, 05, 05]
+184B7; [7D 8D C4, 05, 05]
+184B8; [7D 8D C6, 05, 05]
+184B9; [7D 8D C8, 05, 05]
+184BA; [7D 8D CA, 05, 05]
+184BB; [7D 8D CC, 05, 05]
+184BC; [7D 8D CE, 05, 05]
+184BD; [7D 8D D0, 05, 05]
+184BE; [7D 8D D2, 05, 05]
+184BF; [7D 8D D4, 05, 05]
+184C0; [7D 8D D6, 05, 05]
+184C1; [7D 8D D8, 05, 05]
+184C2; [7D 8D DA, 05, 05]
+184C3; [7D 8D DC, 05, 05]
+184C4; [7D 8D DE, 05, 05]
+184C5; [7D 8D E0, 05, 05]
+184C6; [7D 8D E2, 05, 05]
+184C7; [7D 8D E4, 05, 05]
+184C8; [7D 8D E6, 05, 05]
+184C9; [7D 8D E8, 05, 05]
+184CA; [7D 8D EA, 05, 05]
+184CB; [7D 8D EC, 05, 05]
+184CC; [7D 8D EE, 05, 05]
+184CD; [7D 8D F0, 05, 05]
+184CE; [7D 8D F2, 05, 05]
+184CF; [7D 8D F4, 05, 05]
+184D0; [7D 8D F6, 05, 05]
+184D1; [7D 8D F8, 05, 05]
+184D2; [7D 8D FA, 05, 05]
+184D3; [7D 8D FC, 05, 05]
+184D4; [7D 8D FE, 05, 05]
+184D5; [7D 8E 02, 05, 05]
+184D6; [7D 8E 04, 05, 05]
+184D7; [7D 8E 06, 05, 05]
+184D8; [7D 8E 08, 05, 05]
+184D9; [7D 8E 0A, 05, 05]
+184DA; [7D 8E 0C, 05, 05]
+184DB; [7D 8E 0E, 05, 05]
+184DC; [7D 8E 10, 05, 05]
+184DD; [7D 8E 12, 05, 05]
+184DE; [7D 8E 14, 05, 05]
+184DF; [7D 8E 16, 05, 05]
+184E0; [7D 8E 18, 05, 05]
+184E1; [7D 8E 1A, 05, 05]
+184E2; [7D 8E 1C, 05, 05]
+184E3; [7D 8E 1E, 05, 05]
+184E4; [7D 8E 20, 05, 05]
+184E5; [7D 8E 22, 05, 05]
+184E6; [7D 8E 24, 05, 05]
+184E7; [7D 8E 26, 05, 05]
+184E8; [7D 8E 28, 05, 05]
+184E9; [7D 8E 2A, 05, 05]
+184EA; [7D 8E 2C, 05, 05]
+184EB; [7D 8E 2E, 05, 05]
+184EC; [7D 8E 30, 05, 05]
+184ED; [7D 8E 32, 05, 05]
+184EE; [7D 8E 34, 05, 05]
+184EF; [7D 8E 36, 05, 05]
+184F0; [7D 8E 38, 05, 05]
+184F1; [7D 8E 3A, 05, 05]
+184F2; [7D 8E 3C, 05, 05]
+184F3; [7D 8E 3E, 05, 05]
+184F4; [7D 8E 40, 05, 05]
+184F5; [7D 8E 42, 05, 05]
+184F6; [7D 8E 44, 05, 05]
+184F7; [7D 8E 46, 05, 05]
+184F8; [7D 8E 48, 05, 05]
+184F9; [7D 8E 4A, 05, 05]
+184FA; [7D 8E 4C, 05, 05]
+184FB; [7D 8E 4E, 05, 05]
+184FC; [7D 8E 50, 05, 05]
+184FD; [7D 8E 52, 05, 05]
+184FE; [7D 8E 54, 05, 05]
+184FF; [7D 8E 56, 05, 05]
+18500; [7D 8E 58, 05, 05]
+18501; [7D 8E 5A, 05, 05]
+18502; [7D 8E 5C, 05, 05]
+18503; [7D 8E 5E, 05, 05]
+18504; [7D 8E 60, 05, 05]
+18505; [7D 8E 62, 05, 05]
+18506; [7D 8E 64, 05, 05]
+18507; [7D 8E 66, 05, 05]
+18508; [7D 8E 68, 05, 05]
+18509; [7D 8E 6A, 05, 05]
+1850A; [7D 8E 6C, 05, 05]
+1850B; [7D 8E 6E, 05, 05]
+1850C; [7D 8E 70, 05, 05]
+1850D; [7D 8E 72, 05, 05]
+1850E; [7D 8E 74, 05, 05]
+1850F; [7D 8E 76, 05, 05]
+18510; [7D 8E 78, 05, 05]
+18511; [7D 8E 7A, 05, 05]
+18512; [7D 8E 7C, 05, 05]
+18513; [7D 8E 7E, 05, 05]
+18514; [7D 8E 80, 05, 05]
+18515; [7D 8E 82, 05, 05]
+18516; [7D 8E 84, 05, 05]
+18517; [7D 8E 86, 05, 05]
+18518; [7D 8E 88, 05, 05]
+18519; [7D 8E 8A, 05, 05]
+1851A; [7D 8E 8C, 05, 05]
+1851B; [7D 8E 8E, 05, 05]
+1851C; [7D 8E 90, 05, 05]
+1851D; [7D 8E 92, 05, 05]
+1851E; [7D 8E 94, 05, 05]
+1851F; [7D 8E 96, 05, 05]
+18520; [7D 8E 98, 05, 05]
+18521; [7D 8E 9A, 05, 05]
+18522; [7D 8E 9C, 05, 05]
+18523; [7D 8E 9E, 05, 05]
+18524; [7D 8E A0, 05, 05]
+18525; [7D 8E A2, 05, 05]
+18526; [7D 8E A4, 05, 05]
+18527; [7D 8E A6, 05, 05]
+18528; [7D 8E A8, 05, 05]
+18529; [7D 8E AA, 05, 05]
+1852A; [7D 8E AC, 05, 05]
+1852B; [7D 8E AE, 05, 05]
+1852C; [7D 8E B0, 05, 05]
+1852D; [7D 8E B2, 05, 05]
+1852E; [7D 8E B4, 05, 05]
+1852F; [7D 8E B6, 05, 05]
+18530; [7D 8E B8, 05, 05]
+18531; [7D 8E BA, 05, 05]
+18532; [7D 8E BC, 05, 05]
+18533; [7D 8E BE, 05, 05]
+18534; [7D 8E C0, 05, 05]
+18535; [7D 8E C2, 05, 05]
+18536; [7D 8E C4, 05, 05]
+18537; [7D 8E C6, 05, 05]
+18538; [7D 8E C8, 05, 05]
+18539; [7D 8E CA, 05, 05]
+1853A; [7D 8E CC, 05, 05]
+1853B; [7D 8E CE, 05, 05]
+1853C; [7D 8E D0, 05, 05]
+1853D; [7D 8E D2, 05, 05]
+1853E; [7D 8E D4, 05, 05]
+1853F; [7D 8E D6, 05, 05]
+18540; [7D 8E D8, 05, 05]
+18541; [7D 8E DA, 05, 05]
+18542; [7D 8E DC, 05, 05]
+18543; [7D 8E DE, 05, 05]
+18544; [7D 8E E0, 05, 05]
+18545; [7D 8E E2, 05, 05]
+18546; [7D 8E E4, 05, 05]
+18547; [7D 8E E6, 05, 05]
+18548; [7D 8E E8, 05, 05]
+18549; [7D 8E EA, 05, 05]
+1854A; [7D 8E EC, 05, 05]
+1854B; [7D 8E EE, 05, 05]
+1854C; [7D 8E F0, 05, 05]
+1854D; [7D 8E F2, 05, 05]
+1854E; [7D 8E F4, 05, 05]
+1854F; [7D 8E F6, 05, 05]
+18550; [7D 8E F8, 05, 05]
+18551; [7D 8E FA, 05, 05]
+18552; [7D 8E FC, 05, 05]
+18553; [7D 8E FE, 05, 05]
+18554; [7D 8F 02, 05, 05]
+18555; [7D 8F 04, 05, 05]
+18556; [7D 8F 06, 05, 05]
+18557; [7D 8F 08, 05, 05]
+18558; [7D 8F 0A, 05, 05]
+18559; [7D 8F 0C, 05, 05]
+1855A; [7D 8F 0E, 05, 05]
+1855B; [7D 8F 10, 05, 05]
+1855C; [7D 8F 12, 05, 05]
+1855D; [7D 8F 14, 05, 05]
+1855E; [7D 8F 16, 05, 05]
+1855F; [7D 8F 18, 05, 05]
+18560; [7D 8F 1A, 05, 05]
+18561; [7D 8F 1C, 05, 05]
+18562; [7D 8F 1E, 05, 05]
+18563; [7D 8F 20, 05, 05]
+18564; [7D 8F 22, 05, 05]
+18565; [7D 8F 24, 05, 05]
+18566; [7D 8F 26, 05, 05]
+18567; [7D 8F 28, 05, 05]
+18568; [7D 8F 2A, 05, 05]
+18569; [7D 8F 2C, 05, 05]
+1856A; [7D 8F 2E, 05, 05]
+1856B; [7D 8F 30, 05, 05]
+1856C; [7D 8F 32, 05, 05]
+1856D; [7D 8F 34, 05, 05]
+1856E; [7D 8F 36, 05, 05]
+1856F; [7D 8F 38, 05, 05]
+18570; [7D 8F 3A, 05, 05]
+18571; [7D 8F 3C, 05, 05]
+18572; [7D 8F 3E, 05, 05]
+18573; [7D 8F 40, 05, 05]
+18574; [7D 8F 42, 05, 05]
+18575; [7D 8F 44, 05, 05]
+18576; [7D 8F 46, 05, 05]
+18577; [7D 8F 48, 05, 05]
+18578; [7D 8F 4A, 05, 05]
+18579; [7D 8F 4C, 05, 05]
+1857A; [7D 8F 4E, 05, 05]
+1857B; [7D 8F 50, 05, 05]
+1857C; [7D 8F 52, 05, 05]
+1857D; [7D 8F 54, 05, 05]
+1857E; [7D 8F 56, 05, 05]
+1857F; [7D 8F 58, 05, 05]
+18580; [7D 8F 5A, 05, 05]
+18581; [7D 8F 5C, 05, 05]
+18582; [7D 8F 5E, 05, 05]
+18583; [7D 8F 60, 05, 05]
+18584; [7D 8F 62, 05, 05]
+18585; [7D 8F 64, 05, 05]
+18586; [7D 8F 66, 05, 05]
+18587; [7D 8F 68, 05, 05]
+18588; [7D 8F 6A, 05, 05]
+18589; [7D 8F 6C, 05, 05]
+1858A; [7D 8F 6E, 05, 05]
+1858B; [7D 8F 70, 05, 05]
+1858C; [7D 8F 72, 05, 05]
+1858D; [7D 8F 74, 05, 05]
+1858E; [7D 8F 76, 05, 05]
+1858F; [7D 8F 78, 05, 05]
+18590; [7D 8F 7A, 05, 05]
+18591; [7D 8F 7C, 05, 05]
+18592; [7D 8F 7E, 05, 05]
+18593; [7D 8F 80, 05, 05]
+18594; [7D 8F 82, 05, 05]
+18595; [7D 8F 84, 05, 05]
+18596; [7D 8F 86, 05, 05]
+18597; [7D 8F 88, 05, 05]
+18598; [7D 8F 8A, 05, 05]
+18599; [7D 8F 8C, 05, 05]
+1859A; [7D 8F 8E, 05, 05]
+1859B; [7D 8F 90, 05, 05]
+1859C; [7D 8F 92, 05, 05]
+1859D; [7D 8F 94, 05, 05]
+1859E; [7D 8F 96, 05, 05]
+1859F; [7D 8F 98, 05, 05]
+185A0; [7D 8F 9A, 05, 05]
+185A1; [7D 8F 9C, 05, 05]
+185A2; [7D 8F 9E, 05, 05]
+185A3; [7D 8F A0, 05, 05]
+185A4; [7D 8F A2, 05, 05]
+185A5; [7D 8F A4, 05, 05]
+185A6; [7D 8F A6, 05, 05]
+185A7; [7D 8F A8, 05, 05]
+185A8; [7D 8F AA, 05, 05]
+185A9; [7D 8F AC, 05, 05]
+185AA; [7D 8F AE, 05, 05]
+185AB; [7D 8F B0, 05, 05]
+185AC; [7D 8F B2, 05, 05]
+185AD; [7D 8F B4, 05, 05]
+185AE; [7D 8F B6, 05, 05]
+185AF; [7D 8F B8, 05, 05]
+185B0; [7D 8F BA, 05, 05]
+185B1; [7D 8F BC, 05, 05]
+185B2; [7D 8F BE, 05, 05]
+185B3; [7D 8F C0, 05, 05]
+185B4; [7D 8F C2, 05, 05]
+185B5; [7D 8F C4, 05, 05]
+185B6; [7D 8F C6, 05, 05]
+185B7; [7D 8F C8, 05, 05]
+185B8; [7D 8F CA, 05, 05]
+185B9; [7D 8F CC, 05, 05]
+185BA; [7D 8F CE, 05, 05]
+185BB; [7D 8F D0, 05, 05]
+185BC; [7D 8F D2, 05, 05]
+185BD; [7D 8F D4, 05, 05]
+185BE; [7D 8F D6, 05, 05]
+185BF; [7D 8F D8, 05, 05]
+185C0; [7D 8F DA, 05, 05]
+185C1; [7D 8F DC, 05, 05]
+185C2; [7D 8F DE, 05, 05]
+185C3; [7D 8F E0, 05, 05]
+185C4; [7D 8F E2, 05, 05]
+185C5; [7D 8F E4, 05, 05]
+185C6; [7D 8F E6, 05, 05]
+185C7; [7D 8F E8, 05, 05]
+185C8; [7D 8F EA, 05, 05]
+185C9; [7D 8F EC, 05, 05]
+185CA; [7D 8F EE, 05, 05]
+185CB; [7D 8F F0, 05, 05]
+185CC; [7D 8F F2, 05, 05]
+185CD; [7D 8F F4, 05, 05]
+185CE; [7D 8F F6, 05, 05]
+185CF; [7D 8F F8, 05, 05]
+185D0; [7D 8F FA, 05, 05]
+185D1; [7D 8F FC, 05, 05]
+185D2; [7D 8F FE, 05, 05]
+185D3; [7D 90 02, 05, 05]
+185D4; [7D 90 04, 05, 05]
+185D5; [7D 90 06, 05, 05]
+185D6; [7D 90 08, 05, 05]
+185D7; [7D 90 0A, 05, 05]
+185D8; [7D 90 0C, 05, 05]
+185D9; [7D 90 0E, 05, 05]
+185DA; [7D 90 10, 05, 05]
+185DB; [7D 90 12, 05, 05]
+185DC; [7D 90 14, 05, 05]
+185DD; [7D 90 16, 05, 05]
+185DE; [7D 90 18, 05, 05]
+185DF; [7D 90 1A, 05, 05]
+185E0; [7D 90 1C, 05, 05]
+185E1; [7D 90 1E, 05, 05]
+185E2; [7D 90 20, 05, 05]
+185E3; [7D 90 22, 05, 05]
+185E4; [7D 90 24, 05, 05]
+185E5; [7D 90 26, 05, 05]
+185E6; [7D 90 28, 05, 05]
+185E7; [7D 90 2A, 05, 05]
+185E8; [7D 90 2C, 05, 05]
+185E9; [7D 90 2E, 05, 05]
+185EA; [7D 90 30, 05, 05]
+185EB; [7D 90 32, 05, 05]
+185EC; [7D 90 34, 05, 05]
+185ED; [7D 90 36, 05, 05]
+185EE; [7D 90 38, 05, 05]
+185EF; [7D 90 3A, 05, 05]
+185F0; [7D 90 3C, 05, 05]
+185F1; [7D 90 3E, 05, 05]
+185F2; [7D 90 40, 05, 05]
+185F3; [7D 90 42, 05, 05]
+185F4; [7D 90 44, 05, 05]
+185F5; [7D 90 46, 05, 05]
+185F6; [7D 90 48, 05, 05]
+185F7; [7D 90 4A, 05, 05]
+185F8; [7D 90 4C, 05, 05]
+185F9; [7D 90 4E, 05, 05]
+185FA; [7D 90 50, 05, 05]
+185FB; [7D 90 52, 05, 05]
+185FC; [7D 90 54, 05, 05]
+185FD; [7D 90 56, 05, 05]
+185FE; [7D 90 58, 05, 05]
+185FF; [7D 90 5A, 05, 05]
+18600; [7D 90 5C, 05, 05]
+18601; [7D 90 5E, 05, 05]
+18602; [7D 90 60, 05, 05]
+18603; [7D 90 62, 05, 05]
+18604; [7D 90 64, 05, 05]
+18605; [7D 90 66, 05, 05]
+18606; [7D 90 68, 05, 05]
+18607; [7D 90 6A, 05, 05]
+18608; [7D 90 6C, 05, 05]
+18609; [7D 90 6E, 05, 05]
+1860A; [7D 90 70, 05, 05]
+1860B; [7D 90 72, 05, 05]
+1860C; [7D 90 74, 05, 05]
+1860D; [7D 90 76, 05, 05]
+1860E; [7D 90 78, 05, 05]
+1860F; [7D 90 7A, 05, 05]
+18610; [7D 90 7C, 05, 05]
+18611; [7D 90 7E, 05, 05]
+18612; [7D 90 80, 05, 05]
+18613; [7D 90 82, 05, 05]
+18614; [7D 90 84, 05, 05]
+18615; [7D 90 86, 05, 05]
+18616; [7D 90 88, 05, 05]
+18617; [7D 90 8A, 05, 05]
+18618; [7D 90 8C, 05, 05]
+18619; [7D 90 8E, 05, 05]
+1861A; [7D 90 90, 05, 05]
+1861B; [7D 90 92, 05, 05]
+1861C; [7D 90 94, 05, 05]
+1861D; [7D 90 96, 05, 05]
+1861E; [7D 90 98, 05, 05]
+1861F; [7D 90 9A, 05, 05]
+18620; [7D 90 9C, 05, 05]
+18621; [7D 90 9E, 05, 05]
+18622; [7D 90 A0, 05, 05]
+18623; [7D 90 A2, 05, 05]
+18624; [7D 90 A4, 05, 05]
+18625; [7D 90 A6, 05, 05]
+18626; [7D 90 A8, 05, 05]
+18627; [7D 90 AA, 05, 05]
+18628; [7D 90 AC, 05, 05]
+18629; [7D 90 AE, 05, 05]
+1862A; [7D 90 B0, 05, 05]
+1862B; [7D 90 B2, 05, 05]
+1862C; [7D 90 B4, 05, 05]
+1862D; [7D 90 B6, 05, 05]
+1862E; [7D 90 B8, 05, 05]
+1862F; [7D 90 BA, 05, 05]
+18630; [7D 90 BC, 05, 05]
+18631; [7D 90 BE, 05, 05]
+18632; [7D 90 C0, 05, 05]
+18633; [7D 90 C2, 05, 05]
+18634; [7D 90 C4, 05, 05]
+18635; [7D 90 C6, 05, 05]
+18636; [7D 90 C8, 05, 05]
+18637; [7D 90 CA, 05, 05]
+18638; [7D 90 CC, 05, 05]
+18639; [7D 90 CE, 05, 05]
+1863A; [7D 90 D0, 05, 05]
+1863B; [7D 90 D2, 05, 05]
+1863C; [7D 90 D4, 05, 05]
+1863D; [7D 90 D6, 05, 05]
+1863E; [7D 90 D8, 05, 05]
+1863F; [7D 90 DA, 05, 05]
+18640; [7D 90 DC, 05, 05]
+18641; [7D 90 DE, 05, 05]
+18642; [7D 90 E0, 05, 05]
+18643; [7D 90 E2, 05, 05]
+18644; [7D 90 E4, 05, 05]
+18645; [7D 90 E6, 05, 05]
+18646; [7D 90 E8, 05, 05]
+18647; [7D 90 EA, 05, 05]
+18648; [7D 90 EC, 05, 05]
+18649; [7D 90 EE, 05, 05]
+1864A; [7D 90 F0, 05, 05]
+1864B; [7D 90 F2, 05, 05]
+1864C; [7D 90 F4, 05, 05]
+1864D; [7D 90 F6, 05, 05]
+1864E; [7D 90 F8, 05, 05]
+1864F; [7D 90 FA, 05, 05]
+18650; [7D 90 FC, 05, 05]
+18651; [7D 90 FE, 05, 05]
+18652; [7D 91 02, 05, 05]
+18653; [7D 91 04, 05, 05]
+18654; [7D 91 06, 05, 05]
+18655; [7D 91 08, 05, 05]
+18656; [7D 91 0A, 05, 05]
+18657; [7D 91 0C, 05, 05]
+18658; [7D 91 0E, 05, 05]
+18659; [7D 91 10, 05, 05]
+1865A; [7D 91 12, 05, 05]
+1865B; [7D 91 14, 05, 05]
+1865C; [7D 91 16, 05, 05]
+1865D; [7D 91 18, 05, 05]
+1865E; [7D 91 1A, 05, 05]
+1865F; [7D 91 1C, 05, 05]
+18660; [7D 91 1E, 05, 05]
+18661; [7D 91 20, 05, 05]
+18662; [7D 91 22, 05, 05]
+18663; [7D 91 24, 05, 05]
+18664; [7D 91 26, 05, 05]
+18665; [7D 91 28, 05, 05]
+18666; [7D 91 2A, 05, 05]
+18667; [7D 91 2C, 05, 05]
+18668; [7D 91 2E, 05, 05]
+18669; [7D 91 30, 05, 05]
+1866A; [7D 91 32, 05, 05]
+1866B; [7D 91 34, 05, 05]
+1866C; [7D 91 36, 05, 05]
+1866D; [7D 91 38, 05, 05]
+1866E; [7D 91 3A, 05, 05]
+1866F; [7D 91 3C, 05, 05]
+18670; [7D 91 3E, 05, 05]
+18671; [7D 91 40, 05, 05]
+18672; [7D 91 42, 05, 05]
+18673; [7D 91 44, 05, 05]
+18674; [7D 91 46, 05, 05]
+18675; [7D 91 48, 05, 05]
+18676; [7D 91 4A, 05, 05]
+18677; [7D 91 4C, 05, 05]
+18678; [7D 91 4E, 05, 05]
+18679; [7D 91 50, 05, 05]
+1867A; [7D 91 52, 05, 05]
+1867B; [7D 91 54, 05, 05]
+1867C; [7D 91 56, 05, 05]
+1867D; [7D 91 58, 05, 05]
+1867E; [7D 91 5A, 05, 05]
+1867F; [7D 91 5C, 05, 05]
+18680; [7D 91 5E, 05, 05]
+18681; [7D 91 60, 05, 05]
+18682; [7D 91 62, 05, 05]
+18683; [7D 91 64, 05, 05]
+18684; [7D 91 66, 05, 05]
+18685; [7D 91 68, 05, 05]
+18686; [7D 91 6A, 05, 05]
+18687; [7D 91 6C, 05, 05]
+18688; [7D 91 6E, 05, 05]
+18689; [7D 91 70, 05, 05]
+1868A; [7D 91 72, 05, 05]
+1868B; [7D 91 74, 05, 05]
+1868C; [7D 91 76, 05, 05]
+1868D; [7D 91 78, 05, 05]
+1868E; [7D 91 7A, 05, 05]
+1868F; [7D 91 7C, 05, 05]
+18690; [7D 91 7E, 05, 05]
+18691; [7D 91 80, 05, 05]
+18692; [7D 91 82, 05, 05]
+18693; [7D 91 84, 05, 05]
+18694; [7D 91 86, 05, 05]
+18695; [7D 91 88, 05, 05]
+18696; [7D 91 8A, 05, 05]
+18697; [7D 91 8C, 05, 05]
+18698; [7D 91 8E, 05, 05]
+18699; [7D 91 90, 05, 05]
+1869A; [7D 91 92, 05, 05]
+1869B; [7D 91 94, 05, 05]
+1869C; [7D 91 96, 05, 05]
+1869D; [7D 91 98, 05, 05]
+1869E; [7D 91 9A, 05, 05]
+1869F; [7D 91 9C, 05, 05]
+186A0; [7D 91 9E, 05, 05]
+186A1; [7D 91 A0, 05, 05]
+186A2; [7D 91 A2, 05, 05]
+186A3; [7D 91 A4, 05, 05]
+186A4; [7D 91 A6, 05, 05]
+186A5; [7D 91 A8, 05, 05]
+186A6; [7D 91 AA, 05, 05]
+186A7; [7D 91 AC, 05, 05]
+186A8; [7D 91 AE, 05, 05]
+186A9; [7D 91 B0, 05, 05]
+186AA; [7D 91 B2, 05, 05]
+186AB; [7D 91 B4, 05, 05]
+186AC; [7D 91 B6, 05, 05]
+186AD; [7D 91 B8, 05, 05]
+186AE; [7D 91 BA, 05, 05]
+186AF; [7D 91 BC, 05, 05]
+186B0; [7D 91 BE, 05, 05]
+186B1; [7D 91 C0, 05, 05]
+186B2; [7D 91 C2, 05, 05]
+186B3; [7D 91 C4, 05, 05]
+186B4; [7D 91 C6, 05, 05]
+186B5; [7D 91 C8, 05, 05]
+186B6; [7D 91 CA, 05, 05]
+186B7; [7D 91 CC, 05, 05]
+186B8; [7D 91 CE, 05, 05]
+186B9; [7D 91 D0, 05, 05]
+186BA; [7D 91 D2, 05, 05]
+186BB; [7D 91 D4, 05, 05]
+186BC; [7D 91 D6, 05, 05]
+186BD; [7D 91 D8, 05, 05]
+186BE; [7D 91 DA, 05, 05]
+186BF; [7D 91 DC, 05, 05]
+186C0; [7D 91 DE, 05, 05]
+186C1; [7D 91 E0, 05, 05]
+186C2; [7D 91 E2, 05, 05]
+186C3; [7D 91 E4, 05, 05]
+186C4; [7D 91 E6, 05, 05]
+186C5; [7D 91 E8, 05, 05]
+186C6; [7D 91 EA, 05, 05]
+186C7; [7D 91 EC, 05, 05]
+186C8; [7D 91 EE, 05, 05]
+186C9; [7D 91 F0, 05, 05]
+186CA; [7D 91 F2, 05, 05]
+186CB; [7D 91 F4, 05, 05]
+186CC; [7D 91 F6, 05, 05]
+186CD; [7D 91 F8, 05, 05]
+186CE; [7D 91 FA, 05, 05]
+186CF; [7D 91 FC, 05, 05]
+186D0; [7D 91 FE, 05, 05]
+186D1; [7D 92 02, 05, 05]
+186D2; [7D 92 04, 05, 05]
+186D3; [7D 92 06, 05, 05]
+186D4; [7D 92 08, 05, 05]
+186D5; [7D 92 0A, 05, 05]
+186D6; [7D 92 0C, 05, 05]
+186D7; [7D 92 0E, 05, 05]
+186D8; [7D 92 10, 05, 05]
+186D9; [7D 92 12, 05, 05]
+186DA; [7D 92 14, 05, 05]
+186DB; [7D 92 16, 05, 05]
+186DC; [7D 92 18, 05, 05]
+186DD; [7D 92 1A, 05, 05]
+186DE; [7D 92 1C, 05, 05]
+186DF; [7D 92 1E, 05, 05]
+186E0; [7D 92 20, 05, 05]
+186E1; [7D 92 22, 05, 05]
+186E2; [7D 92 24, 05, 05]
+186E3; [7D 92 26, 05, 05]
+186E4; [7D 92 28, 05, 05]
+186E5; [7D 92 2A, 05, 05]
+186E6; [7D 92 2C, 05, 05]
+186E7; [7D 92 2E, 05, 05]
+186E8; [7D 92 30, 05, 05]
+186E9; [7D 92 32, 05, 05]
+186EA; [7D 92 34, 05, 05]
+186EB; [7D 92 36, 05, 05]
+186EC; [7D 92 38, 05, 05]
+186ED; [7D 92 3A, 05, 05]
+186EE; [7D 92 3C, 05, 05]
+186EF; [7D 92 3E, 05, 05]
+186F0; [7D 92 40, 05, 05]
+186F1; [7D 92 42, 05, 05]
+186F2; [7D 92 44, 05, 05]
+186F3; [7D 92 46, 05, 05]
+186F4; [7D 92 48, 05, 05]
+186F5; [7D 92 4A, 05, 05]
+186F6; [7D 92 4C, 05, 05]
+186F7; [7D 92 4E, 05, 05]
+186F8; [7D 92 50, 05, 05]
+186F9; [7D 92 52, 05, 05]
+186FA; [7D 92 54, 05, 05]
+186FB; [7D 92 56, 05, 05]
+186FC; [7D 92 58, 05, 05]
+186FD; [7D 92 5A, 05, 05]
+186FE; [7D 92 5C, 05, 05]
+186FF; [7D 92 5E, 05, 05]
+18700; [7D 92 60, 05, 05]
+18701; [7D 92 62, 05, 05]
+18702; [7D 92 64, 05, 05]
+18703; [7D 92 66, 05, 05]
+18704; [7D 92 68, 05, 05]
+18705; [7D 92 6A, 05, 05]
+18706; [7D 92 6C, 05, 05]
+18707; [7D 92 6E, 05, 05]
+18708; [7D 92 70, 05, 05]
+18709; [7D 92 72, 05, 05]
+1870A; [7D 92 74, 05, 05]
+1870B; [7D 92 76, 05, 05]
+1870C; [7D 92 78, 05, 05]
+1870D; [7D 92 7A, 05, 05]
+1870E; [7D 92 7C, 05, 05]
+1870F; [7D 92 7E, 05, 05]
+18710; [7D 92 80, 05, 05]
+18711; [7D 92 82, 05, 05]
+18712; [7D 92 84, 05, 05]
+18713; [7D 92 86, 05, 05]
+18714; [7D 92 88, 05, 05]
+18715; [7D 92 8A, 05, 05]
+18716; [7D 92 8C, 05, 05]
+18717; [7D 92 8E, 05, 05]
+18718; [7D 92 90, 05, 05]
+18719; [7D 92 92, 05, 05]
+1871A; [7D 92 94, 05, 05]
+1871B; [7D 92 96, 05, 05]
+1871C; [7D 92 98, 05, 05]
+1871D; [7D 92 9A, 05, 05]
+1871E; [7D 92 9C, 05, 05]
+1871F; [7D 92 9E, 05, 05]
+18720; [7D 92 A0, 05, 05]
+18721; [7D 92 A2, 05, 05]
+18722; [7D 92 A4, 05, 05]
+18723; [7D 92 A6, 05, 05]
+18724; [7D 92 A8, 05, 05]
+18725; [7D 92 AA, 05, 05]
+18726; [7D 92 AC, 05, 05]
+18727; [7D 92 AE, 05, 05]
+18728; [7D 92 B0, 05, 05]
+18729; [7D 92 B2, 05, 05]
+1872A; [7D 92 B4, 05, 05]
+1872B; [7D 92 B6, 05, 05]
+1872C; [7D 92 B8, 05, 05]
+1872D; [7D 92 BA, 05, 05]
+1872E; [7D 92 BC, 05, 05]
+1872F; [7D 92 BE, 05, 05]
+18730; [7D 92 C0, 05, 05]
+18731; [7D 92 C2, 05, 05]
+18732; [7D 92 C4, 05, 05]
+18733; [7D 92 C6, 05, 05]
+18734; [7D 92 C8, 05, 05]
+18735; [7D 92 CA, 05, 05]
+18736; [7D 92 CC, 05, 05]
+18737; [7D 92 CE, 05, 05]
+18738; [7D 92 D0, 05, 05]
+18739; [7D 92 D2, 05, 05]
+1873A; [7D 92 D4, 05, 05]
+1873B; [7D 92 D6, 05, 05]
+1873C; [7D 92 D8, 05, 05]
+1873D; [7D 92 DA, 05, 05]
+1873E; [7D 92 DC, 05, 05]
+1873F; [7D 92 DE, 05, 05]
+18740; [7D 92 E0, 05, 05]
+18741; [7D 92 E2, 05, 05]
+18742; [7D 92 E4, 05, 05]
+18743; [7D 92 E6, 05, 05]
+18744; [7D 92 E8, 05, 05]
+18745; [7D 92 EA, 05, 05]
+18746; [7D 92 EC, 05, 05]
+18747; [7D 92 EE, 05, 05]
+18748; [7D 92 F0, 05, 05]
+18749; [7D 92 F2, 05, 05]
+1874A; [7D 92 F4, 05, 05]
+1874B; [7D 92 F6, 05, 05]
+1874C; [7D 92 F8, 05, 05]
+1874D; [7D 92 FA, 05, 05]
+1874E; [7D 92 FC, 05, 05]
+1874F; [7D 92 FE, 05, 05]
+18750; [7D 93 02, 05, 05]
+18751; [7D 93 04, 05, 05]
+18752; [7D 93 06, 05, 05]
+18753; [7D 93 08, 05, 05]
+18754; [7D 93 0A, 05, 05]
+18755; [7D 93 0C, 05, 05]
+18756; [7D 93 0E, 05, 05]
+18757; [7D 93 10, 05, 05]
+18758; [7D 93 12, 05, 05]
+18759; [7D 93 14, 05, 05]
+1875A; [7D 93 16, 05, 05]
+1875B; [7D 93 18, 05, 05]
+1875C; [7D 93 1A, 05, 05]
+1875D; [7D 93 1C, 05, 05]
+1875E; [7D 93 1E, 05, 05]
+1875F; [7D 93 20, 05, 05]
+18760; [7D 93 22, 05, 05]
+18761; [7D 93 24, 05, 05]
+18762; [7D 93 26, 05, 05]
+18763; [7D 93 28, 05, 05]
+18764; [7D 93 2A, 05, 05]
+18765; [7D 93 2C, 05, 05]
+18766; [7D 93 2E, 05, 05]
+18767; [7D 93 30, 05, 05]
+18768; [7D 93 32, 05, 05]
+18769; [7D 93 34, 05, 05]
+1876A; [7D 93 36, 05, 05]
+1876B; [7D 93 38, 05, 05]
+1876C; [7D 93 3A, 05, 05]
+1876D; [7D 93 3C, 05, 05]
+1876E; [7D 93 3E, 05, 05]
+1876F; [7D 93 40, 05, 05]
+18770; [7D 93 42, 05, 05]
+18771; [7D 93 44, 05, 05]
+18772; [7D 93 46, 05, 05]
+18773; [7D 93 48, 05, 05]
+18774; [7D 93 4A, 05, 05]
+18775; [7D 93 4C, 05, 05]
+18776; [7D 93 4E, 05, 05]
+18777; [7D 93 50, 05, 05]
+18778; [7D 93 52, 05, 05]
+18779; [7D 93 54, 05, 05]
+1877A; [7D 93 56, 05, 05]
+1877B; [7D 93 58, 05, 05]
+1877C; [7D 93 5A, 05, 05]
+1877D; [7D 93 5C, 05, 05]
+1877E; [7D 93 5E, 05, 05]
+1877F; [7D 93 60, 05, 05]
+18780; [7D 93 62, 05, 05]
+18781; [7D 93 64, 05, 05]
+18782; [7D 93 66, 05, 05]
+18783; [7D 93 68, 05, 05]
+18784; [7D 93 6A, 05, 05]
+18785; [7D 93 6C, 05, 05]
+18786; [7D 93 6E, 05, 05]
+18787; [7D 93 70, 05, 05]
+18788; [7D 93 72, 05, 05]
+18789; [7D 93 74, 05, 05]
+1878A; [7D 93 76, 05, 05]
+1878B; [7D 93 78, 05, 05]
+1878C; [7D 93 7A, 05, 05]
+1878D; [7D 93 7C, 05, 05]
+1878E; [7D 93 7E, 05, 05]
+1878F; [7D 93 80, 05, 05]
+18790; [7D 93 82, 05, 05]
+18791; [7D 93 84, 05, 05]
+18792; [7D 93 86, 05, 05]
+18793; [7D 93 88, 05, 05]
+18794; [7D 93 8A, 05, 05]
+18795; [7D 93 8C, 05, 05]
+18796; [7D 93 8E, 05, 05]
+18797; [7D 93 90, 05, 05]
+18798; [7D 93 92, 05, 05]
+18799; [7D 93 94, 05, 05]
+1879A; [7D 93 96, 05, 05]
+1879B; [7D 93 98, 05, 05]
+1879C; [7D 93 9A, 05, 05]
+1879D; [7D 93 9C, 05, 05]
+1879E; [7D 93 9E, 05, 05]
+1879F; [7D 93 A0, 05, 05]
+187A0; [7D 93 A2, 05, 05]
+187A1; [7D 93 A4, 05, 05]
+187A2; [7D 93 A6, 05, 05]
+187A3; [7D 93 A8, 05, 05]
+187A4; [7D 93 AA, 05, 05]
+187A5; [7D 93 AC, 05, 05]
+187A6; [7D 93 AE, 05, 05]
+187A7; [7D 93 B0, 05, 05]
+187A8; [7D 93 B2, 05, 05]
+187A9; [7D 93 B4, 05, 05]
+187AA; [7D 93 B6, 05, 05]
+187AB; [7D 93 B8, 05, 05]
+187AC; [7D 93 BA, 05, 05]
+187AD; [7D 93 BC, 05, 05]
+187AE; [7D 93 BE, 05, 05]
+187AF; [7D 93 C0, 05, 05]
+187B0; [7D 93 C2, 05, 05]
+187B1; [7D 93 C4, 05, 05]
+187B2; [7D 93 C6, 05, 05]
+187B3; [7D 93 C8, 05, 05]
+187B4; [7D 93 CA, 05, 05]
+187B5; [7D 93 CC, 05, 05]
+187B6; [7D 93 CE, 05, 05]
+187B7; [7D 93 D0, 05, 05]
+187B8; [7D 93 D2, 05, 05]
+187B9; [7D 93 D4, 05, 05]
+187BA; [7D 93 D6, 05, 05]
+187BB; [7D 93 D8, 05, 05]
+187BC; [7D 93 DA, 05, 05]
+187BD; [7D 93 DC, 05, 05]
+187BE; [7D 93 DE, 05, 05]
+187BF; [7D 93 E0, 05, 05]
+187C0; [7D 93 E2, 05, 05]
+187C1; [7D 93 E4, 05, 05]
+187C2; [7D 93 E6, 05, 05]
+187C3; [7D 93 E8, 05, 05]
+187C4; [7D 93 EA, 05, 05]
+187C5; [7D 93 EC, 05, 05]
+187C6; [7D 93 EE, 05, 05]
+187C7; [7D 93 F0, 05, 05]
+187C8; [7D 93 F2, 05, 05]
+187C9; [7D 93 F4, 05, 05]
+187CA; [7D 93 F6, 05, 05]
+187CB; [7D 93 F8, 05, 05]
+187CC; [7D 93 FA, 05, 05]
+187CD; [7D 93 FC, 05, 05]
+187CE; [7D 93 FE, 05, 05]
+187CF; [7D 94 02, 05, 05]
+187D0; [7D 94 04, 05, 05]
+187D1; [7D 94 06, 05, 05]
+187D2; [7D 94 08, 05, 05]
+187D3; [7D 94 0A, 05, 05]
+187D4; [7D 94 0C, 05, 05]
+187D5; [7D 94 0E, 05, 05]
+187D6; [7D 94 10, 05, 05]
+187D7; [7D 94 12, 05, 05]
+187D8; [7D 94 14, 05, 05]
+187D9; [7D 94 16, 05, 05]
+187DA; [7D 94 18, 05, 05]
+187DB; [7D 94 1A, 05, 05]
+187DC; [7D 94 1C, 05, 05]
+187DD; [7D 94 1E, 05, 05]
+187DE; [7D 94 20, 05, 05]
+187DF; [7D 94 22, 05, 05]
+187E0; [7D 94 24, 05, 05]
+187E1; [7D 94 26, 05, 05]
+187E2; [7D 94 28, 05, 05]
+187E3; [7D 94 2A, 05, 05]
+187E4; [7D 94 2C, 05, 05]
+187E5; [7D 94 2E, 05, 05]
+187E6; [7D 94 30, 05, 05]
+187E7; [7D 94 32, 05, 05]
+187E8; [7D 94 34, 05, 05]
+187E9; [7D 94 36, 05, 05]
+187EA; [7D 94 38, 05, 05]
+187EB; [7D 94 3A, 05, 05]
+187EC; [7D 94 3C, 05, 05]
+187ED; [7D 94 3E, 05, 05]
+187EE; [7D 94 40, 05, 05]
+187EF; [7D 94 42, 05, 05]
+187F0; [7D 94 44, 05, 05]
+187F1; [7D 94 46, 05, 05]
+18800; [7D 94 48, 05, 05]
+18801; [7D 94 4A, 05, 05]
+18802; [7D 94 4C, 05, 05]
+18803; [7D 94 4E, 05, 05]
+18804; [7D 94 50, 05, 05]
+18805; [7D 94 52, 05, 05]
+18806; [7D 94 54, 05, 05]
+18807; [7D 94 56, 05, 05]
+18808; [7D 94 58, 05, 05]
+18809; [7D 94 5A, 05, 05]
+1880A; [7D 94 5C, 05, 05]
+1880B; [7D 94 5E, 05, 05]
+1880C; [7D 94 60, 05, 05]
+1880D; [7D 94 62, 05, 05]
+1880E; [7D 94 64, 05, 05]
+1880F; [7D 94 66, 05, 05]
+18810; [7D 94 68, 05, 05]
+18811; [7D 94 6A, 05, 05]
+18812; [7D 94 6C, 05, 05]
+18813; [7D 94 6E, 05, 05]
+18814; [7D 94 70, 05, 05]
+18815; [7D 94 72, 05, 05]
+18816; [7D 94 74, 05, 05]
+18817; [7D 94 76, 05, 05]
+18818; [7D 94 78, 05, 05]
+18819; [7D 94 7A, 05, 05]
+1881A; [7D 94 7C, 05, 05]
+1881B; [7D 94 7E, 05, 05]
+1881C; [7D 94 80, 05, 05]
+1881D; [7D 94 82, 05, 05]
+1881E; [7D 94 84, 05, 05]
+1881F; [7D 94 86, 05, 05]
+18820; [7D 94 88, 05, 05]
+18821; [7D 94 8A, 05, 05]
+18822; [7D 94 8C, 05, 05]
+18823; [7D 94 8E, 05, 05]
+18824; [7D 94 90, 05, 05]
+18825; [7D 94 92, 05, 05]
+18826; [7D 94 94, 05, 05]
+18827; [7D 94 96, 05, 05]
+18828; [7D 94 98, 05, 05]
+18829; [7D 94 9A, 05, 05]
+1882A; [7D 94 9C, 05, 05]
+1882B; [7D 94 9E, 05, 05]
+1882C; [7D 94 A0, 05, 05]
+1882D; [7D 94 A2, 05, 05]
+1882E; [7D 94 A4, 05, 05]
+1882F; [7D 94 A6, 05, 05]
+18830; [7D 94 A8, 05, 05]
+18831; [7D 94 AA, 05, 05]
+18832; [7D 94 AC, 05, 05]
+18833; [7D 94 AE, 05, 05]
+18834; [7D 94 B0, 05, 05]
+18835; [7D 94 B2, 05, 05]
+18836; [7D 94 B4, 05, 05]
+18837; [7D 94 B6, 05, 05]
+18838; [7D 94 B8, 05, 05]
+18839; [7D 94 BA, 05, 05]
+1883A; [7D 94 BC, 05, 05]
+1883B; [7D 94 BE, 05, 05]
+1883C; [7D 94 C0, 05, 05]
+1883D; [7D 94 C2, 05, 05]
+1883E; [7D 94 C4, 05, 05]
+1883F; [7D 94 C6, 05, 05]
+18840; [7D 94 C8, 05, 05]
+18841; [7D 94 CA, 05, 05]
+18842; [7D 94 CC, 05, 05]
+18843; [7D 94 CE, 05, 05]
+18844; [7D 94 D0, 05, 05]
+18845; [7D 94 D2, 05, 05]
+18846; [7D 94 D4, 05, 05]
+18847; [7D 94 D6, 05, 05]
+18848; [7D 94 D8, 05, 05]
+18849; [7D 94 DA, 05, 05]
+1884A; [7D 94 DC, 05, 05]
+1884B; [7D 94 DE, 05, 05]
+1884C; [7D 94 E0, 05, 05]
+1884D; [7D 94 E2, 05, 05]
+1884E; [7D 94 E4, 05, 05]
+1884F; [7D 94 E6, 05, 05]
+18850; [7D 94 E8, 05, 05]
+18851; [7D 94 EA, 05, 05]
+18852; [7D 94 EC, 05, 05]
+18853; [7D 94 EE, 05, 05]
+18854; [7D 94 F0, 05, 05]
+18855; [7D 94 F2, 05, 05]
+18856; [7D 94 F4, 05, 05]
+18857; [7D 94 F6, 05, 05]
+18858; [7D 94 F8, 05, 05]
+18859; [7D 94 FA, 05, 05]
+1885A; [7D 94 FC, 05, 05]
+1885B; [7D 94 FE, 05, 05]
+1885C; [7D 95 02, 05, 05]
+1885D; [7D 95 04, 05, 05]
+1885E; [7D 95 06, 05, 05]
+1885F; [7D 95 08, 05, 05]
+18860; [7D 95 0A, 05, 05]
+18861; [7D 95 0C, 05, 05]
+18862; [7D 95 0E, 05, 05]
+18863; [7D 95 10, 05, 05]
+18864; [7D 95 12, 05, 05]
+18865; [7D 95 14, 05, 05]
+18866; [7D 95 16, 05, 05]
+18867; [7D 95 18, 05, 05]
+18868; [7D 95 1A, 05, 05]
+18869; [7D 95 1C, 05, 05]
+1886A; [7D 95 1E, 05, 05]
+1886B; [7D 95 20, 05, 05]
+1886C; [7D 95 22, 05, 05]
+1886D; [7D 95 24, 05, 05]
+1886E; [7D 95 26, 05, 05]
+1886F; [7D 95 28, 05, 05]
+18870; [7D 95 2A, 05, 05]
+18871; [7D 95 2C, 05, 05]
+18872; [7D 95 2E, 05, 05]
+18873; [7D 95 30, 05, 05]
+18874; [7D 95 32, 05, 05]
+18875; [7D 95 34, 05, 05]
+18876; [7D 95 36, 05, 05]
+18877; [7D 95 38, 05, 05]
+18878; [7D 95 3A, 05, 05]
+18879; [7D 95 3C, 05, 05]
+1887A; [7D 95 3E, 05, 05]
+1887B; [7D 95 40, 05, 05]
+1887C; [7D 95 42, 05, 05]
+1887D; [7D 95 44, 05, 05]
+1887E; [7D 95 46, 05, 05]
+1887F; [7D 95 48, 05, 05]
+18880; [7D 95 4A, 05, 05]
+18881; [7D 95 4C, 05, 05]
+18882; [7D 95 4E, 05, 05]
+18883; [7D 95 50, 05, 05]
+18884; [7D 95 52, 05, 05]
+18885; [7D 95 54, 05, 05]
+18886; [7D 95 56, 05, 05]
+18887; [7D 95 58, 05, 05]
+18888; [7D 95 5A, 05, 05]
+18889; [7D 95 5C, 05, 05]
+1888A; [7D 95 5E, 05, 05]
+1888B; [7D 95 60, 05, 05]
+1888C; [7D 95 62, 05, 05]
+1888D; [7D 95 64, 05, 05]
+1888E; [7D 95 66, 05, 05]
+1888F; [7D 95 68, 05, 05]
+18890; [7D 95 6A, 05, 05]
+18891; [7D 95 6C, 05, 05]
+18892; [7D 95 6E, 05, 05]
+18893; [7D 95 70, 05, 05]
+18894; [7D 95 72, 05, 05]
+18895; [7D 95 74, 05, 05]
+18896; [7D 95 76, 05, 05]
+18897; [7D 95 78, 05, 05]
+18898; [7D 95 7A, 05, 05]
+18899; [7D 95 7C, 05, 05]
+1889A; [7D 95 7E, 05, 05]
+1889B; [7D 95 80, 05, 05]
+1889C; [7D 95 82, 05, 05]
+1889D; [7D 95 84, 05, 05]
+1889E; [7D 95 86, 05, 05]
+1889F; [7D 95 88, 05, 05]
+188A0; [7D 95 8A, 05, 05]
+188A1; [7D 95 8C, 05, 05]
+188A2; [7D 95 8E, 05, 05]
+188A3; [7D 95 90, 05, 05]
+188A4; [7D 95 92, 05, 05]
+188A5; [7D 95 94, 05, 05]
+188A6; [7D 95 96, 05, 05]
+188A7; [7D 95 98, 05, 05]
+188A8; [7D 95 9A, 05, 05]
+188A9; [7D 95 9C, 05, 05]
+188AA; [7D 95 9E, 05, 05]
+188AB; [7D 95 A0, 05, 05]
+188AC; [7D 95 A2, 05, 05]
+188AD; [7D 95 A4, 05, 05]
+188AE; [7D 95 A6, 05, 05]
+188AF; [7D 95 A8, 05, 05]
+188B0; [7D 95 AA, 05, 05]
+188B1; [7D 95 AC, 05, 05]
+188B2; [7D 95 AE, 05, 05]
+188B3; [7D 95 B0, 05, 05]
+188B4; [7D 95 B2, 05, 05]
+188B5; [7D 95 B4, 05, 05]
+188B6; [7D 95 B6, 05, 05]
+188B7; [7D 95 B8, 05, 05]
+188B8; [7D 95 BA, 05, 05]
+188B9; [7D 95 BC, 05, 05]
+188BA; [7D 95 BE, 05, 05]
+188BB; [7D 95 C0, 05, 05]
+188BC; [7D 95 C2, 05, 05]
+188BD; [7D 95 C4, 05, 05]
+188BE; [7D 95 C6, 05, 05]
+188BF; [7D 95 C8, 05, 05]
+188C0; [7D 95 CA, 05, 05]
+188C1; [7D 95 CC, 05, 05]
+188C2; [7D 95 CE, 05, 05]
+188C3; [7D 95 D0, 05, 05]
+188C4; [7D 95 D2, 05, 05]
+188C5; [7D 95 D4, 05, 05]
+188C6; [7D 95 D6, 05, 05]
+188C7; [7D 95 D8, 05, 05]
+188C8; [7D 95 DA, 05, 05]
+188C9; [7D 95 DC, 05, 05]
+188CA; [7D 95 DE, 05, 05]
+188CB; [7D 95 E0, 05, 05]
+188CC; [7D 95 E2, 05, 05]
+188CD; [7D 95 E4, 05, 05]
+188CE; [7D 95 E6, 05, 05]
+188CF; [7D 95 E8, 05, 05]
+188D0; [7D 95 EA, 05, 05]
+188D1; [7D 95 EC, 05, 05]
+188D2; [7D 95 EE, 05, 05]
+188D3; [7D 95 F0, 05, 05]
+188D4; [7D 95 F2, 05, 05]
+188D5; [7D 95 F4, 05, 05]
+188D6; [7D 95 F6, 05, 05]
+188D7; [7D 95 F8, 05, 05]
+188D8; [7D 95 FA, 05, 05]
+188D9; [7D 95 FC, 05, 05]
+188DA; [7D 95 FE, 05, 05]
+188DB; [7D 96 02, 05, 05]
+188DC; [7D 96 04, 05, 05]
+188DD; [7D 96 06, 05, 05]
+188DE; [7D 96 08, 05, 05]
+188DF; [7D 96 0A, 05, 05]
+188E0; [7D 96 0C, 05, 05]
+188E1; [7D 96 0E, 05, 05]
+188E2; [7D 96 10, 05, 05]
+188E3; [7D 96 12, 05, 05]
+188E4; [7D 96 14, 05, 05]
+188E5; [7D 96 16, 05, 05]
+188E6; [7D 96 18, 05, 05]
+188E7; [7D 96 1A, 05, 05]
+188E8; [7D 96 1C, 05, 05]
+188E9; [7D 96 1E, 05, 05]
+188EA; [7D 96 20, 05, 05]
+188EB; [7D 96 22, 05, 05]
+188EC; [7D 96 24, 05, 05]
+188ED; [7D 96 26, 05, 05]
+188EE; [7D 96 28, 05, 05]
+188EF; [7D 96 2A, 05, 05]
+188F0; [7D 96 2C, 05, 05]
+188F1; [7D 96 2E, 05, 05]
+188F2; [7D 96 30, 05, 05]
+188F3; [7D 96 32, 05, 05]
+188F4; [7D 96 34, 05, 05]
+188F5; [7D 96 36, 05, 05]
+188F6; [7D 96 38, 05, 05]
+188F7; [7D 96 3A, 05, 05]
+188F8; [7D 96 3C, 05, 05]
+188F9; [7D 96 3E, 05, 05]
+188FA; [7D 96 40, 05, 05]
+188FB; [7D 96 42, 05, 05]
+188FC; [7D 96 44, 05, 05]
+188FD; [7D 96 46, 05, 05]
+188FE; [7D 96 48, 05, 05]
+188FF; [7D 96 4A, 05, 05]
+18900; [7D 96 4C, 05, 05]
+18901; [7D 96 4E, 05, 05]
+18902; [7D 96 50, 05, 05]
+18903; [7D 96 52, 05, 05]
+18904; [7D 96 54, 05, 05]
+18905; [7D 96 56, 05, 05]
+18906; [7D 96 58, 05, 05]
+18907; [7D 96 5A, 05, 05]
+18908; [7D 96 5C, 05, 05]
+18909; [7D 96 5E, 05, 05]
+1890A; [7D 96 60, 05, 05]
+1890B; [7D 96 62, 05, 05]
+1890C; [7D 96 64, 05, 05]
+1890D; [7D 96 66, 05, 05]
+1890E; [7D 96 68, 05, 05]
+1890F; [7D 96 6A, 05, 05]
+18910; [7D 96 6C, 05, 05]
+18911; [7D 96 6E, 05, 05]
+18912; [7D 96 70, 05, 05]
+18913; [7D 96 72, 05, 05]
+18914; [7D 96 74, 05, 05]
+18915; [7D 96 76, 05, 05]
+18916; [7D 96 78, 05, 05]
+18917; [7D 96 7A, 05, 05]
+18918; [7D 96 7C, 05, 05]
+18919; [7D 96 7E, 05, 05]
+1891A; [7D 96 80, 05, 05]
+1891B; [7D 96 82, 05, 05]
+1891C; [7D 96 84, 05, 05]
+1891D; [7D 96 86, 05, 05]
+1891E; [7D 96 88, 05, 05]
+1891F; [7D 96 8A, 05, 05]
+18920; [7D 96 8C, 05, 05]
+18921; [7D 96 8E, 05, 05]
+18922; [7D 96 90, 05, 05]
+18923; [7D 96 92, 05, 05]
+18924; [7D 96 94, 05, 05]
+18925; [7D 96 96, 05, 05]
+18926; [7D 96 98, 05, 05]
+18927; [7D 96 9A, 05, 05]
+18928; [7D 96 9C, 05, 05]
+18929; [7D 96 9E, 05, 05]
+1892A; [7D 96 A0, 05, 05]
+1892B; [7D 96 A2, 05, 05]
+1892C; [7D 96 A4, 05, 05]
+1892D; [7D 96 A6, 05, 05]
+1892E; [7D 96 A8, 05, 05]
+1892F; [7D 96 AA, 05, 05]
+18930; [7D 96 AC, 05, 05]
+18931; [7D 96 AE, 05, 05]
+18932; [7D 96 B0, 05, 05]
+18933; [7D 96 B2, 05, 05]
+18934; [7D 96 B4, 05, 05]
+18935; [7D 96 B6, 05, 05]
+18936; [7D 96 B8, 05, 05]
+18937; [7D 96 BA, 05, 05]
+18938; [7D 96 BC, 05, 05]
+18939; [7D 96 BE, 05, 05]
+1893A; [7D 96 C0, 05, 05]
+1893B; [7D 96 C2, 05, 05]
+1893C; [7D 96 C4, 05, 05]
+1893D; [7D 96 C6, 05, 05]
+1893E; [7D 96 C8, 05, 05]
+1893F; [7D 96 CA, 05, 05]
+18940; [7D 96 CC, 05, 05]
+18941; [7D 96 CE, 05, 05]
+18942; [7D 96 D0, 05, 05]
+18943; [7D 96 D2, 05, 05]
+18944; [7D 96 D4, 05, 05]
+18945; [7D 96 D6, 05, 05]
+18946; [7D 96 D8, 05, 05]
+18947; [7D 96 DA, 05, 05]
+18948; [7D 96 DC, 05, 05]
+18949; [7D 96 DE, 05, 05]
+1894A; [7D 96 E0, 05, 05]
+1894B; [7D 96 E2, 05, 05]
+1894C; [7D 96 E4, 05, 05]
+1894D; [7D 96 E6, 05, 05]
+1894E; [7D 96 E8, 05, 05]
+1894F; [7D 96 EA, 05, 05]
+18950; [7D 96 EC, 05, 05]
+18951; [7D 96 EE, 05, 05]
+18952; [7D 96 F0, 05, 05]
+18953; [7D 96 F2, 05, 05]
+18954; [7D 96 F4, 05, 05]
+18955; [7D 96 F6, 05, 05]
+18956; [7D 96 F8, 05, 05]
+18957; [7D 96 FA, 05, 05]
+18958; [7D 96 FC, 05, 05]
+18959; [7D 96 FE, 05, 05]
+1895A; [7D 97 02, 05, 05]
+1895B; [7D 97 04, 05, 05]
+1895C; [7D 97 06, 05, 05]
+1895D; [7D 97 08, 05, 05]
+1895E; [7D 97 0A, 05, 05]
+1895F; [7D 97 0C, 05, 05]
+18960; [7D 97 0E, 05, 05]
+18961; [7D 97 10, 05, 05]
+18962; [7D 97 12, 05, 05]
+18963; [7D 97 14, 05, 05]
+18964; [7D 97 16, 05, 05]
+18965; [7D 97 18, 05, 05]
+18966; [7D 97 1A, 05, 05]
+18967; [7D 97 1C, 05, 05]
+18968; [7D 97 1E, 05, 05]
+18969; [7D 97 20, 05, 05]
+1896A; [7D 97 22, 05, 05]
+1896B; [7D 97 24, 05, 05]
+1896C; [7D 97 26, 05, 05]
+1896D; [7D 97 28, 05, 05]
+1896E; [7D 97 2A, 05, 05]
+1896F; [7D 97 2C, 05, 05]
+18970; [7D 97 2E, 05, 05]
+18971; [7D 97 30, 05, 05]
+18972; [7D 97 32, 05, 05]
+18973; [7D 97 34, 05, 05]
+18974; [7D 97 36, 05, 05]
+18975; [7D 97 38, 05, 05]
+18976; [7D 97 3A, 05, 05]
+18977; [7D 97 3C, 05, 05]
+18978; [7D 97 3E, 05, 05]
+18979; [7D 97 40, 05, 05]
+1897A; [7D 97 42, 05, 05]
+1897B; [7D 97 44, 05, 05]
+1897C; [7D 97 46, 05, 05]
+1897D; [7D 97 48, 05, 05]
+1897E; [7D 97 4A, 05, 05]
+1897F; [7D 97 4C, 05, 05]
+18980; [7D 97 4E, 05, 05]
+18981; [7D 97 50, 05, 05]
+18982; [7D 97 52, 05, 05]
+18983; [7D 97 54, 05, 05]
+18984; [7D 97 56, 05, 05]
+18985; [7D 97 58, 05, 05]
+18986; [7D 97 5A, 05, 05]
+18987; [7D 97 5C, 05, 05]
+18988; [7D 97 5E, 05, 05]
+18989; [7D 97 60, 05, 05]
+1898A; [7D 97 62, 05, 05]
+1898B; [7D 97 64, 05, 05]
+1898C; [7D 97 66, 05, 05]
+1898D; [7D 97 68, 05, 05]
+1898E; [7D 97 6A, 05, 05]
+1898F; [7D 97 6C, 05, 05]
+18990; [7D 97 6E, 05, 05]
+18991; [7D 97 70, 05, 05]
+18992; [7D 97 72, 05, 05]
+18993; [7D 97 74, 05, 05]
+18994; [7D 97 76, 05, 05]
+18995; [7D 97 78, 05, 05]
+18996; [7D 97 7A, 05, 05]
+18997; [7D 97 7C, 05, 05]
+18998; [7D 97 7E, 05, 05]
+18999; [7D 97 80, 05, 05]
+1899A; [7D 97 82, 05, 05]
+1899B; [7D 97 84, 05, 05]
+1899C; [7D 97 86, 05, 05]
+1899D; [7D 97 88, 05, 05]
+1899E; [7D 97 8A, 05, 05]
+1899F; [7D 97 8C, 05, 05]
+189A0; [7D 97 8E, 05, 05]
+189A1; [7D 97 90, 05, 05]
+189A2; [7D 97 92, 05, 05]
+189A3; [7D 97 94, 05, 05]
+189A4; [7D 97 96, 05, 05]
+189A5; [7D 97 98, 05, 05]
+189A6; [7D 97 9A, 05, 05]
+189A7; [7D 97 9C, 05, 05]
+189A8; [7D 97 9E, 05, 05]
+189A9; [7D 97 A0, 05, 05]
+189AA; [7D 97 A2, 05, 05]
+189AB; [7D 97 A4, 05, 05]
+189AC; [7D 97 A6, 05, 05]
+189AD; [7D 97 A8, 05, 05]
+189AE; [7D 97 AA, 05, 05]
+189AF; [7D 97 AC, 05, 05]
+189B0; [7D 97 AE, 05, 05]
+189B1; [7D 97 B0, 05, 05]
+189B2; [7D 97 B2, 05, 05]
+189B3; [7D 97 B4, 05, 05]
+189B4; [7D 97 B6, 05, 05]
+189B5; [7D 97 B8, 05, 05]
+189B6; [7D 97 BA, 05, 05]
+189B7; [7D 97 BC, 05, 05]
+189B8; [7D 97 BE, 05, 05]
+189B9; [7D 97 C0, 05, 05]
+189BA; [7D 97 C2, 05, 05]
+189BB; [7D 97 C4, 05, 05]
+189BC; [7D 97 C6, 05, 05]
+189BD; [7D 97 C8, 05, 05]
+189BE; [7D 97 CA, 05, 05]
+189BF; [7D 97 CC, 05, 05]
+189C0; [7D 97 CE, 05, 05]
+189C1; [7D 97 D0, 05, 05]
+189C2; [7D 97 D2, 05, 05]
+189C3; [7D 97 D4, 05, 05]
+189C4; [7D 97 D6, 05, 05]
+189C5; [7D 97 D8, 05, 05]
+189C6; [7D 97 DA, 05, 05]
+189C7; [7D 97 DC, 05, 05]
+189C8; [7D 97 DE, 05, 05]
+189C9; [7D 97 E0, 05, 05]
+189CA; [7D 97 E2, 05, 05]
+189CB; [7D 97 E4, 05, 05]
+189CC; [7D 97 E6, 05, 05]
+189CD; [7D 97 E8, 05, 05]
+189CE; [7D 97 EA, 05, 05]
+189CF; [7D 97 EC, 05, 05]
+189D0; [7D 97 EE, 05, 05]
+189D1; [7D 97 F0, 05, 05]
+189D2; [7D 97 F2, 05, 05]
+189D3; [7D 97 F4, 05, 05]
+189D4; [7D 97 F6, 05, 05]
+189D5; [7D 97 F8, 05, 05]
+189D6; [7D 97 FA, 05, 05]
+189D7; [7D 97 FC, 05, 05]
+189D8; [7D 97 FE, 05, 05]
+189D9; [7D 98 02, 05, 05]
+189DA; [7D 98 04, 05, 05]
+189DB; [7D 98 06, 05, 05]
+189DC; [7D 98 08, 05, 05]
+189DD; [7D 98 0A, 05, 05]
+189DE; [7D 98 0C, 05, 05]
+189DF; [7D 98 0E, 05, 05]
+189E0; [7D 98 10, 05, 05]
+189E1; [7D 98 12, 05, 05]
+189E2; [7D 98 14, 05, 05]
+189E3; [7D 98 16, 05, 05]
+189E4; [7D 98 18, 05, 05]
+189E5; [7D 98 1A, 05, 05]
+189E6; [7D 98 1C, 05, 05]
+189E7; [7D 98 1E, 05, 05]
+189E8; [7D 98 20, 05, 05]
+189E9; [7D 98 22, 05, 05]
+189EA; [7D 98 24, 05, 05]
+189EB; [7D 98 26, 05, 05]
+189EC; [7D 98 28, 05, 05]
+189ED; [7D 98 2A, 05, 05]
+189EE; [7D 98 2C, 05, 05]
+189EF; [7D 98 2E, 05, 05]
+189F0; [7D 98 30, 05, 05]
+189F1; [7D 98 32, 05, 05]
+189F2; [7D 98 34, 05, 05]
+189F3; [7D 98 36, 05, 05]
+189F4; [7D 98 38, 05, 05]
+189F5; [7D 98 3A, 05, 05]
+189F6; [7D 98 3C, 05, 05]
+189F7; [7D 98 3E, 05, 05]
+189F8; [7D 98 40, 05, 05]
+189F9; [7D 98 42, 05, 05]
+189FA; [7D 98 44, 05, 05]
+189FB; [7D 98 46, 05, 05]
+189FC; [7D 98 48, 05, 05]
+189FD; [7D 98 4A, 05, 05]
+189FE; [7D 98 4C, 05, 05]
+189FF; [7D 98 4E, 05, 05]
+18A00; [7D 98 50, 05, 05]
+18A01; [7D 98 52, 05, 05]
+18A02; [7D 98 54, 05, 05]
+18A03; [7D 98 56, 05, 05]
+18A04; [7D 98 58, 05, 05]
+18A05; [7D 98 5A, 05, 05]
+18A06; [7D 98 5C, 05, 05]
+18A07; [7D 98 5E, 05, 05]
+18A08; [7D 98 60, 05, 05]
+18A09; [7D 98 62, 05, 05]
+18A0A; [7D 98 64, 05, 05]
+18A0B; [7D 98 66, 05, 05]
+18A0C; [7D 98 68, 05, 05]
+18A0D; [7D 98 6A, 05, 05]
+18A0E; [7D 98 6C, 05, 05]
+18A0F; [7D 98 6E, 05, 05]
+18A10; [7D 98 70, 05, 05]
+18A11; [7D 98 72, 05, 05]
+18A12; [7D 98 74, 05, 05]
+18A13; [7D 98 76, 05, 05]
+18A14; [7D 98 78, 05, 05]
+18A15; [7D 98 7A, 05, 05]
+18A16; [7D 98 7C, 05, 05]
+18A17; [7D 98 7E, 05, 05]
+18A18; [7D 98 80, 05, 05]
+18A19; [7D 98 82, 05, 05]
+18A1A; [7D 98 84, 05, 05]
+18A1B; [7D 98 86, 05, 05]
+18A1C; [7D 98 88, 05, 05]
+18A1D; [7D 98 8A, 05, 05]
+18A1E; [7D 98 8C, 05, 05]
+18A1F; [7D 98 8E, 05, 05]
+18A20; [7D 98 90, 05, 05]
+18A21; [7D 98 92, 05, 05]
+18A22; [7D 98 94, 05, 05]
+18A23; [7D 98 96, 05, 05]
+18A24; [7D 98 98, 05, 05]
+18A25; [7D 98 9A, 05, 05]
+18A26; [7D 98 9C, 05, 05]
+18A27; [7D 98 9E, 05, 05]
+18A28; [7D 98 A0, 05, 05]
+18A29; [7D 98 A2, 05, 05]
+18A2A; [7D 98 A4, 05, 05]
+18A2B; [7D 98 A6, 05, 05]
+18A2C; [7D 98 A8, 05, 05]
+18A2D; [7D 98 AA, 05, 05]
+18A2E; [7D 98 AC, 05, 05]
+18A2F; [7D 98 AE, 05, 05]
+18A30; [7D 98 B0, 05, 05]
+18A31; [7D 98 B2, 05, 05]
+18A32; [7D 98 B4, 05, 05]
+18A33; [7D 98 B6, 05, 05]
+18A34; [7D 98 B8, 05, 05]
+18A35; [7D 98 BA, 05, 05]
+18A36; [7D 98 BC, 05, 05]
+18A37; [7D 98 BE, 05, 05]
+18A38; [7D 98 C0, 05, 05]
+18A39; [7D 98 C2, 05, 05]
+18A3A; [7D 98 C4, 05, 05]
+18A3B; [7D 98 C6, 05, 05]
+18A3C; [7D 98 C8, 05, 05]
+18A3D; [7D 98 CA, 05, 05]
+18A3E; [7D 98 CC, 05, 05]
+18A3F; [7D 98 CE, 05, 05]
+18A40; [7D 98 D0, 05, 05]
+18A41; [7D 98 D2, 05, 05]
+18A42; [7D 98 D4, 05, 05]
+18A43; [7D 98 D6, 05, 05]
+18A44; [7D 98 D8, 05, 05]
+18A45; [7D 98 DA, 05, 05]
+18A46; [7D 98 DC, 05, 05]
+18A47; [7D 98 DE, 05, 05]
+18A48; [7D 98 E0, 05, 05]
+18A49; [7D 98 E2, 05, 05]
+18A4A; [7D 98 E4, 05, 05]
+18A4B; [7D 98 E6, 05, 05]
+18A4C; [7D 98 E8, 05, 05]
+18A4D; [7D 98 EA, 05, 05]
+18A4E; [7D 98 EC, 05, 05]
+18A4F; [7D 98 EE, 05, 05]
+18A50; [7D 98 F0, 05, 05]
+18A51; [7D 98 F2, 05, 05]
+18A52; [7D 98 F4, 05, 05]
+18A53; [7D 98 F6, 05, 05]
+18A54; [7D 98 F8, 05, 05]
+18A55; [7D 98 FA, 05, 05]
+18A56; [7D 98 FC, 05, 05]
+18A57; [7D 98 FE, 05, 05]
+18A58; [7D 99 02, 05, 05]
+18A59; [7D 99 04, 05, 05]
+18A5A; [7D 99 06, 05, 05]
+18A5B; [7D 99 08, 05, 05]
+18A5C; [7D 99 0A, 05, 05]
+18A5D; [7D 99 0C, 05, 05]
+18A5E; [7D 99 0E, 05, 05]
+18A5F; [7D 99 10, 05, 05]
+18A60; [7D 99 12, 05, 05]
+18A61; [7D 99 14, 05, 05]
+18A62; [7D 99 16, 05, 05]
+18A63; [7D 99 18, 05, 05]
+18A64; [7D 99 1A, 05, 05]
+18A65; [7D 99 1C, 05, 05]
+18A66; [7D 99 1E, 05, 05]
+18A67; [7D 99 20, 05, 05]
+18A68; [7D 99 22, 05, 05]
+18A69; [7D 99 24, 05, 05]
+18A6A; [7D 99 26, 05, 05]
+18A6B; [7D 99 28, 05, 05]
+18A6C; [7D 99 2A, 05, 05]
+18A6D; [7D 99 2C, 05, 05]
+18A6E; [7D 99 2E, 05, 05]
+18A6F; [7D 99 30, 05, 05]
+18A70; [7D 99 32, 05, 05]
+18A71; [7D 99 34, 05, 05]
+18A72; [7D 99 36, 05, 05]
+18A73; [7D 99 38, 05, 05]
+18A74; [7D 99 3A, 05, 05]
+18A75; [7D 99 3C, 05, 05]
+18A76; [7D 99 3E, 05, 05]
+18A77; [7D 99 40, 05, 05]
+18A78; [7D 99 42, 05, 05]
+18A79; [7D 99 44, 05, 05]
+18A7A; [7D 99 46, 05, 05]
+18A7B; [7D 99 48, 05, 05]
+18A7C; [7D 99 4A, 05, 05]
+18A7D; [7D 99 4C, 05, 05]
+18A7E; [7D 99 4E, 05, 05]
+18A7F; [7D 99 50, 05, 05]
+18A80; [7D 99 52, 05, 05]
+18A81; [7D 99 54, 05, 05]
+18A82; [7D 99 56, 05, 05]
+18A83; [7D 99 58, 05, 05]
+18A84; [7D 99 5A, 05, 05]
+18A85; [7D 99 5C, 05, 05]
+18A86; [7D 99 5E, 05, 05]
+18A87; [7D 99 60, 05, 05]
+18A88; [7D 99 62, 05, 05]
+18A89; [7D 99 64, 05, 05]
+18A8A; [7D 99 66, 05, 05]
+18A8B; [7D 99 68, 05, 05]
+18A8C; [7D 99 6A, 05, 05]
+18A8D; [7D 99 6C, 05, 05]
+18A8E; [7D 99 6E, 05, 05]
+18A8F; [7D 99 70, 05, 05]
+18A90; [7D 99 72, 05, 05]
+18A91; [7D 99 74, 05, 05]
+18A92; [7D 99 76, 05, 05]
+18A93; [7D 99 78, 05, 05]
+18A94; [7D 99 7A, 05, 05]
+18A95; [7D 99 7C, 05, 05]
+18A96; [7D 99 7E, 05, 05]
+18A97; [7D 99 80, 05, 05]
+18A98; [7D 99 82, 05, 05]
+18A99; [7D 99 84, 05, 05]
+18A9A; [7D 99 86, 05, 05]
+18A9B; [7D 99 88, 05, 05]
+18A9C; [7D 99 8A, 05, 05]
+18A9D; [7D 99 8C, 05, 05]
+18A9E; [7D 99 8E, 05, 05]
+18A9F; [7D 99 90, 05, 05]
+18AA0; [7D 99 92, 05, 05]
+18AA1; [7D 99 94, 05, 05]
+18AA2; [7D 99 96, 05, 05]
+18AA3; [7D 99 98, 05, 05]
+18AA4; [7D 99 9A, 05, 05]
+18AA5; [7D 99 9C, 05, 05]
+18AA6; [7D 99 9E, 05, 05]
+18AA7; [7D 99 A0, 05, 05]
+18AA8; [7D 99 A2, 05, 05]
+18AA9; [7D 99 A4, 05, 05]
+18AAA; [7D 99 A6, 05, 05]
+18AAB; [7D 99 A8, 05, 05]
+18AAC; [7D 99 AA, 05, 05]
+18AAD; [7D 99 AC, 05, 05]
+18AAE; [7D 99 AE, 05, 05]
+18AAF; [7D 99 B0, 05, 05]
+18AB0; [7D 99 B2, 05, 05]
+18AB1; [7D 99 B4, 05, 05]
+18AB2; [7D 99 B6, 05, 05]
+18AB3; [7D 99 B8, 05, 05]
+18AB4; [7D 99 BA, 05, 05]
+18AB5; [7D 99 BC, 05, 05]
+18AB6; [7D 99 BE, 05, 05]
+18AB7; [7D 99 C0, 05, 05]
+18AB8; [7D 99 C2, 05, 05]
+18AB9; [7D 99 C4, 05, 05]
+18ABA; [7D 99 C6, 05, 05]
+18ABB; [7D 99 C8, 05, 05]
+18ABC; [7D 99 CA, 05, 05]
+18ABD; [7D 99 CC, 05, 05]
+18ABE; [7D 99 CE, 05, 05]
+18ABF; [7D 99 D0, 05, 05]
+18AC0; [7D 99 D2, 05, 05]
+18AC1; [7D 99 D4, 05, 05]
+18AC2; [7D 99 D6, 05, 05]
+18AC3; [7D 99 D8, 05, 05]
+18AC4; [7D 99 DA, 05, 05]
+18AC5; [7D 99 DC, 05, 05]
+18AC6; [7D 99 DE, 05, 05]
+18AC7; [7D 99 E0, 05, 05]
+18AC8; [7D 99 E2, 05, 05]
+18AC9; [7D 99 E4, 05, 05]
+18ACA; [7D 99 E6, 05, 05]
+18ACB; [7D 99 E8, 05, 05]
+18ACC; [7D 99 EA, 05, 05]
+18ACD; [7D 99 EC, 05, 05]
+18ACE; [7D 99 EE, 05, 05]
+18ACF; [7D 99 F0, 05, 05]
+18AD0; [7D 99 F2, 05, 05]
+18AD1; [7D 99 F4, 05, 05]
+18AD2; [7D 99 F6, 05, 05]
+18AD3; [7D 99 F8, 05, 05]
+18AD4; [7D 99 FA, 05, 05]
+18AD5; [7D 99 FC, 05, 05]
+18AD6; [7D 99 FE, 05, 05]
+18AD7; [7D 9A 02, 05, 05]
+18AD8; [7D 9A 04, 05, 05]
+18AD9; [7D 9A 06, 05, 05]
+18ADA; [7D 9A 08, 05, 05]
+18ADB; [7D 9A 0A, 05, 05]
+18ADC; [7D 9A 0C, 05, 05]
+18ADD; [7D 9A 0E, 05, 05]
+18ADE; [7D 9A 10, 05, 05]
+18ADF; [7D 9A 12, 05, 05]
+18AE0; [7D 9A 14, 05, 05]
+18AE1; [7D 9A 16, 05, 05]
+18AE2; [7D 9A 18, 05, 05]
+18AE3; [7D 9A 1A, 05, 05]
+18AE4; [7D 9A 1C, 05, 05]
+18AE5; [7D 9A 1E, 05, 05]
+18AE6; [7D 9A 20, 05, 05]
+18AE7; [7D 9A 22, 05, 05]
+18AE8; [7D 9A 24, 05, 05]
+18AE9; [7D 9A 26, 05, 05]
+18AEA; [7D 9A 28, 05, 05]
+18AEB; [7D 9A 2A, 05, 05]
+18AEC; [7D 9A 2C, 05, 05]
+18AED; [7D 9A 2E, 05, 05]
+18AEE; [7D 9A 30, 05, 05]
+18AEF; [7D 9A 32, 05, 05]
+18AF0; [7D 9A 34, 05, 05]
+18AF1; [7D 9A 36, 05, 05]
+18AF2; [7D 9A 38, 05, 05]
+
+FDD1 1B1C4; [7D 9B 02, 05, 05] # Nushu first primary (compressible)
+
+1B170; [7D 9B 09, 05, 05]
+1B171; [7D 9B 10, 05, 05]
+1B172; [7D 9B 17, 05, 05]
+1B173; [7D 9B 1E, 05, 05]
+1B174; [7D 9B 25, 05, 05]
+1B175; [7D 9B 2C, 05, 05]
+1B176; [7D 9B 33, 05, 05]
+1B177; [7D 9B 3A, 05, 05]
+1B178; [7D 9B 41, 05, 05]
+1B179; [7D 9B 48, 05, 05]
+1B17A; [7D 9B 4F, 05, 05]
+1B17B; [7D 9B 56, 05, 05]
+1B17C; [7D 9B 5D, 05, 05]
+1B17D; [7D 9B 64, 05, 05]
+1B17E; [7D 9B 6B, 05, 05]
+1B17F; [7D 9B 72, 05, 05]
+1B180; [7D 9B 79, 05, 05]
+1B181; [7D 9B 80, 05, 05]
+1B182; [7D 9B 87, 05, 05]
+1B183; [7D 9B 8E, 05, 05]
+1B184; [7D 9B 95, 05, 05]
+1B185; [7D 9B 9C, 05, 05]
+1B186; [7D 9B A3, 05, 05]
+1B187; [7D 9B AA, 05, 05]
+1B188; [7D 9B B1, 05, 05]
+1B189; [7D 9B B8, 05, 05]
+1B18A; [7D 9B BF, 05, 05]
+1B18B; [7D 9B C6, 05, 05]
+1B18C; [7D 9B CD, 05, 05]
+1B18D; [7D 9B D4, 05, 05]
+1B18E; [7D 9B DB, 05, 05]
+1B18F; [7D 9B E2, 05, 05]
+1B190; [7D 9B E9, 05, 05]
+1B191; [7D 9B F0, 05, 05]
+1B192; [7D 9B F7, 05, 05]
+1B193; [7D 9B FE, 05, 05]
+1B194; [7D 9C 07, 05, 05]
+1B195; [7D 9C 0E, 05, 05]
+1B196; [7D 9C 15, 05, 05]
+1B197; [7D 9C 1C, 05, 05]
+1B198; [7D 9C 23, 05, 05]
+1B199; [7D 9C 2A, 05, 05]
+1B19A; [7D 9C 31, 05, 05]
+1B19B; [7D 9C 38, 05, 05]
+1B19C; [7D 9C 3F, 05, 05]
+1B19D; [7D 9C 46, 05, 05]
+1B19E; [7D 9C 4D, 05, 05]
+1B19F; [7D 9C 54, 05, 05]
+1B1A0; [7D 9C 5B, 05, 05]
+1B1A1; [7D 9C 62, 05, 05]
+1B1A2; [7D 9C 69, 05, 05]
+1B1A3; [7D 9C 70, 05, 05]
+1B1A4; [7D 9C 77, 05, 05]
+1B1A5; [7D 9C 7E, 05, 05]
+1B1A6; [7D 9C 85, 05, 05]
+1B1A7; [7D 9C 8C, 05, 05]
+1B1A8; [7D 9C 93, 05, 05]
+1B1A9; [7D 9C 9A, 05, 05]
+1B1AA; [7D 9C A1, 05, 05]
+1B1AB; [7D 9C A8, 05, 05]
+1B1AC; [7D 9C AF, 05, 05]
+1B1AD; [7D 9C B6, 05, 05]
+1B1AE; [7D 9C BD, 05, 05]
+1B1AF; [7D 9C C4, 05, 05]
+1B1B0; [7D 9C CB, 05, 05]
+1B1B1; [7D 9C D2, 05, 05]
+1B1B2; [7D 9C D9, 05, 05]
+1B1B3; [7D 9C E0, 05, 05]
+1B1B4; [7D 9C E7, 05, 05]
+1B1B5; [7D 9C EE, 05, 05]
+1B1B6; [7D 9C F5, 05, 05]
+1B1B7; [7D 9C FC, 05, 05]
+1B1B8; [7D 9D 05, 05, 05]
+1B1B9; [7D 9D 0C, 05, 05]
+1B1BA; [7D 9D 13, 05, 05]
+1B1BB; [7D 9D 1A, 05, 05]
+1B1BC; [7D 9D 21, 05, 05]
+1B1BD; [7D 9D 28, 05, 05]
+1B1BE; [7D 9D 2F, 05, 05]
+1B1BF; [7D 9D 36, 05, 05]
+1B1C0; [7D 9D 3D, 05, 05]
+1B1C1; [7D 9D 44, 05, 05]
+1B1C2; [7D 9D 4B, 05, 05]
+1B1C3; [7D 9D 52, 05, 05]
+1B1C4; [7D 9D 59, 05, 05]
+1B1C5; [7D 9D 60, 05, 05]
+1B1C6; [7D 9D 67, 05, 05]
+1B1C7; [7D 9D 6E, 05, 05]
+1B1C8; [7D 9D 75, 05, 05]
+1B1C9; [7D 9D 7C, 05, 05]
+1B1CA; [7D 9D 83, 05, 05]
+1B1CB; [7D 9D 8A, 05, 05]
+1B1CC; [7D 9D 91, 05, 05]
+1B1CD; [7D 9D 98, 05, 05]
+1B1CE; [7D 9D 9F, 05, 05]
+1B1CF; [7D 9D A6, 05, 05]
+1B1D0; [7D 9D AD, 05, 05]
+1B1D1; [7D 9D B4, 05, 05]
+1B1D2; [7D 9D BB, 05, 05]
+1B1D3; [7D 9D C2, 05, 05]
+1B1D4; [7D 9D C9, 05, 05]
+1B1D5; [7D 9D D0, 05, 05]
+1B1D6; [7D 9D D7, 05, 05]
+1B1D7; [7D 9D DE, 05, 05]
+1B1D8; [7D 9D E5, 05, 05]
+1B1D9; [7D 9D EC, 05, 05]
+1B1DA; [7D 9D F3, 05, 05]
+1B1DB; [7D 9D FA, 05, 05]
+1B1DC; [7D 9E 03, 05, 05]
+1B1DD; [7D 9E 0A, 05, 05]
+1B1DE; [7D 9E 11, 05, 05]
+1B1DF; [7D 9E 18, 05, 05]
+1B1E0; [7D 9E 1F, 05, 05]
+1B1E1; [7D 9E 26, 05, 05]
+1B1E2; [7D 9E 2D, 05, 05]
+1B1E3; [7D 9E 34, 05, 05]
+1B1E4; [7D 9E 3B, 05, 05]
+1B1E5; [7D 9E 42, 05, 05]
+1B1E6; [7D 9E 49, 05, 05]
+1B1E7; [7D 9E 50, 05, 05]
+1B1E8; [7D 9E 57, 05, 05]
+1B1E9; [7D 9E 5E, 05, 05]
+1B1EA; [7D 9E 65, 05, 05]
+1B1EB; [7D 9E 6C, 05, 05]
+1B1EC; [7D 9E 73, 05, 05]
+1B1ED; [7D 9E 7A, 05, 05]
+1B1EE; [7D 9E 81, 05, 05]
+1B1EF; [7D 9E 88, 05, 05]
+1B1F0; [7D 9E 8F, 05, 05]
+1B1F1; [7D 9E 96, 05, 05]
+1B1F2; [7D 9E 9D, 05, 05]
+1B1F3; [7D 9E A4, 05, 05]
+1B1F4; [7D 9E AB, 05, 05]
+1B1F5; [7D 9E B2, 05, 05]
+1B1F6; [7D 9E B9, 05, 05]
+1B1F7; [7D 9E C0, 05, 05]
+1B1F8; [7D 9E C7, 05, 05]
+1B1F9; [7D 9E CE, 05, 05]
+1B1FA; [7D 9E D5, 05, 05]
+1B1FB; [7D 9E DC, 05, 05]
+1B1FC; [7D 9E E3, 05, 05]
+1B1FD; [7D 9E EA, 05, 05]
+1B1FE; [7D 9E F1, 05, 05]
+1B1FF; [7D 9E F8, 05, 05]
+1B200; [7D 9E FF, 05, 05]
+1B201; [7D 9F 08, 05, 05]
+1B202; [7D 9F 0F, 05, 05]
+1B203; [7D 9F 16, 05, 05]
+1B204; [7D 9F 1D, 05, 05]
+1B205; [7D 9F 24, 05, 05]
+1B206; [7D 9F 2B, 05, 05]
+1B207; [7D 9F 32, 05, 05]
+1B208; [7D 9F 39, 05, 05]
+1B209; [7D 9F 40, 05, 05]
+1B20A; [7D 9F 47, 05, 05]
+1B20B; [7D 9F 4E, 05, 05]
+1B20C; [7D 9F 55, 05, 05]
+1B20D; [7D 9F 5C, 05, 05]
+1B20E; [7D 9F 63, 05, 05]
+1B20F; [7D 9F 6A, 05, 05]
+1B210; [7D 9F 71, 05, 05]
+1B211; [7D 9F 78, 05, 05]
+1B212; [7D 9F 7F, 05, 05]
+1B213; [7D 9F 86, 05, 05]
+1B214; [7D 9F 8D, 05, 05]
+1B215; [7D 9F 94, 05, 05]
+1B216; [7D 9F 9B, 05, 05]
+1B217; [7D 9F A2, 05, 05]
+1B218; [7D 9F A9, 05, 05]
+1B219; [7D 9F B0, 05, 05]
+1B21A; [7D 9F B7, 05, 05]
+1B21B; [7D 9F BE, 05, 05]
+1B21C; [7D 9F C5, 05, 05]
+1B21D; [7D 9F CC, 05, 05]
+1B21E; [7D 9F D3, 05, 05]
+1B21F; [7D 9F DA, 05, 05]
+1B220; [7D 9F E1, 05, 05]
+1B221; [7D 9F E8, 05, 05]
+1B222; [7D 9F EF, 05, 05]
+1B223; [7D 9F F6, 05, 05]
+1B224; [7D 9F FD, 05, 05]
+1B225; [7D A0 06, 05, 05]
+1B226; [7D A0 0D, 05, 05]
+1B227; [7D A0 14, 05, 05]
+1B228; [7D A0 1B, 05, 05]
+1B229; [7D A0 22, 05, 05]
+1B22A; [7D A0 29, 05, 05]
+1B22B; [7D A0 30, 05, 05]
+1B22C; [7D A0 37, 05, 05]
+1B22D; [7D A0 3E, 05, 05]
+1B22E; [7D A0 45, 05, 05]
+1B22F; [7D A0 4C, 05, 05]
+1B230; [7D A0 53, 05, 05]
+1B231; [7D A0 5A, 05, 05]
+1B232; [7D A0 61, 05, 05]
+1B233; [7D A0 68, 05, 05]
+1B234; [7D A0 6F, 05, 05]
+1B235; [7D A0 76, 05, 05]
+1B236; [7D A0 7D, 05, 05]
+1B237; [7D A0 84, 05, 05]
+1B238; [7D A0 8B, 05, 05]
+1B239; [7D A0 92, 05, 05]
+1B23A; [7D A0 99, 05, 05]
+1B23B; [7D A0 A0, 05, 05]
+1B23C; [7D A0 A7, 05, 05]
+1B23D; [7D A0 AE, 05, 05]
+1B23E; [7D A0 B5, 05, 05]
+1B23F; [7D A0 BC, 05, 05]
+1B240; [7D A0 C3, 05, 05]
+1B241; [7D A0 CA, 05, 05]
+1B242; [7D A0 D1, 05, 05]
+1B243; [7D A0 D8, 05, 05]
+1B244; [7D A0 DF, 05, 05]
+1B245; [7D A0 E6, 05, 05]
+1B246; [7D A0 ED, 05, 05]
+1B247; [7D A0 F4, 05, 05]
+1B248; [7D A0 FB, 05, 05]
+1B249; [7D A1 04, 05, 05]
+1B24A; [7D A1 0B, 05, 05]
+1B24B; [7D A1 12, 05, 05]
+1B24C; [7D A1 19, 05, 05]
+1B24D; [7D A1 20, 05, 05]
+1B24E; [7D A1 27, 05, 05]
+1B24F; [7D A1 2E, 05, 05]
+1B250; [7D A1 35, 05, 05]
+1B251; [7D A1 3C, 05, 05]
+1B252; [7D A1 43, 05, 05]
+1B253; [7D A1 4A, 05, 05]
+1B254; [7D A1 51, 05, 05]
+1B255; [7D A1 58, 05, 05]
+1B256; [7D A1 5F, 05, 05]
+1B257; [7D A1 66, 05, 05]
+1B258; [7D A1 6D, 05, 05]
+1B259; [7D A1 74, 05, 05]
+1B25A; [7D A1 7B, 05, 05]
+1B25B; [7D A1 82, 05, 05]
+1B25C; [7D A1 89, 05, 05]
+1B25D; [7D A1 90, 05, 05]
+1B25E; [7D A1 97, 05, 05]
+1B25F; [7D A1 9E, 05, 05]
+1B260; [7D A1 A5, 05, 05]
+1B261; [7D A1 AC, 05, 05]
+1B262; [7D A1 B3, 05, 05]
+1B263; [7D A1 BA, 05, 05]
+1B264; [7D A1 C1, 05, 05]
+1B265; [7D A1 C8, 05, 05]
+1B266; [7D A1 CF, 05, 05]
+1B267; [7D A1 D6, 05, 05]
+1B268; [7D A1 DD, 05, 05]
+1B269; [7D A1 E4, 05, 05]
+1B26A; [7D A1 EB, 05, 05]
+1B26B; [7D A1 F2, 05, 05]
+1B26C; [7D A1 F9, 05, 05]
+1B26D; [7D A2 02, 05, 05]
+1B26E; [7D A2 09, 05, 05]
+1B26F; [7D A2 10, 05, 05]
+1B270; [7D A2 17, 05, 05]
+1B271; [7D A2 1E, 05, 05]
+1B272; [7D A2 25, 05, 05]
+1B273; [7D A2 2C, 05, 05]
+1B274; [7D A2 33, 05, 05]
+1B275; [7D A2 3A, 05, 05]
+1B276; [7D A2 41, 05, 05]
+1B277; [7D A2 48, 05, 05]
+1B278; [7D A2 4F, 05, 05]
+1B279; [7D A2 56, 05, 05]
+1B27A; [7D A2 5D, 05, 05]
+1B27B; [7D A2 64, 05, 05]
+1B27C; [7D A2 6B, 05, 05]
+1B27D; [7D A2 72, 05, 05]
+1B27E; [7D A2 79, 05, 05]
+1B27F; [7D A2 80, 05, 05]
+1B280; [7D A2 87, 05, 05]
+1B281; [7D A2 8E, 05, 05]
+1B282; [7D A2 95, 05, 05]
+1B283; [7D A2 9C, 05, 05]
+1B284; [7D A2 A3, 05, 05]
+1B285; [7D A2 AA, 05, 05]
+1B286; [7D A2 B1, 05, 05]
+1B287; [7D A2 B8, 05, 05]
+1B288; [7D A2 BF, 05, 05]
+1B289; [7D A2 C6, 05, 05]
+1B28A; [7D A2 CD, 05, 05]
+1B28B; [7D A2 D4, 05, 05]
+1B28C; [7D A2 DB, 05, 05]
+1B28D; [7D A2 E2, 05, 05]
+1B28E; [7D A2 E9, 05, 05]
+1B28F; [7D A2 F0, 05, 05]
+1B290; [7D A2 F7, 05, 05]
+1B291; [7D A2 FE, 05, 05]
+1B292; [7D A3 07, 05, 05]
+1B293; [7D A3 0E, 05, 05]
+1B294; [7D A3 15, 05, 05]
+1B295; [7D A3 1C, 05, 05]
+1B296; [7D A3 23, 05, 05]
+1B297; [7D A3 2A, 05, 05]
+1B298; [7D A3 31, 05, 05]
+1B299; [7D A3 38, 05, 05]
+1B29A; [7D A3 3F, 05, 05]
+1B29B; [7D A3 46, 05, 05]
+1B29C; [7D A3 4D, 05, 05]
+1B29D; [7D A3 54, 05, 05]
+1B29E; [7D A3 5B, 05, 05]
+1B29F; [7D A3 62, 05, 05]
+1B2A0; [7D A3 69, 05, 05]
+1B2A1; [7D A3 70, 05, 05]
+1B2A2; [7D A3 77, 05, 05]
+1B2A3; [7D A3 7E, 05, 05]
+1B2A4; [7D A3 85, 05, 05]
+1B2A5; [7D A3 8C, 05, 05]
+1B2A6; [7D A3 93, 05, 05]
+1B2A7; [7D A3 9A, 05, 05]
+1B2A8; [7D A3 A1, 05, 05]
+1B2A9; [7D A3 A8, 05, 05]
+1B2AA; [7D A3 AF, 05, 05]
+1B2AB; [7D A3 B6, 05, 05]
+1B2AC; [7D A3 BD, 05, 05]
+1B2AD; [7D A3 C4, 05, 05]
+1B2AE; [7D A3 CB, 05, 05]
+1B2AF; [7D A3 D2, 05, 05]
+1B2B0; [7D A3 D9, 05, 05]
+1B2B1; [7D A3 E0, 05, 05]
+1B2B2; [7D A3 E7, 05, 05]
+1B2B3; [7D A3 EE, 05, 05]
+1B2B4; [7D A3 F5, 05, 05]
+1B2B5; [7D A3 FC, 05, 05]
+1B2B6; [7D A4 05, 05, 05]
+1B2B7; [7D A4 0C, 05, 05]
+1B2B8; [7D A4 13, 05, 05]
+1B2B9; [7D A4 1A, 05, 05]
+1B2BA; [7D A4 21, 05, 05]
+1B2BB; [7D A4 28, 05, 05]
+1B2BC; [7D A4 2F, 05, 05]
+1B2BD; [7D A4 36, 05, 05]
+1B2BE; [7D A4 3D, 05, 05]
+1B2BF; [7D A4 44, 05, 05]
+1B2C0; [7D A4 4B, 05, 05]
+1B2C1; [7D A4 52, 05, 05]
+1B2C2; [7D A4 59, 05, 05]
+1B2C3; [7D A4 60, 05, 05]
+1B2C4; [7D A4 67, 05, 05]
+1B2C5; [7D A4 6E, 05, 05]
+1B2C6; [7D A4 75, 05, 05]
+1B2C7; [7D A4 7C, 05, 05]
+1B2C8; [7D A4 83, 05, 05]
+1B2C9; [7D A4 8A, 05, 05]
+1B2CA; [7D A4 91, 05, 05]
+1B2CB; [7D A4 98, 05, 05]
+1B2CC; [7D A4 9F, 05, 05]
+1B2CD; [7D A4 A6, 05, 05]
+1B2CE; [7D A4 AD, 05, 05]
+1B2CF; [7D A4 B4, 05, 05]
+1B2D0; [7D A4 BB, 05, 05]
+1B2D1; [7D A4 C2, 05, 05]
+1B2D2; [7D A4 C9, 05, 05]
+1B2D3; [7D A4 D0, 05, 05]
+1B2D4; [7D A4 D7, 05, 05]
+1B2D5; [7D A4 DE, 05, 05]
+1B2D6; [7D A4 E5, 05, 05]
+1B2D7; [7D A4 EC, 05, 05]
+1B2D8; [7D A4 F3, 05, 05]
+1B2D9; [7D A4 FA, 05, 05]
+1B2DA; [7D A5 03, 05, 05]
+1B2DB; [7D A5 0A, 05, 05]
+1B2DC; [7D A5 11, 05, 05]
+1B2DD; [7D A5 18, 05, 05]
+1B2DE; [7D A5 1F, 05, 05]
+1B2DF; [7D A5 26, 05, 05]
+1B2E0; [7D A5 2D, 05, 05]
+1B2E1; [7D A5 34, 05, 05]
+1B2E2; [7D A5 3B, 05, 05]
+1B2E3; [7D A5 42, 05, 05]
+1B2E4; [7D A5 49, 05, 05]
+1B2E5; [7D A5 50, 05, 05]
+1B2E6; [7D A5 57, 05, 05]
+1B2E7; [7D A5 5E, 05, 05]
+1B2E8; [7D A5 65, 05, 05]
+1B2E9; [7D A5 6C, 05, 05]
+1B2EA; [7D A5 73, 05, 05]
+1B2EB; [7D A5 7A, 05, 05]
+1B2EC; [7D A5 81, 05, 05]
+1B2ED; [7D A5 88, 05, 05]
+1B2EE; [7D A5 8F, 05, 05]
+1B2EF; [7D A5 96, 05, 05]
+1B2F0; [7D A5 9D, 05, 05]
+1B2F1; [7D A5 A4, 05, 05]
+1B2F2; [7D A5 AB, 05, 05]
+1B2F3; [7D A5 B2, 05, 05]
+1B2F4; [7D A5 B9, 05, 05]
+1B2F5; [7D A5 C0, 05, 05]
+1B2F6; [7D A5 C7, 05, 05]
+1B2F7; [7D A5 CE, 05, 05]
+1B2F8; [7D A5 D5, 05, 05]
+1B2F9; [7D A5 DC, 05, 05]
+1B2FA; [7D A5 E3, 05, 05]
+1B2FB; [7D A5 EA, 05, 05]
+
+FDD1 5B57; [7E 02 02, 05, 05] # HAN first primary starts new lead byte
2F00; [U+4E00, 10]
3280; [U+4E00, 1B]
@@ -60368,194 +61540,201 @@ FDD0 0050; [, , 3D 02] # CONSTRUCTED FAKE SECONDARY-IGNORABLE
[first secondary in primary non-ignorable [X, 05, X]] # U+0009 <CHARACTER TABULATION>
[last secondary in primary non-ignorable [X, 7C, X]] # U+16AE RUNIC LETTER O
[first primary ignorable [, 82, 05]] # U+0332 COMBINING LOW LINE
-[last primary ignorable [, FB B4, 05]] # U+00B7 MIDDLE DOT
+[last primary ignorable [, FB D6, 05]] # U+00B7 MIDDLE DOT
[first variable [03 04, 05, 05]] # U+0009 <CHARACTER TABULATION>
-[last variable [0B 6D 4B, 05, 05]] # U+10A7F OLD SOUTH ARABIAN NUMERIC INDICATOR
+[last variable [0B 78 59, 05, 05]] # U+10A7F OLD SOUTH ARABIAN NUMERIC INDICATOR
[variable top = 0B FF FF FF]
[first regular [0C 04, 05, 05]] # U+0060 GRAVE ACCENT
-[last regular [7C 87 EA, 05, 05]] # U+1B2FB NUSHU CHARACTER-1B2FB
+[last regular [7D A5 EA, 05, 05]] # U+1B2FB NUSHU CHARACTER-1B2FB
[first implicit [E0, 05, 05]] # CONSTRUCTED
[last implicit [E4, 05, 05]] # CONSTRUCTED
[first trailing [EF FD, 05, 05]] # U+FFFD REPLACEMENT CHARACTER
[last trailing [EF FF, 05, 05]] # U+FFFF <noncharacter-FFFF>
# Reordering Tokens => Top Bytes
-[reorderingTokens Adlm 77=69 ]
-[reorderingTokens Aghb 7B=53 ]
-[reorderingTokens Ahom 70=27 ]
-[reorderingTokens Arab 65=1081 ]
-[reorderingTokens Armi 7B=23 ]
-[reorderingTokens Armn 63=83 ]
-[reorderingTokens Avst 7B=55 ]
-[reorderingTokens Bali 75=61 ]
-[reorderingTokens Bamu 77=640 ]
-[reorderingTokens Bass 77=31 ]
-[reorderingTokens Batk 74=39 ]
-[reorderingTokens Beng 68=56 ]
-[reorderingTokens Bhks 70=48 ]
-[reorderingTokens Bopo 7A=70 ]
-[reorderingTokens Brah 70=54 ]
-[reorderingTokens Bugi 74=24 ]
-[reorderingTokens Buhd 74=19 ]
+[reorderingTokens Adlm 78=69 ]
+[reorderingTokens Aghb 7C=53 ]
+[reorderingTokens Ahom 71=28 ]
+[reorderingTokens Arab 66=1081 ]
+[reorderingTokens Armi 7C=23 ]
+[reorderingTokens Armn 64=85 ]
+[reorderingTokens Avst 7C=55 ]
+[reorderingTokens Bali 76=61 ]
+[reorderingTokens Bamu 78=640 ]
+[reorderingTokens Bass 78=31 ]
+[reorderingTokens Batk 75=39 ]
+[reorderingTokens Beng 69=56 ]
+[reorderingTokens Bhks 71=48 ]
+[reorderingTokens Bopo 7B=71 ]
+[reorderingTokens Brah 71=54 ]
+[reorderingTokens Bugi 75=24 ]
+[reorderingTokens Buhd 75=19 ]
[reorderingTokens CURRENCY 0D=1 ]
-[reorderingTokens Cakm 74=37 ]
-[reorderingTokens Cans 75=708 ]
-[reorderingTokens Cari 7A=50 ]
-[reorderingTokens Cham 75=53 ]
-[reorderingTokens Cher 75=173 ]
-[reorderingTokens Copt 5F=122 ]
-[reorderingTokens Cprt 7B=56 ]
-[reorderingTokens Cyrl 60=387 ]
-[reorderingTokens DIGIT 0E=1 0F=1 10=1 11=1 12=1 13=1 14=1 15=1 16=1 17=1 18=1 19=1 1A=1 1B=1 1C=1 1D=1 1E=1 1F=1 20=1 21=1 22=1 23=1 24=1 25=1 26=1 27=1 ]
-[reorderingTokens Deva 67=89 ]
-[reorderingTokens Dsrt 7B=81 ]
-[reorderingTokens Dupl 7B=140 ]
-[reorderingTokens Egyp 7B=1072 ]
-[reorderingTokens Elba 7B=41 ]
-[reorderingTokens Ethi 66=454 ]
+[reorderingTokens Cakm 75=38 ]
+[reorderingTokens Cans 76=708 ]
+[reorderingTokens Cari 7B=50 ]
+[reorderingTokens Cham 76=53 ]
+[reorderingTokens Cher 76=173 ]
+[reorderingTokens Copt 60=122 ]
+[reorderingTokens Cprt 7C=56 ]
+[reorderingTokens Cyrl 61=387 ]
+[reorderingTokens DIGIT 0E=1 0F=1 10=1 11=1 12=1 13=1 14=1 15=1 16=1 17=1 18=1 19=1 1A=1 1B=1 1C=1 1D=1 1E=1 1F=1 20=1 21=1 22=1 23=1 24=1 25=1 26=1 27=1 28=1 ]
+[reorderingTokens Deva 68=90 ]
+[reorderingTokens Dogr 71=45 ]
+[reorderingTokens Dsrt 7C=81 ]
+[reorderingTokens Dupl 7C=140 ]
+[reorderingTokens Egyp 7D=1072 ]
+[reorderingTokens Elba 7C=41 ]
+[reorderingTokens Ethi 67=454 ]
[reorderingTokens FIELD-SEPARATOR 02=1 ]
-[reorderingTokens Geor 62=128 ]
-[reorderingTokens Glag 61=95 ]
-[reorderingTokens Gonm 70=49 ]
-[reorderingTokens Goth 7A=26 ]
-[reorderingTokens Gran 70=54 ]
-[reorderingTokens Grek 5F=645 ]
-[reorderingTokens Gujr 6A=54 ]
-[reorderingTokens Guru 69=52 ]
-[reorderingTokens Hang 78=535 ]
-[reorderingTokens Hani 5D=1 5E=1 7D=1 7E=1 7F=1 80=1 81=1 82=1 83=1 84=1 85=1 86=1 87=1 88=1 89=1 8A=1 8B=1 8C=1 8D=1 8E=1 8F=1 90=1 91=1 92=1 93=1 94=1 95=1 96=1 97=1 98=1 99=1 9A=1 9B=1 9C=1 9D=1 9E=1 9F=1 A0=1 A1=1 A2=1 A3=1 A4=1 A5=1 A6=1 A7=1 A8=1 A9=1 AA=1 AB=1 AC=1 AD=1 AE=1 AF=1 B0=1 B1=1 B2=1 B3=1 B4=1 B5=1 B6=1 B7=1 B8=1 B9=1 BA=1 BB=1 BC=1 BD=1 BE=1 BF=1 C0=1 C1=1 C2=1 C3=1 C4=1 C5=1 C6=1 C7=1 C8=1 C9=1 CA=1 CB=1 CC=1 CD=1 CE=1 CF=1 D0=1 D1=1 D2=1 D3=1 D4=1 D5=1 D6=1 D7=1 D8=1 D9=1 DA=1 DB=1 DC=1 DD=1 DE=1 DF=1 ]
-[reorderingTokens Hano 74=19 ]
-[reorderingTokens Hans 5D=1 5E=1 7D=1 7E=1 7F=1 80=1 81=1 82=1 83=1 84=1 85=1 86=1 87=1 88=1 89=1 8A=1 8B=1 8C=1 8D=1 8E=1 8F=1 90=1 91=1 92=1 93=1 94=1 95=1 96=1 97=1 98=1 99=1 9A=1 9B=1 9C=1 9D=1 9E=1 9F=1 A0=1 A1=1 A2=1 A3=1 A4=1 A5=1 A6=1 A7=1 A8=1 A9=1 AA=1 AB=1 AC=1 AD=1 AE=1 AF=1 B0=1 B1=1 B2=1 B3=1 B4=1 B5=1 B6=1 B7=1 B8=1 B9=1 BA=1 BB=1 BC=1 BD=1 BE=1 BF=1 C0=1 C1=1 C2=1 C3=1 C4=1 C5=1 C6=1 C7=1 C8=1 C9=1 CA=1 CB=1 CC=1 CD=1 CE=1 CF=1 D0=1 D1=1 D2=1 D3=1 D4=1 D5=1 D6=1 D7=1 D8=1 D9=1 DA=1 DB=1 DC=1 DD=1 DE=1 DF=1 ]
-[reorderingTokens Hant 5D=1 5E=1 7D=1 7E=1 7F=1 80=1 81=1 82=1 83=1 84=1 85=1 86=1 87=1 88=1 89=1 8A=1 8B=1 8C=1 8D=1 8E=1 8F=1 90=1 91=1 92=1 93=1 94=1 95=1 96=1 97=1 98=1 99=1 9A=1 9B=1 9C=1 9D=1 9E=1 9F=1 A0=1 A1=1 A2=1 A3=1 A4=1 A5=1 A6=1 A7=1 A8=1 A9=1 AA=1 AB=1 AC=1 AD=1 AE=1 AF=1 B0=1 B1=1 B2=1 B3=1 B4=1 B5=1 B6=1 B7=1 B8=1 B9=1 BA=1 BB=1 BC=1 BD=1 BE=1 BF=1 C0=1 C1=1 C2=1 C3=1 C4=1 C5=1 C6=1 C7=1 C8=1 C9=1 CA=1 CB=1 CC=1 CD=1 CE=1 CF=1 D0=1 D1=1 D2=1 D3=1 D4=1 D5=1 D6=1 D7=1 D8=1 D9=1 DA=1 DB=1 DC=1 DD=1 DE=1 DF=1 ]
-[reorderingTokens Hatr 7B=22 ]
-[reorderingTokens Hebr 64=79 ]
-[reorderingTokens Hira 79=1 ]
-[reorderingTokens Hluw 7C=584 ]
-[reorderingTokens Hmng 7A=89 ]
-[reorderingTokens Hrkt 79=1 ]
-[reorderingTokens Hung 76=103 ]
+[reorderingTokens Geor 63=174 ]
+[reorderingTokens Glag 62=95 ]
+[reorderingTokens Gong 71=42 ]
+[reorderingTokens Gonm 71=49 ]
+[reorderingTokens Goth 7B=26 ]
+[reorderingTokens Gran 71=54 ]
+[reorderingTokens Grek 60=645 ]
+[reorderingTokens Gujr 6B=54 ]
+[reorderingTokens Guru 6A=52 ]
+[reorderingTokens Hang 79=535 ]
+[reorderingTokens Hani 5E=1 5F=1 7E=1 7F=1 80=1 81=1 82=1 83=1 84=1 85=1 86=1 87=1 88=1 89=1 8A=1 8B=1 8C=1 8D=1 8E=1 8F=1 90=1 91=1 92=1 93=1 94=1 95=1 96=1 97=1 98=1 99=1 9A=1 9B=1 9C=1 9D=1 9E=1 9F=1 A0=1 A1=1 A2=1 A3=1 A4=1 A5=1 A6=1 A7=1 A8=1 A9=1 AA=1 AB=1 AC=1 AD=1 AE=1 AF=1 B0=1 B1=1 B2=1 B3=1 B4=1 B5=1 B6=1 B7=1 B8=1 B9=1 BA=1 BB=1 BC=1 BD=1 BE=1 BF=1 C0=1 C1=1 C2=1 C3=1 C4=1 C5=1 C6=1 C7=1 C8=1 C9=1 CA=1 CB=1 CC=1 CD=1 CE=1 CF=1 D0=1 D1=1 D2=1 D3=1 D4=1 D5=1 D6=1 D7=1 D8=1 D9=1 DA=1 DB=1 DC=1 DD=1 DE=1 DF=1 ]
+[reorderingTokens Hano 75=19 ]
+[reorderingTokens Hans 5E=1 5F=1 7E=1 7F=1 80=1 81=1 82=1 83=1 84=1 85=1 86=1 87=1 88=1 89=1 8A=1 8B=1 8C=1 8D=1 8E=1 8F=1 90=1 91=1 92=1 93=1 94=1 95=1 96=1 97=1 98=1 99=1 9A=1 9B=1 9C=1 9D=1 9E=1 9F=1 A0=1 A1=1 A2=1 A3=1 A4=1 A5=1 A6=1 A7=1 A8=1 A9=1 AA=1 AB=1 AC=1 AD=1 AE=1 AF=1 B0=1 B1=1 B2=1 B3=1 B4=1 B5=1 B6=1 B7=1 B8=1 B9=1 BA=1 BB=1 BC=1 BD=1 BE=1 BF=1 C0=1 C1=1 C2=1 C3=1 C4=1 C5=1 C6=1 C7=1 C8=1 C9=1 CA=1 CB=1 CC=1 CD=1 CE=1 CF=1 D0=1 D1=1 D2=1 D3=1 D4=1 D5=1 D6=1 D7=1 D8=1 D9=1 DA=1 DB=1 DC=1 DD=1 DE=1 DF=1 ]
+[reorderingTokens Hant 5E=1 5F=1 7E=1 7F=1 80=1 81=1 82=1 83=1 84=1 85=1 86=1 87=1 88=1 89=1 8A=1 8B=1 8C=1 8D=1 8E=1 8F=1 90=1 91=1 92=1 93=1 94=1 95=1 96=1 97=1 98=1 99=1 9A=1 9B=1 9C=1 9D=1 9E=1 9F=1 A0=1 A1=1 A2=1 A3=1 A4=1 A5=1 A6=1 A7=1 A8=1 A9=1 AA=1 AB=1 AC=1 AD=1 AE=1 AF=1 B0=1 B1=1 B2=1 B3=1 B4=1 B5=1 B6=1 B7=1 B8=1 B9=1 BA=1 BB=1 BC=1 BD=1 BE=1 BF=1 C0=1 C1=1 C2=1 C3=1 C4=1 C5=1 C6=1 C7=1 C8=1 C9=1 CA=1 CB=1 CC=1 CD=1 CE=1 CF=1 D0=1 D1=1 D2=1 D3=1 D4=1 D5=1 D6=1 D7=1 D8=1 D9=1 DA=1 DB=1 DC=1 DD=1 DE=1 DF=1 ]
+[reorderingTokens Hatr 7C=22 ]
+[reorderingTokens Hebr 65=80 ]
+[reorderingTokens Hira 7A=1 ]
+[reorderingTokens Hluw 7D=584 ]
+[reorderingTokens Hmng 7B=89 ]
+[reorderingTokens Hrkt 7A=1 ]
+[reorderingTokens Hung 77=103 ]
[reorderingTokens IMPLICIT E0=5 E1=5 E2=5 E3=5 E4=5 ]
-[reorderingTokens Ital 7A=36 ]
-[reorderingTokens Java 75=48 ]
-[reorderingTokens Kali 74=29 ]
-[reorderingTokens Kana 79=676 ]
-[reorderingTokens Khar 70=36 ]
-[reorderingTokens Khmr 74=54 ]
-[reorderingTokens Khoj 70=44 ]
-[reorderingTokens Knda 6E=57 ]
-[reorderingTokens Kthi 70=46 ]
+[reorderingTokens Ital 7B=36 ]
+[reorderingTokens Java 76=48 ]
+[reorderingTokens Kali 75=29 ]
+[reorderingTokens Kana 7A=676 ]
+[reorderingTokens Khar 71=38 ]
+[reorderingTokens Khmr 75=54 ]
+[reorderingTokens Khoj 71=44 ]
+[reorderingTokens Knda 6F=57 ]
+[reorderingTokens Kthi 71=46 ]
[reorderingTokens LEVEL-SEPARATOR 01=1 ]
-[reorderingTokens Lana 75=54 ]
-[reorderingTokens Laoo 72=196 ]
-[reorderingTokens Latn 28=2231 29=2231 2A=2231 2B=2231 2C=2231 2D=2231 2E=2231 2F=2231 30=2231 31=2231 32=2231 33=2231 34=2231 35=2231 36=2231 37=2231 38=2231 39=2231 3A=2231 3B=2231 3C=2231 3D=2231 3E=2231 3F=2231 40=2231 41=2231 42=2231 43=2231 44=2231 45=2231 46=2231 47=2231 48=2231 49=2231 4A=2231 4B=2231 4C=2231 4D=2231 4E=2231 4F=2231 50=2231 51=2231 52=2231 53=2231 54=2231 55=2231 56=2231 57=2231 58=2231 59=2231 5A=2231 5B=2231 5C=2231 ]
-[reorderingTokens Lepc 74=40 ]
-[reorderingTokens Limb 74=32 ]
-[reorderingTokens Lina 7B=342 ]
-[reorderingTokens Linb 7B=212 ]
-[reorderingTokens Lisu 7A=41 ]
-[reorderingTokens Lyci 7A=30 ]
-[reorderingTokens Lydi 7A=27 ]
-[reorderingTokens Mahj 70=37 ]
-[reorderingTokens Mand 66=26 ]
-[reorderingTokens Mani 7B=37 ]
-[reorderingTokens Marc 74=31 ]
-[reorderingTokens Mend 77=198 ]
-[reorderingTokens Merc 7C=27 ]
-[reorderingTokens Mero 7C=32 ]
-[reorderingTokens Mlym 6F=67 ]
-[reorderingTokens Modi 70=50 ]
-[reorderingTokens Mong 75=128 ]
-[reorderingTokens Mroo 7B=32 ]
-[reorderingTokens Mtei 70=48 ]
-[reorderingTokens Mult 70=38 ]
-[reorderingTokens Mymr 74=120 ]
-[reorderingTokens Narb 7B=30 ]
-[reorderingTokens Nbat 7B=32 ]
-[reorderingTokens Newa 70=58 ]
-[reorderingTokens Nkoo 66=34 ]
-[reorderingTokens Nshu 7C=1 ]
-[reorderingTokens Ogam 75=27 ]
-[reorderingTokens Olck 75=31 ]
-[reorderingTokens Orkh 76=74 ]
-[reorderingTokens Orya 6B=54 ]
-[reorderingTokens Osge 75=73 ]
-[reorderingTokens Osma 7B=31 ]
+[reorderingTokens Lana 76=54 ]
+[reorderingTokens Laoo 73=196 ]
+[reorderingTokens Latn 29=2234 2A=2234 2B=2234 2C=2234 2D=2234 2E=2234 2F=2234 30=2234 31=2234 32=2234 33=2234 34=2234 35=2234 36=2234 37=2234 38=2234 39=2234 3A=2234 3B=2234 3C=2234 3D=2234 3E=2234 3F=2234 40=2234 41=2234 42=2234 43=2234 44=2234 45=2234 46=2234 47=2234 48=2234 49=2234 4A=2234 4B=2234 4C=2234 4D=2234 4E=2234 4F=2234 50=2234 51=2234 52=2234 53=2234 54=2234 55=2234 56=2234 57=2234 58=2234 59=2234 5A=2234 5B=2234 5C=2234 5D=2234 ]
+[reorderingTokens Lepc 75=40 ]
+[reorderingTokens Limb 75=32 ]
+[reorderingTokens Lina 7C=342 ]
+[reorderingTokens Linb 7C=212 ]
+[reorderingTokens Lisu 7B=41 ]
+[reorderingTokens Lyci 7B=30 ]
+[reorderingTokens Lydi 7B=27 ]
+[reorderingTokens Mahj 71=37 ]
+[reorderingTokens Maka 75=20 ]
+[reorderingTokens Mand 67=26 ]
+[reorderingTokens Mani 7C=37 ]
+[reorderingTokens Marc 75=31 ]
+[reorderingTokens Medf 78=65 ]
+[reorderingTokens Mend 78=198 ]
+[reorderingTokens Merc 7D=27 ]
+[reorderingTokens Mero 7D=32 ]
+[reorderingTokens Mlym 70=67 ]
+[reorderingTokens Modi 71=50 ]
+[reorderingTokens Mong 76=129 ]
+[reorderingTokens Mroo 7C=32 ]
+[reorderingTokens Mtei 71=48 ]
+[reorderingTokens Mult 71=38 ]
+[reorderingTokens Mymr 75=120 ]
+[reorderingTokens Narb 7C=30 ]
+[reorderingTokens Nbat 7C=32 ]
+[reorderingTokens Newa 71=58 ]
+[reorderingTokens Nkoo 67=34 ]
+[reorderingTokens Nshu 7D=1 ]
+[reorderingTokens Ogam 76=27 ]
+[reorderingTokens Olck 76=31 ]
+[reorderingTokens Orkh 77=74 ]
+[reorderingTokens Orya 6C=54 ]
+[reorderingTokens Osge 76=73 ]
+[reorderingTokens Osma 7C=31 ]
[reorderingTokens PUNCTUATION 05=1 06=1 07=1 08=1 09=1 0A=1 0B=1 ]
-[reorderingTokens Palm 7B=24 ]
-[reorderingTokens Pauc 7A=58 ]
-[reorderingTokens Perm 61=39 ]
-[reorderingTokens Phag 74=53 ]
-[reorderingTokens Phli 7B=20 ]
-[reorderingTokens Phlp 7B=19 ]
-[reorderingTokens Phnx 64=23 ]
-[reorderingTokens Plrd 7A=71 ]
-[reorderingTokens Prti 7B=23 ]
-[reorderingTokens Rjng 74=24 ]
-[reorderingTokens Runr 76=84 ]
+[reorderingTokens Palm 7C=24 ]
+[reorderingTokens Pauc 7B=58 ]
+[reorderingTokens Perm 62=39 ]
+[reorderingTokens Phag 75=53 ]
+[reorderingTokens Phli 7C=20 ]
+[reorderingTokens Phlp 7C=19 ]
+[reorderingTokens Phnx 65=23 ]
+[reorderingTokens Plrd 7B=71 ]
+[reorderingTokens Prti 7C=23 ]
+[reorderingTokens Rjng 75=24 ]
+[reorderingTokens Rohg 75=37 ]
+[reorderingTokens Runr 77=84 ]
[reorderingTokens SPACE 03=1 04=1 ]
[reorderingTokens SPECIAL F0=16 F1=16 F2=16 F3=16 F4=16 F5=16 F6=16 F7=16 F8=16 F9=16 FA=16 FB=16 FC=16 FD=16 FE=16 FF=16 ]
[reorderingTokens SYMBOL 0C=1 ]
-[reorderingTokens Samr 64=23 ]
-[reorderingTokens Sarb 7B=30 ]
-[reorderingTokens Saur 70=51 ]
-[reorderingTokens Shaw 7B=49 ]
-[reorderingTokens Shrd 70=55 ]
-[reorderingTokens Sidd 70=52 ]
-[reorderingTokens Sind 70=48 ]
-[reorderingTokens Sinh 70=60 ]
-[reorderingTokens Sora 7B=26 ]
-[reorderingTokens Soyo 73=46 ]
-[reorderingTokens Sund 70=39 ]
-[reorderingTokens Sylo 70=33 ]
-[reorderingTokens Syrc 66=46 ]
+[reorderingTokens Samr 65=23 ]
+[reorderingTokens Sarb 7C=30 ]
+[reorderingTokens Saur 71=51 ]
+[reorderingTokens Shaw 7C=49 ]
+[reorderingTokens Shrd 71=55 ]
+[reorderingTokens Sidd 71=52 ]
+[reorderingTokens Sind 71=48 ]
+[reorderingTokens Sinh 71=60 ]
+[reorderingTokens Sogd 7C=23 ]
+[reorderingTokens Sogo 7C=31 ]
+[reorderingTokens Sora 7C=26 ]
+[reorderingTokens Soyo 74=47 ]
+[reorderingTokens Sund 71=39 ]
+[reorderingTokens Sylo 71=33 ]
+[reorderingTokens Syrc 67=46 ]
[reorderingTokens TERMINATOR 00=1 ]
[reorderingTokens TRAILING E5=11 E6=11 E7=11 E8=11 E9=11 EA=11 EB=11 EC=11 ED=11 EE=11 EF=11 ]
-[reorderingTokens Tagb 74=17 ]
-[reorderingTokens Takr 70=44 ]
-[reorderingTokens Tale 75=36 ]
-[reorderingTokens Talu 75=247 ]
-[reorderingTokens Taml 6C=39 ]
-[reorderingTokens Tang 7C=1 ]
-[reorderingTokens Tavt 72=301 ]
-[reorderingTokens Telu 6D=57 ]
-[reorderingTokens Tfng 66=58 ]
-[reorderingTokens Tglg 74=18 ]
-[reorderingTokens Thaa 66=40 ]
-[reorderingTokens Thai 71=286 ]
-[reorderingTokens Tibt 73=51 ]
-[reorderingTokens Tirh 70=52 ]
-[reorderingTokens Ugar 7B=31 ]
-[reorderingTokens Vaii 77=287 ]
-[reorderingTokens Wara 7A=66 ]
-[reorderingTokens Xpeo 7B=45 ]
-[reorderingTokens Xsux 7B=1119 ]
-[reorderingTokens Yiii 7A=1165 ]
-[reorderingTokens Zanb 73=43 ]
+[reorderingTokens Tagb 75=17 ]
+[reorderingTokens Takr 71=44 ]
+[reorderingTokens Tale 76=36 ]
+[reorderingTokens Talu 76=247 ]
+[reorderingTokens Taml 6D=39 ]
+[reorderingTokens Tang 7D=1 ]
+[reorderingTokens Tavt 73=301 ]
+[reorderingTokens Telu 6E=57 ]
+[reorderingTokens Tfng 67=58 ]
+[reorderingTokens Tglg 75=18 ]
+[reorderingTokens Thaa 67=40 ]
+[reorderingTokens Thai 72=286 ]
+[reorderingTokens Tibt 74=51 ]
+[reorderingTokens Tirh 71=52 ]
+[reorderingTokens Ugar 7C=31 ]
+[reorderingTokens Vaii 78=287 ]
+[reorderingTokens Wara 7B=66 ]
+[reorderingTokens Xpeo 7C=45 ]
+[reorderingTokens Xsux 7C=1119 ]
+[reorderingTokens Yiii 7B=1165 ]
+[reorderingTokens Zanb 74=43 ]
# General Categories => Top Byte
[categories Cc 03{SPACE}=6 ]
-[categories Lm 0C{SYMBOL}=24 0D{CURRENCY}=30 28{Latn}=12 29{Latn}=12 2A{Latn}=12 2B{Latn}=12 2C{Latn}=12 2D{Latn}=12 2E{Latn}=12 2F{Latn}=12 30{Latn}=12 31{Latn}=12 32{Latn}=12 33{Latn}=12 34{Latn}=12 35{Latn}=12 36{Latn}=12 37{Latn}=12 38{Latn}=12 39{Latn}=12 3A{Latn}=12 3B{Latn}=12 3C{Latn}=12 3D{Latn}=12 3E{Latn}=12 3F{Latn}=12 40{Latn}=12 41{Latn}=12 42{Latn}=12 43{Latn}=12 44{Latn}=12 45{Latn}=12 46{Latn}=12 47{Latn}=12 48{Latn}=12 49{Latn}=12 4A{Latn}=12 4B{Latn}=12 4C{Latn}=12 4D{Latn}=12 4E{Latn}=12 4F{Latn}=12 50{Latn}=12 51{Latn}=12 52{Latn}=12 53{Latn}=12 54{Latn}=12 55{Latn}=12 56{Latn}=12 57{Latn}=12 58{Latn}=12 59{Latn}=12 5A{Latn}=12 5B{Latn}=12 5C{Latn}=12 60{Cyrl}=2 63{Armn}=1 64{Hebr Phnx Samr}=1 65{Arab}=2 66{Syrc Mand Thaa Nkoo Tfng Ethi}=2 75{Tale Talu Lana Cham Bali Java Mong Olck Cher Osge Cans Ogam}=7 77{Vaii Bamu Bass Mend Adlm}=1 7A{Bopo Yiii Lisu Plrd Wara Pauc Hmng Lyci Cari Lydi Ital Goth}=22 ]
-[categories Lo 67{Deva}=10 79{Hira Hrkt Kana}=2 ]
-[categories Mc 67{Deva}=10 68{Beng}=10 69{Guru}=3 6A{Gujr}=6 6B{Orya}=10 6C{Taml}=14 6D{Telu}=4 6E{Knda}=7 6F{Mlym}=13 70{Sinh Mtei Sylo Saur Kthi Mahj Shrd Khoj Sind Mult Gran Newa Tirh Sidd Modi Takr Ahom Gonm Sund Brah Khar Bhks}=123 73{Tibt Zanb Soyo}=4 74{Marc Lepc Phag Limb Tglg Hano Buhd Tagb Bugi Batk Rjng Kali Mymr Cakm Khmr}=80 75{Tale Talu Lana Cham Bali Java Mong Olck Cher Osge Cans Ogam}=32 7A{Bopo Yiii Lisu Plrd Wara Pauc Hmng Lyci Cari Lydi Ital Goth}=46 ]
-[categories Mn 28{Latn}=49 29{Latn}=49 2A{Latn}=49 2B{Latn}=49 2C{Latn}=49 2D{Latn}=49 2E{Latn}=49 2F{Latn}=49 30{Latn}=49 31{Latn}=49 32{Latn}=49 33{Latn}=49 34{Latn}=49 35{Latn}=49 36{Latn}=49 37{Latn}=49 38{Latn}=49 39{Latn}=49 3A{Latn}=49 3B{Latn}=49 3C{Latn}=49 3D{Latn}=49 3E{Latn}=49 3F{Latn}=49 40{Latn}=49 41{Latn}=49 42{Latn}=49 43{Latn}=49 44{Latn}=49 45{Latn}=49 46{Latn}=49 47{Latn}=49 48{Latn}=49 49{Latn}=49 4A{Latn}=49 4B{Latn}=49 4C{Latn}=49 4D{Latn}=49 4E{Latn}=49 4F{Latn}=49 50{Latn}=49 51{Latn}=49 52{Latn}=49 53{Latn}=49 54{Latn}=49 55{Latn}=49 56{Latn}=49 57{Latn}=49 58{Latn}=49 59{Latn}=49 5A{Latn}=49 5B{Latn}=49 5C{Latn}=49 60{Cyrl}=42 61{Glag Perm}=43 64{Hebr Phnx Samr}=3 66{Syrc Mand Thaa Nkoo Tfng Ethi}=11 67{Deva}=15 68{Beng}=7 69{Guru}=9 6A{Gujr}=10 6B{Orya}=9 6C{Taml}=2 6D{Telu}=15 6E{Knda}=17 6F{Mlym}=9 70{Sinh Mtei Sylo Saur Kthi Mahj Shrd Khoj Sind Mult Gran Newa Tirh Sidd Modi Takr Ahom Gonm Sund Brah Khar Bhks}=150 71{Thai}=10 72{Laoo Tavt}=18 73{Tibt Zanb Soyo}=118 74{Marc Lepc Phag Limb Tglg Hano Buhd Tagb Bugi Batk Rjng Kali Mymr Cakm Khmr}=132 75{Tale Talu Lana Cham Bali Java Mong Olck Cher Osge Cans Ogam}=52 7A{Bopo Yiii Lisu Plrd Wara Pauc Hmng Lyci Cari Lydi Ital Goth}=4 ]
-[categories Nd 0E{DIGIT}=1 0F{DIGIT}=1 12{DIGIT}=66 14{DIGIT}=120 16{DIGIT}=95 18{DIGIT}=82 1A{DIGIT}=78 1C{DIGIT}=70 1E{DIGIT}=67 20{DIGIT}=68 22{DIGIT}=67 24{DIGIT}=67 ]
-[categories Nl 10{DIGIT}=18 11{DIGIT}=48 12{DIGIT}=1 14{DIGIT}=12 16{DIGIT}=16 18{DIGIT}=16 1A{DIGIT}=17 1C{DIGIT}=18 1E{DIGIT}=10 20{DIGIT}=10 22{DIGIT}=9 24{DIGIT}=11 76{Runr Hung Orkh}=3 77{Vaii Bamu Bass Mend Adlm}=10 7A{Bopo Yiii Lisu Plrd Wara Pauc Hmng Lyci Cari Lydi Ital Goth}=2 ]
-[categories No 10{DIGIT}=113 11{DIGIT}=174 12{DIGIT}=7 14{DIGIT}=47 16{DIGIT}=28 18{DIGIT}=27 1A{DIGIT}=24 1C{DIGIT}=23 1E{DIGIT}=17 20{DIGIT}=17 22{DIGIT}=17 24{DIGIT}=16 ]
+[categories Lm 0C{SYMBOL}=24 0D{CURRENCY}=30 29{Latn}=12 2A{Latn}=12 2B{Latn}=12 2C{Latn}=12 2D{Latn}=12 2E{Latn}=12 2F{Latn}=12 30{Latn}=12 31{Latn}=12 32{Latn}=12 33{Latn}=12 34{Latn}=12 35{Latn}=12 36{Latn}=12 37{Latn}=12 38{Latn}=12 39{Latn}=12 3A{Latn}=12 3B{Latn}=12 3C{Latn}=12 3D{Latn}=12 3E{Latn}=12 3F{Latn}=12 40{Latn}=12 41{Latn}=12 42{Latn}=12 43{Latn}=12 44{Latn}=12 45{Latn}=12 46{Latn}=12 47{Latn}=12 48{Latn}=12 49{Latn}=12 4A{Latn}=12 4B{Latn}=12 4C{Latn}=12 4D{Latn}=12 4E{Latn}=12 4F{Latn}=12 50{Latn}=12 51{Latn}=12 52{Latn}=12 53{Latn}=12 54{Latn}=12 55{Latn}=12 56{Latn}=12 57{Latn}=12 58{Latn}=12 59{Latn}=12 5A{Latn}=12 5B{Latn}=12 5C{Latn}=12 5D{Latn}=12 61{Cyrl}=2 64{Armn}=1 65{Hebr Phnx Samr}=1 66{Arab}=2 67{Syrc Mand Thaa Nkoo Tfng Ethi}=2 76{Tale Talu Lana Cham Bali Java Mong Olck Cher Osge Cans Ogam}=7 78{Vaii Bamu Bass Mend Medf Adlm}=1 7B{Bopo Yiii Lisu Plrd Wara Pauc Hmng Lyci Cari Lydi Ital Goth}=22 ]
+[categories Lo 68{Deva}=10 7A{Hira Hrkt Kana}=2 ]
+[categories Mc 68{Deva}=10 69{Beng}=10 6A{Guru}=3 6B{Gujr}=6 6C{Orya}=10 6D{Taml}=14 6E{Telu}=4 6F{Knda}=7 70{Mlym}=13 71{Sinh Mtei Sylo Saur Kthi Mahj Shrd Khoj Sind Mult Gran Newa Tirh Sidd Modi Takr Dogr Ahom Gonm Gong Sund Brah Khar Bhks}=133 74{Tibt Zanb Soyo}=2 75{Marc Lepc Phag Limb Tglg Hano Buhd Tagb Bugi Maka Batk Rjng Kali Mymr Rohg Cakm Khmr}=84 76{Tale Talu Lana Cham Bali Java Mong Olck Cher Osge Cans Ogam}=32 7B{Bopo Yiii Lisu Plrd Wara Pauc Hmng Lyci Cari Lydi Ital Goth}=46 ]
+[categories Mn 29{Latn}=49 2A{Latn}=49 2B{Latn}=49 2C{Latn}=49 2D{Latn}=49 2E{Latn}=49 2F{Latn}=49 30{Latn}=49 31{Latn}=49 32{Latn}=49 33{Latn}=49 34{Latn}=49 35{Latn}=49 36{Latn}=49 37{Latn}=49 38{Latn}=49 39{Latn}=49 3A{Latn}=49 3B{Latn}=49 3C{Latn}=49 3D{Latn}=49 3E{Latn}=49 3F{Latn}=49 40{Latn}=49 41{Latn}=49 42{Latn}=49 43{Latn}=49 44{Latn}=49 45{Latn}=49 46{Latn}=49 47{Latn}=49 48{Latn}=49 49{Latn}=49 4A{Latn}=49 4B{Latn}=49 4C{Latn}=49 4D{Latn}=49 4E{Latn}=49 4F{Latn}=49 50{Latn}=49 51{Latn}=49 52{Latn}=49 53{Latn}=49 54{Latn}=49 55{Latn}=49 56{Latn}=49 57{Latn}=49 58{Latn}=49 59{Latn}=49 5A{Latn}=49 5B{Latn}=49 5C{Latn}=49 5D{Latn}=49 61{Cyrl}=42 62{Glag Perm}=43 65{Hebr Phnx Samr}=3 67{Syrc Mand Thaa Nkoo Tfng Ethi}=11 68{Deva}=16 69{Beng}=7 6A{Guru}=9 6B{Gujr}=10 6C{Orya}=9 6D{Taml}=2 6E{Telu}=15 6F{Knda}=17 70{Mlym}=9 71{Sinh Mtei Sylo Saur Kthi Mahj Shrd Khoj Sind Mult Gran Newa Tirh Sidd Modi Takr Dogr Ahom Gonm Gong Sund Brah Khar Bhks}=162 72{Thai}=10 73{Laoo Tavt}=18 74{Tibt Zanb Soyo}=120 75{Marc Lepc Phag Limb Tglg Hano Buhd Tagb Bugi Maka Batk Rjng Kali Mymr Rohg Cakm Khmr}=134 76{Tale Talu Lana Cham Bali Java Mong Olck Cher Osge Cans Ogam}=52 7B{Bopo Yiii Lisu Plrd Wara Pauc Hmng Lyci Cari Lydi Ital Goth}=4 ]
+[categories Nd 0E{DIGIT}=1 0F{DIGIT}=1 13{DIGIT}=68 15{DIGIT}=122 17{DIGIT}=97 19{DIGIT}=84 1B{DIGIT}=80 1D{DIGIT}=72 1F{DIGIT}=69 21{DIGIT}=70 23{DIGIT}=69 25{DIGIT}=69 ]
+[categories Nl 10{DIGIT}=18 11{DIGIT}=48 13{DIGIT}=1 15{DIGIT}=12 17{DIGIT}=16 19{DIGIT}=16 1B{DIGIT}=17 1D{DIGIT}=18 1F{DIGIT}=10 21{DIGIT}=10 23{DIGIT}=9 25{DIGIT}=11 77{Runr Hung Orkh}=3 78{Vaii Bamu Bass Mend Medf Adlm}=10 7B{Bopo Yiii Lisu Plrd Wara Pauc Hmng Lyci Cari Lydi Ital Goth}=2 ]
+[categories No 10{DIGIT}=113 11{DIGIT}=245 12{DIGIT}=4 13{DIGIT}=9 15{DIGIT}=57 17{DIGIT}=36 19{DIGIT}=34 1B{DIGIT}=30 1D{DIGIT}=30 1F{DIGIT}=21 21{DIGIT}=21 23{DIGIT}=21 25{DIGIT}=20 ]
[categories Pc 05{PUNCTUATION}=7 0A{PUNCTUATION}=3 ]
[categories Pd 05{PUNCTUATION}=22 0A{PUNCTUATION}=1 0B{PUNCTUATION}=1 ]
[categories Pe 09{PUNCTUATION}=42 0A{PUNCTUATION}=31 ]
[categories Pf 09{PUNCTUATION}=4 0A{PUNCTUATION}=6 ]
[categories Pi 05{PUNCTUATION}=1 09{PUNCTUATION}=6 0A{PUNCTUATION}=6 ]
-[categories Po 05{PUNCTUATION}=6 06{PUNCTUATION}=4 07{PUNCTUATION}=106 08{PUNCTUATION}=8 09{PUNCTUATION}=148 0A{PUNCTUATION}=88 0B{PUNCTUATION}=199 ]
-[categories Ps 09{PUNCTUATION}=184 0A{PUNCTUATION}=40 ]
-[categories Sc 0D{CURRENCY}=53 ]
+[categories Po 05{PUNCTUATION}=6 06{PUNCTUATION}=4 07{PUNCTUATION}=109 08{PUNCTUATION}=8 09{PUNCTUATION}=156 0A{PUNCTUATION}=87 0B{PUNCTUATION}=207 ]
+[categories Ps 09{PUNCTUATION}=183 0A{PUNCTUATION}=41 ]
+[categories Sc 0D{CURRENCY}=56 ]
[categories Sk 0C{SYMBOL}=87 0D{CURRENCY}=5 ]
[categories Sm 0C{SYMBOL}=947 ]
-[categories So 0C{SYMBOL}=2772 0D{CURRENCY}=1990 14{DIGIT}=1 16{DIGIT}=3 18{DIGIT}=1 1A{DIGIT}=1 1C{DIGIT}=1 1E{DIGIT}=1 20{DIGIT}=1 22{DIGIT}=1 28{Latn}=77 29{Latn}=77 2A{Latn}=77 2B{Latn}=77 2C{Latn}=77 2D{Latn}=77 2E{Latn}=77 2F{Latn}=77 30{Latn}=77 31{Latn}=77 32{Latn}=77 33{Latn}=77 34{Latn}=77 35{Latn}=77 36{Latn}=77 37{Latn}=77 38{Latn}=77 39{Latn}=77 3A{Latn}=77 3B{Latn}=77 3C{Latn}=77 3D{Latn}=77 3E{Latn}=77 3F{Latn}=77 40{Latn}=77 41{Latn}=77 42{Latn}=77 43{Latn}=77 44{Latn}=77 45{Latn}=77 46{Latn}=77 47{Latn}=77 48{Latn}=77 49{Latn}=77 4A{Latn}=77 4B{Latn}=77 4C{Latn}=77 4D{Latn}=77 4E{Latn}=77 4F{Latn}=77 50{Latn}=77 51{Latn}=77 52{Latn}=77 53{Latn}=77 54{Latn}=77 55{Latn}=77 56{Latn}=77 57{Latn}=77 58{Latn}=77 59{Latn}=77 5A{Latn}=77 5B{Latn}=77 5C{Latn}=77 65{Arab}=2 75{Tale Talu Lana Cham Bali Java Mong Olck Cher Osge Cans Ogam}=2 7B{Dsrt Shaw Dupl Osma Elba Aghb Sora Mroo Linb Lina Cprt Sarb Narb Avst Palm Nbat Hatr Armi Prti Phli Phlp Mani Ugar Xpeo Xsux Egyp}=1 E5{TRAILING}=1 E6{TRAILING}=1 E7{TRAILING}=1 E8{TRAILING}=1 E9{TRAILING}=1 EA{TRAILING}=1 EB{TRAILING}=1 EC{TRAILING}=1 ED{TRAILING}=1 EE{TRAILING}=1 EF{TRAILING}=1 ]
+[categories So 0C{SYMBOL}=2700 0D{CURRENCY}=2191 15{DIGIT}=1 17{DIGIT}=3 19{DIGIT}=1 1B{DIGIT}=1 1D{DIGIT}=1 1F{DIGIT}=1 21{DIGIT}=1 23{DIGIT}=1 29{Latn}=77 2A{Latn}=77 2B{Latn}=77 2C{Latn}=77 2D{Latn}=77 2E{Latn}=77 2F{Latn}=77 30{Latn}=77 31{Latn}=77 32{Latn}=77 33{Latn}=77 34{Latn}=77 35{Latn}=77 36{Latn}=77 37{Latn}=77 38{Latn}=77 39{Latn}=77 3A{Latn}=77 3B{Latn}=77 3C{Latn}=77 3D{Latn}=77 3E{Latn}=77 3F{Latn}=77 40{Latn}=77 41{Latn}=77 42{Latn}=77 43{Latn}=77 44{Latn}=77 45{Latn}=77 46{Latn}=77 47{Latn}=77 48{Latn}=77 49{Latn}=77 4A{Latn}=77 4B{Latn}=77 4C{Latn}=77 4D{Latn}=77 4E{Latn}=77 4F{Latn}=77 50{Latn}=77 51{Latn}=77 52{Latn}=77 53{Latn}=77 54{Latn}=77 55{Latn}=77 56{Latn}=77 57{Latn}=77 58{Latn}=77 59{Latn}=77 5A{Latn}=77 5B{Latn}=77 5C{Latn}=77 5D{Latn}=77 66{Arab}=2 76{Tale Talu Lana Cham Bali Java Mong Olck Cher Osge Cans Ogam}=2 7C{Dsrt Shaw Dupl Osma Elba Aghb Sora Mroo Linb Lina Cprt Sarb Narb Avst Palm Nbat Hatr Armi Prti Phli Phlp Mani Sogo Sogd Ugar Xpeo Xsux}=1 E5{TRAILING}=1 E6{TRAILING}=1 E7{TRAILING}=1 E8{TRAILING}=1 E9{TRAILING}=1 EA{TRAILING}=1 EB{TRAILING}=1 EC{TRAILING}=1 ED{TRAILING}=1 EE{TRAILING}=1 EF{TRAILING}=1 ]
[categories Zl 03{SPACE}=1 ]
[categories Zp 03{SPACE}=1 ]
-[categories Zs 03{SPACE}=1 04{SPACE}=17 05{PUNCTUATION}=6 0C{SYMBOL}=29 5F{Grek Copt}=1 ]
+[categories Zs 03{SPACE}=1 04{SPACE}=17 05{PUNCTUATION}=6 0C{SYMBOL}=29 60{Grek Copt}=1 ]
diff --git a/Build/source/libs/icu/icu-src/source/data/unidata/NormalizationCorrections.txt b/Build/source/libs/icu/icu-src/source/data/unidata/NormalizationCorrections.txt
index f7fc35e52c2..8b3cd2b13f8 100644
--- a/Build/source/libs/icu/icu-src/source/data/unidata/NormalizationCorrections.txt
+++ b/Build/source/libs/icu/icu-src/source/data/unidata/NormalizationCorrections.txt
@@ -1,5 +1,5 @@
-# NormalizationCorrections-10.0.0.txt
-# Date: 2017-04-13, 01:00:00 GMT [KW, LI]
+# NormalizationCorrections-11.0.0.txt
+# Date: 2017-12-06, 01:00:00 GMT [KW, LI]
# © 2017 Unicode®, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
#
diff --git a/Build/source/libs/icu/icu-src/source/data/unidata/NormalizationTest.txt b/Build/source/libs/icu/icu-src/source/data/unidata/NormalizationTest.txt
index 08b1b337654..15270455eb4 100644
--- a/Build/source/libs/icu/icu-src/source/data/unidata/NormalizationTest.txt
+++ b/Build/source/libs/icu/icu-src/source/data/unidata/NormalizationTest.txt
@@ -1,6 +1,6 @@
-# NormalizationTest-10.0.0.txt
-# Date: 2017-03-08, 08:41:55 GMT
-# © 2017 Unicode®, Inc.
+# NormalizationTest-11.0.0.txt
+# Date: 2018-02-19, 18:33:08 GMT
+# © 2018 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# For terms of use, see http://www.unicode.org/terms_of_use.html
#
@@ -17479,6 +17479,8 @@ FFEE;FFEE;FFEE;25CB;25CB;
0061 07F2 059A 0316 302A 0062;0061 302A 07F2 0316 059A 0062;0061 302A 07F2 0316 059A 0062;0061 302A 07F2 0316 059A 0062;0061 302A 07F2 0316 059A 0062;
0061 0315 0300 05AE 07F3 0062;00E0 05AE 07F3 0315 0062;0061 05AE 0300 07F3 0315 0062;00E0 05AE 07F3 0315 0062;0061 05AE 0300 07F3 0315 0062;
0061 07F3 0315 0300 05AE 0062;0061 05AE 07F3 0300 0315 0062;0061 05AE 07F3 0300 0315 0062;0061 05AE 07F3 0300 0315 0062;0061 05AE 07F3 0300 0315 0062;
+0061 059A 0316 302A 07FD 0062;0061 302A 0316 07FD 059A 0062;0061 302A 0316 07FD 059A 0062;0061 302A 0316 07FD 059A 0062;0061 302A 0316 07FD 059A 0062;
+0061 07FD 059A 0316 302A 0062;0061 302A 07FD 0316 059A 0062;0061 302A 07FD 0316 059A 0062;0061 302A 07FD 0316 059A 0062;0061 302A 07FD 0316 059A 0062;
0061 0315 0300 05AE 0816 0062;00E0 05AE 0816 0315 0062;0061 05AE 0300 0816 0315 0062;00E0 05AE 0816 0315 0062;0061 05AE 0300 0816 0315 0062;
0061 0816 0315 0300 05AE 0062;0061 05AE 0816 0300 0315 0062;0061 05AE 0816 0300 0315 0062;0061 05AE 0816 0300 0315 0062;0061 05AE 0816 0300 0315 0062;
0061 0315 0300 05AE 0817 0062;00E0 05AE 0817 0315 0062;0061 05AE 0300 0817 0315 0062;00E0 05AE 0817 0315 0062;0061 05AE 0300 0817 0315 0062;
@@ -17527,6 +17529,8 @@ FFEE;FFEE;FFEE;25CB;25CB;
0061 085A 059A 0316 302A 0062;0061 302A 085A 0316 059A 0062;0061 302A 085A 0316 059A 0062;0061 302A 085A 0316 059A 0062;0061 302A 085A 0316 059A 0062;
0061 059A 0316 302A 085B 0062;0061 302A 0316 085B 059A 0062;0061 302A 0316 085B 059A 0062;0061 302A 0316 085B 059A 0062;0061 302A 0316 085B 059A 0062;
0061 085B 059A 0316 302A 0062;0061 302A 085B 0316 059A 0062;0061 302A 085B 0316 059A 0062;0061 302A 085B 0316 059A 0062;0061 302A 085B 0316 059A 0062;
+0061 059A 0316 302A 08D3 0062;0061 302A 0316 08D3 059A 0062;0061 302A 0316 08D3 059A 0062;0061 302A 0316 08D3 059A 0062;0061 302A 0316 08D3 059A 0062;
+0061 08D3 059A 0316 302A 0062;0061 302A 08D3 0316 059A 0062;0061 302A 08D3 0316 059A 0062;0061 302A 08D3 0316 059A 0062;0061 302A 08D3 0316 059A 0062;
0061 0315 0300 05AE 08D4 0062;00E0 05AE 08D4 0315 0062;0061 05AE 0300 08D4 0315 0062;00E0 05AE 08D4 0315 0062;0061 05AE 0300 08D4 0315 0062;
0061 08D4 0315 0300 05AE 0062;0061 05AE 08D4 0300 0315 0062;0061 05AE 08D4 0300 0315 0062;0061 05AE 08D4 0300 0315 0062;0061 05AE 08D4 0300 0315 0062;
0061 0315 0300 05AE 08D5 0062;00E0 05AE 08D5 0315 0062;0061 05AE 0300 08D5 0315 0062;00E0 05AE 08D5 0315 0062;0061 05AE 0300 08D5 0315 0062;
@@ -17629,6 +17633,8 @@ FFEE;FFEE;FFEE;25CB;25CB;
0061 09BC 3099 093C 0334 0062;0061 0334 09BC 093C 3099 0062;0061 0334 09BC 093C 3099 0062;0061 0334 09BC 093C 3099 0062;0061 0334 09BC 093C 3099 0062;
0061 05B0 094D 3099 09CD 0062;0061 3099 094D 09CD 05B0 0062;0061 3099 094D 09CD 05B0 0062;0061 3099 094D 09CD 05B0 0062;0061 3099 094D 09CD 05B0 0062;
0061 09CD 05B0 094D 3099 0062;0061 3099 09CD 094D 05B0 0062;0061 3099 09CD 094D 05B0 0062;0061 3099 09CD 094D 05B0 0062;0061 3099 09CD 094D 05B0 0062;
+0061 0315 0300 05AE 09FE 0062;00E0 05AE 09FE 0315 0062;0061 05AE 0300 09FE 0315 0062;00E0 05AE 09FE 0315 0062;0061 05AE 0300 09FE 0315 0062;
+0061 09FE 0315 0300 05AE 0062;0061 05AE 09FE 0300 0315 0062;0061 05AE 09FE 0300 0315 0062;0061 05AE 09FE 0300 0315 0062;0061 05AE 09FE 0300 0315 0062;
0061 3099 093C 0334 0A3C 0062;0061 0334 093C 0A3C 3099 0062;0061 0334 093C 0A3C 3099 0062;0061 0334 093C 0A3C 3099 0062;0061 0334 093C 0A3C 3099 0062;
0061 0A3C 3099 093C 0334 0062;0061 0334 0A3C 093C 3099 0062;0061 0334 0A3C 093C 3099 0062;0061 0334 0A3C 093C 3099 0062;0061 0334 0A3C 093C 3099 0062;
0061 05B0 094D 3099 0A4D 0062;0061 3099 094D 0A4D 05B0 0062;0061 3099 094D 0A4D 05B0 0062;0061 3099 094D 0A4D 05B0 0062;0061 3099 094D 0A4D 05B0 0062;
@@ -18329,6 +18335,36 @@ FFEE;FFEE;FFEE;25CB;25CB;
0061 10AE5 0315 0300 05AE 0062;0061 05AE 10AE5 0300 0315 0062;0061 05AE 10AE5 0300 0315 0062;0061 05AE 10AE5 0300 0315 0062;0061 05AE 10AE5 0300 0315 0062;
0061 059A 0316 302A 10AE6 0062;0061 302A 0316 10AE6 059A 0062;0061 302A 0316 10AE6 059A 0062;0061 302A 0316 10AE6 059A 0062;0061 302A 0316 10AE6 059A 0062;
0061 10AE6 059A 0316 302A 0062;0061 302A 10AE6 0316 059A 0062;0061 302A 10AE6 0316 059A 0062;0061 302A 10AE6 0316 059A 0062;0061 302A 10AE6 0316 059A 0062;
+0061 0315 0300 05AE 10D24 0062;00E0 05AE 10D24 0315 0062;0061 05AE 0300 10D24 0315 0062;00E0 05AE 10D24 0315 0062;0061 05AE 0300 10D24 0315 0062;
+0061 10D24 0315 0300 05AE 0062;0061 05AE 10D24 0300 0315 0062;0061 05AE 10D24 0300 0315 0062;0061 05AE 10D24 0300 0315 0062;0061 05AE 10D24 0300 0315 0062;
+0061 0315 0300 05AE 10D25 0062;00E0 05AE 10D25 0315 0062;0061 05AE 0300 10D25 0315 0062;00E0 05AE 10D25 0315 0062;0061 05AE 0300 10D25 0315 0062;
+0061 10D25 0315 0300 05AE 0062;0061 05AE 10D25 0300 0315 0062;0061 05AE 10D25 0300 0315 0062;0061 05AE 10D25 0300 0315 0062;0061 05AE 10D25 0300 0315 0062;
+0061 0315 0300 05AE 10D26 0062;00E0 05AE 10D26 0315 0062;0061 05AE 0300 10D26 0315 0062;00E0 05AE 10D26 0315 0062;0061 05AE 0300 10D26 0315 0062;
+0061 10D26 0315 0300 05AE 0062;0061 05AE 10D26 0300 0315 0062;0061 05AE 10D26 0300 0315 0062;0061 05AE 10D26 0300 0315 0062;0061 05AE 10D26 0300 0315 0062;
+0061 0315 0300 05AE 10D27 0062;00E0 05AE 10D27 0315 0062;0061 05AE 0300 10D27 0315 0062;00E0 05AE 10D27 0315 0062;0061 05AE 0300 10D27 0315 0062;
+0061 10D27 0315 0300 05AE 0062;0061 05AE 10D27 0300 0315 0062;0061 05AE 10D27 0300 0315 0062;0061 05AE 10D27 0300 0315 0062;0061 05AE 10D27 0300 0315 0062;
+0061 059A 0316 302A 10F46 0062;0061 302A 0316 10F46 059A 0062;0061 302A 0316 10F46 059A 0062;0061 302A 0316 10F46 059A 0062;0061 302A 0316 10F46 059A 0062;
+0061 10F46 059A 0316 302A 0062;0061 302A 10F46 0316 059A 0062;0061 302A 10F46 0316 059A 0062;0061 302A 10F46 0316 059A 0062;0061 302A 10F46 0316 059A 0062;
+0061 059A 0316 302A 10F47 0062;0061 302A 0316 10F47 059A 0062;0061 302A 0316 10F47 059A 0062;0061 302A 0316 10F47 059A 0062;0061 302A 0316 10F47 059A 0062;
+0061 10F47 059A 0316 302A 0062;0061 302A 10F47 0316 059A 0062;0061 302A 10F47 0316 059A 0062;0061 302A 10F47 0316 059A 0062;0061 302A 10F47 0316 059A 0062;
+0061 0315 0300 05AE 10F48 0062;00E0 05AE 10F48 0315 0062;0061 05AE 0300 10F48 0315 0062;00E0 05AE 10F48 0315 0062;0061 05AE 0300 10F48 0315 0062;
+0061 10F48 0315 0300 05AE 0062;0061 05AE 10F48 0300 0315 0062;0061 05AE 10F48 0300 0315 0062;0061 05AE 10F48 0300 0315 0062;0061 05AE 10F48 0300 0315 0062;
+0061 0315 0300 05AE 10F49 0062;00E0 05AE 10F49 0315 0062;0061 05AE 0300 10F49 0315 0062;00E0 05AE 10F49 0315 0062;0061 05AE 0300 10F49 0315 0062;
+0061 10F49 0315 0300 05AE 0062;0061 05AE 10F49 0300 0315 0062;0061 05AE 10F49 0300 0315 0062;0061 05AE 10F49 0300 0315 0062;0061 05AE 10F49 0300 0315 0062;
+0061 0315 0300 05AE 10F4A 0062;00E0 05AE 10F4A 0315 0062;0061 05AE 0300 10F4A 0315 0062;00E0 05AE 10F4A 0315 0062;0061 05AE 0300 10F4A 0315 0062;
+0061 10F4A 0315 0300 05AE 0062;0061 05AE 10F4A 0300 0315 0062;0061 05AE 10F4A 0300 0315 0062;0061 05AE 10F4A 0300 0315 0062;0061 05AE 10F4A 0300 0315 0062;
+0061 059A 0316 302A 10F4B 0062;0061 302A 0316 10F4B 059A 0062;0061 302A 0316 10F4B 059A 0062;0061 302A 0316 10F4B 059A 0062;0061 302A 0316 10F4B 059A 0062;
+0061 10F4B 059A 0316 302A 0062;0061 302A 10F4B 0316 059A 0062;0061 302A 10F4B 0316 059A 0062;0061 302A 10F4B 0316 059A 0062;0061 302A 10F4B 0316 059A 0062;
+0061 0315 0300 05AE 10F4C 0062;00E0 05AE 10F4C 0315 0062;0061 05AE 0300 10F4C 0315 0062;00E0 05AE 10F4C 0315 0062;0061 05AE 0300 10F4C 0315 0062;
+0061 10F4C 0315 0300 05AE 0062;0061 05AE 10F4C 0300 0315 0062;0061 05AE 10F4C 0300 0315 0062;0061 05AE 10F4C 0300 0315 0062;0061 05AE 10F4C 0300 0315 0062;
+0061 059A 0316 302A 10F4D 0062;0061 302A 0316 10F4D 059A 0062;0061 302A 0316 10F4D 059A 0062;0061 302A 0316 10F4D 059A 0062;0061 302A 0316 10F4D 059A 0062;
+0061 10F4D 059A 0316 302A 0062;0061 302A 10F4D 0316 059A 0062;0061 302A 10F4D 0316 059A 0062;0061 302A 10F4D 0316 059A 0062;0061 302A 10F4D 0316 059A 0062;
+0061 059A 0316 302A 10F4E 0062;0061 302A 0316 10F4E 059A 0062;0061 302A 0316 10F4E 059A 0062;0061 302A 0316 10F4E 059A 0062;0061 302A 0316 10F4E 059A 0062;
+0061 10F4E 059A 0316 302A 0062;0061 302A 10F4E 0316 059A 0062;0061 302A 10F4E 0316 059A 0062;0061 302A 10F4E 0316 059A 0062;0061 302A 10F4E 0316 059A 0062;
+0061 059A 0316 302A 10F4F 0062;0061 302A 0316 10F4F 059A 0062;0061 302A 0316 10F4F 059A 0062;0061 302A 0316 10F4F 059A 0062;0061 302A 0316 10F4F 059A 0062;
+0061 10F4F 059A 0316 302A 0062;0061 302A 10F4F 0316 059A 0062;0061 302A 10F4F 0316 059A 0062;0061 302A 10F4F 0316 059A 0062;0061 302A 10F4F 0316 059A 0062;
+0061 059A 0316 302A 10F50 0062;0061 302A 0316 10F50 059A 0062;0061 302A 0316 10F50 059A 0062;0061 302A 0316 10F50 059A 0062;0061 302A 0316 10F50 059A 0062;
+0061 10F50 059A 0316 302A 0062;0061 302A 10F50 0316 059A 0062;0061 302A 10F50 0316 059A 0062;0061 302A 10F50 0316 059A 0062;0061 302A 10F50 0316 059A 0062;
0061 05B0 094D 3099 11046 0062;0061 3099 094D 11046 05B0 0062;0061 3099 094D 11046 05B0 0062;0061 3099 094D 11046 05B0 0062;0061 3099 094D 11046 05B0 0062;
0061 11046 05B0 094D 3099 0062;0061 3099 11046 094D 05B0 0062;0061 3099 11046 094D 05B0 0062;0061 3099 11046 094D 05B0 0062;0061 3099 11046 094D 05B0 0062;
0061 05B0 094D 3099 1107F 0062;0061 3099 094D 1107F 05B0 0062;0061 3099 094D 1107F 05B0 0062;0061 3099 094D 1107F 05B0 0062;0061 3099 094D 1107F 05B0 0062;
@@ -18361,6 +18397,8 @@ FFEE;FFEE;FFEE;25CB;25CB;
0061 112E9 3099 093C 0334 0062;0061 0334 112E9 093C 3099 0062;0061 0334 112E9 093C 3099 0062;0061 0334 112E9 093C 3099 0062;0061 0334 112E9 093C 3099 0062;
0061 05B0 094D 3099 112EA 0062;0061 3099 094D 112EA 05B0 0062;0061 3099 094D 112EA 05B0 0062;0061 3099 094D 112EA 05B0 0062;0061 3099 094D 112EA 05B0 0062;
0061 112EA 05B0 094D 3099 0062;0061 3099 112EA 094D 05B0 0062;0061 3099 112EA 094D 05B0 0062;0061 3099 112EA 094D 05B0 0062;0061 3099 112EA 094D 05B0 0062;
+0061 3099 093C 0334 1133B 0062;0061 0334 093C 1133B 3099 0062;0061 0334 093C 1133B 3099 0062;0061 0334 093C 1133B 3099 0062;0061 0334 093C 1133B 3099 0062;
+0061 1133B 3099 093C 0334 0062;0061 0334 1133B 093C 3099 0062;0061 0334 1133B 093C 3099 0062;0061 0334 1133B 093C 3099 0062;0061 0334 1133B 093C 3099 0062;
0061 3099 093C 0334 1133C 0062;0061 0334 093C 1133C 3099 0062;0061 0334 093C 1133C 3099 0062;0061 0334 093C 1133C 3099 0062;0061 0334 093C 1133C 3099 0062;
0061 1133C 3099 093C 0334 0062;0061 0334 1133C 093C 3099 0062;0061 0334 1133C 093C 3099 0062;0061 0334 1133C 093C 3099 0062;0061 0334 1133C 093C 3099 0062;
0061 05B0 094D 3099 1134D 0062;0061 3099 094D 1134D 05B0 0062;0061 3099 094D 1134D 05B0 0062;0061 3099 094D 1134D 05B0 0062;0061 3099 094D 1134D 05B0 0062;
@@ -18393,6 +18431,8 @@ FFEE;FFEE;FFEE;25CB;25CB;
0061 11442 05B0 094D 3099 0062;0061 3099 11442 094D 05B0 0062;0061 3099 11442 094D 05B0 0062;0061 3099 11442 094D 05B0 0062;0061 3099 11442 094D 05B0 0062;
0061 3099 093C 0334 11446 0062;0061 0334 093C 11446 3099 0062;0061 0334 093C 11446 3099 0062;0061 0334 093C 11446 3099 0062;0061 0334 093C 11446 3099 0062;
0061 11446 3099 093C 0334 0062;0061 0334 11446 093C 3099 0062;0061 0334 11446 093C 3099 0062;0061 0334 11446 093C 3099 0062;0061 0334 11446 093C 3099 0062;
+0061 0315 0300 05AE 1145E 0062;00E0 05AE 1145E 0315 0062;0061 05AE 0300 1145E 0315 0062;00E0 05AE 1145E 0315 0062;0061 05AE 0300 1145E 0315 0062;
+0061 1145E 0315 0300 05AE 0062;0061 05AE 1145E 0300 0315 0062;0061 05AE 1145E 0300 0315 0062;0061 05AE 1145E 0300 0315 0062;0061 05AE 1145E 0300 0315 0062;
0061 05B0 094D 3099 114C2 0062;0061 3099 094D 114C2 05B0 0062;0061 3099 094D 114C2 05B0 0062;0061 3099 094D 114C2 05B0 0062;0061 3099 094D 114C2 05B0 0062;
0061 114C2 05B0 094D 3099 0062;0061 3099 114C2 094D 05B0 0062;0061 3099 114C2 094D 05B0 0062;0061 3099 114C2 094D 05B0 0062;0061 3099 114C2 094D 05B0 0062;
0061 3099 093C 0334 114C3 0062;0061 0334 093C 114C3 3099 0062;0061 0334 093C 114C3 3099 0062;0061 0334 093C 114C3 3099 0062;0061 0334 093C 114C3 3099 0062;
@@ -18409,6 +18449,10 @@ FFEE;FFEE;FFEE;25CB;25CB;
0061 116B7 3099 093C 0334 0062;0061 0334 116B7 093C 3099 0062;0061 0334 116B7 093C 3099 0062;0061 0334 116B7 093C 3099 0062;0061 0334 116B7 093C 3099 0062;
0061 05B0 094D 3099 1172B 0062;0061 3099 094D 1172B 05B0 0062;0061 3099 094D 1172B 05B0 0062;0061 3099 094D 1172B 05B0 0062;0061 3099 094D 1172B 05B0 0062;
0061 1172B 05B0 094D 3099 0062;0061 3099 1172B 094D 05B0 0062;0061 3099 1172B 094D 05B0 0062;0061 3099 1172B 094D 05B0 0062;0061 3099 1172B 094D 05B0 0062;
+0061 05B0 094D 3099 11839 0062;0061 3099 094D 11839 05B0 0062;0061 3099 094D 11839 05B0 0062;0061 3099 094D 11839 05B0 0062;0061 3099 094D 11839 05B0 0062;
+0061 11839 05B0 094D 3099 0062;0061 3099 11839 094D 05B0 0062;0061 3099 11839 094D 05B0 0062;0061 3099 11839 094D 05B0 0062;0061 3099 11839 094D 05B0 0062;
+0061 3099 093C 0334 1183A 0062;0061 0334 093C 1183A 3099 0062;0061 0334 093C 1183A 3099 0062;0061 0334 093C 1183A 3099 0062;0061 0334 093C 1183A 3099 0062;
+0061 1183A 3099 093C 0334 0062;0061 0334 1183A 093C 3099 0062;0061 0334 1183A 093C 3099 0062;0061 0334 1183A 093C 3099 0062;0061 0334 1183A 093C 3099 0062;
0061 05B0 094D 3099 11A34 0062;0061 3099 094D 11A34 05B0 0062;0061 3099 094D 11A34 05B0 0062;0061 3099 094D 11A34 05B0 0062;0061 3099 094D 11A34 05B0 0062;
0061 11A34 05B0 094D 3099 0062;0061 3099 11A34 094D 05B0 0062;0061 3099 11A34 094D 05B0 0062;0061 3099 11A34 094D 05B0 0062;0061 3099 11A34 094D 05B0 0062;
0061 05B0 094D 3099 11A47 0062;0061 3099 094D 11A47 05B0 0062;0061 3099 094D 11A47 05B0 0062;0061 3099 094D 11A47 05B0 0062;0061 3099 094D 11A47 05B0 0062;
@@ -18423,6 +18467,8 @@ FFEE;FFEE;FFEE;25CB;25CB;
0061 11D44 05B0 094D 3099 0062;0061 3099 11D44 094D 05B0 0062;0061 3099 11D44 094D 05B0 0062;0061 3099 11D44 094D 05B0 0062;0061 3099 11D44 094D 05B0 0062;
0061 05B0 094D 3099 11D45 0062;0061 3099 094D 11D45 05B0 0062;0061 3099 094D 11D45 05B0 0062;0061 3099 094D 11D45 05B0 0062;0061 3099 094D 11D45 05B0 0062;
0061 11D45 05B0 094D 3099 0062;0061 3099 11D45 094D 05B0 0062;0061 3099 11D45 094D 05B0 0062;0061 3099 11D45 094D 05B0 0062;0061 3099 11D45 094D 05B0 0062;
+0061 05B0 094D 3099 11D97 0062;0061 3099 094D 11D97 05B0 0062;0061 3099 094D 11D97 05B0 0062;0061 3099 094D 11D97 05B0 0062;0061 3099 094D 11D97 05B0 0062;
+0061 11D97 05B0 094D 3099 0062;0061 3099 11D97 094D 05B0 0062;0061 3099 11D97 094D 05B0 0062;0061 3099 11D97 094D 05B0 0062;0061 3099 11D97 094D 05B0 0062;
0061 093C 0334 16AF0 0062;0061 0334 16AF0 093C 0062;0061 0334 16AF0 093C 0062;0061 0334 16AF0 093C 0062;0061 0334 16AF0 093C 0062;
0061 16AF0 093C 0334 0062;0061 16AF0 0334 093C 0062;0061 16AF0 0334 093C 0062;0061 16AF0 0334 093C 0062;0061 16AF0 0334 093C 0062;
0061 093C 0334 16AF1 0062;0061 0334 16AF1 093C 0062;0061 0334 16AF1 093C 0062;0061 0334 16AF1 093C 0062;0061 0334 16AF1 093C 0062;
diff --git a/Build/source/libs/icu/icu-src/source/data/unidata/SpecialCasing.txt b/Build/source/libs/icu/icu-src/source/data/unidata/SpecialCasing.txt
index b9ba0d81c16..c90d09acb3a 100644
--- a/Build/source/libs/icu/icu-src/source/data/unidata/SpecialCasing.txt
+++ b/Build/source/libs/icu/icu-src/source/data/unidata/SpecialCasing.txt
@@ -1,6 +1,6 @@
-# SpecialCasing-10.0.0.txt
-# Date: 2017-04-14, 05:40:43 GMT
-# © 2017 Unicode®, Inc.
+# SpecialCasing-11.0.0.txt
+# Date: 2018-02-22, 06:16:47 GMT
+# © 2018 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# For terms of use, see http://www.unicode.org/terms_of_use.html
#
@@ -121,7 +121,7 @@ FB17; FB17; 0544 056D; 0544 053D; # ARMENIAN SMALL LIGATURE MEN XEH
# The following cases are already in the UnicodeData.txt file, so are only commented here.
-# 0345; 0345; 0345; 0399; # COMBINING GREEK YPOGEGRAMMENI
+# 0345; 0345; 0399; 0399; # COMBINING GREEK YPOGEGRAMMENI
# All letters with YPOGEGRAMMENI (iota-subscript) or PROSGEGRAMMENI (iota adscript)
# have special uppercases.
diff --git a/Build/source/libs/icu/icu-src/source/data/unidata/UCARules.txt b/Build/source/libs/icu/icu-src/source/data/unidata/UCARules.txt
index 6591dc543de..b7998bfa66f 100644
--- a/Build/source/libs/icu/icu-src/source/data/unidata/UCARules.txt
+++ b/Build/source/libs/icu/icu-src/source/data/unidata/UCARules.txt
@@ -1,10 +1,10 @@
# UCA_Rules_SHORT.txt
-# Date: 2017-06-05, 23:16:51 GMT
-# © 2017 Unicode®, Inc.
+# Date: 2018-05-21, 23:52:44 GMT
+# © 2018 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# For terms of use, see http://www.unicode.org/terms_of_use.html
-# UCA Version: 10.0.0
-# UCD Version: 10.0.0
+# UCA Version: 11.0.0
+# UCD Version: 11.0.0
# For a description of the format and usage, see
# http://www.unicode.org/reports/tr35/tr35-collation.html#Root_Data_Files
@@ -154,6 +154,7 @@
= ݉
= ݊
= ‎ߺ‎
+ = ࣓
= ࣔ
= ࣕ
= ࣖ
@@ -317,6 +318,7 @@
= '\uFFFB'
= 𐋠
= '\U000110BD'
+ = '\U000110CD'
= 𑍦
= 𑍧
= 𑍨
@@ -933,6 +935,14 @@
= ꙼
= ꙽
= 𐫥
+ = 𐴤
+ = 𐴥
+ = 𐴦
+ = 𐴧
+ = 𐽈
+ = 𐽉
+ = 𐽊
+ = 𐽌
= 𛲝
<< ̖
= ̗
@@ -968,6 +978,7 @@
= ͢
= ݂
= ݆
+ = ߽
= ࡙
= ࡚
= ࡛
@@ -992,6 +1003,13 @@
= ︧
= 𐨍
= 𐫦
+ = 𐽆
+ = 𐽇
+ = 𐽋
+ = 𐽍
+ = 𐽎
+ = 𐽏
+ = 𐽐
<< ̶
= ̷
= ⃘
@@ -1213,11 +1231,13 @@
= 𑇊
= 𑈶
= 𑋩
+ = 𑌻
= 𑌼
= 𑑆
= 𑓃
= 𑗀
= 𑚷
+ = 𑠺
= 𑨳
= 𑵂
<< ऀ
@@ -1256,6 +1276,7 @@
= ଂ
= ஂ
= ం
+ = ఄ
= ಂ
= ഀ
= ം
@@ -1284,11 +1305,13 @@
= 𑖽
= 𑘽
= 𑚫
+ = 𑠷
= 𑨸
= 𑪖
= 𑰽
= 𑲵
= 𑵀
+ = 𑶕
<< ः
= ঃ
= ਃ
@@ -1318,10 +1341,15 @@
= 𑖾
= 𑘾
= 𑚬
+ = 𑠸
= 𑨹
= 𑪗
= 𑰾
= 𑵁
+ = 𑶖
+ << ৾
+ = 𑇉
+ = 𑑞
<< ੰ
<< ੱ
<< ᬃ
@@ -1473,6 +1501,8 @@
< ⸴
< ⸲
< ⹁
+ < ⹌
+ < ⹎
< ՝
< ،
< ‎؍‎
@@ -1484,6 +1514,7 @@
< ꓾
< ꘍
< ꛵
+ < 𖺗
< 、
<<< ﹑
<<< 、
@@ -1600,6 +1631,7 @@
< ꘎
< ꛳
< 𖫵
+ < 𖺘
< 𛲟
< 。
<<< 。
@@ -1689,6 +1721,11 @@
< 𐬽
< 𐬾
< 𐬿
+ < ‎𐽕‎
+ < ‎𐽖‎
+ < ‎𐽗‎
+ < ‎𐽘‎
+ < ‎𐽙‎
< 𑂾
< 𑂿
< 𑅀
@@ -1697,6 +1734,8 @@
< 𑇟
< 𑊩
< 𑜾
+ < 𑻷
+ < 𑻸
< ⁕
< ⁖
< ⁘
@@ -1748,26 +1787,26 @@
< »
< '('
<<< (
- <<< ⑴ / ‎𞥑')'‎
- <<< ⑽ / ‎𞥑𞥐')'‎
- <<< ⑾ / ‎𞥑𞥑')'‎
- <<< ⑿ / ‎𞥑𞥒')'‎
- <<< ⒀ / ‎𞥑𞥓')'‎
- <<< ⒁ / ‎𞥑𞥔')'‎
- <<< ⒂ / ‎𞥑𞥕')'‎
- <<< ⒃ / ‎𞥑𞥖')'‎
- <<< ⒄ / ‎𞥑𞥗')'‎
- <<< ⒅ / ‎𞥑𞥘')'‎
- <<< ⒆ / ‎𞥑𞥙')'‎
- <<< ⑵ / ‎𞥒')'‎
- <<< ⒇ / ‎𞥒𞥐')'‎
- <<< ⑶ / ‎𞥓')'‎
- <<< ⑷ / ‎𞥔')'‎
- <<< ⑸ / ‎𞥕')'‎
- <<< ⑹ / ‎𞥖')'‎
- <<< ⑺ / ‎𞥗')'‎
- <<< ⑻ / ‎𞥘')'‎
- <<< ⑼ / ‎𞥙')'‎
+ <<< ⑴ / ‎𞲣')'‎
+ <<< ⑽ / ‎𞲣𞥐')'‎
+ <<< ⑾ / ‎𞲣𞲣')'‎
+ <<< ⑿ / ‎𞲣𞲤')'‎
+ <<< ⒀ / ‎𞲣𞲥')'‎
+ <<< ⒁ / ‎𞲣𞲦')'‎
+ <<< ⒂ / ‎𞲣𞲧')'‎
+ <<< ⒃ / ‎𞲣𞲨')'‎
+ <<< ⒄ / ‎𞲣𞲩')'‎
+ <<< ⒅ / ‎𞲣𞲪')'‎
+ <<< ⒆ / ‎𞲣𞲫')'‎
+ <<< ⑵ / ‎𞲤')'‎
+ <<< ⒇ / ‎𞲤𞥐')'‎
+ <<< ⑶ / ‎𞲥')'‎
+ <<< ⑷ / ‎𞲦')'‎
+ <<< ⑸ / ‎𞲧')'‎
+ <<< ⑹ / ‎𞲨')'‎
+ <<< ⑺ / ‎𞲩')'‎
+ <<< ⑻ / ‎𞲪')'‎
+ <<< ⑼ / ‎𞲫')'‎
<<< ⒜ / a')'
<<< 🄐 / A')'
<<< ⒝ / b')'
@@ -2053,6 +2092,7 @@
< ⸹
< ¶
< ⁋
+ < ⹍
< ⸿
< '@'
<<< @
@@ -2069,6 +2109,7 @@
< '\'
<<< \
<<< ﹨
+ < ⹊
< '&'
<<< &
<<< ﹠
@@ -2089,6 +2130,7 @@
< ⸶
< ⸷
< ⸸
+ < ⹋
< •
< ‣
< ‧
@@ -2171,7 +2213,9 @@
< ꣺
< ꣼
< ৽
+ < ੶
< ૰
+ < ಄
< ෴
< ๏
< ๚
@@ -2292,7 +2336,6 @@
< 𑅵
< 𑇍
< 𑇇
- < 𑇉
< 𑇛
< 𑇝
< 𑈺
@@ -2327,12 +2370,15 @@
< 𑗖
< 𑗗
< 𑙃
+ < 𑠻
< 𖬷
< 𖬸
< 𖬹
< 𖬺
< 𖬻
< 𖭄
+ < 𖺙
+ < 𖺚
< 𝪇
< 𝪈
< 𝪉
@@ -2607,6 +2653,7 @@
< ᭻
< ᭼
< ©
+ < 🄯
< ®
< ℄
< ℈
@@ -4693,6 +4740,9 @@
< ⮷
< ⮸
< ⮹
+ < ⮺
+ < ⮻
+ < ⮼
< ⮽
< ⮾
< ⮿
@@ -4714,10 +4764,50 @@
< ⯐
< ⯑
< ⯒
+ < ⯓
+ < ⯔
+ < ⯕
+ < ⯖
+ < ⯗
+ < ⯘
+ < ⯙
+ < ⯚
+ < ⯛
+ < ⯜
+ < ⯝
+ < ⯞
+ < ⯟
+ < ⯠
+ < ⯡
+ < ⯢
+ < ⯣
+ < ⯤
+ < ⯥
+ < ⯦
+ < ⯧
+ < ⯨
+ < ⯩
+ < ⯪
+ < ⯫
< ⯬
< ⯭
< ⯮
< ⯯
+ < ⯰
+ < ⯱
+ < ⯲
+ < ⯳
+ < ⯴
+ < ⯵
+ < ⯶
+ < ⯷
+ < ⯸
+ < ⯹
+ < ⯺
+ < ⯻
+ < ⯼
+ < ⯽
+ < ⯾
< ⳥
< ⳦
< ⳧
@@ -5791,6 +5881,7 @@
< 𝉁
< 𝉅
< 𛲜
+ < ‎𞲬‎
< 🀀
< 🀁
< 🀂
@@ -6017,6 +6108,20 @@
< 🃳
< 🃴
< 🃵
+ < 🩠
+ < 🩡
+ < 🩢
+ < 🩣
+ < 🩤
+ < 🩥
+ < 🩦
+ < 🩧
+ < 🩨
+ < 🩩
+ < 🩪
+ < 🩫
+ < 🩬
+ < 🩭
< 🉠
< 🉡
< 🉢
@@ -6863,6 +6968,9 @@
< 🥊
< 🥋
< 🥌
+ < 🥍
+ < 🥎
+ < 🥏
< 🥐
< 🥑
< 🥒
@@ -6891,6 +6999,20 @@
< 🥩
< 🥪
< 🥫
+ < 🥬
+ < 🥭
+ < 🥮
+ < 🥯
+ < 🥰
+ < 🥳
+ < 🥴
+ < 🥵
+ < 🥶
+ < 🥺
+ < 🥼
+ < 🥽
+ < 🥾
+ < 🥿
< 🦀
< 🦁
< 🦂
@@ -6915,7 +7037,30 @@
< 🦕
< 🦖
< 🦗
+ < 🦘
+ < 🦙
+ < 🦚
+ < 🦛
+ < 🦜
+ < 🦝
+ < 🦞
+ < 🦟
+ < 🦠
+ < 🦡
+ < 🦢
+ < 🦰
+ < 🦱
+ < 🦲
+ < 🦳
+ < 🦴
+ < 🦵
+ < 🦶
+ < 🦷
+ < 🦸
+ < 🦹
< 🧀
+ < 🧁
+ < 🧂
< 🧐
< 🧑
< 🧒
@@ -6939,6 +7084,31 @@
< 🧤
< 🧥
< 🧦
+ < 🧧
+ < 🧨
+ < 🧩
+ < 🧪
+ < 🧫
+ < 🧬
+ < 🧭
+ < 🧮
+ < 🧯
+ < 🧰
+ < 🧱
+ < 🧲
+ < 🧳
+ < 🧴
+ < 🧵
+ < 🧶
+ < 🧷
+ < 🧸
+ < 🧹
+ < 🧺
+ < 🧻
+ < 🧼
+ < 🧽
+ < 🧾
+ < 🧿
< 😀
< 😁
< 😂
@@ -7174,6 +7344,7 @@
< 🛶
< 🛷
< 🛸
+ < 🛹
< 🜀
< 🜁
< 🜂
@@ -7375,6 +7546,10 @@
< 🟒
< 🟓
< 🟔
+ < 🟕
+ < 🟖
+ < 🟗
+ < 🟘
< 🠀
< 🠁
< 🠂
@@ -8164,6 +8339,8 @@
<<< ¥
< ֏
< ‎؋‎
+ < ‎߾‎
+ < ‎߿‎
< ৲
< ৳
< ৻
@@ -8198,6 +8375,7 @@
< ₷
< ₸
< ₹
+ < ‎𞲰‎
< ₺
< ₻
< ₼
@@ -8425,6 +8603,14 @@
< ‎𐮭‎
< ‎𐮮‎
< ‎𐮯‎
+ < ‎𐼢‎
+ < ‎𐼣‎
+ < ‎𐼤‎
+ < ‎𐼥‎
+ < ‎𐼦‎
+ < ‎𐽒‎
+ < ‎𐽓‎
+ < ‎𐽔‎
< 𑜺
< 𑜻
< 𑁛
@@ -8442,6 +8628,7 @@
< ‎𐩅‎
< ‎𐩆‎
< ‎𐩇‎
+ < ‎𐩈‎
< 𑱣
< 𑱤
< 𑱥
@@ -8479,6 +8666,72 @@
< 𖭟
< 𖭠
< 𖭡
+ < 𖺊
+ < 𖺋
+ < 𖺌
+ < 𖺍
+ < 𖺎
+ < 𖺏
+ < 𖺐
+ < 𖺑
+ < 𖺒
+ < 𖺓
+ < 𝋪
+ < 𝋫
+ < 𝋬
+ < 𝋭
+ < 𝋮
+ < 𝋯
+ < 𝋰
+ < 𝋱
+ < 𝋲
+ < 𝋳
+ < ‎𞱺‎
+ < ‎𞱻‎
+ < ‎𞱼‎
+ < ‎𞱽‎
+ < ‎𞱾‎
+ < ‎𞱿‎
+ < ‎𞲀‎
+ < ‎𞲁‎
+ < ‎𞲂‎
+ < ‎𞲃‎
+ < ‎𞲄‎
+ < ‎𞲅‎
+ < ‎𞲆‎
+ < ‎𞲇‎
+ < ‎𞲈‎
+ < ‎𞲉‎
+ < ‎𞲊‎
+ < ‎𞲋‎
+ < ‎𞲌‎
+ < ‎𞲍‎
+ < ‎𞲎‎
+ < ‎𞲏‎
+ < ‎𞲐‎
+ < ‎𞲑‎
+ < ‎𞲒‎
+ < ‎𞲓‎
+ < ‎𞲔‎
+ < ‎𞲕‎
+ < ‎𞲖‎
+ < ‎𞲗‎
+ < ‎𞲘‎
+ < ‎𞲙‎
+ < ‎𞲚‎
+ < ‎𞲛‎
+ < ‎𞲜‎
+ < ‎𞲝‎
+ < ‎𞲞‎
+ < ‎𞲟‎
+ < ‎𞲠‎
+ < ‎𞲡‎
+ < ‎𞲢‎
+ < ‎𞲭‎
+ < ‎𞲮‎
+ < ‎𞲯‎
+ < ‎𞲳‎
+ < ‎𞲴‎
< ‎𐧉‎
< ‎𐧊‎
< ‎𐧋‎
@@ -8601,6 +8854,7 @@
= ꯰
= 𐆊
= 𐒠
+ = 𐴰
= 𑁦
= 𑃰
= 𑄶
@@ -8614,8 +8868,11 @@
= 𑣠
= 𑱐
= 𑵐
+ = 𑶠
= 𖩠
= 𖭐
+ = 𖺀
+ = 𝋠
= ‎𞥐‎
<<< 0
<<< ༳
@@ -8633,7 +8890,7 @@
= 🄌
<<< ⁰
<<< ₀
- <<< ↉ / ‎⁄𞥓‎
+ <<< ↉ / ‎⁄𞲥‎
< 1
= ١
= ۱
@@ -8699,7 +8956,10 @@
= ‎𐭸‎
= ‎𐮩‎
= ‎𐳺‎
+ = 𐴱
= 𐹠
+ = ‎𐼝‎
+ = ‎𐽑‎
= 𑁒
= 𑁧
= 𑃱
@@ -8716,6 +8976,7 @@
= 𑱑
= 𑱚
= 𑵑
+ = 𑶡
= 𒐕
= 𒐞
= 𒐬
@@ -8724,9 +8985,15 @@
= 𒑘
= 𖩡
= 𖭑
+ = 𖺁
+ = 𝋡
= 𝍠
+ = 𝍲
+ = 𝍷
= ‎𞣇‎
= ‎𞥑‎
+ = ‎𞱱‎
+ = ‎𞲣‎
<<< 1
<<< ༪
<<< 🄂 / ','
@@ -8735,35 +9002,35 @@
<<< ㏩ / ‎𞥐日‎
<<< ㋉ / ‎𞥐月‎
<<< ㍢ / ‎𞥐点‎
- <<< ⒒ / ‎𞥑'.'‎
- <<< ㏪ / ‎𞥑日‎
- <<< ㋊ / ‎𞥑月‎
- <<< ㍣ / ‎𞥑点‎
- <<< ⒓ / ‎𞥒'.'‎
- <<< ㏫ / ‎𞥒日‎
- <<< ㋋ / ‎𞥒月‎
- <<< ㍤ / ‎𞥒点‎
- <<< ⒔ / ‎𞥓'.'‎
- <<< ㏬ / ‎𞥓日‎
- <<< ㍥ / ‎𞥓点‎
- <<< ⒕ / ‎𞥔'.'‎
- <<< ㏭ / ‎𞥔日‎
- <<< ㍦ / ‎𞥔点‎
- <<< ⒖ / ‎𞥕'.'‎
- <<< ㏮ / ‎𞥕日‎
- <<< ㍧ / ‎𞥕点‎
- <<< ⒗ / ‎𞥖'.'‎
- <<< ㏯ / ‎𞥖日‎
- <<< ㍨ / ‎𞥖点‎
- <<< ⒘ / ‎𞥗'.'‎
- <<< ㏰ / ‎𞥗日‎
- <<< ㍩ / ‎𞥗点‎
- <<< ⒙ / ‎𞥘'.'‎
- <<< ㏱ / ‎𞥘日‎
- <<< ㍪ / ‎𞥘点‎
- <<< ⒚ / ‎𞥙'.'‎
- <<< ㏲ / ‎𞥙日‎
- <<< ㍫ / ‎𞥙点‎
+ <<< ⒒ / ‎𞲣'.'‎
+ <<< ㏪ / ‎𞲣日‎
+ <<< ㋊ / ‎𞲣月‎
+ <<< ㍣ / ‎𞲣点‎
+ <<< ⒓ / ‎𞲤'.'‎
+ <<< ㏫ / ‎𞲤日‎
+ <<< ㋋ / ‎𞲤月‎
+ <<< ㍤ / ‎𞲤点‎
+ <<< ⒔ / ‎𞲥'.'‎
+ <<< ㏬ / ‎𞲥日‎
+ <<< ㍥ / ‎𞲥点‎
+ <<< ⒕ / ‎𞲦'.'‎
+ <<< ㏭ / ‎𞲦日‎
+ <<< ㍦ / ‎𞲦点‎
+ <<< ⒖ / ‎𞲧'.'‎
+ <<< ㏮ / ‎𞲧日‎
+ <<< ㍧ / ‎𞲧点‎
+ <<< ⒗ / ‎𞲨'.'‎
+ <<< ㏯ / ‎𞲨日‎
+ <<< ㍨ / ‎𞲨点‎
+ <<< ⒘ / ‎𞲩'.'‎
+ <<< ㏰ / ‎𞲩日‎
+ <<< ㍩ / ‎𞲩点‎
+ <<< ⒙ / ‎𞲪'.'‎
+ <<< ㏱ / ‎𞲪日‎
+ <<< ㍪ / ‎𞲪点‎
+ <<< ⒚ / ‎𞲫'.'‎
+ <<< ㏲ / ‎𞲫日‎
+ <<< ㍫ / ‎𞲫点‎
<<< ㏠ / 日
<<< ㋀ / 月
<<< ㍙ / 点
@@ -8783,37 +9050,39 @@
= ➉ / ‎𞥐‎
= ➓ / ‎𞥐‎
= ㉈ / ‎𞥐‎
- <<< ⑪ / ‎𞥑‎
- = ⓫ / ‎𞥑‎
- <<< ⑫ / ‎𞥒‎
- = ⓬ / ‎𞥒‎
- <<< ⑬ / ‎𞥓‎
- = ⓭ / ‎𞥓‎
- <<< ⑭ / ‎𞥔‎
- = ⓮ / ‎𞥔‎
- <<< ⑮ / ‎𞥕‎
- = ⓯ / ‎𞥕‎
- <<< ⑯ / ‎𞥖‎
- = ⓰ / ‎𞥖‎
- <<< ⑰ / ‎𞥗‎
- = ⓱ / ‎𞥗‎
- <<< ⑱ / ‎𞥘‎
- = ⓲ / ‎𞥘‎
- <<< ⑲ / ‎𞥙‎
- = ⓳ / ‎𞥙‎
+ <<< ⑪ / ‎𞲣‎
+ = ⓫ / ‎𞲣‎
+ <<< ⑫ / ‎𞲤‎
+ = ⓬ / ‎𞲤‎
+ <<< ⑬ / ‎𞲥‎
+ = ⓭ / ‎𞲥‎
+ <<< ⑭ / ‎𞲦‎
+ = ⓮ / ‎𞲦‎
+ <<< ⑮ / ‎𞲧‎
+ = ⓯ / ‎𞲧‎
+ <<< ⑯ / ‎𞲨‎
+ = ⓰ / ‎𞲨‎
+ <<< ⑰ / ‎𞲩‎
+ = ⓱ / ‎𞲩‎
+ <<< ⑱ / ‎𞲪‎
+ = ⓲ / ‎𞲪‎
+ <<< ⑲ / ‎𞲫‎
+ = ⓳ / ‎𞲫‎
<<< ¹
<<< ₁
- <<< 🆤 / ‎𞥒𞥐P‎
+ <<< 🆤 / ‎𞲤𞥐P‎
<<< ⅟ / ⁄
- <<< ⅒ / ‎⁄𞥑𞥐‎
- <<< ½ / ‎⁄𞥒‎
- <<< ⅓ / ‎⁄𞥓‎
- <<< ¼ / ‎⁄𞥔‎
- <<< ⅕ / ‎⁄𞥕‎
- <<< ⅙ / ‎⁄𞥖‎
- <<< ⅐ / ‎⁄𞥗‎
- <<< ⅛ / ‎⁄𞥘‎
- <<< ⅑ / ‎⁄𞥙‎
+ <<< ⅒ / ‎⁄𞲣𞥐‎
+ <<< ½ / ‎⁄𞲤‎
+ <<< ⅓ / ‎⁄𞲥‎
+ <<< ¼ / ‎⁄𞲦‎
+ <<< ⅕ / ‎⁄𞲧‎
+ <<< ⅙ / ‎⁄𞲨‎
+ <<< ⅐ / ‎⁄𞲩‎
+ <<< ⅛ / ‎⁄𞲪‎
+ <<< ⅑ / ‎⁄𞲫‎
+ << 𖺔
+ = ‎𞲱‎
< 2
= ٢
= ۲
@@ -8872,7 +9141,9 @@
= ‎𐭙‎
= ‎𐭹‎
= ‎𐮪‎
+ = 𐴲
= 𐹡
+ = ‎𐼞‎
= 𑁓
= 𑁨
= 𑃲
@@ -8889,6 +9160,7 @@
= 𑱒
= 𑱛
= 𑵒
+ = 𑶢
= 𒐀
= 𒐖
= 𒐟
@@ -8901,9 +9173,14 @@
= 𒑙
= 𖩢
= 𖭒
+ = 𖺂
+ = 𝋢
= 𝍡
+ = 𝍳
= ‎𞣈‎
= ‎𞥒‎
+ = ‎𞱲‎
+ = ‎𞲤‎
<<< 2
<<< ༫
<<< 🄃 / ','
@@ -8911,19 +9188,19 @@
<<< ⒛ / ‎𞥐'.'‎
<<< ㏳ / ‎𞥐日‎
<<< ㍬ / ‎𞥐点‎
- <<< ㏴ / ‎𞥑日‎
- <<< ㍭ / ‎𞥑点‎
- <<< ㏵ / ‎𞥒日‎
- <<< ㍮ / ‎𞥒点‎
- <<< ㏶ / ‎𞥓日‎
- <<< ㍯ / ‎𞥓点‎
- <<< ㏷ / ‎𞥔日‎
- <<< ㍰ / ‎𞥔点‎
- <<< ㏸ / ‎𞥕日‎
- <<< ㏹ / ‎𞥖日‎
- <<< ㏺ / ‎𞥗日‎
- <<< ㏻ / ‎𞥘日‎
- <<< ㏼ / ‎𞥙日‎
+ <<< ㏴ / ‎𞲣日‎
+ <<< ㍭ / ‎𞲣点‎
+ <<< ㏵ / ‎𞲤日‎
+ <<< ㍮ / ‎𞲤点‎
+ <<< ㏶ / ‎𞲥日‎
+ <<< ㍯ / ‎𞲥点‎
+ <<< ㏷ / ‎𞲦日‎
+ <<< ㍰ / ‎𞲦点‎
+ <<< ㏸ / ‎𞲧日‎
+ <<< ㏹ / ‎𞲨日‎
+ <<< ㏺ / ‎𞲩日‎
+ <<< ㏻ / ‎𞲪日‎
+ <<< ㏼ / ‎𞲫日‎
<<< ㏡ / 日
<<< ㋁ / 月
<<< ㍚ / 点
@@ -8940,22 +9217,24 @@
<<< ⑳ / ‎𞥐‎
= ⓴ / ‎𞥐‎
= ㉉ / ‎𞥐‎
- <<< ㉑ / ‎𞥑‎
- <<< ㉒ / ‎𞥒‎
- <<< ㉓ / ‎𞥓‎
- <<< ㉔ / ‎𞥔‎
- <<< ㉕ / ‎𞥕‎
- <<< ㉖ / ‎𞥖‎
- <<< ㉗ / ‎𞥗‎
- <<< ㉘ / ‎𞥘‎
- <<< ㉙ / ‎𞥙‎
+ <<< ㉑ / ‎𞲣‎
+ <<< ㉒ / ‎𞲤‎
+ <<< ㉓ / ‎𞲥‎
+ <<< ㉔ / ‎𞲦‎
+ <<< ㉕ / ‎𞲧‎
+ <<< ㉖ / ‎𞲨‎
+ <<< ㉗ / ‎𞲩‎
+ <<< ㉘ / ‎𞲪‎
+ <<< ㉙ / ‎𞲫‎
<<< ²
<<< ₂
- <<< 🆢 / ‎𞥒'.'𞥒‎
+ <<< 🆢 / ‎𞲤'.'𞲤‎
<<< 🆝 / K
<<< 🆜 / nd' 'Scr
- <<< ⅔ / ‎⁄𞥓‎
- <<< ⅖ / ‎⁄𞥕‎
+ <<< ⅔ / ‎⁄𞲥‎
+ <<< ⅖ / ‎⁄𞲧‎
+ << 𖺕
+ = ‎𞲲‎
< 3
= ٣
= ۳
@@ -9009,7 +9288,9 @@
= ‎𐭚‎
= ‎𐭺‎
= ‎𐮫‎
+ = 𐴳
= 𐹢
+ = ‎𐼟‎
= 𑁔
= 𑁩
= 𑃳
@@ -9026,6 +9307,7 @@
= 𑱓
= 𑱜
= 𑵓
+ = 𑶣
= 𒐁
= 𒐈
= 𒐗
@@ -9043,15 +9325,20 @@
= 𒑗
= 𖩣
= 𖭓
+ = 𖺃
+ = 𝋣
= 𝍢
+ = 𝍴
= ‎𞣉‎
= ‎𞥓‎
+ = ‎𞱳‎
+ = ‎𞲥‎
<<< 3
<<< ༬
<<< 🄄 / ','
<<< ⒊ / '.'
<<< ㏽ / ‎𞥐日‎
- <<< ㏾ / ‎𞥑日‎
+ <<< ㏾ / ‎𞲣日‎
<<< ㏢ / 日
<<< ㋂ / 月
<<< ㍛ / 点
@@ -9067,21 +9354,22 @@
= ➌
<<< ㉊ / ‎𞥐‎
= ㉚ / ‎𞥐‎
- <<< ㉛ / ‎𞥑‎
- <<< ㉜ / ‎𞥒‎
- <<< ㉝ / ‎𞥓‎
- <<< ㉞ / ‎𞥔‎
- <<< ㉟ / ‎𞥕‎
- <<< ㊱ / ‎𞥖‎
- <<< ㊲ / ‎𞥗‎
- <<< ㊳ / ‎𞥘‎
- <<< ㊴ / ‎𞥙‎
+ <<< ㉛ / ‎𞲣‎
+ <<< ㉜ / ‎𞲤‎
+ <<< ㉝ / ‎𞲥‎
+ <<< ㉞ / ‎𞲦‎
+ <<< ㉟ / ‎𞲧‎
+ <<< ㊱ / ‎𞲨‎
+ <<< ㊲ / ‎𞲩‎
+ <<< ㊳ / ‎𞲪‎
+ <<< ㊴ / ‎𞲫‎
<<< ³
<<< ₃
<<< 🆛 / D
- <<< ¾ / ‎⁄𞥔‎
- <<< ⅗ / ‎⁄𞥕‎
- <<< ⅜ / ‎⁄𞥘‎
+ <<< ¾ / ‎⁄𞲦‎
+ <<< ⅗ / ‎⁄𞲧‎
+ <<< ⅜ / ‎⁄𞲪‎
+ << 𖺖
< 4
= ٤
= ۴
@@ -9132,7 +9420,9 @@
= ‎𐭛‎
= ‎𐭻‎
= ‎𐮬‎
+ = 𐴴
= 𐹣
+ = ‎𐼠‎
= 𑁕
= 𑁪
= 𑃴
@@ -9149,6 +9439,7 @@
= 𑱔
= 𑱝
= 𑵔
+ = 𑶤
= 𒐂
= 𒐉
= 𒐏
@@ -9167,9 +9458,14 @@
= 𒑩
= 𖩤
= 𖭔
+ = 𖺄
+ = 𝋤
= 𝍣
+ = 𝍵
= ‎𞣊‎
= ‎𞥔‎
+ = ‎𞱴‎
+ = ‎𞲦‎
<<< 4
<<< ༭
<<< 🄅 / ','
@@ -9189,19 +9485,19 @@
= ➍
<<< ㉋ / ‎𞥐‎
= ㊵ / ‎𞥐‎
- <<< ㊶ / ‎𞥑‎
- <<< ㊷ / ‎𞥒‎
- <<< ㊸ / ‎𞥓‎
- <<< ㊹ / ‎𞥔‎
- <<< ㊺ / ‎𞥕‎
- <<< ㊻ / ‎𞥖‎
- <<< ㊼ / ‎𞥗‎
- <<< ㊽ / ‎𞥘‎
- <<< ㊾ / ‎𞥙‎
+ <<< ㊶ / ‎𞲣‎
+ <<< ㊷ / ‎𞲤‎
+ <<< ㊸ / ‎𞲥‎
+ <<< ㊹ / ‎𞲦‎
+ <<< ㊺ / ‎𞲧‎
+ <<< ㊻ / ‎𞲨‎
+ <<< ㊼ / ‎𞲩‎
+ <<< ㊽ / ‎𞲪‎
+ <<< ㊾ / ‎𞲫‎
<<< ⁴
<<< ₄
<<< 🆞 / K
- <<< ⅘ / ‎⁄𞥕‎
+ <<< ⅘ / ‎⁄𞲧‎
< 5
= ٥
= ۵
@@ -9256,7 +9552,9 @@
= ‎𐧄‎
= ‎𐫬‎
= ‎𐳻‎
+ = 𐴵
= 𐹤
+ = ‎𐼡‎
= 𑁖
= 𑁫
= 𑃵
@@ -9273,6 +9571,7 @@
= 𑱕
= 𑱞
= 𑵕
+ = 𑶥
= 𒐃
= 𒐊
= 𒐐
@@ -9287,9 +9586,15 @@
= 𒑪
= 𖩥
= 𖭕
+ = 𖺅
+ = 𝋥
= 𝍤
+ = 𝍶
+ = 𝍸
= ‎𞣋‎
= ‎𞥕‎
+ = ‎𞱵‎
+ = ‎𞲧‎
<<< 5
<<< ༮
<<< 🄆 / ','
@@ -9311,9 +9616,9 @@
= ㊿ / ‎𞥐‎
<<< ⁵
<<< ₅
- <<< 🆠 / ‎'.'𞥑‎
- <<< ⅚ / ‎⁄𞥖‎
- <<< ⅝ / ‎⁄𞥘‎
+ <<< 🆠 / ‎'.'𞲣‎
+ <<< ⅚ / ‎⁄𞲨‎
+ <<< ⅝ / ‎⁄𞲪‎
< 6
= ٦
= ۶
@@ -9358,6 +9663,7 @@
= 𐋦
= 𐒦
= ‎𐧅‎
+ = 𐴶
= 𐹥
= 𑁗
= 𑁬
@@ -9375,6 +9681,7 @@
= 𑱖
= 𑱟
= 𑵖
+ = 𑶦
= 𒐄
= 𒐋
= 𒐑
@@ -9385,9 +9692,13 @@
= 𒑫
= 𖩦
= 𖭖
+ = 𖺆
+ = 𝋦
= 𝍥
= ‎𞣌‎
= ‎𞥖‎
+ = ‎𞱶‎
+ = ‎𞲨‎
<<< 6
<<< ༯
<<< 🄇 / ','
@@ -9452,6 +9763,7 @@
= 𐋧
= 𐒧
= ‎𐧆‎
+ = 𐴷
= 𐹦
= 𑁘
= 𑁭
@@ -9469,6 +9781,7 @@
= 𑱗
= 𑱠
= 𑵗
+ = 𑶧
= 𒐅
= 𒐌
= 𒐒
@@ -9480,9 +9793,13 @@
= 𒑬
= 𖩧
= 𖭗
+ = 𖺇
+ = 𝋧
= 𝍦
= ‎𞣍‎
= ‎𞥗‎
+ = ‎𞱷‎
+ = ‎𞲩‎
<<< 7
<<< ༰
<<< 🄈 / ','
@@ -9503,8 +9820,8 @@
<<< ㉎ / ‎𞥐‎
<<< ⁷
<<< ₇
- <<< 🆡 / ‎'.'𞥑‎
- <<< ⅞ / ‎⁄𞥘‎
+ <<< 🆡 / ‎'.'𞲣‎
+ <<< ⅞ / ‎⁄𞲪‎
< 8
= ٨
= ۸
@@ -9548,6 +9865,7 @@
= 𐋨
= 𐒨
= ‎𐧇‎
+ = 𐴸
= 𐹧
= 𑁙
= 𑁮
@@ -9565,6 +9883,7 @@
= 𑱘
= 𑱡
= 𑵘
+ = 𑶨
= 𒐆
= 𒐍
= 𒐓
@@ -9575,9 +9894,13 @@
= 𒑭
= 𖩨
= 𖭘
+ = 𖺈
+ = 𝋨
= 𝍧
= ‎𞣎‎
= ‎𞥘‎
+ = ‎𞱸‎
+ = ‎𞲪‎
<<< 8
<<< ༱
<<< 🄉 / ','
@@ -9642,6 +9965,7 @@
= 𐋩
= 𐒩
= ‎𐧈‎
+ = 𐴹
= 𐹨
= 𑁚
= 𑁯
@@ -9659,6 +9983,7 @@
= 𑱙
= 𑱢
= 𑵙
+ = 𑶩
= 𒐇
= 𒐎
= 𒐔
@@ -9671,9 +9996,13 @@
= 𒑮
= 𖩩
= 𖭙
+ = 𖺉
+ = 𝋩
= 𝍨
= ‎𞣏‎
= ‎𞥙‎
+ = ‎𞱹‎
+ = ‎𞲫‎
<<< 9
<<< ༲
<<< 🄊 / ','
@@ -9886,8 +10215,8 @@
<<< ㏄ / c
<<< ㏅ / d
<<< ㎝ / m
- <<< ㎠ / ‎m𞥒‎
- <<< ㎤ / ‎m𞥓‎
+ <<< ㎠ / ‎m𞲤‎
+ <<< ㎤ / ‎m𞲥‎
<<< 🄲
= 🅲
<<< ㏆ / ∕kg
@@ -9964,8 +10293,8 @@
<<< ㏈ / B
<<< ㎗ / l
<<< ㍷ / m
- <<< ㍸ / ‎m𞥒‎
- <<< ㍹ / ‎m𞥓‎
+ <<< ㍸ / ‎m𞲤‎
+ <<< ㍹ / ‎m𞲥‎
<<< ᴰ
= 🄳
= 🅳
@@ -10433,8 +10762,8 @@
<<< ㎑ / Hz
<<< ㎘ / l
<<< ㎞ / m
- <<< ㎢ / ‎m𞥒‎
- <<< ㎦ / ‎m𞥓‎
+ <<< ㎢ / ‎m𞲤‎
+ <<< ㎦ / ‎m𞲥‎
<<< ㎪ / Pa
<<< ㏏ / t
<<< ㎸ / V
@@ -10598,17 +10927,17 @@
<<< 🅫 / d
<<< ₘ
<<< ㎧ / ∕s
- <<< ㎨ / ‎∕s𞥒‎
- <<< ㎡ / ‎𞥒‎
- <<< ㎥ / ‎𞥓‎
+ <<< ㎨ / ‎∕s𞲤‎
+ <<< ㎡ / ‎𞲤‎
+ <<< ㎥ / ‎𞲥‎
<<< ㎃ / A
<<< ㏔ / b
<<< ㎎ / g
<<< ㏕ / il
<<< ㎖ / l
<<< ㎜ / m
- <<< ㎟ / ‎m𞥒‎
- <<< ㎣ / ‎m𞥓‎
+ <<< ㎟ / ‎m𞲤‎
+ <<< ㎣ / ‎m𞲥‎
<<< ㏖ / ol
<<< ㎳ / s
<<< ㎷ / V
@@ -10716,7 +11045,7 @@
<<< ͦ
<<< ᷳ / ̈
= ꞝ / ̈
- <<< ᷭ / 𐫦
+ <<< ᷭ / 𐽐
<<< ꝏ / o
<<< ℴ
= 𝐨
@@ -10909,6 +11238,7 @@
= 🅠
<<< 🅀
= 🆀
+ < ꞯ
< ꝗ
<<< Ꝗ
< ꝙ
@@ -10959,7 +11289,7 @@
<<< ᵣ
<<< ㎭ / ad
<<< ㎮ / ad∕s
- <<< ㎯ / ‎ad∕s𞥒‎
+ <<< ㎯ / ‎ad∕s𞲤‎
<<< ᴿ
= 🅁
= 🆁
@@ -11150,7 +11480,7 @@
<<< ͧ
<<< ᷴ / ̈
= ꞟ / ̈
- <<< ᷰ / 𐫦
+ <<< ᷰ / 𐽐
<<< 𝐮
= 𝑢
= 𝒖
@@ -11203,6 +11533,8 @@
<<< Ʉ
<<< ᶶ
< ꭏ
+ < ꞹ
+ <<< Ꞹ
< ᵾ
< ᶙ
< ꭒ
@@ -12645,134 +12977,181 @@
< 𐍴
< 𐍵
< ა
+ <<< Ა
< ⴀ
<<< Ⴀ
< ბ
+ <<< Ბ
< ⴁ
<<< Ⴁ
< გ
+ <<< Გ
< ⴂ
<<< Ⴂ
< დ
+ <<< Დ
< ⴃ
<<< Ⴃ
< ე
+ <<< Ე
< ⴄ
<<< Ⴄ
< ვ
+ <<< Ვ
< ⴅ
<<< Ⴅ
< ზ
+ <<< Ზ
< ⴆ
<<< Ⴆ
< ჱ
+ <<< Ჱ
< ⴡ
<<< Ⴡ
< თ
+ <<< Თ
< ⴇ
<<< Ⴇ
< ი
+ <<< Ი
< ⴈ
<<< Ⴈ
< კ
+ <<< Კ
< ⴉ
<<< Ⴉ
< ლ
+ <<< Ლ
< ⴊ
<<< Ⴊ
< მ
+ <<< Მ
< ⴋ
<<< Ⴋ
< ნ
+ <<< Ნ
<<< ჼ
< ⴌ
<<< Ⴌ
< ჲ
+ <<< Ჲ
< ⴢ
<<< Ⴢ
< ო
+ <<< Ო
< ⴍ
<<< Ⴍ
< პ
+ <<< Პ
< ⴎ
<<< Ⴎ
< ჟ
+ <<< Ჟ
< ⴏ
<<< Ⴏ
< რ
+ <<< Რ
< ⴐ
<<< Ⴐ
< ს
+ <<< Ს
< ⴑ
<<< Ⴑ
< ტ
+ <<< Ტ
< ⴒ
<<< Ⴒ
< ჳ
+ <<< Ჳ
< ⴣ
<<< Ⴣ
< უ
+ <<< Უ
< ⴓ
<<< Ⴓ
< ფ
+ <<< Ფ
< ⴔ
<<< Ⴔ
< ქ
+ <<< Ქ
< ⴕ
<<< Ⴕ
< ღ
+ <<< Ღ
< ⴖ
<<< Ⴖ
< ყ
+ <<< Ყ
< ⴗ
<<< Ⴗ
< შ
+ <<< Შ
< ⴘ
<<< Ⴘ
< ჩ
+ <<< Ჩ
< ⴙ
<<< Ⴙ
< ც
+ <<< Ც
< ⴚ
<<< Ⴚ
< ძ
+ <<< Ძ
< ⴛ
<<< Ⴛ
< წ
+ <<< Წ
< ⴜ
<<< Ⴜ
< ჭ
+ <<< Ჭ
< ⴝ
<<< Ⴝ
< ხ
+ <<< Ხ
< ⴞ
<<< Ⴞ
< ჴ
+ <<< Ჴ
< ⴤ
<<< Ⴤ
< ჯ
+ <<< Ჯ
< ⴟ
<<< Ⴟ
< ჰ
+ <<< Ჰ
< ⴠ
<<< Ⴠ
< ჵ
+ <<< Ჵ
< ⴥ
<<< Ⴥ
< ჶ
+ <<< Ჶ
< ჷ
+ <<< Ჷ
< ⴧ
<<< Ⴧ
< ჸ
+ <<< Ჸ
< ჹ
+ <<< Ჹ
< ჺ
+ <<< Ჺ
< ჽ
+ <<< Ჽ
< ⴭ
<<< Ⴭ
< ჾ
+ <<< Ჾ
< ჿ
+ <<< Ჿ
< ա
<<< Ա
+ < ՠ
< բ
<<< Բ
< գ
@@ -12818,6 +13197,7 @@
<<< Մ
< յ
<<< Յ
+ < ֈ
< ն
<<< Ն
< շ
@@ -12874,6 +13254,7 @@
< ‎ח‎
< ‎ט‎
< ‎י‎
+ <<< ‎ׯ‎ / ‎הוה‎
<<< ‎ײ‎ / ‎י‎
< ‎כ‎
<<< ‎ﬤ‎
@@ -14710,6 +15091,7 @@
< ऎ
< ए
< ऐ
+ < ꣾ
< ऑ
< ऒ
< ओ
@@ -14794,6 +15176,7 @@
< े
< ॎ
< ै
+ < ꣿ
< ॉ
< ॊ
< ो
@@ -16279,6 +16662,62 @@
< 𑚴
< 𑚵
< 𑚶
+ < 𑠀
+ < 𑠁
+ < 𑠂
+ < 𑠃
+ < 𑠄
+ < 𑠅
+ < 𑠆
+ < 𑠇
+ < 𑠈
+ < 𑠉
+ < 𑠊
+ < 𑠋
+ < 𑠌
+ < 𑠍
+ < 𑠎
+ < 𑠏
+ < 𑠐
+ < 𑠑
+ < 𑠒
+ < 𑠓
+ < 𑠔
+ < 𑠕
+ < 𑠖
+ < 𑠗
+ < 𑠘
+ < 𑠙
+ < 𑠚
+ < 𑠛
+ < 𑠜
+ < 𑠝
+ < 𑠞
+ < 𑠟
+ < 𑠠
+ < 𑠡
+ < 𑠢
+ < 𑠣
+ < 𑠤
+ < 𑠥
+ < 𑠦
+ < 𑠧
+ < 𑠨
+ < 𑠩
+ < 𑠪
+ < 𑠫
+ < 𑠬
+ < 𑠭
+ < 𑠮
+ < 𑠯
+ < 𑠰
+ < 𑠱
+ < 𑠲
+ < 𑠳
+ < 𑠴
+ < 𑠵
+ < 𑠶
+ < 𑠹
< 𑜀
< 𑜁
< 𑜂
@@ -16288,6 +16727,7 @@
< 𑜆
< 𑜇
< 𑜈
+ << 𑜚
< 𑜉
< 𑜊
< 𑜋
@@ -16381,6 +16821,57 @@
< 𑴿
< 𑵄
< 𑵅
+ < 𑶘
+ < 𑵠
+ < 𑵡
+ < 𑵢
+ < 𑵣
+ < 𑵤
+ < 𑵥
+ < 𑵧
+ < 𑵨
+ < 𑵪
+ < 𑵫
+ < 𑵬
+ < 𑵭
+ < 𑵮
+ < 𑵯
+ < 𑵰
+ < 𑵱
+ < 𑵲
+ < 𑵳
+ < 𑵴
+ < 𑵵
+ < 𑵶
+ < 𑵷
+ < 𑵸
+ < 𑵹
+ < 𑵺
+ < 𑵻
+ < 𑵼
+ < 𑵽
+ < 𑵾
+ < 𑵿
+ < 𑶀
+ < 𑶁
+ < 𑶂
+ < 𑶃
+ < 𑶄
+ < 𑶅
+ < 𑶆
+ < 𑶇
+ < 𑶈
+ < 𑶉
+ < 𑶊
+ < 𑶋
+ < 𑶌
+ < 𑶍
+ < 𑶎
+ < 𑶐
+ < 𑶑
+ < 𑶓
+ < 𑶔
+ < 𑶗
< ᮃ
<<< ᮺ
< ᮄ
@@ -16509,6 +17000,7 @@
< 𐨆
< 𐨌
< ‎𐨐‎
+ < ‎𐨲‎
< ‎𐨑‎
< ‎𐨒‎
< ‎𐨓‎
@@ -16517,7 +17009,9 @@
< ‎𐨗‎
< ‎𐨙‎
< ‎𐨚‎
+ < ‎𐨴‎
< ‎𐨛‎
+ < ‎𐨳‎
< ‎𐨜‎
< ‎𐨝‎
< ‎𐨞‎
@@ -16535,13 +17029,12 @@
< ‎𐨪‎
< ‎𐨫‎
< ‎𐨬‎
+ < ‎𐨵‎
< ‎𐨭‎
< ‎𐨮‎
< ‎𐨯‎
< ‎𐨰‎
< ‎𐨱‎
- < ‎𐨲‎
- < ‎𐨳‎
< 𐨿
< 𑰀
< 𑰁
@@ -16871,7 +17364,7 @@
< ཧ
< ྷ
< ཨ
- <<< ༀ / ོ𑵀
+ <<< ༀ / ོ𑶕
< ྸ
< ྈ
< ྍ
@@ -17028,6 +17521,7 @@
<<< 𑪔
< 𑪂
< 𑪙
+ < 𑪝
< 𑱲
< 𑲒
< 𑱳
@@ -17361,6 +17855,29 @@
< ᨙ
< ᨚ
< ᨛ
+ < 𑻠
+ < 𑻡
+ < 𑻢
+ < 𑻣
+ < 𑻤
+ < 𑻥
+ < 𑻦
+ < 𑻧
+ < 𑻨
+ < 𑻩
+ < 𑻪
+ < 𑻫
+ < 𑻬
+ < 𑻭
+ < 𑻮
+ < 𑻯
+ < 𑻰
+ < 𑻱
+ < 𑻲
+ < 𑻳
+ < 𑻴
+ < 𑻵
+ < 𑻶
< ᯀ
<<< ᯁ
< ᯂ
@@ -17658,6 +18175,42 @@
< ꩴ
< ꩵ
< ꩶ
+ < ‎𐴀‎
+ < ‎𐴝‎
+ < ‎𐴞‎
+ < ‎𐴟‎
+ < ‎𐴠‎
+ < ‎𐴡‎
+ < ‎𐴁‎
+ < ‎𐴂‎
+ < ‎𐴃‎
+ < ‎𐴄‎
+ < ‎𐴅‎
+ < ‎𐴆‎
+ < ‎𐴇‎
+ < ‎𐴈‎
+ < ‎𐴉‎
+ < ‎𐴊‎
+ < ‎𐴋‎
+ < ‎𐴌‎
+ < ‎𐴍‎
+ < ‎𐴎‎
+ < ‎𐴏‎
+ < ‎𐴐‎
+ < ‎𐴑‎
+ < ‎𐴒‎
+ < ‎𐴓‎
+ < ‎𐴔‎
+ < ‎𐴕‎
+ < ‎𐴖‎
+ < ‎𐴗‎
+ < ‎𐴘‎
+ < ‎𐴙‎
+ < ‎𐴚‎
+ < ‎𐴛‎
+ < ‎𐴜‎
+ < ‎𐴢‎
+ < ‎𐴣‎
< 𑄃
< 𑄄
< 𑄅
@@ -17694,6 +18247,7 @@
< 𑄤
< 𑄥
< 𑄦
+ < 𑅄
< 𑄧
< 𑄨
< 𑄩
@@ -17706,6 +18260,8 @@
< 𑄰
< 𑄱
< 𑄲
+ < 𑅅
+ < 𑅆
< 𑄳
< 𑄴
< ក
@@ -18235,6 +18791,7 @@
< ᠴ
< ᡒ
< ᡱ
+ < ᡸ
< ᡜ
< ᢋ
< ᠵ
@@ -20735,6 +21292,70 @@
< ‎𞣂‎
< ‎𞣃‎
< ‎𞣄‎
+ < 𖹠
+ <<< 𖹀
+ < 𖹡
+ <<< 𖹁
+ < 𖹢
+ <<< 𖹂
+ < 𖹣
+ <<< 𖹃
+ < 𖹤
+ <<< 𖹄
+ < 𖹥
+ <<< 𖹅
+ < 𖹦
+ <<< 𖹆
+ < 𖹧
+ <<< 𖹇
+ < 𖹨
+ <<< 𖹈
+ < 𖹩
+ <<< 𖹉
+ < 𖹪
+ <<< 𖹊
+ < 𖹫
+ <<< 𖹋
+ < 𖹬
+ <<< 𖹌
+ < 𖹭
+ <<< 𖹍
+ < 𖹮
+ <<< 𖹎
+ < 𖹯
+ <<< 𖹏
+ < 𖹰
+ <<< 𖹐
+ < 𖹱
+ <<< 𖹑
+ < 𖹲
+ <<< 𖹒
+ < 𖹳
+ <<< 𖹓
+ < 𖹴
+ <<< 𖹔
+ < 𖹵
+ <<< 𖹕
+ < 𖹶
+ <<< 𖹖
+ < 𖹷
+ <<< 𖹗
+ < 𖹸
+ <<< 𖹘
+ < 𖹹
+ <<< 𖹙
+ < 𖹺
+ <<< 𖹚
+ < 𖹻
+ <<< 𖹛
+ < 𖹼
+ <<< 𖹜
+ < 𖹽
+ <<< 𖹝
+ < 𖹾
+ <<< 𖹞
+ < 𖹿
+ <<< 𖹟
< ‎𞤢‎
<<< ‎𞤀‎
< ‎𞤣‎
@@ -21963,12 +22584,14 @@
< ㄆ
<<< ㆴ
< ㄇ
+ < ㆬ
< ㄈ
< ㄪ
< ㄉ
< ㄊ
<<< ㆵ
< ㄋ
+ < ㄯ
< ㄌ
< ㄍ
<< ㆣ
@@ -22017,7 +22640,6 @@
< ㄥ
< ㆰ
< ㆱ
- < ㆬ
< ㄦ
< ㄧ
<< ㆪ
@@ -25106,6 +25728,58 @@
< ‎𐫢‎
< ‎𐫣‎
< ‎𐫤‎
+ < ‎𐼀‎
+ <<< ‎𐼁‎
+ < ‎𐼂‎
+ <<< ‎𐼃‎
+ < ‎𐼄‎
+ < ‎𐼅‎
+ <<< ‎𐼆‎
+ < ‎𐼇‎
+ < ‎𐼈‎
+ < ‎𐼉‎
+ < ‎𐼊‎
+ < ‎𐼋‎
+ < ‎𐼌‎
+ < ‎𐼍‎
+ < ‎𐼎‎
+ <<< ‎𐼏‎
+ << ‎𐼐‎
+ < ‎𐼑‎
+ < ‎𐼒‎
+ <<< ‎𐼧‎ / ‎𐼘‎
+ << ‎𐼓‎
+ < ‎𐼔‎
+ < ‎𐼕‎
+ <<< ‎𐼖‎
+ << ‎𐼗‎
+ < ‎𐼘‎
+ < ‎𐼙‎
+ < ‎𐼚‎
+ <<< ‎𐼛‎
+ << ‎𐼜‎
+ < ‎𐼰‎
+ < ‎𐼱‎
+ < ‎𐼲‎
+ < ‎𐼳‎
+ < ‎𐼴‎
+ < ‎𐼵‎
+ < ‎𐼶‎
+ < ‎𐼷‎
+ < ‎𐼸‎
+ < ‎𐼹‎
+ < ‎𐼺‎
+ < ‎𐼻‎
+ < ‎𐼼‎
+ < ‎𐼽‎
+ < ‎𐼾‎
+ < ‎𐼿‎
+ < ‎𐽀‎
+ < ‎𐽁‎
+ << ‎𐽅‎
+ < ‎𐽂‎
+ < ‎𐽃‎
+ < ‎𐽄‎
< 𐎀
< 𐎁
< 𐎂
diff --git a/Build/source/libs/icu/icu-src/source/data/unidata/UnicodeData.txt b/Build/source/libs/icu/icu-src/source/data/unidata/UnicodeData.txt
index d89c64f526a..ec32fafbce5 100644
--- a/Build/source/libs/icu/icu-src/source/data/unidata/UnicodeData.txt
+++ b/Build/source/libs/icu/icu-src/source/data/unidata/UnicodeData.txt
@@ -1362,6 +1362,7 @@
055D;ARMENIAN COMMA;Po;0;L;;;;;N;;;;;
055E;ARMENIAN QUESTION MARK;Po;0;L;;;;;N;;;;;
055F;ARMENIAN ABBREVIATION MARK;Po;0;L;;;;;N;;;;;
+0560;ARMENIAN SMALL LETTER TURNED AYB;Ll;0;L;;;;;N;;;;;
0561;ARMENIAN SMALL LETTER AYB;Ll;0;L;;;;;N;;;0531;;0531
0562;ARMENIAN SMALL LETTER BEN;Ll;0;L;;;;;N;;;0532;;0532
0563;ARMENIAN SMALL LETTER GIM;Ll;0;L;;;;;N;;;0533;;0533
@@ -1401,6 +1402,7 @@
0585;ARMENIAN SMALL LETTER OH;Ll;0;L;;;;;N;;;0555;;0555
0586;ARMENIAN SMALL LETTER FEH;Ll;0;L;;;;;N;;;0556;;0556
0587;ARMENIAN SMALL LIGATURE ECH YIWN;Ll;0;L;<compat> 0565 0582;;;;N;;;;;
+0588;ARMENIAN SMALL LETTER YI WITH STROKE;Ll;0;L;;;;;N;;;;;
0589;ARMENIAN FULL STOP;Po;0;L;;;;;N;ARMENIAN PERIOD;;;;
058A;ARMENIAN HYPHEN;Pd;0;ON;;;;;N;;;;;
058D;RIGHT-FACING ARMENIAN ETERNITY SIGN;So;0;ON;;;;;N;;;;;
@@ -1488,6 +1490,7 @@
05E8;HEBREW LETTER RESH;Lo;0;R;;;;;N;;;;;
05E9;HEBREW LETTER SHIN;Lo;0;R;;;;;N;;;;;
05EA;HEBREW LETTER TAV;Lo;0;R;;;;;N;;;;;
+05EF;HEBREW YOD TRIANGLE;Lo;0;R;;;;;N;;;;;
05F0;HEBREW LIGATURE YIDDISH DOUBLE VAV;Lo;0;R;;;;;N;HEBREW LETTER DOUBLE VAV;;;;
05F1;HEBREW LIGATURE YIDDISH VAV YOD;Lo;0;R;;;;;N;HEBREW LETTER VAV YOD;;;;
05F2;HEBREW LIGATURE YIDDISH DOUBLE YOD;Lo;0;R;;;;;N;HEBREW LETTER DOUBLE YOD;;;;
@@ -1982,6 +1985,9 @@
07F8;NKO COMMA;Po;0;ON;;;;;N;;;;;
07F9;NKO EXCLAMATION MARK;Po;0;ON;;;;;N;;;;;
07FA;NKO LAJANYALAN;Lm;0;R;;;;;N;;;;;
+07FD;NKO DANTAYALAN;Mn;220;NSM;;;;;N;;;;;
+07FE;NKO DOROME SIGN;Sc;0;R;;;;;N;;;;;
+07FF;NKO TAMAN SIGN;Sc;0;R;;;;;N;;;;;
0800;SAMARITAN LETTER ALAF;Lo;0;R;;;;;N;;;;;
0801;SAMARITAN LETTER BIT;Lo;0;R;;;;;N;;;;;
0802;SAMARITAN LETTER GAMAN;Lo;0;R;;;;;N;;;;;
@@ -2112,6 +2118,7 @@
08BB;ARABIC LETTER AFRICAN FEH;Lo;0;AL;;;;;N;;;;;
08BC;ARABIC LETTER AFRICAN QAF;Lo;0;AL;;;;;N;;;;;
08BD;ARABIC LETTER AFRICAN NOON;Lo;0;AL;;;;;N;;;;;
+08D3;ARABIC SMALL LOW WAW;Mn;220;NSM;;;;;N;;;;;
08D4;ARABIC SMALL HIGH WORD AR-RUB;Mn;230;NSM;;;;;N;;;;;
08D5;ARABIC SMALL HIGH SAD;Mn;230;NSM;;;;;N;;;;;
08D6;ARABIC SMALL HIGH AIN;Mn;230;NSM;;;;;N;;;;;
@@ -2379,6 +2386,7 @@
09FB;BENGALI GANDA MARK;Sc;0;ET;;;;;N;;;;;
09FC;BENGALI LETTER VEDIC ANUSVARA;Lo;0;L;;;;;N;;;;;
09FD;BENGALI ABBREVIATION SIGN;Po;0;L;;;;;N;;;;;
+09FE;BENGALI SANDHI MARK;Mn;230;NSM;;;;;N;;;;;
0A01;GURMUKHI SIGN ADAK BINDI;Mn;0;NSM;;;;;N;;;;;
0A02;GURMUKHI SIGN BINDI;Mn;0;NSM;;;;;N;;;;;
0A03;GURMUKHI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
@@ -2458,6 +2466,7 @@
0A73;GURMUKHI URA;Lo;0;L;;;;;N;;;;;
0A74;GURMUKHI EK ONKAR;Lo;0;L;;;;;N;;;;;
0A75;GURMUKHI SIGN YAKASH;Mn;0;NSM;;;;;N;;;;;
+0A76;GURMUKHI ABBREVIATION SIGN;Po;0;L;;;;;N;;;;;
0A81;GUJARATI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
0A82;GUJARATI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
0A83;GUJARATI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
@@ -2715,6 +2724,7 @@
0C01;TELUGU SIGN CANDRABINDU;Mc;0;L;;;;;N;;;;;
0C02;TELUGU SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
0C03;TELUGU SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0C04;TELUGU SIGN COMBINING ANUSVARA ABOVE;Mn;0;NSM;;;;;N;;;;;
0C05;TELUGU LETTER A;Lo;0;L;;;;;N;;;;;
0C06;TELUGU LETTER AA;Lo;0;L;;;;;N;;;;;
0C07;TELUGU LETTER I;Lo;0;L;;;;;N;;;;;
@@ -2811,6 +2821,7 @@
0C81;KANNADA SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
0C82;KANNADA SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
0C83;KANNADA SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0C84;KANNADA SIGN SIDDHAM;Po;0;L;;;;;N;;;;;
0C85;KANNADA LETTER A;Lo;0;L;;;;;N;;;;;
0C86;KANNADA LETTER AA;Lo;0;L;;;;;N;;;;;
0C87;KANNADA LETTER I;Lo;0;L;;;;;N;;;;;
@@ -3667,54 +3678,54 @@
10C5;GEORGIAN CAPITAL LETTER HOE;Lu;0;L;;;;;N;;;;2D25;
10C7;GEORGIAN CAPITAL LETTER YN;Lu;0;L;;;;;N;;;;2D27;
10CD;GEORGIAN CAPITAL LETTER AEN;Lu;0;L;;;;;N;;;;2D2D;
-10D0;GEORGIAN LETTER AN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER AN;;;;
-10D1;GEORGIAN LETTER BAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER BAN;;;;
-10D2;GEORGIAN LETTER GAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER GAN;;;;
-10D3;GEORGIAN LETTER DON;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER DON;;;;
-10D4;GEORGIAN LETTER EN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER EN;;;;
-10D5;GEORGIAN LETTER VIN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER VIN;;;;
-10D6;GEORGIAN LETTER ZEN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER ZEN;;;;
-10D7;GEORGIAN LETTER TAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER TAN;;;;
-10D8;GEORGIAN LETTER IN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER IN;;;;
-10D9;GEORGIAN LETTER KAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER KAN;;;;
-10DA;GEORGIAN LETTER LAS;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER LAS;;;;
-10DB;GEORGIAN LETTER MAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER MAN;;;;
-10DC;GEORGIAN LETTER NAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER NAR;;;;
-10DD;GEORGIAN LETTER ON;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER ON;;;;
-10DE;GEORGIAN LETTER PAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER PAR;;;;
-10DF;GEORGIAN LETTER ZHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER ZHAR;;;;
-10E0;GEORGIAN LETTER RAE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER RAE;;;;
-10E1;GEORGIAN LETTER SAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER SAN;;;;
-10E2;GEORGIAN LETTER TAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER TAR;;;;
-10E3;GEORGIAN LETTER UN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER UN;;;;
-10E4;GEORGIAN LETTER PHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER PHAR;;;;
-10E5;GEORGIAN LETTER KHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER KHAR;;;;
-10E6;GEORGIAN LETTER GHAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER GHAN;;;;
-10E7;GEORGIAN LETTER QAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER QAR;;;;
-10E8;GEORGIAN LETTER SHIN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER SHIN;;;;
-10E9;GEORGIAN LETTER CHIN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CHIN;;;;
-10EA;GEORGIAN LETTER CAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CAN;;;;
-10EB;GEORGIAN LETTER JIL;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER JIL;;;;
-10EC;GEORGIAN LETTER CIL;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CIL;;;;
-10ED;GEORGIAN LETTER CHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CHAR;;;;
-10EE;GEORGIAN LETTER XAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER XAN;;;;
-10EF;GEORGIAN LETTER JHAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER JHAN;;;;
-10F0;GEORGIAN LETTER HAE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HAE;;;;
-10F1;GEORGIAN LETTER HE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HE;;;;
-10F2;GEORGIAN LETTER HIE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HIE;;;;
-10F3;GEORGIAN LETTER WE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER WE;;;;
-10F4;GEORGIAN LETTER HAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HAR;;;;
-10F5;GEORGIAN LETTER HOE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HOE;;;;
-10F6;GEORGIAN LETTER FI;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER FI;;;;
-10F7;GEORGIAN LETTER YN;Lo;0;L;;;;;N;;;;;
-10F8;GEORGIAN LETTER ELIFI;Lo;0;L;;;;;N;;;;;
-10F9;GEORGIAN LETTER TURNED GAN;Lo;0;L;;;;;N;;;;;
-10FA;GEORGIAN LETTER AIN;Lo;0;L;;;;;N;;;;;
+10D0;GEORGIAN LETTER AN;Ll;0;L;;;;;N;GEORGIAN SMALL LETTER AN;;1C90;;10D0
+10D1;GEORGIAN LETTER BAN;Ll;0;L;;;;;N;GEORGIAN SMALL LETTER BAN;;1C91;;10D1
+10D2;GEORGIAN LETTER GAN;Ll;0;L;;;;;N;GEORGIAN SMALL LETTER GAN;;1C92;;10D2
+10D3;GEORGIAN LETTER DON;Ll;0;L;;;;;N;GEORGIAN SMALL LETTER DON;;1C93;;10D3
+10D4;GEORGIAN LETTER EN;Ll;0;L;;;;;N;GEORGIAN SMALL LETTER EN;;1C94;;10D4
+10D5;GEORGIAN LETTER VIN;Ll;0;L;;;;;N;GEORGIAN SMALL LETTER VIN;;1C95;;10D5
+10D6;GEORGIAN LETTER ZEN;Ll;0;L;;;;;N;GEORGIAN SMALL LETTER ZEN;;1C96;;10D6
+10D7;GEORGIAN LETTER TAN;Ll;0;L;;;;;N;GEORGIAN SMALL LETTER TAN;;1C97;;10D7
+10D8;GEORGIAN LETTER IN;Ll;0;L;;;;;N;GEORGIAN SMALL LETTER IN;;1C98;;10D8
+10D9;GEORGIAN LETTER KAN;Ll;0;L;;;;;N;GEORGIAN SMALL LETTER KAN;;1C99;;10D9
+10DA;GEORGIAN LETTER LAS;Ll;0;L;;;;;N;GEORGIAN SMALL LETTER LAS;;1C9A;;10DA
+10DB;GEORGIAN LETTER MAN;Ll;0;L;;;;;N;GEORGIAN SMALL LETTER MAN;;1C9B;;10DB
+10DC;GEORGIAN LETTER NAR;Ll;0;L;;;;;N;GEORGIAN SMALL LETTER NAR;;1C9C;;10DC
+10DD;GEORGIAN LETTER ON;Ll;0;L;;;;;N;GEORGIAN SMALL LETTER ON;;1C9D;;10DD
+10DE;GEORGIAN LETTER PAR;Ll;0;L;;;;;N;GEORGIAN SMALL LETTER PAR;;1C9E;;10DE
+10DF;GEORGIAN LETTER ZHAR;Ll;0;L;;;;;N;GEORGIAN SMALL LETTER ZHAR;;1C9F;;10DF
+10E0;GEORGIAN LETTER RAE;Ll;0;L;;;;;N;GEORGIAN SMALL LETTER RAE;;1CA0;;10E0
+10E1;GEORGIAN LETTER SAN;Ll;0;L;;;;;N;GEORGIAN SMALL LETTER SAN;;1CA1;;10E1
+10E2;GEORGIAN LETTER TAR;Ll;0;L;;;;;N;GEORGIAN SMALL LETTER TAR;;1CA2;;10E2
+10E3;GEORGIAN LETTER UN;Ll;0;L;;;;;N;GEORGIAN SMALL LETTER UN;;1CA3;;10E3
+10E4;GEORGIAN LETTER PHAR;Ll;0;L;;;;;N;GEORGIAN SMALL LETTER PHAR;;1CA4;;10E4
+10E5;GEORGIAN LETTER KHAR;Ll;0;L;;;;;N;GEORGIAN SMALL LETTER KHAR;;1CA5;;10E5
+10E6;GEORGIAN LETTER GHAN;Ll;0;L;;;;;N;GEORGIAN SMALL LETTER GHAN;;1CA6;;10E6
+10E7;GEORGIAN LETTER QAR;Ll;0;L;;;;;N;GEORGIAN SMALL LETTER QAR;;1CA7;;10E7
+10E8;GEORGIAN LETTER SHIN;Ll;0;L;;;;;N;GEORGIAN SMALL LETTER SHIN;;1CA8;;10E8
+10E9;GEORGIAN LETTER CHIN;Ll;0;L;;;;;N;GEORGIAN SMALL LETTER CHIN;;1CA9;;10E9
+10EA;GEORGIAN LETTER CAN;Ll;0;L;;;;;N;GEORGIAN SMALL LETTER CAN;;1CAA;;10EA
+10EB;GEORGIAN LETTER JIL;Ll;0;L;;;;;N;GEORGIAN SMALL LETTER JIL;;1CAB;;10EB
+10EC;GEORGIAN LETTER CIL;Ll;0;L;;;;;N;GEORGIAN SMALL LETTER CIL;;1CAC;;10EC
+10ED;GEORGIAN LETTER CHAR;Ll;0;L;;;;;N;GEORGIAN SMALL LETTER CHAR;;1CAD;;10ED
+10EE;GEORGIAN LETTER XAN;Ll;0;L;;;;;N;GEORGIAN SMALL LETTER XAN;;1CAE;;10EE
+10EF;GEORGIAN LETTER JHAN;Ll;0;L;;;;;N;GEORGIAN SMALL LETTER JHAN;;1CAF;;10EF
+10F0;GEORGIAN LETTER HAE;Ll;0;L;;;;;N;GEORGIAN SMALL LETTER HAE;;1CB0;;10F0
+10F1;GEORGIAN LETTER HE;Ll;0;L;;;;;N;GEORGIAN SMALL LETTER HE;;1CB1;;10F1
+10F2;GEORGIAN LETTER HIE;Ll;0;L;;;;;N;GEORGIAN SMALL LETTER HIE;;1CB2;;10F2
+10F3;GEORGIAN LETTER WE;Ll;0;L;;;;;N;GEORGIAN SMALL LETTER WE;;1CB3;;10F3
+10F4;GEORGIAN LETTER HAR;Ll;0;L;;;;;N;GEORGIAN SMALL LETTER HAR;;1CB4;;10F4
+10F5;GEORGIAN LETTER HOE;Ll;0;L;;;;;N;GEORGIAN SMALL LETTER HOE;;1CB5;;10F5
+10F6;GEORGIAN LETTER FI;Ll;0;L;;;;;N;GEORGIAN SMALL LETTER FI;;1CB6;;10F6
+10F7;GEORGIAN LETTER YN;Ll;0;L;;;;;N;;;1CB7;;10F7
+10F8;GEORGIAN LETTER ELIFI;Ll;0;L;;;;;N;;;1CB8;;10F8
+10F9;GEORGIAN LETTER TURNED GAN;Ll;0;L;;;;;N;;;1CB9;;10F9
+10FA;GEORGIAN LETTER AIN;Ll;0;L;;;;;N;;;1CBA;;10FA
10FB;GEORGIAN PARAGRAPH SEPARATOR;Po;0;L;;;;;N;;;;;
10FC;MODIFIER LETTER GEORGIAN NAR;Lm;0;L;<super> 10DC;;;;N;;;;;
-10FD;GEORGIAN LETTER AEN;Lo;0;L;;;;;N;;;;;
-10FE;GEORGIAN LETTER HARD SIGN;Lo;0;L;;;;;N;;;;;
-10FF;GEORGIAN LETTER LABIAL SIGN;Lo;0;L;;;;;N;;;;;
+10FD;GEORGIAN LETTER AEN;Ll;0;L;;;;;N;;;1CBD;;10FD
+10FE;GEORGIAN LETTER HARD SIGN;Ll;0;L;;;;;N;;;1CBE;;10FE
+10FF;GEORGIAN LETTER LABIAL SIGN;Ll;0;L;;;;;N;;;1CBF;;10FF
1100;HANGUL CHOSEONG KIYEOK;Lo;0;L;;;;;N;;;;;
1101;HANGUL CHOSEONG SSANGKIYEOK;Lo;0;L;;;;;N;;;;;
1102;HANGUL CHOSEONG NIEUN;Lo;0;L;;;;;N;;;;;
@@ -5513,6 +5524,7 @@
1875;MONGOLIAN LETTER MANCHU RA;Lo;0;L;;;;;N;;;;;
1876;MONGOLIAN LETTER MANCHU FA;Lo;0;L;;;;;N;;;;;
1877;MONGOLIAN LETTER MANCHU ZHA;Lo;0;L;;;;;N;;;;;
+1878;MONGOLIAN LETTER CHA WITH TWO DOTS;Lo;0;L;;;;;N;;;;;
1880;MONGOLIAN LETTER ALI GALI ANUSVARA ONE;Lo;0;L;;;;;N;;;;;
1881;MONGOLIAN LETTER ALI GALI VISARGA ONE;Lo;0;L;;;;;N;;;;;
1882;MONGOLIAN LETTER ALI GALI DAMARU;Lo;0;L;;;;;N;;;;;
@@ -6388,6 +6400,52 @@
1C86;CYRILLIC SMALL LETTER TALL HARD SIGN;Ll;0;L;;;;;N;;;042A;;042A
1C87;CYRILLIC SMALL LETTER TALL YAT;Ll;0;L;;;;;N;;;0462;;0462
1C88;CYRILLIC SMALL LETTER UNBLENDED UK;Ll;0;L;;;;;N;;;A64A;;A64A
+1C90;GEORGIAN MTAVRULI CAPITAL LETTER AN;Lu;0;L;;;;;N;;;;10D0;
+1C91;GEORGIAN MTAVRULI CAPITAL LETTER BAN;Lu;0;L;;;;;N;;;;10D1;
+1C92;GEORGIAN MTAVRULI CAPITAL LETTER GAN;Lu;0;L;;;;;N;;;;10D2;
+1C93;GEORGIAN MTAVRULI CAPITAL LETTER DON;Lu;0;L;;;;;N;;;;10D3;
+1C94;GEORGIAN MTAVRULI CAPITAL LETTER EN;Lu;0;L;;;;;N;;;;10D4;
+1C95;GEORGIAN MTAVRULI CAPITAL LETTER VIN;Lu;0;L;;;;;N;;;;10D5;
+1C96;GEORGIAN MTAVRULI CAPITAL LETTER ZEN;Lu;0;L;;;;;N;;;;10D6;
+1C97;GEORGIAN MTAVRULI CAPITAL LETTER TAN;Lu;0;L;;;;;N;;;;10D7;
+1C98;GEORGIAN MTAVRULI CAPITAL LETTER IN;Lu;0;L;;;;;N;;;;10D8;
+1C99;GEORGIAN MTAVRULI CAPITAL LETTER KAN;Lu;0;L;;;;;N;;;;10D9;
+1C9A;GEORGIAN MTAVRULI CAPITAL LETTER LAS;Lu;0;L;;;;;N;;;;10DA;
+1C9B;GEORGIAN MTAVRULI CAPITAL LETTER MAN;Lu;0;L;;;;;N;;;;10DB;
+1C9C;GEORGIAN MTAVRULI CAPITAL LETTER NAR;Lu;0;L;;;;;N;;;;10DC;
+1C9D;GEORGIAN MTAVRULI CAPITAL LETTER ON;Lu;0;L;;;;;N;;;;10DD;
+1C9E;GEORGIAN MTAVRULI CAPITAL LETTER PAR;Lu;0;L;;;;;N;;;;10DE;
+1C9F;GEORGIAN MTAVRULI CAPITAL LETTER ZHAR;Lu;0;L;;;;;N;;;;10DF;
+1CA0;GEORGIAN MTAVRULI CAPITAL LETTER RAE;Lu;0;L;;;;;N;;;;10E0;
+1CA1;GEORGIAN MTAVRULI CAPITAL LETTER SAN;Lu;0;L;;;;;N;;;;10E1;
+1CA2;GEORGIAN MTAVRULI CAPITAL LETTER TAR;Lu;0;L;;;;;N;;;;10E2;
+1CA3;GEORGIAN MTAVRULI CAPITAL LETTER UN;Lu;0;L;;;;;N;;;;10E3;
+1CA4;GEORGIAN MTAVRULI CAPITAL LETTER PHAR;Lu;0;L;;;;;N;;;;10E4;
+1CA5;GEORGIAN MTAVRULI CAPITAL LETTER KHAR;Lu;0;L;;;;;N;;;;10E5;
+1CA6;GEORGIAN MTAVRULI CAPITAL LETTER GHAN;Lu;0;L;;;;;N;;;;10E6;
+1CA7;GEORGIAN MTAVRULI CAPITAL LETTER QAR;Lu;0;L;;;;;N;;;;10E7;
+1CA8;GEORGIAN MTAVRULI CAPITAL LETTER SHIN;Lu;0;L;;;;;N;;;;10E8;
+1CA9;GEORGIAN MTAVRULI CAPITAL LETTER CHIN;Lu;0;L;;;;;N;;;;10E9;
+1CAA;GEORGIAN MTAVRULI CAPITAL LETTER CAN;Lu;0;L;;;;;N;;;;10EA;
+1CAB;GEORGIAN MTAVRULI CAPITAL LETTER JIL;Lu;0;L;;;;;N;;;;10EB;
+1CAC;GEORGIAN MTAVRULI CAPITAL LETTER CIL;Lu;0;L;;;;;N;;;;10EC;
+1CAD;GEORGIAN MTAVRULI CAPITAL LETTER CHAR;Lu;0;L;;;;;N;;;;10ED;
+1CAE;GEORGIAN MTAVRULI CAPITAL LETTER XAN;Lu;0;L;;;;;N;;;;10EE;
+1CAF;GEORGIAN MTAVRULI CAPITAL LETTER JHAN;Lu;0;L;;;;;N;;;;10EF;
+1CB0;GEORGIAN MTAVRULI CAPITAL LETTER HAE;Lu;0;L;;;;;N;;;;10F0;
+1CB1;GEORGIAN MTAVRULI CAPITAL LETTER HE;Lu;0;L;;;;;N;;;;10F1;
+1CB2;GEORGIAN MTAVRULI CAPITAL LETTER HIE;Lu;0;L;;;;;N;;;;10F2;
+1CB3;GEORGIAN MTAVRULI CAPITAL LETTER WE;Lu;0;L;;;;;N;;;;10F3;
+1CB4;GEORGIAN MTAVRULI CAPITAL LETTER HAR;Lu;0;L;;;;;N;;;;10F4;
+1CB5;GEORGIAN MTAVRULI CAPITAL LETTER HOE;Lu;0;L;;;;;N;;;;10F5;
+1CB6;GEORGIAN MTAVRULI CAPITAL LETTER FI;Lu;0;L;;;;;N;;;;10F6;
+1CB7;GEORGIAN MTAVRULI CAPITAL LETTER YN;Lu;0;L;;;;;N;;;;10F7;
+1CB8;GEORGIAN MTAVRULI CAPITAL LETTER ELIFI;Lu;0;L;;;;;N;;;;10F8;
+1CB9;GEORGIAN MTAVRULI CAPITAL LETTER TURNED GAN;Lu;0;L;;;;;N;;;;10F9;
+1CBA;GEORGIAN MTAVRULI CAPITAL LETTER AIN;Lu;0;L;;;;;N;;;;10FA;
+1CBD;GEORGIAN MTAVRULI CAPITAL LETTER AEN;Lu;0;L;;;;;N;;;;10FD;
+1CBE;GEORGIAN MTAVRULI CAPITAL LETTER HARD SIGN;Lu;0;L;;;;;N;;;;10FE;
+1CBF;GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN;Lu;0;L;;;;;N;;;;10FF;
1CC0;SUNDANESE PUNCTUATION BINDU SURYA;Po;0;L;;;;;N;;;;;
1CC1;SUNDANESE PUNCTUATION BINDU PANGLONG;Po;0;L;;;;;N;;;;;
1CC2;SUNDANESE PUNCTUATION BINDU PURNAMA;Po;0;L;;;;;N;;;;;
@@ -9559,7 +9617,7 @@
299E;ANGLE WITH S INSIDE;Sm;0;ON;;;;;Y;;;;;
299F;ACUTE ANGLE;Sm;0;ON;;;;;Y;;;;;
29A0;SPHERICAL ANGLE OPENING LEFT;Sm;0;ON;;;;;Y;;;;;
-29A1;SPHERICAL ANGLE OPENING UP;Sm;0;ON;;;;;Y;;;;;
+29A1;SPHERICAL ANGLE OPENING UP;Sm;0;ON;;;;;N;;;;;
29A2;TURNED ANGLE;Sm;0;ON;;;;;Y;;;;;
29A3;REVERSED ANGLE;Sm;0;ON;;;;;Y;;;;;
29A4;ANGLE WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;;
@@ -10092,6 +10150,9 @@
2BB7;RIBBON ARROW RIGHT DOWN;So;0;ON;;;;;N;;;;;
2BB8;UPWARDS WHITE ARROW FROM BAR WITH HORIZONTAL BAR;So;0;ON;;;;;N;;;;;
2BB9;UP ARROWHEAD IN A RECTANGLE BOX;So;0;ON;;;;;N;;;;;
+2BBA;OVERLAPPING WHITE SQUARES;So;0;ON;;;;;N;;;;;
+2BBB;OVERLAPPING WHITE AND BLACK SQUARES;So;0;ON;;;;;N;;;;;
+2BBC;OVERLAPPING BLACK SQUARES;So;0;ON;;;;;N;;;;;
2BBD;BALLOT BOX WITH LIGHT X;So;0;ON;;;;;N;;;;;
2BBE;CIRCLED X;So;0;ON;;;;;N;;;;;
2BBF;CIRCLED BOLD X;So;0;ON;;;;;N;;;;;
@@ -10113,10 +10174,50 @@
2BD0;SQUARE POSITION INDICATOR;So;0;ON;;;;;N;;;;;
2BD1;UNCERTAINTY SIGN;So;0;ON;;;;;N;;;;;
2BD2;GROUP MARK;So;0;ON;;;;;N;;;;;
+2BD3;PLUTO FORM TWO;So;0;ON;;;;;N;;;;;
+2BD4;PLUTO FORM THREE;So;0;ON;;;;;N;;;;;
+2BD5;PLUTO FORM FOUR;So;0;ON;;;;;N;;;;;
+2BD6;PLUTO FORM FIVE;So;0;ON;;;;;N;;;;;
+2BD7;TRANSPLUTO;So;0;ON;;;;;N;;;;;
+2BD8;PROSERPINA;So;0;ON;;;;;N;;;;;
+2BD9;ASTRAEA;So;0;ON;;;;;N;;;;;
+2BDA;HYGIEA;So;0;ON;;;;;N;;;;;
+2BDB;PHOLUS;So;0;ON;;;;;N;;;;;
+2BDC;NESSUS;So;0;ON;;;;;N;;;;;
+2BDD;WHITE MOON SELENA;So;0;ON;;;;;N;;;;;
+2BDE;BLACK DIAMOND ON CROSS;So;0;ON;;;;;N;;;;;
+2BDF;TRUE LIGHT MOON ARTA;So;0;ON;;;;;N;;;;;
+2BE0;CUPIDO;So;0;ON;;;;;N;;;;;
+2BE1;HADES;So;0;ON;;;;;N;;;;;
+2BE2;ZEUS;So;0;ON;;;;;N;;;;;
+2BE3;KRONOS;So;0;ON;;;;;N;;;;;
+2BE4;APOLLON;So;0;ON;;;;;N;;;;;
+2BE5;ADMETOS;So;0;ON;;;;;N;;;;;
+2BE6;VULCANUS;So;0;ON;;;;;N;;;;;
+2BE7;POSEIDON;So;0;ON;;;;;N;;;;;
+2BE8;LEFT HALF BLACK STAR;So;0;ON;;;;;N;;;;;
+2BE9;RIGHT HALF BLACK STAR;So;0;ON;;;;;N;;;;;
+2BEA;STAR WITH LEFT HALF BLACK;So;0;ON;;;;;N;;;;;
+2BEB;STAR WITH RIGHT HALF BLACK;So;0;ON;;;;;N;;;;;
2BEC;LEFTWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS;So;0;ON;;;;;N;;;;;
2BED;UPWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS;So;0;ON;;;;;N;;;;;
2BEE;RIGHTWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS;So;0;ON;;;;;N;;;;;
2BEF;DOWNWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS;So;0;ON;;;;;N;;;;;
+2BF0;ERIS FORM ONE;So;0;ON;;;;;N;;;;;
+2BF1;ERIS FORM TWO;So;0;ON;;;;;N;;;;;
+2BF2;SEDNA;So;0;ON;;;;;N;;;;;
+2BF3;RUSSIAN ASTROLOGICAL SYMBOL VIGINTILE;So;0;ON;;;;;N;;;;;
+2BF4;RUSSIAN ASTROLOGICAL SYMBOL NOVILE;So;0;ON;;;;;N;;;;;
+2BF5;RUSSIAN ASTROLOGICAL SYMBOL QUINTILE;So;0;ON;;;;;N;;;;;
+2BF6;RUSSIAN ASTROLOGICAL SYMBOL BINOVILE;So;0;ON;;;;;N;;;;;
+2BF7;RUSSIAN ASTROLOGICAL SYMBOL SENTAGON;So;0;ON;;;;;N;;;;;
+2BF8;RUSSIAN ASTROLOGICAL SYMBOL TREDECILE;So;0;ON;;;;;N;;;;;
+2BF9;EQUALS SIGN WITH INFINITY BELOW;So;0;ON;;;;;N;;;;;
+2BFA;UNITED SYMBOL;So;0;ON;;;;;N;;;;;
+2BFB;SEPARATED SYMBOL;So;0;ON;;;;;N;;;;;
+2BFC;DOUBLED SYMBOL;So;0;ON;;;;;N;;;;;
+2BFD;PASSED SYMBOL;So;0;ON;;;;;N;;;;;
+2BFE;REVERSED RIGHT ANGLE;So;0;ON;;;;;Y;;;;;
2C00;GLAGOLITIC CAPITAL LETTER AZU;Lu;0;L;;;;;N;;;;2C30;
2C01;GLAGOLITIC CAPITAL LETTER BUKY;Lu;0;L;;;;;N;;;;2C31;
2C02;GLAGOLITIC CAPITAL LETTER VEDE;Lu;0;L;;;;;N;;;;2C32;
@@ -10650,6 +10751,11 @@
2E47;LOW KAVYKA;Po;0;ON;;;;;N;;;;;
2E48;LOW KAVYKA WITH DOT;Po;0;ON;;;;;N;;;;;
2E49;DOUBLE STACKED COMMA;Po;0;ON;;;;;N;;;;;
+2E4A;DOTTED SOLIDUS;Po;0;ON;;;;;N;;;;;
+2E4B;TRIPLE DAGGER;Po;0;ON;;;;;N;;;;;
+2E4C;MEDIEVAL COMMA;Po;0;ON;;;;;N;;;;;
+2E4D;PARAGRAPHUS MARK;Po;0;ON;;;;;N;;;;;
+2E4E;PUNCTUS ELEVATUS MARK;Po;0;ON;;;;;N;;;;;
2E80;CJK RADICAL REPEAT;So;0;ON;;;;;N;;;;;
2E81;CJK RADICAL CLIFF;So;0;ON;;;;;N;;;;;
2E82;CJK RADICAL SECOND ONE;So;0;ON;;;;;N;;;;;
@@ -11286,6 +11392,7 @@
312C;BOPOMOFO LETTER GN;Lo;0;L;;;;;N;;;;;
312D;BOPOMOFO LETTER IH;Lo;0;L;;;;;N;;;;;
312E;BOPOMOFO LETTER O WITH DOT ABOVE;Lo;0;L;;;;;N;;;;;
+312F;BOPOMOFO LETTER NN;Lo;0;L;;;;;N;;;;;
3131;HANGUL LETTER KIYEOK;Lo;0;L;<compat> 1100;;;;N;HANGUL LETTER GIYEOG;;;;
3132;HANGUL LETTER SSANGKIYEOK;Lo;0;L;<compat> 1101;;;;N;HANGUL LETTER SSANG GIYEOG;;;;
3133;HANGUL LETTER KIYEOK-SIOS;Lo;0;L;<compat> 11AA;;;;N;HANGUL LETTER GIYEOG SIOS;;;;
@@ -12052,7 +12159,7 @@
4DFE;HEXAGRAM FOR AFTER COMPLETION;So;0;ON;;;;;N;;;;;
4DFF;HEXAGRAM FOR BEFORE COMPLETION;So;0;ON;;;;;N;;;;;
4E00;<CJK Ideograph, First>;Lo;0;L;;;;;N;;;;;
-9FEA;<CJK Ideograph, Last>;Lo;0;L;;;;;N;;;;;
+9FEF;<CJK Ideograph, Last>;Lo;0;L;;;;;N;;;;;
A000;YI SYLLABLE IT;Lo;0;L;;;;;N;;;;;
A001;YI SYLLABLE IX;Lo;0;L;;;;;N;;;;;
A002;YI SYLLABLE I;Lo;0;L;;;;;N;;;;;
@@ -13980,6 +14087,7 @@ A7AB;LATIN CAPITAL LETTER REVERSED OPEN E;Lu;0;L;;;;;N;;;;025C;
A7AC;LATIN CAPITAL LETTER SCRIPT G;Lu;0;L;;;;;N;;;;0261;
A7AD;LATIN CAPITAL LETTER L WITH BELT;Lu;0;L;;;;;N;;;;026C;
A7AE;LATIN CAPITAL LETTER SMALL CAPITAL I;Lu;0;L;;;;;N;;;;026A;
+A7AF;LATIN LETTER SMALL CAPITAL Q;Ll;0;L;;;;;N;;;;;
A7B0;LATIN CAPITAL LETTER TURNED K;Lu;0;L;;;;;N;;;;029E;
A7B1;LATIN CAPITAL LETTER TURNED T;Lu;0;L;;;;;N;;;;0287;
A7B2;LATIN CAPITAL LETTER J WITH CROSSED-TAIL;Lu;0;L;;;;;N;;;;029D;
@@ -13988,6 +14096,8 @@ A7B4;LATIN CAPITAL LETTER BETA;Lu;0;L;;;;;N;;;;A7B5;
A7B5;LATIN SMALL LETTER BETA;Ll;0;L;;;;;N;;;A7B4;;A7B4
A7B6;LATIN CAPITAL LETTER OMEGA;Lu;0;L;;;;;N;;;;A7B7;
A7B7;LATIN SMALL LETTER OMEGA;Ll;0;L;;;;;N;;;A7B6;;A7B6
+A7B8;LATIN CAPITAL LETTER U WITH STROKE;Lu;0;L;;;;;N;;;;A7B9;
+A7B9;LATIN SMALL LETTER U WITH STROKE;Ll;0;L;;;;;N;;;A7B8;;A7B8
A7F7;LATIN EPIGRAPHIC LETTER SIDEWAYS I;Lo;0;L;;;;;N;;;;;
A7F8;MODIFIER LETTER CAPITAL H WITH STROKE;Lm;0;L;<super> 0126;;;;N;;;;;
A7F9;MODIFIER LETTER SMALL LIGATURE OE;Lm;0;L;<super> 0153;;;;N;;;;;
@@ -14219,6 +14329,8 @@ A8FA;DEVANAGARI CARET;Po;0;L;;;;;N;;;;;
A8FB;DEVANAGARI HEADSTROKE;Lo;0;L;;;;;N;;;;;
A8FC;DEVANAGARI SIGN SIDDHAM;Po;0;L;;;;;N;;;;;
A8FD;DEVANAGARI JAIN OM;Lo;0;L;;;;;N;;;;;
+A8FE;DEVANAGARI LETTER AY;Lo;0;L;;;;;N;;;;;
+A8FF;DEVANAGARI VOWEL SIGN AY;Mn;0;NSM;;;;;N;;;;;
A900;KAYAH LI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
A901;KAYAH LI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
A902;KAYAH LI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
@@ -18363,6 +18475,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
10A31;KHAROSHTHI LETTER HA;Lo;0;R;;;;;N;;;;;
10A32;KHAROSHTHI LETTER KKA;Lo;0;R;;;;;N;;;;;
10A33;KHAROSHTHI LETTER TTTHA;Lo;0;R;;;;;N;;;;;
+10A34;KHAROSHTHI LETTER TTTA;Lo;0;R;;;;;N;;;;;
+10A35;KHAROSHTHI LETTER VHA;Lo;0;R;;;;;N;;;;;
10A38;KHAROSHTHI SIGN BAR ABOVE;Mn;230;NSM;;;;;N;;;;;
10A39;KHAROSHTHI SIGN CAUDA;Mn;1;NSM;;;;;N;;;;;
10A3A;KHAROSHTHI SIGN DOT BELOW;Mn;220;NSM;;;;;N;;;;;
@@ -18375,6 +18489,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
10A45;KHAROSHTHI NUMBER TWENTY;No;0;R;;;;20;N;;;;;
10A46;KHAROSHTHI NUMBER ONE HUNDRED;No;0;R;;;;100;N;;;;;
10A47;KHAROSHTHI NUMBER ONE THOUSAND;No;0;R;;;;1000;N;;;;;
+10A48;KHAROSHTHI FRACTION ONE HALF;No;0;R;;;;1/2;N;;;;;
10A50;KHAROSHTHI PUNCTUATION DOT;Po;0;R;;;;;N;;;;;
10A51;KHAROSHTHI PUNCTUATION SMALL CIRCLE;Po;0;R;;;;;N;;;;;
10A52;KHAROSHTHI PUNCTUATION CIRCLE;Po;0;R;;;;;N;;;;;
@@ -18827,6 +18942,56 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
10CFD;OLD HUNGARIAN NUMBER FIFTY;No;0;R;;;;50;N;;;;;
10CFE;OLD HUNGARIAN NUMBER ONE HUNDRED;No;0;R;;;;100;N;;;;;
10CFF;OLD HUNGARIAN NUMBER ONE THOUSAND;No;0;R;;;;1000;N;;;;;
+10D00;HANIFI ROHINGYA LETTER A;Lo;0;AL;;;;;N;;;;;
+10D01;HANIFI ROHINGYA LETTER BA;Lo;0;AL;;;;;N;;;;;
+10D02;HANIFI ROHINGYA LETTER PA;Lo;0;AL;;;;;N;;;;;
+10D03;HANIFI ROHINGYA LETTER TA;Lo;0;AL;;;;;N;;;;;
+10D04;HANIFI ROHINGYA LETTER TTA;Lo;0;AL;;;;;N;;;;;
+10D05;HANIFI ROHINGYA LETTER JA;Lo;0;AL;;;;;N;;;;;
+10D06;HANIFI ROHINGYA LETTER CA;Lo;0;AL;;;;;N;;;;;
+10D07;HANIFI ROHINGYA LETTER HA;Lo;0;AL;;;;;N;;;;;
+10D08;HANIFI ROHINGYA LETTER KHA;Lo;0;AL;;;;;N;;;;;
+10D09;HANIFI ROHINGYA LETTER FA;Lo;0;AL;;;;;N;;;;;
+10D0A;HANIFI ROHINGYA LETTER DA;Lo;0;AL;;;;;N;;;;;
+10D0B;HANIFI ROHINGYA LETTER DDA;Lo;0;AL;;;;;N;;;;;
+10D0C;HANIFI ROHINGYA LETTER RA;Lo;0;AL;;;;;N;;;;;
+10D0D;HANIFI ROHINGYA LETTER RRA;Lo;0;AL;;;;;N;;;;;
+10D0E;HANIFI ROHINGYA LETTER ZA;Lo;0;AL;;;;;N;;;;;
+10D0F;HANIFI ROHINGYA LETTER SA;Lo;0;AL;;;;;N;;;;;
+10D10;HANIFI ROHINGYA LETTER SHA;Lo;0;AL;;;;;N;;;;;
+10D11;HANIFI ROHINGYA LETTER KA;Lo;0;AL;;;;;N;;;;;
+10D12;HANIFI ROHINGYA LETTER GA;Lo;0;AL;;;;;N;;;;;
+10D13;HANIFI ROHINGYA LETTER LA;Lo;0;AL;;;;;N;;;;;
+10D14;HANIFI ROHINGYA LETTER MA;Lo;0;AL;;;;;N;;;;;
+10D15;HANIFI ROHINGYA LETTER NA;Lo;0;AL;;;;;N;;;;;
+10D16;HANIFI ROHINGYA LETTER WA;Lo;0;AL;;;;;N;;;;;
+10D17;HANIFI ROHINGYA LETTER KINNA WA;Lo;0;AL;;;;;N;;;;;
+10D18;HANIFI ROHINGYA LETTER YA;Lo;0;AL;;;;;N;;;;;
+10D19;HANIFI ROHINGYA LETTER KINNA YA;Lo;0;AL;;;;;N;;;;;
+10D1A;HANIFI ROHINGYA LETTER NGA;Lo;0;AL;;;;;N;;;;;
+10D1B;HANIFI ROHINGYA LETTER NYA;Lo;0;AL;;;;;N;;;;;
+10D1C;HANIFI ROHINGYA LETTER VA;Lo;0;AL;;;;;N;;;;;
+10D1D;HANIFI ROHINGYA VOWEL A;Lo;0;AL;;;;;N;;;;;
+10D1E;HANIFI ROHINGYA VOWEL I;Lo;0;AL;;;;;N;;;;;
+10D1F;HANIFI ROHINGYA VOWEL U;Lo;0;AL;;;;;N;;;;;
+10D20;HANIFI ROHINGYA VOWEL E;Lo;0;AL;;;;;N;;;;;
+10D21;HANIFI ROHINGYA VOWEL O;Lo;0;AL;;;;;N;;;;;
+10D22;HANIFI ROHINGYA MARK SAKIN;Lo;0;AL;;;;;N;;;;;
+10D23;HANIFI ROHINGYA MARK NA KHONNA;Lo;0;AL;;;;;N;;;;;
+10D24;HANIFI ROHINGYA SIGN HARBAHAY;Mn;230;NSM;;;;;N;;;;;
+10D25;HANIFI ROHINGYA SIGN TAHALA;Mn;230;NSM;;;;;N;;;;;
+10D26;HANIFI ROHINGYA SIGN TANA;Mn;230;NSM;;;;;N;;;;;
+10D27;HANIFI ROHINGYA SIGN TASSI;Mn;230;NSM;;;;;N;;;;;
+10D30;HANIFI ROHINGYA DIGIT ZERO;Nd;0;AN;;0;0;0;N;;;;;
+10D31;HANIFI ROHINGYA DIGIT ONE;Nd;0;AN;;1;1;1;N;;;;;
+10D32;HANIFI ROHINGYA DIGIT TWO;Nd;0;AN;;2;2;2;N;;;;;
+10D33;HANIFI ROHINGYA DIGIT THREE;Nd;0;AN;;3;3;3;N;;;;;
+10D34;HANIFI ROHINGYA DIGIT FOUR;Nd;0;AN;;4;4;4;N;;;;;
+10D35;HANIFI ROHINGYA DIGIT FIVE;Nd;0;AN;;5;5;5;N;;;;;
+10D36;HANIFI ROHINGYA DIGIT SIX;Nd;0;AN;;6;6;6;N;;;;;
+10D37;HANIFI ROHINGYA DIGIT SEVEN;Nd;0;AN;;7;7;7;N;;;;;
+10D38;HANIFI ROHINGYA DIGIT EIGHT;Nd;0;AN;;8;8;8;N;;;;;
+10D39;HANIFI ROHINGYA DIGIT NINE;Nd;0;AN;;9;9;9;N;;;;;
10E60;RUMI DIGIT ONE;No;0;AN;;;1;1;N;;;;;
10E61;RUMI DIGIT TWO;No;0;AN;;;2;2;N;;;;;
10E62;RUMI DIGIT THREE;No;0;AN;;;3;3;N;;;;;
@@ -18858,6 +19023,88 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
10E7C;RUMI FRACTION ONE QUARTER;No;0;AN;;;;1/4;N;;;;;
10E7D;RUMI FRACTION ONE THIRD;No;0;AN;;;;1/3;N;;;;;
10E7E;RUMI FRACTION TWO THIRDS;No;0;AN;;;;2/3;N;;;;;
+10F00;OLD SOGDIAN LETTER ALEPH;Lo;0;R;;;;;N;;;;;
+10F01;OLD SOGDIAN LETTER FINAL ALEPH;Lo;0;R;;;;;N;;;;;
+10F02;OLD SOGDIAN LETTER BETH;Lo;0;R;;;;;N;;;;;
+10F03;OLD SOGDIAN LETTER FINAL BETH;Lo;0;R;;;;;N;;;;;
+10F04;OLD SOGDIAN LETTER GIMEL;Lo;0;R;;;;;N;;;;;
+10F05;OLD SOGDIAN LETTER HE;Lo;0;R;;;;;N;;;;;
+10F06;OLD SOGDIAN LETTER FINAL HE;Lo;0;R;;;;;N;;;;;
+10F07;OLD SOGDIAN LETTER WAW;Lo;0;R;;;;;N;;;;;
+10F08;OLD SOGDIAN LETTER ZAYIN;Lo;0;R;;;;;N;;;;;
+10F09;OLD SOGDIAN LETTER HETH;Lo;0;R;;;;;N;;;;;
+10F0A;OLD SOGDIAN LETTER YODH;Lo;0;R;;;;;N;;;;;
+10F0B;OLD SOGDIAN LETTER KAPH;Lo;0;R;;;;;N;;;;;
+10F0C;OLD SOGDIAN LETTER LAMEDH;Lo;0;R;;;;;N;;;;;
+10F0D;OLD SOGDIAN LETTER MEM;Lo;0;R;;;;;N;;;;;
+10F0E;OLD SOGDIAN LETTER NUN;Lo;0;R;;;;;N;;;;;
+10F0F;OLD SOGDIAN LETTER FINAL NUN;Lo;0;R;;;;;N;;;;;
+10F10;OLD SOGDIAN LETTER FINAL NUN WITH VERTICAL TAIL;Lo;0;R;;;;;N;;;;;
+10F11;OLD SOGDIAN LETTER SAMEKH;Lo;0;R;;;;;N;;;;;
+10F12;OLD SOGDIAN LETTER AYIN;Lo;0;R;;;;;N;;;;;
+10F13;OLD SOGDIAN LETTER ALTERNATE AYIN;Lo;0;R;;;;;N;;;;;
+10F14;OLD SOGDIAN LETTER PE;Lo;0;R;;;;;N;;;;;
+10F15;OLD SOGDIAN LETTER SADHE;Lo;0;R;;;;;N;;;;;
+10F16;OLD SOGDIAN LETTER FINAL SADHE;Lo;0;R;;;;;N;;;;;
+10F17;OLD SOGDIAN LETTER FINAL SADHE WITH VERTICAL TAIL;Lo;0;R;;;;;N;;;;;
+10F18;OLD SOGDIAN LETTER RESH-AYIN-DALETH;Lo;0;R;;;;;N;;;;;
+10F19;OLD SOGDIAN LETTER SHIN;Lo;0;R;;;;;N;;;;;
+10F1A;OLD SOGDIAN LETTER TAW;Lo;0;R;;;;;N;;;;;
+10F1B;OLD SOGDIAN LETTER FINAL TAW;Lo;0;R;;;;;N;;;;;
+10F1C;OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL;Lo;0;R;;;;;N;;;;;
+10F1D;OLD SOGDIAN NUMBER ONE;No;0;R;;;;1;N;;;;;
+10F1E;OLD SOGDIAN NUMBER TWO;No;0;R;;;;2;N;;;;;
+10F1F;OLD SOGDIAN NUMBER THREE;No;0;R;;;;3;N;;;;;
+10F20;OLD SOGDIAN NUMBER FOUR;No;0;R;;;;4;N;;;;;
+10F21;OLD SOGDIAN NUMBER FIVE;No;0;R;;;;5;N;;;;;
+10F22;OLD SOGDIAN NUMBER TEN;No;0;R;;;;10;N;;;;;
+10F23;OLD SOGDIAN NUMBER TWENTY;No;0;R;;;;20;N;;;;;
+10F24;OLD SOGDIAN NUMBER THIRTY;No;0;R;;;;30;N;;;;;
+10F25;OLD SOGDIAN NUMBER ONE HUNDRED;No;0;R;;;;100;N;;;;;
+10F26;OLD SOGDIAN FRACTION ONE HALF;No;0;R;;;;1/2;N;;;;;
+10F27;OLD SOGDIAN LIGATURE AYIN-DALETH;Lo;0;R;;;;;N;;;;;
+10F30;SOGDIAN LETTER ALEPH;Lo;0;AL;;;;;N;;;;;
+10F31;SOGDIAN LETTER BETH;Lo;0;AL;;;;;N;;;;;
+10F32;SOGDIAN LETTER GIMEL;Lo;0;AL;;;;;N;;;;;
+10F33;SOGDIAN LETTER HE;Lo;0;AL;;;;;N;;;;;
+10F34;SOGDIAN LETTER WAW;Lo;0;AL;;;;;N;;;;;
+10F35;SOGDIAN LETTER ZAYIN;Lo;0;AL;;;;;N;;;;;
+10F36;SOGDIAN LETTER HETH;Lo;0;AL;;;;;N;;;;;
+10F37;SOGDIAN LETTER YODH;Lo;0;AL;;;;;N;;;;;
+10F38;SOGDIAN LETTER KAPH;Lo;0;AL;;;;;N;;;;;
+10F39;SOGDIAN LETTER LAMEDH;Lo;0;AL;;;;;N;;;;;
+10F3A;SOGDIAN LETTER MEM;Lo;0;AL;;;;;N;;;;;
+10F3B;SOGDIAN LETTER NUN;Lo;0;AL;;;;;N;;;;;
+10F3C;SOGDIAN LETTER SAMEKH;Lo;0;AL;;;;;N;;;;;
+10F3D;SOGDIAN LETTER AYIN;Lo;0;AL;;;;;N;;;;;
+10F3E;SOGDIAN LETTER PE;Lo;0;AL;;;;;N;;;;;
+10F3F;SOGDIAN LETTER SADHE;Lo;0;AL;;;;;N;;;;;
+10F40;SOGDIAN LETTER RESH-AYIN;Lo;0;AL;;;;;N;;;;;
+10F41;SOGDIAN LETTER SHIN;Lo;0;AL;;;;;N;;;;;
+10F42;SOGDIAN LETTER TAW;Lo;0;AL;;;;;N;;;;;
+10F43;SOGDIAN LETTER FETH;Lo;0;AL;;;;;N;;;;;
+10F44;SOGDIAN LETTER LESH;Lo;0;AL;;;;;N;;;;;
+10F45;SOGDIAN INDEPENDENT SHIN;Lo;0;AL;;;;;N;;;;;
+10F46;SOGDIAN COMBINING DOT BELOW;Mn;220;NSM;;;;;N;;;;;
+10F47;SOGDIAN COMBINING TWO DOTS BELOW;Mn;220;NSM;;;;;N;;;;;
+10F48;SOGDIAN COMBINING DOT ABOVE;Mn;230;NSM;;;;;N;;;;;
+10F49;SOGDIAN COMBINING TWO DOTS ABOVE;Mn;230;NSM;;;;;N;;;;;
+10F4A;SOGDIAN COMBINING CURVE ABOVE;Mn;230;NSM;;;;;N;;;;;
+10F4B;SOGDIAN COMBINING CURVE BELOW;Mn;220;NSM;;;;;N;;;;;
+10F4C;SOGDIAN COMBINING HOOK ABOVE;Mn;230;NSM;;;;;N;;;;;
+10F4D;SOGDIAN COMBINING HOOK BELOW;Mn;220;NSM;;;;;N;;;;;
+10F4E;SOGDIAN COMBINING LONG HOOK BELOW;Mn;220;NSM;;;;;N;;;;;
+10F4F;SOGDIAN COMBINING RESH BELOW;Mn;220;NSM;;;;;N;;;;;
+10F50;SOGDIAN COMBINING STROKE BELOW;Mn;220;NSM;;;;;N;;;;;
+10F51;SOGDIAN NUMBER ONE;No;0;AL;;;;1;N;;;;;
+10F52;SOGDIAN NUMBER TEN;No;0;AL;;;;10;N;;;;;
+10F53;SOGDIAN NUMBER TWENTY;No;0;AL;;;;20;N;;;;;
+10F54;SOGDIAN NUMBER ONE HUNDRED;No;0;AL;;;;100;N;;;;;
+10F55;SOGDIAN PUNCTUATION TWO VERTICAL BARS;Po;0;AL;;;;;N;;;;;
+10F56;SOGDIAN PUNCTUATION TWO VERTICAL BARS WITH DOTS;Po;0;AL;;;;;N;;;;;
+10F57;SOGDIAN PUNCTUATION CIRCLE WITH DOT;Po;0;AL;;;;;N;;;;;
+10F58;SOGDIAN PUNCTUATION TWO CIRCLES WITH DOTS;Po;0;AL;;;;;N;;;;;
+10F59;SOGDIAN PUNCTUATION HALF CIRCLE WITH DOT;Po;0;AL;;;;;N;;;;;
11000;BRAHMI SIGN CANDRABINDU;Mc;0;L;;;;;N;;;;;
11001;BRAHMI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
11002;BRAHMI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
@@ -19033,6 +19280,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
110BF;KAITHI DOUBLE SECTION MARK;Po;0;L;;;;;N;;;;;
110C0;KAITHI DANDA;Po;0;L;;;;;N;;;;;
110C1;KAITHI DOUBLE DANDA;Po;0;L;;;;;N;;;;;
+110CD;KAITHI NUMBER SIGN ABOVE;Cf;0;L;;;;;N;;;;;
110D0;SORA SOMPENG LETTER SAH;Lo;0;L;;;;;N;;;;;
110D1;SORA SOMPENG LETTER TAH;Lo;0;L;;;;;N;;;;;
110D2;SORA SOMPENG LETTER BAH;Lo;0;L;;;;;N;;;;;
@@ -19135,6 +19383,9 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
11141;CHAKMA DANDA;Po;0;L;;;;;N;;;;;
11142;CHAKMA DOUBLE DANDA;Po;0;L;;;;;N;;;;;
11143;CHAKMA QUESTION MARK;Po;0;L;;;;;N;;;;;
+11144;CHAKMA LETTER LHAA;Lo;0;L;;;;;N;;;;;
+11145;CHAKMA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+11146;CHAKMA VOWEL SIGN EI;Mc;0;L;;;;;N;;;;;
11150;MAHAJANI LETTER A;Lo;0;L;;;;;N;;;;;
11151;MAHAJANI LETTER I;Lo;0;L;;;;;N;;;;;
11152;MAHAJANI LETTER U;Lo;0;L;;;;;N;;;;;
@@ -19247,7 +19498,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
111C6;SHARADA DOUBLE DANDA;Po;0;L;;;;;N;;;;;
111C7;SHARADA ABBREVIATION SIGN;Po;0;L;;;;;N;;;;;
111C8;SHARADA SEPARATOR;Po;0;L;;;;;N;;;;;
-111C9;SHARADA SANDHI MARK;Po;0;L;;;;;N;;;;;
+111C9;SHARADA SANDHI MARK;Mn;0;NSM;;;;;N;;;;;
111CA;SHARADA SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
111CB;SHARADA VOWEL MODIFIER MARK;Mn;0;NSM;;;;;N;;;;;
111CC;SHARADA EXTRA SHORT VOWEL MARK;Mn;0;NSM;;;;;N;;;;;
@@ -19507,6 +19758,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
11337;GRANTHA LETTER SSA;Lo;0;L;;;;;N;;;;;
11338;GRANTHA LETTER SA;Lo;0;L;;;;;N;;;;;
11339;GRANTHA LETTER HA;Lo;0;L;;;;;N;;;;;
+1133B;COMBINING BINDU BELOW;Mn;7;NSM;;;;;N;;;;;
1133C;GRANTHA SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
1133D;GRANTHA SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
1133E;GRANTHA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
@@ -19634,6 +19886,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
11459;NEWA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
1145B;NEWA PLACEHOLDER MARK;Po;0;L;;;;;N;;;;;
1145D;NEWA INSERTION SIGN;Po;0;L;;;;;N;;;;;
+1145E;NEWA SANDHI MARK;Mn;230;NSM;;;;;N;;;;;
11480;TIRHUTA ANJI;Lo;0;L;;;;;N;;;;;
11481;TIRHUTA LETTER A;Lo;0;L;;;;;N;;;;;
11482;TIRHUTA LETTER AA;Lo;0;L;;;;;N;;;;;
@@ -19992,6 +20245,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
11717;AHOM LETTER GHA;Lo;0;L;;;;;N;;;;;
11718;AHOM LETTER BHA;Lo;0;L;;;;;N;;;;;
11719;AHOM LETTER JHA;Lo;0;L;;;;;N;;;;;
+1171A;AHOM LETTER ALTERNATE BA;Lo;0;L;;;;;N;;;;;
1171D;AHOM CONSONANT SIGN MEDIAL LA;Mn;0;NSM;;;;;N;;;;;
1171E;AHOM CONSONANT SIGN MEDIAL RA;Mn;0;NSM;;;;;N;;;;;
1171F;AHOM CONSONANT SIGN MEDIAL LIGATING RA;Mn;0;NSM;;;;;N;;;;;
@@ -20023,6 +20277,66 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1173D;AHOM SIGN SECTION;Po;0;L;;;;;N;;;;;
1173E;AHOM SIGN RULAI;Po;0;L;;;;;N;;;;;
1173F;AHOM SYMBOL VI;So;0;L;;;;;N;;;;;
+11800;DOGRA LETTER A;Lo;0;L;;;;;N;;;;;
+11801;DOGRA LETTER AA;Lo;0;L;;;;;N;;;;;
+11802;DOGRA LETTER I;Lo;0;L;;;;;N;;;;;
+11803;DOGRA LETTER II;Lo;0;L;;;;;N;;;;;
+11804;DOGRA LETTER U;Lo;0;L;;;;;N;;;;;
+11805;DOGRA LETTER UU;Lo;0;L;;;;;N;;;;;
+11806;DOGRA LETTER E;Lo;0;L;;;;;N;;;;;
+11807;DOGRA LETTER AI;Lo;0;L;;;;;N;;;;;
+11808;DOGRA LETTER O;Lo;0;L;;;;;N;;;;;
+11809;DOGRA LETTER AU;Lo;0;L;;;;;N;;;;;
+1180A;DOGRA LETTER KA;Lo;0;L;;;;;N;;;;;
+1180B;DOGRA LETTER KHA;Lo;0;L;;;;;N;;;;;
+1180C;DOGRA LETTER GA;Lo;0;L;;;;;N;;;;;
+1180D;DOGRA LETTER GHA;Lo;0;L;;;;;N;;;;;
+1180E;DOGRA LETTER NGA;Lo;0;L;;;;;N;;;;;
+1180F;DOGRA LETTER CA;Lo;0;L;;;;;N;;;;;
+11810;DOGRA LETTER CHA;Lo;0;L;;;;;N;;;;;
+11811;DOGRA LETTER JA;Lo;0;L;;;;;N;;;;;
+11812;DOGRA LETTER JHA;Lo;0;L;;;;;N;;;;;
+11813;DOGRA LETTER NYA;Lo;0;L;;;;;N;;;;;
+11814;DOGRA LETTER TTA;Lo;0;L;;;;;N;;;;;
+11815;DOGRA LETTER TTHA;Lo;0;L;;;;;N;;;;;
+11816;DOGRA LETTER DDA;Lo;0;L;;;;;N;;;;;
+11817;DOGRA LETTER DDHA;Lo;0;L;;;;;N;;;;;
+11818;DOGRA LETTER NNA;Lo;0;L;;;;;N;;;;;
+11819;DOGRA LETTER TA;Lo;0;L;;;;;N;;;;;
+1181A;DOGRA LETTER THA;Lo;0;L;;;;;N;;;;;
+1181B;DOGRA LETTER DA;Lo;0;L;;;;;N;;;;;
+1181C;DOGRA LETTER DHA;Lo;0;L;;;;;N;;;;;
+1181D;DOGRA LETTER NA;Lo;0;L;;;;;N;;;;;
+1181E;DOGRA LETTER PA;Lo;0;L;;;;;N;;;;;
+1181F;DOGRA LETTER PHA;Lo;0;L;;;;;N;;;;;
+11820;DOGRA LETTER BA;Lo;0;L;;;;;N;;;;;
+11821;DOGRA LETTER BHA;Lo;0;L;;;;;N;;;;;
+11822;DOGRA LETTER MA;Lo;0;L;;;;;N;;;;;
+11823;DOGRA LETTER YA;Lo;0;L;;;;;N;;;;;
+11824;DOGRA LETTER RA;Lo;0;L;;;;;N;;;;;
+11825;DOGRA LETTER LA;Lo;0;L;;;;;N;;;;;
+11826;DOGRA LETTER VA;Lo;0;L;;;;;N;;;;;
+11827;DOGRA LETTER SHA;Lo;0;L;;;;;N;;;;;
+11828;DOGRA LETTER SSA;Lo;0;L;;;;;N;;;;;
+11829;DOGRA LETTER SA;Lo;0;L;;;;;N;;;;;
+1182A;DOGRA LETTER HA;Lo;0;L;;;;;N;;;;;
+1182B;DOGRA LETTER RRA;Lo;0;L;;;;;N;;;;;
+1182C;DOGRA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+1182D;DOGRA VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+1182E;DOGRA VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+1182F;DOGRA VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+11830;DOGRA VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+11831;DOGRA VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+11832;DOGRA VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;;
+11833;DOGRA VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
+11834;DOGRA VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
+11835;DOGRA VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;;
+11836;DOGRA VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;;
+11837;DOGRA SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+11838;DOGRA SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+11839;DOGRA SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+1183A;DOGRA SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+1183B;DOGRA ABBREVIATION SIGN;Po;0;L;;;;;N;;;;;
118A0;WARANG CITI CAPITAL LETTER NGAA;Lu;0;L;;;;;N;;;;118C0;
118A1;WARANG CITI CAPITAL LETTER A;Lu;0;L;;;;;N;;;;118C1;
118A2;WARANG CITI CAPITAL LETTER WI;Lu;0;L;;;;;N;;;;118C2;
@@ -20114,8 +20428,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
11A04;ZANABAZAR SQUARE VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
11A05;ZANABAZAR SQUARE VOWEL SIGN OE;Mn;0;NSM;;;;;N;;;;;
11A06;ZANABAZAR SQUARE VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;;
-11A07;ZANABAZAR SQUARE VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
-11A08;ZANABAZAR SQUARE VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
+11A07;ZANABAZAR SQUARE VOWEL SIGN AI;Mn;0;L;;;;;N;;;;;
+11A08;ZANABAZAR SQUARE VOWEL SIGN AU;Mn;0;L;;;;;N;;;;;
11A09;ZANABAZAR SQUARE VOWEL SIGN REVERSED I;Mn;0;NSM;;;;;N;;;;;
11A0A;ZANABAZAR SQUARE VOWEL LENGTH MARK;Mn;0;NSM;;;;;N;;;;;
11A0B;ZANABAZAR SQUARE LETTER KA;Lo;0;L;;;;;N;;;;;
@@ -20254,6 +20568,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
11A9A;SOYOMBO MARK TSHEG;Po;0;L;;;;;N;;;;;
11A9B;SOYOMBO MARK SHAD;Po;0;L;;;;;N;;;;;
11A9C;SOYOMBO MARK DOUBLE SHAD;Po;0;L;;;;;N;;;;;
+11A9D;SOYOMBO MARK PLUTA;Lo;0;L;;;;;N;;;;;
11A9E;SOYOMBO HEAD MARK WITH MOON AND SUN AND TRIPLE FLAME;Po;0;L;;;;;N;;;;;
11A9F;SOYOMBO HEAD MARK WITH MOON AND SUN AND FLAME;Po;0;L;;;;;N;;;;;
11AA0;SOYOMBO HEAD MARK WITH MOON AND SUN;Po;0;L;;;;;N;;;;;
@@ -20556,6 +20871,94 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
11D57;MASARAM GONDI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
11D58;MASARAM GONDI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
11D59;MASARAM GONDI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+11D60;GUNJALA GONDI LETTER A;Lo;0;L;;;;;N;;;;;
+11D61;GUNJALA GONDI LETTER AA;Lo;0;L;;;;;N;;;;;
+11D62;GUNJALA GONDI LETTER I;Lo;0;L;;;;;N;;;;;
+11D63;GUNJALA GONDI LETTER II;Lo;0;L;;;;;N;;;;;
+11D64;GUNJALA GONDI LETTER U;Lo;0;L;;;;;N;;;;;
+11D65;GUNJALA GONDI LETTER UU;Lo;0;L;;;;;N;;;;;
+11D67;GUNJALA GONDI LETTER EE;Lo;0;L;;;;;N;;;;;
+11D68;GUNJALA GONDI LETTER AI;Lo;0;L;;;;;N;;;;;
+11D6A;GUNJALA GONDI LETTER OO;Lo;0;L;;;;;N;;;;;
+11D6B;GUNJALA GONDI LETTER AU;Lo;0;L;;;;;N;;;;;
+11D6C;GUNJALA GONDI LETTER YA;Lo;0;L;;;;;N;;;;;
+11D6D;GUNJALA GONDI LETTER VA;Lo;0;L;;;;;N;;;;;
+11D6E;GUNJALA GONDI LETTER BA;Lo;0;L;;;;;N;;;;;
+11D6F;GUNJALA GONDI LETTER BHA;Lo;0;L;;;;;N;;;;;
+11D70;GUNJALA GONDI LETTER MA;Lo;0;L;;;;;N;;;;;
+11D71;GUNJALA GONDI LETTER KA;Lo;0;L;;;;;N;;;;;
+11D72;GUNJALA GONDI LETTER KHA;Lo;0;L;;;;;N;;;;;
+11D73;GUNJALA GONDI LETTER TA;Lo;0;L;;;;;N;;;;;
+11D74;GUNJALA GONDI LETTER THA;Lo;0;L;;;;;N;;;;;
+11D75;GUNJALA GONDI LETTER LA;Lo;0;L;;;;;N;;;;;
+11D76;GUNJALA GONDI LETTER GA;Lo;0;L;;;;;N;;;;;
+11D77;GUNJALA GONDI LETTER GHA;Lo;0;L;;;;;N;;;;;
+11D78;GUNJALA GONDI LETTER DA;Lo;0;L;;;;;N;;;;;
+11D79;GUNJALA GONDI LETTER DHA;Lo;0;L;;;;;N;;;;;
+11D7A;GUNJALA GONDI LETTER NA;Lo;0;L;;;;;N;;;;;
+11D7B;GUNJALA GONDI LETTER CA;Lo;0;L;;;;;N;;;;;
+11D7C;GUNJALA GONDI LETTER CHA;Lo;0;L;;;;;N;;;;;
+11D7D;GUNJALA GONDI LETTER TTA;Lo;0;L;;;;;N;;;;;
+11D7E;GUNJALA GONDI LETTER TTHA;Lo;0;L;;;;;N;;;;;
+11D7F;GUNJALA GONDI LETTER LLA;Lo;0;L;;;;;N;;;;;
+11D80;GUNJALA GONDI LETTER JA;Lo;0;L;;;;;N;;;;;
+11D81;GUNJALA GONDI LETTER JHA;Lo;0;L;;;;;N;;;;;
+11D82;GUNJALA GONDI LETTER DDA;Lo;0;L;;;;;N;;;;;
+11D83;GUNJALA GONDI LETTER DDHA;Lo;0;L;;;;;N;;;;;
+11D84;GUNJALA GONDI LETTER NGA;Lo;0;L;;;;;N;;;;;
+11D85;GUNJALA GONDI LETTER PA;Lo;0;L;;;;;N;;;;;
+11D86;GUNJALA GONDI LETTER PHA;Lo;0;L;;;;;N;;;;;
+11D87;GUNJALA GONDI LETTER HA;Lo;0;L;;;;;N;;;;;
+11D88;GUNJALA GONDI LETTER RA;Lo;0;L;;;;;N;;;;;
+11D89;GUNJALA GONDI LETTER SA;Lo;0;L;;;;;N;;;;;
+11D8A;GUNJALA GONDI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+11D8B;GUNJALA GONDI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+11D8C;GUNJALA GONDI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+11D8D;GUNJALA GONDI VOWEL SIGN U;Mc;0;L;;;;;N;;;;;
+11D8E;GUNJALA GONDI VOWEL SIGN UU;Mc;0;L;;;;;N;;;;;
+11D90;GUNJALA GONDI VOWEL SIGN EE;Mn;0;NSM;;;;;N;;;;;
+11D91;GUNJALA GONDI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
+11D93;GUNJALA GONDI VOWEL SIGN OO;Mc;0;L;;;;;N;;;;;
+11D94;GUNJALA GONDI VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
+11D95;GUNJALA GONDI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+11D96;GUNJALA GONDI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+11D97;GUNJALA GONDI VIRAMA;Mn;9;NSM;;;;;N;;;;;
+11D98;GUNJALA GONDI OM;Lo;0;L;;;;;N;;;;;
+11DA0;GUNJALA GONDI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+11DA1;GUNJALA GONDI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+11DA2;GUNJALA GONDI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+11DA3;GUNJALA GONDI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+11DA4;GUNJALA GONDI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+11DA5;GUNJALA GONDI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+11DA6;GUNJALA GONDI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+11DA7;GUNJALA GONDI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+11DA8;GUNJALA GONDI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+11DA9;GUNJALA GONDI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+11EE0;MAKASAR LETTER KA;Lo;0;L;;;;;N;;;;;
+11EE1;MAKASAR LETTER GA;Lo;0;L;;;;;N;;;;;
+11EE2;MAKASAR LETTER NGA;Lo;0;L;;;;;N;;;;;
+11EE3;MAKASAR LETTER PA;Lo;0;L;;;;;N;;;;;
+11EE4;MAKASAR LETTER BA;Lo;0;L;;;;;N;;;;;
+11EE5;MAKASAR LETTER MA;Lo;0;L;;;;;N;;;;;
+11EE6;MAKASAR LETTER TA;Lo;0;L;;;;;N;;;;;
+11EE7;MAKASAR LETTER DA;Lo;0;L;;;;;N;;;;;
+11EE8;MAKASAR LETTER NA;Lo;0;L;;;;;N;;;;;
+11EE9;MAKASAR LETTER CA;Lo;0;L;;;;;N;;;;;
+11EEA;MAKASAR LETTER JA;Lo;0;L;;;;;N;;;;;
+11EEB;MAKASAR LETTER NYA;Lo;0;L;;;;;N;;;;;
+11EEC;MAKASAR LETTER YA;Lo;0;L;;;;;N;;;;;
+11EED;MAKASAR LETTER RA;Lo;0;L;;;;;N;;;;;
+11EEE;MAKASAR LETTER LA;Lo;0;L;;;;;N;;;;;
+11EEF;MAKASAR LETTER VA;Lo;0;L;;;;;N;;;;;
+11EF0;MAKASAR LETTER SA;Lo;0;L;;;;;N;;;;;
+11EF1;MAKASAR LETTER A;Lo;0;L;;;;;N;;;;;
+11EF2;MAKASAR ANGKA;Lo;0;L;;;;;N;;;;;
+11EF3;MAKASAR VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+11EF4;MAKASAR VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+11EF5;MAKASAR VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+11EF6;MAKASAR VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
+11EF7;MAKASAR PASSIMBANG;Po;0;L;;;;;N;;;;;
+11EF8;MAKASAR END OF SECTION;Po;0;L;;;;;N;;;;;
12000;CUNEIFORM SIGN A;Lo;0;L;;;;;N;;;;;
12001;CUNEIFORM SIGN A TIMES A;Lo;0;L;;;;;N;;;;;
12002;CUNEIFORM SIGN A TIMES BAD;Lo;0;L;;;;;N;;;;;
@@ -24219,6 +24622,97 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
16B8D;PAHAWH HMONG CLAN SIGN TSWB;Lo;0;L;;;;;N;;;;;
16B8E;PAHAWH HMONG CLAN SIGN KWM;Lo;0;L;;;;;N;;;;;
16B8F;PAHAWH HMONG CLAN SIGN VWJ;Lo;0;L;;;;;N;;;;;
+16E40;MEDEFAIDRIN CAPITAL LETTER M;Lu;0;L;;;;;N;;;;16E60;
+16E41;MEDEFAIDRIN CAPITAL LETTER S;Lu;0;L;;;;;N;;;;16E61;
+16E42;MEDEFAIDRIN CAPITAL LETTER V;Lu;0;L;;;;;N;;;;16E62;
+16E43;MEDEFAIDRIN CAPITAL LETTER W;Lu;0;L;;;;;N;;;;16E63;
+16E44;MEDEFAIDRIN CAPITAL LETTER ATIU;Lu;0;L;;;;;N;;;;16E64;
+16E45;MEDEFAIDRIN CAPITAL LETTER Z;Lu;0;L;;;;;N;;;;16E65;
+16E46;MEDEFAIDRIN CAPITAL LETTER KP;Lu;0;L;;;;;N;;;;16E66;
+16E47;MEDEFAIDRIN CAPITAL LETTER P;Lu;0;L;;;;;N;;;;16E67;
+16E48;MEDEFAIDRIN CAPITAL LETTER T;Lu;0;L;;;;;N;;;;16E68;
+16E49;MEDEFAIDRIN CAPITAL LETTER G;Lu;0;L;;;;;N;;;;16E69;
+16E4A;MEDEFAIDRIN CAPITAL LETTER F;Lu;0;L;;;;;N;;;;16E6A;
+16E4B;MEDEFAIDRIN CAPITAL LETTER I;Lu;0;L;;;;;N;;;;16E6B;
+16E4C;MEDEFAIDRIN CAPITAL LETTER K;Lu;0;L;;;;;N;;;;16E6C;
+16E4D;MEDEFAIDRIN CAPITAL LETTER A;Lu;0;L;;;;;N;;;;16E6D;
+16E4E;MEDEFAIDRIN CAPITAL LETTER J;Lu;0;L;;;;;N;;;;16E6E;
+16E4F;MEDEFAIDRIN CAPITAL LETTER E;Lu;0;L;;;;;N;;;;16E6F;
+16E50;MEDEFAIDRIN CAPITAL LETTER B;Lu;0;L;;;;;N;;;;16E70;
+16E51;MEDEFAIDRIN CAPITAL LETTER C;Lu;0;L;;;;;N;;;;16E71;
+16E52;MEDEFAIDRIN CAPITAL LETTER U;Lu;0;L;;;;;N;;;;16E72;
+16E53;MEDEFAIDRIN CAPITAL LETTER YU;Lu;0;L;;;;;N;;;;16E73;
+16E54;MEDEFAIDRIN CAPITAL LETTER L;Lu;0;L;;;;;N;;;;16E74;
+16E55;MEDEFAIDRIN CAPITAL LETTER Q;Lu;0;L;;;;;N;;;;16E75;
+16E56;MEDEFAIDRIN CAPITAL LETTER HP;Lu;0;L;;;;;N;;;;16E76;
+16E57;MEDEFAIDRIN CAPITAL LETTER NY;Lu;0;L;;;;;N;;;;16E77;
+16E58;MEDEFAIDRIN CAPITAL LETTER X;Lu;0;L;;;;;N;;;;16E78;
+16E59;MEDEFAIDRIN CAPITAL LETTER D;Lu;0;L;;;;;N;;;;16E79;
+16E5A;MEDEFAIDRIN CAPITAL LETTER OE;Lu;0;L;;;;;N;;;;16E7A;
+16E5B;MEDEFAIDRIN CAPITAL LETTER N;Lu;0;L;;;;;N;;;;16E7B;
+16E5C;MEDEFAIDRIN CAPITAL LETTER R;Lu;0;L;;;;;N;;;;16E7C;
+16E5D;MEDEFAIDRIN CAPITAL LETTER O;Lu;0;L;;;;;N;;;;16E7D;
+16E5E;MEDEFAIDRIN CAPITAL LETTER AI;Lu;0;L;;;;;N;;;;16E7E;
+16E5F;MEDEFAIDRIN CAPITAL LETTER Y;Lu;0;L;;;;;N;;;;16E7F;
+16E60;MEDEFAIDRIN SMALL LETTER M;Ll;0;L;;;;;N;;;16E40;;16E40
+16E61;MEDEFAIDRIN SMALL LETTER S;Ll;0;L;;;;;N;;;16E41;;16E41
+16E62;MEDEFAIDRIN SMALL LETTER V;Ll;0;L;;;;;N;;;16E42;;16E42
+16E63;MEDEFAIDRIN SMALL LETTER W;Ll;0;L;;;;;N;;;16E43;;16E43
+16E64;MEDEFAIDRIN SMALL LETTER ATIU;Ll;0;L;;;;;N;;;16E44;;16E44
+16E65;MEDEFAIDRIN SMALL LETTER Z;Ll;0;L;;;;;N;;;16E45;;16E45
+16E66;MEDEFAIDRIN SMALL LETTER KP;Ll;0;L;;;;;N;;;16E46;;16E46
+16E67;MEDEFAIDRIN SMALL LETTER P;Ll;0;L;;;;;N;;;16E47;;16E47
+16E68;MEDEFAIDRIN SMALL LETTER T;Ll;0;L;;;;;N;;;16E48;;16E48
+16E69;MEDEFAIDRIN SMALL LETTER G;Ll;0;L;;;;;N;;;16E49;;16E49
+16E6A;MEDEFAIDRIN SMALL LETTER F;Ll;0;L;;;;;N;;;16E4A;;16E4A
+16E6B;MEDEFAIDRIN SMALL LETTER I;Ll;0;L;;;;;N;;;16E4B;;16E4B
+16E6C;MEDEFAIDRIN SMALL LETTER K;Ll;0;L;;;;;N;;;16E4C;;16E4C
+16E6D;MEDEFAIDRIN SMALL LETTER A;Ll;0;L;;;;;N;;;16E4D;;16E4D
+16E6E;MEDEFAIDRIN SMALL LETTER J;Ll;0;L;;;;;N;;;16E4E;;16E4E
+16E6F;MEDEFAIDRIN SMALL LETTER E;Ll;0;L;;;;;N;;;16E4F;;16E4F
+16E70;MEDEFAIDRIN SMALL LETTER B;Ll;0;L;;;;;N;;;16E50;;16E50
+16E71;MEDEFAIDRIN SMALL LETTER C;Ll;0;L;;;;;N;;;16E51;;16E51
+16E72;MEDEFAIDRIN SMALL LETTER U;Ll;0;L;;;;;N;;;16E52;;16E52
+16E73;MEDEFAIDRIN SMALL LETTER YU;Ll;0;L;;;;;N;;;16E53;;16E53
+16E74;MEDEFAIDRIN SMALL LETTER L;Ll;0;L;;;;;N;;;16E54;;16E54
+16E75;MEDEFAIDRIN SMALL LETTER Q;Ll;0;L;;;;;N;;;16E55;;16E55
+16E76;MEDEFAIDRIN SMALL LETTER HP;Ll;0;L;;;;;N;;;16E56;;16E56
+16E77;MEDEFAIDRIN SMALL LETTER NY;Ll;0;L;;;;;N;;;16E57;;16E57
+16E78;MEDEFAIDRIN SMALL LETTER X;Ll;0;L;;;;;N;;;16E58;;16E58
+16E79;MEDEFAIDRIN SMALL LETTER D;Ll;0;L;;;;;N;;;16E59;;16E59
+16E7A;MEDEFAIDRIN SMALL LETTER OE;Ll;0;L;;;;;N;;;16E5A;;16E5A
+16E7B;MEDEFAIDRIN SMALL LETTER N;Ll;0;L;;;;;N;;;16E5B;;16E5B
+16E7C;MEDEFAIDRIN SMALL LETTER R;Ll;0;L;;;;;N;;;16E5C;;16E5C
+16E7D;MEDEFAIDRIN SMALL LETTER O;Ll;0;L;;;;;N;;;16E5D;;16E5D
+16E7E;MEDEFAIDRIN SMALL LETTER AI;Ll;0;L;;;;;N;;;16E5E;;16E5E
+16E7F;MEDEFAIDRIN SMALL LETTER Y;Ll;0;L;;;;;N;;;16E5F;;16E5F
+16E80;MEDEFAIDRIN DIGIT ZERO;No;0;L;;;;0;N;;;;;
+16E81;MEDEFAIDRIN DIGIT ONE;No;0;L;;;;1;N;;;;;
+16E82;MEDEFAIDRIN DIGIT TWO;No;0;L;;;;2;N;;;;;
+16E83;MEDEFAIDRIN DIGIT THREE;No;0;L;;;;3;N;;;;;
+16E84;MEDEFAIDRIN DIGIT FOUR;No;0;L;;;;4;N;;;;;
+16E85;MEDEFAIDRIN DIGIT FIVE;No;0;L;;;;5;N;;;;;
+16E86;MEDEFAIDRIN DIGIT SIX;No;0;L;;;;6;N;;;;;
+16E87;MEDEFAIDRIN DIGIT SEVEN;No;0;L;;;;7;N;;;;;
+16E88;MEDEFAIDRIN DIGIT EIGHT;No;0;L;;;;8;N;;;;;
+16E89;MEDEFAIDRIN DIGIT NINE;No;0;L;;;;9;N;;;;;
+16E8A;MEDEFAIDRIN NUMBER TEN;No;0;L;;;;10;N;;;;;
+16E8B;MEDEFAIDRIN NUMBER ELEVEN;No;0;L;;;;11;N;;;;;
+16E8C;MEDEFAIDRIN NUMBER TWELVE;No;0;L;;;;12;N;;;;;
+16E8D;MEDEFAIDRIN NUMBER THIRTEEN;No;0;L;;;;13;N;;;;;
+16E8E;MEDEFAIDRIN NUMBER FOURTEEN;No;0;L;;;;14;N;;;;;
+16E8F;MEDEFAIDRIN NUMBER FIFTEEN;No;0;L;;;;15;N;;;;;
+16E90;MEDEFAIDRIN NUMBER SIXTEEN;No;0;L;;;;16;N;;;;;
+16E91;MEDEFAIDRIN NUMBER SEVENTEEN;No;0;L;;;;17;N;;;;;
+16E92;MEDEFAIDRIN NUMBER EIGHTEEN;No;0;L;;;;18;N;;;;;
+16E93;MEDEFAIDRIN NUMBER NINETEEN;No;0;L;;;;19;N;;;;;
+16E94;MEDEFAIDRIN DIGIT ONE ALTERNATE FORM;No;0;L;;;;1;N;;;;;
+16E95;MEDEFAIDRIN DIGIT TWO ALTERNATE FORM;No;0;L;;;;2;N;;;;;
+16E96;MEDEFAIDRIN DIGIT THREE ALTERNATE FORM;No;0;L;;;;3;N;;;;;
+16E97;MEDEFAIDRIN COMMA;Po;0;L;;;;;N;;;;;
+16E98;MEDEFAIDRIN FULL STOP;Po;0;L;;;;;N;;;;;
+16E99;MEDEFAIDRIN SYMBOL AIVA;Po;0;L;;;;;N;;;;;
+16E9A;MEDEFAIDRIN EXCLAMATION OH;Po;0;L;;;;;N;;;;;
16F00;MIAO LETTER PA;Lo;0;L;;;;;N;;;;;
16F01;MIAO LETTER BA;Lo;0;L;;;;;N;;;;;
16F02;MIAO LETTER YI PA;Lo;0;L;;;;;N;;;;;
@@ -24355,7 +24849,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
16FE0;TANGUT ITERATION MARK;Lm;0;L;;;;;N;;;;;
16FE1;NUSHU ITERATION MARK;Lm;0;L;;;;;N;;;;;
17000;<Tangut Ideograph, First>;Lo;0;L;;;;;N;;;;;
-187EC;<Tangut Ideograph, Last>;Lo;0;L;;;;;N;;;;;
+187F1;<Tangut Ideograph, Last>;Lo;0;L;;;;;N;;;;;
18800;TANGUT COMPONENT-001;Lo;0;L;;;;;N;;;;;
18801;TANGUT COMPONENT-002;Lo;0;L;;;;;N;;;;;
18802;TANGUT COMPONENT-003;Lo;0;L;;;;;N;;;;;
@@ -26488,6 +26982,26 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1D243;COMBINING GREEK MUSICAL TETRASEME;Mn;230;NSM;;;;;N;;;;;
1D244;COMBINING GREEK MUSICAL PENTASEME;Mn;230;NSM;;;;;N;;;;;
1D245;GREEK MUSICAL LEIMMA;So;0;ON;;;;;N;;;;;
+1D2E0;MAYAN NUMERAL ZERO;No;0;L;;;;0;N;;;;;
+1D2E1;MAYAN NUMERAL ONE;No;0;L;;;;1;N;;;;;
+1D2E2;MAYAN NUMERAL TWO;No;0;L;;;;2;N;;;;;
+1D2E3;MAYAN NUMERAL THREE;No;0;L;;;;3;N;;;;;
+1D2E4;MAYAN NUMERAL FOUR;No;0;L;;;;4;N;;;;;
+1D2E5;MAYAN NUMERAL FIVE;No;0;L;;;;5;N;;;;;
+1D2E6;MAYAN NUMERAL SIX;No;0;L;;;;6;N;;;;;
+1D2E7;MAYAN NUMERAL SEVEN;No;0;L;;;;7;N;;;;;
+1D2E8;MAYAN NUMERAL EIGHT;No;0;L;;;;8;N;;;;;
+1D2E9;MAYAN NUMERAL NINE;No;0;L;;;;9;N;;;;;
+1D2EA;MAYAN NUMERAL TEN;No;0;L;;;;10;N;;;;;
+1D2EB;MAYAN NUMERAL ELEVEN;No;0;L;;;;11;N;;;;;
+1D2EC;MAYAN NUMERAL TWELVE;No;0;L;;;;12;N;;;;;
+1D2ED;MAYAN NUMERAL THIRTEEN;No;0;L;;;;13;N;;;;;
+1D2EE;MAYAN NUMERAL FOURTEEN;No;0;L;;;;14;N;;;;;
+1D2EF;MAYAN NUMERAL FIFTEEN;No;0;L;;;;15;N;;;;;
+1D2F0;MAYAN NUMERAL SIXTEEN;No;0;L;;;;16;N;;;;;
+1D2F1;MAYAN NUMERAL SEVENTEEN;No;0;L;;;;17;N;;;;;
+1D2F2;MAYAN NUMERAL EIGHTEEN;No;0;L;;;;18;N;;;;;
+1D2F3;MAYAN NUMERAL NINETEEN;No;0;L;;;;19;N;;;;;
1D300;MONOGRAM FOR EARTH;So;0;ON;;;;;N;;;;;
1D301;DIGRAM FOR HEAVENLY EARTH;So;0;ON;;;;;N;;;;;
1D302;DIGRAM FOR HUMAN EARTH;So;0;ON;;;;;N;;;;;
@@ -26593,6 +27107,13 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1D36F;COUNTING ROD TENS DIGIT SEVEN;No;0;L;;;;70;N;;;;;
1D370;COUNTING ROD TENS DIGIT EIGHT;No;0;L;;;;80;N;;;;;
1D371;COUNTING ROD TENS DIGIT NINE;No;0;L;;;;90;N;;;;;
+1D372;IDEOGRAPHIC TALLY MARK ONE;No;0;L;;;;1;N;;;;;
+1D373;IDEOGRAPHIC TALLY MARK TWO;No;0;L;;;;2;N;;;;;
+1D374;IDEOGRAPHIC TALLY MARK THREE;No;0;L;;;;3;N;;;;;
+1D375;IDEOGRAPHIC TALLY MARK FOUR;No;0;L;;;;4;N;;;;;
+1D376;IDEOGRAPHIC TALLY MARK FIVE;No;0;L;;;;5;N;;;;;
+1D377;TALLY MARK ONE;No;0;L;;;;1;N;;;;;
+1D378;TALLY MARK FIVE;No;0;L;;;;5;N;;;;;
1D400;MATHEMATICAL BOLD CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
1D401;MATHEMATICAL BOLD CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
1D402;MATHEMATICAL BOLD CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
@@ -28599,6 +29120,74 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1E959;ADLAM DIGIT NINE;Nd;0;R;;9;9;9;N;;;;;
1E95E;ADLAM INITIAL EXCLAMATION MARK;Po;0;R;;;;;N;;;;;
1E95F;ADLAM INITIAL QUESTION MARK;Po;0;R;;;;;N;;;;;
+1EC71;INDIC SIYAQ NUMBER ONE;No;0;AL;;;;1;N;;;;;
+1EC72;INDIC SIYAQ NUMBER TWO;No;0;AL;;;;2;N;;;;;
+1EC73;INDIC SIYAQ NUMBER THREE;No;0;AL;;;;3;N;;;;;
+1EC74;INDIC SIYAQ NUMBER FOUR;No;0;AL;;;;4;N;;;;;
+1EC75;INDIC SIYAQ NUMBER FIVE;No;0;AL;;;;5;N;;;;;
+1EC76;INDIC SIYAQ NUMBER SIX;No;0;AL;;;;6;N;;;;;
+1EC77;INDIC SIYAQ NUMBER SEVEN;No;0;AL;;;;7;N;;;;;
+1EC78;INDIC SIYAQ NUMBER EIGHT;No;0;AL;;;;8;N;;;;;
+1EC79;INDIC SIYAQ NUMBER NINE;No;0;AL;;;;9;N;;;;;
+1EC7A;INDIC SIYAQ NUMBER TEN;No;0;AL;;;;10;N;;;;;
+1EC7B;INDIC SIYAQ NUMBER TWENTY;No;0;AL;;;;20;N;;;;;
+1EC7C;INDIC SIYAQ NUMBER THIRTY;No;0;AL;;;;30;N;;;;;
+1EC7D;INDIC SIYAQ NUMBER FORTY;No;0;AL;;;;40;N;;;;;
+1EC7E;INDIC SIYAQ NUMBER FIFTY;No;0;AL;;;;50;N;;;;;
+1EC7F;INDIC SIYAQ NUMBER SIXTY;No;0;AL;;;;60;N;;;;;
+1EC80;INDIC SIYAQ NUMBER SEVENTY;No;0;AL;;;;70;N;;;;;
+1EC81;INDIC SIYAQ NUMBER EIGHTY;No;0;AL;;;;80;N;;;;;
+1EC82;INDIC SIYAQ NUMBER NINETY;No;0;AL;;;;90;N;;;;;
+1EC83;INDIC SIYAQ NUMBER ONE HUNDRED;No;0;AL;;;;100;N;;;;;
+1EC84;INDIC SIYAQ NUMBER TWO HUNDRED;No;0;AL;;;;200;N;;;;;
+1EC85;INDIC SIYAQ NUMBER THREE HUNDRED;No;0;AL;;;;300;N;;;;;
+1EC86;INDIC SIYAQ NUMBER FOUR HUNDRED;No;0;AL;;;;400;N;;;;;
+1EC87;INDIC SIYAQ NUMBER FIVE HUNDRED;No;0;AL;;;;500;N;;;;;
+1EC88;INDIC SIYAQ NUMBER SIX HUNDRED;No;0;AL;;;;600;N;;;;;
+1EC89;INDIC SIYAQ NUMBER SEVEN HUNDRED;No;0;AL;;;;700;N;;;;;
+1EC8A;INDIC SIYAQ NUMBER EIGHT HUNDRED;No;0;AL;;;;800;N;;;;;
+1EC8B;INDIC SIYAQ NUMBER NINE HUNDRED;No;0;AL;;;;900;N;;;;;
+1EC8C;INDIC SIYAQ NUMBER ONE THOUSAND;No;0;AL;;;;1000;N;;;;;
+1EC8D;INDIC SIYAQ NUMBER TWO THOUSAND;No;0;AL;;;;2000;N;;;;;
+1EC8E;INDIC SIYAQ NUMBER THREE THOUSAND;No;0;AL;;;;3000;N;;;;;
+1EC8F;INDIC SIYAQ NUMBER FOUR THOUSAND;No;0;AL;;;;4000;N;;;;;
+1EC90;INDIC SIYAQ NUMBER FIVE THOUSAND;No;0;AL;;;;5000;N;;;;;
+1EC91;INDIC SIYAQ NUMBER SIX THOUSAND;No;0;AL;;;;6000;N;;;;;
+1EC92;INDIC SIYAQ NUMBER SEVEN THOUSAND;No;0;AL;;;;7000;N;;;;;
+1EC93;INDIC SIYAQ NUMBER EIGHT THOUSAND;No;0;AL;;;;8000;N;;;;;
+1EC94;INDIC SIYAQ NUMBER NINE THOUSAND;No;0;AL;;;;9000;N;;;;;
+1EC95;INDIC SIYAQ NUMBER TEN THOUSAND;No;0;AL;;;;10000;N;;;;;
+1EC96;INDIC SIYAQ NUMBER TWENTY THOUSAND;No;0;AL;;;;20000;N;;;;;
+1EC97;INDIC SIYAQ NUMBER THIRTY THOUSAND;No;0;AL;;;;30000;N;;;;;
+1EC98;INDIC SIYAQ NUMBER FORTY THOUSAND;No;0;AL;;;;40000;N;;;;;
+1EC99;INDIC SIYAQ NUMBER FIFTY THOUSAND;No;0;AL;;;;50000;N;;;;;
+1EC9A;INDIC SIYAQ NUMBER SIXTY THOUSAND;No;0;AL;;;;60000;N;;;;;
+1EC9B;INDIC SIYAQ NUMBER SEVENTY THOUSAND;No;0;AL;;;;70000;N;;;;;
+1EC9C;INDIC SIYAQ NUMBER EIGHTY THOUSAND;No;0;AL;;;;80000;N;;;;;
+1EC9D;INDIC SIYAQ NUMBER NINETY THOUSAND;No;0;AL;;;;90000;N;;;;;
+1EC9E;INDIC SIYAQ NUMBER LAKH;No;0;AL;;;;100000;N;;;;;
+1EC9F;INDIC SIYAQ NUMBER LAKHAN;No;0;AL;;;;200000;N;;;;;
+1ECA0;INDIC SIYAQ LAKH MARK;No;0;AL;;;;100000;N;;;;;
+1ECA1;INDIC SIYAQ NUMBER KAROR;No;0;AL;;;;10000000;N;;;;;
+1ECA2;INDIC SIYAQ NUMBER KARORAN;No;0;AL;;;;20000000;N;;;;;
+1ECA3;INDIC SIYAQ NUMBER PREFIXED ONE;No;0;AL;;;;1;N;;;;;
+1ECA4;INDIC SIYAQ NUMBER PREFIXED TWO;No;0;AL;;;;2;N;;;;;
+1ECA5;INDIC SIYAQ NUMBER PREFIXED THREE;No;0;AL;;;;3;N;;;;;
+1ECA6;INDIC SIYAQ NUMBER PREFIXED FOUR;No;0;AL;;;;4;N;;;;;
+1ECA7;INDIC SIYAQ NUMBER PREFIXED FIVE;No;0;AL;;;;5;N;;;;;
+1ECA8;INDIC SIYAQ NUMBER PREFIXED SIX;No;0;AL;;;;6;N;;;;;
+1ECA9;INDIC SIYAQ NUMBER PREFIXED SEVEN;No;0;AL;;;;7;N;;;;;
+1ECAA;INDIC SIYAQ NUMBER PREFIXED EIGHT;No;0;AL;;;;8;N;;;;;
+1ECAB;INDIC SIYAQ NUMBER PREFIXED NINE;No;0;AL;;;;9;N;;;;;
+1ECAC;INDIC SIYAQ PLACEHOLDER;So;0;AL;;;;;N;;;;;
+1ECAD;INDIC SIYAQ FRACTION ONE QUARTER;No;0;AL;;;;1/4;N;;;;;
+1ECAE;INDIC SIYAQ FRACTION ONE HALF;No;0;AL;;;;1/2;N;;;;;
+1ECAF;INDIC SIYAQ FRACTION THREE QUARTERS;No;0;AL;;;;3/4;N;;;;;
+1ECB0;INDIC SIYAQ RUPEE MARK;Sc;0;AL;;;;;N;;;;;
+1ECB1;INDIC SIYAQ NUMBER ALTERNATE ONE;No;0;AL;;;;1;N;;;;;
+1ECB2;INDIC SIYAQ NUMBER ALTERNATE TWO;No;0;AL;;;;2;N;;;;;
+1ECB3;INDIC SIYAQ NUMBER ALTERNATE TEN THOUSAND;No;0;AL;;;;10000;N;;;;;
+1ECB4;INDIC SIYAQ ALTERNATE LAKH MARK;No;0;AL;;;;100000;N;;;;;
1EE00;ARABIC MATHEMATICAL ALEF;Lo;0;AL;<font> 0627;;;;N;;;;;
1EE01;ARABIC MATHEMATICAL BEH;Lo;0;AL;<font> 0628;;;;N;;;;;
1EE02;ARABIC MATHEMATICAL JEEM;Lo;0;AL;<font> 062C;;;;N;;;;;
@@ -29012,6 +29601,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F12C;CIRCLED ITALIC LATIN CAPITAL LETTER R;So;0;L;<circle> 0052;;;;N;;;;;
1F12D;CIRCLED CD;So;0;L;<circle> 0043 0044;;;;N;;;;;
1F12E;CIRCLED WZ;So;0;L;<circle> 0057 005A;;;;N;;;;;
+1F12F;COPYLEFT SYMBOL;So;0;ON;;;;;N;;;;;
1F130;SQUARED LATIN CAPITAL LETTER A;So;0;L;<square> 0041;;;;N;;;;;
1F131;SQUARED LATIN CAPITAL LETTER B;So;0;L;<square> 0042;;;;N;;;;;
1F132;SQUARED LATIN CAPITAL LETTER C;So;0;L;<square> 0043;;;;N;;;;;
@@ -30226,6 +30816,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F6F6;CANOE;So;0;ON;;;;;N;;;;;
1F6F7;SLED;So;0;ON;;;;;N;;;;;
1F6F8;FLYING SAUCER;So;0;ON;;;;;N;;;;;
+1F6F9;SKATEBOARD;So;0;ON;;;;;N;;;;;
1F700;ALCHEMICAL SYMBOL FOR QUINTESSENCE;So;0;ON;;;;;N;;;;;
1F701;ALCHEMICAL SYMBOL FOR AIR;So;0;ON;;;;;N;;;;;
1F702;ALCHEMICAL SYMBOL FOR FIRE;So;0;ON;;;;;N;;;;;
@@ -30427,6 +31018,10 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F7D2;LIGHT TWELVE POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
1F7D3;HEAVY TWELVE POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
1F7D4;HEAVY TWELVE POINTED PINWHEEL STAR;So;0;ON;;;;;N;;;;;
+1F7D5;CIRCLED TRIANGLE;So;0;ON;;;;;N;;;;;
+1F7D6;NEGATIVE CIRCLED TRIANGLE;So;0;ON;;;;;N;;;;;
+1F7D7;CIRCLED SQUARE;So;0;ON;;;;;N;;;;;
+1F7D8;NEGATIVE CIRCLED SQUARE;So;0;ON;;;;;N;;;;;
1F800;LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
1F801;UPWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
1F802;RIGHTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
@@ -30647,6 +31242,9 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F94A;BOXING GLOVE;So;0;ON;;;;;N;;;;;
1F94B;MARTIAL ARTS UNIFORM;So;0;ON;;;;;N;;;;;
1F94C;CURLING STONE;So;0;ON;;;;;N;;;;;
+1F94D;LACROSSE STICK AND BALL;So;0;ON;;;;;N;;;;;
+1F94E;SOFTBALL;So;0;ON;;;;;N;;;;;
+1F94F;FLYING DISC;So;0;ON;;;;;N;;;;;
1F950;CROISSANT;So;0;ON;;;;;N;;;;;
1F951;AVOCADO;So;0;ON;;;;;N;;;;;
1F952;CUCUMBER;So;0;ON;;;;;N;;;;;
@@ -30675,6 +31273,20 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F969;CUT OF MEAT;So;0;ON;;;;;N;;;;;
1F96A;SANDWICH;So;0;ON;;;;;N;;;;;
1F96B;CANNED FOOD;So;0;ON;;;;;N;;;;;
+1F96C;LEAFY GREEN;So;0;ON;;;;;N;;;;;
+1F96D;MANGO;So;0;ON;;;;;N;;;;;
+1F96E;MOON CAKE;So;0;ON;;;;;N;;;;;
+1F96F;BAGEL;So;0;ON;;;;;N;;;;;
+1F970;SMILING FACE WITH SMILING EYES AND THREE HEARTS;So;0;ON;;;;;N;;;;;
+1F973;FACE WITH PARTY HORN AND PARTY HAT;So;0;ON;;;;;N;;;;;
+1F974;FACE WITH UNEVEN EYES AND WAVY MOUTH;So;0;ON;;;;;N;;;;;
+1F975;OVERHEATED FACE;So;0;ON;;;;;N;;;;;
+1F976;FREEZING FACE;So;0;ON;;;;;N;;;;;
+1F97A;FACE WITH PLEADING EYES;So;0;ON;;;;;N;;;;;
+1F97C;LAB COAT;So;0;ON;;;;;N;;;;;
+1F97D;GOGGLES;So;0;ON;;;;;N;;;;;
+1F97E;HIKING BOOT;So;0;ON;;;;;N;;;;;
+1F97F;FLAT SHOE;So;0;ON;;;;;N;;;;;
1F980;CRAB;So;0;ON;;;;;N;;;;;
1F981;LION FACE;So;0;ON;;;;;N;;;;;
1F982;SCORPION;So;0;ON;;;;;N;;;;;
@@ -30699,7 +31311,30 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F995;SAUROPOD;So;0;ON;;;;;N;;;;;
1F996;T-REX;So;0;ON;;;;;N;;;;;
1F997;CRICKET;So;0;ON;;;;;N;;;;;
+1F998;KANGAROO;So;0;ON;;;;;N;;;;;
+1F999;LLAMA;So;0;ON;;;;;N;;;;;
+1F99A;PEACOCK;So;0;ON;;;;;N;;;;;
+1F99B;HIPPOPOTAMUS;So;0;ON;;;;;N;;;;;
+1F99C;PARROT;So;0;ON;;;;;N;;;;;
+1F99D;RACCOON;So;0;ON;;;;;N;;;;;
+1F99E;LOBSTER;So;0;ON;;;;;N;;;;;
+1F99F;MOSQUITO;So;0;ON;;;;;N;;;;;
+1F9A0;MICROBE;So;0;ON;;;;;N;;;;;
+1F9A1;BADGER;So;0;ON;;;;;N;;;;;
+1F9A2;SWAN;So;0;ON;;;;;N;;;;;
+1F9B0;EMOJI COMPONENT RED HAIR;So;0;ON;;;;;N;;;;;
+1F9B1;EMOJI COMPONENT CURLY HAIR;So;0;ON;;;;;N;;;;;
+1F9B2;EMOJI COMPONENT BALD;So;0;ON;;;;;N;;;;;
+1F9B3;EMOJI COMPONENT WHITE HAIR;So;0;ON;;;;;N;;;;;
+1F9B4;BONE;So;0;ON;;;;;N;;;;;
+1F9B5;LEG;So;0;ON;;;;;N;;;;;
+1F9B6;FOOT;So;0;ON;;;;;N;;;;;
+1F9B7;TOOTH;So;0;ON;;;;;N;;;;;
+1F9B8;SUPERHERO;So;0;ON;;;;;N;;;;;
+1F9B9;SUPERVILLAIN;So;0;ON;;;;;N;;;;;
1F9C0;CHEESE WEDGE;So;0;ON;;;;;N;;;;;
+1F9C1;CUPCAKE;So;0;ON;;;;;N;;;;;
+1F9C2;SALT SHAKER;So;0;ON;;;;;N;;;;;
1F9D0;FACE WITH MONOCLE;So;0;ON;;;;;N;;;;;
1F9D1;ADULT;So;0;ON;;;;;N;;;;;
1F9D2;CHILD;So;0;ON;;;;;N;;;;;
@@ -30723,6 +31358,45 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F9E4;GLOVES;So;0;ON;;;;;N;;;;;
1F9E5;COAT;So;0;ON;;;;;N;;;;;
1F9E6;SOCKS;So;0;ON;;;;;N;;;;;
+1F9E7;RED GIFT ENVELOPE;So;0;ON;;;;;N;;;;;
+1F9E8;FIRECRACKER;So;0;ON;;;;;N;;;;;
+1F9E9;JIGSAW PUZZLE PIECE;So;0;ON;;;;;N;;;;;
+1F9EA;TEST TUBE;So;0;ON;;;;;N;;;;;
+1F9EB;PETRI DISH;So;0;ON;;;;;N;;;;;
+1F9EC;DNA DOUBLE HELIX;So;0;ON;;;;;N;;;;;
+1F9ED;COMPASS;So;0;ON;;;;;N;;;;;
+1F9EE;ABACUS;So;0;ON;;;;;N;;;;;
+1F9EF;FIRE EXTINGUISHER;So;0;ON;;;;;N;;;;;
+1F9F0;TOOLBOX;So;0;ON;;;;;N;;;;;
+1F9F1;BRICK;So;0;ON;;;;;N;;;;;
+1F9F2;MAGNET;So;0;ON;;;;;N;;;;;
+1F9F3;LUGGAGE;So;0;ON;;;;;N;;;;;
+1F9F4;LOTION BOTTLE;So;0;ON;;;;;N;;;;;
+1F9F5;SPOOL OF THREAD;So;0;ON;;;;;N;;;;;
+1F9F6;BALL OF YARN;So;0;ON;;;;;N;;;;;
+1F9F7;SAFETY PIN;So;0;ON;;;;;N;;;;;
+1F9F8;TEDDY BEAR;So;0;ON;;;;;N;;;;;
+1F9F9;BROOM;So;0;ON;;;;;N;;;;;
+1F9FA;BASKET;So;0;ON;;;;;N;;;;;
+1F9FB;ROLL OF PAPER;So;0;ON;;;;;N;;;;;
+1F9FC;BAR OF SOAP;So;0;ON;;;;;N;;;;;
+1F9FD;SPONGE;So;0;ON;;;;;N;;;;;
+1F9FE;RECEIPT;So;0;ON;;;;;N;;;;;
+1F9FF;NAZAR AMULET;So;0;ON;;;;;N;;;;;
+1FA60;XIANGQI RED GENERAL;So;0;ON;;;;;N;;;;;
+1FA61;XIANGQI RED MANDARIN;So;0;ON;;;;;N;;;;;
+1FA62;XIANGQI RED ELEPHANT;So;0;ON;;;;;N;;;;;
+1FA63;XIANGQI RED HORSE;So;0;ON;;;;;N;;;;;
+1FA64;XIANGQI RED CHARIOT;So;0;ON;;;;;N;;;;;
+1FA65;XIANGQI RED CANNON;So;0;ON;;;;;N;;;;;
+1FA66;XIANGQI RED SOLDIER;So;0;ON;;;;;N;;;;;
+1FA67;XIANGQI BLACK GENERAL;So;0;ON;;;;;N;;;;;
+1FA68;XIANGQI BLACK MANDARIN;So;0;ON;;;;;N;;;;;
+1FA69;XIANGQI BLACK ELEPHANT;So;0;ON;;;;;N;;;;;
+1FA6A;XIANGQI BLACK HORSE;So;0;ON;;;;;N;;;;;
+1FA6B;XIANGQI BLACK CHARIOT;So;0;ON;;;;;N;;;;;
+1FA6C;XIANGQI BLACK CANNON;So;0;ON;;;;;N;;;;;
+1FA6D;XIANGQI BLACK SOLDIER;So;0;ON;;;;;N;;;;;
20000;<CJK Ideograph Extension B, First>;Lo;0;L;;;;;N;;;;;
2A6D6;<CJK Ideograph Extension B, Last>;Lo;0;L;;;;;N;;;;;
2A700;<CJK Ideograph Extension C, First>;Lo;0;L;;;;;N;;;;;
diff --git a/Build/source/libs/icu/icu-src/source/data/unidata/changes.txt b/Build/source/libs/icu/icu-src/source/data/unidata/changes.txt
index ef717b12c19..8ec57e7675a 100644
--- a/Build/source/libs/icu/icu-src/source/data/unidata/changes.txt
+++ b/Build/source/libs/icu/icu-src/source/data/unidata/changes.txt
@@ -49,6 +49,510 @@ For new script codes see http://www.unicode.org/iso15924/codechanges.html
---------------------------------------------------------------------------- ***
+ICU 63 addition of ICU support of text layout properties InPC, InSC, vo
+
+* Command-line environment setup
+
+UNICODE_DATA=~/unidata/uni11/20180609
+CLDR_SRC=~/svn.cldr/uni
+ICU_ROOT=~/icu/mine
+ICU_SRC=$ICU_ROOT/src
+ICUDT=icudt62b
+ICU4C_DATA_IN=$ICU_SRC/icu4c/source/data/in
+ICU4C_UNIDATA=$ICU_SRC/icu4c/source/data/unidata
+export LD_LIBRARY_PATH=$ICU_ROOT/dbg/icu4c/lib
+
+*** Links
+
+https://unicode-org.atlassian.net/browse/ICU-8966 InPC & InSC
+https://unicode-org.atlassian.net/browse/ICU-12850 vo
+
+*** data files & enums & parser code
+
+* API additions
+- for each of the three new enumerated properties
+ + uchar.h: add the enum UProperty constant UCHAR_<long prop name>
+ + uchar.h: update UCHAR_INT_LIMIT
+ + uchar.h: add the enum U<long prop name>
+ with constants U_<short prop name>_<long value name>
+ + UProperty.java: add the constant <long prop name>
+ + UProperty.java: update INT_LIMIT
+ + UCharacter.java: add the interface <long prop name>
+ with constants <long value name>
+
+* process and/or copy files
+- $ICU_SRC/tools/unicode$ py/preparseucd.py $UNICODE_DATA $ICU_SRC
+ + This writes files (especially ppucd.txt) to the ICU4C unidata and testdata subfolders.
+ + It also writes tools/unicode/c/genprops/pnames_data.h with property and value
+ names and aliases.
+ + For debugging, and tweaking how ppucd.txt is written,
+ the tool has an --only_ppucd option:
+ py/preparseucd.py $UNICODE_DATA --only_ppucd path/to/ppucd/outputfile
+
+* preparseucd.py changes
+- add new property short names (uppercase) to _prop_and_value_re
+ so that ParseUCharHeader() parses the new enum constants
+
+* build ICU (make install)
+ so that the tools build can pick up the new definitions from the installed header files.
+
+ $ICU_ROOT/dbg/icu4c$ echo;echo; make -j7 install > out.txt 2>&1 ; tail -n 30 out.txt ; date
+
+* build Unicode tools using CMake+make
+
+$ICU_SRC/tools/unicode/c/icudefs.txt:
+
+# Location (--prefix) of where ICU was installed.
+set(ICU_INST_DIR /usr/local/google/home/mscherer/icu/mine/inst/icu4c)
+# Location of the ICU4C source tree.
+set(ICU4C_SRC_DIR /usr/local/google/home/mscherer/icu/mine/src/icu4c)
+
+ $ICU_ROOT/dbg$
+ mkdir -p tools/unicode/c
+ cd tools/unicode/c
+
+ $ICU_ROOT/dbg/tools/unicode/c$
+ cmake ../../../../../src/tools/unicode/c
+ make
+
+* generate core properties data files
+ $ICU_ROOT/dbg/tools/unicode/c$
+ genprops/genprops $ICU_SRC/icu4c
+- rebuild ICU (make install) & tools
+
+* write data for runtime, hardcoded for now
+- add genprops/layoutpropsbuilder.cpp with pieces from sibling files
+- generate new icu4c/source/common/ulayout_props_data.h
+- for each of the three new enumerated properties
+ + int property max value
+ + small, 8-bit UCPTrie
+ (A small 16-bit trie with bit fields for these three properties
+ is very nearly the same size as the sum of the three.)
+
+* wire into C++
+- uprops.cpp: #include ulayout_props_data.h
+- uprops.cpp: add getInPC() etc. functions
+- uprops.cpp: add lines to intProps[], include max values
+- uprops.h: add UPropertySource constants
+- uprops.cpp: add uprops_addPropertyStarts(src)
+- uniset_props.cpp: add to UnicodeSet_initInclusion()
+- intltest/ucdtest.cpp: write unit tests
+
+* update Java data files
+- refresh just the pnames.icu file with the new property [value] names, just to be safe
+- see $ICU_SRC/icu4c/source/data/icu4j-readme.txt
+- mkdir -p /tmp/icu4j/com/ibm/icu/impl/data/$ICUDT
+- $ICU_ROOT/dbg/icu4c$ make ICU4J_ROOT=/tmp/icu4j icu4j-data-install
+- copy the big-endian Unicode data files to another location,
+ separate from the other data files,
+ and then refresh ICU4J
+ cd $ICU_ROOT/dbg/icu4c/data/out/icu4j
+ cp com/ibm/icu/impl/data/$ICUDT/pnames.icu /tmp/icu4j/com/ibm/icu/impl/data/$ICUDT
+ jar uvf $ICU_SRC/icu4j/main/shared/data/icudata.jar -C /tmp/icu4j com/ibm/icu/impl/data/$ICUDT
+
+* wire into Java
+- UCharacterProperty.java: add new SRC_INPC etc. constants as in C++
+- UCharacterProperty.java: for each new property
+ + create a nested class to hold its CodePointTrie
+ + initialize it from a string literal
+ + paste in the initializer printed by genprops
+ + add a new IntProperty object to the intProps[] array
+ + use the correct max int value for each property, also printed by genprops
+- UCharacterProperty.java: add ulayout_addPropertyStarts(src, set)
+- UnicodeSet.java: add to getInclusions()
+- UCharacterTest.java: write unit tests
+
+---------------------------------------------------------------------------- ***
+
+Unicode 11.0 update for ICU 62
+
+http://www.unicode.org/versions/Unicode11.0.0/
+http://unicode.org/versions/beta-11.0.0.html
+https://www.unicode.org/review/pri372/
+http://www.unicode.org/reports/uax-proposed-updates.html
+http://www.unicode.org/reports/tr44/tr44-21.html
+
+* Command-line environment setup
+
+UNICODE_DATA=~/unidata/uni11/20180521
+CLDR_SRC=~/svn.cldr/uni
+ICU_ROOT=~/svn.icu/uni
+ICU_SRC=$ICU_ROOT/src
+ICUDT=icudt61b
+ICU4C_DATA_IN=$ICU_SRC/icu4c/source/data/in
+ICU4C_UNIDATA=$ICU_SRC/icu4c/source/data/unidata
+export LD_LIBRARY_PATH=$ICU_ROOT/dbg/icu4c/lib
+
+*** ICU Trac
+
+- ticket:13630: Unicode 11
+- ^/branches/markus/uni11
+
+*** CLDR Trac
+
+- cldrbug 10978: Unicode 11
+- ^/branches/markus/uni11
+
+*** Unicode version numbers
+- makedata.mak
+- uchar.h
+- com.ibm.icu.util.VersionInfo
+- com.ibm.icu.dev.test.lang.UCharacterTest.VERSION_
+
+- Run ICU4C "configure" _after_ updating the Unicode version number in uchar.h
+ so that the makefiles see the new version number.
+
+*** data files & enums & parser code
+
+* download files
+- mkdir -p $UNICODE_DATA
+- download Unicode files into $UNICODE_DATA
+ + subfolders: emoji, idna, security, ucd, uca
+ + inside ucd: extract Unihan.zip to "here" (.../ucd/Unihan/*.txt), delete Unihan.zip
+
+* for manual diffs and for Unicode Tools input data updates:
+ remove version suffixes from the file names
+ ~$ unidata/desuffixucd.py $UNICODE_DATA
+ (see https://sites.google.com/site/unicodetools/inputdata)
+
+* process and/or copy files
+- $ICU_SRC/tools/unicode$ py/preparseucd.py $UNICODE_DATA $ICU_SRC
+ + This writes files (especially ppucd.txt) to the ICU4C unidata and testdata subfolders.
+ + For debugging, and tweaking how ppucd.txt is written,
+ the tool has an --only_ppucd option:
+ py/preparseucd.py $UNICODE_DATA --only_ppucd path/to/ppucd/outputfile
+
+- cp $UNICODE_DATA/security/confusables.txt $ICU4C_UNIDATA
+
+* build ICU (make install)
+ so that the tools build can pick up the new definitions from the installed header files.
+
+ $ICU_ROOT/dbg/icu4c$ echo;echo; make -j7 install > out.txt 2>&1 ; tail -n 30 out.txt ; date
+
+* preparseucd.py changes
+- fix other errors
+ NameError: unknown property Extended_Pictographic
+ -> add Extended_Pictographic binary property
+ -> add new short names for all Emoji properties
+
+* new constants for new property values
+- preparseucd.py error:
+ ValueError: missing uchar.h enum constants for some property values:
+ [(u'blk', set([u'Georgian_Ext', u'Hanifi_Rohingya', u'Medefaidrin', u'Sogdian', u'Makasar',
+ u'Old_Sogdian', u'Dogra', u'Gunjala_Gondi', u'Chess_Symbols', u'Mayan_Numerals',
+ u'Indic_Siyaq_Numbers'])),
+ (u'jg', set([u'Hanifi_Rohingya_Kinna_Ya', u'Hanifi_Rohingya_Pa'])),
+ (u'sc', set([u'Medf', u'Sogd', u'Dogr', u'Rohg', u'Maka', u'Sogo', u'Gong'])),
+ (u'GCB', set([u'LinkC', u'Virama'])),
+ (u'WB', set([u'WSegSpace']))]
+ = PropertyValueAliases.txt new property values (diff old & new .txt files)
+ blk; Chess_Symbols ; Chess_Symbols
+ blk; Dogra ; Dogra
+ blk; Georgian_Ext ; Georgian_Extended
+ blk; Gunjala_Gondi ; Gunjala_Gondi
+ blk; Hanifi_Rohingya ; Hanifi_Rohingya
+ blk; Indic_Siyaq_Numbers ; Indic_Siyaq_Numbers
+ blk; Makasar ; Makasar
+ blk; Mayan_Numerals ; Mayan_Numerals
+ blk; Medefaidrin ; Medefaidrin
+ blk; Old_Sogdian ; Old_Sogdian
+ blk; Sogdian ; Sogdian
+ -> add to uchar.h
+ use long property names for enum constants,
+ for the trailing comment get the block start code point: diff old & new Blocks.txt
+ -> add to UCharacter.UnicodeBlock IDs
+ Eclipse find UBLOCK_([^ ]+) = ([0-9]+), (/.+)
+ replace public static final int \1_ID = \2; \3
+ -> add to UCharacter.UnicodeBlock objects
+ Eclipse find UBLOCK_([^ ]+) = [0-9]+, (/.+)
+ replace public static final UnicodeBlock \1 = new UnicodeBlock("\1", \1_ID); \2
+
+ GCB; LinkC ; LinkingConsonant
+ GCB; Virama ; Virama
+ -> uchar.h & UCharacter.GraphemeClusterBreak
+ -> these two later removed again: http://www.unicode.org/L2/L2018/18115.htm#155-A76
+
+ InSC; Consonant_Initial_Postfixed ; Consonant_Initial_Postfixed
+ -> ignore: ICU does not yet support this property
+
+ jg ; Hanifi_Rohingya_Kinna_Ya ; Hanifi_Rohingya_Kinna_Ya
+ jg ; Hanifi_Rohingya_Pa ; Hanifi_Rohingya_Pa
+ -> uchar.h & UCharacter.JoiningGroup
+
+ sc ; Dogr ; Dogra
+ sc ; Gong ; Gunjala_Gondi
+ sc ; Maka ; Makasar
+ sc ; Medf ; Medefaidrin
+ sc ; Rohg ; Hanifi_Rohingya
+ sc ; Sogd ; Sogdian
+ sc ; Sogo ; Old_Sogdian
+ -> uscript.h & com.ibm.icu.lang.UScript
+ -> Nushu had been added already
+ -> fix expectedLong names in cucdapi.c/TestUScriptCodeAPI()
+ and in com.ibm.icu.dev.test.lang.TestUScript.java
+
+ WB ; WSegSpace ; WSegSpace
+ -> uchar.h & UCharacter.WordBreak
+
+* New short names for emoji properties
+- see UTS #51
+- short names set in preparseucd.py
+
+* New properties
+- boolean emoji property Extended_Pictographic
+ -> added in preparseucd.py
+ -> uchar.h & UProperty.java
+- misc. property Equivalent_Unified_Ideograph (EqUIdeo)
+ as shown in PropertyValueAliases.txt
+ -> ignore for now
+
+* update Script metadata: SCRIPT_PROPS[] in uscript_props.cpp & UScript.ScriptMetadata
+ (not strictly necessary for NOT_ENCODED scripts)
+ $ICU_SRC/tools/unicode$ py/parsescriptmetadata.py $ICU_SRC/icu4c/source/common/unicode/uscript.h $CLDR_SRC/common/properties/scriptMetadata.txt
+
+* update spoof checker UnicodeSet initializers:
+ inclusionPat & recommendedPat in uspoof.cpp
+ INCLUSION & RECOMMENDED in SpoofChecker.java
+- make sure that the Unicode Tools tree contains the latest security data files
+- go to Unicode Tools org.unicode.text.tools.RecommendedSetGenerator
+- update the hardcoded version number there in the DIRECTORY path
+- run the tool (no special environment variables needed)
+- copy & paste from the Console output into the .cpp & .java files
+
+* generate normalization data files
+ cd $ICU_ROOT/dbg/icu4c
+ bin/gennorm2 -o $ICU_SRC/icu4c/source/common/norm2_nfc_data.h -s $ICU4C_UNIDATA/norm2 nfc.txt --csource
+ bin/gennorm2 -o $ICU4C_DATA_IN/nfc.nrm -s $ICU4C_UNIDATA/norm2 nfc.txt
+ bin/gennorm2 -o $ICU4C_DATA_IN/nfkc.nrm -s $ICU4C_UNIDATA/norm2 nfc.txt nfkc.txt
+ bin/gennorm2 -o $ICU4C_DATA_IN/nfkc_cf.nrm -s $ICU4C_UNIDATA/norm2 nfc.txt nfkc.txt nfkc_cf.txt
+ bin/gennorm2 -o $ICU4C_DATA_IN/uts46.nrm -s $ICU4C_UNIDATA/norm2 nfc.txt uts46.txt
+
+* build ICU (make install)
+ so that the tools build can pick up the new definitions from the installed header files.
+
+ $ICU_ROOT/dbg/icu4c$ echo;echo; make -j7 install > out.txt 2>&1 ; tail -n 30 out.txt ; date
+
+* build Unicode tools using CMake+make
+
+$ICU_SRC/tools/unicode/c/icudefs.txt:
+
+# Location (--prefix) of where ICU was installed.
+set(ICU_INST_DIR /usr/local/google/home/mscherer/svn.icu/trunk/inst/icu4c)
+# Location of the ICU4C source tree.
+set(ICU4C_SRC_DIR /usr/local/google/home/mscherer/svn.icu/uni/src/icu4c)
+
+ $ICU_ROOT/dbg$
+ mkdir -p tools/unicode/c
+ cd tools/unicode/c
+
+ $ICU_ROOT/dbg/tools/unicode/c$
+ cmake ../../../../src/tools/unicode/c
+ make
+
+* generate core properties data files
+ $ICU_ROOT/dbg/tools/unicode/c$
+ genprops/genprops $ICU_SRC/icu4c
+ genuca/genuca --hanOrder implicit $ICU_SRC/icu4c
+ genuca/genuca --hanOrder radical-stroke $ICU_SRC/icu4c
+- rebuild ICU (make install) & tools
+
+* Fix case props
+ genprops error: casepropsbuilder: too many exceptions words
+ genprops error: failure finalizing the data - U_BUFFER_OVERFLOW_ERROR
+- With the addition of Georgian Mtavruli capital letters,
+ there are now too many simple case mappings with big mapping deltas
+ that yield uncompressible exceptions.
+- Changing the data structure (now formatVersion 4),
+ adding one bit for no-simple-case-folding (for Cherokee), and
+ one optional slot for a big delta (for most faraway mappings),
+ together with another bit for whether that is negative.
+ This makes most Cherokee & Georgian etc. case mappings compressible,
+ reducing the number of exceptions words.
+- Further changes to gain one more bit for the exceptions index,
+ for future growth. Details see casepropsbuilder.cpp.
+
+* update uts46test.cpp and UTS46Test.java if there are new characters that are equivalent to
+ sequences with non-LDH ASCII (that is, their decompositions contain '=' or similar)
+- grep IdnaMappingTable.txt or uts46.txt for "disallowed_STD3_valid" on non-ASCII characters
+- Unicode 6.0..11.0: U+2260, U+226E, U+226F
+- nothing new in this Unicode version, no test file to update
+
+* run & fix ICU4C tests
+- Andy handles RBBI & spoof check test failures
+
+- Errors in char.txt, word.txt, word_POSIX.txt like
+ createRuleBasedBreakIterator: ICU Error "U_BRK_RULE_EMPTY_SET" at line 46, column 16
+ because \p{Grapheme_Cluster_Break = EBG} and \p{Word_Break = EBG} are empty.
+ -> Temporary(!) workaround: Add an arbitrary code point to these sets to make them
+ not empty, just to get ICU building.
+ -> Intermediate workaround: Remove $E_Base_GAZ and other now-unused variables
+ and properties together with the rules that used them (GB 10, WB 14).
+ -> Andy adjusts the rule sets further to sync with
+ Unicode 11 grapheme, word, and line break spec changes.
+
+* collation: CLDR collation root, UCA DUCET
+
+- UCA DUCET goes into Mark's Unicode tools, see
+ https://sites.google.com/site/unicodetools/home#TOC-UCA
+ diff the main mapping file, look for bad changes
+ (for example, more bytes per weight for common characters)
+ ~/svn.unitools/trunk$ sed -r -f ~/svn.cldr/uni/tools/scripts/uca/blankweights.sed ../Generated/uca/11.0.0/CollationAuxiliary/FractionalUCA.txt > ../frac-11.txt
+ ~/svn.unitools/trunk$ meld ../frac-10.txt ../frac-11.txt
+
+- CLDR root data files are checked into $CLDR_SRC/common/uca/
+ cp (Unicode Tools UCA generated)/CollationAuxiliary/* $CLDR_SRC/common/uca/
+
+- update source/data/unidata/FractionalUCA.txt with FractionalUCA_SHORT.txt
+ cp $CLDR_SRC/common/uca/FractionalUCA_SHORT.txt $ICU4C_UNIDATA/FractionalUCA.txt
+- update source/data/unidata/UCARules.txt with UCA_Rules_SHORT.txt
+ cp $ICU4C_UNIDATA/UCARules.txt /tmp/UCARules-old.txt
+ (note removing the underscore before "Rules")
+ cp $CLDR_SRC/common/uca/UCA_Rules_SHORT.txt $ICU4C_UNIDATA/UCARules.txt
+- restore TODO diffs in UCARules.txt
+ meld /tmp/UCARules-old.txt $ICU4C_UNIDATA/UCARules.txt
+- update (ICU4C)/source/test/testdata/CollationTest_*.txt
+ and (ICU4J)/main/tests/collate/src/com/ibm/icu/dev/data/CollationTest_*.txt
+ from the CLDR root files (..._CLDR_..._SHORT.txt)
+ cp $CLDR_SRC/common/uca/CollationTest_CLDR_NON_IGNORABLE_SHORT.txt $ICU_SRC/icu4c/source/test/testdata/CollationTest_NON_IGNORABLE_SHORT.txt
+ cp $CLDR_SRC/common/uca/CollationTest_CLDR_SHIFTED_SHORT.txt $ICU_SRC/icu4c/source/test/testdata/CollationTest_SHIFTED_SHORT.txt
+ cp $ICU_SRC/icu4c/source/test/testdata/CollationTest_*.txt $ICU_SRC/icu4j/main/tests/collate/src/com/ibm/icu/dev/data
+- if CLDR common/uca/unihan-index.txt changes, then update
+ CLDR common/collation/root.xml <collation type="private-unihan">
+ and regenerate (or update in parallel) $ICU_SRC/icu4c/source/data/coll/root.txt
+
+- run genuca, see command line above;
+ deal with
+ Error: Unknown script for first-primary sample character U+1180B on line 28649 of /usr/local/google/home/mscherer/svn.icu/uni/src/icu4c/source/data/unidata/FractionalUCA.txt:
+ FDD1 1180B; [71 CC 02, 05, 05] # Dogra first primary (compressible)
+ (add the character to genuca.cpp sampleCharsToScripts[])
+ + look up the USCRIPT_ code for the new sample characters
+ (should be obvious from the comment in the error output)
+ + *add* mappings to sampleCharsToScripts[], do not replace them
+ (in case the script sample characters flip-flop)
+ + insert new scripts in DUCET script order, see the top_byte table
+ at the beginning of FractionalUCA.txt
+- rebuild ICU4C
+
+* Unihan collators
+ https://sites.google.com/site/unicodetools/unihan
+- run Unicode Tools
+ org.unicode.draft.GenerateUnihanCollators
+ with VM arguments
+ -ea
+ -DSVN_WORKSPACE=/usr/local/google/home/mscherer/svn.unitools/trunk
+ -DOTHER_WORKSPACE=/usr/local/google/home/mscherer/svn.unitools
+ -DUCD_DIR=/usr/local/google/home/mscherer/svn.unitools/trunk/data
+ -DCLDR_DIR=/usr/local/google/home/mscherer/svn.cldr/uni
+ -DUVERSION=11.0.0
+- run Unicode Tools
+ org.unicode.draft.GenerateUnihanCollatorFiles
+ with the same arguments
+- check CLDR diffs
+ cd $CLDR_SRC
+ meld common/collation/zh.xml ../Generated/cldr/han/replace/zh.xml
+ meld common/transforms/Han-Latin.xml ../Generated/cldr/han/replace/Han-Latin.xml
+- copy to CLDR
+ cd $CLDR_SRC
+ cp ../Generated/cldr/han/replace/zh.xml common/collation/zh.xml
+ cp ../Generated/cldr/han/replace/Han-Latin.xml common/transforms/Han-Latin.xml
+- run CLDR unit tests, commit to CLDR
+- generate ICU zh collation data: run CLDR
+ org.unicode.cldr.icu.NewLdml2IcuConverter
+ with program arguments
+ -t collation
+ -s /usr/local/google/home/mscherer/svn.cldr/uni/common/collation
+ -m /usr/local/google/home/mscherer/svn.cldr/uni/common/supplemental
+ -d /usr/local/google/home/mscherer/svn.icu/uni/src/icu4c/source/data/coll
+ -p /usr/local/google/home/mscherer/svn.icu/uni/src/icu4c/source/data/xml/collation
+ zh
+ and VM arguments
+ -ea
+ -DCLDR_DIR=/usr/local/google/home/mscherer/svn.cldr/uni
+- rebuild ICU4C
+
+* run & fix ICU4C tests, now with new CLDR collation root data
+- run all tests with the collation test data *_SHORT.txt or the full files
+ (the full ones have comments, useful for debugging)
+- note on intltest: if collate/UCAConformanceTest fails, then
+ utility/MultithreadTest/TestCollators will fail as well;
+ fix the conformance test before looking into the multi-thread test
+
+* update Java data files
+- refresh just the UCD/UCA-related/derived files, just to be safe
+- see (ICU4C)/source/data/icu4j-readme.txt
+- mkdir -p /tmp/icu4j/com/ibm/icu/impl/data/$ICUDT
+- $ICU_ROOT/dbg/icu4c$ make ICU4J_ROOT=/tmp/icu4j icu4j-data-install
+ output:
+ ...
+ Unicode .icu files built to ./out/build/icudt61l
+ echo timestamp > uni-core-data
+ mkdir -p ./out/icu4j/com/ibm/icu/impl/data/icudt61b
+ mkdir -p ./out/icu4j/tzdata/com/ibm/icu/impl/data/icudt61b
+ echo pnames.icu uprops.icu ucase.icu ubidi.icu nfc.nrm > ./out/icu4j/add.txt
+ LD_LIBRARY_PATH=../lib:../stubdata:../tools/ctestfw:$LD_LIBRARY_PATH ../bin/icupkg ./out/tmp/icudt61l.dat ./out/icu4j/icudt61b.dat -a ./out/icu4j/add.txt -s ./out/build/icudt61l -x '*' -tb -d ./out/icu4j/com/ibm/icu/impl/data/icudt61b
+ mv ./out/icu4j/"com/ibm/icu/impl/data/icudt61b/zoneinfo64.res" ./out/icu4j/"com/ibm/icu/impl/data/icudt61b/metaZones.res" ./out/icu4j/"com/ibm/icu/impl/data/icudt61b/timezoneTypes.res" ./out/icu4j/"com/ibm/icu/impl/data/icudt61b/windowsZones.res" "./out/icu4j/tzdata/com/ibm/icu/impl/data/icudt61b"
+ jar cf ./out/icu4j/icudata.jar -C ./out/icu4j com/ibm/icu/impl/data/icudt61b/
+ mkdir -p /tmp/icu4j/main/shared/data
+ cp ./out/icu4j/icudata.jar /tmp/icu4j/main/shared/data
+ jar cf ./out/icu4j/icutzdata.jar -C ./out/icu4j/tzdata com/ibm/icu/impl/data/icudt61b/
+ mkdir -p /tmp/icu4j/main/shared/data
+ cp ./out/icu4j/icutzdata.jar /tmp/icu4j/main/shared/data
+ make[1]: Leaving directory '/usr/local/google/home/mscherer/svn.icu/uni/dbg/icu4c/data'
+- copy the big-endian Unicode data files to another location,
+ separate from the other data files,
+ and then refresh ICU4J
+ cd $ICU_ROOT/dbg/icu4c/data/out/icu4j
+ mkdir -p /tmp/icu4j/com/ibm/icu/impl/data/$ICUDT/coll
+ mkdir -p /tmp/icu4j/com/ibm/icu/impl/data/$ICUDT/brkitr
+ cp com/ibm/icu/impl/data/$ICUDT/confusables.cfu /tmp/icu4j/com/ibm/icu/impl/data/$ICUDT
+ cp com/ibm/icu/impl/data/$ICUDT/*.icu /tmp/icu4j/com/ibm/icu/impl/data/$ICUDT
+ rm /tmp/icu4j/com/ibm/icu/impl/data/$ICUDT/cnvalias.icu
+ cp com/ibm/icu/impl/data/$ICUDT/*.nrm /tmp/icu4j/com/ibm/icu/impl/data/$ICUDT
+ cp com/ibm/icu/impl/data/$ICUDT/coll/* /tmp/icu4j/com/ibm/icu/impl/data/$ICUDT/coll
+ cp com/ibm/icu/impl/data/$ICUDT/brkitr/* /tmp/icu4j/com/ibm/icu/impl/data/$ICUDT/brkitr
+ jar uvf $ICU_SRC/icu4j/main/shared/data/icudata.jar -C /tmp/icu4j com/ibm/icu/impl/data/$ICUDT
+
+* When refreshing all of ICU4J data from ICU4C
+- $ICU_ROOT/dbg/icu4c$ make ICU4J_ROOT=/tmp/icu4j icu4j-data-install
+- cp /tmp/icu4j/main/shared/data/icudata.jar $ICU_SRC/icu4j/main/shared/data
+or
+- $ICU_ROOT/dbg/icu4c$ make ICU4J_ROOT=$ICU_SRC/icu4j icu4j-data-install
+
+* update CollationFCD.java
+ + copy & paste the initializers of lcccIndex[] etc. from
+ ICU4C/source/i18n/collationfcd.cpp to
+ ICU4J/main/classes/collate/src/com/ibm/icu/impl/coll/CollationFCD.java
+
+* refresh Java test .txt files
+- copy new .txt files into ICU4J's main/tests/core/src/com/ibm/icu/dev/data/unicode
+ cd $ICU_SRC/icu4c/source/data/unidata
+ cp confusables.txt confusablesWholeScript.txt NormalizationCorrections.txt NormalizationTest.txt SpecialCasing.txt UnicodeData.txt $ICU_SRC/icu4j/main/tests/core/src/com/ibm/icu/dev/data/unicode
+ cd ../../test/testdata
+ cp BidiCharacterTest.txt BidiTest.txt IdnaTestV2.txt $ICU_SRC/icu4j/main/tests/core/src/com/ibm/icu/dev/data/unicode
+ cp $UNICODE_DATA/ucd/CompositionExclusions.txt $ICU_SRC/icu4j/main/tests/core/src/com/ibm/icu/dev/data/unicode
+
+* run & fix ICU4J tests
+
+*** API additions
+- send notice to icu-design about new born-@stable API (enum constants etc.)
+
+*** CLDR numbering systems
+- look for new sets of decimal digits (gc=ND & nv=4) and add to CLDR
+ Unicode 11: using Unicode 11 CLDR ticket #10978
+ rohg 10D30..10D39 Hanifi_Rohingya
+ gong 11DA0..11DA9 Gunjala_Gondi
+ Earlier: CLDR tickets specific to adding new numbering systems.
+ Unicode 10: http://unicode.org/cldr/trac/ticket/10219
+ Unicode 9: http://unicode.org/cldr/trac/ticket/9692
+
+*** merge the Unicode update branches back onto the trunk
+- do not merge the icudata.jar and testdata.jar,
+ instead rebuild them from merged & tested ICU4C
+- make sure that changes to Unicode tools are checked in:
+ http://www.unicode.org/utility/trac/log/trunk/unicodetools
+
+---------------------------------------------------------------------------- ***
+
Unicode 10.0 update for ICU 60
http://www.unicode.org/versions/Unicode10.0.0/
diff --git a/Build/source/libs/icu/icu-src/source/data/unidata/confusables.txt b/Build/source/libs/icu/icu-src/source/data/unidata/confusables.txt
index 947fa7b4ca8..0b8c1c5ff67 100644
--- a/Build/source/libs/icu/icu-src/source/data/unidata/confusables.txt
+++ b/Build/source/libs/icu/icu-src/source/data/unidata/confusables.txt
@@ -1,11 +1,11 @@
# confusables.txt
-# Date: 2017-04-08, 16:13:41 GMT
-# © 2017 Unicode®, Inc.
+# Date: 2018-03-13, 10:46:37 GMT
+# © 2018 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# For terms of use, see http://www.unicode.org/terms_of_use.html
#
-# Unicode Security Mechanisms for UTR #39
-# Version: 10.0.0
+# Unicode Security Mechanisms for UTS #39
+# Version: 11.0.0
#
# For documentation and usage, see http://www.unicode.org/reports/tr39
#
@@ -373,6 +373,10 @@ A78F ; 00B7 ; MA # ( ꞏ → · ) LATIN LETTER SINOLOGICAL DOT → MIDDLE DOT #
152F ; 00B7 0034 ; MA # ( ᔯ → ·4 ) CANADIAN SYLLABICS YWE → MIDDLE DOT, DIGIT FOUR # →ᐧ4→
+147E ; 00B7 0062 ; MA # ( ᑾ → ·b ) CANADIAN SYLLABICS KWA → MIDDLE DOT, LATIN SMALL LETTER B # →ᐧᑲ→
+
+1480 ; 00B7 0062 0307 ; MA # ( ᒀ → ·ḃ ) CANADIAN SYLLABICS KWAA → MIDDLE DOT, LATIN SMALL LETTER B, COMBINING DOT ABOVE # →ᐧᑳ→
+
147A ; 00B7 0064 ; MA # ( ᑺ → ·d ) CANADIAN SYLLABICS KWO → MIDDLE DOT, LATIN SMALL LETTER D # →ᐧᑯ→
1498 ; 00B7 004A ; MA # ( ᒘ → ·J ) CANADIAN SYLLABICS CWO → MIDDLE DOT, LATIN CAPITAL LETTER J # →ᐧᒍ→
@@ -428,10 +432,6 @@ A78F ; 00B7 ; MA # ( ꞏ → · ) LATIN LETTER SINOLOGICAL DOT → MIDDLE DOT #
147C ; 00B7 1470 ; MA # ( ᑼ → ·ᑰ ) CANADIAN SYLLABICS KWOO → MIDDLE DOT, CANADIAN SYLLABICS KOO # →ᐧᑰ→
-147E ; 00B7 1472 ; MA # ( ᑾ → ·ᑲ ) CANADIAN SYLLABICS KWA → MIDDLE DOT, CANADIAN SYLLABICS KA # →ᐧᑲ→
-
-1480 ; 00B7 1473 ; MA # ( ᒀ → ·ᑳ ) CANADIAN SYLLABICS KWAA → MIDDLE DOT, CANADIAN SYLLABICS KAA # →ᐧᑳ→
-
1492 ; 00B7 1489 ; MA # ( ᒒ → ·ᒉ ) CANADIAN SYLLABICS CWE → MIDDLE DOT, CANADIAN SYLLABICS CE # →ᐧᒉ→
1494 ; 00B7 148B ; MA # ( ᒔ → ·ᒋ ) CANADIAN SYLLABICS CWI → MIDDLE DOT, CANADIAN SYLLABICS CI # →ᐧᒋ→
@@ -593,7 +593,7 @@ FF40 ; 0027 ; MA #* ( ` → ' ) FULLWIDTH GRAVE ACCENT → APOSTROPHE # →‘
02B9 ; 0027 ; MA # ( ʹ → ' ) MODIFIER LETTER PRIME → APOSTROPHE #
0374 ; 0027 ; MA # ( ʹ → ' ) GREEK NUMERAL SIGN → APOSTROPHE # →′→
02C8 ; 0027 ; MA # ( ˈ → ' ) MODIFIER LETTER VERTICAL LINE → APOSTROPHE #
-02CA ; 0027 ; MA # ( ˊ → ' ) MODIFIER LETTER ACUTE ACCENT → APOSTROPHE # →ʹ→→′→
+02CA ; 0027 ; MA # ( ˊ → ' ) MODIFIER LETTER ACUTE ACCENT → APOSTROPHE # →΄→→ʹ→
02CB ; 0027 ; MA # ( ˋ → ' ) MODIFIER LETTER GRAVE ACCENT → APOSTROPHE # →`→→‘→
02F4 ; 0027 ; MA #* ( ˴ → ' ) MODIFIER LETTER MIDDLE GRAVE ACCENT → APOSTROPHE # →ˋ→→`→→‘→
02BB ; 0027 ; MA # ( ʻ → ' ) MODIFIER LETTER TURNED COMMA → APOSTROPHE # →‘→
@@ -1071,7 +1071,7 @@ A714 ; 02EB ; MA #* ( ꜔ → ˫ ) MODIFIER LETTER MID LEFT-STEM TONE BAR → MO
25CB ; 00B0 ; MA #* ( ○ → ° ) WHITE CIRCLE → DEGREE SIGN # →◦→→∘→
25E6 ; 00B0 ; MA #* ( ◦ → ° ) WHITE BULLET → DEGREE SIGN # →∘→
-235C ; 00B0 0332 ; MA #* ( ⍜ → °̲ ) APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR → DEGREE SIGN, COMBINING LOW LINE # →○̲→→∘̲→
+235C ; 00B0 0332 ; MA #* ( ⍜ → °̲ ) APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR → DEGREE SIGN, COMBINING LOW LINE # →○̲→
2364 ; 00B0 0308 ; MA #* ( ⍤ → °̈ ) APL FUNCTIONAL SYMBOL JOT DIAERESIS → DEGREE SIGN, COMBINING DIAERESIS # →◦̈→→∘̈→
@@ -1295,9 +1295,6 @@ FE34 ; 2307 ; MA # ( ︴ → ⌇ ) PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
23C1 ; 2355 ; MA #* ( ⏁ → ⍕ ) DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE → APL FUNCTIONAL SYMBOL UP TACK JOT #
-00D6 ; 2365 ; MA # ( Ö → ⍥ ) LATIN CAPITAL LETTER O WITH DIAERESIS → APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS #
-0150 ; 2365 ; MA # ( Ő → ⍥ ) LATIN CAPITAL LETTER O WITH DOUBLE ACUTE → APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS # →Ö→
-
23C6 ; 236D ; MA #* ( ⏆ → ⍭ ) DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE → APL FUNCTIONAL SYMBOL STILE TILDE #
2638 ; 2388 ; MA #* ( ☸ → ⎈ ) WHEEL OF DHARMA → HELM SYMBOL #
@@ -1801,6 +1798,7 @@ A4EF ; 2C6F ; MA # ( ꓯ → Ɐ ) LISU LETTER AE → LATIN CAPITAL LETTER TURNE
0184 ; 0062 ; MA # ( Ƅ → b ) LATIN CAPITAL LETTER TONE SIX → LATIN SMALL LETTER B #
042C ; 0062 ; MA # ( Ь → b ) CYRILLIC CAPITAL LETTER SOFT SIGN → LATIN SMALL LETTER B # →Ƅ→
13CF ; 0062 ; MA # ( Ꮟ → b ) CHEROKEE LETTER SI → LATIN SMALL LETTER B #
+1472 ; 0062 ; MA # ( ᑲ → b ) CANADIAN SYLLABICS KA → LATIN SMALL LETTER B #
15AF ; 0062 ; MA # ( ᖯ → b ) CANADIAN SYLLABICS AIVILIK B → LATIN SMALL LETTER B #
FF22 ; 0042 ; MA # ( B → B ) FULLWIDTH LATIN CAPITAL LETTER B → LATIN CAPITAL LETTER B # →Β→
@@ -1834,6 +1832,8 @@ A4D0 ; 0042 ; MA # ( ꓐ → B ) LISU LETTER BA → LATIN CAPITAL LETTER B #
0253 ; 0062 0314 ; MA # ( ɓ → b̔ ) LATIN SMALL LETTER B WITH HOOK → LATIN SMALL LETTER B, COMBINING REVERSED COMMA ABOVE #
+1473 ; 0062 0307 ; MA # ( ᑳ → ḃ ) CANADIAN SYLLABICS KAA → LATIN SMALL LETTER B, COMBINING DOT ABOVE #
+
0183 ; 0062 0304 ; MA # ( ƃ → b̄ ) LATIN SMALL LETTER B WITH TOPBAR → LATIN SMALL LETTER B, COMBINING MACRON #
0182 ; 0062 0304 ; MA # ( Ƃ → b̄ ) LATIN CAPITAL LETTER B WITH TOPBAR → LATIN SMALL LETTER B, COMBINING MACRON #
0411 ; 0062 0304 ; MA # ( Б → b̄ ) CYRILLIC CAPITAL LETTER BE → LATIN SMALL LETTER B, COMBINING MACRON # →Ƃ→
@@ -1844,6 +1844,12 @@ A4D0 ; 0042 ; MA # ( ꓐ → B ) LISU LETTER BA → LATIN CAPITAL LETTER B #
0463 ; 0062 0335 ; MA # ( ѣ → b̵ ) CYRILLIC SMALL LETTER YAT → LATIN SMALL LETTER B, COMBINING SHORT STROKE OVERLAY # →Ь̵→
0462 ; 0062 0335 ; MA # ( Ѣ → b̵ ) CYRILLIC CAPITAL LETTER YAT → LATIN SMALL LETTER B, COMBINING SHORT STROKE OVERLAY # →Ь̵→
+147F ; 0062 00B7 ; MA # ( ᑿ → b· ) CANADIAN SYLLABICS WEST-CREE KWA → LATIN SMALL LETTER B, MIDDLE DOT # →ᑲᐧ→
+
+1481 ; 0062 0307 00B7 ; MA # ( ᒁ → ḃ· ) CANADIAN SYLLABICS WEST-CREE KWAA → LATIN SMALL LETTER B, COMBINING DOT ABOVE, MIDDLE DOT # →ᑳᐧ→
+
+1488 ; 0062 0027 ; MA # ( ᒈ → b' ) CANADIAN SYLLABICS SOUTH-SLAVEY KAH → LATIN SMALL LETTER B, APOSTROPHE # →ᑲᑊ→
+
042B ; 0062 006C ; MA # ( Ы → bl ) CYRILLIC CAPITAL LETTER YERU → LATIN SMALL LETTER B, LATIN SMALL LETTER L # →ЬІ→→Ь1→
0432 ; 0299 ; MA # ( в → ʙ ) CYRILLIC SMALL LETTER VE → LATIN LETTER SMALL CAPITAL B #
@@ -2347,7 +2353,7 @@ A6B1 ; 2C75 ; MA # ( ꚱ → Ⱶ ) BAMUM LETTER NDAA → LATIN CAPITAL LETTER HA
A795 ; A727 ; MA # ( ꞕ → ꜧ ) LATIN SMALL LETTER H WITH PALATAL HOOK → LATIN SMALL LETTER HENG #
02DB ; 0069 ; MA #* ( ˛ → i ) OGONEK → LATIN SMALL LETTER I # →ͺ→→ι→→ι→
-2373 ; 0069 ; MA #* ( ⍳ → i ) APL FUNCTIONAL SYMBOL IOTA → LATIN SMALL LETTER I # →ι→
+2373 ; 0069 ; MA #* ( ⍳ → i ) APL FUNCTIONAL SYMBOL IOTA → LATIN SMALL LETTER I # →ɩ→
FF49 ; 0069 ; MA # ( i → i ) FULLWIDTH LATIN SMALL LETTER I → LATIN SMALL LETTER I # →і→
2170 ; 0069 ; MA # ( ⅰ → i ) SMALL ROMAN NUMERAL ONE → LATIN SMALL LETTER I #
2139 ; 0069 ; MA # ( ℹ → i ) INFORMATION SOURCE → LATIN SMALL LETTER I #
@@ -2994,6 +3000,8 @@ A4F3 ; 004F ; MA # ( ꓳ → O ) LISU LETTER O → LATIN CAPITAL LETTER O #
06FF ; 006F 0302 ; MA # ( ‎ۿ‎ → ô ) ARABIC LETTER HEH WITH INVERTED V → LATIN SMALL LETTER O, COMBINING CIRCUMFLEX ACCENT # →‎ھٛ‎→
+0150 ; 00D6 ; MA # ( Ő → Ö ) LATIN CAPITAL LETTER O WITH DOUBLE ACUTE → LATIN CAPITAL LETTER O WITH DIAERESIS #
+
00F8 ; 006F 0338 ; MA # ( ø → o̸ ) LATIN SMALL LETTER O WITH STROKE → LATIN SMALL LETTER O, COMBINING LONG SOLIDUS OVERLAY # →o̷→
AB3E ; 006F 0338 ; MA # ( ꬾ → o̸ ) LATIN SMALL LETTER BLACKLETTER O WITH STROKE → LATIN SMALL LETTER O, COMBINING LONG SOLIDUS OVERLAY # →ø→→o̷→
@@ -4388,6 +4396,7 @@ FB5A ; 0680 ; MA # ( ‎ﭚ‎ → ‎ڀ‎ ) ARABIC LETTER BEHEH ISOLATED FORM
08A9 ; 0754 ; MA # ( ‎ࢩ‎ → ‎ݔ‎ ) ARABIC LETTER YEH WITH TWO DOTS BELOW AND DOT ABOVE → ARABIC LETTER BEH WITH TWO DOTS BELOW AND DOT ABOVE #
0767 ; 0754 ; MA # ( ‎ݧ‎ → ‎ݔ‎ ) ARABIC LETTER NOON WITH TWO DOTS BELOW → ARABIC LETTER BEH WITH TWO DOTS BELOW AND DOT ABOVE #
+2365 ; 0629 ; MA #* ( ⍥ → ‎ة‎ ) APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS → ARABIC LETTER TEH MARBUTA # →ö→
00F6 ; 0629 ; MA # ( ö → ‎ة‎ ) LATIN SMALL LETTER O WITH DIAERESIS → ARABIC LETTER TEH MARBUTA #
FE94 ; 0629 ; MA # ( ‎ﺔ‎ → ‎ة‎ ) ARABIC LETTER TEH MARBUTA FINAL FORM → ARABIC LETTER TEH MARBUTA #
FE93 ; 0629 ; MA # ( ‎ﺓ‎ → ‎ة‎ ) ARABIC LETTER TEH MARBUTA ISOLATED FORM → ARABIC LETTER TEH MARBUTA #
@@ -6028,12 +6037,6 @@ A9A3 ; A99D ; MA # ( ꦣ → ꦝ ) JAVANESE LETTER DA MAHAPRANA → JAVANESE LET
147D ; 1470 00B7 ; MA # ( ᑽ → ᑰ· ) CANADIAN SYLLABICS WEST-CREE KWOO → CANADIAN SYLLABICS KOO, MIDDLE DOT # →ᑰᐧ→
-147F ; 1472 00B7 ; MA # ( ᑿ → ᑲ· ) CANADIAN SYLLABICS WEST-CREE KWA → CANADIAN SYLLABICS KA, MIDDLE DOT # →ᑲᐧ→
-
-1488 ; 1472 0027 ; MA # ( ᒈ → ᑲ' ) CANADIAN SYLLABICS SOUTH-SLAVEY KAH → CANADIAN SYLLABICS KA, APOSTROPHE # →ᑲᑊ→
-
-1481 ; 1473 00B7 ; MA # ( ᒁ → ᑳ· ) CANADIAN SYLLABICS WEST-CREE KWAA → CANADIAN SYLLABICS KAA, MIDDLE DOT # →ᑳᐧ→
-
1603 ; 1489 ; MA # ( ᘃ → ᒉ ) CANADIAN SYLLABICS CARRIER NO → CANADIAN SYLLABICS CE #
1493 ; 1489 00B7 ; MA # ( ᒓ → ᒉ· ) CANADIAN SYLLABICS WEST-CREE CWE → CANADIAN SYLLABICS CE, MIDDLE DOT # →ᒉᐧ→
@@ -6108,9 +6111,9 @@ A9A3 ; A99D ; MA # ( ꦣ → ꦝ ) JAVANESE LETTER DA MAHAPRANA → JAVANESE LET
150C ; 150B 003C ; MA # ( ᔌ → ᔋ< ) CANADIAN SYLLABICS NASKAPI SPWA → CANADIAN SYLLABICS NASKAPI S-W, LESS-THAN SIGN # →ᔋᐸ→
-150D ; 150B 1455 ; MA # ( ᔍ → ᔋᑕ ) CANADIAN SYLLABICS NASKAPI STWA → CANADIAN SYLLABICS NASKAPI S-W, CANADIAN SYLLABICS TA #
+150E ; 150B 0062 ; MA # ( ᔎ → ᔋb ) CANADIAN SYLLABICS NASKAPI SKWA → CANADIAN SYLLABICS NASKAPI S-W, LATIN SMALL LETTER B # →ᔋᑲ→
-150E ; 150B 1472 ; MA # ( ᔎ → ᔋᑲ ) CANADIAN SYLLABICS NASKAPI SKWA → CANADIAN SYLLABICS NASKAPI S-W, CANADIAN SYLLABICS KA #
+150D ; 150B 1455 ; MA # ( ᔍ → ᔋᑕ ) CANADIAN SYLLABICS NASKAPI STWA → CANADIAN SYLLABICS NASKAPI S-W, CANADIAN SYLLABICS TA #
150F ; 150B 1490 ; MA # ( ᔏ → ᔋᒐ ) CANADIAN SYLLABICS NASKAPI SCWA → CANADIAN SYLLABICS NASKAPI S-W, CANADIAN SYLLABICS CA #
@@ -6150,6 +6153,10 @@ A9A3 ; A99D ; MA # ( ꦣ → ꦝ ) JAVANESE LETTER DA MAHAPRANA → JAVANESE LET
154F ; 154C 00B7 ; MA # ( ᕏ → ᕌ· ) CANADIAN SYLLABICS WEST-CREE RWAA → CANADIAN SYLLABICS RAA, MIDDLE DOT # →ᕌᐧ→
+1583 ; 1550 0062 ; MA # ( ᖃ → ᕐb ) CANADIAN SYLLABICS QA → CANADIAN SYLLABICS R, LATIN SMALL LETTER B # →ᕐᑲ→
+
+1584 ; 1550 0062 0307 ; MA # ( ᖄ → ᕐḃ ) CANADIAN SYLLABICS QAA → CANADIAN SYLLABICS R, LATIN SMALL LETTER B, COMBINING DOT ABOVE # →ᕐᑳ→
+
1581 ; 1550 0064 ; MA # ( ᖁ → ᕐd ) CANADIAN SYLLABICS QO → CANADIAN SYLLABICS R, LATIN SMALL LETTER D # →ᕐᑯ→
157F ; 1550 0050 ; MA # ( ᕿ → ᕐP ) CANADIAN SYLLABICS QI → CANADIAN SYLLABICS R, LATIN CAPITAL LETTER P # →ᕐᑭ→
@@ -6162,10 +6169,6 @@ A9A3 ; A99D ; MA # ( ꦣ → ꦝ ) JAVANESE LETTER DA MAHAPRANA → JAVANESE LET
1582 ; 1550 1470 ; MA # ( ᖂ → ᕐᑰ ) CANADIAN SYLLABICS QOO → CANADIAN SYLLABICS R, CANADIAN SYLLABICS KOO #
-1583 ; 1550 1472 ; MA # ( ᖃ → ᕐᑲ ) CANADIAN SYLLABICS QA → CANADIAN SYLLABICS R, CANADIAN SYLLABICS KA #
-
-1584 ; 1550 1473 ; MA # ( ᖄ → ᕐᑳ ) CANADIAN SYLLABICS QAA → CANADIAN SYLLABICS R, CANADIAN SYLLABICS KAA #
-
1585 ; 1550 1483 ; MA # ( ᖅ → ᕐᒃ ) CANADIAN SYLLABICS Q → CANADIAN SYLLABICS R, CANADIAN SYLLABICS K #
155C ; 155A 00B7 ; MA # ( ᕜ → ᕚ· ) CANADIAN SYLLABICS WEST-CREE FWAA → CANADIAN SYLLABICS FAA, MIDDLE DOT # →ᕚᐧ→
@@ -9611,5 +9614,5 @@ FACE ; 9F9C ; MA # ( 龜 → 龜 ) CJK COMPATIBILITY IDEOGRAPH-FACE → CJK UNIF
2FD5 ; 9FA0 ; MA #* ( ⿕ → 龠 ) KANGXI RADICAL FLUTE → CJK UNIFIED IDEOGRAPH-9FA0 #
-# total: 6294
+# total: 6296
diff --git a/Build/source/libs/icu/icu-src/source/data/unidata/norm2/nfc.txt b/Build/source/libs/icu/icu-src/source/data/unidata/norm2/nfc.txt
index d2c9a0a1734..51bc9fc538b 100644
--- a/Build/source/libs/icu/icu-src/source/data/unidata/norm2/nfc.txt
+++ b/Build/source/libs/icu/icu-src/source/data/unidata/norm2/nfc.txt
@@ -9,7 +9,7 @@
#
# Complete data for Unicode NFC normalization.
-* Unicode 10.0.0
+* Unicode 11.0.0
# Canonical_Combining_Class (ccc) values
0300..0314:230
@@ -126,11 +126,13 @@
07EB..07F1:230
07F2:220
07F3:230
+07FD:220
0816..0819:230
081B..0823:230
0825..0827:230
0829..082D:230
0859..085B:220
+08D3:220
08D4..08E1:230
08E3:220
08E4..08E5:230
@@ -154,6 +156,7 @@
0953..0954:230
09BC:7
09CD:9
+09FE:230
0A3C:7
0A4D:9
0ABC:7
@@ -301,6 +304,12 @@ FE2E..FE2F:230
10A3F:9
10AE5:230
10AE6:220
+10D24..10D27:230
+10F46..10F47:220
+10F48..10F4A:230
+10F4B:220
+10F4C:230
+10F4D..10F50:220
11046:9
1107F:9
110B9:9
@@ -314,12 +323,13 @@ FE2E..FE2F:230
11236:7
112E9:7
112EA:9
-1133C:7
+1133B..1133C:7
1134D:9
11366..1136C:230
11370..11374:230
11442:9
11446:7
+1145E:230
114C2:9
114C3:7
115BF:9
@@ -328,12 +338,15 @@ FE2E..FE2F:230
116B6:9
116B7:7
1172B:9
+11839:9
+1183A:7
11A34:9
11A47:9
11A99:9
11C3F:9
11D42:7
11D44..11D45:9
+11D97:9
16AF0..16AF4:1
16B30..16B36:230
1BC9E:1
diff --git a/Build/source/libs/icu/icu-src/source/data/unidata/norm2/nfkc.txt b/Build/source/libs/icu/icu-src/source/data/unidata/norm2/nfkc.txt
index 8b71727f89f..416c6800ec2 100644
--- a/Build/source/libs/icu/icu-src/source/data/unidata/norm2/nfkc.txt
+++ b/Build/source/libs/icu/icu-src/source/data/unidata/norm2/nfkc.txt
@@ -13,7 +13,7 @@
# to NFKC one-way mappings.
# Use this file as the second gennorm2 input file after nfc.txt.
-* Unicode 10.0.0
+* Unicode 11.0.0
00A0>0020
00A8>0020 0308
diff --git a/Build/source/libs/icu/icu-src/source/data/unidata/norm2/nfkc_cf.txt b/Build/source/libs/icu/icu-src/source/data/unidata/norm2/nfkc_cf.txt
index 726c5b5adce..d37386e0506 100644
--- a/Build/source/libs/icu/icu-src/source/data/unidata/norm2/nfkc_cf.txt
+++ b/Build/source/libs/icu/icu-src/source/data/unidata/norm2/nfkc_cf.txt
@@ -12,7 +12,7 @@
# and reformatted into syntax for the gennorm2 Normalizer2 data generator tool.
# Use this file as the third gennorm2 input file after nfc.txt and nfkc.txt.
-* Unicode 10.0.0
+* Unicode 11.0.0
0041>0061
0042>0062
@@ -648,6 +648,52 @@
1C86>044A
1C87>0463
1C88>A64B
+1C90>10D0
+1C91>10D1
+1C92>10D2
+1C93>10D3
+1C94>10D4
+1C95>10D5
+1C96>10D6
+1C97>10D7
+1C98>10D8
+1C99>10D9
+1C9A>10DA
+1C9B>10DB
+1C9C>10DC
+1C9D>10DD
+1C9E>10DE
+1C9F>10DF
+1CA0>10E0
+1CA1>10E1
+1CA2>10E2
+1CA3>10E3
+1CA4>10E4
+1CA5>10E5
+1CA6>10E6
+1CA7>10E7
+1CA8>10E8
+1CA9>10E9
+1CAA>10EA
+1CAB>10EB
+1CAC>10EC
+1CAD>10ED
+1CAE>10EE
+1CAF>10EF
+1CB0>10F0
+1CB1>10F1
+1CB2>10F2
+1CB3>10F3
+1CB4>10F4
+1CB5>10F5
+1CB6>10F6
+1CB7>10F7
+1CB8>10F8
+1CB9>10F9
+1CBA>10FA
+1CBD>10FD
+1CBE>10FE
+1CBF>10FF
1D2C>0061
1D2D>00E6
1D2E>0062
@@ -2403,6 +2449,7 @@ A7B2>029D
A7B3>AB53
A7B4>A7B5
A7B6>A7B7
+A7B8>A7B9
A7F8>0127
A7F9>0153
AB5C>A727
@@ -3984,6 +4031,38 @@ FFF0..FFF8>
118BD>118DD
118BE>118DE
118BF>118DF
+16E40>16E60
+16E41>16E61
+16E42>16E62
+16E43>16E63
+16E44>16E64
+16E45>16E65
+16E46>16E66
+16E47>16E67
+16E48>16E68
+16E49>16E69
+16E4A>16E6A
+16E4B>16E6B
+16E4C>16E6C
+16E4D>16E6D
+16E4E>16E6E
+16E4F>16E6F
+16E50>16E70
+16E51>16E71
+16E52>16E72
+16E53>16E73
+16E54>16E74
+16E55>16E75
+16E56>16E76
+16E57>16E77
+16E58>16E78
+16E59>16E79
+16E5A>16E7A
+16E5B>16E7B
+16E5C>16E7C
+16E5D>16E7D
+16E5E>16E7E
+16E5F>16E7F
1BCA0..1BCA3>
1D15E>1D157 1D165
1D15F>1D158 1D165
diff --git a/Build/source/libs/icu/icu-src/source/data/unidata/norm2/uts46.txt b/Build/source/libs/icu/icu-src/source/data/unidata/norm2/uts46.txt
index efbe3c02cd2..e360044f856 100644
--- a/Build/source/libs/icu/icu-src/source/data/unidata/norm2/uts46.txt
+++ b/Build/source/libs/icu/icu-src/source/data/unidata/norm2/uts46.txt
@@ -1,7 +1,7 @@
# Original file:
-# IdnaMappingTable-10.0.0.txt
-# Date: 2017-02-23, 14:18:32 GMT
-# © 2017 Unicode®, Inc.
+# IdnaMappingTable-11.0.0.txt
+# Date: 2018-03-14, 08:27:19 GMT
+# © 2018 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# For terms of use, see http://www.unicode.org/terms_of_use.html
#
@@ -879,10 +879,10 @@
0557..0558 >FFFD # NA <reserved-0557>..<reserved-0558>
# 0559 valid # 1.1 ARMENIAN MODIFIER LETTER LEFT HALF RING
# 055A..055F valid # 1.1 ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK
-0560 >FFFD # NA <reserved-0560>
+# 0560 valid # 11.0 ARMENIAN SMALL LETTER TURNED AYB
# 0561..0586 valid # 1.1 ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LETTER FEH
0587 >0565 0582 # 1.1 ARMENIAN SMALL LIGATURE ECH YIWN
-0588 >FFFD # NA <reserved-0588>
+# 0588 valid # 11.0 ARMENIAN SMALL LETTER YI WITH STROKE
# 0589 valid # 1.1 ARMENIAN FULL STOP
# 058A valid # 3.0 ARMENIAN HYPHEN
058B..058C >FFFD # NA <reserved-058B>..<reserved-058C>
@@ -906,7 +906,8 @@
# 05C7 valid # 4.1 HEBREW POINT QAMATS QATAN
05C8..05CF >FFFD # NA <reserved-05C8>..<reserved-05CF>
# 05D0..05EA valid # 1.1 HEBREW LETTER ALEF..HEBREW LETTER TAV
-05EB..05EF >FFFD # NA <reserved-05EB>..<reserved-05EF>
+05EB..05EE >FFFD # NA <reserved-05EB>..<reserved-05EE>
+# 05EF valid # 11.0 HEBREW YOD TRIANGLE
# 05F0..05F4 valid # 1.1 HEBREW LIGATURE YIDDISH DOUBLE VAV..HEBREW PUNCTUATION GERSHAYIM
05F5..05FF >FFFD # NA <reserved-05F5>..<reserved-05FF>
0600..0603 >FFFD # 4.0 ARABIC NUMBER SIGN..ARABIC SIGN SAFHA
@@ -973,7 +974,9 @@
07B2..07BF >FFFD # NA <reserved-07B2>..<reserved-07BF>
# 07C0..07F5 valid # 5.0 NKO DIGIT ZERO..NKO LOW TONE APOSTROPHE
# 07F6..07FA valid # 5.0 NKO SYMBOL OO DENNEN..NKO LAJANYALAN
-07FB..07FF >FFFD # NA <reserved-07FB>..<reserved-07FF>
+07FB..07FC >FFFD # NA <reserved-07FB>..<reserved-07FC>
+# 07FD valid # 11.0 NKO DANTAYALAN
+# 07FE..07FF valid # 11.0 NKO DOROME SIGN..NKO TAMAN SIGN
# 0800..082D valid # 5.2 SAMARITAN LETTER ALAF..SAMARITAN MARK NEQUDAA
082E..082F >FFFD # NA <reserved-082E>..<reserved-082F>
# 0830..083E valid # 5.2 SAMARITAN PUNCTUATION NEQUDAA..SAMARITAN PUNCTUATION ANNAAU
@@ -991,7 +994,8 @@
# 08B3..08B4 valid # 8.0 ARABIC LETTER AIN WITH THREE DOTS BELOW..ARABIC LETTER KAF WITH DOT BELOW
08B5 >FFFD # NA <reserved-08B5>
# 08B6..08BD valid # 9.0 ARABIC LETTER BEH WITH SMALL MEEM ABOVE..ARABIC LETTER AFRICAN NOON
-08BE..08D3 >FFFD # NA <reserved-08BE>..<reserved-08D3>
+08BE..08D2 >FFFD # NA <reserved-08BE>..<reserved-08D2>
+# 08D3 valid # 11.0 ARABIC SMALL LOW WAW
# 08D4..08E1 valid # 9.0 ARABIC SMALL HIGH WORD AR-RUB..ARABIC SMALL HIGH SIGN SAFHA
08E2 >FFFD # 9.0 ARABIC DISPUTED END OF AYAH
# 08E3 valid # 8.0 ARABIC TURNED DAMMA BELOW
@@ -1064,7 +1068,8 @@
# 09FB valid # 5.2 BENGALI GANDA MARK
# 09FC valid # 10.0 BENGALI LETTER VEDIC ANUSVARA
# 09FD valid # 10.0 BENGALI ABBREVIATION SIGN
-09FE..0A00 >FFFD # NA <reserved-09FE>..<reserved-0A00>
+# 09FE valid # 11.0 BENGALI SANDHI MARK
+09FF..0A00 >FFFD # NA <reserved-09FF>..<reserved-0A00>
# 0A01 valid # 4.0 GURMUKHI SIGN ADAK BINDI
# 0A02 valid # 1.1 GURMUKHI SIGN BINDI
# 0A03 valid # 4.0 GURMUKHI SIGN VISARGA
@@ -1104,7 +1109,8 @@
0A5F..0A65 >FFFD # NA <reserved-0A5F>..<reserved-0A65>
# 0A66..0A74 valid # 1.1 GURMUKHI DIGIT ZERO..GURMUKHI EK ONKAR
# 0A75 valid # 5.1 GURMUKHI SIGN YAKASH
-0A76..0A80 >FFFD # NA <reserved-0A76>..<reserved-0A80>
+# 0A76 valid # 11.0 GURMUKHI ABBREVIATION SIGN
+0A77..0A80 >FFFD # NA <reserved-0A77>..<reserved-0A80>
# 0A81..0A83 valid # 1.1 GUJARATI SIGN CANDRABINDU..GUJARATI SIGN VISARGA
0A84 >FFFD # NA <reserved-0A84>
# 0A85..0A8B valid # 1.1 GUJARATI LETTER A..GUJARATI LETTER VOCALIC R
@@ -1213,7 +1219,7 @@
0BFB..0BFF >FFFD # NA <reserved-0BFB>..<reserved-0BFF>
# 0C00 valid # 7.0 TELUGU SIGN COMBINING CANDRABINDU ABOVE
# 0C01..0C03 valid # 1.1 TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
-0C04 >FFFD # NA <reserved-0C04>
+# 0C04 valid # 11.0 TELUGU SIGN COMBINING ANUSVARA ABOVE
# 0C05..0C0C valid # 1.1 TELUGU LETTER A..TELUGU LETTER VOCALIC L
0C0D >FFFD # NA <reserved-0C0D>
# 0C0E..0C10 valid # 1.1 TELUGU LETTER E..TELUGU LETTER AI
@@ -1245,7 +1251,7 @@
# 0C80 valid # 9.0 KANNADA SIGN SPACING CANDRABINDU
# 0C81 valid # 7.0 KANNADA SIGN CANDRABINDU
# 0C82..0C83 valid # 1.1 KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
-0C84 >FFFD # NA <reserved-0C84>
+# 0C84 valid # 11.0 KANNADA SIGN SIDDHAM
# 0C85..0C8C valid # 1.1 KANNADA LETTER A..KANNADA LETTER VOCALIC L
0C8D >FFFD # NA <reserved-0C8D>
# 0C8E..0C90 valid # 1.1 KANNADA LETTER E..KANNADA LETTER AI
@@ -1616,7 +1622,8 @@
# 1810..1819 valid # 3.0 MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE
181A..181F >FFFD # NA <reserved-181A>..<reserved-181F>
# 1820..1877 valid # 3.0 MONGOLIAN LETTER A..MONGOLIAN LETTER MANCHU ZHA
-1878..187F >FFFD # NA <reserved-1878>..<reserved-187F>
+# 1878 valid # 11.0 MONGOLIAN LETTER CHA WITH TWO DOTS
+1879..187F >FFFD # NA <reserved-1879>..<reserved-187F>
# 1880..18A9 valid # 3.0 MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER ALI GALI DAGALGA
# 18AA valid # 5.1 MONGOLIAN LETTER MANCHU ALI GALI LHA
18AB..18AF >FFFD # NA <reserved-18AB>..<reserved-18AF>
@@ -1693,7 +1700,10 @@
1C86 >044A # 9.0 CYRILLIC SMALL LETTER TALL HARD SIGN
1C87 >0463 # 9.0 CYRILLIC SMALL LETTER TALL YAT
1C88 >A64B # 9.0 CYRILLIC SMALL LETTER UNBLENDED UK
-1C89..1CBF >FFFD # NA <reserved-1C89>..<reserved-1CBF>
+1C89..1C8F >FFFD # NA <reserved-1C89>..<reserved-1C8F>
+1C90..1CBA >FFFD # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
+1CBB..1CBC >FFFD # NA <reserved-1CBB>..<reserved-1CBC>
+1CBD..1CBF >FFFD # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
# 1CC0..1CC7 valid # 6.1 SUNDANESE PUNCTUATION BINDU SURYA..SUNDANESE PUNCTUATION BINDU BA SATANGA
1CC8..1CCF >FFFD # NA <reserved-1CC8>..<reserved-1CCF>
# 1CD0..1CD2 valid # 5.2 VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
@@ -2740,14 +2750,15 @@
# 2B76..2B95 valid # 7.0 NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW
2B96..2B97 >FFFD # NA <reserved-2B96>..<reserved-2B97>
# 2B98..2BB9 valid # 7.0 THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD..UP ARROWHEAD IN A RECTANGLE BOX
-2BBA..2BBC >FFFD # NA <reserved-2BBA>..<reserved-2BBC>
+# 2BBA..2BBC valid # 11.0 OVERLAPPING WHITE SQUARES..OVERLAPPING BLACK SQUARES
# 2BBD..2BC8 valid # 7.0 BALLOT BOX WITH LIGHT X..BLACK MEDIUM RIGHT-POINTING TRIANGLE CENTRED
2BC9 >FFFD # NA <reserved-2BC9>
# 2BCA..2BD1 valid # 7.0 TOP HALF BLACK CIRCLE..UNCERTAINTY SIGN
# 2BD2 valid # 10.0 GROUP MARK
-2BD3..2BEB >FFFD # NA <reserved-2BD3>..<reserved-2BEB>
+# 2BD3..2BEB valid # 11.0 PLUTO FORM TWO..STAR WITH RIGHT HALF BLACK
# 2BEC..2BEF valid # 8.0 LEFTWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS..DOWNWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS
-2BF0..2BFF >FFFD # NA <reserved-2BF0>..<reserved-2BFF>
+# 2BF0..2BFE valid # 11.0 ERIS FORM ONE..REVERSED RIGHT ANGLE
+2BFF >FFFD # NA <reserved-2BFF>
2C00 >2C30 # 4.1 GLAGOLITIC CAPITAL LETTER AZU
2C01 >2C31 # 4.1 GLAGOLITIC CAPITAL LETTER BUKY
2C02 >2C32 # 4.1 GLAGOLITIC CAPITAL LETTER VEDE
@@ -2977,7 +2988,8 @@
# 2E3C..2E42 valid # 7.0 STENOGRAPHIC FULL STOP..DOUBLE LOW-REVERSED-9 QUOTATION MARK
# 2E43..2E44 valid # 9.0 DASH WITH LEFT UPTURN..DOUBLE SUSPENSION MARK
# 2E45..2E49 valid # 10.0 INVERTED LOW KAVYKA..DOUBLE STACKED COMMA
-2E4A..2E7F >FFFD # NA <reserved-2E4A>..<reserved-2E7F>
+# 2E4A..2E4E valid # 11.0 DOTTED SOLIDUS..PUNCTUS ELEVATUS MARK
+2E4F..2E7F >FFFD # NA <reserved-2E4F>..<reserved-2E7F>
# 2E80..2E99 valid # 3.0 CJK RADICAL REPEAT..CJK RADICAL RAP
2E9A >FFFD # NA <reserved-2E9A>
# 2E9B..2E9E valid # 3.0 CJK RADICAL CHOKE..CJK RADICAL DEATH
@@ -3236,7 +3248,8 @@
# 3105..312C valid # 1.1 BOPOMOFO LETTER B..BOPOMOFO LETTER GN
# 312D valid # 5.1 BOPOMOFO LETTER IH
# 312E valid # 10.0 BOPOMOFO LETTER O WITH DOT ABOVE
-312F..3130 >FFFD # NA <reserved-312F>..<reserved-3130>
+# 312F valid # 11.0 BOPOMOFO LETTER NN
+3130 >FFFD # NA <reserved-3130>
3131 >1100 # 1.1 HANGUL LETTER KIYEOK
3132 >1101 # 1.1 HANGUL LETTER SSANGKIYEOK
3133 >11AA # 1.1 HANGUL LETTER KIYEOK-SIOS
@@ -3869,7 +3882,8 @@
# 9FCC valid # 6.1 CJK UNIFIED IDEOGRAPH-9FCC
# 9FCD..9FD5 valid # 8.0 CJK UNIFIED IDEOGRAPH-9FCD..CJK UNIFIED IDEOGRAPH-9FD5
# 9FD6..9FEA valid # 10.0 CJK UNIFIED IDEOGRAPH-9FD6..CJK UNIFIED IDEOGRAPH-9FEA
-9FEB..9FFF >FFFD # NA <reserved-9FEB>..<reserved-9FFF>
+# 9FEB..9FEF valid # 11.0 CJK UNIFIED IDEOGRAPH-9FEB..CJK UNIFIED IDEOGRAPH-9FEF
+9FF0..9FFF >FFFD # NA <reserved-9FF0>..<reserved-9FFF>
# A000..A48C valid # 3.0 YI SYLLABLE IT..YI SYLLABLE YYR
A48D..A48F >FFFD # NA <reserved-A48D>..<reserved-A48F>
# A490..A4A1 valid # 3.0 YI RADICAL QOT..YI RADICAL GA
@@ -4109,7 +4123,7 @@ A7AB >025C # 7.0 LATIN CAPITAL LETTER REVERSED OPE
A7AC >0261 # 7.0 LATIN CAPITAL LETTER SCRIPT G
A7AD >026C # 7.0 LATIN CAPITAL LETTER L WITH BELT
A7AE >026A # 9.0 LATIN CAPITAL LETTER SMALL CAPITAL I
-A7AF >FFFD # NA <reserved-A7AF>
+# A7AF valid # 11.0 LATIN LETTER SMALL CAPITAL Q
A7B0 >029E # 7.0 LATIN CAPITAL LETTER TURNED K
A7B1 >0287 # 7.0 LATIN CAPITAL LETTER TURNED T
A7B2 >029D # 8.0 LATIN CAPITAL LETTER J WITH CROSSED-TAIL
@@ -4118,7 +4132,9 @@ A7B4 >A7B5 # 8.0 LATIN CAPITAL LETTER BETA
# A7B5 valid # 8.0 LATIN SMALL LETTER BETA
A7B6 >A7B7 # 8.0 LATIN CAPITAL LETTER OMEGA
# A7B7 valid # 8.0 LATIN SMALL LETTER OMEGA
-A7B8..A7F6 >FFFD # NA <reserved-A7B8>..<reserved-A7F6>
+A7B8 >FFFD # 11.0 LATIN CAPITAL LETTER U WITH STROKE
+# A7B9 valid # 11.0 LATIN SMALL LETTER U WITH STROKE
+A7BA..A7F6 >FFFD # NA <reserved-A7BA>..<reserved-A7F6>
# A7F7 valid # 7.0 LATIN EPIGRAPHIC LETTER SIDEWAYS I
A7F8 >0127 # 6.1 MODIFIER LETTER CAPITAL H WITH STROKE
A7F9 >0153 # 6.1 MODIFIER LETTER SMALL LIGATURE OE
@@ -4143,7 +4159,7 @@ A8DA..A8DF >FFFD # NA <reserved-A8DA>..<reserved-A8DF>
# A8FB valid # 5.2 DEVANAGARI HEADSTROKE
# A8FC valid # 8.0 DEVANAGARI SIGN SIDDHAM
# A8FD valid # 8.0 DEVANAGARI JAIN OM
-A8FE..A8FF >FFFD # NA <reserved-A8FE>..<reserved-A8FF>
+# A8FE..A8FF valid # 11.0 DEVANAGARI LETTER AY..DEVANAGARI VOWEL SIGN AY
# A900..A92D valid # 5.1 KAYAH LI DIGIT ZERO..KAYAH LI TONE CALYA PLOPHU
# A92E..A92F valid # 5.1 KAYAH LI SIGN CWI..KAYAH LI SIGN SHYA
# A930..A953 valid # 5.1 REJANG LETTER KA..REJANG VIRAMA
@@ -4289,7 +4305,7 @@ D7A4..D7AF >FFFD # NA <reserved-D7A4>..<reserved-D7AF>
D7C7..D7CA >FFFD # NA <reserved-D7C7>..<reserved-D7CA>
# D7CB..D7FB valid # 5.2 HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH
D7FC..D7FF >FFFD # NA <reserved-D7FC>..<reserved-D7FF>
-D800..DFFF >FFFD # 2.0 <surrogate-D800>..<surrogate-DFFF>
+# D800..DFFF >FFFD # 2.0 <surrogate-D800>..<surrogate-DFFF>
E000..F8FF >FFFD # 1.1 <private-use-E000>..<private-use-F8FF>
F900 >8C48 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F900
F901 >66F4 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F901
@@ -5879,12 +5895,14 @@ FFFE..FFFF >FFFD # 1.1 <noncharacter-FFFE>..<noncharacte
# 10A15..10A17valid # 4.1 KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA
10A18 >FFFD # NA <reserved-10A18>
# 10A19..10A33valid # 4.1 KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER TTTHA
-10A34..10A37 >FFFD # NA <reserved-10A34>..<reserved-10A37>
+# 10A34..10A35valid # 11.0 KHAROSHTHI LETTER TTTA..KHAROSHTHI LETTER VHA
+10A36..10A37 >FFFD # NA <reserved-10A36>..<reserved-10A37>
# 10A38..10A3Avalid # 4.1 KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
10A3B..10A3E >FFFD # NA <reserved-10A3B>..<reserved-10A3E>
# 10A3F valid # 4.1 KHAROSHTHI VIRAMA
# 10A40..10A47valid # 4.1 KHAROSHTHI DIGIT ONE..KHAROSHTHI NUMBER ONE THOUSAND
-10A48..10A4F >FFFD # NA <reserved-10A48>..<reserved-10A4F>
+# 10A48 valid # 11.0 KHAROSHTHI FRACTION ONE HALF
+10A49..10A4F >FFFD # NA <reserved-10A49>..<reserved-10A4F>
# 10A50..10A58valid # 4.1 KHAROSHTHI PUNCTUATION DOT..KHAROSHTHI PUNCTUATION LINES
10A59..10A5F >FFFD # NA <reserved-10A59>..<reserved-10A5F>
# 10A60..10A7Cvalid # 5.2 OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH
@@ -5970,9 +5988,19 @@ FFFE..FFFF >FFFD # 1.1 <noncharacter-FFFE>..<noncharacte
# 10CC0..10CF2valid # 8.0 OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US
10CF3..10CF9 >FFFD # NA <reserved-10CF3>..<reserved-10CF9>
# 10CFA..10CFFvalid # 8.0 OLD HUNGARIAN NUMBER ONE..OLD HUNGARIAN NUMBER ONE THOUSAND
-10D00..10E5F >FFFD # NA <reserved-10D00>..<reserved-10E5F>
+# 10D00..10D27valid # 11.0 HANIFI ROHINGYA LETTER A..HANIFI ROHINGYA SIGN TASSI
+10D28..10D2F >FFFD # NA <reserved-10D28>..<reserved-10D2F>
+# 10D30..10D39valid # 11.0 HANIFI ROHINGYA DIGIT ZERO..HANIFI ROHINGYA DIGIT NINE
+10D3A..10E5F >FFFD # NA <reserved-10D3A>..<reserved-10E5F>
# 10E60..10E7Evalid # 5.2 RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS
-10E7F..10FFF >FFFD # NA <reserved-10E7F>..<reserved-10FFF>
+10E7F..10EFF >FFFD # NA <reserved-10E7F>..<reserved-10EFF>
+# 10F00..10F1Cvalid # 11.0 OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL
+# 10F1D..10F26valid # 11.0 OLD SOGDIAN NUMBER ONE..OLD SOGDIAN FRACTION ONE HALF
+# 10F27 valid # 11.0 OLD SOGDIAN LIGATURE AYIN-DALETH
+10F28..10F2F >FFFD # NA <reserved-10F28>..<reserved-10F2F>
+# 10F30..10F50valid # 11.0 SOGDIAN LETTER ALEPH..SOGDIAN COMBINING STROKE BELOW
+# 10F51..10F59valid # 11.0 SOGDIAN NUMBER ONE..SOGDIAN PUNCTUATION HALF CIRCLE WITH DOT
+10F5A..10FFF >FFFD # NA <reserved-10F5A>..<reserved-10FFF>
# 11000..11046valid # 6.0 BRAHMI SIGN CANDRABINDU..BRAHMI VIRAMA
# 11047..1104Dvalid # 6.0 BRAHMI DANDA..BRAHMI PUNCTUATION LOTUS
1104E..11051 >FFFD # NA <reserved-1104E>..<reserved-11051>
@@ -5984,7 +6012,9 @@ FFFE..FFFF >FFFD # 1.1 <noncharacter-FFFE>..<noncharacte
# 110BB..110BCvalid # 5.2 KAITHI ABBREVIATION SIGN..KAITHI ENUMERATION SIGN
110BD >FFFD # 5.2 KAITHI NUMBER SIGN
# 110BE..110C1valid # 5.2 KAITHI SECTION MARK..KAITHI DOUBLE DANDA
-110C2..110CF >FFFD # NA <reserved-110C2>..<reserved-110CF>
+110C2..110CC >FFFD # NA <reserved-110C2>..<reserved-110CC>
+110CD >FFFD # 11.0 KAITHI NUMBER SIGN ABOVE
+110CE..110CF >FFFD # NA <reserved-110CE>..<reserved-110CF>
# 110D0..110E8valid # 6.1 SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE
110E9..110EF >FFFD # NA <reserved-110E9>..<reserved-110EF>
# 110F0..110F9valid # 6.1 SORA SOMPENG DIGIT ZERO..SORA SOMPENG DIGIT NINE
@@ -5993,15 +6023,15 @@ FFFE..FFFF >FFFD # 1.1 <noncharacter-FFFE>..<noncharacte
11135 >FFFD # NA <reserved-11135>
# 11136..1113Fvalid # 6.1 CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE
# 11140..11143valid # 6.1 CHAKMA SECTION MARK..CHAKMA QUESTION MARK
-11144..1114F >FFFD # NA <reserved-11144>..<reserved-1114F>
+# 11144..11146valid # 11.0 CHAKMA LETTER LHAA..CHAKMA VOWEL SIGN EI
+11147..1114F >FFFD # NA <reserved-11147>..<reserved-1114F>
# 11150..11173valid # 7.0 MAHAJANI LETTER A..MAHAJANI SIGN NUKTA
# 11174..11175valid # 7.0 MAHAJANI ABBREVIATION SIGN..MAHAJANI SECTION MARK
# 11176 valid # 7.0 MAHAJANI LIGATURE SHRI
11177..1117F >FFFD # NA <reserved-11177>..<reserved-1117F>
# 11180..111C4valid # 6.1 SHARADA SIGN CANDRABINDU..SHARADA OM
# 111C5..111C8valid # 6.1 SHARADA DANDA..SHARADA SEPARATOR
-# 111C9 valid # 8.0 SHARADA SANDHI MARK
-# 111CA..111CCvalid # 8.0 SHARADA SIGN NUKTA..SHARADA EXTRA SHORT VOWEL MARK
+# 111C9..111CCvalid # 8.0 SHARADA SANDHI MARK..SHARADA EXTRA SHORT VOWEL MARK
# 111CD valid # 7.0 SHARADA SUTRA MARK
111CE..111CF >FFFD # NA <reserved-111CE>..<reserved-111CF>
# 111D0..111D9valid # 6.1 SHARADA DIGIT ZERO..SHARADA DIGIT NINE
@@ -6047,7 +6077,8 @@ FFFE..FFFF >FFFD # 1.1 <noncharacter-FFFE>..<noncharacte
# 11332..11333valid # 7.0 GRANTHA LETTER LA..GRANTHA LETTER LLA
11334 >FFFD # NA <reserved-11334>
# 11335..11339valid # 7.0 GRANTHA LETTER VA..GRANTHA LETTER HA
-1133A..1133B >FFFD # NA <reserved-1133A>..<reserved-1133B>
+1133A >FFFD # NA <reserved-1133A>
+# 1133B valid # 11.0 COMBINING BINDU BELOW
# 1133C..11344valid # 7.0 GRANTHA SIGN NUKTA..GRANTHA VOWEL SIGN VOCALIC RR
11345..11346 >FFFD # NA <reserved-11345>..<reserved-11346>
# 11347..11348valid # 7.0 GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
@@ -6071,7 +6102,8 @@ FFFE..FFFF >FFFD # 1.1 <noncharacter-FFFE>..<noncharacte
# 1145B valid # 9.0 NEWA PLACEHOLDER MARK
1145C >FFFD # NA <reserved-1145C>
# 1145D valid # 9.0 NEWA INSERTION SIGN
-1145E..1147F >FFFD # NA <reserved-1145E>..<reserved-1147F>
+# 1145E valid # 11.0 NEWA SANDHI MARK
+1145F..1147F >FFFD # NA <reserved-1145F>..<reserved-1147F>
# 11480..114C5valid # 7.0 TIRHUTA ANJI..TIRHUTA GVANG
# 114C6 valid # 7.0 TIRHUTA ABBREVIATION SIGN
# 114C7 valid # 7.0 TIRHUTA OM
@@ -6098,12 +6130,16 @@ FFFE..FFFF >FFFD # 1.1 <noncharacter-FFFE>..<noncharacte
# 116C0..116C9valid # 6.1 TAKRI DIGIT ZERO..TAKRI DIGIT NINE
116CA..116FF >FFFD # NA <reserved-116CA>..<reserved-116FF>
# 11700..11719valid # 8.0 AHOM LETTER KA..AHOM LETTER JHA
-1171A..1171C >FFFD # NA <reserved-1171A>..<reserved-1171C>
+# 1171A valid # 11.0 AHOM LETTER ALTERNATE BA
+1171B..1171C >FFFD # NA <reserved-1171B>..<reserved-1171C>
# 1171D..1172Bvalid # 8.0 AHOM CONSONANT SIGN MEDIAL LA..AHOM SIGN KILLER
1172C..1172F >FFFD # NA <reserved-1172C>..<reserved-1172F>
# 11730..11739valid # 8.0 AHOM DIGIT ZERO..AHOM DIGIT NINE
# 1173A..1173Fvalid # 8.0 AHOM NUMBER TEN..AHOM SYMBOL VI
-11740..1189F >FFFD # NA <reserved-11740>..<reserved-1189F>
+11740..117FF >FFFD # NA <reserved-11740>..<reserved-117FF>
+# 11800..1183Avalid # 11.0 DOGRA LETTER A..DOGRA SIGN NUKTA
+# 1183B valid # 11.0 DOGRA ABBREVIATION SIGN
+1183C..1189F >FFFD # NA <reserved-1183C>..<reserved-1189F>
118A0 >118C0 # 7.0 WARANG CITI CAPITAL LETTER NGAA
118A1 >118C1 # 7.0 WARANG CITI CAPITAL LETTER A
118A2 >118C2 # 7.0 WARANG CITI CAPITAL LETTER WI
@@ -6149,7 +6185,7 @@ FFFE..FFFF >FFFD # 1.1 <noncharacter-FFFE>..<noncharacte
11A84..11A85 >FFFD # NA <reserved-11A84>..<reserved-11A85>
# 11A86..11A99valid # 10.0 SOYOMBO CLUSTER-INITIAL LETTER RA..SOYOMBO SUBJOINER
# 11A9A..11A9Cvalid # 10.0 SOYOMBO MARK TSHEG..SOYOMBO MARK DOUBLE SHAD
-11A9D >FFFD # NA <reserved-11A9D>
+# 11A9D valid # 11.0 SOYOMBO MARK PLUTA
# 11A9E..11AA2valid # 10.0 SOYOMBO HEAD MARK WITH MOON AND SUN AND TRIPLE FLAME..SOYOMBO TERMINAL MARK-2
11AA3..11ABF >FFFD # NA <reserved-11AA3>..<reserved-11ABF>
# 11AC0..11AF8valid # 7.0 PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
@@ -6184,7 +6220,22 @@ FFFE..FFFF >FFFD # 1.1 <noncharacter-FFFE>..<noncharacte
# 11D3F..11D47valid # 10.0 MASARAM GONDI VOWEL SIGN AU..MASARAM GONDI RA-KARA
11D48..11D4F >FFFD # NA <reserved-11D48>..<reserved-11D4F>
# 11D50..11D59valid # 10.0 MASARAM GONDI DIGIT ZERO..MASARAM GONDI DIGIT NINE
-11D5A..11FFF >FFFD # NA <reserved-11D5A>..<reserved-11FFF>
+11D5A..11D5F >FFFD # NA <reserved-11D5A>..<reserved-11D5F>
+# 11D60..11D65valid # 11.0 GUNJALA GONDI LETTER A..GUNJALA GONDI LETTER UU
+11D66 >FFFD # NA <reserved-11D66>
+# 11D67..11D68valid # 11.0 GUNJALA GONDI LETTER EE..GUNJALA GONDI LETTER AI
+11D69 >FFFD # NA <reserved-11D69>
+# 11D6A..11D8Evalid # 11.0 GUNJALA GONDI LETTER OO..GUNJALA GONDI VOWEL SIGN UU
+11D8F >FFFD # NA <reserved-11D8F>
+# 11D90..11D91valid # 11.0 GUNJALA GONDI VOWEL SIGN EE..GUNJALA GONDI VOWEL SIGN AI
+11D92 >FFFD # NA <reserved-11D92>
+# 11D93..11D98valid # 11.0 GUNJALA GONDI VOWEL SIGN OO..GUNJALA GONDI OM
+11D99..11D9F >FFFD # NA <reserved-11D99>..<reserved-11D9F>
+# 11DA0..11DA9valid # 11.0 GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE
+11DAA..11EDF >FFFD # NA <reserved-11DAA>..<reserved-11EDF>
+# 11EE0..11EF6valid # 11.0 MAKASAR LETTER KA..MAKASAR VOWEL SIGN O
+# 11EF7..11EF8valid # 11.0 MAKASAR PASSIMBANG..MAKASAR END OF SECTION
+11EF9..11FFF >FFFD # NA <reserved-11EF9>..<reserved-11FFF>
# 12000..1236Evalid # 5.0 CUNEIFORM SIGN A..CUNEIFORM SIGN ZUM
# 1236F..12398valid # 7.0 CUNEIFORM SIGN KAP ELAMITE..CUNEIFORM SIGN UM TIMES ME
# 12399 valid # 8.0 CUNEIFORM SIGN U U
@@ -6226,7 +6277,11 @@ FFFE..FFFF >FFFD # 1.1 <noncharacter-FFFE>..<noncharacte
# 16B63..16B77valid # 7.0 PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
16B78..16B7C >FFFD # NA <reserved-16B78>..<reserved-16B7C>
# 16B7D..16B8Fvalid # 7.0 PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
-16B90..16EFF >FFFD # NA <reserved-16B90>..<reserved-16EFF>
+16B90..16E3F >FFFD # NA <reserved-16B90>..<reserved-16E3F>
+16E40..16E5F >FFFD # 11.0 MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN CAPITAL LETTER Y
+# 16E60..16E7Fvalid # 11.0 MEDEFAIDRIN SMALL LETTER M..MEDEFAIDRIN SMALL LETTER Y
+# 16E80..16E9Avalid # 11.0 MEDEFAIDRIN DIGIT ZERO..MEDEFAIDRIN EXCLAMATION OH
+16E9B..16EFF >FFFD # NA <reserved-16E9B>..<reserved-16EFF>
# 16F00..16F44valid # 6.1 MIAO LETTER PA..MIAO LETTER HHA
16F45..16F4F >FFFD # NA <reserved-16F45>..<reserved-16F4F>
# 16F50..16F7Evalid # 6.1 MIAO LETTER NASALIZATION..MIAO VOWEL SIGN NG
@@ -6237,7 +6292,8 @@ FFFE..FFFF >FFFD # 1.1 <noncharacter-FFFE>..<noncharacte
# 16FE1 valid # 10.0 NUSHU ITERATION MARK
16FE2..16FFF >FFFD # NA <reserved-16FE2>..<reserved-16FFF>
# 17000..187ECvalid # 9.0 TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187EC
-187ED..187FF >FFFD # NA <reserved-187ED>..<reserved-187FF>
+# 187ED..187F1valid # 11.0 TANGUT IDEOGRAPH-187ED..TANGUT IDEOGRAPH-187F1
+187F2..187FF >FFFD # NA <reserved-187F2>..<reserved-187FF>
# 18800..18AF2valid # 9.0 TANGUT COMPONENT-001..TANGUT COMPONENT-755
18AF3..1AFFF >FFFD # NA <reserved-18AF3>..<reserved-1AFFF>
# 1B000..1B001valid # 6.0 KATAKANA LETTER ARCHAIC E..HIRAGANA LETTER ARCHAIC YE
@@ -6284,11 +6340,14 @@ FFFE..FFFF >FFFD # 1.1 <noncharacter-FFFE>..<noncharacte
# 1D1DE..1D1E8valid # 8.0 MUSICAL SYMBOL KIEVAN C CLEF..MUSICAL SYMBOL KIEVAN FLAT SIGN
1D1E9..1D1FF >FFFD # NA <reserved-1D1E9>..<reserved-1D1FF>
# 1D200..1D245valid # 4.1 GREEK VOCAL NOTATION SYMBOL-1..GREEK MUSICAL LEIMMA
-1D246..1D2FF >FFFD # NA <reserved-1D246>..<reserved-1D2FF>
+1D246..1D2DF >FFFD # NA <reserved-1D246>..<reserved-1D2DF>
+# 1D2E0..1D2F3valid # 11.0 MAYAN NUMERAL ZERO..MAYAN NUMERAL NINETEEN
+1D2F4..1D2FF >FFFD # NA <reserved-1D2F4>..<reserved-1D2FF>
# 1D300..1D356valid # 4.0 MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING
1D357..1D35F >FFFD # NA <reserved-1D357>..<reserved-1D35F>
# 1D360..1D371valid # 5.0 COUNTING ROD UNIT DIGIT ONE..COUNTING ROD TENS DIGIT NINE
-1D372..1D3FF >FFFD # NA <reserved-1D372>..<reserved-1D3FF>
+# 1D372..1D378valid # 11.0 IDEOGRAPHIC TALLY MARK ONE..TALLY MARK FIVE
+1D379..1D3FF >FFFD # NA <reserved-1D379>..<reserved-1D3FF>
1D400 >0061 # 3.1 MATHEMATICAL BOLD CAPITAL A
1D401 >0062 # 3.1 MATHEMATICAL BOLD CAPITAL B
1D402 >0063 # 3.1 MATHEMATICAL BOLD CAPITAL C
@@ -7367,7 +7426,9 @@ FFFE..FFFF >FFFD # 1.1 <noncharacter-FFFE>..<noncharacte
# 1E950..1E959valid # 9.0 ADLAM DIGIT ZERO..ADLAM DIGIT NINE
1E95A..1E95D >FFFD # NA <reserved-1E95A>..<reserved-1E95D>
# 1E95E..1E95Fvalid # 9.0 ADLAM INITIAL EXCLAMATION MARK..ADLAM INITIAL QUESTION MARK
-1E960..1EDFF >FFFD # NA <reserved-1E960>..<reserved-1EDFF>
+1E960..1EC70 >FFFD # NA <reserved-1E960>..<reserved-1EC70>
+# 1EC71..1ECB4valid # 11.0 INDIC SIYAQ NUMBER ONE..INDIC SIYAQ ALTERNATE LAKH MARK
+1ECB5..1EDFF >FFFD # NA <reserved-1ECB5>..<reserved-1EDFF>
1EE00 >0627 # 6.1 ARABIC MATHEMATICAL ALEF
1EE01 >0628 # 6.1 ARABIC MATHEMATICAL BEH
1EE02 >062C # 6.1 ARABIC MATHEMATICAL JEEM
@@ -7602,7 +7663,7 @@ FFFE..FFFF >FFFD # 1.1 <noncharacter-FFFE>..<noncharacte
1F12C >0072 # 5.2 CIRCLED ITALIC LATIN CAPITAL LETTER R
1F12D >0063 0064 # 5.2 CIRCLED CD
1F12E >0077 007A # 5.2 CIRCLED WZ
-1F12F >FFFD # NA <reserved-1F12F>
+# 1F12F valid # 11.0 COPYLEFT SYMBOL
1F130 >0061 # 6.0 SQUARED LATIN CAPITAL LETTER A
1F131 >0062 # 5.2 SQUARED LATIN CAPITAL LETTER B
1F132 >0063 # 6.0 SQUARED LATIN CAPITAL LETTER C
@@ -7798,11 +7859,13 @@ FFFE..FFFF >FFFD # 1.1 <noncharacter-FFFE>..<noncharacte
# 1F6F0..1F6F3valid # 7.0 SATELLITE..PASSENGER SHIP
# 1F6F4..1F6F6valid # 9.0 SCOOTER..CANOE
# 1F6F7..1F6F8valid # 10.0 SLED..FLYING SAUCER
-1F6F9..1F6FF >FFFD # NA <reserved-1F6F9>..<reserved-1F6FF>
+# 1F6F9 valid # 11.0 SKATEBOARD
+1F6FA..1F6FF >FFFD # NA <reserved-1F6FA>..<reserved-1F6FF>
# 1F700..1F773valid # 6.0 ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
1F774..1F77F >FFFD # NA <reserved-1F774>..<reserved-1F77F>
# 1F780..1F7D4valid # 7.0 BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..HEAVY TWELVE POINTED PINWHEEL STAR
-1F7D5..1F7FF >FFFD # NA <reserved-1F7D5>..<reserved-1F7FF>
+# 1F7D5..1F7D8valid # 11.0 CIRCLED TRIANGLE..NEGATIVE CIRCLED SQUARE
+1F7D9..1F7FF >FFFD # NA <reserved-1F7D9>..<reserved-1F7FF>
# 1F800..1F80Bvalid # 7.0 LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
1F80C..1F80F >FFFD # NA <reserved-1F80C>..<reserved-1F80F>
# 1F810..1F847valid # 7.0 LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD..DOWNWARDS HEAVY ARROW
@@ -7826,18 +7889,31 @@ FFFE..FFFF >FFFD # 1.1 <noncharacter-FFFE>..<noncharacte
1F93F >FFFD # NA <reserved-1F93F>
# 1F940..1F94Bvalid # 9.0 WILTED FLOWER..MARTIAL ARTS UNIFORM
# 1F94C valid # 10.0 CURLING STONE
-1F94D..1F94F >FFFD # NA <reserved-1F94D>..<reserved-1F94F>
+# 1F94D..1F94Fvalid # 11.0 LACROSSE STICK AND BALL..FLYING DISC
# 1F950..1F95Evalid # 9.0 CROISSANT..PANCAKES
# 1F95F..1F96Bvalid # 10.0 DUMPLING..CANNED FOOD
-1F96C..1F97F >FFFD # NA <reserved-1F96C>..<reserved-1F97F>
+# 1F96C..1F970valid # 11.0 LEAFY GREEN..SMILING FACE WITH SMILING EYES AND THREE HEARTS
+1F971..1F972 >FFFD # NA <reserved-1F971>..<reserved-1F972>
+# 1F973..1F976valid # 11.0 FACE WITH PARTY HORN AND PARTY HAT..FREEZING FACE
+1F977..1F979 >FFFD # NA <reserved-1F977>..<reserved-1F979>
+# 1F97A valid # 11.0 FACE WITH PLEADING EYES
+1F97B >FFFD # NA <reserved-1F97B>
+# 1F97C..1F97Fvalid # 11.0 LAB COAT..FLAT SHOE
# 1F980..1F984valid # 8.0 CRAB..UNICORN FACE
# 1F985..1F991valid # 9.0 EAGLE..SQUID
# 1F992..1F997valid # 10.0 GIRAFFE FACE..CRICKET
-1F998..1F9BF >FFFD # NA <reserved-1F998>..<reserved-1F9BF>
+# 1F998..1F9A2valid # 11.0 KANGAROO..SWAN
+1F9A3..1F9AF >FFFD # NA <reserved-1F9A3>..<reserved-1F9AF>
+# 1F9B0..1F9B9valid # 11.0 EMOJI COMPONENT RED HAIR..SUPERVILLAIN
+1F9BA..1F9BF >FFFD # NA <reserved-1F9BA>..<reserved-1F9BF>
# 1F9C0 valid # 8.0 CHEESE WEDGE
-1F9C1..1F9CF >FFFD # NA <reserved-1F9C1>..<reserved-1F9CF>
+# 1F9C1..1F9C2valid # 11.0 CUPCAKE..SALT SHAKER
+1F9C3..1F9CF >FFFD # NA <reserved-1F9C3>..<reserved-1F9CF>
# 1F9D0..1F9E6valid # 10.0 FACE WITH MONOCLE..SOCKS
-1F9E7..1FFFD >FFFD # NA <reserved-1F9E7>..<reserved-1FFFD>
+# 1F9E7..1F9FFvalid # 11.0 RED GIFT ENVELOPE..NAZAR AMULET
+1FA00..1FA5F >FFFD # NA <reserved-1FA00>..<reserved-1FA5F>
+# 1FA60..1FA6Dvalid # 11.0 XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER
+1FA6E..1FFFD >FFFD # NA <reserved-1FA6E>..<reserved-1FFFD>
1FFFE..1FFFF >FFFD # 2.0 <noncharacter-1FFFE>..<noncharacter-1FFFF>
# 20000..2A6D6valid # 3.1 CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6
2A6D7..2A6FF >FFFD # NA <reserved-2A6D7>..<reserved-2A6FF>
diff --git a/Build/source/libs/icu/icu-src/source/data/unidata/ppucd.txt b/Build/source/libs/icu/icu-src/source/data/unidata/ppucd.txt
index b9e404523b6..068dfe8b019 100644
--- a/Build/source/libs/icu/icu-src/source/data/unidata/ppucd.txt
+++ b/Build/source/libs/icu/icu-src/source/data/unidata/ppucd.txt
@@ -1,7 +1,7 @@
# Preparsed UCD generated by ICU preparseucd.py
# Copyright (C) 1991 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
-ucd;10.0.0
+ucd;11.0.0
property;Catalog;age;Age
property;Binary;AHex;ASCII_Hex_Digit
@@ -34,12 +34,14 @@ property;Binary;Dia;Diacritic
property;String;dm;Decomposition_Mapping
property;Enumerated;dt;Decomposition_Type
property;Enumerated;ea;East_Asian_Width
+property;Binary;EBase;Emoji_Modifier_Base
+property;Binary;EComp;Emoji_Component
+property;Binary;EMod;Emoji_Modifier
property;Binary;Emoji;Emoji
-property;Binary;Emoji_Component;Emoji_Component
-property;Binary;Emoji_Modifier;Emoji_Modifier
-property;Binary;Emoji_Modifier_Base;Emoji_Modifier_Base
-property;Binary;Emoji_Presentation;Emoji_Presentation
+property;Binary;EPres;Emoji_Presentation
+property;Miscellaneous;EqUIdeo;Equivalent_Unified_Ideograph
property;Binary;Ext;Extender
+property;Binary;ExtPict;Extended_Pictographic
property;String;FC_NFKC;FC_NFKC_Closure
property;Enumerated;gc;General_Category
property;Enumerated;GCB;Grapheme_Cluster_Break
@@ -120,6 +122,7 @@ binary;N;No;F;False
binary;Y;Yes;T;True
value;age;1.1;V1_1
value;age;10.0;V10_0
+value;age;11.0;V11_0
value;age;2.0;V2_0
value;age;2.1;V2_1
value;age;3.0;V3_0
@@ -216,6 +219,7 @@ value;blk;Chakma;Chakma
value;blk;Cham;Cham
value;blk;Cherokee;Cherokee
value;blk;Cherokee_Sup;Cherokee_Supplement
+value;blk;Chess_Symbols;Chess_Symbols
value;blk;Compat_Jamo;Hangul_Compatibility_Jamo
value;blk;Control_Pictures;Control_Pictures
value;blk;Coptic;Coptic
@@ -238,6 +242,7 @@ value;blk;Diacriticals_Ext;Combining_Diacritical_Marks_Extended
value;blk;Diacriticals_For_Symbols;Combining_Diacritical_Marks_For_Symbols;Combining_Marks_For_Symbols
value;blk;Diacriticals_Sup;Combining_Diacritical_Marks_Supplement
value;blk;Dingbats;Dingbats
+value;blk;Dogra;Dogra
value;blk;Domino;Domino_Tiles
value;blk;Duployan;Duployan
value;blk;Early_Dynastic_Cuneiform;Early_Dynastic_Cuneiform
@@ -255,6 +260,7 @@ value;blk;Ethiopic_Sup;Ethiopic_Supplement
value;blk;Geometric_Shapes;Geometric_Shapes
value;blk;Geometric_Shapes_Ext;Geometric_Shapes_Extended
value;blk;Georgian;Georgian
+value;blk;Georgian_Ext;Georgian_Extended
value;blk;Georgian_Sup;Georgian_Supplement
value;blk;Glagolitic;Glagolitic
value;blk;Glagolitic_Sup;Glagolitic_Supplement
@@ -263,10 +269,12 @@ value;blk;Grantha;Grantha
value;blk;Greek;Greek_And_Coptic
value;blk;Greek_Ext;Greek_Extended
value;blk;Gujarati;Gujarati
+value;blk;Gunjala_Gondi;Gunjala_Gondi
value;blk;Gurmukhi;Gurmukhi
value;blk;Half_And_Full_Forms;Halfwidth_And_Fullwidth_Forms
value;blk;Half_Marks;Combining_Half_Marks
value;blk;Hangul;Hangul_Syllables
+value;blk;Hanifi_Rohingya;Hanifi_Rohingya
value;blk;Hanunoo;Hanunoo
value;blk;Hatran;Hatran
value;blk;Hebrew;Hebrew
@@ -278,6 +286,7 @@ value;blk;IPA_Ext;IPA_Extensions
value;blk;Ideographic_Symbols;Ideographic_Symbols_And_Punctuation
value;blk;Imperial_Aramaic;Imperial_Aramaic
value;blk;Indic_Number_Forms;Common_Indic_Number_Forms
+value;blk;Indic_Siyaq_Numbers;Indic_Siyaq_Numbers
value;blk;Inscriptional_Pahlavi;Inscriptional_Pahlavi
value;blk;Inscriptional_Parthian;Inscriptional_Parthian
value;blk;Jamo;Hangul_Jamo
@@ -318,6 +327,7 @@ value;blk;Lycian;Lycian
value;blk;Lydian;Lydian
value;blk;Mahajani;Mahajani
value;blk;Mahjong;Mahjong_Tiles
+value;blk;Makasar;Makasar
value;blk;Malayalam;Malayalam
value;blk;Mandaic;Mandaic
value;blk;Manichaean;Manichaean
@@ -325,6 +335,8 @@ value;blk;Marchen;Marchen
value;blk;Masaram_Gondi;Masaram_Gondi
value;blk;Math_Alphanum;Mathematical_Alphanumeric_Symbols
value;blk;Math_Operators;Mathematical_Operators
+value;blk;Mayan_Numerals;Mayan_Numerals
+value;blk;Medefaidrin;Medefaidrin
value;blk;Meetei_Mayek;Meetei_Mayek
value;blk;Meetei_Mayek_Ext;Meetei_Mayek_Extensions
value;blk;Mende_Kikakui;Mende_Kikakui
@@ -363,6 +375,7 @@ value;blk;Old_Italic;Old_Italic
value;blk;Old_North_Arabian;Old_North_Arabian
value;blk;Old_Permic;Old_Permic
value;blk;Old_Persian;Old_Persian
+value;blk;Old_Sogdian;Old_Sogdian
value;blk;Old_South_Arabian;Old_South_Arabian
value;blk;Old_Turkic;Old_Turkic
value;blk;Oriya;Oriya
@@ -393,6 +406,7 @@ value;blk;Siddham;Siddham
value;blk;Sinhala;Sinhala
value;blk;Sinhala_Archaic_Numbers;Sinhala_Archaic_Numbers
value;blk;Small_Forms;Small_Form_Variants
+value;blk;Sogdian;Sogdian
value;blk;Sora_Sompeng;Sora_Sompeng
value;blk;Soyombo;Soyombo
value;blk;Specials;Specials
@@ -649,6 +663,7 @@ value;InSC;Consonant;Consonant
value;InSC;Consonant_Dead;Consonant_Dead
value;InSC;Consonant_Final;Consonant_Final
value;InSC;Consonant_Head_Letter;Consonant_Head_Letter
+value;InSC;Consonant_Initial_Postfixed;Consonant_Initial_Postfixed
value;InSC;Consonant_Killer;Consonant_Killer
value;InSC;Consonant_Medial;Consonant_Medial
value;InSC;Consonant_Placeholder;Consonant_Placeholder
@@ -695,6 +710,8 @@ value;jg;Final_Semkath;Final_Semkath
value;jg;Gaf;Gaf
value;jg;Gamal;Gamal
value;jg;Hah;Hah
+value;jg;Hanifi_Rohingya_Kinna_Ya;Hanifi_Rohingya_Kinna_Ya
+value;jg;Hanifi_Rohingya_Pa;Hanifi_Rohingya_Pa
value;jg;He;He
value;jg;Heh;Heh
value;jg;Heh_Goal;Heh_Goal
@@ -942,6 +959,7 @@ value;sc;Cprt;Cypriot
value;sc;Cyrl;Cyrillic
value;sc;Cyrs;Cyrs
value;sc;Deva;Devanagari
+value;sc;Dogr;Dogra
value;sc;Dsrt;Deseret
value;sc;Dupl;Duployan
value;sc;Egyd;Egyd
@@ -952,6 +970,7 @@ value;sc;Ethi;Ethiopic
value;sc;Geok;Geok
value;sc;Geor;Georgian
value;sc;Glag;Glagolitic
+value;sc;Gong;Gunjala_Gondi
value;sc;Gonm;Masaram_Gondi
value;sc;Goth;Gothic
value;sc;Gran;Grantha
@@ -1000,10 +1019,12 @@ value;sc;Loma;Loma
value;sc;Lyci;Lycian
value;sc;Lydi;Lydian
value;sc;Mahj;Mahajani
+value;sc;Maka;Makasar
value;sc;Mand;Mandaic
value;sc;Mani;Manichaean
value;sc;Marc;Marchen
value;sc;Maya;Maya
+value;sc;Medf;Medefaidrin
value;sc;Mend;Mende_Kikakui
value;sc;Merc;Meroitic_Cursive
value;sc;Mero;Meroitic_Hieroglyphs
@@ -1038,6 +1059,7 @@ value;sc;Phnx;Phoenician
value;sc;Plrd;Miao
value;sc;Prti;Inscriptional_Parthian
value;sc;Rjng;Rejang
+value;sc;Rohg;Hanifi_Rohingya
value;sc;Roro;Roro
value;sc;Runr;Runic
value;sc;Samr;Samaritan
@@ -1050,6 +1072,8 @@ value;sc;Shrd;Sharada
value;sc;Sidd;Siddham
value;sc;Sind;Khudawadi
value;sc;Sinh;Sinhala
+value;sc;Sogd;Sogdian
+value;sc;Sogo;Old_Sogdian
value;sc;Sora;Sora_Sompeng
value;sc;Soyo;Soyombo
value;sc;Sund;Sundanese
@@ -1170,6 +1194,7 @@ value;WB;NL;Newline
value;WB;NU;Numeric
value;WB;RI;Regional_Indicator
value;WB;SQ;Single_Quote
+value;WB;WSegSpace;WSegSpace
value;WB;XX;Other
value;WB;ZWJ;ZWJ
@@ -1211,33 +1236,33 @@ cp;001D;bc=B;ea=N;GCB=CN;-Gr_Base;lb=CM;Name_Alias=control=INFORMATION SEPARATOR
cp;001E;bc=B;ea=N;GCB=CN;-Gr_Base;lb=CM;Name_Alias=control=INFORMATION SEPARATOR TWO,control=RECORD SEPARATOR,abbreviation=RS
cp;001F;bc=S;ea=N;GCB=CN;-Gr_Base;lb=CM;Name_Alias=control=INFORMATION SEPARATOR ONE,control=UNIT SEPARATOR,abbreviation=US
# ASCII punctuation and symbols
-cp;0020;bc=WS;gc=Zs;lb=SP;na=SPACE;Name_Alias=abbreviation=SP;Pat_WS;SB=SP;WSpace
+cp;0020;bc=WS;gc=Zs;lb=SP;na=SPACE;Name_Alias=abbreviation=SP;Pat_WS;SB=SP;WB=WSegSpace;WSpace
cp;0021;bc=ON;gc=Po;lb=EX;na=EXCLAMATION MARK;Pat_Syn;SB=ST;STerm;Term
cp;0022;bc=ON;gc=Po;lb=QU;na=QUOTATION MARK;Pat_Syn;QMark;SB=CL;WB=DQ
-cp;0023;bc=ET;Emoji;Emoji_Component;gc=Po;na=NUMBER SIGN;Pat_Syn
+cp;0023;bc=ET;EComp;Emoji;gc=Po;na=NUMBER SIGN;Pat_Syn
cp;0024;bc=ET;gc=Sc;lb=PR;na=DOLLAR SIGN;Pat_Syn
cp;0025;bc=ET;gc=Po;lb=PO;na=PERCENT SIGN;Pat_Syn
cp;0026;bc=ON;gc=Po;na=AMPERSAND;Pat_Syn
cp;0027;bc=ON;CI;gc=Po;lb=QU;na=APOSTROPHE;Pat_Syn;QMark;SB=CL;WB=SQ
cp;0028;bc=ON;Bidi_M;bmg=0029;bpb=0029;bpt=o;gc=Ps;lb=OP;na=LEFT PARENTHESIS;Pat_Syn;SB=CL
cp;0029;bc=ON;Bidi_M;bmg=0028;bpb=0028;bpt=c;gc=Pe;lb=CP;na=RIGHT PARENTHESIS;Pat_Syn;SB=CL
-cp;002A;bc=ON;Emoji;Emoji_Component;gc=Po;na=ASTERISK;Pat_Syn
+cp;002A;bc=ON;EComp;Emoji;gc=Po;na=ASTERISK;Pat_Syn
cp;002B;bc=ES;gc=Sm;lb=PR;Math;na=PLUS SIGN;Pat_Syn
cp;002C;bc=CS;gc=Po;lb=IS;na=COMMA;Pat_Syn;SB=SC;Term;WB=MN
cp;002D;bc=ES;Dash;gc=Pd;Hyphen;InSC=Consonant_Placeholder;lb=HY;na=HYPHEN-MINUS;Pat_Syn;SB=SC
cp;002E;bc=CS;CI;gc=Po;lb=IS;na=FULL STOP;Pat_Syn;SB=AT;STerm;Term;WB=MB
cp;002F;bc=CS;gc=Po;lb=SY;na=SOLIDUS;Pat_Syn
# ASCII digits
-cp;0030;AHex;bc=EN;Emoji;Emoji_Component;gc=Nd;Hex;IDC;InSC=Number;lb=NU;na=DIGIT ZERO;nt=De;nv=0;SB=NU;WB=NU;XIDC
-cp;0031;AHex;bc=EN;Emoji;Emoji_Component;gc=Nd;Hex;IDC;InSC=Number;lb=NU;na=DIGIT ONE;nt=De;nv=1;SB=NU;WB=NU;XIDC
-cp;0032;AHex;bc=EN;Emoji;Emoji_Component;gc=Nd;Hex;IDC;InSC=Number;lb=NU;na=DIGIT TWO;nt=De;nv=2;SB=NU;WB=NU;XIDC
-cp;0033;AHex;bc=EN;Emoji;Emoji_Component;gc=Nd;Hex;IDC;InSC=Number;lb=NU;na=DIGIT THREE;nt=De;nv=3;SB=NU;WB=NU;XIDC
-cp;0034;AHex;bc=EN;Emoji;Emoji_Component;gc=Nd;Hex;IDC;InSC=Number;lb=NU;na=DIGIT FOUR;nt=De;nv=4;SB=NU;WB=NU;XIDC
-cp;0035;AHex;bc=EN;Emoji;Emoji_Component;gc=Nd;Hex;IDC;InSC=Number;lb=NU;na=DIGIT FIVE;nt=De;nv=5;SB=NU;WB=NU;XIDC
-cp;0036;AHex;bc=EN;Emoji;Emoji_Component;gc=Nd;Hex;IDC;InSC=Number;lb=NU;na=DIGIT SIX;nt=De;nv=6;SB=NU;WB=NU;XIDC
-cp;0037;AHex;bc=EN;Emoji;Emoji_Component;gc=Nd;Hex;IDC;InSC=Number;lb=NU;na=DIGIT SEVEN;nt=De;nv=7;SB=NU;WB=NU;XIDC
-cp;0038;AHex;bc=EN;Emoji;Emoji_Component;gc=Nd;Hex;IDC;InSC=Number;lb=NU;na=DIGIT EIGHT;nt=De;nv=8;SB=NU;WB=NU;XIDC
-cp;0039;AHex;bc=EN;Emoji;Emoji_Component;gc=Nd;Hex;IDC;InSC=Number;lb=NU;na=DIGIT NINE;nt=De;nv=9;SB=NU;WB=NU;XIDC
+cp;0030;AHex;bc=EN;EComp;Emoji;gc=Nd;Hex;IDC;InSC=Number;lb=NU;na=DIGIT ZERO;nt=De;nv=0;SB=NU;WB=NU;XIDC
+cp;0031;AHex;bc=EN;EComp;Emoji;gc=Nd;Hex;IDC;InSC=Number;lb=NU;na=DIGIT ONE;nt=De;nv=1;SB=NU;WB=NU;XIDC
+cp;0032;AHex;bc=EN;EComp;Emoji;gc=Nd;Hex;IDC;InSC=Number;lb=NU;na=DIGIT TWO;nt=De;nv=2;SB=NU;WB=NU;XIDC
+cp;0033;AHex;bc=EN;EComp;Emoji;gc=Nd;Hex;IDC;InSC=Number;lb=NU;na=DIGIT THREE;nt=De;nv=3;SB=NU;WB=NU;XIDC
+cp;0034;AHex;bc=EN;EComp;Emoji;gc=Nd;Hex;IDC;InSC=Number;lb=NU;na=DIGIT FOUR;nt=De;nv=4;SB=NU;WB=NU;XIDC
+cp;0035;AHex;bc=EN;EComp;Emoji;gc=Nd;Hex;IDC;InSC=Number;lb=NU;na=DIGIT FIVE;nt=De;nv=5;SB=NU;WB=NU;XIDC
+cp;0036;AHex;bc=EN;EComp;Emoji;gc=Nd;Hex;IDC;InSC=Number;lb=NU;na=DIGIT SIX;nt=De;nv=6;SB=NU;WB=NU;XIDC
+cp;0037;AHex;bc=EN;EComp;Emoji;gc=Nd;Hex;IDC;InSC=Number;lb=NU;na=DIGIT SEVEN;nt=De;nv=7;SB=NU;WB=NU;XIDC
+cp;0038;AHex;bc=EN;EComp;Emoji;gc=Nd;Hex;IDC;InSC=Number;lb=NU;na=DIGIT EIGHT;nt=De;nv=8;SB=NU;WB=NU;XIDC
+cp;0039;AHex;bc=EN;EComp;Emoji;gc=Nd;Hex;IDC;InSC=Number;lb=NU;na=DIGIT NINE;nt=De;nv=9;SB=NU;WB=NU;XIDC
# ASCII punctuation and symbols
cp;003A;bc=CS;CI;gc=Po;lb=IS;na=COLON;Pat_Syn;SB=SC;Term;WB=ML
cp;003B;bc=ON;gc=Po;lb=IS;na=SEMICOLON;Pat_Syn;Term;WB=MN
@@ -1360,12 +1385,12 @@ cp;00A5;bc=ET;ea=Na;gc=Sc;lb=PR;na=YEN SIGN;NFKD_QC=Y;Pat_Syn;WB=XX
cp;00A6;bc=ON;ea=Na;gc=So;na=BROKEN BAR;NFKD_QC=Y;Pat_Syn;WB=XX
cp;00A7;bc=ON;ea=A;gc=Po;lb=AI;na=SECTION SIGN;NFKD_QC=Y;Pat_Syn;vo=U;WB=XX
cp;00A8;bc=ON;CI;CWKCF;Dia;dm=0020 0308;dt=Com;ea=A;gc=Sk;lb=AI;na=DIAERESIS;NFKC_CF=0020 0308;NFKC_QC=N;WB=XX
-cp;00A9;bc=ON;Emoji;gc=So;na=COPYRIGHT SIGN;NFKD_QC=Y;Pat_Syn;vo=U;WB=XX
+cp;00A9;bc=ON;Emoji;ExtPict;gc=So;na=COPYRIGHT SIGN;NFKD_QC=Y;Pat_Syn;vo=U;WB=XX
cp;00AA;Alpha;Cased;CWKCF;dm=0061;dt=Sup;ea=A;gc=Lo;IDC;IDS;lb=AI;Lower;na=FEMININE ORDINAL INDICATOR;NFKC_CF=0061;NFKC_QC=N;SB=LO;sc=Latn;XIDC;XIDS
cp;00AB;bc=ON;Bidi_M;bmg=00BB;gc=Pi;lb=QU;na=LEFT-POINTING DOUBLE ANGLE QUOTATION MARK;NFKD_QC=Y;Pat_Syn;QMark;SB=CL;WB=XX
cp;00AC;bc=ON;ea=Na;gc=Sm;Math;na=NOT SIGN;NFKD_QC=Y;Pat_Syn;WB=XX
cp;00AD;bc=BN;CI;CWKCF;DI;ea=A;gc=Cf;GCB=CN;-Gr_Base;Hyphen;jt=T;lb=BA;na=SOFT HYPHEN;Name_Alias=abbreviation=SHY;NFKC_CF=;NFKD_QC=Y;SB=FO;WB=FO
-cp;00AE;bc=ON;ea=A;Emoji;gc=So;na=REGISTERED SIGN;NFKD_QC=Y;Pat_Syn;vo=U;WB=XX
+cp;00AE;bc=ON;ea=A;Emoji;ExtPict;gc=So;na=REGISTERED SIGN;NFKD_QC=Y;Pat_Syn;vo=U;WB=XX
cp;00AF;bc=ON;CI;CWKCF;Dia;dm=0020 0304;dt=Com;ea=Na;gc=Sk;na=MACRON;NFKC_CF=0020 0304;NFKC_QC=N;WB=XX
cp;00B0;bc=ET;ea=A;gc=So;lb=PO;na=DEGREE SIGN;NFKD_QC=Y;Pat_Syn;WB=XX
cp;00B1;bc=ET;ea=A;gc=Sm;lb=PR;Math;na=PLUS-MINUS SIGN;NFKD_QC=Y;Pat_Syn;vo=U;WB=XX
@@ -2070,7 +2095,7 @@ cp;0335;ccc=1;na=COMBINING SHORT STROKE OVERLAY
cp;0336;ccc=1;na=COMBINING LONG STROKE OVERLAY
cp;0337;ccc=1;na=COMBINING SHORT SOLIDUS OVERLAY
cp;0338;ccc=1;na=COMBINING LONG SOLIDUS OVERLAY;NFC_QC=M;NFKC_QC=M
-# Additions
+# Miscellaneous additions
cp;0339;ccc=220;na=COMBINING RIGHT HALF RING BELOW
cp;033A;ccc=220;na=COMBINING INVERTED BRIDGE BELOW
cp;033B;ccc=220;na=COMBINING SQUARE BELOW
@@ -2678,13 +2703,13 @@ unassigned;0557..0558
# Modifier letters
cp;0559;-Cased;CI;-CWCM;Dia;gc=Lm;na=ARMENIAN MODIFIER LETTER LEFT HALF RING;SB=LE
cp;055A;-Alpha;-Cased;-CWCM;gc=Po;-IDC;-IDS;na=ARMENIAN APOSTROPHE;SB=XX;WB=XX;-XIDC;-XIDS
-cp;055B;-Alpha;-Cased;-CWCM;gc=Po;-IDC;-IDS;na=ARMENIAN EMPHASIS MARK;SB=XX;WB=XX;-XIDC;-XIDS
-cp;055C;-Alpha;-Cased;-CWCM;gc=Po;-IDC;-IDS;na=ARMENIAN EXCLAMATION MARK;SB=XX;WB=XX;-XIDC;-XIDS
+cp;055B;-Alpha;-Cased;-CWCM;gc=Po;-IDC;-IDS;na=ARMENIAN EMPHASIS MARK;SB=XX;-XIDC;-XIDS
+cp;055C;-Alpha;-Cased;-CWCM;gc=Po;-IDC;-IDS;na=ARMENIAN EXCLAMATION MARK;SB=XX;-XIDC;-XIDS
cp;055D;-Alpha;-Cased;-CWCM;gc=Po;-IDC;-IDS;na=ARMENIAN COMMA;SB=SC;WB=XX;-XIDC;-XIDS
-cp;055E;-Alpha;-Cased;-CWCM;gc=Po;-IDC;-IDS;na=ARMENIAN QUESTION MARK;SB=XX;WB=XX;-XIDC;-XIDS
+cp;055E;-Alpha;-Cased;-CWCM;gc=Po;-IDC;-IDS;na=ARMENIAN QUESTION MARK;SB=XX;-XIDC;-XIDS
cp;055F;-Alpha;-Cased;-CWCM;gc=Po;-IDC;-IDS;na=ARMENIAN ABBREVIATION MARK;SB=XX;WB=XX;-XIDC;-XIDS
-unassigned;0560
# Lowercase letters
+cp;0560;age=11.0;-CWCM;Lower;na=ARMENIAN SMALL LETTER TURNED AYB
cp;0561;CWT;CWU;Lower;na=ARMENIAN SMALL LETTER AYB;stc=0531;suc=0531
cp;0562;CWT;CWU;Lower;na=ARMENIAN SMALL LETTER BEN;stc=0532;suc=0532
cp;0563;CWT;CWU;Lower;na=ARMENIAN SMALL LETTER GIM;stc=0533;suc=0533
@@ -2724,7 +2749,7 @@ cp;0584;CWT;CWU;Lower;na=ARMENIAN SMALL LETTER KEH;stc=0554;suc=0554
cp;0585;CWT;CWU;Lower;na=ARMENIAN SMALL LETTER OH;stc=0555;suc=0555
cp;0586;CWT;CWU;Lower;na=ARMENIAN SMALL LETTER FEH;stc=0556;suc=0556
cp;0587;cf=0565 0582;CWCF;CWKCF;CWT;CWU;dm=0565 0582;dt=Com;lc=0587;Lower;na=ARMENIAN SMALL LIGATURE ECH YIWN;NFKC_CF=0565 0582;NFKC_QC=N;NFKD_QC=N;tc=0535 0582;uc=0535 0552
-unassigned;0588
+cp;0588;age=11.0;-CWCM;Lower;na=ARMENIAN SMALL LETTER YI WITH STROKE
# Punctuation
cp;0589;-Alpha;-Cased;-CWCM;gc=Po;-IDC;-IDS;lb=IS;na=ARMENIAN FULL STOP;SB=ST;sc=Zyyy;scx=Armn Geor;STerm;Term;WB=MN;-XIDC;-XIDS
cp;058A;age=3.0;-Alpha;bc=ON;-Cased;-CWCM;Dash;gc=Pd;Hyphen;-IDC;-IDS;lb=BA;na=ARMENIAN HYPHEN;SB=XX;WB=XX;-XIDC;-XIDS
@@ -2826,7 +2851,9 @@ cp;05E7;bc=R;-CI;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;jt=U;lb=HL;na=HEBREW LETTER QO
cp;05E8;bc=R;-CI;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;jt=U;lb=HL;na=HEBREW LETTER RESH;SB=LE;WB=HL;XIDS
cp;05E9;bc=R;-CI;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;jt=U;lb=HL;na=HEBREW LETTER SHIN;SB=LE;WB=HL;XIDS
cp;05EA;bc=R;-CI;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;jt=U;lb=HL;na=HEBREW LETTER TAV;SB=LE;WB=HL;XIDS
-unassigned;05EB..05EF;bc=R
+unassigned;05EB..05EE;bc=R
+# Sign
+cp;05EF;age=11.0;bc=R;-CI;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;jt=U;lb=HL;na=HEBREW YOD TRIANGLE;SB=LE;WB=HL;XIDS
# Yiddish digraphs
cp;05F0;bc=R;-CI;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;jt=U;lb=HL;na=HEBREW LIGATURE YIDDISH DOUBLE VAV;SB=LE;WB=HL;XIDS
cp;05F1;bc=R;-CI;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;jt=U;lb=HL;na=HEBREW LIGATURE YIDDISH VAV YOD;SB=LE;WB=HL;XIDS
@@ -2857,7 +2884,7 @@ cp;060A;age=5.1;-Alpha;bc=ET;gc=Po;-IDC;-IDS;jt=U;lb=PO;na=ARABIC-INDIC PER TEN
# Currency sign
cp;060B;age=4.1;-Alpha;gc=Sc;-IDC;-IDS;jt=U;lb=PO;na=AFGHANI SIGN;SB=XX;WB=XX;-XIDC;-XIDS
# Punctuation
-cp;060C;-Alpha;bc=CS;gc=Po;-IDC;-IDS;jt=U;lb=IS;na=ARABIC COMMA;SB=SC;sc=Zyyy;scx=Arab Syrc Thaa;Term;WB=MN;-XIDC;-XIDS
+cp;060C;-Alpha;bc=CS;gc=Po;-IDC;-IDS;jt=U;lb=IS;na=ARABIC COMMA;SB=SC;sc=Zyyy;scx=Arab Rohg Syrc Thaa;Term;WB=MN;-XIDC;-XIDS
cp;060D;age=4.0;-Alpha;gc=Po;-IDC;-IDS;jt=U;lb=IS;na=ARABIC DATE SEPARATOR;SB=SC;WB=MN;-XIDC;-XIDS
# Poetic marks
cp;060E;age=4.0;-Alpha;bc=ON;gc=So;-IDC;-IDS;jt=U;na=ARABIC POETIC VERSE SIGN;SB=XX;WB=XX;-XIDC;-XIDS
@@ -2868,23 +2895,23 @@ cp;0611;age=4.0;bc=NSM;ccc=230;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;jt=T;lb=CM;n
cp;0612;age=4.0;bc=NSM;ccc=230;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;jt=T;lb=CM;na=ARABIC SIGN RAHMATULLAH ALAYHE;SB=EX;WB=Extend;-XIDS
cp;0613;age=4.0;bc=NSM;ccc=230;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;jt=T;lb=CM;na=ARABIC SIGN RADI ALLAHOU ANHU;SB=EX;WB=Extend;-XIDS
cp;0614;age=4.0;bc=NSM;ccc=230;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;jt=T;lb=CM;na=ARABIC SIGN TAKHALLUS;SB=EX;WB=Extend;-XIDS
-# Koranic annotation sign
+# Quranic annotation sign
cp;0615;age=4.0;bc=NSM;ccc=230;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;jt=T;lb=CM;na=ARABIC SMALL HIGH TAH;SB=EX;WB=Extend;-XIDS
# Extended Arabic mark
cp;0616;age=5.1;bc=NSM;ccc=230;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;jt=T;lb=CM;na=ARABIC SMALL HIGH LIGATURE ALEF WITH LAM WITH YEH;SB=EX;WB=Extend;-XIDS
-# Koranic annotation signs
+# Quranic annotation signs
cp;0617;age=5.1;bc=NSM;ccc=230;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;jt=T;lb=CM;na=ARABIC SMALL HIGH ZAIN;SB=EX;WB=Extend;-XIDS
cp;0618;age=5.1;bc=NSM;ccc=30;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;jt=T;lb=CM;na=ARABIC SMALL FATHA;SB=EX;WB=Extend;-XIDS
cp;0619;age=5.1;bc=NSM;ccc=31;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;jt=T;lb=CM;na=ARABIC SMALL DAMMA;SB=EX;WB=Extend;-XIDS
cp;061A;age=5.1;bc=NSM;ccc=32;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;jt=T;lb=CM;na=ARABIC SMALL KASRA;SB=EX;WB=Extend;-XIDS
# Punctuation
-cp;061B;-Alpha;gc=Po;-IDC;-IDS;jt=U;lb=EX;na=ARABIC SEMICOLON;SB=XX;sc=Zyyy;scx=Arab Syrc Thaa;Term;WB=XX;-XIDC;-XIDS
+cp;061B;-Alpha;gc=Po;-IDC;-IDS;jt=U;lb=EX;na=ARABIC SEMICOLON;SB=XX;sc=Zyyy;scx=Arab Rohg Syrc Thaa;Term;WB=XX;-XIDC;-XIDS
# Format character
cp;061C;age=6.3;-Alpha;Bidi_C;CI;CWKCF;DI;gc=Cf;GCB=CN;-Gr_Base;-IDC;-IDS;jt=T;lb=CM;na=ARABIC LETTER MARK;Name_Alias=abbreviation=ALM;NFKC_CF=;SB=FO;scx=Arab Syrc Thaa;WB=FO;-XIDC;-XIDS
unassigned;061D;bc=AL
# Punctuation
-cp;061E;age=4.1;-Alpha;gc=Po;-IDC;-IDS;jt=U;lb=EX;na=ARABIC TRIPLE DOT PUNCTUATION MARK;SB=XX;WB=XX;-XIDC;-XIDS
-cp;061F;-Alpha;gc=Po;-IDC;-IDS;jt=U;lb=EX;na=ARABIC QUESTION MARK;SB=ST;sc=Zyyy;scx=Arab Syrc Thaa;STerm;Term;WB=XX;-XIDC;-XIDS
+cp;061E;age=4.1;-Alpha;gc=Po;-IDC;-IDS;jt=U;lb=EX;na=ARABIC TRIPLE DOT PUNCTUATION MARK;SB=ST;STerm;Term;WB=XX;-XIDC;-XIDS
+cp;061F;-Alpha;gc=Po;-IDC;-IDS;jt=U;lb=EX;na=ARABIC QUESTION MARK;SB=ST;sc=Zyyy;scx=Arab Rohg Syrc Thaa;STerm;Term;WB=XX;-XIDC;-XIDS
# Addition for Kashmiri
cp;0620;age=6.0;jg=Yeh;na=ARABIC LETTER KASHMIRI YEH
# Based on ISO 8859-6
@@ -2921,7 +2948,7 @@ cp;063D;age=5.1;jg=Farsi_Yeh;na=ARABIC LETTER FARSI YEH WITH INVERTED V
cp;063E;age=5.1;jg=Farsi_Yeh;na=ARABIC LETTER FARSI YEH WITH TWO DOTS ABOVE
cp;063F;age=5.1;jg=Farsi_Yeh;na=ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
# Based on ISO 8859-6
-cp;0640;CI;Ext;gc=Lm;jt=C;na=ARABIC TATWEEL;sc=Zyyy;scx=Adlm Arab Mand Mani Phlp Syrc
+cp;0640;CI;Ext;gc=Lm;jt=C;na=ARABIC TATWEEL;sc=Zyyy;scx=Adlm Arab Mand Mani Phlp Rohg Sogd Syrc
cp;0641;jg=Feh;na=ARABIC LETTER FEH
cp;0642;jg=Qaf;na=ARABIC LETTER QAF
cp;0643;jg=Kaf;na=ARABIC LETTER KAF
@@ -3080,10 +3107,10 @@ cp;06D1;jg=Yeh;na=ARABIC LETTER YEH WITH THREE DOTS BELOW
cp;06D2;jg=Yeh_Barree;jt=R;na=ARABIC LETTER YEH BARREE
cp;06D3;dm=06D2 0654;dt=Can;jg=Yeh_Barree;jt=R;na=ARABIC LETTER YEH BARREE WITH HAMZA ABOVE;NFD_QC=N;NFKD_QC=N
# Punctuation
-cp;06D4;-Alpha;gc=Po;-IDC;-IDS;jt=U;lb=EX;na=ARABIC FULL STOP;SB=ST;STerm;Term;WB=XX;-XIDC;-XIDS
+cp;06D4;-Alpha;gc=Po;-IDC;-IDS;jt=U;lb=EX;na=ARABIC FULL STOP;SB=ST;scx=Arab Rohg;STerm;Term;WB=XX;-XIDC;-XIDS
# Extended Arabic letter
cp;06D5;jg=Teh_Marbuta;jt=R;na=ARABIC LETTER AE
-# Koranic annotation signs
+# Quranic annotation signs
cp;06D6;bc=NSM;ccc=230;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;jt=T;lb=CM;na=ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA;SB=EX;WB=Extend;-XIDS
cp;06D7;bc=NSM;ccc=230;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;jt=T;lb=CM;na=ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA;SB=EX;WB=Extend;-XIDS
cp;06D8;bc=NSM;ccc=230;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;jt=T;lb=CM;na=ARABIC SMALL HIGH MEEM INITIAL FORM;SB=EX;WB=Extend;-XIDS
@@ -3405,7 +3432,12 @@ cp;07F8;-Alpha;bc=ON;gc=Po;-IDC;-IDS;jt=U;lb=IS;na=NKO COMMA;SB=SC;Term;WB=MN;-X
cp;07F9;-Alpha;bc=ON;gc=Po;-IDC;-IDS;jt=U;lb=EX;na=NKO EXCLAMATION MARK;SB=ST;STerm;Term;WB=XX;-XIDC;-XIDS
# Letter extender
cp;07FA;CI;Ext;gc=Lm;jt=C;na=NKO LAJANYALAN
-unassigned;07FB..07FF;bc=R
+unassigned;07FB..07FC;bc=R
+# Abbreviation sign
+cp;07FD;age=11.0;-Alpha;bc=NSM;ccc=220;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;jt=T;lb=CM;na=NKO DANTAYALAN;SB=EX;WB=Extend;-XIDS
+# Currency signs
+cp;07FE;age=11.0;-Alpha;gc=Sc;-IDC;-IDS;jt=U;lb=PR;na=NKO DOROME SIGN;SB=XX;WB=XX;-XIDC;-XIDS
+cp;07FF;age=11.0;-Alpha;gc=Sc;-IDC;-IDS;jt=U;lb=PR;na=NKO TAMAN SIGN;SB=XX;WB=XX;-XIDC;-XIDS
block;0800..083F;age=5.2;Alpha;bc=R;blk=Samaritan;gc=Lo;Gr_Base;IDC;lb=AL;SB=LE;sc=Samr;WB=Extend;XIDC
# 0800..083F Samaritan
@@ -3468,14 +3500,14 @@ cp;0833;-Alpha;gc=Po;-IDC;na=SAMARITAN PUNCTUATION BAU;SB=XX;Term;WB=XX;-XIDC
cp;0834;-Alpha;gc=Po;-IDC;na=SAMARITAN PUNCTUATION ATMAAU;SB=XX;Term;WB=XX;-XIDC
cp;0835;-Alpha;gc=Po;-IDC;na=SAMARITAN PUNCTUATION SHIYYAALAA;SB=XX;Term;WB=XX;-XIDC
cp;0836;-Alpha;gc=Po;-IDC;na=SAMARITAN ABBREVIATION MARK;SB=XX;Term;WB=XX;-XIDC
-cp;0837;-Alpha;gc=Po;-IDC;na=SAMARITAN PUNCTUATION MELODIC QITSA;SB=XX;Term;WB=XX;-XIDC
+cp;0837;-Alpha;gc=Po;-IDC;na=SAMARITAN PUNCTUATION MELODIC QITSA;SB=ST;STerm;Term;WB=XX;-XIDC
cp;0838;-Alpha;gc=Po;-IDC;na=SAMARITAN PUNCTUATION ZIQAA;SB=XX;Term;WB=XX;-XIDC
-cp;0839;-Alpha;gc=Po;-IDC;na=SAMARITAN PUNCTUATION QITSA;SB=XX;Term;WB=XX;-XIDC
+cp;0839;-Alpha;gc=Po;-IDC;na=SAMARITAN PUNCTUATION QITSA;SB=ST;STerm;Term;WB=XX;-XIDC
cp;083A;-Alpha;gc=Po;-IDC;na=SAMARITAN PUNCTUATION ZAEF;SB=XX;Term;WB=XX;-XIDC
cp;083B;-Alpha;gc=Po;-IDC;na=SAMARITAN PUNCTUATION TURU;SB=XX;Term;WB=XX;-XIDC
cp;083C;-Alpha;gc=Po;-IDC;na=SAMARITAN PUNCTUATION ARKAANU;SB=XX;Term;WB=XX;-XIDC
-cp;083D;-Alpha;gc=Po;-IDC;na=SAMARITAN PUNCTUATION SOF MASHFAAT;SB=XX;Term;WB=XX;-XIDC
-cp;083E;-Alpha;gc=Po;-IDC;na=SAMARITAN PUNCTUATION ANNAAU;SB=XX;Term;WB=XX;-XIDC
+cp;083D;-Alpha;gc=Po;-IDC;na=SAMARITAN PUNCTUATION SOF MASHFAAT;SB=ST;STerm;Term;WB=XX;-XIDC
+cp;083E;-Alpha;gc=Po;-IDC;na=SAMARITAN PUNCTUATION ANNAAU;SB=ST;STerm;Term;WB=XX;-XIDC
unassigned;083F;bc=R
block;0840..085F;age=6.0;Alpha;bc=R;blk=Mandaic;gc=Lo;Gr_Base;IDC;IDS;jt=D;lb=AL;SB=LE;sc=Mand;WB=LE;XIDC;XIDS
@@ -3573,8 +3605,9 @@ cp;08BA;age=9.0;bc=AL;ccc=0;-CI;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;jg=Yeh;jt=D;lb=
cp;08BB;age=9.0;bc=AL;ccc=0;-CI;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;jg=African_Feh;jt=D;lb=AL;na=ARABIC LETTER AFRICAN FEH;SB=LE;WB=LE;XIDS
cp;08BC;age=9.0;bc=AL;ccc=0;-CI;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;jg=African_Qaf;jt=D;lb=AL;na=ARABIC LETTER AFRICAN QAF;SB=LE;WB=LE;XIDS
cp;08BD;age=9.0;bc=AL;ccc=0;-CI;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;jg=African_Noon;jt=D;lb=AL;na=ARABIC LETTER AFRICAN NOON;SB=LE;WB=LE;XIDS
-unassigned;08BE..08D3;bc=AL
-# Pakistani Quranic marks
+unassigned;08BE..08D2;bc=AL
+# Quranic annotation signs
+cp;08D3;age=11.0;-Alpha;ccc=220;na=ARABIC SMALL LOW WAW
cp;08D4;age=9.0;na=ARABIC SMALL HIGH WORD AR-RUB
cp;08D5;age=9.0;na=ARABIC SMALL HIGH SAD
cp;08D6;age=9.0;na=ARABIC SMALL HIGH AIN
@@ -3719,8 +3752,8 @@ cp;094F;age=6.0;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=DEVAN
# Sign
cp;0950;InSC=Other;na=DEVANAGARI OM
# Vedic tone marks
-cp;0951;-Alpha;bc=NSM;ccc=230;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Cantillation_Mark;jt=T;lb=CM;na=DEVANAGARI STRESS SIGN UDATTA;SB=EX;sc=Zinh;scx=Beng Deva Gran Gujr Guru Knda Latn Mlym Orya Shrd Taml Telu;WB=Extend;-XIDS
-cp;0952;-Alpha;bc=NSM;ccc=220;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Bottom;InSC=Cantillation_Mark;jt=T;lb=CM;na=DEVANAGARI STRESS SIGN ANUDATTA;SB=EX;sc=Zinh;scx=Beng Deva Gran Gujr Guru Knda Latn Mlym Orya Taml Telu;WB=Extend;-XIDS
+cp;0951;-Alpha;bc=NSM;ccc=230;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Cantillation_Mark;jt=T;lb=CM;na=DEVANAGARI STRESS SIGN UDATTA;SB=EX;sc=Zinh;scx=Beng Deva Gran Gujr Guru Knda Latn Mlym Orya Shrd Taml Telu Tirh;WB=Extend;-XIDS
+cp;0952;-Alpha;bc=NSM;ccc=220;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Bottom;InSC=Cantillation_Mark;jt=T;lb=CM;na=DEVANAGARI STRESS SIGN ANUDATTA;SB=EX;sc=Zinh;scx=Beng Deva Gran Gujr Guru Knda Latn Mlym Orya Taml Telu Tirh;WB=Extend;-XIDS
# Accent marks
cp;0953;-Alpha;bc=NSM;ccc=230;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Other;jt=T;lb=CM;na=DEVANAGARI GRAVE ACCENT;SB=EX;WB=Extend;-XIDS
cp;0954;-Alpha;bc=NSM;ccc=230;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Other;jt=T;lb=CM;na=DEVANAGARI ACUTE ACCENT;SB=EX;WB=Extend;-XIDS
@@ -3744,19 +3777,19 @@ cp;0961;InSC=Vowel_Independent;na=DEVANAGARI LETTER VOCALIC LL
cp;0962;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Bottom;InSC=Vowel_Dependent;jt=T;lb=CM;na=DEVANAGARI VOWEL SIGN VOCALIC L;SB=EX;WB=Extend;-XIDS
cp;0963;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Bottom;InSC=Vowel_Dependent;jt=T;lb=CM;na=DEVANAGARI VOWEL SIGN VOCALIC LL;SB=EX;WB=Extend;-XIDS
# Generic punctuation for scripts of India
-cp;0964;-Alpha;gc=Po;-IDC;-IDS;InSC=Other;lb=BA;na=DEVANAGARI DANDA;SB=ST;sc=Zyyy;scx=Beng Deva Gran Gujr Guru Knda Mahj Mlym Orya Sind Sinh Sylo Takr Taml Telu Tirh;STerm;Term;WB=XX;-XIDC;-XIDS
-cp;0965;-Alpha;gc=Po;-IDC;-IDS;InSC=Other;lb=BA;na=DEVANAGARI DOUBLE DANDA;SB=ST;sc=Zyyy;scx=Beng Deva Gran Gujr Guru Knda Limb Mahj Mlym Orya Sind Sinh Sylo Takr Taml Telu Tirh;STerm;Term;WB=XX;-XIDC;-XIDS
+cp;0964;-Alpha;gc=Po;-IDC;-IDS;InSC=Other;lb=BA;na=DEVANAGARI DANDA;SB=ST;sc=Zyyy;scx=Beng Deva Dogr Gong Gran Gujr Guru Knda Mahj Mlym Orya Sind Sinh Sylo Takr Taml Telu Tirh;STerm;Term;WB=XX;-XIDC;-XIDS
+cp;0965;-Alpha;gc=Po;-IDC;-IDS;InSC=Other;lb=BA;na=DEVANAGARI DOUBLE DANDA;SB=ST;sc=Zyyy;scx=Beng Deva Dogr Gong Gran Gujr Guru Knda Limb Mahj Mlym Orya Sind Sinh Sylo Takr Taml Telu Tirh;STerm;Term;WB=XX;-XIDC;-XIDS
# Digits
-cp;0966;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=DEVANAGARI DIGIT ZERO;nt=De;nv=0;SB=NU;scx=Deva Kthi Mahj;WB=NU;-XIDS
-cp;0967;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=DEVANAGARI DIGIT ONE;nt=De;nv=1;SB=NU;scx=Deva Kthi Mahj;WB=NU;-XIDS
-cp;0968;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=DEVANAGARI DIGIT TWO;nt=De;nv=2;SB=NU;scx=Deva Kthi Mahj;WB=NU;-XIDS
-cp;0969;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=DEVANAGARI DIGIT THREE;nt=De;nv=3;SB=NU;scx=Deva Kthi Mahj;WB=NU;-XIDS
-cp;096A;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=DEVANAGARI DIGIT FOUR;nt=De;nv=4;SB=NU;scx=Deva Kthi Mahj;WB=NU;-XIDS
-cp;096B;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=DEVANAGARI DIGIT FIVE;nt=De;nv=5;SB=NU;scx=Deva Kthi Mahj;WB=NU;-XIDS
-cp;096C;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=DEVANAGARI DIGIT SIX;nt=De;nv=6;SB=NU;scx=Deva Kthi Mahj;WB=NU;-XIDS
-cp;096D;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=DEVANAGARI DIGIT SEVEN;nt=De;nv=7;SB=NU;scx=Deva Kthi Mahj;WB=NU;-XIDS
-cp;096E;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=DEVANAGARI DIGIT EIGHT;nt=De;nv=8;SB=NU;scx=Deva Kthi Mahj;WB=NU;-XIDS
-cp;096F;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=DEVANAGARI DIGIT NINE;nt=De;nv=9;SB=NU;scx=Deva Kthi Mahj;WB=NU;-XIDS
+cp;0966;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=DEVANAGARI DIGIT ZERO;nt=De;nv=0;SB=NU;scx=Deva Dogr Kthi Mahj;WB=NU;-XIDS
+cp;0967;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=DEVANAGARI DIGIT ONE;nt=De;nv=1;SB=NU;scx=Deva Dogr Kthi Mahj;WB=NU;-XIDS
+cp;0968;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=DEVANAGARI DIGIT TWO;nt=De;nv=2;SB=NU;scx=Deva Dogr Kthi Mahj;WB=NU;-XIDS
+cp;0969;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=DEVANAGARI DIGIT THREE;nt=De;nv=3;SB=NU;scx=Deva Dogr Kthi Mahj;WB=NU;-XIDS
+cp;096A;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=DEVANAGARI DIGIT FOUR;nt=De;nv=4;SB=NU;scx=Deva Dogr Kthi Mahj;WB=NU;-XIDS
+cp;096B;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=DEVANAGARI DIGIT FIVE;nt=De;nv=5;SB=NU;scx=Deva Dogr Kthi Mahj;WB=NU;-XIDS
+cp;096C;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=DEVANAGARI DIGIT SIX;nt=De;nv=6;SB=NU;scx=Deva Dogr Kthi Mahj;WB=NU;-XIDS
+cp;096D;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=DEVANAGARI DIGIT SEVEN;nt=De;nv=7;SB=NU;scx=Deva Dogr Kthi Mahj;WB=NU;-XIDS
+cp;096E;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=DEVANAGARI DIGIT EIGHT;nt=De;nv=8;SB=NU;scx=Deva Dogr Kthi Mahj;WB=NU;-XIDS
+cp;096F;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=DEVANAGARI DIGIT NINE;nt=De;nv=9;SB=NU;scx=Deva Dogr Kthi Mahj;WB=NU;-XIDS
# Abbreviation sign
cp;0970;-Alpha;gc=Po;-IDC;-IDS;InSC=Other;na=DEVANAGARI ABBREVIATION SIGN;SB=XX;WB=XX;-XIDC;-XIDS
cp;0971;age=5.1;CI;Dia;gc=Lm;InSC=Other;na=DEVANAGARI SIGN HIGH SPACING DOT
@@ -3785,7 +3818,7 @@ cp;097F;age=5.0;na=DEVANAGARI LETTER BBA
block;0980..09FF;age=1.1;Alpha;blk=Bengali;gc=Lo;Gr_Base;IDC;IDS;InSC=Consonant;lb=AL;SB=LE;sc=Beng;WB=LE;XIDC;XIDS
# 0980..09FF Bengali
# Various signs
-cp;0980;age=7.0;InSC=Other;na=BENGALI ANJI
+cp;0980;age=7.0;InSC=Consonant_Placeholder;na=BENGALI ANJI
cp;0981;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Bindu;jt=T;lb=CM;na=BENGALI SIGN CANDRABINDU;SB=EX;WB=Extend;-XIDS
cp;0982;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Bindu;lb=CM;na=BENGALI SIGN ANUSVARA;SB=EX;WB=Extend;-XIDS
cp;0983;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Visarga;lb=CM;na=BENGALI SIGN VISARGA;SB=EX;WB=Extend;-XIDS
@@ -3911,7 +3944,8 @@ cp;09FB;age=5.2;-Alpha;bc=ET;gc=Sc;-IDC;-IDS;InSC=Other;lb=PR;na=BENGALI GANDA M
# Signs
cp;09FC;age=10.0;InSC=Bindu;na=BENGALI LETTER VEDIC ANUSVARA
cp;09FD;age=10.0;-Alpha;gc=Po;-IDC;-IDS;InSC=Other;na=BENGALI ABBREVIATION SIGN;SB=XX;WB=XX;-XIDC;-XIDS
-unassigned;09FE..09FF
+cp;09FE;age=11.0;-Alpha;bc=NSM;ccc=230;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Syllable_Modifier;jt=T;lb=CM;na=BENGALI SANDHI MARK;SB=EX;WB=Extend;-XIDS
+unassigned;09FF
block;0A00..0A7F;age=1.1;Alpha;blk=Gurmukhi;gc=Lo;Gr_Base;IDC;IDS;InSC=Consonant;lb=AL;SB=LE;sc=Guru;WB=LE;XIDC;XIDS
# 0A00..0A7F Gurmukhi
@@ -3992,7 +4026,7 @@ cp;0A4C;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Vowel_Dependen
cp;0A4D;-Alpha;bc=NSM;ccc=9;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;Gr_Link;-IDS;InPC=Bottom;InSC=Virama;jt=T;lb=CM;na=GURMUKHI SIGN VIRAMA;SB=EX;WB=Extend;-XIDS
unassigned;0A4E..0A50
# Sign
-cp;0A51;age=5.1;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InSC=Other;jt=T;lb=CM;na=GURMUKHI SIGN UDAAT;SB=EX;WB=Extend;-XIDS
+cp;0A51;age=5.1;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InSC=Cantillation_Mark;jt=T;lb=CM;na=GURMUKHI SIGN UDAAT;SB=EX;WB=Extend;-XIDS
unassigned;0A52..0A58
# Additional consonants
cp;0A59;Comp_Ex;CWKCF;dm=0A16 0A3C;dt=Can;na=GURMUKHI LETTER KHHA;NFC_QC=N;NFD_QC=N;NFKC_CF=0A16 0A3C;NFKC_QC=N;NFKD_QC=N
@@ -4015,14 +4049,17 @@ cp;0A6C;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=GURMUKHI DIGIT SIX;nt=De;nv=6;SB=
cp;0A6D;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=GURMUKHI DIGIT SEVEN;nt=De;nv=7;SB=NU;scx=Guru Mult;WB=NU;-XIDS
cp;0A6E;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=GURMUKHI DIGIT EIGHT;nt=De;nv=8;SB=NU;scx=Guru Mult;WB=NU;-XIDS
cp;0A6F;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=GURMUKHI DIGIT NINE;nt=De;nv=9;SB=NU;scx=Guru Mult;WB=NU;-XIDS
-# Gurmukhi-specific additions
+# Signs
cp;0A70;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Bindu;jt=T;lb=CM;na=GURMUKHI TIPPI;SB=EX;WB=Extend;-XIDS
cp;0A71;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Gemination_Mark;jt=T;lb=CM;na=GURMUKHI ADDAK;SB=EX;WB=Extend;-XIDS
+# Vowel bases
cp;0A72;InSC=Consonant_Placeholder;na=GURMUKHI IRI
cp;0A73;InSC=Consonant_Placeholder;na=GURMUKHI URA
+# Signs
cp;0A74;InSC=Other;na=GURMUKHI EK ONKAR
cp;0A75;age=5.1;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Bottom;InSC=Consonant_Medial;jt=T;lb=CM;na=GURMUKHI SIGN YAKASH;SB=EX;WB=Extend;-XIDS
-unassigned;0A76..0A7F
+cp;0A76;age=11.0;-Alpha;gc=Po;-IDC;-IDS;InSC=Other;na=GURMUKHI ABBREVIATION SIGN;SB=XX;WB=XX;-XIDC;-XIDS
+unassigned;0A77..0A7F
block;0A80..0AFF;age=1.1;Alpha;blk=Gujarati;gc=Lo;Gr_Base;IDC;IDS;InSC=Consonant;lb=AL;SB=LE;sc=Gujr;WB=LE;XIDC;XIDS
# 0A80..0AFF Gujarati
@@ -4308,7 +4345,7 @@ cp;0BA4;IDS;na=TAMIL LETTER TA;XIDS
unassigned;0BA5..0BA7
cp;0BA8;IDS;na=TAMIL LETTER NA;XIDS
cp;0BA9;IDS;na=TAMIL LETTER NNNA;XIDS
-cp;0BAA;IDS;na=TAMIL LETTER PA;scx=Gran Taml;XIDS
+cp;0BAA;IDS;na=TAMIL LETTER PA;XIDS
unassigned;0BAB..0BAD
cp;0BAE;IDS;na=TAMIL LETTER MA;XIDS
cp;0BAF;IDS;na=TAMIL LETTER YA;XIDS
@@ -4317,7 +4354,7 @@ cp;0BB1;IDS;na=TAMIL LETTER RRA;XIDS
cp;0BB2;IDS;na=TAMIL LETTER LA;XIDS
cp;0BB3;IDS;na=TAMIL LETTER LLA;XIDS
cp;0BB4;IDS;na=TAMIL LETTER LLLA;XIDS
-cp;0BB5;IDS;na=TAMIL LETTER VA;scx=Gran Taml;XIDS
+cp;0BB5;IDS;na=TAMIL LETTER VA;XIDS
cp;0BB6;age=4.1;IDS;na=TAMIL LETTER SHA;XIDS
cp;0BB7;IDS;na=TAMIL LETTER SSA;XIDS
cp;0BB8;IDS;na=TAMIL LETTER SA;XIDS
@@ -4364,7 +4401,7 @@ cp;0BF0;-Alpha;gc=No;-IDC;InSC=Other;na=TAMIL NUMBER TEN;nt=Nu;nv=10;SB=XX;scx=G
cp;0BF1;-Alpha;gc=No;-IDC;InSC=Other;na=TAMIL NUMBER ONE HUNDRED;nt=Nu;nv=100;SB=XX;scx=Gran Taml;WB=XX;-XIDC
cp;0BF2;-Alpha;gc=No;-IDC;InSC=Other;na=TAMIL NUMBER ONE THOUSAND;nt=Nu;nv=1000;SB=XX;scx=Gran Taml;WB=XX;-XIDC
# Tamil calendrical symbols
-cp;0BF3;age=4.0;-Alpha;bc=ON;gc=So;-IDC;InSC=Other;na=TAMIL DAY SIGN;SB=XX;WB=XX;-XIDC
+cp;0BF3;age=4.0;-Alpha;bc=ON;gc=So;-IDC;InSC=Other;na=TAMIL DAY SIGN;SB=XX;scx=Gran Taml;WB=XX;-XIDC
cp;0BF4;age=4.0;-Alpha;bc=ON;gc=So;-IDC;InSC=Other;na=TAMIL MONTH SIGN;SB=XX;WB=XX;-XIDC
cp;0BF5;age=4.0;-Alpha;bc=ON;gc=So;-IDC;InSC=Other;na=TAMIL YEAR SIGN;SB=XX;WB=XX;-XIDC
# Tamil clerical symbols
@@ -4384,7 +4421,7 @@ cp;0C00;age=7.0;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Bindu;
cp;0C01;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Bindu;lb=CM;na=TELUGU SIGN CANDRABINDU;SB=EX;WB=Extend;-XIDS
cp;0C02;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Bindu;lb=CM;na=TELUGU SIGN ANUSVARA;SB=EX;WB=Extend;-XIDS
cp;0C03;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Visarga;lb=CM;na=TELUGU SIGN VISARGA;SB=EX;WB=Extend;-XIDS
-unassigned;0C04
+cp;0C04;age=11.0;-Alpha;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Bindu;jt=T;lb=CM;na=TELUGU SIGN COMBINING ANUSVARA ABOVE;SB=EX;WB=Extend;-XIDS
# Independent vowels
cp;0C05;InSC=Vowel_Independent;na=TELUGU LETTER A
cp;0C06;InSC=Vowel_Independent;na=TELUGU LETTER AA
@@ -4508,7 +4545,7 @@ cp;0C80;age=9.0;InSC=Other;na=KANNADA SIGN SPACING CANDRABINDU
cp;0C81;age=7.0;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Bindu;jt=T;lb=CM;na=KANNADA SIGN CANDRABINDU;SB=EX;WB=Extend;-XIDS
cp;0C82;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Bindu;lb=CM;na=KANNADA SIGN ANUSVARA;SB=EX;WB=Extend;-XIDS
cp;0C83;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Visarga;lb=CM;na=KANNADA SIGN VISARGA;SB=EX;WB=Extend;-XIDS
-unassigned;0C84
+cp;0C84;age=11.0;-Alpha;gc=Po;-IDC;-IDS;InSC=Other;lb=BB;na=KANNADA SIGN SIDDHAM;SB=XX;WB=XX;-XIDC;-XIDS
# Independent vowels
cp;0C85;InSC=Vowel_Independent;na=KANNADA LETTER A
cp;0C86;InSC=Vowel_Independent;na=KANNADA LETTER AA
@@ -5399,6 +5436,7 @@ cp;1035;age=5.1;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;InPC=Top;InSC=Vowel_Depen
cp;1036;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;InPC=Top;InSC=Bindu;jt=T;na=MYANMAR SIGN ANUSVARA;SB=EX
cp;1037;-Alpha;bc=NSM;ccc=7;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;InPC=Bottom;InSC=Tone_Mark;jt=T;na=MYANMAR SIGN DOT BELOW;SB=EX
cp;1038;gc=Mc;InPC=Right;InSC=Visarga;na=MYANMAR SIGN VISARGA;SB=EX
+# Virama and killer
cp;1039;-Alpha;bc=NSM;ccc=9;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;Gr_Link;InSC=Invisible_Stacker;jt=T;na=MYANMAR SIGN VIRAMA;SB=EX
cp;103A;age=5.1;-Alpha;bc=NSM;ccc=9;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;Gr_Link;InPC=Top;InSC=Pure_Killer;jt=T;na=MYANMAR SIGN ASAT;SB=EX
# Dependent consonant signs
@@ -5421,7 +5459,7 @@ cp;1048;-Alpha;gc=Nd;InSC=Number;lb=NU;na=MYANMAR DIGIT EIGHT;nt=De;nv=8;SB=NU;s
cp;1049;-Alpha;gc=Nd;InSC=Number;lb=NU;na=MYANMAR DIGIT NINE;nt=De;nv=9;SB=NU;scx=Cakm Mymr Tale;WB=NU
# Punctuation
cp;104A;-Alpha;gc=Po;-IDC;InSC=Other;lb=BA;na=MYANMAR SIGN LITTLE SECTION;SB=ST;STerm;Term;WB=XX;-XIDC
-cp;104B;-Alpha;gc=Po;-IDC;InSC=Other;lb=BA;na=MYANMAR SIGN SECTION;SB=ST;STerm;Term;WB=XX;-XIDC
+cp;104B;-Alpha;gc=Po;-IDC;InSC=Consonant_Placeholder;lb=BA;na=MYANMAR SIGN SECTION;SB=ST;STerm;Term;WB=XX;-XIDC
# Various signs
cp;104C;-Alpha;gc=Po;-IDC;InSC=Other;lb=AL;na=MYANMAR SYMBOL LOCATIVE;SB=XX;WB=XX;-XIDC
cp;104D;-Alpha;gc=Po;-IDC;InSC=Other;lb=AL;na=MYANMAR SYMBOL COMPLETED;SB=XX;WB=XX;-XIDC
@@ -5521,109 +5559,109 @@ cp;109D;age=5.2;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;InPC=Top;InSC=Vowel_Depen
cp;109E;age=5.1;-Alpha;gc=So;-IDC;InSC=Other;na=MYANMAR SYMBOL SHAN ONE;SB=XX;WB=XX;-XIDC
cp;109F;age=5.1;-Alpha;gc=So;-IDC;InSC=Other;na=MYANMAR SYMBOL SHAN EXCLAMATION;SB=XX;WB=XX;-XIDC
-block;10A0..10FF;age=1.1;Alpha;blk=Georgian;gc=Lo;Gr_Base;IDC;IDS;lb=AL;SB=LE;sc=Geor;WB=LE;XIDC;XIDS
+block;10A0..10FF;age=1.1;Alpha;blk=Georgian;Cased;CWCM;gc=Ll;Gr_Base;IDC;IDS;lb=AL;SB=LO;sc=Geor;WB=LE;XIDC;XIDS
# 10A0..10FF Georgian
# Capital letters (Khutsuri)
-cp;10A0;Cased;cf=2D00;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER AN;NFKC_CF=2D00;SB=UP;scf=2D00;slc=2D00;Upper
-cp;10A1;Cased;cf=2D01;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER BAN;NFKC_CF=2D01;SB=UP;scf=2D01;slc=2D01;Upper
-cp;10A2;Cased;cf=2D02;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER GAN;NFKC_CF=2D02;SB=UP;scf=2D02;slc=2D02;Upper
-cp;10A3;Cased;cf=2D03;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER DON;NFKC_CF=2D03;SB=UP;scf=2D03;slc=2D03;Upper
-cp;10A4;Cased;cf=2D04;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER EN;NFKC_CF=2D04;SB=UP;scf=2D04;slc=2D04;Upper
-cp;10A5;Cased;cf=2D05;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER VIN;NFKC_CF=2D05;SB=UP;scf=2D05;slc=2D05;Upper
-cp;10A6;Cased;cf=2D06;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER ZEN;NFKC_CF=2D06;SB=UP;scf=2D06;slc=2D06;Upper
-cp;10A7;Cased;cf=2D07;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER TAN;NFKC_CF=2D07;SB=UP;scf=2D07;slc=2D07;Upper
-cp;10A8;Cased;cf=2D08;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER IN;NFKC_CF=2D08;SB=UP;scf=2D08;slc=2D08;Upper
-cp;10A9;Cased;cf=2D09;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER KAN;NFKC_CF=2D09;SB=UP;scf=2D09;slc=2D09;Upper
-cp;10AA;Cased;cf=2D0A;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER LAS;NFKC_CF=2D0A;SB=UP;scf=2D0A;slc=2D0A;Upper
-cp;10AB;Cased;cf=2D0B;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER MAN;NFKC_CF=2D0B;SB=UP;scf=2D0B;slc=2D0B;Upper
-cp;10AC;Cased;cf=2D0C;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER NAR;NFKC_CF=2D0C;SB=UP;scf=2D0C;slc=2D0C;Upper
-cp;10AD;Cased;cf=2D0D;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER ON;NFKC_CF=2D0D;SB=UP;scf=2D0D;slc=2D0D;Upper
-cp;10AE;Cased;cf=2D0E;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER PAR;NFKC_CF=2D0E;SB=UP;scf=2D0E;slc=2D0E;Upper
-cp;10AF;Cased;cf=2D0F;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER ZHAR;NFKC_CF=2D0F;SB=UP;scf=2D0F;slc=2D0F;Upper
-cp;10B0;Cased;cf=2D10;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER RAE;NFKC_CF=2D10;SB=UP;scf=2D10;slc=2D10;Upper
-cp;10B1;Cased;cf=2D11;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER SAN;NFKC_CF=2D11;SB=UP;scf=2D11;slc=2D11;Upper
-cp;10B2;Cased;cf=2D12;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER TAR;NFKC_CF=2D12;SB=UP;scf=2D12;slc=2D12;Upper
-cp;10B3;Cased;cf=2D13;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER UN;NFKC_CF=2D13;SB=UP;scf=2D13;slc=2D13;Upper
-cp;10B4;Cased;cf=2D14;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER PHAR;NFKC_CF=2D14;SB=UP;scf=2D14;slc=2D14;Upper
-cp;10B5;Cased;cf=2D15;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER KHAR;NFKC_CF=2D15;SB=UP;scf=2D15;slc=2D15;Upper
-cp;10B6;Cased;cf=2D16;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER GHAN;NFKC_CF=2D16;SB=UP;scf=2D16;slc=2D16;Upper
-cp;10B7;Cased;cf=2D17;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER QAR;NFKC_CF=2D17;SB=UP;scf=2D17;slc=2D17;Upper
-cp;10B8;Cased;cf=2D18;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER SHIN;NFKC_CF=2D18;SB=UP;scf=2D18;slc=2D18;Upper
-cp;10B9;Cased;cf=2D19;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER CHIN;NFKC_CF=2D19;SB=UP;scf=2D19;slc=2D19;Upper
-cp;10BA;Cased;cf=2D1A;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER CAN;NFKC_CF=2D1A;SB=UP;scf=2D1A;slc=2D1A;Upper
-cp;10BB;Cased;cf=2D1B;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER JIL;NFKC_CF=2D1B;SB=UP;scf=2D1B;slc=2D1B;Upper
-cp;10BC;Cased;cf=2D1C;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER CIL;NFKC_CF=2D1C;SB=UP;scf=2D1C;slc=2D1C;Upper
-cp;10BD;Cased;cf=2D1D;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER CHAR;NFKC_CF=2D1D;SB=UP;scf=2D1D;slc=2D1D;Upper
-cp;10BE;Cased;cf=2D1E;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER XAN;NFKC_CF=2D1E;SB=UP;scf=2D1E;slc=2D1E;Upper
-cp;10BF;Cased;cf=2D1F;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER JHAN;NFKC_CF=2D1F;SB=UP;scf=2D1F;slc=2D1F;Upper
-cp;10C0;Cased;cf=2D20;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER HAE;NFKC_CF=2D20;SB=UP;scf=2D20;slc=2D20;Upper
-cp;10C1;Cased;cf=2D21;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER HE;NFKC_CF=2D21;SB=UP;scf=2D21;slc=2D21;Upper
-cp;10C2;Cased;cf=2D22;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER HIE;NFKC_CF=2D22;SB=UP;scf=2D22;slc=2D22;Upper
-cp;10C3;Cased;cf=2D23;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER WE;NFKC_CF=2D23;SB=UP;scf=2D23;slc=2D23;Upper
-cp;10C4;Cased;cf=2D24;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER HAR;NFKC_CF=2D24;SB=UP;scf=2D24;slc=2D24;Upper
-cp;10C5;Cased;cf=2D25;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER HOE;NFKC_CF=2D25;SB=UP;scf=2D25;slc=2D25;Upper
+cp;10A0;cf=2D00;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER AN;NFKC_CF=2D00;SB=UP;scf=2D00;slc=2D00;Upper
+cp;10A1;cf=2D01;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER BAN;NFKC_CF=2D01;SB=UP;scf=2D01;slc=2D01;Upper
+cp;10A2;cf=2D02;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER GAN;NFKC_CF=2D02;SB=UP;scf=2D02;slc=2D02;Upper
+cp;10A3;cf=2D03;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER DON;NFKC_CF=2D03;SB=UP;scf=2D03;slc=2D03;Upper
+cp;10A4;cf=2D04;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER EN;NFKC_CF=2D04;SB=UP;scf=2D04;slc=2D04;Upper
+cp;10A5;cf=2D05;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER VIN;NFKC_CF=2D05;SB=UP;scf=2D05;slc=2D05;Upper
+cp;10A6;cf=2D06;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER ZEN;NFKC_CF=2D06;SB=UP;scf=2D06;slc=2D06;Upper
+cp;10A7;cf=2D07;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER TAN;NFKC_CF=2D07;SB=UP;scf=2D07;slc=2D07;Upper
+cp;10A8;cf=2D08;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER IN;NFKC_CF=2D08;SB=UP;scf=2D08;slc=2D08;Upper
+cp;10A9;cf=2D09;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER KAN;NFKC_CF=2D09;SB=UP;scf=2D09;slc=2D09;Upper
+cp;10AA;cf=2D0A;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER LAS;NFKC_CF=2D0A;SB=UP;scf=2D0A;slc=2D0A;Upper
+cp;10AB;cf=2D0B;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER MAN;NFKC_CF=2D0B;SB=UP;scf=2D0B;slc=2D0B;Upper
+cp;10AC;cf=2D0C;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER NAR;NFKC_CF=2D0C;SB=UP;scf=2D0C;slc=2D0C;Upper
+cp;10AD;cf=2D0D;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER ON;NFKC_CF=2D0D;SB=UP;scf=2D0D;slc=2D0D;Upper
+cp;10AE;cf=2D0E;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER PAR;NFKC_CF=2D0E;SB=UP;scf=2D0E;slc=2D0E;Upper
+cp;10AF;cf=2D0F;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER ZHAR;NFKC_CF=2D0F;SB=UP;scf=2D0F;slc=2D0F;Upper
+cp;10B0;cf=2D10;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER RAE;NFKC_CF=2D10;SB=UP;scf=2D10;slc=2D10;Upper
+cp;10B1;cf=2D11;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER SAN;NFKC_CF=2D11;SB=UP;scf=2D11;slc=2D11;Upper
+cp;10B2;cf=2D12;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER TAR;NFKC_CF=2D12;SB=UP;scf=2D12;slc=2D12;Upper
+cp;10B3;cf=2D13;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER UN;NFKC_CF=2D13;SB=UP;scf=2D13;slc=2D13;Upper
+cp;10B4;cf=2D14;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER PHAR;NFKC_CF=2D14;SB=UP;scf=2D14;slc=2D14;Upper
+cp;10B5;cf=2D15;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER KHAR;NFKC_CF=2D15;SB=UP;scf=2D15;slc=2D15;Upper
+cp;10B6;cf=2D16;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER GHAN;NFKC_CF=2D16;SB=UP;scf=2D16;slc=2D16;Upper
+cp;10B7;cf=2D17;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER QAR;NFKC_CF=2D17;SB=UP;scf=2D17;slc=2D17;Upper
+cp;10B8;cf=2D18;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER SHIN;NFKC_CF=2D18;SB=UP;scf=2D18;slc=2D18;Upper
+cp;10B9;cf=2D19;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER CHIN;NFKC_CF=2D19;SB=UP;scf=2D19;slc=2D19;Upper
+cp;10BA;cf=2D1A;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER CAN;NFKC_CF=2D1A;SB=UP;scf=2D1A;slc=2D1A;Upper
+cp;10BB;cf=2D1B;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER JIL;NFKC_CF=2D1B;SB=UP;scf=2D1B;slc=2D1B;Upper
+cp;10BC;cf=2D1C;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER CIL;NFKC_CF=2D1C;SB=UP;scf=2D1C;slc=2D1C;Upper
+cp;10BD;cf=2D1D;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER CHAR;NFKC_CF=2D1D;SB=UP;scf=2D1D;slc=2D1D;Upper
+cp;10BE;cf=2D1E;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER XAN;NFKC_CF=2D1E;SB=UP;scf=2D1E;slc=2D1E;Upper
+cp;10BF;cf=2D1F;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER JHAN;NFKC_CF=2D1F;SB=UP;scf=2D1F;slc=2D1F;Upper
+cp;10C0;cf=2D20;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER HAE;NFKC_CF=2D20;SB=UP;scf=2D20;slc=2D20;Upper
+cp;10C1;cf=2D21;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER HE;NFKC_CF=2D21;SB=UP;scf=2D21;slc=2D21;Upper
+cp;10C2;cf=2D22;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER HIE;NFKC_CF=2D22;SB=UP;scf=2D22;slc=2D22;Upper
+cp;10C3;cf=2D23;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER WE;NFKC_CF=2D23;SB=UP;scf=2D23;slc=2D23;Upper
+cp;10C4;cf=2D24;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER HAR;NFKC_CF=2D24;SB=UP;scf=2D24;slc=2D24;Upper
+cp;10C5;cf=2D25;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER HOE;NFKC_CF=2D25;SB=UP;scf=2D25;slc=2D25;Upper
unassigned;10C6
# Additional letter
-cp;10C7;age=6.1;Cased;cf=2D27;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER YN;NFKC_CF=2D27;SB=UP;scf=2D27;slc=2D27;Upper
+cp;10C7;age=6.1;cf=2D27;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER YN;NFKC_CF=2D27;SB=UP;scf=2D27;slc=2D27;Upper
unassigned;10C8..10CC
# Additional letter for Ossetian
-cp;10CD;age=6.1;Cased;cf=2D2D;CWCF;CWCM;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER AEN;NFKC_CF=2D2D;SB=UP;scf=2D2D;slc=2D2D;Upper
+cp;10CD;age=6.1;cf=2D2D;CWCF;CWKCF;CWL;gc=Lu;na=GEORGIAN CAPITAL LETTER AEN;NFKC_CF=2D2D;SB=UP;scf=2D2D;slc=2D2D;Upper
unassigned;10CE..10CF
# Mkhedruli
-cp;10D0;na=GEORGIAN LETTER AN
-cp;10D1;na=GEORGIAN LETTER BAN
-cp;10D2;na=GEORGIAN LETTER GAN
-cp;10D3;na=GEORGIAN LETTER DON
-cp;10D4;na=GEORGIAN LETTER EN
-cp;10D5;na=GEORGIAN LETTER VIN
-cp;10D6;na=GEORGIAN LETTER ZEN
-cp;10D7;na=GEORGIAN LETTER TAN
-cp;10D8;na=GEORGIAN LETTER IN
-cp;10D9;na=GEORGIAN LETTER KAN
-cp;10DA;na=GEORGIAN LETTER LAS
-cp;10DB;na=GEORGIAN LETTER MAN
-cp;10DC;na=GEORGIAN LETTER NAR
-cp;10DD;na=GEORGIAN LETTER ON
-cp;10DE;na=GEORGIAN LETTER PAR
-cp;10DF;na=GEORGIAN LETTER ZHAR
-cp;10E0;na=GEORGIAN LETTER RAE
-cp;10E1;na=GEORGIAN LETTER SAN
-cp;10E2;na=GEORGIAN LETTER TAR
-cp;10E3;na=GEORGIAN LETTER UN
-cp;10E4;na=GEORGIAN LETTER PHAR
-cp;10E5;na=GEORGIAN LETTER KHAR
-cp;10E6;na=GEORGIAN LETTER GHAN
-cp;10E7;na=GEORGIAN LETTER QAR
-cp;10E8;na=GEORGIAN LETTER SHIN
-cp;10E9;na=GEORGIAN LETTER CHIN
-cp;10EA;na=GEORGIAN LETTER CAN
-cp;10EB;na=GEORGIAN LETTER JIL
-cp;10EC;na=GEORGIAN LETTER CIL
-cp;10ED;na=GEORGIAN LETTER CHAR
-cp;10EE;na=GEORGIAN LETTER XAN
-cp;10EF;na=GEORGIAN LETTER JHAN
-cp;10F0;na=GEORGIAN LETTER HAE
+cp;10D0;CWU;Lower;na=GEORGIAN LETTER AN;stc=10D0;suc=1C90
+cp;10D1;CWU;Lower;na=GEORGIAN LETTER BAN;stc=10D1;suc=1C91
+cp;10D2;CWU;Lower;na=GEORGIAN LETTER GAN;stc=10D2;suc=1C92
+cp;10D3;CWU;Lower;na=GEORGIAN LETTER DON;stc=10D3;suc=1C93
+cp;10D4;CWU;Lower;na=GEORGIAN LETTER EN;stc=10D4;suc=1C94
+cp;10D5;CWU;Lower;na=GEORGIAN LETTER VIN;stc=10D5;suc=1C95
+cp;10D6;CWU;Lower;na=GEORGIAN LETTER ZEN;stc=10D6;suc=1C96
+cp;10D7;CWU;Lower;na=GEORGIAN LETTER TAN;stc=10D7;suc=1C97
+cp;10D8;CWU;Lower;na=GEORGIAN LETTER IN;stc=10D8;suc=1C98
+cp;10D9;CWU;Lower;na=GEORGIAN LETTER KAN;stc=10D9;suc=1C99
+cp;10DA;CWU;Lower;na=GEORGIAN LETTER LAS;stc=10DA;suc=1C9A
+cp;10DB;CWU;Lower;na=GEORGIAN LETTER MAN;stc=10DB;suc=1C9B
+cp;10DC;CWU;Lower;na=GEORGIAN LETTER NAR;stc=10DC;suc=1C9C
+cp;10DD;CWU;Lower;na=GEORGIAN LETTER ON;stc=10DD;suc=1C9D
+cp;10DE;CWU;Lower;na=GEORGIAN LETTER PAR;stc=10DE;suc=1C9E
+cp;10DF;CWU;Lower;na=GEORGIAN LETTER ZHAR;stc=10DF;suc=1C9F
+cp;10E0;CWU;Lower;na=GEORGIAN LETTER RAE;stc=10E0;suc=1CA0
+cp;10E1;CWU;Lower;na=GEORGIAN LETTER SAN;stc=10E1;suc=1CA1
+cp;10E2;CWU;Lower;na=GEORGIAN LETTER TAR;stc=10E2;suc=1CA2
+cp;10E3;CWU;Lower;na=GEORGIAN LETTER UN;stc=10E3;suc=1CA3
+cp;10E4;CWU;Lower;na=GEORGIAN LETTER PHAR;stc=10E4;suc=1CA4
+cp;10E5;CWU;Lower;na=GEORGIAN LETTER KHAR;stc=10E5;suc=1CA5
+cp;10E6;CWU;Lower;na=GEORGIAN LETTER GHAN;stc=10E6;suc=1CA6
+cp;10E7;CWU;Lower;na=GEORGIAN LETTER QAR;stc=10E7;suc=1CA7
+cp;10E8;CWU;Lower;na=GEORGIAN LETTER SHIN;stc=10E8;suc=1CA8
+cp;10E9;CWU;Lower;na=GEORGIAN LETTER CHIN;stc=10E9;suc=1CA9
+cp;10EA;CWU;Lower;na=GEORGIAN LETTER CAN;stc=10EA;suc=1CAA
+cp;10EB;CWU;Lower;na=GEORGIAN LETTER JIL;stc=10EB;suc=1CAB
+cp;10EC;CWU;Lower;na=GEORGIAN LETTER CIL;stc=10EC;suc=1CAC
+cp;10ED;CWU;Lower;na=GEORGIAN LETTER CHAR;stc=10ED;suc=1CAD
+cp;10EE;CWU;Lower;na=GEORGIAN LETTER XAN;stc=10EE;suc=1CAE
+cp;10EF;CWU;Lower;na=GEORGIAN LETTER JHAN;stc=10EF;suc=1CAF
+cp;10F0;CWU;Lower;na=GEORGIAN LETTER HAE;stc=10F0;suc=1CB0
# Archaic letters
-cp;10F1;na=GEORGIAN LETTER HE
-cp;10F2;na=GEORGIAN LETTER HIE
-cp;10F3;na=GEORGIAN LETTER WE
-cp;10F4;na=GEORGIAN LETTER HAR
-cp;10F5;na=GEORGIAN LETTER HOE
-cp;10F6;na=GEORGIAN LETTER FI
+cp;10F1;CWU;Lower;na=GEORGIAN LETTER HE;stc=10F1;suc=1CB1
+cp;10F2;CWU;Lower;na=GEORGIAN LETTER HIE;stc=10F2;suc=1CB2
+cp;10F3;CWU;Lower;na=GEORGIAN LETTER WE;stc=10F3;suc=1CB3
+cp;10F4;CWU;Lower;na=GEORGIAN LETTER HAR;stc=10F4;suc=1CB4
+cp;10F5;CWU;Lower;na=GEORGIAN LETTER HOE;stc=10F5;suc=1CB5
+cp;10F6;CWU;Lower;na=GEORGIAN LETTER FI;stc=10F6;suc=1CB6
# Additional letters for Mingrelian and Svan
-cp;10F7;age=3.2;na=GEORGIAN LETTER YN
-cp;10F8;age=3.2;na=GEORGIAN LETTER ELIFI
+cp;10F7;age=3.2;CWU;Lower;na=GEORGIAN LETTER YN;stc=10F7;suc=1CB7
+cp;10F8;age=3.2;CWU;Lower;na=GEORGIAN LETTER ELIFI;stc=10F8;suc=1CB8
# Additional letters
-cp;10F9;age=4.1;na=GEORGIAN LETTER TURNED GAN
-cp;10FA;age=4.1;na=GEORGIAN LETTER AIN
+cp;10F9;age=4.1;CWU;Lower;na=GEORGIAN LETTER TURNED GAN;stc=10F9;suc=1CB9
+cp;10FA;age=4.1;CWU;Lower;na=GEORGIAN LETTER AIN;stc=10FA;suc=1CBA
# Punctuation
-cp;10FB;-Alpha;gc=Po;-IDC;-IDS;na=GEORGIAN PARAGRAPH SEPARATOR;SB=XX;sc=Zyyy;scx=Geor Latn;WB=XX;-XIDC;-XIDS
+cp;10FB;-Alpha;-Cased;-CWCM;gc=Po;-IDC;-IDS;na=GEORGIAN PARAGRAPH SEPARATOR;SB=XX;sc=Zyyy;scx=Geor Latn;WB=XX;-XIDC;-XIDS
# Modifier letter
-cp;10FC;age=4.1;CI;CWKCF;dm=10DC;dt=Sup;gc=Lm;na=MODIFIER LETTER GEORGIAN NAR;NFKC_CF=10DC;NFKC_QC=N;NFKD_QC=N
+cp;10FC;age=4.1;-Cased;CI;-CWCM;CWKCF;dm=10DC;dt=Sup;gc=Lm;na=MODIFIER LETTER GEORGIAN NAR;NFKC_CF=10DC;NFKC_QC=N;NFKD_QC=N;SB=LE
# Additional letters for Ossetian and Abkhaz
-cp;10FD;age=6.1;na=GEORGIAN LETTER AEN
-cp;10FE;age=6.1;na=GEORGIAN LETTER HARD SIGN
-cp;10FF;age=6.1;na=GEORGIAN LETTER LABIAL SIGN
+cp;10FD;age=6.1;CWU;Lower;na=GEORGIAN LETTER AEN;stc=10FD;suc=1CBD
+cp;10FE;age=6.1;CWU;Lower;na=GEORGIAN LETTER HARD SIGN;stc=10FE;suc=1CBE
+cp;10FF;age=6.1;CWU;Lower;na=GEORGIAN LETTER LABIAL SIGN;stc=10FF;suc=1CBF
block;1100..11FF;age=1.1;Alpha;blk=Jamo;gc=Lo;GCB=L;Gr_Base;IDC;IDS;lb=JL;SB=LE;sc=Hang;vo=U;WB=LE;XIDC;XIDS
# 1100..11FF Hangul Jamo
@@ -7056,8 +7094,8 @@ cp;167F;age=5.2;na=CANADIAN SYLLABICS BLACKFOOT W
block;1680..169F;age=3.0;Alpha;blk=Ogham;gc=Lo;Gr_Base;IDC;IDS;lb=AL;SB=LE;sc=Ogam;WB=LE;XIDC;XIDS
# 1680..169F Ogham
-# Punctuation
-cp;1680;-Alpha;bc=WS;gc=Zs;-IDC;-IDS;lb=BA;na=OGHAM SPACE MARK;SB=SP;WB=XX;WSpace;-XIDC;-XIDS
+# Space
+cp;1680;-Alpha;bc=WS;gc=Zs;-IDC;-IDS;lb=BA;na=OGHAM SPACE MARK;SB=SP;WB=WSegSpace;WSpace;-XIDC;-XIDS
# Traditional letters
cp;1681;na=OGHAM LETTER BEITH
cp;1682;na=OGHAM LETTER LUIS
@@ -7565,7 +7603,9 @@ cp;1874;na=MONGOLIAN LETTER MANCHU KA
cp;1875;na=MONGOLIAN LETTER MANCHU RA
cp;1876;na=MONGOLIAN LETTER MANCHU FA
cp;1877;na=MONGOLIAN LETTER MANCHU ZHA
-unassigned;1878..187F
+# Buryat letter
+cp;1878;age=11.0;na=MONGOLIAN LETTER CHA WITH TWO DOTS
+unassigned;1879..187F
# Extensions for Sanskrit and Tibetan
cp;1880;jt=U;na=MONGOLIAN LETTER ALI GALI ANUSVARA ONE
cp;1881;jt=U;na=MONGOLIAN LETTER ALI GALI VISARGA ONE
@@ -8047,7 +8087,7 @@ cp;1A56;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;InPC=Bottom;InSC=Consonant_Medial
cp;1A57;gc=Mc;GCB=SM;InPC=Right;InSC=Consonant_Subjoined;na=TAI THAM CONSONANT SIGN LA TANG LAI;SB=EX;WB=Extend
cp;1A58;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;InPC=Top;InSC=Consonant_Final;jt=T;na=TAI THAM SIGN MAI KANG LAI;SB=EX;WB=Extend
cp;1A59;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;InPC=Top;InSC=Consonant_Final;jt=T;na=TAI THAM CONSONANT SIGN FINAL NGA;SB=EX;WB=Extend
-cp;1A5A;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;InPC=Top;InSC=Consonant_Succeeding_Repha;jt=T;na=TAI THAM CONSONANT SIGN LOW PA;SB=EX;WB=Extend
+cp;1A5A;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;InPC=Top;InSC=Consonant_Initial_Postfixed;jt=T;na=TAI THAM CONSONANT SIGN LOW PA;SB=EX;WB=Extend
cp;1A5B;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;InPC=Bottom;InSC=Consonant_Subjoined;jt=T;na=TAI THAM CONSONANT SIGN HIGH RATHA OR LOW PA;SB=EX;WB=Extend
cp;1A5C;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;InPC=Bottom;InSC=Consonant_Subjoined;jt=T;na=TAI THAM CONSONANT SIGN MA;SB=EX;WB=Extend
cp;1A5D;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;InPC=Bottom;InSC=Consonant_Subjoined;jt=T;na=TAI THAM CONSONANT SIGN BA;SB=EX;WB=Extend
@@ -8591,6 +8631,60 @@ cp;1C87;cf=0463;na=CYRILLIC SMALL LETTER TALL YAT;NFKC_CF=0463;scf=0463;stc=0462
cp;1C88;cf=A64B;na=CYRILLIC SMALL LETTER UNBLENDED UK;NFKC_CF=A64B;scf=A64B;stc=A64A;suc=A64A
unassigned;1C89..1C8F
+block;1C90..1CBF;age=11.0;Alpha;blk=Georgian_Ext;Cased;CWCF;CWCM;CWKCF;CWL;gc=Lu;Gr_Base;IDC;IDS;lb=AL;SB=UP;sc=Geor;Upper;WB=LE;XIDC;XIDS
+# 1C90..1CBF Georgian Extended
+# Capital letters (Mtavruli)
+cp;1C90;cf=10D0;na=GEORGIAN MTAVRULI CAPITAL LETTER AN;NFKC_CF=10D0;scf=10D0;slc=10D0
+cp;1C91;cf=10D1;na=GEORGIAN MTAVRULI CAPITAL LETTER BAN;NFKC_CF=10D1;scf=10D1;slc=10D1
+cp;1C92;cf=10D2;na=GEORGIAN MTAVRULI CAPITAL LETTER GAN;NFKC_CF=10D2;scf=10D2;slc=10D2
+cp;1C93;cf=10D3;na=GEORGIAN MTAVRULI CAPITAL LETTER DON;NFKC_CF=10D3;scf=10D3;slc=10D3
+cp;1C94;cf=10D4;na=GEORGIAN MTAVRULI CAPITAL LETTER EN;NFKC_CF=10D4;scf=10D4;slc=10D4
+cp;1C95;cf=10D5;na=GEORGIAN MTAVRULI CAPITAL LETTER VIN;NFKC_CF=10D5;scf=10D5;slc=10D5
+cp;1C96;cf=10D6;na=GEORGIAN MTAVRULI CAPITAL LETTER ZEN;NFKC_CF=10D6;scf=10D6;slc=10D6
+cp;1C97;cf=10D7;na=GEORGIAN MTAVRULI CAPITAL LETTER TAN;NFKC_CF=10D7;scf=10D7;slc=10D7
+cp;1C98;cf=10D8;na=GEORGIAN MTAVRULI CAPITAL LETTER IN;NFKC_CF=10D8;scf=10D8;slc=10D8
+cp;1C99;cf=10D9;na=GEORGIAN MTAVRULI CAPITAL LETTER KAN;NFKC_CF=10D9;scf=10D9;slc=10D9
+cp;1C9A;cf=10DA;na=GEORGIAN MTAVRULI CAPITAL LETTER LAS;NFKC_CF=10DA;scf=10DA;slc=10DA
+cp;1C9B;cf=10DB;na=GEORGIAN MTAVRULI CAPITAL LETTER MAN;NFKC_CF=10DB;scf=10DB;slc=10DB
+cp;1C9C;cf=10DC;na=GEORGIAN MTAVRULI CAPITAL LETTER NAR;NFKC_CF=10DC;scf=10DC;slc=10DC
+cp;1C9D;cf=10DD;na=GEORGIAN MTAVRULI CAPITAL LETTER ON;NFKC_CF=10DD;scf=10DD;slc=10DD
+cp;1C9E;cf=10DE;na=GEORGIAN MTAVRULI CAPITAL LETTER PAR;NFKC_CF=10DE;scf=10DE;slc=10DE
+cp;1C9F;cf=10DF;na=GEORGIAN MTAVRULI CAPITAL LETTER ZHAR;NFKC_CF=10DF;scf=10DF;slc=10DF
+cp;1CA0;cf=10E0;na=GEORGIAN MTAVRULI CAPITAL LETTER RAE;NFKC_CF=10E0;scf=10E0;slc=10E0
+cp;1CA1;cf=10E1;na=GEORGIAN MTAVRULI CAPITAL LETTER SAN;NFKC_CF=10E1;scf=10E1;slc=10E1
+cp;1CA2;cf=10E2;na=GEORGIAN MTAVRULI CAPITAL LETTER TAR;NFKC_CF=10E2;scf=10E2;slc=10E2
+cp;1CA3;cf=10E3;na=GEORGIAN MTAVRULI CAPITAL LETTER UN;NFKC_CF=10E3;scf=10E3;slc=10E3
+cp;1CA4;cf=10E4;na=GEORGIAN MTAVRULI CAPITAL LETTER PHAR;NFKC_CF=10E4;scf=10E4;slc=10E4
+cp;1CA5;cf=10E5;na=GEORGIAN MTAVRULI CAPITAL LETTER KHAR;NFKC_CF=10E5;scf=10E5;slc=10E5
+cp;1CA6;cf=10E6;na=GEORGIAN MTAVRULI CAPITAL LETTER GHAN;NFKC_CF=10E6;scf=10E6;slc=10E6
+cp;1CA7;cf=10E7;na=GEORGIAN MTAVRULI CAPITAL LETTER QAR;NFKC_CF=10E7;scf=10E7;slc=10E7
+cp;1CA8;cf=10E8;na=GEORGIAN MTAVRULI CAPITAL LETTER SHIN;NFKC_CF=10E8;scf=10E8;slc=10E8
+cp;1CA9;cf=10E9;na=GEORGIAN MTAVRULI CAPITAL LETTER CHIN;NFKC_CF=10E9;scf=10E9;slc=10E9
+cp;1CAA;cf=10EA;na=GEORGIAN MTAVRULI CAPITAL LETTER CAN;NFKC_CF=10EA;scf=10EA;slc=10EA
+cp;1CAB;cf=10EB;na=GEORGIAN MTAVRULI CAPITAL LETTER JIL;NFKC_CF=10EB;scf=10EB;slc=10EB
+cp;1CAC;cf=10EC;na=GEORGIAN MTAVRULI CAPITAL LETTER CIL;NFKC_CF=10EC;scf=10EC;slc=10EC
+cp;1CAD;cf=10ED;na=GEORGIAN MTAVRULI CAPITAL LETTER CHAR;NFKC_CF=10ED;scf=10ED;slc=10ED
+cp;1CAE;cf=10EE;na=GEORGIAN MTAVRULI CAPITAL LETTER XAN;NFKC_CF=10EE;scf=10EE;slc=10EE
+cp;1CAF;cf=10EF;na=GEORGIAN MTAVRULI CAPITAL LETTER JHAN;NFKC_CF=10EF;scf=10EF;slc=10EF
+cp;1CB0;cf=10F0;na=GEORGIAN MTAVRULI CAPITAL LETTER HAE;NFKC_CF=10F0;scf=10F0;slc=10F0
+cp;1CB1;cf=10F1;na=GEORGIAN MTAVRULI CAPITAL LETTER HE;NFKC_CF=10F1;scf=10F1;slc=10F1
+cp;1CB2;cf=10F2;na=GEORGIAN MTAVRULI CAPITAL LETTER HIE;NFKC_CF=10F2;scf=10F2;slc=10F2
+cp;1CB3;cf=10F3;na=GEORGIAN MTAVRULI CAPITAL LETTER WE;NFKC_CF=10F3;scf=10F3;slc=10F3
+cp;1CB4;cf=10F4;na=GEORGIAN MTAVRULI CAPITAL LETTER HAR;NFKC_CF=10F4;scf=10F4;slc=10F4
+cp;1CB5;cf=10F5;na=GEORGIAN MTAVRULI CAPITAL LETTER HOE;NFKC_CF=10F5;scf=10F5;slc=10F5
+cp;1CB6;cf=10F6;na=GEORGIAN MTAVRULI CAPITAL LETTER FI;NFKC_CF=10F6;scf=10F6;slc=10F6
+# Additional letters for Mingrelian and Svan
+cp;1CB7;cf=10F7;na=GEORGIAN MTAVRULI CAPITAL LETTER YN;NFKC_CF=10F7;scf=10F7;slc=10F7
+cp;1CB8;cf=10F8;na=GEORGIAN MTAVRULI CAPITAL LETTER ELIFI;NFKC_CF=10F8;scf=10F8;slc=10F8
+# Additional letters
+cp;1CB9;cf=10F9;na=GEORGIAN MTAVRULI CAPITAL LETTER TURNED GAN;NFKC_CF=10F9;scf=10F9;slc=10F9
+cp;1CBA;cf=10FA;na=GEORGIAN MTAVRULI CAPITAL LETTER AIN;NFKC_CF=10FA;scf=10FA;slc=10FA
+unassigned;1CBB..1CBC
+# Additional letters for Ossetian and Abkhaz
+cp;1CBD;cf=10FD;na=GEORGIAN MTAVRULI CAPITAL LETTER AEN;NFKC_CF=10FD;scf=10FD;slc=10FD
+cp;1CBE;cf=10FE;na=GEORGIAN MTAVRULI CAPITAL LETTER HARD SIGN;NFKC_CF=10FE;scf=10FE;slc=10FE
+cp;1CBF;cf=10FF;na=GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN;NFKC_CF=10FF;scf=10FF;slc=10FF
+
block;1CC0..1CCF;age=6.1;blk=Sundanese_Sup;gc=Po;Gr_Base;lb=AL;sc=Sund
# 1CC0..1CCF Sundanese Supplement
# Punctuation
@@ -8607,19 +8701,19 @@ unassigned;1CC8..1CCF
block;1CD0..1CFF;age=5.2;bc=NSM;blk=Vedic_Ext;CI;Dia;gc=Mn;GCB=EX;Gr_Ext;IDC;InSC=Cantillation_Mark;jt=T;lb=CM;SB=EX;sc=Zinh;scx=Deva;WB=Extend;XIDC
# 1CD0..1CFF Vedic Extensions
# Tone marks for the Samaveda
-cp;1CD0;ccc=230;InPC=Top;na=VEDIC TONE KARSHANA;scx=Deva Gran
+cp;1CD0;ccc=230;InPC=Top;na=VEDIC TONE KARSHANA;scx=Beng Deva Gran Knda
cp;1CD1;ccc=230;InPC=Top;na=VEDIC TONE SHARA
-cp;1CD2;ccc=230;InPC=Top;na=VEDIC TONE PRENKHA;scx=Deva Gran
+cp;1CD2;ccc=230;InPC=Top;na=VEDIC TONE PRENKHA;scx=Beng Deva Gran Knda
# Breathing mark for the Samaveda
cp;1CD3;bc=L;-CI;gc=Po;GCB=XX;Gr_Base;-Gr_Ext;-IDC;InSC=Other;jt=U;lb=AL;na=VEDIC SIGN NIHSHVASA;SB=XX;sc=Zyyy;scx=Deva Gran;WB=XX;-XIDC
# Signs for Yajurvedic
cp;1CD4;ccc=1;InPC=Overstruck;na=VEDIC SIGN YAJURVEDIC MIDLINE SVARITA
-cp;1CD5;ccc=220;InPC=Bottom;na=VEDIC TONE YAJURVEDIC AGGRAVATED INDEPENDENT SVARITA
-cp;1CD6;ccc=220;InPC=Bottom;na=VEDIC TONE YAJURVEDIC INDEPENDENT SVARITA
+cp;1CD5;ccc=220;InPC=Bottom;na=VEDIC TONE YAJURVEDIC AGGRAVATED INDEPENDENT SVARITA;scx=Beng Deva
+cp;1CD6;ccc=220;InPC=Bottom;na=VEDIC TONE YAJURVEDIC INDEPENDENT SVARITA;scx=Beng Deva
cp;1CD7;ccc=220;InPC=Bottom;na=VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA;scx=Deva Shrd
-cp;1CD8;ccc=220;InPC=Bottom;na=VEDIC TONE CANDRA BELOW
+cp;1CD8;ccc=220;InPC=Bottom;na=VEDIC TONE CANDRA BELOW;scx=Beng Deva
cp;1CD9;ccc=220;InPC=Bottom;na=VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA SCHROEDER;scx=Deva Shrd
-cp;1CDA;ccc=230;InPC=Top;na=VEDIC TONE DOUBLE SVARITA;scx=Deva Knda Mlym Taml Telu
+cp;1CDA;ccc=230;InPC=Top;na=VEDIC TONE DOUBLE SVARITA;scx=Deva Knda Mlym Orya Taml Telu
cp;1CDB;ccc=230;InPC=Top;na=VEDIC TONE TRIPLE SVARITA
cp;1CDC;ccc=220;InPC=Bottom;na=VEDIC TONE KATHAKA ANUDATTA;scx=Deva Shrd
cp;1CDD;ccc=220;InPC=Bottom;na=VEDIC TONE DOT BELOW;scx=Deva Shrd
@@ -8629,7 +8723,7 @@ cp;1CDF;ccc=220;InPC=Bottom;na=VEDIC TONE THREE DOTS BELOW
# Tone mark for the Rigveda
cp;1CE0;ccc=230;InPC=Top;na=VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA;scx=Deva Shrd
# Tone mark for the Atharvaveda
-cp;1CE1;bc=L;-CI;gc=Mc;GCB=SM;Gr_Base;-Gr_Ext;InPC=Right;jt=U;na=VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA;sc=Zyyy
+cp;1CE1;bc=L;-CI;gc=Mc;GCB=SM;Gr_Base;-Gr_Ext;InPC=Right;jt=U;na=VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA;sc=Zyyy;scx=Beng Deva
# Diacritics for visarga
cp;1CE2;ccc=1;InPC=Overstruck;InSC=Other;na=VEDIC SIGN VISARGA SVARITA
cp;1CE3;ccc=1;InPC=Overstruck;InSC=Other;na=VEDIC SIGN VISARGA UDATTA
@@ -8640,10 +8734,10 @@ cp;1CE7;ccc=1;InPC=Overstruck;InSC=Other;na=VEDIC SIGN VISARGA UDATTA WITH TAIL
cp;1CE8;ccc=1;InPC=Overstruck;InSC=Other;na=VEDIC SIGN VISARGA ANUDATTA WITH TAIL
# Marks of nasalization
cp;1CE9;Alpha;bc=L;-CI;-Dia;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;InSC=Other;jt=U;lb=AL;na=VEDIC SIGN ANUSVARA ANTARGOMUKHA;SB=LE;sc=Zyyy;WB=LE;XIDS
-cp;1CEA;Alpha;bc=L;-CI;-Dia;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;InSC=Other;jt=U;lb=AL;na=VEDIC SIGN ANUSVARA BAHIRGOMUKHA;SB=LE;sc=Zyyy;WB=LE;XIDS
+cp;1CEA;Alpha;bc=L;-CI;-Dia;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;InSC=Other;jt=U;lb=AL;na=VEDIC SIGN ANUSVARA BAHIRGOMUKHA;SB=LE;sc=Zyyy;scx=Beng Deva;WB=LE;XIDS
cp;1CEB;Alpha;bc=L;-CI;-Dia;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;InSC=Other;jt=U;lb=AL;na=VEDIC SIGN ANUSVARA VAMAGOMUKHA;SB=LE;sc=Zyyy;WB=LE;XIDS
cp;1CEC;Alpha;bc=L;-CI;-Dia;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;InSC=Other;jt=U;lb=AL;na=VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL;SB=LE;sc=Zyyy;WB=LE;XIDS
-cp;1CED;ccc=220;InPC=Bottom;InSC=Other;na=VEDIC SIGN TIRYAK
+cp;1CED;ccc=220;InPC=Bottom;InSC=Other;na=VEDIC SIGN TIRYAK;scx=Beng Deva
cp;1CEE;Alpha;bc=L;-CI;-Dia;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;InSC=Other;jt=U;lb=AL;na=VEDIC SIGN HEXIFORM LONG ANUSVARA;SB=LE;sc=Zyyy;WB=LE;XIDS
cp;1CEF;Alpha;bc=L;-CI;-Dia;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;InSC=Other;jt=U;lb=AL;na=VEDIC SIGN LONG ANUSVARA;SB=LE;sc=Zyyy;WB=LE;XIDS
cp;1CF0;Alpha;bc=L;-CI;-Dia;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;InSC=Other;jt=U;lb=AL;na=VEDIC SIGN RTHANG LONG ANUSVARA;SB=LE;sc=Zyyy;WB=LE;XIDS
@@ -8652,10 +8746,10 @@ cp;1CF1;Alpha;bc=L;-CI;-Dia;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;InSC=Other;jt=U;lb=
cp;1CF2;Alpha;bc=L;-CI;-Dia;gc=Mc;GCB=SM;Gr_Base;-Gr_Ext;InSC=Visarga;jt=U;na=VEDIC SIGN ARDHAVISARGA;sc=Zyyy;scx=Deva Gran
cp;1CF3;age=6.1;Alpha;bc=L;-CI;-Dia;gc=Mc;GCB=SM;Gr_Base;-Gr_Ext;InSC=Visarga;jt=U;na=VEDIC SIGN ROTATED ARDHAVISARGA;sc=Zyyy;scx=Deva Gran
# Sign for Yajurvedic
-cp;1CF4;age=6.1;ccc=230;InPC=Top;na=VEDIC TONE CANDRA ABOVE;scx=Deva Gran
+cp;1CF4;age=6.1;ccc=230;InPC=Top;na=VEDIC TONE CANDRA ABOVE;scx=Deva Gran Knda
# Signs
-cp;1CF5;age=6.1;Alpha;bc=L;-CI;-Dia;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;InSC=Other;jt=U;lb=AL;na=VEDIC SIGN JIHVAMULIYA;SB=LE;sc=Zyyy;scx=Deva Knda;WB=LE;XIDS
-cp;1CF6;age=6.1;Alpha;bc=L;-CI;-Dia;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;InSC=Other;jt=U;lb=AL;na=VEDIC SIGN UPADHMANIYA;SB=LE;sc=Zyyy;WB=LE;XIDS
+cp;1CF5;age=6.1;Alpha;bc=L;-CI;-Dia;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;InSC=Consonant_With_Stacker;jt=U;lb=AL;na=VEDIC SIGN JIHVAMULIYA;SB=LE;sc=Zyyy;scx=Beng Deva;WB=LE;XIDS
+cp;1CF6;age=6.1;Alpha;bc=L;-CI;-Dia;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;InSC=Consonant_With_Stacker;jt=U;lb=AL;na=VEDIC SIGN UPADHMANIYA;SB=LE;sc=Zyyy;scx=Beng Deva;WB=LE;XIDS
cp;1CF7;age=10.0;bc=L;-CI;gc=Mc;GCB=SM;Gr_Base;-Gr_Ext;InPC=Right;jt=U;na=VEDIC SIGN ATIKRAMA;sc=Zyyy;scx=Beng
# Signs for Jaiminiya Sama Veda
cp;1CF8;age=7.0;ccc=230;na=VEDIC TONE RING ABOVE;scx=Deva Gran
@@ -9478,21 +9572,21 @@ unassigned;1FFF
block;2000..206F;age=1.1;bc=ON;blk=Punctuation;gc=Po;Gr_Base;lb=AL;Pat_Syn;sc=Zyyy
# 2000..206F General Punctuation
# Spaces
-cp;2000;bc=WS;Comp_Ex;CWKCF;dm=2002;dt=Can;gc=Zs;lb=BA;na=EN QUAD;NFC_QC=N;NFD_QC=N;NFKC_CF=0020;NFKC_QC=N;NFKD_QC=N;-Pat_Syn;SB=SP;WSpace
-cp;2001;bc=WS;Comp_Ex;CWKCF;dm=2003;dt=Can;gc=Zs;lb=BA;na=EM QUAD;NFC_QC=N;NFD_QC=N;NFKC_CF=0020;NFKC_QC=N;NFKD_QC=N;-Pat_Syn;SB=SP;WSpace
-cp;2002;bc=WS;CWKCF;dm=0020;dt=Com;gc=Zs;lb=BA;na=EN SPACE;NFKC_CF=0020;NFKC_QC=N;NFKD_QC=N;-Pat_Syn;SB=SP;WSpace
-cp;2003;bc=WS;CWKCF;dm=0020;dt=Com;gc=Zs;lb=BA;na=EM SPACE;NFKC_CF=0020;NFKC_QC=N;NFKD_QC=N;-Pat_Syn;SB=SP;WSpace
-cp;2004;bc=WS;CWKCF;dm=0020;dt=Com;gc=Zs;lb=BA;na=THREE-PER-EM SPACE;NFKC_CF=0020;NFKC_QC=N;NFKD_QC=N;-Pat_Syn;SB=SP;WSpace
-cp;2005;bc=WS;CWKCF;dm=0020;dt=Com;gc=Zs;lb=BA;na=FOUR-PER-EM SPACE;NFKC_CF=0020;NFKC_QC=N;NFKD_QC=N;-Pat_Syn;SB=SP;WSpace
-cp;2006;bc=WS;CWKCF;dm=0020;dt=Com;gc=Zs;lb=BA;na=SIX-PER-EM SPACE;NFKC_CF=0020;NFKC_QC=N;NFKD_QC=N;-Pat_Syn;SB=SP;WSpace
+cp;2000;bc=WS;Comp_Ex;CWKCF;dm=2002;dt=Can;gc=Zs;lb=BA;na=EN QUAD;NFC_QC=N;NFD_QC=N;NFKC_CF=0020;NFKC_QC=N;NFKD_QC=N;-Pat_Syn;SB=SP;WB=WSegSpace;WSpace
+cp;2001;bc=WS;Comp_Ex;CWKCF;dm=2003;dt=Can;gc=Zs;lb=BA;na=EM QUAD;NFC_QC=N;NFD_QC=N;NFKC_CF=0020;NFKC_QC=N;NFKD_QC=N;-Pat_Syn;SB=SP;WB=WSegSpace;WSpace
+cp;2002;bc=WS;CWKCF;dm=0020;dt=Com;gc=Zs;lb=BA;na=EN SPACE;NFKC_CF=0020;NFKC_QC=N;NFKD_QC=N;-Pat_Syn;SB=SP;WB=WSegSpace;WSpace
+cp;2003;bc=WS;CWKCF;dm=0020;dt=Com;gc=Zs;lb=BA;na=EM SPACE;NFKC_CF=0020;NFKC_QC=N;NFKD_QC=N;-Pat_Syn;SB=SP;WB=WSegSpace;WSpace
+cp;2004;bc=WS;CWKCF;dm=0020;dt=Com;gc=Zs;lb=BA;na=THREE-PER-EM SPACE;NFKC_CF=0020;NFKC_QC=N;NFKD_QC=N;-Pat_Syn;SB=SP;WB=WSegSpace;WSpace
+cp;2005;bc=WS;CWKCF;dm=0020;dt=Com;gc=Zs;lb=BA;na=FOUR-PER-EM SPACE;NFKC_CF=0020;NFKC_QC=N;NFKD_QC=N;-Pat_Syn;SB=SP;WB=WSegSpace;WSpace
+cp;2006;bc=WS;CWKCF;dm=0020;dt=Com;gc=Zs;lb=BA;na=SIX-PER-EM SPACE;NFKC_CF=0020;NFKC_QC=N;NFKD_QC=N;-Pat_Syn;SB=SP;WB=WSegSpace;WSpace
cp;2007;bc=WS;CWKCF;dm=0020;dt=Nb;gc=Zs;lb=GL;na=FIGURE SPACE;NFKC_CF=0020;NFKC_QC=N;NFKD_QC=N;-Pat_Syn;SB=SP;WSpace
-cp;2008;bc=WS;CWKCF;dm=0020;dt=Com;gc=Zs;lb=BA;na=PUNCTUATION SPACE;NFKC_CF=0020;NFKC_QC=N;NFKD_QC=N;-Pat_Syn;SB=SP;WSpace
-cp;2009;bc=WS;CWKCF;dm=0020;dt=Com;gc=Zs;lb=BA;na=THIN SPACE;NFKC_CF=0020;NFKC_QC=N;NFKD_QC=N;-Pat_Syn;SB=SP;WSpace
-cp;200A;bc=WS;CWKCF;dm=0020;dt=Com;gc=Zs;lb=BA;na=HAIR SPACE;NFKC_CF=0020;NFKC_QC=N;NFKD_QC=N;-Pat_Syn;SB=SP;WSpace
+cp;2008;bc=WS;CWKCF;dm=0020;dt=Com;gc=Zs;lb=BA;na=PUNCTUATION SPACE;NFKC_CF=0020;NFKC_QC=N;NFKD_QC=N;-Pat_Syn;SB=SP;WB=WSegSpace;WSpace
+cp;2009;bc=WS;CWKCF;dm=0020;dt=Com;gc=Zs;lb=BA;na=THIN SPACE;NFKC_CF=0020;NFKC_QC=N;NFKD_QC=N;-Pat_Syn;SB=SP;WB=WSegSpace;WSpace
+cp;200A;bc=WS;CWKCF;dm=0020;dt=Com;gc=Zs;lb=BA;na=HAIR SPACE;NFKC_CF=0020;NFKC_QC=N;NFKD_QC=N;-Pat_Syn;SB=SP;WB=WSegSpace;WSpace
# Format characters
cp;200B;bc=BN;CI;CWKCF;DI;gc=Cf;GCB=CN;-Gr_Base;jt=T;lb=ZW;na=ZERO WIDTH SPACE;Name_Alias=abbreviation=ZWSP;NFKC_CF=;-Pat_Syn;SB=FO
cp;200C;bc=BN;CI;CWKCF;DI;gc=Cf;GCB=EX;-Gr_Base;Gr_Ext;InSC=Non_Joiner;Join_C;lb=CM;na=ZERO WIDTH NON-JOINER;Name_Alias=abbreviation=ZWNJ;NFKC_CF=;-Pat_Syn;SB=EX;sc=Zinh;WB=Extend
-cp;200D;bc=BN;CI;CWKCF;DI;gc=Cf;GCB=ZWJ;-Gr_Base;InSC=Joiner;Join_C;jt=C;lb=ZWJ;na=ZERO WIDTH JOINER;Name_Alias=abbreviation=ZWJ;NFKC_CF=;-Pat_Syn;SB=EX;sc=Zinh;WB=ZWJ
+cp;200D;bc=BN;CI;CWKCF;DI;EComp;gc=Cf;GCB=ZWJ;-Gr_Base;InSC=Joiner;Join_C;jt=C;lb=ZWJ;na=ZERO WIDTH JOINER;Name_Alias=abbreviation=ZWJ;NFKC_CF=;-Pat_Syn;SB=EX;sc=Zinh;WB=ZWJ
cp;200E;bc=L;Bidi_C;CI;CWKCF;DI;gc=Cf;GCB=CN;-Gr_Base;jt=T;lb=CM;na=LEFT-TO-RIGHT MARK;Name_Alias=abbreviation=LRM;NFKC_CF=;-Pat_Syn;Pat_WS;SB=FO;WB=FO
cp;200F;bc=R;Bidi_C;CI;CWKCF;DI;gc=Cf;GCB=CN;-Gr_Base;jt=T;lb=CM;na=RIGHT-TO-LEFT MARK;Name_Alias=abbreviation=RLM;NFKC_CF=;-Pat_Syn;Pat_WS;SB=FO;WB=FO
# Dashes
@@ -9548,7 +9642,7 @@ cp;203A;Bidi_M;bmg=2039;gc=Pf;lb=QU;na=SINGLE RIGHT-POINTING ANGLE QUOTATION MAR
# General punctuation
cp;203B;ea=A;lb=AI;na=REFERENCE MARK;vo=U
# Double punctuation for vertical text
-cp;203C;CWKCF;dm=0021 0021;dt=Com;Emoji;lb=NS;na=DOUBLE EXCLAMATION MARK;NFKC_CF=0021 0021;NFKC_QC=N;NFKD_QC=N;SB=ST;STerm;Term;vo=U
+cp;203C;CWKCF;dm=0021 0021;dt=Com;Emoji;ExtPict;lb=NS;na=DOUBLE EXCLAMATION MARK;NFKC_CF=0021 0021;NFKC_QC=N;NFKD_QC=N;SB=ST;STerm;Term;vo=U
# General punctuation
cp;203D;lb=NS;na=INTERROBANG;SB=ST;STerm;Term
cp;203E;CWKCF;dm=0020 0305;dt=Com;ea=A;na=OVERLINE;NFKC_CF=0020 0305;NFKC_QC=N;NFKD_QC=N
@@ -9558,12 +9652,13 @@ cp;2041;na=CARET INSERTION POINT
cp;2042;na=ASTERISM;vo=U
cp;2043;na=HYPHEN BULLET
cp;2044;bc=CS;gc=Sm;lb=IS;Math;na=FRACTION SLASH;WB=MN
+# Brackets
cp;2045;Bidi_M;bmg=2046;bpb=2046;bpt=o;gc=Ps;lb=OP;na=LEFT SQUARE BRACKET WITH QUILL;SB=CL
cp;2046;Bidi_M;bmg=2045;bpb=2045;bpt=c;gc=Pe;lb=CL;na=RIGHT SQUARE BRACKET WITH QUILL;SB=CL
# Double punctuation for vertical text
cp;2047;age=3.2;CWKCF;dm=003F 003F;dt=Com;lb=NS;na=DOUBLE QUESTION MARK;NFKC_CF=003F 003F;NFKC_QC=N;NFKD_QC=N;SB=ST;STerm;Term;vo=U
cp;2048;age=3.0;CWKCF;dm=003F 0021;dt=Com;lb=NS;na=QUESTION EXCLAMATION MARK;NFKC_CF=003F 0021;NFKC_QC=N;NFKD_QC=N;SB=ST;STerm;Term;vo=U
-cp;2049;age=3.0;CWKCF;dm=0021 003F;dt=Com;Emoji;lb=NS;na=EXCLAMATION QUESTION MARK;NFKC_CF=0021 003F;NFKC_QC=N;NFKD_QC=N;SB=ST;STerm;Term;vo=U
+cp;2049;age=3.0;CWKCF;dm=0021 003F;dt=Com;Emoji;ExtPict;lb=NS;na=EXCLAMATION QUESTION MARK;NFKC_CF=0021 003F;NFKC_QC=N;NFKD_QC=N;SB=ST;STerm;Term;vo=U
# General punctuation
cp;204A;age=3.0;na=TIRONIAN SIGN ET
cp;204B;age=3.0;na=REVERSED PILCROW SIGN
@@ -9590,7 +9685,7 @@ cp;205C;age=4.1;na=DOTTED CROSS
cp;205D;age=4.1;lb=BA;na=TRICOLON
cp;205E;age=4.1;lb=BA;na=VERTICAL FOUR DOTS
# Space
-cp;205F;age=3.2;bc=WS;CWKCF;dm=0020;dt=Com;gc=Zs;lb=BA;na=MEDIUM MATHEMATICAL SPACE;Name_Alias=abbreviation=MMSP;NFKC_CF=0020;NFKC_QC=N;NFKD_QC=N;-Pat_Syn;SB=SP;WSpace
+cp;205F;age=3.2;bc=WS;CWKCF;dm=0020;dt=Com;gc=Zs;lb=BA;na=MEDIUM MATHEMATICAL SPACE;Name_Alias=abbreviation=MMSP;NFKC_CF=0020;NFKC_QC=N;NFKD_QC=N;-Pat_Syn;SB=SP;WB=WSegSpace;WSpace
# Format character
cp;2060;age=3.2;bc=BN;CI;CWKCF;DI;gc=Cf;GCB=CN;-Gr_Base;jt=T;lb=WJ;na=WORD JOINER;Name_Alias=abbreviation=WJ;NFKC_CF=;-Pat_Syn;SB=FO;WB=FO
# Invisible operators
@@ -9725,7 +9820,7 @@ cp;20E0;ccc=0;gc=Me;-IDC;-Math;na=COMBINING ENCLOSING CIRCLE BACKSLASH;vo=U;-XID
cp;20E1;na=COMBINING LEFT RIGHT ARROW ABOVE
# Additional enclosing diacritics
cp;20E2;age=3.0;ccc=0;gc=Me;-IDC;-Math;na=COMBINING ENCLOSING SCREEN;vo=U;-XIDC
-cp;20E3;age=3.0;ccc=0;gc=Me;-IDC;-Math;na=COMBINING ENCLOSING KEYCAP;vo=U;-XIDC
+cp;20E3;age=3.0;ccc=0;EComp;gc=Me;-IDC;-Math;na=COMBINING ENCLOSING KEYCAP;vo=U;-XIDC
cp;20E4;age=3.2;ccc=0;gc=Me;-IDC;-Math;na=COMBINING ENCLOSING UPWARD POINTING TRIANGLE;vo=U;-XIDC
# Additional diacritical marks for symbols
cp;20E5;age=3.2;ccc=1;na=COMBINING REVERSE SOLIDUS OVERLAY
@@ -9779,7 +9874,7 @@ cp;211E;-Alpha;bc=ON;-CWKCF;dt=None;gc=So;-IDC;-IDS;-Math;na=PRESCRIPTION TAKE;N
cp;211F;-Alpha;bc=ON;-CWKCF;dt=None;gc=So;-IDC;-IDS;-Math;na=RESPONSE;NFKC_QC=Y;NFKD_QC=Y;WB=XX;-XIDC;-XIDS
cp;2120;-Alpha;bc=ON;dm=0053 004D;dt=Sup;FC_NFKC=0073 006D;gc=So;-IDC;-IDS;-Math;na=SERVICE MARK;NFKC_CF=0073 006D;WB=XX;-XIDC;-XIDS
cp;2121;-Alpha;bc=ON;dm=0054 0045 004C;dt=Com;ea=A;FC_NFKC=0074 0065 006C;gc=So;-IDC;-IDS;lb=AI;-Math;na=TELEPHONE SIGN;NFKC_CF=0074 0065 006C;WB=XX;-XIDC;-XIDS
-cp;2122;-Alpha;bc=ON;dm=0054 004D;dt=Sup;ea=A;Emoji;FC_NFKC=0074 006D;gc=So;-IDC;-IDS;lb=AI;-Math;na=TRADE MARK SIGN;NFKC_CF=0074 006D;WB=XX;-XIDC;-XIDS
+cp;2122;-Alpha;bc=ON;dm=0054 004D;dt=Sup;ea=A;Emoji;ExtPict;FC_NFKC=0074 006D;gc=So;-IDC;-IDS;lb=AI;-Math;na=TRADE MARK SIGN;NFKC_CF=0074 006D;WB=XX;-XIDC;-XIDS
cp;2123;-Alpha;bc=ON;-CWKCF;dt=None;gc=So;-IDC;-IDS;-Math;na=VERSICLE;NFKC_QC=Y;NFKD_QC=Y;WB=XX;-XIDC;-XIDS
cp;2124;Cased;dm=005A;FC_NFKC=007A;na=DOUBLE-STRUCK CAPITAL Z;NFKC_CF=007A;SB=UP;Upper;vo=R
cp;2125;-Alpha;bc=ON;-CWKCF;dt=None;gc=So;-IDC;-IDS;-Math;na=OUNCE SIGN;NFKC_QC=Y;NFKD_QC=Y;WB=XX;-XIDC;-XIDS
@@ -9804,7 +9899,7 @@ cp;2136;dm=05D1;dt=Com;gc=Lo;na=BET SYMBOL;NFKC_CF=05D1;SB=LE
cp;2137;dm=05D2;dt=Com;gc=Lo;na=GIMEL SYMBOL;NFKC_CF=05D2;SB=LE
cp;2138;dm=05D3;dt=Com;gc=Lo;na=DALET SYMBOL;NFKC_CF=05D3;SB=LE
# Additional letterlike symbols
-cp;2139;age=3.0;Cased;dm=0069;Emoji;gc=Ll;Lower;-Math;na=INFORMATION SOURCE;NFKC_CF=0069;SB=LO
+cp;2139;age=3.0;Cased;dm=0069;Emoji;ExtPict;gc=Ll;Lower;-Math;na=INFORMATION SOURCE;NFKC_CF=0069;SB=LO
cp;213A;age=3.0;-Alpha;bc=ON;-CWKCF;dt=None;gc=So;-IDC;-IDS;-Math;na=ROTATED CAPITAL Q;NFKC_QC=Y;NFKD_QC=Y;WB=XX;-XIDC;-XIDS
cp;213B;age=4.0;-Alpha;bc=ON;dm=0046 0041 0058;dt=Com;FC_NFKC=0066 0061 0078;gc=So;-IDC;-IDS;-Math;na=FACSIMILE SIGN;NFKC_CF=0066 0061 0078;WB=XX;-XIDC;-XIDS
cp;213C;age=4.1;Cased;dm=03C0;gc=Ll;Lower;na=DOUBLE-STRUCK SMALL PI;NFKC_CF=03C0;SB=LO
@@ -9912,12 +10007,12 @@ cp;2190;ea=A;gc=Sm;lb=AI;na=LEFTWARDS ARROW
cp;2191;ea=A;gc=Sm;lb=AI;na=UPWARDS ARROW
cp;2192;ea=A;gc=Sm;lb=AI;na=RIGHTWARDS ARROW
cp;2193;ea=A;gc=Sm;lb=AI;na=DOWNWARDS ARROW
-cp;2194;ea=A;Emoji;gc=Sm;lb=AI;na=LEFT RIGHT ARROW
-cp;2195;ea=A;Emoji;lb=AI;na=UP DOWN ARROW
-cp;2196;ea=A;Emoji;lb=AI;na=NORTH WEST ARROW
-cp;2197;ea=A;Emoji;lb=AI;na=NORTH EAST ARROW
-cp;2198;ea=A;Emoji;lb=AI;na=SOUTH EAST ARROW
-cp;2199;ea=A;Emoji;lb=AI;na=SOUTH WEST ARROW
+cp;2194;ea=A;Emoji;ExtPict;gc=Sm;lb=AI;na=LEFT RIGHT ARROW
+cp;2195;ea=A;Emoji;ExtPict;lb=AI;na=UP DOWN ARROW
+cp;2196;ea=A;Emoji;ExtPict;lb=AI;na=NORTH WEST ARROW
+cp;2197;ea=A;Emoji;ExtPict;lb=AI;na=NORTH EAST ARROW
+cp;2198;ea=A;Emoji;ExtPict;lb=AI;na=SOUTH EAST ARROW
+cp;2199;ea=A;Emoji;ExtPict;lb=AI;na=SOUTH WEST ARROW
# Arrows with modifications
cp;219A;dm=2190 0338;dt=Can;gc=Sm;na=LEFTWARDS ARROW WITH STROKE;NFD_QC=N;NFKD_QC=N
cp;219B;dm=2192 0338;dt=Can;gc=Sm;na=RIGHTWARDS ARROW WITH STROKE;NFD_QC=N;NFKD_QC=N
@@ -9934,8 +10029,8 @@ cp;21A5;na=UPWARDS ARROW FROM BAR
cp;21A6;gc=Sm;na=RIGHTWARDS ARROW FROM BAR
cp;21A7;na=DOWNWARDS ARROW FROM BAR
cp;21A8;-Math;na=UP DOWN ARROW WITH BASE
-cp;21A9;Emoji;na=LEFTWARDS ARROW WITH HOOK
-cp;21AA;Emoji;na=RIGHTWARDS ARROW WITH HOOK
+cp;21A9;Emoji;ExtPict;na=LEFTWARDS ARROW WITH HOOK
+cp;21AA;Emoji;ExtPict;na=RIGHTWARDS ARROW WITH HOOK
cp;21AB;na=LEFTWARDS ARROW WITH LOOP
cp;21AC;na=RIGHTWARDS ARROW WITH LOOP
cp;21AD;na=LEFT RIGHT WAVE ARROW
@@ -10070,13 +10165,13 @@ cp;221D;ea=A;lb=AI;na=PROPORTIONAL TO
# Miscellaneous mathematical symbol
cp;221E;-Bidi_M;ea=A;lb=AI;na=INFINITY;vo=U
# Angles
-cp;221F;ea=A;lb=AI;na=RIGHT ANGLE
-cp;2220;ea=A;lb=AI;na=ANGLE
-cp;2221;na=MEASURED ANGLE
-cp;2222;na=SPHERICAL ANGLE
+cp;221F;bmg=2BFE;ea=A;lb=AI;na=RIGHT ANGLE
+cp;2220;bmg=29A3;ea=A;lb=AI;na=ANGLE
+cp;2221;bmg=299B;na=MEASURED ANGLE
+cp;2222;bmg=29A0;na=SPHERICAL ANGLE
# Relations
cp;2223;-Bidi_M;ea=A;lb=AI;na=DIVIDES
-cp;2224;dm=2223 0338;dt=Can;na=DOES NOT DIVIDE;NFD_QC=N;NFKD_QC=N
+cp;2224;bmg=2AEE;dm=2223 0338;dt=Can;na=DOES NOT DIVIDE;NFD_QC=N;NFKD_QC=N
cp;2225;-Bidi_M;ea=A;lb=AI;na=PARALLEL TO
cp;2226;dm=2225 0338;dt=Can;na=NOT PARALLEL TO;NFD_QC=N;NFKD_QC=N
# Logical and set operators
@@ -10120,14 +10215,14 @@ cp;2241;dm=223C 0338;dt=Can;na=NOT TILDE;NFD_QC=N;NFKD_QC=N
cp;2242;na=MINUS TILDE
cp;2243;bmg=22CD;na=ASYMPTOTICALLY EQUAL TO
cp;2244;dm=2243 0338;dt=Can;na=NOT ASYMPTOTICALLY EQUAL TO;NFD_QC=N;NFKD_QC=N
-cp;2245;na=APPROXIMATELY EQUAL TO
+cp;2245;bmg=224C;na=APPROXIMATELY EQUAL TO
cp;2246;na=APPROXIMATELY BUT NOT ACTUALLY EQUAL TO
cp;2247;dm=2245 0338;dt=Can;na=NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO;NFD_QC=N;NFKD_QC=N
cp;2248;ea=A;lb=AI;na=ALMOST EQUAL TO
cp;2249;dm=2248 0338;dt=Can;na=NOT ALMOST EQUAL TO;NFD_QC=N;NFKD_QC=N
cp;224A;na=ALMOST EQUAL OR EQUAL TO
cp;224B;na=TRIPLE TILDE
-cp;224C;ea=A;lb=AI;na=ALL EQUAL TO
+cp;224C;bmg=2245;ea=A;lb=AI;na=ALL EQUAL TO
cp;224D;-Bidi_M;na=EQUIVALENT TO
cp;224E;-Bidi_M;na=GEOMETRICALLY EQUIVALENT TO
cp;224F;-Bidi_M;na=DIFFERENCE BETWEEN
@@ -10240,7 +10335,7 @@ cp;22B4;bmg=22B5;na=NORMAL SUBGROUP OF OR EQUAL TO
cp;22B5;bmg=22B4;na=CONTAINS AS NORMAL SUBGROUP OR EQUAL TO
cp;22B6;bmg=22B7;na=ORIGINAL OF
cp;22B7;bmg=22B6;na=IMAGE OF
-cp;22B8;na=MULTIMAP
+cp;22B8;bmg=27DC;na=MULTIMAP
cp;22B9;-Bidi_M;na=HERMITIAN CONJUGATE MATRIX
# Operators
cp;22BA;-Bidi_M;na=INTERCALATE
@@ -10305,10 +10400,12 @@ cp;22EA;bmg=22EB;dm=22B2 0338;dt=Can;na=NOT NORMAL SUBGROUP OF;NFD_QC=N;NFKD_QC=
cp;22EB;bmg=22EA;dm=22B3 0338;dt=Can;na=DOES NOT CONTAIN AS NORMAL SUBGROUP;NFD_QC=N;NFKD_QC=N
cp;22EC;bmg=22ED;dm=22B4 0338;dt=Can;na=NOT NORMAL SUBGROUP OF OR EQUAL TO;NFD_QC=N;NFKD_QC=N
cp;22ED;bmg=22EC;dm=22B5 0338;dt=Can;na=DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL;NFD_QC=N;NFKD_QC=N
+# Matrix ellipses
cp;22EE;-Bidi_M;na=VERTICAL ELLIPSIS
cp;22EF;-Bidi_M;lb=IN;na=MIDLINE HORIZONTAL ELLIPSIS
cp;22F0;bmg=22F1;na=UP RIGHT DIAGONAL ELLIPSIS
cp;22F1;bmg=22F0;na=DOWN RIGHT DIAGONAL ELLIPSIS
+# Relations
cp;22F2;age=3.2;bmg=22FA;na=ELEMENT OF WITH LONG HORIZONTAL STROKE
cp;22F3;age=3.2;bmg=22FB;na=ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
cp;22F4;age=3.2;bmg=22FC;na=SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
@@ -10357,8 +10454,8 @@ cp;2317;na=VIEWDATA SQUARE;vo=U
cp;2318;na=PLACE OF INTEREST SIGN;vo=U
cp;2319;na=TURNED NOT SIGN;vo=U
# User interface symbols
-cp;231A;ea=W;Emoji;Emoji_Presentation;lb=ID;na=WATCH;vo=U
-cp;231B;ea=W;Emoji;Emoji_Presentation;lb=ID;na=HOURGLASS;vo=U
+cp;231A;ea=W;Emoji;EPres;ExtPict;lb=ID;na=WATCH;vo=U
+cp;231B;ea=W;Emoji;EPres;ExtPict;lb=ID;na=HOURGLASS;vo=U
# Quine corners
cp;231C;na=TOP LEFT CORNER;vo=U
cp;231D;na=TOP RIGHT CORNER;vo=U
@@ -10375,7 +10472,7 @@ cp;2324;na=UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS;vo=U
cp;2325;na=OPTION KEY;vo=U
cp;2326;na=ERASE TO THE RIGHT;vo=U
cp;2327;na=X IN A RECTANGLE BOX;vo=U
-cp;2328;Emoji;na=KEYBOARD;vo=U
+cp;2328;Emoji;ExtPict;na=KEYBOARD;vo=U
# Deprecated angle brackets
cp;2329;Bidi_M;bmg=232A;bpb=232A;bpt=o;Comp_Ex;CWKCF;Dep;dm=3008;dt=Can;ea=W;gc=Ps;lb=OP;na=LEFT-POINTING ANGLE BRACKET;NFC_QC=N;NFD_QC=N;NFKC_CF=3008;NFKC_QC=N;NFKD_QC=N;SB=CL;vo=Tr
cp;232A;Bidi_M;bmg=2329;bpb=2329;bpt=c;Comp_Ex;CWKCF;Dep;dm=3009;dt=Can;ea=W;gc=Pe;lb=CL;na=RIGHT-POINTING ANGLE BRACKET;NFC_QC=N;NFD_QC=N;NFKC_CF=3009;NFKC_QC=N;NFKD_QC=N;SB=CL;vo=Tr
@@ -10480,7 +10577,7 @@ cp;2384;age=3.0;na=COMPOSITION SYMBOL;vo=U
cp;2385;age=3.0;na=WHITE SQUARE WITH CENTRE VERTICAL LINE;vo=U
cp;2386;age=3.0;na=ENTER SYMBOL;vo=U
cp;2387;age=3.0;na=ALTERNATIVE KEY SYMBOL;vo=U
-cp;2388;age=3.0;na=HELM SYMBOL;vo=U
+cp;2388;age=3.0;ExtPict;na=HELM SYMBOL;vo=U
cp;2389;age=3.0;na=CIRCLED HORIZONTAL BAR WITH NOTCH;vo=U
cp;238A;age=3.0;na=CIRCLED TRIANGLE DOWN;vo=U
cp;238B;age=3.0;na=BROKEN CIRCLE WITH NORTHWEST ARROW;vo=U
@@ -10564,7 +10661,7 @@ cp;23CC;age=3.2;na=DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT;vo=U
cp;23CD;age=3.2;na=SQUARE FOOT;vo=U
# Keyboard and UI symbols
cp;23CE;age=3.2;na=RETURN SYMBOL
-cp;23CF;age=4.0;Emoji;na=EJECT SYMBOL;vo=U
+cp;23CF;age=4.0;Emoji;ExtPict;na=EJECT SYMBOL;vo=U
# Special character extension
cp;23D0;age=4.0;Math;na=VERTICAL LINE EXTENSION
# Metrical symbols
@@ -10598,24 +10695,24 @@ cp;23E6;age=5.0;na=AC CURRENT;vo=U
cp;23E7;age=5.0;na=ELECTRICAL INTERSECTION;vo=U
cp;23E8;age=5.2;na=DECIMAL EXPONENT SYMBOL;vo=U
# User interface symbols
-cp;23E9;age=6.0;ea=W;Emoji;Emoji_Presentation;na=BLACK RIGHT-POINTING DOUBLE TRIANGLE;vo=U
-cp;23EA;age=6.0;ea=W;Emoji;Emoji_Presentation;na=BLACK LEFT-POINTING DOUBLE TRIANGLE;vo=U
-cp;23EB;age=6.0;ea=W;Emoji;Emoji_Presentation;na=BLACK UP-POINTING DOUBLE TRIANGLE;vo=U
-cp;23EC;age=6.0;ea=W;Emoji;Emoji_Presentation;na=BLACK DOWN-POINTING DOUBLE TRIANGLE;vo=U
-cp;23ED;age=6.0;Emoji;na=BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR;vo=U
-cp;23EE;age=6.0;Emoji;na=BLACK LEFT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR;vo=U
-cp;23EF;age=6.0;Emoji;na=BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR;vo=U
-cp;23F0;age=6.0;ea=W;Emoji;Emoji_Presentation;lb=ID;na=ALARM CLOCK;vo=U
-cp;23F1;age=6.0;Emoji;lb=ID;na=STOPWATCH;vo=U
-cp;23F2;age=6.0;Emoji;lb=ID;na=TIMER CLOCK;vo=U
-cp;23F3;age=6.0;ea=W;Emoji;Emoji_Presentation;lb=ID;na=HOURGLASS WITH FLOWING SAND;vo=U
+cp;23E9;age=6.0;ea=W;Emoji;EPres;ExtPict;na=BLACK RIGHT-POINTING DOUBLE TRIANGLE;vo=U
+cp;23EA;age=6.0;ea=W;Emoji;EPres;ExtPict;na=BLACK LEFT-POINTING DOUBLE TRIANGLE;vo=U
+cp;23EB;age=6.0;ea=W;Emoji;EPres;ExtPict;na=BLACK UP-POINTING DOUBLE TRIANGLE;vo=U
+cp;23EC;age=6.0;ea=W;Emoji;EPres;ExtPict;na=BLACK DOWN-POINTING DOUBLE TRIANGLE;vo=U
+cp;23ED;age=6.0;Emoji;ExtPict;na=BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR;vo=U
+cp;23EE;age=6.0;Emoji;ExtPict;na=BLACK LEFT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR;vo=U
+cp;23EF;age=6.0;Emoji;ExtPict;na=BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR;vo=U
+cp;23F0;age=6.0;ea=W;Emoji;EPres;ExtPict;lb=ID;na=ALARM CLOCK;vo=U
+cp;23F1;age=6.0;Emoji;ExtPict;lb=ID;na=STOPWATCH;vo=U
+cp;23F2;age=6.0;Emoji;ExtPict;lb=ID;na=TIMER CLOCK;vo=U
+cp;23F3;age=6.0;ea=W;Emoji;EPres;ExtPict;lb=ID;na=HOURGLASS WITH FLOWING SAND;vo=U
cp;23F4;age=7.0;na=BLACK MEDIUM LEFT-POINTING TRIANGLE;vo=U
cp;23F5;age=7.0;na=BLACK MEDIUM RIGHT-POINTING TRIANGLE;vo=U
cp;23F6;age=7.0;na=BLACK MEDIUM UP-POINTING TRIANGLE;vo=U
cp;23F7;age=7.0;na=BLACK MEDIUM DOWN-POINTING TRIANGLE;vo=U
-cp;23F8;age=7.0;Emoji;na=DOUBLE VERTICAL BAR;vo=U
-cp;23F9;age=7.0;Emoji;na=BLACK SQUARE FOR STOP;vo=U
-cp;23FA;age=7.0;Emoji;na=BLACK CIRCLE FOR RECORD;vo=U
+cp;23F8;age=7.0;Emoji;ExtPict;na=DOUBLE VERTICAL BAR;vo=U
+cp;23F9;age=7.0;Emoji;ExtPict;na=BLACK SQUARE FOR STOP;vo=U
+cp;23FA;age=7.0;Emoji;ExtPict;na=BLACK CIRCLE FOR RECORD;vo=U
# Power symbols from ISO 7000:2012
cp;23FB;age=9.0;na=POWER SYMBOL;vo=U
cp;23FC;age=9.0;na=POWER ON-OFF SYMBOL;vo=U
@@ -10796,7 +10893,7 @@ cp;24BE;Alpha;Cased;cf=24D8;CWCF;CWCM;CWL;dm=0049;gc=So;na=CIRCLED LATIN CAPITAL
cp;24BF;Alpha;Cased;cf=24D9;CWCF;CWCM;CWL;dm=004A;gc=So;na=CIRCLED LATIN CAPITAL LETTER J;NFKC_CF=006A;SB=UP;scf=24D9;slc=24D9;Upper;WB=LE
cp;24C0;Alpha;Cased;cf=24DA;CWCF;CWCM;CWL;dm=004B;gc=So;na=CIRCLED LATIN CAPITAL LETTER K;NFKC_CF=006B;SB=UP;scf=24DA;slc=24DA;Upper;WB=LE
cp;24C1;Alpha;Cased;cf=24DB;CWCF;CWCM;CWL;dm=004C;gc=So;na=CIRCLED LATIN CAPITAL LETTER L;NFKC_CF=006C;SB=UP;scf=24DB;slc=24DB;Upper;WB=LE
-cp;24C2;Alpha;Cased;cf=24DC;CWCF;CWCM;CWL;dm=004D;Emoji;gc=So;na=CIRCLED LATIN CAPITAL LETTER M;NFKC_CF=006D;SB=UP;scf=24DC;slc=24DC;Upper;WB=LE
+cp;24C2;Alpha;Cased;cf=24DC;CWCF;CWCM;CWL;dm=004D;Emoji;ExtPict;gc=So;na=CIRCLED LATIN CAPITAL LETTER M;NFKC_CF=006D;SB=UP;scf=24DC;slc=24DC;Upper;WB=LE
cp;24C3;Alpha;Cased;cf=24DD;CWCF;CWCM;CWL;dm=004E;gc=So;na=CIRCLED LATIN CAPITAL LETTER N;NFKC_CF=006E;SB=UP;scf=24DD;slc=24DD;Upper;WB=LE
cp;24C4;Alpha;Cased;cf=24DE;CWCF;CWCM;CWL;dm=004F;gc=So;na=CIRCLED LATIN CAPITAL LETTER O;NFKC_CF=006F;SB=UP;scf=24DE;slc=24DE;Upper;WB=LE
cp;24C5;Alpha;Cased;cf=24DF;CWCF;CWCM;CWL;dm=0050;gc=So;na=CIRCLED LATIN CAPITAL LETTER P;NFKC_CF=0070;SB=UP;scf=24DF;slc=24DF;Upper;WB=LE
@@ -11056,8 +11153,8 @@ cp;25A6;ea=A;lb=AI;na=SQUARE WITH ORTHOGONAL CROSSHATCH FILL
cp;25A7;ea=A;lb=AI;na=SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL
cp;25A8;ea=A;lb=AI;na=SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL
cp;25A9;ea=A;lb=AI;na=SQUARE WITH DIAGONAL CROSSHATCH FILL
-cp;25AA;Emoji;na=BLACK SMALL SQUARE
-cp;25AB;Emoji;na=WHITE SMALL SQUARE
+cp;25AA;Emoji;ExtPict;na=BLACK SMALL SQUARE
+cp;25AB;Emoji;ExtPict;na=WHITE SMALL SQUARE
cp;25AC;na=BLACK RECTANGLE
cp;25AD;na=WHITE RECTANGLE
cp;25AE;Math;na=BLACK VERTICAL RECTANGLE
@@ -11068,7 +11165,7 @@ cp;25B2;ea=A;lb=AI;Math;na=BLACK UP-POINTING TRIANGLE
cp;25B3;ea=A;lb=AI;Math;na=WHITE UP-POINTING TRIANGLE
cp;25B4;Math;na=BLACK UP-POINTING SMALL TRIANGLE
cp;25B5;Math;na=WHITE UP-POINTING SMALL TRIANGLE
-cp;25B6;ea=A;Emoji;lb=AI;Math;na=BLACK RIGHT-POINTING TRIANGLE
+cp;25B6;ea=A;Emoji;ExtPict;lb=AI;Math;na=BLACK RIGHT-POINTING TRIANGLE
cp;25B7;ea=A;gc=Sm;lb=AI;Math;na=WHITE RIGHT-POINTING TRIANGLE
cp;25B8;na=BLACK RIGHT-POINTING SMALL TRIANGLE
cp;25B9;na=WHITE RIGHT-POINTING SMALL TRIANGLE
@@ -11078,7 +11175,7 @@ cp;25BC;ea=A;lb=AI;Math;na=BLACK DOWN-POINTING TRIANGLE
cp;25BD;ea=A;lb=AI;Math;na=WHITE DOWN-POINTING TRIANGLE
cp;25BE;Math;na=BLACK DOWN-POINTING SMALL TRIANGLE
cp;25BF;Math;na=WHITE DOWN-POINTING SMALL TRIANGLE
-cp;25C0;ea=A;Emoji;lb=AI;Math;na=BLACK LEFT-POINTING TRIANGLE
+cp;25C0;ea=A;Emoji;ExtPict;lb=AI;Math;na=BLACK LEFT-POINTING TRIANGLE
cp;25C1;ea=A;gc=Sm;lb=AI;Math;na=WHITE LEFT-POINTING TRIANGLE
cp;25C2;na=BLACK LEFT-POINTING SMALL TRIANGLE
cp;25C3;na=WHITE LEFT-POINTING SMALL TRIANGLE
@@ -11139,13 +11236,13 @@ cp;25F7;age=3.0;na=WHITE CIRCLE WITH UPPER RIGHT QUADRANT
cp;25F8;age=3.2;gc=Sm;Math;na=UPPER LEFT TRIANGLE
cp;25F9;age=3.2;gc=Sm;Math;na=UPPER RIGHT TRIANGLE
cp;25FA;age=3.2;gc=Sm;Math;na=LOWER LEFT TRIANGLE
-cp;25FB;age=3.2;Emoji;gc=Sm;Math;na=WHITE MEDIUM SQUARE
-cp;25FC;age=3.2;Emoji;gc=Sm;Math;na=BLACK MEDIUM SQUARE
-cp;25FD;age=3.2;ea=W;Emoji;Emoji_Presentation;gc=Sm;Math;na=WHITE MEDIUM SMALL SQUARE
-cp;25FE;age=3.2;ea=W;Emoji;Emoji_Presentation;gc=Sm;Math;na=BLACK MEDIUM SMALL SQUARE
+cp;25FB;age=3.2;Emoji;ExtPict;gc=Sm;Math;na=WHITE MEDIUM SQUARE
+cp;25FC;age=3.2;Emoji;ExtPict;gc=Sm;Math;na=BLACK MEDIUM SQUARE
+cp;25FD;age=3.2;ea=W;Emoji;EPres;ExtPict;gc=Sm;Math;na=WHITE MEDIUM SMALL SQUARE
+cp;25FE;age=3.2;ea=W;Emoji;EPres;ExtPict;gc=Sm;Math;na=BLACK MEDIUM SMALL SQUARE
cp;25FF;age=3.2;gc=Sm;Math;na=LOWER RIGHT TRIANGLE
-block;2600..26FF;age=1.1;bc=ON;blk=Misc_Symbols;gc=So;Gr_Base;lb=AL;Pat_Syn;sc=Zyyy;vo=U
+block;2600..26FF;age=1.1;bc=ON;blk=Misc_Symbols;ExtPict;gc=So;Gr_Base;lb=AL;Pat_Syn;sc=Zyyy;vo=U
# 2600..26FF Miscellaneous Symbols
# Weather and astrological symbols
cp;2600;Emoji;lb=ID;na=BLACK SUN WITH RAYS
@@ -11154,7 +11251,7 @@ cp;2602;Emoji;lb=ID;na=UMBRELLA
cp;2603;Emoji;lb=ID;na=SNOWMAN
cp;2604;Emoji;na=COMET
cp;2605;ea=A;lb=AI;Math;na=BLACK STAR
-cp;2606;ea=A;lb=AI;Math;na=WHITE STAR
+cp;2606;ea=A;-ExtPict;lb=AI;Math;na=WHITE STAR
cp;2607;na=LIGHTNING
cp;2608;na=THUNDERSTORM
cp;2609;ea=A;lb=AI;na=SUN
@@ -11168,11 +11265,11 @@ cp;260F;ea=A;lb=AI;na=WHITE TELEPHONE
cp;2610;na=BALLOT BOX
cp;2611;Emoji;na=BALLOT BOX WITH CHECK
cp;2612;na=BALLOT BOX WITH X
-cp;2613;na=SALTIRE
+cp;2613;-ExtPict;na=SALTIRE
# Weather symbol
-cp;2614;age=4.0;ea=W;Emoji;Emoji_Presentation;lb=ID;na=UMBRELLA WITH RAIN DROPS
+cp;2614;age=4.0;ea=W;Emoji;EPres;lb=ID;na=UMBRELLA WITH RAIN DROPS
# Miscellaneous symbol
-cp;2615;age=4.0;ea=W;Emoji;Emoji_Presentation;lb=ID;na=HOT BEVERAGE
+cp;2615;age=4.0;ea=W;Emoji;EPres;lb=ID;na=HOT BEVERAGE
# Japanese chess symbols
cp;2616;age=3.2;lb=AI;na=WHITE SHOGI PIECE
cp;2617;age=3.2;lb=AI;na=BLACK SHOGI PIECE
@@ -11183,7 +11280,7 @@ cp;2619;age=3.0;na=REVERSED ROTATED FLORAL HEART BULLET
cp;261A;lb=ID;na=BLACK LEFT POINTING INDEX;vo=R
cp;261B;lb=ID;na=BLACK RIGHT POINTING INDEX;vo=R
cp;261C;ea=A;lb=ID;na=WHITE LEFT POINTING INDEX;vo=R
-cp;261D;Emoji;Emoji_Modifier_Base;GCB=EB;lb=EB;na=WHITE UP POINTING INDEX;vo=R;WB=EB
+cp;261D;EBase;Emoji;lb=EB;na=WHITE UP POINTING INDEX;vo=R
cp;261E;ea=A;lb=ID;na=WHITE RIGHT POINTING INDEX;vo=R
cp;261F;lb=ID;na=WHITE DOWN POINTING INDEX;vo=R
# Warning signs
@@ -11226,27 +11323,27 @@ cp;263C;na=WHITE SUN WITH RAYS
cp;263D;na=FIRST QUARTER MOON
cp;263E;na=LAST QUARTER MOON
cp;263F;na=MERCURY
-cp;2640;ea=A;Emoji;GCB=GAZ;lb=AI;Math;na=FEMALE SIGN;WB=GAZ
+cp;2640;ea=A;Emoji;lb=AI;Math;na=FEMALE SIGN
cp;2641;na=EARTH
-cp;2642;ea=A;Emoji;GCB=GAZ;lb=AI;Math;na=MALE SIGN;WB=GAZ
+cp;2642;ea=A;Emoji;lb=AI;Math;na=MALE SIGN
cp;2643;na=JUPITER
cp;2644;na=SATURN
cp;2645;na=URANUS
cp;2646;na=NEPTUNE
cp;2647;na=PLUTO
# Zodiacal symbols
-cp;2648;ea=W;Emoji;Emoji_Presentation;na=ARIES
-cp;2649;ea=W;Emoji;Emoji_Presentation;na=TAURUS
-cp;264A;ea=W;Emoji;Emoji_Presentation;na=GEMINI
-cp;264B;ea=W;Emoji;Emoji_Presentation;na=CANCER
-cp;264C;ea=W;Emoji;Emoji_Presentation;na=LEO
-cp;264D;ea=W;Emoji;Emoji_Presentation;na=VIRGO
-cp;264E;ea=W;Emoji;Emoji_Presentation;na=LIBRA
-cp;264F;ea=W;Emoji;Emoji_Presentation;na=SCORPIUS
-cp;2650;ea=W;Emoji;Emoji_Presentation;na=SAGITTARIUS
-cp;2651;ea=W;Emoji;Emoji_Presentation;na=CAPRICORN
-cp;2652;ea=W;Emoji;Emoji_Presentation;na=AQUARIUS
-cp;2653;ea=W;Emoji;Emoji_Presentation;na=PISCES
+cp;2648;ea=W;Emoji;EPres;na=ARIES
+cp;2649;ea=W;Emoji;EPres;na=TAURUS
+cp;264A;ea=W;Emoji;EPres;na=GEMINI
+cp;264B;ea=W;Emoji;EPres;na=CANCER
+cp;264C;ea=W;Emoji;EPres;na=LEO
+cp;264D;ea=W;Emoji;EPres;na=VIRGO
+cp;264E;ea=W;Emoji;EPres;na=LIBRA
+cp;264F;ea=W;Emoji;EPres;na=SCORPIUS
+cp;2650;ea=W;Emoji;EPres;na=SAGITTARIUS
+cp;2651;ea=W;Emoji;EPres;na=CAPRICORN
+cp;2652;ea=W;Emoji;EPres;na=AQUARIUS
+cp;2653;ea=W;Emoji;EPres;na=PISCES
# Chess symbols
cp;2654;na=WHITE CHESS KING
cp;2655;na=WHITE CHESS QUEEN
@@ -11259,7 +11356,7 @@ cp;265B;na=BLACK CHESS QUEEN
cp;265C;na=BLACK CHESS ROOK
cp;265D;na=BLACK CHESS BISHOP
cp;265E;na=BLACK CHESS KNIGHT
-cp;265F;na=BLACK CHESS PAWN
+cp;265F;Emoji;na=BLACK CHESS PAWN
# Playing card symbols
cp;2660;ea=A;Emoji;lb=AI;Math;na=BLACK SPADE SUIT
cp;2661;ea=A;lb=AI;Math;na=WHITE HEART SUIT
@@ -11296,8 +11393,8 @@ cp;267B;age=3.2;Emoji;na=BLACK UNIVERSAL RECYCLING SYMBOL
cp;267C;age=3.2;na=RECYCLED PAPER SYMBOL
cp;267D;age=3.2;na=PARTIALLY-RECYCLED PAPER SYMBOL
# Miscellaneous symbols
-cp;267E;age=4.1;na=PERMANENT PAPER SIGN
-cp;267F;age=4.1;ea=W;Emoji;Emoji_Presentation;lb=ID;na=WHEELCHAIR SYMBOL
+cp;267E;age=4.1;Emoji;na=PERMANENT PAPER SIGN
+cp;267F;age=4.1;ea=W;Emoji;EPres;lb=ID;na=WHEELCHAIR SYMBOL
# Dice
cp;2680;age=3.2;na=DIE FACE-1
cp;2681;age=3.2;na=DIE FACE-2
@@ -11306,25 +11403,25 @@ cp;2683;age=3.2;na=DIE FACE-4
cp;2684;age=3.2;na=DIE FACE-5
cp;2685;age=3.2;na=DIE FACE-6
# Go markers
-cp;2686;age=3.2;na=WHITE CIRCLE WITH DOT RIGHT
-cp;2687;age=3.2;na=WHITE CIRCLE WITH TWO DOTS
-cp;2688;age=3.2;na=BLACK CIRCLE WITH WHITE DOT RIGHT
-cp;2689;age=3.2;na=BLACK CIRCLE WITH TWO WHITE DOTS
+cp;2686;age=3.2;-ExtPict;na=WHITE CIRCLE WITH DOT RIGHT
+cp;2687;age=3.2;-ExtPict;na=WHITE CIRCLE WITH TWO DOTS
+cp;2688;age=3.2;-ExtPict;na=BLACK CIRCLE WITH WHITE DOT RIGHT
+cp;2689;age=3.2;-ExtPict;na=BLACK CIRCLE WITH TWO WHITE DOTS
# Yijing monogram and digram symbols
-cp;268A;age=4.0;na=MONOGRAM FOR YANG
-cp;268B;age=4.0;na=MONOGRAM FOR YIN
-cp;268C;age=4.0;na=DIGRAM FOR GREATER YANG
-cp;268D;age=4.0;na=DIGRAM FOR LESSER YIN
-cp;268E;age=4.0;na=DIGRAM FOR LESSER YANG
-cp;268F;age=4.0;na=DIGRAM FOR GREATER YIN
+cp;268A;age=4.0;-ExtPict;na=MONOGRAM FOR YANG
+cp;268B;age=4.0;-ExtPict;na=MONOGRAM FOR YIN
+cp;268C;age=4.0;-ExtPict;na=DIGRAM FOR GREATER YANG
+cp;268D;age=4.0;-ExtPict;na=DIGRAM FOR LESSER YIN
+cp;268E;age=4.0;-ExtPict;na=DIGRAM FOR LESSER YANG
+cp;268F;age=4.0;-ExtPict;na=DIGRAM FOR GREATER YIN
# Dictionary and map symbols
cp;2690;age=4.0;na=WHITE FLAG
cp;2691;age=4.0;na=BLACK FLAG
cp;2692;age=4.1;Emoji;na=HAMMER AND PICK
-cp;2693;age=4.1;ea=W;Emoji;Emoji_Presentation;na=ANCHOR
+cp;2693;age=4.1;ea=W;Emoji;EPres;na=ANCHOR
cp;2694;age=4.1;Emoji;na=CROSSED SWORDS
-cp;2695;age=4.1;Emoji;GCB=GAZ;na=STAFF OF AESCULAPIUS;WB=GAZ
-cp;2696;age=4.1;Emoji;GCB=GAZ;na=SCALES;WB=GAZ
+cp;2695;age=4.1;Emoji;na=STAFF OF AESCULAPIUS
+cp;2696;age=4.1;Emoji;na=SCALES
cp;2697;age=4.1;Emoji;na=ALEMBIC
cp;2698;age=4.1;na=FLOWER
cp;2699;age=4.1;Emoji;na=GEAR
@@ -11338,7 +11435,7 @@ cp;269E;age=5.2;ea=A;lb=AI;na=THREE LINES CONVERGING RIGHT
cp;269F;age=5.2;ea=A;lb=AI;na=THREE LINES CONVERGING LEFT
# Miscellaneous symbols
cp;26A0;age=4.0;Emoji;na=WARNING SIGN
-cp;26A1;age=4.0;ea=W;Emoji;Emoji_Presentation;na=HIGH VOLTAGE SIGN
+cp;26A1;age=4.0;ea=W;Emoji;EPres;na=HIGH VOLTAGE SIGN
# Gender symbols
cp;26A2;age=4.1;na=DOUBLED FEMALE SIGN
cp;26A3;age=4.1;na=DOUBLED MALE SIGN
@@ -11349,8 +11446,8 @@ cp;26A7;age=4.1;na=MALE WITH STROKE AND MALE AND FEMALE SIGN
cp;26A8;age=4.1;na=VERTICAL MALE WITH STROKE SIGN
cp;26A9;age=4.1;na=HORIZONTAL MALE WITH STROKE SIGN
# Circles
-cp;26AA;age=4.1;ea=W;Emoji;Emoji_Presentation;na=MEDIUM WHITE CIRCLE
-cp;26AB;age=4.1;ea=W;Emoji;Emoji_Presentation;na=MEDIUM BLACK CIRCLE
+cp;26AA;age=4.1;ea=W;Emoji;EPres;na=MEDIUM WHITE CIRCLE
+cp;26AB;age=4.1;ea=W;Emoji;EPres;na=MEDIUM BLACK CIRCLE
cp;26AC;age=4.1;bc=L;na=MEDIUM SMALL WHITE CIRCLE
# Genealogical symbols
cp;26AD;age=4.1;na=MARRIAGE SYMBOL
@@ -11367,13 +11464,14 @@ cp;26B5;age=5.1;na=JUNO
cp;26B6;age=5.1;na=VESTA
cp;26B7;age=5.1;na=CHIRON
cp;26B8;age=5.1;na=BLACK MOON LILITH
+# Astrological aspects
cp;26B9;age=5.1;na=SEXTILE
cp;26BA;age=5.1;na=SEMISEXTILE
cp;26BB;age=5.1;na=QUINCUNX
cp;26BC;age=5.1;na=SESQUIQUADRATE
# Sport symbols
-cp;26BD;age=5.2;ea=W;Emoji;Emoji_Presentation;lb=ID;na=SOCCER BALL
-cp;26BE;age=5.2;ea=W;Emoji;Emoji_Presentation;lb=ID;na=BASEBALL
+cp;26BD;age=5.2;ea=W;Emoji;EPres;lb=ID;na=SOCCER BALL
+cp;26BE;age=5.2;ea=W;Emoji;EPres;lb=ID;na=BASEBALL
# Miscellaneous symbol from ARIB STD B24
cp;26BF;age=5.2;ea=A;lb=ID;na=SQUARED KEY
# Symbols for draughts and checkers
@@ -11382,8 +11480,8 @@ cp;26C1;age=5.1;lb=ID;na=WHITE DRAUGHTS KING
cp;26C2;age=5.1;lb=ID;na=BLACK DRAUGHTS MAN
cp;26C3;age=5.1;lb=ID;na=BLACK DRAUGHTS KING
# Weather symbols from ARIB STD B24
-cp;26C4;age=5.2;ea=W;Emoji;Emoji_Presentation;lb=ID;na=SNOWMAN WITHOUT SNOW
-cp;26C5;age=5.2;ea=W;Emoji;Emoji_Presentation;lb=ID;na=SUN BEHIND CLOUD
+cp;26C4;age=5.2;ea=W;Emoji;EPres;lb=ID;na=SNOWMAN WITHOUT SNOW
+cp;26C5;age=5.2;ea=W;Emoji;EPres;lb=ID;na=SUN BEHIND CLOUD
cp;26C6;age=5.2;ea=A;lb=ID;na=RAIN
cp;26C7;age=5.2;ea=A;lb=ID;na=BLACK SNOWMAN
cp;26C8;age=5.2;ea=A;Emoji;lb=ID;na=THUNDER CLOUD AND RAIN
@@ -11395,14 +11493,14 @@ cp;26CB;age=5.2;ea=A;lb=AI;na=WHITE DIAMOND IN SQUARE
cp;26CC;age=5.2;ea=A;lb=AI;na=CROSSING LANES
cp;26CD;age=5.2;ea=A;lb=ID;na=DISABLED CAR
# Zodiacal symbol
-cp;26CE;age=6.0;ea=W;Emoji;Emoji_Presentation;na=OPHIUCHUS
+cp;26CE;age=6.0;ea=W;Emoji;EPres;na=OPHIUCHUS
# Traffic signs from ARIB STD B24
cp;26CF;age=5.2;ea=A;Emoji;lb=ID;na=PICK
cp;26D0;age=5.2;ea=A;lb=ID;na=CAR SLIDING
cp;26D1;age=5.2;ea=A;Emoji;lb=ID;na=HELMET WITH WHITE CROSS
cp;26D2;age=5.2;ea=A;lb=AI;na=CIRCLED CROSSING LANES
cp;26D3;age=5.2;ea=A;Emoji;lb=ID;na=CHAINS
-cp;26D4;age=5.2;ea=W;Emoji;Emoji_Presentation;lb=ID;na=NO ENTRY
+cp;26D4;age=5.2;ea=W;Emoji;EPres;lb=ID;na=NO ENTRY
cp;26D5;age=5.2;ea=A;lb=AI;na=ALTERNATE ONE-WAY LEFT WAY TRAFFIC
cp;26D6;age=5.2;ea=A;lb=AI;na=BLACK TWO-WAY LEFT WAY TRAFFIC
cp;26D7;age=5.2;ea=A;lb=AI;na=WHITE TWO-WAY LEFT WAY TRAFFIC
@@ -11428,7 +11526,7 @@ cp;26E7;age=6.0;na=INVERTED PENTAGRAM
# Map symbols from ARIB STD B24
cp;26E8;age=5.2;ea=A;lb=AI;na=BLACK CROSS ON SHIELD
cp;26E9;age=5.2;ea=A;Emoji;lb=AI;na=SHINTO SHRINE
-cp;26EA;age=5.2;ea=W;Emoji;Emoji_Presentation;lb=ID;na=CHURCH
+cp;26EA;age=5.2;ea=W;Emoji;EPres;lb=ID;na=CHURCH
cp;26EB;age=5.2;ea=A;lb=AI;na=CASTLE
cp;26EC;age=5.2;ea=A;lb=AI;na=HISTORIC SITE
cp;26ED;age=5.2;ea=A;lb=AI;na=GEAR WITHOUT HUB
@@ -11436,47 +11534,47 @@ cp;26EE;age=5.2;ea=A;lb=AI;na=GEAR WITH HANDLES
cp;26EF;age=5.2;ea=A;lb=AI;na=MAP SYMBOL FOR LIGHTHOUSE
cp;26F0;age=5.2;ea=A;Emoji;lb=AI;na=MOUNTAIN
cp;26F1;age=5.2;ea=A;Emoji;lb=ID;na=UMBRELLA ON GROUND
-cp;26F2;age=5.2;ea=W;Emoji;Emoji_Presentation;lb=ID;na=FOUNTAIN
-cp;26F3;age=5.2;ea=W;Emoji;Emoji_Presentation;lb=ID;na=FLAG IN HOLE
+cp;26F2;age=5.2;ea=W;Emoji;EPres;lb=ID;na=FOUNTAIN
+cp;26F3;age=5.2;ea=W;Emoji;EPres;lb=ID;na=FLAG IN HOLE
cp;26F4;age=5.2;ea=A;Emoji;lb=ID;na=FERRY
-cp;26F5;age=5.2;ea=W;Emoji;Emoji_Presentation;lb=ID;na=SAILBOAT
+cp;26F5;age=5.2;ea=W;Emoji;EPres;lb=ID;na=SAILBOAT
cp;26F6;age=5.2;ea=A;lb=AI;na=SQUARE FOUR CORNERS
cp;26F7;age=5.2;ea=A;Emoji;lb=ID;na=SKIER
cp;26F8;age=5.2;ea=A;Emoji;lb=ID;na=ICE SKATE
-cp;26F9;age=5.2;ea=A;Emoji;Emoji_Modifier_Base;GCB=EB;lb=EB;na=PERSON WITH BALL;WB=EB
-cp;26FA;age=5.2;ea=W;Emoji;Emoji_Presentation;lb=ID;na=TENT
+cp;26F9;age=5.2;ea=A;EBase;Emoji;lb=EB;na=PERSON WITH BALL
+cp;26FA;age=5.2;ea=W;Emoji;EPres;lb=ID;na=TENT
cp;26FB;age=5.2;ea=A;lb=AI;na=JAPANESE BANK SYMBOL
cp;26FC;age=5.2;ea=A;lb=AI;na=HEADSTONE GRAVEYARD SYMBOL
-cp;26FD;age=5.2;ea=W;Emoji;Emoji_Presentation;lb=ID;na=FUEL PUMP
+cp;26FD;age=5.2;ea=W;Emoji;EPres;lb=ID;na=FUEL PUMP
cp;26FE;age=5.2;ea=A;lb=ID;na=CUP ON BLACK SQUARE
cp;26FF;age=5.2;ea=A;lb=ID;na=WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
block;2700..27BF;age=1.1;bc=ON;blk=Dingbats;gc=So;Gr_Base;lb=AL;Pat_Syn;sc=Zyyy;vo=U
# 2700..27BF Dingbats
# Miscellaneous
-cp;2700;age=7.0;lb=ID;na=BLACK SAFETY SCISSORS
-cp;2701;lb=ID;na=UPPER BLADE SCISSORS
-cp;2702;Emoji;lb=ID;na=BLACK SCISSORS
-cp;2703;lb=ID;na=LOWER BLADE SCISSORS
-cp;2704;lb=ID;na=WHITE SCISSORS
-cp;2705;age=6.0;ea=W;Emoji;Emoji_Presentation;na=WHITE HEAVY CHECK MARK
+cp;2700;age=7.0;ExtPict;lb=ID;na=BLACK SAFETY SCISSORS
+cp;2701;ExtPict;lb=ID;na=UPPER BLADE SCISSORS
+cp;2702;Emoji;ExtPict;lb=ID;na=BLACK SCISSORS
+cp;2703;ExtPict;lb=ID;na=LOWER BLADE SCISSORS
+cp;2704;ExtPict;lb=ID;na=WHITE SCISSORS
+cp;2705;age=6.0;ea=W;Emoji;EPres;ExtPict;na=WHITE HEAVY CHECK MARK
cp;2706;na=TELEPHONE LOCATION SIGN
cp;2707;na=TAPE DRIVE
-cp;2708;Emoji;GCB=GAZ;lb=ID;na=AIRPLANE;WB=GAZ
-cp;2709;Emoji;lb=ID;na=ENVELOPE
-cp;270A;age=6.0;ea=W;Emoji;Emoji_Modifier_Base;Emoji_Presentation;GCB=EB;lb=EB;na=RAISED FIST;WB=EB
-cp;270B;age=6.0;ea=W;Emoji;Emoji_Modifier_Base;Emoji_Presentation;GCB=EB;lb=EB;na=RAISED HAND;WB=EB
-cp;270C;Emoji;Emoji_Modifier_Base;GCB=EB;lb=EB;na=VICTORY HAND;WB=EB
-cp;270D;Emoji;Emoji_Modifier_Base;GCB=EB;lb=EB;na=WRITING HAND;WB=EB
-cp;270E;na=LOWER RIGHT PENCIL
-cp;270F;Emoji;na=PENCIL
-cp;2710;na=UPPER RIGHT PENCIL
-cp;2711;na=WHITE NIB
-cp;2712;Emoji;na=BLACK NIB
+cp;2708;Emoji;ExtPict;lb=ID;na=AIRPLANE
+cp;2709;Emoji;ExtPict;lb=ID;na=ENVELOPE
+cp;270A;age=6.0;ea=W;EBase;Emoji;EPres;ExtPict;lb=EB;na=RAISED FIST
+cp;270B;age=6.0;ea=W;EBase;Emoji;EPres;ExtPict;lb=EB;na=RAISED HAND
+cp;270C;EBase;Emoji;ExtPict;lb=EB;na=VICTORY HAND
+cp;270D;EBase;Emoji;ExtPict;lb=EB;na=WRITING HAND
+cp;270E;ExtPict;na=LOWER RIGHT PENCIL
+cp;270F;Emoji;ExtPict;na=PENCIL
+cp;2710;ExtPict;na=UPPER RIGHT PENCIL
+cp;2711;ExtPict;na=WHITE NIB
+cp;2712;Emoji;ExtPict;na=BLACK NIB
cp;2713;na=CHECK MARK
-cp;2714;Emoji;na=HEAVY CHECK MARK
+cp;2714;Emoji;ExtPict;na=HEAVY CHECK MARK
cp;2715;na=MULTIPLICATION X
-cp;2716;Emoji;na=HEAVY MULTIPLICATION X
+cp;2716;Emoji;ExtPict;na=HEAVY MULTIPLICATION X
cp;2717;na=BALLOT X
cp;2718;na=HEAVY BALLOT X
# Crosses
@@ -11484,19 +11582,19 @@ cp;2719;na=OUTLINED GREEK CROSS
cp;271A;na=HEAVY GREEK CROSS
cp;271B;na=OPEN CENTRE CROSS
cp;271C;na=HEAVY OPEN CENTRE CROSS
-cp;271D;Emoji;na=LATIN CROSS
+cp;271D;Emoji;ExtPict;na=LATIN CROSS
cp;271E;na=SHADOWED WHITE LATIN CROSS
cp;271F;na=OUTLINED LATIN CROSS
cp;2720;na=MALTESE CROSS
# Stars and asterisks
-cp;2721;Emoji;na=STAR OF DAVID
+cp;2721;Emoji;ExtPict;na=STAR OF DAVID
cp;2722;na=FOUR TEARDROP-SPOKED ASTERISK
cp;2723;na=FOUR BALLOON-SPOKED ASTERISK
cp;2724;na=HEAVY FOUR BALLOON-SPOKED ASTERISK
cp;2725;na=FOUR CLUB-SPOKED ASTERISK
cp;2726;na=BLACK FOUR POINTED STAR
cp;2727;na=WHITE FOUR POINTED STAR
-cp;2728;age=6.0;ea=W;Emoji;Emoji_Presentation;na=SPARKLES
+cp;2728;age=6.0;ea=W;Emoji;EPres;ExtPict;na=SPARKLES
cp;2729;na=STRESS OUTLINED WHITE STAR
cp;272A;na=CIRCLED WHITE STAR
cp;272B;na=OPEN CENTRE BLACK STAR
@@ -11507,8 +11605,8 @@ cp;272F;na=PINWHEEL STAR
cp;2730;na=SHADOWED WHITE STAR
cp;2731;na=HEAVY ASTERISK
cp;2732;na=OPEN CENTRE ASTERISK
-cp;2733;Emoji;na=EIGHT SPOKED ASTERISK
-cp;2734;Emoji;na=EIGHT POINTED BLACK STAR
+cp;2733;Emoji;ExtPict;na=EIGHT SPOKED ASTERISK
+cp;2734;Emoji;ExtPict;na=EIGHT POINTED BLACK STAR
cp;2735;na=EIGHT POINTED PINWHEEL STAR
cp;2736;na=SIX POINTED BLACK STAR
cp;2737;na=EIGHT POINTED RECTILINEAR BLACK STAR
@@ -11526,27 +11624,27 @@ cp;2741;na=EIGHT PETALLED OUTLINED BLACK FLORETTE
# Stars, asterisks and snowflakes
cp;2742;na=CIRCLED OPEN CENTRE EIGHT POINTED STAR
cp;2743;na=HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK
-cp;2744;Emoji;na=SNOWFLAKE
+cp;2744;Emoji;ExtPict;na=SNOWFLAKE
cp;2745;na=TIGHT TRIFOLIATE SNOWFLAKE
cp;2746;na=HEAVY CHEVRON SNOWFLAKE
-cp;2747;Emoji;na=SPARKLE
+cp;2747;Emoji;ExtPict;na=SPARKLE
cp;2748;na=HEAVY SPARKLE
cp;2749;na=BALLOON-SPOKED ASTERISK
cp;274A;na=EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
cp;274B;na=HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
# Miscellaneous
-cp;274C;age=6.0;ea=W;Emoji;Emoji_Presentation;na=CROSS MARK
+cp;274C;age=6.0;ea=W;Emoji;EPres;ExtPict;na=CROSS MARK
cp;274D;na=SHADOWED WHITE CIRCLE
-cp;274E;age=6.0;ea=W;Emoji;Emoji_Presentation;na=NEGATIVE SQUARED CROSS MARK
+cp;274E;age=6.0;ea=W;Emoji;EPres;ExtPict;na=NEGATIVE SQUARED CROSS MARK
cp;274F;na=LOWER RIGHT DROP-SHADOWED WHITE SQUARE
cp;2750;na=UPPER RIGHT DROP-SHADOWED WHITE SQUARE
cp;2751;na=LOWER RIGHT SHADOWED WHITE SQUARE
cp;2752;na=UPPER RIGHT SHADOWED WHITE SQUARE
-cp;2753;age=6.0;ea=W;Emoji;Emoji_Presentation;na=BLACK QUESTION MARK ORNAMENT
-cp;2754;age=6.0;ea=W;Emoji;Emoji_Presentation;na=WHITE QUESTION MARK ORNAMENT
-cp;2755;age=6.0;ea=W;Emoji;Emoji_Presentation;na=WHITE EXCLAMATION MARK ORNAMENT
+cp;2753;age=6.0;ea=W;Emoji;EPres;ExtPict;na=BLACK QUESTION MARK ORNAMENT
+cp;2754;age=6.0;ea=W;Emoji;EPres;ExtPict;na=WHITE QUESTION MARK ORNAMENT
+cp;2755;age=6.0;ea=W;Emoji;EPres;ExtPict;na=WHITE EXCLAMATION MARK ORNAMENT
cp;2756;na=BLACK DIAMOND MINUS WHITE X
-cp;2757;age=5.2;ea=W;Emoji;Emoji_Presentation;lb=AI;na=HEAVY EXCLAMATION MARK SYMBOL
+cp;2757;age=5.2;ea=W;Emoji;EPres;ExtPict;lb=AI;na=HEAVY EXCLAMATION MARK SYMBOL
cp;2758;na=LIGHT VERTICAL BAR
cp;2759;na=MEDIUM VERTICAL BAR
cp;275A;na=HEAVY VERTICAL BAR
@@ -11559,12 +11657,12 @@ cp;275F;age=6.0;lb=QU;na=HEAVY LOW SINGLE COMMA QUOTATION MARK ORNAMENT;SB=CL
cp;2760;age=6.0;lb=QU;na=HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT;SB=CL
cp;2761;na=CURVED STEM PARAGRAPH SIGN ORNAMENT
cp;2762;lb=EX;na=HEAVY EXCLAMATION MARK ORNAMENT
-cp;2763;Emoji;lb=EX;na=HEAVY HEART EXCLAMATION MARK ORNAMENT
-cp;2764;Emoji;GCB=GAZ;lb=ID;na=HEAVY BLACK HEART;WB=GAZ
-cp;2765;na=ROTATED HEAVY BLACK HEART BULLET
+cp;2763;Emoji;ExtPict;lb=EX;na=HEAVY HEART EXCLAMATION MARK ORNAMENT
+cp;2764;Emoji;ExtPict;lb=ID;na=HEAVY BLACK HEART
+cp;2765;ExtPict;na=ROTATED HEAVY BLACK HEART BULLET
# Fleurons
-cp;2766;na=FLORAL HEART
-cp;2767;na=ROTATED FLORAL HEART BULLET
+cp;2766;ExtPict;na=FLORAL HEART
+cp;2767;ExtPict;na=ROTATED FLORAL HEART BULLET
# Ornamental brackets
cp;2768;age=3.2;Bidi_M;bmg=2769;bpb=2769;bpt=o;gc=Ps;lb=OP;na=MEDIUM LEFT PARENTHESIS ORNAMENT;SB=CL;vo=R
cp;2769;age=3.2;Bidi_M;bmg=2768;bpb=2768;bpt=c;gc=Pe;lb=CL;na=MEDIUM RIGHT PARENTHESIS ORNAMENT;SB=CL;vo=R
@@ -11614,9 +11712,9 @@ cp;2793;gc=No;lb=AI;na=DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN;nt=Nu;nv=1
# Dingbat arrow
cp;2794;na=HEAVY WIDE-HEADED RIGHTWARDS ARROW;vo=R
# Heavy variants of arithmetic symbols
-cp;2795;age=6.0;ea=W;Emoji;Emoji_Presentation;na=HEAVY PLUS SIGN;vo=R
-cp;2796;age=6.0;ea=W;Emoji;Emoji_Presentation;na=HEAVY MINUS SIGN;vo=R
-cp;2797;age=6.0;ea=W;Emoji;Emoji_Presentation;na=HEAVY DIVISION SIGN;vo=R
+cp;2795;age=6.0;ea=W;Emoji;EPres;ExtPict;na=HEAVY PLUS SIGN;vo=R
+cp;2796;age=6.0;ea=W;Emoji;EPres;ExtPict;na=HEAVY MINUS SIGN;vo=R
+cp;2797;age=6.0;ea=W;Emoji;EPres;ExtPict;na=HEAVY DIVISION SIGN;vo=R
# Dingbat arrows
cp;2798;na=HEAVY SOUTH EAST ARROW;vo=R
cp;2799;na=HEAVY RIGHTWARDS ARROW;vo=R
@@ -11627,7 +11725,7 @@ cp;279D;na=TRIANGLE-HEADED RIGHTWARDS ARROW;vo=R
cp;279E;na=HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW;vo=R
cp;279F;na=DASHED TRIANGLE-HEADED RIGHTWARDS ARROW;vo=R
cp;27A0;na=HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW;vo=R
-cp;27A1;Emoji;na=BLACK RIGHTWARDS ARROW;vo=R
+cp;27A1;Emoji;ExtPict;na=BLACK RIGHTWARDS ARROW;vo=R
cp;27A2;na=THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD;vo=R
cp;27A3;na=THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD;vo=R
cp;27A4;na=BLACK RIGHTWARDS ARROWHEAD;vo=R
@@ -11643,7 +11741,7 @@ cp;27AD;na=HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;vo=R
cp;27AE;na=HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;vo=R
cp;27AF;na=NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;vo=R
# Miscellaneous
-cp;27B0;age=6.0;ea=W;Emoji;Emoji_Presentation;na=CURLY LOOP;vo=R
+cp;27B0;age=6.0;ea=W;Emoji;EPres;ExtPict;na=CURLY LOOP;vo=R
# Dingbat arrows
cp;27B1;na=NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;vo=R
cp;27B2;na=CIRCLED HEAVY WHITE RIGHTWARDS ARROW;vo=R
@@ -11660,7 +11758,7 @@ cp;27BC;na=WEDGE-TAILED RIGHTWARDS ARROW;vo=R
cp;27BD;na=HEAVY WEDGE-TAILED RIGHTWARDS ARROW;vo=R
cp;27BE;na=OPEN-OUTLINED RIGHTWARDS ARROW;vo=R
# Miscellaneous
-cp;27BF;age=6.0;ea=W;Emoji;Emoji_Presentation;na=DOUBLE CURLY LOOP;vo=R
+cp;27BF;age=6.0;ea=W;Emoji;EPres;ExtPict;na=DOUBLE CURLY LOOP;vo=R
block;27C0..27EF;age=3.2;bc=ON;Bidi_M;blk=Misc_Math_Symbols_A;gc=Sm;Gr_Base;lb=AL;Math;Pat_Syn;sc=Zyyy
# 27C0..27EF Miscellaneous Mathematical Symbols-A
@@ -11670,8 +11768,10 @@ cp;27C1;age=4.1;-Bidi_M;na=WHITE TRIANGLE CONTAINING SMALL WHITE TRIANGLE
cp;27C2;age=4.1;-Bidi_M;na=PERPENDICULAR
cp;27C3;age=4.1;bmg=27C4;na=OPEN SUBSET
cp;27C4;age=4.1;bmg=27C3;na=OPEN SUPERSET
+# Paired punctuation
cp;27C5;age=4.1;bmg=27C6;bpb=27C6;bpt=o;gc=Ps;lb=OP;na=LEFT S-SHAPED BAG DELIMITER;SB=CL
cp;27C6;age=4.1;bmg=27C5;bpb=27C5;bpt=c;gc=Pe;lb=CL;na=RIGHT S-SHAPED BAG DELIMITER;SB=CL
+# Miscellaneous symbols
cp;27C7;age=5.0;-Bidi_M;na=OR WITH DOT INSIDE
cp;27C8;age=5.0;bmg=27C9;na=REVERSE SOLIDUS PRECEDING SUBSET
cp;27C9;age=5.0;bmg=27C8;na=SUPERSET PRECEDING SOLIDUS
@@ -11702,7 +11802,7 @@ cp;27D8;-Bidi_M;na=LARGE UP TACK
cp;27D9;-Bidi_M;na=LARGE DOWN TACK
cp;27DA;-Bidi_M;na=LEFT AND RIGHT DOUBLE TURNSTILE
cp;27DB;-Bidi_M;na=LEFT AND RIGHT TACK
-cp;27DC;na=LEFT MULTIMAP
+cp;27DC;bmg=22B8;na=LEFT MULTIMAP
cp;27DD;bmg=27DE;na=LONG RIGHT TACK
cp;27DE;bmg=27DD;na=LONG LEFT TACK
cp;27DF;-Bidi_M;na=UP TACK WITH CIRCLE ABOVE
@@ -12065,8 +12165,8 @@ cp;2931;na=NORTH EAST ARROW CROSSING NORTH WEST ARROW
cp;2932;na=NORTH WEST ARROW CROSSING NORTH EAST ARROW
# Miscellaneous curved arrows
cp;2933;na=WAVE ARROW POINTING DIRECTLY RIGHT
-cp;2934;Emoji;na=ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS
-cp;2935;Emoji;na=ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS
+cp;2934;Emoji;ExtPict;na=ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS
+cp;2935;Emoji;ExtPict;na=ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS
cp;2936;na=ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS
cp;2937;na=ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS
cp;2938;na=RIGHT-SIDE ARC CLOCKWISE ARROW
@@ -12184,27 +12284,27 @@ cp;2998;bmg=2997;bpb=2997;bpt=c;gc=Pe;lb=CL;na=RIGHT BLACK TORTOISE SHELL BRACKE
cp;2999;-Bidi_M;na=DOTTED FENCE
cp;299A;-Bidi_M;na=VERTICAL ZIGZAG LINE
# Angles
-cp;299B;na=MEASURED ANGLE OPENING LEFT
+cp;299B;bmg=2221;na=MEASURED ANGLE OPENING LEFT
cp;299C;na=RIGHT ANGLE VARIANT WITH SQUARE
cp;299D;na=MEASURED RIGHT ANGLE WITH DOT
cp;299E;na=ANGLE WITH S INSIDE
cp;299F;na=ACUTE ANGLE
-cp;29A0;na=SPHERICAL ANGLE OPENING LEFT
-cp;29A1;na=SPHERICAL ANGLE OPENING UP
+cp;29A0;bmg=2222;na=SPHERICAL ANGLE OPENING LEFT
+cp;29A1;-Bidi_M;na=SPHERICAL ANGLE OPENING UP
cp;29A2;na=TURNED ANGLE
-cp;29A3;na=REVERSED ANGLE
-cp;29A4;na=ANGLE WITH UNDERBAR
-cp;29A5;na=REVERSED ANGLE WITH UNDERBAR
+cp;29A3;bmg=2220;na=REVERSED ANGLE
+cp;29A4;bmg=29A5;na=ANGLE WITH UNDERBAR
+cp;29A5;bmg=29A4;na=REVERSED ANGLE WITH UNDERBAR
cp;29A6;na=OBLIQUE ANGLE OPENING UP
cp;29A7;na=OBLIQUE ANGLE OPENING DOWN
-cp;29A8;na=MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT
-cp;29A9;na=MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT
-cp;29AA;na=MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT
-cp;29AB;na=MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT
-cp;29AC;na=MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP
-cp;29AD;na=MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP
-cp;29AE;na=MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN
-cp;29AF;na=MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN
+cp;29A8;bmg=29A9;na=MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT
+cp;29A9;bmg=29A8;na=MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT
+cp;29AA;bmg=29AB;na=MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT
+cp;29AB;bmg=29AA;na=MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT
+cp;29AC;bmg=29AD;na=MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP
+cp;29AD;bmg=29AC;na=MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP
+cp;29AE;bmg=29AF;na=MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN
+cp;29AF;bmg=29AE;na=MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN
# Empty sets
cp;29B0;-Bidi_M;na=REVERSED EMPTY SET
cp;29B1;-Bidi_M;na=EMPTY SET WITH OVERBAR
@@ -12270,8 +12370,8 @@ cp;29E5;na=IDENTICAL TO AND SLANTED PARALLEL
cp;29E6;-Bidi_M;na=GLEICH STARK
# Miscellaneous mathematical symbols
cp;29E7;-Bidi_M;na=THERMODYNAMIC
-cp;29E8;na=DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK
-cp;29E9;na=DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK
+cp;29E8;bmg=29E9;na=DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK
+cp;29E9;bmg=29E8;na=DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK
cp;29EA;-Bidi_M;na=BLACK DIAMOND WITH DOWN ARROW
cp;29EB;-Bidi_M;na=BLACK LOZENGE
cp;29EC;-Bidi_M;na=WHITE CIRCLE WITH DOWN ARROW
@@ -12297,7 +12397,7 @@ cp;29FB;-Bidi_M;na=TRIPLE PLUS
# Brackets
cp;29FC;bmg=29FD;bpb=29FD;bpt=o;gc=Ps;lb=OP;na=LEFT-POINTING CURVED ANGLE BRACKET;SB=CL
cp;29FD;bmg=29FC;bpb=29FC;bpt=c;gc=Pe;lb=CL;na=RIGHT-POINTING CURVED ANGLE BRACKET;SB=CL
-# Miscellaneous mathematical symbols
+# Symbols used in game theory
cp;29FE;-Bidi_M;na=TINY
cp;29FF;-Bidi_M;na=MINY
@@ -12436,8 +12536,8 @@ cp;2A77;-Bidi_M;na=EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW
cp;2A78;-Bidi_M;na=EQUIVALENT WITH FOUR DOTS ABOVE
cp;2A79;bmg=2A7A;na=LESS-THAN WITH CIRCLE INSIDE
cp;2A7A;bmg=2A79;na=GREATER-THAN WITH CIRCLE INSIDE
-cp;2A7B;na=LESS-THAN WITH QUESTION MARK ABOVE
-cp;2A7C;na=GREATER-THAN WITH QUESTION MARK ABOVE
+cp;2A7B;bmg=2A7C;na=LESS-THAN WITH QUESTION MARK ABOVE
+cp;2A7C;bmg=2A7B;na=GREATER-THAN WITH QUESTION MARK ABOVE
cp;2A7D;bmg=2A7E;na=LESS-THAN OR SLANTED EQUAL TO
cp;2A7E;bmg=2A7D;na=GREATER-THAN OR SLANTED EQUAL TO
cp;2A7F;bmg=2A80;na=LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE
@@ -12446,18 +12546,18 @@ cp;2A81;bmg=2A82;na=LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE
cp;2A82;bmg=2A81;na=GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE
cp;2A83;bmg=2A84;na=LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT
cp;2A84;bmg=2A83;na=GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT
-cp;2A85;na=LESS-THAN OR APPROXIMATE
-cp;2A86;na=GREATER-THAN OR APPROXIMATE
-cp;2A87;na=LESS-THAN AND SINGLE-LINE NOT EQUAL TO
-cp;2A88;na=GREATER-THAN AND SINGLE-LINE NOT EQUAL TO
-cp;2A89;na=LESS-THAN AND NOT APPROXIMATE
-cp;2A8A;na=GREATER-THAN AND NOT APPROXIMATE
+cp;2A85;bmg=2A86;na=LESS-THAN OR APPROXIMATE
+cp;2A86;bmg=2A85;na=GREATER-THAN OR APPROXIMATE
+cp;2A87;bmg=2A88;na=LESS-THAN AND SINGLE-LINE NOT EQUAL TO
+cp;2A88;bmg=2A87;na=GREATER-THAN AND SINGLE-LINE NOT EQUAL TO
+cp;2A89;bmg=2A8A;na=LESS-THAN AND NOT APPROXIMATE
+cp;2A8A;bmg=2A89;na=GREATER-THAN AND NOT APPROXIMATE
cp;2A8B;bmg=2A8C;na=LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN
cp;2A8C;bmg=2A8B;na=GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN
-cp;2A8D;na=LESS-THAN ABOVE SIMILAR OR EQUAL
-cp;2A8E;na=GREATER-THAN ABOVE SIMILAR OR EQUAL
-cp;2A8F;na=LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN
-cp;2A90;na=GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN
+cp;2A8D;bmg=2A8E;na=LESS-THAN ABOVE SIMILAR OR EQUAL
+cp;2A8E;bmg=2A8D;na=GREATER-THAN ABOVE SIMILAR OR EQUAL
+cp;2A8F;bmg=2A90;na=LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN
+cp;2A90;bmg=2A8F;na=GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN
cp;2A91;bmg=2A92;na=LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL
cp;2A92;bmg=2A91;na=GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL
cp;2A93;bmg=2A94;na=LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL
@@ -12470,10 +12570,10 @@ cp;2A99;bmg=2A9A;na=DOUBLE-LINE EQUAL TO OR LESS-THAN
cp;2A9A;bmg=2A99;na=DOUBLE-LINE EQUAL TO OR GREATER-THAN
cp;2A9B;bmg=2A9C;na=DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN
cp;2A9C;bmg=2A9B;na=DOUBLE-LINE SLANTED EQUAL TO OR GREATER-THAN
-cp;2A9D;na=SIMILAR OR LESS-THAN
-cp;2A9E;na=SIMILAR OR GREATER-THAN
-cp;2A9F;na=SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN
-cp;2AA0;na=SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN
+cp;2A9D;bmg=2A9E;na=SIMILAR OR LESS-THAN
+cp;2A9E;bmg=2A9D;na=SIMILAR OR GREATER-THAN
+cp;2A9F;bmg=2AA0;na=SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN
+cp;2AA0;bmg=2A9F;na=SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN
cp;2AA1;bmg=2AA2;na=DOUBLE NESTED LESS-THAN
cp;2AA2;bmg=2AA1;na=DOUBLE NESTED GREATER-THAN
cp;2AA3;na=DOUBLE NESTED LESS-THAN WITH UNDERBAR
@@ -12490,16 +12590,16 @@ cp;2AAD;bmg=2AAC;na=LARGER THAN OR EQUAL TO
cp;2AAE;-Bidi_M;na=EQUALS SIGN WITH BUMPY ABOVE
cp;2AAF;bmg=2AB0;na=PRECEDES ABOVE SINGLE-LINE EQUALS SIGN
cp;2AB0;bmg=2AAF;na=SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN
-cp;2AB1;na=PRECEDES ABOVE SINGLE-LINE NOT EQUAL TO
-cp;2AB2;na=SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO
+cp;2AB1;bmg=2AB2;na=PRECEDES ABOVE SINGLE-LINE NOT EQUAL TO
+cp;2AB2;bmg=2AB1;na=SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO
cp;2AB3;bmg=2AB4;na=PRECEDES ABOVE EQUALS SIGN
cp;2AB4;bmg=2AB3;na=SUCCEEDS ABOVE EQUALS SIGN
-cp;2AB5;na=PRECEDES ABOVE NOT EQUAL TO
-cp;2AB6;na=SUCCEEDS ABOVE NOT EQUAL TO
-cp;2AB7;na=PRECEDES ABOVE ALMOST EQUAL TO
-cp;2AB8;na=SUCCEEDS ABOVE ALMOST EQUAL TO
-cp;2AB9;na=PRECEDES ABOVE NOT ALMOST EQUAL TO
-cp;2ABA;na=SUCCEEDS ABOVE NOT ALMOST EQUAL TO
+cp;2AB5;bmg=2AB6;na=PRECEDES ABOVE NOT EQUAL TO
+cp;2AB6;bmg=2AB5;na=SUCCEEDS ABOVE NOT EQUAL TO
+cp;2AB7;bmg=2AB8;na=PRECEDES ABOVE ALMOST EQUAL TO
+cp;2AB8;bmg=2AB7;na=SUCCEEDS ABOVE ALMOST EQUAL TO
+cp;2AB9;bmg=2ABA;na=PRECEDES ABOVE NOT ALMOST EQUAL TO
+cp;2ABA;bmg=2AB9;na=SUCCEEDS ABOVE NOT ALMOST EQUAL TO
cp;2ABB;bmg=2ABC;na=DOUBLE PRECEDES
cp;2ABC;bmg=2ABB;na=DOUBLE SUCCEEDS
# Subset and superset relations
@@ -12513,12 +12613,12 @@ cp;2AC3;bmg=2AC4;na=SUBSET OF OR EQUAL TO WITH DOT ABOVE
cp;2AC4;bmg=2AC3;na=SUPERSET OF OR EQUAL TO WITH DOT ABOVE
cp;2AC5;bmg=2AC6;na=SUBSET OF ABOVE EQUALS SIGN
cp;2AC6;bmg=2AC5;na=SUPERSET OF ABOVE EQUALS SIGN
-cp;2AC7;na=SUBSET OF ABOVE TILDE OPERATOR
-cp;2AC8;na=SUPERSET OF ABOVE TILDE OPERATOR
-cp;2AC9;na=SUBSET OF ABOVE ALMOST EQUAL TO
-cp;2ACA;na=SUPERSET OF ABOVE ALMOST EQUAL TO
-cp;2ACB;na=SUBSET OF ABOVE NOT EQUAL TO
-cp;2ACC;na=SUPERSET OF ABOVE NOT EQUAL TO
+cp;2AC7;bmg=2AC8;na=SUBSET OF ABOVE TILDE OPERATOR
+cp;2AC8;bmg=2AC7;na=SUPERSET OF ABOVE TILDE OPERATOR
+cp;2AC9;bmg=2ACA;na=SUBSET OF ABOVE ALMOST EQUAL TO
+cp;2ACA;bmg=2AC9;na=SUPERSET OF ABOVE ALMOST EQUAL TO
+cp;2ACB;bmg=2ACC;na=SUBSET OF ABOVE NOT EQUAL TO
+cp;2ACC;bmg=2ACB;na=SUPERSET OF ABOVE NOT EQUAL TO
cp;2ACD;bmg=2ACE;na=SQUARE LEFT OPEN BOX OPERATOR
cp;2ACE;bmg=2ACD;na=SQUARE RIGHT OPEN BOX OPERATOR
cp;2ACF;bmg=2AD0;na=CLOSED SUBSET
@@ -12555,7 +12655,7 @@ cp;2AEB;-Bidi_M;na=DOUBLE UP TACK
cp;2AEC;bmg=2AED;na=DOUBLE STROKE NOT SIGN
cp;2AED;bmg=2AEC;na=REVERSED DOUBLE STROKE NOT SIGN
# Vertical line operators
-cp;2AEE;na=DOES NOT DIVIDE WITH REVERSED NEGATION SLASH
+cp;2AEE;bmg=2224;na=DOES NOT DIVIDE WITH REVERSED NEGATION SLASH
cp;2AEF;-Bidi_M;na=VERTICAL LINE WITH CIRCLE ABOVE
cp;2AF0;-Bidi_M;na=VERTICAL LINE WITH CIRCLE BELOW
cp;2AF1;-Bidi_M;na=DOWN TACK WITH CIRCLE BELOW
@@ -12585,9 +12685,9 @@ cp;2B01;age=4.0;na=NORTH WEST WHITE ARROW
cp;2B02;age=4.0;na=SOUTH EAST WHITE ARROW
cp;2B03;age=4.0;na=SOUTH WEST WHITE ARROW
cp;2B04;age=4.0;na=LEFT RIGHT WHITE ARROW
-cp;2B05;age=4.0;Emoji;na=LEFTWARDS BLACK ARROW
-cp;2B06;age=4.0;Emoji;na=UPWARDS BLACK ARROW
-cp;2B07;age=4.0;Emoji;na=DOWNWARDS BLACK ARROW
+cp;2B05;age=4.0;Emoji;ExtPict;na=LEFTWARDS BLACK ARROW
+cp;2B06;age=4.0;Emoji;ExtPict;na=UPWARDS BLACK ARROW
+cp;2B07;age=4.0;Emoji;ExtPict;na=DOWNWARDS BLACK ARROW
cp;2B08;age=4.0;na=NORTH EAST BLACK ARROW
cp;2B09;age=4.0;na=NORTH WEST BLACK ARROW
cp;2B0A;age=4.0;na=SOUTH EAST BLACK ARROW
@@ -12611,8 +12711,8 @@ cp;2B18;age=5.0;na=DIAMOND WITH TOP HALF BLACK;vo=U
cp;2B19;age=5.0;na=DIAMOND WITH BOTTOM HALF BLACK;vo=U
# Squares
cp;2B1A;age=5.0;na=DOTTED SQUARE;vo=U
-cp;2B1B;age=5.1;ea=W;Emoji;Emoji_Presentation;na=BLACK LARGE SQUARE;vo=U
-cp;2B1C;age=5.1;ea=W;Emoji;Emoji_Presentation;na=WHITE LARGE SQUARE;vo=U
+cp;2B1B;age=5.1;ea=W;Emoji;EPres;ExtPict;na=BLACK LARGE SQUARE;vo=U
+cp;2B1C;age=5.1;ea=W;Emoji;EPres;ExtPict;na=WHITE LARGE SQUARE;vo=U
cp;2B1D;age=5.1;na=BLACK VERY SMALL SQUARE;vo=U
cp;2B1E;age=5.1;na=WHITE VERY SMALL SQUARE;vo=U
# Pentagons
@@ -12673,14 +12773,14 @@ cp;2B4D;na=DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW
cp;2B4E;na=SHORT SLANTED NORTH ARROW
cp;2B4F;na=SHORT BACKSLANTED SOUTH ARROW
# Stars
-cp;2B50;age=5.1;ea=W;Emoji;Emoji_Presentation;na=WHITE MEDIUM STAR;vo=U
+cp;2B50;age=5.1;ea=W;Emoji;EPres;ExtPict;na=WHITE MEDIUM STAR;vo=U
cp;2B51;age=5.1;na=BLACK SMALL STAR;vo=U
cp;2B52;age=5.1;na=WHITE SMALL STAR;vo=U
# Pentagons
cp;2B53;age=5.1;na=BLACK RIGHT-POINTING PENTAGON;vo=U
cp;2B54;age=5.1;na=WHITE RIGHT-POINTING PENTAGON;vo=U
# Traffic sign from ARIB STD B24
-cp;2B55;age=5.2;ea=W;Emoji;Emoji_Presentation;lb=AI;na=HEAVY LARGE CIRCLE;vo=U
+cp;2B55;age=5.2;ea=W;Emoji;EPres;ExtPict;lb=AI;na=HEAVY LARGE CIRCLE;vo=U
# Dictionary and map symbols from ARIB STD B24
cp;2B56;age=5.2;ea=A;lb=AI;na=HEAVY OVAL WITH OVAL INSIDE;vo=U
cp;2B57;age=5.2;ea=A;lb=AI;na=HEAVY CIRCLE WITH CIRCLE INSIDE;vo=U
@@ -12794,7 +12894,10 @@ cp;2BB7;na=RIBBON ARROW RIGHT DOWN
# Keyboard symbols
cp;2BB8;na=UPWARDS WHITE ARROW FROM BAR WITH HORIZONTAL BAR;vo=U
cp;2BB9;na=UP ARROWHEAD IN A RECTANGLE BOX;vo=U
-unassigned;2BBA..2BBC;Pat_Syn;vo=U
+# Symbols used in chess notation
+cp;2BBA;age=11.0;na=OVERLAPPING WHITE SQUARES;vo=U
+cp;2BBB;age=11.0;na=OVERLAPPING WHITE AND BLACK SQUARES;vo=U
+cp;2BBC;age=11.0;na=OVERLAPPING BLACK SQUARES;vo=U
# Geometric symbols
cp;2BBD;na=BALLOT BOX WITH LIGHT X;vo=U
cp;2BBE;na=CIRCLED X;vo=U
@@ -12822,13 +12925,59 @@ cp;2BCF;na=ROTATED WHITE FOUR POINTED CUSP;vo=U
cp;2BD0;na=SQUARE POSITION INDICATOR;vo=U
cp;2BD1;na=UNCERTAINTY SIGN;vo=U
cp;2BD2;age=10.0;na=GROUP MARK
-unassigned;2BD3..2BEB;Pat_Syn;vo=U
+# Astrological symbols for Pluto
+cp;2BD3;age=11.0;na=PLUTO FORM TWO;vo=U
+cp;2BD4;age=11.0;na=PLUTO FORM THREE;vo=U
+cp;2BD5;age=11.0;na=PLUTO FORM FOUR;vo=U
+cp;2BD6;age=11.0;na=PLUTO FORM FIVE;vo=U
+# Miscellaneous astrological symbols
+cp;2BD7;age=11.0;na=TRANSPLUTO;vo=U
+cp;2BD8;age=11.0;na=PROSERPINA;vo=U
+cp;2BD9;age=11.0;na=ASTRAEA;vo=U
+cp;2BDA;age=11.0;na=HYGIEA;vo=U
+cp;2BDB;age=11.0;na=PHOLUS;vo=U
+cp;2BDC;age=11.0;na=NESSUS;vo=U
+cp;2BDD;age=11.0;na=WHITE MOON SELENA;vo=U
+cp;2BDE;age=11.0;na=BLACK DIAMOND ON CROSS;vo=U
+cp;2BDF;age=11.0;na=TRUE LIGHT MOON ARTA;vo=U
+# Uranian astrological symbols
+cp;2BE0;age=11.0;na=CUPIDO;vo=U
+cp;2BE1;age=11.0;na=HADES;vo=U
+cp;2BE2;age=11.0;na=ZEUS;vo=U
+cp;2BE3;age=11.0;na=KRONOS;vo=U
+cp;2BE4;age=11.0;na=APOLLON;vo=U
+cp;2BE5;age=11.0;na=ADMETOS;vo=U
+cp;2BE6;age=11.0;na=VULCANUS;vo=U
+cp;2BE7;age=11.0;na=POSEIDON;vo=U
+# Half star characters
+cp;2BE8;age=11.0;na=LEFT HALF BLACK STAR;vo=U
+cp;2BE9;age=11.0;na=RIGHT HALF BLACK STAR;vo=U
+cp;2BEA;age=11.0;na=STAR WITH LEFT HALF BLACK;vo=U
+cp;2BEB;age=11.0;na=STAR WITH RIGHT HALF BLACK;vo=U
# Two-headed arrow symbols
cp;2BEC;age=8.0;na=LEFTWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS
cp;2BED;age=8.0;na=UPWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS
cp;2BEE;age=8.0;na=RIGHTWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS
cp;2BEF;age=8.0;na=DOWNWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS
-unassigned;2BF0..2BFF;Pat_Syn;vo=U
+# Astrological symbols for Eris and Sedna
+cp;2BF0;age=11.0;na=ERIS FORM ONE;vo=U
+cp;2BF1;age=11.0;na=ERIS FORM TWO;vo=U
+cp;2BF2;age=11.0;na=SEDNA;vo=U
+# Russian astrological aspects
+cp;2BF3;age=11.0;na=RUSSIAN ASTROLOGICAL SYMBOL VIGINTILE;vo=U
+cp;2BF4;age=11.0;na=RUSSIAN ASTROLOGICAL SYMBOL NOVILE;vo=U
+cp;2BF5;age=11.0;na=RUSSIAN ASTROLOGICAL SYMBOL QUINTILE;vo=U
+cp;2BF6;age=11.0;na=RUSSIAN ASTROLOGICAL SYMBOL BINOVILE;vo=U
+cp;2BF7;age=11.0;na=RUSSIAN ASTROLOGICAL SYMBOL SENTAGON;vo=U
+cp;2BF8;age=11.0;na=RUSSIAN ASTROLOGICAL SYMBOL TREDECILE;vo=U
+# Symbols used in chess notation
+cp;2BF9;age=11.0;na=EQUALS SIGN WITH INFINITY BELOW;vo=U
+cp;2BFA;age=11.0;na=UNITED SYMBOL;vo=U
+cp;2BFB;age=11.0;na=SEPARATED SYMBOL;vo=U
+cp;2BFC;age=11.0;na=DOUBLED SYMBOL;vo=U
+cp;2BFD;age=11.0;na=PASSED SYMBOL;vo=U
+cp;2BFE;age=11.0;Bidi_M;bmg=221F;na=REVERSED RIGHT ANGLE;vo=U
+unassigned;2BFF;Pat_Syn;vo=U
block;2C00..2C5F;age=4.1;Alpha;blk=Glagolitic;Cased;CWCM;gc=Ll;Gr_Base;IDC;IDS;lb=AL;SB=LO;sc=Glag;WB=LE;XIDC;XIDS
# 2C00..2C5F Glagolitic
@@ -13444,9 +13593,8 @@ cp;2E40;age=7.0;Dash;gc=Pd;na=DOUBLE HYPHEN
# Reversed punctuation
cp;2E41;age=7.0;na=REVERSED COMMA;Term
cp;2E42;age=7.0;gc=Ps;lb=OP;na=DOUBLE LOW-REVERSED-9 QUOTATION MARK;QMark;SB=CL
-# Dash
-cp;2E43;age=9.0;na=DASH WITH LEFT UPTURN;scx=Cyrl Glag
# Miscellaneous punctuation
+cp;2E43;age=9.0;na=DASH WITH LEFT UPTURN;scx=Cyrl Glag
cp;2E44;age=9.0;na=DOUBLE SUSPENSION MARK
# Typicon punctuation
cp;2E45;age=10.0;na=INVERTED LOW KAVYKA
@@ -13454,7 +13602,13 @@ cp;2E46;age=10.0;na=INVERTED LOW KAVYKA WITH KAVYKA ABOVE
cp;2E47;age=10.0;na=LOW KAVYKA
cp;2E48;age=10.0;na=LOW KAVYKA WITH DOT
cp;2E49;age=10.0;na=DOUBLE STACKED COMMA
-unassigned;2E4A..2E7F;Pat_Syn
+# Historic punctuation
+cp;2E4A;age=11.0;na=DOTTED SOLIDUS
+cp;2E4B;age=11.0;lb=AL;na=TRIPLE DAGGER
+cp;2E4C;age=11.0;na=MEDIEVAL COMMA;Term
+cp;2E4D;age=11.0;lb=AL;na=PARAGRAPHUS MARK
+cp;2E4E;age=11.0;na=PUNCTUS ELEVATUS MARK;Term
+unassigned;2E4F..2E7F;Pat_Syn
block;2E80..2EFF;age=3.0;bc=ON;blk=CJK_Radicals_Sup;ea=W;gc=So;Gr_Base;lb=ID;Radical;sc=Hani;vo=U
# 2E80..2EFF CJK Radicals Supplement
@@ -13819,7 +13973,7 @@ unassigned;2FFC..2FFF;vo=U
block;3000..303F;age=1.1;bc=ON;blk=CJK_Symbols;ea=W;gc=Nl;Gr_Base;lb=ID;SB=LE;sc=Zyyy;scx=Bopo Hang Hani Hira Kana Yiii;vo=U
# 3000..303F CJK Symbols and Punctuation
# CJK symbols and punctuation
-cp;3000;bc=WS;CWKCF;dm=0020;dt=Wide;ea=F;gc=Zs;lb=BA;na=IDEOGRAPHIC SPACE;NFKC_CF=0020;NFKC_QC=N;NFKD_QC=N;SB=SP;scx=<script>;WSpace
+cp;3000;bc=WS;CWKCF;dm=0020;dt=Wide;ea=F;gc=Zs;lb=BA;na=IDEOGRAPHIC SPACE;NFKC_CF=0020;NFKC_QC=N;NFKD_QC=N;SB=SP;scx=<script>;WB=WSegSpace;WSpace
cp;3001;gc=Po;lb=CL;na=IDEOGRAPHIC COMMA;Pat_Syn;SB=SC;Term;vo=Tu
cp;3002;gc=Po;lb=CL;na=IDEOGRAPHIC FULL STOP;Pat_Syn;SB=ST;STerm;Term;vo=Tu
cp;3003;gc=Po;na=DITTO MARK;Pat_Syn;SB=XX;scx=Bopo Hang Hani Hira Kana
@@ -13852,11 +14006,12 @@ cp;3018;Bidi_M;bmg=3019;bpb=3019;bpt=o;gc=Ps;lb=OP;na=LEFT WHITE TORTOISE SHELL
cp;3019;Bidi_M;bmg=3018;bpb=3018;bpt=c;gc=Pe;lb=CL;na=RIGHT WHITE TORTOISE SHELL BRACKET;Pat_Syn;SB=CL;vo=Tr
cp;301A;Bidi_M;bmg=301B;bpb=301B;bpt=o;gc=Ps;lb=OP;na=LEFT WHITE SQUARE BRACKET;Pat_Syn;SB=CL;vo=Tr
cp;301B;Bidi_M;bmg=301A;bpb=301A;bpt=c;gc=Pe;lb=CL;na=RIGHT WHITE SQUARE BRACKET;Pat_Syn;SB=CL;vo=Tr
-# CJK symbols and punctuation
+# CJK punctuation
cp;301C;Dash;gc=Pd;lb=NS;na=WAVE DASH;Pat_Syn;SB=XX;scx=Bopo Hang Hani Hira Kana;vo=Tr
cp;301D;gc=Ps;lb=OP;na=REVERSED DOUBLE PRIME QUOTATION MARK;Pat_Syn;QMark;SB=CL;scx=Bopo Hang Hani Hira Kana;vo=Tr
cp;301E;gc=Pe;lb=CL;na=DOUBLE PRIME QUOTATION MARK;Pat_Syn;QMark;SB=CL;scx=Bopo Hang Hani Hira Kana;vo=Tr
cp;301F;gc=Pe;lb=CL;na=LOW DOUBLE PRIME QUOTATION MARK;Pat_Syn;QMark;SB=CL;scx=Bopo Hang Hani Hira Kana;vo=Tr
+# CJK symbol
cp;3020;gc=So;na=POSTAL MARK FACE;Pat_Syn;SB=XX;scx=<script>
# Suzhou numerals
cp;3021;Alpha;bc=L;IDC;Ideo;IDS;na=HANGZHOU NUMERAL ONE;nt=Nu;nv=1;sc=Hani;scx=<script>;XIDC;XIDS
@@ -13868,7 +14023,7 @@ cp;3026;Alpha;bc=L;IDC;Ideo;IDS;na=HANGZHOU NUMERAL SIX;nt=Nu;nv=6;sc=Hani;scx=<
cp;3027;Alpha;bc=L;IDC;Ideo;IDS;na=HANGZHOU NUMERAL SEVEN;nt=Nu;nv=7;sc=Hani;scx=<script>;XIDC;XIDS
cp;3028;Alpha;bc=L;IDC;Ideo;IDS;na=HANGZHOU NUMERAL EIGHT;nt=Nu;nv=8;sc=Hani;scx=<script>;XIDC;XIDS
cp;3029;Alpha;bc=L;IDC;Ideo;IDS;na=HANGZHOU NUMERAL NINE;nt=Nu;nv=9;sc=Hani;scx=<script>;XIDC;XIDS
-# Diacritics
+# Combining tone marks
cp;302A;bc=NSM;ccc=218;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;IDC;jt=T;lb=CM;na=IDEOGRAPHIC LEVEL TONE MARK;SB=EX;sc=Zinh;scx=Bopo Hani;WB=Extend;XIDC
cp;302B;bc=NSM;ccc=228;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;IDC;jt=T;lb=CM;na=IDEOGRAPHIC RISING TONE MARK;SB=EX;sc=Zinh;scx=Bopo Hani;WB=Extend;XIDC
cp;302C;bc=NSM;ccc=232;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;IDC;jt=T;lb=CM;na=IDEOGRAPHIC DEPARTING TONE MARK;SB=EX;sc=Zinh;scx=Bopo Hani;WB=Extend;XIDC
@@ -13876,7 +14031,7 @@ cp;302D;bc=NSM;ccc=222;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;IDC;jt=T;lb=CM;na=IDE
cp;302E;bc=L;ccc=224;Dia;gc=Mc;GCB=EX;-Gr_Base;Gr_Ext;IDC;lb=CM;na=HANGUL SINGLE DOT TONE MARK;SB=EX;sc=Hang;scx=<script>;WB=Extend;XIDC
cp;302F;bc=L;ccc=224;Dia;gc=Mc;GCB=EX;-Gr_Base;Gr_Ext;IDC;lb=CM;na=HANGUL DOUBLE DOT TONE MARK;SB=EX;sc=Hang;scx=<script>;WB=Extend;XIDC
# Other CJK punctuation
-cp;3030;Dash;Emoji;gc=Pd;na=WAVY DASH;Pat_Syn;SB=XX;scx=Bopo Hang Hani Hira Kana;vo=Tr
+cp;3030;Dash;Emoji;ExtPict;gc=Pd;na=WAVY DASH;Pat_Syn;SB=XX;scx=Bopo Hang Hani Hira Kana;vo=Tr
# Kana repeat marks
cp;3031;Alpha;bc=L;CI;Ext;gc=Lm;IDC;IDS;na=VERTICAL KANA REPEAT MARK;scx=Hira Kana;WB=KA;XIDC;XIDS
cp;3032;Alpha;bc=L;CI;Ext;gc=Lm;IDC;IDS;na=VERTICAL KANA REPEAT WITH VOICED SOUND MARK;scx=Hira Kana;WB=KA;XIDC;XIDS
@@ -13893,7 +14048,7 @@ cp;303A;age=3.0;Alpha;bc=L;CWKCF;dm=5345;dt=Com;IDC;Ideo;IDS;na=HANGZHOU NUMERAL
# Other CJK punctuation
cp;303B;age=3.2;Alpha;bc=L;CI;gc=Lm;IDC;IDS;lb=NS;na=VERTICAL IDEOGRAPHIC ITERATION MARK;sc=Hani;scx=<script>;WB=LE;XIDC;XIDS
cp;303C;age=3.2;Alpha;bc=L;gc=Lo;IDC;IDS;lb=NS;na=MASU MARK;scx=Hani Hira Kana;WB=LE;XIDC;XIDS
-cp;303D;age=3.2;Emoji;gc=Po;na=PART ALTERNATION MARK;SB=XX;scx=Hani Hira Kana
+cp;303D;age=3.2;Emoji;ExtPict;gc=Po;na=PART ALTERNATION MARK;SB=XX;scx=Hani Hira Kana
# Special CJK indicators
cp;303E;age=3.0;gc=So;na=IDEOGRAPHIC VARIATION INDICATOR;SB=XX;scx=Hani
cp;303F;ea=N;gc=So;na=IDEOGRAPHIC HALF FILL SPACE;SB=XX;scx=Hani
@@ -14153,7 +14308,7 @@ cp;312C;na=BOPOMOFO LETTER GN
# Miscellaneous additions
cp;312D;age=5.1;na=BOPOMOFO LETTER IH
cp;312E;age=10.0;na=BOPOMOFO LETTER O WITH DOT ABOVE
-unassigned;312F;vo=U
+cp;312F;age=11.0;na=BOPOMOFO LETTER NN
block;3130..318F;age=1.1;Alpha;blk=Compat_Jamo;CWKCF;dt=Com;ea=W;gc=Lo;Gr_Base;IDC;IDS;lb=ID;NFKC_QC=N;NFKD_QC=N;SB=LE;sc=Hang;vo=U;WB=LE;XIDC;XIDS
# 3130..318F Hangul Compatibility Jamo
@@ -14541,9 +14696,9 @@ cp;3293;dm=793E;na=CIRCLED IDEOGRAPH SOCIETY;NFKC_CF=793E;scx=Hani
cp;3294;dm=540D;na=CIRCLED IDEOGRAPH NAME;NFKC_CF=540D;scx=Hani
cp;3295;dm=7279;na=CIRCLED IDEOGRAPH SPECIAL;NFKC_CF=7279;scx=Hani
cp;3296;dm=8CA1;na=CIRCLED IDEOGRAPH FINANCIAL;NFKC_CF=8CA1;scx=Hani
-cp;3297;dm=795D;Emoji;na=CIRCLED IDEOGRAPH CONGRATULATION;NFKC_CF=795D;scx=Hani
+cp;3297;dm=795D;Emoji;ExtPict;na=CIRCLED IDEOGRAPH CONGRATULATION;NFKC_CF=795D;scx=Hani
cp;3298;dm=52B4;na=CIRCLED IDEOGRAPH LABOR;NFKC_CF=52B4;scx=Hani
-cp;3299;dm=79D8;Emoji;na=CIRCLED IDEOGRAPH SECRET;NFKC_CF=79D8;scx=Hani
+cp;3299;dm=79D8;Emoji;ExtPict;na=CIRCLED IDEOGRAPH SECRET;NFKC_CF=79D8;scx=Hani
cp;329A;dm=7537;na=CIRCLED IDEOGRAPH MALE;NFKC_CF=7537;scx=Hani
cp;329B;dm=5973;na=CIRCLED IDEOGRAPH FEMALE;NFKC_CF=5973;scx=Hani
cp;329C;dm=9069;na=CIRCLED IDEOGRAPH SUITABLE;NFKC_CF=9069;scx=Hani
@@ -14998,8 +15153,8 @@ cp;4DFE;na=HEXAGRAM FOR AFTER COMPLETION
cp;4DFF;na=HEXAGRAM FOR BEFORE COMPLETION
block;4E00..9FFF;age=1.1;Alpha;blk=CJK;ea=W;gc=Lo;Gr_Base;IDC;Ideo;IDS;lb=ID;SB=LE;sc=Hani;UIdeo;vo=U;XIDC;XIDS
-# 4E00..9FEA CJK Unified Ideographs
-algnamesrange;4E00..9FEA;han;CJK UNIFIED IDEOGRAPH-
+# 4E00..9FEF CJK Unified Ideographs
+algnamesrange;4E00..9FEF;han;CJK UNIFIED IDEOGRAPH-
cp;4E00;nt=Nu;nv=1
cp;4E03;nt=Nu;nv=7
cp;4E07;nt=Nu;nv=10000
@@ -15057,7 +15212,8 @@ cp;9FC4..9FCB;age=5.2
cp;9FCC;age=6.1
cp;9FCD..9FD5;age=8.0
cp;9FD6..9FEA;age=10.0
-unassigned;9FEB..9FFF;ea=W;lb=ID;vo=U
+cp;9FEB..9FEF;age=11.0
+unassigned;9FF0..9FFF;ea=W;lb=ID;vo=U
block;A000..A48F;age=3.0;Alpha;blk=Yi_Syllables;ea=W;gc=Lo;Gr_Base;IDC;IDS;lb=ID;SB=LE;sc=Yiii;vo=U;WB=LE;XIDC;XIDS
# A000..A48F Yi Syllables
@@ -17053,7 +17209,7 @@ cp;A79C;age=7.0;cf=A79D;CWCF;CWKCF;CWL;gc=Lu;na=LATIN CAPITAL LETTER VOLAPUK OE;
cp;A79D;age=7.0;CWT;CWU;Lower;na=LATIN SMALL LETTER VOLAPUK OE;stc=A79C;suc=A79C
cp;A79E;age=7.0;cf=A79F;CWCF;CWKCF;CWL;gc=Lu;na=LATIN CAPITAL LETTER VOLAPUK UE;NFKC_CF=A79F;SB=UP;scf=A79F;slc=A79F;Upper
cp;A79F;age=7.0;CWT;CWU;Lower;na=LATIN SMALL LETTER VOLAPUK UE;stc=A79E;suc=A79E
-# Latvian letters for pre-1921 orthography
+# Letters for pre-1921 Latvian orthography
cp;A7A0;age=6.0;cf=A7A1;CWCF;CWKCF;CWL;gc=Lu;na=LATIN CAPITAL LETTER G WITH OBLIQUE STROKE;NFKC_CF=A7A1;SB=UP;scf=A7A1;slc=A7A1;Upper
cp;A7A1;age=6.0;CWT;CWU;Lower;na=LATIN SMALL LETTER G WITH OBLIQUE STROKE;stc=A7A0;suc=A7A0
cp;A7A2;age=6.0;cf=A7A3;CWCF;CWKCF;CWL;gc=Lu;na=LATIN CAPITAL LETTER K WITH OBLIQUE STROKE;NFKC_CF=A7A3;SB=UP;scf=A7A3;slc=A7A3;Upper
@@ -17071,7 +17227,8 @@ cp;A7AC;age=7.0;cf=0261;CWCF;CWKCF;CWL;gc=Lu;na=LATIN CAPITAL LETTER SCRIPT G;NF
cp;A7AD;age=7.0;cf=026C;CWCF;CWKCF;CWL;gc=Lu;na=LATIN CAPITAL LETTER L WITH BELT;NFKC_CF=026C;SB=UP;scf=026C;slc=026C;Upper
# Letter for West African languages
cp;A7AE;age=9.0;cf=026A;CWCF;CWKCF;CWL;gc=Lu;na=LATIN CAPITAL LETTER SMALL CAPITAL I;NFKC_CF=026A;SB=UP;scf=026A;slc=026A;Upper
-unassigned;A7AF
+# Letter for Japanese phonemic transcription
+cp;A7AF;age=11.0;-CWCM;Lower;na=LATIN LETTER SMALL CAPITAL Q
# Letters for Americanist orthographies
cp;A7B0;age=7.0;cf=029E;CWCF;CWKCF;CWL;gc=Lu;na=LATIN CAPITAL LETTER TURNED K;NFKC_CF=029E;SB=UP;scf=029E;slc=029E;Upper
cp;A7B1;age=7.0;cf=0287;CWCF;CWKCF;CWL;gc=Lu;na=LATIN CAPITAL LETTER TURNED T;NFKC_CF=0287;SB=UP;scf=0287;slc=0287;Upper
@@ -17084,7 +17241,10 @@ cp;A7B4;age=8.0;cf=A7B5;CWCF;CWKCF;CWL;gc=Lu;na=LATIN CAPITAL LETTER BETA;NFKC_C
cp;A7B5;age=8.0;CWT;CWU;Lower;na=LATIN SMALL LETTER BETA;stc=A7B4;suc=A7B4
cp;A7B6;age=8.0;cf=A7B7;CWCF;CWKCF;CWL;gc=Lu;na=LATIN CAPITAL LETTER OMEGA;NFKC_CF=A7B7;SB=UP;scf=A7B7;slc=A7B7;Upper
cp;A7B7;age=8.0;CWT;CWU;Lower;na=LATIN SMALL LETTER OMEGA;stc=A7B6;suc=A7B6
-unassigned;A7B8..A7F6
+# Letters for Mazahua (Mexico)
+cp;A7B8;age=11.0;cf=A7B9;CWCF;CWKCF;CWL;gc=Lu;na=LATIN CAPITAL LETTER U WITH STROKE;NFKC_CF=A7B9;SB=UP;scf=A7B9;slc=A7B9;Upper
+cp;A7B9;age=11.0;CWT;CWU;Lower;na=LATIN SMALL LETTER U WITH STROKE;stc=A7B8;suc=A7B8
+unassigned;A7BA..A7F6
# Additional letter
cp;A7F7;age=7.0;-Cased;-CWCM;gc=Lo;na=LATIN EPIGRAPHIC LETTER SIDEWAYS I;SB=LE
# Additions for Extended IPA
@@ -17152,22 +17312,22 @@ cp;A82A;-Alpha;bc=ON;gc=So;-IDC;-IDS;InSC=Other;na=SYLOTI NAGRI POETRY MARK-3;SB
cp;A82B;-Alpha;bc=ON;gc=So;-IDC;-IDS;InSC=Other;na=SYLOTI NAGRI POETRY MARK-4;SB=XX;WB=XX;-XIDC;-XIDS
unassigned;A82C..A82F
-block;A830..A83F;age=5.2;blk=Indic_Number_Forms;gc=No;Gr_Base;lb=AL;sc=Zyyy;scx=Deva Gujr Guru Knda Kthi Mahj Modi Sind Takr Tirh
+block;A830..A83F;age=5.2;blk=Indic_Number_Forms;gc=No;Gr_Base;lb=AL;sc=Zyyy;scx=Deva Dogr Gujr Guru Khoj Kthi Mahj Modi Sind Takr Tirh
# A830..A83F Common Indic Number Forms
# Number forms
-cp;A830;na=NORTH INDIC FRACTION ONE QUARTER;nt=Nu;nv=1/4
-cp;A831;na=NORTH INDIC FRACTION ONE HALF;nt=Nu;nv=1/2
-cp;A832;na=NORTH INDIC FRACTION THREE QUARTERS;nt=Nu;nv=3/4
-cp;A833;na=NORTH INDIC FRACTION ONE SIXTEENTH;nt=Nu;nv=1/16
-cp;A834;na=NORTH INDIC FRACTION ONE EIGHTH;nt=Nu;nv=1/8
-cp;A835;na=NORTH INDIC FRACTION THREE SIXTEENTHS;nt=Nu;nv=3/16
-cp;A836;gc=So;na=NORTH INDIC QUARTER MARK;scx=Deva Gujr Guru Kthi Mahj Modi Sind Takr Tirh
+cp;A830;na=NORTH INDIC FRACTION ONE QUARTER;nt=Nu;nv=1/4;scx=Deva Dogr Gujr Guru Khoj Knda Kthi Mahj Mlym Modi Sind Takr Tirh
+cp;A831;na=NORTH INDIC FRACTION ONE HALF;nt=Nu;nv=1/2;scx=Deva Dogr Gujr Guru Khoj Knda Kthi Mahj Mlym Modi Sind Takr Tirh
+cp;A832;na=NORTH INDIC FRACTION THREE QUARTERS;nt=Nu;nv=3/4;scx=Deva Dogr Gujr Guru Khoj Knda Kthi Mahj Mlym Modi Sind Takr Tirh
+cp;A833;na=NORTH INDIC FRACTION ONE SIXTEENTH;nt=Nu;nv=1/16;scx=Deva Dogr Gujr Guru Khoj Knda Kthi Mahj Modi Sind Takr Tirh
+cp;A834;na=NORTH INDIC FRACTION ONE EIGHTH;nt=Nu;nv=1/8;scx=Deva Dogr Gujr Guru Khoj Knda Kthi Mahj Modi Sind Takr Tirh
+cp;A835;na=NORTH INDIC FRACTION THREE SIXTEENTHS;nt=Nu;nv=3/16;scx=Deva Dogr Gujr Guru Khoj Knda Kthi Mahj Modi Sind Takr Tirh
+cp;A836;gc=So;na=NORTH INDIC QUARTER MARK
# Miscellaneous sign
-cp;A837;gc=So;na=NORTH INDIC PLACEHOLDER MARK;scx=Deva Gujr Guru Kthi Mahj Modi Sind Takr Tirh
+cp;A837;gc=So;na=NORTH INDIC PLACEHOLDER MARK
# Currency sign
-cp;A838;bc=ET;gc=Sc;lb=PO;na=NORTH INDIC RUPEE MARK;scx=Deva Gujr Guru Kthi Mahj Modi Sind Takr Tirh
+cp;A838;bc=ET;gc=Sc;lb=PO;na=NORTH INDIC RUPEE MARK
# Miscellaneous sign
-cp;A839;bc=ET;gc=So;na=NORTH INDIC QUANTITY MARK;scx=Deva Gujr Guru Kthi Mahj Modi Sind Takr Tirh
+cp;A839;bc=ET;gc=So;na=NORTH INDIC QUANTITY MARK
unassigned;A83A..A83F
block;A840..A87F;age=5.0;Alpha;blk=Phags_Pa;gc=Lo;Gr_Base;IDC;IDS;InSC=Consonant;jt=D;lb=AL;SB=LE;sc=Phag;WB=LE;XIDC;XIDS
@@ -17300,7 +17460,7 @@ cp;A8B0;na=SAURASHTRA LETTER SSA
cp;A8B1;na=SAURASHTRA LETTER SA
cp;A8B2;na=SAURASHTRA LETTER HA
cp;A8B3;na=SAURASHTRA LETTER LLA
-cp;A8B4;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Consonant_Final;lb=CM;na=SAURASHTRA CONSONANT SIGN HAARU;SB=EX;WB=Extend;-XIDS
+cp;A8B4;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Consonant_Medial;lb=CM;na=SAURASHTRA CONSONANT SIGN HAARU;SB=EX;WB=Extend;-XIDS
# Dependent vowel signs
cp;A8B5;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=SAURASHTRA VOWEL SIGN AA;SB=EX;WB=Extend;-XIDS
cp;A8B6;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=SAURASHTRA VOWEL SIGN I;SB=EX;WB=Extend;-XIDS
@@ -17338,43 +17498,45 @@ cp;A8D8;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=SAURASHTRA DIGIT EIGHT;nt=De;nv=8
cp;A8D9;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=SAURASHTRA DIGIT NINE;nt=De;nv=9;SB=NU;WB=NU;-XIDS
unassigned;A8DA..A8DF
-block;A8E0..A8FF;age=5.2;bc=NSM;blk=Devanagari_Ext;ccc=230;CI;Dia;gc=Mn;GCB=EX;Gr_Ext;IDC;InPC=Top;InSC=Cantillation_Mark;jt=T;lb=CM;SB=EX;sc=Deva;WB=Extend;XIDC
+block;A8E0..A8FF;age=5.2;bc=NSM;blk=Devanagari_Ext;ccc=230;CI;gc=Mn;GCB=EX;Gr_Ext;IDC;InPC=Top;InSC=Cantillation_Mark;jt=T;lb=CM;SB=EX;sc=Deva;WB=Extend;XIDC
# A8E0..A8FF Devanagari Extended
# Cantillation marks (svara) for the Samaveda
-cp;A8E0;na=COMBINING DEVANAGARI DIGIT ZERO
-cp;A8E1;na=COMBINING DEVANAGARI DIGIT ONE
-cp;A8E2;na=COMBINING DEVANAGARI DIGIT TWO
-cp;A8E3;na=COMBINING DEVANAGARI DIGIT THREE
-cp;A8E4;na=COMBINING DEVANAGARI DIGIT FOUR
-cp;A8E5;na=COMBINING DEVANAGARI DIGIT FIVE
-cp;A8E6;na=COMBINING DEVANAGARI DIGIT SIX
-cp;A8E7;na=COMBINING DEVANAGARI DIGIT SEVEN
-cp;A8E8;na=COMBINING DEVANAGARI DIGIT EIGHT
-cp;A8E9;na=COMBINING DEVANAGARI DIGIT NINE
-cp;A8EA;na=COMBINING DEVANAGARI LETTER A
-cp;A8EB;na=COMBINING DEVANAGARI LETTER U
-cp;A8EC;na=COMBINING DEVANAGARI LETTER KA
-cp;A8ED;na=COMBINING DEVANAGARI LETTER NA
-cp;A8EE;na=COMBINING DEVANAGARI LETTER PA
-cp;A8EF;na=COMBINING DEVANAGARI LETTER RA
-cp;A8F0;na=COMBINING DEVANAGARI LETTER VI
-cp;A8F1;na=COMBINING DEVANAGARI SIGN AVAGRAHA;scx=Beng Deva
+cp;A8E0;Dia;na=COMBINING DEVANAGARI DIGIT ZERO
+cp;A8E1;Dia;na=COMBINING DEVANAGARI DIGIT ONE
+cp;A8E2;Dia;na=COMBINING DEVANAGARI DIGIT TWO
+cp;A8E3;Dia;na=COMBINING DEVANAGARI DIGIT THREE
+cp;A8E4;Dia;na=COMBINING DEVANAGARI DIGIT FOUR
+cp;A8E5;Dia;na=COMBINING DEVANAGARI DIGIT FIVE
+cp;A8E6;Dia;na=COMBINING DEVANAGARI DIGIT SIX
+cp;A8E7;Dia;na=COMBINING DEVANAGARI DIGIT SEVEN
+cp;A8E8;Dia;na=COMBINING DEVANAGARI DIGIT EIGHT
+cp;A8E9;Dia;na=COMBINING DEVANAGARI DIGIT NINE
+cp;A8EA;Dia;na=COMBINING DEVANAGARI LETTER A
+cp;A8EB;Dia;na=COMBINING DEVANAGARI LETTER U
+cp;A8EC;Dia;na=COMBINING DEVANAGARI LETTER KA
+cp;A8ED;Dia;na=COMBINING DEVANAGARI LETTER NA
+cp;A8EE;Dia;na=COMBINING DEVANAGARI LETTER PA
+cp;A8EF;Dia;na=COMBINING DEVANAGARI LETTER RA
+cp;A8F0;Dia;na=COMBINING DEVANAGARI LETTER VI
+cp;A8F1;Dia;na=COMBINING DEVANAGARI SIGN AVAGRAHA;scx=Beng Deva
# Marks of nasalization
-cp;A8F2;Alpha;bc=L;ccc=0;-CI;-Dia;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;InPC=NA;InSC=Bindu;jt=U;lb=AL;na=DEVANAGARI SIGN SPACING CANDRABINDU;SB=LE;WB=LE;XIDS
-cp;A8F3;Alpha;bc=L;ccc=0;-CI;-Dia;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;InPC=NA;InSC=Bindu;jt=U;lb=AL;na=DEVANAGARI SIGN CANDRABINDU VIRAMA;SB=LE;scx=Deva Taml;WB=LE;XIDS
-cp;A8F4;Alpha;bc=L;ccc=0;-CI;-Dia;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;InPC=NA;InSC=Other;jt=U;lb=AL;na=DEVANAGARI SIGN DOUBLE CANDRABINDU VIRAMA;SB=LE;WB=LE;XIDS
-cp;A8F5;Alpha;bc=L;ccc=0;-CI;-Dia;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;InPC=NA;InSC=Other;jt=U;lb=AL;na=DEVANAGARI SIGN CANDRABINDU TWO;SB=LE;WB=LE;XIDS
-cp;A8F6;Alpha;bc=L;ccc=0;-CI;-Dia;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;InPC=NA;InSC=Other;jt=U;lb=AL;na=DEVANAGARI SIGN CANDRABINDU THREE;SB=LE;WB=LE;XIDS
-cp;A8F7;Alpha;bc=L;ccc=0;-CI;-Dia;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;InPC=NA;InSC=Other;jt=U;lb=AL;na=DEVANAGARI SIGN CANDRABINDU AVAGRAHA;SB=LE;WB=LE;XIDS
+cp;A8F2;Alpha;bc=L;ccc=0;-CI;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;InPC=NA;InSC=Bindu;jt=U;lb=AL;na=DEVANAGARI SIGN SPACING CANDRABINDU;SB=LE;WB=LE;XIDS
+cp;A8F3;Alpha;bc=L;ccc=0;-CI;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;InPC=NA;InSC=Bindu;jt=U;lb=AL;na=DEVANAGARI SIGN CANDRABINDU VIRAMA;SB=LE;scx=Deva Taml;WB=LE;XIDS
+cp;A8F4;Alpha;bc=L;ccc=0;-CI;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;InPC=NA;InSC=Other;jt=U;lb=AL;na=DEVANAGARI SIGN DOUBLE CANDRABINDU VIRAMA;SB=LE;WB=LE;XIDS
+cp;A8F5;Alpha;bc=L;ccc=0;-CI;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;InPC=NA;InSC=Other;jt=U;lb=AL;na=DEVANAGARI SIGN CANDRABINDU TWO;SB=LE;WB=LE;XIDS
+cp;A8F6;Alpha;bc=L;ccc=0;-CI;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;InPC=NA;InSC=Other;jt=U;lb=AL;na=DEVANAGARI SIGN CANDRABINDU THREE;SB=LE;WB=LE;XIDS
+cp;A8F7;Alpha;bc=L;ccc=0;-CI;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;InPC=NA;InSC=Other;jt=U;lb=AL;na=DEVANAGARI SIGN CANDRABINDU AVAGRAHA;SB=LE;WB=LE;XIDS
# Editorial marks
-cp;A8F8;bc=L;ccc=0;-CI;-Dia;gc=Po;GCB=XX;Gr_Base;-Gr_Ext;-IDC;InPC=NA;InSC=Other;jt=U;lb=AL;na=DEVANAGARI SIGN PUSHPIKA;SB=XX;WB=XX;-XIDC
-cp;A8F9;bc=L;ccc=0;-CI;-Dia;gc=Po;GCB=XX;Gr_Base;-Gr_Ext;-IDC;InPC=NA;InSC=Other;jt=U;lb=AL;na=DEVANAGARI GAP FILLER;SB=XX;WB=XX;-XIDC
-cp;A8FA;bc=L;ccc=0;-CI;-Dia;gc=Po;GCB=XX;Gr_Base;-Gr_Ext;-IDC;InPC=NA;InSC=Other;jt=U;lb=AL;na=DEVANAGARI CARET;SB=XX;WB=XX;-XIDC
-cp;A8FB;Alpha;bc=L;ccc=0;-CI;-Dia;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;InPC=NA;InSC=Other;jt=U;lb=AL;na=DEVANAGARI HEADSTROKE;SB=LE;WB=LE;XIDS
+cp;A8F8;bc=L;ccc=0;-CI;gc=Po;GCB=XX;Gr_Base;-Gr_Ext;-IDC;InPC=NA;InSC=Other;jt=U;lb=AL;na=DEVANAGARI SIGN PUSHPIKA;SB=XX;WB=XX;-XIDC
+cp;A8F9;bc=L;ccc=0;-CI;gc=Po;GCB=XX;Gr_Base;-Gr_Ext;-IDC;InPC=NA;InSC=Other;jt=U;lb=AL;na=DEVANAGARI GAP FILLER;SB=XX;WB=XX;-XIDC
+cp;A8FA;bc=L;ccc=0;-CI;gc=Po;GCB=XX;Gr_Base;-Gr_Ext;-IDC;InPC=NA;InSC=Other;jt=U;lb=AL;na=DEVANAGARI CARET;SB=XX;WB=XX;-XIDC
+cp;A8FB;Alpha;bc=L;ccc=0;-CI;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;InPC=NA;InSC=Other;jt=U;lb=AL;na=DEVANAGARI HEADSTROKE;SB=LE;WB=LE;XIDS
# Signs
-cp;A8FC;age=8.0;bc=L;ccc=0;-CI;-Dia;gc=Po;GCB=XX;Gr_Base;-Gr_Ext;-IDC;InPC=NA;InSC=Other;jt=U;lb=BB;na=DEVANAGARI SIGN SIDDHAM;SB=XX;WB=XX;-XIDC
-cp;A8FD;age=8.0;Alpha;bc=L;ccc=0;-CI;-Dia;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;InPC=NA;InSC=Other;jt=U;lb=AL;na=DEVANAGARI JAIN OM;SB=LE;WB=LE;XIDS
-unassigned;A8FE..A8FF
+cp;A8FC;age=8.0;bc=L;ccc=0;-CI;gc=Po;GCB=XX;Gr_Base;-Gr_Ext;-IDC;InPC=NA;InSC=Other;jt=U;lb=BB;na=DEVANAGARI SIGN SIDDHAM;SB=XX;WB=XX;-XIDC
+cp;A8FD;age=8.0;Alpha;bc=L;ccc=0;-CI;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;InPC=NA;InSC=Other;jt=U;lb=AL;na=DEVANAGARI JAIN OM;SB=LE;WB=LE;XIDS
+# Additional vowel and vowel sign
+cp;A8FE;age=11.0;Alpha;bc=L;ccc=0;-CI;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;InPC=NA;InSC=Vowel_Independent;jt=U;lb=AL;na=DEVANAGARI LETTER AY;SB=LE;WB=LE;XIDS
+cp;A8FF;age=11.0;ccc=0;InSC=Vowel_Dependent;na=DEVANAGARI VOWEL SIGN AY
block;A900..A92F;age=5.1;Alpha;blk=Kayah_Li;gc=Lo;Gr_Base;IDC;IDS;InSC=Consonant;lb=AL;SB=LE;sc=Kali;WB=LE;XIDC;XIDS
# A900..A92F Kayah Li
@@ -17720,7 +17882,7 @@ cp;AA34;gc=Mc;GCB=SM;-IDS;InPC=Left;InSC=Consonant_Medial;lb=CM;na=CHAM CONSONAN
cp;AA35;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Bottom;InSC=Consonant_Medial;jt=T;lb=CM;na=CHAM CONSONANT SIGN LA;SB=EX;WB=Extend;-XIDS
cp;AA36;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Bottom;InSC=Consonant_Medial;jt=T;lb=CM;na=CHAM CONSONANT SIGN WA;SB=EX;WB=Extend;-XIDS
unassigned;AA37..AA3F
-# Final letters
+# Final consonants
cp;AA40;InSC=Consonant_Final;na=CHAM LETTER FINAL K
cp;AA41;InSC=Consonant_Final;na=CHAM LETTER FINAL G
cp;AA42;InSC=Consonant_Final;na=CHAM LETTER FINAL NG
@@ -20266,7 +20428,7 @@ cp;FE0C;na=VARIATION SELECTOR-13;Name_Alias=abbreviation=VS13
cp;FE0D;na=VARIATION SELECTOR-14;Name_Alias=abbreviation=VS14
# Emoji-specific variation selectors
cp;FE0E;na=VARIATION SELECTOR-15;Name_Alias=abbreviation=VS15
-cp;FE0F;na=VARIATION SELECTOR-16;Name_Alias=abbreviation=VS16
+cp;FE0F;EComp;na=VARIATION SELECTOR-16;Name_Alias=abbreviation=VS16
block;FE10..FE1F;age=4.1;bc=ON;blk=Vertical_Forms;CWKCF;dt=Vert;ea=W;gc=Po;Gr_Base;lb=CL;NFKC_QC=N;NFKD_QC=N;sc=Zyyy;vo=U
# FE10..FE1F Vertical Forms
@@ -22807,7 +22969,9 @@ cp;10A30;IDS;na=KHAROSHTHI LETTER ZA;XIDS
cp;10A31;IDS;na=KHAROSHTHI LETTER HA;XIDS
cp;10A32;IDS;na=KHAROSHTHI LETTER KKA;XIDS
cp;10A33;IDS;na=KHAROSHTHI LETTER TTTHA;XIDS
-unassigned;10A34..10A37;bc=R
+cp;10A34;age=11.0;IDS;na=KHAROSHTHI LETTER TTTA;XIDS
+cp;10A35;age=11.0;IDS;na=KHAROSHTHI LETTER VHA;XIDS
+unassigned;10A36..10A37;bc=R
# Various signs
cp;10A38;-Alpha;bc=NSM;ccc=230;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;InPC=Top;InSC=Nukta;jt=T;lb=CM;na=KHAROSHTHI SIGN BAR ABOVE;SB=EX;WB=Extend
cp;10A39;-Alpha;bc=NSM;ccc=1;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;InPC=Bottom;InSC=Nukta;jt=T;lb=CM;na=KHAROSHTHI SIGN CAUDA;SB=EX;WB=Extend
@@ -22820,12 +22984,13 @@ cp;10A40;-Alpha;gc=No;-IDC;InSC=Number;na=KHAROSHTHI DIGIT ONE;nt=Di;nv=1;SB=XX;
cp;10A41;-Alpha;gc=No;-IDC;InSC=Number;na=KHAROSHTHI DIGIT TWO;nt=Di;nv=2;SB=XX;WB=XX;-XIDC
cp;10A42;-Alpha;gc=No;-IDC;InSC=Number;na=KHAROSHTHI DIGIT THREE;nt=Di;nv=3;SB=XX;WB=XX;-XIDC
cp;10A43;-Alpha;gc=No;-IDC;InSC=Number;na=KHAROSHTHI DIGIT FOUR;nt=Di;nv=4;SB=XX;WB=XX;-XIDC
-# Numbers
+# Numbers and fractions
cp;10A44;-Alpha;gc=No;-IDC;InSC=Number;na=KHAROSHTHI NUMBER TEN;nt=Nu;nv=10;SB=XX;WB=XX;-XIDC
cp;10A45;-Alpha;gc=No;-IDC;InSC=Number;na=KHAROSHTHI NUMBER TWENTY;nt=Nu;nv=20;SB=XX;WB=XX;-XIDC
cp;10A46;-Alpha;gc=No;-IDC;InSC=Number;na=KHAROSHTHI NUMBER ONE HUNDRED;nt=Nu;nv=100;SB=XX;WB=XX;-XIDC
cp;10A47;-Alpha;gc=No;-IDC;InSC=Number;na=KHAROSHTHI NUMBER ONE THOUSAND;nt=Nu;nv=1000;SB=XX;WB=XX;-XIDC
-unassigned;10A48..10A4F;bc=R
+cp;10A48;age=11.0;-Alpha;gc=No;-IDC;InSC=Number;na=KHAROSHTHI FRACTION ONE HALF;nt=Nu;nv=1/2;SB=XX;WB=XX;-XIDC
+unassigned;10A49..10A4F;bc=R
# Punctuation
cp;10A50;-Alpha;gc=Po;-IDC;InSC=Other;lb=BA;na=KHAROSHTHI PUNCTUATION DOT;SB=XX;WB=XX;-XIDC
cp;10A51;-Alpha;gc=Po;-IDC;InSC=Other;lb=BA;na=KHAROSHTHI PUNCTUATION SMALL CIRCLE;SB=XX;WB=XX;-XIDC
@@ -22926,7 +23091,9 @@ cp;10AC4;jg=Manichaean_Gimel;na=MANICHAEAN LETTER GHIMEL
cp;10AC5;jg=Manichaean_Daleth;jt=R;na=MANICHAEAN LETTER DALETH
cp;10AC6;jt=U;na=MANICHAEAN LETTER HE
cp;10AC7;jg=Manichaean_Waw;jt=R;na=MANICHAEAN LETTER WAW
+# Logogram
cp;10AC8;-Alpha;gc=So;-IDC;-IDS;jt=U;na=MANICHAEAN SIGN UD;SB=XX;WB=XX;-XIDC;-XIDS
+# Letters
cp;10AC9;jg=Manichaean_Zayin;jt=R;na=MANICHAEAN LETTER ZAYIN
cp;10ACA;jg=Manichaean_Zayin;jt=R;na=MANICHAEAN LETTER ZHAYIN
cp;10ACB;jt=U;na=MANICHAEAN LETTER JAYIN
@@ -23350,8 +23517,71 @@ cp;10CFD;-Alpha;-Cased;-CWCM;gc=No;-IDC;-IDS;na=OLD HUNGARIAN NUMBER FIFTY;nt=Nu
cp;10CFE;-Alpha;-Cased;-CWCM;gc=No;-IDC;-IDS;na=OLD HUNGARIAN NUMBER ONE HUNDRED;nt=Nu;nv=100;SB=XX;WB=XX;-XIDC;-XIDS
cp;10CFF;-Alpha;-Cased;-CWCM;gc=No;-IDC;-IDS;na=OLD HUNGARIAN NUMBER ONE THOUSAND;nt=Nu;nv=1000;SB=XX;WB=XX;-XIDC;-XIDS
+block;10D00..10D3F;age=11.0;Alpha;bc=AL;blk=Hanifi_Rohingya;gc=Lo;Gr_Base;IDC;IDS;jt=D;lb=AL;SB=LE;sc=Rohg;WB=LE;XIDC;XIDS
+# 10D00..10D3F Hanifi Rohingya
+# Letters
+cp;10D00;jt=L;na=HANIFI ROHINGYA LETTER A
+cp;10D01;na=HANIFI ROHINGYA LETTER BA
+cp;10D02;jg=Hanifi_Rohingya_Pa;na=HANIFI ROHINGYA LETTER PA
+cp;10D03;na=HANIFI ROHINGYA LETTER TA
+cp;10D04;na=HANIFI ROHINGYA LETTER TTA
+cp;10D05;na=HANIFI ROHINGYA LETTER JA
+cp;10D06;na=HANIFI ROHINGYA LETTER CA
+cp;10D07;na=HANIFI ROHINGYA LETTER HA
+cp;10D08;na=HANIFI ROHINGYA LETTER KHA
+cp;10D09;jg=Hanifi_Rohingya_Pa;na=HANIFI ROHINGYA LETTER FA
+cp;10D0A;na=HANIFI ROHINGYA LETTER DA
+cp;10D0B;na=HANIFI ROHINGYA LETTER DDA
+cp;10D0C;na=HANIFI ROHINGYA LETTER RA
+cp;10D0D;na=HANIFI ROHINGYA LETTER RRA
+cp;10D0E;na=HANIFI ROHINGYA LETTER ZA
+cp;10D0F;na=HANIFI ROHINGYA LETTER SA
+cp;10D10;na=HANIFI ROHINGYA LETTER SHA
+cp;10D11;na=HANIFI ROHINGYA LETTER KA
+cp;10D12;na=HANIFI ROHINGYA LETTER GA
+cp;10D13;na=HANIFI ROHINGYA LETTER LA
+cp;10D14;na=HANIFI ROHINGYA LETTER MA
+cp;10D15;na=HANIFI ROHINGYA LETTER NA
+cp;10D16;na=HANIFI ROHINGYA LETTER WA
+cp;10D17;na=HANIFI ROHINGYA LETTER KINNA WA
+cp;10D18;na=HANIFI ROHINGYA LETTER YA
+cp;10D19;jg=Hanifi_Rohingya_Kinna_Ya;na=HANIFI ROHINGYA LETTER KINNA YA
+cp;10D1A;na=HANIFI ROHINGYA LETTER NGA
+cp;10D1B;na=HANIFI ROHINGYA LETTER NYA
+# Additional letter
+cp;10D1C;jg=Hanifi_Rohingya_Pa;na=HANIFI ROHINGYA LETTER VA
+# Vowels
+cp;10D1D;na=HANIFI ROHINGYA VOWEL A
+cp;10D1E;jg=Hanifi_Rohingya_Kinna_Ya;na=HANIFI ROHINGYA VOWEL I
+cp;10D1F;na=HANIFI ROHINGYA VOWEL U
+cp;10D20;jg=Hanifi_Rohingya_Kinna_Ya;na=HANIFI ROHINGYA VOWEL E
+cp;10D21;na=HANIFI ROHINGYA VOWEL O
+# Vowel silencer
+cp;10D22;Dia;jt=R;na=HANIFI ROHINGYA MARK SAKIN
+# Nasalization mark
+cp;10D23;Dia;jg=Hanifi_Rohingya_Kinna_Ya;na=HANIFI ROHINGYA MARK NA KHONNA
+# Tone signs
+cp;10D24;bc=NSM;ccc=230;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;jt=T;lb=CM;na=HANIFI ROHINGYA SIGN HARBAHAY;SB=EX;WB=Extend;-XIDS
+cp;10D25;bc=NSM;ccc=230;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;jt=T;lb=CM;na=HANIFI ROHINGYA SIGN TAHALA;SB=EX;WB=Extend;-XIDS
+cp;10D26;bc=NSM;ccc=230;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;jt=T;lb=CM;na=HANIFI ROHINGYA SIGN TANA;SB=EX;WB=Extend;-XIDS
+# Gemination sign
+cp;10D27;bc=NSM;ccc=230;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;jt=T;lb=CM;na=HANIFI ROHINGYA SIGN TASSI;SB=EX;WB=Extend;-XIDS
+unassigned;10D28..10D2F;bc=AL
+# Digits
+cp;10D30;-Alpha;bc=AN;gc=Nd;-IDS;jt=U;lb=NU;na=HANIFI ROHINGYA DIGIT ZERO;nt=De;nv=0;SB=NU;WB=NU;-XIDS
+cp;10D31;-Alpha;bc=AN;gc=Nd;-IDS;jt=U;lb=NU;na=HANIFI ROHINGYA DIGIT ONE;nt=De;nv=1;SB=NU;WB=NU;-XIDS
+cp;10D32;-Alpha;bc=AN;gc=Nd;-IDS;jt=U;lb=NU;na=HANIFI ROHINGYA DIGIT TWO;nt=De;nv=2;SB=NU;WB=NU;-XIDS
+cp;10D33;-Alpha;bc=AN;gc=Nd;-IDS;jt=U;lb=NU;na=HANIFI ROHINGYA DIGIT THREE;nt=De;nv=3;SB=NU;WB=NU;-XIDS
+cp;10D34;-Alpha;bc=AN;gc=Nd;-IDS;jt=U;lb=NU;na=HANIFI ROHINGYA DIGIT FOUR;nt=De;nv=4;SB=NU;WB=NU;-XIDS
+cp;10D35;-Alpha;bc=AN;gc=Nd;-IDS;jt=U;lb=NU;na=HANIFI ROHINGYA DIGIT FIVE;nt=De;nv=5;SB=NU;WB=NU;-XIDS
+cp;10D36;-Alpha;bc=AN;gc=Nd;-IDS;jt=U;lb=NU;na=HANIFI ROHINGYA DIGIT SIX;nt=De;nv=6;SB=NU;WB=NU;-XIDS
+cp;10D37;-Alpha;bc=AN;gc=Nd;-IDS;jt=U;lb=NU;na=HANIFI ROHINGYA DIGIT SEVEN;nt=De;nv=7;SB=NU;WB=NU;-XIDS
+cp;10D38;-Alpha;bc=AN;gc=Nd;-IDS;jt=U;lb=NU;na=HANIFI ROHINGYA DIGIT EIGHT;nt=De;nv=8;SB=NU;WB=NU;-XIDS
+cp;10D39;-Alpha;bc=AN;gc=Nd;-IDS;jt=U;lb=NU;na=HANIFI ROHINGYA DIGIT NINE;nt=De;nv=9;SB=NU;WB=NU;-XIDS
+unassigned;10D3A..10D3F;bc=AL
+
# No block
-unassigned;10D00..10E5F;bc=R
+unassigned;10D40..10E5F;bc=R
block;10E60..10E7F;age=5.2;bc=AN;blk=Rumi;gc=No;Gr_Base;lb=AL;nt=Nu;sc=Arab
# 10E60..10E7F Rumi Numeral Symbols
@@ -23392,7 +23622,108 @@ cp;10E7E;na=RUMI FRACTION TWO THIRDS;nv=2/3
unassigned;10E7F;bc=R
# No block
-unassigned;10E80..10FFF;bc=R
+unassigned;10E80..10EFF;bc=R
+
+block;10F00..10F2F;age=11.0;Alpha;bc=R;blk=Old_Sogdian;gc=Lo;Gr_Base;IDC;IDS;lb=AL;SB=LE;sc=Sogo;WB=LE;XIDC;XIDS
+# 10F00..10F2F Old Sogdian
+# Letters
+cp;10F00;na=OLD SOGDIAN LETTER ALEPH
+cp;10F01;na=OLD SOGDIAN LETTER FINAL ALEPH
+cp;10F02;na=OLD SOGDIAN LETTER BETH
+cp;10F03;na=OLD SOGDIAN LETTER FINAL BETH
+cp;10F04;na=OLD SOGDIAN LETTER GIMEL
+cp;10F05;na=OLD SOGDIAN LETTER HE
+cp;10F06;na=OLD SOGDIAN LETTER FINAL HE
+cp;10F07;na=OLD SOGDIAN LETTER WAW
+cp;10F08;na=OLD SOGDIAN LETTER ZAYIN
+cp;10F09;na=OLD SOGDIAN LETTER HETH
+cp;10F0A;na=OLD SOGDIAN LETTER YODH
+cp;10F0B;na=OLD SOGDIAN LETTER KAPH
+cp;10F0C;na=OLD SOGDIAN LETTER LAMEDH
+cp;10F0D;na=OLD SOGDIAN LETTER MEM
+cp;10F0E;na=OLD SOGDIAN LETTER NUN
+cp;10F0F;na=OLD SOGDIAN LETTER FINAL NUN
+cp;10F10;na=OLD SOGDIAN LETTER FINAL NUN WITH VERTICAL TAIL
+cp;10F11;na=OLD SOGDIAN LETTER SAMEKH
+cp;10F12;na=OLD SOGDIAN LETTER AYIN
+cp;10F13;na=OLD SOGDIAN LETTER ALTERNATE AYIN
+cp;10F14;na=OLD SOGDIAN LETTER PE
+cp;10F15;na=OLD SOGDIAN LETTER SADHE
+cp;10F16;na=OLD SOGDIAN LETTER FINAL SADHE
+cp;10F17;na=OLD SOGDIAN LETTER FINAL SADHE WITH VERTICAL TAIL
+cp;10F18;na=OLD SOGDIAN LETTER RESH-AYIN-DALETH
+cp;10F19;na=OLD SOGDIAN LETTER SHIN
+cp;10F1A;na=OLD SOGDIAN LETTER TAW
+cp;10F1B;na=OLD SOGDIAN LETTER FINAL TAW
+cp;10F1C;na=OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL
+# Numbers
+cp;10F1D;-Alpha;gc=No;-IDC;-IDS;na=OLD SOGDIAN NUMBER ONE;nt=Nu;nv=1;SB=XX;WB=XX;-XIDC;-XIDS
+cp;10F1E;-Alpha;gc=No;-IDC;-IDS;na=OLD SOGDIAN NUMBER TWO;nt=Nu;nv=2;SB=XX;WB=XX;-XIDC;-XIDS
+cp;10F1F;-Alpha;gc=No;-IDC;-IDS;na=OLD SOGDIAN NUMBER THREE;nt=Nu;nv=3;SB=XX;WB=XX;-XIDC;-XIDS
+cp;10F20;-Alpha;gc=No;-IDC;-IDS;na=OLD SOGDIAN NUMBER FOUR;nt=Nu;nv=4;SB=XX;WB=XX;-XIDC;-XIDS
+cp;10F21;-Alpha;gc=No;-IDC;-IDS;na=OLD SOGDIAN NUMBER FIVE;nt=Nu;nv=5;SB=XX;WB=XX;-XIDC;-XIDS
+cp;10F22;-Alpha;gc=No;-IDC;-IDS;na=OLD SOGDIAN NUMBER TEN;nt=Nu;nv=10;SB=XX;WB=XX;-XIDC;-XIDS
+cp;10F23;-Alpha;gc=No;-IDC;-IDS;na=OLD SOGDIAN NUMBER TWENTY;nt=Nu;nv=20;SB=XX;WB=XX;-XIDC;-XIDS
+cp;10F24;-Alpha;gc=No;-IDC;-IDS;na=OLD SOGDIAN NUMBER THIRTY;nt=Nu;nv=30;SB=XX;WB=XX;-XIDC;-XIDS
+cp;10F25;-Alpha;gc=No;-IDC;-IDS;na=OLD SOGDIAN NUMBER ONE HUNDRED;nt=Nu;nv=100;SB=XX;WB=XX;-XIDC;-XIDS
+cp;10F26;-Alpha;gc=No;-IDC;-IDS;na=OLD SOGDIAN FRACTION ONE HALF;nt=Nu;nv=1/2;SB=XX;WB=XX;-XIDC;-XIDS
+# Ligature
+cp;10F27;na=OLD SOGDIAN LIGATURE AYIN-DALETH
+unassigned;10F28..10F2F;bc=R
+
+block;10F30..10F6F;age=11.0;bc=AL;blk=Sogdian;gc=Lo;Gr_Base;IDC;jt=D;lb=AL;SB=LE;sc=Sogd;WB=LE;XIDC
+# 10F30..10F6F Sogdian
+# Letters
+cp;10F30;Alpha;IDS;na=SOGDIAN LETTER ALEPH;XIDS
+cp;10F31;Alpha;IDS;na=SOGDIAN LETTER BETH;XIDS
+cp;10F32;Alpha;IDS;na=SOGDIAN LETTER GIMEL;XIDS
+cp;10F33;Alpha;IDS;jt=R;na=SOGDIAN LETTER HE;XIDS
+cp;10F34;Alpha;IDS;na=SOGDIAN LETTER WAW;XIDS
+cp;10F35;Alpha;IDS;na=SOGDIAN LETTER ZAYIN;XIDS
+cp;10F36;Alpha;IDS;na=SOGDIAN LETTER HETH;XIDS
+cp;10F37;Alpha;IDS;na=SOGDIAN LETTER YODH;XIDS
+cp;10F38;Alpha;IDS;na=SOGDIAN LETTER KAPH;XIDS
+cp;10F39;Alpha;IDS;na=SOGDIAN LETTER LAMEDH;XIDS
+cp;10F3A;Alpha;IDS;na=SOGDIAN LETTER MEM;XIDS
+cp;10F3B;Alpha;IDS;na=SOGDIAN LETTER NUN;XIDS
+cp;10F3C;Alpha;IDS;na=SOGDIAN LETTER SAMEKH;XIDS
+cp;10F3D;Alpha;IDS;na=SOGDIAN LETTER AYIN;XIDS
+cp;10F3E;Alpha;IDS;na=SOGDIAN LETTER PE;XIDS
+cp;10F3F;Alpha;IDS;na=SOGDIAN LETTER SADHE;XIDS
+cp;10F40;Alpha;IDS;na=SOGDIAN LETTER RESH-AYIN;XIDS
+cp;10F41;Alpha;IDS;na=SOGDIAN LETTER SHIN;XIDS
+cp;10F42;Alpha;IDS;na=SOGDIAN LETTER TAW;XIDS
+cp;10F43;Alpha;IDS;na=SOGDIAN LETTER FETH;XIDS
+cp;10F44;Alpha;IDS;na=SOGDIAN LETTER LESH;XIDS
+# Phonogram
+cp;10F45;Alpha;IDS;jt=U;na=SOGDIAN INDEPENDENT SHIN;XIDS
+# Combining marks
+cp;10F46;bc=NSM;ccc=220;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;jt=T;lb=CM;na=SOGDIAN COMBINING DOT BELOW;SB=EX;WB=Extend
+cp;10F47;bc=NSM;ccc=220;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;jt=T;lb=CM;na=SOGDIAN COMBINING TWO DOTS BELOW;SB=EX;WB=Extend
+cp;10F48;bc=NSM;ccc=230;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;jt=T;lb=CM;na=SOGDIAN COMBINING DOT ABOVE;SB=EX;WB=Extend
+cp;10F49;bc=NSM;ccc=230;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;jt=T;lb=CM;na=SOGDIAN COMBINING TWO DOTS ABOVE;SB=EX;WB=Extend
+cp;10F4A;bc=NSM;ccc=230;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;jt=T;lb=CM;na=SOGDIAN COMBINING CURVE ABOVE;SB=EX;WB=Extend
+cp;10F4B;bc=NSM;ccc=220;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;jt=T;lb=CM;na=SOGDIAN COMBINING CURVE BELOW;SB=EX;WB=Extend
+cp;10F4C;bc=NSM;ccc=230;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;jt=T;lb=CM;na=SOGDIAN COMBINING HOOK ABOVE;SB=EX;WB=Extend
+cp;10F4D;bc=NSM;ccc=220;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;jt=T;lb=CM;na=SOGDIAN COMBINING HOOK BELOW;SB=EX;WB=Extend
+cp;10F4E;bc=NSM;ccc=220;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;jt=T;lb=CM;na=SOGDIAN COMBINING LONG HOOK BELOW;SB=EX;WB=Extend
+cp;10F4F;bc=NSM;ccc=220;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;jt=T;lb=CM;na=SOGDIAN COMBINING RESH BELOW;SB=EX;WB=Extend
+cp;10F50;bc=NSM;ccc=220;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;jt=T;lb=CM;na=SOGDIAN COMBINING STROKE BELOW;SB=EX;WB=Extend
+# Numbers
+cp;10F51;gc=No;-IDC;na=SOGDIAN NUMBER ONE;nt=Nu;nv=1;SB=XX;WB=XX;-XIDC
+cp;10F52;gc=No;-IDC;na=SOGDIAN NUMBER TEN;nt=Nu;nv=10;SB=XX;WB=XX;-XIDC
+cp;10F53;gc=No;-IDC;na=SOGDIAN NUMBER TWENTY;nt=Nu;nv=20;SB=XX;WB=XX;-XIDC
+cp;10F54;gc=No;-IDC;jt=R;na=SOGDIAN NUMBER ONE HUNDRED;nt=Nu;nv=100;SB=XX;WB=XX;-XIDC
+# Punctuation
+cp;10F55;gc=Po;-IDC;jt=U;na=SOGDIAN PUNCTUATION TWO VERTICAL BARS;SB=ST;STerm;Term;WB=XX;-XIDC
+cp;10F56;gc=Po;-IDC;jt=U;na=SOGDIAN PUNCTUATION TWO VERTICAL BARS WITH DOTS;SB=ST;STerm;Term;WB=XX;-XIDC
+cp;10F57;gc=Po;-IDC;jt=U;na=SOGDIAN PUNCTUATION CIRCLE WITH DOT;SB=ST;STerm;Term;WB=XX;-XIDC
+cp;10F58;gc=Po;-IDC;jt=U;na=SOGDIAN PUNCTUATION TWO CIRCLES WITH DOTS;SB=ST;STerm;Term;WB=XX;-XIDC
+cp;10F59;gc=Po;-IDC;jt=U;na=SOGDIAN PUNCTUATION HALF CIRCLE WITH DOT;SB=ST;STerm;Term;WB=XX;-XIDC
+unassigned;10F5A..10F6F;bc=AL
+
+# No block
+unassigned;10F70..10FFF;bc=R
block;11000..1107F;age=6.0;Alpha;blk=Brahmi;gc=Lo;Gr_Base;IDC;InSC=Consonant;lb=AL;SB=LE;sc=Brah;WB=LE;XIDC
# 11000..1107F Brahmi
@@ -23580,17 +23911,22 @@ cp;110B5;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Vowel_Depende
cp;110B6;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Vowel_Dependent;jt=T;lb=CM;na=KAITHI VOWEL SIGN AI;SB=EX;WB=Extend;-XIDS
cp;110B7;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=KAITHI VOWEL SIGN O;SB=EX;WB=Extend;-XIDS
cp;110B8;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=KAITHI VOWEL SIGN AU;SB=EX;WB=Extend;-XIDS
-# Various signs
+# Virama
cp;110B9;-Alpha;bc=NSM;ccc=9;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;Gr_Link;-IDS;InPC=Bottom;InSC=Virama;jt=T;lb=CM;na=KAITHI SIGN VIRAMA;SB=EX;WB=Extend;-XIDS
+# Various signs
cp;110BA;-Alpha;bc=NSM;ccc=7;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Bottom;InSC=Nukta;jt=T;lb=CM;na=KAITHI SIGN NUKTA;NFC_QC=M;NFKC_QC=M;SB=EX;WB=Extend;-XIDS
cp;110BB;-Alpha;gc=Po;-IDC;-IDS;InSC=Other;na=KAITHI ABBREVIATION SIGN;SB=XX;WB=XX;-XIDC;-XIDS
cp;110BC;-Alpha;gc=Po;-IDC;-IDS;InSC=Other;na=KAITHI ENUMERATION SIGN;SB=XX;WB=XX;-XIDC;-XIDS
-cp;110BD;-Alpha;CI;gc=Cf;GCB=PP;-Gr_Base;-IDC;-IDS;InSC=Other;jt=T;na=KAITHI NUMBER SIGN;PCM;SB=FO;WB=FO;-XIDC;-XIDS
+cp;110BD;-Alpha;CI;gc=Cf;GCB=PP;-Gr_Base;-IDC;-IDS;InSC=Other;na=KAITHI NUMBER SIGN;PCM;SB=FO;WB=FO;-XIDC;-XIDS
+# Punctuation
cp;110BE;-Alpha;gc=Po;-IDC;-IDS;InSC=Other;lb=BA;na=KAITHI SECTION MARK;SB=ST;STerm;Term;WB=XX;-XIDC;-XIDS
cp;110BF;-Alpha;gc=Po;-IDC;-IDS;InSC=Other;lb=BA;na=KAITHI DOUBLE SECTION MARK;SB=ST;STerm;Term;WB=XX;-XIDC;-XIDS
cp;110C0;-Alpha;gc=Po;-IDC;-IDS;InSC=Other;lb=BA;na=KAITHI DANDA;SB=ST;STerm;Term;WB=XX;-XIDC;-XIDS
cp;110C1;-Alpha;gc=Po;-IDC;-IDS;InSC=Other;lb=BA;na=KAITHI DOUBLE DANDA;SB=ST;STerm;Term;WB=XX;-XIDC;-XIDS
-unassigned;110C2..110CF
+unassigned;110C2..110CC
+# Sign
+cp;110CD;age=11.0;-Alpha;CI;gc=Cf;GCB=PP;-Gr_Base;-IDC;-IDS;InSC=Other;na=KAITHI NUMBER SIGN ABOVE;PCM;SB=FO;WB=FO;-XIDC;-XIDS
+unassigned;110CE..110CF
block;110D0..110FF;age=6.1;Alpha;blk=Sora_Sompeng;gc=Lo;Gr_Base;IDC;IDS;lb=AL;SB=LE;sc=Sora;WB=LE;XIDC;XIDS
# 110D0..110FF Sora Sompeng
@@ -23713,7 +24049,12 @@ cp;11140;-Alpha;gc=Po;-IDC;InSC=Other;lb=BA;na=CHAKMA SECTION MARK;SB=XX;WB=XX;-
cp;11141;-Alpha;gc=Po;-IDC;InSC=Other;lb=BA;na=CHAKMA DANDA;SB=ST;STerm;Term;WB=XX;-XIDC
cp;11142;-Alpha;gc=Po;-IDC;InSC=Other;lb=BA;na=CHAKMA DOUBLE DANDA;SB=ST;STerm;Term;WB=XX;-XIDC
cp;11143;-Alpha;gc=Po;-IDC;InSC=Other;lb=BA;na=CHAKMA QUESTION MARK;SB=ST;STerm;Term;WB=XX;-XIDC
-unassigned;11144..1114F
+# Consonant
+cp;11144;age=11.0;IDS;na=CHAKMA LETTER LHAA;XIDS
+# Dependent vowel signs
+cp;11145;age=11.0;gc=Mc;GCB=SM;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=CHAKMA VOWEL SIGN AA;SB=EX;WB=Extend
+cp;11146;age=11.0;gc=Mc;GCB=SM;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=CHAKMA VOWEL SIGN EI;SB=EX;WB=Extend
+unassigned;11147..1114F
block;11150..1117F;age=7.0;Alpha;blk=Mahajani;gc=Lo;Gr_Base;IDC;IDS;InSC=Consonant;lb=AL;SB=LE;sc=Mahj;WB=LE;XIDC;XIDS
# 11150..1117F Mahajani
@@ -23845,7 +24186,8 @@ cp;111C5;-Alpha;gc=Po;-IDC;-IDS;InSC=Other;lb=BA;na=SHARADA DANDA;SB=ST;STerm;Te
cp;111C6;-Alpha;gc=Po;-IDC;-IDS;InSC=Other;lb=BA;na=SHARADA DOUBLE DANDA;SB=ST;STerm;Term;WB=XX;-XIDC;-XIDS
cp;111C7;-Alpha;gc=Po;-IDC;-IDS;InSC=Other;na=SHARADA ABBREVIATION SIGN;SB=XX;WB=XX;-XIDC;-XIDS
cp;111C8;-Alpha;gc=Po;-IDC;-IDS;InSC=Other;lb=BA;na=SHARADA SEPARATOR;SB=XX;WB=XX;-XIDC;-XIDS
-cp;111C9;age=8.0;-Alpha;gc=Po;-IDC;-IDS;InSC=Other;na=SHARADA SANDHI MARK;SB=XX;WB=XX;-XIDC;-XIDS
+# Sign
+cp;111C9;age=8.0;-Alpha;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Bottom;InSC=Syllable_Modifier;jt=T;lb=CM;na=SHARADA SANDHI MARK;SB=EX;WB=Extend;-XIDS
# Signs for Kashmiri
cp;111CA;age=8.0;-Alpha;bc=NSM;ccc=7;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InSC=Nukta;jt=T;lb=CM;na=SHARADA SIGN NUKTA;SB=EX;WB=Extend;-XIDS
cp;111CB;age=8.0;-Alpha;bc=NSM;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Vowel_Dependent;jt=T;lb=CM;na=SHARADA VOWEL MODIFIER MARK;SB=EX;WB=Extend;-XIDS
@@ -24102,121 +24444,122 @@ cp;112F8;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=KHUDAWADI DIGIT EIGHT;nt=De;nv=8
cp;112F9;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=KHUDAWADI DIGIT NINE;nt=De;nv=9;SB=NU;WB=NU;-XIDS
unassigned;112FA..112FF
-block;11300..1137F;age=7.0;Alpha;blk=Grantha;gc=Lo;Gr_Base;IDC;IDS;InSC=Consonant;lb=AL;SB=LE;sc=Gran;WB=LE;XIDC;XIDS
+block;11300..1137F;age=7.0;Alpha;blk=Grantha;gc=Lo;Gr_Base;IDC;IDS;InSC=Consonant;lb=AL;SB=LE;sc=Gran;WB=Extend;XIDC;XIDS
# 11300..1137F Grantha
# Various signs
-cp;11300;age=8.0;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InSC=Bindu;jt=T;lb=CM;na=GRANTHA SIGN COMBINING ANUSVARA ABOVE;SB=EX;WB=Extend;-XIDS
-cp;11301;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Bindu;jt=T;lb=CM;na=GRANTHA SIGN CANDRABINDU;SB=EX;scx=Gran Taml;WB=Extend;-XIDS
-cp;11302;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Bindu;lb=CM;na=GRANTHA SIGN ANUSVARA;SB=EX;WB=Extend;-XIDS
-cp;11303;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Visarga;lb=CM;na=GRANTHA SIGN VISARGA;SB=EX;scx=Gran Taml;WB=Extend;-XIDS
+cp;11300;age=8.0;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InSC=Bindu;jt=T;lb=CM;na=GRANTHA SIGN COMBINING ANUSVARA ABOVE;SB=EX;-XIDS
+cp;11301;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Bindu;jt=T;lb=CM;na=GRANTHA SIGN CANDRABINDU;SB=EX;scx=Gran Taml;-XIDS
+cp;11302;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Bindu;lb=CM;na=GRANTHA SIGN ANUSVARA;SB=EX;-XIDS
+cp;11303;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Visarga;lb=CM;na=GRANTHA SIGN VISARGA;SB=EX;scx=Gran Taml;-XIDS
unassigned;11304
# Independent vowels
-cp;11305;InSC=Vowel_Independent;na=GRANTHA LETTER A
-cp;11306;InSC=Vowel_Independent;na=GRANTHA LETTER AA
-cp;11307;InSC=Vowel_Independent;na=GRANTHA LETTER I
-cp;11308;InSC=Vowel_Independent;na=GRANTHA LETTER II
-cp;11309;InSC=Vowel_Independent;na=GRANTHA LETTER U
-cp;1130A;InSC=Vowel_Independent;na=GRANTHA LETTER UU
-cp;1130B;InSC=Vowel_Independent;na=GRANTHA LETTER VOCALIC R
-cp;1130C;InSC=Vowel_Independent;na=GRANTHA LETTER VOCALIC L
+cp;11305;InSC=Vowel_Independent;na=GRANTHA LETTER A;WB=LE
+cp;11306;InSC=Vowel_Independent;na=GRANTHA LETTER AA;WB=LE
+cp;11307;InSC=Vowel_Independent;na=GRANTHA LETTER I;WB=LE
+cp;11308;InSC=Vowel_Independent;na=GRANTHA LETTER II;WB=LE
+cp;11309;InSC=Vowel_Independent;na=GRANTHA LETTER U;WB=LE
+cp;1130A;InSC=Vowel_Independent;na=GRANTHA LETTER UU;WB=LE
+cp;1130B;InSC=Vowel_Independent;na=GRANTHA LETTER VOCALIC R;WB=LE
+cp;1130C;InSC=Vowel_Independent;na=GRANTHA LETTER VOCALIC L;WB=LE
unassigned;1130D..1130E
-cp;1130F;InSC=Vowel_Independent;na=GRANTHA LETTER EE
-cp;11310;InSC=Vowel_Independent;na=GRANTHA LETTER AI
+cp;1130F;InSC=Vowel_Independent;na=GRANTHA LETTER EE;WB=LE
+cp;11310;InSC=Vowel_Independent;na=GRANTHA LETTER AI;WB=LE
unassigned;11311..11312
-cp;11313;InSC=Vowel_Independent;na=GRANTHA LETTER OO
-cp;11314;InSC=Vowel_Independent;na=GRANTHA LETTER AU
+cp;11313;InSC=Vowel_Independent;na=GRANTHA LETTER OO;WB=LE
+cp;11314;InSC=Vowel_Independent;na=GRANTHA LETTER AU;WB=LE
# Consonants
-cp;11315;na=GRANTHA LETTER KA
-cp;11316;na=GRANTHA LETTER KHA
-cp;11317;na=GRANTHA LETTER GA
-cp;11318;na=GRANTHA LETTER GHA
-cp;11319;na=GRANTHA LETTER NGA
-cp;1131A;na=GRANTHA LETTER CA
-cp;1131B;na=GRANTHA LETTER CHA
-cp;1131C;na=GRANTHA LETTER JA
-cp;1131D;na=GRANTHA LETTER JHA
-cp;1131E;na=GRANTHA LETTER NYA
-cp;1131F;na=GRANTHA LETTER TTA
-cp;11320;na=GRANTHA LETTER TTHA
-cp;11321;na=GRANTHA LETTER DDA
-cp;11322;na=GRANTHA LETTER DDHA
-cp;11323;na=GRANTHA LETTER NNA
-cp;11324;na=GRANTHA LETTER TA
-cp;11325;na=GRANTHA LETTER THA
-cp;11326;na=GRANTHA LETTER DA
-cp;11327;na=GRANTHA LETTER DHA
-cp;11328;na=GRANTHA LETTER NA
+cp;11315;na=GRANTHA LETTER KA;WB=LE
+cp;11316;na=GRANTHA LETTER KHA;WB=LE
+cp;11317;na=GRANTHA LETTER GA;WB=LE
+cp;11318;na=GRANTHA LETTER GHA;WB=LE
+cp;11319;na=GRANTHA LETTER NGA;WB=LE
+cp;1131A;na=GRANTHA LETTER CA;WB=LE
+cp;1131B;na=GRANTHA LETTER CHA;WB=LE
+cp;1131C;na=GRANTHA LETTER JA;WB=LE
+cp;1131D;na=GRANTHA LETTER JHA;WB=LE
+cp;1131E;na=GRANTHA LETTER NYA;WB=LE
+cp;1131F;na=GRANTHA LETTER TTA;WB=LE
+cp;11320;na=GRANTHA LETTER TTHA;WB=LE
+cp;11321;na=GRANTHA LETTER DDA;WB=LE
+cp;11322;na=GRANTHA LETTER DDHA;WB=LE
+cp;11323;na=GRANTHA LETTER NNA;WB=LE
+cp;11324;na=GRANTHA LETTER TA;WB=LE
+cp;11325;na=GRANTHA LETTER THA;WB=LE
+cp;11326;na=GRANTHA LETTER DA;WB=LE
+cp;11327;na=GRANTHA LETTER DHA;WB=LE
+cp;11328;na=GRANTHA LETTER NA;WB=LE
unassigned;11329
-cp;1132A;na=GRANTHA LETTER PA
-cp;1132B;na=GRANTHA LETTER PHA
-cp;1132C;na=GRANTHA LETTER BA
-cp;1132D;na=GRANTHA LETTER BHA
-cp;1132E;na=GRANTHA LETTER MA
-cp;1132F;na=GRANTHA LETTER YA
-cp;11330;na=GRANTHA LETTER RA
+cp;1132A;na=GRANTHA LETTER PA;WB=LE
+cp;1132B;na=GRANTHA LETTER PHA;WB=LE
+cp;1132C;na=GRANTHA LETTER BA;WB=LE
+cp;1132D;na=GRANTHA LETTER BHA;WB=LE
+cp;1132E;na=GRANTHA LETTER MA;WB=LE
+cp;1132F;na=GRANTHA LETTER YA;WB=LE
+cp;11330;na=GRANTHA LETTER RA;WB=LE
unassigned;11331
-cp;11332;na=GRANTHA LETTER LA
-cp;11333;na=GRANTHA LETTER LLA
+cp;11332;na=GRANTHA LETTER LA;WB=LE
+cp;11333;na=GRANTHA LETTER LLA;WB=LE
unassigned;11334
-cp;11335;na=GRANTHA LETTER VA
-cp;11336;na=GRANTHA LETTER SHA
-cp;11337;na=GRANTHA LETTER SSA
-cp;11338;na=GRANTHA LETTER SA
-cp;11339;na=GRANTHA LETTER HA
-unassigned;1133A..1133B
+cp;11335;na=GRANTHA LETTER VA;WB=LE
+cp;11336;na=GRANTHA LETTER SHA;WB=LE
+cp;11337;na=GRANTHA LETTER SSA;WB=LE
+cp;11338;na=GRANTHA LETTER SA;WB=LE
+cp;11339;na=GRANTHA LETTER HA;WB=LE
+unassigned;1133A
# Various signs
-cp;1133C;-Alpha;bc=NSM;ccc=7;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InSC=Nukta;jt=T;lb=CM;na=GRANTHA SIGN NUKTA;SB=EX;scx=Gran Taml;WB=Extend;-XIDS
-cp;1133D;InSC=Avagraha;na=GRANTHA SIGN AVAGRAHA
+cp;1133B;age=11.0;-Alpha;bc=NSM;ccc=7;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Bottom;InSC=Nukta;jt=T;lb=CM;na=COMBINING BINDU BELOW;SB=EX;sc=Zinh;scx=Gran Taml;-XIDS
+cp;1133C;-Alpha;bc=NSM;ccc=7;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Bottom;InSC=Nukta;jt=T;lb=CM;na=GRANTHA SIGN NUKTA;SB=EX;scx=Gran Taml;-XIDS
+cp;1133D;InSC=Avagraha;na=GRANTHA SIGN AVAGRAHA;WB=LE
# Dependent vowel signs
-cp;1133E;gc=Mc;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=GRANTHA VOWEL SIGN AA;NFC_QC=M;NFKC_QC=M;SB=EX;WB=Extend;-XIDS
-cp;1133F;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=GRANTHA VOWEL SIGN I;SB=EX;WB=Extend;-XIDS
-cp;11340;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Vowel_Dependent;jt=T;lb=CM;na=GRANTHA VOWEL SIGN II;SB=EX;WB=Extend;-XIDS
-cp;11341;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=GRANTHA VOWEL SIGN U;SB=EX;WB=Extend;-XIDS
-cp;11342;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=GRANTHA VOWEL SIGN UU;SB=EX;WB=Extend;-XIDS
-cp;11343;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=GRANTHA VOWEL SIGN VOCALIC R;SB=EX;WB=Extend;-XIDS
-cp;11344;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=GRANTHA VOWEL SIGN VOCALIC RR;SB=EX;WB=Extend;-XIDS
+cp;1133E;gc=Mc;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=GRANTHA VOWEL SIGN AA;NFC_QC=M;NFKC_QC=M;SB=EX;-XIDS
+cp;1133F;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=GRANTHA VOWEL SIGN I;SB=EX;-XIDS
+cp;11340;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Vowel_Dependent;jt=T;lb=CM;na=GRANTHA VOWEL SIGN II;SB=EX;-XIDS
+cp;11341;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=GRANTHA VOWEL SIGN U;SB=EX;-XIDS
+cp;11342;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=GRANTHA VOWEL SIGN UU;SB=EX;-XIDS
+cp;11343;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=GRANTHA VOWEL SIGN VOCALIC R;SB=EX;-XIDS
+cp;11344;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=GRANTHA VOWEL SIGN VOCALIC RR;SB=EX;-XIDS
unassigned;11345..11346
-cp;11347;gc=Mc;GCB=SM;-IDS;InPC=Left;InSC=Vowel_Dependent;lb=CM;na=GRANTHA VOWEL SIGN EE;SB=EX;WB=Extend;-XIDS
-cp;11348;gc=Mc;GCB=SM;-IDS;InPC=Left;InSC=Vowel_Dependent;lb=CM;na=GRANTHA VOWEL SIGN AI;SB=EX;WB=Extend;-XIDS
+cp;11347;gc=Mc;GCB=SM;-IDS;InPC=Left;InSC=Vowel_Dependent;lb=CM;na=GRANTHA VOWEL SIGN EE;SB=EX;-XIDS
+cp;11348;gc=Mc;GCB=SM;-IDS;InPC=Left;InSC=Vowel_Dependent;lb=CM;na=GRANTHA VOWEL SIGN AI;SB=EX;-XIDS
unassigned;11349..1134A
# Two-part dependent vowel signs
-cp;1134B;dm=11347 1133E;dt=Can;gc=Mc;GCB=SM;-IDS;InPC=Left_And_Right;InSC=Vowel_Dependent;lb=CM;na=GRANTHA VOWEL SIGN OO;NFD_QC=N;NFKD_QC=N;SB=EX;WB=Extend;-XIDS
-cp;1134C;dm=11347 11357;dt=Can;gc=Mc;GCB=SM;-IDS;InPC=Left_And_Right;InSC=Vowel_Dependent;lb=CM;na=GRANTHA VOWEL SIGN AU;NFD_QC=N;NFKD_QC=N;SB=EX;WB=Extend;-XIDS
+cp;1134B;dm=11347 1133E;dt=Can;gc=Mc;GCB=SM;-IDS;InPC=Left_And_Right;InSC=Vowel_Dependent;lb=CM;na=GRANTHA VOWEL SIGN OO;NFD_QC=N;NFKD_QC=N;SB=EX;-XIDS
+cp;1134C;dm=11347 11357;dt=Can;gc=Mc;GCB=SM;-IDS;InPC=Left_And_Right;InSC=Vowel_Dependent;lb=CM;na=GRANTHA VOWEL SIGN AU;NFD_QC=N;NFKD_QC=N;SB=EX;-XIDS
# Virama
-cp;1134D;-Alpha;ccc=9;Dia;gc=Mc;GCB=SM;Gr_Link;-IDS;InPC=Right;InSC=Virama;lb=CM;na=GRANTHA SIGN VIRAMA;SB=EX;WB=Extend;-XIDS
+cp;1134D;-Alpha;ccc=9;Dia;gc=Mc;GCB=SM;Gr_Link;-IDS;InPC=Right;InSC=Virama;lb=CM;na=GRANTHA SIGN VIRAMA;SB=EX;-XIDS
unassigned;1134E..1134F
# Sign
-cp;11350;age=8.0;InSC=Other;na=GRANTHA OM
+cp;11350;age=8.0;InSC=Other;na=GRANTHA OM;WB=LE
unassigned;11351..11356
# Dependent vowel sign
-cp;11357;gc=Mc;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=GRANTHA AU LENGTH MARK;NFC_QC=M;NFKC_QC=M;SB=EX;WB=Extend;-XIDS
+cp;11357;gc=Mc;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=GRANTHA AU LENGTH MARK;NFC_QC=M;NFKC_QC=M;SB=EX;-XIDS
unassigned;11358..1135C
# Sign
-cp;1135D;Ext;InSC=Other;na=GRANTHA SIGN PLUTA
+cp;1135D;Ext;InSC=Other;na=GRANTHA SIGN PLUTA;WB=LE
# Anusvaras
-cp;1135E;InSC=Bindu;na=GRANTHA LETTER VEDIC ANUSVARA
-cp;1135F;InSC=Bindu;na=GRANTHA LETTER VEDIC DOUBLE ANUSVARA
+cp;1135E;InSC=Bindu;na=GRANTHA LETTER VEDIC ANUSVARA;WB=LE
+cp;1135F;InSC=Bindu;na=GRANTHA LETTER VEDIC DOUBLE ANUSVARA;WB=LE
# Independent vowels
-cp;11360;InSC=Vowel_Independent;na=GRANTHA LETTER VOCALIC RR
-cp;11361;InSC=Vowel_Independent;na=GRANTHA LETTER VOCALIC LL
+cp;11360;InSC=Vowel_Independent;na=GRANTHA LETTER VOCALIC RR;WB=LE
+cp;11361;InSC=Vowel_Independent;na=GRANTHA LETTER VOCALIC LL;WB=LE
# Dependent vowel signs
-cp;11362;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=GRANTHA VOWEL SIGN VOCALIC L;SB=EX;WB=Extend;-XIDS
-cp;11363;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=GRANTHA VOWEL SIGN VOCALIC LL;SB=EX;WB=Extend;-XIDS
+cp;11362;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=GRANTHA VOWEL SIGN VOCALIC L;SB=EX;-XIDS
+cp;11363;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=GRANTHA VOWEL SIGN VOCALIC LL;SB=EX;-XIDS
unassigned;11364..11365
# Cantillation marks (svara) for the Samaveda
-cp;11366;-Alpha;bc=NSM;ccc=230;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Cantillation_Mark;jt=T;lb=CM;na=COMBINING GRANTHA DIGIT ZERO;SB=EX;WB=Extend;-XIDS
-cp;11367;-Alpha;bc=NSM;ccc=230;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Cantillation_Mark;jt=T;lb=CM;na=COMBINING GRANTHA DIGIT ONE;SB=EX;WB=Extend;-XIDS
-cp;11368;-Alpha;bc=NSM;ccc=230;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Cantillation_Mark;jt=T;lb=CM;na=COMBINING GRANTHA DIGIT TWO;SB=EX;WB=Extend;-XIDS
-cp;11369;-Alpha;bc=NSM;ccc=230;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Cantillation_Mark;jt=T;lb=CM;na=COMBINING GRANTHA DIGIT THREE;SB=EX;WB=Extend;-XIDS
-cp;1136A;-Alpha;bc=NSM;ccc=230;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Cantillation_Mark;jt=T;lb=CM;na=COMBINING GRANTHA DIGIT FOUR;SB=EX;WB=Extend;-XIDS
-cp;1136B;-Alpha;bc=NSM;ccc=230;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Cantillation_Mark;jt=T;lb=CM;na=COMBINING GRANTHA DIGIT FIVE;SB=EX;WB=Extend;-XIDS
-cp;1136C;-Alpha;bc=NSM;ccc=230;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Cantillation_Mark;jt=T;lb=CM;na=COMBINING GRANTHA DIGIT SIX;SB=EX;WB=Extend;-XIDS
+cp;11366;-Alpha;bc=NSM;ccc=230;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Cantillation_Mark;jt=T;lb=CM;na=COMBINING GRANTHA DIGIT ZERO;SB=EX;-XIDS
+cp;11367;-Alpha;bc=NSM;ccc=230;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Cantillation_Mark;jt=T;lb=CM;na=COMBINING GRANTHA DIGIT ONE;SB=EX;-XIDS
+cp;11368;-Alpha;bc=NSM;ccc=230;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Cantillation_Mark;jt=T;lb=CM;na=COMBINING GRANTHA DIGIT TWO;SB=EX;-XIDS
+cp;11369;-Alpha;bc=NSM;ccc=230;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Cantillation_Mark;jt=T;lb=CM;na=COMBINING GRANTHA DIGIT THREE;SB=EX;-XIDS
+cp;1136A;-Alpha;bc=NSM;ccc=230;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Cantillation_Mark;jt=T;lb=CM;na=COMBINING GRANTHA DIGIT FOUR;SB=EX;-XIDS
+cp;1136B;-Alpha;bc=NSM;ccc=230;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Cantillation_Mark;jt=T;lb=CM;na=COMBINING GRANTHA DIGIT FIVE;SB=EX;-XIDS
+cp;1136C;-Alpha;bc=NSM;ccc=230;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Cantillation_Mark;jt=T;lb=CM;na=COMBINING GRANTHA DIGIT SIX;SB=EX;-XIDS
unassigned;1136D..1136F
-cp;11370;-Alpha;bc=NSM;ccc=230;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Cantillation_Mark;jt=T;lb=CM;na=COMBINING GRANTHA LETTER A;SB=EX;WB=Extend;-XIDS
-cp;11371;-Alpha;bc=NSM;ccc=230;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Cantillation_Mark;jt=T;lb=CM;na=COMBINING GRANTHA LETTER KA;SB=EX;WB=Extend;-XIDS
-cp;11372;-Alpha;bc=NSM;ccc=230;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Cantillation_Mark;jt=T;lb=CM;na=COMBINING GRANTHA LETTER NA;SB=EX;WB=Extend;-XIDS
-cp;11373;-Alpha;bc=NSM;ccc=230;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Cantillation_Mark;jt=T;lb=CM;na=COMBINING GRANTHA LETTER VI;SB=EX;WB=Extend;-XIDS
-cp;11374;-Alpha;bc=NSM;ccc=230;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Cantillation_Mark;jt=T;lb=CM;na=COMBINING GRANTHA LETTER PA;SB=EX;WB=Extend;-XIDS
+cp;11370;-Alpha;bc=NSM;ccc=230;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Cantillation_Mark;jt=T;lb=CM;na=COMBINING GRANTHA LETTER A;SB=EX;-XIDS
+cp;11371;-Alpha;bc=NSM;ccc=230;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Cantillation_Mark;jt=T;lb=CM;na=COMBINING GRANTHA LETTER KA;SB=EX;-XIDS
+cp;11372;-Alpha;bc=NSM;ccc=230;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Cantillation_Mark;jt=T;lb=CM;na=COMBINING GRANTHA LETTER NA;SB=EX;-XIDS
+cp;11373;-Alpha;bc=NSM;ccc=230;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Cantillation_Mark;jt=T;lb=CM;na=COMBINING GRANTHA LETTER VI;SB=EX;-XIDS
+cp;11374;-Alpha;bc=NSM;ccc=230;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Cantillation_Mark;jt=T;lb=CM;na=COMBINING GRANTHA LETTER PA;SB=EX;-XIDS
unassigned;11375..1137F
block;11400..1147F;age=9.0;Alpha;blk=Newa;gc=Lo;Gr_Base;IDC;IDS;InSC=Consonant;lb=AL;SB=LE;sc=Newa;WB=LE;XIDC;XIDS
@@ -24323,7 +24666,8 @@ unassigned;1145A
cp;1145B;-Alpha;gc=Po;-IDC;-IDS;InSC=Other;lb=BA;na=NEWA PLACEHOLDER MARK;SB=XX;Term;WB=XX;-XIDC;-XIDS
unassigned;1145C
cp;1145D;-Alpha;gc=Po;-IDC;-IDS;InSC=Other;na=NEWA INSERTION SIGN;SB=XX;WB=XX;-XIDC;-XIDS
-unassigned;1145E..1147F
+cp;1145E;age=11.0;-Alpha;bc=NSM;ccc=230;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Syllable_Modifier;jt=T;lb=CM;na=NEWA SANDHI MARK;SB=EX;WB=Extend;-XIDS
+unassigned;1145F..1147F
block;11480..114DF;age=7.0;Alpha;blk=Tirhuta;gc=Lo;Gr_Base;IDC;IDS;InSC=Consonant;lb=AL;SB=LE;sc=Tirh;WB=LE;XIDC;XIDS
# 11480..114DF Tirhuta
@@ -24742,7 +25086,8 @@ cp;11716;IDS;na=AHOM LETTER ALTERNATE GA;XIDS
cp;11717;IDS;na=AHOM LETTER GHA;XIDS
cp;11718;IDS;na=AHOM LETTER BHA;XIDS
cp;11719;IDS;na=AHOM LETTER JHA;XIDS
-unassigned;1171A..1171C
+cp;1171A;age=11.0;IDS;na=AHOM LETTER ALTERNATE BA;XIDS
+unassigned;1171B..1171C
# Medials
cp;1171D;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;InPC=Bottom;InSC=Consonant_Medial;jt=T;na=AHOM CONSONANT SIGN MEDIAL LA;SB=EX;WB=Extend
cp;1171E;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;InSC=Consonant_Medial;jt=T;na=AHOM CONSONANT SIGN MEDIAL RA;SB=EX;WB=Extend
@@ -24781,6 +25126,75 @@ cp;1173D;-Alpha;gc=Po;-IDC;InSC=Other;lb=BA;na=AHOM SIGN SECTION;SB=ST;STerm;Ter
cp;1173E;-Alpha;gc=Po;-IDC;InSC=Other;lb=BA;na=AHOM SIGN RULAI;SB=ST;STerm;Term;-XIDC
cp;1173F;-Alpha;gc=So;-IDC;InSC=Other;na=AHOM SYMBOL VI;SB=XX;-XIDC
+block;11800..1184F;age=11.0;Alpha;blk=Dogra;gc=Lo;Gr_Base;IDC;IDS;InSC=Consonant;lb=AL;SB=LE;sc=Dogr;WB=LE;XIDC;XIDS
+# 11800..1184F Dogra
+# Independent vowels
+cp;11800;InSC=Vowel_Independent;na=DOGRA LETTER A
+cp;11801;InSC=Vowel_Independent;na=DOGRA LETTER AA
+cp;11802;InSC=Vowel_Independent;na=DOGRA LETTER I
+cp;11803;InSC=Vowel_Independent;na=DOGRA LETTER II
+cp;11804;InSC=Vowel_Independent;na=DOGRA LETTER U
+cp;11805;InSC=Vowel_Independent;na=DOGRA LETTER UU
+cp;11806;InSC=Vowel_Independent;na=DOGRA LETTER E
+cp;11807;InSC=Vowel_Independent;na=DOGRA LETTER AI
+cp;11808;InSC=Vowel_Independent;na=DOGRA LETTER O
+cp;11809;InSC=Vowel_Independent;na=DOGRA LETTER AU
+# Consonants
+cp;1180A;na=DOGRA LETTER KA
+cp;1180B;na=DOGRA LETTER KHA
+cp;1180C;na=DOGRA LETTER GA
+cp;1180D;na=DOGRA LETTER GHA
+cp;1180E;na=DOGRA LETTER NGA
+cp;1180F;na=DOGRA LETTER CA
+cp;11810;na=DOGRA LETTER CHA
+cp;11811;na=DOGRA LETTER JA
+cp;11812;na=DOGRA LETTER JHA
+cp;11813;na=DOGRA LETTER NYA
+cp;11814;na=DOGRA LETTER TTA
+cp;11815;na=DOGRA LETTER TTHA
+cp;11816;na=DOGRA LETTER DDA
+cp;11817;na=DOGRA LETTER DDHA
+cp;11818;na=DOGRA LETTER NNA
+cp;11819;na=DOGRA LETTER TA
+cp;1181A;na=DOGRA LETTER THA
+cp;1181B;na=DOGRA LETTER DA
+cp;1181C;na=DOGRA LETTER DHA
+cp;1181D;na=DOGRA LETTER NA
+cp;1181E;na=DOGRA LETTER PA
+cp;1181F;na=DOGRA LETTER PHA
+cp;11820;na=DOGRA LETTER BA
+cp;11821;na=DOGRA LETTER BHA
+cp;11822;na=DOGRA LETTER MA
+cp;11823;na=DOGRA LETTER YA
+cp;11824;na=DOGRA LETTER RA
+cp;11825;na=DOGRA LETTER LA
+cp;11826;na=DOGRA LETTER VA
+cp;11827;na=DOGRA LETTER SHA
+cp;11828;na=DOGRA LETTER SSA
+cp;11829;na=DOGRA LETTER SA
+cp;1182A;na=DOGRA LETTER HA
+cp;1182B;na=DOGRA LETTER RRA
+# Dependent vowel signs
+cp;1182C;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=DOGRA VOWEL SIGN AA;SB=EX;WB=Extend;-XIDS
+cp;1182D;gc=Mc;GCB=SM;-IDS;InPC=Left;InSC=Vowel_Dependent;lb=CM;na=DOGRA VOWEL SIGN I;SB=EX;WB=Extend;-XIDS
+cp;1182E;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=DOGRA VOWEL SIGN II;SB=EX;WB=Extend;-XIDS
+cp;1182F;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Bottom;InSC=Vowel_Dependent;jt=T;lb=CM;na=DOGRA VOWEL SIGN U;SB=EX;WB=Extend;-XIDS
+cp;11830;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Bottom;InSC=Vowel_Dependent;jt=T;lb=CM;na=DOGRA VOWEL SIGN UU;SB=EX;WB=Extend;-XIDS
+cp;11831;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Bottom;InSC=Vowel_Dependent;jt=T;lb=CM;na=DOGRA VOWEL SIGN VOCALIC R;SB=EX;WB=Extend;-XIDS
+cp;11832;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Bottom;InSC=Vowel_Dependent;jt=T;lb=CM;na=DOGRA VOWEL SIGN VOCALIC RR;SB=EX;WB=Extend;-XIDS
+cp;11833;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Vowel_Dependent;jt=T;lb=CM;na=DOGRA VOWEL SIGN E;SB=EX;WB=Extend;-XIDS
+cp;11834;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Vowel_Dependent;jt=T;lb=CM;na=DOGRA VOWEL SIGN AI;SB=EX;WB=Extend;-XIDS
+cp;11835;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Vowel_Dependent;jt=T;lb=CM;na=DOGRA VOWEL SIGN O;SB=EX;WB=Extend;-XIDS
+cp;11836;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Vowel_Dependent;jt=T;lb=CM;na=DOGRA VOWEL SIGN AU;SB=EX;WB=Extend;-XIDS
+# Various signs
+cp;11837;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Bindu;jt=T;lb=CM;na=DOGRA SIGN ANUSVARA;SB=EX;WB=Extend;-XIDS
+cp;11838;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Visarga;lb=CM;na=DOGRA SIGN VISARGA;SB=EX;WB=Extend;-XIDS
+cp;11839;-Alpha;bc=NSM;ccc=9;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;Gr_Link;-IDS;InPC=Bottom;InSC=Virama;jt=T;lb=CM;na=DOGRA SIGN VIRAMA;SB=EX;WB=Extend;-XIDS
+cp;1183A;-Alpha;bc=NSM;ccc=7;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Bottom;InSC=Nukta;jt=T;lb=CM;na=DOGRA SIGN NUKTA;SB=EX;WB=Extend;-XIDS
+# Punctuation
+cp;1183B;-Alpha;gc=Po;-IDC;-IDS;InSC=Other;na=DOGRA ABBREVIATION SIGN;SB=XX;WB=XX;-XIDC;-XIDS
+unassigned;1183C..1184F
+
block;118A0..118FF;age=7.0;Alpha;blk=Warang_Citi;Cased;CWCM;gc=Ll;Gr_Base;IDC;IDS;lb=AL;SB=LO;sc=Wara;WB=LE;XIDC;XIDS
# 118A0..118FF Warang Citi
# Uppercase vowels
@@ -24887,8 +25301,8 @@ cp;11A03;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Bottom;InSC=Vowel_Depe
cp;11A04;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Vowel_Dependent;jt=T;lb=CM;na=ZANABAZAR SQUARE VOWEL SIGN E;SB=EX;WB=Extend;-XIDS
cp;11A05;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Vowel_Dependent;jt=T;lb=CM;na=ZANABAZAR SQUARE VOWEL SIGN OE;SB=EX;WB=Extend;-XIDS
cp;11A06;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Vowel_Dependent;jt=T;lb=CM;na=ZANABAZAR SQUARE VOWEL SIGN O;SB=EX;WB=Extend;-XIDS
-cp;11A07;gc=Mc;GCB=SM;-IDS;InPC=Top;InSC=Vowel_Dependent;lb=CM;na=ZANABAZAR SQUARE VOWEL SIGN AI;SB=EX;WB=Extend;-XIDS
-cp;11A08;gc=Mc;GCB=SM;-IDS;InPC=Top;InSC=Vowel_Dependent;lb=CM;na=ZANABAZAR SQUARE VOWEL SIGN AU;SB=EX;WB=Extend;-XIDS
+cp;11A07;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Vowel_Dependent;jt=T;lb=CM;na=ZANABAZAR SQUARE VOWEL SIGN AI;SB=EX;WB=Extend;-XIDS
+cp;11A08;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Vowel_Dependent;jt=T;lb=CM;na=ZANABAZAR SQUARE VOWEL SIGN AU;SB=EX;WB=Extend;-XIDS
cp;11A09;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Vowel_Dependent;jt=T;lb=CM;na=ZANABAZAR SQUARE VOWEL SIGN REVERSED I;SB=EX;WB=Extend;-XIDS
# Vowel length mark
cp;11A0A;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Bottom;InSC=Vowel_Dependent;jt=T;lb=CM;na=ZANABAZAR SQUARE VOWEL LENGTH MARK;SB=EX;WB=Extend;-XIDS
@@ -25054,7 +25468,8 @@ cp;11A99;-Alpha;bc=NSM;ccc=9;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;Gr_Link;-IDS;In
cp;11A9A;-Alpha;gc=Po;-IDC;-IDS;InSC=Other;lb=BA;na=SOYOMBO MARK TSHEG;SB=XX;WB=XX;-XIDC;-XIDS
cp;11A9B;-Alpha;gc=Po;-IDC;-IDS;InSC=Other;lb=BA;na=SOYOMBO MARK SHAD;SB=ST;STerm;Term;WB=XX;-XIDC;-XIDS
cp;11A9C;-Alpha;gc=Po;-IDC;-IDS;InSC=Other;lb=BA;na=SOYOMBO MARK DOUBLE SHAD;SB=ST;STerm;Term;WB=XX;-XIDC;-XIDS
-unassigned;11A9D;vo=U
+# Elongation mark
+cp;11A9D;age=11.0;InSC=Avagraha;na=SOYOMBO MARK PLUTA
# Head marks
cp;11A9E;-Alpha;gc=Po;-IDC;-IDS;InSC=Other;lb=BB;na=SOYOMBO HEAD MARK WITH MOON AND SUN AND TRIPLE FLAME;SB=XX;WB=XX;-XIDC;-XIDS
cp;11A9F;-Alpha;gc=Po;-IDC;-IDS;InSC=Other;lb=BB;na=SOYOMBO HEAD MARK WITH MOON AND SUN AND FLAME;SB=XX;WB=XX;-XIDC;-XIDS
@@ -25413,6 +25828,118 @@ cp;11D58;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=MASARAM GONDI DIGIT EIGHT;nt=De;
cp;11D59;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=MASARAM GONDI DIGIT NINE;nt=De;nv=9;SB=NU;WB=NU;-XIDS
unassigned;11D5A..11D5F
+block;11D60..11DAF;age=11.0;Alpha;blk=Gunjala_Gondi;gc=Lo;Gr_Base;IDC;IDS;InSC=Consonant;lb=AL;SB=LE;sc=Gong;WB=LE;XIDC;XIDS
+# 11D60..11DAF Gunjala Gondi
+# Independent vowels
+cp;11D60;InSC=Vowel_Independent;na=GUNJALA GONDI LETTER A
+cp;11D61;InSC=Vowel_Independent;na=GUNJALA GONDI LETTER AA
+cp;11D62;InSC=Vowel_Independent;na=GUNJALA GONDI LETTER I
+cp;11D63;InSC=Vowel_Independent;na=GUNJALA GONDI LETTER II
+cp;11D64;InSC=Vowel_Independent;na=GUNJALA GONDI LETTER U
+cp;11D65;InSC=Vowel_Independent;na=GUNJALA GONDI LETTER UU
+unassigned;11D66
+cp;11D67;InSC=Vowel_Independent;na=GUNJALA GONDI LETTER EE
+cp;11D68;InSC=Vowel_Independent;na=GUNJALA GONDI LETTER AI
+unassigned;11D69
+cp;11D6A;InSC=Vowel_Independent;na=GUNJALA GONDI LETTER OO
+cp;11D6B;InSC=Vowel_Independent;na=GUNJALA GONDI LETTER AU
+# Consonants
+cp;11D6C;na=GUNJALA GONDI LETTER YA
+cp;11D6D;na=GUNJALA GONDI LETTER VA
+cp;11D6E;na=GUNJALA GONDI LETTER BA
+cp;11D6F;na=GUNJALA GONDI LETTER BHA
+cp;11D70;na=GUNJALA GONDI LETTER MA
+cp;11D71;na=GUNJALA GONDI LETTER KA
+cp;11D72;na=GUNJALA GONDI LETTER KHA
+cp;11D73;na=GUNJALA GONDI LETTER TA
+cp;11D74;na=GUNJALA GONDI LETTER THA
+cp;11D75;na=GUNJALA GONDI LETTER LA
+cp;11D76;na=GUNJALA GONDI LETTER GA
+cp;11D77;na=GUNJALA GONDI LETTER GHA
+cp;11D78;na=GUNJALA GONDI LETTER DA
+cp;11D79;na=GUNJALA GONDI LETTER DHA
+cp;11D7A;na=GUNJALA GONDI LETTER NA
+cp;11D7B;na=GUNJALA GONDI LETTER CA
+cp;11D7C;na=GUNJALA GONDI LETTER CHA
+cp;11D7D;na=GUNJALA GONDI LETTER TTA
+cp;11D7E;na=GUNJALA GONDI LETTER TTHA
+cp;11D7F;na=GUNJALA GONDI LETTER LLA
+cp;11D80;na=GUNJALA GONDI LETTER JA
+cp;11D81;na=GUNJALA GONDI LETTER JHA
+cp;11D82;na=GUNJALA GONDI LETTER DDA
+cp;11D83;na=GUNJALA GONDI LETTER DDHA
+cp;11D84;na=GUNJALA GONDI LETTER NGA
+cp;11D85;na=GUNJALA GONDI LETTER PA
+cp;11D86;na=GUNJALA GONDI LETTER PHA
+cp;11D87;na=GUNJALA GONDI LETTER HA
+cp;11D88;na=GUNJALA GONDI LETTER RA
+cp;11D89;na=GUNJALA GONDI LETTER SA
+# Dependent vowel signs
+cp;11D8A;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=GUNJALA GONDI VOWEL SIGN AA;SB=EX;WB=Extend;-XIDS
+cp;11D8B;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=GUNJALA GONDI VOWEL SIGN I;SB=EX;WB=Extend;-XIDS
+cp;11D8C;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=GUNJALA GONDI VOWEL SIGN II;SB=EX;WB=Extend;-XIDS
+cp;11D8D;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=GUNJALA GONDI VOWEL SIGN U;SB=EX;WB=Extend;-XIDS
+cp;11D8E;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=GUNJALA GONDI VOWEL SIGN UU;SB=EX;WB=Extend;-XIDS
+unassigned;11D8F
+cp;11D90;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Vowel_Dependent;jt=T;lb=CM;na=GUNJALA GONDI VOWEL SIGN EE;SB=EX;WB=Extend;-XIDS
+cp;11D91;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Vowel_Dependent;jt=T;lb=CM;na=GUNJALA GONDI VOWEL SIGN AI;SB=EX;WB=Extend;-XIDS
+unassigned;11D92
+cp;11D93;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=GUNJALA GONDI VOWEL SIGN OO;SB=EX;WB=Extend;-XIDS
+cp;11D94;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=GUNJALA GONDI VOWEL SIGN AU;SB=EX;WB=Extend;-XIDS
+# Various signs
+cp;11D95;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Bindu;jt=T;lb=CM;na=GUNJALA GONDI SIGN ANUSVARA;SB=EX;WB=Extend;-XIDS
+cp;11D96;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Visarga;lb=CM;na=GUNJALA GONDI SIGN VISARGA;SB=EX;WB=Extend;-XIDS
+# Virama
+cp;11D97;-Alpha;bc=NSM;ccc=9;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;Gr_Link;-IDS;InSC=Invisible_Stacker;jt=T;lb=CM;na=GUNJALA GONDI VIRAMA;SB=EX;WB=Extend;-XIDS
+# Symbol
+cp;11D98;InSC=Other;na=GUNJALA GONDI OM
+unassigned;11D99..11D9F
+# Digits
+cp;11DA0;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=GUNJALA GONDI DIGIT ZERO;nt=De;nv=0;SB=NU;WB=NU;-XIDS
+cp;11DA1;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=GUNJALA GONDI DIGIT ONE;nt=De;nv=1;SB=NU;WB=NU;-XIDS
+cp;11DA2;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=GUNJALA GONDI DIGIT TWO;nt=De;nv=2;SB=NU;WB=NU;-XIDS
+cp;11DA3;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=GUNJALA GONDI DIGIT THREE;nt=De;nv=3;SB=NU;WB=NU;-XIDS
+cp;11DA4;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=GUNJALA GONDI DIGIT FOUR;nt=De;nv=4;SB=NU;WB=NU;-XIDS
+cp;11DA5;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=GUNJALA GONDI DIGIT FIVE;nt=De;nv=5;SB=NU;WB=NU;-XIDS
+cp;11DA6;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=GUNJALA GONDI DIGIT SIX;nt=De;nv=6;SB=NU;WB=NU;-XIDS
+cp;11DA7;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=GUNJALA GONDI DIGIT SEVEN;nt=De;nv=7;SB=NU;WB=NU;-XIDS
+cp;11DA8;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=GUNJALA GONDI DIGIT EIGHT;nt=De;nv=8;SB=NU;WB=NU;-XIDS
+cp;11DA9;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=GUNJALA GONDI DIGIT NINE;nt=De;nv=9;SB=NU;WB=NU;-XIDS
+unassigned;11DAA..11DAF
+
+block;11EE0..11EFF;age=11.0;Alpha;blk=Makasar;gc=Lo;Gr_Base;IDC;IDS;InSC=Consonant;lb=AL;SB=LE;sc=Maka;WB=LE;XIDC;XIDS
+# 11EE0..11EFF Makasar
+# Consonants
+cp;11EE0;na=MAKASAR LETTER KA
+cp;11EE1;na=MAKASAR LETTER GA
+cp;11EE2;na=MAKASAR LETTER NGA
+cp;11EE3;na=MAKASAR LETTER PA
+cp;11EE4;na=MAKASAR LETTER BA
+cp;11EE5;na=MAKASAR LETTER MA
+cp;11EE6;na=MAKASAR LETTER TA
+cp;11EE7;na=MAKASAR LETTER DA
+cp;11EE8;na=MAKASAR LETTER NA
+cp;11EE9;na=MAKASAR LETTER CA
+cp;11EEA;na=MAKASAR LETTER JA
+cp;11EEB;na=MAKASAR LETTER NYA
+cp;11EEC;na=MAKASAR LETTER YA
+cp;11EED;na=MAKASAR LETTER RA
+cp;11EEE;na=MAKASAR LETTER LA
+cp;11EEF;na=MAKASAR LETTER VA
+cp;11EF0;na=MAKASAR LETTER SA
+cp;11EF1;na=MAKASAR LETTER A
+# Consonant reduplicator
+cp;11EF2;InSC=Consonant_Placeholder;na=MAKASAR ANGKA
+# Vowel signs
+cp;11EF3;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Vowel_Dependent;jt=T;lb=CM;na=MAKASAR VOWEL SIGN I;SB=EX;WB=Extend;-XIDS
+cp;11EF4;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Bottom;InSC=Vowel_Dependent;jt=T;lb=CM;na=MAKASAR VOWEL SIGN U;SB=EX;WB=Extend;-XIDS
+cp;11EF5;gc=Mc;GCB=SM;-IDS;InPC=Left;InSC=Vowel_Dependent;lb=CM;na=MAKASAR VOWEL SIGN E;SB=EX;WB=Extend;-XIDS
+cp;11EF6;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=MAKASAR VOWEL SIGN O;SB=EX;WB=Extend;-XIDS
+# Punctuation
+cp;11EF7;-Alpha;gc=Po;-IDC;-IDS;InSC=Other;na=MAKASAR PASSIMBANG;SB=ST;STerm;Term;WB=XX;-XIDC;-XIDS
+cp;11EF8;-Alpha;gc=Po;-IDC;-IDS;InSC=Other;na=MAKASAR END OF SECTION;SB=ST;STerm;Term;WB=XX;-XIDC;-XIDS
+unassigned;11EF9..11EFF
+
block;12000..123FF;age=5.0;Alpha;blk=Cuneiform;gc=Lo;Gr_Base;IDC;IDS;lb=AL;SB=LE;sc=Xsux;WB=LE;XIDC;XIDS
# 12000..123FF Cuneiform
# Signs
@@ -29191,6 +29718,108 @@ cp;16B8D;na=PAHAWH HMONG CLAN SIGN TSWB
cp;16B8E;na=PAHAWH HMONG CLAN SIGN KWM
cp;16B8F;na=PAHAWH HMONG CLAN SIGN VWJ
+block;16E40..16E9F;age=11.0;Alpha;blk=Medefaidrin;Cased;CWCM;gc=Ll;Gr_Base;IDC;IDS;lb=AL;SB=LO;sc=Medf;WB=LE;XIDC;XIDS
+# 16E40..16E9F Medefaidrin
+# Uppercase letters
+cp;16E40;cf=16E60;CWCF;CWKCF;CWL;gc=Lu;na=MEDEFAIDRIN CAPITAL LETTER M;NFKC_CF=16E60;SB=UP;scf=16E60;slc=16E60;Upper
+cp;16E41;cf=16E61;CWCF;CWKCF;CWL;gc=Lu;na=MEDEFAIDRIN CAPITAL LETTER S;NFKC_CF=16E61;SB=UP;scf=16E61;slc=16E61;Upper
+cp;16E42;cf=16E62;CWCF;CWKCF;CWL;gc=Lu;na=MEDEFAIDRIN CAPITAL LETTER V;NFKC_CF=16E62;SB=UP;scf=16E62;slc=16E62;Upper
+cp;16E43;cf=16E63;CWCF;CWKCF;CWL;gc=Lu;na=MEDEFAIDRIN CAPITAL LETTER W;NFKC_CF=16E63;SB=UP;scf=16E63;slc=16E63;Upper
+cp;16E44;cf=16E64;CWCF;CWKCF;CWL;gc=Lu;na=MEDEFAIDRIN CAPITAL LETTER ATIU;NFKC_CF=16E64;SB=UP;scf=16E64;slc=16E64;Upper
+cp;16E45;cf=16E65;CWCF;CWKCF;CWL;gc=Lu;na=MEDEFAIDRIN CAPITAL LETTER Z;NFKC_CF=16E65;SB=UP;scf=16E65;slc=16E65;Upper
+cp;16E46;cf=16E66;CWCF;CWKCF;CWL;gc=Lu;na=MEDEFAIDRIN CAPITAL LETTER KP;NFKC_CF=16E66;SB=UP;scf=16E66;slc=16E66;Upper
+cp;16E47;cf=16E67;CWCF;CWKCF;CWL;gc=Lu;na=MEDEFAIDRIN CAPITAL LETTER P;NFKC_CF=16E67;SB=UP;scf=16E67;slc=16E67;Upper
+cp;16E48;cf=16E68;CWCF;CWKCF;CWL;gc=Lu;na=MEDEFAIDRIN CAPITAL LETTER T;NFKC_CF=16E68;SB=UP;scf=16E68;slc=16E68;Upper
+cp;16E49;cf=16E69;CWCF;CWKCF;CWL;gc=Lu;na=MEDEFAIDRIN CAPITAL LETTER G;NFKC_CF=16E69;SB=UP;scf=16E69;slc=16E69;Upper
+cp;16E4A;cf=16E6A;CWCF;CWKCF;CWL;gc=Lu;na=MEDEFAIDRIN CAPITAL LETTER F;NFKC_CF=16E6A;SB=UP;scf=16E6A;slc=16E6A;Upper
+cp;16E4B;cf=16E6B;CWCF;CWKCF;CWL;gc=Lu;na=MEDEFAIDRIN CAPITAL LETTER I;NFKC_CF=16E6B;SB=UP;scf=16E6B;slc=16E6B;Upper
+cp;16E4C;cf=16E6C;CWCF;CWKCF;CWL;gc=Lu;na=MEDEFAIDRIN CAPITAL LETTER K;NFKC_CF=16E6C;SB=UP;scf=16E6C;slc=16E6C;Upper
+cp;16E4D;cf=16E6D;CWCF;CWKCF;CWL;gc=Lu;na=MEDEFAIDRIN CAPITAL LETTER A;NFKC_CF=16E6D;SB=UP;scf=16E6D;slc=16E6D;Upper
+cp;16E4E;cf=16E6E;CWCF;CWKCF;CWL;gc=Lu;na=MEDEFAIDRIN CAPITAL LETTER J;NFKC_CF=16E6E;SB=UP;scf=16E6E;slc=16E6E;Upper
+cp;16E4F;cf=16E6F;CWCF;CWKCF;CWL;gc=Lu;na=MEDEFAIDRIN CAPITAL LETTER E;NFKC_CF=16E6F;SB=UP;scf=16E6F;slc=16E6F;Upper
+cp;16E50;cf=16E70;CWCF;CWKCF;CWL;gc=Lu;na=MEDEFAIDRIN CAPITAL LETTER B;NFKC_CF=16E70;SB=UP;scf=16E70;slc=16E70;Upper
+cp;16E51;cf=16E71;CWCF;CWKCF;CWL;gc=Lu;na=MEDEFAIDRIN CAPITAL LETTER C;NFKC_CF=16E71;SB=UP;scf=16E71;slc=16E71;Upper
+cp;16E52;cf=16E72;CWCF;CWKCF;CWL;gc=Lu;na=MEDEFAIDRIN CAPITAL LETTER U;NFKC_CF=16E72;SB=UP;scf=16E72;slc=16E72;Upper
+cp;16E53;cf=16E73;CWCF;CWKCF;CWL;gc=Lu;na=MEDEFAIDRIN CAPITAL LETTER YU;NFKC_CF=16E73;SB=UP;scf=16E73;slc=16E73;Upper
+cp;16E54;cf=16E74;CWCF;CWKCF;CWL;gc=Lu;na=MEDEFAIDRIN CAPITAL LETTER L;NFKC_CF=16E74;SB=UP;scf=16E74;slc=16E74;Upper
+cp;16E55;cf=16E75;CWCF;CWKCF;CWL;gc=Lu;na=MEDEFAIDRIN CAPITAL LETTER Q;NFKC_CF=16E75;SB=UP;scf=16E75;slc=16E75;Upper
+cp;16E56;cf=16E76;CWCF;CWKCF;CWL;gc=Lu;na=MEDEFAIDRIN CAPITAL LETTER HP;Name_Alias=correction=MEDEFAIDRIN CAPITAL LETTER H;NFKC_CF=16E76;SB=UP;scf=16E76;slc=16E76;Upper
+cp;16E57;cf=16E77;CWCF;CWKCF;CWL;gc=Lu;na=MEDEFAIDRIN CAPITAL LETTER NY;Name_Alias=correction=MEDEFAIDRIN CAPITAL LETTER NG;NFKC_CF=16E77;SB=UP;scf=16E77;slc=16E77;Upper
+cp;16E58;cf=16E78;CWCF;CWKCF;CWL;gc=Lu;na=MEDEFAIDRIN CAPITAL LETTER X;NFKC_CF=16E78;SB=UP;scf=16E78;slc=16E78;Upper
+cp;16E59;cf=16E79;CWCF;CWKCF;CWL;gc=Lu;na=MEDEFAIDRIN CAPITAL LETTER D;NFKC_CF=16E79;SB=UP;scf=16E79;slc=16E79;Upper
+cp;16E5A;cf=16E7A;CWCF;CWKCF;CWL;gc=Lu;na=MEDEFAIDRIN CAPITAL LETTER OE;NFKC_CF=16E7A;SB=UP;scf=16E7A;slc=16E7A;Upper
+cp;16E5B;cf=16E7B;CWCF;CWKCF;CWL;gc=Lu;na=MEDEFAIDRIN CAPITAL LETTER N;NFKC_CF=16E7B;SB=UP;scf=16E7B;slc=16E7B;Upper
+cp;16E5C;cf=16E7C;CWCF;CWKCF;CWL;gc=Lu;na=MEDEFAIDRIN CAPITAL LETTER R;NFKC_CF=16E7C;SB=UP;scf=16E7C;slc=16E7C;Upper
+cp;16E5D;cf=16E7D;CWCF;CWKCF;CWL;gc=Lu;na=MEDEFAIDRIN CAPITAL LETTER O;NFKC_CF=16E7D;SB=UP;scf=16E7D;slc=16E7D;Upper
+cp;16E5E;cf=16E7E;CWCF;CWKCF;CWL;gc=Lu;na=MEDEFAIDRIN CAPITAL LETTER AI;NFKC_CF=16E7E;SB=UP;scf=16E7E;slc=16E7E;Upper
+cp;16E5F;cf=16E7F;CWCF;CWKCF;CWL;gc=Lu;na=MEDEFAIDRIN CAPITAL LETTER Y;NFKC_CF=16E7F;SB=UP;scf=16E7F;slc=16E7F;Upper
+# Lowercase letters
+cp;16E60;CWT;CWU;Lower;na=MEDEFAIDRIN SMALL LETTER M;stc=16E40;suc=16E40
+cp;16E61;CWT;CWU;Lower;na=MEDEFAIDRIN SMALL LETTER S;stc=16E41;suc=16E41
+cp;16E62;CWT;CWU;Lower;na=MEDEFAIDRIN SMALL LETTER V;stc=16E42;suc=16E42
+cp;16E63;CWT;CWU;Lower;na=MEDEFAIDRIN SMALL LETTER W;stc=16E43;suc=16E43
+cp;16E64;CWT;CWU;Lower;na=MEDEFAIDRIN SMALL LETTER ATIU;stc=16E44;suc=16E44
+cp;16E65;CWT;CWU;Lower;na=MEDEFAIDRIN SMALL LETTER Z;stc=16E45;suc=16E45
+cp;16E66;CWT;CWU;Lower;na=MEDEFAIDRIN SMALL LETTER KP;stc=16E46;suc=16E46
+cp;16E67;CWT;CWU;Lower;na=MEDEFAIDRIN SMALL LETTER P;stc=16E47;suc=16E47
+cp;16E68;CWT;CWU;Lower;na=MEDEFAIDRIN SMALL LETTER T;stc=16E48;suc=16E48
+cp;16E69;CWT;CWU;Lower;na=MEDEFAIDRIN SMALL LETTER G;stc=16E49;suc=16E49
+cp;16E6A;CWT;CWU;Lower;na=MEDEFAIDRIN SMALL LETTER F;stc=16E4A;suc=16E4A
+cp;16E6B;CWT;CWU;Lower;na=MEDEFAIDRIN SMALL LETTER I;stc=16E4B;suc=16E4B
+cp;16E6C;CWT;CWU;Lower;na=MEDEFAIDRIN SMALL LETTER K;stc=16E4C;suc=16E4C
+cp;16E6D;CWT;CWU;Lower;na=MEDEFAIDRIN SMALL LETTER A;stc=16E4D;suc=16E4D
+cp;16E6E;CWT;CWU;Lower;na=MEDEFAIDRIN SMALL LETTER J;stc=16E4E;suc=16E4E
+cp;16E6F;CWT;CWU;Lower;na=MEDEFAIDRIN SMALL LETTER E;stc=16E4F;suc=16E4F
+cp;16E70;CWT;CWU;Lower;na=MEDEFAIDRIN SMALL LETTER B;stc=16E50;suc=16E50
+cp;16E71;CWT;CWU;Lower;na=MEDEFAIDRIN SMALL LETTER C;stc=16E51;suc=16E51
+cp;16E72;CWT;CWU;Lower;na=MEDEFAIDRIN SMALL LETTER U;stc=16E52;suc=16E52
+cp;16E73;CWT;CWU;Lower;na=MEDEFAIDRIN SMALL LETTER YU;stc=16E53;suc=16E53
+cp;16E74;CWT;CWU;Lower;na=MEDEFAIDRIN SMALL LETTER L;stc=16E54;suc=16E54
+cp;16E75;CWT;CWU;Lower;na=MEDEFAIDRIN SMALL LETTER Q;stc=16E55;suc=16E55
+cp;16E76;CWT;CWU;Lower;na=MEDEFAIDRIN SMALL LETTER HP;Name_Alias=correction=MEDEFAIDRIN SMALL LETTER H;stc=16E56;suc=16E56
+cp;16E77;CWT;CWU;Lower;na=MEDEFAIDRIN SMALL LETTER NY;Name_Alias=correction=MEDEFAIDRIN SMALL LETTER NG;stc=16E57;suc=16E57
+cp;16E78;CWT;CWU;Lower;na=MEDEFAIDRIN SMALL LETTER X;stc=16E58;suc=16E58
+cp;16E79;CWT;CWU;Lower;na=MEDEFAIDRIN SMALL LETTER D;stc=16E59;suc=16E59
+cp;16E7A;CWT;CWU;Lower;na=MEDEFAIDRIN SMALL LETTER OE;stc=16E5A;suc=16E5A
+cp;16E7B;CWT;CWU;Lower;na=MEDEFAIDRIN SMALL LETTER N;stc=16E5B;suc=16E5B
+cp;16E7C;CWT;CWU;Lower;na=MEDEFAIDRIN SMALL LETTER R;stc=16E5C;suc=16E5C
+cp;16E7D;CWT;CWU;Lower;na=MEDEFAIDRIN SMALL LETTER O;stc=16E5D;suc=16E5D
+cp;16E7E;CWT;CWU;Lower;na=MEDEFAIDRIN SMALL LETTER AI;stc=16E5E;suc=16E5E
+cp;16E7F;CWT;CWU;Lower;na=MEDEFAIDRIN SMALL LETTER Y;stc=16E5F;suc=16E5F
+# Digits
+cp;16E80;-Alpha;-Cased;-CWCM;gc=No;-IDC;-IDS;na=MEDEFAIDRIN DIGIT ZERO;nt=Nu;nv=0;SB=XX;WB=XX;-XIDC;-XIDS
+cp;16E81;-Alpha;-Cased;-CWCM;gc=No;-IDC;-IDS;na=MEDEFAIDRIN DIGIT ONE;nt=Nu;nv=1;SB=XX;WB=XX;-XIDC;-XIDS
+cp;16E82;-Alpha;-Cased;-CWCM;gc=No;-IDC;-IDS;na=MEDEFAIDRIN DIGIT TWO;nt=Nu;nv=2;SB=XX;WB=XX;-XIDC;-XIDS
+cp;16E83;-Alpha;-Cased;-CWCM;gc=No;-IDC;-IDS;na=MEDEFAIDRIN DIGIT THREE;nt=Nu;nv=3;SB=XX;WB=XX;-XIDC;-XIDS
+cp;16E84;-Alpha;-Cased;-CWCM;gc=No;-IDC;-IDS;na=MEDEFAIDRIN DIGIT FOUR;nt=Nu;nv=4;SB=XX;WB=XX;-XIDC;-XIDS
+cp;16E85;-Alpha;-Cased;-CWCM;gc=No;-IDC;-IDS;na=MEDEFAIDRIN DIGIT FIVE;nt=Nu;nv=5;SB=XX;WB=XX;-XIDC;-XIDS
+cp;16E86;-Alpha;-Cased;-CWCM;gc=No;-IDC;-IDS;na=MEDEFAIDRIN DIGIT SIX;nt=Nu;nv=6;SB=XX;WB=XX;-XIDC;-XIDS
+cp;16E87;-Alpha;-Cased;-CWCM;gc=No;-IDC;-IDS;na=MEDEFAIDRIN DIGIT SEVEN;nt=Nu;nv=7;SB=XX;WB=XX;-XIDC;-XIDS
+cp;16E88;-Alpha;-Cased;-CWCM;gc=No;-IDC;-IDS;na=MEDEFAIDRIN DIGIT EIGHT;nt=Nu;nv=8;SB=XX;WB=XX;-XIDC;-XIDS
+cp;16E89;-Alpha;-Cased;-CWCM;gc=No;-IDC;-IDS;na=MEDEFAIDRIN DIGIT NINE;nt=Nu;nv=9;SB=XX;WB=XX;-XIDC;-XIDS
+# Numbers
+cp;16E8A;-Alpha;-Cased;-CWCM;gc=No;-IDC;-IDS;na=MEDEFAIDRIN NUMBER TEN;nt=Nu;nv=10;SB=XX;WB=XX;-XIDC;-XIDS
+cp;16E8B;-Alpha;-Cased;-CWCM;gc=No;-IDC;-IDS;na=MEDEFAIDRIN NUMBER ELEVEN;nt=Nu;nv=11;SB=XX;WB=XX;-XIDC;-XIDS
+cp;16E8C;-Alpha;-Cased;-CWCM;gc=No;-IDC;-IDS;na=MEDEFAIDRIN NUMBER TWELVE;nt=Nu;nv=12;SB=XX;WB=XX;-XIDC;-XIDS
+cp;16E8D;-Alpha;-Cased;-CWCM;gc=No;-IDC;-IDS;na=MEDEFAIDRIN NUMBER THIRTEEN;nt=Nu;nv=13;SB=XX;WB=XX;-XIDC;-XIDS
+cp;16E8E;-Alpha;-Cased;-CWCM;gc=No;-IDC;-IDS;na=MEDEFAIDRIN NUMBER FOURTEEN;nt=Nu;nv=14;SB=XX;WB=XX;-XIDC;-XIDS
+cp;16E8F;-Alpha;-Cased;-CWCM;gc=No;-IDC;-IDS;na=MEDEFAIDRIN NUMBER FIFTEEN;nt=Nu;nv=15;SB=XX;WB=XX;-XIDC;-XIDS
+cp;16E90;-Alpha;-Cased;-CWCM;gc=No;-IDC;-IDS;na=MEDEFAIDRIN NUMBER SIXTEEN;nt=Nu;nv=16;SB=XX;WB=XX;-XIDC;-XIDS
+cp;16E91;-Alpha;-Cased;-CWCM;gc=No;-IDC;-IDS;na=MEDEFAIDRIN NUMBER SEVENTEEN;nt=Nu;nv=17;SB=XX;WB=XX;-XIDC;-XIDS
+cp;16E92;-Alpha;-Cased;-CWCM;gc=No;-IDC;-IDS;na=MEDEFAIDRIN NUMBER EIGHTEEN;nt=Nu;nv=18;SB=XX;WB=XX;-XIDC;-XIDS
+cp;16E93;-Alpha;-Cased;-CWCM;gc=No;-IDC;-IDS;na=MEDEFAIDRIN NUMBER NINETEEN;nt=Nu;nv=19;SB=XX;WB=XX;-XIDC;-XIDS
+# Alternate digits
+cp;16E94;-Alpha;-Cased;-CWCM;gc=No;-IDC;-IDS;na=MEDEFAIDRIN DIGIT ONE ALTERNATE FORM;nt=Nu;nv=1;SB=XX;WB=XX;-XIDC;-XIDS
+cp;16E95;-Alpha;-Cased;-CWCM;gc=No;-IDC;-IDS;na=MEDEFAIDRIN DIGIT TWO ALTERNATE FORM;nt=Nu;nv=2;SB=XX;WB=XX;-XIDC;-XIDS
+cp;16E96;-Alpha;-Cased;-CWCM;gc=No;-IDC;-IDS;na=MEDEFAIDRIN DIGIT THREE ALTERNATE FORM;nt=Nu;nv=3;SB=XX;WB=XX;-XIDC;-XIDS
+# Punctuation
+cp;16E97;-Alpha;-Cased;-CWCM;gc=Po;-IDC;-IDS;lb=BA;na=MEDEFAIDRIN COMMA;SB=XX;Term;WB=XX;-XIDC;-XIDS
+cp;16E98;-Alpha;-Cased;-CWCM;gc=Po;-IDC;-IDS;lb=BA;na=MEDEFAIDRIN FULL STOP;SB=ST;STerm;Term;WB=XX;-XIDC;-XIDS
+# Symbols
+cp;16E99;-Alpha;-Cased;-CWCM;gc=Po;-IDC;-IDS;na=MEDEFAIDRIN SYMBOL AIVA;SB=XX;WB=XX;-XIDC;-XIDS
+cp;16E9A;-Alpha;-Cased;-CWCM;gc=Po;-IDC;-IDS;na=MEDEFAIDRIN EXCLAMATION OH;SB=XX;WB=XX;-XIDC;-XIDS
+unassigned;16E9B..16E9F
+
block;16F00..16F9F;age=6.1;Alpha;blk=Miao;gc=Lo;Gr_Base;IDC;IDS;lb=AL;SB=LE;sc=Plrd;WB=LE;XIDC;XIDS
# 16F00..16F9F Miao
# Consonant onsets
@@ -29343,10 +29972,12 @@ cp;16FE0;age=9.0;na=TANGUT ITERATION MARK;sc=Tang
cp;16FE1;age=10.0;na=NUSHU ITERATION MARK;sc=Nshu
unassigned;16FE2..16FFF;vo=U
-block;17000..187FF;age=9.0;Alpha;blk=Tangut;ea=W;gc=Lo;Gr_Base;IDC;Ideo;IDS;lb=ID;SB=LE;sc=Tang;vo=U;XIDC;XIDS
-# 17000..187EC Tangut
-algnamesrange;17000..187EC;han;TANGUT IDEOGRAPH-
-unassigned;187ED..187FF;vo=U
+block;17000..187FF;Alpha;blk=Tangut;ea=W;gc=Lo;Gr_Base;IDC;Ideo;IDS;lb=ID;SB=LE;sc=Tang;vo=U;XIDC;XIDS
+# 17000..187F1 Tangut
+algnamesrange;17000..187F1;han;TANGUT IDEOGRAPH-
+cp;17000..187EC;age=9.0
+cp;187ED..187F1;age=11.0
+unassigned;187F2..187FF;vo=U
block;18800..18AFF;age=9.0;Alpha;blk=Tangut_Components;ea=W;gc=Lo;Gr_Base;IDC;Ideo;IDS;lb=ID;SB=LE;sc=Tang;vo=U;XIDC;XIDS
# 18800..18AFF Tangut Components
@@ -31631,6 +32262,31 @@ cp;1D244;bc=NSM;ccc=230;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;IDC;jt=T;lb=CM;na=COMBIN
cp;1D245;na=GREEK MUSICAL LEIMMA
unassigned;1D246..1D24F
+block;1D2E0..1D2FF;age=11.0;blk=Mayan_Numerals;gc=No;Gr_Base;lb=AL;nt=Nu;sc=Zyyy;vo=U
+# 1D2E0..1D2FF Mayan Numerals
+# Mayan numerals
+cp;1D2E0;na=MAYAN NUMERAL ZERO;nv=0
+cp;1D2E1;na=MAYAN NUMERAL ONE;nv=1
+cp;1D2E2;na=MAYAN NUMERAL TWO;nv=2
+cp;1D2E3;na=MAYAN NUMERAL THREE;nv=3
+cp;1D2E4;na=MAYAN NUMERAL FOUR;nv=4
+cp;1D2E5;na=MAYAN NUMERAL FIVE;nv=5
+cp;1D2E6;na=MAYAN NUMERAL SIX;nv=6
+cp;1D2E7;na=MAYAN NUMERAL SEVEN;nv=7
+cp;1D2E8;na=MAYAN NUMERAL EIGHT;nv=8
+cp;1D2E9;na=MAYAN NUMERAL NINE;nv=9
+cp;1D2EA;na=MAYAN NUMERAL TEN;nv=10
+cp;1D2EB;na=MAYAN NUMERAL ELEVEN;nv=11
+cp;1D2EC;na=MAYAN NUMERAL TWELVE;nv=12
+cp;1D2ED;na=MAYAN NUMERAL THIRTEEN;nv=13
+cp;1D2EE;na=MAYAN NUMERAL FOURTEEN;nv=14
+cp;1D2EF;na=MAYAN NUMERAL FIFTEEN;nv=15
+cp;1D2F0;na=MAYAN NUMERAL SIXTEEN;nv=16
+cp;1D2F1;na=MAYAN NUMERAL SEVENTEEN;nv=17
+cp;1D2F2;na=MAYAN NUMERAL EIGHTEEN;nv=18
+cp;1D2F3;na=MAYAN NUMERAL NINETEEN;nv=19
+unassigned;1D2F4..1D2FF;vo=U
+
block;1D300..1D35F;age=4.0;bc=ON;blk=Tai_Xuan_Jing;gc=So;Gr_Base;lb=AL;sc=Zyyy;vo=U
# 1D300..1D35F Tai Xuan Jing Symbols
# Monogram
@@ -31725,10 +32381,10 @@ cp;1D355;na=TETRAGRAM FOR LABOURING
cp;1D356;na=TETRAGRAM FOR FOSTERING
unassigned;1D357..1D35F;vo=U
-block;1D360..1D37F;age=5.0;blk=Counting_Rod;gc=No;Gr_Base;lb=AL;nt=Nu;sc=Zyyy;scx=Hani;vo=U
+block;1D360..1D37F;age=5.0;blk=Counting_Rod;gc=No;Gr_Base;lb=AL;nt=Nu;nv=1;sc=Zyyy;scx=Hani;vo=U
# 1D360..1D37F Counting Rod Numerals
# Counting rod units
-cp;1D360;na=COUNTING ROD UNIT DIGIT ONE;nv=1
+cp;1D360;na=COUNTING ROD UNIT DIGIT ONE
cp;1D361;na=COUNTING ROD UNIT DIGIT TWO;nv=2
cp;1D362;na=COUNTING ROD UNIT DIGIT THREE;nv=3
cp;1D363;na=COUNTING ROD UNIT DIGIT FOUR;nv=4
@@ -31746,7 +32402,16 @@ cp;1D36E;na=COUNTING ROD TENS DIGIT SIX;nv=60
cp;1D36F;na=COUNTING ROD TENS DIGIT SEVEN;nv=70
cp;1D370;na=COUNTING ROD TENS DIGIT EIGHT;nv=80
cp;1D371;na=COUNTING ROD TENS DIGIT NINE;nv=90
-unassigned;1D372..1D37F;vo=U
+# Ideographic tally marks
+cp;1D372;age=11.0;na=IDEOGRAPHIC TALLY MARK ONE;scx=<script>
+cp;1D373;age=11.0;na=IDEOGRAPHIC TALLY MARK TWO;nv=2;scx=<script>
+cp;1D374;age=11.0;na=IDEOGRAPHIC TALLY MARK THREE;nv=3;scx=<script>
+cp;1D375;age=11.0;na=IDEOGRAPHIC TALLY MARK FOUR;nv=4;scx=<script>
+cp;1D376;age=11.0;na=IDEOGRAPHIC TALLY MARK FIVE;nv=5;scx=<script>
+# Western tally marks
+cp;1D377;age=11.0;na=TALLY MARK ONE;scx=<script>
+cp;1D378;age=11.0;na=TALLY MARK FIVE;nv=5;scx=<script>
+unassigned;1D379..1D37F;vo=U
block;1D400..1D7FF;age=3.1;Alpha;blk=Math_Alphanum;Cased;CWKCF;dt=Font;gc=Ll;Gr_Base;IDC;IDS;lb=AL;Math;NFKC_QC=N;NFKD_QC=N;SB=LO;sc=Zyyy;WB=LE;XIDC;XIDS
# 1D400..1D7FF Mathematical Alphanumeric Symbols
@@ -33891,7 +34556,95 @@ cp;1E95E;-Alpha;-Cased;-CWCM;gc=Po;-IDC;-IDS;jt=U;lb=OP;na=ADLAM INITIAL EXCLAMA
cp;1E95F;-Alpha;-Cased;-CWCM;gc=Po;-IDC;-IDS;jt=U;lb=OP;na=ADLAM INITIAL QUESTION MARK;SB=XX;WB=XX;-XIDC;-XIDS
# No block
-unassigned;1E960..1EDFF;bc=R
+unassigned;1E960..1EC6F;bc=R
+
+block;1EC70..1ECBF;age=11.0;bc=AL;blk=Indic_Siyaq_Numbers;gc=No;Gr_Base;lb=AL;nt=Nu;nv=100000;sc=Zyyy
+# 1EC70..1ECBF Indic Siyaq Numbers
+unassigned;1EC70;bc=AL
+# Primary numbers
+cp;1EC71;na=INDIC SIYAQ NUMBER ONE;nv=1
+cp;1EC72;na=INDIC SIYAQ NUMBER TWO;nv=2
+cp;1EC73;na=INDIC SIYAQ NUMBER THREE;nv=3
+cp;1EC74;na=INDIC SIYAQ NUMBER FOUR;nv=4
+cp;1EC75;na=INDIC SIYAQ NUMBER FIVE;nv=5
+cp;1EC76;na=INDIC SIYAQ NUMBER SIX;nv=6
+cp;1EC77;na=INDIC SIYAQ NUMBER SEVEN;nv=7
+cp;1EC78;na=INDIC SIYAQ NUMBER EIGHT;nv=8
+cp;1EC79;na=INDIC SIYAQ NUMBER NINE;nv=9
+# Tens
+cp;1EC7A;na=INDIC SIYAQ NUMBER TEN;nv=10
+cp;1EC7B;na=INDIC SIYAQ NUMBER TWENTY;nv=20
+cp;1EC7C;na=INDIC SIYAQ NUMBER THIRTY;nv=30
+cp;1EC7D;na=INDIC SIYAQ NUMBER FORTY;nv=40
+cp;1EC7E;na=INDIC SIYAQ NUMBER FIFTY;nv=50
+cp;1EC7F;na=INDIC SIYAQ NUMBER SIXTY;nv=60
+cp;1EC80;na=INDIC SIYAQ NUMBER SEVENTY;nv=70
+cp;1EC81;na=INDIC SIYAQ NUMBER EIGHTY;nv=80
+cp;1EC82;na=INDIC SIYAQ NUMBER NINETY;nv=90
+# Hundreds
+cp;1EC83;na=INDIC SIYAQ NUMBER ONE HUNDRED;nv=100
+cp;1EC84;na=INDIC SIYAQ NUMBER TWO HUNDRED;nv=200
+cp;1EC85;na=INDIC SIYAQ NUMBER THREE HUNDRED;nv=300
+cp;1EC86;na=INDIC SIYAQ NUMBER FOUR HUNDRED;nv=400
+cp;1EC87;na=INDIC SIYAQ NUMBER FIVE HUNDRED;nv=500
+cp;1EC88;na=INDIC SIYAQ NUMBER SIX HUNDRED;nv=600
+cp;1EC89;na=INDIC SIYAQ NUMBER SEVEN HUNDRED;nv=700
+cp;1EC8A;na=INDIC SIYAQ NUMBER EIGHT HUNDRED;nv=800
+cp;1EC8B;na=INDIC SIYAQ NUMBER NINE HUNDRED;nv=900
+# Thousands
+cp;1EC8C;na=INDIC SIYAQ NUMBER ONE THOUSAND;nv=1000
+cp;1EC8D;na=INDIC SIYAQ NUMBER TWO THOUSAND;nv=2000
+cp;1EC8E;na=INDIC SIYAQ NUMBER THREE THOUSAND;nv=3000
+cp;1EC8F;na=INDIC SIYAQ NUMBER FOUR THOUSAND;nv=4000
+cp;1EC90;na=INDIC SIYAQ NUMBER FIVE THOUSAND;nv=5000
+cp;1EC91;na=INDIC SIYAQ NUMBER SIX THOUSAND;nv=6000
+cp;1EC92;na=INDIC SIYAQ NUMBER SEVEN THOUSAND;nv=7000
+cp;1EC93;na=INDIC SIYAQ NUMBER EIGHT THOUSAND;nv=8000
+cp;1EC94;na=INDIC SIYAQ NUMBER NINE THOUSAND;nv=9000
+# Ten thousands
+cp;1EC95;na=INDIC SIYAQ NUMBER TEN THOUSAND;nv=10000
+cp;1EC96;na=INDIC SIYAQ NUMBER TWENTY THOUSAND;nv=20000
+cp;1EC97;na=INDIC SIYAQ NUMBER THIRTY THOUSAND;nv=30000
+cp;1EC98;na=INDIC SIYAQ NUMBER FORTY THOUSAND;nv=40000
+cp;1EC99;na=INDIC SIYAQ NUMBER FIFTY THOUSAND;nv=50000
+cp;1EC9A;na=INDIC SIYAQ NUMBER SIXTY THOUSAND;nv=60000
+cp;1EC9B;na=INDIC SIYAQ NUMBER SEVENTY THOUSAND;nv=70000
+cp;1EC9C;na=INDIC SIYAQ NUMBER EIGHTY THOUSAND;nv=80000
+cp;1EC9D;na=INDIC SIYAQ NUMBER NINETY THOUSAND;nv=90000
+# Lakhs
+cp;1EC9E;na=INDIC SIYAQ NUMBER LAKH
+cp;1EC9F;na=INDIC SIYAQ NUMBER LAKHAN;nv=200000
+cp;1ECA0;na=INDIC SIYAQ LAKH MARK
+# Crores
+cp;1ECA1;na=INDIC SIYAQ NUMBER KAROR;nv=10000000
+cp;1ECA2;na=INDIC SIYAQ NUMBER KARORAN;nv=20000000
+# Prefixed forms of primary numbers
+cp;1ECA3;na=INDIC SIYAQ NUMBER PREFIXED ONE;nv=1
+cp;1ECA4;na=INDIC SIYAQ NUMBER PREFIXED TWO;nv=2
+cp;1ECA5;na=INDIC SIYAQ NUMBER PREFIXED THREE;nv=3
+cp;1ECA6;na=INDIC SIYAQ NUMBER PREFIXED FOUR;nv=4
+cp;1ECA7;na=INDIC SIYAQ NUMBER PREFIXED FIVE;nv=5
+cp;1ECA8;na=INDIC SIYAQ NUMBER PREFIXED SIX;nv=6
+cp;1ECA9;na=INDIC SIYAQ NUMBER PREFIXED SEVEN;nv=7
+cp;1ECAA;na=INDIC SIYAQ NUMBER PREFIXED EIGHT;nv=8
+cp;1ECAB;na=INDIC SIYAQ NUMBER PREFIXED NINE;nv=9
+# Placeholder
+cp;1ECAC;gc=So;lb=PO;na=INDIC SIYAQ PLACEHOLDER;nt=None;nv=NaN
+# Fractions
+cp;1ECAD;na=INDIC SIYAQ FRACTION ONE QUARTER;nv=1/4
+cp;1ECAE;na=INDIC SIYAQ FRACTION ONE HALF;nv=1/2
+cp;1ECAF;na=INDIC SIYAQ FRACTION THREE QUARTERS;nv=3/4
+# Currency sign
+cp;1ECB0;gc=Sc;lb=PO;na=INDIC SIYAQ RUPEE MARK;nt=None;nv=NaN
+# Alternate forms
+cp;1ECB1;na=INDIC SIYAQ NUMBER ALTERNATE ONE;nv=1
+cp;1ECB2;na=INDIC SIYAQ NUMBER ALTERNATE TWO;nv=2
+cp;1ECB3;na=INDIC SIYAQ NUMBER ALTERNATE TEN THOUSAND;nv=10000
+cp;1ECB4;na=INDIC SIYAQ ALTERNATE LAKH MARK
+unassigned;1ECB5..1ECBF;bc=AL
+
+# No block
+unassigned;1ECC0..1EDFF;bc=R
block;1EE00..1EEFF;age=6.1;Alpha;bc=AL;blk=Arabic_Math;CWKCF;dt=Font;gc=Lo;Gr_Base;IDC;IDS;lb=AL;Math;NFKC_QC=N;NFKD_QC=N;SB=LE;sc=Arab;WB=LE;XIDC;XIDS
# 1EE00..1EEFF Arabic Mathematical Alphabetic Symbols
@@ -34083,7 +34836,7 @@ unassigned;1EEF2..1EEFF;bc=AL
# No block
unassigned;1EF00..1EFFF;bc=R
-block;1F000..1F02F;age=5.1;bc=ON;blk=Mahjong;gc=So;Gr_Base;lb=ID;sc=Zyyy;vo=U
+block;1F000..1F02F;age=5.1;bc=ON;blk=Mahjong;ExtPict;gc=So;Gr_Base;lb=ID;sc=Zyyy;vo=U
# 1F000..1F02F Mahjong Tiles
# Prevailing wind tiles
cp;1F000;na=MAHJONG TILE EAST WIND
@@ -34091,7 +34844,7 @@ cp;1F001;na=MAHJONG TILE SOUTH WIND
cp;1F002;na=MAHJONG TILE WEST WIND
cp;1F003;na=MAHJONG TILE NORTH WIND
# Dragon tiles
-cp;1F004;ea=W;Emoji;Emoji_Presentation;na=MAHJONG TILE RED DRAGON
+cp;1F004;ea=W;Emoji;EPres;na=MAHJONG TILE RED DRAGON
cp;1F005;na=MAHJONG TILE GREEN DRAGON
cp;1F006;na=MAHJONG TILE WHITE DRAGON
# Character suit tiles
@@ -34137,9 +34890,9 @@ cp;1F029;na=MAHJONG TILE WINTER
# Miscellaneous tiles
cp;1F02A;na=MAHJONG TILE JOKER
cp;1F02B;na=MAHJONG TILE BACK
-unassigned;1F02C..1F02F;lb=ID;vo=U
+unassigned;1F02C..1F02F;ExtPict;lb=ID;vo=U
-block;1F030..1F09F;age=5.1;bc=ON;blk=Domino;gc=So;Gr_Base;lb=ID;sc=Zyyy;vo=U
+block;1F030..1F09F;age=5.1;bc=ON;blk=Domino;ExtPict;gc=So;Gr_Base;lb=ID;sc=Zyyy;vo=U
# 1F030..1F09F Domino Tiles
# Horizontal tiles
cp;1F030;na=DOMINO TILE HORIZONTAL BACK
@@ -34257,9 +35010,9 @@ cp;1F090;na=DOMINO TILE VERTICAL-06-03
cp;1F091;na=DOMINO TILE VERTICAL-06-04
cp;1F092;na=DOMINO TILE VERTICAL-06-05
cp;1F093;na=DOMINO TILE VERTICAL-06-06
-unassigned;1F094..1F09F;lb=ID;vo=U
+unassigned;1F094..1F09F;ExtPict;lb=ID;vo=U
-block;1F0A0..1F0FF;age=6.0;bc=ON;blk=Playing_Cards;gc=So;Gr_Base;lb=ID;sc=Zyyy;vo=U
+block;1F0A0..1F0FF;age=6.0;bc=ON;blk=Playing_Cards;ExtPict;gc=So;Gr_Base;lb=ID;sc=Zyyy;vo=U
# 1F0A0..1F0FF Playing Cards
# Back of card
cp;1F0A0;na=PLAYING CARD BACK
@@ -34278,7 +35031,7 @@ cp;1F0AB;na=PLAYING CARD JACK OF SPADES
cp;1F0AC;na=PLAYING CARD KNIGHT OF SPADES
cp;1F0AD;na=PLAYING CARD QUEEN OF SPADES
cp;1F0AE;na=PLAYING CARD KING OF SPADES
-unassigned;1F0AF..1F0B0;lb=ID;vo=U
+unassigned;1F0AF..1F0B0;ExtPict;lb=ID;vo=U
# Hearts or cups
cp;1F0B1;na=PLAYING CARD ACE OF HEARTS
cp;1F0B2;na=PLAYING CARD TWO OF HEARTS
@@ -34296,7 +35049,7 @@ cp;1F0BD;na=PLAYING CARD QUEEN OF HEARTS
cp;1F0BE;na=PLAYING CARD KING OF HEARTS
# Joker
cp;1F0BF;age=7.0;na=PLAYING CARD RED JOKER
-unassigned;1F0C0;lb=ID;vo=U
+unassigned;1F0C0;ExtPict;lb=ID;vo=U
# Diamonds or pentacles
cp;1F0C1;na=PLAYING CARD ACE OF DIAMONDS
cp;1F0C2;na=PLAYING CARD TWO OF DIAMONDS
@@ -34313,8 +35066,8 @@ cp;1F0CC;na=PLAYING CARD KNIGHT OF DIAMONDS
cp;1F0CD;na=PLAYING CARD QUEEN OF DIAMONDS
cp;1F0CE;na=PLAYING CARD KING OF DIAMONDS
# Joker
-cp;1F0CF;ea=W;Emoji;Emoji_Presentation;na=PLAYING CARD BLACK JOKER
-unassigned;1F0D0;lb=ID;vo=U
+cp;1F0CF;ea=W;Emoji;EPres;na=PLAYING CARD BLACK JOKER
+unassigned;1F0D0;ExtPict;lb=ID;vo=U
# Clubs or wands
cp;1F0D1;na=PLAYING CARD ACE OF CLUBS
cp;1F0D2;na=PLAYING CARD TWO OF CLUBS
@@ -34355,7 +35108,7 @@ cp;1F0F2;age=7.0;na=PLAYING CARD TRUMP-18
cp;1F0F3;age=7.0;na=PLAYING CARD TRUMP-19
cp;1F0F4;age=7.0;na=PLAYING CARD TRUMP-20
cp;1F0F5;age=7.0;na=PLAYING CARD TRUMP-21
-unassigned;1F0F6..1F0FF;lb=ID;vo=U
+unassigned;1F0F6..1F0FF;ExtPict;lb=ID;vo=U
block;1F100..1F1FF;age=6.0;blk=Enclosed_Alphanum_Sup;ea=A;gc=So;Gr_Base;lb=AI;sc=Zyyy;vo=U
# 1F100..1F1FF Enclosed Alphanumeric Supplement
@@ -34375,7 +35128,7 @@ cp;1F10A;age=5.2;bc=EN;CWKCF;dm=0039 002C;dt=Com;gc=No;na=DIGIT NINE COMMA;NFKC_
# Circled sans-serif digits
cp;1F10B;age=7.0;bc=ON;ea=N;gc=No;na=DINGBAT CIRCLED SANS-SERIF DIGIT ZERO;nt=Nu;nv=0
cp;1F10C;age=7.0;bc=ON;ea=N;gc=No;na=DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO;nt=Nu;nv=0
-unassigned;1F10D..1F10F;lb=ID;vo=U
+unassigned;1F10D..1F10F;ExtPict;lb=ID;vo=U
# Parenthesized Latin letters
cp;1F110;age=5.2;CWKCF;dm=0028 0041 0029;dt=Com;FC_NFKC=0028 0061 0029;na=PARENTHESIZED LATIN CAPITAL LETTER A;NFKC_CF=0028 0061 0029;NFKC_QC=N;NFKD_QC=N
cp;1F111;age=5.2;CWKCF;dm=0028 0042 0029;dt=Com;FC_NFKC=0028 0062 0029;na=PARENTHESIZED LATIN CAPITAL LETTER B;NFKC_CF=0028 0062 0029;NFKC_QC=N;NFKD_QC=N
@@ -34408,10 +35161,10 @@ cp;1F12A;age=5.2;CWKCF;dm=3014 0053 3015;dt=Com;FC_NFKC=3014 0073 3015;na=TORTOI
# Circled italic Latin letters
cp;1F12B;age=5.2;CWKCF;dm=0043;dt=Enc;FC_NFKC=0063;na=CIRCLED ITALIC LATIN CAPITAL LETTER C;NFKC_CF=0063;NFKC_QC=N;NFKD_QC=N
cp;1F12C;age=5.2;CWKCF;dm=0052;dt=Enc;FC_NFKC=0072;na=CIRCLED ITALIC LATIN CAPITAL LETTER R;NFKC_CF=0072;NFKC_QC=N;NFKD_QC=N
-# Circled Latin letter sequences
+# Circled Latin letters or letter sequences
cp;1F12D;age=5.2;CWKCF;dm=0043 0044;dt=Enc;FC_NFKC=0063 0064;na=CIRCLED CD;NFKC_CF=0063 0064;NFKC_QC=N;NFKD_QC=N
cp;1F12E;age=5.2;CWKCF;dm=0057 005A;dt=Enc;ea=N;FC_NFKC=0077 007A;lb=AL;na=CIRCLED WZ;NFKC_CF=0077 007A;NFKC_QC=N;NFKD_QC=N
-unassigned;1F12F;lb=ID;vo=U
+cp;1F12F;age=11.0;bc=ON;ea=N;ExtPict;lb=AL;na=COPYLEFT SYMBOL
# Squared Latin letters
cp;1F130;Alpha;Cased;CWKCF;dm=0041;dt=Sqr;FC_NFKC=0061;na=SQUARED LATIN CAPITAL LETTER A;NFKC_CF=0061;NFKC_QC=N;NFKD_QC=N;SB=UP;Upper;WB=LE
cp;1F131;age=5.2;Alpha;Cased;CWKCF;dm=0042;dt=Sqr;FC_NFKC=0062;na=SQUARED LATIN CAPITAL LETTER B;NFKC_CF=0062;NFKC_QC=N;NFKD_QC=N;SB=UP;Upper;WB=LE
@@ -34475,10 +35228,10 @@ cp;1F169;Alpha;Cased;na=NEGATIVE CIRCLED LATIN CAPITAL LETTER Z;SB=UP;Upper;WB=L
# Raised squared Latin sequences
cp;1F16A;age=6.1;bc=ON;CWKCF;dm=004D 0043;dt=Sup;ea=N;FC_NFKC=006D 0063;lb=AL;na=RAISED MC SIGN;NFKC_CF=006D 0063;NFKC_QC=N;NFKD_QC=N
cp;1F16B;age=6.1;bc=ON;CWKCF;dm=004D 0044;dt=Sup;ea=N;FC_NFKC=006D 0064;lb=AL;na=RAISED MD SIGN;NFKC_CF=006D 0064;NFKC_QC=N;NFKD_QC=N
-unassigned;1F16C..1F16F;lb=ID;vo=U
+unassigned;1F16C..1F16F;ExtPict;lb=ID;vo=U
# White on black squared Latin letters
-cp;1F170;Alpha;Cased;Emoji;na=NEGATIVE SQUARED LATIN CAPITAL LETTER A;SB=UP;Upper;WB=LE
-cp;1F171;Alpha;Cased;Emoji;na=NEGATIVE SQUARED LATIN CAPITAL LETTER B;SB=UP;Upper;WB=LE
+cp;1F170;Alpha;Cased;Emoji;ExtPict;na=NEGATIVE SQUARED LATIN CAPITAL LETTER A;SB=UP;Upper;WB=LE
+cp;1F171;Alpha;Cased;Emoji;ExtPict;na=NEGATIVE SQUARED LATIN CAPITAL LETTER B;SB=UP;Upper;WB=LE
cp;1F172;Alpha;Cased;na=NEGATIVE SQUARED LATIN CAPITAL LETTER C;SB=UP;Upper;WB=LE
cp;1F173;Alpha;Cased;na=NEGATIVE SQUARED LATIN CAPITAL LETTER D;SB=UP;Upper;WB=LE
cp;1F174;Alpha;Cased;na=NEGATIVE SQUARED LATIN CAPITAL LETTER E;SB=UP;Upper;WB=LE
@@ -34491,8 +35244,8 @@ cp;1F17A;Alpha;Cased;na=NEGATIVE SQUARED LATIN CAPITAL LETTER K;SB=UP;Upper;WB=L
cp;1F17B;age=5.2;Alpha;Cased;na=NEGATIVE SQUARED LATIN CAPITAL LETTER L;SB=UP;Upper;WB=LE
cp;1F17C;age=5.2;Alpha;Cased;na=NEGATIVE SQUARED LATIN CAPITAL LETTER M;SB=UP;Upper;WB=LE
cp;1F17D;Alpha;Cased;na=NEGATIVE SQUARED LATIN CAPITAL LETTER N;SB=UP;Upper;WB=LE
-cp;1F17E;Alpha;Cased;Emoji;na=NEGATIVE SQUARED LATIN CAPITAL LETTER O;SB=UP;Upper;WB=LE
-cp;1F17F;age=5.2;Alpha;Cased;Emoji;na=NEGATIVE SQUARED LATIN CAPITAL LETTER P;SB=UP;Upper;WB=LE
+cp;1F17E;Alpha;Cased;Emoji;ExtPict;na=NEGATIVE SQUARED LATIN CAPITAL LETTER O;SB=UP;Upper;WB=LE
+cp;1F17F;age=5.2;Alpha;Cased;Emoji;ExtPict;na=NEGATIVE SQUARED LATIN CAPITAL LETTER P;SB=UP;Upper;WB=LE
cp;1F180;Alpha;Cased;na=NEGATIVE SQUARED LATIN CAPITAL LETTER Q;SB=UP;Upper;WB=LE
cp;1F181;Alpha;Cased;na=NEGATIVE SQUARED LATIN CAPITAL LETTER R;SB=UP;Upper;WB=LE
cp;1F182;Alpha;Cased;na=NEGATIVE SQUARED LATIN CAPITAL LETTER S;SB=UP;Upper;WB=LE
@@ -34507,20 +35260,20 @@ cp;1F18A;age=5.2;na=CROSSED NEGATIVE SQUARED LATIN CAPITAL LETTER P
cp;1F18B;age=5.2;na=NEGATIVE SQUARED IC
cp;1F18C;age=5.2;na=NEGATIVE SQUARED PA
cp;1F18D;age=5.2;na=NEGATIVE SQUARED SA
-cp;1F18E;ea=W;Emoji;Emoji_Presentation;na=NEGATIVE SQUARED AB
+cp;1F18E;ea=W;Emoji;EPres;ExtPict;na=NEGATIVE SQUARED AB
cp;1F18F;na=NEGATIVE SQUARED WC
# Squared Latin letter sequences
cp;1F190;age=5.2;CWKCF;dm=0044 004A;dt=Sqr;FC_NFKC=0064 006A;na=SQUARE DJ;NFKC_CF=0064 006A;NFKC_QC=N;NFKD_QC=N
-cp;1F191;ea=W;Emoji;Emoji_Presentation;na=SQUARED CL
-cp;1F192;ea=W;Emoji;Emoji_Presentation;na=SQUARED COOL
-cp;1F193;ea=W;Emoji;Emoji_Presentation;na=SQUARED FREE
-cp;1F194;ea=W;Emoji;Emoji_Presentation;na=SQUARED ID
-cp;1F195;ea=W;Emoji;Emoji_Presentation;na=SQUARED NEW
-cp;1F196;ea=W;Emoji;Emoji_Presentation;na=SQUARED NG
-cp;1F197;ea=W;Emoji;Emoji_Presentation;na=SQUARED OK
-cp;1F198;ea=W;Emoji;Emoji_Presentation;na=SQUARED SOS
-cp;1F199;ea=W;Emoji;Emoji_Presentation;na=SQUARED UP WITH EXCLAMATION MARK
-cp;1F19A;ea=W;Emoji;Emoji_Presentation;na=SQUARED VS
+cp;1F191;ea=W;Emoji;EPres;ExtPict;na=SQUARED CL
+cp;1F192;ea=W;Emoji;EPres;ExtPict;na=SQUARED COOL
+cp;1F193;ea=W;Emoji;EPres;ExtPict;na=SQUARED FREE
+cp;1F194;ea=W;Emoji;EPres;ExtPict;na=SQUARED ID
+cp;1F195;ea=W;Emoji;EPres;ExtPict;na=SQUARED NEW
+cp;1F196;ea=W;Emoji;EPres;ExtPict;na=SQUARED NG
+cp;1F197;ea=W;Emoji;EPres;ExtPict;na=SQUARED OK
+cp;1F198;ea=W;Emoji;EPres;ExtPict;na=SQUARED SOS
+cp;1F199;ea=W;Emoji;EPres;ExtPict;na=SQUARED UP WITH EXCLAMATION MARK
+cp;1F19A;ea=W;Emoji;EPres;ExtPict;na=SQUARED VS
# Squared Latin letter sequences from ARIB STD B62
cp;1F19B;age=9.0;na=SQUARED THREE D
cp;1F19C;age=9.0;na=SQUARED SECOND SCREEN
@@ -34540,43 +35293,43 @@ cp;1F1A9;age=9.0;na=SQUARED LOSSLESS
cp;1F1AA;age=9.0;na=SQUARED SHV
cp;1F1AB;age=9.0;na=SQUARED UHD
cp;1F1AC;age=9.0;na=SQUARED VOD
-unassigned;1F1AD..1F1E5;lb=ID;vo=U
+unassigned;1F1AD..1F1E5;ExtPict;lb=ID;vo=U
# Regional indicator symbols
-cp;1F1E6;ea=N;Emoji;Emoji_Component;Emoji_Presentation;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER A;RI;WB=RI
-cp;1F1E7;ea=N;Emoji;Emoji_Component;Emoji_Presentation;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER B;RI;WB=RI
-cp;1F1E8;ea=N;Emoji;Emoji_Component;Emoji_Presentation;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER C;RI;WB=RI
-cp;1F1E9;ea=N;Emoji;Emoji_Component;Emoji_Presentation;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER D;RI;WB=RI
-cp;1F1EA;ea=N;Emoji;Emoji_Component;Emoji_Presentation;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER E;RI;WB=RI
-cp;1F1EB;ea=N;Emoji;Emoji_Component;Emoji_Presentation;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER F;RI;WB=RI
-cp;1F1EC;ea=N;Emoji;Emoji_Component;Emoji_Presentation;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER G;RI;WB=RI
-cp;1F1ED;ea=N;Emoji;Emoji_Component;Emoji_Presentation;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER H;RI;WB=RI
-cp;1F1EE;ea=N;Emoji;Emoji_Component;Emoji_Presentation;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER I;RI;WB=RI
-cp;1F1EF;ea=N;Emoji;Emoji_Component;Emoji_Presentation;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER J;RI;WB=RI
-cp;1F1F0;ea=N;Emoji;Emoji_Component;Emoji_Presentation;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER K;RI;WB=RI
-cp;1F1F1;ea=N;Emoji;Emoji_Component;Emoji_Presentation;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER L;RI;WB=RI
-cp;1F1F2;ea=N;Emoji;Emoji_Component;Emoji_Presentation;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER M;RI;WB=RI
-cp;1F1F3;ea=N;Emoji;Emoji_Component;Emoji_Presentation;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER N;RI;WB=RI
-cp;1F1F4;ea=N;Emoji;Emoji_Component;Emoji_Presentation;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER O;RI;WB=RI
-cp;1F1F5;ea=N;Emoji;Emoji_Component;Emoji_Presentation;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER P;RI;WB=RI
-cp;1F1F6;ea=N;Emoji;Emoji_Component;Emoji_Presentation;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER Q;RI;WB=RI
-cp;1F1F7;ea=N;Emoji;Emoji_Component;Emoji_Presentation;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER R;RI;WB=RI
-cp;1F1F8;ea=N;Emoji;Emoji_Component;Emoji_Presentation;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER S;RI;WB=RI
-cp;1F1F9;ea=N;Emoji;Emoji_Component;Emoji_Presentation;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER T;RI;WB=RI
-cp;1F1FA;ea=N;Emoji;Emoji_Component;Emoji_Presentation;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER U;RI;WB=RI
-cp;1F1FB;ea=N;Emoji;Emoji_Component;Emoji_Presentation;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER V;RI;WB=RI
-cp;1F1FC;ea=N;Emoji;Emoji_Component;Emoji_Presentation;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER W;RI;WB=RI
-cp;1F1FD;ea=N;Emoji;Emoji_Component;Emoji_Presentation;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER X;RI;WB=RI
-cp;1F1FE;ea=N;Emoji;Emoji_Component;Emoji_Presentation;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER Y;RI;WB=RI
-cp;1F1FF;ea=N;Emoji;Emoji_Component;Emoji_Presentation;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER Z;RI;WB=RI
+cp;1F1E6;ea=N;EComp;Emoji;EPres;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER A;RI;WB=RI
+cp;1F1E7;ea=N;EComp;Emoji;EPres;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER B;RI;WB=RI
+cp;1F1E8;ea=N;EComp;Emoji;EPres;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER C;RI;WB=RI
+cp;1F1E9;ea=N;EComp;Emoji;EPres;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER D;RI;WB=RI
+cp;1F1EA;ea=N;EComp;Emoji;EPres;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER E;RI;WB=RI
+cp;1F1EB;ea=N;EComp;Emoji;EPres;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER F;RI;WB=RI
+cp;1F1EC;ea=N;EComp;Emoji;EPres;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER G;RI;WB=RI
+cp;1F1ED;ea=N;EComp;Emoji;EPres;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER H;RI;WB=RI
+cp;1F1EE;ea=N;EComp;Emoji;EPres;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER I;RI;WB=RI
+cp;1F1EF;ea=N;EComp;Emoji;EPres;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER J;RI;WB=RI
+cp;1F1F0;ea=N;EComp;Emoji;EPres;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER K;RI;WB=RI
+cp;1F1F1;ea=N;EComp;Emoji;EPres;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER L;RI;WB=RI
+cp;1F1F2;ea=N;EComp;Emoji;EPres;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER M;RI;WB=RI
+cp;1F1F3;ea=N;EComp;Emoji;EPres;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER N;RI;WB=RI
+cp;1F1F4;ea=N;EComp;Emoji;EPres;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER O;RI;WB=RI
+cp;1F1F5;ea=N;EComp;Emoji;EPres;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER P;RI;WB=RI
+cp;1F1F6;ea=N;EComp;Emoji;EPres;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER Q;RI;WB=RI
+cp;1F1F7;ea=N;EComp;Emoji;EPres;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER R;RI;WB=RI
+cp;1F1F8;ea=N;EComp;Emoji;EPres;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER S;RI;WB=RI
+cp;1F1F9;ea=N;EComp;Emoji;EPres;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER T;RI;WB=RI
+cp;1F1FA;ea=N;EComp;Emoji;EPres;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER U;RI;WB=RI
+cp;1F1FB;ea=N;EComp;Emoji;EPres;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER V;RI;WB=RI
+cp;1F1FC;ea=N;EComp;Emoji;EPres;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER W;RI;WB=RI
+cp;1F1FD;ea=N;EComp;Emoji;EPres;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER X;RI;WB=RI
+cp;1F1FE;ea=N;EComp;Emoji;EPres;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER Y;RI;WB=RI
+cp;1F1FF;ea=N;EComp;Emoji;EPres;GCB=RI;lb=RI;na=REGIONAL INDICATOR SYMBOL LETTER Z;RI;WB=RI
block;1F200..1F2FF;age=5.2;blk=Enclosed_Ideographic_Sup;CWKCF;dt=Sqr;ea=W;gc=So;Gr_Base;lb=ID;NFKC_QC=N;NFKD_QC=N;sc=Zyyy;vo=U
# 1F200..1F2FF Enclosed Ideographic Supplement
# Squared hiragana from ARIB STD B24
cp;1F200;dm=307B 304B;na=SQUARE HIRAGANA HOKA;NFKC_CF=307B 304B;sc=Hira;vo=Tu
# Squared katakana
-cp;1F201;age=6.0;dm=30B3 30B3;Emoji;Emoji_Presentation;na=SQUARED KATAKANA KOKO;NFKC_CF=30B3 30B3;vo=Tu
-cp;1F202;age=6.0;dm=30B5;Emoji;na=SQUARED KATAKANA SA;NFKC_CF=30B5
-unassigned;1F203..1F20F;lb=ID;vo=U
+cp;1F201;age=6.0;dm=30B3 30B3;Emoji;EPres;ExtPict;na=SQUARED KATAKANA KOKO;NFKC_CF=30B3 30B3;vo=Tu
+cp;1F202;age=6.0;dm=30B5;Emoji;ExtPict;na=SQUARED KATAKANA SA;NFKC_CF=30B5
+unassigned;1F203..1F20F;ExtPict;lb=ID;vo=U
# Squared ideographs and kana from ARIB STD B24
cp;1F210;dm=624B;na=SQUARED CJK UNIFIED IDEOGRAPH-624B;NFKC_CF=624B
cp;1F211;dm=5B57;na=SQUARED CJK UNIFIED IDEOGRAPH-5B57;NFKC_CF=5B57
@@ -34588,7 +35341,7 @@ cp;1F216;dm=89E3;na=SQUARED CJK UNIFIED IDEOGRAPH-89E3;NFKC_CF=89E3
cp;1F217;dm=5929;na=SQUARED CJK UNIFIED IDEOGRAPH-5929;NFKC_CF=5929
cp;1F218;dm=4EA4;na=SQUARED CJK UNIFIED IDEOGRAPH-4EA4;NFKC_CF=4EA4
cp;1F219;dm=6620;na=SQUARED CJK UNIFIED IDEOGRAPH-6620;NFKC_CF=6620
-cp;1F21A;dm=7121;Emoji;Emoji_Presentation;na=SQUARED CJK UNIFIED IDEOGRAPH-7121;NFKC_CF=7121
+cp;1F21A;dm=7121;Emoji;EPres;ExtPict;na=SQUARED CJK UNIFIED IDEOGRAPH-7121;NFKC_CF=7121
cp;1F21B;dm=6599;na=SQUARED CJK UNIFIED IDEOGRAPH-6599;NFKC_CF=6599
cp;1F21C;dm=524D;na=SQUARED CJK UNIFIED IDEOGRAPH-524D;NFKC_CF=524D
cp;1F21D;dm=5F8C;na=SQUARED CJK UNIFIED IDEOGRAPH-5F8C;NFKC_CF=5F8C
@@ -34609,21 +35362,21 @@ cp;1F22B;dm=904A;na=SQUARED CJK UNIFIED IDEOGRAPH-904A;NFKC_CF=904A
cp;1F22C;dm=5DE6;na=SQUARED CJK UNIFIED IDEOGRAPH-5DE6;NFKC_CF=5DE6
cp;1F22D;dm=4E2D;na=SQUARED CJK UNIFIED IDEOGRAPH-4E2D;NFKC_CF=4E2D
cp;1F22E;dm=53F3;na=SQUARED CJK UNIFIED IDEOGRAPH-53F3;NFKC_CF=53F3
-cp;1F22F;dm=6307;Emoji;Emoji_Presentation;na=SQUARED CJK UNIFIED IDEOGRAPH-6307;NFKC_CF=6307
+cp;1F22F;dm=6307;Emoji;EPres;ExtPict;na=SQUARED CJK UNIFIED IDEOGRAPH-6307;NFKC_CF=6307
cp;1F230;dm=8D70;na=SQUARED CJK UNIFIED IDEOGRAPH-8D70;NFKC_CF=8D70
cp;1F231;dm=6253;na=SQUARED CJK UNIFIED IDEOGRAPH-6253;NFKC_CF=6253
# Squared ideographs
-cp;1F232;age=6.0;dm=7981;Emoji;Emoji_Presentation;na=SQUARED CJK UNIFIED IDEOGRAPH-7981;NFKC_CF=7981
-cp;1F233;age=6.0;dm=7A7A;Emoji;Emoji_Presentation;na=SQUARED CJK UNIFIED IDEOGRAPH-7A7A;NFKC_CF=7A7A
-cp;1F234;age=6.0;dm=5408;Emoji;Emoji_Presentation;na=SQUARED CJK UNIFIED IDEOGRAPH-5408;NFKC_CF=5408
-cp;1F235;age=6.0;dm=6E80;Emoji;Emoji_Presentation;na=SQUARED CJK UNIFIED IDEOGRAPH-6E80;NFKC_CF=6E80
-cp;1F236;age=6.0;dm=6709;Emoji;Emoji_Presentation;na=SQUARED CJK UNIFIED IDEOGRAPH-6709;NFKC_CF=6709
-cp;1F237;age=6.0;dm=6708;Emoji;na=SQUARED CJK UNIFIED IDEOGRAPH-6708;NFKC_CF=6708
-cp;1F238;age=6.0;dm=7533;Emoji;Emoji_Presentation;na=SQUARED CJK UNIFIED IDEOGRAPH-7533;NFKC_CF=7533
-cp;1F239;age=6.0;dm=5272;Emoji;Emoji_Presentation;na=SQUARED CJK UNIFIED IDEOGRAPH-5272;NFKC_CF=5272
-cp;1F23A;age=6.0;dm=55B6;Emoji;Emoji_Presentation;na=SQUARED CJK UNIFIED IDEOGRAPH-55B6;NFKC_CF=55B6
+cp;1F232;age=6.0;dm=7981;Emoji;EPres;ExtPict;na=SQUARED CJK UNIFIED IDEOGRAPH-7981;NFKC_CF=7981
+cp;1F233;age=6.0;dm=7A7A;Emoji;EPres;ExtPict;na=SQUARED CJK UNIFIED IDEOGRAPH-7A7A;NFKC_CF=7A7A
+cp;1F234;age=6.0;dm=5408;Emoji;EPres;ExtPict;na=SQUARED CJK UNIFIED IDEOGRAPH-5408;NFKC_CF=5408
+cp;1F235;age=6.0;dm=6E80;Emoji;EPres;ExtPict;na=SQUARED CJK UNIFIED IDEOGRAPH-6E80;NFKC_CF=6E80
+cp;1F236;age=6.0;dm=6709;Emoji;EPres;ExtPict;na=SQUARED CJK UNIFIED IDEOGRAPH-6709;NFKC_CF=6709
+cp;1F237;age=6.0;dm=6708;Emoji;ExtPict;na=SQUARED CJK UNIFIED IDEOGRAPH-6708;NFKC_CF=6708
+cp;1F238;age=6.0;dm=7533;Emoji;EPres;ExtPict;na=SQUARED CJK UNIFIED IDEOGRAPH-7533;NFKC_CF=7533
+cp;1F239;age=6.0;dm=5272;Emoji;EPres;ExtPict;na=SQUARED CJK UNIFIED IDEOGRAPH-5272;NFKC_CF=5272
+cp;1F23A;age=6.0;dm=55B6;Emoji;EPres;ExtPict;na=SQUARED CJK UNIFIED IDEOGRAPH-55B6;NFKC_CF=55B6
cp;1F23B;age=9.0;dm=914D;na=SQUARED CJK UNIFIED IDEOGRAPH-914D;NFKC_CF=914D
-unassigned;1F23C..1F23F;lb=ID;vo=U
+unassigned;1F23C..1F23F;ExtPict;lb=ID;vo=U
# Ideographs with tortoise shell brackets from ARIB STD B24
cp;1F240;dm=3014 672C 3015;dt=Com;na=TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C;NFKC_CF=3014 672C 3015
cp;1F241;dm=3014 4E09 3015;dt=Com;na=TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09;NFKC_CF=3014 4E09 3015
@@ -34634,21 +35387,21 @@ cp;1F245;dm=3014 6253 3015;dt=Com;na=TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGR
cp;1F246;dm=3014 76D7 3015;dt=Com;na=TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7;NFKC_CF=3014 76D7 3015
cp;1F247;dm=3014 52DD 3015;dt=Com;na=TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-52DD;NFKC_CF=3014 52DD 3015
cp;1F248;dm=3014 6557 3015;dt=Com;na=TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557;NFKC_CF=3014 6557 3015
-unassigned;1F249..1F24F;lb=ID;vo=U
+unassigned;1F249..1F24F;ExtPict;lb=ID;vo=U
# Circled ideographs
-cp;1F250;age=6.0;dm=5F97;dt=Enc;Emoji;Emoji_Presentation;na=CIRCLED IDEOGRAPH ADVANTAGE;NFKC_CF=5F97;scx=Hani
-cp;1F251;age=6.0;dm=53EF;dt=Enc;Emoji;Emoji_Presentation;na=CIRCLED IDEOGRAPH ACCEPT;NFKC_CF=53EF;scx=Hani
-unassigned;1F252..1F25F;lb=ID;vo=U
+cp;1F250;age=6.0;dm=5F97;dt=Enc;Emoji;EPres;ExtPict;na=CIRCLED IDEOGRAPH ADVANTAGE;NFKC_CF=5F97;scx=Hani
+cp;1F251;age=6.0;dm=53EF;dt=Enc;Emoji;EPres;ExtPict;na=CIRCLED IDEOGRAPH ACCEPT;NFKC_CF=53EF;scx=Hani
+unassigned;1F252..1F25F;ExtPict;lb=ID;vo=U
# Symbols for Chinese folk religion
-cp;1F260;age=10.0;bc=ON;-CWKCF;dt=None;na=ROUNDED SYMBOL FOR FU;NFKC_QC=Y;NFKD_QC=Y
-cp;1F261;age=10.0;bc=ON;-CWKCF;dt=None;na=ROUNDED SYMBOL FOR LU;NFKC_QC=Y;NFKD_QC=Y
-cp;1F262;age=10.0;bc=ON;-CWKCF;dt=None;na=ROUNDED SYMBOL FOR SHOU;NFKC_QC=Y;NFKD_QC=Y
-cp;1F263;age=10.0;bc=ON;-CWKCF;dt=None;na=ROUNDED SYMBOL FOR XI;NFKC_QC=Y;NFKD_QC=Y
-cp;1F264;age=10.0;bc=ON;-CWKCF;dt=None;na=ROUNDED SYMBOL FOR SHUANGXI;NFKC_QC=Y;NFKD_QC=Y
-cp;1F265;age=10.0;bc=ON;-CWKCF;dt=None;na=ROUNDED SYMBOL FOR CAI;NFKC_QC=Y;NFKD_QC=Y
-unassigned;1F266..1F2FF;lb=ID;vo=U
-
-block;1F300..1F5FF;age=6.0;bc=ON;blk=Misc_Pictographs;ea=W;Emoji;Emoji_Presentation;gc=So;Gr_Base;lb=ID;sc=Zyyy;vo=U
+cp;1F260;age=10.0;bc=ON;-CWKCF;dt=None;ExtPict;na=ROUNDED SYMBOL FOR FU;NFKC_QC=Y;NFKD_QC=Y
+cp;1F261;age=10.0;bc=ON;-CWKCF;dt=None;ExtPict;na=ROUNDED SYMBOL FOR LU;NFKC_QC=Y;NFKD_QC=Y
+cp;1F262;age=10.0;bc=ON;-CWKCF;dt=None;ExtPict;na=ROUNDED SYMBOL FOR SHOU;NFKC_QC=Y;NFKD_QC=Y
+cp;1F263;age=10.0;bc=ON;-CWKCF;dt=None;ExtPict;na=ROUNDED SYMBOL FOR XI;NFKC_QC=Y;NFKD_QC=Y
+cp;1F264;age=10.0;bc=ON;-CWKCF;dt=None;ExtPict;na=ROUNDED SYMBOL FOR SHUANGXI;NFKC_QC=Y;NFKD_QC=Y
+cp;1F265;age=10.0;bc=ON;-CWKCF;dt=None;ExtPict;na=ROUNDED SYMBOL FOR CAI;NFKC_QC=Y;NFKD_QC=Y
+unassigned;1F266..1F2FF;ExtPict;lb=ID;vo=U
+
+block;1F300..1F5FF;age=6.0;bc=ON;blk=Misc_Pictographs;ea=W;Emoji;EPres;ExtPict;gc=So;Gr_Base;lb=ID;sc=Zyyy;vo=U
# 1F300..1F5FF Miscellaneous Symbols and Pictographs
# Weather, landscape, and sky symbols
cp;1F300;na=CYCLONE
@@ -34659,7 +35412,7 @@ cp;1F304;na=SUNRISE OVER MOUNTAINS
cp;1F305;na=SUNRISE
cp;1F306;na=CITYSCAPE AT DUSK
cp;1F307;na=SUNSET OVER BUILDINGS
-cp;1F308;GCB=GAZ;na=RAINBOW;WB=GAZ
+cp;1F308;na=RAINBOW
cp;1F309;na=BRIDGE AT NIGHT
cp;1F30A;na=WATER WAVE
cp;1F30B;na=VOLCANO
@@ -34687,18 +35440,18 @@ cp;1F31E;na=SUN WITH FACE
cp;1F31F;na=GLOWING STAR
cp;1F320;na=SHOOTING STAR
# Weather symbols
-cp;1F321;age=7.0;ea=N;-Emoji_Presentation;na=THERMOMETER
-cp;1F322;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=BLACK DROPLET
-cp;1F323;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=WHITE SUN
-cp;1F324;age=7.0;ea=N;-Emoji_Presentation;na=WHITE SUN WITH SMALL CLOUD
-cp;1F325;age=7.0;ea=N;-Emoji_Presentation;na=WHITE SUN BEHIND CLOUD
-cp;1F326;age=7.0;ea=N;-Emoji_Presentation;na=WHITE SUN BEHIND CLOUD WITH RAIN
-cp;1F327;age=7.0;ea=N;-Emoji_Presentation;na=CLOUD WITH RAIN
-cp;1F328;age=7.0;ea=N;-Emoji_Presentation;na=CLOUD WITH SNOW
-cp;1F329;age=7.0;ea=N;-Emoji_Presentation;na=CLOUD WITH LIGHTNING
-cp;1F32A;age=7.0;ea=N;-Emoji_Presentation;na=CLOUD WITH TORNADO
-cp;1F32B;age=7.0;ea=N;-Emoji_Presentation;na=FOG
-cp;1F32C;age=7.0;ea=N;-Emoji_Presentation;na=WIND BLOWING FACE
+cp;1F321;age=7.0;ea=N;-EPres;na=THERMOMETER
+cp;1F322;age=7.0;ea=N;-Emoji;-EPres;na=BLACK DROPLET
+cp;1F323;age=7.0;ea=N;-Emoji;-EPres;na=WHITE SUN
+cp;1F324;age=7.0;ea=N;-EPres;na=WHITE SUN WITH SMALL CLOUD
+cp;1F325;age=7.0;ea=N;-EPres;na=WHITE SUN BEHIND CLOUD
+cp;1F326;age=7.0;ea=N;-EPres;na=WHITE SUN BEHIND CLOUD WITH RAIN
+cp;1F327;age=7.0;ea=N;-EPres;na=CLOUD WITH RAIN
+cp;1F328;age=7.0;ea=N;-EPres;na=CLOUD WITH SNOW
+cp;1F329;age=7.0;ea=N;-EPres;na=CLOUD WITH LIGHTNING
+cp;1F32A;age=7.0;ea=N;-EPres;na=CLOUD WITH TORNADO
+cp;1F32B;age=7.0;ea=N;-EPres;na=FOG
+cp;1F32C;age=7.0;ea=N;-EPres;na=WIND BLOWING FACE
# Food symbols
cp;1F32D;age=8.0;na=HOT DOG
cp;1F32E;age=8.0;na=TACO
@@ -34710,7 +35463,7 @@ cp;1F332;na=EVERGREEN TREE
cp;1F333;na=DECIDUOUS TREE
cp;1F334;na=PALM TREE
cp;1F335;na=CACTUS
-cp;1F336;age=7.0;ea=N;-Emoji_Presentation;na=HOT PEPPER
+cp;1F336;age=7.0;ea=N;-EPres;na=HOT PEPPER
cp;1F337;na=TULIP
cp;1F338;na=CHERRY BLOSSOM
cp;1F339;na=ROSE
@@ -34718,7 +35471,7 @@ cp;1F33A;na=HIBISCUS
cp;1F33B;na=SUNFLOWER
cp;1F33C;na=BLOSSOM
cp;1F33D;na=EAR OF MAIZE
-cp;1F33E;GCB=GAZ;na=EAR OF RICE;WB=GAZ
+cp;1F33E;na=EAR OF RICE
cp;1F33F;na=HERB
cp;1F340;na=FOUR LEAF CLOVER
cp;1F341;na=MAPLE LEAF
@@ -34773,7 +35526,7 @@ cp;1F36F;na=HONEY POT
cp;1F370;na=SHORTCAKE
cp;1F371;na=BENTO BOX
cp;1F372;na=POT OF FOOD
-cp;1F373;GCB=GAZ;na=COOKING;WB=GAZ
+cp;1F373;na=COOKING
cp;1F374;na=FORK AND KNIFE
# Beverage symbols
cp;1F375;na=TEACUP WITHOUT HANDLE
@@ -34785,7 +35538,7 @@ cp;1F37A;na=BEER MUG
cp;1F37B;na=CLINKING BEER MUGS
cp;1F37C;na=BABY BOTTLE
# Accommodation symbol
-cp;1F37D;age=7.0;ea=N;-Emoji_Presentation;na=FORK AND KNIFE WITH PLATE
+cp;1F37D;age=7.0;ea=N;-EPres;na=FORK AND KNIFE WITH PLATE
# Beverage and food symbols
cp;1F37E;age=8.0;na=BOTTLE WITH POPPING CORK
cp;1F37F;age=8.0;na=POPCORN
@@ -34795,7 +35548,7 @@ cp;1F381;na=WRAPPED PRESENT
cp;1F382;na=BIRTHDAY CAKE
cp;1F383;na=JACK-O-LANTERN
cp;1F384;na=CHRISTMAS TREE
-cp;1F385;Emoji_Modifier_Base;GCB=EB;lb=EB;na=FATHER CHRISTMAS;WB=EB
+cp;1F385;EBase;lb=EB;na=FATHER CHRISTMAS
cp;1F386;na=FIREWORKS
cp;1F387;na=FIREWORK SPARKLER
cp;1F388;na=BALLOON
@@ -34809,30 +35562,30 @@ cp;1F38F;na=CARP STREAMER
cp;1F390;na=WIND CHIME
cp;1F391;na=MOON VIEWING CEREMONY
cp;1F392;na=SCHOOL SATCHEL
-cp;1F393;GCB=GAZ;na=GRADUATION CAP;WB=GAZ
-cp;1F394;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=HEART WITH TIP ON THE LEFT
-cp;1F395;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=BOUQUET OF FLOWERS
-cp;1F396;age=7.0;ea=N;-Emoji_Presentation;na=MILITARY MEDAL
-cp;1F397;age=7.0;ea=N;-Emoji_Presentation;na=REMINDER RIBBON
+cp;1F393;na=GRADUATION CAP
+cp;1F394;age=7.0;ea=N;-Emoji;-EPres;na=HEART WITH TIP ON THE LEFT
+cp;1F395;age=7.0;ea=N;-Emoji;-EPres;na=BOUQUET OF FLOWERS
+cp;1F396;age=7.0;ea=N;-EPres;na=MILITARY MEDAL
+cp;1F397;age=7.0;ea=N;-EPres;na=REMINDER RIBBON
# Musical symbols
-cp;1F398;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=MUSICAL KEYBOARD WITH JACKS
-cp;1F399;age=7.0;ea=N;-Emoji_Presentation;na=STUDIO MICROPHONE
-cp;1F39A;age=7.0;ea=N;-Emoji_Presentation;na=LEVEL SLIDER
-cp;1F39B;age=7.0;ea=N;-Emoji_Presentation;na=CONTROL KNOBS
-cp;1F39C;age=7.0;ea=N;-Emoji;-Emoji_Presentation;lb=AL;na=BEAMED ASCENDING MUSICAL NOTES
-cp;1F39D;age=7.0;ea=N;-Emoji;-Emoji_Presentation;lb=AL;na=BEAMED DESCENDING MUSICAL NOTES
+cp;1F398;age=7.0;ea=N;-Emoji;-EPres;na=MUSICAL KEYBOARD WITH JACKS
+cp;1F399;age=7.0;ea=N;-EPres;na=STUDIO MICROPHONE
+cp;1F39A;age=7.0;ea=N;-EPres;na=LEVEL SLIDER
+cp;1F39B;age=7.0;ea=N;-EPres;na=CONTROL KNOBS
+cp;1F39C;age=7.0;ea=N;-Emoji;-EPres;lb=AL;na=BEAMED ASCENDING MUSICAL NOTES
+cp;1F39D;age=7.0;ea=N;-Emoji;-EPres;lb=AL;na=BEAMED DESCENDING MUSICAL NOTES
# Entertainment symbols
-cp;1F39E;age=7.0;ea=N;-Emoji_Presentation;na=FILM FRAMES
-cp;1F39F;age=7.0;ea=N;-Emoji_Presentation;na=ADMISSION TICKETS
+cp;1F39E;age=7.0;ea=N;-EPres;na=FILM FRAMES
+cp;1F39F;age=7.0;ea=N;-EPres;na=ADMISSION TICKETS
cp;1F3A0;na=CAROUSEL HORSE
cp;1F3A1;na=FERRIS WHEEL
cp;1F3A2;na=ROLLER COASTER
cp;1F3A3;na=FISHING POLE AND FISH
-cp;1F3A4;GCB=GAZ;na=MICROPHONE;WB=GAZ
+cp;1F3A4;na=MICROPHONE
cp;1F3A5;na=MOVIE CAMERA
cp;1F3A6;na=CINEMA
cp;1F3A7;na=HEADPHONE
-cp;1F3A8;GCB=GAZ;na=ARTIST PALETTE;WB=GAZ
+cp;1F3A8;na=ARTIST PALETTE
cp;1F3A9;na=TOP HAT
cp;1F3AA;na=CIRCUS TENT
cp;1F3AB;na=TICKET
@@ -34861,37 +35614,37 @@ cp;1F3BE;na=TENNIS RACQUET AND BALL
cp;1F3BF;na=SKI AND SKI BOOT
cp;1F3C0;na=BASKETBALL AND HOOP
cp;1F3C1;na=CHEQUERED FLAG
-cp;1F3C2;Emoji_Modifier_Base;GCB=EB;lb=EB;na=SNOWBOARDER;WB=EB
-cp;1F3C3;Emoji_Modifier_Base;GCB=EB;lb=EB;na=RUNNER;WB=EB
-cp;1F3C4;Emoji_Modifier_Base;GCB=EB;lb=EB;na=SURFER;WB=EB
+cp;1F3C2;EBase;lb=EB;na=SNOWBOARDER
+cp;1F3C3;EBase;lb=EB;na=RUNNER
+cp;1F3C4;EBase;lb=EB;na=SURFER
cp;1F3C5;age=7.0;na=SPORTS MEDAL
cp;1F3C6;na=TROPHY
-cp;1F3C7;Emoji_Modifier_Base;GCB=EB;lb=EB;na=HORSE RACING;WB=EB
+cp;1F3C7;EBase;lb=EB;na=HORSE RACING
cp;1F3C8;na=AMERICAN FOOTBALL
cp;1F3C9;na=RUGBY FOOTBALL
-cp;1F3CA;Emoji_Modifier_Base;GCB=EB;lb=EB;na=SWIMMER;WB=EB
-cp;1F3CB;age=7.0;ea=N;Emoji_Modifier_Base;-Emoji_Presentation;GCB=EB;lb=EB;na=WEIGHT LIFTER;WB=EB
-cp;1F3CC;age=7.0;ea=N;Emoji_Modifier_Base;-Emoji_Presentation;GCB=EB;lb=EB;na=GOLFER;WB=EB
-cp;1F3CD;age=7.0;ea=N;-Emoji_Presentation;na=RACING MOTORCYCLE
-cp;1F3CE;age=7.0;ea=N;-Emoji_Presentation;na=RACING CAR
+cp;1F3CA;EBase;lb=EB;na=SWIMMER
+cp;1F3CB;age=7.0;ea=N;EBase;-EPres;lb=EB;na=WEIGHT LIFTER
+cp;1F3CC;age=7.0;ea=N;EBase;-EPres;lb=EB;na=GOLFER
+cp;1F3CD;age=7.0;ea=N;-EPres;na=RACING MOTORCYCLE
+cp;1F3CE;age=7.0;ea=N;-EPres;na=RACING CAR
cp;1F3CF;age=8.0;na=CRICKET BAT AND BALL
cp;1F3D0;age=8.0;na=VOLLEYBALL
cp;1F3D1;age=8.0;na=FIELD HOCKEY STICK AND BALL
cp;1F3D2;age=8.0;na=ICE HOCKEY STICK AND PUCK
cp;1F3D3;age=8.0;na=TABLE TENNIS PADDLE AND BALL
# Building and map symbols
-cp;1F3D4;age=7.0;ea=N;-Emoji_Presentation;na=SNOW CAPPED MOUNTAIN
-cp;1F3D5;age=7.0;ea=N;-Emoji_Presentation;na=CAMPING
-cp;1F3D6;age=7.0;ea=N;-Emoji_Presentation;na=BEACH WITH UMBRELLA
-cp;1F3D7;age=7.0;ea=N;-Emoji_Presentation;na=BUILDING CONSTRUCTION
-cp;1F3D8;age=7.0;ea=N;-Emoji_Presentation;na=HOUSE BUILDINGS
-cp;1F3D9;age=7.0;ea=N;-Emoji_Presentation;na=CITYSCAPE
-cp;1F3DA;age=7.0;ea=N;-Emoji_Presentation;na=DERELICT HOUSE BUILDING
-cp;1F3DB;age=7.0;ea=N;-Emoji_Presentation;na=CLASSICAL BUILDING
-cp;1F3DC;age=7.0;ea=N;-Emoji_Presentation;na=DESERT
-cp;1F3DD;age=7.0;ea=N;-Emoji_Presentation;na=DESERT ISLAND
-cp;1F3DE;age=7.0;ea=N;-Emoji_Presentation;na=NATIONAL PARK
-cp;1F3DF;age=7.0;ea=N;-Emoji_Presentation;na=STADIUM
+cp;1F3D4;age=7.0;ea=N;-EPres;na=SNOW CAPPED MOUNTAIN
+cp;1F3D5;age=7.0;ea=N;-EPres;na=CAMPING
+cp;1F3D6;age=7.0;ea=N;-EPres;na=BEACH WITH UMBRELLA
+cp;1F3D7;age=7.0;ea=N;-EPres;na=BUILDING CONSTRUCTION
+cp;1F3D8;age=7.0;ea=N;-EPres;na=HOUSE BUILDINGS
+cp;1F3D9;age=7.0;ea=N;-EPres;na=CITYSCAPE
+cp;1F3DA;age=7.0;ea=N;-EPres;na=DERELICT HOUSE BUILDING
+cp;1F3DB;age=7.0;ea=N;-EPres;na=CLASSICAL BUILDING
+cp;1F3DC;age=7.0;ea=N;-EPres;na=DESERT
+cp;1F3DD;age=7.0;ea=N;-EPres;na=DESERT ISLAND
+cp;1F3DE;age=7.0;ea=N;-EPres;na=NATIONAL PARK
+cp;1F3DF;age=7.0;ea=N;-EPres;na=STADIUM
cp;1F3E0;na=HOUSE BUILDING
cp;1F3E1;na=HOUSE WITH GARDEN
cp;1F3E2;na=OFFICE BUILDING
@@ -34903,33 +35656,33 @@ cp;1F3E7;na=AUTOMATED TELLER MACHINE
cp;1F3E8;na=HOTEL
cp;1F3E9;na=LOVE HOTEL
cp;1F3EA;na=CONVENIENCE STORE
-cp;1F3EB;GCB=GAZ;na=SCHOOL;WB=GAZ
+cp;1F3EB;na=SCHOOL
cp;1F3EC;na=DEPARTMENT STORE
-cp;1F3ED;GCB=GAZ;na=FACTORY;WB=GAZ
+cp;1F3ED;na=FACTORY
cp;1F3EE;na=IZAKAYA LANTERN
cp;1F3EF;na=JAPANESE CASTLE
cp;1F3F0;na=EUROPEAN CASTLE
# Flag symbols
-cp;1F3F1;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=WHITE PENNANT
-cp;1F3F2;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=BLACK PENNANT
-cp;1F3F3;age=7.0;ea=N;-Emoji_Presentation;na=WAVING WHITE FLAG
+cp;1F3F1;age=7.0;ea=N;-Emoji;-EPres;na=WHITE PENNANT
+cp;1F3F2;age=7.0;ea=N;-Emoji;-EPres;na=BLACK PENNANT
+cp;1F3F3;age=7.0;ea=N;-EPres;na=WAVING WHITE FLAG
cp;1F3F4;age=7.0;na=WAVING BLACK FLAG
# Rosettes
-cp;1F3F5;age=7.0;ea=N;-Emoji_Presentation;na=ROSETTE
-cp;1F3F6;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=BLACK ROSETTE
+cp;1F3F5;age=7.0;ea=N;-EPres;na=ROSETTE
+cp;1F3F6;age=7.0;ea=N;-Emoji;-EPres;na=BLACK ROSETTE
# Miscellaneous symbol
-cp;1F3F7;age=7.0;ea=N;-Emoji_Presentation;na=LABEL
+cp;1F3F7;age=7.0;ea=N;-EPres;na=LABEL
# Sport symbols
cp;1F3F8;age=8.0;na=BADMINTON RACQUET AND SHUTTLECOCK
cp;1F3F9;age=8.0;na=BOW AND ARROW
# Miscellaneous symbol
cp;1F3FA;age=8.0;na=AMPHORA
# Emoji modifiers
-cp;1F3FB;age=8.0;CI;Emoji_Component;Emoji_Modifier;gc=Sk;GCB=EM;lb=EM;na=EMOJI MODIFIER FITZPATRICK TYPE-1-2;WB=EM
-cp;1F3FC;age=8.0;CI;Emoji_Component;Emoji_Modifier;gc=Sk;GCB=EM;lb=EM;na=EMOJI MODIFIER FITZPATRICK TYPE-3;WB=EM
-cp;1F3FD;age=8.0;CI;Emoji_Component;Emoji_Modifier;gc=Sk;GCB=EM;lb=EM;na=EMOJI MODIFIER FITZPATRICK TYPE-4;WB=EM
-cp;1F3FE;age=8.0;CI;Emoji_Component;Emoji_Modifier;gc=Sk;GCB=EM;lb=EM;na=EMOJI MODIFIER FITZPATRICK TYPE-5;WB=EM
-cp;1F3FF;age=8.0;CI;Emoji_Component;Emoji_Modifier;gc=Sk;GCB=EM;lb=EM;na=EMOJI MODIFIER FITZPATRICK TYPE-6;WB=EM
+cp;1F3FB;age=8.0;CI;EComp;EMod;-ExtPict;gc=Sk;GCB=EX;lb=EM;na=EMOJI MODIFIER FITZPATRICK TYPE-1-2;WB=Extend
+cp;1F3FC;age=8.0;CI;EComp;EMod;-ExtPict;gc=Sk;GCB=EX;lb=EM;na=EMOJI MODIFIER FITZPATRICK TYPE-3;WB=Extend
+cp;1F3FD;age=8.0;CI;EComp;EMod;-ExtPict;gc=Sk;GCB=EX;lb=EM;na=EMOJI MODIFIER FITZPATRICK TYPE-4;WB=Extend
+cp;1F3FE;age=8.0;CI;EComp;EMod;-ExtPict;gc=Sk;GCB=EX;lb=EM;na=EMOJI MODIFIER FITZPATRICK TYPE-5;WB=Extend
+cp;1F3FF;age=8.0;CI;EComp;EMod;-ExtPict;gc=Sk;GCB=EX;lb=EM;na=EMOJI MODIFIER FITZPATRICK TYPE-6;WB=Extend
# Animal symbols
cp;1F400;na=RAT
cp;1F401;na=MOUSE
@@ -34996,26 +35749,26 @@ cp;1F43C;na=PANDA FACE
cp;1F43D;na=PIG NOSE
# Animal symbols
cp;1F43E;na=PAW PRINTS
-cp;1F43F;age=7.0;ea=N;-Emoji_Presentation;na=CHIPMUNK
+cp;1F43F;age=7.0;ea=N;-EPres;na=CHIPMUNK
# Facial parts symbols
cp;1F440;na=EYES
-cp;1F441;age=7.0;ea=N;-Emoji_Presentation;na=EYE
-cp;1F442;Emoji_Modifier_Base;GCB=EB;lb=EB;na=EAR;WB=EB
-cp;1F443;Emoji_Modifier_Base;GCB=EB;lb=EB;na=NOSE;WB=EB
+cp;1F441;age=7.0;ea=N;-EPres;na=EYE
+cp;1F442;EBase;lb=EB;na=EAR
+cp;1F443;EBase;lb=EB;na=NOSE
cp;1F444;na=MOUTH
cp;1F445;na=TONGUE
# Hand symbols
-cp;1F446;Emoji_Modifier_Base;GCB=EB;lb=EB;na=WHITE UP POINTING BACKHAND INDEX;WB=EB
-cp;1F447;Emoji_Modifier_Base;GCB=EB;lb=EB;na=WHITE DOWN POINTING BACKHAND INDEX;WB=EB
-cp;1F448;Emoji_Modifier_Base;GCB=EB;lb=EB;na=WHITE LEFT POINTING BACKHAND INDEX;WB=EB
-cp;1F449;Emoji_Modifier_Base;GCB=EB;lb=EB;na=WHITE RIGHT POINTING BACKHAND INDEX;WB=EB
-cp;1F44A;Emoji_Modifier_Base;GCB=EB;lb=EB;na=FISTED HAND SIGN;WB=EB
-cp;1F44B;Emoji_Modifier_Base;GCB=EB;lb=EB;na=WAVING HAND SIGN;WB=EB
-cp;1F44C;Emoji_Modifier_Base;GCB=EB;lb=EB;na=OK HAND SIGN;WB=EB
-cp;1F44D;Emoji_Modifier_Base;GCB=EB;lb=EB;na=THUMBS UP SIGN;WB=EB
-cp;1F44E;Emoji_Modifier_Base;GCB=EB;lb=EB;na=THUMBS DOWN SIGN;WB=EB
-cp;1F44F;Emoji_Modifier_Base;GCB=EB;lb=EB;na=CLAPPING HANDS SIGN;WB=EB
-cp;1F450;Emoji_Modifier_Base;GCB=EB;lb=EB;na=OPEN HANDS SIGN;WB=EB
+cp;1F446;EBase;lb=EB;na=WHITE UP POINTING BACKHAND INDEX
+cp;1F447;EBase;lb=EB;na=WHITE DOWN POINTING BACKHAND INDEX
+cp;1F448;EBase;lb=EB;na=WHITE LEFT POINTING BACKHAND INDEX
+cp;1F449;EBase;lb=EB;na=WHITE RIGHT POINTING BACKHAND INDEX
+cp;1F44A;EBase;lb=EB;na=FISTED HAND SIGN
+cp;1F44B;EBase;lb=EB;na=WAVING HAND SIGN
+cp;1F44C;EBase;lb=EB;na=OK HAND SIGN
+cp;1F44D;EBase;lb=EB;na=THUMBS UP SIGN
+cp;1F44E;EBase;lb=EB;na=THUMBS DOWN SIGN
+cp;1F44F;EBase;lb=EB;na=CLAPPING HANDS SIGN
+cp;1F450;EBase;lb=EB;na=OPEN HANDS SIGN
# Clothing and accessories
cp;1F451;na=CROWN
cp;1F452;na=WOMANS HAT
@@ -35039,49 +35792,49 @@ cp;1F463;na=FOOTPRINTS
# Portrait and role symbols
cp;1F464;na=BUST IN SILHOUETTE
cp;1F465;na=BUSTS IN SILHOUETTE
-cp;1F466;Emoji_Modifier_Base;GCB=EBG;lb=EB;na=BOY;WB=EBG
-cp;1F467;Emoji_Modifier_Base;GCB=EBG;lb=EB;na=GIRL;WB=EBG
-cp;1F468;Emoji_Modifier_Base;GCB=EBG;lb=EB;na=MAN;WB=EBG
-cp;1F469;Emoji_Modifier_Base;GCB=EBG;lb=EB;na=WOMAN;WB=EBG
+cp;1F466;EBase;lb=EB;na=BOY
+cp;1F467;EBase;lb=EB;na=GIRL
+cp;1F468;EBase;lb=EB;na=MAN
+cp;1F469;EBase;lb=EB;na=WOMAN
cp;1F46A;na=FAMILY
cp;1F46B;na=MAN AND WOMAN HOLDING HANDS
cp;1F46C;na=TWO MEN HOLDING HANDS
cp;1F46D;na=TWO WOMEN HOLDING HANDS
-cp;1F46E;Emoji_Modifier_Base;GCB=EB;lb=EB;na=POLICE OFFICER;WB=EB
+cp;1F46E;EBase;lb=EB;na=POLICE OFFICER
cp;1F46F;na=WOMAN WITH BUNNY EARS
-cp;1F470;Emoji_Modifier_Base;GCB=EB;lb=EB;na=BRIDE WITH VEIL;WB=EB
-cp;1F471;Emoji_Modifier_Base;GCB=EB;lb=EB;na=PERSON WITH BLOND HAIR;WB=EB
-cp;1F472;Emoji_Modifier_Base;GCB=EB;lb=EB;na=MAN WITH GUA PI MAO;WB=EB
-cp;1F473;Emoji_Modifier_Base;GCB=EB;lb=EB;na=MAN WITH TURBAN;WB=EB
-cp;1F474;Emoji_Modifier_Base;GCB=EB;lb=EB;na=OLDER MAN;WB=EB
-cp;1F475;Emoji_Modifier_Base;GCB=EB;lb=EB;na=OLDER WOMAN;WB=EB
-cp;1F476;Emoji_Modifier_Base;GCB=EB;lb=EB;na=BABY;WB=EB
-cp;1F477;Emoji_Modifier_Base;GCB=EB;lb=EB;na=CONSTRUCTION WORKER;WB=EB
+cp;1F470;EBase;lb=EB;na=BRIDE WITH VEIL
+cp;1F471;EBase;lb=EB;na=PERSON WITH BLOND HAIR
+cp;1F472;EBase;lb=EB;na=MAN WITH GUA PI MAO
+cp;1F473;EBase;lb=EB;na=MAN WITH TURBAN
+cp;1F474;EBase;lb=EB;na=OLDER MAN
+cp;1F475;EBase;lb=EB;na=OLDER WOMAN
+cp;1F476;EBase;lb=EB;na=BABY
+cp;1F477;EBase;lb=EB;na=CONSTRUCTION WORKER
# Fairy tale symbols
-cp;1F478;Emoji_Modifier_Base;GCB=EB;lb=EB;na=PRINCESS;WB=EB
+cp;1F478;EBase;lb=EB;na=PRINCESS
cp;1F479;na=JAPANESE OGRE
cp;1F47A;na=JAPANESE GOBLIN
cp;1F47B;na=GHOST
-cp;1F47C;Emoji_Modifier_Base;GCB=EB;lb=EB;na=BABY ANGEL;WB=EB
+cp;1F47C;EBase;lb=EB;na=BABY ANGEL
cp;1F47D;na=EXTRATERRESTRIAL ALIEN
cp;1F47E;na=ALIEN MONSTER
cp;1F47F;na=IMP
cp;1F480;na=SKULL
# Role symbols
-cp;1F481;Emoji_Modifier_Base;GCB=EB;lb=EB;na=INFORMATION DESK PERSON;WB=EB
-cp;1F482;Emoji_Modifier_Base;GCB=EB;lb=EB;na=GUARDSMAN;WB=EB
-cp;1F483;Emoji_Modifier_Base;GCB=EB;lb=EB;na=DANCER;WB=EB
+cp;1F481;EBase;lb=EB;na=INFORMATION DESK PERSON
+cp;1F482;EBase;lb=EB;na=GUARDSMAN
+cp;1F483;EBase;lb=EB;na=DANCER
# Personal care symbols
cp;1F484;na=LIPSTICK
-cp;1F485;Emoji_Modifier_Base;GCB=EB;lb=EB;na=NAIL POLISH;WB=EB
-cp;1F486;Emoji_Modifier_Base;GCB=EB;lb=EB;na=FACE MASSAGE;WB=EB
-cp;1F487;Emoji_Modifier_Base;GCB=EB;lb=EB;na=HAIRCUT;WB=EB
+cp;1F485;EBase;lb=EB;na=NAIL POLISH
+cp;1F486;EBase;lb=EB;na=FACE MASSAGE
+cp;1F487;EBase;lb=EB;na=HAIRCUT
cp;1F488;na=BARBER POLE
# Medical symbols
cp;1F489;na=SYRINGE
cp;1F48A;na=PILL
# Romance symbols
-cp;1F48B;GCB=GAZ;na=KISS MARK;WB=GAZ
+cp;1F48B;na=KISS MARK
cp;1F48C;na=LOVE LETTER
cp;1F48D;na=RING
cp;1F48E;na=GEM STONE
@@ -35114,7 +35867,7 @@ cp;1F4A6;na=SPLASHING SWEAT SYMBOL
cp;1F4A7;na=DROPLET
cp;1F4A8;na=DASH SYMBOL
cp;1F4A9;na=PILE OF POO
-cp;1F4AA;Emoji_Modifier_Base;GCB=EB;lb=EB;na=FLEXED BICEPS;WB=EB
+cp;1F4AA;EBase;lb=EB;na=FLEXED BICEPS
cp;1F4AB;na=DIZZY SYMBOL
cp;1F4AC;na=SPEECH BALLOON
cp;1F4AD;na=THOUGHT BALLOON
@@ -35134,8 +35887,8 @@ cp;1F4B8;na=MONEY WITH WINGS
cp;1F4B9;na=CHART WITH UPWARDS TREND AND YEN SIGN
# Office symbols
cp;1F4BA;na=SEAT
-cp;1F4BB;GCB=GAZ;na=PERSONAL COMPUTER;WB=GAZ
-cp;1F4BC;GCB=GAZ;na=BRIEFCASE;WB=GAZ
+cp;1F4BB;na=PERSONAL COMPUTER
+cp;1F4BC;na=BRIEFCASE
cp;1F4BD;na=MINIDISC
cp;1F4BE;na=FLOPPY DISK
cp;1F4BF;na=OPTICAL DISC
@@ -35202,8 +35955,8 @@ cp;1F4F9;na=VIDEO CAMERA
cp;1F4FA;na=TELEVISION
cp;1F4FB;na=RADIO
cp;1F4FC;na=VIDEOCASSETTE
-cp;1F4FD;age=7.0;ea=N;-Emoji_Presentation;na=FILM PROJECTOR
-cp;1F4FE;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=PORTABLE STEREO
+cp;1F4FD;age=7.0;ea=N;-EPres;na=FILM PROJECTOR
+cp;1F4FE;age=7.0;ea=N;-Emoji;-EPres;na=PORTABLE STEREO
# Religious symbol
cp;1F4FF;age=8.0;na=PRAYER BEADS
# User interface symbols
@@ -35250,12 +36003,12 @@ cp;1F524;lb=AL;na=INPUT SYMBOL FOR LATIN LETTERS
# Tool symbols
cp;1F525;na=FIRE
cp;1F526;na=ELECTRIC TORCH
-cp;1F527;GCB=GAZ;na=WRENCH;WB=GAZ
+cp;1F527;na=WRENCH
cp;1F528;na=HAMMER
cp;1F529;na=NUT AND BOLT
cp;1F52A;na=HOCHO
cp;1F52B;na=PISTOL
-cp;1F52C;GCB=GAZ;na=MICROSCOPE;WB=GAZ
+cp;1F52C;na=MICROSCOPE
cp;1F52D;na=TELESCOPE
cp;1F52E;na=CRYSTAL BALL
# Miscellaneous symbols
@@ -35277,26 +36030,26 @@ cp;1F53B;lb=AL;na=DOWN-POINTING RED TRIANGLE
cp;1F53C;lb=AL;na=UP-POINTING SMALL RED TRIANGLE
cp;1F53D;lb=AL;na=DOWN-POINTING SMALL RED TRIANGLE
# Shadowed geometric shapes
-cp;1F53E;age=7.0;ea=N;-Emoji;-Emoji_Presentation;lb=AL;na=LOWER RIGHT SHADOWED WHITE CIRCLE
-cp;1F53F;age=7.0;ea=N;-Emoji;-Emoji_Presentation;lb=AL;na=UPPER RIGHT SHADOWED WHITE CIRCLE
+cp;1F53E;age=7.0;ea=N;-Emoji;-EPres;-ExtPict;lb=AL;na=LOWER RIGHT SHADOWED WHITE CIRCLE
+cp;1F53F;age=7.0;ea=N;-Emoji;-EPres;-ExtPict;lb=AL;na=UPPER RIGHT SHADOWED WHITE CIRCLE
# Religious symbols
-cp;1F540;age=6.1;ea=N;-Emoji;-Emoji_Presentation;lb=AL;na=CIRCLED CROSS POMMEE
-cp;1F541;age=6.1;ea=N;-Emoji;-Emoji_Presentation;lb=AL;na=CROSS POMMEE WITH HALF-CIRCLE BELOW
-cp;1F542;age=6.1;ea=N;-Emoji;-Emoji_Presentation;lb=AL;na=CROSS POMMEE
-cp;1F543;age=6.1;ea=N;-Emoji;-Emoji_Presentation;lb=AL;na=NOTCHED LEFT SEMICIRCLE WITH THREE DOTS
-cp;1F544;age=7.0;ea=N;-Emoji;-Emoji_Presentation;lb=AL;na=NOTCHED RIGHT SEMICIRCLE WITH THREE DOTS
-cp;1F545;age=7.0;ea=N;-Emoji;-Emoji_Presentation;lb=AL;na=SYMBOL FOR MARKS CHAPTER
-cp;1F546;age=7.0;ea=N;-Emoji;-Emoji_Presentation;lb=AL;na=WHITE LATIN CROSS
-cp;1F547;age=7.0;ea=N;-Emoji;-Emoji_Presentation;lb=AL;na=HEAVY LATIN CROSS
-cp;1F548;age=7.0;ea=N;-Emoji;-Emoji_Presentation;lb=AL;na=CELTIC CROSS
-cp;1F549;age=7.0;ea=N;-Emoji_Presentation;lb=AL;na=OM SYMBOL
-cp;1F54A;age=7.0;ea=N;-Emoji_Presentation;na=DOVE OF PEACE
+cp;1F540;age=6.1;ea=N;-Emoji;-EPres;-ExtPict;lb=AL;na=CIRCLED CROSS POMMEE
+cp;1F541;age=6.1;ea=N;-Emoji;-EPres;-ExtPict;lb=AL;na=CROSS POMMEE WITH HALF-CIRCLE BELOW
+cp;1F542;age=6.1;ea=N;-Emoji;-EPres;-ExtPict;lb=AL;na=CROSS POMMEE
+cp;1F543;age=6.1;ea=N;-Emoji;-EPres;-ExtPict;lb=AL;na=NOTCHED LEFT SEMICIRCLE WITH THREE DOTS
+cp;1F544;age=7.0;ea=N;-Emoji;-EPres;-ExtPict;lb=AL;na=NOTCHED RIGHT SEMICIRCLE WITH THREE DOTS
+cp;1F545;age=7.0;ea=N;-Emoji;-EPres;-ExtPict;lb=AL;na=SYMBOL FOR MARKS CHAPTER
+cp;1F546;age=7.0;ea=N;-Emoji;-EPres;lb=AL;na=WHITE LATIN CROSS
+cp;1F547;age=7.0;ea=N;-Emoji;-EPres;lb=AL;na=HEAVY LATIN CROSS
+cp;1F548;age=7.0;ea=N;-Emoji;-EPres;lb=AL;na=CELTIC CROSS
+cp;1F549;age=7.0;ea=N;-EPres;lb=AL;na=OM SYMBOL
+cp;1F54A;age=7.0;ea=N;-EPres;na=DOVE OF PEACE
cp;1F54B;age=8.0;na=KAABA
cp;1F54C;age=8.0;na=MOSQUE
cp;1F54D;age=8.0;na=SYNAGOGUE
cp;1F54E;age=8.0;na=MENORAH WITH NINE BRANCHES
# Miscellaneous symbol
-cp;1F54F;age=8.0;ea=N;-Emoji;-Emoji_Presentation;na=BOWL OF HYGIEIA
+cp;1F54F;age=8.0;ea=N;-Emoji;-EPres;na=BOWL OF HYGIEIA
# Clock face symbols
cp;1F550;na=CLOCK FACE ONE OCLOCK
cp;1F551;na=CLOCK FACE TWO OCLOCK
@@ -35323,169 +36076,169 @@ cp;1F565;na=CLOCK FACE TEN-THIRTY
cp;1F566;na=CLOCK FACE ELEVEN-THIRTY
cp;1F567;na=CLOCK FACE TWELVE-THIRTY
# Communication symbols
-cp;1F568;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=RIGHT SPEAKER
-cp;1F569;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=RIGHT SPEAKER WITH ONE SOUND WAVE
-cp;1F56A;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=RIGHT SPEAKER WITH THREE SOUND WAVES
-cp;1F56B;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=BULLHORN
-cp;1F56C;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=BULLHORN WITH SOUND WAVES
+cp;1F568;age=7.0;ea=N;-Emoji;-EPres;na=RIGHT SPEAKER
+cp;1F569;age=7.0;ea=N;-Emoji;-EPres;na=RIGHT SPEAKER WITH ONE SOUND WAVE
+cp;1F56A;age=7.0;ea=N;-Emoji;-EPres;na=RIGHT SPEAKER WITH THREE SOUND WAVES
+cp;1F56B;age=7.0;ea=N;-Emoji;-EPres;na=BULLHORN
+cp;1F56C;age=7.0;ea=N;-Emoji;-EPres;na=BULLHORN WITH SOUND WAVES
# Miscellaneous symbols
-cp;1F56D;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=RINGING BELL
-cp;1F56E;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=BOOK
-cp;1F56F;age=7.0;ea=N;-Emoji_Presentation;na=CANDLE
-cp;1F570;age=7.0;ea=N;-Emoji_Presentation;na=MANTELPIECE CLOCK
-cp;1F571;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=BLACK SKULL AND CROSSBONES
-cp;1F572;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=NO PIRACY
-cp;1F573;age=7.0;ea=N;-Emoji_Presentation;na=HOLE
-cp;1F574;age=7.0;ea=N;Emoji_Modifier_Base;-Emoji_Presentation;GCB=EB;lb=EB;na=MAN IN BUSINESS SUIT LEVITATING;WB=EB
-cp;1F575;age=7.0;ea=N;Emoji_Modifier_Base;-Emoji_Presentation;GCB=EB;lb=EB;na=SLEUTH OR SPY;WB=EB
-cp;1F576;age=7.0;ea=N;-Emoji_Presentation;na=DARK SUNGLASSES
+cp;1F56D;age=7.0;ea=N;-Emoji;-EPres;na=RINGING BELL
+cp;1F56E;age=7.0;ea=N;-Emoji;-EPres;na=BOOK
+cp;1F56F;age=7.0;ea=N;-EPres;na=CANDLE
+cp;1F570;age=7.0;ea=N;-EPres;na=MANTELPIECE CLOCK
+cp;1F571;age=7.0;ea=N;-Emoji;-EPres;na=BLACK SKULL AND CROSSBONES
+cp;1F572;age=7.0;ea=N;-Emoji;-EPres;na=NO PIRACY
+cp;1F573;age=7.0;ea=N;-EPres;na=HOLE
+cp;1F574;age=7.0;ea=N;EBase;-EPres;lb=EB;na=MAN IN BUSINESS SUIT LEVITATING
+cp;1F575;age=7.0;ea=N;EBase;-EPres;lb=EB;na=SLEUTH OR SPY
+cp;1F576;age=7.0;ea=N;-EPres;na=DARK SUNGLASSES
# Animal symbols
-cp;1F577;age=7.0;ea=N;-Emoji_Presentation;na=SPIDER
-cp;1F578;age=7.0;ea=N;-Emoji_Presentation;na=SPIDER WEB
+cp;1F577;age=7.0;ea=N;-EPres;na=SPIDER
+cp;1F578;age=7.0;ea=N;-EPres;na=SPIDER WEB
# Game symbol
-cp;1F579;age=7.0;ea=N;-Emoji_Presentation;na=JOYSTICK
+cp;1F579;age=7.0;ea=N;-EPres;na=JOYSTICK
# Role symbol
-cp;1F57A;age=9.0;Emoji_Modifier_Base;GCB=EB;lb=EB;na=MAN DANCING;WB=EB
+cp;1F57A;age=9.0;EBase;lb=EB;na=MAN DANCING
# Communication symbols
-cp;1F57B;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=LEFT HAND TELEPHONE RECEIVER
-cp;1F57C;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=TELEPHONE RECEIVER WITH PAGE
-cp;1F57D;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=RIGHT HAND TELEPHONE RECEIVER
-cp;1F57E;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=WHITE TOUCHTONE TELEPHONE
-cp;1F57F;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=BLACK TOUCHTONE TELEPHONE
-cp;1F580;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=TELEPHONE ON TOP OF MODEM
-cp;1F581;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=CLAMSHELL MOBILE PHONE
-cp;1F582;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=BACK OF ENVELOPE
-cp;1F583;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=STAMPED ENVELOPE
-cp;1F584;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=ENVELOPE WITH LIGHTNING
-cp;1F585;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=FLYING ENVELOPE
-cp;1F586;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=PEN OVER STAMPED ENVELOPE
-cp;1F587;age=7.0;ea=N;-Emoji_Presentation;na=LINKED PAPERCLIPS
-cp;1F588;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=BLACK PUSHPIN
-cp;1F589;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=LOWER LEFT PENCIL
-cp;1F58A;age=7.0;ea=N;-Emoji_Presentation;na=LOWER LEFT BALLPOINT PEN
-cp;1F58B;age=7.0;ea=N;-Emoji_Presentation;na=LOWER LEFT FOUNTAIN PEN
-cp;1F58C;age=7.0;ea=N;-Emoji_Presentation;na=LOWER LEFT PAINTBRUSH
-cp;1F58D;age=7.0;ea=N;-Emoji_Presentation;na=LOWER LEFT CRAYON
+cp;1F57B;age=7.0;ea=N;-Emoji;-EPres;na=LEFT HAND TELEPHONE RECEIVER
+cp;1F57C;age=7.0;ea=N;-Emoji;-EPres;na=TELEPHONE RECEIVER WITH PAGE
+cp;1F57D;age=7.0;ea=N;-Emoji;-EPres;na=RIGHT HAND TELEPHONE RECEIVER
+cp;1F57E;age=7.0;ea=N;-Emoji;-EPres;na=WHITE TOUCHTONE TELEPHONE
+cp;1F57F;age=7.0;ea=N;-Emoji;-EPres;na=BLACK TOUCHTONE TELEPHONE
+cp;1F580;age=7.0;ea=N;-Emoji;-EPres;na=TELEPHONE ON TOP OF MODEM
+cp;1F581;age=7.0;ea=N;-Emoji;-EPres;na=CLAMSHELL MOBILE PHONE
+cp;1F582;age=7.0;ea=N;-Emoji;-EPres;na=BACK OF ENVELOPE
+cp;1F583;age=7.0;ea=N;-Emoji;-EPres;na=STAMPED ENVELOPE
+cp;1F584;age=7.0;ea=N;-Emoji;-EPres;na=ENVELOPE WITH LIGHTNING
+cp;1F585;age=7.0;ea=N;-Emoji;-EPres;na=FLYING ENVELOPE
+cp;1F586;age=7.0;ea=N;-Emoji;-EPres;na=PEN OVER STAMPED ENVELOPE
+cp;1F587;age=7.0;ea=N;-EPres;na=LINKED PAPERCLIPS
+cp;1F588;age=7.0;ea=N;-Emoji;-EPres;na=BLACK PUSHPIN
+cp;1F589;age=7.0;ea=N;-Emoji;-EPres;na=LOWER LEFT PENCIL
+cp;1F58A;age=7.0;ea=N;-EPres;na=LOWER LEFT BALLPOINT PEN
+cp;1F58B;age=7.0;ea=N;-EPres;na=LOWER LEFT FOUNTAIN PEN
+cp;1F58C;age=7.0;ea=N;-EPres;na=LOWER LEFT PAINTBRUSH
+cp;1F58D;age=7.0;ea=N;-EPres;na=LOWER LEFT CRAYON
# Hand symbols
-cp;1F58E;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=LEFT WRITING HAND
-cp;1F58F;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=TURNED OK HAND SIGN
-cp;1F590;age=7.0;ea=N;Emoji_Modifier_Base;-Emoji_Presentation;GCB=EB;lb=EB;na=RAISED HAND WITH FINGERS SPLAYED;WB=EB
-cp;1F591;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=REVERSED RAISED HAND WITH FINGERS SPLAYED
-cp;1F592;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=REVERSED THUMBS UP SIGN
-cp;1F593;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=REVERSED THUMBS DOWN SIGN
-cp;1F594;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=REVERSED VICTORY HAND
-cp;1F595;age=7.0;Emoji_Modifier_Base;GCB=EB;lb=EB;na=REVERSED HAND WITH MIDDLE FINGER EXTENDED;WB=EB
-cp;1F596;age=7.0;Emoji_Modifier_Base;GCB=EB;lb=EB;na=RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS;WB=EB
-cp;1F597;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=WHITE DOWN POINTING LEFT HAND INDEX
-cp;1F598;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=SIDEWAYS WHITE LEFT POINTING INDEX
-cp;1F599;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=SIDEWAYS WHITE RIGHT POINTING INDEX
-cp;1F59A;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=SIDEWAYS BLACK LEFT POINTING INDEX
-cp;1F59B;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=SIDEWAYS BLACK RIGHT POINTING INDEX
-cp;1F59C;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=BLACK LEFT POINTING BACKHAND INDEX
-cp;1F59D;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=BLACK RIGHT POINTING BACKHAND INDEX
-cp;1F59E;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=SIDEWAYS WHITE UP POINTING INDEX
-cp;1F59F;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=SIDEWAYS WHITE DOWN POINTING INDEX
-cp;1F5A0;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=SIDEWAYS BLACK UP POINTING INDEX
-cp;1F5A1;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=SIDEWAYS BLACK DOWN POINTING INDEX
-cp;1F5A2;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=BLACK UP POINTING BACKHAND INDEX
-cp;1F5A3;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=BLACK DOWN POINTING BACKHAND INDEX
+cp;1F58E;age=7.0;ea=N;-Emoji;-EPres;na=LEFT WRITING HAND
+cp;1F58F;age=7.0;ea=N;-Emoji;-EPres;na=TURNED OK HAND SIGN
+cp;1F590;age=7.0;ea=N;EBase;-EPres;lb=EB;na=RAISED HAND WITH FINGERS SPLAYED
+cp;1F591;age=7.0;ea=N;-Emoji;-EPres;na=REVERSED RAISED HAND WITH FINGERS SPLAYED
+cp;1F592;age=7.0;ea=N;-Emoji;-EPres;na=REVERSED THUMBS UP SIGN
+cp;1F593;age=7.0;ea=N;-Emoji;-EPres;na=REVERSED THUMBS DOWN SIGN
+cp;1F594;age=7.0;ea=N;-Emoji;-EPres;na=REVERSED VICTORY HAND
+cp;1F595;age=7.0;EBase;lb=EB;na=REVERSED HAND WITH MIDDLE FINGER EXTENDED
+cp;1F596;age=7.0;EBase;lb=EB;na=RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS
+cp;1F597;age=7.0;ea=N;-Emoji;-EPres;na=WHITE DOWN POINTING LEFT HAND INDEX
+cp;1F598;age=7.0;ea=N;-Emoji;-EPres;na=SIDEWAYS WHITE LEFT POINTING INDEX
+cp;1F599;age=7.0;ea=N;-Emoji;-EPres;na=SIDEWAYS WHITE RIGHT POINTING INDEX
+cp;1F59A;age=7.0;ea=N;-Emoji;-EPres;na=SIDEWAYS BLACK LEFT POINTING INDEX
+cp;1F59B;age=7.0;ea=N;-Emoji;-EPres;na=SIDEWAYS BLACK RIGHT POINTING INDEX
+cp;1F59C;age=7.0;ea=N;-Emoji;-EPres;na=BLACK LEFT POINTING BACKHAND INDEX
+cp;1F59D;age=7.0;ea=N;-Emoji;-EPres;na=BLACK RIGHT POINTING BACKHAND INDEX
+cp;1F59E;age=7.0;ea=N;-Emoji;-EPres;na=SIDEWAYS WHITE UP POINTING INDEX
+cp;1F59F;age=7.0;ea=N;-Emoji;-EPres;na=SIDEWAYS WHITE DOWN POINTING INDEX
+cp;1F5A0;age=7.0;ea=N;-Emoji;-EPres;na=SIDEWAYS BLACK UP POINTING INDEX
+cp;1F5A1;age=7.0;ea=N;-Emoji;-EPres;na=SIDEWAYS BLACK DOWN POINTING INDEX
+cp;1F5A2;age=7.0;ea=N;-Emoji;-EPres;na=BLACK UP POINTING BACKHAND INDEX
+cp;1F5A3;age=7.0;ea=N;-Emoji;-EPres;na=BLACK DOWN POINTING BACKHAND INDEX
# Heart symbol
cp;1F5A4;age=9.0;na=BLACK HEART
# Computer symbols
-cp;1F5A5;age=7.0;ea=N;-Emoji_Presentation;na=DESKTOP COMPUTER
-cp;1F5A6;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=KEYBOARD AND MOUSE
-cp;1F5A7;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=THREE NETWORKED COMPUTERS
-cp;1F5A8;age=7.0;ea=N;-Emoji_Presentation;na=PRINTER
-cp;1F5A9;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=POCKET CALCULATOR
-cp;1F5AA;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=BLACK HARD SHELL FLOPPY DISK
-cp;1F5AB;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=WHITE HARD SHELL FLOPPY DISK
-cp;1F5AC;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=SOFT SHELL FLOPPY DISK
-cp;1F5AD;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=TAPE CARTRIDGE
-cp;1F5AE;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=WIRED KEYBOARD
-cp;1F5AF;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=ONE BUTTON MOUSE
-cp;1F5B0;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=TWO BUTTON MOUSE
-cp;1F5B1;age=7.0;ea=N;-Emoji_Presentation;na=THREE BUTTON MOUSE
-cp;1F5B2;age=7.0;ea=N;-Emoji_Presentation;na=TRACKBALL
-cp;1F5B3;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=OLD PERSONAL COMPUTER
-cp;1F5B4;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=HARD DISK
-cp;1F5B5;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=SCREEN
-cp;1F5B6;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=PRINTER ICON
-cp;1F5B7;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=FAX ICON
-cp;1F5B8;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=OPTICAL DISC ICON
+cp;1F5A5;age=7.0;ea=N;-EPres;na=DESKTOP COMPUTER
+cp;1F5A6;age=7.0;ea=N;-Emoji;-EPres;na=KEYBOARD AND MOUSE
+cp;1F5A7;age=7.0;ea=N;-Emoji;-EPres;na=THREE NETWORKED COMPUTERS
+cp;1F5A8;age=7.0;ea=N;-EPres;na=PRINTER
+cp;1F5A9;age=7.0;ea=N;-Emoji;-EPres;na=POCKET CALCULATOR
+cp;1F5AA;age=7.0;ea=N;-Emoji;-EPres;na=BLACK HARD SHELL FLOPPY DISK
+cp;1F5AB;age=7.0;ea=N;-Emoji;-EPres;na=WHITE HARD SHELL FLOPPY DISK
+cp;1F5AC;age=7.0;ea=N;-Emoji;-EPres;na=SOFT SHELL FLOPPY DISK
+cp;1F5AD;age=7.0;ea=N;-Emoji;-EPres;na=TAPE CARTRIDGE
+cp;1F5AE;age=7.0;ea=N;-Emoji;-EPres;na=WIRED KEYBOARD
+cp;1F5AF;age=7.0;ea=N;-Emoji;-EPres;na=ONE BUTTON MOUSE
+cp;1F5B0;age=7.0;ea=N;-Emoji;-EPres;na=TWO BUTTON MOUSE
+cp;1F5B1;age=7.0;ea=N;-EPres;na=THREE BUTTON MOUSE
+cp;1F5B2;age=7.0;ea=N;-EPres;na=TRACKBALL
+cp;1F5B3;age=7.0;ea=N;-Emoji;-EPres;na=OLD PERSONAL COMPUTER
+cp;1F5B4;age=7.0;ea=N;-Emoji;-EPres;na=HARD DISK
+cp;1F5B5;age=7.0;ea=N;-Emoji;-EPres;na=SCREEN
+cp;1F5B6;age=7.0;ea=N;-Emoji;-EPres;na=PRINTER ICON
+cp;1F5B7;age=7.0;ea=N;-Emoji;-EPres;na=FAX ICON
+cp;1F5B8;age=7.0;ea=N;-Emoji;-EPres;na=OPTICAL DISC ICON
# Office symbols
-cp;1F5B9;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=DOCUMENT WITH TEXT
-cp;1F5BA;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=DOCUMENT WITH TEXT AND PICTURE
-cp;1F5BB;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=DOCUMENT WITH PICTURE
-cp;1F5BC;age=7.0;ea=N;-Emoji_Presentation;na=FRAME WITH PICTURE
-cp;1F5BD;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=FRAME WITH TILES
-cp;1F5BE;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=FRAME WITH AN X
+cp;1F5B9;age=7.0;ea=N;-Emoji;-EPres;na=DOCUMENT WITH TEXT
+cp;1F5BA;age=7.0;ea=N;-Emoji;-EPres;na=DOCUMENT WITH TEXT AND PICTURE
+cp;1F5BB;age=7.0;ea=N;-Emoji;-EPres;na=DOCUMENT WITH PICTURE
+cp;1F5BC;age=7.0;ea=N;-EPres;na=FRAME WITH PICTURE
+cp;1F5BD;age=7.0;ea=N;-Emoji;-EPres;na=FRAME WITH TILES
+cp;1F5BE;age=7.0;ea=N;-Emoji;-EPres;na=FRAME WITH AN X
# User interface symbols
-cp;1F5BF;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=BLACK FOLDER
-cp;1F5C0;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=FOLDER
-cp;1F5C1;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=OPEN FOLDER
-cp;1F5C2;age=7.0;ea=N;-Emoji_Presentation;na=CARD INDEX DIVIDERS
-cp;1F5C3;age=7.0;ea=N;-Emoji_Presentation;na=CARD FILE BOX
-cp;1F5C4;age=7.0;ea=N;-Emoji_Presentation;na=FILE CABINET
-cp;1F5C5;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=EMPTY NOTE
-cp;1F5C6;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=EMPTY NOTE PAGE
-cp;1F5C7;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=EMPTY NOTE PAD
-cp;1F5C8;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=NOTE
-cp;1F5C9;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=NOTE PAGE
-cp;1F5CA;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=NOTE PAD
-cp;1F5CB;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=EMPTY DOCUMENT
-cp;1F5CC;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=EMPTY PAGE
-cp;1F5CD;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=EMPTY PAGES
-cp;1F5CE;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=DOCUMENT
-cp;1F5CF;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=PAGE
-cp;1F5D0;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=PAGES
-cp;1F5D1;age=7.0;ea=N;-Emoji_Presentation;na=WASTEBASKET
-cp;1F5D2;age=7.0;ea=N;-Emoji_Presentation;na=SPIRAL NOTE PAD
-cp;1F5D3;age=7.0;ea=N;-Emoji_Presentation;na=SPIRAL CALENDAR PAD
-cp;1F5D4;age=7.0;ea=N;-Emoji;-Emoji_Presentation;lb=AL;na=DESKTOP WINDOW
-cp;1F5D5;age=7.0;ea=N;-Emoji;-Emoji_Presentation;lb=AL;na=MINIMIZE
-cp;1F5D6;age=7.0;ea=N;-Emoji;-Emoji_Presentation;lb=AL;na=MAXIMIZE
-cp;1F5D7;age=7.0;ea=N;-Emoji;-Emoji_Presentation;lb=AL;na=OVERLAP
-cp;1F5D8;age=7.0;ea=N;-Emoji;-Emoji_Presentation;lb=AL;na=CLOCKWISE RIGHT AND LEFT SEMICIRCLE ARROWS
-cp;1F5D9;age=7.0;ea=N;-Emoji;-Emoji_Presentation;lb=AL;na=CANCELLATION X
-cp;1F5DA;age=7.0;ea=N;-Emoji;-Emoji_Presentation;lb=AL;na=INCREASE FONT SIZE SYMBOL
-cp;1F5DB;age=7.0;ea=N;-Emoji;-Emoji_Presentation;lb=AL;na=DECREASE FONT SIZE SYMBOL
-cp;1F5DC;age=7.0;ea=N;-Emoji_Presentation;na=COMPRESSION
-cp;1F5DD;age=7.0;ea=N;-Emoji_Presentation;na=OLD KEY
+cp;1F5BF;age=7.0;ea=N;-Emoji;-EPres;na=BLACK FOLDER
+cp;1F5C0;age=7.0;ea=N;-Emoji;-EPres;na=FOLDER
+cp;1F5C1;age=7.0;ea=N;-Emoji;-EPres;na=OPEN FOLDER
+cp;1F5C2;age=7.0;ea=N;-EPres;na=CARD INDEX DIVIDERS
+cp;1F5C3;age=7.0;ea=N;-EPres;na=CARD FILE BOX
+cp;1F5C4;age=7.0;ea=N;-EPres;na=FILE CABINET
+cp;1F5C5;age=7.0;ea=N;-Emoji;-EPres;na=EMPTY NOTE
+cp;1F5C6;age=7.0;ea=N;-Emoji;-EPres;na=EMPTY NOTE PAGE
+cp;1F5C7;age=7.0;ea=N;-Emoji;-EPres;na=EMPTY NOTE PAD
+cp;1F5C8;age=7.0;ea=N;-Emoji;-EPres;na=NOTE
+cp;1F5C9;age=7.0;ea=N;-Emoji;-EPres;na=NOTE PAGE
+cp;1F5CA;age=7.0;ea=N;-Emoji;-EPres;na=NOTE PAD
+cp;1F5CB;age=7.0;ea=N;-Emoji;-EPres;na=EMPTY DOCUMENT
+cp;1F5CC;age=7.0;ea=N;-Emoji;-EPres;na=EMPTY PAGE
+cp;1F5CD;age=7.0;ea=N;-Emoji;-EPres;na=EMPTY PAGES
+cp;1F5CE;age=7.0;ea=N;-Emoji;-EPres;na=DOCUMENT
+cp;1F5CF;age=7.0;ea=N;-Emoji;-EPres;na=PAGE
+cp;1F5D0;age=7.0;ea=N;-Emoji;-EPres;na=PAGES
+cp;1F5D1;age=7.0;ea=N;-EPres;na=WASTEBASKET
+cp;1F5D2;age=7.0;ea=N;-EPres;na=SPIRAL NOTE PAD
+cp;1F5D3;age=7.0;ea=N;-EPres;na=SPIRAL CALENDAR PAD
+cp;1F5D4;age=7.0;ea=N;-Emoji;-EPres;lb=AL;na=DESKTOP WINDOW
+cp;1F5D5;age=7.0;ea=N;-Emoji;-EPres;lb=AL;na=MINIMIZE
+cp;1F5D6;age=7.0;ea=N;-Emoji;-EPres;lb=AL;na=MAXIMIZE
+cp;1F5D7;age=7.0;ea=N;-Emoji;-EPres;lb=AL;na=OVERLAP
+cp;1F5D8;age=7.0;ea=N;-Emoji;-EPres;lb=AL;na=CLOCKWISE RIGHT AND LEFT SEMICIRCLE ARROWS
+cp;1F5D9;age=7.0;ea=N;-Emoji;-EPres;lb=AL;na=CANCELLATION X
+cp;1F5DA;age=7.0;ea=N;-Emoji;-EPres;lb=AL;na=INCREASE FONT SIZE SYMBOL
+cp;1F5DB;age=7.0;ea=N;-Emoji;-EPres;lb=AL;na=DECREASE FONT SIZE SYMBOL
+cp;1F5DC;age=7.0;ea=N;-EPres;na=COMPRESSION
+cp;1F5DD;age=7.0;ea=N;-EPres;na=OLD KEY
# Miscellaneous symbols
-cp;1F5DE;age=7.0;ea=N;-Emoji_Presentation;na=ROLLED-UP NEWSPAPER
-cp;1F5DF;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=PAGE WITH CIRCLED TEXT
-cp;1F5E0;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=STOCK CHART
+cp;1F5DE;age=7.0;ea=N;-EPres;na=ROLLED-UP NEWSPAPER
+cp;1F5DF;age=7.0;ea=N;-Emoji;-EPres;na=PAGE WITH CIRCLED TEXT
+cp;1F5E0;age=7.0;ea=N;-Emoji;-EPres;na=STOCK CHART
# Rating symbols
-cp;1F5E1;age=7.0;ea=N;-Emoji_Presentation;na=DAGGER KNIFE
-cp;1F5E2;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=LIPS
-cp;1F5E3;age=7.0;ea=N;-Emoji_Presentation;na=SPEAKING HEAD IN SILHOUETTE
+cp;1F5E1;age=7.0;ea=N;-EPres;na=DAGGER KNIFE
+cp;1F5E2;age=7.0;ea=N;-Emoji;-EPres;na=LIPS
+cp;1F5E3;age=7.0;ea=N;-EPres;na=SPEAKING HEAD IN SILHOUETTE
# Sound symbols
-cp;1F5E4;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=THREE RAYS ABOVE
-cp;1F5E5;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=THREE RAYS BELOW
-cp;1F5E6;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=THREE RAYS LEFT
-cp;1F5E7;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=THREE RAYS RIGHT
+cp;1F5E4;age=7.0;ea=N;-Emoji;-EPres;na=THREE RAYS ABOVE
+cp;1F5E5;age=7.0;ea=N;-Emoji;-EPres;na=THREE RAYS BELOW
+cp;1F5E6;age=7.0;ea=N;-Emoji;-EPres;na=THREE RAYS LEFT
+cp;1F5E7;age=7.0;ea=N;-Emoji;-EPres;na=THREE RAYS RIGHT
# Bubble symbols
-cp;1F5E8;age=7.0;ea=N;-Emoji_Presentation;GCB=GAZ;na=LEFT SPEECH BUBBLE;WB=GAZ
-cp;1F5E9;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=RIGHT SPEECH BUBBLE
-cp;1F5EA;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=TWO SPEECH BUBBLES
-cp;1F5EB;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=THREE SPEECH BUBBLES
-cp;1F5EC;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=LEFT THOUGHT BUBBLE
-cp;1F5ED;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=RIGHT THOUGHT BUBBLE
-cp;1F5EE;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=LEFT ANGER BUBBLE
-cp;1F5EF;age=7.0;ea=N;-Emoji_Presentation;na=RIGHT ANGER BUBBLE
-cp;1F5F0;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=MOOD BUBBLE
-cp;1F5F1;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=LIGHTNING MOOD BUBBLE
-cp;1F5F2;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=LIGHTNING MOOD
+cp;1F5E8;age=7.0;ea=N;-EPres;na=LEFT SPEECH BUBBLE
+cp;1F5E9;age=7.0;ea=N;-Emoji;-EPres;na=RIGHT SPEECH BUBBLE
+cp;1F5EA;age=7.0;ea=N;-Emoji;-EPres;na=TWO SPEECH BUBBLES
+cp;1F5EB;age=7.0;ea=N;-Emoji;-EPres;na=THREE SPEECH BUBBLES
+cp;1F5EC;age=7.0;ea=N;-Emoji;-EPres;na=LEFT THOUGHT BUBBLE
+cp;1F5ED;age=7.0;ea=N;-Emoji;-EPres;na=RIGHT THOUGHT BUBBLE
+cp;1F5EE;age=7.0;ea=N;-Emoji;-EPres;na=LEFT ANGER BUBBLE
+cp;1F5EF;age=7.0;ea=N;-EPres;na=RIGHT ANGER BUBBLE
+cp;1F5F0;age=7.0;ea=N;-Emoji;-EPres;na=MOOD BUBBLE
+cp;1F5F1;age=7.0;ea=N;-Emoji;-EPres;na=LIGHTNING MOOD BUBBLE
+cp;1F5F2;age=7.0;ea=N;-Emoji;-EPres;na=LIGHTNING MOOD
# Ballot symbols
-cp;1F5F3;age=7.0;ea=N;-Emoji_Presentation;na=BALLOT BOX WITH BALLOT
-cp;1F5F4;age=7.0;ea=N;-Emoji;-Emoji_Presentation;lb=AL;na=BALLOT SCRIPT X
-cp;1F5F5;age=7.0;ea=N;-Emoji;-Emoji_Presentation;lb=AL;na=BALLOT BOX WITH SCRIPT X
-cp;1F5F6;age=7.0;ea=N;-Emoji;-Emoji_Presentation;lb=AL;na=BALLOT BOLD SCRIPT X
-cp;1F5F7;age=7.0;ea=N;-Emoji;-Emoji_Presentation;lb=AL;na=BALLOT BOX WITH BOLD SCRIPT X
-cp;1F5F8;age=7.0;ea=N;-Emoji;-Emoji_Presentation;lb=AL;na=LIGHT CHECK MARK
-cp;1F5F9;age=7.0;ea=N;-Emoji;-Emoji_Presentation;lb=AL;na=BALLOT BOX WITH BOLD CHECK
+cp;1F5F3;age=7.0;ea=N;-EPres;na=BALLOT BOX WITH BALLOT
+cp;1F5F4;age=7.0;ea=N;-Emoji;-EPres;lb=AL;na=BALLOT SCRIPT X
+cp;1F5F5;age=7.0;ea=N;-Emoji;-EPres;lb=AL;na=BALLOT BOX WITH SCRIPT X
+cp;1F5F6;age=7.0;ea=N;-Emoji;-EPres;lb=AL;na=BALLOT BOLD SCRIPT X
+cp;1F5F7;age=7.0;ea=N;-Emoji;-EPres;lb=AL;na=BALLOT BOX WITH BOLD SCRIPT X
+cp;1F5F8;age=7.0;ea=N;-Emoji;-EPres;lb=AL;na=LIGHT CHECK MARK
+cp;1F5F9;age=7.0;ea=N;-Emoji;-EPres;lb=AL;na=BALLOT BOX WITH BOLD CHECK
# Map symbol
-cp;1F5FA;age=7.0;ea=N;-Emoji_Presentation;na=WORLD MAP
+cp;1F5FA;age=7.0;ea=N;-EPres;na=WORLD MAP
# Cultural symbols
cp;1F5FB;na=MOUNT FUJI
cp;1F5FC;na=TOKYO TOWER
@@ -35493,7 +36246,7 @@ cp;1F5FD;na=STATUE OF LIBERTY
cp;1F5FE;na=SILHOUETTE OF JAPAN
cp;1F5FF;na=MOYAI
-block;1F600..1F64F;age=6.0;bc=ON;blk=Emoticons;ea=W;Emoji;Emoji_Presentation;gc=So;Gr_Base;lb=ID;sc=Zyyy;vo=U
+block;1F600..1F64F;age=6.0;bc=ON;blk=Emoticons;ea=W;Emoji;EPres;ExtPict;gc=So;Gr_Base;lb=ID;sc=Zyyy;vo=U
# 1F600..1F64F Emoticons
# Faces
cp;1F600;age=6.1;na=GRINNING FACE
@@ -35568,17 +36321,17 @@ cp;1F642;age=7.0;na=SLIGHTLY SMILING FACE
cp;1F643;age=8.0;na=UPSIDE-DOWN FACE
cp;1F644;age=8.0;na=FACE WITH ROLLING EYES
# Gesture symbols
-cp;1F645;Emoji_Modifier_Base;GCB=EB;lb=EB;na=FACE WITH NO GOOD GESTURE;WB=EB
-cp;1F646;Emoji_Modifier_Base;GCB=EB;lb=EB;na=FACE WITH OK GESTURE;WB=EB
-cp;1F647;Emoji_Modifier_Base;GCB=EB;lb=EB;na=PERSON BOWING DEEPLY;WB=EB
+cp;1F645;EBase;lb=EB;na=FACE WITH NO GOOD GESTURE
+cp;1F646;EBase;lb=EB;na=FACE WITH OK GESTURE
+cp;1F647;EBase;lb=EB;na=PERSON BOWING DEEPLY
cp;1F648;na=SEE-NO-EVIL MONKEY
cp;1F649;na=HEAR-NO-EVIL MONKEY
cp;1F64A;na=SPEAK-NO-EVIL MONKEY
-cp;1F64B;Emoji_Modifier_Base;GCB=EB;lb=EB;na=HAPPY PERSON RAISING ONE HAND;WB=EB
-cp;1F64C;Emoji_Modifier_Base;GCB=EB;lb=EB;na=PERSON RAISING BOTH HANDS IN CELEBRATION;WB=EB
-cp;1F64D;Emoji_Modifier_Base;GCB=EB;lb=EB;na=PERSON FROWNING;WB=EB
-cp;1F64E;Emoji_Modifier_Base;GCB=EB;lb=EB;na=PERSON WITH POUTING FACE;WB=EB
-cp;1F64F;Emoji_Modifier_Base;GCB=EB;lb=EB;na=PERSON WITH FOLDED HANDS;WB=EB
+cp;1F64B;EBase;lb=EB;na=HAPPY PERSON RAISING ONE HAND
+cp;1F64C;EBase;lb=EB;na=PERSON RAISING BOTH HANDS IN CELEBRATION
+cp;1F64D;EBase;lb=EB;na=PERSON FROWNING
+cp;1F64E;EBase;lb=EB;na=PERSON WITH POUTING FACE
+cp;1F64F;EBase;lb=EB;na=PERSON WITH FOLDED HANDS
block;1F650..1F67F;age=7.0;bc=ON;blk=Ornamental_Dingbats;gc=So;Gr_Base;lb=AL;sc=Zyyy;vo=U
# 1F650..1F67F Ornamental Dingbats
@@ -35637,10 +36390,10 @@ cp;1F67D;na=VERY HEAVY REVERSE SOLIDUS
cp;1F67E;na=CHECKER BOARD
cp;1F67F;na=REVERSE CHECKER BOARD
-block;1F680..1F6FF;age=6.0;bc=ON;blk=Transport_And_Map;ea=W;Emoji;Emoji_Presentation;gc=So;Gr_Base;lb=ID;sc=Zyyy;vo=U
+block;1F680..1F6FF;age=6.0;bc=ON;blk=Transport_And_Map;ea=W;Emoji;EPres;ExtPict;gc=So;Gr_Base;lb=ID;sc=Zyyy;vo=U
# 1F680..1F6FF Transport and Map Symbols
# Vehicles
-cp;1F680;GCB=GAZ;na=ROCKET;WB=GAZ
+cp;1F680;na=ROCKET
cp;1F681;na=HELICOPTER
cp;1F682;na=STEAM LOCOMOTIVE
cp;1F683;na=RAILWAY CAR
@@ -35658,7 +36411,7 @@ cp;1F68E;na=TROLLEYBUS
cp;1F68F;na=BUS STOP
cp;1F690;na=MINIBUS
cp;1F691;na=AMBULANCE
-cp;1F692;GCB=GAZ;na=FIRE ENGINE;WB=GAZ
+cp;1F692;na=FIRE ENGINE
cp;1F693;na=POLICE CAR
cp;1F694;na=ONCOMING POLICE CAR
cp;1F695;na=TAXI
@@ -35675,7 +36428,7 @@ cp;1F69F;na=SUSPENSION RAILWAY
cp;1F6A0;na=MOUNTAIN CABLEWAY
cp;1F6A1;na=AERIAL TRAMWAY
cp;1F6A2;na=SHIP
-cp;1F6A3;Emoji_Modifier_Base;GCB=EB;lb=EB;na=ROWBOAT;WB=EB
+cp;1F6A3;EBase;lb=EB;na=ROWBOAT
cp;1F6A4;na=SPEEDBOAT
# Traffic signs
cp;1F6A5;na=HORIZONTAL TRAFFIC LIGHT
@@ -35694,9 +36447,9 @@ cp;1F6B0;na=POTABLE WATER SYMBOL
cp;1F6B1;na=NON-POTABLE WATER SYMBOL
cp;1F6B2;na=BICYCLE
cp;1F6B3;na=NO BICYCLES
-cp;1F6B4;Emoji_Modifier_Base;GCB=EB;lb=EB;na=BICYCLIST;WB=EB
-cp;1F6B5;Emoji_Modifier_Base;GCB=EB;lb=EB;na=MOUNTAIN BICYCLIST;WB=EB
-cp;1F6B6;Emoji_Modifier_Base;GCB=EB;lb=EB;na=PEDESTRIAN;WB=EB
+cp;1F6B4;EBase;lb=EB;na=BICYCLIST
+cp;1F6B5;EBase;lb=EB;na=MOUNTAIN BICYCLIST
+cp;1F6B6;EBase;lb=EB;na=PEDESTRIAN
cp;1F6B7;na=NO PEDESTRIANS
cp;1F6B8;na=CHILDREN CROSSING
cp;1F6B9;na=MENS SYMBOL
@@ -35706,57 +36459,58 @@ cp;1F6BC;na=BABY SYMBOL
cp;1F6BD;na=TOILET
cp;1F6BE;na=WATER CLOSET
cp;1F6BF;na=SHOWER
-cp;1F6C0;Emoji_Modifier_Base;GCB=EB;lb=EB;na=BATH;WB=EB
+cp;1F6C0;EBase;lb=EB;na=BATH
cp;1F6C1;na=BATHTUB
cp;1F6C2;na=PASSPORT CONTROL
cp;1F6C3;na=CUSTOMS
cp;1F6C4;na=BAGGAGE CLAIM
cp;1F6C5;na=LEFT LUGGAGE
-cp;1F6C6;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=TRIANGLE WITH ROUNDED CORNERS
-cp;1F6C7;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=PROHIBITED SIGN
-cp;1F6C8;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=CIRCLED INFORMATION SOURCE
-cp;1F6C9;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=BOYS SYMBOL
-cp;1F6CA;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=GIRLS SYMBOL
+cp;1F6C6;age=7.0;ea=N;-Emoji;-EPres;na=TRIANGLE WITH ROUNDED CORNERS
+cp;1F6C7;age=7.0;ea=N;-Emoji;-EPres;na=PROHIBITED SIGN
+cp;1F6C8;age=7.0;ea=N;-Emoji;-EPres;na=CIRCLED INFORMATION SOURCE
+cp;1F6C9;age=7.0;ea=N;-Emoji;-EPres;na=BOYS SYMBOL
+cp;1F6CA;age=7.0;ea=N;-Emoji;-EPres;na=GIRLS SYMBOL
# Accommodation symbols
-cp;1F6CB;age=7.0;ea=N;-Emoji_Presentation;na=COUCH AND LAMP
-cp;1F6CC;age=7.0;Emoji_Modifier_Base;GCB=EB;lb=EB;na=SLEEPING ACCOMMODATION;WB=EB
-cp;1F6CD;age=7.0;ea=N;-Emoji_Presentation;na=SHOPPING BAGS
-cp;1F6CE;age=7.0;ea=N;-Emoji_Presentation;na=BELLHOP BELL
-cp;1F6CF;age=7.0;ea=N;-Emoji_Presentation;na=BED
+cp;1F6CB;age=7.0;ea=N;-EPres;na=COUCH AND LAMP
+cp;1F6CC;age=7.0;EBase;lb=EB;na=SLEEPING ACCOMMODATION
+cp;1F6CD;age=7.0;ea=N;-EPres;na=SHOPPING BAGS
+cp;1F6CE;age=7.0;ea=N;-EPres;na=BELLHOP BELL
+cp;1F6CF;age=7.0;ea=N;-EPres;na=BED
# Signage and other symbols
cp;1F6D0;age=8.0;na=PLACE OF WORSHIP
cp;1F6D1;age=9.0;na=OCTAGONAL SIGN
cp;1F6D2;age=9.0;na=SHOPPING TROLLEY
# Map symbols
-cp;1F6D3;age=10.0;ea=N;-Emoji;-Emoji_Presentation;na=STUPA
-cp;1F6D4;age=10.0;ea=N;-Emoji;-Emoji_Presentation;na=PAGODA
-unassigned;1F6D5..1F6DF;lb=ID;vo=U
+cp;1F6D3;age=10.0;ea=N;-Emoji;-EPres;na=STUPA
+cp;1F6D4;age=10.0;ea=N;-Emoji;-EPres;na=PAGODA
+unassigned;1F6D5..1F6DF;ExtPict;lb=ID;vo=U
# Miscellaneous symbols
-cp;1F6E0;age=7.0;ea=N;-Emoji_Presentation;na=HAMMER AND WRENCH
-cp;1F6E1;age=7.0;ea=N;-Emoji_Presentation;na=SHIELD
-cp;1F6E2;age=7.0;ea=N;-Emoji_Presentation;na=OIL DRUM
-cp;1F6E3;age=7.0;ea=N;-Emoji_Presentation;na=MOTORWAY
-cp;1F6E4;age=7.0;ea=N;-Emoji_Presentation;na=RAILWAY TRACK
+cp;1F6E0;age=7.0;ea=N;-EPres;na=HAMMER AND WRENCH
+cp;1F6E1;age=7.0;ea=N;-EPres;na=SHIELD
+cp;1F6E2;age=7.0;ea=N;-EPres;na=OIL DRUM
+cp;1F6E3;age=7.0;ea=N;-EPres;na=MOTORWAY
+cp;1F6E4;age=7.0;ea=N;-EPres;na=RAILWAY TRACK
# Vehicles
-cp;1F6E5;age=7.0;ea=N;-Emoji_Presentation;na=MOTOR BOAT
-cp;1F6E6;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=UP-POINTING MILITARY AIRPLANE
-cp;1F6E7;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=UP-POINTING AIRPLANE
-cp;1F6E8;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=UP-POINTING SMALL AIRPLANE
-cp;1F6E9;age=7.0;ea=N;-Emoji_Presentation;na=SMALL AIRPLANE
-cp;1F6EA;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=NORTHEAST-POINTING AIRPLANE
+cp;1F6E5;age=7.0;ea=N;-EPres;na=MOTOR BOAT
+cp;1F6E6;age=7.0;ea=N;-Emoji;-EPres;na=UP-POINTING MILITARY AIRPLANE
+cp;1F6E7;age=7.0;ea=N;-Emoji;-EPres;na=UP-POINTING AIRPLANE
+cp;1F6E8;age=7.0;ea=N;-Emoji;-EPres;na=UP-POINTING SMALL AIRPLANE
+cp;1F6E9;age=7.0;ea=N;-EPres;na=SMALL AIRPLANE
+cp;1F6EA;age=7.0;ea=N;-Emoji;-EPres;na=NORTHEAST-POINTING AIRPLANE
cp;1F6EB;age=7.0;na=AIRPLANE DEPARTURE
cp;1F6EC;age=7.0;na=AIRPLANE ARRIVING
-unassigned;1F6ED..1F6EF;lb=ID;vo=U
-cp;1F6F0;age=7.0;ea=N;-Emoji_Presentation;na=SATELLITE
-cp;1F6F1;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=ONCOMING FIRE ENGINE
-cp;1F6F2;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=DIESEL LOCOMOTIVE
-cp;1F6F3;age=7.0;ea=N;-Emoji_Presentation;na=PASSENGER SHIP
+unassigned;1F6ED..1F6EF;ExtPict;lb=ID;vo=U
+cp;1F6F0;age=7.0;ea=N;-EPres;na=SATELLITE
+cp;1F6F1;age=7.0;ea=N;-Emoji;-EPres;na=ONCOMING FIRE ENGINE
+cp;1F6F2;age=7.0;ea=N;-Emoji;-EPres;na=DIESEL LOCOMOTIVE
+cp;1F6F3;age=7.0;ea=N;-EPres;na=PASSENGER SHIP
cp;1F6F4;age=9.0;na=SCOOTER
cp;1F6F5;age=9.0;na=MOTOR SCOOTER
cp;1F6F6;age=9.0;na=CANOE
cp;1F6F7;age=10.0;na=SLED
cp;1F6F8;age=10.0;na=FLYING SAUCER
-unassigned;1F6F9..1F6FF;lb=ID;vo=U
+cp;1F6F9;age=11.0;na=SKATEBOARD
+unassigned;1F6FA..1F6FF;ExtPict;lb=ID;vo=U
block;1F700..1F77F;age=6.0;bc=ON;blk=Alchemical;gc=So;Gr_Base;lb=AL;sc=Zyyy;vo=U
# 1F700..1F77F Alchemical Symbols
@@ -35890,7 +36644,7 @@ cp;1F771;na=ALCHEMICAL SYMBOL FOR MONTH
# Measures
cp;1F772;na=ALCHEMICAL SYMBOL FOR HALF DRAM
cp;1F773;na=ALCHEMICAL SYMBOL FOR HALF OUNCE
-unassigned;1F774..1F77F;lb=ID;vo=U
+unassigned;1F774..1F77F;ExtPict;lb=ID;vo=U
block;1F780..1F7FF;age=7.0;bc=ON;blk=Geometric_Shapes_Ext;gc=So;Gr_Base;lb=AL;sc=Zyyy;vo=U
# 1F780..1F7FF Geometric Shapes Extended
@@ -36004,7 +36758,12 @@ cp;1F7D1;na=HEAVY EIGHT POINTED PINWHEEL STAR
cp;1F7D2;na=LIGHT TWELVE POINTED BLACK STAR
cp;1F7D3;na=HEAVY TWELVE POINTED BLACK STAR
cp;1F7D4;na=HEAVY TWELVE POINTED PINWHEEL STAR
-unassigned;1F7D5..1F7FF;lb=ID;vo=U
+# Go stone markers
+cp;1F7D5;age=11.0;ExtPict;lb=ID;na=CIRCLED TRIANGLE
+cp;1F7D6;age=11.0;ExtPict;lb=ID;na=NEGATIVE CIRCLED TRIANGLE
+cp;1F7D7;age=11.0;ExtPict;lb=ID;na=CIRCLED SQUARE
+cp;1F7D8;age=11.0;ExtPict;lb=ID;na=NEGATIVE CIRCLED SQUARE
+unassigned;1F7D9..1F7FF;ExtPict;lb=ID;vo=U
block;1F800..1F8FF;age=7.0;bc=ON;blk=Sup_Arrows_C;gc=So;Gr_Base;lb=AL;sc=Zyyy
# 1F800..1F8FF Supplemental Arrows-C
@@ -36021,7 +36780,7 @@ cp;1F808;na=LEFTWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
cp;1F809;na=UPWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
cp;1F80A;na=RIGHTWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
cp;1F80B;na=DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
-unassigned;1F80C..1F80F;lb=ID
+unassigned;1F80C..1F80F;ExtPict;lb=ID
# Arrows with equilateral triangle arrowheads
cp;1F810;na=LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD
cp;1F811;na=UPWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD
@@ -36084,7 +36843,7 @@ cp;1F844;na=LEFTWARDS HEAVY ARROW
cp;1F845;na=UPWARDS HEAVY ARROW
cp;1F846;na=RIGHTWARDS HEAVY ARROW
cp;1F847;na=DOWNWARDS HEAVY ARROW
-unassigned;1F848..1F84F;lb=ID
+unassigned;1F848..1F84F;ExtPict;lb=ID
# Sans-serif arrows
cp;1F850;na=LEFTWARDS SANS-SERIF ARROW
cp;1F851;na=UPWARDS SANS-SERIF ARROW
@@ -36096,7 +36855,7 @@ cp;1F856;na=SOUTH EAST SANS-SERIF ARROW
cp;1F857;na=SOUTH WEST SANS-SERIF ARROW
cp;1F858;na=LEFT RIGHT SANS-SERIF ARROW
cp;1F859;na=UP DOWN SANS-SERIF ARROW
-unassigned;1F85A..1F85F;lb=ID
+unassigned;1F85A..1F85F;ExtPict;lb=ID
# Wide-headed barb arrows
cp;1F860;na=WIDE-HEADED LEFTWARDS LIGHT BARB ARROW
cp;1F861;na=WIDE-HEADED UPWARDS LIGHT BARB ARROW
@@ -36138,7 +36897,7 @@ cp;1F884;na=WIDE-HEADED NORTH WEST VERY HEAVY BARB ARROW
cp;1F885;na=WIDE-HEADED NORTH EAST VERY HEAVY BARB ARROW
cp;1F886;na=WIDE-HEADED SOUTH EAST VERY HEAVY BARB ARROW
cp;1F887;na=WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
-unassigned;1F888..1F88F;lb=ID
+unassigned;1F888..1F88F;ExtPict;lb=ID
# Arrowheads
cp;1F890;na=LEFTWARDS TRIANGLE ARROWHEAD
cp;1F891;na=UPWARDS TRIANGLE ARROWHEAD
@@ -36174,24 +36933,24 @@ cp;1F8AB;na=RIGHTWARDS FRONT-TILTED SHADOWED WHITE ARROW
# White arrow shafts
cp;1F8AC;na=WHITE ARROW SHAFT WIDTH ONE
cp;1F8AD;na=WHITE ARROW SHAFT WIDTH TWO THIRDS
-unassigned;1F8AE..1F8FF;lb=ID
+unassigned;1F8AE..1F8FF;ExtPict;lb=ID
-block;1F900..1F9FF;age=10.0;bc=ON;blk=Sup_Symbols_And_Pictographs;ea=W;Emoji;Emoji_Presentation;gc=So;Gr_Base;lb=ID;sc=Zyyy;vo=U
+block;1F900..1F9FF;age=10.0;bc=ON;blk=Sup_Symbols_And_Pictographs;ea=W;Emoji;EPres;ExtPict;gc=So;Gr_Base;lb=ID;sc=Zyyy;vo=U
# 1F900..1F9FF Supplemental Symbols and Pictographs
# Typicon symbols
-cp;1F900;ea=N;-Emoji;-Emoji_Presentation;lb=AL;na=CIRCLED CROSS FORMEE WITH FOUR DOTS
-cp;1F901;ea=N;-Emoji;-Emoji_Presentation;lb=AL;na=CIRCLED CROSS FORMEE WITH TWO DOTS
-cp;1F902;ea=N;-Emoji;-Emoji_Presentation;lb=AL;na=CIRCLED CROSS FORMEE
-cp;1F903;ea=N;-Emoji;-Emoji_Presentation;lb=AL;na=LEFT HALF CIRCLE WITH FOUR DOTS
-cp;1F904;ea=N;-Emoji;-Emoji_Presentation;lb=AL;na=LEFT HALF CIRCLE WITH THREE DOTS
-cp;1F905;ea=N;-Emoji;-Emoji_Presentation;lb=AL;na=LEFT HALF CIRCLE WITH TWO DOTS
-cp;1F906;ea=N;-Emoji;-Emoji_Presentation;lb=AL;na=LEFT HALF CIRCLE WITH DOT
-cp;1F907;ea=N;-Emoji;-Emoji_Presentation;lb=AL;na=LEFT HALF CIRCLE
-cp;1F908;ea=N;-Emoji;-Emoji_Presentation;lb=AL;na=DOWNWARD FACING HOOK
-cp;1F909;ea=N;-Emoji;-Emoji_Presentation;lb=AL;na=DOWNWARD FACING NOTCHED HOOK
-cp;1F90A;ea=N;-Emoji;-Emoji_Presentation;lb=AL;na=DOWNWARD FACING HOOK WITH DOT
-cp;1F90B;ea=N;-Emoji;-Emoji_Presentation;lb=AL;na=DOWNWARD FACING NOTCHED HOOK WITH DOT
-unassigned;1F90C..1F90F;lb=ID;vo=U
+cp;1F900;ea=N;-Emoji;-EPres;-ExtPict;lb=AL;na=CIRCLED CROSS FORMEE WITH FOUR DOTS
+cp;1F901;ea=N;-Emoji;-EPres;-ExtPict;lb=AL;na=CIRCLED CROSS FORMEE WITH TWO DOTS
+cp;1F902;ea=N;-Emoji;-EPres;-ExtPict;lb=AL;na=CIRCLED CROSS FORMEE
+cp;1F903;ea=N;-Emoji;-EPres;-ExtPict;lb=AL;na=LEFT HALF CIRCLE WITH FOUR DOTS
+cp;1F904;ea=N;-Emoji;-EPres;-ExtPict;lb=AL;na=LEFT HALF CIRCLE WITH THREE DOTS
+cp;1F905;ea=N;-Emoji;-EPres;-ExtPict;lb=AL;na=LEFT HALF CIRCLE WITH TWO DOTS
+cp;1F906;ea=N;-Emoji;-EPres;-ExtPict;lb=AL;na=LEFT HALF CIRCLE WITH DOT
+cp;1F907;ea=N;-Emoji;-EPres;-ExtPict;lb=AL;na=LEFT HALF CIRCLE
+cp;1F908;ea=N;-Emoji;-EPres;-ExtPict;lb=AL;na=DOWNWARD FACING HOOK
+cp;1F909;ea=N;-Emoji;-EPres;-ExtPict;lb=AL;na=DOWNWARD FACING NOTCHED HOOK
+cp;1F90A;ea=N;-Emoji;-EPres;-ExtPict;lb=AL;na=DOWNWARD FACING HOOK WITH DOT
+cp;1F90B;ea=N;-Emoji;-EPres;-ExtPict;lb=AL;na=DOWNWARD FACING NOTCHED HOOK WITH DOT
+unassigned;1F90C..1F90F;ExtPict;lb=ID;vo=U
# Emoticon faces
cp;1F910;age=8.0;na=ZIPPER-MOUTH FACE
cp;1F911;age=8.0;na=MONEY-MOUTH FACE
@@ -36202,14 +36961,14 @@ cp;1F915;age=8.0;na=FACE WITH HEAD-BANDAGE
cp;1F916;age=8.0;na=ROBOT FACE
cp;1F917;age=8.0;na=HUGGING FACE
# Hand symbols
-cp;1F918;age=8.0;Emoji_Modifier_Base;GCB=EB;lb=EB;na=SIGN OF THE HORNS;WB=EB
-cp;1F919;age=9.0;Emoji_Modifier_Base;GCB=EB;lb=EB;na=CALL ME HAND;WB=EB
-cp;1F91A;age=9.0;Emoji_Modifier_Base;GCB=EB;lb=EB;na=RAISED BACK OF HAND;WB=EB
-cp;1F91B;age=9.0;Emoji_Modifier_Base;GCB=EB;lb=EB;na=LEFT-FACING FIST;WB=EB
-cp;1F91C;age=9.0;Emoji_Modifier_Base;GCB=EB;lb=EB;na=RIGHT-FACING FIST;WB=EB
+cp;1F918;age=8.0;EBase;lb=EB;na=SIGN OF THE HORNS
+cp;1F919;age=9.0;EBase;lb=EB;na=CALL ME HAND
+cp;1F91A;age=9.0;EBase;lb=EB;na=RAISED BACK OF HAND
+cp;1F91B;age=9.0;EBase;lb=EB;na=LEFT-FACING FIST
+cp;1F91C;age=9.0;EBase;lb=EB;na=RIGHT-FACING FIST
cp;1F91D;age=9.0;na=HANDSHAKE
-cp;1F91E;age=9.0;Emoji_Modifier_Base;GCB=EB;lb=EB;na=HAND WITH INDEX AND MIDDLE FINGERS CROSSED;WB=EB
-cp;1F91F;Emoji_Modifier_Base;GCB=EB;lb=EB;na=I LOVE YOU HAND SIGN;WB=EB
+cp;1F91E;age=9.0;EBase;lb=EB;na=HAND WITH INDEX AND MIDDLE FINGERS CROSSED
+cp;1F91F;EBase;lb=EB;na=I LOVE YOU HAND SIGN
# Emoticon faces
cp;1F920;age=9.0;na=FACE WITH COWBOY HAT
cp;1F921;age=9.0;na=CLOWN FACE
@@ -36217,7 +36976,7 @@ cp;1F922;age=9.0;na=NAUSEATED FACE
cp;1F923;age=9.0;na=ROLLING ON THE FLOOR LAUGHING
cp;1F924;age=9.0;na=DROOLING FACE
cp;1F925;age=9.0;na=LYING FACE
-cp;1F926;age=9.0;Emoji_Modifier_Base;GCB=EB;lb=EB;na=FACE PALM;WB=EB
+cp;1F926;age=9.0;EBase;lb=EB;na=FACE PALM
cp;1F927;age=9.0;na=SNEEZING FACE
cp;1F928;na=FACE WITH ONE EYEBROW RAISED
cp;1F929;na=GRINNING FACE WITH STAR EYES
@@ -36228,22 +36987,22 @@ cp;1F92D;na=SMILING FACE WITH SMILING EYES AND HAND COVERING MOUTH
cp;1F92E;na=FACE WITH OPEN MOUTH VOMITING
cp;1F92F;na=SHOCKED FACE WITH EXPLODING HEAD
# Portrait and role symbols
-cp;1F930;age=9.0;Emoji_Modifier_Base;GCB=EB;lb=EB;na=PREGNANT WOMAN;WB=EB
-cp;1F931;Emoji_Modifier_Base;GCB=EB;lb=EB;na=BREAST-FEEDING;WB=EB
-cp;1F932;Emoji_Modifier_Base;GCB=EB;lb=EB;na=PALMS UP TOGETHER;WB=EB
-cp;1F933;age=9.0;Emoji_Modifier_Base;GCB=EB;lb=EB;na=SELFIE;WB=EB
-cp;1F934;age=9.0;Emoji_Modifier_Base;GCB=EB;lb=EB;na=PRINCE;WB=EB
-cp;1F935;age=9.0;Emoji_Modifier_Base;GCB=EB;lb=EB;na=MAN IN TUXEDO;WB=EB
-cp;1F936;age=9.0;Emoji_Modifier_Base;GCB=EB;lb=EB;na=MOTHER CHRISTMAS;WB=EB
-cp;1F937;age=9.0;Emoji_Modifier_Base;GCB=EB;lb=EB;na=SHRUG;WB=EB
-cp;1F938;age=9.0;Emoji_Modifier_Base;GCB=EB;lb=EB;na=PERSON DOING CARTWHEEL;WB=EB
-cp;1F939;age=9.0;Emoji_Modifier_Base;GCB=EB;lb=EB;na=JUGGLING;WB=EB
+cp;1F930;age=9.0;EBase;lb=EB;na=PREGNANT WOMAN
+cp;1F931;EBase;lb=EB;na=BREAST-FEEDING
+cp;1F932;EBase;lb=EB;na=PALMS UP TOGETHER
+cp;1F933;age=9.0;EBase;lb=EB;na=SELFIE
+cp;1F934;age=9.0;EBase;lb=EB;na=PRINCE
+cp;1F935;age=9.0;EBase;lb=EB;na=MAN IN TUXEDO
+cp;1F936;age=9.0;EBase;lb=EB;na=MOTHER CHRISTMAS
+cp;1F937;age=9.0;EBase;lb=EB;na=SHRUG
+cp;1F938;age=9.0;EBase;lb=EB;na=PERSON DOING CARTWHEEL
+cp;1F939;age=9.0;EBase;lb=EB;na=JUGGLING
cp;1F93A;age=9.0;na=FENCER
-cp;1F93B;age=9.0;-Emoji;-Emoji_Presentation;na=MODERN PENTATHLON
+cp;1F93B;age=9.0;-Emoji;-EPres;-ExtPict;na=MODERN PENTATHLON
cp;1F93C;age=9.0;na=WRESTLERS
-cp;1F93D;age=9.0;Emoji_Modifier_Base;GCB=EB;lb=EB;na=WATER POLO;WB=EB
-cp;1F93E;age=9.0;Emoji_Modifier_Base;GCB=EB;lb=EB;na=HANDBALL;WB=EB
-unassigned;1F93F;lb=ID;vo=U
+cp;1F93D;age=9.0;EBase;lb=EB;na=WATER POLO
+cp;1F93E;age=9.0;EBase;lb=EB;na=HANDBALL
+unassigned;1F93F;ExtPict;lb=ID;vo=U
# Miscellaneous symbols
cp;1F940;age=9.0;na=WILTED FLOWER
cp;1F941;age=9.0;na=DRUM WITH DRUMSTICKS
@@ -36251,14 +37010,16 @@ cp;1F942;age=9.0;na=CLINKING GLASSES
cp;1F943;age=9.0;na=TUMBLER GLASS
cp;1F944;age=9.0;na=SPOON
cp;1F945;age=9.0;na=GOAL NET
-cp;1F946;age=9.0;-Emoji;-Emoji_Presentation;na=RIFLE
+cp;1F946;age=9.0;-Emoji;-EPres;-ExtPict;na=RIFLE
cp;1F947;age=9.0;na=FIRST PLACE MEDAL
cp;1F948;age=9.0;na=SECOND PLACE MEDAL
cp;1F949;age=9.0;na=THIRD PLACE MEDAL
cp;1F94A;age=9.0;na=BOXING GLOVE
cp;1F94B;age=9.0;na=MARTIAL ARTS UNIFORM
cp;1F94C;na=CURLING STONE
-unassigned;1F94D..1F94F;lb=ID;vo=U
+cp;1F94D;age=11.0;na=LACROSSE STICK AND BALL
+cp;1F94E;age=11.0;na=SOFTBALL
+cp;1F94F;age=11.0;na=FLYING DISC
# Food symbols
cp;1F950;age=9.0;na=CROISSANT
cp;1F951;age=9.0;na=AVOCADO
@@ -36288,7 +37049,25 @@ cp;1F968;na=PRETZEL
cp;1F969;na=CUT OF MEAT
cp;1F96A;na=SANDWICH
cp;1F96B;na=CANNED FOOD
-unassigned;1F96C..1F97F;lb=ID;vo=U
+cp;1F96C;age=11.0;na=LEAFY GREEN
+cp;1F96D;age=11.0;na=MANGO
+cp;1F96E;age=11.0;na=MOON CAKE
+cp;1F96F;age=11.0;na=BAGEL
+# Faces
+cp;1F970;age=11.0;na=SMILING FACE WITH SMILING EYES AND THREE HEARTS
+unassigned;1F971..1F972;ExtPict;lb=ID;vo=U
+cp;1F973;age=11.0;na=FACE WITH PARTY HORN AND PARTY HAT
+cp;1F974;age=11.0;na=FACE WITH UNEVEN EYES AND WAVY MOUTH
+cp;1F975;age=11.0;na=OVERHEATED FACE
+cp;1F976;age=11.0;na=FREEZING FACE
+unassigned;1F977..1F979;ExtPict;lb=ID;vo=U
+cp;1F97A;age=11.0;na=FACE WITH PLEADING EYES
+unassigned;1F97B;ExtPict;lb=ID;vo=U
+# Clothing
+cp;1F97C;age=11.0;na=LAB COAT
+cp;1F97D;age=11.0;na=GOGGLES
+cp;1F97E;age=11.0;na=HIKING BOOT
+cp;1F97F;age=11.0;na=FLAT SHOE
# Animal symbols
cp;1F980;age=8.0;na=CRAB
cp;1F981;age=8.0;na=LION FACE
@@ -36314,26 +37093,53 @@ cp;1F994;na=HEDGEHOG
cp;1F995;na=SAUROPOD
cp;1F996;na=T-REX
cp;1F997;na=CRICKET
-unassigned;1F998..1F9BF;lb=ID;vo=U
-# Food symbol
+cp;1F998;age=11.0;na=KANGAROO
+cp;1F999;age=11.0;na=LLAMA
+cp;1F99A;age=11.0;na=PEACOCK
+cp;1F99B;age=11.0;na=HIPPOPOTAMUS
+cp;1F99C;age=11.0;na=PARROT
+cp;1F99D;age=11.0;na=RACCOON
+cp;1F99E;age=11.0;na=LOBSTER
+cp;1F99F;age=11.0;na=MOSQUITO
+cp;1F9A0;age=11.0;na=MICROBE
+cp;1F9A1;age=11.0;na=BADGER
+cp;1F9A2;age=11.0;na=SWAN
+unassigned;1F9A3..1F9AF;ExtPict;lb=ID;vo=U
+# Emoji components
+cp;1F9B0;age=11.0;EComp;na=EMOJI COMPONENT RED HAIR
+cp;1F9B1;age=11.0;EComp;na=EMOJI COMPONENT CURLY HAIR
+cp;1F9B2;age=11.0;EComp;na=EMOJI COMPONENT BALD
+cp;1F9B3;age=11.0;EComp;na=EMOJI COMPONENT WHITE HAIR
+# Body parts
+cp;1F9B4;age=11.0;na=BONE
+cp;1F9B5;age=11.0;EBase;lb=EB;na=LEG
+cp;1F9B6;age=11.0;EBase;lb=EB;na=FOOT
+cp;1F9B7;age=11.0;na=TOOTH
+# Role symbols
+cp;1F9B8;age=11.0;EBase;lb=EB;na=SUPERHERO
+cp;1F9B9;age=11.0;EBase;lb=EB;na=SUPERVILLAIN
+unassigned;1F9BA..1F9BF;ExtPict;lb=ID;vo=U
+# Food symbols
cp;1F9C0;age=8.0;na=CHEESE WEDGE
-unassigned;1F9C1..1F9CF;lb=ID;vo=U
+cp;1F9C1;age=11.0;na=CUPCAKE
+cp;1F9C2;age=11.0;na=SALT SHAKER
+unassigned;1F9C3..1F9CF;ExtPict;lb=ID;vo=U
# Portrait and role symbols
cp;1F9D0;na=FACE WITH MONOCLE
-cp;1F9D1;Emoji_Modifier_Base;GCB=EB;lb=EB;na=ADULT;WB=EB
-cp;1F9D2;Emoji_Modifier_Base;GCB=EB;lb=EB;na=CHILD;WB=EB
-cp;1F9D3;Emoji_Modifier_Base;GCB=EB;lb=EB;na=OLDER ADULT;WB=EB
-cp;1F9D4;Emoji_Modifier_Base;GCB=EB;lb=EB;na=BEARDED PERSON;WB=EB
-cp;1F9D5;Emoji_Modifier_Base;GCB=EB;lb=EB;na=PERSON WITH HEADSCARF;WB=EB
-cp;1F9D6;Emoji_Modifier_Base;GCB=EB;lb=EB;na=PERSON IN STEAMY ROOM;WB=EB
-cp;1F9D7;Emoji_Modifier_Base;GCB=EB;lb=EB;na=PERSON CLIMBING;WB=EB
-cp;1F9D8;Emoji_Modifier_Base;GCB=EB;lb=EB;na=PERSON IN LOTUS POSITION;WB=EB
+cp;1F9D1;EBase;lb=EB;na=ADULT
+cp;1F9D2;EBase;lb=EB;na=CHILD
+cp;1F9D3;EBase;lb=EB;na=OLDER ADULT
+cp;1F9D4;EBase;lb=EB;na=BEARDED PERSON
+cp;1F9D5;EBase;lb=EB;na=PERSON WITH HEADSCARF
+cp;1F9D6;EBase;lb=EB;na=PERSON IN STEAMY ROOM
+cp;1F9D7;EBase;lb=EB;na=PERSON CLIMBING
+cp;1F9D8;EBase;lb=EB;na=PERSON IN LOTUS POSITION
# Fantasy beings
-cp;1F9D9;Emoji_Modifier_Base;GCB=EB;lb=EB;na=MAGE;WB=EB
-cp;1F9DA;Emoji_Modifier_Base;GCB=EB;lb=EB;na=FAIRY;WB=EB
-cp;1F9DB;Emoji_Modifier_Base;GCB=EB;lb=EB;na=VAMPIRE;WB=EB
-cp;1F9DC;Emoji_Modifier_Base;GCB=EB;lb=EB;na=MERPERSON;WB=EB
-cp;1F9DD;Emoji_Modifier_Base;GCB=EB;lb=EB;na=ELF;WB=EB
+cp;1F9D9;EBase;lb=EB;na=MAGE
+cp;1F9DA;EBase;lb=EB;na=FAIRY
+cp;1F9DB;EBase;lb=EB;na=VAMPIRE
+cp;1F9DC;EBase;lb=EB;na=MERPERSON
+cp;1F9DD;EBase;lb=EB;na=ELF
cp;1F9DE;na=GENIE
cp;1F9DF;na=ZOMBIE
# Miscellaneous symbols
@@ -36344,12 +37150,58 @@ cp;1F9E3;na=SCARF
cp;1F9E4;na=GLOVES
cp;1F9E5;na=COAT
cp;1F9E6;na=SOCKS
-unassigned;1F9E7..1F9FF;lb=ID;vo=U
+# Activities
+cp;1F9E7;age=11.0;na=RED GIFT ENVELOPE
+cp;1F9E8;age=11.0;na=FIRECRACKER
+cp;1F9E9;age=11.0;na=JIGSAW PUZZLE PIECE
+# Objects
+cp;1F9EA;age=11.0;na=TEST TUBE
+cp;1F9EB;age=11.0;na=PETRI DISH
+cp;1F9EC;age=11.0;na=DNA DOUBLE HELIX
+cp;1F9ED;age=11.0;na=COMPASS
+cp;1F9EE;age=11.0;na=ABACUS
+cp;1F9EF;age=11.0;na=FIRE EXTINGUISHER
+cp;1F9F0;age=11.0;na=TOOLBOX
+cp;1F9F1;age=11.0;na=BRICK
+cp;1F9F2;age=11.0;na=MAGNET
+cp;1F9F3;age=11.0;na=LUGGAGE
+cp;1F9F4;age=11.0;na=LOTION BOTTLE
+cp;1F9F5;age=11.0;na=SPOOL OF THREAD
+cp;1F9F6;age=11.0;na=BALL OF YARN
+cp;1F9F7;age=11.0;na=SAFETY PIN
+cp;1F9F8;age=11.0;na=TEDDY BEAR
+cp;1F9F9;age=11.0;na=BROOM
+cp;1F9FA;age=11.0;na=BASKET
+cp;1F9FB;age=11.0;na=ROLL OF PAPER
+cp;1F9FC;age=11.0;na=BAR OF SOAP
+cp;1F9FD;age=11.0;na=SPONGE
+cp;1F9FE;age=11.0;na=RECEIPT
+cp;1F9FF;age=11.0;na=NAZAR AMULET
+
+block;1FA00..1FA6F;age=11.0;bc=ON;blk=Chess_Symbols;ExtPict;gc=So;Gr_Base;lb=ID;sc=Zyyy;vo=U
+# 1FA00..1FA6F Chess Symbols
+unassigned;1FA00..1FA5F;ExtPict;lb=ID;vo=U
+# Xiangqi symbols
+cp;1FA60;na=XIANGQI RED GENERAL
+cp;1FA61;na=XIANGQI RED MANDARIN
+cp;1FA62;na=XIANGQI RED ELEPHANT
+cp;1FA63;na=XIANGQI RED HORSE
+cp;1FA64;na=XIANGQI RED CHARIOT
+cp;1FA65;na=XIANGQI RED CANNON
+cp;1FA66;na=XIANGQI RED SOLDIER
+cp;1FA67;na=XIANGQI BLACK GENERAL
+cp;1FA68;na=XIANGQI BLACK MANDARIN
+cp;1FA69;na=XIANGQI BLACK ELEPHANT
+cp;1FA6A;na=XIANGQI BLACK HORSE
+cp;1FA6B;na=XIANGQI BLACK CHARIOT
+cp;1FA6C;na=XIANGQI BLACK CANNON
+cp;1FA6D;na=XIANGQI BLACK SOLDIER
+unassigned;1FA6E..1FA6F;ExtPict;lb=ID;vo=U
# No block
-unassigned;1FA00..1FF7F;lb=ID
+unassigned;1FA70..1FF7F;ExtPict;lb=ID
# 1FF80..1FFFF Unassigned
-unassigned;1FF80..1FFFD;lb=ID
+unassigned;1FF80..1FFFD;ExtPict;lb=ID
# Noncharacters
unassigned;1FFFE..1FFFF;age=2.0;bc=BN;NChar
@@ -36988,11 +37840,11 @@ unassigned;CFFFE..CFFFF;age=2.0;bc=BN;NChar
# Noncharacters
unassigned;DFFFE..DFFFF;age=2.0;bc=BN;NChar
-block;E0000..E007F;age=3.1;bc=BN;blk=Tags;CI;CWKCF;DI;gc=Cf;GCB=EX;Gr_Ext;jt=T;lb=CM;NFKC_CF=;SB=EX;sc=Zyyy;WB=Extend
+block;E0000..E007F;age=3.1;bc=BN;blk=Tags;CI;CWKCF;DI;EComp;gc=Cf;GCB=EX;Gr_Ext;jt=T;lb=CM;NFKC_CF=;SB=EX;sc=Zyyy;WB=Extend
# E0000..E007F Tags
unassigned;E0000;bc=BN;CWKCF;DI;GCB=CN;NFKC_CF=
# Tag identifiers
-cp;E0001;Dep;GCB=CN;-Gr_Ext;na=LANGUAGE TAG;SB=FO;WB=FO
+cp;E0001;Dep;-EComp;GCB=CN;-Gr_Ext;na=LANGUAGE TAG;SB=FO;WB=FO
unassigned;E0002..E001F;bc=BN;CWKCF;DI;GCB=CN;NFKC_CF=
# Tag components
cp;E0020;na=TAG SPACE
diff --git a/Build/source/libs/icu/icu-src/source/extra/uconv/makedata.mak b/Build/source/libs/icu/icu-src/source/extra/uconv/makedata.mak
index 52d7c493068..2cc07d61096 100644
--- a/Build/source/libs/icu/icu-src/source/extra/uconv/makedata.mak
+++ b/Build/source/libs/icu/icu-src/source/extra/uconv/makedata.mak
@@ -8,7 +8,7 @@
# invoke with
# nmake /f makedata.mak icup=<path_to_icu_instalation> [Debug|Release]
#
-# 12/10/1999 weiv Created
+# 12/10/1999 weiv Created
#If no config, we default to debug
!IF "$(CFG)" == ""
@@ -38,6 +38,7 @@ CFG=Debug
!ERROR Can't find path!
!ENDIF
!MESSAGE ICU path is $(ICUP)
+
RESNAME=uconvmsg
RESDIR=resources
RESFILES=resfiles.mk
@@ -58,6 +59,16 @@ ICUTOOLS=$(ICUP)\bin
PATH = $(ICUP)\bin;$(PATH)
!ENDIF
+# Make sure the necessary tools exist before continuing. (This is to prevent cryptic errors from NMAKE).
+!IF !EXISTS($(ICUTOOLS)\pkgdata.exe)
+!MESSAGE Unable to find "$(ICUTOOLS)\pkgdata.exe"
+!ERROR The tool 'pkgdata.exe' does not exist! (Have you built all of ICU yet?).
+!ENDIF
+!IF !EXISTS($(ICUTOOLS)\genrb.exe)
+!MESSAGE Unable to find "$(ICUTOOLS)\genrb.exe"
+!ERROR The tool 'genrb.exe' does not exist! (Have you built all of ICU yet?).
+!ENDIF
+
# Suffixes for data files
.SUFFIXES : .ucm .cnv .dll .dat .res .txt .c
@@ -81,13 +92,13 @@ OUTPUT = "$(DLL_OUTPUT)\$(RESNAME).lib"
!ENDIF
ALL : $(OUTPUT)
- @echo All targets are up to date (mode $(PKGMODE))
+ @echo All targets are up to date (mode $(PKGMODE))
# invoke pkgdata - static
"$(DLL_OUTPUT)\$(RESNAME).lib" : $(RB_FILES) $(RESFILES)
- @echo Building $(RESNAME).lib
- @"$(ICUTOOLS)\pkgdata" -f -v -m static -c -p $(RESNAME) -d "$(DLL_OUTPUT)" -s "$(RESDIR)" <<pkgdatain.txt
+ @echo Building $(RESNAME).lib
+ @"$(ICUTOOLS)\pkgdata" -f -v -m static -c -p $(RESNAME) -d "$(DLL_OUTPUT)" -s "$(RESDIR)" <<pkgdatain.txt
$(RES_FILES:.res =.res
)
<<KEEP
@@ -95,14 +106,12 @@ $(RES_FILES:.res =.res
# This is to remove all the data files
CLEAN :
-@erase "$(RB_FILES)"
- -@erase "$(CFG)\*uconvmsg*.*"
+ -@erase "$(CFG)\*uconvmsg*.*"
-@"$(ICUTOOLS)\pkgdata" -f --clean -v -m static -c -p $(RESNAME) -d "$(DLL_OUTPUT)" -s "$(RESDIR)" pkgdatain.txt
# Inference rule for creating resource bundles
{$(RESDIR)}.txt{$(RESDIR)}.res:
- @echo Making Resource Bundle files
- "$(ICUTOOLS)\genrb" -s $(@D) -d $(@D) $(?F)
-
+ @echo Making Resource Bundle files
+ "$(ICUTOOLS)\genrb" -s $(@D) -d $(@D) $(?F)
$(RESSRC) : {"$(ICUTOOLS)"}genrb.exe
-
diff --git a/Build/source/libs/icu/icu-src/source/i18n/Makefile.in b/Build/source/libs/icu/icu-src/source/i18n/Makefile.in
index e52be377e04..fb5eb146bec 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/Makefile.in
+++ b/Build/source/libs/icu/icu-src/source/i18n/Makefile.in
@@ -65,8 +65,8 @@ LDFLAGS += $(LDFLAGSICUI18N)
LIBS = $(LIBICUUC) $(DEFAULT_LIBS)
OBJECTS = ucln_in.o \
-fmtable.o format.o msgfmt.o umsg.o numfmt.o unum.o decimfmt.o decimalformatpattern.o dcfmtsym.o \
-digitlst.o fmtable_cnv.o \
+fmtable.o format.o msgfmt.o umsg.o numfmt.o unum.o decimfmt.o dcfmtsym.o \
+fmtable_cnv.o \
choicfmt.o datefmt.o smpdtfmt.o reldtfmt.o dtfmtsym.o udat.o dtptngen.o udatpg.o \
nfrs.o nfrule.o nfsubs.o rbnf.o numsys.o unumsys.o ucsdet.o \
ucal.o calendar.o gregocal.o timezone.o simpletz.o olsontz.o \
@@ -81,6 +81,7 @@ collationsets.o \
collationcompare.o collationfastlatin.o collationkeys.o rulebasedcollator.o collationroot.o \
collationrootelements.o collationdatabuilder.o \
collationweights.o collationruleparser.o collationbuilder.o collationfastlatinbuilder.o \
+listformatter.o ulistformatter.o \
strmatch.o usearch.o search.o stsearch.o \
translit.o utrans.o esctrn.o unesctrn.o funcrepl.o strrepl.o tridpars.o \
cpdtrans.o rbt.o rbt_data.o rbt_pars.o rbt_rule.o rbt_set.o \
@@ -92,25 +93,26 @@ csdetect.o csmatch.o csr2022.o csrecog.o csrmbcs.o csrsbcs.o csrucode.o csrutf8.
wintzimpl.o windtfmt.o winnmfmt.o basictz.o dtrule.o rbtz.o tzrule.o tztrans.o vtzone.o zonemeta.o \
standardplural.o upluralrules.o plurrule.o plurfmt.o selfmt.o dtitvfmt.o dtitvinf.o udateintervalformat.o \
tmunit.o tmutamt.o tmutfmt.o currpinf.o \
-uspoof.o uspoof_impl.o uspoof_build.o uspoof_conf.o decfmtst.o smpdtfst.o \
+uspoof.o uspoof_impl.o uspoof_build.o uspoof_conf.o smpdtfst.o \
ztrans.o zrule.o vzone.o fphdlimp.o fpositer.o ufieldpositer.o \
decNumber.o decContext.o alphaindex.o tznames.o tznames_impl.o tzgnames.o \
tzfmt.o compactdecimalformat.o gender.o region.o scriptset.o \
uregion.o reldatefmt.o quantityformatter.o measunit.o \
-sharedbreakiterator.o scientificnumberformatter.o digitgrouping.o \
-digitinterval.o digitformatter.o digitaffix.o valueformatter.o \
-digitaffixesandpadding.o pluralaffix.o precision.o \
-affixpatternparser.o smallintformatter.o decimfmtimpl.o \
-visibledigits.o dayperiodrules.o \
-nounit.o \
+sharedbreakiterator.o scientificnumberformatter.o dayperiodrules.o nounit.o \
number_affixutils.o number_compact.o number_decimalquantity.o \
number_decimfmtprops.o number_fluent.o number_formatimpl.o number_grouping.o \
number_integerwidth.o number_longnames.o number_modifiers.o number_notation.o \
number_padding.o number_patternmodifier.o number_patternstring.o \
-number_rounding.o number_scientific.o number_stringbuilder.o \
+number_rounding.o number_scientific.o number_stringbuilder.o number_utils.o number_asformat.o \
+number_mapper.o number_multiplier.o number_currencysymbols.o number_skeletons.o number_capi.o \
double-conversion.o double-conversion-bignum-dtoa.o double-conversion-bignum.o \
-double-conversion-cached-powers.o double-conversion-diy-fp.o double-conversion-fast-dtoa.o
-
+double-conversion-cached-powers.o double-conversion-diy-fp.o \
+double-conversion-fast-dtoa.o double-conversion-strtod.o \
+numparse_stringsegment.o numparse_parsednumber.o numparse_impl.o \
+numparse_symbols.o numparse_decimal.o numparse_scientific.o numparse_currency.o \
+numparse_affixes.o numparse_compositions.o numparse_validators.o \
+numrange_fluent.o numrange_impl.o \
+erarules.o
## Header files to install
HEADERS = $(srcdir)/unicode/*.h
diff --git a/Build/source/libs/icu/icu-src/source/i18n/affixpatternparser.cpp b/Build/source/libs/icu/icu-src/source/i18n/affixpatternparser.cpp
deleted file mode 100644
index c15f3871f3d..00000000000
--- a/Build/source/libs/icu/icu-src/source/i18n/affixpatternparser.cpp
+++ /dev/null
@@ -1,698 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
- * Copyright (C) 2015, International Business Machines
- * Corporation and others. All Rights Reserved.
- *
- * file name: affixpatternparser.cpp
- */
-
-#include "unicode/utypes.h"
-
-#if !UCONFIG_NO_FORMATTING
-
-#include "unicode/dcfmtsym.h"
-#include "unicode/plurrule.h"
-#include "unicode/strenum.h"
-#include "unicode/ucurr.h"
-#include "unicode/ustring.h"
-#include "affixpatternparser.h"
-#include "charstr.h"
-#include "precision.h"
-#include "uassert.h"
-#include "unistrappender.h"
-
-static const UChar gDefaultSymbols[] = {0xa4, 0xa4, 0xa4};
-
-static const UChar gPercent = 0x25;
-static const UChar gPerMill = 0x2030;
-static const UChar gNegative = 0x2D;
-static const UChar gPositive = 0x2B;
-
-#define PACK_TOKEN_AND_LENGTH(t, l) ((UChar) (((t) << 8) | (l & 0xFF)))
-
-#define UNPACK_TOKEN(c) ((AffixPattern::ETokenType) (((c) >> 8) & 0x7F))
-
-#define UNPACK_LONG(c) (((c) >> 8) & 0x80)
-
-#define UNPACK_LENGTH(c) ((c) & 0xFF)
-
-U_NAMESPACE_BEGIN
-
-static int32_t
-nextToken(const UChar *buffer, int32_t idx, int32_t len, UChar *token) {
- if (buffer[idx] != 0x27 || idx + 1 == len) {
- *token = buffer[idx];
- return 1;
- }
- *token = buffer[idx + 1];
- if (buffer[idx + 1] == 0xA4) {
- int32_t i = 2;
- for (; idx + i < len && i < 4 && buffer[idx + i] == buffer[idx + 1]; ++i)
- ;
- return i;
- }
- return 2;
-}
-
-static int32_t
-nextUserToken(const UChar *buffer, int32_t idx, int32_t len, UChar *token) {
- *token = buffer[idx];
- int32_t max;
- switch (buffer[idx]) {
- case 0x27:
- max = 2;
- break;
- case 0xA4:
- max = 3;
- break;
- default:
- max = 1;
- break;
- }
- int32_t i = 1;
- for (; idx + i < len && i < max && buffer[idx + i] == buffer[idx]; ++i)
- ;
- return i;
-}
-
-CurrencyAffixInfo::CurrencyAffixInfo()
- : fSymbol(gDefaultSymbols, 1),
- fISO(gDefaultSymbols, 2),
- fLong(DigitAffix(gDefaultSymbols, 3)),
- fIsDefault(TRUE) {
-}
-
-void
-CurrencyAffixInfo::set(
- const char *locale,
- const PluralRules *rules,
- const UChar *currency,
- UErrorCode &status) {
- if (U_FAILURE(status)) {
- return;
- }
- fIsDefault = FALSE;
- if (currency == NULL) {
- fSymbol.setTo(gDefaultSymbols, 1);
- fISO.setTo(gDefaultSymbols, 2);
- fLong.remove();
- fLong.append(gDefaultSymbols, 3);
- fIsDefault = TRUE;
- return;
- }
- int32_t len;
- UBool unusedIsChoice;
- const UChar *symbol = ucurr_getName(
- currency, locale, UCURR_SYMBOL_NAME, &unusedIsChoice,
- &len, &status);
- if (U_FAILURE(status)) {
- return;
- }
- fSymbol.setTo(symbol, len);
- fISO.setTo(currency, u_strlen(currency));
- fLong.remove();
- StringEnumeration* keywords = rules->getKeywords(status);
- if (U_FAILURE(status)) {
- return;
- }
- const UnicodeString* pluralCount;
- while ((pluralCount = keywords->snext(status)) != NULL) {
- CharString pCount;
- pCount.appendInvariantChars(*pluralCount, status);
- const UChar *pluralName = ucurr_getPluralName(
- currency, locale, &unusedIsChoice, pCount.data(),
- &len, &status);
- fLong.setVariant(pCount.data(), UnicodeString(pluralName, len), status);
- }
- delete keywords;
-}
-
-void
-CurrencyAffixInfo::adjustPrecision(
- const UChar *currency, const UCurrencyUsage usage,
- FixedPrecision &precision, UErrorCode &status) {
- if (U_FAILURE(status)) {
- return;
- }
-
- int32_t digitCount = ucurr_getDefaultFractionDigitsForUsage(
- currency, usage, &status);
- precision.fMin.setFracDigitCount(digitCount);
- precision.fMax.setFracDigitCount(digitCount);
- double increment = ucurr_getRoundingIncrementForUsage(
- currency, usage, &status);
- if (increment == 0.0) {
- precision.fRoundingIncrement.clear();
- } else {
- precision.fRoundingIncrement.set(increment);
- // guard against round-off error
- precision.fRoundingIncrement.round(6);
- }
-}
-
-void
-AffixPattern::addLiteral(
- const UChar *literal, int32_t start, int32_t len) {
- char32Count += u_countChar32(literal + start, len);
- literals.append(literal, start, len);
- int32_t tlen = tokens.length();
- // Takes 4 UChars to encode maximum literal length.
- UChar *tokenChars = tokens.getBuffer(tlen + 4);
-
- // find start of literal size. May be tlen if there is no literal.
- // While finding start of literal size, compute literal length
- int32_t literalLength = 0;
- int32_t tLiteralStart = tlen;
- while (tLiteralStart > 0 && UNPACK_TOKEN(tokenChars[tLiteralStart - 1]) == kLiteral) {
- tLiteralStart--;
- literalLength <<= 8;
- literalLength |= UNPACK_LENGTH(tokenChars[tLiteralStart]);
- }
- // Add number of chars we just added to literal
- literalLength += len;
-
- // Now encode the new length starting at tLiteralStart
- tlen = tLiteralStart;
- tokenChars[tlen++] = PACK_TOKEN_AND_LENGTH(kLiteral, literalLength & 0xFF);
- literalLength >>= 8;
- while (literalLength) {
- tokenChars[tlen++] = PACK_TOKEN_AND_LENGTH(kLiteral | 0x80, literalLength & 0xFF);
- literalLength >>= 8;
- }
- tokens.releaseBuffer(tlen);
-}
-
-void
-AffixPattern::add(ETokenType t) {
- add(t, 1);
-}
-
-void
-AffixPattern::addCurrency(uint8_t count) {
- add(kCurrency, count);
-}
-
-void
-AffixPattern::add(ETokenType t, uint8_t count) {
- U_ASSERT(t != kLiteral);
- char32Count += count;
- switch (t) {
- case kCurrency:
- hasCurrencyToken = TRUE;
- break;
- case kPercent:
- hasPercentToken = TRUE;
- break;
- case kPerMill:
- hasPermillToken = TRUE;
- break;
- default:
- // Do nothing
- break;
- }
- tokens.append(PACK_TOKEN_AND_LENGTH(t, count));
-}
-
-AffixPattern &
-AffixPattern::append(const AffixPattern &other) {
- AffixPatternIterator iter;
- other.iterator(iter);
- UnicodeString literal;
- while (iter.nextToken()) {
- switch (iter.getTokenType()) {
- case kLiteral:
- iter.getLiteral(literal);
- addLiteral(literal.getBuffer(), 0, literal.length());
- break;
- case kCurrency:
- addCurrency(static_cast<uint8_t>(iter.getTokenLength()));
- break;
- default:
- add(iter.getTokenType());
- break;
- }
- }
- return *this;
-}
-
-void
-AffixPattern::remove() {
- tokens.remove();
- literals.remove();
- hasCurrencyToken = FALSE;
- hasPercentToken = FALSE;
- hasPermillToken = FALSE;
- char32Count = 0;
-}
-
-// escapes literals for strings where special characters are NOT escaped
-// except for apostrophe.
-static void escapeApostropheInLiteral(
- const UnicodeString &literal, UnicodeStringAppender &appender) {
- int32_t len = literal.length();
- const UChar *buffer = literal.getBuffer();
- for (int32_t i = 0; i < len; ++i) {
- UChar ch = buffer[i];
- switch (ch) {
- case 0x27:
- appender.append((UChar) 0x27);
- appender.append((UChar) 0x27);
- break;
- default:
- appender.append(ch);
- break;
- }
- }
-}
-
-
-// escapes literals for user strings where special characters in literals
-// are escaped with apostrophe.
-static void escapeLiteral(
- const UnicodeString &literal, UnicodeStringAppender &appender) {
- int32_t len = literal.length();
- const UChar *buffer = literal.getBuffer();
- for (int32_t i = 0; i < len; ++i) {
- UChar ch = buffer[i];
- switch (ch) {
- case 0x27:
- appender.append((UChar) 0x27);
- appender.append((UChar) 0x27);
- break;
- case 0x25:
- appender.append((UChar) 0x27);
- appender.append((UChar) 0x25);
- appender.append((UChar) 0x27);
- break;
- case 0x2030:
- appender.append((UChar) 0x27);
- appender.append((UChar) 0x2030);
- appender.append((UChar) 0x27);
- break;
- case 0xA4:
- appender.append((UChar) 0x27);
- appender.append((UChar) 0xA4);
- appender.append((UChar) 0x27);
- break;
- case 0x2D:
- appender.append((UChar) 0x27);
- appender.append((UChar) 0x2D);
- appender.append((UChar) 0x27);
- break;
- case 0x2B:
- appender.append((UChar) 0x27);
- appender.append((UChar) 0x2B);
- appender.append((UChar) 0x27);
- break;
- default:
- appender.append(ch);
- break;
- }
- }
-}
-
-UnicodeString &
-AffixPattern::toString(UnicodeString &appendTo) const {
- AffixPatternIterator iter;
- iterator(iter);
- UnicodeStringAppender appender(appendTo);
- UnicodeString literal;
- while (iter.nextToken()) {
- switch (iter.getTokenType()) {
- case kLiteral:
- escapeApostropheInLiteral(iter.getLiteral(literal), appender);
- break;
- case kPercent:
- appender.append((UChar) 0x27);
- appender.append((UChar) 0x25);
- break;
- case kPerMill:
- appender.append((UChar) 0x27);
- appender.append((UChar) 0x2030);
- break;
- case kCurrency:
- {
- appender.append((UChar) 0x27);
- int32_t cl = iter.getTokenLength();
- for (int32_t i = 0; i < cl; ++i) {
- appender.append((UChar) 0xA4);
- }
- }
- break;
- case kNegative:
- appender.append((UChar) 0x27);
- appender.append((UChar) 0x2D);
- break;
- case kPositive:
- appender.append((UChar) 0x27);
- appender.append((UChar) 0x2B);
- break;
- default:
- U_ASSERT(FALSE);
- break;
- }
- }
- return appendTo;
-}
-
-UnicodeString &
-AffixPattern::toUserString(UnicodeString &appendTo) const {
- AffixPatternIterator iter;
- iterator(iter);
- UnicodeStringAppender appender(appendTo);
- UnicodeString literal;
- while (iter.nextToken()) {
- switch (iter.getTokenType()) {
- case kLiteral:
- escapeLiteral(iter.getLiteral(literal), appender);
- break;
- case kPercent:
- appender.append((UChar) 0x25);
- break;
- case kPerMill:
- appender.append((UChar) 0x2030);
- break;
- case kCurrency:
- {
- int32_t cl = iter.getTokenLength();
- for (int32_t i = 0; i < cl; ++i) {
- appender.append((UChar) 0xA4);
- }
- }
- break;
- case kNegative:
- appender.append((UChar) 0x2D);
- break;
- case kPositive:
- appender.append((UChar) 0x2B);
- break;
- default:
- U_ASSERT(FALSE);
- break;
- }
- }
- return appendTo;
-}
-
-class AffixPatternAppender : public UMemory {
-public:
- AffixPatternAppender(AffixPattern &dest) : fDest(&dest), fIdx(0) { }
-
- inline void append(UChar x) {
- if (fIdx == UPRV_LENGTHOF(fBuffer)) {
- fDest->addLiteral(fBuffer, 0, fIdx);
- fIdx = 0;
- }
- fBuffer[fIdx++] = x;
- }
-
- inline void append(UChar32 x) {
- if (fIdx >= UPRV_LENGTHOF(fBuffer) - 1) {
- fDest->addLiteral(fBuffer, 0, fIdx);
- fIdx = 0;
- }
- U16_APPEND_UNSAFE(fBuffer, fIdx, x);
- }
-
- inline void flush() {
- if (fIdx) {
- fDest->addLiteral(fBuffer, 0, fIdx);
- }
- fIdx = 0;
- }
-
- /**
- * flush the buffer when we go out of scope.
- */
- ~AffixPatternAppender() {
- flush();
- }
-private:
- AffixPattern *fDest;
- int32_t fIdx;
- UChar fBuffer[32];
- AffixPatternAppender(const AffixPatternAppender &other);
- AffixPatternAppender &operator=(const AffixPatternAppender &other);
-};
-
-
-AffixPattern &
-AffixPattern::parseUserAffixString(
- const UnicodeString &affixStr,
- AffixPattern &appendTo,
- UErrorCode &status) {
- if (U_FAILURE(status)) {
- return appendTo;
- }
- int32_t len = affixStr.length();
- const UChar *buffer = affixStr.getBuffer();
- // 0 = not quoted; 1 = quoted.
- int32_t state = 0;
- AffixPatternAppender appender(appendTo);
- for (int32_t i = 0; i < len; ) {
- UChar token;
- int32_t tokenSize = nextUserToken(buffer, i, len, &token);
- i += tokenSize;
- if (token == 0x27 && tokenSize == 1) { // quote
- state = 1 - state;
- continue;
- }
- if (state == 0) {
- switch (token) {
- case 0x25:
- appender.flush();
- appendTo.add(kPercent, 1);
- break;
- case 0x27: // double quote
- appender.append((UChar) 0x27);
- break;
- case 0x2030:
- appender.flush();
- appendTo.add(kPerMill, 1);
- break;
- case 0x2D:
- appender.flush();
- appendTo.add(kNegative, 1);
- break;
- case 0x2B:
- appender.flush();
- appendTo.add(kPositive, 1);
- break;
- case 0xA4:
- appender.flush();
- appendTo.add(kCurrency, static_cast<uint8_t>(tokenSize));
- break;
- default:
- appender.append(token);
- break;
- }
- } else {
- switch (token) {
- case 0x27: // double quote
- appender.append((UChar) 0x27);
- break;
- case 0xA4: // included b/c tokenSize can be > 1
- for (int32_t j = 0; j < tokenSize; ++j) {
- appender.append((UChar) 0xA4);
- }
- break;
- default:
- appender.append(token);
- break;
- }
- }
- }
- return appendTo;
-}
-
-AffixPattern &
-AffixPattern::parseAffixString(
- const UnicodeString &affixStr,
- AffixPattern &appendTo,
- UErrorCode &status) {
- if (U_FAILURE(status)) {
- return appendTo;
- }
- int32_t len = affixStr.length();
- const UChar *buffer = affixStr.getBuffer();
- for (int32_t i = 0; i < len; ) {
- UChar token;
- int32_t tokenSize = nextToken(buffer, i, len, &token);
- if (tokenSize == 1) {
- int32_t literalStart = i;
- ++i;
- while (i < len && (tokenSize = nextToken(buffer, i, len, &token)) == 1) {
- ++i;
- }
- appendTo.addLiteral(buffer, literalStart, i - literalStart);
-
- // If we reached end of string, we are done
- if (i == len) {
- return appendTo;
- }
- }
- i += tokenSize;
- switch (token) {
- case 0x25:
- appendTo.add(kPercent, 1);
- break;
- case 0x2030:
- appendTo.add(kPerMill, 1);
- break;
- case 0x2D:
- appendTo.add(kNegative, 1);
- break;
- case 0x2B:
- appendTo.add(kPositive, 1);
- break;
- case 0xA4:
- {
- if (tokenSize - 1 > 3) {
- status = U_PARSE_ERROR;
- return appendTo;
- }
- appendTo.add(kCurrency, tokenSize - 1);
- }
- break;
- default:
- appendTo.addLiteral(&token, 0, 1);
- break;
- }
- }
- return appendTo;
-}
-
-AffixPatternIterator &
-AffixPattern::iterator(AffixPatternIterator &result) const {
- result.nextLiteralIndex = 0;
- result.lastLiteralLength = 0;
- result.nextTokenIndex = 0;
- result.tokens = &tokens;
- result.literals = &literals;
- return result;
-}
-
-UBool
-AffixPatternIterator::nextToken() {
- int32_t tlen = tokens->length();
- if (nextTokenIndex == tlen) {
- return FALSE;
- }
- ++nextTokenIndex;
- const UChar *tokenBuffer = tokens->getBuffer();
- if (UNPACK_TOKEN(tokenBuffer[nextTokenIndex - 1]) ==
- AffixPattern::kLiteral) {
- while (nextTokenIndex < tlen &&
- UNPACK_LONG(tokenBuffer[nextTokenIndex])) {
- ++nextTokenIndex;
- }
- lastLiteralLength = 0;
- int32_t i = nextTokenIndex - 1;
- for (; UNPACK_LONG(tokenBuffer[i]); --i) {
- lastLiteralLength <<= 8;
- lastLiteralLength |= UNPACK_LENGTH(tokenBuffer[i]);
- }
- lastLiteralLength <<= 8;
- lastLiteralLength |= UNPACK_LENGTH(tokenBuffer[i]);
- nextLiteralIndex += lastLiteralLength;
- }
- return TRUE;
-}
-
-AffixPattern::ETokenType
-AffixPatternIterator::getTokenType() const {
- return UNPACK_TOKEN(tokens->charAt(nextTokenIndex - 1));
-}
-
-UnicodeString &
-AffixPatternIterator::getLiteral(UnicodeString &result) const {
- const UChar *buffer = literals->getBuffer();
- result.setTo(buffer + (nextLiteralIndex - lastLiteralLength), lastLiteralLength);
- return result;
-}
-
-int32_t
-AffixPatternIterator::getTokenLength() const {
- const UChar *tokenBuffer = tokens->getBuffer();
- AffixPattern::ETokenType type = UNPACK_TOKEN(tokenBuffer[nextTokenIndex - 1]);
- return type == AffixPattern::kLiteral ? lastLiteralLength : UNPACK_LENGTH(tokenBuffer[nextTokenIndex - 1]);
-}
-
-AffixPatternParser::AffixPatternParser()
- : fPercent(gPercent), fPermill(gPerMill), fNegative(gNegative), fPositive(gPositive) {
-}
-
-AffixPatternParser::AffixPatternParser(
- const DecimalFormatSymbols &symbols) {
- setDecimalFormatSymbols(symbols);
-}
-
-void
-AffixPatternParser::setDecimalFormatSymbols(
- const DecimalFormatSymbols &symbols) {
- fPercent = symbols.getConstSymbol(DecimalFormatSymbols::kPercentSymbol);
- fPermill = symbols.getConstSymbol(DecimalFormatSymbols::kPerMillSymbol);
- fNegative = symbols.getConstSymbol(DecimalFormatSymbols::kMinusSignSymbol);
- fPositive = symbols.getConstSymbol(DecimalFormatSymbols::kPlusSignSymbol);
-}
-
-PluralAffix &
-AffixPatternParser::parse(
- const AffixPattern &affixPattern,
- const CurrencyAffixInfo &currencyAffixInfo,
- PluralAffix &appendTo,
- UErrorCode &status) const {
- if (U_FAILURE(status)) {
- return appendTo;
- }
- AffixPatternIterator iter;
- affixPattern.iterator(iter);
- UnicodeString literal;
- while (iter.nextToken()) {
- switch (iter.getTokenType()) {
- case AffixPattern::kPercent:
- appendTo.append(fPercent, UNUM_PERCENT_FIELD);
- break;
- case AffixPattern::kPerMill:
- appendTo.append(fPermill, UNUM_PERMILL_FIELD);
- break;
- case AffixPattern::kNegative:
- appendTo.append(fNegative, UNUM_SIGN_FIELD);
- break;
- case AffixPattern::kPositive:
- appendTo.append(fPositive, UNUM_SIGN_FIELD);
- break;
- case AffixPattern::kCurrency:
- switch (iter.getTokenLength()) {
- case 1:
- appendTo.append(
- currencyAffixInfo.getSymbol(), UNUM_CURRENCY_FIELD);
- break;
- case 2:
- appendTo.append(
- currencyAffixInfo.getISO(), UNUM_CURRENCY_FIELD);
- break;
- case 3:
- appendTo.append(
- currencyAffixInfo.getLong(), UNUM_CURRENCY_FIELD, status);
- break;
- default:
- U_ASSERT(FALSE);
- break;
- }
- break;
- case AffixPattern::kLiteral:
- appendTo.append(iter.getLiteral(literal));
- break;
- default:
- U_ASSERT(FALSE);
- break;
- }
- }
- return appendTo;
-}
-
-
-U_NAMESPACE_END
-#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/affixpatternparser.h b/Build/source/libs/icu/icu-src/source/i18n/affixpatternparser.h
deleted file mode 100644
index 66cbae31fe1..00000000000
--- a/Build/source/libs/icu/icu-src/source/i18n/affixpatternparser.h
+++ /dev/null
@@ -1,402 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
-*******************************************************************************
-* Copyright (C) 2015, International Business Machines
-* Corporation and others. All Rights Reserved.
-*******************************************************************************
-* affixpatternparser.h
-*
-* created on: 2015jan06
-* created by: Travis Keep
-*/
-
-#ifndef __AFFIX_PATTERN_PARSER_H__
-#define __AFFIX_PATTERN_PARSER_H__
-
-#include "unicode/utypes.h"
-
-#if !UCONFIG_NO_FORMATTING
-
-#include "unicode/unistr.h"
-#include "unicode/uobject.h"
-#include "pluralaffix.h"
-
-U_NAMESPACE_BEGIN
-
-class PluralRules;
-class FixedPrecision;
-class DecimalFormatSymbols;
-
-/**
- * A representation of the various forms of a particular currency according
- * to some locale and usage context.
- *
- * Includes the symbol, ISO code form, and long form(s) of the currency name
- * for each plural variation.
- */
-class U_I18N_API CurrencyAffixInfo : public UMemory {
-public:
- /**
- * Symbol is \u00a4; ISO form is \u00a4\u00a4;
- * long form is \u00a4\u00a4\u00a4.
- */
- CurrencyAffixInfo();
-
- const UnicodeString &getSymbol() const { return fSymbol; }
- const UnicodeString &getISO() const { return fISO; }
- const PluralAffix &getLong() const { return fLong; }
- void setSymbol(const UnicodeString &symbol) {
- fSymbol = symbol;
- fIsDefault = FALSE;
- }
- void setISO(const UnicodeString &iso) {
- fISO = iso;
- fIsDefault = FALSE;
- }
- UBool
- equals(const CurrencyAffixInfo &other) const {
- return (fSymbol == other.fSymbol)
- && (fISO == other.fISO)
- && (fLong.equals(other.fLong))
- && (fIsDefault == other.fIsDefault);
- }
-
- /**
- * Intializes this instance.
- *
- * @param locale the locale for the currency forms.
- * @param rules The plural rules for the locale.
- * @param currency the null terminated, 3 character ISO code of the
- * currency. If NULL, resets this instance as if it were just created.
- * In this case, the first 2 parameters may be NULL as well.
- * @param status any error returned here.
- */
- void set(
- const char *locale, const PluralRules *rules,
- const UChar *currency, UErrorCode &status);
-
- /**
- * Returns true if this instance is the default. That is has no real
- * currency. For instance never initialized with set()
- * or reset with set(NULL, NULL, NULL, status).
- */
- UBool isDefault() const { return fIsDefault; }
-
- /**
- * Adjusts the precision used for a particular currency.
- * @param currency the null terminated, 3 character ISO code of the
- * currency.
- * @param usage the usage of the currency
- * @param precision min/max fraction digits and rounding increment
- * adjusted.
- * @params status any error reported here.
- */
- static void adjustPrecision(
- const UChar *currency, const UCurrencyUsage usage,
- FixedPrecision &precision, UErrorCode &status);
-
-private:
- /**
- * The symbol form of the currency.
- */
- UnicodeString fSymbol;
-
- /**
- * The ISO form of the currency, usually three letter abbreviation.
- */
- UnicodeString fISO;
-
- /**
- * The long forms of the currency keyed by plural variation.
- */
- PluralAffix fLong;
-
- UBool fIsDefault;
-
-};
-
-class AffixPatternIterator;
-
-/**
- * A locale agnostic representation of an affix pattern.
- */
-class U_I18N_API AffixPattern : public UMemory {
-public:
-
- /**
- * The token types that can appear in an affix pattern.
- */
- enum ETokenType {
- kLiteral,
- kPercent,
- kPerMill,
- kCurrency,
- kNegative,
- kPositive
- };
-
- /**
- * An empty affix pattern.
- */
- AffixPattern()
- : tokens(), literals(), hasCurrencyToken(FALSE),
- hasPercentToken(FALSE), hasPermillToken(FALSE), char32Count(0) {
- }
-
- /**
- * Adds a string literal to this affix pattern.
- */
- void addLiteral(const UChar *, int32_t start, int32_t len);
-
- /**
- * Adds a token to this affix pattern. t must not be kLiteral as
- * the addLiteral() method adds literals.
- * @param t the token type to add
- */
- void add(ETokenType t);
-
- /**
- * Adds a currency token with specific count to this affix pattern.
- * @param count the token count. Used to distinguish between
- * one, two, or three currency symbols. Note that adding a currency
- * token with count=2 (Use ISO code) is different than adding two
- * currency tokens each with count=1 (two currency symbols).
- */
- void addCurrency(uint8_t count);
-
- /**
- * Makes this instance be an empty affix pattern.
- */
- void remove();
-
- /**
- * Provides an iterator over the tokens in this instance.
- * @param result this is initialized to point just before the
- * first token of this instance. Caller must call nextToken()
- * on the iterator once it is set up to have it actually point
- * to the first token. This first call to nextToken() will return
- * FALSE if the AffixPattern being iterated over is empty.
- * @return result
- */
- AffixPatternIterator &iterator(AffixPatternIterator &result) const;
-
- /**
- * Returns TRUE if this instance has currency tokens in it.
- */
- UBool usesCurrency() const {
- return hasCurrencyToken;
- }
-
- UBool usesPercent() const {
- return hasPercentToken;
- }
-
- UBool usesPermill() const {
- return hasPermillToken;
- }
-
- /**
- * Returns the number of code points a string of this instance
- * would have if none of the special tokens were escaped.
- * Used to compute the padding size.
- */
- int32_t countChar32() const {
- return char32Count;
- }
-
- /**
- * Appends other to this instance mutating this instance in place.
- * @param other The pattern appended to the end of this one.
- * @return a reference to this instance for chaining.
- */
- AffixPattern &append(const AffixPattern &other);
-
- /**
- * Converts this AffixPattern back into a user string.
- * It is the inverse of parseUserAffixString.
- */
- UnicodeString &toUserString(UnicodeString &appendTo) const;
-
- /**
- * Converts this AffixPattern back into a string.
- * It is the inverse of parseAffixString.
- */
- UnicodeString &toString(UnicodeString &appendTo) const;
-
- /**
- * Parses an affix pattern string appending it to an AffixPattern.
- * Parses affix pattern strings produced from using
- * DecimalFormatPatternParser to parse a format pattern. Affix patterns
- * include the positive prefix and suffix and the negative prefix
- * and suffix. This method expects affix patterns strings to be in the
- * same format that DecimalFormatPatternParser produces. Namely special
- * characters in the affix that correspond to a field type must be
- * prefixed with an apostrophe ('). These special character sequences
- * inluce minus (-), percent (%), permile (U+2030), plus (+),
- * short currency (U+00a4), medium currency (u+00a4 * 2),
- * long currency (u+a4 * 3), and apostrophe (')
- * (apostrophe does not correspond to a field type but has to be escaped
- * because it itself is the escape character).
- * Since the expansion of these special character
- * sequences is locale dependent, these sequences are not expanded in
- * an AffixPattern instance.
- * If these special characters are not prefixed with an apostrophe in
- * the affix pattern string, then they are treated verbatim just as
- * any other character. If an apostrophe prefixes a non special
- * character in the affix pattern, the apostrophe is simply ignored.
- *
- * @param affixStr the string from DecimalFormatPatternParser
- * @param appendTo parsed result appended here.
- * @param status any error parsing returned here.
- */
- static AffixPattern &parseAffixString(
- const UnicodeString &affixStr,
- AffixPattern &appendTo,
- UErrorCode &status);
-
- /**
- * Parses an affix pattern string appending it to an AffixPattern.
- * Parses affix pattern strings as the user would supply them.
- * In this function, quoting makes special characters like normal
- * characters whereas in parseAffixString, quoting makes special
- * characters special.
- *
- * @param affixStr the string from the user
- * @param appendTo parsed result appended here.
- * @param status any error parsing returned here.
- */
- static AffixPattern &parseUserAffixString(
- const UnicodeString &affixStr,
- AffixPattern &appendTo,
- UErrorCode &status);
-
- UBool equals(const AffixPattern &other) const {
- return (tokens == other.tokens)
- && (literals == other.literals)
- && (hasCurrencyToken == other.hasCurrencyToken)
- && (hasPercentToken == other.hasPercentToken)
- && (hasPermillToken == other.hasPermillToken)
- && (char32Count == other.char32Count);
- }
-
-private:
- /*
- * Tokens stored here. Each UChar generally stands for one token. A
- * Each token is of form 'etttttttllllllll' llllllll is the length of
- * the token and ranges from 0-255. ttttttt is the token type and ranges
- * from 0-127. If e is set it means this is an extendo token (to be
- * described later). To accomodate token lengths above 255, each normal
- * token (e=0) can be followed by 0 or more extendo tokens (e=1) with
- * the same type. Right now only kLiteral Tokens have extendo tokens.
- * Each extendo token provides the next 8 higher bits for the length.
- * If a kLiteral token is followed by 2 extendo tokens then, then the
- * llllllll of the next extendo token contains bits 8-15 of the length
- * and the last extendo token contains bits 16-23 of the length.
- */
- UnicodeString tokens;
-
- /*
- * The characters of the kLiteral tokens are concatenated together here.
- * The first characters go with the first kLiteral token, the next
- * characters go with the next kLiteral token etc.
- */
- UnicodeString literals;
- UBool hasCurrencyToken;
- UBool hasPercentToken;
- UBool hasPermillToken;
- int32_t char32Count;
- void add(ETokenType t, uint8_t count);
-
-};
-
-/**
- * An iterator over the tokens in an AffixPattern instance.
- */
-class U_I18N_API AffixPatternIterator : public UMemory {
-public:
-
- /**
- * Using an iterator without first calling iterator on an AffixPattern
- * instance to initialize the iterator results in
- * undefined behavior.
- */
- AffixPatternIterator() : nextLiteralIndex(0), lastLiteralLength(0), nextTokenIndex(0), tokens(NULL), literals(NULL) { }
- /**
- * Advances this iterator to the next token. Returns FALSE when there
- * are no more tokens. Calling the other methods after nextToken()
- * returns FALSE results in undefined behavior.
- */
- UBool nextToken();
-
- /**
- * Returns the type of token.
- */
- AffixPattern::ETokenType getTokenType() const;
-
- /**
- * For literal tokens, returns the literal string. Calling this for
- * other token types results in undefined behavior.
- * @param result replaced with a read-only alias to the literal string.
- * @return result
- */
- UnicodeString &getLiteral(UnicodeString &result) const;
-
- /**
- * Returns the token length. Usually 1, but for currency tokens may
- * be 2 for ISO code and 3 for long form.
- */
- int32_t getTokenLength() const;
-private:
- int32_t nextLiteralIndex;
- int32_t lastLiteralLength;
- int32_t nextTokenIndex;
- const UnicodeString *tokens;
- const UnicodeString *literals;
- friend class AffixPattern;
- AffixPatternIterator(const AffixPatternIterator &);
- AffixPatternIterator &operator=(const AffixPatternIterator &);
-};
-
-/**
- * A locale aware class that converts locale independent AffixPattern
- * instances into locale dependent PluralAffix instances.
- */
-class U_I18N_API AffixPatternParser : public UMemory {
-public:
-AffixPatternParser();
-AffixPatternParser(const DecimalFormatSymbols &symbols);
-void setDecimalFormatSymbols(const DecimalFormatSymbols &symbols);
-
-/**
- * Parses affixPattern appending the result to appendTo.
- * @param affixPattern The affix pattern.
- * @param currencyAffixInfo contains the currency forms.
- * @param appendTo The result of parsing affixPattern is appended here.
- * @param status any error returned here.
- * @return appendTo.
- */
-PluralAffix &parse(
- const AffixPattern &affixPattern,
- const CurrencyAffixInfo &currencyAffixInfo,
- PluralAffix &appendTo,
- UErrorCode &status) const;
-
-UBool equals(const AffixPatternParser &other) const {
- return (fPercent == other.fPercent)
- && (fPermill == other.fPermill)
- && (fNegative == other.fNegative)
- && (fPositive == other.fPositive);
-}
-
-private:
-UnicodeString fPercent;
-UnicodeString fPermill;
-UnicodeString fNegative;
-UnicodeString fPositive;
-};
-
-
-U_NAMESPACE_END
-#endif /* #if !UCONFIG_NO_FORMATTING */
-#endif // __AFFIX_PATTERN_PARSER_H__
diff --git a/Build/source/libs/icu/icu-src/source/i18n/alphaindex.cpp b/Build/source/libs/icu/icu-src/source/i18n/alphaindex.cpp
index d36a2cc6de3..3950d1a13f1 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/alphaindex.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/alphaindex.cpp
@@ -511,8 +511,8 @@ BucketList *AlphabeticIndex::createBucketList(UErrorCode &errorCode) const {
ces, errorCode) &&
current.charAt(current.length() - 1) != 0xFFFF /* !current.endsWith("\uffff") */) {
// "AE-ligature" or "Sch" etc.
- for (int32_t i = bucketList->size() - 2;; --i) {
- Bucket *singleBucket = getBucket(*bucketList, i);
+ for (int32_t j = bucketList->size() - 2;; --j) {
+ Bucket *singleBucket = getBucket(*bucketList, j);
if (singleBucket->labelType_ != U_ALPHAINDEX_NORMAL) {
// There is no single-character bucket since the last
// underflow or inflow label.
@@ -608,8 +608,8 @@ BucketList *AlphabeticIndex::createBucketList(UErrorCode &errorCode) const {
}
// Do not call publicBucketList->setDeleter():
// This vector shares its objects with the bucketList.
- for (int32_t i = 0; i < bucketList->size(); ++i) {
- bucket = getBucket(*bucketList, i);
+ for (int32_t j = 0; j < bucketList->size(); ++j) {
+ bucket = getBucket(*bucketList, j);
if (bucket->displayBucket_ == NULL) {
publicBucketList->addElement(bucket, errorCode);
}
diff --git a/Build/source/libs/icu/icu-src/source/i18n/anytrans.cpp b/Build/source/libs/icu/icu-src/source/i18n/anytrans.cpp
index d06469e2ae2..6e382b824b9 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/anytrans.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/anytrans.cpp
@@ -391,12 +391,12 @@ void AnyTransliterator::registerIDs() {
UnicodeString id;
TransliteratorIDParser::STVtoID(UnicodeString(TRUE, ANY, 3), target, variant, id);
ec = U_ZERO_ERROR;
- AnyTransliterator* t = new AnyTransliterator(id, target, variant,
+ AnyTransliterator* tl = new AnyTransliterator(id, target, variant,
targetScript, ec);
if (U_FAILURE(ec)) {
- delete t;
+ delete tl;
} else {
- Transliterator::_registerInstance(t);
+ Transliterator::_registerInstance(tl);
Transliterator::_registerSpecialInverse(target, UnicodeString(TRUE, NULL_ID, 4), FALSE);
}
}
diff --git a/Build/source/libs/icu/icu-src/source/i18n/calendar.cpp b/Build/source/libs/icu/icu-src/source/i18n/calendar.cpp
index 526a5a70b4a..7a2a6ee383e 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/calendar.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/calendar.cpp
@@ -3797,7 +3797,7 @@ Calendar::setWeekData(const Locale& desiredLocale, const char *type, UErrorCode&
Locale max = Locale::createFromName(maxLocaleID);
useLocale = Locale(max.getLanguage(),max.getCountry());
} else {
- useLocale = Locale(desiredLocale);
+ useLocale = desiredLocale;
}
/* The code here is somewhat of a hack, since week data and weekend data aren't really tied to
diff --git a/Build/source/libs/icu/icu-src/source/i18n/coll.cpp b/Build/source/libs/icu/icu-src/source/i18n/coll.cpp
index 25c8745cbf2..d9c6b4607f3 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/coll.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/coll.cpp
@@ -448,6 +448,13 @@ Collator* U_EXPORT2 Collator::createInstance(const Locale& desiredLocale,
#endif
{
coll = makeInstance(desiredLocale, status);
+ // Either returns NULL with U_FAILURE(status), or non-NULL with U_SUCCESS(status)
+ }
+ // The use of *coll in setAttributesFromKeywords can cause the NULL check to be
+ // optimized out of the delete even though setAttributesFromKeywords returns
+ // immediately if U_FAILURE(status), so we add a check here.
+ if (U_FAILURE(status)) {
+ return NULL;
}
setAttributesFromKeywords(desiredLocale, *coll, status);
if (U_FAILURE(status)) {
@@ -986,8 +993,8 @@ Collator::internalCompareUTF8(const char *left, int32_t leftLength,
return UCOL_EQUAL;
}
return compareUTF8(
- StringPiece(left, (leftLength < 0) ? uprv_strlen(left) : leftLength),
- StringPiece(right, (rightLength < 0) ? uprv_strlen(right) : rightLength),
+ StringPiece(left, (leftLength < 0) ? static_cast<int32_t>(uprv_strlen(left)) : leftLength),
+ StringPiece(right, (rightLength < 0) ? static_cast<int32_t>(uprv_strlen(right)) : rightLength),
errorCode);
}
diff --git a/Build/source/libs/icu/icu-src/source/i18n/collationfcd.cpp b/Build/source/libs/icu/icu-src/source/i18n/collationfcd.cpp
index 19841ee6487..1aff936dee1 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/collationfcd.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/collationfcd.cpp
@@ -22,27 +22,27 @@ const uint8_t CollationFCD::lcccIndex[2048]={
0,0,0,0,0,0,0,0,1,1,2,3,0,0,0,0,
0,0,0,0,4,0,0,0,0,0,0,0,5,6,7,0,
8,0,9,0xa,0,0,0xb,0xc,0xd,0xe,0xf,0,0,0,0,0x10,
-0x11,0x12,0x13,0,0,0,0x14,0x15,0,0x16,0x17,0,0,0x16,0x18,0,
+0x11,0x12,0x13,0,0,0,0x14,0x15,0,0x16,0x17,0,0,0x16,0x18,0x19,
0,0x16,0x18,0,0,0x16,0x18,0,0,0x16,0x18,0,0,0,0x18,0,
-0,0,0x19,0,0,0x16,0x18,0,0,0x1a,0x18,0,0,0,0x1b,0,
-0,0x1c,0x1d,0,0,0x1e,0x1d,0,0x1e,0x1f,0,0x20,0x21,0,0x22,0,
-0,0x23,0,0,0x18,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0x24,0,0,0,0,0,
+0,0,0x1a,0,0,0x16,0x18,0,0,0x1b,0x18,0,0,0,0x1c,0,
+0,0x1d,0x1e,0,0,0x1f,0x1e,0,0x1f,0x20,0,0x21,0x22,0,0x23,0,
+0,0x24,0,0,0x18,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0x25,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x25,0x25,0,0,0,0,0x26,0,
-0,0,0,0,0,0x27,0,0,0,0x13,0,0,0,0,0,0,
-0x28,0,0,0x29,0,0x2a,0,0,0,0x25,0x2b,0x10,0,0x2c,0,0x2d,
-0,0x2e,0,0,0,0,0x2f,0x30,0,0,0,0,0,0,1,0x31,
+0,0,0,0,0,0,0,0,0x26,0x26,0,0,0,0,0x27,0,
+0,0,0,0,0,0x28,0,0,0,0x13,0,0,0,0,0,0,
+0x29,0,0,0x2a,0,0x2b,0,0,0,0x26,0x2c,0x2d,0,0x2e,0,0x2f,
+0,0x30,0,0,0,0,0x31,0x32,0,0,0,0,0,0,1,0x33,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0x32,0x33,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0x34,0x35,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0x34,0,0,0,0x35,0,0,0,1,
+0,0,0,0,0,0,0,0x36,0,0,0,0x37,0,0,0,1,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0x36,0,0,0x37,0,0,0,0,0,0,0,0,0,0,0,
+0,0x38,0,0,0x39,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
@@ -101,9 +101,9 @@ const uint8_t CollationFCD::lcccIndex[2048]={
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0x38,0x39,0,0,0x3a,0,0,0,0,0,0,0,0,
-0x22,0,0,0,0,0,0x2b,0x3b,0,0x3c,0x3d,0,0,0x3d,0x3e,0,
-0,0,0,0,0,0x3f,0x40,0x41,0,0,0,0,0,0,0,0x18,
+0,0,0,0x3a,0x3b,0,0,0x3c,0,0,0,0,0,0,0,0,
+0x23,0,0,0,0,0,0x2c,0x3d,0,0x3e,0x3f,0,0,0x3f,0x40,0,
+0,0,0,0,0,0x41,0x42,0x43,0,0,0,0,0,0,0,0x18,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
@@ -126,7 +126,7 @@ const uint8_t CollationFCD::lcccIndex[2048]={
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x42,0x43,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x44,0x45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
@@ -143,17 +143,17 @@ const uint8_t CollationFCD::lcccIndex[2048]={
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x44,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x19,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};
-const uint32_t CollationFCD::lcccBits[69]={
+const uint32_t CollationFCD::lcccBits[70]={
0,0xffffffff,0xffff7fff,0xffff,0xf8,0xfffe0000,0xbfffffff,0xb6,0x7ff0000,0xfffff800,0x10000,0x9fc00000,0x3d9f,0x20000,0xffff0000,0x7ff,
-0xff800,0xfbc00000,0x3eef,0xe000000,0xfff00000,0xfffffffb,0x10000000,0x1e2000,0x2000,0x602000,0x18000000,0x400,0x7000000,0xf00,0x3000000,0x2a00000,
-0x3c3e0000,0xdf,0x40,0x6800000,0xe0000000,0x100000,0x20040000,0x200,0x1800000,0x9fe00001,0x3fff0000,0x10,0xc00,0xc0040,0x800000,0xfff70000,
-0x31021fd,0xfbffffff,0x1fff0000,0x1ffe2,0x38000,0x80000000,0xfc00,0x6000000,0x3ff08000,0xc0000000,0x30000,0x3ffff,0x3800,0x80000,1,0xc19d0000,
-2,0x400000,0x40000f5,0x5108000,0x40000000
+0x200ff800,0xfbc00000,0x3eef,0xe000000,0xfff80000,0xfffffffb,0x10000000,0x1e2000,0x2000,0x40000000,0x602000,0x18000000,0x400,0x7000000,0xf00,0x3000000,
+0x2a00000,0x3c3e0000,0xdf,0x40,0x6800000,0xe0000000,0x100000,0x20040000,0x200,0x1800000,0x9fe00001,0x3fff0000,0x10,0xff800,0xc00,0xc0040,
+0x800000,0xfff70000,0x31021fd,0xfbffffff,0x1fff0000,0x1ffe2,0x38000,0x80000000,0xfc00,0x6000000,0x3ff08000,0xc0000000,0x30000,0x3ffff,0x3800,0x80000,
+1,0xc19d0000,2,0x400000,0x40000fd,0x5108000
};
const uint8_t CollationFCD::tcccIndex[2048]={
@@ -161,27 +161,27 @@ const uint8_t CollationFCD::tcccIndex[2048]={
0xb,0xc,0,0,0,0,0,0,1,1,0xd,0xe,0xf,0x10,0x11,0,
0x12,0x13,0x14,0x15,0x16,0,0x17,0x18,0,0,0,0,0x19,0x1a,0x1b,0,
0x1c,0x1d,0x1e,0x1f,0,0,0x20,0x21,0x22,0x23,0x24,0,0,0,0,0x25,
-0x26,0x27,0x28,0,0,0,0x29,0x2a,0,0x2b,0x2c,0,0,0x2d,0x2e,0,
-0,0x2f,0x30,0,0,0x2d,0x31,0,0,0x2d,0x32,0,0,0,0x31,0,
-0,0,0x33,0,0,0x2d,0x31,0,0,0x34,0x31,0,0,0,0x35,0,
-0,0x36,0x37,0,0,0x38,0x37,0,0x38,0x39,0,0x3a,0x3b,0,0x3c,0,
-0,0x3d,0,0,0x31,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0x3e,0,0,0,0,0,
+0x26,0x27,0x28,0,0,0,0x29,0x2a,0,0x2b,0x2c,0,0,0x2d,0x2e,0x2f,
+0,0x30,0x31,0,0,0x2d,0x32,0,0,0x2d,0x33,0,0,0,0x32,0,
+0,0,0x34,0,0,0x2d,0x32,0,0,0x35,0x32,0,0,0,0x36,0,
+0,0x37,0x38,0,0,0x39,0x38,0,0x39,0x3a,0,0x3b,0x3c,0,0x3d,0,
+0,0x3e,0,0,0x32,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0x3f,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x3f,0x3f,0,0,0,0,0x40,0,
-0,0,0,0,0,0x41,0,0,0,0x28,0,0,0,0,0,0,
-0x42,0,0,0x43,0,0x44,0,0,0,0x3f,0x45,0x25,0,0x46,0,0x47,
-0,0x48,0,0,0,0,0x49,0x4a,0,0,0,0,0,0,1,0x4b,
-1,1,1,1,0x4c,1,1,0x4d,0x4e,1,0x4f,0x50,1,0x51,0x52,0x53,
-0,0,0,0,0,0,0x54,0x55,0,0x56,0,0,0x57,0x58,0x59,0,
-0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,0,0x60,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x40,0x40,0,0,0,0,0x41,0,
+0,0,0,0,0,0x42,0,0,0,0x28,0,0,0,0,0,0,
+0x43,0,0,0x44,0,0x45,0,0,0,0x40,0x46,0x47,0,0x48,0,0x49,
+0,0x4a,0,0,0,0,0x4b,0x4c,0,0,0,0,0,0,1,0x4d,
+1,1,1,1,0x4e,1,1,0x4f,0x50,1,0x51,0x52,1,0x53,0x54,0x55,
+0,0,0,0,0,0,0x56,0x57,0,0x58,0,0,0x59,0x5a,0x5b,0,
+0x5c,0x5d,0x5e,0x5f,0x60,0x61,0,0x62,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0x2d,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0x61,0,0,0,0x62,0,0,0,1,
+0,0,0,0,0,0,0,0x63,0,0,0,0x64,0,0,0,1,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0x63,0x64,0x65,0x66,0x64,0x65,0x67,0,0,0,0,0,0,0,0,
+0,0x65,0x66,0x67,0x68,0x66,0x67,0x69,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
@@ -240,9 +240,9 @@ const uint8_t CollationFCD::tcccIndex[2048]={
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0x68,0x69,0,0,0x6a,0,0,0,0,0,0,0,0,
-0x3c,0,0,0,0,0,0x45,0x6b,0,0x6c,0x6d,0,0,0x6d,0x6e,0,
-0,0,0,0,0,0x6f,0x70,0x71,0,0,0,0,0,0,0,0x31,
+0,0,0,0x6a,0x6b,0,0,0x6c,0,0,0,0,0,0,0,0,
+0x3d,0,0,0,0,0,0x46,0x6d,0,0x6e,0x6f,0,0,0x6f,0x70,0,
+0,0,0,0,0,0x71,0x72,0x73,0,0,0,0,0,0,0,0x32,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
@@ -265,7 +265,7 @@ const uint8_t CollationFCD::tcccIndex[2048]={
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x72,0x73,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x74,0x75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
@@ -282,20 +282,20 @@ const uint8_t CollationFCD::tcccIndex[2048]={
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x3e,0x74,0x75,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x3f,0x76,0x77,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0xe,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};
-const uint32_t CollationFCD::tcccBits[118]={
+const uint32_t CollationFCD::tcccBits[120]={
0,0xffffffff,0x3e7effbf,0xbe7effbf,0xfffcffff,0x7ef1ff3f,0xfff3f1f8,0x7fffff3f,0x18003,0xdfffe000,0xff31ffcf,0xcfffffff,0xfffc0,0xffff7fff,0xffff,0x1d760,
0x1fc00,0x187c00,0x200708b,0x2000000,0x708b0000,0xc00000,0xf8,0xfccf0006,0x33ffcfc,0xfffe0000,0xbfffffff,0xb6,0x7ff0000,0x7c,0xfffff800,0x10000,
-0x9fc80005,0x3d9f,0x20000,0xffff0000,0x7ff,0xff800,0xfbc00000,0x3eef,0xe000000,0xfff00000,0xfffffffb,0x10120200,0xff1e2000,0x10000000,0xb0002000,0x10480000,
-0x4e002000,0x2000,0x30002000,0x602100,0x18000000,0x24000400,0x7000000,0xf00,0x3000000,0x2a00000,0x3d7e0000,0xdf,0x40,0x6800000,0xe0000000,0x100000,
-0x20040000,0x200,0x1800000,0x9fe00001,0x3fff0000,0x10,0xc00,0xc0040,0x800000,0xfff70000,0x31021fd,0xfbffffff,0xbffffff,0x3ffffff,0x3f3fffff,0xaaff3f3f,
-0x3fffffff,0x1fdfffff,0xefcfffde,0x1fdc7fff,0x1fff0000,0x1ffe2,0x800,0xc000000,0x4000,0xe000,0x1210,0x50,0x292,0x333e005,0x333,0xf000,
-0x3c0f,0x38000,0x80000000,0xfc00,0x55555000,0x36db02a5,0x46100000,0x47900000,0x3ff08000,0xc0000000,0x30000,0x3ffff,0x3800,0x80000,1,0xc19d0000,
-2,0x400000,0x40000f5,0x5108000,0x5f7ffc00,0x7fdb
+0x9fc80005,0x3d9f,0x20000,0xffff0000,0x7ff,0x200ff800,0xfbc00000,0x3eef,0xe000000,0xfff80000,0xfffffffb,0x10120200,0xff1e2000,0x10000000,0xb0002000,0x40000000,
+0x10480000,0x4e002000,0x2000,0x30002000,0x602100,0x18000000,0x24000400,0x7000000,0xf00,0x3000000,0x2a00000,0x3d7e0000,0xdf,0x40,0x6800000,0xe0000000,
+0x100000,0x20040000,0x200,0x1800000,0x9fe00001,0x3fff0000,0x10,0xff800,0xc00,0xc0040,0x800000,0xfff70000,0x31021fd,0xfbffffff,0xbffffff,0x3ffffff,
+0x3f3fffff,0xaaff3f3f,0x3fffffff,0x1fdfffff,0xefcfffde,0x1fdc7fff,0x1fff0000,0x1ffe2,0x800,0xc000000,0x4000,0xe000,0x1210,0x50,0x292,0x333e005,
+0x333,0xf000,0x3c0f,0x38000,0x80000000,0xfc00,0x55555000,0x36db02a5,0x46100000,0x47900000,0x3ff08000,0xc0000000,0x30000,0x3ffff,0x3800,0x80000,
+1,0xc19d0000,2,0x400000,0x40000fd,0x5108000,0x5f7ffc00,0x7fdb
};
U_NAMESPACE_END
diff --git a/Build/source/libs/icu/icu-src/source/i18n/collationkeys.cpp b/Build/source/libs/icu/icu-src/source/i18n/collationkeys.cpp
index 4b9e6b59075..b5c322fb446 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/collationkeys.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/collationkeys.cpp
@@ -403,13 +403,13 @@ CollationKeys::writeSortKeyUpToQuaternary(CollationIterator &iter,
uint8_t *secs = secondaries.data();
int32_t last = secondaries.length() - 1;
if(secSegmentStart < last) {
- uint8_t *p = secs + secSegmentStart;
- uint8_t *q = secs + last;
+ uint8_t *q = secs + secSegmentStart;
+ uint8_t *r = secs + last;
do {
- uint8_t b = *p;
- *p++ = *q;
- *q-- = b;
- } while(p < q);
+ uint8_t b = *q;
+ *q++ = *r;
+ *r-- = b;
+ } while(q < r);
}
secondaries.appendByte(p == Collation::NO_CE_PRIMARY ?
Collation::LEVEL_SEPARATOR_BYTE : Collation::MERGE_SEPARATOR_BYTE);
diff --git a/Build/source/libs/icu/icu-src/source/i18n/compactdecimalformat.cpp b/Build/source/libs/icu/icu-src/source/i18n/compactdecimalformat.cpp
index bb2e541cd89..4dd2241b23d 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/compactdecimalformat.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/compactdecimalformat.cpp
@@ -1,1013 +1,75 @@
-// © 2016 and later: Unicode, Inc. and others.
+// © 2018 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
-/*
-*******************************************************************************
-* Copyright (C) 1997-2015, International Business Machines Corporation and *
-* others. All Rights Reserved. *
-*******************************************************************************
-*
-* File COMPACTDECIMALFORMAT.CPP
-*
-********************************************************************************
-*/
+
#include "unicode/utypes.h"
#if !UCONFIG_NO_FORMATTING
-#include "charstr.h"
-#include "cstring.h"
-#include "digitlst.h"
-#include "mutex.h"
-#include "unicode/compactdecimalformat.h"
-#include "unicode/numsys.h"
-#include "unicode/plurrule.h"
-#include "unicode/ures.h"
-#include "ucln_in.h"
-#include "uhash.h"
-#include "umutex.h"
-#include "unicode/ures.h"
-#include "uresimp.h"
-
-// Maps locale name to CDFLocaleData struct.
-static UHashtable* gCompactDecimalData = NULL;
-static UMutex gCompactDecimalMetaLock = U_MUTEX_INITIALIZER;
-
-U_NAMESPACE_BEGIN
-
-static const int32_t MAX_DIGITS = 15;
-static const char gOther[] = "other";
-static const char gLatnTag[] = "latn";
-static const char gNumberElementsTag[] = "NumberElements";
-static const char gDecimalFormatTag[] = "decimalFormat";
-static const char gPatternsShort[] = "patternsShort";
-static const char gPatternsLong[] = "patternsLong";
-static const char gLatnPath[] = "NumberElements/latn";
-
-static const UChar u_0 = 0x30;
-static const UChar u_apos = 0x27;
-
-static const UChar kZero[] = {u_0};
-
-// Used to unescape single quotes.
-enum QuoteState {
- OUTSIDE,
- INSIDE_EMPTY,
- INSIDE_FULL
-};
-
-enum FallbackFlags {
- ANY = 0,
- MUST = 1,
- NOT_ROOT = 2
- // Next one will be 4 then 6 etc.
-};
-
-
-// CDFUnit represents a prefix-suffix pair for a particular variant
-// and log10 value.
-struct CDFUnit : public UMemory {
- UnicodeString prefix;
- UnicodeString suffix;
- inline CDFUnit() : prefix(), suffix() {
- prefix.setToBogus();
- }
- inline ~CDFUnit() {}
- inline UBool isSet() const {
- return !prefix.isBogus();
- }
- inline void markAsSet() {
- prefix.remove();
- }
-};
-
-// CDFLocaleStyleData contains formatting data for a particular locale
-// and style.
-class CDFLocaleStyleData : public UMemory {
- public:
- // What to divide by for each log10 value when formatting. These values
- // will be powers of 10. For English, would be:
- // 1, 1, 1, 1000, 1000, 1000, 1000000, 1000000, 1000000, 1000000000 ...
- double divisors[MAX_DIGITS];
- // Maps plural variants to CDFUnit[MAX_DIGITS] arrays.
- // To format a number x,
- // first compute log10(x). Compute displayNum = (x / divisors[log10(x)]).
- // Compute the plural variant for displayNum
- // (e.g zero, one, two, few, many, other).
- // Compute cdfUnits = unitsByVariant[pluralVariant].
- // Prefix and suffix to use at cdfUnits[log10(x)]
- UHashtable* unitsByVariant;
- // A flag for whether or not this CDFLocaleStyleData was loaded from the
- // Latin numbering system as a fallback from the locale numbering system.
- // This value is meaningless if the object is bogus or empty.
- UBool fromFallback;
- inline CDFLocaleStyleData() : unitsByVariant(NULL), fromFallback(FALSE) {
- uprv_memset(divisors, 0, sizeof(divisors));
- }
- ~CDFLocaleStyleData();
- // Init initializes this object.
- void Init(UErrorCode& status);
- inline UBool isBogus() const {
- return unitsByVariant == NULL;
- }
- void setToBogus();
- UBool isEmpty() {
- return unitsByVariant == NULL || unitsByVariant->count == 0;
- }
- private:
- CDFLocaleStyleData(const CDFLocaleStyleData&);
- CDFLocaleStyleData& operator=(const CDFLocaleStyleData&);
-};
-
-// CDFLocaleData contains formatting data for a particular locale.
-struct CDFLocaleData : public UMemory {
- CDFLocaleStyleData shortData;
- CDFLocaleStyleData longData;
- inline CDFLocaleData() : shortData(), longData() { }
- inline ~CDFLocaleData() { }
- // Init initializes this object.
- void Init(UErrorCode& status);
-};
-
-U_NAMESPACE_END
-
-U_CDECL_BEGIN
-
-static UBool U_CALLCONV cdf_cleanup(void) {
- if (gCompactDecimalData != NULL) {
- uhash_close(gCompactDecimalData);
- gCompactDecimalData = NULL;
- }
- return TRUE;
-}
-
-static void U_CALLCONV deleteCDFUnits(void* ptr) {
- delete [] (icu::CDFUnit*) ptr;
-}
-
-static void U_CALLCONV deleteCDFLocaleData(void* ptr) {
- delete (icu::CDFLocaleData*) ptr;
-}
-
-U_CDECL_END
+// Allow implicit conversion from char16_t* to UnicodeString for this file:
+// Helpful in toString methods and elsewhere.
+#define UNISTR_FROM_STRING_EXPLICIT
-U_NAMESPACE_BEGIN
+#include "unicode/compactdecimalformat.h"
+#include "number_mapper.h"
+#include "number_decimfmtprops.h"
-static UBool divisors_equal(const double* lhs, const double* rhs);
-static const CDFLocaleStyleData* getCDFLocaleStyleData(const Locale& inLocale, UNumberCompactStyle style, UErrorCode& status);
+using namespace icu;
-static const CDFLocaleStyleData* extractDataByStyleEnum(const CDFLocaleData& data, UNumberCompactStyle style, UErrorCode& status);
-static CDFLocaleData* loadCDFLocaleData(const Locale& inLocale, UErrorCode& status);
-static void load(const Locale& inLocale, CDFLocaleData* result, UErrorCode& status);
-static int32_t populatePrefixSuffix(const char* variant, int32_t log10Value, const UnicodeString& formatStr, UHashtable* result, UBool overwrite, UErrorCode& status);
-static double calculateDivisor(double power10, int32_t numZeros);
-static UBool onlySpaces(UnicodeString u);
-static void fixQuotes(UnicodeString& s);
-static void checkForOtherVariants(CDFLocaleStyleData* result, UErrorCode& status);
-static void fillInMissing(CDFLocaleStyleData* result);
-static int32_t computeLog10(double x, UBool inRange);
-static CDFUnit* createCDFUnit(const char* variant, int32_t log10Value, UHashtable* table, UErrorCode& status);
-static const CDFUnit* getCDFUnitFallback(const UHashtable* table, const UnicodeString& variant, int32_t log10Value);
UOBJECT_DEFINE_RTTI_IMPLEMENTATION(CompactDecimalFormat)
-CompactDecimalFormat::CompactDecimalFormat(
- const DecimalFormat& decimalFormat,
- const UHashtable* unitsByVariant,
- const double* divisors,
- PluralRules* pluralRules)
- : DecimalFormat(decimalFormat), _unitsByVariant(unitsByVariant), _divisors(divisors), _pluralRules(pluralRules) {
-}
-
-CompactDecimalFormat::CompactDecimalFormat(const CompactDecimalFormat& source)
- : DecimalFormat(source), _unitsByVariant(source._unitsByVariant), _divisors(source._divisors), _pluralRules(source._pluralRules->clone()) {
-}
-
-CompactDecimalFormat* U_EXPORT2
-CompactDecimalFormat::createInstance(
- const Locale& inLocale, UNumberCompactStyle style, UErrorCode& status) {
- LocalPointer<DecimalFormat> decfmt((DecimalFormat*) NumberFormat::makeInstance(inLocale, UNUM_DECIMAL, TRUE, status));
- if (U_FAILURE(status)) {
- return NULL;
- }
- LocalPointer<PluralRules> pluralRules(PluralRules::forLocale(inLocale, status));
- if (U_FAILURE(status)) {
- return NULL;
- }
- const CDFLocaleStyleData* data = getCDFLocaleStyleData(inLocale, style, status);
- if (U_FAILURE(status)) {
- return NULL;
- }
- CompactDecimalFormat* result =
- new CompactDecimalFormat(*decfmt, data->unitsByVariant, data->divisors, pluralRules.getAlias());
- if (result == NULL) {
- status = U_MEMORY_ALLOCATION_ERROR;
- return NULL;
- }
- pluralRules.orphan();
- result->setMaximumSignificantDigits(3);
- result->setSignificantDigitsUsed(TRUE);
- result->setGroupingUsed(FALSE);
- return result;
-}
-
-CompactDecimalFormat&
-CompactDecimalFormat::operator=(const CompactDecimalFormat& rhs) {
- if (this != &rhs) {
- DecimalFormat::operator=(rhs);
- _unitsByVariant = rhs._unitsByVariant;
- _divisors = rhs._divisors;
- delete _pluralRules;
- _pluralRules = rhs._pluralRules->clone();
- }
- return *this;
-}
-
-CompactDecimalFormat::~CompactDecimalFormat() {
- delete _pluralRules;
-}
-
-Format*
-CompactDecimalFormat::clone(void) const {
- return new CompactDecimalFormat(*this);
+CompactDecimalFormat*
+CompactDecimalFormat::createInstance(const Locale& inLocale, UNumberCompactStyle style,
+ UErrorCode& status) {
+ return new CompactDecimalFormat(inLocale, style, status);
}
-UBool
-CompactDecimalFormat::operator==(const Format& that) const {
- if (this == &that) {
- return TRUE;
- }
- return (DecimalFormat::operator==(that) && eqHelper((const CompactDecimalFormat&) that));
-}
-
-UBool
-CompactDecimalFormat::eqHelper(const CompactDecimalFormat& that) const {
- return uhash_equals(_unitsByVariant, that._unitsByVariant) && divisors_equal(_divisors, that._divisors) && (*_pluralRules == *that._pluralRules);
-}
-
-UnicodeString&
-CompactDecimalFormat::format(
- double number,
- UnicodeString& appendTo,
- FieldPosition& pos) const {
- UErrorCode status = U_ZERO_ERROR;
- return format(number, appendTo, pos, status);
-}
-
-UnicodeString&
-CompactDecimalFormat::format(
- double number,
- UnicodeString& appendTo,
- FieldPosition& pos,
- UErrorCode &status) const {
- if (U_FAILURE(status)) {
- return appendTo;
- }
- DigitList orig, rounded;
- orig.set(number);
- UBool isNegative;
- _round(orig, rounded, isNegative, status);
- if (U_FAILURE(status)) {
- return appendTo;
- }
- double roundedDouble = rounded.getDouble();
- if (isNegative) {
- roundedDouble = -roundedDouble;
- }
- int32_t baseIdx = computeLog10(roundedDouble, TRUE);
- double numberToFormat = roundedDouble / _divisors[baseIdx];
- UnicodeString variant = _pluralRules->select(numberToFormat);
- if (isNegative) {
- numberToFormat = -numberToFormat;
- }
- const CDFUnit* unit = getCDFUnitFallback(_unitsByVariant, variant, baseIdx);
- appendTo += unit->prefix;
- DecimalFormat::format(numberToFormat, appendTo, pos);
- appendTo += unit->suffix;
- return appendTo;
-}
-
-UnicodeString&
-CompactDecimalFormat::format(
- double /* number */,
- UnicodeString& appendTo,
- FieldPositionIterator* /* posIter */,
- UErrorCode& status) const {
- status = U_UNSUPPORTED_ERROR;
- return appendTo;
-}
-
-UnicodeString&
-CompactDecimalFormat::format(
- int32_t number,
- UnicodeString& appendTo,
- FieldPosition& pos) const {
- return format((double) number, appendTo, pos);
-}
-
-UnicodeString&
-CompactDecimalFormat::format(
- int32_t number,
- UnicodeString& appendTo,
- FieldPosition& pos,
- UErrorCode &status) const {
- return format((double) number, appendTo, pos, status);
-}
-
-UnicodeString&
-CompactDecimalFormat::format(
- int32_t /* number */,
- UnicodeString& appendTo,
- FieldPositionIterator* /* posIter */,
- UErrorCode& status) const {
- status = U_UNSUPPORTED_ERROR;
- return appendTo;
-}
-
-UnicodeString&
-CompactDecimalFormat::format(
- int64_t number,
- UnicodeString& appendTo,
- FieldPosition& pos) const {
- return format((double) number, appendTo, pos);
-}
-
-UnicodeString&
-CompactDecimalFormat::format(
- int64_t number,
- UnicodeString& appendTo,
- FieldPosition& pos,
- UErrorCode &status) const {
- return format((double) number, appendTo, pos, status);
+CompactDecimalFormat::CompactDecimalFormat(const Locale& inLocale, UNumberCompactStyle style,
+ UErrorCode& status)
+ : DecimalFormat(new DecimalFormatSymbols(inLocale, status), status) {
+ if (U_FAILURE(status)) return;
+ // Minimal properties: let the non-shim code path do most of the logic for us.
+ fields->properties->compactStyle = style;
+ fields->properties->groupingSize = -2; // do not forward grouping information
+ fields->properties->minimumGroupingDigits = 2;
+ touch(status);
}
-UnicodeString&
-CompactDecimalFormat::format(
- int64_t /* number */,
- UnicodeString& appendTo,
- FieldPositionIterator* /* posIter */,
- UErrorCode& status) const {
- status = U_UNSUPPORTED_ERROR;
- return appendTo;
-}
+CompactDecimalFormat::CompactDecimalFormat(const CompactDecimalFormat& source) = default;
-UnicodeString&
-CompactDecimalFormat::format(
- StringPiece /* number */,
- UnicodeString& appendTo,
- FieldPositionIterator* /* posIter */,
- UErrorCode& status) const {
- status = U_UNSUPPORTED_ERROR;
- return appendTo;
-}
+CompactDecimalFormat::~CompactDecimalFormat() = default;
-UnicodeString&
-CompactDecimalFormat::format(
- const DigitList& /* number */,
- UnicodeString& appendTo,
- FieldPositionIterator* /* posIter */,
- UErrorCode& status) const {
- status = U_UNSUPPORTED_ERROR;
- return appendTo;
+CompactDecimalFormat& CompactDecimalFormat::operator=(const CompactDecimalFormat& rhs) {
+ DecimalFormat::operator=(rhs);
+ return *this;
}
-UnicodeString&
-CompactDecimalFormat::format(const DigitList& /* number */,
- UnicodeString& appendTo,
- FieldPosition& /* pos */,
- UErrorCode& status) const {
- status = U_UNSUPPORTED_ERROR;
- return appendTo;
+Format* CompactDecimalFormat::clone() const {
+ return new CompactDecimalFormat(*this);
}
void
CompactDecimalFormat::parse(
- const UnicodeString& /* text */,
- Formattable& /* result */,
- ParsePosition& /* parsePosition */) const {
+ const UnicodeString& /* text */,
+ Formattable& /* result */,
+ ParsePosition& /* parsePosition */) const {
}
void
CompactDecimalFormat::parse(
- const UnicodeString& /* text */,
- Formattable& /* result */,
- UErrorCode& status) const {
- status = U_UNSUPPORTED_ERROR;
+ const UnicodeString& /* text */,
+ Formattable& /* result */,
+ UErrorCode& status) const {
+ status = U_UNSUPPORTED_ERROR;
}
CurrencyAmount*
CompactDecimalFormat::parseCurrency(
- const UnicodeString& /* text */,
- ParsePosition& /* pos */) const {
- return NULL;
-}
-
-void CDFLocaleStyleData::Init(UErrorCode& status) {
- if (unitsByVariant != NULL) {
- return;
- }
- unitsByVariant = uhash_open(uhash_hashChars, uhash_compareChars, NULL, &status);
- if (U_FAILURE(status)) {
- return;
- }
- uhash_setKeyDeleter(unitsByVariant, uprv_free);
- uhash_setValueDeleter(unitsByVariant, deleteCDFUnits);
-}
-
-CDFLocaleStyleData::~CDFLocaleStyleData() {
- setToBogus();
-}
-
-void CDFLocaleStyleData::setToBogus() {
- if (unitsByVariant != NULL) {
- uhash_close(unitsByVariant);
- unitsByVariant = NULL;
- }
-}
-
-void CDFLocaleData::Init(UErrorCode& status) {
- shortData.Init(status);
- if (U_FAILURE(status)) {
- return;
- }
- longData.Init(status);
-}
-
-// Helper method for operator=
-static UBool divisors_equal(const double* lhs, const double* rhs) {
- for (int32_t i = 0; i < MAX_DIGITS; ++i) {
- if (lhs[i] != rhs[i]) {
- return FALSE;
- }
- }
- return TRUE;
-}
-
-// getCDFLocaleStyleData returns pointer to formatting data for given locale and
-// style within the global cache. On cache miss, getCDFLocaleStyleData loads
-// the data from CLDR into the global cache before returning the pointer. If a
-// UNUM_LONG data is requested for a locale, and that locale does not have
-// UNUM_LONG data, getCDFLocaleStyleData will fall back to UNUM_SHORT data for
-// that locale.
-static const CDFLocaleStyleData* getCDFLocaleStyleData(const Locale& inLocale, UNumberCompactStyle style, UErrorCode& status) {
- if (U_FAILURE(status)) {
- return NULL;
- }
- CDFLocaleData* result = NULL;
- const char* key = inLocale.getName();
- {
- Mutex lock(&gCompactDecimalMetaLock);
- if (gCompactDecimalData == NULL) {
- gCompactDecimalData = uhash_open(uhash_hashChars, uhash_compareChars, NULL, &status);
- if (U_FAILURE(status)) {
- return NULL;
- }
- uhash_setKeyDeleter(gCompactDecimalData, uprv_free);
- uhash_setValueDeleter(gCompactDecimalData, deleteCDFLocaleData);
- ucln_i18n_registerCleanup(UCLN_I18N_CDFINFO, cdf_cleanup);
- } else {
- result = (CDFLocaleData*) uhash_get(gCompactDecimalData, key);
- }
- }
- if (result != NULL) {
- return extractDataByStyleEnum(*result, style, status);
- }
-
- result = loadCDFLocaleData(inLocale, status);
- if (U_FAILURE(status)) {
- return NULL;
- }
-
- {
- Mutex lock(&gCompactDecimalMetaLock);
- CDFLocaleData* temp = (CDFLocaleData*) uhash_get(gCompactDecimalData, key);
- if (temp != NULL) {
- delete result;
- result = temp;
- } else {
- uhash_put(gCompactDecimalData, uprv_strdup(key), (void*) result, &status);
- if (U_FAILURE(status)) {
- return NULL;
- }
- }
- }
- return extractDataByStyleEnum(*result, style, status);
-}
-
-static const CDFLocaleStyleData* extractDataByStyleEnum(const CDFLocaleData& data, UNumberCompactStyle style, UErrorCode& status) {
- switch (style) {
- case UNUM_SHORT:
- return &data.shortData;
- case UNUM_LONG:
- if (!data.longData.isBogus()) {
- return &data.longData;
- }
- return &data.shortData;
- default:
- status = U_ILLEGAL_ARGUMENT_ERROR;
- return NULL;
- }
-}
-
-// loadCDFLocaleData loads formatting data from CLDR for a given locale. The
-// caller owns the returned pointer.
-static CDFLocaleData* loadCDFLocaleData(const Locale& inLocale, UErrorCode& status) {
- if (U_FAILURE(status)) {
- return NULL;
- }
- CDFLocaleData* result = new CDFLocaleData;
- if (result == NULL) {
- status = U_MEMORY_ALLOCATION_ERROR;
- return NULL;
- }
- result->Init(status);
- if (U_FAILURE(status)) {
- delete result;
- return NULL;
- }
-
- load(inLocale, result, status);
-
- if (U_FAILURE(status)) {
- delete result;
- return NULL;
- }
- return result;
-}
-
-namespace {
-
-struct CmptDecDataSink : public ResourceSink {
-
- CDFLocaleData& dataBundle; // Where to save values when they are read
- UBool isLatin; // Whether or not we are traversing the Latin tree
- UBool isFallback; // Whether or not we are traversing the Latin tree as fallback
-
- enum EPatternsTableKey { PATTERNS_SHORT, PATTERNS_LONG };
- enum EFormatsTableKey { DECIMAL_FORMAT, CURRENCY_FORMAT };
-
- /*
- * NumberElements{ <-- top (numbering system table)
- * latn{ <-- patternsTable (one per numbering system)
- * patternsLong{ <-- formatsTable (one per pattern)
- * decimalFormat{ <-- powersOfTenTable (one per format)
- * 1000{ <-- pluralVariantsTable (one per power of ten)
- * one{"0 thousand"} <-- plural variant and template
- */
-
- CmptDecDataSink(CDFLocaleData& _dataBundle)
- : dataBundle(_dataBundle), isLatin(FALSE), isFallback(FALSE) {}
- virtual ~CmptDecDataSink();
-
- virtual void put(const char *key, ResourceValue &value, UBool isRoot, UErrorCode &errorCode) {
- // SPECIAL CASE: Don't consume root in the non-Latin numbering system
- if (isRoot && !isLatin) { return; }
-
- ResourceTable patternsTable = value.getTable(errorCode);
- if (U_FAILURE(errorCode)) { return; }
- for (int i1 = 0; patternsTable.getKeyAndValue(i1, key, value); ++i1) {
-
- // Check for patternsShort or patternsLong
- EPatternsTableKey patternsTableKey;
- if (uprv_strcmp(key, gPatternsShort) == 0) {
- patternsTableKey = PATTERNS_SHORT;
- } else if (uprv_strcmp(key, gPatternsLong) == 0) {
- patternsTableKey = PATTERNS_LONG;
- } else {
- continue;
- }
-
- // Traverse into the formats table
- ResourceTable formatsTable = value.getTable(errorCode);
- if (U_FAILURE(errorCode)) { return; }
- for (int i2 = 0; formatsTable.getKeyAndValue(i2, key, value); ++i2) {
-
- // Check for decimalFormat or currencyFormat
- EFormatsTableKey formatsTableKey;
- if (uprv_strcmp(key, gDecimalFormatTag) == 0) {
- formatsTableKey = DECIMAL_FORMAT;
- // TODO: Enable this statement when currency support is added
- // } else if (uprv_strcmp(key, gCurrencyFormat) == 0) {
- // formatsTableKey = CURRENCY_FORMAT;
- } else {
- continue;
- }
-
- // Set the current style and destination based on the two keys
- UNumberCompactStyle style;
- CDFLocaleStyleData* destination = NULL;
- if (patternsTableKey == PATTERNS_LONG
- && formatsTableKey == DECIMAL_FORMAT) {
- style = UNUM_LONG;
- destination = &dataBundle.longData;
- } else if (patternsTableKey == PATTERNS_SHORT
- && formatsTableKey == DECIMAL_FORMAT) {
- style = UNUM_SHORT;
- destination = &dataBundle.shortData;
- // TODO: Enable the following statements when currency support is added
- // } else if (patternsTableKey == PATTERNS_SHORT
- // && formatsTableKey == CURRENCY_FORMAT) {
- // style = UNUM_SHORT_CURRENCY; // or whatever the enum gets named
- // destination = &dataBundle.shortCurrencyData;
- // } else {
- // // Silently ignore this case
- // continue;
- }
-
- // SPECIAL CASE: RULES FOR WHETHER OR NOT TO CONSUME THIS TABLE:
- // 1) Don't consume longData if shortData was consumed from the non-Latin
- // locale numbering system
- // 2) Don't consume longData for the first time if this is the root bundle and
- // shortData is already populated from a more specific locale. Note that if
- // both longData and shortData are both only in root, longData will be
- // consumed since it is alphabetically before shortData in the bundle.
- if (isFallback
- && style == UNUM_LONG
- && !dataBundle.shortData.isEmpty()
- && !dataBundle.shortData.fromFallback) {
- continue;
- }
- if (isRoot
- && style == UNUM_LONG
- && dataBundle.longData.isEmpty()
- && !dataBundle.shortData.isEmpty()) {
- continue;
- }
-
- // Set the "fromFallback" flag on the data object
- destination->fromFallback = isFallback;
-
- // Traverse into the powers of ten table
- ResourceTable powersOfTenTable = value.getTable(errorCode);
- if (U_FAILURE(errorCode)) { return; }
- for (int i3 = 0; powersOfTenTable.getKeyAndValue(i3, key, value); ++i3) {
-
- // The key will always be some even power of 10. e.g 10000.
- char* endPtr = NULL;
- double power10 = uprv_strtod(key, &endPtr);
- if (*endPtr != 0) {
- errorCode = U_INTERNAL_PROGRAM_ERROR;
- return;
- }
- int32_t log10Value = computeLog10(power10, FALSE);
-
- // Silently ignore divisors that are too big.
- if (log10Value >= MAX_DIGITS) continue;
-
- // Iterate over the plural variants ("one", "other", etc)
- ResourceTable pluralVariantsTable = value.getTable(errorCode);
- if (U_FAILURE(errorCode)) { return; }
- for (int i4 = 0; pluralVariantsTable.getKeyAndValue(i4, key, value); ++i4) {
- const char* pluralVariant = key;
- const UnicodeString formatStr = value.getUnicodeString(errorCode);
-
- // Copy the data into the in-memory data bundle (do not overwrite
- // existing values)
- int32_t numZeros = populatePrefixSuffix(
- pluralVariant, log10Value, formatStr,
- destination->unitsByVariant, FALSE, errorCode);
-
- // If populatePrefixSuffix returns -1, it means that this key has been
- // encountered already.
- if (numZeros < 0) {
- continue;
- }
-
- // Set the divisor, which is based on the number of zeros in the template
- // string. If the divisor from here is different from the one previously
- // stored, it means that the number of zeros in different plural variants
- // differs; throw an exception.
- // TODO: How should I check for floating-point errors here?
- // Is there a good reason why "divisor" is double and not long like Java?
- double divisor = calculateDivisor(power10, numZeros);
- if (destination->divisors[log10Value] != 0.0
- && destination->divisors[log10Value] != divisor) {
- errorCode = U_INTERNAL_PROGRAM_ERROR;
- return;
- }
- destination->divisors[log10Value] = divisor;
- }
- }
- }
- }
- }
-};
-
-// Virtual destructors must be defined out of line.
-CmptDecDataSink::~CmptDecDataSink() {}
-
-} // namespace
-
-static void load(const Locale& inLocale, CDFLocaleData* result, UErrorCode& status) {
- LocalPointer<NumberingSystem> ns(NumberingSystem::createInstance(inLocale, status));
- if (U_FAILURE(status)) {
- return;
- }
- const char* nsName = ns->getName();
-
- LocalUResourceBundlePointer resource(ures_open(NULL, inLocale.getName(), &status));
- if (U_FAILURE(status)) {
- return;
- }
- CmptDecDataSink sink(*result);
- sink.isFallback = FALSE;
-
- // First load the number elements data if nsName is not Latin.
- if (uprv_strcmp(nsName, gLatnTag) != 0) {
- sink.isLatin = FALSE;
- CharString path;
- path.append(gNumberElementsTag, status)
- .append('/', status)
- .append(nsName, status);
- ures_getAllItemsWithFallback(resource.getAlias(), path.data(), sink, status);
- if (status == U_MISSING_RESOURCE_ERROR) {
- // Silently ignore and use Latin
- status = U_ZERO_ERROR;
- } else if (U_FAILURE(status)) {
- return;
- }
- sink.isFallback = TRUE;
- }
-
- // Now load Latin.
- sink.isLatin = TRUE;
- ures_getAllItemsWithFallback(resource.getAlias(), gLatnPath, sink, status);
- if (U_FAILURE(status)) return;
-
- // If longData is empty, default it to be equal to shortData
- if (result->longData.isEmpty()) {
- result->longData.setToBogus();
- }
-
- // Check for "other" variants in each of the three data classes, and resolve missing elements.
-
- if (!result->longData.isBogus()) {
- checkForOtherVariants(&result->longData, status);
- if (U_FAILURE(status)) return;
- fillInMissing(&result->longData);
- }
-
- checkForOtherVariants(&result->shortData, status);
- if (U_FAILURE(status)) return;
- fillInMissing(&result->shortData);
-
- // TODO: Enable this statement when currency support is added
- // checkForOtherVariants(&result->shortCurrencyData, status);
- // if (U_FAILURE(status)) return;
- // fillInMissing(&result->shortCurrencyData);
-}
-
-// populatePrefixSuffix Adds a specific prefix-suffix pair to result for a
-// given variant and log10 value.
-// variant is 'zero', 'one', 'two', 'few', 'many', or 'other'.
-// formatStr is the format string from which the prefix and suffix are
-// extracted. It is usually of form 'Pefix 000 suffix'.
-// populatePrefixSuffix returns the number of 0's found in formatStr
-// before the decimal point.
-// In the special case that formatStr contains only spaces for prefix
-// and suffix, populatePrefixSuffix returns log10Value + 1.
-static int32_t populatePrefixSuffix(
- const char* variant, int32_t log10Value, const UnicodeString& formatStr, UHashtable* result, UBool overwrite, UErrorCode& status) {
- if (U_FAILURE(status)) {
- return 0;
- }
-
- // ICU 59 HACK: Ignore negative part of format string, mimicking ICU 58 behavior.
- // TODO(sffc): Make sure this is fixed during the overhaul port in ICU 60.
- int32_t semiPos = formatStr.indexOf(';', 0);
- if (semiPos == -1) {
- semiPos = formatStr.length();
- }
- UnicodeString positivePart = formatStr.tempSubString(0, semiPos);
-
- int32_t firstIdx = positivePart.indexOf(kZero, UPRV_LENGTHOF(kZero), 0);
- // We must have 0's in format string.
- if (firstIdx == -1) {
- status = U_INTERNAL_PROGRAM_ERROR;
- return 0;
- }
- int32_t lastIdx = positivePart.lastIndexOf(kZero, UPRV_LENGTHOF(kZero), firstIdx);
- CDFUnit* unit = createCDFUnit(variant, log10Value, result, status);
- if (U_FAILURE(status)) {
- return 0;
- }
-
- // Return -1 if we are not overwriting an existing value
- if (unit->isSet() && !overwrite) {
- return -1;
- }
- unit->markAsSet();
-
- // Everything up to first 0 is the prefix
- unit->prefix = positivePart.tempSubString(0, firstIdx);
- fixQuotes(unit->prefix);
- // Everything beyond the last 0 is the suffix
- unit->suffix = positivePart.tempSubString(lastIdx + 1);
- fixQuotes(unit->suffix);
-
- // If there is effectively no prefix or suffix, ignore the actual number of
- // 0's and act as if the number of 0's matches the size of the number.
- if (onlySpaces(unit->prefix) && onlySpaces(unit->suffix)) {
- return log10Value + 1;
- }
-
- // Calculate number of zeros before decimal point
- int32_t idx = firstIdx + 1;
- while (idx <= lastIdx && positivePart.charAt(idx) == u_0) {
- ++idx;
- }
- return (idx - firstIdx);
-}
-
-// Calculate a divisor based on the magnitude and number of zeros in the
-// template string.
-static double calculateDivisor(double power10, int32_t numZeros) {
- double divisor = power10;
- for (int32_t i = 1; i < numZeros; ++i) {
- divisor /= 10.0;
- }
- return divisor;
-}
-
-static UBool onlySpaces(UnicodeString u) {
- return u.trim().length() == 0;
+ const UnicodeString& /* text */,
+ ParsePosition& /* pos */) const {
+ return nullptr;
}
-// fixQuotes unescapes single quotes. Don''t -> Don't. Letter 'j' -> Letter j.
-// Modifies s in place.
-static void fixQuotes(UnicodeString& s) {
- QuoteState state = OUTSIDE;
- int32_t len = s.length();
- int32_t dest = 0;
- for (int32_t i = 0; i < len; ++i) {
- UChar ch = s.charAt(i);
- if (ch == u_apos) {
- if (state == INSIDE_EMPTY) {
- s.setCharAt(dest, ch);
- ++dest;
- }
- } else {
- s.setCharAt(dest, ch);
- ++dest;
- }
-
- // Update state
- switch (state) {
- case OUTSIDE:
- state = ch == u_apos ? INSIDE_EMPTY : OUTSIDE;
- break;
- case INSIDE_EMPTY:
- case INSIDE_FULL:
- state = ch == u_apos ? OUTSIDE : INSIDE_FULL;
- break;
- default:
- break;
- }
- }
- s.truncate(dest);
-}
-
-// Checks to make sure that an "other" variant is present in all
-// powers of 10.
-static void checkForOtherVariants(CDFLocaleStyleData* result,
- UErrorCode& status) {
- if (result == NULL || result->unitsByVariant == NULL) {
- return;
- }
-
- const CDFUnit* otherByBase =
- (const CDFUnit*) uhash_get(result->unitsByVariant, gOther);
- if (otherByBase == NULL) {
- status = U_INTERNAL_PROGRAM_ERROR;
- return;
- }
-
- // Check all other plural variants, and make sure that if
- // any of them are populated, then other is also populated
- int32_t pos = UHASH_FIRST;
- const UHashElement* element;
- while ((element = uhash_nextElement(result->unitsByVariant, &pos)) != NULL) {
- CDFUnit* variantsByBase = (CDFUnit*) element->value.pointer;
- if (variantsByBase == otherByBase) continue;
- for (int32_t log10Value = 0; log10Value < MAX_DIGITS; ++log10Value) {
- if (variantsByBase[log10Value].isSet()
- && !otherByBase[log10Value].isSet()) {
- status = U_INTERNAL_PROGRAM_ERROR;
- return;
- }
- }
- }
-}
-
-// fillInMissing ensures that the data in result is complete.
-// result data is complete if for each variant in result, there exists
-// a prefix-suffix pair for each log10 value and there also exists
-// a divisor for each log10 value.
-//
-// First this function figures out for which log10 values, the other
-// variant already had data. These are the same log10 values defined
-// in CLDR.
-//
-// For each log10 value not defined in CLDR, it uses the divisor for
-// the last defined log10 value or 1.
-//
-// Then for each variant, it does the following. For each log10
-// value not defined in CLDR, copy the prefix-suffix pair from the
-// previous log10 value. If log10 value is defined in CLDR but is
-// missing from given variant, copy the prefix-suffix pair for that
-// log10 value from the 'other' variant.
-static void fillInMissing(CDFLocaleStyleData* result) {
- const CDFUnit* otherUnits =
- (const CDFUnit*) uhash_get(result->unitsByVariant, gOther);
- UBool definedInCLDR[MAX_DIGITS];
- double lastDivisor = 1.0;
- for (int32_t i = 0; i < MAX_DIGITS; ++i) {
- if (!otherUnits[i].isSet()) {
- result->divisors[i] = lastDivisor;
- definedInCLDR[i] = FALSE;
- } else {
- lastDivisor = result->divisors[i];
- definedInCLDR[i] = TRUE;
- }
- }
- // Iterate over each variant.
- int32_t pos = UHASH_FIRST;
- const UHashElement* element = uhash_nextElement(result->unitsByVariant, &pos);
- for (;element != NULL; element = uhash_nextElement(result->unitsByVariant, &pos)) {
- CDFUnit* units = (CDFUnit*) element->value.pointer;
- for (int32_t i = 0; i < MAX_DIGITS; ++i) {
- if (definedInCLDR[i]) {
- if (!units[i].isSet()) {
- units[i] = otherUnits[i];
- }
- } else {
- if (i == 0) {
- units[0].markAsSet();
- } else {
- units[i] = units[i - 1];
- }
- }
- }
- }
-}
-
-// computeLog10 computes floor(log10(x)). If inRange is TRUE, the biggest
-// value computeLog10 will return MAX_DIGITS -1 even for
-// numbers > 10^MAX_DIGITS. If inRange is FALSE, computeLog10 will return
-// up to MAX_DIGITS.
-static int32_t computeLog10(double x, UBool inRange) {
- int32_t result = 0;
- int32_t max = inRange ? MAX_DIGITS - 1 : MAX_DIGITS;
- while (x >= 10.0) {
- x /= 10.0;
- ++result;
- if (result == max) {
- break;
- }
- }
- return result;
-}
-
-// createCDFUnit returns a pointer to the prefix-suffix pair for a given
-// variant and log10 value within table. If no such prefix-suffix pair is
-// stored in table, one is created within table before returning pointer.
-static CDFUnit* createCDFUnit(const char* variant, int32_t log10Value, UHashtable* table, UErrorCode& status) {
- if (U_FAILURE(status)) {
- return NULL;
- }
- CDFUnit *cdfUnit = (CDFUnit*) uhash_get(table, variant);
- if (cdfUnit == NULL) {
- cdfUnit = new CDFUnit[MAX_DIGITS];
- if (cdfUnit == NULL) {
- status = U_MEMORY_ALLOCATION_ERROR;
- return NULL;
- }
- uhash_put(table, uprv_strdup(variant), cdfUnit, &status);
- if (U_FAILURE(status)) {
- return NULL;
- }
- }
- CDFUnit* result = &cdfUnit[log10Value];
- return result;
-}
-
-// getCDFUnitFallback returns a pointer to the prefix-suffix pair for a given
-// variant and log10 value within table. If the given variant doesn't exist, it
-// falls back to the OTHER variant. Therefore, this method will always return
-// some non-NULL value.
-static const CDFUnit* getCDFUnitFallback(const UHashtable* table, const UnicodeString& variant, int32_t log10Value) {
- CharString cvariant;
- UErrorCode status = U_ZERO_ERROR;
- const CDFUnit *cdfUnit = NULL;
- cvariant.appendInvariantChars(variant, status);
- if (!U_FAILURE(status)) {
- cdfUnit = (const CDFUnit*) uhash_get(table, cvariant.data());
- }
- if (cdfUnit == NULL) {
- cdfUnit = (const CDFUnit*) uhash_get(table, gOther);
- }
- return &cdfUnit[log10Value];
-}
-U_NAMESPACE_END
-#endif
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/csrmbcs.cpp b/Build/source/libs/icu/icu-src/source/i18n/csrmbcs.cpp
index d98f18a19cb..5579ba8ec3f 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/csrmbcs.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/csrmbcs.cpp
@@ -166,7 +166,7 @@ int32_t CharsetRecog_mbcs::match_mbcs(InputText *det, const uint16_t commonChars
doubleByteCharCount++;
if (commonChars != 0) {
- if (binarySearch(commonChars, commonCharsLen, iter.charValue) >= 0){
+ if (binarySearch(commonChars, commonCharsLen, static_cast<uint16_t>(iter.charValue)) >= 0){
commonCharCount += 1;
}
}
diff --git a/Build/source/libs/icu/icu-src/source/i18n/currpinf.cpp b/Build/source/libs/icu/icu-src/source/i18n/currpinf.cpp
index 9a7996b405c..af9c837af89 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/currpinf.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/currpinf.cpp
@@ -17,7 +17,6 @@
#include <iostream>
#endif
-
#include "unicode/locid.h"
#include "unicode/plurrule.h"
#include "unicode/strenum.h"
@@ -30,7 +29,6 @@
U_NAMESPACE_BEGIN
-
static const UChar gNumberPatternSeparator = 0x3B; // ;
U_CDECL_BEGIN
@@ -65,66 +63,86 @@ static const char gDecimalFormatTag[]="decimalFormat";
static const char gCurrUnitPtnTag[]="CurrencyUnitPatterns";
CurrencyPluralInfo::CurrencyPluralInfo(UErrorCode& status)
-: fPluralCountToCurrencyUnitPattern(NULL),
- fPluralRules(NULL),
- fLocale(NULL) {
+: fPluralCountToCurrencyUnitPattern(nullptr),
+ fPluralRules(nullptr),
+ fLocale(nullptr),
+ fInternalStatus(U_ZERO_ERROR) {
initialize(Locale::getDefault(), status);
}
CurrencyPluralInfo::CurrencyPluralInfo(const Locale& locale, UErrorCode& status)
-: fPluralCountToCurrencyUnitPattern(NULL),
- fPluralRules(NULL),
- fLocale(NULL) {
+: fPluralCountToCurrencyUnitPattern(nullptr),
+ fPluralRules(nullptr),
+ fLocale(nullptr),
+ fInternalStatus(U_ZERO_ERROR) {
initialize(locale, status);
}
CurrencyPluralInfo::CurrencyPluralInfo(const CurrencyPluralInfo& info)
: UObject(info),
- fPluralCountToCurrencyUnitPattern(NULL),
- fPluralRules(NULL),
- fLocale(NULL) {
+ fPluralCountToCurrencyUnitPattern(nullptr),
+ fPluralRules(nullptr),
+ fLocale(nullptr),
+ fInternalStatus(U_ZERO_ERROR) {
*this = info;
}
-
CurrencyPluralInfo&
CurrencyPluralInfo::operator=(const CurrencyPluralInfo& info) {
if (this == &info) {
return *this;
}
+ fInternalStatus = info.fInternalStatus;
+ if (U_FAILURE(fInternalStatus)) {
+ // bail out early if the object we were copying from was already 'invalid'.
+ return *this;
+ }
+
deleteHash(fPluralCountToCurrencyUnitPattern);
- UErrorCode status = U_ZERO_ERROR;
- fPluralCountToCurrencyUnitPattern = initHash(status);
+ fPluralCountToCurrencyUnitPattern = initHash(fInternalStatus);
copyHash(info.fPluralCountToCurrencyUnitPattern,
- fPluralCountToCurrencyUnitPattern, status);
- if ( U_FAILURE(status) ) {
+ fPluralCountToCurrencyUnitPattern, fInternalStatus);
+ if ( U_FAILURE(fInternalStatus) ) {
return *this;
}
delete fPluralRules;
+ fPluralRules = nullptr;
delete fLocale;
- if (info.fPluralRules) {
+ fLocale = nullptr;
+
+ if (info.fPluralRules != nullptr) {
fPluralRules = info.fPluralRules->clone();
- } else {
- fPluralRules = NULL;
+ if (fPluralRules == nullptr) {
+ fInternalStatus = U_MEMORY_ALLOCATION_ERROR;
+ return *this;
+ }
}
- if (info.fLocale) {
+ if (info.fLocale != nullptr) {
fLocale = info.fLocale->clone();
- } else {
- fLocale = NULL;
+ if (fLocale == nullptr) {
+ // Note: If clone had an error parameter, then we could check/set that instead.
+ fInternalStatus = U_MEMORY_ALLOCATION_ERROR;
+ return *this;
+ }
+ // If the other locale wasn't bogus, but our clone'd locale is bogus, then OOM happened
+ // during the call to clone().
+ if (!info.fLocale->isBogus() && fLocale->isBogus()) {
+ fInternalStatus = U_MEMORY_ALLOCATION_ERROR;
+ return *this;
+ }
}
return *this;
}
-
CurrencyPluralInfo::~CurrencyPluralInfo() {
deleteHash(fPluralCountToCurrencyUnitPattern);
- fPluralCountToCurrencyUnitPattern = NULL;
+ fPluralCountToCurrencyUnitPattern = nullptr;
delete fPluralRules;
delete fLocale;
- fPluralRules = NULL;
- fLocale = NULL;
+ fPluralRules = nullptr;
+ fLocale = nullptr;
}
UBool
@@ -148,7 +166,14 @@ CurrencyPluralInfo::operator==(const CurrencyPluralInfo& info) const {
CurrencyPluralInfo*
CurrencyPluralInfo::clone() const {
- return new CurrencyPluralInfo(*this);
+ CurrencyPluralInfo* newObj = new CurrencyPluralInfo(*this);
+ // Since clone doesn't have a 'status' parameter, the best we can do is return nullptr
+ // if the new object was not full constructed properly (an error occurred).
+ if (newObj != nullptr && U_FAILURE(newObj->fInternalStatus)) {
+ delete newObj;
+ newObj = nullptr;
+ }
+ return newObj;
}
const PluralRules*
@@ -161,15 +186,15 @@ CurrencyPluralInfo::getCurrencyPluralPattern(const UnicodeString& pluralCount,
UnicodeString& result) const {
const UnicodeString* currencyPluralPattern =
(UnicodeString*)fPluralCountToCurrencyUnitPattern->get(pluralCount);
- if (currencyPluralPattern == NULL) {
+ if (currencyPluralPattern == nullptr) {
// fall back to "other"
if (pluralCount.compare(gPluralCountOther, 5)) {
currencyPluralPattern =
(UnicodeString*)fPluralCountToCurrencyUnitPattern->get(UnicodeString(TRUE, gPluralCountOther, 5));
}
- if (currencyPluralPattern == NULL) {
+ if (currencyPluralPattern == nullptr) {
// no currencyUnitPatterns defined,
- // fallback to predefined defult.
+ // fallback to predefined default.
// This should never happen when ICU resource files are
// available, since currencyUnitPattern of "other" is always
// defined in root.
@@ -190,44 +215,57 @@ void
CurrencyPluralInfo::setPluralRules(const UnicodeString& ruleDescription,
UErrorCode& status) {
if (U_SUCCESS(status)) {
- if (fPluralRules) {
- delete fPluralRules;
- }
+ delete fPluralRules;
fPluralRules = PluralRules::createRules(ruleDescription, status);
}
}
-
void
CurrencyPluralInfo::setCurrencyPluralPattern(const UnicodeString& pluralCount,
const UnicodeString& pattern,
UErrorCode& status) {
if (U_SUCCESS(status)) {
- fPluralCountToCurrencyUnitPattern->put(pluralCount, new UnicodeString(pattern), status);
+ UnicodeString* oldValue = static_cast<UnicodeString*>(
+ fPluralCountToCurrencyUnitPattern->get(pluralCount));
+ delete oldValue;
+ LocalPointer<UnicodeString> p(new UnicodeString(pattern), status);
+ if (U_SUCCESS(status)) {
+ // the p object allocated above will be owned by fPluralCountToCurrencyUnitPattern
+ // after the call to put(), even if the method returns failure.
+ fPluralCountToCurrencyUnitPattern->put(pluralCount, p.orphan(), status);
+ }
}
}
-
void
CurrencyPluralInfo::setLocale(const Locale& loc, UErrorCode& status) {
initialize(loc, status);
}
-
void
CurrencyPluralInfo::initialize(const Locale& loc, UErrorCode& status) {
if (U_FAILURE(status)) {
return;
}
delete fLocale;
+ fLocale = nullptr;
+ delete fPluralRules;
+ fPluralRules = nullptr;
+
fLocale = loc.clone();
- if (fPluralRules) {
- delete fPluralRules;
+ if (fLocale == nullptr) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+ // If the locale passed in wasn't bogus, but our clone'd locale is bogus, then OOM happened
+ // during the call to loc.clone().
+ if (!loc.isBogus() && fLocale->isBogus()) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return;
}
fPluralRules = PluralRules::forLocale(loc, status);
setupCurrencyPluralPattern(loc, status);
}
-
void
CurrencyPluralInfo::setupCurrencyPluralPattern(const Locale& loc, UErrorCode& status) {
@@ -235,31 +273,32 @@ CurrencyPluralInfo::setupCurrencyPluralPattern(const Locale& loc, UErrorCode& st
return;
}
- if (fPluralCountToCurrencyUnitPattern) {
- deleteHash(fPluralCountToCurrencyUnitPattern);
- }
+ deleteHash(fPluralCountToCurrencyUnitPattern);
fPluralCountToCurrencyUnitPattern = initHash(status);
if (U_FAILURE(status)) {
return;
}
- NumberingSystem *ns = NumberingSystem::createInstance(loc,status);
+ LocalPointer<NumberingSystem> ns(NumberingSystem::createInstance(loc, status), status);
+ if (U_FAILURE(status)) {
+ return;
+ }
UErrorCode ec = U_ZERO_ERROR;
- UResourceBundle *rb = ures_open(NULL, loc.getName(), &ec);
- UResourceBundle *numElements = ures_getByKeyWithFallback(rb, gNumberElementsTag, NULL, &ec);
- rb = ures_getByKeyWithFallback(numElements, ns->getName(), rb, &ec);
- rb = ures_getByKeyWithFallback(rb, gPatternsTag, rb, &ec);
+ LocalUResourceBundlePointer rb(ures_open(nullptr, loc.getName(), &ec));
+ LocalUResourceBundlePointer numElements(ures_getByKeyWithFallback(rb.getAlias(), gNumberElementsTag, nullptr, &ec));
+ ures_getByKeyWithFallback(numElements.getAlias(), ns->getName(), rb.getAlias(), &ec);
+ ures_getByKeyWithFallback(rb.getAlias(), gPatternsTag, rb.getAlias(), &ec);
int32_t ptnLen;
- const UChar* numberStylePattern = ures_getStringByKeyWithFallback(rb, gDecimalFormatTag, &ptnLen, &ec);
+ const UChar* numberStylePattern = ures_getStringByKeyWithFallback(rb.getAlias(), gDecimalFormatTag, &ptnLen, &ec);
// Fall back to "latn" if num sys specific pattern isn't there.
- if ( ec == U_MISSING_RESOURCE_ERROR && uprv_strcmp(ns->getName(),gLatnTag)) {
+ if ( ec == U_MISSING_RESOURCE_ERROR && (uprv_strcmp(ns->getName(), gLatnTag) != 0)) {
ec = U_ZERO_ERROR;
- rb = ures_getByKeyWithFallback(numElements, gLatnTag, rb, &ec);
- rb = ures_getByKeyWithFallback(rb, gPatternsTag, rb, &ec);
- numberStylePattern = ures_getStringByKeyWithFallback(rb, gDecimalFormatTag, &ptnLen, &ec);
+ ures_getByKeyWithFallback(numElements.getAlias(), gLatnTag, rb.getAlias(), &ec);
+ ures_getByKeyWithFallback(rb.getAlias(), gPatternsTag, rb.getAlias(), &ec);
+ numberStylePattern = ures_getStringByKeyWithFallback(rb.getAlias(), gDecimalFormatTag, &ptnLen, &ec);
}
int32_t numberStylePatternLen = ptnLen;
- const UChar* negNumberStylePattern = NULL;
+ const UChar* negNumberStylePattern = nullptr;
int32_t negNumberStylePatternLen = 0;
// TODO: Java
// parse to check whether there is ";" separator in the numberStylePattern
@@ -276,127 +315,127 @@ CurrencyPluralInfo::setupCurrencyPluralPattern(const Locale& loc, UErrorCode& st
}
}
- ures_close(numElements);
- ures_close(rb);
- delete ns;
-
if (U_FAILURE(ec)) {
+ // If OOM occurred during the above code, then we want to report that back to the caller.
+ if (ec == U_MEMORY_ALLOCATION_ERROR) {
+ status = ec;
+ }
return;
}
- UResourceBundle *currRb = ures_open(U_ICUDATA_CURR, loc.getName(), &ec);
- UResourceBundle *currencyRes = ures_getByKeyWithFallback(currRb, gCurrUnitPtnTag, NULL, &ec);
+ LocalUResourceBundlePointer currRb(ures_open(U_ICUDATA_CURR, loc.getName(), &ec));
+ LocalUResourceBundlePointer currencyRes(ures_getByKeyWithFallback(currRb.getAlias(), gCurrUnitPtnTag, nullptr, &ec));
#ifdef CURRENCY_PLURAL_INFO_DEBUG
std::cout << "in set up\n";
#endif
- StringEnumeration* keywords = fPluralRules->getKeywords(ec);
+ LocalPointer<StringEnumeration> keywords(fPluralRules->getKeywords(ec), ec);
if (U_SUCCESS(ec)) {
const char* pluralCount;
- while ((pluralCount = keywords->next(NULL, ec)) != NULL) {
- if ( U_SUCCESS(ec) ) {
- int32_t ptnLen;
- UErrorCode err = U_ZERO_ERROR;
- const UChar* patternChars = ures_getStringByKeyWithFallback(
- currencyRes, pluralCount, &ptnLen, &err);
- if (U_SUCCESS(err) && ptnLen > 0) {
- UnicodeString* pattern = new UnicodeString(patternChars, ptnLen);
+ while (((pluralCount = keywords->next(nullptr, ec)) != nullptr) && U_SUCCESS(ec)) {
+ int32_t ptnLength;
+ UErrorCode err = U_ZERO_ERROR;
+ const UChar* patternChars = ures_getStringByKeyWithFallback(currencyRes.getAlias(), pluralCount, &ptnLength, &err);
+ if (err == U_MEMORY_ALLOCATION_ERROR || patternChars == nullptr) {
+ ec = err;
+ break;
+ }
+ if (U_SUCCESS(err) && ptnLength > 0) {
+ UnicodeString* pattern = new UnicodeString(patternChars, ptnLength);
+ if (pattern == nullptr) {
+ ec = U_MEMORY_ALLOCATION_ERROR;
+ break;
+ }
#ifdef CURRENCY_PLURAL_INFO_DEBUG
- char result_1[1000];
- pattern->extract(0, pattern->length(), result_1, "UTF-8");
- std::cout << "pluralCount: " << pluralCount << "; pattern: " << result_1 << "\n";
+ char result_1[1000];
+ pattern->extract(0, pattern->length(), result_1, "UTF-8");
+ std::cout << "pluralCount: " << pluralCount << "; pattern: " << result_1 << "\n";
#endif
- pattern->findAndReplace(UnicodeString(TRUE, gPart0, 3),
- UnicodeString(numberStylePattern, numberStylePatternLen));
- pattern->findAndReplace(UnicodeString(TRUE, gPart1, 3), UnicodeString(TRUE, gTripleCurrencySign, 3));
-
- if (hasSeparator) {
- UnicodeString negPattern(patternChars, ptnLen);
- negPattern.findAndReplace(UnicodeString(TRUE, gPart0, 3),
- UnicodeString(negNumberStylePattern, negNumberStylePatternLen));
- negPattern.findAndReplace(UnicodeString(TRUE, gPart1, 3), UnicodeString(TRUE, gTripleCurrencySign, 3));
- pattern->append(gNumberPatternSeparator);
- pattern->append(negPattern);
- }
+ pattern->findAndReplace(UnicodeString(TRUE, gPart0, 3),
+ UnicodeString(numberStylePattern, numberStylePatternLen));
+ pattern->findAndReplace(UnicodeString(TRUE, gPart1, 3), UnicodeString(TRUE, gTripleCurrencySign, 3));
+
+ if (hasSeparator) {
+ UnicodeString negPattern(patternChars, ptnLength);
+ negPattern.findAndReplace(UnicodeString(TRUE, gPart0, 3),
+ UnicodeString(negNumberStylePattern, negNumberStylePatternLen));
+ negPattern.findAndReplace(UnicodeString(TRUE, gPart1, 3), UnicodeString(TRUE, gTripleCurrencySign, 3));
+ pattern->append(gNumberPatternSeparator);
+ pattern->append(negPattern);
+ }
#ifdef CURRENCY_PLURAL_INFO_DEBUG
- pattern->extract(0, pattern->length(), result_1, "UTF-8");
- std::cout << "pluralCount: " << pluralCount << "; pattern: " << result_1 << "\n";
+ pattern->extract(0, pattern->length(), result_1, "UTF-8");
+ std::cout << "pluralCount: " << pluralCount << "; pattern: " << result_1 << "\n";
#endif
-
- fPluralCountToCurrencyUnitPattern->put(UnicodeString(pluralCount, -1, US_INV), pattern, status);
- }
+ // the 'pattern' object allocated above will be owned by the fPluralCountToCurrencyUnitPattern after the call to
+ // put(), even if the method returns failure.
+ fPluralCountToCurrencyUnitPattern->put(UnicodeString(pluralCount, -1, US_INV), pattern, status);
}
}
}
- delete keywords;
- ures_close(currencyRes);
- ures_close(currRb);
+ // If OOM occurred during the above code, then we want to report that back to the caller.
+ if (ec == U_MEMORY_ALLOCATION_ERROR) {
+ status = ec;
+ }
}
-
-
void
-CurrencyPluralInfo::deleteHash(Hashtable* hTable)
-{
- if ( hTable == NULL ) {
+CurrencyPluralInfo::deleteHash(Hashtable* hTable) {
+ if ( hTable == nullptr ) {
return;
}
int32_t pos = UHASH_FIRST;
- const UHashElement* element = NULL;
- while ( (element = hTable->nextElement(pos)) != NULL ) {
+ const UHashElement* element = nullptr;
+ while ( (element = hTable->nextElement(pos)) != nullptr ) {
const UHashTok valueTok = element->value;
const UnicodeString* value = (UnicodeString*)valueTok.pointer;
delete value;
}
delete hTable;
- hTable = NULL;
+ hTable = nullptr;
}
-
Hashtable*
CurrencyPluralInfo::initHash(UErrorCode& status) {
- if ( U_FAILURE(status) ) {
- return NULL;
- }
- Hashtable* hTable;
- if ( (hTable = new Hashtable(TRUE, status)) == NULL ) {
- status = U_MEMORY_ALLOCATION_ERROR;
- return NULL;
+ if (U_FAILURE(status)) {
+ return nullptr;
}
- if ( U_FAILURE(status) ) {
- delete hTable;
- return NULL;
+ LocalPointer<Hashtable> hTable(new Hashtable(TRUE, status), status);
+ if (U_FAILURE(status)) {
+ return nullptr;
}
hTable->setValueComparator(ValueComparator);
- return hTable;
+ return hTable.orphan();
}
-
void
CurrencyPluralInfo::copyHash(const Hashtable* source,
Hashtable* target,
UErrorCode& status) {
- if ( U_FAILURE(status) ) {
+ if (U_FAILURE(status)) {
return;
}
int32_t pos = UHASH_FIRST;
- const UHashElement* element = NULL;
- if ( source ) {
- while ( (element = source->nextElement(pos)) != NULL ) {
+ const UHashElement* element = nullptr;
+ if (source) {
+ while ( (element = source->nextElement(pos)) != nullptr ) {
const UHashTok keyTok = element->key;
const UnicodeString* key = (UnicodeString*)keyTok.pointer;
const UHashTok valueTok = element->value;
const UnicodeString* value = (UnicodeString*)valueTok.pointer;
- UnicodeString* copy = new UnicodeString(*value);
- target->put(UnicodeString(*key), copy, status);
- if ( U_FAILURE(status) ) {
+ LocalPointer<UnicodeString> copy(new UnicodeString(*value), status);
+ if (U_FAILURE(status)) {
+ return;
+ }
+ // The HashTable owns the 'copy' object after the call to put().
+ target->put(UnicodeString(*key), copy.orphan(), status);
+ if (U_FAILURE(status)) {
return;
}
}
}
}
-
U_NAMESPACE_END
#endif
diff --git a/Build/source/libs/icu/icu-src/source/i18n/currunit.cpp b/Build/source/libs/icu/icu-src/source/i18n/currunit.cpp
index 1750b94fab4..7f3490d406b 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/currunit.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/currunit.cpp
@@ -17,21 +17,37 @@
#include "unicode/currunit.h"
#include "unicode/ustring.h"
#include "cstring.h"
+#include "uinvchar.h"
+
+static constexpr char16_t kDefaultCurrency[] = u"XXX";
U_NAMESPACE_BEGIN
CurrencyUnit::CurrencyUnit(ConstChar16Ptr _isoCode, UErrorCode& ec) {
- *isoCode = 0;
- if (U_SUCCESS(ec)) {
- if (_isoCode != nullptr && u_strlen(_isoCode)==3) {
- u_strcpy(isoCode, _isoCode);
- char simpleIsoCode[4];
- u_UCharsToChars(isoCode, simpleIsoCode, 4);
- initCurrency(simpleIsoCode);
- } else {
- ec = U_ILLEGAL_ARGUMENT_ERROR;
- }
+ // The constructor always leaves the CurrencyUnit in a valid state (with a 3-character currency code).
+ // Note: in ICU4J Currency.getInstance(), we check string length for 3, but in ICU4C we allow a
+ // non-NUL-terminated string to be passed as an argument, so it is not possible to check length.
+ // However, we allow a NUL-terminated empty string, which should have the same behavior as nullptr.
+ // Consider NUL-terminated strings of length 1 or 2 as invalid.
+ const char16_t* isoCodeToUse;
+ if (U_FAILURE(ec) || _isoCode == nullptr || _isoCode[0] == 0) {
+ isoCodeToUse = kDefaultCurrency;
+ } else if (_isoCode[1] == 0 || _isoCode[2] == 0) {
+ isoCodeToUse = kDefaultCurrency;
+ ec = U_ILLEGAL_ARGUMENT_ERROR;
+ } else if (!uprv_isInvariantUString(_isoCode, 3)) {
+ // TODO: Perform a more strict ASCII check like in ICU4J isAlpha3Code?
+ isoCodeToUse = kDefaultCurrency;
+ ec = U_INVARIANT_CONVERSION_ERROR;
+ } else {
+ isoCodeToUse = _isoCode;
}
+ // TODO: Perform uppercasing here like in ICU4J Currency.getInstance()?
+ uprv_memcpy(isoCode, isoCodeToUse, sizeof(UChar) * 3);
+ isoCode[3] = 0;
+ char simpleIsoCode[4];
+ u_UCharsToChars(isoCode, simpleIsoCode, 4);
+ initCurrency(simpleIsoCode);
}
CurrencyUnit::CurrencyUnit(const CurrencyUnit& other) : MeasureUnit(other) {
@@ -52,7 +68,7 @@ CurrencyUnit::CurrencyUnit(const MeasureUnit& other, UErrorCode& ec) : MeasureUn
}
CurrencyUnit::CurrencyUnit() : MeasureUnit() {
- u_strcpy(isoCode, u"XXX");
+ u_strcpy(isoCode, kDefaultCurrency);
char simpleIsoCode[4];
u_UCharsToChars(isoCode, simpleIsoCode, 4);
initCurrency(simpleIsoCode);
diff --git a/Build/source/libs/icu/icu-src/source/i18n/dcfmtimp.h b/Build/source/libs/icu/icu-src/source/i18n/dcfmtimp.h
deleted file mode 100644
index e582efb344b..00000000000
--- a/Build/source/libs/icu/icu-src/source/i18n/dcfmtimp.h
+++ /dev/null
@@ -1,54 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
-********************************************************************************
-* Copyright (C) 2012-2014, International Business Machines
-* Corporation and others. All Rights Reserved.
-********************************************************************************/
-
-#ifndef DCFMTIMP_H
-#define DCFMTIMP_H
-
-#include "unicode/utypes.h"
-
-
-#if UCONFIG_FORMAT_FASTPATHS_49
-
-U_NAMESPACE_BEGIN
-
-enum EDecimalFormatFastpathStatus {
- kFastpathNO = 0,
- kFastpathYES = 1,
- kFastpathUNKNOWN = 2, /* not yet set */
- kFastpathMAYBE = 3 /* depends on value being formatted. */
-};
-
-/**
- * Must be smaller than DecimalFormat::fReserved
- */
-struct DecimalFormatInternal {
- uint8_t fFastFormatStatus;
- uint8_t fFastParseStatus;
-
- DecimalFormatInternal &operator=(const DecimalFormatInternal& rhs) {
- fFastParseStatus = rhs.fFastParseStatus;
- fFastFormatStatus = rhs.fFastFormatStatus;
- return *this;
- }
-#ifdef FMT_DEBUG
- void dump() const {
- printf("DecimalFormatInternal: fFastFormatStatus=%c, fFastParseStatus=%c\n",
- "NY?"[(int)fFastFormatStatus&3],
- "NY?"[(int)fFastParseStatus&3]
- );
- }
-#endif
-};
-
-
-
-U_NAMESPACE_END
-
-#endif
-
-#endif
diff --git a/Build/source/libs/icu/icu-src/source/i18n/dcfmtsym.cpp b/Build/source/libs/icu/icu-src/source/i18n/dcfmtsym.cpp
index a2cc58c4151..d8b1ecdbea1 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/dcfmtsym.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/dcfmtsym.cpp
@@ -66,7 +66,7 @@ static const UChar INTL_CURRENCY_SYMBOL_STR[] = {0xa4, 0xa4, 0};
static const char *gNumberElementKeys[DecimalFormatSymbols::kFormatSymbolCount] = {
"decimal",
"group",
- "list",
+ NULL, /* #11897: the <list> symbol is NOT the pattern separator symbol */
"percentSign",
NULL, /* Native zero digit is deprecated from CLDR - get it from the numbering system */
NULL, /* Pattern digit character is deprecated from CLDR - use # by default always */
@@ -98,7 +98,7 @@ static const char *gNumberElementKeys[DecimalFormatSymbols::kFormatSymbolCount]
// Initializes this with the decimal format symbols in the default locale.
DecimalFormatSymbols::DecimalFormatSymbols(UErrorCode& status)
- : UObject(), locale() {
+ : UObject(), locale(), currPattern(NULL) {
initialize(locale, status, TRUE);
}
@@ -106,12 +106,12 @@ DecimalFormatSymbols::DecimalFormatSymbols(UErrorCode& status)
// Initializes this with the decimal format symbols in the desired locale.
DecimalFormatSymbols::DecimalFormatSymbols(const Locale& loc, UErrorCode& status)
- : UObject(), locale(loc) {
+ : UObject(), locale(loc), currPattern(NULL) {
initialize(locale, status);
}
DecimalFormatSymbols::DecimalFormatSymbols(const Locale& loc, const NumberingSystem& ns, UErrorCode& status)
- : UObject(), locale(loc) {
+ : UObject(), locale(loc), currPattern(NULL) {
initialize(locale, status, FALSE, &ns);
}
@@ -349,7 +349,6 @@ DecimalFormatSymbols::initialize(const Locale& loc, UErrorCode& status,
{
if (U_FAILURE(status)) { return; }
*validLocale = *actualLocale = 0;
- currPattern = NULL;
// First initialize all the symbols to the fallbacks for anything we can't find
initialize();
@@ -437,7 +436,7 @@ DecimalFormatSymbols::initialize(const Locale& loc, UErrorCode& status,
sink.resolveMissingMonetarySeparators(fSymbols);
// Resolve codePointZero
- UChar32 tempCodePointZero;
+ UChar32 tempCodePointZero = -1;
for (int32_t i=0; i<=9; i++) {
const UnicodeString& stringDigit = getConstDigitSymbol(i);
if (stringDigit.countChar32() != 1) {
@@ -477,6 +476,7 @@ DecimalFormatSymbols::initialize(const Locale& loc, UErrorCode& status,
UErrorCode localStatus = U_ZERO_ERROR;
uccLen = ucurr_forLocale(locName, ucc, uccLen, &localStatus);
+ // TODO: Currency pattern data loading is duplicated in number_formatimpl.cpp
if(U_SUCCESS(localStatus) && uccLen > 0) {
char cc[4]={0};
u_UCharsToChars(ucc, cc, uccLen);
diff --git a/Build/source/libs/icu/icu-src/source/i18n/decfmtst.cpp b/Build/source/libs/icu/icu-src/source/i18n/decfmtst.cpp
deleted file mode 100644
index e939ab474ad..00000000000
--- a/Build/source/libs/icu/icu-src/source/i18n/decfmtst.cpp
+++ /dev/null
@@ -1,251 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
-*******************************************************************************
-* Copyright (C) 2009-2016, International Business Machines Corporation and
-* others. All Rights Reserved.
-*******************************************************************************
-*
-* This file contains the class DecimalFormatStaticSets
-*
-* DecimalFormatStaticSets holds the UnicodeSets that are needed for lenient
-* parsing of decimal and group separators.
-********************************************************************************
-*/
-
-#include "unicode/utypes.h"
-
-#if !UCONFIG_NO_FORMATTING
-
-#include "unicode/unistr.h"
-#include "unicode/uniset.h"
-#include "unicode/uchar.h"
-#include "cmemory.h"
-#include "cstring.h"
-#include "uassert.h"
-#include "ucln_in.h"
-#include "umutex.h"
-
-#include "decfmtst.h"
-
-U_NAMESPACE_BEGIN
-
-
-//------------------------------------------------------------------------------
-//
-// Unicode Set pattern strings for all of the required constant sets.
-// Initialized with hex values for portability to EBCDIC based machines.
-// Really ugly, but there's no good way to avoid it.
-//
-//------------------------------------------------------------------------------
-
-static const UChar gDotEquivalentsPattern[] = {
- // [ . \u2024 \u3002 \uFE12 \uFE52 \uFF0E \uFF61 ]
- 0x005B, 0x002E, 0x2024, 0x3002, 0xFE12, 0xFE52, 0xFF0E, 0xFF61, 0x005D, 0x0000};
-
-static const UChar gCommaEquivalentsPattern[] = {
- // [ , \u060C \u066B \u3001 \uFE10 \uFE11 \uFE50 \uFE51 \uFF0C \uFF64 ]
- 0x005B, 0x002C, 0x060C, 0x066B, 0x3001, 0xFE10, 0xFE11, 0xFE50, 0xFE51, 0xFF0C, 0xFF64, 0x005D, 0x0000};
-
-static const UChar gOtherGroupingSeparatorsPattern[] = {
- // [ \ SPACE ' NBSP \u066C \u2000 - \u200A \u2018 \u2019 \u202F \u205F \u3000 \uFF07 ]
- 0x005B, 0x005C, 0x0020, 0x0027, 0x00A0, 0x066C, 0x2000, 0x002D, 0x200A, 0x2018, 0x2019, 0x202F, 0x205F, 0x3000, 0xFF07, 0x005D, 0x0000};
-
-static const UChar gDashEquivalentsPattern[] = {
- // [ \ - HYPHEN F_DASH N_DASH MINUS ]
- 0x005B, 0x005C, 0x002D, 0x2010, 0x2012, 0x2013, 0x2212, 0x005D, 0x0000};
-
-static const UChar gStrictDotEquivalentsPattern[] = {
- // [ . \u2024 \uFE52 \uFF0E \uFF61 ]
- 0x005B, 0x002E, 0x2024, 0xFE52, 0xFF0E, 0xFF61, 0x005D, 0x0000};
-
-static const UChar gStrictCommaEquivalentsPattern[] = {
- // [ , \u066B \uFE10 \uFE50 \uFF0C ]
- 0x005B, 0x002C, 0x066B, 0xFE10, 0xFE50, 0xFF0C, 0x005D, 0x0000};
-
-static const UChar gStrictOtherGroupingSeparatorsPattern[] = {
- // [ \ SPACE ' NBSP \u066C \u2000 - \u200A \u2018 \u2019 \u202F \u205F \u3000 \uFF07 ]
- 0x005B, 0x005C, 0x0020, 0x0027, 0x00A0, 0x066C, 0x2000, 0x002D, 0x200A, 0x2018, 0x2019, 0x202F, 0x205F, 0x3000, 0xFF07, 0x005D, 0x0000};
-
-static const UChar gStrictDashEquivalentsPattern[] = {
- // [ \ - MINUS ]
- 0x005B, 0x005C, 0x002D, 0x2212, 0x005D, 0x0000};
-
-static const UChar32 gMinusSigns[] = {
- 0x002D,
- 0x207B,
- 0x208B,
- 0x2212,
- 0x2796,
- 0xFE63,
- 0xFF0D};
-
-static const UChar32 gPlusSigns[] = {
- 0x002B,
- 0x207A,
- 0x208A,
- 0x2795,
- 0xfB29,
- 0xFE62,
- 0xFF0B};
-
-static void initUnicodeSet(const UChar32 *raw, int32_t len, UnicodeSet *s) {
- for (int32_t i = 0; i < len; ++i) {
- s->add(raw[i]);
- }
-}
-
-DecimalFormatStaticSets::DecimalFormatStaticSets(UErrorCode &status)
-: fDotEquivalents(NULL),
- fCommaEquivalents(NULL),
- fOtherGroupingSeparators(NULL),
- fDashEquivalents(NULL),
- fStrictDotEquivalents(NULL),
- fStrictCommaEquivalents(NULL),
- fStrictOtherGroupingSeparators(NULL),
- fStrictDashEquivalents(NULL),
- fDefaultGroupingSeparators(NULL),
- fStrictDefaultGroupingSeparators(NULL),
- fMinusSigns(NULL),
- fPlusSigns(NULL)
-{
- fDotEquivalents = new UnicodeSet(UnicodeString(TRUE, gDotEquivalentsPattern, -1), status);
- fCommaEquivalents = new UnicodeSet(UnicodeString(TRUE, gCommaEquivalentsPattern, -1), status);
- fOtherGroupingSeparators = new UnicodeSet(UnicodeString(TRUE, gOtherGroupingSeparatorsPattern, -1), status);
- fDashEquivalents = new UnicodeSet(UnicodeString(TRUE, gDashEquivalentsPattern, -1), status);
-
- fStrictDotEquivalents = new UnicodeSet(UnicodeString(TRUE, gStrictDotEquivalentsPattern, -1), status);
- fStrictCommaEquivalents = new UnicodeSet(UnicodeString(TRUE, gStrictCommaEquivalentsPattern, -1), status);
- fStrictOtherGroupingSeparators = new UnicodeSet(UnicodeString(TRUE, gStrictOtherGroupingSeparatorsPattern, -1), status);
- fStrictDashEquivalents = new UnicodeSet(UnicodeString(TRUE, gStrictDashEquivalentsPattern, -1), status);
-
-
- fDefaultGroupingSeparators = new UnicodeSet(*fDotEquivalents);
- fDefaultGroupingSeparators->addAll(*fCommaEquivalents);
- fDefaultGroupingSeparators->addAll(*fOtherGroupingSeparators);
-
- fStrictDefaultGroupingSeparators = new UnicodeSet(*fStrictDotEquivalents);
- fStrictDefaultGroupingSeparators->addAll(*fStrictCommaEquivalents);
- fStrictDefaultGroupingSeparators->addAll(*fStrictOtherGroupingSeparators);
-
- fMinusSigns = new UnicodeSet();
- fPlusSigns = new UnicodeSet();
-
- // Check for null pointers
- if (fDotEquivalents == NULL || fCommaEquivalents == NULL || fOtherGroupingSeparators == NULL || fDashEquivalents == NULL ||
- fStrictDotEquivalents == NULL || fStrictCommaEquivalents == NULL || fStrictOtherGroupingSeparators == NULL || fStrictDashEquivalents == NULL ||
- fDefaultGroupingSeparators == NULL || fStrictOtherGroupingSeparators == NULL ||
- fMinusSigns == NULL || fPlusSigns == NULL) {
- cleanup();
- status = U_MEMORY_ALLOCATION_ERROR;
- return;
- }
-
- initUnicodeSet(
- gMinusSigns,
- UPRV_LENGTHOF(gMinusSigns),
- fMinusSigns);
- initUnicodeSet(
- gPlusSigns,
- UPRV_LENGTHOF(gPlusSigns),
- fPlusSigns);
-
- // Freeze all the sets
- fDotEquivalents->freeze();
- fCommaEquivalents->freeze();
- fOtherGroupingSeparators->freeze();
- fDashEquivalents->freeze();
- fStrictDotEquivalents->freeze();
- fStrictCommaEquivalents->freeze();
- fStrictOtherGroupingSeparators->freeze();
- fStrictDashEquivalents->freeze();
- fDefaultGroupingSeparators->freeze();
- fStrictDefaultGroupingSeparators->freeze();
- fMinusSigns->freeze();
- fPlusSigns->freeze();
-}
-
-DecimalFormatStaticSets::~DecimalFormatStaticSets() {
- cleanup();
-}
-
-void DecimalFormatStaticSets::cleanup() { // Be sure to clean up newly added fields!
- delete fDotEquivalents; fDotEquivalents = NULL;
- delete fCommaEquivalents; fCommaEquivalents = NULL;
- delete fOtherGroupingSeparators; fOtherGroupingSeparators = NULL;
- delete fDashEquivalents; fDashEquivalents = NULL;
- delete fStrictDotEquivalents; fStrictDotEquivalents = NULL;
- delete fStrictCommaEquivalents; fStrictCommaEquivalents = NULL;
- delete fStrictOtherGroupingSeparators; fStrictOtherGroupingSeparators = NULL;
- delete fStrictDashEquivalents; fStrictDashEquivalents = NULL;
- delete fDefaultGroupingSeparators; fDefaultGroupingSeparators = NULL;
- delete fStrictDefaultGroupingSeparators; fStrictDefaultGroupingSeparators = NULL;
- delete fStrictOtherGroupingSeparators; fStrictOtherGroupingSeparators = NULL;
- delete fMinusSigns; fMinusSigns = NULL;
- delete fPlusSigns; fPlusSigns = NULL;
-}
-
-static DecimalFormatStaticSets *gStaticSets;
-static icu::UInitOnce gStaticSetsInitOnce = U_INITONCE_INITIALIZER;
-
-
-//------------------------------------------------------------------------------
-//
-// decfmt_cleanup Memory cleanup function, free/delete all
-// cached memory. Called by ICU's u_cleanup() function.
-//
-//------------------------------------------------------------------------------
-U_CDECL_BEGIN
-static UBool U_CALLCONV
-decimfmt_cleanup(void)
-{
- delete gStaticSets;
- gStaticSets = NULL;
- gStaticSetsInitOnce.reset();
- return TRUE;
-}
-
-static void U_CALLCONV initSets(UErrorCode &status) {
- U_ASSERT(gStaticSets == NULL);
- ucln_i18n_registerCleanup(UCLN_I18N_DECFMT, decimfmt_cleanup);
- gStaticSets = new DecimalFormatStaticSets(status);
- if (U_FAILURE(status)) {
- delete gStaticSets;
- gStaticSets = NULL;
- return;
- }
- if (gStaticSets == NULL) {
- status = U_MEMORY_ALLOCATION_ERROR;
- }
-}
-U_CDECL_END
-
-const DecimalFormatStaticSets *DecimalFormatStaticSets::getStaticSets(UErrorCode &status) {
- umtx_initOnce(gStaticSetsInitOnce, initSets, status);
- return gStaticSets;
-}
-
-
-const UnicodeSet *DecimalFormatStaticSets::getSimilarDecimals(UChar32 decimal, UBool strictParse)
-{
- UErrorCode status = U_ZERO_ERROR;
- umtx_initOnce(gStaticSetsInitOnce, initSets, status);
- if (U_FAILURE(status)) {
- return NULL;
- }
-
- if (gStaticSets->fDotEquivalents->contains(decimal)) {
- return strictParse ? gStaticSets->fStrictDotEquivalents : gStaticSets->fDotEquivalents;
- }
-
- if (gStaticSets->fCommaEquivalents->contains(decimal)) {
- return strictParse ? gStaticSets->fStrictCommaEquivalents : gStaticSets->fCommaEquivalents;
- }
-
- // if there is no match, return NULL
- return NULL;
-}
-
-
-U_NAMESPACE_END
-#endif // !UCONFIG_NO_FORMATTING
diff --git a/Build/source/libs/icu/icu-src/source/i18n/decfmtst.h b/Build/source/libs/icu/icu-src/source/i18n/decfmtst.h
deleted file mode 100644
index 63ae50c6df9..00000000000
--- a/Build/source/libs/icu/icu-src/source/i18n/decfmtst.h
+++ /dev/null
@@ -1,69 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
-*******************************************************************************
-* Copyright (C) 2009-2016, International Business Machines Corporation and
-* others. All Rights Reserved.
-*******************************************************************************
-*
-* This file contains declarations for the class DecimalFormatStaticSets
-*
-* DecimalFormatStaticSets holds the UnicodeSets that are needed for lenient
-* parsing of decimal and group separators.
-********************************************************************************
-*/
-
-#ifndef DECFMTST_H
-#define DECFMTST_H
-
-#include "unicode/utypes.h"
-
-#if !UCONFIG_NO_FORMATTING
-
-#include "unicode/uobject.h"
-
-U_NAMESPACE_BEGIN
-
-class UnicodeSet;
-
-
-class DecimalFormatStaticSets : public UMemory
-{
-public:
- // Constructor and Destructor not for general use.
- // Public to permit access from plain C implementation functions.
- DecimalFormatStaticSets(UErrorCode &status);
- ~DecimalFormatStaticSets();
-
- /**
- * Return a pointer to a lazy-initialized singleton instance of this class.
- */
- static const DecimalFormatStaticSets *getStaticSets(UErrorCode &status);
-
- static const UnicodeSet *getSimilarDecimals(UChar32 decimal, UBool strictParse);
-
- UnicodeSet *fDotEquivalents;
- UnicodeSet *fCommaEquivalents;
- UnicodeSet *fOtherGroupingSeparators;
- UnicodeSet *fDashEquivalents;
-
- UnicodeSet *fStrictDotEquivalents;
- UnicodeSet *fStrictCommaEquivalents;
- UnicodeSet *fStrictOtherGroupingSeparators;
- UnicodeSet *fStrictDashEquivalents;
-
- UnicodeSet *fDefaultGroupingSeparators;
- UnicodeSet *fStrictDefaultGroupingSeparators;
-
- UnicodeSet *fMinusSigns;
- UnicodeSet *fPlusSigns;
-private:
- void cleanup();
-
-};
-
-
-U_NAMESPACE_END
-
-#endif // !UCONFIG_NO_FORMATTING
-#endif // DECFMTST_H
diff --git a/Build/source/libs/icu/icu-src/source/i18n/decimalformatpattern.cpp b/Build/source/libs/icu/icu-src/source/i18n/decimalformatpattern.cpp
deleted file mode 100644
index 4ee5e334411..00000000000
--- a/Build/source/libs/icu/icu-src/source/i18n/decimalformatpattern.cpp
+++ /dev/null
@@ -1,656 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
-*******************************************************************************
-* Copyright (C) 1997-2015, International Business Machines Corporation and *
-* others. All Rights Reserved. *
-*******************************************************************************
-*/
-
-#include "uassert.h"
-#include "decimalformatpattern.h"
-
-#if !UCONFIG_NO_FORMATTING
-
-#include "unicode/dcfmtsym.h"
-#include "unicode/format.h"
-#include "unicode/utf16.h"
-#include "decimalformatpatternimpl.h"
-
-
-#ifdef FMT_DEBUG
-#define debug(x) printf("%s:%d: %s\n", __FILE__,__LINE__, x);
-#else
-#define debug(x)
-#endif
-
-U_NAMESPACE_BEGIN
-
-// TODO: Travis Keep: Copied from numfmt.cpp
-static int32_t kDoubleIntegerDigits = 309;
-static int32_t kDoubleFractionDigits = 340;
-
-
-// TODO: Travis Keep: Copied from numfmt.cpp
-static int32_t gDefaultMaxIntegerDigits = 2000000000;
-
-// TODO: Travis Keep: This function was copied from format.cpp
-static void syntaxError(const UnicodeString& pattern,
- int32_t pos,
- UParseError& parseError) {
- parseError.offset = pos;
- parseError.line=0; // we are not using line number
-
- // for pre-context
- int32_t start = (pos < U_PARSE_CONTEXT_LEN)? 0 : (pos - (U_PARSE_CONTEXT_LEN-1
- /* subtract 1 so that we have room for null*/));
- int32_t stop = pos;
- pattern.extract(start,stop-start,parseError.preContext,0);
- //null terminate the buffer
- parseError.preContext[stop-start] = 0;
-
- //for post-context
- start = pattern.moveIndex32(pos, 1);
- stop = pos + U_PARSE_CONTEXT_LEN - 1;
- if (stop > pattern.length()) {
- stop = pattern.length();
- }
- pattern.extract(start, stop - start, parseError.postContext, 0);
- //null terminate the buffer
- parseError.postContext[stop-start]= 0;
-}
-
-DecimalFormatPattern::DecimalFormatPattern()
- : fMinimumIntegerDigits(1),
- fMaximumIntegerDigits(gDefaultMaxIntegerDigits),
- fMinimumFractionDigits(0),
- fMaximumFractionDigits(3),
- fUseSignificantDigits(FALSE),
- fMinimumSignificantDigits(1),
- fMaximumSignificantDigits(6),
- fUseExponentialNotation(FALSE),
- fMinExponentDigits(0),
- fExponentSignAlwaysShown(FALSE),
- fCurrencySignCount(fgCurrencySignCountZero),
- fGroupingUsed(TRUE),
- fGroupingSize(0),
- fGroupingSize2(0),
- fMultiplier(1),
- fDecimalSeparatorAlwaysShown(FALSE),
- fFormatWidth(0),
- fRoundingIncrementUsed(FALSE),
- fRoundingIncrement(),
- fPad(kDefaultPad),
- fNegPatternsBogus(TRUE),
- fPosPatternsBogus(TRUE),
- fNegPrefixPattern(),
- fNegSuffixPattern(),
- fPosPrefixPattern(),
- fPosSuffixPattern(),
- fPadPosition(DecimalFormatPattern::kPadBeforePrefix) {
-}
-
-
-DecimalFormatPatternParser::DecimalFormatPatternParser() :
- fZeroDigit(kPatternZeroDigit),
- fSigDigit(kPatternSignificantDigit),
- fGroupingSeparator((UChar)kPatternGroupingSeparator),
- fDecimalSeparator((UChar)kPatternDecimalSeparator),
- fPercent((UChar)kPatternPercent),
- fPerMill((UChar)kPatternPerMill),
- fDigit((UChar)kPatternDigit),
- fSeparator((UChar)kPatternSeparator),
- fExponent((UChar)kPatternExponent),
- fPlus((UChar)kPatternPlus),
- fMinus((UChar)kPatternMinus),
- fPadEscape((UChar)kPatternPadEscape) {
-}
-
-void DecimalFormatPatternParser::useSymbols(
- const DecimalFormatSymbols& symbols) {
- fZeroDigit = symbols.getConstSymbol(
- DecimalFormatSymbols::kZeroDigitSymbol).char32At(0);
- fSigDigit = symbols.getConstSymbol(
- DecimalFormatSymbols::kSignificantDigitSymbol).char32At(0);
- fGroupingSeparator = symbols.getConstSymbol(
- DecimalFormatSymbols::kGroupingSeparatorSymbol);
- fDecimalSeparator = symbols.getConstSymbol(
- DecimalFormatSymbols::kDecimalSeparatorSymbol);
- fPercent = symbols.getConstSymbol(
- DecimalFormatSymbols::kPercentSymbol);
- fPerMill = symbols.getConstSymbol(
- DecimalFormatSymbols::kPerMillSymbol);
- fDigit = symbols.getConstSymbol(
- DecimalFormatSymbols::kDigitSymbol);
- fSeparator = symbols.getConstSymbol(
- DecimalFormatSymbols::kPatternSeparatorSymbol);
- fExponent = symbols.getConstSymbol(
- DecimalFormatSymbols::kExponentialSymbol);
- fPlus = symbols.getConstSymbol(
- DecimalFormatSymbols::kPlusSignSymbol);
- fMinus = symbols.getConstSymbol(
- DecimalFormatSymbols::kMinusSignSymbol);
- fPadEscape = symbols.getConstSymbol(
- DecimalFormatSymbols::kPadEscapeSymbol);
-}
-
-void
-DecimalFormatPatternParser::applyPatternWithoutExpandAffix(
- const UnicodeString& pattern,
- DecimalFormatPattern& out,
- UParseError& parseError,
- UErrorCode& status) {
- if (U_FAILURE(status))
- {
- return;
- }
- out = DecimalFormatPattern();
-
- // Clear error struct
- parseError.offset = -1;
- parseError.preContext[0] = parseError.postContext[0] = (UChar)0;
-
- // TODO: Travis Keep: This won't always work.
- UChar nineDigit = (UChar)(fZeroDigit + 9);
- int32_t digitLen = fDigit.length();
- int32_t groupSepLen = fGroupingSeparator.length();
- int32_t decimalSepLen = fDecimalSeparator.length();
-
- int32_t pos = 0;
- int32_t patLen = pattern.length();
- // Part 0 is the positive pattern. Part 1, if present, is the negative
- // pattern.
- for (int32_t part=0; part<2 && pos<patLen; ++part) {
- // The subpart ranges from 0 to 4: 0=pattern proper, 1=prefix,
- // 2=suffix, 3=prefix in quote, 4=suffix in quote. Subpart 0 is
- // between the prefix and suffix, and consists of pattern
- // characters. In the prefix and suffix, percent, perMill, and
- // currency symbols are recognized and translated.
- int32_t subpart = 1, sub0Start = 0, sub0Limit = 0, sub2Limit = 0;
-
- // It's important that we don't change any fields of this object
- // prematurely. We set the following variables for the multiplier,
- // grouping, etc., and then only change the actual object fields if
- // everything parses correctly. This also lets us register
- // the data from part 0 and ignore the part 1, except for the
- // prefix and suffix.
- UnicodeString prefix;
- UnicodeString suffix;
- int32_t decimalPos = -1;
- int32_t multiplier = 1;
- int32_t digitLeftCount = 0, zeroDigitCount = 0, digitRightCount = 0, sigDigitCount = 0;
- int8_t groupingCount = -1;
- int8_t groupingCount2 = -1;
- int32_t padPos = -1;
- UChar32 padChar = 0;
- int32_t roundingPos = -1;
- DigitList roundingInc;
- int8_t expDigits = -1;
- UBool expSignAlways = FALSE;
-
- // The affix is either the prefix or the suffix.
- UnicodeString* affix = &prefix;
-
- int32_t start = pos;
- UBool isPartDone = FALSE;
- UChar32 ch;
-
- for (; !isPartDone && pos < patLen; ) {
- // Todo: account for surrogate pairs
- ch = pattern.char32At(pos);
- switch (subpart) {
- case 0: // Pattern proper subpart (between prefix & suffix)
- // Process the digits, decimal, and grouping characters. We
- // record five pieces of information. We expect the digits
- // to occur in the pattern ####00.00####, and we record the
- // number of left digits, zero (central) digits, and right
- // digits. The position of the last grouping character is
- // recorded (should be somewhere within the first two blocks
- // of characters), as is the position of the decimal point,
- // if any (should be in the zero digits). If there is no
- // decimal point, then there should be no right digits.
- if (pattern.compare(pos, digitLen, fDigit) == 0) {
- if (zeroDigitCount > 0 || sigDigitCount > 0) {
- ++digitRightCount;
- } else {
- ++digitLeftCount;
- }
- if (groupingCount >= 0 && decimalPos < 0) {
- ++groupingCount;
- }
- pos += digitLen;
- } else if ((ch >= fZeroDigit && ch <= nineDigit) ||
- ch == fSigDigit) {
- if (digitRightCount > 0) {
- // Unexpected '0'
- debug("Unexpected '0'")
- status = U_UNEXPECTED_TOKEN;
- syntaxError(pattern,pos,parseError);
- return;
- }
- if (ch == fSigDigit) {
- ++sigDigitCount;
- } else {
- if (ch != fZeroDigit && roundingPos < 0) {
- roundingPos = digitLeftCount + zeroDigitCount;
- }
- if (roundingPos >= 0) {
- roundingInc.append((char)(ch - fZeroDigit + '0'));
- }
- ++zeroDigitCount;
- }
- if (groupingCount >= 0 && decimalPos < 0) {
- ++groupingCount;
- }
- pos += U16_LENGTH(ch);
- } else if (pattern.compare(pos, groupSepLen, fGroupingSeparator) == 0) {
- if (decimalPos >= 0) {
- // Grouping separator after decimal
- debug("Grouping separator after decimal")
- status = U_UNEXPECTED_TOKEN;
- syntaxError(pattern,pos,parseError);
- return;
- }
- groupingCount2 = groupingCount;
- groupingCount = 0;
- pos += groupSepLen;
- } else if (pattern.compare(pos, decimalSepLen, fDecimalSeparator) == 0) {
- if (decimalPos >= 0) {
- // Multiple decimal separators
- debug("Multiple decimal separators")
- status = U_MULTIPLE_DECIMAL_SEPARATORS;
- syntaxError(pattern,pos,parseError);
- return;
- }
- // Intentionally incorporate the digitRightCount,
- // even though it is illegal for this to be > 0
- // at this point. We check pattern syntax below.
- decimalPos = digitLeftCount + zeroDigitCount + digitRightCount;
- pos += decimalSepLen;
- } else {
- if (pattern.compare(pos, fExponent.length(), fExponent) == 0) {
- if (expDigits >= 0) {
- // Multiple exponential symbols
- debug("Multiple exponential symbols")
- status = U_MULTIPLE_EXPONENTIAL_SYMBOLS;
- syntaxError(pattern,pos,parseError);
- return;
- }
- if (groupingCount >= 0) {
- // Grouping separator in exponential pattern
- debug("Grouping separator in exponential pattern")
- status = U_MALFORMED_EXPONENTIAL_PATTERN;
- syntaxError(pattern,pos,parseError);
- return;
- }
- pos += fExponent.length();
- // Check for positive prefix
- if (pos < patLen
- && pattern.compare(pos, fPlus.length(), fPlus) == 0) {
- expSignAlways = TRUE;
- pos += fPlus.length();
- }
- // Use lookahead to parse out the exponential part of the
- // pattern, then jump into suffix subpart.
- expDigits = 0;
- while (pos < patLen &&
- pattern.char32At(pos) == fZeroDigit) {
- ++expDigits;
- pos += U16_LENGTH(fZeroDigit);
- }
-
- // 1. Require at least one mantissa pattern digit
- // 2. Disallow "#+ @" in mantissa
- // 3. Require at least one exponent pattern digit
- if (((digitLeftCount + zeroDigitCount) < 1 &&
- (sigDigitCount + digitRightCount) < 1) ||
- (sigDigitCount > 0 && digitLeftCount > 0) ||
- expDigits < 1) {
- // Malformed exponential pattern
- debug("Malformed exponential pattern")
- status = U_MALFORMED_EXPONENTIAL_PATTERN;
- syntaxError(pattern,pos,parseError);
- return;
- }
- }
- // Transition to suffix subpart
- subpart = 2; // suffix subpart
- affix = &suffix;
- sub0Limit = pos;
- continue;
- }
- break;
- case 1: // Prefix subpart
- case 2: // Suffix subpart
- // Process the prefix / suffix characters
- // Process unquoted characters seen in prefix or suffix
- // subpart.
-
- // Several syntax characters implicitly begins the
- // next subpart if we are in the prefix; otherwise
- // they are illegal if unquoted.
- if (!pattern.compare(pos, digitLen, fDigit) ||
- !pattern.compare(pos, groupSepLen, fGroupingSeparator) ||
- !pattern.compare(pos, decimalSepLen, fDecimalSeparator) ||
- (ch >= fZeroDigit && ch <= nineDigit) ||
- ch == fSigDigit) {
- if (subpart == 1) { // prefix subpart
- subpart = 0; // pattern proper subpart
- sub0Start = pos; // Reprocess this character
- continue;
- } else {
- status = U_UNQUOTED_SPECIAL;
- syntaxError(pattern,pos,parseError);
- return;
- }
- } else if (ch == kCurrencySign) {
- affix->append(kQuote); // Encode currency
- // Use lookahead to determine if the currency sign is
- // doubled or not.
- U_ASSERT(U16_LENGTH(kCurrencySign) == 1);
- if ((pos+1) < pattern.length() && pattern[pos+1] == kCurrencySign) {
- affix->append(kCurrencySign);
- ++pos; // Skip over the doubled character
- if ((pos+1) < pattern.length() &&
- pattern[pos+1] == kCurrencySign) {
- affix->append(kCurrencySign);
- ++pos; // Skip over the doubled character
- out.fCurrencySignCount = fgCurrencySignCountInPluralFormat;
- } else {
- out.fCurrencySignCount = fgCurrencySignCountInISOFormat;
- }
- } else {
- out.fCurrencySignCount = fgCurrencySignCountInSymbolFormat;
- }
- // Fall through to append(ch)
- } else if (ch == kQuote) {
- // A quote outside quotes indicates either the opening
- // quote or two quotes, which is a quote literal. That is,
- // we have the first quote in 'do' or o''clock.
- U_ASSERT(U16_LENGTH(kQuote) == 1);
- ++pos;
- if (pos < pattern.length() && pattern[pos] == kQuote) {
- affix->append(kQuote); // Encode quote
- // Fall through to append(ch)
- } else {
- subpart += 2; // open quote
- continue;
- }
- } else if (pattern.compare(pos, fSeparator.length(), fSeparator) == 0) {
- // Don't allow separators in the prefix, and don't allow
- // separators in the second pattern (part == 1).
- if (subpart == 1 || part == 1) {
- // Unexpected separator
- debug("Unexpected separator")
- status = U_UNEXPECTED_TOKEN;
- syntaxError(pattern,pos,parseError);
- return;
- }
- sub2Limit = pos;
- isPartDone = TRUE; // Go to next part
- pos += fSeparator.length();
- break;
- } else if (pattern.compare(pos, fPercent.length(), fPercent) == 0) {
- // Next handle characters which are appended directly.
- if (multiplier != 1) {
- // Too many percent/perMill characters
- debug("Too many percent characters")
- status = U_MULTIPLE_PERCENT_SYMBOLS;
- syntaxError(pattern,pos,parseError);
- return;
- }
- affix->append(kQuote); // Encode percent/perMill
- affix->append(kPatternPercent); // Use unlocalized pattern char
- multiplier = 100;
- pos += fPercent.length();
- break;
- } else if (pattern.compare(pos, fPerMill.length(), fPerMill) == 0) {
- // Next handle characters which are appended directly.
- if (multiplier != 1) {
- // Too many percent/perMill characters
- debug("Too many perMill characters")
- status = U_MULTIPLE_PERMILL_SYMBOLS;
- syntaxError(pattern,pos,parseError);
- return;
- }
- affix->append(kQuote); // Encode percent/perMill
- affix->append(kPatternPerMill); // Use unlocalized pattern char
- multiplier = 1000;
- pos += fPerMill.length();
- break;
- } else if (pattern.compare(pos, fPadEscape.length(), fPadEscape) == 0) {
- if (padPos >= 0 || // Multiple pad specifiers
- (pos+1) == pattern.length()) { // Nothing after padEscape
- debug("Multiple pad specifiers")
- status = U_MULTIPLE_PAD_SPECIFIERS;
- syntaxError(pattern,pos,parseError);
- return;
- }
- padPos = pos;
- pos += fPadEscape.length();
- padChar = pattern.char32At(pos);
- pos += U16_LENGTH(padChar);
- break;
- } else if (pattern.compare(pos, fMinus.length(), fMinus) == 0) {
- affix->append(kQuote); // Encode minus
- affix->append(kPatternMinus);
- pos += fMinus.length();
- break;
- } else if (pattern.compare(pos, fPlus.length(), fPlus) == 0) {
- affix->append(kQuote); // Encode plus
- affix->append(kPatternPlus);
- pos += fPlus.length();
- break;
- }
- // Unquoted, non-special characters fall through to here, as
- // well as other code which needs to append something to the
- // affix.
- affix->append(ch);
- pos += U16_LENGTH(ch);
- break;
- case 3: // Prefix subpart, in quote
- case 4: // Suffix subpart, in quote
- // A quote within quotes indicates either the closing
- // quote or two quotes, which is a quote literal. That is,
- // we have the second quote in 'do' or 'don''t'.
- if (ch == kQuote) {
- ++pos;
- if (pos < pattern.length() && pattern[pos] == kQuote) {
- affix->append(kQuote); // Encode quote
- // Fall through to append(ch)
- } else {
- subpart -= 2; // close quote
- continue;
- }
- }
- affix->append(ch);
- pos += U16_LENGTH(ch);
- break;
- }
- }
-
- if (sub0Limit == 0) {
- sub0Limit = pattern.length();
- }
-
- if (sub2Limit == 0) {
- sub2Limit = pattern.length();
- }
-
- /* Handle patterns with no '0' pattern character. These patterns
- * are legal, but must be recodified to make sense. "##.###" ->
- * "#0.###". ".###" -> ".0##".
- *
- * We allow patterns of the form "####" to produce a zeroDigitCount
- * of zero (got that?); although this seems like it might make it
- * possible for format() to produce empty strings, format() checks
- * for this condition and outputs a zero digit in this situation.
- * Having a zeroDigitCount of zero yields a minimum integer digits
- * of zero, which allows proper round-trip patterns. We don't want
- * "#" to become "#0" when toPattern() is called (even though that's
- * what it really is, semantically).
- */
- if (zeroDigitCount == 0 && sigDigitCount == 0 &&
- digitLeftCount > 0 && decimalPos >= 0) {
- // Handle "###.###" and "###." and ".###"
- int n = decimalPos;
- if (n == 0)
- ++n; // Handle ".###"
- digitRightCount = digitLeftCount - n;
- digitLeftCount = n - 1;
- zeroDigitCount = 1;
- }
-
- // Do syntax checking on the digits, decimal points, and quotes.
- if ((decimalPos < 0 && digitRightCount > 0 && sigDigitCount == 0) ||
- (decimalPos >= 0 &&
- (sigDigitCount > 0 ||
- decimalPos < digitLeftCount ||
- decimalPos > (digitLeftCount + zeroDigitCount))) ||
- groupingCount == 0 || groupingCount2 == 0 ||
- (sigDigitCount > 0 && zeroDigitCount > 0) ||
- subpart > 2)
- { // subpart > 2 == unmatched quote
- debug("Syntax error")
- status = U_PATTERN_SYNTAX_ERROR;
- syntaxError(pattern,pos,parseError);
- return;
- }
-
- // Make sure pad is at legal position before or after affix.
- if (padPos >= 0) {
- if (padPos == start) {
- padPos = DecimalFormatPattern::kPadBeforePrefix;
- } else if (padPos+2 == sub0Start) {
- padPos = DecimalFormatPattern::kPadAfterPrefix;
- } else if (padPos == sub0Limit) {
- padPos = DecimalFormatPattern::kPadBeforeSuffix;
- } else if (padPos+2 == sub2Limit) {
- padPos = DecimalFormatPattern::kPadAfterSuffix;
- } else {
- // Illegal pad position
- debug("Illegal pad position")
- status = U_ILLEGAL_PAD_POSITION;
- syntaxError(pattern,pos,parseError);
- return;
- }
- }
-
- if (part == 0) {
- out.fPosPatternsBogus = FALSE;
- out.fPosPrefixPattern = prefix;
- out.fPosSuffixPattern = suffix;
- out.fNegPatternsBogus = TRUE;
- out.fNegPrefixPattern.remove();
- out.fNegSuffixPattern.remove();
-
- out.fUseExponentialNotation = (expDigits >= 0);
- if (out.fUseExponentialNotation) {
- out.fMinExponentDigits = expDigits;
- }
- out.fExponentSignAlwaysShown = expSignAlways;
- int32_t digitTotalCount = digitLeftCount + zeroDigitCount + digitRightCount;
- // The effectiveDecimalPos is the position the decimal is at or
- // would be at if there is no decimal. Note that if
- // decimalPos<0, then digitTotalCount == digitLeftCount +
- // zeroDigitCount.
- int32_t effectiveDecimalPos = decimalPos >= 0 ? decimalPos : digitTotalCount;
- UBool isSigDig = (sigDigitCount > 0);
- out.fUseSignificantDigits = isSigDig;
- if (isSigDig) {
- out.fMinimumSignificantDigits = sigDigitCount;
- out.fMaximumSignificantDigits = sigDigitCount + digitRightCount;
- } else {
- int32_t minInt = effectiveDecimalPos - digitLeftCount;
- out.fMinimumIntegerDigits = minInt;
- out.fMaximumIntegerDigits = out.fUseExponentialNotation
- ? digitLeftCount + out.fMinimumIntegerDigits
- : gDefaultMaxIntegerDigits;
- out.fMaximumFractionDigits = decimalPos >= 0
- ? (digitTotalCount - decimalPos) : 0;
- out.fMinimumFractionDigits = decimalPos >= 0
- ? (digitLeftCount + zeroDigitCount - decimalPos) : 0;
- }
- out.fGroupingUsed = groupingCount > 0;
- out.fGroupingSize = (groupingCount > 0) ? groupingCount : 0;
- out.fGroupingSize2 = (groupingCount2 > 0 && groupingCount2 != groupingCount)
- ? groupingCount2 : 0;
- out.fMultiplier = multiplier;
- out.fDecimalSeparatorAlwaysShown = decimalPos == 0
- || decimalPos == digitTotalCount;
- if (padPos >= 0) {
- out.fPadPosition = (DecimalFormatPattern::EPadPosition) padPos;
- // To compute the format width, first set up sub0Limit -
- // sub0Start. Add in prefix/suffix length later.
-
- // fFormatWidth = prefix.length() + suffix.length() +
- // sub0Limit - sub0Start;
- out.fFormatWidth = sub0Limit - sub0Start;
- out.fPad = padChar;
- } else {
- out.fFormatWidth = 0;
- }
- if (roundingPos >= 0) {
- out.fRoundingIncrementUsed = TRUE;
- roundingInc.setDecimalAt(effectiveDecimalPos - roundingPos);
- out.fRoundingIncrement = roundingInc;
- } else {
- out.fRoundingIncrementUsed = FALSE;
- }
- } else {
- out.fNegPatternsBogus = FALSE;
- out.fNegPrefixPattern = prefix;
- out.fNegSuffixPattern = suffix;
- }
- }
-
- if (pattern.length() == 0) {
- out.fNegPatternsBogus = TRUE;
- out.fNegPrefixPattern.remove();
- out.fNegSuffixPattern.remove();
- out.fPosPatternsBogus = FALSE;
- out.fPosPrefixPattern.remove();
- out.fPosSuffixPattern.remove();
-
- out.fMinimumIntegerDigits = 0;
- out.fMaximumIntegerDigits = kDoubleIntegerDigits;
- out.fMinimumFractionDigits = 0;
- out.fMaximumFractionDigits = kDoubleFractionDigits;
-
- out.fUseExponentialNotation = FALSE;
- out.fCurrencySignCount = fgCurrencySignCountZero;
- out.fGroupingUsed = FALSE;
- out.fGroupingSize = 0;
- out.fGroupingSize2 = 0;
- out.fMultiplier = 1;
- out.fDecimalSeparatorAlwaysShown = FALSE;
- out.fFormatWidth = 0;
- out.fRoundingIncrementUsed = FALSE;
- }
-
- // If there was no negative pattern, or if the negative pattern is
- // identical to the positive pattern, then prepend the minus sign to the
- // positive pattern to form the negative pattern.
- if (out.fNegPatternsBogus ||
- (out.fNegPrefixPattern == out.fPosPrefixPattern
- && out.fNegSuffixPattern == out.fPosSuffixPattern)) {
- out.fNegPatternsBogus = FALSE;
- out.fNegSuffixPattern = out.fPosSuffixPattern;
- out.fNegPrefixPattern.remove();
- out.fNegPrefixPattern.append(kQuote).append(kPatternMinus)
- .append(out.fPosPrefixPattern);
- }
- // TODO: Deprecate/Remove out.fNegSuffixPattern and 3 other fields.
- AffixPattern::parseAffixString(
- out.fNegSuffixPattern, out.fNegSuffixAffix, status);
- AffixPattern::parseAffixString(
- out.fPosSuffixPattern, out.fPosSuffixAffix, status);
- AffixPattern::parseAffixString(
- out.fNegPrefixPattern, out.fNegPrefixAffix, status);
- AffixPattern::parseAffixString(
- out.fPosPrefixPattern, out.fPosPrefixAffix, status);
-}
-
-U_NAMESPACE_END
-
-#endif /* !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/decimalformatpattern.h b/Build/source/libs/icu/icu-src/source/i18n/decimalformatpattern.h
deleted file mode 100644
index fcb55161e63..00000000000
--- a/Build/source/libs/icu/icu-src/source/i18n/decimalformatpattern.h
+++ /dev/null
@@ -1,106 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
-*******************************************************************************
-* Copyright (C) 1997-2015, International Business Machines Corporation and *
-* others. All Rights Reserved. *
-*******************************************************************************
-*/
-#ifndef _DECIMAL_FORMAT_PATTERN
-#define _DECIMAL_FORMAT_PATTERN
-
-#include "unicode/utypes.h"
-
-#if !UCONFIG_NO_FORMATTING
-
-#include "unicode/uobject.h"
-#include "unicode/unistr.h"
-#include "digitlst.h"
-#include "affixpatternparser.h"
-
-U_NAMESPACE_BEGIN
-
-// currency sign count
-enum CurrencySignCount {
- fgCurrencySignCountZero,
- fgCurrencySignCountInSymbolFormat,
- fgCurrencySignCountInISOFormat,
- fgCurrencySignCountInPluralFormat
-};
-
-class DecimalFormatSymbols;
-
-struct DecimalFormatPattern : public UMemory {
- enum EPadPosition {
- kPadBeforePrefix,
- kPadAfterPrefix,
- kPadBeforeSuffix,
- kPadAfterSuffix
- };
-
- DecimalFormatPattern();
-
- int32_t fMinimumIntegerDigits;
- int32_t fMaximumIntegerDigits;
- int32_t fMinimumFractionDigits;
- int32_t fMaximumFractionDigits;
- UBool fUseSignificantDigits;
- int32_t fMinimumSignificantDigits;
- int32_t fMaximumSignificantDigits;
- UBool fUseExponentialNotation;
- int32_t fMinExponentDigits;
- UBool fExponentSignAlwaysShown;
- int32_t fCurrencySignCount;
- UBool fGroupingUsed;
- int32_t fGroupingSize;
- int32_t fGroupingSize2;
- int32_t fMultiplier;
- UBool fDecimalSeparatorAlwaysShown;
- int32_t fFormatWidth;
- UBool fRoundingIncrementUsed;
- DigitList fRoundingIncrement;
- UChar32 fPad;
- UBool fNegPatternsBogus;
- UBool fPosPatternsBogus;
- UnicodeString fNegPrefixPattern;
- UnicodeString fNegSuffixPattern;
- UnicodeString fPosPrefixPattern;
- UnicodeString fPosSuffixPattern;
- AffixPattern fNegPrefixAffix;
- AffixPattern fNegSuffixAffix;
- AffixPattern fPosPrefixAffix;
- AffixPattern fPosSuffixAffix;
- EPadPosition fPadPosition;
-};
-
-class DecimalFormatPatternParser : public UMemory {
- public:
- DecimalFormatPatternParser();
- void useSymbols(const DecimalFormatSymbols& symbols);
-
- void applyPatternWithoutExpandAffix(
- const UnicodeString& pattern,
- DecimalFormatPattern& out,
- UParseError& parseError,
- UErrorCode& status);
- private:
- DecimalFormatPatternParser(const DecimalFormatPatternParser&);
- DecimalFormatPatternParser& operator=(DecimalFormatPatternParser& rhs);
- UChar32 fZeroDigit;
- UChar32 fSigDigit;
- UnicodeString fGroupingSeparator;
- UnicodeString fDecimalSeparator;
- UnicodeString fPercent;
- UnicodeString fPerMill;
- UnicodeString fDigit;
- UnicodeString fSeparator;
- UnicodeString fExponent;
- UnicodeString fPlus;
- UnicodeString fMinus;
- UnicodeString fPadEscape;
-};
-
-U_NAMESPACE_END
-
-#endif /* !UCONFIG_NO_FORMATTING */
-#endif
diff --git a/Build/source/libs/icu/icu-src/source/i18n/decimalformatpatternimpl.h b/Build/source/libs/icu/icu-src/source/i18n/decimalformatpatternimpl.h
deleted file mode 100644
index 8cecc8cca02..00000000000
--- a/Build/source/libs/icu/icu-src/source/i18n/decimalformatpatternimpl.h
+++ /dev/null
@@ -1,35 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
-********************************************************************************
-* Copyright (C) 2015, International Business Machines
-* Corporation and others. All Rights Reserved.
-********************************************************************************
-*
-* File decimalformatpatternimpl.h
-********************************************************************************
-*/
-
-#ifndef DECIMALFORMATPATTERNIMPL_H
-#define DECIMALFORMATPATTERNIMPL_H
-
-#include "unicode/utypes.h"
-
-#define kPatternZeroDigit ((UChar)0x0030) /*'0'*/
-#define kPatternSignificantDigit ((UChar)0x0040) /*'@'*/
-#define kPatternGroupingSeparator ((UChar)0x002C) /*','*/
-#define kPatternDecimalSeparator ((UChar)0x002E) /*'.'*/
-#define kPatternPerMill ((UChar)0x2030)
-#define kPatternPercent ((UChar)0x0025) /*'%'*/
-#define kPatternDigit ((UChar)0x0023) /*'#'*/
-#define kPatternSeparator ((UChar)0x003B) /*';'*/
-#define kPatternExponent ((UChar)0x0045) /*'E'*/
-#define kPatternPlus ((UChar)0x002B) /*'+'*/
-#define kPatternMinus ((UChar)0x002D) /*'-'*/
-#define kPatternPadEscape ((UChar)0x002A) /*'*'*/
-#define kQuote ((UChar)0x0027) /*'\''*/
-
-#define kCurrencySign ((UChar)0x00A4)
-#define kDefaultPad ((UChar)0x0020) /* */
-
-#endif
diff --git a/Build/source/libs/icu/icu-src/source/i18n/decimfmt.cpp b/Build/source/libs/icu/icu-src/source/i18n/decimfmt.cpp
index 3861db3df68..edd8910d9d4 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/decimfmt.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/decimfmt.cpp
@@ -1,3295 +1,1399 @@
-// © 2016 and later: Unicode, Inc. and others.
+// © 2018 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
-/*
-*******************************************************************************
-* Copyright (C) 1997-2015, International Business Machines Corporation and *
-* others. All Rights Reserved. *
-*******************************************************************************
-*
-* File DECIMFMT.CPP
-*
-* Modification History:
-*
-* Date Name Description
-* 02/19/97 aliu Converted from java.
-* 03/20/97 clhuang Implemented with new APIs.
-* 03/31/97 aliu Moved isLONG_MIN to DigitList, and fixed it.
-* 04/3/97 aliu Rewrote parsing and formatting completely, and
-* cleaned up and debugged. Actually works now.
-* Implemented NAN and INF handling, for both parsing
-* and formatting. Extensive testing & debugging.
-* 04/10/97 aliu Modified to compile on AIX.
-* 04/16/97 aliu Rewrote to use DigitList, which has been resurrected.
-* Changed DigitCount to int per code review.
-* 07/09/97 helena Made ParsePosition into a class.
-* 08/26/97 aliu Extensive changes to applyPattern; completely
-* rewritten from the Java.
-* 09/09/97 aliu Ported over support for exponential formats.
-* 07/20/98 stephen JDK 1.2 sync up.
-* Various instances of '0' replaced with 'NULL'
-* Check for grouping size in subFormat()
-* Brought subParse() in line with Java 1.2
-* Added method appendAffix()
-* 08/24/1998 srl Removed Mutex calls. This is not a thread safe class!
-* 02/22/99 stephen Removed character literals for EBCDIC safety
-* 06/24/99 helena Integrated Alan's NF enhancements and Java2 bug fixes
-* 06/28/99 stephen Fixed bugs in toPattern().
-* 06/29/99 stephen Fixed operator= to copy fFormatWidth, fPad,
-* fPadPosition
-********************************************************************************
-*/
#include "unicode/utypes.h"
#if !UCONFIG_NO_FORMATTING
-#include "unicode/uniset.h"
-#include "unicode/currpinf.h"
-#include "unicode/plurrule.h"
-#include "unicode/utf16.h"
-#include "unicode/numsys.h"
-#include "unicode/localpointer.h"
-#include "unicode/ustring.h"
-#include "uresimp.h"
-#include "ucurrimp.h"
-#include "charstr.h"
-#include "patternprops.h"
-#include "cstring.h"
-#include "uassert.h"
-#include "hash.h"
-#include "decfmtst.h"
-#include "plurrule_impl.h"
-#include "decimalformatpattern.h"
-#include "fmtableimp.h"
-#include "decimfmtimpl.h"
-#include "visibledigits.h"
-
-/*
- * On certain platforms, round is a macro defined in math.h
- * This undefine is to avoid conflict between the macro and
- * the function defined below.
- */
-#ifdef round
-#undef round
-#endif
-
-
-U_NAMESPACE_BEGIN
-
-#ifdef FMT_DEBUG
-#include <stdio.h>
-static void _debugout(const char *f, int l, const UnicodeString& s) {
- char buf[2000];
- s.extract((int32_t) 0, s.length(), buf, "utf-8");
- printf("%s:%d: %s\n", f,l, buf);
-}
-#define debugout(x) _debugout(__FILE__,__LINE__,x)
-#define debug(x) printf("%s:%d: %s\n", __FILE__,__LINE__, x);
-static const UnicodeString dbg_null("<NULL>","");
-#define DEREFSTR(x) ((x!=NULL)?(*x):(dbg_null))
+// Allow implicit conversion from char16_t* to UnicodeString for this file:
+// Helpful in toString methods and elsewhere.
+#define UNISTR_FROM_STRING_EXPLICIT
+
+#include <cmath>
+#include <cstdlib>
+#include <stdlib.h>
+#include "unicode/errorcode.h"
+#include "unicode/decimfmt.h"
+#include "number_decimalquantity.h"
+#include "number_types.h"
+#include "numparse_impl.h"
+#include "number_mapper.h"
+#include "number_patternstring.h"
+#include "putilimp.h"
+#include "number_utils.h"
+#include "number_utypes.h"
+
+using namespace icu;
+using namespace icu::number;
+using namespace icu::number::impl;
+using namespace icu::numparse;
+using namespace icu::numparse::impl;
+using ERoundingMode = icu::DecimalFormat::ERoundingMode;
+using EPadPosition = icu::DecimalFormat::EPadPosition;
+
+// MSVC warns C4805 when comparing bool with UBool
+// TODO: Move this macro into a better place?
+#if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN
+#define UBOOL_TO_BOOL(b) static_cast<bool>(b)
#else
-#define debugout(x)
-#define debug(x)
-#endif
-
-
-/* For currency parsing purose,
- * Need to remember all prefix patterns and suffix patterns of
- * every currency format pattern,
- * including the pattern of default currecny style
- * and plural currency style. And the patterns are set through applyPattern.
- */
-struct AffixPatternsForCurrency : public UMemory {
- // negative prefix pattern
- UnicodeString negPrefixPatternForCurrency;
- // negative suffix pattern
- UnicodeString negSuffixPatternForCurrency;
- // positive prefix pattern
- UnicodeString posPrefixPatternForCurrency;
- // positive suffix pattern
- UnicodeString posSuffixPatternForCurrency;
- int8_t patternType;
-
- AffixPatternsForCurrency(const UnicodeString& negPrefix,
- const UnicodeString& negSuffix,
- const UnicodeString& posPrefix,
- const UnicodeString& posSuffix,
- int8_t type) {
- negPrefixPatternForCurrency = negPrefix;
- negSuffixPatternForCurrency = negSuffix;
- posPrefixPatternForCurrency = posPrefix;
- posSuffixPatternForCurrency = posSuffix;
- patternType = type;
- }
-#ifdef FMT_DEBUG
- void dump() const {
- debugout( UnicodeString("AffixPatternsForCurrency( -=\"") +
- negPrefixPatternForCurrency + (UnicodeString)"\"/\"" +
- negSuffixPatternForCurrency + (UnicodeString)"\" +=\"" +
- posPrefixPatternForCurrency + (UnicodeString)"\"/\"" +
- posSuffixPatternForCurrency + (UnicodeString)"\" )");
- }
+#define UBOOL_TO_BOOL(b) b
#endif
-};
-
-/* affix for currency formatting when the currency sign in the pattern
- * equals to 3, such as the pattern contains 3 currency sign or
- * the formatter style is currency plural format style.
- */
-struct AffixesForCurrency : public UMemory {
- // negative prefix
- UnicodeString negPrefixForCurrency;
- // negative suffix
- UnicodeString negSuffixForCurrency;
- // positive prefix
- UnicodeString posPrefixForCurrency;
- // positive suffix
- UnicodeString posSuffixForCurrency;
-
- int32_t formatWidth;
-
- AffixesForCurrency(const UnicodeString& negPrefix,
- const UnicodeString& negSuffix,
- const UnicodeString& posPrefix,
- const UnicodeString& posSuffix) {
- negPrefixForCurrency = negPrefix;
- negSuffixForCurrency = negSuffix;
- posPrefixForCurrency = posPrefix;
- posSuffixForCurrency = posSuffix;
- }
-#ifdef FMT_DEBUG
- void dump() const {
- debugout( UnicodeString("AffixesForCurrency( -=\"") +
- negPrefixForCurrency + (UnicodeString)"\"/\"" +
- negSuffixForCurrency + (UnicodeString)"\" +=\"" +
- posPrefixForCurrency + (UnicodeString)"\"/\"" +
- posSuffixForCurrency + (UnicodeString)"\" )");
- }
-#endif
-};
-
-U_CDECL_BEGIN
-
-/**
- * @internal ICU 4.2
- */
-static UBool U_CALLCONV decimfmtAffixPatternValueComparator(UHashTok val1, UHashTok val2);
-
-
-static UBool
-U_CALLCONV decimfmtAffixPatternValueComparator(UHashTok val1, UHashTok val2) {
- const AffixPatternsForCurrency* affix_1 =
- (AffixPatternsForCurrency*)val1.pointer;
- const AffixPatternsForCurrency* affix_2 =
- (AffixPatternsForCurrency*)val2.pointer;
- return affix_1->negPrefixPatternForCurrency ==
- affix_2->negPrefixPatternForCurrency &&
- affix_1->negSuffixPatternForCurrency ==
- affix_2->negSuffixPatternForCurrency &&
- affix_1->posPrefixPatternForCurrency ==
- affix_2->posPrefixPatternForCurrency &&
- affix_1->posSuffixPatternForCurrency ==
- affix_2->posSuffixPatternForCurrency &&
- affix_1->patternType == affix_2->patternType;
-}
-
-U_CDECL_END
-
-
-// *****************************************************************************
-// class DecimalFormat
-// *****************************************************************************
-
UOBJECT_DEFINE_RTTI_IMPLEMENTATION(DecimalFormat)
-// Constants for characters used in programmatic (unlocalized) patterns.
-#define kPatternZeroDigit ((UChar)0x0030) /*'0'*/
-#define kPatternSignificantDigit ((UChar)0x0040) /*'@'*/
-#define kPatternGroupingSeparator ((UChar)0x002C) /*','*/
-#define kPatternDecimalSeparator ((UChar)0x002E) /*'.'*/
-#define kPatternPerMill ((UChar)0x2030)
-#define kPatternPercent ((UChar)0x0025) /*'%'*/
-#define kPatternDigit ((UChar)0x0023) /*'#'*/
-#define kPatternSeparator ((UChar)0x003B) /*';'*/
-#define kPatternExponent ((UChar)0x0045) /*'E'*/
-#define kPatternPlus ((UChar)0x002B) /*'+'*/
-#define kPatternMinus ((UChar)0x002D) /*'-'*/
-#define kPatternPadEscape ((UChar)0x002A) /*'*'*/
-#define kQuote ((UChar)0x0027) /*'\''*/
-/**
- * The CURRENCY_SIGN is the standard Unicode symbol for currency. It
- * is used in patterns and substitued with either the currency symbol,
- * or if it is doubled, with the international currency symbol. If the
- * CURRENCY_SIGN is seen in a pattern, then the decimal separator is
- * replaced with the monetary decimal separator.
- */
-#define kCurrencySign ((UChar)0x00A4)
-#define kDefaultPad ((UChar)0x0020) /* */
-
-const int32_t DecimalFormat::kDoubleIntegerDigits = 309;
-const int32_t DecimalFormat::kDoubleFractionDigits = 340;
-
-const int32_t DecimalFormat::kMaxScientificIntegerDigits = 8;
-
-/**
- * These are the tags we expect to see in normal resource bundle files associated
- * with a locale.
- */
-const char DecimalFormat::fgNumberPatterns[]="NumberPatterns"; // Deprecated - not used
-static const char fgNumberElements[]="NumberElements";
-static const char fgLatn[]="latn";
-static const char fgPatterns[]="patterns";
-static const char fgDecimalFormat[]="decimalFormat";
-static const char fgCurrencyFormat[]="currencyFormat";
-
-inline int32_t _min(int32_t a, int32_t b) { return (a<b) ? a : b; }
-inline int32_t _max(int32_t a, int32_t b) { return (a<b) ? b : a; }
-
-//------------------------------------------------------------------------------
-// Constructs a DecimalFormat instance in the default locale.
-
-DecimalFormat::DecimalFormat(UErrorCode& status) {
- init();
- UParseError parseError;
- construct(status, parseError);
-}
-
-//------------------------------------------------------------------------------
-// Constructs a DecimalFormat instance with the specified number format
-// pattern in the default locale.
-
-DecimalFormat::DecimalFormat(const UnicodeString& pattern,
- UErrorCode& status) {
- init();
- UParseError parseError;
- construct(status, parseError, &pattern);
-}
-
-//------------------------------------------------------------------------------
-// Constructs a DecimalFormat instance with the specified number format
-// pattern and the number format symbols in the default locale. The
-// created instance owns the symbols.
-
-DecimalFormat::DecimalFormat(const UnicodeString& pattern,
- DecimalFormatSymbols* symbolsToAdopt,
- UErrorCode& status) {
- init();
- UParseError parseError;
- if (symbolsToAdopt == NULL)
- status = U_ILLEGAL_ARGUMENT_ERROR;
- construct(status, parseError, &pattern, symbolsToAdopt);
-}
-
-DecimalFormat::DecimalFormat( const UnicodeString& pattern,
- DecimalFormatSymbols* symbolsToAdopt,
- UParseError& parseErr,
- UErrorCode& status) {
- init();
- if (symbolsToAdopt == NULL)
- status = U_ILLEGAL_ARGUMENT_ERROR;
- construct(status,parseErr, &pattern, symbolsToAdopt);
-}
-
-//------------------------------------------------------------------------------
-// Constructs a DecimalFormat instance with the specified number format
-// pattern and the number format symbols in the default locale. The
-// created instance owns the clone of the symbols.
-
-DecimalFormat::DecimalFormat(const UnicodeString& pattern,
- const DecimalFormatSymbols& symbols,
- UErrorCode& status) {
- init();
- UParseError parseError;
- construct(status, parseError, &pattern, new DecimalFormatSymbols(symbols));
-}
-
-//------------------------------------------------------------------------------
-// Constructs a DecimalFormat instance with the specified number format
-// pattern, the number format symbols, and the number format style.
-// The created instance owns the clone of the symbols.
-
-DecimalFormat::DecimalFormat(const UnicodeString& pattern,
- DecimalFormatSymbols* symbolsToAdopt,
- UNumberFormatStyle style,
- UErrorCode& status) {
- init();
- fStyle = style;
- UParseError parseError;
- construct(status, parseError, &pattern, symbolsToAdopt);
-}
-
-//-----------------------------------------------------------------------------
-// Common DecimalFormat initialization.
-// Put all fields of an uninitialized object into a known state.
-// Common code, shared by all constructors.
-// Can not fail. Leave the object in good enough shape that the destructor
-// or assignment operator can run successfully.
-void
-DecimalFormat::init() {
- fBoolFlags.clear();
- fStyle = UNUM_DECIMAL;
- fAffixPatternsForCurrency = NULL;
- fCurrencyPluralInfo = NULL;
-#if UCONFIG_HAVE_PARSEALLINPUT
- fParseAllInput = UNUM_MAYBE;
-#endif
-
- fStaticSets = NULL;
- fImpl = NULL;
-}
-
-//------------------------------------------------------------------------------
-// Constructs a DecimalFormat instance with the specified number format
-// pattern and the number format symbols in the desired locale. The
-// created instance owns the symbols.
-
-void
-DecimalFormat::construct(UErrorCode& status,
- UParseError& parseErr,
- const UnicodeString* pattern,
- DecimalFormatSymbols* symbolsToAdopt)
-{
- LocalPointer<DecimalFormatSymbols> adoptedSymbols(symbolsToAdopt);
- if (U_FAILURE(status))
- return;
-
- if (adoptedSymbols.isNull())
- {
- adoptedSymbols.adoptInstead(
- new DecimalFormatSymbols(Locale::getDefault(), status));
- if (adoptedSymbols.isNull() && U_SUCCESS(status)) {
- status = U_MEMORY_ALLOCATION_ERROR;
- }
- if (U_FAILURE(status)) {
- return;
- }
- }
- fStaticSets = DecimalFormatStaticSets::getStaticSets(status);
- if (U_FAILURE(status)) {
- return;
- }
-
- UnicodeString str;
- // Uses the default locale's number format pattern if there isn't
- // one specified.
- if (pattern == NULL)
- {
- UErrorCode nsStatus = U_ZERO_ERROR;
- LocalPointer<NumberingSystem> ns(
- NumberingSystem::createInstance(nsStatus));
- if (U_FAILURE(nsStatus)) {
- status = nsStatus;
- return;
- }
-
- int32_t len = 0;
- UResourceBundle *top = ures_open(NULL, Locale::getDefault().getName(), &status);
-
- UResourceBundle *resource = ures_getByKeyWithFallback(top, fgNumberElements, NULL, &status);
- resource = ures_getByKeyWithFallback(resource, ns->getName(), resource, &status);
- resource = ures_getByKeyWithFallback(resource, fgPatterns, resource, &status);
- const UChar *resStr = ures_getStringByKeyWithFallback(resource, fgDecimalFormat, &len, &status);
- if ( status == U_MISSING_RESOURCE_ERROR && uprv_strcmp(fgLatn,ns->getName())) {
- status = U_ZERO_ERROR;
- resource = ures_getByKeyWithFallback(top, fgNumberElements, resource, &status);
- resource = ures_getByKeyWithFallback(resource, fgLatn, resource, &status);
- resource = ures_getByKeyWithFallback(resource, fgPatterns, resource, &status);
- resStr = ures_getStringByKeyWithFallback(resource, fgDecimalFormat, &len, &status);
- }
- str.setTo(TRUE, resStr, len);
- pattern = &str;
- ures_close(resource);
- ures_close(top);
- }
-
- fImpl = new DecimalFormatImpl(this, *pattern, adoptedSymbols.getAlias(), parseErr, status);
- if (fImpl) {
- adoptedSymbols.orphan();
- } else if (U_SUCCESS(status)) {
- status = U_MEMORY_ALLOCATION_ERROR;
- }
- if (U_FAILURE(status)) {
- return;
- }
-
- if (U_FAILURE(status))
- {
- return;
- }
-
- const UnicodeString* patternUsed;
- UnicodeString currencyPluralPatternForOther;
- // apply pattern
- if (fStyle == UNUM_CURRENCY_PLURAL) {
- fCurrencyPluralInfo = new CurrencyPluralInfo(fImpl->fSymbols->getLocale(), status);
- if (U_FAILURE(status)) {
- return;
- }
-
- // the pattern used in format is not fixed until formatting,
- // in which, the number is known and
- // will be used to pick the right pattern based on plural count.
- // Here, set the pattern as the pattern of plural count == "other".
- // For most locale, the patterns are probably the same for all
- // plural count. If not, the right pattern need to be re-applied
- // during format.
- fCurrencyPluralInfo->getCurrencyPluralPattern(UNICODE_STRING("other", 5), currencyPluralPatternForOther);
- // TODO(refactor): Revisit, we are setting the pattern twice.
- fImpl->applyPatternFavorCurrencyPrecision(
- currencyPluralPatternForOther, status);
- patternUsed = &currencyPluralPatternForOther;
+DecimalFormat::DecimalFormat(UErrorCode& status)
+ : DecimalFormat(nullptr, status) {
+ // Use the default locale and decimal pattern.
+ const char* localeName = Locale::getDefault().getName();
+ LocalPointer<NumberingSystem> ns(NumberingSystem::createInstance(status));
+ UnicodeString patternString = utils::getPatternForStyle(
+ localeName,
+ ns->getName(),
+ CLDR_PATTERN_STYLE_DECIMAL,
+ status);
+ setPropertiesFromPattern(patternString, IGNORE_ROUNDING_IF_CURRENCY, status);
+ touch(status);
+}
+
+DecimalFormat::DecimalFormat(const UnicodeString& pattern, UErrorCode& status)
+ : DecimalFormat(nullptr, status) {
+ setPropertiesFromPattern(pattern, IGNORE_ROUNDING_IF_CURRENCY, status);
+ touch(status);
+}
+
+DecimalFormat::DecimalFormat(const UnicodeString& pattern, DecimalFormatSymbols* symbolsToAdopt,
+ UErrorCode& status)
+ : DecimalFormat(symbolsToAdopt, status) {
+ setPropertiesFromPattern(pattern, IGNORE_ROUNDING_IF_CURRENCY, status);
+ touch(status);
+}
+
+DecimalFormat::DecimalFormat(const UnicodeString& pattern, DecimalFormatSymbols* symbolsToAdopt,
+ UNumberFormatStyle style, UErrorCode& status)
+ : DecimalFormat(symbolsToAdopt, status) {
+ // If choice is a currency type, ignore the rounding information.
+ if (style == UNumberFormatStyle::UNUM_CURRENCY || style == UNumberFormatStyle::UNUM_CURRENCY_ISO ||
+ style == UNumberFormatStyle::UNUM_CURRENCY_ACCOUNTING ||
+ style == UNumberFormatStyle::UNUM_CASH_CURRENCY ||
+ style == UNumberFormatStyle::UNUM_CURRENCY_STANDARD ||
+ style == UNumberFormatStyle::UNUM_CURRENCY_PLURAL) {
+ setPropertiesFromPattern(pattern, IGNORE_ROUNDING_ALWAYS, status);
} else {
- patternUsed = pattern;
+ setPropertiesFromPattern(pattern, IGNORE_ROUNDING_IF_CURRENCY, status);
}
-
- if (patternUsed->indexOf(kCurrencySign) != -1) {
- // initialize for currency, not only for plural format,
- // but also for mix parsing
- handleCurrencySignInPattern(status);
+ // Note: in Java, CurrencyPluralInfo is set in NumberFormat.java, but in C++, it is not set there,
+ // so we have to set it here.
+ if (style == UNumberFormatStyle::UNUM_CURRENCY_PLURAL) {
+ LocalPointer<CurrencyPluralInfo> cpi(
+ new CurrencyPluralInfo(fields->symbols->getLocale(), status),
+ status);
+ if (U_FAILURE(status)) { return; }
+ fields->properties->currencyPluralInfo.fPtr.adoptInstead(cpi.orphan());
}
+ touch(status);
}
-void
-DecimalFormat::handleCurrencySignInPattern(UErrorCode& status) {
- // initialize for currency, not only for plural format,
- // but also for mix parsing
+DecimalFormat::DecimalFormat(const DecimalFormatSymbols* symbolsToAdopt, UErrorCode& status) {
+ LocalPointer<const DecimalFormatSymbols> adoptedSymbols(symbolsToAdopt);
+ fields = new DecimalFormatFields();
if (U_FAILURE(status)) {
return;
}
- if (fCurrencyPluralInfo == NULL) {
- fCurrencyPluralInfo = new CurrencyPluralInfo(fImpl->fSymbols->getLocale(), status);
- if (U_FAILURE(status)) {
- return;
- }
- }
- // need it for mix parsing
- if (fAffixPatternsForCurrency == NULL) {
- setupCurrencyAffixPatterns(status);
- }
-}
-
-static void
-applyPatternWithNoSideEffects(
- const UnicodeString& pattern,
- UParseError& parseError,
- UnicodeString &negPrefix,
- UnicodeString &negSuffix,
- UnicodeString &posPrefix,
- UnicodeString &posSuffix,
- UErrorCode& status) {
- if (U_FAILURE(status))
- {
- return;
- }
- DecimalFormatPatternParser patternParser;
- DecimalFormatPattern out;
- patternParser.applyPatternWithoutExpandAffix(
- pattern,
- out,
- parseError,
- status);
- if (U_FAILURE(status)) {
- return;
- }
- negPrefix = out.fNegPrefixPattern;
- negSuffix = out.fNegSuffixPattern;
- posPrefix = out.fPosPrefixPattern;
- posSuffix = out.fPosSuffixPattern;
-}
-
-void
-DecimalFormat::setupCurrencyAffixPatterns(UErrorCode& status) {
- if (U_FAILURE(status)) {
+ if (fields == nullptr) {
+ status = U_MEMORY_ALLOCATION_ERROR;
return;
}
- UParseError parseErr;
- fAffixPatternsForCurrency = initHashForAffixPattern(status);
- if (U_FAILURE(status)) {
- return;
+ fields->properties.adoptInsteadAndCheckErrorCode(new DecimalFormatProperties(), status);
+ fields->exportedProperties.adoptInsteadAndCheckErrorCode(new DecimalFormatProperties(), status);
+ if (adoptedSymbols.isNull()) {
+ fields->symbols.adoptInsteadAndCheckErrorCode(new DecimalFormatSymbols(status), status);
+ } else {
+ fields->symbols.adoptInsteadAndCheckErrorCode(adoptedSymbols.orphan(), status);
}
+}
- NumberingSystem *ns = NumberingSystem::createInstance(fImpl->fSymbols->getLocale(),status);
- if (U_FAILURE(status)) {
- return;
- }
+#if UCONFIG_HAVE_PARSEALLINPUT
- // Save the default currency patterns of this locale.
- // Here, chose onlyApplyPatternWithoutExpandAffix without
- // expanding the affix patterns into affixes.
- UnicodeString currencyPattern;
- UErrorCode error = U_ZERO_ERROR;
-
- UResourceBundle *resource = ures_open(NULL, fImpl->fSymbols->getLocale().getName(), &error);
- UResourceBundle *numElements = ures_getByKeyWithFallback(resource, fgNumberElements, NULL, &error);
- resource = ures_getByKeyWithFallback(numElements, ns->getName(), resource, &error);
- resource = ures_getByKeyWithFallback(resource, fgPatterns, resource, &error);
- int32_t patLen = 0;
- const UChar *patResStr = ures_getStringByKeyWithFallback(resource, fgCurrencyFormat, &patLen, &error);
- if ( error == U_MISSING_RESOURCE_ERROR && uprv_strcmp(ns->getName(),fgLatn)) {
- error = U_ZERO_ERROR;
- resource = ures_getByKeyWithFallback(numElements, fgLatn, resource, &error);
- resource = ures_getByKeyWithFallback(resource, fgPatterns, resource, &error);
- patResStr = ures_getStringByKeyWithFallback(resource, fgCurrencyFormat, &patLen, &error);
- }
- ures_close(numElements);
- ures_close(resource);
- delete ns;
-
- if (U_SUCCESS(error)) {
- UnicodeString negPrefix;
- UnicodeString negSuffix;
- UnicodeString posPrefix;
- UnicodeString posSuffix;
- applyPatternWithNoSideEffects(UnicodeString(patResStr, patLen),
- parseErr,
- negPrefix, negSuffix, posPrefix, posSuffix, status);
- AffixPatternsForCurrency* affixPtn = new AffixPatternsForCurrency(
- negPrefix,
- negSuffix,
- posPrefix,
- posSuffix,
- UCURR_SYMBOL_NAME);
- fAffixPatternsForCurrency->put(UNICODE_STRING("default", 7), affixPtn, status);
- }
-
- // save the unique currency plural patterns of this locale.
- Hashtable* pluralPtn = fCurrencyPluralInfo->fPluralCountToCurrencyUnitPattern;
- const UHashElement* element = NULL;
- int32_t pos = UHASH_FIRST;
- Hashtable pluralPatternSet;
- while ((element = pluralPtn->nextElement(pos)) != NULL) {
- const UHashTok valueTok = element->value;
- const UnicodeString* value = (UnicodeString*)valueTok.pointer;
- const UHashTok keyTok = element->key;
- const UnicodeString* key = (UnicodeString*)keyTok.pointer;
- if (pluralPatternSet.geti(*value) != 1) {
- UnicodeString negPrefix;
- UnicodeString negSuffix;
- UnicodeString posPrefix;
- UnicodeString posSuffix;
- pluralPatternSet.puti(*value, 1, status);
- applyPatternWithNoSideEffects(
- *value, parseErr,
- negPrefix, negSuffix, posPrefix, posSuffix, status);
- AffixPatternsForCurrency* affixPtn = new AffixPatternsForCurrency(
- negPrefix,
- negSuffix,
- posPrefix,
- posSuffix,
- UCURR_LONG_NAME);
- fAffixPatternsForCurrency->put(*key, affixPtn, status);
- }
- }
+void DecimalFormat::setParseAllInput(UNumberFormatAttributeValue value) {
+ if (value == fields->properties->parseAllInput) { return; }
+ fields->properties->parseAllInput = value;
}
+#endif
-//------------------------------------------------------------------------------
+DecimalFormat&
+DecimalFormat::setAttribute(UNumberFormatAttribute attr, int32_t newValue, UErrorCode& status) {
+ if (U_FAILURE(status)) { return *this; }
-DecimalFormat::~DecimalFormat()
-{
- deleteHashForAffixPattern();
- delete fCurrencyPluralInfo;
- delete fImpl;
-}
+ switch (attr) {
+ case UNUM_LENIENT_PARSE:
+ setLenient(newValue != 0);
+ break;
-//------------------------------------------------------------------------------
-// copy constructor
+ case UNUM_PARSE_INT_ONLY:
+ setParseIntegerOnly(newValue != 0);
+ break;
-DecimalFormat::DecimalFormat(const DecimalFormat &source) :
- NumberFormat(source) {
- init();
- *this = source;
-}
+ case UNUM_GROUPING_USED:
+ setGroupingUsed(newValue != 0);
+ break;
-//------------------------------------------------------------------------------
-// assignment operator
+ case UNUM_DECIMAL_ALWAYS_SHOWN:
+ setDecimalSeparatorAlwaysShown(newValue != 0);
+ break;
-template <class T>
-static void _clone_ptr(T** pdest, const T* source) {
- delete *pdest;
- if (source == NULL) {
- *pdest = NULL;
- } else {
- *pdest = static_cast<T*>(source->clone());
- }
-}
+ case UNUM_MAX_INTEGER_DIGITS:
+ setMaximumIntegerDigits(newValue);
+ break;
-DecimalFormat&
-DecimalFormat::operator=(const DecimalFormat& rhs)
-{
- if(this != &rhs) {
- UErrorCode status = U_ZERO_ERROR;
- NumberFormat::operator=(rhs);
- if (fImpl == NULL) {
- fImpl = new DecimalFormatImpl(this, *rhs.fImpl, status);
- } else {
- fImpl->assign(*rhs.fImpl, status);
- }
- fStaticSets = DecimalFormatStaticSets::getStaticSets(status);
- fStyle = rhs.fStyle;
- _clone_ptr(&fCurrencyPluralInfo, rhs.fCurrencyPluralInfo);
- deleteHashForAffixPattern();
- if (rhs.fAffixPatternsForCurrency) {
- UErrorCode status = U_ZERO_ERROR;
- fAffixPatternsForCurrency = initHashForAffixPattern(status);
- copyHashForAffixPattern(rhs.fAffixPatternsForCurrency,
- fAffixPatternsForCurrency, status);
- }
- }
+ case UNUM_MIN_INTEGER_DIGITS:
+ setMinimumIntegerDigits(newValue);
+ break;
- return *this;
-}
+ case UNUM_INTEGER_DIGITS:
+ setMinimumIntegerDigits(newValue);
+ setMaximumIntegerDigits(newValue);
+ break;
-//------------------------------------------------------------------------------
+ case UNUM_MAX_FRACTION_DIGITS:
+ setMaximumFractionDigits(newValue);
+ break;
-UBool
-DecimalFormat::operator==(const Format& that) const
-{
- if (this == &that)
- return TRUE;
+ case UNUM_MIN_FRACTION_DIGITS:
+ setMinimumFractionDigits(newValue);
+ break;
- // NumberFormat::operator== guarantees this cast is safe
- const DecimalFormat* other = (DecimalFormat*)&that;
+ case UNUM_FRACTION_DIGITS:
+ setMinimumFractionDigits(newValue);
+ setMaximumFractionDigits(newValue);
+ break;
- return (
- NumberFormat::operator==(that) &&
- fBoolFlags.getAll() == other->fBoolFlags.getAll() &&
- *fImpl == *other->fImpl);
+ case UNUM_SIGNIFICANT_DIGITS_USED:
+ setSignificantDigitsUsed(newValue != 0);
+ break;
-}
+ case UNUM_MAX_SIGNIFICANT_DIGITS:
+ setMaximumSignificantDigits(newValue);
+ break;
-//------------------------------------------------------------------------------
+ case UNUM_MIN_SIGNIFICANT_DIGITS:
+ setMinimumSignificantDigits(newValue);
+ break;
-Format*
-DecimalFormat::clone() const
-{
- return new DecimalFormat(*this);
-}
+ case UNUM_MULTIPLIER:
+ setMultiplier(newValue);
+ break;
+ case UNUM_SCALE:
+ setMultiplierScale(newValue);
+ break;
-FixedDecimal
-DecimalFormat::getFixedDecimal(double number, UErrorCode &status) const {
- VisibleDigitsWithExponent digits;
- initVisibleDigitsWithExponent(number, digits, status);
- if (U_FAILURE(status)) {
- return FixedDecimal();
- }
- return FixedDecimal(digits.getMantissa());
-}
+ case UNUM_GROUPING_SIZE:
+ setGroupingSize(newValue);
+ break;
-VisibleDigitsWithExponent &
-DecimalFormat::initVisibleDigitsWithExponent(
- double number,
- VisibleDigitsWithExponent &digits,
- UErrorCode &status) const {
- return fImpl->initVisibleDigitsWithExponent(number, digits, status);
-}
+ case UNUM_ROUNDING_MODE:
+ setRoundingMode((DecimalFormat::ERoundingMode) newValue);
+ break;
-FixedDecimal
-DecimalFormat::getFixedDecimal(const Formattable &number, UErrorCode &status) const {
- VisibleDigitsWithExponent digits;
- initVisibleDigitsWithExponent(number, digits, status);
- if (U_FAILURE(status)) {
- return FixedDecimal();
- }
- return FixedDecimal(digits.getMantissa());
-}
+ case UNUM_FORMAT_WIDTH:
+ setFormatWidth(newValue);
+ break;
-VisibleDigitsWithExponent &
-DecimalFormat::initVisibleDigitsWithExponent(
- const Formattable &number,
- VisibleDigitsWithExponent &digits,
- UErrorCode &status) const {
- if (U_FAILURE(status)) {
- return digits;
- }
- if (!number.isNumeric()) {
- status = U_ILLEGAL_ARGUMENT_ERROR;
- return digits;
- }
+ case UNUM_PADDING_POSITION:
+ /** The position at which padding will take place. */
+ setPadPosition((DecimalFormat::EPadPosition) newValue);
+ break;
- DigitList *dl = number.getDigitList();
- if (dl != NULL) {
- DigitList dlCopy(*dl);
- return fImpl->initVisibleDigitsWithExponent(
- dlCopy, digits, status);
- }
+ case UNUM_SECONDARY_GROUPING_SIZE:
+ setSecondaryGroupingSize(newValue);
+ break;
- Formattable::Type type = number.getType();
- if (type == Formattable::kDouble || type == Formattable::kLong) {
- return fImpl->initVisibleDigitsWithExponent(
- number.getDouble(status), digits, status);
- }
- return fImpl->initVisibleDigitsWithExponent(
- number.getInt64(), digits, status);
-}
+#if UCONFIG_HAVE_PARSEALLINPUT
+ case UNUM_PARSE_ALL_INPUT:
+ setParseAllInput((UNumberFormatAttributeValue) newValue);
+ break;
+#endif
+ case UNUM_PARSE_NO_EXPONENT:
+ setParseNoExponent((UBool) newValue);
+ break;
-// Create a fixed decimal from a DigitList.
-// The digit list may be modified.
-// Internal function only.
-FixedDecimal
-DecimalFormat::getFixedDecimal(DigitList &number, UErrorCode &status) const {
- VisibleDigitsWithExponent digits;
- initVisibleDigitsWithExponent(number, digits, status);
- if (U_FAILURE(status)) {
- return FixedDecimal();
- }
- return FixedDecimal(digits.getMantissa());
-}
+ case UNUM_PARSE_DECIMAL_MARK_REQUIRED:
+ setDecimalPatternMatchRequired((UBool) newValue);
+ break;
-VisibleDigitsWithExponent &
-DecimalFormat::initVisibleDigitsWithExponent(
- DigitList &number,
- VisibleDigitsWithExponent &digits,
- UErrorCode &status) const {
- return fImpl->initVisibleDigitsWithExponent(
- number, digits, status);
-}
+ case UNUM_CURRENCY_USAGE:
+ setCurrencyUsage((UCurrencyUsage) newValue, &status);
+ break;
+ case UNUM_MINIMUM_GROUPING_DIGITS:
+ setMinimumGroupingDigits(newValue);
+ break;
-//------------------------------------------------------------------------------
+ case UNUM_PARSE_CASE_SENSITIVE:
+ setParseCaseSensitive(static_cast<UBool>(newValue));
+ break;
-UnicodeString&
-DecimalFormat::format(int32_t number,
- UnicodeString& appendTo,
- FieldPosition& fieldPosition) const
-{
- UErrorCode status = U_ZERO_ERROR;
- return fImpl->format(number, appendTo, fieldPosition, status);
-}
+ case UNUM_SIGN_ALWAYS_SHOWN:
+ setSignAlwaysShown(static_cast<UBool>(newValue));
+ break;
-UnicodeString&
-DecimalFormat::format(int32_t number,
- UnicodeString& appendTo,
- FieldPosition& fieldPosition,
- UErrorCode& status) const
-{
- return fImpl->format(number, appendTo, fieldPosition, status);
-}
+ case UNUM_FORMAT_FAIL_IF_MORE_THAN_MAX_DIGITS:
+ setFormatFailIfMoreThanMaxDigits(static_cast<UBool>(newValue));
+ break;
-UnicodeString&
-DecimalFormat::format(int32_t number,
- UnicodeString& appendTo,
- FieldPositionIterator* posIter,
- UErrorCode& status) const
-{
- return fImpl->format(number, appendTo, posIter, status);
+ default:
+ status = U_UNSUPPORTED_ERROR;
+ break;
+ }
+ return *this;
}
+int32_t DecimalFormat::getAttribute(UNumberFormatAttribute attr, UErrorCode& status) const {
+ if (U_FAILURE(status)) { return -1; }
+ switch (attr) {
+ case UNUM_LENIENT_PARSE:
+ return isLenient();
-//------------------------------------------------------------------------------
+ case UNUM_PARSE_INT_ONLY:
+ return isParseIntegerOnly();
-UnicodeString&
-DecimalFormat::format(int64_t number,
- UnicodeString& appendTo,
- FieldPosition& fieldPosition) const
-{
- UErrorCode status = U_ZERO_ERROR; /* ignored */
- return fImpl->format(number, appendTo, fieldPosition, status);
-}
+ case UNUM_GROUPING_USED:
+ return isGroupingUsed();
-UnicodeString&
-DecimalFormat::format(int64_t number,
- UnicodeString& appendTo,
- FieldPosition& fieldPosition,
- UErrorCode& status) const
-{
- return fImpl->format(number, appendTo, fieldPosition, status);
-}
+ case UNUM_DECIMAL_ALWAYS_SHOWN:
+ return isDecimalSeparatorAlwaysShown();
-UnicodeString&
-DecimalFormat::format(int64_t number,
- UnicodeString& appendTo,
- FieldPositionIterator* posIter,
- UErrorCode& status) const
-{
- return fImpl->format(number, appendTo, posIter, status);
-}
+ case UNUM_MAX_INTEGER_DIGITS:
+ return getMaximumIntegerDigits();
-//------------------------------------------------------------------------------
+ case UNUM_MIN_INTEGER_DIGITS:
+ return getMinimumIntegerDigits();
-UnicodeString&
-DecimalFormat::format( double number,
- UnicodeString& appendTo,
- FieldPosition& fieldPosition) const
-{
- UErrorCode status = U_ZERO_ERROR; /* ignored */
- return fImpl->format(number, appendTo, fieldPosition, status);
-}
+ case UNUM_INTEGER_DIGITS:
+ // TBD: what should this return?
+ return getMinimumIntegerDigits();
-UnicodeString&
-DecimalFormat::format( double number,
- UnicodeString& appendTo,
- FieldPosition& fieldPosition,
- UErrorCode& status) const
-{
- return fImpl->format(number, appendTo, fieldPosition, status);
-}
+ case UNUM_MAX_FRACTION_DIGITS:
+ return getMaximumFractionDigits();
-UnicodeString&
-DecimalFormat::format( double number,
- UnicodeString& appendTo,
- FieldPositionIterator* posIter,
- UErrorCode& status) const
-{
- return fImpl->format(number, appendTo, posIter, status);
-}
+ case UNUM_MIN_FRACTION_DIGITS:
+ return getMinimumFractionDigits();
-//------------------------------------------------------------------------------
+ case UNUM_FRACTION_DIGITS:
+ // TBD: what should this return?
+ return getMinimumFractionDigits();
+ case UNUM_SIGNIFICANT_DIGITS_USED:
+ return areSignificantDigitsUsed();
-UnicodeString&
-DecimalFormat::format(StringPiece number,
- UnicodeString &toAppendTo,
- FieldPositionIterator *posIter,
- UErrorCode &status) const
-{
- return fImpl->format(number, toAppendTo, posIter, status);
-}
+ case UNUM_MAX_SIGNIFICANT_DIGITS:
+ return getMaximumSignificantDigits();
+ case UNUM_MIN_SIGNIFICANT_DIGITS:
+ return getMinimumSignificantDigits();
-UnicodeString&
-DecimalFormat::format(const DigitList &number,
- UnicodeString &appendTo,
- FieldPositionIterator *posIter,
- UErrorCode &status) const {
- return fImpl->format(number, appendTo, posIter, status);
-}
+ case UNUM_MULTIPLIER:
+ return getMultiplier();
+ case UNUM_SCALE:
+ return getMultiplierScale();
-UnicodeString&
-DecimalFormat::format(const DigitList &number,
- UnicodeString& appendTo,
- FieldPosition& pos,
- UErrorCode &status) const {
- return fImpl->format(number, appendTo, pos, status);
-}
+ case UNUM_GROUPING_SIZE:
+ return getGroupingSize();
-UnicodeString&
-DecimalFormat::format(const VisibleDigitsWithExponent &number,
- UnicodeString &appendTo,
- FieldPositionIterator *posIter,
- UErrorCode &status) const {
- return fImpl->format(number, appendTo, posIter, status);
-}
+ case UNUM_ROUNDING_MODE:
+ return getRoundingMode();
+ case UNUM_FORMAT_WIDTH:
+ return getFormatWidth();
-UnicodeString&
-DecimalFormat::format(const VisibleDigitsWithExponent &number,
- UnicodeString& appendTo,
- FieldPosition& pos,
- UErrorCode &status) const {
- return fImpl->format(number, appendTo, pos, status);
-}
+ case UNUM_PADDING_POSITION:
+ return getPadPosition();
-DigitList&
-DecimalFormat::_round(const DigitList& number, DigitList& adjustedNum, UBool& isNegative, UErrorCode& status) const {
- adjustedNum = number;
- fImpl->round(adjustedNum, status);
- isNegative = !adjustedNum.isPositive();
- return adjustedNum;
-}
+ case UNUM_SECONDARY_GROUPING_SIZE:
+ return getSecondaryGroupingSize();
-void
-DecimalFormat::parse(const UnicodeString& text,
- Formattable& result,
- ParsePosition& parsePosition) const {
- parse(text, result, parsePosition, NULL);
-}
-
-CurrencyAmount* DecimalFormat::parseCurrency(const UnicodeString& text,
- ParsePosition& pos) const {
- Formattable parseResult;
- int32_t start = pos.getIndex();
- UChar curbuf[4] = {};
- parse(text, parseResult, pos, curbuf);
- if (pos.getIndex() != start) {
- UErrorCode ec = U_ZERO_ERROR;
- LocalPointer<CurrencyAmount> currAmt(new CurrencyAmount(parseResult, curbuf, ec), ec);
- if (U_FAILURE(ec)) {
- pos.setIndex(start); // indicate failure
- } else {
- return currAmt.orphan();
- }
- }
- return NULL;
-}
-
-/**
- * Parses the given text as a number, optionally providing a currency amount.
- * @param text the string to parse
- * @param result output parameter for the numeric result.
- * @param parsePosition input-output position; on input, the
- * position within text to match; must have 0 <= pos.getIndex() <
- * text.length(); on output, the position after the last matched
- * character. If the parse fails, the position in unchanged upon
- * output.
- * @param currency if non-NULL, it should point to a 4-UChar buffer.
- * In this case the text is parsed as a currency format, and the
- * ISO 4217 code for the parsed currency is put into the buffer.
- * Otherwise the text is parsed as a non-currency format.
- */
-void DecimalFormat::parse(const UnicodeString& text,
- Formattable& result,
- ParsePosition& parsePosition,
- UChar* currency) const {
- int32_t startIdx, backup;
- int32_t i = startIdx = backup = parsePosition.getIndex();
-
- // clear any old contents in the result. In particular, clears any DigitList
- // that it may be holding.
- result.setLong(0);
- if (currency != NULL) {
- for (int32_t ci=0; ci<4; ci++) {
- currency[ci] = 0;
- }
- }
+ case UNUM_PARSE_NO_EXPONENT:
+ return isParseNoExponent();
- // Handle NaN as a special case:
- int32_t formatWidth = fImpl->getOldFormatWidth();
+ case UNUM_PARSE_DECIMAL_MARK_REQUIRED:
+ return isDecimalPatternMatchRequired();
- // Skip padding characters, if around prefix
- if (formatWidth > 0 && (
- fImpl->fAffixes.fPadPosition == DigitAffixesAndPadding::kPadBeforePrefix ||
- fImpl->fAffixes.fPadPosition == DigitAffixesAndPadding::kPadAfterPrefix)) {
- i = skipPadding(text, i);
- }
+ case UNUM_CURRENCY_USAGE:
+ return getCurrencyUsage();
- if (isLenient()) {
- // skip any leading whitespace
- i = backup = skipUWhiteSpace(text, i);
- }
+ case UNUM_MINIMUM_GROUPING_DIGITS:
+ return getMinimumGroupingDigits();
- // If the text is composed of the representation of NaN, returns NaN.length
- const UnicodeString *nan = &fImpl->getConstSymbol(DecimalFormatSymbols::kNaNSymbol);
- int32_t nanLen = (text.compare(i, nan->length(), *nan)
- ? 0 : nan->length());
- if (nanLen) {
- i += nanLen;
- if (formatWidth > 0 && (fImpl->fAffixes.fPadPosition == DigitAffixesAndPadding::kPadBeforeSuffix || fImpl->fAffixes.fPadPosition == DigitAffixesAndPadding::kPadAfterSuffix)) {
- i = skipPadding(text, i);
- }
- parsePosition.setIndex(i);
- result.setDouble(uprv_getNaN());
- return;
- }
+ case UNUM_PARSE_CASE_SENSITIVE:
+ return isParseCaseSensitive();
- // NaN parse failed; start over
- i = backup;
- parsePosition.setIndex(i);
+ case UNUM_SIGN_ALWAYS_SHOWN:
+ return isSignAlwaysShown();
- // status is used to record whether a number is infinite.
- UBool status[fgStatusLength];
+ case UNUM_FORMAT_FAIL_IF_MORE_THAN_MAX_DIGITS:
+ return isFormatFailIfMoreThanMaxDigits();
- DigitList *digits = result.getInternalDigitList(); // get one from the stack buffer
- if (digits == NULL) {
- return; // no way to report error from here.
+ default:
+ status = U_UNSUPPORTED_ERROR;
+ break;
}
- if (fImpl->fMonetary) {
- if (!parseForCurrency(text, parsePosition, *digits,
- status, currency)) {
- return;
- }
- } else {
- if (!subparse(text,
- &fImpl->fAffixes.fNegativePrefix.getOtherVariant().toString(),
- &fImpl->fAffixes.fNegativeSuffix.getOtherVariant().toString(),
- &fImpl->fAffixes.fPositivePrefix.getOtherVariant().toString(),
- &fImpl->fAffixes.fPositiveSuffix.getOtherVariant().toString(),
- FALSE, UCURR_SYMBOL_NAME,
- parsePosition, *digits, status, currency)) {
- debug("!subparse(...) - rewind");
- parsePosition.setIndex(startIdx);
- return;
- }
- }
+ return -1; /* undefined */
+}
- // Handle infinity
- if (status[fgStatusInfinite]) {
- double inf = uprv_getInfinity();
- result.setDouble(digits->isPositive() ? inf : -inf);
- // TODO: set the dl to infinity, and let it fall into the code below.
- }
+void DecimalFormat::setGroupingUsed(UBool enabled) {
+ if (UBOOL_TO_BOOL(enabled) == fields->properties->groupingUsed) { return; }
+ NumberFormat::setGroupingUsed(enabled); // to set field for compatibility
+ fields->properties->groupingUsed = enabled;
+ touchNoError();
+}
- else {
+void DecimalFormat::setParseIntegerOnly(UBool value) {
+ if (UBOOL_TO_BOOL(value) == fields->properties->parseIntegerOnly) { return; }
+ NumberFormat::setParseIntegerOnly(value); // to set field for compatibility
+ fields->properties->parseIntegerOnly = value;
+ touchNoError();
+}
- if (!fImpl->fMultiplier.isZero()) {
- UErrorCode ec = U_ZERO_ERROR;
- digits->div(fImpl->fMultiplier, ec);
- }
+void DecimalFormat::setLenient(UBool enable) {
+ ParseMode mode = enable ? PARSE_MODE_LENIENT : PARSE_MODE_STRICT;
+ if (!fields->properties->parseMode.isNull() && mode == fields->properties->parseMode.getNoError()) { return; }
+ NumberFormat::setLenient(enable); // to set field for compatibility
+ fields->properties->parseMode = mode;
+ touchNoError();
+}
- if (fImpl->fScale != 0) {
- DigitList ten;
- ten.set((int32_t)10);
- if (fImpl->fScale > 0) {
- for (int32_t i = fImpl->fScale; i > 0; i--) {
- UErrorCode ec = U_ZERO_ERROR;
- digits->div(ten,ec);
- }
- } else {
- for (int32_t i = fImpl->fScale; i < 0; i++) {
- UErrorCode ec = U_ZERO_ERROR;
- digits->mult(ten,ec);
- }
- }
- }
+DecimalFormat::DecimalFormat(const UnicodeString& pattern, DecimalFormatSymbols* symbolsToAdopt,
+ UParseError&, UErrorCode& status)
+ : DecimalFormat(symbolsToAdopt, status) {
+ // TODO: What is parseError for?
+ setPropertiesFromPattern(pattern, IGNORE_ROUNDING_IF_CURRENCY, status);
+ touch(status);
+}
- // Negative zero special case:
- // if parsing integerOnly, change to +0, which goes into an int32 in a Formattable.
- // if not parsing integerOnly, leave as -0, which a double can represent.
- if (digits->isZero() && !digits->isPositive() && isParseIntegerOnly()) {
- digits->setPositive(TRUE);
- }
- result.adoptDigitList(digits);
- }
-}
-
-
-
-UBool
-DecimalFormat::parseForCurrency(const UnicodeString& text,
- ParsePosition& parsePosition,
- DigitList& digits,
- UBool* status,
- UChar* currency) const {
- UnicodeString positivePrefix;
- UnicodeString positiveSuffix;
- UnicodeString negativePrefix;
- UnicodeString negativeSuffix;
- fImpl->fPositivePrefixPattern.toString(positivePrefix);
- fImpl->fPositiveSuffixPattern.toString(positiveSuffix);
- fImpl->fNegativePrefixPattern.toString(negativePrefix);
- fImpl->fNegativeSuffixPattern.toString(negativeSuffix);
-
- int origPos = parsePosition.getIndex();
- int maxPosIndex = origPos;
- int maxErrorPos = -1;
- // First, parse against current pattern.
- // Since current pattern could be set by applyPattern(),
- // it could be an arbitrary pattern, and it may not be the one
- // defined in current locale.
- UBool tmpStatus[fgStatusLength];
- ParsePosition tmpPos(origPos);
- DigitList tmpDigitList;
- UBool found;
- if (fStyle == UNUM_CURRENCY_PLURAL) {
- found = subparse(text,
- &negativePrefix, &negativeSuffix,
- &positivePrefix, &positiveSuffix,
- TRUE, UCURR_LONG_NAME,
- tmpPos, tmpDigitList, tmpStatus, currency);
- } else {
- found = subparse(text,
- &negativePrefix, &negativeSuffix,
- &positivePrefix, &positiveSuffix,
- TRUE, UCURR_SYMBOL_NAME,
- tmpPos, tmpDigitList, tmpStatus, currency);
- }
- if (found) {
- if (tmpPos.getIndex() > maxPosIndex) {
- maxPosIndex = tmpPos.getIndex();
- for (int32_t i = 0; i < fgStatusLength; ++i) {
- status[i] = tmpStatus[i];
- }
- digits = tmpDigitList;
- }
- } else {
- maxErrorPos = tmpPos.getErrorIndex();
- }
- // Then, parse against affix patterns.
- // Those are currency patterns and currency plural patterns.
- int32_t pos = UHASH_FIRST;
- const UHashElement* element = NULL;
- while ( (element = fAffixPatternsForCurrency->nextElement(pos)) != NULL ) {
- const UHashTok valueTok = element->value;
- const AffixPatternsForCurrency* affixPtn = (AffixPatternsForCurrency*)valueTok.pointer;
- UBool tmpStatus[fgStatusLength];
- ParsePosition tmpPos(origPos);
- DigitList tmpDigitList;
-
-#ifdef FMT_DEBUG
- debug("trying affix for currency..");
- affixPtn->dump();
-#endif
+DecimalFormat::DecimalFormat(const UnicodeString& pattern, const DecimalFormatSymbols& symbols,
+ UErrorCode& status)
+ : DecimalFormat(new DecimalFormatSymbols(symbols), status) {
+ setPropertiesFromPattern(pattern, IGNORE_ROUNDING_IF_CURRENCY, status);
+ touch(status);
+}
- UBool result = subparse(text,
- &affixPtn->negPrefixPatternForCurrency,
- &affixPtn->negSuffixPatternForCurrency,
- &affixPtn->posPrefixPatternForCurrency,
- &affixPtn->posSuffixPatternForCurrency,
- TRUE, affixPtn->patternType,
- tmpPos, tmpDigitList, tmpStatus, currency);
- if (result) {
- found = true;
- if (tmpPos.getIndex() > maxPosIndex) {
- maxPosIndex = tmpPos.getIndex();
- for (int32_t i = 0; i < fgStatusLength; ++i) {
- status[i] = tmpStatus[i];
- }
- digits = tmpDigitList;
- }
- } else {
- maxErrorPos = (tmpPos.getErrorIndex() > maxErrorPos) ?
- tmpPos.getErrorIndex() : maxErrorPos;
- }
+DecimalFormat::DecimalFormat(const DecimalFormat& source) : NumberFormat(source) {
+ // Note: it is not safe to copy fields->formatter or fWarehouse directly because fields->formatter might have
+ // dangling pointers to fields inside fWarehouse. The safe thing is to re-construct fields->formatter from
+ // the property bag, despite being somewhat slower.
+ fields = new DecimalFormatFields();
+ if (fields == nullptr) {
+ return;
}
- // Finally, parse against simple affix to find the match.
- // For example, in TestMonster suite,
- // if the to-be-parsed text is "-\u00A40,00".
- // complexAffixCompare will not find match,
- // since there is no ISO code matches "\u00A4",
- // and the parse stops at "\u00A4".
- // We will just use simple affix comparison (look for exact match)
- // to pass it.
- //
- // TODO: We should parse against simple affix first when
- // output currency is not requested. After the complex currency
- // parsing implementation was introduced, the default currency
- // instance parsing slowed down because of the new code flow.
- // I filed #10312 - Yoshito
- UBool tmpStatus_2[fgStatusLength];
- ParsePosition tmpPos_2(origPos);
- DigitList tmpDigitList_2;
-
- // Disable complex currency parsing and try it again.
- UBool result = subparse(text,
- &fImpl->fAffixes.fNegativePrefix.getOtherVariant().toString(),
- &fImpl->fAffixes.fNegativeSuffix.getOtherVariant().toString(),
- &fImpl->fAffixes.fPositivePrefix.getOtherVariant().toString(),
- &fImpl->fAffixes.fPositiveSuffix.getOtherVariant().toString(),
- FALSE /* disable complex currency parsing */, UCURR_SYMBOL_NAME,
- tmpPos_2, tmpDigitList_2, tmpStatus_2,
- currency);
- if (result) {
- if (tmpPos_2.getIndex() > maxPosIndex) {
- maxPosIndex = tmpPos_2.getIndex();
- for (int32_t i = 0; i < fgStatusLength; ++i) {
- status[i] = tmpStatus_2[i];
- }
- digits = tmpDigitList_2;
- }
- found = true;
- } else {
- maxErrorPos = (tmpPos_2.getErrorIndex() > maxErrorPos) ?
- tmpPos_2.getErrorIndex() : maxErrorPos;
+ fields->properties.adoptInstead(new DecimalFormatProperties(*source.fields->properties));
+ fields->symbols.adoptInstead(new DecimalFormatSymbols(*source.fields->symbols));
+ fields->exportedProperties.adoptInstead(new DecimalFormatProperties());
+ if (fields->properties == nullptr || fields->symbols == nullptr || fields->exportedProperties == nullptr) {
+ return;
}
+ touchNoError();
+}
- if (!found) {
- //parsePosition.setIndex(origPos);
- parsePosition.setErrorIndex(maxErrorPos);
- } else {
- parsePosition.setIndex(maxPosIndex);
- parsePosition.setErrorIndex(-1);
- }
- return found;
-}
-
-
-/**
- * Parse the given text into a number. The text is parsed beginning at
- * parsePosition, until an unparseable character is seen.
- * @param text the string to parse.
- * @param negPrefix negative prefix.
- * @param negSuffix negative suffix.
- * @param posPrefix positive prefix.
- * @param posSuffix positive suffix.
- * @param complexCurrencyParsing whether it is complex currency parsing or not.
- * @param type the currency type to parse against, LONG_NAME only or not.
- * @param parsePosition The position at which to being parsing. Upon
- * return, the first unparsed character.
- * @param digits the DigitList to set to the parsed value.
- * @param status output param containing boolean status flags indicating
- * whether the value was infinite and whether it was positive.
- * @param currency return value for parsed currency, for generic
- * currency parsing mode, or NULL for normal parsing. In generic
- * currency parsing mode, any currency is parsed, not just the
- * currency that this formatter is set to.
- */
-UBool DecimalFormat::subparse(const UnicodeString& text,
- const UnicodeString* negPrefix,
- const UnicodeString* negSuffix,
- const UnicodeString* posPrefix,
- const UnicodeString* posSuffix,
- UBool complexCurrencyParsing,
- int8_t type,
- ParsePosition& parsePosition,
- DigitList& digits, UBool* status,
- UChar* currency) const
-{
- // The parsing process builds up the number as char string, in the neutral format that
- // will be acceptable to the decNumber library, then at the end passes that string
- // off for conversion to a decNumber.
- UErrorCode err = U_ZERO_ERROR;
- CharString parsedNum;
- digits.setToZero();
-
- int32_t position = parsePosition.getIndex();
- int32_t oldStart = position;
- int32_t textLength = text.length(); // One less pointer to follow
- UBool strictParse = !isLenient();
- UChar32 zero = fImpl->getConstSymbol(DecimalFormatSymbols::kZeroDigitSymbol).char32At(0);
- const UnicodeString *groupingString = &fImpl->getConstSymbol(
- !fImpl->fMonetary ?
- DecimalFormatSymbols::kGroupingSeparatorSymbol : DecimalFormatSymbols::kMonetaryGroupingSeparatorSymbol);
- UChar32 groupingChar = groupingString->char32At(0);
- int32_t groupingStringLength = groupingString->length();
- int32_t groupingCharLength = U16_LENGTH(groupingChar);
- UBool groupingUsed = isGroupingUsed();
-#ifdef FMT_DEBUG
- UChar dbgbuf[300];
- UnicodeString s(dbgbuf,0,300);;
- s.append((UnicodeString)"PARSE \"").append(text.tempSubString(position)).append((UnicodeString)"\" " );
-#define DBGAPPD(x) if(x) { s.append(UnicodeString(#x "=")); if(x->isEmpty()) { s.append(UnicodeString("<empty>")); } else { s.append(*x); } s.append(UnicodeString(" ")); } else { s.append(UnicodeString(#x "=NULL ")); }
- DBGAPPD(negPrefix);
- DBGAPPD(negSuffix);
- DBGAPPD(posPrefix);
- DBGAPPD(posSuffix);
- debugout(s);
-#endif
-
- UBool fastParseOk = false; /* TRUE iff fast parse is OK */
- // UBool fastParseHadDecimal = FALSE; /* true if fast parse saw a decimal point. */
- if((fImpl->isParseFastpath()) && !fImpl->fMonetary &&
- text.length()>0 &&
- text.length()<32 &&
- (posPrefix==NULL||posPrefix->isEmpty()) &&
- (posSuffix==NULL||posSuffix->isEmpty()) &&
- // (negPrefix==NULL||negPrefix->isEmpty()) &&
- // (negSuffix==NULL||(negSuffix->isEmpty()) ) &&
- TRUE) { // optimized path
- int j=position;
- int l=text.length();
- int digitCount=0;
- UChar32 ch = text.char32At(j);
- const UnicodeString *decimalString = &fImpl->getConstSymbol(DecimalFormatSymbols::kDecimalSeparatorSymbol);
- UChar32 decimalChar = 0;
- UBool intOnly = FALSE;
- UChar32 lookForGroup = (groupingUsed&&intOnly&&strictParse)?groupingChar:0;
-
- int32_t decimalCount = decimalString->countChar32(0,3);
- if(isParseIntegerOnly()) {
- decimalChar = 0; // not allowed
- intOnly = TRUE; // Don't look for decimals.
- } else if(decimalCount==1) {
- decimalChar = decimalString->char32At(0); // Look for this decimal
- } else if(decimalCount==0) {
- decimalChar=0; // NO decimal set
- } else {
- j=l+1;//Set counter to end of line, so that we break. Unknown decimal situation.
- }
-
-#ifdef FMT_DEBUG
- printf("Preparing to do fastpath parse: decimalChar=U+%04X, groupingChar=U+%04X, first ch=U+%04X intOnly=%c strictParse=%c\n",
- decimalChar, groupingChar, ch,
- (intOnly)?'y':'n',
- (strictParse)?'y':'n');
-#endif
- if(ch==0x002D) { // '-'
- j=l+1;//=break - negative number.
-
- /*
- parsedNum.append('-',err);
- j+=U16_LENGTH(ch);
- if(j<l) ch = text.char32At(j);
- */
- } else {
- parsedNum.append('+',err);
- }
- while(j<l) {
- int32_t digit = ch - zero;
- if(digit >=0 && digit <= 9) {
- parsedNum.append((char)(digit + '0'), err);
- if((digitCount>0) || digit!=0 || j==(l-1)) {
- digitCount++;
- }
- } else if(ch == 0) { // break out
- digitCount=-1;
- break;
- } else if(ch == decimalChar) {
- parsedNum.append((char)('.'), err);
- decimalChar=0; // no more decimals.
- // fastParseHadDecimal=TRUE;
- } else if(ch == lookForGroup) {
- // ignore grouping char. No decimals, so it has to be an ignorable grouping sep
- } else if(intOnly && (lookForGroup!=0) && !u_isdigit(ch)) {
- // parsing integer only and can fall through
- } else {
- digitCount=-1; // fail - fall through to slow parse
- break;
- }
- j+=U16_LENGTH(ch);
- ch = text.char32At(j); // for next
- }
- if(
- ((j==l)||intOnly) // end OR only parsing integer
- && (digitCount>0)) { // and have at least one digit
- fastParseOk=true; // Fast parse OK!
-
-#ifdef SKIP_OPT
- debug("SKIP_OPT");
- /* for testing, try it the slow way. also */
- fastParseOk=false;
- parsedNum.clear();
-#else
- parsePosition.setIndex(position=j);
- status[fgStatusInfinite]=false;
-#endif
- } else {
- // was not OK. reset, retry
-#ifdef FMT_DEBUG
- printf("Fall through: j=%d, l=%d, digitCount=%d\n", j, l, digitCount);
-#endif
- parsedNum.clear();
- }
- } else {
-#ifdef FMT_DEBUG
- printf("Could not fastpath parse. ");
- printf("text.length()=%d ", text.length());
- printf("posPrefix=%p posSuffix=%p ", posPrefix, posSuffix);
+DecimalFormat& DecimalFormat::operator=(const DecimalFormat& rhs) {
+ *fields->properties = *rhs.fields->properties;
+ fields->exportedProperties->clear();
+ fields->symbols.adoptInstead(new DecimalFormatSymbols(*rhs.fields->symbols));
+ touchNoError();
+ return *this;
+}
- printf("\n");
-#endif
- }
+DecimalFormat::~DecimalFormat() {
+ delete fields->atomicParser.exchange(nullptr);
+ delete fields->atomicCurrencyParser.exchange(nullptr);
+ delete fields;
+}
- UnicodeString formatPattern;
- toPattern(formatPattern);
+Format* DecimalFormat::clone() const {
+ return new DecimalFormat(*this);
+}
- if(!fastParseOk
-#if UCONFIG_HAVE_PARSEALLINPUT
- && fParseAllInput!=UNUM_YES
-#endif
- )
- {
- int32_t formatWidth = fImpl->getOldFormatWidth();
- // Match padding before prefix
- if (formatWidth > 0 && fImpl->fAffixes.fPadPosition == DigitAffixesAndPadding::kPadBeforePrefix) {
- position = skipPadding(text, position);
- }
-
- // Match positive and negative prefixes; prefer longest match.
- int32_t posMatch = compareAffix(text, position, FALSE, TRUE, posPrefix, complexCurrencyParsing, type, currency);
- int32_t negMatch = compareAffix(text, position, TRUE, TRUE, negPrefix, complexCurrencyParsing, type, currency);
- if (posMatch >= 0 && negMatch >= 0) {
- if (posMatch > negMatch) {
- negMatch = -1;
- } else if (negMatch > posMatch) {
- posMatch = -1;
- }
- }
- if (posMatch >= 0) {
- position += posMatch;
- parsedNum.append('+', err);
- } else if (negMatch >= 0) {
- position += negMatch;
- parsedNum.append('-', err);
- } else if (strictParse){
- parsePosition.setErrorIndex(position);
- return FALSE;
- } else {
- // Temporary set positive. This might be changed after checking suffix
- parsedNum.append('+', err);
+UBool DecimalFormat::operator==(const Format& other) const {
+ auto* otherDF = dynamic_cast<const DecimalFormat*>(&other);
+ if (otherDF == nullptr) {
+ return false;
}
+ return *fields->properties == *otherDF->fields->properties && *fields->symbols == *otherDF->fields->symbols;
+}
- // Match padding before prefix
- if (formatWidth > 0 && fImpl->fAffixes.fPadPosition == DigitAffixesAndPadding::kPadAfterPrefix) {
- position = skipPadding(text, position);
+UnicodeString& DecimalFormat::format(double number, UnicodeString& appendTo, FieldPosition& pos) const {
+ if (pos.getField() == FieldPosition::DONT_CARE && fastFormatDouble(number, appendTo)) {
+ return appendTo;
}
+ UErrorCode localStatus = U_ZERO_ERROR;
+ FormattedNumber output = fields->formatter->formatDouble(number, localStatus);
+ fieldPositionHelper(output, pos, appendTo.length(), localStatus);
+ auto appendable = UnicodeStringAppendable(appendTo);
+ output.appendTo(appendable);
+ return appendTo;
+}
- if (! strictParse) {
- position = skipUWhiteSpace(text, position);
+UnicodeString& DecimalFormat::format(double number, UnicodeString& appendTo, FieldPosition& pos,
+ UErrorCode& status) const {
+ if (pos.getField() == FieldPosition::DONT_CARE && fastFormatDouble(number, appendTo)) {
+ return appendTo;
}
+ FormattedNumber output = fields->formatter->formatDouble(number, status);
+ fieldPositionHelper(output, pos, appendTo.length(), status);
+ auto appendable = UnicodeStringAppendable(appendTo);
+ output.appendTo(appendable);
+ return appendTo;
+}
- // process digits or Inf, find decimal position
- const UnicodeString *inf = &fImpl->getConstSymbol(DecimalFormatSymbols::kInfinitySymbol);
- int32_t infLen = (text.compare(position, inf->length(), *inf)
- ? 0 : inf->length());
- position += infLen; // infLen is non-zero when it does equal to infinity
- status[fgStatusInfinite] = infLen != 0;
-
- if (infLen != 0) {
- parsedNum.append("Infinity", err);
- } else {
- // We now have a string of digits, possibly with grouping symbols,
- // and decimal points. We want to process these into a DigitList.
- // We don't want to put a bunch of leading zeros into the DigitList
- // though, so we keep track of the location of the decimal point,
- // put only significant digits into the DigitList, and adjust the
- // exponent as needed.
-
-
- UBool strictFail = FALSE; // did we exit with a strict parse failure?
- int32_t lastGroup = -1; // after which digit index did we last see a grouping separator?
- int32_t currGroup = -1; // for temporary storage the digit index of the current grouping separator
- int32_t gs2 = fImpl->fEffGrouping.fGrouping2 == 0 ? fImpl->fEffGrouping.fGrouping : fImpl->fEffGrouping.fGrouping2;
-
- const UnicodeString *decimalString;
- if (fImpl->fMonetary) {
- decimalString = &fImpl->getConstSymbol(DecimalFormatSymbols::kMonetarySeparatorSymbol);
- } else {
- decimalString = &fImpl->getConstSymbol(DecimalFormatSymbols::kDecimalSeparatorSymbol);
- }
- UChar32 decimalChar = decimalString->char32At(0);
- int32_t decimalStringLength = decimalString->length();
- int32_t decimalCharLength = U16_LENGTH(decimalChar);
-
- UBool sawDecimal = FALSE;
- UChar32 sawDecimalChar = 0xFFFF;
- UBool sawGrouping = FALSE;
- UChar32 sawGroupingChar = 0xFFFF;
- UBool sawDigit = FALSE;
- int32_t backup = -1;
- int32_t digit;
-
- // equivalent grouping and decimal support
- const UnicodeSet *decimalSet = NULL;
- const UnicodeSet *groupingSet = NULL;
-
- if (decimalCharLength == decimalStringLength) {
- decimalSet = DecimalFormatStaticSets::getSimilarDecimals(decimalChar, strictParse);
- }
-
- if (groupingCharLength == groupingStringLength) {
- if (strictParse) {
- groupingSet = fStaticSets->fStrictDefaultGroupingSeparators;
- } else {
- groupingSet = fStaticSets->fDefaultGroupingSeparators;
- }
- }
-
- // We need to test groupingChar and decimalChar separately from groupingSet and decimalSet, if the sets are even initialized.
- // If sawDecimal is TRUE, only consider sawDecimalChar and NOT decimalSet
- // If a character matches decimalSet, don't consider it to be a member of the groupingSet.
-
- // We have to track digitCount ourselves, because digits.fCount will
- // pin when the maximum allowable digits is reached.
- int32_t digitCount = 0;
- int32_t integerDigitCount = 0;
-
- for (; position < textLength; )
- {
- UChar32 ch = text.char32At(position);
-
- /* We recognize all digit ranges, not only the Latin digit range
- * '0'..'9'. We do so by using the Character.digit() method,
- * which converts a valid Unicode digit to the range 0..9.
- *
- * The character 'ch' may be a digit. If so, place its value
- * from 0 to 9 in 'digit'. First try using the locale digit,
- * which may or MAY NOT be a standard Unicode digit range. If
- * this fails, try using the standard Unicode digit ranges by
- * calling Character.digit(). If this also fails, digit will
- * have a value outside the range 0..9.
- */
- digit = ch - zero;
- if (digit < 0 || digit > 9)
- {
- digit = u_charDigitValue(ch);
- }
-
- // As a last resort, look through the localized digits if the zero digit
- // is not a "standard" Unicode digit.
- if ( (digit < 0 || digit > 9) && u_charDigitValue(zero) != 0) {
- digit = 0;
- if ( fImpl->getConstSymbol((DecimalFormatSymbols::ENumberFormatSymbol)(DecimalFormatSymbols::kZeroDigitSymbol)).char32At(0) == ch ) {
- break;
- }
- for (digit = 1 ; digit < 10 ; digit++ ) {
- if ( fImpl->getConstSymbol((DecimalFormatSymbols::ENumberFormatSymbol)(DecimalFormatSymbols::kOneDigitSymbol+digit-1)).char32At(0) == ch ) {
- break;
- }
- }
- }
-
- if (digit >= 0 && digit <= 9)
- {
- if (strictParse && backup != -1) {
- // comma followed by digit, so group before comma is a
- // secondary group. If there was a group separator
- // before that, the group must == the secondary group
- // length, else it can be <= the the secondary group
- // length.
- if ((lastGroup != -1 && currGroup - lastGroup != gs2) ||
- (lastGroup == -1 && digitCount - 1 > gs2)) {
- strictFail = TRUE;
- break;
- }
-
- lastGroup = currGroup;
- }
-
- // Cancel out backup setting (see grouping handler below)
- currGroup = -1;
- backup = -1;
- sawDigit = TRUE;
-
- // Note: this will append leading zeros
- parsedNum.append((char)(digit + '0'), err);
-
- // count any digit that's not a leading zero
- if (digit > 0 || digitCount > 0 || sawDecimal) {
- digitCount += 1;
-
- // count any integer digit that's not a leading zero
- if (! sawDecimal) {
- integerDigitCount += 1;
- }
- }
-
- position += U16_LENGTH(ch);
- }
- else if (groupingStringLength > 0 &&
- matchGrouping(groupingChar, sawGrouping, sawGroupingChar, groupingSet,
- decimalChar, decimalSet,
- ch) && groupingUsed)
- {
- if (sawDecimal) {
- break;
- }
-
- if (strictParse) {
- if ((!sawDigit || backup != -1)) {
- // leading group, or two group separators in a row
- strictFail = TRUE;
- break;
- }
- }
-
- // Ignore grouping characters, if we are using them, but require
- // that they be followed by a digit. Otherwise we backup and
- // reprocess them.
- currGroup = digitCount;
- backup = position;
- position += groupingStringLength;
- sawGrouping=TRUE;
- // Once we see a grouping character, we only accept that grouping character from then on.
- sawGroupingChar=ch;
- }
- else if (matchDecimal(decimalChar,sawDecimal,sawDecimalChar, decimalSet, ch))
- {
- if (strictParse) {
- if (backup != -1 ||
- (lastGroup != -1 && digitCount - lastGroup != fImpl->fEffGrouping.fGrouping)) {
- strictFail = TRUE;
- break;
- }
- }
-
- // If we're only parsing integers, or if we ALREADY saw the
- // decimal, then don't parse this one.
- if (isParseIntegerOnly() || sawDecimal) {
- break;
- }
-
- parsedNum.append('.', err);
- position += decimalStringLength;
- sawDecimal = TRUE;
- // Once we see a decimal character, we only accept that decimal character from then on.
- sawDecimalChar=ch;
- // decimalSet is considered to consist of (ch,ch)
- }
- else {
-
- if(!fBoolFlags.contains(UNUM_PARSE_NO_EXPONENT) || // don't parse if this is set unless..
- isScientificNotation()) { // .. it's an exponent format - ignore setting and parse anyways
- const UnicodeString *tmp;
- tmp = &fImpl->getConstSymbol(DecimalFormatSymbols::kExponentialSymbol);
- // TODO: CASE
- if (!text.caseCompare(position, tmp->length(), *tmp, U_FOLD_CASE_DEFAULT)) // error code is set below if !sawDigit
- {
- // Parse sign, if present
- int32_t pos = position + tmp->length();
- char exponentSign = '+';
-
- if (pos < textLength)
- {
- tmp = &fImpl->getConstSymbol(DecimalFormatSymbols::kPlusSignSymbol);
- if (!text.compare(pos, tmp->length(), *tmp))
- {
- pos += tmp->length();
- }
- else {
- tmp = &fImpl->getConstSymbol(DecimalFormatSymbols::kMinusSignSymbol);
- if (!text.compare(pos, tmp->length(), *tmp))
- {
- exponentSign = '-';
- pos += tmp->length();
- }
- }
- }
-
- UBool sawExponentDigit = FALSE;
- while (pos < textLength) {
- ch = text.char32At(pos);
- digit = ch - zero;
-
- if (digit < 0 || digit > 9) {
- digit = u_charDigitValue(ch);
- }
- if (0 <= digit && digit <= 9) {
- if (!sawExponentDigit) {
- parsedNum.append('E', err);
- parsedNum.append(exponentSign, err);
- sawExponentDigit = TRUE;
- }
- pos += U16_LENGTH(ch);
- parsedNum.append((char)(digit + '0'), err);
- } else {
- break;
- }
- }
-
- if (sawExponentDigit) {
- position = pos; // Advance past the exponent
- }
-
- break; // Whether we fail or succeed, we exit this loop
- } else {
- break;
- }
- } else { // not parsing exponent
- break;
- }
- }
- }
-
- // if we didn't see a decimal and it is required, check to see if the pattern had one
- if(!sawDecimal && isDecimalPatternMatchRequired())
- {
- if(formatPattern.indexOf(kPatternDecimalSeparator) != -1)
- {
- parsePosition.setIndex(oldStart);
- parsePosition.setErrorIndex(position);
- debug("decimal point match required fail!");
- return FALSE;
- }
- }
-
- if (backup != -1)
- {
- position = backup;
- }
-
- if (strictParse && !sawDecimal) {
- if (lastGroup != -1 && digitCount - lastGroup != fImpl->fEffGrouping.fGrouping) {
- strictFail = TRUE;
- }
- }
+UnicodeString&
+DecimalFormat::format(double number, UnicodeString& appendTo, FieldPositionIterator* posIter,
+ UErrorCode& status) const {
+ if (posIter == nullptr && fastFormatDouble(number, appendTo)) {
+ return appendTo;
+ }
+ FormattedNumber output = fields->formatter->formatDouble(number, status);
+ fieldPositionIteratorHelper(output, posIter, appendTo.length(), status);
+ auto appendable = UnicodeStringAppendable(appendTo);
+ output.appendTo(appendable);
+ return appendTo;
+}
- if (strictFail) {
- // only set with strictParse and a grouping separator error
+UnicodeString& DecimalFormat::format(int32_t number, UnicodeString& appendTo, FieldPosition& pos) const {
+ return format(static_cast<int64_t> (number), appendTo, pos);
+}
- parsePosition.setIndex(oldStart);
- parsePosition.setErrorIndex(position);
- debug("strictFail!");
- return FALSE;
- }
+UnicodeString& DecimalFormat::format(int32_t number, UnicodeString& appendTo, FieldPosition& pos,
+ UErrorCode& status) const {
+ return format(static_cast<int64_t> (number), appendTo, pos, status);
+}
- // If there was no decimal point we have an integer
+UnicodeString&
+DecimalFormat::format(int32_t number, UnicodeString& appendTo, FieldPositionIterator* posIter,
+ UErrorCode& status) const {
+ return format(static_cast<int64_t> (number), appendTo, posIter, status);
+}
- // If none of the text string was recognized. For example, parse
- // "x" with pattern "#0.00" (return index and error index both 0)
- // parse "$" with pattern "$#0.00". (return index 0 and error index
- // 1).
- if (!sawDigit && digitCount == 0) {
-#ifdef FMT_DEBUG
- debug("none of text rec");
- printf("position=%d\n",position);
-#endif
- parsePosition.setIndex(oldStart);
- parsePosition.setErrorIndex(oldStart);
- return FALSE;
- }
+UnicodeString& DecimalFormat::format(int64_t number, UnicodeString& appendTo, FieldPosition& pos) const {
+ if (pos.getField() == FieldPosition::DONT_CARE && fastFormatInt64(number, appendTo)) {
+ return appendTo;
}
+ UErrorCode localStatus = U_ZERO_ERROR;
+ FormattedNumber output = fields->formatter->formatInt(number, localStatus);
+ fieldPositionHelper(output, pos, appendTo.length(), localStatus);
+ auto appendable = UnicodeStringAppendable(appendTo);
+ output.appendTo(appendable);
+ return appendTo;
+}
- // Match padding before suffix
- if (formatWidth > 0 && fImpl->fAffixes.fPadPosition == DigitAffixesAndPadding::kPadBeforeSuffix) {
- position = skipPadding(text, position);
+UnicodeString& DecimalFormat::format(int64_t number, UnicodeString& appendTo, FieldPosition& pos,
+ UErrorCode& status) const {
+ if (pos.getField() == FieldPosition::DONT_CARE && fastFormatInt64(number, appendTo)) {
+ return appendTo;
}
+ FormattedNumber output = fields->formatter->formatInt(number, status);
+ fieldPositionHelper(output, pos, appendTo.length(), status);
+ auto appendable = UnicodeStringAppendable(appendTo);
+ output.appendTo(appendable);
+ return appendTo;
+}
- int32_t posSuffixMatch = -1, negSuffixMatch = -1;
-
- // Match positive and negative suffixes; prefer longest match.
- if (posMatch >= 0 || (!strictParse && negMatch < 0)) {
- posSuffixMatch = compareAffix(text, position, FALSE, FALSE, posSuffix, complexCurrencyParsing, type, currency);
- }
- if (negMatch >= 0) {
- negSuffixMatch = compareAffix(text, position, TRUE, FALSE, negSuffix, complexCurrencyParsing, type, currency);
- }
- if (posSuffixMatch >= 0 && negSuffixMatch >= 0) {
- if (posSuffixMatch > negSuffixMatch) {
- negSuffixMatch = -1;
- } else if (negSuffixMatch > posSuffixMatch) {
- posSuffixMatch = -1;
- }
+UnicodeString&
+DecimalFormat::format(int64_t number, UnicodeString& appendTo, FieldPositionIterator* posIter,
+ UErrorCode& status) const {
+ if (posIter == nullptr && fastFormatInt64(number, appendTo)) {
+ return appendTo;
}
+ FormattedNumber output = fields->formatter->formatInt(number, status);
+ fieldPositionIteratorHelper(output, posIter, appendTo.length(), status);
+ auto appendable = UnicodeStringAppendable(appendTo);
+ output.appendTo(appendable);
+ return appendTo;
+}
- // Fail if neither or both
- if (strictParse && ((posSuffixMatch >= 0) == (negSuffixMatch >= 0))) {
- parsePosition.setErrorIndex(position);
- debug("neither or both");
- return FALSE;
- }
+UnicodeString&
+DecimalFormat::format(StringPiece number, UnicodeString& appendTo, FieldPositionIterator* posIter,
+ UErrorCode& status) const {
+ FormattedNumber output = fields->formatter->formatDecimal(number, status);
+ fieldPositionIteratorHelper(output, posIter, appendTo.length(), status);
+ auto appendable = UnicodeStringAppendable(appendTo);
+ output.appendTo(appendable);
+ return appendTo;
+}
- position += (posSuffixMatch >= 0 ? posSuffixMatch : (negSuffixMatch >= 0 ? negSuffixMatch : 0));
+UnicodeString& DecimalFormat::format(const DecimalQuantity& number, UnicodeString& appendTo,
+ FieldPositionIterator* posIter, UErrorCode& status) const {
+ FormattedNumber output = fields->formatter->formatDecimalQuantity(number, status);
+ fieldPositionIteratorHelper(output, posIter, appendTo.length(), status);
+ auto appendable = UnicodeStringAppendable(appendTo);
+ output.appendTo(appendable);
+ return appendTo;
+}
- // Match padding before suffix
- if (formatWidth > 0 && fImpl->fAffixes.fPadPosition == DigitAffixesAndPadding::kPadAfterSuffix) {
- position = skipPadding(text, position);
+UnicodeString&
+DecimalFormat::format(const DecimalQuantity& number, UnicodeString& appendTo, FieldPosition& pos,
+ UErrorCode& status) const {
+ FormattedNumber output = fields->formatter->formatDecimalQuantity(number, status);
+ fieldPositionHelper(output, pos, appendTo.length(), status);
+ auto appendable = UnicodeStringAppendable(appendTo);
+ output.appendTo(appendable);
+ return appendTo;
+}
+
+void DecimalFormat::parse(const UnicodeString& text, Formattable& output,
+ ParsePosition& parsePosition) const {
+ if (parsePosition.getIndex() < 0 || parsePosition.getIndex() >= text.length()) {
+ return;
}
- parsePosition.setIndex(position);
-
- parsedNum.data()[0] = (posSuffixMatch >= 0 || (!strictParse && negMatch < 0 && negSuffixMatch < 0)) ? '+' : '-';
-#ifdef FMT_DEBUG
-printf("PP -> %d, SLOW = [%s]! pp=%d, os=%d, err=%s\n", position, parsedNum.data(), parsePosition.getIndex(),oldStart,u_errorName(err));
-#endif
- } /* end SLOW parse */
- if(parsePosition.getIndex() == oldStart)
- {
-#ifdef FMT_DEBUG
- printf(" PP didnt move, err\n");
-#endif
- parsePosition.setErrorIndex(position);
- return FALSE;
- }
-#if UCONFIG_HAVE_PARSEALLINPUT
- else if (fParseAllInput==UNUM_YES&&parsePosition.getIndex()!=textLength)
- {
-#ifdef FMT_DEBUG
- printf(" PP didnt consume all (UNUM_YES), err\n");
-#endif
- parsePosition.setErrorIndex(position);
- return FALSE;
- }
-#endif
- // uint32_t bits = (fastParseOk?kFastpathOk:0) |
- // (fastParseHadDecimal?0:kNoDecimal);
- //printf("FPOK=%d, FPHD=%d, bits=%08X\n", fastParseOk, fastParseHadDecimal, bits);
- digits.set(parsedNum.toStringPiece(),
- err,
- 0//bits
- );
-
- if (U_FAILURE(err)) {
-#ifdef FMT_DEBUG
- printf(" err setting %s\n", u_errorName(err));
-#endif
- parsePosition.setErrorIndex(position);
- return FALSE;
- }
-
- // check if we missed a required decimal point
- if(fastParseOk && isDecimalPatternMatchRequired())
- {
- if(formatPattern.indexOf(kPatternDecimalSeparator) != -1)
- {
- parsePosition.setIndex(oldStart);
- parsePosition.setErrorIndex(position);
- debug("decimal point match required fail!");
- return FALSE;
- }
+ ErrorCode status;
+ ParsedNumber result;
+ // Note: if this is a currency instance, currencies will be matched despite the fact that we are not in the
+ // parseCurrency method (backwards compatibility)
+ int32_t startIndex = parsePosition.getIndex();
+ const NumberParserImpl* parser = getParser(status);
+ if (U_FAILURE(status)) { return; }
+ parser->parse(text, startIndex, true, result, status);
+ // TODO: Do we need to check for fImpl->properties->parseAllInput (UCONFIG_HAVE_PARSEALLINPUT) here?
+ if (result.success()) {
+ parsePosition.setIndex(result.charEnd);
+ result.populateFormattable(output, parser->getParseFlags());
+ } else {
+ parsePosition.setErrorIndex(startIndex + result.charEnd);
}
+}
-
- return TRUE;
-}
-
-/**
- * Starting at position, advance past a run of pad characters, if any.
- * Return the index of the first character after position that is not a pad
- * character. Result is >= position.
- */
-int32_t DecimalFormat::skipPadding(const UnicodeString& text, int32_t position) const {
- int32_t padLen = U16_LENGTH(fImpl->fAffixes.fPadChar);
- while (position < text.length() &&
- text.char32At(position) == fImpl->fAffixes.fPadChar) {
- position += padLen;
- }
- return position;
-}
-
-/**
- * Return the length matched by the given affix, or -1 if none.
- * Runs of white space in the affix, match runs of white space in
- * the input. Pattern white space and input white space are
- * determined differently; see code.
- * @param text input text
- * @param pos offset into input at which to begin matching
- * @param isNegative
- * @param isPrefix
- * @param affixPat affix pattern used for currency affix comparison.
- * @param complexCurrencyParsing whether it is currency parsing or not
- * @param type the currency type to parse against, LONG_NAME only or not.
- * @param currency return value for parsed currency, for generic
- * currency parsing mode, or null for normal parsing. In generic
- * currency parsing mode, any currency is parsed, not just the
- * currency that this formatter is set to.
- * @return length of input that matches, or -1 if match failure
- */
-int32_t DecimalFormat::compareAffix(const UnicodeString& text,
- int32_t pos,
- UBool isNegative,
- UBool isPrefix,
- const UnicodeString* affixPat,
- UBool complexCurrencyParsing,
- int8_t type,
- UChar* currency) const
-{
- const UnicodeString *patternToCompare;
- if (currency != NULL ||
- (fImpl->fMonetary && complexCurrencyParsing)) {
-
- if (affixPat != NULL) {
- return compareComplexAffix(*affixPat, text, pos, type, currency);
- }
+CurrencyAmount* DecimalFormat::parseCurrency(const UnicodeString& text, ParsePosition& parsePosition) const {
+ if (parsePosition.getIndex() < 0 || parsePosition.getIndex() >= text.length()) {
+ return nullptr;
}
- if (isNegative) {
- if (isPrefix) {
- patternToCompare = &fImpl->fAffixes.fNegativePrefix.getOtherVariant().toString();
- }
- else {
- patternToCompare = &fImpl->fAffixes.fNegativeSuffix.getOtherVariant().toString();
- }
- }
- else {
- if (isPrefix) {
- patternToCompare = &fImpl->fAffixes.fPositivePrefix.getOtherVariant().toString();
- }
- else {
- patternToCompare = &fImpl->fAffixes.fPositiveSuffix.getOtherVariant().toString();
- }
+ ErrorCode status;
+ ParsedNumber result;
+ // Note: if this is a currency instance, currencies will be matched despite the fact that we are not in the
+ // parseCurrency method (backwards compatibility)
+ int32_t startIndex = parsePosition.getIndex();
+ const NumberParserImpl* parser = getCurrencyParser(status);
+ if (U_FAILURE(status)) { return nullptr; }
+ parser->parse(text, startIndex, true, result, status);
+ // TODO: Do we need to check for fImpl->properties->parseAllInput (UCONFIG_HAVE_PARSEALLINPUT) here?
+ if (result.success()) {
+ parsePosition.setIndex(result.charEnd);
+ Formattable formattable;
+ result.populateFormattable(formattable, parser->getParseFlags());
+ return new CurrencyAmount(formattable, result.currencyCode, status);
+ } else {
+ parsePosition.setErrorIndex(startIndex + result.charEnd);
+ return nullptr;
}
- return compareSimpleAffix(*patternToCompare, text, pos, isLenient());
}
-UBool DecimalFormat::equalWithSignCompatibility(UChar32 lhs, UChar32 rhs) const {
- if (lhs == rhs) {
- return TRUE;
- }
- U_ASSERT(fStaticSets != NULL); // should already be loaded
- const UnicodeSet *minusSigns = fStaticSets->fMinusSigns;
- const UnicodeSet *plusSigns = fStaticSets->fPlusSigns;
- return (minusSigns->contains(lhs) && minusSigns->contains(rhs)) ||
- (plusSigns->contains(lhs) && plusSigns->contains(rhs));
+const DecimalFormatSymbols* DecimalFormat::getDecimalFormatSymbols(void) const {
+ return fields->symbols.getAlias();
}
-// check for LRM 0x200E, RLM 0x200F, ALM 0x061C
-#define IS_BIDI_MARK(c) (c==0x200E || c==0x200F || c==0x061C)
+void DecimalFormat::adoptDecimalFormatSymbols(DecimalFormatSymbols* symbolsToAdopt) {
+ if (symbolsToAdopt == nullptr) {
+ return; // do not allow caller to set fields->symbols to NULL
+ }
+ fields->symbols.adoptInstead(symbolsToAdopt);
+ touchNoError();
+}
-#define TRIM_BUFLEN 32
-UnicodeString& DecimalFormat::trimMarksFromAffix(const UnicodeString& affix, UnicodeString& trimmedAffix) {
- UChar trimBuf[TRIM_BUFLEN];
- int32_t affixLen = affix.length();
- int32_t affixPos, trimLen = 0;
+void DecimalFormat::setDecimalFormatSymbols(const DecimalFormatSymbols& symbols) {
+ fields->symbols.adoptInstead(new DecimalFormatSymbols(symbols));
+ touchNoError();
+}
- for (affixPos = 0; affixPos < affixLen; affixPos++) {
- UChar c = affix.charAt(affixPos);
- if (!IS_BIDI_MARK(c)) {
- if (trimLen < TRIM_BUFLEN) {
- trimBuf[trimLen++] = c;
- } else {
- trimLen = 0;
- break;
- }
- }
- }
- return (trimLen > 0)? trimmedAffix.setTo(trimBuf, trimLen): trimmedAffix.setTo(affix);
-}
-
-/**
- * Return the length matched by the given affix, or -1 if none.
- * Runs of white space in the affix, match runs of white space in
- * the input. Pattern white space and input white space are
- * determined differently; see code.
- * @param affix pattern string, taken as a literal
- * @param input input text
- * @param pos offset into input at which to begin matching
- * @return length of input that matches, or -1 if match failure
- */
-int32_t DecimalFormat::compareSimpleAffix(const UnicodeString& affix,
- const UnicodeString& input,
- int32_t pos,
- UBool lenient) const {
- int32_t start = pos;
- UnicodeString trimmedAffix;
- // For more efficiency we should keep lazily-created trimmed affixes around in
- // instance variables instead of trimming each time they are used (the next step)
- trimMarksFromAffix(affix, trimmedAffix);
- UChar32 affixChar = trimmedAffix.char32At(0);
- int32_t affixLength = trimmedAffix.length();
- int32_t inputLength = input.length();
- int32_t affixCharLength = U16_LENGTH(affixChar);
- UnicodeSet *affixSet;
- UErrorCode status = U_ZERO_ERROR;
-
- U_ASSERT(fStaticSets != NULL); // should already be loaded
+const CurrencyPluralInfo* DecimalFormat::getCurrencyPluralInfo(void) const {
+ return fields->properties->currencyPluralInfo.fPtr.getAlias();
+}
- if (U_FAILURE(status)) {
- return -1;
- }
- if (!lenient) {
- affixSet = fStaticSets->fStrictDashEquivalents;
-
- // If the trimmedAffix is exactly one character long and that character
- // is in the dash set and the very next input character is also
- // in the dash set, return a match.
- if (affixCharLength == affixLength && affixSet->contains(affixChar)) {
- UChar32 ic = input.char32At(pos);
- if (affixSet->contains(ic)) {
- pos += U16_LENGTH(ic);
- pos = skipBidiMarks(input, pos); // skip any trailing bidi marks
- return pos - start;
- }
- }
+void DecimalFormat::adoptCurrencyPluralInfo(CurrencyPluralInfo* toAdopt) {
+ fields->properties->currencyPluralInfo.fPtr.adoptInstead(toAdopt);
+ touchNoError();
+}
- for (int32_t i = 0; i < affixLength; ) {
- UChar32 c = trimmedAffix.char32At(i);
- int32_t len = U16_LENGTH(c);
- if (PatternProps::isWhiteSpace(c)) {
- // We may have a pattern like: \u200F \u0020
- // and input text like: \u200F \u0020
- // Note that U+200F and U+0020 are Pattern_White_Space but only
- // U+0020 is UWhiteSpace. So we have to first do a direct
- // match of the run of Pattern_White_Space in the pattern,
- // then match any extra characters.
- UBool literalMatch = FALSE;
- while (pos < inputLength) {
- UChar32 ic = input.char32At(pos);
- if (ic == c) {
- literalMatch = TRUE;
- i += len;
- pos += len;
- if (i == affixLength) {
- break;
- }
- c = trimmedAffix.char32At(i);
- len = U16_LENGTH(c);
- if (!PatternProps::isWhiteSpace(c)) {
- break;
- }
- } else if (IS_BIDI_MARK(ic)) {
- pos ++; // just skip over this input text
- } else {
- break;
- }
- }
-
- // Advance over run in pattern
- i = skipPatternWhiteSpace(trimmedAffix, i);
-
- // Advance over run in input text
- // Must see at least one white space char in input,
- // unless we've already matched some characters literally.
- int32_t s = pos;
- pos = skipUWhiteSpace(input, pos);
- if (pos == s && !literalMatch) {
- return -1;
- }
-
- // If we skip UWhiteSpace in the input text, we need to skip it in the pattern.
- // Otherwise, the previous lines may have skipped over text (such as U+00A0) that
- // is also in the trimmedAffix.
- i = skipUWhiteSpace(trimmedAffix, i);
- } else {
- UBool match = FALSE;
- while (pos < inputLength) {
- UChar32 ic = input.char32At(pos);
- if (!match && ic == c) {
- i += len;
- pos += len;
- match = TRUE;
- } else if (IS_BIDI_MARK(ic)) {
- pos++; // just skip over this input text
- } else {
- break;
- }
- }
- if (!match) {
- return -1;
- }
- }
- }
+void DecimalFormat::setCurrencyPluralInfo(const CurrencyPluralInfo& info) {
+ if (fields->properties->currencyPluralInfo.fPtr.isNull()) {
+ fields->properties->currencyPluralInfo.fPtr.adoptInstead(info.clone());
} else {
- UBool match = FALSE;
+ *fields->properties->currencyPluralInfo.fPtr = info; // copy-assignment operator
+ }
+ touchNoError();
+}
- affixSet = fStaticSets->fDashEquivalents;
+UnicodeString& DecimalFormat::getPositivePrefix(UnicodeString& result) const {
+ ErrorCode localStatus;
+ fields->formatter->getAffixImpl(true, false, result, localStatus);
+ return result;
+}
- if (affixCharLength == affixLength && affixSet->contains(affixChar)) {
- pos = skipUWhiteSpaceAndMarks(input, pos);
- UChar32 ic = input.char32At(pos);
+void DecimalFormat::setPositivePrefix(const UnicodeString& newValue) {
+ if (newValue == fields->properties->positivePrefix) { return; }
+ fields->properties->positivePrefix = newValue;
+ touchNoError();
+}
- if (affixSet->contains(ic)) {
- pos += U16_LENGTH(ic);
- pos = skipBidiMarks(input, pos);
- return pos - start;
- }
- }
+UnicodeString& DecimalFormat::getNegativePrefix(UnicodeString& result) const {
+ ErrorCode localStatus;
+ fields->formatter->getAffixImpl(true, true, result, localStatus);
+ return result;
+}
- for (int32_t i = 0; i < affixLength; )
- {
- //i = skipRuleWhiteSpace(trimmedAffix, i);
- i = skipUWhiteSpace(trimmedAffix, i);
- pos = skipUWhiteSpaceAndMarks(input, pos);
+void DecimalFormat::setNegativePrefix(const UnicodeString& newValue) {
+ if (newValue == fields->properties->negativePrefix) { return; }
+ fields->properties->negativePrefix = newValue;
+ touchNoError();
+}
- if (i >= affixLength || pos >= inputLength) {
- break;
- }
+UnicodeString& DecimalFormat::getPositiveSuffix(UnicodeString& result) const {
+ ErrorCode localStatus;
+ fields->formatter->getAffixImpl(false, false, result, localStatus);
+ return result;
+}
- UChar32 c = trimmedAffix.char32At(i);
- UChar32 ic = input.char32At(pos);
+void DecimalFormat::setPositiveSuffix(const UnicodeString& newValue) {
+ if (newValue == fields->properties->positiveSuffix) { return; }
+ fields->properties->positiveSuffix = newValue;
+ touchNoError();
+}
- if (!equalWithSignCompatibility(ic, c)) {
- return -1;
- }
+UnicodeString& DecimalFormat::getNegativeSuffix(UnicodeString& result) const {
+ ErrorCode localStatus;
+ fields->formatter->getAffixImpl(false, true, result, localStatus);
+ return result;
+}
- match = TRUE;
- i += U16_LENGTH(c);
- pos += U16_LENGTH(ic);
- pos = skipBidiMarks(input, pos);
- }
+void DecimalFormat::setNegativeSuffix(const UnicodeString& newValue) {
+ if (newValue == fields->properties->negativeSuffix) { return; }
+ fields->properties->negativeSuffix = newValue;
+ touchNoError();
+}
- if (affixLength > 0 && ! match) {
- return -1;
- }
- }
- return pos - start;
+UBool DecimalFormat::isSignAlwaysShown() const {
+ return fields->properties->signAlwaysShown;
}
-/**
- * Skip over a run of zero or more Pattern_White_Space characters at
- * pos in text.
- */
-int32_t DecimalFormat::skipPatternWhiteSpace(const UnicodeString& text, int32_t pos) {
- const UChar* s = text.getBuffer();
- return (int32_t)(PatternProps::skipWhiteSpace(s + pos, text.length() - pos) - s);
+void DecimalFormat::setSignAlwaysShown(UBool value) {
+ if (UBOOL_TO_BOOL(value) == fields->properties->signAlwaysShown) { return; }
+ fields->properties->signAlwaysShown = value;
+ touchNoError();
}
-/**
- * Skip over a run of zero or more isUWhiteSpace() characters at pos
- * in text.
- */
-int32_t DecimalFormat::skipUWhiteSpace(const UnicodeString& text, int32_t pos) {
- while (pos < text.length()) {
- UChar32 c = text.char32At(pos);
- if (!u_isUWhiteSpace(c)) {
- break;
- }
- pos += U16_LENGTH(c);
+int32_t DecimalFormat::getMultiplier(void) const {
+ if (fields->properties->multiplier != 1) {
+ return fields->properties->multiplier;
+ } else if (fields->properties->magnitudeMultiplier != 0) {
+ return static_cast<int32_t>(uprv_pow10(fields->properties->magnitudeMultiplier));
+ } else {
+ return 1;
}
- return pos;
}
-/**
- * Skip over a run of zero or more isUWhiteSpace() characters or bidi marks at pos
- * in text.
- */
-int32_t DecimalFormat::skipUWhiteSpaceAndMarks(const UnicodeString& text, int32_t pos) {
- while (pos < text.length()) {
- UChar32 c = text.char32At(pos);
- if (!u_isUWhiteSpace(c) && !IS_BIDI_MARK(c)) { // u_isUWhiteSpace doesn't include LRM,RLM,ALM
- break;
- }
- pos += U16_LENGTH(c);
+void DecimalFormat::setMultiplier(int32_t multiplier) {
+ if (multiplier == 0) {
+ multiplier = 1; // one being the benign default value for a multiplier.
}
- return pos;
-}
-/**
- * Skip over a run of zero or more bidi marks at pos in text.
- */
-int32_t DecimalFormat::skipBidiMarks(const UnicodeString& text, int32_t pos) {
- while (pos < text.length()) {
- UChar c = text.charAt(pos);
- if (!IS_BIDI_MARK(c)) {
+ // Try to convert to a magnitude multiplier first
+ int delta = 0;
+ int value = multiplier;
+ while (value != 1) {
+ delta++;
+ int temp = value / 10;
+ if (temp * 10 != value) {
+ delta = -1;
break;
}
- pos++;
- }
- return pos;
-}
-
-/**
- * Return the length matched by the given affix, or -1 if none.
- * @param affixPat pattern string
- * @param input input text
- * @param pos offset into input at which to begin matching
- * @param type the currency type to parse against, LONG_NAME only or not.
- * @param currency return value for parsed currency, for generic
- * currency parsing mode, or null for normal parsing. In generic
- * currency parsing mode, any currency is parsed, not just the
- * currency that this formatter is set to.
- * @return length of input that matches, or -1 if match failure
- */
-int32_t DecimalFormat::compareComplexAffix(const UnicodeString& affixPat,
- const UnicodeString& text,
- int32_t pos,
- int8_t type,
- UChar* currency) const
-{
- int32_t start = pos;
- U_ASSERT(currency != NULL || fImpl->fMonetary);
-
- for (int32_t i=0;
- i<affixPat.length() && pos >= 0; ) {
- UChar32 c = affixPat.char32At(i);
- i += U16_LENGTH(c);
-
- if (c == kQuote) {
- U_ASSERT(i <= affixPat.length());
- c = affixPat.char32At(i);
- i += U16_LENGTH(c);
-
- const UnicodeString* affix = NULL;
-
- switch (c) {
- case kCurrencySign: {
- // since the currency names in choice format is saved
- // the same way as other currency names,
- // do not need to do currency choice parsing here.
- // the general currency parsing parse against all names,
- // including names in choice format.
- UBool intl = i<affixPat.length() &&
- affixPat.char32At(i) == kCurrencySign;
- if (intl) {
- ++i;
- }
- UBool plural = i<affixPat.length() &&
- affixPat.char32At(i) == kCurrencySign;
- if (plural) {
- ++i;
- intl = FALSE;
- }
- // Parse generic currency -- anything for which we
- // have a display name, or any 3-letter ISO code.
- // Try to parse display name for our locale; first
- // determine our locale.
- const char* loc = fCurrencyPluralInfo->getLocale().getName();
- ParsePosition ppos(pos);
- UChar curr[4];
- UErrorCode ec = U_ZERO_ERROR;
- // Delegate parse of display name => ISO code to Currency
- uprv_parseCurrency(loc, text, ppos, type, curr, ec);
-
- // If parse succeeds, populate currency[0]
- if (U_SUCCESS(ec) && ppos.getIndex() != pos) {
- if (currency) {
- u_strcpy(currency, curr);
- } else {
- // The formatter is currency-style but the client has not requested
- // the value of the parsed currency. In this case, if that value does
- // not match the formatter's current value, then the parse fails.
- UChar effectiveCurr[4];
- getEffectiveCurrency(effectiveCurr, ec);
- if ( U_FAILURE(ec) || u_strncmp(curr,effectiveCurr,4) != 0 ) {
- pos = -1;
- continue;
- }
- }
- pos = ppos.getIndex();
- } else if (!isLenient()){
- pos = -1;
- }
- continue;
- }
- case kPatternPercent:
- affix = &fImpl->getConstSymbol(DecimalFormatSymbols::kPercentSymbol);
- break;
- case kPatternPerMill:
- affix = &fImpl->getConstSymbol(DecimalFormatSymbols::kPerMillSymbol);
- break;
- case kPatternPlus:
- affix = &fImpl->getConstSymbol(DecimalFormatSymbols::kPlusSignSymbol);
- break;
- case kPatternMinus:
- affix = &fImpl->getConstSymbol(DecimalFormatSymbols::kMinusSignSymbol);
- break;
- default:
- // fall through to affix!=0 test, which will fail
- break;
- }
-
- if (affix != NULL) {
- pos = match(text, pos, *affix);
- continue;
- }
- }
-
- pos = match(text, pos, c);
- if (PatternProps::isWhiteSpace(c)) {
- i = skipPatternWhiteSpace(affixPat, i);
- }
+ value = temp;
}
- return pos - start;
-}
-
-/**
- * Match a single character at text[pos] and return the index of the
- * next character upon success. Return -1 on failure. If
- * ch is a Pattern_White_Space then match a run of white space in text.
- */
-int32_t DecimalFormat::match(const UnicodeString& text, int32_t pos, UChar32 ch) {
- if (PatternProps::isWhiteSpace(ch)) {
- // Advance over run of white space in input text
- // Must see at least one white space char in input
- int32_t s = pos;
- pos = skipPatternWhiteSpace(text, pos);
- if (pos == s) {
- return -1;
- }
- return pos;
- }
- return (pos >= 0 && text.char32At(pos) == ch) ?
- (pos + U16_LENGTH(ch)) : -1;
-}
-
-/**
- * Match a string at text[pos] and return the index of the next
- * character upon success. Return -1 on failure. Match a run of
- * white space in str with a run of white space in text.
- */
-int32_t DecimalFormat::match(const UnicodeString& text, int32_t pos, const UnicodeString& str) {
- for (int32_t i=0; i<str.length() && pos >= 0; ) {
- UChar32 ch = str.char32At(i);
- i += U16_LENGTH(ch);
- if (PatternProps::isWhiteSpace(ch)) {
- i = skipPatternWhiteSpace(str, i);
- }
- pos = match(text, pos, ch);
- }
- return pos;
-}
-
-UBool DecimalFormat::matchSymbol(const UnicodeString &text, int32_t position, int32_t length, const UnicodeString &symbol,
- UnicodeSet *sset, UChar32 schar)
-{
- if (sset != NULL) {
- return sset->contains(schar);
- }
-
- return text.compare(position, length, symbol) == 0;
-}
-
-UBool DecimalFormat::matchDecimal(UChar32 symbolChar,
- UBool sawDecimal, UChar32 sawDecimalChar,
- const UnicodeSet *sset, UChar32 schar) {
- if(sawDecimal) {
- return schar==sawDecimalChar;
- } else if(schar==symbolChar) {
- return TRUE;
- } else if(sset!=NULL) {
- return sset->contains(schar);
- } else {
- return FALSE;
- }
-}
-
-UBool DecimalFormat::matchGrouping(UChar32 groupingChar,
- UBool sawGrouping, UChar32 sawGroupingChar,
- const UnicodeSet *sset,
- UChar32 /*decimalChar*/, const UnicodeSet *decimalSet,
- UChar32 schar) {
- if(sawGrouping) {
- return schar==sawGroupingChar; // previously found
- } else if(schar==groupingChar) {
- return TRUE; // char from symbols
- } else if(sset!=NULL) {
- return sset->contains(schar) && // in groupingSet but...
- ((decimalSet==NULL) || !decimalSet->contains(schar)); // Exclude decimalSet from groupingSet
+ if (delta != -1) {
+ fields->properties->magnitudeMultiplier = delta;
+ fields->properties->multiplier = 1;
} else {
- return FALSE;
+ fields->properties->magnitudeMultiplier = 0;
+ fields->properties->multiplier = multiplier;
}
+ touchNoError();
}
+int32_t DecimalFormat::getMultiplierScale() const {
+ return fields->properties->multiplierScale;
+}
+void DecimalFormat::setMultiplierScale(int32_t newValue) {
+ if (newValue == fields->properties->multiplierScale) { return; }
+ fields->properties->multiplierScale = newValue;
+ touchNoError();
+}
-//------------------------------------------------------------------------------
-// Gets the pointer to the localized decimal format symbols
+double DecimalFormat::getRoundingIncrement(void) const {
+ return fields->exportedProperties->roundingIncrement;
+}
-const DecimalFormatSymbols*
-DecimalFormat::getDecimalFormatSymbols() const
-{
- return &fImpl->getDecimalFormatSymbols();
+void DecimalFormat::setRoundingIncrement(double newValue) {
+ if (newValue == fields->properties->roundingIncrement) { return; }
+ fields->properties->roundingIncrement = newValue;
+ touchNoError();
}
-//------------------------------------------------------------------------------
-// De-owning the current localized symbols and adopt the new symbols.
+ERoundingMode DecimalFormat::getRoundingMode(void) const {
+ // UNumberFormatRoundingMode and ERoundingMode have the same values.
+ return static_cast<ERoundingMode>(fields->exportedProperties->roundingMode.getNoError());
+}
-void
-DecimalFormat::adoptDecimalFormatSymbols(DecimalFormatSymbols* symbolsToAdopt)
-{
- if (symbolsToAdopt == NULL) {
- return; // do not allow caller to set fSymbols to NULL
+void DecimalFormat::setRoundingMode(ERoundingMode roundingMode) {
+ auto uRoundingMode = static_cast<UNumberFormatRoundingMode>(roundingMode);
+ if (!fields->properties->roundingMode.isNull() && uRoundingMode == fields->properties->roundingMode.getNoError()) {
+ return;
}
- fImpl->adoptDecimalFormatSymbols(symbolsToAdopt);
+ NumberFormat::setMaximumIntegerDigits(roundingMode); // to set field for compatibility
+ fields->properties->roundingMode = uRoundingMode;
+ touchNoError();
}
-//------------------------------------------------------------------------------
-// Setting the symbols is equlivalent to adopting a newly created localized
-// symbols.
-void
-DecimalFormat::setDecimalFormatSymbols(const DecimalFormatSymbols& symbols)
-{
- adoptDecimalFormatSymbols(new DecimalFormatSymbols(symbols));
+int32_t DecimalFormat::getFormatWidth(void) const {
+ return fields->properties->formatWidth;
}
-
-const CurrencyPluralInfo*
-DecimalFormat::getCurrencyPluralInfo(void) const
-{
- return fCurrencyPluralInfo;
+void DecimalFormat::setFormatWidth(int32_t width) {
+ if (width == fields->properties->formatWidth) { return; }
+ fields->properties->formatWidth = width;
+ touchNoError();
}
-
-void
-DecimalFormat::adoptCurrencyPluralInfo(CurrencyPluralInfo* toAdopt)
-{
- if (toAdopt != NULL) {
- delete fCurrencyPluralInfo;
- fCurrencyPluralInfo = toAdopt;
- // re-set currency affix patterns and currency affixes.
- if (fImpl->fMonetary) {
- UErrorCode status = U_ZERO_ERROR;
- if (fAffixPatternsForCurrency) {
- deleteHashForAffixPattern();
- }
- setupCurrencyAffixPatterns(status);
- }
+UnicodeString DecimalFormat::getPadCharacterString() const {
+ if (fields->properties->padString.isBogus()) {
+ // Readonly-alias the static string kFallbackPaddingString
+ return {TRUE, kFallbackPaddingString, -1};
+ } else {
+ return fields->properties->padString;
}
}
-void
-DecimalFormat::setCurrencyPluralInfo(const CurrencyPluralInfo& info)
-{
- adoptCurrencyPluralInfo(info.clone());
+void DecimalFormat::setPadCharacter(const UnicodeString& padChar) {
+ if (padChar == fields->properties->padString) { return; }
+ if (padChar.length() > 0) {
+ fields->properties->padString = UnicodeString(padChar.char32At(0));
+ } else {
+ fields->properties->padString.setToBogus();
+ }
+ touchNoError();
}
-
-//------------------------------------------------------------------------------
-// Gets the positive prefix of the number pattern.
-
-UnicodeString&
-DecimalFormat::getPositivePrefix(UnicodeString& result) const
-{
- return fImpl->getPositivePrefix(result);
+EPadPosition DecimalFormat::getPadPosition(void) const {
+ if (fields->properties->padPosition.isNull()) {
+ return EPadPosition::kPadBeforePrefix;
+ } else {
+ // UNumberFormatPadPosition and EPadPosition have the same values.
+ return static_cast<EPadPosition>(fields->properties->padPosition.getNoError());
+ }
}
-//------------------------------------------------------------------------------
-// Sets the positive prefix of the number pattern.
-
-void
-DecimalFormat::setPositivePrefix(const UnicodeString& newValue)
-{
- fImpl->setPositivePrefix(newValue);
+void DecimalFormat::setPadPosition(EPadPosition padPos) {
+ auto uPadPos = static_cast<UNumberFormatPadPosition>(padPos);
+ if (!fields->properties->padPosition.isNull() && uPadPos == fields->properties->padPosition.getNoError()) {
+ return;
+ }
+ fields->properties->padPosition = uPadPos;
+ touchNoError();
}
-//------------------------------------------------------------------------------
-// Gets the negative prefix of the number pattern.
-
-UnicodeString&
-DecimalFormat::getNegativePrefix(UnicodeString& result) const
-{
- return fImpl->getNegativePrefix(result);
+UBool DecimalFormat::isScientificNotation(void) const {
+ return fields->properties->minimumExponentDigits != -1;
}
-//------------------------------------------------------------------------------
-// Gets the negative prefix of the number pattern.
-
-void
-DecimalFormat::setNegativePrefix(const UnicodeString& newValue)
-{
- fImpl->setNegativePrefix(newValue);
+void DecimalFormat::setScientificNotation(UBool useScientific) {
+ int32_t minExp = useScientific ? 1 : -1;
+ if (fields->properties->minimumExponentDigits == minExp) { return; }
+ if (useScientific) {
+ fields->properties->minimumExponentDigits = 1;
+ } else {
+ fields->properties->minimumExponentDigits = -1;
+ }
+ touchNoError();
}
-//------------------------------------------------------------------------------
-// Gets the positive suffix of the number pattern.
-
-UnicodeString&
-DecimalFormat::getPositiveSuffix(UnicodeString& result) const
-{
- return fImpl->getPositiveSuffix(result);
+int8_t DecimalFormat::getMinimumExponentDigits(void) const {
+ return static_cast<int8_t>(fields->properties->minimumExponentDigits);
}
-//------------------------------------------------------------------------------
-// Sets the positive suffix of the number pattern.
-
-void
-DecimalFormat::setPositiveSuffix(const UnicodeString& newValue)
-{
- fImpl->setPositiveSuffix(newValue);
+void DecimalFormat::setMinimumExponentDigits(int8_t minExpDig) {
+ if (minExpDig == fields->properties->minimumExponentDigits) { return; }
+ fields->properties->minimumExponentDigits = minExpDig;
+ touchNoError();
}
-//------------------------------------------------------------------------------
-// Gets the negative suffix of the number pattern.
-
-UnicodeString&
-DecimalFormat::getNegativeSuffix(UnicodeString& result) const
-{
- return fImpl->getNegativeSuffix(result);
+UBool DecimalFormat::isExponentSignAlwaysShown(void) const {
+ return fields->properties->exponentSignAlwaysShown;
}
-//------------------------------------------------------------------------------
-// Sets the negative suffix of the number pattern.
-
-void
-DecimalFormat::setNegativeSuffix(const UnicodeString& newValue)
-{
- fImpl->setNegativeSuffix(newValue);
+void DecimalFormat::setExponentSignAlwaysShown(UBool expSignAlways) {
+ if (UBOOL_TO_BOOL(expSignAlways) == fields->properties->exponentSignAlwaysShown) { return; }
+ fields->properties->exponentSignAlwaysShown = expSignAlways;
+ touchNoError();
}
-//------------------------------------------------------------------------------
-// Gets the multiplier of the number pattern.
-// Multipliers are stored as decimal numbers (DigitLists) because that
-// is the most convenient for muliplying or dividing the numbers to be formatted.
-// A NULL multiplier implies one, and the scaling operations are skipped.
-
-int32_t
-DecimalFormat::getMultiplier() const
-{
- return fImpl->getMultiplier();
+int32_t DecimalFormat::getGroupingSize(void) const {
+ if (fields->properties->groupingSize < 0) {
+ return 0;
+ }
+ return fields->properties->groupingSize;
}
-//------------------------------------------------------------------------------
-// Sets the multiplier of the number pattern.
-void
-DecimalFormat::setMultiplier(int32_t newValue)
-{
- fImpl->setMultiplier(newValue);
-}
-
-/**
- * Get the rounding increment.
- * @return A positive rounding increment, or 0.0 if rounding
- * is not in effect.
- * @see #setRoundingIncrement
- * @see #getRoundingMode
- * @see #setRoundingMode
- */
-double DecimalFormat::getRoundingIncrement() const {
- return fImpl->getRoundingIncrement();
-}
-
-/**
- * Set the rounding increment. This method also controls whether
- * rounding is enabled.
- * @param newValue A positive rounding increment, or 0.0 to disable rounding.
- * Negative increments are equivalent to 0.0.
- * @see #getRoundingIncrement
- * @see #getRoundingMode
- * @see #setRoundingMode
- */
-void DecimalFormat::setRoundingIncrement(double newValue) {
- fImpl->setRoundingIncrement(newValue);
-}
-
-/**
- * Get the rounding mode.
- * @return A rounding mode
- * @see #setRoundingIncrement
- * @see #getRoundingIncrement
- * @see #setRoundingMode
- */
-DecimalFormat::ERoundingMode DecimalFormat::getRoundingMode() const {
- return fImpl->getRoundingMode();
-}
-
-/**
- * Set the rounding mode. This has no effect unless the rounding
- * increment is greater than zero.
- * @param roundingMode A rounding mode
- * @see #setRoundingIncrement
- * @see #getRoundingIncrement
- * @see #getRoundingMode
- */
-void DecimalFormat::setRoundingMode(ERoundingMode roundingMode) {
- fImpl->setRoundingMode(roundingMode);
-}
-
-/**
- * Get the width to which the output of <code>format()</code> is padded.
- * @return the format width, or zero if no padding is in effect
- * @see #setFormatWidth
- * @see #getPadCharacter
- * @see #setPadCharacter
- * @see #getPadPosition
- * @see #setPadPosition
- */
-int32_t DecimalFormat::getFormatWidth() const {
- return fImpl->getFormatWidth();
-}
-
-/**
- * Set the width to which the output of <code>format()</code> is padded.
- * This method also controls whether padding is enabled.
- * @param width the width to which to pad the result of
- * <code>format()</code>, or zero to disable padding. A negative
- * width is equivalent to 0.
- * @see #getFormatWidth
- * @see #getPadCharacter
- * @see #setPadCharacter
- * @see #getPadPosition
- * @see #setPadPosition
- */
-void DecimalFormat::setFormatWidth(int32_t width) {
- int32_t formatWidth = (width > 0) ? width : 0;
- fImpl->setFormatWidth(formatWidth);
+void DecimalFormat::setGroupingSize(int32_t newValue) {
+ if (newValue == fields->properties->groupingSize) { return; }
+ fields->properties->groupingSize = newValue;
+ touchNoError();
}
-UnicodeString DecimalFormat::getPadCharacterString() const {
- return UnicodeString(fImpl->getPadCharacter());
+int32_t DecimalFormat::getSecondaryGroupingSize(void) const {
+ int grouping2 = fields->properties->secondaryGroupingSize;
+ if (grouping2 < 0) {
+ return 0;
+ }
+ return grouping2;
}
-void DecimalFormat::setPadCharacter(const UnicodeString &padChar) {
- UChar32 pad;
- if (padChar.length() > 0) {
- pad = padChar.char32At(0);
- }
- else {
- pad = kDefaultPad;
- }
- fImpl->setPadCharacter(pad);
-}
-
-static DecimalFormat::EPadPosition fromPadPosition(DigitAffixesAndPadding::EPadPosition padPos) {
- switch (padPos) {
- case DigitAffixesAndPadding::kPadBeforePrefix:
- return DecimalFormat::kPadBeforePrefix;
- case DigitAffixesAndPadding::kPadAfterPrefix:
- return DecimalFormat::kPadAfterPrefix;
- case DigitAffixesAndPadding::kPadBeforeSuffix:
- return DecimalFormat::kPadBeforeSuffix;
- case DigitAffixesAndPadding::kPadAfterSuffix:
- return DecimalFormat::kPadAfterSuffix;
- default:
- U_ASSERT(FALSE);
- break;
- }
- return DecimalFormat::kPadBeforePrefix;
-}
-
-/**
- * Get the position at which padding will take place. This is the location
- * at which padding will be inserted if the result of <code>format()</code>
- * is shorter than the format width.
- * @return the pad position, one of <code>kPadBeforePrefix</code>,
- * <code>kPadAfterPrefix</code>, <code>kPadBeforeSuffix</code>, or
- * <code>kPadAfterSuffix</code>.
- * @see #setFormatWidth
- * @see #getFormatWidth
- * @see #setPadCharacter
- * @see #getPadCharacter
- * @see #setPadPosition
- * @see #kPadBeforePrefix
- * @see #kPadAfterPrefix
- * @see #kPadBeforeSuffix
- * @see #kPadAfterSuffix
- */
-DecimalFormat::EPadPosition DecimalFormat::getPadPosition() const {
- return fromPadPosition(fImpl->getPadPosition());
-}
-
-static DigitAffixesAndPadding::EPadPosition toPadPosition(DecimalFormat::EPadPosition padPos) {
- switch (padPos) {
- case DecimalFormat::kPadBeforePrefix:
- return DigitAffixesAndPadding::kPadBeforePrefix;
- case DecimalFormat::kPadAfterPrefix:
- return DigitAffixesAndPadding::kPadAfterPrefix;
- case DecimalFormat::kPadBeforeSuffix:
- return DigitAffixesAndPadding::kPadBeforeSuffix;
- case DecimalFormat::kPadAfterSuffix:
- return DigitAffixesAndPadding::kPadAfterSuffix;
- default:
- U_ASSERT(FALSE);
- break;
- }
- return DigitAffixesAndPadding::kPadBeforePrefix;
-}
-
-/**
- * <strong><font face=helvetica color=red>NEW</font></strong>
- * Set the position at which padding will take place. This is the location
- * at which padding will be inserted if the result of <code>format()</code>
- * is shorter than the format width. This has no effect unless padding is
- * enabled.
- * @param padPos the pad position, one of <code>kPadBeforePrefix</code>,
- * <code>kPadAfterPrefix</code>, <code>kPadBeforeSuffix</code>, or
- * <code>kPadAfterSuffix</code>.
- * @see #setFormatWidth
- * @see #getFormatWidth
- * @see #setPadCharacter
- * @see #getPadCharacter
- * @see #getPadPosition
- * @see #kPadBeforePrefix
- * @see #kPadAfterPrefix
- * @see #kPadBeforeSuffix
- * @see #kPadAfterSuffix
- */
-void DecimalFormat::setPadPosition(EPadPosition padPos) {
- fImpl->setPadPosition(toPadPosition(padPos));
-}
-
-/**
- * Return whether or not scientific notation is used.
- * @return TRUE if this object formats and parses scientific notation
- * @see #setScientificNotation
- * @see #getMinimumExponentDigits
- * @see #setMinimumExponentDigits
- * @see #isExponentSignAlwaysShown
- * @see #setExponentSignAlwaysShown
- */
-UBool DecimalFormat::isScientificNotation() const {
- return fImpl->isScientificNotation();
-}
-
-/**
- * Set whether or not scientific notation is used.
- * @param useScientific TRUE if this object formats and parses scientific
- * notation
- * @see #isScientificNotation
- * @see #getMinimumExponentDigits
- * @see #setMinimumExponentDigits
- * @see #isExponentSignAlwaysShown
- * @see #setExponentSignAlwaysShown
- */
-void DecimalFormat::setScientificNotation(UBool useScientific) {
- fImpl->setScientificNotation(useScientific);
-}
-
-/**
- * Return the minimum exponent digits that will be shown.
- * @return the minimum exponent digits that will be shown
- * @see #setScientificNotation
- * @see #isScientificNotation
- * @see #setMinimumExponentDigits
- * @see #isExponentSignAlwaysShown
- * @see #setExponentSignAlwaysShown
- */
-int8_t DecimalFormat::getMinimumExponentDigits() const {
- return fImpl->getMinimumExponentDigits();
-}
-
-/**
- * Set the minimum exponent digits that will be shown. This has no
- * effect unless scientific notation is in use.
- * @param minExpDig a value >= 1 indicating the fewest exponent digits
- * that will be shown. Values less than 1 will be treated as 1.
- * @see #setScientificNotation
- * @see #isScientificNotation
- * @see #getMinimumExponentDigits
- * @see #isExponentSignAlwaysShown
- * @see #setExponentSignAlwaysShown
- */
-void DecimalFormat::setMinimumExponentDigits(int8_t minExpDig) {
- int32_t minExponentDigits = (int8_t)((minExpDig > 0) ? minExpDig : 1);
- fImpl->setMinimumExponentDigits(minExponentDigits);
-}
-
-/**
- * Return whether the exponent sign is always shown.
- * @return TRUE if the exponent is always prefixed with either the
- * localized minus sign or the localized plus sign, false if only negative
- * exponents are prefixed with the localized minus sign.
- * @see #setScientificNotation
- * @see #isScientificNotation
- * @see #setMinimumExponentDigits
- * @see #getMinimumExponentDigits
- * @see #setExponentSignAlwaysShown
- */
-UBool DecimalFormat::isExponentSignAlwaysShown() const {
- return fImpl->isExponentSignAlwaysShown();
-}
-
-/**
- * Set whether the exponent sign is always shown. This has no effect
- * unless scientific notation is in use.
- * @param expSignAlways TRUE if the exponent is always prefixed with either
- * the localized minus sign or the localized plus sign, false if only
- * negative exponents are prefixed with the localized minus sign.
- * @see #setScientificNotation
- * @see #isScientificNotation
- * @see #setMinimumExponentDigits
- * @see #getMinimumExponentDigits
- * @see #isExponentSignAlwaysShown
- */
-void DecimalFormat::setExponentSignAlwaysShown(UBool expSignAlways) {
- fImpl->setExponentSignAlwaysShown(expSignAlways);
+void DecimalFormat::setSecondaryGroupingSize(int32_t newValue) {
+ if (newValue == fields->properties->secondaryGroupingSize) { return; }
+ fields->properties->secondaryGroupingSize = newValue;
+ touchNoError();
}
-//------------------------------------------------------------------------------
-// Gets the grouping size of the number pattern. For example, thousand or 10
-// thousand groupings.
-
-int32_t
-DecimalFormat::getGroupingSize() const
-{
- return fImpl->getGroupingSize();
+int32_t DecimalFormat::getMinimumGroupingDigits() const {
+ return fields->properties->minimumGroupingDigits;
}
-//------------------------------------------------------------------------------
-// Gets the grouping size of the number pattern.
-
-void
-DecimalFormat::setGroupingSize(int32_t newValue)
-{
- fImpl->setGroupingSize(newValue);
+void DecimalFormat::setMinimumGroupingDigits(int32_t newValue) {
+ if (newValue == fields->properties->minimumGroupingDigits) { return; }
+ fields->properties->minimumGroupingDigits = newValue;
+ touchNoError();
}
-//------------------------------------------------------------------------------
-
-int32_t
-DecimalFormat::getSecondaryGroupingSize() const
-{
- return fImpl->getSecondaryGroupingSize();
+UBool DecimalFormat::isDecimalSeparatorAlwaysShown(void) const {
+ return fields->properties->decimalSeparatorAlwaysShown;
}
-//------------------------------------------------------------------------------
-
-void
-DecimalFormat::setSecondaryGroupingSize(int32_t newValue)
-{
- fImpl->setSecondaryGroupingSize(newValue);
+void DecimalFormat::setDecimalSeparatorAlwaysShown(UBool newValue) {
+ if (UBOOL_TO_BOOL(newValue) == fields->properties->decimalSeparatorAlwaysShown) { return; }
+ fields->properties->decimalSeparatorAlwaysShown = newValue;
+ touchNoError();
}
-//------------------------------------------------------------------------------
-
-int32_t
-DecimalFormat::getMinimumGroupingDigits() const
-{
- return fImpl->getMinimumGroupingDigits();
+UBool DecimalFormat::isDecimalPatternMatchRequired(void) const {
+ return fields->properties->decimalPatternMatchRequired;
}
-//------------------------------------------------------------------------------
-
-void
-DecimalFormat::setMinimumGroupingDigits(int32_t newValue)
-{
- fImpl->setMinimumGroupingDigits(newValue);
+void DecimalFormat::setDecimalPatternMatchRequired(UBool newValue) {
+ if (UBOOL_TO_BOOL(newValue) == fields->properties->decimalPatternMatchRequired) { return; }
+ fields->properties->decimalPatternMatchRequired = newValue;
+ touchNoError();
}
-//------------------------------------------------------------------------------
-// Checks if to show the decimal separator.
-
-UBool
-DecimalFormat::isDecimalSeparatorAlwaysShown() const
-{
- return fImpl->isDecimalSeparatorAlwaysShown();
+UBool DecimalFormat::isParseNoExponent() const {
+ return fields->properties->parseNoExponent;
}
-//------------------------------------------------------------------------------
-// Sets to always show the decimal separator.
-
-void
-DecimalFormat::setDecimalSeparatorAlwaysShown(UBool newValue)
-{
- fImpl->setDecimalSeparatorAlwaysShown(newValue);
+void DecimalFormat::setParseNoExponent(UBool value) {
+ if (UBOOL_TO_BOOL(value) == fields->properties->parseNoExponent) { return; }
+ fields->properties->parseNoExponent = value;
+ touchNoError();
}
-//------------------------------------------------------------------------------
-// Checks if decimal point pattern match is required
-UBool
-DecimalFormat::isDecimalPatternMatchRequired(void) const
-{
- return static_cast<UBool>(fBoolFlags.contains(UNUM_PARSE_DECIMAL_MARK_REQUIRED));
+UBool DecimalFormat::isParseCaseSensitive() const {
+ return fields->properties->parseCaseSensitive;
}
-//------------------------------------------------------------------------------
-// Checks if decimal point pattern match is required
-
-void
-DecimalFormat::setDecimalPatternMatchRequired(UBool newValue)
-{
- fBoolFlags.set(UNUM_PARSE_DECIMAL_MARK_REQUIRED, newValue);
+void DecimalFormat::setParseCaseSensitive(UBool value) {
+ if (UBOOL_TO_BOOL(value) == fields->properties->parseCaseSensitive) { return; }
+ fields->properties->parseCaseSensitive = value;
+ touchNoError();
}
-
-//------------------------------------------------------------------------------
-// Emits the pattern of this DecimalFormat instance.
-
-UnicodeString&
-DecimalFormat::toPattern(UnicodeString& result) const
-{
- return fImpl->toPattern(result);
+UBool DecimalFormat::isFormatFailIfMoreThanMaxDigits() const {
+ return fields->properties->formatFailIfMoreThanMaxDigits;
}
-//------------------------------------------------------------------------------
-// Emits the localized pattern this DecimalFormat instance.
-
-UnicodeString&
-DecimalFormat::toLocalizedPattern(UnicodeString& result) const
-{
- // toLocalizedPattern is deprecated, so we just make it the same as
- // toPattern.
- return fImpl->toPattern(result);
+void DecimalFormat::setFormatFailIfMoreThanMaxDigits(UBool value) {
+ if (UBOOL_TO_BOOL(value) == fields->properties->formatFailIfMoreThanMaxDigits) { return; }
+ fields->properties->formatFailIfMoreThanMaxDigits = value;
+ touchNoError();
}
-//------------------------------------------------------------------------------
-
-void
-DecimalFormat::applyPattern(const UnicodeString& pattern, UErrorCode& status)
-{
- if (pattern.indexOf(kCurrencySign) != -1) {
- handleCurrencySignInPattern(status);
+UnicodeString& DecimalFormat::toPattern(UnicodeString& result) const {
+ // Pull some properties from exportedProperties and others from properties
+ // to keep affix patterns intact. In particular, pull rounding properties
+ // so that CurrencyUsage is reflected properly.
+ // TODO: Consider putting this logic in number_patternstring.cpp instead.
+ ErrorCode localStatus;
+ DecimalFormatProperties tprops(*fields->properties);
+ bool useCurrency = ((!tprops.currency.isNull()) || !tprops.currencyPluralInfo.fPtr.isNull() ||
+ !tprops.currencyUsage.isNull() || AffixUtils::hasCurrencySymbols(
+ tprops.positivePrefixPattern, localStatus) || AffixUtils::hasCurrencySymbols(
+ tprops.positiveSuffixPattern, localStatus) || AffixUtils::hasCurrencySymbols(
+ tprops.negativePrefixPattern, localStatus) || AffixUtils::hasCurrencySymbols(
+ tprops.negativeSuffixPattern, localStatus));
+ if (useCurrency) {
+ tprops.minimumFractionDigits = fields->exportedProperties->minimumFractionDigits;
+ tprops.maximumFractionDigits = fields->exportedProperties->maximumFractionDigits;
+ tprops.roundingIncrement = fields->exportedProperties->roundingIncrement;
}
- fImpl->applyPattern(pattern, status);
+ result = PatternStringUtils::propertiesToPatternString(tprops, localStatus);
+ return result;
}
-//------------------------------------------------------------------------------
+UnicodeString& DecimalFormat::toLocalizedPattern(UnicodeString& result) const {
+ ErrorCode localStatus;
+ result = toPattern(result);
+ result = PatternStringUtils::convertLocalized(result, *fields->symbols, true, localStatus);
+ return result;
+}
-void
-DecimalFormat::applyPattern(const UnicodeString& pattern,
- UParseError& parseError,
- UErrorCode& status)
-{
- if (pattern.indexOf(kCurrencySign) != -1) {
- handleCurrencySignInPattern(status);
- }
- fImpl->applyPattern(pattern, parseError, status);
+void DecimalFormat::applyPattern(const UnicodeString& pattern, UParseError&, UErrorCode& status) {
+ // TODO: What is parseError for?
+ applyPattern(pattern, status);
}
-//------------------------------------------------------------------------------
-void
-DecimalFormat::applyLocalizedPattern(const UnicodeString& pattern, UErrorCode& status)
-{
- if (pattern.indexOf(kCurrencySign) != -1) {
- handleCurrencySignInPattern(status);
- }
- fImpl->applyLocalizedPattern(pattern, status);
+void DecimalFormat::applyPattern(const UnicodeString& pattern, UErrorCode& status) {
+ setPropertiesFromPattern(pattern, IGNORE_ROUNDING_NEVER, status);
+ touch(status);
}
-//------------------------------------------------------------------------------
+void DecimalFormat::applyLocalizedPattern(const UnicodeString& localizedPattern, UParseError&,
+ UErrorCode& status) {
+ // TODO: What is parseError for?
+ applyLocalizedPattern(localizedPattern, status);
+}
-void
-DecimalFormat::applyLocalizedPattern(const UnicodeString& pattern,
- UParseError& parseError,
- UErrorCode& status)
-{
- if (pattern.indexOf(kCurrencySign) != -1) {
- handleCurrencySignInPattern(status);
+void DecimalFormat::applyLocalizedPattern(const UnicodeString& localizedPattern, UErrorCode& status) {
+ if (U_SUCCESS(status)) {
+ UnicodeString pattern = PatternStringUtils::convertLocalized(
+ localizedPattern, *fields->symbols, false, status);
+ applyPattern(pattern, status);
}
- fImpl->applyLocalizedPattern(pattern, parseError, status);
}
-//------------------------------------------------------------------------------
-
-/**
- * Sets the maximum number of digits allowed in the integer portion of a
- * number.
- * @see NumberFormat#setMaximumIntegerDigits
- */
void DecimalFormat::setMaximumIntegerDigits(int32_t newValue) {
- newValue = _min(newValue, gDefaultMaxIntegerDigits);
- NumberFormat::setMaximumIntegerDigits(newValue);
- fImpl->updatePrecision();
+ if (newValue == fields->properties->maximumIntegerDigits) { return; }
+ // For backwards compatibility, conflicting min/max need to keep the most recent setting.
+ int32_t min = fields->properties->minimumIntegerDigits;
+ if (min >= 0 && min > newValue) {
+ fields->properties->minimumIntegerDigits = newValue;
+ }
+ fields->properties->maximumIntegerDigits = newValue;
+ touchNoError();
}
-/**
- * Sets the minimum number of digits allowed in the integer portion of a
- * number. This override limits the integer digit count to 309.
- * @see NumberFormat#setMinimumIntegerDigits
- */
void DecimalFormat::setMinimumIntegerDigits(int32_t newValue) {
- newValue = _min(newValue, kDoubleIntegerDigits);
- NumberFormat::setMinimumIntegerDigits(newValue);
- fImpl->updatePrecision();
+ if (newValue == fields->properties->minimumIntegerDigits) { return; }
+ // For backwards compatibility, conflicting min/max need to keep the most recent setting.
+ int32_t max = fields->properties->maximumIntegerDigits;
+ if (max >= 0 && max < newValue) {
+ fields->properties->maximumIntegerDigits = newValue;
+ }
+ fields->properties->minimumIntegerDigits = newValue;
+ touchNoError();
}
-/**
- * Sets the maximum number of digits allowed in the fraction portion of a
- * number. This override limits the fraction digit count to 340.
- * @see NumberFormat#setMaximumFractionDigits
- */
void DecimalFormat::setMaximumFractionDigits(int32_t newValue) {
- newValue = _min(newValue, kDoubleFractionDigits);
- NumberFormat::setMaximumFractionDigits(newValue);
- fImpl->updatePrecision();
+ if (newValue == fields->properties->maximumFractionDigits) { return; }
+ // For backwards compatibility, conflicting min/max need to keep the most recent setting.
+ int32_t min = fields->properties->minimumFractionDigits;
+ if (min >= 0 && min > newValue) {
+ fields->properties->minimumFractionDigits = newValue;
+ }
+ fields->properties->maximumFractionDigits = newValue;
+ touchNoError();
}
-/**
- * Sets the minimum number of digits allowed in the fraction portion of a
- * number. This override limits the fraction digit count to 340.
- * @see NumberFormat#setMinimumFractionDigits
- */
void DecimalFormat::setMinimumFractionDigits(int32_t newValue) {
- newValue = _min(newValue, kDoubleFractionDigits);
- NumberFormat::setMinimumFractionDigits(newValue);
- fImpl->updatePrecision();
+ if (newValue == fields->properties->minimumFractionDigits) { return; }
+ // For backwards compatibility, conflicting min/max need to keep the most recent setting.
+ int32_t max = fields->properties->maximumFractionDigits;
+ if (max >= 0 && max < newValue) {
+ fields->properties->maximumFractionDigits = newValue;
+ }
+ fields->properties->minimumFractionDigits = newValue;
+ touchNoError();
}
int32_t DecimalFormat::getMinimumSignificantDigits() const {
- return fImpl->getMinimumSignificantDigits();
+ return fields->exportedProperties->minimumSignificantDigits;
}
int32_t DecimalFormat::getMaximumSignificantDigits() const {
- return fImpl->getMaximumSignificantDigits();
+ return fields->exportedProperties->maximumSignificantDigits;
}
-void DecimalFormat::setMinimumSignificantDigits(int32_t min) {
- if (min < 1) {
- min = 1;
+void DecimalFormat::setMinimumSignificantDigits(int32_t value) {
+ if (value == fields->properties->minimumSignificantDigits) { return; }
+ int32_t max = fields->properties->maximumSignificantDigits;
+ if (max >= 0 && max < value) {
+ fields->properties->maximumSignificantDigits = value;
}
- // pin max sig dig to >= min
- int32_t max = _max(fImpl->fMaxSigDigits, min);
- fImpl->setMinMaxSignificantDigits(min, max);
+ fields->properties->minimumSignificantDigits = value;
+ touchNoError();
}
-void DecimalFormat::setMaximumSignificantDigits(int32_t max) {
- if (max < 1) {
- max = 1;
+void DecimalFormat::setMaximumSignificantDigits(int32_t value) {
+ if (value == fields->properties->maximumSignificantDigits) { return; }
+ int32_t min = fields->properties->minimumSignificantDigits;
+ if (min >= 0 && min > value) {
+ fields->properties->minimumSignificantDigits = value;
}
- // pin min sig dig to 1..max
- U_ASSERT(fImpl->fMinSigDigits >= 1);
- int32_t min = _min(fImpl->fMinSigDigits, max);
- fImpl->setMinMaxSignificantDigits(min, max);
+ fields->properties->maximumSignificantDigits = value;
+ touchNoError();
}
UBool DecimalFormat::areSignificantDigitsUsed() const {
- return fImpl->areSignificantDigitsUsed();
+ return fields->properties->minimumSignificantDigits != -1 || fields->properties->maximumSignificantDigits != -1;
}
void DecimalFormat::setSignificantDigitsUsed(UBool useSignificantDigits) {
- fImpl->setSignificantDigitsUsed(useSignificantDigits);
+ // These are the default values from the old implementation.
+ if (useSignificantDigits) {
+ if (fields->properties->minimumSignificantDigits != -1 ||
+ fields->properties->maximumSignificantDigits != -1) {
+ return;
+ }
+ } else {
+ if (fields->properties->minimumSignificantDigits == -1 &&
+ fields->properties->maximumSignificantDigits == -1) {
+ return;
+ }
+ }
+ int32_t minSig = useSignificantDigits ? 1 : -1;
+ int32_t maxSig = useSignificantDigits ? 6 : -1;
+ fields->properties->minimumSignificantDigits = minSig;
+ fields->properties->maximumSignificantDigits = maxSig;
+ touchNoError();
}
-void DecimalFormat::setCurrency(const UChar* theCurrency, UErrorCode& ec) {
- // set the currency before compute affixes to get the right currency names
- NumberFormat::setCurrency(theCurrency, ec);
- fImpl->updateCurrency(ec);
+void DecimalFormat::setCurrency(const char16_t* theCurrency, UErrorCode& ec) {
+ CurrencyUnit currencyUnit(theCurrency, ec);
+ if (U_FAILURE(ec)) { return; }
+ if (!fields->properties->currency.isNull() && fields->properties->currency.getNoError() == currencyUnit) {
+ return;
+ }
+ NumberFormat::setCurrency(theCurrency, ec); // to set field for compatibility
+ fields->properties->currency = currencyUnit;
+ // TODO: Set values in fields->symbols, too?
+ touchNoError();
}
-void DecimalFormat::setCurrencyUsage(UCurrencyUsage newContext, UErrorCode* ec){
- fImpl->setCurrencyUsage(newContext, *ec);
+void DecimalFormat::setCurrency(const char16_t* theCurrency) {
+ ErrorCode localStatus;
+ setCurrency(theCurrency, localStatus);
+}
+
+void DecimalFormat::setCurrencyUsage(UCurrencyUsage newUsage, UErrorCode* ec) {
+ if (U_FAILURE(*ec)) {
+ return;
+ }
+ if (!fields->properties->currencyUsage.isNull() && newUsage == fields->properties->currencyUsage.getNoError()) {
+ return;
+ }
+ fields->properties->currencyUsage = newUsage;
+ touch(*ec);
}
UCurrencyUsage DecimalFormat::getCurrencyUsage() const {
- return fImpl->getCurrencyUsage();
+ // CurrencyUsage is not exported, so we have to get it from the input property bag.
+ // TODO: Should we export CurrencyUsage instead?
+ if (fields->properties->currencyUsage.isNull()) {
+ return UCURR_USAGE_STANDARD;
+ }
+ return fields->properties->currencyUsage.getNoError();
+}
+
+void
+DecimalFormat::formatToDecimalQuantity(double number, DecimalQuantity& output, UErrorCode& status) const {
+ fields->formatter->formatDouble(number, status).getDecimalQuantity(output, status);
}
-// Deprecated variant with no UErrorCode parameter
-void DecimalFormat::setCurrency(const UChar* theCurrency) {
- UErrorCode ec = U_ZERO_ERROR;
- setCurrency(theCurrency, ec);
+void DecimalFormat::formatToDecimalQuantity(const Formattable& number, DecimalQuantity& output,
+ UErrorCode& status) const {
+ UFormattedNumberData obj;
+ number.populateDecimalQuantity(obj.quantity, status);
+ fields->formatter->formatImpl(&obj, status);
+ output = std::move(obj.quantity);
}
-void DecimalFormat::getEffectiveCurrency(UChar* result, UErrorCode& ec) const {
- if (fImpl->fSymbols == NULL) {
- ec = U_MEMORY_ALLOCATION_ERROR;
+const number::LocalizedNumberFormatter& DecimalFormat::toNumberFormatter() const {
+ return *fields->formatter;
+}
+
+/** Rebuilds the formatter object from the property bag. */
+void DecimalFormat::touch(UErrorCode& status) {
+ if (fields->exportedProperties == nullptr) {
+ // fields->exportedProperties is null only when the formatter is not ready yet.
+ // The only time when this happens is during legacy deserialization.
return;
}
- ec = U_ZERO_ERROR;
- const UChar* c = getCurrency();
- if (*c == 0) {
- const UnicodeString &intl =
- fImpl->getConstSymbol(DecimalFormatSymbols::kIntlCurrencySymbol);
- c = intl.getBuffer(); // ok for intl to go out of scope
- }
- u_strncpy(result, c, 3);
- result[3] = 0;
+
+ // In C++, fields->symbols is the source of truth for the locale.
+ Locale locale = fields->symbols->getLocale();
+
+ // Note: The formatter is relatively cheap to create, and we need it to populate fields->exportedProperties,
+ // so automatically compute it here. The parser is a bit more expensive and is not needed until the
+ // parse method is called, so defer that until needed.
+ // TODO: Only update the pieces that changed instead of re-computing the whole formatter?
+ fields->formatter.adoptInstead(
+ new LocalizedNumberFormatter(
+ NumberPropertyMapper::create(
+ *fields->properties, *fields->symbols, fields->warehouse, *fields->exportedProperties, status).locale(
+ locale)));
+
+ // Do this after fields->exportedProperties are set up
+ setupFastFormat();
+
+ // Delete the parsers if they were made previously
+ delete fields->atomicParser.exchange(nullptr);
+ delete fields->atomicCurrencyParser.exchange(nullptr);
+
+ // In order for the getters to work, we need to populate some fields in NumberFormat.
+ NumberFormat::setCurrency(fields->exportedProperties->currency.get(status).getISOCurrency(), status);
+ NumberFormat::setMaximumIntegerDigits(fields->exportedProperties->maximumIntegerDigits);
+ NumberFormat::setMinimumIntegerDigits(fields->exportedProperties->minimumIntegerDigits);
+ NumberFormat::setMaximumFractionDigits(fields->exportedProperties->maximumFractionDigits);
+ NumberFormat::setMinimumFractionDigits(fields->exportedProperties->minimumFractionDigits);
+ // fImpl->properties, not fields->exportedProperties, since this information comes from the pattern:
+ NumberFormat::setGroupingUsed(fields->properties->groupingUsed);
+}
+
+void DecimalFormat::touchNoError() {
+ UErrorCode localStatus = U_ZERO_ERROR;
+ touch(localStatus);
}
-Hashtable*
-DecimalFormat::initHashForAffixPattern(UErrorCode& status) {
- if ( U_FAILURE(status) ) {
- return NULL;
+void DecimalFormat::setPropertiesFromPattern(const UnicodeString& pattern, int32_t ignoreRounding,
+ UErrorCode& status) {
+ if (U_SUCCESS(status)) {
+ // Cast workaround to get around putting the enum in the public header file
+ auto actualIgnoreRounding = static_cast<IgnoreRounding>(ignoreRounding);
+ PatternParser::parseToExistingProperties(pattern, *fields->properties, actualIgnoreRounding, status);
}
- Hashtable* hTable;
- if ( (hTable = new Hashtable(TRUE, status)) == NULL ) {
- status = U_MEMORY_ALLOCATION_ERROR;
- return NULL;
+}
+
+const numparse::impl::NumberParserImpl* DecimalFormat::getParser(UErrorCode& status) const {
+ // TODO: Move this into umutex.h? (similar logic also in numrange_fluent.cpp)
+ // See ICU-20146
+
+ if (U_FAILURE(status)) {
+ return nullptr;
}
- if ( U_FAILURE(status) ) {
- delete hTable;
- return NULL;
+
+ // First try to get the pre-computed parser
+ auto* ptr = fields->atomicParser.load();
+ if (ptr != nullptr) {
+ return ptr;
}
- hTable->setValueComparator(decimfmtAffixPatternValueComparator);
- return hTable;
-}
-void
-DecimalFormat::deleteHashForAffixPattern()
-{
- if ( fAffixPatternsForCurrency == NULL ) {
- return;
+ // Try computing the parser on our own
+ auto* temp = NumberParserImpl::createParserFromProperties(*fields->properties, *fields->symbols, false, status);
+ if (U_FAILURE(status)) {
+ return nullptr;
}
- int32_t pos = UHASH_FIRST;
- const UHashElement* element = NULL;
- while ( (element = fAffixPatternsForCurrency->nextElement(pos)) != NULL ) {
- const UHashTok valueTok = element->value;
- const AffixPatternsForCurrency* value = (AffixPatternsForCurrency*)valueTok.pointer;
- delete value;
+ if (temp == nullptr) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return nullptr;
+ }
+
+ // Note: ptr starts as nullptr; during compare_exchange,
+ // it is set to what is actually stored in the atomic
+ // if another thread beat us to computing the parser object.
+ auto* nonConstThis = const_cast<DecimalFormat*>(this);
+ if (!nonConstThis->fields->atomicParser.compare_exchange_strong(ptr, temp)) {
+ // Another thread beat us to computing the parser
+ delete temp;
+ return ptr;
+ } else {
+ // Our copy of the parser got stored in the atomic
+ return temp;
}
- delete fAffixPatternsForCurrency;
- fAffixPatternsForCurrency = NULL;
}
+const numparse::impl::NumberParserImpl* DecimalFormat::getCurrencyParser(UErrorCode& status) const {
+ if (U_FAILURE(status)) { return nullptr; }
-void
-DecimalFormat::copyHashForAffixPattern(const Hashtable* source,
- Hashtable* target,
- UErrorCode& status) {
- if ( U_FAILURE(status) ) {
- return;
+ // First try to get the pre-computed parser
+ auto* ptr = fields->atomicCurrencyParser.load();
+ if (ptr != nullptr) {
+ return ptr;
}
- int32_t pos = UHASH_FIRST;
- const UHashElement* element = NULL;
- if ( source ) {
- while ( (element = source->nextElement(pos)) != NULL ) {
- const UHashTok keyTok = element->key;
- const UnicodeString* key = (UnicodeString*)keyTok.pointer;
- const UHashTok valueTok = element->value;
- const AffixPatternsForCurrency* value = (AffixPatternsForCurrency*)valueTok.pointer;
- AffixPatternsForCurrency* copy = new AffixPatternsForCurrency(
- value->negPrefixPatternForCurrency,
- value->negSuffixPatternForCurrency,
- value->posPrefixPatternForCurrency,
- value->posSuffixPatternForCurrency,
- value->patternType);
- target->put(UnicodeString(*key), copy, status);
- if ( U_FAILURE(status) ) {
- return;
- }
- }
+
+ // Try computing the parser on our own
+ auto* temp = NumberParserImpl::createParserFromProperties(*fields->properties, *fields->symbols, true, status);
+ if (temp == nullptr) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ // although we may still dereference, call sites should be guarded
+ }
+
+ // Note: ptr starts as nullptr; during compare_exchange, it is set to what is actually stored in the
+ // atomic if another thread beat us to computing the parser object.
+ auto* nonConstThis = const_cast<DecimalFormat*>(this);
+ if (!nonConstThis->fields->atomicCurrencyParser.compare_exchange_strong(ptr, temp)) {
+ // Another thread beat us to computing the parser
+ delete temp;
+ return ptr;
+ } else {
+ // Our copy of the parser got stored in the atomic
+ return temp;
}
}
void
-DecimalFormat::setGroupingUsed(UBool newValue) {
- NumberFormat::setGroupingUsed(newValue);
- fImpl->updateGrouping();
+DecimalFormat::fieldPositionHelper(const number::FormattedNumber& formatted, FieldPosition& fieldPosition,
+ int32_t offset, UErrorCode& status) {
+ // always return first occurrence:
+ fieldPosition.setBeginIndex(0);
+ fieldPosition.setEndIndex(0);
+ bool found = formatted.nextFieldPosition(fieldPosition, status);
+ if (found && offset != 0) {
+ FieldPositionOnlyHandler fpoh(fieldPosition);
+ fpoh.shiftLast(offset);
+ }
}
void
-DecimalFormat::setParseIntegerOnly(UBool newValue) {
- NumberFormat::setParseIntegerOnly(newValue);
+DecimalFormat::fieldPositionIteratorHelper(const number::FormattedNumber& formatted, FieldPositionIterator* fpi,
+ int32_t offset, UErrorCode& status) {
+ if (fpi != nullptr) {
+ FieldPositionIteratorHandler fpih(fpi, status);
+ fpih.setShift(offset);
+ formatted.getAllFieldPositionsImpl(fpih, status);
+ }
}
-void
-DecimalFormat::setContext(UDisplayContext value, UErrorCode& status) {
- NumberFormat::setContext(value, status);
-}
-
-DecimalFormat& DecimalFormat::setAttribute( UNumberFormatAttribute attr,
- int32_t newValue,
- UErrorCode &status) {
- if(U_FAILURE(status)) return *this;
-
- switch(attr) {
- case UNUM_LENIENT_PARSE:
- setLenient(newValue!=0);
- break;
-
- case UNUM_PARSE_INT_ONLY:
- setParseIntegerOnly(newValue!=0);
- break;
-
- case UNUM_GROUPING_USED:
- setGroupingUsed(newValue!=0);
- break;
-
- case UNUM_DECIMAL_ALWAYS_SHOWN:
- setDecimalSeparatorAlwaysShown(newValue!=0);
- break;
-
- case UNUM_MAX_INTEGER_DIGITS:
- setMaximumIntegerDigits(newValue);
- break;
-
- case UNUM_MIN_INTEGER_DIGITS:
- setMinimumIntegerDigits(newValue);
- break;
-
- case UNUM_INTEGER_DIGITS:
- setMinimumIntegerDigits(newValue);
- setMaximumIntegerDigits(newValue);
- break;
-
- case UNUM_MAX_FRACTION_DIGITS:
- setMaximumFractionDigits(newValue);
- break;
-
- case UNUM_MIN_FRACTION_DIGITS:
- setMinimumFractionDigits(newValue);
- break;
-
- case UNUM_FRACTION_DIGITS:
- setMinimumFractionDigits(newValue);
- setMaximumFractionDigits(newValue);
- break;
-
- case UNUM_SIGNIFICANT_DIGITS_USED:
- setSignificantDigitsUsed(newValue!=0);
- break;
-
- case UNUM_MAX_SIGNIFICANT_DIGITS:
- setMaximumSignificantDigits(newValue);
- break;
-
- case UNUM_MIN_SIGNIFICANT_DIGITS:
- setMinimumSignificantDigits(newValue);
- break;
-
- case UNUM_MULTIPLIER:
- setMultiplier(newValue);
- break;
-
- case UNUM_GROUPING_SIZE:
- setGroupingSize(newValue);
- break;
-
- case UNUM_ROUNDING_MODE:
- setRoundingMode((DecimalFormat::ERoundingMode)newValue);
- break;
-
- case UNUM_FORMAT_WIDTH:
- setFormatWidth(newValue);
- break;
-
- case UNUM_PADDING_POSITION:
- /** The position at which padding will take place. */
- setPadPosition((DecimalFormat::EPadPosition)newValue);
- break;
-
- case UNUM_SECONDARY_GROUPING_SIZE:
- setSecondaryGroupingSize(newValue);
- break;
+// To debug fast-format, change void(x) to printf(x)
+#define trace(x) void(x)
-#if UCONFIG_HAVE_PARSEALLINPUT
- case UNUM_PARSE_ALL_INPUT:
- setParseAllInput((UNumberFormatAttributeValue)newValue);
- break;
-#endif
+void DecimalFormat::setupFastFormat() {
+ // Check the majority of properties:
+ if (!fields->properties->equalsDefaultExceptFastFormat()) {
+ trace("no fast format: equality\n");
+ fields->canUseFastFormat = false;
+ return;
+ }
+
+ // Now check the remaining properties.
+ // Nontrivial affixes:
+ UBool trivialPP = fields->properties->positivePrefixPattern.isEmpty();
+ UBool trivialPS = fields->properties->positiveSuffixPattern.isEmpty();
+ UBool trivialNP = fields->properties->negativePrefixPattern.isBogus() || (
+ fields->properties->negativePrefixPattern.length() == 1 &&
+ fields->properties->negativePrefixPattern.charAt(0) == u'-');
+ UBool trivialNS = fields->properties->negativeSuffixPattern.isEmpty();
+ if (!trivialPP || !trivialPS || !trivialNP || !trivialNS) {
+ trace("no fast format: affixes\n");
+ fields->canUseFastFormat = false;
+ return;
+ }
+
+ // Grouping (secondary grouping is forbidden in equalsDefaultExceptFastFormat):
+ bool groupingUsed = fields->properties->groupingUsed;
+ int32_t groupingSize = fields->properties->groupingSize;
+ bool unusualGroupingSize = groupingSize > 0 && groupingSize != 3;
+ const UnicodeString& groupingString = fields->symbols->getConstSymbol(DecimalFormatSymbols::kGroupingSeparatorSymbol);
+ if (groupingUsed && (unusualGroupingSize || groupingString.length() != 1)) {
+ trace("no fast format: grouping\n");
+ fields->canUseFastFormat = false;
+ return;
+ }
+
+ // Integer length:
+ int32_t minInt = fields->exportedProperties->minimumIntegerDigits;
+ int32_t maxInt = fields->exportedProperties->maximumIntegerDigits;
+ // Fastpath supports up to only 10 digits (length of INT32_MIN)
+ if (minInt > 10) {
+ trace("no fast format: integer\n");
+ fields->canUseFastFormat = false;
+ return;
+ }
+
+ // Fraction length (no fraction part allowed in fast path):
+ int32_t minFrac = fields->exportedProperties->minimumFractionDigits;
+ if (minFrac > 0) {
+ trace("no fast format: fraction\n");
+ fields->canUseFastFormat = false;
+ return;
+ }
+
+ // Other symbols:
+ const UnicodeString& minusSignString = fields->symbols->getConstSymbol(DecimalFormatSymbols::kMinusSignSymbol);
+ UChar32 codePointZero = fields->symbols->getCodePointZero();
+ if (minusSignString.length() != 1 || U16_LENGTH(codePointZero) != 1) {
+ trace("no fast format: symbols\n");
+ fields->canUseFastFormat = false;
+ return;
+ }
- /* These are stored in fBoolFlags */
- case UNUM_PARSE_NO_EXPONENT:
- case UNUM_FORMAT_FAIL_IF_MORE_THAN_MAX_DIGITS:
- case UNUM_PARSE_DECIMAL_MARK_REQUIRED:
- if(!fBoolFlags.isValidValue(newValue)) {
- status = U_ILLEGAL_ARGUMENT_ERROR;
- } else {
- if (attr == UNUM_FORMAT_FAIL_IF_MORE_THAN_MAX_DIGITS) {
- fImpl->setFailIfMoreThanMaxDigits((UBool) newValue);
- }
- fBoolFlags.set(attr, newValue);
- }
- break;
-
- case UNUM_SCALE:
- fImpl->setScale(newValue);
- break;
-
- case UNUM_CURRENCY_USAGE:
- setCurrencyUsage((UCurrencyUsage)newValue, &status);
- break;
-
- case UNUM_MINIMUM_GROUPING_DIGITS:
- setMinimumGroupingDigits(newValue);
- break;
-
- default:
- status = U_UNSUPPORTED_ERROR;
- break;
- }
- return *this;
-}
-
-int32_t DecimalFormat::getAttribute( UNumberFormatAttribute attr,
- UErrorCode &status ) const {
- if(U_FAILURE(status)) return -1;
- switch(attr) {
- case UNUM_LENIENT_PARSE:
- return isLenient();
-
- case UNUM_PARSE_INT_ONLY:
- return isParseIntegerOnly();
-
- case UNUM_GROUPING_USED:
- return isGroupingUsed();
-
- case UNUM_DECIMAL_ALWAYS_SHOWN:
- return isDecimalSeparatorAlwaysShown();
-
- case UNUM_MAX_INTEGER_DIGITS:
- return getMaximumIntegerDigits();
-
- case UNUM_MIN_INTEGER_DIGITS:
- return getMinimumIntegerDigits();
-
- case UNUM_INTEGER_DIGITS:
- // TBD: what should this return?
- return getMinimumIntegerDigits();
-
- case UNUM_MAX_FRACTION_DIGITS:
- return getMaximumFractionDigits();
-
- case UNUM_MIN_FRACTION_DIGITS:
- return getMinimumFractionDigits();
-
- case UNUM_FRACTION_DIGITS:
- // TBD: what should this return?
- return getMinimumFractionDigits();
-
- case UNUM_SIGNIFICANT_DIGITS_USED:
- return areSignificantDigitsUsed();
-
- case UNUM_MAX_SIGNIFICANT_DIGITS:
- return getMaximumSignificantDigits();
-
- case UNUM_MIN_SIGNIFICANT_DIGITS:
- return getMinimumSignificantDigits();
-
- case UNUM_MULTIPLIER:
- return getMultiplier();
-
- case UNUM_GROUPING_SIZE:
- return getGroupingSize();
-
- case UNUM_ROUNDING_MODE:
- return getRoundingMode();
-
- case UNUM_FORMAT_WIDTH:
- return getFormatWidth();
-
- case UNUM_PADDING_POSITION:
- return getPadPosition();
-
- case UNUM_SECONDARY_GROUPING_SIZE:
- return getSecondaryGroupingSize();
-
- /* These are stored in fBoolFlags */
- case UNUM_PARSE_NO_EXPONENT:
- case UNUM_FORMAT_FAIL_IF_MORE_THAN_MAX_DIGITS:
- case UNUM_PARSE_DECIMAL_MARK_REQUIRED:
- return fBoolFlags.get(attr);
-
- case UNUM_SCALE:
- return fImpl->fScale;
-
- case UNUM_CURRENCY_USAGE:
- return fImpl->getCurrencyUsage();
-
- case UNUM_MINIMUM_GROUPING_DIGITS:
- return getMinimumGroupingDigits();
-
- default:
- status = U_UNSUPPORTED_ERROR;
- break;
- }
-
- return -1; /* undefined */
+ // Good to go!
+ trace("can use fast format!\n");
+ fields->canUseFastFormat = true;
+ fields->fastData.cpZero = static_cast<char16_t>(codePointZero);
+ fields->fastData.cpGroupingSeparator = groupingUsed && groupingSize == 3 ? groupingString.charAt(0) : 0;
+ fields->fastData.cpMinusSign = minusSignString.charAt(0);
+ fields->fastData.minInt = (minInt < 0 || minInt > 127) ? 0 : static_cast<int8_t>(minInt);
+ fields->fastData.maxInt = (maxInt < 0 || maxInt > 127) ? 127 : static_cast<int8_t>(maxInt);
}
-#if UCONFIG_HAVE_PARSEALLINPUT
-void DecimalFormat::setParseAllInput(UNumberFormatAttributeValue value) {
- fParseAllInput = value;
+bool DecimalFormat::fastFormatDouble(double input, UnicodeString& output) const {
+ if (!fields->canUseFastFormat) {
+ return false;
+ }
+ if (std::isnan(input)
+ || std::trunc(input) != input
+ || input <= INT32_MIN
+ || input > INT32_MAX) {
+ return false;
+ }
+ doFastFormatInt32(static_cast<int32_t>(input), std::signbit(input), output);
+ return true;
}
-#endif
-U_NAMESPACE_END
+bool DecimalFormat::fastFormatInt64(int64_t input, UnicodeString& output) const {
+ if (!fields->canUseFastFormat) {
+ return false;
+ }
+ if (input <= INT32_MIN || input > INT32_MAX) {
+ return false;
+ }
+ doFastFormatInt32(static_cast<int32_t>(input), input < 0, output);
+ return true;
+}
+
+void DecimalFormat::doFastFormatInt32(int32_t input, bool isNegative, UnicodeString& output) const {
+ U_ASSERT(fields->canUseFastFormat);
+ if (isNegative) {
+ output.append(fields->fastData.cpMinusSign);
+ U_ASSERT(input != INT32_MIN); // handled by callers
+ input = -input;
+ }
+ // Cap at int32_t to make the buffer small and operations fast.
+ // Longest string: "2,147,483,648" (13 chars in length)
+ static constexpr int32_t localCapacity = 13;
+ char16_t localBuffer[localCapacity];
+ char16_t* ptr = localBuffer + localCapacity;
+ int8_t group = 0;
+ for (int8_t i = 0; i < fields->fastData.maxInt && (input != 0 || i < fields->fastData.minInt); i++) {
+ if (group++ == 3 && fields->fastData.cpGroupingSeparator != 0) {
+ *(--ptr) = fields->fastData.cpGroupingSeparator;
+ group = 1;
+ }
+ std::div_t res = std::div(input, 10);
+ *(--ptr) = static_cast<char16_t>(fields->fastData.cpZero + res.rem);
+ input = res.quot;
+ }
+ int32_t len = localCapacity - static_cast<int32_t>(ptr - localBuffer);
+ output.append(ptr, len);
+}
-#endif /* #if !UCONFIG_NO_FORMATTING */
-//eof
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/decimfmtimpl.cpp b/Build/source/libs/icu/icu-src/source/i18n/decimfmtimpl.cpp
deleted file mode 100644
index 62bd956fa5b..00000000000
--- a/Build/source/libs/icu/icu-src/source/i18n/decimfmtimpl.cpp
+++ /dev/null
@@ -1,1597 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
- * Copyright (C) 2015, International Business Machines
- * Corporation and others. All Rights Reserved.
- *
- * file name: decimfmtimpl.cpp
- */
-
-#include "unicode/utypes.h"
-
-#if !UCONFIG_NO_FORMATTING
-
-#include <math.h>
-#include "unicode/numfmt.h"
-#include "unicode/plurrule.h"
-#include "unicode/ustring.h"
-#include "decimalformatpattern.h"
-#include "decimalformatpatternimpl.h"
-#include "decimfmtimpl.h"
-#include "fphdlimp.h"
-#include "plurrule_impl.h"
-#include "valueformatter.h"
-#include "visibledigits.h"
-
-U_NAMESPACE_BEGIN
-
-static const int32_t kMaxScientificIntegerDigits = 8;
-
-static const int32_t kFormattingPosPrefix = (1 << 0);
-static const int32_t kFormattingNegPrefix = (1 << 1);
-static const int32_t kFormattingPosSuffix = (1 << 2);
-static const int32_t kFormattingNegSuffix = (1 << 3);
-static const int32_t kFormattingSymbols = (1 << 4);
-static const int32_t kFormattingCurrency = (1 << 5);
-static const int32_t kFormattingUsesCurrency = (1 << 6);
-static const int32_t kFormattingPluralRules = (1 << 7);
-static const int32_t kFormattingAffixParser = (1 << 8);
-static const int32_t kFormattingCurrencyAffixInfo = (1 << 9);
-static const int32_t kFormattingAll = (1 << 10) - 1;
-static const int32_t kFormattingAffixes =
- kFormattingPosPrefix | kFormattingPosSuffix |
- kFormattingNegPrefix | kFormattingNegSuffix;
-static const int32_t kFormattingAffixParserWithCurrency =
- kFormattingAffixParser | kFormattingCurrencyAffixInfo;
-
-DecimalFormatImpl::DecimalFormatImpl(
- NumberFormat *super,
- const Locale &locale,
- const UnicodeString &pattern,
- UErrorCode &status)
- : fSuper(super),
- fScale(0),
- fRoundingMode(DecimalFormat::kRoundHalfEven),
- fSymbols(NULL),
- fCurrencyUsage(UCURR_USAGE_STANDARD),
- fRules(NULL),
- fMonetary(FALSE) {
- if (U_FAILURE(status)) {
- return;
- }
- fSymbols = new DecimalFormatSymbols(
- locale, status);
- if (fSymbols == NULL) {
- status = U_MEMORY_ALLOCATION_ERROR;
- return;
- }
- UParseError parseError;
- applyPattern(pattern, FALSE, parseError, status);
- updateAll(status);
-}
-
-DecimalFormatImpl::DecimalFormatImpl(
- NumberFormat *super,
- const UnicodeString &pattern,
- DecimalFormatSymbols *symbolsToAdopt,
- UParseError &parseError,
- UErrorCode &status)
- : fSuper(super),
- fScale(0),
- fRoundingMode(DecimalFormat::kRoundHalfEven),
- fSymbols(symbolsToAdopt),
- fCurrencyUsage(UCURR_USAGE_STANDARD),
- fRules(NULL),
- fMonetary(FALSE) {
- applyPattern(pattern, FALSE, parseError, status);
- updateAll(status);
-}
-
-DecimalFormatImpl::DecimalFormatImpl(
- NumberFormat *super, const DecimalFormatImpl &other, UErrorCode &status) :
- fSuper(super),
- fMultiplier(other.fMultiplier),
- fScale(other.fScale),
- fRoundingMode(other.fRoundingMode),
- fMinSigDigits(other.fMinSigDigits),
- fMaxSigDigits(other.fMaxSigDigits),
- fUseScientific(other.fUseScientific),
- fUseSigDigits(other.fUseSigDigits),
- fGrouping(other.fGrouping),
- fPositivePrefixPattern(other.fPositivePrefixPattern),
- fNegativePrefixPattern(other.fNegativePrefixPattern),
- fPositiveSuffixPattern(other.fPositiveSuffixPattern),
- fNegativeSuffixPattern(other.fNegativeSuffixPattern),
- fSymbols(other.fSymbols),
- fCurrencyUsage(other.fCurrencyUsage),
- fRules(NULL),
- fMonetary(other.fMonetary),
- fAffixParser(other.fAffixParser),
- fCurrencyAffixInfo(other.fCurrencyAffixInfo),
- fEffPrecision(other.fEffPrecision),
- fEffGrouping(other.fEffGrouping),
- fOptions(other.fOptions),
- fFormatter(other.fFormatter),
- fAffixes(other.fAffixes) {
- fSymbols = new DecimalFormatSymbols(*fSymbols);
- if (fSymbols == NULL && U_SUCCESS(status)) {
- status = U_MEMORY_ALLOCATION_ERROR;
- }
- if (other.fRules != NULL) {
- fRules = new PluralRules(*other.fRules);
- if (fRules == NULL && U_SUCCESS(status)) {
- status = U_MEMORY_ALLOCATION_ERROR;
- }
- }
-}
-
-
-DecimalFormatImpl &
-DecimalFormatImpl::assign(const DecimalFormatImpl &other, UErrorCode &status) {
- if (U_FAILURE(status) || this == &other) {
- return (*this);
- }
- UObject::operator=(other);
- fMultiplier = other.fMultiplier;
- fScale = other.fScale;
- fRoundingMode = other.fRoundingMode;
- fMinSigDigits = other.fMinSigDigits;
- fMaxSigDigits = other.fMaxSigDigits;
- fUseScientific = other.fUseScientific;
- fUseSigDigits = other.fUseSigDigits;
- fGrouping = other.fGrouping;
- fPositivePrefixPattern = other.fPositivePrefixPattern;
- fNegativePrefixPattern = other.fNegativePrefixPattern;
- fPositiveSuffixPattern = other.fPositiveSuffixPattern;
- fNegativeSuffixPattern = other.fNegativeSuffixPattern;
- fCurrencyUsage = other.fCurrencyUsage;
- fMonetary = other.fMonetary;
- fAffixParser = other.fAffixParser;
- fCurrencyAffixInfo = other.fCurrencyAffixInfo;
- fEffPrecision = other.fEffPrecision;
- fEffGrouping = other.fEffGrouping;
- fOptions = other.fOptions;
- fFormatter = other.fFormatter;
- fAffixes = other.fAffixes;
- *fSymbols = *other.fSymbols;
- if (fRules != NULL && other.fRules != NULL) {
- *fRules = *other.fRules;
- } else {
- delete fRules;
- fRules = other.fRules;
- if (fRules != NULL) {
- fRules = new PluralRules(*fRules);
- if (fRules == NULL) {
- status = U_MEMORY_ALLOCATION_ERROR;
- return *this;
- }
- }
- }
- return *this;
-}
-
-UBool
-DecimalFormatImpl::operator==(const DecimalFormatImpl &other) const {
- if (this == &other) {
- return TRUE;
- }
- return (fMultiplier == other.fMultiplier)
- && (fScale == other.fScale)
- && (fRoundingMode == other.fRoundingMode)
- && (fMinSigDigits == other.fMinSigDigits)
- && (fMaxSigDigits == other.fMaxSigDigits)
- && (fUseScientific == other.fUseScientific)
- && (fUseSigDigits == other.fUseSigDigits)
- && fGrouping.equals(other.fGrouping)
- && fPositivePrefixPattern.equals(other.fPositivePrefixPattern)
- && fNegativePrefixPattern.equals(other.fNegativePrefixPattern)
- && fPositiveSuffixPattern.equals(other.fPositiveSuffixPattern)
- && fNegativeSuffixPattern.equals(other.fNegativeSuffixPattern)
- && fCurrencyUsage == other.fCurrencyUsage
- && fAffixParser.equals(other.fAffixParser)
- && fCurrencyAffixInfo.equals(other.fCurrencyAffixInfo)
- && fEffPrecision.equals(other.fEffPrecision)
- && fEffGrouping.equals(other.fEffGrouping)
- && fOptions.equals(other.fOptions)
- && fFormatter.equals(other.fFormatter)
- && fAffixes.equals(other.fAffixes)
- && (*fSymbols == *other.fSymbols)
- && ((fRules == other.fRules) || (
- (fRules != NULL) && (other.fRules != NULL)
- && (*fRules == *other.fRules)))
- && (fMonetary == other.fMonetary);
-}
-
-DecimalFormatImpl::~DecimalFormatImpl() {
- delete fSymbols;
- delete fRules;
-}
-
-ValueFormatter &
-DecimalFormatImpl::prepareValueFormatter(ValueFormatter &vf) const {
- if (fUseScientific) {
- vf.prepareScientificFormatting(
- fFormatter, fEffPrecision, fOptions);
- return vf;
- }
- vf.prepareFixedDecimalFormatting(
- fFormatter, fEffGrouping, fEffPrecision.fMantissa, fOptions.fMantissa);
- return vf;
-}
-
-int32_t
-DecimalFormatImpl::getPatternScale() const {
- UBool usesPercent = fPositivePrefixPattern.usesPercent() ||
- fPositiveSuffixPattern.usesPercent() ||
- fNegativePrefixPattern.usesPercent() ||
- fNegativeSuffixPattern.usesPercent();
- if (usesPercent) {
- return 2;
- }
- UBool usesPermill = fPositivePrefixPattern.usesPermill() ||
- fPositiveSuffixPattern.usesPermill() ||
- fNegativePrefixPattern.usesPermill() ||
- fNegativeSuffixPattern.usesPermill();
- if (usesPermill) {
- return 3;
- }
- return 0;
-}
-
-void
-DecimalFormatImpl::setMultiplierScale(int32_t scale) {
- if (scale == 0) {
- // Needed to preserve equality. fMultiplier == 0 means
- // multiplier is 1.
- fMultiplier.set((int32_t)0);
- } else {
- fMultiplier.set((int32_t)1);
- fMultiplier.shiftDecimalRight(scale);
- }
-}
-
-UnicodeString &
-DecimalFormatImpl::format(
- int32_t number,
- UnicodeString &appendTo,
- FieldPosition &pos,
- UErrorCode &status) const {
- FieldPositionOnlyHandler handler(pos);
- return formatInt32(number, appendTo, handler, status);
-}
-
-UnicodeString &
-DecimalFormatImpl::format(
- int32_t number,
- UnicodeString &appendTo,
- FieldPositionIterator *posIter,
- UErrorCode &status) const {
- FieldPositionIteratorHandler handler(posIter, status);
- return formatInt32(number, appendTo, handler, status);
-}
-
-template<class T>
-UBool DecimalFormatImpl::maybeFormatWithDigitList(
- T number,
- UnicodeString &appendTo,
- FieldPositionHandler &handler,
- UErrorCode &status) const {
- if (!fMultiplier.isZero()) {
- DigitList digits;
- digits.set(number);
- digits.mult(fMultiplier, status);
- digits.shiftDecimalRight(fScale);
- formatAdjustedDigitList(digits, appendTo, handler, status);
- return TRUE;
- }
- if (fScale != 0) {
- DigitList digits;
- digits.set(number);
- digits.shiftDecimalRight(fScale);
- formatAdjustedDigitList(digits, appendTo, handler, status);
- return TRUE;
- }
- return FALSE;
-}
-
-template<class T>
-UBool DecimalFormatImpl::maybeInitVisibleDigitsFromDigitList(
- T number,
- VisibleDigitsWithExponent &visibleDigits,
- UErrorCode &status) const {
- if (!fMultiplier.isZero()) {
- DigitList digits;
- digits.set(number);
- digits.mult(fMultiplier, status);
- digits.shiftDecimalRight(fScale);
- initVisibleDigitsFromAdjusted(digits, visibleDigits, status);
- return TRUE;
- }
- if (fScale != 0) {
- DigitList digits;
- digits.set(number);
- digits.shiftDecimalRight(fScale);
- initVisibleDigitsFromAdjusted(digits, visibleDigits, status);
- return TRUE;
- }
- return FALSE;
-}
-
-UnicodeString &
-DecimalFormatImpl::formatInt32(
- int32_t number,
- UnicodeString &appendTo,
- FieldPositionHandler &handler,
- UErrorCode &status) const {
- if (maybeFormatWithDigitList(number, appendTo, handler, status)) {
- return appendTo;
- }
- ValueFormatter vf;
- return fAffixes.formatInt32(
- number,
- prepareValueFormatter(vf),
- handler,
- fRules,
- appendTo,
- status);
-}
-
-UnicodeString &
-DecimalFormatImpl::formatInt64(
- int64_t number,
- UnicodeString &appendTo,
- FieldPositionHandler &handler,
- UErrorCode &status) const {
- if (number >= INT32_MIN && number <= INT32_MAX) {
- return formatInt32((int32_t) number, appendTo, handler, status);
- }
- VisibleDigitsWithExponent digits;
- initVisibleDigitsWithExponent(number, digits, status);
- return formatVisibleDigitsWithExponent(
- digits, appendTo, handler, status);
-}
-
-UnicodeString &
-DecimalFormatImpl::formatDouble(
- double number,
- UnicodeString &appendTo,
- FieldPositionHandler &handler,
- UErrorCode &status) const {
- VisibleDigitsWithExponent digits;
- initVisibleDigitsWithExponent(number, digits, status);
- return formatVisibleDigitsWithExponent(
- digits, appendTo, handler, status);
-}
-
-UnicodeString &
-DecimalFormatImpl::format(
- double number,
- UnicodeString &appendTo,
- FieldPosition &pos,
- UErrorCode &status) const {
- FieldPositionOnlyHandler handler(pos);
- return formatDouble(number, appendTo, handler, status);
-}
-
-UnicodeString &
-DecimalFormatImpl::format(
- const DigitList &number,
- UnicodeString &appendTo,
- FieldPosition &pos,
- UErrorCode &status) const {
- DigitList dl(number);
- FieldPositionOnlyHandler handler(pos);
- return formatDigitList(dl, appendTo, handler, status);
-}
-
-UnicodeString &
-DecimalFormatImpl::format(
- int64_t number,
- UnicodeString &appendTo,
- FieldPosition &pos,
- UErrorCode &status) const {
- FieldPositionOnlyHandler handler(pos);
- return formatInt64(number, appendTo, handler, status);
-}
-
-UnicodeString &
-DecimalFormatImpl::format(
- int64_t number,
- UnicodeString &appendTo,
- FieldPositionIterator *posIter,
- UErrorCode &status) const {
- FieldPositionIteratorHandler handler(posIter, status);
- return formatInt64(number, appendTo, handler, status);
-}
-
-UnicodeString &
-DecimalFormatImpl::format(
- double number,
- UnicodeString &appendTo,
- FieldPositionIterator *posIter,
- UErrorCode &status) const {
- FieldPositionIteratorHandler handler(posIter, status);
- return formatDouble(number, appendTo, handler, status);
-}
-
-UnicodeString &
-DecimalFormatImpl::format(
- const DigitList &number,
- UnicodeString &appendTo,
- FieldPositionIterator *posIter,
- UErrorCode &status) const {
- DigitList dl(number);
- FieldPositionIteratorHandler handler(posIter, status);
- return formatDigitList(dl, appendTo, handler, status);
-}
-
-UnicodeString &
-DecimalFormatImpl::format(
- StringPiece number,
- UnicodeString &appendTo,
- FieldPositionIterator *posIter,
- UErrorCode &status) const {
- DigitList dl;
- dl.set(number, status);
- FieldPositionIteratorHandler handler(posIter, status);
- return formatDigitList(dl, appendTo, handler, status);
-}
-
-UnicodeString &
-DecimalFormatImpl::format(
- const VisibleDigitsWithExponent &digits,
- UnicodeString &appendTo,
- FieldPosition &pos,
- UErrorCode &status) const {
- FieldPositionOnlyHandler handler(pos);
- return formatVisibleDigitsWithExponent(
- digits, appendTo, handler, status);
-}
-
-UnicodeString &
-DecimalFormatImpl::format(
- const VisibleDigitsWithExponent &digits,
- UnicodeString &appendTo,
- FieldPositionIterator *posIter,
- UErrorCode &status) const {
- FieldPositionIteratorHandler handler(posIter, status);
- return formatVisibleDigitsWithExponent(
- digits, appendTo, handler, status);
-}
-
-DigitList &
-DecimalFormatImpl::adjustDigitList(
- DigitList &number, UErrorCode &status) const {
- number.setRoundingMode(fRoundingMode);
- if (!fMultiplier.isZero()) {
- number.mult(fMultiplier, status);
- }
- if (fScale != 0) {
- number.shiftDecimalRight(fScale);
- }
- number.reduce();
- return number;
-}
-
-UnicodeString &
-DecimalFormatImpl::formatDigitList(
- DigitList &number,
- UnicodeString &appendTo,
- FieldPositionHandler &handler,
- UErrorCode &status) const {
- VisibleDigitsWithExponent digits;
- initVisibleDigitsWithExponent(number, digits, status);
- return formatVisibleDigitsWithExponent(
- digits, appendTo, handler, status);
-}
-
-UnicodeString &
-DecimalFormatImpl::formatAdjustedDigitList(
- DigitList &number,
- UnicodeString &appendTo,
- FieldPositionHandler &handler,
- UErrorCode &status) const {
- ValueFormatter vf;
- return fAffixes.format(
- number,
- prepareValueFormatter(vf),
- handler,
- fRules,
- appendTo,
- status);
-}
-
-UnicodeString &
-DecimalFormatImpl::formatVisibleDigitsWithExponent(
- const VisibleDigitsWithExponent &digits,
- UnicodeString &appendTo,
- FieldPositionHandler &handler,
- UErrorCode &status) const {
- ValueFormatter vf;
- return fAffixes.format(
- digits,
- prepareValueFormatter(vf),
- handler,
- fRules,
- appendTo,
- status);
-}
-
-static FixedDecimal &initFixedDecimal(
- const VisibleDigits &digits, FixedDecimal &result) {
- result.source = 0.0;
- result.isNegative = digits.isNegative();
- result._isNaN = digits.isNaN();
- result._isInfinite = digits.isInfinite();
- digits.getFixedDecimal(
- result.source, result.intValue, result.decimalDigits,
- result.decimalDigitsWithoutTrailingZeros,
- result.visibleDecimalDigitCount, result.hasIntegerValue);
- return result;
-}
-
-FixedDecimal &
-DecimalFormatImpl::getFixedDecimal(double number, FixedDecimal &result, UErrorCode &status) const {
- if (U_FAILURE(status)) {
- return result;
- }
- VisibleDigits digits;
- fEffPrecision.fMantissa.initVisibleDigits(number, digits, status);
- return initFixedDecimal(digits, result);
-}
-
-FixedDecimal &
-DecimalFormatImpl::getFixedDecimal(
- DigitList &number, FixedDecimal &result, UErrorCode &status) const {
- if (U_FAILURE(status)) {
- return result;
- }
- VisibleDigits digits;
- fEffPrecision.fMantissa.initVisibleDigits(number, digits, status);
- return initFixedDecimal(digits, result);
-}
-
-VisibleDigitsWithExponent &
-DecimalFormatImpl::initVisibleDigitsWithExponent(
- int64_t number,
- VisibleDigitsWithExponent &digits,
- UErrorCode &status) const {
- if (maybeInitVisibleDigitsFromDigitList(
- number, digits, status)) {
- return digits;
- }
- if (fUseScientific) {
- fEffPrecision.initVisibleDigitsWithExponent(
- number, digits, status);
- } else {
- fEffPrecision.fMantissa.initVisibleDigitsWithExponent(
- number, digits, status);
- }
- return digits;
-}
-
-VisibleDigitsWithExponent &
-DecimalFormatImpl::initVisibleDigitsWithExponent(
- double number,
- VisibleDigitsWithExponent &digits,
- UErrorCode &status) const {
- if (maybeInitVisibleDigitsFromDigitList(
- number, digits, status)) {
- return digits;
- }
- if (fUseScientific) {
- fEffPrecision.initVisibleDigitsWithExponent(
- number, digits, status);
- } else {
- fEffPrecision.fMantissa.initVisibleDigitsWithExponent(
- number, digits, status);
- }
- return digits;
-}
-
-VisibleDigitsWithExponent &
-DecimalFormatImpl::initVisibleDigitsWithExponent(
- DigitList &number,
- VisibleDigitsWithExponent &digits,
- UErrorCode &status) const {
- adjustDigitList(number, status);
- return initVisibleDigitsFromAdjusted(number, digits, status);
-}
-
-VisibleDigitsWithExponent &
-DecimalFormatImpl::initVisibleDigitsFromAdjusted(
- DigitList &number,
- VisibleDigitsWithExponent &digits,
- UErrorCode &status) const {
- if (fUseScientific) {
- fEffPrecision.initVisibleDigitsWithExponent(
- number, digits, status);
- } else {
- fEffPrecision.fMantissa.initVisibleDigitsWithExponent(
- number, digits, status);
- }
- return digits;
-}
-
-DigitList &
-DecimalFormatImpl::round(
- DigitList &number, UErrorCode &status) const {
- if (number.isNaN() || number.isInfinite()) {
- return number;
- }
- adjustDigitList(number, status);
- ValueFormatter vf;
- prepareValueFormatter(vf);
- return vf.round(number, status);
-}
-
-void
-DecimalFormatImpl::setMinimumSignificantDigits(int32_t newValue) {
- fMinSigDigits = newValue;
- fUseSigDigits = TRUE; // ticket 9936
- updatePrecision();
-}
-
-void
-DecimalFormatImpl::setMaximumSignificantDigits(int32_t newValue) {
- fMaxSigDigits = newValue;
- fUseSigDigits = TRUE; // ticket 9936
- updatePrecision();
-}
-
-void
-DecimalFormatImpl::setMinMaxSignificantDigits(int32_t min, int32_t max) {
- fMinSigDigits = min;
- fMaxSigDigits = max;
- fUseSigDigits = TRUE; // ticket 9936
- updatePrecision();
-}
-
-void
-DecimalFormatImpl::setScientificNotation(UBool newValue) {
- fUseScientific = newValue;
- updatePrecision();
-}
-
-void
-DecimalFormatImpl::setSignificantDigitsUsed(UBool newValue) {
- fUseSigDigits = newValue;
- updatePrecision();
-}
-
-void
-DecimalFormatImpl::setGroupingSize(int32_t newValue) {
- fGrouping.fGrouping = newValue;
- updateGrouping();
-}
-
-void
-DecimalFormatImpl::setSecondaryGroupingSize(int32_t newValue) {
- fGrouping.fGrouping2 = newValue;
- updateGrouping();
-}
-
-void
-DecimalFormatImpl::setMinimumGroupingDigits(int32_t newValue) {
- fGrouping.fMinGrouping = newValue;
- updateGrouping();
-}
-
-void
-DecimalFormatImpl::setCurrencyUsage(
- UCurrencyUsage currencyUsage, UErrorCode &status) {
- fCurrencyUsage = currencyUsage;
- updateFormatting(kFormattingCurrency, status);
-}
-
-void
-DecimalFormatImpl::setRoundingIncrement(double d) {
- if (d > 0.0) {
- fEffPrecision.fMantissa.fRoundingIncrement.set(d);
- } else {
- fEffPrecision.fMantissa.fRoundingIncrement.set(0.0);
- }
-}
-
-double
-DecimalFormatImpl::getRoundingIncrement() const {
- return fEffPrecision.fMantissa.fRoundingIncrement.getDouble();
-}
-
-int32_t
-DecimalFormatImpl::getMultiplier() const {
- if (fMultiplier.isZero()) {
- return 1;
- }
- return (int32_t) fMultiplier.getDouble();
-}
-
-void
-DecimalFormatImpl::setMultiplier(int32_t m) {
- if (m == 0 || m == 1) {
- fMultiplier.set((int32_t)0);
- } else {
- fMultiplier.set(m);
- }
-}
-
-void
-DecimalFormatImpl::setPositivePrefix(const UnicodeString &str) {
- fPositivePrefixPattern.remove();
- fPositivePrefixPattern.addLiteral(str.getBuffer(), 0, str.length());
- UErrorCode status = U_ZERO_ERROR;
- updateFormatting(kFormattingPosPrefix, status);
-}
-
-void
-DecimalFormatImpl::setPositiveSuffix(const UnicodeString &str) {
- fPositiveSuffixPattern.remove();
- fPositiveSuffixPattern.addLiteral(str.getBuffer(), 0, str.length());
- UErrorCode status = U_ZERO_ERROR;
- updateFormatting(kFormattingPosSuffix, status);
-}
-
-void
-DecimalFormatImpl::setNegativePrefix(const UnicodeString &str) {
- fNegativePrefixPattern.remove();
- fNegativePrefixPattern.addLiteral(str.getBuffer(), 0, str.length());
- UErrorCode status = U_ZERO_ERROR;
- updateFormatting(kFormattingNegPrefix, status);
-}
-
-void
-DecimalFormatImpl::setNegativeSuffix(const UnicodeString &str) {
- fNegativeSuffixPattern.remove();
- fNegativeSuffixPattern.addLiteral(str.getBuffer(), 0, str.length());
- UErrorCode status = U_ZERO_ERROR;
- updateFormatting(kFormattingNegSuffix, status);
-}
-
-UnicodeString &
-DecimalFormatImpl::getPositivePrefix(UnicodeString &result) const {
- result = fAffixes.fPositivePrefix.getOtherVariant().toString();
- return result;
-}
-
-UnicodeString &
-DecimalFormatImpl::getPositiveSuffix(UnicodeString &result) const {
- result = fAffixes.fPositiveSuffix.getOtherVariant().toString();
- return result;
-}
-
-UnicodeString &
-DecimalFormatImpl::getNegativePrefix(UnicodeString &result) const {
- result = fAffixes.fNegativePrefix.getOtherVariant().toString();
- return result;
-}
-
-UnicodeString &
-DecimalFormatImpl::getNegativeSuffix(UnicodeString &result) const {
- result = fAffixes.fNegativeSuffix.getOtherVariant().toString();
- return result;
-}
-
-void
-DecimalFormatImpl::adoptDecimalFormatSymbols(DecimalFormatSymbols *symbolsToAdopt) {
- if (symbolsToAdopt == NULL) {
- return;
- }
- delete fSymbols;
- fSymbols = symbolsToAdopt;
- UErrorCode status = U_ZERO_ERROR;
- updateFormatting(kFormattingSymbols, status);
-}
-
-void
-DecimalFormatImpl::applyPatternFavorCurrencyPrecision(
- const UnicodeString &pattern, UErrorCode &status) {
- UParseError perror;
- applyPattern(pattern, FALSE, perror, status);
- updateForApplyPatternFavorCurrencyPrecision(status);
-}
-
-void
-DecimalFormatImpl::applyPattern(
- const UnicodeString &pattern, UErrorCode &status) {
- UParseError perror;
- applyPattern(pattern, FALSE, perror, status);
- updateForApplyPattern(status);
-}
-
-void
-DecimalFormatImpl::applyPattern(
- const UnicodeString &pattern,
- UParseError &perror, UErrorCode &status) {
- applyPattern(pattern, FALSE, perror, status);
- updateForApplyPattern(status);
-}
-
-void
-DecimalFormatImpl::applyLocalizedPattern(
- const UnicodeString &pattern, UErrorCode &status) {
- UParseError perror;
- applyPattern(pattern, TRUE, perror, status);
- updateForApplyPattern(status);
-}
-
-void
-DecimalFormatImpl::applyLocalizedPattern(
- const UnicodeString &pattern,
- UParseError &perror, UErrorCode &status) {
- applyPattern(pattern, TRUE, perror, status);
- updateForApplyPattern(status);
-}
-
-void
-DecimalFormatImpl::applyPattern(
- const UnicodeString &pattern,
- UBool localized, UParseError &perror, UErrorCode &status) {
- if (U_FAILURE(status)) {
- return;
- }
- DecimalFormatPatternParser patternParser;
- if (localized) {
- patternParser.useSymbols(*fSymbols);
- }
- DecimalFormatPattern out;
- patternParser.applyPatternWithoutExpandAffix(
- pattern, out, perror, status);
- if (U_FAILURE(status)) {
- return;
- }
- fUseScientific = out.fUseExponentialNotation;
- fUseSigDigits = out.fUseSignificantDigits;
- fSuper->NumberFormat::setMinimumIntegerDigits(out.fMinimumIntegerDigits);
- fSuper->NumberFormat::setMaximumIntegerDigits(out.fMaximumIntegerDigits);
- fSuper->NumberFormat::setMinimumFractionDigits(out.fMinimumFractionDigits);
- fSuper->NumberFormat::setMaximumFractionDigits(out.fMaximumFractionDigits);
- fMinSigDigits = out.fMinimumSignificantDigits;
- fMaxSigDigits = out.fMaximumSignificantDigits;
- fEffPrecision.fMinExponentDigits = out.fMinExponentDigits;
- fOptions.fExponent.fAlwaysShowSign = out.fExponentSignAlwaysShown;
- fSuper->NumberFormat::setGroupingUsed(out.fGroupingUsed);
- fGrouping.fGrouping = out.fGroupingSize;
- fGrouping.fGrouping2 = out.fGroupingSize2;
- fOptions.fMantissa.fAlwaysShowDecimal = out.fDecimalSeparatorAlwaysShown;
- if (out.fRoundingIncrementUsed) {
- fEffPrecision.fMantissa.fRoundingIncrement = out.fRoundingIncrement;
- } else {
- fEffPrecision.fMantissa.fRoundingIncrement.clear();
- }
- fAffixes.fPadChar = out.fPad;
- fNegativePrefixPattern = out.fNegPrefixAffix;
- fNegativeSuffixPattern = out.fNegSuffixAffix;
- fPositivePrefixPattern = out.fPosPrefixAffix;
- fPositiveSuffixPattern = out.fPosSuffixAffix;
-
- // Work around. Pattern parsing code and DecimalFormat code don't agree
- // on the definition of field width, so we have to translate from
- // pattern field width to decimal format field width here.
- fAffixes.fWidth = out.fFormatWidth == 0 ? 0 :
- out.fFormatWidth + fPositivePrefixPattern.countChar32()
- + fPositiveSuffixPattern.countChar32();
- switch (out.fPadPosition) {
- case DecimalFormatPattern::kPadBeforePrefix:
- fAffixes.fPadPosition = DigitAffixesAndPadding::kPadBeforePrefix;
- break;
- case DecimalFormatPattern::kPadAfterPrefix:
- fAffixes.fPadPosition = DigitAffixesAndPadding::kPadAfterPrefix;
- break;
- case DecimalFormatPattern::kPadBeforeSuffix:
- fAffixes.fPadPosition = DigitAffixesAndPadding::kPadBeforeSuffix;
- break;
- case DecimalFormatPattern::kPadAfterSuffix:
- fAffixes.fPadPosition = DigitAffixesAndPadding::kPadAfterSuffix;
- break;
- default:
- break;
- }
-}
-
-void
-DecimalFormatImpl::updatePrecision() {
- if (fUseScientific) {
- updatePrecisionForScientific();
- } else {
- updatePrecisionForFixed();
- }
-}
-
-static void updatePrecisionForScientificMinMax(
- const DigitInterval &min,
- const DigitInterval &max,
- DigitInterval &resultMin,
- DigitInterval &resultMax,
- SignificantDigitInterval &resultSignificant) {
- resultMin.setIntDigitCount(0);
- resultMin.setFracDigitCount(0);
- resultSignificant.clear();
- resultMax.clear();
-
- int32_t maxIntDigitCount = max.getIntDigitCount();
- int32_t minIntDigitCount = min.getIntDigitCount();
- int32_t maxFracDigitCount = max.getFracDigitCount();
- int32_t minFracDigitCount = min.getFracDigitCount();
-
-
- // Not in spec: maxIntDigitCount > 8 assume
- // maxIntDigitCount = minIntDigitCount. Current DecimalFormat API has
- // no provision for unsetting maxIntDigitCount which would be useful for
- // scientific notation. The best we can do is assume that if
- // maxIntDigitCount is the default of 2000000000 or is "big enough" then
- // user did not intend to explicitly set it. The 8 was derived emperically
- // by extensive testing of legacy code.
- if (maxIntDigitCount > 8) {
- maxIntDigitCount = minIntDigitCount;
- }
-
- // Per the spec, exponent grouping happens if maxIntDigitCount is more
- // than 1 and more than minIntDigitCount.
- UBool bExponentGrouping = maxIntDigitCount > 1 && minIntDigitCount < maxIntDigitCount;
- if (bExponentGrouping) {
- resultMax.setIntDigitCount(maxIntDigitCount);
-
- // For exponent grouping minIntDigits is always treated as 1 even
- // if it wasn't set to 1!
- resultMin.setIntDigitCount(1);
- } else {
- // Fixed digit count left of decimal. minIntDigitCount doesn't have
- // to equal maxIntDigitCount i.e minIntDigitCount == 0 while
- // maxIntDigitCount == 1.
- int32_t fixedIntDigitCount = maxIntDigitCount;
-
- // If fixedIntDigitCount is 0 but
- // min or max fraction count is 0 too then use 1. This way we can get
- // unlimited precision for X.XXXEX
- if (fixedIntDigitCount == 0 && (minFracDigitCount == 0 || maxFracDigitCount == 0)) {
- fixedIntDigitCount = 1;
- }
- resultMax.setIntDigitCount(fixedIntDigitCount);
- resultMin.setIntDigitCount(fixedIntDigitCount);
- }
- // Spec says this is how we compute significant digits. 0 means
- // unlimited significant digits.
- int32_t maxSigDigits = minIntDigitCount + maxFracDigitCount;
- if (maxSigDigits > 0) {
- int32_t minSigDigits = minIntDigitCount + minFracDigitCount;
- resultSignificant.setMin(minSigDigits);
- resultSignificant.setMax(maxSigDigits);
- }
-}
-
-void
-DecimalFormatImpl::updatePrecisionForScientific() {
- FixedPrecision *result = &fEffPrecision.fMantissa;
- if (fUseSigDigits) {
- result->fMax.setFracDigitCount(-1);
- result->fMax.setIntDigitCount(1);
- result->fMin.setFracDigitCount(0);
- result->fMin.setIntDigitCount(1);
- result->fSignificant.clear();
- extractSigDigits(result->fSignificant);
- return;
- }
- DigitInterval max;
- DigitInterval min;
- extractMinMaxDigits(min, max);
- updatePrecisionForScientificMinMax(
- min, max,
- result->fMin, result->fMax, result->fSignificant);
-}
-
-void
-DecimalFormatImpl::updatePrecisionForFixed() {
- FixedPrecision *result = &fEffPrecision.fMantissa;
- if (!fUseSigDigits) {
- extractMinMaxDigits(result->fMin, result->fMax);
- result->fSignificant.clear();
- } else {
- extractSigDigits(result->fSignificant);
- result->fMin.setIntDigitCount(1);
- result->fMin.setFracDigitCount(0);
- result->fMax.clear();
- }
-}
-
-void
- DecimalFormatImpl::extractMinMaxDigits(
- DigitInterval &min, DigitInterval &max) const {
- min.setIntDigitCount(fSuper->getMinimumIntegerDigits());
- max.setIntDigitCount(fSuper->getMaximumIntegerDigits());
- min.setFracDigitCount(fSuper->getMinimumFractionDigits());
- max.setFracDigitCount(fSuper->getMaximumFractionDigits());
-}
-
-void
- DecimalFormatImpl::extractSigDigits(
- SignificantDigitInterval &sig) const {
- sig.setMin(fMinSigDigits < 0 ? 0 : fMinSigDigits);
- sig.setMax(fMaxSigDigits < 0 ? 0 : fMaxSigDigits);
-}
-
-void
-DecimalFormatImpl::updateGrouping() {
- if (fSuper->isGroupingUsed()) {
- fEffGrouping = fGrouping;
- } else {
- fEffGrouping.clear();
- }
-}
-
-void
-DecimalFormatImpl::updateCurrency(UErrorCode &status) {
- updateFormatting(kFormattingCurrency, TRUE, status);
-}
-
-void
-DecimalFormatImpl::updateFormatting(
- int32_t changedFormattingFields,
- UErrorCode &status) {
- updateFormatting(changedFormattingFields, TRUE, status);
-}
-
-void
-DecimalFormatImpl::updateFormatting(
- int32_t changedFormattingFields,
- UBool updatePrecisionBasedOnCurrency,
- UErrorCode &status) {
- if (U_FAILURE(status)) {
- return;
- }
- // Each function updates one field. Order matters. For instance,
- // updatePluralRules comes before updateCurrencyAffixInfo because the
- // fRules field is needed to update the fCurrencyAffixInfo field.
- updateFormattingUsesCurrency(changedFormattingFields);
- updateFormattingFixedPointFormatter(changedFormattingFields);
- updateFormattingAffixParser(changedFormattingFields);
- updateFormattingPluralRules(changedFormattingFields, status);
- updateFormattingCurrencyAffixInfo(
- changedFormattingFields,
- updatePrecisionBasedOnCurrency,
- status);
- updateFormattingLocalizedPositivePrefix(
- changedFormattingFields, status);
- updateFormattingLocalizedPositiveSuffix(
- changedFormattingFields, status);
- updateFormattingLocalizedNegativePrefix(
- changedFormattingFields, status);
- updateFormattingLocalizedNegativeSuffix(
- changedFormattingFields, status);
-}
-
-void
-DecimalFormatImpl::updateFormattingUsesCurrency(
- int32_t &changedFormattingFields) {
- if ((changedFormattingFields & kFormattingAffixes) == 0) {
- // If no affixes changed, don't need to do any work
- return;
- }
- UBool newUsesCurrency =
- fPositivePrefixPattern.usesCurrency() ||
- fPositiveSuffixPattern.usesCurrency() ||
- fNegativePrefixPattern.usesCurrency() ||
- fNegativeSuffixPattern.usesCurrency();
- if (fMonetary != newUsesCurrency) {
- fMonetary = newUsesCurrency;
- changedFormattingFields |= kFormattingUsesCurrency;
- }
-}
-
-void
-DecimalFormatImpl::updateFormattingPluralRules(
- int32_t &changedFormattingFields, UErrorCode &status) {
- if ((changedFormattingFields & (kFormattingSymbols | kFormattingUsesCurrency)) == 0) {
- // No work to do if both fSymbols and fMonetary
- // fields are unchanged
- return;
- }
- if (U_FAILURE(status)) {
- return;
- }
- PluralRules *newRules = NULL;
- if (fMonetary) {
- newRules = PluralRules::forLocale(fSymbols->getLocale(), status);
- if (U_FAILURE(status)) {
- return;
- }
- }
- // Its ok to say a field has changed when it really hasn't but not
- // the other way around. Here we assume the field changed unless it
- // was NULL before and is still NULL now
- if (fRules != newRules) {
- delete fRules;
- fRules = newRules;
- changedFormattingFields |= kFormattingPluralRules;
- }
-}
-
-void
-DecimalFormatImpl::updateFormattingCurrencyAffixInfo(
- int32_t &changedFormattingFields,
- UBool updatePrecisionBasedOnCurrency,
- UErrorCode &status) {
- if ((changedFormattingFields & (
- kFormattingSymbols | kFormattingCurrency |
- kFormattingUsesCurrency | kFormattingPluralRules)) == 0) {
- // If all these fields are unchanged, no work to do.
- return;
- }
- if (U_FAILURE(status)) {
- return;
- }
- if (!fMonetary) {
- if (fCurrencyAffixInfo.isDefault()) {
- // In this case don't have to do any work
- return;
- }
- fCurrencyAffixInfo.set(NULL, NULL, NULL, status);
- if (U_FAILURE(status)) {
- return;
- }
- changedFormattingFields |= kFormattingCurrencyAffixInfo;
- } else {
- const UChar *currency = fSuper->getCurrency();
- UChar localeCurr[4];
- if (currency[0] == 0) {
- ucurr_forLocale(fSymbols->getLocale().getName(), localeCurr, UPRV_LENGTHOF(localeCurr), &status);
- if (U_SUCCESS(status)) {
- currency = localeCurr;
- fSuper->NumberFormat::setCurrency(currency, status);
- } else {
- currency = NULL;
- status = U_ZERO_ERROR;
- }
- }
- fCurrencyAffixInfo.set(
- fSymbols->getLocale().getName(), fRules, currency, status);
- if (U_FAILURE(status)) {
- return;
- }
- UBool customCurrencySymbol = FALSE;
- // If DecimalFormatSymbols has custom currency symbol, prefer
- // that over what we just read from the resource bundles
- if (fSymbols->isCustomCurrencySymbol()) {
- fCurrencyAffixInfo.setSymbol(
- fSymbols->getConstSymbol(DecimalFormatSymbols::kCurrencySymbol));
- customCurrencySymbol = TRUE;
- }
- if (fSymbols->isCustomIntlCurrencySymbol()) {
- fCurrencyAffixInfo.setISO(
- fSymbols->getConstSymbol(DecimalFormatSymbols::kIntlCurrencySymbol));
- customCurrencySymbol = TRUE;
- }
- changedFormattingFields |= kFormattingCurrencyAffixInfo;
- if (currency && !customCurrencySymbol && updatePrecisionBasedOnCurrency) {
- FixedPrecision precision;
- CurrencyAffixInfo::adjustPrecision(
- currency, fCurrencyUsage, precision, status);
- if (U_FAILURE(status)) {
- return;
- }
- fSuper->NumberFormat::setMinimumFractionDigits(
- precision.fMin.getFracDigitCount());
- fSuper->NumberFormat::setMaximumFractionDigits(
- precision.fMax.getFracDigitCount());
- updatePrecision();
- fEffPrecision.fMantissa.fRoundingIncrement =
- precision.fRoundingIncrement;
- }
-
- }
-}
-
-void
-DecimalFormatImpl::updateFormattingFixedPointFormatter(
- int32_t &changedFormattingFields) {
- if ((changedFormattingFields & (kFormattingSymbols | kFormattingUsesCurrency)) == 0) {
- // No work to do if fSymbols is unchanged
- return;
- }
- if (fMonetary) {
- fFormatter.setDecimalFormatSymbolsForMonetary(*fSymbols);
- } else {
- fFormatter.setDecimalFormatSymbols(*fSymbols);
- }
-}
-
-void
-DecimalFormatImpl::updateFormattingAffixParser(
- int32_t &changedFormattingFields) {
- if ((changedFormattingFields & kFormattingSymbols) == 0) {
- // No work to do if fSymbols is unchanged
- return;
- }
- fAffixParser.setDecimalFormatSymbols(*fSymbols);
- changedFormattingFields |= kFormattingAffixParser;
-}
-
-void
-DecimalFormatImpl::updateFormattingLocalizedPositivePrefix(
- int32_t &changedFormattingFields, UErrorCode &status) {
- if (U_FAILURE(status)) {
- return;
- }
- if ((changedFormattingFields & (
- kFormattingPosPrefix | kFormattingAffixParserWithCurrency)) == 0) {
- // No work to do
- return;
- }
- fAffixes.fPositivePrefix.remove();
- fAffixParser.parse(
- fPositivePrefixPattern,
- fCurrencyAffixInfo,
- fAffixes.fPositivePrefix,
- status);
-}
-
-void
-DecimalFormatImpl::updateFormattingLocalizedPositiveSuffix(
- int32_t &changedFormattingFields, UErrorCode &status) {
- if (U_FAILURE(status)) {
- return;
- }
- if ((changedFormattingFields & (
- kFormattingPosSuffix | kFormattingAffixParserWithCurrency)) == 0) {
- // No work to do
- return;
- }
- fAffixes.fPositiveSuffix.remove();
- fAffixParser.parse(
- fPositiveSuffixPattern,
- fCurrencyAffixInfo,
- fAffixes.fPositiveSuffix,
- status);
-}
-
-void
-DecimalFormatImpl::updateFormattingLocalizedNegativePrefix(
- int32_t &changedFormattingFields, UErrorCode &status) {
- if (U_FAILURE(status)) {
- return;
- }
- if ((changedFormattingFields & (
- kFormattingNegPrefix | kFormattingAffixParserWithCurrency)) == 0) {
- // No work to do
- return;
- }
- fAffixes.fNegativePrefix.remove();
- fAffixParser.parse(
- fNegativePrefixPattern,
- fCurrencyAffixInfo,
- fAffixes.fNegativePrefix,
- status);
-}
-
-void
-DecimalFormatImpl::updateFormattingLocalizedNegativeSuffix(
- int32_t &changedFormattingFields, UErrorCode &status) {
- if (U_FAILURE(status)) {
- return;
- }
- if ((changedFormattingFields & (
- kFormattingNegSuffix | kFormattingAffixParserWithCurrency)) == 0) {
- // No work to do
- return;
- }
- fAffixes.fNegativeSuffix.remove();
- fAffixParser.parse(
- fNegativeSuffixPattern,
- fCurrencyAffixInfo,
- fAffixes.fNegativeSuffix,
- status);
-}
-
-void
-DecimalFormatImpl::updateForApplyPatternFavorCurrencyPrecision(
- UErrorCode &status) {
- updateAll(kFormattingAll & ~kFormattingSymbols, TRUE, status);
-}
-
-void
-DecimalFormatImpl::updateForApplyPattern(UErrorCode &status) {
- updateAll(kFormattingAll & ~kFormattingSymbols, FALSE, status);
-}
-
-void
-DecimalFormatImpl::updateAll(UErrorCode &status) {
- updateAll(kFormattingAll, TRUE, status);
-}
-
-void
-DecimalFormatImpl::updateAll(
- int32_t formattingFlags,
- UBool updatePrecisionBasedOnCurrency,
- UErrorCode &status) {
- if (U_FAILURE(status)) {
- return;
- }
- updatePrecision();
- updateGrouping();
- updateFormatting(
- formattingFlags, updatePrecisionBasedOnCurrency, status);
- setMultiplierScale(getPatternScale());
-}
-
-
-static int32_t
-getMinimumLengthToDescribeGrouping(const DigitGrouping &grouping) {
- if (grouping.fGrouping <= 0) {
- return 0;
- }
- if (grouping.fGrouping2 <= 0) {
- return grouping.fGrouping + 1;
- }
- return grouping.fGrouping + grouping.fGrouping2 + 1;
-}
-
-/**
- * Given a grouping policy, calculates how many digits are needed left of
- * the decimal point to achieve a desired length left of the
- * decimal point.
- * @param grouping the grouping policy
- * @param desiredLength number of characters needed left of decimal point
- * @param minLeftDigits at least this many digits is returned
- * @param leftDigits the number of digits needed stored here
- * which is >= minLeftDigits.
- * @return true if a perfect fit or false if having leftDigits would exceed
- * desiredLength
- */
-static UBool
-getLeftDigitsForLeftLength(
- const DigitGrouping &grouping,
- int32_t desiredLength,
- int32_t minLeftDigits,
- int32_t &leftDigits) {
- leftDigits = minLeftDigits;
- int32_t lengthSoFar = leftDigits + grouping.getSeparatorCount(leftDigits);
- while (lengthSoFar < desiredLength) {
- lengthSoFar += grouping.isSeparatorAt(leftDigits + 1, leftDigits) ? 2 : 1;
- ++leftDigits;
- }
- return (lengthSoFar == desiredLength);
-}
-
-int32_t
-DecimalFormatImpl::computeExponentPatternLength() const {
- if (fUseScientific) {
- return 1 + (fOptions.fExponent.fAlwaysShowSign ? 1 : 0) + fEffPrecision.fMinExponentDigits;
- }
- return 0;
-}
-
-int32_t
-DecimalFormatImpl::countFractionDigitAndDecimalPatternLength(
- int32_t fracDigitCount) const {
- if (!fOptions.fMantissa.fAlwaysShowDecimal && fracDigitCount == 0) {
- return 0;
- }
- return fracDigitCount + 1;
-}
-
-UnicodeString&
-DecimalFormatImpl::toNumberPattern(
- UBool hasPadding, int32_t minimumLength, UnicodeString& result) const {
- // Get a grouping policy like the one in this object that does not
- // have minimum grouping since toPattern doesn't support it.
- DigitGrouping grouping(fEffGrouping);
- grouping.fMinGrouping = 0;
-
- // Only for fixed digits, these are the digits that get 0's.
- DigitInterval minInterval;
-
- // Only for fixed digits, these are the digits that get #'s.
- DigitInterval maxInterval;
-
- // Only for significant digits
- int32_t sigMin = 0; /* initialize to avoid compiler warning */
- int32_t sigMax = 0; /* initialize to avoid compiler warning */
-
- // These are all the digits to be displayed. For significant digits,
- // this interval always starts at the 1's place an extends left.
- DigitInterval fullInterval;
-
- // Digit range of rounding increment. If rounding increment is .025.
- // then roundingIncrementLowerExp = -3 and roundingIncrementUpperExp = -1
- int32_t roundingIncrementLowerExp = 0;
- int32_t roundingIncrementUpperExp = 0;
-
- if (fUseSigDigits) {
- SignificantDigitInterval sigInterval;
- extractSigDigits(sigInterval);
- sigMax = sigInterval.getMax();
- sigMin = sigInterval.getMin();
- fullInterval.setFracDigitCount(0);
- fullInterval.setIntDigitCount(sigMax);
- } else {
- extractMinMaxDigits(minInterval, maxInterval);
- if (fUseScientific) {
- if (maxInterval.getIntDigitCount() > kMaxScientificIntegerDigits) {
- maxInterval.setIntDigitCount(1);
- minInterval.shrinkToFitWithin(maxInterval);
- }
- } else if (hasPadding) {
- // Make max int digits match min int digits for now, we
- // compute necessary padding later.
- maxInterval.setIntDigitCount(minInterval.getIntDigitCount());
- } else {
- // For some reason toPattern adds at least one leading '#'
- maxInterval.setIntDigitCount(minInterval.getIntDigitCount() + 1);
- }
- if (!fEffPrecision.fMantissa.fRoundingIncrement.isZero()) {
- roundingIncrementLowerExp =
- fEffPrecision.fMantissa.fRoundingIncrement.getLowerExponent();
- roundingIncrementUpperExp =
- fEffPrecision.fMantissa.fRoundingIncrement.getUpperExponent();
- // We have to include the rounding increment in what we display
- maxInterval.expandToContainDigit(roundingIncrementLowerExp);
- maxInterval.expandToContainDigit(roundingIncrementUpperExp - 1);
- }
- fullInterval = maxInterval;
- }
- // We have to include enough digits to show grouping strategy
- int32_t minLengthToDescribeGrouping =
- getMinimumLengthToDescribeGrouping(grouping);
- if (minLengthToDescribeGrouping > 0) {
- fullInterval.expandToContainDigit(
- getMinimumLengthToDescribeGrouping(grouping) - 1);
- }
-
- // If we have a minimum length, we have to add digits to the left to
- // depict padding.
- if (hasPadding) {
- // For non scientific notation,
- // minimumLengthForMantissa = minimumLength
- int32_t minimumLengthForMantissa =
- minimumLength - computeExponentPatternLength();
- int32_t mininumLengthForMantissaIntPart =
- minimumLengthForMantissa
- - countFractionDigitAndDecimalPatternLength(
- fullInterval.getFracDigitCount());
- // Because of grouping, we may need fewer than expected digits to
- // achieve the length we need.
- int32_t digitsNeeded;
- if (getLeftDigitsForLeftLength(
- grouping,
- mininumLengthForMantissaIntPart,
- fullInterval.getIntDigitCount(),
- digitsNeeded)) {
-
- // In this case, we achieved the exact length that we want.
- fullInterval.setIntDigitCount(digitsNeeded);
- } else if (digitsNeeded > fullInterval.getIntDigitCount()) {
-
- // Having digitsNeeded digits goes over desired length which
- // means that to have desired length would mean starting on a
- // grouping sepearator e.g ,###,### so add a '#' and use one
- // less digit. This trick gives ####,### but that is the best
- // we can do.
- result.append(kPatternDigit);
- fullInterval.setIntDigitCount(digitsNeeded - 1);
- }
- }
- int32_t maxDigitPos = fullInterval.getMostSignificantExclusive();
- int32_t minDigitPos = fullInterval.getLeastSignificantInclusive();
- for (int32_t i = maxDigitPos - 1; i >= minDigitPos; --i) {
- if (!fOptions.fMantissa.fAlwaysShowDecimal && i == -1) {
- result.append(kPatternDecimalSeparator);
- }
- if (fUseSigDigits) {
- // Use digit symbol
- if (i >= sigMax || i < sigMax - sigMin) {
- result.append(kPatternDigit);
- } else {
- result.append(kPatternSignificantDigit);
- }
- } else {
- if (i < roundingIncrementUpperExp && i >= roundingIncrementLowerExp) {
- result.append((UChar)(fEffPrecision.fMantissa.fRoundingIncrement.getDigitByExponent(i) + kPatternZeroDigit));
- } else if (minInterval.contains(i)) {
- result.append(kPatternZeroDigit);
- } else {
- result.append(kPatternDigit);
- }
- }
- if (grouping.isSeparatorAt(i + 1, i)) {
- result.append(kPatternGroupingSeparator);
- }
- if (fOptions.fMantissa.fAlwaysShowDecimal && i == 0) {
- result.append(kPatternDecimalSeparator);
- }
- }
- if (fUseScientific) {
- result.append(kPatternExponent);
- if (fOptions.fExponent.fAlwaysShowSign) {
- result.append(kPatternPlus);
- }
- for (int32_t i = 0; i < 1 || i < fEffPrecision.fMinExponentDigits; ++i) {
- result.append(kPatternZeroDigit);
- }
- }
- return result;
-}
-
-UnicodeString&
-DecimalFormatImpl::toPattern(UnicodeString& result) const {
- result.remove();
- UnicodeString padSpec;
- if (fAffixes.fWidth > 0) {
- padSpec.append(kPatternPadEscape);
- padSpec.append(fAffixes.fPadChar);
- }
- if (fAffixes.fPadPosition == DigitAffixesAndPadding::kPadBeforePrefix) {
- result.append(padSpec);
- }
- fPositivePrefixPattern.toUserString(result);
- if (fAffixes.fPadPosition == DigitAffixesAndPadding::kPadAfterPrefix) {
- result.append(padSpec);
- }
- toNumberPattern(
- fAffixes.fWidth > 0,
- fAffixes.fWidth - fPositivePrefixPattern.countChar32() - fPositiveSuffixPattern.countChar32(),
- result);
- if (fAffixes.fPadPosition == DigitAffixesAndPadding::kPadBeforeSuffix) {
- result.append(padSpec);
- }
- fPositiveSuffixPattern.toUserString(result);
- if (fAffixes.fPadPosition == DigitAffixesAndPadding::kPadAfterSuffix) {
- result.append(padSpec);
- }
- AffixPattern withNegative;
- withNegative.add(AffixPattern::kNegative);
- withNegative.append(fPositivePrefixPattern);
- if (!fPositiveSuffixPattern.equals(fNegativeSuffixPattern) ||
- !withNegative.equals(fNegativePrefixPattern)) {
- result.append(kPatternSeparator);
- if (fAffixes.fPadPosition == DigitAffixesAndPadding::kPadBeforePrefix) {
- result.append(padSpec);
- }
- fNegativePrefixPattern.toUserString(result);
- if (fAffixes.fPadPosition == DigitAffixesAndPadding::kPadAfterPrefix) {
- result.append(padSpec);
- }
- toNumberPattern(
- fAffixes.fWidth > 0,
- fAffixes.fWidth - fNegativePrefixPattern.countChar32() - fNegativeSuffixPattern.countChar32(),
- result);
- if (fAffixes.fPadPosition == DigitAffixesAndPadding::kPadBeforeSuffix) {
- result.append(padSpec);
- }
- fNegativeSuffixPattern.toUserString(result);
- if (fAffixes.fPadPosition == DigitAffixesAndPadding::kPadAfterSuffix) {
- result.append(padSpec);
- }
- }
- return result;
-}
-
-int32_t
-DecimalFormatImpl::getOldFormatWidth() const {
- if (fAffixes.fWidth == 0) {
- return 0;
- }
- return fAffixes.fWidth - fPositiveSuffixPattern.countChar32() - fPositivePrefixPattern.countChar32();
-}
-
-const UnicodeString &
-DecimalFormatImpl::getConstSymbol(
- DecimalFormatSymbols::ENumberFormatSymbol symbol) const {
- return fSymbols->getConstSymbol(symbol);
-}
-
-UBool
-DecimalFormatImpl::isParseFastpath() const {
- AffixPattern negative;
- negative.add(AffixPattern::kNegative);
-
- return fAffixes.fWidth == 0 &&
- fPositivePrefixPattern.countChar32() == 0 &&
- fNegativePrefixPattern.equals(negative) &&
- fPositiveSuffixPattern.countChar32() == 0 &&
- fNegativeSuffixPattern.countChar32() == 0;
-}
-
-
-U_NAMESPACE_END
-
-#endif /* #if !UCONFIG_NO_FORMATTING */
-
diff --git a/Build/source/libs/icu/icu-src/source/i18n/decimfmtimpl.h b/Build/source/libs/icu/icu-src/source/i18n/decimfmtimpl.h
deleted file mode 100644
index 76e8053bdc2..00000000000
--- a/Build/source/libs/icu/icu-src/source/i18n/decimfmtimpl.h
+++ /dev/null
@@ -1,549 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
-********************************************************************************
-* Copyright (C) 2015, International Business Machines
-* Corporation and others. All Rights Reserved.
-********************************************************************************
-*
-* File decimfmtimpl.h
-********************************************************************************
-*/
-
-#ifndef DECIMFMTIMPL_H
-#define DECIMFMTIMPL_H
-
-#include "unicode/utypes.h"
-
-#if !UCONFIG_NO_FORMATTING
-
-#include "unicode/decimfmt.h"
-#include "unicode/uobject.h"
-#include "affixpatternparser.h"
-#include "digitaffixesandpadding.h"
-#include "digitformatter.h"
-#include "digitgrouping.h"
-#include "precision.h"
-
-U_NAMESPACE_BEGIN
-
-class UnicodeString;
-class FieldPosition;
-class ValueFormatter;
-class FieldPositionHandler;
-class FixedDecimal;
-
-/**
- * DecimalFormatImpl is the glue code between the legacy DecimalFormat class
- * and the new decimal formatting classes. DecimalFormat still handles
- * parsing directly. However, DecimalFormat uses attributes of this class
- * for parsing when possible.
- *
- * The public API of this class closely mirrors the legacy API of the
- * legacy DecimalFormat deviating only when the legacy API does not make
- * sense. For example, although DecimalFormat has a
- * getPadCharacterString() method, DecimalFormatImpl has a getPadCharacter()
- * method because formatting uses only a single pad character for padding.
- *
- * Each legacy DecimalFormat instance heap allocates its own instance of
- * this class. Most DecimalFormat methods that deal with formatting simply
- * delegate to the DecimalFormat's DecimalFormatImpl method.
- *
- * Because DecimalFormat extends NumberFormat, Each instance of this class
- * "borrows" a pointer to the NumberFormat part of its enclosing DecimalFormat
- * instance. This way each DecimalFormatImpl instance can read or even modify
- * the NumberFormat portion of its enclosing DecimalFormat instance.
- *
- * Directed acyclic graph (DAG):
- *
- * This class can be represented as a directed acyclic graph (DAG) where each
- * vertex is an attribute, and each directed edge indicates that the value
- * of the destination attribute is calculated from the value of the source
- * attribute. Attributes with setter methods reside at the bottom of the
- * DAG. That is, no edges point to them. We call these independent attributes
- * because their values can be set independently of one another. The rest of
- * the attributes are derived attributes because their values depend on the
- * independent attributes. DecimalFormatImpl often uses the derived
- * attributes, not the independent attributes, when formatting numbers.
- *
- * The independent attributes at the bottom of the DAG correspond to the legacy
- * attributes of DecimalFormat while the attributes at the top of the DAG
- * correspond to the attributes of the new code. The edges of the DAG
- * correspond to the code that handles the complex interaction among all the
- * legacy attributes of the DecimalFormat API.
- *
- * We use a DAG for three reasons.
- *
- * First, the DAG preserves backward compatibility. Clients of the legacy
- * DecimalFormat expect existing getters and setters of each attribute to be
- * consistent. That means if a client sets a particular attribute to a new
- * value, the attribute should retain that value until the client sets it to
- * a new value. The DAG allows these attributes to remain consistent even
- * though the new code may not use them when formatting.
- *
- * Second, the DAG obviates the need to recalculate derived attributes with
- * each format. Instead, the DAG "remembers" the values of all derived
- * attributes. Only setting an independent attribute requires a recalculation.
- * Moreover, setting an independent attribute recalculates only the affected
- * dependent attributes rather than all dependent attributes.
- *
- * Third, the DAG abstracts away the complex interaction among the legacy
- * attributes of the DecimalFormat API.
- *
- * Only the independent attributes of the DAG have setters and getters.
- * Derived attributes have no setters (and often no getters either).
- *
- * Copy and assign:
- *
- * For copy and assign, DecimalFormatImpl copies and assigns every attribute
- * regardless of whether or not it is independent. We do this for simplicity.
- *
- * Implementation of the DAG:
- *
- * The DAG consists of three smaller DAGs:
- * 1. Grouping attributes
- * 2. Precision attributes
- * 3. Formatting attributes.
- *
- * The first two DAGs are simple in that setting any independent attribute
- * in the DAG recalculates all the dependent attributes in that DAG.
- * The updateGrouping() and updatePrecision() perform the respective
- * recalculations.
- *
- * Because some of the derived formatting attributes are expensive to
- * calculate, the formatting attributes DAG is more complex. The
- * updateFormatting() method is composed of many updateFormattingXXX()
- * methods, each of which recalculates a single derived attribute. The
- * updateFormatting() method accepts a bitfield of recently changed
- * attributes and passes this bitfield by reference to each of the
- * updateFormattingXXX() methods. Each updateFormattingXXX() method checks
- * the bitfield to see if any of the attributes it uses to compute the XXX
- * attribute changed. If none of them changed, it exists immediately. However,
- * if at least one of them changed, it recalculates the XXX attribute and
- * sets the corresponding bit in the bitfield. In this way, each
- * updateFormattingXXX() method encodes the directed edges in the formatting
- * DAG that point to the attribute its calculating.
- *
- * Maintenance of the updateFormatting() method.
- *
- * Use care when changing the updateFormatting() method.
- * The updateFormatting() method must call each updateFormattingXXX() in the
- * same partial order that the formatting DAG prescribes. That is, the
- * attributes near the bottom of the DAG must be calculated before attributes
- * further up. As we mentioned in the prvious paragraph, the directed edges of
- * the formatting DAG are encoded within each updateFormattingXXX() method.
- * Finally, adding new attributes may involve adding to the bitmap that the
- * updateFormatting() method uses. The top most attributes in the DAG,
- * those that do not point to any attributes but only have attributes
- * pointing to it, need not have a slot in the bitmap.
- *
- * Keep in mind that most of the code that makes the legacy DecimalFormat API
- * work the way it always has before can be found in these various updateXXX()
- * methods. For example the updatePrecisionForScientific() method
- * handles the complex interactions amoung the various precision attributes
- * when formatting in scientific notation. Changing the way attributes
- * interract, often means changing one of these updateXXX() methods.
- *
- * Conclusion:
- *
- * The DecimFmtImpl class is the glue code between the legacy and new
- * number formatting code. It uses a direct acyclic graph (DAG) to
- * maintain backward compatibility, to make the code efficient, and to
- * abstract away the complex interraction among legacy attributs.
- */
-
-
-class DecimalFormatImpl : public UObject {
-public:
-
-DecimalFormatImpl(
- NumberFormat *super,
- const Locale &locale,
- const UnicodeString &pattern,
- UErrorCode &status);
-DecimalFormatImpl(
- NumberFormat *super,
- const UnicodeString &pattern,
- DecimalFormatSymbols *symbolsToAdopt,
- UParseError &parseError,
- UErrorCode &status);
-DecimalFormatImpl(
- NumberFormat *super,
- const DecimalFormatImpl &other,
- UErrorCode &status);
-DecimalFormatImpl &assign(
- const DecimalFormatImpl &other, UErrorCode &status);
-virtual ~DecimalFormatImpl();
-void adoptDecimalFormatSymbols(DecimalFormatSymbols *symbolsToAdopt);
-const DecimalFormatSymbols &getDecimalFormatSymbols() const {
- return *fSymbols;
-}
-UnicodeString &format(
- int32_t number,
- UnicodeString &appendTo,
- FieldPosition &pos,
- UErrorCode &status) const;
-UnicodeString &format(
- int32_t number,
- UnicodeString &appendTo,
- FieldPositionIterator *posIter,
- UErrorCode &status) const;
-UnicodeString &format(
- int64_t number,
- UnicodeString &appendTo,
- FieldPosition &pos,
- UErrorCode &status) const;
-UnicodeString &format(
- double number,
- UnicodeString &appendTo,
- FieldPosition &pos,
- UErrorCode &status) const;
-UnicodeString &format(
- const DigitList &number,
- UnicodeString &appendTo,
- FieldPosition &pos,
- UErrorCode &status) const;
-UnicodeString &format(
- int64_t number,
- UnicodeString &appendTo,
- FieldPositionIterator *posIter,
- UErrorCode &status) const;
-UnicodeString &format(
- double number,
- UnicodeString &appendTo,
- FieldPositionIterator *posIter,
- UErrorCode &status) const;
-UnicodeString &format(
- const DigitList &number,
- UnicodeString &appendTo,
- FieldPositionIterator *posIter,
- UErrorCode &status) const;
-UnicodeString &format(
- StringPiece number,
- UnicodeString &appendTo,
- FieldPositionIterator *posIter,
- UErrorCode &status) const;
-UnicodeString &format(
- const VisibleDigitsWithExponent &digits,
- UnicodeString &appendTo,
- FieldPosition &pos,
- UErrorCode &status) const;
-UnicodeString &format(
- const VisibleDigitsWithExponent &digits,
- UnicodeString &appendTo,
- FieldPositionIterator *posIter,
- UErrorCode &status) const;
-
-UBool operator==(const DecimalFormatImpl &) const;
-
-UBool operator!=(const DecimalFormatImpl &other) const {
- return !(*this == other);
-}
-
-void setRoundingMode(DecimalFormat::ERoundingMode mode) {
- fRoundingMode = mode;
- fEffPrecision.fMantissa.fExactOnly = (fRoundingMode == DecimalFormat::kRoundUnnecessary);
- fEffPrecision.fMantissa.fRoundingMode = mode;
-}
-DecimalFormat::ERoundingMode getRoundingMode() const {
- return fRoundingMode;
-}
-void setFailIfMoreThanMaxDigits(UBool b) {
- fEffPrecision.fMantissa.fFailIfOverMax = b;
-}
-UBool isFailIfMoreThanMaxDigits() const { return fEffPrecision.fMantissa.fFailIfOverMax; }
-void setMinimumSignificantDigits(int32_t newValue);
-void setMaximumSignificantDigits(int32_t newValue);
-void setMinMaxSignificantDigits(int32_t min, int32_t max);
-void setScientificNotation(UBool newValue);
-void setSignificantDigitsUsed(UBool newValue);
-
-int32_t getMinimumSignificantDigits() const {
- return fMinSigDigits; }
-int32_t getMaximumSignificantDigits() const {
- return fMaxSigDigits; }
-UBool isScientificNotation() const { return fUseScientific; }
-UBool areSignificantDigitsUsed() const { return fUseSigDigits; }
-void setGroupingSize(int32_t newValue);
-void setSecondaryGroupingSize(int32_t newValue);
-void setMinimumGroupingDigits(int32_t newValue);
-int32_t getGroupingSize() const { return fGrouping.fGrouping; }
-int32_t getSecondaryGroupingSize() const { return fGrouping.fGrouping2; }
-int32_t getMinimumGroupingDigits() const { return fGrouping.fMinGrouping; }
-void applyPattern(const UnicodeString &pattern, UErrorCode &status);
-void applyPatternFavorCurrencyPrecision(
- const UnicodeString &pattern, UErrorCode &status);
-void applyPattern(
- const UnicodeString &pattern, UParseError &perror, UErrorCode &status);
-void applyLocalizedPattern(const UnicodeString &pattern, UErrorCode &status);
-void applyLocalizedPattern(
- const UnicodeString &pattern, UParseError &perror, UErrorCode &status);
-void setCurrencyUsage(UCurrencyUsage usage, UErrorCode &status);
-UCurrencyUsage getCurrencyUsage() const { return fCurrencyUsage; }
-void setRoundingIncrement(double d);
-double getRoundingIncrement() const;
-int32_t getMultiplier() const;
-void setMultiplier(int32_t m);
-UChar32 getPadCharacter() const { return fAffixes.fPadChar; }
-void setPadCharacter(UChar32 c) { fAffixes.fPadChar = c; }
-int32_t getFormatWidth() const { return fAffixes.fWidth; }
-void setFormatWidth(int32_t x) { fAffixes.fWidth = x; }
-DigitAffixesAndPadding::EPadPosition getPadPosition() const {
- return fAffixes.fPadPosition;
-}
-void setPadPosition(DigitAffixesAndPadding::EPadPosition x) {
- fAffixes.fPadPosition = x;
-}
-int32_t getMinimumExponentDigits() const {
- return fEffPrecision.fMinExponentDigits;
-}
-void setMinimumExponentDigits(int32_t x) {
- fEffPrecision.fMinExponentDigits = x;
-}
-UBool isExponentSignAlwaysShown() const {
- return fOptions.fExponent.fAlwaysShowSign;
-}
-void setExponentSignAlwaysShown(UBool x) {
- fOptions.fExponent.fAlwaysShowSign = x;
-}
-UBool isDecimalSeparatorAlwaysShown() const {
- return fOptions.fMantissa.fAlwaysShowDecimal;
-}
-void setDecimalSeparatorAlwaysShown(UBool x) {
- fOptions.fMantissa.fAlwaysShowDecimal = x;
-}
-UnicodeString &getPositivePrefix(UnicodeString &result) const;
-UnicodeString &getPositiveSuffix(UnicodeString &result) const;
-UnicodeString &getNegativePrefix(UnicodeString &result) const;
-UnicodeString &getNegativeSuffix(UnicodeString &result) const;
-void setPositivePrefix(const UnicodeString &str);
-void setPositiveSuffix(const UnicodeString &str);
-void setNegativePrefix(const UnicodeString &str);
-void setNegativeSuffix(const UnicodeString &str);
-UnicodeString &toPattern(UnicodeString& result) const;
-FixedDecimal &getFixedDecimal(double value, FixedDecimal &result, UErrorCode &status) const;
-FixedDecimal &getFixedDecimal(DigitList &number, FixedDecimal &result, UErrorCode &status) const;
-DigitList &round(DigitList &number, UErrorCode &status) const;
-
-VisibleDigitsWithExponent &
-initVisibleDigitsWithExponent(
- int64_t number,
- VisibleDigitsWithExponent &digits,
- UErrorCode &status) const;
-VisibleDigitsWithExponent &
-initVisibleDigitsWithExponent(
- double number,
- VisibleDigitsWithExponent &digits,
- UErrorCode &status) const;
-VisibleDigitsWithExponent &
-initVisibleDigitsWithExponent(
- DigitList &number,
- VisibleDigitsWithExponent &digits,
- UErrorCode &status) const;
-
-void updatePrecision();
-void updateGrouping();
-void updateCurrency(UErrorCode &status);
-
-
-private:
-// Disallow copy and assign
-DecimalFormatImpl(const DecimalFormatImpl &other);
-DecimalFormatImpl &operator=(const DecimalFormatImpl &other);
-NumberFormat *fSuper;
-DigitList fMultiplier;
-int32_t fScale;
-
-DecimalFormat::ERoundingMode fRoundingMode;
-
-// These fields include what the user can see and set.
-// When the user updates these fields, it triggers automatic updates of
-// other fields that may be invisible to user
-
-// Updating any of the following fields triggers an update to
-// fEffPrecision.fMantissa.fMin,
-// fEffPrecision.fMantissa.fMax,
-// fEffPrecision.fMantissa.fSignificant fields
-// We have this two phase update because of backward compatibility.
-// DecimalFormat has to remember all settings even if those settings are
-// invalid or disabled.
-int32_t fMinSigDigits;
-int32_t fMaxSigDigits;
-UBool fUseScientific;
-UBool fUseSigDigits;
-// In addition to these listed above, changes to min/max int digits and
-// min/max frac digits from fSuper also trigger an update.
-
-// Updating any of the following fields triggers an update to
-// fEffGrouping field Again we do it this way because original
-// grouping settings have to be retained if grouping is turned off.
-DigitGrouping fGrouping;
-// In addition to these listed above, changes to isGroupingUsed in
-// fSuper also triggers an update to fEffGrouping.
-
-// Updating any of the following fields triggers updates on the following:
-// fMonetary, fRules, fAffixParser, fCurrencyAffixInfo,
-// fFormatter, fAffixes.fPositivePrefiix, fAffixes.fPositiveSuffix,
-// fAffixes.fNegativePrefiix, fAffixes.fNegativeSuffix
-// We do this two phase update because localizing the affix patterns
-// and formatters can be expensive. Better to do it once with the setters
-// than each time within format.
-AffixPattern fPositivePrefixPattern;
-AffixPattern fNegativePrefixPattern;
-AffixPattern fPositiveSuffixPattern;
-AffixPattern fNegativeSuffixPattern;
-DecimalFormatSymbols *fSymbols;
-UCurrencyUsage fCurrencyUsage;
-// In addition to these listed above, changes to getCurrency() in
-// fSuper also triggers an update.
-
-// Optional may be NULL
-PluralRules *fRules;
-
-// These fields are totally hidden from user and are used to derive the affixes
-// in fAffixes below from the four affix patterns above.
-UBool fMonetary;
-AffixPatternParser fAffixParser;
-CurrencyAffixInfo fCurrencyAffixInfo;
-
-// The actual precision used when formatting
-ScientificPrecision fEffPrecision;
-
-// The actual grouping used when formatting
-DigitGrouping fEffGrouping;
-SciFormatterOptions fOptions; // Encapsulates fixed precision options
-DigitFormatter fFormatter;
-DigitAffixesAndPadding fAffixes;
-
-UnicodeString &formatInt32(
- int32_t number,
- UnicodeString &appendTo,
- FieldPositionHandler &handler,
- UErrorCode &status) const;
-
-UnicodeString &formatInt64(
- int64_t number,
- UnicodeString &appendTo,
- FieldPositionHandler &handler,
- UErrorCode &status) const;
-
-UnicodeString &formatDouble(
- double number,
- UnicodeString &appendTo,
- FieldPositionHandler &handler,
- UErrorCode &status) const;
-
-// Scales for precent or permille symbols
-UnicodeString &formatDigitList(
- DigitList &number,
- UnicodeString &appendTo,
- FieldPositionHandler &handler,
- UErrorCode &status) const;
-
-// Does not scale for precent or permille symbols
-UnicodeString &formatAdjustedDigitList(
- DigitList &number,
- UnicodeString &appendTo,
- FieldPositionHandler &handler,
- UErrorCode &status) const;
-
-UnicodeString &formatVisibleDigitsWithExponent(
- const VisibleDigitsWithExponent &number,
- UnicodeString &appendTo,
- FieldPositionHandler &handler,
- UErrorCode &status) const;
-
-VisibleDigitsWithExponent &
-initVisibleDigitsFromAdjusted(
- DigitList &number,
- VisibleDigitsWithExponent &digits,
- UErrorCode &status) const;
-
-template<class T>
-UBool maybeFormatWithDigitList(
- T number,
- UnicodeString &appendTo,
- FieldPositionHandler &handler,
- UErrorCode &status) const;
-
-template<class T>
-UBool maybeInitVisibleDigitsFromDigitList(
- T number,
- VisibleDigitsWithExponent &digits,
- UErrorCode &status) const;
-
-DigitList &adjustDigitList(DigitList &number, UErrorCode &status) const;
-
-void applyPattern(
- const UnicodeString &pattern,
- UBool localized, UParseError &perror, UErrorCode &status);
-
-ValueFormatter &prepareValueFormatter(ValueFormatter &vf) const;
-void setMultiplierScale(int32_t s);
-int32_t getPatternScale() const;
-void setScale(int32_t s) { fScale = s; }
-int32_t getScale() const { return fScale; }
-
-// Updates everything
-void updateAll(UErrorCode &status);
-void updateAll(
- int32_t formattingFlags,
- UBool updatePrecisionBasedOnCurrency,
- UErrorCode &status);
-
-// Updates from formatting pattern changes
-void updateForApplyPattern(UErrorCode &status);
-void updateForApplyPatternFavorCurrencyPrecision(UErrorCode &status);
-
-// Updates from changes to third group of attributes
-void updateFormatting(int32_t changedFormattingFields, UErrorCode &status);
-void updateFormatting(
- int32_t changedFormattingFields,
- UBool updatePrecisionBasedOnCurrency,
- UErrorCode &status);
-
-// Helper functions for updatePrecision
-void updatePrecisionForScientific();
-void updatePrecisionForFixed();
-void extractMinMaxDigits(DigitInterval &min, DigitInterval &max) const;
-void extractSigDigits(SignificantDigitInterval &sig) const;
-
-// Helper functions for updateFormatting
-void updateFormattingUsesCurrency(int32_t &changedFormattingFields);
-void updateFormattingPluralRules(
- int32_t &changedFormattingFields, UErrorCode &status);
-void updateFormattingAffixParser(int32_t &changedFormattingFields);
-void updateFormattingCurrencyAffixInfo(
- int32_t &changedFormattingFields,
- UBool updatePrecisionBasedOnCurrency,
- UErrorCode &status);
-void updateFormattingFixedPointFormatter(
- int32_t &changedFormattingFields);
-void updateFormattingLocalizedPositivePrefix(
- int32_t &changedFormattingFields, UErrorCode &status);
-void updateFormattingLocalizedPositiveSuffix(
- int32_t &changedFormattingFields, UErrorCode &status);
-void updateFormattingLocalizedNegativePrefix(
- int32_t &changedFormattingFields, UErrorCode &status);
-void updateFormattingLocalizedNegativeSuffix(
- int32_t &changedFormattingFields, UErrorCode &status);
-
-int32_t computeExponentPatternLength() const;
-int32_t countFractionDigitAndDecimalPatternLength(int32_t fracDigitCount) const;
-UnicodeString &toNumberPattern(
- UBool hasPadding, int32_t minimumLength, UnicodeString& result) const;
-
-int32_t getOldFormatWidth() const;
-const UnicodeString &getConstSymbol(
- DecimalFormatSymbols::ENumberFormatSymbol symbol) const;
-UBool isParseFastpath() const;
-
-friend class DecimalFormat;
-
-};
-
-
-U_NAMESPACE_END
-#endif /* #if !UCONFIG_NO_FORMATTING */
-#endif // DECIMFMTIMPL_H
-//eof
diff --git a/Build/source/libs/icu/icu-src/source/i18n/digitaffix.cpp b/Build/source/libs/icu/icu-src/source/i18n/digitaffix.cpp
deleted file mode 100644
index 3a02e4632b7..00000000000
--- a/Build/source/libs/icu/icu-src/source/i18n/digitaffix.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
- * Copyright (C) 2015, International Business Machines
- * Corporation and others. All Rights Reserved.
- *
- * file name: digitaffix.cpp
- */
-
-#include "unicode/utypes.h"
-
-#if !UCONFIG_NO_FORMATTING
-
-#include "digitaffix.h"
-#include "fphdlimp.h"
-#include "uassert.h"
-#include "unistrappender.h"
-
-U_NAMESPACE_BEGIN
-
-DigitAffix::DigitAffix() : fAffix(), fAnnotations() {
-}
-
-DigitAffix::DigitAffix(
- const UChar *value, int32_t charCount, int32_t fieldId)
- : fAffix(value, charCount),
- fAnnotations(charCount, (UChar) fieldId, charCount) {
-}
-
-void
-DigitAffix::remove() {
- fAffix.remove();
- fAnnotations.remove();
-}
-
-void
-DigitAffix::appendUChar(UChar value, int32_t fieldId) {
- fAffix.append(value);
- fAnnotations.append((UChar) fieldId);
-}
-
-void
-DigitAffix::append(const UnicodeString &value, int32_t fieldId) {
- fAffix.append(value);
- {
- UnicodeStringAppender appender(fAnnotations);
- int32_t len = value.length();
- for (int32_t i = 0; i < len; ++i) {
- appender.append((UChar) fieldId);
- }
- }
-}
-
-void
-DigitAffix::setTo(const UnicodeString &value, int32_t fieldId) {
- fAffix = value;
- fAnnotations.remove();
- {
- UnicodeStringAppender appender(fAnnotations);
- int32_t len = value.length();
- for (int32_t i = 0; i < len; ++i) {
- appender.append((UChar) fieldId);
- }
- }
-}
-
-void
-DigitAffix::append(const UChar *value, int32_t charCount, int32_t fieldId) {
- fAffix.append(value, charCount);
- {
- UnicodeStringAppender appender(fAnnotations);
- for (int32_t i = 0; i < charCount; ++i) {
- appender.append((UChar) fieldId);
- }
- }
-}
-
-UnicodeString &
-DigitAffix::format(FieldPositionHandler &handler, UnicodeString &appendTo) const {
- int32_t len = fAffix.length();
- if (len == 0) {
- return appendTo;
- }
- if (!handler.isRecording()) {
- return appendTo.append(fAffix);
- }
- U_ASSERT(fAffix.length() == fAnnotations.length());
- int32_t appendToStart = appendTo.length();
- int32_t lastId = (int32_t) fAnnotations.charAt(0);
- int32_t lastIdStart = 0;
- for (int32_t i = 1; i < len; ++i) {
- int32_t id = (int32_t) fAnnotations.charAt(i);
- if (id != lastId) {
- if (lastId != UNUM_FIELD_COUNT) {
- handler.addAttribute(lastId, appendToStart + lastIdStart, appendToStart + i);
- }
- lastId = id;
- lastIdStart = i;
- }
- }
- if (lastId != UNUM_FIELD_COUNT) {
- handler.addAttribute(lastId, appendToStart + lastIdStart, appendToStart + len);
- }
- return appendTo.append(fAffix);
-}
-
-U_NAMESPACE_END
-
-#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/digitaffix.h b/Build/source/libs/icu/icu-src/source/i18n/digitaffix.h
deleted file mode 100644
index 005c36f8488..00000000000
--- a/Build/source/libs/icu/icu-src/source/i18n/digitaffix.h
+++ /dev/null
@@ -1,104 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
-*******************************************************************************
-* Copyright (C) 2015, International Business Machines
-* Corporation and others. All Rights Reserved.
-*******************************************************************************
-* digitaffix.h
-*
-* created on: 2015jan06
-* created by: Travis Keep
-*/
-
-#ifndef __DIGITAFFIX_H__
-#define __DIGITAFFIX_H__
-
-#include "unicode/uobject.h"
-
-#if !UCONFIG_NO_FORMATTING
-
-#include "unicode/unistr.h"
-#include "unicode/unum.h"
-#include "unicode/utypes.h"
-
-U_NAMESPACE_BEGIN
-
-class FieldPositionHandler;
-
-/**
- * A prefix or suffix of a formatted number.
- */
-class U_I18N_API DigitAffix : public UMemory {
-public:
-
- /**
- * Creates an empty DigitAffix.
- */
- DigitAffix();
-
- /**
- * Creates a DigitAffix containing given UChars where all of it has
- * a field type of fieldId.
- */
- DigitAffix(
- const UChar *value,
- int32_t charCount,
- int32_t fieldId=UNUM_FIELD_COUNT);
-
- /**
- * Makes this affix be the empty string.
- */
- void remove();
-
- /**
- * Append value to this affix. If fieldId is present, the appended
- * string is considered to be the type fieldId.
- */
- void appendUChar(UChar value, int32_t fieldId=UNUM_FIELD_COUNT);
-
- /**
- * Append value to this affix. If fieldId is present, the appended
- * string is considered to be the type fieldId.
- */
- void append(const UnicodeString &value, int32_t fieldId=UNUM_FIELD_COUNT);
-
- /**
- * Sets this affix to given string. The entire string
- * is considered to be the type fieldId.
- */
- void setTo(const UnicodeString &value, int32_t fieldId=UNUM_FIELD_COUNT);
-
- /**
- * Append value to this affix. If fieldId is present, the appended
- * string is considered to be the type fieldId.
- */
- void append(const UChar *value, int32_t charCount, int32_t fieldId=UNUM_FIELD_COUNT);
-
- /**
- * Formats this affix.
- */
- UnicodeString &format(
- FieldPositionHandler &handler, UnicodeString &appendTo) const;
- int32_t countChar32() const { return fAffix.countChar32(); }
-
- /**
- * Returns this affix as a unicode string.
- */
- const UnicodeString & toString() const { return fAffix; }
-
- /**
- * Returns TRUE if this object equals rhs.
- */
- UBool equals(const DigitAffix &rhs) const {
- return ((fAffix == rhs.fAffix) && (fAnnotations == rhs.fAnnotations));
- }
-private:
- UnicodeString fAffix;
- UnicodeString fAnnotations;
-};
-
-
-U_NAMESPACE_END
-#endif // #if !UCONFIG_NO_FORMATTING
-#endif // __DIGITAFFIX_H__
diff --git a/Build/source/libs/icu/icu-src/source/i18n/digitaffixesandpadding.cpp b/Build/source/libs/icu/icu-src/source/i18n/digitaffixesandpadding.cpp
deleted file mode 100644
index 487d9a345d3..00000000000
--- a/Build/source/libs/icu/icu-src/source/i18n/digitaffixesandpadding.cpp
+++ /dev/null
@@ -1,175 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
- * Copyright (C) 2015, International Business Machines
- * Corporation and others. All Rights Reserved.
- *
- * file name: digitaffixesandpadding.cpp
- */
-
-#include "unicode/utypes.h"
-
-#if !UCONFIG_NO_FORMATTING
-
-#include "unicode/plurrule.h"
-#include "charstr.h"
-#include "digitaffix.h"
-#include "digitaffixesandpadding.h"
-#include "digitlst.h"
-#include "uassert.h"
-#include "valueformatter.h"
-#include "visibledigits.h"
-
-U_NAMESPACE_BEGIN
-
-UBool
-DigitAffixesAndPadding::needsPluralRules() const {
- return (
- fPositivePrefix.hasMultipleVariants() ||
- fPositiveSuffix.hasMultipleVariants() ||
- fNegativePrefix.hasMultipleVariants() ||
- fNegativeSuffix.hasMultipleVariants());
-}
-
-UnicodeString &
-DigitAffixesAndPadding::formatInt32(
- int32_t value,
- const ValueFormatter &formatter,
- FieldPositionHandler &handler,
- const PluralRules *optPluralRules,
- UnicodeString &appendTo,
- UErrorCode &status) const {
- if (U_FAILURE(status)) {
- return appendTo;
- }
- if (optPluralRules != NULL || fWidth > 0 || !formatter.isFastFormattable(value)) {
- VisibleDigitsWithExponent digits;
- formatter.toVisibleDigitsWithExponent(
- (int64_t) value, digits, status);
- return format(
- digits,
- formatter,
- handler,
- optPluralRules,
- appendTo,
- status);
- }
- UBool bPositive = value >= 0;
- const DigitAffix *prefix = bPositive ? &fPositivePrefix.getOtherVariant() : &fNegativePrefix.getOtherVariant();
- const DigitAffix *suffix = bPositive ? &fPositiveSuffix.getOtherVariant() : &fNegativeSuffix.getOtherVariant();
- if (value < 0) {
- value = -value;
- }
- prefix->format(handler, appendTo);
- formatter.formatInt32(value, handler, appendTo);
- return suffix->format(handler, appendTo);
-}
-
-static UnicodeString &
-formatAffix(
- const DigitAffix *affix,
- FieldPositionHandler &handler,
- UnicodeString &appendTo) {
- if (affix) {
- affix->format(handler, appendTo);
- }
- return appendTo;
-}
-
-static int32_t
-countAffixChar32(const DigitAffix *affix) {
- if (affix) {
- return affix->countChar32();
- }
- return 0;
-}
-
-UnicodeString &
-DigitAffixesAndPadding::format(
- const VisibleDigitsWithExponent &digits,
- const ValueFormatter &formatter,
- FieldPositionHandler &handler,
- const PluralRules *optPluralRules,
- UnicodeString &appendTo,
- UErrorCode &status) const {
- if (U_FAILURE(status)) {
- return appendTo;
- }
- const DigitAffix *prefix = NULL;
- const DigitAffix *suffix = NULL;
- if (!digits.isNaN()) {
- UBool bPositive = !digits.isNegative();
- const PluralAffix *pluralPrefix = bPositive ? &fPositivePrefix : &fNegativePrefix;
- const PluralAffix *pluralSuffix = bPositive ? &fPositiveSuffix : &fNegativeSuffix;
- if (optPluralRules == NULL || digits.isInfinite()) {
- prefix = &pluralPrefix->getOtherVariant();
- suffix = &pluralSuffix->getOtherVariant();
- } else {
- UnicodeString count(optPluralRules->select(digits));
- prefix = &pluralPrefix->getByCategory(count);
- suffix = &pluralSuffix->getByCategory(count);
- }
- }
- if (fWidth <= 0) {
- formatAffix(prefix, handler, appendTo);
- formatter.format(digits, handler, appendTo);
- return formatAffix(suffix, handler, appendTo);
- }
- int32_t codePointCount = countAffixChar32(prefix) + formatter.countChar32(digits) + countAffixChar32(suffix);
- int32_t paddingCount = fWidth - codePointCount;
- switch (fPadPosition) {
- case kPadBeforePrefix:
- appendPadding(paddingCount, appendTo);
- formatAffix(prefix, handler, appendTo);
- formatter.format(digits, handler, appendTo);
- return formatAffix(suffix, handler, appendTo);
- case kPadAfterPrefix:
- formatAffix(prefix, handler, appendTo);
- appendPadding(paddingCount, appendTo);
- formatter.format(digits, handler, appendTo);
- return formatAffix(suffix, handler, appendTo);
- case kPadBeforeSuffix:
- formatAffix(prefix, handler, appendTo);
- formatter.format(digits, handler, appendTo);
- appendPadding(paddingCount, appendTo);
- return formatAffix(suffix, handler, appendTo);
- case kPadAfterSuffix:
- formatAffix(prefix, handler, appendTo);
- formatter.format(digits, handler, appendTo);
- formatAffix(suffix, handler, appendTo);
- return appendPadding(paddingCount, appendTo);
- default:
- U_ASSERT(FALSE);
- return appendTo;
- }
-}
-
-UnicodeString &
-DigitAffixesAndPadding::format(
- DigitList &value,
- const ValueFormatter &formatter,
- FieldPositionHandler &handler,
- const PluralRules *optPluralRules,
- UnicodeString &appendTo,
- UErrorCode &status) const {
- VisibleDigitsWithExponent digits;
- formatter.toVisibleDigitsWithExponent(
- value, digits, status);
- if (U_FAILURE(status)) {
- return appendTo;
- }
- return format(
- digits, formatter, handler, optPluralRules, appendTo, status);
-}
-
-UnicodeString &
-DigitAffixesAndPadding::appendPadding(int32_t paddingCount, UnicodeString &appendTo) const {
- for (int32_t i = 0; i < paddingCount; ++i) {
- appendTo.append(fPadChar);
- }
- return appendTo;
-}
-
-
-U_NAMESPACE_END
-#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/digitaffixesandpadding.h b/Build/source/libs/icu/icu-src/source/i18n/digitaffixesandpadding.h
deleted file mode 100644
index 7c4772b5d72..00000000000
--- a/Build/source/libs/icu/icu-src/source/i18n/digitaffixesandpadding.h
+++ /dev/null
@@ -1,179 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
-*******************************************************************************
-* Copyright (C) 2015, International Business Machines
-* Corporation and others. All Rights Reserved.
-*******************************************************************************
-* digitaffixesandpadding.h
-*
-* created on: 2015jan06
-* created by: Travis Keep
-*/
-
-#ifndef __DIGITAFFIXESANDPADDING_H__
-#define __DIGITAFFIXESANDPADDING_H__
-
-#include "unicode/utypes.h"
-
-#if !UCONFIG_NO_FORMATTING
-
-#include "unicode/uobject.h"
-#include "pluralaffix.h"
-
-U_NAMESPACE_BEGIN
-
-class DigitList;
-class ValueFormatter;
-class UnicodeString;
-class FieldPositionHandler;
-class PluralRules;
-class VisibleDigitsWithExponent;
-
-/**
- * A formatter of numbers. This class can format any numerical value
- * except for not a number (NaN), positive infinity, and negative infinity.
- * This class manages prefixes, suffixes, and padding but delegates the
- * formatting of actual positive values to a ValueFormatter.
- */
-class U_I18N_API DigitAffixesAndPadding : public UMemory {
-public:
-
-/**
- * Equivalent to DecimalFormat EPadPosition, but redeclared here to prevent
- * depending on DecimalFormat which would cause a circular dependency.
- */
-enum EPadPosition {
- kPadBeforePrefix,
- kPadAfterPrefix,
- kPadBeforeSuffix,
- kPadAfterSuffix
-};
-
-/**
- * The positive prefix
- */
-PluralAffix fPositivePrefix;
-
-/**
- * The positive suffix
- */
-PluralAffix fPositiveSuffix;
-
-/**
- * The negative suffix
- */
-PluralAffix fNegativePrefix;
-
-/**
- * The negative suffix
- */
-PluralAffix fNegativeSuffix;
-
-/**
- * The padding position
- */
-EPadPosition fPadPosition;
-
-/**
- * The padding character.
- */
-UChar32 fPadChar;
-
-/**
- * The field width in code points. The format method inserts instances of
- * the padding character as needed in the desired padding position so that
- * the entire formatted string contains this many code points. If the
- * formatted string already exceeds this many code points, the format method
- * inserts no padding.
- */
-int32_t fWidth;
-
-/**
- * Pad position is before prefix; padding character is '*' field width is 0.
- * The affixes are all the empty string with no annotated fields with just
- * the 'other' plural variation.
- */
-DigitAffixesAndPadding()
- : fPadPosition(kPadBeforePrefix), fPadChar(0x2a), fWidth(0) { }
-
-/**
- * Returns TRUE if this object is equal to rhs.
- */
-UBool equals(const DigitAffixesAndPadding &rhs) const {
- return (fPositivePrefix.equals(rhs.fPositivePrefix) &&
- fPositiveSuffix.equals(rhs.fPositiveSuffix) &&
- fNegativePrefix.equals(rhs.fNegativePrefix) &&
- fNegativeSuffix.equals(rhs.fNegativeSuffix) &&
- fPadPosition == rhs.fPadPosition &&
- fWidth == rhs.fWidth &&
- fPadChar == rhs.fPadChar);
-}
-
-/**
- * Returns TRUE if a plural rules instance is needed to complete the
- * formatting by detecting if any of the affixes have multiple plural
- * variations.
- */
-UBool needsPluralRules() const;
-
-/**
- * Formats value and appends to appendTo.
- *
- * @param value the value to format. May be NaN or ininite.
- * @param formatter handles the details of formatting the actual value.
- * @param handler records field positions
- * @param optPluralRules the plural rules, but may be NULL if
- * needsPluralRules returns FALSE.
- * @appendTo formatted string appended here.
- * @status any error returned here.
- */
-UnicodeString &format(
- const VisibleDigitsWithExponent &value,
- const ValueFormatter &formatter,
- FieldPositionHandler &handler,
- const PluralRules *optPluralRules,
- UnicodeString &appendTo,
- UErrorCode &status) const;
-
-/**
- * For testing only.
- */
-UnicodeString &format(
- DigitList &value,
- const ValueFormatter &formatter,
- FieldPositionHandler &handler,
- const PluralRules *optPluralRules,
- UnicodeString &appendTo,
- UErrorCode &status) const;
-
-/**
- * Formats a 32-bit integer and appends to appendTo. When formatting an
- * integer, this method is preferred to plain format as it can run
- * several times faster under certain conditions.
- *
- * @param value the value to format.
- * @param formatter handles the details of formatting the actual value.
- * @param handler records field positions
- * @param optPluralRules the plural rules, but may be NULL if
- * needsPluralRules returns FALSE.
- * @appendTo formatted string appended here.
- * @status any error returned here.
- */
-UnicodeString &formatInt32(
- int32_t value,
- const ValueFormatter &formatter,
- FieldPositionHandler &handler,
- const PluralRules *optPluralRules,
- UnicodeString &appendTo,
- UErrorCode &status) const;
-
-private:
-UnicodeString &appendPadding(int32_t paddingCount, UnicodeString &appendTo) const;
-
-};
-
-
-U_NAMESPACE_END
-#endif /* #if !UCONFIG_NO_FORMATTING */
-#endif // __DIGITAFFIXANDPADDING_H__
diff --git a/Build/source/libs/icu/icu-src/source/i18n/digitformatter.cpp b/Build/source/libs/icu/icu-src/source/i18n/digitformatter.cpp
deleted file mode 100644
index 48338850f9c..00000000000
--- a/Build/source/libs/icu/icu-src/source/i18n/digitformatter.cpp
+++ /dev/null
@@ -1,417 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
- * Copyright (C) 2015, International Business Machines
- * Corporation and others. All Rights Reserved.
- *
- * file name: digitformatter.cpp
- */
-
-#include "unicode/utypes.h"
-
-#if !UCONFIG_NO_FORMATTING
-
-#include "unicode/dcfmtsym.h"
-#include "unicode/unum.h"
-
-#include "digitformatter.h"
-#include "digitgrouping.h"
-#include "digitinterval.h"
-#include "digitlst.h"
-#include "fphdlimp.h"
-#include "smallintformatter.h"
-#include "unistrappender.h"
-#include "visibledigits.h"
-
-U_NAMESPACE_BEGIN
-
-DigitFormatter::DigitFormatter()
- : fGroupingSeparator(",", -1, US_INV), fDecimal(".", -1, US_INV),
- fNegativeSign("-", -1, US_INV), fPositiveSign("+", -1, US_INV),
- fIsStandardDigits(TRUE), fExponent("E", -1, US_INV) {
- for (int32_t i = 0; i < 10; ++i) {
- fLocalizedDigits[i] = (UChar32) (0x30 + i);
- }
- fInfinity.setTo(UnicodeString("Inf", -1, US_INV), UNUM_INTEGER_FIELD);
- fNan.setTo(UnicodeString("Nan", -1, US_INV), UNUM_INTEGER_FIELD);
-}
-
-DigitFormatter::DigitFormatter(const DecimalFormatSymbols &symbols) {
- setDecimalFormatSymbols(symbols);
-}
-
-void
-DigitFormatter::setOtherDecimalFormatSymbols(
- const DecimalFormatSymbols &symbols) {
- fLocalizedDigits[0] = symbols.getConstSymbol(DecimalFormatSymbols::kZeroDigitSymbol).char32At(0);
- fLocalizedDigits[1] = symbols.getConstSymbol(DecimalFormatSymbols::kOneDigitSymbol).char32At(0);
- fLocalizedDigits[2] = symbols.getConstSymbol(DecimalFormatSymbols::kTwoDigitSymbol).char32At(0);
- fLocalizedDigits[3] = symbols.getConstSymbol(DecimalFormatSymbols::kThreeDigitSymbol).char32At(0);
- fLocalizedDigits[4] = symbols.getConstSymbol(DecimalFormatSymbols::kFourDigitSymbol).char32At(0);
- fLocalizedDigits[5] = symbols.getConstSymbol(DecimalFormatSymbols::kFiveDigitSymbol).char32At(0);
- fLocalizedDigits[6] = symbols.getConstSymbol(DecimalFormatSymbols::kSixDigitSymbol).char32At(0);
- fLocalizedDigits[7] = symbols.getConstSymbol(DecimalFormatSymbols::kSevenDigitSymbol).char32At(0);
- fLocalizedDigits[8] = symbols.getConstSymbol(DecimalFormatSymbols::kEightDigitSymbol).char32At(0);
- fLocalizedDigits[9] = symbols.getConstSymbol(DecimalFormatSymbols::kNineDigitSymbol).char32At(0);
- fIsStandardDigits = isStandardDigits();
- fNegativeSign = symbols.getConstSymbol(DecimalFormatSymbols::kMinusSignSymbol);
- fPositiveSign = symbols.getConstSymbol(DecimalFormatSymbols::kPlusSignSymbol);
- fInfinity.setTo(symbols.getConstSymbol(DecimalFormatSymbols::kInfinitySymbol), UNUM_INTEGER_FIELD);
- fNan.setTo(symbols.getConstSymbol(DecimalFormatSymbols::kNaNSymbol), UNUM_INTEGER_FIELD);
- fExponent = symbols.getConstSymbol(DecimalFormatSymbols::kExponentialSymbol);
-}
-
-void
-DigitFormatter::setDecimalFormatSymbolsForMonetary(
- const DecimalFormatSymbols &symbols) {
- setOtherDecimalFormatSymbols(symbols);
- fGroupingSeparator = symbols.getConstSymbol(DecimalFormatSymbols::kMonetaryGroupingSeparatorSymbol);
- fDecimal = symbols.getConstSymbol(DecimalFormatSymbols::kMonetarySeparatorSymbol);
-}
-
-void
-DigitFormatter::setDecimalFormatSymbols(
- const DecimalFormatSymbols &symbols) {
- setOtherDecimalFormatSymbols(symbols);
- fGroupingSeparator = symbols.getConstSymbol(DecimalFormatSymbols::kGroupingSeparatorSymbol);
- fDecimal = symbols.getConstSymbol(DecimalFormatSymbols::kDecimalSeparatorSymbol);
-}
-
-static void appendField(
- int32_t fieldId,
- const UnicodeString &value,
- FieldPositionHandler &handler,
- UnicodeString &appendTo) {
- int32_t currentLength = appendTo.length();
- appendTo.append(value);
- handler.addAttribute(
- fieldId,
- currentLength,
- appendTo.length());
-}
-
-int32_t DigitFormatter::countChar32(
- const DigitGrouping &grouping,
- const DigitInterval &interval,
- const DigitFormatterOptions &options) const {
- int32_t result = interval.length();
-
- // We always emit '0' in lieu of no digits.
- if (result == 0) {
- result = 1;
- }
- if (options.fAlwaysShowDecimal || interval.getLeastSignificantInclusive() < 0) {
- result += fDecimal.countChar32();
- }
- result += grouping.getSeparatorCount(interval.getIntDigitCount()) * fGroupingSeparator.countChar32();
- return result;
-}
-
-int32_t
-DigitFormatter::countChar32(
- const VisibleDigits &digits,
- const DigitGrouping &grouping,
- const DigitFormatterOptions &options) const {
- if (digits.isNaN()) {
- return countChar32ForNaN();
- }
- if (digits.isInfinite()) {
- return countChar32ForInfinity();
- }
- return countChar32(
- grouping,
- digits.getInterval(),
- options);
-}
-
-int32_t
-DigitFormatter::countChar32(
- const VisibleDigitsWithExponent &digits,
- const SciFormatterOptions &options) const {
- if (digits.isNaN()) {
- return countChar32ForNaN();
- }
- if (digits.isInfinite()) {
- return countChar32ForInfinity();
- }
- const VisibleDigits *exponent = digits.getExponent();
- if (exponent == NULL) {
- DigitGrouping grouping;
- return countChar32(
- grouping,
- digits.getMantissa().getInterval(),
- options.fMantissa);
- }
- return countChar32(
- *exponent, digits.getMantissa().getInterval(), options);
-}
-
-int32_t
-DigitFormatter::countChar32(
- const VisibleDigits &exponent,
- const DigitInterval &mantissaInterval,
- const SciFormatterOptions &options) const {
- DigitGrouping grouping;
- int32_t count = countChar32(
- grouping, mantissaInterval, options.fMantissa);
- count += fExponent.countChar32();
- count += countChar32ForExponent(
- exponent, options.fExponent);
- return count;
-}
-
-UnicodeString &DigitFormatter::format(
- const VisibleDigits &digits,
- const DigitGrouping &grouping,
- const DigitFormatterOptions &options,
- FieldPositionHandler &handler,
- UnicodeString &appendTo) const {
- if (digits.isNaN()) {
- return formatNaN(handler, appendTo);
- }
- if (digits.isInfinite()) {
- return formatInfinity(handler, appendTo);
- }
-
- const DigitInterval &interval = digits.getInterval();
- int32_t digitsLeftOfDecimal = interval.getMostSignificantExclusive();
- int32_t lastDigitPos = interval.getLeastSignificantInclusive();
- int32_t intBegin = appendTo.length();
- int32_t fracBegin = 0; /* initialize to avoid compiler warning */
-
- // Emit "0" instead of empty string.
- if (digitsLeftOfDecimal == 0 && lastDigitPos == 0) {
- appendTo.append(fLocalizedDigits[0]);
- handler.addAttribute(UNUM_INTEGER_FIELD, intBegin, appendTo.length());
- if (options.fAlwaysShowDecimal) {
- appendField(
- UNUM_DECIMAL_SEPARATOR_FIELD,
- fDecimal,
- handler,
- appendTo);
- }
- return appendTo;
- }
- {
- UnicodeStringAppender appender(appendTo);
- for (int32_t i = interval.getMostSignificantExclusive() - 1;
- i >= interval.getLeastSignificantInclusive(); --i) {
- if (i == -1) {
- appender.flush();
- appendField(
- UNUM_DECIMAL_SEPARATOR_FIELD,
- fDecimal,
- handler,
- appendTo);
- fracBegin = appendTo.length();
- }
- appender.append(fLocalizedDigits[digits.getDigitByExponent(i)]);
- if (grouping.isSeparatorAt(digitsLeftOfDecimal, i)) {
- appender.flush();
- appendField(
- UNUM_GROUPING_SEPARATOR_FIELD,
- fGroupingSeparator,
- handler,
- appendTo);
- }
- if (i == 0) {
- appender.flush();
- if (digitsLeftOfDecimal > 0) {
- handler.addAttribute(UNUM_INTEGER_FIELD, intBegin, appendTo.length());
- }
- }
- }
- if (options.fAlwaysShowDecimal && lastDigitPos == 0) {
- appender.flush();
- appendField(
- UNUM_DECIMAL_SEPARATOR_FIELD,
- fDecimal,
- handler,
- appendTo);
- }
- }
- // lastDigitPos is never > 0 so we are guaranteed that kIntegerField
- // is already added.
- if (lastDigitPos < 0) {
- handler.addAttribute(UNUM_FRACTION_FIELD, fracBegin, appendTo.length());
- }
- return appendTo;
-}
-
-UnicodeString &
-DigitFormatter::format(
- const VisibleDigitsWithExponent &digits,
- const SciFormatterOptions &options,
- FieldPositionHandler &handler,
- UnicodeString &appendTo) const {
- DigitGrouping grouping;
- format(
- digits.getMantissa(),
- grouping,
- options.fMantissa,
- handler,
- appendTo);
- const VisibleDigits *exponent = digits.getExponent();
- if (exponent == NULL) {
- return appendTo;
- }
- int32_t expBegin = appendTo.length();
- appendTo.append(fExponent);
- handler.addAttribute(
- UNUM_EXPONENT_SYMBOL_FIELD, expBegin, appendTo.length());
- return formatExponent(
- *exponent,
- options.fExponent,
- UNUM_EXPONENT_SIGN_FIELD,
- UNUM_EXPONENT_FIELD,
- handler,
- appendTo);
-}
-
-static int32_t formatInt(
- int32_t value, uint8_t *digits) {
- int32_t idx = 0;
- while (value > 0) {
- digits[idx++] = (uint8_t) (value % 10);
- value /= 10;
- }
- return idx;
-}
-
-UnicodeString &
-DigitFormatter::formatDigits(
- const uint8_t *digits,
- int32_t count,
- const IntDigitCountRange &range,
- int32_t intField,
- FieldPositionHandler &handler,
- UnicodeString &appendTo) const {
- int32_t i = range.pin(count) - 1;
- int32_t begin = appendTo.length();
-
- // Always emit '0' as placeholder for empty string.
- if (i == -1) {
- appendTo.append(fLocalizedDigits[0]);
- handler.addAttribute(intField, begin, appendTo.length());
- return appendTo;
- }
- {
- UnicodeStringAppender appender(appendTo);
- for (; i >= count; --i) {
- appender.append(fLocalizedDigits[0]);
- }
- for (; i >= 0; --i) {
- appender.append(fLocalizedDigits[digits[i]]);
- }
- }
- handler.addAttribute(intField, begin, appendTo.length());
- return appendTo;
-}
-
-UnicodeString &
-DigitFormatter::formatExponent(
- const VisibleDigits &digits,
- const DigitFormatterIntOptions &options,
- int32_t signField,
- int32_t intField,
- FieldPositionHandler &handler,
- UnicodeString &appendTo) const {
- UBool neg = digits.isNegative();
- if (neg || options.fAlwaysShowSign) {
- appendField(
- signField,
- neg ? fNegativeSign : fPositiveSign,
- handler,
- appendTo);
- }
- int32_t begin = appendTo.length();
- DigitGrouping grouping;
- DigitFormatterOptions expOptions;
- FieldPosition fpos(FieldPosition::DONT_CARE);
- FieldPositionOnlyHandler noHandler(fpos);
- format(
- digits,
- grouping,
- expOptions,
- noHandler,
- appendTo);
- handler.addAttribute(intField, begin, appendTo.length());
- return appendTo;
-}
-
-int32_t
-DigitFormatter::countChar32ForExponent(
- const VisibleDigits &exponent,
- const DigitFormatterIntOptions &options) const {
- int32_t result = 0;
- UBool neg = exponent.isNegative();
- if (neg || options.fAlwaysShowSign) {
- result += neg ? fNegativeSign.countChar32() : fPositiveSign.countChar32();
- }
- DigitGrouping grouping;
- DigitFormatterOptions expOptions;
- result += countChar32(grouping, exponent.getInterval(), expOptions);
- return result;
-}
-
-UnicodeString &
-DigitFormatter::formatPositiveInt32(
- int32_t positiveValue,
- const IntDigitCountRange &range,
- FieldPositionHandler &handler,
- UnicodeString &appendTo) const {
- // super fast path
- if (fIsStandardDigits && SmallIntFormatter::canFormat(positiveValue, range)) {
- int32_t begin = appendTo.length();
- SmallIntFormatter::format(positiveValue, range, appendTo);
- handler.addAttribute(UNUM_INTEGER_FIELD, begin, appendTo.length());
- return appendTo;
- }
- uint8_t digits[10];
- int32_t count = formatInt(positiveValue, digits);
- return formatDigits(
- digits,
- count,
- range,
- UNUM_INTEGER_FIELD,
- handler,
- appendTo);
-}
-
-UBool DigitFormatter::isStandardDigits() const {
- UChar32 cdigit = 0x30;
- for (int32_t i = 0; i < UPRV_LENGTHOF(fLocalizedDigits); ++i) {
- if (fLocalizedDigits[i] != cdigit) {
- return FALSE;
- }
- ++cdigit;
- }
- return TRUE;
-}
-
-UBool
-DigitFormatter::equals(const DigitFormatter &rhs) const {
- UBool result = (fGroupingSeparator == rhs.fGroupingSeparator) &&
- (fDecimal == rhs.fDecimal) &&
- (fNegativeSign == rhs.fNegativeSign) &&
- (fPositiveSign == rhs.fPositiveSign) &&
- (fInfinity.equals(rhs.fInfinity)) &&
- (fNan.equals(rhs.fNan)) &&
- (fIsStandardDigits == rhs.fIsStandardDigits) &&
- (fExponent == rhs.fExponent);
-
- if (!result) {
- return FALSE;
- }
- for (int32_t i = 0; i < UPRV_LENGTHOF(fLocalizedDigits); ++i) {
- if (fLocalizedDigits[i] != rhs.fLocalizedDigits[i]) {
- return FALSE;
- }
- }
- return TRUE;
-}
-
-
-U_NAMESPACE_END
-
-#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/digitformatter.h b/Build/source/libs/icu/icu-src/source/i18n/digitformatter.h
deleted file mode 100644
index 54a54c3639a..00000000000
--- a/Build/source/libs/icu/icu-src/source/i18n/digitformatter.h
+++ /dev/null
@@ -1,288 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
-*******************************************************************************
-* Copyright (C) 2015, International Business Machines
-* Corporation and others. All Rights Reserved.
-*******************************************************************************
-* digitformatter.h
-*
-* created on: 2015jan06
-* created by: Travis Keep
-*/
-
-#ifndef __DIGITFORMATTER_H__
-#define __DIGITFORMATTER_H__
-
-#include "unicode/uobject.h"
-
-#if !UCONFIG_NO_FORMATTING
-
-#include "unicode/utypes.h"
-#include "unicode/unistr.h"
-#include "digitaffix.h"
-
-U_NAMESPACE_BEGIN
-
-class DecimalFormatSymbols;
-class DigitList;
-class DigitGrouping;
-class DigitInterval;
-class UnicodeString;
-class FieldPositionHandler;
-class IntDigitCountRange;
-class VisibleDigits;
-class VisibleDigitsWithExponent;
-
-/**
- * Various options for formatting in fixed point.
- */
-class U_I18N_API DigitFormatterOptions : public UMemory {
- public:
- DigitFormatterOptions() : fAlwaysShowDecimal(FALSE) { }
-
- /**
- * Returns TRUE if this object equals rhs.
- */
- UBool equals(const DigitFormatterOptions &rhs) const {
- return (
- fAlwaysShowDecimal == rhs.fAlwaysShowDecimal);
- }
-
- /**
- * Returns TRUE if these options allow for fast formatting of
- * integers.
- */
- UBool isFastFormattable() const {
- return (fAlwaysShowDecimal == FALSE);
- }
-
- /**
- * If TRUE, show the decimal separator even when there are no fraction
- * digits. default is FALSE.
- */
- UBool fAlwaysShowDecimal;
-};
-
-/**
- * Various options for formatting an integer.
- */
-class U_I18N_API DigitFormatterIntOptions : public UMemory {
- public:
- DigitFormatterIntOptions() : fAlwaysShowSign(FALSE) { }
-
- /**
- * Returns TRUE if this object equals rhs.
- */
- UBool equals(const DigitFormatterIntOptions &rhs) const {
- return (fAlwaysShowSign == rhs.fAlwaysShowSign);
- }
-
- /**
- * If TRUE, always prefix the integer with its sign even if the number is
- * positive. Default is FALSE.
- */
- UBool fAlwaysShowSign;
-};
-
-/**
- * Options for formatting in scientific notation.
- */
-class U_I18N_API SciFormatterOptions : public UMemory {
- public:
-
- /**
- * Returns TRUE if this object equals rhs.
- */
- UBool equals(const SciFormatterOptions &rhs) const {
- return (fMantissa.equals(rhs.fMantissa) &&
- fExponent.equals(rhs.fExponent));
- }
-
- /**
- * Options for formatting the mantissa.
- */
- DigitFormatterOptions fMantissa;
-
- /**
- * Options for formatting the exponent.
- */
- DigitFormatterIntOptions fExponent;
-};
-
-
-/**
- * Does fixed point formatting.
- *
- * This class only does fixed point formatting. It does no rounding before
- * formatting.
- */
-class U_I18N_API DigitFormatter : public UMemory {
-public:
-
-/**
- * Decimal separator is period (.), Plus sign is plus (+),
- * minus sign is minus (-), grouping separator is comma (,), digits are 0-9.
- */
-DigitFormatter();
-
-/**
- * Let symbols determine the digits, decimal separator,
- * plus and mius sign, grouping separator, and possibly other settings.
- */
-DigitFormatter(const DecimalFormatSymbols &symbols);
-
-/**
- * Change what this instance uses for digits, decimal separator,
- * plus and mius sign, grouping separator, and possibly other settings
- * according to symbols.
- */
-void setDecimalFormatSymbols(const DecimalFormatSymbols &symbols);
-
-/**
- * Change what this instance uses for digits, decimal separator,
- * plus and mius sign, grouping separator, and possibly other settings
- * according to symbols in the context of monetary amounts.
- */
-void setDecimalFormatSymbolsForMonetary(const DecimalFormatSymbols &symbols);
-
-/**
- * Fixed point formatting.
- *
- * @param positiveDigits the value to format
- * Negative sign can be present, but it won't show.
- * @param grouping controls how digit grouping is done
- * @param options formatting options
- * @param handler records field positions
- * @param appendTo formatted value appended here.
- * @return appendTo
- */
-UnicodeString &format(
- const VisibleDigits &positiveDigits,
- const DigitGrouping &grouping,
- const DigitFormatterOptions &options,
- FieldPositionHandler &handler,
- UnicodeString &appendTo) const;
-
-/**
- * formats in scientifc notation.
- * @param positiveDigits the value to format.
- * Negative sign can be present, but it won't show.
- * @param options formatting options
- * @param handler records field positions.
- * @param appendTo formatted value appended here.
- */
-UnicodeString &format(
- const VisibleDigitsWithExponent &positiveDigits,
- const SciFormatterOptions &options,
- FieldPositionHandler &handler,
- UnicodeString &appendTo) const;
-
-/**
- * Fixed point formatting of integers.
- * Always performed with no grouping and no decimal point.
- *
- * @param positiveValue the value to format must be positive.
- * @param range specifies minimum and maximum number of digits.
- * @param handler records field positions
- * @param appendTo formatted value appended here.
- * @return appendTo
- */
-UnicodeString &formatPositiveInt32(
- int32_t positiveValue,
- const IntDigitCountRange &range,
- FieldPositionHandler &handler,
- UnicodeString &appendTo) const;
-
-/**
- * Counts how many code points are needed for fixed formatting.
- * If digits is negative, the negative sign is not included in the count.
- */
-int32_t countChar32(
- const VisibleDigits &digits,
- const DigitGrouping &grouping,
- const DigitFormatterOptions &options) const;
-
-/**
- * Counts how many code points are needed for scientific formatting.
- * If digits is negative, the negative sign is not included in the count.
- */
-int32_t countChar32(
- const VisibleDigitsWithExponent &digits,
- const SciFormatterOptions &options) const;
-
-/**
- * Returns TRUE if this object equals rhs.
- */
-UBool equals(const DigitFormatter &rhs) const;
-
-private:
-UChar32 fLocalizedDigits[10];
-UnicodeString fGroupingSeparator;
-UnicodeString fDecimal;
-UnicodeString fNegativeSign;
-UnicodeString fPositiveSign;
-DigitAffix fInfinity;
-DigitAffix fNan;
-UBool fIsStandardDigits;
-UnicodeString fExponent;
-UBool isStandardDigits() const;
-
-UnicodeString &formatDigits(
- const uint8_t *digits,
- int32_t count,
- const IntDigitCountRange &range,
- int32_t intField,
- FieldPositionHandler &handler,
- UnicodeString &appendTo) const;
-
-void setOtherDecimalFormatSymbols(const DecimalFormatSymbols &symbols);
-
-int32_t countChar32(
- const VisibleDigits &exponent,
- const DigitInterval &mantissaInterval,
- const SciFormatterOptions &options) const;
-
-UnicodeString &formatNaN(
- FieldPositionHandler &handler,
- UnicodeString &appendTo) const {
- return fNan.format(handler, appendTo);
-}
-
-int32_t countChar32ForNaN() const {
- return fNan.toString().countChar32();
-}
-
-UnicodeString &formatInfinity(
- FieldPositionHandler &handler,
- UnicodeString &appendTo) const {
- return fInfinity.format(handler, appendTo);
-}
-
-int32_t countChar32ForInfinity() const {
- return fInfinity.toString().countChar32();
-}
-
-UnicodeString &formatExponent(
- const VisibleDigits &digits,
- const DigitFormatterIntOptions &options,
- int32_t signField,
- int32_t intField,
- FieldPositionHandler &handler,
- UnicodeString &appendTo) const;
-
-int32_t countChar32(
- const DigitGrouping &grouping,
- const DigitInterval &interval,
- const DigitFormatterOptions &options) const;
-
-int32_t countChar32ForExponent(
- const VisibleDigits &exponent,
- const DigitFormatterIntOptions &options) const;
-
-};
-
-
-U_NAMESPACE_END
-#endif /* #if !UCONFIG_NO_FORMATTING */
-#endif // __DIGITFORMATTER_H__
diff --git a/Build/source/libs/icu/icu-src/source/i18n/digitgrouping.cpp b/Build/source/libs/icu/icu-src/source/i18n/digitgrouping.cpp
deleted file mode 100644
index 67f8f2b0611..00000000000
--- a/Build/source/libs/icu/icu-src/source/i18n/digitgrouping.cpp
+++ /dev/null
@@ -1,59 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
- * Copyright (C) 2015, International Business Machines
- * Corporation and others. All Rights Reserved.
- *
- * file name: digitgrouping.cpp
- */
-
-#include "unicode/utypes.h"
-
-#include "digitgrouping.h"
-#include "smallintformatter.h"
-
-U_NAMESPACE_BEGIN
-
-UBool DigitGrouping::isSeparatorAt(
- int32_t digitsLeftOfDecimal, int32_t digitPos) const {
- if (!isGroupingEnabled(digitsLeftOfDecimal) || digitPos < fGrouping) {
- return FALSE;
- }
- return ((digitPos - fGrouping) % getGrouping2() == 0);
-}
-
-int32_t DigitGrouping::getSeparatorCount(int32_t digitsLeftOfDecimal) const {
- if (!isGroupingEnabled(digitsLeftOfDecimal)) {
- return 0;
- }
- return (digitsLeftOfDecimal - 1 - fGrouping) / getGrouping2() + 1;
-}
-
-UBool DigitGrouping::isGroupingEnabled(int32_t digitsLeftOfDecimal) const {
- return (isGroupingUsed()
- && digitsLeftOfDecimal >= fGrouping + getMinGrouping());
-}
-
-UBool DigitGrouping::isNoGrouping(
- int32_t positiveValue, const IntDigitCountRange &range) const {
- return getSeparatorCount(
- SmallIntFormatter::estimateDigitCount(positiveValue, range)) == 0;
-}
-
-int32_t DigitGrouping::getGrouping2() const {
- return (fGrouping2 > 0 ? fGrouping2 : fGrouping);
-}
-
-int32_t DigitGrouping::getMinGrouping() const {
- return (fMinGrouping > 0 ? fMinGrouping : 1);
-}
-
-void
-DigitGrouping::clear() {
- fMinGrouping = 0;
- fGrouping = 0;
- fGrouping2 = 0;
-}
-
-U_NAMESPACE_END
-
diff --git a/Build/source/libs/icu/icu-src/source/i18n/digitgrouping.h b/Build/source/libs/icu/icu-src/source/i18n/digitgrouping.h
deleted file mode 100644
index 131d76b508f..00000000000
--- a/Build/source/libs/icu/icu-src/source/i18n/digitgrouping.h
+++ /dev/null
@@ -1,112 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
-*******************************************************************************
-* Copyright (C) 2015, International Business Machines
-* Corporation and others. All Rights Reserved.
-*******************************************************************************
-* digitgrouping.h
-*
-* created on: 2015jan6
-* created by: Travis Keep
-*/
-
-#ifndef __DIGITGROUPING_H__
-#define __DIGITGROUPING_H__
-
-#include "unicode/uobject.h"
-#include "unicode/utypes.h"
-
-U_NAMESPACE_BEGIN
-
-class IntDigitCountRange;
-
-/**
- * The digit grouping policy.
- */
-class U_I18N_API DigitGrouping : public UMemory {
-public:
- /**
- * Default is no digit grouping.
- */
- DigitGrouping() : fGrouping(0), fGrouping2(0), fMinGrouping(0) { }
-
- /**
- * Returns TRUE if this object is equal to rhs.
- */
- UBool equals(const DigitGrouping &rhs) const {
- return ((fGrouping == rhs.fGrouping) &&
- (fGrouping2 == rhs.fGrouping2) &&
- (fMinGrouping == rhs.fMinGrouping));
- }
-
- /**
- * Returns true if a separator is needed after a particular digit.
- * @param digitsLeftOfDecimal the total count of digits left of the
- * decimal.
- * @param digitPos 0 is the one's place; 1 is the 10's place; -1 is the
- * 1/10's place etc.
- */
- UBool isSeparatorAt(int32_t digitsLeftOfDecimal, int32_t digitPos) const;
-
- /**
- * Returns the total number of separators to be used to format a particular
- * number.
- * @param digitsLeftOfDecimal the total number of digits to the left of
- * the decimal.
- */
- int32_t getSeparatorCount(int32_t digitsLeftOfDecimal) const;
-
- /**
- * Returns true if grouping is used FALSE otherwise. When
- * isGroupingUsed() returns FALSE; isSeparatorAt always returns FALSE
- * and getSeparatorCount always returns 0.
- */
- UBool isGroupingUsed() const { return fGrouping > 0; }
-
- /**
- * Returns TRUE if this instance would not add grouping separators
- * when formatting value using the given constraint on digit count.
- *
- * @param value the value to format.
- * @param range the minimum and maximum digits for formatting value.
- */
- UBool isNoGrouping(
- int32_t positiveValue, const IntDigitCountRange &range) const;
-
- /**
- * Clears this instance so that digit grouping is not in effect.
- */
- void clear();
-
-public:
-
- /**
- * Primary grouping size. A value of 0, the default, or a negative
- * number causes isGroupingUsed() to return FALSE.
- */
- int32_t fGrouping;
-
- /**
- * Secondary grouping size. If > 0, this size is used instead of
- * 'fGrouping' for all but the group just to the left of the decimal
- * point. The default value of 0, or a negative value indicates that
- * there is no secondary grouping size.
- */
- int32_t fGrouping2;
-
- /**
- * If set (that is > 0), uses no grouping separators if fewer than
- * (fGrouping + fMinGrouping) digits appear left of the decimal place.
- * The default value for this field is 0.
- */
- int32_t fMinGrouping;
-private:
- UBool isGroupingEnabled(int32_t digitsLeftOfDecimal) const;
- int32_t getGrouping2() const;
- int32_t getMinGrouping() const;
-};
-
-U_NAMESPACE_END
-
-#endif // __DIGITGROUPING_H__
diff --git a/Build/source/libs/icu/icu-src/source/i18n/digitinterval.cpp b/Build/source/libs/icu/icu-src/source/i18n/digitinterval.cpp
deleted file mode 100644
index fd0e3543c8c..00000000000
--- a/Build/source/libs/icu/icu-src/source/i18n/digitinterval.cpp
+++ /dev/null
@@ -1,56 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
- * Copyright (C) 2015, International Business Machines
- * Corporation and others. All Rights Reserved.
- *
- * file name: digitinterval.cpp
- */
-
-#include "unicode/utypes.h"
-
-#include "digitinterval.h"
-
-U_NAMESPACE_BEGIN
-
-void DigitInterval::expandToContain(const DigitInterval &rhs) {
- if (fSmallestInclusive > rhs.fSmallestInclusive) {
- fSmallestInclusive = rhs.fSmallestInclusive;
- }
- if (fLargestExclusive < rhs.fLargestExclusive) {
- fLargestExclusive = rhs.fLargestExclusive;
- }
-}
-
-void DigitInterval::shrinkToFitWithin(const DigitInterval &rhs) {
- if (fSmallestInclusive < rhs.fSmallestInclusive) {
- fSmallestInclusive = rhs.fSmallestInclusive;
- }
- if (fLargestExclusive > rhs.fLargestExclusive) {
- fLargestExclusive = rhs.fLargestExclusive;
- }
-}
-
-void DigitInterval::setIntDigitCount(int32_t count) {
- fLargestExclusive = count < 0 ? INT32_MAX : count;
-}
-
-void DigitInterval::setFracDigitCount(int32_t count) {
- fSmallestInclusive = count < 0 ? INT32_MIN : -count;
-}
-
-void DigitInterval::expandToContainDigit(int32_t digitExponent) {
- if (fLargestExclusive <= digitExponent) {
- fLargestExclusive = digitExponent + 1;
- } else if (fSmallestInclusive > digitExponent) {
- fSmallestInclusive = digitExponent;
- }
-}
-
-UBool DigitInterval::contains(int32_t x) const {
- return (x < fLargestExclusive && x >= fSmallestInclusive);
-}
-
-
-U_NAMESPACE_END
-
diff --git a/Build/source/libs/icu/icu-src/source/i18n/digitinterval.h b/Build/source/libs/icu/icu-src/source/i18n/digitinterval.h
deleted file mode 100644
index 55ced9445a7..00000000000
--- a/Build/source/libs/icu/icu-src/source/i18n/digitinterval.h
+++ /dev/null
@@ -1,159 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
-*******************************************************************************
-* Copyright (C) 2015, International Business Machines
-* Corporation and others. All Rights Reserved.
-*******************************************************************************
-* digitinterval.h
-*
-* created on: 2015jan6
-* created by: Travis Keep
-*/
-
-#ifndef __DIGITINTERVAL_H__
-#define __DIGITINTERVAL_H__
-
-#include "unicode/uobject.h"
-#include "unicode/utypes.h"
-
-U_NAMESPACE_BEGIN
-
-/**
- * An interval of digits.
- * DigitIntervals are for fixed point formatting. A DigitInterval specifies
- * zero or more integer digits and zero or more fractional digits. This class
- * specifies particular digits in a number by their power of 10. For example,
- * the digit position just to the left of the decimal is 0, and the digit
- * position just left of that is 1. The digit position just to the right of
- * the decimal is -1. The digit position just to the right of that is -2.
- */
-class U_I18N_API DigitInterval : public UMemory {
-public:
-
- /**
- * Spans all integer and fraction digits
- */
- DigitInterval()
- : fLargestExclusive(INT32_MAX), fSmallestInclusive(INT32_MIN) { }
-
-
- /**
- * Makes this instance span all digits.
- */
- void clear() {
- fLargestExclusive = INT32_MAX;
- fSmallestInclusive = INT32_MIN;
- }
-
- /**
- * Returns TRUE if this interval contains this digit position.
- */
- UBool contains(int32_t digitPosition) const;
-
- /**
- * Returns true if this object is the same as rhs.
- */
- UBool equals(const DigitInterval &rhs) const {
- return ((fLargestExclusive == rhs.fLargestExclusive) &&
- (fSmallestInclusive == rhs.fSmallestInclusive));
- }
-
- /**
- * Expand this interval so that it contains all of rhs.
- */
- void expandToContain(const DigitInterval &rhs);
-
- /**
- * Shrink this interval so that it contains no more than rhs.
- */
- void shrinkToFitWithin(const DigitInterval &rhs);
-
- /**
- * Expand this interval as necessary to contain digit with given exponent
- * After this method returns, this interval is guaranteed to contain
- * digitExponent.
- */
- void expandToContainDigit(int32_t digitExponent);
-
- /**
- * Changes the number of digits to the left of the decimal point that
- * this interval spans. If count is negative, it means span all digits
- * to the left of the decimal point.
- */
- void setIntDigitCount(int32_t count);
-
- /**
- * Changes the number of digits to the right of the decimal point that
- * this interval spans. If count is negative, it means span all digits
- * to the right of the decimal point.
- */
- void setFracDigitCount(int32_t count);
-
- /**
- * Sets the least significant inclusive value to smallest. If smallest >= 0
- * then least significant inclusive value becomes 0.
- */
- void setLeastSignificantInclusive(int32_t smallest) {
- fSmallestInclusive = smallest < 0 ? smallest : 0;
- }
-
- /**
- * Sets the most significant exclusive value to largest.
- * If largest <= 0 then most significant exclusive value becomes 0.
- */
- void setMostSignificantExclusive(int32_t largest) {
- fLargestExclusive = largest > 0 ? largest : 0;
- }
-
- /**
- * If returns 8, the most significant digit in interval is the 10^7 digit.
- * Returns INT32_MAX if this interval spans all digits to left of
- * decimal point.
- */
- int32_t getMostSignificantExclusive() const {
- return fLargestExclusive;
- }
-
- /**
- * Returns number of digits to the left of the decimal that this
- * interval includes. This is a synonym for getMostSignificantExclusive().
- */
- int32_t getIntDigitCount() const {
- return fLargestExclusive;
- }
-
- /**
- * Returns number of digits to the right of the decimal that this
- * interval includes.
- */
- int32_t getFracDigitCount() const {
- return fSmallestInclusive == INT32_MIN ? INT32_MAX : -fSmallestInclusive;
- }
-
- /**
- * Returns the total number of digits that this interval spans.
- * Caution: If this interval spans all digits to the left or right of
- * decimal point instead of some fixed number, then what length()
- * returns is undefined.
- */
- int32_t length() const {
- return fLargestExclusive - fSmallestInclusive;
- }
-
- /**
- * If returns -3, the least significant digit in interval is the 10^-3
- * digit. Returns INT32_MIN if this interval spans all digits to right of
- * decimal point.
- */
- int32_t getLeastSignificantInclusive() const {
- return fSmallestInclusive;
- }
-private:
- int32_t fLargestExclusive;
- int32_t fSmallestInclusive;
-};
-
-U_NAMESPACE_END
-
-#endif // __DIGITINTERVAL_H__
diff --git a/Build/source/libs/icu/icu-src/source/i18n/digitlst.cpp b/Build/source/libs/icu/icu-src/source/i18n/digitlst.cpp
deleted file mode 100644
index 978bb60004f..00000000000
--- a/Build/source/libs/icu/icu-src/source/i18n/digitlst.cpp
+++ /dev/null
@@ -1,1143 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
-**********************************************************************
-* Copyright (C) 1997-2015, International Business Machines
-* Corporation and others. All Rights Reserved.
-**********************************************************************
-*
-* File DIGITLST.CPP
-*
-* Modification History:
-*
-* Date Name Description
-* 03/21/97 clhuang Converted from java.
-* 03/21/97 clhuang Implemented with new APIs.
-* 03/27/97 helena Updated to pass the simple test after code review.
-* 03/31/97 aliu Moved isLONG_MIN to here, and fixed it.
-* 04/15/97 aliu Changed MAX_COUNT to DBL_DIG. Changed Digit to char.
-* Reworked representation by replacing fDecimalAt
-* with fExponent.
-* 04/16/97 aliu Rewrote set() and getDouble() to use sprintf/atof
-* to do digit conversion.
-* 09/09/97 aliu Modified for exponential notation support.
-* 08/02/98 stephen Added nearest/even rounding
-* Fixed bug in fitsIntoLong
-******************************************************************************
-*/
-
-#if defined(__CYGWIN__) && !defined(_GNU_SOURCE)
-#define _GNU_SOURCE
-#endif
-
-#include "digitlst.h"
-
-#if !UCONFIG_NO_FORMATTING
-
-#include "unicode/putil.h"
-#include "charstr.h"
-#include "cmemory.h"
-#include "cstring.h"
-#include "mutex.h"
-#include "putilimp.h"
-#include "uassert.h"
-#include "digitinterval.h"
-#include "ucln_in.h"
-#include "umutex.h"
-#include "double-conversion.h"
-#include <stdlib.h>
-#include <limits.h>
-#include <string.h>
-#include <stdio.h>
-#include <limits>
-
-using icu::double_conversion::DoubleToStringConverter;
-
-#if !defined(U_USE_STRTOD_L)
-# if U_PLATFORM_USES_ONLY_WIN32_API
-# define U_USE_STRTOD_L 1
-# define U_HAVE_XLOCALE_H 0
-# elif defined(U_HAVE_STRTOD_L)
-# define U_USE_STRTOD_L U_HAVE_STRTOD_L
-# else
-# define U_USE_STRTOD_L 0
-# endif
-#endif
-
-#if U_USE_STRTOD_L
-# if U_HAVE_XLOCALE_H
-# include <xlocale.h>
-# else
-# include <locale.h>
-# endif
-#endif
-
-// ***************************************************************************
-// class DigitList
-// A wrapper onto decNumber.
-// Used to be standalone.
-// ***************************************************************************
-
-/**
- * This is the zero digit. The base for the digits returned by getDigit()
- * Note that it is the platform invariant digit, and is not Unicode.
- */
-#define kZero '0'
-
-
-/* Only for 32 bit numbers. Ignore the negative sign. */
-//static const char LONG_MIN_REP[] = "2147483648";
-//static const char I64_MIN_REP[] = "9223372036854775808";
-
-
-U_NAMESPACE_BEGIN
-
-// -------------------------------------
-// default constructor
-
-DigitList::DigitList()
-{
- uprv_decContextDefault(&fContext, DEC_INIT_BASE);
- fContext.traps = 0;
- uprv_decContextSetRounding(&fContext, DEC_ROUND_HALF_EVEN);
- fContext.digits = fStorage.getCapacity();
-
- fDecNumber = fStorage.getAlias();
- uprv_decNumberZero(fDecNumber);
-
- internalSetDouble(0.0);
-}
-
-// -------------------------------------
-
-DigitList::~DigitList()
-{
-}
-
-// -------------------------------------
-// copy constructor
-
-DigitList::DigitList(const DigitList &other)
-{
- fDecNumber = fStorage.getAlias();
- *this = other;
-}
-
-
-// -------------------------------------
-// assignment operator
-
-DigitList&
-DigitList::operator=(const DigitList& other)
-{
- if (this != &other)
- {
- uprv_memcpy(&fContext, &other.fContext, sizeof(decContext));
-
- if (other.fStorage.getCapacity() > fStorage.getCapacity()) {
- fDecNumber = fStorage.resize(other.fStorage.getCapacity());
- }
- // Always reset the fContext.digits, even if fDecNumber was not reallocated,
- // because above we copied fContext from other.fContext.
- fContext.digits = fStorage.getCapacity();
- uprv_decNumberCopy(fDecNumber, other.fDecNumber);
-
- {
- // fDouble is lazily created and cached.
- // Avoid potential races with that happening with other.fDouble
- // while we are doing the assignment.
- Mutex mutex;
-
- if(other.fHave==kDouble) {
- fUnion.fDouble = other.fUnion.fDouble;
- }
- fHave = other.fHave;
- }
- }
- return *this;
-}
-
-// -------------------------------------
-// operator == (does not exactly match the old DigitList function)
-
-UBool
-DigitList::operator==(const DigitList& that) const
-{
- if (this == &that) {
- return TRUE;
- }
- decNumber n; // Has space for only a none digit value.
- decContext c;
- uprv_decContextDefault(&c, DEC_INIT_BASE);
- c.digits = 1;
- c.traps = 0;
-
- uprv_decNumberCompare(&n, this->fDecNumber, that.fDecNumber, &c);
- UBool result = decNumberIsZero(&n);
- return result;
-}
-
-// -------------------------------------
-// comparison function. Returns
-// Not Comparable : -2
-// < : -1
-// == : 0
-// > : +1
-int32_t DigitList::compare(const DigitList &other) {
- decNumber result;
- int32_t savedDigits = fContext.digits;
- fContext.digits = 1;
- uprv_decNumberCompare(&result, this->fDecNumber, other.fDecNumber, &fContext);
- fContext.digits = savedDigits;
- if (decNumberIsZero(&result)) {
- return 0;
- } else if (decNumberIsSpecial(&result)) {
- return -2;
- } else if (result.bits & DECNEG) {
- return -1;
- } else {
- return 1;
- }
-}
-
-
-// -------------------------------------
-// Reduce - remove trailing zero digits.
-void
-DigitList::reduce() {
- uprv_decNumberReduce(fDecNumber, fDecNumber, &fContext);
-}
-
-
-// -------------------------------------
-// trim - remove trailing fraction zero digits.
-void
-DigitList::trim() {
- uprv_decNumberTrim(fDecNumber);
-}
-
-// -------------------------------------
-// Resets the digit list; sets all the digits to zero.
-
-void
-DigitList::clear()
-{
- uprv_decNumberZero(fDecNumber);
- uprv_decContextSetRounding(&fContext, DEC_ROUND_HALF_EVEN);
- internalSetDouble(0.0);
-}
-
-
-/**
- * Formats a int64_t number into a base 10 string representation, and NULL terminates it.
- * @param number The number to format
- * @param outputStr The string to output to. Must be at least MAX_DIGITS+2 in length (21),
- * to hold the longest int64_t value.
- * @return the number of digits written, not including the sign.
- */
-static int32_t
-formatBase10(int64_t number, char *outputStr) {
- // The number is output backwards, starting with the LSD.
- // Fill the buffer from the far end. After the number is complete,
- // slide the string contents to the front.
-
- const int32_t MAX_IDX = MAX_DIGITS+2;
- int32_t destIdx = MAX_IDX;
- outputStr[--destIdx] = 0;
-
- int64_t n = number;
- if (number < 0) { // Negative numbers are slightly larger than a postive
- outputStr[--destIdx] = (char)(-(n % 10) + kZero);
- n /= -10;
- }
- do {
- outputStr[--destIdx] = (char)(n % 10 + kZero);
- n /= 10;
- } while (n > 0);
-
- if (number < 0) {
- outputStr[--destIdx] = '-';
- }
-
- // Slide the number to the start of the output str
- U_ASSERT(destIdx >= 0);
- int32_t length = MAX_IDX - destIdx;
- uprv_memmove(outputStr, outputStr+MAX_IDX-length, length);
-
- return length;
-}
-
-
-// -------------------------------------
-//
-// setRoundingMode()
-// For most modes, the meaning and names are the same between the decNumber library
-// (which DigitList follows) and the ICU Formatting Rounding Mode values.
-// The flag constants are different, however.
-//
-// Note that ICU's kRoundingUnnecessary is not implemented directly by DigitList.
-// This mode, inherited from Java, means that numbers that would not format exactly
-// will return an error when formatting is attempted.
-
-void
-DigitList::setRoundingMode(DecimalFormat::ERoundingMode m) {
- enum rounding r;
-
- switch (m) {
- case DecimalFormat::kRoundCeiling: r = DEC_ROUND_CEILING; break;
- case DecimalFormat::kRoundFloor: r = DEC_ROUND_FLOOR; break;
- case DecimalFormat::kRoundDown: r = DEC_ROUND_DOWN; break;
- case DecimalFormat::kRoundUp: r = DEC_ROUND_UP; break;
- case DecimalFormat::kRoundHalfEven: r = DEC_ROUND_HALF_EVEN; break;
- case DecimalFormat::kRoundHalfDown: r = DEC_ROUND_HALF_DOWN; break;
- case DecimalFormat::kRoundHalfUp: r = DEC_ROUND_HALF_UP; break;
- case DecimalFormat::kRoundUnnecessary: r = DEC_ROUND_HALF_EVEN; break;
- default:
- // TODO: how to report the problem?
- // Leave existing mode unchanged.
- r = uprv_decContextGetRounding(&fContext);
- }
- uprv_decContextSetRounding(&fContext, r);
-
-}
-
-
-// -------------------------------------
-
-void
-DigitList::setPositive(UBool s) {
- if (s) {
- fDecNumber->bits &= ~DECNEG;
- } else {
- fDecNumber->bits |= DECNEG;
- }
- internalClear();
-}
-// -------------------------------------
-
-void
-DigitList::setDecimalAt(int32_t d) {
- U_ASSERT((fDecNumber->bits & DECSPECIAL) == 0); // Not Infinity or NaN
- U_ASSERT(d-1>-999999999);
- U_ASSERT(d-1< 999999999);
- int32_t adjustedDigits = fDecNumber->digits;
- if (decNumberIsZero(fDecNumber)) {
- // Account for difference in how zero is represented between DigitList & decNumber.
- adjustedDigits = 0;
- }
- fDecNumber->exponent = d - adjustedDigits;
- internalClear();
-}
-
-int32_t
-DigitList::getDecimalAt() {
- U_ASSERT((fDecNumber->bits & DECSPECIAL) == 0); // Not Infinity or NaN
- if (decNumberIsZero(fDecNumber) || ((fDecNumber->bits & DECSPECIAL) != 0)) {
- return fDecNumber->exponent; // Exponent should be zero for these cases.
- }
- return fDecNumber->exponent + fDecNumber->digits;
-}
-
-void
-DigitList::setCount(int32_t c) {
- U_ASSERT(c <= fContext.digits);
- if (c == 0) {
- // For a value of zero, DigitList sets all fields to zero, while
- // decNumber keeps one digit (with that digit being a zero)
- c = 1;
- fDecNumber->lsu[0] = 0;
- }
- fDecNumber->digits = c;
- internalClear();
-}
-
-int32_t
-DigitList::getCount() const {
- if (decNumberIsZero(fDecNumber) && fDecNumber->exponent==0) {
- // The extra test for exponent==0 is needed because parsing sometimes appends
- // zero digits. It's bogus, decimalFormatter parsing needs to be cleaned up.
- return 0;
- } else {
- return fDecNumber->digits;
- }
-}
-
-void
-DigitList::setDigit(int32_t i, char v) {
- int32_t count = fDecNumber->digits;
- U_ASSERT(i<count);
- U_ASSERT(v>='0' && v<='9');
- v &= 0x0f;
- fDecNumber->lsu[count-i-1] = v;
- internalClear();
-}
-
-char
-DigitList::getDigit(int32_t i) {
- int32_t count = fDecNumber->digits;
- U_ASSERT(i<count);
- return fDecNumber->lsu[count-i-1] + '0';
-}
-
-// copied from DigitList::getDigit()
-uint8_t
-DigitList::getDigitValue(int32_t i) {
- int32_t count = fDecNumber->digits;
- U_ASSERT(i<count);
- return fDecNumber->lsu[count-i-1];
-}
-
-// -------------------------------------
-// Appends the digit to the digit list if it's not out of scope.
-// Ignores the digit, otherwise.
-//
-// This function is horribly inefficient to implement with decNumber because
-// the digits are stored least significant first, which requires moving all
-// existing digits down one to make space for the new one to be appended.
-//
-void
-DigitList::append(char digit)
-{
- U_ASSERT(digit>='0' && digit<='9');
- // Ignore digits which exceed the precision we can represent
- // And don't fix for larger precision. Fix callers instead.
- if (decNumberIsZero(fDecNumber)) {
- // Zero needs to be special cased because of the difference in the way
- // that the old DigitList and decNumber represent it.
- // digit cout was zero for digitList, is one for decNumber
- fDecNumber->lsu[0] = digit & 0x0f;
- fDecNumber->digits = 1;
- fDecNumber->exponent--; // To match the old digit list implementation.
- } else {
- int32_t nDigits = fDecNumber->digits;
- if (nDigits < fContext.digits) {
- int i;
- for (i=nDigits; i>0; i--) {
- fDecNumber->lsu[i] = fDecNumber->lsu[i-1];
- }
- fDecNumber->lsu[0] = digit & 0x0f;
- fDecNumber->digits++;
- // DigitList emulation - appending doesn't change the magnitude of existing
- // digits. With decNumber's decimal being after the
- // least signficant digit, we need to adjust the exponent.
- fDecNumber->exponent--;
- }
- }
- internalClear();
-}
-
-// -------------------------------------
-
-/**
- * Currently, getDouble() depends on strtod() to do its conversion.
- *
- * WARNING!!
- * This is an extremely costly function. ~1/2 of the conversion time
- * can be linked to this function.
- */
-double
-DigitList::getDouble() const
-{
- {
- Mutex mutex;
- if (fHave == kDouble) {
- return fUnion.fDouble;
- }
- }
-
- double tDouble = 0.0;
- if (isZero()) {
- tDouble = 0.0;
- if (decNumberIsNegative(fDecNumber)) {
- tDouble /= -1;
- }
- } else if (isInfinite()) {
- if (std::numeric_limits<double>::has_infinity) {
- tDouble = std::numeric_limits<double>::infinity();
- } else {
- tDouble = std::numeric_limits<double>::max();
- }
- if (!isPositive()) {
- tDouble = -tDouble; //this was incorrectly "-fDouble" originally.
- }
- } else {
- MaybeStackArray<char, MAX_DBL_DIGITS+18> s;
- // Note: 14 is a magic constant from the decNumber library documentation,
- // the max number of extra characters beyond the number of digits
- // needed to represent the number in string form. Add a few more
- // for the additional digits we retain.
-
- // Round down to appx. double precision, if the number is longer than that.
- // Copy the number first, so that we don't modify the original.
- if (getCount() > MAX_DBL_DIGITS + 3) {
- DigitList numToConvert(*this);
- numToConvert.reduce(); // Removes any trailing zeros, so that digit count is good.
- numToConvert.round(MAX_DBL_DIGITS+3);
- uprv_decNumberToString(numToConvert.fDecNumber, s.getAlias());
- // TODO: how many extra digits should be included for an accurate conversion?
- } else {
- uprv_decNumberToString(this->fDecNumber, s.getAlias());
- }
- U_ASSERT(uprv_strlen(&s[0]) < MAX_DBL_DIGITS+18);
-
- char *end = NULL;
- tDouble = decimalStrToDouble(s.getAlias(), &end);
- }
- {
- Mutex mutex;
- DigitList *nonConstThis = const_cast<DigitList *>(this);
- nonConstThis->internalSetDouble(tDouble);
- }
- return tDouble;
-}
-
-#if U_USE_STRTOD_L && U_PLATFORM_USES_ONLY_WIN32_API
-# define locale_t _locale_t
-# define freelocale _free_locale
-# define strtod_l _strtod_l
-#endif
-
-#if U_USE_STRTOD_L
-static locale_t gCLocale = (locale_t)0;
-#endif
-static icu::UInitOnce gCLocaleInitOnce = U_INITONCE_INITIALIZER;
-
-U_CDECL_BEGIN
-// Cleanup callback func
-static UBool U_CALLCONV digitList_cleanup(void)
-{
-#if U_USE_STRTOD_L
- if (gCLocale != (locale_t)0) {
- freelocale(gCLocale);
- }
-#endif
- return TRUE;
-}
-// C Locale initialization func
-static void U_CALLCONV initCLocale(void) {
- ucln_i18n_registerCleanup(UCLN_I18N_DIGITLIST, digitList_cleanup);
-#if U_USE_STRTOD_L
-# if U_PLATFORM_USES_ONLY_WIN32_API
- gCLocale = _create_locale(LC_ALL, "C");
-# else
- gCLocale = newlocale(LC_ALL_MASK, "C", (locale_t)0);
-# endif
-#endif
-}
-U_CDECL_END
-
-double
-DigitList::decimalStrToDouble(char *decstr, char **end) {
- umtx_initOnce(gCLocaleInitOnce, &initCLocale);
-#if U_USE_STRTOD_L
- return strtod_l(decstr, end, gCLocale);
-#else
- char *decimalPt = strchr(decstr, '.');
- if (decimalPt) {
- // We need to know the decimal separator character that will be used with strtod().
- // Depends on the C runtime global locale.
- // Most commonly is '.'
- char rep[MAX_DIGITS];
- sprintf(rep, "%+1.1f", 1.0);
- *decimalPt = rep[2];
- }
- return uprv_strtod(decstr, end);
-#endif
-}
-
-// -------------------------------------
-
-/**
- * convert this number to an int32_t. Round if there is a fractional part.
- * Return zero if the number cannot be represented.
- */
-int32_t DigitList::getLong() /*const*/
-{
- int32_t result = 0;
- if (getUpperExponent() > 10) {
- // Overflow, absolute value too big.
- return result;
- }
- if (fDecNumber->exponent != 0) {
- // Force to an integer, with zero exponent, rounding if necessary.
- // (decNumberToInt32 will only work if the exponent is exactly zero.)
- DigitList copy(*this);
- DigitList zero;
- uprv_decNumberQuantize(copy.fDecNumber, copy.fDecNumber, zero.fDecNumber, &fContext);
- result = uprv_decNumberToInt32(copy.fDecNumber, &fContext);
- } else {
- result = uprv_decNumberToInt32(fDecNumber, &fContext);
- }
- return result;
-}
-
-
-/**
- * convert this number to an int64_t. Truncate if there is a fractional part.
- * Return zero if the number cannot be represented.
- */
-int64_t DigitList::getInt64() /*const*/ {
- // TODO: fast conversion if fHave == fDouble
-
- // Truncate if non-integer.
- // Return 0 if out of range.
- // Range of in64_t is -9223372036854775808 to 9223372036854775807 (19 digits)
- //
- if (getUpperExponent() > 19) {
- // Overflow, absolute value too big.
- return 0;
- }
-
- // The number of integer digits may differ from the number of digits stored
- // in the decimal number.
- // for 12.345 numIntDigits = 2, number->digits = 5
- // for 12E4 numIntDigits = 6, number->digits = 2
- // The conversion ignores the fraction digits in the first case,
- // and fakes up extra zero digits in the second.
- // TODO: It would be faster to store a table of powers of ten to multiply by
- // instead of looping over zero digits, multiplying each time.
-
- int32_t numIntDigits = getUpperExponent();
- uint64_t value = 0;
- for (int32_t i = 0; i < numIntDigits; i++) {
- // Loop is iterating over digits starting with the most significant.
- // Numbers are stored with the least significant digit at index zero.
- int32_t digitIndex = fDecNumber->digits - i - 1;
- int32_t v = (digitIndex >= 0) ? fDecNumber->lsu[digitIndex] : 0;
- value = value * (uint64_t)10 + (uint64_t)v;
- }
-
- if (decNumberIsNegative(fDecNumber)) {
- value = ~value;
- value += 1;
- }
- int64_t svalue = (int64_t)value;
-
- // Check overflow. It's convenient that the MSD is 9 only on overflow, the amount of
- // overflow can't wrap too far. The test will also fail -0, but
- // that does no harm; the right answer is 0.
- if (numIntDigits == 19) {
- if (( decNumberIsNegative(fDecNumber) && svalue>0) ||
- (!decNumberIsNegative(fDecNumber) && svalue<0)) {
- svalue = 0;
- }
- }
-
- return svalue;
-}
-
-
-/**
- * Return a string form of this number.
- * Format is as defined by the decNumber library, for interchange of
- * decimal numbers.
- */
-void DigitList::getDecimal(CharString &str, UErrorCode &status) {
- if (U_FAILURE(status)) {
- return;
- }
-
- // A decimal number in string form can, worst case, be 14 characters longer
- // than the number of digits. So says the decNumber library doc.
- int32_t maxLength = fDecNumber->digits + 14;
- int32_t capacity = 0;
- char *buffer = str.clear().getAppendBuffer(maxLength, 0, capacity, status);
- if (U_FAILURE(status)) {
- return; // Memory allocation error on growing the string.
- }
- U_ASSERT(capacity >= maxLength);
- uprv_decNumberToString(this->fDecNumber, buffer);
- U_ASSERT((int32_t)uprv_strlen(buffer) <= maxLength);
- str.append(buffer, -1, status);
-}
-
-/**
- * Return true if this is an integer value that can be held
- * by an int32_t type.
- */
-UBool
-DigitList::fitsIntoLong(UBool ignoreNegativeZero) /*const*/
-{
- if (decNumberIsSpecial(this->fDecNumber)) {
- // NaN or Infinity. Does not fit in int32.
- return FALSE;
- }
- uprv_decNumberTrim(this->fDecNumber);
- if (fDecNumber->exponent < 0) {
- // Number contains fraction digits.
- return FALSE;
- }
- if (decNumberIsZero(this->fDecNumber) && !ignoreNegativeZero &&
- (fDecNumber->bits & DECNEG) != 0) {
- // Negative Zero, not ingored. Cannot represent as a long.
- return FALSE;
- }
- if (getUpperExponent() < 10) {
- // The number is 9 or fewer digits.
- // The max and min int32 are 10 digts, so this number fits.
- // This is the common case.
- return TRUE;
- }
-
- // TODO: Should cache these constants; construction is relatively costly.
- // But not of huge consequence; they're only needed for 10 digit ints.
- UErrorCode status = U_ZERO_ERROR;
- DigitList min32; min32.set("-2147483648", status);
- if (this->compare(min32) < 0) {
- return FALSE;
- }
- DigitList max32; max32.set("2147483647", status);
- if (this->compare(max32) > 0) {
- return FALSE;
- }
- if (U_FAILURE(status)) {
- return FALSE;
- }
- return true;
-}
-
-
-
-/**
- * Return true if the number represented by this object can fit into
- * a long.
- */
-UBool
-DigitList::fitsIntoInt64(UBool ignoreNegativeZero) /*const*/
-{
- if (decNumberIsSpecial(this->fDecNumber)) {
- // NaN or Infinity. Does not fit in int32.
- return FALSE;
- }
- uprv_decNumberTrim(this->fDecNumber);
- if (fDecNumber->exponent < 0) {
- // Number contains fraction digits.
- return FALSE;
- }
- if (decNumberIsZero(this->fDecNumber) && !ignoreNegativeZero &&
- (fDecNumber->bits & DECNEG) != 0) {
- // Negative Zero, not ingored. Cannot represent as a long.
- return FALSE;
- }
- if (getUpperExponent() < 19) {
- // The number is 18 or fewer digits.
- // The max and min int64 are 19 digts, so this number fits.
- // This is the common case.
- return TRUE;
- }
-
- // TODO: Should cache these constants; construction is relatively costly.
- // But not of huge consequence; they're only needed for 19 digit ints.
- UErrorCode status = U_ZERO_ERROR;
- DigitList min64; min64.set("-9223372036854775808", status);
- if (this->compare(min64) < 0) {
- return FALSE;
- }
- DigitList max64; max64.set("9223372036854775807", status);
- if (this->compare(max64) > 0) {
- return FALSE;
- }
- if (U_FAILURE(status)) {
- return FALSE;
- }
- return true;
-}
-
-
-// -------------------------------------
-
-void
-DigitList::set(int32_t source)
-{
- set((int64_t)source);
- internalSetDouble(source);
-}
-
-// -------------------------------------
-/**
- * Set an int64, via decnumber
- */
-void
-DigitList::set(int64_t source)
-{
- char str[MAX_DIGITS+2]; // Leave room for sign and trailing nul.
- formatBase10(source, str);
- U_ASSERT(uprv_strlen(str) < sizeof(str));
-
- uprv_decNumberFromString(fDecNumber, str, &fContext);
- internalSetDouble(static_cast<double>(source));
-}
-
-// -------------------------------------
-/**
- * Set the DigitList from a decimal number string.
- *
- * The incoming string _must_ be nul terminated, even though it is arriving
- * as a StringPiece because that is what the decNumber library wants.
- * We can get away with this for an internal function; it would not
- * be acceptable for a public API.
- */
-void
-DigitList::set(StringPiece source, UErrorCode &status, uint32_t /*fastpathBits*/) {
- if (U_FAILURE(status)) {
- return;
- }
-
-#if 0
- if(fastpathBits==(kFastpathOk|kNoDecimal)) {
- int32_t size = source.size();
- const char *data = source.data();
- int64_t r = 0;
- int64_t m = 1;
- // fast parse
- while(size>0) {
- char ch = data[--size];
- if(ch=='+') {
- break;
- } else if(ch=='-') {
- r = -r;
- break;
- } else {
- int64_t d = ch-'0';
- //printf("CH[%d]=%c, %d, *=%d\n", size,ch, (int)d, (int)m);
- r+=(d)*m;
- m *= 10;
- }
- }
- //printf("R=%d\n", r);
- set(r);
- } else
-#endif
- {
- // Figure out a max number of digits to use during the conversion, and
- // resize the number up if necessary.
- int32_t numDigits = source.length();
- if (numDigits > fContext.digits) {
- // fContext.digits == fStorage.getCapacity()
- decNumber *t = fStorage.resize(numDigits, fStorage.getCapacity());
- if (t == NULL) {
- status = U_MEMORY_ALLOCATION_ERROR;
- return;
- }
- fDecNumber = t;
- fContext.digits = numDigits;
- }
-
- fContext.status = 0;
- uprv_decNumberFromString(fDecNumber, source.data(), &fContext);
- if ((fContext.status & DEC_Conversion_syntax) != 0) {
- status = U_DECIMAL_NUMBER_SYNTAX_ERROR;
- }
- }
- internalClear();
-}
-
-/**
- * Set the digit list to a representation of the given double value.
- * This method supports both fixed-point and exponential notation.
- * @param source Value to be converted.
- */
-void
-DigitList::set(double source)
-{
- // for now, simple implementation; later, do proper IEEE stuff
- char rep[MAX_DIGITS + 8]; // Extra space for '+', '.', e+NNN, and '\0' (actually +8 is enough)
-
- // Generate a representation of the form /[+-][0-9].[0-9]+e[+-][0-9]+/
- // Can also generate /[+-]nan/ or /[+-]inf/
- // TODO: Use something other than sprintf() here, since it's behavior is somewhat platform specific.
- // That is why infinity is special cased here.
- if (uprv_isInfinite(source)) {
- if (uprv_isNegativeInfinity(source)) {
- uprv_strcpy(rep,"-inf"); // Handle negative infinity
- } else {
- uprv_strcpy(rep,"inf");
- }
- } else if (uprv_isNaN(source)) {
- uprv_strcpy(rep, "NaN");
- } else {
- bool sign;
- int32_t length;
- int32_t point;
- DoubleToStringConverter::DoubleToAscii(
- source,
- DoubleToStringConverter::DtoaMode::SHORTEST,
- 0,
- rep + 1,
- sizeof(rep),
- &sign,
- &length,
- &point
- );
-
- // Convert the raw buffer into a string for decNumber
- int32_t power = point - length;
- if (sign) {
- rep[0] = '-';
- } else {
- rep[0] = '0';
- }
- length++;
- rep[length++] = 'E';
- if (power < 0) {
- rep[length++] = '-';
- power = -power;
- } else {
- rep[length++] = '+';
- }
- if (power < 10) {
- rep[length++] = power + '0';
- } else if (power < 100) {
- rep[length++] = (power / 10) + '0';
- rep[length++] = (power % 10) + '0';
- } else {
- U_ASSERT(power < 1000);
- rep[length + 2] = (power % 10) + '0';
- power /= 10;
- rep[length + 1] = (power % 10) + '0';
- power /= 10;
- rep[length] = power + '0';
- length += 3;
- }
- rep[length++] = 0;
- }
- U_ASSERT(uprv_strlen(rep) < sizeof(rep));
-
- // uprv_decNumberFromString() will parse the string expecting '.' as a
- // decimal separator, however sprintf() can use ',' in certain locales.
- // Overwrite a ',' with '.' here before proceeding.
- char *decimalSeparator = strchr(rep, ',');
- if (decimalSeparator != NULL) {
- *decimalSeparator = '.';
- }
-
- // Create a decNumber from the string.
- uprv_decNumberFromString(fDecNumber, rep, &fContext);
- uprv_decNumberTrim(fDecNumber);
- internalSetDouble(source);
-}
-
-// -------------------------------------
-
-/*
- * Multiply
- * The number will be expanded if need be to retain full precision.
- * In practice, for formatting, multiply is by 10, 100 or 1000, so more digits
- * will not be required for this use.
- */
-void
-DigitList::mult(const DigitList &other, UErrorCode &status) {
- if (U_FAILURE(status)) {
- return;
- }
- fContext.status = 0;
- int32_t requiredDigits = this->digits() + other.digits();
- if (requiredDigits > fContext.digits) {
- reduce(); // Remove any trailing zeros
- int32_t requiredDigits = this->digits() + other.digits();
- ensureCapacity(requiredDigits, status);
- }
- uprv_decNumberMultiply(fDecNumber, fDecNumber, other.fDecNumber, &fContext);
- internalClear();
-}
-
-// -------------------------------------
-
-/*
- * Divide
- * The number will _not_ be expanded for inexact results.
- * TODO: probably should expand some, for rounding increments that
- * could add a few digits, e.g. .25, but not expand arbitrarily.
- */
-void
-DigitList::div(const DigitList &other, UErrorCode &status) {
- if (U_FAILURE(status)) {
- return;
- }
- uprv_decNumberDivide(fDecNumber, fDecNumber, other.fDecNumber, &fContext);
- internalClear();
-}
-
-// -------------------------------------
-
-/*
- * ensureCapacity. Grow the digit storage for the number if it's less than the requested
- * amount. Never reduce it. Available size is kept in fContext.digits.
- */
-void
-DigitList::ensureCapacity(int32_t requestedCapacity, UErrorCode &status) {
- if (U_FAILURE(status)) {
- return;
- }
- if (requestedCapacity <= 0) {
- status = U_ILLEGAL_ARGUMENT_ERROR;
- return;
- }
- if (requestedCapacity > DEC_MAX_DIGITS) {
- // Don't report an error for requesting too much.
- // Arithemetic Results will be rounded to what can be supported.
- // At 999,999,999 max digits, exceeding the limit is not too likely!
- requestedCapacity = DEC_MAX_DIGITS;
- }
- if (requestedCapacity > fContext.digits) {
- decNumber *newBuffer = fStorage.resize(requestedCapacity, fStorage.getCapacity());
- if (newBuffer == NULL) {
- status = U_MEMORY_ALLOCATION_ERROR;
- return;
- }
- fContext.digits = requestedCapacity;
- fDecNumber = newBuffer;
- }
-}
-
-// -------------------------------------
-
-/**
- * Round the representation to the given number of digits.
- * @param maximumDigits The maximum number of digits to be shown.
- * Upon return, count will be less than or equal to maximumDigits.
- */
-void
-DigitList::round(int32_t maximumDigits)
-{
- reduce();
- if (maximumDigits >= fDecNumber->digits) {
- return;
- }
- int32_t savedDigits = fContext.digits;
- fContext.digits = maximumDigits;
- uprv_decNumberPlus(fDecNumber, fDecNumber, &fContext);
- fContext.digits = savedDigits;
- uprv_decNumberTrim(fDecNumber);
- reduce();
- internalClear();
-}
-
-
-void
-DigitList::roundFixedPoint(int32_t maximumFractionDigits) {
- reduce(); // Remove trailing zeros.
- if (fDecNumber->exponent >= -maximumFractionDigits) {
- return;
- }
- decNumber scale; // Dummy decimal number, but with the desired number of
- uprv_decNumberZero(&scale); // fraction digits.
- scale.exponent = -maximumFractionDigits;
- scale.lsu[0] = 1;
-
- uprv_decNumberQuantize(fDecNumber, fDecNumber, &scale, &fContext);
- reduce();
- internalClear();
-}
-
-// -------------------------------------
-
-void
-DigitList::toIntegralValue() {
- uprv_decNumberToIntegralValue(fDecNumber, fDecNumber, &fContext);
-}
-
-
-// -------------------------------------
-UBool
-DigitList::isZero() const
-{
- return decNumberIsZero(fDecNumber);
-}
-
-// -------------------------------------
-int32_t
-DigitList::getUpperExponent() const {
- return fDecNumber->digits + fDecNumber->exponent;
-}
-
-DigitInterval &
-DigitList::getSmallestInterval(DigitInterval &result) const {
- result.setLeastSignificantInclusive(fDecNumber->exponent);
- result.setMostSignificantExclusive(getUpperExponent());
- return result;
-}
-
-uint8_t
-DigitList::getDigitByExponent(int32_t exponent) const {
- int32_t idx = exponent - fDecNumber->exponent;
- if (idx < 0 || idx >= fDecNumber->digits) {
- return 0;
- }
- return fDecNumber->lsu[idx];
-}
-
-void
-DigitList::appendDigitsTo(CharString &str, UErrorCode &status) const {
- str.append((const char *) fDecNumber->lsu, fDecNumber->digits, status);
-}
-
-void
-DigitList::roundAtExponent(int32_t exponent, int32_t maxSigDigits) {
- reduce();
- if (maxSigDigits < fDecNumber->digits) {
- int32_t minExponent = getUpperExponent() - maxSigDigits;
- if (exponent < minExponent) {
- exponent = minExponent;
- }
- }
- if (exponent <= fDecNumber->exponent) {
- return;
- }
- int32_t digits = getUpperExponent() - exponent;
- if (digits > 0) {
- round(digits);
- } else {
- roundFixedPoint(-exponent);
- }
-}
-
-void
-DigitList::quantize(const DigitList &quantity, UErrorCode &status) {
- if (U_FAILURE(status)) {
- return;
- }
- div(quantity, status);
- roundAtExponent(0);
- mult(quantity, status);
- reduce();
-}
-
-int32_t
-DigitList::getScientificExponent(
- int32_t minIntDigitCount, int32_t exponentMultiplier) const {
- // The exponent for zero is always zero.
- if (isZero()) {
- return 0;
- }
- int32_t intDigitCount = getUpperExponent();
- int32_t exponent;
- if (intDigitCount >= minIntDigitCount) {
- int32_t maxAdjustment = intDigitCount - minIntDigitCount;
- exponent = (maxAdjustment / exponentMultiplier) * exponentMultiplier;
- } else {
- int32_t minAdjustment = minIntDigitCount - intDigitCount;
- exponent = ((minAdjustment + exponentMultiplier - 1) / exponentMultiplier) * -exponentMultiplier;
- }
- return exponent;
-}
-
-int32_t
-DigitList::toScientific(
- int32_t minIntDigitCount, int32_t exponentMultiplier) {
- int32_t exponent = getScientificExponent(
- minIntDigitCount, exponentMultiplier);
- shiftDecimalRight(-exponent);
- return exponent;
-}
-
-void
-DigitList::shiftDecimalRight(int32_t n) {
- fDecNumber->exponent += n;
- internalClear();
-}
-
-U_NAMESPACE_END
-#endif // #if !UCONFIG_NO_FORMATTING
-
-//eof
diff --git a/Build/source/libs/icu/icu-src/source/i18n/digitlst.h b/Build/source/libs/icu/icu-src/source/i18n/digitlst.h
deleted file mode 100644
index a51ebc45c7c..00000000000
--- a/Build/source/libs/icu/icu-src/source/i18n/digitlst.h
+++ /dev/null
@@ -1,529 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
-******************************************************************************
-*
-* Copyright (C) 1997-2015, International Business Machines
-* Corporation and others. All Rights Reserved.
-*
-******************************************************************************
-*
-* File DIGITLST.H
-*
-* Modification History:
-*
-* Date Name Description
-* 02/25/97 aliu Converted from java.
-* 03/21/97 clhuang Updated per C++ implementation.
-* 04/15/97 aliu Changed MAX_COUNT to DBL_DIG. Changed Digit to char.
-* 09/09/97 aliu Adapted for exponential notation support.
-* 08/02/98 stephen Added nearest/even rounding
-* 06/29/99 stephen Made LONG_DIGITS a macro to satisfy SUN compiler
-* 07/09/99 stephen Removed kMaxCount (unused, for HP compiler)
-******************************************************************************
-*/
-
-#ifndef DIGITLST_H
-#define DIGITLST_H
-
-#include "unicode/uobject.h"
-
-#if !UCONFIG_NO_FORMATTING
-#include "unicode/decimfmt.h"
-#include <float.h>
-#include "decContext.h"
-#include "decNumber.h"
-#include "cmemory.h"
-
-// Decimal digits in a 64-bit int
-#define INT64_DIGITS 19
-
-typedef enum EDigitListValues {
- MAX_DBL_DIGITS = DBL_DIG,
- MAX_I64_DIGITS = INT64_DIGITS,
- MAX_DIGITS = MAX_I64_DIGITS,
- MAX_EXPONENT = DBL_DIG,
- DIGIT_PADDING = 3,
- DEFAULT_DIGITS = 40, // Initial storage size, will grow as needed.
-
- // "+." + fDigits + "e" + fDecimalAt
- MAX_DEC_DIGITS = MAX_DIGITS + DIGIT_PADDING + MAX_EXPONENT
-} EDigitListValues;
-
-U_NAMESPACE_BEGIN
-
-class CharString;
-class DigitInterval;
-
-// Export an explicit template instantiation of the MaybeStackHeaderAndArray that
-// is used as a data member of DigitList.
-//
-// MSVC requires this, even though it should not be necessary.
-// No direct access to the MaybeStackHeaderAndArray leaks out of the i18n library.
-//
-// Macintosh produces duplicate definition linker errors with the explicit template
-// instantiation.
-//
-#if !U_PLATFORM_IS_DARWIN_BASED
-template class U_I18N_API MaybeStackHeaderAndArray<decNumber, char, DEFAULT_DIGITS>;
-#endif
-
-
-enum EStackMode { kOnStack };
-
-enum EFastpathBits { kFastpathOk = 1, kNoDecimal = 2 };
-
-/**
- * Digit List is actually a Decimal Floating Point number.
- * The original implementation has been replaced by a thin wrapper onto a
- * decimal number from the decNumber library.
- *
- * The original DigitList API has been retained, to minimize the impact of
- * the change on the rest of the ICU formatting code.
- *
- * The change to decNumber enables support for big decimal numbers, and
- * allows rounding computations to be done directly in decimal, avoiding
- * extra, and inaccurate, conversions to and from doubles.
- *
- * Original DigitList comments:
- *
- * Digit List utility class. Private to DecimalFormat. Handles the transcoding
- * between numeric values and strings of characters. Only handles
- * non-negative numbers. The division of labor between DigitList and
- * DecimalFormat is that DigitList handles the radix 10 representation
- * issues; DecimalFormat handles the locale-specific issues such as
- * positive/negative, grouping, decimal point, currency, and so on.
- * <P>
- * A DigitList is really a representation of a floating point value.
- * It may be an integer value; we assume that a double has sufficient
- * precision to represent all digits of a long.
- * <P>
- * The DigitList representation consists of a string of characters,
- * which are the digits radix 10, from '0' to '9'. It also has a radix
- * 10 exponent associated with it. The value represented by a DigitList
- * object can be computed by mulitplying the fraction f, where 0 <= f < 1,
- * derived by placing all the digits of the list to the right of the
- * decimal point, by 10^exponent.
- *
- * --------
- *
- * DigitList vs. decimalNumber:
- *
- * DigitList stores digits with the most significant first.
- * decNumber stores digits with the least significant first.
- *
- * DigitList, decimal point is before the most significant.
- * decNumber, decimal point is after the least signficant digit.
- *
- * digitList: 0.ddddd * 10 ^ exp
- * decNumber: ddddd. * 10 ^ exp
- *
- * digitList exponent = decNumber exponent + digit count
- *
- * digitList, digits are platform invariant chars, '0' - '9'
- * decNumber, digits are binary, one per byte, 0 - 9.
- *
- * (decNumber library is configurable in how digits are stored, ICU has configured
- * it this way for convenience in replacing the old DigitList implementation.)
- */
-class U_I18N_API DigitList : public UMemory { // Declare external to make compiler happy
-public:
-
- DigitList();
- ~DigitList();
-
- /* copy constructor
- * @param DigitList The object to be copied.
- * @return the newly created object.
- */
- DigitList(const DigitList&); // copy constructor
-
- /* assignment operator
- * @param DigitList The object to be copied.
- * @return the newly created object.
- */
- DigitList& operator=(const DigitList&); // assignment operator
-
- /**
- * Return true if another object is semantically equal to this one.
- * @param other The DigitList to be compared for equality
- * @return true if another object is semantically equal to this one.
- * return false otherwise.
- */
- UBool operator==(const DigitList& other) const;
-
- int32_t compare(const DigitList& other);
-
-
- inline UBool operator!=(const DigitList& other) const { return !operator==(other); }
-
- /**
- * Clears out the digits.
- * Use before appending them.
- * Typically, you set a series of digits with append, then at the point
- * you hit the decimal point, you set myDigitList.fDecimalAt = myDigitList.fCount;
- * then go on appending digits.
- */
- void clear(void);
-
- /**
- * Remove, by rounding, any fractional part of the decimal number,
- * leaving an integer value.
- */
- void toIntegralValue();
-
- /**
- * Appends digits to the list.
- * CAUTION: this function is not recommended for new code.
- * In the original DigitList implementation, decimal numbers were
- * parsed by appending them to a digit list as they were encountered.
- * With the revamped DigitList based on decNumber, append is very
- * inefficient, and the interaction with the exponent value is confusing.
- * Best avoided.
- * TODO: remove this function once all use has been replaced.
- * TODO: describe alternative to append()
- * @param digit The digit to be appended.
- */
- void append(char digit);
-
- /**
- * Utility routine to get the value of the digit list
- * Returns 0.0 if zero length.
- * @return the value of the digit list.
- */
- double getDouble(void) const;
-
- /**
- * Utility routine to get the value of the digit list
- * Make sure that fitsIntoLong() is called before calling this function.
- * Returns 0 if zero length.
- * @return the value of the digit list, return 0 if it is zero length
- */
- int32_t getLong(void) /*const*/;
-
- /**
- * Utility routine to get the value of the digit list
- * Make sure that fitsIntoInt64() is called before calling this function.
- * Returns 0 if zero length.
- * @return the value of the digit list, return 0 if it is zero length
- */
- int64_t getInt64(void) /*const*/;
-
- /**
- * Utility routine to get the value of the digit list as a decimal string.
- */
- void getDecimal(CharString &str, UErrorCode &status);
-
- /**
- * Return true if the number represented by this object can fit into
- * a long.
- * @param ignoreNegativeZero True if negative zero is ignored.
- * @return true if the number represented by this object can fit into
- * a long, return false otherwise.
- */
- UBool fitsIntoLong(UBool ignoreNegativeZero) /*const*/;
-
- /**
- * Return true if the number represented by this object can fit into
- * an int64_t.
- * @param ignoreNegativeZero True if negative zero is ignored.
- * @return true if the number represented by this object can fit into
- * a long, return false otherwise.
- */
- UBool fitsIntoInt64(UBool ignoreNegativeZero) /*const*/;
-
- /**
- * Utility routine to set the value of the digit list from a double.
- * @param source The value to be set
- */
- void set(double source);
-
- /**
- * Utility routine to set the value of the digit list from a long.
- * If a non-zero maximumDigits is specified, no more than that number of
- * significant digits will be produced.
- * @param source The value to be set
- */
- void set(int32_t source);
-
- /**
- * Utility routine to set the value of the digit list from an int64.
- * If a non-zero maximumDigits is specified, no more than that number of
- * significant digits will be produced.
- * @param source The value to be set
- */
- void set(int64_t source);
-
- /**
- * Utility routine to set the value of the digit list from an int64.
- * Does not set the decnumber unless requested later
- * If a non-zero maximumDigits is specified, no more than that number of
- * significant digits will be produced.
- * @param source The value to be set
- */
- void setInteger(int64_t source);
-
- /**
- * Utility routine to set the value of the digit list from a decimal number
- * string.
- * @param source The value to be set. The string must be nul-terminated.
- * @param fastpathBits special flags for fast parsing
- */
- void set(StringPiece source, UErrorCode &status, uint32_t fastpathBits = 0);
-
- /**
- * Multiply this = this * arg
- * This digitlist will be expanded if necessary to accomodate the result.
- * @param arg the number to multiply by.
- */
- void mult(const DigitList &arg, UErrorCode &status);
-
- /**
- * Divide this = this / arg
- */
- void div(const DigitList &arg, UErrorCode &status);
-
- // The following functions replace direct access to the original DigitList implmentation
- // data structures.
-
- void setRoundingMode(DecimalFormat::ERoundingMode m);
-
- /** Test a number for zero.
- * @return TRUE if the number is zero
- */
- UBool isZero(void) const;
-
- /** Test for a Nan
- * @return TRUE if the number is a NaN
- */
- UBool isNaN(void) const {return decNumberIsNaN(fDecNumber);}
-
- UBool isInfinite() const {return decNumberIsInfinite(fDecNumber);}
-
- /** Reduce, or normalize. Removes trailing zeroes, adjusts exponent appropriately. */
- void reduce();
-
- /** Remove trailing fraction zeros, adjust exponent accordingly. */
- void trim();
-
- /** Set to zero */
- void setToZero() {uprv_decNumberZero(fDecNumber);}
-
- /** get the number of digits in the decimal number */
- int32_t digits() const {return fDecNumber->digits;}
-
- /**
- * Round the number to the given number of digits.
- * @param maximumDigits The maximum number of digits to be shown.
- * Upon return, count will be less than or equal to maximumDigits.
- * result is guaranteed to be trimmed.
- */
- void round(int32_t maximumDigits);
-
- void roundFixedPoint(int32_t maximumFractionDigits);
-
- /** Ensure capacity for digits. Grow the storage if it is currently less than
- * the requested size. Capacity is not reduced if it is already greater
- * than requested.
- */
- void ensureCapacity(int32_t requestedSize, UErrorCode &status);
-
- UBool isPositive(void) const { return decNumberIsNegative(fDecNumber) == 0;}
- void setPositive(UBool s);
-
- void setDecimalAt(int32_t d);
- int32_t getDecimalAt();
-
- void setCount(int32_t c);
- int32_t getCount() const;
-
- /**
- * Set the digit in platform (invariant) format, from '0'..'9'
- * @param i index of digit
- * @param v digit value, from '0' to '9' in platform invariant format
- */
- void setDigit(int32_t i, char v);
-
- /**
- * Get the digit in platform (invariant) format, from '0'..'9' inclusive
- * @param i index of digit
- * @return invariant format of the digit
- */
- char getDigit(int32_t i);
-
-
- /**
- * Get the digit's value, as an integer from 0..9 inclusive.
- * Note that internally this value is a decNumberUnit, but ICU configures it to be a uint8_t.
- * @param i index of digit
- * @return value of that digit
- */
- uint8_t getDigitValue(int32_t i);
-
- /**
- * Gets the upper bound exponent for this value. For 987, returns 3
- * because 10^3 is the smallest power of 10 that is just greater than
- * 987.
- */
- int32_t getUpperExponent() const;
-
- /**
- * Gets the lower bound exponent for this value. For 98.7, returns -1
- * because the right most digit, is the 10^-1 place.
- */
- int32_t getLowerExponent() const { return fDecNumber->exponent; }
-
- /**
- * Sets result to the smallest DigitInterval needed to display this
- * DigitList in fixed point form and returns result.
- */
- DigitInterval& getSmallestInterval(DigitInterval &result) const;
-
- /**
- * Like getDigitValue, but the digit is identified by exponent.
- * For example, getDigitByExponent(7) returns the 10^7 place of this
- * DigitList. Unlike getDigitValue, there are no upper or lower bounds
- * for passed parameter. Instead, getDigitByExponent returns 0 if
- * the exponent falls outside the interval for this DigitList.
- */
- uint8_t getDigitByExponent(int32_t exponent) const;
-
- /**
- * Appends the digits in this object to a CharString.
- * 3 is appended as (char) 3, not '3'
- */
- void appendDigitsTo(CharString &str, UErrorCode &status) const;
-
- /**
- * Equivalent to roundFixedPoint(-digitExponent) except unlike
- * roundFixedPoint, this works for any digitExponent value.
- * If maxSigDigits is set then this instance is rounded to have no more
- * than maxSigDigits. The end result is guaranteed to be trimmed.
- */
- void roundAtExponent(int32_t digitExponent, int32_t maxSigDigits=INT32_MAX);
-
- /**
- * Quantizes according to some amount and rounds according to the
- * context of this instance. Quantizing 3.233 with 0.05 gives 3.25.
- */
- void quantize(const DigitList &amount, UErrorCode &status);
-
- /**
- * Like toScientific but only returns the exponent
- * leaving this instance unchanged.
- */
- int32_t getScientificExponent(
- int32_t minIntDigitCount, int32_t exponentMultiplier) const;
-
- /**
- * Converts this instance to scientific notation. This instance
- * becomes the mantissa and the exponent is returned.
- * @param minIntDigitCount minimum integer digits in mantissa
- * Exponent is set so that the actual number of integer digits
- * in mantissa is as close to the minimum as possible.
- * @param exponentMultiplier The exponent is always a multiple of
- * This number. Usually 1, but set to 3 for engineering notation.
- * @return exponent
- */
- int32_t toScientific(
- int32_t minIntDigitCount, int32_t exponentMultiplier);
-
- /**
- * Shifts decimal to the right.
- */
- void shiftDecimalRight(int32_t numPlaces);
-
-private:
- /*
- * These data members are intentionally public and can be set directly.
- *<P>
- * The value represented is given by placing the decimal point before
- * fDigits[fDecimalAt]. If fDecimalAt is < 0, then leading zeros between
- * the decimal point and the first nonzero digit are implied. If fDecimalAt
- * is > fCount, then trailing zeros between the fDigits[fCount-1] and the
- * decimal point are implied.
- * <P>
- * Equivalently, the represented value is given by f * 10^fDecimalAt. Here
- * f is a value 0.1 <= f < 1 arrived at by placing the digits in fDigits to
- * the right of the decimal.
- * <P>
- * DigitList is normalized, so if it is non-zero, fDigits[0] is non-zero. We
- * don't allow denormalized numbers because our exponent is effectively of
- * unlimited magnitude. The fCount value contains the number of significant
- * digits present in fDigits[].
- * <P>
- * Zero is represented by any DigitList with fCount == 0 or with each fDigits[i]
- * for all i <= fCount == '0'.
- *
- * int32_t fDecimalAt;
- * int32_t fCount;
- * UBool fIsPositive;
- * char *fDigits;
- * DecimalFormat::ERoundingMode fRoundingMode;
- */
-
-public:
- decContext fContext; // public access to status flags.
-
-private:
- decNumber *fDecNumber;
- MaybeStackHeaderAndArray<decNumber, char, DEFAULT_DIGITS> fStorage;
-
- /* Cached double value corresponding to this decimal number.
- * This is an optimization for the formatting implementation, which may
- * ask for the double value multiple times.
- */
- union DoubleOrInt64 {
- double fDouble;
- int64_t fInt64;
- } fUnion;
- enum EHave {
- kNone=0,
- kDouble
- } fHave;
-
-
-
- UBool shouldRoundUp(int32_t maximumDigits) const;
-
- public:
-
-#if U_OVERRIDE_CXX_ALLOCATION
- using UMemory::operator new;
- using UMemory::operator delete;
-#else
- static inline void * U_EXPORT2 operator new(size_t size) U_NO_THROW { return ::operator new(size); };
- static inline void U_EXPORT2 operator delete(void *ptr ) U_NO_THROW { ::operator delete(ptr); };
-#endif
-
- static double U_EXPORT2 decimalStrToDouble(char *decstr, char **end);
-
- /**
- * Placement new for stack usage
- * @internal
- */
- static inline void * U_EXPORT2 operator new(size_t /*size*/, void * onStack, EStackMode /*mode*/) U_NO_THROW { return onStack; }
-
- /**
- * Placement delete for stack usage
- * @internal
- */
- static inline void U_EXPORT2 operator delete(void * /*ptr*/, void * /*onStack*/, EStackMode /*mode*/) U_NO_THROW {}
-
- private:
- inline void internalSetDouble(double d) {
- fHave = kDouble;
- fUnion.fDouble=d;
- }
- inline void internalClear() {
- fHave = kNone;
- }
-};
-
-
-U_NAMESPACE_END
-
-#endif // #if !UCONFIG_NO_FORMATTING
-#endif // _DIGITLST
-
-//eof
diff --git a/Build/source/libs/icu/icu-src/source/i18n/double-conversion-strtod.cpp b/Build/source/libs/icu/icu-src/source/i18n/double-conversion-strtod.cpp
new file mode 100644
index 00000000000..be9b0b3bce0
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/double-conversion-strtod.cpp
@@ -0,0 +1,574 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+//
+// From the double-conversion library. Original license:
+//
+// Copyright 2010 the V8 project authors. All rights reserved.
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided
+// with the distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived
+// from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// ICU PATCH: ifdef around UCONFIG_NO_FORMATTING
+#include "unicode/utypes.h"
+#if !UCONFIG_NO_FORMATTING
+
+#include <stdarg.h>
+#include <limits.h>
+
+// ICU PATCH: Customize header file paths for ICU.
+// The file fixed-dtoa.h is not needed.
+
+#include "double-conversion-strtod.h"
+#include "double-conversion-bignum.h"
+#include "double-conversion-cached-powers.h"
+#include "double-conversion-ieee.h"
+
+// ICU PATCH: Wrap in ICU namespace
+U_NAMESPACE_BEGIN
+
+namespace double_conversion {
+
+// 2^53 = 9007199254740992.
+// Any integer with at most 15 decimal digits will hence fit into a double
+// (which has a 53bit significand) without loss of precision.
+static const int kMaxExactDoubleIntegerDecimalDigits = 15;
+// 2^64 = 18446744073709551616 > 10^19
+static const int kMaxUint64DecimalDigits = 19;
+
+// Max double: 1.7976931348623157 x 10^308
+// Min non-zero double: 4.9406564584124654 x 10^-324
+// Any x >= 10^309 is interpreted as +infinity.
+// Any x <= 10^-324 is interpreted as 0.
+// Note that 2.5e-324 (despite being smaller than the min double) will be read
+// as non-zero (equal to the min non-zero double).
+static const int kMaxDecimalPower = 309;
+static const int kMinDecimalPower = -324;
+
+// 2^64 = 18446744073709551616
+static const uint64_t kMaxUint64 = UINT64_2PART_C(0xFFFFFFFF, FFFFFFFF);
+
+
+static const double exact_powers_of_ten[] = {
+ 1.0, // 10^0
+ 10.0,
+ 100.0,
+ 1000.0,
+ 10000.0,
+ 100000.0,
+ 1000000.0,
+ 10000000.0,
+ 100000000.0,
+ 1000000000.0,
+ 10000000000.0, // 10^10
+ 100000000000.0,
+ 1000000000000.0,
+ 10000000000000.0,
+ 100000000000000.0,
+ 1000000000000000.0,
+ 10000000000000000.0,
+ 100000000000000000.0,
+ 1000000000000000000.0,
+ 10000000000000000000.0,
+ 100000000000000000000.0, // 10^20
+ 1000000000000000000000.0,
+ // 10^22 = 0x21e19e0c9bab2400000 = 0x878678326eac9 * 2^22
+ 10000000000000000000000.0
+};
+static const int kExactPowersOfTenSize = ARRAY_SIZE(exact_powers_of_ten);
+
+// Maximum number of significant digits in the decimal representation.
+// In fact the value is 772 (see conversions.cc), but to give us some margin
+// we round up to 780.
+static const int kMaxSignificantDecimalDigits = 780;
+
+static Vector<const char> TrimLeadingZeros(Vector<const char> buffer) {
+ for (int i = 0; i < buffer.length(); i++) {
+ if (buffer[i] != '0') {
+ return buffer.SubVector(i, buffer.length());
+ }
+ }
+ return Vector<const char>(buffer.start(), 0);
+}
+
+
+static Vector<const char> TrimTrailingZeros(Vector<const char> buffer) {
+ for (int i = buffer.length() - 1; i >= 0; --i) {
+ if (buffer[i] != '0') {
+ return buffer.SubVector(0, i + 1);
+ }
+ }
+ return Vector<const char>(buffer.start(), 0);
+}
+
+
+static void CutToMaxSignificantDigits(Vector<const char> buffer,
+ int exponent,
+ char* significant_buffer,
+ int* significant_exponent) {
+ for (int i = 0; i < kMaxSignificantDecimalDigits - 1; ++i) {
+ significant_buffer[i] = buffer[i];
+ }
+ // The input buffer has been trimmed. Therefore the last digit must be
+ // different from '0'.
+ ASSERT(buffer[buffer.length() - 1] != '0');
+ // Set the last digit to be non-zero. This is sufficient to guarantee
+ // correct rounding.
+ significant_buffer[kMaxSignificantDecimalDigits - 1] = '1';
+ *significant_exponent =
+ exponent + (buffer.length() - kMaxSignificantDecimalDigits);
+}
+
+
+// Trims the buffer and cuts it to at most kMaxSignificantDecimalDigits.
+// If possible the input-buffer is reused, but if the buffer needs to be
+// modified (due to cutting), then the input needs to be copied into the
+// buffer_copy_space.
+static void TrimAndCut(Vector<const char> buffer, int exponent,
+ char* buffer_copy_space, int space_size,
+ Vector<const char>* trimmed, int* updated_exponent) {
+ Vector<const char> left_trimmed = TrimLeadingZeros(buffer);
+ Vector<const char> right_trimmed = TrimTrailingZeros(left_trimmed);
+ exponent += left_trimmed.length() - right_trimmed.length();
+ if (right_trimmed.length() > kMaxSignificantDecimalDigits) {
+ (void) space_size; // Mark variable as used.
+ ASSERT(space_size >= kMaxSignificantDecimalDigits);
+ CutToMaxSignificantDigits(right_trimmed, exponent,
+ buffer_copy_space, updated_exponent);
+ *trimmed = Vector<const char>(buffer_copy_space,
+ kMaxSignificantDecimalDigits);
+ } else {
+ *trimmed = right_trimmed;
+ *updated_exponent = exponent;
+ }
+}
+
+
+// Reads digits from the buffer and converts them to a uint64.
+// Reads in as many digits as fit into a uint64.
+// When the string starts with "1844674407370955161" no further digit is read.
+// Since 2^64 = 18446744073709551616 it would still be possible read another
+// digit if it was less or equal than 6, but this would complicate the code.
+static uint64_t ReadUint64(Vector<const char> buffer,
+ int* number_of_read_digits) {
+ uint64_t result = 0;
+ int i = 0;
+ while (i < buffer.length() && result <= (kMaxUint64 / 10 - 1)) {
+ int digit = buffer[i++] - '0';
+ ASSERT(0 <= digit && digit <= 9);
+ result = 10 * result + digit;
+ }
+ *number_of_read_digits = i;
+ return result;
+}
+
+
+// Reads a DiyFp from the buffer.
+// The returned DiyFp is not necessarily normalized.
+// If remaining_decimals is zero then the returned DiyFp is accurate.
+// Otherwise it has been rounded and has error of at most 1/2 ulp.
+static void ReadDiyFp(Vector<const char> buffer,
+ DiyFp* result,
+ int* remaining_decimals) {
+ int read_digits;
+ uint64_t significand = ReadUint64(buffer, &read_digits);
+ if (buffer.length() == read_digits) {
+ *result = DiyFp(significand, 0);
+ *remaining_decimals = 0;
+ } else {
+ // Round the significand.
+ if (buffer[read_digits] >= '5') {
+ significand++;
+ }
+ // Compute the binary exponent.
+ int exponent = 0;
+ *result = DiyFp(significand, exponent);
+ *remaining_decimals = buffer.length() - read_digits;
+ }
+}
+
+
+static bool DoubleStrtod(Vector<const char> trimmed,
+ int exponent,
+ double* result) {
+#if !defined(DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS)
+ // On x86 the floating-point stack can be 64 or 80 bits wide. If it is
+ // 80 bits wide (as is the case on Linux) then double-rounding occurs and the
+ // result is not accurate.
+ // We know that Windows32 uses 64 bits and is therefore accurate.
+ // Note that the ARM simulator is compiled for 32bits. It therefore exhibits
+ // the same problem.
+ return false;
+#endif
+ if (trimmed.length() <= kMaxExactDoubleIntegerDecimalDigits) {
+ int read_digits;
+ // The trimmed input fits into a double.
+ // If the 10^exponent (resp. 10^-exponent) fits into a double too then we
+ // can compute the result-double simply by multiplying (resp. dividing) the
+ // two numbers.
+ // This is possible because IEEE guarantees that floating-point operations
+ // return the best possible approximation.
+ if (exponent < 0 && -exponent < kExactPowersOfTenSize) {
+ // 10^-exponent fits into a double.
+ *result = static_cast<double>(ReadUint64(trimmed, &read_digits));
+ ASSERT(read_digits == trimmed.length());
+ *result /= exact_powers_of_ten[-exponent];
+ return true;
+ }
+ if (0 <= exponent && exponent < kExactPowersOfTenSize) {
+ // 10^exponent fits into a double.
+ *result = static_cast<double>(ReadUint64(trimmed, &read_digits));
+ ASSERT(read_digits == trimmed.length());
+ *result *= exact_powers_of_ten[exponent];
+ return true;
+ }
+ int remaining_digits =
+ kMaxExactDoubleIntegerDecimalDigits - trimmed.length();
+ if ((0 <= exponent) &&
+ (exponent - remaining_digits < kExactPowersOfTenSize)) {
+ // The trimmed string was short and we can multiply it with
+ // 10^remaining_digits. As a result the remaining exponent now fits
+ // into a double too.
+ *result = static_cast<double>(ReadUint64(trimmed, &read_digits));
+ ASSERT(read_digits == trimmed.length());
+ *result *= exact_powers_of_ten[remaining_digits];
+ *result *= exact_powers_of_ten[exponent - remaining_digits];
+ return true;
+ }
+ }
+ return false;
+}
+
+
+// Returns 10^exponent as an exact DiyFp.
+// The given exponent must be in the range [1; kDecimalExponentDistance[.
+static DiyFp AdjustmentPowerOfTen(int exponent) {
+ ASSERT(0 < exponent);
+ ASSERT(exponent < PowersOfTenCache::kDecimalExponentDistance);
+ // Simply hardcode the remaining powers for the given decimal exponent
+ // distance.
+ ASSERT(PowersOfTenCache::kDecimalExponentDistance == 8);
+ switch (exponent) {
+ case 1: return DiyFp(UINT64_2PART_C(0xa0000000, 00000000), -60);
+ case 2: return DiyFp(UINT64_2PART_C(0xc8000000, 00000000), -57);
+ case 3: return DiyFp(UINT64_2PART_C(0xfa000000, 00000000), -54);
+ case 4: return DiyFp(UINT64_2PART_C(0x9c400000, 00000000), -50);
+ case 5: return DiyFp(UINT64_2PART_C(0xc3500000, 00000000), -47);
+ case 6: return DiyFp(UINT64_2PART_C(0xf4240000, 00000000), -44);
+ case 7: return DiyFp(UINT64_2PART_C(0x98968000, 00000000), -40);
+ default:
+ UNREACHABLE();
+ }
+}
+
+
+// If the function returns true then the result is the correct double.
+// Otherwise it is either the correct double or the double that is just below
+// the correct double.
+static bool DiyFpStrtod(Vector<const char> buffer,
+ int exponent,
+ double* result) {
+ DiyFp input;
+ int remaining_decimals;
+ ReadDiyFp(buffer, &input, &remaining_decimals);
+ // Since we may have dropped some digits the input is not accurate.
+ // If remaining_decimals is different than 0 than the error is at most
+ // .5 ulp (unit in the last place).
+ // We don't want to deal with fractions and therefore keep a common
+ // denominator.
+ const int kDenominatorLog = 3;
+ const int kDenominator = 1 << kDenominatorLog;
+ // Move the remaining decimals into the exponent.
+ exponent += remaining_decimals;
+ uint64_t error = (remaining_decimals == 0 ? 0 : kDenominator / 2);
+
+ int old_e = input.e();
+ input.Normalize();
+ error <<= old_e - input.e();
+
+ ASSERT(exponent <= PowersOfTenCache::kMaxDecimalExponent);
+ if (exponent < PowersOfTenCache::kMinDecimalExponent) {
+ *result = 0.0;
+ return true;
+ }
+ DiyFp cached_power;
+ int cached_decimal_exponent;
+ PowersOfTenCache::GetCachedPowerForDecimalExponent(exponent,
+ &cached_power,
+ &cached_decimal_exponent);
+
+ if (cached_decimal_exponent != exponent) {
+ int adjustment_exponent = exponent - cached_decimal_exponent;
+ DiyFp adjustment_power = AdjustmentPowerOfTen(adjustment_exponent);
+ input.Multiply(adjustment_power);
+ if (kMaxUint64DecimalDigits - buffer.length() >= adjustment_exponent) {
+ // The product of input with the adjustment power fits into a 64 bit
+ // integer.
+ ASSERT(DiyFp::kSignificandSize == 64);
+ } else {
+ // The adjustment power is exact. There is hence only an error of 0.5.
+ error += kDenominator / 2;
+ }
+ }
+
+ input.Multiply(cached_power);
+ // The error introduced by a multiplication of a*b equals
+ // error_a + error_b + error_a*error_b/2^64 + 0.5
+ // Substituting a with 'input' and b with 'cached_power' we have
+ // error_b = 0.5 (all cached powers have an error of less than 0.5 ulp),
+ // error_ab = 0 or 1 / kDenominator > error_a*error_b/ 2^64
+ int error_b = kDenominator / 2;
+ int error_ab = (error == 0 ? 0 : 1); // We round up to 1.
+ int fixed_error = kDenominator / 2;
+ error += error_b + error_ab + fixed_error;
+
+ old_e = input.e();
+ input.Normalize();
+ error <<= old_e - input.e();
+
+ // See if the double's significand changes if we add/subtract the error.
+ int order_of_magnitude = DiyFp::kSignificandSize + input.e();
+ int effective_significand_size =
+ Double::SignificandSizeForOrderOfMagnitude(order_of_magnitude);
+ int precision_digits_count =
+ DiyFp::kSignificandSize - effective_significand_size;
+ if (precision_digits_count + kDenominatorLog >= DiyFp::kSignificandSize) {
+ // This can only happen for very small denormals. In this case the
+ // half-way multiplied by the denominator exceeds the range of an uint64.
+ // Simply shift everything to the right.
+ int shift_amount = (precision_digits_count + kDenominatorLog) -
+ DiyFp::kSignificandSize + 1;
+ input.set_f(input.f() >> shift_amount);
+ input.set_e(input.e() + shift_amount);
+ // We add 1 for the lost precision of error, and kDenominator for
+ // the lost precision of input.f().
+ error = (error >> shift_amount) + 1 + kDenominator;
+ precision_digits_count -= shift_amount;
+ }
+ // We use uint64_ts now. This only works if the DiyFp uses uint64_ts too.
+ ASSERT(DiyFp::kSignificandSize == 64);
+ ASSERT(precision_digits_count < 64);
+ uint64_t one64 = 1;
+ uint64_t precision_bits_mask = (one64 << precision_digits_count) - 1;
+ uint64_t precision_bits = input.f() & precision_bits_mask;
+ uint64_t half_way = one64 << (precision_digits_count - 1);
+ precision_bits *= kDenominator;
+ half_way *= kDenominator;
+ DiyFp rounded_input(input.f() >> precision_digits_count,
+ input.e() + precision_digits_count);
+ if (precision_bits >= half_way + error) {
+ rounded_input.set_f(rounded_input.f() + 1);
+ }
+ // If the last_bits are too close to the half-way case than we are too
+ // inaccurate and round down. In this case we return false so that we can
+ // fall back to a more precise algorithm.
+
+ *result = Double(rounded_input).value();
+ if (half_way - error < precision_bits && precision_bits < half_way + error) {
+ // Too imprecise. The caller will have to fall back to a slower version.
+ // However the returned number is guaranteed to be either the correct
+ // double, or the next-lower double.
+ return false;
+ } else {
+ return true;
+ }
+}
+
+
+// Returns
+// - -1 if buffer*10^exponent < diy_fp.
+// - 0 if buffer*10^exponent == diy_fp.
+// - +1 if buffer*10^exponent > diy_fp.
+// Preconditions:
+// buffer.length() + exponent <= kMaxDecimalPower + 1
+// buffer.length() + exponent > kMinDecimalPower
+// buffer.length() <= kMaxDecimalSignificantDigits
+static int CompareBufferWithDiyFp(Vector<const char> buffer,
+ int exponent,
+ DiyFp diy_fp) {
+ ASSERT(buffer.length() + exponent <= kMaxDecimalPower + 1);
+ ASSERT(buffer.length() + exponent > kMinDecimalPower);
+ ASSERT(buffer.length() <= kMaxSignificantDecimalDigits);
+ // Make sure that the Bignum will be able to hold all our numbers.
+ // Our Bignum implementation has a separate field for exponents. Shifts will
+ // consume at most one bigit (< 64 bits).
+ // ln(10) == 3.3219...
+ ASSERT(((kMaxDecimalPower + 1) * 333 / 100) < Bignum::kMaxSignificantBits);
+ Bignum buffer_bignum;
+ Bignum diy_fp_bignum;
+ buffer_bignum.AssignDecimalString(buffer);
+ diy_fp_bignum.AssignUInt64(diy_fp.f());
+ if (exponent >= 0) {
+ buffer_bignum.MultiplyByPowerOfTen(exponent);
+ } else {
+ diy_fp_bignum.MultiplyByPowerOfTen(-exponent);
+ }
+ if (diy_fp.e() > 0) {
+ diy_fp_bignum.ShiftLeft(diy_fp.e());
+ } else {
+ buffer_bignum.ShiftLeft(-diy_fp.e());
+ }
+ return Bignum::Compare(buffer_bignum, diy_fp_bignum);
+}
+
+
+// Returns true if the guess is the correct double.
+// Returns false, when guess is either correct or the next-lower double.
+static bool ComputeGuess(Vector<const char> trimmed, int exponent,
+ double* guess) {
+ if (trimmed.length() == 0) {
+ *guess = 0.0;
+ return true;
+ }
+ if (exponent + trimmed.length() - 1 >= kMaxDecimalPower) {
+ *guess = Double::Infinity();
+ return true;
+ }
+ if (exponent + trimmed.length() <= kMinDecimalPower) {
+ *guess = 0.0;
+ return true;
+ }
+
+ if (DoubleStrtod(trimmed, exponent, guess) ||
+ DiyFpStrtod(trimmed, exponent, guess)) {
+ return true;
+ }
+ if (*guess == Double::Infinity()) {
+ return true;
+ }
+ return false;
+}
+
+double Strtod(Vector<const char> buffer, int exponent) {
+ char copy_buffer[kMaxSignificantDecimalDigits];
+ Vector<const char> trimmed;
+ int updated_exponent;
+ TrimAndCut(buffer, exponent, copy_buffer, kMaxSignificantDecimalDigits,
+ &trimmed, &updated_exponent);
+ exponent = updated_exponent;
+
+ double guess;
+ bool is_correct = ComputeGuess(trimmed, exponent, &guess);
+ if (is_correct) return guess;
+
+ DiyFp upper_boundary = Double(guess).UpperBoundary();
+ int comparison = CompareBufferWithDiyFp(trimmed, exponent, upper_boundary);
+ if (comparison < 0) {
+ return guess;
+ } else if (comparison > 0) {
+ return Double(guess).NextDouble();
+ } else if ((Double(guess).Significand() & 1) == 0) {
+ // Round towards even.
+ return guess;
+ } else {
+ return Double(guess).NextDouble();
+ }
+}
+
+float Strtof(Vector<const char> buffer, int exponent) {
+ char copy_buffer[kMaxSignificantDecimalDigits];
+ Vector<const char> trimmed;
+ int updated_exponent;
+ TrimAndCut(buffer, exponent, copy_buffer, kMaxSignificantDecimalDigits,
+ &trimmed, &updated_exponent);
+ exponent = updated_exponent;
+
+ double double_guess;
+ bool is_correct = ComputeGuess(trimmed, exponent, &double_guess);
+
+ float float_guess = static_cast<float>(double_guess);
+ if (float_guess == double_guess) {
+ // This shortcut triggers for integer values.
+ return float_guess;
+ }
+
+ // We must catch double-rounding. Say the double has been rounded up, and is
+ // now a boundary of a float, and rounds up again. This is why we have to
+ // look at previous too.
+ // Example (in decimal numbers):
+ // input: 12349
+ // high-precision (4 digits): 1235
+ // low-precision (3 digits):
+ // when read from input: 123
+ // when rounded from high precision: 124.
+ // To do this we simply look at the neigbors of the correct result and see
+ // if they would round to the same float. If the guess is not correct we have
+ // to look at four values (since two different doubles could be the correct
+ // double).
+
+ double double_next = Double(double_guess).NextDouble();
+ double double_previous = Double(double_guess).PreviousDouble();
+
+ float f1 = static_cast<float>(double_previous);
+ float f2 = float_guess;
+ float f3 = static_cast<float>(double_next);
+ float f4;
+ if (is_correct) {
+ f4 = f3;
+ } else {
+ double double_next2 = Double(double_next).NextDouble();
+ f4 = static_cast<float>(double_next2);
+ }
+ (void) f2; // Mark variable as used.
+ ASSERT(f1 <= f2 && f2 <= f3 && f3 <= f4);
+
+ // If the guess doesn't lie near a single-precision boundary we can simply
+ // return its float-value.
+ if (f1 == f4) {
+ return float_guess;
+ }
+
+ ASSERT((f1 != f2 && f2 == f3 && f3 == f4) ||
+ (f1 == f2 && f2 != f3 && f3 == f4) ||
+ (f1 == f2 && f2 == f3 && f3 != f4));
+
+ // guess and next are the two possible canditates (in the same way that
+ // double_guess was the lower candidate for a double-precision guess).
+ float guess = f1;
+ float next = f4;
+ DiyFp upper_boundary;
+ if (guess == 0.0f) {
+ float min_float = 1e-45f;
+ upper_boundary = Double(static_cast<double>(min_float) / 2).AsDiyFp();
+ } else {
+ upper_boundary = Single(guess).UpperBoundary();
+ }
+ int comparison = CompareBufferWithDiyFp(trimmed, exponent, upper_boundary);
+ if (comparison < 0) {
+ return guess;
+ } else if (comparison > 0) {
+ return next;
+ } else if ((Single(guess).Significand() & 1) == 0) {
+ // Round towards even.
+ return guess;
+ } else {
+ return next;
+ }
+}
+
+} // namespace double_conversion
+
+// ICU PATCH: Close ICU namespace
+U_NAMESPACE_END
+#endif // ICU PATCH: close #if !UCONFIG_NO_FORMATTING
diff --git a/Build/source/libs/icu/icu-src/source/i18n/double-conversion-strtod.h b/Build/source/libs/icu/icu-src/source/i18n/double-conversion-strtod.h
new file mode 100644
index 00000000000..e2d6d3c2fe5
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/double-conversion-strtod.h
@@ -0,0 +1,63 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+//
+// From the double-conversion library. Original license:
+//
+// Copyright 2010 the V8 project authors. All rights reserved.
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided
+// with the distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived
+// from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// ICU PATCH: ifdef around UCONFIG_NO_FORMATTING
+#include "unicode/utypes.h"
+#if !UCONFIG_NO_FORMATTING
+
+#ifndef DOUBLE_CONVERSION_STRTOD_H_
+#define DOUBLE_CONVERSION_STRTOD_H_
+
+// ICU PATCH: Customize header file paths for ICU.
+
+#include "double-conversion-utils.h"
+
+// ICU PATCH: Wrap in ICU namespace
+U_NAMESPACE_BEGIN
+
+namespace double_conversion {
+
+// The buffer must only contain digits in the range [0-9]. It must not
+// contain a dot or a sign. It must not start with '0', and must not be empty.
+double Strtod(Vector<const char> buffer, int exponent);
+
+// The buffer must only contain digits in the range [0-9]. It must not
+// contain a dot or a sign. It must not start with '0', and must not be empty.
+float Strtof(Vector<const char> buffer, int exponent);
+
+} // namespace double_conversion
+
+// ICU PATCH: Close ICU namespace
+U_NAMESPACE_END
+
+#endif // DOUBLE_CONVERSION_STRTOD_H_
+#endif // ICU PATCH: close #if !UCONFIG_NO_FORMATTING
diff --git a/Build/source/libs/icu/icu-src/source/i18n/double-conversion-utils.h b/Build/source/libs/icu/icu-src/source/i18n/double-conversion-utils.h
index 02795b4bc56..57fc49b231a 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/double-conversion-utils.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/double-conversion-utils.h
@@ -75,9 +75,9 @@ inline void abort_noreturn() { abort(); }
// the output of the division with the expected result. (Inlining must be
// disabled.)
// On Linux,x86 89255e-22 != Div_double(89255.0/1e22)
-// ICU PATCH: Enable ARM builds for Windows with 'defined(_M_ARM)'.
+// ICU PATCH: Enable ARM32 & ARM64 builds for Windows with 'defined(_M_ARM) || defined(_M_ARM64)'.
#if defined(_M_X64) || defined(__x86_64__) || \
- defined(__ARMEL__) || defined(__avr32__) || defined(_M_ARM) || \
+ defined(__ARMEL__) || defined(__avr32__) || defined(_M_ARM) || defined(_M_ARM64) || \
defined(__hppa__) || defined(__ia64__) || \
defined(__mips__) || \
defined(__powerpc__) || defined(__ppc__) || defined(__ppc64__) || \
diff --git a/Build/source/libs/icu/icu-src/source/i18n/double-conversion.cpp b/Build/source/libs/icu/icu-src/source/i18n/double-conversion.cpp
index 8629284aa0e..570a05bc429 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/double-conversion.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/double-conversion.cpp
@@ -38,13 +38,14 @@
#include <math.h>
// ICU PATCH: Customize header file paths for ICU.
-// The files fixed-dtoa.h and strtod.h are not needed.
+// The file fixed-dtoa.h is not needed.
#include "double-conversion.h"
#include "double-conversion-bignum-dtoa.h"
#include "double-conversion-fast-dtoa.h"
#include "double-conversion-ieee.h"
+#include "double-conversion-strtod.h"
#include "double-conversion-utils.h"
// ICU PATCH: Wrap in ICU namespace
@@ -431,7 +432,6 @@ void DoubleToStringConverter::DoubleToAscii(double v,
}
-#if 0 // not needed for ICU
// Consumes the given substring from the iterator.
// Returns false, if the substring does not match.
template <class Iterator>
@@ -469,6 +469,7 @@ static const uc16 kWhitespaceTable16[] = {
static const int kWhitespaceTable16Length = ARRAY_SIZE(kWhitespaceTable16);
+
static bool isWhitespace(int x) {
if (x < 128) {
for (int i = 0; i < kWhitespaceTable7Length; i++) {
@@ -647,7 +648,6 @@ static double RadixStringToIeee(Iterator* current,
return Double(DiyFp(number, exponent)).value();
}
-
template <class Iterator>
double StringToDoubleConverter::StringToIeee(
Iterator input,
@@ -996,7 +996,6 @@ float StringToDoubleConverter::StringToFloat(
return static_cast<float>(StringToIeee(buffer, length, false,
processed_characters_count));
}
-#endif // not needed for ICU
} // namespace double_conversion
diff --git a/Build/source/libs/icu/icu-src/source/i18n/double-conversion.h b/Build/source/libs/icu/icu-src/source/i18n/double-conversion.h
index 0939412734a..200537a360a 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/double-conversion.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/double-conversion.h
@@ -391,6 +391,7 @@ class DoubleToStringConverter {
const int decimal_in_shortest_high_;
const int max_leading_padding_zeroes_in_precision_mode_;
const int max_trailing_padding_zeroes_in_precision_mode_;
+#endif // not needed for ICU
DISALLOW_IMPLICIT_CONSTRUCTORS(DoubleToStringConverter);
};
@@ -554,7 +555,6 @@ class StringToDoubleConverter {
int* processed_characters_count) const;
DISALLOW_IMPLICIT_CONSTRUCTORS(StringToDoubleConverter);
-#endif // not needed for ICU
};
} // namespace double_conversion
diff --git a/Build/source/libs/icu/icu-src/source/i18n/dtfmtsym.cpp b/Build/source/libs/icu/icu-src/source/i18n/dtfmtsym.cpp
index 455a8e1ee41..ab61cf42362 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/dtfmtsym.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/dtfmtsym.cpp
@@ -1311,7 +1311,7 @@ DateFormatSymbols::initZoneStringsArray(void) {
UDate now = Calendar::getNow();
UnicodeString tzDispName;
- while ((tzid = tzids->snext(status))) {
+ while ((tzid = tzids->snext(status)) != 0) {
if (U_FAILURE(status)) {
break;
}
@@ -2224,8 +2224,8 @@ DateFormatSymbols::initializeData(const Locale& locale, const char *type, UError
++typeMapPtr;
}
if (typeMapPtr->usageTypeName != NULL && compResult == 0) {
- fCapitalization[typeMapPtr->usageTypeEnumValue][0] = intVector[0];
- fCapitalization[typeMapPtr->usageTypeEnumValue][1] = intVector[1];
+ fCapitalization[typeMapPtr->usageTypeEnumValue][0] = static_cast<UBool>(intVector[0]);
+ fCapitalization[typeMapPtr->usageTypeEnumValue][1] = static_cast<UBool>(intVector[1]);
}
}
}
diff --git a/Build/source/libs/icu/icu-src/source/i18n/dtitvfmt.cpp b/Build/source/libs/icu/icu-src/source/i18n/dtitvfmt.cpp
index 743b534fc8f..d952cbf509d 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/dtitvfmt.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/dtitvfmt.cpp
@@ -877,8 +877,7 @@ DateIntervalFormat::getDateTimeSkeleton(const UnicodeString& skeleton,
if ( MCount < 3 ) {
normalizedDateSkeleton.append(CAP_M);
} else {
- int32_t i;
- for ( i = 0; i < MCount && i < MAX_M_COUNT; ++i ) {
+ for ( int32_t j = 0; j < MCount && j < MAX_M_COUNT; ++j) {
normalizedDateSkeleton.append(CAP_M);
}
}
@@ -887,8 +886,7 @@ DateIntervalFormat::getDateTimeSkeleton(const UnicodeString& skeleton,
if ( ECount <= 3 ) {
normalizedDateSkeleton.append(CAP_E);
} else {
- int32_t i;
- for ( i = 0; i < ECount && i < MAX_E_COUNT; ++i ) {
+ for ( int32_t j = 0; j < ECount && j < MAX_E_COUNT; ++j ) {
normalizedDateSkeleton.append(CAP_E);
}
}
diff --git a/Build/source/libs/icu/icu-src/source/i18n/dtitvinf.cpp b/Build/source/libs/icu/icu-src/source/i18n/dtitvinf.cpp
index c863a683a5c..a289fc79c8d 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/dtitvinf.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/dtitvinf.cpp
@@ -594,7 +594,7 @@ DateIntervalInfo::getBestSkeleton(const UnicodeString& skeleton,
const UHashElement* elem = NULL;
while ( (elem = fIntervalPatterns->nextElement(pos)) != NULL ) {
const UHashTok keyTok = elem->key;
- UnicodeString* skeleton = (UnicodeString*)keyTok.pointer;
+ UnicodeString* newSkeleton = (UnicodeString*)keyTok.pointer;
#ifdef DTITVINF_DEBUG
skeleton->extract(0, skeleton->length(), result, "UTF-8");
sprintf(mesg, "available skeletons: skeleton: %s; \n", result);
@@ -606,7 +606,7 @@ DateIntervalInfo::getBestSkeleton(const UnicodeString& skeleton,
for ( i = 0; i < fieldLength; ++i ) {
skeletonFieldWidth[i] = 0;
}
- parseSkeleton(*skeleton, skeletonFieldWidth);
+ parseSkeleton(*newSkeleton, skeletonFieldWidth);
// calculate distance
int32_t distance = 0;
int8_t fieldDifference = 1;
@@ -632,7 +632,7 @@ DateIntervalInfo::getBestSkeleton(const UnicodeString& skeleton,
}
}
if ( distance < bestDistance ) {
- bestSkeleton = skeleton;
+ bestSkeleton = newSkeleton;
bestDistance = distance;
bestMatchDistanceInfo = fieldDifference;
}
diff --git a/Build/source/libs/icu/icu-src/source/i18n/dtptngen.cpp b/Build/source/libs/icu/icu-src/source/i18n/dtptngen.cpp
index aefd70464eb..d7b60d34c45 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/dtptngen.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/dtptngen.cpp
@@ -18,6 +18,7 @@
#include "unicode/decimfmt.h"
#include "unicode/dtfmtsym.h"
#include "unicode/dtptngen.h"
+#include "unicode/localpointer.h"
#include "unicode/simpleformatter.h"
#include "unicode/smpdtfmt.h"
#include "unicode/udat.h"
@@ -88,17 +89,17 @@ static void ures_a_open(UResourceBundleAIterator *aiter, UResourceBundle *bund,
aiter->num = ures_getSize(aiter->bund);
aiter->cursor = 0;
#if !defined(U_SORT_ASCII_BUNDLE_ITERATOR)
- aiter->entries = NULL;
+ aiter->entries = nullptr;
#else
aiter->entries = (UResAEntry*)uprv_malloc(sizeof(UResAEntry)*aiter->num);
for(int i=0;i<aiter->num;i++) {
- aiter->entries[i].item = ures_getByIndex(aiter->bund, i, NULL, status);
+ aiter->entries[i].item = ures_getByIndex(aiter->bund, i, nullptr, status);
const char *akey = ures_getKey(aiter->entries[i].item);
int32_t len = uprv_strlen(akey)+1;
aiter->entries[i].key = (UChar*)uprv_malloc(len*sizeof(UChar));
u_charsToUChars(akey, aiter->entries[i].key, len);
}
- uprv_sortArray(aiter->entries, aiter->num, sizeof(UResAEntry), ures_a_codepointSort, NULL, TRUE, status);
+ uprv_sortArray(aiter->entries, aiter->num, sizeof(UResAEntry), ures_a_codepointSort, nullptr, TRUE, status);
#endif
}
@@ -115,7 +116,7 @@ static const UChar *ures_a_getNextString(UResourceBundleAIterator *aiter, int32_
#if !defined(U_SORT_ASCII_BUNDLE_ITERATOR)
return ures_getNextString(aiter->bund, len, key, err);
#else
- if(U_FAILURE(*err)) return NULL;
+ if(U_FAILURE(*err)) return nullptr;
UResourceBundle *item = aiter->entries[aiter->cursor].item;
const UChar* ret = ures_getString(item, len, err);
*key = ures_getKey(item);
@@ -302,49 +303,48 @@ DateTimePatternGenerator::createInstance(UErrorCode& status) {
DateTimePatternGenerator* U_EXPORT2
DateTimePatternGenerator::createInstance(const Locale& locale, UErrorCode& status) {
if (U_FAILURE(status)) {
- return NULL;
+ return nullptr;
}
LocalPointer<DateTimePatternGenerator> result(
new DateTimePatternGenerator(locale, status), status);
- return U_SUCCESS(status) ? result.orphan() : NULL;
+ return U_SUCCESS(status) ? result.orphan() : nullptr;
}
DateTimePatternGenerator* U_EXPORT2
DateTimePatternGenerator::createEmptyInstance(UErrorCode& status) {
- DateTimePatternGenerator *result = new DateTimePatternGenerator(status);
- if (result == NULL) {
- status = U_MEMORY_ALLOCATION_ERROR;
- }
if (U_FAILURE(status)) {
- delete result;
- result = NULL;
+ return nullptr;
}
- return result;
+ LocalPointer<DateTimePatternGenerator> result(
+ new DateTimePatternGenerator(status), status);
+ return U_SUCCESS(status) ? result.orphan() : nullptr;
}
DateTimePatternGenerator::DateTimePatternGenerator(UErrorCode &status) :
- skipMatcher(NULL),
- fAvailableFormatKeyHash(NULL)
+ skipMatcher(nullptr),
+ fAvailableFormatKeyHash(nullptr),
+ internalErrorCode(U_ZERO_ERROR)
{
fp = new FormatParser();
dtMatcher = new DateTimeMatcher();
distanceInfo = new DistanceInfo();
patternMap = new PatternMap();
- if (fp == NULL || dtMatcher == NULL || distanceInfo == NULL || patternMap == NULL) {
- status = U_MEMORY_ALLOCATION_ERROR;
+ if (fp == nullptr || dtMatcher == nullptr || distanceInfo == nullptr || patternMap == nullptr) {
+ internalErrorCode = status = U_MEMORY_ALLOCATION_ERROR;
}
}
DateTimePatternGenerator::DateTimePatternGenerator(const Locale& locale, UErrorCode &status) :
- skipMatcher(NULL),
- fAvailableFormatKeyHash(NULL)
+ skipMatcher(nullptr),
+ fAvailableFormatKeyHash(nullptr),
+ internalErrorCode(U_ZERO_ERROR)
{
fp = new FormatParser();
dtMatcher = new DateTimeMatcher();
distanceInfo = new DistanceInfo();
patternMap = new PatternMap();
- if (fp == NULL || dtMatcher == NULL || distanceInfo == NULL || patternMap == NULL) {
- status = U_MEMORY_ALLOCATION_ERROR;
+ if (fp == nullptr || dtMatcher == nullptr || distanceInfo == nullptr || patternMap == nullptr) {
+ internalErrorCode = status = U_MEMORY_ALLOCATION_ERROR;
}
else {
initData(locale, status);
@@ -353,13 +353,17 @@ DateTimePatternGenerator::DateTimePatternGenerator(const Locale& locale, UErrorC
DateTimePatternGenerator::DateTimePatternGenerator(const DateTimePatternGenerator& other) :
UObject(),
- skipMatcher(NULL),
- fAvailableFormatKeyHash(NULL)
+ skipMatcher(nullptr),
+ fAvailableFormatKeyHash(nullptr),
+ internalErrorCode(U_ZERO_ERROR)
{
fp = new FormatParser();
dtMatcher = new DateTimeMatcher();
distanceInfo = new DistanceInfo();
patternMap = new PatternMap();
+ if (fp == nullptr || dtMatcher == nullptr || distanceInfo == nullptr || patternMap == nullptr) {
+ internalErrorCode = U_MEMORY_ALLOCATION_ERROR;
+ }
*this=other;
}
@@ -369,6 +373,7 @@ DateTimePatternGenerator::operator=(const DateTimePatternGenerator& other) {
if (&other == this) {
return *this;
}
+ internalErrorCode = other.internalErrorCode;
pLocale = other.pLocale;
fDefaultHourFormatChar = other.fDefaultHourFormatChar;
*fp = *(other.fp);
@@ -380,11 +385,16 @@ DateTimePatternGenerator::operator=(const DateTimePatternGenerator& other) {
dateTimeFormat.getTerminatedBuffer();
decimal.getTerminatedBuffer();
delete skipMatcher;
- if ( other.skipMatcher == NULL ) {
- skipMatcher = NULL;
+ if ( other.skipMatcher == nullptr ) {
+ skipMatcher = nullptr;
}
else {
skipMatcher = new DateTimeMatcher(*other.skipMatcher);
+ if (skipMatcher == nullptr)
+ {
+ internalErrorCode = U_MEMORY_ALLOCATION_ERROR;
+ return *this;
+ }
}
for (int32_t i=0; i< UDATPG_FIELD_COUNT; ++i ) {
appendItemFormats[i] = other.appendItemFormats[i];
@@ -394,9 +404,8 @@ DateTimePatternGenerator::operator=(const DateTimePatternGenerator& other) {
fieldDisplayNames[i][j].getTerminatedBuffer(); // NUL-terminate for the C API.
}
}
- UErrorCode status = U_ZERO_ERROR;
- patternMap->copyFrom(*other.patternMap, status);
- copyHashtable(other.fAvailableFormatKeyHash, status);
+ patternMap->copyFrom(*other.patternMap, internalErrorCode);
+ copyHashtable(other.fAvailableFormatKeyHash, internalErrorCode);
return *this;
}
@@ -431,21 +440,21 @@ DateTimePatternGenerator::operator!=(const DateTimePatternGenerator& other) cons
}
DateTimePatternGenerator::~DateTimePatternGenerator() {
- if (fAvailableFormatKeyHash!=NULL) {
+ if (fAvailableFormatKeyHash!=nullptr) {
delete fAvailableFormatKeyHash;
}
- if (fp != NULL) delete fp;
- if (dtMatcher != NULL) delete dtMatcher;
- if (distanceInfo != NULL) delete distanceInfo;
- if (patternMap != NULL) delete patternMap;
- if (skipMatcher != NULL) delete skipMatcher;
+ if (fp != nullptr) delete fp;
+ if (dtMatcher != nullptr) delete dtMatcher;
+ if (distanceInfo != nullptr) delete distanceInfo;
+ if (patternMap != nullptr) delete patternMap;
+ if (skipMatcher != nullptr) delete skipMatcher;
}
namespace {
UInitOnce initOnce = U_INITONCE_INITIALIZER;
-UHashtable *localeToAllowedHourFormatsMap = NULL;
+UHashtable *localeToAllowedHourFormatsMap = nullptr;
// Value deleter for hashmap.
U_CFUNC void U_CALLCONV deleteAllowedHourFormats(void *ptr) {
@@ -474,8 +483,8 @@ void
DateTimePatternGenerator::initData(const Locale& locale, UErrorCode &status) {
//const char *baseLangName = locale.getBaseName(); // unused
- skipMatcher = NULL;
- fAvailableFormatKeyHash=NULL;
+ skipMatcher = nullptr;
+ fAvailableFormatKeyHash=nullptr;
addCanonicalItems(status);
addICUPatterns(locale, status);
addCLDRData(locale, status);
@@ -483,6 +492,8 @@ DateTimePatternGenerator::initData(const Locale& locale, UErrorCode &status) {
setDecimalSymbols(locale, status);
umtx_initOnce(initOnce, loadAllowedHourFormatsData, status);
getAllowedHourFormats(locale, status);
+ // If any of the above methods failed then the object is in an invalid state.
+ internalErrorCode = status;
} // DateTimePatternGenerator::initData
namespace {
@@ -505,7 +516,7 @@ struct AllowedHourFormatsSink : public ResourceSink {
LocalMemory<int32_t> list;
int32_t length;
if (value.getType() == URES_STRING) {
- if (list.allocateInsteadAndReset(2) == NULL) {
+ if (list.allocateInsteadAndReset(2) == nullptr) {
errorCode = U_MEMORY_ALLOCATION_ERROR;
return;
}
@@ -515,7 +526,7 @@ struct AllowedHourFormatsSink : public ResourceSink {
else {
ResourceArray allowedFormats = value.getArray(errorCode);
length = allowedFormats.getSize();
- if (list.allocateInsteadAndReset(length + 1) == NULL) {
+ if (list.allocateInsteadAndReset(length + 1) == nullptr) {
errorCode = U_MEMORY_ALLOCATION_ERROR;
return;
}
@@ -555,9 +566,14 @@ AllowedHourFormatsSink::~AllowedHourFormatsSink() {}
U_CFUNC void U_CALLCONV DateTimePatternGenerator::loadAllowedHourFormatsData(UErrorCode &status) {
if (U_FAILURE(status)) { return; }
localeToAllowedHourFormatsMap = uhash_open(
- uhash_hashChars, uhash_compareChars, NULL, &status);
+ uhash_hashChars, uhash_compareChars, nullptr, &status);
+ if (U_FAILURE(status)) { return; }
+
uhash_setValueDeleter(localeToAllowedHourFormatsMap, deleteAllowedHourFormats);
- LocalUResourceBundlePointer rb(ures_openDirect(NULL, "supplementalData", &status));
+ ucln_i18n_registerCleanup(UCLN_I18N_ALLOWED_HOUR_FORMATS, allowedHourFormatsCleanup);
+
+ LocalUResourceBundlePointer rb(ures_openDirect(nullptr, "supplementalData", &status));
+ if (U_FAILURE(status)) { return; }
AllowedHourFormatsSink sink;
// TODO: Currently in the enumeration each table allocates a new array.
@@ -566,9 +582,7 @@ U_CFUNC void U_CALLCONV DateTimePatternGenerator::loadAllowedHourFormatsData(UEr
// into the hashmap, store 6 single-value sub-arrays right at the beginning of the
// vector (at index enum*2) for easy data sharing, copy sub-arrays into runtime
// object. Remember to clean up the vector, too.
- ures_getAllItemsWithFallback(rb.getAlias(), "timeData", sink, status);
-
- ucln_i18n_registerCleanup(UCLN_I18N_ALLOWED_HOUR_FORMATS, allowedHourFormatsCleanup);
+ ures_getAllItemsWithFallback(rb.getAlias(), "timeData", sink, status);
}
void DateTimePatternGenerator::getAllowedHourFormats(const Locale &locale, UErrorCode &status) {
@@ -589,17 +603,17 @@ void DateTimePatternGenerator::getAllowedHourFormats(const Locale &locale, UErro
const char *language = maxLocale.getLanguage();
CharString langCountry;
- langCountry.append(language, uprv_strlen(language), status);
+ langCountry.append(language, static_cast<int32_t>(uprv_strlen(language)), status);
langCountry.append('_', status);
- langCountry.append(country, uprv_strlen(country), status);
+ langCountry.append(country, static_cast<int32_t>(uprv_strlen(country)), status);
int32_t *allowedFormats;
allowedFormats = (int32_t *)uhash_get(localeToAllowedHourFormatsMap, langCountry.data());
- if (allowedFormats == NULL) {
+ if (allowedFormats == nullptr) {
allowedFormats = (int32_t *)uhash_get(localeToAllowedHourFormatsMap, const_cast<char *>(country));
}
- if (allowedFormats != NULL) { // Lookup is successful
+ if (allowedFormats != nullptr) { // Lookup is successful
for (int32_t i = 0; i < UPRV_LENGTHOF(fAllowedHourFormats); ++i) {
fAllowedHourFormats[i] = allowedFormats[i];
if (allowedFormats[i] == ALLOWED_HOUR_FORMAT_UNKNOWN) {
@@ -615,10 +629,10 @@ void DateTimePatternGenerator::getAllowedHourFormats(const Locale &locale, UErro
UnicodeString
DateTimePatternGenerator::getSkeleton(const UnicodeString& pattern, UErrorCode&
/*status*/) {
- FormatParser fp;
+ FormatParser fp2;
DateTimeMatcher matcher;
PtnSkeleton localSkeleton;
- matcher.set(pattern, &fp, localSkeleton);
+ matcher.set(pattern, &fp2, localSkeleton);
return localSkeleton.getSkeleton();
}
@@ -634,10 +648,10 @@ DateTimePatternGenerator::staticGetSkeleton(
UnicodeString
DateTimePatternGenerator::getBaseSkeleton(const UnicodeString& pattern, UErrorCode& /*status*/) {
- FormatParser fp;
+ FormatParser fp2;
DateTimeMatcher matcher;
PtnSkeleton localSkeleton;
- matcher.set(pattern, &fp, localSkeleton);
+ matcher.set(pattern, &fp2, localSkeleton);
return localSkeleton.getBaseSkeleton();
}
@@ -663,7 +677,7 @@ DateTimePatternGenerator::addICUPatterns(const Locale& locale, UErrorCode& statu
DateFormat::EStyle style = (DateFormat::EStyle)i;
df = DateFormat::createDateInstance(style, locale);
SimpleDateFormat* sdf;
- if (df != NULL && (sdf = dynamic_cast<SimpleDateFormat*>(df)) != NULL) {
+ if (df != nullptr && (sdf = dynamic_cast<SimpleDateFormat*>(df)) != nullptr) {
sdf->toPattern(dfPattern);
addPattern(dfPattern, FALSE, conflictingString, status);
}
@@ -672,7 +686,7 @@ DateTimePatternGenerator::addICUPatterns(const Locale& locale, UErrorCode& statu
if (U_FAILURE(status)) { return; }
df = DateFormat::createTimeInstance(style, locale);
- if (df != NULL && (sdf = dynamic_cast<SimpleDateFormat*>(df)) != NULL) {
+ if (df != nullptr && (sdf = dynamic_cast<SimpleDateFormat*>(df)) != nullptr) {
sdf->toPattern(dfPattern);
addPattern(dfPattern, FALSE, conflictingString, status);
@@ -747,13 +761,14 @@ DateTimePatternGenerator::getCalendarTypeToUse(const Locale& locale, CharString&
ures_getFunctionalEquivalent(
localeWithCalendarKey,
ULOC_LOCALE_IDENTIFIER_CAPACITY,
- NULL,
+ nullptr,
"calendar",
"calendar",
locale.getName(),
- NULL,
+ nullptr,
FALSE,
&err);
+ if (U_FAILURE(err)) { return; }
localeWithCalendarKey[ULOC_LOCALE_IDENTIFIER_CAPACITY-1] = 0; // ensure null termination
// now get the calendar key value from that locale
char calendarType[ULOC_KEYWORDS_CAPACITY];
@@ -763,7 +778,8 @@ DateTimePatternGenerator::getCalendarTypeToUse(const Locale& locale, CharString&
calendarType,
ULOC_KEYWORDS_CAPACITY,
&err);
- if (U_SUCCESS(err) && calendarTypeLen < ULOC_KEYWORDS_CAPACITY) {
+ if (U_FAILURE(err)) { return; }
+ if (calendarTypeLen < ULOC_KEYWORDS_CAPACITY) {
destination.clear().append(calendarType, -1, err);
if (U_FAILURE(err)) { return; }
}
@@ -774,7 +790,7 @@ DateTimePatternGenerator::getCalendarTypeToUse(const Locale& locale, CharString&
void
DateTimePatternGenerator::consumeShortTimePattern(const UnicodeString& shortTimePattern,
UErrorCode& status) {
-
+ if (U_FAILURE(status)) { return; }
// set fDefaultHourFormatChar to the hour format character from this pattern
int32_t tfIdx, tfLen = shortTimePattern.length();
UBool ignoreChars = FALSE;
@@ -782,7 +798,7 @@ DateTimePatternGenerator::consumeShortTimePattern(const UnicodeString& shortTime
UChar tfChar = shortTimePattern.charAt(tfIdx);
if ( tfChar == SINGLE_QUOTE ) {
ignoreChars = !ignoreChars; // toggle (handle quoted literals & '' for single quote)
- } else if ( !ignoreChars && u_strchr(hourFormatChars, tfChar) != NULL ) {
+ } else if ( !ignoreChars && u_strchr(hourFormatChars, tfChar) != nullptr ) {
fDefaultHourFormatChar = tfChar;
break;
}
@@ -872,9 +888,9 @@ struct DateTimePatternGenerator::AppendItemNamesSink : public ResourceSink {
valueStr.getTerminatedBuffer();
}
for (int32_t j = 1; j < UDATPG_WIDTH_COUNT; j++) {
- UnicodeString& valueStr = dtpg.getMutableFieldDisplayName((UDateTimePatternField)i, (UDateTimePGDisplayWidth)j);
- if (valueStr.isEmpty()) {
- valueStr = dtpg.getFieldDisplayName((UDateTimePatternField)i, (UDateTimePGDisplayWidth)(j-1));
+ UnicodeString& valueStr2 = dtpg.getMutableFieldDisplayName((UDateTimePatternField)i, (UDateTimePGDisplayWidth)j);
+ if (valueStr2.isEmpty()) {
+ valueStr2 = dtpg.getFieldDisplayName((UDateTimePatternField)i, (UDateTimePGDisplayWidth)(j-1));
}
}
}
@@ -921,7 +937,7 @@ DateTimePatternGenerator::addCLDRData(const Locale& locale, UErrorCode& errorCod
UnicodeString rbPattern, value, field;
CharString path;
- LocalUResourceBundlePointer rb(ures_open(NULL, locale.getName(), &errorCode));
+ LocalUResourceBundlePointer rb(ures_open(nullptr, locale.getName(), &errorCode));
if (U_FAILURE(errorCode)) { return; }
CharString calendarTypeToUse; // to be filled in with the type to use, if all goes well
@@ -966,12 +982,13 @@ DateTimePatternGenerator::addCLDRData(const Locale& locale, UErrorCode& errorCod
void
DateTimePatternGenerator::initHashtable(UErrorCode& err) {
- if (fAvailableFormatKeyHash!=NULL) {
+ if (U_FAILURE(err)) { return; }
+ if (fAvailableFormatKeyHash!=nullptr) {
return;
}
- if ((fAvailableFormatKeyHash = new Hashtable(FALSE, err))==NULL) {
- err=U_MEMORY_ALLOCATION_ERROR;
- return;
+ LocalPointer<Hashtable> hash(new Hashtable(FALSE, err), err);
+ if (U_SUCCESS(err)) {
+ fAvailableFormatKeyHash = hash.orphan();
}
}
@@ -1028,7 +1045,14 @@ DateTimePatternGenerator::getBestPattern(const UnicodeString& patternForm, UErro
UnicodeString
DateTimePatternGenerator::getBestPattern(const UnicodeString& patternForm, UDateTimePatternMatchOptions options, UErrorCode& status) {
- const UnicodeString *bestPattern=NULL;
+ if (U_FAILURE(status)) {
+ return UnicodeString();
+ }
+ if (U_FAILURE(internalErrorCode)) {
+ status = internalErrorCode;
+ return UnicodeString();
+ }
+ const UnicodeString *bestPattern = nullptr;
UnicodeString dtFormat;
UnicodeString resultPattern;
int32_t flags = kDTPGNoFlags;
@@ -1044,16 +1068,23 @@ DateTimePatternGenerator::getBestPattern(const UnicodeString& patternForm, UDate
resultPattern.remove();
dtMatcher->set(patternFormMapped, fp);
- const PtnSkeleton* specifiedSkeleton=NULL;
- bestPattern=getBestRaw(*dtMatcher, -1, distanceInfo, &specifiedSkeleton);
+ const PtnSkeleton* specifiedSkeleton = nullptr;
+ bestPattern=getBestRaw(*dtMatcher, -1, distanceInfo, status, &specifiedSkeleton);
+ if (U_FAILURE(status)) {
+ return UnicodeString();
+ }
+
if ( distanceInfo->missingFieldMask==0 && distanceInfo->extraFieldMask==0 ) {
resultPattern = adjustFieldTypes(*bestPattern, specifiedSkeleton, flags, options);
return resultPattern;
}
int32_t neededFields = dtMatcher->getFieldMask();
- UnicodeString datePattern=getBestAppending(neededFields & dateMask, flags, options);
- UnicodeString timePattern=getBestAppending(neededFields & timeMask, flags, options);
+ UnicodeString datePattern=getBestAppending(neededFields & dateMask, flags, status, options);
+ UnicodeString timePattern=getBestAppending(neededFields & timeMask, flags, status, options);
+ if (U_FAILURE(status)) {
+ return UnicodeString();
+ }
if (datePattern.length()==0) {
if (timePattern.length()==0) {
resultPattern.remove();
@@ -1074,7 +1105,7 @@ DateTimePatternGenerator::getBestPattern(const UnicodeString& patternForm, UDate
/*
* Map a skeleton that may have metacharacters jJC to one without, by replacing
- * the metacharacters with locale-appropriate fields of of h/H/k/K and of a/b/B
+ * the metacharacters with locale-appropriate fields of h/H/k/K and of a/b/B
* (depends on fDefaultHourFormatChar and fAllowedHourFormats being set, which in
* turn depends on initData having been run). This method also updates the flags
* as necessary. Returns the updated skeleton.
@@ -1159,9 +1190,16 @@ UnicodeString
DateTimePatternGenerator::replaceFieldTypes(const UnicodeString& pattern,
const UnicodeString& skeleton,
UDateTimePatternMatchOptions options,
- UErrorCode& /*status*/) {
+ UErrorCode& status) {
+ if (U_FAILURE(status)) {
+ return UnicodeString();
+ }
+ if (U_FAILURE(internalErrorCode)) {
+ status = internalErrorCode;
+ return UnicodeString();
+ }
dtMatcher->set(skeleton, fp);
- UnicodeString result = adjustFieldTypes(pattern, NULL, kDTPGNoFlags, options);
+ UnicodeString result = adjustFieldTypes(pattern, nullptr, kDTPGNoFlags, options);
return result;
}
@@ -1204,20 +1242,24 @@ DateTimePatternGenerator::getDateTimeFormat() const {
void
DateTimePatternGenerator::setDateTimeFromCalendar(const Locale& locale, UErrorCode& status) {
+ if (U_FAILURE(status)) { return; }
+
const UChar *resStr;
int32_t resStrLen = 0;
- Calendar* fCalendar = Calendar::createInstance(locale, status);
+ LocalPointer<Calendar> fCalendar(Calendar::createInstance(locale, status), status);
if (U_FAILURE(status)) { return; }
- LocalUResourceBundlePointer calData(ures_open(NULL, locale.getBaseName(), &status));
+ LocalUResourceBundlePointer calData(ures_open(nullptr, locale.getBaseName(), &status));
+ if (U_FAILURE(status)) { return; }
ures_getByKey(calData.getAlias(), DT_DateTimeCalendarTag, calData.getAlias(), &status);
+ if (U_FAILURE(status)) { return; }
LocalUResourceBundlePointer dateTimePatterns;
- if (fCalendar != NULL && fCalendar->getType() != NULL && *fCalendar->getType() != '\0'
+ if (fCalendar->getType() != nullptr && *fCalendar->getType() != '\0'
&& uprv_strcmp(fCalendar->getType(), DT_DateTimeGregorianTag) != 0) {
dateTimePatterns.adoptInstead(ures_getByKeyWithFallback(calData.getAlias(), fCalendar->getType(),
- NULL, &status));
+ nullptr, &status));
ures_getByKeyWithFallback(dateTimePatterns.getAlias(), DT_DateTimePatternsTag,
dateTimePatterns.getAlias(), &status);
}
@@ -1238,8 +1280,6 @@ DateTimePatternGenerator::setDateTimeFromCalendar(const Locale& locale, UErrorCo
}
resStr = ures_getStringByIndex(dateTimePatterns.getAlias(), (int32_t)DateFormat::kDateTime, &resStrLen, &status);
setDateTimeFormat(UnicodeString(TRUE, resStr, resStrLen));
-
- delete fCalendar;
}
void
@@ -1259,7 +1299,12 @@ DateTimePatternGenerator::addPattern(
UnicodeString &conflictingPattern,
UErrorCode& status)
{
- return addPatternWithSkeleton(pattern, NULL, override, conflictingPattern, status);
+ if (U_FAILURE(internalErrorCode)) {
+ status = internalErrorCode;
+ return UDATPG_NO_CONFLICT;
+ }
+
+ return addPatternWithSkeleton(pattern, nullptr, override, conflictingPattern, status);
}
// For DateTimePatternGenerator::addPatternWithSkeleton -
@@ -1280,13 +1325,17 @@ DateTimePatternGenerator::addPatternWithSkeleton(
UnicodeString& conflictingPattern,
UErrorCode& status)
{
+ if (U_FAILURE(internalErrorCode)) {
+ status = internalErrorCode;
+ return UDATPG_NO_CONFLICT;
+ }
UnicodeString basePattern;
PtnSkeleton skeleton;
UDateTimePatternConflict conflictingStatus = UDATPG_NO_CONFLICT;
DateTimeMatcher matcher;
- if ( skeletonToUse == NULL ) {
+ if ( skeletonToUse == nullptr ) {
matcher.set(pattern, fp, skeleton);
matcher.getBasePattern(basePattern);
} else {
@@ -1302,7 +1351,7 @@ DateTimePatternGenerator::addPatternWithSkeleton(
// availableFormats items from root, which should not override any previous entry with the same base.
UBool entryHadSpecifiedSkeleton;
const UnicodeString *duplicatePattern = patternMap->getPatternFromBasePattern(basePattern, entryHadSpecifiedSkeleton);
- if (duplicatePattern != NULL && (!entryHadSpecifiedSkeleton || (skeletonToUse != NULL && !override))) {
+ if (duplicatePattern != nullptr && (!entryHadSpecifiedSkeleton || (skeletonToUse != nullptr && !override))) {
conflictingStatus = UDATPG_BASE_CONFLICT;
conflictingPattern = *duplicatePattern;
if (!override) {
@@ -1313,16 +1362,16 @@ DateTimePatternGenerator::addPatternWithSkeleton(
// items from CLDR data. In that case, we don't want an item from a parent locale to replace an item with
// same skeleton from the specified locale, so skip the current item if skeletonWasSpecified is true for
// the previously-specified conflicting item.
- const PtnSkeleton* entrySpecifiedSkeleton = NULL;
+ const PtnSkeleton* entrySpecifiedSkeleton = nullptr;
duplicatePattern = patternMap->getPatternFromSkeleton(skeleton, &entrySpecifiedSkeleton);
- if (duplicatePattern != NULL ) {
+ if (duplicatePattern != nullptr ) {
conflictingStatus = UDATPG_CONFLICT;
conflictingPattern = *duplicatePattern;
- if (!override || (skeletonToUse != NULL && entrySpecifiedSkeleton != NULL)) {
+ if (!override || (skeletonToUse != nullptr && entrySpecifiedSkeleton != nullptr)) {
return conflictingStatus;
}
}
- patternMap->add(basePattern, skeleton, pattern, skeletonToUse != NULL, status);
+ patternMap->add(basePattern, skeleton, pattern, skeletonToUse != nullptr, status);
if(U_FAILURE(status)) {
return conflictingStatus;
}
@@ -1369,13 +1418,16 @@ const UnicodeString*
DateTimePatternGenerator::getBestRaw(DateTimeMatcher& source,
int32_t includeMask,
DistanceInfo* missingFields,
+ UErrorCode &status,
const PtnSkeleton** specifiedSkeletonPtr) {
int32_t bestDistance = 0x7fffffff;
DistanceInfo tempInfo;
- const UnicodeString *bestPattern=NULL;
- const PtnSkeleton* specifiedSkeleton=NULL;
+ const UnicodeString *bestPattern=nullptr;
+ const PtnSkeleton* specifiedSkeleton=nullptr;
+
+ PatternMapIterator it(status);
+ if (U_FAILURE(status)) { return nullptr; }
- PatternMapIterator it;
for (it.set(*patternMap); it.hasNext(); ) {
DateTimeMatcher trial = it.next();
if (trial.equals(skipMatcher)) {
@@ -1485,8 +1537,8 @@ DateTimePatternGenerator::adjustFieldTypes(const UnicodeString& pattern,
c = fDefaultHourFormatChar;
}
field.remove();
- for (int32_t i=adjFieldLen; i>0; --i) {
- field+=c;
+ for (int32_t j=adjFieldLen; j>0; --j) {
+ field += c;
}
}
newPattern+=field;
@@ -1496,14 +1548,21 @@ DateTimePatternGenerator::adjustFieldTypes(const UnicodeString& pattern,
}
UnicodeString
-DateTimePatternGenerator::getBestAppending(int32_t missingFields, int32_t flags, UDateTimePatternMatchOptions options) {
+DateTimePatternGenerator::getBestAppending(int32_t missingFields, int32_t flags, UErrorCode &status, UDateTimePatternMatchOptions options) {
+ if (U_FAILURE(status)) {
+ return UnicodeString();
+ }
UnicodeString resultPattern, tempPattern;
- UErrorCode err=U_ZERO_ERROR;
+ const UnicodeString* tempPatternPtr;
int32_t lastMissingFieldMask=0;
if (missingFields!=0) {
resultPattern=UnicodeString();
- const PtnSkeleton* specifiedSkeleton=NULL;
- tempPattern = *getBestRaw(*dtMatcher, missingFields, distanceInfo, &specifiedSkeleton);
+ const PtnSkeleton* specifiedSkeleton=nullptr;
+ tempPatternPtr = getBestRaw(*dtMatcher, missingFields, distanceInfo, status, &specifiedSkeleton);
+ if (U_FAILURE(status)) {
+ return UnicodeString();
+ }
+ tempPattern = *tempPatternPtr;
resultPattern = adjustFieldTypes(tempPattern, specifiedSkeleton, flags, options);
if ( distanceInfo->missingFieldMask==0 ) {
return resultPattern;
@@ -1519,19 +1578,26 @@ DateTimePatternGenerator::getBestAppending(int32_t missingFields, int32_t flags,
continue;
}
int32_t startingMask = distanceInfo->missingFieldMask;
- tempPattern = *getBestRaw(*dtMatcher, distanceInfo->missingFieldMask, distanceInfo, &specifiedSkeleton);
+ tempPatternPtr = getBestRaw(*dtMatcher, distanceInfo->missingFieldMask, distanceInfo, status, &specifiedSkeleton);
+ if (U_FAILURE(status)) {
+ return UnicodeString();
+ }
+ tempPattern = *tempPatternPtr;
tempPattern = adjustFieldTypes(tempPattern, specifiedSkeleton, flags, options);
int32_t foundMask=startingMask& ~distanceInfo->missingFieldMask;
int32_t topField=getTopBitNumber(foundMask);
- UnicodeString appendName;
- getAppendName((UDateTimePatternField)topField, appendName);
- const UnicodeString *values[3] = {
- &resultPattern,
- &tempPattern,
- &appendName
- };
- SimpleFormatter(appendItemFormats[topField], 2, 3, err).
- formatAndReplace(values, 3, resultPattern, NULL, 0, err);
+
+ if (appendItemFormats[topField].length() != 0) {
+ UnicodeString appendName;
+ getAppendName((UDateTimePatternField)topField, appendName);
+ const UnicodeString *values[3] = {
+ &resultPattern,
+ &tempPattern,
+ &appendName
+ };
+ SimpleFormatter(appendItemFormats[topField], 2, 3, status).
+ formatAndReplace(values, 3, resultPattern, nullptr, 0, status);
+ }
lastMissingFieldMask = distanceInfo->missingFieldMask;
}
}
@@ -1539,7 +1605,7 @@ DateTimePatternGenerator::getBestAppending(int32_t missingFields, int32_t flags,
}
int32_t
-DateTimePatternGenerator::getTopBitNumber(int32_t foundMask) {
+DateTimePatternGenerator::getTopBitNumber(int32_t foundMask) const {
if ( foundMask==0 ) {
return 0;
}
@@ -1568,22 +1634,21 @@ DateTimePatternGenerator::isAvailableFormatSet(const UnicodeString &key) const {
void
DateTimePatternGenerator::copyHashtable(Hashtable *other, UErrorCode &status) {
-
- if (other == NULL) {
+ if (other == nullptr || U_FAILURE(status)) {
return;
}
- if (fAvailableFormatKeyHash != NULL) {
+ if (fAvailableFormatKeyHash != nullptr) {
delete fAvailableFormatKeyHash;
- fAvailableFormatKeyHash = NULL;
+ fAvailableFormatKeyHash = nullptr;
}
initHashtable(status);
if(U_FAILURE(status)){
return;
}
int32_t pos = UHASH_FIRST;
- const UHashElement* elem = NULL;
+ const UHashElement* elem = nullptr;
// walk through the hash table and create a deep clone
- while((elem = other->nextElement(pos))!= NULL){
+ while((elem = other->nextElement(pos))!= nullptr){
const UHashTok otherKeyTok = elem->key;
UnicodeString* otherKey = (UnicodeString*)otherKeyTok.pointer;
fAvailableFormatKeyHash->puti(*otherKey, 1, status);
@@ -1595,8 +1660,17 @@ DateTimePatternGenerator::copyHashtable(Hashtable *other, UErrorCode &status) {
StringEnumeration*
DateTimePatternGenerator::getSkeletons(UErrorCode& status) const {
- StringEnumeration* skeletonEnumerator = new DTSkeletonEnumeration(*patternMap, DT_SKELETON, status);
- return skeletonEnumerator;
+ if (U_FAILURE(status)) {
+ return nullptr;
+ }
+ if (U_FAILURE(internalErrorCode)) {
+ status = internalErrorCode;
+ return nullptr;
+ }
+ LocalPointer<StringEnumeration> skeletonEnumerator(
+ new DTSkeletonEnumeration(*patternMap, DT_SKELETON, status), status);
+
+ return U_SUCCESS(status) ? skeletonEnumerator.orphan() : nullptr;
}
const UnicodeString&
@@ -1607,47 +1681,70 @@ DateTimePatternGenerator::getPatternForSkeleton(const UnicodeString& skeleton) c
return emptyString;
}
curElem = patternMap->getHeader(skeleton.charAt(0));
- while ( curElem != NULL ) {
+ while ( curElem != nullptr ) {
if ( curElem->skeleton->getSkeleton()==skeleton ) {
return curElem->pattern;
}
- curElem=curElem->next;
+ curElem = curElem->next.getAlias();
}
return emptyString;
}
StringEnumeration*
DateTimePatternGenerator::getBaseSkeletons(UErrorCode& status) const {
- StringEnumeration* baseSkeletonEnumerator = new DTSkeletonEnumeration(*patternMap, DT_BASESKELETON, status);
- return baseSkeletonEnumerator;
+ if (U_FAILURE(status)) {
+ return nullptr;
+ }
+ if (U_FAILURE(internalErrorCode)) {
+ status = internalErrorCode;
+ return nullptr;
+ }
+ LocalPointer<StringEnumeration> baseSkeletonEnumerator(
+ new DTSkeletonEnumeration(*patternMap, DT_BASESKELETON, status), status);
+
+ return U_SUCCESS(status) ? baseSkeletonEnumerator.orphan() : nullptr;
}
StringEnumeration*
DateTimePatternGenerator::getRedundants(UErrorCode& status) {
- StringEnumeration* output = new DTRedundantEnumeration();
+ if (U_FAILURE(status)) { return nullptr; }
+ if (U_FAILURE(internalErrorCode)) {
+ status = internalErrorCode;
+ return nullptr;
+ }
+ LocalPointer<StringEnumeration> output(new DTRedundantEnumeration(), status);
+ if (U_FAILURE(status)) { return nullptr; }
const UnicodeString *pattern;
- PatternMapIterator it;
+ PatternMapIterator it(status);
+ if (U_FAILURE(status)) { return nullptr; }
+
for (it.set(*patternMap); it.hasNext(); ) {
DateTimeMatcher current = it.next();
pattern = patternMap->getPatternFromSkeleton(*(it.getSkeleton()));
if ( isCanonicalItem(*pattern) ) {
continue;
}
- if ( skipMatcher == NULL ) {
+ if ( skipMatcher == nullptr ) {
skipMatcher = new DateTimeMatcher(current);
+ if (skipMatcher == nullptr) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return nullptr;
+ }
}
else {
*skipMatcher = current;
}
UnicodeString trial = getBestPattern(current.getPattern(), status);
+ if (U_FAILURE(status)) { return nullptr; }
if (trial == *pattern) {
- ((DTRedundantEnumeration *)output)->add(*pattern, status);
+ ((DTRedundantEnumeration *)output.getAlias())->add(*pattern, status);
+ if (U_FAILURE(status)) { return nullptr; }
}
if (current.equals(skipMatcher)) {
continue;
}
}
- return output;
+ return output.orphan();
}
UBool
@@ -1671,45 +1768,54 @@ DateTimePatternGenerator::clone() const {
PatternMap::PatternMap() {
for (int32_t i=0; i < MAX_PATTERN_ENTRIES; ++i ) {
- boot[i]=NULL;
+ boot[i] = nullptr;
}
isDupAllowed = TRUE;
}
void
PatternMap::copyFrom(const PatternMap& other, UErrorCode& status) {
+ if (U_FAILURE(status)) {
+ return;
+ }
this->isDupAllowed = other.isDupAllowed;
- for (int32_t bootIndex=0; bootIndex<MAX_PATTERN_ENTRIES; ++bootIndex ) {
- PtnElem *curElem, *otherElem, *prevElem=NULL;
+ for (int32_t bootIndex = 0; bootIndex < MAX_PATTERN_ENTRIES; ++bootIndex) {
+ PtnElem *curElem, *otherElem, *prevElem=nullptr;
otherElem = other.boot[bootIndex];
- while (otherElem!=NULL) {
- if ((curElem = new PtnElem(otherElem->basePattern, otherElem->pattern))==NULL) {
- // out of memory
- status = U_MEMORY_ALLOCATION_ERROR;
- return;
+ while (otherElem != nullptr) {
+ LocalPointer<PtnElem> newElem(new PtnElem(otherElem->basePattern, otherElem->pattern), status);
+ if (U_FAILURE(status)) {
+ return; // out of memory
}
- if ( this->boot[bootIndex]== NULL ) {
- this->boot[bootIndex] = curElem;
+ newElem->skeleton.adoptInsteadAndCheckErrorCode(new PtnSkeleton(*(otherElem->skeleton)), status);
+ if (U_FAILURE(status)) {
+ return; // out of memory
}
- if ((curElem->skeleton=new PtnSkeleton(*(otherElem->skeleton))) == NULL ) {
- // out of memory
- status = U_MEMORY_ALLOCATION_ERROR;
- return;
- }
- curElem->skeletonWasSpecified = otherElem->skeletonWasSpecified;
- if (prevElem!=NULL) {
- prevElem->next=curElem;
+ newElem->skeletonWasSpecified = otherElem->skeletonWasSpecified;
+
+ // Release ownership from the LocalPointer of the PtnElem object.
+ // The PtnElem will now be owned by either the boot (for the first entry in the linked-list)
+ // or owned by the previous PtnElem object in the linked-list.
+ curElem = newElem.orphan();
+
+ if (this->boot[bootIndex] == nullptr) {
+ this->boot[bootIndex] = curElem;
+ } else {
+ if (prevElem != nullptr) {
+ prevElem->next.adoptInstead(curElem);
+ } else {
+ U_ASSERT(false);
+ }
}
- curElem->next=NULL;
prevElem = curElem;
- otherElem = otherElem->next;
+ otherElem = otherElem->next.getAlias();
}
}
}
PtnElem*
-PatternMap::getHeader(UChar baseChar) {
+PatternMap::getHeader(UChar baseChar) const {
PtnElem* curElem;
if ( (baseChar >= CAP_A) && (baseChar <= CAP_Z) ) {
@@ -1720,7 +1826,7 @@ PatternMap::getHeader(UChar baseChar) {
curElem = boot[26+baseChar-LOW_A];
}
else {
- return NULL;
+ return nullptr;
}
}
return curElem;
@@ -1728,9 +1834,9 @@ PatternMap::getHeader(UChar baseChar) {
PatternMap::~PatternMap() {
for (int32_t i=0; i < MAX_PATTERN_ENTRIES; ++i ) {
- if (boot[i]!=NULL ) {
+ if (boot[i] != nullptr ) {
delete boot[i];
- boot[i]=NULL;
+ boot[i] = nullptr;
}
}
} // PatternMap destructor
@@ -1759,39 +1865,45 @@ PatternMap::add(const UnicodeString& basePattern,
}
}
- if (baseElem == NULL) {
- if ((curElem = new PtnElem(basePattern, value)) == NULL ) {
- // out of memory
- status = U_MEMORY_ALLOCATION_ERROR;
- return;
+ if (baseElem == nullptr) {
+ LocalPointer<PtnElem> newElem(new PtnElem(basePattern, value), status);
+ if (U_FAILURE(status)) {
+ return; // out of memory
}
+ newElem->skeleton.adoptInsteadAndCheckErrorCode(new PtnSkeleton(skeleton), status);
+ if (U_FAILURE(status)) {
+ return; // out of memory
+ }
+ newElem->skeletonWasSpecified = skeletonWasSpecified;
if (baseChar >= LOW_A) {
- boot[26 + (baseChar-LOW_A)] = curElem;
+ boot[26 + (baseChar - LOW_A)] = newElem.orphan(); // the boot array now owns the PtnElem.
}
else {
- boot[baseChar-CAP_A] = curElem;
+ boot[baseChar - CAP_A] = newElem.orphan(); // the boot array now owns the PtnElem.
}
- curElem->skeleton = new PtnSkeleton(skeleton);
- curElem->skeletonWasSpecified = skeletonWasSpecified;
}
- if ( baseElem != NULL ) {
+ if ( baseElem != nullptr ) {
curElem = getDuplicateElem(basePattern, skeleton, baseElem);
- if (curElem == NULL) {
+ if (curElem == nullptr) {
// add new element to the list.
curElem = baseElem;
- while( curElem -> next != NULL )
+ while( curElem -> next != nullptr )
{
- curElem = curElem->next;
+ curElem = curElem->next.getAlias();
}
- if ((curElem->next = new PtnElem(basePattern, value)) == NULL ) {
- // out of memory
- status = U_MEMORY_ALLOCATION_ERROR;
- return;
+
+ LocalPointer<PtnElem> newElem(new PtnElem(basePattern, value), status);
+ if (U_FAILURE(status)) {
+ return; // out of memory
}
- curElem=curElem->next;
- curElem->skeleton = new PtnSkeleton(skeleton);
- curElem->skeletonWasSpecified = skeletonWasSpecified;
+ newElem->skeleton.adoptInsteadAndCheckErrorCode(new PtnSkeleton(skeleton), status);
+ if (U_FAILURE(status)) {
+ return; // out of memory
+ }
+ newElem->skeletonWasSpecified = skeletonWasSpecified;
+ curElem->next.adoptInstead(newElem.orphan());
+ curElem = curElem->next.getAlias();
}
else {
// Pattern exists in the list already.
@@ -1809,11 +1921,11 @@ PatternMap::add(const UnicodeString& basePattern,
// Find the pattern from the given basePattern string.
const UnicodeString *
-PatternMap::getPatternFromBasePattern(UnicodeString& basePattern, UBool& skeletonWasSpecified) { // key to search for
+PatternMap::getPatternFromBasePattern(const UnicodeString& basePattern, UBool& skeletonWasSpecified) const { // key to search for
PtnElem *curElem;
- if ((curElem=getHeader(basePattern.charAt(0)))==NULL) {
- return NULL; // no match
+ if ((curElem=getHeader(basePattern.charAt(0)))==nullptr) {
+ return nullptr; // no match
}
do {
@@ -1821,10 +1933,10 @@ PatternMap::getPatternFromBasePattern(UnicodeString& basePattern, UBool& skeleto
skeletonWasSpecified = curElem->skeletonWasSpecified;
return &(curElem->pattern);
}
- curElem=curElem->next;
- }while (curElem != NULL);
+ curElem = curElem->next.getAlias();
+ } while (curElem != nullptr);
- return NULL;
+ return nullptr;
} // PatternMap::getFromBasePattern
@@ -1835,69 +1947,69 @@ PatternMap::getPatternFromBasePattern(UnicodeString& basePattern, UBool& skeleto
// optimum distance value in getBestRaw. When this is called from public getRedundants (specifiedSkeletonPtr is NULL),
// for now it will continue to compare based on baseOriginal so as not to change the behavior unnecessarily.
const UnicodeString *
-PatternMap::getPatternFromSkeleton(PtnSkeleton& skeleton, const PtnSkeleton** specifiedSkeletonPtr) { // key to search for
+PatternMap::getPatternFromSkeleton(const PtnSkeleton& skeleton, const PtnSkeleton** specifiedSkeletonPtr) const { // key to search for
PtnElem *curElem;
if (specifiedSkeletonPtr) {
- *specifiedSkeletonPtr = NULL;
+ *specifiedSkeletonPtr = nullptr;
}
// find boot entry
UChar baseChar = skeleton.getFirstChar();
- if ((curElem=getHeader(baseChar))==NULL) {
- return NULL; // no match
+ if ((curElem=getHeader(baseChar))==nullptr) {
+ return nullptr; // no match
}
do {
UBool equal;
- if (specifiedSkeletonPtr != NULL) { // called from DateTimePatternGenerator::getBestRaw or addPattern, use original
+ if (specifiedSkeletonPtr != nullptr) { // called from DateTimePatternGenerator::getBestRaw or addPattern, use original
equal = curElem->skeleton->original == skeleton.original;
} else { // called from DateTimePatternGenerator::getRedundants, use baseOriginal
equal = curElem->skeleton->baseOriginal == skeleton.baseOriginal;
}
if (equal) {
if (specifiedSkeletonPtr && curElem->skeletonWasSpecified) {
- *specifiedSkeletonPtr = curElem->skeleton;
+ *specifiedSkeletonPtr = curElem->skeleton.getAlias();
}
return &(curElem->pattern);
}
- curElem=curElem->next;
- }while (curElem != NULL);
+ curElem = curElem->next.getAlias();
+ } while (curElem != nullptr);
- return NULL;
+ return nullptr;
}
UBool
-PatternMap::equals(const PatternMap& other) {
+PatternMap::equals(const PatternMap& other) const {
if ( this==&other ) {
return TRUE;
}
- for (int32_t bootIndex=0; bootIndex<MAX_PATTERN_ENTRIES; ++bootIndex ) {
- if ( boot[bootIndex]==other.boot[bootIndex] ) {
+ for (int32_t bootIndex = 0; bootIndex < MAX_PATTERN_ENTRIES; ++bootIndex) {
+ if (boot[bootIndex] == other.boot[bootIndex]) {
continue;
}
- if ( (boot[bootIndex]==NULL)||(other.boot[bootIndex]==NULL) ) {
+ if ((boot[bootIndex] == nullptr) || (other.boot[bootIndex] == nullptr)) {
return FALSE;
}
PtnElem *otherElem = other.boot[bootIndex];
PtnElem *myElem = boot[bootIndex];
- while ((otherElem!=NULL) || (myElem!=NULL)) {
+ while ((otherElem != nullptr) || (myElem != nullptr)) {
if ( myElem == otherElem ) {
break;
}
- if ((otherElem==NULL) || (myElem==NULL)) {
+ if ((otherElem == nullptr) || (myElem == nullptr)) {
return FALSE;
}
if ( (myElem->basePattern != otherElem->basePattern) ||
(myElem->pattern != otherElem->pattern) ) {
return FALSE;
}
- if ((myElem->skeleton!=otherElem->skeleton)&&
+ if ((myElem->skeleton.getAlias() != otherElem->skeleton.getAlias()) &&
!myElem->skeleton->equals(*(otherElem->skeleton))) {
return FALSE;
}
- myElem = myElem->next;
- otherElem=otherElem->next;
+ myElem = myElem->next.getAlias();
+ otherElem = otherElem->next.getAlias();
}
}
return TRUE;
@@ -1909,21 +2021,21 @@ PtnElem*
PatternMap::getDuplicateElem(
const UnicodeString &basePattern,
const PtnSkeleton &skeleton,
- PtnElem *baseElem) {
+ PtnElem *baseElem) {
PtnElem *curElem;
- if ( baseElem == (PtnElem *)NULL ) {
- return (PtnElem*)NULL;
+ if ( baseElem == nullptr ) {
+ return nullptr;
}
else {
curElem = baseElem;
}
do {
if ( basePattern.compare(curElem->basePattern)==0 ) {
- UBool isEqual=TRUE;
- for (int32_t i=0; i<UDATPG_FIELD_COUNT; ++i) {
+ UBool isEqual = TRUE;
+ for (int32_t i = 0; i < UDATPG_FIELD_COUNT; ++i) {
if (curElem->skeleton->type[i] != skeleton.type[i] ) {
- isEqual=FALSE;
+ isEqual = FALSE;
break;
}
}
@@ -1931,11 +2043,11 @@ PatternMap::getDuplicateElem(
return curElem;
}
}
- curElem = curElem->next;
- } while( curElem != (PtnElem *)NULL );
+ curElem = curElem->next.getAlias();
+ } while( curElem != nullptr );
// end of the list
- return (PtnElem*)NULL;
+ return nullptr;
} // PatternMap::getDuplicateElem
@@ -1976,7 +2088,7 @@ DateTimeMatcher::set(const UnicodeString& pattern, FormatParser* fp, PtnSkeleton
continue;
}
int32_t canonicalIndex = fp->getCanonicalIndex(value);
- if (canonicalIndex < 0 ) {
+ if (canonicalIndex < 0) {
continue;
}
const dtTypeElem *row = &dtTypes[canonicalIndex];
@@ -1986,8 +2098,9 @@ DateTimeMatcher::set(const UnicodeString& pattern, FormatParser* fp, PtnSkeleton
int32_t repeatCount = row->minLen;
skeletonResult.baseOriginal.populate(field, repeatChar, repeatCount);
int16_t subField = row->type;
- if ( row->type > 0) {
- subField += value.length();
+ if (row->type > 0) {
+ U_ASSERT(value.length() < INT16_MAX);
+ subField += static_cast<int16_t>(value.length());
}
skeletonResult.type[field] = subField;
}
@@ -2031,8 +2144,8 @@ DateTimeMatcher::getPattern() {
}
int32_t
-DateTimeMatcher::getDistance(const DateTimeMatcher& other, int32_t includeMask, DistanceInfo& distanceInfo) {
- int32_t result=0;
+DateTimeMatcher::getDistance(const DateTimeMatcher& other, int32_t includeMask, DistanceInfo& distanceInfo) const {
+ int32_t result = 0;
distanceInfo.clear();
for (int32_t i=0; i<UDATPG_FIELD_COUNT; ++i ) {
int32_t myType = (includeMask&(1<<i))==0 ? 0 : skeleton.type[i];
@@ -2071,13 +2184,13 @@ DateTimeMatcher::copyFrom() {
UBool
DateTimeMatcher::equals(const DateTimeMatcher* other) const {
- if (other==NULL) { return FALSE; }
+ if (other==nullptr) { return FALSE; }
return skeleton.original == other->skeleton.original;
}
int32_t
-DateTimeMatcher::getFieldMask() {
- int32_t result=0;
+DateTimeMatcher::getFieldMask() const {
+ int32_t result = 0;
for (int32_t i=0; i<UDATPG_FIELD_COUNT; ++i) {
if (skeleton.type[i]!=0) {
@@ -2094,7 +2207,7 @@ DateTimeMatcher::getSkeletonPtr() {
FormatParser::FormatParser () {
status = START;
- itemNumber=0;
+ itemNumber = 0;
}
@@ -2106,7 +2219,7 @@ FormatParser::~FormatParser () {
// Note: the startPos may
FormatParser::TokenStatus
FormatParser::setTokens(const UnicodeString& pattern, int32_t startPos, int32_t *len) {
- int32_t curLoc = startPos;
+ int32_t curLoc = startPos;
if ( curLoc >= pattern.length()) {
return DONE;
}
@@ -2132,10 +2245,10 @@ FormatParser::setTokens(const UnicodeString& pattern, int32_t startPos, int32_t
void
FormatParser::set(const UnicodeString& pattern) {
- int32_t startPos=0;
- TokenStatus result=START;
- int32_t len=0;
- itemNumber =0;
+ int32_t startPos = 0;
+ TokenStatus result = START;
+ int32_t len = 0;
+ itemNumber = 0;
do {
result = setTokens( pattern, startPos, &len );
@@ -2186,14 +2299,14 @@ FormatParser::getCanonicalIndex(const UnicodeString& s, UBool strict) {
UBool
FormatParser::isQuoteLiteral(const UnicodeString& s) {
- return (UBool)(s.charAt(0)==SINGLE_QUOTE);
+ return (UBool)(s.charAt(0) == SINGLE_QUOTE);
}
-// This function aussumes the current itemIndex points to the quote literal.
+// This function assumes the current itemIndex points to the quote literal.
// Please call isQuoteLiteral prior to this function.
void
FormatParser::getQuoteLiteral(UnicodeString& quote, int32_t *itemIndex) {
- int32_t i=*itemIndex;
+ int32_t i = *itemIndex;
quote.remove();
if (items[i].charAt(0)==SINGLE_QUOTE) {
@@ -2222,7 +2335,7 @@ FormatParser::getQuoteLiteral(UnicodeString& quote, int32_t *itemIndex) {
}
UBool
-FormatParser::isPatternSeparator(UnicodeString& field) {
+FormatParser::isPatternSeparator(const UnicodeString& field) const {
for (int32_t i=0; i<field.length(); ++i ) {
UChar c= field.charAt(i);
if ( (c==SINGLE_QUOTE) || (c==BACKSLASH) || (c==SPACE) || (c==COLON) ||
@@ -2239,21 +2352,19 @@ FormatParser::isPatternSeparator(UnicodeString& field) {
DistanceInfo::~DistanceInfo() {}
void
-DistanceInfo::setTo(DistanceInfo &other) {
+DistanceInfo::setTo(const DistanceInfo& other) {
missingFieldMask = other.missingFieldMask;
extraFieldMask= other.extraFieldMask;
}
-PatternMapIterator::PatternMapIterator() {
- bootIndex = 0;
- nodePtr = NULL;
- patternMap=NULL;
- matcher= new DateTimeMatcher();
+PatternMapIterator::PatternMapIterator(UErrorCode& status) :
+ bootIndex(0), nodePtr(nullptr), matcher(nullptr), patternMap(nullptr)
+{
+ if (U_FAILURE(status)) { return; }
+ matcher.adoptInsteadAndCheckErrorCode(new DateTimeMatcher(), status);
}
-
PatternMapIterator::~PatternMapIterator() {
- delete matcher;
}
void
@@ -2262,36 +2373,36 @@ PatternMapIterator::set(PatternMap& newPatternMap) {
}
PtnSkeleton*
-PatternMapIterator::getSkeleton() {
- if ( nodePtr == NULL ) {
- return NULL;
+PatternMapIterator::getSkeleton() const {
+ if ( nodePtr == nullptr ) {
+ return nullptr;
}
else {
- return nodePtr->skeleton;
+ return nodePtr->skeleton.getAlias();
}
}
UBool
-PatternMapIterator::hasNext() {
- int32_t headIndex=bootIndex;
- PtnElem *curPtr=nodePtr;
+PatternMapIterator::hasNext() const {
+ int32_t headIndex = bootIndex;
+ PtnElem *curPtr = nodePtr;
- if (patternMap==NULL) {
+ if (patternMap==nullptr) {
return FALSE;
}
while ( headIndex < MAX_PATTERN_ENTRIES ) {
- if ( curPtr != NULL ) {
- if ( curPtr->next != NULL ) {
+ if ( curPtr != nullptr ) {
+ if ( curPtr->next != nullptr ) {
return TRUE;
}
else {
headIndex++;
- curPtr=NULL;
+ curPtr=nullptr;
continue;
}
}
else {
- if ( patternMap->boot[headIndex] != NULL ) {
+ if ( patternMap->boot[headIndex] != nullptr ) {
return TRUE;
}
else {
@@ -2299,7 +2410,6 @@ PatternMapIterator::hasNext() {
continue;
}
}
-
}
return FALSE;
}
@@ -2307,19 +2417,19 @@ PatternMapIterator::hasNext() {
DateTimeMatcher&
PatternMapIterator::next() {
while ( bootIndex < MAX_PATTERN_ENTRIES ) {
- if ( nodePtr != NULL ) {
- if ( nodePtr->next != NULL ) {
- nodePtr = nodePtr->next;
+ if ( nodePtr != nullptr ) {
+ if ( nodePtr->next != nullptr ) {
+ nodePtr = nodePtr->next.getAlias();
break;
}
else {
bootIndex++;
- nodePtr=NULL;
+ nodePtr=nullptr;
continue;
}
}
else {
- if ( patternMap->boot[bootIndex] != NULL ) {
+ if ( patternMap->boot[bootIndex] != nullptr ) {
nodePtr = patternMap->boot[bootIndex];
break;
}
@@ -2329,7 +2439,7 @@ PatternMapIterator::next() {
}
}
}
- if (nodePtr!=NULL) {
+ if (nodePtr!=nullptr) {
matcher->copyFrom(*nodePtr->skeleton);
}
else {
@@ -2468,36 +2578,28 @@ PtnSkeleton::~PtnSkeleton() {
}
PtnElem::PtnElem(const UnicodeString &basePat, const UnicodeString &pat) :
-basePattern(basePat),
-skeleton(NULL),
-pattern(pat),
-next(NULL)
+ basePattern(basePat), skeleton(nullptr), pattern(pat), next(nullptr)
{
}
PtnElem::~PtnElem() {
-
- if (next!=NULL) {
- delete next;
- }
- delete skeleton;
}
-DTSkeletonEnumeration::DTSkeletonEnumeration(PatternMap &patternMap, dtStrEnum type, UErrorCode& status) {
+DTSkeletonEnumeration::DTSkeletonEnumeration(PatternMap& patternMap, dtStrEnum type, UErrorCode& status) : fSkeletons(nullptr) {
PtnElem *curElem;
PtnSkeleton *curSkeleton;
UnicodeString s;
int32_t bootIndex;
pos=0;
- fSkeletons = new UVector(status);
+ fSkeletons.adoptInsteadAndCheckErrorCode(new UVector(status), status);
if (U_FAILURE(status)) {
- delete fSkeletons;
return;
}
+
for (bootIndex=0; bootIndex<MAX_PATTERN_ENTRIES; ++bootIndex ) {
curElem = patternMap.boot[bootIndex];
- while (curElem!=NULL) {
+ while (curElem!=nullptr) {
switch(type) {
case DT_BASESKELETON:
s=curElem->basePattern;
@@ -2506,32 +2608,36 @@ DTSkeletonEnumeration::DTSkeletonEnumeration(PatternMap &patternMap, dtStrEnum t
s=curElem->pattern;
break;
case DT_SKELETON:
- curSkeleton=curElem->skeleton;
+ curSkeleton=curElem->skeleton.getAlias();
s=curSkeleton->getSkeleton();
break;
}
if ( !isCanonicalItem(s) ) {
- fSkeletons->addElement(new UnicodeString(s), status);
+ LocalPointer<UnicodeString> newElem(new UnicodeString(s), status);
+ if (U_FAILURE(status)) {
+ return;
+ }
+ fSkeletons->addElement(newElem.getAlias(), status);
if (U_FAILURE(status)) {
- delete fSkeletons;
- fSkeletons = NULL;
+ fSkeletons.adoptInstead(nullptr);
return;
}
+ newElem.orphan(); // fSkeletons vector now owns the UnicodeString.
}
- curElem = curElem->next;
+ curElem = curElem->next.getAlias();
}
}
- if ((bootIndex==MAX_PATTERN_ENTRIES) && (curElem!=NULL) ) {
+ if ((bootIndex==MAX_PATTERN_ENTRIES) && (curElem!=nullptr) ) {
status = U_BUFFER_OVERFLOW_ERROR;
}
}
const UnicodeString*
DTSkeletonEnumeration::snext(UErrorCode& status) {
- if (U_SUCCESS(status) && pos < fSkeletons->size()) {
+ if (U_SUCCESS(status) && fSkeletons.isValid() && pos < fSkeletons->size()) {
return (const UnicodeString*)fSkeletons->elementAt(pos++);
}
- return NULL;
+ return nullptr;
}
void
@@ -2541,7 +2647,7 @@ DTSkeletonEnumeration::reset(UErrorCode& /*status*/) {
int32_t
DTSkeletonEnumeration::count(UErrorCode& /*status*/) const {
- return (fSkeletons==NULL) ? 0 : fSkeletons->size();
+ return (fSkeletons.isNull()) ? 0 : fSkeletons->size();
}
UBool
@@ -2559,44 +2665,45 @@ DTSkeletonEnumeration::isCanonicalItem(const UnicodeString& item) {
DTSkeletonEnumeration::~DTSkeletonEnumeration() {
UnicodeString *s;
- for (int32_t i=0; i<fSkeletons->size(); ++i) {
- if ((s=(UnicodeString *)fSkeletons->elementAt(i))!=NULL) {
- delete s;
+ if (fSkeletons.isValid()) {
+ for (int32_t i = 0; i < fSkeletons->size(); ++i) {
+ if ((s = (UnicodeString *)fSkeletons->elementAt(i)) != nullptr) {
+ delete s;
+ }
}
}
- delete fSkeletons;
}
-DTRedundantEnumeration::DTRedundantEnumeration() {
- pos=0;
- fPatterns = NULL;
+DTRedundantEnumeration::DTRedundantEnumeration() : pos(0), fPatterns(nullptr) {
}
void
DTRedundantEnumeration::add(const UnicodeString& pattern, UErrorCode& status) {
- if (U_FAILURE(status)) return;
- if (fPatterns == NULL) {
- fPatterns = new UVector(status);
+ if (U_FAILURE(status)) { return; }
+ if (fPatterns.isNull()) {
+ fPatterns.adoptInsteadAndCheckErrorCode(new UVector(status), status);
if (U_FAILURE(status)) {
- delete fPatterns;
- fPatterns = NULL;
return;
}
}
- fPatterns->addElement(new UnicodeString(pattern), status);
+ LocalPointer<UnicodeString> newElem(new UnicodeString(pattern), status);
+ if (U_FAILURE(status)) {
+ return;
+ }
+ fPatterns->addElement(newElem.getAlias(), status);
if (U_FAILURE(status)) {
- delete fPatterns;
- fPatterns = NULL;
+ fPatterns.adoptInstead(nullptr);
return;
}
+ newElem.orphan(); // fPatterns now owns the string.
}
const UnicodeString*
DTRedundantEnumeration::snext(UErrorCode& status) {
- if (U_SUCCESS(status) && pos < fPatterns->size()) {
+ if (U_SUCCESS(status) && fPatterns.isValid() && pos < fPatterns->size()) {
return (const UnicodeString*)fPatterns->elementAt(pos++);
}
- return NULL;
+ return nullptr;
}
void
@@ -2606,11 +2713,11 @@ DTRedundantEnumeration::reset(UErrorCode& /*status*/) {
int32_t
DTRedundantEnumeration::count(UErrorCode& /*status*/) const {
- return (fPatterns==NULL) ? 0 : fPatterns->size();
+ return (fPatterns.isNull()) ? 0 : fPatterns->size();
}
UBool
-DTRedundantEnumeration::isCanonicalItem(const UnicodeString& item) {
+DTRedundantEnumeration::isCanonicalItem(const UnicodeString& item) const {
if ( item.length() != 1 ) {
return FALSE;
}
@@ -2624,12 +2731,13 @@ DTRedundantEnumeration::isCanonicalItem(const UnicodeString& item) {
DTRedundantEnumeration::~DTRedundantEnumeration() {
UnicodeString *s;
- for (int32_t i=0; i<fPatterns->size(); ++i) {
- if ((s=(UnicodeString *)fPatterns->elementAt(i))!=NULL) {
- delete s;
+ if (fPatterns.isValid()) {
+ for (int32_t i = 0; i < fPatterns->size(); ++i) {
+ if ((s = (UnicodeString *)fPatterns->elementAt(i)) != nullptr) {
+ delete s;
+ }
}
- }
- delete fPatterns;
+ }
}
U_NAMESPACE_END
diff --git a/Build/source/libs/icu/icu-src/source/i18n/dtptngen_impl.h b/Build/source/libs/icu/icu-src/source/i18n/dtptngen_impl.h
index 2ea31a75c48..95219f0ba25 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/dtptngen_impl.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/dtptngen_impl.h
@@ -116,7 +116,7 @@ typedef struct dtTypeElem {
int16_t type;
int16_t minLen;
int16_t weight;
-}dtTypeElem;
+} dtTypeElem;
// A compact storage mechanism for skeleton field strings. Several dozen of these will be created
// for a typical DateTimePatternGenerator instance.
@@ -172,30 +172,28 @@ public:
virtual ~PtnSkeleton();
};
-
class PtnElem : public UMemory {
public:
UnicodeString basePattern;
- PtnSkeleton *skeleton;
+ LocalPointer<PtnSkeleton> skeleton;
UnicodeString pattern;
UBool skeletonWasSpecified; // if specified in availableFormats, not derived
- PtnElem *next;
+ LocalPointer<PtnElem> next;
PtnElem(const UnicodeString &basePattern, const UnicodeString &pattern);
virtual ~PtnElem();
-
};
class FormatParser : public UMemory {
public:
UnicodeString items[MAX_DT_TOKEN];
- int32_t itemNumber;
+ int32_t itemNumber;
FormatParser();
virtual ~FormatParser();
void set(const UnicodeString& patternString);
void getQuoteLiteral(UnicodeString& quote, int32_t *itemIndex);
- UBool isPatternSeparator(UnicodeString& field);
+ UBool isPatternSeparator(const UnicodeString& field) const;
static UBool isQuoteLiteral(const UnicodeString& s);
static int32_t getCanonicalIndex(const UnicodeString& s) { return getCanonicalIndex(s, TRUE); }
static int32_t getCanonicalIndex(const UnicodeString& s, UBool strict);
@@ -206,7 +204,7 @@ private:
ADD_TOKEN,
SYNTAX_ERROR,
DONE
- } ToeknStatus;
+ } TokenStatus;
TokenStatus status;
virtual TokenStatus setTokens(const UnicodeString& pattern, int32_t startPos, int32_t *len);
@@ -220,7 +218,7 @@ public:
DistanceInfo() {}
virtual ~DistanceInfo();
void clear() { missingFieldMask = extraFieldMask = 0; }
- void setTo(DistanceInfo& other);
+ void setTo(const DistanceInfo& other);
void addMissing(int32_t field) { missingFieldMask |= (1<<field); }
void addExtra(int32_t field) { extraFieldMask |= (1<<field); }
};
@@ -237,11 +235,11 @@ public:
void copyFrom();
PtnSkeleton* getSkeletonPtr();
UBool equals(const DateTimeMatcher* other) const;
- int32_t getDistance(const DateTimeMatcher& other, int32_t includeMask, DistanceInfo& distanceInfo);
+ int32_t getDistance(const DateTimeMatcher& other, int32_t includeMask, DistanceInfo& distanceInfo) const;
DateTimeMatcher();
DateTimeMatcher(const DateTimeMatcher& other);
virtual ~DateTimeMatcher();
- int32_t getFieldMask();
+ int32_t getFieldMask() const;
};
class PatternMap : public UMemory {
@@ -250,34 +248,34 @@ public:
PatternMap();
virtual ~PatternMap();
void add(const UnicodeString& basePattern, const PtnSkeleton& skeleton, const UnicodeString& value, UBool skeletonWasSpecified, UErrorCode& status);
- const UnicodeString* getPatternFromBasePattern(UnicodeString& basePattern, UBool& skeletonWasSpecified);
- const UnicodeString* getPatternFromSkeleton(PtnSkeleton& skeleton, const PtnSkeleton** specifiedSkeletonPtr = 0);
+ const UnicodeString* getPatternFromBasePattern(const UnicodeString& basePattern, UBool& skeletonWasSpecified) const;
+ const UnicodeString* getPatternFromSkeleton(const PtnSkeleton& skeleton, const PtnSkeleton** specifiedSkeletonPtr = 0) const;
void copyFrom(const PatternMap& other, UErrorCode& status);
- PtnElem* getHeader(UChar baseChar);
- UBool equals(const PatternMap& other);
+ PtnElem* getHeader(UChar baseChar) const;
+ UBool equals(const PatternMap& other) const;
private:
UBool isDupAllowed;
- PtnElem* getDuplicateElem(const UnicodeString &basePattern, const PtnSkeleton& skeleton, PtnElem *baseElem);
+ PtnElem* getDuplicateElem(const UnicodeString& basePattern, const PtnSkeleton& skeleton, PtnElem *baseElem);
}; // end PatternMap
class PatternMapIterator : public UMemory {
public:
- PatternMapIterator();
+ PatternMapIterator(UErrorCode &status);
virtual ~PatternMapIterator();
void set(PatternMap& patternMap);
- PtnSkeleton* getSkeleton();
- UBool hasNext();
+ PtnSkeleton* getSkeleton() const;
+ UBool hasNext() const;
DateTimeMatcher& next();
private:
int32_t bootIndex;
PtnElem *nodePtr;
- DateTimeMatcher *matcher;
+ LocalPointer<DateTimeMatcher> matcher;
PatternMap *patternMap;
};
class DTSkeletonEnumeration : public StringEnumeration {
public:
- DTSkeletonEnumeration(PatternMap &patternMap, dtStrEnum type, UErrorCode& status);
+ DTSkeletonEnumeration(PatternMap& patternMap, dtStrEnum type, UErrorCode& status);
virtual ~DTSkeletonEnumeration();
static UClassID U_EXPORT2 getStaticClassID(void);
virtual UClassID getDynamicClassID(void) const;
@@ -287,7 +285,7 @@ public:
private:
int32_t pos;
UBool isCanonicalItem(const UnicodeString& item);
- UVector *fSkeletons;
+ LocalPointer<UVector> fSkeletons;
};
class DTRedundantEnumeration : public StringEnumeration {
@@ -302,8 +300,8 @@ public:
void add(const UnicodeString &pattern, UErrorCode& status);
private:
int32_t pos;
- UBool isCanonicalItem(const UnicodeString& item);
- UVector *fPatterns;
+ UBool isCanonicalItem(const UnicodeString& item) const;
+ LocalPointer<UVector> fPatterns;
};
U_NAMESPACE_END
diff --git a/Build/source/libs/icu/icu-src/source/i18n/erarules.cpp b/Build/source/libs/icu/icu-src/source/i18n/erarules.cpp
new file mode 100644
index 00000000000..f6cbc259463
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/erarules.cpp
@@ -0,0 +1,309 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+#include <stdlib.h>
+#include "unicode/ucal.h"
+#include "unicode/ures.h"
+#include "unicode/ustring.h"
+#include "cmemory.h"
+#include "cstring.h"
+#include "erarules.h"
+#include "gregoimp.h"
+#include "uassert.h"
+
+U_NAMESPACE_BEGIN
+
+static const int32_t MAX_ENCODED_START_YEAR = 32767;
+static const int32_t MIN_ENCODED_START_YEAR = -32768;
+static const int32_t MIN_ENCODED_START = -2147483391; // encodeDate(MIN_ENCODED_START_YEAR, 1, 1, ...);
+
+static const int32_t YEAR_MASK = 0xFFFF0000;
+static const int32_t MONTH_MASK = 0x0000FF00;
+static const int32_t DAY_MASK = 0x000000FF;
+
+static const int32_t MAX_INT32 = 0x7FFFFFFF;
+static const int32_t MIN_INT32 = 0xFFFFFFFF;
+
+static const UChar VAL_FALSE[] = {0x66, 0x61, 0x6c, 0x73, 0x65}; // "false"
+static const UChar VAL_FALSE_LEN = 5;
+
+static UBool isSet(int startDate) {
+ return startDate != 0;
+}
+
+static UBool isValidRuleStartDate(int32_t year, int32_t month, int32_t day) {
+ return year >= MIN_ENCODED_START_YEAR && year <= MAX_ENCODED_START_YEAR
+ && month >= 1 && month <= 12 && day >=1 && day <= 31;
+}
+
+/**
+ * Encode year/month/date to a single integer.
+ * year is high 16 bits (-32768 to 32767), month is
+ * next 8 bits and day of month is last 8 bits.
+ *
+ * @param year year
+ * @param month month (1-base)
+ * @param day day of month
+ * @return an encoded date.
+ */
+static int32_t encodeDate(int32_t year, int32_t month, int32_t day) {
+ return year << 16 | month << 8 | day;
+}
+
+static void decodeDate(int32_t encodedDate, int32_t (&fields)[3]) {
+ if (encodedDate == MIN_ENCODED_START) {
+ fields[0] = MIN_INT32;
+ fields[1] = 1;
+ fields[2] = 1;
+ } else {
+ fields[0] = (encodedDate & YEAR_MASK) >> 16;
+ fields[1] = (encodedDate & MONTH_MASK) >> 8;
+ fields[2] = encodedDate & DAY_MASK;
+ }
+}
+
+/**
+ * Compare an encoded date with another date specified by year/month/day.
+ * @param encoded An encoded date
+ * @param year Year of another date
+ * @param month Month of another date
+ * @param day Day of another date
+ * @return -1 when encoded date is earlier, 0 when two dates are same,
+ * and 1 when encoded date is later.
+ */
+static int32_t compareEncodedDateWithYMD(int encoded, int year, int month, int day) {
+ if (year < MIN_ENCODED_START_YEAR) {
+ if (encoded == MIN_ENCODED_START) {
+ if (year > MIN_INT32 || month > 1 || day > 1) {
+ return -1;
+ }
+ return 0;
+ } else {
+ return 1;
+ }
+ } else if (year > MAX_ENCODED_START_YEAR) {
+ return -1;
+ } else {
+ int tmp = encodeDate(year, month, day);
+ if (encoded < tmp) {
+ return -1;
+ } else if (encoded == tmp) {
+ return 0;
+ } else {
+ return 1;
+ }
+ }
+}
+
+EraRules::EraRules(LocalMemory<int32_t>& eraStartDates, int32_t numEras)
+ : numEras(numEras) {
+ startDates.moveFrom(eraStartDates);
+ initCurrentEra();
+}
+
+EraRules::~EraRules() {
+}
+
+EraRules* EraRules::createInstance(const char *calType, UBool includeTentativeEra, UErrorCode& status) {
+ if(U_FAILURE(status)) {
+ return nullptr;
+ }
+ LocalUResourceBundlePointer rb(ures_openDirect(nullptr, "supplementalData", &status));
+ ures_getByKey(rb.getAlias(), "calendarData", rb.getAlias(), &status);
+ ures_getByKey(rb.getAlias(), calType, rb.getAlias(), &status);
+ ures_getByKey(rb.getAlias(), "eras", rb.getAlias(), &status);
+
+ if (U_FAILURE(status)) {
+ return nullptr;
+ }
+
+ int32_t numEras = ures_getSize(rb.getAlias());
+ int32_t firstTentativeIdx = MAX_INT32;
+
+ LocalMemory<int32_t> startDates(static_cast<int32_t *>(uprv_malloc(numEras * sizeof(int32_t))));
+ if (startDates.isNull()) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return nullptr;
+ }
+ uprv_memset(startDates.getAlias(), 0 , numEras * sizeof(int32_t));
+
+ while (ures_hasNext(rb.getAlias())) {
+ LocalUResourceBundlePointer eraRuleRes(ures_getNextResource(rb.getAlias(), nullptr, &status));
+ if (U_FAILURE(status)) {
+ return nullptr;
+ }
+ const char *eraIdxStr = ures_getKey(eraRuleRes.getAlias());
+ char *endp;
+ int32_t eraIdx = (int32_t)strtol(eraIdxStr, &endp, 10);
+ if ((size_t)(endp - eraIdxStr) != uprv_strlen(eraIdxStr)) {
+ status = U_INVALID_FORMAT_ERROR;
+ return nullptr;
+ }
+ if (eraIdx < 0 || eraIdx >= numEras) {
+ status = U_INVALID_FORMAT_ERROR;
+ return nullptr;
+ }
+ if (isSet(startDates[eraIdx])) {
+ // start date of the index was already set
+ status = U_INVALID_FORMAT_ERROR;
+ return nullptr;
+ }
+
+ UBool hasName = TRUE;
+ UBool hasEnd = TRUE;
+ int32_t len;
+ while (ures_hasNext(eraRuleRes.getAlias())) {
+ LocalUResourceBundlePointer res(ures_getNextResource(eraRuleRes.getAlias(), nullptr, &status));
+ if (U_FAILURE(status)) {
+ return nullptr;
+ }
+ const char *key = ures_getKey(res.getAlias());
+ if (uprv_strcmp(key, "start") == 0) {
+ const int32_t *fields = ures_getIntVector(res.getAlias(), &len, &status);
+ if (U_FAILURE(status)) {
+ return nullptr;
+ }
+ if (len != 3 || !isValidRuleStartDate(fields[0], fields[1], fields[2])) {
+ status = U_INVALID_FORMAT_ERROR;
+ return nullptr;
+ }
+ startDates[eraIdx] = encodeDate(fields[0], fields[1], fields[2]);
+ } else if (uprv_strcmp(key, "named") == 0) {
+ const UChar *val = ures_getString(res.getAlias(), &len, &status);
+ if (u_strncmp(val, VAL_FALSE, VAL_FALSE_LEN) == 0) {
+ hasName = FALSE;
+ }
+ } else if (uprv_strcmp(key, "end") == 0) {
+ hasEnd = TRUE;
+ }
+ }
+
+ if (isSet(startDates[eraIdx])) {
+ if (hasEnd) {
+ // This implementation assumes either start or end is available, not both.
+ // For now, just ignore the end rule.
+ }
+ } else {
+ if (hasEnd) {
+ if (eraIdx != 0) {
+ // This implementation does not support end only rule for eras other than
+ // the first one.
+ status = U_INVALID_FORMAT_ERROR;
+ return nullptr;
+ }
+ U_ASSERT(eraIdx == 0);
+ startDates[eraIdx] = MIN_ENCODED_START;
+ } else {
+ status = U_INVALID_FORMAT_ERROR;
+ return nullptr;
+ }
+ }
+
+ if (hasName) {
+ if (eraIdx >= firstTentativeIdx) {
+ status = U_INVALID_FORMAT_ERROR;
+ return nullptr;
+ }
+ } else {
+ if (eraIdx < firstTentativeIdx) {
+ firstTentativeIdx = eraIdx;
+ }
+ }
+ }
+
+ EraRules *result;
+ if (firstTentativeIdx < MAX_INT32 && !includeTentativeEra) {
+ result = new EraRules(startDates, firstTentativeIdx);
+ } else {
+ result = new EraRules(startDates, numEras);
+ }
+
+ if (result == nullptr) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ }
+ return result;
+}
+
+void EraRules::getStartDate(int32_t eraIdx, int32_t (&fields)[3], UErrorCode& status) const {
+ if(U_FAILURE(status)) {
+ return;
+ }
+ if (eraIdx < 0 || eraIdx >= numEras) {
+ status = U_ILLEGAL_ARGUMENT_ERROR;
+ return;
+ }
+ decodeDate(startDates[eraIdx], fields);
+}
+
+int32_t EraRules::getStartYear(int32_t eraIdx, UErrorCode& status) const {
+ int year = MAX_INT32; // bogus value
+ if(U_FAILURE(status)) {
+ return year;
+ }
+ if (eraIdx < 0 || eraIdx >= numEras) {
+ status = U_ILLEGAL_ARGUMENT_ERROR;
+ return year;
+ }
+ int fields[3];
+ decodeDate(startDates[eraIdx], fields);
+ year = fields[0];
+
+ return year;
+}
+
+int32_t EraRules::getEraIndex(int32_t year, int32_t month, int32_t day, UErrorCode& status) const {
+ if(U_FAILURE(status)) {
+ return -1;
+ }
+
+ if (month < 1 || month > 12 || day < 1 || day > 31) {
+ status = U_ILLEGAL_ARGUMENT_ERROR;
+ return -1;
+ }
+ int32_t high = numEras; // last index + 1
+ int32_t low;
+
+ // Short circuit for recent years. Most modern computations will
+ // occur in the last few eras.
+ if (compareEncodedDateWithYMD(startDates[getCurrentEraIndex()], year, month, day) <= 0) {
+ low = getCurrentEraIndex();
+ } else {
+ low = 0;
+ }
+
+ // Do binary search
+ while (low < high - 1) {
+ int i = (low + high) / 2;
+ if (compareEncodedDateWithYMD(startDates[i], year, month, day) <= 0) {
+ low = i;
+ } else {
+ high = i;
+ }
+ }
+ return low;
+}
+
+void EraRules::initCurrentEra() {
+ UDate now = ucal_getNow();
+ int year, month0, dom, dow, doy, mid;
+ Grego::timeToFields(now, year, month0, dom, dow, doy, mid);
+ int currentEncodedDate = encodeDate(year, month0 + 1 /* changes to 1-base */, dom);
+ int eraIdx = numEras - 1;
+ while (eraIdx > 0) {
+ if (currentEncodedDate >= startDates[eraIdx]) {
+ break;
+ }
+ eraIdx--;
+ }
+ // Note: current era could be before the first era.
+ // In this case, this implementation returns the first era index (0).
+ currentEra = eraIdx;}
+
+U_NAMESPACE_END
+#endif /* #if !UCONFIG_NO_FORMATTING */
+
+
diff --git a/Build/source/libs/icu/icu-src/source/i18n/erarules.h b/Build/source/libs/icu/icu-src/source/i18n/erarules.h
new file mode 100644
index 00000000000..4ed86408325
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/erarules.h
@@ -0,0 +1,92 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#ifndef ERARULES_H_
+#define ERARULES_H_
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+#include "unicode/localpointer.h"
+#include "unicode/uobject.h"
+#include "cmemory.h"
+
+U_NAMESPACE_BEGIN
+
+// Export an explicit template instantiation of LocalMemory used as a data member of EraRules.
+// When building DLLs for Windows this is required even though no direct access leaks out of the i18n library.
+// See digitlst.h, pluralaffix.h, datefmt.h, and others for similar examples.
+#if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN
+// Ignore warning 4661 as LocalPointerBase does not use operator== or operator!=
+#pragma warning(suppress: 4661)
+template class U_I18N_API LocalPointerBase<int32_t>;
+template class U_I18N_API LocalMemory<int32_t>;
+#endif
+
+class U_I18N_API EraRules : public UMemory {
+public:
+ ~EraRules();
+
+ static EraRules* createInstance(const char *calType, UBool includeTentativeEra, UErrorCode& status);
+
+ /**
+ * Gets number of effective eras
+ * @return number of effective eras
+ */
+ inline int32_t getNumberOfEras() const {
+ return numEras;
+ }
+
+ /**
+ * Gets start date of an era
+ * @param eraIdx Era index
+ * @param fields Receives date fields. The result includes values of year, month,
+ * day of month in this order. When an era has no start date, the result
+ * will be January 1st in year whose value is minimum integer.
+ * @param status Receives status.
+ */
+ void getStartDate(int32_t eraIdx, int32_t (&fields)[3], UErrorCode& status) const;
+
+ /**
+ * Gets start year of an era
+ * @param eraIdx Era index
+ * @param status Receives status.
+ * @return The first year of an era. When a era has no start date, minimum int32
+ * value is returned.
+ */
+ int32_t getStartYear(int32_t eraIdx, UErrorCode& status) const;
+
+ /**
+ * Returns era index for the specified year/month/day.
+ * @param year Year
+ * @param month Month (1-base)
+ * @param day Day of month
+ * @param status Receives status
+ * @return era index (or 0, when the specified date is before the first era)
+ */
+ int32_t getEraIndex(int32_t year, int32_t month, int32_t day, UErrorCode& status) const;
+
+ /**
+ * Gets the current era index. This is calculated only once for an instance of
+ * EraRules.
+ *
+ * @return era index of current era (or 0, when current date is before the first era)
+ */
+ inline int32_t getCurrentEraIndex() const {
+ return currentEra;
+ }
+
+private:
+ EraRules(LocalMemory<int32_t>& eraStartDates, int32_t numEra);
+
+ void initCurrentEra();
+
+ LocalMemory<int32_t> startDates;
+ int32_t numEras;
+ int32_t currentEra;
+};
+
+U_NAMESPACE_END
+#endif /* #if !UCONFIG_NO_FORMATTING */
+#endif /* ERARULES_H_ */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/fmtable.cpp b/Build/source/libs/icu/icu-src/source/i18n/fmtable.cpp
index c2a398d847a..45c7024fc29 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/fmtable.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/fmtable.cpp
@@ -19,6 +19,7 @@
#if !UCONFIG_NO_FORMATTING
+#include <cstdlib>
#include <math.h>
#include "unicode/fmtable.h"
#include "unicode/ustring.h"
@@ -28,9 +29,8 @@
#include "charstr.h"
#include "cmemory.h"
#include "cstring.h"
-#include "decNumber.h"
-#include "digitlst.h"
#include "fmtableimp.h"
+#include "number_decimalquantity.h"
// *****************************************************************************
// class Formattable
@@ -40,6 +40,8 @@ U_NAMESPACE_BEGIN
UOBJECT_DEFINE_RTTI_IMPLEMENTATION(Formattable)
+using number::impl::DecimalQuantity;
+
//-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
@@ -103,7 +105,7 @@ void Formattable::init() {
fValue.fInt64 = 0;
fType = kLong;
fDecimalStr = NULL;
- fDecimalNum = NULL;
+ fDecimalQuantity = NULL;
fBogus.setToBogus();
}
@@ -257,8 +259,8 @@ Formattable::operator=(const Formattable& source)
}
UErrorCode status = U_ZERO_ERROR;
- if (source.fDecimalNum != NULL) {
- fDecimalNum = new DigitList(*source.fDecimalNum); // TODO: use internal digit list
+ if (source.fDecimalQuantity != NULL) {
+ fDecimalQuantity = new DecimalQuantity(*source.fDecimalQuantity);
}
if (source.fDecimalStr != NULL) {
fDecimalStr = new CharString(*source.fDecimalStr, status);
@@ -356,14 +358,9 @@ void Formattable::dispose()
delete fDecimalStr;
fDecimalStr = NULL;
-
- FmtStackData *stackData = (FmtStackData*)fStackData;
- if(fDecimalNum != &(stackData->stackDecimalNum)) {
- delete fDecimalNum;
- } else {
- fDecimalNum->~DigitList(); // destruct, don't deallocate
- }
- fDecimalNum = NULL;
+
+ delete fDecimalQuantity;
+ fDecimalQuantity = NULL;
}
Formattable *
@@ -465,13 +462,13 @@ Formattable::getInt64(UErrorCode& status) const
} else if (fValue.fDouble < (double)U_INT64_MIN) {
status = U_INVALID_FORMAT_ERROR;
return U_INT64_MIN;
- } else if (fabs(fValue.fDouble) > U_DOUBLE_MAX_EXACT_INT && fDecimalNum != NULL) {
- int64_t val = fDecimalNum->getInt64();
- if (val != 0) {
- return val;
+ } else if (fabs(fValue.fDouble) > U_DOUBLE_MAX_EXACT_INT && fDecimalQuantity != NULL) {
+ if (fDecimalQuantity->fitsInLong(true)) {
+ return fDecimalQuantity->toLong();
} else {
+ // Unexpected
status = U_INVALID_FORMAT_ERROR;
- return fValue.fDouble > 0 ? U_INT64_MAX : U_INT64_MIN;
+ return fDecimalQuantity->isNegative() ? U_INT64_MIN : U_INT64_MAX;
}
} else {
return (int64_t)fValue.fDouble;
@@ -714,84 +711,85 @@ StringPiece Formattable::getDecimalNumber(UErrorCode &status) {
CharString *Formattable::internalGetCharString(UErrorCode &status) {
if(fDecimalStr == NULL) {
- if (fDecimalNum == NULL) {
+ if (fDecimalQuantity == NULL) {
// No decimal number for the formattable yet. Which means the value was
// set directly by the user as an int, int64 or double. If the value came
// from parsing, or from the user setting a decimal number, fDecimalNum
// would already be set.
//
- fDecimalNum = new DigitList; // TODO: use internal digit list
- if (fDecimalNum == NULL) {
- status = U_MEMORY_ALLOCATION_ERROR;
- return NULL;
- }
-
- switch (fType) {
- case kDouble:
- fDecimalNum->set(this->getDouble());
- break;
- case kLong:
- fDecimalNum->set(this->getLong());
- break;
- case kInt64:
- fDecimalNum->set(this->getInt64());
- break;
- default:
- // The formattable's value is not a numeric type.
- status = U_INVALID_STATE_ERROR;
- return NULL;
- }
+ LocalPointer<DecimalQuantity> dq(new DecimalQuantity(), status);
+ if (U_FAILURE(status)) { return nullptr; }
+ populateDecimalQuantity(*dq, status);
+ if (U_FAILURE(status)) { return nullptr; }
+ fDecimalQuantity = dq.orphan();
}
- fDecimalStr = new CharString;
+ fDecimalStr = new CharString();
if (fDecimalStr == NULL) {
status = U_MEMORY_ALLOCATION_ERROR;
return NULL;
}
- fDecimalNum->getDecimal(*fDecimalStr, status);
+ // Older ICUs called uprv_decNumberToString here, which is not exactly the same as
+ // DecimalQuantity::toScientificString(). The biggest difference is that uprv_decNumberToString does
+ // not print scientific notation for magnitudes greater than -5 and smaller than some amount (+5?).
+ if (fDecimalQuantity->isZero()) {
+ fDecimalStr->append("0", -1, status);
+ } else if (std::abs(fDecimalQuantity->getMagnitude()) < 5) {
+ fDecimalStr->appendInvariantChars(fDecimalQuantity->toPlainString(), status);
+ } else {
+ fDecimalStr->appendInvariantChars(fDecimalQuantity->toScientificString(), status);
+ }
}
return fDecimalStr;
}
+void
+Formattable::populateDecimalQuantity(number::impl::DecimalQuantity& output, UErrorCode& status) const {
+ if (fDecimalQuantity != nullptr) {
+ output = *fDecimalQuantity;
+ return;
+ }
-DigitList *
-Formattable::getInternalDigitList() {
- FmtStackData *stackData = (FmtStackData*)fStackData;
- if(fDecimalNum != &(stackData->stackDecimalNum)) {
- delete fDecimalNum;
- fDecimalNum = new (&(stackData->stackDecimalNum), kOnStack) DigitList();
- } else {
- fDecimalNum->clear();
- }
- return fDecimalNum;
+ switch (fType) {
+ case kDouble:
+ output.setToDouble(this->getDouble());
+ output.roundToInfinity();
+ break;
+ case kLong:
+ output.setToInt(this->getLong());
+ break;
+ case kInt64:
+ output.setToLong(this->getInt64());
+ break;
+ default:
+ // The formattable's value is not a numeric type.
+ status = U_INVALID_STATE_ERROR;
+ }
}
// ---------------------------------------
void
-Formattable::adoptDigitList(DigitList *dl) {
- if(fDecimalNum==dl) {
- fDecimalNum = NULL; // don't delete
- }
- dispose();
-
- fDecimalNum = dl;
-
- if(dl==NULL) { // allow adoptDigitList(NULL) to clear
- return;
- }
+Formattable::adoptDecimalQuantity(DecimalQuantity *dq) {
+ if (fDecimalQuantity != NULL) {
+ delete fDecimalQuantity;
+ }
+ fDecimalQuantity = dq;
+ if (dq == NULL) { // allow adoptDigitList(NULL) to clear
+ return;
+ }
// Set the value into the Union of simple type values.
- // Cannot use the set() functions because they would delete the fDecimalNum value,
-
- if (fDecimalNum->fitsIntoLong(FALSE)) {
- fType = kLong;
- fValue.fInt64 = fDecimalNum->getLong();
- } else if (fDecimalNum->fitsIntoInt64(FALSE)) {
- fType = kInt64;
- fValue.fInt64 = fDecimalNum->getInt64();
+ // Cannot use the set() functions because they would delete the fDecimalNum value.
+ if (fDecimalQuantity->fitsInLong()) {
+ fValue.fInt64 = fDecimalQuantity->toLong();
+ if (fValue.fInt64 <= INT32_MAX && fValue.fInt64 >= INT32_MIN) {
+ fType = kLong;
+ } else {
+ fType = kInt64;
+ }
} else {
fType = kDouble;
- fValue.fDouble = fDecimalNum->getDouble();
+ fValue.fDouble = fDecimalQuantity->toDouble();
}
}
@@ -804,24 +802,12 @@ Formattable::setDecimalNumber(StringPiece numberString, UErrorCode &status) {
}
dispose();
- // Copy the input string and nul-terminate it.
- // The decNumber library requires nul-terminated input. StringPiece input
- // is not guaranteed nul-terminated. Too bad.
- // CharString automatically adds the nul.
- DigitList *dnum = new DigitList(); // TODO: use getInternalDigitList
- if (dnum == NULL) {
- status = U_MEMORY_ALLOCATION_ERROR;
- return;
- }
- dnum->set(CharString(numberString, status).toStringPiece(), status);
- if (U_FAILURE(status)) {
- delete dnum;
- return; // String didn't contain a decimal number.
- }
- adoptDigitList(dnum);
+ auto* dq = new DecimalQuantity();
+ dq->setToDecNumber(numberString, status);
+ adoptDecimalQuantity(dq);
// Note that we do not hang on to the caller's input string.
- // If we are asked for the string, we will regenerate one from fDecimalNum.
+ // If we are asked for the string, we will regenerate one from fDecimalQuantity.
}
#if 0
diff --git a/Build/source/libs/icu/icu-src/source/i18n/fmtableimp.h b/Build/source/libs/icu/icu-src/source/i18n/fmtableimp.h
index 12cea9a4409..2707d6ece2e 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/fmtableimp.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/fmtableimp.h
@@ -10,22 +10,12 @@
#ifndef FMTABLEIMP_H
#define FMTABLEIMP_H
-#include "digitlst.h"
+#include "number_decimalquantity.h"
#if !UCONFIG_NO_FORMATTING
U_NAMESPACE_BEGIN
-/**
- * @internal
- */
-struct FmtStackData {
- DigitList stackDecimalNum; // 128
- //CharString stackDecimalStr; // 64
- // -----
- // 192 total
-};
-
/**
* Maximum int64_t value that can be stored in a double without chancing losing precision.
* IEEE doubles have 53 bits of mantissa, 10 bits exponent, 1 bit sign.
diff --git a/Build/source/libs/icu/icu-src/source/i18n/fphdlimp.cpp b/Build/source/libs/icu/icu-src/source/i18n/fphdlimp.cpp
index abcec97ee31..c4015fae1bb 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/fphdlimp.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/fphdlimp.cpp
@@ -22,17 +22,8 @@ U_NAMESPACE_BEGIN
FieldPositionHandler::~FieldPositionHandler() {
}
-void
-FieldPositionHandler::addAttribute(int32_t, int32_t, int32_t) {
-}
-
-void
-FieldPositionHandler::shiftLast(int32_t) {
-}
-
-UBool
-FieldPositionHandler::isRecording(void) const {
- return FALSE;
+void FieldPositionHandler::setShift(int32_t delta) {
+ fShift = delta;
}
@@ -48,8 +39,8 @@ FieldPositionOnlyHandler::~FieldPositionOnlyHandler() {
void
FieldPositionOnlyHandler::addAttribute(int32_t id, int32_t start, int32_t limit) {
if (pos.getField() == id) {
- pos.setBeginIndex(start);
- pos.setEndIndex(limit);
+ pos.setBeginIndex(start + fShift);
+ pos.setEndIndex(limit + fShift);
}
}
@@ -91,8 +82,8 @@ FieldPositionIteratorHandler::addAttribute(int32_t id, int32_t start, int32_t li
if (iter && U_SUCCESS(status) && start < limit) {
int32_t size = vec->size();
vec->addElement(id, status);
- vec->addElement(start, status);
- vec->addElement(limit, status);
+ vec->addElement(start + fShift, status);
+ vec->addElement(limit + fShift, status);
if (!U_SUCCESS(status)) {
vec->setSize(size);
}
diff --git a/Build/source/libs/icu/icu-src/source/i18n/fphdlimp.h b/Build/source/libs/icu/icu-src/source/i18n/fphdlimp.h
index f3ac12c2bac..a6827e01e98 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/fphdlimp.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/fphdlimp.h
@@ -10,9 +10,10 @@
#ifndef FPHDLIMP_H
#define FPHDLIMP_H
+#include "unicode/utypes.h"
+
#if !UCONFIG_NO_FORMATTING
-#include "unicode/utypes.h"
#include "unicode/fieldpos.h"
#include "unicode/fpositer.h"
@@ -22,11 +23,16 @@ U_NAMESPACE_BEGIN
// base class, null implementation
class U_I18N_API FieldPositionHandler: public UMemory {
+ protected:
+ int32_t fShift = 0;
+
public:
virtual ~FieldPositionHandler();
- virtual void addAttribute(int32_t id, int32_t start, int32_t limit);
- virtual void shiftLast(int32_t delta);
- virtual UBool isRecording(void) const;
+ virtual void addAttribute(int32_t id, int32_t start, int32_t limit) = 0;
+ virtual void shiftLast(int32_t delta) = 0;
+ virtual UBool isRecording(void) const = 0;
+
+ void setShift(int32_t delta);
};
@@ -39,9 +45,9 @@ class FieldPositionOnlyHandler : public FieldPositionHandler {
FieldPositionOnlyHandler(FieldPosition& pos);
virtual ~FieldPositionOnlyHandler();
- virtual void addAttribute(int32_t id, int32_t start, int32_t limit);
- virtual void shiftLast(int32_t delta);
- virtual UBool isRecording(void) const;
+ void addAttribute(int32_t id, int32_t start, int32_t limit) U_OVERRIDE;
+ void shiftLast(int32_t delta) U_OVERRIDE;
+ UBool isRecording(void) const U_OVERRIDE;
};
@@ -63,9 +69,9 @@ class FieldPositionIteratorHandler : public FieldPositionHandler {
FieldPositionIteratorHandler(FieldPositionIterator* posIter, UErrorCode& status);
~FieldPositionIteratorHandler();
- virtual void addAttribute(int32_t id, int32_t start, int32_t limit);
- virtual void shiftLast(int32_t delta);
- virtual UBool isRecording(void) const;
+ void addAttribute(int32_t id, int32_t start, int32_t limit) U_OVERRIDE;
+ void shiftLast(int32_t delta) U_OVERRIDE;
+ UBool isRecording(void) const U_OVERRIDE;
};
U_NAMESPACE_END
diff --git a/Build/source/libs/icu/icu-src/source/i18n/gregocal.cpp b/Build/source/libs/icu/icu-src/source/i18n/gregocal.cpp
index 0485cca7cd9..71faeb09501 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/gregocal.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/gregocal.cpp
@@ -541,8 +541,8 @@ int32_t GregorianCalendar::handleComputeMonthStart(int32_t eyear, int32_t month,
}
UBool isLeap = eyear%4 == 0;
- int32_t y = eyear-1;
- int32_t julianDay = 365*y + ClockMath::floorDivide(y, 4) + (kJan1_1JulianDay - 3);
+ int64_t y = (int64_t)eyear-1;
+ int64_t julianDay = 365*y + ClockMath::floorDivide(y, (int64_t)4) + (kJan1_1JulianDay - 3);
nonConstThis->fIsGregorian = (eyear >= fGregorianCutoverYear);
#if defined (U_DEBUG_CAL)
@@ -572,7 +572,7 @@ int32_t GregorianCalendar::handleComputeMonthStart(int32_t eyear, int32_t month,
julianDay += isLeap?kLeapNumDays[month]:kNumDays[month];
}
- return julianDay;
+ return static_cast<int32_t>(julianDay);
}
int32_t GregorianCalendar::handleGetMonthLength(int32_t extendedYear, int32_t month) const
diff --git a/Build/source/libs/icu/icu-src/source/i18n/gregoimp.h b/Build/source/libs/icu/icu-src/source/i18n/gregoimp.h
index afaacda0b41..06eb3238451 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/gregoimp.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/gregoimp.h
@@ -299,8 +299,8 @@ inline int32_t Grego::millisToJulianDay(double millis) {
}
inline int32_t Grego::gregorianShift(int32_t eyear) {
- int32_t y = eyear-1;
- int32_t gregShift = ClockMath::floorDivide(y, 400) - ClockMath::floorDivide(y, 100) + 2;
+ int64_t y = (int64_t)eyear-1;
+ int32_t gregShift = static_cast<int32_t>(ClockMath::floorDivide(y, (int64_t)400) - ClockMath::floorDivide(y, (int64_t)100) + 2);
return gregShift;
}
diff --git a/Build/source/libs/icu/icu-src/source/i18n/i18n.vcxproj b/Build/source/libs/icu/icu-src/source/i18n/i18n.vcxproj
index aa15d5133b8..0e222a54d7c 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/i18n.vcxproj
+++ b/Build/source/libs/icu/icu-src/source/i18n/i18n.vcxproj
@@ -2,6 +2,8 @@
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- The following import will include the 'default' configuration options for VS projects. -->
<Import Project="..\allinone\Build.Windows.ProjectConfiguration.props" />
+ <!-- The following import will include the library configuration options for VS projects. -->
+ <Import Project="..\allinone\Build.Windows.Library.ProjectConfiguration.props" />
<PropertyGroup Label="Globals">
<ProjectGuid>{0178B127-6269-407D-B112-93877BB62776}</ProjectGuid>
</PropertyGroup>
@@ -93,7 +95,7 @@
<ProgramDataBaseFileName>.\x86\Release/</ProgramDataBaseFileName>
</ClCompile>
<Link>
- <OutputFile>..\..\bin\icuin61.dll</OutputFile>
+ <OutputFile>..\..\bin\icuin63.dll</OutputFile>
<AdditionalLibraryDirectories>.\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ProgramDatabaseFile>.\..\..\lib\icuin.pdb</ProgramDatabaseFile>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
@@ -115,7 +117,7 @@
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Link>
- <OutputFile>..\..\bin\icuin61d.dll</OutputFile>
+ <OutputFile>..\..\bin\icuin63d.dll</OutputFile>
<AdditionalLibraryDirectories>.\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ProgramDatabaseFile>.\..\..\lib\icuind.pdb</ProgramDatabaseFile>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
@@ -135,7 +137,7 @@
<ProgramDataBaseFileName>.\x64\Release/</ProgramDataBaseFileName>
</ClCompile>
<Link>
- <OutputFile>..\..\bin64\icuin61.dll</OutputFile>
+ <OutputFile>..\..\bin64\icuin63.dll</OutputFile>
<AdditionalLibraryDirectories>.\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ProgramDatabaseFile>.\..\..\lib64\icuin.pdb</ProgramDatabaseFile>
<ImportLibrary>..\..\lib64\icuin.lib</ImportLibrary>
@@ -153,13 +155,14 @@
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
- <OutputFile>..\..\bin64\icuin61d.dll</OutputFile>
+ <OutputFile>..\..\bin64\icuin63d.dll</OutputFile>
<AdditionalLibraryDirectories>.\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ProgramDatabaseFile>.\..\..\lib64\icuind.pdb</ProgramDatabaseFile>
<ImportLibrary>..\..\lib64\icuind.lib</ImportLibrary>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
+ <ClCompile Include="erarules.cpp" />
<ClCompile Include="region.cpp" />
<ClCompile Include="uregion.cpp" />
<ClCompile Include="alphaindex.cpp" />
@@ -197,18 +200,6 @@
<ClCompile Include="ucol_res.cpp" />
<ClCompile Include="ucol_sit.cpp" />
<ClCompile Include="ucoleitr.cpp" />
- <ClCompile Include="affixpatternparser.cpp" />
- <ClCompile Include="decimfmtimpl.cpp" />
- <ClCompile Include="digitaffix.cpp" />
- <ClCompile Include="digitaffixesandpadding.cpp" />
- <ClCompile Include="digitformatter.cpp" />
- <ClCompile Include="digitgrouping.cpp" />
- <ClCompile Include="digitinterval.cpp" />
- <ClCompile Include="pluralaffix.cpp" />
- <ClCompile Include="precision.cpp" />
- <ClCompile Include="smallintformatter.cpp" />
- <ClCompile Include="valueformatter.cpp" />
- <ClCompile Include="visibledigits.cpp" />
<ClCompile Include="uitercollationiterator.cpp" />
<ClCompile Include="usearch.cpp" />
<ClCompile Include="astro.cpp" />
@@ -229,16 +220,14 @@
<ClCompile Include="dayperiodrules.cpp" />
<ClCompile Include="dcfmtsym.cpp" />
<ClCompile Include="decContext.cpp" />
- <ClCompile Include="decfmtst.cpp" />
- <ClCompile Include="decimalformatpattern.cpp" />
<ClCompile Include="decimfmt.cpp" />
<ClCompile Include="decNumber.cpp" />
- <ClCompile Include="digitlst.cpp" />
<ClCompile Include="double-conversion-bignum-dtoa.cpp" />
<ClCompile Include="double-conversion-bignum.cpp" />
<ClCompile Include="double-conversion-cached-powers.cpp" />
<ClCompile Include="double-conversion-diy-fp.cpp" />
<ClCompile Include="double-conversion-fast-dtoa.cpp" />
+ <ClCompile Include="double-conversion-strtod.cpp" />
<ClCompile Include="double-conversion.cpp" />
<ClCompile Include="dtfmtsym.cpp" />
<ClCompile Include="dtitvfmt.cpp" />
@@ -258,6 +247,8 @@
<ClCompile Include="indiancal.cpp" />
<ClCompile Include="islamcal.cpp" />
<ClCompile Include="japancal.cpp" />
+ <ClCompile Include="listformatter.cpp" />
+ <ClCompile Include="ulistformatter.cpp" />
<ClCompile Include="measfmt.cpp" />
<ClCompile Include="measunit.cpp" />
<ClCompile Include="measure.cpp" />
@@ -267,6 +258,7 @@
<ClCompile Include="nfsubs.cpp" />
<ClCompile Include="nounit.cpp" />
<ClCompile Include="number_affixutils.cpp" />
+ <ClCompile Include="number_asformat.cpp" />
<ClCompile Include="number_compact.cpp" />
<ClCompile Include="number_decimalquantity.cpp" />
<ClCompile Include="number_decimfmtprops.cpp" />
@@ -283,6 +275,24 @@
<ClCompile Include="number_rounding.cpp" />
<ClCompile Include="number_scientific.cpp" />
<ClCompile Include="number_stringbuilder.cpp" />
+ <ClCompile Include="number_utils.cpp" />
+ <ClCompile Include="number_mapper.cpp" />
+ <ClCompile Include="number_multiplier.cpp" />
+ <ClCompile Include="number_currencysymbols.cpp" />
+ <ClCompile Include="number_skeletons.cpp" />
+ <ClCompile Include="number_capi.cpp" />
+ <ClCompile Include="numparse_stringsegment.cpp" />
+ <ClCompile Include="numparse_parsednumber.cpp" />
+ <ClCompile Include="numparse_impl.cpp" />
+ <ClCompile Include="numparse_symbols.cpp" />
+ <ClCompile Include="numparse_decimal.cpp" />
+ <ClCompile Include="numparse_scientific.cpp" />
+ <ClCompile Include="numparse_currency.cpp" />
+ <ClCompile Include="numparse_affixes.cpp" />
+ <ClCompile Include="numparse_compositions.cpp" />
+ <ClCompile Include="numparse_validators.cpp" />
+ <ClCompile Include="numrange_fluent.cpp" />
+ <ClCompile Include="numrange_impl.cpp" />
<ClCompile Include="numfmt.cpp" />
<ClCompile Include="numsys.cpp" />
<ClCompile Include="olsontz.cpp" />
@@ -385,20 +395,6 @@
</ItemGroup>
<ItemGroup>
<ClInclude Include="bocsu.h" />
- <ClInclude Include="affixpatternparser.h" />
- <ClInclude Include="decimalformatpatternimpl.h" />
- <ClInclude Include="decimfmtimpl.h" />
- <ClInclude Include="digitaffix.h" />
- <ClInclude Include="digitaffixesandpadding.h" />
- <ClInclude Include="digitformatter.h" />
- <ClInclude Include="digitgrouping.h" />
- <ClInclude Include="digitinterval.h" />
- <ClInclude Include="pluralaffix.h" />
- <ClInclude Include="precision.h" />
- <ClInclude Include="significantdigitinterval.h" />
- <ClInclude Include="smallintformatter.h" />
- <ClInclude Include="valueformatter.h" />
- <ClInclude Include="visibledigits.h" />
<ClInclude Include="collation.h" />
<ClInclude Include="collationbuilder.h" />
<ClInclude Include="collationcompare.h" />
@@ -419,7 +415,7 @@
<ClInclude Include="collationtailoring.h" />
<ClInclude Include="collationweights.h" />
<ClInclude Include="dayperiodrules.h" />
- <ClInclude Include="dcfmtimp.h" />
+ <ClInclude Include="erarules.h" />
<ClInclude Include="numsys_impl.h" />
<ClInclude Include="region_impl.h" />
<ClInclude Include="selfmtimpl.h" />
@@ -436,11 +432,8 @@
<ClInclude Include="currfmt.h" />
<ClInclude Include="dangical.h" />
<ClInclude Include="decContext.h" />
- <ClInclude Include="decfmtst.h" />
- <ClInclude Include="decimalformatpattern.h" />
<ClInclude Include="decNumber.h" />
<ClInclude Include="decNumberLocal.h" />
- <ClInclude Include="digitlst.h" />
<ClInclude Include="double-conversion-bignum-dtoa.h" />
<ClInclude Include="double-conversion-bignum.h" />
<ClInclude Include="double-conversion-cached-powers.h" />
@@ -531,11 +524,14 @@
<ClInclude Include="uspoof_conf.h" />
<ClInclude Include="uspoof_impl.h" />
<ClInclude Include="number_affixutils.h" />
+ <ClInclude Include="number_asformat.h" />
<ClInclude Include="number_compact.h" />
<ClInclude Include="number_decimalquantity.h" />
<ClInclude Include="number_decimfmtprops.h" />
+ <ClInclude Include="number_decnum.h" />
<ClInclude Include="number_formatimpl.h" />
<ClInclude Include="number_longnames.h" />
+ <ClInclude Include="number_microprops.h" />
<ClInclude Include="number_modifiers.h" />
<ClInclude Include="number_patternmodifier.h" />
<ClInclude Include="number_patternstring.h" />
@@ -543,7 +539,24 @@
<ClInclude Include="number_scientific.h" />
<ClInclude Include="number_stringbuilder.h" />
<ClInclude Include="number_types.h" />
+ <ClInclude Include="number_utypes.h" />
<ClInclude Include="number_utils.h" />
+ <ClInclude Include="number_mapper.h" />
+ <ClInclude Include="number_multiplier.h" />
+ <ClInclude Include="number_currencysymbols.h" />
+ <ClInclude Include="number_skeletons.h" />
+ <ClInclude Include="numparse_stringsegment.h" />
+ <ClInclude Include="numparse_impl.h" />
+ <ClInclude Include="numparse_symbols.h" />
+ <ClInclude Include="numparse_decimal.h" />
+ <ClInclude Include="numparse_scientific.h" />
+ <ClInclude Include="numparse_currency.h" />
+ <ClInclude Include="numparse_affixes.h" />
+ <ClInclude Include="numparse_compositions.h" />
+ <ClInclude Include="numparse_validators.h" />
+ <ClInclude Include="numparse_types.h" />
+ <ClInclude Include="numparse_utils.h" />
+ <ClInclude Include="numrange_impl.h" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="i18n.rc" />
@@ -553,4 +566,4 @@
<Import Project="$(SolutionDir)\Windows.CopyUnicodeHeaderFiles.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
-</Project> \ No newline at end of file
+</Project>
diff --git a/Build/source/libs/icu/icu-src/source/i18n/i18n.vcxproj.filters b/Build/source/libs/icu/icu-src/source/i18n/i18n.vcxproj.filters
index f9759133b90..c8f98451427 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/i18n.vcxproj.filters
+++ b/Build/source/libs/icu/icu-src/source/i18n/i18n.vcxproj.filters
@@ -54,45 +54,6 @@
<ClCompile Include="usearch.cpp">
<Filter>collation</Filter>
</ClCompile>
- <ClCompile Include="affixpatternparser.cpp">
- <Filter>formatting</Filter>
- </ClCompile>
- <ClCompile Include="dayperiodrules.cpp">
- <Filter>formatting</Filter>
- </ClCompile>
- <ClCompile Include="decimfmtimpl.cpp">
- <Filter>formatting</Filter>
- </ClCompile>
- <ClCompile Include="digitaffix.cpp">
- <Filter>formatting</Filter>
- </ClCompile>
- <ClCompile Include="digitaffixesandpadding.cpp">
- <Filter>formatting</Filter>
- </ClCompile>
- <ClCompile Include="digitformatter.cpp">
- <Filter>formatting</Filter>
- </ClCompile>
- <ClCompile Include="digitgrouping.cpp">
- <Filter>formatting</Filter>
- </ClCompile>
- <ClCompile Include="digitinterval.cpp">
- <Filter>formatting</Filter>
- </ClCompile>
- <ClCompile Include="pluralaffix.cpp">
- <Filter>formatting</Filter>
- </ClCompile>
- <ClCompile Include="precision.cpp">
- <Filter>formatting</Filter>
- </ClCompile>
- <ClCompile Include="smallintformatter.cpp">
- <Filter>formatting</Filter>
- </ClCompile>
- <ClCompile Include="valueformatter.cpp">
- <Filter>formatting</Filter>
- </ClCompile>
- <ClCompile Include="visibledigits.cpp">
- <Filter>formatting</Filter>
- </ClCompile>
<ClCompile Include="astro.cpp">
<Filter>formatting</Filter>
</ClCompile>
@@ -141,21 +102,12 @@
<ClCompile Include="decContext.cpp">
<Filter>formatting</Filter>
</ClCompile>
- <ClCompile Include="decfmtst.cpp">
- <Filter>formatting</Filter>
- </ClCompile>
- <ClCompile Include="decimalformatpattern.cpp">
- <Filter>formatting</Filter>
- </ClCompile>
<ClCompile Include="decimfmt.cpp">
<Filter>formatting</Filter>
</ClCompile>
<ClCompile Include="decNumber.cpp">
<Filter>formatting</Filter>
</ClCompile>
- <ClCompile Include="digitlst.cpp">
- <Filter>formatting</Filter>
- </ClCompile>
<ClCompile Include="double-conversion-bignum-dtoa.cpp">
<Filter>formatting</Filter>
</ClCompile>
@@ -171,6 +123,9 @@
<ClCompile Include="double-conversion-fast-dtoa.cpp">
<Filter>formatting</Filter>
</ClCompile>
+ <ClCompile Include="double-conversion-strtod.cpp">
+ <Filter>formatting</Filter>
+ </ClCompile>
<ClCompile Include="double-conversion.cpp">
<Filter>formatting</Filter>
</ClCompile>
@@ -228,6 +183,12 @@
<ClCompile Include="japancal.cpp">
<Filter>formatting</Filter>
</ClCompile>
+ <ClCompile Include="listformatter.cpp">
+ <Filter>formatting</Filter>
+ </ClCompile>
+ <ClCompile Include="ulistformatter.cpp">
+ <Filter>formatting</Filter>
+ </ClCompile>
<ClCompile Include="measfmt.cpp">
<Filter>formatting</Filter>
</ClCompile>
@@ -558,12 +519,15 @@
<ClCompile Include="uregion.cpp">
<Filter>formatting</Filter>
</ClCompile>
- <ClCompile Include="number_stringbuilder.cpp">
- <Filter>formatting</Filter>
+ <ClCompile Include="nounit.cpp">
+ <Filter>misc</Filter>
</ClCompile>
<ClCompile Include="number_affixutils.cpp">
<Filter>formatting</Filter>
</ClCompile>
+ <ClCompile Include="number_asformat.cpp">
+ <Filter>formatting</Filter>
+ </ClCompile>
<ClCompile Include="number_compact.cpp">
<Filter>formatting</Filter>
</ClCompile>
@@ -609,8 +573,68 @@
<ClCompile Include="number_scientific.cpp">
<Filter>formatting</Filter>
</ClCompile>
- <ClCompile Include="nounit.cpp">
- <Filter>misc</Filter>
+ <ClCompile Include="number_stringbuilder.cpp">
+ <Filter>formatting</Filter>
+ </ClCompile>
+ <ClCompile Include="number_utils.cpp">
+ <Filter>formatting</Filter>
+ </ClCompile>
+ <ClCompile Include="number_mapper.cpp">
+ <Filter>formatting</Filter>
+ </ClCompile>
+ <ClCompile Include="number_multiplier.cpp">
+ <Filter>formatting</Filter>
+ </ClCompile>
+ <ClCompile Include="number_currencysymbols.cpp">
+ <Filter>formatting</Filter>
+ </ClCompile>
+ <ClCompile Include="number_skeletons.cpp">
+ <Filter>formatting</Filter>
+ </ClCompile>
+ <ClCompile Include="number_capi.cpp">
+ <Filter>formatting</Filter>
+ </ClCompile>
+ <ClCompile Include="numparse_stringsegment.cpp">
+ <Filter>formatting</Filter>
+ </ClCompile>
+ <ClCompile Include="numparse_parsednumber.cpp">
+ <Filter>formatting</Filter>
+ </ClCompile>
+ <ClCompile Include="numparse_impl.cpp">
+ <Filter>formatting</Filter>
+ </ClCompile>
+ <ClCompile Include="numparse_symbols.cpp">
+ <Filter>formatting</Filter>
+ </ClCompile>
+ <ClCompile Include="numparse_decimal.cpp">
+ <Filter>formatting</Filter>
+ </ClCompile>
+ <ClCompile Include="numparse_scientific.cpp">
+ <Filter>formatting</Filter>
+ </ClCompile>
+ <ClCompile Include="numparse_currency.cpp">
+ <Filter>formatting</Filter>
+ </ClCompile>
+ <ClCompile Include="numparse_affixes.cpp">
+ <Filter>formatting</Filter>
+ </ClCompile>
+ <ClCompile Include="numparse_compositions.cpp">
+ <Filter>formatting</Filter>
+ </ClCompile>
+ <ClCompile Include="numparse_validators.cpp">
+ <Filter>formatting</Filter>
+ </ClCompile>
+ <ClCompile Include="numrange_fluent.cpp">
+ <Filter>formatting</Filter>
+ </ClCompile>
+ <ClCompile Include="numrange_impl.cpp">
+ <Filter>formatting</Filter>
+ </ClCompile>
+ <ClCompile Include="dayperiodrules.cpp">
+ <Filter>formatting</Filter>
+ </ClCompile>
+ <ClCompile Include="erarules.cpp">
+ <Filter>formatting</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
@@ -695,48 +719,6 @@
<ClInclude Include="usrchimp.h">
<Filter>collation</Filter>
</ClInclude>
- <ClInclude Include="affixpatternparser.h">
- <Filter>formatting</Filter>
- </ClInclude>
- <ClInclude Include="decimalformatpatternimpl.h">
- <Filter>formatting</Filter>
- </ClInclude>
- <ClInclude Include="decimfmtimpl.h">
- <Filter>formatting</Filter>
- </ClInclude>
- <ClInclude Include="digitaffix.h">
- <Filter>formatting</Filter>
- </ClInclude>
- <ClInclude Include="digitaffixesandpadding.h">
- <Filter>formatting</Filter>
- </ClInclude>
- <ClInclude Include="digitformatter.h">
- <Filter>formatting</Filter>
- </ClInclude>
- <ClInclude Include="digitgrouping.h">
- <Filter>formatting</Filter>
- </ClInclude>
- <ClInclude Include="digitinterval.h">
- <Filter>formatting</Filter>
- </ClInclude>
- <ClInclude Include="pluralaffix.h">
- <Filter>formatting</Filter>
- </ClInclude>
- <ClInclude Include="precision.h">
- <Filter>formatting</Filter>
- </ClInclude>
- <ClInclude Include="significantdigitinterval.h">
- <Filter>formatting</Filter>
- </ClInclude>
- <ClInclude Include="smallintformatter.h">
- <Filter>formatting</Filter>
- </ClInclude>
- <ClInclude Include="valueformatter.h">
- <Filter>formatting</Filter>
- </ClInclude>
- <ClInclude Include="visibledigits.h">
- <Filter>formatting</Filter>
- </ClInclude>
<ClInclude Include="astro.h">
<Filter>formatting</Filter>
</ClInclude>
@@ -764,21 +746,12 @@
<ClInclude Include="decContext.h">
<Filter>formatting</Filter>
</ClInclude>
- <ClInclude Include="decfmtst.h">
- <Filter>formatting</Filter>
- </ClInclude>
- <ClInclude Include="decimalformatpattern.h">
- <Filter>formatting</Filter>
- </ClInclude>
<ClInclude Include="decNumber.h">
<Filter>formatting</Filter>
</ClInclude>
<ClInclude Include="decNumberLocal.h">
<Filter>formatting</Filter>
</ClInclude>
- <ClInclude Include="digitlst.h">
- <Filter>formatting</Filter>
- </ClInclude>
<ClInclude Include="double-conversion-bignum-dtoa.h">
<Filter>formatting</Filter>
</ClInclude>
@@ -851,6 +824,9 @@
<ClInclude Include="number_affixutils.h">
<Filter>formatting</Filter>
</ClInclude>
+ <ClInclude Include="number_asformat.h">
+ <Filter>formatting</Filter>
+ </ClInclude>
<ClInclude Include="number_compact.h">
<Filter>formatting</Filter>
</ClInclude>
@@ -860,12 +836,18 @@
<ClInclude Include="number_decimfmtprops.h">
<Filter>formatting</Filter>
</ClInclude>
+ <ClInclude Include="number_decnum.h">
+ <Filter>formatting</Filter>
+ </ClInclude>
<ClInclude Include="number_formatimpl.h">
<Filter>formatting</Filter>
</ClInclude>
<ClInclude Include="number_longnames.h">
<Filter>formatting</Filter>
</ClInclude>
+ <ClInclude Include="number_microprops.h">
+ <Filter>formatting</Filter>
+ </ClInclude>
<ClInclude Include="number_modifiers.h">
<Filter>formatting</Filter>
</ClInclude>
@@ -887,9 +869,60 @@
<ClInclude Include="number_types.h">
<Filter>formatting</Filter>
</ClInclude>
+ <ClInclude Include="number_utypes.h">
+ <Filter>formatting</Filter>
+ </ClInclude>
<ClInclude Include="number_utils.h">
<Filter>formatting</Filter>
</ClInclude>
+ <ClInclude Include="number_mapper.h">
+ <Filter>formatting</Filter>
+ </ClInclude>
+ <ClInclude Include="number_multiplier.h">
+ <Filter>formatting</Filter>
+ </ClInclude>
+ <ClInclude Include="number_currencysymbols.h">
+ <Filter>formatting</Filter>
+ </ClInclude>
+ <ClInclude Include="number_skeletons.h">
+ <Filter>formatting</Filter>
+ </ClInclude>
+ <ClInclude Include="numparse_stringsegment.h">
+ <Filter>formatting</Filter>
+ </ClInclude>
+ <ClInclude Include="numparse_impl.h">
+ <Filter>formatting</Filter>
+ </ClInclude>
+ <ClInclude Include="numparse_symbols.h">
+ <Filter>formatting</Filter>
+ </ClInclude>
+ <ClInclude Include="numparse_decimal.h">
+ <Filter>formatting</Filter>
+ </ClInclude>
+ <ClInclude Include="numparse_scientific.h">
+ <Filter>formatting</Filter>
+ </ClInclude>
+ <ClInclude Include="numparse_currency.h">
+ <Filter>formatting</Filter>
+ </ClInclude>
+ <ClInclude Include="numparse_affixes.h">
+ <Filter>formatting</Filter>
+ </ClInclude>
+ <ClInclude Include="numparse_compositions.h">
+ <Filter>formatting</Filter>
+ </ClInclude>
+ <ClInclude Include="numparse_validators.h">
+ <Filter>formatting</Filter>
+ </ClInclude>
+ <ClInclude Include="numparse_types.h">
+ <Filter>formatting</Filter>
+ </ClInclude>
+ <ClInclude Include="numparse_utils.h">
+ <Filter>formatting</Filter>
+ </ClInclude>
+ <ClInclude Include="numrange_impl.h">
+ <Filter>formatting</Filter>
+ </ClInclude>
<ClInclude Include="olsontz.h">
<Filter>formatting</Filter>
</ClInclude>
@@ -1091,9 +1124,6 @@
<ClInclude Include="numsys_impl.h">
<Filter>formatting</Filter>
</ClInclude>
- <ClInclude Include="dcfmtimp.h">
- <Filter>formatting</Filter>
- </ClInclude>
<ClInclude Include="selfmtimpl.h">
<Filter>formatting</Filter>
</ClInclude>
@@ -1166,252 +1196,13 @@
<ClInclude Include="utf8collationiterator.h">
<Filter>collation</Filter>
</ClInclude>
+ <ClInclude Include="erarules.h">
+ <Filter>formatting</Filter>
+ </ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="i18n.rc">
<Filter>misc</Filter>
</ResourceCompile>
</ItemGroup>
- <ItemGroup>
- <CustomBuild Include="unicode\coleitr.h">
- <Filter>collation</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\coll.h">
- <Filter>collation</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\search.h">
- <Filter>collation</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\sortkey.h">
- <Filter>collation</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\stsearch.h">
- <Filter>collation</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\tblcoll.h">
- <Filter>collation</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\ucol.h">
- <Filter>collation</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\ucoleitr.h">
- <Filter>collation</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\usearch.h">
- <Filter>collation</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\basictz.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\calendar.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\choicfmt.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\curramt.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\currunit.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\datefmt.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\dcfmtsym.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\decimfmt.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\dtfmtsym.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\dtitvfmt.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\dtitvinf.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\dtptngen.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\dtrule.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\fieldpos.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\fmtable.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\format.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\fpositer.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\gender.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\gregocal.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\measfmt.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\measunit.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\measure.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\msgfmt.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\numfmt.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\numsys.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\plurfmt.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\plurrule.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\rbnf.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\rbtz.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\scientificnumberformatter.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\selfmt.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\simpletz.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\smpdtfmt.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\timezone.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\tmunit.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\tmutamt.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\tmutfmt.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\tzrule.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\tztrans.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\ucal.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\udat.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\udateintervalformat.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\udatpg.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\ugender.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\ufieldpositer.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\ulocdata.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\umsg.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\unum.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\unumsys.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\upluralrules.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\ureldatefmt.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\utmscale.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\vtzone.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\regex.h">
- <Filter>regex</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\uregex.h">
- <Filter>regex</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\translit.h">
- <Filter>transforms</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\unirepl.h">
- <Filter>transforms</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\utrans.h">
- <Filter>transforms</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\ucsdet.h">
- <Filter>charset detect</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\uspoof.h">
- <Filter>spoof</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\alphaindex.h">
- <Filter>collation</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\tzfmt.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\tznames.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\compactdecimalformat.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\currpinf.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\region.h">
- <Filter>misc</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\uregion.h">
- <Filter>misc</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\reldatefmt.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\uformattable.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\nounit.h">
- <Filter>misc</Filter>
- </CustomBuild>
- <CustomBuild Include="unicode\numberformatter.h">
- <Filter>formatting</Filter>
- </CustomBuild>
- </ItemGroup>
</Project> \ No newline at end of file
diff --git a/Build/source/libs/icu/icu-src/source/i18n/i18n_uwp.vcxproj b/Build/source/libs/icu/icu-src/source/i18n/i18n_uwp.vcxproj
index 21d5032132b..49604f787e3 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/i18n_uwp.vcxproj
+++ b/Build/source/libs/icu/icu-src/source/i18n/i18n_uwp.vcxproj
@@ -2,6 +2,8 @@
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- The following import will include the 'default' configuration options for VS UWP projects. -->
<Import Project="..\allinone\Build.Windows.UWP.ProjectConfiguration.props" />
+ <!-- The following import will include the library configuration options for VS projects. -->
+ <Import Project="..\allinone\Build.Windows.Library.ProjectConfiguration.props" />
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
@@ -87,7 +89,7 @@
<CompileAsWinRT>false</CompileAsWinRT>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
- <ResourceCompile>
+ <ResourceCompile>
<Culture>0x0409</Culture>
<AdditionalIncludeDirectories>../common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
@@ -175,7 +177,7 @@
<ProgramDataBaseFileName>.\x86\ReleaseUWP/</ProgramDataBaseFileName>
</ClCompile>
<Link>
- <OutputFile>..\..\bin32uwp\icuin61.dll</OutputFile>
+ <OutputFile>..\..\bin32uwp\icuin63.dll</OutputFile>
<ProgramDatabaseFile>.\..\..\lib32uwp\icuin.pdb</ProgramDatabaseFile>
<ImportLibrary>..\..\lib32uwp\icuin.lib</ImportLibrary>
<AdditionalDependencies>..\..\lib32uwp\icuuc.lib;%(AdditionalDependencies)</AdditionalDependencies>
@@ -192,7 +194,7 @@
<ProgramDataBaseFileName>.\x86\DebugUWP/</ProgramDataBaseFileName>
</ClCompile>
<Link>
- <OutputFile>..\..\bin32uwp\icuin61d.dll</OutputFile>
+ <OutputFile>..\..\bin32uwp\icuin63d.dll</OutputFile>
<ProgramDatabaseFile>.\..\..\lib32uwp\icuind.pdb</ProgramDatabaseFile>
<ImportLibrary>..\..\lib32uwp\icuind.lib</ImportLibrary>
<AdditionalDependencies>..\..\lib32uwp\icuucd.lib;%(AdditionalDependencies)</AdditionalDependencies>
@@ -209,7 +211,7 @@
<ProgramDataBaseFileName>.\x64\ReleaseUWP/</ProgramDataBaseFileName>
</ClCompile>
<Link>
- <OutputFile>..\..\bin64uwp\icuin61.dll</OutputFile>
+ <OutputFile>..\..\bin64uwp\icuin63.dll</OutputFile>
<ProgramDatabaseFile>.\..\..\lib64uwp\icuin.pdb</ProgramDatabaseFile>
<ImportLibrary>..\..\lib64uwp\icuin.lib</ImportLibrary>
<AdditionalDependencies>..\..\lib64uwp\icuuc.lib;%(AdditionalDependencies)</AdditionalDependencies>
@@ -226,7 +228,7 @@
<ProgramDataBaseFileName>.\x64\DebugUWP/</ProgramDataBaseFileName>
</ClCompile>
<Link>
- <OutputFile>..\..\bin64uwp\icuin61d.dll</OutputFile>
+ <OutputFile>..\..\bin64uwp\icuin63d.dll</OutputFile>
<ProgramDatabaseFile>.\..\..\lib64uwp\icuind.pdb</ProgramDatabaseFile>
<ImportLibrary>..\..\lib64uwp\icuind.lib</ImportLibrary>
<AdditionalDependencies>..\..\lib64uwp\icuucd.lib;%(AdditionalDependencies)</AdditionalDependencies>
@@ -243,7 +245,7 @@
<ProgramDataBaseFileName>.\ARM\ReleaseUWP/</ProgramDataBaseFileName>
</ClCompile>
<Link>
- <OutputFile>..\..\binARMuwp\icuin61.dll</OutputFile>
+ <OutputFile>..\..\binARMuwp\icuin63.dll</OutputFile>
<ProgramDatabaseFile>.\..\..\libARMuwp\icuin.pdb</ProgramDatabaseFile>
<ImportLibrary>..\..\libARMuwp\icuin.lib</ImportLibrary>
<AdditionalDependencies>..\..\libARMuwp\icuuc.lib;%(AdditionalDependencies)</AdditionalDependencies>
@@ -260,13 +262,14 @@
<ProgramDataBaseFileName>.\ARM\DebugUWP/</ProgramDataBaseFileName>
</ClCompile>
<Link>
- <OutputFile>..\..\binARMuwp\icuin61d.dll</OutputFile>
+ <OutputFile>..\..\binARMuwp\icuin63d.dll</OutputFile>
<ProgramDatabaseFile>.\..\..\libARMuwp\icuind.pdb</ProgramDatabaseFile>
<ImportLibrary>..\..\libARMuwp\icuind.lib</ImportLibrary>
<AdditionalDependencies>..\..\libARMuwp\icuucd.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
+ <ClCompile Include="erarules.cpp" />
<ClCompile Include="region.cpp" />
<ClCompile Include="uregion.cpp" />
<ClCompile Include="alphaindex.cpp" />
@@ -304,18 +307,6 @@
<ClCompile Include="ucol_res.cpp" />
<ClCompile Include="ucol_sit.cpp" />
<ClCompile Include="ucoleitr.cpp" />
- <ClCompile Include="affixpatternparser.cpp" />
- <ClCompile Include="decimfmtimpl.cpp" />
- <ClCompile Include="digitaffix.cpp" />
- <ClCompile Include="digitaffixesandpadding.cpp" />
- <ClCompile Include="digitformatter.cpp" />
- <ClCompile Include="digitgrouping.cpp" />
- <ClCompile Include="digitinterval.cpp" />
- <ClCompile Include="pluralaffix.cpp" />
- <ClCompile Include="precision.cpp" />
- <ClCompile Include="smallintformatter.cpp" />
- <ClCompile Include="valueformatter.cpp" />
- <ClCompile Include="visibledigits.cpp" />
<ClCompile Include="uitercollationiterator.cpp" />
<ClCompile Include="usearch.cpp" />
<ClCompile Include="astro.cpp" />
@@ -336,16 +327,14 @@
<ClCompile Include="dayperiodrules.cpp" />
<ClCompile Include="dcfmtsym.cpp" />
<ClCompile Include="decContext.cpp" />
- <ClCompile Include="decfmtst.cpp" />
- <ClCompile Include="decimalformatpattern.cpp" />
<ClCompile Include="decimfmt.cpp" />
<ClCompile Include="decNumber.cpp" />
- <ClCompile Include="digitlst.cpp" />
<ClCompile Include="double-conversion-bignum-dtoa.cpp" />
<ClCompile Include="double-conversion-bignum.cpp" />
<ClCompile Include="double-conversion-cached-powers.cpp" />
<ClCompile Include="double-conversion-diy-fp.cpp" />
<ClCompile Include="double-conversion-fast-dtoa.cpp" />
+ <ClCompile Include="double-conversion-strtod.cpp" />
<ClCompile Include="double-conversion.cpp" />
<ClCompile Include="dtfmtsym.cpp" />
<ClCompile Include="dtitvfmt.cpp" />
@@ -365,6 +354,8 @@
<ClCompile Include="indiancal.cpp" />
<ClCompile Include="islamcal.cpp" />
<ClCompile Include="japancal.cpp" />
+ <ClCompile Include="listformatter.cpp" />
+ <ClCompile Include="ulistformatter.cpp" />
<ClCompile Include="measfmt.cpp" />
<ClCompile Include="measunit.cpp" />
<ClCompile Include="measure.cpp" />
@@ -374,6 +365,7 @@
<ClCompile Include="nfsubs.cpp" />
<ClCompile Include="nounit.cpp" />
<ClCompile Include="number_affixutils.cpp" />
+ <ClCompile Include="number_asformat.cpp" />
<ClCompile Include="number_compact.cpp" />
<ClCompile Include="number_decimalquantity.cpp" />
<ClCompile Include="number_decimfmtprops.cpp" />
@@ -390,6 +382,24 @@
<ClCompile Include="number_rounding.cpp" />
<ClCompile Include="number_scientific.cpp" />
<ClCompile Include="number_stringbuilder.cpp" />
+ <ClCompile Include="number_utils.cpp" />
+ <ClCompile Include="number_mapper.cpp" />
+ <ClCompile Include="number_multiplier.cpp" />
+ <ClCompile Include="number_currencysymbols.cpp" />
+ <ClCompile Include="number_skeletons.cpp" />
+ <ClCompile Include="number_capi.cpp" />
+ <ClCompile Include="numparse_stringsegment.cpp" />
+ <ClCompile Include="numparse_parsednumber.cpp" />
+ <ClCompile Include="numparse_impl.cpp" />
+ <ClCompile Include="numparse_symbols.cpp" />
+ <ClCompile Include="numparse_decimal.cpp" />
+ <ClCompile Include="numparse_scientific.cpp" />
+ <ClCompile Include="numparse_currency.cpp" />
+ <ClCompile Include="numparse_affixes.cpp" />
+ <ClCompile Include="numparse_compositions.cpp" />
+ <ClCompile Include="numparse_validators.cpp" />
+ <ClCompile Include="numrange_fluent.cpp" />
+ <ClCompile Include="numrange_impl.cpp" />
<ClCompile Include="numfmt.cpp" />
<ClCompile Include="numsys.cpp" />
<ClCompile Include="olsontz.cpp" />
@@ -490,20 +500,6 @@
</ItemGroup>
<ItemGroup>
<ClInclude Include="bocsu.h" />
- <ClInclude Include="affixpatternparser.h" />
- <ClInclude Include="decimalformatpatternimpl.h" />
- <ClInclude Include="decimfmtimpl.h" />
- <ClInclude Include="digitaffix.h" />
- <ClInclude Include="digitaffixesandpadding.h" />
- <ClInclude Include="digitformatter.h" />
- <ClInclude Include="digitgrouping.h" />
- <ClInclude Include="digitinterval.h" />
- <ClInclude Include="pluralaffix.h" />
- <ClInclude Include="precision.h" />
- <ClInclude Include="significantdigitinterval.h" />
- <ClInclude Include="smallintformatter.h" />
- <ClInclude Include="valueformatter.h" />
- <ClInclude Include="visibledigits.h" />
<ClInclude Include="collation.h" />
<ClInclude Include="collationbuilder.h" />
<ClInclude Include="collationcompare.h" />
@@ -524,7 +520,7 @@
<ClInclude Include="collationtailoring.h" />
<ClInclude Include="collationweights.h" />
<ClInclude Include="dayperiodrules.h" />
- <ClInclude Include="dcfmtimp.h" />
+ <ClInclude Include="erarules.h" />
<ClInclude Include="numsys_impl.h" />
<ClInclude Include="region_impl.h" />
<ClInclude Include="selfmtimpl.h" />
@@ -541,11 +537,8 @@
<ClInclude Include="currfmt.h" />
<ClInclude Include="dangical.h" />
<ClInclude Include="decContext.h" />
- <ClInclude Include="decfmtst.h" />
- <ClInclude Include="decimalformatpattern.h" />
<ClInclude Include="decNumber.h" />
<ClInclude Include="decNumberLocal.h" />
- <ClInclude Include="digitlst.h" />
<ClInclude Include="double-conversion-bignum-dtoa.h" />
<ClInclude Include="double-conversion-bignum.h" />
<ClInclude Include="double-conversion-cached-powers.h" />
@@ -636,11 +629,14 @@
<ClInclude Include="uspoof_conf.h" />
<ClInclude Include="uspoof_impl.h" />
<ClInclude Include="number_affixutils.h" />
+ <ClInclude Include="number_asformat.h" />
<ClInclude Include="number_compact.h" />
<ClInclude Include="number_decimalquantity.h" />
<ClInclude Include="number_decimfmtprops.h" />
+ <ClInclude Include="number_decnum.h" />
<ClInclude Include="number_formatimpl.h" />
<ClInclude Include="number_longnames.h" />
+ <ClInclude Include="number_microprops.h" />
<ClInclude Include="number_modifiers.h" />
<ClInclude Include="number_patternmodifier.h" />
<ClInclude Include="number_patternstring.h" />
@@ -648,7 +644,24 @@
<ClInclude Include="number_scientific.h" />
<ClInclude Include="number_stringbuilder.h" />
<ClInclude Include="number_types.h" />
+ <ClInclude Include="number_utypes.h" />
<ClInclude Include="number_utils.h" />
+ <ClInclude Include="number_mapper.h" />
+ <ClInclude Include="number_multiplier.h" />
+ <ClInclude Include="number_currencysymbols.h" />
+ <ClInclude Include="number_skeletons.h" />
+ <ClInclude Include="numparse_stringsegment.h" />
+ <ClInclude Include="numparse_impl.h" />
+ <ClInclude Include="numparse_symbols.h" />
+ <ClInclude Include="numparse_decimal.h" />
+ <ClInclude Include="numparse_scientific.h" />
+ <ClInclude Include="numparse_currency.h" />
+ <ClInclude Include="numparse_affixes.h" />
+ <ClInclude Include="numparse_compositions.h" />
+ <ClInclude Include="numparse_validators.h" />
+ <ClInclude Include="numparse_types.h" />
+ <ClInclude Include="numparse_utils.h" />
+ <ClInclude Include="numrange_impl.h" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="i18n.rc" />
diff --git a/Build/source/libs/icu/icu-src/source/i18n/indiancal.cpp b/Build/source/libs/icu/icu-src/source/i18n/indiancal.cpp
index 278f9efb2e0..ae1098f0558 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/indiancal.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/indiancal.cpp
@@ -347,12 +347,15 @@ IndianCalendar::inDaylightTime(UErrorCode& status) const
return (UBool)(U_SUCCESS(status) ? (internalGet(UCAL_DST_OFFSET) != 0) : FALSE);
}
-// default century
-const UDate IndianCalendar::fgSystemDefaultCentury = DBL_MIN;
-const int32_t IndianCalendar::fgSystemDefaultCenturyYear = -1;
-UDate IndianCalendar::fgSystemDefaultCenturyStart = DBL_MIN;
-int32_t IndianCalendar::fgSystemDefaultCenturyStartYear = -1;
+/**
+ * The system maintains a static default century start date and Year. They are
+ * initialized the first time they are used. Once the system default century date
+ * and year are set, they do not change.
+ */
+static UDate gSystemDefaultCenturyStart = DBL_MIN;
+static int32_t gSystemDefaultCenturyStartYear = -1;
+static icu::UInitOnce gSystemDefaultCenturyInit = U_INITONCE_INITIALIZER;
UBool IndianCalendar::haveDefaultCentury() const
@@ -360,87 +363,45 @@ UBool IndianCalendar::haveDefaultCentury() const
return TRUE;
}
-UDate IndianCalendar::defaultCenturyStart() const
+static void U_CALLCONV
+initializeSystemDefaultCentury()
{
- return internalGetDefaultCenturyStart();
-}
+ // initialize systemDefaultCentury and systemDefaultCenturyYear based
+ // on the current time. They'll be set to 80 years before
+ // the current time.
+ UErrorCode status = U_ZERO_ERROR;
-int32_t IndianCalendar::defaultCenturyStartYear() const
-{
- return internalGetDefaultCenturyStartYear();
-}
+ IndianCalendar calendar ( Locale ( "@calendar=Indian" ), status);
+ if ( U_SUCCESS ( status ) ) {
+ calendar.setTime ( Calendar::getNow(), status );
+ calendar.add ( UCAL_YEAR, -80, status );
-UDate
-IndianCalendar::internalGetDefaultCenturyStart() const
-{
- // lazy-evaluate systemDefaultCenturyStart
- UBool needsUpdate;
- {
- Mutex m;
- needsUpdate = (fgSystemDefaultCenturyStart == fgSystemDefaultCentury);
- }
+ UDate newStart = calendar.getTime ( status );
+ int32_t newYear = calendar.get ( UCAL_YEAR, status );
- if (needsUpdate) {
- initializeSystemDefaultCentury();
+ gSystemDefaultCenturyStart = newStart;
+ gSystemDefaultCenturyStartYear = newYear;
}
+ // We have no recourse upon failure.
+}
- // use defaultCenturyStart unless it's the flag value;
- // then use systemDefaultCenturyStart
- return fgSystemDefaultCenturyStart;
+UDate
+IndianCalendar::defaultCenturyStart() const
+{
+ // lazy-evaluate systemDefaultCenturyStart
+ umtx_initOnce(gSystemDefaultCenturyInit, &initializeSystemDefaultCentury);
+ return gSystemDefaultCenturyStart;
}
int32_t
-IndianCalendar::internalGetDefaultCenturyStartYear() const
+IndianCalendar::defaultCenturyStartYear() const
{
// lazy-evaluate systemDefaultCenturyStartYear
- UBool needsUpdate;
- {
- Mutex m;
-
- needsUpdate = (fgSystemDefaultCenturyStart == fgSystemDefaultCentury);
- }
-
- if (needsUpdate) {
- initializeSystemDefaultCentury();
- }
-
- // use defaultCenturyStart unless it's the flag value;
- // then use systemDefaultCenturyStartYear
-
- return fgSystemDefaultCenturyStartYear;
+ umtx_initOnce(gSystemDefaultCenturyInit, &initializeSystemDefaultCentury);
+ return gSystemDefaultCenturyStartYear;
}
-void
-IndianCalendar::initializeSystemDefaultCentury()
-{
- // initialize systemDefaultCentury and systemDefaultCenturyYear based
- // on the current time. They'll be set to 80 years before
- // the current time.
- // No point in locking as it should be idempotent.
- if (fgSystemDefaultCenturyStart == fgSystemDefaultCentury) {
- UErrorCode status = U_ZERO_ERROR;
-
- IndianCalendar calendar(Locale("@calendar=Indian"),status);
- if (U_SUCCESS(status)) {
- calendar.setTime(Calendar::getNow(), status);
- calendar.add(UCAL_YEAR, -80, status);
-
- UDate newStart = calendar.getTime(status);
- int32_t newYear = calendar.get(UCAL_YEAR, status);
-
- {
- Mutex m;
-
- fgSystemDefaultCenturyStart = newStart;
- fgSystemDefaultCenturyStartYear = newYear;
- }
- }
-
- // We have no recourse upon failure unless we want to propagate the failure
- // out.
- }
-}
UOBJECT_DEFINE_RTTI_IMPLEMENTATION(IndianCalendar)
diff --git a/Build/source/libs/icu/icu-src/source/i18n/indiancal.h b/Build/source/libs/icu/icu-src/source/i18n/indiancal.h
index b5e0f963d95..e36d4eb5c0e 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/indiancal.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/indiancal.h
@@ -68,7 +68,7 @@ U_NAMESPACE_BEGIN
*/
-class IndianCalendar : public Calendar {
+class U_I18N_API IndianCalendar : public Calendar {
public:
/**
* Useful constants for IndianCalendar.
@@ -274,10 +274,10 @@ public:
* @return The class ID for all objects of this class.
* @internal
*/
- U_I18N_API static UClassID U_EXPORT2 getStaticClassID(void);
+ static UClassID U_EXPORT2 getStaticClassID(void);
/**
- * return the calendar type, "buddhist".
+ * return the calendar type, "indian".
*
* @return calendar type
* @internal
@@ -320,49 +320,6 @@ protected:
* @internal
*/
virtual int32_t defaultCenturyStartYear() const;
-
- private: // default century stuff.
- /**
- * The system maintains a static default century start date. This is initialized
- * the first time it is used. Before then, it is set to SYSTEM_DEFAULT_CENTURY to
- * indicate an uninitialized state. Once the system default century date and year
- * are set, they do not change.
- */
- static UDate fgSystemDefaultCenturyStart;
-
- /**
- * See documentation for systemDefaultCenturyStart.
- */
- static int32_t fgSystemDefaultCenturyStartYear;
-
- /**
- * Default value that indicates the defaultCenturyStartYear is unitialized
- */
- static const int32_t fgSystemDefaultCenturyYear;
-
- /**
- * start of default century, as a date
- */
- static const UDate fgSystemDefaultCentury;
-
- /**
- * Returns the beginning date of the 100-year window that dates
- * with 2-digit years are considered to fall within.
- */
- UDate internalGetDefaultCenturyStart(void) const;
-
- /**
- * Returns the first year of the 100-year window that dates with
- * 2-digit years are considered to fall within.
- */
- int32_t internalGetDefaultCenturyStartYear(void) const;
-
- /**
- * Initializes the 100-year window that dates with 2-digit years
- * are considered to fall within so that its start date is 80 years
- * before the current time.
- */
- static void initializeSystemDefaultCentury(void);
};
U_NAMESPACE_END
diff --git a/Build/source/libs/icu/icu-src/source/i18n/japancal.cpp b/Build/source/libs/icu/icu-src/source/i18n/japancal.cpp
index 17b4e0764dd..5159be337c2 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/japancal.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/japancal.cpp
@@ -16,286 +16,88 @@
#include "unicode/utypes.h"
#if !UCONFIG_NO_FORMATTING
-
+#if U_PLATFORM_HAS_WINUWP_API == 0
+#include <stdlib.h> // getenv() is not available in UWP env
+#endif
#include "cmemory.h"
+#include "erarules.h"
#include "japancal.h"
#include "unicode/gregocal.h"
#include "umutex.h"
#include "uassert.h"
-
-//#define U_DEBUG_JCAL
-
-#ifdef U_DEBUG_JCAL
-#include <stdio.h>
-#endif
+#include "ucln_in.h"
+#include "cstring.h"
+
+static icu::EraRules * gJapaneseEraRules = nullptr;
+static icu::UInitOnce gJapaneseEraRulesInitOnce = U_INITONCE_INITIALIZER;
+static int32_t gCurrentEra = 0;
+
+U_CDECL_BEGIN
+static UBool japanese_calendar_cleanup(void) {
+ if (gJapaneseEraRules) {
+ delete gJapaneseEraRules;
+ gJapaneseEraRules = nullptr;
+ }
+ gCurrentEra = 0;
+ gJapaneseEraRulesInitOnce.reset();
+ return TRUE;
+}
+U_CDECL_END
U_NAMESPACE_BEGIN
UOBJECT_DEFINE_RTTI_IMPLEMENTATION(JapaneseCalendar)
-// Gregorian date of each emperor's ascension
-// Years are AD, months are 1-based.
-static const struct {
- int16_t year;
- int8_t month;
- int8_t day;
-} kEraInfo[] = {
- // Year Month Day
- { 645, 6, 19 }, // Taika 0
- { 650, 2, 15 }, // Hakuchi 1
- { 672, 1, 1 }, // Hakuho 2
- { 686, 7, 20 }, // Shucho 3
- { 701, 3, 21 }, // Taiho 4
- { 704, 5, 10 }, // Keiun 5
- { 708, 1, 11 }, // Wado 6
- { 715, 9, 2 }, // Reiki 7
- { 717, 11, 17 }, // Yoro 8
- { 724, 2, 4 }, // Jinki 9
- { 729, 8, 5 }, // Tempyo 10
- { 749, 4, 14 }, // Tempyo-kampo 11
- { 749, 7, 2 }, // Tempyo-shoho 12
- { 757, 8, 18 }, // Tempyo-hoji 13
- { 765, 1, 7 }, // Tempho-jingo 14
- { 767, 8, 16 }, // Jingo-keiun 15
- { 770, 10, 1 }, // Hoki 16
- { 781, 1, 1 }, // Ten-o 17
- { 782, 8, 19 }, // Enryaku 18
- { 806, 5, 18 }, // Daido 19
- { 810, 9, 19 }, // Konin 20
- { 824, 1, 5 }, // Tencho
- { 834, 1, 3 }, // Showa
- { 848, 6, 13 }, // Kajo
- { 851, 4, 28 }, // Ninju
- { 854, 11, 30 }, // Saiko
- { 857, 2, 21 }, // Tennan
- { 859, 4, 15 }, // Jogan
- { 877, 4, 16 }, // Genkei
- { 885, 2, 21 }, // Ninna
- { 889, 4, 27 }, // Kampyo 30
- { 898, 4, 26 }, // Shotai
- { 901, 7, 15 }, // Engi
- { 923, 4, 11 }, // Encho
- { 931, 4, 26 }, // Shohei
- { 938, 5, 22 }, // Tengyo
- { 947, 4, 22 }, // Tenryaku
- { 957, 10, 27 }, // Tentoku
- { 961, 2, 16 }, // Owa
- { 964, 7, 10 }, // Koho
- { 968, 8, 13 }, // Anna 40
- { 970, 3, 25 }, // Tenroku
- { 973, 12, 20 }, // Ten-en
- { 976, 7, 13 }, // Jogen
- { 978, 11, 29 }, // Tengen
- { 983, 4, 15 }, // Eikan
- { 985, 4, 27 }, // Kanna
- { 987, 4, 5 }, // Ei-en
- { 989, 8, 8 }, // Eiso
- { 990, 11, 7 }, // Shoryaku
- { 995, 2, 22 }, // Chotoku 50
- { 999, 1, 13 }, // Choho
- { 1004, 7, 20 }, // Kanko
- { 1012, 12, 25 }, // Chowa
- { 1017, 4, 23 }, // Kannin
- { 1021, 2, 2 }, // Jian
- { 1024, 7, 13 }, // Manju
- { 1028, 7, 25 }, // Chogen
- { 1037, 4, 21 }, // Choryaku
- { 1040, 11, 10 }, // Chokyu
- { 1044, 11, 24 }, // Kantoku 60
- { 1046, 4, 14 }, // Eisho
- { 1053, 1, 11 }, // Tengi
- { 1058, 8, 29 }, // Kohei
- { 1065, 8, 2 }, // Jiryaku
- { 1069, 4, 13 }, // Enkyu
- { 1074, 8, 23 }, // Shoho
- { 1077, 11, 17 }, // Shoryaku
- { 1081, 2, 10 }, // Eiho
- { 1084, 2, 7 }, // Otoku
- { 1087, 4, 7 }, // Kanji 70
- { 1094, 12, 15 }, // Kaho
- { 1096, 12, 17 }, // Eicho
- { 1097, 11, 21 }, // Shotoku
- { 1099, 8, 28 }, // Kowa
- { 1104, 2, 10 }, // Choji
- { 1106, 4, 9 }, // Kasho
- { 1108, 8, 3 }, // Tennin
- { 1110, 7, 13 }, // Ten-ei
- { 1113, 7, 13 }, // Eikyu
- { 1118, 4, 3 }, // Gen-ei 80
- { 1120, 4, 10 }, // Hoan
- { 1124, 4, 3 }, // Tenji
- { 1126, 1, 22 }, // Daiji
- { 1131, 1, 29 }, // Tensho
- { 1132, 8, 11 }, // Chosho
- { 1135, 4, 27 }, // Hoen
- { 1141, 7, 10 }, // Eiji
- { 1142, 4, 28 }, // Koji
- { 1144, 2, 23 }, // Tenyo
- { 1145, 7, 22 }, // Kyuan 90
- { 1151, 1, 26 }, // Ninpei
- { 1154, 10, 28 }, // Kyuju
- { 1156, 4, 27 }, // Hogen
- { 1159, 4, 20 }, // Heiji
- { 1160, 1, 10 }, // Eiryaku
- { 1161, 9, 4 }, // Oho
- { 1163, 3, 29 }, // Chokan
- { 1165, 6, 5 }, // Eiman
- { 1166, 8, 27 }, // Nin-an
- { 1169, 4, 8 }, // Kao 100
- { 1171, 4, 21 }, // Shoan
- { 1175, 7, 28 }, // Angen
- { 1177, 8, 4 }, // Jisho
- { 1181, 7, 14 }, // Yowa
- { 1182, 5, 27 }, // Juei
- { 1184, 4, 16 }, // Genryuku
- { 1185, 8, 14 }, // Bunji
- { 1190, 4, 11 }, // Kenkyu
- { 1199, 4, 27 }, // Shoji
- { 1201, 2, 13 }, // Kennin 110
- { 1204, 2, 20 }, // Genkyu
- { 1206, 4, 27 }, // Ken-ei
- { 1207, 10, 25 }, // Shogen
- { 1211, 3, 9 }, // Kenryaku
- { 1213, 12, 6 }, // Kenpo
- { 1219, 4, 12 }, // Shokyu
- { 1222, 4, 13 }, // Joo
- { 1224, 11, 20 }, // Gennin
- { 1225, 4, 20 }, // Karoku
- { 1227, 12, 10 }, // Antei 120
- { 1229, 3, 5 }, // Kanki
- { 1232, 4, 2 }, // Joei
- { 1233, 4, 15 }, // Tempuku
- { 1234, 11, 5 }, // Bunryaku
- { 1235, 9, 19 }, // Katei
- { 1238, 11, 23 }, // Ryakunin
- { 1239, 2, 7 }, // En-o
- { 1240, 7, 16 }, // Ninji
- { 1243, 2, 26 }, // Kangen
- { 1247, 2, 28 }, // Hoji 130
- { 1249, 3, 18 }, // Kencho
- { 1256, 10, 5 }, // Kogen
- { 1257, 3, 14 }, // Shoka
- { 1259, 3, 26 }, // Shogen
- { 1260, 4, 13 }, // Bun-o
- { 1261, 2, 20 }, // Kocho
- { 1264, 2, 28 }, // Bun-ei
- { 1275, 4, 25 }, // Kenji
- { 1278, 2, 29 }, // Koan
- { 1288, 4, 28 }, // Shoo 140
- { 1293, 8, 55 }, // Einin
- { 1299, 4, 25 }, // Shoan
- { 1302, 11, 21 }, // Kengen
- { 1303, 8, 5 }, // Kagen
- { 1306, 12, 14 }, // Tokuji
- { 1308, 10, 9 }, // Enkei
- { 1311, 4, 28 }, // Ocho
- { 1312, 3, 20 }, // Showa
- { 1317, 2, 3 }, // Bunpo
- { 1319, 4, 28 }, // Geno 150
- { 1321, 2, 23 }, // Genkyo
- { 1324, 12, 9 }, // Shochu
- { 1326, 4, 26 }, // Kareki
- { 1329, 8, 29 }, // Gentoku
- { 1331, 8, 9 }, // Genko
- { 1334, 1, 29 }, // Kemmu
- { 1336, 2, 29 }, // Engen
- { 1340, 4, 28 }, // Kokoku
- { 1346, 12, 8 }, // Shohei
- { 1370, 7, 24 }, // Kentoku 160
- { 1372, 4, 1 }, // Bunch\u0169
- { 1375, 5, 27 }, // Tenju
- { 1379, 3, 22 }, // Koryaku
- { 1381, 2, 10 }, // Kowa
- { 1384, 4, 28 }, // Gench\u0169
- { 1384, 2, 27 }, // Meitoku
- { 1387, 8, 23 }, // Kakei
- { 1389, 2, 9 }, // Koo
- { 1390, 3, 26 }, // Meitoku
- { 1394, 7, 5 }, // Oei 170
- { 1428, 4, 27 }, // Shocho
- { 1429, 9, 5 }, // Eikyo
- { 1441, 2, 17 }, // Kakitsu
- { 1444, 2, 5 }, // Bun-an
- { 1449, 7, 28 }, // Hotoku
- { 1452, 7, 25 }, // Kyotoku
- { 1455, 7, 25 }, // Kosho
- { 1457, 9, 28 }, // Choroku
- { 1460, 12, 21 }, // Kansho
- { 1466, 2, 28 }, // Bunsho 180
- { 1467, 3, 3 }, // Onin
- { 1469, 4, 28 }, // Bunmei
- { 1487, 7, 29 }, // Chokyo
- { 1489, 8, 21 }, // Entoku
- { 1492, 7, 19 }, // Meio
- { 1501, 2, 29 }, // Bunki
- { 1504, 2, 30 }, // Eisho
- { 1521, 8, 23 }, // Taiei
- { 1528, 8, 20 }, // Kyoroku
- { 1532, 7, 29 }, // Tenmon 190
- { 1555, 10, 23 }, // Koji
- { 1558, 2, 28 }, // Eiroku
- { 1570, 4, 23 }, // Genki
- { 1573, 7, 28 }, // Tensho
- { 1592, 12, 8 }, // Bunroku
- { 1596, 10, 27 }, // Keicho
- { 1615, 7, 13 }, // Genwa
- { 1624, 2, 30 }, // Kan-ei
- { 1644, 12, 16 }, // Shoho
- { 1648, 2, 15 }, // Keian 200
- { 1652, 9, 18 }, // Shoo
- { 1655, 4, 13 }, // Meiryaku
- { 1658, 7, 23 }, // Manji
- { 1661, 4, 25 }, // Kanbun
- { 1673, 9, 21 }, // Enpo
- { 1681, 9, 29 }, // Tenwa
- { 1684, 2, 21 }, // Jokyo
- { 1688, 9, 30 }, // Genroku
- { 1704, 3, 13 }, // Hoei
- { 1711, 4, 25 }, // Shotoku 210
- { 1716, 6, 22 }, // Kyoho
- { 1736, 4, 28 }, // Genbun
- { 1741, 2, 27 }, // Kanpo
- { 1744, 2, 21 }, // Enkyo
- { 1748, 7, 12 }, // Kan-en
- { 1751, 10, 27 }, // Horyaku
- { 1764, 6, 2 }, // Meiwa
- { 1772, 11, 16 }, // An-ei
- { 1781, 4, 2 }, // Tenmei
- { 1789, 1, 25 }, // Kansei 220
- { 1801, 2, 5 }, // Kyowa
- { 1804, 2, 11 }, // Bunka
- { 1818, 4, 22 }, // Bunsei
- { 1830, 12, 10 }, // Tenpo
- { 1844, 12, 2 }, // Koka
- { 1848, 2, 28 }, // Kaei
- { 1854, 11, 27 }, // Ansei
- { 1860, 3, 18 }, // Man-en
- { 1861, 2, 19 }, // Bunkyu
- { 1864, 2, 20 }, // Genji 230
- { 1865, 4, 7 }, // Keio 231
- { 1868, 9, 8 }, // Meiji 232
- { 1912, 7, 30 }, // Taisho 233
- { 1926, 12, 25 }, // Showa 234
- { 1989, 1, 8 } // Heisei 235
-};
-
-#define kEraCount UPRV_LENGTHOF(kEraInfo)
-
-/**
- * The current era, for reference.
- */
-static const int32_t kCurrentEra = (kEraCount-1); // int32_t to match the calendar field type
-
static const int32_t kGregorianEpoch = 1970; // used as the default value of EXTENDED_YEAR
+static const char* TENTATIVE_ERA_VAR_NAME = "ICU_ENABLE_TENTATIVE_ERA";
+
+// Initialize global Japanese era data
+static void U_CALLCONV initializeEras(UErrorCode &status) {
+ // Although start date of next Japanese era is planned ahead, a name of
+ // new era might not be available. This implementation allows tester to
+ // check a new era without era names by settings below (in priority order).
+ // By default, such tentative era is disabled.
+
+ // 1. Environment variable ICU_ENABLE_TENTATIVE_ERA=true or false
+
+ UBool includeTentativeEra = FALSE;
+
+#if U_PLATFORM_HAS_WINUWP_API == 1
+ // UWP doesn't allow access to getenv(), but we can call GetEnvironmentVariableW to do the same thing.
+ UChar varName[26] = {};
+ u_charsToUChars(TENTATIVE_ERA_VAR_NAME, varName, static_cast<int32_t>(uprv_strlen(TENTATIVE_ERA_VAR_NAME)));
+ WCHAR varValue[5] = {};
+ DWORD ret = GetEnvironmentVariableW(reinterpret_cast<WCHAR*>(varName), varValue, UPRV_LENGTHOF(varValue));
+ if ((ret == 4) && (_wcsicmp(varValue, L"true") == 0)) {
+ includeTentativeEra = TRUE;
+ }
+#else
+ char *envVarVal = getenv(TENTATIVE_ERA_VAR_NAME);
+ if (envVarVal != NULL && uprv_stricmp(envVarVal, "true") == 0) {
+ includeTentativeEra = TRUE;
+ }
+#endif
+ gJapaneseEraRules = EraRules::createInstance("japanese", includeTentativeEra, status);
+ if (U_FAILURE(status)) {
+ return;
+ }
+ gCurrentEra = gJapaneseEraRules->getCurrentEraIndex();
+}
+
+static void init(UErrorCode &status) {
+ umtx_initOnce(gJapaneseEraRulesInitOnce, &initializeEras, status);
+ ucln_i18n_registerCleanup(UCLN_I18N_JAPANESE_CALENDAR, japanese_calendar_cleanup);
+}
/* Some platforms don't like to export constants, like old Palm OS and some z/OS configurations. */
uint32_t JapaneseCalendar::getCurrentEra() {
- return kCurrentEra;
+ return gCurrentEra;
}
JapaneseCalendar::JapaneseCalendar(const Locale& aLocale, UErrorCode& success)
: GregorianCalendar(aLocale, success)
{
+ init(success);
setTimeInMillis(getNow(), success); // Call this again now that the vtable is set up properly.
}
@@ -306,6 +108,9 @@ JapaneseCalendar::~JapaneseCalendar()
JapaneseCalendar::JapaneseCalendar(const JapaneseCalendar& source)
: GregorianCalendar(source)
{
+ UErrorCode status = U_ZERO_ERROR;
+ init(status);
+ U_ASSERT(U_SUCCESS(status));
}
JapaneseCalendar& JapaneseCalendar::operator= ( const JapaneseCalendar& right)
@@ -332,10 +137,14 @@ int32_t JapaneseCalendar::getDefaultMonthInYear(int32_t eyear)
int32_t month = 0;
// Find out if we are at the edge of an era
-
- if(eyear == kEraInfo[era].year) {
+ int32_t eraStart[3] = { 0,0,0 };
+ UErrorCode status = U_ZERO_ERROR;
+ gJapaneseEraRules->getStartDate(era, eraStart, status);
+ U_ASSERT(U_SUCCESS(status));
+ if(eyear == eraStart[0]) {
// Yes, we're in the first year of this era.
- return kEraInfo[era].month-1;
+ return eraStart[1] // month
+ -1; // return 0-based month
}
return month;
@@ -346,9 +155,13 @@ int32_t JapaneseCalendar::getDefaultDayInMonth(int32_t eyear, int32_t month)
int32_t era = internalGetEra();
int32_t day = 1;
- if(eyear == kEraInfo[era].year) {
- if(month == (kEraInfo[era].month-1)) {
- return kEraInfo[era].day;
+ int32_t eraStart[3] = { 0,0,0 };
+ UErrorCode status = U_ZERO_ERROR;
+ gJapaneseEraRules->getStartDate(era, eraStart, status);
+ U_ASSERT(U_SUCCESS(status));
+ if(eyear == eraStart[0]) {
+ if(month == eraStart[1] - 1) {
+ return eraStart[2];
}
}
@@ -358,7 +171,7 @@ int32_t JapaneseCalendar::getDefaultDayInMonth(int32_t eyear, int32_t month)
int32_t JapaneseCalendar::internalGetEra() const
{
- return internalGet(UCAL_ERA, kCurrentEra);
+ return internalGet(UCAL_ERA, gCurrentEra);
}
int32_t JapaneseCalendar::handleGetExtendedYear()
@@ -369,12 +182,18 @@ int32_t JapaneseCalendar::handleGetExtendedYear()
if (newerField(UCAL_EXTENDED_YEAR, UCAL_YEAR) == UCAL_EXTENDED_YEAR &&
newerField(UCAL_EXTENDED_YEAR, UCAL_ERA) == UCAL_EXTENDED_YEAR) {
- year = internalGet(UCAL_EXTENDED_YEAR, kGregorianEpoch);
- } else {
- // Subtract one because year starts at 1
- year = internalGet(UCAL_YEAR) + kEraInfo[internalGetEra()].year - 1;
- }
- return year;
+ year = internalGet(UCAL_EXTENDED_YEAR, kGregorianEpoch);
+ } else {
+ UErrorCode status = U_ZERO_ERROR;
+ int32_t eraStartYear = gJapaneseEraRules->getStartYear(internalGet(UCAL_ERA, gCurrentEra), status);
+ U_ASSERT(U_SUCCESS(status));
+
+ // extended year is a gregorian year, where 1 = 1AD, 0 = 1BC, -1 = 2BC, etc
+ year = internalGet(UCAL_YEAR, 1) // pin to minimum of year 1 (first year)
+ + eraStartYear // add gregorian starting year
+ - 1; // Subtract one because year starts at 1
+ }
+ return year;
}
@@ -383,79 +202,10 @@ void JapaneseCalendar::handleComputeFields(int32_t julianDay, UErrorCode& status
//Calendar::timeToFields(theTime, quick, status);
GregorianCalendar::handleComputeFields(julianDay, status);
int32_t year = internalGet(UCAL_EXTENDED_YEAR); // Gregorian year
+ int32_t eraIdx = gJapaneseEraRules->getEraIndex(year, internalGet(UCAL_MONTH) + 1, internalGet(UCAL_DAY_OF_MONTH), status);
- int32_t low = 0;
-
- // Short circuit for recent years. Most modern computations will
- // occur in the current era and won't require the binary search.
- // Note that if the year is == the current era year, then we use
- // the binary search to handle the month/dom comparison.
-#ifdef U_DEBUG_JCAL
- fprintf(stderr, "== %d \n", year);
-#endif
-
- if (year > kEraInfo[kCurrentEra].year) {
- low = kCurrentEra;
-#ifdef U_DEBUG_JCAL
- fprintf(stderr, " low=%d (special)\n", low);
-#endif
- } else {
- // Binary search
- int32_t high = kEraCount;
-
-#ifdef U_DEBUG_JCAL
- fprintf(stderr, " high=%d\n", high);
-#endif
- while (low < high - 1) {
- int32_t i = (low + high) / 2;
- int32_t diff = year - kEraInfo[i].year;
-
-#ifdef U_DEBUG_JCAL
- fprintf(stderr, " d=%d low=%d, high=%d. Considering %d:M%d D%d Y%d. { we are ?:M%d D%d Y%d }\n",
- diff,low, high, i, kEraInfo[i].month-1, kEraInfo[i].day, kEraInfo[i].year, internalGet(UCAL_MONTH), internalGet(UCAL_DATE),year);
-#endif
-
- // If years are the same, then compare the months, and if those
- // are the same, compare days of month. In the ERAS array
- // months are 1-based for easier maintenance.
- if (diff == 0) {
- diff = internalGet(UCAL_MONTH) - (kEraInfo[i].month - 1);
-#ifdef U_DEBUG_JCAL
- fprintf(stderr, "diff now %d (M) = %d - %d - 1\n", diff, internalGet(UCAL_MONTH), kEraInfo[i].month);
-#endif
- if (diff == 0) {
- diff = internalGet(UCAL_DATE) - kEraInfo[i].day;
-#ifdef U_DEBUG_JCAL
- fprintf(stderr, "diff now %d (D)\n", diff);
-#endif
- }
- }
- if (diff >= 0) {
- low = i;
- } else {
- high = i;
- }
-#ifdef U_DEBUG_JCAL
- fprintf(stderr, ". low=%d, high=%d, i=%d, diff=%d.. %d\n", low, high, i, diff, year);
-#endif
-
- }
- }
-
-#ifdef U_DEBUG_JCAL
- fprintf(stderr, " low[era]=%d,.. %d\n", low, year);
-#endif
- // Now we've found the last era that starts before this date, so
- // adjust the year to count from the start of that era. Note that
- // all dates before the first era will fall into the first era by
- // the algorithm.
-
- internalSet(UCAL_ERA, low);
- internalSet(UCAL_YEAR, year - kEraInfo[low].year + 1);
-#ifdef U_DEBUG_JCAL
- fprintf(stderr, " Set ERA=%d, year=%d\n", low, year-kEraInfo[low].year+1);
-#endif
-
+ internalSet(UCAL_ERA, eraIdx);
+ internalSet(UCAL_YEAR, year - gJapaneseEraRules->getStartYear(eraIdx, status) + 1);
}
/*
@@ -483,7 +233,7 @@ int32_t JapaneseCalendar::handleGetLimit(UCalendarDateFields field, ELimitType l
if (limitType == UCAL_LIMIT_MINIMUM || limitType == UCAL_LIMIT_GREATEST_MINIMUM) {
return 0;
}
- return kCurrentEra;
+ return gCurrentEra;
case UCAL_YEAR:
{
switch (limitType) {
@@ -494,7 +244,12 @@ int32_t JapaneseCalendar::handleGetLimit(UCalendarDateFields field, ELimitType l
return 1;
case UCAL_LIMIT_COUNT: //added to avoid warning
case UCAL_LIMIT_MAXIMUM:
- return GregorianCalendar::handleGetLimit(UCAL_YEAR, UCAL_LIMIT_MAXIMUM) - kEraInfo[kCurrentEra].year;
+ {
+ UErrorCode status = U_ZERO_ERROR;
+ int32_t eraStartYear = gJapaneseEraRules->getStartYear(gCurrentEra, status);
+ U_ASSERT(U_SUCCESS(status));
+ return GregorianCalendar::handleGetLimit(UCAL_YEAR, UCAL_LIMIT_MAXIMUM) - eraStartYear;
+ }
default:
return 1; // Error condition, invalid limitType
}
@@ -510,15 +265,18 @@ int32_t JapaneseCalendar::getActualMaximum(UCalendarDateFields field, UErrorCode
if (U_FAILURE(status)) {
return 0; // error case... any value
}
- if (era == kCurrentEra) {
+ if (era == gCurrentEra) {
// TODO: Investigate what value should be used here - revisit after 4.0.
return handleGetLimit(UCAL_YEAR, UCAL_LIMIT_MAXIMUM);
} else {
- int32_t nextEraYear = kEraInfo[era + 1].year;
- int32_t nextEraMonth = kEraInfo[era + 1].month;
- int32_t nextEraDate = kEraInfo[era + 1].day;
-
- int32_t maxYear = nextEraYear - kEraInfo[era].year + 1; // 1-base
+ int32_t nextEraStart[3] = { 0,0,0 };
+ gJapaneseEraRules->getStartDate(era + 1, nextEraStart, status);
+ int32_t nextEraYear = nextEraStart[0];
+ int32_t nextEraMonth = nextEraStart[1]; // 1-base
+ int32_t nextEraDate = nextEraStart[2];
+
+ int32_t eraStartYear = gJapaneseEraRules->getStartYear(era, status);
+ int32_t maxYear = nextEraYear - eraStartYear + 1; // 1-base
if (nextEraMonth == 1 && nextEraDate == 1) {
// Subtract 1, because the next era starts at Jan 1
maxYear--;
diff --git a/Build/source/libs/icu/icu-src/source/i18n/japancal.h b/Build/source/libs/icu/icu-src/source/i18n/japancal.h
index f05b2ac9b77..7a6d13228b1 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/japancal.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/japancal.h
@@ -49,10 +49,18 @@ U_NAMESPACE_BEGIN
* July 30, 1912 (Taisho), December 25, 1926 (Showa), and January 7, 1989 (Heisei). Constants
* for these eras, suitable for use in the <code>UCAL_ERA</code> field, are provided
* in this class. Note that the <em>number</em> used for each era is more or
- * less arbitrary. Currently, the era starting in 1053 AD is era #0; however this
- * may change in the future as we add more historical data. Use the predefined
- * constants rather than using actual, absolute numbers.
+ * less arbitrary. Currently, the era starting in 645 AD is era #0; however this
+ * may change in the future. Use the predefined constants rather than using actual,
+ * absolute numbers.
* <p>
+ * Since ICU4C 63, start date of each era is imported from CLDR. CLDR era data
+ * may contain tentative era in near future with placeholder names. By default,
+ * such era data is not enabled. ICU4C users who want to test the behavior of
+ * the future era can enable this one of following settings (in the priority
+ * order):
+ * <ol>
+ * <li>Environment variable <code>ICU_ENABLE_TENTATIVE_ERA=true</code>.</li>
+ * </nl>
* @internal
*/
class JapaneseCalendar : public GregorianCalendar {
diff --git a/Build/source/libs/icu/icu-src/source/common/listformatter.cpp b/Build/source/libs/icu/icu-src/source/i18n/listformatter.cpp
index 33a8ac28671..3b49c05302f 100644
--- a/Build/source/libs/icu/icu-src/source/common/listformatter.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/listformatter.cpp
@@ -16,14 +16,19 @@
* created by: Umesh P. Nair
*/
+#include "cmemory.h"
+#include "unicode/fpositer.h" // FieldPositionIterator
#include "unicode/listformatter.h"
#include "unicode/simpleformatter.h"
+#include "unicode/ulistformatter.h"
+#include "fphdlimp.h"
#include "mutex.h"
#include "hash.h"
#include "cstring.h"
+#include "uarrsort.h"
#include "ulocimp.h"
#include "charstr.h"
-#include "ucln_cmn.h"
+#include "ucln_in.h"
#include "uresimp.h"
#include "resource.h"
@@ -61,14 +66,14 @@ ListFormatInternal(const ListFormatInternal &other) :
-static Hashtable* listPatternHash = NULL;
+static Hashtable* listPatternHash = nullptr;
static UMutex listFormatterMutex = U_MUTEX_INITIALIZER;
static const char STANDARD_STYLE[] = "standard";
U_CDECL_BEGIN
static UBool U_CALLCONV uprv_listformatter_cleanup() {
delete listPatternHash;
- listPatternHash = NULL;
+ listPatternHash = nullptr;
return TRUE;
}
@@ -81,7 +86,7 @@ U_CDECL_END
ListFormatter::ListFormatter(const ListFormatter& other) :
owned(other.owned), data(other.data) {
- if (other.owned != NULL) {
+ if (other.owned != nullptr) {
owned = new ListFormatInternal(*other.owned);
data = owned;
}
@@ -96,7 +101,7 @@ ListFormatter& ListFormatter::operator=(const ListFormatter& other) {
owned = new ListFormatInternal(*other.owned);
data = owned;
} else {
- owned = NULL;
+ owned = nullptr;
data = other.data;
}
return *this;
@@ -108,53 +113,53 @@ void ListFormatter::initializeHash(UErrorCode& errorCode) {
}
listPatternHash = new Hashtable();
- if (listPatternHash == NULL) {
+ if (listPatternHash == nullptr) {
errorCode = U_MEMORY_ALLOCATION_ERROR;
return;
}
listPatternHash->setValueDeleter(uprv_deleteListFormatInternal);
- ucln_common_registerCleanup(UCLN_COMMON_LIST_FORMATTER, uprv_listformatter_cleanup);
+ ucln_i18n_registerCleanup(UCLN_I18N_LIST_FORMATTER, uprv_listformatter_cleanup);
}
const ListFormatInternal* ListFormatter::getListFormatInternal(
const Locale& locale, const char *style, UErrorCode& errorCode) {
if (U_FAILURE(errorCode)) {
- return NULL;
+ return nullptr;
}
CharString keyBuffer(locale.getName(), errorCode);
keyBuffer.append(':', errorCode).append(style, errorCode);
UnicodeString key(keyBuffer.data(), -1, US_INV);
- ListFormatInternal* result = NULL;
+ ListFormatInternal* result = nullptr;
{
Mutex m(&listFormatterMutex);
- if (listPatternHash == NULL) {
+ if (listPatternHash == nullptr) {
initializeHash(errorCode);
if (U_FAILURE(errorCode)) {
- return NULL;
+ return nullptr;
}
}
result = static_cast<ListFormatInternal*>(listPatternHash->get(key));
}
- if (result != NULL) {
+ if (result != nullptr) {
return result;
}
result = loadListFormatInternal(locale, style, errorCode);
if (U_FAILURE(errorCode)) {
- return NULL;
+ return nullptr;
}
{
Mutex m(&listFormatterMutex);
ListFormatInternal* temp = static_cast<ListFormatInternal*>(listPatternHash->get(key));
- if (temp != NULL) {
+ if (temp != nullptr) {
delete result;
result = temp;
} else {
listPatternHash->put(key, result, errorCode);
if (U_FAILURE(errorCode)) {
- return NULL;
+ return nullptr;
}
}
}
@@ -235,11 +240,11 @@ ListFormatter::ListPatternsSink::~ListPatternsSink() {}
ListFormatInternal* ListFormatter::loadListFormatInternal(
const Locale& locale, const char * style, UErrorCode& errorCode) {
- UResourceBundle* rb = ures_open(NULL, locale.getName(), &errorCode);
+ UResourceBundle* rb = ures_open(nullptr, locale.getName(), &errorCode);
rb = ures_getByKeyWithFallback(rb, "listPattern", rb, &errorCode);
if (U_FAILURE(errorCode)) {
ures_close(rb);
- return NULL;
+ return nullptr;
}
ListFormatter::ListPatternsSink sink;
char currentStyle[kStyleLenMax+1];
@@ -255,20 +260,20 @@ ListFormatInternal* ListFormatter::loadListFormatInternal(
}
ures_close(rb);
if (U_FAILURE(errorCode)) {
- return NULL;
+ return nullptr;
}
if (sink.two.isEmpty() || sink.start.isEmpty() || sink.middle.isEmpty() || sink.end.isEmpty()) {
errorCode = U_MISSING_RESOURCE_ERROR;
- return NULL;
+ return nullptr;
}
ListFormatInternal* result = new ListFormatInternal(sink.two, sink.start, sink.middle, sink.end, errorCode);
- if (result == NULL) {
+ if (result == nullptr) {
errorCode = U_MEMORY_ALLOCATION_ERROR;
- return NULL;
+ return nullptr;
}
if (U_FAILURE(errorCode)) {
delete result;
- return NULL;
+ return nullptr;
}
return result;
}
@@ -283,15 +288,14 @@ ListFormatter* ListFormatter::createInstance(const Locale& locale, UErrorCode& e
}
ListFormatter* ListFormatter::createInstance(const Locale& locale, const char *style, UErrorCode& errorCode) {
- Locale tempLocale = locale;
- const ListFormatInternal* listFormatInternal = getListFormatInternal(tempLocale, style, errorCode);
+ const ListFormatInternal* listFormatInternal = getListFormatInternal(locale, style, errorCode);
if (U_FAILURE(errorCode)) {
- return NULL;
+ return nullptr;
}
ListFormatter* p = new ListFormatter(listFormatInternal);
- if (p == NULL) {
+ if (p == nullptr) {
errorCode = U_MEMORY_ALLOCATION_ERROR;
- return NULL;
+ return nullptr;
}
return p;
}
@@ -301,7 +305,7 @@ ListFormatter::ListFormatter(const ListFormatData& listFormatData, UErrorCode &e
data = owned;
}
-ListFormatter::ListFormatter(const ListFormatInternal* listFormatterInternal) : owned(NULL), data(listFormatterInternal) {
+ListFormatter::ListFormatter(const ListFormatInternal* listFormatterInternal) : owned(nullptr), data(listFormatterInternal) {
}
ListFormatter::~ListFormatter() {
@@ -323,6 +327,8 @@ static void joinStringsAndReplace(
UnicodeString &result,
UBool recordOffset,
int32_t &offset,
+ int32_t *offsetFirst,
+ int32_t *offsetSecond,
UErrorCode& errorCode) {
if (U_FAILURE(errorCode)) {
return;
@@ -348,6 +354,8 @@ static void joinStringsAndReplace(
} else if (offset >= 0) {
offset += offsets[0];
}
+ if (offsetFirst != nullptr) *offsetFirst = offsets[0];
+ if (offsetSecond != nullptr) *offsetSecond = offsets[1];
}
UnicodeString& ListFormatter::format(
@@ -359,18 +367,43 @@ UnicodeString& ListFormatter::format(
return format(items, nItems, appendTo, -1, offset, errorCode);
}
+#if !UCONFIG_NO_FORMATTING
UnicodeString& ListFormatter::format(
const UnicodeString items[],
int32_t nItems,
+ UnicodeString & appendTo,
+ FieldPositionIterator* posIter,
+ UErrorCode& errorCode) const {
+ int32_t offset;
+ FieldPositionIteratorHandler handler(posIter, errorCode);
+ return format_(items, nItems, appendTo, -1, offset, &handler, errorCode);
+};
+#endif
+
+UnicodeString& ListFormatter::format(
+ const UnicodeString items[],
+ int32_t nItems,
+ UnicodeString& appendTo,
+ int32_t index,
+ int32_t &offset,
+ UErrorCode& errorCode) const {
+ return format_(items, nItems, appendTo, index, offset, nullptr, errorCode);
+}
+
+UnicodeString& ListFormatter::format_(
+ const UnicodeString items[],
+ int32_t nItems,
UnicodeString& appendTo,
int32_t index,
int32_t &offset,
+ FieldPositionHandler* handler,
UErrorCode& errorCode) const {
+#if !UCONFIG_NO_FORMATTING
offset = -1;
if (U_FAILURE(errorCode)) {
return appendTo;
}
- if (data == NULL) {
+ if (data == nullptr) {
errorCode = U_INVALID_STATE_ERROR;
return appendTo;
}
@@ -382,6 +415,11 @@ UnicodeString& ListFormatter::format(
if (index == 0) {
offset = appendTo.length();
}
+ if (handler != nullptr) {
+ handler->addAttribute(ULISTFMT_ELEMENT_FIELD,
+ appendTo.length(),
+ appendTo.length() + items[0].length());
+ }
appendTo.append(items[0]);
return appendTo;
}
@@ -389,6 +427,12 @@ UnicodeString& ListFormatter::format(
if (index == 0) {
offset = 0;
}
+ int32_t offsetFirst;
+ int32_t offsetSecond;
+ int32_t prefixLength = 0;
+ // for n items, there are 2 * (n + 1) boundary including 0 and the upper
+ // edge.
+ MaybeStackArray<int32_t, 10> offsets((handler != nullptr) ? 2 * (nItems + 1): 0);
joinStringsAndReplace(
nItems == 2 ? data->twoPattern : data->startPattern,
result,
@@ -396,7 +440,14 @@ UnicodeString& ListFormatter::format(
result,
index == 1,
offset,
+ &offsetFirst,
+ &offsetSecond,
errorCode);
+ if (handler != nullptr) {
+ offsets[0] = 0;
+ prefixLength += offsetFirst;
+ offsets[1] = offsetSecond - prefixLength;
+ }
if (nItems > 2) {
for (int32_t i = 2; i < nItems - 1; ++i) {
joinStringsAndReplace(
@@ -406,7 +457,13 @@ UnicodeString& ListFormatter::format(
result,
index == i,
offset,
+ &offsetFirst,
+ &offsetSecond,
errorCode);
+ if (handler != nullptr) {
+ prefixLength += offsetFirst;
+ offsets[i] = offsetSecond - prefixLength;
+ }
}
joinStringsAndReplace(
data->endPattern,
@@ -415,7 +472,45 @@ UnicodeString& ListFormatter::format(
result,
index == nItems - 1,
offset,
+ &offsetFirst,
+ &offsetSecond,
errorCode);
+ if (handler != nullptr) {
+ prefixLength += offsetFirst;
+ offsets[nItems - 1] = offsetSecond - prefixLength;
+ }
+ }
+ if (handler != nullptr) {
+ // If there are already some data in appendTo, we need to adjust the index
+ // by shifting that lenght while insert into handler.
+ int32_t shift = appendTo.length() + prefixLength;
+ // Output the ULISTFMT_ELEMENT_FIELD in the order of the input elements
+ for (int32_t i = 0; i < nItems; ++i) {
+ offsets[i + nItems] = offsets[i] + items[i].length() + shift;
+ offsets[i] += shift;
+ handler->addAttribute(
+ ULISTFMT_ELEMENT_FIELD, // id
+ offsets[i], // index
+ offsets[i + nItems]); // limit
+ }
+ // The locale pattern may reorder the items (such as in ur-IN locale),
+ // so we cannot assume the array is in accendning order.
+ // To handle the edging case, just insert the two ends into the array
+ // and sort. Then we output ULISTFMT_LITERAL_FIELD if the indecies
+ // between the even and odd position are not the same in the sorted array.
+ offsets[2 * nItems] = shift - prefixLength;
+ offsets[2 * nItems + 1] = result.length() + shift - prefixLength;
+ uprv_sortArray(offsets.getAlias(), 2 * (nItems + 1), sizeof(int32_t),
+ uprv_int32Comparator, nullptr,
+ false, &errorCode);
+ for (int32_t i = 0; i <= nItems; ++i) {
+ if (offsets[i * 2] != offsets[i * 2 + 1]) {
+ handler->addAttribute(
+ ULISTFMT_LITERAL_FIELD, // id
+ offsets[i * 2], // index
+ offsets[i * 2 + 1]); // limit
+ }
+ }
}
if (U_SUCCESS(errorCode)) {
if (offset >= 0) {
@@ -423,6 +518,7 @@ UnicodeString& ListFormatter::format(
}
appendTo += result;
}
+#endif
return appendTo;
}
diff --git a/Build/source/libs/icu/icu-src/source/i18n/measfmt.cpp b/Build/source/libs/icu/icu-src/source/i18n/measfmt.cpp
index 5970262de1a..9830dc889e1 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/measfmt.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/measfmt.cpp
@@ -47,7 +47,7 @@ U_NAMESPACE_BEGIN
static constexpr int32_t PER_UNIT_INDEX = StandardPlural::COUNT;
static constexpr int32_t PATTERN_COUNT = PER_UNIT_INDEX + 1;
-static constexpr int32_t MEAS_UNIT_COUNT = 138; // see assertion in MeasureFormatCacheData constructor
+static constexpr int32_t MEAS_UNIT_COUNT = 142; // see assertion in MeasureFormatCacheData constructor
static constexpr int32_t WIDTH_INDEX_COUNT = UMEASFMT_WIDTH_NARROW + 1;
UOBJECT_DEFINE_RTTI_IMPLEMENTATION(MeasureFormat)
@@ -618,7 +618,7 @@ MeasureFormat::MeasureFormat(
: cache(NULL),
numberFormat(NULL),
pluralRules(NULL),
- width(w),
+ fWidth(w),
listFormatter(NULL) {
initMeasureFormat(locale, w, NULL, status);
}
@@ -631,7 +631,7 @@ MeasureFormat::MeasureFormat(
: cache(NULL),
numberFormat(NULL),
pluralRules(NULL),
- width(w),
+ fWidth(w),
listFormatter(NULL) {
initMeasureFormat(locale, w, nfToAdopt, status);
}
@@ -641,7 +641,7 @@ MeasureFormat::MeasureFormat(const MeasureFormat &other) :
cache(other.cache),
numberFormat(other.numberFormat),
pluralRules(other.pluralRules),
- width(other.width),
+ fWidth(other.fWidth),
listFormatter(NULL) {
cache->addRef();
numberFormat->addRef();
@@ -659,7 +659,7 @@ MeasureFormat &MeasureFormat::operator=(const MeasureFormat &other) {
SharedObject::copyPtr(other.cache, cache);
SharedObject::copyPtr(other.numberFormat, numberFormat);
SharedObject::copyPtr(other.pluralRules, pluralRules);
- width = other.width;
+ fWidth = other.fWidth;
delete listFormatter;
if (other.listFormatter != NULL) {
listFormatter = new ListFormatter(*other.listFormatter);
@@ -673,7 +673,7 @@ MeasureFormat::MeasureFormat() :
cache(NULL),
numberFormat(NULL),
pluralRules(NULL),
- width(UMEASFMT_WIDTH_SHORT),
+ fWidth(UMEASFMT_WIDTH_SHORT),
listFormatter(NULL) {
}
@@ -703,7 +703,7 @@ UBool MeasureFormat::operator==(const Format &other) const {
// don't have to check it here.
// differing widths aren't equivalent
- if (width != rhs.width) {
+ if (fWidth != rhs.fWidth) {
return FALSE;
}
// Width the same check locales.
@@ -805,7 +805,7 @@ UnicodeString &MeasureFormat::formatMeasures(
if (measureCount == 1) {
return formatMeasure(measures[0], **numberFormat, appendTo, pos, status);
}
- if (width == UMEASFMT_WIDTH_NUMERIC) {
+ if (fWidth == UMEASFMT_WIDTH_NUMERIC) {
Formattable hms[3];
int32_t bitMap = toHMS(measures, measureCount, hms, status);
if (bitMap > 0) {
@@ -839,7 +839,7 @@ UnicodeString &MeasureFormat::formatMeasures(
}
UnicodeString MeasureFormat::getUnitDisplayName(const MeasureUnit& unit, UErrorCode& /*status*/) const {
- UMeasureFormatWidth width = getRegularWidth(this->width);
+ UMeasureFormatWidth width = getRegularWidth(fWidth);
const UChar* const* styleToDnam = cache->dnams[unit.getIndex()];
const UChar* dnam = styleToDnam[width];
if (dnam == NULL) {
@@ -895,11 +895,11 @@ void MeasureFormat::initMeasureFormat(
return;
}
}
- width = w;
+ fWidth = w;
delete listFormatter;
listFormatter = ListFormatter::createInstance(
locale,
- listStyles[getRegularWidth(width)],
+ listStyles[getRegularWidth(fWidth)],
status);
}
@@ -922,7 +922,7 @@ UBool MeasureFormat::setMeasureFormatLocale(const Locale &locale, UErrorCode &st
if (U_FAILURE(status) || locale == getLocale(status)) {
return FALSE;
}
- initMeasureFormat(locale, width, NULL, status);
+ initMeasureFormat(locale, fWidth, NULL, status);
return U_SUCCESS(status);
}
@@ -956,7 +956,7 @@ UnicodeString &MeasureFormat::formatMeasure(
if (isCurrency(amtUnit)) {
UChar isoCode[4];
u_charsToUChars(amtUnit.getSubtype(), isoCode, 4);
- return cache->getCurrencyFormat(width)->format(
+ return cache->getCurrencyFormat(fWidth)->format(
new CurrencyAmount(amtNumber, isoCode, status),
appendTo,
pos,
@@ -965,7 +965,7 @@ UnicodeString &MeasureFormat::formatMeasure(
UnicodeString formattedNumber;
StandardPlural::Form pluralForm = QuantityFormatter::selectPlural(
amtNumber, nf, **pluralRules, formattedNumber, pos, status);
- const SimpleFormatter *formatter = getPluralFormatter(amtUnit, width, pluralForm, status);
+ const SimpleFormatter *formatter = getPluralFormatter(amtUnit, fWidth, pluralForm, status);
return QuantityFormatter::format(*formatter, formattedNumber, appendTo, pos, status);
}
@@ -1016,7 +1016,6 @@ UnicodeString &MeasureFormat::formatNumeric(
return appendTo;
break;
}
- return appendTo;
}
static void appendRange(
@@ -1173,7 +1172,7 @@ int32_t MeasureFormat::withPerUnitAndAppend(
if (U_FAILURE(status)) {
return offset;
}
- const SimpleFormatter *perUnitFormatter = getFormatterOrNull(perUnit, width, PER_UNIT_INDEX);
+ const SimpleFormatter *perUnitFormatter = getFormatterOrNull(perUnit, fWidth, PER_UNIT_INDEX);
if (perUnitFormatter != NULL) {
const UnicodeString *params[] = {&formatted};
perUnitFormatter->formatAndAppend(
@@ -1185,9 +1184,9 @@ int32_t MeasureFormat::withPerUnitAndAppend(
status);
return offset;
}
- const SimpleFormatter *perFormatter = getPerFormatter(width, status);
+ const SimpleFormatter *perFormatter = getPerFormatter(fWidth, status);
const SimpleFormatter *pattern =
- getPluralFormatter(perUnit, width, StandardPlural::ONE, status);
+ getPluralFormatter(perUnit, fWidth, StandardPlural::ONE, status);
if (U_FAILURE(status)) {
return offset;
}
diff --git a/Build/source/libs/icu/icu-src/source/i18n/measunit.cpp b/Build/source/libs/icu/icu-src/source/i18n/measunit.cpp
index 43221345424..d68d504b809 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/measunit.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/measunit.cpp
@@ -39,23 +39,23 @@ static const int32_t gOffsets[] = {
2,
7,
16,
- 20,
- 24,
- 285,
- 295,
- 306,
- 310,
- 316,
- 320,
- 340,
- 341,
- 352,
- 355,
+ 22,
+ 26,
+ 325,
+ 336,
+ 347,
+ 351,
+ 357,
361,
- 366,
- 370,
- 374,
- 399
+ 381,
+ 382,
+ 393,
+ 396,
+ 402,
+ 408,
+ 412,
+ 416,
+ 441
};
static const int32_t gIndexes[] = {
@@ -63,23 +63,23 @@ static const int32_t gIndexes[] = {
2,
7,
16,
- 20,
- 24,
- 24,
- 34,
- 45,
- 49,
- 55,
- 59,
- 79,
- 80,
- 91,
+ 22,
+ 26,
+ 26,
+ 37,
+ 48,
+ 52,
+ 58,
+ 62,
+ 82,
+ 83,
94,
- 100,
- 105,
+ 97,
+ 103,
109,
113,
- 138
+ 117,
+ 142
};
// Must be sorted alphabetically.
@@ -128,6 +128,8 @@ static const char * const gSubTypes[] = {
"milligram-per-deciliter",
"millimole-per-liter",
"part-per-million",
+ "percent",
+ "permille",
"liter-per-100kilometers",
"liter-per-kilometer",
"mile-per-gallon",
@@ -136,15 +138,18 @@ static const char * const gSubTypes[] = {
"AED",
"AFA",
"AFN",
+ "ALK",
"ALL",
"AMD",
"ANG",
"AOA",
+ "AOK",
"AON",
"AOR",
"ARA",
"ARP",
"ARS",
+ "ARY",
"ATS",
"AUD",
"AWG",
@@ -158,6 +163,8 @@ static const char * const gSubTypes[] = {
"BEC",
"BEF",
"BEL",
+ "BGJ",
+ "BGK",
"BGL",
"BGN",
"BHD",
@@ -165,7 +172,9 @@ static const char * const gSubTypes[] = {
"BMD",
"BND",
"BOB",
+ "BOP",
"BOV",
+ "BRB",
"BRC",
"BRE",
"BRL",
@@ -173,6 +182,7 @@ static const char * const gSubTypes[] = {
"BRR",
"BSD",
"BTN",
+ "BUK",
"BWP",
"BYB",
"BYN",
@@ -191,6 +201,7 @@ static const char * const gSubTypes[] = {
"COU",
"CRC",
"CSD",
+ "CSJ",
"CSK",
"CUC",
"CUP",
@@ -225,10 +236,13 @@ static const char * const gSubTypes[] = {
"GHS",
"GIP",
"GMD",
+ "GNE",
"GNF",
+ "GNS",
"GQE",
"GRD",
"GTQ",
+ "GWE",
"GWP",
"GYD",
"HKD",
@@ -239,10 +253,13 @@ static const char * const gSubTypes[] = {
"HUF",
"IDR",
"IEP",
+ "ILP",
+ "ILR",
"ILS",
"INR",
"IQD",
"IRR",
+ "ISJ",
"ISK",
"ITL",
"JMD",
@@ -257,11 +274,13 @@ static const char * const gSubTypes[] = {
"KWD",
"KYD",
"KZT",
+ "LAJ",
"LAK",
"LBP",
"LKR",
"LRD",
"LSL",
+ "LSM",
"LTL",
"LTT",
"LUC",
@@ -280,17 +299,23 @@ static const char * const gSubTypes[] = {
"MNT",
"MOP",
"MRO",
+ "MRU",
"MTL",
+ "MTP",
"MUR",
+ "MVQ",
"MVR",
"MWK",
"MXN",
+ "MXP",
"MXV",
"MYR",
+ "MZE",
"MZM",
"MZN",
"NAD",
"NGN",
+ "NIC",
"NIO",
"NLG",
"NOK",
@@ -298,6 +323,7 @@ static const char * const gSubTypes[] = {
"NZD",
"OMR",
"PAB",
+ "PEH",
"PEI",
"PEN",
"PES",
@@ -309,6 +335,8 @@ static const char * const gSubTypes[] = {
"PTE",
"PYG",
"QAR",
+ "RHD",
+ "ROK",
"ROL",
"RON",
"RSD",
@@ -320,6 +348,7 @@ static const char * const gSubTypes[] = {
"SCR",
"SDD",
"SDG",
+ "SDP",
"SEK",
"SGD",
"SHP",
@@ -331,6 +360,8 @@ static const char * const gSubTypes[] = {
"SRG",
"SSP",
"STD",
+ "STN",
+ "SUR",
"SVC",
"SYP",
"SZL",
@@ -349,15 +380,22 @@ static const char * const gSubTypes[] = {
"TZS",
"UAH",
"UAK",
+ "UGS",
+ "UGW",
"UGX",
"USD",
"USN",
"USS",
"UYI",
+ "UYN",
+ "UYP",
"UYU",
+ "UYW",
"UZS",
"VEB",
"VEF",
+ "VES",
+ "VNC",
"VND",
"VUV",
"WST",
@@ -381,6 +419,7 @@ static const char * const gSubTypes[] = {
"XXX",
"YDD",
"YER",
+ "YUD",
"YUM",
"YUN",
"ZAL",
@@ -389,6 +428,7 @@ static const char * const gSubTypes[] = {
"ZMW",
"ZRN",
"ZRZ",
+ "ZWC",
"ZWD",
"ZWL",
"ZWN",
@@ -401,6 +441,7 @@ static const char * const gSubTypes[] = {
"kilobyte",
"megabit",
"megabyte",
+ "petabyte",
"terabit",
"terabyte",
"century",
@@ -469,6 +510,7 @@ static const char * const gSubTypes[] = {
"megawatt",
"milliwatt",
"watt",
+ "atmosphere",
"hectopascal",
"inch-hg",
"millibar",
@@ -511,16 +553,20 @@ static const char * const gSubTypes[] = {
// Must be sorted by first value and then second value.
static int32_t unitPerUnitToSingleUnit[][4] = {
- {327, 297, 17, 0},
- {329, 303, 17, 2},
- {331, 297, 17, 3},
- {331, 388, 4, 2},
- {331, 389, 4, 3},
- {346, 386, 3, 1},
- {349, 11, 16, 4},
- {391, 327, 4, 1}
+ {368, 338, 17, 0},
+ {370, 344, 17, 2},
+ {372, 338, 17, 3},
+ {372, 430, 4, 2},
+ {372, 431, 4, 3},
+ {387, 428, 3, 1},
+ {390, 11, 16, 5},
+ {433, 368, 4, 1}
};
+// Shortcuts to the base unit in order to make the default constructor fast
+static const int32_t kBaseTypeIdx = 14;
+static const int32_t kBaseSubTypeIdx = 0;
+
MeasureUnit *MeasureUnit::createGForce(UErrorCode &status) {
return MeasureUnit::create(0, 0, status);
}
@@ -601,6 +647,14 @@ MeasureUnit *MeasureUnit::createPartPerMillion(UErrorCode &status) {
return MeasureUnit::create(3, 3, status);
}
+MeasureUnit *MeasureUnit::createPercent(UErrorCode &status) {
+ return MeasureUnit::create(3, 4, status);
+}
+
+MeasureUnit *MeasureUnit::createPermille(UErrorCode &status) {
+ return MeasureUnit::create(3, 5, status);
+}
+
MeasureUnit *MeasureUnit::createLiterPer100Kilometers(UErrorCode &status) {
return MeasureUnit::create(4, 0, status);
}
@@ -649,14 +703,18 @@ MeasureUnit *MeasureUnit::createMegabyte(UErrorCode &status) {
return MeasureUnit::create(6, 7, status);
}
-MeasureUnit *MeasureUnit::createTerabit(UErrorCode &status) {
+MeasureUnit *MeasureUnit::createPetabyte(UErrorCode &status) {
return MeasureUnit::create(6, 8, status);
}
-MeasureUnit *MeasureUnit::createTerabyte(UErrorCode &status) {
+MeasureUnit *MeasureUnit::createTerabit(UErrorCode &status) {
return MeasureUnit::create(6, 9, status);
}
+MeasureUnit *MeasureUnit::createTerabyte(UErrorCode &status) {
+ return MeasureUnit::create(6, 10, status);
+}
+
MeasureUnit *MeasureUnit::createCentury(UErrorCode &status) {
return MeasureUnit::create(7, 0, status);
}
@@ -909,26 +967,30 @@ MeasureUnit *MeasureUnit::createWatt(UErrorCode &status) {
return MeasureUnit::create(15, 5, status);
}
-MeasureUnit *MeasureUnit::createHectopascal(UErrorCode &status) {
+MeasureUnit *MeasureUnit::createAtmosphere(UErrorCode &status) {
return MeasureUnit::create(16, 0, status);
}
-MeasureUnit *MeasureUnit::createInchHg(UErrorCode &status) {
+MeasureUnit *MeasureUnit::createHectopascal(UErrorCode &status) {
return MeasureUnit::create(16, 1, status);
}
-MeasureUnit *MeasureUnit::createMillibar(UErrorCode &status) {
+MeasureUnit *MeasureUnit::createInchHg(UErrorCode &status) {
return MeasureUnit::create(16, 2, status);
}
-MeasureUnit *MeasureUnit::createMillimeterOfMercury(UErrorCode &status) {
+MeasureUnit *MeasureUnit::createMillibar(UErrorCode &status) {
return MeasureUnit::create(16, 3, status);
}
-MeasureUnit *MeasureUnit::createPoundPerSquareInch(UErrorCode &status) {
+MeasureUnit *MeasureUnit::createMillimeterOfMercury(UErrorCode &status) {
return MeasureUnit::create(16, 4, status);
}
+MeasureUnit *MeasureUnit::createPoundPerSquareInch(UErrorCode &status) {
+ return MeasureUnit::create(16, 5, status);
+}
+
MeasureUnit *MeasureUnit::createKilometerPerHour(UErrorCode &status) {
return MeasureUnit::create(17, 0, status);
}
@@ -1082,7 +1144,8 @@ static int32_t binarySearch(
MeasureUnit::MeasureUnit() {
fCurrency[0] = 0;
- initNoUnit("base");
+ fTypeId = kBaseTypeIdx;
+ fSubTypeId = kBaseSubTypeIdx;
}
MeasureUnit::MeasureUnit(const MeasureUnit &other)
diff --git a/Build/source/libs/icu/icu-src/source/i18n/msgfmt.cpp b/Build/source/libs/icu/icu-src/source/i18n/msgfmt.cpp
index 064585665ae..8ff86a2cacf 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/msgfmt.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/msgfmt.cpp
@@ -31,6 +31,7 @@
#include "unicode/decimfmt.h"
#include "unicode/localpointer.h"
#include "unicode/msgfmt.h"
+#include "unicode/numberformatter.h"
#include "unicode/plurfmt.h"
#include "unicode/rbnf.h"
#include "unicode/selfmt.h"
@@ -48,7 +49,7 @@
#include "ustrfmt.h"
#include "util.h"
#include "uvector.h"
-#include "visibledigits.h"
+#include "number_decimalquantity.h"
// *****************************************************************************
// class MessageFormat
@@ -1077,7 +1078,7 @@ void MessageFormat::format(int32_t msgStart, const void *plNumber,
// that formats the number without subtracting the offset.
appendTo.formatAndAppend(pluralNumber.formatter, *arg, success);
}
- } else if ((formatter = getCachedFormatter(i -2))) {
+ } else if ((formatter = getCachedFormatter(i -2)) != 0) {
// Handles all ArgType.SIMPLE, and formatters from setFormat() and its siblings.
if (dynamic_cast<const ChoiceFormat*>(formatter) ||
dynamic_cast<const PluralFormat*>(formatter) ||
@@ -1700,12 +1701,21 @@ Format* MessageFormat::createAppropriateFormat(UnicodeString& type, UnicodeStrin
formattableType = Formattable::kLong;
fmt = createIntegerFormat(fLocale, ec);
break;
- default: // pattern
- fmt = NumberFormat::createInstance(fLocale, ec);
- if (fmt) {
- DecimalFormat* decfmt = dynamic_cast<DecimalFormat*>(fmt);
- if (decfmt != NULL) {
- decfmt->applyPattern(style,parseError,ec);
+ default: // pattern or skeleton
+ int32_t i = 0;
+ for (; PatternProps::isWhiteSpace(style.charAt(i)); i++);
+ if (style.compare(i, 2, u"::", 0, 2) == 0) {
+ // Skeleton
+ UnicodeString skeleton = style.tempSubString(i + 2);
+ fmt = number::NumberFormatter::forSkeleton(skeleton, ec).locale(fLocale).toFormat(ec);
+ } else {
+ // Pattern
+ fmt = NumberFormat::createInstance(fLocale, ec);
+ if (fmt) {
+ auto* decfmt = dynamic_cast<DecimalFormat*>(fmt);
+ if (decfmt != nullptr) {
+ decfmt->applyPattern(style, parseError, ec);
+ }
}
}
break;
@@ -1959,14 +1969,14 @@ UnicodeString MessageFormat::PluralSelectorProvider::select(void *ctx, double nu
return UnicodeString(FALSE, OTHER_STRING, 5);
}
context.formatter->format(context.number, context.numberString, ec);
- const DecimalFormat *decFmt = dynamic_cast<const DecimalFormat *>(context.formatter);
+ auto* decFmt = dynamic_cast<const DecimalFormat *>(context.formatter);
if(decFmt != NULL) {
- VisibleDigitsWithExponent digits;
- decFmt->initVisibleDigitsWithExponent(context.number, digits, ec);
+ number::impl::DecimalQuantity dq;
+ decFmt->formatToDecimalQuantity(context.number, dq, ec);
if (U_FAILURE(ec)) {
return UnicodeString(FALSE, OTHER_STRING, 5);
}
- return rules->select(digits);
+ return rules->select(dq);
} else {
return rules->select(number);
}
diff --git a/Build/source/libs/icu/icu-src/source/i18n/nfrule.cpp b/Build/source/libs/icu/icu-src/source/i18n/nfrule.cpp
index c75ecf06705..3ad0291649e 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/nfrule.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/nfrule.cpp
@@ -39,14 +39,14 @@ NFRule::NFRule(const RuleBasedNumberFormat* _rbnf, const UnicodeString &_ruleTex
, radix(10)
, exponent(0)
, decimalPoint(0)
- , ruleText(_ruleText)
+ , fRuleText(_ruleText)
, sub1(NULL)
, sub2(NULL)
, formatter(_rbnf)
, rulePatternFormat(NULL)
{
- if (!ruleText.isEmpty()) {
- parseRuleDescriptor(ruleText, status);
+ if (!fRuleText.isEmpty()) {
+ parseRuleDescriptor(fRuleText, status);
}
}
@@ -122,7 +122,7 @@ NFRule::makeRules(UnicodeString& description,
status = U_MEMORY_ALLOCATION_ERROR;
return;
}
- description = rule1->ruleText;
+ description = rule1->fRuleText;
// check the description to see whether there's text enclosed
// in brackets
@@ -314,7 +314,7 @@ NFRule::parseRuleDescriptor(UnicodeString& description, UErrorCode& status)
if (c == gSlash) {
val = 0;
++p;
- int64_t ll_10 = 10;
+ ll_10 = 10;
while (p < descriptorLength) {
c = descriptor.charAt(p);
if (c >= gZero && c <= gNine) {
@@ -418,7 +418,7 @@ NFRule::extractSubstitutions(const NFRuleSet* ruleSet,
if (U_FAILURE(status)) {
return;
}
- this->ruleText = ruleText;
+ fRuleText = ruleText;
sub1 = extractSubstitution(ruleSet, predecessor, status);
if (sub1 == NULL) {
// Small optimization. There is no need to create a redundant NullSubstitution.
@@ -427,15 +427,15 @@ NFRule::extractSubstitutions(const NFRuleSet* ruleSet,
else {
sub2 = extractSubstitution(ruleSet, predecessor, status);
}
- int32_t pluralRuleStart = this->ruleText.indexOf(gDollarOpenParenthesis, -1, 0);
- int32_t pluralRuleEnd = (pluralRuleStart >= 0 ? this->ruleText.indexOf(gClosedParenthesisDollar, -1, pluralRuleStart) : -1);
+ int32_t pluralRuleStart = fRuleText.indexOf(gDollarOpenParenthesis, -1, 0);
+ int32_t pluralRuleEnd = (pluralRuleStart >= 0 ? fRuleText.indexOf(gClosedParenthesisDollar, -1, pluralRuleStart) : -1);
if (pluralRuleEnd >= 0) {
- int32_t endType = this->ruleText.indexOf(gComma, pluralRuleStart);
+ int32_t endType = fRuleText.indexOf(gComma, pluralRuleStart);
if (endType < 0) {
status = U_PARSE_ERROR;
return;
}
- UnicodeString type(this->ruleText.tempSubString(pluralRuleStart + 2, endType - pluralRuleStart - 2));
+ UnicodeString type(fRuleText.tempSubString(pluralRuleStart + 2, endType - pluralRuleStart - 2));
UPluralType pluralType;
if (type.startsWith(UNICODE_STRING_SIMPLE("cardinal"))) {
pluralType = UPLURAL_TYPE_CARDINAL;
@@ -448,7 +448,7 @@ NFRule::extractSubstitutions(const NFRuleSet* ruleSet,
return;
}
rulePatternFormat = formatter->createPluralFormat(pluralType,
- this->ruleText.tempSubString(endType + 1, pluralRuleEnd - endType - 1), status);
+ fRuleText.tempSubString(endType + 1, pluralRuleEnd - endType - 1), status);
}
}
@@ -484,16 +484,16 @@ NFRule::extractSubstitution(const NFRuleSet* ruleSet,
// special-case the ">>>" token, since searching for the > at the
// end will actually find the > in the middle
- if (ruleText.indexOf(gGreaterGreaterGreater, 3, 0) == subStart) {
+ if (fRuleText.indexOf(gGreaterGreaterGreater, 3, 0) == subStart) {
subEnd = subStart + 2;
// otherwise the substitution token ends with the same character
// it began with
} else {
- UChar c = ruleText.charAt(subStart);
- subEnd = ruleText.indexOf(c, subStart + 1);
+ UChar c = fRuleText.charAt(subStart);
+ subEnd = fRuleText.indexOf(c, subStart + 1);
// special case for '<%foo<<'
- if (c == gLessThan && subEnd != -1 && subEnd < ruleText.length() - 1 && ruleText.charAt(subEnd+1) == c) {
+ if (c == gLessThan && subEnd != -1 && subEnd < fRuleText.length() - 1 && fRuleText.charAt(subEnd+1) == c) {
// ordinals use "=#,##0==%abbrev=" as their rule. Notice that the '==' in the middle
// occurs because of the juxtaposition of two different rules. The check for '<' is a hack
// to get around this. Having the duplicate at the front would cause problems with
@@ -513,12 +513,12 @@ NFRule::extractSubstitution(const NFRuleSet* ruleSet,
// some text bounded by substitution token characters). Use
// makeSubstitution() to create the right kind of substitution
UnicodeString subToken;
- subToken.setTo(ruleText, subStart, subEnd + 1 - subStart);
+ subToken.setTo(fRuleText, subStart, subEnd + 1 - subStart);
result = NFSubstitution::makeSubstitution(subStart, this, predecessor, ruleSet,
this->formatter, subToken, status);
// remove the substitution from the rule text
- ruleText.removeBetween(subStart, subEnd+1);
+ fRuleText.removeBetween(subStart, subEnd+1);
return result;
}
@@ -601,7 +601,7 @@ NFRule::indexOfAnyRulePrefix() const
{
int result = -1;
for (int i = 0; RULE_PREFIXES[i]; i++) {
- int32_t pos = ruleText.indexOf(*RULE_PREFIXES[i]);
+ int32_t pos = fRuleText.indexOf(*RULE_PREFIXES[i]);
if (pos != -1 && (result == -1 || pos < result)) {
result = pos;
}
@@ -637,7 +637,7 @@ NFRule::operator==(const NFRule& rhs) const
return baseValue == rhs.baseValue
&& radix == rhs.radix
&& exponent == rhs.exponent
- && ruleText == rhs.ruleText
+ && fRuleText == rhs.fRuleText
&& util_equalSubstitutions(sub1, rhs.sub1)
&& util_equalSubstitutions(sub2, rhs.sub2);
}
@@ -690,14 +690,14 @@ NFRule::_appendRuleText(UnicodeString& result) const
// if the rule text begins with a space, write an apostrophe
// (whitespace after the rule descriptor is ignored; the
// apostrophe is used to make the whitespace significant)
- if (ruleText.charAt(0) == gSpace && (sub1 == NULL || sub1->getPos() != 0)) {
+ if (fRuleText.charAt(0) == gSpace && (sub1 == NULL || sub1->getPos() != 0)) {
result.append(gTick);
}
// now, write the rule's rule text, inserting appropriate
// substitution tokens in the appropriate places
UnicodeString ruleTextCopy;
- ruleTextCopy.setTo(ruleText);
+ ruleTextCopy.setTo(fRuleText);
UnicodeString temp;
if (sub2 != NULL) {
@@ -743,24 +743,24 @@ NFRule::doFormat(int64_t number, UnicodeString& toInsertInto, int32_t pos, int32
// into the right places in toInsertInto (notice we do the
// substitutions in reverse order so that the offsets don't get
// messed up)
- int32_t pluralRuleStart = ruleText.length();
+ int32_t pluralRuleStart = fRuleText.length();
int32_t lengthOffset = 0;
if (!rulePatternFormat) {
- toInsertInto.insert(pos, ruleText);
+ toInsertInto.insert(pos, fRuleText);
}
else {
- pluralRuleStart = ruleText.indexOf(gDollarOpenParenthesis, -1, 0);
- int pluralRuleEnd = ruleText.indexOf(gClosedParenthesisDollar, -1, pluralRuleStart);
+ pluralRuleStart = fRuleText.indexOf(gDollarOpenParenthesis, -1, 0);
+ int pluralRuleEnd = fRuleText.indexOf(gClosedParenthesisDollar, -1, pluralRuleStart);
int initialLength = toInsertInto.length();
- if (pluralRuleEnd < ruleText.length() - 1) {
- toInsertInto.insert(pos, ruleText.tempSubString(pluralRuleEnd + 2));
+ if (pluralRuleEnd < fRuleText.length() - 1) {
+ toInsertInto.insert(pos, fRuleText.tempSubString(pluralRuleEnd + 2));
}
toInsertInto.insert(pos,
rulePatternFormat->format((int32_t)(number/util64_pow(radix, exponent)), status));
if (pluralRuleStart > 0) {
- toInsertInto.insert(pos, ruleText.tempSubString(0, pluralRuleStart));
+ toInsertInto.insert(pos, fRuleText.tempSubString(0, pluralRuleStart));
}
- lengthOffset = ruleText.length() - (toInsertInto.length() - initialLength);
+ lengthOffset = fRuleText.length() - (toInsertInto.length() - initialLength);
}
if (sub2 != NULL) {
@@ -789,17 +789,17 @@ NFRule::doFormat(double number, UnicodeString& toInsertInto, int32_t pos, int32_
// [again, we have two copies of this routine that do the same thing
// so that we don't sacrifice precision in a long by casting it
// to a double]
- int32_t pluralRuleStart = ruleText.length();
+ int32_t pluralRuleStart = fRuleText.length();
int32_t lengthOffset = 0;
if (!rulePatternFormat) {
- toInsertInto.insert(pos, ruleText);
+ toInsertInto.insert(pos, fRuleText);
}
else {
- pluralRuleStart = ruleText.indexOf(gDollarOpenParenthesis, -1, 0);
- int pluralRuleEnd = ruleText.indexOf(gClosedParenthesisDollar, -1, pluralRuleStart);
+ pluralRuleStart = fRuleText.indexOf(gDollarOpenParenthesis, -1, 0);
+ int pluralRuleEnd = fRuleText.indexOf(gClosedParenthesisDollar, -1, pluralRuleStart);
int initialLength = toInsertInto.length();
- if (pluralRuleEnd < ruleText.length() - 1) {
- toInsertInto.insert(pos, ruleText.tempSubString(pluralRuleEnd + 2));
+ if (pluralRuleEnd < fRuleText.length() - 1) {
+ toInsertInto.insert(pos, fRuleText.tempSubString(pluralRuleEnd + 2));
}
double pluralVal = number;
if (0 <= pluralVal && pluralVal < 1) {
@@ -812,9 +812,9 @@ NFRule::doFormat(double number, UnicodeString& toInsertInto, int32_t pos, int32_
}
toInsertInto.insert(pos, rulePatternFormat->format((int32_t)(pluralVal), status));
if (pluralRuleStart > 0) {
- toInsertInto.insert(pos, ruleText.tempSubString(0, pluralRuleStart));
+ toInsertInto.insert(pos, fRuleText.tempSubString(0, pluralRuleStart));
}
- lengthOffset = ruleText.length() - (toInsertInto.length() - initialLength);
+ lengthOffset = fRuleText.length() - (toInsertInto.length() - initialLength);
}
if (sub2 != NULL) {
@@ -908,15 +908,15 @@ NFRule::doParse(const UnicodeString& text,
ParsePosition pp;
UnicodeString workText(text);
- int32_t sub1Pos = sub1 != NULL ? sub1->getPos() : ruleText.length();
- int32_t sub2Pos = sub2 != NULL ? sub2->getPos() : ruleText.length();
+ int32_t sub1Pos = sub1 != NULL ? sub1->getPos() : fRuleText.length();
+ int32_t sub2Pos = sub2 != NULL ? sub2->getPos() : fRuleText.length();
// check to see whether the text before the first substitution
// matches the text at the beginning of the string being
// parsed. If it does, strip that off the front of workText;
// otherwise, dump out with a mismatch
UnicodeString prefix;
- prefix.setTo(ruleText, 0, sub1Pos);
+ prefix.setTo(fRuleText, 0, sub1Pos);
#ifdef RBNF_DEBUG
fprintf(stderr, "doParse %p ", this);
@@ -1000,7 +1000,7 @@ NFRule::doParse(const UnicodeString& text,
// the substitution, giving us a new partial parse result
pp.setIndex(0);
- temp.setTo(ruleText, sub1Pos, sub2Pos - sub1Pos);
+ temp.setTo(fRuleText, sub1Pos, sub2Pos - sub1Pos);
double partialResult = matchToDelimiter(workText, start, tempBaseValue,
temp, pp, sub1,
nonNumericalExecutedRuleMask,
@@ -1021,7 +1021,7 @@ NFRule::doParse(const UnicodeString& text,
// partial result with whatever it gets back from its
// substitution if there's a successful match, giving us
// a real result
- temp.setTo(ruleText, sub2Pos, ruleText.length() - sub2Pos);
+ temp.setTo(fRuleText, sub2Pos, fRuleText.length() - sub2Pos);
partialResult = matchToDelimiter(workText2, 0, partialResult,
temp, pp2, sub2,
nonNumericalExecutedRuleMask,
@@ -1039,18 +1039,18 @@ NFRule::doParse(const UnicodeString& text,
else {
// commented out because ParsePosition doesn't have error index in 1.1.x
// restored for ICU4C port
- int32_t temp = pp2.getErrorIndex() + sub1Pos + pp.getIndex();
- if (temp> parsePosition.getErrorIndex()) {
- parsePosition.setErrorIndex(temp);
+ int32_t i_temp = pp2.getErrorIndex() + sub1Pos + pp.getIndex();
+ if (i_temp> parsePosition.getErrorIndex()) {
+ parsePosition.setErrorIndex(i_temp);
}
}
}
else {
// commented out because ParsePosition doesn't have error index in 1.1.x
// restored for ICU4C port
- int32_t temp = sub1Pos + pp.getErrorIndex();
- if (temp > parsePosition.getErrorIndex()) {
- parsePosition.setErrorIndex(temp);
+ int32_t i_temp = sub1Pos + pp.getErrorIndex();
+ if (i_temp > parsePosition.getErrorIndex()) {
+ parsePosition.setErrorIndex(i_temp);
}
}
// keep trying to match things until the outer matchToDelimiter()
@@ -1483,11 +1483,11 @@ NFRule::findText(const UnicodeString& str,
rulePatternFormat->parseType(str, this, result, position);
int start = position.getBeginIndex();
if (start >= 0) {
- int32_t pluralRuleStart = ruleText.indexOf(gDollarOpenParenthesis, -1, 0);
- int32_t pluralRuleSuffix = ruleText.indexOf(gClosedParenthesisDollar, -1, pluralRuleStart) + 2;
+ int32_t pluralRuleStart = fRuleText.indexOf(gDollarOpenParenthesis, -1, 0);
+ int32_t pluralRuleSuffix = fRuleText.indexOf(gClosedParenthesisDollar, -1, pluralRuleStart) + 2;
int32_t matchLen = position.getEndIndex() - start;
- UnicodeString prefix(ruleText.tempSubString(0, pluralRuleStart));
- UnicodeString suffix(ruleText.tempSubString(pluralRuleSuffix));
+ UnicodeString prefix(fRuleText.tempSubString(0, pluralRuleStart));
+ UnicodeString suffix(fRuleText.tempSubString(pluralRuleSuffix));
if (str.compare(start - prefix.length(), prefix.length(), prefix, 0, prefix.length()) == 0
&& str.compare(start + matchLen, suffix.length(), suffix, 0, suffix.length()) == 0)
{
diff --git a/Build/source/libs/icu/icu-src/source/i18n/nfrule.h b/Build/source/libs/icu/icu-src/source/i18n/nfrule.h
index 698b75bb637..ed33eaa5af7 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/nfrule.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/nfrule.h
@@ -109,7 +109,7 @@ private:
int32_t radix;
int16_t exponent;
UChar decimalPoint;
- UnicodeString ruleText;
+ UnicodeString fRuleText;
NFSubstitution* sub1;
NFSubstitution* sub2;
const RuleBasedNumberFormat* formatter;
diff --git a/Build/source/libs/icu/icu-src/source/i18n/nfsubs.cpp b/Build/source/libs/icu/icu-src/source/i18n/nfsubs.cpp
index 4c17aa28186..208543d1acd 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/nfsubs.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/nfsubs.cpp
@@ -19,8 +19,9 @@
#include "utypeinfo.h" // for 'typeid' to work
#include "nfsubs.h"
-#include "digitlst.h"
#include "fmtableimp.h"
+#include "putilimp.h"
+#include "number_decimalquantity.h"
#if U_HAVE_RBNF
@@ -47,6 +48,8 @@ static const UChar gGreaterGreaterThan[] =
U_NAMESPACE_BEGIN
+using number::impl::DecimalQuantity;
+
class SameValueSubstitution : public NFSubstitution {
public:
SameValueSubstitution(int32_t pos,
@@ -1069,13 +1072,12 @@ FractionalPartSubstitution::doSubstitution(double number, UnicodeString& toInser
// numberToFormat /= 10;
// }
- DigitList dl;
- dl.set(number);
- dl.roundFixedPoint(20); // round to 20 fraction digits.
- dl.reduce(); // Removes any trailing zeros.
+ DecimalQuantity dl;
+ dl.setToDouble(number);
+ dl.roundToMagnitude(-20, UNUM_ROUND_HALFEVEN, status); // round to 20 fraction digits.
UBool pad = FALSE;
- for (int32_t didx = dl.getCount()-1; didx>=dl.getDecimalAt(); didx--) {
+ for (int32_t didx = dl.getLowerDisplayMagnitude(); didx<0; didx++) {
// Loop iterates over fraction digits, starting with the LSD.
// include both real digits from the number, and zeros
// to the left of the MSD but to the right of the decimal point.
@@ -1084,7 +1086,7 @@ FractionalPartSubstitution::doSubstitution(double number, UnicodeString& toInser
} else {
pad = TRUE;
}
- int64_t digit = didx>=0 ? dl.getDigit(didx) - '0' : 0;
+ int64_t digit = dl.getDigit(didx);
getRuleSet()->format(digit, toInsertInto, _pos + getPos(), recursionCount, status);
}
@@ -1142,7 +1144,8 @@ FractionalPartSubstitution::doParse(const UnicodeString& text,
int32_t digit;
// double p10 = 0.1;
- DigitList dl;
+ DecimalQuantity dl;
+ int32_t totalDigits = 0;
NumberFormat* fmt = NULL;
while (workText.length() > 0 && workPos.getIndex() != 0) {
workPos.setIndex(0);
@@ -1170,7 +1173,8 @@ FractionalPartSubstitution::doParse(const UnicodeString& text,
}
if (workPos.getIndex() != 0) {
- dl.append((char)('0' + digit));
+ dl.appendDigit(static_cast<int8_t>(digit), 0, true);
+ totalDigits++;
// result += digit * p10;
// p10 /= 10;
parsePosition.setIndex(parsePosition.getIndex() + workPos.getIndex());
@@ -1183,7 +1187,8 @@ FractionalPartSubstitution::doParse(const UnicodeString& text,
}
delete fmt;
- result = dl.getCount() == 0 ? 0 : dl.getDouble();
+ dl.adjustMagnitude(-totalDigits);
+ result = dl.toDouble();
result = composeRuleValue(result, baseValue);
resVal.setDouble(result);
return TRUE;
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_affixutils.cpp b/Build/source/libs/icu/icu-src/source/i18n/number_affixutils.cpp
index df4b267af5a..8da29a03d52 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/number_affixutils.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_affixutils.cpp
@@ -3,21 +3,25 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
#include "number_affixutils.h"
#include "unicode/utf16.h"
+#include "unicode/uniset.h"
using namespace icu;
using namespace icu::number;
using namespace icu::number::impl;
-int32_t AffixUtils::estimateLength(const CharSequence &patternString, UErrorCode &status) {
+TokenConsumer::~TokenConsumer() = default;
+SymbolProvider::~SymbolProvider() = default;
+
+int32_t AffixUtils::estimateLength(const UnicodeString &patternString, UErrorCode &status) {
AffixPatternState state = STATE_BASE;
int32_t offset = 0;
int32_t length = 0;
for (; offset < patternString.length();) {
- UChar32 cp = patternString.codePointAt(offset);
+ UChar32 cp = patternString.char32At(offset);
switch (state) {
case STATE_BASE:
@@ -78,12 +82,12 @@ int32_t AffixUtils::estimateLength(const CharSequence &patternString, UErrorCode
return length;
}
-UnicodeString AffixUtils::escape(const CharSequence &input) {
+UnicodeString AffixUtils::escape(const UnicodeString &input) {
AffixPatternState state = STATE_BASE;
int32_t offset = 0;
UnicodeString output;
for (; offset < input.length();) {
- UChar32 cp = input.codePointAt(offset);
+ UChar32 cp = input.char32At(offset);
switch (cp) {
case u'\'':
@@ -153,7 +157,7 @@ Field AffixUtils::getFieldForType(AffixPatternType type) {
}
int32_t
-AffixUtils::unescape(const CharSequence &affixPattern, NumberStringBuilder &output, int32_t position,
+AffixUtils::unescape(const UnicodeString &affixPattern, NumberStringBuilder &output, int32_t position,
const SymbolProvider &provider, UErrorCode &status) {
int32_t length = 0;
AffixTag tag;
@@ -173,7 +177,7 @@ AffixUtils::unescape(const CharSequence &affixPattern, NumberStringBuilder &outp
return length;
}
-int32_t AffixUtils::unescapedCodePointCount(const CharSequence &affixPattern,
+int32_t AffixUtils::unescapedCodePointCount(const UnicodeString &affixPattern,
const SymbolProvider &provider, UErrorCode &status) {
int32_t length = 0;
AffixTag tag;
@@ -192,7 +196,7 @@ int32_t AffixUtils::unescapedCodePointCount(const CharSequence &affixPattern,
}
bool
-AffixUtils::containsType(const CharSequence &affixPattern, AffixPatternType type, UErrorCode &status) {
+AffixUtils::containsType(const UnicodeString &affixPattern, AffixPatternType type, UErrorCode &status) {
if (affixPattern.length() == 0) {
return false;
}
@@ -207,7 +211,7 @@ AffixUtils::containsType(const CharSequence &affixPattern, AffixPatternType type
return false;
}
-bool AffixUtils::hasCurrencySymbols(const CharSequence &affixPattern, UErrorCode &status) {
+bool AffixUtils::hasCurrencySymbols(const UnicodeString &affixPattern, UErrorCode &status) {
if (affixPattern.length() == 0) {
return false;
}
@@ -222,9 +226,9 @@ bool AffixUtils::hasCurrencySymbols(const CharSequence &affixPattern, UErrorCode
return false;
}
-UnicodeString AffixUtils::replaceType(const CharSequence &affixPattern, AffixPatternType type,
+UnicodeString AffixUtils::replaceType(const UnicodeString &affixPattern, AffixPatternType type,
char16_t replacementChar, UErrorCode &status) {
- UnicodeString output = affixPattern.toUnicodeString();
+ UnicodeString output(affixPattern); // copy
if (affixPattern.length() == 0) {
return output;
};
@@ -239,11 +243,41 @@ UnicodeString AffixUtils::replaceType(const CharSequence &affixPattern, AffixPat
return output;
}
-AffixTag AffixUtils::nextToken(AffixTag tag, const CharSequence &patternString, UErrorCode &status) {
+bool AffixUtils::containsOnlySymbolsAndIgnorables(const UnicodeString& affixPattern,
+ const UnicodeSet& ignorables, UErrorCode& status) {
+ if (affixPattern.length() == 0) {
+ return true;
+ };
+ AffixTag tag;
+ while (hasNext(tag, affixPattern)) {
+ tag = nextToken(tag, affixPattern, status);
+ if (U_FAILURE(status)) { return false; }
+ if (tag.type == TYPE_CODEPOINT && !ignorables.contains(tag.codePoint)) {
+ return false;
+ }
+ }
+ return true;
+}
+
+void AffixUtils::iterateWithConsumer(const UnicodeString& affixPattern, TokenConsumer& consumer,
+ UErrorCode& status) {
+ if (affixPattern.length() == 0) {
+ return;
+ };
+ AffixTag tag;
+ while (hasNext(tag, affixPattern)) {
+ tag = nextToken(tag, affixPattern, status);
+ if (U_FAILURE(status)) { return; }
+ consumer.consumeToken(tag.type, tag.codePoint, status);
+ if (U_FAILURE(status)) { return; }
+ }
+}
+
+AffixTag AffixUtils::nextToken(AffixTag tag, const UnicodeString &patternString, UErrorCode &status) {
int32_t offset = tag.offset;
int32_t state = tag.state;
for (; offset < patternString.length();) {
- UChar32 cp = patternString.codePointAt(offset);
+ UChar32 cp = patternString.char32At(offset);
int32_t count = U16_LENGTH(cp);
switch (state) {
@@ -382,7 +416,7 @@ AffixTag AffixUtils::nextToken(AffixTag tag, const CharSequence &patternString,
}
}
-bool AffixUtils::hasNext(const AffixTag &tag, const CharSequence &string) {
+bool AffixUtils::hasNext(const AffixTag &tag, const UnicodeString &string) {
// First check for the {-1} and default initializer syntax.
if (tag.offset < 0) {
return false;
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_affixutils.h b/Build/source/libs/icu/icu-src/source/i18n/number_affixutils.h
index fd76c99b975..1d7e1a115e0 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/number_affixutils.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_affixutils.h
@@ -3,7 +3,7 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
#ifndef __NUMBER_AFFIXUTILS_H__
#define __NUMBER_AFFIXUTILS_H__
@@ -12,6 +12,7 @@
#include "unicode/stringpiece.h"
#include "unicode/unistr.h"
#include "number_stringbuilder.h"
+#include "unicode/uniset.h"
U_NAMESPACE_BEGIN namespace number {
namespace impl {
@@ -37,19 +38,27 @@ struct AffixTag {
AffixPatternState state;
AffixPatternType type;
- AffixTag() : offset(0), state(STATE_BASE) {}
+ AffixTag()
+ : offset(0), state(STATE_BASE) {}
- AffixTag(int32_t offset) : offset(offset) {}
+ AffixTag(int32_t offset)
+ : offset(offset) {}
AffixTag(int32_t offset, UChar32 codePoint, AffixPatternState state, AffixPatternType type)
- : offset(offset), codePoint(codePoint), state(state), type(type)
- {}
+ : offset(offset), codePoint(codePoint), state(state), type(type) {}
+};
+
+class TokenConsumer {
+ public:
+ virtual ~TokenConsumer();
+
+ virtual void consumeToken(AffixPatternType type, UChar32 cp, UErrorCode& status) = 0;
};
// Exported as U_I18N_API because it is a base class for other exported types
class U_I18N_API SymbolProvider {
public:
- virtual ~SymbolProvider() = default;
+ virtual ~SymbolProvider();
// TODO: Could this be more efficient if it returned by reference?
virtual UnicodeString getSymbol(AffixPatternType type) const = 0;
@@ -107,7 +116,7 @@ class U_I18N_API AffixUtils {
* @param patternString The original string whose width will be estimated.
* @return The length of the unescaped string.
*/
- static int32_t estimateLength(const CharSequence &patternString, UErrorCode &status);
+ static int32_t estimateLength(const UnicodeString& patternString, UErrorCode& status);
/**
* Takes a string and escapes (quotes) characters that have special meaning in the affix pattern
@@ -118,7 +127,7 @@ class U_I18N_API AffixUtils {
* @param input The string to be escaped.
* @return The resulting UnicodeString.
*/
- static UnicodeString escape(const CharSequence &input);
+ static UnicodeString escape(const UnicodeString& input);
static Field getFieldForType(AffixPatternType type);
@@ -134,9 +143,8 @@ class U_I18N_API AffixUtils {
* @param position The index into the NumberStringBuilder to insert the string.
* @param provider An object to generate locale symbols.
*/
- static int32_t
- unescape(const CharSequence &affixPattern, NumberStringBuilder &output, int32_t position,
- const SymbolProvider &provider, UErrorCode &status);
+ static int32_t unescape(const UnicodeString& affixPattern, NumberStringBuilder& output,
+ int32_t position, const SymbolProvider& provider, UErrorCode& status);
/**
* Sames as {@link #unescape}, but only calculates the code point count. More efficient than {@link #unescape}
@@ -146,8 +154,8 @@ class U_I18N_API AffixUtils {
* @param provider An object to generate locale symbols.
* @return The same return value as if you called {@link #unescape}.
*/
- static int32_t unescapedCodePointCount(const CharSequence &affixPattern,
- const SymbolProvider &provider, UErrorCode &status);
+ static int32_t unescapedCodePointCount(const UnicodeString& affixPattern,
+ const SymbolProvider& provider, UErrorCode& status);
/**
* Checks whether the given affix pattern contains at least one token of the given type, which is
@@ -157,8 +165,7 @@ class U_I18N_API AffixUtils {
* @param type The token type.
* @return true if the affix pattern contains the given token type; false otherwise.
*/
- static bool
- containsType(const CharSequence &affixPattern, AffixPatternType type, UErrorCode &status);
+ static bool containsType(const UnicodeString& affixPattern, AffixPatternType type, UErrorCode& status);
/**
* Checks whether the specified affix pattern has any unquoted currency symbols ("¤").
@@ -166,7 +173,7 @@ class U_I18N_API AffixUtils {
* @param affixPattern The string to check for currency symbols.
* @return true if the literal has at least one unquoted currency symbol; false otherwise.
*/
- static bool hasCurrencySymbols(const CharSequence &affixPattern, UErrorCode &status);
+ static bool hasCurrencySymbols(const UnicodeString& affixPattern, UErrorCode& status);
/**
* Replaces all occurrences of tokens with the given type with the given replacement char.
@@ -176,9 +183,21 @@ class U_I18N_API AffixUtils {
* @param replacementChar The char to substitute in place of chars of the given token type.
* @return A string containing the new affix pattern.
*/
- static UnicodeString
- replaceType(const CharSequence &affixPattern, AffixPatternType type, char16_t replacementChar,
- UErrorCode &status);
+ static UnicodeString replaceType(const UnicodeString& affixPattern, AffixPatternType type,
+ char16_t replacementChar, UErrorCode& status);
+
+ /**
+ * Returns whether the given affix pattern contains only symbols and ignorables as defined by the
+ * given ignorables set.
+ */
+ static bool containsOnlySymbolsAndIgnorables(const UnicodeString& affixPattern,
+ const UnicodeSet& ignorables, UErrorCode& status);
+
+ /**
+ * Iterates over the affix pattern, calling the TokenConsumer for each token.
+ */
+ static void iterateWithConsumer(const UnicodeString& affixPattern, TokenConsumer& consumer,
+ UErrorCode& status);
/**
* Returns the next token from the affix pattern.
@@ -190,7 +209,7 @@ class U_I18N_API AffixUtils {
* (never negative), or -1 if there were no more tokens in the affix pattern.
* @see #hasNext
*/
- static AffixTag nextToken(AffixTag tag, const CharSequence &patternString, UErrorCode &status);
+ static AffixTag nextToken(AffixTag tag, const UnicodeString& patternString, UErrorCode& status);
/**
* Returns whether the affix pattern string has any more tokens to be retrieved from a call to
@@ -200,7 +219,7 @@ class U_I18N_API AffixUtils {
* @param string The affix pattern.
* @return true if there are more tokens to consume; false otherwise.
*/
- static bool hasNext(const AffixTag &tag, const CharSequence &string);
+ static bool hasNext(const AffixTag& tag, const UnicodeString& string);
private:
/**
@@ -208,8 +227,8 @@ class U_I18N_API AffixUtils {
* The order of the arguments is consistent with Java, but the order of the stored
* fields is not necessarily the same.
*/
- static inline AffixTag
- makeTag(int32_t offset, AffixPatternType type, AffixPatternState state, UChar32 cp) {
+ static inline AffixTag makeTag(int32_t offset, AffixPatternType type, AffixPatternState state,
+ UChar32 cp) {
return {offset, cp, state, type};
}
};
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_asformat.cpp b/Build/source/libs/icu/icu-src/source/i18n/number_asformat.cpp
new file mode 100644
index 00000000000..c6bb538932c
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_asformat.cpp
@@ -0,0 +1,105 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+// Allow implicit conversion from char16_t* to UnicodeString for this file:
+// Helpful in toString methods and elsewhere.
+#define UNISTR_FROM_STRING_EXPLICIT
+
+#include <stdlib.h>
+#include <cmath>
+#include "number_asformat.h"
+#include "number_types.h"
+#include "number_utils.h"
+#include "fphdlimp.h"
+#include "number_utypes.h"
+
+using namespace icu;
+using namespace icu::number;
+using namespace icu::number::impl;
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(LocalizedNumberFormatterAsFormat)
+
+LocalizedNumberFormatterAsFormat::LocalizedNumberFormatterAsFormat(
+ const LocalizedNumberFormatter& formatter, const Locale& locale)
+ : fFormatter(formatter), fLocale(locale) {
+ const char* localeName = locale.getName();
+ setLocaleIDs(localeName, localeName);
+}
+
+LocalizedNumberFormatterAsFormat::~LocalizedNumberFormatterAsFormat() = default;
+
+UBool LocalizedNumberFormatterAsFormat::operator==(const Format& other) const {
+ auto* _other = dynamic_cast<const LocalizedNumberFormatterAsFormat*>(&other);
+ if (_other == nullptr) {
+ return false;
+ }
+ // TODO: Change this to use LocalizedNumberFormatter::operator== if it is ever proposed.
+ // This implementation is fine, but not particularly efficient.
+ UErrorCode localStatus = U_ZERO_ERROR;
+ return fFormatter.toSkeleton(localStatus) == _other->fFormatter.toSkeleton(localStatus);
+}
+
+Format* LocalizedNumberFormatterAsFormat::clone() const {
+ return new LocalizedNumberFormatterAsFormat(*this);
+}
+
+UnicodeString& LocalizedNumberFormatterAsFormat::format(const Formattable& obj, UnicodeString& appendTo,
+ FieldPosition& pos, UErrorCode& status) const {
+ if (U_FAILURE(status)) { return appendTo; }
+ UFormattedNumberData data;
+ obj.populateDecimalQuantity(data.quantity, status);
+ if (U_FAILURE(status)) {
+ return appendTo;
+ }
+ fFormatter.formatImpl(&data, status);
+ if (U_FAILURE(status)) {
+ return appendTo;
+ }
+ // always return first occurrence:
+ pos.setBeginIndex(0);
+ pos.setEndIndex(0);
+ bool found = data.string.nextFieldPosition(pos, status);
+ if (found && appendTo.length() != 0) {
+ pos.setBeginIndex(pos.getBeginIndex() + appendTo.length());
+ pos.setEndIndex(pos.getEndIndex() + appendTo.length());
+ }
+ appendTo.append(data.string.toTempUnicodeString());
+ return appendTo;
+}
+
+UnicodeString& LocalizedNumberFormatterAsFormat::format(const Formattable& obj, UnicodeString& appendTo,
+ FieldPositionIterator* posIter,
+ UErrorCode& status) const {
+ if (U_FAILURE(status)) { return appendTo; }
+ UFormattedNumberData data;
+ obj.populateDecimalQuantity(data.quantity, status);
+ if (U_FAILURE(status)) {
+ return appendTo;
+ }
+ fFormatter.formatImpl(&data, status);
+ if (U_FAILURE(status)) {
+ return appendTo;
+ }
+ appendTo.append(data.string.toTempUnicodeString());
+ if (posIter != nullptr) {
+ FieldPositionIteratorHandler fpih(posIter, status);
+ data.string.getAllFieldPositions(fpih, status);
+ }
+ return appendTo;
+}
+
+void LocalizedNumberFormatterAsFormat::parseObject(const UnicodeString&, Formattable&,
+ ParsePosition& parse_pos) const {
+ // Not supported.
+ parse_pos.setErrorIndex(0);
+}
+
+const LocalizedNumberFormatter& LocalizedNumberFormatterAsFormat::getNumberFormatter() const {
+ return fFormatter;
+}
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_asformat.h b/Build/source/libs/icu/icu-src/source/i18n/number_asformat.h
new file mode 100644
index 00000000000..bf82d72ae30
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_asformat.h
@@ -0,0 +1,107 @@
+// © 2017 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+#ifndef __NUMBER_ASFORMAT_H__
+#define __NUMBER_ASFORMAT_H__
+
+#include "unicode/numberformatter.h"
+#include "number_types.h"
+#include "number_decimalquantity.h"
+#include "number_scientific.h"
+#include "number_patternstring.h"
+#include "number_modifiers.h"
+#include "number_multiplier.h"
+#include "number_roundingutils.h"
+#include "decNumber.h"
+#include "charstr.h"
+
+U_NAMESPACE_BEGIN namespace number {
+namespace impl {
+
+/**
+ * A wrapper around LocalizedNumberFormatter implementing the Format interface, enabling improved
+ * compatibility with other APIs.
+ *
+ * @draft ICU 62
+ * @see NumberFormatter
+ */
+class U_I18N_API LocalizedNumberFormatterAsFormat : public Format {
+ public:
+ LocalizedNumberFormatterAsFormat(const LocalizedNumberFormatter& formatter, const Locale& locale);
+
+ /**
+ * Destructor.
+ */
+ ~LocalizedNumberFormatterAsFormat() U_OVERRIDE;
+
+ /**
+ * Equals operator.
+ */
+ UBool operator==(const Format& other) const U_OVERRIDE;
+
+ /**
+ * Creates a copy of this object.
+ */
+ Format* clone() const U_OVERRIDE;
+
+ /**
+ * Formats a Number using the wrapped LocalizedNumberFormatter. The provided formattable must be a
+ * number type.
+ */
+ UnicodeString& format(const Formattable& obj, UnicodeString& appendTo, FieldPosition& pos,
+ UErrorCode& status) const U_OVERRIDE;
+
+ /**
+ * Formats a Number using the wrapped LocalizedNumberFormatter. The provided formattable must be a
+ * number type.
+ */
+ UnicodeString& format(const Formattable& obj, UnicodeString& appendTo, FieldPositionIterator* posIter,
+ UErrorCode& status) const U_OVERRIDE;
+
+ /**
+ * Not supported: sets an error index and returns.
+ */
+ void parseObject(const UnicodeString& source, Formattable& result,
+ ParsePosition& parse_pos) const U_OVERRIDE;
+
+ /**
+ * Gets the LocalizedNumberFormatter that this wrapper class uses to format numbers.
+ *
+ * For maximum efficiency, this function returns by const reference. You must copy the return value
+ * into a local variable if you want to use it beyond the lifetime of the current object:
+ *
+ * <pre>
+ * LocalizedNumberFormatter localFormatter = fmt->getNumberFormatter();
+ * </pre>
+ *
+ * You can however use the return value directly when chaining:
+ *
+ * <pre>
+ * FormattedNumber result = fmt->getNumberFormatter().formatDouble(514.23, status);
+ * </pre>
+ *
+ * @return The unwrapped LocalizedNumberFormatter.
+ */
+ const LocalizedNumberFormatter& getNumberFormatter() const;
+
+ UClassID getDynamicClassID() const U_OVERRIDE;
+ static UClassID U_EXPORT2 getStaticClassID();
+
+ private:
+ LocalizedNumberFormatter fFormatter;
+
+ // Even though the locale is inside the LocalizedNumberFormatter, we have to keep it here, too, because
+ // LocalizedNumberFormatter doesn't have a getLocale() method, and ICU-TC didn't want to add one.
+ Locale fLocale;
+};
+
+} // namespace impl
+} // namespace number
+U_NAMESPACE_END
+
+#endif // __NUMBER_ASFORMAT_H__
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_capi.cpp b/Build/source/libs/icu/icu-src/source/i18n/number_capi.cpp
new file mode 100644
index 00000000000..ca7918bc82e
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_capi.cpp
@@ -0,0 +1,240 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+// Allow implicit conversion from char16_t* to UnicodeString for this file:
+// Helpful in toString methods and elsewhere.
+#define UNISTR_FROM_STRING_EXPLICIT
+
+#include "fphdlimp.h"
+#include "number_utypes.h"
+#include "numparse_types.h"
+#include "unicode/numberformatter.h"
+#include "unicode/unumberformatter.h"
+
+using namespace icu;
+using namespace icu::number;
+using namespace icu::number::impl;
+
+
+//////////////////////////////////
+/// C API CONVERSION FUNCTIONS ///
+//////////////////////////////////
+
+UNumberFormatterData* UNumberFormatterData::validate(UNumberFormatter* input, UErrorCode& status) {
+ auto* constInput = static_cast<const UNumberFormatter*>(input);
+ auto* validated = validate(constInput, status);
+ return const_cast<UNumberFormatterData*>(validated);
+}
+
+const UNumberFormatterData*
+UNumberFormatterData::validate(const UNumberFormatter* input, UErrorCode& status) {
+ if (U_FAILURE(status)) {
+ return nullptr;
+ }
+ if (input == nullptr) {
+ status = U_ILLEGAL_ARGUMENT_ERROR;
+ return nullptr;
+ }
+ auto* impl = reinterpret_cast<const UNumberFormatterData*>(input);
+ if (impl->fMagic != UNumberFormatterData::kMagic) {
+ status = U_INVALID_FORMAT_ERROR;
+ return nullptr;
+ }
+ return impl;
+}
+
+UNumberFormatter* UNumberFormatterData::exportForC() {
+ return reinterpret_cast<UNumberFormatter*>(this);
+}
+
+UFormattedNumberData* UFormattedNumberData::validate(UFormattedNumber* input, UErrorCode& status) {
+ auto* constInput = static_cast<const UFormattedNumber*>(input);
+ auto* validated = validate(constInput, status);
+ return const_cast<UFormattedNumberData*>(validated);
+}
+
+const UFormattedNumberData*
+UFormattedNumberData::validate(const UFormattedNumber* input, UErrorCode& status) {
+ if (U_FAILURE(status)) {
+ return nullptr;
+ }
+ if (input == nullptr) {
+ status = U_ILLEGAL_ARGUMENT_ERROR;
+ return nullptr;
+ }
+ auto* impl = reinterpret_cast<const UFormattedNumberData*>(input);
+ if (impl->fMagic != UFormattedNumberData::kMagic) {
+ status = U_INVALID_FORMAT_ERROR;
+ return nullptr;
+ }
+ return impl;
+}
+
+UFormattedNumber* UFormattedNumberData::exportForC() {
+ return reinterpret_cast<UFormattedNumber*>(this);
+}
+
+/////////////////////////////////////
+/// END CAPI CONVERSION FUNCTIONS ///
+/////////////////////////////////////
+
+
+U_CAPI UNumberFormatter* U_EXPORT2
+unumf_openForSkeletonAndLocale(const UChar* skeleton, int32_t skeletonLen, const char* locale,
+ UErrorCode* ec) {
+ auto* impl = new UNumberFormatterData();
+ if (impl == nullptr) {
+ *ec = U_MEMORY_ALLOCATION_ERROR;
+ return nullptr;
+ }
+ // Readonly-alias constructor (first argument is whether we are NUL-terminated)
+ UnicodeString skeletonString(skeletonLen == -1, skeleton, skeletonLen);
+ impl->fFormatter = NumberFormatter::forSkeleton(skeletonString, *ec).locale(locale);
+ return impl->exportForC();
+}
+
+U_CAPI UFormattedNumber* U_EXPORT2
+unumf_openResult(UErrorCode* ec) {
+ auto* impl = new UFormattedNumberData();
+ if (impl == nullptr) {
+ *ec = U_MEMORY_ALLOCATION_ERROR;
+ return nullptr;
+ }
+ return impl->exportForC();
+}
+
+U_CAPI void U_EXPORT2
+unumf_formatInt(const UNumberFormatter* uformatter, int64_t value, UFormattedNumber* uresult,
+ UErrorCode* ec) {
+ const UNumberFormatterData* formatter = UNumberFormatterData::validate(uformatter, *ec);
+ UFormattedNumberData* result = UFormattedNumberData::validate(uresult, *ec);
+ if (U_FAILURE(*ec)) { return; }
+
+ result->string.clear();
+ result->quantity.setToLong(value);
+ formatter->fFormatter.formatImpl(result, *ec);
+}
+
+U_CAPI void U_EXPORT2
+unumf_formatDouble(const UNumberFormatter* uformatter, double value, UFormattedNumber* uresult,
+ UErrorCode* ec) {
+ const UNumberFormatterData* formatter = UNumberFormatterData::validate(uformatter, *ec);
+ UFormattedNumberData* result = UFormattedNumberData::validate(uresult, *ec);
+ if (U_FAILURE(*ec)) { return; }
+
+ result->string.clear();
+ result->quantity.setToDouble(value);
+ formatter->fFormatter.formatImpl(result, *ec);
+}
+
+U_CAPI void U_EXPORT2
+unumf_formatDecimal(const UNumberFormatter* uformatter, const char* value, int32_t valueLen,
+ UFormattedNumber* uresult, UErrorCode* ec) {
+ const UNumberFormatterData* formatter = UNumberFormatterData::validate(uformatter, *ec);
+ UFormattedNumberData* result = UFormattedNumberData::validate(uresult, *ec);
+ if (U_FAILURE(*ec)) { return; }
+
+ result->string.clear();
+ result->quantity.setToDecNumber({value, valueLen}, *ec);
+ if (U_FAILURE(*ec)) { return; }
+ formatter->fFormatter.formatImpl(result, *ec);
+}
+
+U_CAPI int32_t U_EXPORT2
+unumf_resultToString(const UFormattedNumber* uresult, UChar* buffer, int32_t bufferCapacity,
+ UErrorCode* ec) {
+ const UFormattedNumberData* result = UFormattedNumberData::validate(uresult, *ec);
+ if (U_FAILURE(*ec)) { return 0; }
+
+ if (buffer == nullptr ? bufferCapacity != 0 : bufferCapacity < 0) {
+ *ec = U_ILLEGAL_ARGUMENT_ERROR;
+ return 0;
+ }
+
+ return result->string.toTempUnicodeString().extract(buffer, bufferCapacity, *ec);
+}
+
+U_CAPI UBool U_EXPORT2
+unumf_resultNextFieldPosition(const UFormattedNumber* uresult, UFieldPosition* ufpos, UErrorCode* ec) {
+ const UFormattedNumberData* result = UFormattedNumberData::validate(uresult, *ec);
+ if (U_FAILURE(*ec)) { return FALSE; }
+
+ if (ufpos == nullptr) {
+ *ec = U_ILLEGAL_ARGUMENT_ERROR;
+ return FALSE;
+ }
+
+ FieldPosition fp;
+ fp.setField(ufpos->field);
+ fp.setBeginIndex(ufpos->beginIndex);
+ fp.setEndIndex(ufpos->endIndex);
+ bool retval = result->string.nextFieldPosition(fp, *ec);
+ ufpos->beginIndex = fp.getBeginIndex();
+ ufpos->endIndex = fp.getEndIndex();
+ // NOTE: MSVC sometimes complains when implicitly converting between bool and UBool
+ return retval ? TRUE : FALSE;
+}
+
+U_CAPI void U_EXPORT2
+unumf_resultGetAllFieldPositions(const UFormattedNumber* uresult, UFieldPositionIterator* ufpositer,
+ UErrorCode* ec) {
+ const UFormattedNumberData* result = UFormattedNumberData::validate(uresult, *ec);
+ if (U_FAILURE(*ec)) { return; }
+
+ if (ufpositer == nullptr) {
+ *ec = U_ILLEGAL_ARGUMENT_ERROR;
+ return;
+ }
+
+ auto* fpi = reinterpret_cast<FieldPositionIterator*>(ufpositer);
+ FieldPositionIteratorHandler fpih(fpi, *ec);
+ result->string.getAllFieldPositions(fpih, *ec);
+}
+
+U_CAPI void U_EXPORT2
+unumf_closeResult(UFormattedNumber* uresult) {
+ UErrorCode localStatus = U_ZERO_ERROR;
+ const UFormattedNumberData* impl = UFormattedNumberData::validate(uresult, localStatus);
+ delete impl;
+}
+
+U_CAPI void U_EXPORT2
+unumf_close(UNumberFormatter* f) {
+ UErrorCode localStatus = U_ZERO_ERROR;
+ const UNumberFormatterData* impl = UNumberFormatterData::validate(f, localStatus);
+ delete impl;
+}
+
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_compact.cpp b/Build/source/libs/icu/icu-src/source/i18n/number_compact.cpp
index cc0d8fd2a20..10942c35f53 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/number_compact.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_compact.cpp
@@ -3,14 +3,15 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
-#include "resource.h"
-#include "number_compact.h"
#include "unicode/ustring.h"
#include "unicode/ures.h"
#include "cstring.h"
#include "charstr.h"
+#include "resource.h"
+#include "number_compact.h"
+#include "number_microprops.h"
#include "uresimp.h"
using namespace icu;
@@ -272,18 +273,18 @@ void CompactHandler::processQuantity(DecimalQuantity &quantity, MicroProps &micr
if (U_FAILURE(status)) { return; }
// Treat zero as if it had magnitude 0
- int magnitude;
+ int32_t magnitude;
if (quantity.isZero()) {
magnitude = 0;
- micros.rounding.apply(quantity, status);
+ micros.rounder.apply(quantity, status);
} else {
// TODO: Revisit chooseMultiplierAndApply
- int multiplier = micros.rounding.chooseMultiplierAndApply(quantity, data, status);
+ int32_t multiplier = micros.rounder.chooseMultiplierAndApply(quantity, data, status);
magnitude = quantity.isZero() ? 0 : quantity.getMagnitude();
magnitude -= multiplier;
}
- StandardPlural::Form plural = quantity.getStandardPlural(rules);
+ StandardPlural::Form plural = utils::getStandardPlural(rules, quantity);
const UChar *patternString = data.getPattern(magnitude, plural);
if (patternString == nullptr) {
// Use the default (non-compact) modifier.
@@ -313,7 +314,7 @@ void CompactHandler::processQuantity(DecimalQuantity &quantity, MicroProps &micr
}
// We already performed rounding. Do not perform it again.
- micros.rounding = Rounder::constructPassThrough();
+ micros.rounder = RoundingImpl::passThrough();
}
#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_compact.h b/Build/source/libs/icu/icu-src/source/i18n/number_compact.h
index f7adf36416e..dda5f9f9b2d 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/number_compact.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_compact.h
@@ -3,7 +3,7 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
#ifndef __NUMBER_COMPACT_H__
#define __NUMBER_COMPACT_H__
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_currencysymbols.cpp b/Build/source/libs/icu/icu-src/source/i18n/number_currencysymbols.cpp
new file mode 100644
index 00000000000..0b79d6596f1
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_currencysymbols.cpp
@@ -0,0 +1,123 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+// Allow implicit conversion from char16_t* to UnicodeString for this file:
+// Helpful in toString methods and elsewhere.
+#define UNISTR_FROM_STRING_EXPLICIT
+
+#include "numparse_types.h"
+#include "number_currencysymbols.h"
+
+using namespace icu;
+using namespace icu::number;
+using namespace icu::number::impl;
+
+
+CurrencySymbols::CurrencySymbols(CurrencyUnit currency, const Locale& locale, UErrorCode& status)
+ : fCurrency(currency), fLocaleName(locale.getName(), status) {
+ fCurrencySymbol.setToBogus();
+ fIntlCurrencySymbol.setToBogus();
+}
+
+CurrencySymbols::CurrencySymbols(CurrencyUnit currency, const Locale& locale,
+ const DecimalFormatSymbols& symbols, UErrorCode& status)
+ : CurrencySymbols(currency, locale, status) {
+ // If either of the overrides is present, save it in the local UnicodeString.
+ if (symbols.isCustomCurrencySymbol()) {
+ fCurrencySymbol = symbols.getConstSymbol(DecimalFormatSymbols::kCurrencySymbol);
+ }
+ if (symbols.isCustomIntlCurrencySymbol()) {
+ fIntlCurrencySymbol = symbols.getConstSymbol(DecimalFormatSymbols::kIntlCurrencySymbol);
+ }
+}
+
+const char16_t* CurrencySymbols::getIsoCode() const {
+ return fCurrency.getISOCurrency();
+}
+
+UnicodeString CurrencySymbols::getNarrowCurrencySymbol(UErrorCode& status) const {
+ // Note: currently no override is available for narrow currency symbol
+ return loadSymbol(UCURR_NARROW_SYMBOL_NAME, status);
+}
+
+UnicodeString CurrencySymbols::getCurrencySymbol(UErrorCode& status) const {
+ if (!fCurrencySymbol.isBogus()) {
+ return fCurrencySymbol;
+ }
+ return loadSymbol(UCURR_SYMBOL_NAME, status);
+}
+
+UnicodeString CurrencySymbols::loadSymbol(UCurrNameStyle selector, UErrorCode& status) const {
+ const char16_t* isoCode = fCurrency.getISOCurrency();
+ UBool ignoredIsChoiceFormatFillIn = FALSE;
+ int32_t symbolLen = 0;
+ const char16_t* symbol = ucurr_getName(
+ isoCode,
+ fLocaleName.data(),
+ selector,
+ &ignoredIsChoiceFormatFillIn,
+ &symbolLen,
+ &status);
+ // If given an unknown currency, ucurr_getName returns the input string, which we can't alias safely!
+ // Otherwise, symbol points to a resource bundle, and we can use readonly-aliasing constructor.
+ if (symbol == isoCode) {
+ return UnicodeString(isoCode, 3);
+ } else {
+ return UnicodeString(TRUE, symbol, symbolLen);
+ }
+}
+
+UnicodeString CurrencySymbols::getIntlCurrencySymbol(UErrorCode&) const {
+ if (!fIntlCurrencySymbol.isBogus()) {
+ return fIntlCurrencySymbol;
+ }
+ // Note: Not safe to use readonly-aliasing constructor here because the buffer belongs to this object,
+ // which could be destructed or moved during the lifetime of the return value.
+ return UnicodeString(fCurrency.getISOCurrency(), 3);
+}
+
+UnicodeString CurrencySymbols::getPluralName(StandardPlural::Form plural, UErrorCode& status) const {
+ const char16_t* isoCode = fCurrency.getISOCurrency();
+ UBool isChoiceFormat = FALSE;
+ int32_t symbolLen = 0;
+ const char16_t* symbol = ucurr_getPluralName(
+ isoCode,
+ fLocaleName.data(),
+ &isChoiceFormat,
+ StandardPlural::getKeyword(plural),
+ &symbolLen,
+ &status);
+ // If given an unknown currency, ucurr_getName returns the input string, which we can't alias safely!
+ // Otherwise, symbol points to a resource bundle, and we can use readonly-aliasing constructor.
+ if (symbol == isoCode) {
+ return UnicodeString(isoCode, 3);
+ } else {
+ return UnicodeString(TRUE, symbol, symbolLen);
+ }
+}
+
+
+CurrencyUnit
+icu::number::impl::resolveCurrency(const DecimalFormatProperties& properties, const Locale& locale,
+ UErrorCode& status) {
+ if (!properties.currency.isNull()) {
+ return properties.currency.getNoError();
+ } else {
+ UErrorCode localStatus = U_ZERO_ERROR;
+ char16_t buf[4] = {};
+ ucurr_forLocale(locale.getName(), buf, 4, &localStatus);
+ if (U_SUCCESS(localStatus)) {
+ return CurrencyUnit(buf, status);
+ } else {
+ // Default currency (XXX)
+ return CurrencyUnit();
+ }
+ }
+}
+
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_currencysymbols.h b/Build/source/libs/icu/icu-src/source/i18n/number_currencysymbols.h
new file mode 100644
index 00000000000..9996bf96ae0
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_currencysymbols.h
@@ -0,0 +1,65 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+#ifndef __SOURCE_NUMBER_CURRENCYSYMBOLS_H__
+#define __SOURCE_NUMBER_CURRENCYSYMBOLS_H__
+
+#include "numparse_types.h"
+#include "charstr.h"
+#include "number_decimfmtprops.h"
+
+U_NAMESPACE_BEGIN namespace number {
+namespace impl {
+
+
+// Exported as U_I18N_API for tests
+class U_I18N_API CurrencySymbols : public UMemory {
+ public:
+ CurrencySymbols() = default; // default constructor: leaves class in valid but undefined state
+
+ /** Creates an instance in which all symbols are loaded from data. */
+ CurrencySymbols(CurrencyUnit currency, const Locale& locale, UErrorCode& status);
+
+ /** Creates an instance in which some symbols might be pre-populated. */
+ CurrencySymbols(CurrencyUnit currency, const Locale& locale, const DecimalFormatSymbols& symbols,
+ UErrorCode& status);
+
+ const char16_t* getIsoCode() const;
+
+ UnicodeString getNarrowCurrencySymbol(UErrorCode& status) const;
+
+ UnicodeString getCurrencySymbol(UErrorCode& status) const;
+
+ UnicodeString getIntlCurrencySymbol(UErrorCode& status) const;
+
+ UnicodeString getPluralName(StandardPlural::Form plural, UErrorCode& status) const;
+
+ protected:
+ // Required fields:
+ CurrencyUnit fCurrency;
+ CharString fLocaleName;
+
+ // Optional fields:
+ UnicodeString fCurrencySymbol;
+ UnicodeString fIntlCurrencySymbol;
+
+ UnicodeString loadSymbol(UCurrNameStyle selector, UErrorCode& status) const;
+};
+
+
+/**
+ * Resolves the effective currency from the property bag.
+ */
+CurrencyUnit
+resolveCurrency(const DecimalFormatProperties& properties, const Locale& locale, UErrorCode& status);
+
+
+} // namespace impl
+} // namespace numparse
+U_NAMESPACE_END
+
+#endif //__SOURCE_NUMBER_CURRENCYSYMBOLS_H__
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_decimalquantity.cpp b/Build/source/libs/icu/icu-src/source/i18n/number_decimalquantity.cpp
index b68df26ba26..2c4182b1c6e 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/number_decimalquantity.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_decimalquantity.cpp
@@ -3,25 +3,30 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
-#include "uassert.h"
+#include <cstdlib>
#include <cmath>
-#include "cmemory.h"
-#include "decNumber.h"
#include <limits>
+#include <stdlib.h>
+
+#include "unicode/plurrule.h"
+#include "cmemory.h"
+#include "number_decnum.h"
+#include "putilimp.h"
#include "number_decimalquantity.h"
-#include "decContext.h"
-#include "decNumber.h"
#include "number_roundingutils.h"
#include "double-conversion.h"
-#include "unicode/plurrule.h"
+#include "charstr.h"
+#include "number_utils.h"
+#include "uassert.h"
using namespace icu;
using namespace icu::number;
using namespace icu::number::impl;
using icu::double_conversion::DoubleToStringConverter;
+using icu::double_conversion::StringToDoubleConverter;
namespace {
@@ -29,25 +34,6 @@ int8_t NEGATIVE_FLAG = 1;
int8_t INFINITY_FLAG = 2;
int8_t NAN_FLAG = 4;
-static constexpr int32_t DEFAULT_DIGITS = 34;
-typedef MaybeStackHeaderAndArray<decNumber, char, DEFAULT_DIGITS> DecNumberWithStorage;
-
-/** Helper function to convert a decNumber-compatible string into a decNumber. */
-void stringToDecNumber(StringPiece n, DecNumberWithStorage &dn) {
- decContext set;
- uprv_decContextDefault(&set, DEC_INIT_BASE);
- uprv_decContextSetRounding(&set, DEC_ROUND_HALF_EVEN);
- set.traps = 0; // no traps, thank you
- if (n.length() > DEFAULT_DIGITS) {
- dn.resize(n.length(), 0);
- set.digits = n.length();
- } else {
- set.digits = DEFAULT_DIGITS;
- }
- uprv_decNumberFromString(dn.getAlias(), n.data(), &set);
- U_ASSERT(DECDPUN == 1);
-}
-
/** Helper function for safe subtraction (no overflow). */
inline int32_t safeSubtract(int32_t a, int32_t b) {
// Note: In C++, signed integer subtraction is undefined behavior.
@@ -83,6 +69,7 @@ static double DOUBLE_MULTIPLIERS[] = {
} // namespace
+icu::IFixedDecimal::~IFixedDecimal() = default;
DecimalQuantity::DecimalQuantity() {
setBcdToZero();
@@ -101,11 +88,30 @@ DecimalQuantity::DecimalQuantity(const DecimalQuantity &other) {
*this = other;
}
+DecimalQuantity::DecimalQuantity(DecimalQuantity&& src) U_NOEXCEPT {
+ *this = std::move(src);
+}
+
DecimalQuantity &DecimalQuantity::operator=(const DecimalQuantity &other) {
if (this == &other) {
return *this;
}
copyBcdFrom(other);
+ copyFieldsFrom(other);
+ return *this;
+}
+
+DecimalQuantity& DecimalQuantity::operator=(DecimalQuantity&& src) U_NOEXCEPT {
+ if (this == &src) {
+ return *this;
+ }
+ moveBcdFrom(src);
+ copyFieldsFrom(src);
+ return *this;
+}
+
+void DecimalQuantity::copyFieldsFrom(const DecimalQuantity& other) {
+ bogus = other.bogus;
lOptPos = other.lOptPos;
lReqPos = other.lReqPos;
rReqPos = other.rReqPos;
@@ -116,7 +122,6 @@ DecimalQuantity &DecimalQuantity::operator=(const DecimalQuantity &other) {
origDouble = other.origDouble;
origDelta = other.origDelta;
isApproximate = other.isApproximate;
- return *this;
}
void DecimalQuantity::clear() {
@@ -129,10 +134,16 @@ void DecimalQuantity::clear() {
}
void DecimalQuantity::setIntegerLength(int32_t minInt, int32_t maxInt) {
- // Validation should happen outside of DecimalQuantity, e.g., in the Rounder class.
+ // Validation should happen outside of DecimalQuantity, e.g., in the Precision class.
U_ASSERT(minInt >= 0);
U_ASSERT(maxInt >= minInt);
+ // Special behavior: do not set minInt to be less than what is already set.
+ // This is so significant digits rounding can set the integer length.
+ if (minInt < lReqPos) {
+ minInt = lReqPos;
+ }
+
// Save values into internal state
// Negation is safe for minFrac/maxFrac because -Integer.MAX_VALUE > Integer.MIN_VALUE
lOptPos = maxInt;
@@ -140,7 +151,7 @@ void DecimalQuantity::setIntegerLength(int32_t minInt, int32_t maxInt) {
}
void DecimalQuantity::setFractionLength(int32_t minFrac, int32_t maxFrac) {
- // Validation should happen outside of DecimalQuantity, e.g., in the Rounder class.
+ // Validation should happen outside of DecimalQuantity, e.g., in the Precision class.
U_ASSERT(minFrac >= 0);
U_ASSERT(maxFrac >= minFrac);
@@ -160,29 +171,53 @@ uint64_t DecimalQuantity::getPositionFingerprint() const {
}
void DecimalQuantity::roundToIncrement(double roundingIncrement, RoundingMode roundingMode,
- int32_t minMaxFrac, UErrorCode& status) {
- // TODO: This is innefficient. Improve?
- // TODO: Should we convert to decNumber instead?
+ int32_t maxFrac, UErrorCode& status) {
+ // TODO(13701): This is innefficient. Improve?
+ // TODO(13701): Should we convert to decNumber instead?
+ roundToInfinity();
double temp = toDouble();
temp /= roundingIncrement;
- setToDouble(temp);
- roundToMagnitude(0, roundingMode, status);
- temp = toDouble();
+ // Use another DecimalQuantity to perform the actual rounding...
+ DecimalQuantity dq;
+ dq.setToDouble(temp);
+ dq.roundToMagnitude(0, roundingMode, status);
+ temp = dq.toDouble();
temp *= roundingIncrement;
setToDouble(temp);
// Since we reset the value to a double, we need to specify the rounding boundary
// in order to get the DecimalQuantity out of approximation mode.
- roundToMagnitude(-minMaxFrac, roundingMode, status);
+ // NOTE: In Java, we have minMaxFrac, but in C++, the two are differentiated.
+ roundToMagnitude(-maxFrac, roundingMode, status);
}
-void DecimalQuantity::multiplyBy(int32_t multiplicand) {
+void DecimalQuantity::multiplyBy(const DecNum& multiplicand, UErrorCode& status) {
if (isInfinite() || isZero() || isNaN()) {
return;
}
- // TODO: Should we convert to decNumber instead?
- double temp = toDouble();
- temp *= multiplicand;
- setToDouble(temp);
+ // Convert to DecNum, multiply, and convert back.
+ DecNum decnum;
+ toDecNum(decnum, status);
+ if (U_FAILURE(status)) { return; }
+ decnum.multiplyBy(multiplicand, status);
+ if (U_FAILURE(status)) { return; }
+ setToDecNum(decnum, status);
+}
+
+void DecimalQuantity::divideBy(const DecNum& divisor, UErrorCode& status) {
+ if (isInfinite() || isZero() || isNaN()) {
+ return;
+ }
+ // Convert to DecNum, multiply, and convert back.
+ DecNum decnum;
+ toDecNum(decnum, status);
+ if (U_FAILURE(status)) { return; }
+ decnum.divideBy(divisor, status);
+ if (U_FAILURE(status)) { return; }
+ setToDecNum(decnum, status);
+}
+
+void DecimalQuantity::negate() {
+ flags ^= NEGATIVE_FLAG;
}
int32_t DecimalQuantity::getMagnitude() const {
@@ -190,21 +225,17 @@ int32_t DecimalQuantity::getMagnitude() const {
return scale + precision - 1;
}
-void DecimalQuantity::adjustMagnitude(int32_t delta) {
+bool DecimalQuantity::adjustMagnitude(int32_t delta) {
if (precision != 0) {
- scale += delta;
- origDelta += delta;
- }
-}
-
-StandardPlural::Form DecimalQuantity::getStandardPlural(const PluralRules *rules) const {
- if (rules == nullptr) {
- // Fail gracefully if the user didn't provide a PluralRules
- return StandardPlural::Form::OTHER;
- } else {
- UnicodeString ruleString = rules->select(*this);
- return StandardPlural::orOtherFromString(ruleString);
+ // i.e., scale += delta; origDelta += delta
+ bool overflow = uprv_add32_overflow(scale, delta, &scale);
+ overflow = uprv_add32_overflow(origDelta, delta, &origDelta) || overflow;
+ // Make sure that precision + scale won't overflow, either
+ int32_t dummy;
+ overflow = overflow || uprv_add32_overflow(scale, precision, &dummy);
+ return overflow;
}
+ return false;
}
double DecimalQuantity::getPluralOperand(PluralOperand operand) const {
@@ -214,7 +245,8 @@ double DecimalQuantity::getPluralOperand(PluralOperand operand) const {
switch (operand) {
case PLURAL_OPERAND_I:
- return static_cast<double>(toLong());
+ // Invert the negative sign if necessary
+ return static_cast<double>(isNegative() ? -toLong(true) : toLong(true));
case PLURAL_OPERAND_F:
return static_cast<double>(toFractionLong(true));
case PLURAL_OPERAND_T:
@@ -228,6 +260,10 @@ double DecimalQuantity::getPluralOperand(PluralOperand operand) const {
}
}
+bool DecimalQuantity::hasIntegerValue() const {
+ return scale >= 0;
+}
+
int32_t DecimalQuantity::getUpperDisplayMagnitude() const {
// If this assertion fails, you need to call roundToInfinity() or some other rounding method.
// See the comment in the header file explaining the "isApproximate" field.
@@ -287,7 +323,10 @@ bool DecimalQuantity::isZero() const {
DecimalQuantity &DecimalQuantity::setToInt(int32_t n) {
setBcdToZero();
flags = 0;
- if (n < 0) {
+ if (n == INT32_MIN) {
+ flags |= NEGATIVE_FLAG;
+ // leave as INT32_MIN; handled below in _setToInt()
+ } else if (n < 0) {
flags |= NEGATIVE_FLAG;
n = -n;
}
@@ -309,7 +348,7 @@ void DecimalQuantity::_setToInt(int32_t n) {
DecimalQuantity &DecimalQuantity::setToLong(int64_t n) {
setBcdToZero();
flags = 0;
- if (n < 0) {
+ if (n < 0 && n > INT64_MIN) {
flags |= NEGATIVE_FLAG;
n = -n;
}
@@ -322,10 +361,12 @@ DecimalQuantity &DecimalQuantity::setToLong(int64_t n) {
void DecimalQuantity::_setToLong(int64_t n) {
if (n == INT64_MIN) {
- static const char *int64minStr = "9.223372036854775808E+18";
- DecNumberWithStorage dn;
- stringToDecNumber(int64minStr, dn);
- readDecNumberToBcd(dn.getAlias());
+ DecNum decnum;
+ UErrorCode localStatus = U_ZERO_ERROR;
+ decnum.setTo("9.223372036854775808E+18", localStatus);
+ if (U_FAILURE(localStatus)) { return; } // unexpected
+ flags |= NEGATIVE_FLAG;
+ readDecNumberToBcd(decnum);
} else if (n <= INT32_MAX) {
readIntToBcd(static_cast<int32_t>(n));
} else {
@@ -337,7 +378,7 @@ DecimalQuantity &DecimalQuantity::setToDouble(double n) {
setBcdToZero();
flags = 0;
// signbit() from <math.h> handles +0.0 vs -0.0
- if (std::signbit(n) != 0) {
+ if (std::signbit(n)) {
flags |= NEGATIVE_FLAG;
n = -n;
}
@@ -424,51 +465,107 @@ void DecimalQuantity::convertToAccurateDouble() {
explicitExactDouble = true;
}
-DecimalQuantity &DecimalQuantity::setToDecNumber(StringPiece n) {
+DecimalQuantity &DecimalQuantity::setToDecNumber(StringPiece n, UErrorCode& status) {
setBcdToZero();
flags = 0;
- DecNumberWithStorage dn;
- stringToDecNumber(n, dn);
+ // Compute the decNumber representation
+ DecNum decnum;
+ decnum.setTo(n, status);
- // The code path for decNumber is modeled after BigDecimal in Java.
- if (decNumberIsNegative(dn.getAlias())) {
- flags |= NEGATIVE_FLAG;
- }
- if (!decNumberIsZero(dn.getAlias())) {
- _setToDecNumber(dn.getAlias());
- }
+ _setToDecNum(decnum, status);
+ return *this;
+}
+
+DecimalQuantity& DecimalQuantity::setToDecNum(const DecNum& decnum, UErrorCode& status) {
+ setBcdToZero();
+ flags = 0;
+
+ _setToDecNum(decnum, status);
return *this;
}
-void DecimalQuantity::_setToDecNumber(decNumber *n) {
- // Java fastpaths for ints here. In C++, just always read directly from the decNumber.
- readDecNumberToBcd(n);
- compact();
+void DecimalQuantity::_setToDecNum(const DecNum& decnum, UErrorCode& status) {
+ if (U_FAILURE(status)) { return; }
+ if (decnum.isNegative()) {
+ flags |= NEGATIVE_FLAG;
+ }
+ if (!decnum.isZero()) {
+ readDecNumberToBcd(decnum);
+ compact();
+ }
}
-int64_t DecimalQuantity::toLong() const {
- int64_t result = 0L;
- for (int32_t magnitude = scale + precision - 1; magnitude >= 0; magnitude--) {
+int64_t DecimalQuantity::toLong(bool truncateIfOverflow) const {
+ // NOTE: Call sites should be guarded by fitsInLong(), like this:
+ // if (dq.fitsInLong()) { /* use dq.toLong() */ } else { /* use some fallback */ }
+ // Fallback behavior upon truncateIfOverflow is to truncate at 17 digits.
+ uint64_t result = 0L;
+ int32_t upperMagnitude = std::min(scale + precision, lOptPos) - 1;
+ if (truncateIfOverflow) {
+ upperMagnitude = std::min(upperMagnitude, 17);
+ }
+ for (int32_t magnitude = upperMagnitude; magnitude >= 0; magnitude--) {
result = result * 10 + getDigitPos(magnitude - scale);
}
- return result;
+ if (isNegative()) {
+ return static_cast<int64_t>(0LL - result); // i.e., -result
+ }
+ return static_cast<int64_t>(result);
}
-int64_t DecimalQuantity::toFractionLong(bool includeTrailingZeros) const {
- int64_t result = 0L;
+uint64_t DecimalQuantity::toFractionLong(bool includeTrailingZeros) const {
+ uint64_t result = 0L;
int32_t magnitude = -1;
- for (; (magnitude >= scale || (includeTrailingZeros && magnitude >= rReqPos)) &&
- magnitude >= rOptPos; magnitude--) {
+ int32_t lowerMagnitude = std::max(scale, rOptPos);
+ if (includeTrailingZeros) {
+ lowerMagnitude = std::min(lowerMagnitude, rReqPos);
+ }
+ for (; magnitude >= lowerMagnitude && result <= 1e18L; magnitude--) {
result = result * 10 + getDigitPos(magnitude - scale);
}
+ // Remove trailing zeros; this can happen during integer overflow cases.
+ if (!includeTrailingZeros) {
+ while (result > 0 && (result % 10) == 0) {
+ result /= 10;
+ }
+ }
return result;
}
-double DecimalQuantity::toDouble() const {
- if (isApproximate) {
- return toDoubleFromOriginal();
+bool DecimalQuantity::fitsInLong(bool ignoreFraction) const {
+ if (isZero()) {
+ return true;
+ }
+ if (scale < 0 && !ignoreFraction) {
+ return false;
+ }
+ int magnitude = getMagnitude();
+ if (magnitude < 18) {
+ return true;
+ }
+ if (magnitude > 18) {
+ return false;
+ }
+ // Hard case: the magnitude is 10^18.
+ // The largest int64 is: 9,223,372,036,854,775,807
+ for (int p = 0; p < precision; p++) {
+ int8_t digit = getDigit(18 - p);
+ static int8_t INT64_BCD[] = { 9, 2, 2, 3, 3, 7, 2, 0, 3, 6, 8, 5, 4, 7, 7, 5, 8, 0, 8 };
+ if (digit < INT64_BCD[p]) {
+ return true;
+ } else if (digit > INT64_BCD[p]) {
+ return false;
+ }
}
+ // Exactly equal to max long plus one.
+ return isNegative();
+}
+
+double DecimalQuantity::toDouble() const {
+ // If this assertion fails, you need to call roundToInfinity() or some other rounding method.
+ // See the comment in the header file explaining the "isApproximate" field.
+ U_ASSERT(!isApproximate);
if (isNaN()) {
return NAN;
@@ -476,42 +573,37 @@ double DecimalQuantity::toDouble() const {
return isNegative() ? -INFINITY : INFINITY;
}
- int64_t tempLong = 0L;
- int32_t lostDigits = precision - (precision < 17 ? precision : 17);
- for (int shift = precision - 1; shift >= lostDigits; shift--) {
- tempLong = tempLong * 10 + getDigitPos(shift);
+ // We are processing well-formed input, so we don't need any special options to StringToDoubleConverter.
+ StringToDoubleConverter converter(0, 0, 0, "", "");
+ UnicodeString numberString = this->toScientificString();
+ int32_t count;
+ return converter.StringToDouble(
+ reinterpret_cast<const uint16_t*>(numberString.getBuffer()),
+ numberString.length(),
+ &count);
+}
+
+void DecimalQuantity::toDecNum(DecNum& output, UErrorCode& status) const {
+ // Special handling for zero
+ if (precision == 0) {
+ output.setTo("0", status);
}
- double result = static_cast<double>(tempLong);
- int32_t _scale = scale + lostDigits;
- if (_scale >= 0) {
- // 1e22 is the largest exact double.
- int32_t i = _scale;
- for (; i >= 22; i -= 22) result *= 1e22;
- result *= DOUBLE_MULTIPLIERS[i];
- } else {
- // 1e22 is the largest exact double.
- int32_t i = _scale;
- for (; i <= -22; i += 22) result /= 1e22;
- result /= DOUBLE_MULTIPLIERS[-i];
+
+ // Use the BCD constructor. We need to do a little bit of work to convert, though.
+ // The decNumber constructor expects most-significant first, but we store least-significant first.
+ MaybeStackArray<uint8_t, 20> ubcd(precision);
+ for (int32_t m = 0; m < precision; m++) {
+ ubcd[precision - m - 1] = static_cast<uint8_t>(getDigitPos(m));
}
- if (isNegative()) { result = -result; }
- return result;
+ output.setTo(ubcd.getAlias(), precision, scale, isNegative(), status);
}
-double DecimalQuantity::toDoubleFromOriginal() const {
- double result = origDouble;
- int32_t delta = origDelta;
- if (delta >= 0) {
- // 1e22 is the largest exact double.
- for (; delta >= 22; delta -= 22) result *= 1e22;
- result *= DOUBLE_MULTIPLIERS[delta];
- } else {
- // 1e22 is the largest exact double.
- for (; delta <= -22; delta += 22) result /= 1e22;
- result /= DOUBLE_MULTIPLIERS[-delta];
+void DecimalQuantity::truncate() {
+ if (scale < 0) {
+ shiftRight(-scale);
+ scale = 0;
+ compact();
}
- if (isNegative()) { result *= -1; }
- return result;
}
void DecimalQuantity::roundToMagnitude(int32_t magnitude, RoundingMode roundingMode, UErrorCode& status) {
@@ -689,17 +781,63 @@ void DecimalQuantity::appendDigit(int8_t value, int32_t leadingZeros, bool appen
}
UnicodeString DecimalQuantity::toPlainString() const {
+ U_ASSERT(!isApproximate);
UnicodeString sb;
if (isNegative()) {
sb.append(u'-');
}
+ if (precision == 0 || getMagnitude() < 0) {
+ sb.append(u'0');
+ }
for (int m = getUpperDisplayMagnitude(); m >= getLowerDisplayMagnitude(); m--) {
+ if (m == -1) { sb.append(u'.'); }
sb.append(getDigit(m) + u'0');
- if (m == 0) { sb.append(u'.'); }
}
return sb;
}
+UnicodeString DecimalQuantity::toScientificString() const {
+ U_ASSERT(!isApproximate);
+ UnicodeString result;
+ if (isNegative()) {
+ result.append(u'-');
+ }
+ if (precision == 0) {
+ result.append(u"0E+0", -1);
+ return result;
+ }
+ // NOTE: It is not safe to add to lOptPos (aka maxInt) or subtract from
+ // rOptPos (aka -maxFrac) due to overflow.
+ int32_t upperPos = std::min(precision + scale, lOptPos) - scale - 1;
+ int32_t lowerPos = std::max(scale, rOptPos) - scale;
+ int32_t p = upperPos;
+ result.append(u'0' + getDigitPos(p));
+ if ((--p) >= lowerPos) {
+ result.append(u'.');
+ for (; p >= lowerPos; p--) {
+ result.append(u'0' + getDigitPos(p));
+ }
+ }
+ result.append(u'E');
+ int32_t _scale = upperPos + scale;
+ if (_scale < 0) {
+ _scale *= -1;
+ result.append(u'-');
+ } else {
+ result.append(u'+');
+ }
+ if (_scale == 0) {
+ result.append(u'0');
+ }
+ int32_t insertIndex = result.length();
+ while (_scale > 0) {
+ std::div_t res = std::div(_scale, 10);
+ result.insert(insertIndex, u'0' + res.rem);
+ _scale = res.quot;
+ }
+ return result;
+}
+
////////////////////////////////////////////////////
/// End of DecimalQuantity_AbstractBCD.java ///
/// Start of DecimalQuantity_DualStorageBCD.java ///
@@ -707,7 +845,7 @@ UnicodeString DecimalQuantity::toPlainString() const {
int8_t DecimalQuantity::getDigitPos(int32_t position) const {
if (usingBytes) {
- if (position < 0 || position > precision) { return 0; }
+ if (position < 0 || position >= precision) { return 0; }
return fBCD.bcdBytes.ptr[position];
} else {
if (position < 0 || position >= 16) { return 0; }
@@ -819,7 +957,8 @@ void DecimalQuantity::readLongToBcd(int64_t n) {
}
}
-void DecimalQuantity::readDecNumberToBcd(decNumber *dn) {
+void DecimalQuantity::readDecNumberToBcd(const DecNum& decnum) {
+ const decNumber* dn = decnum.getRawDecNumber();
if (dn->digits > 16) {
ensureCapacity(dn->digits);
for (int32_t i = 0; i < dn->digits; i++) {
@@ -919,7 +1058,7 @@ void DecimalQuantity::ensureCapacity(int32_t capacity) {
auto bcd1 = static_cast<int8_t*>(uprv_malloc(capacity * 2 * sizeof(int8_t)));
uprv_memcpy(bcd1, fBCD.bcdBytes.ptr, oldCapacity * sizeof(int8_t));
// Initialize the rest of the byte array to zeros (this is done automatically in Java)
- uprv_memset(fBCD.bcdBytes.ptr + oldCapacity, 0, (capacity - oldCapacity) * sizeof(int8_t));
+ uprv_memset(bcd1 + oldCapacity, 0, (capacity - oldCapacity) * sizeof(int8_t));
uprv_free(fBCD.bcdBytes.ptr);
fBCD.bcdBytes.ptr = bcd1;
fBCD.bcdBytes.len = capacity * 2;
@@ -962,6 +1101,20 @@ void DecimalQuantity::copyBcdFrom(const DecimalQuantity &other) {
}
}
+void DecimalQuantity::moveBcdFrom(DecimalQuantity &other) {
+ setBcdToZero();
+ if (other.usingBytes) {
+ usingBytes = true;
+ fBCD.bcdBytes.ptr = other.fBCD.bcdBytes.ptr;
+ fBCD.bcdBytes.len = other.fBCD.bcdBytes.len;
+ // Take ownership away from the old instance:
+ other.fBCD.bcdBytes.ptr = nullptr;
+ other.usingBytes = false;
+ } else {
+ fBCD.bcdLong = other.fBCD.bcdLong;
+ }
+}
+
const char16_t* DecimalQuantity::checkHealth() const {
if (usingBytes) {
if (precision == 0) { return u"Zero precision but we are in byte mode"; }
@@ -1000,6 +1153,34 @@ const char16_t* DecimalQuantity::checkHealth() const {
return nullptr;
}
+bool DecimalQuantity::operator==(const DecimalQuantity& other) const {
+ bool basicEquals =
+ scale == other.scale
+ && precision == other.precision
+ && flags == other.flags
+ && lOptPos == other.lOptPos
+ && lReqPos == other.lReqPos
+ && rReqPos == other.rReqPos
+ && rOptPos == other.rOptPos
+ && isApproximate == other.isApproximate;
+ if (!basicEquals) {
+ return false;
+ }
+
+ if (precision == 0) {
+ return true;
+ } else if (isApproximate) {
+ return origDouble == other.origDouble && origDelta == other.origDelta;
+ } else {
+ for (int m = getUpperDisplayMagnitude(); m >= getLowerDisplayMagnitude(); m--) {
+ if (getDigit(m) != other.getDigit(m)) {
+ return false;
+ }
+ }
+ return true;
+ }
+}
+
UnicodeString DecimalQuantity::toString() const {
MaybeStackArray<char, 30> digits(precision + 1);
for (int32_t i = 0; i < precision; i++) {
@@ -1010,25 +1191,17 @@ UnicodeString DecimalQuantity::toString() const {
snprintf(
buffer8,
sizeof(buffer8),
- "<DecimalQuantity %d:%d:%d:%d %s %s%s%d>",
+ "<DecimalQuantity %d:%d:%d:%d %s %s%s%s%d>",
(lOptPos > 999 ? 999 : lOptPos),
lReqPos,
rReqPos,
(rOptPos < -999 ? -999 : rOptPos),
(usingBytes ? "bytes" : "long"),
+ (isNegative() ? "-" : ""),
(precision == 0 ? "0" : digits.getAlias()),
"E",
scale);
return UnicodeString(buffer8, -1, US_INV);
}
-UnicodeString DecimalQuantity::toNumberString() const {
- MaybeStackArray<char, 30> digits(precision + 11);
- for (int32_t i = 0; i < precision; i++) {
- digits[i] = getDigitPos(precision - i - 1) + '0';
- }
- snprintf(digits.getAlias() + precision, 11, "E%d", scale);
- return UnicodeString(digits.getAlias(), -1, US_INV);
-}
-
#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_decimalquantity.h b/Build/source/libs/icu/icu-src/source/i18n/number_decimalquantity.h
index 4309c3c6380..8e04dea7eb5 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/number_decimalquantity.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_decimalquantity.h
@@ -3,13 +3,12 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
#ifndef __NUMBER_DECIMALQUANTITY_H__
#define __NUMBER_DECIMALQUANTITY_H__
#include <cstdint>
#include "unicode/umachine.h"
-#include "decNumber.h"
#include "standardplural.h"
#include "plurrule_impl.h"
#include "number_types.h"
@@ -17,6 +16,9 @@
U_NAMESPACE_BEGIN namespace number {
namespace impl {
+// Forward-declare (maybe don't want number_utils.h included here):
+class DecNum;
+
/**
* An class for representing a number to be processed by the decimal formatting pipeline. Includes
* methods for rounding, plural rules, and decimal digit extraction.
@@ -33,9 +35,12 @@ class U_I18N_API DecimalQuantity : public IFixedDecimal, public UMemory {
/** Copy constructor. */
DecimalQuantity(const DecimalQuantity &other);
+ /** Move constructor. */
+ DecimalQuantity(DecimalQuantity &&src) U_NOEXCEPT;
+
DecimalQuantity();
- ~DecimalQuantity();
+ ~DecimalQuantity() override;
/**
* Sets this instance to be equal to another instance.
@@ -44,6 +49,9 @@ class U_I18N_API DecimalQuantity : public IFixedDecimal, public UMemory {
*/
DecimalQuantity &operator=(const DecimalQuantity &other);
+ /** Move assignment */
+ DecimalQuantity &operator=(DecimalQuantity&& src) U_NOEXCEPT;
+
/**
* Sets the minimum and maximum integer digits that this {@link DecimalQuantity} should generate.
* This method does not perform rounding.
@@ -71,7 +79,10 @@ class U_I18N_API DecimalQuantity : public IFixedDecimal, public UMemory {
* @param mathContext The {@link RoundingMode} to use if rounding is necessary.
*/
void roundToIncrement(double roundingIncrement, RoundingMode roundingMode,
- int32_t minMaxFrac, UErrorCode& status);
+ int32_t maxFrac, UErrorCode& status);
+
+ /** Removes all fraction digits. */
+ void truncate();
/**
* Rounds the number to a specified magnitude (power of ten).
@@ -89,19 +100,30 @@ class U_I18N_API DecimalQuantity : public IFixedDecimal, public UMemory {
void roundToInfinity();
/**
- * Multiply the internal value.
+ * Multiply the internal value. Uses decNumber.
+ *
+ * @param multiplicand The value by which to multiply.
+ */
+ void multiplyBy(const DecNum& multiplicand, UErrorCode& status);
+
+ /**
+ * Divide the internal value. Uses decNumber.
*
* @param multiplicand The value by which to multiply.
*/
- void multiplyBy(int32_t multiplicand);
+ void divideBy(const DecNum& divisor, UErrorCode& status);
+
+ /** Flips the sign from positive to negative and back. */
+ void negate();
/**
* Scales the number by a power of ten. For example, if the value is currently "1234.56", calling
* this method with delta=-3 will change the value to "1.23456".
*
* @param delta The number of magnitudes of ten to change by.
+ * @return true if integer overflow occured; false otherwise.
*/
- void adjustMagnitude(int32_t delta);
+ bool adjustMagnitude(int32_t delta);
/**
* @return The power of ten corresponding to the most significant nonzero digit.
@@ -124,13 +146,23 @@ class U_I18N_API DecimalQuantity : public IFixedDecimal, public UMemory {
/** @return Whether the value represented by this {@link DecimalQuantity} is not a number. */
bool isNaN() const U_OVERRIDE;
- int64_t toLong() const;
+ /** @param truncateIfOverflow if false and the number does NOT fit, fails with an assertion error. */
+ int64_t toLong(bool truncateIfOverflow = false) const;
- int64_t toFractionLong(bool includeTrailingZeros) const;
+ uint64_t toFractionLong(bool includeTrailingZeros) const;
+
+ /**
+ * Returns whether or not a Long can fully represent the value stored in this DecimalQuantity.
+ * @param ignoreFraction if true, silently ignore digits after the decimal place.
+ */
+ bool fitsInLong(bool ignoreFraction = false) const;
/** @return The value contained in this {@link DecimalQuantity} approximated as a double. */
double toDouble() const;
+ /** Computes a DecNum representation of this DecimalQuantity, saving it to the output parameter. */
+ void toDecNum(DecNum& output, UErrorCode& status) const;
+
DecimalQuantity &setToInt(int32_t n);
DecimalQuantity &setToLong(int64_t n);
@@ -138,8 +170,10 @@ class U_I18N_API DecimalQuantity : public IFixedDecimal, public UMemory {
DecimalQuantity &setToDouble(double n);
/** decNumber is similar to BigDecimal in Java. */
+ DecimalQuantity &setToDecNumber(StringPiece n, UErrorCode& status);
- DecimalQuantity &setToDecNumber(StringPiece n);
+ /** Internal method if the caller already has a DecNum. */
+ DecimalQuantity &setToDecNum(const DecNum& n, UErrorCode& status);
/**
* Appends a digit, optionally with one or more leading zeros, to the end of the value represented
@@ -160,17 +194,10 @@ class U_I18N_API DecimalQuantity : public IFixedDecimal, public UMemory {
*/
void appendDigit(int8_t value, int32_t leadingZeros, bool appendAsInteger);
- /**
- * Computes the plural form for this number based on the specified set of rules.
- *
- * @param rules A {@link PluralRules} object representing the set of rules.
- * @return The {@link StandardPlural} according to the PluralRules. If the plural form is not in
- * the set of standard plurals, {@link StandardPlural#OTHER} is returned instead.
- */
- StandardPlural::Form getStandardPlural(const PluralRules *rules) const;
-
double getPluralOperand(PluralOperand operand) const U_OVERRIDE;
+ bool hasIntegerValue() const U_OVERRIDE;
+
/**
* Gets the digit at the specified magnitude. For example, if the represented number is 12.3,
* getDigit(-1) returns 3, since 3 is the digit corresponding to 10^-1.
@@ -223,10 +250,10 @@ class U_I18N_API DecimalQuantity : public IFixedDecimal, public UMemory {
UnicodeString toString() const;
- /* Returns the string in exponential notation. */
- UnicodeString toNumberString() const;
+ /** Returns the string in standard exponential notation. */
+ UnicodeString toScientificString() const;
- /* Returns the string without exponential notation. Slightly slower than toNumberString(). */
+ /** Returns the string without exponential notation. Slightly slower than toScientificString(). */
UnicodeString toPlainString() const;
/** Visible for testing */
@@ -235,6 +262,17 @@ class U_I18N_API DecimalQuantity : public IFixedDecimal, public UMemory {
/** Visible for testing */
inline bool isExplicitExactDouble() { return explicitExactDouble; };
+ bool operator==(const DecimalQuantity& other) const;
+
+ inline bool operator!=(const DecimalQuantity& other) const {
+ return !(*this == other);
+ }
+
+ /**
+ * Bogus flag for when a DecimalQuantity is stored on the stack.
+ */
+ bool bogus = false;
+
private:
/**
* The power of ten corresponding to the least significant digit in the BCD. For example, if this
@@ -396,12 +434,16 @@ class U_I18N_API DecimalQuantity : public IFixedDecimal, public UMemory {
*/
void readLongToBcd(int64_t n);
- void readDecNumberToBcd(decNumber *dn);
+ void readDecNumberToBcd(const DecNum& dn);
void readDoubleConversionToBcd(const char* buffer, int32_t length, int32_t point);
+ void copyFieldsFrom(const DecimalQuantity& other);
+
void copyBcdFrom(const DecimalQuantity &other);
+ void moveBcdFrom(DecimalQuantity& src);
+
/**
* Removes trailing zeros from the BCD (adjusting the scale as required) and then computes the
* precision. The precision is the number of digits in the number up through the greatest nonzero
@@ -418,12 +460,10 @@ class U_I18N_API DecimalQuantity : public IFixedDecimal, public UMemory {
void _setToDoubleFast(double n);
- void _setToDecNumber(decNumber *n);
+ void _setToDecNum(const DecNum& dn, UErrorCode& status);
void convertToAccurateDouble();
- double toDoubleFromOriginal() const;
-
/** Ensure that a byte array of at least 40 digits is allocated. */
void ensureCapacity();
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_decimfmtprops.cpp b/Build/source/libs/icu/icu-src/source/i18n/number_decimfmtprops.cpp
index cc57cfce6ac..12fe7060e2d 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/number_decimfmtprops.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_decimfmtprops.cpp
@@ -3,14 +3,30 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
#include "number_decimfmtprops.h"
+#include "umutex.h"
using namespace icu;
using namespace icu::number;
using namespace icu::number::impl;
+
+namespace {
+
+alignas(DecimalFormatProperties)
+char kRawDefaultProperties[sizeof(DecimalFormatProperties)];
+
+icu::UInitOnce gDefaultPropertiesInitOnce = U_INITONCE_INITIALIZER;
+
+void U_CALLCONV initDefaultProperties(UErrorCode&) {
+ new(kRawDefaultProperties) DecimalFormatProperties(); // set to the default instance
+}
+
+}
+
+
DecimalFormatProperties::DecimalFormatProperties() {
clear();
}
@@ -23,8 +39,10 @@ void DecimalFormatProperties::clear() {
decimalPatternMatchRequired = false;
decimalSeparatorAlwaysShown = false;
exponentSignAlwaysShown = false;
+ formatFailIfMoreThanMaxDigits = false;
formatWidth = -1;
groupingSize = -1;
+ groupingUsed = true;
magnitudeMultiplier = 0;
maximumFractionDigits = -1;
maximumIntegerDigits = -1;
@@ -34,7 +52,8 @@ void DecimalFormatProperties::clear() {
minimumGroupingDigits = -1;
minimumIntegerDigits = -1;
minimumSignificantDigits = -1;
- multiplier = 0;
+ multiplier = 1;
+ multiplierScale = 0;
negativePrefix.setToBogus();
negativePrefixPattern.setToBogus();
negativeSuffix.setToBogus();
@@ -43,9 +62,10 @@ void DecimalFormatProperties::clear() {
padString.setToBogus();
parseCaseSensitive = false;
parseIntegerOnly = false;
- parseLenient = false;
+ parseMode.nullify();
parseNoExponent = false;
parseToBigDecimal = false;
+ parseAllInput = UNUM_MAYBE;
positivePrefix.setToBogus();
positivePrefixPattern.setToBogus();
positiveSuffix.setToBogus();
@@ -56,47 +76,70 @@ void DecimalFormatProperties::clear() {
signAlwaysShown = false;
}
-bool DecimalFormatProperties::operator==(const DecimalFormatProperties &other) const {
+bool
+DecimalFormatProperties::_equals(const DecimalFormatProperties& other, bool ignoreForFastFormat) const {
bool eq = true;
+
+ // Properties that must be equal both normally and for fast-path formatting
eq = eq && compactStyle == other.compactStyle;
eq = eq && currency == other.currency;
eq = eq && currencyPluralInfo.fPtr.getAlias() == other.currencyPluralInfo.fPtr.getAlias();
eq = eq && currencyUsage == other.currencyUsage;
- eq = eq && decimalPatternMatchRequired == other.decimalPatternMatchRequired;
eq = eq && decimalSeparatorAlwaysShown == other.decimalSeparatorAlwaysShown;
eq = eq && exponentSignAlwaysShown == other.exponentSignAlwaysShown;
+ eq = eq && formatFailIfMoreThanMaxDigits == other.formatFailIfMoreThanMaxDigits;
eq = eq && formatWidth == other.formatWidth;
- eq = eq && groupingSize == other.groupingSize;
eq = eq && magnitudeMultiplier == other.magnitudeMultiplier;
- eq = eq && maximumFractionDigits == other.maximumFractionDigits;
- eq = eq && maximumIntegerDigits == other.maximumIntegerDigits;
eq = eq && maximumSignificantDigits == other.maximumSignificantDigits;
eq = eq && minimumExponentDigits == other.minimumExponentDigits;
- eq = eq && minimumFractionDigits == other.minimumFractionDigits;
eq = eq && minimumGroupingDigits == other.minimumGroupingDigits;
- eq = eq && minimumIntegerDigits == other.minimumIntegerDigits;
eq = eq && minimumSignificantDigits == other.minimumSignificantDigits;
eq = eq && multiplier == other.multiplier;
+ eq = eq && multiplierScale == other.multiplierScale;
eq = eq && negativePrefix == other.negativePrefix;
- eq = eq && negativePrefixPattern == other.negativePrefixPattern;
eq = eq && negativeSuffix == other.negativeSuffix;
- eq = eq && negativeSuffixPattern == other.negativeSuffixPattern;
eq = eq && padPosition == other.padPosition;
eq = eq && padString == other.padString;
- eq = eq && parseCaseSensitive == other.parseCaseSensitive;
- eq = eq && parseIntegerOnly == other.parseIntegerOnly;
- eq = eq && parseLenient == other.parseLenient;
- eq = eq && parseNoExponent == other.parseNoExponent;
- eq = eq && parseToBigDecimal == other.parseToBigDecimal;
eq = eq && positivePrefix == other.positivePrefix;
- eq = eq && positivePrefixPattern == other.positivePrefixPattern;
eq = eq && positiveSuffix == other.positiveSuffix;
- eq = eq && positiveSuffixPattern == other.positiveSuffixPattern;
eq = eq && roundingIncrement == other.roundingIncrement;
eq = eq && roundingMode == other.roundingMode;
eq = eq && secondaryGroupingSize == other.secondaryGroupingSize;
eq = eq && signAlwaysShown == other.signAlwaysShown;
+
+ if (ignoreForFastFormat) {
+ return eq;
+ }
+
+ // Properties ignored by fast-path formatting
+ // Formatting (special handling required):
+ eq = eq && groupingSize == other.groupingSize;
+ eq = eq && groupingUsed == other.groupingUsed;
+ eq = eq && minimumFractionDigits == other.minimumFractionDigits;
+ eq = eq && maximumFractionDigits == other.maximumFractionDigits;
+ eq = eq && maximumIntegerDigits == other.maximumIntegerDigits;
+ eq = eq && minimumIntegerDigits == other.minimumIntegerDigits;
+ eq = eq && negativePrefixPattern == other.negativePrefixPattern;
+ eq = eq && negativeSuffixPattern == other.negativeSuffixPattern;
+ eq = eq && positivePrefixPattern == other.positivePrefixPattern;
+ eq = eq && positiveSuffixPattern == other.positiveSuffixPattern;
+
+ // Parsing (always safe to ignore):
+ eq = eq && decimalPatternMatchRequired == other.decimalPatternMatchRequired;
+ eq = eq && parseCaseSensitive == other.parseCaseSensitive;
+ eq = eq && parseIntegerOnly == other.parseIntegerOnly;
+ eq = eq && parseMode == other.parseMode;
+ eq = eq && parseNoExponent == other.parseNoExponent;
+ eq = eq && parseToBigDecimal == other.parseToBigDecimal;
+ eq = eq && parseAllInput == other.parseAllInput;
+
return eq;
}
+bool DecimalFormatProperties::equalsDefaultExceptFastFormat() const {
+ UErrorCode localStatus = U_ZERO_ERROR;
+ umtx_initOnce(gDefaultPropertiesInitOnce, &initDefaultProperties, localStatus);
+ return _equals(*reinterpret_cast<DecimalFormatProperties*>(kRawDefaultProperties), true);
+}
+
#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_decimfmtprops.h b/Build/source/libs/icu/icu-src/source/i18n/number_decimfmtprops.h
index 96356cad453..f288b6e0d97 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/number_decimfmtprops.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_decimfmtprops.h
@@ -3,7 +3,7 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
#ifndef __NUMBER_DECIMFMTPROPS_H__
#define __NUMBER_DECIMFMTPROPS_H__
@@ -30,21 +30,65 @@ template class U_I18N_API LocalPointer<CurrencyPluralInfo>;
namespace number {
namespace impl {
-// TODO: Figure out a nicer way to deal with CurrencyPluralInfo.
// Exported as U_I18N_API because it is a public member field of exported DecimalFormatProperties
-struct U_I18N_API CurrencyPluralInfoWrapper {
+// Using this wrapper is rather unfortunate, but is needed on Windows platforms in order to allow
+// for DLL-exporting an fully specified template instantiation.
+class U_I18N_API CurrencyPluralInfoWrapper {
+public:
LocalPointer<CurrencyPluralInfo> fPtr;
- CurrencyPluralInfoWrapper() {}
+ CurrencyPluralInfoWrapper() = default;
+
CurrencyPluralInfoWrapper(const CurrencyPluralInfoWrapper& other) {
if (!other.fPtr.isNull()) {
fPtr.adoptInstead(new CurrencyPluralInfo(*other.fPtr));
}
}
+
+ CurrencyPluralInfoWrapper& operator=(const CurrencyPluralInfoWrapper& other) {
+ if (!other.fPtr.isNull()) {
+ fPtr.adoptInstead(new CurrencyPluralInfo(*other.fPtr));
+ }
+ return *this;
+ }
+};
+
+/** Controls the set of rules for parsing a string from the old DecimalFormat API. */
+enum ParseMode {
+ /**
+ * Lenient mode should be used if you want to accept malformed user input. It will use heuristics
+ * to attempt to parse through typographical errors in the string.
+ */
+ PARSE_MODE_LENIENT,
+
+ /**
+ * Strict mode should be used if you want to require that the input is well-formed. More
+ * specifically, it differs from lenient mode in the following ways:
+ *
+ * <ul>
+ * <li>Grouping widths must match the grouping settings. For example, "12,3,45" will fail if the
+ * grouping width is 3, as in the pattern "#,##0".
+ * <li>The string must contain a complete prefix and suffix. For example, if the pattern is
+ * "{#};(#)", then "{123}" or "(123)" would match, but "{123", "123}", and "123" would all fail.
+ * (The latter strings would be accepted in lenient mode.)
+ * <li>Whitespace may not appear at arbitrary places in the string. In lenient mode, whitespace
+ * is allowed to occur arbitrarily before and after prefixes and exponent separators.
+ * <li>Leading grouping separators are not allowed, as in ",123".
+ * <li>Minus and plus signs can only appear if specified in the pattern. In lenient mode, a plus
+ * or minus sign can always precede a number.
+ * <li>The set of characters that can be interpreted as a decimal or grouping separator is
+ * smaller.
+ * <li><strong>If currency parsing is enabled,</strong> currencies must only appear where
+ * specified in either the current pattern string or in a valid pattern string for the current
+ * locale. For example, if the pattern is "¤0.00", then "$1.23" would match, but "1.23$" would
+ * fail to match.
+ * </ul>
+ */
+ PARSE_MODE_STRICT,
};
// Exported as U_I18N_API because it is needed for the unit test PatternStringTest
-struct U_I18N_API DecimalFormatProperties {
+struct U_I18N_API DecimalFormatProperties : public UMemory {
public:
NullableValue<UNumberCompactStyle> compactStyle;
@@ -54,9 +98,11 @@ struct U_I18N_API DecimalFormatProperties {
bool decimalPatternMatchRequired;
bool decimalSeparatorAlwaysShown;
bool exponentSignAlwaysShown;
+ bool formatFailIfMoreThanMaxDigits; // ICU4C-only
int32_t formatWidth;
int32_t groupingSize;
- int32_t magnitudeMultiplier;
+ bool groupingUsed;
+ int32_t magnitudeMultiplier; // internal field like multiplierScale but separate to avoid conflict
int32_t maximumFractionDigits;
int32_t maximumIntegerDigits;
int32_t maximumSignificantDigits;
@@ -66,6 +112,7 @@ struct U_I18N_API DecimalFormatProperties {
int32_t minimumIntegerDigits;
int32_t minimumSignificantDigits;
int32_t multiplier;
+ int32_t multiplierScale; // ICU4C-only
UnicodeString negativePrefix;
UnicodeString negativePrefixPattern;
UnicodeString negativeSuffix;
@@ -74,9 +121,10 @@ struct U_I18N_API DecimalFormatProperties {
UnicodeString padString;
bool parseCaseSensitive;
bool parseIntegerOnly;
- bool parseLenient;
+ NullableValue<ParseMode> parseMode;
bool parseNoExponent;
- bool parseToBigDecimal;
+ bool parseToBigDecimal; // TODO: Not needed in ICU4C?
+ UNumberFormatAttributeValue parseAllInput; // ICU4C-only
//PluralRules pluralRules;
UnicodeString positivePrefix;
UnicodeString positivePrefixPattern;
@@ -89,13 +137,20 @@ struct U_I18N_API DecimalFormatProperties {
DecimalFormatProperties();
- //DecimalFormatProperties(const DecimalFormatProperties &other) = default;
+ inline bool operator==(const DecimalFormatProperties& other) const {
+ return _equals(other, false);
+ }
- DecimalFormatProperties &operator=(const DecimalFormatProperties &other) = default;
+ void clear();
- bool operator==(const DecimalFormatProperties &other) const;
+ /**
+ * Checks for equality to the default DecimalFormatProperties, but ignores the prescribed set of
+ * options for fast-path formatting.
+ */
+ bool equalsDefaultExceptFastFormat() const;
- void clear();
+ private:
+ bool _equals(const DecimalFormatProperties& other, bool ignoreForFastFormat) const;
};
} // namespace impl
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_decnum.h b/Build/source/libs/icu/icu-src/source/i18n/number_decnum.h
new file mode 100644
index 00000000000..a7793470b55
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_decnum.h
@@ -0,0 +1,77 @@
+// © 2017 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+#ifndef __NUMBER_DECNUM_H__
+#define __NUMBER_DECNUM_H__
+
+#include "decNumber.h"
+#include "charstr.h"
+
+U_NAMESPACE_BEGIN
+
+#define DECNUM_INITIAL_CAPACITY 34
+
+// Export an explicit template instantiation of the MaybeStackHeaderAndArray that is used as a data member of DecNum.
+// When building DLLs for Windows this is required even though no direct access to the MaybeStackHeaderAndArray leaks out of the i18n library.
+// (See digitlst.h, pluralaffix.h, datefmt.h, and others for similar examples.)
+#if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN
+template class U_I18N_API MaybeStackHeaderAndArray<decNumber, char, DECNUM_INITIAL_CAPACITY>;
+#endif
+
+namespace number {
+namespace impl {
+
+/** A very thin C++ wrapper around decNumber.h */
+// Exported as U_I18N_API for tests
+class U_I18N_API DecNum : public UMemory {
+ public:
+ DecNum(); // leaves object in valid but undefined state
+
+ // Copy-like constructor; use the default move operators.
+ DecNum(const DecNum& other, UErrorCode& status);
+
+ /** Sets the decNumber to the StringPiece. */
+ void setTo(StringPiece str, UErrorCode& status);
+
+ /** Sets the decNumber to the NUL-terminated char string. */
+ void setTo(const char* str, UErrorCode& status);
+
+ /** Uses double_conversion to set this decNumber to the given double. */
+ void setTo(double d, UErrorCode& status);
+
+ /** Sets the decNumber to the BCD representation. */
+ void setTo(const uint8_t* bcd, int32_t length, int32_t scale, bool isNegative, UErrorCode& status);
+
+ void normalize();
+
+ void multiplyBy(const DecNum& rhs, UErrorCode& status);
+
+ void divideBy(const DecNum& rhs, UErrorCode& status);
+
+ bool isNegative() const;
+
+ bool isZero() const;
+
+ inline const decNumber* getRawDecNumber() const {
+ return fData.getAlias();
+ }
+
+ private:
+ static constexpr int32_t kDefaultDigits = DECNUM_INITIAL_CAPACITY;
+ MaybeStackHeaderAndArray<decNumber, char, kDefaultDigits> fData;
+ decContext fContext;
+
+ void _setTo(const char* str, int32_t maxDigits, UErrorCode& status);
+};
+
+} // namespace impl
+} // namespace number
+
+U_NAMESPACE_END
+
+#endif // __NUMBER_DECNUM_H__
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_fluent.cpp b/Build/source/libs/icu/icu-src/source/i18n/number_fluent.cpp
index 27113106c50..a66e3bd0f23 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/number_fluent.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_fluent.cpp
@@ -3,20 +3,26 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
#include "uassert.h"
#include "unicode/numberformatter.h"
#include "number_decimalquantity.h"
#include "number_formatimpl.h"
#include "umutex.h"
+#include "number_asformat.h"
+#include "number_skeletons.h"
+#include "number_utils.h"
+#include "number_utypes.h"
+#include "util.h"
+#include "fphdlimp.h"
using namespace icu;
using namespace icu::number;
using namespace icu::number::impl;
template<typename Derived>
-Derived NumberFormatterSettings<Derived>::notation(const Notation &notation) const {
+Derived NumberFormatterSettings<Derived>::notation(const Notation& notation) const& {
Derived copy(*this);
// NOTE: Slicing is OK.
copy.fMacros.notation = notation;
@@ -24,7 +30,15 @@ Derived NumberFormatterSettings<Derived>::notation(const Notation &notation) con
}
template<typename Derived>
-Derived NumberFormatterSettings<Derived>::unit(const icu::MeasureUnit &unit) const {
+Derived NumberFormatterSettings<Derived>::notation(const Notation& notation)&& {
+ Derived move(std::move(*this));
+ // NOTE: Slicing is OK.
+ move.fMacros.notation = notation;
+ return move;
+}
+
+template<typename Derived>
+Derived NumberFormatterSettings<Derived>::unit(const icu::MeasureUnit& unit) const& {
Derived copy(*this);
// NOTE: Slicing occurs here. However, CurrencyUnit can be restored from MeasureUnit.
// TimeUnit may be affected, but TimeUnit is not as relevant to number formatting.
@@ -33,21 +47,41 @@ Derived NumberFormatterSettings<Derived>::unit(const icu::MeasureUnit &unit) con
}
template<typename Derived>
-Derived NumberFormatterSettings<Derived>::adoptUnit(icu::MeasureUnit *unit) const {
+Derived NumberFormatterSettings<Derived>::unit(const icu::MeasureUnit& unit)&& {
+ Derived move(std::move(*this));
+ // See comments above about slicing.
+ move.fMacros.unit = unit;
+ return move;
+}
+
+template<typename Derived>
+Derived NumberFormatterSettings<Derived>::adoptUnit(icu::MeasureUnit* unit) const& {
Derived copy(*this);
- // Just copy the unit into the MacroProps by value, and delete it since we have ownership.
+ // Just move the unit into the MacroProps by value, and delete it since we have ownership.
// NOTE: Slicing occurs here. However, CurrencyUnit can be restored from MeasureUnit.
// TimeUnit may be affected, but TimeUnit is not as relevant to number formatting.
if (unit != nullptr) {
- // TODO: On nullptr, reset to default value?
- copy.fMacros.unit = *unit;
+ // TODO: On nullptr, reset to default value?
+ copy.fMacros.unit = std::move(*unit);
delete unit;
}
return copy;
}
template<typename Derived>
-Derived NumberFormatterSettings<Derived>::perUnit(const icu::MeasureUnit &perUnit) const {
+Derived NumberFormatterSettings<Derived>::adoptUnit(icu::MeasureUnit* unit)&& {
+ Derived move(std::move(*this));
+ // See comments above about slicing and ownership.
+ if (unit != nullptr) {
+ // TODO: On nullptr, reset to default value?
+ move.fMacros.unit = std::move(*unit);
+ delete unit;
+ }
+ return move;
+}
+
+template<typename Derived>
+Derived NumberFormatterSettings<Derived>::perUnit(const icu::MeasureUnit& perUnit) const& {
Derived copy(*this);
// See comments above about slicing.
copy.fMacros.perUnit = perUnit;
@@ -55,27 +89,69 @@ Derived NumberFormatterSettings<Derived>::perUnit(const icu::MeasureUnit &perUni
}
template<typename Derived>
-Derived NumberFormatterSettings<Derived>::adoptPerUnit(icu::MeasureUnit *perUnit) const {
+Derived NumberFormatterSettings<Derived>::perUnit(const icu::MeasureUnit& perUnit)&& {
+ Derived move(std::move(*this));
+ // See comments above about slicing.
+ move.fMacros.perUnit = perUnit;
+ return move;
+}
+
+template<typename Derived>
+Derived NumberFormatterSettings<Derived>::adoptPerUnit(icu::MeasureUnit* perUnit) const& {
Derived copy(*this);
// See comments above about slicing and ownership.
if (perUnit != nullptr) {
- // TODO: On nullptr, reset to default value?
- copy.fMacros.perUnit = *perUnit;
+ // TODO: On nullptr, reset to default value?
+ copy.fMacros.perUnit = std::move(*perUnit);
delete perUnit;
}
return copy;
}
template<typename Derived>
-Derived NumberFormatterSettings<Derived>::rounding(const Rounder &rounder) const {
+Derived NumberFormatterSettings<Derived>::adoptPerUnit(icu::MeasureUnit* perUnit)&& {
+ Derived move(std::move(*this));
+ // See comments above about slicing and ownership.
+ if (perUnit != nullptr) {
+ // TODO: On nullptr, reset to default value?
+ move.fMacros.perUnit = std::move(*perUnit);
+ delete perUnit;
+ }
+ return move;
+}
+
+template<typename Derived>
+Derived NumberFormatterSettings<Derived>::precision(const Precision& precision) const& {
Derived copy(*this);
// NOTE: Slicing is OK.
- copy.fMacros.rounder = rounder;
+ copy.fMacros.precision = precision;
return copy;
}
template<typename Derived>
-Derived NumberFormatterSettings<Derived>::grouping(const UGroupingStrategy &strategy) const {
+Derived NumberFormatterSettings<Derived>::precision(const Precision& precision)&& {
+ Derived move(std::move(*this));
+ // NOTE: Slicing is OK.
+ move.fMacros.precision = precision;
+ return move;
+}
+
+template<typename Derived>
+Derived NumberFormatterSettings<Derived>::roundingMode(UNumberFormatRoundingMode roundingMode) const& {
+ Derived copy(*this);
+ copy.fMacros.roundingMode = roundingMode;
+ return copy;
+}
+
+template<typename Derived>
+Derived NumberFormatterSettings<Derived>::roundingMode(UNumberFormatRoundingMode roundingMode)&& {
+ Derived move(std::move(*this));
+ move.fMacros.roundingMode = roundingMode;
+ return move;
+}
+
+template<typename Derived>
+Derived NumberFormatterSettings<Derived>::grouping(UGroupingStrategy strategy) const& {
Derived copy(*this);
// NOTE: This is slightly different than how the setting is stored in Java
// because we want to put it on the stack.
@@ -84,61 +160,174 @@ Derived NumberFormatterSettings<Derived>::grouping(const UGroupingStrategy &stra
}
template<typename Derived>
-Derived NumberFormatterSettings<Derived>::integerWidth(const IntegerWidth &style) const {
+Derived NumberFormatterSettings<Derived>::grouping(UGroupingStrategy strategy)&& {
+ Derived move(std::move(*this));
+ move.fMacros.grouper = Grouper::forStrategy(strategy);
+ return move;
+}
+
+template<typename Derived>
+Derived NumberFormatterSettings<Derived>::integerWidth(const IntegerWidth& style) const& {
Derived copy(*this);
copy.fMacros.integerWidth = style;
return copy;
}
template<typename Derived>
-Derived NumberFormatterSettings<Derived>::symbols(const DecimalFormatSymbols &symbols) const {
+Derived NumberFormatterSettings<Derived>::integerWidth(const IntegerWidth& style)&& {
+ Derived move(std::move(*this));
+ move.fMacros.integerWidth = style;
+ return move;
+}
+
+template<typename Derived>
+Derived NumberFormatterSettings<Derived>::symbols(const DecimalFormatSymbols& symbols) const& {
Derived copy(*this);
copy.fMacros.symbols.setTo(symbols);
return copy;
}
template<typename Derived>
-Derived NumberFormatterSettings<Derived>::adoptSymbols(NumberingSystem *ns) const {
+Derived NumberFormatterSettings<Derived>::symbols(const DecimalFormatSymbols& symbols)&& {
+ Derived move(std::move(*this));
+ move.fMacros.symbols.setTo(symbols);
+ return move;
+}
+
+template<typename Derived>
+Derived NumberFormatterSettings<Derived>::adoptSymbols(NumberingSystem* ns) const& {
Derived copy(*this);
copy.fMacros.symbols.setTo(ns);
return copy;
}
template<typename Derived>
-Derived NumberFormatterSettings<Derived>::unitWidth(const UNumberUnitWidth &width) const {
+Derived NumberFormatterSettings<Derived>::adoptSymbols(NumberingSystem* ns)&& {
+ Derived move(std::move(*this));
+ move.fMacros.symbols.setTo(ns);
+ return move;
+}
+
+template<typename Derived>
+Derived NumberFormatterSettings<Derived>::unitWidth(UNumberUnitWidth width) const& {
Derived copy(*this);
copy.fMacros.unitWidth = width;
return copy;
}
template<typename Derived>
-Derived NumberFormatterSettings<Derived>::sign(const UNumberSignDisplay &style) const {
+Derived NumberFormatterSettings<Derived>::unitWidth(UNumberUnitWidth width)&& {
+ Derived move(std::move(*this));
+ move.fMacros.unitWidth = width;
+ return move;
+}
+
+template<typename Derived>
+Derived NumberFormatterSettings<Derived>::sign(UNumberSignDisplay style) const& {
Derived copy(*this);
copy.fMacros.sign = style;
return copy;
}
template<typename Derived>
-Derived NumberFormatterSettings<Derived>::decimal(const UNumberDecimalSeparatorDisplay &style) const {
+Derived NumberFormatterSettings<Derived>::sign(UNumberSignDisplay style)&& {
+ Derived move(std::move(*this));
+ move.fMacros.sign = style;
+ return move;
+}
+
+template<typename Derived>
+Derived NumberFormatterSettings<Derived>::decimal(UNumberDecimalSeparatorDisplay style) const& {
Derived copy(*this);
copy.fMacros.decimal = style;
return copy;
}
template<typename Derived>
-Derived NumberFormatterSettings<Derived>::padding(const Padder &padder) const {
+Derived NumberFormatterSettings<Derived>::decimal(UNumberDecimalSeparatorDisplay style)&& {
+ Derived move(std::move(*this));
+ move.fMacros.decimal = style;
+ return move;
+}
+
+template<typename Derived>
+Derived NumberFormatterSettings<Derived>::scale(const Scale& scale) const& {
+ Derived copy(*this);
+ copy.fMacros.scale = scale;
+ return copy;
+}
+
+template<typename Derived>
+Derived NumberFormatterSettings<Derived>::scale(const Scale& scale)&& {
+ Derived move(std::move(*this));
+ move.fMacros.scale = scale;
+ return move;
+}
+
+template<typename Derived>
+Derived NumberFormatterSettings<Derived>::padding(const Padder& padder) const& {
Derived copy(*this);
copy.fMacros.padder = padder;
return copy;
}
template<typename Derived>
-Derived NumberFormatterSettings<Derived>::threshold(int32_t threshold) const {
+Derived NumberFormatterSettings<Derived>::padding(const Padder& padder)&& {
+ Derived move(std::move(*this));
+ move.fMacros.padder = padder;
+ return move;
+}
+
+template<typename Derived>
+Derived NumberFormatterSettings<Derived>::threshold(int32_t threshold) const& {
Derived copy(*this);
copy.fMacros.threshold = threshold;
return copy;
}
+template<typename Derived>
+Derived NumberFormatterSettings<Derived>::threshold(int32_t threshold)&& {
+ Derived move(std::move(*this));
+ move.fMacros.threshold = threshold;
+ return move;
+}
+
+template<typename Derived>
+Derived NumberFormatterSettings<Derived>::macros(const impl::MacroProps& macros) const& {
+ Derived copy(*this);
+ copy.fMacros = macros;
+ return copy;
+}
+
+template<typename Derived>
+Derived NumberFormatterSettings<Derived>::macros(const impl::MacroProps& macros)&& {
+ Derived move(std::move(*this));
+ move.fMacros = macros;
+ return move;
+}
+
+template<typename Derived>
+Derived NumberFormatterSettings<Derived>::macros(impl::MacroProps&& macros) const& {
+ Derived copy(*this);
+ copy.fMacros = std::move(macros);
+ return copy;
+}
+
+template<typename Derived>
+Derived NumberFormatterSettings<Derived>::macros(impl::MacroProps&& macros)&& {
+ Derived move(std::move(*this));
+ move.fMacros = std::move(macros);
+ return move;
+}
+
+template<typename Derived>
+UnicodeString NumberFormatterSettings<Derived>::toSkeleton(UErrorCode& status) const {
+ if (fMacros.copyErrorTo(status)) {
+ return ICU_Utility::makeBogusString();
+ }
+ return skeleton::generate(fMacros, status);
+}
+
// Declare all classes that implement NumberFormatterSettings
// See https://stackoverflow.com/a/495056/1407170
template
@@ -152,38 +341,144 @@ UnlocalizedNumberFormatter NumberFormatter::with() {
return result;
}
-LocalizedNumberFormatter NumberFormatter::withLocale(const Locale &locale) {
+LocalizedNumberFormatter NumberFormatter::withLocale(const Locale& locale) {
return with().locale(locale);
}
-// Make the child class constructor that takes the parent class call the parent class's copy constructor
-UnlocalizedNumberFormatter::UnlocalizedNumberFormatter(
- const NumberFormatterSettings <UnlocalizedNumberFormatter> &other)
- : NumberFormatterSettings<UnlocalizedNumberFormatter>(other) {
+UnlocalizedNumberFormatter
+NumberFormatter::forSkeleton(const UnicodeString& skeleton, UErrorCode& status) {
+ return skeleton::create(skeleton, status);
+}
+
+
+template<typename T> using NFS = NumberFormatterSettings<T>;
+using LNF = LocalizedNumberFormatter;
+using UNF = UnlocalizedNumberFormatter;
+
+UnlocalizedNumberFormatter::UnlocalizedNumberFormatter(const UNF& other)
+ : UNF(static_cast<const NFS<UNF>&>(other)) {}
+
+UnlocalizedNumberFormatter::UnlocalizedNumberFormatter(const NFS<UNF>& other)
+ : NFS<UNF>(other) {
+ // No additional fields to assign
+}
+
+// Make default copy constructor call the NumberFormatterSettings copy constructor.
+UnlocalizedNumberFormatter::UnlocalizedNumberFormatter(UNF&& src) U_NOEXCEPT
+ : UNF(static_cast<NFS<UNF>&&>(src)) {}
+
+UnlocalizedNumberFormatter::UnlocalizedNumberFormatter(NFS<UNF>&& src) U_NOEXCEPT
+ : NFS<UNF>(std::move(src)) {
+ // No additional fields to assign
+}
+
+UnlocalizedNumberFormatter& UnlocalizedNumberFormatter::operator=(const UNF& other) {
+ NFS<UNF>::operator=(static_cast<const NFS<UNF>&>(other));
+ // No additional fields to assign
+ return *this;
+}
+
+UnlocalizedNumberFormatter& UnlocalizedNumberFormatter::operator=(UNF&& src) U_NOEXCEPT {
+ NFS<UNF>::operator=(static_cast<NFS<UNF>&&>(src));
+ // No additional fields to assign
+ return *this;
+}
+
+// Make default copy constructor call the NumberFormatterSettings copy constructor.
+LocalizedNumberFormatter::LocalizedNumberFormatter(const LNF& other)
+ : LNF(static_cast<const NFS<LNF>&>(other)) {}
+
+LocalizedNumberFormatter::LocalizedNumberFormatter(const NFS<LNF>& other)
+ : NFS<LNF>(other) {
+ // No additional fields to assign (let call count and compiled formatter reset to defaults)
+}
+
+LocalizedNumberFormatter::LocalizedNumberFormatter(LocalizedNumberFormatter&& src) U_NOEXCEPT
+ : LNF(static_cast<NFS<LNF>&&>(src)) {}
+
+LocalizedNumberFormatter::LocalizedNumberFormatter(NFS<LNF>&& src) U_NOEXCEPT
+ : NFS<LNF>(std::move(src)) {
+ // For the move operators, copy over the compiled formatter.
+ // Note: if the formatter is not compiled, call count information is lost.
+ if (static_cast<LNF&&>(src).fCompiled != nullptr) {
+ lnfMoveHelper(static_cast<LNF&&>(src));
+ }
+}
+
+LocalizedNumberFormatter& LocalizedNumberFormatter::operator=(const LNF& other) {
+ NFS<LNF>::operator=(static_cast<const NFS<LNF>&>(other));
+ // Reset to default values.
+ clear();
+ return *this;
+}
+
+LocalizedNumberFormatter& LocalizedNumberFormatter::operator=(LNF&& src) U_NOEXCEPT {
+ NFS<LNF>::operator=(static_cast<NFS<LNF>&&>(src));
+ // For the move operators, copy over the compiled formatter.
+ // Note: if the formatter is not compiled, call count information is lost.
+ if (static_cast<LNF&&>(src).fCompiled != nullptr) {
+ // Formatter is compiled
+ lnfMoveHelper(static_cast<LNF&&>(src));
+ } else {
+ clear();
+ }
+ return *this;
+}
+
+void LocalizedNumberFormatter::clear() {
+ // Reset to default values.
+ auto* callCount = reinterpret_cast<u_atomic_int32_t*>(fUnsafeCallCount);
+ umtx_storeRelease(*callCount, 0);
+ delete fCompiled;
+ fCompiled = nullptr;
}
-// Make the child class constructor that takes the parent class call the parent class's copy constructor
-// For LocalizedNumberFormatter, also copy over the extra fields
-LocalizedNumberFormatter::LocalizedNumberFormatter(
- const NumberFormatterSettings <LocalizedNumberFormatter> &other)
- : NumberFormatterSettings<LocalizedNumberFormatter>(other) {
- // No additional copies required
+void LocalizedNumberFormatter::lnfMoveHelper(LNF&& src) {
+ // Copy over the compiled formatter and set call count to INT32_MIN as in computeCompiled().
+ // Don't copy the call count directly because doing so requires a loadAcquire/storeRelease.
+ // The bits themselves appear to be platform-dependent, so copying them might not be safe.
+ auto* callCount = reinterpret_cast<u_atomic_int32_t*>(fUnsafeCallCount);
+ umtx_storeRelease(*callCount, INT32_MIN);
+ delete fCompiled;
+ fCompiled = src.fCompiled;
+ // Reset the source object to leave it in a safe state.
+ auto* srcCallCount = reinterpret_cast<u_atomic_int32_t*>(src.fUnsafeCallCount);
+ umtx_storeRelease(*srcCallCount, 0);
+ src.fCompiled = nullptr;
}
-LocalizedNumberFormatter::LocalizedNumberFormatter(const MacroProps &macros, const Locale &locale) {
+
+LocalizedNumberFormatter::~LocalizedNumberFormatter() {
+ delete fCompiled;
+}
+
+LocalizedNumberFormatter::LocalizedNumberFormatter(const MacroProps& macros, const Locale& locale) {
fMacros = macros;
fMacros.locale = locale;
}
-LocalizedNumberFormatter UnlocalizedNumberFormatter::locale(const Locale &locale) const {
+LocalizedNumberFormatter::LocalizedNumberFormatter(MacroProps&& macros, const Locale& locale) {
+ fMacros = std::move(macros);
+ fMacros.locale = locale;
+}
+
+LocalizedNumberFormatter UnlocalizedNumberFormatter::locale(const Locale& locale) const& {
return LocalizedNumberFormatter(fMacros, locale);
}
-SymbolsWrapper::SymbolsWrapper(const SymbolsWrapper &other) {
+LocalizedNumberFormatter UnlocalizedNumberFormatter::locale(const Locale& locale)&& {
+ return LocalizedNumberFormatter(std::move(fMacros), locale);
+}
+
+SymbolsWrapper::SymbolsWrapper(const SymbolsWrapper& other) {
doCopyFrom(other);
}
-SymbolsWrapper &SymbolsWrapper::operator=(const SymbolsWrapper &other) {
+SymbolsWrapper::SymbolsWrapper(SymbolsWrapper&& src) U_NOEXCEPT {
+ doMoveFrom(std::move(src));
+}
+
+SymbolsWrapper& SymbolsWrapper::operator=(const SymbolsWrapper& other) {
if (this == &other) {
return *this;
}
@@ -192,23 +487,32 @@ SymbolsWrapper &SymbolsWrapper::operator=(const SymbolsWrapper &other) {
return *this;
}
+SymbolsWrapper& SymbolsWrapper::operator=(SymbolsWrapper&& src) U_NOEXCEPT {
+ if (this == &src) {
+ return *this;
+ }
+ doCleanup();
+ doMoveFrom(std::move(src));
+ return *this;
+}
+
SymbolsWrapper::~SymbolsWrapper() {
doCleanup();
}
-void SymbolsWrapper::setTo(const DecimalFormatSymbols &dfs) {
+void SymbolsWrapper::setTo(const DecimalFormatSymbols& dfs) {
doCleanup();
fType = SYMPTR_DFS;
fPtr.dfs = new DecimalFormatSymbols(dfs);
}
-void SymbolsWrapper::setTo(const NumberingSystem *ns) {
+void SymbolsWrapper::setTo(const NumberingSystem* ns) {
doCleanup();
fType = SYMPTR_NS;
fPtr.ns = ns;
}
-void SymbolsWrapper::doCopyFrom(const SymbolsWrapper &other) {
+void SymbolsWrapper::doCopyFrom(const SymbolsWrapper& other) {
fType = other.fType;
switch (fType) {
case SYMPTR_NONE:
@@ -233,6 +537,23 @@ void SymbolsWrapper::doCopyFrom(const SymbolsWrapper &other) {
}
}
+void SymbolsWrapper::doMoveFrom(SymbolsWrapper&& src) {
+ fType = src.fType;
+ switch (fType) {
+ case SYMPTR_NONE:
+ // No action necessary
+ break;
+ case SYMPTR_DFS:
+ fPtr.dfs = src.fPtr.dfs;
+ src.fPtr.dfs = nullptr;
+ break;
+ case SYMPTR_NS:
+ fPtr.ns = src.fPtr.ns;
+ src.fPtr.ns = nullptr;
+ break;
+ }
+}
+
void SymbolsWrapper::doCleanup() {
switch (fType) {
case SYMPTR_NONE:
@@ -265,53 +586,122 @@ const NumberingSystem* SymbolsWrapper::getNumberingSystem() const {
return fPtr.ns;
}
-LocalizedNumberFormatter::~LocalizedNumberFormatter() {
- delete fCompiled;
-}
-FormattedNumber LocalizedNumberFormatter::formatInt(int64_t value, UErrorCode &status) const {
+FormattedNumber LocalizedNumberFormatter::formatInt(int64_t value, UErrorCode& status) const {
if (U_FAILURE(status)) { return FormattedNumber(U_ILLEGAL_ARGUMENT_ERROR); }
- auto results = new NumberFormatterResults();
+ auto results = new UFormattedNumberData();
if (results == nullptr) {
status = U_MEMORY_ALLOCATION_ERROR;
return FormattedNumber(status);
}
results->quantity.setToLong(value);
- return formatImpl(results, status);
+ formatImpl(results, status);
+
+ // Do not save the results object if we encountered a failure.
+ if (U_SUCCESS(status)) {
+ return FormattedNumber(results);
+ } else {
+ delete results;
+ return FormattedNumber(status);
+ }
}
-FormattedNumber LocalizedNumberFormatter::formatDouble(double value, UErrorCode &status) const {
+FormattedNumber LocalizedNumberFormatter::formatDouble(double value, UErrorCode& status) const {
if (U_FAILURE(status)) { return FormattedNumber(U_ILLEGAL_ARGUMENT_ERROR); }
- auto results = new NumberFormatterResults();
+ auto results = new UFormattedNumberData();
if (results == nullptr) {
status = U_MEMORY_ALLOCATION_ERROR;
return FormattedNumber(status);
}
results->quantity.setToDouble(value);
- return formatImpl(results, status);
+ formatImpl(results, status);
+
+ // Do not save the results object if we encountered a failure.
+ if (U_SUCCESS(status)) {
+ return FormattedNumber(results);
+ } else {
+ delete results;
+ return FormattedNumber(status);
+ }
}
-FormattedNumber LocalizedNumberFormatter::formatDecimal(StringPiece value, UErrorCode &status) const {
+FormattedNumber LocalizedNumberFormatter::formatDecimal(StringPiece value, UErrorCode& status) const {
if (U_FAILURE(status)) { return FormattedNumber(U_ILLEGAL_ARGUMENT_ERROR); }
- auto results = new NumberFormatterResults();
+ auto results = new UFormattedNumberData();
if (results == nullptr) {
status = U_MEMORY_ALLOCATION_ERROR;
return FormattedNumber(status);
}
- results->quantity.setToDecNumber(value);
- return formatImpl(results, status);
+ results->quantity.setToDecNumber(value, status);
+ formatImpl(results, status);
+
+ // Do not save the results object if we encountered a failure.
+ if (U_SUCCESS(status)) {
+ return FormattedNumber(results);
+ } else {
+ delete results;
+ return FormattedNumber(status);
+ }
}
FormattedNumber
-LocalizedNumberFormatter::formatImpl(impl::NumberFormatterResults *results, UErrorCode &status) const {
+LocalizedNumberFormatter::formatDecimalQuantity(const DecimalQuantity& dq, UErrorCode& status) const {
+ if (U_FAILURE(status)) { return FormattedNumber(U_ILLEGAL_ARGUMENT_ERROR); }
+ auto results = new UFormattedNumberData();
+ if (results == nullptr) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return FormattedNumber(status);
+ }
+ results->quantity = dq;
+ formatImpl(results, status);
+
+ // Do not save the results object if we encountered a failure.
+ if (U_SUCCESS(status)) {
+ return FormattedNumber(results);
+ } else {
+ delete results;
+ return FormattedNumber(status);
+ }
+}
+
+void LocalizedNumberFormatter::formatImpl(impl::UFormattedNumberData* results, UErrorCode& status) const {
+ if (computeCompiled(status)) {
+ fCompiled->format(results->quantity, results->string, status);
+ } else {
+ NumberFormatterImpl::formatStatic(fMacros, results->quantity, results->string, status);
+ }
+}
+
+void LocalizedNumberFormatter::getAffixImpl(bool isPrefix, bool isNegative, UnicodeString& result,
+ UErrorCode& status) const {
+ NumberStringBuilder string;
+ auto signum = static_cast<int8_t>(isNegative ? -1 : 1);
+ // Always return affixes for plural form OTHER.
+ static const StandardPlural::Form plural = StandardPlural::OTHER;
+ int32_t prefixLength;
+ if (computeCompiled(status)) {
+ prefixLength = fCompiled->getPrefixSuffix(signum, plural, string, status);
+ } else {
+ prefixLength = NumberFormatterImpl::getPrefixSuffixStatic(fMacros, signum, plural, string, status);
+ }
+ result.remove();
+ if (isPrefix) {
+ result.append(string.toTempUnicodeString().tempSubStringBetween(0, prefixLength));
+ } else {
+ result.append(string.toTempUnicodeString().tempSubStringBetween(prefixLength, string.length()));
+ }
+}
+
+bool LocalizedNumberFormatter::computeCompiled(UErrorCode& status) const {
// fUnsafeCallCount contains memory to be interpreted as an atomic int, most commonly
// std::atomic<int32_t>. Since the type of atomic int is platform-dependent, we cast the
// bytes in fUnsafeCallCount to u_atomic_int32_t, a typedef for the platform-dependent
// atomic int type defined in umutex.h.
- static_assert(sizeof(u_atomic_int32_t) <= sizeof(fUnsafeCallCount),
- "Atomic integer size on this platform exceeds the size allocated by fUnsafeCallCount");
- u_atomic_int32_t* callCount = reinterpret_cast<u_atomic_int32_t*>(
- const_cast<LocalizedNumberFormatter*>(this)->fUnsafeCallCount);
+ static_assert(
+ sizeof(u_atomic_int32_t) <= sizeof(fUnsafeCallCount),
+ "Atomic integer size on this platform exceeds the size allocated by fUnsafeCallCount");
+ auto* callCount = reinterpret_cast<u_atomic_int32_t*>(
+ const_cast<LocalizedNumberFormatter*>(this)->fUnsafeCallCount);
// A positive value in the atomic int indicates that the data structure is not yet ready;
// a negative value indicates that it is ready. If, after the increment, the atomic int
@@ -325,64 +715,148 @@ LocalizedNumberFormatter::formatImpl(impl::NumberFormatterResults *results, UErr
if (currentCount == fMacros.threshold && fMacros.threshold > 0) {
// Build the data structure and then use it (slow to fast path).
- const NumberFormatterImpl* compiled =
- NumberFormatterImpl::fromMacros(fMacros, status);
+ const NumberFormatterImpl* compiled = new NumberFormatterImpl(fMacros, status);
+ if (compiled == nullptr) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return false;
+ }
U_ASSERT(fCompiled == nullptr);
- const_cast<LocalizedNumberFormatter *>(this)->fCompiled = compiled;
+ const_cast<LocalizedNumberFormatter*>(this)->fCompiled = compiled;
umtx_storeRelease(*callCount, INT32_MIN);
- compiled->apply(results->quantity, results->string, status);
+ return true;
} else if (currentCount < 0) {
// The data structure is already built; use it (fast path).
U_ASSERT(fCompiled != nullptr);
- fCompiled->apply(results->quantity, results->string, status);
+ return true;
} else {
// Format the number without building the data structure (slow path).
- NumberFormatterImpl::applyStatic(fMacros, results->quantity, results->string, status);
+ return false;
}
+}
- // Do not save the results object if we encountered a failure.
- if (U_SUCCESS(status)) {
- return FormattedNumber(results);
- } else {
- delete results;
- return FormattedNumber(status);
- }
+const impl::NumberFormatterImpl* LocalizedNumberFormatter::getCompiled() const {
+ return fCompiled;
+}
+
+int32_t LocalizedNumberFormatter::getCallCount() const {
+ auto* callCount = reinterpret_cast<u_atomic_int32_t*>(
+ const_cast<LocalizedNumberFormatter*>(this)->fUnsafeCallCount);
+ return umtx_loadAcquire(*callCount);
+}
+
+Format* LocalizedNumberFormatter::toFormat(UErrorCode& status) const {
+ LocalPointer<LocalizedNumberFormatterAsFormat> retval(
+ new LocalizedNumberFormatterAsFormat(*this, fMacros.locale), status);
+ return retval.orphan();
+}
+
+
+FormattedNumber::FormattedNumber(FormattedNumber&& src) U_NOEXCEPT
+ : fResults(src.fResults), fErrorCode(src.fErrorCode) {
+ // Disown src.fResults to prevent double-deletion
+ src.fResults = nullptr;
+ src.fErrorCode = U_INVALID_STATE_ERROR;
+}
+
+FormattedNumber& FormattedNumber::operator=(FormattedNumber&& src) U_NOEXCEPT {
+ delete fResults;
+ fResults = src.fResults;
+ fErrorCode = src.fErrorCode;
+ // Disown src.fResults to prevent double-deletion
+ src.fResults = nullptr;
+ src.fErrorCode = U_INVALID_STATE_ERROR;
+ return *this;
}
UnicodeString FormattedNumber::toString() const {
+ UErrorCode localStatus = U_ZERO_ERROR;
+ return toString(localStatus);
+}
+
+UnicodeString FormattedNumber::toString(UErrorCode& status) const {
+ if (U_FAILURE(status)) {
+ return ICU_Utility::makeBogusString();
+ }
if (fResults == nullptr) {
- // TODO: http://bugs.icu-project.org/trac/ticket/13437
- return {};
+ status = fErrorCode;
+ return ICU_Utility::makeBogusString();
}
return fResults->string.toUnicodeString();
}
-Appendable &FormattedNumber::appendTo(Appendable &appendable) {
+Appendable& FormattedNumber::appendTo(Appendable& appendable) {
+ UErrorCode localStatus = U_ZERO_ERROR;
+ return appendTo(appendable, localStatus);
+}
+
+Appendable& FormattedNumber::appendTo(Appendable& appendable, UErrorCode& status) const {
+ if (U_FAILURE(status)) {
+ return appendable;
+ }
if (fResults == nullptr) {
- // TODO: http://bugs.icu-project.org/trac/ticket/13437
+ status = fErrorCode;
return appendable;
}
appendable.appendString(fResults->string.chars(), fResults->string.length());
return appendable;
}
-void FormattedNumber::populateFieldPosition(FieldPosition &fieldPosition, UErrorCode &status) {
- if (U_FAILURE(status)) { return; }
+void FormattedNumber::populateFieldPosition(FieldPosition& fieldPosition, UErrorCode& status) {
+ if (U_FAILURE(status)) {
+ return;
+ }
+ if (fResults == nullptr) {
+ status = fErrorCode;
+ return;
+ }
+ // in case any users were depending on the old behavior:
+ fieldPosition.setBeginIndex(0);
+ fieldPosition.setEndIndex(0);
+ fResults->string.nextFieldPosition(fieldPosition, status);
+}
+
+UBool FormattedNumber::nextFieldPosition(FieldPosition& fieldPosition, UErrorCode& status) const {
+ if (U_FAILURE(status)) {
+ return FALSE;
+ }
+ if (fResults == nullptr) {
+ status = fErrorCode;
+ return FALSE;
+ }
+ // NOTE: MSVC sometimes complains when implicitly converting between bool and UBool
+ return fResults->string.nextFieldPosition(fieldPosition, status) ? TRUE : FALSE;
+}
+
+void FormattedNumber::populateFieldPositionIterator(FieldPositionIterator& iterator, UErrorCode& status) {
+ getAllFieldPositions(iterator, status);
+}
+
+void FormattedNumber::getAllFieldPositions(FieldPositionIterator& iterator, UErrorCode& status) const {
+ FieldPositionIteratorHandler fpih(&iterator, status);
+ getAllFieldPositionsImpl(fpih, status);
+}
+
+void FormattedNumber::getAllFieldPositionsImpl(FieldPositionIteratorHandler& fpih,
+ UErrorCode& status) const {
+ if (U_FAILURE(status)) {
+ return;
+ }
if (fResults == nullptr) {
status = fErrorCode;
return;
}
- fResults->string.populateFieldPosition(fieldPosition, 0, status);
+ fResults->string.getAllFieldPositions(fpih, status);
}
-void
-FormattedNumber::populateFieldPositionIterator(FieldPositionIterator &iterator, UErrorCode &status) {
- if (U_FAILURE(status)) { return; }
+void FormattedNumber::getDecimalQuantity(DecimalQuantity& output, UErrorCode& status) const {
+ if (U_FAILURE(status)) {
+ return;
+ }
if (fResults == nullptr) {
status = fErrorCode;
return;
}
- fResults->string.populateFieldPositionIterator(iterator, status);
+ output = fResults->quantity;
}
FormattedNumber::~FormattedNumber() {
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_formatimpl.cpp b/Build/source/libs/icu/icu-src/source/i18n/number_formatimpl.cpp
index bc96cb15dab..60c18ee284e 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/number_formatimpl.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_formatimpl.cpp
@@ -3,7 +3,7 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
#include "cstring.h"
#include "unicode/ures.h"
@@ -26,88 +26,28 @@ using namespace icu::number::impl;
namespace {
-// NOTE: In Java, the method to get a pattern from the resource bundle exists in NumberFormat.
-// In C++, we have to implement that logic here.
-// TODO: Make Java and C++ consistent?
-
-enum CldrPatternStyle {
- CLDR_PATTERN_STYLE_DECIMAL,
- CLDR_PATTERN_STYLE_CURRENCY,
- CLDR_PATTERN_STYLE_ACCOUNTING,
- CLDR_PATTERN_STYLE_PERCENT
- // TODO: Consider scientific format.
-};
-
-const char16_t *
-doGetPattern(UResourceBundle *res, const char *nsName, const char *patternKey, UErrorCode &publicStatus,
- UErrorCode &localStatus) {
- // Construct the path into the resource bundle
- CharString key;
- key.append("NumberElements/", publicStatus);
- key.append(nsName, publicStatus);
- key.append("/patterns/", publicStatus);
- key.append(patternKey, publicStatus);
- if (U_FAILURE(publicStatus)) {
- return u"";
- }
- return ures_getStringByKeyWithFallback(res, key.data(), nullptr, &localStatus);
-}
-
-const char16_t *getPatternForStyle(const Locale &locale, const char *nsName, CldrPatternStyle style,
- UErrorCode &status) {
- const char *patternKey;
- switch (style) {
- case CLDR_PATTERN_STYLE_DECIMAL:
- patternKey = "decimalFormat";
- break;
- case CLDR_PATTERN_STYLE_CURRENCY:
- patternKey = "currencyFormat";
- break;
- case CLDR_PATTERN_STYLE_ACCOUNTING:
- patternKey = "accountingFormat";
- break;
- case CLDR_PATTERN_STYLE_PERCENT:
- default:
- patternKey = "percentFormat";
- break;
- }
- LocalUResourceBundlePointer res(ures_open(nullptr, locale.getName(), &status));
- if (U_FAILURE(status)) { return u""; }
-
- // Attempt to get the pattern with the native numbering system.
- UErrorCode localStatus = U_ZERO_ERROR;
- const char16_t *pattern;
- pattern = doGetPattern(res.getAlias(), nsName, patternKey, status, localStatus);
- if (U_FAILURE(status)) { return u""; }
-
- // Fall back to latn if native numbering system does not have the right pattern
- if (U_FAILURE(localStatus) && uprv_strcmp("latn", nsName) != 0) {
- localStatus = U_ZERO_ERROR;
- pattern = doGetPattern(res.getAlias(), "latn", patternKey, status, localStatus);
- if (U_FAILURE(status)) { return u""; }
- }
-
- return pattern;
-}
-
struct CurrencyFormatInfoResult {
bool exists;
const char16_t* pattern;
const char16_t* decimalSeparator;
const char16_t* groupingSeparator;
};
-CurrencyFormatInfoResult getCurrencyFormatInfo(const Locale& locale, const char* isoCode, UErrorCode& status) {
+
+CurrencyFormatInfoResult
+getCurrencyFormatInfo(const Locale& locale, const char* isoCode, UErrorCode& status) {
// TODO: Load this data in a centralized location like ICU4J?
+ // TODO: Move this into the CurrencySymbols class?
// TODO: Parts of this same data are loaded in dcfmtsym.cpp; should clean up.
- CurrencyFormatInfoResult result = { false, nullptr, nullptr, nullptr };
- if (U_FAILURE(status)) return result;
+ CurrencyFormatInfoResult result = {false, nullptr, nullptr, nullptr};
+ if (U_FAILURE(status)) { return result; }
CharString key;
key.append("Currencies/", status);
key.append(isoCode, status);
UErrorCode localStatus = status;
LocalUResourceBundlePointer bundle(ures_open(U_ICUDATA_CURR, locale.getName(), &localStatus));
ures_getByKeyWithFallback(bundle.getAlias(), key.data(), bundle.getAlias(), &localStatus);
- if (U_SUCCESS(localStatus) && ures_getSize(bundle.getAlias())>2) { // the length is 3 if more data is present
+ if (U_SUCCESS(localStatus) &&
+ ures_getSize(bundle.getAlias()) > 2) { // the length is 3 if more data is present
ures_getByIndex(bundle.getAlias(), 2, bundle.getAlias(), &localStatus);
int32_t dummy;
result.exists = true;
@@ -121,32 +61,31 @@ CurrencyFormatInfoResult getCurrencyFormatInfo(const Locale& locale, const char*
return result;
}
-inline bool unitIsCurrency(const MeasureUnit &unit) {
- return uprv_strcmp("currency", unit.getType()) == 0;
-}
+} // namespace
-inline bool unitIsNoUnit(const MeasureUnit &unit) {
- return uprv_strcmp("none", unit.getType()) == 0;
-}
-inline bool unitIsPercent(const MeasureUnit &unit) {
- return uprv_strcmp("percent", unit.getSubtype()) == 0;
-}
+MicroPropsGenerator::~MicroPropsGenerator() = default;
-inline bool unitIsPermille(const MeasureUnit &unit) {
- return uprv_strcmp("permille", unit.getSubtype()) == 0;
-}
-} // namespace
+NumberFormatterImpl::NumberFormatterImpl(const MacroProps& macros, UErrorCode& status)
+ : NumberFormatterImpl(macros, true, status) {
+}
-NumberFormatterImpl *NumberFormatterImpl::fromMacros(const MacroProps &macros, UErrorCode &status) {
- return new NumberFormatterImpl(macros, true, status);
+int32_t NumberFormatterImpl::formatStatic(const MacroProps& macros, DecimalQuantity& inValue,
+ NumberStringBuilder& outString, UErrorCode& status) {
+ NumberFormatterImpl impl(macros, false, status);
+ MicroProps& micros = impl.preProcessUnsafe(inValue, status);
+ if (U_FAILURE(status)) { return 0; }
+ int32_t length = writeNumber(micros, inValue, outString, 0, status);
+ length += writeAffixes(micros, outString, 0, length, status);
+ return length;
}
-void NumberFormatterImpl::applyStatic(const MacroProps &macros, DecimalQuantity &inValue,
- NumberStringBuilder &outString, UErrorCode &status) {
+int32_t NumberFormatterImpl::getPrefixSuffixStatic(const MacroProps& macros, int8_t signum,
+ StandardPlural::Form plural,
+ NumberStringBuilder& outString, UErrorCode& status) {
NumberFormatterImpl impl(macros, false, status);
- impl.applyUnsafe(inValue, outString, status);
+ return impl.getPrefixSuffixUnsafe(signum, plural, outString, status);
}
// NOTE: C++ SPECIFIC DIFFERENCE FROM JAVA:
@@ -154,32 +93,74 @@ void NumberFormatterImpl::applyStatic(const MacroProps &macros, DecimalQuantity
// The "unsafe" method simply re-uses fMicros, eliminating the extra copy operation.
// See MicroProps::processQuantity() for details.
-void NumberFormatterImpl::apply(DecimalQuantity &inValue, NumberStringBuilder &outString,
- UErrorCode &status) const {
- if (U_FAILURE(status)) { return; }
+int32_t NumberFormatterImpl::format(DecimalQuantity& inValue, NumberStringBuilder& outString,
+ UErrorCode& status) const {
MicroProps micros;
- fMicroPropsGenerator->processQuantity(inValue, micros, status);
- if (U_FAILURE(status)) { return; }
- microsToString(micros, inValue, outString, status);
+ preProcess(inValue, micros, status);
+ if (U_FAILURE(status)) { return 0; }
+ int32_t length = writeNumber(micros, inValue, outString, 0, status);
+ length += writeAffixes(micros, outString, 0, length, status);
+ return length;
}
-void NumberFormatterImpl::applyUnsafe(DecimalQuantity &inValue, NumberStringBuilder &outString,
- UErrorCode &status) {
+void NumberFormatterImpl::preProcess(DecimalQuantity& inValue, MicroProps& microsOut,
+ UErrorCode& status) const {
if (U_FAILURE(status)) { return; }
+ if (fMicroPropsGenerator == nullptr) {
+ status = U_INTERNAL_PROGRAM_ERROR;
+ return;
+ }
+ fMicroPropsGenerator->processQuantity(inValue, microsOut, status);
+ microsOut.rounder.apply(inValue, status);
+ microsOut.integerWidth.apply(inValue, status);
+}
+
+MicroProps& NumberFormatterImpl::preProcessUnsafe(DecimalQuantity& inValue, UErrorCode& status) {
+ if (U_FAILURE(status)) {
+ return fMicros; // must always return a value
+ }
+ if (fMicroPropsGenerator == nullptr) {
+ status = U_INTERNAL_PROGRAM_ERROR;
+ return fMicros; // must always return a value
+ }
fMicroPropsGenerator->processQuantity(inValue, fMicros, status);
- if (U_FAILURE(status)) { return; }
- microsToString(fMicros, inValue, outString, status);
+ fMicros.rounder.apply(inValue, status);
+ fMicros.integerWidth.apply(inValue, status);
+ return fMicros;
}
-NumberFormatterImpl::NumberFormatterImpl(const MacroProps &macros, bool safe, UErrorCode &status) {
+int32_t NumberFormatterImpl::getPrefixSuffix(int8_t signum, StandardPlural::Form plural,
+ NumberStringBuilder& outString, UErrorCode& status) const {
+ if (U_FAILURE(status)) { return 0; }
+ // #13453: DecimalFormat wants the affixes from the pattern only (modMiddle, aka pattern modifier).
+ // Safe path: use fImmutablePatternModifier.
+ const Modifier* modifier = fImmutablePatternModifier->getModifier(signum, plural);
+ modifier->apply(outString, 0, 0, status);
+ if (U_FAILURE(status)) { return 0; }
+ return modifier->getPrefixLength();
+}
+
+int32_t NumberFormatterImpl::getPrefixSuffixUnsafe(int8_t signum, StandardPlural::Form plural,
+ NumberStringBuilder& outString, UErrorCode& status) {
+ if (U_FAILURE(status)) { return 0; }
+ // #13453: DecimalFormat wants the affixes from the pattern only (modMiddle, aka pattern modifier).
+ // Unsafe path: use fPatternModifier.
+ fPatternModifier->setNumberProperties(signum, plural);
+ fPatternModifier->apply(outString, 0, 0, status);
+ if (U_FAILURE(status)) { return 0; }
+ return fPatternModifier->getPrefixLength();
+}
+
+NumberFormatterImpl::NumberFormatterImpl(const MacroProps& macros, bool safe, UErrorCode& status) {
fMicroPropsGenerator = macrosToMicroGenerator(macros, safe, status);
}
//////////
-const MicroPropsGenerator *
-NumberFormatterImpl::macrosToMicroGenerator(const MacroProps &macros, bool safe, UErrorCode &status) {
- const MicroPropsGenerator *chain = &fMicros;
+const MicroPropsGenerator*
+NumberFormatterImpl::macrosToMicroGenerator(const MacroProps& macros, bool safe, UErrorCode& status) {
+ if (U_FAILURE(status)) { return nullptr; }
+ const MicroPropsGenerator* chain = &fMicros;
// Check that macros is error-free before continuing.
if (macros.copyErrorTo(status)) {
@@ -189,18 +170,26 @@ NumberFormatterImpl::macrosToMicroGenerator(const MacroProps &macros, bool safe,
// TODO: Accept currency symbols from DecimalFormatSymbols?
// Pre-compute a few values for efficiency.
- bool isCurrency = unitIsCurrency(macros.unit);
- bool isNoUnit = unitIsNoUnit(macros.unit);
- bool isPercent = isNoUnit && unitIsPercent(macros.unit);
- bool isPermille = isNoUnit && unitIsPermille(macros.unit);
+ bool isCurrency = utils::unitIsCurrency(macros.unit);
+ bool isNoUnit = utils::unitIsNoUnit(macros.unit);
+ bool isPercent = isNoUnit && utils::unitIsPercent(macros.unit);
+ bool isPermille = isNoUnit && utils::unitIsPermille(macros.unit);
bool isCldrUnit = !isCurrency && !isNoUnit;
- bool isAccounting = macros.sign == UNUM_SIGN_ACCOUNTING
- || macros.sign == UNUM_SIGN_ACCOUNTING_ALWAYS
- || macros.sign == UNUM_SIGN_ACCOUNTING_EXCEPT_ZERO;
- CurrencyUnit currency(kDefaultCurrency, status);
+ bool isAccounting =
+ macros.sign == UNUM_SIGN_ACCOUNTING || macros.sign == UNUM_SIGN_ACCOUNTING_ALWAYS ||
+ macros.sign == UNUM_SIGN_ACCOUNTING_EXCEPT_ZERO;
+ CurrencyUnit currency(nullptr, status);
if (isCurrency) {
currency = CurrencyUnit(macros.unit, status); // Restore CurrencyUnit from MeasureUnit
}
+ const CurrencySymbols* currencySymbols;
+ if (macros.currencySymbols != nullptr) {
+ // Used by the DecimalFormat code path
+ currencySymbols = macros.currencySymbols;
+ } else {
+ fWarehouse.fCurrencySymbols = {currency, macros.locale, status};
+ currencySymbols = &fWarehouse.fCurrencySymbols;
+ }
UNumberUnitWidth unitWidth = UNUM_UNIT_WIDTH_SHORT;
if (macros.unitWidth != UNUM_UNIT_WIDTH_COUNT) {
unitWidth = macros.unitWidth;
@@ -208,7 +197,7 @@ NumberFormatterImpl::macrosToMicroGenerator(const MacroProps &macros, bool safe,
// Select the numbering system.
LocalPointer<const NumberingSystem> nsLocal;
- const NumberingSystem *ns;
+ const NumberingSystem* ns;
if (macros.symbols.isNumberingSystem()) {
ns = macros.symbols.getNumberingSystem();
} else {
@@ -217,7 +206,7 @@ NumberFormatterImpl::macrosToMicroGenerator(const MacroProps &macros, bool safe,
// Give ownership to the function scope.
nsLocal.adoptInstead(ns);
}
- const char *nsName = U_SUCCESS(status) ? ns->getName() : "latn";
+ const char* nsName = U_SUCCESS(status) ? ns->getName() : "latn";
// Resolve the symbols. Do this here because currency may need to customize them.
if (macros.symbols.isDecimalFormatSymbols()) {
@@ -232,21 +221,22 @@ NumberFormatterImpl::macrosToMicroGenerator(const MacroProps &macros, bool safe,
// If we are formatting currency, check for a currency-specific pattern.
const char16_t* pattern = nullptr;
if (isCurrency) {
- CurrencyFormatInfoResult info = getCurrencyFormatInfo(macros.locale, currency.getSubtype(), status);
+ CurrencyFormatInfoResult info = getCurrencyFormatInfo(
+ macros.locale, currency.getSubtype(), status);
if (info.exists) {
pattern = info.pattern;
// It's clunky to clone an object here, but this code is not frequently executed.
- DecimalFormatSymbols* symbols = new DecimalFormatSymbols(*fMicros.symbols);
+ auto* symbols = new DecimalFormatSymbols(*fMicros.symbols);
fMicros.symbols = symbols;
fSymbols.adoptInstead(symbols);
symbols->setSymbol(
- DecimalFormatSymbols::ENumberFormatSymbol::kMonetarySeparatorSymbol,
- UnicodeString(info.decimalSeparator),
- FALSE);
+ DecimalFormatSymbols::ENumberFormatSymbol::kMonetarySeparatorSymbol,
+ UnicodeString(info.decimalSeparator),
+ FALSE);
symbols->setSymbol(
- DecimalFormatSymbols::ENumberFormatSymbol::kMonetaryGroupingSeparatorSymbol,
- UnicodeString(info.groupingSeparator),
- FALSE);
+ DecimalFormatSymbols::ENumberFormatSymbol::kMonetaryGroupingSeparatorSymbol,
+ UnicodeString(info.groupingSeparator),
+ FALSE);
}
}
if (pattern == nullptr) {
@@ -262,7 +252,7 @@ NumberFormatterImpl::macrosToMicroGenerator(const MacroProps &macros, bool safe,
} else {
patternStyle = CLDR_PATTERN_STYLE_CURRENCY;
}
- pattern = getPatternForStyle(macros.locale, nsName, patternStyle, status);
+ pattern = utils::getPatternForStyle(macros.locale, nsName, patternStyle, status);
}
auto patternInfo = new ParsedPatternInfo();
fPatternInfo.adoptInstead(patternInfo);
@@ -272,17 +262,31 @@ NumberFormatterImpl::macrosToMicroGenerator(const MacroProps &macros, bool safe,
/// START POPULATING THE DEFAULT MICROPROPS AND BUILDING THE MICROPROPS GENERATOR ///
/////////////////////////////////////////////////////////////////////////////////////
+ // Multiplier
+ if (macros.scale.isValid()) {
+ fMicros.helpers.multiplier.setAndChain(macros.scale, chain);
+ chain = &fMicros.helpers.multiplier;
+ }
+
// Rounding strategy
- if (!macros.rounder.isBogus()) {
- fMicros.rounding = macros.rounder;
+ Precision precision;
+ if (!macros.precision.isBogus()) {
+ precision = macros.precision;
} else if (macros.notation.fType == Notation::NTN_COMPACT) {
- fMicros.rounding = Rounder::integer().withMinDigits(2);
+ precision = Precision::integer().withMinDigits(2);
} else if (isCurrency) {
- fMicros.rounding = Rounder::currency(UCURR_USAGE_STANDARD);
+ precision = Precision::currency(UCURR_USAGE_STANDARD);
+ } else {
+ precision = Precision::maxFraction(6);
+ }
+ UNumberFormatRoundingMode roundingMode;
+ if (macros.roundingMode != kDefaultMode) {
+ roundingMode = macros.roundingMode;
} else {
- fMicros.rounding = Rounder::maxFraction(6);
+ // Temporary until ICU 64
+ roundingMode = precision.fRoundingMode;
}
- fMicros.rounding.setLocaleData(currency, status);
+ fMicros.rounder = {precision, roundingMode, currency, status};
// Grouping strategy
if (!macros.grouper.isBogus()) {
@@ -306,7 +310,7 @@ NumberFormatterImpl::macrosToMicroGenerator(const MacroProps &macros, bool safe,
if (!macros.integerWidth.isBogus()) {
fMicros.integerWidth = macros.integerWidth;
} else {
- fMicros.integerWidth = IntegerWidth::zeroFillTo(1);
+ fMicros.integerWidth = IntegerWidth::standard();
}
// Sign display
@@ -338,16 +342,18 @@ NumberFormatterImpl::macrosToMicroGenerator(const MacroProps &macros, bool safe,
// Middle modifier (patterns, positive/negative, currency symbols, percent)
auto patternModifier = new MutablePatternModifier(false);
fPatternModifier.adoptInstead(patternModifier);
- patternModifier->setPatternInfo(fPatternInfo.getAlias());
+ patternModifier->setPatternInfo(
+ macros.affixProvider != nullptr ? macros.affixProvider
+ : static_cast<const AffixPatternProvider*>(fPatternInfo.getAlias()));
patternModifier->setPatternAttributes(fMicros.sign, isPermille);
if (patternModifier->needsPlurals()) {
patternModifier->setSymbols(
fMicros.symbols,
- currency,
+ currencySymbols,
unitWidth,
resolvePluralRules(macros.rules, macros.locale, status));
} else {
- patternModifier->setSymbols(fMicros.symbols, currency, unitWidth, nullptr);
+ patternModifier->setSymbols(fMicros.symbols, currencySymbols, unitWidth, nullptr);
}
if (safe) {
fImmutablePatternModifier.adoptInstead(patternModifier->createImmutableAndChain(chain, status));
@@ -360,25 +366,23 @@ NumberFormatterImpl::macrosToMicroGenerator(const MacroProps &macros, bool safe,
// Outer modifier (CLDR units and currency long names)
if (isCldrUnit) {
fLongNameHandler.adoptInstead(
- new LongNameHandler(
- LongNameHandler::forMeasureUnit(
- macros.locale,
- macros.unit,
- macros.perUnit,
- unitWidth,
- resolvePluralRules(macros.rules, macros.locale, status),
- chain,
- status)));
+ LongNameHandler::forMeasureUnit(
+ macros.locale,
+ macros.unit,
+ macros.perUnit,
+ unitWidth,
+ resolvePluralRules(macros.rules, macros.locale, status),
+ chain,
+ status));
chain = fLongNameHandler.getAlias();
} else if (isCurrency && unitWidth == UNUM_UNIT_WIDTH_FULL_NAME) {
fLongNameHandler.adoptInstead(
- new LongNameHandler(
- LongNameHandler::forCurrencyLongNames(
- macros.locale,
- currency,
- resolvePluralRules(macros.rules, macros.locale, status),
- chain,
- status)));
+ LongNameHandler::forCurrencyLongNames(
+ macros.locale,
+ currency,
+ resolvePluralRules(macros.rules, macros.locale, status),
+ chain,
+ status));
chain = fLongNameHandler.getAlias();
} else {
// No outer modifier required
@@ -407,9 +411,9 @@ NumberFormatterImpl::macrosToMicroGenerator(const MacroProps &macros, bool safe,
return chain;
}
-const PluralRules *
-NumberFormatterImpl::resolvePluralRules(const PluralRules *rulesPtr, const Locale &locale,
- UErrorCode &status) {
+const PluralRules*
+NumberFormatterImpl::resolvePluralRules(const PluralRules* rulesPtr, const Locale& locale,
+ UErrorCode& status) {
if (rulesPtr != nullptr) {
return rulesPtr;
}
@@ -420,50 +424,46 @@ NumberFormatterImpl::resolvePluralRules(const PluralRules *rulesPtr, const Local
return fRules.getAlias();
}
-int32_t NumberFormatterImpl::microsToString(const MicroProps &micros, DecimalQuantity &quantity,
- NumberStringBuilder &string, UErrorCode &status) {
- micros.rounding.apply(quantity, status);
- micros.integerWidth.apply(quantity, status);
- int32_t length = writeNumber(micros, quantity, string, status);
- // NOTE: When range formatting is added, these modifiers can bubble up.
- // For now, apply them all here at once.
+int32_t NumberFormatterImpl::writeAffixes(const MicroProps& micros, NumberStringBuilder& string,
+ int32_t start, int32_t end, UErrorCode& status) {
// Always apply the inner modifier (which is "strong").
- length += micros.modInner->apply(string, 0, length, status);
+ int32_t length = micros.modInner->apply(string, start, end, status);
if (micros.padding.isValid()) {
length += micros.padding
- .padAndApply(*micros.modMiddle, *micros.modOuter, string, 0, length, status);
+ .padAndApply(*micros.modMiddle, *micros.modOuter, string, start, length + end, status);
} else {
- length += micros.modMiddle->apply(string, 0, length, status);
- length += micros.modOuter->apply(string, 0, length, status);
+ length += micros.modMiddle->apply(string, start, length + end, status);
+ length += micros.modOuter->apply(string, start, length + end, status);
}
return length;
}
-int32_t NumberFormatterImpl::writeNumber(const MicroProps &micros, DecimalQuantity &quantity,
- NumberStringBuilder &string, UErrorCode &status) {
+int32_t NumberFormatterImpl::writeNumber(const MicroProps& micros, DecimalQuantity& quantity,
+ NumberStringBuilder& string, int32_t index,
+ UErrorCode& status) {
int32_t length = 0;
if (quantity.isInfinite()) {
length += string.insert(
- length,
+ length + index,
micros.symbols->getSymbol(DecimalFormatSymbols::ENumberFormatSymbol::kInfinitySymbol),
UNUM_INTEGER_FIELD,
status);
} else if (quantity.isNaN()) {
length += string.insert(
- length,
+ length + index,
micros.symbols->getSymbol(DecimalFormatSymbols::ENumberFormatSymbol::kNaNSymbol),
UNUM_INTEGER_FIELD,
status);
} else {
// Add the integer digits
- length += writeIntegerDigits(micros, quantity, string, status);
+ length += writeIntegerDigits(micros, quantity, string, length + index, status);
// Add the decimal point
if (quantity.getLowerDisplayMagnitude() < 0 || micros.decimal == UNUM_DECIMAL_SEPARATOR_ALWAYS) {
length += string.insert(
- length,
+ length + index,
micros.useCurrency ? micros.symbols->getSymbol(
DecimalFormatSymbols::ENumberFormatSymbol::kMonetarySeparatorSymbol) : micros
.symbols
@@ -474,21 +474,22 @@ int32_t NumberFormatterImpl::writeNumber(const MicroProps &micros, DecimalQuanti
}
// Add the fraction digits
- length += writeFractionDigits(micros, quantity, string, status);
+ length += writeFractionDigits(micros, quantity, string, length + index, status);
}
return length;
}
-int32_t NumberFormatterImpl::writeIntegerDigits(const MicroProps &micros, DecimalQuantity &quantity,
- NumberStringBuilder &string, UErrorCode &status) {
+int32_t NumberFormatterImpl::writeIntegerDigits(const MicroProps& micros, DecimalQuantity& quantity,
+ NumberStringBuilder& string, int32_t index,
+ UErrorCode& status) {
int length = 0;
int integerCount = quantity.getUpperDisplayMagnitude() + 1;
for (int i = 0; i < integerCount; i++) {
// Add grouping separator
if (micros.grouping.groupAtPosition(i, quantity)) {
length += string.insert(
- 0,
+ index,
micros.useCurrency ? micros.symbols->getSymbol(
DecimalFormatSymbols::ENumberFormatSymbol::kMonetaryGroupingSeparatorSymbol)
: micros.symbols->getSymbol(
@@ -499,21 +500,22 @@ int32_t NumberFormatterImpl::writeIntegerDigits(const MicroProps &micros, Decima
// Get and append the next digit value
int8_t nextDigit = quantity.getDigit(i);
- length += string.insert(
- 0, getDigitFromSymbols(nextDigit, *micros.symbols), UNUM_INTEGER_FIELD, status);
+ length += utils::insertDigitFromSymbols(
+ string, index, nextDigit, *micros.symbols, UNUM_INTEGER_FIELD, status);
}
return length;
}
-int32_t NumberFormatterImpl::writeFractionDigits(const MicroProps &micros, DecimalQuantity &quantity,
- NumberStringBuilder &string, UErrorCode &status) {
+int32_t NumberFormatterImpl::writeFractionDigits(const MicroProps& micros, DecimalQuantity& quantity,
+ NumberStringBuilder& string, int32_t index,
+ UErrorCode& status) {
int length = 0;
int fractionCount = -quantity.getLowerDisplayMagnitude();
for (int i = 0; i < fractionCount; i++) {
// Get and append the next digit value
int8_t nextDigit = quantity.getDigit(-i - 1);
- length += string.append(
- getDigitFromSymbols(nextDigit, *micros.symbols), UNUM_FRACTION_FIELD, status);
+ length += utils::insertDigitFromSymbols(
+ string, length + index, nextDigit, *micros.symbols, UNUM_FRACTION_FIELD, status);
}
return length;
}
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_formatimpl.h b/Build/source/libs/icu/icu-src/source/i18n/number_formatimpl.h
index cbc04ba30df..fda38c92845 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/number_formatimpl.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_formatimpl.h
@@ -3,7 +3,7 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
#ifndef __NUMBER_FORMATIMPL_H__
#define __NUMBER_FORMATIMPL_H__
@@ -14,6 +14,7 @@
#include "number_patternmodifier.h"
#include "number_longnames.h"
#include "number_compact.h"
+#include "number_microprops.h"
U_NAMESPACE_BEGIN namespace number {
namespace impl {
@@ -28,19 +29,53 @@ class NumberFormatterImpl : public UMemory {
* Builds a "safe" MicroPropsGenerator, which is thread-safe and can be used repeatedly.
* The caller owns the returned NumberFormatterImpl.
*/
- static NumberFormatterImpl *fromMacros(const MacroProps &macros, UErrorCode &status);
+ NumberFormatterImpl(const MacroProps &macros, UErrorCode &status);
/**
* Builds and evaluates an "unsafe" MicroPropsGenerator, which is cheaper but can be used only once.
*/
- static void
- applyStatic(const MacroProps &macros, DecimalQuantity &inValue, NumberStringBuilder &outString,
- UErrorCode &status);
+ static int32_t
+ formatStatic(const MacroProps &macros, DecimalQuantity &inValue, NumberStringBuilder &outString,
+ UErrorCode &status);
+
+ /**
+ * Prints only the prefix and suffix; used for DecimalFormat getters.
+ *
+ * @return The index into the output at which the prefix ends and the suffix starts; in other words,
+ * the prefix length.
+ */
+ static int32_t getPrefixSuffixStatic(const MacroProps& macros, int8_t signum,
+ StandardPlural::Form plural, NumberStringBuilder& outString,
+ UErrorCode& status);
/**
* Evaluates the "safe" MicroPropsGenerator created by "fromMacros".
*/
- void apply(DecimalQuantity &inValue, NumberStringBuilder &outString, UErrorCode &status) const;
+ int32_t format(DecimalQuantity& inValue, NumberStringBuilder& outString, UErrorCode& status) const;
+
+ /**
+ * Like format(), but saves the result into an output MicroProps without additional processing.
+ */
+ void preProcess(DecimalQuantity& inValue, MicroProps& microsOut, UErrorCode& status) const;
+
+ /**
+ * Like getPrefixSuffixStatic() but uses the safe compiled object.
+ */
+ int32_t getPrefixSuffix(int8_t signum, StandardPlural::Form plural, NumberStringBuilder& outString,
+ UErrorCode& status) const;
+
+ /**
+ * Synthesizes the output string from a MicroProps and DecimalQuantity.
+ * This method formats only the main number, not affixes.
+ */
+ static int32_t writeNumber(const MicroProps& micros, DecimalQuantity& quantity,
+ NumberStringBuilder& string, int32_t index, UErrorCode& status);
+
+ /**
+ * Adds the affixes. Intended to be called immediately after formatNumber.
+ */
+ static int32_t writeAffixes(const MicroProps& micros, NumberStringBuilder& string, int32_t start,
+ int32_t end, UErrorCode& status);
private:
// Head of the MicroPropsGenerator linked list:
@@ -50,20 +85,28 @@ class NumberFormatterImpl : public UMemory {
MicroProps fMicros;
// Other fields possibly used by the number formatting pipeline:
- // TODO: Convert some of these LocalPointers to value objects to reduce the number of news?
+ // TODO: Convert more of these LocalPointers to value objects to reduce the number of news?
LocalPointer<const DecimalFormatSymbols> fSymbols;
LocalPointer<const PluralRules> fRules;
LocalPointer<const ParsedPatternInfo> fPatternInfo;
LocalPointer<const ScientificHandler> fScientificHandler;
- LocalPointer<const MutablePatternModifier> fPatternModifier;
+ LocalPointer<MutablePatternModifier> fPatternModifier;
LocalPointer<const ImmutablePatternModifier> fImmutablePatternModifier;
LocalPointer<const LongNameHandler> fLongNameHandler;
LocalPointer<const CompactHandler> fCompactHandler;
+ // Value objects possibly used by the number formatting pipeline:
+ struct Warehouse {
+ CurrencySymbols fCurrencySymbols;
+ } fWarehouse;
+
NumberFormatterImpl(const MacroProps &macros, bool safe, UErrorCode &status);
- void applyUnsafe(DecimalQuantity &inValue, NumberStringBuilder &outString, UErrorCode &status);
+ MicroProps& preProcessUnsafe(DecimalQuantity &inValue, UErrorCode &status);
+
+ int32_t getPrefixSuffixUnsafe(int8_t signum, StandardPlural::Form plural,
+ NumberStringBuilder& outString, UErrorCode& status);
/**
* If rulesPtr is non-null, return it. Otherwise, return a PluralRules owned by this object for the
@@ -88,31 +131,13 @@ class NumberFormatterImpl : public UMemory {
const MicroPropsGenerator *
macrosToMicroGenerator(const MacroProps &macros, bool safe, UErrorCode &status);
- /**
- * Synthesizes the output string from a MicroProps and DecimalQuantity.
- *
- * @param micros
- * The MicroProps after the quantity has been consumed. Will not be mutated.
- * @param quantity
- * The DecimalQuantity to be rendered. May be mutated.
- * @param string
- * The output string. Will be mutated.
- */
- static int32_t
- microsToString(const MicroProps &micros, DecimalQuantity &quantity, NumberStringBuilder &string,
- UErrorCode &status);
-
- static int32_t
- writeNumber(const MicroProps &micros, DecimalQuantity &quantity, NumberStringBuilder &string,
- UErrorCode &status);
-
static int32_t
writeIntegerDigits(const MicroProps &micros, DecimalQuantity &quantity, NumberStringBuilder &string,
- UErrorCode &status);
+ int32_t index, UErrorCode &status);
static int32_t
writeFractionDigits(const MicroProps &micros, DecimalQuantity &quantity, NumberStringBuilder &string,
- UErrorCode &status);
+ int32_t index, UErrorCode &status);
};
} // namespace impl
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_grouping.cpp b/Build/source/libs/icu/icu-src/source/i18n/number_grouping.cpp
index a2b1bbd6b33..da32cca99a3 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/number_grouping.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_grouping.cpp
@@ -3,7 +3,7 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
#include "unicode/numberformatter.h"
#include "number_patternstring.h"
@@ -37,20 +37,33 @@ int16_t getMinGroupingForLocale(const Locale& locale) {
Grouper Grouper::forStrategy(UGroupingStrategy grouping) {
switch (grouping) {
case UNUM_GROUPING_OFF:
- return {-1, -1, -2};
+ return {-1, -1, -2, grouping};
case UNUM_GROUPING_AUTO:
- return {-2, -2, -2};
+ return {-2, -2, -2, grouping};
case UNUM_GROUPING_MIN2:
- return {-2, -2, -3};
+ return {-2, -2, -3, grouping};
case UNUM_GROUPING_ON_ALIGNED:
- return {-4, -4, 1};
+ return {-4, -4, 1, grouping};
case UNUM_GROUPING_THOUSANDS:
- return {3, 3, 1};
+ return {3, 3, 1, grouping};
default:
U_ASSERT(FALSE);
+ return {}; // return a value: silence compiler warning
}
}
+Grouper Grouper::forProperties(const DecimalFormatProperties& properties) {
+ if (!properties.groupingUsed) {
+ return forStrategy(UNUM_GROUPING_OFF);
+ }
+ auto grouping1 = static_cast<int16_t>(properties.groupingSize);
+ auto grouping2 = static_cast<int16_t>(properties.secondaryGroupingSize);
+ auto minGrouping = static_cast<int16_t>(properties.minimumGroupingDigits);
+ grouping1 = grouping1 > 0 ? grouping1 : grouping2 > 0 ? grouping2 : grouping1;
+ grouping2 = grouping2 > 0 ? grouping2 : grouping1;
+ return {grouping1, grouping2, minGrouping, UNUM_GROUPING_COUNT};
+}
+
void Grouper::setLocaleData(const impl::ParsedPatternInfo &patternInfo, const Locale& locale) {
if (fGrouping1 != -2 && fGrouping2 != -4) {
return;
@@ -67,7 +80,7 @@ void Grouper::setLocaleData(const impl::ParsedPatternInfo &patternInfo, const Lo
if (fMinGrouping == -2) {
fMinGrouping = getMinGroupingForLocale(locale);
} else if (fMinGrouping == -3) {
- fMinGrouping = uprv_max(2, getMinGroupingForLocale(locale));
+ fMinGrouping = static_cast<int16_t>(uprv_max(2, getMinGroupingForLocale(locale)));
} else {
// leave fMinGrouping alone
}
@@ -86,4 +99,12 @@ bool Grouper::groupAtPosition(int32_t position, const impl::DecimalQuantity &val
&& value.getUpperDisplayMagnitude() - fGrouping1 + 1 >= fMinGrouping;
}
+int16_t Grouper::getPrimary() const {
+ return fGrouping1;
+}
+
+int16_t Grouper::getSecondary() const {
+ return fGrouping2;
+}
+
#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_integerwidth.cpp b/Build/source/libs/icu/icu-src/source/i18n/number_integerwidth.cpp
index 4a612273f5e..6416b292982 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/number_integerwidth.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_integerwidth.cpp
@@ -3,7 +3,7 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
#include "unicode/numberformatter.h"
#include "number_types.h"
@@ -13,14 +13,15 @@ using namespace icu;
using namespace icu::number;
using namespace icu::number::impl;
-IntegerWidth::IntegerWidth(digits_t minInt, digits_t maxInt) {
+IntegerWidth::IntegerWidth(digits_t minInt, digits_t maxInt, bool formatFailIfMoreThanMaxDigits) {
fUnion.minMaxInt.fMinInt = minInt;
fUnion.minMaxInt.fMaxInt = maxInt;
+ fUnion.minMaxInt.fFormatFailIfMoreThanMaxDigits = formatFailIfMoreThanMaxDigits;
}
IntegerWidth IntegerWidth::zeroFillTo(int32_t minInt) {
if (minInt >= 0 && minInt <= kMaxIntFracSig) {
- return {static_cast<digits_t>(minInt), -1};
+ return {static_cast<digits_t>(minInt), -1, false};
} else {
return {U_NUMBER_ARG_OUTOFBOUNDS_ERROR};
}
@@ -30,22 +31,37 @@ IntegerWidth IntegerWidth::truncateAt(int32_t maxInt) {
if (fHasError) { return *this; } // No-op on error
digits_t minInt = fUnion.minMaxInt.fMinInt;
if (maxInt >= 0 && maxInt <= kMaxIntFracSig && minInt <= maxInt) {
- return {minInt, static_cast<digits_t>(maxInt)};
+ return {minInt, static_cast<digits_t>(maxInt), false};
} else if (maxInt == -1) {
- return {minInt, -1};
+ return {minInt, -1, false};
} else {
return {U_NUMBER_ARG_OUTOFBOUNDS_ERROR};
}
}
-void IntegerWidth::apply(impl::DecimalQuantity &quantity, UErrorCode &status) const {
+void IntegerWidth::apply(impl::DecimalQuantity& quantity, UErrorCode& status) const {
if (fHasError) {
status = U_ILLEGAL_ARGUMENT_ERROR;
} else if (fUnion.minMaxInt.fMaxInt == -1) {
quantity.setIntegerLength(fUnion.minMaxInt.fMinInt, INT32_MAX);
} else {
+ // Enforce the backwards-compatibility feature "FormatFailIfMoreThanMaxDigits"
+ if (fUnion.minMaxInt.fFormatFailIfMoreThanMaxDigits &&
+ fUnion.minMaxInt.fMaxInt < quantity.getMagnitude()) {
+ status = U_ILLEGAL_ARGUMENT_ERROR;
+ }
quantity.setIntegerLength(fUnion.minMaxInt.fMinInt, fUnion.minMaxInt.fMaxInt);
}
}
+bool IntegerWidth::operator==(const IntegerWidth& other) const {
+ // Private operator==; do error and bogus checking first!
+ U_ASSERT(!fHasError);
+ U_ASSERT(!other.fHasError);
+ U_ASSERT(!isBogus());
+ U_ASSERT(!other.isBogus());
+ return fUnion.minMaxInt.fMinInt == other.fUnion.minMaxInt.fMinInt &&
+ fUnion.minMaxInt.fMaxInt == other.fUnion.minMaxInt.fMaxInt;
+}
+
#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_longnames.cpp b/Build/source/libs/icu/icu-src/source/i18n/number_longnames.cpp
index 5c363442e7c..fd8e8d381a1 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/number_longnames.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_longnames.cpp
@@ -3,7 +3,7 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
#include "unicode/simpleformatter.h"
#include "unicode/ures.h"
@@ -11,6 +11,7 @@
#include "charstr.h"
#include "uresimp.h"
#include "number_longnames.h"
+#include "number_microprops.h"
#include <algorithm>
#include "cstring.h"
@@ -38,7 +39,7 @@ static int32_t getIndex(const char* pluralKeyword, UErrorCode& status) {
static UnicodeString getWithPlural(
const UnicodeString* strings,
- int32_t plural,
+ StandardPlural::Form plural,
UErrorCode& status) {
UnicodeString result = strings[plural];
if (result.isBogus()) {
@@ -155,7 +156,7 @@ UnicodeString getPerUnitFormat(const Locale& locale, const UNumberUnitWidth &wid
} // namespace
-LongNameHandler
+LongNameHandler*
LongNameHandler::forMeasureUnit(const Locale &loc, const MeasureUnit &unitRef, const MeasureUnit &perUnit,
const UNumberUnitWidth &width, const PluralRules *rules,
const MicroPropsGenerator *parent, UErrorCode &status) {
@@ -172,20 +173,28 @@ LongNameHandler::forMeasureUnit(const Locale &loc, const MeasureUnit &unitRef, c
}
}
- LongNameHandler result(rules, parent);
+ auto* result = new LongNameHandler(rules, parent);
+ if (result == nullptr) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return nullptr;
+ }
UnicodeString simpleFormats[ARRAY_LENGTH];
getMeasureData(loc, unit, width, simpleFormats, status);
if (U_FAILURE(status)) { return result; }
// TODO: What field to use for units?
- simpleFormatsToModifiers(simpleFormats, UNUM_FIELD_COUNT, result.fModifiers, status);
+ result->simpleFormatsToModifiers(simpleFormats, UNUM_FIELD_COUNT, status);
return result;
}
-LongNameHandler
+LongNameHandler*
LongNameHandler::forCompoundUnit(const Locale &loc, const MeasureUnit &unit, const MeasureUnit &perUnit,
const UNumberUnitWidth &width, const PluralRules *rules,
const MicroPropsGenerator *parent, UErrorCode &status) {
- LongNameHandler result(rules, parent);
+ auto* result = new LongNameHandler(rules, parent);
+ if (result == nullptr) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return nullptr;
+ }
UnicodeString primaryData[ARRAY_LENGTH];
getMeasureData(loc, unit, width, primaryData, status);
if (U_FAILURE(status)) { return result; }
@@ -212,46 +221,52 @@ LongNameHandler::forCompoundUnit(const Locale &loc, const MeasureUnit &unit, con
if (U_FAILURE(status)) { return result; }
}
// TODO: What field to use for units?
- multiSimpleFormatsToModifiers(primaryData, perUnitFormat, UNUM_FIELD_COUNT, result.fModifiers, status);
+ result->multiSimpleFormatsToModifiers(primaryData, perUnitFormat, UNUM_FIELD_COUNT, status);
return result;
}
-LongNameHandler LongNameHandler::forCurrencyLongNames(const Locale &loc, const CurrencyUnit &currency,
+LongNameHandler* LongNameHandler::forCurrencyLongNames(const Locale &loc, const CurrencyUnit &currency,
const PluralRules *rules,
const MicroPropsGenerator *parent,
UErrorCode &status) {
- LongNameHandler result(rules, parent);
+ auto* result = new LongNameHandler(rules, parent);
+ if (result == nullptr) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return nullptr;
+ }
UnicodeString simpleFormats[ARRAY_LENGTH];
getCurrencyLongNameData(loc, currency, simpleFormats, status);
- if (U_FAILURE(status)) { return result; }
- simpleFormatsToModifiers(simpleFormats, UNUM_CURRENCY_FIELD, result.fModifiers, status);
+ if (U_FAILURE(status)) { return nullptr; }
+ result->simpleFormatsToModifiers(simpleFormats, UNUM_CURRENCY_FIELD, status);
return result;
}
void LongNameHandler::simpleFormatsToModifiers(const UnicodeString *simpleFormats, Field field,
- SimpleModifier *output, UErrorCode &status) {
+ UErrorCode &status) {
for (int32_t i = 0; i < StandardPlural::Form::COUNT; i++) {
- UnicodeString simpleFormat = getWithPlural(simpleFormats, i, status);
+ StandardPlural::Form plural = static_cast<StandardPlural::Form>(i);
+ UnicodeString simpleFormat = getWithPlural(simpleFormats, plural, status);
if (U_FAILURE(status)) { return; }
SimpleFormatter compiledFormatter(simpleFormat, 0, 1, status);
if (U_FAILURE(status)) { return; }
- output[i] = SimpleModifier(compiledFormatter, field, false);
+ fModifiers[i] = SimpleModifier(compiledFormatter, field, false, {this, 0, plural});
}
}
void LongNameHandler::multiSimpleFormatsToModifiers(const UnicodeString *leadFormats, UnicodeString trailFormat,
- Field field, SimpleModifier *output, UErrorCode &status) {
+ Field field, UErrorCode &status) {
SimpleFormatter trailCompiled(trailFormat, 1, 1, status);
if (U_FAILURE(status)) { return; }
for (int32_t i = 0; i < StandardPlural::Form::COUNT; i++) {
- UnicodeString leadFormat = getWithPlural(leadFormats, i, status);
+ StandardPlural::Form plural = static_cast<StandardPlural::Form>(i);
+ UnicodeString leadFormat = getWithPlural(leadFormats, plural, status);
if (U_FAILURE(status)) { return; }
UnicodeString compoundFormat;
trailCompiled.format(leadFormat, compoundFormat, status);
if (U_FAILURE(status)) { return; }
SimpleFormatter compoundCompiled(compoundFormat, 0, 1, status);
if (U_FAILURE(status)) { return; }
- output[i] = SimpleModifier(compoundCompiled, field, false);
+ fModifiers[i] = SimpleModifier(compoundCompiled, field, false, {this, 0, plural});
}
}
@@ -260,8 +275,12 @@ void LongNameHandler::processQuantity(DecimalQuantity &quantity, MicroProps &mic
parent->processQuantity(quantity, micros, status);
// TODO: Avoid the copy here?
DecimalQuantity copy(quantity);
- micros.rounding.apply(copy, status);
- micros.modOuter = &fModifiers[copy.getStandardPlural(rules)];
+ micros.rounder.apply(copy, status);
+ micros.modOuter = &fModifiers[utils::getStandardPlural(rules, copy)];
+}
+
+const Modifier* LongNameHandler::getModifier(int8_t /*signum*/, StandardPlural::Form plural) const {
+ return &fModifiers[plural];
}
#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_longnames.h b/Build/source/libs/icu/icu-src/source/i18n/number_longnames.h
index 8738bb99e7d..a71d0caadf1 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/number_longnames.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_longnames.h
@@ -3,7 +3,7 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
#ifndef __NUMBER_LONGNAMES_H__
#define __NUMBER_LONGNAMES_H__
@@ -14,13 +14,13 @@
U_NAMESPACE_BEGIN namespace number {
namespace impl {
-class LongNameHandler : public MicroPropsGenerator, public UMemory {
+class LongNameHandler : public MicroPropsGenerator, public ModifierStore, public UMemory {
public:
- static LongNameHandler
+ static LongNameHandler*
forCurrencyLongNames(const Locale &loc, const CurrencyUnit &currency, const PluralRules *rules,
const MicroPropsGenerator *parent, UErrorCode &status);
- static LongNameHandler
+ static LongNameHandler*
forMeasureUnit(const Locale &loc, const MeasureUnit &unit, const MeasureUnit &perUnit,
const UNumberUnitWidth &width, const PluralRules *rules,
const MicroPropsGenerator *parent, UErrorCode &status);
@@ -28,6 +28,8 @@ class LongNameHandler : public MicroPropsGenerator, public UMemory {
void
processQuantity(DecimalQuantity &quantity, MicroProps &micros, UErrorCode &status) const U_OVERRIDE;
+ const Modifier* getModifier(int8_t signum, StandardPlural::Form plural) const U_OVERRIDE;
+
private:
SimpleModifier fModifiers[StandardPlural::Form::COUNT];
const PluralRules *rules;
@@ -36,15 +38,14 @@ class LongNameHandler : public MicroPropsGenerator, public UMemory {
LongNameHandler(const PluralRules *rules, const MicroPropsGenerator *parent)
: rules(rules), parent(parent) {}
- static LongNameHandler
+ static LongNameHandler*
forCompoundUnit(const Locale &loc, const MeasureUnit &unit, const MeasureUnit &perUnit,
const UNumberUnitWidth &width, const PluralRules *rules,
const MicroPropsGenerator *parent, UErrorCode &status);
- static void simpleFormatsToModifiers(const UnicodeString *simpleFormats, Field field,
- SimpleModifier *output, UErrorCode &status);
- static void multiSimpleFormatsToModifiers(const UnicodeString *leadFormats, UnicodeString trailFormat,
- Field field, SimpleModifier *output, UErrorCode &status);
+ void simpleFormatsToModifiers(const UnicodeString *simpleFormats, Field field, UErrorCode &status);
+ void multiSimpleFormatsToModifiers(const UnicodeString *leadFormats, UnicodeString trailFormat,
+ Field field, UErrorCode &status);
};
} // namespace impl
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_mapper.cpp b/Build/source/libs/icu/icu-src/source/i18n/number_mapper.cpp
new file mode 100644
index 00000000000..2c9a8e5178f
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_mapper.cpp
@@ -0,0 +1,508 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+// Allow implicit conversion from char16_t* to UnicodeString for this file:
+// Helpful in toString methods and elsewhere.
+#define UNISTR_FROM_STRING_EXPLICIT
+
+#include "number_mapper.h"
+#include "number_patternstring.h"
+#include "unicode/errorcode.h"
+#include "number_utils.h"
+#include "number_currencysymbols.h"
+
+using namespace icu;
+using namespace icu::number;
+using namespace icu::number::impl;
+
+
+UnlocalizedNumberFormatter NumberPropertyMapper::create(const DecimalFormatProperties& properties,
+ const DecimalFormatSymbols& symbols,
+ DecimalFormatWarehouse& warehouse,
+ UErrorCode& status) {
+ return NumberFormatter::with().macros(oldToNew(properties, symbols, warehouse, nullptr, status));
+}
+
+UnlocalizedNumberFormatter NumberPropertyMapper::create(const DecimalFormatProperties& properties,
+ const DecimalFormatSymbols& symbols,
+ DecimalFormatWarehouse& warehouse,
+ DecimalFormatProperties& exportedProperties,
+ UErrorCode& status) {
+ return NumberFormatter::with().macros(
+ oldToNew(
+ properties, symbols, warehouse, &exportedProperties, status));
+}
+
+MacroProps NumberPropertyMapper::oldToNew(const DecimalFormatProperties& properties,
+ const DecimalFormatSymbols& symbols,
+ DecimalFormatWarehouse& warehouse,
+ DecimalFormatProperties* exportedProperties,
+ UErrorCode& status) {
+ MacroProps macros;
+ Locale locale = symbols.getLocale();
+
+ /////////////
+ // SYMBOLS //
+ /////////////
+
+ macros.symbols.setTo(symbols);
+
+ //////////////////
+ // PLURAL RULES //
+ //////////////////
+
+ if (!properties.currencyPluralInfo.fPtr.isNull()) {
+ macros.rules = properties.currencyPluralInfo.fPtr->getPluralRules();
+ }
+
+ /////////////
+ // AFFIXES //
+ /////////////
+
+ AffixPatternProvider* affixProvider;
+ if (properties.currencyPluralInfo.fPtr.isNull()) {
+ warehouse.currencyPluralInfoAPP.setToBogus();
+ warehouse.propertiesAPP.setTo(properties, status);
+ affixProvider = &warehouse.propertiesAPP;
+ } else {
+ warehouse.currencyPluralInfoAPP.setTo(*properties.currencyPluralInfo.fPtr, properties, status);
+ warehouse.propertiesAPP.setToBogus();
+ affixProvider = &warehouse.currencyPluralInfoAPP;
+ }
+ macros.affixProvider = affixProvider;
+
+ ///////////
+ // UNITS //
+ ///////////
+
+ bool useCurrency = (
+ !properties.currency.isNull() || !properties.currencyPluralInfo.fPtr.isNull() ||
+ !properties.currencyUsage.isNull() || affixProvider->hasCurrencySign());
+ CurrencyUnit currency = resolveCurrency(properties, locale, status);
+ UCurrencyUsage currencyUsage = properties.currencyUsage.getOrDefault(UCURR_USAGE_STANDARD);
+ if (useCurrency) {
+ // NOTE: Slicing is OK.
+ macros.unit = currency; // NOLINT
+ }
+ warehouse.currencySymbols = {currency, locale, symbols, status};
+ macros.currencySymbols = &warehouse.currencySymbols;
+
+ ///////////////////////
+ // ROUNDING STRATEGY //
+ ///////////////////////
+
+ int32_t maxInt = properties.maximumIntegerDigits;
+ int32_t minInt = properties.minimumIntegerDigits;
+ int32_t maxFrac = properties.maximumFractionDigits;
+ int32_t minFrac = properties.minimumFractionDigits;
+ int32_t minSig = properties.minimumSignificantDigits;
+ int32_t maxSig = properties.maximumSignificantDigits;
+ double roundingIncrement = properties.roundingIncrement;
+ RoundingMode roundingMode = properties.roundingMode.getOrDefault(UNUM_ROUND_HALFEVEN);
+ bool explicitMinMaxFrac = minFrac != -1 || maxFrac != -1;
+ bool explicitMinMaxSig = minSig != -1 || maxSig != -1;
+ // Resolve min/max frac for currencies, required for the validation logic and for when minFrac or
+ // maxFrac was
+ // set (but not both) on a currency instance.
+ // NOTE: Increments are handled in "Precision.constructCurrency()".
+ if (useCurrency && (minFrac == -1 || maxFrac == -1)) {
+ int32_t digits = ucurr_getDefaultFractionDigitsForUsage(
+ currency.getISOCurrency(), currencyUsage, &status);
+ if (minFrac == -1 && maxFrac == -1) {
+ minFrac = digits;
+ maxFrac = digits;
+ } else if (minFrac == -1) {
+ minFrac = std::min(maxFrac, digits);
+ } else /* if (maxFrac == -1) */ {
+ maxFrac = std::max(minFrac, digits);
+ }
+ }
+ // Validate min/max int/frac.
+ // For backwards compatibility, minimum overrides maximum if the two conflict.
+ // The following logic ensures that there is always a minimum of at least one digit.
+ if (minInt == 0 && maxFrac != 0) {
+ // Force a digit after the decimal point.
+ minFrac = minFrac <= 0 ? 1 : minFrac;
+ maxFrac = maxFrac < 0 ? -1 : maxFrac < minFrac ? minFrac : maxFrac;
+ minInt = 0;
+ maxInt = maxInt < 0 ? -1 : maxInt > kMaxIntFracSig ? -1 : maxInt;
+ } else {
+ // Force a digit before the decimal point.
+ minFrac = minFrac < 0 ? 0 : minFrac;
+ maxFrac = maxFrac < 0 ? -1 : maxFrac < minFrac ? minFrac : maxFrac;
+ minInt = minInt <= 0 ? 1 : minInt > kMaxIntFracSig ? 1 : minInt;
+ maxInt = maxInt < 0 ? -1 : maxInt < minInt ? minInt : maxInt > kMaxIntFracSig ? -1 : maxInt;
+ }
+ Precision precision;
+ if (!properties.currencyUsage.isNull()) {
+ precision = Precision::constructCurrency(currencyUsage).withCurrency(currency);
+ } else if (roundingIncrement != 0.0) {
+ precision = Precision::constructIncrement(roundingIncrement, minFrac);
+ } else if (explicitMinMaxSig) {
+ minSig = minSig < 1 ? 1 : minSig > kMaxIntFracSig ? kMaxIntFracSig : minSig;
+ maxSig = maxSig < 0 ? kMaxIntFracSig : maxSig < minSig ? minSig : maxSig > kMaxIntFracSig
+ ? kMaxIntFracSig : maxSig;
+ precision = Precision::constructSignificant(minSig, maxSig);
+ } else if (explicitMinMaxFrac) {
+ precision = Precision::constructFraction(minFrac, maxFrac);
+ } else if (useCurrency) {
+ precision = Precision::constructCurrency(currencyUsage);
+ }
+ if (!precision.isBogus()) {
+ precision = precision.withMode(roundingMode);
+ macros.precision = precision;
+ }
+
+ ///////////////////
+ // INTEGER WIDTH //
+ ///////////////////
+
+ macros.integerWidth = IntegerWidth(
+ static_cast<digits_t>(minInt),
+ static_cast<digits_t>(maxInt),
+ properties.formatFailIfMoreThanMaxDigits);
+
+ ///////////////////////
+ // GROUPING STRATEGY //
+ ///////////////////////
+
+ macros.grouper = Grouper::forProperties(properties);
+
+ /////////////
+ // PADDING //
+ /////////////
+
+ if (properties.formatWidth != -1) {
+ macros.padder = Padder::forProperties(properties);
+ }
+
+ ///////////////////////////////
+ // DECIMAL MARK ALWAYS SHOWN //
+ ///////////////////////////////
+
+ macros.decimal = properties.decimalSeparatorAlwaysShown ? UNUM_DECIMAL_SEPARATOR_ALWAYS
+ : UNUM_DECIMAL_SEPARATOR_AUTO;
+
+ ///////////////////////
+ // SIGN ALWAYS SHOWN //
+ ///////////////////////
+
+ macros.sign = properties.signAlwaysShown ? UNUM_SIGN_ALWAYS : UNUM_SIGN_AUTO;
+
+ /////////////////////////
+ // SCIENTIFIC NOTATION //
+ /////////////////////////
+
+ if (properties.minimumExponentDigits != -1) {
+ // Scientific notation is required.
+ // This whole section feels like a hack, but it is needed for regression tests.
+ // The mapping from property bag to scientific notation is nontrivial due to LDML rules.
+ if (maxInt > 8) {
+ // But #13110: The maximum of 8 digits has unknown origins and is not in the spec.
+ // If maxInt is greater than 8, it is set to minInt, even if minInt is greater than 8.
+ maxInt = minInt;
+ macros.integerWidth = IntegerWidth::zeroFillTo(minInt).truncateAt(maxInt);
+ } else if (maxInt > minInt && minInt > 1) {
+ // Bug #13289: if maxInt > minInt > 1, then minInt should be 1.
+ minInt = 1;
+ macros.integerWidth = IntegerWidth::zeroFillTo(minInt).truncateAt(maxInt);
+ }
+ int engineering = maxInt < 0 ? -1 : maxInt;
+ macros.notation = ScientificNotation(
+ // Engineering interval:
+ static_cast<int8_t>(engineering),
+ // Enforce minimum integer digits (for patterns like "000.00E0"):
+ (engineering == minInt),
+ // Minimum exponent digits:
+ static_cast<digits_t>(properties.minimumExponentDigits),
+ // Exponent sign always shown:
+ properties.exponentSignAlwaysShown ? UNUM_SIGN_ALWAYS : UNUM_SIGN_AUTO);
+ // Scientific notation also involves overriding the rounding mode.
+ // TODO: Overriding here is a bit of a hack. Should this logic go earlier?
+ if (macros.precision.fType == Precision::PrecisionType::RND_FRACTION) {
+ // For the purposes of rounding, get the original min/max int/frac, since the local
+ // variables have been manipulated for display purposes.
+ int maxInt_ = properties.maximumIntegerDigits;
+ int minInt_ = properties.minimumIntegerDigits;
+ int minFrac_ = properties.minimumFractionDigits;
+ int maxFrac_ = properties.maximumFractionDigits;
+ if (minInt_ == 0 && maxFrac_ == 0) {
+ // Patterns like "#E0" and "##E0", which mean no rounding!
+ macros.precision = Precision::unlimited().withMode(roundingMode);
+ } else if (minInt_ == 0 && minFrac_ == 0) {
+ // Patterns like "#.##E0" (no zeros in the mantissa), which mean round to maxFrac+1
+ macros.precision = Precision::constructSignificant(1, maxFrac_ + 1).withMode(roundingMode);
+ } else {
+ int maxSig_ = minInt_ + maxFrac_;
+ // Bug #20058: if maxInt_ > minInt_ > 1, then minInt_ should be 1.
+ if (maxInt_ > minInt_ && minInt_ > 1) {
+ minInt_ = 1;
+ }
+ int minSig_ = minInt_ + minFrac_;
+ // To avoid regression, maxSig is not reset when minInt_ set to 1.
+ // TODO: Reset maxSig_ = 1 + minFrac_ to follow the spec.
+ macros.precision = Precision::constructSignificant(minSig_, maxSig_).withMode(roundingMode);
+ }
+ }
+ }
+
+ //////////////////////
+ // COMPACT NOTATION //
+ //////////////////////
+
+ if (!properties.compactStyle.isNull()) {
+ if (properties.compactStyle.getNoError() == UNumberCompactStyle::UNUM_LONG) {
+ macros.notation = Notation::compactLong();
+ } else {
+ macros.notation = Notation::compactShort();
+ }
+ // Do not forward the affix provider.
+ macros.affixProvider = nullptr;
+ }
+
+ /////////////////
+ // MULTIPLIERS //
+ /////////////////
+
+ macros.scale = scaleFromProperties(properties);
+
+ //////////////////////
+ // PROPERTY EXPORTS //
+ //////////////////////
+
+ if (exportedProperties != nullptr) {
+
+ exportedProperties->currency = currency;
+ exportedProperties->roundingMode = roundingMode;
+ exportedProperties->minimumIntegerDigits = minInt;
+ exportedProperties->maximumIntegerDigits = maxInt == -1 ? INT32_MAX : maxInt;
+
+ Precision rounding_;
+ if (precision.fType == Precision::PrecisionType::RND_CURRENCY) {
+ rounding_ = precision.withCurrency(currency, status);
+ } else {
+ rounding_ = precision;
+ }
+ int minFrac_ = minFrac;
+ int maxFrac_ = maxFrac;
+ int minSig_ = minSig;
+ int maxSig_ = maxSig;
+ double increment_ = 0.0;
+ if (rounding_.fType == Precision::PrecisionType::RND_FRACTION) {
+ minFrac_ = rounding_.fUnion.fracSig.fMinFrac;
+ maxFrac_ = rounding_.fUnion.fracSig.fMaxFrac;
+ } else if (rounding_.fType == Precision::PrecisionType::RND_INCREMENT) {
+ increment_ = rounding_.fUnion.increment.fIncrement;
+ minFrac_ = rounding_.fUnion.increment.fMinFrac;
+ maxFrac_ = rounding_.fUnion.increment.fMinFrac;
+ } else if (rounding_.fType == Precision::PrecisionType::RND_SIGNIFICANT) {
+ minSig_ = rounding_.fUnion.fracSig.fMinSig;
+ maxSig_ = rounding_.fUnion.fracSig.fMaxSig;
+ }
+
+ exportedProperties->minimumFractionDigits = minFrac_;
+ exportedProperties->maximumFractionDigits = maxFrac_;
+ exportedProperties->minimumSignificantDigits = minSig_;
+ exportedProperties->maximumSignificantDigits = maxSig_;
+ exportedProperties->roundingIncrement = increment_;
+ }
+
+ return macros;
+}
+
+
+void PropertiesAffixPatternProvider::setTo(const DecimalFormatProperties& properties, UErrorCode&) {
+ fBogus = false;
+
+ // There are two ways to set affixes in DecimalFormat: via the pattern string (applyPattern), and via the
+ // explicit setters (setPositivePrefix and friends). The way to resolve the settings is as follows:
+ //
+ // 1) If the explicit setting is present for the field, use it.
+ // 2) Otherwise, follows UTS 35 rules based on the pattern string.
+ //
+ // Importantly, the explicit setters affect only the one field they override. If you set the positive
+ // prefix, that should not affect the negative prefix. Since it is impossible for the user of this class
+ // to know whether the origin for a string was the override or the pattern, we have to say that we always
+ // have a negative subpattern and perform all resolution logic here.
+
+ // Convenience: Extract the properties into local variables.
+ // Variables are named with three chars: [p/n][p/s][o/p]
+ // [p/n] => p for positive, n for negative
+ // [p/s] => p for prefix, s for suffix
+ // [o/p] => o for escaped custom override string, p for pattern string
+ UnicodeString ppo = AffixUtils::escape(properties.positivePrefix);
+ UnicodeString pso = AffixUtils::escape(properties.positiveSuffix);
+ UnicodeString npo = AffixUtils::escape(properties.negativePrefix);
+ UnicodeString nso = AffixUtils::escape(properties.negativeSuffix);
+ const UnicodeString& ppp = properties.positivePrefixPattern;
+ const UnicodeString& psp = properties.positiveSuffixPattern;
+ const UnicodeString& npp = properties.negativePrefixPattern;
+ const UnicodeString& nsp = properties.negativeSuffixPattern;
+
+ if (!properties.positivePrefix.isBogus()) {
+ posPrefix = ppo;
+ } else if (!ppp.isBogus()) {
+ posPrefix = ppp;
+ } else {
+ // UTS 35: Default positive prefix is empty string.
+ posPrefix = u"";
+ }
+
+ if (!properties.positiveSuffix.isBogus()) {
+ posSuffix = pso;
+ } else if (!psp.isBogus()) {
+ posSuffix = psp;
+ } else {
+ // UTS 35: Default positive suffix is empty string.
+ posSuffix = u"";
+ }
+
+ if (!properties.negativePrefix.isBogus()) {
+ negPrefix = npo;
+ } else if (!npp.isBogus()) {
+ negPrefix = npp;
+ } else {
+ // UTS 35: Default negative prefix is "-" with positive prefix.
+ // Important: We prepend the "-" to the pattern, not the override!
+ negPrefix = ppp.isBogus() ? u"-" : u"-" + ppp;
+ }
+
+ if (!properties.negativeSuffix.isBogus()) {
+ negSuffix = nso;
+ } else if (!nsp.isBogus()) {
+ negSuffix = nsp;
+ } else {
+ // UTS 35: Default negative prefix is the positive prefix.
+ negSuffix = psp.isBogus() ? u"" : psp;
+ }
+}
+
+char16_t PropertiesAffixPatternProvider::charAt(int flags, int i) const {
+ return getStringInternal(flags).charAt(i);
+}
+
+int PropertiesAffixPatternProvider::length(int flags) const {
+ return getStringInternal(flags).length();
+}
+
+UnicodeString PropertiesAffixPatternProvider::getString(int32_t flags) const {
+ return getStringInternal(flags);
+}
+
+const UnicodeString& PropertiesAffixPatternProvider::getStringInternal(int32_t flags) const {
+ bool prefix = (flags & AFFIX_PREFIX) != 0;
+ bool negative = (flags & AFFIX_NEGATIVE_SUBPATTERN) != 0;
+ if (prefix && negative) {
+ return negPrefix;
+ } else if (prefix) {
+ return posPrefix;
+ } else if (negative) {
+ return negSuffix;
+ } else {
+ return posSuffix;
+ }
+}
+
+bool PropertiesAffixPatternProvider::positiveHasPlusSign() const {
+ // TODO: Change the internal APIs to propagate out the error?
+ ErrorCode localStatus;
+ return AffixUtils::containsType(posPrefix, TYPE_PLUS_SIGN, localStatus) ||
+ AffixUtils::containsType(posSuffix, TYPE_PLUS_SIGN, localStatus);
+}
+
+bool PropertiesAffixPatternProvider::hasNegativeSubpattern() const {
+ // See comments in the constructor for more information on why this is always true.
+ return true;
+}
+
+bool PropertiesAffixPatternProvider::negativeHasMinusSign() const {
+ ErrorCode localStatus;
+ return AffixUtils::containsType(negPrefix, TYPE_MINUS_SIGN, localStatus) ||
+ AffixUtils::containsType(negSuffix, TYPE_MINUS_SIGN, localStatus);
+}
+
+bool PropertiesAffixPatternProvider::hasCurrencySign() const {
+ ErrorCode localStatus;
+ return AffixUtils::hasCurrencySymbols(posPrefix, localStatus) ||
+ AffixUtils::hasCurrencySymbols(posSuffix, localStatus) ||
+ AffixUtils::hasCurrencySymbols(negPrefix, localStatus) ||
+ AffixUtils::hasCurrencySymbols(negSuffix, localStatus);
+}
+
+bool PropertiesAffixPatternProvider::containsSymbolType(AffixPatternType type, UErrorCode& status) const {
+ return AffixUtils::containsType(posPrefix, type, status) ||
+ AffixUtils::containsType(posSuffix, type, status) ||
+ AffixUtils::containsType(negPrefix, type, status) ||
+ AffixUtils::containsType(negSuffix, type, status);
+}
+
+bool PropertiesAffixPatternProvider::hasBody() const {
+ return true;
+}
+
+
+void CurrencyPluralInfoAffixProvider::setTo(const CurrencyPluralInfo& cpi,
+ const DecimalFormatProperties& properties,
+ UErrorCode& status) {
+ // We need to use a PropertiesAffixPatternProvider, not the simpler version ParsedPatternInfo,
+ // because user-specified affix overrides still need to work.
+ fBogus = false;
+ DecimalFormatProperties pluralProperties(properties);
+ for (int32_t plural = 0; plural < StandardPlural::COUNT; plural++) {
+ const char* keyword = StandardPlural::getKeyword(static_cast<StandardPlural::Form>(plural));
+ UnicodeString patternString;
+ patternString = cpi.getCurrencyPluralPattern(keyword, patternString);
+ PatternParser::parseToExistingProperties(
+ patternString,
+ pluralProperties,
+ IGNORE_ROUNDING_NEVER,
+ status);
+ affixesByPlural[plural].setTo(pluralProperties, status);
+ }
+}
+
+char16_t CurrencyPluralInfoAffixProvider::charAt(int32_t flags, int32_t i) const {
+ int32_t pluralOrdinal = (flags & AFFIX_PLURAL_MASK);
+ return affixesByPlural[pluralOrdinal].charAt(flags, i);
+}
+
+int32_t CurrencyPluralInfoAffixProvider::length(int32_t flags) const {
+ int32_t pluralOrdinal = (flags & AFFIX_PLURAL_MASK);
+ return affixesByPlural[pluralOrdinal].length(flags);
+}
+
+UnicodeString CurrencyPluralInfoAffixProvider::getString(int32_t flags) const {
+ int32_t pluralOrdinal = (flags & AFFIX_PLURAL_MASK);
+ return affixesByPlural[pluralOrdinal].getString(flags);
+}
+
+bool CurrencyPluralInfoAffixProvider::positiveHasPlusSign() const {
+ return affixesByPlural[StandardPlural::OTHER].positiveHasPlusSign();
+}
+
+bool CurrencyPluralInfoAffixProvider::hasNegativeSubpattern() const {
+ return affixesByPlural[StandardPlural::OTHER].hasNegativeSubpattern();
+}
+
+bool CurrencyPluralInfoAffixProvider::negativeHasMinusSign() const {
+ return affixesByPlural[StandardPlural::OTHER].negativeHasMinusSign();
+}
+
+bool CurrencyPluralInfoAffixProvider::hasCurrencySign() const {
+ return affixesByPlural[StandardPlural::OTHER].hasCurrencySign();
+}
+
+bool CurrencyPluralInfoAffixProvider::containsSymbolType(AffixPatternType type, UErrorCode& status) const {
+ return affixesByPlural[StandardPlural::OTHER].containsSymbolType(type, status);
+}
+
+bool CurrencyPluralInfoAffixProvider::hasBody() const {
+ return affixesByPlural[StandardPlural::OTHER].hasBody();
+}
+
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_mapper.h b/Build/source/libs/icu/icu-src/source/i18n/number_mapper.h
new file mode 100644
index 00000000000..82c5711c8d0
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_mapper.h
@@ -0,0 +1,206 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+#ifndef __NUMBER_MAPPER_H__
+#define __NUMBER_MAPPER_H__
+
+#include <atomic>
+#include "number_types.h"
+#include "unicode/currpinf.h"
+#include "standardplural.h"
+#include "number_patternstring.h"
+#include "number_currencysymbols.h"
+#include "numparse_impl.h"
+
+U_NAMESPACE_BEGIN
+namespace number {
+namespace impl {
+
+
+class PropertiesAffixPatternProvider : public AffixPatternProvider, public UMemory {
+ public:
+ bool isBogus() const {
+ return fBogus;
+ }
+
+ void setToBogus() {
+ fBogus = true;
+ }
+
+ void setTo(const DecimalFormatProperties& properties, UErrorCode& status);
+
+ PropertiesAffixPatternProvider() = default; // puts instance in valid but undefined state
+
+ PropertiesAffixPatternProvider(const DecimalFormatProperties& properties, UErrorCode& status) {
+ setTo(properties, status);
+ }
+
+ // AffixPatternProvider Methods:
+
+ char16_t charAt(int32_t flags, int32_t i) const U_OVERRIDE;
+
+ int32_t length(int32_t flags) const U_OVERRIDE;
+
+ UnicodeString getString(int32_t flags) const U_OVERRIDE;
+
+ bool hasCurrencySign() const U_OVERRIDE;
+
+ bool positiveHasPlusSign() const U_OVERRIDE;
+
+ bool hasNegativeSubpattern() const U_OVERRIDE;
+
+ bool negativeHasMinusSign() const U_OVERRIDE;
+
+ bool containsSymbolType(AffixPatternType, UErrorCode&) const U_OVERRIDE;
+
+ bool hasBody() const U_OVERRIDE;
+
+ private:
+ UnicodeString posPrefix;
+ UnicodeString posSuffix;
+ UnicodeString negPrefix;
+ UnicodeString negSuffix;
+
+ const UnicodeString& getStringInternal(int32_t flags) const;
+
+ bool fBogus{true};
+};
+
+
+class CurrencyPluralInfoAffixProvider : public AffixPatternProvider, public UMemory {
+ public:
+ bool isBogus() const {
+ return fBogus;
+ }
+
+ void setToBogus() {
+ fBogus = true;
+ }
+
+ void setTo(const CurrencyPluralInfo& cpi, const DecimalFormatProperties& properties,
+ UErrorCode& status);
+
+ // AffixPatternProvider Methods:
+
+ char16_t charAt(int32_t flags, int32_t i) const U_OVERRIDE;
+
+ int32_t length(int32_t flags) const U_OVERRIDE;
+
+ UnicodeString getString(int32_t flags) const U_OVERRIDE;
+
+ bool hasCurrencySign() const U_OVERRIDE;
+
+ bool positiveHasPlusSign() const U_OVERRIDE;
+
+ bool hasNegativeSubpattern() const U_OVERRIDE;
+
+ bool negativeHasMinusSign() const U_OVERRIDE;
+
+ bool containsSymbolType(AffixPatternType, UErrorCode&) const U_OVERRIDE;
+
+ bool hasBody() const U_OVERRIDE;
+
+ private:
+ PropertiesAffixPatternProvider affixesByPlural[StandardPlural::COUNT];
+
+ bool fBogus{true};
+};
+
+
+/**
+ * A struct for ownership of a few objects needed for formatting.
+ */
+struct DecimalFormatWarehouse {
+ PropertiesAffixPatternProvider propertiesAPP;
+ CurrencyPluralInfoAffixProvider currencyPluralInfoAPP;
+ CurrencySymbols currencySymbols;
+};
+
+
+/**
+* Internal fields for DecimalFormat.
+* TODO: Make some of these fields by value instead of by LocalPointer?
+*/
+struct DecimalFormatFields : public UMemory {
+ /** The property bag corresponding to user-specified settings and settings from the pattern string. */
+ LocalPointer<DecimalFormatProperties> properties;
+
+ /** The symbols for the current locale. */
+ LocalPointer<const DecimalFormatSymbols> symbols;
+
+ /**
+ * The pre-computed formatter object. Setters cause this to be re-computed atomically. The {@link
+ * #format} method uses the formatter directly without needing to synchronize.
+ */
+ LocalPointer<const LocalizedNumberFormatter> formatter;
+
+ /** The lazy-computed parser for .parse() */
+ std::atomic<::icu::numparse::impl::NumberParserImpl*> atomicParser = {};
+
+ /** The lazy-computed parser for .parseCurrency() */
+ std::atomic<::icu::numparse::impl::NumberParserImpl*> atomicCurrencyParser = {};
+
+ /** Small object ownership warehouse for the formatter and parser */
+ DecimalFormatWarehouse warehouse;
+
+ /** The effective properties as exported from the formatter object. Used by some getters. */
+ LocalPointer<DecimalFormatProperties> exportedProperties;
+
+ // Data for fastpath
+ bool canUseFastFormat = false;
+ struct FastFormatData {
+ char16_t cpZero;
+ char16_t cpGroupingSeparator;
+ char16_t cpMinusSign;
+ int8_t minInt;
+ int8_t maxInt;
+ } fastData;
+};
+
+
+/**
+ * Utilities for converting between a DecimalFormatProperties and a MacroProps.
+ */
+class NumberPropertyMapper {
+ public:
+ /** Convenience method to create a NumberFormatter directly from Properties. */
+ static UnlocalizedNumberFormatter create(const DecimalFormatProperties& properties,
+ const DecimalFormatSymbols& symbols,
+ DecimalFormatWarehouse& warehouse, UErrorCode& status);
+
+ /** Convenience method to create a NumberFormatter directly from Properties. */
+ static UnlocalizedNumberFormatter create(const DecimalFormatProperties& properties,
+ const DecimalFormatSymbols& symbols,
+ DecimalFormatWarehouse& warehouse,
+ DecimalFormatProperties& exportedProperties,
+ UErrorCode& status);
+
+ /**
+ * Creates a new {@link MacroProps} object based on the content of a {@link DecimalFormatProperties}
+ * object. In other words, maps Properties to MacroProps. This function is used by the
+ * JDK-compatibility API to call into the ICU 60 fluent number formatting pipeline.
+ *
+ * @param properties
+ * The property bag to be mapped.
+ * @param symbols
+ * The symbols associated with the property bag.
+ * @param exportedProperties
+ * A property bag in which to store validated properties. Used by some DecimalFormat
+ * getters.
+ * @return A new MacroProps containing all of the information in the Properties.
+ */
+ static MacroProps oldToNew(const DecimalFormatProperties& properties,
+ const DecimalFormatSymbols& symbols, DecimalFormatWarehouse& warehouse,
+ DecimalFormatProperties* exportedProperties, UErrorCode& status);
+};
+
+
+} // namespace impl
+} // namespace numparse
+U_NAMESPACE_END
+
+#endif //__NUMBER_MAPPER_H__
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_microprops.h b/Build/source/libs/icu/icu-src/source/i18n/number_microprops.h
new file mode 100644
index 00000000000..daa887bb0dd
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_microprops.h
@@ -0,0 +1,82 @@
+// © 2017 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+#ifndef __NUMBER_MICROPROPS_H__
+#define __NUMBER_MICROPROPS_H__
+
+// TODO: minimize includes
+#include "unicode/numberformatter.h"
+#include "number_types.h"
+#include "number_decimalquantity.h"
+#include "number_scientific.h"
+#include "number_patternstring.h"
+#include "number_modifiers.h"
+#include "number_multiplier.h"
+#include "number_roundingutils.h"
+#include "decNumber.h"
+#include "charstr.h"
+
+U_NAMESPACE_BEGIN namespace number {
+namespace impl {
+
+struct MicroProps : public MicroPropsGenerator {
+
+ // NOTE: All of these fields are properly initialized in NumberFormatterImpl.
+ RoundingImpl rounder;
+ Grouper grouping;
+ Padder padding;
+ IntegerWidth integerWidth;
+ UNumberSignDisplay sign;
+ UNumberDecimalSeparatorDisplay decimal;
+ bool useCurrency;
+
+ // Note: This struct has no direct ownership of the following pointers.
+ const DecimalFormatSymbols* symbols;
+ const Modifier* modOuter;
+ const Modifier* modMiddle;
+ const Modifier* modInner;
+
+ // The following "helper" fields may optionally be used during the MicroPropsGenerator.
+ // They live here to retain memory.
+ struct {
+ ScientificModifier scientificModifier;
+ EmptyModifier emptyWeakModifier{false};
+ EmptyModifier emptyStrongModifier{true};
+ MultiplierFormatHandler multiplier;
+ } helpers;
+
+
+ MicroProps() = default;
+
+ MicroProps(const MicroProps& other) = default;
+
+ MicroProps& operator=(const MicroProps& other) = default;
+
+ void processQuantity(DecimalQuantity&, MicroProps& micros, UErrorCode& status) const U_OVERRIDE {
+ (void) status;
+ if (this == &micros) {
+ // Unsafe path: no need to perform a copy.
+ U_ASSERT(!exhausted);
+ micros.exhausted = true;
+ U_ASSERT(exhausted);
+ } else {
+ // Safe path: copy self into the output micros.
+ micros = *this;
+ }
+ }
+
+ private:
+ // Internal fields:
+ bool exhausted = false;
+};
+
+} // namespace impl
+} // namespace number
+U_NAMESPACE_END
+
+#endif // __NUMBER_MICROPROPS_H__
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_modifiers.cpp b/Build/source/libs/icu/icu-src/source/i18n/number_modifiers.cpp
index 872b97010d7..d92ec63b08d 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/number_modifiers.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_modifiers.cpp
@@ -3,7 +3,7 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
#include "umutex.h"
#include "ucln_cmn.h"
@@ -32,6 +32,7 @@ UBool U_CALLCONV cleanupDefaultCurrencySpacing() {
UNISET_DIGIT = nullptr;
delete UNISET_NOTS;
UNISET_NOTS = nullptr;
+ gDefaultCurrencySpacingInitOnce.reset();
return TRUE;
}
@@ -50,6 +51,24 @@ void U_CALLCONV initDefaultCurrencySpacing(UErrorCode &status) {
} // namespace
+Modifier::~Modifier() = default;
+
+Modifier::Parameters::Parameters()
+ : obj(nullptr) {}
+
+Modifier::Parameters::Parameters(
+ const ModifierStore* _obj, int8_t _signum, StandardPlural::Form _plural)
+ : obj(_obj), signum(_signum), plural(_plural) {}
+
+ModifierStore::~ModifierStore() = default;
+
+AdoptingModifierStore::~AdoptingModifierStore() {
+ for (const Modifier *mod : mods) {
+ delete mod;
+ }
+}
+
+
int32_t ConstantAffixModifier::apply(NumberStringBuilder &output, int leftIndex, int rightIndex,
UErrorCode &status) const {
// Insert the suffix first since inserting the prefix will change the rightIndex
@@ -58,13 +77,11 @@ int32_t ConstantAffixModifier::apply(NumberStringBuilder &output, int leftIndex,
return length;
}
-int32_t ConstantAffixModifier::getPrefixLength(UErrorCode &status) const {
- (void)status;
+int32_t ConstantAffixModifier::getPrefixLength() const {
return fPrefix.length();
}
-int32_t ConstantAffixModifier::getCodePointCount(UErrorCode &status) const {
- (void)status;
+int32_t ConstantAffixModifier::getCodePointCount() const {
return fPrefix.countChar32() + fSuffix.countChar32();
}
@@ -72,8 +89,38 @@ bool ConstantAffixModifier::isStrong() const {
return fStrong;
}
+bool ConstantAffixModifier::containsField(UNumberFormatFields field) const {
+ (void)field;
+ // This method is not currently used.
+ U_ASSERT(false);
+ return false;
+}
+
+void ConstantAffixModifier::getParameters(Parameters& output) const {
+ (void)output;
+ // This method is not currently used.
+ U_ASSERT(false);
+}
+
+bool ConstantAffixModifier::semanticallyEquivalent(const Modifier& other) const {
+ auto* _other = dynamic_cast<const ConstantAffixModifier*>(&other);
+ if (_other == nullptr) {
+ return false;
+ }
+ return fPrefix == _other->fPrefix
+ && fSuffix == _other->fSuffix
+ && fField == _other->fField
+ && fStrong == _other->fStrong;
+}
+
+
SimpleModifier::SimpleModifier(const SimpleFormatter &simpleFormatter, Field field, bool strong)
- : fCompiledPattern(simpleFormatter.compiledPattern), fField(field), fStrong(strong) {
+ : SimpleModifier(simpleFormatter, field, strong, {}) {}
+
+SimpleModifier::SimpleModifier(const SimpleFormatter &simpleFormatter, Field field, bool strong,
+ const Modifier::Parameters parameters)
+ : fCompiledPattern(simpleFormatter.compiledPattern), fField(field), fStrong(strong),
+ fParameters(parameters) {
int32_t argLimit = SimpleFormatter::getArgumentLimit(
fCompiledPattern.getBuffer(), fCompiledPattern.length());
if (argLimit == 0) {
@@ -86,15 +133,19 @@ SimpleModifier::SimpleModifier(const SimpleFormatter &simpleFormatter, Field fie
} else {
U_ASSERT(argLimit == 1);
if (fCompiledPattern.charAt(1) != 0) {
+ // Found prefix
fPrefixLength = fCompiledPattern.charAt(1) - ARG_NUM_LIMIT;
fSuffixOffset = 3 + fPrefixLength;
} else {
+ // No prefix
fPrefixLength = 0;
fSuffixOffset = 2;
}
if (3 + fPrefixLength < fCompiledPattern.length()) {
+ // Found suffix
fSuffixLength = fCompiledPattern.charAt(fSuffixOffset) - ARG_NUM_LIMIT;
} else {
+ // No suffix
fSuffixLength = 0;
}
}
@@ -109,13 +160,11 @@ int32_t SimpleModifier::apply(NumberStringBuilder &output, int leftIndex, int ri
return formatAsPrefixSuffix(output, leftIndex, rightIndex, fField, status);
}
-int32_t SimpleModifier::getPrefixLength(UErrorCode &status) const {
- (void)status;
+int32_t SimpleModifier::getPrefixLength() const {
return fPrefixLength;
}
-int32_t SimpleModifier::getCodePointCount(UErrorCode &status) const {
- (void)status;
+int32_t SimpleModifier::getCodePointCount() const {
int32_t count = 0;
if (fPrefixLength > 0) {
count += fCompiledPattern.countChar32(2, fPrefixLength);
@@ -130,10 +179,35 @@ bool SimpleModifier::isStrong() const {
return fStrong;
}
+bool SimpleModifier::containsField(UNumberFormatFields field) const {
+ (void)field;
+ // This method is not currently used.
+ U_ASSERT(false);
+ return false;
+}
+
+void SimpleModifier::getParameters(Parameters& output) const {
+ output = fParameters;
+}
+
+bool SimpleModifier::semanticallyEquivalent(const Modifier& other) const {
+ auto* _other = dynamic_cast<const SimpleModifier*>(&other);
+ if (_other == nullptr) {
+ return false;
+ }
+ if (fParameters.obj != nullptr) {
+ return fParameters.obj == _other->fParameters.obj;
+ }
+ return fCompiledPattern == _other->fCompiledPattern
+ && fField == _other->fField
+ && fStrong == _other->fStrong;
+}
+
+
int32_t
SimpleModifier::formatAsPrefixSuffix(NumberStringBuilder &result, int32_t startIndex, int32_t endIndex,
Field field, UErrorCode &status) const {
- if (fSuffixOffset == -1) {
+ if (fSuffixOffset == -1 && fPrefixLength + fSuffixLength > 0) {
// There is no argument for the inner number; overwrite the entire segment with our string.
return result.splice(startIndex, endIndex, fCompiledPattern, 2, 2 + fPrefixLength, field, status);
} else {
@@ -153,6 +227,65 @@ SimpleModifier::formatAsPrefixSuffix(NumberStringBuilder &result, int32_t startI
}
}
+
+int32_t
+SimpleModifier::formatTwoArgPattern(const SimpleFormatter& compiled, NumberStringBuilder& result,
+ int32_t index, int32_t* outPrefixLength, int32_t* outSuffixLength,
+ Field field, UErrorCode& status) {
+ const UnicodeString& compiledPattern = compiled.compiledPattern;
+ int32_t argLimit = SimpleFormatter::getArgumentLimit(
+ compiledPattern.getBuffer(), compiledPattern.length());
+ if (argLimit != 2) {
+ status = U_INTERNAL_PROGRAM_ERROR;
+ return 0;
+ }
+ int32_t offset = 1; // offset into compiledPattern
+ int32_t length = 0; // chars added to result
+
+ int32_t prefixLength = compiledPattern.charAt(offset);
+ offset++;
+ if (prefixLength < ARG_NUM_LIMIT) {
+ // No prefix
+ prefixLength = 0;
+ } else {
+ prefixLength -= ARG_NUM_LIMIT;
+ result.insert(index + length, compiledPattern, offset, offset + prefixLength, field, status);
+ offset += prefixLength;
+ length += prefixLength;
+ offset++;
+ }
+
+ int32_t infixLength = compiledPattern.charAt(offset);
+ offset++;
+ if (infixLength < ARG_NUM_LIMIT) {
+ // No infix
+ infixLength = 0;
+ } else {
+ infixLength -= ARG_NUM_LIMIT;
+ result.insert(index + length, compiledPattern, offset, offset + infixLength, field, status);
+ offset += infixLength;
+ length += infixLength;
+ offset++;
+ }
+
+ int32_t suffixLength;
+ if (offset == compiledPattern.length()) {
+ // No suffix
+ suffixLength = 0;
+ } else {
+ suffixLength = compiledPattern.charAt(offset) - ARG_NUM_LIMIT;
+ offset++;
+ result.insert(index + length, compiledPattern, offset, offset + suffixLength, field, status);
+ length += suffixLength;
+ }
+
+ *outPrefixLength = prefixLength;
+ *outSuffixLength = suffixLength;
+
+ return length;
+}
+
+
int32_t ConstantMultiFieldModifier::apply(NumberStringBuilder &output, int leftIndex, int rightIndex,
UErrorCode &status) const {
int32_t length = output.insert(leftIndex, fPrefix, status);
@@ -167,13 +300,11 @@ int32_t ConstantMultiFieldModifier::apply(NumberStringBuilder &output, int leftI
return length;
}
-int32_t ConstantMultiFieldModifier::getPrefixLength(UErrorCode &status) const {
- (void)status;
+int32_t ConstantMultiFieldModifier::getPrefixLength() const {
return fPrefix.length();
}
-int32_t ConstantMultiFieldModifier::getCodePointCount(UErrorCode &status) const {
- (void)status;
+int32_t ConstantMultiFieldModifier::getCodePointCount() const {
return fPrefix.codePointCount() + fSuffix.codePointCount();
}
@@ -181,6 +312,29 @@ bool ConstantMultiFieldModifier::isStrong() const {
return fStrong;
}
+bool ConstantMultiFieldModifier::containsField(UNumberFormatFields field) const {
+ return fPrefix.containsField(field) || fSuffix.containsField(field);
+}
+
+void ConstantMultiFieldModifier::getParameters(Parameters& output) const {
+ output = fParameters;
+}
+
+bool ConstantMultiFieldModifier::semanticallyEquivalent(const Modifier& other) const {
+ auto* _other = dynamic_cast<const ConstantMultiFieldModifier*>(&other);
+ if (_other == nullptr) {
+ return false;
+ }
+ if (fParameters.obj != nullptr) {
+ return fParameters.obj == _other->fParameters.obj;
+ }
+ return fPrefix.contentEquals(_other->fPrefix)
+ && fSuffix.contentEquals(_other->fSuffix)
+ && fOverwrite == _other->fOverwrite
+ && fStrong == _other->fStrong;
+}
+
+
CurrencySpacingEnabledModifier::CurrencySpacingEnabledModifier(const NumberStringBuilder &prefix,
const NumberStringBuilder &suffix,
bool overwrite,
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_modifiers.h b/Build/source/libs/icu/icu-src/source/i18n/number_modifiers.h
index 4762a6f6d37..65ada937d03 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/number_modifiers.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_modifiers.h
@@ -3,7 +3,7 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
#ifndef __NUMBER_MODIFIERS_H__
#define __NUMBER_MODIFIERS_H__
@@ -31,12 +31,18 @@ class U_I18N_API ConstantAffixModifier : public Modifier, public UObject {
int32_t apply(NumberStringBuilder &output, int32_t leftIndex, int32_t rightIndex,
UErrorCode &status) const U_OVERRIDE;
- int32_t getPrefixLength(UErrorCode &status) const U_OVERRIDE;
+ int32_t getPrefixLength() const U_OVERRIDE;
- int32_t getCodePointCount(UErrorCode &status) const U_OVERRIDE;
+ int32_t getCodePointCount() const U_OVERRIDE;
bool isStrong() const U_OVERRIDE;
+ bool containsField(UNumberFormatFields field) const U_OVERRIDE;
+
+ void getParameters(Parameters& output) const U_OVERRIDE;
+
+ bool semanticallyEquivalent(const Modifier& other) const U_OVERRIDE;
+
private:
UnicodeString fPrefix;
UnicodeString fSuffix;
@@ -52,21 +58,30 @@ class U_I18N_API SimpleModifier : public Modifier, public UMemory {
public:
SimpleModifier(const SimpleFormatter &simpleFormatter, Field field, bool strong);
+ SimpleModifier(const SimpleFormatter &simpleFormatter, Field field, bool strong,
+ const Modifier::Parameters parameters);
+
// Default constructor for LongNameHandler.h
SimpleModifier();
int32_t apply(NumberStringBuilder &output, int32_t leftIndex, int32_t rightIndex,
UErrorCode &status) const U_OVERRIDE;
- int32_t getPrefixLength(UErrorCode &status) const U_OVERRIDE;
+ int32_t getPrefixLength() const U_OVERRIDE;
- int32_t getCodePointCount(UErrorCode &status) const U_OVERRIDE;
+ int32_t getCodePointCount() const U_OVERRIDE;
bool isStrong() const U_OVERRIDE;
+ bool containsField(UNumberFormatFields field) const U_OVERRIDE;
+
+ void getParameters(Parameters& output) const U_OVERRIDE;
+
+ bool semanticallyEquivalent(const Modifier& other) const U_OVERRIDE;
+
/**
* TODO: This belongs in SimpleFormatterImpl. The only reason I haven't moved it there yet is because
- * DoubleSidedStringBuilder is an internal class and SimpleFormatterImpl feels like it should not depend on it.
+ * NumberStringBuilder is an internal class and SimpleFormatterImpl feels like it should not depend on it.
*
* <p>
* Formats a value that is already stored inside the StringBuilder <code>result</code> between the indices
@@ -85,16 +100,33 @@ class U_I18N_API SimpleModifier : public Modifier, public UMemory {
* @return The number of characters (UTF-16 code points) that were added to the StringBuilder.
*/
int32_t
- formatAsPrefixSuffix(NumberStringBuilder &result, int32_t startIndex, int32_t endIndex, Field field,
- UErrorCode &status) const;
+ formatAsPrefixSuffix(NumberStringBuilder& result, int32_t startIndex, int32_t endIndex, Field field,
+ UErrorCode& status) const;
+
+ /**
+ * TODO: Like above, this belongs with the rest of the SimpleFormatterImpl code.
+ * I put it here so that the SimpleFormatter uses in NumberStringBuilder are near each other.
+ *
+ * <p>
+ * Applies the compiled two-argument pattern to the NumberStringBuilder.
+ *
+ * <p>
+ * This method is optimized for the case where the prefix and suffix are often empty, such as
+ * in the range pattern like "{0}-{1}".
+ */
+ static int32_t
+ formatTwoArgPattern(const SimpleFormatter& compiled, NumberStringBuilder& result,
+ int32_t index, int32_t* outPrefixLength, int32_t* outSuffixLength,
+ Field field, UErrorCode& status);
private:
UnicodeString fCompiledPattern;
Field fField;
- bool fStrong;
- int32_t fPrefixLength;
- int32_t fSuffixOffset;
- int32_t fSuffixLength;
+ bool fStrong = false;
+ int32_t fPrefixLength = 0;
+ int32_t fSuffixOffset = -1;
+ int32_t fSuffixLength = 0;
+ Modifier::Parameters fParameters;
};
/**
@@ -107,6 +139,18 @@ class U_I18N_API ConstantMultiFieldModifier : public Modifier, public UMemory {
const NumberStringBuilder &prefix,
const NumberStringBuilder &suffix,
bool overwrite,
+ bool strong,
+ const Modifier::Parameters parameters)
+ : fPrefix(prefix),
+ fSuffix(suffix),
+ fOverwrite(overwrite),
+ fStrong(strong),
+ fParameters(parameters) {}
+
+ ConstantMultiFieldModifier(
+ const NumberStringBuilder &prefix,
+ const NumberStringBuilder &suffix,
+ bool overwrite,
bool strong)
: fPrefix(prefix),
fSuffix(suffix),
@@ -116,12 +160,18 @@ class U_I18N_API ConstantMultiFieldModifier : public Modifier, public UMemory {
int32_t apply(NumberStringBuilder &output, int32_t leftIndex, int32_t rightIndex,
UErrorCode &status) const U_OVERRIDE;
- int32_t getPrefixLength(UErrorCode &status) const U_OVERRIDE;
+ int32_t getPrefixLength() const U_OVERRIDE;
- int32_t getCodePointCount(UErrorCode &status) const U_OVERRIDE;
+ int32_t getCodePointCount() const U_OVERRIDE;
bool isStrong() const U_OVERRIDE;
+ bool containsField(UNumberFormatFields field) const U_OVERRIDE;
+
+ void getParameters(Parameters& output) const U_OVERRIDE;
+
+ bool semanticallyEquivalent(const Modifier& other) const U_OVERRIDE;
+
protected:
// NOTE: In Java, these are stored as array pointers. In C++, the NumberStringBuilder is stored by
// value and is treated internally as immutable.
@@ -129,6 +179,7 @@ class U_I18N_API ConstantMultiFieldModifier : public Modifier, public UMemory {
NumberStringBuilder fSuffix;
bool fOverwrite;
bool fStrong;
+ Modifier::Parameters fParameters;
};
/** Identical to {@link ConstantMultiFieldModifier}, but supports currency spacing. */
@@ -192,13 +243,11 @@ class U_I18N_API EmptyModifier : public Modifier, public UMemory {
return 0;
}
- int32_t getPrefixLength(UErrorCode &status) const U_OVERRIDE {
- (void)status;
+ int32_t getPrefixLength() const U_OVERRIDE {
return 0;
}
- int32_t getCodePointCount(UErrorCode &status) const U_OVERRIDE {
- (void)status;
+ int32_t getCodePointCount() const U_OVERRIDE {
return 0;
}
@@ -206,55 +255,75 @@ class U_I18N_API EmptyModifier : public Modifier, public UMemory {
return fStrong;
}
+ bool containsField(UNumberFormatFields field) const U_OVERRIDE {
+ (void)field;
+ return false;
+ }
+
+ void getParameters(Parameters& output) const U_OVERRIDE {
+ output.obj = nullptr;
+ }
+
+ bool semanticallyEquivalent(const Modifier& other) const U_OVERRIDE {
+ return other.getCodePointCount() == 0;
+ }
+
private:
bool fStrong;
};
/**
- * A ParameterizedModifier by itself is NOT a Modifier. Rather, it wraps a data structure containing two or more
- * Modifiers and returns the modifier appropriate for the current situation.
+ * This implementation of ModifierStore adopts Modifer pointers.
*/
-class U_I18N_API ParameterizedModifier : public UMemory {
+class U_I18N_API AdoptingModifierStore : public ModifierStore, public UMemory {
public:
- // NOTE: mods is zero-initialized (to nullptr)
- ParameterizedModifier() : mods() {
- }
+ virtual ~AdoptingModifierStore();
- // No copying!
- ParameterizedModifier(const ParameterizedModifier &other) = delete;
+ static constexpr StandardPlural::Form DEFAULT_STANDARD_PLURAL = StandardPlural::OTHER;
- ~ParameterizedModifier() {
- for (const Modifier *mod : mods) {
- delete mod;
- }
- }
+ AdoptingModifierStore() = default;
- void adoptPositiveNegativeModifiers(
- const Modifier *positive, const Modifier *zero, const Modifier *negative) {
- mods[2] = positive;
- mods[1] = zero;
- mods[0] = negative;
- }
+ // No copying!
+ AdoptingModifierStore(const AdoptingModifierStore &other) = delete;
- /** The modifier is ADOPTED. */
- void adoptSignPluralModifier(int8_t signum, StandardPlural::Form plural, const Modifier *mod) {
+ /**
+ * Sets the Modifier with the specified signum and plural form.
+ */
+ void adoptModifier(int8_t signum, StandardPlural::Form plural, const Modifier *mod) {
+ U_ASSERT(mods[getModIndex(signum, plural)] == nullptr);
mods[getModIndex(signum, plural)] = mod;
}
+ /**
+ * Sets the Modifier with the specified signum.
+ * The modifier will apply to all plural forms.
+ */
+ void adoptModifierWithoutPlural(int8_t signum, const Modifier *mod) {
+ U_ASSERT(mods[getModIndex(signum, DEFAULT_STANDARD_PLURAL)] == nullptr);
+ mods[getModIndex(signum, DEFAULT_STANDARD_PLURAL)] = mod;
+ }
+
/** Returns a reference to the modifier; no ownership change. */
- const Modifier *getModifier(int8_t signum) const {
- return mods[signum + 1];
+ const Modifier *getModifier(int8_t signum, StandardPlural::Form plural) const U_OVERRIDE {
+ const Modifier* modifier = mods[getModIndex(signum, plural)];
+ if (modifier == nullptr && plural != DEFAULT_STANDARD_PLURAL) {
+ modifier = mods[getModIndex(signum, DEFAULT_STANDARD_PLURAL)];
+ }
+ return modifier;
}
/** Returns a reference to the modifier; no ownership change. */
- const Modifier *getModifier(int8_t signum, StandardPlural::Form plural) const {
- return mods[getModIndex(signum, plural)];
+ const Modifier *getModifierWithoutPlural(int8_t signum) const {
+ return mods[getModIndex(signum, DEFAULT_STANDARD_PLURAL)];
}
private:
- const Modifier *mods[3 * StandardPlural::COUNT];
+ // NOTE: mods is zero-initialized (to nullptr)
+ const Modifier *mods[3 * StandardPlural::COUNT] = {};
inline static int32_t getModIndex(int8_t signum, StandardPlural::Form plural) {
+ U_ASSERT(signum >= -1 && signum <= 1);
+ U_ASSERT(plural >= 0 && plural < StandardPlural::COUNT);
return static_cast<int32_t>(plural) * 3 + (signum + 1);
}
};
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_multiplier.cpp b/Build/source/libs/icu/icu-src/source/i18n/number_multiplier.cpp
new file mode 100644
index 00000000000..ecb50dd9b82
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_multiplier.cpp
@@ -0,0 +1,156 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+// Allow implicit conversion from char16_t* to UnicodeString for this file:
+// Helpful in toString methods and elsewhere.
+#define UNISTR_FROM_STRING_EXPLICIT
+
+#include "number_decnum.h"
+#include "number_types.h"
+#include "number_multiplier.h"
+#include "numparse_validators.h"
+#include "number_utils.h"
+#include "decNumber.h"
+
+using namespace icu;
+using namespace icu::number;
+using namespace icu::number::impl;
+using namespace icu::numparse::impl;
+
+
+Scale::Scale(int32_t magnitude, DecNum* arbitraryToAdopt)
+ : fMagnitude(magnitude), fArbitrary(arbitraryToAdopt), fError(U_ZERO_ERROR) {
+ if (fArbitrary != nullptr) {
+ // Attempt to convert the DecNum to a magnitude multiplier.
+ fArbitrary->normalize();
+ if (fArbitrary->getRawDecNumber()->digits == 1 && fArbitrary->getRawDecNumber()->lsu[0] == 1 &&
+ !fArbitrary->isNegative()) {
+ // Success!
+ fMagnitude += fArbitrary->getRawDecNumber()->exponent;
+ delete fArbitrary;
+ fArbitrary = nullptr;
+ }
+ }
+}
+
+Scale::Scale(const Scale& other)
+ : fMagnitude(other.fMagnitude), fArbitrary(nullptr), fError(other.fError) {
+ if (other.fArbitrary != nullptr) {
+ UErrorCode localStatus = U_ZERO_ERROR;
+ fArbitrary = new DecNum(*other.fArbitrary, localStatus);
+ }
+}
+
+Scale& Scale::operator=(const Scale& other) {
+ fMagnitude = other.fMagnitude;
+ if (other.fArbitrary != nullptr) {
+ UErrorCode localStatus = U_ZERO_ERROR;
+ fArbitrary = new DecNum(*other.fArbitrary, localStatus);
+ } else {
+ fArbitrary = nullptr;
+ }
+ fError = other.fError;
+ return *this;
+}
+
+Scale::Scale(Scale&& src) U_NOEXCEPT
+ : fMagnitude(src.fMagnitude), fArbitrary(src.fArbitrary), fError(src.fError) {
+ // Take ownership away from src if necessary
+ src.fArbitrary = nullptr;
+}
+
+Scale& Scale::operator=(Scale&& src) U_NOEXCEPT {
+ fMagnitude = src.fMagnitude;
+ fArbitrary = src.fArbitrary;
+ fError = src.fError;
+ // Take ownership away from src if necessary
+ src.fArbitrary = nullptr;
+ return *this;
+}
+
+Scale::~Scale() {
+ delete fArbitrary;
+}
+
+
+Scale Scale::none() {
+ return {0, nullptr};
+}
+
+Scale Scale::powerOfTen(int32_t power) {
+ return {power, nullptr};
+}
+
+Scale Scale::byDecimal(StringPiece multiplicand) {
+ UErrorCode localError = U_ZERO_ERROR;
+ LocalPointer<DecNum> decnum(new DecNum(), localError);
+ if (U_FAILURE(localError)) {
+ return {localError};
+ }
+ decnum->setTo(multiplicand, localError);
+ if (U_FAILURE(localError)) {
+ return {localError};
+ }
+ return {0, decnum.orphan()};
+}
+
+Scale Scale::byDouble(double multiplicand) {
+ UErrorCode localError = U_ZERO_ERROR;
+ LocalPointer<DecNum> decnum(new DecNum(), localError);
+ if (U_FAILURE(localError)) {
+ return {localError};
+ }
+ decnum->setTo(multiplicand, localError);
+ if (U_FAILURE(localError)) {
+ return {localError};
+ }
+ return {0, decnum.orphan()};
+}
+
+Scale Scale::byDoubleAndPowerOfTen(double multiplicand, int32_t power) {
+ UErrorCode localError = U_ZERO_ERROR;
+ LocalPointer<DecNum> decnum(new DecNum(), localError);
+ if (U_FAILURE(localError)) {
+ return {localError};
+ }
+ decnum->setTo(multiplicand, localError);
+ if (U_FAILURE(localError)) {
+ return {localError};
+ }
+ return {power, decnum.orphan()};
+}
+
+void Scale::applyTo(impl::DecimalQuantity& quantity) const {
+ quantity.adjustMagnitude(fMagnitude);
+ if (fArbitrary != nullptr) {
+ UErrorCode localStatus = U_ZERO_ERROR;
+ quantity.multiplyBy(*fArbitrary, localStatus);
+ }
+}
+
+void Scale::applyReciprocalTo(impl::DecimalQuantity& quantity) const {
+ quantity.adjustMagnitude(-fMagnitude);
+ if (fArbitrary != nullptr) {
+ UErrorCode localStatus = U_ZERO_ERROR;
+ quantity.divideBy(*fArbitrary, localStatus);
+ }
+}
+
+
+void
+MultiplierFormatHandler::setAndChain(const Scale& multiplier, const MicroPropsGenerator* parent) {
+ fMultiplier = multiplier;
+ fParent = parent;
+}
+
+void MultiplierFormatHandler::processQuantity(DecimalQuantity& quantity, MicroProps& micros,
+ UErrorCode& status) const {
+ fParent->processQuantity(quantity, micros, status);
+ fMultiplier.applyTo(quantity);
+}
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_multiplier.h b/Build/source/libs/icu/icu-src/source/i18n/number_multiplier.h
new file mode 100644
index 00000000000..d8235dc601b
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_multiplier.h
@@ -0,0 +1,57 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+#ifndef __SOURCE_NUMBER_MULTIPLIER_H__
+#define __SOURCE_NUMBER_MULTIPLIER_H__
+
+#include "numparse_types.h"
+#include "number_decimfmtprops.h"
+
+U_NAMESPACE_BEGIN namespace number {
+namespace impl {
+
+
+/**
+ * Wraps a {@link Multiplier} for use in the number formatting pipeline.
+ */
+// Exported as U_I18N_API for tests
+class U_I18N_API MultiplierFormatHandler : public MicroPropsGenerator, public UMemory {
+ public:
+ MultiplierFormatHandler() = default; // WARNING: Leaves object in an unusable state; call setAndChain()
+
+ void setAndChain(const Scale& multiplier, const MicroPropsGenerator* parent);
+
+ void processQuantity(DecimalQuantity& quantity, MicroProps& micros,
+ UErrorCode& status) const U_OVERRIDE;
+
+ private:
+ Scale fMultiplier;
+ const MicroPropsGenerator *fParent;
+};
+
+
+/** Gets a Scale from a DecimalFormatProperties. In Java, defined in RoundingUtils.java */
+static inline Scale scaleFromProperties(const DecimalFormatProperties& properties) {
+ int32_t magnitudeMultiplier = properties.magnitudeMultiplier + properties.multiplierScale;
+ int32_t arbitraryMultiplier = properties.multiplier;
+ if (magnitudeMultiplier != 0 && arbitraryMultiplier != 1) {
+ return Scale::byDoubleAndPowerOfTen(arbitraryMultiplier, magnitudeMultiplier);
+ } else if (magnitudeMultiplier != 0) {
+ return Scale::powerOfTen(magnitudeMultiplier);
+ } else if (arbitraryMultiplier != 1) {
+ return Scale::byDouble(arbitraryMultiplier);
+ } else {
+ return Scale::none();
+ }
+}
+
+
+} // namespace impl
+} // namespace number
+U_NAMESPACE_END
+
+#endif //__SOURCE_NUMBER_MULTIPLIER_H__
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_notation.cpp b/Build/source/libs/icu/icu-src/source/i18n/number_notation.cpp
index f4ad333354d..b3cabb57a50 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/number_notation.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_notation.cpp
@@ -3,7 +3,7 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
#include "unicode/numberformatter.h"
#include "number_types.h"
@@ -36,6 +36,19 @@ ScientificNotation Notation::engineering() {
return {NTN_SCIENTIFIC, union_};
}
+ScientificNotation::ScientificNotation(int8_t fEngineeringInterval, bool fRequireMinInt,
+ impl::digits_t fMinExponentDigits,
+ UNumberSignDisplay fExponentSignDisplay) {
+ ScientificSettings settings;
+ settings.fEngineeringInterval = fEngineeringInterval;
+ settings.fRequireMinInt = fRequireMinInt;
+ settings.fMinExponentDigits = fMinExponentDigits;
+ settings.fExponentSignDisplay = fExponentSignDisplay;
+ NotationUnion union_;
+ union_.scientific = settings;
+ *this = {NTN_SCIENTIFIC, union_};
+}
+
Notation Notation::compactShort() {
NotationUnion union_;
union_.compactStyle = CompactStyle::UNUM_SHORT;
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_padding.cpp b/Build/source/libs/icu/icu-src/source/i18n/number_padding.cpp
index b1db3490cd4..31684d7208b 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/number_padding.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_padding.cpp
@@ -3,11 +3,12 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
#include "unicode/numberformatter.h"
#include "number_types.h"
#include "number_stringbuilder.h"
+#include "number_decimfmtprops.h"
using namespace icu;
using namespace icu::number;
@@ -28,6 +29,7 @@ addPaddingHelper(UChar32 paddingCp, int32_t requiredPadding, NumberStringBuilder
}
Padder::Padder(UChar32 cp, int32_t width, UNumberFormatPadPosition position) : fWidth(width) {
+ // TODO(13034): Consider making this a string instead of code point.
fUnion.padding.fCp = cp;
fUnion.padding.fPosition = position;
}
@@ -47,10 +49,20 @@ Padder Padder::codePoints(UChar32 cp, int32_t targetWidth, UNumberFormatPadPosit
}
}
+Padder Padder::forProperties(const DecimalFormatProperties& properties) {
+ UChar32 padCp;
+ if (properties.padString.length() > 0) {
+ padCp = properties.padString.char32At(0);
+ } else {
+ padCp = kFallbackPaddingString[0];
+ }
+ return {padCp, properties.formatWidth, properties.padPosition.getOrDefault(UNUM_PAD_BEFORE_PREFIX)};
+}
+
int32_t Padder::padAndApply(const Modifier &mod1, const Modifier &mod2,
NumberStringBuilder &string, int32_t leftIndex, int32_t rightIndex,
UErrorCode &status) const {
- int32_t modLength = mod1.getCodePointCount(status) + mod2.getCodePointCount(status);
+ int32_t modLength = mod1.getCodePointCount() + mod2.getCodePointCount();
int32_t requiredPadding = fWidth - modLength - string.codePointCount();
U_ASSERT(leftIndex == 0 &&
rightIndex == string.length()); // fix the previous line to remove this assertion
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_patternmodifier.cpp b/Build/source/libs/icu/icu-src/source/i18n/number_patternmodifier.cpp
index e182104c911..4c61a0d35bc 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/number_patternmodifier.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_patternmodifier.cpp
@@ -3,58 +3,62 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
#include "cstring.h"
#include "number_patternmodifier.h"
#include "unicode/dcfmtsym.h"
#include "unicode/ucurr.h"
#include "unicode/unistr.h"
+#include "number_microprops.h"
using namespace icu;
using namespace icu::number;
using namespace icu::number::impl;
-MutablePatternModifier::MutablePatternModifier(bool isStrong) : fStrong(isStrong) {}
-void MutablePatternModifier::setPatternInfo(const AffixPatternProvider *patternInfo) {
- this->patternInfo = patternInfo;
+AffixPatternProvider::~AffixPatternProvider() = default;
+
+
+MutablePatternModifier::MutablePatternModifier(bool isStrong)
+ : fStrong(isStrong) {}
+
+void MutablePatternModifier::setPatternInfo(const AffixPatternProvider* patternInfo) {
+ fPatternInfo = patternInfo;
}
void MutablePatternModifier::setPatternAttributes(UNumberSignDisplay signDisplay, bool perMille) {
- this->signDisplay = signDisplay;
+ fSignDisplay = signDisplay;
this->perMilleReplacesPercent = perMille;
}
-void
-MutablePatternModifier::setSymbols(const DecimalFormatSymbols *symbols, const CurrencyUnit &currency,
- const UNumberUnitWidth unitWidth, const PluralRules *rules) {
+void MutablePatternModifier::setSymbols(const DecimalFormatSymbols* symbols,
+ const CurrencySymbols* currencySymbols,
+ const UNumberUnitWidth unitWidth, const PluralRules* rules) {
U_ASSERT((rules != nullptr) == needsPlurals());
- this->symbols = symbols;
- uprv_memcpy(static_cast<char16_t *>(this->currencyCode),
- currency.getISOCurrency(),
- sizeof(char16_t) * 4);
- this->unitWidth = unitWidth;
- this->rules = rules;
+ fSymbols = symbols;
+ fCurrencySymbols = currencySymbols;
+ fUnitWidth = unitWidth;
+ fRules = rules;
}
void MutablePatternModifier::setNumberProperties(int8_t signum, StandardPlural::Form plural) {
- this->signum = signum;
- this->plural = plural;
+ fSignum = signum;
+ fPlural = plural;
}
bool MutablePatternModifier::needsPlurals() const {
UErrorCode statusLocal = U_ZERO_ERROR;
- return patternInfo->containsSymbolType(AffixPatternType::TYPE_CURRENCY_TRIPLE, statusLocal);
+ return fPatternInfo->containsSymbolType(AffixPatternType::TYPE_CURRENCY_TRIPLE, statusLocal);
// Silently ignore any error codes.
}
-ImmutablePatternModifier *MutablePatternModifier::createImmutable(UErrorCode &status) {
+ImmutablePatternModifier* MutablePatternModifier::createImmutable(UErrorCode& status) {
return createImmutableAndChain(nullptr, status);
}
-ImmutablePatternModifier *
-MutablePatternModifier::createImmutableAndChain(const MicroPropsGenerator *parent, UErrorCode &status) {
+ImmutablePatternModifier*
+MutablePatternModifier::createImmutableAndChain(const MicroPropsGenerator* parent, UErrorCode& status) {
// TODO: Move StandardPlural VALUES to standardplural.h
static const StandardPlural::Form STANDARD_PLURAL_VALUES[] = {
@@ -65,7 +69,7 @@ MutablePatternModifier::createImmutableAndChain(const MicroPropsGenerator *paren
StandardPlural::Form::MANY,
StandardPlural::Form::OTHER};
- auto pm = new ParameterizedModifier();
+ auto pm = new AdoptingModifierStore();
if (pm == nullptr) {
status = U_MEMORY_ALLOCATION_ERROR;
return nullptr;
@@ -75,26 +79,25 @@ MutablePatternModifier::createImmutableAndChain(const MicroPropsGenerator *paren
// Slower path when we require the plural keyword.
for (StandardPlural::Form plural : STANDARD_PLURAL_VALUES) {
setNumberProperties(1, plural);
- pm->adoptSignPluralModifier(1, plural, createConstantModifier(status));
+ pm->adoptModifier(1, plural, createConstantModifier(status));
setNumberProperties(0, plural);
- pm->adoptSignPluralModifier(0, plural, createConstantModifier(status));
+ pm->adoptModifier(0, plural, createConstantModifier(status));
setNumberProperties(-1, plural);
- pm->adoptSignPluralModifier(-1, plural, createConstantModifier(status));
+ pm->adoptModifier(-1, plural, createConstantModifier(status));
}
if (U_FAILURE(status)) {
delete pm;
return nullptr;
}
- return new ImmutablePatternModifier(pm, rules, parent); // adopts pm
+ return new ImmutablePatternModifier(pm, fRules, parent); // adopts pm
} else {
// Faster path when plural keyword is not needed.
setNumberProperties(1, StandardPlural::Form::COUNT);
- Modifier *positive = createConstantModifier(status);
+ pm->adoptModifierWithoutPlural(1, createConstantModifier(status));
setNumberProperties(0, StandardPlural::Form::COUNT);
- Modifier *zero = createConstantModifier(status);
+ pm->adoptModifierWithoutPlural(0, createConstantModifier(status));
setNumberProperties(-1, StandardPlural::Form::COUNT);
- Modifier *negative = createConstantModifier(status);
- pm->adoptPositiveNegativeModifiers(positive, zero, negative);
+ pm->adoptModifierWithoutPlural(-1, createConstantModifier(status));
if (U_FAILURE(status)) {
delete pm;
return nullptr;
@@ -103,77 +106,91 @@ MutablePatternModifier::createImmutableAndChain(const MicroPropsGenerator *paren
}
}
-ConstantMultiFieldModifier *MutablePatternModifier::createConstantModifier(UErrorCode &status) {
+ConstantMultiFieldModifier* MutablePatternModifier::createConstantModifier(UErrorCode& status) {
NumberStringBuilder a;
NumberStringBuilder b;
insertPrefix(a, 0, status);
insertSuffix(b, 0, status);
- if (patternInfo->hasCurrencySign()) {
- return new CurrencySpacingEnabledModifier(a, b, !patternInfo->hasBody(), fStrong, *symbols, status);
+ if (fPatternInfo->hasCurrencySign()) {
+ return new CurrencySpacingEnabledModifier(
+ a, b, !fPatternInfo->hasBody(), fStrong, *fSymbols, status);
} else {
- return new ConstantMultiFieldModifier(a, b, !patternInfo->hasBody(), fStrong);
+ return new ConstantMultiFieldModifier(a, b, !fPatternInfo->hasBody(), fStrong);
}
}
-ImmutablePatternModifier::ImmutablePatternModifier(ParameterizedModifier *pm, const PluralRules *rules,
- const MicroPropsGenerator *parent)
+ImmutablePatternModifier::ImmutablePatternModifier(AdoptingModifierStore* pm, const PluralRules* rules,
+ const MicroPropsGenerator* parent)
: pm(pm), rules(rules), parent(parent) {}
-void ImmutablePatternModifier::processQuantity(DecimalQuantity &quantity, MicroProps &micros,
- UErrorCode &status) const {
+void ImmutablePatternModifier::processQuantity(DecimalQuantity& quantity, MicroProps& micros,
+ UErrorCode& status) const {
parent->processQuantity(quantity, micros, status);
applyToMicros(micros, quantity);
}
-void ImmutablePatternModifier::applyToMicros(MicroProps &micros, DecimalQuantity &quantity) const {
+void ImmutablePatternModifier::applyToMicros(MicroProps& micros, DecimalQuantity& quantity) const {
if (rules == nullptr) {
- micros.modMiddle = pm->getModifier(quantity.signum());
+ micros.modMiddle = pm->getModifierWithoutPlural(quantity.signum());
} else {
// TODO: Fix this. Avoid the copy.
DecimalQuantity copy(quantity);
copy.roundToInfinity();
- StandardPlural::Form plural = copy.getStandardPlural(rules);
+ StandardPlural::Form plural = utils::getStandardPlural(rules, copy);
micros.modMiddle = pm->getModifier(quantity.signum(), plural);
}
}
+const Modifier* ImmutablePatternModifier::getModifier(int8_t signum, StandardPlural::Form plural) const {
+ if (rules == nullptr) {
+ return pm->getModifierWithoutPlural(signum);
+ } else {
+ return pm->getModifier(signum, plural);
+ }
+}
+
+
/** Used by the unsafe code path. */
-MicroPropsGenerator &MutablePatternModifier::addToChain(const MicroPropsGenerator *parent) {
- this->parent = parent;
+MicroPropsGenerator& MutablePatternModifier::addToChain(const MicroPropsGenerator* parent) {
+ fParent = parent;
return *this;
}
-void MutablePatternModifier::processQuantity(DecimalQuantity &fq, MicroProps &micros,
- UErrorCode &status) const {
- parent->processQuantity(fq, micros, status);
+void MutablePatternModifier::processQuantity(DecimalQuantity& fq, MicroProps& micros,
+ UErrorCode& status) const {
+ fParent->processQuantity(fq, micros, status);
// The unsafe code path performs self-mutation, so we need a const_cast.
// This method needs to be const because it overrides a const method in the parent class.
- auto nonConstThis = const_cast<MutablePatternModifier *>(this);
+ auto nonConstThis = const_cast<MutablePatternModifier*>(this);
if (needsPlurals()) {
// TODO: Fix this. Avoid the copy.
DecimalQuantity copy(fq);
- micros.rounding.apply(copy, status);
- nonConstThis->setNumberProperties(fq.signum(), copy.getStandardPlural(rules));
+ micros.rounder.apply(copy, status);
+ nonConstThis->setNumberProperties(fq.signum(), utils::getStandardPlural(fRules, copy));
} else {
nonConstThis->setNumberProperties(fq.signum(), StandardPlural::Form::COUNT);
}
micros.modMiddle = this;
}
-int32_t MutablePatternModifier::apply(NumberStringBuilder &output, int32_t leftIndex, int32_t rightIndex,
- UErrorCode &status) const {
+int32_t MutablePatternModifier::apply(NumberStringBuilder& output, int32_t leftIndex, int32_t rightIndex,
+ UErrorCode& status) const {
// The unsafe code path performs self-mutation, so we need a const_cast.
// This method needs to be const because it overrides a const method in the parent class.
- auto nonConstThis = const_cast<MutablePatternModifier *>(this);
+ auto nonConstThis = const_cast<MutablePatternModifier*>(this);
int32_t prefixLen = nonConstThis->insertPrefix(output, leftIndex, status);
int32_t suffixLen = nonConstThis->insertSuffix(output, rightIndex + prefixLen, status);
// If the pattern had no decimal stem body (like #,##0.00), overwrite the value.
int32_t overwriteLen = 0;
- if (!patternInfo->hasBody()) {
+ if (!fPatternInfo->hasBody()) {
overwriteLen = output.splice(
- leftIndex + prefixLen, rightIndex + prefixLen,
- UnicodeString(), 0, 0, UNUM_FIELD_COUNT,
- status);
+ leftIndex + prefixLen,
+ rightIndex + prefixLen,
+ UnicodeString(),
+ 0,
+ 0,
+ UNUM_FIELD_COUNT,
+ status);
}
CurrencySpacingEnabledModifier::applyCurrencySpacing(
output,
@@ -181,35 +198,34 @@ int32_t MutablePatternModifier::apply(NumberStringBuilder &output, int32_t leftI
prefixLen,
rightIndex + overwriteLen + prefixLen,
suffixLen,
- *symbols,
+ *fSymbols,
status);
return prefixLen + overwriteLen + suffixLen;
}
-int32_t MutablePatternModifier::getPrefixLength(UErrorCode &status) const {
+int32_t MutablePatternModifier::getPrefixLength() const {
// The unsafe code path performs self-mutation, so we need a const_cast.
// This method needs to be const because it overrides a const method in the parent class.
- auto nonConstThis = const_cast<MutablePatternModifier *>(this);
+ auto nonConstThis = const_cast<MutablePatternModifier*>(this);
// Enter and exit CharSequence Mode to get the length.
- nonConstThis->enterCharSequenceMode(true);
- int result = AffixUtils::unescapedCodePointCount(*this, *this, status); // prefix length
- nonConstThis->exitCharSequenceMode();
+ UErrorCode status = U_ZERO_ERROR; // status fails only with an iilegal argument exception
+ nonConstThis->prepareAffix(true);
+ int result = AffixUtils::unescapedCodePointCount(currentAffix, *this, status); // prefix length
return result;
}
-int32_t MutablePatternModifier::getCodePointCount(UErrorCode &status) const {
+int32_t MutablePatternModifier::getCodePointCount() const {
// The unsafe code path performs self-mutation, so we need a const_cast.
// This method needs to be const because it overrides a const method in the parent class.
- auto nonConstThis = const_cast<MutablePatternModifier *>(this);
-
- // Enter and exit CharSequence Mode to get the length.
- nonConstThis->enterCharSequenceMode(true);
- int result = AffixUtils::unescapedCodePointCount(*this, *this, status); // prefix length
- nonConstThis->exitCharSequenceMode();
- nonConstThis->enterCharSequenceMode(false);
- result += AffixUtils::unescapedCodePointCount(*this, *this, status); // suffix length
- nonConstThis->exitCharSequenceMode();
+ auto nonConstThis = const_cast<MutablePatternModifier*>(this);
+
+ // Render the affixes to get the length
+ UErrorCode status = U_ZERO_ERROR; // status fails only with an iilegal argument exception
+ nonConstThis->prepareAffix(true);
+ int result = AffixUtils::unescapedCodePointCount(currentAffix, *this, status); // prefix length
+ nonConstThis->prepareAffix(false);
+ result += AffixUtils::unescapedCodePointCount(currentAffix, *this, status); // suffix length
return result;
}
@@ -217,72 +233,75 @@ bool MutablePatternModifier::isStrong() const {
return fStrong;
}
-int32_t MutablePatternModifier::insertPrefix(NumberStringBuilder &sb, int position, UErrorCode &status) {
- enterCharSequenceMode(true);
- int length = AffixUtils::unescape(*this, sb, position, *this, status);
- exitCharSequenceMode();
+bool MutablePatternModifier::containsField(UNumberFormatFields field) const {
+ (void)field;
+ // This method is not currently used.
+ U_ASSERT(false);
+ return false;
+}
+
+void MutablePatternModifier::getParameters(Parameters& output) const {
+ (void)output;
+ // This method is not currently used.
+ U_ASSERT(false);
+}
+
+bool MutablePatternModifier::semanticallyEquivalent(const Modifier& other) const {
+ (void)other;
+ // This method is not currently used.
+ U_ASSERT(false);
+ return false;
+}
+
+int32_t MutablePatternModifier::insertPrefix(NumberStringBuilder& sb, int position, UErrorCode& status) {
+ prepareAffix(true);
+ int length = AffixUtils::unescape(currentAffix, sb, position, *this, status);
return length;
}
-int32_t MutablePatternModifier::insertSuffix(NumberStringBuilder &sb, int position, UErrorCode &status) {
- enterCharSequenceMode(false);
- int length = AffixUtils::unescape(*this, sb, position, *this, status);
- exitCharSequenceMode();
+int32_t MutablePatternModifier::insertSuffix(NumberStringBuilder& sb, int position, UErrorCode& status) {
+ prepareAffix(false);
+ int length = AffixUtils::unescape(currentAffix, sb, position, *this, status);
return length;
}
+/** This method contains the heart of the logic for rendering LDML affix strings. */
+void MutablePatternModifier::prepareAffix(bool isPrefix) {
+ PatternStringUtils::patternInfoToStringBuilder(
+ *fPatternInfo, isPrefix, fSignum, fSignDisplay, fPlural, perMilleReplacesPercent, currentAffix);
+}
+
UnicodeString MutablePatternModifier::getSymbol(AffixPatternType type) const {
+ UErrorCode localStatus = U_ZERO_ERROR;
switch (type) {
case AffixPatternType::TYPE_MINUS_SIGN:
- return symbols->getSymbol(DecimalFormatSymbols::ENumberFormatSymbol::kMinusSignSymbol);
+ return fSymbols->getSymbol(DecimalFormatSymbols::ENumberFormatSymbol::kMinusSignSymbol);
case AffixPatternType::TYPE_PLUS_SIGN:
- return symbols->getSymbol(DecimalFormatSymbols::ENumberFormatSymbol::kPlusSignSymbol);
+ return fSymbols->getSymbol(DecimalFormatSymbols::ENumberFormatSymbol::kPlusSignSymbol);
case AffixPatternType::TYPE_PERCENT:
- return symbols->getSymbol(DecimalFormatSymbols::ENumberFormatSymbol::kPercentSymbol);
+ return fSymbols->getSymbol(DecimalFormatSymbols::ENumberFormatSymbol::kPercentSymbol);
case AffixPatternType::TYPE_PERMILLE:
- return symbols->getSymbol(DecimalFormatSymbols::ENumberFormatSymbol::kPerMillSymbol);
+ return fSymbols->getSymbol(DecimalFormatSymbols::ENumberFormatSymbol::kPerMillSymbol);
case AffixPatternType::TYPE_CURRENCY_SINGLE: {
// UnitWidth ISO and HIDDEN overrides the singular currency symbol.
- if (unitWidth == UNumberUnitWidth::UNUM_UNIT_WIDTH_ISO_CODE) {
- return UnicodeString(currencyCode, 3);
- } else if (unitWidth == UNumberUnitWidth::UNUM_UNIT_WIDTH_HIDDEN) {
+ if (fUnitWidth == UNumberUnitWidth::UNUM_UNIT_WIDTH_ISO_CODE) {
+ return fCurrencySymbols->getIntlCurrencySymbol(localStatus);
+ } else if (fUnitWidth == UNumberUnitWidth::UNUM_UNIT_WIDTH_HIDDEN) {
return UnicodeString();
+ } else if (fUnitWidth == UNumberUnitWidth::UNUM_UNIT_WIDTH_NARROW) {
+ return fCurrencySymbols->getNarrowCurrencySymbol(localStatus);
} else {
- UCurrNameStyle selector = (unitWidth == UNumberUnitWidth::UNUM_UNIT_WIDTH_NARROW)
- ? UCurrNameStyle::UCURR_NARROW_SYMBOL_NAME
- : UCurrNameStyle::UCURR_SYMBOL_NAME;
- UErrorCode status = U_ZERO_ERROR;
- UBool isChoiceFormat = FALSE;
- int32_t symbolLen = 0;
- const char16_t *symbol = ucurr_getName(
- currencyCode,
- symbols->getLocale().getName(),
- selector,
- &isChoiceFormat,
- &symbolLen,
- &status);
- return UnicodeString(symbol, symbolLen);
+ return fCurrencySymbols->getCurrencySymbol(localStatus);
}
}
case AffixPatternType::TYPE_CURRENCY_DOUBLE:
- return UnicodeString(currencyCode, 3);
- case AffixPatternType::TYPE_CURRENCY_TRIPLE: {
+ return fCurrencySymbols->getIntlCurrencySymbol(localStatus);
+ case AffixPatternType::TYPE_CURRENCY_TRIPLE:
// NOTE: This is the code path only for patterns containing "¤¤¤".
// Plural currencies set via the API are formatted in LongNameHandler.
// This code path is used by DecimalFormat via CurrencyPluralInfo.
- U_ASSERT(plural != StandardPlural::Form::COUNT);
- UErrorCode status = U_ZERO_ERROR;
- UBool isChoiceFormat = FALSE;
- int32_t symbolLen = 0;
- const char16_t *symbol = ucurr_getPluralName(
- currencyCode,
- symbols->getLocale().getName(),
- &isChoiceFormat,
- StandardPlural::getKeyword(plural),
- &symbolLen,
- &status);
- return UnicodeString(symbol, symbolLen);
- }
+ U_ASSERT(fPlural != StandardPlural::Form::COUNT);
+ return fCurrencySymbols->getPluralName(fPlural, localStatus);
case AffixPatternType::TYPE_CURRENCY_QUAD:
return UnicodeString(u"\uFFFD");
case AffixPatternType::TYPE_CURRENCY_QUINT:
@@ -293,79 +312,6 @@ UnicodeString MutablePatternModifier::getSymbol(AffixPatternType type) const {
}
}
-/** This method contains the heart of the logic for rendering LDML affix strings. */
-void MutablePatternModifier::enterCharSequenceMode(bool isPrefix) {
- U_ASSERT(!inCharSequenceMode);
- inCharSequenceMode = true;
-
- // Should the output render '+' where '-' would normally appear in the pattern?
- plusReplacesMinusSign = signum != -1
- && (signDisplay == UNUM_SIGN_ALWAYS
- || signDisplay == UNUM_SIGN_ACCOUNTING_ALWAYS
- || (signum == 1
- && (signDisplay == UNUM_SIGN_EXCEPT_ZERO
- || signDisplay == UNUM_SIGN_ACCOUNTING_EXCEPT_ZERO)))
- && patternInfo->positiveHasPlusSign() == false;
-
- // Should we use the affix from the negative subpattern? (If not, we will use the positive subpattern.)
- bool useNegativeAffixPattern = patternInfo->hasNegativeSubpattern() && (
- signum == -1 || (patternInfo->negativeHasMinusSign() && plusReplacesMinusSign));
-
- // Resolve the flags for the affix pattern.
- fFlags = 0;
- if (useNegativeAffixPattern) {
- fFlags |= AffixPatternProvider::AFFIX_NEGATIVE_SUBPATTERN;
- }
- if (isPrefix) {
- fFlags |= AffixPatternProvider::AFFIX_PREFIX;
- }
- if (plural != StandardPlural::Form::COUNT) {
- U_ASSERT(plural == (AffixPatternProvider::AFFIX_PLURAL_MASK & plural));
- fFlags |= plural;
- }
-
- // Should we prepend a sign to the pattern?
- if (!isPrefix || useNegativeAffixPattern) {
- prependSign = false;
- } else if (signum == -1) {
- prependSign = signDisplay != UNUM_SIGN_NEVER;
- } else {
- prependSign = plusReplacesMinusSign;
- }
-
- // Finally, compute the length of the affix pattern.
- fLength = patternInfo->length(fFlags) + (prependSign ? 1 : 0);
-}
-
-void MutablePatternModifier::exitCharSequenceMode() {
- U_ASSERT(inCharSequenceMode);
- inCharSequenceMode = false;
-}
-
-int32_t MutablePatternModifier::length() const {
- U_ASSERT(inCharSequenceMode);
- return fLength;
-}
-
-char16_t MutablePatternModifier::charAt(int32_t index) const {
- U_ASSERT(inCharSequenceMode);
- char16_t candidate;
- if (prependSign && index == 0) {
- candidate = u'-';
- } else if (prependSign) {
- candidate = patternInfo->charAt(fFlags, index - 1);
- } else {
- candidate = patternInfo->charAt(fFlags, index);
- }
- if (plusReplacesMinusSign && candidate == u'-') {
- return u'+';
- }
- if (perMilleReplacesPercent && candidate == u'%') {
- return u'‰';
- }
- return candidate;
-}
-
UnicodeString MutablePatternModifier::toUnicodeString() const {
// Never called by AffixUtils
U_ASSERT(false);
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_patternmodifier.h b/Build/source/libs/icu/icu-src/source/i18n/number_patternmodifier.h
index 9c8b95f7764..ea80d6305e7 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/number_patternmodifier.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_patternmodifier.h
@@ -3,7 +3,7 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
#ifndef __NUMBER_PATTERNMODIFIER_H__
#define __NUMBER_PATTERNMODIFIER_H__
@@ -13,17 +13,18 @@
#include "number_types.h"
#include "number_modifiers.h"
#include "number_utils.h"
+#include "number_currencysymbols.h"
U_NAMESPACE_BEGIN
// Export an explicit template instantiation of the LocalPointer that is used as a
-// data member of ParameterizedModifier.
+// data member of AdoptingModifierStore.
// (When building DLLs for Windows this is required.)
#if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN
// Ignore warning 4661 as LocalPointerBase does not use operator== or operator!=
#pragma warning(suppress: 4661)
-template class U_I18N_API LocalPointerBase<number::impl::ParameterizedModifier>;
-template class U_I18N_API LocalPointer<number::impl::ParameterizedModifier>;
+template class U_I18N_API LocalPointerBase<number::impl::AdoptingModifierStore>;
+template class U_I18N_API LocalPointer<number::impl::AdoptingModifierStore>;
#endif
namespace number {
@@ -35,20 +36,23 @@ class MutablePatternModifier;
// Exported as U_I18N_API because it is needed for the unit test PatternModifierTest
class U_I18N_API ImmutablePatternModifier : public MicroPropsGenerator, public UMemory {
public:
- ~ImmutablePatternModifier() U_OVERRIDE = default;
+ ~ImmutablePatternModifier() U_OVERRIDE = default;
- void processQuantity(DecimalQuantity &, MicroProps &micros, UErrorCode &status) const U_OVERRIDE;
+ void processQuantity(DecimalQuantity&, MicroProps& micros, UErrorCode& status) const U_OVERRIDE;
+
+ void applyToMicros(MicroProps& micros, DecimalQuantity& quantity) const;
- void applyToMicros(MicroProps &micros, DecimalQuantity &quantity) const;
+ const Modifier* getModifier(int8_t signum, StandardPlural::Form plural) const;
private:
- ImmutablePatternModifier(ParameterizedModifier *pm, const PluralRules *rules, const MicroPropsGenerator *parent);
+ ImmutablePatternModifier(AdoptingModifierStore* pm, const PluralRules* rules,
+ const MicroPropsGenerator* parent);
- const LocalPointer<ParameterizedModifier> pm;
- const PluralRules *rules;
- const MicroPropsGenerator *parent;
+ const LocalPointer<AdoptingModifierStore> pm;
+ const PluralRules* rules;
+ const MicroPropsGenerator* parent;
- friend class MutablePatternModifier;
+ friend class MutablePatternModifier;
};
/**
@@ -74,7 +78,6 @@ class U_I18N_API MutablePatternModifier
: public MicroPropsGenerator,
public Modifier,
public SymbolProvider,
- public CharSequence,
public UMemory {
public:
@@ -110,17 +113,16 @@ class U_I18N_API MutablePatternModifier
*
* @param symbols
* The desired instance of DecimalFormatSymbols.
- * @param currency
- * The currency to be used when substituting currency values into the affixes.
+ * @param currencySymbols
+ * The currency symbols to be used when substituting currency values into the affixes.
* @param unitWidth
* The width used to render currencies.
* @param rules
* Required if the triple currency sign, "¤¤¤", appears in the pattern, which can be determined from the
* convenience method {@link #needsPlurals()}.
*/
- void
- setSymbols(const DecimalFormatSymbols *symbols, const CurrencyUnit &currency, UNumberUnitWidth unitWidth,
- const PluralRules *rules);
+ void setSymbols(const DecimalFormatSymbols* symbols, const CurrencySymbols* currencySymbols,
+ UNumberUnitWidth unitWidth, const PluralRules* rules);
/**
* Sets attributes of the current number being processed.
@@ -176,53 +178,49 @@ class U_I18N_API MutablePatternModifier
int32_t apply(NumberStringBuilder &output, int32_t leftIndex, int32_t rightIndex,
UErrorCode &status) const U_OVERRIDE;
- int32_t getPrefixLength(UErrorCode &status) const U_OVERRIDE;
+ int32_t getPrefixLength() const U_OVERRIDE;
- int32_t getCodePointCount(UErrorCode &status) const U_OVERRIDE;
+ int32_t getCodePointCount() const U_OVERRIDE;
bool isStrong() const U_OVERRIDE;
+ bool containsField(UNumberFormatFields field) const U_OVERRIDE;
+
+ void getParameters(Parameters& output) const U_OVERRIDE;
+
+ bool semanticallyEquivalent(const Modifier& other) const U_OVERRIDE;
+
/**
* Returns the string that substitutes a given symbol type in a pattern.
*/
UnicodeString getSymbol(AffixPatternType type) const U_OVERRIDE;
- int32_t length() const U_OVERRIDE;
-
- char16_t charAt(int32_t index) const U_OVERRIDE;
-
- // Use default implementation of codePointAt
-
- UnicodeString toUnicodeString() const U_OVERRIDE;
+ UnicodeString toUnicodeString() const;
private:
// Modifier details (initialized in constructor)
const bool fStrong;
// Pattern details (initialized in setPatternInfo and setPatternAttributes)
- const AffixPatternProvider *patternInfo;
- UNumberSignDisplay signDisplay;
+ const AffixPatternProvider *fPatternInfo;
+ UNumberSignDisplay fSignDisplay;
bool perMilleReplacesPercent;
// Symbol details (initialized in setSymbols)
- const DecimalFormatSymbols *symbols;
- UNumberUnitWidth unitWidth;
- char16_t currencyCode[4];
- const PluralRules *rules;
+ const DecimalFormatSymbols *fSymbols;
+ UNumberUnitWidth fUnitWidth;
+ const CurrencySymbols *fCurrencySymbols;
+ const PluralRules *fRules;
// Number details (initialized in setNumberProperties)
- int8_t signum;
- StandardPlural::Form plural;
+ int8_t fSignum;
+ StandardPlural::Form fPlural;
// QuantityChain details (initialized in addToChain)
- const MicroPropsGenerator *parent;
+ const MicroPropsGenerator *fParent;
- // Transient CharSequence fields (initialized in enterCharSequenceMode)
- bool inCharSequenceMode = false;
- int32_t fFlags;
- int32_t fLength;
- bool prependSign;
- bool plusReplacesMinusSign;
+ // Transient fields for rendering
+ UnicodeString currentAffix;
/**
* Uses the current properties to create a single {@link ConstantMultiFieldModifier} with currency spacing support
@@ -244,9 +242,7 @@ class U_I18N_API MutablePatternModifier
int32_t insertSuffix(NumberStringBuilder &sb, int position, UErrorCode &status);
- void enterCharSequenceMode(bool isPrefix);
-
- void exitCharSequenceMode();
+ void prepareAffix(bool isPrefix);
};
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_patternstring.cpp b/Build/source/libs/icu/icu-src/source/i18n/number_patternstring.cpp
index 20178824b0e..63195eed989 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/number_patternstring.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_patternstring.cpp
@@ -3,36 +3,51 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
+
+// Allow implicit conversion from char16_t* to UnicodeString for this file:
+// Helpful in toString methods and elsewhere.
+#define UNISTR_FROM_STRING_EXPLICIT
+#define UNISTR_FROM_CHAR_EXPLICIT
#include "uassert.h"
#include "number_patternstring.h"
#include "unicode/utf16.h"
#include "number_utils.h"
+#include "number_roundingutils.h"
using namespace icu;
using namespace icu::number;
using namespace icu::number::impl;
-void PatternParser::parseToPatternInfo(const UnicodeString& patternString, ParsedPatternInfo& patternInfo, UErrorCode &status) {
+
+void PatternParser::parseToPatternInfo(const UnicodeString& patternString, ParsedPatternInfo& patternInfo,
+ UErrorCode& status) {
patternInfo.consumePattern(patternString, status);
}
DecimalFormatProperties
PatternParser::parseToProperties(const UnicodeString& pattern, IgnoreRounding ignoreRounding,
- UErrorCode &status) {
+ UErrorCode& status) {
DecimalFormatProperties properties;
parseToExistingPropertiesImpl(pattern, properties, ignoreRounding, status);
return properties;
}
-void PatternParser::parseToExistingProperties(const UnicodeString& pattern, DecimalFormatProperties& properties,
- IgnoreRounding ignoreRounding, UErrorCode &status) {
+DecimalFormatProperties PatternParser::parseToProperties(const UnicodeString& pattern,
+ UErrorCode& status) {
+ return parseToProperties(pattern, IGNORE_ROUNDING_NEVER, status);
+}
+
+void
+PatternParser::parseToExistingProperties(const UnicodeString& pattern, DecimalFormatProperties& properties,
+ IgnoreRounding ignoreRounding, UErrorCode& status) {
parseToExistingPropertiesImpl(pattern, properties, ignoreRounding, status);
}
+
char16_t ParsedPatternInfo::charAt(int32_t flags, int32_t index) const {
- const Endpoints &endpoints = getEndpoints(flags);
+ const Endpoints& endpoints = getEndpoints(flags);
if (index < 0 || index >= endpoints.end - endpoints.start) {
U_ASSERT(false);
}
@@ -43,12 +58,12 @@ int32_t ParsedPatternInfo::length(int32_t flags) const {
return getLengthFromEndpoints(getEndpoints(flags));
}
-int32_t ParsedPatternInfo::getLengthFromEndpoints(const Endpoints &endpoints) {
+int32_t ParsedPatternInfo::getLengthFromEndpoints(const Endpoints& endpoints) {
return endpoints.end - endpoints.start;
}
UnicodeString ParsedPatternInfo::getString(int32_t flags) const {
- const Endpoints &endpoints = getEndpoints(flags);
+ const Endpoints& endpoints = getEndpoints(flags);
if (endpoints.start == endpoints.end) {
return UnicodeString();
}
@@ -56,7 +71,7 @@ UnicodeString ParsedPatternInfo::getString(int32_t flags) const {
return UnicodeString(pattern, endpoints.start, endpoints.end - endpoints.start);
}
-const Endpoints &ParsedPatternInfo::getEndpoints(int32_t flags) const {
+const Endpoints& ParsedPatternInfo::getEndpoints(int32_t flags) const {
bool prefix = (flags & AFFIX_PREFIX) != 0;
bool isNegative = (flags & AFFIX_NEGATIVE_SUBPATTERN) != 0;
bool padding = (flags & AFFIX_PADDING) != 0;
@@ -91,8 +106,8 @@ bool ParsedPatternInfo::hasCurrencySign() const {
return positive.hasCurrencySign || (fHasNegativeSubpattern && negative.hasCurrencySign);
}
-bool ParsedPatternInfo::containsSymbolType(AffixPatternType type, UErrorCode &status) const {
- return AffixUtils::containsType(UnicodeStringCharSequence(pattern), type, status);
+bool ParsedPatternInfo::containsSymbolType(AffixPatternType type, UErrorCode& status) const {
+ return AffixUtils::containsType(pattern, type, status);
}
bool ParsedPatternInfo::hasBody() const {
@@ -117,10 +132,14 @@ UChar32 ParsedPatternInfo::ParserState::next() {
return codePoint;
}
-void ParsedPatternInfo::consumePattern(const UnicodeString& patternString, UErrorCode &status) {
+void ParsedPatternInfo::consumePattern(const UnicodeString& patternString, UErrorCode& status) {
if (U_FAILURE(status)) { return; }
this->pattern = patternString;
+ // This class is not intended for writing twice!
+ // Use move assignment to overwrite instead.
+ U_ASSERT(state.offset == 0);
+
// pattern := subpattern (';' subpattern)?
currentSubpattern = &positive;
consumeSubpattern(status);
@@ -141,7 +160,7 @@ void ParsedPatternInfo::consumePattern(const UnicodeString& patternString, UErro
}
}
-void ParsedPatternInfo::consumeSubpattern(UErrorCode &status) {
+void ParsedPatternInfo::consumeSubpattern(UErrorCode& status) {
// subpattern := literals? number exponent? literals?
consumePadding(PadPosition::UNUM_PAD_BEFORE_PREFIX, status);
if (U_FAILURE(status)) { return; }
@@ -161,23 +180,24 @@ void ParsedPatternInfo::consumeSubpattern(UErrorCode &status) {
if (U_FAILURE(status)) { return; }
}
-void ParsedPatternInfo::consumePadding(PadPosition paddingLocation, UErrorCode &status) {
+void ParsedPatternInfo::consumePadding(PadPosition paddingLocation, UErrorCode& status) {
if (state.peek() != u'*') {
return;
}
- if (!currentSubpattern->paddingLocation.isNull()) {
+ if (currentSubpattern->hasPadding) {
state.toParseException(u"Cannot have multiple pad specifiers");
status = U_MULTIPLE_PAD_SPECIFIERS;
return;
}
currentSubpattern->paddingLocation = paddingLocation;
+ currentSubpattern->hasPadding = true;
state.next(); // consume the '*'
currentSubpattern->paddingEndpoints.start = state.offset;
consumeLiteral(status);
currentSubpattern->paddingEndpoints.end = state.offset;
}
-void ParsedPatternInfo::consumeAffix(Endpoints &endpoints, UErrorCode &status) {
+void ParsedPatternInfo::consumeAffix(Endpoints& endpoints, UErrorCode& status) {
// literals := { literal }
endpoints.start = state.offset;
while (true) {
@@ -233,7 +253,7 @@ void ParsedPatternInfo::consumeAffix(Endpoints &endpoints, UErrorCode &status) {
endpoints.end = state.offset;
}
-void ParsedPatternInfo::consumeLiteral(UErrorCode &status) {
+void ParsedPatternInfo::consumeLiteral(UErrorCode& status) {
if (state.peek() == -1) {
state.toParseException(u"Expected unquoted literal but found EOL");
status = U_PATTERN_SYNTAX_ERROR;
@@ -256,7 +276,7 @@ void ParsedPatternInfo::consumeLiteral(UErrorCode &status) {
}
}
-void ParsedPatternInfo::consumeFormat(UErrorCode &status) {
+void ParsedPatternInfo::consumeFormat(UErrorCode& status) {
consumeIntegerFormat(status);
if (U_FAILURE(status)) { return; }
if (state.peek() == u'.') {
@@ -268,9 +288,9 @@ void ParsedPatternInfo::consumeFormat(UErrorCode &status) {
}
}
-void ParsedPatternInfo::consumeIntegerFormat(UErrorCode &status) {
+void ParsedPatternInfo::consumeIntegerFormat(UErrorCode& status) {
// Convenience reference:
- ParsedSubpatternInfo &result = *currentSubpattern;
+ ParsedSubpatternInfo& result = *currentSubpattern;
while (true) {
switch (state.peek()) {
@@ -359,9 +379,9 @@ void ParsedPatternInfo::consumeIntegerFormat(UErrorCode &status) {
}
}
-void ParsedPatternInfo::consumeFractionFormat(UErrorCode &status) {
+void ParsedPatternInfo::consumeFractionFormat(UErrorCode& status) {
// Convenience reference:
- ParsedSubpatternInfo &result = *currentSubpattern;
+ ParsedSubpatternInfo& result = *currentSubpattern;
int32_t zeroCounter = 0;
while (true) {
@@ -407,9 +427,9 @@ void ParsedPatternInfo::consumeFractionFormat(UErrorCode &status) {
}
}
-void ParsedPatternInfo::consumeExponent(UErrorCode &status) {
+void ParsedPatternInfo::consumeExponent(UErrorCode& status) {
// Convenience reference:
- ParsedSubpatternInfo &result = *currentSubpattern;
+ ParsedSubpatternInfo& result = *currentSubpattern;
if (state.peek() != u'E') {
return;
@@ -437,9 +457,9 @@ void ParsedPatternInfo::consumeExponent(UErrorCode &status) {
/// END RECURSIVE DESCENT PARSER IMPLEMENTATION ///
///////////////////////////////////////////////////
-void
-PatternParser::parseToExistingPropertiesImpl(const UnicodeString& pattern, DecimalFormatProperties &properties,
- IgnoreRounding ignoreRounding, UErrorCode &status) {
+void PatternParser::parseToExistingPropertiesImpl(const UnicodeString& pattern,
+ DecimalFormatProperties& properties,
+ IgnoreRounding ignoreRounding, UErrorCode& status) {
if (pattern.length() == 0) {
// Backwards compatibility requires that we reset to the default values.
// TODO: Only overwrite the properties that "saveToProperties" normally touches?
@@ -453,13 +473,13 @@ PatternParser::parseToExistingPropertiesImpl(const UnicodeString& pattern, Decim
patternInfoToProperties(properties, patternInfo, ignoreRounding, status);
}
-void PatternParser::patternInfoToProperties(DecimalFormatProperties &properties,
- ParsedPatternInfo& patternInfo,
- IgnoreRounding _ignoreRounding, UErrorCode &status) {
+void
+PatternParser::patternInfoToProperties(DecimalFormatProperties& properties, ParsedPatternInfo& patternInfo,
+ IgnoreRounding _ignoreRounding, UErrorCode& status) {
// Translate from PatternParseResult to Properties.
// Note that most data from "negative" is ignored per the specification of DecimalFormat.
- const ParsedSubpatternInfo &positive = patternInfo.positive;
+ const ParsedSubpatternInfo& positive = patternInfo.positive;
bool ignoreRounding;
if (_ignoreRounding == IGNORE_ROUNDING_NEVER) {
@@ -477,8 +497,10 @@ void PatternParser::patternInfoToProperties(DecimalFormatProperties &properties,
auto grouping3 = static_cast<int16_t> ((positive.groupingSizes >> 32) & 0xffff);
if (grouping2 != -1) {
properties.groupingSize = grouping1;
+ properties.groupingUsed = true;
} else {
properties.groupingSize = -1;
+ properties.groupingUsed = false;
}
if (grouping3 != -1) {
properties.secondaryGroupingSize = grouping2;
@@ -508,8 +530,7 @@ void PatternParser::patternInfoToProperties(DecimalFormatProperties &properties,
properties.maximumFractionDigits = -1;
properties.roundingIncrement = 0.0;
properties.minimumSignificantDigits = positive.integerAtSigns;
- properties.maximumSignificantDigits =
- positive.integerAtSigns + positive.integerTrailingHashSigns;
+ properties.maximumSignificantDigits = positive.integerAtSigns + positive.integerTrailingHashSigns;
} else if (!positive.rounding.isZero()) {
if (!ignoreRounding) {
properties.minimumFractionDigits = minFrac;
@@ -568,11 +589,11 @@ void PatternParser::patternInfoToProperties(DecimalFormatProperties &properties,
UnicodeString posSuffix = patternInfo.getString(0);
// Padding settings
- if (!positive.paddingLocation.isNull()) {
+ if (positive.hasPadding) {
// The width of the positive prefix and suffix templates are included in the padding
- int paddingWidth =
- positive.widthExceptAffixes + AffixUtils::estimateLength(UnicodeStringCharSequence(posPrefix), status) +
- AffixUtils::estimateLength(UnicodeStringCharSequence(posSuffix), status);
+ int paddingWidth = positive.widthExceptAffixes +
+ AffixUtils::estimateLength(posPrefix, status) +
+ AffixUtils::estimateLength(posSuffix, status);
properties.formatWidth = paddingWidth;
UnicodeString rawPaddingString = patternInfo.getString(AffixPatternProvider::AFFIX_PADDING);
if (rawPaddingString.length() == 1) {
@@ -622,8 +643,8 @@ void PatternParser::patternInfoToProperties(DecimalFormatProperties &properties,
/// End PatternStringParser.java; begin PatternStringUtils.java ///
///////////////////////////////////////////////////////////////////
-UnicodeString PatternStringUtils::propertiesToPatternString(const DecimalFormatProperties &properties,
- UErrorCode &status) {
+UnicodeString PatternStringUtils::propertiesToPatternString(const DecimalFormatProperties& properties,
+ UErrorCode& status) {
UnicodeString sb;
// Convenience references
@@ -656,7 +677,7 @@ UnicodeString PatternStringUtils::propertiesToPatternString(const DecimalFormatP
if (!ppp.isBogus()) {
sb.append(ppp);
}
- sb.append(AffixUtils::escape(UnicodeStringCharSequence(pp)));
+ sb.append(AffixUtils::escape(pp));
int afterPrefixPos = sb.length();
// Figure out the grouping sizes.
@@ -695,11 +716,11 @@ UnicodeString PatternStringUtils::propertiesToPatternString(const DecimalFormatP
}
} else if (roundingInterval != 0.0) {
// Rounding Interval.
- digitsStringScale = minFrac;
+ digitsStringScale = -roundingutils::doubleFractionLength(roundingInterval);
// TODO: Check for DoS here?
DecimalQuantity incrementQuantity;
incrementQuantity.setToDouble(roundingInterval);
- incrementQuantity.adjustMagnitude(minFrac);
+ incrementQuantity.adjustMagnitude(-digitsStringScale);
incrementQuantity.roundToMagnitude(0, kDefaultMode, status);
UnicodeString str = incrementQuantity.toPlainString();
if (str.charAt(0) == u'-') {
@@ -753,7 +774,7 @@ UnicodeString PatternStringUtils::propertiesToPatternString(const DecimalFormatP
if (!psp.isBogus()) {
sb.append(psp);
}
- sb.append(AffixUtils::escape(UnicodeStringCharSequence(ps)));
+ sb.append(AffixUtils::escape(ps));
// Resolve Padding
if (paddingWidth != -1 && !paddingLocation.isNull()) {
@@ -795,22 +816,25 @@ UnicodeString PatternStringUtils::propertiesToPatternString(const DecimalFormatP
if (!npp.isBogus()) {
sb.append(npp);
}
- sb.append(AffixUtils::escape(UnicodeStringCharSequence(np)));
+ sb.append(AffixUtils::escape(np));
// Copy the positive digit format into the negative.
// This is optional; the pattern is the same as if '#' were appended here instead.
- sb.append(sb, afterPrefixPos, beforeSuffixPos);
+ // NOTE: It is not safe to append the UnicodeString to itself, so we need to copy.
+ // See http://bugs.icu-project.org/trac/ticket/13707
+ UnicodeString copy(sb);
+ sb.append(copy, afterPrefixPos, beforeSuffixPos - afterPrefixPos);
if (!nsp.isBogus()) {
sb.append(nsp);
}
- sb.append(AffixUtils::escape(UnicodeStringCharSequence(ns)));
+ sb.append(AffixUtils::escape(ns));
}
return sb;
}
int PatternStringUtils::escapePaddingString(UnicodeString input, UnicodeString& output, int startIndex,
- UErrorCode &status) {
- (void)status;
+ UErrorCode& status) {
+ (void) status;
if (input.length() == 0) {
input.setTo(kFallbackPaddingString, -1);
}
@@ -840,4 +864,207 @@ int PatternStringUtils::escapePaddingString(UnicodeString input, UnicodeString&
return output.length() - startLength;
}
+UnicodeString
+PatternStringUtils::convertLocalized(const UnicodeString& input, const DecimalFormatSymbols& symbols,
+ bool toLocalized, UErrorCode& status) {
+ // Construct a table of strings to be converted between localized and standard.
+ static constexpr int32_t LEN = 21;
+ UnicodeString table[LEN][2];
+ int standIdx = toLocalized ? 0 : 1;
+ int localIdx = toLocalized ? 1 : 0;
+ table[0][standIdx] = u"%";
+ table[0][localIdx] = symbols.getConstSymbol(DecimalFormatSymbols::kPercentSymbol);
+ table[1][standIdx] = u"‰";
+ table[1][localIdx] = symbols.getConstSymbol(DecimalFormatSymbols::kPerMillSymbol);
+ table[2][standIdx] = u".";
+ table[2][localIdx] = symbols.getConstSymbol(DecimalFormatSymbols::kDecimalSeparatorSymbol);
+ table[3][standIdx] = u",";
+ table[3][localIdx] = symbols.getConstSymbol(DecimalFormatSymbols::kGroupingSeparatorSymbol);
+ table[4][standIdx] = u"-";
+ table[4][localIdx] = symbols.getConstSymbol(DecimalFormatSymbols::kMinusSignSymbol);
+ table[5][standIdx] = u"+";
+ table[5][localIdx] = symbols.getConstSymbol(DecimalFormatSymbols::kPlusSignSymbol);
+ table[6][standIdx] = u";";
+ table[6][localIdx] = symbols.getConstSymbol(DecimalFormatSymbols::kPatternSeparatorSymbol);
+ table[7][standIdx] = u"@";
+ table[7][localIdx] = symbols.getConstSymbol(DecimalFormatSymbols::kSignificantDigitSymbol);
+ table[8][standIdx] = u"E";
+ table[8][localIdx] = symbols.getConstSymbol(DecimalFormatSymbols::kExponentialSymbol);
+ table[9][standIdx] = u"*";
+ table[9][localIdx] = symbols.getConstSymbol(DecimalFormatSymbols::kPadEscapeSymbol);
+ table[10][standIdx] = u"#";
+ table[10][localIdx] = symbols.getConstSymbol(DecimalFormatSymbols::kDigitSymbol);
+ for (int i = 0; i < 10; i++) {
+ table[11 + i][standIdx] = u'0' + i;
+ table[11 + i][localIdx] = symbols.getConstDigitSymbol(i);
+ }
+
+ // Special case: quotes are NOT allowed to be in any localIdx strings.
+ // Substitute them with '’' instead.
+ for (int32_t i = 0; i < LEN; i++) {
+ table[i][localIdx].findAndReplace(u'\'', u'’');
+ }
+
+ // Iterate through the string and convert.
+ // State table:
+ // 0 => base state
+ // 1 => first char inside a quoted sequence in input and output string
+ // 2 => inside a quoted sequence in input and output string
+ // 3 => first char after a close quote in input string;
+ // close quote still needs to be written to output string
+ // 4 => base state in input string; inside quoted sequence in output string
+ // 5 => first char inside a quoted sequence in input string;
+ // inside quoted sequence in output string
+ UnicodeString result;
+ int state = 0;
+ for (int offset = 0; offset < input.length(); offset++) {
+ UChar ch = input.charAt(offset);
+
+ // Handle a quote character (state shift)
+ if (ch == u'\'') {
+ if (state == 0) {
+ result.append(u'\'');
+ state = 1;
+ continue;
+ } else if (state == 1) {
+ result.append(u'\'');
+ state = 0;
+ continue;
+ } else if (state == 2) {
+ state = 3;
+ continue;
+ } else if (state == 3) {
+ result.append(u'\'');
+ result.append(u'\'');
+ state = 1;
+ continue;
+ } else if (state == 4) {
+ state = 5;
+ continue;
+ } else {
+ U_ASSERT(state == 5);
+ result.append(u'\'');
+ result.append(u'\'');
+ state = 4;
+ continue;
+ }
+ }
+
+ if (state == 0 || state == 3 || state == 4) {
+ for (auto& pair : table) {
+ // Perform a greedy match on this symbol string
+ UnicodeString temp = input.tempSubString(offset, pair[0].length());
+ if (temp == pair[0]) {
+ // Skip ahead past this region for the next iteration
+ offset += pair[0].length() - 1;
+ if (state == 3 || state == 4) {
+ result.append(u'\'');
+ state = 0;
+ }
+ result.append(pair[1]);
+ goto continue_outer;
+ }
+ }
+ // No replacement found. Check if a special quote is necessary
+ for (auto& pair : table) {
+ UnicodeString temp = input.tempSubString(offset, pair[1].length());
+ if (temp == pair[1]) {
+ if (state == 0) {
+ result.append(u'\'');
+ state = 4;
+ }
+ result.append(ch);
+ goto continue_outer;
+ }
+ }
+ // Still nothing. Copy the char verbatim. (Add a close quote if necessary)
+ if (state == 3 || state == 4) {
+ result.append(u'\'');
+ state = 0;
+ }
+ result.append(ch);
+ } else {
+ U_ASSERT(state == 1 || state == 2 || state == 5);
+ result.append(ch);
+ state = 2;
+ }
+ continue_outer:;
+ }
+ // Resolve final quotes
+ if (state == 3 || state == 4) {
+ result.append(u'\'');
+ state = 0;
+ }
+ if (state != 0) {
+ // Malformed localized pattern: unterminated quote
+ status = U_PATTERN_SYNTAX_ERROR;
+ }
+ return result;
+}
+
+void PatternStringUtils::patternInfoToStringBuilder(const AffixPatternProvider& patternInfo, bool isPrefix,
+ int8_t signum, UNumberSignDisplay signDisplay,
+ StandardPlural::Form plural,
+ bool perMilleReplacesPercent, UnicodeString& output) {
+
+ // Should the output render '+' where '-' would normally appear in the pattern?
+ bool plusReplacesMinusSign = signum != -1 && (
+ signDisplay == UNUM_SIGN_ALWAYS || signDisplay == UNUM_SIGN_ACCOUNTING_ALWAYS || (
+ signum == 1 && (
+ signDisplay == UNUM_SIGN_EXCEPT_ZERO ||
+ signDisplay == UNUM_SIGN_ACCOUNTING_EXCEPT_ZERO))) &&
+ patternInfo.positiveHasPlusSign() == false;
+
+ // Should we use the affix from the negative subpattern? (If not, we will use the positive
+ // subpattern.)
+ bool useNegativeAffixPattern = patternInfo.hasNegativeSubpattern() && (
+ signum == -1 || (patternInfo.negativeHasMinusSign() && plusReplacesMinusSign));
+
+ // Resolve the flags for the affix pattern.
+ int flags = 0;
+ if (useNegativeAffixPattern) {
+ flags |= AffixPatternProvider::AFFIX_NEGATIVE_SUBPATTERN;
+ }
+ if (isPrefix) {
+ flags |= AffixPatternProvider::AFFIX_PREFIX;
+ }
+ if (plural != StandardPlural::Form::COUNT) {
+ U_ASSERT(plural == (AffixPatternProvider::AFFIX_PLURAL_MASK & plural));
+ flags |= plural;
+ }
+
+ // Should we prepend a sign to the pattern?
+ bool prependSign;
+ if (!isPrefix || useNegativeAffixPattern) {
+ prependSign = false;
+ } else if (signum == -1) {
+ prependSign = signDisplay != UNUM_SIGN_NEVER;
+ } else {
+ prependSign = plusReplacesMinusSign;
+ }
+
+ // Compute the length of the affix pattern.
+ int length = patternInfo.length(flags) + (prependSign ? 1 : 0);
+
+ // Finally, set the result into the StringBuilder.
+ output.remove();
+ for (int index = 0; index < length; index++) {
+ char16_t candidate;
+ if (prependSign && index == 0) {
+ candidate = u'-';
+ } else if (prependSign) {
+ candidate = patternInfo.charAt(flags, index - 1);
+ } else {
+ candidate = patternInfo.charAt(flags, index);
+ }
+ if (plusReplacesMinusSign && candidate == u'-') {
+ candidate = u'+';
+ }
+ if (perMilleReplacesPercent && candidate == u'%') {
+ candidate = u'‰';
+ }
+ output.append(candidate);
+ }
+}
+
#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_patternstring.h b/Build/source/libs/icu/icu-src/source/i18n/number_patternstring.h
index ec44290d663..91e120c16a1 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/number_patternstring.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_patternstring.h
@@ -3,7 +3,7 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
#ifndef __NUMBER_PATTERNSTRING_H__
#define __NUMBER_PATTERNSTRING_H__
@@ -30,7 +30,7 @@ struct U_I18N_API Endpoints {
// Exported as U_I18N_API because it is a public member field of exported ParsedPatternInfo
struct U_I18N_API ParsedSubpatternInfo {
- int64_t groupingSizes = 0x0000ffffffff0000L;
+ uint64_t groupingSizes = 0x0000ffffffff0000L;
int32_t integerLeadingHashSigns = 0;
int32_t integerTrailingHashSigns = 0;
int32_t integerNumerals = 0;
@@ -41,7 +41,9 @@ struct U_I18N_API ParsedSubpatternInfo {
int32_t fractionTotal = 0; // for convenience
bool hasDecimal = false;
int32_t widthExceptAffixes = 0;
- NullableValue<UNumberFormatPadPosition> paddingLocation;
+ // Note: NullableValue causes issues here with std::move.
+ bool hasPadding = false;
+ UNumberFormatPadPosition paddingLocation = UNUM_PAD_BEFORE_PREFIX;
DecimalQuantity rounding;
bool exponentHasPlusSign = false;
int32_t exponentZeros = 0;
@@ -62,17 +64,21 @@ struct U_I18N_API ParsedPatternInfo : public AffixPatternProvider, public UMemor
ParsedSubpatternInfo positive;
ParsedSubpatternInfo negative;
- ParsedPatternInfo() : state(this->pattern), currentSubpattern(nullptr) {}
+ ParsedPatternInfo()
+ : state(this->pattern), currentSubpattern(nullptr) {}
~ParsedPatternInfo() U_OVERRIDE = default;
- static int32_t getLengthFromEndpoints(const Endpoints &endpoints);
+ // Need to declare this explicitly because of the destructor
+ ParsedPatternInfo& operator=(ParsedPatternInfo&& src) U_NOEXCEPT = default;
+
+ static int32_t getLengthFromEndpoints(const Endpoints& endpoints);
char16_t charAt(int32_t flags, int32_t index) const U_OVERRIDE;
int32_t length(int32_t flags) const U_OVERRIDE;
- UnicodeString getString(int32_t flags) const;
+ UnicodeString getString(int32_t flags) const U_OVERRIDE;
bool positiveHasPlusSign() const U_OVERRIDE;
@@ -82,16 +88,24 @@ struct U_I18N_API ParsedPatternInfo : public AffixPatternProvider, public UMemor
bool hasCurrencySign() const U_OVERRIDE;
- bool containsSymbolType(AffixPatternType type, UErrorCode &status) const U_OVERRIDE;
+ bool containsSymbolType(AffixPatternType type, UErrorCode& status) const U_OVERRIDE;
bool hasBody() const U_OVERRIDE;
private:
struct U_I18N_API ParserState {
- const UnicodeString &pattern; // reference to the parent
+ const UnicodeString& pattern; // reference to the parent
int32_t offset = 0;
- explicit ParserState(const UnicodeString &_pattern) : pattern(_pattern) {};
+ explicit ParserState(const UnicodeString& _pattern)
+ : pattern(_pattern) {};
+
+ ParserState& operator=(ParserState&& src) U_NOEXCEPT {
+ // Leave pattern reference alone; it will continue to point to the same place in memory,
+ // which gets overwritten by ParsedPatternInfo's implicit move assignment.
+ offset = src.offset;
+ return *this;
+ }
UChar32 peek();
@@ -99,45 +113,48 @@ struct U_I18N_API ParsedPatternInfo : public AffixPatternProvider, public UMemor
// TODO: We don't currently do anything with the message string.
// This method is here as a shell for Java compatibility.
- inline void toParseException(const char16_t *message) { (void)message; }
- }
- state;
+ inline void toParseException(const char16_t* message) { (void) message; }
+ } state;
// NOTE: In Java, these are written as pure functions.
// In C++, they're written as methods.
// The behavior is the same.
// Mutable transient pointer:
- ParsedSubpatternInfo *currentSubpattern;
+ ParsedSubpatternInfo* currentSubpattern;
// In Java, "negative == null" tells us whether or not we had a negative subpattern.
// In C++, we need to remember in another boolean.
bool fHasNegativeSubpattern = false;
- const Endpoints &getEndpoints(int32_t flags) const;
+ const Endpoints& getEndpoints(int32_t flags) const;
/** Run the recursive descent parser. */
- void consumePattern(const UnicodeString &patternString, UErrorCode &status);
+ void consumePattern(const UnicodeString& patternString, UErrorCode& status);
- void consumeSubpattern(UErrorCode &status);
+ void consumeSubpattern(UErrorCode& status);
- void consumePadding(PadPosition paddingLocation, UErrorCode &status);
+ void consumePadding(PadPosition paddingLocation, UErrorCode& status);
- void consumeAffix(Endpoints &endpoints, UErrorCode &status);
+ void consumeAffix(Endpoints& endpoints, UErrorCode& status);
- void consumeLiteral(UErrorCode &status);
+ void consumeLiteral(UErrorCode& status);
- void consumeFormat(UErrorCode &status);
+ void consumeFormat(UErrorCode& status);
- void consumeIntegerFormat(UErrorCode &status);
+ void consumeIntegerFormat(UErrorCode& status);
- void consumeFractionFormat(UErrorCode &status);
+ void consumeFractionFormat(UErrorCode& status);
- void consumeExponent(UErrorCode &status);
+ void consumeExponent(UErrorCode& status);
friend class PatternParser;
};
+enum IgnoreRounding {
+ IGNORE_ROUNDING_NEVER = 0, IGNORE_ROUNDING_IF_CURRENCY = 1, IGNORE_ROUNDING_ALWAYS = 2
+};
+
class U_I18N_API PatternParser {
public:
/**
@@ -153,12 +170,8 @@ class U_I18N_API PatternParser {
* The LDML decimal format pattern (Excel-style pattern) to parse.
* @return The results of the parse.
*/
- static void
- parseToPatternInfo(const UnicodeString& patternString, ParsedPatternInfo &patternInfo, UErrorCode &status);
-
- enum IgnoreRounding {
- IGNORE_ROUNDING_NEVER = 0, IGNORE_ROUNDING_IF_CURRENCY = 1, IGNORE_ROUNDING_ALWAYS = 2
- };
+ static void parseToPatternInfo(const UnicodeString& patternString, ParsedPatternInfo& patternInfo,
+ UErrorCode& status);
/**
* Parses a pattern string into a new property bag.
@@ -173,8 +186,10 @@ class U_I18N_API PatternParser {
* @throws IllegalArgumentException
* If there is a syntax error in the pattern string.
*/
- static DecimalFormatProperties
- parseToProperties(const UnicodeString& pattern, IgnoreRounding ignoreRounding, UErrorCode &status);
+ static DecimalFormatProperties parseToProperties(const UnicodeString& pattern,
+ IgnoreRounding ignoreRounding, UErrorCode& status);
+
+ static DecimalFormatProperties parseToProperties(const UnicodeString& pattern, UErrorCode& status);
/**
* Parses a pattern string into an existing property bag. All properties that can be encoded into a pattern string
@@ -190,18 +205,19 @@ class U_I18N_API PatternParser {
* @throws IllegalArgumentException
* If there was a syntax error in the pattern string.
*/
- static void parseToExistingProperties(const UnicodeString& pattern, DecimalFormatProperties& properties,
- IgnoreRounding ignoreRounding, UErrorCode &status);
+ static void parseToExistingProperties(const UnicodeString& pattern,
+ DecimalFormatProperties& properties,
+ IgnoreRounding ignoreRounding, UErrorCode& status);
private:
- static void
- parseToExistingPropertiesImpl(const UnicodeString& pattern, DecimalFormatProperties &properties,
- IgnoreRounding ignoreRounding, UErrorCode &status);
+ static void parseToExistingPropertiesImpl(const UnicodeString& pattern,
+ DecimalFormatProperties& properties,
+ IgnoreRounding ignoreRounding, UErrorCode& status);
/** Finalizes the temporary data stored in the ParsedPatternInfo to the Properties. */
- static void
- patternInfoToProperties(DecimalFormatProperties &properties, ParsedPatternInfo& patternInfo,
- IgnoreRounding _ignoreRounding, UErrorCode &status);
+ static void patternInfoToProperties(DecimalFormatProperties& properties,
+ ParsedPatternInfo& patternInfo, IgnoreRounding _ignoreRounding,
+ UErrorCode& status);
};
class U_I18N_API PatternStringUtils {
@@ -217,8 +233,8 @@ class U_I18N_API PatternStringUtils {
* The property bag to serialize.
* @return A pattern string approximately serializing the property bag.
*/
- static UnicodeString
- propertiesToPatternString(const DecimalFormatProperties &properties, UErrorCode &status);
+ static UnicodeString propertiesToPatternString(const DecimalFormatProperties& properties,
+ UErrorCode& status);
/**
@@ -248,14 +264,23 @@ class U_I18N_API PatternStringUtils {
* notation.
* @return The pattern expressed in the other notation.
*/
- static UnicodeString
- convertLocalized(UnicodeString input, DecimalFormatSymbols symbols, bool toLocalized,
- UErrorCode &status);
+ static UnicodeString convertLocalized(const UnicodeString& input, const DecimalFormatSymbols& symbols,
+ bool toLocalized, UErrorCode& status);
+
+ /**
+ * This method contains the heart of the logic for rendering LDML affix strings. It handles
+ * sign-always-shown resolution, whether to use the positive or negative subpattern, permille
+ * substitution, and plural forms for CurrencyPluralInfo.
+ */
+ static void patternInfoToStringBuilder(const AffixPatternProvider& patternInfo, bool isPrefix,
+ int8_t signum, UNumberSignDisplay signDisplay,
+ StandardPlural::Form plural, bool perMilleReplacesPercent,
+ UnicodeString& output);
private:
/** @return The number of chars inserted. */
- static int
- escapePaddingString(UnicodeString input, UnicodeString &output, int startIndex, UErrorCode &status);
+ static int escapePaddingString(UnicodeString input, UnicodeString& output, int startIndex,
+ UErrorCode& status);
};
} // namespace impl
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_rounding.cpp b/Build/source/libs/icu/icu-src/source/i18n/number_rounding.cpp
index fd4dafdf983..ae4b8849fbe 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/number_rounding.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_rounding.cpp
@@ -3,17 +3,23 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
#include "uassert.h"
#include "unicode/numberformatter.h"
#include "number_types.h"
#include "number_decimalquantity.h"
+#include "double-conversion.h"
+#include "number_roundingutils.h"
+#include "putilimp.h"
using namespace icu;
using namespace icu::number;
using namespace icu::number::impl;
+
+using double_conversion::DoubleToStringConverter;
+
namespace {
int32_t getRoundingMagnitudeFraction(int maxFrac) {
@@ -46,15 +52,38 @@ int32_t getDisplayMagnitudeSignificant(const DecimalQuantity &value, int minSig)
}
-Rounder Rounder::unlimited() {
- return Rounder(RND_NONE, {}, kDefaultMode);
+MultiplierProducer::~MultiplierProducer() = default;
+
+
+digits_t roundingutils::doubleFractionLength(double input) {
+ char buffer[DoubleToStringConverter::kBase10MaximalLength + 1];
+ bool sign; // unused; always positive
+ int32_t length;
+ int32_t point;
+ DoubleToStringConverter::DoubleToAscii(
+ input,
+ DoubleToStringConverter::DtoaMode::SHORTEST,
+ 0,
+ buffer,
+ sizeof(buffer),
+ &sign,
+ &length,
+ &point
+ );
+
+ return static_cast<digits_t>(length - point);
}
-FractionRounder Rounder::integer() {
+
+Precision Precision::unlimited() {
+ return Precision(RND_NONE, {}, kDefaultMode);
+}
+
+FractionPrecision Precision::integer() {
return constructFraction(0, 0);
}
-FractionRounder Rounder::fixedFraction(int32_t minMaxFractionPlaces) {
+FractionPrecision Precision::fixedFraction(int32_t minMaxFractionPlaces) {
if (minMaxFractionPlaces >= 0 && minMaxFractionPlaces <= kMaxIntFracSig) {
return constructFraction(minMaxFractionPlaces, minMaxFractionPlaces);
} else {
@@ -62,7 +91,7 @@ FractionRounder Rounder::fixedFraction(int32_t minMaxFractionPlaces) {
}
}
-FractionRounder Rounder::minFraction(int32_t minFractionPlaces) {
+FractionPrecision Precision::minFraction(int32_t minFractionPlaces) {
if (minFractionPlaces >= 0 && minFractionPlaces <= kMaxIntFracSig) {
return constructFraction(minFractionPlaces, -1);
} else {
@@ -70,7 +99,7 @@ FractionRounder Rounder::minFraction(int32_t minFractionPlaces) {
}
}
-FractionRounder Rounder::maxFraction(int32_t maxFractionPlaces) {
+FractionPrecision Precision::maxFraction(int32_t maxFractionPlaces) {
if (maxFractionPlaces >= 0 && maxFractionPlaces <= kMaxIntFracSig) {
return constructFraction(0, maxFractionPlaces);
} else {
@@ -78,7 +107,7 @@ FractionRounder Rounder::maxFraction(int32_t maxFractionPlaces) {
}
}
-FractionRounder Rounder::minMaxFraction(int32_t minFractionPlaces, int32_t maxFractionPlaces) {
+FractionPrecision Precision::minMaxFraction(int32_t minFractionPlaces, int32_t maxFractionPlaces) {
if (minFractionPlaces >= 0 && maxFractionPlaces <= kMaxIntFracSig &&
minFractionPlaces <= maxFractionPlaces) {
return constructFraction(minFractionPlaces, maxFractionPlaces);
@@ -87,7 +116,7 @@ FractionRounder Rounder::minMaxFraction(int32_t minFractionPlaces, int32_t maxFr
}
}
-Rounder Rounder::fixedDigits(int32_t minMaxSignificantDigits) {
+Precision Precision::fixedSignificantDigits(int32_t minMaxSignificantDigits) {
if (minMaxSignificantDigits >= 1 && minMaxSignificantDigits <= kMaxIntFracSig) {
return constructSignificant(minMaxSignificantDigits, minMaxSignificantDigits);
} else {
@@ -95,7 +124,7 @@ Rounder Rounder::fixedDigits(int32_t minMaxSignificantDigits) {
}
}
-Rounder Rounder::minDigits(int32_t minSignificantDigits) {
+Precision Precision::minSignificantDigits(int32_t minSignificantDigits) {
if (minSignificantDigits >= 1 && minSignificantDigits <= kMaxIntFracSig) {
return constructSignificant(minSignificantDigits, -1);
} else {
@@ -103,7 +132,7 @@ Rounder Rounder::minDigits(int32_t minSignificantDigits) {
}
}
-Rounder Rounder::maxDigits(int32_t maxSignificantDigits) {
+Precision Precision::maxSignificantDigits(int32_t maxSignificantDigits) {
if (maxSignificantDigits >= 1 && maxSignificantDigits <= kMaxIntFracSig) {
return constructSignificant(1, maxSignificantDigits);
} else {
@@ -111,7 +140,7 @@ Rounder Rounder::maxDigits(int32_t maxSignificantDigits) {
}
}
-Rounder Rounder::minMaxDigits(int32_t minSignificantDigits, int32_t maxSignificantDigits) {
+Precision Precision::minMaxSignificantDigits(int32_t minSignificantDigits, int32_t maxSignificantDigits) {
if (minSignificantDigits >= 1 && maxSignificantDigits <= kMaxIntFracSig &&
minSignificantDigits <= maxSignificantDigits) {
return constructSignificant(minSignificantDigits, maxSignificantDigits);
@@ -120,7 +149,7 @@ Rounder Rounder::minMaxDigits(int32_t minSignificantDigits, int32_t maxSignifica
}
}
-IncrementRounder Rounder::increment(double roundingIncrement) {
+IncrementPrecision Precision::increment(double roundingIncrement) {
if (roundingIncrement > 0.0) {
return constructIncrement(roundingIncrement, 0);
} else {
@@ -128,16 +157,18 @@ IncrementRounder Rounder::increment(double roundingIncrement) {
}
}
-CurrencyRounder Rounder::currency(UCurrencyUsage currencyUsage) {
+CurrencyPrecision Precision::currency(UCurrencyUsage currencyUsage) {
return constructCurrency(currencyUsage);
}
-Rounder Rounder::withMode(RoundingMode roundingMode) const {
+Precision Precision::withMode(RoundingMode roundingMode) const {
if (fType == RND_ERROR) { return *this; } // no-op in error state
- return {fType, fUnion, roundingMode};
+ Precision retval = *this;
+ retval.fRoundingMode = roundingMode;
+ return retval;
}
-Rounder FractionRounder::withMinDigits(int32_t minSignificantDigits) const {
+Precision FractionPrecision::withMinDigits(int32_t minSignificantDigits) const {
if (fType == RND_ERROR) { return *this; } // no-op in error state
if (minSignificantDigits >= 1 && minSignificantDigits <= kMaxIntFracSig) {
return constructFractionSignificant(*this, minSignificantDigits, -1);
@@ -146,7 +177,7 @@ Rounder FractionRounder::withMinDigits(int32_t minSignificantDigits) const {
}
}
-Rounder FractionRounder::withMaxDigits(int32_t maxSignificantDigits) const {
+Precision FractionPrecision::withMaxDigits(int32_t maxSignificantDigits) const {
if (fType == RND_ERROR) { return *this; } // no-op in error state
if (maxSignificantDigits >= 1 && maxSignificantDigits <= kMaxIntFracSig) {
return constructFractionSignificant(*this, -1, maxSignificantDigits);
@@ -156,7 +187,7 @@ Rounder FractionRounder::withMaxDigits(int32_t maxSignificantDigits) const {
}
// Private method on base class
-Rounder Rounder::withCurrency(const CurrencyUnit &currency, UErrorCode &status) const {
+Precision Precision::withCurrency(const CurrencyUnit &currency, UErrorCode &status) const {
if (fType == RND_ERROR) { return *this; } // no-op in error state
U_ASSERT(fType == RND_CURRENCY);
const char16_t *isoCode = currency.getISOCurrency();
@@ -170,17 +201,17 @@ Rounder Rounder::withCurrency(const CurrencyUnit &currency, UErrorCode &status)
}
}
-// Public method on CurrencyRounder subclass
-Rounder CurrencyRounder::withCurrency(const CurrencyUnit &currency) const {
+// Public method on CurrencyPrecision subclass
+Precision CurrencyPrecision::withCurrency(const CurrencyUnit &currency) const {
UErrorCode localStatus = U_ZERO_ERROR;
- Rounder result = Rounder::withCurrency(currency, localStatus);
+ Precision result = Precision::withCurrency(currency, localStatus);
if (U_FAILURE(localStatus)) {
return {localStatus};
}
return result;
}
-Rounder IncrementRounder::withMinFraction(int32_t minFrac) const {
+Precision IncrementPrecision::withMinFraction(int32_t minFrac) const {
if (fType == RND_ERROR) { return *this; } // no-op in error state
if (minFrac >= 0 && minFrac <= kMaxIntFracSig) {
return constructIncrement(fUnion.increment.fIncrement, minFrac);
@@ -189,67 +220,77 @@ Rounder IncrementRounder::withMinFraction(int32_t minFrac) const {
}
}
-FractionRounder Rounder::constructFraction(int32_t minFrac, int32_t maxFrac) {
+FractionPrecision Precision::constructFraction(int32_t minFrac, int32_t maxFrac) {
FractionSignificantSettings settings;
settings.fMinFrac = static_cast<digits_t>(minFrac);
settings.fMaxFrac = static_cast<digits_t>(maxFrac);
settings.fMinSig = -1;
settings.fMaxSig = -1;
- RounderUnion union_;
+ PrecisionUnion union_;
union_.fracSig = settings;
return {RND_FRACTION, union_, kDefaultMode};
}
-Rounder Rounder::constructSignificant(int32_t minSig, int32_t maxSig) {
+Precision Precision::constructSignificant(int32_t minSig, int32_t maxSig) {
FractionSignificantSettings settings;
settings.fMinFrac = -1;
settings.fMaxFrac = -1;
settings.fMinSig = static_cast<digits_t>(minSig);
settings.fMaxSig = static_cast<digits_t>(maxSig);
- RounderUnion union_;
+ PrecisionUnion union_;
union_.fracSig = settings;
return {RND_SIGNIFICANT, union_, kDefaultMode};
}
-Rounder
-Rounder::constructFractionSignificant(const FractionRounder &base, int32_t minSig, int32_t maxSig) {
+Precision
+Precision::constructFractionSignificant(const FractionPrecision &base, int32_t minSig, int32_t maxSig) {
FractionSignificantSettings settings = base.fUnion.fracSig;
settings.fMinSig = static_cast<digits_t>(minSig);
settings.fMaxSig = static_cast<digits_t>(maxSig);
- RounderUnion union_;
+ PrecisionUnion union_;
union_.fracSig = settings;
return {RND_FRACTION_SIGNIFICANT, union_, kDefaultMode};
}
-IncrementRounder Rounder::constructIncrement(double increment, int32_t minFrac) {
+IncrementPrecision Precision::constructIncrement(double increment, int32_t minFrac) {
IncrementSettings settings;
settings.fIncrement = increment;
settings.fMinFrac = static_cast<digits_t>(minFrac);
- RounderUnion union_;
+ // One of the few pre-computed quantities:
+ // Note: it is possible for minFrac to be more than maxFrac... (misleading)
+ settings.fMaxFrac = roundingutils::doubleFractionLength(increment);
+ PrecisionUnion union_;
union_.increment = settings;
return {RND_INCREMENT, union_, kDefaultMode};
}
-CurrencyRounder Rounder::constructCurrency(UCurrencyUsage usage) {
- RounderUnion union_;
+CurrencyPrecision Precision::constructCurrency(UCurrencyUsage usage) {
+ PrecisionUnion union_;
union_.currencyUsage = usage;
return {RND_CURRENCY, union_, kDefaultMode};
}
-Rounder Rounder::constructPassThrough() {
- RounderUnion union_;
- union_.errorCode = U_ZERO_ERROR; // initialize the variable
- return {RND_PASS_THROUGH, union_, kDefaultMode};
-}
-void Rounder::setLocaleData(const CurrencyUnit &currency, UErrorCode &status) {
- if (fType == RND_CURRENCY) {
- *this = withCurrency(currency, status);
+RoundingImpl::RoundingImpl(const Precision& precision, UNumberFormatRoundingMode roundingMode,
+ const CurrencyUnit& currency, UErrorCode& status)
+ : fPrecision(precision), fRoundingMode(roundingMode), fPassThrough(false) {
+ if (precision.fType == Precision::RND_CURRENCY) {
+ fPrecision = precision.withCurrency(currency, status);
}
}
+RoundingImpl RoundingImpl::passThrough() {
+ RoundingImpl retval;
+ retval.fPassThrough = true;
+ return retval;
+}
+
+bool RoundingImpl::isSignificantDigits() const {
+ return fPrecision.fType == Precision::RND_SIGNIFICANT;
+}
+
int32_t
-Rounder::chooseMultiplierAndApply(impl::DecimalQuantity &input, const impl::MultiplierProducer &producer,
+RoundingImpl::chooseMultiplierAndApply(impl::DecimalQuantity &input, const impl::MultiplierProducer &producer,
UErrorCode &status) {
// Do not call this method with zero.
U_ASSERT(!input.isZero());
@@ -287,45 +328,59 @@ Rounder::chooseMultiplierAndApply(impl::DecimalQuantity &input, const impl::Mult
}
/** This is the method that contains the actual rounding logic. */
-void Rounder::apply(impl::DecimalQuantity &value, UErrorCode& status) const {
- switch (fType) {
- case RND_BOGUS:
- case RND_ERROR:
+void RoundingImpl::apply(impl::DecimalQuantity &value, UErrorCode& status) const {
+ if (fPassThrough) {
+ return;
+ }
+ switch (fPrecision.fType) {
+ case Precision::RND_BOGUS:
+ case Precision::RND_ERROR:
// Errors should be caught before the apply() method is called
status = U_INTERNAL_PROGRAM_ERROR;
break;
- case RND_NONE:
+ case Precision::RND_NONE:
value.roundToInfinity();
break;
- case RND_FRACTION:
+ case Precision::RND_FRACTION:
value.roundToMagnitude(
- getRoundingMagnitudeFraction(fUnion.fracSig.fMaxFrac), fRoundingMode, status);
+ getRoundingMagnitudeFraction(fPrecision.fUnion.fracSig.fMaxFrac),
+ fRoundingMode,
+ status);
value.setFractionLength(
- uprv_max(0, -getDisplayMagnitudeFraction(fUnion.fracSig.fMinFrac)), INT32_MAX);
+ uprv_max(0, -getDisplayMagnitudeFraction(fPrecision.fUnion.fracSig.fMinFrac)),
+ INT32_MAX);
break;
- case RND_SIGNIFICANT:
+ case Precision::RND_SIGNIFICANT:
value.roundToMagnitude(
- getRoundingMagnitudeSignificant(value, fUnion.fracSig.fMaxSig),
+ getRoundingMagnitudeSignificant(value, fPrecision.fUnion.fracSig.fMaxSig),
fRoundingMode,
status);
value.setFractionLength(
- uprv_max(0, -getDisplayMagnitudeSignificant(value, fUnion.fracSig.fMinSig)),
+ uprv_max(0, -getDisplayMagnitudeSignificant(value, fPrecision.fUnion.fracSig.fMinSig)),
INT32_MAX);
+ // Make sure that digits are displayed on zero.
+ if (value.isZero() && fPrecision.fUnion.fracSig.fMinSig > 0) {
+ value.setIntegerLength(1, INT32_MAX);
+ }
break;
- case RND_FRACTION_SIGNIFICANT: {
- int32_t displayMag = getDisplayMagnitudeFraction(fUnion.fracSig.fMinFrac);
- int32_t roundingMag = getRoundingMagnitudeFraction(fUnion.fracSig.fMaxFrac);
- if (fUnion.fracSig.fMinSig == -1) {
+ case Precision::RND_FRACTION_SIGNIFICANT: {
+ int32_t displayMag = getDisplayMagnitudeFraction(fPrecision.fUnion.fracSig.fMinFrac);
+ int32_t roundingMag = getRoundingMagnitudeFraction(fPrecision.fUnion.fracSig.fMaxFrac);
+ if (fPrecision.fUnion.fracSig.fMinSig == -1) {
// Max Sig override
- int32_t candidate = getRoundingMagnitudeSignificant(value, fUnion.fracSig.fMaxSig);
+ int32_t candidate = getRoundingMagnitudeSignificant(
+ value,
+ fPrecision.fUnion.fracSig.fMaxSig);
roundingMag = uprv_max(roundingMag, candidate);
} else {
// Min Sig override
- int32_t candidate = getDisplayMagnitudeSignificant(value, fUnion.fracSig.fMinSig);
+ int32_t candidate = getDisplayMagnitudeSignificant(
+ value,
+ fPrecision.fUnion.fracSig.fMinSig);
roundingMag = uprv_min(roundingMag, candidate);
}
value.roundToMagnitude(roundingMag, fRoundingMode, status);
@@ -333,27 +388,27 @@ void Rounder::apply(impl::DecimalQuantity &value, UErrorCode& status) const {
break;
}
- case RND_INCREMENT:
+ case Precision::RND_INCREMENT:
value.roundToIncrement(
- fUnion.increment.fIncrement, fRoundingMode, fUnion.increment.fMinFrac, status);
- value.setFractionLength(fUnion.increment.fMinFrac, fUnion.increment.fMinFrac);
+ fPrecision.fUnion.increment.fIncrement,
+ fRoundingMode,
+ fPrecision.fUnion.increment.fMaxFrac,
+ status);
+ value.setFractionLength(fPrecision.fUnion.increment.fMinFrac, INT32_MAX);
break;
- case RND_CURRENCY:
+ case Precision::RND_CURRENCY:
// Call .withCurrency() before .apply()!
U_ASSERT(false);
break;
-
- case RND_PASS_THROUGH:
- break;
}
}
-void Rounder::apply(impl::DecimalQuantity &value, int32_t minInt, UErrorCode /*status*/) {
+void RoundingImpl::apply(impl::DecimalQuantity &value, int32_t minInt, UErrorCode /*status*/) {
// This method is intended for the one specific purpose of helping print "00.000E0".
- U_ASSERT(fType == RND_SIGNIFICANT);
+ U_ASSERT(isSignificantDigits());
U_ASSERT(value.isZero());
- value.setFractionLength(fUnion.fracSig.fMinSig - minInt, INT32_MAX);
+ value.setFractionLength(fPrecision.fUnion.fracSig.fMinSig - minInt, INT32_MAX);
}
#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_roundingutils.h b/Build/source/libs/icu/icu-src/source/i18n/number_roundingutils.h
index 6868ee0b868..66d58bb775b 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/number_roundingutils.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_roundingutils.h
@@ -3,7 +3,7 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
#ifndef __NUMBER_ROUNDINGUTILS_H__
#define __NUMBER_ROUNDINGUTILS_H__
@@ -131,7 +131,62 @@ inline bool roundsAtMidpoint(int roundingMode) {
}
}
+/**
+ * Computes the number of fraction digits in a double. Used for computing maxFrac for an increment.
+ * Calls into the DoubleToStringConverter library to do so.
+ */
+digits_t doubleFractionLength(double input);
+
} // namespace roundingutils
+
+
+/**
+ * Encapsulates a Precision and a RoundingMode and performs rounding on a DecimalQuantity.
+ *
+ * This class does not exist in Java: instead, the base Precision class is used.
+ */
+class RoundingImpl {
+ public:
+ RoundingImpl() = default; // default constructor: leaves object in undefined state
+
+ RoundingImpl(const Precision& precision, UNumberFormatRoundingMode roundingMode,
+ const CurrencyUnit& currency, UErrorCode& status);
+
+ static RoundingImpl passThrough();
+
+ /** Required for ScientificFormatter */
+ bool isSignificantDigits() const;
+
+ /**
+ * Rounding endpoint used by Engineering and Compact notation. Chooses the most appropriate multiplier (magnitude
+ * adjustment), applies the adjustment, rounds, and returns the chosen multiplier.
+ *
+ * <p>
+ * In most cases, this is simple. However, when rounding the number causes it to cross a multiplier boundary, we
+ * need to re-do the rounding. For example, to display 999,999 in Engineering notation with 2 sigfigs, first you
+ * guess the multiplier to be -3. However, then you end up getting 1000E3, which is not the correct output. You then
+ * change your multiplier to be -6, and you get 1.0E6, which is correct.
+ *
+ * @param input The quantity to process.
+ * @param producer Function to call to return a multiplier based on a magnitude.
+ * @return The number of orders of magnitude the input was adjusted by this method.
+ */
+ int32_t
+ chooseMultiplierAndApply(impl::DecimalQuantity &input, const impl::MultiplierProducer &producer,
+ UErrorCode &status);
+
+ void apply(impl::DecimalQuantity &value, UErrorCode &status) const;
+
+ /** Version of {@link #apply} that obeys minInt constraints. Used for scientific notation compatibility mode. */
+ void apply(impl::DecimalQuantity &value, int32_t minInt, UErrorCode status);
+
+ private:
+ Precision fPrecision;
+ UNumberFormatRoundingMode fRoundingMode;
+ bool fPassThrough;
+};
+
+
} // namespace impl
} // namespace number
U_NAMESPACE_END
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_scientific.cpp b/Build/source/libs/icu/icu-src/source/i18n/number_scientific.cpp
index 0557adb63e3..009e4dfa5b5 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/number_scientific.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_scientific.cpp
@@ -3,13 +3,14 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
#include <cstdlib>
#include "number_scientific.h"
#include "number_utils.h"
#include "number_stringbuilder.h"
#include "unicode/unum.h"
+#include "number_microprops.h"
using namespace icu;
using namespace icu::number;
@@ -64,23 +65,27 @@ int32_t ScientificModifier::apply(NumberStringBuilder &output, int32_t /*leftInd
int32_t disp = std::abs(fExponent);
for (int j = 0; j < fHandler->fSettings.fMinExponentDigits || disp > 0; j++, disp /= 10) {
auto d = static_cast<int8_t>(disp % 10);
- const UnicodeString &digitString = getDigitFromSymbols(d, *fHandler->fSymbols);
- i += output.insert(i - j, digitString, UNUM_EXPONENT_FIELD, status);
+ i += utils::insertDigitFromSymbols(
+ output,
+ i - j,
+ d,
+ *fHandler->fSymbols,
+ UNUM_EXPONENT_FIELD,
+ status);
}
return i - rightIndex;
}
-int32_t ScientificModifier::getPrefixLength(UErrorCode &status) const {
- (void)status;
+int32_t ScientificModifier::getPrefixLength() const {
// TODO: Localized exponent separator location.
return 0;
}
-int32_t ScientificModifier::getCodePointCount(UErrorCode &status) const {
- (void)status;
- // This method is not used for strong modifiers.
- U_ASSERT(false);
- return 0;
+int32_t ScientificModifier::getCodePointCount() const {
+ // NOTE: This method is only called one place, NumberRangeFormatterImpl.
+ // The call site only cares about != 0 and != 1.
+ // Return a very large value so that if this method is used elsewhere, we should notice.
+ return 999;
}
bool ScientificModifier::isStrong() const {
@@ -88,6 +93,27 @@ bool ScientificModifier::isStrong() const {
return true;
}
+bool ScientificModifier::containsField(UNumberFormatFields field) const {
+ (void)field;
+ // This method is not used for inner modifiers.
+ U_ASSERT(false);
+ return false;
+}
+
+void ScientificModifier::getParameters(Parameters& output) const {
+ // Not part of any plural sets
+ output.obj = nullptr;
+}
+
+bool ScientificModifier::semanticallyEquivalent(const Modifier& other) const {
+ auto* _other = dynamic_cast<const ScientificModifier*>(&other);
+ if (_other == nullptr) {
+ return false;
+ }
+ // TODO: Check for locale symbols and settings as well? Could be less efficient.
+ return fExponent == _other->fExponent;
+}
+
// Note: Visual Studio does not compile this function without full name space. Why?
icu::number::impl::ScientificHandler::ScientificHandler(const Notation *notation, const DecimalFormatSymbols *symbols,
const MicroPropsGenerator *parent) :
@@ -101,22 +127,25 @@ void ScientificHandler::processQuantity(DecimalQuantity &quantity, MicroProps &m
// Treat zero as if it had magnitude 0
int32_t exponent;
if (quantity.isZero()) {
- if (fSettings.fRequireMinInt && micros.rounding.fType == Rounder::RND_SIGNIFICANT) {
+ if (fSettings.fRequireMinInt && micros.rounder.isSignificantDigits()) {
// Show "00.000E0" on pattern "00.000E0"
- micros.rounding.apply(quantity, fSettings.fEngineeringInterval, status);
+ micros.rounder.apply(quantity, fSettings.fEngineeringInterval, status);
exponent = 0;
} else {
- micros.rounding.apply(quantity, status);
+ micros.rounder.apply(quantity, status);
exponent = 0;
}
} else {
- exponent = -micros.rounding.chooseMultiplierAndApply(quantity, *this, status);
+ exponent = -micros.rounder.chooseMultiplierAndApply(quantity, *this, status);
}
// Use MicroProps's helper ScientificModifier and save it as the modInner.
ScientificModifier &mod = micros.helpers.scientificModifier;
mod.set(exponent, this);
micros.modInner = &mod;
+
+ // We already performed rounding. Do not perform it again.
+ micros.rounder = RoundingImpl::passThrough();
}
int32_t ScientificHandler::getMultiplier(int32_t magnitude) const {
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_scientific.h b/Build/source/libs/icu/icu-src/source/i18n/number_scientific.h
index f5e4d30e6a9..e377bd941ef 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/number_scientific.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_scientific.h
@@ -3,7 +3,7 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
#ifndef __NUMBER_SCIENTIFIC_H__
#define __NUMBER_SCIENTIFIC_H__
@@ -24,12 +24,18 @@ class U_I18N_API ScientificModifier : public UMemory, public Modifier {
int32_t apply(NumberStringBuilder &output, int32_t leftIndex, int32_t rightIndex,
UErrorCode &status) const U_OVERRIDE;
- int32_t getPrefixLength(UErrorCode &status) const U_OVERRIDE;
+ int32_t getPrefixLength() const U_OVERRIDE;
- int32_t getCodePointCount(UErrorCode &status) const U_OVERRIDE;
+ int32_t getCodePointCount() const U_OVERRIDE;
bool isStrong() const U_OVERRIDE;
+ bool containsField(UNumberFormatFields field) const U_OVERRIDE;
+
+ void getParameters(Parameters& output) const U_OVERRIDE;
+
+ bool semanticallyEquivalent(const Modifier& other) const U_OVERRIDE;
+
private:
int32_t fExponent;
const ScientificHandler *fHandler;
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_skeletons.cpp b/Build/source/libs/icu/icu-src/source/i18n/number_skeletons.cpp
new file mode 100644
index 00000000000..c7bb18b5f3d
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_skeletons.cpp
@@ -0,0 +1,1510 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+// Allow implicit conversion from char16_t* to UnicodeString for this file:
+// Helpful in toString methods and elsewhere.
+#define UNISTR_FROM_STRING_EXPLICIT
+
+#include "number_decnum.h"
+#include "number_skeletons.h"
+#include "umutex.h"
+#include "ucln_in.h"
+#include "patternprops.h"
+#include "unicode/ucharstriebuilder.h"
+#include "number_utils.h"
+#include "number_decimalquantity.h"
+#include "unicode/numberformatter.h"
+#include "uinvchar.h"
+#include "charstr.h"
+
+using namespace icu;
+using namespace icu::number;
+using namespace icu::number::impl;
+using namespace icu::number::impl::skeleton;
+
+namespace {
+
+icu::UInitOnce gNumberSkeletonsInitOnce = U_INITONCE_INITIALIZER;
+
+char16_t* kSerializedStemTrie = nullptr;
+
+UBool U_CALLCONV cleanupNumberSkeletons() {
+ uprv_free(kSerializedStemTrie);
+ kSerializedStemTrie = nullptr;
+ gNumberSkeletonsInitOnce.reset();
+ return TRUE;
+}
+
+void U_CALLCONV initNumberSkeletons(UErrorCode& status) {
+ ucln_i18n_registerCleanup(UCLN_I18N_NUMBER_SKELETONS, cleanupNumberSkeletons);
+
+ UCharsTrieBuilder b(status);
+ if (U_FAILURE(status)) { return; }
+
+ // Section 1:
+ b.add(u"compact-short", STEM_COMPACT_SHORT, status);
+ b.add(u"compact-long", STEM_COMPACT_LONG, status);
+ b.add(u"scientific", STEM_SCIENTIFIC, status);
+ b.add(u"engineering", STEM_ENGINEERING, status);
+ b.add(u"notation-simple", STEM_NOTATION_SIMPLE, status);
+ b.add(u"base-unit", STEM_BASE_UNIT, status);
+ b.add(u"percent", STEM_PERCENT, status);
+ b.add(u"permille", STEM_PERMILLE, status);
+ b.add(u"precision-integer", STEM_PRECISION_INTEGER, status);
+ b.add(u"precision-unlimited", STEM_PRECISION_UNLIMITED, status);
+ b.add(u"precision-currency-standard", STEM_PRECISION_CURRENCY_STANDARD, status);
+ b.add(u"precision-currency-cash", STEM_PRECISION_CURRENCY_CASH, status);
+ b.add(u"rounding-mode-ceiling", STEM_ROUNDING_MODE_CEILING, status);
+ b.add(u"rounding-mode-floor", STEM_ROUNDING_MODE_FLOOR, status);
+ b.add(u"rounding-mode-down", STEM_ROUNDING_MODE_DOWN, status);
+ b.add(u"rounding-mode-up", STEM_ROUNDING_MODE_UP, status);
+ b.add(u"rounding-mode-half-even", STEM_ROUNDING_MODE_HALF_EVEN, status);
+ b.add(u"rounding-mode-half-down", STEM_ROUNDING_MODE_HALF_DOWN, status);
+ b.add(u"rounding-mode-half-up", STEM_ROUNDING_MODE_HALF_UP, status);
+ b.add(u"rounding-mode-unnecessary", STEM_ROUNDING_MODE_UNNECESSARY, status);
+ b.add(u"group-off", STEM_GROUP_OFF, status);
+ b.add(u"group-min2", STEM_GROUP_MIN2, status);
+ b.add(u"group-auto", STEM_GROUP_AUTO, status);
+ b.add(u"group-on-aligned", STEM_GROUP_ON_ALIGNED, status);
+ b.add(u"group-thousands", STEM_GROUP_THOUSANDS, status);
+ b.add(u"latin", STEM_LATIN, status);
+ b.add(u"unit-width-narrow", STEM_UNIT_WIDTH_NARROW, status);
+ b.add(u"unit-width-short", STEM_UNIT_WIDTH_SHORT, status);
+ b.add(u"unit-width-full-name", STEM_UNIT_WIDTH_FULL_NAME, status);
+ b.add(u"unit-width-iso-code", STEM_UNIT_WIDTH_ISO_CODE, status);
+ b.add(u"unit-width-hidden", STEM_UNIT_WIDTH_HIDDEN, status);
+ b.add(u"sign-auto", STEM_SIGN_AUTO, status);
+ b.add(u"sign-always", STEM_SIGN_ALWAYS, status);
+ b.add(u"sign-never", STEM_SIGN_NEVER, status);
+ b.add(u"sign-accounting", STEM_SIGN_ACCOUNTING, status);
+ b.add(u"sign-accounting-always", STEM_SIGN_ACCOUNTING_ALWAYS, status);
+ b.add(u"sign-except-zero", STEM_SIGN_EXCEPT_ZERO, status);
+ b.add(u"sign-accounting-except-zero", STEM_SIGN_ACCOUNTING_EXCEPT_ZERO, status);
+ b.add(u"decimal-auto", STEM_DECIMAL_AUTO, status);
+ b.add(u"decimal-always", STEM_DECIMAL_ALWAYS, status);
+ if (U_FAILURE(status)) { return; }
+
+ // Section 2:
+ b.add(u"precision-increment", STEM_PRECISION_INCREMENT, status);
+ b.add(u"measure-unit", STEM_MEASURE_UNIT, status);
+ b.add(u"per-measure-unit", STEM_PER_MEASURE_UNIT, status);
+ b.add(u"currency", STEM_CURRENCY, status);
+ b.add(u"integer-width", STEM_INTEGER_WIDTH, status);
+ b.add(u"numbering-system", STEM_NUMBERING_SYSTEM, status);
+ b.add(u"scale", STEM_SCALE, status);
+ if (U_FAILURE(status)) { return; }
+
+ // Build the CharsTrie
+ // TODO: Use SLOW or FAST here?
+ UnicodeString result;
+ b.buildUnicodeString(USTRINGTRIE_BUILD_FAST, result, status);
+ if (U_FAILURE(status)) { return; }
+
+ // Copy the result into the global constant pointer
+ size_t numBytes = result.length() * sizeof(char16_t);
+ kSerializedStemTrie = static_cast<char16_t*>(uprv_malloc(numBytes));
+ uprv_memcpy(kSerializedStemTrie, result.getBuffer(), numBytes);
+}
+
+
+inline void appendMultiple(UnicodeString& sb, UChar32 cp, int32_t count) {
+ for (int i = 0; i < count; i++) {
+ sb.append(cp);
+ }
+}
+
+
+#define CHECK_NULL(seen, field, status) (void)(seen); /* for auto-format line wrapping */ \
+{ \
+ if ((seen).field) { \
+ (status) = U_NUMBER_SKELETON_SYNTAX_ERROR; \
+ return STATE_NULL; \
+ } \
+ (seen).field = true; \
+}
+
+
+#define SKELETON_UCHAR_TO_CHAR(dest, src, start, end, status) (void)(dest); \
+{ \
+ UErrorCode conversionStatus = U_ZERO_ERROR; \
+ (dest).appendInvariantChars({FALSE, (src).getBuffer() + (start), (end) - (start)}, conversionStatus); \
+ if (conversionStatus == U_INVARIANT_CONVERSION_ERROR) { \
+ /* Don't propagate the invariant conversion error; it is a skeleton syntax error */ \
+ (status) = U_NUMBER_SKELETON_SYNTAX_ERROR; \
+ return; \
+ } else if (U_FAILURE(conversionStatus)) { \
+ (status) = conversionStatus; \
+ return; \
+ } \
+}
+
+
+} // anonymous namespace
+
+
+Notation stem_to_object::notation(skeleton::StemEnum stem) {
+ switch (stem) {
+ case STEM_COMPACT_SHORT:
+ return Notation::compactShort();
+ case STEM_COMPACT_LONG:
+ return Notation::compactLong();
+ case STEM_SCIENTIFIC:
+ return Notation::scientific();
+ case STEM_ENGINEERING:
+ return Notation::engineering();
+ case STEM_NOTATION_SIMPLE:
+ return Notation::simple();
+ default:
+ U_ASSERT(false);
+ return Notation::simple(); // return a value: silence compiler warning
+ }
+}
+
+MeasureUnit stem_to_object::unit(skeleton::StemEnum stem) {
+ switch (stem) {
+ case STEM_BASE_UNIT:
+ // Slicing is okay
+ return NoUnit::base(); // NOLINT
+ case STEM_PERCENT:
+ // Slicing is okay
+ return NoUnit::percent(); // NOLINT
+ case STEM_PERMILLE:
+ // Slicing is okay
+ return NoUnit::permille(); // NOLINT
+ default:
+ U_ASSERT(false);
+ return {}; // return a value: silence compiler warning
+ }
+}
+
+Precision stem_to_object::precision(skeleton::StemEnum stem) {
+ switch (stem) {
+ case STEM_PRECISION_INTEGER:
+ return Precision::integer();
+ case STEM_PRECISION_UNLIMITED:
+ return Precision::unlimited();
+ case STEM_PRECISION_CURRENCY_STANDARD:
+ return Precision::currency(UCURR_USAGE_STANDARD);
+ case STEM_PRECISION_CURRENCY_CASH:
+ return Precision::currency(UCURR_USAGE_CASH);
+ default:
+ U_ASSERT(false);
+ return Precision::integer(); // return a value: silence compiler warning
+ }
+}
+
+UNumberFormatRoundingMode stem_to_object::roundingMode(skeleton::StemEnum stem) {
+ switch (stem) {
+ case STEM_ROUNDING_MODE_CEILING:
+ return UNUM_ROUND_CEILING;
+ case STEM_ROUNDING_MODE_FLOOR:
+ return UNUM_ROUND_FLOOR;
+ case STEM_ROUNDING_MODE_DOWN:
+ return UNUM_ROUND_DOWN;
+ case STEM_ROUNDING_MODE_UP:
+ return UNUM_ROUND_UP;
+ case STEM_ROUNDING_MODE_HALF_EVEN:
+ return UNUM_ROUND_HALFEVEN;
+ case STEM_ROUNDING_MODE_HALF_DOWN:
+ return UNUM_ROUND_HALFDOWN;
+ case STEM_ROUNDING_MODE_HALF_UP:
+ return UNUM_ROUND_HALFUP;
+ case STEM_ROUNDING_MODE_UNNECESSARY:
+ return UNUM_ROUND_UNNECESSARY;
+ default:
+ U_ASSERT(false);
+ return UNUM_ROUND_UNNECESSARY;
+ }
+}
+
+UGroupingStrategy stem_to_object::groupingStrategy(skeleton::StemEnum stem) {
+ switch (stem) {
+ case STEM_GROUP_OFF:
+ return UNUM_GROUPING_OFF;
+ case STEM_GROUP_MIN2:
+ return UNUM_GROUPING_MIN2;
+ case STEM_GROUP_AUTO:
+ return UNUM_GROUPING_AUTO;
+ case STEM_GROUP_ON_ALIGNED:
+ return UNUM_GROUPING_ON_ALIGNED;
+ case STEM_GROUP_THOUSANDS:
+ return UNUM_GROUPING_THOUSANDS;
+ default:
+ return UNUM_GROUPING_COUNT; // for objects, throw; for enums, return COUNT
+ }
+}
+
+UNumberUnitWidth stem_to_object::unitWidth(skeleton::StemEnum stem) {
+ switch (stem) {
+ case STEM_UNIT_WIDTH_NARROW:
+ return UNUM_UNIT_WIDTH_NARROW;
+ case STEM_UNIT_WIDTH_SHORT:
+ return UNUM_UNIT_WIDTH_SHORT;
+ case STEM_UNIT_WIDTH_FULL_NAME:
+ return UNUM_UNIT_WIDTH_FULL_NAME;
+ case STEM_UNIT_WIDTH_ISO_CODE:
+ return UNUM_UNIT_WIDTH_ISO_CODE;
+ case STEM_UNIT_WIDTH_HIDDEN:
+ return UNUM_UNIT_WIDTH_HIDDEN;
+ default:
+ return UNUM_UNIT_WIDTH_COUNT; // for objects, throw; for enums, return COUNT
+ }
+}
+
+UNumberSignDisplay stem_to_object::signDisplay(skeleton::StemEnum stem) {
+ switch (stem) {
+ case STEM_SIGN_AUTO:
+ return UNUM_SIGN_AUTO;
+ case STEM_SIGN_ALWAYS:
+ return UNUM_SIGN_ALWAYS;
+ case STEM_SIGN_NEVER:
+ return UNUM_SIGN_NEVER;
+ case STEM_SIGN_ACCOUNTING:
+ return UNUM_SIGN_ACCOUNTING;
+ case STEM_SIGN_ACCOUNTING_ALWAYS:
+ return UNUM_SIGN_ACCOUNTING_ALWAYS;
+ case STEM_SIGN_EXCEPT_ZERO:
+ return UNUM_SIGN_EXCEPT_ZERO;
+ case STEM_SIGN_ACCOUNTING_EXCEPT_ZERO:
+ return UNUM_SIGN_ACCOUNTING_EXCEPT_ZERO;
+ default:
+ return UNUM_SIGN_COUNT; // for objects, throw; for enums, return COUNT
+ }
+}
+
+UNumberDecimalSeparatorDisplay stem_to_object::decimalSeparatorDisplay(skeleton::StemEnum stem) {
+ switch (stem) {
+ case STEM_DECIMAL_AUTO:
+ return UNUM_DECIMAL_SEPARATOR_AUTO;
+ case STEM_DECIMAL_ALWAYS:
+ return UNUM_DECIMAL_SEPARATOR_ALWAYS;
+ default:
+ return UNUM_DECIMAL_SEPARATOR_COUNT; // for objects, throw; for enums, return COUNT
+ }
+}
+
+
+void enum_to_stem_string::roundingMode(UNumberFormatRoundingMode value, UnicodeString& sb) {
+ switch (value) {
+ case UNUM_ROUND_CEILING:
+ sb.append(u"rounding-mode-ceiling", -1);
+ break;
+ case UNUM_ROUND_FLOOR:
+ sb.append(u"rounding-mode-floor", -1);
+ break;
+ case UNUM_ROUND_DOWN:
+ sb.append(u"rounding-mode-down", -1);
+ break;
+ case UNUM_ROUND_UP:
+ sb.append(u"rounding-mode-up", -1);
+ break;
+ case UNUM_ROUND_HALFEVEN:
+ sb.append(u"rounding-mode-half-even", -1);
+ break;
+ case UNUM_ROUND_HALFDOWN:
+ sb.append(u"rounding-mode-half-down", -1);
+ break;
+ case UNUM_ROUND_HALFUP:
+ sb.append(u"rounding-mode-half-up", -1);
+ break;
+ case UNUM_ROUND_UNNECESSARY:
+ sb.append(u"rounding-mode-unnecessary", -1);
+ break;
+ default:
+ U_ASSERT(false);
+ }
+}
+
+void enum_to_stem_string::groupingStrategy(UGroupingStrategy value, UnicodeString& sb) {
+ switch (value) {
+ case UNUM_GROUPING_OFF:
+ sb.append(u"group-off", -1);
+ break;
+ case UNUM_GROUPING_MIN2:
+ sb.append(u"group-min2", -1);
+ break;
+ case UNUM_GROUPING_AUTO:
+ sb.append(u"group-auto", -1);
+ break;
+ case UNUM_GROUPING_ON_ALIGNED:
+ sb.append(u"group-on-aligned", -1);
+ break;
+ case UNUM_GROUPING_THOUSANDS:
+ sb.append(u"group-thousands", -1);
+ break;
+ default:
+ U_ASSERT(false);
+ }
+}
+
+void enum_to_stem_string::unitWidth(UNumberUnitWidth value, UnicodeString& sb) {
+ switch (value) {
+ case UNUM_UNIT_WIDTH_NARROW:
+ sb.append(u"unit-width-narrow", -1);
+ break;
+ case UNUM_UNIT_WIDTH_SHORT:
+ sb.append(u"unit-width-short", -1);
+ break;
+ case UNUM_UNIT_WIDTH_FULL_NAME:
+ sb.append(u"unit-width-full-name", -1);
+ break;
+ case UNUM_UNIT_WIDTH_ISO_CODE:
+ sb.append(u"unit-width-iso-code", -1);
+ break;
+ case UNUM_UNIT_WIDTH_HIDDEN:
+ sb.append(u"unit-width-hidden", -1);
+ break;
+ default:
+ U_ASSERT(false);
+ }
+}
+
+void enum_to_stem_string::signDisplay(UNumberSignDisplay value, UnicodeString& sb) {
+ switch (value) {
+ case UNUM_SIGN_AUTO:
+ sb.append(u"sign-auto", -1);
+ break;
+ case UNUM_SIGN_ALWAYS:
+ sb.append(u"sign-always", -1);
+ break;
+ case UNUM_SIGN_NEVER:
+ sb.append(u"sign-never", -1);
+ break;
+ case UNUM_SIGN_ACCOUNTING:
+ sb.append(u"sign-accounting", -1);
+ break;
+ case UNUM_SIGN_ACCOUNTING_ALWAYS:
+ sb.append(u"sign-accounting-always", -1);
+ break;
+ case UNUM_SIGN_EXCEPT_ZERO:
+ sb.append(u"sign-except-zero", -1);
+ break;
+ case UNUM_SIGN_ACCOUNTING_EXCEPT_ZERO:
+ sb.append(u"sign-accounting-except-zero", -1);
+ break;
+ default:
+ U_ASSERT(false);
+ }
+}
+
+void
+enum_to_stem_string::decimalSeparatorDisplay(UNumberDecimalSeparatorDisplay value, UnicodeString& sb) {
+ switch (value) {
+ case UNUM_DECIMAL_SEPARATOR_AUTO:
+ sb.append(u"decimal-auto", -1);
+ break;
+ case UNUM_DECIMAL_SEPARATOR_ALWAYS:
+ sb.append(u"decimal-always", -1);
+ break;
+ default:
+ U_ASSERT(false);
+ }
+}
+
+
+UnlocalizedNumberFormatter skeleton::create(const UnicodeString& skeletonString, UErrorCode& status) {
+ umtx_initOnce(gNumberSkeletonsInitOnce, &initNumberSkeletons, status);
+ MacroProps macros = parseSkeleton(skeletonString, status);
+ return NumberFormatter::with().macros(macros);
+}
+
+UnicodeString skeleton::generate(const MacroProps& macros, UErrorCode& status) {
+ umtx_initOnce(gNumberSkeletonsInitOnce, &initNumberSkeletons, status);
+ UnicodeString sb;
+ GeneratorHelpers::generateSkeleton(macros, sb, status);
+ return sb;
+}
+
+MacroProps skeleton::parseSkeleton(const UnicodeString& skeletonString, UErrorCode& status) {
+ if (U_FAILURE(status)) { return MacroProps(); }
+
+ // Add a trailing whitespace to the end of the skeleton string to make code cleaner.
+ UnicodeString tempSkeletonString(skeletonString);
+ tempSkeletonString.append(u' ');
+
+ SeenMacroProps seen;
+ MacroProps macros;
+ StringSegment segment(tempSkeletonString, false);
+ UCharsTrie stemTrie(kSerializedStemTrie);
+ ParseState stem = STATE_NULL;
+ int32_t offset = 0;
+
+ // Primary skeleton parse loop:
+ while (offset < segment.length()) {
+ UChar32 cp = segment.codePointAt(offset);
+ bool isTokenSeparator = PatternProps::isWhiteSpace(cp);
+ bool isOptionSeparator = (cp == u'/');
+
+ if (!isTokenSeparator && !isOptionSeparator) {
+ // Non-separator token; consume it.
+ offset += U16_LENGTH(cp);
+ if (stem == STATE_NULL) {
+ // We are currently consuming a stem.
+ // Go to the next state in the stem trie.
+ stemTrie.nextForCodePoint(cp);
+ }
+ continue;
+ }
+
+ // We are looking at a token or option separator.
+ // If the segment is nonempty, parse it and reset the segment.
+ // Otherwise, make sure it is a valid repeating separator.
+ if (offset != 0) {
+ segment.setLength(offset);
+ if (stem == STATE_NULL) {
+ // The first separator after the start of a token. Parse it as a stem.
+ stem = parseStem(segment, stemTrie, seen, macros, status);
+ stemTrie.reset();
+ } else {
+ // A separator after the first separator of a token. Parse it as an option.
+ stem = parseOption(stem, segment, macros, status);
+ }
+ segment.resetLength();
+ if (U_FAILURE(status)) { return macros; }
+
+ // Consume the segment:
+ segment.adjustOffset(offset);
+ offset = 0;
+
+ } else if (stem != STATE_NULL) {
+ // A separator ('/' or whitespace) following an option separator ('/')
+ // segment.setLength(U16_LENGTH(cp)); // for error message
+ // throw new SkeletonSyntaxException("Unexpected separator character", segment);
+ status = U_NUMBER_SKELETON_SYNTAX_ERROR;
+ return macros;
+
+ } else {
+ // Two spaces in a row; this is OK.
+ }
+
+ // Does the current stem forbid options?
+ if (isOptionSeparator && stem == STATE_NULL) {
+ // segment.setLength(U16_LENGTH(cp)); // for error message
+ // throw new SkeletonSyntaxException("Unexpected option separator", segment);
+ status = U_NUMBER_SKELETON_SYNTAX_ERROR;
+ return macros;
+ }
+
+ // Does the current stem require an option?
+ if (isTokenSeparator && stem != STATE_NULL) {
+ switch (stem) {
+ case STATE_INCREMENT_PRECISION:
+ case STATE_MEASURE_UNIT:
+ case STATE_PER_MEASURE_UNIT:
+ case STATE_CURRENCY_UNIT:
+ case STATE_INTEGER_WIDTH:
+ case STATE_NUMBERING_SYSTEM:
+ case STATE_SCALE:
+ // segment.setLength(U16_LENGTH(cp)); // for error message
+ // throw new SkeletonSyntaxException("Stem requires an option", segment);
+ status = U_NUMBER_SKELETON_SYNTAX_ERROR;
+ return macros;
+ default:
+ break;
+ }
+ stem = STATE_NULL;
+ }
+
+ // Consume the separator:
+ segment.adjustOffset(U16_LENGTH(cp));
+ }
+ U_ASSERT(stem == STATE_NULL);
+ return macros;
+}
+
+ParseState
+skeleton::parseStem(const StringSegment& segment, const UCharsTrie& stemTrie, SeenMacroProps& seen,
+ MacroProps& macros, UErrorCode& status) {
+ // First check for "blueprint" stems, which start with a "signal char"
+ switch (segment.charAt(0)) {
+ case u'.':
+ CHECK_NULL(seen, precision, status);
+ blueprint_helpers::parseFractionStem(segment, macros, status);
+ return STATE_FRACTION_PRECISION;
+ case u'@':
+ CHECK_NULL(seen, precision, status);
+ blueprint_helpers::parseDigitsStem(segment, macros, status);
+ return STATE_NULL;
+ default:
+ break;
+ }
+
+ // Now look at the stemsTrie, which is already be pointing at our stem.
+ UStringTrieResult stemResult = stemTrie.current();
+
+ if (stemResult != USTRINGTRIE_INTERMEDIATE_VALUE && stemResult != USTRINGTRIE_FINAL_VALUE) {
+ // throw new SkeletonSyntaxException("Unknown stem", segment);
+ status = U_NUMBER_SKELETON_SYNTAX_ERROR;
+ return STATE_NULL;
+ }
+
+ auto stem = static_cast<StemEnum>(stemTrie.getValue());
+ switch (stem) {
+
+ // Stems with meaning on their own, not requiring an option:
+
+ case STEM_COMPACT_SHORT:
+ case STEM_COMPACT_LONG:
+ case STEM_SCIENTIFIC:
+ case STEM_ENGINEERING:
+ case STEM_NOTATION_SIMPLE:
+ CHECK_NULL(seen, notation, status);
+ macros.notation = stem_to_object::notation(stem);
+ switch (stem) {
+ case STEM_SCIENTIFIC:
+ case STEM_ENGINEERING:
+ return STATE_SCIENTIFIC; // allows for scientific options
+ default:
+ return STATE_NULL;
+ }
+
+ case STEM_BASE_UNIT:
+ case STEM_PERCENT:
+ case STEM_PERMILLE:
+ CHECK_NULL(seen, unit, status);
+ macros.unit = stem_to_object::unit(stem);
+ return STATE_NULL;
+
+ case STEM_PRECISION_INTEGER:
+ case STEM_PRECISION_UNLIMITED:
+ case STEM_PRECISION_CURRENCY_STANDARD:
+ case STEM_PRECISION_CURRENCY_CASH:
+ CHECK_NULL(seen, precision, status);
+ macros.precision = stem_to_object::precision(stem);
+ switch (stem) {
+ case STEM_PRECISION_INTEGER:
+ return STATE_FRACTION_PRECISION; // allows for "precision-integer/@##"
+ default:
+ return STATE_NULL;
+ }
+
+ case STEM_ROUNDING_MODE_CEILING:
+ case STEM_ROUNDING_MODE_FLOOR:
+ case STEM_ROUNDING_MODE_DOWN:
+ case STEM_ROUNDING_MODE_UP:
+ case STEM_ROUNDING_MODE_HALF_EVEN:
+ case STEM_ROUNDING_MODE_HALF_DOWN:
+ case STEM_ROUNDING_MODE_HALF_UP:
+ case STEM_ROUNDING_MODE_UNNECESSARY:
+ CHECK_NULL(seen, roundingMode, status);
+ macros.roundingMode = stem_to_object::roundingMode(stem);
+ return STATE_NULL;
+
+ case STEM_GROUP_OFF:
+ case STEM_GROUP_MIN2:
+ case STEM_GROUP_AUTO:
+ case STEM_GROUP_ON_ALIGNED:
+ case STEM_GROUP_THOUSANDS:
+ CHECK_NULL(seen, grouper, status);
+ macros.grouper = Grouper::forStrategy(stem_to_object::groupingStrategy(stem));
+ return STATE_NULL;
+
+ case STEM_LATIN:
+ CHECK_NULL(seen, symbols, status);
+ macros.symbols.setTo(NumberingSystem::createInstanceByName("latn", status));
+ return STATE_NULL;
+
+ case STEM_UNIT_WIDTH_NARROW:
+ case STEM_UNIT_WIDTH_SHORT:
+ case STEM_UNIT_WIDTH_FULL_NAME:
+ case STEM_UNIT_WIDTH_ISO_CODE:
+ case STEM_UNIT_WIDTH_HIDDEN:
+ CHECK_NULL(seen, unitWidth, status);
+ macros.unitWidth = stem_to_object::unitWidth(stem);
+ return STATE_NULL;
+
+ case STEM_SIGN_AUTO:
+ case STEM_SIGN_ALWAYS:
+ case STEM_SIGN_NEVER:
+ case STEM_SIGN_ACCOUNTING:
+ case STEM_SIGN_ACCOUNTING_ALWAYS:
+ case STEM_SIGN_EXCEPT_ZERO:
+ case STEM_SIGN_ACCOUNTING_EXCEPT_ZERO:
+ CHECK_NULL(seen, sign, status);
+ macros.sign = stem_to_object::signDisplay(stem);
+ return STATE_NULL;
+
+ case STEM_DECIMAL_AUTO:
+ case STEM_DECIMAL_ALWAYS:
+ CHECK_NULL(seen, decimal, status);
+ macros.decimal = stem_to_object::decimalSeparatorDisplay(stem);
+ return STATE_NULL;
+
+ // Stems requiring an option:
+
+ case STEM_PRECISION_INCREMENT:
+ CHECK_NULL(seen, precision, status);
+ return STATE_INCREMENT_PRECISION;
+
+ case STEM_MEASURE_UNIT:
+ CHECK_NULL(seen, unit, status);
+ return STATE_MEASURE_UNIT;
+
+ case STEM_PER_MEASURE_UNIT:
+ CHECK_NULL(seen, perUnit, status);
+ return STATE_PER_MEASURE_UNIT;
+
+ case STEM_CURRENCY:
+ CHECK_NULL(seen, unit, status);
+ return STATE_CURRENCY_UNIT;
+
+ case STEM_INTEGER_WIDTH:
+ CHECK_NULL(seen, integerWidth, status);
+ return STATE_INTEGER_WIDTH;
+
+ case STEM_NUMBERING_SYSTEM:
+ CHECK_NULL(seen, symbols, status);
+ return STATE_NUMBERING_SYSTEM;
+
+ case STEM_SCALE:
+ CHECK_NULL(seen, scale, status);
+ return STATE_SCALE;
+
+ default:
+ U_ASSERT(false);
+ return STATE_NULL; // return a value: silence compiler warning
+ }
+}
+
+ParseState skeleton::parseOption(ParseState stem, const StringSegment& segment, MacroProps& macros,
+ UErrorCode& status) {
+
+ ///// Required options: /////
+
+ switch (stem) {
+ case STATE_CURRENCY_UNIT:
+ blueprint_helpers::parseCurrencyOption(segment, macros, status);
+ return STATE_NULL;
+ case STATE_MEASURE_UNIT:
+ blueprint_helpers::parseMeasureUnitOption(segment, macros, status);
+ return STATE_NULL;
+ case STATE_PER_MEASURE_UNIT:
+ blueprint_helpers::parseMeasurePerUnitOption(segment, macros, status);
+ return STATE_NULL;
+ case STATE_INCREMENT_PRECISION:
+ blueprint_helpers::parseIncrementOption(segment, macros, status);
+ return STATE_NULL;
+ case STATE_INTEGER_WIDTH:
+ blueprint_helpers::parseIntegerWidthOption(segment, macros, status);
+ return STATE_NULL;
+ case STATE_NUMBERING_SYSTEM:
+ blueprint_helpers::parseNumberingSystemOption(segment, macros, status);
+ return STATE_NULL;
+ case STATE_SCALE:
+ blueprint_helpers::parseScaleOption(segment, macros, status);
+ return STATE_NULL;
+ default:
+ break;
+ }
+
+ ///// Non-required options: /////
+
+ // Scientific options
+ switch (stem) {
+ case STATE_SCIENTIFIC:
+ if (blueprint_helpers::parseExponentWidthOption(segment, macros, status)) {
+ return STATE_SCIENTIFIC;
+ }
+ if (U_FAILURE(status)) {
+ return {};
+ }
+ if (blueprint_helpers::parseExponentSignOption(segment, macros, status)) {
+ return STATE_SCIENTIFIC;
+ }
+ if (U_FAILURE(status)) {
+ return {};
+ }
+ break;
+ default:
+ break;
+ }
+
+ // Frac-sig option
+ switch (stem) {
+ case STATE_FRACTION_PRECISION:
+ if (blueprint_helpers::parseFracSigOption(segment, macros, status)) {
+ return STATE_NULL;
+ }
+ if (U_FAILURE(status)) {
+ return {};
+ }
+ break;
+ default:
+ break;
+ }
+
+ // Unknown option
+ // throw new SkeletonSyntaxException("Invalid option", segment);
+ status = U_NUMBER_SKELETON_SYNTAX_ERROR;
+ return STATE_NULL;
+}
+
+void GeneratorHelpers::generateSkeleton(const MacroProps& macros, UnicodeString& sb, UErrorCode& status) {
+ if (U_FAILURE(status)) { return; }
+
+ // Supported options
+ if (GeneratorHelpers::notation(macros, sb, status)) {
+ sb.append(u' ');
+ }
+ if (U_FAILURE(status)) { return; }
+ if (GeneratorHelpers::unit(macros, sb, status)) {
+ sb.append(u' ');
+ }
+ if (U_FAILURE(status)) { return; }
+ if (GeneratorHelpers::perUnit(macros, sb, status)) {
+ sb.append(u' ');
+ }
+ if (U_FAILURE(status)) { return; }
+ if (GeneratorHelpers::precision(macros, sb, status)) {
+ sb.append(u' ');
+ }
+ if (U_FAILURE(status)) { return; }
+ if (GeneratorHelpers::roundingMode(macros, sb, status)) {
+ sb.append(u' ');
+ }
+ if (U_FAILURE(status)) { return; }
+ if (GeneratorHelpers::grouping(macros, sb, status)) {
+ sb.append(u' ');
+ }
+ if (U_FAILURE(status)) { return; }
+ if (GeneratorHelpers::integerWidth(macros, sb, status)) {
+ sb.append(u' ');
+ }
+ if (U_FAILURE(status)) { return; }
+ if (GeneratorHelpers::symbols(macros, sb, status)) {
+ sb.append(u' ');
+ }
+ if (U_FAILURE(status)) { return; }
+ if (GeneratorHelpers::unitWidth(macros, sb, status)) {
+ sb.append(u' ');
+ }
+ if (U_FAILURE(status)) { return; }
+ if (GeneratorHelpers::sign(macros, sb, status)) {
+ sb.append(u' ');
+ }
+ if (U_FAILURE(status)) { return; }
+ if (GeneratorHelpers::decimal(macros, sb, status)) {
+ sb.append(u' ');
+ }
+ if (U_FAILURE(status)) { return; }
+ if (GeneratorHelpers::scale(macros, sb, status)) {
+ sb.append(u' ');
+ }
+ if (U_FAILURE(status)) { return; }
+
+ // Unsupported options
+ if (!macros.padder.isBogus()) {
+ status = U_UNSUPPORTED_ERROR;
+ return;
+ }
+ if (macros.affixProvider != nullptr) {
+ status = U_UNSUPPORTED_ERROR;
+ return;
+ }
+ if (macros.rules != nullptr) {
+ status = U_UNSUPPORTED_ERROR;
+ return;
+ }
+ if (macros.currencySymbols != nullptr) {
+ status = U_UNSUPPORTED_ERROR;
+ return;
+ }
+
+ // Remove the trailing space
+ if (sb.length() > 0) {
+ sb.truncate(sb.length() - 1);
+ }
+}
+
+
+bool blueprint_helpers::parseExponentWidthOption(const StringSegment& segment, MacroProps& macros,
+ UErrorCode&) {
+ if (segment.charAt(0) != u'+') {
+ return false;
+ }
+ int32_t offset = 1;
+ int32_t minExp = 0;
+ for (; offset < segment.length(); offset++) {
+ if (segment.charAt(offset) == u'e') {
+ minExp++;
+ } else {
+ break;
+ }
+ }
+ if (offset < segment.length()) {
+ return false;
+ }
+ // Use the public APIs to enforce bounds checking
+ macros.notation = static_cast<ScientificNotation&>(macros.notation).withMinExponentDigits(minExp);
+ return true;
+}
+
+void
+blueprint_helpers::generateExponentWidthOption(int32_t minExponentDigits, UnicodeString& sb, UErrorCode&) {
+ sb.append(u'+');
+ appendMultiple(sb, u'e', minExponentDigits);
+}
+
+bool
+blueprint_helpers::parseExponentSignOption(const StringSegment& segment, MacroProps& macros, UErrorCode&) {
+ // Get the sign display type out of the CharsTrie data structure.
+ UCharsTrie tempStemTrie(kSerializedStemTrie);
+ UStringTrieResult result = tempStemTrie.next(
+ segment.toTempUnicodeString().getBuffer(),
+ segment.length());
+ if (result != USTRINGTRIE_INTERMEDIATE_VALUE && result != USTRINGTRIE_FINAL_VALUE) {
+ return false;
+ }
+ auto sign = stem_to_object::signDisplay(static_cast<StemEnum>(tempStemTrie.getValue()));
+ if (sign == UNUM_SIGN_COUNT) {
+ return false;
+ }
+ macros.notation = static_cast<ScientificNotation&>(macros.notation).withExponentSignDisplay(sign);
+ return true;
+}
+
+void blueprint_helpers::parseCurrencyOption(const StringSegment& segment, MacroProps& macros,
+ UErrorCode& status) {
+ // Unlike ICU4J, have to check length manually because ICU4C CurrencyUnit does not check it for us
+ if (segment.length() != 3) {
+ status = U_NUMBER_SKELETON_SYNTAX_ERROR;
+ return;
+ }
+ const UChar* currencyCode = segment.toTempUnicodeString().getBuffer();
+ UErrorCode localStatus = U_ZERO_ERROR;
+ CurrencyUnit currency(currencyCode, localStatus);
+ if (U_FAILURE(localStatus)) {
+ // Not 3 ascii chars
+ // throw new SkeletonSyntaxException("Invalid currency", segment);
+ status = U_NUMBER_SKELETON_SYNTAX_ERROR;
+ return;
+ }
+ // Slicing is OK
+ macros.unit = currency; // NOLINT
+}
+
+void
+blueprint_helpers::generateCurrencyOption(const CurrencyUnit& currency, UnicodeString& sb, UErrorCode&) {
+ sb.append(currency.getISOCurrency(), -1);
+}
+
+void blueprint_helpers::parseMeasureUnitOption(const StringSegment& segment, MacroProps& macros,
+ UErrorCode& status) {
+ const UnicodeString stemString = segment.toTempUnicodeString();
+
+ // NOTE: The category (type) of the unit is guaranteed to be a valid subtag (alphanumeric)
+ // http://unicode.org/reports/tr35/#Validity_Data
+ int firstHyphen = 0;
+ while (firstHyphen < stemString.length() && stemString.charAt(firstHyphen) != '-') {
+ firstHyphen++;
+ }
+ if (firstHyphen == stemString.length()) {
+ // throw new SkeletonSyntaxException("Invalid measure unit option", segment);
+ status = U_NUMBER_SKELETON_SYNTAX_ERROR;
+ return;
+ }
+
+ // Need to do char <-> UChar conversion...
+ U_ASSERT(U_SUCCESS(status));
+ CharString type;
+ SKELETON_UCHAR_TO_CHAR(type, stemString, 0, firstHyphen, status);
+ CharString subType;
+ SKELETON_UCHAR_TO_CHAR(subType, stemString, firstHyphen + 1, stemString.length(), status);
+
+ // Note: the largest type as of this writing (March 2018) is "volume", which has 24 units.
+ static constexpr int32_t CAPACITY = 30;
+ MeasureUnit units[CAPACITY];
+ UErrorCode localStatus = U_ZERO_ERROR;
+ int32_t numUnits = MeasureUnit::getAvailable(type.data(), units, CAPACITY, localStatus);
+ if (U_FAILURE(localStatus)) {
+ // More than 30 units in this type?
+ status = U_INTERNAL_PROGRAM_ERROR;
+ return;
+ }
+ for (int32_t i = 0; i < numUnits; i++) {
+ auto& unit = units[i];
+ if (uprv_strcmp(subType.data(), unit.getSubtype()) == 0) {
+ macros.unit = unit;
+ return;
+ }
+ }
+
+ // throw new SkeletonSyntaxException("Unknown measure unit", segment);
+ status = U_NUMBER_SKELETON_SYNTAX_ERROR;
+}
+
+void blueprint_helpers::generateMeasureUnitOption(const MeasureUnit& measureUnit, UnicodeString& sb,
+ UErrorCode&) {
+ // Need to do char <-> UChar conversion...
+ sb.append(UnicodeString(measureUnit.getType(), -1, US_INV));
+ sb.append(u'-');
+ sb.append(UnicodeString(measureUnit.getSubtype(), -1, US_INV));
+}
+
+void blueprint_helpers::parseMeasurePerUnitOption(const StringSegment& segment, MacroProps& macros,
+ UErrorCode& status) {
+ // A little bit of a hack: safe the current unit (numerator), call the main measure unit
+ // parsing code, put back the numerator unit, and put the new unit into per-unit.
+ MeasureUnit numerator = macros.unit;
+ parseMeasureUnitOption(segment, macros, status);
+ if (U_FAILURE(status)) { return; }
+ macros.perUnit = macros.unit;
+ macros.unit = numerator;
+}
+
+void blueprint_helpers::parseFractionStem(const StringSegment& segment, MacroProps& macros,
+ UErrorCode& status) {
+ U_ASSERT(segment.charAt(0) == u'.');
+ int32_t offset = 1;
+ int32_t minFrac = 0;
+ int32_t maxFrac;
+ for (; offset < segment.length(); offset++) {
+ if (segment.charAt(offset) == u'0') {
+ minFrac++;
+ } else {
+ break;
+ }
+ }
+ if (offset < segment.length()) {
+ if (segment.charAt(offset) == u'+') {
+ maxFrac = -1;
+ offset++;
+ } else {
+ maxFrac = minFrac;
+ for (; offset < segment.length(); offset++) {
+ if (segment.charAt(offset) == u'#') {
+ maxFrac++;
+ } else {
+ break;
+ }
+ }
+ }
+ } else {
+ maxFrac = minFrac;
+ }
+ if (offset < segment.length()) {
+ // throw new SkeletonSyntaxException("Invalid fraction stem", segment);
+ status = U_NUMBER_SKELETON_SYNTAX_ERROR;
+ return;
+ }
+ // Use the public APIs to enforce bounds checking
+ if (maxFrac == -1) {
+ macros.precision = Precision::minFraction(minFrac);
+ } else {
+ macros.precision = Precision::minMaxFraction(minFrac, maxFrac);
+ }
+}
+
+void
+blueprint_helpers::generateFractionStem(int32_t minFrac, int32_t maxFrac, UnicodeString& sb, UErrorCode&) {
+ if (minFrac == 0 && maxFrac == 0) {
+ sb.append(u"precision-integer", -1);
+ return;
+ }
+ sb.append(u'.');
+ appendMultiple(sb, u'0', minFrac);
+ if (maxFrac == -1) {
+ sb.append(u'+');
+ } else {
+ appendMultiple(sb, u'#', maxFrac - minFrac);
+ }
+}
+
+void
+blueprint_helpers::parseDigitsStem(const StringSegment& segment, MacroProps& macros, UErrorCode& status) {
+ U_ASSERT(segment.charAt(0) == u'@');
+ int offset = 0;
+ int minSig = 0;
+ int maxSig;
+ for (; offset < segment.length(); offset++) {
+ if (segment.charAt(offset) == u'@') {
+ minSig++;
+ } else {
+ break;
+ }
+ }
+ if (offset < segment.length()) {
+ if (segment.charAt(offset) == u'+') {
+ maxSig = -1;
+ offset++;
+ } else {
+ maxSig = minSig;
+ for (; offset < segment.length(); offset++) {
+ if (segment.charAt(offset) == u'#') {
+ maxSig++;
+ } else {
+ break;
+ }
+ }
+ }
+ } else {
+ maxSig = minSig;
+ }
+ if (offset < segment.length()) {
+ // throw new SkeletonSyntaxException("Invalid significant digits stem", segment);
+ status = U_NUMBER_SKELETON_SYNTAX_ERROR;
+ return;
+ }
+ // Use the public APIs to enforce bounds checking
+ if (maxSig == -1) {
+ macros.precision = Precision::minSignificantDigits(minSig);
+ } else {
+ macros.precision = Precision::minMaxSignificantDigits(minSig, maxSig);
+ }
+}
+
+void
+blueprint_helpers::generateDigitsStem(int32_t minSig, int32_t maxSig, UnicodeString& sb, UErrorCode&) {
+ appendMultiple(sb, u'@', minSig);
+ if (maxSig == -1) {
+ sb.append(u'+');
+ } else {
+ appendMultiple(sb, u'#', maxSig - minSig);
+ }
+}
+
+bool blueprint_helpers::parseFracSigOption(const StringSegment& segment, MacroProps& macros,
+ UErrorCode& status) {
+ if (segment.charAt(0) != u'@') {
+ return false;
+ }
+ int offset = 0;
+ int minSig = 0;
+ int maxSig;
+ for (; offset < segment.length(); offset++) {
+ if (segment.charAt(offset) == u'@') {
+ minSig++;
+ } else {
+ break;
+ }
+ }
+ // For the frac-sig option, there must be minSig or maxSig but not both.
+ // Valid: @+, @@+, @@@+
+ // Valid: @#, @##, @###
+ // Invalid: @, @@, @@@
+ // Invalid: @@#, @@##, @@@#
+ if (offset < segment.length()) {
+ if (segment.charAt(offset) == u'+') {
+ maxSig = -1;
+ offset++;
+ } else if (minSig > 1) {
+ // @@#, @@##, @@@#
+ // throw new SkeletonSyntaxException("Invalid digits option for fraction rounder", segment);
+ status = U_NUMBER_SKELETON_SYNTAX_ERROR;
+ return false;
+ } else {
+ maxSig = minSig;
+ for (; offset < segment.length(); offset++) {
+ if (segment.charAt(offset) == u'#') {
+ maxSig++;
+ } else {
+ break;
+ }
+ }
+ }
+ } else {
+ // @, @@, @@@
+ // throw new SkeletonSyntaxException("Invalid digits option for fraction rounder", segment);
+ status = U_NUMBER_SKELETON_SYNTAX_ERROR;
+ return false;
+ }
+ if (offset < segment.length()) {
+ // throw new SkeletonSyntaxException("Invalid digits option for fraction rounder", segment);
+ status = U_NUMBER_SKELETON_SYNTAX_ERROR;
+ return false;
+ }
+
+ auto& oldPrecision = static_cast<const FractionPrecision&>(macros.precision);
+ if (maxSig == -1) {
+ macros.precision = oldPrecision.withMinDigits(minSig);
+ } else {
+ macros.precision = oldPrecision.withMaxDigits(maxSig);
+ }
+ return true;
+}
+
+void blueprint_helpers::parseIncrementOption(const StringSegment& segment, MacroProps& macros,
+ UErrorCode& status) {
+ // Need to do char <-> UChar conversion...
+ U_ASSERT(U_SUCCESS(status));
+ CharString buffer;
+ SKELETON_UCHAR_TO_CHAR(buffer, segment.toTempUnicodeString(), 0, segment.length(), status);
+
+ // Utilize DecimalQuantity/decNumber to parse this for us.
+ DecimalQuantity dq;
+ UErrorCode localStatus = U_ZERO_ERROR;
+ dq.setToDecNumber({buffer.data(), buffer.length()}, localStatus);
+ if (U_FAILURE(localStatus)) {
+ // throw new SkeletonSyntaxException("Invalid rounding increment", segment, e);
+ status = U_NUMBER_SKELETON_SYNTAX_ERROR;
+ return;
+ }
+ double increment = dq.toDouble();
+
+ // We also need to figure out how many digits. Do a brute force string operation.
+ int decimalOffset = 0;
+ while (decimalOffset < segment.length() && segment.charAt(decimalOffset) != '.') {
+ decimalOffset++;
+ }
+ if (decimalOffset == segment.length()) {
+ macros.precision = Precision::increment(increment);
+ } else {
+ int32_t fractionLength = segment.length() - decimalOffset - 1;
+ macros.precision = Precision::increment(increment).withMinFraction(fractionLength);
+ }
+}
+
+void blueprint_helpers::generateIncrementOption(double increment, int32_t trailingZeros, UnicodeString& sb,
+ UErrorCode&) {
+ // Utilize DecimalQuantity/double_conversion to format this for us.
+ DecimalQuantity dq;
+ dq.setToDouble(increment);
+ dq.roundToInfinity();
+ sb.append(dq.toPlainString());
+
+ // We might need to append extra trailing zeros for min fraction...
+ if (trailingZeros > 0) {
+ appendMultiple(sb, u'0', trailingZeros);
+ }
+}
+
+void blueprint_helpers::parseIntegerWidthOption(const StringSegment& segment, MacroProps& macros,
+ UErrorCode& status) {
+ int32_t offset = 0;
+ int32_t minInt = 0;
+ int32_t maxInt;
+ if (segment.charAt(0) == u'+') {
+ maxInt = -1;
+ offset++;
+ } else {
+ maxInt = 0;
+ }
+ for (; offset < segment.length(); offset++) {
+ if (segment.charAt(offset) == u'#') {
+ maxInt++;
+ } else {
+ break;
+ }
+ }
+ if (offset < segment.length()) {
+ for (; offset < segment.length(); offset++) {
+ if (segment.charAt(offset) == u'0') {
+ minInt++;
+ } else {
+ break;
+ }
+ }
+ }
+ if (maxInt != -1) {
+ maxInt += minInt;
+ }
+ if (offset < segment.length()) {
+ // throw new SkeletonSyntaxException("Invalid integer width stem", segment);
+ status = U_NUMBER_SKELETON_SYNTAX_ERROR;
+ return;
+ }
+ // Use the public APIs to enforce bounds checking
+ if (maxInt == -1) {
+ macros.integerWidth = IntegerWidth::zeroFillTo(minInt);
+ } else {
+ macros.integerWidth = IntegerWidth::zeroFillTo(minInt).truncateAt(maxInt);
+ }
+}
+
+void blueprint_helpers::generateIntegerWidthOption(int32_t minInt, int32_t maxInt, UnicodeString& sb,
+ UErrorCode&) {
+ if (maxInt == -1) {
+ sb.append(u'+');
+ } else {
+ appendMultiple(sb, u'#', maxInt - minInt);
+ }
+ appendMultiple(sb, u'0', minInt);
+}
+
+void blueprint_helpers::parseNumberingSystemOption(const StringSegment& segment, MacroProps& macros,
+ UErrorCode& status) {
+ // Need to do char <-> UChar conversion...
+ U_ASSERT(U_SUCCESS(status));
+ CharString buffer;
+ SKELETON_UCHAR_TO_CHAR(buffer, segment.toTempUnicodeString(), 0, segment.length(), status);
+
+ NumberingSystem* ns = NumberingSystem::createInstanceByName(buffer.data(), status);
+ if (ns == nullptr || U_FAILURE(status)) {
+ // This is a skeleton syntax error; don't bubble up the low-level NumberingSystem error
+ // throw new SkeletonSyntaxException("Unknown numbering system", segment);
+ status = U_NUMBER_SKELETON_SYNTAX_ERROR;
+ return;
+ }
+ macros.symbols.setTo(ns);
+}
+
+void blueprint_helpers::generateNumberingSystemOption(const NumberingSystem& ns, UnicodeString& sb,
+ UErrorCode&) {
+ // Need to do char <-> UChar conversion...
+ sb.append(UnicodeString(ns.getName(), -1, US_INV));
+}
+
+void blueprint_helpers::parseScaleOption(const StringSegment& segment, MacroProps& macros,
+ UErrorCode& status) {
+ // Need to do char <-> UChar conversion...
+ U_ASSERT(U_SUCCESS(status));
+ CharString buffer;
+ SKELETON_UCHAR_TO_CHAR(buffer, segment.toTempUnicodeString(), 0, segment.length(), status);
+
+ LocalPointer<DecNum> decnum(new DecNum(), status);
+ if (U_FAILURE(status)) { return; }
+ decnum->setTo({buffer.data(), buffer.length()}, status);
+ if (U_FAILURE(status)) {
+ // This is a skeleton syntax error; don't let the low-level decnum error bubble up
+ status = U_NUMBER_SKELETON_SYNTAX_ERROR;
+ return;
+ }
+
+ // NOTE: The constructor will optimize the decnum for us if possible.
+ macros.scale = {0, decnum.orphan()};
+}
+
+void blueprint_helpers::generateScaleOption(int32_t magnitude, const DecNum* arbitrary, UnicodeString& sb,
+ UErrorCode& status) {
+ // Utilize DecimalQuantity/double_conversion to format this for us.
+ DecimalQuantity dq;
+ if (arbitrary != nullptr) {
+ dq.setToDecNum(*arbitrary, status);
+ if (U_FAILURE(status)) { return; }
+ } else {
+ dq.setToInt(1);
+ }
+ dq.adjustMagnitude(magnitude);
+ dq.roundToInfinity();
+ sb.append(dq.toPlainString());
+}
+
+
+bool GeneratorHelpers::notation(const MacroProps& macros, UnicodeString& sb, UErrorCode& status) {
+ if (macros.notation.fType == Notation::NTN_COMPACT) {
+ UNumberCompactStyle style = macros.notation.fUnion.compactStyle;
+ if (style == UNumberCompactStyle::UNUM_LONG) {
+ sb.append(u"compact-long", -1);
+ return true;
+ } else if (style == UNumberCompactStyle::UNUM_SHORT) {
+ sb.append(u"compact-short", -1);
+ return true;
+ } else {
+ // Compact notation generated from custom data (not supported in skeleton)
+ // The other compact notations are literals
+ status = U_UNSUPPORTED_ERROR;
+ return false;
+ }
+ } else if (macros.notation.fType == Notation::NTN_SCIENTIFIC) {
+ const Notation::ScientificSettings& impl = macros.notation.fUnion.scientific;
+ if (impl.fEngineeringInterval == 3) {
+ sb.append(u"engineering", -1);
+ } else {
+ sb.append(u"scientific", -1);
+ }
+ if (impl.fMinExponentDigits > 1) {
+ sb.append(u'/');
+ blueprint_helpers::generateExponentWidthOption(impl.fMinExponentDigits, sb, status);
+ if (U_FAILURE(status)) {
+ return false;
+ }
+ }
+ if (impl.fExponentSignDisplay != UNUM_SIGN_AUTO) {
+ sb.append(u'/');
+ enum_to_stem_string::signDisplay(impl.fExponentSignDisplay, sb);
+ }
+ return true;
+ } else {
+ // Default value is not shown in normalized form
+ return false;
+ }
+}
+
+bool GeneratorHelpers::unit(const MacroProps& macros, UnicodeString& sb, UErrorCode& status) {
+ if (utils::unitIsCurrency(macros.unit)) {
+ sb.append(u"currency/", -1);
+ CurrencyUnit currency(macros.unit, status);
+ if (U_FAILURE(status)) {
+ return false;
+ }
+ blueprint_helpers::generateCurrencyOption(currency, sb, status);
+ return true;
+ } else if (utils::unitIsNoUnit(macros.unit)) {
+ if (utils::unitIsPercent(macros.unit)) {
+ sb.append(u"percent", -1);
+ return true;
+ } else if (utils::unitIsPermille(macros.unit)) {
+ sb.append(u"permille", -1);
+ return true;
+ } else {
+ // Default value is not shown in normalized form
+ return false;
+ }
+ } else {
+ sb.append(u"measure-unit/", -1);
+ blueprint_helpers::generateMeasureUnitOption(macros.unit, sb, status);
+ return true;
+ }
+}
+
+bool GeneratorHelpers::perUnit(const MacroProps& macros, UnicodeString& sb, UErrorCode& status) {
+ // Per-units are currently expected to be only MeasureUnits.
+ if (utils::unitIsNoUnit(macros.perUnit)) {
+ if (utils::unitIsPercent(macros.perUnit) || utils::unitIsPermille(macros.perUnit)) {
+ status = U_UNSUPPORTED_ERROR;
+ return false;
+ } else {
+ // Default value: ok to ignore
+ return false;
+ }
+ } else if (utils::unitIsCurrency(macros.perUnit)) {
+ status = U_UNSUPPORTED_ERROR;
+ return false;
+ } else {
+ sb.append(u"per-measure-unit/", -1);
+ blueprint_helpers::generateMeasureUnitOption(macros.perUnit, sb, status);
+ return true;
+ }
+}
+
+bool GeneratorHelpers::precision(const MacroProps& macros, UnicodeString& sb, UErrorCode& status) {
+ if (macros.precision.fType == Precision::RND_NONE) {
+ sb.append(u"precision-unlimited", -1);
+ } else if (macros.precision.fType == Precision::RND_FRACTION) {
+ const Precision::FractionSignificantSettings& impl = macros.precision.fUnion.fracSig;
+ blueprint_helpers::generateFractionStem(impl.fMinFrac, impl.fMaxFrac, sb, status);
+ } else if (macros.precision.fType == Precision::RND_SIGNIFICANT) {
+ const Precision::FractionSignificantSettings& impl = macros.precision.fUnion.fracSig;
+ blueprint_helpers::generateDigitsStem(impl.fMinSig, impl.fMaxSig, sb, status);
+ } else if (macros.precision.fType == Precision::RND_FRACTION_SIGNIFICANT) {
+ const Precision::FractionSignificantSettings& impl = macros.precision.fUnion.fracSig;
+ blueprint_helpers::generateFractionStem(impl.fMinFrac, impl.fMaxFrac, sb, status);
+ sb.append(u'/');
+ if (impl.fMinSig == -1) {
+ blueprint_helpers::generateDigitsStem(1, impl.fMaxSig, sb, status);
+ } else {
+ blueprint_helpers::generateDigitsStem(impl.fMinSig, -1, sb, status);
+ }
+ } else if (macros.precision.fType == Precision::RND_INCREMENT) {
+ const Precision::IncrementSettings& impl = macros.precision.fUnion.increment;
+ sb.append(u"precision-increment/", -1);
+ blueprint_helpers::generateIncrementOption(
+ impl.fIncrement,
+ impl.fMinFrac - impl.fMaxFrac,
+ sb,
+ status);
+ } else if (macros.precision.fType == Precision::RND_CURRENCY) {
+ UCurrencyUsage usage = macros.precision.fUnion.currencyUsage;
+ if (usage == UCURR_USAGE_STANDARD) {
+ sb.append(u"precision-currency-standard", -1);
+ } else {
+ sb.append(u"precision-currency-cash", -1);
+ }
+ } else {
+ // Bogus or Error
+ return false;
+ }
+
+ // NOTE: Always return true for rounding because the default value depends on other options.
+ return true;
+}
+
+bool GeneratorHelpers::roundingMode(const MacroProps& macros, UnicodeString& sb, UErrorCode&) {
+ if (macros.roundingMode == kDefaultMode) {
+ return false; // Default
+ }
+ enum_to_stem_string::roundingMode(macros.roundingMode, sb);
+ return true;
+}
+
+bool GeneratorHelpers::grouping(const MacroProps& macros, UnicodeString& sb, UErrorCode& status) {
+ if (macros.grouper.isBogus()) {
+ return false; // No value
+ } else if (macros.grouper.fStrategy == UNUM_GROUPING_COUNT) {
+ status = U_UNSUPPORTED_ERROR;
+ return false;
+ } else if (macros.grouper.fStrategy == UNUM_GROUPING_AUTO) {
+ return false; // Default value
+ } else {
+ enum_to_stem_string::groupingStrategy(macros.grouper.fStrategy, sb);
+ return true;
+ }
+}
+
+bool GeneratorHelpers::integerWidth(const MacroProps& macros, UnicodeString& sb, UErrorCode& status) {
+ if (macros.integerWidth.fHasError || macros.integerWidth.isBogus() ||
+ macros.integerWidth == IntegerWidth::standard()) {
+ // Error or Default
+ return false;
+ }
+ sb.append(u"integer-width/", -1);
+ blueprint_helpers::generateIntegerWidthOption(
+ macros.integerWidth.fUnion.minMaxInt.fMinInt,
+ macros.integerWidth.fUnion.minMaxInt.fMaxInt,
+ sb,
+ status);
+ return true;
+}
+
+bool GeneratorHelpers::symbols(const MacroProps& macros, UnicodeString& sb, UErrorCode& status) {
+ if (macros.symbols.isNumberingSystem()) {
+ const NumberingSystem& ns = *macros.symbols.getNumberingSystem();
+ if (uprv_strcmp(ns.getName(), "latn") == 0) {
+ sb.append(u"latin", -1);
+ } else {
+ sb.append(u"numbering-system/", -1);
+ blueprint_helpers::generateNumberingSystemOption(ns, sb, status);
+ }
+ return true;
+ } else if (macros.symbols.isDecimalFormatSymbols()) {
+ status = U_UNSUPPORTED_ERROR;
+ return false;
+ } else {
+ // No custom symbols
+ return false;
+ }
+}
+
+bool GeneratorHelpers::unitWidth(const MacroProps& macros, UnicodeString& sb, UErrorCode&) {
+ if (macros.unitWidth == UNUM_UNIT_WIDTH_SHORT || macros.unitWidth == UNUM_UNIT_WIDTH_COUNT) {
+ return false; // Default or Bogus
+ }
+ enum_to_stem_string::unitWidth(macros.unitWidth, sb);
+ return true;
+}
+
+bool GeneratorHelpers::sign(const MacroProps& macros, UnicodeString& sb, UErrorCode&) {
+ if (macros.sign == UNUM_SIGN_AUTO || macros.sign == UNUM_SIGN_COUNT) {
+ return false; // Default or Bogus
+ }
+ enum_to_stem_string::signDisplay(macros.sign, sb);
+ return true;
+}
+
+bool GeneratorHelpers::decimal(const MacroProps& macros, UnicodeString& sb, UErrorCode&) {
+ if (macros.decimal == UNUM_DECIMAL_SEPARATOR_AUTO || macros.decimal == UNUM_DECIMAL_SEPARATOR_COUNT) {
+ return false; // Default or Bogus
+ }
+ enum_to_stem_string::decimalSeparatorDisplay(macros.decimal, sb);
+ return true;
+}
+
+bool GeneratorHelpers::scale(const MacroProps& macros, UnicodeString& sb, UErrorCode& status) {
+ if (!macros.scale.isValid()) {
+ return false; // Default or Bogus
+ }
+ sb.append(u"scale/", -1);
+ blueprint_helpers::generateScaleOption(
+ macros.scale.fMagnitude,
+ macros.scale.fArbitrary,
+ sb,
+ status);
+ return true;
+}
+
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_skeletons.h b/Build/source/libs/icu/icu-src/source/i18n/number_skeletons.h
new file mode 100644
index 00000000000..0161f5f0ba8
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_skeletons.h
@@ -0,0 +1,327 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+#ifndef __SOURCE_NUMBER_SKELETONS_H__
+#define __SOURCE_NUMBER_SKELETONS_H__
+
+#include "number_types.h"
+#include "numparse_types.h"
+#include "unicode/ucharstrie.h"
+
+using icu::numparse::impl::StringSegment;
+
+U_NAMESPACE_BEGIN namespace number {
+namespace impl {
+
+// Forward-declaration
+struct SeenMacroProps;
+
+// namespace for enums and entrypoint functions
+namespace skeleton {
+
+///////////////////////////////////////////////////////////////////////////////////////
+// NOTE: For an example of how to add a new stem to the number skeleton parser, see: //
+// http://bugs.icu-project.org/trac/changeset/41193 //
+///////////////////////////////////////////////////////////////////////////////////////
+
+/**
+ * While parsing a skeleton, this enum records what type of option we expect to find next.
+ */
+enum ParseState {
+
+ // Section 0: We expect whitespace or a stem, but not an option:
+
+ STATE_NULL,
+
+ // Section 1: We might accept an option, but it is not required:
+
+ STATE_SCIENTIFIC,
+ STATE_FRACTION_PRECISION,
+
+ // Section 2: An option is required:
+
+ STATE_INCREMENT_PRECISION,
+ STATE_MEASURE_UNIT,
+ STATE_PER_MEASURE_UNIT,
+ STATE_CURRENCY_UNIT,
+ STATE_INTEGER_WIDTH,
+ STATE_NUMBERING_SYSTEM,
+ STATE_SCALE,
+};
+
+/**
+ * All possible stem literals have an entry in the StemEnum. The enum name is the kebab case stem
+ * string literal written in upper snake case.
+ *
+ * @see StemToObject
+ * @see #SERIALIZED_STEM_TRIE
+ */
+enum StemEnum {
+
+ // Section 1: Stems that do not require an option:
+
+ STEM_COMPACT_SHORT,
+ STEM_COMPACT_LONG,
+ STEM_SCIENTIFIC,
+ STEM_ENGINEERING,
+ STEM_NOTATION_SIMPLE,
+ STEM_BASE_UNIT,
+ STEM_PERCENT,
+ STEM_PERMILLE,
+ STEM_PRECISION_INTEGER,
+ STEM_PRECISION_UNLIMITED,
+ STEM_PRECISION_CURRENCY_STANDARD,
+ STEM_PRECISION_CURRENCY_CASH,
+ STEM_ROUNDING_MODE_CEILING,
+ STEM_ROUNDING_MODE_FLOOR,
+ STEM_ROUNDING_MODE_DOWN,
+ STEM_ROUNDING_MODE_UP,
+ STEM_ROUNDING_MODE_HALF_EVEN,
+ STEM_ROUNDING_MODE_HALF_DOWN,
+ STEM_ROUNDING_MODE_HALF_UP,
+ STEM_ROUNDING_MODE_UNNECESSARY,
+ STEM_GROUP_OFF,
+ STEM_GROUP_MIN2,
+ STEM_GROUP_AUTO,
+ STEM_GROUP_ON_ALIGNED,
+ STEM_GROUP_THOUSANDS,
+ STEM_LATIN,
+ STEM_UNIT_WIDTH_NARROW,
+ STEM_UNIT_WIDTH_SHORT,
+ STEM_UNIT_WIDTH_FULL_NAME,
+ STEM_UNIT_WIDTH_ISO_CODE,
+ STEM_UNIT_WIDTH_HIDDEN,
+ STEM_SIGN_AUTO,
+ STEM_SIGN_ALWAYS,
+ STEM_SIGN_NEVER,
+ STEM_SIGN_ACCOUNTING,
+ STEM_SIGN_ACCOUNTING_ALWAYS,
+ STEM_SIGN_EXCEPT_ZERO,
+ STEM_SIGN_ACCOUNTING_EXCEPT_ZERO,
+ STEM_DECIMAL_AUTO,
+ STEM_DECIMAL_ALWAYS,
+
+ // Section 2: Stems that DO require an option:
+
+ STEM_PRECISION_INCREMENT,
+ STEM_MEASURE_UNIT,
+ STEM_PER_MEASURE_UNIT,
+ STEM_CURRENCY,
+ STEM_INTEGER_WIDTH,
+ STEM_NUMBERING_SYSTEM,
+ STEM_SCALE,
+};
+
+/**
+ * Creates a NumberFormatter corresponding to the given skeleton string.
+ *
+ * @param skeletonString
+ * A number skeleton string, possibly not in its shortest form.
+ * @return An UnlocalizedNumberFormatter with behavior defined by the given skeleton string.
+ */
+UnlocalizedNumberFormatter create(const UnicodeString& skeletonString, UErrorCode& status);
+
+/**
+ * Create a skeleton string corresponding to the given NumberFormatter.
+ *
+ * @param macros
+ * The NumberFormatter options object.
+ * @return A skeleton string in normalized form.
+ */
+UnicodeString generate(const MacroProps& macros, UErrorCode& status);
+
+/**
+ * Converts from a skeleton string to a MacroProps. This method contains the primary parse loop.
+ *
+ * Internal: use the create() endpoint instead of this function.
+ */
+MacroProps parseSkeleton(const UnicodeString& skeletonString, UErrorCode& status);
+
+/**
+ * Given that the current segment represents a stem, parse it and save the result.
+ *
+ * @return The next state after parsing this stem, corresponding to what subset of options to expect.
+ */
+ParseState parseStem(const StringSegment& segment, const UCharsTrie& stemTrie, SeenMacroProps& seen,
+ MacroProps& macros, UErrorCode& status);
+
+/**
+ * Given that the current segment represents an option, parse it and save the result.
+ *
+ * @return The next state after parsing this option, corresponding to what subset of options to
+ * expect next.
+ */
+ParseState
+parseOption(ParseState stem, const StringSegment& segment, MacroProps& macros, UErrorCode& status);
+
+} // namespace skeleton
+
+
+/**
+ * Namespace for utility methods that convert from StemEnum to corresponding objects or enums. This
+ * applies to only the "Section 1" stems, those that are well-defined without an option.
+ */
+namespace stem_to_object {
+
+Notation notation(skeleton::StemEnum stem);
+
+MeasureUnit unit(skeleton::StemEnum stem);
+
+Precision precision(skeleton::StemEnum stem);
+
+UNumberFormatRoundingMode roundingMode(skeleton::StemEnum stem);
+
+UGroupingStrategy groupingStrategy(skeleton::StemEnum stem);
+
+UNumberUnitWidth unitWidth(skeleton::StemEnum stem);
+
+UNumberSignDisplay signDisplay(skeleton::StemEnum stem);
+
+UNumberDecimalSeparatorDisplay decimalSeparatorDisplay(skeleton::StemEnum stem);
+
+} // namespace stem_to_object
+
+/**
+ * Namespace for utility methods that convert from enums to stem strings. More complex object conversions
+ * take place in the object_to_stem_string namespace.
+ */
+namespace enum_to_stem_string {
+
+void roundingMode(UNumberFormatRoundingMode value, UnicodeString& sb);
+
+void groupingStrategy(UGroupingStrategy value, UnicodeString& sb);
+
+void unitWidth(UNumberUnitWidth value, UnicodeString& sb);
+
+void signDisplay(UNumberSignDisplay value, UnicodeString& sb);
+
+void decimalSeparatorDisplay(UNumberDecimalSeparatorDisplay value, UnicodeString& sb);
+
+} // namespace enum_to_stem_string
+
+/**
+ * Namespace for utility methods for processing stems and options that cannot be interpreted literally.
+ */
+namespace blueprint_helpers {
+
+/** @return Whether we successfully found and parsed an exponent width option. */
+bool parseExponentWidthOption(const StringSegment& segment, MacroProps& macros, UErrorCode& status);
+
+void generateExponentWidthOption(int32_t minExponentDigits, UnicodeString& sb, UErrorCode& status);
+
+/** @return Whether we successfully found and parsed an exponent sign option. */
+bool parseExponentSignOption(const StringSegment& segment, MacroProps& macros, UErrorCode& status);
+
+void parseCurrencyOption(const StringSegment& segment, MacroProps& macros, UErrorCode& status);
+
+void generateCurrencyOption(const CurrencyUnit& currency, UnicodeString& sb, UErrorCode& status);
+
+void parseMeasureUnitOption(const StringSegment& segment, MacroProps& macros, UErrorCode& status);
+
+void generateMeasureUnitOption(const MeasureUnit& measureUnit, UnicodeString& sb, UErrorCode& status);
+
+void parseMeasurePerUnitOption(const StringSegment& segment, MacroProps& macros, UErrorCode& status);
+
+void parseFractionStem(const StringSegment& segment, MacroProps& macros, UErrorCode& status);
+
+void generateFractionStem(int32_t minFrac, int32_t maxFrac, UnicodeString& sb, UErrorCode& status);
+
+void parseDigitsStem(const StringSegment& segment, MacroProps& macros, UErrorCode& status);
+
+void generateDigitsStem(int32_t minSig, int32_t maxSig, UnicodeString& sb, UErrorCode& status);
+
+/** @return Whether we successfully found and parsed a frac-sig option. */
+bool parseFracSigOption(const StringSegment& segment, MacroProps& macros, UErrorCode& status);
+
+void parseIncrementOption(const StringSegment& segment, MacroProps& macros, UErrorCode& status);
+
+void
+generateIncrementOption(double increment, int32_t trailingZeros, UnicodeString& sb, UErrorCode& status);
+
+void parseIntegerWidthOption(const StringSegment& segment, MacroProps& macros, UErrorCode& status);
+
+void generateIntegerWidthOption(int32_t minInt, int32_t maxInt, UnicodeString& sb, UErrorCode& status);
+
+void parseNumberingSystemOption(const StringSegment& segment, MacroProps& macros, UErrorCode& status);
+
+void generateNumberingSystemOption(const NumberingSystem& ns, UnicodeString& sb, UErrorCode& status);
+
+void parseScaleOption(const StringSegment& segment, MacroProps& macros, UErrorCode& status);
+
+void generateScaleOption(int32_t magnitude, const DecNum* arbitrary, UnicodeString& sb,
+ UErrorCode& status);
+
+} // namespace blueprint_helpers
+
+/**
+ * Class for utility methods for generating a token corresponding to each macro-prop. Each method
+ * returns whether or not a token was written to the string builder.
+ *
+ * This needs to be a class, not a namespace, so it can be friended.
+ */
+class GeneratorHelpers {
+ public:
+ /**
+ * Main skeleton generator function. Appends the normalized skeleton for the MacroProps to the given
+ * StringBuilder.
+ *
+ * Internal: use the create() endpoint instead of this function.
+ */
+ static void generateSkeleton(const MacroProps& macros, UnicodeString& sb, UErrorCode& status);
+
+ private:
+ static bool notation(const MacroProps& macros, UnicodeString& sb, UErrorCode& status);
+
+ static bool unit(const MacroProps& macros, UnicodeString& sb, UErrorCode& status);
+
+ static bool perUnit(const MacroProps& macros, UnicodeString& sb, UErrorCode& status);
+
+ static bool precision(const MacroProps& macros, UnicodeString& sb, UErrorCode& status);
+
+ static bool roundingMode(const MacroProps& macros, UnicodeString& sb, UErrorCode& status);
+
+ static bool grouping(const MacroProps& macros, UnicodeString& sb, UErrorCode& status);
+
+ static bool integerWidth(const MacroProps& macros, UnicodeString& sb, UErrorCode& status);
+
+ static bool symbols(const MacroProps& macros, UnicodeString& sb, UErrorCode& status);
+
+ static bool unitWidth(const MacroProps& macros, UnicodeString& sb, UErrorCode& status);
+
+ static bool sign(const MacroProps& macros, UnicodeString& sb, UErrorCode& status);
+
+ static bool decimal(const MacroProps& macros, UnicodeString& sb, UErrorCode& status);
+
+ static bool scale(const MacroProps& macros, UnicodeString& sb, UErrorCode& status);
+
+};
+
+/**
+ * Struct for null-checking.
+ * In Java, we can just check the object reference. In C++, we need a different method.
+ */
+struct SeenMacroProps {
+ bool notation = false;
+ bool unit = false;
+ bool perUnit = false;
+ bool precision = false;
+ bool roundingMode = false;
+ bool grouper = false;
+ bool padder = false;
+ bool integerWidth = false;
+ bool symbols = false;
+ bool unitWidth = false;
+ bool sign = false;
+ bool decimal = false;
+ bool scale = false;
+};
+
+} // namespace impl
+} // namespace number
+U_NAMESPACE_END
+
+#endif //__SOURCE_NUMBER_SKELETONS_H__
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_stringbuilder.cpp b/Build/source/libs/icu/icu-src/source/i18n/number_stringbuilder.cpp
index 37159d7e53a..74ba33fbbc1 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/number_stringbuilder.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_stringbuilder.cpp
@@ -3,11 +3,10 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
#include "number_stringbuilder.h"
#include "unicode/utf16.h"
-#include "uvectr32.h"
using namespace icu;
using namespace icu::number;
@@ -242,6 +241,9 @@ NumberStringBuilder::insert(int32_t index, const NumberStringBuilder &other, UEr
}
int32_t NumberStringBuilder::prepareForInsert(int32_t index, int32_t count, UErrorCode &status) {
+ U_ASSERT(index >= 0);
+ U_ASSERT(index <= fLength);
+ U_ASSERT(count >= 0);
if (index == 0 && fZero - count >= 0) {
// Append to start
fZero -= count;
@@ -337,6 +339,11 @@ UnicodeString NumberStringBuilder::toUnicodeString() const {
return UnicodeString(getCharPtr() + fZero, fLength);
}
+const UnicodeString NumberStringBuilder::toTempUnicodeString() const {
+ // Readonly-alias constructor:
+ return UnicodeString(FALSE, getCharPtr() + fZero, fLength);
+}
+
UnicodeString NumberStringBuilder::toDebugString() const {
UnicodeString sb;
sb.append(u"<NumberStringBuilder [", -1);
@@ -408,23 +415,24 @@ bool NumberStringBuilder::contentEquals(const NumberStringBuilder &other) const
return true;
}
-void NumberStringBuilder::populateFieldPosition(FieldPosition &fp, int32_t offset, UErrorCode &status) const {
+bool NumberStringBuilder::nextFieldPosition(FieldPosition& fp, UErrorCode& status) const {
int32_t rawField = fp.getField();
if (rawField == FieldPosition::DONT_CARE) {
- return;
+ return FALSE;
}
if (rawField < 0 || rawField >= UNUM_FIELD_COUNT) {
status = U_ILLEGAL_ARGUMENT_ERROR;
- return;
+ return FALSE;
}
auto field = static_cast<Field>(rawField);
bool seenStart = false;
int32_t fractionStart = -1;
- for (int i = fZero; i <= fZero + fLength; i++) {
+ int32_t startIndex = fp.getEndIndex();
+ for (int i = fZero + startIndex; i <= fZero + fLength; i++) {
Field _field = UNUM_FIELD_COUNT;
if (i < fZero + fLength) {
_field = getFieldPtr()[i];
@@ -434,10 +442,10 @@ void NumberStringBuilder::populateFieldPosition(FieldPosition &fp, int32_t offse
if (field == UNUM_INTEGER_FIELD && _field == UNUM_GROUPING_SEPARATOR_FIELD) {
continue;
}
- fp.setEndIndex(i - fZero + offset);
+ fp.setEndIndex(i - fZero);
break;
} else if (!seenStart && field == _field) {
- fp.setBeginIndex(i - fZero + offset);
+ fp.setBeginIndex(i - fZero);
seenStart = true;
}
if (_field == UNUM_INTEGER_FIELD || _field == UNUM_DECIMAL_SEPARATOR_FIELD) {
@@ -445,36 +453,28 @@ void NumberStringBuilder::populateFieldPosition(FieldPosition &fp, int32_t offse
}
}
- // Backwards compatibility: FRACTION needs to start after INTEGER if empty
- if (field == UNUM_FRACTION_FIELD && !seenStart) {
- fp.setBeginIndex(fractionStart + offset);
- fp.setEndIndex(fractionStart + offset);
+ // Backwards compatibility: FRACTION needs to start after INTEGER if empty.
+ // Do not return that a field was found, though, since there is not actually a fraction part.
+ if (field == UNUM_FRACTION_FIELD && !seenStart && fractionStart != -1) {
+ fp.setBeginIndex(fractionStart);
+ fp.setEndIndex(fractionStart);
}
-}
-void NumberStringBuilder::populateFieldPositionIterator(FieldPositionIterator &fpi, UErrorCode &status) const {
- // TODO: Set an initial capacity on uvec?
- LocalPointer <UVector32> uvec(new UVector32(status));
- if (U_FAILURE(status)) {
- return;
- }
+ return seenStart;
+}
+void NumberStringBuilder::getAllFieldPositions(FieldPositionIteratorHandler& fpih,
+ UErrorCode& status) const {
Field current = UNUM_FIELD_COUNT;
int32_t currentStart = -1;
for (int32_t i = 0; i < fLength; i++) {
Field field = fieldAt(i);
if (current == UNUM_INTEGER_FIELD && field == UNUM_GROUPING_SEPARATOR_FIELD) {
// Special case: GROUPING_SEPARATOR counts as an INTEGER.
- // Add the field, followed by the start index, followed by the end index to uvec.
- uvec->addElement(UNUM_GROUPING_SEPARATOR_FIELD, status);
- uvec->addElement(i, status);
- uvec->addElement(i + 1, status);
+ fpih.addAttribute(UNUM_GROUPING_SEPARATOR_FIELD, i, i + 1);
} else if (current != field) {
if (current != UNUM_FIELD_COUNT) {
- // Add the field, followed by the start index, followed by the end index to uvec.
- uvec->addElement(current, status);
- uvec->addElement(currentStart, status);
- uvec->addElement(i, status);
+ fpih.addAttribute(current, currentStart, i);
}
current = field;
currentStart = i;
@@ -484,14 +484,17 @@ void NumberStringBuilder::populateFieldPositionIterator(FieldPositionIterator &f
}
}
if (current != UNUM_FIELD_COUNT) {
- // Add the field, followed by the start index, followed by the end index to uvec.
- uvec->addElement(current, status);
- uvec->addElement(currentStart, status);
- uvec->addElement(fLength, status);
+ fpih.addAttribute(current, currentStart, fLength);
}
+}
- // Give uvec to the FieldPositionIterator, which adopts it.
- fpi.setData(uvec.orphan(), status);
+bool NumberStringBuilder::containsField(Field field) const {
+ for (int32_t i = 0; i < fLength; i++) {
+ if (field == fieldAt(i)) {
+ return true;
+ }
+ }
+ return false;
}
#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_stringbuilder.h b/Build/source/libs/icu/icu-src/source/i18n/number_stringbuilder.h
index a97cc9ca026..b14ad9ede2f 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/number_stringbuilder.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_stringbuilder.h
@@ -3,7 +3,7 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
#ifndef __NUMBER_STRINGBUILDER_H__
#define __NUMBER_STRINGBUILDER_H__
@@ -14,6 +14,7 @@
#include "cstring.h"
#include "uassert.h"
#include "number_types.h"
+#include "fphdlimp.h"
U_NAMESPACE_BEGIN namespace number {
namespace impl {
@@ -84,17 +85,28 @@ class U_I18N_API NumberStringBuilder : public UMemory {
int32_t insert(int32_t index, const NumberStringBuilder &other, UErrorCode &status);
+ /**
+ * Gets a "safe" UnicodeString that can be used even after the NumberStringBuilder is destructed.
+ * */
UnicodeString toUnicodeString() const;
+ /**
+ * Gets an "unsafe" UnicodeString that is valid only as long as the NumberStringBuilder is alive and
+ * unchanged. Slightly faster than toUnicodeString().
+ */
+ const UnicodeString toTempUnicodeString() const;
+
UnicodeString toDebugString() const;
const char16_t *chars() const;
bool contentEquals(const NumberStringBuilder &other) const;
- void populateFieldPosition(FieldPosition &fp, int32_t offset, UErrorCode &status) const;
+ bool nextFieldPosition(FieldPosition& fp, UErrorCode& status) const;
+
+ void getAllFieldPositions(FieldPositionIteratorHandler& fpih, UErrorCode& status) const;
- void populateFieldPositionIterator(FieldPositionIterator &fpi, UErrorCode &status) const;
+ bool containsField(Field field) const;
private:
bool fUsingHeap = false;
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_types.h b/Build/source/libs/icu/icu-src/source/i18n/number_types.h
index c01765e2cea..00a6818869f 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/number_types.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_types.h
@@ -3,7 +3,7 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
#ifndef __NUMBER_TYPES_H__
#define __NUMBER_TYPES_H__
@@ -15,9 +15,10 @@
#include "unicode/utf16.h"
#include "uassert.h"
#include "unicode/platform.h"
+#include "unicode/uniset.h"
+#include "standardplural.h"
-U_NAMESPACE_BEGIN
-namespace number {
+U_NAMESPACE_BEGIN namespace number {
namespace impl {
// Typedef several enums for brevity and for easier comparison to Java.
@@ -39,15 +40,13 @@ static constexpr RoundingMode kDefaultMode = RoundingMode::UNUM_FOUND_HALFEVEN;
// ICU4J Equivalent: Padder.FALLBACK_PADDING_STRING
static constexpr char16_t kFallbackPaddingString[] = u" ";
-// ICU4J Equivalent: NumberFormatterImpl.DEFAULT_CURRENCY
-static constexpr char16_t kDefaultCurrency[] = u"XXX";
-
// Forward declarations:
class Modifier;
class MutablePatternModifier;
class DecimalQuantity;
class NumberStringBuilder;
+class ModifierStore;
struct MicroProps;
@@ -87,35 +86,10 @@ enum AffixPatternType {
};
enum CompactType {
- TYPE_DECIMAL,
- TYPE_CURRENCY
+ TYPE_DECIMAL, TYPE_CURRENCY
};
-// TODO: Should this be moved somewhere else, maybe where other ICU classes can use it?
-// Exported as U_I18N_API because it is a base class for other exported types
-class U_I18N_API CharSequence {
-public:
- virtual ~CharSequence() = default;
-
- virtual int32_t length() const = 0;
-
- virtual char16_t charAt(int32_t index) const = 0;
-
- virtual UChar32 codePointAt(int32_t index) const {
- // Default implementation; can be overridden with a more efficient version
- char16_t leading = charAt(index);
- if (U16_IS_LEAD(leading) && length() > index + 1) {
- char16_t trailing = charAt(index + 1);
- return U16_GET_SUPPLEMENTARY(leading, trailing);
- } else {
- return leading;
- }
- }
-
- virtual UnicodeString toUnicodeString() const = 0;
-};
-
class U_I18N_API AffixPatternProvider {
public:
static const int32_t AFFIX_PLURAL_MASK = 0xff;
@@ -123,12 +97,20 @@ class U_I18N_API AffixPatternProvider {
static const int32_t AFFIX_NEGATIVE_SUBPATTERN = 0x200;
static const int32_t AFFIX_PADDING = 0x400;
- virtual ~AffixPatternProvider() = default;
+ // Convenience compound flags
+ static const int32_t AFFIX_POS_PREFIX = AFFIX_PREFIX;
+ static const int32_t AFFIX_POS_SUFFIX = 0;
+ static const int32_t AFFIX_NEG_PREFIX = AFFIX_PREFIX | AFFIX_NEGATIVE_SUBPATTERN;
+ static const int32_t AFFIX_NEG_SUFFIX = AFFIX_NEGATIVE_SUBPATTERN;
+
+ virtual ~AffixPatternProvider();
virtual char16_t charAt(int flags, int i) const = 0;
virtual int length(int flags) const = 0;
+ virtual UnicodeString getString(int flags) const = 0;
+
virtual bool hasCurrencySign() const = 0;
virtual bool positiveHasPlusSign() const = 0;
@@ -137,7 +119,7 @@ class U_I18N_API AffixPatternProvider {
virtual bool negativeHasMinusSign() const = 0;
- virtual bool containsSymbolType(AffixPatternType, UErrorCode &) const = 0;
+ virtual bool containsSymbolType(AffixPatternType, UErrorCode&) const = 0;
/**
* True if the pattern has a number placeholder like "0" or "#,##0.00"; false if the pattern does not
@@ -147,19 +129,20 @@ class U_I18N_API AffixPatternProvider {
virtual bool hasBody() const = 0;
};
+
/**
* A Modifier is an object that can be passed through the formatting pipeline until it is finally applied to the string
* builder. A Modifier usually contains a prefix and a suffix that are applied, but it could contain something else,
* like a {@link com.ibm.icu.text.SimpleFormatter} pattern.
*
- * A Modifier is usually immutable, except in cases such as {@link MurkyModifier}, which are mutable for performance
+ * A Modifier is usually immutable, except in cases such as {@link MutablePatternModifier}, which are mutable for performance
* reasons.
*
* Exported as U_I18N_API because it is a base class for other exported types
*/
class U_I18N_API Modifier {
public:
- virtual ~Modifier() = default;
+ virtual ~Modifier();
/**
* Apply this Modifier to the string builder.
@@ -173,8 +156,8 @@ class U_I18N_API Modifier {
* formatted.
* @return The number of characters (UTF-16 code units) that were added to the string builder.
*/
- virtual int32_t
- apply(NumberStringBuilder &output, int leftIndex, int rightIndex, UErrorCode &status) const = 0;
+ virtual int32_t apply(NumberStringBuilder& output, int leftIndex, int rightIndex,
+ UErrorCode& status) const = 0;
/**
* Gets the length of the prefix. This information can be used in combination with {@link #apply} to extract the
@@ -182,12 +165,12 @@ class U_I18N_API Modifier {
*
* @return The number of characters (UTF-16 code units) in the prefix.
*/
- virtual int32_t getPrefixLength(UErrorCode& status) const = 0;
+ virtual int32_t getPrefixLength() const = 0;
/**
* Returns the number of code points in the modifier, prefix plus suffix.
*/
- virtual int32_t getCodePointCount(UErrorCode &status) const = 0;
+ virtual int32_t getCodePointCount() const = 0;
/**
* Whether this modifier is strong. If a modifier is strong, it should always be applied immediately and not allowed
@@ -197,8 +180,57 @@ class U_I18N_API Modifier {
* @return Whether the modifier is strong.
*/
virtual bool isStrong() const = 0;
+
+ /**
+ * Whether the modifier contains at least one occurrence of the given field.
+ */
+ virtual bool containsField(UNumberFormatFields field) const = 0;
+
+ /**
+ * A fill-in for getParameters(). obj will always be set; if non-null, the other
+ * two fields are also safe to read.
+ */
+ struct U_I18N_API Parameters {
+ const ModifierStore* obj = nullptr;
+ int8_t signum;
+ StandardPlural::Form plural;
+
+ Parameters();
+ Parameters(const ModifierStore* _obj, int8_t _signum, StandardPlural::Form _plural);
+ };
+
+ /**
+ * Gets a set of "parameters" for this Modifier.
+ *
+ * TODO: Make this return a `const Parameters*` more like Java?
+ */
+ virtual void getParameters(Parameters& output) const = 0;
+
+ /**
+ * Returns whether this Modifier is *semantically equivalent* to the other Modifier;
+ * in many cases, this is the same as equal, but parameters should be ignored.
+ */
+ virtual bool semanticallyEquivalent(const Modifier& other) const = 0;
+};
+
+
+/**
+ * This is *not* a modifier; rather, it is an object that can return modifiers
+ * based on given parameters.
+ *
+ * Exported as U_I18N_API because it is a base class for other exported types.
+ */
+class U_I18N_API ModifierStore {
+ public:
+ virtual ~ModifierStore();
+
+ /**
+ * Returns a Modifier with the given parameters (best-effort).
+ */
+ virtual const Modifier* getModifier(int8_t signum, StandardPlural::Form plural) const = 0;
};
+
/**
* This interface is used when all number formatting settings, including the locale, are known, except for the quantity
* itself. The {@link #processQuantity} method performs the final step in the number processing pipeline: it uses the
@@ -219,7 +251,7 @@ class U_I18N_API Modifier {
*/
class U_I18N_API MicroPropsGenerator {
public:
- virtual ~MicroPropsGenerator() = default;
+ virtual ~MicroPropsGenerator();
/**
* Considers the given {@link DecimalQuantity}, optionally mutates it, and returns a {@link MicroProps}.
@@ -230,7 +262,8 @@ class U_I18N_API MicroPropsGenerator {
* The MicroProps instance to populate.
* @return A MicroProps instance resolved for the quantity.
*/
- virtual void processQuantity(DecimalQuantity& quantity, MicroProps& micros, UErrorCode& status) const = 0;
+ virtual void processQuantity(DecimalQuantity& quantity, MicroProps& micros,
+ UErrorCode& status) const = 0;
};
/**
@@ -238,7 +271,7 @@ class U_I18N_API MicroPropsGenerator {
*/
class MultiplierProducer {
public:
- virtual ~MultiplierProducer() = default;
+ virtual ~MultiplierProducer();
/**
* Maps a magnitude to a multiplier in powers of ten. For example, in compact notation in English, a magnitude of 5
@@ -255,24 +288,31 @@ class MultiplierProducer {
template<typename T>
class U_I18N_API NullableValue {
public:
- NullableValue() : fNull(true) {}
+ NullableValue()
+ : fNull(true) {}
- NullableValue(const NullableValue<T> &other) = default;
+ NullableValue(const NullableValue<T>& other) = default;
- explicit NullableValue(const T &other) {
+ explicit NullableValue(const T& other) {
fValue = other;
fNull = false;
}
- NullableValue<T> &operator=(const NullableValue<T> &other) = default;
+ NullableValue<T>& operator=(const NullableValue<T>& other) {
+ fNull = other.fNull;
+ if (!fNull) {
+ fValue = other.fValue;
+ }
+ return *this;
+ }
- NullableValue<T> &operator=(const T &other) {
+ NullableValue<T>& operator=(const T& other) {
fValue = other;
fNull = false;
return *this;
}
- bool operator==(const NullableValue &other) const {
+ bool operator==(const NullableValue& other) const {
// "fValue == other.fValue" returns UBool, not bool (causes compiler warnings)
return fNull ? other.fNull : (other.fNull ? false : static_cast<bool>(fValue == other.fValue));
}
@@ -286,13 +326,21 @@ class U_I18N_API NullableValue {
return fNull;
}
- T get(UErrorCode &status) const {
+ T get(UErrorCode& status) const {
if (fNull) {
status = U_UNDEFINED_VARIABLE;
}
return fValue;
}
+ T getNoError() const {
+ return fValue;
+ }
+
+ T getOrDefault(T defaultValue) const {
+ return fNull ? defaultValue : fValue;
+ }
+
private:
bool fNull;
T fValue;
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_utils.cpp b/Build/source/libs/icu/icu-src/source/i18n/number_utils.cpp
new file mode 100644
index 00000000000..c79d2de9fa3
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_utils.cpp
@@ -0,0 +1,253 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+// Allow implicit conversion from char16_t* to UnicodeString for this file:
+// Helpful in toString methods and elsewhere.
+#define UNISTR_FROM_STRING_EXPLICIT
+
+#include <stdlib.h>
+#include <cmath>
+#include "number_decnum.h"
+#include "number_types.h"
+#include "number_utils.h"
+#include "charstr.h"
+#include "decContext.h"
+#include "decNumber.h"
+#include "double-conversion.h"
+#include "fphdlimp.h"
+#include "uresimp.h"
+#include "ureslocs.h"
+
+using namespace icu;
+using namespace icu::number;
+using namespace icu::number::impl;
+
+using icu::double_conversion::DoubleToStringConverter;
+
+
+namespace {
+
+const char16_t*
+doGetPattern(UResourceBundle* res, const char* nsName, const char* patternKey, UErrorCode& publicStatus,
+ UErrorCode& localStatus) {
+ // Construct the path into the resource bundle
+ CharString key;
+ key.append("NumberElements/", publicStatus);
+ key.append(nsName, publicStatus);
+ key.append("/patterns/", publicStatus);
+ key.append(patternKey, publicStatus);
+ if (U_FAILURE(publicStatus)) {
+ return u"";
+ }
+ return ures_getStringByKeyWithFallback(res, key.data(), nullptr, &localStatus);
+}
+
+}
+
+
+const char16_t* utils::getPatternForStyle(const Locale& locale, const char* nsName, CldrPatternStyle style,
+ UErrorCode& status) {
+ const char* patternKey;
+ switch (style) {
+ case CLDR_PATTERN_STYLE_DECIMAL:
+ patternKey = "decimalFormat";
+ break;
+ case CLDR_PATTERN_STYLE_CURRENCY:
+ patternKey = "currencyFormat";
+ break;
+ case CLDR_PATTERN_STYLE_ACCOUNTING:
+ patternKey = "accountingFormat";
+ break;
+ case CLDR_PATTERN_STYLE_PERCENT:
+ patternKey = "percentFormat";
+ break;
+ case CLDR_PATTERN_STYLE_SCIENTIFIC:
+ patternKey = "scientificFormat";
+ break;
+ default:
+ patternKey = "decimalFormat"; // silence compiler error
+ U_ASSERT(false);
+ }
+ LocalUResourceBundlePointer res(ures_open(nullptr, locale.getName(), &status));
+ if (U_FAILURE(status)) { return u""; }
+
+ // Attempt to get the pattern with the native numbering system.
+ UErrorCode localStatus = U_ZERO_ERROR;
+ const char16_t* pattern;
+ pattern = doGetPattern(res.getAlias(), nsName, patternKey, status, localStatus);
+ if (U_FAILURE(status)) { return u""; }
+
+ // Fall back to latn if native numbering system does not have the right pattern
+ if (U_FAILURE(localStatus) && uprv_strcmp("latn", nsName) != 0) {
+ localStatus = U_ZERO_ERROR;
+ pattern = doGetPattern(res.getAlias(), "latn", patternKey, status, localStatus);
+ if (U_FAILURE(status)) { return u""; }
+ }
+
+ return pattern;
+}
+
+
+DecNum::DecNum() {
+ uprv_decContextDefault(&fContext, DEC_INIT_BASE);
+ uprv_decContextSetRounding(&fContext, DEC_ROUND_HALF_EVEN);
+ fContext.traps = 0; // no traps, thank you (what does this even mean?)
+}
+
+DecNum::DecNum(const DecNum& other, UErrorCode& status)
+ : fContext(other.fContext) {
+ // Allocate memory for the new DecNum.
+ U_ASSERT(fContext.digits == other.fData.getCapacity());
+ if (fContext.digits > kDefaultDigits) {
+ void* p = fData.resize(fContext.digits, 0);
+ if (p == nullptr) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+ }
+
+ // Copy the data from the old DecNum to the new one.
+ uprv_memcpy(fData.getAlias(), other.fData.getAlias(), sizeof(decNumber));
+ uprv_memcpy(fData.getArrayStart(),
+ other.fData.getArrayStart(),
+ other.fData.getArrayLimit() - other.fData.getArrayStart());
+}
+
+void DecNum::setTo(StringPiece str, UErrorCode& status) {
+ // We need NUL-terminated for decNumber; CharString guarantees this, but not StringPiece.
+ CharString cstr(str, status);
+ if (U_FAILURE(status)) { return; }
+ _setTo(cstr.data(), str.length(), status);
+}
+
+void DecNum::setTo(const char* str, UErrorCode& status) {
+ _setTo(str, static_cast<int32_t>(uprv_strlen(str)), status);
+}
+
+void DecNum::setTo(double d, UErrorCode& status) {
+ // Need to check for NaN and Infinity before going into DoubleToStringConverter
+ if (std::isnan(d) != 0 || std::isfinite(d) == 0) {
+ status = U_UNSUPPORTED_ERROR;
+ return;
+ }
+
+ // First convert from double to string, then string to DecNum.
+ // Allocate enough room for: all digits, "E-324", and NUL-terminator.
+ char buffer[DoubleToStringConverter::kBase10MaximalLength + 6];
+ bool sign; // unused; always positive
+ int32_t length;
+ int32_t point;
+ DoubleToStringConverter::DoubleToAscii(
+ d,
+ DoubleToStringConverter::DtoaMode::SHORTEST,
+ 0,
+ buffer,
+ sizeof(buffer),
+ &sign,
+ &length,
+ &point
+ );
+
+ // Read initial result as a string.
+ _setTo(buffer, length, status);
+
+ // Set exponent and bitmask. Note that DoubleToStringConverter does not do negatives.
+ fData.getAlias()->exponent += point - length;
+ fData.getAlias()->bits |= static_cast<uint8_t>(std::signbit(d) ? DECNEG : 0);
+}
+
+void DecNum::_setTo(const char* str, int32_t maxDigits, UErrorCode& status) {
+ if (maxDigits > kDefaultDigits) {
+ fData.resize(maxDigits, 0);
+ fContext.digits = maxDigits;
+ } else {
+ fContext.digits = kDefaultDigits;
+ }
+
+ static_assert(DECDPUN == 1, "Assumes that DECDPUN is set to 1");
+ uprv_decNumberFromString(fData.getAlias(), str, &fContext);
+
+ // Check for invalid syntax and set the corresponding error code.
+ if ((fContext.status & DEC_Conversion_syntax) != 0) {
+ status = U_DECIMAL_NUMBER_SYNTAX_ERROR;
+ return;
+ } else if (fContext.status != 0) {
+ // Not a syntax error, but some other error, like an exponent that is too large.
+ status = U_UNSUPPORTED_ERROR;
+ return;
+ }
+
+ // For consistency with Java BigDecimal, no support for DecNum that is NaN or Infinity!
+ if (decNumberIsSpecial(fData.getAlias())) {
+ status = U_UNSUPPORTED_ERROR;
+ return;
+ }
+}
+
+void
+DecNum::setTo(const uint8_t* bcd, int32_t length, int32_t scale, bool isNegative, UErrorCode& status) {
+ if (length > kDefaultDigits) {
+ fData.resize(length, 0);
+ fContext.digits = length;
+ } else {
+ fContext.digits = kDefaultDigits;
+ }
+
+ // "digits is of type int32_t, and must have a value in the range 1 through 999,999,999."
+ if (length < 1 || length > 999999999) {
+ // Too large for decNumber
+ status = U_UNSUPPORTED_ERROR;
+ return;
+ }
+ // "The exponent field holds the exponent of the number. Its range is limited by the requirement that
+ // "the range of the adjusted exponent of the number be balanced and fit within a whole number of
+ // "decimal digits (in this implementation, be –999,999,999 through +999,999,999). The adjusted
+ // "exponent is the exponent that would result if the number were expressed with a single digit before
+ // "the decimal point, and is therefore given by exponent+digits-1."
+ if (scale > 999999999 - length + 1 || scale < -999999999 - length + 1) {
+ // Too large for decNumber
+ status = U_UNSUPPORTED_ERROR;
+ return;
+ }
+
+ fData.getAlias()->digits = length;
+ fData.getAlias()->exponent = scale;
+ fData.getAlias()->bits = static_cast<uint8_t>(isNegative ? DECNEG : 0);
+ uprv_decNumberSetBCD(fData, bcd, static_cast<uint32_t>(length));
+ if (fContext.status != 0) {
+ // Some error occurred while constructing the decNumber.
+ status = U_INTERNAL_PROGRAM_ERROR;
+ }
+}
+
+void DecNum::normalize() {
+ uprv_decNumberReduce(fData, fData, &fContext);
+}
+
+void DecNum::multiplyBy(const DecNum& rhs, UErrorCode& status) {
+ uprv_decNumberMultiply(fData, fData, rhs.fData, &fContext);
+ if (fContext.status != 0) {
+ status = U_INTERNAL_PROGRAM_ERROR;
+ }
+}
+
+void DecNum::divideBy(const DecNum& rhs, UErrorCode& status) {
+ uprv_decNumberDivide(fData, fData, rhs.fData, &fContext);
+ if (fContext.status != 0) {
+ status = U_INTERNAL_PROGRAM_ERROR;
+ }
+}
+
+bool DecNum::isNegative() const {
+ return decNumberIsNegative(fData.getAlias());
+}
+
+bool DecNum::isZero() const {
+ return decNumberIsZero(fData.getAlias());
+}
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_utils.h b/Build/source/libs/icu/icu-src/source/i18n/number_utils.h
index 3a408d6007a..c367166009c 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/number_utils.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_utils.h
@@ -3,7 +3,7 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
#ifndef __NUMBER_UTILS_H__
#define __NUMBER_UTILS_H__
@@ -13,116 +13,80 @@
#include "number_scientific.h"
#include "number_patternstring.h"
#include "number_modifiers.h"
+#include "number_multiplier.h"
+#include "number_roundingutils.h"
+#include "decNumber.h"
+#include "charstr.h"
-U_NAMESPACE_BEGIN namespace number {
-namespace impl {
+U_NAMESPACE_BEGIN
-class UnicodeStringCharSequence : public CharSequence {
- public:
- explicit UnicodeStringCharSequence(const UnicodeString &other) {
- fStr = other;
- }
+namespace number {
+namespace impl {
- ~UnicodeStringCharSequence() U_OVERRIDE = default;
+enum CldrPatternStyle {
+ CLDR_PATTERN_STYLE_DECIMAL,
+ CLDR_PATTERN_STYLE_CURRENCY,
+ CLDR_PATTERN_STYLE_ACCOUNTING,
+ CLDR_PATTERN_STYLE_PERCENT,
+ CLDR_PATTERN_STYLE_SCIENTIFIC,
+ CLDR_PATTERN_STYLE_COUNT,
+};
- int32_t length() const U_OVERRIDE {
- return fStr.length();
- }
+// Namespace for naked functions
+namespace utils {
- char16_t charAt(int32_t index) const U_OVERRIDE {
- return fStr.charAt(index);
+inline int32_t insertDigitFromSymbols(NumberStringBuilder& output, int32_t index, int8_t digit,
+ const DecimalFormatSymbols& symbols, Field field,
+ UErrorCode& status) {
+ if (symbols.getCodePointZero() != -1) {
+ return output.insertCodePoint(index, symbols.getCodePointZero() + digit, field, status);
}
+ return output.insert(index, symbols.getConstDigitSymbol(digit), field, status);
+}
- UChar32 codePointAt(int32_t index) const U_OVERRIDE {
- return fStr.char32At(index);
- }
+inline bool unitIsCurrency(const MeasureUnit& unit) {
+ return uprv_strcmp("currency", unit.getType()) == 0;
+}
- UnicodeString toUnicodeString() const U_OVERRIDE {
- // Allocate a UnicodeString of the correct length
- UnicodeString output(length(), 0, -1);
- for (int32_t i = 0; i < length(); i++) {
- output.append(charAt(i));
- }
- return output;
- }
+inline bool unitIsNoUnit(const MeasureUnit& unit) {
+ return uprv_strcmp("none", unit.getType()) == 0;
+}
- private:
- UnicodeString fStr;
-};
+inline bool unitIsPercent(const MeasureUnit& unit) {
+ return uprv_strcmp("percent", unit.getSubtype()) == 0;
+}
-struct MicroProps : public MicroPropsGenerator {
-
- // NOTE: All of these fields are properly initialized in NumberFormatterImpl.
- Rounder rounding;
- Grouper grouping;
- Padder padding;
- IntegerWidth integerWidth;
- UNumberSignDisplay sign;
- UNumberDecimalSeparatorDisplay decimal;
- bool useCurrency;
-
- // Note: This struct has no direct ownership of the following pointers.
- const DecimalFormatSymbols *symbols;
- const Modifier *modOuter;
- const Modifier *modMiddle;
- const Modifier *modInner;
-
- // The following "helper" fields may optionally be used during the MicroPropsGenerator.
- // They live here to retain memory.
- struct {
- ScientificModifier scientificModifier;
- EmptyModifier emptyWeakModifier{false};
- EmptyModifier emptyStrongModifier{true};
- } helpers;
-
-
- MicroProps() = default;
-
- MicroProps(const MicroProps &other) = default;
-
- MicroProps &operator=(const MicroProps &other) = default;
-
- void processQuantity(DecimalQuantity &, MicroProps &micros, UErrorCode &status) const U_OVERRIDE {
- (void)status;
- if (this == &micros) {
- // Unsafe path: no need to perform a copy.
- U_ASSERT(!exhausted);
- micros.exhausted = true;
- U_ASSERT(exhausted);
- } else {
- // Safe path: copy self into the output micros.
- micros = *this;
- }
- }
+inline bool unitIsPermille(const MeasureUnit& unit) {
+ return uprv_strcmp("permille", unit.getSubtype()) == 0;
+}
- private:
- // Internal fields:
- bool exhausted = false;
-};
+// NOTE: In Java, this method is in NumberFormat.java
+const char16_t*
+getPatternForStyle(const Locale& locale, const char* nsName, CldrPatternStyle style, UErrorCode& status);
/**
- * This struct provides the result of the number formatting pipeline to FormattedNumber.
+ * Computes the plural form for this number based on the specified set of rules.
*
- * The DecimalQuantity is not currently being used by FormattedNumber, but at some point it could be used
- * to add a toDecNumber() or similar method.
+ * @param rules A {@link PluralRules} object representing the set of rules.
+ * @return The {@link StandardPlural} according to the PluralRules. If the plural form is not in
+ * the set of standard plurals, {@link StandardPlural#OTHER} is returned instead.
*/
-struct NumberFormatterResults : public UMemory {
- DecimalQuantity quantity;
- NumberStringBuilder string;
-};
-
-inline const UnicodeString getDigitFromSymbols(int8_t digit, const DecimalFormatSymbols &symbols) {
- // TODO: Implement DecimalFormatSymbols.getCodePointZero()?
- if (digit == 0) {
- return symbols.getSymbol(DecimalFormatSymbols::ENumberFormatSymbol::kZeroDigitSymbol);
+inline StandardPlural::Form getStandardPlural(const PluralRules *rules,
+ const IFixedDecimal &fdec) {
+ if (rules == nullptr) {
+ // Fail gracefully if the user didn't provide a PluralRules
+ return StandardPlural::Form::OTHER;
} else {
- return symbols.getSymbol(static_cast<DecimalFormatSymbols::ENumberFormatSymbol>(
- DecimalFormatSymbols::ENumberFormatSymbol::kOneDigitSymbol + digit - 1));
+ UnicodeString ruleString = rules->select(fdec);
+ return StandardPlural::orOtherFromString(ruleString);
}
}
+} // namespace utils
+
} // namespace impl
} // namespace number
+
U_NAMESPACE_END
#endif //__NUMBER_UTILS_H__
diff --git a/Build/source/libs/icu/icu-src/source/i18n/number_utypes.h b/Build/source/libs/icu/icu-src/source/i18n/number_utypes.h
new file mode 100644
index 00000000000..48bfce19697
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/number_utypes.h
@@ -0,0 +1,79 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+#ifndef __SOURCE_NUMBER_UTYPES_H__
+#define __SOURCE_NUMBER_UTYPES_H__
+
+#include "unicode/numberformatter.h"
+#include "number_types.h"
+#include "number_decimalquantity.h"
+#include "number_stringbuilder.h"
+
+U_NAMESPACE_BEGIN namespace number {
+namespace impl {
+
+
+/**
+ * Implementation class for UNumberFormatter with a magic number for safety.
+ *
+ * Wraps a LocalizedNumberFormatter by value.
+ */
+struct UNumberFormatterData : public UMemory {
+ // The magic number to identify incoming objects.
+ // Reads in ASCII as "NFR" (NumberFormatteR with room at the end)
+ static constexpr int32_t kMagic = 0x4E465200;
+
+ // Data members:
+ int32_t fMagic = kMagic;
+ LocalizedNumberFormatter fFormatter;
+
+ /** Convert from UNumberFormatter -> UNumberFormatterData. */
+ static UNumberFormatterData* validate(UNumberFormatter* input, UErrorCode& status);
+
+ /** Convert from UNumberFormatter -> UNumberFormatterData (const version). */
+ static const UNumberFormatterData* validate(const UNumberFormatter* input, UErrorCode& status);
+
+ /** Convert from UNumberFormatterData -> UNumberFormatter. */
+ UNumberFormatter* exportForC();
+};
+
+
+/**
+ * Implementation class for UFormattedNumber with magic number for safety.
+ *
+ * This struct is also held internally by the C++ version FormattedNumber since the member types are not
+ * declared in the public header file.
+ *
+ * The DecimalQuantity is not currently being used by FormattedNumber, but at some point it could be used
+ * to add a toDecNumber() or similar method.
+ */
+struct UFormattedNumberData : public UMemory {
+ // The magic number to identify incoming objects.
+ // Reads in ASCII as "FDN" (FormatteDNumber with room at the end)
+ static constexpr int32_t kMagic = 0x46444E00;
+
+ // Data members:
+ int32_t fMagic = kMagic;
+ DecimalQuantity quantity;
+ NumberStringBuilder string;
+
+ /** Convert from UFormattedNumber -> UFormattedNumberData. */
+ static UFormattedNumberData* validate(UFormattedNumber* input, UErrorCode& status);
+
+ /** Convert from UFormattedNumber -> UFormattedNumberData (const version). */
+ static const UFormattedNumberData* validate(const UFormattedNumber* input, UErrorCode& status);
+
+ /** Convert from UFormattedNumberData -> UFormattedNumber. */
+ UFormattedNumber* exportForC();
+};
+
+
+} // namespace impl
+} // namespace number
+U_NAMESPACE_END
+
+#endif //__SOURCE_NUMBER_UTYPES_H__
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/numfmt.cpp b/Build/source/libs/icu/icu-src/source/i18n/numfmt.cpp
index 8ed71a580e1..626a5d16fb2 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/numfmt.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/numfmt.cpp
@@ -51,10 +51,11 @@
#include "uassert.h"
#include "umutex.h"
#include "mutex.h"
-#include "digitlst.h"
#include <float.h>
#include "sharednumberformat.h"
#include "unifiedcache.h"
+#include "number_decimalquantity.h"
+#include "number_utils.h"
//#define FMT_DEBUG
@@ -129,31 +130,28 @@ static const UChar * const gLastResortNumberPatterns[UNUM_FORMAT_STYLE_COUNT] =
// Keys used for accessing resource bundles
-static const char *gNumberElements = "NumberElements";
-static const char *gLatn = "latn";
-static const char *gPatterns = "patterns";
-static const char *gFormatKeys[UNUM_FORMAT_STYLE_COUNT] = {
- NULL, // UNUM_PATTERN_DECIMAL
- "decimalFormat", // UNUM_DECIMAL
- "currencyFormat", // UNUM_CURRENCY
- "percentFormat", // UNUM_PERCENT
- "scientificFormat", // UNUM_SCIENTIFIC
- NULL, // UNUM_SPELLOUT
- NULL, // UNUM_ORDINAL
- NULL, // UNUM_DURATION
- NULL, // UNUM_NUMBERING_SYSTEM
- NULL, // UNUM_PATTERN_RULEBASED
+static const icu::number::impl::CldrPatternStyle gFormatCldrStyles[UNUM_FORMAT_STYLE_COUNT] = {
+ /* NULL */ icu::number::impl::CLDR_PATTERN_STYLE_COUNT, // UNUM_PATTERN_DECIMAL
+ icu::number::impl::CLDR_PATTERN_STYLE_DECIMAL, // UNUM_DECIMAL
+ icu::number::impl::CLDR_PATTERN_STYLE_CURRENCY, // UNUM_CURRENCY
+ icu::number::impl::CLDR_PATTERN_STYLE_PERCENT, // UNUM_PERCENT
+ icu::number::impl::CLDR_PATTERN_STYLE_SCIENTIFIC, // UNUM_SCIENTIFIC
+ /* NULL */ icu::number::impl::CLDR_PATTERN_STYLE_COUNT, // UNUM_SPELLOUT
+ /* NULL */ icu::number::impl::CLDR_PATTERN_STYLE_COUNT, // UNUM_ORDINAL
+ /* NULL */ icu::number::impl::CLDR_PATTERN_STYLE_COUNT, // UNUM_DURATION
+ /* NULL */ icu::number::impl::CLDR_PATTERN_STYLE_COUNT, // UNUM_NUMBERING_SYSTEM
+ /* NULL */ icu::number::impl::CLDR_PATTERN_STYLE_COUNT, // UNUM_PATTERN_RULEBASED
// For UNUM_CURRENCY_ISO and UNUM_CURRENCY_PLURAL,
// the pattern is the same as the pattern of UNUM_CURRENCY
// except for replacing the single currency sign with
// double currency sign or triple currency sign.
- "currencyFormat", // UNUM_CURRENCY_ISO
- "currencyFormat", // UNUM_CURRENCY_PLURAL
- "accountingFormat", // UNUM_CURRENCY_ACCOUNTING
- "currencyFormat", // UNUM_CASH_CURRENCY
- NULL, // UNUM_DECIMAL_COMPACT_SHORT
- NULL, // UNUM_DECIMAL_COMPACT_LONG
- "currencyFormat", // UNUM_CURRENCY_STANDARD
+ icu::number::impl::CLDR_PATTERN_STYLE_CURRENCY, // UNUM_CURRENCY_ISO
+ icu::number::impl::CLDR_PATTERN_STYLE_CURRENCY, // UNUM_CURRENCY_PLURAL
+ icu::number::impl::CLDR_PATTERN_STYLE_ACCOUNTING, // UNUM_CURRENCY_ACCOUNTING
+ icu::number::impl::CLDR_PATTERN_STYLE_CURRENCY, // UNUM_CASH_CURRENCY
+ /* NULL */ icu::number::impl::CLDR_PATTERN_STYLE_COUNT, // UNUM_DECIMAL_COMPACT_SHORT
+ /* NULL */ icu::number::impl::CLDR_PATTERN_STYLE_COUNT, // UNUM_DECIMAL_COMPACT_LONG
+ icu::number::impl::CLDR_PATTERN_STYLE_CURRENCY, // UNUM_CURRENCY_STANDARD
};
// Static hashtable cache of NumberingSystem objects used by NumberFormat
@@ -524,7 +522,7 @@ ArgExtractor::ArgExtractor(const NumberFormat& /*nf*/, const Formattable& obj, U
ArgExtractor::~ArgExtractor() {
}
-UnicodeString& NumberFormat::format(const DigitList &number,
+UnicodeString& NumberFormat::format(const number::impl::DecimalQuantity &number,
UnicodeString& appendTo,
FieldPositionIterator* posIter,
UErrorCode& status) const {
@@ -534,7 +532,7 @@ UnicodeString& NumberFormat::format(const DigitList &number,
if (U_FAILURE(status)) {
return appendTo;
}
- double dnum = number.getDouble();
+ double dnum = number.toDouble();
format(dnum, appendTo, posIter, status);
return appendTo;
}
@@ -542,17 +540,17 @@ UnicodeString& NumberFormat::format(const DigitList &number,
UnicodeString&
-NumberFormat::format(const DigitList &number,
+NumberFormat::format(const number::impl::DecimalQuantity &number,
UnicodeString& appendTo,
FieldPosition& pos,
- UErrorCode &status) const {
+ UErrorCode &status) const {
// DecimalFormat overrides this function, and handles DigitList based big decimals.
// Other subclasses (ChoiceFormat) do not (yet) handle DigitLists,
// so this default implementation falls back to formatting decimal numbers as doubles.
if (U_FAILURE(status)) {
return appendTo;
}
- double dnum = number.getDouble();
+ double dnum = number.toDouble();
format(dnum, appendTo, pos, status);
return appendTo;
}
@@ -578,7 +576,7 @@ NumberFormat::format(const Formattable& obj,
return cloneFmt->format(*n, appendTo, pos, status);
}
- if (n->isNumeric() && n->getDigitList() != NULL) {
+ if (n->isNumeric() && n->getDecimalQuantity() != NULL) {
// Decimal Number. We will have a DigitList available if the value was
// set to a decimal number, or if the value originated with a parse.
//
@@ -587,17 +585,17 @@ NumberFormat::format(const Formattable& obj,
// know about DigitList to continue to operate as they had.
//
// DecimalFormat overrides the DigitList formatting functions.
- format(*n->getDigitList(), appendTo, pos, status);
+ format(*n->getDecimalQuantity(), appendTo, pos, status);
} else {
switch (n->getType()) {
case Formattable::kDouble:
- format(n->getDouble(), appendTo, pos);
+ format(n->getDouble(), appendTo, pos, status);
break;
case Formattable::kLong:
- format(n->getLong(), appendTo, pos);
+ format(n->getLong(), appendTo, pos, status);
break;
case Formattable::kInt64:
- format(n->getInt64(), appendTo, pos);
+ format(n->getInt64(), appendTo, pos, status);
break;
default:
status = U_INVALID_FORMAT_ERROR;
@@ -633,9 +631,9 @@ NumberFormat::format(const Formattable& obj,
return cloneFmt->format(*n, appendTo, posIter, status);
}
- if (n->isNumeric() && n->getDigitList() != NULL) {
+ if (n->isNumeric() && n->getDecimalQuantity() != NULL) {
// Decimal Number
- format(*n->getDigitList(), appendTo, posIter, status);
+ format(*n->getDecimalQuantity(), appendTo, posIter, status);
} else {
switch (n->getType()) {
case Formattable::kDouble:
@@ -1328,13 +1326,13 @@ NumberFormat::makeInstance(const Locale& desiredLocale,
// if the locale has "@compat=host", create a host-specific NumberFormat
if (U_SUCCESS(status) && count > 0 && uprv_strcmp(buffer, "host") == 0) {
- Win32NumberFormat *f = NULL;
UBool curr = TRUE;
switch (style) {
case UNUM_DECIMAL:
curr = FALSE;
// fall-through
+ U_FALLTHROUGH;
case UNUM_CURRENCY:
case UNUM_CURRENCY_ISO: // do not support plural formatting here
@@ -1342,14 +1340,13 @@ NumberFormat::makeInstance(const Locale& desiredLocale,
case UNUM_CURRENCY_ACCOUNTING:
case UNUM_CASH_CURRENCY:
case UNUM_CURRENCY_STANDARD:
- f = new Win32NumberFormat(desiredLocale, curr, status);
-
+ {
+ LocalPointer<Win32NumberFormat> f(new Win32NumberFormat(desiredLocale, curr, status), status);
if (U_SUCCESS(status)) {
- return f;
+ return f.orphan();
}
-
- delete f;
- break;
+ }
+ break;
default:
break;
}
@@ -1400,27 +1397,13 @@ NumberFormat::makeInstance(const Locale& desiredLocale,
return NULL;
}
- UResourceBundle *resource = ownedResource.orphan();
- UResourceBundle *numElements = ures_getByKeyWithFallback(resource, gNumberElements, NULL, &status);
- resource = ures_getByKeyWithFallback(numElements, ns->getName(), resource, &status);
- resource = ures_getByKeyWithFallback(resource, gPatterns, resource, &status);
- ownedResource.adoptInstead(resource);
-
- int32_t patLen = 0;
- const UChar *patResStr = ures_getStringByKeyWithFallback(resource, gFormatKeys[style], &patLen, &status);
-
- // Didn't find a pattern specific to the numbering system, so fall back to "latn"
- if ( status == U_MISSING_RESOURCE_ERROR && uprv_strcmp(gLatn,ns->getName())) {
- status = U_ZERO_ERROR;
- resource = ures_getByKeyWithFallback(numElements, gLatn, resource, &status);
- resource = ures_getByKeyWithFallback(resource, gPatterns, resource, &status);
- patResStr = ures_getStringByKeyWithFallback(resource, gFormatKeys[style], &patLen, &status);
- }
-
- ures_close(numElements);
-
- // Creates the specified decimal format style of the desired locale.
- pattern.setTo(TRUE, patResStr, patLen);
+ // Load the pattern from data using the common library function
+ const char16_t* patternPtr = number::impl::utils::getPatternForStyle(
+ desiredLocale,
+ ns->getName(),
+ gFormatCldrStyles[style],
+ status);
+ pattern = UnicodeString(TRUE, patternPtr, -1);
}
if (U_FAILURE(status)) {
return NULL;
@@ -1433,8 +1416,7 @@ NumberFormat::makeInstance(const Locale& desiredLocale,
}
}
-
- NumberFormat *f;
+ LocalPointer<NumberFormat> f;
if (ns->isAlgorithmic()) {
UnicodeString nsDesc;
UnicodeString nsRuleSetGroup;
@@ -1469,7 +1451,7 @@ NumberFormat::makeInstance(const Locale& desiredLocale,
return NULL;
}
r->setDefaultRuleSet(nsRuleSetName,status);
- f = r;
+ f.adoptInstead(r);
} else {
// replace single currency sign in the pattern with double currency sign
// if the style is UNUM_CURRENCY_ISO
@@ -1478,9 +1460,22 @@ NumberFormat::makeInstance(const Locale& desiredLocale,
UnicodeString(TRUE, gDoubleCurrencySign, 2));
}
- // "new DecimalFormat()" does not adopt the symbols if its memory allocation fails.
- DecimalFormatSymbols *syms = symbolsToAdopt.orphan();
- DecimalFormat* df = new DecimalFormat(pattern, syms, style, status);
+ // "new DecimalFormat()" does not adopt the symbols argument if its memory allocation fails.
+ // So we can't use adoptInsteadAndCheckErrorCode as we need to know if the 'new' failed.
+ DecimalFormatSymbols *syms = symbolsToAdopt.getAlias();
+ LocalPointer<DecimalFormat> df(new DecimalFormat(pattern, syms, style, status));
+
+ if (df.isValid()) {
+ // if the DecimalFormat object was successfully new'ed, then it will own symbolsToAdopt, even if the status is a failure.
+ symbolsToAdopt.orphan();
+ }
+ else {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ }
+
+ if (U_FAILURE(status)) {
+ return nullptr;
+ }
// if it is cash currency style, setCurrencyUsage with usage
if (style == UNUM_CASH_CURRENCY){
@@ -1488,25 +1483,18 @@ NumberFormat::makeInstance(const Locale& desiredLocale,
}
if (U_FAILURE(status)) {
- delete df;
- return NULL;
+ return nullptr;
}
- f = df;
- if (f == NULL) {
- delete syms;
- status = U_MEMORY_ALLOCATION_ERROR;
- return NULL;
- }
+ f.adoptInstead(df.orphan());
}
f->setLocaleIDs(ures_getLocaleByType(ownedResource.getAlias(), ULOC_VALID_LOCALE, &status),
ures_getLocaleByType(ownedResource.getAlias(), ULOC_ACTUAL_LOCALE, &status));
if (U_FAILURE(status)) {
- delete f;
return NULL;
}
- return f;
+ return f.orphan();
}
/**
diff --git a/Build/source/libs/icu/icu-src/source/i18n/numparse_affixes.cpp b/Build/source/libs/icu/icu-src/source/i18n/numparse_affixes.cpp
new file mode 100644
index 00000000000..bf1c13e24aa
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/numparse_affixes.cpp
@@ -0,0 +1,495 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+// Allow implicit conversion from char16_t* to UnicodeString for this file:
+// Helpful in toString methods and elsewhere.
+#define UNISTR_FROM_STRING_EXPLICIT
+
+#include "numparse_types.h"
+#include "numparse_affixes.h"
+#include "numparse_utils.h"
+#include "number_utils.h"
+
+using namespace icu;
+using namespace icu::numparse;
+using namespace icu::numparse::impl;
+using namespace icu::number;
+using namespace icu::number::impl;
+
+
+namespace {
+
+/**
+ * Helper method to return whether the given AffixPatternMatcher equals the given pattern string.
+ * Either both arguments must be null or the pattern string inside the AffixPatternMatcher must equal
+ * the given pattern string.
+ */
+static bool matched(const AffixPatternMatcher* affix, const UnicodeString& patternString) {
+ return (affix == nullptr && patternString.isBogus()) ||
+ (affix != nullptr && affix->getPattern() == patternString);
+}
+
+/**
+ * Helper method to return the length of the given AffixPatternMatcher. Returns 0 for null.
+ */
+static int32_t length(const AffixPatternMatcher* matcher) {
+ return matcher == nullptr ? 0 : matcher->getPattern().length();
+}
+
+/**
+ * Helper method to return whether (1) both lhs and rhs are null/invalid, or (2) if they are both
+ * valid, whether they are equal according to operator==. Similar to Java Objects.equals()
+ */
+static bool equals(const AffixPatternMatcher* lhs, const AffixPatternMatcher* rhs) {
+ if (lhs == nullptr && rhs == nullptr) {
+ return true;
+ }
+ if (lhs == nullptr || rhs == nullptr) {
+ return false;
+ }
+ return *lhs == *rhs;
+}
+
+}
+
+
+AffixPatternMatcherBuilder::AffixPatternMatcherBuilder(const UnicodeString& pattern,
+ AffixTokenMatcherWarehouse& warehouse,
+ IgnorablesMatcher* ignorables)
+ : fMatchersLen(0),
+ fLastTypeOrCp(0),
+ fPattern(pattern),
+ fWarehouse(warehouse),
+ fIgnorables(ignorables) {}
+
+void AffixPatternMatcherBuilder::consumeToken(AffixPatternType type, UChar32 cp, UErrorCode& status) {
+ // This is called by AffixUtils.iterateWithConsumer() for each token.
+
+ // Add an ignorables matcher between tokens except between two literals, and don't put two
+ // ignorables matchers in a row.
+ if (fIgnorables != nullptr && fMatchersLen > 0 &&
+ (fLastTypeOrCp < 0 || !fIgnorables->getSet()->contains(fLastTypeOrCp))) {
+ addMatcher(*fIgnorables);
+ }
+
+ if (type != TYPE_CODEPOINT) {
+ // Case 1: the token is a symbol.
+ switch (type) {
+ case TYPE_MINUS_SIGN:
+ addMatcher(fWarehouse.minusSign());
+ break;
+ case TYPE_PLUS_SIGN:
+ addMatcher(fWarehouse.plusSign());
+ break;
+ case TYPE_PERCENT:
+ addMatcher(fWarehouse.percent());
+ break;
+ case TYPE_PERMILLE:
+ addMatcher(fWarehouse.permille());
+ break;
+ case TYPE_CURRENCY_SINGLE:
+ case TYPE_CURRENCY_DOUBLE:
+ case TYPE_CURRENCY_TRIPLE:
+ case TYPE_CURRENCY_QUAD:
+ case TYPE_CURRENCY_QUINT:
+ // All currency symbols use the same matcher
+ addMatcher(fWarehouse.currency(status));
+ break;
+ default:
+ U_ASSERT(FALSE);
+ }
+
+ } else if (fIgnorables != nullptr && fIgnorables->getSet()->contains(cp)) {
+ // Case 2: the token is an ignorable literal.
+ // No action necessary: the ignorables matcher has already been added.
+
+ } else {
+ // Case 3: the token is a non-ignorable literal.
+ addMatcher(fWarehouse.nextCodePointMatcher(cp));
+ }
+ fLastTypeOrCp = type != TYPE_CODEPOINT ? type : cp;
+}
+
+void AffixPatternMatcherBuilder::addMatcher(NumberParseMatcher& matcher) {
+ if (fMatchersLen >= fMatchers.getCapacity()) {
+ fMatchers.resize(fMatchersLen * 2, fMatchersLen);
+ }
+ fMatchers[fMatchersLen++] = &matcher;
+}
+
+AffixPatternMatcher AffixPatternMatcherBuilder::build() {
+ return AffixPatternMatcher(fMatchers, fMatchersLen, fPattern);
+}
+
+
+CodePointMatcherWarehouse::CodePointMatcherWarehouse()
+ : codePointCount(0), codePointNumBatches(0) {}
+
+CodePointMatcherWarehouse::~CodePointMatcherWarehouse() {
+ // Delete the variable number of batches of code point matchers
+ for (int32_t i = 0; i < codePointNumBatches; i++) {
+ delete[] codePointsOverflow[i];
+ }
+}
+
+CodePointMatcherWarehouse::CodePointMatcherWarehouse(CodePointMatcherWarehouse&& src) U_NOEXCEPT
+ : codePoints(std::move(src.codePoints)),
+ codePointsOverflow(std::move(src.codePointsOverflow)),
+ codePointCount(src.codePointCount),
+ codePointNumBatches(src.codePointNumBatches) {}
+
+CodePointMatcherWarehouse&
+CodePointMatcherWarehouse::operator=(CodePointMatcherWarehouse&& src) U_NOEXCEPT {
+ codePoints = std::move(src.codePoints);
+ codePointsOverflow = std::move(src.codePointsOverflow);
+ codePointCount = src.codePointCount;
+ codePointNumBatches = src.codePointNumBatches;
+ return *this;
+}
+
+NumberParseMatcher& CodePointMatcherWarehouse::nextCodePointMatcher(UChar32 cp) {
+ if (codePointCount < CODE_POINT_STACK_CAPACITY) {
+ return codePoints[codePointCount++] = {cp};
+ }
+ int32_t totalCapacity = CODE_POINT_STACK_CAPACITY + codePointNumBatches * CODE_POINT_BATCH_SIZE;
+ if (codePointCount >= totalCapacity) {
+ // Need a new batch
+ auto* nextBatch = new CodePointMatcher[CODE_POINT_BATCH_SIZE];
+ if (codePointNumBatches >= codePointsOverflow.getCapacity()) {
+ // Need more room for storing pointers to batches
+ codePointsOverflow.resize(codePointNumBatches * 2, codePointNumBatches);
+ }
+ codePointsOverflow[codePointNumBatches++] = nextBatch;
+ }
+ return codePointsOverflow[codePointNumBatches - 1][(codePointCount++ - CODE_POINT_STACK_CAPACITY) %
+ CODE_POINT_BATCH_SIZE] = {cp};
+}
+
+
+AffixTokenMatcherWarehouse::AffixTokenMatcherWarehouse(const AffixTokenMatcherSetupData* setupData)
+ : fSetupData(setupData) {}
+
+NumberParseMatcher& AffixTokenMatcherWarehouse::minusSign() {
+ return fMinusSign = {fSetupData->dfs, true};
+}
+
+NumberParseMatcher& AffixTokenMatcherWarehouse::plusSign() {
+ return fPlusSign = {fSetupData->dfs, true};
+}
+
+NumberParseMatcher& AffixTokenMatcherWarehouse::percent() {
+ return fPercent = {fSetupData->dfs};
+}
+
+NumberParseMatcher& AffixTokenMatcherWarehouse::permille() {
+ return fPermille = {fSetupData->dfs};
+}
+
+NumberParseMatcher& AffixTokenMatcherWarehouse::currency(UErrorCode& status) {
+ return fCurrency = {fSetupData->currencySymbols, fSetupData->dfs, fSetupData->parseFlags, status};
+}
+
+IgnorablesMatcher& AffixTokenMatcherWarehouse::ignorables() {
+ return fSetupData->ignorables;
+}
+
+NumberParseMatcher& AffixTokenMatcherWarehouse::nextCodePointMatcher(UChar32 cp) {
+ return fCodePoints.nextCodePointMatcher(cp);
+}
+
+
+CodePointMatcher::CodePointMatcher(UChar32 cp)
+ : fCp(cp) {}
+
+bool CodePointMatcher::match(StringSegment& segment, ParsedNumber& result, UErrorCode&) const {
+ if (segment.startsWith(fCp)) {
+ segment.adjustOffsetByCodePoint();
+ result.setCharsConsumed(segment);
+ }
+ return false;
+}
+
+bool CodePointMatcher::smokeTest(const StringSegment& segment) const {
+ return segment.startsWith(fCp);
+}
+
+UnicodeString CodePointMatcher::toString() const {
+ return u"<CodePoint>";
+}
+
+
+AffixPatternMatcher AffixPatternMatcher::fromAffixPattern(const UnicodeString& affixPattern,
+ AffixTokenMatcherWarehouse& tokenWarehouse,
+ parse_flags_t parseFlags, bool* success,
+ UErrorCode& status) {
+ if (affixPattern.isEmpty()) {
+ *success = false;
+ return {};
+ }
+ *success = true;
+
+ IgnorablesMatcher* ignorables;
+ if (0 != (parseFlags & PARSE_FLAG_EXACT_AFFIX)) {
+ ignorables = nullptr;
+ } else {
+ ignorables = &tokenWarehouse.ignorables();
+ }
+
+ AffixPatternMatcherBuilder builder(affixPattern, tokenWarehouse, ignorables);
+ AffixUtils::iterateWithConsumer(affixPattern, builder, status);
+ return builder.build();
+}
+
+AffixPatternMatcher::AffixPatternMatcher(MatcherArray& matchers, int32_t matchersLen,
+ const UnicodeString& pattern)
+ : ArraySeriesMatcher(matchers, matchersLen), fPattern(pattern) {}
+
+UnicodeString AffixPatternMatcher::getPattern() const {
+ return fPattern.toAliasedUnicodeString();
+}
+
+bool AffixPatternMatcher::operator==(const AffixPatternMatcher& other) const {
+ return fPattern == other.fPattern;
+}
+
+
+AffixMatcherWarehouse::AffixMatcherWarehouse(AffixTokenMatcherWarehouse* tokenWarehouse)
+ : fTokenWarehouse(tokenWarehouse) {
+}
+
+bool AffixMatcherWarehouse::isInteresting(const AffixPatternProvider& patternInfo,
+ const IgnorablesMatcher& ignorables, parse_flags_t parseFlags,
+ UErrorCode& status) {
+ UnicodeString posPrefixString = patternInfo.getString(AffixPatternProvider::AFFIX_POS_PREFIX);
+ UnicodeString posSuffixString = patternInfo.getString(AffixPatternProvider::AFFIX_POS_SUFFIX);
+ UnicodeString negPrefixString;
+ UnicodeString negSuffixString;
+ if (patternInfo.hasNegativeSubpattern()) {
+ negPrefixString = patternInfo.getString(AffixPatternProvider::AFFIX_NEG_PREFIX);
+ negSuffixString = patternInfo.getString(AffixPatternProvider::AFFIX_NEG_SUFFIX);
+ }
+
+ if (0 == (parseFlags & PARSE_FLAG_USE_FULL_AFFIXES) &&
+ AffixUtils::containsOnlySymbolsAndIgnorables(posPrefixString, *ignorables.getSet(), status) &&
+ AffixUtils::containsOnlySymbolsAndIgnorables(posSuffixString, *ignorables.getSet(), status) &&
+ AffixUtils::containsOnlySymbolsAndIgnorables(negPrefixString, *ignorables.getSet(), status) &&
+ AffixUtils::containsOnlySymbolsAndIgnorables(negSuffixString, *ignorables.getSet(), status)
+ // HACK: Plus and minus sign are a special case: we accept them trailing only if they are
+ // trailing in the pattern string.
+ && !AffixUtils::containsType(posSuffixString, TYPE_PLUS_SIGN, status) &&
+ !AffixUtils::containsType(posSuffixString, TYPE_MINUS_SIGN, status) &&
+ !AffixUtils::containsType(negSuffixString, TYPE_PLUS_SIGN, status) &&
+ !AffixUtils::containsType(negSuffixString, TYPE_MINUS_SIGN, status)) {
+ // The affixes contain only symbols and ignorables.
+ // No need to generate affix matchers.
+ return false;
+ }
+ return true;
+}
+
+void AffixMatcherWarehouse::createAffixMatchers(const AffixPatternProvider& patternInfo,
+ MutableMatcherCollection& output,
+ const IgnorablesMatcher& ignorables,
+ parse_flags_t parseFlags, UErrorCode& status) {
+ if (!isInteresting(patternInfo, ignorables, parseFlags, status)) {
+ return;
+ }
+
+ // The affixes have interesting characters, or we are in strict mode.
+ // Use initial capacity of 6, the highest possible number of AffixMatchers.
+ UnicodeString sb;
+ bool includeUnpaired = 0 != (parseFlags & PARSE_FLAG_INCLUDE_UNPAIRED_AFFIXES);
+ UNumberSignDisplay signDisplay = (0 != (parseFlags & PARSE_FLAG_PLUS_SIGN_ALLOWED)) ? UNUM_SIGN_ALWAYS
+ : UNUM_SIGN_AUTO;
+
+ int32_t numAffixMatchers = 0;
+ int32_t numAffixPatternMatchers = 0;
+
+ AffixPatternMatcher* posPrefix = nullptr;
+ AffixPatternMatcher* posSuffix = nullptr;
+
+ // Pre-process the affix strings to resolve LDML rules like sign display.
+ for (int8_t signum = 1; signum >= -1; signum--) {
+ // Generate Prefix
+ bool hasPrefix = false;
+ PatternStringUtils::patternInfoToStringBuilder(
+ patternInfo, true, signum, signDisplay, StandardPlural::OTHER, false, sb);
+ fAffixPatternMatchers[numAffixPatternMatchers] = AffixPatternMatcher::fromAffixPattern(
+ sb, *fTokenWarehouse, parseFlags, &hasPrefix, status);
+ AffixPatternMatcher* prefix = hasPrefix ? &fAffixPatternMatchers[numAffixPatternMatchers++]
+ : nullptr;
+
+ // Generate Suffix
+ bool hasSuffix = false;
+ PatternStringUtils::patternInfoToStringBuilder(
+ patternInfo, false, signum, signDisplay, StandardPlural::OTHER, false, sb);
+ fAffixPatternMatchers[numAffixPatternMatchers] = AffixPatternMatcher::fromAffixPattern(
+ sb, *fTokenWarehouse, parseFlags, &hasSuffix, status);
+ AffixPatternMatcher* suffix = hasSuffix ? &fAffixPatternMatchers[numAffixPatternMatchers++]
+ : nullptr;
+
+ if (signum == 1) {
+ posPrefix = prefix;
+ posSuffix = suffix;
+ } else if (equals(prefix, posPrefix) && equals(suffix, posSuffix)) {
+ // Skip adding these matchers (we already have equivalents)
+ continue;
+ }
+
+ // Flags for setting in the ParsedNumber; the token matchers may add more.
+ int flags = (signum == -1) ? FLAG_NEGATIVE : 0;
+
+ // Note: it is indeed possible for posPrefix and posSuffix to both be null.
+ // We still need to add that matcher for strict mode to work.
+ fAffixMatchers[numAffixMatchers++] = {prefix, suffix, flags};
+ if (includeUnpaired && prefix != nullptr && suffix != nullptr) {
+ // The following if statements are designed to prevent adding two identical matchers.
+ if (signum == 1 || !equals(prefix, posPrefix)) {
+ fAffixMatchers[numAffixMatchers++] = {prefix, nullptr, flags};
+ }
+ if (signum == 1 || !equals(suffix, posSuffix)) {
+ fAffixMatchers[numAffixMatchers++] = {nullptr, suffix, flags};
+ }
+ }
+ }
+
+ // Put the AffixMatchers in order, and then add them to the output.
+ // Since there are at most 9 elements, do a simple-to-implement bubble sort.
+ bool madeChanges;
+ do {
+ madeChanges = false;
+ for (int32_t i = 1; i < numAffixMatchers; i++) {
+ if (fAffixMatchers[i - 1].compareTo(fAffixMatchers[i]) > 0) {
+ madeChanges = true;
+ AffixMatcher temp = std::move(fAffixMatchers[i - 1]);
+ fAffixMatchers[i - 1] = std::move(fAffixMatchers[i]);
+ fAffixMatchers[i] = std::move(temp);
+ }
+ }
+ } while (madeChanges);
+
+ for (int32_t i = 0; i < numAffixMatchers; i++) {
+ // Enable the following line to debug affixes
+ //std::cout << "Adding affix matcher: " << CStr(fAffixMatchers[i].toString())() << std::endl;
+ output.addMatcher(fAffixMatchers[i]);
+ }
+}
+
+
+AffixMatcher::AffixMatcher(AffixPatternMatcher* prefix, AffixPatternMatcher* suffix, result_flags_t flags)
+ : fPrefix(prefix), fSuffix(suffix), fFlags(flags) {}
+
+bool AffixMatcher::match(StringSegment& segment, ParsedNumber& result, UErrorCode& status) const {
+ if (!result.seenNumber()) {
+ // Prefix
+ // Do not match if:
+ // 1. We have already seen a prefix (result.prefix != null)
+ // 2. The prefix in this AffixMatcher is empty (prefix == null)
+ if (!result.prefix.isBogus() || fPrefix == nullptr) {
+ return false;
+ }
+
+ // Attempt to match the prefix.
+ int initialOffset = segment.getOffset();
+ bool maybeMore = fPrefix->match(segment, result, status);
+ if (initialOffset != segment.getOffset()) {
+ result.prefix = fPrefix->getPattern();
+ }
+ return maybeMore;
+
+ } else {
+ // Suffix
+ // Do not match if:
+ // 1. We have already seen a suffix (result.suffix != null)
+ // 2. The suffix in this AffixMatcher is empty (suffix == null)
+ // 3. The matched prefix does not equal this AffixMatcher's prefix
+ if (!result.suffix.isBogus() || fSuffix == nullptr || !matched(fPrefix, result.prefix)) {
+ return false;
+ }
+
+ // Attempt to match the suffix.
+ int initialOffset = segment.getOffset();
+ bool maybeMore = fSuffix->match(segment, result, status);
+ if (initialOffset != segment.getOffset()) {
+ result.suffix = fSuffix->getPattern();
+ }
+ return maybeMore;
+ }
+}
+
+bool AffixMatcher::smokeTest(const StringSegment& segment) const {
+ return (fPrefix != nullptr && fPrefix->smokeTest(segment)) ||
+ (fSuffix != nullptr && fSuffix->smokeTest(segment));
+}
+
+void AffixMatcher::postProcess(ParsedNumber& result) const {
+ // Check to see if our affix is the one that was matched. If so, set the flags in the result.
+ if (matched(fPrefix, result.prefix) && matched(fSuffix, result.suffix)) {
+ // Fill in the result prefix and suffix with non-null values (empty string).
+ // Used by strict mode to determine whether an entire affix pair was matched.
+ if (result.prefix.isBogus()) {
+ result.prefix = UnicodeString();
+ }
+ if (result.suffix.isBogus()) {
+ result.suffix = UnicodeString();
+ }
+ result.flags |= fFlags;
+ if (fPrefix != nullptr) {
+ fPrefix->postProcess(result);
+ }
+ if (fSuffix != nullptr) {
+ fSuffix->postProcess(result);
+ }
+ }
+}
+
+int8_t AffixMatcher::compareTo(const AffixMatcher& rhs) const {
+ const AffixMatcher& lhs = *this;
+ if (length(lhs.fPrefix) != length(rhs.fPrefix)) {
+ return length(lhs.fPrefix) > length(rhs.fPrefix) ? -1 : 1;
+ } else if (length(lhs.fSuffix) != length(rhs.fSuffix)) {
+ return length(lhs.fSuffix) > length(rhs.fSuffix) ? -1 : 1;
+ } else {
+ return 0;
+ }
+}
+
+UnicodeString AffixMatcher::toString() const {
+ bool isNegative = 0 != (fFlags & FLAG_NEGATIVE);
+ return UnicodeString(u"<Affix") + (isNegative ? u":negative " : u" ") +
+ (fPrefix ? fPrefix->getPattern() : u"null") + u"#" +
+ (fSuffix ? fSuffix->getPattern() : u"null") + u">";
+
+}
+
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Build/source/libs/icu/icu-src/source/i18n/numparse_affixes.h b/Build/source/libs/icu/icu-src/source/i18n/numparse_affixes.h
new file mode 100644
index 00000000000..be8c4fb5647
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/numparse_affixes.h
@@ -0,0 +1,255 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+#ifndef __NUMPARSE_AFFIXES_H__
+#define __NUMPARSE_AFFIXES_H__
+
+#include "numparse_types.h"
+#include "numparse_symbols.h"
+#include "numparse_currency.h"
+#include "number_affixutils.h"
+#include "number_currencysymbols.h"
+
+#include <array>
+
+U_NAMESPACE_BEGIN
+namespace numparse {
+namespace impl {
+
+// Forward-declaration of implementation classes for friending
+class AffixPatternMatcherBuilder;
+class AffixPatternMatcher;
+
+using ::icu::number::impl::AffixPatternProvider;
+using ::icu::number::impl::TokenConsumer;
+using ::icu::number::impl::CurrencySymbols;
+
+
+class CodePointMatcher : public NumberParseMatcher, public UMemory {
+ public:
+ CodePointMatcher() = default; // WARNING: Leaves the object in an unusable state
+
+ CodePointMatcher(UChar32 cp);
+
+ bool match(StringSegment& segment, ParsedNumber& result, UErrorCode& status) const override;
+
+ bool smokeTest(const StringSegment& segment) const override;
+
+ UnicodeString toString() const override;
+
+ private:
+ UChar32 fCp;
+};
+
+} // namespace impl
+} // namespace numparse
+
+// Export a explicit template instantiations of MaybeStackArray and CompactUnicodeString.
+// When building DLLs for Windows this is required even though no direct access leaks out of the i18n library.
+// (See digitlst.h, pluralaffix.h, datefmt.h, and others for similar examples.)
+// Note: These need to be outside of the impl::numparse namespace, or Clang will generate a compile error.
+#if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN
+template class U_I18N_API MaybeStackArray<UChar, 4>;
+template class U_I18N_API MaybeStackArray<numparse::impl::CodePointMatcher*, 3>;
+template class U_I18N_API numparse::impl::CompactUnicodeString<4>;
+#endif
+
+namespace numparse {
+namespace impl {
+
+/**
+ * A warehouse to retain ownership of CodePointMatchers.
+ */
+// Exported as U_I18N_API for tests
+class U_I18N_API CodePointMatcherWarehouse : public UMemory {
+ private:
+ static constexpr int32_t CODE_POINT_STACK_CAPACITY = 5; // Number of entries directly on the stack
+ static constexpr int32_t CODE_POINT_BATCH_SIZE = 10; // Number of entries per heap allocation
+
+ public:
+ CodePointMatcherWarehouse();
+
+ // A custom destructor is needed to free the memory from MaybeStackArray.
+ // A custom move constructor and move assignment seem to be needed because of the custom destructor.
+
+ ~CodePointMatcherWarehouse();
+
+ CodePointMatcherWarehouse(CodePointMatcherWarehouse&& src) U_NOEXCEPT;
+
+ CodePointMatcherWarehouse& operator=(CodePointMatcherWarehouse&& src) U_NOEXCEPT;
+
+ NumberParseMatcher& nextCodePointMatcher(UChar32 cp);
+
+ private:
+ std::array<CodePointMatcher, CODE_POINT_STACK_CAPACITY> codePoints; // By value
+ MaybeStackArray<CodePointMatcher*, 3> codePointsOverflow; // On heap in "batches"
+ int32_t codePointCount; // Total for both the ones by value and on heap
+ int32_t codePointNumBatches; // Number of batches in codePointsOverflow
+};
+
+
+struct AffixTokenMatcherSetupData {
+ const CurrencySymbols& currencySymbols;
+ const DecimalFormatSymbols& dfs;
+ IgnorablesMatcher& ignorables;
+ const Locale& locale;
+ parse_flags_t parseFlags;
+};
+
+
+/**
+ * Small helper class that generates matchers for individual tokens for AffixPatternMatcher.
+ *
+ * In Java, this is called AffixTokenMatcherFactory (a "factory"). However, in C++, it is called a
+ * "warehouse", because in addition to generating the matchers, it also retains ownership of them. The
+ * warehouse must stay in scope for the whole lifespan of the AffixPatternMatcher that uses matchers from
+ * the warehouse.
+ *
+ * @author sffc
+ */
+// Exported as U_I18N_API for tests
+class U_I18N_API AffixTokenMatcherWarehouse : public UMemory {
+ public:
+ AffixTokenMatcherWarehouse() = default; // WARNING: Leaves the object in an unusable state
+
+ AffixTokenMatcherWarehouse(const AffixTokenMatcherSetupData* setupData);
+
+ NumberParseMatcher& minusSign();
+
+ NumberParseMatcher& plusSign();
+
+ NumberParseMatcher& percent();
+
+ NumberParseMatcher& permille();
+
+ NumberParseMatcher& currency(UErrorCode& status);
+
+ IgnorablesMatcher& ignorables();
+
+ NumberParseMatcher& nextCodePointMatcher(UChar32 cp);
+
+ private:
+ // NOTE: The following field may be unsafe to access after construction is done!
+ const AffixTokenMatcherSetupData* fSetupData;
+
+ // NOTE: These are default-constructed and should not be used until initialized.
+ MinusSignMatcher fMinusSign;
+ PlusSignMatcher fPlusSign;
+ PercentMatcher fPercent;
+ PermilleMatcher fPermille;
+ CombinedCurrencyMatcher fCurrency;
+
+ // Use a child class for code point matchers, since it requires non-default operators.
+ CodePointMatcherWarehouse fCodePoints;
+
+ friend class AffixPatternMatcherBuilder;
+ friend class AffixPatternMatcher;
+};
+
+
+class AffixPatternMatcherBuilder : public TokenConsumer, public MutableMatcherCollection {
+ public:
+ AffixPatternMatcherBuilder(const UnicodeString& pattern, AffixTokenMatcherWarehouse& warehouse,
+ IgnorablesMatcher* ignorables);
+
+ void consumeToken(::icu::number::impl::AffixPatternType type, UChar32 cp, UErrorCode& status) override;
+
+ /** NOTE: You can build only once! */
+ AffixPatternMatcher build();
+
+ private:
+ ArraySeriesMatcher::MatcherArray fMatchers;
+ int32_t fMatchersLen;
+ int32_t fLastTypeOrCp;
+
+ const UnicodeString& fPattern;
+ AffixTokenMatcherWarehouse& fWarehouse;
+ IgnorablesMatcher* fIgnorables;
+
+ void addMatcher(NumberParseMatcher& matcher) override;
+};
+
+
+// Exported as U_I18N_API for tests
+class U_I18N_API AffixPatternMatcher : public ArraySeriesMatcher {
+ public:
+ AffixPatternMatcher() = default; // WARNING: Leaves the object in an unusable state
+
+ static AffixPatternMatcher fromAffixPattern(const UnicodeString& affixPattern,
+ AffixTokenMatcherWarehouse& warehouse,
+ parse_flags_t parseFlags, bool* success,
+ UErrorCode& status);
+
+ UnicodeString getPattern() const;
+
+ bool operator==(const AffixPatternMatcher& other) const;
+
+ private:
+ CompactUnicodeString<4> fPattern;
+
+ AffixPatternMatcher(MatcherArray& matchers, int32_t matchersLen, const UnicodeString& pattern);
+
+ friend class AffixPatternMatcherBuilder;
+};
+
+
+class AffixMatcher : public NumberParseMatcher, public UMemory {
+ public:
+ AffixMatcher() = default; // WARNING: Leaves the object in an unusable state
+
+ AffixMatcher(AffixPatternMatcher* prefix, AffixPatternMatcher* suffix, result_flags_t flags);
+
+ bool match(StringSegment& segment, ParsedNumber& result, UErrorCode& status) const override;
+
+ void postProcess(ParsedNumber& result) const override;
+
+ bool smokeTest(const StringSegment& segment) const override;
+
+ int8_t compareTo(const AffixMatcher& rhs) const;
+
+ UnicodeString toString() const override;
+
+ private:
+ AffixPatternMatcher* fPrefix;
+ AffixPatternMatcher* fSuffix;
+ result_flags_t fFlags;
+};
+
+
+/**
+ * A C++-only class to retain ownership of the AffixMatchers needed for parsing.
+ */
+class AffixMatcherWarehouse {
+ public:
+ AffixMatcherWarehouse() = default; // WARNING: Leaves the object in an unusable state
+
+ AffixMatcherWarehouse(AffixTokenMatcherWarehouse* tokenWarehouse);
+
+ void createAffixMatchers(const AffixPatternProvider& patternInfo, MutableMatcherCollection& output,
+ const IgnorablesMatcher& ignorables, parse_flags_t parseFlags,
+ UErrorCode& status);
+
+ private:
+ // 9 is the limit: positive, zero, and negative, each with prefix, suffix, and prefix+suffix
+ AffixMatcher fAffixMatchers[9];
+ // 6 is the limit: positive, zero, and negative, a prefix and a suffix for each
+ AffixPatternMatcher fAffixPatternMatchers[6];
+ // Reference to the warehouse for tokens used by the AffixPatternMatchers
+ AffixTokenMatcherWarehouse* fTokenWarehouse;
+
+ friend class AffixMatcher;
+
+ static bool isInteresting(const AffixPatternProvider& patternInfo, const IgnorablesMatcher& ignorables,
+ parse_flags_t parseFlags, UErrorCode& status);
+};
+
+
+} // namespace impl
+} // namespace numparse
+U_NAMESPACE_END
+
+#endif //__NUMPARSE_AFFIXES_H__
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/numparse_compositions.cpp b/Build/source/libs/icu/icu-src/source/i18n/numparse_compositions.cpp
new file mode 100644
index 00000000000..19253da805f
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/numparse_compositions.cpp
@@ -0,0 +1,107 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+// Allow implicit conversion from char16_t* to UnicodeString for this file:
+// Helpful in toString methods and elsewhere.
+#define UNISTR_FROM_STRING_EXPLICIT
+
+#include "numparse_types.h"
+#include "numparse_compositions.h"
+#include "unicode/uniset.h"
+
+using namespace icu;
+using namespace icu::numparse;
+using namespace icu::numparse::impl;
+
+
+bool SeriesMatcher::match(StringSegment& segment, ParsedNumber& result, UErrorCode& status) const {
+ ParsedNumber backup(result);
+
+ int32_t initialOffset = segment.getOffset();
+ bool maybeMore = true;
+ for (auto* it = begin(); it < end();) {
+ const NumberParseMatcher* matcher = *it;
+ int matcherOffset = segment.getOffset();
+ if (segment.length() != 0) {
+ maybeMore = matcher->match(segment, result, status);
+ } else {
+ // Nothing for this matcher to match; ask for more.
+ maybeMore = true;
+ }
+
+ bool success = (segment.getOffset() != matcherOffset);
+ bool isFlexible = matcher->isFlexible();
+ if (success && isFlexible) {
+ // Match succeeded, and this is a flexible matcher. Re-run it.
+ } else if (success) {
+ // Match succeeded, and this is NOT a flexible matcher. Proceed to the next matcher.
+ it++;
+ // Small hack: if there is another matcher coming, do not accept trailing weak chars.
+ // Needed for proper handling of currency spacing.
+ if (it < end() && segment.getOffset() != result.charEnd && result.charEnd > matcherOffset) {
+ segment.setOffset(result.charEnd);
+ }
+ } else if (isFlexible) {
+ // Match failed, and this is a flexible matcher. Try again with the next matcher.
+ it++;
+ } else {
+ // Match failed, and this is NOT a flexible matcher. Exit.
+ segment.setOffset(initialOffset);
+ result = backup;
+ return maybeMore;
+ }
+ }
+
+ // All matchers in the series succeeded.
+ return maybeMore;
+}
+
+bool SeriesMatcher::smokeTest(const StringSegment& segment) const {
+ // NOTE: The range-based for loop calls the virtual begin() and end() methods.
+ // NOTE: We only want the first element. Use the for loop for boundary checking.
+ for (auto& matcher : *this) {
+ // SeriesMatchers are never allowed to start with a Flexible matcher.
+ U_ASSERT(!matcher->isFlexible());
+ return matcher->smokeTest(segment);
+ }
+ return false;
+}
+
+void SeriesMatcher::postProcess(ParsedNumber& result) const {
+ // NOTE: The range-based for loop calls the virtual begin() and end() methods.
+ for (auto* matcher : *this) {
+ matcher->postProcess(result);
+ }
+}
+
+
+ArraySeriesMatcher::ArraySeriesMatcher()
+ : fMatchersLen(0) {
+}
+
+ArraySeriesMatcher::ArraySeriesMatcher(MatcherArray& matchers, int32_t matchersLen)
+ : fMatchers(std::move(matchers)), fMatchersLen(matchersLen) {
+}
+
+int32_t ArraySeriesMatcher::length() const {
+ return fMatchersLen;
+}
+
+const NumberParseMatcher* const* ArraySeriesMatcher::begin() const {
+ return fMatchers.getAlias();
+}
+
+const NumberParseMatcher* const* ArraySeriesMatcher::end() const {
+ return fMatchers.getAlias() + fMatchersLen;
+}
+
+UnicodeString ArraySeriesMatcher::toString() const {
+ return u"<ArraySeries>";
+}
+
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/numparse_compositions.h b/Build/source/libs/icu/icu-src/source/i18n/numparse_compositions.h
new file mode 100644
index 00000000000..f085912def1
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/numparse_compositions.h
@@ -0,0 +1,124 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+#ifndef __SOURCE_NUMPARSE_COMPOSITIONS__
+#define __SOURCE_NUMPARSE_COMPOSITIONS__
+
+#include "numparse_types.h"
+
+U_NAMESPACE_BEGIN
+
+// Export an explicit template instantiation of the MaybeStackArray that is used as a data member of ArraySeriesMatcher.
+// When building DLLs for Windows this is required even though no direct access to the MaybeStackArray leaks out of the i18n library.
+// (See digitlst.h, pluralaffix.h, datefmt.h, and others for similar examples.)
+#if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN
+template class U_I18N_API MaybeStackArray<const numparse::impl::NumberParseMatcher*, 3>;
+#endif
+
+namespace numparse {
+namespace impl {
+
+/**
+ * Base class for AnyMatcher and SeriesMatcher.
+ */
+// Exported as U_I18N_API for tests
+class U_I18N_API CompositionMatcher : public NumberParseMatcher {
+ protected:
+ // No construction except by subclasses!
+ CompositionMatcher() = default;
+
+ // To be overridden by subclasses (used for iteration):
+ virtual const NumberParseMatcher* const* begin() const = 0;
+
+ // To be overridden by subclasses (used for iteration):
+ virtual const NumberParseMatcher* const* end() const = 0;
+};
+
+
+// NOTE: AnyMatcher is no longer being used. The previous definition is shown below.
+// The implementation can be found in SVN source control, deleted around March 30, 2018.
+///**
+// * Composes a number of matchers, and succeeds if any of the matchers succeed. Always greedily chooses
+// * the first matcher in the list to succeed.
+// *
+// * NOTE: In C++, this is a base class, unlike ICU4J, which uses a factory-style interface.
+// *
+// * @author sffc
+// * @see SeriesMatcher
+// */
+//class AnyMatcher : public CompositionMatcher {
+// public:
+// bool match(StringSegment& segment, ParsedNumber& result, UErrorCode& status) const override;
+//
+// bool smokeTest(const StringSegment& segment) const override;
+//
+// void postProcess(ParsedNumber& result) const override;
+//
+// protected:
+// // No construction except by subclasses!
+// AnyMatcher() = default;
+//};
+
+
+/**
+ * Composes a number of matchers, running one after another. Matches the input string only if all of the
+ * matchers in the series succeed. Performs greedy matches within the context of the series.
+ *
+ * @author sffc
+ * @see AnyMatcher
+ */
+// Exported as U_I18N_API for tests
+class U_I18N_API SeriesMatcher : public CompositionMatcher {
+ public:
+ bool match(StringSegment& segment, ParsedNumber& result, UErrorCode& status) const override;
+
+ bool smokeTest(const StringSegment& segment) const override;
+
+ void postProcess(ParsedNumber& result) const override;
+
+ virtual int32_t length() const = 0;
+
+ protected:
+ // No construction except by subclasses!
+ SeriesMatcher() = default;
+};
+
+/**
+ * An implementation of SeriesMatcher that references an array of matchers.
+ *
+ * The object adopts the array, but NOT the matchers contained inside the array.
+ */
+// Exported as U_I18N_API for tests
+class U_I18N_API ArraySeriesMatcher : public SeriesMatcher {
+ public:
+ ArraySeriesMatcher(); // WARNING: Leaves the object in an unusable state
+
+ typedef MaybeStackArray<const NumberParseMatcher*, 3> MatcherArray;
+
+ /** The array is std::move'd */
+ ArraySeriesMatcher(MatcherArray& matchers, int32_t matchersLen);
+
+ UnicodeString toString() const override;
+
+ int32_t length() const override;
+
+ protected:
+ const NumberParseMatcher* const* begin() const override;
+
+ const NumberParseMatcher* const* end() const override;
+
+ private:
+ MatcherArray fMatchers;
+ int32_t fMatchersLen;
+};
+
+
+} // namespace impl
+} // namespace numparse
+U_NAMESPACE_END
+
+#endif //__SOURCE_NUMPARSE_COMPOSITIONS__
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/numparse_currency.cpp b/Build/source/libs/icu/icu-src/source/i18n/numparse_currency.cpp
new file mode 100644
index 00000000000..598ace56533
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/numparse_currency.cpp
@@ -0,0 +1,188 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+// Allow implicit conversion from char16_t* to UnicodeString for this file:
+// Helpful in toString methods and elsewhere.
+#define UNISTR_FROM_STRING_EXPLICIT
+
+#include "numparse_types.h"
+#include "numparse_currency.h"
+#include "ucurrimp.h"
+#include "unicode/errorcode.h"
+#include "numparse_utils.h"
+
+using namespace icu;
+using namespace icu::numparse;
+using namespace icu::numparse::impl;
+
+
+CombinedCurrencyMatcher::CombinedCurrencyMatcher(const CurrencySymbols& currencySymbols, const DecimalFormatSymbols& dfs,
+ parse_flags_t parseFlags, UErrorCode& status)
+ : fCurrency1(currencySymbols.getCurrencySymbol(status)),
+ fCurrency2(currencySymbols.getIntlCurrencySymbol(status)),
+ fUseFullCurrencyData(0 == (parseFlags & PARSE_FLAG_NO_FOREIGN_CURRENCY)),
+ afterPrefixInsert(dfs.getPatternForCurrencySpacing(UNUM_CURRENCY_INSERT, false, status)),
+ beforeSuffixInsert(dfs.getPatternForCurrencySpacing(UNUM_CURRENCY_INSERT, true, status)),
+ fLocaleName(dfs.getLocale().getName(), -1, status) {
+ utils::copyCurrencyCode(fCurrencyCode, currencySymbols.getIsoCode());
+
+ // Pre-load the long names for the current locale and currency
+ // if we are parsing without the full currency data.
+ if (!fUseFullCurrencyData) {
+ for (int32_t i=0; i<StandardPlural::COUNT; i++) {
+ auto plural = static_cast<StandardPlural::Form>(i);
+ fLocalLongNames[i] = currencySymbols.getPluralName(plural, status);
+ }
+ }
+
+ // TODO: Figure out how to make this faster and re-enable.
+ // Computing the "lead code points" set for fastpathing is too slow to use in production.
+ // See http://bugs.icu-project.org/trac/ticket/13584
+// // Compute the full set of characters that could be the first in a currency to allow for
+// // efficient smoke test.
+// fLeadCodePoints.add(fCurrency1.char32At(0));
+// fLeadCodePoints.add(fCurrency2.char32At(0));
+// fLeadCodePoints.add(beforeSuffixInsert.char32At(0));
+// uprv_currencyLeads(fLocaleName.data(), fLeadCodePoints, status);
+// // Always apply case mapping closure for currencies
+// fLeadCodePoints.closeOver(USET_ADD_CASE_MAPPINGS);
+// fLeadCodePoints.freeze();
+}
+
+bool
+CombinedCurrencyMatcher::match(StringSegment& segment, ParsedNumber& result, UErrorCode& status) const {
+ if (result.currencyCode[0] != 0) {
+ return false;
+ }
+
+ // Try to match a currency spacing separator.
+ int32_t initialOffset = segment.getOffset();
+ bool maybeMore = false;
+ if (result.seenNumber() && !beforeSuffixInsert.isEmpty()) {
+ int32_t overlap = segment.getCommonPrefixLength(beforeSuffixInsert);
+ if (overlap == beforeSuffixInsert.length()) {
+ segment.adjustOffset(overlap);
+ // Note: let currency spacing be a weak match. Don't update chars consumed.
+ }
+ maybeMore = maybeMore || overlap == segment.length();
+ }
+
+ // Match the currency string, and reset if we didn't find one.
+ maybeMore = maybeMore || matchCurrency(segment, result, status);
+ if (result.currencyCode[0] == 0) {
+ segment.setOffset(initialOffset);
+ return maybeMore;
+ }
+
+ // Try to match a currency spacing separator.
+ if (!result.seenNumber() && !afterPrefixInsert.isEmpty()) {
+ int32_t overlap = segment.getCommonPrefixLength(afterPrefixInsert);
+ if (overlap == afterPrefixInsert.length()) {
+ segment.adjustOffset(overlap);
+ // Note: let currency spacing be a weak match. Don't update chars consumed.
+ }
+ maybeMore = maybeMore || overlap == segment.length();
+ }
+
+ return maybeMore;
+}
+
+bool CombinedCurrencyMatcher::matchCurrency(StringSegment& segment, ParsedNumber& result,
+ UErrorCode& status) const {
+ bool maybeMore = false;
+
+ int32_t overlap1;
+ if (!fCurrency1.isEmpty()) {
+ overlap1 = segment.getCaseSensitivePrefixLength(fCurrency1);
+ } else {
+ overlap1 = -1;
+ }
+ maybeMore = maybeMore || overlap1 == segment.length();
+ if (overlap1 == fCurrency1.length()) {
+ utils::copyCurrencyCode(result.currencyCode, fCurrencyCode);
+ segment.adjustOffset(overlap1);
+ result.setCharsConsumed(segment);
+ return maybeMore;
+ }
+
+ int32_t overlap2;
+ if (!fCurrency2.isEmpty()) {
+ // ISO codes should be accepted case-insensitive.
+ // https://unicode-org.atlassian.net/browse/ICU-13696
+ overlap2 = segment.getCommonPrefixLength(fCurrency2);
+ } else {
+ overlap2 = -1;
+ }
+ maybeMore = maybeMore || overlap2 == segment.length();
+ if (overlap2 == fCurrency2.length()) {
+ utils::copyCurrencyCode(result.currencyCode, fCurrencyCode);
+ segment.adjustOffset(overlap2);
+ result.setCharsConsumed(segment);
+ return maybeMore;
+ }
+
+ if (fUseFullCurrencyData) {
+ // Use the full currency data.
+ // NOTE: This call site should be improved with #13584.
+ const UnicodeString segmentString = segment.toTempUnicodeString();
+
+ // Try to parse the currency
+ ParsePosition ppos(0);
+ int32_t partialMatchLen = 0;
+ uprv_parseCurrency(
+ fLocaleName.data(),
+ segmentString,
+ ppos,
+ UCURR_SYMBOL_NAME, // checks for both UCURR_SYMBOL_NAME and UCURR_LONG_NAME
+ &partialMatchLen,
+ result.currencyCode,
+ status);
+ maybeMore = maybeMore || partialMatchLen == segment.length();
+
+ if (U_SUCCESS(status) && ppos.getIndex() != 0) {
+ // Complete match.
+ // NOTE: The currency code should already be saved in the ParsedNumber.
+ segment.adjustOffset(ppos.getIndex());
+ result.setCharsConsumed(segment);
+ return maybeMore;
+ }
+
+ } else {
+ // Use the locale long names.
+ int32_t longestFullMatch = 0;
+ for (int32_t i=0; i<StandardPlural::COUNT; i++) {
+ const UnicodeString& name = fLocalLongNames[i];
+ int32_t overlap = segment.getCommonPrefixLength(name);
+ if (overlap == name.length() && name.length() > longestFullMatch) {
+ longestFullMatch = name.length();
+ }
+ maybeMore = maybeMore || overlap > 0;
+ }
+ if (longestFullMatch > 0) {
+ utils::copyCurrencyCode(result.currencyCode, fCurrencyCode);
+ segment.adjustOffset(longestFullMatch);
+ result.setCharsConsumed(segment);
+ return maybeMore;
+ }
+ }
+
+ // No match found.
+ return maybeMore;
+}
+
+bool CombinedCurrencyMatcher::smokeTest(const StringSegment&) const {
+ // TODO: See constructor
+ return true;
+ //return segment.startsWith(fLeadCodePoints);
+}
+
+UnicodeString CombinedCurrencyMatcher::toString() const {
+ return u"<CombinedCurrencyMatcher>";
+}
+
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/numparse_currency.h b/Build/source/libs/icu/icu-src/source/i18n/numparse_currency.h
new file mode 100644
index 00000000000..a94943312fd
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/numparse_currency.h
@@ -0,0 +1,74 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+#ifndef __NUMPARSE_CURRENCY_H__
+#define __NUMPARSE_CURRENCY_H__
+
+#include "numparse_types.h"
+#include "numparse_compositions.h"
+#include "charstr.h"
+#include "number_currencysymbols.h"
+#include "unicode/uniset.h"
+
+U_NAMESPACE_BEGIN namespace numparse {
+namespace impl {
+
+using ::icu::number::impl::CurrencySymbols;
+
+/**
+ * Matches a currency, either a custom currency or one from the data bundle. The class is called
+ * "combined" to emphasize that the currency string may come from one of multiple sources.
+ *
+ * Will match currency spacing either before or after the number depending on whether we are currently in
+ * the prefix or suffix.
+ *
+ * The implementation of this class is slightly different between J and C. See #13584 for a follow-up.
+ *
+ * @author sffc
+ */
+// Exported as U_I18N_API for tests
+class U_I18N_API CombinedCurrencyMatcher : public NumberParseMatcher, public UMemory {
+ public:
+ CombinedCurrencyMatcher() = default; // WARNING: Leaves the object in an unusable state
+
+ CombinedCurrencyMatcher(const CurrencySymbols& currencySymbols, const DecimalFormatSymbols& dfs,
+ parse_flags_t parseFlags, UErrorCode& status);
+
+ bool match(StringSegment& segment, ParsedNumber& result, UErrorCode& status) const override;
+
+ bool smokeTest(const StringSegment& segment) const override;
+
+ UnicodeString toString() const override;
+
+ private:
+ UChar fCurrencyCode[4];
+ UnicodeString fCurrency1;
+ UnicodeString fCurrency2;
+
+ bool fUseFullCurrencyData;
+ UnicodeString fLocalLongNames[StandardPlural::COUNT];
+
+ UnicodeString afterPrefixInsert;
+ UnicodeString beforeSuffixInsert;
+
+ // We could use Locale instead of CharString here, but
+ // Locale has a non-trivial default constructor.
+ CharString fLocaleName;
+
+ // TODO: See comments in constructor in numparse_currency.cpp
+ // UnicodeSet fLeadCodePoints;
+
+ /** Matches the currency string without concern for currency spacing. */
+ bool matchCurrency(StringSegment& segment, ParsedNumber& result, UErrorCode& status) const;
+};
+
+
+} // namespace impl
+} // namespace numparse
+U_NAMESPACE_END
+
+#endif //__NUMPARSE_CURRENCY_H__
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/numparse_decimal.cpp b/Build/source/libs/icu/icu-src/source/i18n/numparse_decimal.cpp
new file mode 100644
index 00000000000..b120c5c6ad2
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/numparse_decimal.cpp
@@ -0,0 +1,458 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+// Allow implicit conversion from char16_t* to UnicodeString for this file:
+// Helpful in toString methods and elsewhere.
+#define UNISTR_FROM_STRING_EXPLICIT
+
+#include "numparse_types.h"
+#include "numparse_decimal.h"
+#include "static_unicode_sets.h"
+#include "numparse_utils.h"
+#include "unicode/uchar.h"
+#include "putilimp.h"
+#include "number_decimalquantity.h"
+
+using namespace icu;
+using namespace icu::numparse;
+using namespace icu::numparse::impl;
+
+
+DecimalMatcher::DecimalMatcher(const DecimalFormatSymbols& symbols, const Grouper& grouper,
+ parse_flags_t parseFlags) {
+ if (0 != (parseFlags & PARSE_FLAG_MONETARY_SEPARATORS)) {
+ groupingSeparator = symbols.getConstSymbol(DecimalFormatSymbols::kMonetaryGroupingSeparatorSymbol);
+ decimalSeparator = symbols.getConstSymbol(DecimalFormatSymbols::kMonetarySeparatorSymbol);
+ } else {
+ groupingSeparator = symbols.getConstSymbol(DecimalFormatSymbols::kGroupingSeparatorSymbol);
+ decimalSeparator = symbols.getConstSymbol(DecimalFormatSymbols::kDecimalSeparatorSymbol);
+ }
+ bool strictSeparators = 0 != (parseFlags & PARSE_FLAG_STRICT_SEPARATORS);
+ unisets::Key groupingKey = strictSeparators ? unisets::STRICT_ALL_SEPARATORS
+ : unisets::ALL_SEPARATORS;
+
+ // Attempt to find separators in the static cache
+
+ groupingUniSet = unisets::get(groupingKey);
+ unisets::Key decimalKey = unisets::chooseFrom(
+ decimalSeparator,
+ strictSeparators ? unisets::STRICT_COMMA : unisets::COMMA,
+ strictSeparators ? unisets::STRICT_PERIOD : unisets::PERIOD);
+ if (decimalKey >= 0) {
+ decimalUniSet = unisets::get(decimalKey);
+ } else if (!decimalSeparator.isEmpty()) {
+ auto* set = new UnicodeSet();
+ set->add(decimalSeparator.char32At(0));
+ set->freeze();
+ decimalUniSet = set;
+ fLocalDecimalUniSet.adoptInstead(set);
+ } else {
+ decimalUniSet = unisets::get(unisets::EMPTY);
+ }
+
+ if (groupingKey >= 0 && decimalKey >= 0) {
+ // Everything is available in the static cache
+ separatorSet = groupingUniSet;
+ leadSet = unisets::get(
+ strictSeparators ? unisets::DIGITS_OR_ALL_SEPARATORS
+ : unisets::DIGITS_OR_STRICT_ALL_SEPARATORS);
+ } else {
+ auto* set = new UnicodeSet();
+ set->addAll(*groupingUniSet);
+ set->addAll(*decimalUniSet);
+ set->freeze();
+ separatorSet = set;
+ fLocalSeparatorSet.adoptInstead(set);
+ leadSet = nullptr;
+ }
+
+ UChar32 cpZero = symbols.getCodePointZero();
+ if (cpZero == -1 || !u_isdigit(cpZero) || u_digit(cpZero, 10) != 0) {
+ // Uncommon case: okay to allocate.
+ auto digitStrings = new UnicodeString[10];
+ fLocalDigitStrings.adoptInstead(digitStrings);
+ for (int32_t i = 0; i <= 9; i++) {
+ digitStrings[i] = symbols.getConstDigitSymbol(i);
+ }
+ }
+
+ requireGroupingMatch = 0 != (parseFlags & PARSE_FLAG_STRICT_GROUPING_SIZE);
+ groupingDisabled = 0 != (parseFlags & PARSE_FLAG_GROUPING_DISABLED);
+ integerOnly = 0 != (parseFlags & PARSE_FLAG_INTEGER_ONLY);
+ grouping1 = grouper.getPrimary();
+ grouping2 = grouper.getSecondary();
+
+ // Fraction grouping parsing is disabled for now but could be enabled later.
+ // See http://bugs.icu-project.org/trac/ticket/10794
+ // fractionGrouping = 0 != (parseFlags & PARSE_FLAG_FRACTION_GROUPING_ENABLED);
+}
+
+bool DecimalMatcher::match(StringSegment& segment, ParsedNumber& result, UErrorCode& status) const {
+ return match(segment, result, 0, status);
+}
+
+bool DecimalMatcher::match(StringSegment& segment, ParsedNumber& result, int8_t exponentSign,
+ UErrorCode&) const {
+ if (result.seenNumber() && exponentSign == 0) {
+ // A number has already been consumed.
+ return false;
+ } else if (exponentSign != 0) {
+ // scientific notation always comes after the number
+ U_ASSERT(!result.quantity.bogus);
+ }
+
+ // Initial offset before any character consumption.
+ int32_t initialOffset = segment.getOffset();
+
+ // Return value: whether to ask for more characters.
+ bool maybeMore = false;
+
+ // All digits consumed so far.
+ number::impl::DecimalQuantity digitsConsumed;
+ digitsConsumed.bogus = true;
+
+ // The total number of digits after the decimal place, used for scaling the result.
+ int32_t digitsAfterDecimalPlace = 0;
+
+ // The actual grouping and decimal separators used in the string.
+ // If non-null, we have seen that token.
+ UnicodeString actualGroupingString;
+ UnicodeString actualDecimalString;
+ actualGroupingString.setToBogus();
+ actualDecimalString.setToBogus();
+
+ // Information for two groups: the previous group and the current group.
+ //
+ // Each group has three pieces of information:
+ //
+ // Offset: the string position of the beginning of the group, including a leading separator
+ // if there was a leading separator. This is needed in case we need to rewind the parse to
+ // that position.
+ //
+ // Separator type:
+ // 0 => beginning of string
+ // 1 => lead separator is a grouping separator
+ // 2 => lead separator is a decimal separator
+ //
+ // Count: the number of digits in the group. If -1, the group has been validated.
+ int32_t currGroupOffset = 0;
+ int32_t currGroupSepType = 0;
+ int32_t currGroupCount = 0;
+ int32_t prevGroupOffset = -1;
+ int32_t prevGroupSepType = -1;
+ int32_t prevGroupCount = -1;
+
+ while (segment.length() > 0) {
+ maybeMore = false;
+
+ // Attempt to match a digit.
+ int8_t digit = -1;
+
+ // Try by code point digit value.
+ UChar32 cp = segment.getCodePoint();
+ if (u_isdigit(cp)) {
+ segment.adjustOffset(U16_LENGTH(cp));
+ digit = static_cast<int8_t>(u_digit(cp, 10));
+ }
+
+ // Try by digit string.
+ if (digit == -1 && !fLocalDigitStrings.isNull()) {
+ for (int32_t i = 0; i < 10; i++) {
+ const UnicodeString& str = fLocalDigitStrings[i];
+ if (str.isEmpty()) {
+ continue;
+ }
+ int32_t overlap = segment.getCommonPrefixLength(str);
+ if (overlap == str.length()) {
+ segment.adjustOffset(overlap);
+ digit = static_cast<int8_t>(i);
+ break;
+ }
+ maybeMore = maybeMore || (overlap == segment.length());
+ }
+ }
+
+ if (digit >= 0) {
+ // Digit was found.
+ if (digitsConsumed.bogus) {
+ digitsConsumed.bogus = false;
+ digitsConsumed.clear();
+ }
+ digitsConsumed.appendDigit(digit, 0, true);
+ currGroupCount++;
+ if (!actualDecimalString.isBogus()) {
+ digitsAfterDecimalPlace++;
+ }
+ continue;
+ }
+
+ // Attempt to match a literal grouping or decimal separator.
+ bool isDecimal = false;
+ bool isGrouping = false;
+
+ // 1) Attempt the decimal separator string literal.
+ // if (we have not seen a decimal separator yet) { ... }
+ if (actualDecimalString.isBogus() && !decimalSeparator.isEmpty()) {
+ int32_t overlap = segment.getCommonPrefixLength(decimalSeparator);
+ maybeMore = maybeMore || (overlap == segment.length());
+ if (overlap == decimalSeparator.length()) {
+ isDecimal = true;
+ actualDecimalString = decimalSeparator;
+ }
+ }
+
+ // 2) Attempt to match the actual grouping string literal.
+ if (!actualGroupingString.isBogus()) {
+ int32_t overlap = segment.getCommonPrefixLength(actualGroupingString);
+ maybeMore = maybeMore || (overlap == segment.length());
+ if (overlap == actualGroupingString.length()) {
+ isGrouping = true;
+ }
+ }
+
+ // 2.5) Attempt to match a new the grouping separator string literal.
+ // if (we have not seen a grouping or decimal separator yet) { ... }
+ if (!groupingDisabled && actualGroupingString.isBogus() && actualDecimalString.isBogus() &&
+ !groupingSeparator.isEmpty()) {
+ int32_t overlap = segment.getCommonPrefixLength(groupingSeparator);
+ maybeMore = maybeMore || (overlap == segment.length());
+ if (overlap == groupingSeparator.length()) {
+ isGrouping = true;
+ actualGroupingString = groupingSeparator;
+ }
+ }
+
+ // 3) Attempt to match a decimal separator from the equivalence set.
+ // if (we have not seen a decimal separator yet) { ... }
+ // The !isGrouping is to confirm that we haven't yet matched the current character.
+ if (!isGrouping && actualDecimalString.isBogus()) {
+ if (decimalUniSet->contains(cp)) {
+ isDecimal = true;
+ actualDecimalString = UnicodeString(cp);
+ }
+ }
+
+ // 4) Attempt to match a grouping separator from the equivalence set.
+ // if (we have not seen a grouping or decimal separator yet) { ... }
+ if (!groupingDisabled && actualGroupingString.isBogus() && actualDecimalString.isBogus()) {
+ if (groupingUniSet->contains(cp)) {
+ isGrouping = true;
+ actualGroupingString = UnicodeString(cp);
+ }
+ }
+
+ // Leave if we failed to match this as a separator.
+ if (!isDecimal && !isGrouping) {
+ break;
+ }
+
+ // Check for conditions when we don't want to accept the separator.
+ if (isDecimal && integerOnly) {
+ break;
+ } else if (currGroupSepType == 2 && isGrouping) {
+ // Fraction grouping
+ break;
+ }
+
+ // Validate intermediate grouping sizes.
+ bool prevValidSecondary = validateGroup(prevGroupSepType, prevGroupCount, false);
+ bool currValidPrimary = validateGroup(currGroupSepType, currGroupCount, true);
+ if (!prevValidSecondary || (isDecimal && !currValidPrimary)) {
+ // Invalid grouping sizes.
+ if (isGrouping && currGroupCount == 0) {
+ // Trailing grouping separators: these are taken care of below
+ U_ASSERT(currGroupSepType == 1);
+ } else if (requireGroupingMatch) {
+ // Strict mode: reject the parse
+ digitsConsumed.clear();
+ digitsConsumed.bogus = true;
+ }
+ break;
+ } else if (requireGroupingMatch && currGroupCount == 0 && currGroupSepType == 1) {
+ break;
+ } else {
+ // Grouping sizes OK so far.
+ prevGroupOffset = currGroupOffset;
+ prevGroupCount = currGroupCount;
+ if (isDecimal) {
+ // Do not validate this group any more.
+ prevGroupSepType = -1;
+ } else {
+ prevGroupSepType = currGroupSepType;
+ }
+ }
+
+ // OK to accept the separator.
+ // Special case: don't update currGroup if it is empty; this allows two grouping
+ // separators in a row in lenient mode.
+ if (currGroupCount != 0) {
+ currGroupOffset = segment.getOffset();
+ }
+ currGroupSepType = isGrouping ? 1 : 2;
+ currGroupCount = 0;
+ if (isGrouping) {
+ segment.adjustOffset(actualGroupingString.length());
+ } else {
+ segment.adjustOffset(actualDecimalString.length());
+ }
+ }
+
+ // End of main loop.
+ // Back up if there was a trailing grouping separator.
+ // Shift prev -> curr so we can check it as a final group.
+ if (currGroupSepType != 2 && currGroupCount == 0) {
+ maybeMore = true;
+ segment.setOffset(currGroupOffset);
+ currGroupOffset = prevGroupOffset;
+ currGroupSepType = prevGroupSepType;
+ currGroupCount = prevGroupCount;
+ prevGroupOffset = -1;
+ prevGroupSepType = 0;
+ prevGroupCount = 1;
+ }
+
+ // Validate final grouping sizes.
+ bool prevValidSecondary = validateGroup(prevGroupSepType, prevGroupCount, false);
+ bool currValidPrimary = validateGroup(currGroupSepType, currGroupCount, true);
+ if (!requireGroupingMatch) {
+ // The cases we need to handle here are lone digits.
+ // Examples: "1,1" "1,1," "1,1,1" "1,1,1," ",1" (all parse as 1)
+ // See more examples in numberformattestspecification.txt
+ int32_t digitsToRemove = 0;
+ if (!prevValidSecondary) {
+ segment.setOffset(prevGroupOffset);
+ digitsToRemove += prevGroupCount;
+ digitsToRemove += currGroupCount;
+ } else if (!currValidPrimary && (prevGroupSepType != 0 || prevGroupCount != 0)) {
+ maybeMore = true;
+ segment.setOffset(currGroupOffset);
+ digitsToRemove += currGroupCount;
+ }
+ if (digitsToRemove != 0) {
+ digitsConsumed.adjustMagnitude(-digitsToRemove);
+ digitsConsumed.truncate();
+ }
+ prevValidSecondary = true;
+ currValidPrimary = true;
+ }
+ if (currGroupSepType != 2 && (!prevValidSecondary || !currValidPrimary)) {
+ // Grouping failure.
+ digitsConsumed.bogus = true;
+ }
+
+ // Strings that start with a separator but have no digits,
+ // or strings that failed a grouping size check.
+ if (digitsConsumed.bogus) {
+ maybeMore = maybeMore || (segment.length() == 0);
+ segment.setOffset(initialOffset);
+ return maybeMore;
+ }
+
+ // We passed all inspections. Start post-processing.
+
+ // Adjust for fraction part.
+ digitsConsumed.adjustMagnitude(-digitsAfterDecimalPlace);
+
+ // Set the digits, either normal or exponent.
+ if (exponentSign != 0 && segment.getOffset() != initialOffset) {
+ bool overflow = false;
+ if (digitsConsumed.fitsInLong()) {
+ int64_t exponentLong = digitsConsumed.toLong(false);
+ U_ASSERT(exponentLong >= 0);
+ if (exponentLong <= INT32_MAX) {
+ auto exponentInt = static_cast<int32_t>(exponentLong);
+ if (result.quantity.adjustMagnitude(exponentSign * exponentInt)) {
+ overflow = true;
+ }
+ } else {
+ overflow = true;
+ }
+ } else {
+ overflow = true;
+ }
+ if (overflow) {
+ if (exponentSign == -1) {
+ // Set to zero
+ result.quantity.clear();
+ } else {
+ // Set to infinity
+ result.quantity.bogus = true;
+ result.flags |= FLAG_INFINITY;
+ }
+ }
+ } else {
+ result.quantity = digitsConsumed;
+ }
+
+ // Set other information into the result and return.
+ if (!actualDecimalString.isBogus()) {
+ result.flags |= FLAG_HAS_DECIMAL_SEPARATOR;
+ }
+ result.setCharsConsumed(segment);
+ return segment.length() == 0 || maybeMore;
+}
+
+bool DecimalMatcher::validateGroup(int32_t sepType, int32_t count, bool isPrimary) const {
+ if (requireGroupingMatch) {
+ if (sepType == -1) {
+ // No such group (prevGroup before first shift).
+ return true;
+ } else if (sepType == 0) {
+ // First group.
+ if (isPrimary) {
+ // No grouping separators is OK.
+ return true;
+ } else {
+ return count != 0 && count <= grouping2;
+ }
+ } else if (sepType == 1) {
+ // Middle group.
+ if (isPrimary) {
+ return count == grouping1;
+ } else {
+ return count == grouping2;
+ }
+ } else {
+ U_ASSERT(sepType == 2);
+ // After the decimal separator.
+ return true;
+ }
+ } else {
+ if (sepType == 1) {
+ // #11230: don't accept middle groups with only 1 digit.
+ return count != 1;
+ } else {
+ return true;
+ }
+ }
+}
+
+bool DecimalMatcher::smokeTest(const StringSegment& segment) const {
+ // The common case uses a static leadSet for efficiency.
+ if (fLocalDigitStrings.isNull() && leadSet != nullptr) {
+ return segment.startsWith(*leadSet);
+ }
+ if (segment.startsWith(*separatorSet) || u_isdigit(segment.getCodePoint())) {
+ return true;
+ }
+ if (fLocalDigitStrings.isNull()) {
+ return false;
+ }
+ for (int32_t i = 0; i < 10; i++) {
+ if (segment.startsWith(fLocalDigitStrings[i])) {
+ return true;
+ }
+ }
+ return false;
+}
+
+UnicodeString DecimalMatcher::toString() const {
+ return u"<Decimal>";
+}
+
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/numparse_decimal.h b/Build/source/libs/icu/icu-src/source/i18n/numparse_decimal.h
new file mode 100644
index 00000000000..ec6c76487e4
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/numparse_decimal.h
@@ -0,0 +1,76 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+#ifndef __NUMPARSE_DECIMAL_H__
+#define __NUMPARSE_DECIMAL_H__
+
+#include "unicode/uniset.h"
+#include "numparse_types.h"
+
+U_NAMESPACE_BEGIN namespace numparse {
+namespace impl {
+
+using ::icu::number::impl::Grouper;
+
+class DecimalMatcher : public NumberParseMatcher, public UMemory {
+ public:
+ DecimalMatcher() = default; // WARNING: Leaves the object in an unusable state
+
+ DecimalMatcher(const DecimalFormatSymbols& symbols, const Grouper& grouper,
+ parse_flags_t parseFlags);
+
+ bool match(StringSegment& segment, ParsedNumber& result, UErrorCode& status) const override;
+
+ bool
+ match(StringSegment& segment, ParsedNumber& result, int8_t exponentSign, UErrorCode& status) const;
+
+ bool smokeTest(const StringSegment& segment) const override;
+
+ UnicodeString toString() const override;
+
+ private:
+ /** If true, only accept strings whose grouping sizes match the locale */
+ bool requireGroupingMatch;
+
+ /** If true, do not accept grouping separators at all */
+ bool groupingDisabled;
+
+ // Fraction grouping parsing is disabled for now but could be enabled later.
+ // See http://bugs.icu-project.org/trac/ticket/10794
+ // bool fractionGrouping;
+
+ /** If true, do not accept numbers in the fraction */
+ bool integerOnly;
+
+ int16_t grouping1;
+ int16_t grouping2;
+
+ UnicodeString groupingSeparator;
+ UnicodeString decimalSeparator;
+
+ // Assumption: these sets all consist of single code points. If this assumption needs to be broken,
+ // fix getLeadCodePoints() as well as matching logic. Be careful of the performance impact.
+ const UnicodeSet* groupingUniSet;
+ const UnicodeSet* decimalUniSet;
+ const UnicodeSet* separatorSet;
+ const UnicodeSet* leadSet;
+
+ // Make this class the owner of a few objects that could be allocated.
+ // The first three LocalPointers are used for assigning ownership only.
+ LocalPointer<const UnicodeSet> fLocalDecimalUniSet;
+ LocalPointer<const UnicodeSet> fLocalSeparatorSet;
+ LocalArray<const UnicodeString> fLocalDigitStrings;
+
+ bool validateGroup(int32_t sepType, int32_t count, bool isPrimary) const;
+};
+
+
+} // namespace impl
+} // namespace numparse
+U_NAMESPACE_END
+
+#endif //__NUMPARSE_DECIMAL_H__
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/numparse_impl.cpp b/Build/source/libs/icu/icu-src/source/i18n/numparse_impl.cpp
new file mode 100644
index 00000000000..3192a395938
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/numparse_impl.cpp
@@ -0,0 +1,361 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+// Allow implicit conversion from char16_t* to UnicodeString for this file:
+// Helpful in toString methods and elsewhere.
+#define UNISTR_FROM_STRING_EXPLICIT
+
+#include <typeinfo>
+#include <array>
+#include "number_types.h"
+#include "number_patternstring.h"
+#include "numparse_types.h"
+#include "numparse_impl.h"
+#include "numparse_symbols.h"
+#include "numparse_decimal.h"
+#include "unicode/numberformatter.h"
+#include "cstr.h"
+#include "number_mapper.h"
+#include "static_unicode_sets.h"
+
+using namespace icu;
+using namespace icu::number;
+using namespace icu::number::impl;
+using namespace icu::numparse;
+using namespace icu::numparse::impl;
+
+
+NumberParseMatcher::~NumberParseMatcher() = default;
+
+
+NumberParserImpl*
+NumberParserImpl::createSimpleParser(const Locale& locale, const UnicodeString& patternString,
+ parse_flags_t parseFlags, UErrorCode& status) {
+
+ LocalPointer<NumberParserImpl> parser(new NumberParserImpl(parseFlags));
+ DecimalFormatSymbols symbols(locale, status);
+
+ parser->fLocalMatchers.ignorables = {unisets::DEFAULT_IGNORABLES};
+ IgnorablesMatcher& ignorables = parser->fLocalMatchers.ignorables;
+
+ DecimalFormatSymbols dfs(locale, status);
+ dfs.setSymbol(DecimalFormatSymbols::kCurrencySymbol, u"IU$");
+ dfs.setSymbol(DecimalFormatSymbols::kIntlCurrencySymbol, u"ICU");
+ CurrencySymbols currencySymbols({u"ICU", status}, locale, dfs, status);
+
+ ParsedPatternInfo patternInfo;
+ PatternParser::parseToPatternInfo(patternString, patternInfo, status);
+
+ // The following statements set up the affix matchers.
+ AffixTokenMatcherSetupData affixSetupData = {
+ currencySymbols, symbols, ignorables, locale, parseFlags};
+ parser->fLocalMatchers.affixTokenMatcherWarehouse = {&affixSetupData};
+ parser->fLocalMatchers.affixMatcherWarehouse = {&parser->fLocalMatchers.affixTokenMatcherWarehouse};
+ parser->fLocalMatchers.affixMatcherWarehouse.createAffixMatchers(
+ patternInfo, *parser, ignorables, parseFlags, status);
+
+ Grouper grouper = Grouper::forStrategy(UNUM_GROUPING_AUTO);
+ grouper.setLocaleData(patternInfo, locale);
+
+ parser->addMatcher(parser->fLocalMatchers.ignorables);
+ parser->addMatcher(parser->fLocalMatchers.decimal = {symbols, grouper, parseFlags});
+ parser->addMatcher(parser->fLocalMatchers.minusSign = {symbols, false});
+ parser->addMatcher(parser->fLocalMatchers.plusSign = {symbols, false});
+ parser->addMatcher(parser->fLocalMatchers.percent = {symbols});
+ parser->addMatcher(parser->fLocalMatchers.permille = {symbols});
+ parser->addMatcher(parser->fLocalMatchers.nan = {symbols});
+ parser->addMatcher(parser->fLocalMatchers.infinity = {symbols});
+ parser->addMatcher(parser->fLocalMatchers.padding = {u"@"});
+ parser->addMatcher(parser->fLocalMatchers.scientific = {symbols, grouper});
+ parser->addMatcher(parser->fLocalMatchers.currency = {currencySymbols, symbols, parseFlags, status});
+// parser.addMatcher(new RequireNumberMatcher());
+
+ parser->freeze();
+ return parser.orphan();
+}
+
+NumberParserImpl*
+NumberParserImpl::createParserFromProperties(const number::impl::DecimalFormatProperties& properties,
+ const DecimalFormatSymbols& symbols, bool parseCurrency,
+ UErrorCode& status) {
+ Locale locale = symbols.getLocale();
+ PropertiesAffixPatternProvider localPAPP;
+ CurrencyPluralInfoAffixProvider localCPIAP;
+ AffixPatternProvider* affixProvider;
+ if (properties.currencyPluralInfo.fPtr.isNull()) {
+ localPAPP.setTo(properties, status);
+ affixProvider = &localPAPP;
+ } else {
+ localCPIAP.setTo(*properties.currencyPluralInfo.fPtr, properties, status);
+ affixProvider = &localCPIAP;
+ }
+ if (affixProvider == nullptr || U_FAILURE(status)) { return nullptr; }
+ CurrencyUnit currency = resolveCurrency(properties, locale, status);
+ CurrencySymbols currencySymbols(currency, locale, symbols, status);
+ bool isStrict = properties.parseMode.getOrDefault(PARSE_MODE_STRICT) == PARSE_MODE_STRICT;
+ Grouper grouper = Grouper::forProperties(properties);
+ int parseFlags = 0;
+ if (affixProvider == nullptr || U_FAILURE(status)) { return nullptr; }
+ if (!properties.parseCaseSensitive) {
+ parseFlags |= PARSE_FLAG_IGNORE_CASE;
+ }
+ if (properties.parseIntegerOnly) {
+ parseFlags |= PARSE_FLAG_INTEGER_ONLY;
+ }
+ if (properties.signAlwaysShown) {
+ parseFlags |= PARSE_FLAG_PLUS_SIGN_ALLOWED;
+ }
+ if (isStrict) {
+ parseFlags |= PARSE_FLAG_STRICT_GROUPING_SIZE;
+ parseFlags |= PARSE_FLAG_STRICT_SEPARATORS;
+ parseFlags |= PARSE_FLAG_USE_FULL_AFFIXES;
+ parseFlags |= PARSE_FLAG_EXACT_AFFIX;
+ } else {
+ parseFlags |= PARSE_FLAG_INCLUDE_UNPAIRED_AFFIXES;
+ }
+ if (grouper.getPrimary() <= 0) {
+ parseFlags |= PARSE_FLAG_GROUPING_DISABLED;
+ }
+ if (parseCurrency || affixProvider->hasCurrencySign()) {
+ parseFlags |= PARSE_FLAG_MONETARY_SEPARATORS;
+ }
+ if (!parseCurrency) {
+ parseFlags |= PARSE_FLAG_NO_FOREIGN_CURRENCY;
+ }
+
+ LocalPointer<NumberParserImpl> parser(new NumberParserImpl(parseFlags));
+
+ parser->fLocalMatchers.ignorables = {
+ isStrict ? unisets::STRICT_IGNORABLES : unisets::DEFAULT_IGNORABLES};
+ IgnorablesMatcher& ignorables = parser->fLocalMatchers.ignorables;
+
+ //////////////////////
+ /// AFFIX MATCHERS ///
+ //////////////////////
+
+ // The following statements set up the affix matchers.
+ AffixTokenMatcherSetupData affixSetupData = {
+ currencySymbols, symbols, ignorables, locale, parseFlags};
+ parser->fLocalMatchers.affixTokenMatcherWarehouse = {&affixSetupData};
+ parser->fLocalMatchers.affixMatcherWarehouse = {&parser->fLocalMatchers.affixTokenMatcherWarehouse};
+ parser->fLocalMatchers.affixMatcherWarehouse.createAffixMatchers(
+ *affixProvider, *parser, ignorables, parseFlags, status);
+
+ ////////////////////////
+ /// CURRENCY MATCHER ///
+ ////////////////////////
+
+ if (parseCurrency || affixProvider->hasCurrencySign()) {
+ parser->addMatcher(parser->fLocalMatchers.currency = {currencySymbols, symbols, parseFlags, status});
+ }
+
+ ///////////////
+ /// PERCENT ///
+ ///////////////
+
+ // ICU-TC meeting, April 11, 2018: accept percent/permille only if it is in the pattern,
+ // and to maintain regressive behavior, divide by 100 even if no percent sign is present.
+ if (!isStrict && affixProvider->containsSymbolType(AffixPatternType::TYPE_PERCENT, status)) {
+ parser->addMatcher(parser->fLocalMatchers.percent = {symbols});
+ }
+ if (!isStrict && affixProvider->containsSymbolType(AffixPatternType::TYPE_PERMILLE, status)) {
+ parser->addMatcher(parser->fLocalMatchers.permille = {symbols});
+ }
+
+ ///////////////////////////////
+ /// OTHER STANDARD MATCHERS ///
+ ///////////////////////////////
+
+ if (!isStrict) {
+ parser->addMatcher(parser->fLocalMatchers.plusSign = {symbols, false});
+ parser->addMatcher(parser->fLocalMatchers.minusSign = {symbols, false});
+ }
+ parser->addMatcher(parser->fLocalMatchers.nan = {symbols});
+ parser->addMatcher(parser->fLocalMatchers.infinity = {symbols});
+ UnicodeString padString = properties.padString;
+ if (!padString.isBogus() && !ignorables.getSet()->contains(padString)) {
+ parser->addMatcher(parser->fLocalMatchers.padding = {padString});
+ }
+ parser->addMatcher(parser->fLocalMatchers.ignorables);
+ parser->addMatcher(parser->fLocalMatchers.decimal = {symbols, grouper, parseFlags});
+ // NOTE: parseNoExponent doesn't disable scientific parsing if we have a scientific formatter
+ if (!properties.parseNoExponent || properties.minimumExponentDigits > 0) {
+ parser->addMatcher(parser->fLocalMatchers.scientific = {symbols, grouper});
+ }
+
+ //////////////////
+ /// VALIDATORS ///
+ //////////////////
+
+ parser->addMatcher(parser->fLocalValidators.number = {});
+ if (isStrict) {
+ parser->addMatcher(parser->fLocalValidators.affix = {});
+ }
+ if (parseCurrency) {
+ parser->addMatcher(parser->fLocalValidators.currency = {});
+ }
+ if (properties.decimalPatternMatchRequired) {
+ bool patternHasDecimalSeparator =
+ properties.decimalSeparatorAlwaysShown || properties.maximumFractionDigits != 0;
+ parser->addMatcher(parser->fLocalValidators.decimalSeparator = {patternHasDecimalSeparator});
+ }
+ // The multiplier takes care of scaling percentages.
+ Scale multiplier = scaleFromProperties(properties);
+ if (multiplier.isValid()) {
+ parser->addMatcher(parser->fLocalValidators.multiplier = {multiplier});
+ }
+
+ parser->freeze();
+ return parser.orphan();
+}
+
+NumberParserImpl::NumberParserImpl(parse_flags_t parseFlags)
+ : fParseFlags(parseFlags) {
+}
+
+NumberParserImpl::~NumberParserImpl() {
+ fNumMatchers = 0;
+}
+
+void NumberParserImpl::addMatcher(NumberParseMatcher& matcher) {
+ if (fNumMatchers + 1 > fMatchers.getCapacity()) {
+ fMatchers.resize(fNumMatchers * 2, fNumMatchers);
+ }
+ fMatchers[fNumMatchers] = &matcher;
+ fNumMatchers++;
+}
+
+void NumberParserImpl::freeze() {
+ fFrozen = true;
+}
+
+parse_flags_t NumberParserImpl::getParseFlags() const {
+ return fParseFlags;
+}
+
+void NumberParserImpl::parse(const UnicodeString& input, bool greedy, ParsedNumber& result,
+ UErrorCode& status) const {
+ return parse(input, 0, greedy, result, status);
+}
+
+void NumberParserImpl::parse(const UnicodeString& input, int32_t start, bool greedy, ParsedNumber& result,
+ UErrorCode& status) const {
+ if (U_FAILURE(status)) {
+ return;
+ }
+ U_ASSERT(fFrozen);
+ // TODO: Check start >= 0 and start < input.length()
+ StringSegment segment(input, 0 != (fParseFlags & PARSE_FLAG_IGNORE_CASE));
+ segment.adjustOffset(start);
+ if (greedy) {
+ parseGreedyRecursive(segment, result, status);
+ } else {
+ parseLongestRecursive(segment, result, status);
+ }
+ for (int32_t i = 0; i < fNumMatchers; i++) {
+ fMatchers[i]->postProcess(result);
+ }
+ result.postProcess();
+}
+
+void NumberParserImpl::parseGreedyRecursive(StringSegment& segment, ParsedNumber& result,
+ UErrorCode& status) const {
+ // Base Case
+ if (segment.length() == 0) {
+ return;
+ }
+
+ int initialOffset = segment.getOffset();
+ for (int32_t i = 0; i < fNumMatchers; i++) {
+ const NumberParseMatcher* matcher = fMatchers[i];
+ if (!matcher->smokeTest(segment)) {
+ continue;
+ }
+ matcher->match(segment, result, status);
+ if (U_FAILURE(status)) {
+ return;
+ }
+ if (segment.getOffset() != initialOffset) {
+ // In a greedy parse, recurse on only the first match.
+ parseGreedyRecursive(segment, result, status);
+ // The following line resets the offset so that the StringSegment says the same across
+ // the function
+ // call boundary. Since we recurse only once, this line is not strictly necessary.
+ segment.setOffset(initialOffset);
+ return;
+ }
+ }
+
+ // NOTE: If we get here, the greedy parse completed without consuming the entire string.
+}
+
+void NumberParserImpl::parseLongestRecursive(StringSegment& segment, ParsedNumber& result,
+ UErrorCode& status) const {
+ // Base Case
+ if (segment.length() == 0) {
+ return;
+ }
+
+ // TODO: Give a nice way for the matcher to reset the ParsedNumber?
+ ParsedNumber initial(result);
+ ParsedNumber candidate;
+
+ int initialOffset = segment.getOffset();
+ for (int32_t i = 0; i < fNumMatchers; i++) {
+ const NumberParseMatcher* matcher = fMatchers[i];
+ if (!matcher->smokeTest(segment)) {
+ continue;
+ }
+
+ // In a non-greedy parse, we attempt all possible matches and pick the best.
+ for (int32_t charsToConsume = 0; charsToConsume < segment.length();) {
+ charsToConsume += U16_LENGTH(segment.codePointAt(charsToConsume));
+
+ // Run the matcher on a segment of the current length.
+ candidate = initial;
+ segment.setLength(charsToConsume);
+ bool maybeMore = matcher->match(segment, candidate, status);
+ segment.resetLength();
+ if (U_FAILURE(status)) {
+ return;
+ }
+
+ // If the entire segment was consumed, recurse.
+ if (segment.getOffset() - initialOffset == charsToConsume) {
+ parseLongestRecursive(segment, candidate, status);
+ if (U_FAILURE(status)) {
+ return;
+ }
+ if (candidate.isBetterThan(result)) {
+ result = candidate;
+ }
+ }
+
+ // Since the segment can be re-used, reset the offset.
+ // This does not have an effect if the matcher did not consume any chars.
+ segment.setOffset(initialOffset);
+
+ // Unless the matcher wants to see the next char, continue to the next matcher.
+ if (!maybeMore) {
+ break;
+ }
+ }
+ }
+}
+
+UnicodeString NumberParserImpl::toString() const {
+ UnicodeString result(u"<NumberParserImpl matchers:[");
+ for (int32_t i = 0; i < fNumMatchers; i++) {
+ result.append(u' ');
+ result.append(fMatchers[i]->toString());
+ }
+ result.append(u" ]>", -1);
+ return result;
+}
+
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/numparse_impl.h b/Build/source/libs/icu/icu-src/source/i18n/numparse_impl.h
new file mode 100644
index 00000000000..992114c7ede
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/numparse_impl.h
@@ -0,0 +1,109 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+#ifndef __NUMPARSE_IMPL_H__
+#define __NUMPARSE_IMPL_H__
+
+#include "numparse_types.h"
+#include "numparse_decimal.h"
+#include "numparse_symbols.h"
+#include "numparse_scientific.h"
+#include "unicode/uniset.h"
+#include "numparse_currency.h"
+#include "numparse_affixes.h"
+#include "number_decimfmtprops.h"
+#include "unicode/localpointer.h"
+#include "numparse_validators.h"
+#include "number_multiplier.h"
+
+U_NAMESPACE_BEGIN
+
+// Export an explicit template instantiation of the MaybeStackArray that is used as a data member of NumberParserImpl.
+// When building DLLs for Windows this is required even though no direct access to the MaybeStackArray leaks out of the i18n library.
+// (See numparse_compositions.h, numparse_affixes.h, datefmt.h, and others for similar examples.)
+#if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN
+template class U_I18N_API MaybeStackArray<const numparse::impl::NumberParseMatcher*, 10>;
+#endif
+
+namespace numparse {
+namespace impl {
+
+// Exported as U_I18N_API for tests
+class U_I18N_API NumberParserImpl : public MutableMatcherCollection, public UMemory {
+ public:
+ virtual ~NumberParserImpl();
+
+ static NumberParserImpl* createSimpleParser(const Locale& locale, const UnicodeString& patternString,
+ parse_flags_t parseFlags, UErrorCode& status);
+
+ static NumberParserImpl* createParserFromProperties(
+ const number::impl::DecimalFormatProperties& properties, const DecimalFormatSymbols& symbols,
+ bool parseCurrency, UErrorCode& status);
+
+ /**
+ * Does NOT take ownership of the matcher. The matcher MUST remain valid for the lifespan of the
+ * NumberParserImpl.
+ * @param matcher The matcher to reference.
+ */
+ void addMatcher(NumberParseMatcher& matcher) override;
+
+ void freeze();
+
+ parse_flags_t getParseFlags() const;
+
+ void parse(const UnicodeString& input, bool greedy, ParsedNumber& result, UErrorCode& status) const;
+
+ void parse(const UnicodeString& input, int32_t start, bool greedy, ParsedNumber& result,
+ UErrorCode& status) const;
+
+ UnicodeString toString() const;
+
+ private:
+ parse_flags_t fParseFlags;
+ int32_t fNumMatchers = 0;
+ // NOTE: The stack capacity for fMatchers and fLeads should be the same
+ MaybeStackArray<const NumberParseMatcher*, 10> fMatchers;
+ bool fFrozen = false;
+
+ // WARNING: All of these matchers start in an undefined state (default-constructed).
+ // You must use an assignment operator on them before using.
+ struct {
+ IgnorablesMatcher ignorables;
+ InfinityMatcher infinity;
+ MinusSignMatcher minusSign;
+ NanMatcher nan;
+ PaddingMatcher padding;
+ PercentMatcher percent;
+ PermilleMatcher permille;
+ PlusSignMatcher plusSign;
+ DecimalMatcher decimal;
+ ScientificMatcher scientific;
+ CombinedCurrencyMatcher currency;
+ AffixMatcherWarehouse affixMatcherWarehouse;
+ AffixTokenMatcherWarehouse affixTokenMatcherWarehouse;
+ } fLocalMatchers;
+ struct {
+ RequireAffixValidator affix;
+ RequireCurrencyValidator currency;
+ RequireDecimalSeparatorValidator decimalSeparator;
+ RequireNumberValidator number;
+ MultiplierParseHandler multiplier;
+ } fLocalValidators;
+
+ explicit NumberParserImpl(parse_flags_t parseFlags);
+
+ void parseGreedyRecursive(StringSegment& segment, ParsedNumber& result, UErrorCode& status) const;
+
+ void parseLongestRecursive(StringSegment& segment, ParsedNumber& result, UErrorCode& status) const;
+};
+
+
+} // namespace impl
+} // namespace numparse
+U_NAMESPACE_END
+
+#endif //__NUMPARSE_IMPL_H__
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/numparse_parsednumber.cpp b/Build/source/libs/icu/icu-src/source/i18n/numparse_parsednumber.cpp
new file mode 100644
index 00000000000..98da4e83192
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/numparse_parsednumber.cpp
@@ -0,0 +1,122 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+// Allow implicit conversion from char16_t* to UnicodeString for this file:
+// Helpful in toString methods and elsewhere.
+#define UNISTR_FROM_STRING_EXPLICIT
+
+#include "numparse_types.h"
+#include "number_decimalquantity.h"
+#include "putilimp.h"
+#include <cmath>
+
+using namespace icu;
+using namespace icu::number;
+using namespace icu::number::impl;
+using namespace icu::numparse;
+using namespace icu::numparse::impl;
+
+
+ParsedNumber::ParsedNumber() {
+ clear();
+}
+
+void ParsedNumber::clear() {
+ quantity.bogus = true;
+ charEnd = 0;
+ flags = 0;
+ prefix.setToBogus();
+ suffix.setToBogus();
+ currencyCode[0] = 0;
+}
+
+void ParsedNumber::setCharsConsumed(const StringSegment& segment) {
+ charEnd = segment.getOffset();
+}
+
+void ParsedNumber::postProcess() {
+ if (!quantity.bogus && 0 != (flags & FLAG_NEGATIVE)) {
+ quantity.negate();
+ }
+}
+
+bool ParsedNumber::success() const {
+ return charEnd > 0 && 0 == (flags & FLAG_FAIL);
+}
+
+bool ParsedNumber::seenNumber() const {
+ return !quantity.bogus || 0 != (flags & FLAG_NAN) || 0 != (flags & FLAG_INFINITY);
+}
+
+double ParsedNumber::getDouble() const {
+ bool sawNaN = 0 != (flags & FLAG_NAN);
+ bool sawInfinity = 0 != (flags & FLAG_INFINITY);
+
+ // Check for NaN, infinity, and -0.0
+ if (sawNaN) {
+ // Can't use NAN or std::nan because the byte pattern is platform-dependent;
+ // MSVC sets the sign bit, but Clang and GCC do not
+ return uprv_getNaN();
+ }
+ if (sawInfinity) {
+ if (0 != (flags & FLAG_NEGATIVE)) {
+ return -INFINITY;
+ } else {
+ return INFINITY;
+ }
+ }
+ U_ASSERT(!quantity.bogus);
+ if (quantity.isZero() && quantity.isNegative()) {
+ return -0.0;
+ }
+
+ if (quantity.fitsInLong()) {
+ return static_cast<double>(quantity.toLong());
+ } else {
+ return quantity.toDouble();
+ }
+}
+
+void ParsedNumber::populateFormattable(Formattable& output, parse_flags_t parseFlags) const {
+ bool sawNaN = 0 != (flags & FLAG_NAN);
+ bool sawInfinity = 0 != (flags & FLAG_INFINITY);
+ bool integerOnly = 0 != (parseFlags & PARSE_FLAG_INTEGER_ONLY);
+
+ // Check for NaN, infinity, and -0.0
+ if (sawNaN) {
+ // Can't use NAN or std::nan because the byte pattern is platform-dependent;
+ // MSVC sets the sign bit, but Clang and GCC do not
+ output.setDouble(uprv_getNaN());
+ return;
+ }
+ if (sawInfinity) {
+ if (0 != (flags & FLAG_NEGATIVE)) {
+ output.setDouble(-INFINITY);
+ return;
+ } else {
+ output.setDouble(INFINITY);
+ return;
+ }
+ }
+ U_ASSERT(!quantity.bogus);
+ if (quantity.isZero() && quantity.isNegative() && !integerOnly) {
+ output.setDouble(-0.0);
+ return;
+ }
+
+ // All other numbers
+ output.adoptDecimalQuantity(new DecimalQuantity(quantity));
+}
+
+bool ParsedNumber::isBetterThan(const ParsedNumber& other) {
+ // Favor results with strictly more characters consumed.
+ return charEnd > other.charEnd;
+}
+
+
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/numparse_scientific.cpp b/Build/source/libs/icu/icu-src/source/i18n/numparse_scientific.cpp
new file mode 100644
index 00000000000..de389574408
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/numparse_scientific.cpp
@@ -0,0 +1,138 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+// Allow implicit conversion from char16_t* to UnicodeString for this file:
+// Helpful in toString methods and elsewhere.
+#define UNISTR_FROM_STRING_EXPLICIT
+
+#include "numparse_types.h"
+#include "numparse_scientific.h"
+#include "static_unicode_sets.h"
+
+using namespace icu;
+using namespace icu::numparse;
+using namespace icu::numparse::impl;
+
+
+namespace {
+
+inline const UnicodeSet& minusSignSet() {
+ return *unisets::get(unisets::MINUS_SIGN);
+}
+
+inline const UnicodeSet& plusSignSet() {
+ return *unisets::get(unisets::PLUS_SIGN);
+}
+
+} // namespace
+
+
+ScientificMatcher::ScientificMatcher(const DecimalFormatSymbols& dfs, const Grouper& grouper)
+ : fExponentSeparatorString(dfs.getConstSymbol(DecimalFormatSymbols::kExponentialSymbol)),
+ fExponentMatcher(dfs, grouper, PARSE_FLAG_INTEGER_ONLY | PARSE_FLAG_GROUPING_DISABLED) {
+
+ const UnicodeString& minusSign = dfs.getConstSymbol(DecimalFormatSymbols::kMinusSignSymbol);
+ if (minusSignSet().contains(minusSign)) {
+ fCustomMinusSign.setToBogus();
+ } else {
+ fCustomMinusSign = minusSign;
+ }
+
+ const UnicodeString& plusSign = dfs.getConstSymbol(DecimalFormatSymbols::kPlusSignSymbol);
+ if (plusSignSet().contains(plusSign)) {
+ fCustomPlusSign.setToBogus();
+ } else {
+ fCustomPlusSign = plusSign;
+ }
+}
+
+bool ScientificMatcher::match(StringSegment& segment, ParsedNumber& result, UErrorCode& status) const {
+ // Only accept scientific notation after the mantissa.
+ if (!result.seenNumber()) {
+ return false;
+ }
+
+ // Only accept one exponent per string.
+ if (0 != (result.flags & FLAG_HAS_EXPONENT)) {
+ return false;
+ }
+
+ // First match the scientific separator, and then match another number after it.
+ // NOTE: This is guarded by the smoke test; no need to check fExponentSeparatorString length again.
+ int overlap1 = segment.getCommonPrefixLength(fExponentSeparatorString);
+ if (overlap1 == fExponentSeparatorString.length()) {
+ // Full exponent separator match.
+
+ // First attempt to get a code point, returning true if we can't get one.
+ if (segment.length() == overlap1) {
+ return true;
+ }
+ segment.adjustOffset(overlap1);
+
+ // Allow a sign, and then try to match digits.
+ int8_t exponentSign = 1;
+ if (segment.startsWith(minusSignSet())) {
+ exponentSign = -1;
+ segment.adjustOffsetByCodePoint();
+ } else if (segment.startsWith(plusSignSet())) {
+ segment.adjustOffsetByCodePoint();
+ } else if (segment.startsWith(fCustomMinusSign)) {
+ // Note: call site is guarded with startsWith, which returns false on empty string
+ int32_t overlap2 = segment.getCommonPrefixLength(fCustomMinusSign);
+ if (overlap2 != fCustomMinusSign.length()) {
+ // Partial custom sign match; un-match the exponent separator.
+ segment.adjustOffset(-overlap1);
+ return true;
+ }
+ exponentSign = -1;
+ segment.adjustOffset(overlap2);
+ } else if (segment.startsWith(fCustomPlusSign)) {
+ // Note: call site is guarded with startsWith, which returns false on empty string
+ int32_t overlap2 = segment.getCommonPrefixLength(fCustomPlusSign);
+ if (overlap2 != fCustomPlusSign.length()) {
+ // Partial custom sign match; un-match the exponent separator.
+ segment.adjustOffset(-overlap1);
+ return true;
+ }
+ segment.adjustOffset(overlap2);
+ }
+
+ // We are supposed to accept E0 after NaN, so we need to make sure result.quantity is available.
+ bool wasBogus = result.quantity.bogus;
+ result.quantity.bogus = false;
+ int digitsOffset = segment.getOffset();
+ bool digitsReturnValue = fExponentMatcher.match(segment, result, exponentSign, status);
+ result.quantity.bogus = wasBogus;
+
+ if (segment.getOffset() != digitsOffset) {
+ // At least one exponent digit was matched.
+ result.flags |= FLAG_HAS_EXPONENT;
+ } else {
+ // No exponent digits were matched; un-match the exponent separator.
+ segment.adjustOffset(-overlap1);
+ }
+ return digitsReturnValue;
+
+ } else if (overlap1 == segment.length()) {
+ // Partial exponent separator match
+ return true;
+ }
+
+ // No match
+ return false;
+}
+
+bool ScientificMatcher::smokeTest(const StringSegment& segment) const {
+ return segment.startsWith(fExponentSeparatorString);
+}
+
+UnicodeString ScientificMatcher::toString() const {
+ return u"<Scientific>";
+}
+
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/numparse_scientific.h b/Build/source/libs/icu/icu-src/source/i18n/numparse_scientific.h
new file mode 100644
index 00000000000..ddecf858af3
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/numparse_scientific.h
@@ -0,0 +1,45 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+#ifndef __NUMPARSE_SCIENTIFIC_H__
+#define __NUMPARSE_SCIENTIFIC_H__
+
+#include "numparse_types.h"
+#include "numparse_decimal.h"
+#include "unicode/numberformatter.h"
+
+using icu::number::impl::Grouper;
+
+U_NAMESPACE_BEGIN namespace numparse {
+namespace impl {
+
+
+class ScientificMatcher : public NumberParseMatcher, public UMemory {
+ public:
+ ScientificMatcher() = default; // WARNING: Leaves the object in an unusable state
+
+ ScientificMatcher(const DecimalFormatSymbols& dfs, const Grouper& grouper);
+
+ bool match(StringSegment& segment, ParsedNumber& result, UErrorCode& status) const override;
+
+ bool smokeTest(const StringSegment& segment) const override;
+
+ UnicodeString toString() const override;
+
+ private:
+ UnicodeString fExponentSeparatorString;
+ DecimalMatcher fExponentMatcher;
+ UnicodeString fCustomMinusSign;
+ UnicodeString fCustomPlusSign;
+};
+
+
+} // namespace impl
+} // namespace numparse
+U_NAMESPACE_END
+
+#endif //__NUMPARSE_SCIENTIFIC_H__
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/numparse_stringsegment.cpp b/Build/source/libs/icu/icu-src/source/i18n/numparse_stringsegment.cpp
new file mode 100644
index 00000000000..3db4fe618a6
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/numparse_stringsegment.cpp
@@ -0,0 +1,146 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+// Allow implicit conversion from char16_t* to UnicodeString for this file:
+// Helpful in toString methods and elsewhere.
+#define UNISTR_FROM_STRING_EXPLICIT
+
+#include "numparse_types.h"
+#include "numparse_stringsegment.h"
+#include "putilimp.h"
+#include "unicode/utf16.h"
+#include "unicode/uniset.h"
+
+using namespace icu;
+using namespace icu::numparse;
+using namespace icu::numparse::impl;
+
+
+StringSegment::StringSegment(const UnicodeString& str, bool ignoreCase)
+ : fStr(str), fStart(0), fEnd(str.length()),
+ fFoldCase(ignoreCase) {}
+
+int32_t StringSegment::getOffset() const {
+ return fStart;
+}
+
+void StringSegment::setOffset(int32_t start) {
+ fStart = start;
+}
+
+void StringSegment::adjustOffset(int32_t delta) {
+ fStart += delta;
+}
+
+void StringSegment::adjustOffsetByCodePoint() {
+ fStart += U16_LENGTH(getCodePoint());
+}
+
+void StringSegment::setLength(int32_t length) {
+ fEnd = fStart + length;
+}
+
+void StringSegment::resetLength() {
+ fEnd = fStr.length();
+}
+
+int32_t StringSegment::length() const {
+ return fEnd - fStart;
+}
+
+char16_t StringSegment::charAt(int32_t index) const {
+ return fStr.charAt(index + fStart);
+}
+
+UChar32 StringSegment::codePointAt(int32_t index) const {
+ return fStr.char32At(index + fStart);
+}
+
+UnicodeString StringSegment::toUnicodeString() const {
+ return UnicodeString(fStr.getBuffer() + fStart, fEnd - fStart);
+}
+
+const UnicodeString StringSegment::toTempUnicodeString() const {
+ // Use the readonly-aliasing constructor for efficiency.
+ return UnicodeString(FALSE, fStr.getBuffer() + fStart, fEnd - fStart);
+}
+
+UChar32 StringSegment::getCodePoint() const {
+ char16_t lead = fStr.charAt(fStart);
+ if (U16_IS_LEAD(lead) && fStart + 1 < fEnd) {
+ return fStr.char32At(fStart);
+ } else if (U16_IS_SURROGATE(lead)) {
+ return -1;
+ } else {
+ return lead;
+ }
+}
+
+bool StringSegment::startsWith(UChar32 otherCp) const {
+ return codePointsEqual(getCodePoint(), otherCp, fFoldCase);
+}
+
+bool StringSegment::startsWith(const UnicodeSet& uniset) const {
+ // TODO: Move UnicodeSet case-folding logic here.
+ // TODO: Handle string matches here instead of separately.
+ UChar32 cp = getCodePoint();
+ if (cp == -1) {
+ return false;
+ }
+ return uniset.contains(cp);
+}
+
+bool StringSegment::startsWith(const UnicodeString& other) const {
+ if (other.isBogus() || other.length() == 0 || length() == 0) {
+ return false;
+ }
+ int cp1 = getCodePoint();
+ int cp2 = other.char32At(0);
+ return codePointsEqual(cp1, cp2, fFoldCase);
+}
+
+int32_t StringSegment::getCommonPrefixLength(const UnicodeString& other) {
+ return getPrefixLengthInternal(other, fFoldCase);
+}
+
+int32_t StringSegment::getCaseSensitivePrefixLength(const UnicodeString& other) {
+ return getPrefixLengthInternal(other, false);
+}
+
+int32_t StringSegment::getPrefixLengthInternal(const UnicodeString& other, bool foldCase) {
+ U_ASSERT(other.length() > 0);
+ int32_t offset = 0;
+ for (; offset < uprv_min(length(), other.length());) {
+ // TODO: case-fold code points, not chars
+ char16_t c1 = charAt(offset);
+ char16_t c2 = other.charAt(offset);
+ if (!codePointsEqual(c1, c2, foldCase)) {
+ break;
+ }
+ offset++;
+ }
+ return offset;
+}
+
+bool StringSegment::codePointsEqual(UChar32 cp1, UChar32 cp2, bool foldCase) {
+ if (cp1 == cp2) {
+ return true;
+ }
+ if (!foldCase) {
+ return false;
+ }
+ cp1 = u_foldCase(cp1, TRUE);
+ cp2 = u_foldCase(cp2, TRUE);
+ return cp1 == cp2;
+}
+
+bool StringSegment::operator==(const UnicodeString& other) const {
+ return toTempUnicodeString() == other;
+}
+
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/numparse_stringsegment.h b/Build/source/libs/icu/icu-src/source/i18n/numparse_stringsegment.h
new file mode 100644
index 00000000000..7a84444d414
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/numparse_stringsegment.h
@@ -0,0 +1,24 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+#ifndef __NUMPARSE_STRINGSEGMENT_H__
+#define __NUMPARSE_STRINGSEGMENT_H__
+
+#include "numparse_types.h"
+#include "number_types.h"
+#include "unicode/unistr.h"
+
+U_NAMESPACE_BEGIN
+namespace numparse {
+namespace impl {
+
+
+} // namespace impl
+} // namespace numparse
+U_NAMESPACE_END
+
+#endif //__NUMPARSE_STRINGSEGMENT_H__
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/numparse_symbols.cpp b/Build/source/libs/icu/icu-src/source/i18n/numparse_symbols.cpp
new file mode 100644
index 00000000000..9ccceec8475
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/numparse_symbols.cpp
@@ -0,0 +1,193 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+// Allow implicit conversion from char16_t* to UnicodeString for this file:
+// Helpful in toString methods and elsewhere.
+#define UNISTR_FROM_STRING_EXPLICIT
+
+#include "numparse_types.h"
+#include "numparse_symbols.h"
+#include "numparse_utils.h"
+
+using namespace icu;
+using namespace icu::numparse;
+using namespace icu::numparse::impl;
+
+
+SymbolMatcher::SymbolMatcher(const UnicodeString& symbolString, unisets::Key key) {
+ fUniSet = unisets::get(key);
+ if (fUniSet->contains(symbolString)) {
+ fString.setToBogus();
+ } else {
+ fString = symbolString;
+ }
+}
+
+const UnicodeSet* SymbolMatcher::getSet() const {
+ return fUniSet;
+}
+
+bool SymbolMatcher::match(StringSegment& segment, ParsedNumber& result, UErrorCode&) const {
+ // Smoke test first; this matcher might be disabled.
+ if (isDisabled(result)) {
+ return false;
+ }
+
+ // Test the string first in order to consume trailing chars greedily.
+ int overlap = 0;
+ if (!fString.isEmpty()) {
+ overlap = segment.getCommonPrefixLength(fString);
+ if (overlap == fString.length()) {
+ segment.adjustOffset(fString.length());
+ accept(segment, result);
+ return false;
+ }
+ }
+
+ int cp = segment.getCodePoint();
+ if (cp != -1 && fUniSet->contains(cp)) {
+ segment.adjustOffset(U16_LENGTH(cp));
+ accept(segment, result);
+ return false;
+ }
+
+ return overlap == segment.length();
+}
+
+bool SymbolMatcher::smokeTest(const StringSegment& segment) const {
+ return segment.startsWith(*fUniSet) || segment.startsWith(fString);
+}
+
+UnicodeString SymbolMatcher::toString() const {
+ // TODO: Customize output for each symbol
+ return u"<Symbol>";
+}
+
+
+IgnorablesMatcher::IgnorablesMatcher(unisets::Key key)
+ : SymbolMatcher({}, key) {
+}
+
+bool IgnorablesMatcher::isFlexible() const {
+ return true;
+}
+
+UnicodeString IgnorablesMatcher::toString() const {
+ return u"<Ignorables>";
+}
+
+bool IgnorablesMatcher::isDisabled(const ParsedNumber&) const {
+ return false;
+}
+
+void IgnorablesMatcher::accept(StringSegment&, ParsedNumber&) const {
+ // No-op
+}
+
+
+InfinityMatcher::InfinityMatcher(const DecimalFormatSymbols& dfs)
+ : SymbolMatcher(dfs.getConstSymbol(DecimalFormatSymbols::kInfinitySymbol), unisets::INFINITY_KEY) {
+}
+
+bool InfinityMatcher::isDisabled(const ParsedNumber& result) const {
+ return 0 != (result.flags & FLAG_INFINITY);
+}
+
+void InfinityMatcher::accept(StringSegment& segment, ParsedNumber& result) const {
+ result.flags |= FLAG_INFINITY;
+ result.setCharsConsumed(segment);
+}
+
+
+MinusSignMatcher::MinusSignMatcher(const DecimalFormatSymbols& dfs, bool allowTrailing)
+ : SymbolMatcher(dfs.getConstSymbol(DecimalFormatSymbols::kMinusSignSymbol), unisets::MINUS_SIGN),
+ fAllowTrailing(allowTrailing) {
+}
+
+bool MinusSignMatcher::isDisabled(const ParsedNumber& result) const {
+ return !fAllowTrailing && result.seenNumber();
+}
+
+void MinusSignMatcher::accept(StringSegment& segment, ParsedNumber& result) const {
+ result.flags |= FLAG_NEGATIVE;
+ result.setCharsConsumed(segment);
+}
+
+
+NanMatcher::NanMatcher(const DecimalFormatSymbols& dfs)
+ : SymbolMatcher(dfs.getConstSymbol(DecimalFormatSymbols::kNaNSymbol), unisets::EMPTY) {
+}
+
+bool NanMatcher::isDisabled(const ParsedNumber& result) const {
+ return result.seenNumber();
+}
+
+void NanMatcher::accept(StringSegment& segment, ParsedNumber& result) const {
+ result.flags |= FLAG_NAN;
+ result.setCharsConsumed(segment);
+}
+
+
+PaddingMatcher::PaddingMatcher(const UnicodeString& padString)
+ : SymbolMatcher(padString, unisets::EMPTY) {}
+
+bool PaddingMatcher::isFlexible() const {
+ return true;
+}
+
+bool PaddingMatcher::isDisabled(const ParsedNumber&) const {
+ return false;
+}
+
+void PaddingMatcher::accept(StringSegment&, ParsedNumber&) const {
+ // No-op
+}
+
+
+PercentMatcher::PercentMatcher(const DecimalFormatSymbols& dfs)
+ : SymbolMatcher(dfs.getConstSymbol(DecimalFormatSymbols::kPercentSymbol), unisets::PERCENT_SIGN) {
+}
+
+bool PercentMatcher::isDisabled(const ParsedNumber& result) const {
+ return 0 != (result.flags & FLAG_PERCENT);
+}
+
+void PercentMatcher::accept(StringSegment& segment, ParsedNumber& result) const {
+ result.flags |= FLAG_PERCENT;
+ result.setCharsConsumed(segment);
+}
+
+
+PermilleMatcher::PermilleMatcher(const DecimalFormatSymbols& dfs)
+ : SymbolMatcher(dfs.getConstSymbol(DecimalFormatSymbols::kPerMillSymbol), unisets::PERMILLE_SIGN) {
+}
+
+bool PermilleMatcher::isDisabled(const ParsedNumber& result) const {
+ return 0 != (result.flags & FLAG_PERMILLE);
+}
+
+void PermilleMatcher::accept(StringSegment& segment, ParsedNumber& result) const {
+ result.flags |= FLAG_PERMILLE;
+ result.setCharsConsumed(segment);
+}
+
+
+PlusSignMatcher::PlusSignMatcher(const DecimalFormatSymbols& dfs, bool allowTrailing)
+ : SymbolMatcher(dfs.getConstSymbol(DecimalFormatSymbols::kPlusSignSymbol), unisets::PLUS_SIGN),
+ fAllowTrailing(allowTrailing) {
+}
+
+bool PlusSignMatcher::isDisabled(const ParsedNumber& result) const {
+ return !fAllowTrailing && result.seenNumber();
+}
+
+void PlusSignMatcher::accept(StringSegment& segment, ParsedNumber& result) const {
+ result.setCharsConsumed(segment);
+}
+
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/numparse_symbols.h b/Build/source/libs/icu/icu-src/source/i18n/numparse_symbols.h
new file mode 100644
index 00000000000..8912ee95b0d
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/numparse_symbols.h
@@ -0,0 +1,173 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+#ifndef __NUMPARSE_SYMBOLS_H__
+#define __NUMPARSE_SYMBOLS_H__
+
+#include "numparse_types.h"
+#include "unicode/uniset.h"
+#include "static_unicode_sets.h"
+
+U_NAMESPACE_BEGIN namespace numparse {
+namespace impl {
+
+
+/**
+ * A base class for many matchers that performs a simple match against a UnicodeString and/or UnicodeSet.
+ *
+ * @author sffc
+ */
+// Exported as U_I18N_API for tests
+class U_I18N_API SymbolMatcher : public NumberParseMatcher, public UMemory {
+ public:
+ SymbolMatcher() = default; // WARNING: Leaves the object in an unusable state
+
+ const UnicodeSet* getSet() const;
+
+ bool match(StringSegment& segment, ParsedNumber& result, UErrorCode& status) const override;
+
+ bool smokeTest(const StringSegment& segment) const override;
+
+ UnicodeString toString() const override;
+
+ virtual bool isDisabled(const ParsedNumber& result) const = 0;
+
+ virtual void accept(StringSegment& segment, ParsedNumber& result) const = 0;
+
+ protected:
+ UnicodeString fString;
+ const UnicodeSet* fUniSet; // a reference from numparse_unisets.h; never owned
+
+ SymbolMatcher(const UnicodeString& symbolString, unisets::Key key);
+};
+
+
+// Exported as U_I18N_API for tests
+class U_I18N_API IgnorablesMatcher : public SymbolMatcher {
+ public:
+ IgnorablesMatcher() = default; // WARNING: Leaves the object in an unusable state
+
+ IgnorablesMatcher(unisets::Key key);
+
+ bool isFlexible() const override;
+
+ UnicodeString toString() const override;
+
+ protected:
+ bool isDisabled(const ParsedNumber& result) const override;
+
+ void accept(StringSegment& segment, ParsedNumber& result) const override;
+};
+
+
+class InfinityMatcher : public SymbolMatcher {
+ public:
+ InfinityMatcher() = default; // WARNING: Leaves the object in an unusable state
+
+ InfinityMatcher(const DecimalFormatSymbols& dfs);
+
+ protected:
+ bool isDisabled(const ParsedNumber& result) const override;
+
+ void accept(StringSegment& segment, ParsedNumber& result) const override;
+};
+
+
+// Exported as U_I18N_API for tests
+class U_I18N_API MinusSignMatcher : public SymbolMatcher {
+ public:
+ MinusSignMatcher() = default; // WARNING: Leaves the object in an unusable state
+
+ MinusSignMatcher(const DecimalFormatSymbols& dfs, bool allowTrailing);
+
+ protected:
+ bool isDisabled(const ParsedNumber& result) const override;
+
+ void accept(StringSegment& segment, ParsedNumber& result) const override;
+
+ private:
+ bool fAllowTrailing;
+};
+
+
+class NanMatcher : public SymbolMatcher {
+ public:
+ NanMatcher() = default; // WARNING: Leaves the object in an unusable state
+
+ NanMatcher(const DecimalFormatSymbols& dfs);
+
+ protected:
+ bool isDisabled(const ParsedNumber& result) const override;
+
+ void accept(StringSegment& segment, ParsedNumber& result) const override;
+};
+
+
+class PaddingMatcher : public SymbolMatcher {
+ public:
+ PaddingMatcher() = default; // WARNING: Leaves the object in an unusable state
+
+ PaddingMatcher(const UnicodeString& padString);
+
+ bool isFlexible() const override;
+
+ protected:
+ bool isDisabled(const ParsedNumber& result) const override;
+
+ void accept(StringSegment& segment, ParsedNumber& result) const override;
+};
+
+
+// Exported as U_I18N_API for tests
+class U_I18N_API PercentMatcher : public SymbolMatcher {
+ public:
+ PercentMatcher() = default; // WARNING: Leaves the object in an unusable state
+
+ PercentMatcher(const DecimalFormatSymbols& dfs);
+
+ protected:
+ bool isDisabled(const ParsedNumber& result) const override;
+
+ void accept(StringSegment& segment, ParsedNumber& result) const override;
+};
+
+// Exported as U_I18N_API for tests
+class U_I18N_API PermilleMatcher : public SymbolMatcher {
+ public:
+ PermilleMatcher() = default; // WARNING: Leaves the object in an unusable state
+
+ PermilleMatcher(const DecimalFormatSymbols& dfs);
+
+ protected:
+ bool isDisabled(const ParsedNumber& result) const override;
+
+ void accept(StringSegment& segment, ParsedNumber& result) const override;
+};
+
+
+// Exported as U_I18N_API for tests
+class U_I18N_API PlusSignMatcher : public SymbolMatcher {
+ public:
+ PlusSignMatcher() = default; // WARNING: Leaves the object in an unusable state
+
+ PlusSignMatcher(const DecimalFormatSymbols& dfs, bool allowTrailing);
+
+ protected:
+ bool isDisabled(const ParsedNumber& result) const override;
+
+ void accept(StringSegment& segment, ParsedNumber& result) const override;
+
+ private:
+ bool fAllowTrailing;
+};
+
+
+} // namespace impl
+} // namespace numparse
+U_NAMESPACE_END
+
+#endif //__NUMPARSE_SYMBOLS_H__
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/numparse_types.h b/Build/source/libs/icu/icu-src/source/i18n/numparse_types.h
new file mode 100644
index 00000000000..ab591eaba83
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/numparse_types.h
@@ -0,0 +1,377 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+#ifndef __NUMPARSE_TYPES_H__
+#define __NUMPARSE_TYPES_H__
+
+#include "unicode/uobject.h"
+#include "number_decimalquantity.h"
+
+U_NAMESPACE_BEGIN namespace numparse {
+namespace impl {
+
+// Forward-declarations
+class StringSegment;
+class ParsedNumber;
+
+typedef int32_t result_flags_t;
+typedef int32_t parse_flags_t;
+
+/** Flags for the type result_flags_t */
+enum ResultFlags {
+ FLAG_NEGATIVE = 0x0001,
+ FLAG_PERCENT = 0x0002,
+ FLAG_PERMILLE = 0x0004,
+ FLAG_HAS_EXPONENT = 0x0008,
+ // FLAG_HAS_DEFAULT_CURRENCY = 0x0010, // no longer used
+ FLAG_HAS_DECIMAL_SEPARATOR = 0x0020,
+ FLAG_NAN = 0x0040,
+ FLAG_INFINITY = 0x0080,
+ FLAG_FAIL = 0x0100,
+};
+
+/** Flags for the type parse_flags_t */
+enum ParseFlags {
+ PARSE_FLAG_IGNORE_CASE = 0x0001,
+ PARSE_FLAG_MONETARY_SEPARATORS = 0x0002,
+ PARSE_FLAG_STRICT_SEPARATORS = 0x0004,
+ PARSE_FLAG_STRICT_GROUPING_SIZE = 0x0008,
+ PARSE_FLAG_INTEGER_ONLY = 0x0010,
+ PARSE_FLAG_GROUPING_DISABLED = 0x0020,
+ // PARSE_FLAG_FRACTION_GROUPING_ENABLED = 0x0040, // see #10794
+ PARSE_FLAG_INCLUDE_UNPAIRED_AFFIXES = 0x0080,
+ PARSE_FLAG_USE_FULL_AFFIXES = 0x0100,
+ PARSE_FLAG_EXACT_AFFIX = 0x0200,
+ PARSE_FLAG_PLUS_SIGN_ALLOWED = 0x0400,
+ // PARSE_FLAG_OPTIMIZE = 0x0800, // no longer used
+ // PARSE_FLAG_FORCE_BIG_DECIMAL = 0x1000, // not used in ICU4C
+ PARSE_FLAG_NO_FOREIGN_CURRENCY = 0x2000,
+};
+
+
+// TODO: Is this class worthwhile?
+template<int32_t stackCapacity>
+class CompactUnicodeString {
+ public:
+ CompactUnicodeString() {
+ static_assert(stackCapacity > 0, "cannot have zero space on stack");
+ fBuffer[0] = 0;
+ }
+
+ CompactUnicodeString(const UnicodeString& text)
+ : fBuffer(text.length() + 1) {
+ memcpy(fBuffer.getAlias(), text.getBuffer(), sizeof(UChar) * text.length());
+ fBuffer[text.length()] = 0;
+ }
+
+ inline UnicodeString toAliasedUnicodeString() const {
+ return UnicodeString(TRUE, fBuffer.getAlias(), -1);
+ }
+
+ bool operator==(const CompactUnicodeString& other) const {
+ // Use the alias-only constructor and then call UnicodeString operator==
+ return toAliasedUnicodeString() == other.toAliasedUnicodeString();
+ }
+
+ private:
+ MaybeStackArray<UChar, stackCapacity> fBuffer;
+};
+
+
+/**
+ * Struct-like class to hold the results of a parsing routine.
+ *
+ * @author sffc
+ */
+// Exported as U_I18N_API for tests
+class U_I18N_API ParsedNumber {
+ public:
+
+ /**
+ * The numerical value that was parsed.
+ */
+ ::icu::number::impl::DecimalQuantity quantity;
+
+ /**
+ * The index of the last char consumed during parsing. If parsing started at index 0, this is equal
+ * to the number of chars consumed. This is NOT necessarily the same as the StringSegment offset;
+ * "weak" chars, like whitespace, change the offset, but the charsConsumed is not touched until a
+ * "strong" char is encountered.
+ */
+ int32_t charEnd;
+
+ /**
+ * Boolean flags (see constants above).
+ */
+ result_flags_t flags;
+
+ /**
+ * The pattern string corresponding to the prefix that got consumed.
+ */
+ UnicodeString prefix;
+
+ /**
+ * The pattern string corresponding to the suffix that got consumed.
+ */
+ UnicodeString suffix;
+
+ /**
+ * The currency that got consumed.
+ */
+ UChar currencyCode[4];
+
+ ParsedNumber();
+
+ ParsedNumber(const ParsedNumber& other) = default;
+
+ ParsedNumber& operator=(const ParsedNumber& other) = default;
+
+ void clear();
+
+ /**
+ * Call this method to register that a "strong" char was consumed. This should be done after calling
+ * {@link StringSegment#setOffset} or {@link StringSegment#adjustOffset} except when the char is
+ * "weak", like whitespace.
+ *
+ * <p>
+ * <strong>What is a strong versus weak char?</strong> The behavior of number parsing is to "stop"
+ * after reading the number, even if there is other content following the number. For example, after
+ * parsing the string "123 " (123 followed by a space), the cursor should be set to 3, not 4, even
+ * though there are matchers that accept whitespace. In this example, the digits are strong, whereas
+ * the whitespace is weak. Grouping separators are weak, whereas decimal separators are strong. Most
+ * other chars are strong.
+ *
+ * @param segment
+ * The current StringSegment, usually immediately following a call to setOffset.
+ */
+ void setCharsConsumed(const StringSegment& segment);
+
+ /** Apply certain number-related flags to the DecimalQuantity. */
+ void postProcess();
+
+ /**
+ * Returns whether this the parse was successful. To be successful, at least one char must have been
+ * consumed, and the failure flag must not be set.
+ */
+ bool success() const;
+
+ bool seenNumber() const;
+
+ double getDouble() const;
+
+ void populateFormattable(Formattable& output, parse_flags_t parseFlags) const;
+
+ bool isBetterThan(const ParsedNumber& other);
+};
+
+
+/**
+ * A mutable class allowing for a String with a variable offset and length. The charAt, length, and
+ * subSequence methods all operate relative to the fixed offset into the String.
+ *
+ * @author sffc
+ */
+// Exported as U_I18N_API for tests
+class U_I18N_API StringSegment : public UMemory {
+ public:
+ StringSegment(const UnicodeString& str, bool ignoreCase);
+
+ int32_t getOffset() const;
+
+ void setOffset(int32_t start);
+
+ /**
+ * Equivalent to <code>setOffset(getOffset()+delta)</code>.
+ *
+ * <p>
+ * This method is usually called by a Matcher to register that a char was consumed. If the char is
+ * strong (it usually is, except for things like whitespace), follow this with a call to
+ * {@link ParsedNumber#setCharsConsumed}. For more information on strong chars, see that method.
+ */
+ void adjustOffset(int32_t delta);
+
+ /**
+ * Adjusts the offset by the width of the current code point, either 1 or 2 chars.
+ */
+ void adjustOffsetByCodePoint();
+
+ void setLength(int32_t length);
+
+ void resetLength();
+
+ int32_t length() const;
+
+ char16_t charAt(int32_t index) const;
+
+ UChar32 codePointAt(int32_t index) const;
+
+ UnicodeString toUnicodeString() const;
+
+ const UnicodeString toTempUnicodeString() const;
+
+ /**
+ * Returns the first code point in the string segment, or -1 if the string starts with an invalid
+ * code point.
+ *
+ * <p>
+ * <strong>Important:</strong> Most of the time, you should use {@link #matches}, which handles case
+ * folding logic, instead of this method.
+ */
+ UChar32 getCodePoint() const;
+
+ /**
+ * Returns true if the first code point of this StringSegment equals the given code point.
+ *
+ * <p>
+ * This method will perform case folding if case folding is enabled for the parser.
+ */
+ bool startsWith(UChar32 otherCp) const;
+
+ /**
+ * Returns true if the first code point of this StringSegment is in the given UnicodeSet.
+ */
+ bool startsWith(const UnicodeSet& uniset) const;
+
+ /**
+ * Returns true if there is at least one code point of overlap between this StringSegment and the
+ * given UnicodeString.
+ */
+ bool startsWith(const UnicodeString& other) const;
+
+ /**
+ * Returns the length of the prefix shared by this StringSegment and the given CharSequence. For
+ * example, if this string segment is "aab", and the char sequence is "aac", this method returns 2,
+ * since the first 2 characters are the same.
+ *
+ * <p>
+ * This method only returns offsets along code point boundaries.
+ *
+ * <p>
+ * This method will perform case folding if case folding was enabled in the constructor.
+ *
+ * <p>
+ * IMPORTANT: The given UnicodeString must not be empty! It is the caller's responsibility to check.
+ */
+ int32_t getCommonPrefixLength(const UnicodeString& other);
+
+ /**
+ * Like {@link #getCommonPrefixLength}, but never performs case folding, even if case folding is
+ * enabled for the parser.
+ */
+ int32_t getCaseSensitivePrefixLength(const UnicodeString& other);
+
+ bool operator==(const UnicodeString& other) const;
+
+ private:
+ const UnicodeString fStr;
+ int32_t fStart;
+ int32_t fEnd;
+ bool fFoldCase;
+
+ int32_t getPrefixLengthInternal(const UnicodeString& other, bool foldCase);
+
+ static bool codePointsEqual(UChar32 cp1, UChar32 cp2, bool foldCase);
+};
+
+
+/**
+ * The core interface implemented by all matchers used for number parsing.
+ *
+ * Given a string, there should NOT be more than one way to consume the string with the same matcher
+ * applied multiple times. If there is, the non-greedy parsing algorithm will be unhappy and may enter an
+ * exponential-time loop. For example, consider the "A Matcher" that accepts "any number of As". Given
+ * the string "AAAA", there are 2^N = 8 ways to apply the A Matcher to this string: you could have the A
+ * Matcher apply 4 times to each character; you could have it apply just once to all the characters; you
+ * could have it apply to the first 2 characters and the second 2 characters; and so on. A better version
+ * of the "A Matcher" would be for it to accept exactly one A, and allow the algorithm to run it
+ * repeatedly to consume a string of multiple As. The A Matcher can implement the Flexible interface
+ * below to signal that it can be applied multiple times in a row.
+ *
+ * @author sffc
+ */
+// Exported as U_I18N_API for tests
+class U_I18N_API NumberParseMatcher {
+ public:
+ virtual ~NumberParseMatcher();
+
+ /**
+ * Matchers can override this method to return true to indicate that they are optional and can be run
+ * repeatedly. Used by SeriesMatcher, primarily in the context of IgnorablesMatcher.
+ */
+ virtual bool isFlexible() const {
+ return false;
+ }
+
+ /**
+ * Runs this matcher starting at the beginning of the given StringSegment. If this matcher finds
+ * something interesting in the StringSegment, it should update the offset of the StringSegment
+ * corresponding to how many chars were matched.
+ *
+ * This method is thread-safe.
+ *
+ * @param segment
+ * The StringSegment to match against. Matches always start at the beginning of the
+ * segment. The segment is guaranteed to contain at least one char.
+ * @param result
+ * The data structure to store results if the match succeeds.
+ * @return Whether this matcher thinks there may be more interesting chars beyond the end of the
+ * string segment.
+ */
+ virtual bool match(StringSegment& segment, ParsedNumber& result, UErrorCode& status) const = 0;
+
+ /**
+ * Performs a fast "smoke check" for whether or not this matcher could possibly match against the
+ * given string segment. The test should be as fast as possible but also as restrictive as possible.
+ * For example, matchers can maintain a UnicodeSet of all code points that count possibly start a
+ * match. Matchers should use the {@link StringSegment#startsWith} method in order to correctly
+ * handle case folding.
+ *
+ * @param segment
+ * The segment to check against.
+ * @return true if the matcher might be able to match against this segment; false if it definitely
+ * will not be able to match.
+ */
+ virtual bool smokeTest(const StringSegment& segment) const = 0;
+
+ /**
+ * Method called at the end of a parse, after all matchers have failed to consume any more chars.
+ * Allows a matcher to make final modifications to the result given the knowledge that no more
+ * matches are possible.
+ *
+ * @param result
+ * The data structure to store results.
+ */
+ virtual void postProcess(ParsedNumber&) const {
+ // Default implementation: no-op
+ };
+
+ // String for debugging
+ virtual UnicodeString toString() const = 0;
+
+ protected:
+ // No construction except by subclasses!
+ NumberParseMatcher() = default;
+};
+
+
+/**
+ * Interface for use in arguments.
+ */
+// Exported as U_I18N_API for tests
+class U_I18N_API MutableMatcherCollection {
+ public:
+ virtual ~MutableMatcherCollection() = default;
+
+ virtual void addMatcher(NumberParseMatcher& matcher) = 0;
+};
+
+
+} // namespace impl
+} // namespace numparse
+U_NAMESPACE_END
+
+#endif //__NUMPARSE_TYPES_H__
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/numparse_utils.h b/Build/source/libs/icu/icu-src/source/i18n/numparse_utils.h
new file mode 100644
index 00000000000..162954bae09
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/numparse_utils.h
@@ -0,0 +1,43 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+#ifndef __NUMPARSE_UTILS_H__
+#define __NUMPARSE_UTILS_H__
+
+#include "numparse_types.h"
+#include "unicode/uniset.h"
+
+U_NAMESPACE_BEGIN namespace numparse {
+namespace impl {
+namespace utils {
+
+
+inline static void putLeadCodePoints(const UnicodeSet* input, UnicodeSet* output) {
+ for (int32_t i = 0; i < input->getRangeCount(); i++) {
+ output->add(input->getRangeStart(i), input->getRangeEnd(i));
+ }
+ // TODO: ANDY: How to iterate over the strings in ICU4C UnicodeSet?
+}
+
+inline static void putLeadCodePoint(const UnicodeString& input, UnicodeSet* output) {
+ if (!input.isEmpty()) {
+ output->add(input.char32At(0));
+ }
+}
+
+inline static void copyCurrencyCode(UChar* dest, const UChar* src) {
+ uprv_memcpy(dest, src, sizeof(UChar) * 3);
+ dest[3] = 0;
+}
+
+
+} // namespace utils
+} // namespace impl
+} // namespace numparse
+U_NAMESPACE_END
+
+#endif //__NUMPARSE_UTILS_H__
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/numparse_validators.cpp b/Build/source/libs/icu/icu-src/source/i18n/numparse_validators.cpp
new file mode 100644
index 00000000000..12d3465c4ef
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/numparse_validators.cpp
@@ -0,0 +1,85 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+// Allow implicit conversion from char16_t* to UnicodeString for this file:
+// Helpful in toString methods and elsewhere.
+#define UNISTR_FROM_STRING_EXPLICIT
+
+#include "numparse_types.h"
+#include "numparse_validators.h"
+#include "static_unicode_sets.h"
+
+using namespace icu;
+using namespace icu::numparse;
+using namespace icu::numparse::impl;
+
+
+void RequireAffixValidator::postProcess(ParsedNumber& result) const {
+ if (result.prefix.isBogus() || result.suffix.isBogus()) {
+ // We saw a prefix or a suffix but not both. Fail the parse.
+ result.flags |= FLAG_FAIL;
+ }
+}
+
+UnicodeString RequireAffixValidator::toString() const {
+ return u"<ReqAffix>";
+}
+
+
+void RequireCurrencyValidator::postProcess(ParsedNumber& result) const {
+ if (result.currencyCode[0] == 0) {
+ result.flags |= FLAG_FAIL;
+ }
+}
+
+UnicodeString RequireCurrencyValidator::toString() const {
+ return u"<ReqCurrency>";
+}
+
+
+RequireDecimalSeparatorValidator::RequireDecimalSeparatorValidator(bool patternHasDecimalSeparator)
+ : fPatternHasDecimalSeparator(patternHasDecimalSeparator) {
+}
+
+void RequireDecimalSeparatorValidator::postProcess(ParsedNumber& result) const {
+ bool parseHasDecimalSeparator = 0 != (result.flags & FLAG_HAS_DECIMAL_SEPARATOR);
+ if (parseHasDecimalSeparator != fPatternHasDecimalSeparator) {
+ result.flags |= FLAG_FAIL;
+ }
+}
+
+UnicodeString RequireDecimalSeparatorValidator::toString() const {
+ return u"<ReqDecimal>";
+}
+
+
+void RequireNumberValidator::postProcess(ParsedNumber& result) const {
+ // Require that a number is matched.
+ if (!result.seenNumber()) {
+ result.flags |= FLAG_FAIL;
+ }
+}
+
+UnicodeString RequireNumberValidator::toString() const {
+ return u"<ReqNumber>";
+}
+
+MultiplierParseHandler::MultiplierParseHandler(::icu::number::Scale multiplier)
+ : fMultiplier(std::move(multiplier)) {}
+
+void MultiplierParseHandler::postProcess(ParsedNumber& result) const {
+ if (!result.quantity.bogus) {
+ fMultiplier.applyReciprocalTo(result.quantity);
+ // NOTE: It is okay if the multiplier was negative.
+ }
+}
+
+UnicodeString MultiplierParseHandler::toString() const {
+ return u"<Scale>";
+}
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/numparse_validators.h b/Build/source/libs/icu/icu-src/source/i18n/numparse_validators.h
new file mode 100644
index 00000000000..5d43b779d0b
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/numparse_validators.h
@@ -0,0 +1,95 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+#ifndef __SOURCE_NUMPARSE_VALIDATORS_H__
+#define __SOURCE_NUMPARSE_VALIDATORS_H__
+
+#include "numparse_types.h"
+#include "static_unicode_sets.h"
+
+U_NAMESPACE_BEGIN namespace numparse {
+namespace impl {
+
+
+class ValidationMatcher : public NumberParseMatcher {
+ public:
+ bool match(StringSegment&, ParsedNumber&, UErrorCode&) const U_OVERRIDE {
+ // No-op
+ return false;
+ }
+
+ bool smokeTest(const StringSegment&) const U_OVERRIDE {
+ // No-op
+ return false;
+ }
+
+ void postProcess(ParsedNumber& result) const U_OVERRIDE = 0;
+};
+
+
+class RequireAffixValidator : public ValidationMatcher, public UMemory {
+ public:
+ void postProcess(ParsedNumber& result) const U_OVERRIDE;
+
+ UnicodeString toString() const U_OVERRIDE;
+};
+
+
+class RequireCurrencyValidator : public ValidationMatcher, public UMemory {
+ public:
+ void postProcess(ParsedNumber& result) const U_OVERRIDE;
+
+ UnicodeString toString() const U_OVERRIDE;
+};
+
+
+class RequireDecimalSeparatorValidator : public ValidationMatcher, public UMemory {
+ public:
+ RequireDecimalSeparatorValidator() = default; // leaves instance in valid but undefined state
+
+ RequireDecimalSeparatorValidator(bool patternHasDecimalSeparator);
+
+ void postProcess(ParsedNumber& result) const U_OVERRIDE;
+
+ UnicodeString toString() const U_OVERRIDE;
+
+ private:
+ bool fPatternHasDecimalSeparator;
+};
+
+
+class RequireNumberValidator : public ValidationMatcher, public UMemory {
+ public:
+ void postProcess(ParsedNumber& result) const U_OVERRIDE;
+
+ UnicodeString toString() const U_OVERRIDE;
+};
+
+
+/**
+ * Wraps a {@link Multiplier} for use in the number parsing pipeline.
+ */
+class MultiplierParseHandler : public ValidationMatcher, public UMemory {
+ public:
+ MultiplierParseHandler() = default; // leaves instance in valid but undefined state
+
+ MultiplierParseHandler(::icu::number::Scale multiplier);
+
+ void postProcess(ParsedNumber& result) const U_OVERRIDE;
+
+ UnicodeString toString() const U_OVERRIDE;
+
+ private:
+ ::icu::number::Scale fMultiplier;
+};
+
+
+} // namespace impl
+} // namespace numparse
+U_NAMESPACE_END
+
+#endif //__SOURCE_NUMPARSE_VALIDATORS_H__
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/numrange_fluent.cpp b/Build/source/libs/icu/icu-src/source/i18n/numrange_fluent.cpp
new file mode 100644
index 00000000000..12b006c8ad5
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/numrange_fluent.cpp
@@ -0,0 +1,472 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+// Allow implicit conversion from char16_t* to UnicodeString for this file:
+// Helpful in toString methods and elsewhere.
+#define UNISTR_FROM_STRING_EXPLICIT
+
+#include "numrange_impl.h"
+#include "util.h"
+#include "number_utypes.h"
+
+using namespace icu;
+using namespace icu::number;
+using namespace icu::number::impl;
+
+
+// This function needs to be declared in this namespace so it can be friended.
+// NOTE: In Java, this logic is handled in the resolve() function.
+void icu::number::impl::touchRangeLocales(RangeMacroProps& macros) {
+ macros.formatter1.fMacros.locale = macros.locale;
+ macros.formatter2.fMacros.locale = macros.locale;
+}
+
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::numberFormatterBoth(const UnlocalizedNumberFormatter& formatter) const& {
+ Derived copy(*this);
+ copy.fMacros.formatter1 = formatter;
+ copy.fMacros.singleFormatter = true;
+ touchRangeLocales(copy.fMacros);
+ return copy;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::numberFormatterBoth(const UnlocalizedNumberFormatter& formatter) && {
+ Derived move(std::move(*this));
+ move.fMacros.formatter1 = formatter;
+ move.fMacros.singleFormatter = true;
+ touchRangeLocales(move.fMacros);
+ return move;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::numberFormatterBoth(UnlocalizedNumberFormatter&& formatter) const& {
+ Derived copy(*this);
+ copy.fMacros.formatter1 = std::move(formatter);
+ copy.fMacros.singleFormatter = true;
+ touchRangeLocales(copy.fMacros);
+ return copy;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::numberFormatterBoth(UnlocalizedNumberFormatter&& formatter) && {
+ Derived move(std::move(*this));
+ move.fMacros.formatter1 = std::move(formatter);
+ move.fMacros.singleFormatter = true;
+ touchRangeLocales(move.fMacros);
+ return move;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::numberFormatterFirst(const UnlocalizedNumberFormatter& formatter) const& {
+ Derived copy(*this);
+ copy.fMacros.formatter1 = formatter;
+ copy.fMacros.singleFormatter = false;
+ touchRangeLocales(copy.fMacros);
+ return copy;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::numberFormatterFirst(const UnlocalizedNumberFormatter& formatter) && {
+ Derived move(std::move(*this));
+ move.fMacros.formatter1 = formatter;
+ move.fMacros.singleFormatter = false;
+ touchRangeLocales(move.fMacros);
+ return move;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::numberFormatterFirst(UnlocalizedNumberFormatter&& formatter) const& {
+ Derived copy(*this);
+ copy.fMacros.formatter1 = std::move(formatter);
+ copy.fMacros.singleFormatter = false;
+ touchRangeLocales(copy.fMacros);
+ return copy;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::numberFormatterFirst(UnlocalizedNumberFormatter&& formatter) && {
+ Derived move(std::move(*this));
+ move.fMacros.formatter1 = std::move(formatter);
+ move.fMacros.singleFormatter = false;
+ touchRangeLocales(move.fMacros);
+ return move;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::numberFormatterSecond(const UnlocalizedNumberFormatter& formatter) const& {
+ Derived copy(*this);
+ copy.fMacros.formatter2 = formatter;
+ copy.fMacros.singleFormatter = false;
+ touchRangeLocales(copy.fMacros);
+ return copy;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::numberFormatterSecond(const UnlocalizedNumberFormatter& formatter) && {
+ Derived move(std::move(*this));
+ move.fMacros.formatter2 = formatter;
+ move.fMacros.singleFormatter = false;
+ touchRangeLocales(move.fMacros);
+ return move;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::numberFormatterSecond(UnlocalizedNumberFormatter&& formatter) const& {
+ Derived copy(*this);
+ copy.fMacros.formatter2 = std::move(formatter);
+ copy.fMacros.singleFormatter = false;
+ touchRangeLocales(copy.fMacros);
+ return copy;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::numberFormatterSecond(UnlocalizedNumberFormatter&& formatter) && {
+ Derived move(std::move(*this));
+ move.fMacros.formatter2 = std::move(formatter);
+ move.fMacros.singleFormatter = false;
+ touchRangeLocales(move.fMacros);
+ return move;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::collapse(UNumberRangeCollapse collapse) const& {
+ Derived copy(*this);
+ copy.fMacros.collapse = collapse;
+ return copy;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::collapse(UNumberRangeCollapse collapse) && {
+ Derived move(std::move(*this));
+ move.fMacros.collapse = collapse;
+ return move;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::identityFallback(UNumberRangeIdentityFallback identityFallback) const& {
+ Derived copy(*this);
+ copy.fMacros.identityFallback = identityFallback;
+ return copy;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::identityFallback(UNumberRangeIdentityFallback identityFallback) && {
+ Derived move(std::move(*this));
+ move.fMacros.identityFallback = identityFallback;
+ return move;
+}
+
+// Declare all classes that implement NumberRangeFormatterSettings
+// See https://stackoverflow.com/a/495056/1407170
+template
+class icu::number::NumberRangeFormatterSettings<icu::number::UnlocalizedNumberRangeFormatter>;
+template
+class icu::number::NumberRangeFormatterSettings<icu::number::LocalizedNumberRangeFormatter>;
+
+
+UnlocalizedNumberRangeFormatter NumberRangeFormatter::with() {
+ UnlocalizedNumberRangeFormatter result;
+ return result;
+}
+
+LocalizedNumberRangeFormatter NumberRangeFormatter::withLocale(const Locale& locale) {
+ return with().locale(locale);
+}
+
+
+template<typename T> using NFS = NumberRangeFormatterSettings<T>;
+using LNF = LocalizedNumberRangeFormatter;
+using UNF = UnlocalizedNumberRangeFormatter;
+
+UnlocalizedNumberRangeFormatter::UnlocalizedNumberRangeFormatter(const UNF& other)
+ : UNF(static_cast<const NFS<UNF>&>(other)) {}
+
+UnlocalizedNumberRangeFormatter::UnlocalizedNumberRangeFormatter(const NFS<UNF>& other)
+ : NFS<UNF>(other) {
+ // No additional fields to assign
+}
+
+// Make default copy constructor call the NumberRangeFormatterSettings copy constructor.
+UnlocalizedNumberRangeFormatter::UnlocalizedNumberRangeFormatter(UNF&& src) U_NOEXCEPT
+ : UNF(static_cast<NFS<UNF>&&>(src)) {}
+
+UnlocalizedNumberRangeFormatter::UnlocalizedNumberRangeFormatter(NFS<UNF>&& src) U_NOEXCEPT
+ : NFS<UNF>(std::move(src)) {
+ // No additional fields to assign
+}
+
+UnlocalizedNumberRangeFormatter& UnlocalizedNumberRangeFormatter::operator=(const UNF& other) {
+ NFS<UNF>::operator=(static_cast<const NFS<UNF>&>(other));
+ // No additional fields to assign
+ return *this;
+}
+
+UnlocalizedNumberRangeFormatter& UnlocalizedNumberRangeFormatter::operator=(UNF&& src) U_NOEXCEPT {
+ NFS<UNF>::operator=(static_cast<NFS<UNF>&&>(src));
+ // No additional fields to assign
+ return *this;
+}
+
+// Make default copy constructor call the NumberRangeFormatterSettings copy constructor.
+LocalizedNumberRangeFormatter::LocalizedNumberRangeFormatter(const LNF& other)
+ : LNF(static_cast<const NFS<LNF>&>(other)) {}
+
+LocalizedNumberRangeFormatter::LocalizedNumberRangeFormatter(const NFS<LNF>& other)
+ : NFS<LNF>(other) {
+ // No additional fields to assign
+}
+
+LocalizedNumberRangeFormatter::LocalizedNumberRangeFormatter(LocalizedNumberRangeFormatter&& src) U_NOEXCEPT
+ : LNF(static_cast<NFS<LNF>&&>(src)) {}
+
+LocalizedNumberRangeFormatter::LocalizedNumberRangeFormatter(NFS<LNF>&& src) U_NOEXCEPT
+ : NFS<LNF>(std::move(src)) {
+ // Steal the compiled formatter
+ LNF&& _src = static_cast<LNF&&>(src);
+ auto* stolen = _src.fAtomicFormatter.exchange(nullptr);
+ delete fAtomicFormatter.exchange(stolen);
+}
+
+LocalizedNumberRangeFormatter& LocalizedNumberRangeFormatter::operator=(const LNF& other) {
+ NFS<LNF>::operator=(static_cast<const NFS<LNF>&>(other));
+ // Do not steal; just clear
+ delete fAtomicFormatter.exchange(nullptr);
+ return *this;
+}
+
+LocalizedNumberRangeFormatter& LocalizedNumberRangeFormatter::operator=(LNF&& src) U_NOEXCEPT {
+ NFS<LNF>::operator=(static_cast<NFS<LNF>&&>(src));
+ // Steal the compiled formatter
+ auto* stolen = src.fAtomicFormatter.exchange(nullptr);
+ delete fAtomicFormatter.exchange(stolen);
+ return *this;
+}
+
+
+LocalizedNumberRangeFormatter::~LocalizedNumberRangeFormatter() {
+ delete fAtomicFormatter.exchange(nullptr);
+}
+
+LocalizedNumberRangeFormatter::LocalizedNumberRangeFormatter(const RangeMacroProps& macros, const Locale& locale) {
+ fMacros = macros;
+ fMacros.locale = locale;
+ touchRangeLocales(fMacros);
+}
+
+LocalizedNumberRangeFormatter::LocalizedNumberRangeFormatter(RangeMacroProps&& macros, const Locale& locale) {
+ fMacros = std::move(macros);
+ fMacros.locale = locale;
+ touchRangeLocales(fMacros);
+}
+
+LocalizedNumberRangeFormatter UnlocalizedNumberRangeFormatter::locale(const Locale& locale) const& {
+ return LocalizedNumberRangeFormatter(fMacros, locale);
+}
+
+LocalizedNumberRangeFormatter UnlocalizedNumberRangeFormatter::locale(const Locale& locale)&& {
+ return LocalizedNumberRangeFormatter(std::move(fMacros), locale);
+}
+
+
+FormattedNumberRange LocalizedNumberRangeFormatter::formatFormattableRange(
+ const Formattable& first, const Formattable& second, UErrorCode& status) const {
+ if (U_FAILURE(status)) {
+ return FormattedNumberRange(U_ILLEGAL_ARGUMENT_ERROR);
+ }
+
+ auto results = new UFormattedNumberRangeData();
+ if (results == nullptr) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return FormattedNumberRange(status);
+ }
+
+ first.populateDecimalQuantity(results->quantity1, status);
+ if (U_FAILURE(status)) {
+ return FormattedNumberRange(status);
+ }
+
+ second.populateDecimalQuantity(results->quantity2, status);
+ if (U_FAILURE(status)) {
+ return FormattedNumberRange(status);
+ }
+
+ formatImpl(*results, first == second, status);
+
+ // Do not save the results object if we encountered a failure.
+ if (U_SUCCESS(status)) {
+ return FormattedNumberRange(results);
+ } else {
+ delete results;
+ return FormattedNumberRange(status);
+ }
+}
+
+void LocalizedNumberRangeFormatter::formatImpl(
+ UFormattedNumberRangeData& results, bool equalBeforeRounding, UErrorCode& status) const {
+ auto* impl = getFormatter(status);
+ if (U_FAILURE(status)) {
+ return;
+ }
+ if (impl == nullptr) {
+ status = U_INTERNAL_PROGRAM_ERROR;
+ return;
+ }
+ impl->format(results, equalBeforeRounding, status);
+}
+
+const impl::NumberRangeFormatterImpl*
+LocalizedNumberRangeFormatter::getFormatter(UErrorCode& status) const {
+ // TODO: Move this into umutex.h? (similar logic also in decimfmt.cpp)
+ // See ICU-20146
+
+ if (U_FAILURE(status)) {
+ return nullptr;
+ }
+
+ // First try to get the pre-computed formatter
+ auto* ptr = fAtomicFormatter.load();
+ if (ptr != nullptr) {
+ return ptr;
+ }
+
+ // Try computing the formatter on our own
+ auto* temp = new NumberRangeFormatterImpl(fMacros, status);
+ if (U_FAILURE(status)) {
+ return nullptr;
+ }
+ if (temp == nullptr) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return nullptr;
+ }
+
+ // Note: ptr starts as nullptr; during compare_exchange,
+ // it is set to what is actually stored in the atomic
+ // if another thread beat us to computing the formatter object.
+ auto* nonConstThis = const_cast<LocalizedNumberRangeFormatter*>(this);
+ if (!nonConstThis->fAtomicFormatter.compare_exchange_strong(ptr, temp)) {
+ // Another thread beat us to computing the formatter
+ delete temp;
+ return ptr;
+ } else {
+ // Our copy of the formatter got stored in the atomic
+ return temp;
+ }
+
+}
+
+
+FormattedNumberRange::FormattedNumberRange(FormattedNumberRange&& src) U_NOEXCEPT
+ : fResults(src.fResults), fErrorCode(src.fErrorCode) {
+ // Disown src.fResults to prevent double-deletion
+ src.fResults = nullptr;
+ src.fErrorCode = U_INVALID_STATE_ERROR;
+}
+
+FormattedNumberRange& FormattedNumberRange::operator=(FormattedNumberRange&& src) U_NOEXCEPT {
+ delete fResults;
+ fResults = src.fResults;
+ fErrorCode = src.fErrorCode;
+ // Disown src.fResults to prevent double-deletion
+ src.fResults = nullptr;
+ src.fErrorCode = U_INVALID_STATE_ERROR;
+ return *this;
+}
+
+UnicodeString FormattedNumberRange::toString(UErrorCode& status) const {
+ if (U_FAILURE(status)) {
+ return ICU_Utility::makeBogusString();
+ }
+ if (fResults == nullptr) {
+ status = fErrorCode;
+ return ICU_Utility::makeBogusString();
+ }
+ return fResults->string.toUnicodeString();
+}
+
+Appendable& FormattedNumberRange::appendTo(Appendable& appendable, UErrorCode& status) const {
+ if (U_FAILURE(status)) {
+ return appendable;
+ }
+ if (fResults == nullptr) {
+ status = fErrorCode;
+ return appendable;
+ }
+ appendable.appendString(fResults->string.chars(), fResults->string.length());
+ return appendable;
+}
+
+UBool FormattedNumberRange::nextFieldPosition(FieldPosition& fieldPosition, UErrorCode& status) const {
+ if (U_FAILURE(status)) {
+ return FALSE;
+ }
+ if (fResults == nullptr) {
+ status = fErrorCode;
+ return FALSE;
+ }
+ // NOTE: MSVC sometimes complains when implicitly converting between bool and UBool
+ return fResults->string.nextFieldPosition(fieldPosition, status) ? TRUE : FALSE;
+}
+
+void FormattedNumberRange::getAllFieldPositions(FieldPositionIterator& iterator, UErrorCode& status) const {
+ FieldPositionIteratorHandler fpih(&iterator, status);
+ getAllFieldPositionsImpl(fpih, status);
+}
+
+void FormattedNumberRange::getAllFieldPositionsImpl(
+ FieldPositionIteratorHandler& fpih, UErrorCode& status) const {
+ if (U_FAILURE(status)) {
+ return;
+ }
+ if (fResults == nullptr) {
+ status = fErrorCode;
+ return;
+ }
+ fResults->string.getAllFieldPositions(fpih, status);
+}
+
+UnicodeString FormattedNumberRange::getFirstDecimal(UErrorCode& status) const {
+ if (U_FAILURE(status)) {
+ return ICU_Utility::makeBogusString();
+ }
+ if (fResults == nullptr) {
+ status = fErrorCode;
+ return ICU_Utility::makeBogusString();
+ }
+ return fResults->quantity1.toScientificString();
+}
+
+UnicodeString FormattedNumberRange::getSecondDecimal(UErrorCode& status) const {
+ if (U_FAILURE(status)) {
+ return ICU_Utility::makeBogusString();
+ }
+ if (fResults == nullptr) {
+ status = fErrorCode;
+ return ICU_Utility::makeBogusString();
+ }
+ return fResults->quantity2.toScientificString();
+}
+
+UNumberRangeIdentityResult FormattedNumberRange::getIdentityResult(UErrorCode& status) const {
+ if (U_FAILURE(status)) {
+ return UNUM_IDENTITY_RESULT_NOT_EQUAL;
+ }
+ if (fResults == nullptr) {
+ status = fErrorCode;
+ return UNUM_IDENTITY_RESULT_NOT_EQUAL;
+ }
+ return fResults->identityResult;
+}
+
+FormattedNumberRange::~FormattedNumberRange() {
+ delete fResults;
+}
+
+
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/numrange_impl.cpp b/Build/source/libs/icu/icu-src/source/i18n/numrange_impl.cpp
new file mode 100644
index 00000000000..21365bfc59b
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/numrange_impl.cpp
@@ -0,0 +1,486 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+// Allow implicit conversion from char16_t* to UnicodeString for this file:
+// Helpful in toString methods and elsewhere.
+#define UNISTR_FROM_STRING_EXPLICIT
+
+#include "unicode/numberrangeformatter.h"
+#include "numrange_impl.h"
+#include "patternprops.h"
+#include "uresimp.h"
+#include "util.h"
+
+using namespace icu;
+using namespace icu::number;
+using namespace icu::number::impl;
+
+namespace {
+
+// Helper function for 2-dimensional switch statement
+constexpr int8_t identity2d(UNumberRangeIdentityFallback a, UNumberRangeIdentityResult b) {
+ return static_cast<int8_t>(a) | (static_cast<int8_t>(b) << 4);
+}
+
+
+struct NumberRangeData {
+ SimpleFormatter rangePattern;
+ SimpleFormatter approximatelyPattern;
+};
+
+class NumberRangeDataSink : public ResourceSink {
+ public:
+ NumberRangeDataSink(NumberRangeData& data) : fData(data) {}
+
+ void put(const char* key, ResourceValue& value, UBool /*noFallback*/, UErrorCode& status) U_OVERRIDE {
+ ResourceTable miscTable = value.getTable(status);
+ if (U_FAILURE(status)) { return; }
+ for (int i = 0; miscTable.getKeyAndValue(i, key, value); i++) {
+ if (uprv_strcmp(key, "range") == 0) {
+ if (fData.rangePattern.getArgumentLimit() != 0) {
+ continue; // have already seen this pattern
+ }
+ fData.rangePattern = {value.getUnicodeString(status), status};
+ } else if (uprv_strcmp(key, "approximately") == 0) {
+ if (fData.approximatelyPattern.getArgumentLimit() != 0) {
+ continue; // have already seen this pattern
+ }
+ fData.approximatelyPattern = {value.getUnicodeString(status), status};
+ }
+ }
+ }
+
+ private:
+ NumberRangeData& fData;
+};
+
+void getNumberRangeData(const char* localeName, const char* nsName, NumberRangeData& data, UErrorCode& status) {
+ if (U_FAILURE(status)) { return; }
+ LocalUResourceBundlePointer rb(ures_open(NULL, localeName, &status));
+ if (U_FAILURE(status)) { return; }
+ NumberRangeDataSink sink(data);
+
+ CharString dataPath;
+ dataPath.append("NumberElements/", -1, status);
+ dataPath.append(nsName, -1, status);
+ dataPath.append("/miscPatterns", -1, status);
+ ures_getAllItemsWithFallback(rb.getAlias(), dataPath.data(), sink, status);
+ if (U_FAILURE(status)) { return; }
+
+ // TODO: Is it necessary to manually fall back to latn, or does the data sink take care of that?
+
+ if (data.rangePattern.getArgumentLimit() == 0) {
+ // No data!
+ data.rangePattern = {u"{0}–{1}", status};
+ }
+ if (data.approximatelyPattern.getArgumentLimit() == 0) {
+ // No data!
+ data.approximatelyPattern = {u"~{0}", status};
+ }
+}
+
+class PluralRangesDataSink : public ResourceSink {
+ public:
+ PluralRangesDataSink(StandardPluralRanges& output) : fOutput(output) {}
+
+ void put(const char* /*key*/, ResourceValue& value, UBool /*noFallback*/, UErrorCode& status) U_OVERRIDE {
+ ResourceArray entriesArray = value.getArray(status);
+ if (U_FAILURE(status)) { return; }
+ fOutput.setCapacity(entriesArray.getSize());
+ for (int i = 0; entriesArray.getValue(i, value); i++) {
+ ResourceArray pluralFormsArray = value.getArray(status);
+ if (U_FAILURE(status)) { return; }
+ pluralFormsArray.getValue(0, value);
+ StandardPlural::Form first = StandardPlural::fromString(value.getUnicodeString(status), status);
+ if (U_FAILURE(status)) { return; }
+ pluralFormsArray.getValue(1, value);
+ StandardPlural::Form second = StandardPlural::fromString(value.getUnicodeString(status), status);
+ if (U_FAILURE(status)) { return; }
+ pluralFormsArray.getValue(2, value);
+ StandardPlural::Form result = StandardPlural::fromString(value.getUnicodeString(status), status);
+ if (U_FAILURE(status)) { return; }
+ fOutput.addPluralRange(first, second, result);
+ }
+ }
+
+ private:
+ StandardPluralRanges& fOutput;
+};
+
+void getPluralRangesData(const Locale& locale, StandardPluralRanges& output, UErrorCode& status) {
+ if (U_FAILURE(status)) { return; }
+ LocalUResourceBundlePointer rb(ures_openDirect(nullptr, "pluralRanges", &status));
+ if (U_FAILURE(status)) { return; }
+
+ CharString dataPath;
+ dataPath.append("locales/", -1, status);
+ dataPath.append(locale.getLanguage(), -1, status);
+ if (U_FAILURE(status)) { return; }
+ int32_t setLen;
+ // Not all languages are covered: fail gracefully
+ UErrorCode internalStatus = U_ZERO_ERROR;
+ const UChar* set = ures_getStringByKeyWithFallback(rb.getAlias(), dataPath.data(), &setLen, &internalStatus);
+ if (U_FAILURE(internalStatus)) { return; }
+
+ dataPath.clear();
+ dataPath.append("rules/", -1, status);
+ dataPath.appendInvariantChars(set, setLen, status);
+ if (U_FAILURE(status)) { return; }
+ PluralRangesDataSink sink(output);
+ ures_getAllItemsWithFallback(rb.getAlias(), dataPath.data(), sink, status);
+ if (U_FAILURE(status)) { return; }
+}
+
+} // namespace
+
+
+void StandardPluralRanges::initialize(const Locale& locale, UErrorCode& status) {
+ getPluralRangesData(locale, *this, status);
+}
+
+void StandardPluralRanges::addPluralRange(
+ StandardPlural::Form first,
+ StandardPlural::Form second,
+ StandardPlural::Form result) {
+ U_ASSERT(fTriplesLen < fTriples.getCapacity());
+ fTriples[fTriplesLen] = {first, second, result};
+ fTriplesLen++;
+}
+
+void StandardPluralRanges::setCapacity(int32_t length) {
+ if (length > fTriples.getCapacity()) {
+ fTriples.resize(length, 0);
+ }
+}
+
+StandardPlural::Form
+StandardPluralRanges::resolve(StandardPlural::Form first, StandardPlural::Form second) const {
+ for (int32_t i=0; i<fTriplesLen; i++) {
+ const auto& triple = fTriples[i];
+ if (triple.first == first && triple.second == second) {
+ return triple.result;
+ }
+ }
+ // Default fallback
+ return StandardPlural::OTHER;
+}
+
+
+NumberRangeFormatterImpl::NumberRangeFormatterImpl(const RangeMacroProps& macros, UErrorCode& status)
+ : formatterImpl1(macros.formatter1.fMacros, status),
+ formatterImpl2(macros.formatter2.fMacros, status),
+ fSameFormatters(macros.singleFormatter),
+ fCollapse(macros.collapse),
+ fIdentityFallback(macros.identityFallback) {
+
+ // TODO: As of this writing (ICU 63), there is no locale that has different number miscPatterns
+ // based on numbering system. Therefore, data is loaded only from latn. If this changes,
+ // this part of the code should be updated to load from the local numbering system.
+ // The numbering system could come from the one specified in the NumberFormatter passed to
+ // numberFormatterBoth() or similar.
+ // See ICU-20144
+
+ NumberRangeData data;
+ getNumberRangeData(macros.locale.getName(), "latn", data, status);
+ if (U_FAILURE(status)) { return; }
+ fRangeFormatter = data.rangePattern;
+ fApproximatelyModifier = {data.approximatelyPattern, UNUM_FIELD_COUNT, false};
+
+ // TODO: Get locale from PluralRules instead?
+ fPluralRanges.initialize(macros.locale, status);
+ if (U_FAILURE(status)) { return; }
+}
+
+void NumberRangeFormatterImpl::format(UFormattedNumberRangeData& data, bool equalBeforeRounding, UErrorCode& status) const {
+ if (U_FAILURE(status)) {
+ return;
+ }
+
+ MicroProps micros1;
+ MicroProps micros2;
+ formatterImpl1.preProcess(data.quantity1, micros1, status);
+ if (fSameFormatters) {
+ formatterImpl1.preProcess(data.quantity2, micros2, status);
+ } else {
+ formatterImpl2.preProcess(data.quantity2, micros2, status);
+ }
+ if (U_FAILURE(status)) {
+ return;
+ }
+
+ // If any of the affixes are different, an identity is not possible
+ // and we must use formatRange().
+ // TODO: Write this as MicroProps operator==() ?
+ // TODO: Avoid the redundancy of these equality operations with the
+ // ones in formatRange?
+ if (!micros1.modInner->semanticallyEquivalent(*micros2.modInner)
+ || !micros1.modMiddle->semanticallyEquivalent(*micros2.modMiddle)
+ || !micros1.modOuter->semanticallyEquivalent(*micros2.modOuter)) {
+ formatRange(data, micros1, micros2, status);
+ data.identityResult = UNUM_IDENTITY_RESULT_NOT_EQUAL;
+ return;
+ }
+
+ // Check for identity
+ if (equalBeforeRounding) {
+ data.identityResult = UNUM_IDENTITY_RESULT_EQUAL_BEFORE_ROUNDING;
+ } else if (data.quantity1 == data.quantity2) {
+ data.identityResult = UNUM_IDENTITY_RESULT_EQUAL_AFTER_ROUNDING;
+ } else {
+ data.identityResult = UNUM_IDENTITY_RESULT_NOT_EQUAL;
+ }
+
+ switch (identity2d(fIdentityFallback, data.identityResult)) {
+ case identity2d(UNUM_IDENTITY_FALLBACK_RANGE,
+ UNUM_IDENTITY_RESULT_NOT_EQUAL):
+ case identity2d(UNUM_IDENTITY_FALLBACK_RANGE,
+ UNUM_IDENTITY_RESULT_EQUAL_AFTER_ROUNDING):
+ case identity2d(UNUM_IDENTITY_FALLBACK_RANGE,
+ UNUM_IDENTITY_RESULT_EQUAL_BEFORE_ROUNDING):
+ case identity2d(UNUM_IDENTITY_FALLBACK_APPROXIMATELY,
+ UNUM_IDENTITY_RESULT_NOT_EQUAL):
+ case identity2d(UNUM_IDENTITY_FALLBACK_APPROXIMATELY_OR_SINGLE_VALUE,
+ UNUM_IDENTITY_RESULT_NOT_EQUAL):
+ case identity2d(UNUM_IDENTITY_FALLBACK_SINGLE_VALUE,
+ UNUM_IDENTITY_RESULT_NOT_EQUAL):
+ formatRange(data, micros1, micros2, status);
+ break;
+
+ case identity2d(UNUM_IDENTITY_FALLBACK_APPROXIMATELY,
+ UNUM_IDENTITY_RESULT_EQUAL_AFTER_ROUNDING):
+ case identity2d(UNUM_IDENTITY_FALLBACK_APPROXIMATELY,
+ UNUM_IDENTITY_RESULT_EQUAL_BEFORE_ROUNDING):
+ case identity2d(UNUM_IDENTITY_FALLBACK_APPROXIMATELY_OR_SINGLE_VALUE,
+ UNUM_IDENTITY_RESULT_EQUAL_AFTER_ROUNDING):
+ formatApproximately(data, micros1, micros2, status);
+ break;
+
+ case identity2d(UNUM_IDENTITY_FALLBACK_APPROXIMATELY_OR_SINGLE_VALUE,
+ UNUM_IDENTITY_RESULT_EQUAL_BEFORE_ROUNDING):
+ case identity2d(UNUM_IDENTITY_FALLBACK_SINGLE_VALUE,
+ UNUM_IDENTITY_RESULT_EQUAL_AFTER_ROUNDING):
+ case identity2d(UNUM_IDENTITY_FALLBACK_SINGLE_VALUE,
+ UNUM_IDENTITY_RESULT_EQUAL_BEFORE_ROUNDING):
+ formatSingleValue(data, micros1, micros2, status);
+ break;
+
+ default:
+ U_ASSERT(false);
+ break;
+ }
+}
+
+
+void NumberRangeFormatterImpl::formatSingleValue(UFormattedNumberRangeData& data,
+ MicroProps& micros1, MicroProps& micros2,
+ UErrorCode& status) const {
+ if (U_FAILURE(status)) { return; }
+ if (fSameFormatters) {
+ int32_t length = NumberFormatterImpl::writeNumber(micros1, data.quantity1, data.string, 0, status);
+ NumberFormatterImpl::writeAffixes(micros1, data.string, 0, length, status);
+ } else {
+ formatRange(data, micros1, micros2, status);
+ }
+}
+
+
+void NumberRangeFormatterImpl::formatApproximately (UFormattedNumberRangeData& data,
+ MicroProps& micros1, MicroProps& micros2,
+ UErrorCode& status) const {
+ if (U_FAILURE(status)) { return; }
+ if (fSameFormatters) {
+ int32_t length = NumberFormatterImpl::writeNumber(micros1, data.quantity1, data.string, 0, status);
+ // HEURISTIC: Desired modifier order: inner, middle, approximately, outer.
+ length += micros1.modInner->apply(data.string, 0, length, status);
+ length += micros1.modMiddle->apply(data.string, 0, length, status);
+ length += fApproximatelyModifier.apply(data.string, 0, length, status);
+ micros1.modOuter->apply(data.string, 0, length, status);
+ } else {
+ formatRange(data, micros1, micros2, status);
+ }
+}
+
+
+void NumberRangeFormatterImpl::formatRange(UFormattedNumberRangeData& data,
+ MicroProps& micros1, MicroProps& micros2,
+ UErrorCode& status) const {
+ if (U_FAILURE(status)) { return; }
+
+ // modInner is always notation (scientific); collapsable in ALL.
+ // modOuter is always units; collapsable in ALL, AUTO, and UNIT.
+ // modMiddle could be either; collapsable in ALL and sometimes AUTO and UNIT.
+ // Never collapse an outer mod but not an inner mod.
+ bool collapseOuter, collapseMiddle, collapseInner;
+ switch (fCollapse) {
+ case UNUM_RANGE_COLLAPSE_ALL:
+ case UNUM_RANGE_COLLAPSE_AUTO:
+ case UNUM_RANGE_COLLAPSE_UNIT:
+ {
+ // OUTER MODIFIER
+ collapseOuter = micros1.modOuter->semanticallyEquivalent(*micros2.modOuter);
+
+ if (!collapseOuter) {
+ // Never collapse inner mods if outer mods are not collapsable
+ collapseMiddle = false;
+ collapseInner = false;
+ break;
+ }
+
+ // MIDDLE MODIFIER
+ collapseMiddle = micros1.modMiddle->semanticallyEquivalent(*micros2.modMiddle);
+
+ if (!collapseMiddle) {
+ // Never collapse inner mods if outer mods are not collapsable
+ collapseInner = false;
+ break;
+ }
+
+ // MIDDLE MODIFIER HEURISTICS
+ // (could disable collapsing of the middle modifier)
+ // The modifiers are equal by this point, so we can look at just one of them.
+ const Modifier* mm = micros1.modMiddle;
+ if (fCollapse == UNUM_RANGE_COLLAPSE_UNIT) {
+ // Only collapse if the modifier is a unit.
+ // TODO: Make a better way to check for a unit?
+ // TODO: Handle case where the modifier has both notation and unit (compact currency)?
+ if (!mm->containsField(UNUM_CURRENCY_FIELD) && !mm->containsField(UNUM_PERCENT_FIELD)) {
+ collapseMiddle = false;
+ }
+ } else if (fCollapse == UNUM_RANGE_COLLAPSE_AUTO) {
+ // Heuristic as of ICU 63: collapse only if the modifier is more than one code point.
+ if (mm->getCodePointCount() <= 1) {
+ collapseMiddle = false;
+ }
+ }
+
+ if (!collapseMiddle || fCollapse != UNUM_RANGE_COLLAPSE_ALL) {
+ collapseInner = false;
+ break;
+ }
+
+ // INNER MODIFIER
+ collapseInner = micros1.modInner->semanticallyEquivalent(*micros2.modInner);
+
+ // All done checking for collapsability.
+ break;
+ }
+
+ default:
+ collapseOuter = false;
+ collapseMiddle = false;
+ collapseInner = false;
+ break;
+ }
+
+ NumberStringBuilder& string = data.string;
+ int32_t lengthPrefix = 0;
+ int32_t length1 = 0;
+ int32_t lengthInfix = 0;
+ int32_t length2 = 0;
+ int32_t lengthSuffix = 0;
+
+ // Use #define so that these are evaluated at the call site.
+ #define UPRV_INDEX_0 (lengthPrefix)
+ #define UPRV_INDEX_1 (lengthPrefix + length1)
+ #define UPRV_INDEX_2 (lengthPrefix + length1 + lengthInfix)
+ #define UPRV_INDEX_3 (lengthPrefix + length1 + lengthInfix + length2)
+
+ int32_t lengthRange = SimpleModifier::formatTwoArgPattern(
+ fRangeFormatter,
+ string,
+ 0,
+ &lengthPrefix,
+ &lengthSuffix,
+ UNUM_FIELD_COUNT,
+ status);
+ if (U_FAILURE(status)) { return; }
+ lengthInfix = lengthRange - lengthPrefix - lengthSuffix;
+ U_ASSERT(lengthInfix > 0);
+
+ // SPACING HEURISTIC
+ // Add spacing unless all modifiers are collapsed.
+ // TODO: add API to control this?
+ // TODO: Use a data-driven heuristic like currency spacing?
+ // TODO: Use Unicode [:whitespace:] instead of PatternProps whitespace? (consider speed implications)
+ {
+ bool repeatInner = !collapseInner && micros1.modInner->getCodePointCount() > 0;
+ bool repeatMiddle = !collapseMiddle && micros1.modMiddle->getCodePointCount() > 0;
+ bool repeatOuter = !collapseOuter && micros1.modOuter->getCodePointCount() > 0;
+ if (repeatInner || repeatMiddle || repeatOuter) {
+ // Add spacing if there is not already spacing
+ if (!PatternProps::isWhiteSpace(string.charAt(UPRV_INDEX_1))) {
+ lengthInfix += string.insertCodePoint(UPRV_INDEX_1, u'\u0020', UNUM_FIELD_COUNT, status);
+ }
+ if (!PatternProps::isWhiteSpace(string.charAt(UPRV_INDEX_2 - 1))) {
+ lengthInfix += string.insertCodePoint(UPRV_INDEX_2, u'\u0020', UNUM_FIELD_COUNT, status);
+ }
+ }
+ }
+
+ length1 += NumberFormatterImpl::writeNumber(micros1, data.quantity1, string, UPRV_INDEX_0, status);
+ length2 += NumberFormatterImpl::writeNumber(micros2, data.quantity2, string, UPRV_INDEX_2, status);
+
+ // TODO: Support padding?
+
+ if (collapseInner) {
+ // Note: this is actually a mix of prefix and suffix, but adding to infix length works
+ const Modifier& mod = resolveModifierPlurals(*micros1.modInner, *micros2.modInner);
+ lengthInfix += mod.apply(string, UPRV_INDEX_0, UPRV_INDEX_3, status);
+ } else {
+ length1 += micros1.modInner->apply(string, UPRV_INDEX_0, UPRV_INDEX_1, status);
+ length2 += micros2.modInner->apply(string, UPRV_INDEX_2, UPRV_INDEX_3, status);
+ }
+
+ if (collapseMiddle) {
+ // Note: this is actually a mix of prefix and suffix, but adding to infix length works
+ const Modifier& mod = resolveModifierPlurals(*micros1.modMiddle, *micros2.modMiddle);
+ lengthInfix += mod.apply(string, UPRV_INDEX_0, UPRV_INDEX_3, status);
+ } else {
+ length1 += micros1.modMiddle->apply(string, UPRV_INDEX_0, UPRV_INDEX_1, status);
+ length2 += micros2.modMiddle->apply(string, UPRV_INDEX_2, UPRV_INDEX_3, status);
+ }
+
+ if (collapseOuter) {
+ // Note: this is actually a mix of prefix and suffix, but adding to infix length works
+ const Modifier& mod = resolveModifierPlurals(*micros1.modOuter, *micros2.modOuter);
+ lengthInfix += mod.apply(string, UPRV_INDEX_0, UPRV_INDEX_3, status);
+ } else {
+ length1 += micros1.modOuter->apply(string, UPRV_INDEX_0, UPRV_INDEX_1, status);
+ length2 += micros2.modOuter->apply(string, UPRV_INDEX_2, UPRV_INDEX_3, status);
+ }
+}
+
+
+const Modifier&
+NumberRangeFormatterImpl::resolveModifierPlurals(const Modifier& first, const Modifier& second) const {
+ Modifier::Parameters parameters;
+ first.getParameters(parameters);
+ if (parameters.obj == nullptr) {
+ // No plural form; return a fallback (e.g., the first)
+ return first;
+ }
+ StandardPlural::Form firstPlural = parameters.plural;
+
+ second.getParameters(parameters);
+ if (parameters.obj == nullptr) {
+ // No plural form; return a fallback (e.g., the first)
+ return first;
+ }
+ StandardPlural::Form secondPlural = parameters.plural;
+
+ // Get the required plural form from data
+ StandardPlural::Form resultPlural = fPluralRanges.resolve(firstPlural, secondPlural);
+
+ // Get and return the new Modifier
+ const Modifier* mod = parameters.obj->getModifier(parameters.signum, resultPlural);
+ U_ASSERT(mod != nullptr);
+ return *mod;
+}
+
+
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/numrange_impl.h b/Build/source/libs/icu/icu-src/source/i18n/numrange_impl.h
new file mode 100644
index 00000000000..787fc656860
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/numrange_impl.h
@@ -0,0 +1,114 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+#ifndef __SOURCE_NUMRANGE_TYPES_H__
+#define __SOURCE_NUMRANGE_TYPES_H__
+
+#include "unicode/numberformatter.h"
+#include "unicode/numberrangeformatter.h"
+#include "unicode/simpleformatter.h"
+#include "number_types.h"
+#include "number_decimalquantity.h"
+#include "number_formatimpl.h"
+#include "number_stringbuilder.h"
+
+U_NAMESPACE_BEGIN namespace number {
+namespace impl {
+
+
+/**
+ * Class similar to UFormattedNumberData.
+ *
+ * Has incomplete magic number logic that will need to be finished
+ * if this is to be exposed as C API in the future.
+ */
+struct UFormattedNumberRangeData : public UMemory {
+ // The magic number to identify incoming objects.
+ // Reads in ASCII as "FDR" (FormatteDnumberRange with room at the end)
+ static constexpr int32_t kMagic = 0x46445200;
+
+ // Data members:
+ int32_t fMagic = kMagic;
+ DecimalQuantity quantity1;
+ DecimalQuantity quantity2;
+ NumberStringBuilder string;
+ UNumberRangeIdentityResult identityResult = UNUM_IDENTITY_RESULT_COUNT;
+
+ // No C conversion methods (no C API yet)
+};
+
+
+class StandardPluralRanges : public UMemory {
+ public:
+ void initialize(const Locale& locale, UErrorCode& status);
+ StandardPlural::Form resolve(StandardPlural::Form first, StandardPlural::Form second) const;
+
+ /** Used for data loading. */
+ void addPluralRange(
+ StandardPlural::Form first,
+ StandardPlural::Form second,
+ StandardPlural::Form result);
+
+ /** Used for data loading. */
+ void setCapacity(int32_t length);
+
+ private:
+ struct StandardPluralRangeTriple {
+ StandardPlural::Form first;
+ StandardPlural::Form second;
+ StandardPlural::Form result;
+ };
+
+ // TODO: An array is simple here, but it results in linear lookup time.
+ // Certain locales have 20-30 entries in this list.
+ // Consider changing to a smarter data structure.
+ typedef MaybeStackArray<StandardPluralRangeTriple, 3> PluralRangeTriples;
+ PluralRangeTriples fTriples;
+ int32_t fTriplesLen = 0;
+};
+
+
+class NumberRangeFormatterImpl : public UMemory {
+ public:
+ NumberRangeFormatterImpl(const RangeMacroProps& macros, UErrorCode& status);
+
+ void format(UFormattedNumberRangeData& data, bool equalBeforeRounding, UErrorCode& status) const;
+
+ private:
+ NumberFormatterImpl formatterImpl1;
+ NumberFormatterImpl formatterImpl2;
+ bool fSameFormatters;
+
+ UNumberRangeCollapse fCollapse;
+ UNumberRangeIdentityFallback fIdentityFallback;
+
+ SimpleFormatter fRangeFormatter;
+ SimpleModifier fApproximatelyModifier;
+
+ StandardPluralRanges fPluralRanges;
+
+ void formatSingleValue(UFormattedNumberRangeData& data,
+ MicroProps& micros1, MicroProps& micros2,
+ UErrorCode& status) const;
+
+ void formatApproximately(UFormattedNumberRangeData& data,
+ MicroProps& micros1, MicroProps& micros2,
+ UErrorCode& status) const;
+
+ void formatRange(UFormattedNumberRangeData& data,
+ MicroProps& micros1, MicroProps& micros2,
+ UErrorCode& status) const;
+
+ const Modifier& resolveModifierPlurals(const Modifier& first, const Modifier& second) const;
+};
+
+
+} // namespace impl
+} // namespace number
+U_NAMESPACE_END
+
+#endif //__SOURCE_NUMRANGE_TYPES_H__
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/numsys.cpp b/Build/source/libs/icu/icu-src/source/i18n/numsys.cpp
index 893ba53dcaa..162c50a5fe9 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/numsys.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/numsys.cpp
@@ -79,43 +79,45 @@ NumberingSystem* U_EXPORT2
NumberingSystem::createInstance(int32_t radix_in, UBool isAlgorithmic_in, const UnicodeString & desc_in, UErrorCode &status) {
if (U_FAILURE(status)) {
- return NULL;
+ return nullptr;
}
if ( radix_in < 2 ) {
status = U_ILLEGAL_ARGUMENT_ERROR;
- return NULL;
+ return nullptr;
}
if ( !isAlgorithmic_in ) {
if ( desc_in.countChar32() != radix_in ) {
status = U_ILLEGAL_ARGUMENT_ERROR;
- return NULL;
+ return nullptr;
}
}
- NumberingSystem *ns = new NumberingSystem();
+ LocalPointer<NumberingSystem> ns(new NumberingSystem(), status);
+ if (U_FAILURE(status)) {
+ return nullptr;
+ }
ns->setRadix(radix_in);
ns->setDesc(desc_in);
ns->setAlgorithmic(isAlgorithmic_in);
- ns->setName(NULL);
- return ns;
-
-}
+ ns->setName(nullptr);
+ return ns.orphan();
+}
NumberingSystem* U_EXPORT2
NumberingSystem::createInstance(const Locale & inLocale, UErrorCode& status) {
if (U_FAILURE(status)) {
- return NULL;
+ return nullptr;
}
UBool nsResolved = TRUE;
UBool usingFallback = FALSE;
char buffer[ULOC_KEYWORDS_CAPACITY];
- int32_t count = inLocale.getKeywordValue("numbers",buffer, sizeof(buffer),status);
+ int32_t count = inLocale.getKeywordValue("numbers", buffer, sizeof(buffer), status);
if (U_FAILURE(status) || status == U_STRING_NOT_TERMINATED_WARNING) {
// the "numbers" keyword exceeds ULOC_KEYWORDS_CAPACITY; ignore and use default.
count = 0;
@@ -129,20 +131,30 @@ NumberingSystem::createInstance(const Locale & inLocale, UErrorCode& status) {
nsResolved = FALSE;
}
} else {
- uprv_strcpy(buffer,gDefault);
+ uprv_strcpy(buffer, gDefault);
nsResolved = FALSE;
}
if (!nsResolved) { // Resolve the numbering system ( default, native, traditional or finance ) into a "real" numbering system
UErrorCode localStatus = U_ZERO_ERROR;
- UResourceBundle *resource = ures_open(NULL, inLocale.getName(), &localStatus);
- UResourceBundle *numberElementsRes = ures_getByKey(resource,gNumberElements,NULL,&localStatus);
+ LocalUResourceBundlePointer resource(ures_open(nullptr, inLocale.getName(), &localStatus));
+ LocalUResourceBundlePointer numberElementsRes(ures_getByKey(resource.getAlias(), gNumberElements, nullptr, &localStatus));
+ // Don't stomp on the catastrophic failure of OOM.
+ if (localStatus == U_MEMORY_ALLOCATION_ERROR) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return nullptr;
+ }
while (!nsResolved) {
localStatus = U_ZERO_ERROR;
count = 0;
- const UChar *nsName = ures_getStringByKeyWithFallback(numberElementsRes, buffer, &count, &localStatus);
+ const UChar *nsName = ures_getStringByKeyWithFallback(numberElementsRes.getAlias(), buffer, &count, &localStatus);
+ // Don't stomp on the catastrophic failure of OOM.
+ if (localStatus == U_MEMORY_ALLOCATION_ERROR) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return nullptr;
+ }
if ( count > 0 && count < ULOC_KEYWORDS_CAPACITY ) { // numbering system found
- u_UCharsToChars(nsName,buffer,count);
+ u_UCharsToChars(nsName, buffer, count);
buffer[count] = '\0'; // Make sure it is null terminated.
nsResolved = TRUE;
}
@@ -158,16 +170,17 @@ NumberingSystem::createInstance(const Locale & inLocale, UErrorCode& status) {
}
}
}
- ures_close(numberElementsRes);
- ures_close(resource);
}
if (usingFallback) {
status = U_USING_FALLBACK_WARNING;
NumberingSystem *ns = new NumberingSystem();
+ if (ns == nullptr) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ }
return ns;
} else {
- return NumberingSystem::createInstanceByName(buffer,status);
+ return NumberingSystem::createInstanceByName(buffer, status);
}
}
@@ -178,36 +191,37 @@ NumberingSystem::createInstance(UErrorCode& status) {
NumberingSystem* U_EXPORT2
NumberingSystem::createInstanceByName(const char *name, UErrorCode& status) {
- UResourceBundle *numberingSystemsInfo = NULL;
- UResourceBundle *nsTop, *nsCurrent;
int32_t radix = 10;
int32_t algorithmic = 0;
- numberingSystemsInfo = ures_openDirect(NULL,gNumberingSystems, &status);
- nsCurrent = ures_getByKey(numberingSystemsInfo,gNumberingSystems,NULL,&status);
- nsTop = ures_getByKey(nsCurrent,name,NULL,&status);
- UnicodeString nsd = ures_getUnicodeStringByKey(nsTop,gDesc,&status);
+ LocalUResourceBundlePointer numberingSystemsInfo(ures_openDirect(nullptr, gNumberingSystems, &status));
+ LocalUResourceBundlePointer nsCurrent(ures_getByKey(numberingSystemsInfo.getAlias(), gNumberingSystems, nullptr, &status));
+ LocalUResourceBundlePointer nsTop(ures_getByKey(nsCurrent.getAlias(), name, nullptr, &status));
- ures_getByKey(nsTop,gRadix,nsCurrent,&status);
- radix = ures_getInt(nsCurrent,&status);
+ UnicodeString nsd = ures_getUnicodeStringByKey(nsTop.getAlias(), gDesc, &status);
- ures_getByKey(nsTop,gAlgorithmic,nsCurrent,&status);
- algorithmic = ures_getInt(nsCurrent,&status);
+ ures_getByKey(nsTop.getAlias(), gRadix, nsCurrent.getAlias(), &status);
+ radix = ures_getInt(nsCurrent.getAlias(), &status);
- UBool isAlgorithmic = ( algorithmic == 1 );
+ ures_getByKey(nsTop.getAlias(), gAlgorithmic, nsCurrent.getAlias(), &status);
+ algorithmic = ures_getInt(nsCurrent.getAlias(), &status);
- ures_close(nsCurrent);
- ures_close(nsTop);
- ures_close(numberingSystemsInfo);
+ UBool isAlgorithmic = ( algorithmic == 1 );
if (U_FAILURE(status)) {
- status = U_UNSUPPORTED_ERROR;
- return NULL;
+ // Don't stomp on the catastrophic failure of OOM.
+ if (status != U_MEMORY_ALLOCATION_ERROR) {
+ status = U_UNSUPPORTED_ERROR;
+ }
+ return nullptr;
}
- NumberingSystem* ns = NumberingSystem::createInstance(radix,isAlgorithmic,nsd,status);
+ LocalPointer<NumberingSystem> ns(NumberingSystem::createInstance(radix, isAlgorithmic, nsd, status), status);
+ if (U_FAILURE(status)) {
+ return nullptr;
+ }
ns->setName(name);
- return ns;
+ return ns.orphan();
}
/**
@@ -241,11 +255,11 @@ void NumberingSystem::setDesc(const UnicodeString &d) {
desc.setTo(d);
}
void NumberingSystem::setName(const char *n) {
- if ( n == NULL ) {
+ if ( n == nullptr ) {
name[0] = (char) 0;
} else {
uprv_strncpy(name,n,NUMSYS_NAME_CAPACITY);
- name[NUMSYS_NAME_CAPACITY] = (char)0; // Make sure it is null terminated.
+ name[NUMSYS_NAME_CAPACITY] = '\0'; // Make sure it is null terminated.
}
}
UBool NumberingSystem::isAlgorithmic() const {
@@ -254,43 +268,57 @@ UBool NumberingSystem::isAlgorithmic() const {
StringEnumeration* NumberingSystem::getAvailableNames(UErrorCode &status) {
// TODO(ticket #11908): Init-once static cache, with u_cleanup() callback.
- static StringEnumeration* availableNames = NULL;
+ static StringEnumeration* availableNames = nullptr;
if (U_FAILURE(status)) {
- return NULL;
+ return nullptr;
}
- if ( availableNames == NULL ) {
+ if ( availableNames == nullptr ) {
// TODO: Simple array of UnicodeString objects, based on length of table resource?
- LocalPointer<UVector> numsysNames(new UVector(uprv_deleteUObject, NULL, status), status);
+ LocalPointer<UVector> numsysNames(new UVector(uprv_deleteUObject, nullptr, status), status);
if (U_FAILURE(status)) {
- return NULL;
+ return nullptr;
}
UErrorCode rbstatus = U_ZERO_ERROR;
- UResourceBundle *numberingSystemsInfo = ures_openDirect(NULL, "numberingSystems", &rbstatus);
- numberingSystemsInfo = ures_getByKey(numberingSystemsInfo,"numberingSystems",numberingSystemsInfo,&rbstatus);
- if(U_FAILURE(rbstatus)) {
- status = U_MISSING_RESOURCE_ERROR;
+ UResourceBundle *numberingSystemsInfo = ures_openDirect(nullptr, "numberingSystems", &rbstatus);
+ numberingSystemsInfo = ures_getByKey(numberingSystemsInfo, "numberingSystems", numberingSystemsInfo, &rbstatus);
+ if (U_FAILURE(rbstatus)) {
+ // Don't stomp on the catastrophic failure of OOM.
+ if (rbstatus == U_MEMORY_ALLOCATION_ERROR) {
+ status = rbstatus;
+ } else {
+ status = U_MISSING_RESOURCE_ERROR;
+ }
ures_close(numberingSystemsInfo);
- return NULL;
+ return nullptr;
}
- while ( ures_hasNext(numberingSystemsInfo) ) {
- UResourceBundle *nsCurrent = ures_getNextResource(numberingSystemsInfo,NULL,&rbstatus);
- const char *nsName = ures_getKey(nsCurrent);
- numsysNames->addElement(new UnicodeString(nsName, -1, US_INV),status);
- ures_close(nsCurrent);
+ while ( ures_hasNext(numberingSystemsInfo) && U_SUCCESS(status) ) {
+ LocalUResourceBundlePointer nsCurrent(ures_getNextResource(numberingSystemsInfo, nullptr, &rbstatus));
+ if (rbstatus == U_MEMORY_ALLOCATION_ERROR) {
+ status = rbstatus; // we want to report OOM failure back to the caller.
+ break;
+ }
+ const char *nsName = ures_getKey(nsCurrent.getAlias());
+ LocalPointer<UnicodeString> newElem(new UnicodeString(nsName, -1, US_INV), status);
+ if (U_SUCCESS(status)) {
+ numsysNames->addElement(newElem.getAlias(), status);
+ if (U_SUCCESS(status)) {
+ newElem.orphan(); // on success, the numsysNames vector owns newElem.
+ }
+ }
}
ures_close(numberingSystemsInfo);
if (U_FAILURE(status)) {
- return NULL;
+ return nullptr;
}
availableNames = new NumsysNameEnumeration(numsysNames.getAlias(), status);
- if (availableNames == NULL) {
+ if (availableNames == nullptr) {
status = U_MEMORY_ALLOCATION_ERROR;
- return NULL;
+ return nullptr;
}
numsysNames.orphan(); // The names got adopted.
}
@@ -305,10 +333,10 @@ NumsysNameEnumeration::NumsysNameEnumeration(UVector *numsysNames, UErrorCode& /
const UnicodeString*
NumsysNameEnumeration::snext(UErrorCode& status) {
- if (U_SUCCESS(status) && pos < fNumsysNames->size()) {
+ if (U_SUCCESS(status) && (fNumsysNames != nullptr) && (pos < fNumsysNames->size())) {
return (const UnicodeString*)fNumsysNames->elementAt(pos++);
}
- return NULL;
+ return nullptr;
}
void
@@ -318,7 +346,7 @@ NumsysNameEnumeration::reset(UErrorCode& /*status*/) {
int32_t
NumsysNameEnumeration::count(UErrorCode& /*status*/) const {
- return (fNumsysNames==NULL) ? 0 : fNumsysNames->size();
+ return (fNumsysNames==nullptr) ? 0 : fNumsysNames->size();
}
NumsysNameEnumeration::~NumsysNameEnumeration() {
diff --git a/Build/source/libs/icu/icu-src/source/i18n/numsys_impl.h b/Build/source/libs/icu/icu-src/source/i18n/numsys_impl.h
index 3e5cc33c050..b798286bf1d 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/numsys_impl.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/numsys_impl.h
@@ -37,7 +37,7 @@ public:
virtual int32_t count(UErrorCode& status) const;
private:
int32_t pos;
- UVector *fNumsysNames;
+ UVector *fNumsysNames = nullptr;
};
U_NAMESPACE_END
diff --git a/Build/source/libs/icu/icu-src/source/i18n/olsontz.cpp b/Build/source/libs/icu/icu-src/source/i18n/olsontz.cpp
index 00a59d16d73..8c68d8b52cf 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/olsontz.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/olsontz.cpp
@@ -140,7 +140,7 @@ OlsonTimeZone::OlsonTimeZone(const UResourceBundle* top,
// Pre-32bit second transitions
ures_getByKey(res, kTRANSPRE32, &r, &ec);
transitionTimesPre32 = ures_getIntVector(&r, &len, &ec);
- transitionCountPre32 = len >> 1;
+ transitionCountPre32 = static_cast<int16_t>(len >> 1);
if (ec == U_MISSING_RESOURCE_ERROR) {
// No pre-32bit transitions
transitionTimesPre32 = NULL;
@@ -153,7 +153,7 @@ OlsonTimeZone::OlsonTimeZone(const UResourceBundle* top,
// 32bit second transitions
ures_getByKey(res, kTRANS, &r, &ec);
transitionTimes32 = ures_getIntVector(&r, &len, &ec);
- transitionCount32 = len;
+ transitionCount32 = static_cast<int16_t>(len);
if (ec == U_MISSING_RESOURCE_ERROR) {
// No 32bit transitions
transitionTimes32 = NULL;
@@ -166,7 +166,7 @@ OlsonTimeZone::OlsonTimeZone(const UResourceBundle* top,
// Post-32bit second transitions
ures_getByKey(res, kTRANSPOST32, &r, &ec);
transitionTimesPost32 = ures_getIntVector(&r, &len, &ec);
- transitionCountPost32 = len >> 1;
+ transitionCountPost32 = static_cast<int16_t>(len >> 1);
if (ec == U_MISSING_RESOURCE_ERROR) {
// No pre-32bit transitions
transitionTimesPost32 = NULL;
diff --git a/Build/source/libs/icu/icu-src/source/i18n/pluralaffix.cpp b/Build/source/libs/icu/icu-src/source/i18n/pluralaffix.cpp
deleted file mode 100644
index ea400206b38..00000000000
--- a/Build/source/libs/icu/icu-src/source/i18n/pluralaffix.cpp
+++ /dev/null
@@ -1,104 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
- * Copyright (C) 2015, International Business Machines
- * Corporation and others. All Rights Reserved.
- *
- * file name: pluralaffix.cpp
- */
-
-#include "unicode/utypes.h"
-
-#if !UCONFIG_NO_FORMATTING
-
-#include "cstring.h"
-#include "digitaffix.h"
-#include "pluralaffix.h"
-
-U_NAMESPACE_BEGIN
-
-UBool
-PluralAffix::setVariant(
- const char *variant, const UnicodeString &value, UErrorCode &status) {
- DigitAffix *current = affixes.getMutable(variant, status);
- if (U_FAILURE(status)) {
- return FALSE;
- }
- current->remove();
- current->append(value);
- return TRUE;
-}
-
-void
-PluralAffix::remove() {
- affixes.clear();
-}
-
-void
-PluralAffix::appendUChar(
- const UChar value, int32_t fieldId) {
- PluralMapBase::Category index = PluralMapBase::NONE;
- for (DigitAffix *current = affixes.nextMutable(index);
- current != NULL; current = affixes.nextMutable(index)) {
- current->appendUChar(value, fieldId);
- }
-}
-
-void
-PluralAffix::append(
- const UnicodeString &value, int32_t fieldId) {
- PluralMapBase::Category index = PluralMapBase::NONE;
- for (DigitAffix *current = affixes.nextMutable(index);
- current != NULL; current = affixes.nextMutable(index)) {
- current->append(value, fieldId);
- }
-}
-
-void
-PluralAffix::append(
- const UChar *value, int32_t charCount, int32_t fieldId) {
- PluralMapBase::Category index = PluralMapBase::NONE;
- for (DigitAffix *current = affixes.nextMutable(index);
- current != NULL; current = affixes.nextMutable(index)) {
- current->append(value, charCount, fieldId);
- }
-}
-
-UBool
-PluralAffix::append(
- const PluralAffix &rhs, int32_t fieldId, UErrorCode &status) {
- if (U_FAILURE(status)) {
- return FALSE;
- }
- PluralMapBase::Category index = PluralMapBase::NONE;
- while(rhs.affixes.next(index) != NULL) {
- affixes.getMutableWithDefault(index, affixes.getOther(), status);
- }
- index = PluralMapBase::NONE;
- for (DigitAffix *current = affixes.nextMutable(index);
- current != NULL; current = affixes.nextMutable(index)) {
- current->append(rhs.affixes.get(index).toString(), fieldId);
- }
- return TRUE;
-}
-
-const DigitAffix &
-PluralAffix::getByCategory(const char *category) const {
- return affixes.get(category);
-}
-
-const DigitAffix &
-PluralAffix::getByCategory(const UnicodeString &category) const {
- return affixes.get(category);
-}
-
-UBool
-PluralAffix::hasMultipleVariants() const {
- // This works because OTHER is guaranteed to be the first enum value
- PluralMapBase::Category index = PluralMapBase::OTHER;
- return (affixes.next(index) != NULL);
-}
-
-U_NAMESPACE_END
-
-#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/pluralaffix.h b/Build/source/libs/icu/icu-src/source/i18n/pluralaffix.h
deleted file mode 100644
index df86d8de5d3..00000000000
--- a/Build/source/libs/icu/icu-src/source/i18n/pluralaffix.h
+++ /dev/null
@@ -1,177 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
-*******************************************************************************
-* Copyright (C) 2015, International Business Machines
-* Corporation and others. All Rights Reserved.
-*******************************************************************************
-* pluralaffix.h
-*
-* created on: 2015jan06
-* created by: Travis Keep
-*/
-
-#ifndef __PLURALAFFIX_H__
-#define __PLURALAFFIX_H__
-
-#include "unicode/utypes.h"
-
-#if !UCONFIG_NO_FORMATTING
-
-#include "unicode/unum.h"
-#include "unicode/uobject.h"
-
-#include "digitaffix.h"
-#include "pluralmap.h"
-
-U_NAMESPACE_BEGIN
-
-class FieldPositionHandler;
-
-// Export an explicit template instantiation.
-//
-// MSVC requires this, even though it should not be necessary.
-// No direct access leaks out of the i18n library.
-//
-// Macintosh produces duplicate definition linker errors with the explicit template
-// instantiation.
-//
-#if !U_PLATFORM_IS_DARWIN_BASED
-template class U_I18N_API PluralMap<DigitAffix>;
-#endif
-
-
-/**
- * A plural aware prefix or suffix of a formatted number.
- *
- * PluralAffix is essentially a map of DigitAffix objects keyed by plural
- * category. The 'other' category is the default and always has some
- * value. The rest of the categories are optional. Querying for a category that
- * is not set always returns the DigitAffix stored in the 'other' category.
- *
- * To use one of these objects, build it up first using append() and
- * setVariant() methods. Once built, leave unchanged and let multiple threads
- * safely access.
- *
- * The following code is sample code for building up:
- * one: US Dollar -
- * other: US Dollars -
- *
- * and storing it in "negativeCurrencyPrefix"
- *
- * UErrorCode status = U_ZERO_ERROR;
- *
- * PluralAffix negativeCurrencyPrefix;
- *
- * PluralAffix currencyName;
- * currencyName.setVariant("one", "US Dollar", status);
- * currencyName.setVariant("other", "US Dollars", status);
- *
- * negativeCurrencyPrefix.append(currencyName, UNUM_CURRENCY_FIELD, status);
- * negativeCurrencyPrefix.append(" ");
- * negativeCurrencyPrefix.append("-", UNUM_SIGN_FIELD, status);
- */
-class U_I18N_API PluralAffix : public UMemory {
-public:
-
- /**
- * Create empty PluralAffix.
- */
- PluralAffix() : affixes() { }
-
- /**
- * Create a PluralAffix where the 'other' variant is otherVariant.
- */
- PluralAffix(const DigitAffix &otherVariant) : affixes(otherVariant) { }
-
- /**
- * Sets a particular variant for a plural category while overwriting
- * anything that may have been previously stored for that plural
- * category. The set value has no field annotations.
- * @param category "one", "two", "few", ...
- * @param variant the variant to store under the particular category
- * @param status Any error returned here.
- */
- UBool setVariant(
- const char *category,
- const UnicodeString &variant,
- UErrorCode &status);
- /**
- * Make the 'other' variant be the empty string with no field annotations
- * and remove the variants for the rest of the plural categories.
- */
- void remove();
-
- /**
- * Append value to all set plural categories. If fieldId present, value
- * is that field type.
- */
- void appendUChar(UChar value, int32_t fieldId=UNUM_FIELD_COUNT);
-
- /**
- * Append value to all set plural categories. If fieldId present, value
- * is that field type.
- */
- void append(const UnicodeString &value, int32_t fieldId=UNUM_FIELD_COUNT);
-
- /**
- * Append value to all set plural categories. If fieldId present, value
- * is that field type.
- */
- void append(const UChar *value, int32_t charCount, int32_t fieldId=UNUM_FIELD_COUNT);
-
- /**
- * Append the value for each plural category in rhs to the corresponding
- * plural category in this instance. Each value appended from rhs is
- * of type fieldId.
- */
- UBool append(
- const PluralAffix &rhs,
- int32_t fieldId,
- UErrorCode &status);
- /**
- * Get the DigitAffix for a paricular category such as "zero", "one", ...
- * If the particular category is not set, returns the 'other' category
- * which is always set.
- */
- const DigitAffix &getByCategory(const char *category) const;
-
- /**
- * Get the DigitAffix for a paricular category such as "zero", "one", ...
- * If the particular category is not set, returns the 'other' category
- * which is always set.
- */
- const DigitAffix &getByCategory(const UnicodeString &category) const;
-
- /**
- * Get the DigitAffix for the other category which is always set.
- */
- const DigitAffix &getOtherVariant() const {
- return affixes.getOther();
- }
-
- /**
- * Returns TRUE if this instance has variants stored besides the "other"
- * variant.
- */
- UBool hasMultipleVariants() const;
-
- /**
- * Returns TRUE if this instance equals rhs.
- */
- UBool equals(const PluralAffix &rhs) const {
- return affixes.equals(rhs.affixes, &eq);
- }
-
-private:
- PluralMap<DigitAffix> affixes;
-
- static UBool eq(const DigitAffix &x, const DigitAffix &y) {
- return x.equals(y);
- }
-};
-
-
-U_NAMESPACE_END
-#endif /* #if !UCONFIG_NO_FORMATTING */
-#endif // __PLURALAFFIX_H__
diff --git a/Build/source/libs/icu/icu-src/source/i18n/plurfmt.cpp b/Build/source/libs/icu/icu-src/source/i18n/plurfmt.cpp
index e14ef6d831e..2775766d32d 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/plurfmt.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/plurfmt.cpp
@@ -21,13 +21,16 @@
#include "plurrule_impl.h"
#include "uassert.h"
#include "uhash.h"
-#include "precision.h"
-#include "visibledigits.h"
+#include "number_decimalquantity.h"
+#include "number_utils.h"
+#include "number_utypes.h"
#if !UCONFIG_NO_FORMATTING
U_NAMESPACE_BEGIN
+using number::impl::DecimalQuantity;
+
static const UChar OTHER_STRING[] = {
0x6F, 0x74, 0x68, 0x65, 0x72, 0 // "other"
};
@@ -258,45 +261,33 @@ PluralFormat::format(const Formattable& numberObject, double number,
if (msgPattern.countParts() == 0) {
return numberFormat->format(numberObject, appendTo, pos, status);
}
+
// Get the appropriate sub-message.
// Select it based on the formatted number-offset.
double numberMinusOffset = number - offset;
- UnicodeString numberString;
- FieldPosition ignorePos;
- FixedPrecision fp;
- VisibleDigitsWithExponent dec;
- fp.initVisibleDigitsWithExponent(numberMinusOffset, dec, status);
- if (U_FAILURE(status)) {
- return appendTo;
- }
+ // Call NumberFormatter to get both the DecimalQuantity and the string.
+ // This call site needs to use more internal APIs than the Java equivalent.
+ number::impl::UFormattedNumberData data;
if (offset == 0) {
- DecimalFormat *decFmt = dynamic_cast<DecimalFormat *>(numberFormat);
- if(decFmt != NULL) {
- decFmt->initVisibleDigitsWithExponent(
- numberObject, dec, status);
- if (U_FAILURE(status)) {
- return appendTo;
- }
- decFmt->format(dec, numberString, ignorePos, status);
- } else {
- numberFormat->format(
- numberObject, numberString, ignorePos, status); // could be BigDecimal etc.
- }
+ // could be BigDecimal etc.
+ numberObject.populateDecimalQuantity(data.quantity, status);
} else {
- DecimalFormat *decFmt = dynamic_cast<DecimalFormat *>(numberFormat);
- if(decFmt != NULL) {
- decFmt->initVisibleDigitsWithExponent(
- numberMinusOffset, dec, status);
- if (U_FAILURE(status)) {
- return appendTo;
- }
- decFmt->format(dec, numberString, ignorePos, status);
+ data.quantity.setToDouble(numberMinusOffset);
+ }
+ UnicodeString numberString;
+ auto *decFmt = dynamic_cast<DecimalFormat *>(numberFormat);
+ if(decFmt != nullptr) {
+ decFmt->toNumberFormatter().formatImpl(&data, status); // mutates &data
+ numberString = data.string.toUnicodeString();
+ } else {
+ if (offset == 0) {
+ numberFormat->format(numberObject, numberString, status);
} else {
- numberFormat->format(
- numberMinusOffset, numberString, ignorePos, status);
+ numberFormat->format(numberMinusOffset, numberString, status);
}
}
- int32_t partIndex = findSubMessage(msgPattern, 0, pluralRulesWrapper, &dec, number, status);
+
+ int32_t partIndex = findSubMessage(msgPattern, 0, pluralRulesWrapper, &data.quantity, number, status);
if (U_FAILURE(status)) { return appendTo; }
// Replace syntactic # signs in the top level of this sub-message
// (not in nested arguments) with the formatted number-offset.
@@ -585,7 +576,7 @@ PluralFormat::PluralSelectorAdapter::~PluralSelectorAdapter() {
UnicodeString PluralFormat::PluralSelectorAdapter::select(void *context, double number,
UErrorCode& /*ec*/) const {
(void)number; // unused except in the assertion
- VisibleDigitsWithExponent *dec=static_cast<VisibleDigitsWithExponent *>(context);
+ IFixedDecimal *dec=static_cast<IFixedDecimal *>(context);
return pluralRules->select(*dec);
}
diff --git a/Build/source/libs/icu/icu-src/source/i18n/plurrule.cpp b/Build/source/libs/icu/icu-src/source/i18n/plurrule.cpp
index dcf28b2bc1a..ba5450c6379 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/plurrule.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/plurrule.cpp
@@ -22,7 +22,6 @@
#include "charstr.h"
#include "cmemory.h"
#include "cstring.h"
-#include "digitlst.h"
#include "hash.h"
#include "locutil.h"
#include "mutex.h"
@@ -35,13 +34,15 @@
#include "uvectr32.h"
#include "sharedpluralrules.h"
#include "unifiedcache.h"
-#include "digitinterval.h"
-#include "visibledigits.h"
+#include "number_decimalquantity.h"
#if !UCONFIG_NO_FORMATTING
U_NAMESPACE_BEGIN
+using namespace icu::pluralimpl;
+using icu::number::impl::DecimalQuantity;
+
static const UChar PLURAL_KEYWORD_OTHER[]={LOW_O,LOW_T,LOW_H,LOW_E,LOW_R,0};
static const UChar PLURAL_DEFAULT_RULE[]={LOW_O,LOW_T,LOW_H,LOW_E,LOW_R,COLON,SPACE,LOW_N,0};
static const UChar PK_IN[]={LOW_I,LOW_N,0};
@@ -64,13 +65,15 @@ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(PluralKeywordEnumeration)
PluralRules::PluralRules(UErrorCode& /*status*/)
: UObject(),
- mRules(NULL)
+ mRules(nullptr),
+ mInternalStatus(U_ZERO_ERROR)
{
}
PluralRules::PluralRules(const PluralRules& other)
: UObject(other),
- mRules(NULL)
+ mRules(nullptr),
+ mInternalStatus(U_ZERO_ERROR)
{
*this=other;
}
@@ -85,54 +88,67 @@ SharedPluralRules::~SharedPluralRules() {
PluralRules*
PluralRules::clone() const {
- return new PluralRules(*this);
+ PluralRules* newObj = new PluralRules(*this);
+ // Since clone doesn't have a 'status' parameter, the best we can do is return nullptr if
+ // the newly created object was not fully constructed properly (an error occurred).
+ if (newObj != nullptr && U_FAILURE(newObj->mInternalStatus)) {
+ delete newObj;
+ newObj = nullptr;
+ }
+ return newObj;
}
PluralRules&
PluralRules::operator=(const PluralRules& other) {
if (this != &other) {
delete mRules;
- if (other.mRules==NULL) {
- mRules = NULL;
+ mRules = nullptr;
+ mInternalStatus = other.mInternalStatus;
+ if (U_FAILURE(mInternalStatus)) {
+ // bail out early if the object we were copying from was already 'invalid'.
+ return *this;
}
- else {
+ if (other.mRules != nullptr) {
mRules = new RuleChain(*other.mRules);
+ if (mRules == nullptr) {
+ mInternalStatus = U_MEMORY_ALLOCATION_ERROR;
+ }
+ else if (U_FAILURE(mRules->fInternalStatus)) {
+ // If the RuleChain wasn't fully copied, then set our status to failure as well.
+ mInternalStatus = mRules->fInternalStatus;
+ }
}
}
-
return *this;
}
StringEnumeration* PluralRules::getAvailableLocales(UErrorCode &status) {
- StringEnumeration *result = new PluralAvailableLocalesEnumeration(status);
- if (result == NULL && U_SUCCESS(status)) {
- status = U_MEMORY_ALLOCATION_ERROR;
+ if (U_FAILURE(status)) {
+ return nullptr;
}
+ LocalPointer<StringEnumeration> result(new PluralAvailableLocalesEnumeration(status), status);
if (U_FAILURE(status)) {
- delete result;
- result = NULL;
+ return nullptr;
}
- return result;
+ return result.orphan();
}
PluralRules* U_EXPORT2
PluralRules::createRules(const UnicodeString& description, UErrorCode& status) {
if (U_FAILURE(status)) {
- return NULL;
+ return nullptr;
}
-
PluralRuleParser parser;
- PluralRules *newRules = new PluralRules(status);
- if (U_SUCCESS(status) && newRules == NULL) {
- status = U_MEMORY_ALLOCATION_ERROR;
+ LocalPointer<PluralRules> newRules(new PluralRules(status), status);
+ if (U_FAILURE(status)) {
+ return nullptr;
}
- parser.parse(description, newRules, status);
+ parser.parse(description, newRules.getAlias(), status);
if (U_FAILURE(status)) {
- delete newRules;
- newRules = NULL;
+ newRules.adoptInstead(nullptr);
}
- return newRules;
+ return newRules.orphan();
}
@@ -148,19 +164,17 @@ template<> U_I18N_API
const SharedPluralRules *LocaleCacheKey<SharedPluralRules>::createObject(
const void * /*unused*/, UErrorCode &status) const {
const char *localeId = fLoc.getName();
- PluralRules *pr = PluralRules::internalForLocale(
- localeId, UPLURAL_TYPE_CARDINAL, status);
+ LocalPointer<PluralRules> pr(PluralRules::internalForLocale(localeId, UPLURAL_TYPE_CARDINAL, status), status);
if (U_FAILURE(status)) {
- return NULL;
+ return nullptr;
}
- SharedPluralRules *result = new SharedPluralRules(pr);
- if (result == NULL) {
- status = U_MEMORY_ALLOCATION_ERROR;
- delete pr;
- return NULL;
+ LocalPointer<SharedPluralRules> result(new SharedPluralRules(pr.getAlias()), status);
+ if (U_FAILURE(status)) {
+ return nullptr;
}
+ pr.orphan(); // result was successfully created so it nows pr.
result->addRef();
- return result;
+ return result.orphan();
}
/* end plural rules cache */
@@ -170,13 +184,13 @@ const SharedPluralRules* U_EXPORT2
PluralRules::createSharedInstance(
const Locale& locale, UPluralType type, UErrorCode& status) {
if (U_FAILURE(status)) {
- return NULL;
+ return nullptr;
}
if (type != UPLURAL_TYPE_CARDINAL) {
status = U_UNSUPPORTED_ERROR;
- return NULL;
+ return nullptr;
}
- const SharedPluralRules *result = NULL;
+ const SharedPluralRules *result = nullptr;
UnifiedCache::getByLocale(locale, result, status);
return result;
}
@@ -194,11 +208,11 @@ PluralRules::forLocale(const Locale& locale, UPluralType type, UErrorCode& statu
const SharedPluralRules *shared = createSharedInstance(
locale, type, status);
if (U_FAILURE(status)) {
- return NULL;
+ return nullptr;
}
PluralRules *result = (*shared)->clone();
shared->removeRef();
- if (result == NULL) {
+ if (result == nullptr) {
status = U_MEMORY_ALLOCATION_ERROR;
}
return result;
@@ -207,20 +221,23 @@ PluralRules::forLocale(const Locale& locale, UPluralType type, UErrorCode& statu
PluralRules* U_EXPORT2
PluralRules::internalForLocale(const Locale& locale, UPluralType type, UErrorCode& status) {
if (U_FAILURE(status)) {
- return NULL;
+ return nullptr;
}
if (type >= UPLURAL_TYPE_COUNT) {
status = U_ILLEGAL_ARGUMENT_ERROR;
- return NULL;
+ return nullptr;
}
- PluralRules *newObj = new PluralRules(status);
- if (newObj==NULL || U_FAILURE(status)) {
- delete newObj;
- return NULL;
+ LocalPointer<PluralRules> newObj(new PluralRules(status), status);
+ if (U_FAILURE(status)) {
+ return nullptr;
}
UnicodeString locRule = newObj->getRuleFromResource(locale, type, status);
- // TODO: which errors, if any, should be returned?
+ // TODO: which other errors, if any, should be returned?
if (locRule.length() == 0) {
+ // If an out-of-memory error occurred, then stop and report the failure.
+ if (status == U_MEMORY_ALLOCATION_ERROR) {
+ return nullptr;
+ }
// Locales with no specific rules (all numbers have the "other" category
// will return a U_MISSING_RESOURCE_ERROR at this point. This is not
// an error.
@@ -228,13 +245,13 @@ PluralRules::internalForLocale(const Locale& locale, UPluralType type, UErrorCod
status = U_ZERO_ERROR;
}
PluralRuleParser parser;
- parser.parse(locRule, newObj, status);
+ parser.parse(locRule, newObj.getAlias(), status);
// TODO: should rule parse errors be returned, or
// should we silently use default rules?
// Original impl used default rules.
// Ask the question to ICU Core.
- return newObj;
+ return newObj.orphan();
}
UnicodeString
@@ -248,28 +265,8 @@ PluralRules::select(double number) const {
}
UnicodeString
-PluralRules::select(const Formattable& obj, const NumberFormat& fmt, UErrorCode& status) const {
- if (U_SUCCESS(status)) {
- const DecimalFormat *decFmt = dynamic_cast<const DecimalFormat *>(&fmt);
- if (decFmt != NULL) {
- VisibleDigitsWithExponent digits;
- decFmt->initVisibleDigitsWithExponent(obj, digits, status);
- if (U_SUCCESS(status)) {
- return select(digits);
- }
- } else {
- double number = obj.getDouble(status);
- if (U_SUCCESS(status)) {
- return select(number);
- }
- }
- }
- return UnicodeString();
-}
-
-UnicodeString
PluralRules::select(const IFixedDecimal &number) const {
- if (mRules == NULL) {
+ if (mRules == nullptr) {
return UnicodeString(TRUE, PLURAL_DEFAULT_RULE, -1);
}
else {
@@ -277,26 +274,22 @@ PluralRules::select(const IFixedDecimal &number) const {
}
}
-UnicodeString
-PluralRules::select(const VisibleDigitsWithExponent &number) const {
- if (number.getExponent() != NULL) {
- return UnicodeString(TRUE, PLURAL_DEFAULT_RULE, -1);
- }
- return select(FixedDecimal(number.getMantissa()));
-}
-
StringEnumeration*
PluralRules::getKeywords(UErrorCode& status) const {
- if (U_FAILURE(status)) return NULL;
- StringEnumeration* nameEnumerator = new PluralKeywordEnumeration(mRules, status);
if (U_FAILURE(status)) {
- delete nameEnumerator;
- return NULL;
+ return nullptr;
}
-
- return nameEnumerator;
+ if (U_FAILURE(mInternalStatus)) {
+ status = mInternalStatus;
+ return nullptr;
+ }
+ LocalPointer<StringEnumeration> nameEnumerator(new PluralKeywordEnumeration(mRules, status), status);
+ if (U_FAILURE(status)) {
+ return nullptr;
+ }
+ return nameEnumerator.orphan();
}
double
@@ -312,7 +305,7 @@ PluralRules::getAllKeywordValues(const UnicodeString & /* keyword */, double * /
return 0;
}
-
+
static double scaleForInt(double d) {
double scale = 1.0;
while (d != floor(d)) {
@@ -347,7 +340,7 @@ getSamplesFromString(const UnicodeString &samples, double *dest,
dest[sampleCount++] = sampleValue;
}
} else {
-
+
FixedDecimal fixedLo(sampleRange.tempSubStringBetween(0, tildeIndex), status);
FixedDecimal fixedHi(sampleRange.tempSubStringBetween(tildeIndex+1), status);
double rangeLo = fixedLo.source;
@@ -363,7 +356,7 @@ getSamplesFromString(const UnicodeString &samples, double *dest,
// For ranges of samples with fraction decimal digits, scale the number up so that we
// are adding one in the units place. Avoids roundoffs from repetitive adds of tenths.
- double scale = scaleForInt(rangeLo);
+ double scale = scaleForInt(rangeLo);
double t = scaleForInt(rangeHi);
if (t > scale) {
scale = t;
@@ -394,21 +387,28 @@ getSamplesFromString(const UnicodeString &samples, double *dest,
int32_t
PluralRules::getSamples(const UnicodeString &keyword, double *dest,
int32_t destCapacity, UErrorCode& status) {
+ if (destCapacity == 0 || U_FAILURE(status)) {
+ return 0;
+ }
+ if (U_FAILURE(mInternalStatus)) {
+ status = mInternalStatus;
+ return 0;
+ }
RuleChain *rc = rulesForKeyword(keyword);
- if (rc == NULL || destCapacity == 0 || U_FAILURE(status)) {
+ if (rc == nullptr) {
return 0;
}
int32_t numSamples = getSamplesFromString(rc->fIntegerSamples, dest, destCapacity, status);
- if (numSamples == 0) {
+ if (numSamples == 0) {
numSamples = getSamplesFromString(rc->fDecimalSamples, dest, destCapacity, status);
}
return numSamples;
}
-
+
RuleChain *PluralRules::rulesForKeyword(const UnicodeString &keyword) const {
RuleChain *rc;
- for (rc = mRules; rc != NULL; rc = rc->fNext) {
+ for (rc = mRules; rc != nullptr; rc = rc->fNext) {
if (rc->fKeyword == keyword) {
break;
}
@@ -422,7 +422,7 @@ PluralRules::isKeyword(const UnicodeString& keyword) const {
if (0 == keyword.compare(PLURAL_KEYWORD_OTHER, 5)) {
return true;
}
- return rulesForKeyword(keyword) != NULL;
+ return rulesForKeyword(keyword) != nullptr;
}
UnicodeString
@@ -448,13 +448,13 @@ PluralRules::operator==(const PluralRules& other) const {
return FALSE;
}
myKeywordList->reset(status);
- while ((ptrKeyword=myKeywordList->snext(status))!=NULL) {
+ while ((ptrKeyword=myKeywordList->snext(status))!=nullptr) {
if (!other.isKeyword(*ptrKeyword)) {
return FALSE;
}
}
otherKeywordList->reset(status);
- while ((ptrKeyword=otherKeywordList->snext(status))!=NULL) {
+ while ((ptrKeyword=otherKeywordList->snext(status))!=nullptr) {
if (!this->isKeyword(*ptrKeyword)) {
return FALSE;
}
@@ -487,29 +487,33 @@ PluralRuleParser::parse(const UnicodeString& ruleData, PluralRules *prules, UErr
}
switch (type) {
case tAnd:
- U_ASSERT(curAndConstraint != NULL);
- curAndConstraint = curAndConstraint->add();
+ U_ASSERT(curAndConstraint != nullptr);
+ curAndConstraint = curAndConstraint->add(status);
break;
case tOr:
{
- U_ASSERT(currentChain != NULL);
+ U_ASSERT(currentChain != nullptr);
OrConstraint *orNode=currentChain->ruleHeader;
- while (orNode->next != NULL) {
+ while (orNode->next != nullptr) {
orNode = orNode->next;
}
orNode->next= new OrConstraint();
+ if (orNode->next == nullptr) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ break;
+ }
orNode=orNode->next;
- orNode->next=NULL;
- curAndConstraint = orNode->add();
+ orNode->next=nullptr;
+ curAndConstraint = orNode->add(status);
}
break;
case tIs:
- U_ASSERT(curAndConstraint != NULL);
+ U_ASSERT(curAndConstraint != nullptr);
U_ASSERT(curAndConstraint->value == -1);
- U_ASSERT(curAndConstraint->rangeList == NULL);
+ U_ASSERT(curAndConstraint->rangeList == nullptr);
break;
case tNot:
- U_ASSERT(curAndConstraint != NULL);
+ U_ASSERT(curAndConstraint != nullptr);
curAndConstraint->negated=TRUE;
break;
@@ -519,23 +523,29 @@ PluralRuleParser::parse(const UnicodeString& ruleData, PluralRules *prules, UErr
case tIn:
case tWithin:
case tEqual:
- U_ASSERT(curAndConstraint != NULL);
- curAndConstraint->rangeList = new UVector32(status);
- curAndConstraint->rangeList->addElement(-1, status); // range Low
- curAndConstraint->rangeList->addElement(-1, status); // range Hi
- rangeLowIdx = 0;
- rangeHiIdx = 1;
- curAndConstraint->value=PLURAL_RANGE_HIGH;
- curAndConstraint->integerOnly = (type != tWithin);
+ {
+ U_ASSERT(curAndConstraint != nullptr);
+ LocalPointer<UVector32> newRangeList(new UVector32(status), status);
+ if (U_FAILURE(status)) {
+ break;
+ }
+ curAndConstraint->rangeList = newRangeList.orphan();
+ curAndConstraint->rangeList->addElement(-1, status); // range Low
+ curAndConstraint->rangeList->addElement(-1, status); // range Hi
+ rangeLowIdx = 0;
+ rangeHiIdx = 1;
+ curAndConstraint->value=PLURAL_RANGE_HIGH;
+ curAndConstraint->integerOnly = (type != tWithin);
+ }
break;
case tNumber:
- U_ASSERT(curAndConstraint != NULL);
+ U_ASSERT(curAndConstraint != nullptr);
if ( (curAndConstraint->op==AndConstraint::MOD)&&
(curAndConstraint->opNum == -1 ) ) {
curAndConstraint->opNum=getNumberValue(token);
}
else {
- if (curAndConstraint->rangeList == NULL) {
+ if (curAndConstraint->rangeList == nullptr) {
// this is for an 'is' rule
curAndConstraint->value = getNumberValue(token);
} else {
@@ -546,7 +556,7 @@ PluralRuleParser::parse(const UnicodeString& ruleData, PluralRules *prules, UErr
}
else {
curAndConstraint->rangeList->setElementAt(getNumberValue(token), rangeHiIdx);
- if (curAndConstraint->rangeList->elementAti(rangeLowIdx) >
+ if (curAndConstraint->rangeList->elementAti(rangeLowIdx) >
curAndConstraint->rangeList->elementAti(rangeHiIdx)) {
// Range Lower bound > Range Upper bound.
// U_UNEXPECTED_TOKEN seems a little funny, but it is consistently
@@ -561,7 +571,7 @@ PluralRuleParser::parse(const UnicodeString& ruleData, PluralRules *prules, UErr
case tComma:
// TODO: rule syntax checking is inadequate, can happen with badly formed rules.
// Catch cases like "n mod 10, is 1" here instead.
- if (curAndConstraint == NULL || curAndConstraint->rangeList == NULL) {
+ if (curAndConstraint == nullptr || curAndConstraint->rangeList == nullptr) {
status = U_UNEXPECTED_TOKEN;
break;
}
@@ -572,7 +582,7 @@ PluralRuleParser::parse(const UnicodeString& ruleData, PluralRules *prules, UErr
curAndConstraint->rangeList->addElement(-1, status); // range Hi
break;
case tMod:
- U_ASSERT(curAndConstraint != NULL);
+ U_ASSERT(curAndConstraint != nullptr);
curAndConstraint->op=AndConstraint::MOD;
break;
case tVariableN:
@@ -580,24 +590,24 @@ PluralRuleParser::parse(const UnicodeString& ruleData, PluralRules *prules, UErr
case tVariableF:
case tVariableT:
case tVariableV:
- U_ASSERT(curAndConstraint != NULL);
+ U_ASSERT(curAndConstraint != nullptr);
curAndConstraint->digitsType = type;
break;
case tKeyword:
{
RuleChain *newChain = new RuleChain;
- if (newChain == NULL) {
+ if (newChain == nullptr) {
status = U_MEMORY_ALLOCATION_ERROR;
break;
}
newChain->fKeyword = token;
- if (prules->mRules == NULL) {
+ if (prules->mRules == nullptr) {
prules->mRules = newChain;
} else {
// The new rule chain goes at the end of the linked list of rule chains,
// unless there is an "other" keyword & chain. "other" must remain last.
RuleChain *insertAfter = prules->mRules;
- while (insertAfter->fNext!=NULL &&
+ while (insertAfter->fNext!=nullptr &&
insertAfter->fNext->fKeyword.compare(PLURAL_KEYWORD_OTHER, 5) != 0 ){
insertAfter=insertAfter->fNext;
}
@@ -605,8 +615,12 @@ PluralRuleParser::parse(const UnicodeString& ruleData, PluralRules *prules, UErr
insertAfter->fNext = newChain;
}
OrConstraint *orNode = new OrConstraint();
+ if (orNode == nullptr) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ break;
+ }
newChain->ruleHeader = orNode;
- curAndConstraint = orNode->add();
+ curAndConstraint = orNode->add(status);
currentChain = newChain;
}
break;
@@ -638,7 +652,7 @@ PluralRuleParser::parse(const UnicodeString& ruleData, PluralRules *prules, UErr
currentChain->fDecimalSamples.append(token);
}
break;
-
+
default:
break;
}
@@ -656,7 +670,7 @@ PluralRules::getRuleFromResource(const Locale& locale, UPluralType type, UErrorC
if (U_FAILURE(errCode)) {
return emptyStr;
}
- LocalUResourceBundlePointer rb(ures_openDirect(NULL, "plurals", &errCode));
+ LocalUResourceBundlePointer rb(ures_openDirect(nullptr, "plurals", &errCode));
if(U_FAILURE(errCode)) {
return emptyStr;
}
@@ -673,7 +687,7 @@ PluralRules::getRuleFromResource(const Locale& locale, UPluralType type, UErrorC
errCode = U_ILLEGAL_ARGUMENT_ERROR;
return emptyStr;
}
- LocalUResourceBundlePointer locRes(ures_getByKey(rb.getAlias(), typeKey, NULL, &errCode));
+ LocalUResourceBundlePointer locRes(ures_getByKey(rb.getAlias(), typeKey, nullptr, &errCode));
if(U_FAILURE(errCode)) {
return emptyStr;
}
@@ -681,25 +695,25 @@ PluralRules::getRuleFromResource(const Locale& locale, UPluralType type, UErrorC
const char *curLocaleName=locale.getName();
const UChar* s = ures_getStringByKey(locRes.getAlias(), curLocaleName, &resLen, &errCode);
- if (s == NULL) {
+ if (s == nullptr) {
// Check parent locales.
UErrorCode status = U_ZERO_ERROR;
char parentLocaleName[ULOC_FULLNAME_CAPACITY];
- const char *curLocaleName=locale.getName();
- uprv_strcpy(parentLocaleName, curLocaleName);
+ const char *curLocaleName2=locale.getName();
+ uprv_strcpy(parentLocaleName, curLocaleName2);
while (uloc_getParent(parentLocaleName, parentLocaleName,
ULOC_FULLNAME_CAPACITY, &status) > 0) {
resLen=0;
s = ures_getStringByKey(locRes.getAlias(), parentLocaleName, &resLen, &status);
- if (s != NULL) {
+ if (s != nullptr) {
errCode = U_ZERO_ERROR;
break;
}
status = U_ZERO_ERROR;
}
}
- if (s==NULL) {
+ if (s==nullptr) {
return emptyStr;
}
@@ -707,18 +721,18 @@ PluralRules::getRuleFromResource(const Locale& locale, UPluralType type, UErrorC
u_UCharsToChars(s, setKey, resLen + 1);
// printf("\n PluralRule: %s\n", setKey);
- LocalUResourceBundlePointer ruleRes(ures_getByKey(rb.getAlias(), "rules", NULL, &errCode));
+ LocalUResourceBundlePointer ruleRes(ures_getByKey(rb.getAlias(), "rules", nullptr, &errCode));
if(U_FAILURE(errCode)) {
return emptyStr;
}
- LocalUResourceBundlePointer setRes(ures_getByKey(ruleRes.getAlias(), setKey, NULL, &errCode));
+ LocalUResourceBundlePointer setRes(ures_getByKey(ruleRes.getAlias(), setKey, nullptr, &errCode));
if (U_FAILURE(errCode)) {
return emptyStr;
}
int32_t numberKeys = ures_getSize(setRes.getAlias());
UnicodeString result;
- const char *key=NULL;
+ const char *key=nullptr;
for(int32_t i=0; i<numberKeys; ++i) { // Keys are zero, one, few, ...
UnicodeString rules = ures_getNextUnicodeString(setRes.getAlias(), &key, &errCode);
UnicodeString uKey(key, -1, US_INV);
@@ -734,54 +748,46 @@ PluralRules::getRuleFromResource(const Locale& locale, UPluralType type, UErrorC
UnicodeString
PluralRules::getRules() const {
UnicodeString rules;
- if (mRules != NULL) {
+ if (mRules != nullptr) {
mRules->dumpRules(rules);
}
return rules;
}
-
-AndConstraint::AndConstraint() {
- op = AndConstraint::NONE;
- opNum=-1;
- value = -1;
- rangeList = NULL;
- negated = FALSE;
- integerOnly = FALSE;
- digitsType = none;
- next=NULL;
-}
-
-
AndConstraint::AndConstraint(const AndConstraint& other) {
+ this->fInternalStatus = other.fInternalStatus;
+ if (U_FAILURE(fInternalStatus)) {
+ return; // stop early if the object we are copying from is invalid.
+ }
this->op = other.op;
this->opNum=other.opNum;
this->value=other.value;
- this->rangeList=NULL;
- if (other.rangeList != NULL) {
- UErrorCode status = U_ZERO_ERROR;
- this->rangeList = new UVector32(status);
- this->rangeList->assign(*other.rangeList, status);
+ if (other.rangeList != nullptr) {
+ LocalPointer<UVector32> newRangeList(new UVector32(fInternalStatus), fInternalStatus);
+ if (U_FAILURE(fInternalStatus)) {
+ return;
+ }
+ this->rangeList = newRangeList.orphan();
+ this->rangeList->assign(*other.rangeList, fInternalStatus);
}
this->integerOnly=other.integerOnly;
this->negated=other.negated;
this->digitsType = other.digitsType;
- if (other.next==NULL) {
- this->next=NULL;
- }
- else {
+ if (other.next != nullptr) {
this->next = new AndConstraint(*other.next);
+ if (this->next == nullptr) {
+ fInternalStatus = U_MEMORY_ALLOCATION_ERROR;
+ }
}
}
AndConstraint::~AndConstraint() {
delete rangeList;
- if (next!=NULL) {
- delete next;
- }
+ rangeList = nullptr;
+ delete next;
+ next = nullptr;
}
-
UBool
AndConstraint::isFulfilled(const IFixedDecimal &number) {
UBool result = TRUE;
@@ -803,7 +809,7 @@ AndConstraint::isFulfilled(const IFixedDecimal &number) {
if (op == MOD) {
n = fmod(n, opNum);
}
- if (rangeList == NULL) {
+ if (rangeList == nullptr) {
result = value == -1 || // empty rule
n == value; // 'is' rule
break;
@@ -823,53 +829,67 @@ AndConstraint::isFulfilled(const IFixedDecimal &number) {
return result;
}
-
AndConstraint*
-AndConstraint::add()
-{
+AndConstraint::add(UErrorCode& status) {
+ if (U_FAILURE(fInternalStatus)) {
+ status = fInternalStatus;
+ return nullptr;
+ }
this->next = new AndConstraint();
+ if (this->next == nullptr) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ }
return this->next;
}
-OrConstraint::OrConstraint() {
- childNode=NULL;
- next=NULL;
-}
OrConstraint::OrConstraint(const OrConstraint& other) {
- if ( other.childNode == NULL ) {
- this->childNode = NULL;
+ this->fInternalStatus = other.fInternalStatus;
+ if (U_FAILURE(fInternalStatus)) {
+ return; // stop early if the object we are copying from is invalid.
}
- else {
+ if ( other.childNode != nullptr ) {
this->childNode = new AndConstraint(*(other.childNode));
+ if (this->childNode == nullptr) {
+ fInternalStatus = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
}
- if (other.next == NULL ) {
- this->next = NULL;
- }
- else {
+ if (other.next != nullptr ) {
this->next = new OrConstraint(*(other.next));
+ if (this->next == nullptr) {
+ fInternalStatus = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+ if (U_FAILURE(this->next->fInternalStatus)) {
+ this->fInternalStatus = this->next->fInternalStatus;
+ }
}
}
OrConstraint::~OrConstraint() {
- if (childNode!=NULL) {
- delete childNode;
- }
- if (next!=NULL) {
- delete next;
- }
+ delete childNode;
+ childNode = nullptr;
+ delete next;
+ next = nullptr;
}
AndConstraint*
-OrConstraint::add()
-{
+OrConstraint::add(UErrorCode& status) {
+ if (U_FAILURE(fInternalStatus)) {
+ status = fInternalStatus;
+ return nullptr;
+ }
OrConstraint *curOrConstraint=this;
{
- while (curOrConstraint->next!=NULL) {
+ while (curOrConstraint->next!=nullptr) {
curOrConstraint = curOrConstraint->next;
}
- U_ASSERT(curOrConstraint->childNode == NULL);
+ U_ASSERT(curOrConstraint->childNode == nullptr);
curOrConstraint->childNode = new AndConstraint();
+ if (curOrConstraint->childNode == nullptr) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ }
}
return curOrConstraint->childNode;
}
@@ -879,10 +899,10 @@ OrConstraint::isFulfilled(const IFixedDecimal &number) {
OrConstraint* orRule=this;
UBool result=FALSE;
- while (orRule!=NULL && !result) {
+ while (orRule!=nullptr && !result) {
result=TRUE;
AndConstraint* andRule = orRule->childNode;
- while (andRule!=NULL && result) {
+ while (andRule!=nullptr && result) {
result = andRule->isFulfilled(number);
andRule=andRule->next;
}
@@ -893,19 +913,33 @@ OrConstraint::isFulfilled(const IFixedDecimal &number) {
}
-RuleChain::RuleChain(): fKeyword(), fNext(NULL), ruleHeader(NULL), fDecimalSamples(), fIntegerSamples(),
- fDecimalSamplesUnbounded(FALSE), fIntegerSamplesUnbounded(FALSE) {
-}
-
-RuleChain::RuleChain(const RuleChain& other) :
- fKeyword(other.fKeyword), fNext(NULL), ruleHeader(NULL), fDecimalSamples(other.fDecimalSamples),
- fIntegerSamples(other.fIntegerSamples), fDecimalSamplesUnbounded(other.fDecimalSamplesUnbounded),
- fIntegerSamplesUnbounded(other.fIntegerSamplesUnbounded) {
- if (other.ruleHeader != NULL) {
+RuleChain::RuleChain(const RuleChain& other) :
+ fKeyword(other.fKeyword), fDecimalSamples(other.fDecimalSamples),
+ fIntegerSamples(other.fIntegerSamples), fDecimalSamplesUnbounded(other.fDecimalSamplesUnbounded),
+ fIntegerSamplesUnbounded(other.fIntegerSamplesUnbounded), fInternalStatus(other.fInternalStatus) {
+ if (U_FAILURE(this->fInternalStatus)) {
+ return; // stop early if the object we are copying from is invalid.
+ }
+ if (other.ruleHeader != nullptr) {
this->ruleHeader = new OrConstraint(*(other.ruleHeader));
+ if (this->ruleHeader == nullptr) {
+ this->fInternalStatus = U_MEMORY_ALLOCATION_ERROR;
+ }
+ else if (U_FAILURE(this->ruleHeader->fInternalStatus)) {
+ // If the OrConstraint wasn't fully copied, then set our status to failure as well.
+ this->fInternalStatus = this->ruleHeader->fInternalStatus;
+ return; // exit early.
+ }
}
- if (other.fNext != NULL ) {
+ if (other.fNext != nullptr ) {
this->fNext = new RuleChain(*other.fNext);
+ if (this->fNext == nullptr) {
+ this->fInternalStatus = U_MEMORY_ALLOCATION_ERROR;
+ }
+ else if (U_FAILURE(this->fNext->fInternalStatus)) {
+ // If the RuleChain wasn't fully copied, then set our status to failure as well.
+ this->fInternalStatus = this->fNext->fInternalStatus;
+ }
}
}
@@ -914,11 +948,10 @@ RuleChain::~RuleChain() {
delete ruleHeader;
}
-
UnicodeString
RuleChain::select(const IFixedDecimal &number) const {
if (!number.isNaN() && !number.isInfinite()) {
- for (const RuleChain *rules = this; rules != NULL; rules = rules->fNext) {
+ for (const RuleChain *rules = this; rules != nullptr; rules = rules->fNext) {
if (rules->ruleHeader->isFulfilled(number)) {
return rules->fKeyword;
}
@@ -950,17 +983,17 @@ void
RuleChain::dumpRules(UnicodeString& result) {
UChar digitString[16];
- if ( ruleHeader != NULL ) {
+ if ( ruleHeader != nullptr ) {
result += fKeyword;
result += COLON;
result += SPACE;
OrConstraint* orRule=ruleHeader;
- while ( orRule != NULL ) {
+ while ( orRule != nullptr ) {
AndConstraint* andRule=orRule->childNode;
- while ( andRule != NULL ) {
- if ((andRule->op==AndConstraint::NONE) && (andRule->rangeList==NULL) && (andRule->value == -1)) {
+ while ( andRule != nullptr ) {
+ if ((andRule->op==AndConstraint::NONE) && (andRule->rangeList==nullptr) && (andRule->value == -1)) {
// Empty Rules.
- } else if ( (andRule->op==AndConstraint::NONE) && (andRule->rangeList==NULL) ) {
+ } else if ( (andRule->op==AndConstraint::NONE) && (andRule->rangeList==nullptr) ) {
result += tokenString(andRule->digitsType);
result += UNICODE_STRING_SIMPLE(" is ");
if (andRule->negated) {
@@ -977,7 +1010,7 @@ RuleChain::dumpRules(UnicodeString& result) {
uprv_itou(digitString,16, andRule->opNum,10,0);
result += UnicodeString(digitString);
}
- if (andRule->rangeList==NULL) {
+ if (andRule->rangeList==nullptr) {
if (andRule->negated) {
result += UNICODE_STRING_SIMPLE(" is not ");
uprv_itou(digitString,16, andRule->value,10,0);
@@ -1020,16 +1053,16 @@ RuleChain::dumpRules(UnicodeString& result) {
}
}
}
- if ( (andRule=andRule->next) != NULL) {
+ if ( (andRule=andRule->next) != nullptr) {
result += UNICODE_STRING_SIMPLE(" and ");
}
}
- if ( (orRule = orRule->next) != NULL ) {
+ if ( (orRule = orRule->next) != nullptr ) {
result += UNICODE_STRING_SIMPLE(" or ");
}
}
}
- if ( fNext != NULL ) {
+ if ( fNext != nullptr ) {
result += UNICODE_STRING_SIMPLE("; ");
fNext->dumpRules(result);
}
@@ -1038,6 +1071,9 @@ RuleChain::dumpRules(UnicodeString& result) {
UErrorCode
RuleChain::getKeywords(int32_t capacityOfKeywords, UnicodeString* keywords, int32_t& arraySize) const {
+ if (U_FAILURE(fInternalStatus)) {
+ return fInternalStatus;
+ }
if ( arraySize < capacityOfKeywords-1 ) {
keywords[arraySize++]=fKeyword;
}
@@ -1045,7 +1081,7 @@ RuleChain::getKeywords(int32_t capacityOfKeywords, UnicodeString* keywords, int3
return U_BUFFER_OVERFLOW_ERROR;
}
- if ( fNext != NULL ) {
+ if ( fNext != nullptr ) {
return fNext->getKeywords(capacityOfKeywords, keywords, arraySize);
}
else {
@@ -1059,7 +1095,7 @@ RuleChain::isKeyword(const UnicodeString& keywordParam) const {
return TRUE;
}
- if ( fNext != NULL ) {
+ if ( fNext != nullptr ) {
return fNext->isKeyword(keywordParam);
}
else {
@@ -1068,9 +1104,9 @@ RuleChain::isKeyword(const UnicodeString& keywordParam) const {
}
-PluralRuleParser::PluralRuleParser() :
- ruleIndex(0), token(), type(none), prevType(none),
- curAndConstraint(NULL), currentChain(NULL), rangeLowIdx(-1), rangeHiIdx(-1)
+PluralRuleParser::PluralRuleParser() :
+ ruleIndex(0), token(), type(none), prevType(none),
+ curAndConstraint(nullptr), currentChain(nullptr), rangeLowIdx(-1), rangeHiIdx(-1)
{
}
@@ -1171,8 +1207,8 @@ PluralRuleParser::checkSyntax(UErrorCode &status)
break;
case tNumber:
if (type != tDot2 && type != tSemiColon && type != tIs && type != tNot &&
- type != tIn && type != tEqual && type != tNotEqual && type != tWithin &&
- type != tAnd && type != tOr && type != tComma && type != tAt &&
+ type != tIn && type != tEqual && type != tNotEqual && type != tWithin &&
+ type != tAnd && type != tOr && type != tComma && type != tAt &&
type != tEOF)
{
status = U_UNEXPECTED_TOKEN;
@@ -1217,7 +1253,7 @@ PluralRuleParser::getNextToken(UErrorCode &status)
return;
}
int32_t curIndex= ruleIndex;
-
+
switch (type) {
case tColon:
case tSemiColon:
@@ -1322,7 +1358,7 @@ PluralRuleParser::charType(UChar ch) {
// Set token type for reserved words in the Plural Rule syntax.
-tokenType
+tokenType
PluralRuleParser::getKeyType(const UnicodeString &token, tokenType keyType)
{
if (keyType != tKeyword) {
@@ -1368,21 +1404,36 @@ PluralKeywordEnumeration::PluralKeywordEnumeration(RuleChain *header, UErrorCode
return;
}
fKeywordNames.setDeleter(uprv_deleteUObject);
- UBool addKeywordOther=TRUE;
- RuleChain *node=header;
- while(node!=NULL) {
- fKeywordNames.addElement(new UnicodeString(node->fKeyword), status);
+ UBool addKeywordOther = TRUE;
+ RuleChain *node = header;
+ while (node != nullptr) {
+ auto newElem = new UnicodeString(node->fKeyword);
+ if (newElem == nullptr) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+ fKeywordNames.addElement(newElem, status);
if (U_FAILURE(status)) {
+ delete newElem;
return;
}
if (0 == node->fKeyword.compare(PLURAL_KEYWORD_OTHER, 5)) {
- addKeywordOther= FALSE;
+ addKeywordOther = FALSE;
}
- node=node->fNext;
+ node = node->fNext;
}
if (addKeywordOther) {
- fKeywordNames.addElement(new UnicodeString(PLURAL_KEYWORD_OTHER), status);
+ auto newElem = new UnicodeString(PLURAL_KEYWORD_OTHER);
+ if (newElem == nullptr) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+ fKeywordNames.addElement(newElem, status);
+ if (U_FAILURE(status)) {
+ delete newElem;
+ return;
+ }
}
}
@@ -1391,7 +1442,7 @@ PluralKeywordEnumeration::snext(UErrorCode& status) {
if (U_SUCCESS(status) && pos < fKeywordNames.size()) {
return (const UnicodeString*)fKeywordNames.elementAt(pos++);
}
- return NULL;
+ return nullptr;
}
void
@@ -1401,7 +1452,7 @@ PluralKeywordEnumeration::reset(UErrorCode& /*status*/) {
int32_t
PluralKeywordEnumeration::count(UErrorCode& /*status*/) const {
- return fKeywordNames.size();
+ return fKeywordNames.size();
}
PluralKeywordEnumeration::~PluralKeywordEnumeration() {
@@ -1425,18 +1476,6 @@ PluralOperand tokenTypeToPluralOperand(tokenType tt) {
}
}
-IFixedDecimal::~IFixedDecimal() = default;
-
-FixedDecimal::FixedDecimal(const VisibleDigits &digits) {
- digits.getFixedDecimal(
- source, intValue, decimalDigits,
- decimalDigitsWithoutTrailingZeros,
- visibleDecimalDigitCount, hasIntegerValue);
- isNegative = digits.isNegative();
- _isNaN = digits.isNaN();
- _isInfinite = digits.isInfinite();
-}
-
FixedDecimal::FixedDecimal(double n, int32_t v, int64_t f) {
init(n, v, f);
// check values. TODO make into unit test.
@@ -1474,14 +1513,14 @@ FixedDecimal::FixedDecimal() {
FixedDecimal::FixedDecimal(const UnicodeString &num, UErrorCode &status) {
CharString cs;
cs.appendInvariantChars(num, status);
- DigitList dl;
- dl.set(cs.toStringPiece(), status);
+ DecimalQuantity dl;
+ dl.setToDecNumber(cs.toStringPiece(), status);
if (U_FAILURE(status)) {
init(0, 0, 0);
return;
}
int32_t decimalPoint = num.indexOf(DOT);
- double n = dl.getDouble();
+ double n = dl.toDouble();
if (decimalPoint == -1) {
init(n, 0, 0);
} else {
@@ -1497,7 +1536,7 @@ FixedDecimal::FixedDecimal(const FixedDecimal &other) {
decimalDigits = other.decimalDigits;
decimalDigitsWithoutTrailingZeros = other.decimalDigitsWithoutTrailingZeros;
intValue = other.intValue;
- hasIntegerValue = other.hasIntegerValue;
+ _hasIntegerValue = other._hasIntegerValue;
isNegative = other.isNegative;
_isNaN = other._isNaN;
_isInfinite = other._isInfinite;
@@ -1521,10 +1560,10 @@ void FixedDecimal::init(double n, int32_t v, int64_t f) {
v = 0;
f = 0;
intValue = 0;
- hasIntegerValue = FALSE;
+ _hasIntegerValue = FALSE;
} else {
intValue = (int64_t)source;
- hasIntegerValue = (source == intValue);
+ _hasIntegerValue = (source == intValue);
}
visibleDecimalDigitCount = v;
@@ -1586,7 +1625,7 @@ int32_t FixedDecimal::decimals(double n) {
if (buf[i] != '0') {
break;
}
- --numFractionDigits;
+ --numFractionDigits;
}
numFractionDigits -= exponent; // Fraction part of fixed point representation.
return numFractionDigits;
@@ -1635,7 +1674,7 @@ void FixedDecimal::adjustForMinFractionDigits(int32_t minFractionDigits) {
visibleDecimalDigitCount += numTrailingFractionZeros;
}
}
-
+
double FixedDecimal::getPluralOperand(PluralOperand operand) const {
switch(operand) {
@@ -1658,6 +1697,10 @@ bool FixedDecimal::isInfinite() const {
return _isInfinite;
}
+bool FixedDecimal::hasIntegerValue() const {
+ return _hasIntegerValue;
+}
+
bool FixedDecimal::isNanOrInfinity() const {
return _isNaN || _isInfinite;
}
@@ -1669,41 +1712,39 @@ int32_t FixedDecimal::getVisibleFractionDigitCount() const {
PluralAvailableLocalesEnumeration::PluralAvailableLocalesEnumeration(UErrorCode &status) {
- fLocales = NULL;
- fRes = NULL;
fOpenStatus = status;
if (U_FAILURE(status)) {
return;
}
- fOpenStatus = U_ZERO_ERROR;
- LocalUResourceBundlePointer rb(ures_openDirect(NULL, "plurals", &fOpenStatus));
- fLocales = ures_getByKey(rb.getAlias(), "locales", NULL, &fOpenStatus);
+ fOpenStatus = U_ZERO_ERROR; // clear any warnings.
+ LocalUResourceBundlePointer rb(ures_openDirect(nullptr, "plurals", &fOpenStatus));
+ fLocales = ures_getByKey(rb.getAlias(), "locales", nullptr, &fOpenStatus);
}
PluralAvailableLocalesEnumeration::~PluralAvailableLocalesEnumeration() {
ures_close(fLocales);
ures_close(fRes);
- fLocales = NULL;
- fRes = NULL;
+ fLocales = nullptr;
+ fRes = nullptr;
}
const char *PluralAvailableLocalesEnumeration::next(int32_t *resultLength, UErrorCode &status) {
if (U_FAILURE(status)) {
- return NULL;
+ return nullptr;
}
if (U_FAILURE(fOpenStatus)) {
status = fOpenStatus;
- return NULL;
+ return nullptr;
}
fRes = ures_getNextResource(fLocales, fRes, &status);
- if (fRes == NULL || U_FAILURE(status)) {
+ if (fRes == nullptr || U_FAILURE(status)) {
if (status == U_INDEX_OUTOFBOUNDS_ERROR) {
status = U_ZERO_ERROR;
}
- return NULL;
+ return nullptr;
}
const char *result = ures_getKey(fRes);
- if (resultLength != NULL) {
+ if (resultLength != nullptr) {
*resultLength = static_cast<int32_t>(uprv_strlen(result));
}
return result;
diff --git a/Build/source/libs/icu/icu-src/source/i18n/plurrule_impl.h b/Build/source/libs/icu/icu-src/source/i18n/plurrule_impl.h
index b93fc501bac..3a919ea9f5d 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/plurrule_impl.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/plurrule_impl.h
@@ -40,67 +40,73 @@ class DigitInterval;
class PluralRules;
class VisibleDigits;
-static const UChar DOT = ((UChar)0x002E);
-static const UChar SINGLE_QUOTE = ((UChar)0x0027);
-static const UChar SLASH = ((UChar)0x002F);
-static const UChar BACKSLASH = ((UChar)0x005C);
-static const UChar SPACE = ((UChar)0x0020);
-static const UChar EXCLAMATION = ((UChar)0x0021);
-static const UChar QUOTATION_MARK = ((UChar)0x0022);
-static const UChar NUMBER_SIGN = ((UChar)0x0023);
-static const UChar PERCENT_SIGN = ((UChar)0x0025);
-static const UChar ASTERISK = ((UChar)0x002A);
-static const UChar COMMA = ((UChar)0x002C);
-static const UChar HYPHEN = ((UChar)0x002D);
-static const UChar U_ZERO = ((UChar)0x0030);
-static const UChar U_ONE = ((UChar)0x0031);
-static const UChar U_TWO = ((UChar)0x0032);
-static const UChar U_THREE = ((UChar)0x0033);
-static const UChar U_FOUR = ((UChar)0x0034);
-static const UChar U_FIVE = ((UChar)0x0035);
-static const UChar U_SIX = ((UChar)0x0036);
-static const UChar U_SEVEN = ((UChar)0x0037);
-static const UChar U_EIGHT = ((UChar)0x0038);
-static const UChar U_NINE = ((UChar)0x0039);
-static const UChar COLON = ((UChar)0x003A);
-static const UChar SEMI_COLON = ((UChar)0x003B);
-static const UChar EQUALS = ((UChar)0x003D);
-static const UChar AT = ((UChar)0x0040);
-static const UChar CAP_A = ((UChar)0x0041);
-static const UChar CAP_B = ((UChar)0x0042);
-static const UChar CAP_R = ((UChar)0x0052);
-static const UChar CAP_Z = ((UChar)0x005A);
-static const UChar LOWLINE = ((UChar)0x005F);
-static const UChar LEFTBRACE = ((UChar)0x007B);
-static const UChar RIGHTBRACE = ((UChar)0x007D);
-static const UChar TILDE = ((UChar)0x007E);
-static const UChar ELLIPSIS = ((UChar)0x2026);
-
-static const UChar LOW_A = ((UChar)0x0061);
-static const UChar LOW_B = ((UChar)0x0062);
-static const UChar LOW_C = ((UChar)0x0063);
-static const UChar LOW_D = ((UChar)0x0064);
-static const UChar LOW_E = ((UChar)0x0065);
-static const UChar LOW_F = ((UChar)0x0066);
-static const UChar LOW_G = ((UChar)0x0067);
-static const UChar LOW_H = ((UChar)0x0068);
-static const UChar LOW_I = ((UChar)0x0069);
-static const UChar LOW_J = ((UChar)0x006a);
-static const UChar LOW_K = ((UChar)0x006B);
-static const UChar LOW_L = ((UChar)0x006C);
-static const UChar LOW_M = ((UChar)0x006D);
-static const UChar LOW_N = ((UChar)0x006E);
-static const UChar LOW_O = ((UChar)0x006F);
-static const UChar LOW_P = ((UChar)0x0070);
-static const UChar LOW_Q = ((UChar)0x0071);
-static const UChar LOW_R = ((UChar)0x0072);
-static const UChar LOW_S = ((UChar)0x0073);
-static const UChar LOW_T = ((UChar)0x0074);
-static const UChar LOW_U = ((UChar)0x0075);
-static const UChar LOW_V = ((UChar)0x0076);
-static const UChar LOW_W = ((UChar)0x0077);
-static const UChar LOW_Y = ((UChar)0x0079);
-static const UChar LOW_Z = ((UChar)0x007A);
+namespace pluralimpl {
+
+// TODO: Remove this and replace with u"" literals. Was for EBCDIC compatibility.
+
+static const UChar DOT = ((UChar) 0x002E);
+static const UChar SINGLE_QUOTE = ((UChar) 0x0027);
+static const UChar SLASH = ((UChar) 0x002F);
+static const UChar BACKSLASH = ((UChar) 0x005C);
+static const UChar SPACE = ((UChar) 0x0020);
+static const UChar EXCLAMATION = ((UChar) 0x0021);
+static const UChar QUOTATION_MARK = ((UChar) 0x0022);
+static const UChar NUMBER_SIGN = ((UChar) 0x0023);
+static const UChar PERCENT_SIGN = ((UChar) 0x0025);
+static const UChar ASTERISK = ((UChar) 0x002A);
+static const UChar COMMA = ((UChar) 0x002C);
+static const UChar HYPHEN = ((UChar) 0x002D);
+static const UChar U_ZERO = ((UChar) 0x0030);
+static const UChar U_ONE = ((UChar) 0x0031);
+static const UChar U_TWO = ((UChar) 0x0032);
+static const UChar U_THREE = ((UChar) 0x0033);
+static const UChar U_FOUR = ((UChar) 0x0034);
+static const UChar U_FIVE = ((UChar) 0x0035);
+static const UChar U_SIX = ((UChar) 0x0036);
+static const UChar U_SEVEN = ((UChar) 0x0037);
+static const UChar U_EIGHT = ((UChar) 0x0038);
+static const UChar U_NINE = ((UChar) 0x0039);
+static const UChar COLON = ((UChar) 0x003A);
+static const UChar SEMI_COLON = ((UChar) 0x003B);
+static const UChar EQUALS = ((UChar) 0x003D);
+static const UChar AT = ((UChar) 0x0040);
+static const UChar CAP_A = ((UChar) 0x0041);
+static const UChar CAP_B = ((UChar) 0x0042);
+static const UChar CAP_R = ((UChar) 0x0052);
+static const UChar CAP_Z = ((UChar) 0x005A);
+static const UChar LOWLINE = ((UChar) 0x005F);
+static const UChar LEFTBRACE = ((UChar) 0x007B);
+static const UChar RIGHTBRACE = ((UChar) 0x007D);
+static const UChar TILDE = ((UChar) 0x007E);
+static const UChar ELLIPSIS = ((UChar) 0x2026);
+
+static const UChar LOW_A = ((UChar) 0x0061);
+static const UChar LOW_B = ((UChar) 0x0062);
+static const UChar LOW_C = ((UChar) 0x0063);
+static const UChar LOW_D = ((UChar) 0x0064);
+static const UChar LOW_E = ((UChar) 0x0065);
+static const UChar LOW_F = ((UChar) 0x0066);
+static const UChar LOW_G = ((UChar) 0x0067);
+static const UChar LOW_H = ((UChar) 0x0068);
+static const UChar LOW_I = ((UChar) 0x0069);
+static const UChar LOW_J = ((UChar) 0x006a);
+static const UChar LOW_K = ((UChar) 0x006B);
+static const UChar LOW_L = ((UChar) 0x006C);
+static const UChar LOW_M = ((UChar) 0x006D);
+static const UChar LOW_N = ((UChar) 0x006E);
+static const UChar LOW_O = ((UChar) 0x006F);
+static const UChar LOW_P = ((UChar) 0x0070);
+static const UChar LOW_Q = ((UChar) 0x0071);
+static const UChar LOW_R = ((UChar) 0x0072);
+static const UChar LOW_S = ((UChar) 0x0073);
+static const UChar LOW_T = ((UChar) 0x0074);
+static const UChar LOW_U = ((UChar) 0x0075);
+static const UChar LOW_V = ((UChar) 0x0076);
+static const UChar LOW_W = ((UChar) 0x0077);
+static const UChar LOW_Y = ((UChar) 0x0079);
+static const UChar LOW_Z = ((UChar) 0x007A);
+
+}
static const int32_t PLURAL_RANGE_HIGH = 0x7fffffff;
@@ -175,7 +181,6 @@ private:
kRangeList,
kSamples
};
-
};
enum PluralOperand {
@@ -244,6 +249,9 @@ class U_I18N_API IFixedDecimal {
virtual bool isNaN() const = 0;
virtual bool isInfinite() const = 0;
+
+ /** Whether the number has no nonzero fraction digits. */
+ virtual bool hasIntegerValue() const = 0;
};
/**
@@ -263,7 +271,6 @@ class U_I18N_API FixedDecimal: public IFixedDecimal, public UObject {
FixedDecimal(double n, int32_t v, int64_t f);
FixedDecimal(double n, int32_t);
explicit FixedDecimal(double n);
- explicit FixedDecimal(const VisibleDigits &n);
FixedDecimal();
~FixedDecimal() U_OVERRIDE;
FixedDecimal(const UnicodeString &s, UErrorCode &ec);
@@ -272,6 +279,7 @@ class U_I18N_API FixedDecimal: public IFixedDecimal, public UObject {
double getPluralOperand(PluralOperand operand) const U_OVERRIDE;
bool isNaN() const U_OVERRIDE;
bool isInfinite() const U_OVERRIDE;
+ bool hasIntegerValue() const U_OVERRIDE;
bool isNanOrInfinity() const; // used in decimfmtimpl.cpp
@@ -290,7 +298,7 @@ class U_I18N_API FixedDecimal: public IFixedDecimal, public UObject {
int64_t decimalDigits;
int64_t decimalDigitsWithoutTrailingZeros;
int64_t intValue;
- UBool hasIntegerValue;
+ UBool _hasIntegerValue;
UBool isNegative;
UBool _isNaN;
UBool _isInfinite;
@@ -302,32 +310,36 @@ public:
NONE,
MOD
} RuleOp;
- RuleOp op;
- int32_t opNum; // for mod expressions, the right operand of the mod.
- int32_t value; // valid for 'is' rules only.
- UVector32 *rangeList; // for 'in', 'within' rules. Null otherwise.
- UBool negated; // TRUE for negated rules.
- UBool integerOnly; // TRUE for 'within' rules.
- tokenType digitsType; // n | i | v | f constraint.
- AndConstraint *next;
-
- AndConstraint();
+ RuleOp op = AndConstraint::NONE;
+ int32_t opNum = -1; // for mod expressions, the right operand of the mod.
+ int32_t value = -1; // valid for 'is' rules only.
+ UVector32 *rangeList = nullptr; // for 'in', 'within' rules. Null otherwise.
+ UBool negated = FALSE; // TRUE for negated rules.
+ UBool integerOnly = FALSE; // TRUE for 'within' rules.
+ tokenType digitsType = none; // n | i | v | f constraint.
+ AndConstraint *next = nullptr;
+ // Internal error status, used for errors that occur during the copy constructor.
+ UErrorCode fInternalStatus = U_ZERO_ERROR;
+
+ AndConstraint() = default;
AndConstraint(const AndConstraint& other);
virtual ~AndConstraint();
- AndConstraint* add();
+ AndConstraint* add(UErrorCode& status);
// UBool isFulfilled(double number);
UBool isFulfilled(const IFixedDecimal &number);
};
class OrConstraint : public UMemory {
public:
- AndConstraint *childNode;
- OrConstraint *next;
- OrConstraint();
+ AndConstraint *childNode = nullptr;
+ OrConstraint *next = nullptr;
+ // Internal error status, used for errors that occur during the copy constructor.
+ UErrorCode fInternalStatus = U_ZERO_ERROR;
+ OrConstraint() = default;
OrConstraint(const OrConstraint& other);
virtual ~OrConstraint();
- AndConstraint* add();
+ AndConstraint* add(UErrorCode& status);
// UBool isFulfilled(double number);
UBool isFulfilled(const IFixedDecimal &number);
};
@@ -335,15 +347,16 @@ public:
class RuleChain : public UMemory {
public:
UnicodeString fKeyword;
- RuleChain *fNext;
- OrConstraint *ruleHeader;
+ RuleChain *fNext = nullptr;
+ OrConstraint *ruleHeader = nullptr;
UnicodeString fDecimalSamples; // Samples strings from rule source
UnicodeString fIntegerSamples; // without @decimal or @integer, otherwise unprocessed.
- UBool fDecimalSamplesUnbounded;
- UBool fIntegerSamplesUnbounded;
-
+ UBool fDecimalSamplesUnbounded = FALSE;
+ UBool fIntegerSamplesUnbounded = FALSE;
+ // Internal error status, used for errors that occur during the copy constructor.
+ UErrorCode fInternalStatus = U_ZERO_ERROR;
- RuleChain();
+ RuleChain() = default;
RuleChain(const RuleChain& other);
virtual ~RuleChain();
@@ -377,8 +390,8 @@ class U_I18N_API PluralAvailableLocalesEnumeration: public StringEnumeration {
virtual int32_t count(UErrorCode& status) const;
private:
UErrorCode fOpenStatus;
- UResourceBundle *fLocales;
- UResourceBundle *fRes;
+ UResourceBundle *fLocales = nullptr;
+ UResourceBundle *fRes = nullptr;
};
U_NAMESPACE_END
diff --git a/Build/source/libs/icu/icu-src/source/i18n/precision.cpp b/Build/source/libs/icu/icu-src/source/i18n/precision.cpp
deleted file mode 100644
index bb4970c05fa..00000000000
--- a/Build/source/libs/icu/icu-src/source/i18n/precision.cpp
+++ /dev/null
@@ -1,444 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
- * Copyright (C) 2015, International Business Machines
- * Corporation and others. All Rights Reserved.
- *
- * file name: precisison.cpp
- */
-
-#include <math.h>
-
-#include "unicode/utypes.h"
-
-#if !UCONFIG_NO_FORMATTING
-
-#include "digitlst.h"
-#include "fmtableimp.h"
-#include "precision.h"
-#include "putilimp.h"
-#include "visibledigits.h"
-
-U_NAMESPACE_BEGIN
-
-static const int32_t gPower10[] = {1, 10, 100, 1000};
-
-FixedPrecision::FixedPrecision()
- : fExactOnly(FALSE), fFailIfOverMax(FALSE), fRoundingMode(DecimalFormat::kRoundHalfEven) {
- fMin.setIntDigitCount(1);
- fMin.setFracDigitCount(0);
-}
-
-UBool
-FixedPrecision::isRoundingRequired(
- int32_t upperExponent, int32_t lowerExponent) const {
- int32_t leastSigAllowed = fMax.getLeastSignificantInclusive();
- int32_t maxSignificantDigits = fSignificant.getMax();
- int32_t roundDigit;
- if (maxSignificantDigits == INT32_MAX) {
- roundDigit = leastSigAllowed;
- } else {
- int32_t limitDigit = upperExponent - maxSignificantDigits;
- roundDigit =
- limitDigit > leastSigAllowed ? limitDigit : leastSigAllowed;
- }
- return (roundDigit > lowerExponent);
-}
-
-DigitList &
-FixedPrecision::round(
- DigitList &value, int32_t exponent, UErrorCode &status) const {
- if (U_FAILURE(status)) {
- return value;
- }
- value .fContext.status &= ~DEC_Inexact;
- if (!fRoundingIncrement.isZero()) {
- if (exponent == 0) {
- value.quantize(fRoundingIncrement, status);
- } else {
- DigitList adjustedIncrement(fRoundingIncrement);
- adjustedIncrement.shiftDecimalRight(exponent);
- value.quantize(adjustedIncrement, status);
- }
- if (U_FAILURE(status)) {
- return value;
- }
- }
- int32_t leastSig = fMax.getLeastSignificantInclusive();
- if (leastSig == INT32_MIN) {
- value.round(fSignificant.getMax());
- } else {
- value.roundAtExponent(
- exponent + leastSig,
- fSignificant.getMax());
- }
- if (fExactOnly && (value.fContext.status & DEC_Inexact)) {
- status = U_FORMAT_INEXACT_ERROR;
- } else if (fFailIfOverMax) {
- // Smallest interval for value stored in interval
- DigitInterval interval;
- value.getSmallestInterval(interval);
- if (fMax.getIntDigitCount() < interval.getIntDigitCount()) {
- status = U_ILLEGAL_ARGUMENT_ERROR;
- }
- }
- return value;
-}
-
-DigitInterval &
-FixedPrecision::getIntervalForZero(DigitInterval &interval) const {
- interval = fMin;
- if (fSignificant.getMin() > 0) {
- interval.expandToContainDigit(interval.getIntDigitCount() - fSignificant.getMin());
- }
- interval.shrinkToFitWithin(fMax);
- return interval;
-}
-
-DigitInterval &
-FixedPrecision::getInterval(
- int32_t upperExponent, DigitInterval &interval) const {
- if (fSignificant.getMin() > 0) {
- interval.expandToContainDigit(
- upperExponent - fSignificant.getMin());
- }
- interval.expandToContain(fMin);
- interval.shrinkToFitWithin(fMax);
- return interval;
-}
-
-DigitInterval &
-FixedPrecision::getInterval(
- const DigitList &value, DigitInterval &interval) const {
- if (value.isZero()) {
- interval = fMin;
- if (fSignificant.getMin() > 0) {
- interval.expandToContainDigit(interval.getIntDigitCount() - fSignificant.getMin());
- }
- } else {
- value.getSmallestInterval(interval);
- if (fSignificant.getMin() > 0) {
- interval.expandToContainDigit(
- value.getUpperExponent() - fSignificant.getMin());
- }
- interval.expandToContain(fMin);
- }
- interval.shrinkToFitWithin(fMax);
- return interval;
-}
-
-UBool
-FixedPrecision::isFastFormattable() const {
- return (fMin.getFracDigitCount() == 0 && fSignificant.isNoConstraints() && fRoundingIncrement.isZero() && !fFailIfOverMax);
-}
-
-UBool
-FixedPrecision::handleNonNumeric(DigitList &value, VisibleDigits &digits) {
- if (value.isNaN()) {
- digits.setNaN();
- return TRUE;
- }
- if (value.isInfinite()) {
- digits.setInfinite();
- if (!value.isPositive()) {
- digits.setNegative();
- }
- return TRUE;
- }
- return FALSE;
-}
-
-VisibleDigits &
-FixedPrecision::initVisibleDigits(
- DigitList &value,
- VisibleDigits &digits,
- UErrorCode &status) const {
- if (U_FAILURE(status)) {
- return digits;
- }
- digits.clear();
- if (handleNonNumeric(value, digits)) {
- return digits;
- }
- if (!value.isPositive()) {
- digits.setNegative();
- }
- value.setRoundingMode(fRoundingMode);
- round(value, 0, status);
- getInterval(value, digits.fInterval);
- digits.fExponent = value.getLowerExponent();
- value.appendDigitsTo(digits.fDigits, status);
- return digits;
-}
-
-VisibleDigits &
-FixedPrecision::initVisibleDigits(
- int64_t value,
- VisibleDigits &digits,
- UErrorCode &status) const {
- if (U_FAILURE(status)) {
- return digits;
- }
- if (!fRoundingIncrement.isZero()) {
- // If we have round increment, use digit list.
- DigitList digitList;
- digitList.set(value);
- return initVisibleDigits(digitList, digits, status);
- }
- // Try fast path
- if (initVisibleDigits(value, 0, digits, status)) {
- digits.fAbsDoubleValue = fabs((double) value);
- digits.fAbsDoubleValueSet = U_SUCCESS(status) && !digits.isOverMaxDigits();
- return digits;
- }
- // Oops have to use digit list
- DigitList digitList;
- digitList.set(value);
- return initVisibleDigits(digitList, digits, status);
-}
-
-VisibleDigits &
-FixedPrecision::initVisibleDigits(
- double value,
- VisibleDigits &digits,
- UErrorCode &status) const {
- if (U_FAILURE(status)) {
- return digits;
- }
- digits.clear();
- if (uprv_isNaN(value)) {
- digits.setNaN();
- return digits;
- }
- if (uprv_isPositiveInfinity(value)) {
- digits.setInfinite();
- return digits;
- }
- if (uprv_isNegativeInfinity(value)) {
- digits.setInfinite();
- digits.setNegative();
- return digits;
- }
- if (!fRoundingIncrement.isZero()) {
- // If we have round increment, use digit list.
- DigitList digitList;
- digitList.set(value);
- return initVisibleDigits(digitList, digits, status);
- }
- // Try to find n such that value * 10^n is an integer
- int32_t n = -1;
- double scaled;
- for (int32_t i = 0; i < UPRV_LENGTHOF(gPower10); ++i) {
- scaled = value * gPower10[i];
- if (scaled > MAX_INT64_IN_DOUBLE || scaled < -MAX_INT64_IN_DOUBLE) {
- break;
- }
- if (scaled == floor(scaled)) {
- n = i;
- break;
- }
- }
- // Try fast path
- if (n >= 0 && initVisibleDigits(static_cast<int64_t>(scaled), -n, digits, status)) {
- digits.fAbsDoubleValue = fabs(value);
- digits.fAbsDoubleValueSet = U_SUCCESS(status) && !digits.isOverMaxDigits();
- // Adjust for negative 0 because when we cast to an int64,
- // negative 0 becomes positive 0.
- if (scaled == 0.0 && uprv_isNegative(scaled)) {
- digits.setNegative();
- }
- return digits;
- }
-
- // Oops have to use digit list
- DigitList digitList;
- digitList.set(value);
- return initVisibleDigits(digitList, digits, status);
-}
-
-UBool
-FixedPrecision::initVisibleDigits(
- int64_t mantissa,
- int32_t exponent,
- VisibleDigits &digits,
- UErrorCode &status) const {
- if (U_FAILURE(status)) {
- return TRUE;
- }
- digits.clear();
-
- // Precompute fAbsIntValue if it is small enough, but we don't know yet
- // if it will be valid.
- UBool absIntValueComputed = FALSE;
- if (mantissa > -1000000000000000000LL /* -1e18 */
- && mantissa < 1000000000000000000LL /* 1e18 */) {
- digits.fAbsIntValue = mantissa;
- if (digits.fAbsIntValue < 0) {
- digits.fAbsIntValue = -digits.fAbsIntValue;
- }
- int32_t i = 0;
- int32_t maxPower10Exp = UPRV_LENGTHOF(gPower10) - 1;
- for (; i > exponent + maxPower10Exp; i -= maxPower10Exp) {
- digits.fAbsIntValue /= gPower10[maxPower10Exp];
- }
- digits.fAbsIntValue /= gPower10[i - exponent];
- absIntValueComputed = TRUE;
- }
- if (mantissa == 0) {
- getIntervalForZero(digits.fInterval);
- digits.fAbsIntValueSet = absIntValueComputed;
- return TRUE;
- }
- // be sure least significant digit is non zero
- while (mantissa % 10 == 0) {
- mantissa /= 10;
- ++exponent;
- }
- if (mantissa < 0) {
- digits.fDigits.append((char) -(mantissa % -10), status);
- mantissa /= -10;
- digits.setNegative();
- }
- while (mantissa) {
- digits.fDigits.append((char) (mantissa % 10), status);
- mantissa /= 10;
- }
- if (U_FAILURE(status)) {
- return TRUE;
- }
- digits.fExponent = exponent;
- int32_t upperExponent = exponent + digits.fDigits.length();
- if (fFailIfOverMax && upperExponent > fMax.getIntDigitCount()) {
- status = U_ILLEGAL_ARGUMENT_ERROR;
- return TRUE;
- }
- UBool roundingRequired =
- isRoundingRequired(upperExponent, exponent);
- if (roundingRequired) {
- if (fExactOnly) {
- status = U_FORMAT_INEXACT_ERROR;
- return TRUE;
- }
- return FALSE;
- }
- digits.fInterval.setLeastSignificantInclusive(exponent);
- digits.fInterval.setMostSignificantExclusive(upperExponent);
- getInterval(upperExponent, digits.fInterval);
-
- // The intValue we computed above is only valid if our visible digits
- // doesn't exceed the maximum integer digits allowed.
- digits.fAbsIntValueSet = absIntValueComputed && !digits.isOverMaxDigits();
- return TRUE;
-}
-
-VisibleDigitsWithExponent &
-FixedPrecision::initVisibleDigitsWithExponent(
- DigitList &value,
- VisibleDigitsWithExponent &digits,
- UErrorCode &status) const {
- digits.clear();
- initVisibleDigits(value, digits.fMantissa, status);
- return digits;
-}
-
-VisibleDigitsWithExponent &
-FixedPrecision::initVisibleDigitsWithExponent(
- double value,
- VisibleDigitsWithExponent &digits,
- UErrorCode &status) const {
- digits.clear();
- initVisibleDigits(value, digits.fMantissa, status);
- return digits;
-}
-
-VisibleDigitsWithExponent &
-FixedPrecision::initVisibleDigitsWithExponent(
- int64_t value,
- VisibleDigitsWithExponent &digits,
- UErrorCode &status) const {
- digits.clear();
- initVisibleDigits(value, digits.fMantissa, status);
- return digits;
-}
-
-ScientificPrecision::ScientificPrecision() : fMinExponentDigits(1) {
-}
-
-DigitList &
-ScientificPrecision::round(DigitList &value, UErrorCode &status) const {
- if (U_FAILURE(status)) {
- return value;
- }
- int32_t exponent = value.getScientificExponent(
- fMantissa.fMin.getIntDigitCount(), getMultiplier());
- return fMantissa.round(value, exponent, status);
-}
-
-int32_t
-ScientificPrecision::toScientific(DigitList &value) const {
- return value.toScientific(
- fMantissa.fMin.getIntDigitCount(), getMultiplier());
-}
-
-int32_t
-ScientificPrecision::getMultiplier() const {
- int32_t maxIntDigitCount = fMantissa.fMax.getIntDigitCount();
- if (maxIntDigitCount == INT32_MAX) {
- return 1;
- }
- int32_t multiplier =
- maxIntDigitCount - fMantissa.fMin.getIntDigitCount() + 1;
- return (multiplier < 1 ? 1 : multiplier);
-}
-
-VisibleDigitsWithExponent &
-ScientificPrecision::initVisibleDigitsWithExponent(
- DigitList &value,
- VisibleDigitsWithExponent &digits,
- UErrorCode &status) const {
- if (U_FAILURE(status)) {
- return digits;
- }
- digits.clear();
- if (FixedPrecision::handleNonNumeric(value, digits.fMantissa)) {
- return digits;
- }
- value.setRoundingMode(fMantissa.fRoundingMode);
- int64_t exponent = toScientific(round(value, status));
- fMantissa.initVisibleDigits(value, digits.fMantissa, status);
- FixedPrecision exponentPrecision;
- exponentPrecision.fMin.setIntDigitCount(fMinExponentDigits);
- exponentPrecision.initVisibleDigits(exponent, digits.fExponent, status);
- digits.fHasExponent = TRUE;
- return digits;
-}
-
-VisibleDigitsWithExponent &
-ScientificPrecision::initVisibleDigitsWithExponent(
- double value,
- VisibleDigitsWithExponent &digits,
- UErrorCode &status) const {
- if (U_FAILURE(status)) {
- return digits;
- }
- DigitList digitList;
- digitList.set(value);
- return initVisibleDigitsWithExponent(digitList, digits, status);
-}
-
-VisibleDigitsWithExponent &
-ScientificPrecision::initVisibleDigitsWithExponent(
- int64_t value,
- VisibleDigitsWithExponent &digits,
- UErrorCode &status) const {
- if (U_FAILURE(status)) {
- return digits;
- }
- DigitList digitList;
- digitList.set(value);
- return initVisibleDigitsWithExponent(digitList, digits, status);
-}
-
-
-U_NAMESPACE_END
-#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/precision.h b/Build/source/libs/icu/icu-src/source/i18n/precision.h
deleted file mode 100644
index 99f6d2d750a..00000000000
--- a/Build/source/libs/icu/icu-src/source/i18n/precision.h
+++ /dev/null
@@ -1,323 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
-*******************************************************************************
-* Copyright (C) 2015, International Business Machines
-* Corporation and others. All Rights Reserved.
-*******************************************************************************
-* precision.h
-*
-* created on: 2015jan06
-* created by: Travis Keep
-*/
-
-#ifndef __PRECISION_H__
-#define __PRECISION_H__
-
-#include "unicode/uobject.h"
-
-#if !UCONFIG_NO_FORMATTING
-#include "unicode/utypes.h"
-
-#include "digitinterval.h"
-#include "digitlst.h"
-#include "significantdigitinterval.h"
-
-U_NAMESPACE_BEGIN
-
-class VisibleDigits;
-class VisibleDigitsWithExponent;
-
-
-/**
- * A precision manager for values to be formatted as fixed point.
- * Handles rounding of number to prepare it for formatting.
- */
-class U_I18N_API FixedPrecision : public UMemory {
-public:
-
- /**
- * The smallest format interval allowed. Default is 1 integer digit and no
- * fraction digits.
- */
- DigitInterval fMin;
-
- /**
- * The largest format interval allowed. Must contain fMin.
- * Default is all digits.
- */
- DigitInterval fMax;
-
- /**
- * Min and max significant digits allowed. The default is no constraints.
- */
- SignificantDigitInterval fSignificant;
-
- /**
- * The rounding increment or zero if there is no rounding increment.
- * Default is zero.
- */
- DigitList fRoundingIncrement;
-
- /**
- * If set, causes round() to set status to U_FORMAT_INEXACT_ERROR if
- * any rounding is done. Default is FALSE.
- */
- UBool fExactOnly;
-
- /**
- * If set, causes round() to set status to U_ILLEGAL_ARGUMENT_ERROR if
- * rounded number has more than maximum integer digits. Default is FALSE.
- */
- UBool fFailIfOverMax;
-
- /**
- * Controls the rounding mode that initVisibleDigits uses.
- * Default is DecimalFormat::kRoundHalfEven
- */
- DecimalFormat::ERoundingMode fRoundingMode;
-
- FixedPrecision();
-
- /**
- * Returns TRUE if this object equals rhs.
- */
- UBool equals(const FixedPrecision &rhs) const {
- return (fMin.equals(rhs.fMin) &&
- fMax.equals(rhs.fMax) &&
- fSignificant.equals(rhs.fSignificant) &&
- (fRoundingIncrement == rhs.fRoundingIncrement) &&
- fExactOnly == rhs.fExactOnly &&
- fFailIfOverMax == rhs.fFailIfOverMax &&
- fRoundingMode == rhs.fRoundingMode);
- }
-
- /**
- * Rounds value in place to prepare it for formatting.
- * @param value The value to be rounded. It is rounded in place.
- * @param exponent Always pass 0 for fixed decimal formatting. scientific
- * precision passes the exponent value. Essentially, it divides value by
- * 10^exponent, rounds and then multiplies by 10^exponent.
- * @param status error returned here.
- * @return reference to value.
- */
- DigitList &round(DigitList &value, int32_t exponent, UErrorCode &status) const;
-
- /**
- * Returns the interval to use to format the rounded value.
- * @param roundedValue the already rounded value to format.
- * @param interval modified in place to be the interval to use to format
- * the rounded value.
- * @return a reference to interval.
- */
- DigitInterval &getInterval(
- const DigitList &roundedValue, DigitInterval &interval) const;
-
- /**
- * Returns TRUE if this instance allows for fast formatting of integers.
- */
- UBool isFastFormattable() const;
-
- /**
- * Initializes a VisibleDigits.
- * @param value value for VisibleDigits
- * Caller must not assume that the value of this parameter will remain
- * unchanged.
- * @param digits This is the value that is initialized.
- * @param status any error returned here.
- * @return digits
- */
- VisibleDigits &initVisibleDigits(
- DigitList &value,
- VisibleDigits &digits,
- UErrorCode &status) const;
-
- /**
- * Initializes a VisibleDigits.
- * @param value value for VisibleDigits
- * @param digits This is the value that is initialized.
- * @param status any error returned here.
- * @return digits
- */
- VisibleDigits &initVisibleDigits(
- double value,
- VisibleDigits &digits,
- UErrorCode &status) const;
-
- /**
- * Initializes a VisibleDigits.
- * @param value value for VisibleDigits
- * @param digits This is the value that is initialized.
- * @param status any error returned here.
- * @return digits
- */
- VisibleDigits &initVisibleDigits(
- int64_t value,
- VisibleDigits &digits,
- UErrorCode &status) const;
-
- /**
- * Initializes a VisibleDigitsWithExponent.
- * @param value value for VisibleDigits
- * Caller must not assume that the value of this parameter will remain
- * unchanged.
- * @param digits This is the value that is initialized.
- * @param status any error returned here.
- * @return digits
- */
- VisibleDigitsWithExponent &initVisibleDigitsWithExponent(
- DigitList &value,
- VisibleDigitsWithExponent &digits,
- UErrorCode &status) const;
-
- /**
- * Initializes a VisibleDigitsWithExponent.
- * @param value value for VisibleDigits
- * @param digits This is the value that is initialized.
- * @param status any error returned here.
- * @return digits
- */
- VisibleDigitsWithExponent &initVisibleDigitsWithExponent(
- double value,
- VisibleDigitsWithExponent &digits,
- UErrorCode &status) const;
-
- /**
- * Initializes a VisibleDigitsWithExponent.
- * @param value value for VisibleDigits
- * @param digits This is the value that is initialized.
- * @param status any error returned here.
- * @return digits
- */
- VisibleDigitsWithExponent &initVisibleDigitsWithExponent(
- int64_t value,
- VisibleDigitsWithExponent &digits,
- UErrorCode &status) const;
-
-private:
- /**
- * Attempts to initialize 'digits' using simple mod 10 arithmetic.
- * Returns FALSE if this is not possible such as when rounding
- * would change the value. Otherwise returns TRUE.
- *
- * If the method returns FALSE, caller should create a DigitList
- * and use it to initialize 'digits'. If this method returns TRUE,
- * caller should accept the value stored in 'digits'. If this
- * method returns TRUE along with a non zero error, caller must accept
- * the error and not try again with a DigitList.
- *
- * Before calling this method, caller must verify that this object
- * has no rounding increment set.
- *
- * The value that 'digits' is initialized to is mantissa * 10^exponent.
- * For example mantissa = 54700 and exponent = -3 means 54.7. The
- * properties of this object (such as min and max fraction digits),
- * not the number of trailing zeros in the mantissa, determine whether or
- * not the result contains any trailing 0's after the decimal point.
- *
- * @param mantissa the digits. May be positive or negative. May contain
- * trailing zeros.
- * @param exponent must always be zero or negative. An exponent > 0
- * yields undefined results!
- * @param digits result stored here.
- * @param status any error returned here.
- */
- UBool
- initVisibleDigits(
- int64_t mantissa,
- int32_t exponent,
- VisibleDigits &digits,
- UErrorCode &status) const;
- UBool isRoundingRequired(
- int32_t upperExponent, int32_t lowerExponent) const;
- DigitInterval &getIntervalForZero(DigitInterval &interval) const;
- DigitInterval &getInterval(
- int32_t upperExponent, DigitInterval &interval) const;
- static UBool handleNonNumeric(DigitList &value, VisibleDigits &digits);
-
- friend class ScientificPrecision;
-};
-
-/**
- * A precision manager for values to be expressed as scientific notation.
- */
-class U_I18N_API ScientificPrecision : public UMemory {
-public:
- FixedPrecision fMantissa;
- int32_t fMinExponentDigits;
-
- ScientificPrecision();
-
- /**
- * rounds value in place to prepare it for formatting.
- * @param value The value to be rounded. It is rounded in place.
- * @param status error returned here.
- * @return reference to value.
- */
- DigitList &round(DigitList &value, UErrorCode &status) const;
-
- /**
- * Converts value to a mantissa and exponent.
- *
- * @param value modified in place to be the mantissa. Depending on
- * the precision settings, the resulting mantissa may not fall
- * between 1.0 and 10.0.
- * @return the exponent of value.
- */
- int32_t toScientific(DigitList &value) const;
-
- /**
- * Returns TRUE if this object equals rhs.
- */
- UBool equals(const ScientificPrecision &rhs) const {
- return fMantissa.equals(rhs.fMantissa) && fMinExponentDigits == rhs.fMinExponentDigits;
- }
-
- /**
- * Initializes a VisibleDigitsWithExponent.
- * @param value the value
- * Caller must not assume that the value of this parameter will remain
- * unchanged.
- * @param digits This is the value that is initialized.
- * @param status any error returned here.
- * @return digits
- */
- VisibleDigitsWithExponent &initVisibleDigitsWithExponent(
- DigitList &value,
- VisibleDigitsWithExponent &digits,
- UErrorCode &status) const;
-
- /**
- * Initializes a VisibleDigitsWithExponent.
- * @param value the value
- * @param digits This is the value that is initialized.
- * @param status any error returned here.
- * @return digits
- */
- VisibleDigitsWithExponent &initVisibleDigitsWithExponent(
- double value,
- VisibleDigitsWithExponent &digits,
- UErrorCode &status) const;
-
- /**
- * Initializes a VisibleDigitsWithExponent.
- * @param value the value
- * @param digits This is the value that is initialized.
- * @param status any error returned here.
- * @return digits
- */
- VisibleDigitsWithExponent &initVisibleDigitsWithExponent(
- int64_t value,
- VisibleDigitsWithExponent &digits,
- UErrorCode &status) const;
-
-private:
- int32_t getMultiplier() const;
-
-};
-
-
-
-U_NAMESPACE_END
-#endif // #if !UCONFIG_NO_FORMATTING
-#endif // __PRECISION_H__
diff --git a/Build/source/libs/icu/icu-src/source/i18n/quantityformatter.cpp b/Build/source/libs/icu/icu-src/source/i18n/quantityformatter.cpp
index 208e064700a..ba06ba06b97 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/quantityformatter.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/quantityformatter.cpp
@@ -23,8 +23,8 @@
#include "unicode/fmtable.h"
#include "unicode/fieldpos.h"
#include "standardplural.h"
-#include "visibledigits.h"
#include "uassert.h"
+#include "number_decimalquantity.h"
U_NAMESPACE_BEGIN
@@ -149,15 +149,15 @@ StandardPlural::Form QuantityFormatter::selectPlural(
return StandardPlural::OTHER;
}
UnicodeString pluralKeyword;
- VisibleDigitsWithExponent digits;
const DecimalFormat *decFmt = dynamic_cast<const DecimalFormat *>(&fmt);
if (decFmt != NULL) {
- decFmt->initVisibleDigitsWithExponent(number, digits, status);
+ number::impl::DecimalQuantity dq;
+ decFmt->formatToDecimalQuantity(number, dq, status);
if (U_FAILURE(status)) {
return StandardPlural::OTHER;
}
- pluralKeyword = rules.select(digits);
- decFmt->format(digits, formattedNumber, pos, status);
+ pluralKeyword = rules.select(dq);
+ decFmt->format(number, formattedNumber, pos, status);
} else {
if (number.getType() == Formattable::kDouble) {
pluralKeyword = rules.select(number.getDouble());
diff --git a/Build/source/libs/icu/icu-src/source/i18n/rbnf.cpp b/Build/source/libs/icu/icu-src/source/i18n/rbnf.cpp
index 1b75e5ee1b7..27afc1faaa1 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/rbnf.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/rbnf.cpp
@@ -34,7 +34,7 @@
#include "patternprops.h"
#include "uresimp.h"
#include "nfrs.h"
-#include "digitlst.h"
+#include "number_decimalquantity.h"
// debugging
// #define RBNF_DEBUG
@@ -68,6 +68,8 @@ static const UChar gSemiPercent[] =
U_NAMESPACE_BEGIN
+using number::impl::DecimalQuantity;
+
UOBJECT_DEFINE_RTTI_IMPLEMENTATION(RuleBasedNumberFormat)
/*
@@ -678,7 +680,7 @@ StringLocalizationInfo::getDisplayName(int32_t localeIndex, int32_t ruleIndex) c
RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description,
const UnicodeString& locs,
const Locale& alocale, UParseError& perror, UErrorCode& status)
- : ruleSets(NULL)
+ : fRuleSets(NULL)
, ruleSetDescriptions(NULL)
, numRuleSets(0)
, defaultRuleSet(NULL)
@@ -687,7 +689,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description,
, decimalFormatSymbols(NULL)
, defaultInfinityRule(NULL)
, defaultNaNRule(NULL)
- , roundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
+ , fRoundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
, lenient(FALSE)
, lenientParseRules(NULL)
, localizations(NULL)
@@ -703,7 +705,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description,
RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description,
const UnicodeString& locs,
UParseError& perror, UErrorCode& status)
- : ruleSets(NULL)
+ : fRuleSets(NULL)
, ruleSetDescriptions(NULL)
, numRuleSets(0)
, defaultRuleSet(NULL)
@@ -712,7 +714,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description,
, decimalFormatSymbols(NULL)
, defaultInfinityRule(NULL)
, defaultNaNRule(NULL)
- , roundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
+ , fRoundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
, lenient(FALSE)
, lenientParseRules(NULL)
, localizations(NULL)
@@ -728,7 +730,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description,
RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description,
LocalizationInfo* info,
const Locale& alocale, UParseError& perror, UErrorCode& status)
- : ruleSets(NULL)
+ : fRuleSets(NULL)
, ruleSetDescriptions(NULL)
, numRuleSets(0)
, defaultRuleSet(NULL)
@@ -737,7 +739,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description,
, decimalFormatSymbols(NULL)
, defaultInfinityRule(NULL)
, defaultNaNRule(NULL)
- , roundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
+ , fRoundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
, lenient(FALSE)
, lenientParseRules(NULL)
, localizations(NULL)
@@ -752,7 +754,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description,
RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description,
UParseError& perror,
UErrorCode& status)
- : ruleSets(NULL)
+ : fRuleSets(NULL)
, ruleSetDescriptions(NULL)
, numRuleSets(0)
, defaultRuleSet(NULL)
@@ -761,7 +763,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description,
, decimalFormatSymbols(NULL)
, defaultInfinityRule(NULL)
, defaultNaNRule(NULL)
- , roundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
+ , fRoundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
, lenient(FALSE)
, lenientParseRules(NULL)
, localizations(NULL)
@@ -777,7 +779,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description,
const Locale& aLocale,
UParseError& perror,
UErrorCode& status)
- : ruleSets(NULL)
+ : fRuleSets(NULL)
, ruleSetDescriptions(NULL)
, numRuleSets(0)
, defaultRuleSet(NULL)
@@ -786,7 +788,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description,
, decimalFormatSymbols(NULL)
, defaultInfinityRule(NULL)
, defaultNaNRule(NULL)
- , roundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
+ , fRoundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
, lenient(FALSE)
, lenientParseRules(NULL)
, localizations(NULL)
@@ -799,7 +801,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description,
}
RuleBasedNumberFormat::RuleBasedNumberFormat(URBNFRuleSetTag tag, const Locale& alocale, UErrorCode& status)
- : ruleSets(NULL)
+ : fRuleSets(NULL)
, ruleSetDescriptions(NULL)
, numRuleSets(0)
, defaultRuleSet(NULL)
@@ -808,7 +810,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(URBNFRuleSetTag tag, const Locale&
, decimalFormatSymbols(NULL)
, defaultInfinityRule(NULL)
, defaultNaNRule(NULL)
- , roundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
+ , fRoundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
, lenient(FALSE)
, lenientParseRules(NULL)
, localizations(NULL)
@@ -866,7 +868,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(URBNFRuleSetTag tag, const Locale&
RuleBasedNumberFormat::RuleBasedNumberFormat(const RuleBasedNumberFormat& rhs)
: NumberFormat(rhs)
- , ruleSets(NULL)
+ , fRuleSets(NULL)
, ruleSetDescriptions(NULL)
, numRuleSets(0)
, defaultRuleSet(NULL)
@@ -875,7 +877,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const RuleBasedNumberFormat& rhs)
, decimalFormatSymbols(NULL)
, defaultInfinityRule(NULL)
, defaultNaNRule(NULL)
- , roundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
+ , fRoundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
, lenient(FALSE)
, lenientParseRules(NULL)
, localizations(NULL)
@@ -948,8 +950,8 @@ RuleBasedNumberFormat::operator==(const Format& other) const
? FALSE
: *localizations == rhs.localizations))) {
- NFRuleSet** p = ruleSets;
- NFRuleSet** q = rhs.ruleSets;
+ NFRuleSet** p = fRuleSets;
+ NFRuleSet** q = rhs.fRuleSets;
if (p == NULL) {
return q == NULL;
} else if (q == NULL) {
@@ -970,8 +972,8 @@ UnicodeString
RuleBasedNumberFormat::getRules() const
{
UnicodeString result;
- if (ruleSets != NULL) {
- for (NFRuleSet** p = ruleSets; *p; ++p) {
+ if (fRuleSets != NULL) {
+ for (NFRuleSet** p = fRuleSets; *p; ++p) {
(*p)->appendRules(result);
}
}
@@ -985,9 +987,9 @@ RuleBasedNumberFormat::getRuleSetName(int32_t index) const
UnicodeString string(TRUE, localizations->getRuleSetName(index), (int32_t)-1);
return string;
}
- else if (ruleSets) {
+ else if (fRuleSets) {
UnicodeString result;
- for (NFRuleSet** p = ruleSets; *p; ++p) {
+ for (NFRuleSet** p = fRuleSets; *p; ++p) {
NFRuleSet* rs = *p;
if (rs->isPublic()) {
if (--index == -1) {
@@ -1008,8 +1010,8 @@ RuleBasedNumberFormat::getNumberOfRuleSetNames() const
if (localizations) {
result = localizations->getNumberOfRuleSets();
}
- else if (ruleSets) {
- for (NFRuleSet** p = ruleSets; *p; ++p) {
+ else if (fRuleSets) {
+ for (NFRuleSet** p = fRuleSets; *p; ++p) {
if ((**p).isPublic()) {
++result;
}
@@ -1096,8 +1098,8 @@ RuleBasedNumberFormat::getRuleSetDisplayName(const UnicodeString& ruleSetName, c
NFRuleSet*
RuleBasedNumberFormat::findRuleSet(const UnicodeString& name, UErrorCode& status) const
{
- if (U_SUCCESS(status) && ruleSets) {
- for (NFRuleSet** p = ruleSets; *p; ++p) {
+ if (U_SUCCESS(status) && fRuleSets) {
+ for (NFRuleSet** p = fRuleSets; *p; ++p) {
NFRuleSet* rs = *p;
if (rs->isNamed(name)) {
return rs;
@@ -1109,32 +1111,38 @@ RuleBasedNumberFormat::findRuleSet(const UnicodeString& name, UErrorCode& status
}
UnicodeString&
-RuleBasedNumberFormat::format(const DigitList &number,
+RuleBasedNumberFormat::format(const DecimalQuantity &number,
UnicodeString &appendTo,
FieldPositionIterator *posIter,
UErrorCode &status) const {
if (U_FAILURE(status)) {
return appendTo;
}
- DigitList copy(number);
- if (copy.fitsIntoInt64(false)) {
- format(((DigitList &)number).getInt64(), appendTo, posIter, status);
+ DecimalQuantity copy(number);
+ if (copy.fitsInLong()) {
+ format(number.toLong(), appendTo, posIter, status);
}
else {
- copy.roundAtExponent(0);
- if (copy.fitsIntoInt64(false)) {
- format(number.getDouble(), appendTo, posIter, status);
+ copy.roundToMagnitude(0, number::impl::RoundingMode::UNUM_ROUND_HALFEVEN, status);
+ if (copy.fitsInLong()) {
+ format(number.toDouble(), appendTo, posIter, status);
}
else {
// We're outside of our normal range that this framework can handle.
// The DecimalFormat will provide more accurate results.
// TODO this section should probably be optimized. The DecimalFormat is shared in ICU4J.
- NumberFormat *decimalFormat = NumberFormat::createInstance(locale, UNUM_DECIMAL, status);
+ LocalPointer<NumberFormat> decimalFormat(NumberFormat::createInstance(locale, UNUM_DECIMAL, status), status);
+ if (decimalFormat.isNull()) {
+ return appendTo;
+ }
Formattable f;
- f.adoptDigitList(new DigitList(number));
+ LocalPointer<DecimalQuantity> decimalQuantity(new DecimalQuantity(number), status);
+ if (decimalQuantity.isNull()) {
+ return appendTo;
+ }
+ f.adoptDecimalQuantity(decimalQuantity.orphan()); // f now owns decimalQuantity.
decimalFormat->format(f, appendTo, posIter, status);
- delete decimalFormat;
}
}
return appendTo;
@@ -1142,32 +1150,38 @@ RuleBasedNumberFormat::format(const DigitList &number,
UnicodeString&
-RuleBasedNumberFormat::format(const DigitList &number,
+RuleBasedNumberFormat::format(const DecimalQuantity &number,
UnicodeString& appendTo,
FieldPosition& pos,
UErrorCode &status) const {
if (U_FAILURE(status)) {
return appendTo;
}
- DigitList copy(number);
- if (copy.fitsIntoInt64(false)) {
- format(((DigitList &)number).getInt64(), appendTo, pos, status);
+ DecimalQuantity copy(number);
+ if (copy.fitsInLong()) {
+ format(number.toLong(), appendTo, pos, status);
}
else {
- copy.roundAtExponent(0);
- if (copy.fitsIntoInt64(false)) {
- format(number.getDouble(), appendTo, pos, status);
+ copy.roundToMagnitude(0, number::impl::RoundingMode::UNUM_ROUND_HALFEVEN, status);
+ if (copy.fitsInLong()) {
+ format(number.toDouble(), appendTo, pos, status);
}
else {
// We're outside of our normal range that this framework can handle.
// The DecimalFormat will provide more accurate results.
// TODO this section should probably be optimized. The DecimalFormat is shared in ICU4J.
- NumberFormat *decimalFormat = NumberFormat::createInstance(locale, UNUM_DECIMAL, status);
+ LocalPointer<NumberFormat> decimalFormat(NumberFormat::createInstance(locale, UNUM_DECIMAL, status), status);
+ if (decimalFormat.isNull()) {
+ return appendTo;
+ }
Formattable f;
- f.adoptDigitList(new DigitList(number));
+ LocalPointer<DecimalQuantity> decimalQuantity(new DecimalQuantity(number), status);
+ if (decimalQuantity.isNull()) {
+ return appendTo;
+ }
+ f.adoptDecimalQuantity(decimalQuantity.orphan()); // f now owns decimalQuantity.
decimalFormat->format(f, appendTo, pos, status);
- delete decimalFormat;
}
}
return appendTo;
@@ -1270,11 +1284,13 @@ RuleBasedNumberFormat::format(double number,
{
int32_t startPos = toAppendTo.length();
if (getRoundingMode() != DecimalFormat::ERoundingMode::kRoundUnnecessary && !uprv_isNaN(number) && !uprv_isInfinite(number)) {
- DigitList digitList;
- digitList.set(number);
- digitList.setRoundingMode(getRoundingMode());
- digitList.roundFixedPoint(getMaximumFractionDigits());
- number = digitList.getDouble();
+ DecimalQuantity digitList;
+ digitList.setToDouble(number);
+ digitList.roundToMagnitude(
+ -getMaximumFractionDigits(),
+ static_cast<UNumberFormatRoundingMode>(getRoundingMode()),
+ status);
+ number = digitList.toDouble();
}
rs.format(number, toAppendTo, toAppendTo.length(), 0, status);
adjustForCapitalizationContext(startPos, toAppendTo, status);
@@ -1308,11 +1324,19 @@ RuleBasedNumberFormat::format(int64_t number, NFRuleSet *ruleSet, UnicodeString&
// TODO this section should probably be optimized. The DecimalFormat is shared in ICU4J.
NumberFormat *decimalFormat = NumberFormat::createInstance(locale, UNUM_DECIMAL, status);
+ if (decimalFormat == nullptr) {
+ return toAppendTo;
+ }
Formattable f;
FieldPosition pos(FieldPosition::DONT_CARE);
- DigitList *digitList = new DigitList();
- digitList->set(number);
- f.adoptDigitList(digitList);
+ DecimalQuantity *decimalQuantity = new DecimalQuantity();
+ if (decimalQuantity == nullptr) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ delete decimalFormat;
+ return toAppendTo;
+ }
+ decimalQuantity->setToLong(number);
+ f.adoptDecimalQuantity(decimalQuantity); // f now owns decimalQuantity.
decimalFormat->format(f, toAppendTo, pos, status);
delete decimalFormat;
}
@@ -1354,7 +1378,7 @@ RuleBasedNumberFormat::parse(const UnicodeString& text,
Formattable& result,
ParsePosition& parsePosition) const
{
- if (!ruleSets) {
+ if (!fRuleSets) {
parsePosition.setErrorIndex(0);
return;
}
@@ -1365,7 +1389,7 @@ RuleBasedNumberFormat::parse(const UnicodeString& text,
ParsePosition high_pp(0);
Formattable high_result;
- for (NFRuleSet** p = ruleSets; *p; ++p) {
+ for (NFRuleSet** p = fRuleSets; *p; ++p) {
NFRuleSet *rp = *p;
if (rp->isPublic() && rp->isParseable()) {
ParsePosition working_pp(0);
@@ -1453,7 +1477,7 @@ void
RuleBasedNumberFormat::initDefaultRuleSet()
{
defaultRuleSet = NULL;
- if (!ruleSets) {
+ if (!fRuleSets) {
return;
}
@@ -1461,7 +1485,7 @@ RuleBasedNumberFormat::initDefaultRuleSet()
const UnicodeString ordinal(UNICODE_STRING_SIMPLE("%digits-ordinal"));
const UnicodeString duration(UNICODE_STRING_SIMPLE("%duration"));
- NFRuleSet**p = &ruleSets[0];
+ NFRuleSet**p = &fRuleSets[0];
while (*p) {
if ((*p)->isNamed(spellout) || (*p)->isNamed(ordinal) || (*p)->isNamed(duration)) {
defaultRuleSet = *p;
@@ -1473,7 +1497,7 @@ RuleBasedNumberFormat::initDefaultRuleSet()
defaultRuleSet = *--p;
if (!defaultRuleSet->isPublic()) {
- while (p != ruleSets) {
+ while (p != fRuleSets) {
if ((*--p)->isPublic()) {
defaultRuleSet = *p;
break;
@@ -1543,7 +1567,7 @@ RuleBasedNumberFormat::init(const UnicodeString& rules, LocalizationInfo* locali
// from the description
lenientParseRules = new UnicodeString();
/* test for NULL */
- if (lenientParseRules == 0) {
+ if (lenientParseRules == nullptr) {
status = U_MEMORY_ALLOCATION_ERROR;
return;
}
@@ -1564,15 +1588,15 @@ RuleBasedNumberFormat::init(const UnicodeString& rules, LocalizationInfo* locali
++numRuleSets;
// our rule list is an array of the appropriate size
- ruleSets = (NFRuleSet **)uprv_malloc((numRuleSets + 1) * sizeof(NFRuleSet *));
+ fRuleSets = (NFRuleSet **)uprv_malloc((numRuleSets + 1) * sizeof(NFRuleSet *));
/* test for NULL */
- if (ruleSets == 0) {
+ if (fRuleSets == 0) {
status = U_MEMORY_ALLOCATION_ERROR;
return;
}
for (int i = 0; i <= numRuleSets; ++i) {
- ruleSets[i] = NULL;
+ fRuleSets[i] = NULL;
}
// divide up the descriptions into individual rule-set descriptions
@@ -1588,7 +1612,7 @@ RuleBasedNumberFormat::init(const UnicodeString& rules, LocalizationInfo* locali
}
ruleSetDescriptions = new UnicodeString[numRuleSets];
- if (ruleSetDescriptions == 0) {
+ if (ruleSetDescriptions == nullptr) {
status = U_MEMORY_ALLOCATION_ERROR;
return;
}
@@ -1598,8 +1622,8 @@ RuleBasedNumberFormat::init(const UnicodeString& rules, LocalizationInfo* locali
int32_t start = 0;
for (int32_t p = description.indexOf(gSemiPercent, 2, 0); p != -1; p = description.indexOf(gSemiPercent, 2, start)) {
ruleSetDescriptions[curRuleSet].setTo(description, start, p + 1 - start);
- ruleSets[curRuleSet] = new NFRuleSet(this, ruleSetDescriptions, curRuleSet, status);
- if (ruleSets[curRuleSet] == 0) {
+ fRuleSets[curRuleSet] = new NFRuleSet(this, ruleSetDescriptions, curRuleSet, status);
+ if (fRuleSets[curRuleSet] == nullptr) {
status = U_MEMORY_ALLOCATION_ERROR;
return;
}
@@ -1607,8 +1631,8 @@ RuleBasedNumberFormat::init(const UnicodeString& rules, LocalizationInfo* locali
start = p + 1;
}
ruleSetDescriptions[curRuleSet].setTo(description, start, description.length() - start);
- ruleSets[curRuleSet] = new NFRuleSet(this, ruleSetDescriptions, curRuleSet, status);
- if (ruleSets[curRuleSet] == 0) {
+ fRuleSets[curRuleSet] = new NFRuleSet(this, ruleSetDescriptions, curRuleSet, status);
+ if (fRuleSets[curRuleSet] == nullptr) {
status = U_MEMORY_ALLOCATION_ERROR;
return;
}
@@ -1626,11 +1650,11 @@ RuleBasedNumberFormat::init(const UnicodeString& rules, LocalizationInfo* locali
initDefaultRuleSet();
// finally, we can go back through the temporary descriptions
- // list and finish seting up the substructure (and we throw
+ // list and finish setting up the substructure (and we throw
// away the temporary descriptions as we go)
{
for (int i = 0; i < numRuleSets; i++) {
- ruleSets[i]->parseRules(ruleSetDescriptions[i], status);
+ fRuleSets[i]->parseRules(ruleSetDescriptions[i], status);
}
}
@@ -1676,7 +1700,7 @@ RuleBasedNumberFormat::setContext(UDisplayContext value, UErrorCode& status)
if ( capitalizationBrkIter == NULL && (value==UDISPCTX_CAPITALIZATION_FOR_BEGINNING_OF_SENTENCE ||
(value==UDISPCTX_CAPITALIZATION_FOR_UI_LIST_OR_MENU && capitalizationForUIListMenu) ||
(value==UDISPCTX_CAPITALIZATION_FOR_STANDALONE && capitalizationForStandAlone)) ) {
- UErrorCode status = U_ZERO_ERROR;
+ status = U_ZERO_ERROR;
capitalizationBrkIter = BreakIterator::createSentenceInstance(locale, status);
if (U_FAILURE(status)) {
delete capitalizationBrkIter;
@@ -1700,8 +1724,8 @@ RuleBasedNumberFormat::initCapitalizationContextInfo(const Locale& thelocale)
int32_t len = 0;
const int32_t * intVector = ures_getIntVector(rb, &len, &status);
if (U_SUCCESS(status) && intVector != NULL && len >= 2) {
- capitalizationForUIListMenu = intVector[0];
- capitalizationForStandAlone = intVector[1];
+ capitalizationForUIListMenu = static_cast<UBool>(intVector[0]);
+ capitalizationForStandAlone = static_cast<UBool>(intVector[1]);
}
}
ures_close(rb);
@@ -1736,7 +1760,7 @@ RuleBasedNumberFormat::stripWhitespace(UnicodeString& description)
start = p + 1;
}
- // when we get here, we've seeked off the end of the sring, and
+ // when we get here, we've seeked off the end of the string, and
// we terminate the loop (we continue until *start* is -1 rather
// than until *p* is -1, because otherwise we'd miss the last
// rule in the description)
@@ -1752,12 +1776,12 @@ RuleBasedNumberFormat::stripWhitespace(UnicodeString& description)
void
RuleBasedNumberFormat::dispose()
{
- if (ruleSets) {
- for (NFRuleSet** p = ruleSets; *p; ++p) {
+ if (fRuleSets) {
+ for (NFRuleSet** p = fRuleSets; *p; ++p) {
delete *p;
}
- uprv_free(ruleSets);
- ruleSets = NULL;
+ uprv_free(fRuleSets);
+ fRuleSets = NULL;
}
if (ruleSetDescriptions) {
@@ -1807,7 +1831,7 @@ const RuleBasedCollator*
RuleBasedNumberFormat::getCollator() const
{
#if !UCONFIG_NO_COLLATION
- if (!ruleSets) {
+ if (!fRuleSets) {
return NULL;
}
@@ -1816,7 +1840,7 @@ RuleBasedNumberFormat::getCollator() const
// create a default collator based on the formatter's locale,
// then pull out that collator's rules, append any additional
// rules specified in the description, and create a _new_
- // collator based on the combinaiton of those rules
+ // collator based on the combination of those rules
UErrorCode status = U_ZERO_ERROR;
@@ -1859,13 +1883,10 @@ RuleBasedNumberFormat::initializeDecimalFormatSymbols(UErrorCode &status)
// lazy-evaluate the DecimalFormatSymbols object. This object
// is shared by all DecimalFormat instances belonging to this
// formatter
- if (decimalFormatSymbols == NULL) {
- DecimalFormatSymbols* temp = new DecimalFormatSymbols(locale, status);
+ if (decimalFormatSymbols == nullptr) {
+ LocalPointer<DecimalFormatSymbols> temp(new DecimalFormatSymbols(locale, status), status);
if (U_SUCCESS(status)) {
- decimalFormatSymbols = temp;
- }
- else {
- delete temp;
+ decimalFormatSymbols = temp.orphan();
}
}
return decimalFormatSymbols;
@@ -1885,17 +1906,14 @@ NFRule*
RuleBasedNumberFormat::initializeDefaultInfinityRule(UErrorCode &status)
{
if (U_FAILURE(status)) {
- return NULL;
+ return nullptr;
}
if (defaultInfinityRule == NULL) {
UnicodeString rule(UNICODE_STRING_SIMPLE("Inf: "));
rule.append(getDecimalFormatSymbols()->getSymbol(DecimalFormatSymbols::kInfinitySymbol));
- NFRule* temp = new NFRule(this, rule, status);
+ LocalPointer<NFRule> temp(new NFRule(this, rule, status), status);
if (U_SUCCESS(status)) {
- defaultInfinityRule = temp;
- }
- else {
- delete temp;
+ defaultInfinityRule = temp.orphan();
}
}
return defaultInfinityRule;
@@ -1911,17 +1929,14 @@ NFRule*
RuleBasedNumberFormat::initializeDefaultNaNRule(UErrorCode &status)
{
if (U_FAILURE(status)) {
- return NULL;
+ return nullptr;
}
- if (defaultNaNRule == NULL) {
+ if (defaultNaNRule == nullptr) {
UnicodeString rule(UNICODE_STRING_SIMPLE("NaN: "));
rule.append(getDecimalFormatSymbols()->getSymbol(DecimalFormatSymbols::kNaNSymbol));
- NFRule* temp = new NFRule(this, rule, status);
+ LocalPointer<NFRule> temp(new NFRule(this, rule, status), status);
if (U_SUCCESS(status)) {
- defaultNaNRule = temp;
- }
- else {
- delete temp;
+ defaultNaNRule = temp.orphan();
}
}
return defaultNaNRule;
@@ -1959,15 +1974,15 @@ RuleBasedNumberFormat::adoptDecimalFormatSymbols(DecimalFormatSymbols* symbolsTo
defaultNaNRule = NULL;
initializeDefaultNaNRule(status); // Reset with the new DecimalFormatSymbols
- if (ruleSets) {
+ if (fRuleSets) {
for (int32_t i = 0; i < numRuleSets; i++) {
- ruleSets[i]->setDecimalFormatSymbols(*symbolsToAdopt, status);
+ fRuleSets[i]->setDecimalFormatSymbols(*symbolsToAdopt, status);
}
}
}
}
-// Setting the symbols is equlivalent to adopting a newly created localized symbols.
+// Setting the symbols is equivalent to adopting a newly created localized symbols.
void
RuleBasedNumberFormat::setDecimalFormatSymbols(const DecimalFormatSymbols& symbols)
{
@@ -1979,7 +1994,11 @@ RuleBasedNumberFormat::createPluralFormat(UPluralType pluralType,
const UnicodeString &pattern,
UErrorCode& status) const
{
- return new PluralFormat(locale, pluralType, pattern, status);
+ auto *pf = new PluralFormat(locale, pluralType, pattern, status);
+ if (pf == nullptr) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ }
+ return pf;
}
/**
@@ -1987,7 +2006,7 @@ RuleBasedNumberFormat::createPluralFormat(UPluralType pluralType,
* @return A rounding mode
*/
DecimalFormat::ERoundingMode RuleBasedNumberFormat::getRoundingMode() const {
- return roundingMode;
+ return fRoundingMode;
}
/**
@@ -1996,7 +2015,7 @@ DecimalFormat::ERoundingMode RuleBasedNumberFormat::getRoundingMode() const {
* @param roundingMode A rounding mode
*/
void RuleBasedNumberFormat::setRoundingMode(DecimalFormat::ERoundingMode roundingMode) {
- this->roundingMode = roundingMode;
+ fRoundingMode = roundingMode;
}
U_NAMESPACE_END
diff --git a/Build/source/libs/icu/icu-src/source/i18n/rbt.h b/Build/source/libs/icu/icu-src/source/i18n/rbt.h
index b998c694c23..671149f66ef 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/rbt.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/rbt.h
@@ -29,262 +29,10 @@ class TransliterationRuleData;
/**
* <code>RuleBasedTransliterator</code> is a transliterator
- * that reads a set of rules in order to determine how to perform
- * translations. Rule sets are stored in resource bundles indexed by
- * name. Rules within a rule set are separated by semicolons (';').
- * To include a literal semicolon, prefix it with a backslash ('\').
- * Whitespace, as defined by <code>Character.isWhitespace()</code>,
- * is ignored. If the first non-blank character on a line is '#',
- * the entire line is ignored as a comment. </p>
- *
- * <p>Each set of rules consists of two groups, one forward, and one
- * reverse. This is a convention that is not enforced; rules for one
- * direction may be omitted, with the result that translations in
- * that direction will not modify the source text. In addition,
- * bidirectional forward-reverse rules may be specified for
- * symmetrical transformations.</p>
- *
- * <p><b>Rule syntax</b> </p>
- *
- * <p>Rule statements take one of the following forms: </p>
- *
- * <dl>
- * <dt><code>$alefmadda=\u0622;</code></dt>
- * <dd><strong>Variable definition.</strong> The name on the
- * left is assigned the text on the right. In this example,
- * after this statement, instances of the left hand name,
- * &quot;<code>$alefmadda</code>&quot;, will be replaced by
- * the Unicode character U+0622. Variable names must begin
- * with a letter and consist only of letters, digits, and
- * underscores. Case is significant. Duplicate names cause
- * an exception to be thrown, that is, variables cannot be
- * redefined. The right hand side may contain well-formed
- * text of any length, including no text at all (&quot;<code>$empty=;</code>&quot;).
- * The right hand side may contain embedded <code>UnicodeSet</code>
- * patterns, for example, &quot;<code>$softvowel=[eiyEIY]</code>&quot;.</dd>
- * <dd>&nbsp;</dd>
- * <dt><code>ai&gt;$alefmadda;</code></dt>
- * <dd><strong>Forward translation rule.</strong> This rule
- * states that the string on the left will be changed to the
- * string on the right when performing forward
- * transliteration.</dd>
- * <dt>&nbsp;</dt>
- * <dt><code>ai<$alefmadda;</code></dt>
- * <dd><strong>Reverse translation rule.</strong> This rule
- * states that the string on the right will be changed to
- * the string on the left when performing reverse
- * transliteration.</dd>
- * </dl>
- *
- * <dl>
- * <dt><code>ai<>$alefmadda;</code></dt>
- * <dd><strong>Bidirectional translation rule.</strong> This
- * rule states that the string on the right will be changed
- * to the string on the left when performing forward
- * transliteration, and vice versa when performing reverse
- * transliteration.</dd>
- * </dl>
- *
- * <p>Translation rules consist of a <em>match pattern</em> and an <em>output
- * string</em>. The match pattern consists of literal characters,
- * optionally preceded by context, and optionally followed by
- * context. Context characters, like literal pattern characters,
- * must be matched in the text being transliterated. However, unlike
- * literal pattern characters, they are not replaced by the output
- * text. For example, the pattern &quot;<code>abc{def}</code>&quot;
- * indicates the characters &quot;<code>def</code>&quot; must be
- * preceded by &quot;<code>abc</code>&quot; for a successful match.
- * If there is a successful match, &quot;<code>def</code>&quot; will
- * be replaced, but not &quot;<code>abc</code>&quot;. The final '<code>}</code>'
- * is optional, so &quot;<code>abc{def</code>&quot; is equivalent to
- * &quot;<code>abc{def}</code>&quot;. Another example is &quot;<code>{123}456</code>&quot;
- * (or &quot;<code>123}456</code>&quot;) in which the literal
- * pattern &quot;<code>123</code>&quot; must be followed by &quot;<code>456</code>&quot;.
- * </p>
- *
- * <p>The output string of a forward or reverse rule consists of
- * characters to replace the literal pattern characters. If the
- * output string contains the character '<code>|</code>', this is
- * taken to indicate the location of the <em>cursor</em> after
- * replacement. The cursor is the point in the text at which the
- * next replacement, if any, will be applied. The cursor is usually
- * placed within the replacement text; however, it can actually be
- * placed into the precending or following context by using the
- * special character '<code>@</code>'. Examples:</p>
- *
- * <blockquote>
- * <p><code>a {foo} z &gt; | @ bar; # foo -&gt; bar, move cursor
- * before a<br>
- * {foo} xyz &gt; bar @@|; #&nbsp;foo -&gt; bar, cursor between
- * y and z</code></p>
- * </blockquote>
- *
- * <p><b>UnicodeSet</b></p>
- *
- * <p><code>UnicodeSet</code> patterns may appear anywhere that
- * makes sense. They may appear in variable definitions.
- * Contrariwise, <code>UnicodeSet</code> patterns may themselves
- * contain variable references, such as &quot;<code>$a=[a-z];$not_a=[^$a]</code>&quot;,
- * or &quot;<code>$range=a-z;$ll=[$range]</code>&quot;.</p>
- *
- * <p><code>UnicodeSet</code> patterns may also be embedded directly
- * into rule strings. Thus, the following two rules are equivalent:</p>
- *
- * <blockquote>
- * <p><code>$vowel=[aeiou]; $vowel&gt;'*'; # One way to do this<br>
- * [aeiou]&gt;'*';
- * &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#
- * Another way</code></p>
- * </blockquote>
- *
- * <p>See {@link UnicodeSet} for more documentation and examples.</p>
- *
- * <p><b>Segments</b></p>
- *
- * <p>Segments of the input string can be matched and copied to the
- * output string. This makes certain sets of rules simpler and more
- * general, and makes reordering possible. For example:</p>
- *
- * <blockquote>
- * <p><code>([a-z]) &gt; $1 $1;
- * &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#
- * double lowercase letters<br>
- * ([:Lu:]) ([:Ll:]) &gt; $2 $1; # reverse order of Lu-Ll pairs</code></p>
- * </blockquote>
- *
- * <p>The segment of the input string to be copied is delimited by
- * &quot;<code>(</code>&quot; and &quot;<code>)</code>&quot;. Up to
- * nine segments may be defined. Segments may not overlap. In the
- * output string, &quot;<code>$1</code>&quot; through &quot;<code>$9</code>&quot;
- * represent the input string segments, in left-to-right order of
- * definition.</p>
- *
- * <p><b>Anchors</b></p>
- *
- * <p>Patterns can be anchored to the beginning or the end of the text. This is done with the
- * special characters '<code>^</code>' and '<code>$</code>'. For example:</p>
- *
- * <blockquote>
- * <p><code>^ a&nbsp;&nbsp; &gt; 'BEG_A'; &nbsp;&nbsp;# match 'a' at start of text<br>
- * &nbsp; a&nbsp;&nbsp; &gt; 'A';&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # match other instances
- * of 'a'<br>
- * &nbsp; z $ &gt; 'END_Z'; &nbsp;&nbsp;# match 'z' at end of text<br>
- * &nbsp; z&nbsp;&nbsp; &gt; 'Z';&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # match other instances
- * of 'z'</code></p>
- * </blockquote>
- *
- * <p>It is also possible to match the beginning or the end of the text using a <code>UnicodeSet</code>.
- * This is done by including a virtual anchor character '<code>$</code>' at the end of the
- * set pattern. Although this is usually the match chafacter for the end anchor, the set will
- * match either the beginning or the end of the text, depending on its placement. For
- * example:</p>
- *
- * <blockquote>
- * <p><code>$x = [a-z$]; &nbsp;&nbsp;# match 'a' through 'z' OR anchor<br>
- * $x 1&nbsp;&nbsp;&nbsp; &gt; 2;&nbsp;&nbsp; # match '1' after a-z or at the start<br>
- * &nbsp;&nbsp; 3 $x &gt; 4; &nbsp;&nbsp;# match '3' before a-z or at the end</code></p>
- * </blockquote>
- *
- * <p><b>Example</b> </p>
- *
- * <p>The following example rules illustrate many of the features of
- * the rule language. </p>
- *
- * <table border="0" cellpadding="4">
- * <tr>
- * <td valign="top">Rule 1.</td>
- * <td valign="top" nowrap><code>abc{def}&gt;x|y</code></td>
- * </tr>
- * <tr>
- * <td valign="top">Rule 2.</td>
- * <td valign="top" nowrap><code>xyz&gt;r</code></td>
- * </tr>
- * <tr>
- * <td valign="top">Rule 3.</td>
- * <td valign="top" nowrap><code>yz&gt;q</code></td>
- * </tr>
- * </table>
- *
- * <p>Applying these rules to the string &quot;<code>adefabcdefz</code>&quot;
- * yields the following results: </p>
- *
- * <table border="0" cellpadding="4">
- * <tr>
- * <td valign="top" nowrap><code>|adefabcdefz</code></td>
- * <td valign="top">Initial state, no rules match. Advance
- * cursor.</td>
- * </tr>
- * <tr>
- * <td valign="top" nowrap><code>a|defabcdefz</code></td>
- * <td valign="top">Still no match. Rule 1 does not match
- * because the preceding context is not present.</td>
- * </tr>
- * <tr>
- * <td valign="top" nowrap><code>ad|efabcdefz</code></td>
- * <td valign="top">Still no match. Keep advancing until
- * there is a match...</td>
- * </tr>
- * <tr>
- * <td valign="top" nowrap><code>ade|fabcdefz</code></td>
- * <td valign="top">...</td>
- * </tr>
- * <tr>
- * <td valign="top" nowrap><code>adef|abcdefz</code></td>
- * <td valign="top">...</td>
- * </tr>
- * <tr>
- * <td valign="top" nowrap><code>adefa|bcdefz</code></td>
- * <td valign="top">...</td>
- * </tr>
- * <tr>
- * <td valign="top" nowrap><code>adefab|cdefz</code></td>
- * <td valign="top">...</td>
- * </tr>
- * <tr>
- * <td valign="top" nowrap><code>adefabc|defz</code></td>
- * <td valign="top">Rule 1 matches; replace &quot;<code>def</code>&quot;
- * with &quot;<code>xy</code>&quot; and back up the cursor
- * to before the '<code>y</code>'.</td>
- * </tr>
- * <tr>
- * <td valign="top" nowrap><code>adefabcx|yz</code></td>
- * <td valign="top">Although &quot;<code>xyz</code>&quot; is
- * present, rule 2 does not match because the cursor is
- * before the '<code>y</code>', not before the '<code>x</code>'.
- * Rule 3 does match. Replace &quot;<code>yz</code>&quot;
- * with &quot;<code>q</code>&quot;.</td>
- * </tr>
- * <tr>
- * <td valign="top" nowrap><code>adefabcxq|</code></td>
- * <td valign="top">The cursor is at the end;
- * transliteration is complete.</td>
- * </tr>
- * </table>
- *
- * <p>The order of rules is significant. If multiple rules may match
- * at some point, the first matching rule is applied. </p>
- *
- * <p>Forward and reverse rules may have an empty output string.
- * Otherwise, an empty left or right hand side of any statement is a
- * syntax error. </p>
- *
- * <p>Single quotes are used to quote any character other than a
- * digit or letter. To specify a single quote itself, inside or
- * outside of quotes, use two single quotes in a row. For example,
- * the rule &quot;<code>'&gt;'&gt;o''clock</code>&quot; changes the
- * string &quot;<code>&gt;</code>&quot; to the string &quot;<code>o'clock</code>&quot;.
- * </p>
- *
- * <p><b>Notes</b> </p>
- *
- * <p>While a RuleBasedTransliterator is being built, it checks that
- * the rules are added in proper order. For example, if the rule
- * &quot;a&gt;x&quot; is followed by the rule &quot;ab&gt;y&quot;,
- * then the second rule will throw an exception. The reason is that
- * the second rule can never be triggered, since the first rule
- * always matches anything it matches. In other words, the first
- * rule <em>masks</em> the second rule. </p>
- *
+ * built from a set of rules as defined for
+ * Transliterator::createFromRules().
+ * See the C++ class Transliterator documentation for the rule syntax.
+ *
* @author Alan Liu
* @internal Use transliterator factory methods instead since this class will be removed in that release.
*/
diff --git a/Build/source/libs/icu/icu-src/source/i18n/rbt_pars.cpp b/Build/source/libs/icu/icu-src/source/i18n/rbt_pars.cpp
index 6ed89b1fc58..9932dbdc95e 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/rbt_pars.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/rbt_pars.cpp
@@ -194,9 +194,9 @@ const UnicodeFunctor* ParseData::lookupMatcher(UChar32 ch) const {
const UnicodeFunctor* set = NULL;
int32_t i = ch - data->variablesBase;
if (i >= 0 && i < variablesVector->size()) {
- int32_t i = ch - data->variablesBase;
- set = (i < variablesVector->size()) ?
- (UnicodeFunctor*) variablesVector->elementAt(i) : 0;
+ int32_t j = ch - data->variablesBase;
+ set = (j < variablesVector->size()) ?
+ (UnicodeFunctor*) variablesVector->elementAt(j) : 0;
}
return set;
}
@@ -1108,8 +1108,8 @@ void TransliteratorParser::parseRules(const UnicodeString& rule,
}
data->variableNames.removeAll();
- int32_t pos = UHASH_FIRST;
- const UHashElement* he = variableNames.nextElement(pos);
+ int32_t p = UHASH_FIRST;
+ const UHashElement* he = variableNames.nextElement(p);
while (he != NULL) {
UnicodeString* tempus = (UnicodeString*)(((UnicodeString*)(he->value.pointer))->clone());
if (tempus == NULL) {
@@ -1118,7 +1118,7 @@ void TransliteratorParser::parseRules(const UnicodeString& rule,
}
data->variableNames.put(*((UnicodeString*)(he->key.pointer)),
tempus, status);
- he = variableNames.nextElement(pos);
+ he = variableNames.nextElement(p);
}
}
variablesVector.removeAllElements(); // keeps them from getting deleted when we succeed
diff --git a/Build/source/libs/icu/icu-src/source/i18n/regexcmp.cpp b/Build/source/libs/icu/icu-src/source/i18n/regexcmp.cpp
index ca1008c0d06..a674d22c929 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/regexcmp.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/regexcmp.cpp
@@ -28,6 +28,7 @@
#include "patternprops.h"
#include "putilimp.h"
#include "cmemory.h"
+#include "cstr.h"
#include "cstring.h"
#include "uvectr32.h"
#include "uvectr64.h"
@@ -3892,7 +3893,7 @@ void RegexCompile::stripNOPs() {
//
//------------------------------------------------------------------------------
void RegexCompile::error(UErrorCode e) {
- if (U_SUCCESS(*fStatus)) {
+ if (U_SUCCESS(*fStatus) || e == U_MEMORY_ALLOCATION_ERROR) {
*fStatus = e;
// Hmm. fParseErr (UParseError) line & offset fields are int32_t in public
// API (see common/unicode/parseerr.h), while fLineNum and fCharNum are
@@ -4370,209 +4371,209 @@ static inline void addIdentifierIgnorable(UnicodeSet *set, UErrorCode& ec) {
// Includes trying the Java "properties" that aren't supported as
// normal ICU UnicodeSet properties
//
-static const UChar posSetPrefix[] = {0x5b, 0x5c, 0x70, 0x7b, 0}; // "[\p{"
-static const UChar negSetPrefix[] = {0x5b, 0x5c, 0x50, 0x7b, 0}; // "[\P{"
UnicodeSet *RegexCompile::createSetForProperty(const UnicodeString &propName, UBool negated) {
- UnicodeString setExpr;
- UnicodeSet *set;
- uint32_t usetFlags = 0;
if (U_FAILURE(*fStatus)) {
- return NULL;
+ return nullptr;
}
+ LocalPointer<UnicodeSet> set;
+ UErrorCode status = U_ZERO_ERROR;
- //
- // First try the property as we received it
- //
- if (negated) {
- setExpr.append(negSetPrefix, -1);
- } else {
- setExpr.append(posSetPrefix, -1);
- }
- setExpr.append(propName);
- setExpr.append(chRBrace);
- setExpr.append(chRBracket);
- if (fModeFlags & UREGEX_CASE_INSENSITIVE) {
- usetFlags |= USET_CASE_INSENSITIVE;
- }
- set = new UnicodeSet(setExpr, usetFlags, NULL, *fStatus);
- if (U_SUCCESS(*fStatus)) {
- return set;
- }
- delete set;
- set = NULL;
-
- //
- // The property as it was didn't work.
-
- // Do [:word:]. It is not recognized as a property by UnicodeSet. "word" not standard POSIX
- // or standard Java, but many other regular expression packages do recognize it.
-
- if (propName.caseCompare(UNICODE_STRING_SIMPLE("word"), 0) == 0) {
- *fStatus = U_ZERO_ERROR;
- set = new UnicodeSet(*(fRXPat->fStaticSets[URX_ISWORD_SET]));
- if (set == NULL) {
- *fStatus = U_MEMORY_ALLOCATION_ERROR;
- return set;
+ do { // non-loop, exists to allow breaks from the block.
+ //
+ // First try the property as we received it
+ //
+ UnicodeString setExpr;
+ uint32_t usetFlags = 0;
+ setExpr.append(u"[\\p{", -1);
+ setExpr.append(propName);
+ setExpr.append(u"}]", -1);
+ if (fModeFlags & UREGEX_CASE_INSENSITIVE) {
+ usetFlags |= USET_CASE_INSENSITIVE;
}
- if (negated) {
- set->complement();
+ set.adoptInsteadAndCheckErrorCode(new UnicodeSet(setExpr, usetFlags, NULL, status), status);
+ if (U_SUCCESS(status) || status == U_MEMORY_ALLOCATION_ERROR) {
+ break;
}
- return set;
- }
+ //
+ // The incoming property wasn't directly recognized by ICU.
- // Do Java fixes -
- // InGreek -> InGreek or Coptic, that being the official Unicode name for that block.
- // InCombiningMarksforSymbols -> InCombiningDiacriticalMarksforSymbols.
- //
- // Note on Spaces: either "InCombiningMarksForSymbols" or "InCombining Marks for Symbols"
- // is accepted by Java. The property part of the name is compared
- // case-insenstively. The spaces must be exactly as shown, either
- // all there, or all omitted, with exactly one at each position
- // if they are present. From checking against JDK 1.6
- //
- // This code should be removed when ICU properties support the Java compatibility names
- // (ICU 4.0?)
- //
- UnicodeString mPropName = propName;
- if (mPropName.caseCompare(UNICODE_STRING_SIMPLE("InGreek"), 0) == 0) {
- mPropName = UNICODE_STRING_SIMPLE("InGreek and Coptic");
- }
- if (mPropName.caseCompare(UNICODE_STRING_SIMPLE("InCombining Marks for Symbols"), 0) == 0 ||
- mPropName.caseCompare(UNICODE_STRING_SIMPLE("InCombiningMarksforSymbols"), 0) == 0) {
- mPropName = UNICODE_STRING_SIMPLE("InCombining Diacritical Marks for Symbols");
- }
- else if (mPropName.compare(UNICODE_STRING_SIMPLE("all")) == 0) {
- mPropName = UNICODE_STRING_SIMPLE("javaValidCodePoint");
- }
+ // Check [:word:] and [:all:]. These are not recognized as a properties by ICU UnicodeSet.
+ // Java accepts 'word' with mixed case.
+ // Java accepts 'all' only in all lower case.
- // See if the property looks like a Java "InBlockName", which
- // we will recast as "Block=BlockName"
- //
- if (mPropName.startsWith(u"In", 2) && propName.length()>=3) {
- setExpr.truncate(4); // Leaves "[\p{", or "[\P{"
- setExpr.append(u"Block=", -1);
- setExpr.append(UnicodeString(mPropName, 2)); // Property with the leading "In" removed.
- setExpr.append(chRBrace);
- setExpr.append(chRBracket);
- *fStatus = U_ZERO_ERROR;
- set = new UnicodeSet(setExpr, usetFlags, NULL, *fStatus);
- if (U_SUCCESS(*fStatus)) {
- return set;
+ status = U_ZERO_ERROR;
+ if (propName.caseCompare(u"word", -1, 0) == 0) {
+ set.adoptInsteadAndCheckErrorCode(new UnicodeSet(*(fRXPat->fStaticSets[URX_ISWORD_SET])), status);
+ break;
+ }
+ if (propName.compare(u"all", -1) == 0) {
+ set.adoptInsteadAndCheckErrorCode(new UnicodeSet(0, 0x10ffff), status);
+ break;
}
- delete set;
- set = NULL;
- }
- if (propName.startsWith(UNICODE_STRING_SIMPLE("java")) ||
- propName.compare(UNICODE_STRING_SIMPLE("all")) == 0)
- {
- UErrorCode localStatus = U_ZERO_ERROR;
- //setExpr.remove();
- set = new UnicodeSet();
- //
- // Try the various Java specific properties.
- // These all begin with "java"
+
+ // Do Java InBlock expressions
//
- if (mPropName.compare(UNICODE_STRING_SIMPLE("javaDefined")) == 0) {
- addCategory(set, U_GC_CN_MASK, localStatus);
- set->complement();
- }
- else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaDigit")) == 0) {
- addCategory(set, U_GC_ND_MASK, localStatus);
- }
- else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaIdentifierIgnorable")) == 0) {
- addIdentifierIgnorable(set, localStatus);
- }
- else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaISOControl")) == 0) {
- set->add(0, 0x1F).add(0x7F, 0x9F);
- }
- else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaJavaIdentifierPart")) == 0) {
- addCategory(set, U_GC_L_MASK, localStatus);
- addCategory(set, U_GC_SC_MASK, localStatus);
- addCategory(set, U_GC_PC_MASK, localStatus);
- addCategory(set, U_GC_ND_MASK, localStatus);
- addCategory(set, U_GC_NL_MASK, localStatus);
- addCategory(set, U_GC_MC_MASK, localStatus);
- addCategory(set, U_GC_MN_MASK, localStatus);
- addIdentifierIgnorable(set, localStatus);
- }
- else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaJavaIdentifierStart")) == 0) {
- addCategory(set, U_GC_L_MASK, localStatus);
- addCategory(set, U_GC_NL_MASK, localStatus);
- addCategory(set, U_GC_SC_MASK, localStatus);
- addCategory(set, U_GC_PC_MASK, localStatus);
- }
- else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaLetter")) == 0) {
- addCategory(set, U_GC_L_MASK, localStatus);
- }
- else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaLetterOrDigit")) == 0) {
- addCategory(set, U_GC_L_MASK, localStatus);
- addCategory(set, U_GC_ND_MASK, localStatus);
- }
- else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaLowerCase")) == 0) {
- addCategory(set, U_GC_LL_MASK, localStatus);
- }
- else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaMirrored")) == 0) {
- set->applyIntPropertyValue(UCHAR_BIDI_MIRRORED, 1, localStatus);
- }
- else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaSpaceChar")) == 0) {
- addCategory(set, U_GC_Z_MASK, localStatus);
- }
- else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaSupplementaryCodePoint")) == 0) {
- set->add(0x10000, UnicodeSet::MAX_VALUE);
- }
- else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaTitleCase")) == 0) {
- addCategory(set, U_GC_LT_MASK, localStatus);
- }
- else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaUnicodeIdentifierStart")) == 0) {
- addCategory(set, U_GC_L_MASK, localStatus);
- addCategory(set, U_GC_NL_MASK, localStatus);
- }
- else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaUnicodeIdentifierPart")) == 0) {
- addCategory(set, U_GC_L_MASK, localStatus);
- addCategory(set, U_GC_PC_MASK, localStatus);
- addCategory(set, U_GC_ND_MASK, localStatus);
- addCategory(set, U_GC_NL_MASK, localStatus);
- addCategory(set, U_GC_MC_MASK, localStatus);
- addCategory(set, U_GC_MN_MASK, localStatus);
- addIdentifierIgnorable(set, localStatus);
- }
- else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaUpperCase")) == 0) {
- addCategory(set, U_GC_LU_MASK, localStatus);
- }
- else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaValidCodePoint")) == 0) {
- set->add(0, UnicodeSet::MAX_VALUE);
- }
- else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaWhitespace")) == 0) {
- addCategory(set, U_GC_Z_MASK, localStatus);
- set->removeAll(UnicodeSet().add(0xa0).add(0x2007).add(0x202f));
- set->add(9, 0x0d).add(0x1c, 0x1f);
- }
- else if (mPropName.compare(UNICODE_STRING_SIMPLE("all")) == 0) {
- set->add(0, UnicodeSet::MAX_VALUE);
+ UnicodeString mPropName = propName;
+ if (mPropName.startsWith(u"In", 2) && mPropName.length() >= 3) {
+ status = U_ZERO_ERROR;
+ set.adoptInsteadAndCheckErrorCode(new UnicodeSet(), status);
+ if (U_FAILURE(status)) {
+ break;
+ }
+ UnicodeString blockName(mPropName, 2); // Property with the leading "In" removed.
+ set->applyPropertyAlias(UnicodeString(u"Block"), blockName, status);
+ break;
}
- if (U_SUCCESS(localStatus) && !set->isEmpty()) {
- *fStatus = U_ZERO_ERROR;
- if (usetFlags & USET_CASE_INSENSITIVE) {
+ // Check for the Java form "IsBooleanPropertyValue", which we will recast
+ // as "BooleanPropertyValue". The property value can be either a
+ // a General Category or a Script Name.
+
+ if (propName.startsWith(u"Is", 2) && propName.length()>=3) {
+ mPropName.remove(0, 2); // Strip the "Is"
+ if (mPropName.indexOf(u'=') >= 0) {
+ // Reject any "Is..." property expression containing an '=', that is,
+ // any non-binary property expression.
+ status = U_REGEX_PROPERTY_SYNTAX;
+ break;
+ }
+
+ if (mPropName.caseCompare(u"assigned", -1, 0) == 0) {
+ mPropName.setTo(u"unassigned", -1);
+ negated = !negated;
+ } else if (mPropName.caseCompare(u"TitleCase", -1, 0) == 0) {
+ mPropName.setTo(u"Titlecase_Letter", -1);
+ }
+
+ mPropName.insert(0, u"[\\p{", -1);
+ mPropName.append(u"}]", -1);
+ set.adoptInsteadAndCheckErrorCode(new UnicodeSet(mPropName, *fStatus), status);
+
+ if (U_SUCCESS(status) && !set->isEmpty() && (usetFlags & USET_CASE_INSENSITIVE)) {
set->closeOver(USET_CASE_INSENSITIVE);
}
- if (negated) {
+ break;
+
+ }
+
+ if (propName.startsWith(u"java", -1)) {
+ status = U_ZERO_ERROR;
+ set.adoptInsteadAndCheckErrorCode(new UnicodeSet(), status);
+ if (U_FAILURE(status)) {
+ break;
+ }
+ //
+ // Try the various Java specific properties.
+ // These all begin with "java"
+ //
+ if (propName.compare(u"javaDefined", -1) == 0) {
+ addCategory(set.getAlias(), U_GC_CN_MASK, status);
set->complement();
}
- return set;
+ else if (propName.compare(u"javaDigit", -1) == 0) {
+ addCategory(set.getAlias(), U_GC_ND_MASK, status);
+ }
+ else if (propName.compare(u"javaIdentifierIgnorable", -1) == 0) {
+ addIdentifierIgnorable(set.getAlias(), status);
+ }
+ else if (propName.compare(u"javaISOControl", -1) == 0) {
+ set->add(0, 0x1F).add(0x7F, 0x9F);
+ }
+ else if (propName.compare(u"javaJavaIdentifierPart", -1) == 0) {
+ addCategory(set.getAlias(), U_GC_L_MASK, status);
+ addCategory(set.getAlias(), U_GC_SC_MASK, status);
+ addCategory(set.getAlias(), U_GC_PC_MASK, status);
+ addCategory(set.getAlias(), U_GC_ND_MASK, status);
+ addCategory(set.getAlias(), U_GC_NL_MASK, status);
+ addCategory(set.getAlias(), U_GC_MC_MASK, status);
+ addCategory(set.getAlias(), U_GC_MN_MASK, status);
+ addIdentifierIgnorable(set.getAlias(), status);
+ }
+ else if (propName.compare(u"javaJavaIdentifierStart", -1) == 0) {
+ addCategory(set.getAlias(), U_GC_L_MASK, status);
+ addCategory(set.getAlias(), U_GC_NL_MASK, status);
+ addCategory(set.getAlias(), U_GC_SC_MASK, status);
+ addCategory(set.getAlias(), U_GC_PC_MASK, status);
+ }
+ else if (propName.compare(u"javaLetter", -1) == 0) {
+ addCategory(set.getAlias(), U_GC_L_MASK, status);
+ }
+ else if (propName.compare(u"javaLetterOrDigit", -1) == 0) {
+ addCategory(set.getAlias(), U_GC_L_MASK, status);
+ addCategory(set.getAlias(), U_GC_ND_MASK, status);
+ }
+ else if (propName.compare(u"javaLowerCase", -1) == 0) {
+ addCategory(set.getAlias(), U_GC_LL_MASK, status);
+ }
+ else if (propName.compare(u"javaMirrored", -1) == 0) {
+ set->applyIntPropertyValue(UCHAR_BIDI_MIRRORED, 1, status);
+ }
+ else if (propName.compare(u"javaSpaceChar", -1) == 0) {
+ addCategory(set.getAlias(), U_GC_Z_MASK, status);
+ }
+ else if (propName.compare(u"javaSupplementaryCodePoint", -1) == 0) {
+ set->add(0x10000, UnicodeSet::MAX_VALUE);
+ }
+ else if (propName.compare(u"javaTitleCase", -1) == 0) {
+ addCategory(set.getAlias(), U_GC_LT_MASK, status);
+ }
+ else if (propName.compare(u"javaUnicodeIdentifierStart", -1) == 0) {
+ addCategory(set.getAlias(), U_GC_L_MASK, status);
+ addCategory(set.getAlias(), U_GC_NL_MASK, status);
+ }
+ else if (propName.compare(u"javaUnicodeIdentifierPart", -1) == 0) {
+ addCategory(set.getAlias(), U_GC_L_MASK, status);
+ addCategory(set.getAlias(), U_GC_PC_MASK, status);
+ addCategory(set.getAlias(), U_GC_ND_MASK, status);
+ addCategory(set.getAlias(), U_GC_NL_MASK, status);
+ addCategory(set.getAlias(), U_GC_MC_MASK, status);
+ addCategory(set.getAlias(), U_GC_MN_MASK, status);
+ addIdentifierIgnorable(set.getAlias(), status);
+ }
+ else if (propName.compare(u"javaUpperCase", -1) == 0) {
+ addCategory(set.getAlias(), U_GC_LU_MASK, status);
+ }
+ else if (propName.compare(u"javaValidCodePoint", -1) == 0) {
+ set->add(0, UnicodeSet::MAX_VALUE);
+ }
+ else if (propName.compare(u"javaWhitespace", -1) == 0) {
+ addCategory(set.getAlias(), U_GC_Z_MASK, status);
+ set->removeAll(UnicodeSet().add(0xa0).add(0x2007).add(0x202f));
+ set->add(9, 0x0d).add(0x1c, 0x1f);
+ } else {
+ status = U_REGEX_PROPERTY_SYNTAX;
+ }
+
+ if (U_SUCCESS(status) && !set->isEmpty() && (usetFlags & USET_CASE_INSENSITIVE)) {
+ set->closeOver(USET_CASE_INSENSITIVE);
+ }
+ break;
+ }
+
+ // Unrecognized property. ICU didn't like it as it was, and none of the Java compatibility
+ // extensions matched it.
+ status = U_REGEX_PROPERTY_SYNTAX;
+ } while (false); // End of do loop block. Code above breaks out of the block on success or hard failure.
+
+ if (U_SUCCESS(status)) {
+ U_ASSERT(set.isValid());
+ if (negated) {
+ set->complement();
}
- delete set;
- set = NULL;
+ return set.orphan();
+ } else {
+ if (status == U_ILLEGAL_ARGUMENT_ERROR) {
+ status = U_REGEX_PROPERTY_SYNTAX;
+ }
+ error(status);
+ return nullptr;
}
- error(*fStatus);
- return NULL;
}
-
//
// SetEval Part of the evaluation of [set expressions].
// Perform any pending (stacked) operations with precedence
diff --git a/Build/source/libs/icu/icu-src/source/i18n/region.cpp b/Build/source/libs/icu/icu-src/source/i18n/region.cpp
index 66de31de8b3..343ef78832a 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/region.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/region.cpp
@@ -168,10 +168,18 @@ void U_CALLCONV Region::loadRegionData(UErrorCode &status) {
continents->addElement(continentName,status);
}
+ UResourceBundle *groupingBundle = nullptr;
while ( ures_hasNext(groupingContainment.getAlias()) ) {
- UnicodeString *groupingName = new UnicodeString(ures_getNextUnicodeString(groupingContainment.getAlias(),NULL,&status));
- groupings->addElement(groupingName,status);
+ groupingBundle = ures_getNextResource(groupingContainment.getAlias(), groupingBundle, &status);
+ if (U_FAILURE(status)) {
+ break;
+ }
+ UnicodeString *groupingName = new UnicodeString(ures_getKey(groupingBundle), -1, US_INV);
+ if (groupingName) {
+ groupings->addElement(groupingName,status);
+ }
}
+ ures_close(groupingBundle);
for ( int32_t i = 0 ; i < allRegions->size() ; i++ ) {
LocalPointer<Region> r(new Region(), status);
@@ -182,7 +190,7 @@ void U_CALLCONV Region::loadRegionData(UErrorCode &status) {
r->idStr = *regionName;
r->idStr.extract(0,r->idStr.length(),r->id,sizeof(r->id),US_INV);
- r->type = URGN_TERRITORY; // Only temporary - figure out the real type later once the aliases are known.
+ r->fType = URGN_TERRITORY; // Only temporary - figure out the real type later once the aliases are known.
Formattable result;
UErrorCode ps = U_ZERO_ERROR;
@@ -190,7 +198,7 @@ void U_CALLCONV Region::loadRegionData(UErrorCode &status) {
if ( U_SUCCESS(ps) ) {
r->code = result.getLong(); // Convert string to number
uhash_iput(newNumericCodeMap.getAlias(),r->code,(void *)(r.getAlias()),&status);
- r->type = URGN_SUBCONTINENT;
+ r->fType = URGN_SUBCONTINENT;
} else {
r->code = -1;
}
@@ -231,9 +239,9 @@ void U_CALLCONV Region::loadRegionData(UErrorCode &status) {
} else {
aliasFromRegion->code = -1;
}
- aliasFromRegion->type = URGN_DEPRECATED;
+ aliasFromRegion->fType = URGN_DEPRECATED;
} else {
- aliasFromRegion->type = URGN_DEPRECATED;
+ aliasFromRegion->fType = URGN_DEPRECATED;
}
{
@@ -290,26 +298,26 @@ void U_CALLCONV Region::loadRegionData(UErrorCode &status) {
UnicodeString WORLD_ID_STRING(WORLD_ID);
r = (Region *) uhash_get(newRegionIDMap.getAlias(),(void *)&WORLD_ID_STRING);
if ( r ) {
- r->type = URGN_WORLD;
+ r->fType = URGN_WORLD;
}
UnicodeString UNKNOWN_REGION_ID_STRING(UNKNOWN_REGION_ID);
r = (Region *) uhash_get(newRegionIDMap.getAlias(),(void *)&UNKNOWN_REGION_ID_STRING);
if ( r ) {
- r->type = URGN_UNKNOWN;
+ r->fType = URGN_UNKNOWN;
}
for ( int32_t i = 0 ; i < continents->size() ; i++ ) {
r = (Region *) uhash_get(newRegionIDMap.getAlias(),(void *)continents->elementAt(i));
if ( r ) {
- r->type = URGN_CONTINENT;
+ r->fType = URGN_CONTINENT;
}
}
for ( int32_t i = 0 ; i < groupings->size() ; i++ ) {
r = (Region *) uhash_get(newRegionIDMap.getAlias(),(void *)groupings->elementAt(i));
if ( r ) {
- r->type = URGN_GROUPING;
+ r->fType = URGN_GROUPING;
}
}
@@ -319,7 +327,7 @@ void U_CALLCONV Region::loadRegionData(UErrorCode &status) {
UnicodeString OUTLYING_OCEANIA_REGION_ID_STRING(OUTLYING_OCEANIA_REGION_ID);
r = (Region *) uhash_get(newRegionIDMap.getAlias(),(void *)&OUTLYING_OCEANIA_REGION_ID_STRING);
if ( r ) {
- r->type = URGN_SUBCONTINENT;
+ r->fType = URGN_SUBCONTINENT;
}
// Load territory containment info from the supplemental data.
@@ -356,7 +364,7 @@ void U_CALLCONV Region::loadRegionData(UErrorCode &status) {
// Set the parent region to be the containing region of the child.
// Regions of type GROUPING can't be set as the parent, since another region
// such as a SUBCONTINENT, CONTINENT, or WORLD must always be the parent.
- if ( parentRegion->type != URGN_GROUPING) {
+ if ( parentRegion->fType != URGN_GROUPING) {
childRegion->containingRegion = parentRegion;
}
}
@@ -367,15 +375,15 @@ void U_CALLCONV Region::loadRegionData(UErrorCode &status) {
int32_t pos = UHASH_FIRST;
while ( const UHashElement* element = uhash_nextElement(newRegionIDMap.getAlias(),&pos)) {
Region *ar = (Region *)element->value.pointer;
- if ( availableRegions[ar->type] == NULL ) {
+ if ( availableRegions[ar->fType] == NULL ) {
LocalPointer<UVector> newAr(new UVector(uprv_deleteUObject, uhash_compareUnicodeString, status), status);
- availableRegions[ar->type] = newAr.orphan();
+ availableRegions[ar->fType] = newAr.orphan();
}
LocalPointer<UnicodeString> arString(new UnicodeString(ar->idStr), status);
if( U_FAILURE(status) ) {
return; // error out
}
- availableRegions[ar->type]->addElement((void *)arString.orphan(),status);
+ availableRegions[ar->fType]->addElement((void *)arString.orphan(),status);
}
ucln_i18n_registerCleanup(UCLN_I18N_REGION, region_cleanup);
@@ -416,7 +424,7 @@ void Region::cleanupRegionData() {
Region::Region ()
: code(-1),
- type(URGN_UNKNOWN),
+ fType(URGN_UNKNOWN),
containingRegion(NULL),
containedRegions(NULL),
preferredValues(NULL) {
@@ -481,7 +489,7 @@ Region::getInstance(const char *region_code, UErrorCode &status) {
return NULL;
}
- if ( r->type == URGN_DEPRECATED && r->preferredValues->size() == 1) {
+ if ( r->fType == URGN_DEPRECATED && r->preferredValues->size() == 1) {
StringEnumeration *pv = r->getPreferredValues(status);
pv->reset(status);
const UnicodeString *ustr = pv->snext(status);
@@ -529,7 +537,7 @@ Region::getInstance (int32_t code, UErrorCode &status) {
return NULL;
}
- if ( r->type == URGN_DEPRECATED && r->preferredValues->size() == 1) {
+ if ( r->fType == URGN_DEPRECATED && r->preferredValues->size() == 1) {
StringEnumeration *pv = r->getPreferredValues(status);
pv->reset(status);
const UnicodeString *ustr = pv->snext(status);
@@ -580,7 +588,7 @@ Region::getContainingRegion(URegionType type) const {
return NULL;
}
- return ( containingRegion->type == type )? containingRegion: containingRegion->getContainingRegion(type);
+ return ( containingRegion->fType == type)? containingRegion: containingRegion->getContainingRegion(type);
}
/**
@@ -618,9 +626,9 @@ Region::getContainedRegions( URegionType type, UErrorCode &status ) const {
StringEnumeration *cr = getContainedRegions(status);
for ( int32_t i = 0 ; i < cr->count(status) ; i++ ) {
- const char *id = cr->next(NULL,status);
- const Region *r = Region::getInstance(id,status);
- if ( r->getType() == type ) {
+ const char *regionId = cr->next(NULL,status);
+ const Region *r = Region::getInstance(regionId,status);
+ if ( r->getType() == type) {
result->addElement((void *)&r->idStr,status);
} else {
StringEnumeration *children = r->getContainedRegions(type, status);
@@ -672,7 +680,7 @@ Region::contains(const Region &other) const {
StringEnumeration*
Region::getPreferredValues(UErrorCode &status) const {
umtx_initOnce(gRegionDataInitOnce, &loadRegionData, status); // returns immediately if U_FAILURE(status)
- if (U_FAILURE(status) || type != URGN_DEPRECATED) {
+ if (U_FAILURE(status) || fType != URGN_DEPRECATED) {
return NULL;
}
return new RegionNameEnumeration(preferredValues,status);
@@ -697,7 +705,7 @@ Region::getNumericCode() const {
*/
URegionType
Region::getType() const {
- return type;
+ return fType;
}
RegionNameEnumeration::RegionNameEnumeration(UVector *fNameList, UErrorCode& status) {
diff --git a/Build/source/libs/icu/icu-src/source/i18n/reldatefmt.cpp b/Build/source/libs/icu/icu-src/source/i18n/reldatefmt.cpp
index 45ac5436aaa..1a4da0f0b95 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/reldatefmt.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/reldatefmt.cpp
@@ -14,6 +14,7 @@
#if !UCONFIG_NO_FORMATTING && !UCONFIG_NO_BREAK_ITERATION
+#include <cmath>
#include "unicode/dtfmtsym.h"
#include "unicode/ucasemap.h"
#include "unicode/ureldatefmt.h"
@@ -50,13 +51,13 @@ U_NAMESPACE_BEGIN
// RelativeDateTimeFormatter specific data for a single locale
class RelativeDateTimeCacheData: public SharedObject {
public:
- RelativeDateTimeCacheData() : combinedDateAndTime(NULL) {
+ RelativeDateTimeCacheData() : combinedDateAndTime(nullptr) {
// Initialize the cache arrays
for (int32_t style = 0; style < UDAT_STYLE_COUNT; ++style) {
- for (int32_t relUnit = 0; relUnit < UDAT_RELATIVE_UNIT_COUNT; ++relUnit) {
+ for (int32_t relUnit = 0; relUnit < UDAT_REL_UNIT_COUNT; ++relUnit) {
for (int32_t pl = 0; pl < StandardPlural::COUNT; ++pl) {
- relativeUnitsFormatters[style][relUnit][0][pl] = NULL;
- relativeUnitsFormatters[style][relUnit][1][pl] = NULL;
+ relativeUnitsFormatters[style][relUnit][0][pl] = nullptr;
+ relativeUnitsFormatters[style][relUnit][1][pl] = nullptr;
}
}
}
@@ -73,7 +74,7 @@ public:
// e.g., Next Tuesday; Yesterday; etc. For third index, 0
// means past, e.g., 5 days ago; 1 means future, e.g., in 5 days.
SimpleFormatter *relativeUnitsFormatters[UDAT_STYLE_COUNT]
- [UDAT_RELATIVE_UNIT_COUNT][2][StandardPlural::COUNT];
+ [UDAT_REL_UNIT_COUNT][2][StandardPlural::COUNT];
const UnicodeString& getAbsoluteUnitString(int32_t fStyle,
UDateAbsoluteUnit unit,
@@ -82,6 +83,10 @@ public:
UDateRelativeUnit unit,
int32_t pastFutureIndex,
int32_t pluralUnit) const;
+ const SimpleFormatter* getRelativeDateTimeUnitFormatter(int32_t fStyle,
+ URelativeDateTimeUnit unit,
+ int32_t pastFutureIndex,
+ int32_t pluralUnit) const;
const UnicodeString emptyString;
@@ -106,7 +111,7 @@ private:
RelativeDateTimeCacheData::~RelativeDateTimeCacheData() {
// clear out the cache arrays
for (int32_t style = 0; style < UDAT_STYLE_COUNT; ++style) {
- for (int32_t relUnit = 0; relUnit < UDAT_RELATIVE_UNIT_COUNT; ++relUnit) {
+ for (int32_t relUnit = 0; relUnit < UDAT_REL_UNIT_COUNT; ++relUnit) {
for (int32_t pl = 0; pl < StandardPlural::COUNT; ++pl) {
delete relativeUnitsFormatters[style][relUnit][0][pl];
delete relativeUnitsFormatters[style][relUnit][1][pl];
@@ -130,20 +135,41 @@ const UnicodeString& RelativeDateTimeCacheData::getAbsoluteUnitString(
return emptyString;
}
- // Use fallback cache for SimpleFormatter relativeUnits.
const SimpleFormatter* RelativeDateTimeCacheData::getRelativeUnitFormatter(
int32_t fStyle,
UDateRelativeUnit unit,
int32_t pastFutureIndex,
int32_t pluralUnit) const {
+ URelativeDateTimeUnit rdtunit = UDAT_REL_UNIT_COUNT;
+ switch (unit) {
+ case UDAT_RELATIVE_YEARS: rdtunit = UDAT_REL_UNIT_YEAR; break;
+ case UDAT_RELATIVE_MONTHS: rdtunit = UDAT_REL_UNIT_MONTH; break;
+ case UDAT_RELATIVE_WEEKS: rdtunit = UDAT_REL_UNIT_WEEK; break;
+ case UDAT_RELATIVE_DAYS: rdtunit = UDAT_REL_UNIT_DAY; break;
+ case UDAT_RELATIVE_HOURS: rdtunit = UDAT_REL_UNIT_HOUR; break;
+ case UDAT_RELATIVE_MINUTES: rdtunit = UDAT_REL_UNIT_MINUTE; break;
+ case UDAT_RELATIVE_SECONDS: rdtunit = UDAT_REL_UNIT_SECOND; break;
+ default: // a unit that the above method does not handle
+ return nullptr;
+ }
+
+ return getRelativeDateTimeUnitFormatter(fStyle, rdtunit, pastFutureIndex, pluralUnit);
+ }
+
+ // Use fallback cache for SimpleFormatter relativeUnits.
+ const SimpleFormatter* RelativeDateTimeCacheData::getRelativeDateTimeUnitFormatter(
+ int32_t fStyle,
+ URelativeDateTimeUnit unit,
+ int32_t pastFutureIndex,
+ int32_t pluralUnit) const {
int32_t style = fStyle;
do {
- if (relativeUnitsFormatters[style][unit][pastFutureIndex][pluralUnit] != NULL) {
+ if (relativeUnitsFormatters[style][unit][pastFutureIndex][pluralUnit] != nullptr) {
return relativeUnitsFormatters[style][unit][pastFutureIndex][pluralUnit];
}
style = fallBackCache[style];
} while (style != -1);
- return NULL; // No formatter found.
+ return nullptr; // No formatter found.
}
static UBool getStringWithFallback(
@@ -216,23 +242,35 @@ struct RelDateTimeFmtDataSink : public ResourceSink {
// Converts the generic units to UDAT_RELATIVE version.
switch (genUnit) {
case SECOND:
- return UDAT_RELATIVE_SECONDS;
+ return UDAT_REL_UNIT_SECOND;
case MINUTE:
- return UDAT_RELATIVE_MINUTES;
+ return UDAT_REL_UNIT_MINUTE;
case HOUR:
- return UDAT_RELATIVE_HOURS;
+ return UDAT_REL_UNIT_HOUR;
case DAY:
- return UDAT_RELATIVE_DAYS;
+ return UDAT_REL_UNIT_DAY;
case WEEK:
- return UDAT_RELATIVE_WEEKS;
+ return UDAT_REL_UNIT_WEEK;
case MONTH:
- return UDAT_RELATIVE_MONTHS;
- /*
- * case QUARTER:
- * return UDATE_RELATIVE_QUARTERS;
- */
+ return UDAT_REL_UNIT_MONTH;
+ case QUARTER:
+ return UDAT_REL_UNIT_QUARTER;
case YEAR:
- return UDAT_RELATIVE_YEARS;
+ return UDAT_REL_UNIT_YEAR;
+ case SUNDAY:
+ return UDAT_REL_UNIT_SUNDAY;
+ case MONDAY:
+ return UDAT_REL_UNIT_MONDAY;
+ case TUESDAY:
+ return UDAT_REL_UNIT_TUESDAY;
+ case WEDNESDAY:
+ return UDAT_REL_UNIT_WEDNESDAY;
+ case THURSDAY:
+ return UDAT_REL_UNIT_THURSDAY;
+ case FRIDAY:
+ return UDAT_REL_UNIT_FRIDAY;
+ case SATURDAY:
+ return UDAT_REL_UNIT_SATURDAY;
default:
return -1;
}
@@ -247,10 +285,8 @@ struct RelDateTimeFmtDataSink : public ResourceSink {
return UDAT_ABSOLUTE_WEEK;
case MONTH:
return UDAT_ABSOLUTE_MONTH;
- /* TODO: Add in QUARTER
- * case QUARTER:
- * return UDAT_ABSOLUTE_QUARTER;
- */
+ case QUARTER:
+ return UDAT_ABSOLUTE_QUARTER;
case YEAR:
return UDAT_ABSOLUTE_YEAR;
case SUNDAY:
@@ -311,7 +347,7 @@ struct RelDateTimeFmtDataSink : public ResourceSink {
// Utility functions
static UDateRelativeDateTimeFormatterStyle styleFromString(const char *s) {
- int32_t len = uprv_strlen(s);
+ int32_t len = static_cast<int32_t>(uprv_strlen(s));
if (len >= 7 && uprv_strcmp(s + len - 7, "-narrow") == 0) {
return UDAT_STYLE_NARROW;
}
@@ -429,7 +465,7 @@ struct RelDateTimeFmtDataSink : public ResourceSink {
}
int32_t relUnitIndex = relUnitFromGeneric(genericUnit);
- if (relUnitIndex == UDAT_RELATIVE_SECONDS && uprv_strcmp(key, "0") == 0 &&
+ if (relUnitIndex == UDAT_REL_UNIT_SECOND && uprv_strcmp(key, "0") == 0 &&
outputData.absoluteUnits[style][UDAT_ABSOLUTE_NOW][UDAT_DIRECTION_PLAIN].isEmpty()) {
// Handle "NOW"
outputData.absoluteUnits[style][UDAT_ABSOLUTE_NOW]
@@ -462,10 +498,10 @@ struct RelDateTimeFmtDataSink : public ResourceSink {
outputData.relativeUnitsFormatters[style][relUnitIndex]
[pastFutureIndex];
// Only set if not already established.
- if (patterns[pluralIndex] == NULL) {
+ if (patterns[pluralIndex] == nullptr) {
patterns[pluralIndex] = new SimpleFormatter(
value.getUnicodeString(errorCode), 0, 1, errorCode);
- if (patterns[pluralIndex] == NULL) {
+ if (patterns[pluralIndex] == nullptr) {
errorCode = U_MEMORY_ALLOCATION_ERROR;
}
}
@@ -545,7 +581,7 @@ struct RelDateTimeFmtDataSink : public ResourceSink {
consumeAlias(key, value, errorCode);
} else {
style = styleFromString(key);
- int32_t unitSize = uprv_strlen(key) - styleSuffixLength(style);
+ int32_t unitSize = static_cast<int32_t>(uprv_strlen(key)) - styleSuffixLength(style);
genericUnit = unitOrNegativeFromString(key, unitSize);
if (style >= 0 && genericUnit != INVALID_UNIT) {
consumeTimeUnit(key, value, errorCode);
@@ -569,8 +605,14 @@ static void loadWeekdayNames(UnicodeString absoluteUnits[UDAT_STYLE_COUNT]
[UDAT_ABSOLUTE_UNIT_COUNT][UDAT_DIRECTION_COUNT],
const char* localeId,
UErrorCode& status) {
+ if (U_FAILURE(status)) {
+ return;
+ }
Locale locale(localeId);
DateFormatSymbols dfSym(locale, status);
+ if (U_FAILURE(status)) {
+ return;
+ }
for (int32_t style = 0; style < UDAT_STYLE_COUNT; ++style) {
DateFormatSymbols::DtWidthType dtfmtWidth = styleToDateFormatSymbolWidth[style];
int32_t count;
@@ -594,6 +636,9 @@ static UBool loadUnitData(
RelDateTimeFmtDataSink sink(cacheData);
ures_getAllItemsWithFallback(resource, "fields", sink, status);
+ if (U_FAILURE(status)) {
+ return false;
+ }
// Get the weekday names from DateFormatSymbols.
loadWeekdayNames(cacheData.absoluteUnits, localeId, status);
@@ -618,7 +663,7 @@ static UBool getDateTimePattern(
.append("/DateTimePatterns", status);
LocalUResourceBundlePointer topLevel(
ures_getByKeyWithFallback(
- resource, pathBuffer.data(), NULL, &status));
+ resource, pathBuffer.data(), nullptr, &status));
if (U_FAILURE(status)) {
return FALSE;
}
@@ -635,68 +680,68 @@ static UBool getDateTimePattern(
template<> U_I18N_API
const RelativeDateTimeCacheData *LocaleCacheKey<RelativeDateTimeCacheData>::createObject(const void * /*unused*/, UErrorCode &status) const {
const char *localeId = fLoc.getName();
- LocalUResourceBundlePointer topLevel(ures_open(NULL, localeId, &status));
+ LocalUResourceBundlePointer topLevel(ures_open(nullptr, localeId, &status));
if (U_FAILURE(status)) {
- return NULL;
+ return nullptr;
}
LocalPointer<RelativeDateTimeCacheData> result(
new RelativeDateTimeCacheData());
if (result.isNull()) {
status = U_MEMORY_ALLOCATION_ERROR;
- return NULL;
+ return nullptr;
}
if (!loadUnitData(
topLevel.getAlias(),
*result,
localeId,
status)) {
- return NULL;
+ return nullptr;
}
UnicodeString dateTimePattern;
if (!getDateTimePattern(topLevel.getAlias(), dateTimePattern, status)) {
- return NULL;
+ return nullptr;
}
result->adoptCombinedDateAndTime(
new SimpleFormatter(dateTimePattern, 2, 2, status));
if (U_FAILURE(status)) {
- return NULL;
+ return nullptr;
}
result->addRef();
return result.orphan();
}
RelativeDateTimeFormatter::RelativeDateTimeFormatter(UErrorCode& status) :
- fCache(NULL),
- fNumberFormat(NULL),
- fPluralRules(NULL),
+ fCache(nullptr),
+ fNumberFormat(nullptr),
+ fPluralRules(nullptr),
fStyle(UDAT_STYLE_LONG),
fContext(UDISPCTX_CAPITALIZATION_NONE),
- fOptBreakIterator(NULL) {
- init(NULL, NULL, status);
+ fOptBreakIterator(nullptr) {
+ init(nullptr, nullptr, status);
}
RelativeDateTimeFormatter::RelativeDateTimeFormatter(
const Locale& locale, UErrorCode& status) :
- fCache(NULL),
- fNumberFormat(NULL),
- fPluralRules(NULL),
+ fCache(nullptr),
+ fNumberFormat(nullptr),
+ fPluralRules(nullptr),
fStyle(UDAT_STYLE_LONG),
fContext(UDISPCTX_CAPITALIZATION_NONE),
- fOptBreakIterator(NULL),
+ fOptBreakIterator(nullptr),
fLocale(locale) {
- init(NULL, NULL, status);
+ init(nullptr, nullptr, status);
}
RelativeDateTimeFormatter::RelativeDateTimeFormatter(
const Locale& locale, NumberFormat *nfToAdopt, UErrorCode& status) :
- fCache(NULL),
- fNumberFormat(NULL),
- fPluralRules(NULL),
+ fCache(nullptr),
+ fNumberFormat(nullptr),
+ fPluralRules(nullptr),
fStyle(UDAT_STYLE_LONG),
fContext(UDISPCTX_CAPITALIZATION_NONE),
- fOptBreakIterator(NULL),
+ fOptBreakIterator(nullptr),
fLocale(locale) {
- init(nfToAdopt, NULL, status);
+ init(nfToAdopt, nullptr, status);
}
RelativeDateTimeFormatter::RelativeDateTimeFormatter(
@@ -705,12 +750,12 @@ RelativeDateTimeFormatter::RelativeDateTimeFormatter(
UDateRelativeDateTimeFormatterStyle styl,
UDisplayContext capitalizationContext,
UErrorCode& status) :
- fCache(NULL),
- fNumberFormat(NULL),
- fPluralRules(NULL),
+ fCache(nullptr),
+ fNumberFormat(nullptr),
+ fPluralRules(nullptr),
fStyle(styl),
fContext(capitalizationContext),
- fOptBreakIterator(NULL),
+ fOptBreakIterator(nullptr),
fLocale(locale) {
if (U_FAILURE(status)) {
return;
@@ -726,7 +771,7 @@ RelativeDateTimeFormatter::RelativeDateTimeFormatter(
}
init(nfToAdopt, bi, status);
} else {
- init(nfToAdopt, NULL, status);
+ init(nfToAdopt, nullptr, status);
}
}
@@ -743,7 +788,7 @@ RelativeDateTimeFormatter::RelativeDateTimeFormatter(
fCache->addRef();
fNumberFormat->addRef();
fPluralRules->addRef();
- if (fOptBreakIterator != NULL) {
+ if (fOptBreakIterator != nullptr) {
fOptBreakIterator->addRef();
}
}
@@ -763,16 +808,16 @@ RelativeDateTimeFormatter& RelativeDateTimeFormatter::operator=(
}
RelativeDateTimeFormatter::~RelativeDateTimeFormatter() {
- if (fCache != NULL) {
+ if (fCache != nullptr) {
fCache->removeRef();
}
- if (fNumberFormat != NULL) {
+ if (fNumberFormat != nullptr) {
fNumberFormat->removeRef();
}
- if (fPluralRules != NULL) {
+ if (fPluralRules != nullptr) {
fPluralRules->removeRef();
}
- if (fOptBreakIterator != NULL) {
+ if (fOptBreakIterator != nullptr) {
fOptBreakIterator->removeRef();
}
}
@@ -811,7 +856,7 @@ UnicodeString& RelativeDateTimeFormatter::format(
const SimpleFormatter* formatter =
fCache->getRelativeUnitFormatter(fStyle, unit, bFuture, pluralIndex);
- if (formatter == NULL) {
+ if (formatter == nullptr) {
// TODO: WARN - look at quantity formatter's action with an error.
status = U_INVALID_FORMAT_ERROR;
return appendTo;
@@ -827,33 +872,35 @@ UnicodeString& RelativeDateTimeFormatter::formatNumeric(
if (U_FAILURE(status)) {
return appendTo;
}
- // TODO:
- // The full implementation of this depends on CLDR data that is not yet available,
- // see: http://unicode.org/cldr/trac/ticket/9165 Add more relative field data.
- // In the meantime do a quick bring-up by calling the old format method; this
- // leaves some holes (even for data that is currently available, such as quarter).
- // When the new CLDR data is available, update the data storage accordingly,
- // rewrite this to use it directly, and rewrite the old format method to call this
- // new one; that is covered by http://bugs.icu-project.org/trac/ticket/12171.
- UDateRelativeUnit relunit = UDAT_RELATIVE_UNIT_COUNT;
- switch (unit) {
- case UDAT_REL_UNIT_YEAR: relunit = UDAT_RELATIVE_YEARS; break;
- case UDAT_REL_UNIT_MONTH: relunit = UDAT_RELATIVE_MONTHS; break;
- case UDAT_REL_UNIT_WEEK: relunit = UDAT_RELATIVE_WEEKS; break;
- case UDAT_REL_UNIT_DAY: relunit = UDAT_RELATIVE_DAYS; break;
- case UDAT_REL_UNIT_HOUR: relunit = UDAT_RELATIVE_HOURS; break;
- case UDAT_REL_UNIT_MINUTE: relunit = UDAT_RELATIVE_MINUTES; break;
- case UDAT_REL_UNIT_SECOND: relunit = UDAT_RELATIVE_SECONDS; break;
- default: // a unit that the above method does not handle
- status = U_UNSUPPORTED_ERROR;
- return appendTo;
- }
UDateDirection direction = UDAT_DIRECTION_NEXT;
- if (offset < 0) {
+ if (std::signbit(offset)) { // needed to handle -0.0
direction = UDAT_DIRECTION_LAST;
offset = -offset;
}
- return format(offset, direction, relunit, appendTo, status);
+ if (direction != UDAT_DIRECTION_LAST && direction != UDAT_DIRECTION_NEXT) {
+ status = U_ILLEGAL_ARGUMENT_ERROR;
+ return appendTo;
+ }
+ int32_t bFuture = direction == UDAT_DIRECTION_NEXT ? 1 : 0;
+ FieldPosition pos(FieldPosition::DONT_CARE);
+
+ UnicodeString result;
+ UnicodeString formattedNumber;
+
+ StandardPlural::Form pluralIndex = QuantityFormatter::selectPlural(
+ offset, **fNumberFormat, **fPluralRules, formattedNumber, pos,
+ status);
+
+ const SimpleFormatter* formatter =
+ fCache->getRelativeDateTimeUnitFormatter(fStyle, unit, bFuture, pluralIndex);
+ if (formatter == nullptr) {
+ // TODO: WARN - look at quantity formatter's action with an error.
+ status = U_INVALID_FORMAT_ERROR;
+ return appendTo;
+ }
+ formatter->format(formattedNumber, result, status);
+ adjustForContext(result);
+ return appendTo.append(result);
}
UnicodeString& RelativeDateTimeFormatter::format(
@@ -870,7 +917,7 @@ UnicodeString& RelativeDateTimeFormatter::format(
// Get string using fallback.
UnicodeString result;
result.fastCopyFrom(fCache->getAbsoluteUnitString(fStyle, unit, direction));
- if (fOptBreakIterator != NULL) {
+ if (fOptBreakIterator != nullptr) {
adjustForContext(result);
}
return appendTo.append(result);
@@ -907,6 +954,7 @@ UnicodeString& RelativeDateTimeFormatter::format(
UDateAbsoluteUnit absunit = UDAT_ABSOLUTE_UNIT_COUNT;
switch (unit) {
case UDAT_REL_UNIT_YEAR: absunit = UDAT_ABSOLUTE_YEAR; break;
+ case UDAT_REL_UNIT_QUARTER: absunit = UDAT_ABSOLUTE_QUARTER; break;
case UDAT_REL_UNIT_MONTH: absunit = UDAT_ABSOLUTE_MONTH; break;
case UDAT_REL_UNIT_WEEK: absunit = UDAT_ABSOLUTE_WEEK; break;
case UDAT_REL_UNIT_DAY: absunit = UDAT_ABSOLUTE_DAY; break;
@@ -929,7 +977,7 @@ UnicodeString& RelativeDateTimeFormatter::format(
const UnicodeString &unitFormatString =
fCache->getAbsoluteUnitString(fStyle, absunit, direction);
if (!unitFormatString.isEmpty()) {
- if (fOptBreakIterator != NULL) {
+ if (fOptBreakIterator != nullptr) {
UnicodeString result(unitFormatString);
adjustForContext(result);
return appendTo.append(result);
@@ -950,7 +998,7 @@ UnicodeString& RelativeDateTimeFormatter::combineDateAndTime(
}
void RelativeDateTimeFormatter::adjustForContext(UnicodeString &str) const {
- if (fOptBreakIterator == NULL
+ if (fOptBreakIterator == nullptr
|| str.length() == 0 || !u_islower(str.char32At(0))) {
return;
}
@@ -991,7 +1039,7 @@ void RelativeDateTimeFormatter::init(
shared->removeRef();
} else {
SharedNumberFormat *shared = new SharedNumberFormat(nf.getAlias());
- if (shared == NULL) {
+ if (shared == nullptr) {
status = U_MEMORY_ALLOCATION_ERROR;
return;
}
@@ -1002,7 +1050,7 @@ void RelativeDateTimeFormatter::init(
SharedObject::clearPtr(fOptBreakIterator);
} else {
SharedBreakIterator *shared = new SharedBreakIterator(bi.getAlias());
- if (shared == NULL) {
+ if (shared == nullptr) {
status = U_MEMORY_ALLOCATION_ERROR;
return;
}
@@ -1025,13 +1073,13 @@ ureldatefmt_open( const char* locale,
UErrorCode* status )
{
if (U_FAILURE(*status)) {
- return NULL;
+ return nullptr;
}
LocalPointer<RelativeDateTimeFormatter> formatter(new RelativeDateTimeFormatter(Locale(locale),
(NumberFormat*)nfToAdopt, width,
capitalizationContext, *status), *status);
if (U_FAILURE(*status)) {
- return NULL;
+ return nullptr;
}
return (URelativeDateTimeFormatter*)formatter.orphan();
}
@@ -1053,13 +1101,13 @@ ureldatefmt_formatNumeric( const URelativeDateTimeFormatter* reldatefmt,
if (U_FAILURE(*status)) {
return 0;
}
- if (result == NULL ? resultCapacity != 0 : resultCapacity < 0) {
+ if (result == nullptr ? resultCapacity != 0 : resultCapacity < 0) {
*status = U_ILLEGAL_ARGUMENT_ERROR;
return 0;
}
UnicodeString res;
- if (result != NULL) {
- // NULL destination for pure preflighting: empty dummy string
+ if (result != nullptr) {
+ // nullptr destination for pure preflighting: empty dummy string
// otherwise, alias the destination buffer (copied from udat_format)
res.setTo(result, 0, resultCapacity);
}
@@ -1081,13 +1129,13 @@ ureldatefmt_format( const URelativeDateTimeFormatter* reldatefmt,
if (U_FAILURE(*status)) {
return 0;
}
- if (result == NULL ? resultCapacity != 0 : resultCapacity < 0) {
+ if (result == nullptr ? resultCapacity != 0 : resultCapacity < 0) {
*status = U_ILLEGAL_ARGUMENT_ERROR;
return 0;
}
UnicodeString res;
- if (result != NULL) {
- // NULL destination for pure preflighting: empty dummy string
+ if (result != nullptr) {
+ // nullptr destination for pure preflighting: empty dummy string
// otherwise, alias the destination buffer (copied from udat_format)
res.setTo(result, 0, resultCapacity);
}
@@ -1111,9 +1159,9 @@ ureldatefmt_combineDateAndTime( const URelativeDateTimeFormatter* reldatefmt,
if (U_FAILURE(*status)) {
return 0;
}
- if (result == NULL ? resultCapacity != 0 : resultCapacity < 0 ||
- (relativeDateString == NULL ? relativeDateStringLen != 0 : relativeDateStringLen < -1) ||
- (timeString == NULL ? timeStringLen != 0 : timeStringLen < -1)) {
+ if (result == nullptr ? resultCapacity != 0 : resultCapacity < 0 ||
+ (relativeDateString == nullptr ? relativeDateStringLen != 0 : relativeDateStringLen < -1) ||
+ (timeString == nullptr ? timeStringLen != 0 : timeStringLen < -1)) {
*status = U_ILLEGAL_ARGUMENT_ERROR;
return 0;
}
diff --git a/Build/source/libs/icu/icu-src/source/i18n/reldtfmt.cpp b/Build/source/libs/icu/icu-src/source/i18n/reldtfmt.cpp
index 839198b3859..5e7ddddf74a 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/reldtfmt.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/reldtfmt.cpp
@@ -430,7 +430,7 @@ RelativeDateFormat::setContext(UDisplayContext value, UErrorCode& status)
if ( fCapitalizationBrkIter == NULL && (value==UDISPCTX_CAPITALIZATION_FOR_BEGINNING_OF_SENTENCE ||
(value==UDISPCTX_CAPITALIZATION_FOR_UI_LIST_OR_MENU && fCapitalizationOfRelativeUnitsForUIListMenu) ||
(value==UDISPCTX_CAPITALIZATION_FOR_STANDALONE && fCapitalizationOfRelativeUnitsForStandAlone)) ) {
- UErrorCode status = U_ZERO_ERROR;
+ status = U_ZERO_ERROR;
fCapitalizationBrkIter = BreakIterator::createSentenceInstance(fLocale, status);
if (U_FAILURE(status)) {
delete fCapitalizationBrkIter;
@@ -456,8 +456,8 @@ RelativeDateFormat::initCapitalizationContextInfo(const Locale& thelocale)
const int32_t * intVector = ures_getIntVector(rb.getAlias(),
&len, &status);
if (U_SUCCESS(status) && intVector != NULL && len >= 2) {
- fCapitalizationOfRelativeUnitsForUIListMenu = intVector[0];
- fCapitalizationOfRelativeUnitsForStandAlone = intVector[1];
+ fCapitalizationOfRelativeUnitsForUIListMenu = static_cast<UBool>(intVector[0]);
+ fCapitalizationOfRelativeUnitsForStandAlone = static_cast<UBool>(intVector[1]);
}
}
#endif
diff --git a/Build/source/libs/icu/icu-src/source/i18n/reldtfmt.h b/Build/source/libs/icu/icu-src/source/i18n/reldtfmt.h
index c3b3044e442..aa5f92346d0 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/reldtfmt.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/reldtfmt.h
@@ -235,7 +235,6 @@ public:
*/
virtual const DateFormatSymbols* getDateFormatSymbols(void) const;
- /* Cannot use #ifndef U_HIDE_DRAFT_API for the following draft method since it is virtual */
/**
* Set a particular UDisplayContext value in the formatter, such as
* UDISPCTX_CAPITALIZATION_FOR_STANDALONE. Note: For getContext, see
diff --git a/Build/source/libs/icu/icu-src/source/i18n/rematch.cpp b/Build/source/libs/icu/icu-src/source/i18n/rematch.cpp
index efa3909e5e9..cfdc1fe4d99 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/rematch.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/rematch.cpp
@@ -801,7 +801,7 @@ UBool RegexMatcher::find(UErrorCode &status) {
case START_LINE:
{
- UChar32 c;
+ UChar32 ch;
if (startPos == fAnchorStart) {
MatchAt(startPos, FALSE, status);
if (U_FAILURE(status)) {
@@ -811,17 +811,17 @@ UBool RegexMatcher::find(UErrorCode &status) {
return TRUE;
}
UTEXT_SETNATIVEINDEX(fInputText, startPos);
- c = UTEXT_NEXT32(fInputText);
+ ch = UTEXT_NEXT32(fInputText);
startPos = UTEXT_GETNATIVEINDEX(fInputText);
} else {
UTEXT_SETNATIVEINDEX(fInputText, startPos);
- c = UTEXT_PREVIOUS32(fInputText);
+ ch = UTEXT_PREVIOUS32(fInputText);
UTEXT_SETNATIVEINDEX(fInputText, startPos);
}
if (fPattern->fFlags & UREGEX_UNIX_LINES) {
for (;;) {
- if (c == 0x0a) {
+ if (ch == 0x0a) {
MatchAt(startPos, FALSE, status);
if (U_FAILURE(status)) {
return FALSE;
@@ -836,7 +836,7 @@ UBool RegexMatcher::find(UErrorCode &status) {
fHitEnd = TRUE;
return FALSE;
}
- c = UTEXT_NEXT32(fInputText);
+ ch = UTEXT_NEXT32(fInputText);
startPos = UTEXT_GETNATIVEINDEX(fInputText);
// Note that it's perfectly OK for a pattern to have a zero-length
// match at the end of a string, so we must make sure that the loop
@@ -846,8 +846,8 @@ UBool RegexMatcher::find(UErrorCode &status) {
}
} else {
for (;;) {
- if (isLineTerminator(c)) {
- if (c == 0x0d && startPos < fActiveLimit && UTEXT_CURRENT32(fInputText) == 0x0a) {
+ if (isLineTerminator(ch)) {
+ if (ch == 0x0d && startPos < fActiveLimit && UTEXT_CURRENT32(fInputText) == 0x0a) {
(void)UTEXT_NEXT32(fInputText);
startPos = UTEXT_GETNATIVEINDEX(fInputText);
}
@@ -865,7 +865,7 @@ UBool RegexMatcher::find(UErrorCode &status) {
fHitEnd = TRUE;
return FALSE;
}
- c = UTEXT_NEXT32(fInputText);
+ ch = UTEXT_NEXT32(fInputText);
startPos = UTEXT_GETNATIVEINDEX(fInputText);
// Note that it's perfectly OK for a pattern to have a zero-length
// match at the end of a string, so we must make sure that the loop
@@ -1034,7 +1034,7 @@ UBool RegexMatcher::findUsingChunk(UErrorCode &status) {
return FALSE;
}
}
- U_ASSERT(FALSE);
+ U_ASSERT(FALSE);
case START_STRING:
case START_CHAR:
@@ -1067,7 +1067,7 @@ UBool RegexMatcher::findUsingChunk(UErrorCode &status) {
case START_LINE:
{
- UChar32 c;
+ UChar32 ch;
if (startPos == fAnchorStart) {
MatchChunkAt(startPos, FALSE, status);
if (U_FAILURE(status)) {
@@ -1081,8 +1081,8 @@ UBool RegexMatcher::findUsingChunk(UErrorCode &status) {
if (fPattern->fFlags & UREGEX_UNIX_LINES) {
for (;;) {
- c = inputBuf[startPos-1];
- if (c == 0x0a) {
+ ch = inputBuf[startPos-1];
+ if (ch == 0x0a) {
MatchChunkAt(startPos, FALSE, status);
if (U_FAILURE(status)) {
return FALSE;
@@ -1105,9 +1105,9 @@ UBool RegexMatcher::findUsingChunk(UErrorCode &status) {
}
} else {
for (;;) {
- c = inputBuf[startPos-1];
- if (isLineTerminator(c)) {
- if (c == 0x0d && startPos < fActiveLimit && inputBuf[startPos] == 0x0a) {
+ ch = inputBuf[startPos-1];
+ if (isLineTerminator(ch)) {
+ if (ch == 0x0d && startPos < fActiveLimit && inputBuf[startPos] == 0x0a) {
startPos++;
}
MatchChunkAt(startPos, FALSE, status);
@@ -2774,7 +2774,7 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) {
int64_t *pat = fPattern->fCompiledPat->getBuffer();
const UChar *litText = fPattern->fLiteralText.getBuffer();
- UVector *sets = fPattern->fSets;
+ UVector *fSets = fPattern->fSets;
fFrameSize = fPattern->fFrameSize;
REStackFrame *fp = resetStack();
@@ -3376,7 +3376,7 @@ GC_Done:
// There is input left. Pick up one char and test it for set membership.
UChar32 c = UTEXT_NEXT32(fInputText);
- U_ASSERT(opValue > 0 && opValue < sets->size());
+ U_ASSERT(opValue > 0 && opValue < fSets->size());
if (c<256) {
Regex8BitSet *s8 = &fPattern->fSets8[opValue];
if (s8->contains(c)) {
@@ -3384,7 +3384,7 @@ GC_Done:
break;
}
} else {
- UnicodeSet *s = (UnicodeSet *)sets->elementAt(opValue);
+ UnicodeSet *s = (UnicodeSet *)fSets->elementAt(opValue);
if (s->contains(c)) {
// The character is in the set. A Match.
fp->fInputIdx = UTEXT_GETNATIVEINDEX(fInputText);
@@ -3671,9 +3671,9 @@ GC_Done:
if (newFP == (int64_t *)fp) {
break;
}
- int32_t i;
- for (i=0; i<fFrameSize; i++) {
- newFP[i] = ((int64_t *)fp)[i];
+ int32_t j;
+ for (j=0; j<fFrameSize; j++) {
+ newFP[j] = ((int64_t *)fp)[j];
}
fp = (REStackFrame *)newFP;
fStack->setSize(newStackSize);
@@ -3830,9 +3830,9 @@ GC_Done:
// This makes the capture groups from within the look-ahead
// expression available.
int64_t *newFP = fStack->getBuffer() + newStackSize - fFrameSize;
- int32_t i;
- for (i=0; i<fFrameSize; i++) {
- newFP[i] = ((int64_t *)fp)[i];
+ int32_t j;
+ for (j=0; j<fFrameSize; j++) {
+ newFP[j] = ((int64_t *)fp)[j];
}
fp = (REStackFrame *)newFP;
fStack->setSize(newStackSize);
@@ -4123,9 +4123,9 @@ GC_Done:
// This op scans through all matching input.
// The following LOOP_C op emulates stack unwinding if the following pattern fails.
{
- U_ASSERT(opValue > 0 && opValue < sets->size());
+ U_ASSERT(opValue > 0 && opValue < fSets->size());
Regex8BitSet *s8 = &fPattern->fSets8[opValue];
- UnicodeSet *s = (UnicodeSet *)sets->elementAt(opValue);
+ UnicodeSet *s = (UnicodeSet *)fSets->elementAt(opValue);
// Loop through input, until either the input is exhausted or
// we reach a character that is not a member of the set.
@@ -4350,7 +4350,7 @@ void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &statu
int64_t *pat = fPattern->fCompiledPat->getBuffer();
const UChar *litText = fPattern->fLiteralText.getBuffer();
- UVector *sets = fPattern->fSets;
+ UVector *fSets = fPattern->fSets;
const UChar *inputBuf = fInputText->chunkContents;
@@ -4928,7 +4928,7 @@ GC_Done:
break;
}
- U_ASSERT(opValue > 0 && opValue < sets->size());
+ U_ASSERT(opValue > 0 && opValue < fSets->size());
// There is input left. Pick up one char and test it for set membership.
UChar32 c;
@@ -4940,7 +4940,7 @@ GC_Done:
break;
}
} else {
- UnicodeSet *s = (UnicodeSet *)sets->elementAt(opValue);
+ UnicodeSet *s = (UnicodeSet *)fSets->elementAt(opValue);
if (s->contains(c)) {
// The character is in the set. A Match.
break;
@@ -5214,9 +5214,9 @@ GC_Done:
if (newFP == (int64_t *)fp) {
break;
}
- int32_t i;
- for (i=0; i<fFrameSize; i++) {
- newFP[i] = ((int64_t *)fp)[i];
+ int32_t j;
+ for (j=0; j<fFrameSize; j++) {
+ newFP[j] = ((int64_t *)fp)[j];
}
fp = (REStackFrame *)newFP;
fStack->setSize(newStackSize);
@@ -5361,9 +5361,9 @@ GC_Done:
// This makes the capture groups from within the look-ahead
// expression available.
int64_t *newFP = fStack->getBuffer() + newStackSize - fFrameSize;
- int32_t i;
- for (i=0; i<fFrameSize; i++) {
- newFP[i] = ((int64_t *)fp)[i];
+ int32_t j;
+ for (j=0; j<fFrameSize; j++) {
+ newFP[j] = ((int64_t *)fp)[j];
}
fp = (REStackFrame *)newFP;
fStack->setSize(newStackSize);
@@ -5623,9 +5623,9 @@ GC_Done:
// This op scans through all matching input.
// The following LOOP_C op emulates stack unwinding if the following pattern fails.
{
- U_ASSERT(opValue > 0 && opValue < sets->size());
+ U_ASSERT(opValue > 0 && opValue < fSets->size());
Regex8BitSet *s8 = &fPattern->fSets8[opValue];
- UnicodeSet *s = (UnicodeSet *)sets->elementAt(opValue);
+ UnicodeSet *s = (UnicodeSet *)fSets->elementAt(opValue);
// Loop through input, until either the input is exhausted or
// we reach a character that is not a member of the set.
diff --git a/Build/source/libs/icu/icu-src/source/i18n/rulebasedcollator.cpp b/Build/source/libs/icu/icu-src/source/i18n/rulebasedcollator.cpp
index ab65f10a3bd..b057b6bbd5a 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/rulebasedcollator.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/rulebasedcollator.cpp
@@ -764,9 +764,9 @@ RuleBasedCollator::internalCompareUTF8(const char *left, int32_t leftLength,
// Make sure both or neither strings have a known length.
// We do not optimize for mixed length/termination.
if(leftLength >= 0) {
- if(rightLength < 0) { rightLength = uprv_strlen(right); }
+ if(rightLength < 0) { rightLength = static_cast<int32_t>(uprv_strlen(right)); }
} else {
- if(rightLength >= 0) { leftLength = uprv_strlen(left); }
+ if(rightLength >= 0) { leftLength = static_cast<int32_t>(uprv_strlen(left)); }
}
return doCompare(reinterpret_cast<const uint8_t *>(left), leftLength,
reinterpret_cast<const uint8_t *>(right), rightLength, errorCode);
@@ -862,9 +862,9 @@ public:
} else {
str.setTo(text, (int32_t)(spanLimit - text));
{
- ReorderingBuffer buffer(nfcImpl, str);
- if(buffer.init(str.length(), errorCode)) {
- nfcImpl.makeFCD(spanLimit, textLimit, &buffer, errorCode);
+ ReorderingBuffer r_buffer(nfcImpl, str);
+ if(r_buffer.init(str.length(), errorCode)) {
+ nfcImpl.makeFCD(spanLimit, textLimit, &r_buffer, errorCode);
}
}
if(U_SUCCESS(errorCode)) {
diff --git a/Build/source/libs/icu/icu-src/source/i18n/scientificnumberformatter.cpp b/Build/source/libs/icu/icu-src/source/i18n/scientificnumberformatter.cpp
index adf032d989d..03d98dd6e10 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/scientificnumberformatter.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/scientificnumberformatter.cpp
@@ -15,8 +15,8 @@
#include "unicode/fpositer.h"
#include "unicode/utf16.h"
#include "unicode/uniset.h"
-#include "decfmtst.h"
#include "unicode/decimfmt.h"
+#include "static_unicode_sets.h"
U_NAMESPACE_BEGIN
@@ -129,7 +129,6 @@ UnicodeString &ScientificNumberFormatter::SuperscriptStyle::format(
const UnicodeString &original,
FieldPositionIterator &fpi,
const UnicodeString &preExponent,
- const DecimalFormatStaticSets &staticSets,
UnicodeString &appendTo,
UErrorCode &status) const {
if (U_FAILURE(status)) {
@@ -149,16 +148,17 @@ UnicodeString &ScientificNumberFormatter::SuperscriptStyle::format(
break;
case UNUM_EXPONENT_SIGN_FIELD:
{
+ using namespace icu::numparse::impl;
int32_t beginIndex = fp.getBeginIndex();
int32_t endIndex = fp.getEndIndex();
UChar32 aChar = original.char32At(beginIndex);
- if (staticSets.fMinusSigns->contains(aChar)) {
+ if (unisets::get(unisets::MINUS_SIGN)->contains(aChar)) {
appendTo.append(
original,
copyFromOffset,
beginIndex - copyFromOffset);
appendTo.append(kSuperscriptMinusSign);
- } else if (staticSets.fPlusSigns->contains(aChar)) {
+ } else if (unisets::get(unisets::PLUS_SIGN)->contains(aChar)) {
appendTo.append(
original,
copyFromOffset,
@@ -203,7 +203,6 @@ UnicodeString &ScientificNumberFormatter::MarkupStyle::format(
const UnicodeString &original,
FieldPositionIterator &fpi,
const UnicodeString &preExponent,
- const DecimalFormatStaticSets & /*unusedDecimalFormatSets*/,
UnicodeString &appendTo,
UErrorCode &status) const {
if (U_FAILURE(status)) {
@@ -243,8 +242,7 @@ ScientificNumberFormatter::ScientificNumberFormatter(
DecimalFormat *fmtToAdopt, Style *styleToAdopt, UErrorCode &status)
: fPreExponent(),
fDecimalFormat(fmtToAdopt),
- fStyle(styleToAdopt),
- fStaticSets(NULL) {
+ fStyle(styleToAdopt) {
if (U_FAILURE(status)) {
return;
}
@@ -258,7 +256,6 @@ ScientificNumberFormatter::ScientificNumberFormatter(
return;
}
getPreExponent(*sym, fPreExponent);
- fStaticSets = DecimalFormatStaticSets::getStaticSets(status);
}
ScientificNumberFormatter::ScientificNumberFormatter(
@@ -266,8 +263,7 @@ ScientificNumberFormatter::ScientificNumberFormatter(
: UObject(other),
fPreExponent(other.fPreExponent),
fDecimalFormat(NULL),
- fStyle(NULL),
- fStaticSets(other.fStaticSets) {
+ fStyle(NULL) {
fDecimalFormat = static_cast<DecimalFormat *>(
other.fDecimalFormat->clone());
fStyle = other.fStyle->clone();
@@ -292,7 +288,6 @@ UnicodeString &ScientificNumberFormatter::format(
original,
fpi,
fPreExponent,
- *fStaticSets,
appendTo,
status);
}
diff --git a/Build/source/libs/icu/icu-src/source/i18n/scriptset.cpp b/Build/source/libs/icu/icu-src/source/i18n/scriptset.cpp
index 073e839f890..54ead803c2a 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/scriptset.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/scriptset.cpp
@@ -298,7 +298,7 @@ uhash_compareScriptSet(UElement key0, UElement key1) {
icu::ScriptSet *s0 = static_cast<icu::ScriptSet *>(key0.pointer);
icu::ScriptSet *s1 = static_cast<icu::ScriptSet *>(key1.pointer);
int32_t diff = s0->countMembers() - s1->countMembers();
- if (diff != 0) return diff;
+ if (diff != 0) return static_cast<UBool>(diff);
int32_t i0 = s0->nextSetBit(0);
int32_t i1 = s1->nextSetBit(0);
while ((diff = i0-i1) == 0 && i0 > 0) {
diff --git a/Build/source/libs/icu/icu-src/source/i18n/shareddateformatsymbols.h b/Build/source/libs/icu/icu-src/source/i18n/shareddateformatsymbols.h
index ca9a2108190..66a06ecae54 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/shareddateformatsymbols.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/shareddateformatsymbols.h
@@ -12,6 +12,9 @@
#define __SHARED_DATEFORMATSYMBOLS_H__
#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
#include "sharedobject.h"
#include "unicode/dtfmtsym.h"
@@ -33,4 +36,6 @@ private:
U_NAMESPACE_END
+#endif /* !UCONFIG_NO_FORMATTING */
+
#endif
diff --git a/Build/source/libs/icu/icu-src/source/i18n/significantdigitinterval.h b/Build/source/libs/icu/icu-src/source/i18n/significantdigitinterval.h
deleted file mode 100644
index fc23370de5b..00000000000
--- a/Build/source/libs/icu/icu-src/source/i18n/significantdigitinterval.h
+++ /dev/null
@@ -1,92 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
-*******************************************************************************
-* Copyright (C) 2015, International Business Machines
-* Corporation and others. All Rights Reserved.
-*******************************************************************************
-* significantdigitinterval.h
-*
-* created on: 2015jan6
-* created by: Travis Keep
-*/
-
-#ifndef __SIGNIFICANTDIGITINTERVAL_H__
-#define __SIGNIFICANTDIGITINTERVAL_H__
-
-#include "unicode/uobject.h"
-#include "unicode/utypes.h"
-
-U_NAMESPACE_BEGIN
-
-/**
- * An interval of allowed significant digit counts.
- */
-class U_I18N_API SignificantDigitInterval : public UMemory {
-public:
-
- /**
- * No limits on significant digits.
- */
- SignificantDigitInterval()
- : fMax(INT32_MAX), fMin(0) { }
-
- /**
- * Make this instance have no limit on significant digits.
- */
- void clear() {
- fMin = 0;
- fMax = INT32_MAX;
- }
-
- /**
- * Returns TRUE if this object is equal to rhs.
- */
- UBool equals(const SignificantDigitInterval &rhs) const {
- return ((fMax == rhs.fMax) && (fMin == rhs.fMin));
- }
-
- /**
- * Sets maximum significant digits. 0 or negative means no maximum.
- */
- void setMax(int32_t count) {
- fMax = count <= 0 ? INT32_MAX : count;
- }
-
- /**
- * Get maximum significant digits. INT32_MAX means no maximum.
- */
- int32_t getMax() const {
- return fMax;
- }
-
- /**
- * Sets minimum significant digits. 0 or negative means no minimum.
- */
- void setMin(int32_t count) {
- fMin = count <= 0 ? 0 : count;
- }
-
- /**
- * Get maximum significant digits. 0 means no minimum.
- */
- int32_t getMin() const {
- return fMin;
- }
-
- /**
- * Returns TRUE if this instance represents no constraints on significant
- * digits.
- */
- UBool isNoConstraints() const {
- return fMin == 0 && fMax == INT32_MAX;
- }
-
-private:
- int32_t fMax;
- int32_t fMin;
-};
-
-U_NAMESPACE_END
-
-#endif // __SIGNIFICANTDIGITINTERVAL_H__
diff --git a/Build/source/libs/icu/icu-src/source/i18n/smallintformatter.cpp b/Build/source/libs/icu/icu-src/source/i18n/smallintformatter.cpp
deleted file mode 100644
index 72ffffc7547..00000000000
--- a/Build/source/libs/icu/icu-src/source/i18n/smallintformatter.cpp
+++ /dev/null
@@ -1,2623 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
- * Copyright (C) 2015, International Business Machines
- * Corporation and others. All Rights Reserved.
- *
- * file name: smallintformatter.cpp
- */
-
-#include "unicode/unistr.h"
-
-#include "smallintformatter.h"
-
-static const int32_t gMaxFastInt = 4096;
-
-static const UChar gDigits[] = {
- 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,
- 0x30,0x30,0x30,0x32,0x30,0x30,0x30,0x33,
- 0x30,0x30,0x30,0x34,0x30,0x30,0x30,0x35,
- 0x30,0x30,0x30,0x36,0x30,0x30,0x30,0x37,
- 0x30,0x30,0x30,0x38,0x30,0x30,0x30,0x39,
- 0x30,0x30,0x31,0x30,0x30,0x30,0x31,0x31,
- 0x30,0x30,0x31,0x32,0x30,0x30,0x31,0x33,
- 0x30,0x30,0x31,0x34,0x30,0x30,0x31,0x35,
- 0x30,0x30,0x31,0x36,0x30,0x30,0x31,0x37,
- 0x30,0x30,0x31,0x38,0x30,0x30,0x31,0x39,
- 0x30,0x30,0x32,0x30,0x30,0x30,0x32,0x31,
- 0x30,0x30,0x32,0x32,0x30,0x30,0x32,0x33,
- 0x30,0x30,0x32,0x34,0x30,0x30,0x32,0x35,
- 0x30,0x30,0x32,0x36,0x30,0x30,0x32,0x37,
- 0x30,0x30,0x32,0x38,0x30,0x30,0x32,0x39,
- 0x30,0x30,0x33,0x30,0x30,0x30,0x33,0x31,
- 0x30,0x30,0x33,0x32,0x30,0x30,0x33,0x33,
- 0x30,0x30,0x33,0x34,0x30,0x30,0x33,0x35,
- 0x30,0x30,0x33,0x36,0x30,0x30,0x33,0x37,
- 0x30,0x30,0x33,0x38,0x30,0x30,0x33,0x39,
- 0x30,0x30,0x34,0x30,0x30,0x30,0x34,0x31,
- 0x30,0x30,0x34,0x32,0x30,0x30,0x34,0x33,
- 0x30,0x30,0x34,0x34,0x30,0x30,0x34,0x35,
- 0x30,0x30,0x34,0x36,0x30,0x30,0x34,0x37,
- 0x30,0x30,0x34,0x38,0x30,0x30,0x34,0x39,
- 0x30,0x30,0x35,0x30,0x30,0x30,0x35,0x31,
- 0x30,0x30,0x35,0x32,0x30,0x30,0x35,0x33,
- 0x30,0x30,0x35,0x34,0x30,0x30,0x35,0x35,
- 0x30,0x30,0x35,0x36,0x30,0x30,0x35,0x37,
- 0x30,0x30,0x35,0x38,0x30,0x30,0x35,0x39,
- 0x30,0x30,0x36,0x30,0x30,0x30,0x36,0x31,
- 0x30,0x30,0x36,0x32,0x30,0x30,0x36,0x33,
- 0x30,0x30,0x36,0x34,0x30,0x30,0x36,0x35,
- 0x30,0x30,0x36,0x36,0x30,0x30,0x36,0x37,
- 0x30,0x30,0x36,0x38,0x30,0x30,0x36,0x39,
- 0x30,0x30,0x37,0x30,0x30,0x30,0x37,0x31,
- 0x30,0x30,0x37,0x32,0x30,0x30,0x37,0x33,
- 0x30,0x30,0x37,0x34,0x30,0x30,0x37,0x35,
- 0x30,0x30,0x37,0x36,0x30,0x30,0x37,0x37,
- 0x30,0x30,0x37,0x38,0x30,0x30,0x37,0x39,
- 0x30,0x30,0x38,0x30,0x30,0x30,0x38,0x31,
- 0x30,0x30,0x38,0x32,0x30,0x30,0x38,0x33,
- 0x30,0x30,0x38,0x34,0x30,0x30,0x38,0x35,
- 0x30,0x30,0x38,0x36,0x30,0x30,0x38,0x37,
- 0x30,0x30,0x38,0x38,0x30,0x30,0x38,0x39,
- 0x30,0x30,0x39,0x30,0x30,0x30,0x39,0x31,
- 0x30,0x30,0x39,0x32,0x30,0x30,0x39,0x33,
- 0x30,0x30,0x39,0x34,0x30,0x30,0x39,0x35,
- 0x30,0x30,0x39,0x36,0x30,0x30,0x39,0x37,
- 0x30,0x30,0x39,0x38,0x30,0x30,0x39,0x39,
- 0x30,0x31,0x30,0x30,0x30,0x31,0x30,0x31,
- 0x30,0x31,0x30,0x32,0x30,0x31,0x30,0x33,
- 0x30,0x31,0x30,0x34,0x30,0x31,0x30,0x35,
- 0x30,0x31,0x30,0x36,0x30,0x31,0x30,0x37,
- 0x30,0x31,0x30,0x38,0x30,0x31,0x30,0x39,
- 0x30,0x31,0x31,0x30,0x30,0x31,0x31,0x31,
- 0x30,0x31,0x31,0x32,0x30,0x31,0x31,0x33,
- 0x30,0x31,0x31,0x34,0x30,0x31,0x31,0x35,
- 0x30,0x31,0x31,0x36,0x30,0x31,0x31,0x37,
- 0x30,0x31,0x31,0x38,0x30,0x31,0x31,0x39,
- 0x30,0x31,0x32,0x30,0x30,0x31,0x32,0x31,
- 0x30,0x31,0x32,0x32,0x30,0x31,0x32,0x33,
- 0x30,0x31,0x32,0x34,0x30,0x31,0x32,0x35,
- 0x30,0x31,0x32,0x36,0x30,0x31,0x32,0x37,
- 0x30,0x31,0x32,0x38,0x30,0x31,0x32,0x39,
- 0x30,0x31,0x33,0x30,0x30,0x31,0x33,0x31,
- 0x30,0x31,0x33,0x32,0x30,0x31,0x33,0x33,
- 0x30,0x31,0x33,0x34,0x30,0x31,0x33,0x35,
- 0x30,0x31,0x33,0x36,0x30,0x31,0x33,0x37,
- 0x30,0x31,0x33,0x38,0x30,0x31,0x33,0x39,
- 0x30,0x31,0x34,0x30,0x30,0x31,0x34,0x31,
- 0x30,0x31,0x34,0x32,0x30,0x31,0x34,0x33,
- 0x30,0x31,0x34,0x34,0x30,0x31,0x34,0x35,
- 0x30,0x31,0x34,0x36,0x30,0x31,0x34,0x37,
- 0x30,0x31,0x34,0x38,0x30,0x31,0x34,0x39,
- 0x30,0x31,0x35,0x30,0x30,0x31,0x35,0x31,
- 0x30,0x31,0x35,0x32,0x30,0x31,0x35,0x33,
- 0x30,0x31,0x35,0x34,0x30,0x31,0x35,0x35,
- 0x30,0x31,0x35,0x36,0x30,0x31,0x35,0x37,
- 0x30,0x31,0x35,0x38,0x30,0x31,0x35,0x39,
- 0x30,0x31,0x36,0x30,0x30,0x31,0x36,0x31,
- 0x30,0x31,0x36,0x32,0x30,0x31,0x36,0x33,
- 0x30,0x31,0x36,0x34,0x30,0x31,0x36,0x35,
- 0x30,0x31,0x36,0x36,0x30,0x31,0x36,0x37,
- 0x30,0x31,0x36,0x38,0x30,0x31,0x36,0x39,
- 0x30,0x31,0x37,0x30,0x30,0x31,0x37,0x31,
- 0x30,0x31,0x37,0x32,0x30,0x31,0x37,0x33,
- 0x30,0x31,0x37,0x34,0x30,0x31,0x37,0x35,
- 0x30,0x31,0x37,0x36,0x30,0x31,0x37,0x37,
- 0x30,0x31,0x37,0x38,0x30,0x31,0x37,0x39,
- 0x30,0x31,0x38,0x30,0x30,0x31,0x38,0x31,
- 0x30,0x31,0x38,0x32,0x30,0x31,0x38,0x33,
- 0x30,0x31,0x38,0x34,0x30,0x31,0x38,0x35,
- 0x30,0x31,0x38,0x36,0x30,0x31,0x38,0x37,
- 0x30,0x31,0x38,0x38,0x30,0x31,0x38,0x39,
- 0x30,0x31,0x39,0x30,0x30,0x31,0x39,0x31,
- 0x30,0x31,0x39,0x32,0x30,0x31,0x39,0x33,
- 0x30,0x31,0x39,0x34,0x30,0x31,0x39,0x35,
- 0x30,0x31,0x39,0x36,0x30,0x31,0x39,0x37,
- 0x30,0x31,0x39,0x38,0x30,0x31,0x39,0x39,
- 0x30,0x32,0x30,0x30,0x30,0x32,0x30,0x31,
- 0x30,0x32,0x30,0x32,0x30,0x32,0x30,0x33,
- 0x30,0x32,0x30,0x34,0x30,0x32,0x30,0x35,
- 0x30,0x32,0x30,0x36,0x30,0x32,0x30,0x37,
- 0x30,0x32,0x30,0x38,0x30,0x32,0x30,0x39,
- 0x30,0x32,0x31,0x30,0x30,0x32,0x31,0x31,
- 0x30,0x32,0x31,0x32,0x30,0x32,0x31,0x33,
- 0x30,0x32,0x31,0x34,0x30,0x32,0x31,0x35,
- 0x30,0x32,0x31,0x36,0x30,0x32,0x31,0x37,
- 0x30,0x32,0x31,0x38,0x30,0x32,0x31,0x39,
- 0x30,0x32,0x32,0x30,0x30,0x32,0x32,0x31,
- 0x30,0x32,0x32,0x32,0x30,0x32,0x32,0x33,
- 0x30,0x32,0x32,0x34,0x30,0x32,0x32,0x35,
- 0x30,0x32,0x32,0x36,0x30,0x32,0x32,0x37,
- 0x30,0x32,0x32,0x38,0x30,0x32,0x32,0x39,
- 0x30,0x32,0x33,0x30,0x30,0x32,0x33,0x31,
- 0x30,0x32,0x33,0x32,0x30,0x32,0x33,0x33,
- 0x30,0x32,0x33,0x34,0x30,0x32,0x33,0x35,
- 0x30,0x32,0x33,0x36,0x30,0x32,0x33,0x37,
- 0x30,0x32,0x33,0x38,0x30,0x32,0x33,0x39,
- 0x30,0x32,0x34,0x30,0x30,0x32,0x34,0x31,
- 0x30,0x32,0x34,0x32,0x30,0x32,0x34,0x33,
- 0x30,0x32,0x34,0x34,0x30,0x32,0x34,0x35,
- 0x30,0x32,0x34,0x36,0x30,0x32,0x34,0x37,
- 0x30,0x32,0x34,0x38,0x30,0x32,0x34,0x39,
- 0x30,0x32,0x35,0x30,0x30,0x32,0x35,0x31,
- 0x30,0x32,0x35,0x32,0x30,0x32,0x35,0x33,
- 0x30,0x32,0x35,0x34,0x30,0x32,0x35,0x35,
- 0x30,0x32,0x35,0x36,0x30,0x32,0x35,0x37,
- 0x30,0x32,0x35,0x38,0x30,0x32,0x35,0x39,
- 0x30,0x32,0x36,0x30,0x30,0x32,0x36,0x31,
- 0x30,0x32,0x36,0x32,0x30,0x32,0x36,0x33,
- 0x30,0x32,0x36,0x34,0x30,0x32,0x36,0x35,
- 0x30,0x32,0x36,0x36,0x30,0x32,0x36,0x37,
- 0x30,0x32,0x36,0x38,0x30,0x32,0x36,0x39,
- 0x30,0x32,0x37,0x30,0x30,0x32,0x37,0x31,
- 0x30,0x32,0x37,0x32,0x30,0x32,0x37,0x33,
- 0x30,0x32,0x37,0x34,0x30,0x32,0x37,0x35,
- 0x30,0x32,0x37,0x36,0x30,0x32,0x37,0x37,
- 0x30,0x32,0x37,0x38,0x30,0x32,0x37,0x39,
- 0x30,0x32,0x38,0x30,0x30,0x32,0x38,0x31,
- 0x30,0x32,0x38,0x32,0x30,0x32,0x38,0x33,
- 0x30,0x32,0x38,0x34,0x30,0x32,0x38,0x35,
- 0x30,0x32,0x38,0x36,0x30,0x32,0x38,0x37,
- 0x30,0x32,0x38,0x38,0x30,0x32,0x38,0x39,
- 0x30,0x32,0x39,0x30,0x30,0x32,0x39,0x31,
- 0x30,0x32,0x39,0x32,0x30,0x32,0x39,0x33,
- 0x30,0x32,0x39,0x34,0x30,0x32,0x39,0x35,
- 0x30,0x32,0x39,0x36,0x30,0x32,0x39,0x37,
- 0x30,0x32,0x39,0x38,0x30,0x32,0x39,0x39,
- 0x30,0x33,0x30,0x30,0x30,0x33,0x30,0x31,
- 0x30,0x33,0x30,0x32,0x30,0x33,0x30,0x33,
- 0x30,0x33,0x30,0x34,0x30,0x33,0x30,0x35,
- 0x30,0x33,0x30,0x36,0x30,0x33,0x30,0x37,
- 0x30,0x33,0x30,0x38,0x30,0x33,0x30,0x39,
- 0x30,0x33,0x31,0x30,0x30,0x33,0x31,0x31,
- 0x30,0x33,0x31,0x32,0x30,0x33,0x31,0x33,
- 0x30,0x33,0x31,0x34,0x30,0x33,0x31,0x35,
- 0x30,0x33,0x31,0x36,0x30,0x33,0x31,0x37,
- 0x30,0x33,0x31,0x38,0x30,0x33,0x31,0x39,
- 0x30,0x33,0x32,0x30,0x30,0x33,0x32,0x31,
- 0x30,0x33,0x32,0x32,0x30,0x33,0x32,0x33,
- 0x30,0x33,0x32,0x34,0x30,0x33,0x32,0x35,
- 0x30,0x33,0x32,0x36,0x30,0x33,0x32,0x37,
- 0x30,0x33,0x32,0x38,0x30,0x33,0x32,0x39,
- 0x30,0x33,0x33,0x30,0x30,0x33,0x33,0x31,
- 0x30,0x33,0x33,0x32,0x30,0x33,0x33,0x33,
- 0x30,0x33,0x33,0x34,0x30,0x33,0x33,0x35,
- 0x30,0x33,0x33,0x36,0x30,0x33,0x33,0x37,
- 0x30,0x33,0x33,0x38,0x30,0x33,0x33,0x39,
- 0x30,0x33,0x34,0x30,0x30,0x33,0x34,0x31,
- 0x30,0x33,0x34,0x32,0x30,0x33,0x34,0x33,
- 0x30,0x33,0x34,0x34,0x30,0x33,0x34,0x35,
- 0x30,0x33,0x34,0x36,0x30,0x33,0x34,0x37,
- 0x30,0x33,0x34,0x38,0x30,0x33,0x34,0x39,
- 0x30,0x33,0x35,0x30,0x30,0x33,0x35,0x31,
- 0x30,0x33,0x35,0x32,0x30,0x33,0x35,0x33,
- 0x30,0x33,0x35,0x34,0x30,0x33,0x35,0x35,
- 0x30,0x33,0x35,0x36,0x30,0x33,0x35,0x37,
- 0x30,0x33,0x35,0x38,0x30,0x33,0x35,0x39,
- 0x30,0x33,0x36,0x30,0x30,0x33,0x36,0x31,
- 0x30,0x33,0x36,0x32,0x30,0x33,0x36,0x33,
- 0x30,0x33,0x36,0x34,0x30,0x33,0x36,0x35,
- 0x30,0x33,0x36,0x36,0x30,0x33,0x36,0x37,
- 0x30,0x33,0x36,0x38,0x30,0x33,0x36,0x39,
- 0x30,0x33,0x37,0x30,0x30,0x33,0x37,0x31,
- 0x30,0x33,0x37,0x32,0x30,0x33,0x37,0x33,
- 0x30,0x33,0x37,0x34,0x30,0x33,0x37,0x35,
- 0x30,0x33,0x37,0x36,0x30,0x33,0x37,0x37,
- 0x30,0x33,0x37,0x38,0x30,0x33,0x37,0x39,
- 0x30,0x33,0x38,0x30,0x30,0x33,0x38,0x31,
- 0x30,0x33,0x38,0x32,0x30,0x33,0x38,0x33,
- 0x30,0x33,0x38,0x34,0x30,0x33,0x38,0x35,
- 0x30,0x33,0x38,0x36,0x30,0x33,0x38,0x37,
- 0x30,0x33,0x38,0x38,0x30,0x33,0x38,0x39,
- 0x30,0x33,0x39,0x30,0x30,0x33,0x39,0x31,
- 0x30,0x33,0x39,0x32,0x30,0x33,0x39,0x33,
- 0x30,0x33,0x39,0x34,0x30,0x33,0x39,0x35,
- 0x30,0x33,0x39,0x36,0x30,0x33,0x39,0x37,
- 0x30,0x33,0x39,0x38,0x30,0x33,0x39,0x39,
- 0x30,0x34,0x30,0x30,0x30,0x34,0x30,0x31,
- 0x30,0x34,0x30,0x32,0x30,0x34,0x30,0x33,
- 0x30,0x34,0x30,0x34,0x30,0x34,0x30,0x35,
- 0x30,0x34,0x30,0x36,0x30,0x34,0x30,0x37,
- 0x30,0x34,0x30,0x38,0x30,0x34,0x30,0x39,
- 0x30,0x34,0x31,0x30,0x30,0x34,0x31,0x31,
- 0x30,0x34,0x31,0x32,0x30,0x34,0x31,0x33,
- 0x30,0x34,0x31,0x34,0x30,0x34,0x31,0x35,
- 0x30,0x34,0x31,0x36,0x30,0x34,0x31,0x37,
- 0x30,0x34,0x31,0x38,0x30,0x34,0x31,0x39,
- 0x30,0x34,0x32,0x30,0x30,0x34,0x32,0x31,
- 0x30,0x34,0x32,0x32,0x30,0x34,0x32,0x33,
- 0x30,0x34,0x32,0x34,0x30,0x34,0x32,0x35,
- 0x30,0x34,0x32,0x36,0x30,0x34,0x32,0x37,
- 0x30,0x34,0x32,0x38,0x30,0x34,0x32,0x39,
- 0x30,0x34,0x33,0x30,0x30,0x34,0x33,0x31,
- 0x30,0x34,0x33,0x32,0x30,0x34,0x33,0x33,
- 0x30,0x34,0x33,0x34,0x30,0x34,0x33,0x35,
- 0x30,0x34,0x33,0x36,0x30,0x34,0x33,0x37,
- 0x30,0x34,0x33,0x38,0x30,0x34,0x33,0x39,
- 0x30,0x34,0x34,0x30,0x30,0x34,0x34,0x31,
- 0x30,0x34,0x34,0x32,0x30,0x34,0x34,0x33,
- 0x30,0x34,0x34,0x34,0x30,0x34,0x34,0x35,
- 0x30,0x34,0x34,0x36,0x30,0x34,0x34,0x37,
- 0x30,0x34,0x34,0x38,0x30,0x34,0x34,0x39,
- 0x30,0x34,0x35,0x30,0x30,0x34,0x35,0x31,
- 0x30,0x34,0x35,0x32,0x30,0x34,0x35,0x33,
- 0x30,0x34,0x35,0x34,0x30,0x34,0x35,0x35,
- 0x30,0x34,0x35,0x36,0x30,0x34,0x35,0x37,
- 0x30,0x34,0x35,0x38,0x30,0x34,0x35,0x39,
- 0x30,0x34,0x36,0x30,0x30,0x34,0x36,0x31,
- 0x30,0x34,0x36,0x32,0x30,0x34,0x36,0x33,
- 0x30,0x34,0x36,0x34,0x30,0x34,0x36,0x35,
- 0x30,0x34,0x36,0x36,0x30,0x34,0x36,0x37,
- 0x30,0x34,0x36,0x38,0x30,0x34,0x36,0x39,
- 0x30,0x34,0x37,0x30,0x30,0x34,0x37,0x31,
- 0x30,0x34,0x37,0x32,0x30,0x34,0x37,0x33,
- 0x30,0x34,0x37,0x34,0x30,0x34,0x37,0x35,
- 0x30,0x34,0x37,0x36,0x30,0x34,0x37,0x37,
- 0x30,0x34,0x37,0x38,0x30,0x34,0x37,0x39,
- 0x30,0x34,0x38,0x30,0x30,0x34,0x38,0x31,
- 0x30,0x34,0x38,0x32,0x30,0x34,0x38,0x33,
- 0x30,0x34,0x38,0x34,0x30,0x34,0x38,0x35,
- 0x30,0x34,0x38,0x36,0x30,0x34,0x38,0x37,
- 0x30,0x34,0x38,0x38,0x30,0x34,0x38,0x39,
- 0x30,0x34,0x39,0x30,0x30,0x34,0x39,0x31,
- 0x30,0x34,0x39,0x32,0x30,0x34,0x39,0x33,
- 0x30,0x34,0x39,0x34,0x30,0x34,0x39,0x35,
- 0x30,0x34,0x39,0x36,0x30,0x34,0x39,0x37,
- 0x30,0x34,0x39,0x38,0x30,0x34,0x39,0x39,
- 0x30,0x35,0x30,0x30,0x30,0x35,0x30,0x31,
- 0x30,0x35,0x30,0x32,0x30,0x35,0x30,0x33,
- 0x30,0x35,0x30,0x34,0x30,0x35,0x30,0x35,
- 0x30,0x35,0x30,0x36,0x30,0x35,0x30,0x37,
- 0x30,0x35,0x30,0x38,0x30,0x35,0x30,0x39,
- 0x30,0x35,0x31,0x30,0x30,0x35,0x31,0x31,
- 0x30,0x35,0x31,0x32,0x30,0x35,0x31,0x33,
- 0x30,0x35,0x31,0x34,0x30,0x35,0x31,0x35,
- 0x30,0x35,0x31,0x36,0x30,0x35,0x31,0x37,
- 0x30,0x35,0x31,0x38,0x30,0x35,0x31,0x39,
- 0x30,0x35,0x32,0x30,0x30,0x35,0x32,0x31,
- 0x30,0x35,0x32,0x32,0x30,0x35,0x32,0x33,
- 0x30,0x35,0x32,0x34,0x30,0x35,0x32,0x35,
- 0x30,0x35,0x32,0x36,0x30,0x35,0x32,0x37,
- 0x30,0x35,0x32,0x38,0x30,0x35,0x32,0x39,
- 0x30,0x35,0x33,0x30,0x30,0x35,0x33,0x31,
- 0x30,0x35,0x33,0x32,0x30,0x35,0x33,0x33,
- 0x30,0x35,0x33,0x34,0x30,0x35,0x33,0x35,
- 0x30,0x35,0x33,0x36,0x30,0x35,0x33,0x37,
- 0x30,0x35,0x33,0x38,0x30,0x35,0x33,0x39,
- 0x30,0x35,0x34,0x30,0x30,0x35,0x34,0x31,
- 0x30,0x35,0x34,0x32,0x30,0x35,0x34,0x33,
- 0x30,0x35,0x34,0x34,0x30,0x35,0x34,0x35,
- 0x30,0x35,0x34,0x36,0x30,0x35,0x34,0x37,
- 0x30,0x35,0x34,0x38,0x30,0x35,0x34,0x39,
- 0x30,0x35,0x35,0x30,0x30,0x35,0x35,0x31,
- 0x30,0x35,0x35,0x32,0x30,0x35,0x35,0x33,
- 0x30,0x35,0x35,0x34,0x30,0x35,0x35,0x35,
- 0x30,0x35,0x35,0x36,0x30,0x35,0x35,0x37,
- 0x30,0x35,0x35,0x38,0x30,0x35,0x35,0x39,
- 0x30,0x35,0x36,0x30,0x30,0x35,0x36,0x31,
- 0x30,0x35,0x36,0x32,0x30,0x35,0x36,0x33,
- 0x30,0x35,0x36,0x34,0x30,0x35,0x36,0x35,
- 0x30,0x35,0x36,0x36,0x30,0x35,0x36,0x37,
- 0x30,0x35,0x36,0x38,0x30,0x35,0x36,0x39,
- 0x30,0x35,0x37,0x30,0x30,0x35,0x37,0x31,
- 0x30,0x35,0x37,0x32,0x30,0x35,0x37,0x33,
- 0x30,0x35,0x37,0x34,0x30,0x35,0x37,0x35,
- 0x30,0x35,0x37,0x36,0x30,0x35,0x37,0x37,
- 0x30,0x35,0x37,0x38,0x30,0x35,0x37,0x39,
- 0x30,0x35,0x38,0x30,0x30,0x35,0x38,0x31,
- 0x30,0x35,0x38,0x32,0x30,0x35,0x38,0x33,
- 0x30,0x35,0x38,0x34,0x30,0x35,0x38,0x35,
- 0x30,0x35,0x38,0x36,0x30,0x35,0x38,0x37,
- 0x30,0x35,0x38,0x38,0x30,0x35,0x38,0x39,
- 0x30,0x35,0x39,0x30,0x30,0x35,0x39,0x31,
- 0x30,0x35,0x39,0x32,0x30,0x35,0x39,0x33,
- 0x30,0x35,0x39,0x34,0x30,0x35,0x39,0x35,
- 0x30,0x35,0x39,0x36,0x30,0x35,0x39,0x37,
- 0x30,0x35,0x39,0x38,0x30,0x35,0x39,0x39,
- 0x30,0x36,0x30,0x30,0x30,0x36,0x30,0x31,
- 0x30,0x36,0x30,0x32,0x30,0x36,0x30,0x33,
- 0x30,0x36,0x30,0x34,0x30,0x36,0x30,0x35,
- 0x30,0x36,0x30,0x36,0x30,0x36,0x30,0x37,
- 0x30,0x36,0x30,0x38,0x30,0x36,0x30,0x39,
- 0x30,0x36,0x31,0x30,0x30,0x36,0x31,0x31,
- 0x30,0x36,0x31,0x32,0x30,0x36,0x31,0x33,
- 0x30,0x36,0x31,0x34,0x30,0x36,0x31,0x35,
- 0x30,0x36,0x31,0x36,0x30,0x36,0x31,0x37,
- 0x30,0x36,0x31,0x38,0x30,0x36,0x31,0x39,
- 0x30,0x36,0x32,0x30,0x30,0x36,0x32,0x31,
- 0x30,0x36,0x32,0x32,0x30,0x36,0x32,0x33,
- 0x30,0x36,0x32,0x34,0x30,0x36,0x32,0x35,
- 0x30,0x36,0x32,0x36,0x30,0x36,0x32,0x37,
- 0x30,0x36,0x32,0x38,0x30,0x36,0x32,0x39,
- 0x30,0x36,0x33,0x30,0x30,0x36,0x33,0x31,
- 0x30,0x36,0x33,0x32,0x30,0x36,0x33,0x33,
- 0x30,0x36,0x33,0x34,0x30,0x36,0x33,0x35,
- 0x30,0x36,0x33,0x36,0x30,0x36,0x33,0x37,
- 0x30,0x36,0x33,0x38,0x30,0x36,0x33,0x39,
- 0x30,0x36,0x34,0x30,0x30,0x36,0x34,0x31,
- 0x30,0x36,0x34,0x32,0x30,0x36,0x34,0x33,
- 0x30,0x36,0x34,0x34,0x30,0x36,0x34,0x35,
- 0x30,0x36,0x34,0x36,0x30,0x36,0x34,0x37,
- 0x30,0x36,0x34,0x38,0x30,0x36,0x34,0x39,
- 0x30,0x36,0x35,0x30,0x30,0x36,0x35,0x31,
- 0x30,0x36,0x35,0x32,0x30,0x36,0x35,0x33,
- 0x30,0x36,0x35,0x34,0x30,0x36,0x35,0x35,
- 0x30,0x36,0x35,0x36,0x30,0x36,0x35,0x37,
- 0x30,0x36,0x35,0x38,0x30,0x36,0x35,0x39,
- 0x30,0x36,0x36,0x30,0x30,0x36,0x36,0x31,
- 0x30,0x36,0x36,0x32,0x30,0x36,0x36,0x33,
- 0x30,0x36,0x36,0x34,0x30,0x36,0x36,0x35,
- 0x30,0x36,0x36,0x36,0x30,0x36,0x36,0x37,
- 0x30,0x36,0x36,0x38,0x30,0x36,0x36,0x39,
- 0x30,0x36,0x37,0x30,0x30,0x36,0x37,0x31,
- 0x30,0x36,0x37,0x32,0x30,0x36,0x37,0x33,
- 0x30,0x36,0x37,0x34,0x30,0x36,0x37,0x35,
- 0x30,0x36,0x37,0x36,0x30,0x36,0x37,0x37,
- 0x30,0x36,0x37,0x38,0x30,0x36,0x37,0x39,
- 0x30,0x36,0x38,0x30,0x30,0x36,0x38,0x31,
- 0x30,0x36,0x38,0x32,0x30,0x36,0x38,0x33,
- 0x30,0x36,0x38,0x34,0x30,0x36,0x38,0x35,
- 0x30,0x36,0x38,0x36,0x30,0x36,0x38,0x37,
- 0x30,0x36,0x38,0x38,0x30,0x36,0x38,0x39,
- 0x30,0x36,0x39,0x30,0x30,0x36,0x39,0x31,
- 0x30,0x36,0x39,0x32,0x30,0x36,0x39,0x33,
- 0x30,0x36,0x39,0x34,0x30,0x36,0x39,0x35,
- 0x30,0x36,0x39,0x36,0x30,0x36,0x39,0x37,
- 0x30,0x36,0x39,0x38,0x30,0x36,0x39,0x39,
- 0x30,0x37,0x30,0x30,0x30,0x37,0x30,0x31,
- 0x30,0x37,0x30,0x32,0x30,0x37,0x30,0x33,
- 0x30,0x37,0x30,0x34,0x30,0x37,0x30,0x35,
- 0x30,0x37,0x30,0x36,0x30,0x37,0x30,0x37,
- 0x30,0x37,0x30,0x38,0x30,0x37,0x30,0x39,
- 0x30,0x37,0x31,0x30,0x30,0x37,0x31,0x31,
- 0x30,0x37,0x31,0x32,0x30,0x37,0x31,0x33,
- 0x30,0x37,0x31,0x34,0x30,0x37,0x31,0x35,
- 0x30,0x37,0x31,0x36,0x30,0x37,0x31,0x37,
- 0x30,0x37,0x31,0x38,0x30,0x37,0x31,0x39,
- 0x30,0x37,0x32,0x30,0x30,0x37,0x32,0x31,
- 0x30,0x37,0x32,0x32,0x30,0x37,0x32,0x33,
- 0x30,0x37,0x32,0x34,0x30,0x37,0x32,0x35,
- 0x30,0x37,0x32,0x36,0x30,0x37,0x32,0x37,
- 0x30,0x37,0x32,0x38,0x30,0x37,0x32,0x39,
- 0x30,0x37,0x33,0x30,0x30,0x37,0x33,0x31,
- 0x30,0x37,0x33,0x32,0x30,0x37,0x33,0x33,
- 0x30,0x37,0x33,0x34,0x30,0x37,0x33,0x35,
- 0x30,0x37,0x33,0x36,0x30,0x37,0x33,0x37,
- 0x30,0x37,0x33,0x38,0x30,0x37,0x33,0x39,
- 0x30,0x37,0x34,0x30,0x30,0x37,0x34,0x31,
- 0x30,0x37,0x34,0x32,0x30,0x37,0x34,0x33,
- 0x30,0x37,0x34,0x34,0x30,0x37,0x34,0x35,
- 0x30,0x37,0x34,0x36,0x30,0x37,0x34,0x37,
- 0x30,0x37,0x34,0x38,0x30,0x37,0x34,0x39,
- 0x30,0x37,0x35,0x30,0x30,0x37,0x35,0x31,
- 0x30,0x37,0x35,0x32,0x30,0x37,0x35,0x33,
- 0x30,0x37,0x35,0x34,0x30,0x37,0x35,0x35,
- 0x30,0x37,0x35,0x36,0x30,0x37,0x35,0x37,
- 0x30,0x37,0x35,0x38,0x30,0x37,0x35,0x39,
- 0x30,0x37,0x36,0x30,0x30,0x37,0x36,0x31,
- 0x30,0x37,0x36,0x32,0x30,0x37,0x36,0x33,
- 0x30,0x37,0x36,0x34,0x30,0x37,0x36,0x35,
- 0x30,0x37,0x36,0x36,0x30,0x37,0x36,0x37,
- 0x30,0x37,0x36,0x38,0x30,0x37,0x36,0x39,
- 0x30,0x37,0x37,0x30,0x30,0x37,0x37,0x31,
- 0x30,0x37,0x37,0x32,0x30,0x37,0x37,0x33,
- 0x30,0x37,0x37,0x34,0x30,0x37,0x37,0x35,
- 0x30,0x37,0x37,0x36,0x30,0x37,0x37,0x37,
- 0x30,0x37,0x37,0x38,0x30,0x37,0x37,0x39,
- 0x30,0x37,0x38,0x30,0x30,0x37,0x38,0x31,
- 0x30,0x37,0x38,0x32,0x30,0x37,0x38,0x33,
- 0x30,0x37,0x38,0x34,0x30,0x37,0x38,0x35,
- 0x30,0x37,0x38,0x36,0x30,0x37,0x38,0x37,
- 0x30,0x37,0x38,0x38,0x30,0x37,0x38,0x39,
- 0x30,0x37,0x39,0x30,0x30,0x37,0x39,0x31,
- 0x30,0x37,0x39,0x32,0x30,0x37,0x39,0x33,
- 0x30,0x37,0x39,0x34,0x30,0x37,0x39,0x35,
- 0x30,0x37,0x39,0x36,0x30,0x37,0x39,0x37,
- 0x30,0x37,0x39,0x38,0x30,0x37,0x39,0x39,
- 0x30,0x38,0x30,0x30,0x30,0x38,0x30,0x31,
- 0x30,0x38,0x30,0x32,0x30,0x38,0x30,0x33,
- 0x30,0x38,0x30,0x34,0x30,0x38,0x30,0x35,
- 0x30,0x38,0x30,0x36,0x30,0x38,0x30,0x37,
- 0x30,0x38,0x30,0x38,0x30,0x38,0x30,0x39,
- 0x30,0x38,0x31,0x30,0x30,0x38,0x31,0x31,
- 0x30,0x38,0x31,0x32,0x30,0x38,0x31,0x33,
- 0x30,0x38,0x31,0x34,0x30,0x38,0x31,0x35,
- 0x30,0x38,0x31,0x36,0x30,0x38,0x31,0x37,
- 0x30,0x38,0x31,0x38,0x30,0x38,0x31,0x39,
- 0x30,0x38,0x32,0x30,0x30,0x38,0x32,0x31,
- 0x30,0x38,0x32,0x32,0x30,0x38,0x32,0x33,
- 0x30,0x38,0x32,0x34,0x30,0x38,0x32,0x35,
- 0x30,0x38,0x32,0x36,0x30,0x38,0x32,0x37,
- 0x30,0x38,0x32,0x38,0x30,0x38,0x32,0x39,
- 0x30,0x38,0x33,0x30,0x30,0x38,0x33,0x31,
- 0x30,0x38,0x33,0x32,0x30,0x38,0x33,0x33,
- 0x30,0x38,0x33,0x34,0x30,0x38,0x33,0x35,
- 0x30,0x38,0x33,0x36,0x30,0x38,0x33,0x37,
- 0x30,0x38,0x33,0x38,0x30,0x38,0x33,0x39,
- 0x30,0x38,0x34,0x30,0x30,0x38,0x34,0x31,
- 0x30,0x38,0x34,0x32,0x30,0x38,0x34,0x33,
- 0x30,0x38,0x34,0x34,0x30,0x38,0x34,0x35,
- 0x30,0x38,0x34,0x36,0x30,0x38,0x34,0x37,
- 0x30,0x38,0x34,0x38,0x30,0x38,0x34,0x39,
- 0x30,0x38,0x35,0x30,0x30,0x38,0x35,0x31,
- 0x30,0x38,0x35,0x32,0x30,0x38,0x35,0x33,
- 0x30,0x38,0x35,0x34,0x30,0x38,0x35,0x35,
- 0x30,0x38,0x35,0x36,0x30,0x38,0x35,0x37,
- 0x30,0x38,0x35,0x38,0x30,0x38,0x35,0x39,
- 0x30,0x38,0x36,0x30,0x30,0x38,0x36,0x31,
- 0x30,0x38,0x36,0x32,0x30,0x38,0x36,0x33,
- 0x30,0x38,0x36,0x34,0x30,0x38,0x36,0x35,
- 0x30,0x38,0x36,0x36,0x30,0x38,0x36,0x37,
- 0x30,0x38,0x36,0x38,0x30,0x38,0x36,0x39,
- 0x30,0x38,0x37,0x30,0x30,0x38,0x37,0x31,
- 0x30,0x38,0x37,0x32,0x30,0x38,0x37,0x33,
- 0x30,0x38,0x37,0x34,0x30,0x38,0x37,0x35,
- 0x30,0x38,0x37,0x36,0x30,0x38,0x37,0x37,
- 0x30,0x38,0x37,0x38,0x30,0x38,0x37,0x39,
- 0x30,0x38,0x38,0x30,0x30,0x38,0x38,0x31,
- 0x30,0x38,0x38,0x32,0x30,0x38,0x38,0x33,
- 0x30,0x38,0x38,0x34,0x30,0x38,0x38,0x35,
- 0x30,0x38,0x38,0x36,0x30,0x38,0x38,0x37,
- 0x30,0x38,0x38,0x38,0x30,0x38,0x38,0x39,
- 0x30,0x38,0x39,0x30,0x30,0x38,0x39,0x31,
- 0x30,0x38,0x39,0x32,0x30,0x38,0x39,0x33,
- 0x30,0x38,0x39,0x34,0x30,0x38,0x39,0x35,
- 0x30,0x38,0x39,0x36,0x30,0x38,0x39,0x37,
- 0x30,0x38,0x39,0x38,0x30,0x38,0x39,0x39,
- 0x30,0x39,0x30,0x30,0x30,0x39,0x30,0x31,
- 0x30,0x39,0x30,0x32,0x30,0x39,0x30,0x33,
- 0x30,0x39,0x30,0x34,0x30,0x39,0x30,0x35,
- 0x30,0x39,0x30,0x36,0x30,0x39,0x30,0x37,
- 0x30,0x39,0x30,0x38,0x30,0x39,0x30,0x39,
- 0x30,0x39,0x31,0x30,0x30,0x39,0x31,0x31,
- 0x30,0x39,0x31,0x32,0x30,0x39,0x31,0x33,
- 0x30,0x39,0x31,0x34,0x30,0x39,0x31,0x35,
- 0x30,0x39,0x31,0x36,0x30,0x39,0x31,0x37,
- 0x30,0x39,0x31,0x38,0x30,0x39,0x31,0x39,
- 0x30,0x39,0x32,0x30,0x30,0x39,0x32,0x31,
- 0x30,0x39,0x32,0x32,0x30,0x39,0x32,0x33,
- 0x30,0x39,0x32,0x34,0x30,0x39,0x32,0x35,
- 0x30,0x39,0x32,0x36,0x30,0x39,0x32,0x37,
- 0x30,0x39,0x32,0x38,0x30,0x39,0x32,0x39,
- 0x30,0x39,0x33,0x30,0x30,0x39,0x33,0x31,
- 0x30,0x39,0x33,0x32,0x30,0x39,0x33,0x33,
- 0x30,0x39,0x33,0x34,0x30,0x39,0x33,0x35,
- 0x30,0x39,0x33,0x36,0x30,0x39,0x33,0x37,
- 0x30,0x39,0x33,0x38,0x30,0x39,0x33,0x39,
- 0x30,0x39,0x34,0x30,0x30,0x39,0x34,0x31,
- 0x30,0x39,0x34,0x32,0x30,0x39,0x34,0x33,
- 0x30,0x39,0x34,0x34,0x30,0x39,0x34,0x35,
- 0x30,0x39,0x34,0x36,0x30,0x39,0x34,0x37,
- 0x30,0x39,0x34,0x38,0x30,0x39,0x34,0x39,
- 0x30,0x39,0x35,0x30,0x30,0x39,0x35,0x31,
- 0x30,0x39,0x35,0x32,0x30,0x39,0x35,0x33,
- 0x30,0x39,0x35,0x34,0x30,0x39,0x35,0x35,
- 0x30,0x39,0x35,0x36,0x30,0x39,0x35,0x37,
- 0x30,0x39,0x35,0x38,0x30,0x39,0x35,0x39,
- 0x30,0x39,0x36,0x30,0x30,0x39,0x36,0x31,
- 0x30,0x39,0x36,0x32,0x30,0x39,0x36,0x33,
- 0x30,0x39,0x36,0x34,0x30,0x39,0x36,0x35,
- 0x30,0x39,0x36,0x36,0x30,0x39,0x36,0x37,
- 0x30,0x39,0x36,0x38,0x30,0x39,0x36,0x39,
- 0x30,0x39,0x37,0x30,0x30,0x39,0x37,0x31,
- 0x30,0x39,0x37,0x32,0x30,0x39,0x37,0x33,
- 0x30,0x39,0x37,0x34,0x30,0x39,0x37,0x35,
- 0x30,0x39,0x37,0x36,0x30,0x39,0x37,0x37,
- 0x30,0x39,0x37,0x38,0x30,0x39,0x37,0x39,
- 0x30,0x39,0x38,0x30,0x30,0x39,0x38,0x31,
- 0x30,0x39,0x38,0x32,0x30,0x39,0x38,0x33,
- 0x30,0x39,0x38,0x34,0x30,0x39,0x38,0x35,
- 0x30,0x39,0x38,0x36,0x30,0x39,0x38,0x37,
- 0x30,0x39,0x38,0x38,0x30,0x39,0x38,0x39,
- 0x30,0x39,0x39,0x30,0x30,0x39,0x39,0x31,
- 0x30,0x39,0x39,0x32,0x30,0x39,0x39,0x33,
- 0x30,0x39,0x39,0x34,0x30,0x39,0x39,0x35,
- 0x30,0x39,0x39,0x36,0x30,0x39,0x39,0x37,
- 0x30,0x39,0x39,0x38,0x30,0x39,0x39,0x39,
- 0x31,0x30,0x30,0x30,0x31,0x30,0x30,0x31,
- 0x31,0x30,0x30,0x32,0x31,0x30,0x30,0x33,
- 0x31,0x30,0x30,0x34,0x31,0x30,0x30,0x35,
- 0x31,0x30,0x30,0x36,0x31,0x30,0x30,0x37,
- 0x31,0x30,0x30,0x38,0x31,0x30,0x30,0x39,
- 0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x31,
- 0x31,0x30,0x31,0x32,0x31,0x30,0x31,0x33,
- 0x31,0x30,0x31,0x34,0x31,0x30,0x31,0x35,
- 0x31,0x30,0x31,0x36,0x31,0x30,0x31,0x37,
- 0x31,0x30,0x31,0x38,0x31,0x30,0x31,0x39,
- 0x31,0x30,0x32,0x30,0x31,0x30,0x32,0x31,
- 0x31,0x30,0x32,0x32,0x31,0x30,0x32,0x33,
- 0x31,0x30,0x32,0x34,0x31,0x30,0x32,0x35,
- 0x31,0x30,0x32,0x36,0x31,0x30,0x32,0x37,
- 0x31,0x30,0x32,0x38,0x31,0x30,0x32,0x39,
- 0x31,0x30,0x33,0x30,0x31,0x30,0x33,0x31,
- 0x31,0x30,0x33,0x32,0x31,0x30,0x33,0x33,
- 0x31,0x30,0x33,0x34,0x31,0x30,0x33,0x35,
- 0x31,0x30,0x33,0x36,0x31,0x30,0x33,0x37,
- 0x31,0x30,0x33,0x38,0x31,0x30,0x33,0x39,
- 0x31,0x30,0x34,0x30,0x31,0x30,0x34,0x31,
- 0x31,0x30,0x34,0x32,0x31,0x30,0x34,0x33,
- 0x31,0x30,0x34,0x34,0x31,0x30,0x34,0x35,
- 0x31,0x30,0x34,0x36,0x31,0x30,0x34,0x37,
- 0x31,0x30,0x34,0x38,0x31,0x30,0x34,0x39,
- 0x31,0x30,0x35,0x30,0x31,0x30,0x35,0x31,
- 0x31,0x30,0x35,0x32,0x31,0x30,0x35,0x33,
- 0x31,0x30,0x35,0x34,0x31,0x30,0x35,0x35,
- 0x31,0x30,0x35,0x36,0x31,0x30,0x35,0x37,
- 0x31,0x30,0x35,0x38,0x31,0x30,0x35,0x39,
- 0x31,0x30,0x36,0x30,0x31,0x30,0x36,0x31,
- 0x31,0x30,0x36,0x32,0x31,0x30,0x36,0x33,
- 0x31,0x30,0x36,0x34,0x31,0x30,0x36,0x35,
- 0x31,0x30,0x36,0x36,0x31,0x30,0x36,0x37,
- 0x31,0x30,0x36,0x38,0x31,0x30,0x36,0x39,
- 0x31,0x30,0x37,0x30,0x31,0x30,0x37,0x31,
- 0x31,0x30,0x37,0x32,0x31,0x30,0x37,0x33,
- 0x31,0x30,0x37,0x34,0x31,0x30,0x37,0x35,
- 0x31,0x30,0x37,0x36,0x31,0x30,0x37,0x37,
- 0x31,0x30,0x37,0x38,0x31,0x30,0x37,0x39,
- 0x31,0x30,0x38,0x30,0x31,0x30,0x38,0x31,
- 0x31,0x30,0x38,0x32,0x31,0x30,0x38,0x33,
- 0x31,0x30,0x38,0x34,0x31,0x30,0x38,0x35,
- 0x31,0x30,0x38,0x36,0x31,0x30,0x38,0x37,
- 0x31,0x30,0x38,0x38,0x31,0x30,0x38,0x39,
- 0x31,0x30,0x39,0x30,0x31,0x30,0x39,0x31,
- 0x31,0x30,0x39,0x32,0x31,0x30,0x39,0x33,
- 0x31,0x30,0x39,0x34,0x31,0x30,0x39,0x35,
- 0x31,0x30,0x39,0x36,0x31,0x30,0x39,0x37,
- 0x31,0x30,0x39,0x38,0x31,0x30,0x39,0x39,
- 0x31,0x31,0x30,0x30,0x31,0x31,0x30,0x31,
- 0x31,0x31,0x30,0x32,0x31,0x31,0x30,0x33,
- 0x31,0x31,0x30,0x34,0x31,0x31,0x30,0x35,
- 0x31,0x31,0x30,0x36,0x31,0x31,0x30,0x37,
- 0x31,0x31,0x30,0x38,0x31,0x31,0x30,0x39,
- 0x31,0x31,0x31,0x30,0x31,0x31,0x31,0x31,
- 0x31,0x31,0x31,0x32,0x31,0x31,0x31,0x33,
- 0x31,0x31,0x31,0x34,0x31,0x31,0x31,0x35,
- 0x31,0x31,0x31,0x36,0x31,0x31,0x31,0x37,
- 0x31,0x31,0x31,0x38,0x31,0x31,0x31,0x39,
- 0x31,0x31,0x32,0x30,0x31,0x31,0x32,0x31,
- 0x31,0x31,0x32,0x32,0x31,0x31,0x32,0x33,
- 0x31,0x31,0x32,0x34,0x31,0x31,0x32,0x35,
- 0x31,0x31,0x32,0x36,0x31,0x31,0x32,0x37,
- 0x31,0x31,0x32,0x38,0x31,0x31,0x32,0x39,
- 0x31,0x31,0x33,0x30,0x31,0x31,0x33,0x31,
- 0x31,0x31,0x33,0x32,0x31,0x31,0x33,0x33,
- 0x31,0x31,0x33,0x34,0x31,0x31,0x33,0x35,
- 0x31,0x31,0x33,0x36,0x31,0x31,0x33,0x37,
- 0x31,0x31,0x33,0x38,0x31,0x31,0x33,0x39,
- 0x31,0x31,0x34,0x30,0x31,0x31,0x34,0x31,
- 0x31,0x31,0x34,0x32,0x31,0x31,0x34,0x33,
- 0x31,0x31,0x34,0x34,0x31,0x31,0x34,0x35,
- 0x31,0x31,0x34,0x36,0x31,0x31,0x34,0x37,
- 0x31,0x31,0x34,0x38,0x31,0x31,0x34,0x39,
- 0x31,0x31,0x35,0x30,0x31,0x31,0x35,0x31,
- 0x31,0x31,0x35,0x32,0x31,0x31,0x35,0x33,
- 0x31,0x31,0x35,0x34,0x31,0x31,0x35,0x35,
- 0x31,0x31,0x35,0x36,0x31,0x31,0x35,0x37,
- 0x31,0x31,0x35,0x38,0x31,0x31,0x35,0x39,
- 0x31,0x31,0x36,0x30,0x31,0x31,0x36,0x31,
- 0x31,0x31,0x36,0x32,0x31,0x31,0x36,0x33,
- 0x31,0x31,0x36,0x34,0x31,0x31,0x36,0x35,
- 0x31,0x31,0x36,0x36,0x31,0x31,0x36,0x37,
- 0x31,0x31,0x36,0x38,0x31,0x31,0x36,0x39,
- 0x31,0x31,0x37,0x30,0x31,0x31,0x37,0x31,
- 0x31,0x31,0x37,0x32,0x31,0x31,0x37,0x33,
- 0x31,0x31,0x37,0x34,0x31,0x31,0x37,0x35,
- 0x31,0x31,0x37,0x36,0x31,0x31,0x37,0x37,
- 0x31,0x31,0x37,0x38,0x31,0x31,0x37,0x39,
- 0x31,0x31,0x38,0x30,0x31,0x31,0x38,0x31,
- 0x31,0x31,0x38,0x32,0x31,0x31,0x38,0x33,
- 0x31,0x31,0x38,0x34,0x31,0x31,0x38,0x35,
- 0x31,0x31,0x38,0x36,0x31,0x31,0x38,0x37,
- 0x31,0x31,0x38,0x38,0x31,0x31,0x38,0x39,
- 0x31,0x31,0x39,0x30,0x31,0x31,0x39,0x31,
- 0x31,0x31,0x39,0x32,0x31,0x31,0x39,0x33,
- 0x31,0x31,0x39,0x34,0x31,0x31,0x39,0x35,
- 0x31,0x31,0x39,0x36,0x31,0x31,0x39,0x37,
- 0x31,0x31,0x39,0x38,0x31,0x31,0x39,0x39,
- 0x31,0x32,0x30,0x30,0x31,0x32,0x30,0x31,
- 0x31,0x32,0x30,0x32,0x31,0x32,0x30,0x33,
- 0x31,0x32,0x30,0x34,0x31,0x32,0x30,0x35,
- 0x31,0x32,0x30,0x36,0x31,0x32,0x30,0x37,
- 0x31,0x32,0x30,0x38,0x31,0x32,0x30,0x39,
- 0x31,0x32,0x31,0x30,0x31,0x32,0x31,0x31,
- 0x31,0x32,0x31,0x32,0x31,0x32,0x31,0x33,
- 0x31,0x32,0x31,0x34,0x31,0x32,0x31,0x35,
- 0x31,0x32,0x31,0x36,0x31,0x32,0x31,0x37,
- 0x31,0x32,0x31,0x38,0x31,0x32,0x31,0x39,
- 0x31,0x32,0x32,0x30,0x31,0x32,0x32,0x31,
- 0x31,0x32,0x32,0x32,0x31,0x32,0x32,0x33,
- 0x31,0x32,0x32,0x34,0x31,0x32,0x32,0x35,
- 0x31,0x32,0x32,0x36,0x31,0x32,0x32,0x37,
- 0x31,0x32,0x32,0x38,0x31,0x32,0x32,0x39,
- 0x31,0x32,0x33,0x30,0x31,0x32,0x33,0x31,
- 0x31,0x32,0x33,0x32,0x31,0x32,0x33,0x33,
- 0x31,0x32,0x33,0x34,0x31,0x32,0x33,0x35,
- 0x31,0x32,0x33,0x36,0x31,0x32,0x33,0x37,
- 0x31,0x32,0x33,0x38,0x31,0x32,0x33,0x39,
- 0x31,0x32,0x34,0x30,0x31,0x32,0x34,0x31,
- 0x31,0x32,0x34,0x32,0x31,0x32,0x34,0x33,
- 0x31,0x32,0x34,0x34,0x31,0x32,0x34,0x35,
- 0x31,0x32,0x34,0x36,0x31,0x32,0x34,0x37,
- 0x31,0x32,0x34,0x38,0x31,0x32,0x34,0x39,
- 0x31,0x32,0x35,0x30,0x31,0x32,0x35,0x31,
- 0x31,0x32,0x35,0x32,0x31,0x32,0x35,0x33,
- 0x31,0x32,0x35,0x34,0x31,0x32,0x35,0x35,
- 0x31,0x32,0x35,0x36,0x31,0x32,0x35,0x37,
- 0x31,0x32,0x35,0x38,0x31,0x32,0x35,0x39,
- 0x31,0x32,0x36,0x30,0x31,0x32,0x36,0x31,
- 0x31,0x32,0x36,0x32,0x31,0x32,0x36,0x33,
- 0x31,0x32,0x36,0x34,0x31,0x32,0x36,0x35,
- 0x31,0x32,0x36,0x36,0x31,0x32,0x36,0x37,
- 0x31,0x32,0x36,0x38,0x31,0x32,0x36,0x39,
- 0x31,0x32,0x37,0x30,0x31,0x32,0x37,0x31,
- 0x31,0x32,0x37,0x32,0x31,0x32,0x37,0x33,
- 0x31,0x32,0x37,0x34,0x31,0x32,0x37,0x35,
- 0x31,0x32,0x37,0x36,0x31,0x32,0x37,0x37,
- 0x31,0x32,0x37,0x38,0x31,0x32,0x37,0x39,
- 0x31,0x32,0x38,0x30,0x31,0x32,0x38,0x31,
- 0x31,0x32,0x38,0x32,0x31,0x32,0x38,0x33,
- 0x31,0x32,0x38,0x34,0x31,0x32,0x38,0x35,
- 0x31,0x32,0x38,0x36,0x31,0x32,0x38,0x37,
- 0x31,0x32,0x38,0x38,0x31,0x32,0x38,0x39,
- 0x31,0x32,0x39,0x30,0x31,0x32,0x39,0x31,
- 0x31,0x32,0x39,0x32,0x31,0x32,0x39,0x33,
- 0x31,0x32,0x39,0x34,0x31,0x32,0x39,0x35,
- 0x31,0x32,0x39,0x36,0x31,0x32,0x39,0x37,
- 0x31,0x32,0x39,0x38,0x31,0x32,0x39,0x39,
- 0x31,0x33,0x30,0x30,0x31,0x33,0x30,0x31,
- 0x31,0x33,0x30,0x32,0x31,0x33,0x30,0x33,
- 0x31,0x33,0x30,0x34,0x31,0x33,0x30,0x35,
- 0x31,0x33,0x30,0x36,0x31,0x33,0x30,0x37,
- 0x31,0x33,0x30,0x38,0x31,0x33,0x30,0x39,
- 0x31,0x33,0x31,0x30,0x31,0x33,0x31,0x31,
- 0x31,0x33,0x31,0x32,0x31,0x33,0x31,0x33,
- 0x31,0x33,0x31,0x34,0x31,0x33,0x31,0x35,
- 0x31,0x33,0x31,0x36,0x31,0x33,0x31,0x37,
- 0x31,0x33,0x31,0x38,0x31,0x33,0x31,0x39,
- 0x31,0x33,0x32,0x30,0x31,0x33,0x32,0x31,
- 0x31,0x33,0x32,0x32,0x31,0x33,0x32,0x33,
- 0x31,0x33,0x32,0x34,0x31,0x33,0x32,0x35,
- 0x31,0x33,0x32,0x36,0x31,0x33,0x32,0x37,
- 0x31,0x33,0x32,0x38,0x31,0x33,0x32,0x39,
- 0x31,0x33,0x33,0x30,0x31,0x33,0x33,0x31,
- 0x31,0x33,0x33,0x32,0x31,0x33,0x33,0x33,
- 0x31,0x33,0x33,0x34,0x31,0x33,0x33,0x35,
- 0x31,0x33,0x33,0x36,0x31,0x33,0x33,0x37,
- 0x31,0x33,0x33,0x38,0x31,0x33,0x33,0x39,
- 0x31,0x33,0x34,0x30,0x31,0x33,0x34,0x31,
- 0x31,0x33,0x34,0x32,0x31,0x33,0x34,0x33,
- 0x31,0x33,0x34,0x34,0x31,0x33,0x34,0x35,
- 0x31,0x33,0x34,0x36,0x31,0x33,0x34,0x37,
- 0x31,0x33,0x34,0x38,0x31,0x33,0x34,0x39,
- 0x31,0x33,0x35,0x30,0x31,0x33,0x35,0x31,
- 0x31,0x33,0x35,0x32,0x31,0x33,0x35,0x33,
- 0x31,0x33,0x35,0x34,0x31,0x33,0x35,0x35,
- 0x31,0x33,0x35,0x36,0x31,0x33,0x35,0x37,
- 0x31,0x33,0x35,0x38,0x31,0x33,0x35,0x39,
- 0x31,0x33,0x36,0x30,0x31,0x33,0x36,0x31,
- 0x31,0x33,0x36,0x32,0x31,0x33,0x36,0x33,
- 0x31,0x33,0x36,0x34,0x31,0x33,0x36,0x35,
- 0x31,0x33,0x36,0x36,0x31,0x33,0x36,0x37,
- 0x31,0x33,0x36,0x38,0x31,0x33,0x36,0x39,
- 0x31,0x33,0x37,0x30,0x31,0x33,0x37,0x31,
- 0x31,0x33,0x37,0x32,0x31,0x33,0x37,0x33,
- 0x31,0x33,0x37,0x34,0x31,0x33,0x37,0x35,
- 0x31,0x33,0x37,0x36,0x31,0x33,0x37,0x37,
- 0x31,0x33,0x37,0x38,0x31,0x33,0x37,0x39,
- 0x31,0x33,0x38,0x30,0x31,0x33,0x38,0x31,
- 0x31,0x33,0x38,0x32,0x31,0x33,0x38,0x33,
- 0x31,0x33,0x38,0x34,0x31,0x33,0x38,0x35,
- 0x31,0x33,0x38,0x36,0x31,0x33,0x38,0x37,
- 0x31,0x33,0x38,0x38,0x31,0x33,0x38,0x39,
- 0x31,0x33,0x39,0x30,0x31,0x33,0x39,0x31,
- 0x31,0x33,0x39,0x32,0x31,0x33,0x39,0x33,
- 0x31,0x33,0x39,0x34,0x31,0x33,0x39,0x35,
- 0x31,0x33,0x39,0x36,0x31,0x33,0x39,0x37,
- 0x31,0x33,0x39,0x38,0x31,0x33,0x39,0x39,
- 0x31,0x34,0x30,0x30,0x31,0x34,0x30,0x31,
- 0x31,0x34,0x30,0x32,0x31,0x34,0x30,0x33,
- 0x31,0x34,0x30,0x34,0x31,0x34,0x30,0x35,
- 0x31,0x34,0x30,0x36,0x31,0x34,0x30,0x37,
- 0x31,0x34,0x30,0x38,0x31,0x34,0x30,0x39,
- 0x31,0x34,0x31,0x30,0x31,0x34,0x31,0x31,
- 0x31,0x34,0x31,0x32,0x31,0x34,0x31,0x33,
- 0x31,0x34,0x31,0x34,0x31,0x34,0x31,0x35,
- 0x31,0x34,0x31,0x36,0x31,0x34,0x31,0x37,
- 0x31,0x34,0x31,0x38,0x31,0x34,0x31,0x39,
- 0x31,0x34,0x32,0x30,0x31,0x34,0x32,0x31,
- 0x31,0x34,0x32,0x32,0x31,0x34,0x32,0x33,
- 0x31,0x34,0x32,0x34,0x31,0x34,0x32,0x35,
- 0x31,0x34,0x32,0x36,0x31,0x34,0x32,0x37,
- 0x31,0x34,0x32,0x38,0x31,0x34,0x32,0x39,
- 0x31,0x34,0x33,0x30,0x31,0x34,0x33,0x31,
- 0x31,0x34,0x33,0x32,0x31,0x34,0x33,0x33,
- 0x31,0x34,0x33,0x34,0x31,0x34,0x33,0x35,
- 0x31,0x34,0x33,0x36,0x31,0x34,0x33,0x37,
- 0x31,0x34,0x33,0x38,0x31,0x34,0x33,0x39,
- 0x31,0x34,0x34,0x30,0x31,0x34,0x34,0x31,
- 0x31,0x34,0x34,0x32,0x31,0x34,0x34,0x33,
- 0x31,0x34,0x34,0x34,0x31,0x34,0x34,0x35,
- 0x31,0x34,0x34,0x36,0x31,0x34,0x34,0x37,
- 0x31,0x34,0x34,0x38,0x31,0x34,0x34,0x39,
- 0x31,0x34,0x35,0x30,0x31,0x34,0x35,0x31,
- 0x31,0x34,0x35,0x32,0x31,0x34,0x35,0x33,
- 0x31,0x34,0x35,0x34,0x31,0x34,0x35,0x35,
- 0x31,0x34,0x35,0x36,0x31,0x34,0x35,0x37,
- 0x31,0x34,0x35,0x38,0x31,0x34,0x35,0x39,
- 0x31,0x34,0x36,0x30,0x31,0x34,0x36,0x31,
- 0x31,0x34,0x36,0x32,0x31,0x34,0x36,0x33,
- 0x31,0x34,0x36,0x34,0x31,0x34,0x36,0x35,
- 0x31,0x34,0x36,0x36,0x31,0x34,0x36,0x37,
- 0x31,0x34,0x36,0x38,0x31,0x34,0x36,0x39,
- 0x31,0x34,0x37,0x30,0x31,0x34,0x37,0x31,
- 0x31,0x34,0x37,0x32,0x31,0x34,0x37,0x33,
- 0x31,0x34,0x37,0x34,0x31,0x34,0x37,0x35,
- 0x31,0x34,0x37,0x36,0x31,0x34,0x37,0x37,
- 0x31,0x34,0x37,0x38,0x31,0x34,0x37,0x39,
- 0x31,0x34,0x38,0x30,0x31,0x34,0x38,0x31,
- 0x31,0x34,0x38,0x32,0x31,0x34,0x38,0x33,
- 0x31,0x34,0x38,0x34,0x31,0x34,0x38,0x35,
- 0x31,0x34,0x38,0x36,0x31,0x34,0x38,0x37,
- 0x31,0x34,0x38,0x38,0x31,0x34,0x38,0x39,
- 0x31,0x34,0x39,0x30,0x31,0x34,0x39,0x31,
- 0x31,0x34,0x39,0x32,0x31,0x34,0x39,0x33,
- 0x31,0x34,0x39,0x34,0x31,0x34,0x39,0x35,
- 0x31,0x34,0x39,0x36,0x31,0x34,0x39,0x37,
- 0x31,0x34,0x39,0x38,0x31,0x34,0x39,0x39,
- 0x31,0x35,0x30,0x30,0x31,0x35,0x30,0x31,
- 0x31,0x35,0x30,0x32,0x31,0x35,0x30,0x33,
- 0x31,0x35,0x30,0x34,0x31,0x35,0x30,0x35,
- 0x31,0x35,0x30,0x36,0x31,0x35,0x30,0x37,
- 0x31,0x35,0x30,0x38,0x31,0x35,0x30,0x39,
- 0x31,0x35,0x31,0x30,0x31,0x35,0x31,0x31,
- 0x31,0x35,0x31,0x32,0x31,0x35,0x31,0x33,
- 0x31,0x35,0x31,0x34,0x31,0x35,0x31,0x35,
- 0x31,0x35,0x31,0x36,0x31,0x35,0x31,0x37,
- 0x31,0x35,0x31,0x38,0x31,0x35,0x31,0x39,
- 0x31,0x35,0x32,0x30,0x31,0x35,0x32,0x31,
- 0x31,0x35,0x32,0x32,0x31,0x35,0x32,0x33,
- 0x31,0x35,0x32,0x34,0x31,0x35,0x32,0x35,
- 0x31,0x35,0x32,0x36,0x31,0x35,0x32,0x37,
- 0x31,0x35,0x32,0x38,0x31,0x35,0x32,0x39,
- 0x31,0x35,0x33,0x30,0x31,0x35,0x33,0x31,
- 0x31,0x35,0x33,0x32,0x31,0x35,0x33,0x33,
- 0x31,0x35,0x33,0x34,0x31,0x35,0x33,0x35,
- 0x31,0x35,0x33,0x36,0x31,0x35,0x33,0x37,
- 0x31,0x35,0x33,0x38,0x31,0x35,0x33,0x39,
- 0x31,0x35,0x34,0x30,0x31,0x35,0x34,0x31,
- 0x31,0x35,0x34,0x32,0x31,0x35,0x34,0x33,
- 0x31,0x35,0x34,0x34,0x31,0x35,0x34,0x35,
- 0x31,0x35,0x34,0x36,0x31,0x35,0x34,0x37,
- 0x31,0x35,0x34,0x38,0x31,0x35,0x34,0x39,
- 0x31,0x35,0x35,0x30,0x31,0x35,0x35,0x31,
- 0x31,0x35,0x35,0x32,0x31,0x35,0x35,0x33,
- 0x31,0x35,0x35,0x34,0x31,0x35,0x35,0x35,
- 0x31,0x35,0x35,0x36,0x31,0x35,0x35,0x37,
- 0x31,0x35,0x35,0x38,0x31,0x35,0x35,0x39,
- 0x31,0x35,0x36,0x30,0x31,0x35,0x36,0x31,
- 0x31,0x35,0x36,0x32,0x31,0x35,0x36,0x33,
- 0x31,0x35,0x36,0x34,0x31,0x35,0x36,0x35,
- 0x31,0x35,0x36,0x36,0x31,0x35,0x36,0x37,
- 0x31,0x35,0x36,0x38,0x31,0x35,0x36,0x39,
- 0x31,0x35,0x37,0x30,0x31,0x35,0x37,0x31,
- 0x31,0x35,0x37,0x32,0x31,0x35,0x37,0x33,
- 0x31,0x35,0x37,0x34,0x31,0x35,0x37,0x35,
- 0x31,0x35,0x37,0x36,0x31,0x35,0x37,0x37,
- 0x31,0x35,0x37,0x38,0x31,0x35,0x37,0x39,
- 0x31,0x35,0x38,0x30,0x31,0x35,0x38,0x31,
- 0x31,0x35,0x38,0x32,0x31,0x35,0x38,0x33,
- 0x31,0x35,0x38,0x34,0x31,0x35,0x38,0x35,
- 0x31,0x35,0x38,0x36,0x31,0x35,0x38,0x37,
- 0x31,0x35,0x38,0x38,0x31,0x35,0x38,0x39,
- 0x31,0x35,0x39,0x30,0x31,0x35,0x39,0x31,
- 0x31,0x35,0x39,0x32,0x31,0x35,0x39,0x33,
- 0x31,0x35,0x39,0x34,0x31,0x35,0x39,0x35,
- 0x31,0x35,0x39,0x36,0x31,0x35,0x39,0x37,
- 0x31,0x35,0x39,0x38,0x31,0x35,0x39,0x39,
- 0x31,0x36,0x30,0x30,0x31,0x36,0x30,0x31,
- 0x31,0x36,0x30,0x32,0x31,0x36,0x30,0x33,
- 0x31,0x36,0x30,0x34,0x31,0x36,0x30,0x35,
- 0x31,0x36,0x30,0x36,0x31,0x36,0x30,0x37,
- 0x31,0x36,0x30,0x38,0x31,0x36,0x30,0x39,
- 0x31,0x36,0x31,0x30,0x31,0x36,0x31,0x31,
- 0x31,0x36,0x31,0x32,0x31,0x36,0x31,0x33,
- 0x31,0x36,0x31,0x34,0x31,0x36,0x31,0x35,
- 0x31,0x36,0x31,0x36,0x31,0x36,0x31,0x37,
- 0x31,0x36,0x31,0x38,0x31,0x36,0x31,0x39,
- 0x31,0x36,0x32,0x30,0x31,0x36,0x32,0x31,
- 0x31,0x36,0x32,0x32,0x31,0x36,0x32,0x33,
- 0x31,0x36,0x32,0x34,0x31,0x36,0x32,0x35,
- 0x31,0x36,0x32,0x36,0x31,0x36,0x32,0x37,
- 0x31,0x36,0x32,0x38,0x31,0x36,0x32,0x39,
- 0x31,0x36,0x33,0x30,0x31,0x36,0x33,0x31,
- 0x31,0x36,0x33,0x32,0x31,0x36,0x33,0x33,
- 0x31,0x36,0x33,0x34,0x31,0x36,0x33,0x35,
- 0x31,0x36,0x33,0x36,0x31,0x36,0x33,0x37,
- 0x31,0x36,0x33,0x38,0x31,0x36,0x33,0x39,
- 0x31,0x36,0x34,0x30,0x31,0x36,0x34,0x31,
- 0x31,0x36,0x34,0x32,0x31,0x36,0x34,0x33,
- 0x31,0x36,0x34,0x34,0x31,0x36,0x34,0x35,
- 0x31,0x36,0x34,0x36,0x31,0x36,0x34,0x37,
- 0x31,0x36,0x34,0x38,0x31,0x36,0x34,0x39,
- 0x31,0x36,0x35,0x30,0x31,0x36,0x35,0x31,
- 0x31,0x36,0x35,0x32,0x31,0x36,0x35,0x33,
- 0x31,0x36,0x35,0x34,0x31,0x36,0x35,0x35,
- 0x31,0x36,0x35,0x36,0x31,0x36,0x35,0x37,
- 0x31,0x36,0x35,0x38,0x31,0x36,0x35,0x39,
- 0x31,0x36,0x36,0x30,0x31,0x36,0x36,0x31,
- 0x31,0x36,0x36,0x32,0x31,0x36,0x36,0x33,
- 0x31,0x36,0x36,0x34,0x31,0x36,0x36,0x35,
- 0x31,0x36,0x36,0x36,0x31,0x36,0x36,0x37,
- 0x31,0x36,0x36,0x38,0x31,0x36,0x36,0x39,
- 0x31,0x36,0x37,0x30,0x31,0x36,0x37,0x31,
- 0x31,0x36,0x37,0x32,0x31,0x36,0x37,0x33,
- 0x31,0x36,0x37,0x34,0x31,0x36,0x37,0x35,
- 0x31,0x36,0x37,0x36,0x31,0x36,0x37,0x37,
- 0x31,0x36,0x37,0x38,0x31,0x36,0x37,0x39,
- 0x31,0x36,0x38,0x30,0x31,0x36,0x38,0x31,
- 0x31,0x36,0x38,0x32,0x31,0x36,0x38,0x33,
- 0x31,0x36,0x38,0x34,0x31,0x36,0x38,0x35,
- 0x31,0x36,0x38,0x36,0x31,0x36,0x38,0x37,
- 0x31,0x36,0x38,0x38,0x31,0x36,0x38,0x39,
- 0x31,0x36,0x39,0x30,0x31,0x36,0x39,0x31,
- 0x31,0x36,0x39,0x32,0x31,0x36,0x39,0x33,
- 0x31,0x36,0x39,0x34,0x31,0x36,0x39,0x35,
- 0x31,0x36,0x39,0x36,0x31,0x36,0x39,0x37,
- 0x31,0x36,0x39,0x38,0x31,0x36,0x39,0x39,
- 0x31,0x37,0x30,0x30,0x31,0x37,0x30,0x31,
- 0x31,0x37,0x30,0x32,0x31,0x37,0x30,0x33,
- 0x31,0x37,0x30,0x34,0x31,0x37,0x30,0x35,
- 0x31,0x37,0x30,0x36,0x31,0x37,0x30,0x37,
- 0x31,0x37,0x30,0x38,0x31,0x37,0x30,0x39,
- 0x31,0x37,0x31,0x30,0x31,0x37,0x31,0x31,
- 0x31,0x37,0x31,0x32,0x31,0x37,0x31,0x33,
- 0x31,0x37,0x31,0x34,0x31,0x37,0x31,0x35,
- 0x31,0x37,0x31,0x36,0x31,0x37,0x31,0x37,
- 0x31,0x37,0x31,0x38,0x31,0x37,0x31,0x39,
- 0x31,0x37,0x32,0x30,0x31,0x37,0x32,0x31,
- 0x31,0x37,0x32,0x32,0x31,0x37,0x32,0x33,
- 0x31,0x37,0x32,0x34,0x31,0x37,0x32,0x35,
- 0x31,0x37,0x32,0x36,0x31,0x37,0x32,0x37,
- 0x31,0x37,0x32,0x38,0x31,0x37,0x32,0x39,
- 0x31,0x37,0x33,0x30,0x31,0x37,0x33,0x31,
- 0x31,0x37,0x33,0x32,0x31,0x37,0x33,0x33,
- 0x31,0x37,0x33,0x34,0x31,0x37,0x33,0x35,
- 0x31,0x37,0x33,0x36,0x31,0x37,0x33,0x37,
- 0x31,0x37,0x33,0x38,0x31,0x37,0x33,0x39,
- 0x31,0x37,0x34,0x30,0x31,0x37,0x34,0x31,
- 0x31,0x37,0x34,0x32,0x31,0x37,0x34,0x33,
- 0x31,0x37,0x34,0x34,0x31,0x37,0x34,0x35,
- 0x31,0x37,0x34,0x36,0x31,0x37,0x34,0x37,
- 0x31,0x37,0x34,0x38,0x31,0x37,0x34,0x39,
- 0x31,0x37,0x35,0x30,0x31,0x37,0x35,0x31,
- 0x31,0x37,0x35,0x32,0x31,0x37,0x35,0x33,
- 0x31,0x37,0x35,0x34,0x31,0x37,0x35,0x35,
- 0x31,0x37,0x35,0x36,0x31,0x37,0x35,0x37,
- 0x31,0x37,0x35,0x38,0x31,0x37,0x35,0x39,
- 0x31,0x37,0x36,0x30,0x31,0x37,0x36,0x31,
- 0x31,0x37,0x36,0x32,0x31,0x37,0x36,0x33,
- 0x31,0x37,0x36,0x34,0x31,0x37,0x36,0x35,
- 0x31,0x37,0x36,0x36,0x31,0x37,0x36,0x37,
- 0x31,0x37,0x36,0x38,0x31,0x37,0x36,0x39,
- 0x31,0x37,0x37,0x30,0x31,0x37,0x37,0x31,
- 0x31,0x37,0x37,0x32,0x31,0x37,0x37,0x33,
- 0x31,0x37,0x37,0x34,0x31,0x37,0x37,0x35,
- 0x31,0x37,0x37,0x36,0x31,0x37,0x37,0x37,
- 0x31,0x37,0x37,0x38,0x31,0x37,0x37,0x39,
- 0x31,0x37,0x38,0x30,0x31,0x37,0x38,0x31,
- 0x31,0x37,0x38,0x32,0x31,0x37,0x38,0x33,
- 0x31,0x37,0x38,0x34,0x31,0x37,0x38,0x35,
- 0x31,0x37,0x38,0x36,0x31,0x37,0x38,0x37,
- 0x31,0x37,0x38,0x38,0x31,0x37,0x38,0x39,
- 0x31,0x37,0x39,0x30,0x31,0x37,0x39,0x31,
- 0x31,0x37,0x39,0x32,0x31,0x37,0x39,0x33,
- 0x31,0x37,0x39,0x34,0x31,0x37,0x39,0x35,
- 0x31,0x37,0x39,0x36,0x31,0x37,0x39,0x37,
- 0x31,0x37,0x39,0x38,0x31,0x37,0x39,0x39,
- 0x31,0x38,0x30,0x30,0x31,0x38,0x30,0x31,
- 0x31,0x38,0x30,0x32,0x31,0x38,0x30,0x33,
- 0x31,0x38,0x30,0x34,0x31,0x38,0x30,0x35,
- 0x31,0x38,0x30,0x36,0x31,0x38,0x30,0x37,
- 0x31,0x38,0x30,0x38,0x31,0x38,0x30,0x39,
- 0x31,0x38,0x31,0x30,0x31,0x38,0x31,0x31,
- 0x31,0x38,0x31,0x32,0x31,0x38,0x31,0x33,
- 0x31,0x38,0x31,0x34,0x31,0x38,0x31,0x35,
- 0x31,0x38,0x31,0x36,0x31,0x38,0x31,0x37,
- 0x31,0x38,0x31,0x38,0x31,0x38,0x31,0x39,
- 0x31,0x38,0x32,0x30,0x31,0x38,0x32,0x31,
- 0x31,0x38,0x32,0x32,0x31,0x38,0x32,0x33,
- 0x31,0x38,0x32,0x34,0x31,0x38,0x32,0x35,
- 0x31,0x38,0x32,0x36,0x31,0x38,0x32,0x37,
- 0x31,0x38,0x32,0x38,0x31,0x38,0x32,0x39,
- 0x31,0x38,0x33,0x30,0x31,0x38,0x33,0x31,
- 0x31,0x38,0x33,0x32,0x31,0x38,0x33,0x33,
- 0x31,0x38,0x33,0x34,0x31,0x38,0x33,0x35,
- 0x31,0x38,0x33,0x36,0x31,0x38,0x33,0x37,
- 0x31,0x38,0x33,0x38,0x31,0x38,0x33,0x39,
- 0x31,0x38,0x34,0x30,0x31,0x38,0x34,0x31,
- 0x31,0x38,0x34,0x32,0x31,0x38,0x34,0x33,
- 0x31,0x38,0x34,0x34,0x31,0x38,0x34,0x35,
- 0x31,0x38,0x34,0x36,0x31,0x38,0x34,0x37,
- 0x31,0x38,0x34,0x38,0x31,0x38,0x34,0x39,
- 0x31,0x38,0x35,0x30,0x31,0x38,0x35,0x31,
- 0x31,0x38,0x35,0x32,0x31,0x38,0x35,0x33,
- 0x31,0x38,0x35,0x34,0x31,0x38,0x35,0x35,
- 0x31,0x38,0x35,0x36,0x31,0x38,0x35,0x37,
- 0x31,0x38,0x35,0x38,0x31,0x38,0x35,0x39,
- 0x31,0x38,0x36,0x30,0x31,0x38,0x36,0x31,
- 0x31,0x38,0x36,0x32,0x31,0x38,0x36,0x33,
- 0x31,0x38,0x36,0x34,0x31,0x38,0x36,0x35,
- 0x31,0x38,0x36,0x36,0x31,0x38,0x36,0x37,
- 0x31,0x38,0x36,0x38,0x31,0x38,0x36,0x39,
- 0x31,0x38,0x37,0x30,0x31,0x38,0x37,0x31,
- 0x31,0x38,0x37,0x32,0x31,0x38,0x37,0x33,
- 0x31,0x38,0x37,0x34,0x31,0x38,0x37,0x35,
- 0x31,0x38,0x37,0x36,0x31,0x38,0x37,0x37,
- 0x31,0x38,0x37,0x38,0x31,0x38,0x37,0x39,
- 0x31,0x38,0x38,0x30,0x31,0x38,0x38,0x31,
- 0x31,0x38,0x38,0x32,0x31,0x38,0x38,0x33,
- 0x31,0x38,0x38,0x34,0x31,0x38,0x38,0x35,
- 0x31,0x38,0x38,0x36,0x31,0x38,0x38,0x37,
- 0x31,0x38,0x38,0x38,0x31,0x38,0x38,0x39,
- 0x31,0x38,0x39,0x30,0x31,0x38,0x39,0x31,
- 0x31,0x38,0x39,0x32,0x31,0x38,0x39,0x33,
- 0x31,0x38,0x39,0x34,0x31,0x38,0x39,0x35,
- 0x31,0x38,0x39,0x36,0x31,0x38,0x39,0x37,
- 0x31,0x38,0x39,0x38,0x31,0x38,0x39,0x39,
- 0x31,0x39,0x30,0x30,0x31,0x39,0x30,0x31,
- 0x31,0x39,0x30,0x32,0x31,0x39,0x30,0x33,
- 0x31,0x39,0x30,0x34,0x31,0x39,0x30,0x35,
- 0x31,0x39,0x30,0x36,0x31,0x39,0x30,0x37,
- 0x31,0x39,0x30,0x38,0x31,0x39,0x30,0x39,
- 0x31,0x39,0x31,0x30,0x31,0x39,0x31,0x31,
- 0x31,0x39,0x31,0x32,0x31,0x39,0x31,0x33,
- 0x31,0x39,0x31,0x34,0x31,0x39,0x31,0x35,
- 0x31,0x39,0x31,0x36,0x31,0x39,0x31,0x37,
- 0x31,0x39,0x31,0x38,0x31,0x39,0x31,0x39,
- 0x31,0x39,0x32,0x30,0x31,0x39,0x32,0x31,
- 0x31,0x39,0x32,0x32,0x31,0x39,0x32,0x33,
- 0x31,0x39,0x32,0x34,0x31,0x39,0x32,0x35,
- 0x31,0x39,0x32,0x36,0x31,0x39,0x32,0x37,
- 0x31,0x39,0x32,0x38,0x31,0x39,0x32,0x39,
- 0x31,0x39,0x33,0x30,0x31,0x39,0x33,0x31,
- 0x31,0x39,0x33,0x32,0x31,0x39,0x33,0x33,
- 0x31,0x39,0x33,0x34,0x31,0x39,0x33,0x35,
- 0x31,0x39,0x33,0x36,0x31,0x39,0x33,0x37,
- 0x31,0x39,0x33,0x38,0x31,0x39,0x33,0x39,
- 0x31,0x39,0x34,0x30,0x31,0x39,0x34,0x31,
- 0x31,0x39,0x34,0x32,0x31,0x39,0x34,0x33,
- 0x31,0x39,0x34,0x34,0x31,0x39,0x34,0x35,
- 0x31,0x39,0x34,0x36,0x31,0x39,0x34,0x37,
- 0x31,0x39,0x34,0x38,0x31,0x39,0x34,0x39,
- 0x31,0x39,0x35,0x30,0x31,0x39,0x35,0x31,
- 0x31,0x39,0x35,0x32,0x31,0x39,0x35,0x33,
- 0x31,0x39,0x35,0x34,0x31,0x39,0x35,0x35,
- 0x31,0x39,0x35,0x36,0x31,0x39,0x35,0x37,
- 0x31,0x39,0x35,0x38,0x31,0x39,0x35,0x39,
- 0x31,0x39,0x36,0x30,0x31,0x39,0x36,0x31,
- 0x31,0x39,0x36,0x32,0x31,0x39,0x36,0x33,
- 0x31,0x39,0x36,0x34,0x31,0x39,0x36,0x35,
- 0x31,0x39,0x36,0x36,0x31,0x39,0x36,0x37,
- 0x31,0x39,0x36,0x38,0x31,0x39,0x36,0x39,
- 0x31,0x39,0x37,0x30,0x31,0x39,0x37,0x31,
- 0x31,0x39,0x37,0x32,0x31,0x39,0x37,0x33,
- 0x31,0x39,0x37,0x34,0x31,0x39,0x37,0x35,
- 0x31,0x39,0x37,0x36,0x31,0x39,0x37,0x37,
- 0x31,0x39,0x37,0x38,0x31,0x39,0x37,0x39,
- 0x31,0x39,0x38,0x30,0x31,0x39,0x38,0x31,
- 0x31,0x39,0x38,0x32,0x31,0x39,0x38,0x33,
- 0x31,0x39,0x38,0x34,0x31,0x39,0x38,0x35,
- 0x31,0x39,0x38,0x36,0x31,0x39,0x38,0x37,
- 0x31,0x39,0x38,0x38,0x31,0x39,0x38,0x39,
- 0x31,0x39,0x39,0x30,0x31,0x39,0x39,0x31,
- 0x31,0x39,0x39,0x32,0x31,0x39,0x39,0x33,
- 0x31,0x39,0x39,0x34,0x31,0x39,0x39,0x35,
- 0x31,0x39,0x39,0x36,0x31,0x39,0x39,0x37,
- 0x31,0x39,0x39,0x38,0x31,0x39,0x39,0x39,
- 0x32,0x30,0x30,0x30,0x32,0x30,0x30,0x31,
- 0x32,0x30,0x30,0x32,0x32,0x30,0x30,0x33,
- 0x32,0x30,0x30,0x34,0x32,0x30,0x30,0x35,
- 0x32,0x30,0x30,0x36,0x32,0x30,0x30,0x37,
- 0x32,0x30,0x30,0x38,0x32,0x30,0x30,0x39,
- 0x32,0x30,0x31,0x30,0x32,0x30,0x31,0x31,
- 0x32,0x30,0x31,0x32,0x32,0x30,0x31,0x33,
- 0x32,0x30,0x31,0x34,0x32,0x30,0x31,0x35,
- 0x32,0x30,0x31,0x36,0x32,0x30,0x31,0x37,
- 0x32,0x30,0x31,0x38,0x32,0x30,0x31,0x39,
- 0x32,0x30,0x32,0x30,0x32,0x30,0x32,0x31,
- 0x32,0x30,0x32,0x32,0x32,0x30,0x32,0x33,
- 0x32,0x30,0x32,0x34,0x32,0x30,0x32,0x35,
- 0x32,0x30,0x32,0x36,0x32,0x30,0x32,0x37,
- 0x32,0x30,0x32,0x38,0x32,0x30,0x32,0x39,
- 0x32,0x30,0x33,0x30,0x32,0x30,0x33,0x31,
- 0x32,0x30,0x33,0x32,0x32,0x30,0x33,0x33,
- 0x32,0x30,0x33,0x34,0x32,0x30,0x33,0x35,
- 0x32,0x30,0x33,0x36,0x32,0x30,0x33,0x37,
- 0x32,0x30,0x33,0x38,0x32,0x30,0x33,0x39,
- 0x32,0x30,0x34,0x30,0x32,0x30,0x34,0x31,
- 0x32,0x30,0x34,0x32,0x32,0x30,0x34,0x33,
- 0x32,0x30,0x34,0x34,0x32,0x30,0x34,0x35,
- 0x32,0x30,0x34,0x36,0x32,0x30,0x34,0x37,
- 0x32,0x30,0x34,0x38,0x32,0x30,0x34,0x39,
- 0x32,0x30,0x35,0x30,0x32,0x30,0x35,0x31,
- 0x32,0x30,0x35,0x32,0x32,0x30,0x35,0x33,
- 0x32,0x30,0x35,0x34,0x32,0x30,0x35,0x35,
- 0x32,0x30,0x35,0x36,0x32,0x30,0x35,0x37,
- 0x32,0x30,0x35,0x38,0x32,0x30,0x35,0x39,
- 0x32,0x30,0x36,0x30,0x32,0x30,0x36,0x31,
- 0x32,0x30,0x36,0x32,0x32,0x30,0x36,0x33,
- 0x32,0x30,0x36,0x34,0x32,0x30,0x36,0x35,
- 0x32,0x30,0x36,0x36,0x32,0x30,0x36,0x37,
- 0x32,0x30,0x36,0x38,0x32,0x30,0x36,0x39,
- 0x32,0x30,0x37,0x30,0x32,0x30,0x37,0x31,
- 0x32,0x30,0x37,0x32,0x32,0x30,0x37,0x33,
- 0x32,0x30,0x37,0x34,0x32,0x30,0x37,0x35,
- 0x32,0x30,0x37,0x36,0x32,0x30,0x37,0x37,
- 0x32,0x30,0x37,0x38,0x32,0x30,0x37,0x39,
- 0x32,0x30,0x38,0x30,0x32,0x30,0x38,0x31,
- 0x32,0x30,0x38,0x32,0x32,0x30,0x38,0x33,
- 0x32,0x30,0x38,0x34,0x32,0x30,0x38,0x35,
- 0x32,0x30,0x38,0x36,0x32,0x30,0x38,0x37,
- 0x32,0x30,0x38,0x38,0x32,0x30,0x38,0x39,
- 0x32,0x30,0x39,0x30,0x32,0x30,0x39,0x31,
- 0x32,0x30,0x39,0x32,0x32,0x30,0x39,0x33,
- 0x32,0x30,0x39,0x34,0x32,0x30,0x39,0x35,
- 0x32,0x30,0x39,0x36,0x32,0x30,0x39,0x37,
- 0x32,0x30,0x39,0x38,0x32,0x30,0x39,0x39,
- 0x32,0x31,0x30,0x30,0x32,0x31,0x30,0x31,
- 0x32,0x31,0x30,0x32,0x32,0x31,0x30,0x33,
- 0x32,0x31,0x30,0x34,0x32,0x31,0x30,0x35,
- 0x32,0x31,0x30,0x36,0x32,0x31,0x30,0x37,
- 0x32,0x31,0x30,0x38,0x32,0x31,0x30,0x39,
- 0x32,0x31,0x31,0x30,0x32,0x31,0x31,0x31,
- 0x32,0x31,0x31,0x32,0x32,0x31,0x31,0x33,
- 0x32,0x31,0x31,0x34,0x32,0x31,0x31,0x35,
- 0x32,0x31,0x31,0x36,0x32,0x31,0x31,0x37,
- 0x32,0x31,0x31,0x38,0x32,0x31,0x31,0x39,
- 0x32,0x31,0x32,0x30,0x32,0x31,0x32,0x31,
- 0x32,0x31,0x32,0x32,0x32,0x31,0x32,0x33,
- 0x32,0x31,0x32,0x34,0x32,0x31,0x32,0x35,
- 0x32,0x31,0x32,0x36,0x32,0x31,0x32,0x37,
- 0x32,0x31,0x32,0x38,0x32,0x31,0x32,0x39,
- 0x32,0x31,0x33,0x30,0x32,0x31,0x33,0x31,
- 0x32,0x31,0x33,0x32,0x32,0x31,0x33,0x33,
- 0x32,0x31,0x33,0x34,0x32,0x31,0x33,0x35,
- 0x32,0x31,0x33,0x36,0x32,0x31,0x33,0x37,
- 0x32,0x31,0x33,0x38,0x32,0x31,0x33,0x39,
- 0x32,0x31,0x34,0x30,0x32,0x31,0x34,0x31,
- 0x32,0x31,0x34,0x32,0x32,0x31,0x34,0x33,
- 0x32,0x31,0x34,0x34,0x32,0x31,0x34,0x35,
- 0x32,0x31,0x34,0x36,0x32,0x31,0x34,0x37,
- 0x32,0x31,0x34,0x38,0x32,0x31,0x34,0x39,
- 0x32,0x31,0x35,0x30,0x32,0x31,0x35,0x31,
- 0x32,0x31,0x35,0x32,0x32,0x31,0x35,0x33,
- 0x32,0x31,0x35,0x34,0x32,0x31,0x35,0x35,
- 0x32,0x31,0x35,0x36,0x32,0x31,0x35,0x37,
- 0x32,0x31,0x35,0x38,0x32,0x31,0x35,0x39,
- 0x32,0x31,0x36,0x30,0x32,0x31,0x36,0x31,
- 0x32,0x31,0x36,0x32,0x32,0x31,0x36,0x33,
- 0x32,0x31,0x36,0x34,0x32,0x31,0x36,0x35,
- 0x32,0x31,0x36,0x36,0x32,0x31,0x36,0x37,
- 0x32,0x31,0x36,0x38,0x32,0x31,0x36,0x39,
- 0x32,0x31,0x37,0x30,0x32,0x31,0x37,0x31,
- 0x32,0x31,0x37,0x32,0x32,0x31,0x37,0x33,
- 0x32,0x31,0x37,0x34,0x32,0x31,0x37,0x35,
- 0x32,0x31,0x37,0x36,0x32,0x31,0x37,0x37,
- 0x32,0x31,0x37,0x38,0x32,0x31,0x37,0x39,
- 0x32,0x31,0x38,0x30,0x32,0x31,0x38,0x31,
- 0x32,0x31,0x38,0x32,0x32,0x31,0x38,0x33,
- 0x32,0x31,0x38,0x34,0x32,0x31,0x38,0x35,
- 0x32,0x31,0x38,0x36,0x32,0x31,0x38,0x37,
- 0x32,0x31,0x38,0x38,0x32,0x31,0x38,0x39,
- 0x32,0x31,0x39,0x30,0x32,0x31,0x39,0x31,
- 0x32,0x31,0x39,0x32,0x32,0x31,0x39,0x33,
- 0x32,0x31,0x39,0x34,0x32,0x31,0x39,0x35,
- 0x32,0x31,0x39,0x36,0x32,0x31,0x39,0x37,
- 0x32,0x31,0x39,0x38,0x32,0x31,0x39,0x39,
- 0x32,0x32,0x30,0x30,0x32,0x32,0x30,0x31,
- 0x32,0x32,0x30,0x32,0x32,0x32,0x30,0x33,
- 0x32,0x32,0x30,0x34,0x32,0x32,0x30,0x35,
- 0x32,0x32,0x30,0x36,0x32,0x32,0x30,0x37,
- 0x32,0x32,0x30,0x38,0x32,0x32,0x30,0x39,
- 0x32,0x32,0x31,0x30,0x32,0x32,0x31,0x31,
- 0x32,0x32,0x31,0x32,0x32,0x32,0x31,0x33,
- 0x32,0x32,0x31,0x34,0x32,0x32,0x31,0x35,
- 0x32,0x32,0x31,0x36,0x32,0x32,0x31,0x37,
- 0x32,0x32,0x31,0x38,0x32,0x32,0x31,0x39,
- 0x32,0x32,0x32,0x30,0x32,0x32,0x32,0x31,
- 0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x33,
- 0x32,0x32,0x32,0x34,0x32,0x32,0x32,0x35,
- 0x32,0x32,0x32,0x36,0x32,0x32,0x32,0x37,
- 0x32,0x32,0x32,0x38,0x32,0x32,0x32,0x39,
- 0x32,0x32,0x33,0x30,0x32,0x32,0x33,0x31,
- 0x32,0x32,0x33,0x32,0x32,0x32,0x33,0x33,
- 0x32,0x32,0x33,0x34,0x32,0x32,0x33,0x35,
- 0x32,0x32,0x33,0x36,0x32,0x32,0x33,0x37,
- 0x32,0x32,0x33,0x38,0x32,0x32,0x33,0x39,
- 0x32,0x32,0x34,0x30,0x32,0x32,0x34,0x31,
- 0x32,0x32,0x34,0x32,0x32,0x32,0x34,0x33,
- 0x32,0x32,0x34,0x34,0x32,0x32,0x34,0x35,
- 0x32,0x32,0x34,0x36,0x32,0x32,0x34,0x37,
- 0x32,0x32,0x34,0x38,0x32,0x32,0x34,0x39,
- 0x32,0x32,0x35,0x30,0x32,0x32,0x35,0x31,
- 0x32,0x32,0x35,0x32,0x32,0x32,0x35,0x33,
- 0x32,0x32,0x35,0x34,0x32,0x32,0x35,0x35,
- 0x32,0x32,0x35,0x36,0x32,0x32,0x35,0x37,
- 0x32,0x32,0x35,0x38,0x32,0x32,0x35,0x39,
- 0x32,0x32,0x36,0x30,0x32,0x32,0x36,0x31,
- 0x32,0x32,0x36,0x32,0x32,0x32,0x36,0x33,
- 0x32,0x32,0x36,0x34,0x32,0x32,0x36,0x35,
- 0x32,0x32,0x36,0x36,0x32,0x32,0x36,0x37,
- 0x32,0x32,0x36,0x38,0x32,0x32,0x36,0x39,
- 0x32,0x32,0x37,0x30,0x32,0x32,0x37,0x31,
- 0x32,0x32,0x37,0x32,0x32,0x32,0x37,0x33,
- 0x32,0x32,0x37,0x34,0x32,0x32,0x37,0x35,
- 0x32,0x32,0x37,0x36,0x32,0x32,0x37,0x37,
- 0x32,0x32,0x37,0x38,0x32,0x32,0x37,0x39,
- 0x32,0x32,0x38,0x30,0x32,0x32,0x38,0x31,
- 0x32,0x32,0x38,0x32,0x32,0x32,0x38,0x33,
- 0x32,0x32,0x38,0x34,0x32,0x32,0x38,0x35,
- 0x32,0x32,0x38,0x36,0x32,0x32,0x38,0x37,
- 0x32,0x32,0x38,0x38,0x32,0x32,0x38,0x39,
- 0x32,0x32,0x39,0x30,0x32,0x32,0x39,0x31,
- 0x32,0x32,0x39,0x32,0x32,0x32,0x39,0x33,
- 0x32,0x32,0x39,0x34,0x32,0x32,0x39,0x35,
- 0x32,0x32,0x39,0x36,0x32,0x32,0x39,0x37,
- 0x32,0x32,0x39,0x38,0x32,0x32,0x39,0x39,
- 0x32,0x33,0x30,0x30,0x32,0x33,0x30,0x31,
- 0x32,0x33,0x30,0x32,0x32,0x33,0x30,0x33,
- 0x32,0x33,0x30,0x34,0x32,0x33,0x30,0x35,
- 0x32,0x33,0x30,0x36,0x32,0x33,0x30,0x37,
- 0x32,0x33,0x30,0x38,0x32,0x33,0x30,0x39,
- 0x32,0x33,0x31,0x30,0x32,0x33,0x31,0x31,
- 0x32,0x33,0x31,0x32,0x32,0x33,0x31,0x33,
- 0x32,0x33,0x31,0x34,0x32,0x33,0x31,0x35,
- 0x32,0x33,0x31,0x36,0x32,0x33,0x31,0x37,
- 0x32,0x33,0x31,0x38,0x32,0x33,0x31,0x39,
- 0x32,0x33,0x32,0x30,0x32,0x33,0x32,0x31,
- 0x32,0x33,0x32,0x32,0x32,0x33,0x32,0x33,
- 0x32,0x33,0x32,0x34,0x32,0x33,0x32,0x35,
- 0x32,0x33,0x32,0x36,0x32,0x33,0x32,0x37,
- 0x32,0x33,0x32,0x38,0x32,0x33,0x32,0x39,
- 0x32,0x33,0x33,0x30,0x32,0x33,0x33,0x31,
- 0x32,0x33,0x33,0x32,0x32,0x33,0x33,0x33,
- 0x32,0x33,0x33,0x34,0x32,0x33,0x33,0x35,
- 0x32,0x33,0x33,0x36,0x32,0x33,0x33,0x37,
- 0x32,0x33,0x33,0x38,0x32,0x33,0x33,0x39,
- 0x32,0x33,0x34,0x30,0x32,0x33,0x34,0x31,
- 0x32,0x33,0x34,0x32,0x32,0x33,0x34,0x33,
- 0x32,0x33,0x34,0x34,0x32,0x33,0x34,0x35,
- 0x32,0x33,0x34,0x36,0x32,0x33,0x34,0x37,
- 0x32,0x33,0x34,0x38,0x32,0x33,0x34,0x39,
- 0x32,0x33,0x35,0x30,0x32,0x33,0x35,0x31,
- 0x32,0x33,0x35,0x32,0x32,0x33,0x35,0x33,
- 0x32,0x33,0x35,0x34,0x32,0x33,0x35,0x35,
- 0x32,0x33,0x35,0x36,0x32,0x33,0x35,0x37,
- 0x32,0x33,0x35,0x38,0x32,0x33,0x35,0x39,
- 0x32,0x33,0x36,0x30,0x32,0x33,0x36,0x31,
- 0x32,0x33,0x36,0x32,0x32,0x33,0x36,0x33,
- 0x32,0x33,0x36,0x34,0x32,0x33,0x36,0x35,
- 0x32,0x33,0x36,0x36,0x32,0x33,0x36,0x37,
- 0x32,0x33,0x36,0x38,0x32,0x33,0x36,0x39,
- 0x32,0x33,0x37,0x30,0x32,0x33,0x37,0x31,
- 0x32,0x33,0x37,0x32,0x32,0x33,0x37,0x33,
- 0x32,0x33,0x37,0x34,0x32,0x33,0x37,0x35,
- 0x32,0x33,0x37,0x36,0x32,0x33,0x37,0x37,
- 0x32,0x33,0x37,0x38,0x32,0x33,0x37,0x39,
- 0x32,0x33,0x38,0x30,0x32,0x33,0x38,0x31,
- 0x32,0x33,0x38,0x32,0x32,0x33,0x38,0x33,
- 0x32,0x33,0x38,0x34,0x32,0x33,0x38,0x35,
- 0x32,0x33,0x38,0x36,0x32,0x33,0x38,0x37,
- 0x32,0x33,0x38,0x38,0x32,0x33,0x38,0x39,
- 0x32,0x33,0x39,0x30,0x32,0x33,0x39,0x31,
- 0x32,0x33,0x39,0x32,0x32,0x33,0x39,0x33,
- 0x32,0x33,0x39,0x34,0x32,0x33,0x39,0x35,
- 0x32,0x33,0x39,0x36,0x32,0x33,0x39,0x37,
- 0x32,0x33,0x39,0x38,0x32,0x33,0x39,0x39,
- 0x32,0x34,0x30,0x30,0x32,0x34,0x30,0x31,
- 0x32,0x34,0x30,0x32,0x32,0x34,0x30,0x33,
- 0x32,0x34,0x30,0x34,0x32,0x34,0x30,0x35,
- 0x32,0x34,0x30,0x36,0x32,0x34,0x30,0x37,
- 0x32,0x34,0x30,0x38,0x32,0x34,0x30,0x39,
- 0x32,0x34,0x31,0x30,0x32,0x34,0x31,0x31,
- 0x32,0x34,0x31,0x32,0x32,0x34,0x31,0x33,
- 0x32,0x34,0x31,0x34,0x32,0x34,0x31,0x35,
- 0x32,0x34,0x31,0x36,0x32,0x34,0x31,0x37,
- 0x32,0x34,0x31,0x38,0x32,0x34,0x31,0x39,
- 0x32,0x34,0x32,0x30,0x32,0x34,0x32,0x31,
- 0x32,0x34,0x32,0x32,0x32,0x34,0x32,0x33,
- 0x32,0x34,0x32,0x34,0x32,0x34,0x32,0x35,
- 0x32,0x34,0x32,0x36,0x32,0x34,0x32,0x37,
- 0x32,0x34,0x32,0x38,0x32,0x34,0x32,0x39,
- 0x32,0x34,0x33,0x30,0x32,0x34,0x33,0x31,
- 0x32,0x34,0x33,0x32,0x32,0x34,0x33,0x33,
- 0x32,0x34,0x33,0x34,0x32,0x34,0x33,0x35,
- 0x32,0x34,0x33,0x36,0x32,0x34,0x33,0x37,
- 0x32,0x34,0x33,0x38,0x32,0x34,0x33,0x39,
- 0x32,0x34,0x34,0x30,0x32,0x34,0x34,0x31,
- 0x32,0x34,0x34,0x32,0x32,0x34,0x34,0x33,
- 0x32,0x34,0x34,0x34,0x32,0x34,0x34,0x35,
- 0x32,0x34,0x34,0x36,0x32,0x34,0x34,0x37,
- 0x32,0x34,0x34,0x38,0x32,0x34,0x34,0x39,
- 0x32,0x34,0x35,0x30,0x32,0x34,0x35,0x31,
- 0x32,0x34,0x35,0x32,0x32,0x34,0x35,0x33,
- 0x32,0x34,0x35,0x34,0x32,0x34,0x35,0x35,
- 0x32,0x34,0x35,0x36,0x32,0x34,0x35,0x37,
- 0x32,0x34,0x35,0x38,0x32,0x34,0x35,0x39,
- 0x32,0x34,0x36,0x30,0x32,0x34,0x36,0x31,
- 0x32,0x34,0x36,0x32,0x32,0x34,0x36,0x33,
- 0x32,0x34,0x36,0x34,0x32,0x34,0x36,0x35,
- 0x32,0x34,0x36,0x36,0x32,0x34,0x36,0x37,
- 0x32,0x34,0x36,0x38,0x32,0x34,0x36,0x39,
- 0x32,0x34,0x37,0x30,0x32,0x34,0x37,0x31,
- 0x32,0x34,0x37,0x32,0x32,0x34,0x37,0x33,
- 0x32,0x34,0x37,0x34,0x32,0x34,0x37,0x35,
- 0x32,0x34,0x37,0x36,0x32,0x34,0x37,0x37,
- 0x32,0x34,0x37,0x38,0x32,0x34,0x37,0x39,
- 0x32,0x34,0x38,0x30,0x32,0x34,0x38,0x31,
- 0x32,0x34,0x38,0x32,0x32,0x34,0x38,0x33,
- 0x32,0x34,0x38,0x34,0x32,0x34,0x38,0x35,
- 0x32,0x34,0x38,0x36,0x32,0x34,0x38,0x37,
- 0x32,0x34,0x38,0x38,0x32,0x34,0x38,0x39,
- 0x32,0x34,0x39,0x30,0x32,0x34,0x39,0x31,
- 0x32,0x34,0x39,0x32,0x32,0x34,0x39,0x33,
- 0x32,0x34,0x39,0x34,0x32,0x34,0x39,0x35,
- 0x32,0x34,0x39,0x36,0x32,0x34,0x39,0x37,
- 0x32,0x34,0x39,0x38,0x32,0x34,0x39,0x39,
- 0x32,0x35,0x30,0x30,0x32,0x35,0x30,0x31,
- 0x32,0x35,0x30,0x32,0x32,0x35,0x30,0x33,
- 0x32,0x35,0x30,0x34,0x32,0x35,0x30,0x35,
- 0x32,0x35,0x30,0x36,0x32,0x35,0x30,0x37,
- 0x32,0x35,0x30,0x38,0x32,0x35,0x30,0x39,
- 0x32,0x35,0x31,0x30,0x32,0x35,0x31,0x31,
- 0x32,0x35,0x31,0x32,0x32,0x35,0x31,0x33,
- 0x32,0x35,0x31,0x34,0x32,0x35,0x31,0x35,
- 0x32,0x35,0x31,0x36,0x32,0x35,0x31,0x37,
- 0x32,0x35,0x31,0x38,0x32,0x35,0x31,0x39,
- 0x32,0x35,0x32,0x30,0x32,0x35,0x32,0x31,
- 0x32,0x35,0x32,0x32,0x32,0x35,0x32,0x33,
- 0x32,0x35,0x32,0x34,0x32,0x35,0x32,0x35,
- 0x32,0x35,0x32,0x36,0x32,0x35,0x32,0x37,
- 0x32,0x35,0x32,0x38,0x32,0x35,0x32,0x39,
- 0x32,0x35,0x33,0x30,0x32,0x35,0x33,0x31,
- 0x32,0x35,0x33,0x32,0x32,0x35,0x33,0x33,
- 0x32,0x35,0x33,0x34,0x32,0x35,0x33,0x35,
- 0x32,0x35,0x33,0x36,0x32,0x35,0x33,0x37,
- 0x32,0x35,0x33,0x38,0x32,0x35,0x33,0x39,
- 0x32,0x35,0x34,0x30,0x32,0x35,0x34,0x31,
- 0x32,0x35,0x34,0x32,0x32,0x35,0x34,0x33,
- 0x32,0x35,0x34,0x34,0x32,0x35,0x34,0x35,
- 0x32,0x35,0x34,0x36,0x32,0x35,0x34,0x37,
- 0x32,0x35,0x34,0x38,0x32,0x35,0x34,0x39,
- 0x32,0x35,0x35,0x30,0x32,0x35,0x35,0x31,
- 0x32,0x35,0x35,0x32,0x32,0x35,0x35,0x33,
- 0x32,0x35,0x35,0x34,0x32,0x35,0x35,0x35,
- 0x32,0x35,0x35,0x36,0x32,0x35,0x35,0x37,
- 0x32,0x35,0x35,0x38,0x32,0x35,0x35,0x39,
- 0x32,0x35,0x36,0x30,0x32,0x35,0x36,0x31,
- 0x32,0x35,0x36,0x32,0x32,0x35,0x36,0x33,
- 0x32,0x35,0x36,0x34,0x32,0x35,0x36,0x35,
- 0x32,0x35,0x36,0x36,0x32,0x35,0x36,0x37,
- 0x32,0x35,0x36,0x38,0x32,0x35,0x36,0x39,
- 0x32,0x35,0x37,0x30,0x32,0x35,0x37,0x31,
- 0x32,0x35,0x37,0x32,0x32,0x35,0x37,0x33,
- 0x32,0x35,0x37,0x34,0x32,0x35,0x37,0x35,
- 0x32,0x35,0x37,0x36,0x32,0x35,0x37,0x37,
- 0x32,0x35,0x37,0x38,0x32,0x35,0x37,0x39,
- 0x32,0x35,0x38,0x30,0x32,0x35,0x38,0x31,
- 0x32,0x35,0x38,0x32,0x32,0x35,0x38,0x33,
- 0x32,0x35,0x38,0x34,0x32,0x35,0x38,0x35,
- 0x32,0x35,0x38,0x36,0x32,0x35,0x38,0x37,
- 0x32,0x35,0x38,0x38,0x32,0x35,0x38,0x39,
- 0x32,0x35,0x39,0x30,0x32,0x35,0x39,0x31,
- 0x32,0x35,0x39,0x32,0x32,0x35,0x39,0x33,
- 0x32,0x35,0x39,0x34,0x32,0x35,0x39,0x35,
- 0x32,0x35,0x39,0x36,0x32,0x35,0x39,0x37,
- 0x32,0x35,0x39,0x38,0x32,0x35,0x39,0x39,
- 0x32,0x36,0x30,0x30,0x32,0x36,0x30,0x31,
- 0x32,0x36,0x30,0x32,0x32,0x36,0x30,0x33,
- 0x32,0x36,0x30,0x34,0x32,0x36,0x30,0x35,
- 0x32,0x36,0x30,0x36,0x32,0x36,0x30,0x37,
- 0x32,0x36,0x30,0x38,0x32,0x36,0x30,0x39,
- 0x32,0x36,0x31,0x30,0x32,0x36,0x31,0x31,
- 0x32,0x36,0x31,0x32,0x32,0x36,0x31,0x33,
- 0x32,0x36,0x31,0x34,0x32,0x36,0x31,0x35,
- 0x32,0x36,0x31,0x36,0x32,0x36,0x31,0x37,
- 0x32,0x36,0x31,0x38,0x32,0x36,0x31,0x39,
- 0x32,0x36,0x32,0x30,0x32,0x36,0x32,0x31,
- 0x32,0x36,0x32,0x32,0x32,0x36,0x32,0x33,
- 0x32,0x36,0x32,0x34,0x32,0x36,0x32,0x35,
- 0x32,0x36,0x32,0x36,0x32,0x36,0x32,0x37,
- 0x32,0x36,0x32,0x38,0x32,0x36,0x32,0x39,
- 0x32,0x36,0x33,0x30,0x32,0x36,0x33,0x31,
- 0x32,0x36,0x33,0x32,0x32,0x36,0x33,0x33,
- 0x32,0x36,0x33,0x34,0x32,0x36,0x33,0x35,
- 0x32,0x36,0x33,0x36,0x32,0x36,0x33,0x37,
- 0x32,0x36,0x33,0x38,0x32,0x36,0x33,0x39,
- 0x32,0x36,0x34,0x30,0x32,0x36,0x34,0x31,
- 0x32,0x36,0x34,0x32,0x32,0x36,0x34,0x33,
- 0x32,0x36,0x34,0x34,0x32,0x36,0x34,0x35,
- 0x32,0x36,0x34,0x36,0x32,0x36,0x34,0x37,
- 0x32,0x36,0x34,0x38,0x32,0x36,0x34,0x39,
- 0x32,0x36,0x35,0x30,0x32,0x36,0x35,0x31,
- 0x32,0x36,0x35,0x32,0x32,0x36,0x35,0x33,
- 0x32,0x36,0x35,0x34,0x32,0x36,0x35,0x35,
- 0x32,0x36,0x35,0x36,0x32,0x36,0x35,0x37,
- 0x32,0x36,0x35,0x38,0x32,0x36,0x35,0x39,
- 0x32,0x36,0x36,0x30,0x32,0x36,0x36,0x31,
- 0x32,0x36,0x36,0x32,0x32,0x36,0x36,0x33,
- 0x32,0x36,0x36,0x34,0x32,0x36,0x36,0x35,
- 0x32,0x36,0x36,0x36,0x32,0x36,0x36,0x37,
- 0x32,0x36,0x36,0x38,0x32,0x36,0x36,0x39,
- 0x32,0x36,0x37,0x30,0x32,0x36,0x37,0x31,
- 0x32,0x36,0x37,0x32,0x32,0x36,0x37,0x33,
- 0x32,0x36,0x37,0x34,0x32,0x36,0x37,0x35,
- 0x32,0x36,0x37,0x36,0x32,0x36,0x37,0x37,
- 0x32,0x36,0x37,0x38,0x32,0x36,0x37,0x39,
- 0x32,0x36,0x38,0x30,0x32,0x36,0x38,0x31,
- 0x32,0x36,0x38,0x32,0x32,0x36,0x38,0x33,
- 0x32,0x36,0x38,0x34,0x32,0x36,0x38,0x35,
- 0x32,0x36,0x38,0x36,0x32,0x36,0x38,0x37,
- 0x32,0x36,0x38,0x38,0x32,0x36,0x38,0x39,
- 0x32,0x36,0x39,0x30,0x32,0x36,0x39,0x31,
- 0x32,0x36,0x39,0x32,0x32,0x36,0x39,0x33,
- 0x32,0x36,0x39,0x34,0x32,0x36,0x39,0x35,
- 0x32,0x36,0x39,0x36,0x32,0x36,0x39,0x37,
- 0x32,0x36,0x39,0x38,0x32,0x36,0x39,0x39,
- 0x32,0x37,0x30,0x30,0x32,0x37,0x30,0x31,
- 0x32,0x37,0x30,0x32,0x32,0x37,0x30,0x33,
- 0x32,0x37,0x30,0x34,0x32,0x37,0x30,0x35,
- 0x32,0x37,0x30,0x36,0x32,0x37,0x30,0x37,
- 0x32,0x37,0x30,0x38,0x32,0x37,0x30,0x39,
- 0x32,0x37,0x31,0x30,0x32,0x37,0x31,0x31,
- 0x32,0x37,0x31,0x32,0x32,0x37,0x31,0x33,
- 0x32,0x37,0x31,0x34,0x32,0x37,0x31,0x35,
- 0x32,0x37,0x31,0x36,0x32,0x37,0x31,0x37,
- 0x32,0x37,0x31,0x38,0x32,0x37,0x31,0x39,
- 0x32,0x37,0x32,0x30,0x32,0x37,0x32,0x31,
- 0x32,0x37,0x32,0x32,0x32,0x37,0x32,0x33,
- 0x32,0x37,0x32,0x34,0x32,0x37,0x32,0x35,
- 0x32,0x37,0x32,0x36,0x32,0x37,0x32,0x37,
- 0x32,0x37,0x32,0x38,0x32,0x37,0x32,0x39,
- 0x32,0x37,0x33,0x30,0x32,0x37,0x33,0x31,
- 0x32,0x37,0x33,0x32,0x32,0x37,0x33,0x33,
- 0x32,0x37,0x33,0x34,0x32,0x37,0x33,0x35,
- 0x32,0x37,0x33,0x36,0x32,0x37,0x33,0x37,
- 0x32,0x37,0x33,0x38,0x32,0x37,0x33,0x39,
- 0x32,0x37,0x34,0x30,0x32,0x37,0x34,0x31,
- 0x32,0x37,0x34,0x32,0x32,0x37,0x34,0x33,
- 0x32,0x37,0x34,0x34,0x32,0x37,0x34,0x35,
- 0x32,0x37,0x34,0x36,0x32,0x37,0x34,0x37,
- 0x32,0x37,0x34,0x38,0x32,0x37,0x34,0x39,
- 0x32,0x37,0x35,0x30,0x32,0x37,0x35,0x31,
- 0x32,0x37,0x35,0x32,0x32,0x37,0x35,0x33,
- 0x32,0x37,0x35,0x34,0x32,0x37,0x35,0x35,
- 0x32,0x37,0x35,0x36,0x32,0x37,0x35,0x37,
- 0x32,0x37,0x35,0x38,0x32,0x37,0x35,0x39,
- 0x32,0x37,0x36,0x30,0x32,0x37,0x36,0x31,
- 0x32,0x37,0x36,0x32,0x32,0x37,0x36,0x33,
- 0x32,0x37,0x36,0x34,0x32,0x37,0x36,0x35,
- 0x32,0x37,0x36,0x36,0x32,0x37,0x36,0x37,
- 0x32,0x37,0x36,0x38,0x32,0x37,0x36,0x39,
- 0x32,0x37,0x37,0x30,0x32,0x37,0x37,0x31,
- 0x32,0x37,0x37,0x32,0x32,0x37,0x37,0x33,
- 0x32,0x37,0x37,0x34,0x32,0x37,0x37,0x35,
- 0x32,0x37,0x37,0x36,0x32,0x37,0x37,0x37,
- 0x32,0x37,0x37,0x38,0x32,0x37,0x37,0x39,
- 0x32,0x37,0x38,0x30,0x32,0x37,0x38,0x31,
- 0x32,0x37,0x38,0x32,0x32,0x37,0x38,0x33,
- 0x32,0x37,0x38,0x34,0x32,0x37,0x38,0x35,
- 0x32,0x37,0x38,0x36,0x32,0x37,0x38,0x37,
- 0x32,0x37,0x38,0x38,0x32,0x37,0x38,0x39,
- 0x32,0x37,0x39,0x30,0x32,0x37,0x39,0x31,
- 0x32,0x37,0x39,0x32,0x32,0x37,0x39,0x33,
- 0x32,0x37,0x39,0x34,0x32,0x37,0x39,0x35,
- 0x32,0x37,0x39,0x36,0x32,0x37,0x39,0x37,
- 0x32,0x37,0x39,0x38,0x32,0x37,0x39,0x39,
- 0x32,0x38,0x30,0x30,0x32,0x38,0x30,0x31,
- 0x32,0x38,0x30,0x32,0x32,0x38,0x30,0x33,
- 0x32,0x38,0x30,0x34,0x32,0x38,0x30,0x35,
- 0x32,0x38,0x30,0x36,0x32,0x38,0x30,0x37,
- 0x32,0x38,0x30,0x38,0x32,0x38,0x30,0x39,
- 0x32,0x38,0x31,0x30,0x32,0x38,0x31,0x31,
- 0x32,0x38,0x31,0x32,0x32,0x38,0x31,0x33,
- 0x32,0x38,0x31,0x34,0x32,0x38,0x31,0x35,
- 0x32,0x38,0x31,0x36,0x32,0x38,0x31,0x37,
- 0x32,0x38,0x31,0x38,0x32,0x38,0x31,0x39,
- 0x32,0x38,0x32,0x30,0x32,0x38,0x32,0x31,
- 0x32,0x38,0x32,0x32,0x32,0x38,0x32,0x33,
- 0x32,0x38,0x32,0x34,0x32,0x38,0x32,0x35,
- 0x32,0x38,0x32,0x36,0x32,0x38,0x32,0x37,
- 0x32,0x38,0x32,0x38,0x32,0x38,0x32,0x39,
- 0x32,0x38,0x33,0x30,0x32,0x38,0x33,0x31,
- 0x32,0x38,0x33,0x32,0x32,0x38,0x33,0x33,
- 0x32,0x38,0x33,0x34,0x32,0x38,0x33,0x35,
- 0x32,0x38,0x33,0x36,0x32,0x38,0x33,0x37,
- 0x32,0x38,0x33,0x38,0x32,0x38,0x33,0x39,
- 0x32,0x38,0x34,0x30,0x32,0x38,0x34,0x31,
- 0x32,0x38,0x34,0x32,0x32,0x38,0x34,0x33,
- 0x32,0x38,0x34,0x34,0x32,0x38,0x34,0x35,
- 0x32,0x38,0x34,0x36,0x32,0x38,0x34,0x37,
- 0x32,0x38,0x34,0x38,0x32,0x38,0x34,0x39,
- 0x32,0x38,0x35,0x30,0x32,0x38,0x35,0x31,
- 0x32,0x38,0x35,0x32,0x32,0x38,0x35,0x33,
- 0x32,0x38,0x35,0x34,0x32,0x38,0x35,0x35,
- 0x32,0x38,0x35,0x36,0x32,0x38,0x35,0x37,
- 0x32,0x38,0x35,0x38,0x32,0x38,0x35,0x39,
- 0x32,0x38,0x36,0x30,0x32,0x38,0x36,0x31,
- 0x32,0x38,0x36,0x32,0x32,0x38,0x36,0x33,
- 0x32,0x38,0x36,0x34,0x32,0x38,0x36,0x35,
- 0x32,0x38,0x36,0x36,0x32,0x38,0x36,0x37,
- 0x32,0x38,0x36,0x38,0x32,0x38,0x36,0x39,
- 0x32,0x38,0x37,0x30,0x32,0x38,0x37,0x31,
- 0x32,0x38,0x37,0x32,0x32,0x38,0x37,0x33,
- 0x32,0x38,0x37,0x34,0x32,0x38,0x37,0x35,
- 0x32,0x38,0x37,0x36,0x32,0x38,0x37,0x37,
- 0x32,0x38,0x37,0x38,0x32,0x38,0x37,0x39,
- 0x32,0x38,0x38,0x30,0x32,0x38,0x38,0x31,
- 0x32,0x38,0x38,0x32,0x32,0x38,0x38,0x33,
- 0x32,0x38,0x38,0x34,0x32,0x38,0x38,0x35,
- 0x32,0x38,0x38,0x36,0x32,0x38,0x38,0x37,
- 0x32,0x38,0x38,0x38,0x32,0x38,0x38,0x39,
- 0x32,0x38,0x39,0x30,0x32,0x38,0x39,0x31,
- 0x32,0x38,0x39,0x32,0x32,0x38,0x39,0x33,
- 0x32,0x38,0x39,0x34,0x32,0x38,0x39,0x35,
- 0x32,0x38,0x39,0x36,0x32,0x38,0x39,0x37,
- 0x32,0x38,0x39,0x38,0x32,0x38,0x39,0x39,
- 0x32,0x39,0x30,0x30,0x32,0x39,0x30,0x31,
- 0x32,0x39,0x30,0x32,0x32,0x39,0x30,0x33,
- 0x32,0x39,0x30,0x34,0x32,0x39,0x30,0x35,
- 0x32,0x39,0x30,0x36,0x32,0x39,0x30,0x37,
- 0x32,0x39,0x30,0x38,0x32,0x39,0x30,0x39,
- 0x32,0x39,0x31,0x30,0x32,0x39,0x31,0x31,
- 0x32,0x39,0x31,0x32,0x32,0x39,0x31,0x33,
- 0x32,0x39,0x31,0x34,0x32,0x39,0x31,0x35,
- 0x32,0x39,0x31,0x36,0x32,0x39,0x31,0x37,
- 0x32,0x39,0x31,0x38,0x32,0x39,0x31,0x39,
- 0x32,0x39,0x32,0x30,0x32,0x39,0x32,0x31,
- 0x32,0x39,0x32,0x32,0x32,0x39,0x32,0x33,
- 0x32,0x39,0x32,0x34,0x32,0x39,0x32,0x35,
- 0x32,0x39,0x32,0x36,0x32,0x39,0x32,0x37,
- 0x32,0x39,0x32,0x38,0x32,0x39,0x32,0x39,
- 0x32,0x39,0x33,0x30,0x32,0x39,0x33,0x31,
- 0x32,0x39,0x33,0x32,0x32,0x39,0x33,0x33,
- 0x32,0x39,0x33,0x34,0x32,0x39,0x33,0x35,
- 0x32,0x39,0x33,0x36,0x32,0x39,0x33,0x37,
- 0x32,0x39,0x33,0x38,0x32,0x39,0x33,0x39,
- 0x32,0x39,0x34,0x30,0x32,0x39,0x34,0x31,
- 0x32,0x39,0x34,0x32,0x32,0x39,0x34,0x33,
- 0x32,0x39,0x34,0x34,0x32,0x39,0x34,0x35,
- 0x32,0x39,0x34,0x36,0x32,0x39,0x34,0x37,
- 0x32,0x39,0x34,0x38,0x32,0x39,0x34,0x39,
- 0x32,0x39,0x35,0x30,0x32,0x39,0x35,0x31,
- 0x32,0x39,0x35,0x32,0x32,0x39,0x35,0x33,
- 0x32,0x39,0x35,0x34,0x32,0x39,0x35,0x35,
- 0x32,0x39,0x35,0x36,0x32,0x39,0x35,0x37,
- 0x32,0x39,0x35,0x38,0x32,0x39,0x35,0x39,
- 0x32,0x39,0x36,0x30,0x32,0x39,0x36,0x31,
- 0x32,0x39,0x36,0x32,0x32,0x39,0x36,0x33,
- 0x32,0x39,0x36,0x34,0x32,0x39,0x36,0x35,
- 0x32,0x39,0x36,0x36,0x32,0x39,0x36,0x37,
- 0x32,0x39,0x36,0x38,0x32,0x39,0x36,0x39,
- 0x32,0x39,0x37,0x30,0x32,0x39,0x37,0x31,
- 0x32,0x39,0x37,0x32,0x32,0x39,0x37,0x33,
- 0x32,0x39,0x37,0x34,0x32,0x39,0x37,0x35,
- 0x32,0x39,0x37,0x36,0x32,0x39,0x37,0x37,
- 0x32,0x39,0x37,0x38,0x32,0x39,0x37,0x39,
- 0x32,0x39,0x38,0x30,0x32,0x39,0x38,0x31,
- 0x32,0x39,0x38,0x32,0x32,0x39,0x38,0x33,
- 0x32,0x39,0x38,0x34,0x32,0x39,0x38,0x35,
- 0x32,0x39,0x38,0x36,0x32,0x39,0x38,0x37,
- 0x32,0x39,0x38,0x38,0x32,0x39,0x38,0x39,
- 0x32,0x39,0x39,0x30,0x32,0x39,0x39,0x31,
- 0x32,0x39,0x39,0x32,0x32,0x39,0x39,0x33,
- 0x32,0x39,0x39,0x34,0x32,0x39,0x39,0x35,
- 0x32,0x39,0x39,0x36,0x32,0x39,0x39,0x37,
- 0x32,0x39,0x39,0x38,0x32,0x39,0x39,0x39,
- 0x33,0x30,0x30,0x30,0x33,0x30,0x30,0x31,
- 0x33,0x30,0x30,0x32,0x33,0x30,0x30,0x33,
- 0x33,0x30,0x30,0x34,0x33,0x30,0x30,0x35,
- 0x33,0x30,0x30,0x36,0x33,0x30,0x30,0x37,
- 0x33,0x30,0x30,0x38,0x33,0x30,0x30,0x39,
- 0x33,0x30,0x31,0x30,0x33,0x30,0x31,0x31,
- 0x33,0x30,0x31,0x32,0x33,0x30,0x31,0x33,
- 0x33,0x30,0x31,0x34,0x33,0x30,0x31,0x35,
- 0x33,0x30,0x31,0x36,0x33,0x30,0x31,0x37,
- 0x33,0x30,0x31,0x38,0x33,0x30,0x31,0x39,
- 0x33,0x30,0x32,0x30,0x33,0x30,0x32,0x31,
- 0x33,0x30,0x32,0x32,0x33,0x30,0x32,0x33,
- 0x33,0x30,0x32,0x34,0x33,0x30,0x32,0x35,
- 0x33,0x30,0x32,0x36,0x33,0x30,0x32,0x37,
- 0x33,0x30,0x32,0x38,0x33,0x30,0x32,0x39,
- 0x33,0x30,0x33,0x30,0x33,0x30,0x33,0x31,
- 0x33,0x30,0x33,0x32,0x33,0x30,0x33,0x33,
- 0x33,0x30,0x33,0x34,0x33,0x30,0x33,0x35,
- 0x33,0x30,0x33,0x36,0x33,0x30,0x33,0x37,
- 0x33,0x30,0x33,0x38,0x33,0x30,0x33,0x39,
- 0x33,0x30,0x34,0x30,0x33,0x30,0x34,0x31,
- 0x33,0x30,0x34,0x32,0x33,0x30,0x34,0x33,
- 0x33,0x30,0x34,0x34,0x33,0x30,0x34,0x35,
- 0x33,0x30,0x34,0x36,0x33,0x30,0x34,0x37,
- 0x33,0x30,0x34,0x38,0x33,0x30,0x34,0x39,
- 0x33,0x30,0x35,0x30,0x33,0x30,0x35,0x31,
- 0x33,0x30,0x35,0x32,0x33,0x30,0x35,0x33,
- 0x33,0x30,0x35,0x34,0x33,0x30,0x35,0x35,
- 0x33,0x30,0x35,0x36,0x33,0x30,0x35,0x37,
- 0x33,0x30,0x35,0x38,0x33,0x30,0x35,0x39,
- 0x33,0x30,0x36,0x30,0x33,0x30,0x36,0x31,
- 0x33,0x30,0x36,0x32,0x33,0x30,0x36,0x33,
- 0x33,0x30,0x36,0x34,0x33,0x30,0x36,0x35,
- 0x33,0x30,0x36,0x36,0x33,0x30,0x36,0x37,
- 0x33,0x30,0x36,0x38,0x33,0x30,0x36,0x39,
- 0x33,0x30,0x37,0x30,0x33,0x30,0x37,0x31,
- 0x33,0x30,0x37,0x32,0x33,0x30,0x37,0x33,
- 0x33,0x30,0x37,0x34,0x33,0x30,0x37,0x35,
- 0x33,0x30,0x37,0x36,0x33,0x30,0x37,0x37,
- 0x33,0x30,0x37,0x38,0x33,0x30,0x37,0x39,
- 0x33,0x30,0x38,0x30,0x33,0x30,0x38,0x31,
- 0x33,0x30,0x38,0x32,0x33,0x30,0x38,0x33,
- 0x33,0x30,0x38,0x34,0x33,0x30,0x38,0x35,
- 0x33,0x30,0x38,0x36,0x33,0x30,0x38,0x37,
- 0x33,0x30,0x38,0x38,0x33,0x30,0x38,0x39,
- 0x33,0x30,0x39,0x30,0x33,0x30,0x39,0x31,
- 0x33,0x30,0x39,0x32,0x33,0x30,0x39,0x33,
- 0x33,0x30,0x39,0x34,0x33,0x30,0x39,0x35,
- 0x33,0x30,0x39,0x36,0x33,0x30,0x39,0x37,
- 0x33,0x30,0x39,0x38,0x33,0x30,0x39,0x39,
- 0x33,0x31,0x30,0x30,0x33,0x31,0x30,0x31,
- 0x33,0x31,0x30,0x32,0x33,0x31,0x30,0x33,
- 0x33,0x31,0x30,0x34,0x33,0x31,0x30,0x35,
- 0x33,0x31,0x30,0x36,0x33,0x31,0x30,0x37,
- 0x33,0x31,0x30,0x38,0x33,0x31,0x30,0x39,
- 0x33,0x31,0x31,0x30,0x33,0x31,0x31,0x31,
- 0x33,0x31,0x31,0x32,0x33,0x31,0x31,0x33,
- 0x33,0x31,0x31,0x34,0x33,0x31,0x31,0x35,
- 0x33,0x31,0x31,0x36,0x33,0x31,0x31,0x37,
- 0x33,0x31,0x31,0x38,0x33,0x31,0x31,0x39,
- 0x33,0x31,0x32,0x30,0x33,0x31,0x32,0x31,
- 0x33,0x31,0x32,0x32,0x33,0x31,0x32,0x33,
- 0x33,0x31,0x32,0x34,0x33,0x31,0x32,0x35,
- 0x33,0x31,0x32,0x36,0x33,0x31,0x32,0x37,
- 0x33,0x31,0x32,0x38,0x33,0x31,0x32,0x39,
- 0x33,0x31,0x33,0x30,0x33,0x31,0x33,0x31,
- 0x33,0x31,0x33,0x32,0x33,0x31,0x33,0x33,
- 0x33,0x31,0x33,0x34,0x33,0x31,0x33,0x35,
- 0x33,0x31,0x33,0x36,0x33,0x31,0x33,0x37,
- 0x33,0x31,0x33,0x38,0x33,0x31,0x33,0x39,
- 0x33,0x31,0x34,0x30,0x33,0x31,0x34,0x31,
- 0x33,0x31,0x34,0x32,0x33,0x31,0x34,0x33,
- 0x33,0x31,0x34,0x34,0x33,0x31,0x34,0x35,
- 0x33,0x31,0x34,0x36,0x33,0x31,0x34,0x37,
- 0x33,0x31,0x34,0x38,0x33,0x31,0x34,0x39,
- 0x33,0x31,0x35,0x30,0x33,0x31,0x35,0x31,
- 0x33,0x31,0x35,0x32,0x33,0x31,0x35,0x33,
- 0x33,0x31,0x35,0x34,0x33,0x31,0x35,0x35,
- 0x33,0x31,0x35,0x36,0x33,0x31,0x35,0x37,
- 0x33,0x31,0x35,0x38,0x33,0x31,0x35,0x39,
- 0x33,0x31,0x36,0x30,0x33,0x31,0x36,0x31,
- 0x33,0x31,0x36,0x32,0x33,0x31,0x36,0x33,
- 0x33,0x31,0x36,0x34,0x33,0x31,0x36,0x35,
- 0x33,0x31,0x36,0x36,0x33,0x31,0x36,0x37,
- 0x33,0x31,0x36,0x38,0x33,0x31,0x36,0x39,
- 0x33,0x31,0x37,0x30,0x33,0x31,0x37,0x31,
- 0x33,0x31,0x37,0x32,0x33,0x31,0x37,0x33,
- 0x33,0x31,0x37,0x34,0x33,0x31,0x37,0x35,
- 0x33,0x31,0x37,0x36,0x33,0x31,0x37,0x37,
- 0x33,0x31,0x37,0x38,0x33,0x31,0x37,0x39,
- 0x33,0x31,0x38,0x30,0x33,0x31,0x38,0x31,
- 0x33,0x31,0x38,0x32,0x33,0x31,0x38,0x33,
- 0x33,0x31,0x38,0x34,0x33,0x31,0x38,0x35,
- 0x33,0x31,0x38,0x36,0x33,0x31,0x38,0x37,
- 0x33,0x31,0x38,0x38,0x33,0x31,0x38,0x39,
- 0x33,0x31,0x39,0x30,0x33,0x31,0x39,0x31,
- 0x33,0x31,0x39,0x32,0x33,0x31,0x39,0x33,
- 0x33,0x31,0x39,0x34,0x33,0x31,0x39,0x35,
- 0x33,0x31,0x39,0x36,0x33,0x31,0x39,0x37,
- 0x33,0x31,0x39,0x38,0x33,0x31,0x39,0x39,
- 0x33,0x32,0x30,0x30,0x33,0x32,0x30,0x31,
- 0x33,0x32,0x30,0x32,0x33,0x32,0x30,0x33,
- 0x33,0x32,0x30,0x34,0x33,0x32,0x30,0x35,
- 0x33,0x32,0x30,0x36,0x33,0x32,0x30,0x37,
- 0x33,0x32,0x30,0x38,0x33,0x32,0x30,0x39,
- 0x33,0x32,0x31,0x30,0x33,0x32,0x31,0x31,
- 0x33,0x32,0x31,0x32,0x33,0x32,0x31,0x33,
- 0x33,0x32,0x31,0x34,0x33,0x32,0x31,0x35,
- 0x33,0x32,0x31,0x36,0x33,0x32,0x31,0x37,
- 0x33,0x32,0x31,0x38,0x33,0x32,0x31,0x39,
- 0x33,0x32,0x32,0x30,0x33,0x32,0x32,0x31,
- 0x33,0x32,0x32,0x32,0x33,0x32,0x32,0x33,
- 0x33,0x32,0x32,0x34,0x33,0x32,0x32,0x35,
- 0x33,0x32,0x32,0x36,0x33,0x32,0x32,0x37,
- 0x33,0x32,0x32,0x38,0x33,0x32,0x32,0x39,
- 0x33,0x32,0x33,0x30,0x33,0x32,0x33,0x31,
- 0x33,0x32,0x33,0x32,0x33,0x32,0x33,0x33,
- 0x33,0x32,0x33,0x34,0x33,0x32,0x33,0x35,
- 0x33,0x32,0x33,0x36,0x33,0x32,0x33,0x37,
- 0x33,0x32,0x33,0x38,0x33,0x32,0x33,0x39,
- 0x33,0x32,0x34,0x30,0x33,0x32,0x34,0x31,
- 0x33,0x32,0x34,0x32,0x33,0x32,0x34,0x33,
- 0x33,0x32,0x34,0x34,0x33,0x32,0x34,0x35,
- 0x33,0x32,0x34,0x36,0x33,0x32,0x34,0x37,
- 0x33,0x32,0x34,0x38,0x33,0x32,0x34,0x39,
- 0x33,0x32,0x35,0x30,0x33,0x32,0x35,0x31,
- 0x33,0x32,0x35,0x32,0x33,0x32,0x35,0x33,
- 0x33,0x32,0x35,0x34,0x33,0x32,0x35,0x35,
- 0x33,0x32,0x35,0x36,0x33,0x32,0x35,0x37,
- 0x33,0x32,0x35,0x38,0x33,0x32,0x35,0x39,
- 0x33,0x32,0x36,0x30,0x33,0x32,0x36,0x31,
- 0x33,0x32,0x36,0x32,0x33,0x32,0x36,0x33,
- 0x33,0x32,0x36,0x34,0x33,0x32,0x36,0x35,
- 0x33,0x32,0x36,0x36,0x33,0x32,0x36,0x37,
- 0x33,0x32,0x36,0x38,0x33,0x32,0x36,0x39,
- 0x33,0x32,0x37,0x30,0x33,0x32,0x37,0x31,
- 0x33,0x32,0x37,0x32,0x33,0x32,0x37,0x33,
- 0x33,0x32,0x37,0x34,0x33,0x32,0x37,0x35,
- 0x33,0x32,0x37,0x36,0x33,0x32,0x37,0x37,
- 0x33,0x32,0x37,0x38,0x33,0x32,0x37,0x39,
- 0x33,0x32,0x38,0x30,0x33,0x32,0x38,0x31,
- 0x33,0x32,0x38,0x32,0x33,0x32,0x38,0x33,
- 0x33,0x32,0x38,0x34,0x33,0x32,0x38,0x35,
- 0x33,0x32,0x38,0x36,0x33,0x32,0x38,0x37,
- 0x33,0x32,0x38,0x38,0x33,0x32,0x38,0x39,
- 0x33,0x32,0x39,0x30,0x33,0x32,0x39,0x31,
- 0x33,0x32,0x39,0x32,0x33,0x32,0x39,0x33,
- 0x33,0x32,0x39,0x34,0x33,0x32,0x39,0x35,
- 0x33,0x32,0x39,0x36,0x33,0x32,0x39,0x37,
- 0x33,0x32,0x39,0x38,0x33,0x32,0x39,0x39,
- 0x33,0x33,0x30,0x30,0x33,0x33,0x30,0x31,
- 0x33,0x33,0x30,0x32,0x33,0x33,0x30,0x33,
- 0x33,0x33,0x30,0x34,0x33,0x33,0x30,0x35,
- 0x33,0x33,0x30,0x36,0x33,0x33,0x30,0x37,
- 0x33,0x33,0x30,0x38,0x33,0x33,0x30,0x39,
- 0x33,0x33,0x31,0x30,0x33,0x33,0x31,0x31,
- 0x33,0x33,0x31,0x32,0x33,0x33,0x31,0x33,
- 0x33,0x33,0x31,0x34,0x33,0x33,0x31,0x35,
- 0x33,0x33,0x31,0x36,0x33,0x33,0x31,0x37,
- 0x33,0x33,0x31,0x38,0x33,0x33,0x31,0x39,
- 0x33,0x33,0x32,0x30,0x33,0x33,0x32,0x31,
- 0x33,0x33,0x32,0x32,0x33,0x33,0x32,0x33,
- 0x33,0x33,0x32,0x34,0x33,0x33,0x32,0x35,
- 0x33,0x33,0x32,0x36,0x33,0x33,0x32,0x37,
- 0x33,0x33,0x32,0x38,0x33,0x33,0x32,0x39,
- 0x33,0x33,0x33,0x30,0x33,0x33,0x33,0x31,
- 0x33,0x33,0x33,0x32,0x33,0x33,0x33,0x33,
- 0x33,0x33,0x33,0x34,0x33,0x33,0x33,0x35,
- 0x33,0x33,0x33,0x36,0x33,0x33,0x33,0x37,
- 0x33,0x33,0x33,0x38,0x33,0x33,0x33,0x39,
- 0x33,0x33,0x34,0x30,0x33,0x33,0x34,0x31,
- 0x33,0x33,0x34,0x32,0x33,0x33,0x34,0x33,
- 0x33,0x33,0x34,0x34,0x33,0x33,0x34,0x35,
- 0x33,0x33,0x34,0x36,0x33,0x33,0x34,0x37,
- 0x33,0x33,0x34,0x38,0x33,0x33,0x34,0x39,
- 0x33,0x33,0x35,0x30,0x33,0x33,0x35,0x31,
- 0x33,0x33,0x35,0x32,0x33,0x33,0x35,0x33,
- 0x33,0x33,0x35,0x34,0x33,0x33,0x35,0x35,
- 0x33,0x33,0x35,0x36,0x33,0x33,0x35,0x37,
- 0x33,0x33,0x35,0x38,0x33,0x33,0x35,0x39,
- 0x33,0x33,0x36,0x30,0x33,0x33,0x36,0x31,
- 0x33,0x33,0x36,0x32,0x33,0x33,0x36,0x33,
- 0x33,0x33,0x36,0x34,0x33,0x33,0x36,0x35,
- 0x33,0x33,0x36,0x36,0x33,0x33,0x36,0x37,
- 0x33,0x33,0x36,0x38,0x33,0x33,0x36,0x39,
- 0x33,0x33,0x37,0x30,0x33,0x33,0x37,0x31,
- 0x33,0x33,0x37,0x32,0x33,0x33,0x37,0x33,
- 0x33,0x33,0x37,0x34,0x33,0x33,0x37,0x35,
- 0x33,0x33,0x37,0x36,0x33,0x33,0x37,0x37,
- 0x33,0x33,0x37,0x38,0x33,0x33,0x37,0x39,
- 0x33,0x33,0x38,0x30,0x33,0x33,0x38,0x31,
- 0x33,0x33,0x38,0x32,0x33,0x33,0x38,0x33,
- 0x33,0x33,0x38,0x34,0x33,0x33,0x38,0x35,
- 0x33,0x33,0x38,0x36,0x33,0x33,0x38,0x37,
- 0x33,0x33,0x38,0x38,0x33,0x33,0x38,0x39,
- 0x33,0x33,0x39,0x30,0x33,0x33,0x39,0x31,
- 0x33,0x33,0x39,0x32,0x33,0x33,0x39,0x33,
- 0x33,0x33,0x39,0x34,0x33,0x33,0x39,0x35,
- 0x33,0x33,0x39,0x36,0x33,0x33,0x39,0x37,
- 0x33,0x33,0x39,0x38,0x33,0x33,0x39,0x39,
- 0x33,0x34,0x30,0x30,0x33,0x34,0x30,0x31,
- 0x33,0x34,0x30,0x32,0x33,0x34,0x30,0x33,
- 0x33,0x34,0x30,0x34,0x33,0x34,0x30,0x35,
- 0x33,0x34,0x30,0x36,0x33,0x34,0x30,0x37,
- 0x33,0x34,0x30,0x38,0x33,0x34,0x30,0x39,
- 0x33,0x34,0x31,0x30,0x33,0x34,0x31,0x31,
- 0x33,0x34,0x31,0x32,0x33,0x34,0x31,0x33,
- 0x33,0x34,0x31,0x34,0x33,0x34,0x31,0x35,
- 0x33,0x34,0x31,0x36,0x33,0x34,0x31,0x37,
- 0x33,0x34,0x31,0x38,0x33,0x34,0x31,0x39,
- 0x33,0x34,0x32,0x30,0x33,0x34,0x32,0x31,
- 0x33,0x34,0x32,0x32,0x33,0x34,0x32,0x33,
- 0x33,0x34,0x32,0x34,0x33,0x34,0x32,0x35,
- 0x33,0x34,0x32,0x36,0x33,0x34,0x32,0x37,
- 0x33,0x34,0x32,0x38,0x33,0x34,0x32,0x39,
- 0x33,0x34,0x33,0x30,0x33,0x34,0x33,0x31,
- 0x33,0x34,0x33,0x32,0x33,0x34,0x33,0x33,
- 0x33,0x34,0x33,0x34,0x33,0x34,0x33,0x35,
- 0x33,0x34,0x33,0x36,0x33,0x34,0x33,0x37,
- 0x33,0x34,0x33,0x38,0x33,0x34,0x33,0x39,
- 0x33,0x34,0x34,0x30,0x33,0x34,0x34,0x31,
- 0x33,0x34,0x34,0x32,0x33,0x34,0x34,0x33,
- 0x33,0x34,0x34,0x34,0x33,0x34,0x34,0x35,
- 0x33,0x34,0x34,0x36,0x33,0x34,0x34,0x37,
- 0x33,0x34,0x34,0x38,0x33,0x34,0x34,0x39,
- 0x33,0x34,0x35,0x30,0x33,0x34,0x35,0x31,
- 0x33,0x34,0x35,0x32,0x33,0x34,0x35,0x33,
- 0x33,0x34,0x35,0x34,0x33,0x34,0x35,0x35,
- 0x33,0x34,0x35,0x36,0x33,0x34,0x35,0x37,
- 0x33,0x34,0x35,0x38,0x33,0x34,0x35,0x39,
- 0x33,0x34,0x36,0x30,0x33,0x34,0x36,0x31,
- 0x33,0x34,0x36,0x32,0x33,0x34,0x36,0x33,
- 0x33,0x34,0x36,0x34,0x33,0x34,0x36,0x35,
- 0x33,0x34,0x36,0x36,0x33,0x34,0x36,0x37,
- 0x33,0x34,0x36,0x38,0x33,0x34,0x36,0x39,
- 0x33,0x34,0x37,0x30,0x33,0x34,0x37,0x31,
- 0x33,0x34,0x37,0x32,0x33,0x34,0x37,0x33,
- 0x33,0x34,0x37,0x34,0x33,0x34,0x37,0x35,
- 0x33,0x34,0x37,0x36,0x33,0x34,0x37,0x37,
- 0x33,0x34,0x37,0x38,0x33,0x34,0x37,0x39,
- 0x33,0x34,0x38,0x30,0x33,0x34,0x38,0x31,
- 0x33,0x34,0x38,0x32,0x33,0x34,0x38,0x33,
- 0x33,0x34,0x38,0x34,0x33,0x34,0x38,0x35,
- 0x33,0x34,0x38,0x36,0x33,0x34,0x38,0x37,
- 0x33,0x34,0x38,0x38,0x33,0x34,0x38,0x39,
- 0x33,0x34,0x39,0x30,0x33,0x34,0x39,0x31,
- 0x33,0x34,0x39,0x32,0x33,0x34,0x39,0x33,
- 0x33,0x34,0x39,0x34,0x33,0x34,0x39,0x35,
- 0x33,0x34,0x39,0x36,0x33,0x34,0x39,0x37,
- 0x33,0x34,0x39,0x38,0x33,0x34,0x39,0x39,
- 0x33,0x35,0x30,0x30,0x33,0x35,0x30,0x31,
- 0x33,0x35,0x30,0x32,0x33,0x35,0x30,0x33,
- 0x33,0x35,0x30,0x34,0x33,0x35,0x30,0x35,
- 0x33,0x35,0x30,0x36,0x33,0x35,0x30,0x37,
- 0x33,0x35,0x30,0x38,0x33,0x35,0x30,0x39,
- 0x33,0x35,0x31,0x30,0x33,0x35,0x31,0x31,
- 0x33,0x35,0x31,0x32,0x33,0x35,0x31,0x33,
- 0x33,0x35,0x31,0x34,0x33,0x35,0x31,0x35,
- 0x33,0x35,0x31,0x36,0x33,0x35,0x31,0x37,
- 0x33,0x35,0x31,0x38,0x33,0x35,0x31,0x39,
- 0x33,0x35,0x32,0x30,0x33,0x35,0x32,0x31,
- 0x33,0x35,0x32,0x32,0x33,0x35,0x32,0x33,
- 0x33,0x35,0x32,0x34,0x33,0x35,0x32,0x35,
- 0x33,0x35,0x32,0x36,0x33,0x35,0x32,0x37,
- 0x33,0x35,0x32,0x38,0x33,0x35,0x32,0x39,
- 0x33,0x35,0x33,0x30,0x33,0x35,0x33,0x31,
- 0x33,0x35,0x33,0x32,0x33,0x35,0x33,0x33,
- 0x33,0x35,0x33,0x34,0x33,0x35,0x33,0x35,
- 0x33,0x35,0x33,0x36,0x33,0x35,0x33,0x37,
- 0x33,0x35,0x33,0x38,0x33,0x35,0x33,0x39,
- 0x33,0x35,0x34,0x30,0x33,0x35,0x34,0x31,
- 0x33,0x35,0x34,0x32,0x33,0x35,0x34,0x33,
- 0x33,0x35,0x34,0x34,0x33,0x35,0x34,0x35,
- 0x33,0x35,0x34,0x36,0x33,0x35,0x34,0x37,
- 0x33,0x35,0x34,0x38,0x33,0x35,0x34,0x39,
- 0x33,0x35,0x35,0x30,0x33,0x35,0x35,0x31,
- 0x33,0x35,0x35,0x32,0x33,0x35,0x35,0x33,
- 0x33,0x35,0x35,0x34,0x33,0x35,0x35,0x35,
- 0x33,0x35,0x35,0x36,0x33,0x35,0x35,0x37,
- 0x33,0x35,0x35,0x38,0x33,0x35,0x35,0x39,
- 0x33,0x35,0x36,0x30,0x33,0x35,0x36,0x31,
- 0x33,0x35,0x36,0x32,0x33,0x35,0x36,0x33,
- 0x33,0x35,0x36,0x34,0x33,0x35,0x36,0x35,
- 0x33,0x35,0x36,0x36,0x33,0x35,0x36,0x37,
- 0x33,0x35,0x36,0x38,0x33,0x35,0x36,0x39,
- 0x33,0x35,0x37,0x30,0x33,0x35,0x37,0x31,
- 0x33,0x35,0x37,0x32,0x33,0x35,0x37,0x33,
- 0x33,0x35,0x37,0x34,0x33,0x35,0x37,0x35,
- 0x33,0x35,0x37,0x36,0x33,0x35,0x37,0x37,
- 0x33,0x35,0x37,0x38,0x33,0x35,0x37,0x39,
- 0x33,0x35,0x38,0x30,0x33,0x35,0x38,0x31,
- 0x33,0x35,0x38,0x32,0x33,0x35,0x38,0x33,
- 0x33,0x35,0x38,0x34,0x33,0x35,0x38,0x35,
- 0x33,0x35,0x38,0x36,0x33,0x35,0x38,0x37,
- 0x33,0x35,0x38,0x38,0x33,0x35,0x38,0x39,
- 0x33,0x35,0x39,0x30,0x33,0x35,0x39,0x31,
- 0x33,0x35,0x39,0x32,0x33,0x35,0x39,0x33,
- 0x33,0x35,0x39,0x34,0x33,0x35,0x39,0x35,
- 0x33,0x35,0x39,0x36,0x33,0x35,0x39,0x37,
- 0x33,0x35,0x39,0x38,0x33,0x35,0x39,0x39,
- 0x33,0x36,0x30,0x30,0x33,0x36,0x30,0x31,
- 0x33,0x36,0x30,0x32,0x33,0x36,0x30,0x33,
- 0x33,0x36,0x30,0x34,0x33,0x36,0x30,0x35,
- 0x33,0x36,0x30,0x36,0x33,0x36,0x30,0x37,
- 0x33,0x36,0x30,0x38,0x33,0x36,0x30,0x39,
- 0x33,0x36,0x31,0x30,0x33,0x36,0x31,0x31,
- 0x33,0x36,0x31,0x32,0x33,0x36,0x31,0x33,
- 0x33,0x36,0x31,0x34,0x33,0x36,0x31,0x35,
- 0x33,0x36,0x31,0x36,0x33,0x36,0x31,0x37,
- 0x33,0x36,0x31,0x38,0x33,0x36,0x31,0x39,
- 0x33,0x36,0x32,0x30,0x33,0x36,0x32,0x31,
- 0x33,0x36,0x32,0x32,0x33,0x36,0x32,0x33,
- 0x33,0x36,0x32,0x34,0x33,0x36,0x32,0x35,
- 0x33,0x36,0x32,0x36,0x33,0x36,0x32,0x37,
- 0x33,0x36,0x32,0x38,0x33,0x36,0x32,0x39,
- 0x33,0x36,0x33,0x30,0x33,0x36,0x33,0x31,
- 0x33,0x36,0x33,0x32,0x33,0x36,0x33,0x33,
- 0x33,0x36,0x33,0x34,0x33,0x36,0x33,0x35,
- 0x33,0x36,0x33,0x36,0x33,0x36,0x33,0x37,
- 0x33,0x36,0x33,0x38,0x33,0x36,0x33,0x39,
- 0x33,0x36,0x34,0x30,0x33,0x36,0x34,0x31,
- 0x33,0x36,0x34,0x32,0x33,0x36,0x34,0x33,
- 0x33,0x36,0x34,0x34,0x33,0x36,0x34,0x35,
- 0x33,0x36,0x34,0x36,0x33,0x36,0x34,0x37,
- 0x33,0x36,0x34,0x38,0x33,0x36,0x34,0x39,
- 0x33,0x36,0x35,0x30,0x33,0x36,0x35,0x31,
- 0x33,0x36,0x35,0x32,0x33,0x36,0x35,0x33,
- 0x33,0x36,0x35,0x34,0x33,0x36,0x35,0x35,
- 0x33,0x36,0x35,0x36,0x33,0x36,0x35,0x37,
- 0x33,0x36,0x35,0x38,0x33,0x36,0x35,0x39,
- 0x33,0x36,0x36,0x30,0x33,0x36,0x36,0x31,
- 0x33,0x36,0x36,0x32,0x33,0x36,0x36,0x33,
- 0x33,0x36,0x36,0x34,0x33,0x36,0x36,0x35,
- 0x33,0x36,0x36,0x36,0x33,0x36,0x36,0x37,
- 0x33,0x36,0x36,0x38,0x33,0x36,0x36,0x39,
- 0x33,0x36,0x37,0x30,0x33,0x36,0x37,0x31,
- 0x33,0x36,0x37,0x32,0x33,0x36,0x37,0x33,
- 0x33,0x36,0x37,0x34,0x33,0x36,0x37,0x35,
- 0x33,0x36,0x37,0x36,0x33,0x36,0x37,0x37,
- 0x33,0x36,0x37,0x38,0x33,0x36,0x37,0x39,
- 0x33,0x36,0x38,0x30,0x33,0x36,0x38,0x31,
- 0x33,0x36,0x38,0x32,0x33,0x36,0x38,0x33,
- 0x33,0x36,0x38,0x34,0x33,0x36,0x38,0x35,
- 0x33,0x36,0x38,0x36,0x33,0x36,0x38,0x37,
- 0x33,0x36,0x38,0x38,0x33,0x36,0x38,0x39,
- 0x33,0x36,0x39,0x30,0x33,0x36,0x39,0x31,
- 0x33,0x36,0x39,0x32,0x33,0x36,0x39,0x33,
- 0x33,0x36,0x39,0x34,0x33,0x36,0x39,0x35,
- 0x33,0x36,0x39,0x36,0x33,0x36,0x39,0x37,
- 0x33,0x36,0x39,0x38,0x33,0x36,0x39,0x39,
- 0x33,0x37,0x30,0x30,0x33,0x37,0x30,0x31,
- 0x33,0x37,0x30,0x32,0x33,0x37,0x30,0x33,
- 0x33,0x37,0x30,0x34,0x33,0x37,0x30,0x35,
- 0x33,0x37,0x30,0x36,0x33,0x37,0x30,0x37,
- 0x33,0x37,0x30,0x38,0x33,0x37,0x30,0x39,
- 0x33,0x37,0x31,0x30,0x33,0x37,0x31,0x31,
- 0x33,0x37,0x31,0x32,0x33,0x37,0x31,0x33,
- 0x33,0x37,0x31,0x34,0x33,0x37,0x31,0x35,
- 0x33,0x37,0x31,0x36,0x33,0x37,0x31,0x37,
- 0x33,0x37,0x31,0x38,0x33,0x37,0x31,0x39,
- 0x33,0x37,0x32,0x30,0x33,0x37,0x32,0x31,
- 0x33,0x37,0x32,0x32,0x33,0x37,0x32,0x33,
- 0x33,0x37,0x32,0x34,0x33,0x37,0x32,0x35,
- 0x33,0x37,0x32,0x36,0x33,0x37,0x32,0x37,
- 0x33,0x37,0x32,0x38,0x33,0x37,0x32,0x39,
- 0x33,0x37,0x33,0x30,0x33,0x37,0x33,0x31,
- 0x33,0x37,0x33,0x32,0x33,0x37,0x33,0x33,
- 0x33,0x37,0x33,0x34,0x33,0x37,0x33,0x35,
- 0x33,0x37,0x33,0x36,0x33,0x37,0x33,0x37,
- 0x33,0x37,0x33,0x38,0x33,0x37,0x33,0x39,
- 0x33,0x37,0x34,0x30,0x33,0x37,0x34,0x31,
- 0x33,0x37,0x34,0x32,0x33,0x37,0x34,0x33,
- 0x33,0x37,0x34,0x34,0x33,0x37,0x34,0x35,
- 0x33,0x37,0x34,0x36,0x33,0x37,0x34,0x37,
- 0x33,0x37,0x34,0x38,0x33,0x37,0x34,0x39,
- 0x33,0x37,0x35,0x30,0x33,0x37,0x35,0x31,
- 0x33,0x37,0x35,0x32,0x33,0x37,0x35,0x33,
- 0x33,0x37,0x35,0x34,0x33,0x37,0x35,0x35,
- 0x33,0x37,0x35,0x36,0x33,0x37,0x35,0x37,
- 0x33,0x37,0x35,0x38,0x33,0x37,0x35,0x39,
- 0x33,0x37,0x36,0x30,0x33,0x37,0x36,0x31,
- 0x33,0x37,0x36,0x32,0x33,0x37,0x36,0x33,
- 0x33,0x37,0x36,0x34,0x33,0x37,0x36,0x35,
- 0x33,0x37,0x36,0x36,0x33,0x37,0x36,0x37,
- 0x33,0x37,0x36,0x38,0x33,0x37,0x36,0x39,
- 0x33,0x37,0x37,0x30,0x33,0x37,0x37,0x31,
- 0x33,0x37,0x37,0x32,0x33,0x37,0x37,0x33,
- 0x33,0x37,0x37,0x34,0x33,0x37,0x37,0x35,
- 0x33,0x37,0x37,0x36,0x33,0x37,0x37,0x37,
- 0x33,0x37,0x37,0x38,0x33,0x37,0x37,0x39,
- 0x33,0x37,0x38,0x30,0x33,0x37,0x38,0x31,
- 0x33,0x37,0x38,0x32,0x33,0x37,0x38,0x33,
- 0x33,0x37,0x38,0x34,0x33,0x37,0x38,0x35,
- 0x33,0x37,0x38,0x36,0x33,0x37,0x38,0x37,
- 0x33,0x37,0x38,0x38,0x33,0x37,0x38,0x39,
- 0x33,0x37,0x39,0x30,0x33,0x37,0x39,0x31,
- 0x33,0x37,0x39,0x32,0x33,0x37,0x39,0x33,
- 0x33,0x37,0x39,0x34,0x33,0x37,0x39,0x35,
- 0x33,0x37,0x39,0x36,0x33,0x37,0x39,0x37,
- 0x33,0x37,0x39,0x38,0x33,0x37,0x39,0x39,
- 0x33,0x38,0x30,0x30,0x33,0x38,0x30,0x31,
- 0x33,0x38,0x30,0x32,0x33,0x38,0x30,0x33,
- 0x33,0x38,0x30,0x34,0x33,0x38,0x30,0x35,
- 0x33,0x38,0x30,0x36,0x33,0x38,0x30,0x37,
- 0x33,0x38,0x30,0x38,0x33,0x38,0x30,0x39,
- 0x33,0x38,0x31,0x30,0x33,0x38,0x31,0x31,
- 0x33,0x38,0x31,0x32,0x33,0x38,0x31,0x33,
- 0x33,0x38,0x31,0x34,0x33,0x38,0x31,0x35,
- 0x33,0x38,0x31,0x36,0x33,0x38,0x31,0x37,
- 0x33,0x38,0x31,0x38,0x33,0x38,0x31,0x39,
- 0x33,0x38,0x32,0x30,0x33,0x38,0x32,0x31,
- 0x33,0x38,0x32,0x32,0x33,0x38,0x32,0x33,
- 0x33,0x38,0x32,0x34,0x33,0x38,0x32,0x35,
- 0x33,0x38,0x32,0x36,0x33,0x38,0x32,0x37,
- 0x33,0x38,0x32,0x38,0x33,0x38,0x32,0x39,
- 0x33,0x38,0x33,0x30,0x33,0x38,0x33,0x31,
- 0x33,0x38,0x33,0x32,0x33,0x38,0x33,0x33,
- 0x33,0x38,0x33,0x34,0x33,0x38,0x33,0x35,
- 0x33,0x38,0x33,0x36,0x33,0x38,0x33,0x37,
- 0x33,0x38,0x33,0x38,0x33,0x38,0x33,0x39,
- 0x33,0x38,0x34,0x30,0x33,0x38,0x34,0x31,
- 0x33,0x38,0x34,0x32,0x33,0x38,0x34,0x33,
- 0x33,0x38,0x34,0x34,0x33,0x38,0x34,0x35,
- 0x33,0x38,0x34,0x36,0x33,0x38,0x34,0x37,
- 0x33,0x38,0x34,0x38,0x33,0x38,0x34,0x39,
- 0x33,0x38,0x35,0x30,0x33,0x38,0x35,0x31,
- 0x33,0x38,0x35,0x32,0x33,0x38,0x35,0x33,
- 0x33,0x38,0x35,0x34,0x33,0x38,0x35,0x35,
- 0x33,0x38,0x35,0x36,0x33,0x38,0x35,0x37,
- 0x33,0x38,0x35,0x38,0x33,0x38,0x35,0x39,
- 0x33,0x38,0x36,0x30,0x33,0x38,0x36,0x31,
- 0x33,0x38,0x36,0x32,0x33,0x38,0x36,0x33,
- 0x33,0x38,0x36,0x34,0x33,0x38,0x36,0x35,
- 0x33,0x38,0x36,0x36,0x33,0x38,0x36,0x37,
- 0x33,0x38,0x36,0x38,0x33,0x38,0x36,0x39,
- 0x33,0x38,0x37,0x30,0x33,0x38,0x37,0x31,
- 0x33,0x38,0x37,0x32,0x33,0x38,0x37,0x33,
- 0x33,0x38,0x37,0x34,0x33,0x38,0x37,0x35,
- 0x33,0x38,0x37,0x36,0x33,0x38,0x37,0x37,
- 0x33,0x38,0x37,0x38,0x33,0x38,0x37,0x39,
- 0x33,0x38,0x38,0x30,0x33,0x38,0x38,0x31,
- 0x33,0x38,0x38,0x32,0x33,0x38,0x38,0x33,
- 0x33,0x38,0x38,0x34,0x33,0x38,0x38,0x35,
- 0x33,0x38,0x38,0x36,0x33,0x38,0x38,0x37,
- 0x33,0x38,0x38,0x38,0x33,0x38,0x38,0x39,
- 0x33,0x38,0x39,0x30,0x33,0x38,0x39,0x31,
- 0x33,0x38,0x39,0x32,0x33,0x38,0x39,0x33,
- 0x33,0x38,0x39,0x34,0x33,0x38,0x39,0x35,
- 0x33,0x38,0x39,0x36,0x33,0x38,0x39,0x37,
- 0x33,0x38,0x39,0x38,0x33,0x38,0x39,0x39,
- 0x33,0x39,0x30,0x30,0x33,0x39,0x30,0x31,
- 0x33,0x39,0x30,0x32,0x33,0x39,0x30,0x33,
- 0x33,0x39,0x30,0x34,0x33,0x39,0x30,0x35,
- 0x33,0x39,0x30,0x36,0x33,0x39,0x30,0x37,
- 0x33,0x39,0x30,0x38,0x33,0x39,0x30,0x39,
- 0x33,0x39,0x31,0x30,0x33,0x39,0x31,0x31,
- 0x33,0x39,0x31,0x32,0x33,0x39,0x31,0x33,
- 0x33,0x39,0x31,0x34,0x33,0x39,0x31,0x35,
- 0x33,0x39,0x31,0x36,0x33,0x39,0x31,0x37,
- 0x33,0x39,0x31,0x38,0x33,0x39,0x31,0x39,
- 0x33,0x39,0x32,0x30,0x33,0x39,0x32,0x31,
- 0x33,0x39,0x32,0x32,0x33,0x39,0x32,0x33,
- 0x33,0x39,0x32,0x34,0x33,0x39,0x32,0x35,
- 0x33,0x39,0x32,0x36,0x33,0x39,0x32,0x37,
- 0x33,0x39,0x32,0x38,0x33,0x39,0x32,0x39,
- 0x33,0x39,0x33,0x30,0x33,0x39,0x33,0x31,
- 0x33,0x39,0x33,0x32,0x33,0x39,0x33,0x33,
- 0x33,0x39,0x33,0x34,0x33,0x39,0x33,0x35,
- 0x33,0x39,0x33,0x36,0x33,0x39,0x33,0x37,
- 0x33,0x39,0x33,0x38,0x33,0x39,0x33,0x39,
- 0x33,0x39,0x34,0x30,0x33,0x39,0x34,0x31,
- 0x33,0x39,0x34,0x32,0x33,0x39,0x34,0x33,
- 0x33,0x39,0x34,0x34,0x33,0x39,0x34,0x35,
- 0x33,0x39,0x34,0x36,0x33,0x39,0x34,0x37,
- 0x33,0x39,0x34,0x38,0x33,0x39,0x34,0x39,
- 0x33,0x39,0x35,0x30,0x33,0x39,0x35,0x31,
- 0x33,0x39,0x35,0x32,0x33,0x39,0x35,0x33,
- 0x33,0x39,0x35,0x34,0x33,0x39,0x35,0x35,
- 0x33,0x39,0x35,0x36,0x33,0x39,0x35,0x37,
- 0x33,0x39,0x35,0x38,0x33,0x39,0x35,0x39,
- 0x33,0x39,0x36,0x30,0x33,0x39,0x36,0x31,
- 0x33,0x39,0x36,0x32,0x33,0x39,0x36,0x33,
- 0x33,0x39,0x36,0x34,0x33,0x39,0x36,0x35,
- 0x33,0x39,0x36,0x36,0x33,0x39,0x36,0x37,
- 0x33,0x39,0x36,0x38,0x33,0x39,0x36,0x39,
- 0x33,0x39,0x37,0x30,0x33,0x39,0x37,0x31,
- 0x33,0x39,0x37,0x32,0x33,0x39,0x37,0x33,
- 0x33,0x39,0x37,0x34,0x33,0x39,0x37,0x35,
- 0x33,0x39,0x37,0x36,0x33,0x39,0x37,0x37,
- 0x33,0x39,0x37,0x38,0x33,0x39,0x37,0x39,
- 0x33,0x39,0x38,0x30,0x33,0x39,0x38,0x31,
- 0x33,0x39,0x38,0x32,0x33,0x39,0x38,0x33,
- 0x33,0x39,0x38,0x34,0x33,0x39,0x38,0x35,
- 0x33,0x39,0x38,0x36,0x33,0x39,0x38,0x37,
- 0x33,0x39,0x38,0x38,0x33,0x39,0x38,0x39,
- 0x33,0x39,0x39,0x30,0x33,0x39,0x39,0x31,
- 0x33,0x39,0x39,0x32,0x33,0x39,0x39,0x33,
- 0x33,0x39,0x39,0x34,0x33,0x39,0x39,0x35,
- 0x33,0x39,0x39,0x36,0x33,0x39,0x39,0x37,
- 0x33,0x39,0x39,0x38,0x33,0x39,0x39,0x39,
- 0x34,0x30,0x30,0x30,0x34,0x30,0x30,0x31,
- 0x34,0x30,0x30,0x32,0x34,0x30,0x30,0x33,
- 0x34,0x30,0x30,0x34,0x34,0x30,0x30,0x35,
- 0x34,0x30,0x30,0x36,0x34,0x30,0x30,0x37,
- 0x34,0x30,0x30,0x38,0x34,0x30,0x30,0x39,
- 0x34,0x30,0x31,0x30,0x34,0x30,0x31,0x31,
- 0x34,0x30,0x31,0x32,0x34,0x30,0x31,0x33,
- 0x34,0x30,0x31,0x34,0x34,0x30,0x31,0x35,
- 0x34,0x30,0x31,0x36,0x34,0x30,0x31,0x37,
- 0x34,0x30,0x31,0x38,0x34,0x30,0x31,0x39,
- 0x34,0x30,0x32,0x30,0x34,0x30,0x32,0x31,
- 0x34,0x30,0x32,0x32,0x34,0x30,0x32,0x33,
- 0x34,0x30,0x32,0x34,0x34,0x30,0x32,0x35,
- 0x34,0x30,0x32,0x36,0x34,0x30,0x32,0x37,
- 0x34,0x30,0x32,0x38,0x34,0x30,0x32,0x39,
- 0x34,0x30,0x33,0x30,0x34,0x30,0x33,0x31,
- 0x34,0x30,0x33,0x32,0x34,0x30,0x33,0x33,
- 0x34,0x30,0x33,0x34,0x34,0x30,0x33,0x35,
- 0x34,0x30,0x33,0x36,0x34,0x30,0x33,0x37,
- 0x34,0x30,0x33,0x38,0x34,0x30,0x33,0x39,
- 0x34,0x30,0x34,0x30,0x34,0x30,0x34,0x31,
- 0x34,0x30,0x34,0x32,0x34,0x30,0x34,0x33,
- 0x34,0x30,0x34,0x34,0x34,0x30,0x34,0x35,
- 0x34,0x30,0x34,0x36,0x34,0x30,0x34,0x37,
- 0x34,0x30,0x34,0x38,0x34,0x30,0x34,0x39,
- 0x34,0x30,0x35,0x30,0x34,0x30,0x35,0x31,
- 0x34,0x30,0x35,0x32,0x34,0x30,0x35,0x33,
- 0x34,0x30,0x35,0x34,0x34,0x30,0x35,0x35,
- 0x34,0x30,0x35,0x36,0x34,0x30,0x35,0x37,
- 0x34,0x30,0x35,0x38,0x34,0x30,0x35,0x39,
- 0x34,0x30,0x36,0x30,0x34,0x30,0x36,0x31,
- 0x34,0x30,0x36,0x32,0x34,0x30,0x36,0x33,
- 0x34,0x30,0x36,0x34,0x34,0x30,0x36,0x35,
- 0x34,0x30,0x36,0x36,0x34,0x30,0x36,0x37,
- 0x34,0x30,0x36,0x38,0x34,0x30,0x36,0x39,
- 0x34,0x30,0x37,0x30,0x34,0x30,0x37,0x31,
- 0x34,0x30,0x37,0x32,0x34,0x30,0x37,0x33,
- 0x34,0x30,0x37,0x34,0x34,0x30,0x37,0x35,
- 0x34,0x30,0x37,0x36,0x34,0x30,0x37,0x37,
- 0x34,0x30,0x37,0x38,0x34,0x30,0x37,0x39,
- 0x34,0x30,0x38,0x30,0x34,0x30,0x38,0x31,
- 0x34,0x30,0x38,0x32,0x34,0x30,0x38,0x33,
- 0x34,0x30,0x38,0x34,0x34,0x30,0x38,0x35,
- 0x34,0x30,0x38,0x36,0x34,0x30,0x38,0x37,
- 0x34,0x30,0x38,0x38,0x34,0x30,0x38,0x39,
- 0x34,0x30,0x39,0x30,0x34,0x30,0x39,0x31,
- 0x34,0x30,0x39,0x32,0x34,0x30,0x39,0x33,
- 0x34,0x30,0x39,0x34,0x34,0x30,0x39,0x35};
-
- static const int32_t gDigitCount[] = {
- 1,1,1,1,1,1,1,1,
- 1,1,2,2,2,2,2,2,
- 2,2,2,2,2,2,2,2,
- 2,2,2,2,2,2,2,2,
- 2,2,2,2,2,2,2,2,
- 2,2,2,2,2,2,2,2,
- 2,2,2,2,2,2,2,2,
- 2,2,2,2,2,2,2,2,
- 2,2,2,2,2,2,2,2,
- 2,2,2,2,2,2,2,2,
- 2,2,2,2,2,2,2,2,
- 2,2,2,2,2,2,2,2,
- 2,2,2,2,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4};
-
-U_NAMESPACE_BEGIN
-
-
-IntDigitCountRange::IntDigitCountRange(int32_t min, int32_t max) {
- fMin = min < 0 ? 0 : min;
- fMax = max < fMin ? fMin : max;
-}
-
-int32_t
-IntDigitCountRange::pin(int32_t digitCount) const {
- return digitCount < fMin ? fMin : (digitCount < fMax ? digitCount : fMax);
-}
-
-int32_t
-SmallIntFormatter::estimateDigitCount(
- int32_t positiveValue, const IntDigitCountRange &range) {
- if (positiveValue >= gMaxFastInt) {
- return range.getMax();
- }
- return range.pin(gDigitCount[positiveValue]);
-}
-
-UBool
-SmallIntFormatter::canFormat(
- int32_t positiveValue, const IntDigitCountRange &range) {
- return (positiveValue < gMaxFastInt && range.getMin() <= 4);
-}
-
-UnicodeString &
-SmallIntFormatter::format(
- int32_t smallPositiveValue,
- const IntDigitCountRange &range,
- UnicodeString &appendTo) {
- int32_t digits = range.pin(gDigitCount[smallPositiveValue]);
-
- // Always emit at least '0'
- if (digits == 0) {
- return appendTo.append((UChar) 0x30);
- }
- return appendTo.append(gDigits, ((smallPositiveValue + 1) << 2) - digits, digits);
-}
-
-U_NAMESPACE_END
-
diff --git a/Build/source/libs/icu/icu-src/source/i18n/smallintformatter.h b/Build/source/libs/icu/icu-src/source/i18n/smallintformatter.h
deleted file mode 100644
index b309b55c180..00000000000
--- a/Build/source/libs/icu/icu-src/source/i18n/smallintformatter.h
+++ /dev/null
@@ -1,90 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
-*******************************************************************************
-* Copyright (C) 2015, International Business Machines
-* Corporation and others. All Rights Reserved.
-*******************************************************************************
-* smallintformatter.h
-*
-* created on: 2015jan06
-* created by: Travis Keep
-*/
-
-#ifndef __SMALLINTFORMATTER_H__
-#define __SMALLINTFORMATTER_H__
-
-#include "unicode/uobject.h"
-#include "unicode/utypes.h"
-
-U_NAMESPACE_BEGIN
-
-class UnicodeString;
-
-/**
- * A representation an acceptable range of digit counts for integers.
- */
-class U_I18N_API IntDigitCountRange : public UMemory {
-public:
- /**
- * No constraints: 0 up to INT32_MAX
- */
- IntDigitCountRange() : fMin(0), fMax(INT32_MAX) { }
- IntDigitCountRange(int32_t min, int32_t max);
- int32_t pin(int32_t digitCount) const;
- int32_t getMax() const { return fMax; }
- int32_t getMin() const { return fMin; }
-private:
- int32_t fMin;
- int32_t fMax;
-};
-
-
-/**
- * A formatter for small, positive integers.
- */
-class U_I18N_API SmallIntFormatter : public UMemory {
-public:
- /**
- * Estimates the actual digit count needed to format positiveValue
- * using the given range of digit counts.
- * Returns a value that is at least the actual digit count needed.
- *
- * @param positiveValue the value to format
- * @param range the acceptable range of digit counts.
- */
- static int32_t estimateDigitCount(
- int32_t positiveValue, const IntDigitCountRange &range);
-
- /**
- * Returns TRUE if this class can format positiveValue using
- * the given range of digit counts.
- *
- * @param positiveValue the value to format
- * @param range the acceptable range of digit counts.
- */
- static UBool canFormat(
- int32_t positiveValue, const IntDigitCountRange &range);
-
- /**
- * Formats positiveValue using the given range of digit counts.
- * Always uses standard digits '0' through '9'. Formatted value is
- * left padded with '0' as necessary to achieve minimum digit count.
- * Does not produce any grouping separators or trailing decimal point.
- * Calling format to format a value with a particular digit count range
- * when canFormat indicates that the same value and digit count range
- * cannot be formatted results in undefined behavior.
- *
- * @param positiveValue the value to format
- * @param range the acceptable range of digit counts.
- */
- static UnicodeString &format(
- int32_t positiveValue,
- const IntDigitCountRange &range,
- UnicodeString &appendTo);
-
-};
-
-U_NAMESPACE_END
-
-#endif // __SMALLINTFORMATTER_H__
diff --git a/Build/source/libs/icu/icu-src/source/i18n/smpdtfmt.cpp b/Build/source/libs/icu/icu-src/source/i18n/smpdtfmt.cpp
index 27fbbd8f7a9..2bc8e49625f 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/smpdtfmt.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/smpdtfmt.cpp
@@ -53,6 +53,7 @@
#include "unicode/vtzone.h"
#include "unicode/udisplaycontext.h"
#include "unicode/brkiter.h"
+#include "unicode/rbnf.h"
#include "uresimp.h"
#include "olsontz.h"
#include "patternprops.h"
@@ -72,6 +73,7 @@
#include "cstr.h"
#include "dayperiodrules.h"
#include "tznames_impl.h" // ZONE_NAME_U16_MAX
+#include "number_utypes.h"
#if defined( U_DEBUG_CALSVC ) || defined (U_DEBUG_CAL)
#include <stdio.h>
@@ -242,9 +244,9 @@ SimpleDateFormat::NSOverride::~NSOverride() {
void SimpleDateFormat::NSOverride::free() {
NSOverride *cur = this;
while (cur) {
- NSOverride *next = cur->next;
+ NSOverride *next_temp = cur->next;
delete cur;
- cur = next;
+ cur = next_temp;
}
}
@@ -312,57 +314,6 @@ const NumberFormat *SimpleDateFormat::getNumberFormatByIndex(
return &(**fSharedNumberFormatters[index]);
}
-class SimpleDateFormatMutableNFNode {
- public:
- const NumberFormat *key;
- NumberFormat *value;
- SimpleDateFormatMutableNFNode()
- : key(NULL), value(NULL) { }
- ~SimpleDateFormatMutableNFNode() {
- delete value;
- }
- private:
- SimpleDateFormatMutableNFNode(const SimpleDateFormatMutableNFNode &);
- SimpleDateFormatMutableNFNode &operator=(const SimpleDateFormatMutableNFNode &);
-};
-
-// Single threaded cache of non const NumberFormats. Designed to be stack
-// allocated and used for a single format call.
-class SimpleDateFormatMutableNFs : public UMemory {
- public:
- SimpleDateFormatMutableNFs() {
- }
-
- // Returns a non-const clone of nf which can be safely modified.
- // Subsequent calls with same nf will return the same non-const clone.
- // This object maintains ownership of all returned non-const
- // NumberFormat objects. On memory allocation error returns NULL.
- // Caller must check for NULL return value.
- NumberFormat *get(const NumberFormat *nf) {
- if (nf == NULL) {
- return NULL;
- }
- int32_t idx = 0;
- while (nodes[idx].value) {
- if (nf == nodes[idx].key) {
- return nodes[idx].value;
- }
- ++idx;
- }
- U_ASSERT(idx < UDAT_FIELD_COUNT);
- nodes[idx].key = nf;
- nodes[idx].value = (NumberFormat *) nf->clone();
- return nodes[idx].value;
- }
- private:
- // +1 extra for sentinel. If each field had its own NumberFormat, this
- // cache would have to allocate UDAT_FIELD_COUNT mutable versions worst
- // case.
- SimpleDateFormatMutableNFNode nodes[UDAT_FIELD_COUNT + 1];
- SimpleDateFormatMutableNFs(const SimpleDateFormatMutableNFs &);
- SimpleDateFormatMutableNFs &operator=(const SimpleDateFormatMutableNFs &);
-};
-
//----------------------------------------------------------------------
SimpleDateFormat::~SimpleDateFormat()
@@ -374,6 +325,7 @@ SimpleDateFormat::~SimpleDateFormat()
if (fTimeZoneFormat) {
delete fTimeZoneFormat;
}
+ freeFastNumberFormatters();
#if !UCONFIG_NO_BREAK_ITERATION
delete fCapitalizationBrkIter;
@@ -659,6 +611,10 @@ SimpleDateFormat& SimpleDateFormat::operator=(const SimpleDateFormat& other)
}
}
+ UErrorCode localStatus = U_ZERO_ERROR;
+ freeFastNumberFormatters();
+ initFastNumberFormatters(localStatus);
+
return *this;
}
@@ -908,7 +864,8 @@ SimpleDateFormat::initialize(const Locale& locale,
fixNumberFormatForDates(*fNumberFormat);
//fNumberFormat->setLenient(TRUE); // Java uses a custom DateNumberFormat to format/parse
- initNumberFormatters(locale,status);
+ initNumberFormatters(locale, status);
+ initFastNumberFormatters(status);
}
else if (U_SUCCESS(status))
@@ -1023,11 +980,6 @@ SimpleDateFormat::_format(Calendar& cal, UnicodeString& appendTo,
int32_t fieldNum = 0;
UDisplayContext capitalizationContext = getContext(UDISPCTX_TYPE_CAPITALIZATION, status);
- // Create temporary cache of mutable number format objects. This way
- // subFormat won't have to clone the const NumberFormat for each field.
- // if several fields share the same NumberFormat, which will almost
- // always be the case, this is a big save.
- SimpleDateFormatMutableNFs mutableNFs;
// loop through the pattern string character by character
for (int32_t i = 0; i < fPattern.length() && U_SUCCESS(status); ++i) {
UChar ch = fPattern[i];
@@ -1035,7 +987,7 @@ SimpleDateFormat::_format(Calendar& cal, UnicodeString& appendTo,
// Use subFormat() to format a repeated pattern character
// when a different pattern or non-pattern character is seen
if (ch != prevCh && count > 0) {
- subFormat(appendTo, prevCh, count, capitalizationContext, fieldNum++, handler, *workCal, mutableNFs, status);
+ subFormat(appendTo, prevCh, count, capitalizationContext, fieldNum++, handler, *workCal, status);
count = 0;
}
if (ch == QUOTE) {
@@ -1062,7 +1014,7 @@ SimpleDateFormat::_format(Calendar& cal, UnicodeString& appendTo,
// Format the last item in the pattern, if any
if (count > 0) {
- subFormat(appendTo, prevCh, count, capitalizationContext, fieldNum++, handler, *workCal, mutableNFs, status);
+ subFormat(appendTo, prevCh, count, capitalizationContext, fieldNum++, handler, *workCal, status);
}
if (calClone != NULL) {
@@ -1257,6 +1209,43 @@ _appendSymbolWithMonthPattern(UnicodeString& dst, int32_t value, const UnicodeSt
}
//----------------------------------------------------------------------
+
+static number::LocalizedNumberFormatter*
+createFastFormatter(const DecimalFormat* df, int32_t minInt, int32_t maxInt) {
+ return new number::LocalizedNumberFormatter(
+ df->toNumberFormatter()
+ .integerWidth(number::IntegerWidth::zeroFillTo(minInt).truncateAt(maxInt)));
+}
+
+void SimpleDateFormat::initFastNumberFormatters(UErrorCode& status) {
+ if (U_FAILURE(status)) {
+ return;
+ }
+ auto* df = dynamic_cast<const DecimalFormat*>(fNumberFormat);
+ if (df == nullptr) {
+ return;
+ }
+ fFastNumberFormatters[SMPDTFMT_NF_1x10] = createFastFormatter(df, 1, 10);
+ fFastNumberFormatters[SMPDTFMT_NF_2x10] = createFastFormatter(df, 2, 10);
+ fFastNumberFormatters[SMPDTFMT_NF_3x10] = createFastFormatter(df, 3, 10);
+ fFastNumberFormatters[SMPDTFMT_NF_4x10] = createFastFormatter(df, 4, 10);
+ fFastNumberFormatters[SMPDTFMT_NF_2x2] = createFastFormatter(df, 2, 2);
+}
+
+void SimpleDateFormat::freeFastNumberFormatters() {
+ delete fFastNumberFormatters[SMPDTFMT_NF_1x10];
+ delete fFastNumberFormatters[SMPDTFMT_NF_2x10];
+ delete fFastNumberFormatters[SMPDTFMT_NF_3x10];
+ delete fFastNumberFormatters[SMPDTFMT_NF_4x10];
+ delete fFastNumberFormatters[SMPDTFMT_NF_2x2];
+ fFastNumberFormatters[SMPDTFMT_NF_1x10] = nullptr;
+ fFastNumberFormatters[SMPDTFMT_NF_2x10] = nullptr;
+ fFastNumberFormatters[SMPDTFMT_NF_3x10] = nullptr;
+ fFastNumberFormatters[SMPDTFMT_NF_4x10] = nullptr;
+ fFastNumberFormatters[SMPDTFMT_NF_2x2] = nullptr;
+}
+
+
void
SimpleDateFormat::initNumberFormatters(const Locale &locale,UErrorCode &status) {
if (U_FAILURE(status)) {
@@ -1315,15 +1304,15 @@ SimpleDateFormat::processOverrideString(const Locale &locale, const UnicodeStrin
int32_t nsNameHash = nsName.hashCode();
// See if the numbering system is in the override list, if not, then add it.
- NSOverride *cur = overrideList;
+ NSOverride *curr = overrideList;
const SharedNumberFormat *snf = NULL;
UBool found = FALSE;
- while ( cur && !found ) {
- if ( cur->hash == nsNameHash ) {
- snf = cur->snf;
+ while ( curr && !found ) {
+ if ( curr->hash == nsNameHash ) {
+ snf = curr->snf;
found = TRUE;
}
- cur = cur->next;
+ curr = curr->next;
}
if (!found) {
@@ -1406,7 +1395,6 @@ SimpleDateFormat::subFormat(UnicodeString &appendTo,
int32_t fieldNum,
FieldPositionHandler& handler,
Calendar& cal,
- SimpleDateFormatMutableNFs &mutableNFs,
UErrorCode& status) const
{
if (U_FAILURE(status)) {
@@ -1419,7 +1407,7 @@ SimpleDateFormat::subFormat(UnicodeString &appendTo,
UDateFormatField patternCharIndex = DateFormatSymbols::getPatternCharIndex(ch);
const int32_t maxIntCount = 10;
int32_t beginOffset = appendTo.length();
- NumberFormat *currentNumberFormat;
+ const NumberFormat *currentNumberFormat;
DateFormatSymbols::ECapitalizationContextUsageType capContextUsageType = DateFormatSymbols::kCapContextUsageOther;
UBool isHebrewCalendar = (uprv_strcmp(cal.getType(),"hebrew") == 0);
@@ -1444,9 +1432,9 @@ SimpleDateFormat::subFormat(UnicodeString &appendTo,
return;
}
- currentNumberFormat = mutableNFs.get(getNumberFormatByIndex(patternCharIndex));
+ currentNumberFormat = getNumberFormatByIndex(patternCharIndex);
if (currentNumberFormat == NULL) {
- status = U_MEMORY_ALLOCATION_ERROR;
+ status = U_INTERNAL_PROGRAM_ERROR;
return;
}
UnicodeString hebr("hebr", 4, US_INV);
@@ -1566,18 +1554,15 @@ SimpleDateFormat::subFormat(UnicodeString &appendTo,
case UDAT_FRACTIONAL_SECOND_FIELD:
// Fractional seconds left-justify
{
- currentNumberFormat->setMinimumIntegerDigits((count > 3) ? 3 : count);
- currentNumberFormat->setMaximumIntegerDigits(maxIntCount);
+ int32_t minDigits = (count > 3) ? 3 : count;
if (count == 1) {
value /= 100;
} else if (count == 2) {
value /= 10;
}
- FieldPosition p(FieldPosition::DONT_CARE);
- currentNumberFormat->format(value, appendTo, p);
+ zeroPaddingNumber(currentNumberFormat, appendTo, value, minDigits, maxIntCount);
if (count > 3) {
- currentNumberFormat->setMinimumIntegerDigits(count - 3);
- currentNumberFormat->format((int32_t)0, appendTo, p);
+ zeroPaddingNumber(currentNumberFormat, appendTo, 0, count - 3, maxIntCount);
}
}
break;
@@ -1695,100 +1680,101 @@ SimpleDateFormat::subFormat(UnicodeString &appendTo,
UnicodeString zoneString(zsbuf, 0, UPRV_LENGTHOF(zsbuf));
const TimeZone& tz = cal.getTimeZone();
UDate date = cal.getTime(status);
+ const TimeZoneFormat *tzfmt = tzFormat(status);
if (U_SUCCESS(status)) {
if (patternCharIndex == UDAT_TIMEZONE_FIELD) {
if (count < 4) {
// "z", "zz", "zzz"
- tzFormat()->format(UTZFMT_STYLE_SPECIFIC_SHORT, tz, date, zoneString);
+ tzfmt->format(UTZFMT_STYLE_SPECIFIC_SHORT, tz, date, zoneString);
capContextUsageType = DateFormatSymbols::kCapContextUsageMetazoneShort;
} else {
// "zzzz" or longer
- tzFormat()->format(UTZFMT_STYLE_SPECIFIC_LONG, tz, date, zoneString);
+ tzfmt->format(UTZFMT_STYLE_SPECIFIC_LONG, tz, date, zoneString);
capContextUsageType = DateFormatSymbols::kCapContextUsageMetazoneLong;
}
}
else if (patternCharIndex == UDAT_TIMEZONE_RFC_FIELD) {
if (count < 4) {
// "Z"
- tzFormat()->format(UTZFMT_STYLE_ISO_BASIC_LOCAL_FULL, tz, date, zoneString);
+ tzfmt->format(UTZFMT_STYLE_ISO_BASIC_LOCAL_FULL, tz, date, zoneString);
} else if (count == 5) {
// "ZZZZZ"
- tzFormat()->format(UTZFMT_STYLE_ISO_EXTENDED_FULL, tz, date, zoneString);
+ tzfmt->format(UTZFMT_STYLE_ISO_EXTENDED_FULL, tz, date, zoneString);
} else {
// "ZZ", "ZZZ", "ZZZZ"
- tzFormat()->format(UTZFMT_STYLE_LOCALIZED_GMT, tz, date, zoneString);
+ tzfmt->format(UTZFMT_STYLE_LOCALIZED_GMT, tz, date, zoneString);
}
}
else if (patternCharIndex == UDAT_TIMEZONE_GENERIC_FIELD) {
if (count == 1) {
// "v"
- tzFormat()->format(UTZFMT_STYLE_GENERIC_SHORT, tz, date, zoneString);
+ tzfmt->format(UTZFMT_STYLE_GENERIC_SHORT, tz, date, zoneString);
capContextUsageType = DateFormatSymbols::kCapContextUsageMetazoneShort;
} else if (count == 4) {
// "vvvv"
- tzFormat()->format(UTZFMT_STYLE_GENERIC_LONG, tz, date, zoneString);
+ tzfmt->format(UTZFMT_STYLE_GENERIC_LONG, tz, date, zoneString);
capContextUsageType = DateFormatSymbols::kCapContextUsageMetazoneLong;
}
}
else if (patternCharIndex == UDAT_TIMEZONE_SPECIAL_FIELD) {
if (count == 1) {
// "V"
- tzFormat()->format(UTZFMT_STYLE_ZONE_ID_SHORT, tz, date, zoneString);
+ tzfmt->format(UTZFMT_STYLE_ZONE_ID_SHORT, tz, date, zoneString);
} else if (count == 2) {
// "VV"
- tzFormat()->format(UTZFMT_STYLE_ZONE_ID, tz, date, zoneString);
+ tzfmt->format(UTZFMT_STYLE_ZONE_ID, tz, date, zoneString);
} else if (count == 3) {
// "VVV"
- tzFormat()->format(UTZFMT_STYLE_EXEMPLAR_LOCATION, tz, date, zoneString);
+ tzfmt->format(UTZFMT_STYLE_EXEMPLAR_LOCATION, tz, date, zoneString);
} else if (count == 4) {
// "VVVV"
- tzFormat()->format(UTZFMT_STYLE_GENERIC_LOCATION, tz, date, zoneString);
+ tzfmt->format(UTZFMT_STYLE_GENERIC_LOCATION, tz, date, zoneString);
capContextUsageType = DateFormatSymbols::kCapContextUsageZoneLong;
}
}
else if (patternCharIndex == UDAT_TIMEZONE_LOCALIZED_GMT_OFFSET_FIELD) {
if (count == 1) {
// "O"
- tzFormat()->format(UTZFMT_STYLE_LOCALIZED_GMT_SHORT, tz, date, zoneString);
+ tzfmt->format(UTZFMT_STYLE_LOCALIZED_GMT_SHORT, tz, date, zoneString);
} else if (count == 4) {
// "OOOO"
- tzFormat()->format(UTZFMT_STYLE_LOCALIZED_GMT, tz, date, zoneString);
+ tzfmt->format(UTZFMT_STYLE_LOCALIZED_GMT, tz, date, zoneString);
}
}
else if (patternCharIndex == UDAT_TIMEZONE_ISO_FIELD) {
if (count == 1) {
// "X"
- tzFormat()->format(UTZFMT_STYLE_ISO_BASIC_SHORT, tz, date, zoneString);
+ tzfmt->format(UTZFMT_STYLE_ISO_BASIC_SHORT, tz, date, zoneString);
} else if (count == 2) {
// "XX"
- tzFormat()->format(UTZFMT_STYLE_ISO_BASIC_FIXED, tz, date, zoneString);
+ tzfmt->format(UTZFMT_STYLE_ISO_BASIC_FIXED, tz, date, zoneString);
} else if (count == 3) {
// "XXX"
- tzFormat()->format(UTZFMT_STYLE_ISO_EXTENDED_FIXED, tz, date, zoneString);
+ tzfmt->format(UTZFMT_STYLE_ISO_EXTENDED_FIXED, tz, date, zoneString);
} else if (count == 4) {
// "XXXX"
- tzFormat()->format(UTZFMT_STYLE_ISO_BASIC_FULL, tz, date, zoneString);
+ tzfmt->format(UTZFMT_STYLE_ISO_BASIC_FULL, tz, date, zoneString);
} else if (count == 5) {
// "XXXXX"
- tzFormat()->format(UTZFMT_STYLE_ISO_EXTENDED_FULL, tz, date, zoneString);
+ tzfmt->format(UTZFMT_STYLE_ISO_EXTENDED_FULL, tz, date, zoneString);
}
}
else if (patternCharIndex == UDAT_TIMEZONE_ISO_LOCAL_FIELD) {
if (count == 1) {
// "x"
- tzFormat()->format(UTZFMT_STYLE_ISO_BASIC_LOCAL_SHORT, tz, date, zoneString);
+ tzfmt->format(UTZFMT_STYLE_ISO_BASIC_LOCAL_SHORT, tz, date, zoneString);
} else if (count == 2) {
// "xx"
- tzFormat()->format(UTZFMT_STYLE_ISO_BASIC_LOCAL_FIXED, tz, date, zoneString);
+ tzfmt->format(UTZFMT_STYLE_ISO_BASIC_LOCAL_FIXED, tz, date, zoneString);
} else if (count == 3) {
// "xxx"
- tzFormat()->format(UTZFMT_STYLE_ISO_EXTENDED_LOCAL_FIXED, tz, date, zoneString);
+ tzfmt->format(UTZFMT_STYLE_ISO_EXTENDED_LOCAL_FIXED, tz, date, zoneString);
} else if (count == 4) {
// "xxxx"
- tzFormat()->format(UTZFMT_STYLE_ISO_BASIC_LOCAL_FULL, tz, date, zoneString);
+ tzfmt->format(UTZFMT_STYLE_ISO_BASIC_LOCAL_FULL, tz, date, zoneString);
} else if (count == 5) {
// "xxxxx"
- tzFormat()->format(UTZFMT_STYLE_ISO_EXTENDED_LOCAL_FULL, tz, date, zoneString);
+ tzfmt->format(UTZFMT_STYLE_ISO_EXTENDED_LOCAL_FULL, tz, date, zoneString);
}
}
else {
@@ -1838,14 +1824,14 @@ SimpleDateFormat::subFormat(UnicodeString &appendTo,
// Stealing am/pm value to use as our array index.
// It works out: am/midnight are both 0, pm/noon are both 1,
// 12 am is 12 midnight, and 12 pm is 12 noon.
- int32_t value = cal.get(UCAL_AM_PM, status);
+ int32_t val = cal.get(UCAL_AM_PM, status);
if (count <= 3) {
- toAppend = &fSymbols->fAbbreviatedDayPeriods[value];
+ toAppend = &fSymbols->fAbbreviatedDayPeriods[val];
} else if (count == 4 || count > 5) {
- toAppend = &fSymbols->fWideDayPeriods[value];
+ toAppend = &fSymbols->fWideDayPeriods[val];
} else { // count == 5
- toAppend = &fSymbols->fNarrowDayPeriods[value];
+ toAppend = &fSymbols->fNarrowDayPeriods[val];
}
}
@@ -1855,7 +1841,7 @@ SimpleDateFormat::subFormat(UnicodeString &appendTo,
if (toAppend == NULL || toAppend->isBogus()) {
// Reformat with identical arguments except ch, now changed to 'a'.
subFormat(appendTo, 0x61, count, capitalizationContext, fieldNum,
- handler, cal, mutableNFs, status);
+ handler, cal, status);
} else {
appendTo += *toAppend;
}
@@ -1876,7 +1862,7 @@ SimpleDateFormat::subFormat(UnicodeString &appendTo,
// Data doesn't exist for the locale we're looking for.
// Falling back to am/pm.
subFormat(appendTo, 0x61, count, capitalizationContext, fieldNum,
- handler, cal, mutableNFs, status);
+ handler, cal, status);
break;
}
@@ -1947,7 +1933,7 @@ SimpleDateFormat::subFormat(UnicodeString &appendTo,
periodType == DayPeriodRules::DAYPERIOD_PM ||
toAppend->isBogus()) {
subFormat(appendTo, 0x61, count, capitalizationContext, fieldNum,
- handler, cal, mutableNFs, status);
+ handler, cal, status);
}
else {
appendTo += *toAppend;
@@ -2004,6 +1990,11 @@ void SimpleDateFormat::adoptNumberFormat(NumberFormat *formatToAdopt) {
freeSharedNumberFormatters(fSharedNumberFormatters);
fSharedNumberFormatters = NULL;
}
+
+ // Also re-compute the fast formatters.
+ UErrorCode localStatus = U_ZERO_ERROR;
+ freeFastNumberFormatters();
+ initFastNumberFormatters(localStatus);
}
void SimpleDateFormat::adoptNumberFormat(const UnicodeString& fields, NumberFormat *formatToAdopt, UErrorCode &status){
@@ -2055,16 +2046,58 @@ SimpleDateFormat::getNumberFormatForField(UChar field) const {
//----------------------------------------------------------------------
void
SimpleDateFormat::zeroPaddingNumber(
- NumberFormat *currentNumberFormat,
+ const NumberFormat *currentNumberFormat,
UnicodeString &appendTo,
int32_t value, int32_t minDigits, int32_t maxDigits) const
{
- if (currentNumberFormat!=NULL) {
+ const number::LocalizedNumberFormatter* fastFormatter = nullptr;
+ // NOTE: This uses the heuristic that these five min/max int settings account for the vast majority
+ // of SimpleDateFormat number formatting cases at the time of writing (ICU 62).
+ if (currentNumberFormat == fNumberFormat) {
+ if (maxDigits == 10) {
+ if (minDigits == 1) {
+ fastFormatter = fFastNumberFormatters[SMPDTFMT_NF_1x10];
+ } else if (minDigits == 2) {
+ fastFormatter = fFastNumberFormatters[SMPDTFMT_NF_2x10];
+ } else if (minDigits == 3) {
+ fastFormatter = fFastNumberFormatters[SMPDTFMT_NF_3x10];
+ } else if (minDigits == 4) {
+ fastFormatter = fFastNumberFormatters[SMPDTFMT_NF_4x10];
+ }
+ } else if (maxDigits == 2) {
+ if (minDigits == 2) {
+ fastFormatter = fFastNumberFormatters[SMPDTFMT_NF_2x2];
+ }
+ }
+ }
+ if (fastFormatter != nullptr) {
+ // Can use fast path
+ number::impl::UFormattedNumberData result;
+ result.quantity.setToInt(value);
+ UErrorCode localStatus = U_ZERO_ERROR;
+ fastFormatter->formatImpl(&result, localStatus);
+ if (U_FAILURE(localStatus)) {
+ return;
+ }
+ appendTo.append(result.string.toTempUnicodeString());
+ return;
+ }
+
+ // Check for RBNF (no clone necessary)
+ auto* rbnf = dynamic_cast<const RuleBasedNumberFormat*>(currentNumberFormat);
+ if (rbnf != nullptr) {
FieldPosition pos(FieldPosition::DONT_CARE);
+ rbnf->format(value, appendTo, pos); // 3rd arg is there to speed up processing
+ return;
+ }
- currentNumberFormat->setMinimumIntegerDigits(minDigits);
- currentNumberFormat->setMaximumIntegerDigits(maxDigits);
- currentNumberFormat->format(value, appendTo, pos); // 3rd arg is there to speed up processing
+ // Fall back to slow path (clone and mutate the NumberFormat)
+ if (currentNumberFormat != nullptr) {
+ FieldPosition pos(FieldPosition::DONT_CARE);
+ LocalPointer<NumberFormat> nf(dynamic_cast<NumberFormat*>(currentNumberFormat->clone()));
+ nf->setMinimumIntegerDigits(minDigits);
+ nf->setMaximumIntegerDigits(maxDigits);
+ nf->format(value, appendTo, pos); // 3rd arg is there to speed up processing
}
}
@@ -2131,7 +2164,6 @@ SimpleDateFormat::parse(const UnicodeString& text, Calendar& cal, ParsePosition&
int32_t saveHebrewMonth = -1;
int32_t count = 0;
UTimeZoneFormatTimeType tzTimeType = UTZFMT_TIME_TYPE_UNKNOWN;
- SimpleDateFormatMutableNFs mutableNFs;
// For parsing abutting numeric fields. 'abutPat' is the
// offset into 'pattern' of the first of 2 or more abutting
@@ -2225,7 +2257,7 @@ SimpleDateFormat::parse(const UnicodeString& text, Calendar& cal, ParsePosition&
}
pos = subParse(text, pos, ch, count,
- TRUE, FALSE, ambiguousYear, saveHebrewMonth, *workCal, i, numericLeapMonthFormatter, &tzTimeType, mutableNFs);
+ TRUE, FALSE, ambiguousYear, saveHebrewMonth, *workCal, i, numericLeapMonthFormatter, &tzTimeType);
// If the parse fails anywhere in the run, back up to the
// start of the run and retry.
@@ -2240,7 +2272,7 @@ SimpleDateFormat::parse(const UnicodeString& text, Calendar& cal, ParsePosition&
// fields.
else if (ch != 0x6C) { // pattern char 'l' (SMALL LETTER L) just gets ignored
int32_t s = subParse(text, pos, ch, count,
- FALSE, TRUE, ambiguousYear, saveHebrewMonth, *workCal, i, numericLeapMonthFormatter, &tzTimeType, mutableNFs, &dayPeriodInt);
+ FALSE, TRUE, ambiguousYear, saveHebrewMonth, *workCal, i, numericLeapMonthFormatter, &tzTimeType, &dayPeriodInt);
if (s == -pos-1) {
// era not present, in special cases allow this to continue
@@ -2249,10 +2281,10 @@ SimpleDateFormat::parse(const UnicodeString& text, Calendar& cal, ParsePosition&
if (i+1 < fPattern.length()) {
// move to next pattern character
- UChar ch = fPattern.charAt(i+1);
+ UChar c = fPattern.charAt(i+1);
// check for whitespace
- if (PatternProps::isWhiteSpace(ch)) {
+ if (PatternProps::isWhiteSpace(c)) {
i++;
// Advance over run in pattern
while ((i+1)<fPattern.length() &&
@@ -2858,7 +2890,7 @@ SimpleDateFormat::set2DigitYearStart(UDate d, UErrorCode& status)
*/
int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UChar ch, int32_t count,
UBool obeyCount, UBool allowNegative, UBool ambiguousYear[], int32_t& saveHebrewMonth, Calendar& cal,
- int32_t patLoc, MessageFormat * numericLeapMonthFormatter, UTimeZoneFormatTimeType *tzTimeType, SimpleDateFormatMutableNFs &mutableNFs,
+ int32_t patLoc, MessageFormat * numericLeapMonthFormatter, UTimeZoneFormatTimeType *tzTimeType,
int32_t *dayPeriod) const
{
Formattable number;
@@ -2868,7 +2900,7 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC
UErrorCode status = U_ZERO_ERROR;
ParsePosition pos(0);
UDateFormatField patternCharIndex = DateFormatSymbols::getPatternCharIndex(ch);
- NumberFormat *currentNumberFormat;
+ const NumberFormat *currentNumberFormat;
UnicodeString temp;
UBool gotNumber = FALSE;
@@ -2880,7 +2912,7 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC
return -start;
}
- currentNumberFormat = mutableNFs.get(getNumberFormatByIndex(patternCharIndex));
+ currentNumberFormat = getNumberFormatByIndex(patternCharIndex);
if (currentNumberFormat == NULL) {
return -start;
}
@@ -3130,8 +3162,8 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC
if (!strcmp(cal.getType(),"hebrew")) {
HebrewCalendar *hc = (HebrewCalendar*)&cal;
if (cal.isSet(UCAL_YEAR)) {
- UErrorCode status = U_ZERO_ERROR;
- if (!hc->isLeapYear(hc->get(UCAL_YEAR,status)) && value >= 6) {
+ UErrorCode monthStatus = U_ZERO_ERROR;
+ if (!hc->isLeapYear(hc->get(UCAL_YEAR, monthStatus)) && value >= 6) {
cal.set(UCAL_MONTH, value);
} else {
cal.set(UCAL_MONTH, value - 1);
@@ -3393,31 +3425,41 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC
case UDAT_TIMEZONE_FIELD: // 'z'
{
UTimeZoneFormatStyle style = (count < 4) ? UTZFMT_STYLE_SPECIFIC_SHORT : UTZFMT_STYLE_SPECIFIC_LONG;
- TimeZone *tz = tzFormat()->parse(style, text, pos, tzTimeType);
- if (tz != NULL) {
- cal.adoptTimeZone(tz);
- return pos.getIndex();
+ const TimeZoneFormat *tzfmt = tzFormat(status);
+ if (U_SUCCESS(status)) {
+ TimeZone *tz = tzfmt->parse(style, text, pos, tzTimeType);
+ if (tz != NULL) {
+ cal.adoptTimeZone(tz);
+ return pos.getIndex();
+ }
}
- }
+ return -start;
+ }
break;
case UDAT_TIMEZONE_RFC_FIELD: // 'Z'
{
UTimeZoneFormatStyle style = (count < 4) ?
UTZFMT_STYLE_ISO_BASIC_LOCAL_FULL : ((count == 5) ? UTZFMT_STYLE_ISO_EXTENDED_FULL: UTZFMT_STYLE_LOCALIZED_GMT);
- TimeZone *tz = tzFormat()->parse(style, text, pos, tzTimeType);
- if (tz != NULL) {
- cal.adoptTimeZone(tz);
- return pos.getIndex();
+ const TimeZoneFormat *tzfmt = tzFormat(status);
+ if (U_SUCCESS(status)) {
+ TimeZone *tz = tzfmt->parse(style, text, pos, tzTimeType);
+ if (tz != NULL) {
+ cal.adoptTimeZone(tz);
+ return pos.getIndex();
+ }
}
return -start;
}
case UDAT_TIMEZONE_GENERIC_FIELD: // 'v'
{
UTimeZoneFormatStyle style = (count < 4) ? UTZFMT_STYLE_GENERIC_SHORT : UTZFMT_STYLE_GENERIC_LONG;
- TimeZone *tz = tzFormat()->parse(style, text, pos, tzTimeType);
- if (tz != NULL) {
- cal.adoptTimeZone(tz);
- return pos.getIndex();
+ const TimeZoneFormat *tzfmt = tzFormat(status);
+ if (U_SUCCESS(status)) {
+ TimeZone *tz = tzfmt->parse(style, text, pos, tzTimeType);
+ if (tz != NULL) {
+ cal.adoptTimeZone(tz);
+ return pos.getIndex();
+ }
}
return -start;
}
@@ -3438,20 +3480,26 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC
style = UTZFMT_STYLE_GENERIC_LOCATION;
break;
}
- TimeZone *tz = tzFormat()->parse(style, text, pos, tzTimeType);
- if (tz != NULL) {
- cal.adoptTimeZone(tz);
- return pos.getIndex();
+ const TimeZoneFormat *tzfmt = tzFormat(status);
+ if (U_SUCCESS(status)) {
+ TimeZone *tz = tzfmt->parse(style, text, pos, tzTimeType);
+ if (tz != NULL) {
+ cal.adoptTimeZone(tz);
+ return pos.getIndex();
+ }
}
return -start;
}
case UDAT_TIMEZONE_LOCALIZED_GMT_OFFSET_FIELD: // 'O'
{
UTimeZoneFormatStyle style = (count < 4) ? UTZFMT_STYLE_LOCALIZED_GMT_SHORT : UTZFMT_STYLE_LOCALIZED_GMT;
- TimeZone *tz = tzFormat()->parse(style, text, pos, tzTimeType);
- if (tz != NULL) {
- cal.adoptTimeZone(tz);
- return pos.getIndex();
+ const TimeZoneFormat *tzfmt = tzFormat(status);
+ if (U_SUCCESS(status)) {
+ TimeZone *tz = tzfmt->parse(style, text, pos, tzTimeType);
+ if (tz != NULL) {
+ cal.adoptTimeZone(tz);
+ return pos.getIndex();
+ }
}
return -start;
}
@@ -3475,10 +3523,13 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC
style = UTZFMT_STYLE_ISO_EXTENDED_FULL;
break;
}
- TimeZone *tz = tzFormat()->parse(style, text, pos, tzTimeType);
- if (tz != NULL) {
- cal.adoptTimeZone(tz);
- return pos.getIndex();
+ const TimeZoneFormat *tzfmt = tzFormat(status);
+ if (U_SUCCESS(status)) {
+ TimeZone *tz = tzfmt->parse(style, text, pos, tzTimeType);
+ if (tz != NULL) {
+ cal.adoptTimeZone(tz);
+ return pos.getIndex();
+ }
}
return -start;
}
@@ -3502,10 +3553,13 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC
style = UTZFMT_STYLE_ISO_EXTENDED_LOCAL_FULL;
break;
}
- TimeZone *tz = tzFormat()->parse(style, text, pos, tzTimeType);
- if (tz != NULL) {
- cal.adoptTimeZone(tz);
- return pos.getIndex();
+ const TimeZoneFormat *tzfmt = tzFormat(status);
+ if (U_SUCCESS(status)) {
+ TimeZone *tz = tzfmt->parse(style, text, pos, tzTimeType);
+ if (tz != NULL) {
+ cal.adoptTimeZone(tz);
+ return pos.getIndex();
+ }
}
return -start;
}
@@ -3517,21 +3571,21 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC
static const UChar alt_sep = DateFormatSymbols::ALTERNATE_TIME_SEPARATOR;
// Try matching a time separator.
- int32_t count = 1;
+ int32_t count_sep = 1;
UnicodeString data[3];
fSymbols->getTimeSeparatorString(data[0]);
// Add the default, if different from the locale.
if (data[0].compare(&def_sep, 1) != 0) {
- data[count++].setTo(def_sep);
+ data[count_sep++].setTo(def_sep);
}
// If lenient, add also the alternate, if different from the locale.
if (isLenient() && data[0].compare(&alt_sep, 1) != 0) {
- data[count++].setTo(alt_sep);
+ data[count_sep++].setTo(alt_sep);
}
- return matchString(text, start, UCAL_FIELD_COUNT /* => nothing to set */, data, count, NULL, cal);
+ return matchString(text, start, UCAL_FIELD_COUNT /* => nothing to set */, data, count_sep, NULL, cal);
}
case UDAT_AM_PM_MIDNIGHT_NOON_FIELD:
@@ -3539,7 +3593,7 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC
U_ASSERT(dayPeriod != NULL);
int32_t ampmStart = subParse(text, start, 0x61, count,
obeyCount, allowNegative, ambiguousYear, saveHebrewMonth, cal,
- patLoc, numericLeapMonthFormatter, tzTimeType, mutableNFs);
+ patLoc, numericLeapMonthFormatter, tzTimeType);
if (ampmStart > 0) {
return ampmStart;
@@ -3620,7 +3674,7 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC
}
parseInt(*src, number, pos, allowNegative,currentNumberFormat);
if (pos.getIndex() != parseStart) {
- int32_t value = number.getLong();
+ int32_t val = number.getLong();
// Don't need suffix processing here (as in number processing at the beginning of the function);
// the new fields being handled as numeric values (month, weekdays, quarters) should not have suffixes.
@@ -3628,7 +3682,7 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC
if (!getBooleanAttribute(UDAT_PARSE_ALLOW_NUMERIC, status)) {
// Check the range of the value
int32_t bias = gFieldRangeBias[patternCharIndex];
- if (bias >= 0 && (value > cal.getMaximum(field) + bias || value < cal.getMinimum(field) + bias)) {
+ if (bias >= 0 && (val > cal.getMaximum(field) + bias || val < cal.getMinimum(field) + bias)) {
return -start;
}
}
@@ -3642,35 +3696,35 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC
if (!strcmp(cal.getType(),"hebrew")) {
HebrewCalendar *hc = (HebrewCalendar*)&cal;
if (cal.isSet(UCAL_YEAR)) {
- UErrorCode status = U_ZERO_ERROR;
- if (!hc->isLeapYear(hc->get(UCAL_YEAR,status)) && value >= 6) {
- cal.set(UCAL_MONTH, value);
+ UErrorCode monthStatus = U_ZERO_ERROR;
+ if (!hc->isLeapYear(hc->get(UCAL_YEAR, monthStatus)) && val >= 6) {
+ cal.set(UCAL_MONTH, val);
} else {
- cal.set(UCAL_MONTH, value - 1);
+ cal.set(UCAL_MONTH, val - 1);
}
} else {
- saveHebrewMonth = value;
+ saveHebrewMonth = val;
}
} else {
- cal.set(UCAL_MONTH, value - 1);
+ cal.set(UCAL_MONTH, val - 1);
}
break;
case UDAT_STANDALONE_MONTH_FIELD:
- cal.set(UCAL_MONTH, value - 1);
+ cal.set(UCAL_MONTH, val - 1);
break;
case UDAT_DOW_LOCAL_FIELD:
case UDAT_STANDALONE_DAY_FIELD:
- cal.set(UCAL_DOW_LOCAL, value);
+ cal.set(UCAL_DOW_LOCAL, val);
break;
case UDAT_QUARTER_FIELD:
case UDAT_STANDALONE_QUARTER_FIELD:
- cal.set(UCAL_MONTH, (value - 1) * 3);
+ cal.set(UCAL_MONTH, (val - 1) * 3);
break;
case UDAT_RELATED_YEAR_FIELD:
- cal.setRelatedYear(value);
+ cal.setRelatedYear(val);
break;
default:
- cal.set(field, value);
+ cal.set(field, val);
break;
}
return pos.getIndex();
@@ -3686,7 +3740,7 @@ void SimpleDateFormat::parseInt(const UnicodeString& text,
Formattable& number,
ParsePosition& pos,
UBool allowNegative,
- NumberFormat *fmt) const {
+ const NumberFormat *fmt) const {
parseInt(text, number, -1, pos, allowNegative,fmt);
}
@@ -3698,18 +3752,21 @@ void SimpleDateFormat::parseInt(const UnicodeString& text,
int32_t maxDigits,
ParsePosition& pos,
UBool allowNegative,
- NumberFormat *fmt) const {
+ const NumberFormat *fmt) const {
UnicodeString oldPrefix;
- DecimalFormat* df = NULL;
- if (!allowNegative && (df = dynamic_cast<DecimalFormat*>(fmt)) != NULL) {
- df->getNegativePrefix(oldPrefix);
+ auto* fmtAsDF = dynamic_cast<const DecimalFormat*>(fmt);
+ LocalPointer<DecimalFormat> df;
+ if (!allowNegative && fmtAsDF != nullptr) {
+ df.adoptInstead(dynamic_cast<DecimalFormat*>(fmtAsDF->clone()));
+ if (df.isNull()) {
+ // Memory allocation error
+ return;
+ }
df->setNegativePrefix(UnicodeString(TRUE, SUPPRESS_NEGATIVE_PREFIX, -1));
+ fmt = df.getAlias();
}
int32_t oldPos = pos.getIndex();
fmt->parse(text, number, pos);
- if (df != NULL) {
- df->setNegativePrefix(oldPrefix);
- }
if (maxDigits > 0) {
// adjust the result to fit into
@@ -3856,7 +3913,13 @@ SimpleDateFormat::setDateFormatSymbols(const DateFormatSymbols& newFormatSymbols
//----------------------------------------------------------------------
const TimeZoneFormat*
SimpleDateFormat::getTimeZoneFormat(void) const {
- return (const TimeZoneFormat*)tzFormat();
+ // TimeZoneFormat initialization might fail when out of memory.
+ // If we always initialize TimeZoneFormat instance, we can return
+ // such status there. For now, this implementation lazily instantiates
+ // a TimeZoneFormat for performance optimization reasons, but cannot
+ // propagate such error (probably just out of memory case) to the caller.
+ UErrorCode status = U_ZERO_ERROR;
+ return (const TimeZoneFormat*)tzFormat(status);
}
//----------------------------------------------------------------------
@@ -3908,7 +3971,7 @@ SimpleDateFormat::setContext(UDisplayContext value, UErrorCode& status)
if (U_SUCCESS(status)) {
if ( fCapitalizationBrkIter == NULL && (value==UDISPCTX_CAPITALIZATION_FOR_BEGINNING_OF_SENTENCE ||
value==UDISPCTX_CAPITALIZATION_FOR_UI_LIST_OR_MENU || value==UDISPCTX_CAPITALIZATION_FOR_STANDALONE) ) {
- UErrorCode status = U_ZERO_ERROR;
+ status = U_ZERO_ERROR;
fCapitalizationBrkIter = BreakIterator::createSentenceInstance(fLocale, status);
if (U_FAILURE(status)) {
delete fCapitalizationBrkIter;
@@ -4123,12 +4186,11 @@ SimpleDateFormat::skipUWhiteSpace(const UnicodeString& text, int32_t pos) const
// Lazy TimeZoneFormat instantiation, semantically const.
TimeZoneFormat *
-SimpleDateFormat::tzFormat() const {
+SimpleDateFormat::tzFormat(UErrorCode &status) const {
if (fTimeZoneFormat == NULL) {
umtx_lock(&LOCK);
{
if (fTimeZoneFormat == NULL) {
- UErrorCode status = U_ZERO_ERROR;
TimeZoneFormat *tzfmt = TimeZoneFormat::createInstance(fLocale, status);
if (U_FAILURE(status)) {
return NULL;
diff --git a/Build/source/libs/icu/icu-src/source/i18n/timezone.cpp b/Build/source/libs/icu/icu-src/source/i18n/timezone.cpp
index 113f61c61ea..234f52cc3dd 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/timezone.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/timezone.cpp
@@ -739,8 +739,7 @@ private:
len = mapLen;
}
- UBool getID(int32_t i) {
- UErrorCode ec = U_ZERO_ERROR;
+ UBool getID(int32_t i, UErrorCode& ec) {
int32_t idLen = 0;
const UChar* id = NULL;
UResourceBundle *top = ures_openDirect(0, kZONEINFO, &ec);
@@ -930,7 +929,7 @@ public:
virtual const UnicodeString* snext(UErrorCode& status) {
if (U_SUCCESS(status) && map != NULL && pos < len) {
- getID(map[pos]);
+ getID(map[pos], status);
++pos;
return &unistr;
}
@@ -1032,8 +1031,8 @@ TimeZone::getEquivalentID(const UnicodeString& id, int32_t index) {
UResourceBundle *ares = ures_getByKey(top, kNAMES, NULL, &ec); // dereference Zones section
if (U_SUCCESS(ec)) {
int32_t idLen = 0;
- const UChar* id = ures_getStringByIndex(ares, zone, &idLen, &ec);
- result.fastCopyFrom(UnicodeString(TRUE, id, idLen));
+ const UChar* id2 = ures_getStringByIndex(ares, zone, &idLen, &ec);
+ result.fastCopyFrom(UnicodeString(TRUE, id2, idLen));
U_DEBUG_TZ_MSG(("gei(%d) -> %d, len%d, %s\n", index, zone, result.length(), u_errorName(ec)));
}
ures_close(ares);
@@ -1200,7 +1199,7 @@ TimeZone::getDisplayName(UBool daylight, EDisplayType style, const Locale& local
{
UErrorCode status = U_ZERO_ERROR;
UDate date = Calendar::getNow();
- UTimeZoneFormatTimeType timeType;
+ UTimeZoneFormatTimeType timeType = UTZFMT_TIME_TYPE_UNKNOWN;
int32_t offset;
if (style == GENERIC_LOCATION || style == LONG_GENERIC || style == SHORT_GENERIC) {
@@ -1613,7 +1612,7 @@ TimeZone::getWindowsID(const UnicodeString& id, UnicodeString& winid, UErrorCode
end = tzids + len;
hasNext = FALSE;
}
- if (canonicalID.compare(start, end - start) == 0) {
+ if (canonicalID.compare(start, static_cast<int32_t>(end - start)) == 0) {
winid = UnicodeString(ures_getKey(winzone), -1 , US_INV);
found = TRUE;
break;
@@ -1674,7 +1673,7 @@ TimeZone::getIDForWindowsID(const UnicodeString& winid, const char* region, Unic
if (end == NULL) {
id.setTo(tzids, -1);
} else {
- id.setTo(tzids, end - tzids);
+ id.setTo(tzids, static_cast<int32_t>(end - tzids));
}
gotID = TRUE;
}
diff --git a/Build/source/libs/icu/icu-src/source/i18n/transreg.cpp b/Build/source/libs/icu/icu-src/source/i18n/transreg.cpp
index 36dcebe987d..1a96ad367f2 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/transreg.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/transreg.cpp
@@ -1330,12 +1330,12 @@ Transliterator* TransliteratorRegistry::instantiateEntry(const UnicodeString& ID
int32_t passNumber = 1;
for (int32_t i = 0; U_SUCCESS(status) && i < entry->u.dataVector->size(); i++) {
// TODO: Should passNumber be turned into a decimal-string representation (1 -> "1")?
- Transliterator* t = new RuleBasedTransliterator(UnicodeString(CompoundTransliterator::PASS_STRING) + UnicodeString(passNumber++),
+ Transliterator* tl = new RuleBasedTransliterator(UnicodeString(CompoundTransliterator::PASS_STRING) + UnicodeString(passNumber++),
(TransliterationRuleData*)(entry->u.dataVector->elementAt(i)), FALSE);
- if (t == 0)
+ if (tl == 0)
status = U_MEMORY_ALLOCATION_ERROR;
else
- rbts->addElement(t, status);
+ rbts->addElement(tl, status);
}
if (U_FAILURE(status)) {
delete rbts;
diff --git a/Build/source/libs/icu/icu-src/source/i18n/tzfmt.cpp b/Build/source/libs/icu/icu-src/source/i18n/tzfmt.cpp
index 3de84f42940..769977a3e31 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/tzfmt.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/tzfmt.cpp
@@ -2648,12 +2648,12 @@ TimeZoneFormat::checkAbuttingHoursAndMinutes() {
UVector *items = fGMTOffsetPatternItems[type];
for (int32_t i = 0; i < items->size(); i++) {
const GMTOffsetField* item = (GMTOffsetField*)items->elementAt(i);
- GMTOffsetField::FieldType type = item->getType();
- if (type != GMTOffsetField::TEXT) {
+ GMTOffsetField::FieldType fieldType = item->getType();
+ if (fieldType != GMTOffsetField::TEXT) {
if (afterH) {
fAbuttingOffsetHoursAndMinutes = TRUE;
break;
- } else if (type == GMTOffsetField::HOUR) {
+ } else if (fieldType == GMTOffsetField::HOUR) {
afterH = TRUE;
}
} else if (afterH) {
diff --git a/Build/source/libs/icu/icu-src/source/i18n/tzgnames.cpp b/Build/source/libs/icu/icu-src/source/i18n/tzgnames.cpp
index c2e685272e9..5f5b7db3022 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/tzgnames.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/tzgnames.cpp
@@ -407,7 +407,7 @@ TZGNCore::initialize(const Locale& locale, UErrorCode& status) {
// target region
const char* region = fLocale.getCountry();
- int32_t regionLen = uprv_strlen(region);
+ int32_t regionLen = static_cast<int32_t>(uprv_strlen(region));
if (regionLen == 0) {
char loc[ULOC_FULLNAME_CAPACITY];
uloc_addLikelySubtags(fLocale.getName(), loc, sizeof(loc), &status);
diff --git a/Build/source/libs/icu/icu-src/source/i18n/tznames.cpp b/Build/source/libs/icu/icu-src/source/i18n/tznames.cpp
index 689fdeb0915..5a79c22aacf 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/tznames.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/tznames.cpp
@@ -87,7 +87,7 @@ static void sweepCache() {
const UHashElement* elem;
double now = (double)uprv_getUTCtime();
- while ((elem = uhash_nextElement(gTimeZoneNamesCache, &pos))) {
+ while ((elem = uhash_nextElement(gTimeZoneNamesCache, &pos)) != 0) {
TimeZoneNamesCacheEntry *entry = (TimeZoneNamesCacheEntry *)elem->value.pointer;
if (entry->refCount <= 0 && (now - entry->lastAccess) > CACHE_EXPIRATION) {
// delete this entry
diff --git a/Build/source/libs/icu/icu-src/source/i18n/tznames_impl.cpp b/Build/source/libs/icu/icu-src/source/i18n/tznames_impl.cpp
index 7045f099516..7bfbc04e180 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/tznames_impl.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/tznames_impl.cpp
@@ -1285,7 +1285,7 @@ static void mergeTimeZoneKey(const UnicodeString& mzID, char* result) {
char mzIdChar[ZID_KEY_MAX + 1];
int32_t keyLen;
- int32_t prefixLen = uprv_strlen(gMZPrefix);
+ int32_t prefixLen = static_cast<int32_t>(uprv_strlen(gMZPrefix));
keyLen = mzID.extract(0, mzID.length(), mzIdChar, ZID_KEY_MAX + 1, US_INV);
uprv_memcpy((void *)result, (void *)gMZPrefix, prefixLen);
uprv_memcpy((void *)(result + prefixLen), (void *)mzIdChar, keyLen);
@@ -1453,7 +1453,7 @@ struct TimeZoneNamesImpl::ZoneStringsLoader : public ResourceSink {
virtual ~ZoneStringsLoader();
void* createKey(const char* key, UErrorCode& status) {
- int32_t len = sizeof(char) * (uprv_strlen(key) + 1);
+ int32_t len = sizeof(char) * (static_cast<int32_t>(uprv_strlen(key)) + 1);
char* newKey = (char*) uprv_malloc(len);
if (newKey == NULL) {
status = U_MEMORY_ALLOCATION_ERROR;
@@ -1469,7 +1469,7 @@ struct TimeZoneNamesImpl::ZoneStringsLoader : public ResourceSink {
}
UnicodeString mzIDFromKey(const char* key) {
- return UnicodeString(key + MZ_PREFIX_LEN, uprv_strlen(key) - MZ_PREFIX_LEN, US_INV);
+ return UnicodeString(key + MZ_PREFIX_LEN, static_cast<int32_t>(uprv_strlen(key)) - MZ_PREFIX_LEN, US_INV);
}
UnicodeString tzIDFromKey(const char* key) {
@@ -1944,8 +1944,8 @@ TZDBNameSearchHandler::handleMatch(int32_t matchLength, const CharacterNode *nod
// metazone mapping for "CST" is America_Central,
// but if region is one of CN/MO/TW, "CST" is parsed
// as metazone China (China Standard Time).
- for (int32_t i = 0; i < ninfo->nRegions; i++) {
- const char *region = ninfo->parseRegions[i];
+ for (int32_t j = 0; j < ninfo->nRegions; j++) {
+ const char *region = ninfo->parseRegions[j];
if (uprv_strcmp(fRegion, region) == 0) {
match = ninfo;
matchRegion = TRUE;
@@ -2059,7 +2059,7 @@ static void U_CALLCONV prepareFind(UErrorCode &status) {
const UnicodeString *mzID;
StringEnumeration *mzIDs = TimeZoneNamesImpl::_getAvailableMetaZoneIDs(status);
if (U_SUCCESS(status)) {
- while ((mzID = mzIDs->snext(status)) && U_SUCCESS(status)) {
+ while ((mzID = mzIDs->snext(status)) != 0 && U_SUCCESS(status)) {
const TZDBNames *names = TZDBTimeZoneNames::getMetaZoneNames(*mzID, status);
if (U_FAILURE(status)) {
break;
@@ -2128,7 +2128,7 @@ TZDBTimeZoneNames::TZDBTimeZoneNames(const Locale& locale)
: fLocale(locale) {
UBool useWorld = TRUE;
const char* region = fLocale.getCountry();
- int32_t regionLen = uprv_strlen(region);
+ int32_t regionLen = static_cast<int32_t>(uprv_strlen(region));
if (regionLen == 0) {
UErrorCode status = U_ZERO_ERROR;
char loc[ULOC_FULLNAME_CAPACITY];
diff --git a/Build/source/libs/icu/icu-src/source/i18n/ucln_in.h b/Build/source/libs/icu/icu-src/source/i18n/ucln_in.h
index 40a5c36d87a..4c13b9ffcb5 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/ucln_in.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/ucln_in.h
@@ -26,11 +26,13 @@ as the functions are suppose to be called.
It's usually best to have child dependencies called first. */
typedef enum ECleanupI18NType {
UCLN_I18N_START = -1,
+ UCLN_I18N_NUMBER_SKELETONS,
UCLN_I18N_CURRENCY_SPACING,
UCLN_I18N_SPOOF,
UCLN_I18N_SPOOFDATA,
UCLN_I18N_TRANSLITERATOR,
UCLN_I18N_REGEX,
+ UCLN_I18N_JAPANESE_CALENDAR,
UCLN_I18N_ISLAMIC_CALENDAR,
UCLN_I18N_CHINESE_CALENDAR,
UCLN_I18N_HEBREW_CALENDAR,
@@ -57,6 +59,7 @@ typedef enum ECleanupI18NType {
UCLN_I18N_GENDERINFO,
UCLN_I18N_CDFINFO,
UCLN_I18N_REGION,
+ UCLN_I18N_LIST_FORMATTER,
UCLN_I18N_COUNT /* This must be last */
} ECleanupI18NType;
diff --git a/Build/source/libs/icu/icu-src/source/i18n/ucol_res.cpp b/Build/source/libs/icu/icu-src/source/i18n/ucol_res.cpp
index 76975ecc01d..56ed5b3c19c 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/ucol_res.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/ucol_res.cpp
@@ -400,11 +400,11 @@ CollationLoader::loadFromData(UErrorCode &errorCode) {
// Try to fetch the optional rules string.
{
UErrorCode internalErrorCode = U_ZERO_ERROR;
- int32_t length;
- const UChar *s = ures_getStringByKey(data, "Sequence", &length,
+ int32_t len;
+ const UChar *s = ures_getStringByKey(data, "Sequence", &len,
&internalErrorCode);
if(U_SUCCESS(internalErrorCode)) {
- t->rules.setTo(TRUE, s, length);
+ t->rules.setTo(TRUE, s, len);
}
}
@@ -426,10 +426,10 @@ CollationLoader::loadFromData(UErrorCode &errorCode) {
LocalUResourceBundlePointer def(
ures_getByKeyWithFallback(actualBundle.getAlias(), "collations/default", NULL,
&internalErrorCode));
- int32_t length;
- const UChar *s = ures_getString(def.getAlias(), &length, &internalErrorCode);
- if(U_SUCCESS(internalErrorCode) && length < UPRV_LENGTHOF(defaultType)) {
- u_UCharsToChars(s, defaultType, length + 1);
+ int32_t len;
+ const UChar *s = ures_getString(def.getAlias(), &len, &internalErrorCode);
+ if(U_SUCCESS(internalErrorCode) && len < UPRV_LENGTHOF(defaultType)) {
+ u_UCharsToChars(s, defaultType, len + 1);
} else {
uprv_strcpy(defaultType, "standard");
}
diff --git a/Build/source/libs/icu/icu-src/source/i18n/udat.cpp b/Build/source/libs/icu/icu-src/source/i18n/udat.cpp
index 5e06dd6d069..b47e3219885 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/udat.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/udat.cpp
@@ -603,7 +603,7 @@ udat_getSymbols(const UDateFormat *fmt,
} else {
return -1;
}
- int32_t count;
+ int32_t count = 0;
const UnicodeString *res = NULL;
switch(type) {
diff --git a/Build/source/libs/icu/icu-src/source/common/ulistformatter.cpp b/Build/source/libs/icu/icu-src/source/i18n/ulistformatter.cpp
index c140c784b52..c140c784b52 100644
--- a/Build/source/libs/icu/icu-src/source/common/ulistformatter.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/ulistformatter.cpp
diff --git a/Build/source/libs/icu/icu-src/source/i18n/ulocdata.cpp b/Build/source/libs/icu/icu-src/source/i18n/ulocdata.cpp
index d406b8e8c37..7f4e7b9b116 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/ulocdata.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/ulocdata.cpp
@@ -372,7 +372,7 @@ ulocdata_getLocaleSeparator(ULocaleData *uld,
p1=u_strstr(separator, sub1);
if (p0!=NULL && p1!=NULL && p0<=p1) {
separator = (const UChar *)p0 + subLen;
- len = p1 - separator;
+ len = static_cast<int32_t>(p1 - separator);
/* Desired separator is no longer zero-terminated; handle that if necessary */
if (len < resultCapacity) {
u_strncpy(result, separator, len);
diff --git a/Build/source/libs/icu/icu-src/source/i18n/unicode/alphaindex.h b/Build/source/libs/icu/icu-src/source/i18n/unicode/alphaindex.h
index 1442f754e46..1c50ba217fc 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/unicode/alphaindex.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/unicode/alphaindex.h
@@ -266,6 +266,8 @@ public:
* Use getBucket() to get the bucket's properties.
*
* @param name the string to be sorted into an index bucket
+ * @param errorCode Error code, will be set with the reason if the
+ * operation fails.
* @return the bucket number for the name
* @stable ICU 51
*/
@@ -377,9 +379,10 @@ public:
/**
- * Get the default label used for abbreviated buckets <i>between</i> other index characters.
- * For example, consider the labels when Latin and Greek are used:
- * X Y Z ... &#x0391; &#x0392; &#x0393;.
+ * Get the default label used for abbreviated buckets *between* other index characters.
+ * For example, consider the labels when Latin (X Y Z) and Greek (Α Β Γ) are used:
+ *
+ * X Y Z ... Α Β Γ.
*
* @return inflow label
* @stable ICU 4.8
@@ -700,6 +703,7 @@ public:
/**
* A (name, data) pair, to be sorted by name into one of the index buckets.
* The user data is not used by the index implementation.
+ * \cond
* @internal
*/
struct Record: public UMemory {
@@ -708,6 +712,7 @@ public:
Record(const UnicodeString &name, const void *data);
~Record();
};
+ /** \endcond */
#endif /* U_HIDE_INTERNAL_API */
private:
diff --git a/Build/source/libs/icu/icu-src/source/i18n/unicode/calendar.h b/Build/source/libs/icu/icu-src/source/i18n/unicode/calendar.h
index 48021534b42..023cf053f25 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/unicode/calendar.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/unicode/calendar.h
@@ -52,83 +52,64 @@ typedef int32_t UFieldResolutionTable[12][8];
class BasicTimeZone;
/**
- * <code>Calendar</code> is an abstract base class for converting between
- * a <code>UDate</code> object and a set of integer fields such as
- * <code>YEAR</code>, <code>MONTH</code>, <code>DAY</code>, <code>HOUR</code>,
- * and so on. (A <code>UDate</code> object represents a specific instant in
+ * `Calendar` is an abstract base class for converting between
+ * a `UDate` object and a set of integer fields such as
+ * `YEAR`, `MONTH`, `DAY`, `HOUR`, and so on.
+ * (A `UDate` object represents a specific instant in
* time with millisecond precision. See UDate
- * for information about the <code>UDate</code> class.)
+ * for information about the `UDate` class.)
*
- * <p>
- * Subclasses of <code>Calendar</code> interpret a <code>UDate</code>
+ * Subclasses of `Calendar` interpret a `UDate`
* according to the rules of a specific calendar system.
- * The most commonly used subclass of <code>Calendar</code> is
- * <code>GregorianCalendar</code>. Other subclasses could represent
+ * The most commonly used subclass of `Calendar` is
+ * `GregorianCalendar`. Other subclasses could represent
* the various types of lunar calendars in use in many parts of the world.
*
- * <p>
- * <b>NOTE</b>: (ICU 2.6) The subclass interface should be considered unstable
- * - it WILL change.
+ * **NOTE**: (ICU 2.6) The subclass interface should be considered unstable -
+ * it WILL change.
*
- * <p>
- * Like other locale-sensitive classes, <code>Calendar</code> provides a
- * static method, <code>createInstance</code>, for getting a generally useful
- * object of this type. <code>Calendar</code>'s <code>createInstance</code> method
- * returns the appropriate <code>Calendar</code> subclass whose
+ * Like other locale-sensitive classes, `Calendar` provides a
+ * static method, `createInstance`, for getting a generally useful
+ * object of this type. `Calendar`'s `createInstance` method
+ * returns the appropriate `Calendar` subclass whose
* time fields have been initialized with the current date and time:
- * \htmlonly<blockquote>\endhtmlonly
- * <pre>
- * Calendar *rightNow = Calendar::createInstance(errCode);
- * </pre>
- * \htmlonly</blockquote>\endhtmlonly
*
- * <p>
- * A <code>Calendar</code> object can produce all the time field values
+ * Calendar *rightNow = Calendar::createInstance(errCode);
+ *
+ * A `Calendar` object can produce all the time field values
* needed to implement the date-time formatting for a particular language
* and calendar style (for example, Japanese-Gregorian, Japanese-Traditional).
*
- * <p>
- * When computing a <code>UDate</code> from time fields, some special circumstances
+ * When computing a `UDate` from time fields, some special circumstances
* may arise: there may be insufficient information to compute the
- * <code>UDate</code> (such as only year and month but no day in the month),
+ * `UDate` (such as only year and month but no day in the month),
* there may be inconsistent information (such as "Tuesday, July 15, 1996"
* -- July 15, 1996 is actually a Monday), or the input time might be ambiguous
* because of time zone transition.
*
- * <p>
- * <strong>Insufficient information.</strong> The calendar will use default
+ * **Insufficient information.** The calendar will use default
* information to specify the missing fields. This may vary by calendar; for
* the Gregorian calendar, the default for a field is the same as that of the
* start of the epoch: i.e., YEAR = 1970, MONTH = JANUARY, DATE = 1, etc.
*
- * <p>
- * <strong>Inconsistent information.</strong> If fields conflict, the calendar
+ * **Inconsistent information.** If fields conflict, the calendar
* will give preference to fields set more recently. For example, when
* determining the day, the calendar will look for one of the following
* combinations of fields. The most recent combination, as determined by the
* most recently set single field, will be used.
*
- * \htmlonly<blockquote>\endhtmlonly
- * <pre>
- * MONTH + DAY_OF_MONTH
- * MONTH + WEEK_OF_MONTH + DAY_OF_WEEK
- * MONTH + DAY_OF_WEEK_IN_MONTH + DAY_OF_WEEK
- * DAY_OF_YEAR
- * DAY_OF_WEEK + WEEK_OF_YEAR
- * </pre>
- * \htmlonly</blockquote>\endhtmlonly
+ * MONTH + DAY_OF_MONTH
+ * MONTH + WEEK_OF_MONTH + DAY_OF_WEEK
+ * MONTH + DAY_OF_WEEK_IN_MONTH + DAY_OF_WEEK
+ * DAY_OF_YEAR
+ * DAY_OF_WEEK + WEEK_OF_YEAR
*
* For the time of day:
*
- * \htmlonly<blockquote>\endhtmlonly
- * <pre>
- * HOUR_OF_DAY
- * AM_PM + HOUR
- * </pre>
- * \htmlonly</blockquote>\endhtmlonly
+ * HOUR_OF_DAY
+ * AM_PM + HOUR
*
- * <p>
- * <strong>Ambiguous Wall Clock Time.</strong> When time offset from UTC has
+ * **Ambiguous Wall Clock Time.** When time offset from UTC has
* changed, it produces an ambiguous time slot around the transition. For example,
* many US locations observe daylight saving time. On the date switching to daylight
* saving time in US, wall clock time jumps from 12:59 AM (standard) to 2:00 AM
@@ -138,64 +119,66 @@ class BasicTimeZone;
* In this example, 1:30 AM is interpreted as 1:30 AM standard time (non-exist),
* so the final result will be 2:30 AM daylight time.
*
- * <p>On the date switching back to standard time, wall clock time is moved back one
+ * On the date switching back to standard time, wall clock time is moved back one
* hour at 2:00 AM. So wall clock time from 1:00 AM to 1:59 AM occur twice. In this
* case, the ICU Calendar resolves the time using the UTC offset after the transition
* by default. For example, 1:30 AM on the date is resolved as 1:30 AM standard time.
*
- * <p>Ambiguous wall clock time resolution behaviors can be customized by Calendar APIs
+ * Ambiguous wall clock time resolution behaviors can be customized by Calendar APIs
* {@link #setRepeatedWallTimeOption} and {@link #setSkippedWallTimeOption}.
* These methods are available in ICU 49 or later versions.
*
- * <p>
- * <strong>Note:</strong> for some non-Gregorian calendars, different
+ * **Note:** for some non-Gregorian calendars, different
* fields may be necessary for complete disambiguation. For example, a full
- * specification of the historial Arabic astronomical calendar requires year,
- * month, day-of-month <em>and</em> day-of-week in some cases.
+ * specification of the historical Arabic astronomical calendar requires year,
+ * month, day-of-month *and* day-of-week in some cases.
*
- * <p>
- * <strong>Note:</strong> There are certain possible ambiguities in
+ * **Note:** There are certain possible ambiguities in
* interpretation of certain singular times, which are resolved in the
* following ways:
- * <ol>
- * <li> 24:00:00 "belongs" to the following day. That is,
- * 23:59 on Dec 31, 1969 &lt; 24:00 on Jan 1, 1970 &lt; 24:01:00 on Jan 1, 1970
*
- * <li> Although historically not precise, midnight also belongs to "am",
- * and noon belongs to "pm", so on the same day,
- * 12:00 am (midnight) &lt; 12:01 am, and 12:00 pm (noon) &lt; 12:01 pm
- * </ol>
+ * 1. 24:00:00 "belongs" to the following day. That is,
+ * 23:59 on Dec 31, 1969 < 24:00 on Jan 1, 1970 < 24:01:00 on Jan 1, 1970
+ * 2. Although historically not precise, midnight also belongs to "am",
+ * and noon belongs to "pm", so on the same day,
+ * 12:00 am (midnight) < 12:01 am, and 12:00 pm (noon) < 12:01 pm
*
- * <p>
* The date or time format strings are not part of the definition of a
* calendar, as those must be modifiable or overridable by the user at
- * runtime. Use {@link DateFormat}
- * to format dates.
+ * runtime. Use `DateFormat` to format dates.
*
- * <p>
- * <code>Calendar</code> provides an API for field "rolling", where fields
+ * `Calendar` provides an API for field "rolling", where fields
* can be incremented or decremented, but wrap around. For example, rolling the
- * month up in the date <code>December 12, <b>1996</b></code> results in
- * <code>January 12, <b>1996</b></code>.
+ * month up in the date December 12, **1996** results in
+ * January 12, **1996**.
*
- * <p>
- * <code>Calendar</code> also provides a date arithmetic function for
+ * `Calendar` also provides a date arithmetic function for
* adding the specified (signed) amount of time to a particular time field.
- * For example, subtracting 5 days from the date <code>September 12, 1996</code>
- * results in <code>September 7, 1996</code>.
+ * For example, subtracting 5 days from the date `September 12, 1996`
+ * results in `September 7, 1996`.
*
- * <p><big><b>Supported range</b></big>
+ * ***Supported range***
*
- * <p>The allowable range of <code>Calendar</code> has been
- * narrowed. <code>GregorianCalendar</code> used to attempt to support
- * the range of dates with millisecond values from
- * <code>Long.MIN_VALUE</code> to <code>Long.MAX_VALUE</code>.
- * The new <code>Calendar</code> protocol specifies the
+ * The allowable range of `Calendar` has been narrowed. `GregorianCalendar` used
+ * to attempt to support the range of dates with millisecond values from
+ * `Long.MIN_VALUE` to `Long.MAX_VALUE`. The new `Calendar` protocol specifies the
* maximum range of supportable dates as those having Julian day numbers
- * of <code>-0x7F000000</code> to <code>+0x7F000000</code>. This
- * corresponds to years from ~5,800,000 BCE to ~5,800,000 CE. Programmers
- * should use the protected constants in <code>Calendar</code> to
- * specify an extremely early or extremely late date.</p>
+ * of `-0x7F000000` to `+0x7F000000`. This corresponds to years from ~5,800,000 BCE
+ * to ~5,800,000 CE. Programmers should use the protected constants in `Calendar` to
+ * specify an extremely early or extremely late date.
+ *
+ * <p>
+ * The Japanese calendar uses a combination of era name and year number.
+ * When an emperor of Japan abdicates and a new emperor ascends the throne,
+ * a new era is declared and year number is reset to 1. Even if the date of
+ * abdication is scheduled ahead of time, the new era name might not be
+ * announced until just before the date. In such case, ICU4C may include
+ * a start date of future era without actual era name, but not enabled
+ * by default. ICU4C users who want to test the behavior of the future era
+ * can enable the tentative era by:
+ * <ul>
+ * <li>Environment variable <code>ICU_ENABLE_TENTATIVE_ERA=true</code>.</li>
+ * </ul>
*
* @stable ICU 2.0
*/
@@ -903,7 +886,7 @@ public:
/**
* Sets the behavior for handling wall time repeating multiple times
* at negative time zone offset transitions. For example, 1:30 AM on
- * November 6, 2011 in US Eastern time (Ameirca/New_York) occurs twice;
+ * November 6, 2011 in US Eastern time (America/New_York) occurs twice;
* 1:30 AM EDT, then 1:30 AM EST one hour later. When <code>UCAL_WALLTIME_FIRST</code>
* is used, the wall time 1:30AM in this example will be interpreted as 1:30 AM EDT
* (first occurrence). When <code>UCAL_WALLTIME_LAST</code> is used, it will be
@@ -1718,9 +1701,7 @@ protected:
/**
* Validate a single field of this calendar. Subclasses should
* override this method to validate any calendar-specific fields.
- * Generic fields can be handled by
- * <code>Calendar::validateField()</code>.
- * @see #validateField(int, int, int, int&)
+ * Generic fields can be handled by `Calendar::validateField()`.
* @internal
*/
virtual void validateField(UCalendarDateFields field, UErrorCode &status);
@@ -2171,7 +2152,7 @@ private:
TimeZone* fZone;
/**
- * Option for rpeated wall time
+ * Option for repeated wall time
* @see #setRepeatedWallTimeOption
*/
UCalendarWallTimeOption fRepeatedWallTime;
@@ -2456,7 +2437,7 @@ private:
BasicTimeZone* getBasicTimeZone() const;
/**
- * Find the previous zone transtion near the given time.
+ * Find the previous zone transition near the given time.
* @param base The base time, inclusive
* @param transitionTime Receives the result time
* @param status The error status
diff --git a/Build/source/libs/icu/icu-src/source/i18n/unicode/coll.h b/Build/source/libs/icu/icu-src/source/i18n/unicode/coll.h
index d03570509ec..653434f54ca 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/unicode/coll.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/unicode/coll.h
@@ -235,16 +235,16 @@ public:
* Returns TRUE if "other" is the same as "this".
*
* The base class implementation returns TRUE if "other" has the same type/class as "this":
- * <code>typeid(*this) == typeid(other)</code>.
+ * `typeid(*this) == typeid(other)`.
*
* Subclass implementations should do something like the following:
- * <pre>
- * if (this == &other) { return TRUE; }
- * if (!Collator::operator==(other)) { return FALSE; } // not the same class
*
- * const MyCollator &o = (const MyCollator&)other;
- * (compare this vs. o's subclass fields)
- * </pre>
+ * if (this == &other) { return TRUE; }
+ * if (!Collator::operator==(other)) { return FALSE; } // not the same class
+ *
+ * const MyCollator &o = (const MyCollator&)other;
+ * (compare this vs. o's subclass fields)
+ *
* @param other Collator object to be compared
* @return TRUE if other is the same as this.
* @stable ICU 2.0
diff --git a/Build/source/libs/icu/icu-src/source/i18n/unicode/compactdecimalformat.h b/Build/source/libs/icu/icu-src/source/i18n/unicode/compactdecimalformat.h
index d682d2d0e74..9c1e9183f46 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/unicode/compactdecimalformat.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/unicode/compactdecimalformat.h
@@ -30,30 +30,31 @@ U_NAMESPACE_BEGIN
class PluralRules;
/**
- * <p><strong>IMPORTANT:</strong> New users are strongly encouraged to see if
+ * **IMPORTANT:** New users are strongly encouraged to see if
* numberformatter.h fits their use case. Although not deprecated, this header
* is provided for backwards compatibility only.
- * <hr/>
+ *
+ * -----------------------------------------------------------------------------
*
* The CompactDecimalFormat produces abbreviated numbers, suitable for display in
* environments will limited real estate. For example, 'Hits: 1.2B' instead of
* 'Hits: 1,200,000,000'. The format will be appropriate for the given language,
* such as "1,2 Mrd." for German.
- * <p>
+ *
* For numbers under 1000 trillion (under 10^15, such as 123,456,789,012,345),
* the result will be short for supported languages. However, the result may
* sometimes exceed 7 characters, such as when there are combining marks or thin
* characters. In such cases, the visual width in fonts should still be short.
- * <p>
+ *
* By default, there are 3 significant digits. After creation, if more than
* three significant digits are set (with setMaximumSignificantDigits), or if a
* fixed number of digits are set (with setMaximumIntegerDigits or
* setMaximumFractionDigits), then result may be wider.
- * <p>
+ *
* At this time, parsing is not supported, and will produce a U_UNSUPPORTED_ERROR.
* Resetting the pattern prefixes or suffixes is not supported; the method calls
* are ignored.
- * <p>
+ *
* @stable ICU 51
*/
class U_I18N_API CompactDecimalFormat : public DecimalFormat {
@@ -61,9 +62,9 @@ public:
/**
* Returns a compact decimal instance for specified locale.
- * <p>
- * <strong>NOTE:</strong> New users are strongly encouraged to use
- * {@link NumberFormatter} instead of NumberFormat.
+ *
+ * **NOTE:** New users are strongly encouraged to use
+ * `number::NumberFormatter` instead of NumberFormat.
* @param inLocale the given locale.
* @param style whether to use short or long style.
* @param status error code returned here.
@@ -84,7 +85,7 @@ public:
* Destructor.
* @stable ICU 51
*/
- virtual ~CompactDecimalFormat();
+ ~CompactDecimalFormat() U_OVERRIDE;
/**
* Assignment operator.
@@ -101,245 +102,21 @@ public:
* @return a polymorphic copy of this CompactDecimalFormat.
* @stable ICU 51
*/
- virtual Format* clone() const;
-
- /**
- * Return TRUE if the given Format objects are semantically equal.
- * Objects of different subclasses are considered unequal.
- *
- * @param other the object to be compared with.
- * @return TRUE if the given Format objects are semantically equal.
- * @stable ICU 51
- */
- virtual UBool operator==(const Format& other) const;
-
+ Format* clone() const U_OVERRIDE;
using DecimalFormat::format;
/**
- * Format a double or long number using base-10 representation.
- *
- * @param number The value to be formatted.
- * @param appendTo Output parameter to receive result.
- * Result is appended to existing contents.
- * @param pos On input: an alignment field, if desired.
- * On output: the offsets of the alignment field.
- * @return Reference to 'appendTo' parameter.
- * @stable ICU 51
- */
- virtual UnicodeString& format(double number,
- UnicodeString& appendTo,
- FieldPosition& pos) const;
-
- /**
- * Format a double or long number using base-10 representation.
- *
- * @param number The value to be formatted.
- * @param appendTo Output parameter to receive result.
- * Result is appended to existing contents.
- * @param pos On input: an alignment field, if desired.
- * On output: the offsets of the alignment field.
- * @param status
- * @return Reference to 'appendTo' parameter.
- * @internal
- */
- virtual UnicodeString& format(double number,
- UnicodeString& appendTo,
- FieldPosition& pos,
- UErrorCode &status) const;
-
- /**
- * Format a double or long number using base-10 representation.
- * Currently sets status to U_UNSUPPORTED_ERROR.
- *
- * @param number The value to be formatted.
- * @param appendTo Output parameter to receive result.
- * Result is appended to existing contents.
- * @param posIter On return, can be used to iterate over positions
- * of fields generated by this format call.
- * Can be NULL.
- * @param status Output param filled with success/failure status.
- * @return Reference to 'appendTo' parameter.
- * @internal
- */
- virtual UnicodeString& format(double number,
- UnicodeString& appendTo,
- FieldPositionIterator* posIter,
- UErrorCode& status) const;
-
- /**
- * Format a long number using base-10 representation.
- *
- * @param number The value to be formatted.
- * @param appendTo Output parameter to receive result.
- * Result is appended to existing contents.
- * @param pos On input: an alignment field, if desired.
- * On output: the offsets of the alignment field.
- * @return Reference to 'appendTo' parameter.
- * @stable ICU 56
- */
- virtual UnicodeString& format(int32_t number,
- UnicodeString& appendTo,
- FieldPosition& pos) const;
-
- /**
- * Format a long number using base-10 representation.
- *
- * @param number The value to be formatted.
- * @param appendTo Output parameter to receive result.
- * Result is appended to existing contents.
- * @param pos On input: an alignment field, if desired.
- * On output: the offsets of the alignment field.
- * @return Reference to 'appendTo' parameter.
- * @internal
- */
- virtual UnicodeString& format(int32_t number,
- UnicodeString& appendTo,
- FieldPosition& pos,
- UErrorCode &status) const;
-
- /**
- * Format a long number using base-10 representation.
- * Currently sets status to U_UNSUPPORTED_ERROR
- *
- * @param number The value to be formatted.
- * @param appendTo Output parameter to receive result.
- * Result is appended to existing contents.
- * @param posIter On return, can be used to iterate over positions
- * of fields generated by this format call.
- * Can be NULL.
- * @param status Output param filled with success/failure status.
- * @return Reference to 'appendTo' parameter.
- * @internal
- */
- virtual UnicodeString& format(int32_t number,
- UnicodeString& appendTo,
- FieldPositionIterator* posIter,
- UErrorCode& status) const;
-
- /**
- * Format an int64 number using base-10 representation.
- *
- * @param number The value to be formatted.
- * @param appendTo Output parameter to receive result.
- * Result is appended to existing contents.
- * @param pos On input: an alignment field, if desired.
- * On output: the offsets of the alignment field.
- * @return Reference to 'appendTo' parameter.
+ * CompactDecimalFormat does not support parsing. This implementation
+ * does nothing.
+ * @param text Unused.
+ * @param result Does not change.
+ * @param parsePosition Does not change.
+ * @see Formattable
* @stable ICU 51
*/
- virtual UnicodeString& format(int64_t number,
- UnicodeString& appendTo,
- FieldPosition& pos) const;
-
- /**
- * Format an int64 number using base-10 representation.
- *
- * @param number The value to be formatted.
- * @param appendTo Output parameter to receive result.
- * Result is appended to existing contents.
- * @param pos On input: an alignment field, if desired.
- * On output: the offsets of the alignment field.
- * @return Reference to 'appendTo' parameter.
- * @internal
- */
- virtual UnicodeString& format(int64_t number,
- UnicodeString& appendTo,
- FieldPosition& pos,
- UErrorCode &status) const;
-
- /**
- * Format an int64 number using base-10 representation.
- * Currently sets status to U_UNSUPPORTED_ERROR
- *
- * @param number The value to be formatted.
- * @param appendTo Output parameter to receive result.
- * Result is appended to existing contents.
- * @param posIter On return, can be used to iterate over positions
- * of fields generated by this format call.
- * Can be NULL.
- * @param status Output param filled with success/failure status.
- * @return Reference to 'appendTo' parameter.
- * @internal
- */
- virtual UnicodeString& format(int64_t number,
- UnicodeString& appendTo,
- FieldPositionIterator* posIter,
- UErrorCode& status) const;
-
- /**
- * Format a decimal number. Currently sets status to U_UNSUPPORTED_ERROR
- * The syntax of the unformatted number is a "numeric string"
- * as defined in the Decimal Arithmetic Specification, available at
- * http://speleotrove.com/decimal
- *
- * @param number The unformatted number, as a string.
- * @param appendTo Output parameter to receive result.
- * Result is appended to existing contents.
- * @param posIter On return, can be used to iterate over positions
- * of fields generated by this format call.
- * Can be NULL.
- * @param status Output param filled with success/failure status.
- * @return Reference to 'appendTo' parameter.
- * @internal
- */
- virtual UnicodeString& format(StringPiece number,
- UnicodeString& appendTo,
- FieldPositionIterator* posIter,
- UErrorCode& status) const;
-
- /**
- * Format a decimal number. Currently sets status to U_UNSUPPORTED_ERROR
- * The number is a DigitList wrapper onto a floating point decimal number.
- * The default implementation in NumberFormat converts the decimal number
- * to a double and formats that.
- *
- * @param number The number, a DigitList format Decimal Floating Point.
- * @param appendTo Output parameter to receive result.
- * Result is appended to existing contents.
- * @param posIter On return, can be used to iterate over positions
- * of fields generated by this format call.
- * @param status Output param filled with success/failure status.
- * @return Reference to 'appendTo' parameter.
- * @internal
- */
- virtual UnicodeString& format(const DigitList &number,
- UnicodeString& appendTo,
- FieldPositionIterator* posIter,
- UErrorCode& status) const;
-
- /**
- * Format a decimal number. Currently sets status to U_UNSUPPORTED_ERROR.
- * The number is a DigitList wrapper onto a floating point decimal number.
- * The default implementation in NumberFormat converts the decimal number
- * to a double and formats that.
- *
- * @param number The number, a DigitList format Decimal Floating Point.
- * @param appendTo Output parameter to receive result.
- * Result is appended to existing contents.
- * @param pos On input: an alignment field, if desired.
- * On output: the offsets of the alignment field.
- * @param status Output param filled with success/failure status.
- * @return Reference to 'appendTo' parameter.
- * @internal
- */
- virtual UnicodeString& format(const DigitList &number,
- UnicodeString& appendTo,
- FieldPosition& pos,
- UErrorCode& status) const;
-
- /**
- * CompactDecimalFormat does not support parsing. This implementation
- * does nothing.
- * @param text Unused.
- * @param result Does not change.
- * @param parsePosition Does not change.
- * @see Formattable
- * @stable ICU 51
- */
- virtual void parse(const UnicodeString& text,
- Formattable& result,
- ParsePosition& parsePosition) const;
+ void parse(const UnicodeString& text, Formattable& result,
+ ParsePosition& parsePosition) const U_OVERRIDE;
/**
* CompactDecimalFormat does not support parsing. This implementation
@@ -350,10 +127,9 @@ public:
* @param status Always set to U_UNSUPPORTED_ERROR.
* @stable ICU 51
*/
- virtual void parse(const UnicodeString& text,
- Formattable& result,
- UErrorCode& status) const;
+ void parse(const UnicodeString& text, Formattable& result, UErrorCode& status) const U_OVERRIDE;
+#ifndef U_HIDE_INTERNAL_API
/**
* Parses text from the given string as a currency amount. Unlike
* the parse() method, this method will attempt to parse a generic
@@ -374,8 +150,8 @@ public:
* the parsed currency; if parse fails, this is NULL.
* @internal
*/
- virtual CurrencyAmount* parseCurrency(const UnicodeString& text,
- ParsePosition& pos) const;
+ CurrencyAmount* parseCurrency(const UnicodeString& text, ParsePosition& pos) const U_OVERRIDE;
+#endif /* U_HIDE_INTERNAL_API */
/**
* Return the class ID for this class. This is useful only for
@@ -401,18 +177,10 @@ public:
* other classes have different class IDs.
* @stable ICU 51
*/
- virtual UClassID getDynamicClassID() const;
-
-private:
-
- const UHashtable* _unitsByVariant;
- const double* _divisors;
- PluralRules* _pluralRules;
-
- // Default constructor not implemented.
- CompactDecimalFormat(const DecimalFormat &, const UHashtable* unitsByVariant, const double* divisors, PluralRules* pluralRules);
+ UClassID getDynamicClassID() const U_OVERRIDE;
- UBool eqHelper(const CompactDecimalFormat& that) const;
+ private:
+ CompactDecimalFormat(const Locale& inLocale, UNumberCompactStyle style, UErrorCode& status);
};
U_NAMESPACE_END
diff --git a/Build/source/libs/icu/icu-src/source/i18n/unicode/currpinf.h b/Build/source/libs/icu/icu-src/source/i18n/unicode/currpinf.h
index 33c18b08f24..7741c608b07 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/unicode/currpinf.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/unicode/currpinf.h
@@ -2,7 +2,7 @@
// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
- * Copyright (C) 2009-2015, International Business Machines Corporation and *
+ * Copyright (C) 2009-2015, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*/
@@ -240,18 +240,27 @@ private:
/*
* The plural rule is used to format currency plural name,
* for example: "3.00 US Dollars".
- * If there are 3 currency signs in the currency patttern,
+ * If there are 3 currency signs in the currency pattern,
* the 3 currency signs will be replaced by currency plural name.
*/
PluralRules* fPluralRules;
// locale
Locale* fLocale;
+
+private:
+ /**
+ * An internal status variable used to indicate that the object is in an 'invalid' state.
+ * Used by copy constructor, the assignment operator and the clone method.
+ */
+ UErrorCode fInternalStatus;
};
inline UBool
-CurrencyPluralInfo::operator!=(const CurrencyPluralInfo& info) const { return !operator==(info); }
+CurrencyPluralInfo::operator!=(const CurrencyPluralInfo& info) const {
+ return !operator==(info);
+}
U_NAMESPACE_END
diff --git a/Build/source/libs/icu/icu-src/source/i18n/unicode/currunit.h b/Build/source/libs/icu/icu-src/source/i18n/unicode/currunit.h
index 5ad23b1f58a..ac3bfedd7b3 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/unicode/currunit.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/unicode/currunit.h
@@ -38,14 +38,15 @@ class U_I18N_API CurrencyUnit: public MeasureUnit {
public:
/**
* Default constructor. Initializes currency code to "XXX" (no currency).
- * @draft ICU 60
+ * @stable ICU 60
*/
CurrencyUnit();
/**
* Construct an object with the given ISO currency code.
- * @param isoCode the 3-letter ISO 4217 currency code; must not be
- * NULL and must have length 3
+ * @param isoCode the 3-letter ISO 4217 currency code; must have
+ * length 3 and need not be NUL-terminated. If NULL, the currency
+ * is initialized to the unknown currency XXX.
* @param ec input-output error code. If the isoCode is invalid,
* then this will be set to a failing value.
* @stable ICU 3.0
@@ -58,17 +59,15 @@ class U_I18N_API CurrencyUnit: public MeasureUnit {
*/
CurrencyUnit(const CurrencyUnit& other);
-#ifndef U_HIDE_DRAFT_API
/**
* Copy constructor from MeasureUnit. This constructor allows you to
* restore a CurrencyUnit that was sliced to MeasureUnit.
*
* @param measureUnit The MeasureUnit to copy from.
* @param ec Set to a failing value if the MeasureUnit is not a currency.
- * @draft ICU 60
+ * @stable ICU 60
*/
CurrencyUnit(const MeasureUnit& measureUnit, UErrorCode &ec);
-#endif /* U_HIDE_DRAFT_API */
/**
* Assignment operator
diff --git a/Build/source/libs/icu/icu-src/source/i18n/unicode/datefmt.h b/Build/source/libs/icu/icu-src/source/i18n/unicode/datefmt.h
index f8bcf54bfb3..81eb8f9b525 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/unicode/datefmt.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/unicode/datefmt.h
@@ -43,13 +43,17 @@ U_NAMESPACE_BEGIN
class TimeZone;
class DateTimePatternGenerator;
-// explicit template instantiation. see digitlst.h
-// (When building DLLs for Windows this is required.)
-#if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN
+/**
+ * \cond
+ * Export an explicit template instantiation. (See digitlst.h, datefmt.h, and others.)
+ * (When building DLLs for Windows this is required.)
+ */
+#if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN && !defined(U_IN_DOXYGEN)
template class U_I18N_API EnumSet<UDateFormatBooleanAttribute,
0,
UDAT_BOOLEAN_ATTRIBUTE_COUNT>;
#endif
+/** \endcond */
/**
* DateFormat is an abstract class for a family of classes that convert dates and
diff --git a/Build/source/libs/icu/icu-src/source/i18n/unicode/dcfmtsym.h b/Build/source/libs/icu/icu-src/source/i18n/unicode/dcfmtsym.h
index e58befa31bd..55e3d8a6b3b 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/unicode/dcfmtsym.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/unicode/dcfmtsym.h
@@ -181,7 +181,6 @@ public:
*/
DecimalFormatSymbols(const Locale& locale, UErrorCode& status);
-#ifndef U_HIDE_DRAFT_API
/**
* Creates a DecimalFormatSymbols instance for the given locale with digits and symbols
* corresponding to the given NumberingSystem.
@@ -196,10 +195,9 @@ public:
* @param ns The numbering system.
* @param status Input/output parameter, set to success or
* failure code upon return.
- * @draft ICU 60
+ * @stable ICU 60
*/
DecimalFormatSymbols(const Locale& locale, const NumberingSystem& ns, UErrorCode& status);
-#endif /* U_HIDE_DRAFT_API */
/**
* Create a DecimalFormatSymbols object for the default locale.
@@ -406,8 +404,11 @@ public:
* returning a const reference to one of the symbol strings.
* The returned reference becomes invalid when the symbol is changed
* or when the DecimalFormatSymbols are destroyed.
- * ### TODO markus 2002oct11: Consider proposing getConstSymbol() to be really public.
- * Note: moved #ifndef U_HIDE_INTERNAL_API after this, since this is needed for inline in DecimalFormat
+ * Note: moved \#ifndef U_HIDE_INTERNAL_API after this, since this is needed for inline in DecimalFormat
+ *
+ * This is not currently stable API, but if you think it should be stable,
+ * post a comment on the following ticket and the ICU team will take a look:
+ * http://bugs.icu-project.org/trac/ticket/13580
*
* @param symbol Constant to indicate a number format symbol.
* @return the format symbol by the param 'symbol'
@@ -422,6 +423,10 @@ public:
* to accessing the symbol from getConstSymbol with the corresponding
* key, such as kZeroDigitSymbol or kOneDigitSymbol.
*
+ * This is not currently stable API, but if you think it should be stable,
+ * post a comment on the following ticket and the ICU team will take a look:
+ * http://bugs.icu-project.org/trac/ticket/13580
+ *
* @param digit The digit, an integer between 0 and 9 inclusive.
* If outside the range 0 to 9, the zero digit is returned.
* @return the format symbol for the given digit.
@@ -524,7 +529,7 @@ inline const UnicodeString& DecimalFormatSymbols::getConstDigitSymbol(int32_t di
ENumberFormatSymbol key = static_cast<ENumberFormatSymbol>(kOneDigitSymbol + digit - 1);
return fSymbols[key];
}
-#endif
+#endif /* U_HIDE_INTERNAL_API */
// -------------------------------------
diff --git a/Build/source/libs/icu/icu-src/source/i18n/unicode/decimfmt.h b/Build/source/libs/icu/icu-src/source/i18n/unicode/decimfmt.h
index b062208d9b1..b3a5cc0495f 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/unicode/decimfmt.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/unicode/decimfmt.h
@@ -43,42 +43,42 @@
#include "unicode/curramt.h"
#include "unicode/enumset.h"
-#ifndef U_HIDE_INTERNAL_API
-/**
- * \def UNUM_DECIMALFORMAT_INTERNAL_SIZE
- * @internal
- */
-#if UCONFIG_FORMAT_FASTPATHS_49
-#define UNUM_DECIMALFORMAT_INTERNAL_SIZE 16
-#endif
-#endif /* U_HIDE_INTERNAL_API */
-
U_NAMESPACE_BEGIN
-class DigitList;
class CurrencyPluralInfo;
-class Hashtable;
-class UnicodeSet;
-class FieldPositionHandler;
-class DecimalFormatStaticSets;
-class FixedDecimal;
-class DecimalFormatImpl;
-class PluralRules;
-class VisibleDigitsWithExponent;
-
-// explicit template instantiation. see digitlst.h
-// (When building DLLs for Windows this is required.)
-#if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN
+class CompactDecimalFormat;
+
+namespace number {
+class LocalizedNumberFormatter;
+class FormattedNumber;
+namespace impl {
+class DecimalQuantity;
+struct DecimalFormatFields;
+}
+}
+
+namespace numparse {
+namespace impl {
+class NumberParserImpl;
+}
+}
+
+/**
+ * \cond
+ * explicit template instantiation. see digitlst.h
+ * (When building DLLs for Windows this is required.)
+ */
+#if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN && !defined(U_IN_DOXYGEN)
template class U_I18N_API EnumSet<UNumberFormatAttribute,
UNUM_MAX_NONBOOLEAN_ATTRIBUTE+1,
UNUM_LIMIT_BOOLEAN_ATTRIBUTE>;
#endif
+/** \endcond */
/**
- * <p><strong>IMPORTANT:</strong> New users are strongly encouraged to see if
+ * **IMPORTANT:** New users are strongly encouraged to see if
* numberformatter.h fits their use case. Although not deprecated, this header
* is provided for backwards compatibility only.
- * <hr/>
*
* DecimalFormat is a concrete subclass of NumberFormat that formats decimal
* numbers. It has a variety of features designed to make it possible to parse
@@ -88,13 +88,13 @@ template class U_I18N_API EnumSet<UNumberFormatAttribute,
* ("1.23E4"), percentages ("12%"), and currency amounts ("$123", "USD123",
* "123 US dollars"). All of these flavors can be easily localized.
*
- * <p>To obtain a NumberFormat for a specific locale (including the default
+ * To obtain a NumberFormat for a specific locale (including the default
* locale) call one of NumberFormat's factory methods such as
* createInstance(). Do not call the DecimalFormat constructors directly, unless
* you know what you are doing, since the NumberFormat factory methods may
* return subclasses other than DecimalFormat.
*
- * <p><strong>Example Usage</strong>
+ * **Example Usage**
*
* \code
* // Normally we would have a GUI with a menu for this
@@ -138,11 +138,11 @@ template class U_I18N_API EnumSet<UNumberFormatAttribute,
* }
* }
* \endcode
- * <P>
- * Another example use createInstance(style)
- * <P>
- * <pre>
- * <strong>// Print out a number using the localized number, currency,
+ *
+ * **Another example use createInstance(style)**
+ *
+ * \code
+ * // Print out a number using the localized number, currency,
* // percent, scientific, integer, iso currency, and plural currency
* // format for each locale</strong>
* Locale* locale = new Locale("en", "US");
@@ -153,11 +153,13 @@ template class U_I18N_API EnumSet<UNumberFormatAttribute,
* for (int j=NumberFormat::kNumberStyle;
* j<=NumberFormat::kPluralCurrencyStyle;
* ++j) {
- * NumberFormat* format = NumberFormat::createInstance(locale, j, success);
+ * NumberFormat* form = NumberFormat::createInstance(locale, j, success);
* str.remove();
* cout << "format result " << form->format(myNumber, str) << endl;
* format->parse(form->format(myNumber, str), fmtable, success);
- * }</pre>
+ * delete form;
+ * }
+ * \endcode
*
*
* <p><strong>Patterns</strong>
@@ -672,17 +674,14 @@ template class U_I18N_API EnumSet<UNumberFormatAttribute,
* subclasses, such code will not necessarily work and will not be
* guaranteed to work stably from release to release.
*/
-class U_I18N_API DecimalFormat: public NumberFormat {
-public:
+class U_I18N_API DecimalFormat : public NumberFormat {
+ public:
/**
* Pad position.
* @stable ICU 2.4
*/
enum EPadPosition {
- kPadBeforePrefix,
- kPadAfterPrefix,
- kPadBeforeSuffix,
- kPadAfterSuffix
+ kPadBeforePrefix, kPadAfterPrefix, kPadBeforeSuffix, kPadAfterSuffix
};
/**
@@ -696,7 +695,7 @@ public:
* locale.
* <p>
* <strong>NOTE:</strong> New users are strongly encouraged to use
- * {@link NumberFormatter} instead of DecimalFormat.
+ * #icu::number::NumberFormatter instead of DecimalFormat.
* @param status Output param set to success/failure code. If the
* pattern is invalid this will be set to a failure code.
* @stable ICU 2.0
@@ -714,14 +713,13 @@ public:
* locale.
* <p>
* <strong>NOTE:</strong> New users are strongly encouraged to use
- * {@link NumberFormatter} instead of DecimalFormat.
+ * #icu::number::NumberFormatter instead of DecimalFormat.
* @param pattern A non-localized pattern string.
* @param status Output param set to success/failure code. If the
* pattern is invalid this will be set to a failure code.
* @stable ICU 2.0
*/
- DecimalFormat(const UnicodeString& pattern,
- UErrorCode& status);
+ DecimalFormat(const UnicodeString& pattern, UErrorCode& status);
/**
* Create a DecimalFormat from the given pattern and symbols.
@@ -735,7 +733,7 @@ public:
* a NumberFormat factory method.
* <p>
* <strong>NOTE:</strong> New users are strongly encouraged to use
- * {@link NumberFormatter} instead of DecimalFormat.
+ * #icu::number::NumberFormatter instead of DecimalFormat.
*
* @param pattern a non-localized pattern string
* @param symbolsToAdopt the set of symbols to be used. The caller should not
@@ -744,11 +742,10 @@ public:
* pattern is invalid this will be set to a failure code.
* @stable ICU 2.0
*/
- DecimalFormat( const UnicodeString& pattern,
- DecimalFormatSymbols* symbolsToAdopt,
- UErrorCode& status);
+ DecimalFormat(const UnicodeString& pattern, DecimalFormatSymbols* symbolsToAdopt, UErrorCode& status);
#ifndef U_HIDE_INTERNAL_API
+
/**
* This API is for ICU use only.
* Create a DecimalFormat from the given pattern, symbols, and style.
@@ -761,34 +758,41 @@ public:
* pattern is invalid this will be set to a failure code.
* @internal
*/
- DecimalFormat( const UnicodeString& pattern,
- DecimalFormatSymbols* symbolsToAdopt,
- UNumberFormatStyle style,
- UErrorCode& status);
+ DecimalFormat(const UnicodeString& pattern, DecimalFormatSymbols* symbolsToAdopt,
+ UNumberFormatStyle style, UErrorCode& status);
#if UCONFIG_HAVE_PARSEALLINPUT
+
/**
* @internal
*/
void setParseAllInput(UNumberFormatAttributeValue value);
+
#endif
#endif /* U_HIDE_INTERNAL_API */
+ private:
+
+ /**
+ * Internal constructor for DecimalFormat; sets up internal fields. All public constructors should
+ * call this constructor.
+ */
+ DecimalFormat(const DecimalFormatSymbols* symbolsToAdopt, UErrorCode& status);
+
+ public:
/**
* Set an integer attribute on this DecimalFormat.
* May return U_UNSUPPORTED_ERROR if this instance does not support
* the specified attribute.
* @param attr the attribute to set
- * @param newvalue new value
+ * @param newValue new value
* @param status the error type
* @return *this - for chaining (example: format.setAttribute(...).setAttribute(...) )
* @stable ICU 51
*/
- virtual DecimalFormat& setAttribute( UNumberFormatAttribute attr,
- int32_t newvalue,
- UErrorCode &status);
+ virtual DecimalFormat& setAttribute(UNumberFormatAttribute attr, int32_t newValue, UErrorCode& status);
/**
* Get an integer
@@ -799,8 +803,7 @@ public:
* @return the attribute value. Undefined if there is an error.
* @stable ICU 51
*/
- virtual int32_t getAttribute( UNumberFormatAttribute attr,
- UErrorCode &status) const;
+ virtual int32_t getAttribute(UNumberFormatAttribute attr, UErrorCode& status) const;
/**
@@ -809,7 +812,7 @@ public:
* @see getGroupingUsed
* @stable ICU 53
*/
- virtual void setGroupingUsed(UBool newValue);
+ void setGroupingUsed(UBool newValue) U_OVERRIDE;
/**
* Sets whether or not numbers should be parsed as integers only.
@@ -818,18 +821,16 @@ public:
* @see isParseIntegerOnly
* @stable ICU 53
*/
- virtual void setParseIntegerOnly(UBool value);
+ void setParseIntegerOnly(UBool value) U_OVERRIDE;
/**
- * Set a particular UDisplayContext value in the formatter, such as
- * UDISPCTX_CAPITALIZATION_FOR_STANDALONE.
- * @param value The UDisplayContext value to set.
- * @param status Input/output status. If at entry this indicates a failure
- * status, the function will do nothing; otherwise this will be
- * updated with any new status from the function.
- * @stable ICU 53
+ * Sets whether lenient parsing should be enabled (it is off by default).
+ *
+ * @param enable \c TRUE if lenient parsing should be used,
+ * \c FALSE otherwise.
+ * @stable ICU 4.8
*/
- virtual void setContext(UDisplayContext value, UErrorCode& status);
+ void setLenient(UBool enable) U_OVERRIDE;
/**
* Create a DecimalFormat from the given pattern and symbols.
@@ -843,7 +844,7 @@ public:
* a NumberFormat factory method.
* <p>
* <strong>NOTE:</strong> New users are strongly encouraged to use
- * {@link NumberFormatter} instead of DecimalFormat.
+ * #icu::number::NumberFormatter instead of DecimalFormat.
*
* @param pattern a non-localized pattern string
* @param symbolsToAdopt the set of symbols to be used. The caller should not
@@ -853,10 +854,9 @@ public:
* pattern is invalid this will be set to a failure code.
* @stable ICU 2.0
*/
- DecimalFormat( const UnicodeString& pattern,
- DecimalFormatSymbols* symbolsToAdopt,
- UParseError& parseError,
- UErrorCode& status);
+ DecimalFormat(const UnicodeString& pattern, DecimalFormatSymbols* symbolsToAdopt,
+ UParseError& parseError, UErrorCode& status);
+
/**
* Create a DecimalFormat from the given pattern and symbols.
* Use this constructor when you need to completely customize the
@@ -869,7 +869,7 @@ public:
* a NumberFormat factory method.
* <p>
* <strong>NOTE:</strong> New users are strongly encouraged to use
- * {@link NumberFormatter} instead of DecimalFormat.
+ * #icu::number::NumberFormatter instead of DecimalFormat.
*
* @param pattern a non-localized pattern string
* @param symbols the set of symbols to be used
@@ -877,9 +877,7 @@ public:
* pattern is invalid this will be set to a failure code.
* @stable ICU 2.0
*/
- DecimalFormat( const UnicodeString& pattern,
- const DecimalFormatSymbols& symbols,
- UErrorCode& status);
+ DecimalFormat(const UnicodeString& pattern, const DecimalFormatSymbols& symbols, UErrorCode& status);
/**
* Copy constructor.
@@ -901,7 +899,7 @@ public:
* Destructor.
* @stable ICU 2.0
*/
- virtual ~DecimalFormat();
+ ~DecimalFormat() U_OVERRIDE;
/**
* Clone this Format object polymorphically. The caller owns the
@@ -910,7 +908,7 @@ public:
* @return a polymorphic copy of this DecimalFormat.
* @stable ICU 2.0
*/
- virtual Format* clone(void) const;
+ Format* clone(void) const U_OVERRIDE;
/**
* Return true if the given Format objects are semantically equal.
@@ -920,7 +918,7 @@ public:
* @return true if the given Format objects are semantically equal.
* @stable ICU 2.0
*/
- virtual UBool operator==(const Format& other) const;
+ UBool operator==(const Format& other) const U_OVERRIDE;
using NumberFormat::format;
@@ -936,11 +934,9 @@ public:
* @return Reference to 'appendTo' parameter.
* @stable ICU 2.0
*/
- virtual UnicodeString& format(double number,
- UnicodeString& appendTo,
- FieldPosition& pos) const;
-
+ UnicodeString& format(double number, UnicodeString& appendTo, FieldPosition& pos) const U_OVERRIDE;
+#ifndef U_HIDE_INTERNAL_API
/**
* Format a double or long number using base-10 representation.
*
@@ -953,10 +949,9 @@ public:
* @return Reference to 'appendTo' parameter.
* @internal
*/
- virtual UnicodeString& format(double number,
- UnicodeString& appendTo,
- FieldPosition& pos,
- UErrorCode &status) const;
+ UnicodeString& format(double number, UnicodeString& appendTo, FieldPosition& pos,
+ UErrorCode& status) const U_OVERRIDE;
+#endif /* U_HIDE_INTERNAL_API */
/**
* Format a double or long number using base-10 representation.
@@ -971,10 +966,8 @@ public:
* @return Reference to 'appendTo' parameter.
* @stable ICU 4.4
*/
- virtual UnicodeString& format(double number,
- UnicodeString& appendTo,
- FieldPositionIterator* posIter,
- UErrorCode& status) const;
+ UnicodeString& format(double number, UnicodeString& appendTo, FieldPositionIterator* posIter,
+ UErrorCode& status) const U_OVERRIDE;
/**
* Format a long number using base-10 representation.
@@ -987,10 +980,9 @@ public:
* @return Reference to 'appendTo' parameter.
* @stable ICU 2.0
*/
- virtual UnicodeString& format(int32_t number,
- UnicodeString& appendTo,
- FieldPosition& pos) const;
+ UnicodeString& format(int32_t number, UnicodeString& appendTo, FieldPosition& pos) const U_OVERRIDE;
+#ifndef U_HIDE_INTERNAL_API
/**
* Format a long number using base-10 representation.
*
@@ -999,13 +991,13 @@ public:
* Result is appended to existing contents.
* @param pos On input: an alignment field, if desired.
* On output: the offsets of the alignment field.
+ * @param status Output param filled with success/failure status.
* @return Reference to 'appendTo' parameter.
* @internal
*/
- virtual UnicodeString& format(int32_t number,
- UnicodeString& appendTo,
- FieldPosition& pos,
- UErrorCode &status) const;
+ UnicodeString& format(int32_t number, UnicodeString& appendTo, FieldPosition& pos,
+ UErrorCode& status) const U_OVERRIDE;
+#endif /* U_HIDE_INTERNAL_API */
/**
* Format a long number using base-10 representation.
@@ -1020,10 +1012,8 @@ public:
* @return Reference to 'appendTo' parameter.
* @stable ICU 4.4
*/
- virtual UnicodeString& format(int32_t number,
- UnicodeString& appendTo,
- FieldPositionIterator* posIter,
- UErrorCode& status) const;
+ UnicodeString& format(int32_t number, UnicodeString& appendTo, FieldPositionIterator* posIter,
+ UErrorCode& status) const U_OVERRIDE;
/**
* Format an int64 number using base-10 representation.
@@ -1036,10 +1026,9 @@ public:
* @return Reference to 'appendTo' parameter.
* @stable ICU 2.8
*/
- virtual UnicodeString& format(int64_t number,
- UnicodeString& appendTo,
- FieldPosition& pos) const;
+ UnicodeString& format(int64_t number, UnicodeString& appendTo, FieldPosition& pos) const U_OVERRIDE;
+#ifndef U_HIDE_INTERNAL_API
/**
* Format an int64 number using base-10 representation.
*
@@ -1048,13 +1037,13 @@ public:
* Result is appended to existing contents.
* @param pos On input: an alignment field, if desired.
* On output: the offsets of the alignment field.
+ * @param status Output param filled with success/failure status.
* @return Reference to 'appendTo' parameter.
* @internal
*/
- virtual UnicodeString& format(int64_t number,
- UnicodeString& appendTo,
- FieldPosition& pos,
- UErrorCode &status) const;
+ UnicodeString& format(int64_t number, UnicodeString& appendTo, FieldPosition& pos,
+ UErrorCode& status) const U_OVERRIDE;
+#endif /* U_HIDE_INTERNAL_API */
/**
* Format an int64 number using base-10 representation.
@@ -1069,10 +1058,8 @@ public:
* @return Reference to 'appendTo' parameter.
* @stable ICU 4.4
*/
- virtual UnicodeString& format(int64_t number,
- UnicodeString& appendTo,
- FieldPositionIterator* posIter,
- UErrorCode& status) const;
+ UnicodeString& format(int64_t number, UnicodeString& appendTo, FieldPositionIterator* posIter,
+ UErrorCode& status) const U_OVERRIDE;
/**
* Format a decimal number.
@@ -1090,19 +1077,18 @@ public:
* @return Reference to 'appendTo' parameter.
* @stable ICU 4.4
*/
- virtual UnicodeString& format(StringPiece number,
- UnicodeString& appendTo,
- FieldPositionIterator* posIter,
- UErrorCode& status) const;
+ UnicodeString& format(StringPiece number, UnicodeString& appendTo, FieldPositionIterator* posIter,
+ UErrorCode& status) const U_OVERRIDE;
+#ifndef U_HIDE_INTERNAL_API
/**
* Format a decimal number.
- * The number is a DigitList wrapper onto a floating point decimal number.
+ * The number is a DecimalQuantity wrapper onto a floating point decimal number.
* The default implementation in NumberFormat converts the decimal number
* to a double and formats that.
*
- * @param number The number, a DigitList format Decimal Floating Point.
+ * @param number The number, a DecimalQuantity format Decimal Floating Point.
* @param appendTo Output parameter to receive result.
* Result is appended to existing contents.
* @param posIter On return, can be used to iterate over positions
@@ -1111,14 +1097,16 @@ public:
* @return Reference to 'appendTo' parameter.
* @internal
*/
- virtual UnicodeString& format(const DigitList &number,
- UnicodeString& appendTo,
- FieldPositionIterator* posIter,
- UErrorCode& status) const;
+ UnicodeString& format(const number::impl::DecimalQuantity& number, UnicodeString& appendTo,
+ FieldPositionIterator* posIter, UErrorCode& status) const U_OVERRIDE;
/**
* Format a decimal number.
- * @param number The number
+ * The number is a DecimalQuantity wrapper onto a floating point decimal number.
+ * The default implementation in NumberFormat converts the decimal number
+ * to a double and formats that.
+ *
+ * @param number The number, a DecimalQuantity format Decimal Floating Point.
* @param appendTo Output parameter to receive result.
* Result is appended to existing contents.
* @param pos On input: an alignment field, if desired.
@@ -1127,73 +1115,34 @@ public:
* @return Reference to 'appendTo' parameter.
* @internal
*/
- virtual UnicodeString& format(
- const VisibleDigitsWithExponent &number,
- UnicodeString& appendTo,
- FieldPosition& pos,
- UErrorCode& status) const;
+ UnicodeString& format(const number::impl::DecimalQuantity& number, UnicodeString& appendTo,
+ FieldPosition& pos, UErrorCode& status) const U_OVERRIDE;
- /**
- * Format a decimal number.
- * @param number The number
- * @param appendTo Output parameter to receive result.
- * Result is appended to existing contents.
- * @param posIter On return, can be used to iterate over positions
- * of fields generated by this format call.
- * @param status Output param filled with success/failure status.
- * @return Reference to 'appendTo' parameter.
- * @internal
- */
- virtual UnicodeString& format(
- const VisibleDigitsWithExponent &number,
- UnicodeString& appendTo,
- FieldPositionIterator* posIter,
- UErrorCode& status) const;
+#endif // U_HIDE_INTERNAL_API
+
+ using NumberFormat::parse;
/**
- * Format a decimal number.
- * The number is a DigitList wrapper onto a floating point decimal number.
- * The default implementation in NumberFormat converts the decimal number
- * to a double and formats that.
+ * Parse the given string using this object's choices. The method
+ * does string comparisons to try to find an optimal match.
+ * If no object can be parsed, index is unchanged, and NULL is
+ * returned. The result is returned as the most parsimonious
+ * type of Formattable that will accomodate all of the
+ * necessary precision. For example, if the result is exactly 12,
+ * it will be returned as a long. However, if it is 1.5, it will
+ * be returned as a double.
*
- * @param number The number, a DigitList format Decimal Floating Point.
- * @param appendTo Output parameter to receive result.
- * Result is appended to existing contents.
- * @param pos On input: an alignment field, if desired.
- * On output: the offsets of the alignment field.
- * @param status Output param filled with success/failure status.
- * @return Reference to 'appendTo' parameter.
- * @internal
+ * @param text The text to be parsed.
+ * @param result Formattable to be set to the parse result.
+ * If parse fails, return contents are undefined.
+ * @param parsePosition The position to start parsing at on input.
+ * On output, moved to after the last successfully
+ * parse character. On parse failure, does not change.
+ * @see Formattable
+ * @stable ICU 2.0
*/
- virtual UnicodeString& format(const DigitList &number,
- UnicodeString& appendTo,
- FieldPosition& pos,
- UErrorCode& status) const;
-
- using NumberFormat::parse;
-
- /**
- * Parse the given string using this object's choices. The method
- * does string comparisons to try to find an optimal match.
- * If no object can be parsed, index is unchanged, and NULL is
- * returned. The result is returned as the most parsimonious
- * type of Formattable that will accomodate all of the
- * necessary precision. For example, if the result is exactly 12,
- * it will be returned as a long. However, if it is 1.5, it will
- * be returned as a double.
- *
- * @param text The text to be parsed.
- * @param result Formattable to be set to the parse result.
- * If parse fails, return contents are undefined.
- * @param parsePosition The position to start parsing at on input.
- * On output, moved to after the last successfully
- * parse character. On parse failure, does not change.
- * @see Formattable
- * @stable ICU 2.0
- */
- virtual void parse(const UnicodeString& text,
- Formattable& result,
- ParsePosition& parsePosition) const;
+ void parse(const UnicodeString& text, Formattable& result,
+ ParsePosition& parsePosition) const U_OVERRIDE;
/**
* Parses text from the given string as a currency amount. Unlike
@@ -1214,8 +1163,7 @@ public:
* the parsed currency; if parse fails, this is NULL.
* @stable ICU 49
*/
- virtual CurrencyAmount* parseCurrency(const UnicodeString& text,
- ParsePosition& pos) const;
+ CurrencyAmount* parseCurrency(const UnicodeString& text, ParsePosition& pos) const U_OVERRIDE;
/**
* Returns the decimal format symbols, which is generally not changed
@@ -1344,12 +1292,29 @@ public:
*/
virtual void setNegativeSuffix(const UnicodeString& newValue);
+#ifndef U_HIDE_INTERNAL_API
+ /**
+ * Whether to show the plus sign on positive (non-negative) numbers; for example, "+12"
+ * @internal Technical Preview
+ */
+ UBool isSignAlwaysShown() const;
+#endif /* U_HIDE_INTERNAL_API */
+
+ /**
+ * Set whether to show the plus sign on positive (non-negative) numbers; for example, "+12"
+ * @param value The new setting for whether to show plus sign on positive numbers
+ * @internal Technical Preview
+ */
+ virtual void setSignAlwaysShown(UBool value);
+
/**
* Get the multiplier for use in percent, permill, etc.
* For a percentage, set the suffixes to have "%" and the multiplier to be 100.
* (For Arabic, use arabic percent symbol).
* For a permill, set the suffixes to have "\\u2031" and the multiplier to be 1000.
*
+ * The number may also be multiplied by a power of ten; see getMultiplierScale().
+ *
* @return the multiplier for use in percent, permill, etc.
* Examples: with 100, 1.23 -> "123", and "123" -> 1.23
* @stable ICU 2.0
@@ -1362,12 +1327,52 @@ public:
* (For Arabic, use arabic percent symbol).
* For a permill, set the suffixes to have "\\u2031" and the multiplier to be 1000.
*
+ * This method only supports integer multipliers. To multiply by a non-integer, pair this
+ * method with setMultiplierScale().
+ *
* @param newValue the new value of the multiplier for use in percent, permill, etc.
* Examples: with 100, 1.23 -> "123", and "123" -> 1.23
* @stable ICU 2.0
*/
virtual void setMultiplier(int32_t newValue);
+#ifndef U_HIDE_DRAFT_API
+ /**
+ * Gets the power of ten by which number should be multiplied before formatting, which
+ * can be combined with setMultiplier() to multiply by any arbitrary decimal value.
+ *
+ * A multiplier scale of 2 corresponds to multiplication by 100, and a multiplier scale
+ * of -2 corresponds to multiplication by 0.01.
+ *
+ * This method is analogous to UNUM_SCALE in getAttribute.
+ *
+ * @return the current value of the power-of-ten multiplier.
+ * @draft ICU 62
+ */
+ int32_t getMultiplierScale(void) const;
+#endif /* U_HIDE_DRAFT_API */
+
+ /**
+ * Sets a power of ten by which number should be multiplied before formatting, which
+ * can be combined with setMultiplier() to multiply by any arbitrary decimal value.
+ *
+ * A multiplier scale of 2 corresponds to multiplication by 100, and a multiplier scale
+ * of -2 corresponds to multiplication by 0.01.
+ *
+ * For example, to multiply numbers by 0.5 before formatting, you can do:
+ *
+ * <pre>
+ * df.setMultiplier(5);
+ * df.setMultiplierScale(-1);
+ * </pre>
+ *
+ * This method is analogous to UNUM_SCALE in setAttribute.
+ *
+ * @param newValue the new value of the power-of-ten multiplier.
+ * @draft ICU 62
+ */
+ virtual void setMultiplierScale(int32_t newValue);
+
/**
* Get the rounding increment.
* @return A positive rounding increment, or 0.0 if a custom rounding
@@ -1400,7 +1405,7 @@ public:
* @see #setRoundingMode
* @stable ICU 2.0
*/
- virtual ERoundingMode getRoundingMode(void) const;
+ virtual ERoundingMode getRoundingMode(void) const U_OVERRIDE;
/**
* Set the rounding mode.
@@ -1410,7 +1415,7 @@ public:
* @see #getRoundingMode
* @stable ICU 2.0
*/
- virtual void setRoundingMode(ERoundingMode roundingMode);
+ virtual void setRoundingMode(ERoundingMode roundingMode) U_OVERRIDE;
/**
* Get the width to which the output of format() is padded.
@@ -1469,7 +1474,7 @@ public:
* @see #setPadPosition
* @stable ICU 2.0
*/
- virtual void setPadCharacter(const UnicodeString &padChar);
+ virtual void setPadCharacter(const UnicodeString& padChar);
/**
* Get the position at which padding will take place. This is the location
@@ -1676,7 +1681,7 @@ public:
#endif /* U_HIDE_INTERNAL_API */
- /* Cannot use #ifndef U_HIDE_INTERNAL_API for the following draft method since it is virtual. */
+ /* Cannot use #ifndef U_HIDE_INTERNAL_API for the following draft method since it is virtual. */
/**
* Sets the minimum grouping digits. Setting to a value less than or
* equal to 1 turns off minimum grouping digits.
@@ -1717,7 +1722,7 @@ public:
UBool isDecimalPatternMatchRequired(void) const;
/**
- * Allows you to set the behavior of the pattern decimal mark.
+ * Allows you to set the parse behavior of the pattern decimal mark.
*
* if TRUE, the input must have a decimal mark if one was specified in the pattern. When
* FALSE the decimal mark may be omitted from the input.
@@ -1727,6 +1732,60 @@ public:
*/
virtual void setDecimalPatternMatchRequired(UBool newValue);
+ /**
+ * Returns whether to ignore exponents when parsing.
+ *
+ * @see #setParseNoExponent
+ * @internal This API is a technical preview. It may change in an upcoming release.
+ */
+ virtual UBool isParseNoExponent() const;
+
+ /**
+ * Specifies whether to stop parsing when an exponent separator is encountered. For
+ * example, parses "123E4" to 123 (with parse position 3) instead of 1230000 (with parse position
+ * 5).
+ *
+ * @param value true to prevent exponents from being parsed; false to allow them to be parsed.
+ * @internal This API is a technical preview. It may change in an upcoming release.
+ */
+ virtual void setParseNoExponent(UBool value);
+
+ /**
+ * Returns whether parsing is sensitive to case (lowercase/uppercase).
+ *
+ * @see #setParseCaseSensitive
+ * @internal This API is a technical preview. It may change in an upcoming release.
+ */
+ virtual UBool isParseCaseSensitive() const;
+
+ /**
+ * Whether to pay attention to case when parsing; default is to ignore case (perform
+ * case-folding). For example, "A" == "a" in case-insensitive but not case-sensitive mode.
+ *
+ * Currency symbols are never case-folded. For example, "us$1.00" will not parse in case-insensitive
+ * mode, even though "US$1.00" parses.
+ *
+ * @internal This API is a technical preview. It may change in an upcoming release.
+ */
+ virtual void setParseCaseSensitive(UBool value);
+
+ /**
+ * Returns whether truncation of high-order integer digits should result in an error.
+ * By default, setMaximumIntegerDigits truncates high-order digits silently.
+ *
+ * @see setFormatFailIfMoreThanMaxDigits
+ * @internal This API is a technical preview. It may change in an upcoming release.
+ */
+ virtual UBool isFormatFailIfMoreThanMaxDigits() const;
+
+ /**
+ * Sets whether truncation of high-order integer digits should result in an error.
+ * By default, setMaximumIntegerDigits truncates high-order digits silently.
+ *
+ * @internal This API is a technical preview. It may change in an upcoming release.
+ */
+ virtual void setFormatFailIfMoreThanMaxDigits(UBool value);
+
/**
* Synthesizes a pattern string that represents the current state
@@ -1781,9 +1840,8 @@ public:
* set to a failure result.
* @stable ICU 2.0
*/
- virtual void applyPattern(const UnicodeString& pattern,
- UParseError& parseError,
- UErrorCode& status);
+ virtual void applyPattern(const UnicodeString& pattern, UParseError& parseError, UErrorCode& status);
+
/**
* Sets the pattern.
* @param pattern The pattern to be applied.
@@ -1792,8 +1850,7 @@ public:
* set to a failure result.
* @stable ICU 2.0
*/
- virtual void applyPattern(const UnicodeString& pattern,
- UErrorCode& status);
+ virtual void applyPattern(const UnicodeString& pattern, UErrorCode& status);
/**
* Apply the given pattern to this Format object. The pattern
@@ -1825,8 +1882,7 @@ public:
* set to a failure result.
* @stable ICU 2.0
*/
- virtual void applyLocalizedPattern(const UnicodeString& pattern,
- UParseError& parseError,
+ virtual void applyLocalizedPattern(const UnicodeString& pattern, UParseError& parseError,
UErrorCode& status);
/**
@@ -1838,8 +1894,7 @@ public:
* set to a failure result.
* @stable ICU 2.0
*/
- virtual void applyLocalizedPattern(const UnicodeString& pattern,
- UErrorCode& status);
+ virtual void applyLocalizedPattern(const UnicodeString& pattern, UErrorCode& status);
/**
@@ -1851,7 +1906,7 @@ public:
* @see NumberFormat#setMaximumIntegerDigits
* @stable ICU 2.0
*/
- virtual void setMaximumIntegerDigits(int32_t newValue);
+ void setMaximumIntegerDigits(int32_t newValue) U_OVERRIDE;
/**
* Sets the minimum number of digits allowed in the integer portion of a
@@ -1862,7 +1917,7 @@ public:
* @see NumberFormat#setMinimumIntegerDigits
* @stable ICU 2.0
*/
- virtual void setMinimumIntegerDigits(int32_t newValue);
+ void setMinimumIntegerDigits(int32_t newValue) U_OVERRIDE;
/**
* Sets the maximum number of digits allowed in the fraction portion of a
@@ -1873,7 +1928,7 @@ public:
* @see NumberFormat#setMaximumFractionDigits
* @stable ICU 2.0
*/
- virtual void setMaximumFractionDigits(int32_t newValue);
+ void setMaximumFractionDigits(int32_t newValue) U_OVERRIDE;
/**
* Sets the minimum number of digits allowed in the fraction portion of a
@@ -1884,7 +1939,7 @@ public:
* @see NumberFormat#setMinimumFractionDigits
* @stable ICU 2.0
*/
- virtual void setMinimumFractionDigits(int32_t newValue);
+ void setMinimumFractionDigits(int32_t newValue) U_OVERRIDE;
/**
* Returns the minimum number of significant digits that will be
@@ -1947,7 +2002,6 @@ public:
*/
void setSignificantDigitsUsed(UBool useSignificantDigits);
- public:
/**
* Sets the currency used to display currency
* amounts. This takes effect immediately, if this format is a
@@ -1960,7 +2014,7 @@ public:
* @param ec input-output error code
* @stable ICU 3.0
*/
- virtual void setCurrency(const char16_t* theCurrency, UErrorCode& ec);
+ void setCurrency(const char16_t* theCurrency, UErrorCode& ec) U_OVERRIDE;
/**
* Sets the currency used to display currency amounts. See
@@ -1970,92 +2024,67 @@ public:
virtual void setCurrency(const char16_t* theCurrency);
/**
- * Sets the <tt>Currency Context</tt> object used to display currency.
+ * Sets the `Currency Usage` object used to display currency.
* This takes effect immediately, if this format is a
* currency format.
- * @param currencyContext new currency context object to use.
+ * @param newUsage new currency usage object to use.
+ * @param ec input-output error code
* @stable ICU 54
*/
void setCurrencyUsage(UCurrencyUsage newUsage, UErrorCode* ec);
/**
- * Returns the <tt>Currency Context</tt> object used to display currency
+ * Returns the `Currency Usage` object used to display currency
* @stable ICU 54
*/
UCurrencyUsage getCurrencyUsage() const;
-
-#ifndef U_HIDE_DEPRECATED_API
- /**
- * The resource tags we use to retrieve decimal format data from
- * locale resource bundles.
- * @deprecated ICU 3.4. This string has no public purpose. Please don't use it.
- */
- static const char fgNumberPatterns[];
-#endif // U_HIDE_DEPRECATED_API
-
#ifndef U_HIDE_INTERNAL_API
- /**
- * Get a FixedDecimal corresponding to a double as it would be
- * formatted by this DecimalFormat.
- * Internal, not intended for public use.
- * @internal
- */
- FixedDecimal getFixedDecimal(double number, UErrorCode &status) const;
/**
- * Get a FixedDecimal corresponding to a formattable as it would be
- * formatted by this DecimalFormat.
+ * Format a number and save it into the given DecimalQuantity.
* Internal, not intended for public use.
* @internal
*/
- FixedDecimal getFixedDecimal(const Formattable &number, UErrorCode &status) const;
+ void formatToDecimalQuantity(double number, number::impl::DecimalQuantity& output,
+ UErrorCode& status) const;
/**
- * Get a FixedDecimal corresponding to a DigitList as it would be
- * formatted by this DecimalFormat. Note: the DigitList may be modified.
+ * Get a DecimalQuantity corresponding to a formattable as it would be
+ * formatted by this DecimalFormat.
* Internal, not intended for public use.
* @internal
*/
- FixedDecimal getFixedDecimal(DigitList &number, UErrorCode &status) const;
+ void formatToDecimalQuantity(const Formattable& number, number::impl::DecimalQuantity& output,
+ UErrorCode& status) const;
- /**
- * Get a VisibleDigitsWithExponent corresponding to a double
- * as it would be formatted by this DecimalFormat.
- * Internal, not intended for public use.
- * @internal
- */
- VisibleDigitsWithExponent &initVisibleDigitsWithExponent(
- double number,
- VisibleDigitsWithExponent &digits,
- UErrorCode &status) const;
+#endif /* U_HIDE_INTERNAL_API */
+#ifndef U_HIDE_DRAFT_API
/**
- * Get a VisibleDigitsWithExponent corresponding to a formattable
- * as it would be formatted by this DecimalFormat.
- * Internal, not intended for public use.
- * @internal
+ * Converts this DecimalFormat to a NumberFormatter. Starting in ICU 60,
+ * NumberFormatter is the recommended way to format numbers.
+ *
+ * NOTE: The returned LocalizedNumberFormatter is owned by this DecimalFormat.
+ * If a non-const method is called on the DecimalFormat, or if the DecimalFormat
+ * is deleted, the object becomes invalid. If you plan to keep the return value
+ * beyond the lifetime of the DecimalFormat, copy it to a local variable:
+ *
+ * <pre>
+ * LocalizedNumberFormatter f = df->toNumberFormatter();
+ * </pre>
+ *
+ * It is, however, safe to use the return value for chaining:
+ *
+ * <pre>
+ * FormattedNumber result = df->toNumberFormatter().formatDouble(123, status);
+ * </pre>
+ *
+ * @return The output variable, for chaining.
+ * @draft ICU 62
*/
- VisibleDigitsWithExponent &initVisibleDigitsWithExponent(
- const Formattable &number,
- VisibleDigitsWithExponent &digits,
- UErrorCode &status) const;
-
- /**
- * Get a VisibleDigitsWithExponent corresponding to a DigitList
- * as it would be formatted by this DecimalFormat.
- * Note: the DigitList may be modified.
- * Internal, not intended for public use.
- * @internal
- */
- VisibleDigitsWithExponent &initVisibleDigitsWithExponent(
- DigitList &number,
- VisibleDigitsWithExponent &digits,
- UErrorCode &status) const;
-
-#endif /* U_HIDE_INTERNAL_API */
-
-public:
+ const number::LocalizedNumberFormatter& toNumberFormatter() const;
+#endif /* U_HIDE_DRAFT_API */
/**
* Return the class ID for this class. This is useful only for
@@ -2081,217 +2110,57 @@ public:
* other classes have different class IDs.
* @stable ICU 2.0
*/
- virtual UClassID getDynamicClassID(void) const;
-
-private:
-
- DecimalFormat(); // default constructor not implemented
-
- /**
- * Initialize all fields of a new DecimalFormatter to a safe default value.
- * Common code for use by constructors.
- */
- void init();
-
- /**
- * Do real work of constructing a new DecimalFormat.
- */
- void construct(UErrorCode& status,
- UParseError& parseErr,
- const UnicodeString* pattern = 0,
- DecimalFormatSymbols* symbolsToAdopt = 0
- );
-
- void handleCurrencySignInPattern(UErrorCode& status);
-
- void parse(const UnicodeString& text,
- Formattable& result,
- ParsePosition& pos,
- char16_t* currency) const;
-
- enum {
- fgStatusInfinite,
- fgStatusLength // Leave last in list.
- } StatusFlags;
-
- UBool subparse(const UnicodeString& text,
- const UnicodeString* negPrefix,
- const UnicodeString* negSuffix,
- const UnicodeString* posPrefix,
- const UnicodeString* posSuffix,
- UBool complexCurrencyParsing,
- int8_t type,
- ParsePosition& parsePosition,
- DigitList& digits, UBool* status,
- char16_t* currency) const;
-
- // Mixed style parsing for currency.
- // It parses against the current currency pattern
- // using complex affix comparison
- // parses against the currency plural patterns using complex affix comparison,
- // and parses against the current pattern using simple affix comparison.
- UBool parseForCurrency(const UnicodeString& text,
- ParsePosition& parsePosition,
- DigitList& digits,
- UBool* status,
- char16_t* currency) const;
-
- int32_t skipPadding(const UnicodeString& text, int32_t position) const;
-
- int32_t compareAffix(const UnicodeString& input,
- int32_t pos,
- UBool isNegative,
- UBool isPrefix,
- const UnicodeString* affixPat,
- UBool complexCurrencyParsing,
- int8_t type,
- char16_t* currency) const;
-
- static UnicodeString& trimMarksFromAffix(const UnicodeString& affix, UnicodeString& trimmedAffix);
-
- UBool equalWithSignCompatibility(UChar32 lhs, UChar32 rhs) const;
-
- int32_t compareSimpleAffix(const UnicodeString& affix,
- const UnicodeString& input,
- int32_t pos,
- UBool lenient) const;
-
- static int32_t skipPatternWhiteSpace(const UnicodeString& text, int32_t pos);
-
- static int32_t skipUWhiteSpace(const UnicodeString& text, int32_t pos);
-
- static int32_t skipUWhiteSpaceAndMarks(const UnicodeString& text, int32_t pos);
-
- static int32_t skipBidiMarks(const UnicodeString& text, int32_t pos);
-
- int32_t compareComplexAffix(const UnicodeString& affixPat,
- const UnicodeString& input,
- int32_t pos,
- int8_t type,
- char16_t* currency) const;
+ UClassID getDynamicClassID(void) const U_OVERRIDE;
- static int32_t match(const UnicodeString& text, int32_t pos, UChar32 ch);
+ private:
- static int32_t match(const UnicodeString& text, int32_t pos, const UnicodeString& str);
+ /** Rebuilds the formatter object from the property bag. */
+ void touch(UErrorCode& status);
- static UBool matchSymbol(const UnicodeString &text, int32_t position, int32_t length, const UnicodeString &symbol,
- UnicodeSet *sset, UChar32 schar);
-
- static UBool matchDecimal(UChar32 symbolChar,
- UBool sawDecimal, UChar32 sawDecimalChar,
- const UnicodeSet *sset, UChar32 schar);
-
- static UBool matchGrouping(UChar32 groupingChar,
- UBool sawGrouping, UChar32 sawGroupingChar,
- const UnicodeSet *sset,
- UChar32 decimalChar, const UnicodeSet *decimalSet,
- UChar32 schar);
-
- // set up currency affix patterns for mix parsing.
- // The patterns saved here are the affix patterns of default currency
- // pattern and the unique affix patterns of the plural currency patterns.
- // Those patterns are used by parseForCurrency().
- void setupCurrencyAffixPatterns(UErrorCode& status);
-
- // get the currency rounding with respect to currency usage
- double getCurrencyRounding(const char16_t* currency,
- UErrorCode* ec) const;
-
- // get the currency fraction with respect to currency usage
- int getCurrencyFractionDigits(const char16_t* currency,
- UErrorCode* ec) const;
-
- // hashtable operations
- Hashtable* initHashForAffixPattern(UErrorCode& status);
-
- void deleteHashForAffixPattern();
-
- void copyHashForAffixPattern(const Hashtable* source,
- Hashtable* target, UErrorCode& status);
-
- DecimalFormatImpl *fImpl;
+ /** Rebuilds the formatter object, hiding the error code. */
+ void touchNoError();
/**
- * Constants.
+ * Updates the property bag with settings from the given pattern.
+ *
+ * @param pattern The pattern string to parse.
+ * @param ignoreRounding Whether to leave out rounding information (minFrac, maxFrac, and rounding
+ * increment) when parsing the pattern. This may be desirable if a custom rounding mode, such
+ * as CurrencyUsage, is to be used instead. One of {@link
+ * PatternStringParser#IGNORE_ROUNDING_ALWAYS}, {@link PatternStringParser#IGNORE_ROUNDING_IF_CURRENCY},
+ * or {@link PatternStringParser#IGNORE_ROUNDING_NEVER}.
+ * @see PatternAndPropertyUtils#parseToExistingProperties
*/
+ void setPropertiesFromPattern(const UnicodeString& pattern, int32_t ignoreRounding,
+ UErrorCode& status);
+ const numparse::impl::NumberParserImpl* getParser(UErrorCode& status) const;
- EnumSet<UNumberFormatAttribute,
- UNUM_MAX_NONBOOLEAN_ATTRIBUTE+1,
- UNUM_LIMIT_BOOLEAN_ATTRIBUTE>
- fBoolFlags;
-
+ const numparse::impl::NumberParserImpl* getCurrencyParser(UErrorCode& status) const;
- // style is only valid when decimal formatter is constructed by
- // DecimalFormat(pattern, decimalFormatSymbol, style)
- int fStyle;
+ static void fieldPositionHelper(const number::FormattedNumber& formatted, FieldPosition& fieldPosition,
+ int32_t offset, UErrorCode& status);
+ static void fieldPositionIteratorHelper(const number::FormattedNumber& formatted,
+ FieldPositionIterator* fpi, int32_t offset, UErrorCode& status);
- // Affix pattern set for currency.
- // It is a set of AffixPatternsForCurrency,
- // each element of the set saves the negative prefix pattern,
- // negative suffix pattern, positive prefix pattern,
- // and positive suffix pattern of a pattern.
- // It is used for currency mixed style parsing.
- // It is actually is a set.
- // The set contains the default currency pattern from the locale,
- // and the currency plural patterns.
- // Since it is a set, it does not contain duplicated items.
- // For example, if 2 currency plural patterns are the same, only one pattern
- // is included in the set. When parsing, we do not check whether the plural
- // count match or not.
- Hashtable* fAffixPatternsForCurrency;
+ void setupFastFormat();
- // Information needed for DecimalFormat to format/parse currency plural.
- CurrencyPluralInfo* fCurrencyPluralInfo;
+ bool fastFormatDouble(double input, UnicodeString& output) const;
-#if UCONFIG_HAVE_PARSEALLINPUT
- UNumberFormatAttributeValue fParseAllInput;
-#endif
+ bool fastFormatInt64(int64_t input, UnicodeString& output) const;
- // Decimal Format Static Sets singleton.
- const DecimalFormatStaticSets *fStaticSets;
+ void doFastFormatInt32(int32_t input, bool isNegative, UnicodeString& output) const;
-protected:
+ //=====================================================================================//
+ // INSTANCE FIELDS //
+ //=====================================================================================//
-#ifndef U_HIDE_INTERNAL_API
- /**
- * Rounds a value according to the rules of this object.
- * @internal
- */
- DigitList& _round(const DigitList& number, DigitList& adjustedNum, UBool& isNegative, UErrorCode& status) const;
-#endif /* U_HIDE_INTERNAL_API */
+ // Only one instance field: keep all fields inside of an implementation class defined in number_mapper.h
+ number::impl::DecimalFormatFields* fields;
- /**
- * Returns the currency in effect for this formatter. Subclasses
- * should override this method as needed. Unlike getCurrency(),
- * this method should never return "".
- * @result output parameter for null-terminated result, which must
- * have a capacity of at least 4
- * @internal
- */
- virtual void getEffectiveCurrency(char16_t* result, UErrorCode& ec) const;
-
- /** number of integer digits
- * @stable ICU 2.4
- */
- static const int32_t kDoubleIntegerDigits;
- /** number of fraction digits
- * @stable ICU 2.4
- */
- static const int32_t kDoubleFractionDigits;
-
- /**
- * When someone turns on scientific mode, we assume that more than this
- * number of digits is due to flipping from some other mode that didn't
- * restrict the maximum, and so we force 1 integer digit. We don't bother
- * to track and see if someone is using exponential notation with more than
- * this number, it wouldn't make sense anyway, and this is just to make sure
- * that someone turning on scientific mode with default settings doesn't
- * end up with lots of zeroes.
- * @stable ICU 2.8
- */
- static const int32_t kMaxScientificIntegerDigits;
+ // Allow child class CompactDecimalFormat to access fProperties:
+ friend class CompactDecimalFormat;
};
diff --git a/Build/source/libs/icu/icu-src/source/i18n/unicode/dtptngen.h b/Build/source/libs/icu/icu-src/source/i18n/unicode/dtptngen.h
index feb465e7997..26ccc64060f 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/unicode/dtptngen.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/unicode/dtptngen.h
@@ -498,27 +498,23 @@ public:
private:
/**
* Constructor.
- * @stable ICU 3.8
*/
DateTimePatternGenerator(UErrorCode & status);
/**
* Constructor.
- * @stable ICU 3.8
*/
DateTimePatternGenerator(const Locale& locale, UErrorCode & status);
/**
* Copy constructor.
* @param other DateTimePatternGenerator to copy
- * @stable ICU 3.8
*/
DateTimePatternGenerator(const DateTimePatternGenerator& other);
/**
* Default assignment operator.
* @param other DateTimePatternGenerator to copy
- * @stable ICU 3.8
*/
DateTimePatternGenerator& operator=(const DateTimePatternGenerator& other);
@@ -542,6 +538,11 @@ private:
int32_t fAllowedHourFormats[7]; // Actually an array of AllowedHourFormat enum type, ending with UNKNOWN.
+ // Internal error code used for recording/reporting errors that occur during methods that do not
+ // have a UErrorCode parameter. For example: the Copy Constructor, or the ::clone() method.
+ // When this is set to an error the object is in an invalid state.
+ UErrorCode internalErrorCode;
+
/* internal flags masks for adjustFieldTypes etc. */
enum {
kDTPGNoFlags = 0,
@@ -569,11 +570,10 @@ private:
#endif // U_HIDE_DRAFT_API
void getAppendName(UDateTimePatternField field, UnicodeString& value);
UnicodeString mapSkeletonMetacharacters(const UnicodeString& patternForm, int32_t* flags, UErrorCode& status);
- int32_t getCanonicalIndex(const UnicodeString& field);
- const UnicodeString* getBestRaw(DateTimeMatcher& source, int32_t includeMask, DistanceInfo* missingFields, const PtnSkeleton** specifiedSkeletonPtr = 0);
+ const UnicodeString* getBestRaw(DateTimeMatcher& source, int32_t includeMask, DistanceInfo* missingFields, UErrorCode& status, const PtnSkeleton** specifiedSkeletonPtr = 0);
UnicodeString adjustFieldTypes(const UnicodeString& pattern, const PtnSkeleton* specifiedSkeleton, int32_t flags, UDateTimePatternMatchOptions options = UDATPG_MATCH_NO_OPTIONS);
- UnicodeString getBestAppending(int32_t missingFields, int32_t flags, UDateTimePatternMatchOptions options = UDATPG_MATCH_NO_OPTIONS);
- int32_t getTopBitNumber(int32_t foundMask);
+ UnicodeString getBestAppending(int32_t missingFields, int32_t flags, UErrorCode& status, UDateTimePatternMatchOptions options = UDATPG_MATCH_NO_OPTIONS);
+ int32_t getTopBitNumber(int32_t foundMask) const;
void setAvailableFormat(const UnicodeString &key, UErrorCode& status);
UBool isAvailableFormatSet(const UnicodeString &key) const;
void copyHashtable(Hashtable *other, UErrorCode &status);
diff --git a/Build/source/libs/icu/icu-src/source/i18n/unicode/fmtable.h b/Build/source/libs/icu/icu-src/source/i18n/unicode/fmtable.h
index 766a71969de..a06c23dc3bd 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/unicode/fmtable.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/unicode/fmtable.h
@@ -33,17 +33,11 @@
U_NAMESPACE_BEGIN
class CharString;
-class DigitList;
-
-/**
- * \def UNUM_INTERNAL_STACKARRAY_SIZE
- * @internal
- */
-#if U_PLATFORM == U_PF_OS400
-#define UNUM_INTERNAL_STACKARRAY_SIZE 144
-#else
-#define UNUM_INTERNAL_STACKARRAY_SIZE 128
-#endif
+namespace number {
+namespace impl {
+class DecimalQuantity;
+}
+}
/**
* Formattable objects can be passed to the Format class or
@@ -649,24 +643,25 @@ public:
* Internal function, do not use.
* TODO: figure out how to make this be non-public.
* NumberFormat::format(Formattable, ...
- * needs to get at the DigitList, if it exists, for
+ * needs to get at the DecimalQuantity, if it exists, for
* big decimal formatting.
* @internal
*/
- DigitList *getDigitList() const { return fDecimalNum;}
+ number::impl::DecimalQuantity *getDecimalQuantity() const { return fDecimalQuantity;}
/**
- * @internal
+ * Export the value of this Formattable to a DecimalQuantity.
+ * @internal
*/
- DigitList *getInternalDigitList();
+ void populateDecimalQuantity(number::impl::DecimalQuantity& output, UErrorCode& status) const;
/**
- * Adopt, and set value from, a DigitList
+ * Adopt, and set value from, a DecimalQuantity
* Internal Function, do not use.
- * @param dl the Digit List to be adopted
+ * @param dq the DecimalQuantity to be adopted
* @internal
*/
- void adoptDigitList(DigitList *dl);
+ void adoptDecimalQuantity(number::impl::DecimalQuantity *dq);
/**
* Internal function to return the CharString pointer.
@@ -706,9 +701,7 @@ private:
CharString *fDecimalStr;
- DigitList *fDecimalNum;
-
- char fStackData[UNUM_INTERNAL_STACKARRAY_SIZE]; // must be big enough for DigitList
+ number::impl::DecimalQuantity *fDecimalQuantity;
Type fType;
UnicodeString fBogus; // Bogus string when it's needed.
diff --git a/Build/source/libs/icu/icu-src/source/i18n/unicode/fpositer.h b/Build/source/libs/icu/icu-src/source/i18n/unicode/fpositer.h
index 38ccd8feb30..d9c8eff511b 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/unicode/fpositer.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/unicode/fpositer.h
@@ -47,13 +47,6 @@ U_NAMESPACE_BEGIN
class UVector32;
-// Forward declaration for number formatting:
-namespace number {
-namespace impl {
-class NumberStringBuilder;
-}
-}
-
/**
* FieldPositionIterator returns the field ids and their start/limit positions generated
* by a call to Format::format. See Format, NumberFormat, DecimalFormat.
@@ -114,7 +107,6 @@ private:
void setData(UVector32 *adopt, UErrorCode& status);
friend class FieldPositionIteratorHandler;
- friend class number::impl::NumberStringBuilder;
UVector32 *data;
int32_t pos;
diff --git a/Build/source/libs/icu/icu-src/source/i18n/unicode/gender.h b/Build/source/libs/icu/icu-src/source/i18n/unicode/gender.h
index e3c27d024e0..d2773ebd051 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/unicode/gender.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/unicode/gender.h
@@ -18,6 +18,11 @@
#ifndef _GENDER
#define _GENDER
+/**
+ * \file
+ * \brief C++ API: GenderInfo computes the gender of a list.
+ */
+
#include "unicode/utypes.h"
#if !UCONFIG_NO_FORMATTING
@@ -30,7 +35,7 @@ class GenderInfoTest;
U_NAMESPACE_BEGIN
-// Forward Declaration
+/** \internal Forward Declaration */
void U_CALLCONV GenderInfo_initCache(UErrorCode &status);
/**
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/listformatter.h b/Build/source/libs/icu/icu-src/source/i18n/unicode/listformatter.h
index 180fbcb5cde..5e36cf71cc5 100644
--- a/Build/source/libs/icu/icu-src/source/common/unicode/listformatter.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/unicode/listformatter.h
@@ -26,6 +26,9 @@
U_NAMESPACE_BEGIN
+class FieldPositionIterator;
+class FieldPositionHandler;
+
/** @internal */
class Hashtable;
@@ -33,7 +36,10 @@ class Hashtable;
struct ListFormatInternal;
/* The following can't be #ifndef U_HIDE_INTERNAL_API, needed for other .h file declarations */
-/** @internal */
+/**
+ * @internal
+ * \cond
+ */
struct ListFormatData : public UMemory {
UnicodeString twoPattern;
UnicodeString startPattern;
@@ -43,6 +49,7 @@ struct ListFormatData : public UMemory {
ListFormatData(const UnicodeString& two, const UnicodeString& start, const UnicodeString& middle, const UnicodeString& end) :
twoPattern(two), startPattern(start), middlePattern(middle), endPattern(end) {}
};
+/** \endcond */
/**
@@ -61,7 +68,7 @@ struct ListFormatData : public UMemory {
* The ListFormatter class is not intended for public subclassing.
* @stable ICU 50
*/
-class U_COMMON_API ListFormatter : public UObject{
+class U_I18N_API ListFormatter : public UObject{
public:
@@ -133,6 +140,27 @@ class U_COMMON_API ListFormatter : public UObject{
UnicodeString& format(const UnicodeString items[], int32_t n_items,
UnicodeString& appendTo, UErrorCode& errorCode) const;
+#ifndef U_HIDE_DRAFT_API
+ /**
+ * Format a list of strings.
+ *
+ * @param items An array of strings to be combined and formatted.
+ * @param n_items Length of the array items.
+ * @param appendTo The string to which the formatted result will be
+ * appended.
+ * @param posIter On return, can be used to iterate over positions of
+ * fields generated by this format call. Field values are
+ * defined in UListFormatterField. Can be NULL.
+ * @param errorCode ICU error code returned here.
+ * @return Formatted string combining the elements of items,
+ * appended to appendTo.
+ * @draft ICU 63
+ */
+ UnicodeString& format(const UnicodeString items[], int32_t n_items,
+ UnicodeString & appendTo, FieldPositionIterator* posIter,
+ UErrorCode& errorCode) const;
+#endif /* U_HIDE_DRAFT_API */
+
#ifndef U_HIDE_INTERNAL_API
/**
@internal for MeasureFormat
@@ -160,6 +188,10 @@ class U_COMMON_API ListFormatter : public UObject{
struct ListPatternsSink;
static ListFormatInternal* loadListFormatInternal(const Locale& locale, const char* style, UErrorCode& errorCode);
+ UnicodeString& format_(
+ const UnicodeString items[], int32_t n_items, UnicodeString& appendTo,
+ int32_t index, int32_t &offset, FieldPositionHandler* handler, UErrorCode& errorCode) const;
+
ListFormatter();
ListFormatInternal* owned;
diff --git a/Build/source/libs/icu/icu-src/source/i18n/unicode/measfmt.h b/Build/source/libs/icu/icu-src/source/i18n/unicode/measfmt.h
index 00f2d47a004..3167a76c33a 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/unicode/measfmt.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/unicode/measfmt.h
@@ -104,7 +104,7 @@ class U_I18N_API MeasureFormat : public Format {
* Constructor.
* <p>
* <strong>NOTE:</strong> New users are strongly encouraged to use
- * {@link NumberFormatter} instead of NumberFormat.
+ * {@link icu::number::NumberFormatter} instead of NumberFormat.
* @stable ICU 53
*/
MeasureFormat(
@@ -114,7 +114,7 @@ class U_I18N_API MeasureFormat : public Format {
* Constructor.
* <p>
* <strong>NOTE:</strong> New users are strongly encouraged to use
- * {@link NumberFormatter} instead of NumberFormat.
+ * {@link icu::number::NumberFormatter} instead of NumberFormat.
* @stable ICU 53
*/
MeasureFormat(
@@ -202,7 +202,7 @@ class U_I18N_API MeasureFormat : public Format {
* formatted string is 3.5 meters per second.
* @param measure The measure object. In above example, 3.5 meters.
* @param perUnit The per unit. In above example, it is
- * *MeasureUnit::createSecond(status).
+ * `*%MeasureUnit::createSecond(status)`.
* @param appendTo formatted string appended here.
* @param pos the field position.
* @param status the error.
@@ -223,7 +223,7 @@ class U_I18N_API MeasureFormat : public Format {
* @param unit The unit for which to get a display name.
* @param status the error.
* @return The display name in the locale and width specified in
- * {@link MeasureFormat#getInstance}, or null if there is no display name available
+ * the MeasureFormat constructor, or null if there is no display name available
* for the specified unit.
*
* @stable ICU 58
@@ -236,7 +236,7 @@ class U_I18N_API MeasureFormat : public Format {
* locale.
* <p>
* <strong>NOTE:</strong> New users are strongly encouraged to use
- * {@link NumberFormatter} instead of NumberFormat.
+ * {@link icu::number::NumberFormatter} instead of NumberFormat.
* @param locale desired locale
* @param ec input-output error code
* @return a formatter object, or NULL upon error
@@ -250,7 +250,7 @@ class U_I18N_API MeasureFormat : public Format {
* locale.
* <p>
* <strong>NOTE:</strong> New users are strongly encouraged to use
- * {@link NumberFormatter} instead of NumberFormat.
+ * {@link icu::number::NumberFormatter} instead of NumberFormat.
* @param ec input-output error code
* @return a formatter object, or NULL upon error
* @stable ICU 3.0
@@ -348,7 +348,7 @@ class U_I18N_API MeasureFormat : public Format {
const MeasureFormatCacheData *cache;
const SharedNumberFormat *numberFormat;
const SharedPluralRules *pluralRules;
- UMeasureFormatWidth width;
+ UMeasureFormatWidth fWidth;
// Declared outside of MeasureFormatSharedData because ListFormatter
// objects are relatively cheap to copy; therefore, they don't need to be
diff --git a/Build/source/libs/icu/icu-src/source/i18n/unicode/measunit.h b/Build/source/libs/icu/icu-src/source/i18n/unicode/measunit.h
index 955972440f9..fac18f7b8e5 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/unicode/measunit.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/unicode/measunit.h
@@ -368,6 +368,26 @@ class U_I18N_API MeasureUnit: public UObject {
*/
static MeasureUnit *createPartPerMillion(UErrorCode &status);
+#ifndef U_HIDE_DRAFT_API
+ /**
+ * Returns unit of concentr: percent.
+ * Caller owns returned value and must free it.
+ * @param status ICU error code.
+ * @draft ICU 63
+ */
+ static MeasureUnit *createPercent(UErrorCode &status);
+#endif /* U_HIDE_DRAFT_API */
+
+#ifndef U_HIDE_DRAFT_API
+ /**
+ * Returns unit of concentr: permille.
+ * Caller owns returned value and must free it.
+ * @param status ICU error code.
+ * @draft ICU 63
+ */
+ static MeasureUnit *createPermille(UErrorCode &status);
+#endif /* U_HIDE_DRAFT_API */
+
/**
* Returns unit of consumption: liter-per-100kilometers.
* Caller owns returned value and must free it.
@@ -400,14 +420,6 @@ class U_I18N_API MeasureUnit: public UObject {
*/
static MeasureUnit *createMilePerGallonImperial(UErrorCode &status);
- /*
- * The following were draft ICU 58, but have been withdrawn:
- * static MeasureUnit *createEast(UErrorCode &status);
- * static MeasureUnit *createNorth(UErrorCode &status);
- * static MeasureUnit *createSouth(UErrorCode &status);
- * static MeasureUnit *createWest(UErrorCode &status);
- */
-
/**
* Returns unit of digital: bit.
* Caller owns returned value and must free it.
@@ -472,6 +484,16 @@ class U_I18N_API MeasureUnit: public UObject {
*/
static MeasureUnit *createMegabyte(UErrorCode &status);
+#ifndef U_HIDE_DRAFT_API
+ /**
+ * Returns unit of digital: petabyte.
+ * Caller owns returned value and must free it.
+ * @param status ICU error code.
+ * @draft ICU 63
+ */
+ static MeasureUnit *createPetabyte(UErrorCode &status);
+#endif /* U_HIDE_DRAFT_API */
+
/**
* Returns unit of digital: terabit.
* Caller owns returned value and must free it.
@@ -992,6 +1014,16 @@ class U_I18N_API MeasureUnit: public UObject {
*/
static MeasureUnit *createWatt(UErrorCode &status);
+#ifndef U_HIDE_DRAFT_API
+ /**
+ * Returns unit of pressure: atmosphere.
+ * Caller owns returned value and must free it.
+ * @param status ICU error code.
+ * @draft ICU 63
+ */
+ static MeasureUnit *createAtmosphere(UErrorCode &status);
+#endif /* U_HIDE_DRAFT_API */
+
/**
* Returns unit of pressure: hectopascal.
* Caller owns returned value and must free it.
diff --git a/Build/source/libs/icu/icu-src/source/i18n/unicode/msgfmt.h b/Build/source/libs/icu/icu-src/source/i18n/unicode/msgfmt.h
index fef80107747..074d9335400 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/unicode/msgfmt.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/unicode/msgfmt.h
@@ -124,7 +124,7 @@ class NumberFormat;
* argNumber = '0' | ('1'..'9' ('0'..'9')*)
*
* argType = "number" | "date" | "time" | "spellout" | "ordinal" | "duration"
- * argStyle = "short" | "medium" | "long" | "full" | "integer" | "currency" | "percent" | argStyleText
+ * argStyle = "short" | "medium" | "long" | "full" | "integer" | "currency" | "percent" | argStyleText | "::" argSkeletonText
* </pre>
*
* <ul>
@@ -166,7 +166,7 @@ class NumberFormat;
* <td colspan=2><i>(none)</i>
* <td><code>null</code>
* <tr>
- * <td rowspan=5><code>number</code>
+ * <td rowspan=6><code>number</code>
* <td><i>(none)</i>
* <td><code>NumberFormat.createInstance(getLocale(), status)</code>
* <tr>
@@ -182,6 +182,9 @@ class NumberFormat;
* <td><i>argStyleText</i>
* <td><code>new DecimalFormat(argStyleText, new DecimalFormatSymbols(getLocale(), status), status)</code>
* <tr>
+ * <td><i>argSkeletonText</i>
+ * <td><code>NumberFormatter::forSkeleton(argSkeletonText, status).locale(getLocale()).toFormat(status)</code>
+ * <tr>
* <td rowspan=6><code>date</code>
* <td><i>(none)</i>
* <td><code>DateFormat.createDateInstance(kDefault, getLocale(), status)</code>
@@ -199,7 +202,7 @@ class NumberFormat;
* <td><code>DateFormat.createDateInstance(kFull, getLocale(), status)</code>
* <tr>
* <td><i>argStyleText</i>
- * <td><code>new SimpleDateFormat(argStyleText, getLocale(), status)
+ * <td><code>new SimpleDateFormat(argStyleText, getLocale(), status)</code>
* <tr>
* <td rowspan=6><code>time</code>
* <td><i>(none)</i>
@@ -218,7 +221,7 @@ class NumberFormat;
* <td><code>DateFormat.createTimeInstance(kFull, getLocale(), status)</code>
* <tr>
* <td><i>argStyleText</i>
- * <td><code>new SimpleDateFormat(argStyleText, getLocale(), status)
+ * <td><code>new SimpleDateFormat(argStyleText, getLocale(), status)</code>
* <tr>
* <td><code>spellout</code>
* <td><i>argStyleText (optional)</i>
diff --git a/Build/source/libs/icu/icu-src/source/i18n/unicode/nounit.h b/Build/source/libs/icu/icu-src/source/i18n/unicode/nounit.h
index 290e77e8806..288f268d66d 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/unicode/nounit.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/unicode/nounit.h
@@ -62,6 +62,12 @@ public:
NoUnit(const NoUnit& other);
/**
+ * Destructor.
+ * @draft ICU 60
+ */
+ virtual ~NoUnit();
+
+ /**
* Return a polymorphic clone of this object. The result will
* have the same class as returned by getDynamicClassID().
* @draft ICU 60
@@ -86,12 +92,6 @@ public:
*/
static UClassID U_EXPORT2 getStaticClassID();
- /**
- * Destructor.
- * @draft ICU 60
- */
- virtual ~NoUnit();
-
private:
/**
* Constructor
diff --git a/Build/source/libs/icu/icu-src/source/i18n/unicode/numberformatter.h b/Build/source/libs/icu/icu-src/source/i18n/unicode/numberformatter.h
index 3fbb33cceea..469949a2878 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/unicode/numberformatter.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/unicode/numberformatter.h
@@ -17,6 +17,8 @@
#include "unicode/plurrule.h"
#include "unicode/ucurr.h"
#include "unicode/unum.h"
+#include "unicode/unumberformatter.h"
+#include "unicode/uobject.h"
#ifndef U_HIDE_DRAFT_API
@@ -31,11 +33,11 @@
* // Most basic usage:
* NumberFormatter::withLocale(...).format(123).toString(); // 1,234 in en-US
*
- * // Custom notation, unit, and rounding strategy:
+ * // Custom notation, unit, and rounding precision:
* NumberFormatter::with()
* .notation(Notation::compactShort())
* .unit(CurrencyUnit("EUR", status))
- * .rounding(Rounder::maxDigits(2))
+ * .precision(Precision::maxDigits(2))
* .locale(...)
* .format(1234)
* .toString(); // €1.2K in en-US
@@ -43,7 +45,7 @@
* // Create a formatter in a singleton for use later:
* static const LocalizedNumberFormatter formatter = NumberFormatter::withLocale(...)
* .unit(NoUnit::percent())
- * .rounding(Rounder::fixedFraction(3));
+ * .precision(Precision::fixedFraction(3));
* formatter.format(5.9831).toString(); // 5.983% in en-US
*
* // Create a "template" in a singleton but without setting a locale until the call site:
@@ -63,7 +65,7 @@
*
* <pre>
* UnlocalizedNumberFormatter formatter = UnlocalizedNumberFormatter::with().notation(Notation::scientific());
- * formatter.rounding(Rounder.maxFraction(2)); // does nothing!
+ * formatter.precision(Precision.maxFraction(2)); // does nothing!
* formatter.locale(Locale.getEnglish()).format(9.8765).toString(); // prints "9.8765E0", not "9.88E0"
* </pre>
*
@@ -74,321 +76,23 @@
* @author Shane Carr
*/
-/**
- * An enum declaring how to render units, including currencies. Example outputs when formatting 123 USD and 123
- * meters in <em>en-CA</em>:
- *
- * <p>
- * <ul>
- * <li>NARROW*: "$123.00" and "123 m"
- * <li>SHORT: "US$ 123.00" and "123 m"
- * <li>FULL_NAME: "123.00 US dollars" and "123 meters"
- * <li>ISO_CODE: "USD 123.00" and undefined behavior
- * <li>HIDDEN: "123.00" and "123"
- * </ul>
- *
- * <p>
- * This enum is similar to {@link com.ibm.icu.text.MeasureFormat.FormatWidth}.
- *
- * @draft ICU 60
- */
-typedef enum UNumberUnitWidth {
- /**
- * Print an abbreviated version of the unit name. Similar to SHORT, but always use the shortest available
- * abbreviation or symbol. This option can be used when the context hints at the identity of the unit. For more
- * information on the difference between NARROW and SHORT, see SHORT.
- *
- * <p>
- * In CLDR, this option corresponds to the "Narrow" format for measure units and the "¤¤¤¤¤" placeholder for
- * currencies.
- *
- * @draft ICU 60
- */
- UNUM_UNIT_WIDTH_NARROW,
-
- /**
- * Print an abbreviated version of the unit name. Similar to NARROW, but use a slightly wider abbreviation or
- * symbol when there may be ambiguity. This is the default behavior.
- *
- * <p>
- * For example, in <em>es-US</em>, the SHORT form for Fahrenheit is "{0} °F", but the NARROW form is "{0}°",
- * since Fahrenheit is the customary unit for temperature in that locale.
- *
- * <p>
- * In CLDR, this option corresponds to the "Short" format for measure units and the "¤" placeholder for
- * currencies.
- *
- * @draft ICU 60
- */
- UNUM_UNIT_WIDTH_SHORT,
-
- /**
- * Print the full name of the unit, without any abbreviations.
- *
- * <p>
- * In CLDR, this option corresponds to the default format for measure units and the "¤¤¤" placeholder for
- * currencies.
- *
- * @draft ICU 60
- */
- UNUM_UNIT_WIDTH_FULL_NAME,
-
- /**
- * Use the three-digit ISO XXX code in place of the symbol for displaying currencies. The behavior of this
- * option is currently undefined for use with measure units.
- *
- * <p>
- * In CLDR, this option corresponds to the "¤¤" placeholder for currencies.
- *
- * @draft ICU 60
- */
- UNUM_UNIT_WIDTH_ISO_CODE,
-
- /**
- * Format the number according to the specified unit, but do not display the unit. For currencies, apply
- * monetary symbols and formats as with SHORT, but omit the currency symbol. For measure units, the behavior is
- * equivalent to not specifying the unit at all.
- *
- * @draft ICU 60
- */
- UNUM_UNIT_WIDTH_HIDDEN
+U_NAMESPACE_BEGIN
-#ifndef U_HIDE_INTERNAL_API
- ,
- /**
- * One more than the highest UNumberUnitWidth value.
- *
- * @internal ICU 60: The numeric value may change over time; see ICU ticket #12420.
- */
- UNUM_UNIT_WIDTH_COUNT
-#endif // U_HIDE_INTERNAL_API
-} UNumberUnitWidth;
-
-/**
- * An enum declaring the strategy for when and how to display grouping separators (i.e., the
- * separator, often a comma or period, after every 2-3 powers of ten). The choices are several
- * pre-built strategies for different use cases that employ locale data whenever possible. Example
- * outputs for 1234 and 1234567 in <em>en-IN</em>:
- *
- * <ul>
- * <li>OFF: 1234 and 12345
- * <li>MIN2: 1234 and 12,34,567
- * <li>AUTO: 1,234 and 12,34,567
- * <li>ON_ALIGNED: 1,234 and 12,34,567
- * <li>THOUSANDS: 1,234 and 1,234,567
- * </ul>
- *
- * <p>
- * The default is AUTO, which displays grouping separators unless the locale data says that grouping
- * is not customary. To force grouping for all numbers greater than 1000 consistently across locales,
- * use ON_ALIGNED. On the other hand, to display grouping less frequently than the default, use MIN2
- * or OFF. See the docs of each option for details.
- *
- * <p>
- * Note: This enum specifies the strategy for grouping sizes. To set which character to use as the
- * grouping separator, use the "symbols" setter.
- *
- * @draft ICU 61
- */
-typedef enum UGroupingStrategy {
- /**
- * Do not display grouping separators in any locale.
- *
- * @draft ICU 61
- */
- UNUM_GROUPING_OFF,
-
- /**
- * Display grouping using locale defaults, except do not show grouping on values smaller than
- * 10000 (such that there is a <em>minimum of two digits</em> before the first separator).
- *
- * <p>
- * Note that locales may restrict grouping separators to be displayed only on 1 million or
- * greater (for example, ee and hu) or disable grouping altogether (for example, bg currency).
- *
- * <p>
- * Locale data is used to determine whether to separate larger numbers into groups of 2
- * (customary in South Asia) or groups of 3 (customary in Europe and the Americas).
- *
- * @draft ICU 61
- */
- UNUM_GROUPING_MIN2,
-
- /**
- * Display grouping using the default strategy for all locales. This is the default behavior.
- *
- * <p>
- * Note that locales may restrict grouping separators to be displayed only on 1 million or
- * greater (for example, ee and hu) or disable grouping altogether (for example, bg currency).
- *
- * <p>
- * Locale data is used to determine whether to separate larger numbers into groups of 2
- * (customary in South Asia) or groups of 3 (customary in Europe and the Americas).
- *
- * @draft ICU 61
- */
- UNUM_GROUPING_AUTO,
-
- /**
- * Always display the grouping separator on values of at least 1000.
- *
- * <p>
- * This option ignores the locale data that restricts or disables grouping, described in MIN2 and
- * AUTO. This option may be useful to normalize the alignment of numbers, such as in a
- * spreadsheet.
- *
- * <p>
- * Locale data is used to determine whether to separate larger numbers into groups of 2
- * (customary in South Asia) or groups of 3 (customary in Europe and the Americas).
- *
- * @draft ICU 61
- */
- UNUM_GROUPING_ON_ALIGNED,
-
- /**
- * Use the Western defaults: groups of 3 and enabled for all numbers 1000 or greater. Do not use
- * locale data for determining the grouping strategy.
- *
- * @draft ICU 61
- */
- UNUM_GROUPING_THOUSANDS
-
-} UGroupingStrategy;
-
-/**
- * An enum declaring how to denote positive and negative numbers. Example outputs when formatting
- * 123, 0, and -123 in <em>en-US</em>:
- *
- * <ul>
- * <li>AUTO: "123", "0", and "-123"
- * <li>ALWAYS: "+123", "+0", and "-123"
- * <li>NEVER: "123", "0", and "123"
- * <li>ACCOUNTING: "$123", "$0", and "($123)"
- * <li>ACCOUNTING_ALWAYS: "+$123", "+$0", and "($123)"
- * <li>EXCEPT_ZERO: "+123", "0", and "-123"
- * <li>ACCOUNTING_EXCEPT_ZERO: "+$123", "$0", and "($123)"
- * </ul>
- *
- * <p>
- * The exact format, including the position and the code point of the sign, differ by locale.
- *
- * @draft ICU 60
- */
-typedef enum UNumberSignDisplay {
- /**
- * Show the minus sign on negative numbers, and do not show the sign on positive numbers. This is the default
- * behavior.
- *
- * @draft ICU 60
- */
- UNUM_SIGN_AUTO,
-
- /**
- * Show the minus sign on negative numbers and the plus sign on positive numbers, including zero.
- * To hide the sign on zero, see {@link UNUM_SIGN_EXCEPT_ZERO}.
- *
- * @draft ICU 60
- */
- UNUM_SIGN_ALWAYS,
-
- /**
- * Do not show the sign on positive or negative numbers.
- *
- * @draft ICU 60
- */
- UNUM_SIGN_NEVER,
-
- /**
- * Use the locale-dependent accounting format on negative numbers, and do not show the sign on positive numbers.
- *
- * <p>
- * The accounting format is defined in CLDR and varies by locale; in many Western locales, the format is a pair
- * of parentheses around the number.
- *
- * <p>
- * Note: Since CLDR defines the accounting format in the monetary context only, this option falls back to the
- * AUTO sign display strategy when formatting without a currency unit. This limitation may be lifted in the
- * future.
- *
- * @draft ICU 60
- */
- UNUM_SIGN_ACCOUNTING,
-
- /**
- * Use the locale-dependent accounting format on negative numbers, and show the plus sign on
- * positive numbers, including zero. For more information on the accounting format, see the
- * ACCOUNTING sign display strategy. To hide the sign on zero, see
- * {@link UNUM_SIGN_ACCOUNTING_EXCEPT_ZERO}.
- *
- * @draft ICU 60
- */
- UNUM_SIGN_ACCOUNTING_ALWAYS,
-
- /**
- * Show the minus sign on negative numbers and the plus sign on positive numbers. Do not show a
- * sign on zero.
- *
- * @draft ICU 61
- */
- UNUM_SIGN_EXCEPT_ZERO,
-
- /**
- * Use the locale-dependent accounting format on negative numbers, and show the plus sign on
- * positive numbers. Do not show a sign on zero. For more information on the accounting format,
- * see the ACCOUNTING sign display strategy.
- *
- * @draft ICU 61
- */
- UNUM_SIGN_ACCOUNTING_EXCEPT_ZERO
-
-#ifndef U_HIDE_INTERNAL_API
- ,
- /**
- * One more than the highest UNumberSignDisplay value.
- *
- * @internal ICU 60: The numeric value may change over time; see ICU ticket #12420.
- */
- UNUM_SIGN_COUNT
-#endif // U_HIDE_INTERNAL_API
-} UNumberSignDisplay;
+// Forward declarations:
+class IFixedDecimal;
+class FieldPositionIteratorHandler;
-/**
- * An enum declaring how to render the decimal separator.
- *
- * <p>
- * <ul>
- * <li>UNUM_DECIMAL_SEPARATOR_AUTO: "1", "1.1"
- * <li>UNUM_DECIMAL_SEPARATOR_ALWAYS: "1.", "1.1"
- * </ul>
- */
-typedef enum UNumberDecimalSeparatorDisplay {
- /**
- * Show the decimal separator when there are one or more digits to display after the separator, and do not show
- * it otherwise. This is the default behavior.
- *
- * @draft ICU 60
- */
- UNUM_DECIMAL_SEPARATOR_AUTO,
+namespace numparse {
+namespace impl {
- /**
- * Always show the decimal separator, even if there are no digits to display after the separator.
- *
- * @draft ICU 60
- */
- UNUM_DECIMAL_SEPARATOR_ALWAYS
+// Forward declarations:
+class NumberParserImpl;
+class MultiplierParseHandler;
-#ifndef U_HIDE_INTERNAL_API
- ,
- /**
- * One more than the highest UNumberDecimalSeparatorDisplay value.
- *
- * @internal ICU 60: The numeric value may change over time; see ICU ticket #12420.
- */
- UNUM_DECIMAL_SEPARATOR_COUNT
-#endif // U_HIDE_INTERNAL_API
-} UNumberDecimalMarkDisplay;
+}
+}
-U_NAMESPACE_BEGIN namespace number { // icu::number
+namespace number { // icu::number
// Forward declarations:
class UnlocalizedNumberFormatter;
@@ -396,15 +100,14 @@ class LocalizedNumberFormatter;
class FormattedNumber;
class Notation;
class ScientificNotation;
-class Rounder;
-class FractionRounder;
-class CurrencyRounder;
-class IncrementRounder;
+class Precision;
+class FractionPrecision;
+class CurrencyPrecision;
+class IncrementPrecision;
class IntegerWidth;
namespace impl {
-#ifndef U_HIDE_INTERNAL_API
/**
* Datatype for minimum/maximum fraction digits. Must be able to hold kMaxIntFracSig.
*
@@ -419,29 +122,53 @@ typedef int16_t digits_t;
* @internal
*/
static constexpr int32_t DEFAULT_THRESHOLD = 3;
-#endif // U_HIDE_INTERNAL_API
// Forward declarations:
class Padder;
struct MacroProps;
struct MicroProps;
class DecimalQuantity;
-struct NumberFormatterResults;
+struct UFormattedNumberData;
class NumberFormatterImpl;
struct ParsedPatternInfo;
class ScientificModifier;
class MultiplierProducer;
-class MutablePatternModifier;
-class LongNameHandler;
+class RoundingImpl;
class ScientificHandler;
-class CompactHandler;
class Modifier;
class NumberStringBuilder;
+class AffixPatternProvider;
+class NumberPropertyMapper;
+struct DecimalFormatProperties;
+class MultiplierFormatHandler;
+class CurrencySymbols;
+class GeneratorHelpers;
+class DecNum;
+class NumberRangeFormatterImpl;
+struct RangeMacroProps;
+
+/**
+ * Used for NumberRangeFormatter and implemented in numrange_fluent.cpp.
+ * Declared here so it can be friended.
+ *
+ * @internal
+ */
+void touchRangeLocales(impl::RangeMacroProps& macros);
} // namespace impl
-// Reserve extra names in case they are added as classes in the future:
+/**
+ * Extra name reserved in case it is needed in the future.
+ *
+ * @draft ICU 63
+ */
typedef Notation CompactNotation;
+
+/**
+ * Extra name reserved in case it is needed in the future.
+ *
+ * @draft ICU 63
+ */
typedef Notation SimpleNotation;
/**
@@ -530,13 +257,13 @@ class U_I18N_API Notation : public UMemory {
* </pre>
*
* <p>
- * When compact notation is specified without an explicit rounding strategy, numbers are rounded off to the closest
+ * When compact notation is specified without an explicit rounding precision, numbers are rounded off to the closest
* integer after scaling the number by the corresponding power of 10, but with a digit shown after the decimal
- * separator if there is only one digit before the decimal separator. The default compact notation rounding strategy
+ * separator if there is only one digit before the decimal separator. The default compact notation rounding precision
* is equivalent to:
*
* <pre>
- * Rounder.integer().withMinDigits(2)
+ * Precision::integer().withMinDigits(2)
* </pre>
*
* @return A CompactNotation for passing to the NumberFormatter notation() setter.
@@ -601,10 +328,15 @@ class U_I18N_API Notation : public UMemory {
union NotationUnion {
// For NTN_SCIENTIFIC
+ /** @internal */
struct ScientificSettings {
+ /** @internal */
int8_t fEngineeringInterval;
+ /** @internal */
bool fRequireMinInt;
+ /** @internal */
impl::digits_t fMinExponentDigits;
+ /** @internal */
UNumberSignDisplay fExponentSignDisplay;
} scientific;
@@ -641,6 +373,9 @@ class U_I18N_API Notation : public UMemory {
friend class impl::NumberFormatterImpl;
friend class impl::ScientificModifier;
friend class impl::ScientificHandler;
+
+ // To allow access to the skeleton generation code:
+ friend class impl::GeneratorHelpers;
};
/**
@@ -687,21 +422,60 @@ class U_I18N_API ScientificNotation : public Notation {
// Inherit constructor
using Notation::Notation;
+ // Raw constructor for NumberPropertyMapper
+ ScientificNotation(int8_t fEngineeringInterval, bool fRequireMinInt, impl::digits_t fMinExponentDigits,
+ UNumberSignDisplay fExponentSignDisplay);
+
friend class Notation;
+
+ // So that NumberPropertyMapper can create instances
+ friend class impl::NumberPropertyMapper;
};
-// Reserve extra names in case they are added as classes in the future:
-typedef Rounder DigitRounder;
+/**
+ * Extra name reserved in case it is needed in the future.
+ *
+ * @draft ICU 63
+ */
+typedef Precision SignificantDigitsPrecision;
+
+// Typedefs for ICU 60/61 compatibility.
+// These will be removed in ICU 64.
+// See http://bugs.icu-project.org/trac/ticket/13746
+
+/**
+ * This will be removed in ICU 64. See ICU-13746.
+ * @deprecated ICU 63
+ */
+typedef Precision Rounder;
+
+/**
+ * This will be removed in ICU 64. See ICU-13746.
+ * @deprecated ICU 63
+ */
+typedef FractionPrecision FractionRounder;
/**
- * A class that defines the rounding strategy to be used when formatting numbers in NumberFormatter.
+ * This will be removed in ICU 64. See ICU-13746.
+ * @deprecated ICU 63
+ */
+typedef IncrementPrecision IncrementRounder;
+
+/**
+ * This will be removed in ICU 64. See ICU-13746.
+ * @deprecated ICU 63
+ */
+typedef CurrencyPrecision CurrencyRounder;
+
+/**
+ * A class that defines the rounding precision to be used when formatting numbers in NumberFormatter.
*
* <p>
- * To create a Rounder, use one of the factory methods.
+ * To create a Precision, use one of the factory methods.
*
* @draft ICU 60
*/
-class U_I18N_API Rounder : public UMemory {
+class U_I18N_API Precision : public UMemory {
public:
/**
@@ -717,18 +491,18 @@ class U_I18N_API Rounder : public UMemory {
* <p>
* http://www.serpentine.com/blog/2011/06/29/here-be-dragons-advances-in-problems-you-didnt-even-know-you-had/
*
- * @return A Rounder for chaining or passing to the NumberFormatter rounding() setter.
+ * @return A Precision for chaining or passing to the NumberFormatter precision() setter.
* @draft ICU 60
*/
- static Rounder unlimited();
+ static Precision unlimited();
/**
* Show numbers rounded if necessary to the nearest integer.
*
- * @return A FractionRounder for chaining or passing to the NumberFormatter rounding() setter.
+ * @return A FractionPrecision for chaining or passing to the NumberFormatter precision() setter.
* @draft ICU 60
*/
- static FractionRounder integer();
+ static FractionPrecision integer();
/**
* Show numbers rounded if necessary to a certain number of fraction places (numerals after the decimal separator).
@@ -754,10 +528,10 @@ class U_I18N_API Rounder : public UMemory {
* @param minMaxFractionPlaces
* The minimum and maximum number of numerals to display after the decimal separator (rounding if too
* long or padding with zeros if too short).
- * @return A FractionRounder for chaining or passing to the NumberFormatter rounding() setter.
+ * @return A FractionPrecision for chaining or passing to the NumberFormatter precision() setter.
* @draft ICU 60
*/
- static FractionRounder fixedFraction(int32_t minMaxFractionPlaces);
+ static FractionPrecision fixedFraction(int32_t minMaxFractionPlaces);
/**
* Always show at least a certain number of fraction places after the decimal separator, padding with zeros if
@@ -769,10 +543,10 @@ class U_I18N_API Rounder : public UMemory {
* @param minFractionPlaces
* The minimum number of numerals to display after the decimal separator (padding with zeros if
* necessary).
- * @return A FractionRounder for chaining or passing to the NumberFormatter rounding() setter.
+ * @return A FractionPrecision for chaining or passing to the NumberFormatter precision() setter.
* @draft ICU 60
*/
- static FractionRounder minFraction(int32_t minFractionPlaces);
+ static FractionPrecision minFraction(int32_t minFractionPlaces);
/**
* Show numbers rounded if necessary to a certain number of fraction places (numerals after the decimal separator).
@@ -781,10 +555,10 @@ class U_I18N_API Rounder : public UMemory {
*
* @param maxFractionPlaces
* The maximum number of numerals to display after the decimal mark (rounding if necessary).
- * @return A FractionRounder for chaining or passing to the NumberFormatter rounding() setter.
+ * @return A FractionPrecision for chaining or passing to the NumberFormatter precision() setter.
* @draft ICU 60
*/
- static FractionRounder maxFraction(int32_t maxFractionPlaces);
+ static FractionPrecision maxFraction(int32_t maxFractionPlaces);
/**
* Show numbers rounded if necessary to a certain number of fraction places (numerals after the decimal separator);
@@ -796,10 +570,10 @@ class U_I18N_API Rounder : public UMemory {
* necessary).
* @param maxFractionPlaces
* The maximum number of numerals to display after the decimal separator (rounding if necessary).
- * @return A FractionRounder for chaining or passing to the NumberFormatter rounding() setter.
+ * @return A FractionPrecision for chaining or passing to the NumberFormatter precision() setter.
* @draft ICU 60
*/
- static FractionRounder minMaxFraction(int32_t minFractionPlaces, int32_t maxFractionPlaces);
+ static FractionPrecision minMaxFraction(int32_t minFractionPlaces, int32_t maxFractionPlaces);
/**
* Show numbers rounded if necessary to a certain number of significant digits or significant figures. Additionally,
@@ -811,10 +585,10 @@ class U_I18N_API Rounder : public UMemory {
* @param minMaxSignificantDigits
* The minimum and maximum number of significant digits to display (rounding if too long or padding with
* zeros if too short).
- * @return A Rounder for chaining or passing to the NumberFormatter rounding() setter.
- * @draft ICU 60
+ * @return A precision for chaining or passing to the NumberFormatter precision() setter.
+ * @draft ICU 62
*/
- static DigitRounder fixedDigits(int32_t minMaxSignificantDigits);
+ static SignificantDigitsPrecision fixedSignificantDigits(int32_t minMaxSignificantDigits);
/**
* Always show at least a certain number of significant digits/figures, padding with zeros if necessary. Do not
@@ -825,20 +599,20 @@ class U_I18N_API Rounder : public UMemory {
*
* @param minSignificantDigits
* The minimum number of significant digits to display (padding with zeros if too short).
- * @return A Rounder for chaining or passing to the NumberFormatter rounding() setter.
- * @draft ICU 60
+ * @return A precision for chaining or passing to the NumberFormatter precision() setter.
+ * @draft ICU 62
*/
- static DigitRounder minDigits(int32_t minSignificantDigits);
+ static SignificantDigitsPrecision minSignificantDigits(int32_t minSignificantDigits);
/**
* Show numbers rounded if necessary to a certain number of significant digits/figures.
*
* @param maxSignificantDigits
* The maximum number of significant digits to display (rounding if too long).
- * @return A Rounder for chaining or passing to the NumberFormatter rounding() setter.
- * @draft ICU 60
+ * @return A precision for chaining or passing to the NumberFormatter precision() setter.
+ * @draft ICU 62
*/
- static DigitRounder maxDigits(int32_t maxSignificantDigits);
+ static SignificantDigitsPrecision maxSignificantDigits(int32_t maxSignificantDigits);
/**
* Show numbers rounded if necessary to a certain number of significant digits/figures; in addition, always show at
@@ -848,10 +622,36 @@ class U_I18N_API Rounder : public UMemory {
* The minimum number of significant digits to display (padding with zeros if necessary).
* @param maxSignificantDigits
* The maximum number of significant digits to display (rounding if necessary).
- * @return A Rounder for chaining or passing to the NumberFormatter rounding() setter.
- * @draft ICU 60
+ * @return A precision for chaining or passing to the NumberFormatter precision() setter.
+ * @draft ICU 62
*/
- static DigitRounder minMaxDigits(int32_t minSignificantDigits, int32_t maxSignificantDigits);
+ static SignificantDigitsPrecision minMaxSignificantDigits(int32_t minSignificantDigits,
+ int32_t maxSignificantDigits);
+
+#ifndef U_HIDE_DEPRECATED_API
+ // Compatiblity methods that will be removed in ICU 64.
+ // See http://bugs.icu-project.org/trac/ticket/13746
+
+ /** @deprecated ICU 62 */
+ static inline SignificantDigitsPrecision fixedDigits(int32_t a) {
+ return fixedSignificantDigits(a);
+ }
+
+ /** @deprecated ICU 62 */
+ static inline SignificantDigitsPrecision minDigits(int32_t a) {
+ return minSignificantDigits(a);
+ }
+
+ /** @deprecated ICU 62 */
+ static inline SignificantDigitsPrecision maxDigits(int32_t a) {
+ return maxSignificantDigits(a);
+ }
+
+ /** @deprecated ICU 62 */
+ static inline SignificantDigitsPrecision minMaxDigits(int32_t a, int32_t b) {
+ return minMaxSignificantDigits(a, b);
+ }
+#endif /* U_HIDE_DEPRECATED_API */
/**
* Show numbers rounded if necessary to the closest multiple of a certain rounding increment. For example, if the
@@ -864,20 +664,21 @@ class U_I18N_API Rounder : public UMemory {
* decimal separator (to display 1.2 as "1.00" and 1.3 as "1.50"), you can run:
*
* <pre>
- * Rounder::increment(0.5).withMinFraction(2)
+ * Precision::increment(0.5).withMinFraction(2)
* </pre>
*
* @param roundingIncrement
* The increment to which to round numbers.
- * @return A Rounder for chaining or passing to the NumberFormatter rounding() setter.
+ * @return A precision for chaining or passing to the NumberFormatter precision() setter.
* @draft ICU 60
*/
- static IncrementRounder increment(double roundingIncrement);
+ static IncrementPrecision increment(double roundingIncrement);
/**
- * Show numbers rounded and padded according to the rules for the currency unit. The most common rounding settings
- * for currencies include <code>Rounder.fixedFraction(2)</code>, <code>Rounder.integer()</code>, and
- * <code>Rounder.increment(0.05)</code> for cash transactions ("nickel rounding").
+ * Show numbers rounded and padded according to the rules for the currency unit. The most common
+ * rounding precision settings for currencies include <code>Precision::fixedFraction(2)</code>,
+ * <code>Precision::integer()</code>, and <code>Precision::increment(0.05)</code> for cash transactions
+ * ("nickel rounding").
*
* <p>
* The exact rounding details will be resolved at runtime based on the currency unit specified in the
@@ -887,24 +688,28 @@ class U_I18N_API Rounder : public UMemory {
* @param currencyUsage
* Either STANDARD (for digital transactions) or CASH (for transactions where the rounding increment may
* be limited by the available denominations of cash or coins).
- * @return A CurrencyRounder for chaining or passing to the NumberFormatter rounding() setter.
+ * @return A CurrencyPrecision for chaining or passing to the NumberFormatter precision() setter.
* @draft ICU 60
*/
- static CurrencyRounder currency(UCurrencyUsage currencyUsage);
+ static CurrencyPrecision currency(UCurrencyUsage currencyUsage);
+#ifndef U_HIDE_DEPRECATED_API
/**
* Sets the rounding mode to use when picking the direction to round (up or down). Common values
* include HALF_EVEN, HALF_UP, and FLOOR. The default is HALF_EVEN.
*
* @param roundingMode
* The RoundingMode to use.
- * @return A Rounder for passing to the NumberFormatter rounding() setter.
- * @draft ICU 60
+ * @return A Precision for passing to the NumberFormatter precision() setter.
+ * @deprecated ICU 62 Use the top-level roundingMode() setting instead.
+ * This method will be removed in ICU 64.
+ * See http://bugs.icu-project.org/trac/ticket/13746
*/
- Rounder withMode(UNumberFormatRoundingMode roundingMode) const;
+ Precision withMode(UNumberFormatRoundingMode roundingMode) const;
+#endif /* U_HIDE_DEPRECATED_API */
private:
- enum RounderType {
+ enum PrecisionType {
RND_BOGUS,
RND_NONE,
RND_FRACTION,
@@ -912,39 +717,50 @@ class U_I18N_API Rounder : public UMemory {
RND_FRACTION_SIGNIFICANT,
RND_INCREMENT,
RND_CURRENCY,
- RND_PASS_THROUGH,
RND_ERROR
} fType;
- union RounderUnion {
+ union PrecisionUnion {
+ /** @internal */
struct FractionSignificantSettings {
// For RND_FRACTION, RND_SIGNIFICANT, and RND_FRACTION_SIGNIFICANT
+ /** @internal */
impl::digits_t fMinFrac;
+ /** @internal */
impl::digits_t fMaxFrac;
+ /** @internal */
impl::digits_t fMinSig;
+ /** @internal */
impl::digits_t fMaxSig;
} fracSig;
+ /** @internal */
struct IncrementSettings {
+ /** @internal */
double fIncrement;
+ /** @internal */
impl::digits_t fMinFrac;
+ /** @internal */
+ impl::digits_t fMaxFrac;
} increment; // For RND_INCREMENT
UCurrencyUsage currencyUsage; // For RND_CURRENCY
UErrorCode errorCode; // For RND_ERROR
} fUnion;
- typedef RounderUnion::FractionSignificantSettings FractionSignificantSettings;
- typedef RounderUnion::IncrementSettings IncrementSettings;
+ typedef PrecisionUnion::FractionSignificantSettings FractionSignificantSettings;
+ typedef PrecisionUnion::IncrementSettings IncrementSettings;
+ /** The Precision encapsulates the RoundingMode when used within the implementation. */
UNumberFormatRoundingMode fRoundingMode;
- Rounder(const RounderType &type, const RounderUnion &union_, UNumberFormatRoundingMode roundingMode)
+ Precision(const PrecisionType& type, const PrecisionUnion& union_,
+ UNumberFormatRoundingMode roundingMode)
: fType(type), fUnion(union_), fRoundingMode(roundingMode) {}
- Rounder(UErrorCode errorCode) : fType(RND_ERROR) {
+ Precision(UErrorCode errorCode) : fType(RND_ERROR) {
fUnion.errorCode = errorCode;
}
- Rounder() : fType(RND_BOGUS) {}
+ Precision() : fType(RND_BOGUS) {}
bool isBogus() const {
return fType == RND_BOGUS;
@@ -958,47 +774,21 @@ class U_I18N_API Rounder : public UMemory {
return FALSE;
}
- // On the parent type so that this method can be called internally on Rounder instances.
- Rounder withCurrency(const CurrencyUnit &currency, UErrorCode &status) const;
-
- /** NON-CONST: mutates the current instance. */
- void setLocaleData(const CurrencyUnit &currency, UErrorCode &status);
+ // On the parent type so that this method can be called internally on Precision instances.
+ Precision withCurrency(const CurrencyUnit &currency, UErrorCode &status) const;
- void apply(impl::DecimalQuantity &value, UErrorCode &status) const;
+ static FractionPrecision constructFraction(int32_t minFrac, int32_t maxFrac);
- /** Version of {@link #apply} that obeys minInt constraints. Used for scientific notation compatibility mode. */
- void apply(impl::DecimalQuantity &value, int32_t minInt, UErrorCode status);
+ static Precision constructSignificant(int32_t minSig, int32_t maxSig);
- /**
- * Rounding endpoint used by Engineering and Compact notation. Chooses the most appropriate multiplier (magnitude
- * adjustment), applies the adjustment, rounds, and returns the chosen multiplier.
- *
- * <p>
- * In most cases, this is simple. However, when rounding the number causes it to cross a multiplier boundary, we
- * need to re-do the rounding. For example, to display 999,999 in Engineering notation with 2 sigfigs, first you
- * guess the multiplier to be -3. However, then you end up getting 1000E3, which is not the correct output. You then
- * change your multiplier to be -6, and you get 1.0E6, which is correct.
- *
- * @param input The quantity to process.
- * @param producer Function to call to return a multiplier based on a magnitude.
- * @return The number of orders of magnitude the input was adjusted by this method.
- */
- int32_t
- chooseMultiplierAndApply(impl::DecimalQuantity &input, const impl::MultiplierProducer &producer,
- UErrorCode &status);
+ static Precision
+ constructFractionSignificant(const FractionPrecision &base, int32_t minSig, int32_t maxSig);
- static FractionRounder constructFraction(int32_t minFrac, int32_t maxFrac);
+ static IncrementPrecision constructIncrement(double increment, int32_t minFrac);
- static Rounder constructSignificant(int32_t minSig, int32_t maxSig);
+ static CurrencyPrecision constructCurrency(UCurrencyUsage usage);
- static Rounder
- constructFractionSignificant(const FractionRounder &base, int32_t minSig, int32_t maxSig);
-
- static IncrementRounder constructIncrement(double increment, int32_t minFrac);
-
- static CurrencyRounder constructCurrency(UCurrencyUsage usage);
-
- static Rounder constructPassThrough();
+ static Precision constructPassThrough();
// To allow MacroProps/MicroProps to initialize bogus instances:
friend struct impl::MacroProps;
@@ -1007,28 +797,31 @@ class U_I18N_API Rounder : public UMemory {
// To allow NumberFormatterImpl to access isBogus() and other internal methods:
friend class impl::NumberFormatterImpl;
- // To give access to apply() and chooseMultiplierAndApply():
- friend class impl::MutablePatternModifier;
- friend class impl::LongNameHandler;
- friend class impl::ScientificHandler;
- friend class impl::CompactHandler;
+ // To allow NumberPropertyMapper to create instances from DecimalFormatProperties:
+ friend class impl::NumberPropertyMapper;
+
+ // To allow access to the main implementation class:
+ friend class impl::RoundingImpl;
// To allow child classes to call private methods:
- friend class FractionRounder;
- friend class CurrencyRounder;
- friend class IncrementRounder;
+ friend class FractionPrecision;
+ friend class CurrencyPrecision;
+ friend class IncrementPrecision;
+
+ // To allow access to the skeleton generation code:
+ friend class impl::GeneratorHelpers;
};
/**
- * A class that defines a rounding strategy based on a number of fraction places and optionally significant digits to be
+ * A class that defines a rounding precision based on a number of fraction places and optionally significant digits to be
* used when formatting numbers in NumberFormatter.
*
* <p>
- * To create a FractionRounder, use one of the factory methods on Rounder.
+ * To create a FractionPrecision, use one of the factory methods on Precision.
*
* @draft ICU 60
*/
-class U_I18N_API FractionRounder : public Rounder {
+class U_I18N_API FractionPrecision : public Precision {
public:
/**
* Ensure that no less than this number of significant digits are retained when rounding according to fraction
@@ -1043,10 +836,10 @@ class U_I18N_API FractionRounder : public Rounder {
*
* @param minSignificantDigits
* The number of significant figures to guarantee.
- * @return A Rounder for chaining or passing to the NumberFormatter rounding() setter.
+ * @return A precision for chaining or passing to the NumberFormatter precision() setter.
* @draft ICU 60
*/
- Rounder withMinDigits(int32_t minSignificantDigits) const;
+ Precision withMinDigits(int32_t minSignificantDigits) const;
/**
* Ensure that no more than this number of significant digits are retained when rounding according to fraction
@@ -1062,36 +855,36 @@ class U_I18N_API FractionRounder : public Rounder {
*
* @param maxSignificantDigits
* Round the number to no more than this number of significant figures.
- * @return A Rounder for chaining or passing to the NumberFormatter rounding() setter.
+ * @return A precision for chaining or passing to the NumberFormatter precision() setter.
* @draft ICU 60
*/
- Rounder withMaxDigits(int32_t maxSignificantDigits) const;
+ Precision withMaxDigits(int32_t maxSignificantDigits) const;
private:
// Inherit constructor
- using Rounder::Rounder;
+ using Precision::Precision;
// To allow parent class to call this class's constructor:
- friend class Rounder;
+ friend class Precision;
};
/**
- * A class that defines a rounding strategy parameterized by a currency to be used when formatting numbers in
+ * A class that defines a rounding precision parameterized by a currency to be used when formatting numbers in
* NumberFormatter.
*
* <p>
- * To create a CurrencyRounder, use one of the factory methods on Rounder.
+ * To create a CurrencyPrecision, use one of the factory methods on Precision.
*
* @draft ICU 60
*/
-class U_I18N_API CurrencyRounder : public Rounder {
+class U_I18N_API CurrencyPrecision : public Precision {
public:
/**
- * Associates a currency with this rounding strategy.
+ * Associates a currency with this rounding precision.
*
* <p>
* <strong>Calling this method is <em>not required</em></strong>, because the currency specified in unit()
- * is automatically applied to currency rounding strategies. However,
+ * is automatically applied to currency rounding precisions. However,
* this method enables you to override that automatic association.
*
* <p>
@@ -1099,30 +892,30 @@ class U_I18N_API CurrencyRounder : public Rounder {
* currency format.
*
* @param currency
- * The currency to associate with this rounding strategy.
- * @return A Rounder for chaining or passing to the NumberFormatter rounding() setter.
+ * The currency to associate with this rounding precision.
+ * @return A precision for chaining or passing to the NumberFormatter precision() setter.
* @draft ICU 60
*/
- Rounder withCurrency(const CurrencyUnit &currency) const;
+ Precision withCurrency(const CurrencyUnit &currency) const;
private:
// Inherit constructor
- using Rounder::Rounder;
+ using Precision::Precision;
// To allow parent class to call this class's constructor:
- friend class Rounder;
+ friend class Precision;
};
/**
- * A class that defines a rounding strategy parameterized by a rounding increment to be used when formatting numbers in
+ * A class that defines a rounding precision parameterized by a rounding increment to be used when formatting numbers in
* NumberFormatter.
*
* <p>
- * To create an IncrementRounder, use one of the factory methods on Rounder.
+ * To create an IncrementPrecision, use one of the factory methods on Precision.
*
* @draft ICU 60
*/
-class U_I18N_API IncrementRounder : public Rounder {
+class U_I18N_API IncrementPrecision : public Precision {
public:
/**
* Specifies the minimum number of fraction digits to render after the decimal separator, padding with zeros if
@@ -1136,17 +929,17 @@ class U_I18N_API IncrementRounder : public Rounder {
* Note: In ICU4J, this functionality is accomplished via the scale of the BigDecimal rounding increment.
*
* @param minFrac The minimum number of digits after the decimal separator.
- * @return A Rounder for chaining or passing to the NumberFormatter rounding() setter.
+ * @return A precision for chaining or passing to the NumberFormatter precision() setter.
* @draft ICU 60
*/
- Rounder withMinFraction(int32_t minFrac) const;
+ Precision withMinFraction(int32_t minFrac) const;
private:
// Inherit constructor
- using Rounder::Rounder;
+ using Precision::Precision;
// To allow parent class to call this class's constructor:
- friend class Rounder;
+ friend class Precision;
};
/**
@@ -1170,7 +963,6 @@ class U_I18N_API IntegerWidth : public UMemory {
* The minimum number of places before the decimal separator.
* @return An IntegerWidth for chaining or passing to the NumberFormatter integerWidth() setter.
* @draft ICU 60
- * @see NumberFormatter
*/
static IntegerWidth zeroFillTo(int32_t minInt);
@@ -1184,7 +976,6 @@ class U_I18N_API IntegerWidth : public UMemory {
* truncation.
* @return An IntegerWidth for passing to the NumberFormatter integerWidth() setter.
* @draft ICU 60
- * @see NumberFormatter
*/
IntegerWidth truncateAt(int32_t maxInt);
@@ -1193,12 +984,13 @@ class U_I18N_API IntegerWidth : public UMemory {
struct {
impl::digits_t fMinInt;
impl::digits_t fMaxInt;
+ bool fFormatFailIfMoreThanMaxDigits;
} minMaxInt;
UErrorCode errorCode;
} fUnion;
bool fHasError = false;
- IntegerWidth(impl::digits_t minInt, impl::digits_t maxInt);
+ IntegerWidth(impl::digits_t minInt, impl::digits_t maxInt, bool formatFailIfMoreThanMaxDigits);
IntegerWidth(UErrorCode errorCode) { // NOLINT
fUnion.errorCode = errorCode;
@@ -1209,6 +1001,11 @@ class U_I18N_API IntegerWidth : public UMemory {
fUnion.minMaxInt.fMinInt = -1;
}
+ /** Returns the default instance. */
+ static IntegerWidth standard() {
+ return IntegerWidth::zeroFillTo(1);
+ }
+
bool isBogus() const {
return !fHasError && fUnion.minMaxInt.fMinInt == -1;
}
@@ -1223,12 +1020,148 @@ class U_I18N_API IntegerWidth : public UMemory {
void apply(impl::DecimalQuantity &quantity, UErrorCode &status) const;
+ bool operator==(const IntegerWidth& other) const;
+
// To allow MacroProps/MicroProps to initialize empty instances:
friend struct impl::MacroProps;
friend struct impl::MicroProps;
// To allow NumberFormatterImpl to access isBogus() and perform other operations:
friend class impl::NumberFormatterImpl;
+
+ // So that NumberPropertyMapper can create instances
+ friend class impl::NumberPropertyMapper;
+
+ // To allow access to the skeleton generation code:
+ friend class impl::GeneratorHelpers;
+};
+
+/**
+ * A class that defines a quantity by which a number should be multiplied when formatting.
+ *
+ * <p>
+ * To create a Scale, use one of the factory methods.
+ *
+ * @draft ICU 62
+ */
+class U_I18N_API Scale : public UMemory {
+ public:
+ /**
+ * Do not change the value of numbers when formatting or parsing.
+ *
+ * @return A Scale to prevent any multiplication.
+ * @draft ICU 62
+ */
+ static Scale none();
+
+ /**
+ * Multiply numbers by a power of ten before formatting. Useful for combining with a percent unit:
+ *
+ * <pre>
+ * NumberFormatter::with().unit(NoUnit::percent()).multiplier(Scale::powerOfTen(2))
+ * </pre>
+ *
+ * @return A Scale for passing to the setter in NumberFormatter.
+ * @draft ICU 62
+ */
+ static Scale powerOfTen(int32_t power);
+
+ /**
+ * Multiply numbers by an arbitrary value before formatting. Useful for unit conversions.
+ *
+ * This method takes a string in a decimal number format with syntax
+ * as defined in the Decimal Arithmetic Specification, available at
+ * http://speleotrove.com/decimal
+ *
+ * Also see the version of this method that takes a double.
+ *
+ * @return A Scale for passing to the setter in NumberFormatter.
+ * @draft ICU 62
+ */
+ static Scale byDecimal(StringPiece multiplicand);
+
+ /**
+ * Multiply numbers by an arbitrary value before formatting. Useful for unit conversions.
+ *
+ * This method takes a double; also see the version of this method that takes an exact decimal.
+ *
+ * @return A Scale for passing to the setter in NumberFormatter.
+ * @draft ICU 62
+ */
+ static Scale byDouble(double multiplicand);
+
+ /**
+ * Multiply a number by both a power of ten and by an arbitrary double value.
+ *
+ * @return A Scale for passing to the setter in NumberFormatter.
+ * @draft ICU 62
+ */
+ static Scale byDoubleAndPowerOfTen(double multiplicand, int32_t power);
+
+ // We need a custom destructor for the DecNum, which means we need to declare
+ // the copy/move constructor/assignment quartet.
+
+ /** @draft ICU 62 */
+ Scale(const Scale& other);
+
+ /** @draft ICU 62 */
+ Scale& operator=(const Scale& other);
+
+ /** @draft ICU 62 */
+ Scale(Scale&& src) U_NOEXCEPT;
+
+ /** @draft ICU 62 */
+ Scale& operator=(Scale&& src) U_NOEXCEPT;
+
+ /** @draft ICU 62 */
+ ~Scale();
+
+#ifndef U_HIDE_INTERNAL_API
+ /** @internal */
+ Scale(int32_t magnitude, impl::DecNum* arbitraryToAdopt);
+#endif /* U_HIDE_INTERNAL_API */
+
+ private:
+ int32_t fMagnitude;
+ impl::DecNum* fArbitrary;
+ UErrorCode fError;
+
+ Scale(UErrorCode error) : fMagnitude(0), fArbitrary(nullptr), fError(error) {}
+
+ Scale() : fMagnitude(0), fArbitrary(nullptr), fError(U_ZERO_ERROR) {}
+
+ bool isValid() const {
+ return fMagnitude != 0 || fArbitrary != nullptr;
+ }
+
+ UBool copyErrorTo(UErrorCode &status) const {
+ if (fError != U_ZERO_ERROR) {
+ status = fError;
+ return TRUE;
+ }
+ return FALSE;
+ }
+
+ void applyTo(impl::DecimalQuantity& quantity) const;
+
+ void applyReciprocalTo(impl::DecimalQuantity& quantity) const;
+
+ // To allow MacroProps/MicroProps to initialize empty instances:
+ friend struct impl::MacroProps;
+ friend struct impl::MicroProps;
+
+ // To allow NumberFormatterImpl to access isBogus() and perform other operations:
+ friend class impl::NumberFormatterImpl;
+
+ // To allow the helper class MultiplierFormatHandler access to private fields:
+ friend class impl::MultiplierFormatHandler;
+
+ // To allow access to the skeleton generation code:
+ friend class impl::GeneratorHelpers;
+
+ // To allow access to parsing code:
+ friend class ::icu::numparse::impl::NumberParserImpl;
+ friend class ::icu::numparse::impl::MultiplierParseHandler;
};
namespace impl {
@@ -1244,12 +1177,19 @@ class U_I18N_API SymbolsWrapper : public UMemory {
SymbolsWrapper(const SymbolsWrapper &other);
/** @internal */
- ~SymbolsWrapper();
+ SymbolsWrapper &operator=(const SymbolsWrapper &other);
/** @internal */
- SymbolsWrapper &operator=(const SymbolsWrapper &other);
+ SymbolsWrapper(SymbolsWrapper&& src) U_NOEXCEPT;
+
+ /** @internal */
+ SymbolsWrapper &operator=(SymbolsWrapper&& src) U_NOEXCEPT;
+
+ /** @internal */
+ ~SymbolsWrapper();
#ifndef U_HIDE_INTERNAL_API
+
/**
* The provided object is copied, but we do not adopt it.
* @internal
@@ -1286,6 +1226,8 @@ class U_I18N_API SymbolsWrapper : public UMemory {
*/
const NumberingSystem *getNumberingSystem() const;
+#endif // U_HIDE_INTERNAL_API
+
/** @internal */
UBool copyErrorTo(UErrorCode &status) const {
if (fType == SYMPTR_DFS && fPtr.dfs == nullptr) {
@@ -1297,7 +1239,6 @@ class U_I18N_API SymbolsWrapper : public UMemory {
}
return FALSE;
}
-#endif // U_HIDE_INTERNAL_API
private:
enum SymbolsPointerType {
@@ -1311,6 +1252,8 @@ class U_I18N_API SymbolsWrapper : public UMemory {
void doCopyFrom(const SymbolsWrapper &other);
+ void doMoveFrom(SymbolsWrapper&& src);
+
void doCleanup();
};
@@ -1320,15 +1263,30 @@ class U_I18N_API Grouper : public UMemory {
public:
#ifndef U_HIDE_INTERNAL_API
/** @internal */
- static Grouper forStrategy(UGroupingStrategy grouping);
+ static Grouper forStrategy(UNumberGroupingStrategy grouping);
+
+ /**
+ * Resolve the values in Properties to a Grouper object.
+ * @internal
+ */
+ static Grouper forProperties(const DecimalFormatProperties& properties);
// Future: static Grouper forProperties(DecimalFormatProperties& properties);
/** @internal */
- Grouper(int16_t grouping1, int16_t grouping2, int16_t minGrouping)
- : fGrouping1(grouping1), fGrouping2(grouping2), fMinGrouping(minGrouping) {}
+ Grouper(int16_t grouping1, int16_t grouping2, int16_t minGrouping, UNumberGroupingStrategy strategy)
+ : fGrouping1(grouping1),
+ fGrouping2(grouping2),
+ fMinGrouping(minGrouping),
+ fStrategy(strategy) {}
#endif // U_HIDE_INTERNAL_API
+ /** @internal */
+ int16_t getPrimary() const;
+
+ /** @internal */
+ int16_t getSecondary() const;
+
private:
/**
* The grouping sizes, with the following special values:
@@ -1342,7 +1300,7 @@ class U_I18N_API Grouper : public UMemory {
int16_t fGrouping2;
/**
- * The minimum gropuing size, with the following special values:
+ * The minimum grouping size, with the following special values:
* <ul>
* <li>-2 = needs locale data
* <li>-3 = no less than 2
@@ -1350,6 +1308,12 @@ class U_I18N_API Grouper : public UMemory {
*/
int16_t fMinGrouping;
+ /**
+ * The UNumberGroupingStrategy that was used to create this Grouper, or UNUM_GROUPING_COUNT if this
+ * was not created from a UNumberGroupingStrategy.
+ */
+ UNumberGroupingStrategy fStrategy;
+
Grouper() : fGrouping1(-3) {};
bool isBogus() const {
@@ -1367,6 +1331,12 @@ class U_I18N_API Grouper : public UMemory {
// To allow NumberFormatterImpl to access isBogus() and perform other operations:
friend class NumberFormatterImpl;
+
+ // To allow NumberParserImpl to perform setLocaleData():
+ friend class ::icu::numparse::impl::NumberParserImpl;
+
+ // To allow access to the skeleton generation code:
+ friend class impl::GeneratorHelpers;
};
// Do not enclose entire Padder with #ifndef U_HIDE_INTERNAL_API, needed for a protected field
@@ -1381,6 +1351,9 @@ class U_I18N_API Padder : public UMemory {
static Padder codePoints(UChar32 cp, int32_t targetWidth, UNumberFormatPadPosition position);
#endif // U_HIDE_INTERNAL_API
+ /** @internal */
+ static Padder forProperties(const DecimalFormatProperties& properties);
+
private:
UChar32 fWidth; // -3 = error; -2 = bogus; -1 = no padding
union {
@@ -1427,6 +1400,9 @@ class U_I18N_API Padder : public UMemory {
// To allow NumberFormatterImpl to access isBogus() and perform other operations:
friend class impl::NumberFormatterImpl;
+
+ // To allow access to the skeleton generation code:
+ friend class impl::GeneratorHelpers;
};
// Do not enclose entire MacroProps with #ifndef U_HIDE_INTERNAL_API, needed for a protected field
@@ -1442,7 +1418,10 @@ struct U_I18N_API MacroProps : public UMemory {
MeasureUnit perUnit; // = NoUnit::base();
/** @internal */
- Rounder rounder; // = Rounder(); (bogus)
+ Precision precision; // = Precision(); (bogus)
+
+ /** @internal */
+ UNumberFormatRoundingMode roundingMode = UNUM_ROUND_HALFEVEN;
/** @internal */
Grouper grouper; // = Grouper(); (bogus)
@@ -1468,20 +1447,33 @@ struct U_I18N_API MacroProps : public UMemory {
UNumberDecimalSeparatorDisplay decimal = UNUM_DECIMAL_SEPARATOR_COUNT;
/** @internal */
- PluralRules *rules = nullptr; // no ownership
+ Scale scale; // = Scale(); (benign value)
+
+ /** @internal */
+ const AffixPatternProvider* affixProvider = nullptr; // no ownership
+
+ /** @internal */
+ const PluralRules* rules = nullptr; // no ownership
+
+ /** @internal */
+ const CurrencySymbols* currencySymbols = nullptr; // no ownership
/** @internal */
int32_t threshold = DEFAULT_THRESHOLD;
+
+ /** @internal */
Locale locale;
+ // NOTE: Uses default copy and move constructors.
+
/**
* Check all members for errors.
* @internal
*/
bool copyErrorTo(UErrorCode &status) const {
- return notation.copyErrorTo(status) || rounder.copyErrorTo(status) ||
+ return notation.copyErrorTo(status) || precision.copyErrorTo(status) ||
padder.copyErrorTo(status) || integerWidth.copyErrorTo(status) ||
- symbols.copyErrorTo(status);
+ symbols.copyErrorTo(status) || scale.copyErrorTo(status);
}
};
@@ -1489,7 +1481,8 @@ struct U_I18N_API MacroProps : public UMemory {
/**
* An abstract base class for specifying settings related to number formatting. This class is implemented by
- * {@link UnlocalizedNumberFormatter} and {@link LocalizedNumberFormatter}.
+ * {@link UnlocalizedNumberFormatter} and {@link LocalizedNumberFormatter}. This class is not intended for
+ * public subclassing.
*/
template<typename Derived>
class U_I18N_API NumberFormatterSettings {
@@ -1505,7 +1498,7 @@ class U_I18N_API NumberFormatterSettings {
*
* <p>
* All notation styles will be properly localized with locale data, and all notation styles are compatible with
- * units, rounding strategies, and other number formatter settings.
+ * units, rounding precisions, and other number formatter settings.
*
* <p>
* Pass this method the return value of a {@link Notation} factory method. For example:
@@ -1522,7 +1515,18 @@ class U_I18N_API NumberFormatterSettings {
* @see Notation
* @draft ICU 60
*/
- Derived notation(const Notation &notation) const;
+ Derived notation(const Notation &notation) const &;
+
+ /**
+ * Overload of notation() for use on an rvalue reference.
+ *
+ * @param notation
+ * The notation strategy to use.
+ * @return The fluent chain.
+ * @see #notation
+ * @draft ICU 62
+ */
+ Derived notation(const Notation &notation) &&;
/**
* Specifies the unit (unit of measure, currency, or percent) to associate with rendered numbers.
@@ -1534,7 +1538,7 @@ class U_I18N_API NumberFormatterSettings {
* </ul>
*
* All units will be properly localized with locale data, and all units are compatible with notation styles,
- * rounding strategies, and other number formatter settings.
+ * rounding precisions, and other number formatter settings.
*
* Pass this method any instance of {@link MeasureUnit}. For units of measure (which often involve the
* factory methods that return a pointer):
@@ -1568,7 +1572,18 @@ class U_I18N_API NumberFormatterSettings {
* @see #perUnit
* @draft ICU 60
*/
- Derived unit(const icu::MeasureUnit &unit) const;
+ Derived unit(const icu::MeasureUnit &unit) const &;
+
+ /**
+ * Overload of unit() for use on an rvalue reference.
+ *
+ * @param unit
+ * The unit to render.
+ * @return The fluent chain.
+ * @see #unit
+ * @draft ICU 62
+ */
+ Derived unit(const icu::MeasureUnit &unit) &&;
/**
* Like unit(), but takes ownership of a pointer. Convenient for use with the MeasureFormat factory
@@ -1585,7 +1600,18 @@ class U_I18N_API NumberFormatterSettings {
* @see MeasureUnit
* @draft ICU 60
*/
- Derived adoptUnit(icu::MeasureUnit *unit) const;
+ Derived adoptUnit(icu::MeasureUnit *unit) const &;
+
+ /**
+ * Overload of adoptUnit() for use on an rvalue reference.
+ *
+ * @param unit
+ * The unit to render.
+ * @return The fluent chain.
+ * @see #adoptUnit
+ * @draft ICU 62
+ */
+ Derived adoptUnit(icu::MeasureUnit *unit) &&;
/**
* Sets a unit to be used in the denominator. For example, to format "3 m/s", pass METER to the unit and SECOND to
@@ -1604,7 +1630,18 @@ class U_I18N_API NumberFormatterSettings {
* @see #unit
* @draft ICU 61
*/
- Derived perUnit(const icu::MeasureUnit &perUnit) const;
+ Derived perUnit(const icu::MeasureUnit &perUnit) const &;
+
+ /**
+ * Overload of perUnit() for use on an rvalue reference.
+ *
+ * @param perUnit
+ * The unit to render in the denominator.
+ * @return The fluent chain.
+ * @see #perUnit
+ * @draft ICU 62
+ */
+ Derived perUnit(const icu::MeasureUnit &perUnit) &&;
/**
* Like perUnit(), but takes ownership of a pointer. Convenient for use with the MeasureFormat factory
@@ -1623,10 +1660,21 @@ class U_I18N_API NumberFormatterSettings {
* @see MeasureUnit
* @draft ICU 61
*/
- Derived adoptPerUnit(icu::MeasureUnit *perUnit) const;
+ Derived adoptPerUnit(icu::MeasureUnit *perUnit) const &;
+
+ /**
+ * Overload of adoptPerUnit() for use on an rvalue reference.
+ *
+ * @param perUnit
+ * The unit to render in the denominator.
+ * @return The fluent chain.
+ * @see #adoptPerUnit
+ * @draft ICU 62
+ */
+ Derived adoptPerUnit(icu::MeasureUnit *perUnit) &&;
/**
- * Specifies the rounding strategy to use when formatting numbers.
+ * Specifies the rounding precision to use when formatting numbers.
*
* <ul>
* <li>Round to 3 decimal places: "3.142"
@@ -1636,27 +1684,77 @@ class U_I18N_API NumberFormatterSettings {
* </ul>
*
* <p>
- * Pass this method the return value of one of the factory methods on {@link Rounder}. For example:
+ * Pass this method the return value of one of the factory methods on {@link Precision}. For example:
*
* <pre>
- * NumberFormatter::with().rounding(Rounder::fixedFraction(2))
+ * NumberFormatter::with().precision(Precision::fixedFraction(2))
* </pre>
*
* <p>
* In most cases, the default rounding strategy is to round to 6 fraction places; i.e.,
- * <code>Rounder.maxFraction(6)</code>. The exceptions are if compact notation is being used, then the compact
+ * <code>Precision.maxFraction(6)</code>. The exceptions are if compact notation is being used, then the compact
* notation rounding strategy is used (see {@link Notation#compactShort} for details), or if the unit is a currency,
- * then standard currency rounding is used, which varies from currency to currency (see {@link Rounder#currency} for
+ * then standard currency rounding is used, which varies from currency to currency (see {@link Precision#currency} for
* details).
*
- * @param rounder
- * The rounding strategy to use.
+ * @param precision
+ * The rounding precision to use.
* @return The fluent chain.
- * @see Rounder
- * @provisional This API might change or be removed in a future release.
- * @draft ICU 60
+ * @see Precision
+ * @draft ICU 62
+ */
+ Derived precision(const Precision& precision) const &;
+
+ /**
+ * Overload of precision() for use on an rvalue reference.
+ *
+ * @param precision
+ * The rounding precision to use.
+ * @return The fluent chain.
+ * @see #precision
+ * @draft ICU 62
+ */
+ Derived precision(const Precision& precision) &&;
+
+#ifndef U_HIDE_DEPRECATED_API
+ // Compatibility method that will be removed in ICU 64.
+ // Use precision() instead.
+ // See http://bugs.icu-project.org/trac/ticket/13746
+ /** @deprecated ICU 62 */
+ Derived rounding(const Rounder& rounder) const & {
+ return precision(rounder);
+ }
+#endif /* U_HIDE_DEPRECATED_API */
+
+ /**
+ * Specifies how to determine the direction to round a number when it has more digits than fit in the
+ * desired precision. When formatting 1.235:
+ *
+ * <ul>
+ * <li>Ceiling rounding mode with integer precision: "2"
+ * <li>Half-down rounding mode with 2 fixed fraction digits: "1.23"
+ * <li>Half-up rounding mode with 2 fixed fraction digits: "1.24"
+ * </ul>
+ *
+ * The default is HALF_EVEN. For more information on rounding mode, see the ICU userguide here:
+ *
+ * http://userguide.icu-project.org/formatparse/numbers/rounding-modes
+ *
+ * @param roundingMode The rounding mode to use.
+ * @return The fluent chain.
+ * @draft ICU 62
+ */
+ Derived roundingMode(UNumberFormatRoundingMode roundingMode) const &;
+
+ /**
+ * Overload of roundingMode() for use on an rvalue reference.
+ *
+ * @param roundingMode The rounding mode to use.
+ * @return The fluent chain.
+ * @see #roundingMode
+ * @draft ICU 62
*/
- Derived rounding(const Rounder &rounder) const;
+ Derived roundingMode(UNumberFormatRoundingMode roundingMode) &&;
/**
* Specifies the grouping strategy to use when formatting numbers.
@@ -1671,7 +1769,7 @@ class U_I18N_API NumberFormatterSettings {
* The exact grouping widths will be chosen based on the locale.
*
* <p>
- * Pass this method an element from the {@link UGroupingStrategy} enum. For example:
+ * Pass this method an element from the {@link UNumberGroupingStrategy} enum. For example:
*
* <pre>
* NumberFormatter::with().grouping(UNUM_GROUPING_MIN2)
@@ -1685,7 +1783,18 @@ class U_I18N_API NumberFormatterSettings {
* @return The fluent chain.
* @draft ICU 61
*/
- Derived grouping(const UGroupingStrategy &strategy) const;
+ Derived grouping(UNumberGroupingStrategy strategy) const &;
+
+ /**
+ * Overload of grouping() for use on an rvalue reference.
+ *
+ * @param strategy
+ * The grouping strategy to use.
+ * @return The fluent chain.
+ * @see #grouping
+ * @draft ICU 62
+ */
+ Derived grouping(UNumberGroupingStrategy strategy) &&;
/**
* Specifies the minimum and maximum number of digits to render before the decimal mark.
@@ -1697,7 +1806,7 @@ class U_I18N_API NumberFormatterSettings {
* </ul>
*
* <p>
- * Pass this method the return value of {@link IntegerWidth#zeroFillTo(int)}. For example:
+ * Pass this method the return value of {@link IntegerWidth#zeroFillTo}. For example:
*
* <pre>
* NumberFormatter::with().integerWidth(IntegerWidth::zeroFillTo(2))
@@ -1711,7 +1820,18 @@ class U_I18N_API NumberFormatterSettings {
* @see IntegerWidth
* @draft ICU 60
*/
- Derived integerWidth(const IntegerWidth &style) const;
+ Derived integerWidth(const IntegerWidth &style) const &;
+
+ /**
+ * Overload of integerWidth() for use on an rvalue reference.
+ *
+ * @param style
+ * The integer width to use.
+ * @return The fluent chain.
+ * @see #integerWidth
+ * @draft ICU 62
+ */
+ Derived integerWidth(const IntegerWidth &style) &&;
/**
* Specifies the symbols (decimal separator, grouping separator, percent sign, numerals, etc.) to use when rendering
@@ -1741,8 +1861,8 @@ class U_I18N_API NumberFormatterSettings {
* after passing it into the fluent chain will not be seen.
*
* <p>
- * <strong>Note:</strong> Calling this method will override the NumberingSystem previously specified in
- * {@link #symbols(NumberingSystem)}.
+ * <strong>Note:</strong> Calling this method will override any previously specified DecimalFormatSymbols
+ * or NumberingSystem.
*
* <p>
* The default is to choose the symbols based on the locale specified in the fluent chain.
@@ -1753,7 +1873,18 @@ class U_I18N_API NumberFormatterSettings {
* @see DecimalFormatSymbols
* @draft ICU 60
*/
- Derived symbols(const DecimalFormatSymbols &symbols) const;
+ Derived symbols(const DecimalFormatSymbols &symbols) const &;
+
+ /**
+ * Overload of symbols() for use on an rvalue reference.
+ *
+ * @param symbols
+ * The DecimalFormatSymbols to use.
+ * @return The fluent chain.
+ * @see #symbols
+ * @draft ICU 62
+ */
+ Derived symbols(const DecimalFormatSymbols &symbols) &&;
/**
* Specifies that the given numbering system should be used when fetching symbols.
@@ -1773,8 +1904,8 @@ class U_I18N_API NumberFormatterSettings {
* </pre>
*
* <p>
- * <strong>Note:</strong> Calling this method will override the DecimalFormatSymbols previously specified in
- * {@link #symbols(DecimalFormatSymbols)}.
+ * <strong>Note:</strong> Calling this method will override any previously specified DecimalFormatSymbols
+ * or NumberingSystem.
*
* <p>
* The default is to choose the best numbering system for the locale.
@@ -1788,7 +1919,18 @@ class U_I18N_API NumberFormatterSettings {
* @see NumberingSystem
* @draft ICU 60
*/
- Derived adoptSymbols(NumberingSystem *symbols) const;
+ Derived adoptSymbols(NumberingSystem *symbols) const &;
+
+ /**
+ * Overload of adoptSymbols() for use on an rvalue reference.
+ *
+ * @param symbols
+ * The NumberingSystem to use.
+ * @return The fluent chain.
+ * @see #adoptSymbols
+ * @draft ICU 62
+ */
+ Derived adoptSymbols(NumberingSystem *symbols) &&;
/**
* Sets the width of the unit (measure unit or currency). Most common values:
@@ -1815,7 +1957,18 @@ class U_I18N_API NumberFormatterSettings {
* @see UNumberUnitWidth
* @draft ICU 60
*/
- Derived unitWidth(const UNumberUnitWidth &width) const;
+ Derived unitWidth(UNumberUnitWidth width) const &;
+
+ /**
+ * Overload of unitWidth() for use on an rvalue reference.
+ *
+ * @param width
+ * The width to use when rendering numbers.
+ * @return The fluent chain.
+ * @see #unitWidth
+ * @draft ICU 62
+ */
+ Derived unitWidth(UNumberUnitWidth width) &&;
/**
* Sets the plus/minus sign display strategy. Most common values:
@@ -1836,14 +1989,24 @@ class U_I18N_API NumberFormatterSettings {
* <p>
* The default is AUTO sign display.
*
- * @param width
+ * @param style
* The sign display strategy to use when rendering numbers.
* @return The fluent chain
* @see UNumberSignDisplay
- * @provisional This API might change or be removed in a future release.
* @draft ICU 60
*/
- Derived sign(const UNumberSignDisplay &width) const;
+ Derived sign(UNumberSignDisplay style) const &;
+
+ /**
+ * Overload of sign() for use on an rvalue reference.
+ *
+ * @param style
+ * The sign display strategy to use when rendering numbers.
+ * @return The fluent chain.
+ * @see #sign
+ * @draft ICU 62
+ */
+ Derived sign(UNumberSignDisplay style) &&;
/**
* Sets the decimal separator display strategy. This affects integer numbers with no fraction part. Most common
@@ -1864,23 +2027,73 @@ class U_I18N_API NumberFormatterSettings {
* <p>
* The default is AUTO decimal separator display.
*
- * @param width
+ * @param style
* The decimal separator display strategy to use when rendering numbers.
* @return The fluent chain
* @see UNumberDecimalSeparatorDisplay
- * @provisional This API might change or be removed in a future release.
* @draft ICU 60
*/
- Derived decimal(const UNumberDecimalSeparatorDisplay &width) const;
+ Derived decimal(UNumberDecimalSeparatorDisplay style) const &;
+
+ /**
+ * Overload of decimal() for use on an rvalue reference.
+ *
+ * @param style
+ * The decimal separator display strategy to use when rendering numbers.
+ * @return The fluent chain.
+ * @see #decimal
+ * @draft ICU 62
+ */
+ Derived decimal(UNumberDecimalSeparatorDisplay style) &&;
+
+ /**
+ * Sets a scale (multiplier) to be used to scale the number by an arbitrary amount before formatting.
+ * Most common values:
+ *
+ * <ul>
+ * <li>Multiply by 100: useful for percentages.
+ * <li>Multiply by an arbitrary value: useful for unit conversions.
+ * </ul>
+ *
+ * <p>
+ * Pass an element from a {@link Scale} factory method to this setter. For example:
+ *
+ * <pre>
+ * NumberFormatter::with().scale(Scale::powerOfTen(2))
+ * </pre>
+ *
+ * <p>
+ * The default is to not apply any multiplier.
+ *
+ * @param scale
+ * The scale to apply when rendering numbers.
+ * @return The fluent chain
+ * @draft ICU 62
+ */
+ Derived scale(const Scale &scale) const &;
+
+ /**
+ * Overload of scale() for use on an rvalue reference.
+ *
+ * @param scale
+ * The scale to apply when rendering numbers.
+ * @return The fluent chain.
+ * @see #scale
+ * @draft ICU 62
+ */
+ Derived scale(const Scale &scale) &&;
#ifndef U_HIDE_INTERNAL_API
/**
- * Set the padding strategy. May be added to ICU 61; see #13338.
+ * Set the padding strategy. May be added in the future; see #13338.
*
* @internal ICU 60: This API is ICU internal only.
*/
- Derived padding(const impl::Padder &padder) const;
+ Derived padding(const impl::Padder &padder) const &;
+
+ /** @internal */
+ Derived padding(const impl::Padder &padder) &&;
/**
* Internal fluent setter to support a custom regulation threshold. A threshold of 1 causes the data structures to
@@ -1888,11 +2101,46 @@ class U_I18N_API NumberFormatterSettings {
*
* @internal ICU 60: This API is ICU internal only.
*/
- Derived threshold(int32_t threshold) const;
+ Derived threshold(int32_t threshold) const &;
+
+ /** @internal */
+ Derived threshold(int32_t threshold) &&;
+
+ /**
+ * Internal fluent setter to overwrite the entire macros object.
+ *
+ * @internal ICU 60: This API is ICU internal only.
+ */
+ Derived macros(const impl::MacroProps& macros) const &;
+
+ /** @internal */
+ Derived macros(const impl::MacroProps& macros) &&;
+
+ /** @internal */
+ Derived macros(impl::MacroProps&& macros) const &;
+
+ /** @internal */
+ Derived macros(impl::MacroProps&& macros) &&;
#endif /* U_HIDE_INTERNAL_API */
/**
+ * Creates a skeleton string representation of this number formatter. A skeleton string is a
+ * locale-agnostic serialized form of a number formatter.
+ *
+ * Not all options are capable of being represented in the skeleton string; for example, a
+ * DecimalFormatSymbols object. If any such option is encountered, the error code is set to
+ * U_UNSUPPORTED_ERROR.
+ *
+ * The returned skeleton is in normalized form, such that two number formatters with equivalent
+ * behavior should produce the same skeleton.
+ *
+ * @return A number skeleton string with behavior corresponding to this number formatter.
+ * @draft ICU 62
+ */
+ UnicodeString toSkeleton(UErrorCode& status) const;
+
+ /**
* Sets the UErrorCode if an error occurred in the fluent chain.
* Preserves older error codes in the outErrorCode.
* @return TRUE if U_FAILURE(outErrorCode)
@@ -1905,17 +2153,22 @@ class U_I18N_API NumberFormatterSettings {
}
fMacros.copyErrorTo(outErrorCode);
return U_FAILURE(outErrorCode);
- }
+ };
- protected:
- impl::MacroProps fMacros;
+ // NOTE: Uses default copy and move constructors.
private:
+ impl::MacroProps fMacros;
+
// Don't construct me directly! Use (Un)LocalizedNumberFormatter.
NumberFormatterSettings() = default;
friend class LocalizedNumberFormatter;
friend class UnlocalizedNumberFormatter;
+
+ // Give NumberRangeFormatter access to the MacroProps
+ friend void impl::touchRangeLocales(impl::RangeMacroProps& macros);
+ friend class impl::NumberRangeFormatterImpl;
};
/**
@@ -1932,33 +2185,62 @@ class U_I18N_API UnlocalizedNumberFormatter
* Associate the given locale with the number formatter. The locale is used for picking the appropriate symbols,
* formats, and other data for number display.
*
- * <p>
- * To use the Java default locale, call Locale::getDefault():
- *
- * <pre>
- * NumberFormatter::with(). ... .locale(Locale::getDefault())
- * </pre>
- *
* @param locale
* The locale to use when loading data for number formatting.
* @return The fluent chain.
* @draft ICU 60
*/
- LocalizedNumberFormatter locale(const icu::Locale &locale) const;
+ LocalizedNumberFormatter locale(const icu::Locale &locale) const &;
+
+ /**
+ * Overload of locale() for use on an rvalue reference.
+ *
+ * @param locale
+ * The locale to use when loading data for number formatting.
+ * @return The fluent chain.
+ * @see #locale
+ * @draft ICU 62
+ */
+ LocalizedNumberFormatter locale(const icu::Locale &locale) &&;
+
+ /**
+ * Default constructor: puts the formatter into a valid but undefined state.
+ *
+ * @draft ICU 62
+ */
+ UnlocalizedNumberFormatter() = default;
- // Make default copy constructor call the NumberFormatterSettings copy constructor.
/**
* Returns a copy of this UnlocalizedNumberFormatter.
* @draft ICU 60
*/
- UnlocalizedNumberFormatter(const UnlocalizedNumberFormatter &other) : UnlocalizedNumberFormatter(
- static_cast<const NumberFormatterSettings<UnlocalizedNumberFormatter> &>(other)) {}
+ UnlocalizedNumberFormatter(const UnlocalizedNumberFormatter &other);
+
+ /**
+ * Move constructor:
+ * The source UnlocalizedNumberFormatter will be left in a valid but undefined state.
+ * @draft ICU 62
+ */
+ UnlocalizedNumberFormatter(UnlocalizedNumberFormatter&& src) U_NOEXCEPT;
+
+ /**
+ * Copy assignment operator.
+ * @draft ICU 62
+ */
+ UnlocalizedNumberFormatter& operator=(const UnlocalizedNumberFormatter& other);
+
+ /**
+ * Move assignment operator:
+ * The source UnlocalizedNumberFormatter will be left in a valid but undefined state.
+ * @draft ICU 62
+ */
+ UnlocalizedNumberFormatter& operator=(UnlocalizedNumberFormatter&& src) U_NOEXCEPT;
private:
- UnlocalizedNumberFormatter() = default;
+ explicit UnlocalizedNumberFormatter(const NumberFormatterSettings<UnlocalizedNumberFormatter>& other);
explicit UnlocalizedNumberFormatter(
- const NumberFormatterSettings<UnlocalizedNumberFormatter> &other);
+ NumberFormatterSettings<UnlocalizedNumberFormatter>&& src) U_NOEXCEPT;
// To give the fluent setters access to this class's constructor:
friend class NumberFormatterSettings<UnlocalizedNumberFormatter>;
@@ -2016,15 +2298,99 @@ class U_I18N_API LocalizedNumberFormatter
* @return A FormattedNumber object; call .toString() to get the string.
* @draft ICU 60
*/
- FormattedNumber formatDecimal(StringPiece value, UErrorCode &status) const;
+ FormattedNumber formatDecimal(StringPiece value, UErrorCode& status) const;
+
+#ifndef U_HIDE_INTERNAL_API
+
+ /** Internal method.
+ * @internal
+ */
+ FormattedNumber formatDecimalQuantity(const impl::DecimalQuantity& dq, UErrorCode& status) const;
+
+ /** Internal method for DecimalFormat compatibility.
+ * @internal
+ */
+ void getAffixImpl(bool isPrefix, bool isNegative, UnicodeString& result, UErrorCode& status) const;
+
+ /**
+ * Internal method for testing.
+ * @internal
+ */
+ const impl::NumberFormatterImpl* getCompiled() const;
+
+ /**
+ * Internal method for testing.
+ * @internal
+ */
+ int32_t getCallCount() const;
+
+#endif /* U_HIDE_INTERNAL_API */
+
+ /**
+ * Creates a representation of this LocalizedNumberFormat as an icu::Format, enabling the use
+ * of this number formatter with APIs that need an object of that type, such as MessageFormat.
+ *
+ * This API is not intended to be used other than for enabling API compatibility. The formatDouble,
+ * formatInt, and formatDecimal methods should normally be used when formatting numbers, not the Format
+ * object returned by this method.
+ *
+ * The caller owns the returned object and must delete it when finished.
+ *
+ * @return A Format wrapping this LocalizedNumberFormatter.
+ * @draft ICU 62
+ */
+ Format* toFormat(UErrorCode& status) const;
+
+ /**
+ * Default constructor: puts the formatter into a valid but undefined state.
+ *
+ * @draft ICU 62
+ */
+ LocalizedNumberFormatter() = default;
- // Make default copy constructor call the NumberFormatterSettings copy constructor.
/**
* Returns a copy of this LocalizedNumberFormatter.
* @draft ICU 60
*/
- LocalizedNumberFormatter(const LocalizedNumberFormatter &other) : LocalizedNumberFormatter(
- static_cast<const NumberFormatterSettings<LocalizedNumberFormatter> &>(other)) {}
+ LocalizedNumberFormatter(const LocalizedNumberFormatter &other);
+
+ /**
+ * Move constructor:
+ * The source LocalizedNumberFormatter will be left in a valid but undefined state.
+ * @draft ICU 62
+ */
+ LocalizedNumberFormatter(LocalizedNumberFormatter&& src) U_NOEXCEPT;
+
+ /**
+ * Copy assignment operator.
+ * @draft ICU 62
+ */
+ LocalizedNumberFormatter& operator=(const LocalizedNumberFormatter& other);
+
+ /**
+ * Move assignment operator:
+ * The source LocalizedNumberFormatter will be left in a valid but undefined state.
+ * @draft ICU 62
+ */
+ LocalizedNumberFormatter& operator=(LocalizedNumberFormatter&& src) U_NOEXCEPT;
+
+#ifndef U_HIDE_INTERNAL_API
+
+ /**
+ * This is the core entrypoint to the number formatting pipeline. It performs self-regulation: a static code path
+ * for the first few calls, and compiling a more efficient data structure if called repeatedly.
+ *
+ * <p>
+ * This function is very hot, being called in every call to the number formatting pipeline.
+ *
+ * @param results
+ * The results object. This method will mutate it to save the results.
+ * @param status
+ * @internal
+ */
+ void formatImpl(impl::UFormattedNumberData *results, UErrorCode &status) const;
+
+#endif /* U_HIDE_INTERNAL_API */
/**
* Destruct this LocalizedNumberFormatter, cleaning up any memory it might own.
@@ -2033,27 +2399,27 @@ class U_I18N_API LocalizedNumberFormatter
~LocalizedNumberFormatter();
private:
+ // Note: fCompiled can't be a LocalPointer because impl::NumberFormatterImpl is defined in an internal
+ // header, and LocalPointer needs the full class definition in order to delete the instance.
const impl::NumberFormatterImpl* fCompiled {nullptr};
char fUnsafeCallCount[8] {}; // internally cast to u_atomic_int32_t
- LocalizedNumberFormatter() = default;
+ explicit LocalizedNumberFormatter(const NumberFormatterSettings<LocalizedNumberFormatter>& other);
- explicit LocalizedNumberFormatter(const NumberFormatterSettings<LocalizedNumberFormatter> &other);
+ explicit LocalizedNumberFormatter(NumberFormatterSettings<LocalizedNumberFormatter>&& src) U_NOEXCEPT;
LocalizedNumberFormatter(const impl::MacroProps &macros, const Locale &locale);
+ LocalizedNumberFormatter(impl::MacroProps &&macros, const Locale &locale);
+
+ void clear();
+
+ void lnfMoveHelper(LocalizedNumberFormatter&& src);
+
/**
- * This is the core entrypoint to the number formatting pipeline. It performs self-regulation: a static code path
- * for the first few calls, and compiling a more efficient data structure if called repeatedly.
- *
- * <p>
- * This function is very hot, being called in every call to the number formatting pipeline.
- *
- * @param results
- * The results object. This method takes ownership.
- * @return The formatted number result.
+ * @return true if the compiled formatter is available.
*/
- FormattedNumber formatImpl(impl::NumberFormatterResults *results, UErrorCode &status) const;
+ bool computeCompiled(UErrorCode& status) const;
// To give the fluent setters access to this class's constructor:
friend class NumberFormatterSettings<UnlocalizedNumberFormatter>;
@@ -2071,25 +2437,57 @@ class U_I18N_API LocalizedNumberFormatter
*/
class U_I18N_API FormattedNumber : public UMemory {
public:
+#ifndef U_HIDE_DEPRECATED_API
/**
* Returns a UnicodeString representation of the formatted number.
*
* @return a UnicodeString containing the localized number.
- * @draft ICU 60
+ * @deprecated ICU 62 Use the version of this method with an error code instead.
+ * This method was never @stable and will be removed in a future release.
+ * See http://bugs.icu-project.org/trac/ticket/13746
*/
UnicodeString toString() const;
+#endif /* U_HIDE_DEPRECATED_API */
/**
+ * Returns a UnicodeString representation of the formatted number.
+ *
+ * @param status
+ * Set if an error occurs while formatting the number to the UnicodeString.
+ * @return a UnicodeString containing the localized number.
+ * @draft ICU 62
+ */
+ UnicodeString toString(UErrorCode& status) const;
+
+#ifndef U_HIDE_DEPRECATED_API
+ /**
* Appends the formatted number to an Appendable.
*
* @param appendable
* The Appendable to which to append the formatted number string.
* @return The same Appendable, for chaining.
- * @draft ICU 60
+ * @deprecated ICU 62 Use the version of this method with an error code instead.
+ * This method was never @stable and will be removed in a future release.
+ * See http://bugs.icu-project.org/trac/ticket/13746
* @see Appendable
*/
Appendable &appendTo(Appendable &appendable);
+#endif /* U_HIDE_DEPRECATED_API */
+
+ /**
+ * Appends the formatted number to an Appendable.
+ *
+ * @param appendable
+ * The Appendable to which to append the formatted number string.
+ * @param status
+ * Set if an error occurs while formatting the number to the Appendable.
+ * @return The same Appendable, for chaining.
+ * @draft ICU 62
+ * @see Appendable
+ */
+ Appendable &appendTo(Appendable &appendable, UErrorCode& status) const;
+#ifndef U_HIDE_DEPRECATED_API
/**
* Determine the start and end indices of the first occurrence of the given <em>field</em> in the output string.
* This allows you to determine the locations of the integer part, fraction part, and sign.
@@ -2106,12 +2504,48 @@ class U_I18N_API FormattedNumber : public UMemory {
* The FieldPosition to populate with the start and end indices of the desired field.
* @param status
* Set if an error occurs while populating the FieldPosition.
- * @draft ICU 60
+ * @deprecated ICU 62 Use {@link #nextFieldPosition} instead. This method will be removed in a future
+ * release. See http://bugs.icu-project.org/trac/ticket/13746
* @see UNumberFormatFields
*/
void populateFieldPosition(FieldPosition &fieldPosition, UErrorCode &status);
+#endif /* U_HIDE_DEPRECATED_API */
/**
+ * Determines the start (inclusive) and end (exclusive) indices of the next occurrence of the given
+ * <em>field</em> in the output string. This allows you to determine the locations of, for example,
+ * the integer part, fraction part, or symbols.
+ *
+ * If a field occurs just once, calling this method will find that occurrence and return it. If a
+ * field occurs multiple times, this method may be called repeatedly with the following pattern:
+ *
+ * <pre>
+ * FieldPosition fpos(UNUM_GROUPING_SEPARATOR_FIELD);
+ * while (formattedNumber.nextFieldPosition(fpos, status)) {
+ * // do something with fpos.
+ * }
+ * </pre>
+ *
+ * This method is useful if you know which field to query. If you want all available field position
+ * information, use #getAllFieldPositions().
+ *
+ * @param fieldPosition
+ * Input+output variable. On input, the "field" property determines which field to look
+ * up, and the "beginIndex" and "endIndex" properties determine where to begin the search.
+ * On output, the "beginIndex" is set to the beginning of the first occurrence of the
+ * field with either begin or end indices after the input indices; "endIndex" is set to
+ * the end of that occurrence of the field (exclusive index). If a field position is not
+ * found, the method returns FALSE and the FieldPosition may or may not be changed.
+ * @param status
+ * Set if an error occurs while populating the FieldPosition.
+ * @return TRUE if a new occurrence of the field was found; FALSE otherwise.
+ * @draft ICU 62
+ * @see UNumberFormatFields
+ */
+ UBool nextFieldPosition(FieldPosition& fieldPosition, UErrorCode& status) const;
+
+#ifndef U_HIDE_DEPRECATED_API
+ /**
* Export the formatted number to a FieldPositionIterator. This allows you to determine which characters in
* the output string correspond to which <em>fields</em>, such as the integer part, fraction part, and sign.
*
@@ -2122,10 +2556,67 @@ class U_I18N_API FormattedNumber : public UMemory {
* The FieldPositionIterator to populate with all of the fields present in the formatted number.
* @param status
* Set if an error occurs while populating the FieldPositionIterator.
- * @draft ICU 60
+ * @deprecated ICU 62 Use {@link #getAllFieldPositions} instead. This method will be removed in a
+ * future release. See http://bugs.icu-project.org/trac/ticket/13746
* @see UNumberFormatFields
*/
void populateFieldPositionIterator(FieldPositionIterator &iterator, UErrorCode &status);
+#endif /* U_HIDE_DEPRECATED_API */
+
+ /**
+ * Export the formatted number to a FieldPositionIterator. This allows you to determine which characters in
+ * the output string correspond to which <em>fields</em>, such as the integer part, fraction part, and sign.
+ *
+ * If information on only one field is needed, use #nextFieldPosition() instead.
+ *
+ * @param iterator
+ * The FieldPositionIterator to populate with all of the fields present in the formatted number.
+ * @param status
+ * Set if an error occurs while populating the FieldPositionIterator.
+ * @draft ICU 62
+ * @see UNumberFormatFields
+ */
+ void getAllFieldPositions(FieldPositionIterator &iterator, UErrorCode &status) const;
+
+#ifndef U_HIDE_INTERNAL_API
+
+ /**
+ * Gets the raw DecimalQuantity for plural rule selection.
+ * @internal
+ */
+ void getDecimalQuantity(impl::DecimalQuantity& output, UErrorCode& status) const;
+
+ /**
+ * Populates the mutable builder type FieldPositionIteratorHandler.
+ * @internal
+ */
+ void getAllFieldPositionsImpl(FieldPositionIteratorHandler& fpih, UErrorCode& status) const;
+
+#endif /* U_HIDE_INTERNAL_API */
+
+ /**
+ * Copying not supported; use move constructor instead.
+ */
+ FormattedNumber(const FormattedNumber&) = delete;
+
+ /**
+ * Copying not supported; use move assignment instead.
+ */
+ FormattedNumber& operator=(const FormattedNumber&) = delete;
+
+ /**
+ * Move constructor:
+ * Leaves the source FormattedNumber in an undefined state.
+ * @draft ICU 62
+ */
+ FormattedNumber(FormattedNumber&& src) U_NOEXCEPT;
+
+ /**
+ * Move assignment:
+ * Leaves the source FormattedNumber in an undefined state.
+ * @draft ICU 62
+ */
+ FormattedNumber& operator=(FormattedNumber&& src) U_NOEXCEPT;
/**
* Destruct an instance of FormattedNumber, cleaning up any memory it might own.
@@ -2134,13 +2625,17 @@ class U_I18N_API FormattedNumber : public UMemory {
~FormattedNumber();
private:
- // Can't use LocalPointer because NumberFormatterResults is forward-declared
- const impl::NumberFormatterResults *fResults;
+ // Can't use LocalPointer because UFormattedNumberData is forward-declared
+ const impl::UFormattedNumberData *fResults;
// Error code for the terminal methods
UErrorCode fErrorCode;
- explicit FormattedNumber(impl::NumberFormatterResults *results)
+ /**
+ * Internal constructor from data type. Adopts the data pointer.
+ * @internal
+ */
+ explicit FormattedNumber(impl::UFormattedNumberData *results)
: fResults(results), fErrorCode(U_ZERO_ERROR) {};
explicit FormattedNumber(UErrorCode errorCode)
@@ -2178,8 +2673,20 @@ class U_I18N_API NumberFormatter final {
static LocalizedNumberFormatter withLocale(const Locale &locale);
/**
+ * Call this method at the beginning of a NumberFormatter fluent chain to create an instance based
+ * on a given number skeleton string.
+ *
+ * @param skeleton
+ * The skeleton string off of which to base this NumberFormatter.
+ * @param status
+ * Set to U_NUMBER_SKELETON_SYNTAX_ERROR if the skeleton was invalid.
+ * @return An UnlocalizedNumberFormatter, to be used for chaining.
+ * @draft ICU 62
+ */
+ static UnlocalizedNumberFormatter forSkeleton(const UnicodeString& skeleton, UErrorCode& status);
+
+ /**
* Use factory methods instead of the constructor to create a NumberFormatter.
- * @draft ICU 60
*/
NumberFormatter() = delete;
};
diff --git a/Build/source/libs/icu/icu-src/source/i18n/unicode/numberrangeformatter.h b/Build/source/libs/icu/icu-src/source/i18n/unicode/numberrangeformatter.h
new file mode 100644
index 00000000000..50546839edf
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/unicode/numberrangeformatter.h
@@ -0,0 +1,866 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#if !UCONFIG_NO_FORMATTING
+#ifndef __NUMBERRANGEFORMATTER_H__
+#define __NUMBERRANGEFORMATTER_H__
+
+#include <atomic>
+#include "unicode/appendable.h"
+#include "unicode/fieldpos.h"
+#include "unicode/fpositer.h"
+#include "unicode/numberformatter.h"
+
+#ifndef U_HIDE_DRAFT_API
+
+/**
+ * \file
+ * \brief C++ API: Library for localized formatting of number, currency, and unit ranges.
+ *
+ * The main entrypoint to the formatting of ranges of numbers, including currencies and other units of measurement.
+ * <p>
+ * Usage example:
+ * <p>
+ * <pre>
+ * NumberRangeFormatter::with()
+ * .identityFallback(UNUM_IDENTITY_FALLBACK_APPROXIMATELY_OR_SINGLE_VALUE)
+ * .numberFormatterFirst(NumberFormatter::with().adoptUnit(MeasureUnit::createMeter()))
+ * .numberFormatterSecond(NumberFormatter::with().adoptUnit(MeasureUnit::createKilometer()))
+ * .locale("en-GB")
+ * .formatRange(750, 1.2, status)
+ * .toString(status);
+ * // => "750 m - 1.2 km"
+ * </pre>
+ * <p>
+ * Like NumberFormatter, NumberRangeFormatter instances are immutable and thread-safe. This API is based on the
+ * <em>fluent</em> design pattern popularized by libraries such as Google's Guava.
+ *
+ * @author Shane Carr
+ */
+
+
+/**
+ * Defines how to merge fields that are identical across the range sign.
+ *
+ * @draft ICU 63
+ */
+typedef enum UNumberRangeCollapse {
+ /**
+ * Use locale data and heuristics to determine how much of the string to collapse. Could end up collapsing none,
+ * some, or all repeated pieces in a locale-sensitive way.
+ *
+ * The heuristics used for this option are subject to change over time.
+ *
+ * @draft ICU 63
+ */
+ UNUM_RANGE_COLLAPSE_AUTO,
+
+ /**
+ * Do not collapse any part of the number. Example: "3.2 thousand kilograms – 5.3 thousand kilograms"
+ *
+ * @draft ICU 63
+ */
+ UNUM_RANGE_COLLAPSE_NONE,
+
+ /**
+ * Collapse the unit part of the number, but not the notation, if present. Example: "3.2 thousand – 5.3 thousand
+ * kilograms"
+ *
+ * @draft ICU 63
+ */
+ UNUM_RANGE_COLLAPSE_UNIT,
+
+ /**
+ * Collapse any field that is equal across the range sign. May introduce ambiguity on the magnitude of the
+ * number. Example: "3.2 – 5.3 thousand kilograms"
+ *
+ * @draft ICU 63
+ */
+ UNUM_RANGE_COLLAPSE_ALL
+} UNumberRangeCollapse;
+
+/**
+ * Defines the behavior when the two numbers in the range are identical after rounding. To programmatically detect
+ * when the identity fallback is used, compare the lower and upper BigDecimals via FormattedNumber.
+ *
+ * @draft ICU 63
+ * @see NumberRangeFormatter
+ */
+typedef enum UNumberRangeIdentityFallback {
+ /**
+ * Show the number as a single value rather than a range. Example: "$5"
+ *
+ * @draft ICU 63
+ */
+ UNUM_IDENTITY_FALLBACK_SINGLE_VALUE,
+
+ /**
+ * Show the number using a locale-sensitive approximation pattern. If the numbers were the same before rounding,
+ * show the single value. Example: "~$5" or "$5"
+ *
+ * @draft ICU 63
+ */
+ UNUM_IDENTITY_FALLBACK_APPROXIMATELY_OR_SINGLE_VALUE,
+
+ /**
+ * Show the number using a locale-sensitive approximation pattern. Use the range pattern always, even if the
+ * inputs are the same. Example: "~$5"
+ *
+ * @draft ICU 63
+ */
+ UNUM_IDENTITY_FALLBACK_APPROXIMATELY,
+
+ /**
+ * Show the number as the range of two equal values. Use the range pattern always, even if the inputs are the
+ * same. Example (with RangeCollapse.NONE): "$5 – $5"
+ *
+ * @draft ICU 63
+ */
+ UNUM_IDENTITY_FALLBACK_RANGE
+} UNumberRangeIdentityFallback;
+
+/**
+ * Used in the result class FormattedNumberRange to indicate to the user whether the numbers formatted in the range
+ * were equal or not, and whether or not the identity fallback was applied.
+ *
+ * @draft ICU 63
+ * @see NumberRangeFormatter
+ */
+typedef enum UNumberRangeIdentityResult {
+ /**
+ * Used to indicate that the two numbers in the range were equal, even before any rounding rules were applied.
+ *
+ * @draft ICU 63
+ * @see NumberRangeFormatter
+ */
+ UNUM_IDENTITY_RESULT_EQUAL_BEFORE_ROUNDING,
+
+ /**
+ * Used to indicate that the two numbers in the range were equal, but only after rounding rules were applied.
+ *
+ * @draft ICU 63
+ * @see NumberRangeFormatter
+ */
+ UNUM_IDENTITY_RESULT_EQUAL_AFTER_ROUNDING,
+
+ /**
+ * Used to indicate that the two numbers in the range were not equal, even after rounding rules were applied.
+ *
+ * @draft ICU 63
+ * @see NumberRangeFormatter
+ */
+ UNUM_IDENTITY_RESULT_NOT_EQUAL,
+
+#ifndef U_HIDE_INTERNAL_API
+ /**
+ * The number of entries in this enum.
+ * @internal
+ */
+ UNUM_IDENTITY_RESULT_COUNT
+#endif
+
+} UNumberRangeIdentityResult;
+
+U_NAMESPACE_BEGIN
+
+namespace number { // icu::number
+
+// Forward declarations:
+class UnlocalizedNumberRangeFormatter;
+class LocalizedNumberRangeFormatter;
+class FormattedNumberRange;
+
+namespace impl {
+
+// Forward declarations:
+struct RangeMacroProps;
+class DecimalQuantity;
+struct UFormattedNumberRangeData;
+class NumberRangeFormatterImpl;
+
+} // namespace impl
+
+/**
+ * \cond
+ * Export an explicit template instantiation. See datefmt.h
+ * (When building DLLs for Windows this is required.)
+ */
+#if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN && !defined(U_IN_DOXYGEN)
+template struct U_I18N_API std::atomic<impl::NumberRangeFormatterImpl*>;
+#endif
+/** \endcond */
+
+// Other helper classes would go here, but there are none.
+
+namespace impl { // icu::number::impl
+
+// Do not enclose entire MacroProps with #ifndef U_HIDE_INTERNAL_API, needed for a protected field
+/** @internal */
+struct U_I18N_API RangeMacroProps : public UMemory {
+ /** @internal */
+ UnlocalizedNumberFormatter formatter1; // = NumberFormatter::with();
+
+ /** @internal */
+ UnlocalizedNumberFormatter formatter2; // = NumberFormatter::with();
+
+ /** @internal */
+ bool singleFormatter = true;
+
+ /** @internal */
+ UNumberRangeCollapse collapse = UNUM_RANGE_COLLAPSE_AUTO;
+
+ /** @internal */
+ UNumberRangeIdentityFallback identityFallback = UNUM_IDENTITY_FALLBACK_APPROXIMATELY;
+
+ /** @internal */
+ Locale locale;
+
+ // NOTE: Uses default copy and move constructors.
+
+ /**
+ * Check all members for errors.
+ * @internal
+ */
+ bool copyErrorTo(UErrorCode &status) const {
+ return formatter1.copyErrorTo(status) || formatter2.copyErrorTo(status);
+ }
+};
+
+} // namespace impl
+
+/**
+ * An abstract base class for specifying settings related to number formatting. This class is implemented by
+ * {@link UnlocalizedNumberRangeFormatter} and {@link LocalizedNumberRangeFormatter}. This class is not intended for
+ * public subclassing.
+ */
+template<typename Derived>
+class U_I18N_API NumberRangeFormatterSettings {
+ public:
+ /**
+ * Sets the NumberFormatter instance to use for the numbers in the range. The same formatter is applied to both
+ * sides of the range.
+ * <p>
+ * The NumberFormatter instances must not have a locale applied yet; the locale specified on the
+ * NumberRangeFormatter will be used.
+ *
+ * @param formatter
+ * The formatter to use for both numbers in the range.
+ * @return The fluent chain.
+ * @draft ICU 63
+ */
+ Derived numberFormatterBoth(const UnlocalizedNumberFormatter &formatter) const &;
+
+ /**
+ * Overload of numberFormatterBoth() for use on an rvalue reference.
+ *
+ * @param formatter
+ * The formatter to use for both numbers in the range.
+ * @return The fluent chain.
+ * @see #numberFormatterBoth
+ * @draft ICU 63
+ */
+ Derived numberFormatterBoth(const UnlocalizedNumberFormatter &formatter) &&;
+
+ /**
+ * Overload of numberFormatterBoth() for use on an rvalue reference.
+ *
+ * @param formatter
+ * The formatter to use for both numbers in the range.
+ * @return The fluent chain.
+ * @see #numberFormatterBoth
+ * @draft ICU 63
+ */
+ Derived numberFormatterBoth(UnlocalizedNumberFormatter &&formatter) const &;
+
+ /**
+ * Overload of numberFormatterBoth() for use on an rvalue reference.
+ *
+ * @param formatter
+ * The formatter to use for both numbers in the range.
+ * @return The fluent chain.
+ * @see #numberFormatterBoth
+ * @draft ICU 63
+ */
+ Derived numberFormatterBoth(UnlocalizedNumberFormatter &&formatter) &&;
+
+ /**
+ * Sets the NumberFormatter instance to use for the first number in the range.
+ * <p>
+ * The NumberFormatter instances must not have a locale applied yet; the locale specified on the
+ * NumberRangeFormatter will be used.
+ *
+ * @param formatterFirst
+ * The formatter to use for the first number in the range.
+ * @return The fluent chain.
+ * @draft ICU 63
+ */
+ Derived numberFormatterFirst(const UnlocalizedNumberFormatter &formatterFirst) const &;
+
+ /**
+ * Overload of numberFormatterFirst() for use on an rvalue reference.
+ *
+ * @param formatterFirst
+ * The formatter to use for the first number in the range.
+ * @return The fluent chain.
+ * @see #numberFormatterFirst
+ * @draft ICU 63
+ */
+ Derived numberFormatterFirst(const UnlocalizedNumberFormatter &formatterFirst) &&;
+
+ /**
+ * Overload of numberFormatterFirst() for use on an rvalue reference.
+ *
+ * @param formatterFirst
+ * The formatter to use for the first number in the range.
+ * @return The fluent chain.
+ * @see #numberFormatterFirst
+ * @draft ICU 63
+ */
+ Derived numberFormatterFirst(UnlocalizedNumberFormatter &&formatterFirst) const &;
+
+ /**
+ * Overload of numberFormatterFirst() for use on an rvalue reference.
+ *
+ * @param formatterFirst
+ * The formatter to use for the first number in the range.
+ * @return The fluent chain.
+ * @see #numberFormatterFirst
+ * @draft ICU 63
+ */
+ Derived numberFormatterFirst(UnlocalizedNumberFormatter &&formatterFirst) &&;
+
+ /**
+ * Sets the NumberFormatter instance to use for the second number in the range.
+ * <p>
+ * The NumberFormatter instances must not have a locale applied yet; the locale specified on the
+ * NumberRangeFormatter will be used.
+ *
+ * @param formatterSecond
+ * The formatter to use for the second number in the range.
+ * @return The fluent chain.
+ * @draft ICU 63
+ */
+ Derived numberFormatterSecond(const UnlocalizedNumberFormatter &formatterSecond) const &;
+
+ /**
+ * Overload of numberFormatterSecond() for use on an rvalue reference.
+ *
+ * @param formatterSecond
+ * The formatter to use for the second number in the range.
+ * @return The fluent chain.
+ * @see #numberFormatterSecond
+ * @draft ICU 63
+ */
+ Derived numberFormatterSecond(const UnlocalizedNumberFormatter &formatterSecond) &&;
+
+ /**
+ * Overload of numberFormatterSecond() for use on an rvalue reference.
+ *
+ * @param formatterSecond
+ * The formatter to use for the second number in the range.
+ * @return The fluent chain.
+ * @see #numberFormatterSecond
+ * @draft ICU 63
+ */
+ Derived numberFormatterSecond(UnlocalizedNumberFormatter &&formatterSecond) const &;
+
+ /**
+ * Overload of numberFormatterSecond() for use on an rvalue reference.
+ *
+ * @param formatterSecond
+ * The formatter to use for the second number in the range.
+ * @return The fluent chain.
+ * @see #numberFormatterSecond
+ * @draft ICU 63
+ */
+ Derived numberFormatterSecond(UnlocalizedNumberFormatter &&formatterSecond) &&;
+
+ /**
+ * Sets the aggressiveness of "collapsing" fields across the range separator. Possible values:
+ * <p>
+ * <ul>
+ * <li>ALL: "3-5K miles"</li>
+ * <li>UNIT: "3K - 5K miles"</li>
+ * <li>NONE: "3K miles - 5K miles"</li>
+ * <li>AUTO: usually UNIT or NONE, depending on the locale and formatter settings</li>
+ * </ul>
+ * <p>
+ * The default value is AUTO.
+ *
+ * @param collapse
+ * The collapsing strategy to use for this range.
+ * @return The fluent chain.
+ * @draft ICU 63
+ */
+ Derived collapse(UNumberRangeCollapse collapse) const &;
+
+ /**
+ * Overload of collapse() for use on an rvalue reference.
+ *
+ * @param collapse
+ * The collapsing strategy to use for this range.
+ * @return The fluent chain.
+ * @see #collapse
+ * @draft ICU 63
+ */
+ Derived collapse(UNumberRangeCollapse collapse) &&;
+
+ /**
+ * Sets the behavior when the two sides of the range are the same. This could happen if the same two numbers are
+ * passed to the formatRange function, or if different numbers are passed to the function but they become the same
+ * after rounding rules are applied. Possible values:
+ * <p>
+ * <ul>
+ * <li>SINGLE_VALUE: "5 miles"</li>
+ * <li>APPROXIMATELY_OR_SINGLE_VALUE: "~5 miles" or "5 miles", depending on whether the number was the same before
+ * rounding was applied</li>
+ * <li>APPROXIMATELY: "~5 miles"</li>
+ * <li>RANGE: "5-5 miles" (with collapse=UNIT)</li>
+ * </ul>
+ * <p>
+ * The default value is APPROXIMATELY.
+ *
+ * @param identityFallback
+ * The strategy to use when formatting two numbers that end up being the same.
+ * @return The fluent chain.
+ * @draft ICU 63
+ */
+ Derived identityFallback(UNumberRangeIdentityFallback identityFallback) const &;
+
+ /**
+ * Overload of identityFallback() for use on an rvalue reference.
+ *
+ * @param identityFallback
+ * The strategy to use when formatting two numbers that end up being the same.
+ * @return The fluent chain.
+ * @see #identityFallback
+ * @draft ICU 63
+ */
+ Derived identityFallback(UNumberRangeIdentityFallback identityFallback) &&;
+
+ /**
+ * Sets the UErrorCode if an error occurred in the fluent chain.
+ * Preserves older error codes in the outErrorCode.
+ * @return TRUE if U_FAILURE(outErrorCode)
+ * @draft ICU 63
+ */
+ UBool copyErrorTo(UErrorCode &outErrorCode) const {
+ if (U_FAILURE(outErrorCode)) {
+ // Do not overwrite the older error code
+ return TRUE;
+ }
+ fMacros.copyErrorTo(outErrorCode);
+ return U_FAILURE(outErrorCode);
+ };
+
+ // NOTE: Uses default copy and move constructors.
+
+ private:
+ impl::RangeMacroProps fMacros;
+
+ // Don't construct me directly! Use (Un)LocalizedNumberFormatter.
+ NumberRangeFormatterSettings() = default;
+
+ friend class LocalizedNumberRangeFormatter;
+ friend class UnlocalizedNumberRangeFormatter;
+};
+
+/**
+ * A NumberRangeFormatter that does not yet have a locale. In order to format, a locale must be specified.
+ *
+ * @see NumberRangeFormatter
+ * @draft ICU 63
+ */
+class U_I18N_API UnlocalizedNumberRangeFormatter
+ : public NumberRangeFormatterSettings<UnlocalizedNumberRangeFormatter>, public UMemory {
+
+ public:
+ /**
+ * Associate the given locale with the number range formatter. The locale is used for picking the
+ * appropriate symbols, formats, and other data for number display.
+ *
+ * @param locale
+ * The locale to use when loading data for number formatting.
+ * @return The fluent chain.
+ * @draft ICU 63
+ */
+ LocalizedNumberRangeFormatter locale(const icu::Locale &locale) const &;
+
+ /**
+ * Overload of locale() for use on an rvalue reference.
+ *
+ * @param locale
+ * The locale to use when loading data for number formatting.
+ * @return The fluent chain.
+ * @see #locale
+ * @draft ICU 63
+ */
+ LocalizedNumberRangeFormatter locale(const icu::Locale &locale) &&;
+
+ /**
+ * Default constructor: puts the formatter into a valid but undefined state.
+ *
+ * @draft ICU 63
+ */
+ UnlocalizedNumberRangeFormatter() = default;
+
+ /**
+ * Returns a copy of this UnlocalizedNumberRangeFormatter.
+ * @draft ICU 63
+ */
+ UnlocalizedNumberRangeFormatter(const UnlocalizedNumberRangeFormatter &other);
+
+ /**
+ * Move constructor:
+ * The source UnlocalizedNumberRangeFormatter will be left in a valid but undefined state.
+ * @draft ICU 63
+ */
+ UnlocalizedNumberRangeFormatter(UnlocalizedNumberRangeFormatter&& src) U_NOEXCEPT;
+
+ /**
+ * Copy assignment operator.
+ * @draft ICU 63
+ */
+ UnlocalizedNumberRangeFormatter& operator=(const UnlocalizedNumberRangeFormatter& other);
+
+ /**
+ * Move assignment operator:
+ * The source UnlocalizedNumberRangeFormatter will be left in a valid but undefined state.
+ * @draft ICU 63
+ */
+ UnlocalizedNumberRangeFormatter& operator=(UnlocalizedNumberRangeFormatter&& src) U_NOEXCEPT;
+
+ private:
+ explicit UnlocalizedNumberRangeFormatter(
+ const NumberRangeFormatterSettings<UnlocalizedNumberRangeFormatter>& other);
+
+ explicit UnlocalizedNumberRangeFormatter(
+ NumberRangeFormatterSettings<UnlocalizedNumberRangeFormatter>&& src) U_NOEXCEPT;
+
+ // To give the fluent setters access to this class's constructor:
+ friend class NumberRangeFormatterSettings<UnlocalizedNumberRangeFormatter>;
+
+ // To give NumberRangeFormatter::with() access to this class's constructor:
+ friend class NumberRangeFormatter;
+};
+
+/**
+ * A NumberRangeFormatter that has a locale associated with it; this means .formatRange() methods are available.
+ *
+ * @see NumberFormatter
+ * @draft ICU 63
+ */
+class U_I18N_API LocalizedNumberRangeFormatter
+ : public NumberRangeFormatterSettings<LocalizedNumberRangeFormatter>, public UMemory {
+ public:
+ /**
+ * Format the given Formattables to a string using the settings specified in the NumberRangeFormatter fluent setting
+ * chain.
+ *
+ * @param first
+ * The first number in the range, usually to the left in LTR locales.
+ * @param second
+ * The second number in the range, usually to the right in LTR locales.
+ * @param status
+ * Set if an error occurs while formatting.
+ * @return A FormattedNumberRange object; call .toString() to get the string.
+ * @draft ICU 63
+ */
+ FormattedNumberRange formatFormattableRange(
+ const Formattable& first, const Formattable& second, UErrorCode& status) const;
+
+ /**
+ * Default constructor: puts the formatter into a valid but undefined state.
+ *
+ * @draft ICU 63
+ */
+ LocalizedNumberRangeFormatter() = default;
+
+ /**
+ * Returns a copy of this LocalizedNumberRangeFormatter.
+ * @draft ICU 63
+ */
+ LocalizedNumberRangeFormatter(const LocalizedNumberRangeFormatter &other);
+
+ /**
+ * Move constructor:
+ * The source LocalizedNumberRangeFormatter will be left in a valid but undefined state.
+ * @draft ICU 63
+ */
+ LocalizedNumberRangeFormatter(LocalizedNumberRangeFormatter&& src) U_NOEXCEPT;
+
+ /**
+ * Copy assignment operator.
+ * @draft ICU 63
+ */
+ LocalizedNumberRangeFormatter& operator=(const LocalizedNumberRangeFormatter& other);
+
+ /**
+ * Move assignment operator:
+ * The source LocalizedNumberRangeFormatter will be left in a valid but undefined state.
+ * @draft ICU 63
+ */
+ LocalizedNumberRangeFormatter& operator=(LocalizedNumberRangeFormatter&& src) U_NOEXCEPT;
+
+#ifndef U_HIDE_INTERNAL_API
+
+ /**
+ * @param results
+ * The results object. This method will mutate it to save the results.
+ * @param equalBeforeRounding
+ * Whether the number was equal before copying it into a DecimalQuantity.
+ * Used for determining the identity fallback behavior.
+ * @param status
+ * Set if an error occurs while formatting.
+ * @internal
+ */
+ void formatImpl(impl::UFormattedNumberRangeData& results, bool equalBeforeRounding,
+ UErrorCode& status) const;
+
+#endif
+
+ /**
+ * Destruct this LocalizedNumberRangeFormatter, cleaning up any memory it might own.
+ * @draft ICU 63
+ */
+ ~LocalizedNumberRangeFormatter();
+
+ private:
+ std::atomic<impl::NumberRangeFormatterImpl*> fAtomicFormatter = {};
+
+ const impl::NumberRangeFormatterImpl* getFormatter(UErrorCode& stauts) const;
+
+ explicit LocalizedNumberRangeFormatter(
+ const NumberRangeFormatterSettings<LocalizedNumberRangeFormatter>& other);
+
+ explicit LocalizedNumberRangeFormatter(
+ NumberRangeFormatterSettings<LocalizedNumberRangeFormatter>&& src) U_NOEXCEPT;
+
+ LocalizedNumberRangeFormatter(const impl::RangeMacroProps &macros, const Locale &locale);
+
+ LocalizedNumberRangeFormatter(impl::RangeMacroProps &&macros, const Locale &locale);
+
+ void clear();
+
+ // To give the fluent setters access to this class's constructor:
+ friend class NumberRangeFormatterSettings<UnlocalizedNumberRangeFormatter>;
+ friend class NumberRangeFormatterSettings<LocalizedNumberRangeFormatter>;
+
+ // To give UnlocalizedNumberRangeFormatter::locale() access to this class's constructor:
+ friend class UnlocalizedNumberRangeFormatter;
+};
+
+/**
+ * The result of a number range formatting operation. This class allows the result to be exported in several data types,
+ * including a UnicodeString and a FieldPositionIterator.
+ *
+ * @draft ICU 63
+ */
+class U_I18N_API FormattedNumberRange : public UMemory {
+ public:
+ /**
+ * Returns a UnicodeString representation of the formatted number range.
+ *
+ * @param status
+ * Set if an error occurs while formatting the number to the UnicodeString.
+ * @return a UnicodeString containing the localized number range.
+ * @draft ICU 63
+ */
+ UnicodeString toString(UErrorCode& status) const;
+
+ /**
+ * Appends the formatted number range to an Appendable.
+ *
+ * @param appendable
+ * The Appendable to which to append the formatted number range string.
+ * @param status
+ * Set if an error occurs while formatting the number range to the Appendable.
+ * @return The same Appendable, for chaining.
+ * @draft ICU 63
+ * @see Appendable
+ */
+ Appendable &appendTo(Appendable &appendable, UErrorCode& status) const;
+
+ /**
+ * Determines the start (inclusive) and end (exclusive) indices of the next occurrence of the given
+ * <em>field</em> in the output string. This allows you to determine the locations of, for example,
+ * the integer part, fraction part, or symbols.
+ *
+ * If both sides of the range have the same field, the field will occur twice, once before the
+ * range separator and once after the range separator, if applicable.
+ *
+ * If a field occurs just once, calling this method will find that occurrence and return it. If a
+ * field occurs multiple times, this method may be called repeatedly with the following pattern:
+ *
+ * <pre>
+ * FieldPosition fpos(UNUM_INTEGER_FIELD);
+ * while (formattedNumberRange.nextFieldPosition(fpos, status)) {
+ * // do something with fpos.
+ * }
+ * </pre>
+ *
+ * This method is useful if you know which field to query. If you want all available field position
+ * information, use #getAllFieldPositions().
+ *
+ * @param fieldPosition
+ * Input+output variable. See {@link FormattedNumber#nextFieldPosition}.
+ * @param status
+ * Set if an error occurs while populating the FieldPosition.
+ * @return TRUE if a new occurrence of the field was found; FALSE otherwise.
+ * @draft ICU 63
+ * @see UNumberFormatFields
+ */
+ UBool nextFieldPosition(FieldPosition& fieldPosition, UErrorCode& status) const;
+
+ /**
+ * Export the formatted number range to a FieldPositionIterator. This allows you to determine which characters in
+ * the output string correspond to which <em>fields</em>, such as the integer part, fraction part, and sign.
+ *
+ * If information on only one field is needed, use #nextFieldPosition() instead.
+ *
+ * @param iterator
+ * The FieldPositionIterator to populate with all of the fields present in the formatted number.
+ * @param status
+ * Set if an error occurs while populating the FieldPositionIterator.
+ * @draft ICU 63
+ * @see UNumberFormatFields
+ */
+ void getAllFieldPositions(FieldPositionIterator &iterator, UErrorCode &status) const;
+
+ /**
+ * Export the first formatted number as a decimal number. This endpoint
+ * is useful for obtaining the exact number being printed after scaling
+ * and rounding have been applied by the number range formatting pipeline.
+ *
+ * The syntax of the unformatted number is a "numeric string"
+ * as defined in the Decimal Arithmetic Specification, available at
+ * http://speleotrove.com/decimal
+ *
+ * @return A decimal representation of the first formatted number.
+ * @draft ICU 63
+ * @see NumberRangeFormatter
+ * @see #getSecondDecimal
+ */
+ UnicodeString getFirstDecimal(UErrorCode& status) const;
+
+ /**
+ * Export the second formatted number as a decimal number. This endpoint
+ * is useful for obtaining the exact number being printed after scaling
+ * and rounding have been applied by the number range formatting pipeline.
+ *
+ * The syntax of the unformatted number is a "numeric string"
+ * as defined in the Decimal Arithmetic Specification, available at
+ * http://speleotrove.com/decimal
+ *
+ * @return A decimal representation of the second formatted number.
+ * @draft ICU 63
+ * @see NumberRangeFormatter
+ * @see #getFirstDecimal
+ */
+ UnicodeString getSecondDecimal(UErrorCode& status) const;
+
+ /**
+ * Returns whether the pair of numbers was successfully formatted as a range or whether an identity fallback was
+ * used. For example, if the first and second number were the same either before or after rounding occurred, an
+ * identity fallback was used.
+ *
+ * @return An indication the resulting identity situation in the formatted number range.
+ * @draft ICU 63
+ * @see UNumberRangeIdentityFallback
+ */
+ UNumberRangeIdentityResult getIdentityResult(UErrorCode& status) const;
+
+ /**
+ * Copying not supported; use move constructor instead.
+ */
+ FormattedNumberRange(const FormattedNumberRange&) = delete;
+
+ /**
+ * Copying not supported; use move assignment instead.
+ */
+ FormattedNumberRange& operator=(const FormattedNumberRange&) = delete;
+
+ /**
+ * Move constructor:
+ * Leaves the source FormattedNumberRange in an undefined state.
+ * @draft ICU 63
+ */
+ FormattedNumberRange(FormattedNumberRange&& src) U_NOEXCEPT;
+
+ /**
+ * Move assignment:
+ * Leaves the source FormattedNumberRange in an undefined state.
+ * @draft ICU 63
+ */
+ FormattedNumberRange& operator=(FormattedNumberRange&& src) U_NOEXCEPT;
+
+ /**
+ * Destruct an instance of FormattedNumberRange, cleaning up any memory it might own.
+ * @draft ICU 63
+ */
+ ~FormattedNumberRange();
+
+ private:
+ // Can't use LocalPointer because UFormattedNumberRangeData is forward-declared
+ const impl::UFormattedNumberRangeData *fResults;
+
+ // Error code for the terminal methods
+ UErrorCode fErrorCode;
+
+ /**
+ * Internal constructor from data type. Adopts the data pointer.
+ * @internal
+ */
+ explicit FormattedNumberRange(impl::UFormattedNumberRangeData *results)
+ : fResults(results), fErrorCode(U_ZERO_ERROR) {};
+
+ explicit FormattedNumberRange(UErrorCode errorCode)
+ : fResults(nullptr), fErrorCode(errorCode) {};
+
+ void getAllFieldPositionsImpl(FieldPositionIteratorHandler& fpih, UErrorCode& status) const;
+
+ // To give LocalizedNumberRangeFormatter format methods access to this class's constructor:
+ friend class LocalizedNumberRangeFormatter;
+};
+
+/**
+ * See the main description in numberrangeformatter.h for documentation and examples.
+ *
+ * @draft ICU 63
+ */
+class U_I18N_API NumberRangeFormatter final {
+ public:
+ /**
+ * Call this method at the beginning of a NumberRangeFormatter fluent chain in which the locale is not currently
+ * known at the call site.
+ *
+ * @return An {@link UnlocalizedNumberRangeFormatter}, to be used for chaining.
+ * @draft ICU 63
+ */
+ static UnlocalizedNumberRangeFormatter with();
+
+ /**
+ * Call this method at the beginning of a NumberRangeFormatter fluent chain in which the locale is known at the call
+ * site.
+ *
+ * @param locale
+ * The locale from which to load formats and symbols for number range formatting.
+ * @return A {@link LocalizedNumberRangeFormatter}, to be used for chaining.
+ * @draft ICU 63
+ */
+ static LocalizedNumberRangeFormatter withLocale(const Locale &locale);
+
+ /**
+ * Use factory methods instead of the constructor to create a NumberFormatter.
+ */
+ NumberRangeFormatter() = delete;
+};
+
+} // namespace number
+U_NAMESPACE_END
+
+#endif // U_HIDE_DRAFT_API
+
+#endif // __NUMBERRANGEFORMATTER_H__
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/unicode/numfmt.h b/Build/source/libs/icu/icu-src/source/i18n/unicode/numfmt.h
index 39379851b0f..1e554918ec3 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/unicode/numfmt.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/unicode/numfmt.h
@@ -56,7 +56,6 @@ class StringEnumeration;
* <p><strong>IMPORTANT:</strong> New users are strongly encouraged to see if
* numberformatter.h fits their use case. Although not deprecated, this header
* is provided for backwards compatibility only.
- * <hr/>
*
* Abstract base class for all number formats. Provides interface for
* formatting and parsing a number. Also provides methods for
@@ -555,16 +554,18 @@ public:
UnicodeString& appendTo,
FieldPositionIterator* posIter,
UErrorCode& status) const;
-public:
+
+// Can't use #ifndef U_HIDE_INTERNAL_API because these are virtual methods
+
/**
* Format a decimal number.
- * The number is a DigitList wrapper onto a floating point decimal number.
+ * The number is a DecimalQuantity wrapper onto a floating point decimal number.
* The default implementation in NumberFormat converts the decimal number
* to a double and formats that. Subclasses of NumberFormat that want
* to specifically handle big decimal numbers must override this method.
* class DecimalFormat does so.
*
- * @param number The number, a DigitList format Decimal Floating Point.
+ * @param number The number, a DecimalQuantity format Decimal Floating Point.
* @param appendTo Output parameter to receive result.
* Result is appended to existing contents.
* @param posIter On return, can be used to iterate over positions
@@ -573,20 +574,20 @@ public:
* @return Reference to 'appendTo' parameter.
* @internal
*/
- virtual UnicodeString& format(const DigitList &number,
+ virtual UnicodeString& format(const number::impl::DecimalQuantity &number,
UnicodeString& appendTo,
FieldPositionIterator* posIter,
UErrorCode& status) const;
/**
* Format a decimal number.
- * The number is a DigitList wrapper onto a floating point decimal number.
+ * The number is a DecimalQuantity wrapper onto a floating point decimal number.
* The default implementation in NumberFormat converts the decimal number
* to a double and formats that. Subclasses of NumberFormat that want
* to specifically handle big decimal numbers must override this method.
* class DecimalFormat does so.
*
- * @param number The number, a DigitList format Decimal Floating Point.
+ * @param number The number, a DecimalQuantity format Decimal Floating Point.
* @param appendTo Output parameter to receive result.
* Result is appended to existing contents.
* @param pos On input: an alignment field, if desired.
@@ -595,13 +596,11 @@ public:
* @return Reference to 'appendTo' parameter.
* @internal
*/
- virtual UnicodeString& format(const DigitList &number,
+ virtual UnicodeString& format(const number::impl::DecimalQuantity &number,
UnicodeString& appendTo,
FieldPosition& pos,
UErrorCode& status) const;
-public:
-
/**
* Return a long if possible (e.g. within range LONG_MAX,
* LONG_MAX], and with no decimals), otherwise a double. If
@@ -710,7 +709,7 @@ public:
* The default formatting style is locale dependent.
* <p>
* <strong>NOTE:</strong> New users are strongly encouraged to use
- * {@link NumberFormatter} instead of NumberFormat.
+ * {@link icu::number::NumberFormatter} instead of NumberFormat.
* @stable ICU 2.0
*/
static NumberFormat* U_EXPORT2 createInstance(UErrorCode&);
@@ -721,7 +720,7 @@ public:
* @param inLocale the given locale.
* <p>
* <strong>NOTE:</strong> New users are strongly encouraged to use
- * {@link NumberFormatter} instead of NumberFormat.
+ * {@link icu::number::NumberFormatter} instead of NumberFormat.
* @stable ICU 2.0
*/
static NumberFormat* U_EXPORT2 createInstance(const Locale& inLocale,
@@ -731,7 +730,7 @@ public:
* Create a specific style NumberFormat for the specified locale.
* <p>
* <strong>NOTE:</strong> New users are strongly encouraged to use
- * {@link NumberFormatter} instead of NumberFormat.
+ * {@link icu::number::NumberFormatter} instead of NumberFormat.
* @param desiredLocale the given locale.
* @param style the given style.
* @param errorCode Output param filled with success/failure status.
@@ -770,7 +769,7 @@ public:
* Returns a currency format for the current default locale.
* <p>
* <strong>NOTE:</strong> New users are strongly encouraged to use
- * {@link NumberFormatter} instead of NumberFormat.
+ * {@link icu::number::NumberFormatter} instead of NumberFormat.
* @stable ICU 2.0
*/
static NumberFormat* U_EXPORT2 createCurrencyInstance(UErrorCode&);
@@ -779,7 +778,7 @@ public:
* Returns a currency format for the specified locale.
* <p>
* <strong>NOTE:</strong> New users are strongly encouraged to use
- * {@link NumberFormatter} instead of NumberFormat.
+ * {@link icu::number::NumberFormatter} instead of NumberFormat.
* @param inLocale the given locale.
* @stable ICU 2.0
*/
@@ -790,7 +789,7 @@ public:
* Returns a percentage format for the current default locale.
* <p>
* <strong>NOTE:</strong> New users are strongly encouraged to use
- * {@link NumberFormatter} instead of NumberFormat.
+ * {@link icu::number::NumberFormatter} instead of NumberFormat.
* @stable ICU 2.0
*/
static NumberFormat* U_EXPORT2 createPercentInstance(UErrorCode&);
@@ -799,7 +798,7 @@ public:
* Returns a percentage format for the specified locale.
* <p>
* <strong>NOTE:</strong> New users are strongly encouraged to use
- * {@link NumberFormatter} instead of NumberFormat.
+ * {@link icu::number::NumberFormatter} instead of NumberFormat.
* @param inLocale the given locale.
* @stable ICU 2.0
*/
@@ -810,7 +809,7 @@ public:
* Returns a scientific format for the current default locale.
* <p>
* <strong>NOTE:</strong> New users are strongly encouraged to use
- * {@link NumberFormatter} instead of NumberFormat.
+ * {@link icu::number::NumberFormatter} instead of NumberFormat.
* @stable ICU 2.0
*/
static NumberFormat* U_EXPORT2 createScientificInstance(UErrorCode&);
@@ -819,7 +818,7 @@ public:
* Returns a scientific format for the specified locale.
* <p>
* <strong>NOTE:</strong> New users are strongly encouraged to use
- * {@link NumberFormatter} instead of NumberFormat.
+ * {@link icu::number::NumberFormatter} instead of NumberFormat.
* @param inLocale the given locale.
* @stable ICU 2.0
*/
@@ -1000,7 +999,7 @@ public:
* @stable ICU 2.6
*/
const char16_t* getCurrency() const;
-
+
/**
* Set a particular UDisplayContext value in the formatter, such as
* UDISPCTX_CAPITALIZATION_FOR_STANDALONE.
@@ -1028,14 +1027,14 @@ public:
* Get the rounding mode. This will always return NumberFormat::ERoundingMode::kRoundUnnecessary
* if the subclass does not support rounding.
* @return A rounding mode
- * @draft ICU 60
+ * @stable ICU 60
*/
virtual ERoundingMode getRoundingMode(void) const;
/**
* Set the rounding mode. If a subclass does not support rounding, this will do nothing.
* @param roundingMode A rounding mode
- * @draft ICU 60
+ * @stable ICU 60
*/
virtual void setRoundingMode(ERoundingMode roundingMode);
diff --git a/Build/source/libs/icu/icu-src/source/i18n/unicode/plurfmt.h b/Build/source/libs/icu/icu-src/source/i18n/unicode/plurfmt.h
index fd537c24c21..cb901b0c7b5 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/unicode/plurfmt.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/unicode/plurfmt.h
@@ -520,15 +520,7 @@ public:
*/
virtual UClassID getDynamicClassID() const;
-#if (defined(__xlC__) && (__xlC__ < 0x0C00)) || (U_PLATFORM == U_PF_OS390) || (U_PLATFORM ==U_PF_OS400)
-// Work around a compiler bug on xlC 11.1 on AIX 7.1 that would
-// prevent PluralSelectorAdapter from implementing private PluralSelector.
-// xlC error message:
-// 1540-0300 (S) The "private" member "class icu_49::PluralFormat::PluralSelector" cannot be accessed.
-public:
-#else
private:
-#endif
/**
* @internal
*/
@@ -564,10 +556,6 @@ private:
PluralRules* pluralRules;
};
-#if defined(__xlC__)
-// End of xlC bug workaround, keep remaining definitions private.
-private:
-#endif
Locale locale;
MessagePattern msgPattern;
NumberFormat* numberFormat;
diff --git a/Build/source/libs/icu/icu-src/source/i18n/unicode/plurrule.h b/Build/source/libs/icu/icu-src/source/i18n/unicode/plurrule.h
index d372d79c845..daeed52bee6 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/unicode/plurrule.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/unicode/plurrule.h
@@ -44,7 +44,6 @@ U_NAMESPACE_BEGIN
class Hashtable;
class IFixedDecimal;
-class VisibleDigitsWithExponent;
class RuleChain;
class PluralRuleParser;
class PluralKeywordEnumeration;
@@ -119,7 +118,6 @@ class SharedPluralRules;
* Examples are in the following table:
* </p>
* <table border='1' style="border-collapse:collapse">
- * <tbody>
* <tr>
* <th>n</th>
* <th>i</th>
@@ -156,7 +154,6 @@ class SharedPluralRules;
* <td align="right">23</td>
* <td>2</td>
* </tr>
- * </tbody>
* </table>
* <p>
* The difference between 'in' and 'within' is that 'in' only includes integers in the specified range, while 'within'
@@ -349,29 +346,9 @@ public:
#ifndef U_HIDE_INTERNAL_API
/**
- * Given a number and a format, returns the keyword of the first applicable
- * rule for this PluralRules object.
- * Note: This internal preview interface may be removed in the future if
- * an architecturally cleaner solution reaches stable status.
- * @param obj The numeric object for which the rule should be determined.
- * @param fmt The NumberFormat specifying how the number will be formatted
- * (this can affect the plural form, e.g. "1 dollar" vs "1.0 dollars").
- * @param status Input/output parameter. If at entry this indicates a
- * failure status, the method returns immediately; otherwise
- * this is set to indicate the outcome of the call.
- * @return The keyword of the selected rule. Undefined in the case of an error.
- * @internal ICU 59 technology preview, may be removed in the future
- */
- UnicodeString select(const Formattable& obj, const NumberFormat& fmt, UErrorCode& status) const;
-
- /**
* @internal
*/
UnicodeString select(const IFixedDecimal &number) const;
- /**
- * @internal
- */
- UnicodeString select(const VisibleDigitsWithExponent &number) const;
#endif /* U_HIDE_INTERNAL_API */
/**
@@ -520,6 +497,12 @@ private:
UnicodeString getRuleFromResource(const Locale& locale, UPluralType type, UErrorCode& status);
RuleChain *rulesForKeyword(const UnicodeString &keyword) const;
+ /**
+ * An internal status variable used to indicate that the object is in an 'invalid' state.
+ * Used by copy constructor, the assignment operator and the clone method.
+ */
+ UErrorCode mInternalStatus;
+
friend class PluralRuleParser;
};
diff --git a/Build/source/libs/icu/icu-src/source/i18n/unicode/rbnf.h b/Build/source/libs/icu/icu-src/source/i18n/unicode/rbnf.h
index 12925443b2d..d6ba523b780 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/unicode/rbnf.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/unicode/rbnf.h
@@ -313,7 +313,6 @@ enum URBNFRuleSetTag {
* <td>The rule for an IEEE 754 NaN (not a number).</td>
* </tr>
* <tr>
- * <tr>
* <td><em>nothing</em></td>
* <td>If the rule's rule descriptor is left out, the base value is one plus the
* preceding rule's base value (or zero if this is the first rule in the list) in a normal
@@ -884,7 +883,7 @@ protected:
* @return Reference to 'appendTo' parameter.
* @internal
*/
- virtual UnicodeString& format(const DigitList &number,
+ virtual UnicodeString& format(const number::impl::DecimalQuantity &number,
UnicodeString& appendTo,
FieldPositionIterator* posIter,
UErrorCode& status) const;
@@ -906,7 +905,7 @@ protected:
* @return Reference to 'appendTo' parameter.
* @internal
*/
- virtual UnicodeString& format(const DigitList &number,
+ virtual UnicodeString& format(const number::impl::DecimalQuantity &number,
UnicodeString& appendTo,
FieldPosition& pos,
UErrorCode& status) const;
@@ -1013,14 +1012,14 @@ public:
/**
* Get the rounding mode.
* @return A rounding mode
- * @draft ICU 60
+ * @stable ICU 60
*/
virtual ERoundingMode getRoundingMode(void) const;
/**
* Set the rounding mode.
* @param roundingMode A rounding mode
- * @draft ICU 60
+ * @stable ICU 60
*/
virtual void setRoundingMode(ERoundingMode roundingMode);
@@ -1095,7 +1094,7 @@ private:
void format(double number, NFRuleSet& rs, UnicodeString& toAppendTo, UErrorCode& status) const;
private:
- NFRuleSet **ruleSets;
+ NFRuleSet **fRuleSets;
UnicodeString* ruleSetDescriptions;
int32_t numRuleSets;
NFRuleSet *defaultRuleSet;
@@ -1104,7 +1103,7 @@ private:
DecimalFormatSymbols* decimalFormatSymbols;
NFRule *defaultInfinityRule;
NFRule *defaultNaNRule;
- ERoundingMode roundingMode;
+ ERoundingMode fRoundingMode;
UBool lenient;
UnicodeString* lenientParseRules;
LocalizationInfo* localizations;
diff --git a/Build/source/libs/icu/icu-src/source/i18n/unicode/region.h b/Build/source/libs/icu/icu-src/source/i18n/unicode/region.h
index 80b2929e9f0..4014025f6f2 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/unicode/region.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/unicode/region.h
@@ -192,7 +192,7 @@ private:
char id[4];
UnicodeString idStr;
int32_t code;
- URegionType type;
+ URegionType fType;
Region *containingRegion;
UVector *containedRegions;
UVector *preferredValues;
diff --git a/Build/source/libs/icu/icu-src/source/i18n/unicode/reldatefmt.h b/Build/source/libs/icu/icu-src/source/i18n/unicode/reldatefmt.h
index 09d9620be5b..be06b1013d5 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/unicode/reldatefmt.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/unicode/reldatefmt.h
@@ -165,12 +165,20 @@ typedef enum UDateAbsoluteUnit {
*/
UDAT_ABSOLUTE_NOW,
+#ifndef U_HIDE_DRAFT_API
+ /**
+ * Quarter
+ * @draft ICU 63
+ */
+ UDAT_ABSOLUTE_QUARTER,
+#endif // U_HIDE_DRAFT_API
+
#ifndef U_HIDE_DEPRECATED_API
/**
* One more than the highest normal UDateAbsoluteUnit value.
* @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
*/
- UDAT_ABSOLUTE_UNIT_COUNT
+ UDAT_ABSOLUTE_UNIT_COUNT = UDAT_ABSOLUTE_NOW + 2
#endif // U_HIDE_DEPRECATED_API
} UDateAbsoluteUnit;
@@ -328,7 +336,7 @@ public:
* @param nfToAdopt Constructed object takes ownership of this pointer.
* It is an error for caller to delete this pointer or change its
* contents after calling this constructor.
- * @status Any error is returned here.
+ * @param status Any error is returned here.
* @stable ICU 53
*/
RelativeDateTimeFormatter(
@@ -346,7 +354,7 @@ public:
* @param style the format style. The UDAT_RELATIVE bit field has no effect.
* @param capitalizationContext A value from UDisplayContext that pertains to
* capitalization.
- * @status Any error is returned here.
+ * @param status Any error is returned here.
* @stable ICU 54
*/
RelativeDateTimeFormatter(
diff --git a/Build/source/libs/icu/icu-src/source/i18n/unicode/scientificnumberformatter.h b/Build/source/libs/icu/icu-src/source/i18n/unicode/scientificnumberformatter.h
index 15023d5141a..6c34d2ce29a 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/unicode/scientificnumberformatter.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/unicode/scientificnumberformatter.h
@@ -24,7 +24,6 @@
U_NAMESPACE_BEGIN
class FieldPositionIterator;
-class DecimalFormatStaticSets;
class DecimalFormatSymbols;
class DecimalFormat;
class Formattable;
@@ -150,7 +149,6 @@ public:
const UnicodeString &original,
FieldPositionIterator &fpi,
const UnicodeString &preExponent,
- const DecimalFormatStaticSets &decimalFormatSets,
UnicodeString &appendTo,
UErrorCode &status) const = 0;
private:
@@ -165,7 +163,6 @@ public:
const UnicodeString &original,
FieldPositionIterator &fpi,
const UnicodeString &preExponent,
- const DecimalFormatStaticSets &decimalFormatSets,
UnicodeString &appendTo,
UErrorCode &status) const;
};
@@ -184,7 +181,6 @@ public:
const UnicodeString &original,
FieldPositionIterator &fpi,
const UnicodeString &preExponent,
- const DecimalFormatStaticSets &decimalFormatSets,
UnicodeString &appendTo,
UErrorCode &status) const;
private:
@@ -211,7 +207,6 @@ public:
UnicodeString fPreExponent;
DecimalFormat *fDecimalFormat;
Style *fStyle;
- const DecimalFormatStaticSets *fStaticSets;
};
diff --git a/Build/source/libs/icu/icu-src/source/i18n/unicode/smpdtfmt.h b/Build/source/libs/icu/icu-src/source/i18n/unicode/smpdtfmt.h
index 9801b29bdb7..929c1b4675b 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/unicode/smpdtfmt.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/unicode/smpdtfmt.h
@@ -50,6 +50,10 @@ class TimeZoneFormat;
class SharedNumberFormat;
class SimpleDateFormatMutableNFs;
+namespace number {
+class LocalizedNumberFormatter;
+}
+
/**
*
* SimpleDateFormat is a concrete class for formatting and parsing dates in a
@@ -1143,7 +1147,7 @@ public:
* Overrides base class method and
* This method clears per field NumberFormat instances
* previously set by {@see adoptNumberFormat(const UnicodeString&, NumberFormat*, UErrorCode)}
- * @param adoptNF the NumbeferFormat used
+ * @param formatToAdopt the NumbeferFormat used
* @stable ICU 54
*/
void adoptNumberFormat(NumberFormat *formatToAdopt);
@@ -1158,7 +1162,7 @@ public:
* Per field NumberFormat can also be cleared in {@see DateFormat::setNumberFormat(const NumberFormat& newNumberFormat)}
*
* @param fields the fields to override(like y)
- * @param adoptNF the NumbeferFormat used
+ * @param formatToAdopt the NumbeferFormat used
* @param status Receives a status code, which will be U_ZERO_ERROR
* if the operation succeeds.
* @stable ICU 54
@@ -1268,7 +1272,6 @@ private:
int32_t fieldNum,
FieldPositionHandler& handler,
Calendar& cal,
- SimpleDateFormatMutableNFs &mutableNFs,
UErrorCode& status) const; // in case of illegal argument
/**
@@ -1284,7 +1287,7 @@ private:
* @param minDigits Minimum number of digits the result should have
* @param maxDigits Maximum number of digits the result should have
*/
- void zeroPaddingNumber(NumberFormat *currentNumberFormat,
+ void zeroPaddingNumber(const NumberFormat *currentNumberFormat,
UnicodeString &appendTo,
int32_t value,
int32_t minDigits,
@@ -1414,21 +1417,21 @@ private:
*/
int32_t subParse(const UnicodeString& text, int32_t& start, char16_t ch, int32_t count,
UBool obeyCount, UBool allowNegative, UBool ambiguousYear[], int32_t& saveHebrewMonth, Calendar& cal,
- int32_t patLoc, MessageFormat * numericLeapMonthFormatter, UTimeZoneFormatTimeType *tzTimeType, SimpleDateFormatMutableNFs &mutableNFs,
+ int32_t patLoc, MessageFormat * numericLeapMonthFormatter, UTimeZoneFormatTimeType *tzTimeType,
int32_t *dayPeriod=NULL) const;
void parseInt(const UnicodeString& text,
Formattable& number,
ParsePosition& pos,
UBool allowNegative,
- NumberFormat *fmt) const;
+ const NumberFormat *fmt) const;
void parseInt(const UnicodeString& text,
Formattable& number,
int32_t maxDigits,
ParsePosition& pos,
UBool allowNegative,
- NumberFormat *fmt) const;
+ const NumberFormat *fmt) const;
int32_t checkIntSuffix(const UnicodeString& text, int32_t start,
int32_t patLoc, UBool isNegative) const;
@@ -1496,6 +1499,16 @@ private:
int32_t skipUWhiteSpace(const UnicodeString& text, int32_t pos) const;
/**
+ * Initialize LocalizedNumberFormatter instances used for speedup.
+ */
+ void initFastNumberFormatters(UErrorCode& status);
+
+ /**
+ * Delete the LocalizedNumberFormatter instances used for speedup.
+ */
+ void freeFastNumberFormatters();
+
+ /**
* Initialize NumberFormat instances used for numbering system overrides.
*/
void initNumberFormatters(const Locale &locale,UErrorCode &status);
@@ -1518,7 +1531,7 @@ private:
/**
* Lazy TimeZoneFormat instantiation, semantically const
*/
- TimeZoneFormat *tzFormat() const;
+ TimeZoneFormat *tzFormat(UErrorCode &status) const;
const NumberFormat* getNumberFormatByIndex(UDateFormatField index) const;
@@ -1611,6 +1624,20 @@ private:
*/
const SharedNumberFormat **fSharedNumberFormatters;
+ enum NumberFormatterKey {
+ SMPDTFMT_NF_1x10,
+ SMPDTFMT_NF_2x10,
+ SMPDTFMT_NF_3x10,
+ SMPDTFMT_NF_4x10,
+ SMPDTFMT_NF_2x2,
+ SMPDTFMT_NF_COUNT
+ };
+
+ /**
+ * Number formatters pre-allocated for fast performance on the most common integer lengths.
+ */
+ const number::LocalizedNumberFormatter* fFastNumberFormatters[SMPDTFMT_NF_COUNT] = {};
+
UBool fHaveDefaultCentury;
BreakIterator* fCapitalizationBrkIter;
diff --git a/Build/source/libs/icu/icu-src/source/i18n/unicode/timezone.h b/Build/source/libs/icu/icu-src/source/i18n/unicode/timezone.h
index 83dee317784..064703e1587 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/unicode/timezone.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/unicode/timezone.h
@@ -284,6 +284,8 @@ public:
* and may return a different TimeZone from the one returned by
* TimeZone::createDefault().
*
+ * <p>This function is not thread safe.</p>
+ *
* @return A new instance of TimeZone detected from the current host system
* configuration.
* @stable ICU 55
diff --git a/Build/source/libs/icu/icu-src/source/i18n/unicode/translit.h b/Build/source/libs/icu/icu-src/source/i18n/unicode/translit.h
index bccba548024..6b4888145f1 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/unicode/translit.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/unicode/translit.h
@@ -15,10 +15,10 @@
#include "unicode/utypes.h"
/**
- * \file
+ * \file
* \brief C++ API: Tranforms text from one format to another.
*/
-
+
#if !UCONFIG_NO_TRANSLITERATION
#include "unicode/uobject.h"
@@ -31,7 +31,6 @@ U_NAMESPACE_BEGIN
class UnicodeFilter;
class UnicodeSet;
-class CompoundTransliterator;
class TransliteratorParser;
class NormalizationTransliterator;
class TransliteratorIDParser;
@@ -77,8 +76,7 @@ class TransliteratorIDParser;
* transliteration. For example, given a string <code>input</code>
* and a transliterator <code>t</code>, the call
*
- * \htmlonly<blockquote>\endhtmlonly<code>String result = t.transliterate(input);
- * </code>\htmlonly</blockquote>\endhtmlonly
+ * String result = t.transliterate(input);
*
* will transliterate it and return the result. Other methods allow
* the client to specify a substring to be transliterated and to use
@@ -98,22 +96,20 @@ class TransliteratorIDParser;
* contents of the buffer may show text being modified as each new
* character arrives.
*
- * <p>Consider the simple <code>RuleBasedTransliterator</code>:
- *
- * \htmlonly<blockquote>\endhtmlonly<code>
- * th&gt;{theta}<br>
- * t&gt;{tau}
- * </code>\htmlonly</blockquote>\endhtmlonly
+ * <p>Consider the simple rule-based Transliterator:
+ * <pre>
+ * th>{theta}
+ * t>{tau}
+ * </pre>
*
* When the user types 't', nothing will happen, since the
* transliterator is waiting to see if the next character is 'h'. To
* remedy this, we introduce the notion of a cursor, marked by a '|'
* in the output string:
- *
- * \htmlonly<blockquote>\endhtmlonly<code>
- * t&gt;|{tau}<br>
- * {tau}h&gt;{theta}
- * </code>\htmlonly</blockquote>\endhtmlonly
+ * <pre>
+ * t>|{tau}
+ * {tau}h>{theta}
+ * </pre>
*
* Now when the user types 't', tau appears, and if the next character
* is 'h', the tau changes to a theta. This is accomplished by
@@ -135,7 +131,7 @@ class TransliteratorIDParser;
* which the transliterator last stopped, either because it reached
* the end, or because it required more characters to disambiguate
* between possible inputs. The <code>CURSOR</code> can also be
- * explicitly set by rules in a <code>RuleBasedTransliterator</code>.
+ * explicitly set by rules in a rule-based Transliterator.
* Any characters before the <code>CURSOR</code> index are frozen;
* future keyboard transliteration calls within this input sequence
* will not change them. New text is inserted at the
@@ -237,6 +233,255 @@ class TransliteratorIDParser;
* if the performance of these methods can be improved over the
* performance obtained by the default implementations in this class.
*
+ * <p><b>Rule syntax</b>
+ *
+ * <p>A set of rules determines how to perform translations.
+ * Rules within a rule set are separated by semicolons (';').
+ * To include a literal semicolon, prefix it with a backslash ('\').
+ * Unicode Pattern_White_Space is ignored.
+ * If the first non-blank character on a line is '#',
+ * the entire line is ignored as a comment.
+ *
+ * <p>Each set of rules consists of two groups, one forward, and one
+ * reverse. This is a convention that is not enforced; rules for one
+ * direction may be omitted, with the result that translations in
+ * that direction will not modify the source text. In addition,
+ * bidirectional forward-reverse rules may be specified for
+ * symmetrical transformations.
+ *
+ * <p>Note: Another description of the Transliterator rule syntax is available in
+ * <a href="https://www.unicode.org/reports/tr35/tr35-general.html#Transform_Rules_Syntax">section
+ * Transform Rules Syntax of UTS #35: Unicode LDML</a>.
+ * The rules are shown there using arrow symbols ← and → and ↔.
+ * ICU supports both those and the equivalent ASCII symbols &lt; and &gt; and &lt;&gt;.
+ *
+ * <p>Rule statements take one of the following forms:
+ *
+ * <dl>
+ * <dt><code>$alefmadda=\\u0622;</code></dt>
+ * <dd><strong>Variable definition.</strong> The name on the
+ * left is assigned the text on the right. In this example,
+ * after this statement, instances of the left hand name,
+ * &quot;<code>$alefmadda</code>&quot;, will be replaced by
+ * the Unicode character U+0622. Variable names must begin
+ * with a letter and consist only of letters, digits, and
+ * underscores. Case is significant. Duplicate names cause
+ * an exception to be thrown, that is, variables cannot be
+ * redefined. The right hand side may contain well-formed
+ * text of any length, including no text at all (&quot;<code>$empty=;</code>&quot;).
+ * The right hand side may contain embedded <code>UnicodeSet</code>
+ * patterns, for example, &quot;<code>$softvowel=[eiyEIY]</code>&quot;.</dd>
+ * <dt><code>ai&gt;$alefmadda;</code></dt>
+ * <dd><strong>Forward translation rule.</strong> This rule
+ * states that the string on the left will be changed to the
+ * string on the right when performing forward
+ * transliteration.</dd>
+ * <dt><code>ai&lt;$alefmadda;</code></dt>
+ * <dd><strong>Reverse translation rule.</strong> This rule
+ * states that the string on the right will be changed to
+ * the string on the left when performing reverse
+ * transliteration.</dd>
+ * </dl>
+ *
+ * <dl>
+ * <dt><code>ai&lt;&gt;$alefmadda;</code></dt>
+ * <dd><strong>Bidirectional translation rule.</strong> This
+ * rule states that the string on the right will be changed
+ * to the string on the left when performing forward
+ * transliteration, and vice versa when performing reverse
+ * transliteration.</dd>
+ * </dl>
+ *
+ * <p>Translation rules consist of a <em>match pattern</em> and an <em>output
+ * string</em>. The match pattern consists of literal characters,
+ * optionally preceded by context, and optionally followed by
+ * context. Context characters, like literal pattern characters,
+ * must be matched in the text being transliterated. However, unlike
+ * literal pattern characters, they are not replaced by the output
+ * text. For example, the pattern &quot;<code>abc{def}</code>&quot;
+ * indicates the characters &quot;<code>def</code>&quot; must be
+ * preceded by &quot;<code>abc</code>&quot; for a successful match.
+ * If there is a successful match, &quot;<code>def</code>&quot; will
+ * be replaced, but not &quot;<code>abc</code>&quot;. The final '<code>}</code>'
+ * is optional, so &quot;<code>abc{def</code>&quot; is equivalent to
+ * &quot;<code>abc{def}</code>&quot;. Another example is &quot;<code>{123}456</code>&quot;
+ * (or &quot;<code>123}456</code>&quot;) in which the literal
+ * pattern &quot;<code>123</code>&quot; must be followed by &quot;<code>456</code>&quot;.
+ *
+ * <p>The output string of a forward or reverse rule consists of
+ * characters to replace the literal pattern characters. If the
+ * output string contains the character '<code>|</code>', this is
+ * taken to indicate the location of the <em>cursor</em> after
+ * replacement. The cursor is the point in the text at which the
+ * next replacement, if any, will be applied. The cursor is usually
+ * placed within the replacement text; however, it can actually be
+ * placed into the precending or following context by using the
+ * special character '@'. Examples:
+ *
+ * <pre>
+ * a {foo} z &gt; | @ bar; # foo -&gt; bar, move cursor before a
+ * {foo} xyz &gt; bar @@|; #&nbsp;foo -&gt; bar, cursor between y and z
+ * </pre>
+ *
+ * <p><b>UnicodeSet</b>
+ *
+ * <p><code>UnicodeSet</code> patterns may appear anywhere that
+ * makes sense. They may appear in variable definitions.
+ * Contrariwise, <code>UnicodeSet</code> patterns may themselves
+ * contain variable references, such as &quot;<code>$a=[a-z];$not_a=[^$a]</code>&quot;,
+ * or &quot;<code>$range=a-z;$ll=[$range]</code>&quot;.
+ *
+ * <p><code>UnicodeSet</code> patterns may also be embedded directly
+ * into rule strings. Thus, the following two rules are equivalent:
+ *
+ * <pre>
+ * $vowel=[aeiou]; $vowel&gt;'*'; # One way to do this
+ * [aeiou]&gt;'*'; # Another way
+ * </pre>
+ *
+ * <p>See {@link UnicodeSet} for more documentation and examples.
+ *
+ * <p><b>Segments</b>
+ *
+ * <p>Segments of the input string can be matched and copied to the
+ * output string. This makes certain sets of rules simpler and more
+ * general, and makes reordering possible. For example:
+ *
+ * <pre>
+ * ([a-z]) &gt; $1 $1; # double lowercase letters
+ * ([:Lu:]) ([:Ll:]) &gt; $2 $1; # reverse order of Lu-Ll pairs
+ * </pre>
+ *
+ * <p>The segment of the input string to be copied is delimited by
+ * &quot;<code>(</code>&quot; and &quot;<code>)</code>&quot;. Up to
+ * nine segments may be defined. Segments may not overlap. In the
+ * output string, &quot;<code>$1</code>&quot; through &quot;<code>$9</code>&quot;
+ * represent the input string segments, in left-to-right order of
+ * definition.
+ *
+ * <p><b>Anchors</b>
+ *
+ * <p>Patterns can be anchored to the beginning or the end of the text. This is done with the
+ * special characters '<code>^</code>' and '<code>$</code>'. For example:
+ *
+ * <pre>
+ * ^ a&nbsp;&nbsp; &gt; 'BEG_A'; &nbsp;&nbsp;# match 'a' at start of text
+ * &nbsp; a&nbsp;&nbsp; &gt; 'A'; # match other instances of 'a'
+ * &nbsp; z $ &gt; 'END_Z'; &nbsp;&nbsp;# match 'z' at end of text
+ * &nbsp; z&nbsp;&nbsp; &gt; 'Z';&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # match other instances of 'z'
+ * </pre>
+ *
+ * <p>It is also possible to match the beginning or the end of the text using a <code>UnicodeSet</code>.
+ * This is done by including a virtual anchor character '<code>$</code>' at the end of the
+ * set pattern. Although this is usually the match chafacter for the end anchor, the set will
+ * match either the beginning or the end of the text, depending on its placement. For
+ * example:
+ *
+ * <pre>
+ * $x = [a-z$]; &nbsp;&nbsp;# match 'a' through 'z' OR anchor
+ * $x 1&nbsp;&nbsp;&nbsp; &gt; 2;&nbsp;&nbsp; # match '1' after a-z or at the start
+ * &nbsp;&nbsp; 3 $x &gt; 4; &nbsp;&nbsp;# match '3' before a-z or at the end
+ * </pre>
+ *
+ * <p><b>Example</b>
+ *
+ * <p>The following example rules illustrate many of the features of
+ * the rule language.
+ *
+ * <table border="0" cellpadding="4">
+ * <tr>
+ * <td style="vertical-align: top;">Rule 1.</td>
+ * <td style="vertical-align: top; write-space: nowrap;"><code>abc{def}&gt;x|y</code></td>
+ * </tr>
+ * <tr>
+ * <td style="vertical-align: top;">Rule 2.</td>
+ * <td style="vertical-align: top; write-space: nowrap;"><code>xyz&gt;r</code></td>
+ * </tr>
+ * <tr>
+ * <td style="vertical-align: top;">Rule 3.</td>
+ * <td style="vertical-align: top; write-space: nowrap;"><code>yz&gt;q</code></td>
+ * </tr>
+ * </table>
+ *
+ * <p>Applying these rules to the string &quot;<code>adefabcdefz</code>&quot;
+ * yields the following results:
+ *
+ * <table border="0" cellpadding="4">
+ * <tr>
+ * <td style="vertical-align: top; write-space: nowrap;"><code>|adefabcdefz</code></td>
+ * <td style="vertical-align: top;">Initial state, no rules match. Advance
+ * cursor.</td>
+ * </tr>
+ * <tr>
+ * <td style="vertical-align: top; write-space: nowrap;"><code>a|defabcdefz</code></td>
+ * <td style="vertical-align: top;">Still no match. Rule 1 does not match
+ * because the preceding context is not present.</td>
+ * </tr>
+ * <tr>
+ * <td style="vertical-align: top; write-space: nowrap;"><code>ad|efabcdefz</code></td>
+ * <td style="vertical-align: top;">Still no match. Keep advancing until
+ * there is a match...</td>
+ * </tr>
+ * <tr>
+ * <td style="vertical-align: top; write-space: nowrap;"><code>ade|fabcdefz</code></td>
+ * <td style="vertical-align: top;">...</td>
+ * </tr>
+ * <tr>
+ * <td style="vertical-align: top; write-space: nowrap;"><code>adef|abcdefz</code></td>
+ * <td style="vertical-align: top;">...</td>
+ * </tr>
+ * <tr>
+ * <td style="vertical-align: top; write-space: nowrap;"><code>adefa|bcdefz</code></td>
+ * <td style="vertical-align: top;">...</td>
+ * </tr>
+ * <tr>
+ * <td style="vertical-align: top; write-space: nowrap;"><code>adefab|cdefz</code></td>
+ * <td style="vertical-align: top;">...</td>
+ * </tr>
+ * <tr>
+ * <td style="vertical-align: top; write-space: nowrap;"><code>adefabc|defz</code></td>
+ * <td style="vertical-align: top;">Rule 1 matches; replace &quot;<code>def</code>&quot;
+ * with &quot;<code>xy</code>&quot; and back up the cursor
+ * to before the '<code>y</code>'.</td>
+ * </tr>
+ * <tr>
+ * <td style="vertical-align: top; write-space: nowrap;"><code>adefabcx|yz</code></td>
+ * <td style="vertical-align: top;">Although &quot;<code>xyz</code>&quot; is
+ * present, rule 2 does not match because the cursor is
+ * before the '<code>y</code>', not before the '<code>x</code>'.
+ * Rule 3 does match. Replace &quot;<code>yz</code>&quot;
+ * with &quot;<code>q</code>&quot;.</td>
+ * </tr>
+ * <tr>
+ * <td style="vertical-align: top; write-space: nowrap;"><code>adefabcxq|</code></td>
+ * <td style="vertical-align: top;">The cursor is at the end;
+ * transliteration is complete.</td>
+ * </tr>
+ * </table>
+ *
+ * <p>The order of rules is significant. If multiple rules may match
+ * at some point, the first matching rule is applied.
+ *
+ * <p>Forward and reverse rules may have an empty output string.
+ * Otherwise, an empty left or right hand side of any statement is a
+ * syntax error.
+ *
+ * <p>Single quotes are used to quote any character other than a
+ * digit or letter. To specify a single quote itself, inside or
+ * outside of quotes, use two single quotes in a row. For example,
+ * the rule &quot;<code>'&gt;'&gt;o''clock</code>&quot; changes the
+ * string &quot;<code>&gt;</code>&quot; to the string &quot;<code>o'clock</code>&quot;.
+ *
+ * <p><b>Notes</b>
+ *
+ * <p>While a Transliterator is being built from rules, it checks that
+ * the rules are added in proper order. For example, if the rule
+ * &quot;a&gt;x&quot; is followed by the rule &quot;ab&gt;y&quot;,
+ * then the second rule will throw an exception. The reason is that
+ * the second rule can never be triggered, since the first rule
+ * always matches anything it matches. In other words, the first
+ * rule <em>masks</em> the second rule.
+ *
* @author Alan Liu
* @stable ICU 2.0
*/
@@ -499,9 +744,9 @@ public:
* for details.
* @param text the buffer holding transliterated and
* untransliterated text
- * @param index an array of three integers. See {@link #transliterate(Replaceable&, UTransPosition&, const UnicodeString*, UErrorCode&) const }.
+ * @param index an array of three integers.
* @param status Output param to filled in with a success or an error.
- * @see #transliterate(Replaceable, int[], String)
+ * @see #transliterate(Replaceable&, UTransPosition&, const UnicodeString&, UErrorCode &) const
* @stable ICU 2.0
*/
virtual void transliterate(Replaceable& text, UTransPosition& index,
@@ -632,7 +877,7 @@ public:
/**
* Transliterate a substring of text, as specified by index, taking filters
* into account. This method is for subclasses that need to delegate to
- * another transliterator, such as CompoundTransliterator.
+ * another transliterator.
* @param text the text to be transliterated
* @param index the position indices
* @param incremental if TRUE, then assume more characters may be inserted
@@ -846,17 +1091,19 @@ public:
/**
* Returns a <code>Transliterator</code> object constructed from
- * the given rule string. This will be a RuleBasedTransliterator,
+ * the given rule string. This will be a rule-based Transliterator,
* if the rule string contains only rules, or a
- * CompoundTransliterator, if it contains ID blocks, or a
- * NullTransliterator, if it contains ID blocks which parse as
+ * compound Transliterator, if it contains ID blocks, or a
+ * null Transliterator, if it contains ID blocks which parse as
* empty for the given direction.
+ *
* @param ID the id for the transliterator.
* @param rules rules, separated by ';'
* @param dir either FORWARD or REVERSE.
- * @param parseError Struct to recieve information on position
+ * @param parseError Struct to receive information on position
* of error if an error is encountered
* @param status Output param set to success/failure code.
+ * @return a newly created Transliterator
* @stable ICU 2.0
*/
static Transliterator* U_EXPORT2 createFromRules(const UnicodeString& ID,
diff --git a/Build/source/libs/icu/icu-src/source/i18n/unicode/tzfmt.h b/Build/source/libs/icu/icu-src/source/i18n/unicode/tzfmt.h
index 724ff4d85bb..d2aa768b8c8 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/unicode/tzfmt.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/unicode/tzfmt.h
@@ -237,10 +237,10 @@ typedef enum UTimeZoneFormatParseOption {
*/
UTZFMT_PARSE_OPTION_ALL_STYLES = 0x01,
/**
- * When parsing a time zone display name in UTZFMT_STYLE_SPECIFIC_SHORT,
+ * When parsing a time zone display name in \link UTZFMT_STYLE_SPECIFIC_SHORT \endlink,
* look for the IANA tz database compatible zone abbreviations in addition
- * to the localized names coming from the {@link TimeZoneNames} currently
- * used by the {@link TimeZoneFormat}.
+ * to the localized names coming from the icu::TimeZoneNames currently
+ * used by the icu::TimeZoneFormat.
* @stable ICU 54
*/
UTZFMT_PARSE_OPTION_TZ_DATABASE_ABBREVIATIONS = 0x02
diff --git a/Build/source/libs/icu/icu-src/source/i18n/unicode/ucal.h b/Build/source/libs/icu/icu-src/source/i18n/unicode/ucal.h
index c765e7859f5..fb7c387c2d7 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/unicode/ucal.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/unicode/ucal.h
@@ -139,6 +139,19 @@
* For example, subtracting 5 days from the date <code>September 12, 1996</code>
* results in <code>September 7, 1996</code>.
*
+ * <p>
+ * The Japanese calendar uses a combination of era name and year number.
+ * When an emperor of Japan abdicates and a new emperor ascends the throne,
+ * a new era is declared and year number is reset to 1. Even if the date of
+ * abdication is scheduled ahead of time, the new era name might not be
+ * announced until just before the date. In such case, ICU4C may include
+ * a start date of future era without actual era name, but not enabled
+ * by default. ICU4C users who want to test the behavior of the future era
+ * can enable the tentative era by:
+ * <ul>
+ * <li>Environment variable <code>ICU_ENABLE_TENTATIVE_ERA=true</code>.</li>
+ * </ul>
+ *
* @stable ICU 2.0
*/
diff --git a/Build/source/libs/icu/icu-src/source/i18n/unicode/ucol.h b/Build/source/libs/icu/icu-src/source/i18n/unicode/ucol.h
index ecabd9e09b9..dbac48e3e49 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/unicode/ucol.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/unicode/ucol.h
@@ -1149,7 +1149,7 @@ ucol_getUCAVersion(const UCollator* coll, UVersionInfo info);
* The recommended way to achieve "merged" sorting is by
* concatenating strings with U+FFFE between them.
* The concatenation has the same sort order as the merged sort keys,
- * but merge(getSortKey(str1), getSortKey(str2)) may differ from getSortKey(str1 + '\uFFFE' + str2).
+ * but merge(getSortKey(str1), getSortKey(str2)) may differ from getSortKey(str1 + '\\uFFFE' + str2).
* Using strings with U+FFFE may yield shorter sort keys.
*
* For details about Sort Key Features see
@@ -1294,6 +1294,7 @@ U_STABLE uint32_t U_EXPORT2 ucol_getVariableTop(const UCollator *coll, UErrorCod
* the top of one of the supported reordering groups,
* and it must not be beyond the last of those groups.
* See ucol_setMaxVariable().
+ * @param coll collator to be set
* @param varTop primary weight, as returned by ucol_setVariableTop or ucol_getVariableTop
* @param status error code
* @see ucol_getVariableTop
diff --git a/Build/source/libs/icu/icu-src/source/i18n/unicode/ugender.h b/Build/source/libs/icu/icu-src/source/i18n/unicode/ugender.h
index d015a2300cf..903f3dd5dee 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/unicode/ugender.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/unicode/ugender.h
@@ -49,11 +49,11 @@ enum UGender {
*/
typedef enum UGender UGender;
+struct UGenderInfo;
/**
* Opaque UGenderInfo object for use in C programs.
* @stable ICU 50
*/
-struct UGenderInfo;
typedef struct UGenderInfo UGenderInfo;
/**
@@ -77,7 +77,7 @@ ugender_getInstance(const char *locale, UErrorCode *status);
* @stable ICU 50
*/
U_STABLE UGender U_EXPORT2
-ugender_getListGender(const UGenderInfo* genderinfo, const UGender *genders, int32_t size, UErrorCode *status);
+ugender_getListGender(const UGenderInfo* genderInfo, const UGender *genders, int32_t size, UErrorCode *status);
#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/common/unicode/ulistformatter.h b/Build/source/libs/icu/icu-src/source/i18n/unicode/ulistformatter.h
index 9fe24f7c7b5..d794a894047 100644
--- a/Build/source/libs/icu/icu-src/source/common/unicode/ulistformatter.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/unicode/ulistformatter.h
@@ -33,6 +33,26 @@
struct UListFormatter;
typedef struct UListFormatter UListFormatter; /**< C typedef for struct UListFormatter. @stable ICU 55 */
+#ifndef U_HIDE_DRAFT_API
+/**
+ * FieldPosition and UFieldPosition selectors for format fields
+ * defined by ListFormatter.
+ * @draft ICU 63
+ */
+typedef enum UListFormatterField {
+ /**
+ * The literal text in the result which came from the resources.
+ * @draft ICU 63
+ */
+ ULISTFMT_LITERAL_FIELD,
+ /**
+ * The element text in the result which came from the input strings.
+ * @draft ICU 63
+ */
+ ULISTFMT_ELEMENT_FIELD
+} UListFormatterField;
+#endif // U_HIDE_DRAFT_API
+
/**
* Open a new UListFormatter object using the rules for a given locale.
* @param locale
diff --git a/Build/source/libs/icu/icu-src/source/i18n/unicode/unum.h b/Build/source/libs/icu/icu-src/source/i18n/unicode/unum.h
index ff251ff2699..1808c8d36b9 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/unicode/unum.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/unicode/unum.h
@@ -29,12 +29,13 @@
/**
* \file
- * \brief C API: NumberFormat
+ * \brief C API: Compatibility APIs for number formatting.
*
* <h2> Number Format C API </h2>
*
- * <p><strong>IMPORTANT:</strong> New users with C++ capabilities are
- * strongly encouraged to see if numberformatter.h fits their use case.
+ * <p><strong>IMPORTANT:</strong> New users with are strongly encouraged to
+ * see if unumberformatter.h fits their use case. Although not deprecated,
+ * this header is provided for backwards compatibility only.
*
* Number Format C API Provides functions for
* formatting and parsing a number. Also provides methods for
@@ -399,6 +400,10 @@ typedef enum UNumberFormatFields {
* number format is opened using the given pattern, which must conform
* to the syntax described in DecimalFormat or RuleBasedNumberFormat,
* respectively.
+ *
+ * <p><strong>NOTE::</strong> New users with are strongly encouraged to
+ * use unumf_openWithSkeletonAndLocale instead of unum_open.
+ *
* @param pattern A pattern specifying the format to use.
* This parameter is ignored unless the style is
* UNUM_PATTERN_DECIMAL or UNUM_PATTERN_RULEBASED.
@@ -1013,6 +1018,8 @@ typedef enum UNumberFormatAttribute {
* <p>Example: setting the scale to 3, 123 formats as "123,000"
* <p>Example: setting the scale to -4, 123 formats as "0.0123"
*
+ * This setting is analogous to getMultiplierScale() and setMultiplierScale() in decimfmt.h.
+ *
* @stable ICU 51 */
UNUM_SCALE = 21,
#ifndef U_HIDE_INTERNAL_API
@@ -1052,7 +1059,7 @@ typedef enum UNumberFormatAttribute {
* Default: 0 (unset)
* @stable ICU 50
*/
- UNUM_PARSE_NO_EXPONENT,
+ UNUM_PARSE_NO_EXPONENT = 0x1001,
/**
* if this attribute is set to 1, specifies that, if the pattern contains a
@@ -1067,7 +1074,21 @@ typedef enum UNumberFormatAttribute {
/* The following cannot be #ifndef U_HIDE_INTERNAL_API, needed in .h file variable declararions */
/** Limit of boolean attributes.
* @internal */
- UNUM_LIMIT_BOOLEAN_ATTRIBUTE = 0x1003
+ UNUM_LIMIT_BOOLEAN_ATTRIBUTE = 0x1003,
+
+ /**
+ * Whether parsing is sensitive to case (lowercase/uppercase).
+ * TODO: Add to the test suite.
+ * @internal This API is a technical preview. It may change in an upcoming release.
+ */
+ UNUM_PARSE_CASE_SENSITIVE = 0x1004,
+
+ /**
+ * Formatting: whether to show the plus sign on non-negative numbers.
+ * TODO: Add to the test suite.
+ * @internal This API is a technical preview. It may change in an upcoming release.
+ */
+ UNUM_SIGN_ALWAYS_SHOWN = 0x1005,
} UNumberFormatAttribute;
/**
diff --git a/Build/source/libs/icu/icu-src/source/i18n/unicode/unumberformatter.h b/Build/source/libs/icu/icu-src/source/i18n/unicode/unumberformatter.h
new file mode 100644
index 00000000000..5926e0e3a9b
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/i18n/unicode/unumberformatter.h
@@ -0,0 +1,729 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+#ifndef __UNUMBERFORMATTER_H__
+#define __UNUMBERFORMATTER_H__
+
+#include "unicode/ufieldpositer.h"
+#include "unicode/umisc.h"
+
+
+/**
+ * \file
+ * \brief C-compatible API for localized number formatting; not recommended for C++.
+ *
+ * This is the C-compatible version of the NumberFormatter API introduced in ICU 60. C++ users should
+ * include unicode/numberformatter.h and use the proper C++ APIs.
+ *
+ * The C API accepts a number skeleton string for specifying the settings for formatting, which covers a
+ * very large subset of all possible number formatting features. For more information on number skeleton
+ * strings, see unicode/numberformatter.h.
+ *
+ * When using UNumberFormatter, which is treated as immutable, the results are exported to a mutable
+ * UFormattedNumber object, which you subsequently use for populating your string buffer or iterating over
+ * the fields.
+ *
+ * Example code:
+ * <pre>
+ * // Setup:
+ * UErrorCode ec = U_ZERO_ERROR;
+ * UNumberFormatter* uformatter = unumf_openForSkeletonAndLocale(u"precision-integer", -1, "en", &ec);
+ * UFormattedNumber* uresult = unumf_openResult(&ec);
+ * if (U_FAILURE(ec)) { return; }
+ *
+ * // Format a double:
+ * unumf_formatDouble(uformatter, 5142.3, uresult, &ec);
+ * if (U_FAILURE(ec)) { return; }
+ *
+ * // Export the string to a malloc'd buffer:
+ * int32_t len = unumf_resultToString(uresult, NULL, 0, &ec);
+ * // at this point, ec == U_BUFFER_OVERFLOW_ERROR
+ * ec = U_ZERO_ERROR;
+ * UChar* buffer = (UChar*) malloc((len+1)*sizeof(UChar));
+ * unumf_resultToString(uresult, buffer, len+1, &ec);
+ * if (U_FAILURE(ec)) { return; }
+ * // buffer should equal "5,142"
+ *
+ * // Cleanup:
+ * unumf_close(uformatter);
+ * unumf_closeResult(uresult);
+ * free(buffer);
+ * </pre>
+ *
+ * If you are a C++ user linking against the C libraries, you can use the LocalPointer versions of these
+ * APIs. The following example uses LocalPointer with the decimal number and field position APIs:
+ *
+ * <pre>
+ * // Setup:
+ * LocalUNumberFormatterPointer uformatter(unumf_openForSkeletonAndLocale(u"percent", -1, "en", &ec));
+ * LocalUFormattedNumberPointer uresult(unumf_openResult(&ec));
+ * if (U_FAILURE(ec)) { return; }
+ *
+ * // Format a decimal number:
+ * unumf_formatDecimal(uformatter.getAlias(), "9.87E-3", -1, uresult.getAlias(), &ec);
+ * if (U_FAILURE(ec)) { return; }
+ *
+ * // Get the location of the percent sign:
+ * UFieldPosition ufpos = {UNUM_PERCENT_FIELD, 0, 0};
+ * unumf_resultNextFieldPosition(uresult.getAlias(), &ufpos, &ec);
+ * // ufpos should contain beginIndex=7 and endIndex=8 since the string is "0.00987%"
+ *
+ * // No need to do any cleanup since we are using LocalPointer.
+ * </pre>
+ */
+
+
+#ifndef U_HIDE_DRAFT_API
+/**
+ * An enum declaring how to render units, including currencies. Example outputs when formatting 123 USD and 123
+ * meters in <em>en-CA</em>:
+ *
+ * <p>
+ * <ul>
+ * <li>NARROW*: "$123.00" and "123 m"
+ * <li>SHORT: "US$ 123.00" and "123 m"
+ * <li>FULL_NAME: "123.00 US dollars" and "123 meters"
+ * <li>ISO_CODE: "USD 123.00" and undefined behavior
+ * <li>HIDDEN: "123.00" and "123"
+ * </ul>
+ *
+ * <p>
+ * This enum is similar to {@link UMeasureFormatWidth}.
+ *
+ * @draft ICU 60
+ */
+typedef enum UNumberUnitWidth {
+ /**
+ * Print an abbreviated version of the unit name. Similar to SHORT, but always use the shortest available
+ * abbreviation or symbol. This option can be used when the context hints at the identity of the unit. For more
+ * information on the difference between NARROW and SHORT, see SHORT.
+ *
+ * <p>
+ * In CLDR, this option corresponds to the "Narrow" format for measure units and the "¤¤¤¤¤" placeholder for
+ * currencies.
+ *
+ * @draft ICU 60
+ */
+ UNUM_UNIT_WIDTH_NARROW,
+
+ /**
+ * Print an abbreviated version of the unit name. Similar to NARROW, but use a slightly wider abbreviation or
+ * symbol when there may be ambiguity. This is the default behavior.
+ *
+ * <p>
+ * For example, in <em>es-US</em>, the SHORT form for Fahrenheit is "{0} °F", but the NARROW form is "{0}°",
+ * since Fahrenheit is the customary unit for temperature in that locale.
+ *
+ * <p>
+ * In CLDR, this option corresponds to the "Short" format for measure units and the "¤" placeholder for
+ * currencies.
+ *
+ * @draft ICU 60
+ */
+ UNUM_UNIT_WIDTH_SHORT,
+
+ /**
+ * Print the full name of the unit, without any abbreviations.
+ *
+ * <p>
+ * In CLDR, this option corresponds to the default format for measure units and the "¤¤¤" placeholder for
+ * currencies.
+ *
+ * @draft ICU 60
+ */
+ UNUM_UNIT_WIDTH_FULL_NAME,
+
+ /**
+ * Use the three-digit ISO XXX code in place of the symbol for displaying currencies. The behavior of this
+ * option is currently undefined for use with measure units.
+ *
+ * <p>
+ * In CLDR, this option corresponds to the "¤¤" placeholder for currencies.
+ *
+ * @draft ICU 60
+ */
+ UNUM_UNIT_WIDTH_ISO_CODE,
+
+ /**
+ * Format the number according to the specified unit, but do not display the unit. For currencies, apply
+ * monetary symbols and formats as with SHORT, but omit the currency symbol. For measure units, the behavior is
+ * equivalent to not specifying the unit at all.
+ *
+ * @draft ICU 60
+ */
+ UNUM_UNIT_WIDTH_HIDDEN,
+
+ /**
+ * One more than the highest UNumberUnitWidth value.
+ *
+ * @internal ICU 60: The numeric value may change over time; see ICU ticket #12420.
+ */
+ UNUM_UNIT_WIDTH_COUNT
+} UNumberUnitWidth;
+#endif /* U_HIDE_DRAFT_API */
+
+#ifndef U_HIDE_DRAFT_API
+/**
+ * An enum declaring the strategy for when and how to display grouping separators (i.e., the
+ * separator, often a comma or period, after every 2-3 powers of ten). The choices are several
+ * pre-built strategies for different use cases that employ locale data whenever possible. Example
+ * outputs for 1234 and 1234567 in <em>en-IN</em>:
+ *
+ * <ul>
+ * <li>OFF: 1234 and 12345
+ * <li>MIN2: 1234 and 12,34,567
+ * <li>AUTO: 1,234 and 12,34,567
+ * <li>ON_ALIGNED: 1,234 and 12,34,567
+ * <li>THOUSANDS: 1,234 and 1,234,567
+ * </ul>
+ *
+ * <p>
+ * The default is AUTO, which displays grouping separators unless the locale data says that grouping
+ * is not customary. To force grouping for all numbers greater than 1000 consistently across locales,
+ * use ON_ALIGNED. On the other hand, to display grouping less frequently than the default, use MIN2
+ * or OFF. See the docs of each option for details.
+ *
+ * <p>
+ * Note: This enum specifies the strategy for grouping sizes. To set which character to use as the
+ * grouping separator, use the "symbols" setter.
+ *
+ * @draft ICU 63
+ */
+typedef enum UNumberGroupingStrategy {
+ /**
+ * Do not display grouping separators in any locale.
+ *
+ * @draft ICU 61
+ */
+ UNUM_GROUPING_OFF,
+
+ /**
+ * Display grouping using locale defaults, except do not show grouping on values smaller than
+ * 10000 (such that there is a <em>minimum of two digits</em> before the first separator).
+ *
+ * <p>
+ * Note that locales may restrict grouping separators to be displayed only on 1 million or
+ * greater (for example, ee and hu) or disable grouping altogether (for example, bg currency).
+ *
+ * <p>
+ * Locale data is used to determine whether to separate larger numbers into groups of 2
+ * (customary in South Asia) or groups of 3 (customary in Europe and the Americas).
+ *
+ * @draft ICU 61
+ */
+ UNUM_GROUPING_MIN2,
+
+ /**
+ * Display grouping using the default strategy for all locales. This is the default behavior.
+ *
+ * <p>
+ * Note that locales may restrict grouping separators to be displayed only on 1 million or
+ * greater (for example, ee and hu) or disable grouping altogether (for example, bg currency).
+ *
+ * <p>
+ * Locale data is used to determine whether to separate larger numbers into groups of 2
+ * (customary in South Asia) or groups of 3 (customary in Europe and the Americas).
+ *
+ * @draft ICU 61
+ */
+ UNUM_GROUPING_AUTO,
+
+ /**
+ * Always display the grouping separator on values of at least 1000.
+ *
+ * <p>
+ * This option ignores the locale data that restricts or disables grouping, described in MIN2 and
+ * AUTO. This option may be useful to normalize the alignment of numbers, such as in a
+ * spreadsheet.
+ *
+ * <p>
+ * Locale data is used to determine whether to separate larger numbers into groups of 2
+ * (customary in South Asia) or groups of 3 (customary in Europe and the Americas).
+ *
+ * @draft ICU 61
+ */
+ UNUM_GROUPING_ON_ALIGNED,
+
+ /**
+ * Use the Western defaults: groups of 3 and enabled for all numbers 1000 or greater. Do not use
+ * locale data for determining the grouping strategy.
+ *
+ * @draft ICU 61
+ */
+ UNUM_GROUPING_THOUSANDS
+
+#ifndef U_HIDE_INTERNAL_API
+ ,
+ /**
+ * One more than the highest UNumberGroupingStrategy value.
+ *
+ * @internal ICU 62: The numeric value may change over time; see ICU ticket #12420.
+ */
+ UNUM_GROUPING_COUNT
+#endif /* U_HIDE_INTERNAL_API */
+
+} UNumberGroupingStrategy;
+
+#ifndef U_HIDE_DEPRECATED_API
+/**
+ * Old name for compatibility: will be removed in ICU 64.
+ * @deprecated ICU 63
+ */
+typedef UNumberGroupingStrategy UGroupingStrategy;
+#endif /* U_HIDE_DEPRECATED_API */
+
+#endif /* U_HIDE_DRAFT_API */
+
+#ifndef U_HIDE_DRAFT_API
+/**
+ * An enum declaring how to denote positive and negative numbers. Example outputs when formatting
+ * 123, 0, and -123 in <em>en-US</em>:
+ *
+ * <ul>
+ * <li>AUTO: "123", "0", and "-123"
+ * <li>ALWAYS: "+123", "+0", and "-123"
+ * <li>NEVER: "123", "0", and "123"
+ * <li>ACCOUNTING: "$123", "$0", and "($123)"
+ * <li>ACCOUNTING_ALWAYS: "+$123", "+$0", and "($123)"
+ * <li>EXCEPT_ZERO: "+123", "0", and "-123"
+ * <li>ACCOUNTING_EXCEPT_ZERO: "+$123", "$0", and "($123)"
+ * </ul>
+ *
+ * <p>
+ * The exact format, including the position and the code point of the sign, differ by locale.
+ *
+ * @draft ICU 60
+ */
+typedef enum UNumberSignDisplay {
+ /**
+ * Show the minus sign on negative numbers, and do not show the sign on positive numbers. This is the default
+ * behavior.
+ *
+ * @draft ICU 60
+ */
+ UNUM_SIGN_AUTO,
+
+ /**
+ * Show the minus sign on negative numbers and the plus sign on positive numbers, including zero.
+ * To hide the sign on zero, see {@link UNUM_SIGN_EXCEPT_ZERO}.
+ *
+ * @draft ICU 60
+ */
+ UNUM_SIGN_ALWAYS,
+
+ /**
+ * Do not show the sign on positive or negative numbers.
+ *
+ * @draft ICU 60
+ */
+ UNUM_SIGN_NEVER,
+
+ /**
+ * Use the locale-dependent accounting format on negative numbers, and do not show the sign on positive numbers.
+ *
+ * <p>
+ * The accounting format is defined in CLDR and varies by locale; in many Western locales, the format is a pair
+ * of parentheses around the number.
+ *
+ * <p>
+ * Note: Since CLDR defines the accounting format in the monetary context only, this option falls back to the
+ * AUTO sign display strategy when formatting without a currency unit. This limitation may be lifted in the
+ * future.
+ *
+ * @draft ICU 60
+ */
+ UNUM_SIGN_ACCOUNTING,
+
+ /**
+ * Use the locale-dependent accounting format on negative numbers, and show the plus sign on
+ * positive numbers, including zero. For more information on the accounting format, see the
+ * ACCOUNTING sign display strategy. To hide the sign on zero, see
+ * {@link UNUM_SIGN_ACCOUNTING_EXCEPT_ZERO}.
+ *
+ * @draft ICU 60
+ */
+ UNUM_SIGN_ACCOUNTING_ALWAYS,
+
+ /**
+ * Show the minus sign on negative numbers and the plus sign on positive numbers. Do not show a
+ * sign on zero.
+ *
+ * @draft ICU 61
+ */
+ UNUM_SIGN_EXCEPT_ZERO,
+
+ /**
+ * Use the locale-dependent accounting format on negative numbers, and show the plus sign on
+ * positive numbers. Do not show a sign on zero. For more information on the accounting format,
+ * see the ACCOUNTING sign display strategy.
+ *
+ * @draft ICU 61
+ */
+ UNUM_SIGN_ACCOUNTING_EXCEPT_ZERO,
+
+ /**
+ * One more than the highest UNumberSignDisplay value.
+ *
+ * @internal ICU 60: The numeric value may change over time; see ICU ticket #12420.
+ */
+ UNUM_SIGN_COUNT
+} UNumberSignDisplay;
+#endif /* U_HIDE_DRAFT_API */
+
+#ifndef U_HIDE_DRAFT_API
+/**
+ * An enum declaring how to render the decimal separator.
+ *
+ * <p>
+ * <ul>
+ * <li>UNUM_DECIMAL_SEPARATOR_AUTO: "1", "1.1"
+ * <li>UNUM_DECIMAL_SEPARATOR_ALWAYS: "1.", "1.1"
+ * </ul>
+ */
+typedef enum UNumberDecimalSeparatorDisplay {
+ /**
+ * Show the decimal separator when there are one or more digits to display after the separator, and do not show
+ * it otherwise. This is the default behavior.
+ *
+ * @draft ICU 60
+ */
+ UNUM_DECIMAL_SEPARATOR_AUTO,
+
+ /**
+ * Always show the decimal separator, even if there are no digits to display after the separator.
+ *
+ * @draft ICU 60
+ */
+ UNUM_DECIMAL_SEPARATOR_ALWAYS,
+
+ /**
+ * One more than the highest UNumberDecimalSeparatorDisplay value.
+ *
+ * @internal ICU 60: The numeric value may change over time; see ICU ticket #12420.
+ */
+ UNUM_DECIMAL_SEPARATOR_COUNT
+} UNumberDecimalSeparatorDisplay;
+#endif /* U_HIDE_DRAFT_API */
+
+#ifndef U_HIDE_DRAFT_API
+
+struct UNumberFormatter;
+/**
+ * C-compatible version of icu::number::LocalizedNumberFormatter.
+ *
+ * NOTE: This is a C-compatible API; C++ users should build against numberformatter.h instead.
+ *
+ * @draft ICU 62
+ */
+typedef struct UNumberFormatter UNumberFormatter;
+
+struct UFormattedNumber;
+/**
+ * C-compatible version of icu::number::FormattedNumber.
+ *
+ * NOTE: This is a C-compatible API; C++ users should build against numberformatter.h instead.
+ *
+ * @draft ICU 62
+ */
+typedef struct UFormattedNumber UFormattedNumber;
+
+
+/**
+ * Creates a new UNumberFormatter for the given skeleton string and locale. This is currently the only
+ * method for creating a new UNumberFormatter.
+ *
+ * Objects of type UNumberFormatter returned by this method are threadsafe.
+ *
+ * For more details on skeleton strings, see the documentation in numberformatter.h. For more details on
+ * the usage of this API, see the documentation at the top of unumberformatter.h.
+ *
+ * NOTE: This is a C-compatible API; C++ users should build against numberformatter.h instead.
+ *
+ * @param skeleton The skeleton string, like u"percent precision-integer"
+ * @param skeletonLen The number of UChars in the skeleton string, or -1 it it is NUL-terminated.
+ * @param locale The NUL-terminated locale ID.
+ * @param ec Set if an error occurs.
+ * @draft ICU 62
+ */
+U_DRAFT UNumberFormatter* U_EXPORT2
+unumf_openForSkeletonAndLocale(const UChar* skeleton, int32_t skeletonLen, const char* locale,
+ UErrorCode* ec);
+
+
+/**
+ * Creates a new UFormattedNumber for holding the result of a number formatting operation.
+ *
+ * Objects of type UFormattedNumber are not guaranteed to be threadsafe.
+ *
+ * NOTE: This is a C-compatible API; C++ users should build against numberformatter.h instead.
+ *
+ * @param ec Set if an error occurs.
+ * @draft ICU 62
+ */
+U_DRAFT UFormattedNumber* U_EXPORT2
+unumf_openResult(UErrorCode* ec);
+
+
+/**
+ * Uses a UNumberFormatter to format an integer to a UFormattedNumber. A string, field position, and other
+ * information can be retrieved from the UFormattedNumber.
+ *
+ * The UNumberFormatter can be shared between threads. Each thread should have its own local
+ * UFormattedNumber, however, for storing the result of the formatting operation.
+ *
+ * NOTE: This is a C-compatible API; C++ users should build against numberformatter.h instead.
+ *
+ * @param uformatter A formatter object created by unumf_openForSkeletonAndLocale or similar.
+ * @param value The number to be formatted.
+ * @param uresult The object that will be mutated to store the result; see unumf_openResult.
+ * @param ec Set if an error occurs.
+ * @draft ICU 62
+ */
+U_DRAFT void U_EXPORT2
+unumf_formatInt(const UNumberFormatter* uformatter, int64_t value, UFormattedNumber* uresult,
+ UErrorCode* ec);
+
+
+/**
+ * Uses a UNumberFormatter to format a double to a UFormattedNumber. A string, field position, and other
+ * information can be retrieved from the UFormattedNumber.
+ *
+ * The UNumberFormatter can be shared between threads. Each thread should have its own local
+ * UFormattedNumber, however, for storing the result of the formatting operation.
+ *
+ * NOTE: This is a C-compatible API; C++ users should build against numberformatter.h instead.
+ *
+ * @param uformatter A formatter object created by unumf_openForSkeletonAndLocale or similar.
+ * @param value The number to be formatted.
+ * @param uresult The object that will be mutated to store the result; see unumf_openResult.
+ * @param ec Set if an error occurs.
+ * @draft ICU 62
+ */
+U_DRAFT void U_EXPORT2
+unumf_formatDouble(const UNumberFormatter* uformatter, double value, UFormattedNumber* uresult,
+ UErrorCode* ec);
+
+
+/**
+ * Uses a UNumberFormatter to format a decimal number to a UFormattedNumber. A string, field position, and
+ * other information can be retrieved from the UFormattedNumber.
+ *
+ * The UNumberFormatter can be shared between threads. Each thread should have its own local
+ * UFormattedNumber, however, for storing the result of the formatting operation.
+ *
+ * The syntax of the unformatted number is a "numeric string" as defined in the Decimal Arithmetic
+ * Specification, available at http://speleotrove.com/decimal
+ *
+ * NOTE: This is a C-compatible API; C++ users should build against numberformatter.h instead.
+ *
+ * @param uformatter A formatter object created by unumf_openForSkeletonAndLocale or similar.
+ * @param value The numeric string to be formatted.
+ * @param valueLen The length of the numeric string, or -1 if it is NUL-terminated.
+ * @param uresult The object that will be mutated to store the result; see unumf_openResult.
+ * @param ec Set if an error occurs.
+ * @draft ICU 62
+ */
+U_DRAFT void U_EXPORT2
+unumf_formatDecimal(const UNumberFormatter* uformatter, const char* value, int32_t valueLen,
+ UFormattedNumber* uresult, UErrorCode* ec);
+
+
+/**
+ * Extracts the result number string out of a UFormattedNumber to a UChar buffer if possible.
+ * If bufferCapacity is greater than the required length, a terminating NUL is written.
+ * If bufferCapacity is less than the required length, an error code is set.
+ *
+ * NOTE: This is a C-compatible API; C++ users should build against numberformatter.h instead.
+ *
+ * @param uresult The object containing the formatted number.
+ * @param buffer Where to save the string output.
+ * @param bufferCapacity The number of UChars available in the buffer.
+ * @param ec Set if an error occurs.
+ * @return The required length.
+ * @draft ICU 62
+ */
+U_DRAFT int32_t U_EXPORT2
+unumf_resultToString(const UFormattedNumber* uresult, UChar* buffer, int32_t bufferCapacity,
+ UErrorCode* ec);
+
+
+/**
+ * Determines the start and end indices of the next occurrence of the given <em>field</em> in the
+ * output string. This allows you to determine the locations of, for example, the integer part,
+ * fraction part, or symbols.
+ *
+ * If a field occurs just once, calling this method will find that occurrence and return it. If a
+ * field occurs multiple times, this method may be called repeatedly with the following pattern:
+ *
+ * <pre>
+ * UFieldPosition ufpos = {UNUM_GROUPING_SEPARATOR_FIELD, 0, 0};
+ * while (unumf_resultNextFieldPosition(uresult, ufpos, &ec)) {
+ * // do something with ufpos.
+ * }
+ * </pre>
+ *
+ * This method is useful if you know which field to query. If you want all available field position
+ * information, use unumf_resultGetAllFieldPositions().
+ *
+ * NOTE: All fields of the UFieldPosition must be initialized before calling this method.
+ *
+ * @param uresult The object containing the formatted number.
+ * @param ufpos
+ * Input+output variable. On input, the "field" property determines which field to look up,
+ * and the "endIndex" property determines where to begin the search. On output, the
+ * "beginIndex" field is set to the beginning of the first occurrence of the field after the
+ * input "endIndex", and "endIndex" is set to the end of that occurrence of the field
+ * (exclusive index). If a field position is not found, the FieldPosition is not changed and
+ * the method returns FALSE.
+ * @param ec Set if an error occurs.
+ * @draft ICU 62
+ */
+U_DRAFT UBool U_EXPORT2
+unumf_resultNextFieldPosition(const UFormattedNumber* uresult, UFieldPosition* ufpos, UErrorCode* ec);
+
+
+/**
+ * Populates the given iterator with all fields in the formatted output string. This allows you to
+ * determine the locations of the integer part, fraction part, and sign.
+ *
+ * If you need information on only one field, use unumf_resultNextFieldPosition().
+ *
+ * @param uresult The object containing the formatted number.
+ * @param ufpositer
+ * A pointer to a UFieldPositionIterator created by {@link #ufieldpositer_open}. Iteration
+ * information already present in the UFieldPositionIterator is deleted, and the iterator is reset
+ * to apply to the fields in the formatted string created by this function call. The field values
+ * and indexes returned by {@link #ufieldpositer_next} represent fields denoted by
+ * the UNumberFormatFields enum. Fields are not returned in a guaranteed order. Fields cannot
+ * overlap, but they may nest. For example, 1234 could format as "1,234" which might consist of a
+ * grouping separator field for ',' and an integer field encompassing the entire string.
+ * @param ec Set if an error occurs.
+ * @draft ICU 62
+ */
+U_DRAFT void U_EXPORT2
+unumf_resultGetAllFieldPositions(const UFormattedNumber* uresult, UFieldPositionIterator* ufpositer,
+ UErrorCode* ec);
+
+
+/**
+ * Releases the UNumberFormatter created by unumf_openForSkeletonAndLocale().
+ *
+ * NOTE: This is a C-compatible API; C++ users should build against numberformatter.h instead.
+ *
+ * @param uformatter An object created by unumf_openForSkeletonAndLocale().
+ * @draft ICU 62
+ */
+U_DRAFT void U_EXPORT2
+unumf_close(UNumberFormatter* uformatter);
+
+
+/**
+ * Releases the UFormattedNumber created by unumf_openResult().
+ *
+ * NOTE: This is a C-compatible API; C++ users should build against numberformatter.h instead.
+ *
+ * @param uresult An object created by unumf_openResult().
+ * @draft ICU 62
+ */
+U_DRAFT void U_EXPORT2
+unumf_closeResult(UFormattedNumber* uresult);
+
+
+#if U_SHOW_CPLUSPLUS_API
+U_NAMESPACE_BEGIN
+
+/**
+ * \class LocalUNumberFormatterPointer
+ * "Smart pointer" class; closes a UNumberFormatter via unumf_close().
+ * For most methods see the LocalPointerBase base class.
+ *
+ * Usage:
+ * <pre>
+ * LocalUNumberFormatterPointer uformatter(unumf_openForSkeletonAndLocale(...));
+ * // no need to explicitly call unumf_close()
+ * </pre>
+ *
+ * @see LocalPointerBase
+ * @see LocalPointer
+ * @draft ICU 62
+ */
+U_DEFINE_LOCAL_OPEN_POINTER(LocalUNumberFormatterPointer, UNumberFormatter, unumf_close);
+
+/**
+ * \class LocalUNumberFormatterPointer
+ * "Smart pointer" class; closes a UFormattedNumber via unumf_closeResult().
+ * For most methods see the LocalPointerBase base class.
+ *
+ * Usage:
+ * <pre>
+ * LocalUFormattedNumberPointer uformatter(unumf_openResult(...));
+ * // no need to explicitly call unumf_closeResult()
+ * </pre>
+ *
+ * @see LocalPointerBase
+ * @see LocalPointer
+ * @draft ICU 62
+ */
+U_DEFINE_LOCAL_OPEN_POINTER(LocalUFormattedNumberPointer, UFormattedNumber, unumf_closeResult);
+
+U_NAMESPACE_END
+#endif // U_SHOW_CPLUSPLUS_API
+
+#endif /* U_HIDE_DRAFT_API */
+
+#endif //__UNUMBERFORMATTER_H__
+#endif /* #if !UCONFIG_NO_FORMATTING */
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Build/source/libs/icu/icu-src/source/i18n/unicode/usearch.h b/Build/source/libs/icu/icu-src/source/i18n/unicode/usearch.h
index ebfcdf7ec6a..3a7c311ce95 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/unicode/usearch.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/unicode/usearch.h
@@ -257,10 +257,9 @@ typedef enum {
* match an e with the same diacritic or a plain e in the searched text.
*
* This option is similar to "asymmetric search" as described in
- * <a href="http://www.unicode.org/reports/tr10/#Asymmetric_Search">
- * UTS #10 Unicode Collation Algorithm</a, but also allows unmarked
- * characters in the searched text to match marked or unmarked versions of
- * that character in the pattern.
+ * [UTS #10 Unicode Collation Algorithm](http://www.unicode.org/reports/tr10/#Asymmetric_Search),
+ * but also allows unmarked characters in the searched text to match
+ * marked or unmarked versions of that character in the pattern.
*
* @stable ICU 4.4
*/
diff --git a/Build/source/libs/icu/icu-src/source/i18n/unicode/uspoof.h b/Build/source/libs/icu/icu-src/source/i18n/unicode/uspoof.h
index 9fcfcd3ede8..d15ba4b2423 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/unicode/uspoof.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/unicode/uspoof.h
@@ -94,7 +94,6 @@
* // ...
* \endcode
*
- * <p>
* UTS 39 defines two strings to be <em>confusable</em> if they map to the same <em>skeleton string</em>. A skeleton can
* be thought of as a "hash code". {@link uspoof_getSkeleton} computes the skeleton for a particular string, so
* the following snippet is equivalent to the example above:
@@ -128,7 +127,6 @@
* free(skel2);
* \endcode
*
- * <p>
* If you need to check if a string is confusable with any string in a dictionary of many strings, rather than calling
* {@link uspoof_areConfusable} many times in a loop, {@link uspoof_getSkeleton} can be used instead, as shown below:
*
@@ -172,14 +170,12 @@
* uspoof_close(sc);
* \endcode
*
- * <p>
* <b>Note:</b> Since the Unicode confusables mapping table is frequently updated, confusable skeletons are <em>not</em>
* guaranteed to be the same between ICU releases. We therefore recommend that you always compute confusable skeletons
* at runtime and do not rely on creating a permanent, or difficult to update, database of skeletons.
*
* <h2>Spoof Detection</h2>
*
- * <p>
* The following snippet shows a minimal example of using <code>USpoofChecker</code> to perform spoof detection on a
* string:
*
@@ -204,16 +200,13 @@
* uset_close(allowed);
* \endcode
*
- * <p>
* As in the case for confusability checking, it is good practice to create one <code>USpoofChecker</code> instance at
* startup, and call the cheaper {@link uspoof_check} online. We specify the set of
* allowed characters to be those with type RECOMMENDED or INCLUSION, according to the recommendation in UTS 39.
*
- * <p>
* In addition to {@link uspoof_check}, the function {@link uspoof_checkUTF8} is exposed for UTF8-encoded char* strings,
* and {@link uspoof_checkUnicodeString} is exposed for C++ programmers.
*
- * <p>
* If the {@link USPOOF_AUX_INFO} check is enabled, a limited amount of information on why a string failed the checks
* is available in the returned bitmask. For complete information, use the {@link uspoof_check2} class of functions
* with a {@link USpoofCheckResult} parameter:
@@ -274,7 +267,6 @@
* // Explicit cleanup not necessary.
* \endcode
*
- * <p>
* The return value is a bitmask of the checks that failed. In this case, there was one check that failed:
* {@link USPOOF_RESTRICTION_LEVEL}, corresponding to the fifth bit (16). The possible checks are:
*
@@ -307,7 +299,6 @@
* uspoof_close(sc);
* \endcode
*
- * <p>
* Here is an example in C++ showing how to compute the restriction level of a string:
*
* \code{.cpp}
@@ -334,11 +325,9 @@
* printf("Restriction level: %#010x (status: %s)\n", restrictionLevel, u_errorName(status));
* \endcode
*
- * <p>
* The code '0x50000000' corresponds to the restriction level USPOOF_MINIMALLY_RESTRICTIVE. Since
* USPOOF_MINIMALLY_RESTRICTIVE is weaker than USPOOF_MODERATELY_RESTRICTIVE, the string fails the check.
*
- * <p>
* <b>Note:</b> The Restriction Level is the most powerful of the checks. The full logic is documented in
* <a href="http://unicode.org/reports/tr39/#Restriction_Level_Detection">UTS 39</a>, but the basic idea is that strings
* are restricted to contain characters from only a single script, <em>except</em> that most scripts are allowed to have
@@ -352,15 +341,12 @@
*
* <h2>Additional Information</h2>
*
- * <p>
* A <code>USpoofChecker</code> instance may be used repeatedly to perform checks on any number of identifiers.
*
- * <p>
* <b>Thread Safety:</b> The test functions for checking a single identifier, or for testing whether
* two identifiers are possible confusable, are thread safe. They may called concurrently, from multiple threads,
* using the same USpoofChecker instance.
*
- * <p>
* More generally, the standard ICU thread safety rules apply: functions that take a const USpoofChecker parameter are
* thread safe. Those that take a non-const USpoofChecker are not thread safe..
*
@@ -477,7 +463,7 @@ typedef enum USpoofChecks {
*/
USPOOF_CHAR_LIMIT = 64,
- /**
+ /**
* Check that an identifier does not mix numbers from different numbering systems.
* For more information, see UTS 39 section 5.3.
*
@@ -485,6 +471,29 @@ typedef enum USpoofChecks {
*/
USPOOF_MIXED_NUMBERS = 128,
+#ifndef U_HIDE_DRAFT_API
+ /**
+ * Check that an identifier does not have a combining character following a character in which that
+ * combining character would be hidden; for example 'i' followed by a U+0307 combining dot.
+ *
+ * More specifically, the following characters are forbidden from preceding a U+0307:
+ * <ul>
+ * <li>Those with the Soft_Dotted Unicode property (which includes 'i' and 'j')</li>
+ * <li>Latin lowercase letter 'l'</li>
+ * <li>Dotless 'i' and 'j' ('ı' and 'ȷ', U+0131 and U+0237)</li>
+ * <li>Any character whose confusable prototype ends with such a character
+ * (Soft_Dotted, 'l', 'ı', or 'ȷ')</li>
+ * </ul>
+ * In addition, combining characters are allowed between the above characters and U+0307 except those
+ * with combining class 0 or combining class "Above" (230, same class as U+0307).
+ *
+ * This list and the number of combing characters considered by this check may grow over time.
+ *
+ * @draft ICU 62
+ */
+ USPOOF_HIDDEN_OVERLAY = 256,
+#endif /* U_HIDE_DRAFT_API */
+
/**
* Enable all spoof checks.
*
@@ -1196,14 +1205,21 @@ U_NAMESPACE_BEGIN
/**
* \class LocalUSpoofCheckResultPointer
- * "Smart pointer" class, closes a USpoofCheckResult via {@link uspoof_closeCheckResult}.
+ * "Smart pointer" class, closes a USpoofCheckResult via `uspoof_closeCheckResult()`.
* For most methods see the LocalPointerBase base class.
*
* @see LocalPointerBase
* @see LocalPointer
* @stable ICU 58
*/
+
+/**
+ * \cond
+ * Note: Doxygen is giving a bogus warning on this U_DEFINE_LOCAL_OPEN_POINTER.
+ * For now, suppress with a Doxygen cond
+ */
U_DEFINE_LOCAL_OPEN_POINTER(LocalUSpoofCheckResultPointer, USpoofCheckResult, uspoof_closeCheckResult);
+/** \endcond */
U_NAMESPACE_END
diff --git a/Build/source/libs/icu/icu-src/source/i18n/upluralrules.cpp b/Build/source/libs/icu/icu-src/source/i18n/upluralrules.cpp
index 24e74e3ee22..bba6dfe3101 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/upluralrules.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/upluralrules.cpp
@@ -17,9 +17,44 @@
#include "unicode/unistr.h"
#include "unicode/unum.h"
#include "unicode/numfmt.h"
+#include "number_decimalquantity.h"
U_NAMESPACE_USE
+namespace {
+
+/**
+ * Given a number and a format, returns the keyword of the first applicable
+ * rule for the PluralRules object.
+ * @param rules The plural rules.
+ * @param obj The numeric object for which the rule should be determined.
+ * @param fmt The NumberFormat specifying how the number will be formatted
+ * (this can affect the plural form, e.g. "1 dollar" vs "1.0 dollars").
+ * @param status Input/output parameter. If at entry this indicates a
+ * failure status, the method returns immediately; otherwise
+ * this is set to indicate the outcome of the call.
+ * @return The keyword of the selected rule. Undefined in the case of an error.
+ */
+UnicodeString select(const PluralRules &rules, const Formattable& obj, const NumberFormat& fmt, UErrorCode& status) {
+ if (U_SUCCESS(status)) {
+ const DecimalFormat *decFmt = dynamic_cast<const DecimalFormat *>(&fmt);
+ if (decFmt != NULL) {
+ number::impl::DecimalQuantity dq;
+ decFmt->formatToDecimalQuantity(obj, dq, status);
+ if (U_SUCCESS(status)) {
+ return rules.select(dq);
+ }
+ } else {
+ double number = obj.getDouble(status);
+ if (U_SUCCESS(status)) {
+ return rules.select(number);
+ }
+ }
+ }
+ return UnicodeString();
+}
+
+} // namespace
U_CAPI UPluralRules* U_EXPORT2
uplrules_open(const char *locale, UErrorCode *status)
@@ -73,7 +108,7 @@ uplrules_selectWithFormat(const UPluralRules *uplrules,
return 0;
}
Formattable obj(number);
- UnicodeString result = plrules->select(obj, *nf, *status);
+ UnicodeString result = select(*plrules, obj, *nf, *status);
return result.extract(keyword, capacity, *status);
}
diff --git a/Build/source/libs/icu/icu-src/source/i18n/uregex.cpp b/Build/source/libs/icu/icu-src/source/i18n/uregex.cpp
index 12f36894d71..9a189a32871 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/uregex.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/uregex.cpp
@@ -1654,8 +1654,8 @@ int32_t RegexCImpl::appendTail(RegularExpression *regexp,
} else if (UTEXT_USES_U16(m->fInputText)) {
srcIdx = (int32_t)nativeIdx;
} else {
- UErrorCode status = U_ZERO_ERROR;
- srcIdx = utext_extract(m->fInputText, 0, nativeIdx, NULL, 0, &status);
+ UErrorCode newStatus = U_ZERO_ERROR;
+ srcIdx = utext_extract(m->fInputText, 0, nativeIdx, NULL, 0, &newStatus);
}
for (;;) {
diff --git a/Build/source/libs/icu/icu-src/source/i18n/usearch.cpp b/Build/source/libs/icu/icu-src/source/i18n/usearch.cpp
index 645db01ecb1..4f758bac515 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/usearch.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/usearch.cpp
@@ -498,7 +498,7 @@ inline void setShiftTable(int16_t shift[], int16_t backshift[],
for (count = 0; count < cesize; count ++) {
// number of ces from right of array to the count
int temp = defaultforward - count - 1;
- shift[hashFromCE32(cetable[count])] = temp > 1 ? temp : 1;
+ shift[hashFromCE32(cetable[count])] = temp > 1 ? static_cast<int16_t>(temp) : 1;
}
shift[hashFromCE32(cetable[cesize])] = 1;
// for ignorables we just shift by one. see test examples.
diff --git a/Build/source/libs/icu/icu-src/source/i18n/uspoof.cpp b/Build/source/libs/icu/icu-src/source/i18n/uspoof.cpp
index 515bdce2a05..8e3d69ede2b 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/uspoof.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/uspoof.cpp
@@ -55,75 +55,96 @@ uspoof_cleanup(void) {
}
static void U_CALLCONV initializeStatics(UErrorCode &status) {
- static const char *inclusionPat =
- "['\\-.\\:\\u00B7\\u0375\\u058A\\u05F3\\u05F4\\u06FD\\u06FE\\u0F0B\\u200C\\u200D\\u2010\\u"
- "2019\\u2027\\u30A0\\u30FB]";
- gInclusionSet = new UnicodeSet(UnicodeString(inclusionPat, -1, US_INV), status);
+ static const char16_t *inclusionPat =
+ u"['\\-.\\:\\u00B7\\u0375\\u058A\\u05F3\\u05F4\\u06FD\\u06FE\\u0F0B\\u200C"
+ u"\\u200D\\u2010\\u2019\\u2027\\u30A0\\u30FB]";
+ gInclusionSet = new UnicodeSet(UnicodeString(inclusionPat), status);
+ if (gInclusionSet == NULL) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
gInclusionSet->freeze();
- // Note: data from http://unicode.org/Public/security/9.0.0/IdentifierStatus.txt
+ // Note: data from IdentifierStatus.txt & IdentifierType.txt
// There is tooling to generate this constant in the unicodetools project:
// org.unicode.text.tools.RecommendedSetGenerator
// It will print the Java and C++ code to the console for easy copy-paste into this file.
// Note: concatenated string constants do not work with UNICODE_STRING_SIMPLE on all platforms.
- static const char *recommendedPat =
- "[0-9A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u0131\\u0134-\\u013E\\u0141-\\u014"
- "8\\u014A-\\u017E\\u018F\\u01A0\\u01A1\\u01AF\\u01B0\\u01CD-\\u01DC\\u01DE-\\u01E3\\u01E"
- "6-\\u01F0\\u01F4\\u01F5\\u01F8-\\u021B\\u021E\\u021F\\u0226-\\u0233\\u0259\\u02BB\\u02B"
- "C\\u02EC\\u0300-\\u0304\\u0306-\\u030C\\u030F-\\u0311\\u0313\\u0314\\u031B\\u0323-\\u03"
- "28\\u032D\\u032E\\u0330\\u0331\\u0335\\u0338\\u0339\\u0342\\u0345\\u037B-\\u037D\\u0386"
- "\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03CE\\u03FC-\\u045F\\u048A-\\u0529\\u05"
- "2E\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0586\\u05B4\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0"
- "620-\\u063F\\u0641-\\u0655\\u0660-\\u0669\\u0670-\\u0672\\u0674\\u0679-\\u068D\\u068F-"
- "\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE-\\u06FC\\u06FF\\u0750-\\u07B1\\u08A0-\\u08AC\\u08B2"
- "\\u08B6-\\u08BD\\u0901-\\u094D\\u094F\\u0950\\u0956\\u0957\\u0960-\\u0963\\u0966-\\u096"
- "F\\u0971-\\u0977\\u0979-\\u097F\\u0981-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u0"
- "9A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u"
- "09D7\\u09E0-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-"
- "\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A35\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\"
- "u0A4B-\\u0A4D\\u0A5C\\u0A66-\\u0A74\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A9"
- "3-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0"
- "ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\"
- "u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B43\\u0B47"
- "\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5F-\\u0B61\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83"
- "\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3"
- "\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0B"
- "D0\\u0BD7\\u0BE6-\\u0BEF\\u0C01-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u"
- "0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56"
- "\\u0C60\\u0C61\\u0C66-\\u0C6F\\u0C80\\u0C82\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92"
- "-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0"
- "CD5\\u0CD6\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D02\\u0D03\\u0D05-\\u0D0C\\u0"
- "D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D43\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D54-\\u0D57"
- "\\u0D60\\u0D61\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D8E\\u0D91-\\u0D9"
- "6\\u0D9A-\\u0DA5\\u0DA7-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0"
- "DD4\\u0DD6\\u0DD8-\\u0DDE\\u0DF2\\u0E01-\\u0E32\\u0E34-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\"
- "u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u"
- "0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB2\\u0EB4-\\u0EB9\\u0EBB-\\u0EBD\\"
- "u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDE\\u0EDF\\u0F00\\u0F20-\\u0F29"
- "\\u0F35\\u0F37\\u0F3E-\\u0F42\\u0F44-\\u0F47\\u0F49-\\u0F4C\\u0F4E-\\u0F51\\u0F53-\\u0F"
- "56\\u0F58-\\u0F5B\\u0F5D-\\u0F68\\u0F6A-\\u0F6C\\u0F71\\u0F72\\u0F74\\u0F7A-\\u0F80\\u0"
- "F82-\\u0F84\\u0F86-\\u0F92\\u0F94-\\u0F97\\u0F99-\\u0F9C\\u0F9E-\\u0FA1\\u0FA3-\\u0FA6"
- "\\u0FA8-\\u0FAB\\u0FAD-\\u0FB8\\u0FBA-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10"
- "C7\\u10CD\\u10D0-\\u10F0\\u10F7-\\u10FA\\u10FD-\\u10FF\\u1200-\\u1248\\u124A-\\u124D\\u"
- "1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2"
- "-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1"
- "315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u1780-\\u17A2\\u17A5-\\u17A7\\u17A9-"
- "\\u17B3\\u17B6-\\u17CA\\u17D2\\u17D7\\u17DC\\u17E0-\\u17E9\\u1C80-\\u1C88\\u1E00-\\u1E9"
- "9\\u1E9E\\u1EA0-\\u1EF9\\u1F00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1"
- "F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F70\\u1F72\\u1F74\\u1F76\\u1F78\\u1F7A\\u1F"
- "7C\\u1F80-\\u1FB4\\u1FB6-\\u1FBA\\u1FBC\\u1FC2-\\u1FC4\\u1FC6-\\u1FC8\\u1FCA\\u1FCC\\u1"
- "FD0-\\u1FD2\\u1FD6-\\u1FDA\\u1FE0-\\u1FE2\\u1FE4-\\u1FEA\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-"
- "\\u1FF8\\u1FFA\\u1FFC\\u2D27\\u2D2D\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0"
- "-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3"
- "005-\\u3007\\u3041-\\u3096\\u3099\\u309A\\u309D\\u309E\\u30A1-\\u30FA\\u30FC-\\u30FE\\u"
- "3105-\\u312D\\u31A0-\\u31BA\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA660\\uA661\\uA674-\\uA67B"
- "\\uA67F\\uA69F\\uA717-\\uA71F\\uA788\\uA78D\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7AE"
- "\\uA7FA\\uA9E7-\\uA9FE\\uAA60-\\uAA76\\uAA7A-\\uAA7F\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB"
- "11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAC00-\\uD7A3\\uFA0E\\uFA0F\\uFA11\\uFA13\\uF"
- "A14\\uFA1F\\uFA21\\uFA23\\uFA24\\uFA27-\\uFA29\\U00020000-\\U0002A6D6\\U0002A700-\\U0"
- "002B734\\U0002B740-\\U0002B81D\\U0002B820-\\U0002CEA1]";
-
- gRecommendedSet = new UnicodeSet(UnicodeString(recommendedPat, -1, US_INV), status);
+ static const char16_t *recommendedPat =
+ u"[0-9A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u0131\\u0134-\\u013E"
+ u"\\u0141-\\u0148\\u014A-\\u017E\\u018F\\u01A0\\u01A1\\u01AF\\u01B0\\u01CD-"
+ u"\\u01DC\\u01DE-\\u01E3\\u01E6-\\u01F0\\u01F4\\u01F5\\u01F8-\\u021B\\u021E"
+ u"\\u021F\\u0226-\\u0233\\u0259\\u02BB\\u02BC\\u02EC\\u0300-\\u0304\\u0306-"
+ u"\\u030C\\u030F-\\u0311\\u0313\\u0314\\u031B\\u0323-\\u0328\\u032D\\u032E"
+ u"\\u0330\\u0331\\u0335\\u0338\\u0339\\u0342\\u0345\\u037B-\\u037D\\u0386"
+ u"\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03CE\\u03FC-\\u045F\\u048A-"
+ u"\\u0529\\u052E\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0586\\u0588\\u05B4"
+ u"\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u063F\\u0641-\\u0655\\u0660-\\u0669"
+ u"\\u0670-\\u0672\\u0674\\u0679-\\u068D\\u068F-\\u06D3\\u06D5\\u06E5\\u06E6"
+ u"\\u06EE-\\u06FC\\u06FF\\u0750-\\u07B1\\u08A0-\\u08AC\\u08B2\\u08B6-\\u08BD"
+ u"\\u0901-\\u094D\\u094F\\u0950\\u0956\\u0957\\u0960-\\u0963\\u0966-\\u096F"
+ u"\\u0971-\\u0977\\u0979-\\u097F\\u0981-\\u0983\\u0985-\\u098C\\u098F\\u0990"
+ u"\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7"
+ u"\\u09C8\\u09CB-\\u09CE\\u09D7\\u09E0-\\u09E3\\u09E6-\\u09F1\\u09FC\\u09FE"
+ u"\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30"
+ u"\\u0A32\\u0A35\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-"
+ u"\\u0A4D\\u0A5C\\u0A66-\\u0A74\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91"
+ u"\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5"
+ u"\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0AFA-"
+ u"\\u0AFF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-"
+ u"\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B43\\u0B47\\u0B48\\u0B4B-"
+ u"\\u0B4D\\u0B56\\u0B57\\u0B5F-\\u0B61\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83"
+ u"\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E"
+ u"\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-"
+ u"\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C01-\\u0C0C\\u0C0E-"
+ u"\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D-\\u0C44\\u0C46-"
+ u"\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C60\\u0C61\\u0C66-\\u0C6F\\u0C80"
+ u"\\u0C82\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3"
+ u"\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6"
+ u"\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D00\\u0D02\\u0D03\\u0D05-"
+ u"\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D43\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D54-"
+ u"\\u0D57\\u0D60\\u0D61\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-"
+ u"\\u0D8E\\u0D91-\\u0D96\\u0D9A-\\u0DA5\\u0DA7-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD"
+ u"\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDE\\u0DF2\\u0E01-"
+ u"\\u0E32\\u0E34-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84"
+ u"\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3"
+ u"\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB2\\u0EB4-\\u0EB9\\u0EBB-\\u0EBD"
+ u"\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDE\\u0EDF\\u0F00"
+ u"\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F3E-\\u0F42\\u0F44-\\u0F47\\u0F49-\\u0F4C"
+ u"\\u0F4E-\\u0F51\\u0F53-\\u0F56\\u0F58-\\u0F5B\\u0F5D-\\u0F68\\u0F6A-\\u0F6C"
+ u"\\u0F71\\u0F72\\u0F74\\u0F7A-\\u0F80\\u0F82-\\u0F84\\u0F86-\\u0F92\\u0F94-"
+ u"\\u0F97\\u0F99-\\u0F9C\\u0F9E-\\u0FA1\\u0FA3-\\u0FA6\\u0FA8-\\u0FAB\\u0FAD-"
+ u"\\u0FB8\\u0FBA-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10C7\\u10CD"
+ u"\\u10D0-\\u10F0\\u10F7-\\u10FA\\u10FD-\\u10FF\\u1200-\\u1248\\u124A-\\u124D"
+ u"\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-"
+ u"\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6"
+ u"\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F"
+ u"\\u1780-\\u17A2\\u17A5-\\u17A7\\u17A9-\\u17B3\\u17B6-\\u17CA\\u17D2\\u17D7"
+ u"\\u17DC\\u17E0-\\u17E9\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1E00-"
+ u"\\u1E99\\u1E9E\\u1EA0-\\u1EF9\\u1F00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45"
+ u"\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F70\\u1F72"
+ u"\\u1F74\\u1F76\\u1F78\\u1F7A\\u1F7C\\u1F80-\\u1FB4\\u1FB6-\\u1FBA\\u1FBC"
+ u"\\u1FC2-\\u1FC4\\u1FC6-\\u1FC8\\u1FCA\\u1FCC\\u1FD0-\\u1FD2\\u1FD6-\\u1FDA"
+ u"\\u1FE0-\\u1FE2\\u1FE4-\\u1FEA\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FF8\\u1FFA"
+ u"\\u1FFC\\u2D27\\u2D2D\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-"
+ u"\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-"
+ u"\\u2DDE\\u3005-\\u3007\\u3041-\\u3096\\u3099\\u309A\\u309D\\u309E\\u30A1-"
+ u"\\u30FA\\u30FC-\\u30FE\\u3105-\\u312F\\u31A0-\\u31BA\\u3400-\\u4DB5\\u4E00-"
+ u"\\u9FEF\\uA660\\uA661\\uA674-\\uA67B\\uA67F\\uA69F\\uA717-\\uA71F\\uA788"
+ u"\\uA78D\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7AE\\uA7AF\\uA7B8\\uA7B9"
+ u"\\uA7FA\\uA9E7-\\uA9FE\\uAA60-\\uAA76\\uAA7A-\\uAA7F\\uAB01-\\uAB06\\uAB09-"
+ u"\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAC00-\\uD7A3\\uFA0E"
+ u"\\uFA0F\\uFA11\\uFA13\\uFA14\\uFA1F\\uFA21\\uFA23\\uFA24\\uFA27-\\uFA29"
+ u"\\U0001133B\\U0001B002-\\U0001B11E\\U00020000-\\U0002A6D6\\U0002A700-"
+ u"\\U0002B734\\U0002B740-\\U0002B81D\\U0002B820-\\U0002CEA1\\U0002CEB0-"
+ u"\\U0002EBE0]";
+
+ gRecommendedSet = new UnicodeSet(UnicodeString(recommendedPat), status);
+ if (gRecommendedSet == NULL) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ delete gInclusionSet;
+ return;
+ }
gRecommendedSet->freeze();
gNfdNormalizer = Normalizer2::getNFDInstance(status);
ucln_i18n_registerCleanup(UCLN_I18N_SPOOF, uspoof_cleanup);
@@ -140,12 +161,13 @@ uspoof_open(UErrorCode *status) {
return NULL;
}
SpoofImpl *si = new SpoofImpl(*status);
- if (U_SUCCESS(*status) && si == NULL) {
+ if (si == NULL) {
*status = U_MEMORY_ALLOCATION_ERROR;
+ return NULL;
}
if (U_FAILURE(*status)) {
delete si;
- si = NULL;
+ return NULL;
}
return si->asUSpoofChecker();
}
@@ -157,21 +179,41 @@ uspoof_openFromSerialized(const void *data, int32_t length, int32_t *pActualLeng
if (U_FAILURE(*status)) {
return NULL;
}
+
+ if (data == NULL) {
+ *status = U_ILLEGAL_ARGUMENT_ERROR;
+ return NULL;
+ }
+
umtx_initOnce(gSpoofInitStaticsOnce, &initializeStatics, *status);
+ if (U_FAILURE(*status))
+ {
+ return NULL;
+ }
+
SpoofData *sd = new SpoofData(data, length, *status);
- SpoofImpl *si = new SpoofImpl(sd, *status);
+ if (sd == NULL) {
+ *status = U_MEMORY_ALLOCATION_ERROR;
+ return NULL;
+ }
+
if (U_FAILURE(*status)) {
delete sd;
- delete si;
return NULL;
}
- if (sd == NULL || si == NULL) {
+
+ SpoofImpl *si = new SpoofImpl(sd, *status);
+ if (si == NULL) {
*status = U_MEMORY_ALLOCATION_ERROR;
- delete sd;
- delete si;
+ delete sd; // explicit delete as the destructor for si won't be called.
return NULL;
}
-
+
+ if (U_FAILURE(*status)) {
+ delete si; // no delete for sd, as the si destructor will delete it.
+ return NULL;
+ }
+
if (pActualLength != NULL) {
*pActualLength = sd->size();
}
@@ -186,6 +228,10 @@ uspoof_clone(const USpoofChecker *sc, UErrorCode *status) {
return NULL;
}
SpoofImpl *result = new SpoofImpl(*src, *status); // copy constructor
+ if (result == NULL) {
+ *status = U_MEMORY_ALLOCATION_ERROR;
+ return NULL;
+ }
if (U_FAILURE(*status)) {
delete result;
result = NULL;
@@ -524,6 +570,13 @@ int32_t checkImpl(const SpoofImpl* This, const UnicodeString& id, CheckResult* c
checkResult->fNumerics = numerics; // UnicodeSet::operator=
}
+ if (0 != (This->fChecks & USPOOF_HIDDEN_OVERLAY)) {
+ int32_t index = This->findHiddenOverlay(id, *status);
+ if (index != -1) {
+ result |= USPOOF_HIDDEN_OVERLAY;
+ }
+ }
+
if (0 != (This->fChecks & USPOOF_CHAR_LIMIT)) {
int32_t i;
diff --git a/Build/source/libs/icu/icu-src/source/i18n/uspoof_build.cpp b/Build/source/libs/icu/icu-src/source/i18n/uspoof_build.cpp
index 75c52e0b765..192fb9a6885 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/uspoof_build.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/uspoof_build.cpp
@@ -71,8 +71,29 @@ uspoof_openFromSource(const char *confusables, int32_t confusablesLen,
// Set up a shell of a spoof detector, with empty data.
SpoofData *newSpoofData = new SpoofData(*status);
+
+ if (newSpoofData == NULL) {
+ *status = U_MEMORY_ALLOCATION_ERROR;
+ return NULL;
+ }
+
+ if (U_FAILURE(*status)) {
+ delete newSpoofData;
+ return NULL;
+ }
SpoofImpl *This = new SpoofImpl(newSpoofData, *status);
+ if (This == NULL) {
+ *status = U_MEMORY_ALLOCATION_ERROR;
+ delete newSpoofData; // explicit delete as the destructor for SpoofImpl won't be called.
+ return NULL;
+ }
+
+ if (U_FAILURE(*status)) {
+ delete This; // no delete for newSpoofData, as the SpoofImpl destructor will delete it.
+ return NULL;
+ }
+
// Compile the binary data from the source (text) format.
ConfusabledataBuilder::buildConfusableData(This, confusables, confusablesLen, errorType, pe, *status);
diff --git a/Build/source/libs/icu/icu-src/source/i18n/uspoof_conf.cpp b/Build/source/libs/icu/icu-src/source/i18n/uspoof_conf.cpp
index c4002337273..1a7cdad60ac 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/uspoof_conf.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/uspoof_conf.cpp
@@ -76,6 +76,10 @@ SPUString::~SPUString() {
SPUStringPool::SPUStringPool(UErrorCode &status) : fVec(NULL), fHash(NULL) {
fVec = new UVector(status);
+ if (fVec == NULL) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
fHash = uhash_open(uhash_hashUnicodeString, // key hash function
uhash_compareUnicodeString, // Key Comparator
NULL, // Value Comparator
@@ -136,6 +140,10 @@ SPUString *SPUStringPool::addString(UnicodeString *src, UErrorCode &status) {
delete src;
} else {
hashedString = new SPUString(src);
+ if (hashedString == NULL) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return NULL;
+ }
uhash_put(fHash, src, hashedString, &status);
fVec->addElement(hashedString, status);
}
@@ -160,11 +168,32 @@ ConfusabledataBuilder::ConfusabledataBuilder(SpoofImpl *spImpl, UErrorCode &stat
if (U_FAILURE(status)) {
return;
}
- fTable = uhash_open(uhash_hashLong, uhash_compareLong, NULL, &status);
- fKeySet = new UnicodeSet();
- fKeyVec = new UVector(status);
- fValueVec = new UVector(status);
+
+ fTable = uhash_open(uhash_hashLong, uhash_compareLong, NULL, &status);
+
+ fKeySet = new UnicodeSet();
+ if (fKeySet == NULL) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+
+ fKeyVec = new UVector(status);
+ if (fKeyVec == NULL) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+
+ fValueVec = new UVector(status);
+ if (fValueVec == NULL) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+
stringPool = new SPUStringPool(status);
+ if (stringPool == NULL) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
}
diff --git a/Build/source/libs/icu/icu-src/source/i18n/uspoof_impl.cpp b/Build/source/libs/icu/icu-src/source/i18n/uspoof_impl.cpp
index 745d5e897d5..2c1f088b12d 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/uspoof_impl.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/uspoof_impl.cpp
@@ -377,6 +377,43 @@ URestrictionLevel SpoofImpl::getRestrictionLevel(const UnicodeString& input, UEr
return USPOOF_MINIMALLY_RESTRICTIVE;
}
+int32_t SpoofImpl::findHiddenOverlay(const UnicodeString& input, UErrorCode&) const {
+ bool sawLeadCharacter = false;
+ for (int32_t i=0; i<input.length();) {
+ UChar32 cp = input.char32At(i);
+ if (sawLeadCharacter && cp == 0x0307) {
+ return i;
+ }
+ uint8_t combiningClass = u_getCombiningClass(cp);
+ // Skip over characters except for those with combining class 0 (non-combining characters) or with
+ // combining class 230 (same class as U+0307)
+ U_ASSERT(u_getCombiningClass(0x0307) == 230);
+ if (combiningClass == 0 || combiningClass == 230) {
+ sawLeadCharacter = isIllegalCombiningDotLeadCharacter(cp);
+ }
+ i += U16_LENGTH(cp);
+ }
+ return -1;
+}
+
+static inline bool isIllegalCombiningDotLeadCharacterNoLookup(UChar32 cp) {
+ return cp == u'i' || cp == u'j' || cp == u'ı' || cp == u'ȷ' || cp == u'l' ||
+ u_hasBinaryProperty(cp, UCHAR_SOFT_DOTTED);
+}
+
+bool SpoofImpl::isIllegalCombiningDotLeadCharacter(UChar32 cp) const {
+ if (isIllegalCombiningDotLeadCharacterNoLookup(cp)) {
+ return true;
+ }
+ UnicodeString skelStr;
+ fSpoofData->confusableLookup(cp, skelStr);
+ UChar32 finalCp = skelStr.char32At(skelStr.moveIndex32(skelStr.length(), -1));
+ if (finalCp != cp && isIllegalCombiningDotLeadCharacterNoLookup(finalCp)) {
+ return true;
+ }
+ return false;
+}
+
// Convert a text format hex number. Utility function used by builder code. Static.
@@ -532,24 +569,25 @@ uspoof_cleanupDefaultData(void) {
if (gDefaultSpoofData) {
// Will delete, assuming all user-level spoof checkers were closed.
gDefaultSpoofData->removeReference();
- gDefaultSpoofData = NULL;
+ gDefaultSpoofData = nullptr;
gSpoofInitDefaultOnce.reset();
}
return TRUE;
}
static void U_CALLCONV uspoof_loadDefaultData(UErrorCode& status) {
- UDataMemory *udm = udata_openChoice(NULL, "cfu", "confusables",
+ UDataMemory *udm = udata_openChoice(nullptr, "cfu", "confusables",
spoofDataIsAcceptable,
- NULL, // context, would receive dataVersion if supplied.
+ nullptr, // context, would receive dataVersion if supplied.
&status);
if (U_FAILURE(status)) { return; }
gDefaultSpoofData = new SpoofData(udm, status);
if (U_FAILURE(status)) {
delete gDefaultSpoofData;
+ gDefaultSpoofData = nullptr;
return;
}
- if (gDefaultSpoofData == NULL) {
+ if (gDefaultSpoofData == nullptr) {
status = U_MEMORY_ALLOCATION_ERROR;
return;
}
@@ -590,6 +628,10 @@ SpoofData::SpoofData(const void *data, int32_t length, UErrorCode &status)
status = U_INVALID_FORMAT_ERROR;
return;
}
+ if (data == NULL) {
+ status = U_ILLEGAL_ARGUMENT_ERROR;
+ return;
+ }
void *ncData = const_cast<void *>(data);
fRawData = static_cast<SpoofDataHeader *>(ncData);
if (length < fRawData->fLength) {
diff --git a/Build/source/libs/icu/icu-src/source/i18n/uspoof_impl.h b/Build/source/libs/icu/icu-src/source/i18n/uspoof_impl.h
index a6b1e73e22d..0eee0e58a8a 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/uspoof_impl.h
+++ b/Build/source/libs/icu/icu-src/source/i18n/uspoof_impl.h
@@ -20,7 +20,7 @@
#include "unicode/uspoof.h"
#include "unicode/uscript.h"
#include "unicode/udata.h"
-
+#include "udataswp.h"
#include "utrie2.h"
#if !UCONFIG_NO_NORMALIZATION
@@ -83,6 +83,9 @@ public:
void getNumerics(const UnicodeString& input, UnicodeSet& result, UErrorCode& status) const;
URestrictionLevel getRestrictionLevel(const UnicodeString& input, UErrorCode& status) const;
+ int32_t findHiddenOverlay(const UnicodeString& input, UErrorCode& status) const;
+ bool isIllegalCombiningDotLeadCharacter(UChar32 cp) const;
+
/** parse a hex number. Untility used by the builders. */
static UChar32 ScanHex(const UChar *s, int32_t start, int32_t limit, UErrorCode &status);
diff --git a/Build/source/libs/icu/icu-src/source/i18n/valueformatter.cpp b/Build/source/libs/icu/icu-src/source/i18n/valueformatter.cpp
deleted file mode 100644
index e769f369d48..00000000000
--- a/Build/source/libs/icu/icu-src/source/i18n/valueformatter.cpp
+++ /dev/null
@@ -1,223 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
-*******************************************************************************
-* Copyright (C) 2015, International Business Machines Corporation and
-* others. All Rights Reserved.
-*******************************************************************************
-*/
-
-#include "unicode/plurrule.h"
-#include "unicode/unistr.h"
-#include "unicode/utypes.h"
-
-#if !UCONFIG_NO_FORMATTING
-
-#include "digitformatter.h"
-#include "digitgrouping.h"
-#include "digitinterval.h"
-#include "digitlst.h"
-#include "precision.h"
-#include "plurrule_impl.h"
-#include "smallintformatter.h"
-#include "uassert.h"
-#include "valueformatter.h"
-#include "visibledigits.h"
-
-U_NAMESPACE_BEGIN
-
-ValueFormatter::~ValueFormatter() {}
-
-VisibleDigitsWithExponent &
-ValueFormatter::toVisibleDigitsWithExponent(
- int64_t value,
- VisibleDigitsWithExponent &digits,
- UErrorCode &status) const {
- switch (fType) {
- case kFixedDecimal:
- return fFixedPrecision->initVisibleDigitsWithExponent(
- value, digits, status);
- break;
- case kScientificNotation:
- return fScientificPrecision->initVisibleDigitsWithExponent(
- value, digits, status);
- break;
- default:
- U_ASSERT(FALSE);
- break;
- }
- return digits;
-}
-
-VisibleDigitsWithExponent &
-ValueFormatter::toVisibleDigitsWithExponent(
- DigitList &value,
- VisibleDigitsWithExponent &digits,
- UErrorCode &status) const {
- switch (fType) {
- case kFixedDecimal:
- return fFixedPrecision->initVisibleDigitsWithExponent(
- value, digits, status);
- break;
- case kScientificNotation:
- return fScientificPrecision->initVisibleDigitsWithExponent(
- value, digits, status);
- break;
- default:
- U_ASSERT(FALSE);
- break;
- }
- return digits;
-}
-
-static UBool isNoGrouping(
- const DigitGrouping &grouping,
- int32_t value,
- const FixedPrecision &precision) {
- IntDigitCountRange range(
- precision.fMin.getIntDigitCount(),
- precision.fMax.getIntDigitCount());
- return grouping.isNoGrouping(value, range);
-}
-
-UBool
-ValueFormatter::isFastFormattable(int32_t value) const {
- switch (fType) {
- case kFixedDecimal:
- {
- if (value == INT32_MIN) {
- return FALSE;
- }
- if (value < 0) {
- value = -value;
- }
- return fFixedPrecision->isFastFormattable() && fFixedOptions->isFastFormattable() && isNoGrouping(*fGrouping, value, *fFixedPrecision);
- }
- case kScientificNotation:
- return FALSE;
- default:
- U_ASSERT(FALSE);
- break;
- }
- return FALSE;
-}
-
-DigitList &
-ValueFormatter::round(DigitList &value, UErrorCode &status) const {
- if (value.isNaN() || value.isInfinite()) {
- return value;
- }
- switch (fType) {
- case kFixedDecimal:
- return fFixedPrecision->round(value, 0, status);
- case kScientificNotation:
- return fScientificPrecision->round(value, status);
- default:
- U_ASSERT(FALSE);
- break;
- }
- return value;
-}
-
-UnicodeString &
-ValueFormatter::formatInt32(
- int32_t value,
- FieldPositionHandler &handler,
- UnicodeString &appendTo) const {
- switch (fType) {
- case kFixedDecimal:
- {
- IntDigitCountRange range(
- fFixedPrecision->fMin.getIntDigitCount(),
- fFixedPrecision->fMax.getIntDigitCount());
- return fDigitFormatter->formatPositiveInt32(
- value,
- range,
- handler,
- appendTo);
- }
- break;
- case kScientificNotation:
- default:
- U_ASSERT(FALSE);
- break;
- }
- return appendTo;
-}
-
-UnicodeString &
-ValueFormatter::format(
- const VisibleDigitsWithExponent &value,
- FieldPositionHandler &handler,
- UnicodeString &appendTo) const {
- switch (fType) {
- case kFixedDecimal:
- return fDigitFormatter->format(
- value.getMantissa(),
- *fGrouping,
- *fFixedOptions,
- handler,
- appendTo);
- break;
- case kScientificNotation:
- return fDigitFormatter->format(
- value,
- *fScientificOptions,
- handler,
- appendTo);
- break;
- default:
- U_ASSERT(FALSE);
- break;
- }
- return appendTo;
-}
-
-int32_t
-ValueFormatter::countChar32(const VisibleDigitsWithExponent &value) const {
- switch (fType) {
- case kFixedDecimal:
- return fDigitFormatter->countChar32(
- value.getMantissa(),
- *fGrouping,
- *fFixedOptions);
- break;
- case kScientificNotation:
- return fDigitFormatter->countChar32(
- value,
- *fScientificOptions);
- break;
- default:
- U_ASSERT(FALSE);
- break;
- }
- return 0;
-}
-
-void
-ValueFormatter::prepareFixedDecimalFormatting(
- const DigitFormatter &formatter,
- const DigitGrouping &grouping,
- const FixedPrecision &precision,
- const DigitFormatterOptions &options) {
- fType = kFixedDecimal;
- fDigitFormatter = &formatter;
- fGrouping = &grouping;
- fFixedPrecision = &precision;
- fFixedOptions = &options;
-}
-
-void
-ValueFormatter::prepareScientificFormatting(
- const DigitFormatter &formatter,
- const ScientificPrecision &precision,
- const SciFormatterOptions &options) {
- fType = kScientificNotation;
- fDigitFormatter = &formatter;
- fScientificPrecision = &precision;
- fScientificOptions = &options;
-}
-
-U_NAMESPACE_END
-
-#endif /* !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/valueformatter.h b/Build/source/libs/icu/icu-src/source/i18n/valueformatter.h
deleted file mode 100644
index 2802f187bba..00000000000
--- a/Build/source/libs/icu/icu-src/source/i18n/valueformatter.h
+++ /dev/null
@@ -1,161 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
-*******************************************************************************
-* Copyright (C) 2015, International Business Machines Corporation and *
-* others. All Rights Reserved. *
-*******************************************************************************
-*/
-
-#ifndef VALUEFORMATTER_H
-#define VALUEFORMATTER_H
-
-#if !UCONFIG_NO_FORMATTING
-
-#include "unicode/uobject.h"
-#include "unicode/utypes.h"
-
-
-
-U_NAMESPACE_BEGIN
-
-class UnicodeString;
-class DigitList;
-class FieldPositionHandler;
-class DigitGrouping;
-class PluralRules;
-class FixedPrecision;
-class DigitFormatter;
-class DigitFormatterOptions;
-class ScientificPrecision;
-class SciFormatterOptions;
-class FixedDecimal;
-class VisibleDigitsWithExponent;
-
-
-/**
- * A closure around rounding and formatting a value. As these instances are
- * designed to be short lived (they only exist while formatting a value), they
- * do not own their own attributes. Rather the caller maintains ownership of
- * all attributes. A caller first calls a prepareXXX method on an instance
- * to share its data before using that instance. Using an
- * instance without first calling a prepareXXX method results in an
- * assertion error and a program crash.
- */
-class U_I18N_API ValueFormatter : public UObject {
-public:
- ValueFormatter() : fType(kFormatTypeCount) {
- }
-
- virtual ~ValueFormatter();
-
- /**
- * This function is here only to support the protected round() method
- * in DecimalFormat. It serves no ther purpose than that.
- *
- * @param value this value is rounded in place.
- * @param status any error returned here.
- */
- DigitList &round(DigitList &value, UErrorCode &status) const;
-
- /**
- * Returns TRUE if the absolute value of value can be fast formatted
- * using ValueFormatter::formatInt32.
- */
- UBool isFastFormattable(int32_t value) const;
-
- /**
- * Converts value to a VisibleDigitsWithExponent.
- * Result may be fixed point or scientific.
- */
- VisibleDigitsWithExponent &toVisibleDigitsWithExponent(
- int64_t value,
- VisibleDigitsWithExponent &digits,
- UErrorCode &status) const;
-
- /**
- * Converts value to a VisibleDigitsWithExponent.
- * Result may be fixed point or scientific.
- */
- VisibleDigitsWithExponent &toVisibleDigitsWithExponent(
- DigitList &value,
- VisibleDigitsWithExponent &digits,
- UErrorCode &status) const;
-
- /**
- * formats positiveValue and appends to appendTo. Returns appendTo.
- * @param positiveValue If negative, no negative sign is formatted.
- * @param handler stores the field positions
- * @param appendTo formatted value appended here.
- */
- UnicodeString &format(
- const VisibleDigitsWithExponent &positiveValue,
- FieldPositionHandler &handler,
- UnicodeString &appendTo) const;
-
-
- /**
- * formats positiveValue and appends to appendTo. Returns appendTo.
- * value must be positive. Calling formatInt32 to format a value when
- * isFastFormattable indicates that the value cannot be fast formatted
- * results in undefined behavior.
- */
- UnicodeString &formatInt32(
- int32_t positiveValue,
- FieldPositionHandler &handler,
- UnicodeString &appendTo) const;
-
- /**
- * Returns the number of code points needed to format.
- * @param positiveValue if negative, the negative sign is not included
- * in count.
- */
- int32_t countChar32(
- const VisibleDigitsWithExponent &positiveValue) const;
-
- /**
- * Prepares this instance for fixed decimal formatting.
- */
- void prepareFixedDecimalFormatting(
- const DigitFormatter &formatter,
- const DigitGrouping &grouping,
- const FixedPrecision &precision,
- const DigitFormatterOptions &options);
-
- /**
- * Prepares this instance for scientific formatting.
- */
- void prepareScientificFormatting(
- const DigitFormatter &formatter,
- const ScientificPrecision &precision,
- const SciFormatterOptions &options);
-
-private:
- ValueFormatter(const ValueFormatter &);
- ValueFormatter &operator=(const ValueFormatter &);
- enum FormatType {
- kFixedDecimal,
- kScientificNotation,
- kFormatTypeCount
- };
-
- FormatType fType;
-
- // for fixed decimal and scientific formatting
- const DigitFormatter *fDigitFormatter;
-
- // for fixed decimal formatting
- const FixedPrecision *fFixedPrecision;
- const DigitFormatterOptions *fFixedOptions;
- const DigitGrouping *fGrouping;
-
- // for scientific formatting
- const ScientificPrecision *fScientificPrecision;
- const SciFormatterOptions *fScientificOptions;
-};
-
-U_NAMESPACE_END
-
-#endif /* !UCONFIG_NO_FORMATTING */
-
-#endif /* VALUEFORMATTER_H */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/visibledigits.cpp b/Build/source/libs/icu/icu-src/source/i18n/visibledigits.cpp
deleted file mode 100644
index 03cfc68d255..00000000000
--- a/Build/source/libs/icu/icu-src/source/i18n/visibledigits.cpp
+++ /dev/null
@@ -1,186 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
- * Copyright (C) 2016, International Business Machines
- * Corporation and others. All Rights Reserved.
- *
- * file name: visibledigits.cpp
- */
-
-#include <math.h>
-
-#include "unicode/utypes.h"
-
-#if !UCONFIG_NO_FORMATTING
-
-#include "cstring.h"
-#include "decNumber.h"
-#include "digitlst.h"
-#include "uassert.h"
-#include "visibledigits.h"
-
-static const int32_t kNegative = 1;
-static const int32_t kInfinite = 2;
-static const int32_t kNaN = 4;
-
-U_NAMESPACE_BEGIN
-
-void VisibleDigits::setNegative() {
- fFlags |= kNegative;
-}
-
-void VisibleDigits::setNaN() {
- fFlags |= kNaN;
-}
-
-void VisibleDigits::setInfinite() {
- fFlags |= kInfinite;
-}
-
-void VisibleDigits::clear() {
- fInterval.clear();
- fDigits.clear();
- fExponent = 0;
- fFlags = 0;
- fAbsIntValue = 0LL;
- fAbsIntValueSet = FALSE;
- fAbsDoubleValue = 0.0;
- fAbsDoubleValueSet = FALSE;
-}
-
-UBool VisibleDigits::isNegative() const {
- return (fFlags & kNegative);
-}
-
-UBool VisibleDigits::isNaN() const {
- return (fFlags & kNaN);
-}
-
-UBool VisibleDigits::isInfinite() const {
- return (fFlags & kInfinite);
-}
-
-int32_t VisibleDigits::getDigitByExponent(int32_t digitPos) const {
- if (digitPos < fExponent || digitPos >= fExponent + fDigits.length()) {
- return 0;
- }
- const char *ptr = fDigits.data();
- return ptr[digitPos - fExponent];
-}
-
-UBool VisibleDigits::isOverMaxDigits() const {
- return (fExponent + fDigits.length() > fInterval.getMostSignificantExclusive());
-}
-
-UBool VisibleDigits::isNaNOrInfinity() const {
- return (fFlags & (kInfinite | kNaN)) != 0;
-}
-
-double VisibleDigits::computeAbsDoubleValue() const {
- // Take care of NaN and infinity
- if (isNaN()) {
- return uprv_getNaN();
- }
- if (isInfinite()) {
- return uprv_getInfinity();
- }
-
- // stack allocate a decNumber to hold MAX_DBL_DIGITS+3 significant digits
- struct {
- decNumber decNum;
- char digits[MAX_DBL_DIGITS+3];
- } decNumberWithStorage;
- decNumber *numberPtr = &decNumberWithStorage.decNum;
-
- int32_t mostSig = fInterval.getMostSignificantExclusive();
- int32_t mostSigNonZero = fExponent + fDigits.length();
- int32_t end = mostSig > mostSigNonZero ? mostSigNonZero : mostSig;
- int32_t leastSig = fInterval.getLeastSignificantInclusive();
- int32_t start = leastSig > fExponent ? leastSig : fExponent;
- if (end <= start) {
- return 0.0;
- }
- if (start < end - (MAX_DBL_DIGITS+3)) {
- start = end - (MAX_DBL_DIGITS+3);
- }
- uint8_t *pos = numberPtr->lsu;
- const char *src = &(fDigits.data()[start - fExponent]);
- for (int32_t i = start; i < end; ++i) {
- *pos++ = (uint8_t) (*src++);
- }
- numberPtr->exponent = start;
- numberPtr->bits = 0;
- numberPtr->digits = end - start;
- char str[MAX_DBL_DIGITS+18];
- uprv_decNumberToString(numberPtr, str);
- U_ASSERT(uprv_strlen(str) < MAX_DBL_DIGITS+18);
- char *unused = NULL;
- return DigitList::decimalStrToDouble(str, &unused);
-}
-
-void VisibleDigits::getFixedDecimal(
- double &source, int64_t &intValue, int64_t &f, int64_t &t, int32_t &v, UBool &hasIntValue) const {
- source = 0.0;
- intValue = 0;
- f = 0;
- t = 0;
- v = 0;
- hasIntValue = FALSE;
- if (isNaNOrInfinity()) {
- return;
- }
-
- // source
- if (fAbsDoubleValueSet) {
- source = fAbsDoubleValue;
- } else {
- source = computeAbsDoubleValue();
- }
-
- // visible decimal digits
- v = fInterval.getFracDigitCount();
-
- // intValue
-
- // If we initialized from an int64 just use that instead of
- // calculating
- if (fAbsIntValueSet) {
- intValue = fAbsIntValue;
- } else {
- int32_t startPos = fInterval.getMostSignificantExclusive();
- if (startPos > 18) {
- startPos = 18;
- }
- // process the integer digits
- for (int32_t i = startPos - 1; i >= 0; --i) {
- intValue = intValue * 10LL + getDigitByExponent(i);
- }
- if (intValue == 0LL && startPos > 0) {
- intValue = 100000000000000000LL;
- }
- }
-
- // f (decimal digits)
- // skip over any leading 0's in fraction digits.
- int32_t idx = -1;
- for (; idx >= -v && getDigitByExponent(idx) == 0; --idx)
- ;
-
- // Only process up to first 18 non zero fraction digits for decimalDigits
- // since that is all we can fit into an int64.
- for (int32_t i = idx; i >= -v && i > idx - 18; --i) {
- f = f * 10LL + getDigitByExponent(i);
- }
-
- // If we have no decimal digits, we don't have an integer value
- hasIntValue = (f == 0LL);
-
- // t (decimal digits without trailing zeros)
- t = f;
- while (t > 0 && t % 10LL == 0) {
- t /= 10;
- }
-}
-
-U_NAMESPACE_END
-#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/i18n/visibledigits.h b/Build/source/libs/icu/icu-src/source/i18n/visibledigits.h
deleted file mode 100644
index 35ac06924d9..00000000000
--- a/Build/source/libs/icu/icu-src/source/i18n/visibledigits.h
+++ /dev/null
@@ -1,162 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
-******************************************************************************* * Copyright (C) 2015, International Business Machines
-* Corporation and others. All Rights Reserved.
-*******************************************************************************
-* visibledigits.h
-*
-* created on: 2015jun20
-* created by: Travis Keep
-*/
-
-#ifndef __VISIBLEDIGITS_H__
-#define __VISIBLEDIGITS_H__
-
-#include "unicode/utypes.h"
-
-#if !UCONFIG_NO_FORMATTING
-
-#include "unicode/uobject.h"
-
-#include "charstr.h"
-#include "digitinterval.h"
-
-U_NAMESPACE_BEGIN
-
-class DigitList;
-
-/**
- * VisibleDigits represents the digits visible for formatting.
- * Once initialized using a FixedPrecision instance, VisibleDigits instances
- * remain unchanged until they are initialized again. A VisibleDigits with
- * a numeric value equal to 3.0 could be "3", "3.0", "3.00" or even "003.0"
- * depending on settings of the FixedPrecision instance used to initialize it.
- */
-class U_I18N_API VisibleDigits : public UMemory {
-public:
- VisibleDigits() : fExponent(0), fFlags(0), fAbsIntValue(0), fAbsIntValueSet(FALSE), fAbsDoubleValue(0.0), fAbsDoubleValueSet(FALSE) { }
-
- UBool isNegative() const;
- UBool isNaN() const;
- UBool isInfinite() const;
- UBool isNaNOrInfinity() const;
-
- /**
- * Gets the digit at particular exponent, if number is 987.6, then
- * getDigit(2) == 9 and gitDigit(0) == 7 and gitDigit(-1) == 6.
- * If isNaN() or isInfinity() return TRUE, then the result of this
- * function is undefined.
- */
- int32_t getDigitByExponent(int32_t digitPos) const;
-
- /**
- * Returns the digit interval which indicates the leftmost and rightmost
- * position of this instance.
- * If isNaN() or isInfinity() return TRUE, then the result of this
- * function is undefined.
- */
- const DigitInterval &getInterval() const { return fInterval; }
-
- /**
- * Gets the parameters needed to create a FixedDecimal.
- */
- void getFixedDecimal(double &source, int64_t &intValue, int64_t &f, int64_t &t, int32_t &v, UBool &hasIntValue) const;
-
-
-private:
- /**
- * The digits, least significant first. Both the least and most
- * significant digit in this list are non-zero; however, digits in the
- * middle may be zero. This field contains values between (char) 0, and
- * (char) 9 inclusive.
- */
- CharString fDigits;
-
- /**
- * The range of displayable digits. This field is needed to account for
- * any leading and trailing zeros which are not stored in fDigits.
- */
- DigitInterval fInterval;
-
- /**
- * The exponent value of the least significant digit in fDigits. For
- * example, fExponent = 2 and fDigits = {7, 8, 5} represents 58700.
- */
- int32_t fExponent;
-
- /**
- * Contains flags such as NaN, Inf, and negative.
- */
- int32_t fFlags;
-
- /**
- * Contains the absolute value of the digits left of the decimal place
- * if fAbsIntValueSet is TRUE
- */
- int64_t fAbsIntValue;
-
- /**
- * Indicates whether or not fAbsIntValue is set.
- */
- UBool fAbsIntValueSet;
-
- /**
- * Contains the absolute value of the value this instance represents
- * if fAbsDoubleValueSet is TRUE
- */
- double fAbsDoubleValue;
-
- /**
- * Indicates whether or not fAbsDoubleValue is set.
- */
- UBool fAbsDoubleValueSet;
-
- void setNegative();
- void setNaN();
- void setInfinite();
- void clear();
- double computeAbsDoubleValue() const;
- UBool isOverMaxDigits() const;
-
- VisibleDigits(const VisibleDigits &);
- VisibleDigits &operator=(const VisibleDigits &);
-
- friend class FixedPrecision;
- friend class VisibleDigitsWithExponent;
-};
-
-/**
- * A VisibleDigits with a possible exponent.
- */
-class U_I18N_API VisibleDigitsWithExponent : public UMemory {
-public:
- VisibleDigitsWithExponent() : fHasExponent(FALSE) { }
- const VisibleDigits &getMantissa() const { return fMantissa; }
- const VisibleDigits *getExponent() const {
- return fHasExponent ? &fExponent : NULL;
- }
- void clear() {
- fMantissa.clear();
- fExponent.clear();
- fHasExponent = FALSE;
- }
- UBool isNegative() const { return fMantissa.isNegative(); }
- UBool isNaN() const { return fMantissa.isNaN(); }
- UBool isInfinite() const { return fMantissa.isInfinite(); }
-private:
- VisibleDigitsWithExponent(const VisibleDigitsWithExponent &);
- VisibleDigitsWithExponent &operator=(
- const VisibleDigitsWithExponent &);
- VisibleDigits fMantissa;
- VisibleDigits fExponent;
- UBool fHasExponent;
-
- friend class ScientificPrecision;
- friend class FixedPrecision;
-};
-
-
-U_NAMESPACE_END
-#endif /* #if !UCONFIG_NO_FORMATTING */
-#endif // __VISIBLEDIGITS_H__
diff --git a/Build/source/libs/icu/icu-src/source/i18n/vtzone.cpp b/Build/source/libs/icu/icu-src/source/i18n/vtzone.cpp
index 6ddcf4117d1..cb84c6260f6 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/vtzone.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/vtzone.cpp
@@ -135,7 +135,7 @@ static UnicodeString& appendAsciiDigits(int32_t number, uint8_t length, UnicodeS
digits[i++] = number % 10;
number /= 10;
} while (number != 0);
- length = i;
+ length = static_cast<uint8_t>(i);
} else {
// fixed digits
for (i = 0; i < length; i++) {
diff --git a/Build/source/libs/icu/icu-src/source/i18n/windtfmt.cpp b/Build/source/libs/icu/icu-src/source/i18n/windtfmt.cpp
index 253e919def9..6a3779a29e8 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/windtfmt.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/windtfmt.cpp
@@ -385,7 +385,8 @@ UnicodeString Win32DateFormat::setTimeZoneInfo(TIME_ZONE_INFORMATION *tzi, const
for (int z = 0; z < ec; z += 1) {
UnicodeString equiv = TimeZone::getEquivalentID(icuid, z);
- if (found = uprv_getWindowsTimeZoneInfo(tzi, equiv.getBuffer(), equiv.length())) {
+ found = uprv_getWindowsTimeZoneInfo(tzi, equiv.getBuffer(), equiv.length());
+ if (found) {
break;
}
}
diff --git a/Build/source/libs/icu/icu-src/source/i18n/zonemeta.cpp b/Build/source/libs/icu/icu-src/source/i18n/zonemeta.cpp
index c386b0cae5e..b7139a807b3 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/zonemeta.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/zonemeta.cpp
@@ -319,10 +319,10 @@ ZoneMeta::getCanonicalCLDRID(const UnicodeString &tzid, UErrorCode& status) {
id[len] = (char) 0; // Make sure it is null terminated.
// replace '/' with ':'
- char *p = id;
- while (*p++) {
- if (*p == '/') {
- *p = ':';
+ char *q = id;
+ while (*q++) {
+ if (*q == '/') {
+ *q = ':';
}
}
@@ -690,6 +690,7 @@ ZoneMeta::createMetazoneMappings(const UnicodeString &tzid) {
mzMappings = new UVector(deleteOlsonToMetaMappingEntry, NULL, status);
if (U_FAILURE(status)) {
delete mzMappings;
+ mzMappings = NULL;
uprv_free(entry);
break;
}
@@ -849,13 +850,13 @@ ZoneMeta::createCustomTimeZone(int32_t offset) {
negative = TRUE;
tmp = -offset;
}
- int32_t hour, min, sec;
+ uint8_t hour, min, sec;
tmp /= 1000;
- sec = tmp % 60;
+ sec = static_cast<uint8_t>(tmp % 60);
tmp /= 60;
- min = tmp % 60;
- hour = tmp / 60;
+ min = static_cast<uint8_t>(tmp % 60);
+ hour = static_cast<uint8_t>(tmp / 60);
UnicodeString zid;
formatCustomID(hour, min, sec, negative, zid);
diff --git a/Build/source/libs/icu/icu-src/source/io/io.vcxproj b/Build/source/libs/icu/icu-src/source/io/io.vcxproj
index ac7d6f656ec..7e7b5cd9b8a 100644
--- a/Build/source/libs/icu/icu-src/source/io/io.vcxproj
+++ b/Build/source/libs/icu/icu-src/source/io/io.vcxproj
@@ -2,7 +2,8 @@
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- The following import will include the 'default' configuration options for VS projects. -->
<Import Project="..\allinone\Build.Windows.ProjectConfiguration.props" />
-
+ <!-- The following import will include the library configuration options for VS projects. -->
+ <Import Project="..\allinone\Build.Windows.Library.ProjectConfiguration.props" />
<PropertyGroup Label="Globals">
<ProjectGuid>{C2B04507-2521-4801-BF0D-5FD79D6D518C}</ProjectGuid>
</PropertyGroup>
@@ -76,7 +77,7 @@
<CompileAs>Default</CompileAs>
</ClCompile>
<Link>
- <OutputFile>..\..\bin\icuio61.dll</OutputFile>
+ <OutputFile>..\..\bin\icuio63.dll</OutputFile>
<AdditionalDependencies>icuuc.lib;icuin.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ProgramDatabaseFile>.\..\..\lib\icuio.pdb</ProgramDatabaseFile>
@@ -101,7 +102,7 @@
<CompileAs>Default</CompileAs>
</ClCompile>
<Link>
- <OutputFile>..\..\bin\icuio61d.dll</OutputFile>
+ <OutputFile>..\..\bin\icuio63d.dll</OutputFile>
<AdditionalDependencies>icuucd.lib;icuind.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
@@ -126,7 +127,7 @@
<CompileAs>Default</CompileAs>
</ClCompile>
<Link>
- <OutputFile>..\..\bin64\icuio61.dll</OutputFile>
+ <OutputFile>..\..\bin64\icuio63.dll</OutputFile>
<AdditionalDependencies>icuuc.lib;icuin.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ProgramDatabaseFile>.\..\..\lib64\icuio.pdb</ProgramDatabaseFile>
@@ -148,7 +149,7 @@
<CompileAs>Default</CompileAs>
</ClCompile>
<Link>
- <OutputFile>..\..\bin64\icuio61d.dll</OutputFile>
+ <OutputFile>..\..\bin64\icuio63d.dll</OutputFile>
<AdditionalDependencies>icuucd.lib;icuind.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
@@ -190,4 +191,4 @@
<Import Project="$(SolutionDir)\Windows.CopyUnicodeHeaderFiles.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
-</Project> \ No newline at end of file
+</Project>
diff --git a/Build/source/libs/icu/icu-src/source/io/ufmt_cmn.cpp b/Build/source/libs/icu/icu-src/source/io/ufmt_cmn.cpp
index 2b1a76fc8a2..0b6c18ff966 100644
--- a/Build/source/libs/icu/icu-src/source/io/ufmt_cmn.cpp
+++ b/Build/source/libs/icu/icu-src/source/io/ufmt_cmn.cpp
@@ -140,7 +140,7 @@ ufmt_uto64(const UChar *buffer,
{
const UChar *limit;
int32_t count;
- int64_t result;
+ uint64_t result;
/* intialize parameters */
@@ -160,7 +160,7 @@ ufmt_uto64(const UChar *buffer,
}
*len = count;
- return result;
+ return static_cast<int64_t>(result);
}
#define NIBBLE_PER_BYTE 2
@@ -235,7 +235,7 @@ ufmt_defaultCPToUnicode(const char *s, int32_t sSize,
return 0;
if(sSize <= 0) {
- sSize = uprv_strlen(s) + 1;
+ sSize = static_cast<int32_t>(uprv_strlen(s)) + 1;
}
/* perform the conversion in one swoop */
diff --git a/Build/source/libs/icu/icu-src/source/io/uprintf.cpp b/Build/source/libs/icu/icu-src/source/io/uprintf.cpp
index d433707ded9..3c9effaadaf 100644
--- a/Build/source/libs/icu/icu-src/source/io/uprintf.cpp
+++ b/Build/source/libs/icu/icu-src/source/io/uprintf.cpp
@@ -183,7 +183,7 @@ u_vfprintf( UFILE *f,
else {
pattern = buffer;
}
- u_charsToUChars(patternSpecification, pattern, size);
+ u_charsToUChars(patternSpecification, pattern, static_cast<int32_t>(size));
/* do the work */
count = u_vfprintf_u(f, pattern, ap);
diff --git a/Build/source/libs/icu/icu-src/source/io/ustream.cpp b/Build/source/libs/icu/icu-src/source/io/ustream.cpp
index 948521a7fef..51676ea0f54 100644
--- a/Build/source/libs/icu/icu-src/source/io/ustream.cpp
+++ b/Build/source/libs/icu/icu-src/source/io/ustream.cpp
@@ -123,7 +123,7 @@ operator>>(STD_ISTREAM& stream, UnicodeString& str)
/* Was the character consumed? */
if (us != uBuffer) {
/* Reminder: ibm-1390 & JISX0213 can output 2 Unicode code points */
- int32_t uBuffSize = us-uBuffer;
+ int32_t uBuffSize = static_cast<int32_t>(us-uBuffer);
int32_t uBuffIdx = 0;
while (uBuffIdx < uBuffSize) {
U16_NEXT(uBuffer, uBuffIdx, uBuffSize, ch32);
diff --git a/Build/source/libs/icu/icu-src/source/layoutex/layout/ParagraphLayout.h b/Build/source/libs/icu/icu-src/source/layoutex/layout/ParagraphLayout.h
index 0d9f08f7343..60972dc9386 100644
--- a/Build/source/libs/icu/icu-src/source/layoutex/layout/ParagraphLayout.h
+++ b/Build/source/libs/icu/icu-src/source/layoutex/layout/ParagraphLayout.h
@@ -42,13 +42,11 @@ U_NAMESPACE_BEGIN
*
* Clients can use this to break a paragraph into lines, and to display the glyphs in each line.
*
- * Note that {@link icu::LayoutEngine} is deprecated, but this class is not.
+ * Note that the ICU layout engine has been deprecated and removed.
* You may use this class with the HarfBuzz icu-le-hb wrapper,
* see http://www.freedesktop.org/wiki/Software/HarfBuzz/
*
* See http://userguide.icu-project.org/layoutengine for special build instructions.
- *
- * @see icu::LayoutEngine
*/
class U_LAYOUTEX_API ParagraphLayout : public UObject
{
diff --git a/Build/source/libs/icu/icu-src/source/layoutex/layoutex.vcxproj b/Build/source/libs/icu/icu-src/source/layoutex/layoutex.vcxproj
index 74ea3c001dc..2bc31e5e272 100644
--- a/Build/source/libs/icu/icu-src/source/layoutex/layoutex.vcxproj
+++ b/Build/source/libs/icu/icu-src/source/layoutex/layoutex.vcxproj
@@ -74,7 +74,7 @@
<CompileAs>Default</CompileAs>
</ClCompile>
<Link>
- <OutputFile>..\..\bin\iculx61.dll</OutputFile>
+ <OutputFile>..\..\bin\iculx63.dll</OutputFile>
<AdditionalDependencies>icuuc.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>.\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ProgramDatabaseFile>.\..\..\lib\iculx.pdb</ProgramDatabaseFile>
@@ -100,7 +100,7 @@
<CompileAs>Default</CompileAs>
</ClCompile>
<Link>
- <OutputFile>..\..\bin\iculx61d.dll</OutputFile>
+ <OutputFile>..\..\bin\iculx63d.dll</OutputFile>
<AdditionalDependencies>icuucd.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>.\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
@@ -126,7 +126,7 @@
<CompileAs>Default</CompileAs>
</ClCompile>
<Link>
- <OutputFile>..\..\bin64\iculx61.dll</OutputFile>
+ <OutputFile>..\..\bin64\iculx63.dll</OutputFile>
<AdditionalDependencies>icuuc.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>.\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ProgramDatabaseFile>.\..\..\lib64\iculx.pdb</ProgramDatabaseFile>
@@ -149,7 +149,7 @@
<CompileAs>Default</CompileAs>
</ClCompile>
<Link>
- <OutputFile>..\..\bin64\iculx61d.dll</OutputFile>
+ <OutputFile>..\..\bin64\iculx63d.dll</OutputFile>
<AdditionalDependencies>icuucd.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>.\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
@@ -243,4 +243,4 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
-</Project> \ No newline at end of file
+</Project>
diff --git a/Build/source/libs/icu/icu-src/source/runConfigureICU b/Build/source/libs/icu/icu-src/source/runConfigureICU
index abe8832b662..77df3a06862 100755
--- a/Build/source/libs/icu/icu-src/source/runConfigureICU
+++ b/Build/source/libs/icu/icu-src/source/runConfigureICU
@@ -265,8 +265,8 @@ case $platform in
CXX=cl; export CXX
RELEASE_CFLAGS='-Gy -MD'
RELEASE_CXXFLAGS='-Gy -MD'
- DEBUG_CFLAGS='-Zi -MDd'
- DEBUG_CXXFLAGS='-Zi -MDd'
+ DEBUG_CFLAGS='-FS -Zi -MDd'
+ DEBUG_CXXFLAGS='-FS -Zi -MDd'
DEBUG_LDFLAGS='-DEBUG'
;;
Cygwin/MSVC2005)
@@ -324,8 +324,8 @@ case $platform in
CXX=cl; export CXX
RELEASE_CFLAGS='-Gy -MD'
RELEASE_CXXFLAGS='-Gy -MD'
- DEBUG_CFLAGS='-Zi -MDd'
- DEBUG_CXXFLAGS='-Zi -MDd'
+ DEBUG_CFLAGS='-FS -Zi -MDd'
+ DEBUG_CXXFLAGS='-FS -Zi -MDd'
DEBUG_LDFLAGS='-DEBUG'
;;
*BSD)
diff --git a/Build/source/libs/icu/icu-src/source/samples/all/samplecheck.bat b/Build/source/libs/icu/icu-src/source/samples/all/samplecheck.bat
new file mode 100755
index 00000000000..c85a6c655dd
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/samples/all/samplecheck.bat
@@ -0,0 +1,247 @@
+@echo off
+REM Copyright (C) 2016 and later: Unicode, Inc. and others.
+REM License & terms of use: http://www.unicode.org/copyright.html
+REM ********************************************************************
+
+REM Don't add additional global environment variables, keep the variables local to this script.
+rem setlocal
+
+set ICU_ARCH=%1
+set ICU_DBRL=%2
+
+if "%1" == "" (
+ echo Usage: %0 "x86 or x64" "Debug or Release"
+ exit /b 1
+)
+
+if "%2" == "" (
+ echo Usage: %0 %1 "Debug or Release"
+ exit /b 1
+)
+
+set ICU_ICUDIR="%~dp0"\..\..\..
+set ICU_SAMPLESDIR=%ICU_ICUDIR%\source\samples
+
+if "%ICU_ARCH%" == "x64" (
+ set ICU_BINDIR=%~dp0..\..\..\bin64
+) else (
+ set ICU_BINDIR=%~dp0..\..\..\bin
+)
+
+if not exist "%ICU_BINDIR%" (
+ echo Error '%ICU_BINDIR%' does not exist!
+ echo Have you built all of ICU yet ?
+ goto :eof
+)
+
+echo Testing ICU samples in %ICU_ICUDIR% arch=%ICU_ARCH% type=%ICU_DBRL%
+set PATH=%ICU_BINDIR%;%PATH%
+pushd %ICU_BINDIR%
+
+set SAMPLE_BREAK=%ICU_SAMPLESDIR%\break\%ICU_ARCH%\%ICU_DBRL%\break.exe
+set SAMPLE_CAL=%ICU_SAMPLESDIR%\cal\%ICU_ARCH%\%ICU_DBRL%\cal.exe
+set SAMPLE_CASE=%ICU_SAMPLESDIR%\case\%ICU_ARCH%\%ICU_DBRL%\case.exe
+set SAMPLE_CITER=%ICU_SAMPLESDIR%\citer\%ICU_ARCH%\%ICU_DBRL%\citer.exe
+set SAMPLE_COLL=%ICU_SAMPLESDIR%\coll\%ICU_ARCH%\%ICU_DBRL%\coll.exe
+set SAMPLE_CSDET=%ICU_SAMPLESDIR%\csdet\%ICU_ARCH%\%ICU_DBRL%\csdet.exe
+set SAMPLE_DATE=%ICU_SAMPLESDIR%\date\%ICU_ARCH%\%ICU_DBRL%\date.exe
+set SAMPLE_DATEFMT=%ICU_SAMPLESDIR%\datefmt\%ICU_ARCH%\%ICU_DBRL%\datefmt.exe
+set SAMPLE_DTITVFMT=%ICU_SAMPLESDIR%\dtitvfmtsample\%ICU_ARCH%\%ICU_DBRL%\dtitvfmtsample.exe
+set SAMPLE_DTPTNG=%ICU_SAMPLESDIR%\dtptngsample\%ICU_ARCH%\%ICU_DBRL%\dtptngsample.exe
+set SAMPLE_MSGFMT=%ICU_SAMPLESDIR%\msgfmt\%ICU_ARCH%\%ICU_DBRL%\msgfmt.exe
+set SAMPLE_NUMFMT=%ICU_SAMPLESDIR%\numfmt\%ICU_ARCH%\%ICU_DBRL%\numfmt.exe
+set SAMPLE_PLURFMTSAMPLE=%ICU_SAMPLESDIR%\plurfmtsample\%ICU_ARCH%\%ICU_DBRL%\plurfmtsample.exe
+set SAMPLE_PROPS=%ICU_SAMPLESDIR%\props\%ICU_ARCH%\%ICU_DBRL%\props.exe
+set SAMPLE_STRSRCH=%ICU_SAMPLESDIR%\strsrch\%ICU_ARCH%\%ICU_DBRL%\strsrch.exe
+set SAMPLE_TRANSLIT=%ICU_SAMPLESDIR%\translit\%ICU_ARCH%\%ICU_DBRL%\translit.exe
+set SAMPLE_UCITER8=%ICU_SAMPLESDIR%\uciter8\%ICU_ARCH%\%ICU_DBRL%\uciter8.exe
+set SAMPLE_UCNV=%ICU_SAMPLESDIR%\ucnv\%ICU_ARCH%\%ICU_DBRL%\ucnv.exe
+REM udata needs changes to the vcxproj to change the output locations for writer/reader.
+rem set SAMPLE_UDATA_WRITER=%ICU_SAMPLESDIR%\udata\%ICU_ARCH%\%ICU_DBRL%\writer.exe
+rem set SAMPLE_UDATA_READER=%ICU_SAMPLESDIR%\udata\%ICU_ARCH%\%ICU_DBRL%\reader.exe
+set SAMPLE_UFORTUNE=%ICU_SAMPLESDIR%\ufortune\%ICU_ARCH%\%ICU_DBRL%\ufortune.exe
+set SAMPLE_UGREP=%ICU_SAMPLESDIR%\ugrep\%ICU_ARCH%\%ICU_DBRL%\ugrep.exe
+REM There is also the 'resources' project in VS.
+set SAMPLE_URESB=%ICU_SAMPLESDIR%\uresb\%ICU_ARCH%\%ICU_DBRL%\uresb.exe
+set SAMPLE_USTRING=%ICU_SAMPLESDIR%\ustring\%ICU_ARCH%\%ICU_DBRL%\ustring.exe
+
+
+@set THT=break
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_BREAK%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=cal
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_CAL%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=case
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_CASE%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=citer
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_CITER%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=coll
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_COLL%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=csdet
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_CSDET% %ICU_SAMPLESDIR%\csdet\readme.txt
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=date
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_DATE%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=datefmt
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_DATEFMT%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=dtitvfmtsample
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_DTITVFMT%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=dtptngsample
+@echo.
+@echo ==== %THT% =========================================================================
+pushd %ICU_SAMPLESDIR%\dtptngsample\%ICU_ARCH%\%ICU_DBRL%
+%SAMPLE_DTPTNG%
+popd
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=msgfmt
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_MSGFMT% arg1 arg2
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=numfmt
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_NUMFMT%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=plurfmtsample
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_PLURFMTSAMPLE%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=props
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_PROPS%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=strsrch
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_STRSRCH%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=translit
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_TRANSLIT%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=citer8
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_UCITER8%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=ucnv
+@echo.
+@echo ==== %THT% =========================================================================
+pushd %ICU_SAMPLESDIR%\ucnv
+%SAMPLE_UCNV%
+popd
+if ERRORLEVEL 1 goto :SampleError
+
+REM TODO: udata needs changes to the vcxproj file to fix the output locations for writer/reader.
+@set THT=udata
+@echo.
+@echo ==== %THT% =========================================================================
+pushd %ICU_SAMPLESDIR%\udata\%ICU_ARCH%\%ICU_DBRL%
+@echo TODO: udata needs changes to the vcxproj file to fix the output locations for writer/reader.
+@echo Skipping %THT%
+rem %SAMPLE_UDATA_WRITER%
+rem %SAMPLE_UDATA_READER%
+popd
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=ufortune
+@echo.
+@echo ==== %THT% =========================================================================
+if "%ICU_ARCH%" == "x64" (
+ @echo The ufortune sample currently only runs on x86.
+ @echo Skipping %THT%.
+) else (
+ %SAMPLE_UFORTUNE%
+ if ERRORLEVEL 1 goto :SampleError
+)
+
+@set THT=ugrep
+@echo.
+@echo ==== %THT% =========================================================================
+echo Looking for "ICU" in '%ICU_SAMPLESDIR%\ugrep\readme.txt' with ugrep.exe
+%SAMPLE_UGREP% ICU %ICU_SAMPLESDIR%\ugrep\readme.txt
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=uresb
+@echo.
+@echo ==== %THT% =========================================================================
+pushd %ICU_SAMPLESDIR%\uresb
+%SAMPLE_URESB% en
+%SAMPLE_URESB% root
+%SAMPLE_URESB% sr
+popd
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=ustring
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_USTRING%
+if ERRORLEVEL 1 goto :SampleError
+
+
+
+rem All done
+goto :QuitWithNoError
+
+:SampleError
+ echo.
+ echo ERROR: Sample program %THT% did not exit cleanly. Stopping execution.
+ echo.
+ goto :QuitWithError
+
+:QuitWithNoError
+ echo.
+ popd
+ exit /b 0
+
+:QuitWithError
+ echo.
+ popd
+ rem Exit with non-zero error code.
+ exit /b 1
diff --git a/Build/source/libs/icu/icu-src/source/samples/date/date.c b/Build/source/libs/icu/icu-src/source/samples/date/date.c
index 156a34178bd..400fe2c9055 100644
--- a/Build/source/libs/icu/icu-src/source/samples/date/date.c
+++ b/Build/source/libs/icu/icu-src/source/samples/date/date.c
@@ -48,8 +48,8 @@ int main(int argc, char **argv)
/* Protos */
static void usage(void);
static void version(void);
-static void date(UDate when, const UChar *tz, UDateFormatStyle style, const char *format, UErrorCode *status);
-static UDate getWhen(const char *millis, const char *seconds, const char *format, UDateFormatStyle style, const char *parse, const UChar *tz, UErrorCode *status);
+static void date(UDate when, const UChar *tz, UDateFormatStyle style, const char *format, const char *locale, UErrorCode *status);
+static UDate getWhen(const char *millis, const char *seconds, const char *format, const char *locale, UDateFormatStyle style, const char *parse, const UChar *tz, UErrorCode *status);
UConverter *cnv = NULL;
@@ -74,6 +74,7 @@ main(int argc,
UDateFormatStyle style = UDAT_DEFAULT;
UErrorCode status = U_ZERO_ERROR;
const char *format = NULL;
+ const char *locale = NULL;
char *parse = NULL;
char *seconds = NULL;
char *millis = NULL;
@@ -132,6 +133,12 @@ main(int argc,
parse = argv[optInd];
}
}
+ else if (strcmp(arg, "-L") == 0) {
+ if (optInd + 1 < argc) {
+ optInd++;
+ locale = argv[optInd];
+ }
+ }
/* POSIX.1 says all arguments after -- are not options */
else if(strcmp(arg, "--") == 0) {
/* skip the -- */
@@ -162,13 +169,13 @@ main(int argc,
}
/* get the 'when' (or now) */
- when = getWhen(millis, seconds, format, style, parse, tz, &status);
+ when = getWhen(millis, seconds, format, locale, style, parse, tz, &status);
if(parse != NULL) {
format = FORMAT_MILLIS; /* output in millis */
}
/* print the date */
- date(when, tz, style, format, &status);
+ date(when, tz, style, format, locale, &status);
ucnv_close(cnv);
@@ -194,6 +201,7 @@ usage()
puts(" -r <seconds> Use <seconds> as the time (Epoch 1970) rather than now.");
puts(" -R <millis> Use <millis> as the time (Epoch 1970) rather than now.");
puts(" -P <string> Parse <string> as the time, output in millis format.");
+ puts(" -L <string> Use the locale <string> instead of the default ICU locale.");
}
/* Version information */
@@ -245,6 +253,7 @@ date(UDate when,
const UChar *tz,
UDateFormatStyle style,
const char *format,
+ const char *locale,
UErrorCode *status )
{
UChar *s = 0;
@@ -264,7 +273,7 @@ date(UDate when,
}
}
- fmt = udat_open(style, style, 0, tz, -1,NULL,0, status);
+ fmt = udat_open(style, style, locale, tz, -1,NULL,0, status);
if ( format != NULL ) {
charsToUCharsDefault(uFormat,sizeof(uFormat)/sizeof(uFormat[0]),format,-1,status);
udat_applyPattern(fmt,FALSE,uFormat,-1);
@@ -292,7 +301,7 @@ date(UDate when,
free(s);
}
-static UDate getWhen(const char *millis, const char *seconds, const char *format,
+static UDate getWhen(const char *millis, const char *seconds, const char *format, const char *locale,
UDateFormatStyle style, const char *parse, const UChar *tz, UErrorCode *status) {
UDateFormat *fmt = NULL;
UChar uFormat[100];
@@ -319,7 +328,7 @@ static UDate getWhen(const char *millis, const char *seconds, const char *format
}
}
- fmt = udat_open(style, style, 0, tz, -1,NULL,0, status);
+ fmt = udat_open(style, style, locale, tz, -1,NULL,0, status);
if ( format != NULL ) {
charsToUCharsDefault(uFormat,sizeof(uFormat)/sizeof(uFormat[0]), format,-1,status);
udat_applyPattern(fmt,FALSE,uFormat,-1);
diff --git a/Build/source/libs/icu/icu-src/source/stubdata/stubdata.vcxproj b/Build/source/libs/icu/icu-src/source/stubdata/stubdata.vcxproj
index 971d512bda2..9af0c4c8182 100644
--- a/Build/source/libs/icu/icu-src/source/stubdata/stubdata.vcxproj
+++ b/Build/source/libs/icu/icu-src/source/stubdata/stubdata.vcxproj
@@ -2,7 +2,8 @@
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- The following import will include the 'default' configuration options for VS projects. -->
<Import Project="..\allinone\Build.Windows.ProjectConfiguration.props" />
-
+ <!-- The following import will include the library configuration options for VS projects. -->
+ <Import Project="..\allinone\Build.Windows.Library.ProjectConfiguration.props" />
<PropertyGroup Label="Globals">
<ProjectGuid>{203EC78A-0531-43F0-A636-285439BDE025}</ProjectGuid>
</PropertyGroup>
@@ -97,7 +98,7 @@
<ProgramDataBaseFileName>.\x86\Release/</ProgramDataBaseFileName>
</ClCompile>
<Link>
- <OutputFile>..\..\bin\icudt61.dll</OutputFile>
+ <OutputFile>..\..\bin\icudt63.dll</OutputFile>
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
<ProgramDatabaseFile>.\x86\Release\icudt.pdb</ProgramDatabaseFile>
<DataExecutionPrevention>
@@ -116,7 +117,7 @@
<ProgramDataBaseFileName>.\x86\Debug/</ProgramDataBaseFileName>
</ClCompile>
<Link>
- <OutputFile>..\..\bin\icudt61.dll</OutputFile>
+ <OutputFile>..\..\bin\icudt63.dll</OutputFile>
<ProgramDatabaseFile>.\x86\Debug/icudt.pdb</ProgramDatabaseFile>
<DataExecutionPrevention>
</DataExecutionPrevention>
@@ -136,7 +137,7 @@
<ProgramDataBaseFileName>.\x64\Release/</ProgramDataBaseFileName>
</ClCompile>
<Link>
- <OutputFile>..\..\bin64\icudt61.dll</OutputFile>
+ <OutputFile>..\..\bin64\icudt63.dll</OutputFile>
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
<ProgramDatabaseFile>.\x64\Release\icudt.pdb</ProgramDatabaseFile>
<ImportLibrary>..\..\lib64\icudt.lib</ImportLibrary>
@@ -153,7 +154,7 @@
<ProgramDataBaseFileName>.\x64\Debug/</ProgramDataBaseFileName>
</ClCompile>
<Link>
- <OutputFile>..\..\bin64\icudt61.dll</OutputFile>
+ <OutputFile>..\..\bin64\icudt63.dll</OutputFile>
<ProgramDatabaseFile>.\x64\Debug/icudt.pdb</ProgramDatabaseFile>
<ImportLibrary>..\..\lib64\icudt.lib</ImportLibrary>
</Link>
@@ -169,4 +170,4 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
-</Project> \ No newline at end of file
+</Project>
diff --git a/Build/source/libs/icu/icu-src/source/test/Makefile.in b/Build/source/libs/icu/icu-src/source/test/Makefile.in
index 7ce92770394..7bb5b222829 100644
--- a/Build/source/libs/icu/icu-src/source/test/Makefile.in
+++ b/Build/source/libs/icu/icu-src/source/test/Makefile.in
@@ -88,7 +88,7 @@ xcheck-recursive check-recursive check-exhaustive-recursive:
@$(MKINSTALLDIRS) $(STATUS_TMP)
@mystatus=$(STATUS_FULL)/status.$$$$.deleteme ; \
$(RMV) "$$mystatus".* ; \
- @goods=; \
+ goods=; \
bads=; \
target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
@@ -137,8 +137,8 @@ $(STATUS_FULL)/status.$(STATUS_NUM).deleteme.%: pcheck_setup
# print out status
pcheck: $(STATUS_FILES)
- @goods= ; \
- bads= ; \
+ @goods=; \
+ bads=; \
echo "----------------------------------------"; \
for subdir in $(SUBDIRS); do \
if [ -s "$(MYSTATUS_R).$$subdir" ]; then \
diff --git a/Build/source/libs/icu/icu-src/source/test/cintltst/Makefile.in b/Build/source/libs/icu/icu-src/source/test/cintltst/Makefile.in
index f60bb66db83..208fb787321 100644
--- a/Build/source/libs/icu/icu-src/source/test/cintltst/Makefile.in
+++ b/Build/source/libs/icu/icu-src/source/test/cintltst/Makefile.in
@@ -48,13 +48,14 @@ cnmdptst.o cnormtst.o cnumtst.o crelativedateformattest.o crestst.o creststn.o c
cucdapi.o cucdtst.o custrtst.o cstrcase.o cutiltst.o nucnvtst.o nccbtst.o bocu1tst.o \
cbiditst.o cbididat.o eurocreg.o udatatst.o utf16tst.o utransts.o \
ncnvfbts.o ncnvtst.o putiltst.o cstrtest.o udatpg_test.o utf8tst.o \
-stdnmtst.o usrchtst.o custrtrn.o sorttest.o trietest.o trie2test.o usettest.o \
+stdnmtst.o usrchtst.o custrtrn.o sorttest.o trietest.o trie2test.o ucptrietest.o usettest.o \
uenumtst.o utmstest.o currtest.o \
idnatest.o nfsprep.o spreptst.o sprpdata.o \
hpmufn.o tracetst.o reapits.o uregiontest.o ulistfmttest.o\
utexttst.o ucsdetst.o spooftest.o \
cbiditransformtst.o \
-cgendtst.o
+cgendtst.o \
+unumberformattertst.o
DEPS = $(OBJECTS:.o=.d)
diff --git a/Build/source/libs/icu/icu-src/source/test/cintltst/callcoll.c b/Build/source/libs/icu/icu-src/source/test/cintltst/callcoll.c
index 191f0650e9a..1c307d3e855 100644
--- a/Build/source/libs/icu/icu-src/source/test/cintltst/callcoll.c
+++ b/Build/source/libs/icu/icu-src/source/test/cintltst/callcoll.c
@@ -93,6 +93,8 @@ static void TestFCDCrash(void);
static void TestJ5298(void);
+static void TestBadKey(void);
+
const UCollationResult results[] = {
UCOL_LESS,
UCOL_LESS, /*UCOL_GREATER,*/
@@ -210,6 +212,7 @@ void addAllCollTest(TestNode** root)
addTest(root, &TestJitterbug1098, "tscoll/callcoll/TestJitterbug1098");
addTest(root, &TestFCDCrash, "tscoll/callcoll/TestFCDCrash");
addTest(root, &TestJ5298, "tscoll/callcoll/TestJ5298");
+ addTest(root, &TestBadKey, "tscoll/callcoll/TestBadKey");
}
UBool hasCollationElements(const char *locName) {
@@ -413,7 +416,7 @@ static void doTestVariant(UCollator* myCollation, const UChar source[], const UC
ucol_getSortKey(myCollation, target, -1, sortKey2a, sortklen2+1);
/* Check that sort key generated with null terminated string is identical */
- /* to that generted with a length specified. */
+ /* to that generated with a length specified. */
if (uprv_strcmp((const char *)sortKey1, (const char *)sortKey1a) != 0 ||
uprv_strcmp((const char *)sortKey2, (const char *)sortKey2a) != 0 ) {
log_err("Sort Keys from null terminated and explicit length strings differ.\n");
@@ -421,8 +424,8 @@ static void doTestVariant(UCollator* myCollation, const UChar source[], const UC
/*memcmp(sortKey1, sortKey2,sortklenmax);*/
temp= uprv_strcmp((const char *)sortKey1, (const char *)sortKey2);
- gSortklen1 = uprv_strlen((const char *)sortKey1)+1;
- gSortklen2 = uprv_strlen((const char *)sortKey2)+1;
+ gSortklen1 = (int)uprv_strlen((const char *)sortKey1)+1;
+ gSortklen2 = (int)uprv_strlen((const char *)sortKey2)+1;
if(sortklen1 != gSortklen1){
log_err("SortKey length does not match Expected: %i Got: %i\n",sortklen1, gSortklen1);
log_verbose("Generated sortkey: %s\n", sortKeyToString(myCollation, sortKey1, buffer, &len));
@@ -742,7 +745,7 @@ static void TestTertiary()
UErrorCode status=U_ZERO_ERROR;
static const char str[]="& C < ch, cH, Ch, CH & Five, 5 & Four, 4 & one, 1 & Ampersand; '&' & Two, 2 ";
UChar rules[sizeof(str)];
- len = strlen(str);
+ len = (int32_t)strlen(str);
u_uastrcpy(rules, str);
myCollation=ucol_openRules(rules, len, UCOL_OFF, UCOL_DEFAULT_STRENGTH, NULL, &status);
@@ -767,7 +770,7 @@ static void TestPrimary( )
UErrorCode status=U_ZERO_ERROR;
static const char str[]="& C < ch, cH, Ch, CH & Five, 5 & Four, 4 & one, 1 & Ampersand; '&' & Two, 2 ";
UChar rules[sizeof(str)];
- len = strlen(str);
+ len = (int32_t)strlen(str);
u_uastrcpy(rules, str);
myCollation=ucol_openRules(rules, len, UCOL_OFF, UCOL_DEFAULT_STRENGTH,NULL, &status);
@@ -794,7 +797,7 @@ static void TestSecondary()
UErrorCode status=U_ZERO_ERROR;
static const char str[]="& C < ch, cH, Ch, CH & Five, 5 & Four, 4 & one, 1 & Ampersand; '&' & Two, 2 ";
UChar rules[sizeof(str)];
- len = strlen(str);
+ len = (int32_t)strlen(str);
u_uastrcpy(rules, str);
myCollation=ucol_openRules(rules, len, UCOL_OFF, UCOL_DEFAULT_STRENGTH,NULL, &status);
@@ -819,7 +822,7 @@ static void TestIdentical()
UErrorCode status=U_ZERO_ERROR;
static const char str[]="& C < ch, cH, Ch, CH & Five, 5 & Four, 4 & one, 1 & Ampersand; '&' & Two, 2 ";
UChar rules[sizeof(str)];
- len = strlen(str);
+ len = (int32_t)strlen(str);
u_uastrcpy(rules, str);
myCollation=ucol_openRules(rules, len, UCOL_OFF, UCOL_IDENTICAL, NULL,&status);
@@ -843,7 +846,7 @@ static void TestExtra()
UErrorCode status = U_ZERO_ERROR;
static const char str[]="& C < ch, cH, Ch, CH & Five, 5 & Four, 4 & one, 1 & Ampersand; '&' & Two, 2 ";
UChar rules[sizeof(str)];
- len = strlen(str);
+ len = (int32_t)strlen(str);
u_uastrcpy(rules, str);
myCollation=ucol_openRules(rules, len, UCOL_OFF, UCOL_DEFAULT_STRENGTH,NULL, &status);
@@ -1099,7 +1102,7 @@ static void TestSurrogates(void)
{
static const char str[] =
"&z<'\\uD800\\uDC00'<'\\uD800\\uDC0A\\u0308'<A";
- int len = strlen(str);
+ int len = (int)strlen(str);
int rlen = 0;
UChar rules[sizeof(str)];
UCollator *myCollation;
@@ -1343,4 +1346,36 @@ static void TestJ5298(void)
uenum_close(values);
log_verbose("\n");
}
+
+static const char* badKeyLocales[] = {
+ "@calendar=japanese;collation=search", // ucol_open OK
+ "@calendar=japanese", // ucol_open OK
+ "en@calendar=x", // ucol_open OK
+ "ja@calendar=x", // ucol_open OK
+ "en@collation=x", // ucol_open OK
+ "ja@collation=x", // ucol_open OK
+ "ja@collation=private-kana", // ucol_open fails, verify it does not crash
+ "en@collation=\x80", // (x80 undef in ASCII,EBCDIC) ucol_open fails, verify it does not crash
+ NULL
+};
+
+// Mainly this is to check that we don't have a crash, but we check
+// for correct NULL return and FAILURE/SUCCESS status as a bonus.
+static void TestBadKey(void)
+{
+ const char* badLoc;
+ const char** badLocsPtr = badKeyLocales;
+ while ((badLoc = *badLocsPtr++) != NULL) {
+ UErrorCode status = U_ZERO_ERROR;
+ UCollator* uc = ucol_open(badLoc, &status);
+ if ( U_SUCCESS(status) ) {
+ if (uc == NULL) {
+ log_err("ucol_open sets SUCCESS but returns NULL, locale: %s\n", badLoc);
+ }
+ ucol_close(uc);
+ } else if (uc != NULL) {
+ log_err("ucol_open sets FAILURE but returns non-NULL, locale: %s\n", badLoc);
+ }
+ }
+}
#endif /* #if !UCONFIG_NO_COLLATION */
diff --git a/Build/source/libs/icu/icu-src/source/test/cintltst/calltest.c b/Build/source/libs/icu/icu-src/source/test/cintltst/calltest.c
index 6c5af0614c1..96ea400a4ec 100644
--- a/Build/source/libs/icu/icu-src/source/test/cintltst/calltest.c
+++ b/Build/source/libs/icu/icu-src/source/test/cintltst/calltest.c
@@ -45,6 +45,7 @@ void addUSpoofTest(TestNode** root);
#if !UCONFIG_NO_FORMATTING
void addGendInfoForTest(TestNode** root);
#endif
+void addUNumberFormatterTest(TestNode** root);
void addAllTests(TestNode** root)
{
@@ -88,5 +89,6 @@ void addAllTests(TestNode** root)
addPUtilTest(root);
#if !UCONFIG_NO_FORMATTING
addGendInfoForTest(root);
+ addUNumberFormatterTest(root);
#endif
}
diff --git a/Build/source/libs/icu/icu-src/source/test/cintltst/cbiapts.c b/Build/source/libs/icu/icu-src/source/test/cintltst/cbiapts.c
index 9f68f0b7f7e..92e6c1af4fd 100644
--- a/Build/source/libs/icu/icu-src/source/test/cintltst/cbiapts.c
+++ b/Build/source/libs/icu/icu-src/source/test/cintltst/cbiapts.c
@@ -308,14 +308,14 @@ static void TestBreakIteratorCAPI()
log_verbose("\nTesting the functions for sentence\n");
- ubrk_first(sentence);
+ pos = ubrk_first(sentence);
pos = ubrk_current(sentence);
log_verbose("Current(sentence) = %d\n", (int32_t)pos);
pos = ubrk_last(sentence);
if(pos!=49)
log_err("error ubrk_last for sentence did not return 49\n");
log_verbose("Last (sentence) = %d\n", (int32_t)pos);
- ubrk_first(sentence);
+ pos = ubrk_first(sentence);
to = ubrk_following( sentence, 0 );
if (to == 0) log_err("ubrk_following returned 0\n");
to = ubrk_preceding( sentence, to );
@@ -784,15 +784,18 @@ static const int32_t heTestOffs_heFwd[] = { 1, 5, 7, 9, 12, 14, 19,
/*static const int32_t heTestOffs_enRev[] = { 22, 19, 17, 14, 12, 9, 7, 5, 1, 0 };*/
static const int32_t heTestOffs_heRev[] = { 19, 14, 12, 9, 7, 5, 1, 0 };
-/* Finnish line break tailoring, for cldrbug 3029 */
+/* Finnish line break tailoring, for cldrbug 3029.
+ * As of ICU 63, Finnish tailoring moved to root, Finnish and English should be the same. */
static const UChar fiTest[] = { /* 00 */ 0x0020, 0x002D, 0x0031, 0x0032, 0x0020,
/* 05 */ 0x0061, 0x002D, 0x006B, 0x0020,
/* 09 */ 0x0061, 0x0300, 0x2010, 0x006B, 0x0020,
/* 14 */ 0x0061, 0x0020, 0x002D, 0x006B, 0x0020,
/* 19 */ 0x0061, 0x0300, 0x0020, 0x2010, 0x006B, 0x0020, 0 };
-static const int32_t fiTestOffs_enFwd[] = { 1, 5, 7, 9, 12, 14, 16, 17, 19, 22, 23, 25 };
+//static const int32_t fiTestOffs_enFwd[] = { 1, 5, 7, 9, 12, 14, 16, 17, 19, 22, 23, 25 };
+static const int32_t fiTestOffs_enFwd[] = { 1, 5, 7, 9, 12, 14, 16, 19, 22, 25 };
static const int32_t fiTestOffs_fiFwd[] = { 1, 5, 7, 9, 12, 14, 16, 19, 22, 25 };
-static const int32_t fiTestOffs_enRev[] = { 23, 22, 19, 17, 16, 14, 12, 9, 7, 5, 1, 0 };
+//static const int32_t fiTestOffs_enRev[] = { 23, 22, 19, 17, 16, 14, 12, 9, 7, 5, 1, 0 };
+static const int32_t fiTestOffs_enRev[] = { 22, 19, 16, 14, 12, 9, 7, 5, 1, 0 };
static const int32_t fiTestOffs_fiRev[] = { 22, 19, 16, 14, 12, 9, 7, 5, 1, 0 };
/* Khmer dictionary-based work break, for ICU ticket #8329 */
diff --git a/Build/source/libs/icu/icu-src/source/test/cintltst/cbiditst.c b/Build/source/libs/icu/icu-src/source/test/cintltst/cbiditst.c
index a902da7a493..2dce7fd226f 100644
--- a/Build/source/libs/icu/icu-src/source/test/cintltst/cbiditst.c
+++ b/Build/source/libs/icu/icu-src/source/test/cintltst/cbiditst.c
@@ -259,6 +259,9 @@ static void buildPseudoTables(void)
- A-F == Arabic Letters 0631-0636
- G-V == Hebrew letters 05d7-05e6
- W-Z == Unassigned RTL 08d0-08d3
+ Unicode 6.1 changes U+08A0..U+08FF from R to AL which works ok.
+ Unicode 11 adds U+08D3 ARABIC SMALL LOW WAW which has bc=NSM
+ so we stop using Z in this test.
- 0-5 == western digits 0030-0035
- 6-9 == Arabic-Indic digits 0666-0669
- ` == Combining Grave Accent 0300 (NSM)
@@ -656,7 +659,7 @@ testReorder(void) {
"day 4 I DPIQNF dayabbr",
"day 5 M DPMEG dayabbr",
"helloDPMEG",
- "hello WXYZ"
+ "hello WXY"
};
static const char* const visualOrder[]={
"del(CK)add(&.C.K)",
@@ -670,7 +673,7 @@ testReorder(void) {
"day 4 FNQIPD I dayabbr",
"day 5 GEMPD M dayabbr",
"helloGEMPD",
- "hello ZYXW"
+ "hello YXW"
};
static const char* const visualOrder1[]={
")K.C.&(dda)KC(led",
@@ -684,7 +687,7 @@ testReorder(void) {
"rbbayad I DPIQNF 4 yad",
"rbbayad M DPMEG 5 yad",
"DPMEGolleh",
- "WXYZ olleh"
+ "WXY olleh"
};
static const char* const visualOrder2[]={
@@ -699,7 +702,7 @@ testReorder(void) {
"rbbayad @I DPIQNF@ 4 yad",
"rbbayad @M DPMEG@ 5 yad",
"DPMEGolleh",
- "WXYZ@ olleh"
+ "WXY@ olleh"
};
static const char* const visualOrder3[]={
")K.C.&(KC)dda(led",
@@ -713,7 +716,7 @@ testReorder(void) {
"rbbayad DPIQNF I 4 yad",
"rbbayad DPMEG M 5 yad",
"DPMEGolleh",
- "WXYZ olleh"
+ "WXY olleh"
};
static const char* const visualOrder4[]={
"del(add(CK(.C.K)",
@@ -727,7 +730,7 @@ testReorder(void) {
"day 4 I FNQIPD dayabbr",
"day 5 M GEMPD dayabbr",
"helloGEMPD",
- "hello ZYXW"
+ "hello YXW"
};
char formatChars[MAXLEN];
UErrorCode ec = U_ZERO_ERROR;
diff --git a/Build/source/libs/icu/icu-src/source/test/cintltst/ccaltst.c b/Build/source/libs/icu/icu-src/source/test/cintltst/ccaltst.c
index 205e9fbda44..c71c4da1433 100644
--- a/Build/source/libs/icu/icu-src/source/test/cintltst/ccaltst.c
+++ b/Build/source/libs/icu/icu-src/source/test/cintltst/ccaltst.c
@@ -1965,7 +1965,7 @@ void TestAmbiguousWallTime() {
UDate t, expected;
u_uastrcpy(tzID, "America/New_York");
- ucal = ucal_open(tzID, -1, NULL, UCAL_DEFAULT, &status);
+ ucal = ucal_open(tzID, -1, "en_US", UCAL_DEFAULT, &status);
if (U_FAILURE(status)) {
log_err("FAIL: Failed to create a calendar");
return;
diff --git a/Build/source/libs/icu/icu-src/source/test/cintltst/cintltst.c b/Build/source/libs/icu/icu-src/source/test/cintltst/cintltst.c
index 40a0b946721..aaa187f6bdb 100644
--- a/Build/source/libs/icu/icu-src/source/test/cintltst/cintltst.c
+++ b/Build/source/libs/icu/icu-src/source/test/cintltst/cintltst.c
@@ -709,4 +709,38 @@ U_CFUNC UBool assertEquals(const char* message, const char* expected,
return TRUE;
}
+U_CFUNC UBool assertUEquals(const char* message, const UChar* expected,
+ const UChar* actual) {
+ for (int32_t i=0;; i++) {
+ if (expected[i] != actual[i]) {
+ log_err("FAIL: %s; got \"%s\"; expected \"%s\"\n",
+ message, austrdup(actual), austrdup(expected));
+ return FALSE;
+ }
+ UChar curr = expected[i];
+ U_ASSERT(curr == actual[i]);
+ if (curr == 0) {
+ break;
+ }
+ }
+#ifdef VERBOSE_ASSERTIONS
+ log_verbose("Ok: %s; got \"%s\"\n", message, austrdup(actual));
+#endif
+ return TRUE;
+}
+
+U_CFUNC UBool assertIntEquals(const char* message, int64_t expected, int64_t actual) {
+ if (expected != actual) {
+ log_err("FAIL: %s; got \"%d\"; expected \"%d\"\n",
+ message, actual, expected);
+ return FALSE;
+ }
+#ifdef VERBOSE_ASSERTIONS
+ else {
+ log_verbose("Ok: %s; got \"%d\"\n", message, actual);
+ }
+#endif
+ return TRUE;
+}
+
#endif
diff --git a/Build/source/libs/icu/icu-src/source/test/cintltst/cintltst.h b/Build/source/libs/icu/icu-src/source/test/cintltst/cintltst.h
index d038f36308e..edb60eb58e8 100644
--- a/Build/source/libs/icu/icu-src/source/test/cintltst/cintltst.h
+++ b/Build/source/libs/icu/icu-src/source/test/cintltst/cintltst.h
@@ -135,6 +135,18 @@ U_CFUNC UBool assertTrue(const char* msg, int condition);
U_CFUNC UBool assertEquals(const char* msg, const char* expectedString,
const char* actualString);
+/**
+ * Assert that the actualString equals the expectedString, and return
+ * TRUE if it does.
+ */
+U_CFUNC UBool assertUEquals(const char* msg, const UChar* expectedString,
+ const UChar* actualString);
+
+/**
+ * Assert that two 64-bit integers are equal, returning TRUE if they do.
+ */
+U_CFUNC UBool assertIntEquals(const char* msg, int64_t expected, int64_t actual);
+
/*
* note - isICUVersionBefore and isICUVersionAtLeast have been removed.
* use log_knownIssue() instead.
diff --git a/Build/source/libs/icu/icu-src/source/test/cintltst/cintltst.vcxproj b/Build/source/libs/icu/icu-src/source/test/cintltst/cintltst.vcxproj
index f64f9d20048..6388eb84785 100644
--- a/Build/source/libs/icu/icu-src/source/test/cintltst/cintltst.vcxproj
+++ b/Build/source/libs/icu/icu-src/source/test/cintltst/cintltst.vcxproj
@@ -182,6 +182,7 @@
<ClCompile Include="sorttest.c" />
<ClCompile Include="trie2test.c" />
<ClCompile Include="trietest.c" />
+ <ClCompile Include="ucptrietest.c" />
<ClCompile Include="uenumtst.c" />
<ClCompile Include="bocu1tst.c" />
<ClCompile Include="ccapitst.c" />
@@ -242,6 +243,7 @@
<ClCompile Include="spooftest.c" />
<ClCompile Include="uregiontest.c" />
<ClCompile Include="ulistfmttest.c" />
+ <ClCompile Include="unumberformattertst.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="cbiditst.h" />
@@ -283,4 +285,4 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
-</Project> \ No newline at end of file
+</Project>
diff --git a/Build/source/libs/icu/icu-src/source/test/cintltst/cintltst.vcxproj.filters b/Build/source/libs/icu/icu-src/source/test/cintltst/cintltst.vcxproj.filters
index e51a98f964f..ff185c66e6a 100644
--- a/Build/source/libs/icu/icu-src/source/test/cintltst/cintltst.vcxproj.filters
+++ b/Build/source/libs/icu/icu-src/source/test/cintltst/cintltst.vcxproj.filters
@@ -123,6 +123,9 @@
<ClCompile Include="trietest.c">
<Filter>collections</Filter>
</ClCompile>
+ <ClCompile Include="ucptrietest.c">
+ <Filter>collections</Filter>
+ </ClCompile>
<ClCompile Include="uenumtst.c">
<Filter>collections</Filter>
</ClCompile>
@@ -216,6 +219,9 @@
<ClCompile Include="ulistfmttest.c">
<Filter>formatting</Filter>
</ClCompile>
+ <ClInclude Include="unumberformattertst.c">
+ <Filter>formatting</Filter>
+ </ClInclude>
<ClCompile Include="cldrtest.c">
<Filter>locales &amp; resources</Filter>
</ClCompile>
@@ -414,4 +420,4 @@
<Filter>sprep &amp; idna</Filter>
</ClInclude>
</ItemGroup>
-</Project> \ No newline at end of file
+</Project>
diff --git a/Build/source/libs/icu/icu-src/source/test/cintltst/cldrtest.c b/Build/source/libs/icu/icu-src/source/test/cintltst/cldrtest.c
index 68f339c80e3..a544de96958 100644
--- a/Build/source/libs/icu/icu-src/source/test/cintltst/cldrtest.c
+++ b/Build/source/libs/icu/icu-src/source/test/cintltst/cldrtest.c
@@ -484,7 +484,7 @@ testLCID(UResourceBundle *currentBundle,
log_verbose("WARNING: %-5s resolves to %s (0x%.4x)\n",
localeName, lcidStringC, expectedLCID);
}
- else {
+ else if (!(strcmp(localeName, "ku") == 0 && log_knownIssue("20181", "ICU-20181 Fix LCID mapping for ckb vs ku"))) {
log_err("ERROR: %-5s has 0x%.4x and the number resolves wrongfully to %s\n",
localeName, expectedLCID, lcidStringC);
}
diff --git a/Build/source/libs/icu/icu-src/source/test/cintltst/cloctst.c b/Build/source/libs/icu/icu-src/source/test/cintltst/cloctst.c
index 0c9ce42f5d0..63e7269aa48 100644
--- a/Build/source/libs/icu/icu-src/source/test/cintltst/cloctst.c
+++ b/Build/source/libs/icu/icu-src/source/test/cintltst/cloctst.c
@@ -226,6 +226,7 @@ void addLocaleTest(TestNode** root)
TESTCASE(TestKeywordVariants);
TESTCASE(TestKeywordVariantParsing);
TESTCASE(TestCanonicalization);
+ TESTCASE(TestCanonicalizationBuffer);
TESTCASE(TestKeywordSet);
TESTCASE(TestKeywordSetError);
TESTCASE(TestDisplayKeywords);
@@ -251,6 +252,8 @@ void addLocaleTest(TestNode** root)
TESTCASE(TestLikelySubtags);
TESTCASE(TestToLanguageTag);
TESTCASE(TestForLanguageTag);
+ TESTCASE(TestInvalidLanguageTag);
+ TESTCASE(TestLangAndRegionCanonicalize);
TESTCASE(TestTrailingNull);
TESTCASE(TestUnicodeDefines);
TESTCASE(TestEnglishExemplarCharacters);
@@ -2250,6 +2253,42 @@ static void TestCanonicalization(void)
}
}
+static void TestCanonicalizationBuffer(void)
+{
+ UErrorCode status = U_ZERO_ERROR;
+ char buffer[256];
+
+ // ULOC_FULLNAME_CAPACITY == 157 (uloc.h)
+ static const char name[] =
+ "zh@x"
+ "=foo-bar-baz-foo-bar-baz-foo-bar-baz-foo-bar-baz"
+ "-foo-bar-baz-foo-bar-baz-foo-bar-baz-foo-bar-baz"
+ "-foo-bar-baz-foo-bar-baz-foo-bar-baz-foo-bar-baz"
+ "-foo-barz"
+ ;
+ static const size_t len = sizeof name - 1; // Without NUL terminator.
+
+ int32_t reslen = uloc_canonicalize(name, buffer, len, &status);
+
+ if (U_FAILURE(status)) {
+ log_err("FAIL: uloc_canonicalize(%s) => %s, expected !U_FAILURE()\n",
+ name, u_errorName(status));
+ return;
+ }
+
+ if (reslen != len) {
+ log_err("FAIL: uloc_canonicalize(%s) => \"%i\", expected \"%u\"\n",
+ name, reslen, len);
+ return;
+ }
+
+ if (uprv_strncmp(name, buffer, len) != 0) {
+ log_err("FAIL: uloc_canonicalize(%s) => \"%.*s\", expected \"%s\"\n",
+ name, reslen, buffer, name);
+ return;
+ }
+}
+
static void TestDisplayKeywords(void)
{
int32_t i;
@@ -5998,6 +6037,7 @@ static const struct {
{"art-lojban", "jbo", FULL_LENGTH},
{"zh-hakka", "hak", FULL_LENGTH},
{"zh-cmn-CH", "cmn_CH", FULL_LENGTH},
+ {"zh-cmn-CH-u-co-pinyin", "cmn_CH@collation=pinyin", FULL_LENGTH},
{"xxx-yy", "xxx_YY", FULL_LENGTH},
{"fr-234", "fr_234", FULL_LENGTH},
{"i-default", "en@x=i-default", FULL_LENGTH},
@@ -6030,6 +6070,9 @@ static const struct {
{"ja-u-ijkl-efgh-abcd-ca-japanese-xx-yyy-zzz-kn", "ja@attribute=abcd-efgh-ijkl;calendar=japanese;colnumeric=yes;xx=yyy-zzz", FULL_LENGTH},
{"de-u-xc-xphonebk-co-phonebk-ca-buddhist-mo-very-lo-extensi-xd-that-de-should-vc-probably-xz-killthebuffer",
"de@calendar=buddhist;collation=phonebook;de=should;lo=extensi;mo=very;vc=probably;xc=xphonebk;xd=that;xz=yes", 91},
+ {"de-1901-1901", "de__1901", 7},
+ {"de-DE-1901-1901", "de_DE_1901", 10},
+ {"en-a-bbb-a-ccc", "en@a=bbb", 8},
/* #12761 */
{"en-a-bar-u-baz", "en@a=bar;attribute=baz", FULL_LENGTH},
{"en-a-bar-u-baz-x-u-foo", "en@a=bar;attribute=baz;x=u-foo", FULL_LENGTH},
@@ -6042,7 +6085,25 @@ static const struct {
{"und-Latn-DE-u-em-emoji", "_Latn_DE@em=emoji", FULL_LENGTH},
{"und-Zzzz-DE-u-em-emoji", "_Zzzz_DE@em=emoji", FULL_LENGTH},
{"und-DE-u-em-emoji", "_DE@em=emoji", FULL_LENGTH},
- {NULL, NULL, 0}
+ // #20098
+ {"hant-cmn-cn", "hant", 4},
+ {"zh-cmn-TW", "cmn_TW", FULL_LENGTH},
+ {"zh-x_t-ab", "zh", 2},
+ {"zh-hans-cn-u-ca-x_t-u", "zh_Hans_CN@calendar=yes", 15},
+ /* #20140 dupe keys in U-extension */
+ {"zh-u-ca-chinese-ca-gregory", "zh@calendar=chinese", FULL_LENGTH},
+ {"zh-u-ca-gregory-co-pinyin-ca-chinese", "zh@calendar=gregorian;collation=pinyin", FULL_LENGTH},
+ {"de-latn-DE-1901-u-co-phonebk-co-pinyin-ca-gregory", "de_Latn_DE_1901@calendar=gregorian;collation=phonebook", FULL_LENGTH},
+ {"th-u-kf-nu-thai-kf-false", "th@colcasefirst=yes;numbers=thai", FULL_LENGTH},
+ /* #9562 IANA language tag data update */
+ {"en-gb-oed", "en_GB_OXENDICT", FULL_LENGTH},
+ {"i-navajo", "nv", FULL_LENGTH},
+ {"i-navajo-a-foo", "", 0},
+ {"i-navajo-latn-us", "", 0},
+ {"sgn-br", "bzs", FULL_LENGTH},
+ {"sgn-br-u-co-phonebk", "bzs@collation=phonebook", FULL_LENGTH},
+ {"ja-latn-hepburn-heploc", "ja_Latn__ALALC97", FULL_LENGTH},
+ {"ja-latn-hepburn-heploc-u-ca-japanese", "ja_Latn__ALALC97@calendar=japanese", FULL_LENGTH},
};
static void TestForLanguageTag(void) {
@@ -6052,7 +6113,7 @@ static void TestForLanguageTag(void) {
int32_t parsedLen;
int32_t expParsedLen;
- for (i = 0; langtag_to_locale[i].bcpID != NULL; i++) {
+ for (i = 0; i < UPRV_LENGTHOF(langtag_to_locale); i++) {
status = U_ZERO_ERROR;
locale[0] = 0;
expParsedLen = langtag_to_locale[i].len;
@@ -6076,6 +6137,72 @@ static void TestForLanguageTag(void) {
}
}
+/* See https://unicode-org.atlassian.net/browse/ICU-20149 .
+ * Depending on the resolution of that bug, this test may have
+ * to be revised.
+ */
+static void TestInvalidLanguageTag(void) {
+ static const char* invalid_lang_tags[] = {
+ "zh-u-foo-foo-co-pinyin", /* duplicate attribute in U extension */
+ "zh-cmn-hans-u-foo-foo-co-pinyin", /* duplicate attribute in U extension */
+#if 0
+ /*
+ * These do not lead to an error. Instead, parsing stops at the 1st
+ * invalid subtag.
+ */
+ "de-DE-1901-1901", /* duplicate variant */
+ "en-a-bbb-a-ccc", /* duplicate extension */
+#endif
+ NULL
+ };
+ char locale[256];
+ for (const char** tag = invalid_lang_tags; *tag != NULL; tag++) {
+ UErrorCode status = U_ZERO_ERROR;
+ uloc_forLanguageTag(*tag, locale, sizeof(locale), NULL, &status);
+ if (status != U_ILLEGAL_ARGUMENT_ERROR) {
+ log_err("Error returned by uloc_forLanguageTag for input language tag [%s] : %s - expected error: %s\n",
+ *tag, u_errorName(status), u_errorName(U_ILLEGAL_ARGUMENT_ERROR));
+ }
+ }
+}
+
+static const struct {
+ const char *input;
+ const char *canonical;
+} langtag_to_canonical[] = {
+ {"de-DD", "de-DE"},
+ {"de-DD-u-co-phonebk", "de-DE-u-co-phonebk"},
+ {"jw-id", "jv-ID"},
+ {"jw-id-u-ca-islamic-civil", "jv-ID-u-ca-islamic-civil"},
+ {"mo-md", "ro-MD"},
+ {"my-bu-u-nu-mymr", "my-MM-u-nu-mymr"},
+ {"yuu-ru", "yug-RU"},
+};
+
+
+static void TestLangAndRegionCanonicalize(void) {
+ char locale[256];
+ char canonical[256];
+ int32_t i;
+ UErrorCode status;
+ for (i = 0; i < UPRV_LENGTHOF(langtag_to_canonical); i++) {
+ status = U_ZERO_ERROR;
+ const char* input = langtag_to_canonical[i].input;
+ uloc_forLanguageTag(input, locale, sizeof(locale), NULL, &status);
+ uloc_toLanguageTag(locale, canonical, sizeof(canonical), TRUE, &status);
+ if (U_FAILURE(status)) {
+ log_err_status(status, "Error returned by uloc_forLanguageTag or uloc_toLanguageTag "
+ "for language tag [%s] - error: %s\n", input, u_errorName(status));
+ } else {
+ const char* expected_canonical = langtag_to_canonical[i].canonical;
+ if (uprv_strcmp(expected_canonical, canonical) != 0) {
+ log_data_err("input language tag [%s] is canonicalized to [%s] - expected: [%s]\n",
+ input, canonical, expected_canonical);
+ }
+ }
+ }
+}
+
static void TestToUnicodeLocaleKey(void)
{
/* $IN specifies the result should be the input pointer itself */
diff --git a/Build/source/libs/icu/icu-src/source/test/cintltst/cloctst.h b/Build/source/libs/icu/icu-src/source/test/cintltst/cloctst.h
index b757328f5c0..411ff5c9fe5 100644
--- a/Build/source/libs/icu/icu-src/source/test/cintltst/cloctst.h
+++ b/Build/source/libs/icu/icu-src/source/test/cintltst/cloctst.h
@@ -84,6 +84,7 @@ static void TestDisplayNames(void);
static void doTestDisplayNames(const char* inLocale, int32_t compareIndex);
static void TestCanonicalization(void);
+ static void TestCanonicalizationBuffer(void);
static void TestDisplayKeywords(void);
@@ -123,7 +124,9 @@ static void TestLikelySubtags(void);
* lanuage tag
*/
static void TestForLanguageTag(void);
+static void TestInvalidLanguageTag(void);
static void TestToLanguageTag(void);
+static void TestLangAndRegionCanonicalize(void);
static void TestToUnicodeLocaleKey(void);
static void TestToLegacyKey(void);
diff --git a/Build/source/libs/icu/icu-src/source/test/cintltst/cmsgtst.c b/Build/source/libs/icu/icu-src/source/test/cintltst/cmsgtst.c
index 93ef88f1f39..34b05661fde 100644
--- a/Build/source/libs/icu/icu-src/source/test/cintltst/cmsgtst.c
+++ b/Build/source/libs/icu/icu-src/source/test/cintltst/cmsgtst.c
@@ -375,13 +375,13 @@ static void TestSampleMessageFormat(void)
static void TestNewFormatAndParseAPI(void)
{
- UChar *result, tzID[4], str[25];
+ UChar *result = NULL, tzID[4], str[25];
UChar pattern[100];
UChar expected[100];
int32_t resultLengthOut, resultlength;
UCalendar *cal;
UDate d1,d;
- UDateFormat *def1;
+ UDateFormat *def1 = NULL;
UErrorCode status = U_ZERO_ERROR;
int32_t value = 0;
UChar ret[30];
@@ -398,13 +398,12 @@ static void TestNewFormatAndParseAPI(void)
cal=ucal_open(tzID, u_strlen(tzID), "en_US", UCAL_TRADITIONAL, &status);
if(U_FAILURE(status)){
log_data_err("error in ucal_open caldef : %s - (Are you missing data?)\n", myErrorName(status) );
- return;
+ goto cleanup;
}
ucal_setDateTime(cal, 1999, UCAL_MARCH, 18, 0, 0, 0, &status);
d1=ucal_getMillis(cal, &status);
if(U_FAILURE(status)){
- log_err("Error: failure in get millis: %s\n", myErrorName(status) );
- return;
+ log_err("Error: failure in get millis: %s\n", myErrorName(status) );
}
log_verbose("\nTesting with pattern test#4");
@@ -414,7 +413,7 @@ static void TestNewFormatAndParseAPI(void)
fmt = umsg_open(pattern,u_strlen(pattern),"en_US",&parseError,&status);
if(U_FAILURE(status)){
log_data_err("error in umsg_open : %s (Are you missing data?)\n", u_errorName(status) );
- return;
+ goto cleanup;
}
result=(UChar*)malloc(sizeof(UChar) * resultlength);
@@ -463,6 +462,7 @@ static void TestNewFormatAndParseAPI(void)
austrdup(myDateFormat(def1,d)), austrdup(myDateFormat(def1,d1)) );
}
}
+cleanup:
umsg_close(fmt);
udat_close(def1);
ucal_close(cal);
@@ -483,7 +483,7 @@ static void TestSampleFormatAndParseWithError(void)
int32_t resultLengthOut, resultlength;
UCalendar *cal;
UDate d1,d;
- UDateFormat *def1;
+ UDateFormat *def1 = NULL;
UErrorCode status = U_ZERO_ERROR;
int32_t value = 0;
UChar ret[30];
@@ -523,6 +523,7 @@ static void TestSampleFormatAndParseWithError(void)
}
if(U_FAILURE(status)){
log_data_err("ERROR: failure in message format test#4: %s (Are you missing data?)\n", myErrorName(status));
+ goto cleanup;
}
else if(u_strcmp(result, expected)==0)
log_verbose("PASS: MessagFormat successful on test#4\n");
@@ -557,6 +558,7 @@ static void TestSampleFormatAndParseWithError(void)
austrdup(myDateFormat(def1,d)), austrdup(myDateFormat(def1,d1)) );
}
}
+cleanup:
udat_close(def1);
ucal_close(cal);
@@ -593,11 +595,12 @@ static void TestSampleFormatAndParse(void)
cal=ucal_open(tzID, u_strlen(tzID), "en_US", UCAL_TRADITIONAL, &status);
if(U_FAILURE(status)){
log_data_err("error in ucal_open caldef : %s - (Are you missing data?)\n", myErrorName(status) );
+ return;
}
ucal_setDateTime(cal, 1999, UCAL_MARCH, 18, 0, 0, 0, &status);
d1=ucal_getMillis(cal, &status);
if(U_FAILURE(status)){
- log_data_err("Error: failure in get millis: %s - (Are you missing data?)\n", myErrorName(status) );
+ log_data_err("Error: failure in get millis: %s - (Are you missing data?)\n", myErrorName(status) );
}
log_verbose("\nTesting with pattern test#4");
@@ -616,6 +619,7 @@ static void TestSampleFormatAndParse(void)
}
if(U_FAILURE(status)){
log_data_err("ERROR: failure in message format test#4: %s (Are you missing data?)\n", myErrorName(status));
+ return;
}
else if(u_strcmp(result, expected)==0)
log_verbose("PASS: MessagFormat successful on test#4\n");
diff --git a/Build/source/libs/icu/icu-src/source/test/cintltst/cnmdptst.c b/Build/source/libs/icu/icu-src/source/test/cintltst/cnmdptst.c
index e00da2d8ae8..85ffd6302ca 100644
--- a/Build/source/libs/icu/icu-src/source/test/cintltst/cnmdptst.c
+++ b/Build/source/libs/icu/icu-src/source/test/cintltst/cnmdptst.c
@@ -69,7 +69,7 @@ static void TestPatterns(void)
UChar *str=NULL;
UErrorCode status = U_ZERO_ERROR;
const char* pat[] = { "#.#", "#.", ".#", "#" };
- const char* newpat[] = { "#0.#", "#0.", "#.0", "#" };
+ const char* newpat[] = { "0.#", "0.", "#.0", "0" };
const char* num[] = { "0", "0.", ".0", "0" };
log_verbose("\nTesting different format patterns\n");
@@ -473,9 +473,9 @@ static void TestCurrencyPreEuro(void)
};
const char* result[]={
- "\\u20A7\\u00A02", "2\\u00A0F", "IEP1.50", "1,50\\u00A0mk", "2\\u00A0F", "ITL\\u00A02",
- "1$50\\u00A0\\u200B", "\\u00F6S\\u00A01,50", "1,50\\u00A0\\u0394\\u03C1\\u03C7", "2\\u00A0\\u20A7", "1,50\\u00A0FB", "IEP1.50",
- "1,50\\u00A0BEF", "1,50\\u00A0DM", "1,50\\u00A0BEF", "\\u20A7\\u00A02", "1,50\\u00A0F", "2\\u00A0\\u20A7",
+ "\\u20A7\\u00A02", "2\\u00A0F", "IEP\\u00A01.50", "1,50\\u00A0mk", "2\\u00A0F", "ITL\\u00A02",
+ "1$50\\u00A0\\u200B", "\\u00F6S\\u00A01,50", "1,50\\u00A0\\u0394\\u03C1\\u03C7", "2\\u00A0\\u20A7", "1,50\\u00A0FB", "IEP\\u00A01.50",
+ "BEF\\u00A01,50", "1,50\\u00A0DM", "1,50\\u00A0BEF", "\\u20A7\\u00A02", "1,50\\u00A0F", "2\\u00A0\\u20A7",
"NLG\\u00A01,50"
};
@@ -546,8 +546,8 @@ static void TestCurrencyObject(void)
};
const char* result[]={
- "1\\u00A0234,56\\u00A0\\u20AC",
- "1\\u00A0235\\u00A0JPY",
+ "1\\u202F234,56\\u00A0\\u20AC",
+ "1\\u202F235\\u00A0JPY",
};
log_verbose("\nTesting the number format with different currency codes\n");
@@ -731,17 +731,17 @@ static void TestSecondaryGrouping(void) {
u_uastrcpy(buffer, "12,34,56,789");
if ((u_strcmp(resultBuffer, buffer) != 0) || U_FAILURE(status))
{
- log_err("Fail: Formatting \"#,##,###\" pattern with 123456789 got %s, expected %s\n", resultBuffer, "12,34,56,789");
+ log_err("Fail: Formatting \"#,##,###\" pattern with 123456789 got %s, expected %s\n", austrdup(resultBuffer), "12,34,56,789");
}
if (pos.beginIndex != 0 && pos.endIndex != 12) {
log_err("Fail: Formatting \"#,##,###\" pattern pos = (%d, %d) expected pos = (0, 12)\n", pos.beginIndex, pos.endIndex);
}
memset(resultBuffer,0, sizeof(UChar)*512);
unum_toPattern(f, FALSE, resultBuffer, 512, &status);
- u_uastrcpy(buffer, "#,##,###");
+ u_uastrcpy(buffer, "#,##,##0");
if ((u_strcmp(resultBuffer, buffer) != 0) || U_FAILURE(status))
{
- log_err("Fail: toPattern() got %s, expected %s\n", resultBuffer, "#,##,###");
+ log_err("Fail: toPattern() got %s, expected %s\n", austrdup(resultBuffer), "#,##,##0");
}
memset(resultBuffer,0, sizeof(UChar)*512);
u_uastrcpy(buffer, "#,###");
@@ -755,14 +755,14 @@ static void TestSecondaryGrouping(void) {
u_uastrcpy(buffer, "12,3456,789");
if ((u_strcmp(resultBuffer, buffer) != 0) || U_FAILURE(status))
{
- log_err("Fail: Formatting \"#,###\" pattern with 123456789 got %s, expected %s\n", resultBuffer, "12,3456,789");
+ log_err("Fail: Formatting \"#,###\" pattern with 123456789 got %s, expected %s\n", austrdup(resultBuffer), "12,3456,789");
}
memset(resultBuffer,0, sizeof(UChar)*512);
unum_toPattern(f, FALSE, resultBuffer, 512, &status);
- u_uastrcpy(buffer, "#,####,###");
+ u_uastrcpy(buffer, "#,####,##0");
if ((u_strcmp(resultBuffer, buffer) != 0) || U_FAILURE(status))
{
- log_err("Fail: toPattern() got %s, expected %s\n", resultBuffer, "#,####,###");
+ log_err("Fail: toPattern() got %s, expected %s\n", austrdup(resultBuffer), "#,####,##0");
}
memset(resultBuffer,0, sizeof(UChar)*512);
g = unum_open(UNUM_DECIMAL, NULL,0,"hi_IN",NULL, &status);
diff --git a/Build/source/libs/icu/icu-src/source/test/cintltst/cnormtst.c b/Build/source/libs/icu/icu-src/source/test/cintltst/cnormtst.c
index 18412f71a67..fe7237abc81 100644
--- a/Build/source/libs/icu/icu-src/source/test/cintltst/cnormtst.c
+++ b/Build/source/libs/icu/icu-src/source/test/cintltst/cnormtst.c
@@ -1409,6 +1409,10 @@ TestQuickCheckPerCP() {
}
length=unorm_normalize(s, length, UNORM_NFD, 0, nfd, UPRV_LENGTHOF(nfd), &errorCode);
+ if (U_FAILURE(errorCode)) {
+ log_data_err("%s:%d errorCode=%s\n", __FILE__, __LINE__, u_errorName(errorCode));
+ break;
+ }
/* length-length == 0 is used to get around a compiler warning. */
U16_GET(nfd, 0, length-length, length, lead);
U16_GET(nfd, 0, length-1, length, trail);
diff --git a/Build/source/libs/icu/icu-src/source/test/cintltst/cnumtst.c b/Build/source/libs/icu/icu-src/source/test/cintltst/cnumtst.c
index d11cca78b3e..7090f67dca6 100644
--- a/Build/source/libs/icu/icu-src/source/test/cintltst/cnumtst.c
+++ b/Build/source/libs/icu/icu-src/source/test/cintltst/cnumtst.c
@@ -65,6 +65,7 @@ static void TestVariousStylesAndAttributes(void);
static void TestParseCurrPatternWithDecStyle(void);
static void TestFormatForFields(void);
static void TestRBNFRounding(void);
+static void Test12052_NullPointer(void);
#define TESTCASE(x) addTest(root, &x, "tsformat/cnumtst/" #x)
@@ -97,6 +98,7 @@ void addNumForTest(TestNode** root)
TESTCASE(TestVariousStylesAndAttributes);
TESTCASE(TestParseCurrPatternWithDecStyle);
TESTCASE(TestFormatForFields);
+ TESTCASE(Test12052_NullPointer);
}
/* test Parse int 64 */
@@ -765,7 +767,8 @@ free(result);
newvalue=2;
unum_setAttribute(def, attr, newvalue);
if(unum_getAttribute(def,attr) != 2)
- log_err("error in setting and getting attributes for UNUM_SECONDARY_GROUPING_SIZE\n");
+ log_err("error in setting and getting attributes for UNUM_SECONDARY_GROUPING_SIZE: got %d\n",
+ unum_getAttribute(def,attr));
else
log_verbose("Pass:setting and getting attributes for UNUM_SECONDARY_GROUPING_SIZE works fine\n");
@@ -840,7 +843,8 @@ free(result);
const char *bdpattern = "#,##0.#########";
const char *numInitial = "12345678900987654321.1234567896";
const char *numFormatted = "12,345,678,900,987,654,321.12345679";
- const char *parseExpected = "12345678900987654321.12345679";
+ const char *parseExpected = "1.234567890098765432112345679E+19";
+ const char *parseExpected2 = "3.4567890098765432112345679E+17";
int32_t resultSize = 0;
int32_t parsePos = 0; /* Output parameter for Parse operations. */
#define DESTCAPACITY 100
@@ -898,9 +902,12 @@ free(result);
if (U_FAILURE(status)) {
log_err("File %s, Line %d, status = %s\n", __FILE__, __LINE__, u_errorName(status));
}
- if (strcmp(parseExpected, desta) != 0) {
+ if (uprv_strcmp(parseExpected, desta) != 0) {
log_err("File %s, Line %d, (expected, actual) = (\"%s\", \"%s\")\n",
__FILE__, __LINE__, parseExpected, desta);
+ } else {
+ log_verbose("File %s, Line %d, got expected = \"%s\"\n",
+ __FILE__, __LINE__, desta);
}
if (strlen(parseExpected) != resultSize) {
log_err("File %s, Line %d, (expected, actual) = (%d, %d)\n",
@@ -917,9 +924,12 @@ free(result);
if (U_FAILURE(status)) {
log_err("File %s, Line %d, status = %s\n", __FILE__, __LINE__, u_errorName(status));
}
- if (strcmp(parseExpected+2, desta) != 0) { /* "345678900987654321.12345679" */
+ if (strcmp(parseExpected2, desta) != 0) { /* "3.4567890098765432112345679E+17" */
log_err("File %s, Line %d, (expected, actual) = (\"%s\", \"%s\")\n",
- __FILE__, __LINE__, parseExpected+2, desta);
+ __FILE__, __LINE__, parseExpected2, desta);
+ } else {
+ log_verbose("File %s, Line %d, got expected = \"%s\"\n",
+ __FILE__, __LINE__, desta);
}
if (strlen(numFormatted) != parsePos) {
log_err("File %s, Line %d, parsePos (expected, actual) = (\"%d\", \"%d\")\n",
@@ -1026,29 +1036,29 @@ typedef struct {
} ParseCurrencyItem;
static const ParseCurrencyItem parseCurrencyItems[] = {
- { "en_US", "dollars2", dollars2Sym, NULL, U_ZERO_ERROR, 5, 2.0, U_ZERO_ERROR, 5, 2.0, "USD" },
- { "en_US", "dollars4", dollars4Sym, dollars4PluEn, U_ZERO_ERROR, 2, 4.0, U_ZERO_ERROR, 2, 4.0, "USD" },
- { "en_US", "dollars9", dollars9Sym, NULL, U_PARSE_ERROR, 1, 0.0, U_PARSE_ERROR, 1, 0.0, "" },
- { "en_US", "pounds3", pounds3Sym, NULL, U_PARSE_ERROR, 0, 0.0, U_ZERO_ERROR, 5, 3.0, "GBP" },
- { "en_US", "pounds5", pounds5Sym, pounds5PluEn, U_PARSE_ERROR, 0, 0.0, U_ZERO_ERROR, 2, 5.0, "GBP" },
- { "en_US", "pounds7", pounds7Sym, NULL, U_PARSE_ERROR, 1, 0.0, U_PARSE_ERROR, 1, 0.0, "" },
- { "en_US", "euros8", euros8Sym, euros8PluEn, U_PARSE_ERROR, 0, 0.0, U_ZERO_ERROR, 2, 8.0, "EUR" },
-
- { "en_GB", "pounds3", pounds3Sym, NULL, U_ZERO_ERROR, 5, 3.0, U_ZERO_ERROR, 5, 3.0, "GBP" },
- { "en_GB", "pounds5", pounds5Sym, pounds5PluEn, U_ZERO_ERROR, 2, 5.0, U_ZERO_ERROR, 2, 5.0, "GBP" },
- { "en_GB", "pounds7", pounds7Sym, NULL, U_PARSE_ERROR, 1, 0.0, U_PARSE_ERROR, 1, 0.0, "" },
- { "en_GB", "euros4", euros4Sym, NULL, U_PARSE_ERROR, 4, 0.0, U_PARSE_ERROR, 4, 0.0, "" },
- { "en_GB", "euros6", euros6Sym, NULL, U_PARSE_ERROR, 1, 0.0, U_PARSE_ERROR, 1, 0.0, "" },
- { "en_GB", "euros8", euros8Sym, euros8PluEn, U_PARSE_ERROR, 0, 0.0, U_ZERO_ERROR, 2, 8.0, "EUR" },
- { "en_GB", "dollars4", dollarsUS4Sym, dollars4PluEn, U_PARSE_ERROR, 0, 0.0, U_ZERO_ERROR, 4, 4.0, "USD" },
-
- { "fr_FR", "euros4", euros4Sym, NULL, U_ZERO_ERROR, 6, 4.0, U_ZERO_ERROR, 6, 4.0, "EUR" },
- { "fr_FR", "euros6", euros6Sym, euros6PluFr, U_ZERO_ERROR, 3, 6.0, U_ZERO_ERROR, 3, 6.0, "EUR" },
- { "fr_FR", "euros8", euros8Sym, NULL, U_PARSE_ERROR, 0, 0.0, U_PARSE_ERROR, 0, 0.0, "" },
- { "fr_FR", "dollars2", dollars2Sym, NULL, U_PARSE_ERROR, 0, 0.0, U_PARSE_ERROR, 0, 0.0, "" },
- { "fr_FR", "dollars4", dollars4Sym, NULL, U_PARSE_ERROR, 0, 0.0, U_PARSE_ERROR, 0, 0.0, "" },
+ { "en_US", "dollars2", dollars2Sym, NULL, U_ZERO_ERROR, 5, 2.0, U_ZERO_ERROR, 5, 2.0, "USD" },
+ { "en_US", "dollars4", dollars4Sym, dollars4PluEn, U_ZERO_ERROR, 2, 4.0, U_ZERO_ERROR, 2, 4.0, "USD" },
+ { "en_US", "dollars9", dollars9Sym, NULL, U_PARSE_ERROR, 1, 0.0, U_PARSE_ERROR, 1, 0.0, "" },
+ { "en_US", "pounds3", pounds3Sym, NULL, U_PARSE_ERROR, 0, 0.0, U_ZERO_ERROR, 5, 3.0, "GBP" },
+ { "en_US", "pounds5", pounds5Sym, pounds5PluEn, U_PARSE_ERROR, 0, 0.0, U_ZERO_ERROR, 2, 5.0, "GBP" },
+ { "en_US", "pounds7", pounds7Sym, NULL, U_PARSE_ERROR, 1, 0.0, U_PARSE_ERROR, 1, 0.0, "" },
+ { "en_US", "euros8", euros8Sym, euros8PluEn, U_PARSE_ERROR, 0, 0.0, U_ZERO_ERROR, 2, 8.0, "EUR" },
+
+ { "en_GB", "pounds3", pounds3Sym, NULL, U_ZERO_ERROR, 5, 3.0, U_ZERO_ERROR, 5, 3.0, "GBP" },
+ { "en_GB", "pounds5", pounds5Sym, pounds5PluEn, U_ZERO_ERROR, 2, 5.0, U_ZERO_ERROR, 2, 5.0, "GBP" },
+ { "en_GB", "pounds7", pounds7Sym, NULL, U_PARSE_ERROR, 1, 0.0, U_PARSE_ERROR, 1, 0.0, "" },
+ { "en_GB", "euros4", euros4Sym, NULL, U_PARSE_ERROR, 0, 0.0, U_PARSE_ERROR, 0, 0.0, "" },
+ { "en_GB", "euros6", euros6Sym, NULL, U_PARSE_ERROR, 1, 0.0, U_PARSE_ERROR, 1, 0.0, "" },
+ { "en_GB", "euros8", euros8Sym, euros8PluEn, U_PARSE_ERROR, 0, 0.0, U_ZERO_ERROR, 2, 8.0, "EUR" },
+ { "en_GB", "dollars4", dollarsUS4Sym,dollars4PluEn, U_PARSE_ERROR, 0, 0.0, U_ZERO_ERROR, 4, 4.0, "USD" },
+
+ { "fr_FR", "euros4", euros4Sym, NULL, U_ZERO_ERROR, 6, 4.0, U_ZERO_ERROR, 6, 4.0, "EUR" },
+ { "fr_FR", "euros6", euros6Sym, euros6PluFr, U_ZERO_ERROR, 3, 6.0, U_ZERO_ERROR, 3, 6.0, "EUR" },
+ { "fr_FR", "euros8", euros8Sym, NULL, U_PARSE_ERROR, 2, 0.0, U_PARSE_ERROR, 2, 0.0, "" },
+ { "fr_FR", "dollars2", dollars2Sym, NULL, U_PARSE_ERROR, 0, 0.0, U_PARSE_ERROR, 0, 0.0, "" },
+ { "fr_FR", "dollars4", dollars4Sym, NULL, U_PARSE_ERROR, 0, 0.0, U_PARSE_ERROR, 0, 0.0, "" },
- { NULL, NULL, NULL, NULL, 0, 0, 0.0, 0, 0, 0.0, NULL }
+ { NULL, NULL, NULL, NULL, 0, 0, 0.0, 0, 0, 0.0, NULL }
};
static void TestParseCurrency()
@@ -1066,7 +1076,6 @@ static void TestParseCurrency()
unum = unum_open(UNUM_CURRENCY, NULL, 0, itemPtr->locale, NULL, &status);
if (U_SUCCESS(status)) {
const UChar * currStr = itemPtr->currStr;
- int32_t currExpectPos = itemPtr->parsCurrExpectPos;
status = U_ZERO_ERROR;
parsePos = 0;
parseVal = unum_parseDouble(unum, currStr, -1, &parsePos, &status);
@@ -1081,11 +1090,11 @@ static void TestParseCurrency()
parseCurr[0] = 0;
parseVal = unum_parseDoubleCurrency(unum, currStr, -1, &parsePos, parseCurr, &status);
u_austrncpy(parseCurrB, parseCurr, 4);
- if (status != itemPtr->parsCurrExpectErr || parsePos != currExpectPos || parseVal != itemPtr->parsCurrExpectVal ||
+ if (status != itemPtr->parsCurrExpectErr || parsePos != itemPtr->parsCurrExpectPos || parseVal != itemPtr->parsCurrExpectVal ||
strncmp(parseCurrB, itemPtr->parsCurrExpectCurr, 4) != 0) {
log_err("UNUM_CURRENCY parseDoubleCurrency %s/%s, expect %s pos %d val %.1f cur %s, get %s pos %d val %.1f cur %s\n",
itemPtr->locale, itemPtr->descrip,
- u_errorName(itemPtr->parsCurrExpectErr), currExpectPos, itemPtr->parsCurrExpectVal, itemPtr->parsCurrExpectCurr,
+ u_errorName(itemPtr->parsCurrExpectErr), itemPtr->parsCurrExpectPos, itemPtr->parsCurrExpectVal, itemPtr->parsCurrExpectCurr,
u_errorName(status), parsePos, parseVal, parseCurrB );
}
unum_close(unum);
@@ -1101,7 +1110,7 @@ static void TestParseCurrency()
parsePos = 0;
parseVal = unum_parseDouble(unum, itemPtr->plurStr, -1, &parsePos, &status);
if (status != itemPtr->parsDoubExpectErr || parseVal != itemPtr->parsDoubExpectVal) {
- log_err("UNUM_CURRENCY parseDouble %s/%s, expect %s val %.1f, get %s val %.1f\n",
+ log_err("UNUM_CURRENCY parseDouble Plural %s/%s, expect %s val %.1f, get %s val %.1f\n",
itemPtr->locale, itemPtr->descrip,
u_errorName(itemPtr->parsDoubExpectErr), itemPtr->parsDoubExpectVal,
u_errorName(status), parseVal );
@@ -1113,7 +1122,7 @@ static void TestParseCurrency()
u_austrncpy(parseCurrB, parseCurr, 4);
if (status != itemPtr->parsCurrExpectErr || parseVal != itemPtr->parsCurrExpectVal ||
strncmp(parseCurrB, itemPtr->parsCurrExpectCurr, 4) != 0) {
- log_err("UNUM_CURRENCY parseDoubleCurrency %s/%s, expect %s val %.1f cur %s, get %s val %.1f cur %s\n",
+ log_err("UNUM_CURRENCY parseDoubleCurrency Plural %s/%s, expect %s val %.1f cur %s, get %s val %.1f cur %s\n",
itemPtr->locale, itemPtr->descrip,
u_errorName(itemPtr->parsCurrExpectErr), itemPtr->parsCurrExpectVal, itemPtr->parsCurrExpectCurr,
u_errorName(status), parseVal, parseCurrB );
@@ -1197,7 +1206,7 @@ static void TestSignificantDigits()
double d = 123456.789;
u_uastrcpy(temp, "###0.0#");
- fmt=unum_open(UNUM_IGNORE, temp, -1, NULL, NULL,&status);
+ fmt=unum_open(UNUM_IGNORE, temp, -1, "en", NULL, &status);
if (U_FAILURE(status)) {
log_data_err("got unexpected error for unum_open: '%s'\n", u_errorName(status));
return;
@@ -1238,7 +1247,7 @@ static void TestSigDigRounding()
UNumberFormat* fmt;
double d = 123.4;
- fmt=unum_open(UNUM_DECIMAL, NULL, 0, NULL /* "en_US"*/, NULL, &status);
+ fmt=unum_open(UNUM_DECIMAL, NULL, 0, "en", NULL, &status);
if (U_FAILURE(status)) {
log_data_err("got unexpected error for unum_open: '%s'\n", u_errorName(status));
return;
@@ -1269,6 +1278,7 @@ static void TestNumberFormatPadding()
{
UChar *result=NULL;
UChar temp1[512];
+ UChar temp2[512];
UErrorCode status=U_ZERO_ERROR;
int32_t resultlength;
@@ -1294,7 +1304,8 @@ static void TestNumberFormatPadding()
}
/* u_uastrcpy(temp1, "*x#,###,###,##0.0#;(*x#,###,###,##0.0#)"); */
- u_uastrcpy(temp1, "*x#,###,###,##0.0#;*x(###,###,##0.0#)");
+ u_uastrcpy(temp1, "*x#,###,###,##0.0#;*x(###,###,##0.0#)"); // input pattern
+ u_uastrcpy(temp2, "*x#########,##0.0#;(#########,##0.0#)"); // equivalent (?) output pattern
status=U_ZERO_ERROR;
pattern=unum_open(UNUM_IGNORE,temp1, u_strlen(temp1), "en_US",NULL, &status);
if(U_FAILURE(status))
@@ -1321,12 +1332,17 @@ static void TestNumberFormatPadding()
}
else
{
- if(u_strcmp(result, temp1)!=0)
- log_err("FAIL: Error in extracting the padding pattern using unum_toPattern()\n");
- else
+ if(u_strncmp(result, temp2, resultlengthneeded)!=0) {
+ log_err(
+ "FAIL: Error in extracting the padding pattern using unum_toPattern(): %d: %s != %s\n",
+ resultlengthneeded,
+ austrdup(temp2),
+ austrdup(result));
+ } else {
log_verbose("Pass: extracted the padding pattern correctly using unum_toPattern()\n");
-free(result);
+ }
}
+ free(result);
/* u_uastrcpy(temp1, "(xxxxxxx10,456.37)"); */
u_uastrcpy(temp1, "xxxxx(10,456.37)");
resultlength=0;
@@ -2153,7 +2169,7 @@ static void TestNoExponent(void) {
ASSERT_TRUE(unum_getAttribute(fmt, UNUM_PARSE_NO_EXPONENT)==1);
-
+ // A scientific formatter should parse the exponent even if UNUM_PARSE_NO_EXPONENT is set
cstr = "10E6";
u_uastrcpy(str, cstr);
expect = 10000000;
@@ -2181,7 +2197,7 @@ static void TestMaxInt(void) {
UNUM_PATTERN_DECIMAL, /* style */
&pattern_hash[0], /* pattern */
u_strlen(pattern_hash), /* patternLength */
- 0,
+ "en",
0, /* parseErr */
&status);
if(U_FAILURE(status) || fmt == NULL) {
@@ -2454,28 +2470,28 @@ static void TestCurrencyIsoPluralFormat(void) {
// format result using ISOCURRENCYSTYLE,
// format result using PLURALCURRENCYSTYLE,
- // locale amount ISOcode CURRENCYSTYLE CURRENCY_STANDARD CURRENCY_ACCOUNTING ISOCURRENCYSTYLE PLURALCURRENCYSTYLE
- {"en_US", "1", "USD", "$1.00", "$1.00", "$1.00", "USD1.00", "1.00 US dollars"},
- {"en_US", "1234.56", "USD", "$1,234.56", "$1,234.56", "$1,234.56", "USD1,234.56", "1,234.56 US dollars"},
- {"en_US@cf=account", "1234.56", "USD", "$1,234.56", "$1,234.56", "$1,234.56", "USD1,234.56", "1,234.56 US dollars"},
- {"en_US", "-1234.56", "USD", "-$1,234.56", "-$1,234.56", "($1,234.56)", "-USD1,234.56", "-1,234.56 US dollars"},
- {"en_US@cf=account", "-1234.56", "USD", "($1,234.56)", "-$1,234.56", "($1,234.56)", "-USD1,234.56", "-1,234.56 US dollars"},
- {"en_US@cf=standard", "-1234.56", "USD", "-$1,234.56", "-$1,234.56", "($1,234.56)", "-USD1,234.56", "-1,234.56 US dollars"},
- {"zh_CN", "1", "USD", "US$1.00", "US$1.00", "US$1.00", "USD1.00", "1.00\\u7F8E\\u5143"},
- {"zh_CN", "-1", "USD", "-US$1.00", "-US$1.00", "(US$1.00)", "-USD1.00", "-1.00\\u7F8E\\u5143"},
- {"zh_CN@cf=account", "-1", "USD", "(US$1.00)", "-US$1.00", "(US$1.00)", "-USD1.00", "-1.00\\u7F8E\\u5143"},
- {"zh_CN@cf=standard", "-1", "USD", "-US$1.00", "-US$1.00", "(US$1.00)", "-USD1.00", "-1.00\\u7F8E\\u5143"},
- {"zh_CN", "1234.56", "USD", "US$1,234.56", "US$1,234.56", "US$1,234.56", "USD1,234.56", "1,234.56\\u7F8E\\u5143"},
+ // locale amount ISOcode CURRENCYSTYLE CURRENCY_STANDARD CURRENCY_ACCOUNTING ISOCURRENCYSTYLE PLURALCURRENCYSTYLE
+ {"en_US", "1", "USD", "$1.00", "$1.00", "$1.00", "USD\\u00A01.00", "1.00 US dollars"},
+ {"en_US", "1234.56", "USD", "$1,234.56", "$1,234.56", "$1,234.56", "USD\\u00A01,234.56", "1,234.56 US dollars"},
+ {"en_US@cf=account", "1234.56", "USD", "$1,234.56", "$1,234.56", "$1,234.56", "USD\\u00A01,234.56", "1,234.56 US dollars"},
+ {"en_US", "-1234.56", "USD", "-$1,234.56", "-$1,234.56", "($1,234.56)", "-USD\\u00A01,234.56", "-1,234.56 US dollars"},
+ {"en_US@cf=account", "-1234.56", "USD", "($1,234.56)", "-$1,234.56", "($1,234.56)", "-USD\\u00A01,234.56", "-1,234.56 US dollars"},
+ {"en_US@cf=standard", "-1234.56", "USD", "-$1,234.56", "-$1,234.56", "($1,234.56)", "-USD\\u00A01,234.56", "-1,234.56 US dollars"},
+ {"zh_CN", "1", "USD", "US$1.00", "US$1.00", "US$1.00", "USD\\u00A01.00", "1.00\\u00A0\\u7F8E\\u5143"},
+ {"zh_CN", "-1", "USD", "-US$1.00", "-US$1.00", "(US$1.00)", "-USD\\u00A01.00", "-1.00\\u00A0\\u7F8E\\u5143"},
+ {"zh_CN@cf=account", "-1", "USD", "(US$1.00)", "-US$1.00", "(US$1.00)", "-USD\\u00A01.00", "-1.00\\u00A0\\u7F8E\\u5143"},
+ {"zh_CN@cf=standard", "-1", "USD", "-US$1.00", "-US$1.00", "(US$1.00)", "-USD\\u00A01.00", "-1.00\\u00A0\\u7F8E\\u5143"},
+ {"zh_CN", "1234.56", "USD", "US$1,234.56", "US$1,234.56", "US$1,234.56", "USD\\u00A01,234.56", "1,234.56\\u00A0\\u7F8E\\u5143"},
// {"zh_CN", "1", "CHY", "CHY1.00", "CHY1.00", "CHY1.00", "CHY1.00", "1.00 CHY"}, // wrong ISO code
// {"zh_CN", "1234.56", "CHY", "CHY1,234.56", "CHY1,234.56", "CHY1,234.56", "CHY1,234.56", "1,234.56 CHY"}, // wrong ISO code
- {"zh_CN", "1", "CNY", "\\uFFE51.00", "\\uFFE51.00", "\\uFFE51.00", "CNY1.00", "1.00\\u4EBA\\u6C11\\u5E01"},
- {"zh_CN", "1234.56", "CNY", "\\uFFE51,234.56", "\\uFFE51,234.56", "\\uFFE51,234.56", "CNY1,234.56", "1,234.56\\u4EBA\\u6C11\\u5E01"},
- {"ru_RU", "1", "RUB", "1,00\\u00A0\\u20BD", "1,00\\u00A0\\u20BD", "1,00\\u00A0\\u20BD", "1,00\\u00A0RUB", "1,00 \\u0440\\u043E\\u0441\\u0441\\u0438\\u0439\\u0441\\u043A\\u043E\\u0433\\u043E "
- "\\u0440\\u0443\\u0431\\u043B\\u044F"},
- {"ru_RU", "2", "RUB", "2,00\\u00A0\\u20BD", "2,00\\u00A0\\u20BD", "2,00\\u00A0\\u20BD", "2,00\\u00A0RUB", "2,00 \\u0440\\u043E\\u0441\\u0441\\u0438\\u0439\\u0441\\u043A\\u043E\\u0433\\u043E "
- "\\u0440\\u0443\\u0431\\u043B\\u044F"},
- {"ru_RU", "5", "RUB", "5,00\\u00A0\\u20BD", "5,00\\u00A0\\u20BD", "5,00\\u00A0\\u20BD", "5,00\\u00A0RUB", "5,00 \\u0440\\u043E\\u0441\\u0441\\u0438\\u0439\\u0441\\u043A\\u043E\\u0433\\u043E "
- "\\u0440\\u0443\\u0431\\u043B\\u044F"},
+ {"zh_CN", "1", "CNY", "\\uFFE51.00", "\\uFFE51.00", "\\uFFE51.00", "CNY\\u00A01.00", "1.00\\u00A0\\u4EBA\\u6C11\\u5E01"},
+ {"zh_CN", "1234.56", "CNY", "\\uFFE51,234.56", "\\uFFE51,234.56", "\\uFFE51,234.56", "CNY\\u00A01,234.56", "1,234.56\\u00A0\\u4EBA\\u6C11\\u5E01"},
+ {"ru_RU", "1", "RUB", "1,00\\u00A0\\u20BD", "1,00\\u00A0\\u20BD", "1,00\\u00A0\\u20BD", "1,00\\u00A0RUB", "1,00 \\u0440\\u043E\\u0441\\u0441\\u0438\\u0439\\u0441\\u043A\\u043E\\u0433\\u043E "
+ "\\u0440\\u0443\\u0431\\u043B\\u044F"},
+ {"ru_RU", "2", "RUB", "2,00\\u00A0\\u20BD", "2,00\\u00A0\\u20BD", "2,00\\u00A0\\u20BD", "2,00\\u00A0RUB", "2,00 \\u0440\\u043E\\u0441\\u0441\\u0438\\u0439\\u0441\\u043A\\u043E\\u0433\\u043E "
+ "\\u0440\\u0443\\u0431\\u043B\\u044F"},
+ {"ru_RU", "5", "RUB", "5,00\\u00A0\\u20BD", "5,00\\u00A0\\u20BD", "5,00\\u00A0\\u20BD", "5,00\\u00A0RUB", "5,00 \\u0440\\u043E\\u0441\\u0441\\u0438\\u0439\\u0441\\u043A\\u043E\\u0433\\u043E "
+ "\\u0440\\u0443\\u0431\\u043B\\u044F"},
// test locale without currency information
{"root", "-1.23", "USD", "-US$\\u00A01.23", "-US$\\u00A01.23", "-US$\\u00A01.23", "-USD\\u00A01.23", "-1.23 USD"},
{"root@cf=account", "-1.23", "USD", "-US$\\u00A01.23", "-US$\\u00A01.23", "-US$\\u00A01.23", "-USD\\u00A01.23", "-1.23 USD"},
@@ -2612,7 +2628,7 @@ static void TestCurrencyUsage(void) {
* - CAD rounds to .05
*/
- {"PKR", "PKR124"},
+ {"PKR", "PKR\\u00A0124"},
{"CAD", "CA$123.55"},
{"USD", "$123.57"}
};
@@ -2682,8 +2698,11 @@ static void TestCurrencyUsage(void) {
static UChar currFmtNegSameAsPos[] = /* "\u00A4#,##0.00;\u00A4#,##0.00" */
{0xA4,0x23,0x2C,0x23,0x23,0x30,0x2E,0x30,0x30,0x3B,0xA4,0x23,0x2C,0x23,0x23,0x30,0x2E,0x30,0x30,0};
-static UChar currFmtToPatExpected[] = /* "\u00A4#,##0.00" */
- {0xA4,0x23,0x2C,0x23,0x23,0x30,0x2E,0x30,0x30,0};
+// NOTE: As of ICU 62, identical positive and negative subpatterns means no minus sign!
+// See CLDR ticket https://unicode.org/cldr/trac/ticket/10703
+//static UChar currFmtToPatExpected[] = /* "\u00A4#,##0.00" */
+// {0xA4,0x23,0x2C,0x23,0x23,0x30,0x2E,0x30,0x30,0};
+static const UChar* currFmtToPatExpected = currFmtNegSameAsPos;
static UChar currFmtResultExpected[] = /* "$100.00" */
{0x24,0x31,0x30,0x30,0x2E,0x30,0x30,0};
@@ -2735,19 +2754,19 @@ static const ValueAndExpectedString enShort[] = {
{0.0, "0"},
{0.17, "0.17"},
{1.0, "1"},
- {1234.0, "1.23K"},
- {12345.0, "12.3K"},
+ {1234.0, "1.2K"},
+ {12345.0, "12K"},
{123456.0, "123K"},
- {1234567.0, "1.23M"},
- {12345678.0, "12.3M"},
+ {1234567.0, "1.2M"},
+ {12345678.0, "12M"},
{123456789.0, "123M"},
- {1.23456789E9, "1.23B"},
- {1.23456789E10, "12.3B"},
+ {1.23456789E9, "1.2B"},
+ {1.23456789E10, "12B"},
{1.23456789E11, "123B"},
- {1.23456789E12, "1.23T"},
- {1.23456789E13, "12.3T"},
+ {1.23456789E12, "1.2T"},
+ {1.23456789E13, "12T"},
{1.23456789E14, "123T"},
- {1.23456789E15, "1230T"},
+ {1.23456789E15, "1235T"},
{0.0, NULL}
};
@@ -2887,6 +2906,10 @@ static void TestVariousStylesAndAttributes(void) {
if (lsaTestPtr->attribute >= 0) {
unum_setAttribute(unum, (UNumberFormatAttribute)lsaTestPtr->attribute, lsaTestPtr->attrValue);
}
+ // ICU 62: should call minSignificantDigits in tandem with maxSignificantDigits.
+ if (lsaTestPtr->attribute == UNUM_MIN_SIGNIFICANT_DIGITS) {
+ unum_setAttribute(unum, UNUM_MAX_SIGNIFICANT_DIGITS, lsaTestPtr->attrValue);
+ }
for (veItemPtr = lsaTestPtr->veItems; veItemPtr->expected != NULL; veItemPtr++) {
UChar uexp[kUBufSize];
UChar uget[kUBufSize];
@@ -3042,4 +3065,18 @@ static void TestFormatForFields(void) {
}
}
+static void Test12052_NullPointer() {
+ UErrorCode status = U_ZERO_ERROR;
+ static const UChar input[] = u"199a";
+ UChar currency[200] = {0};
+ UNumberFormat *theFormatter = unum_open(UNUM_CURRENCY, NULL, 0, "en_US", NULL, &status);
+ if (!assertSuccessCheck("unum_open() failed", &status, TRUE)) { return; }
+ status = U_ZERO_ERROR;
+ unum_setAttribute(theFormatter, UNUM_LENIENT_PARSE, 1);
+ int32_t pos = 1;
+ unum_parseDoubleCurrency(theFormatter, input, -1, &pos, currency, &status);
+ assertEquals("should fail gracefully", "U_PARSE_ERROR", u_errorName(status));
+ unum_close(theFormatter);
+}
+
#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/test/cintltst/crelativedateformattest.c b/Build/source/libs/icu/icu-src/source/test/cintltst/crelativedateformattest.c
index b88d3d85c3a..42a34144216 100644
--- a/Build/source/libs/icu/icu-src/source/test/cintltst/crelativedateformattest.c
+++ b/Build/source/libs/icu/icu-src/source/test/cintltst/crelativedateformattest.c
@@ -30,9 +30,24 @@ void addRelativeDateFormatTest(TestNode** root)
TESTCASE(TestCombineDateTime);
}
-static const double offsets[] = { -5.0, -2.2, -2.0, -1.0, -0.7, 0.0, 0.7, 1.0, 2.0, 5.0 };
+static const double offsets[] = { -5.0, -2.2, -2.0, -1.0, -0.7, -0.0, 0.0, 0.7, 1.0, 2.0, 5.0 };
enum { kNumOffsets = UPRV_LENGTHOF(offsets) };
+static const char* en_decDef_long_midSent_sec[kNumOffsets*2] = {
+/* text numeric */
+ "5 seconds ago", "5 seconds ago", /* -5 */
+ "2.2 seconds ago", "2.2 seconds ago", /* -2.2 */
+ "2 seconds ago", "2 seconds ago", /* -2 */
+ "1 second ago", "1 second ago", /* -1 */
+ "0.7 seconds ago", "0.7 seconds ago", /* -0.7 */
+ "now", "0 seconds ago", /* -0 */
+ "now", "in 0 seconds", /* 0 */
+ "in 0.7 seconds", "in 0.7 seconds", /* 0.7 */
+ "in 1 second", "in 1 second", /* 1 */
+ "in 2 seconds", "in 2 seconds", /* 2 */
+ "in 5 seconds", "in 5 seconds" /* 5 */
+};
+
static const char* en_decDef_long_midSent_week[kNumOffsets*2] = {
/* text numeric */
"5 weeks ago", "5 weeks ago", /* -5 */
@@ -40,6 +55,7 @@ static const char* en_decDef_long_midSent_week[kNumOffsets*2] = {
"2 weeks ago", "2 weeks ago", /* -2 */
"last week", "1 week ago", /* -1 */
"0.7 weeks ago", "0.7 weeks ago", /* -0.7 */
+ "this week", "0 weeks ago", /* -0 */
"this week", "in 0 weeks", /* 0 */
"in 0.7 weeks", "in 0.7 weeks", /* 0.7 */
"next week", "in 1 week", /* 1 */
@@ -54,6 +70,7 @@ static const char* en_dec0_long_midSent_week[kNumOffsets*2] = {
"2 weeks ago", "2 weeks ago", /* -2 */
"last week", "1 week ago", /* -1 */
"0 weeks ago", "0 weeks ago", /* -0.7 */
+ "this week", "0 weeks ago", /* -0 */
"this week", "in 0 weeks", /* 0 */
"in 0 weeks", "in 0 weeks", /* 0.7 */
"next week", "in 1 week", /* 1 */
@@ -68,6 +85,7 @@ static const char* en_decDef_short_midSent_week[kNumOffsets*2] = {
"2 wk. ago", "2 wk. ago", /* -2 */
"last wk.", "1 wk. ago", /* -1 */
"0.7 wk. ago", "0.7 wk. ago", /* -0.7 */
+ "this wk.", "0 wk. ago", /* -0 */
"this wk.", "in 0 wk.", /* 0 */
"in 0.7 wk.", "in 0.7 wk.", /* 0.7 */
"next wk.", "in 1 wk.", /* 1 */
@@ -82,6 +100,7 @@ static const char* en_decDef_long_midSent_min[kNumOffsets*2] = {
"2 minutes ago", "2 minutes ago", /* -2 */
"1 minute ago", "1 minute ago", /* -1 */
"0.7 minutes ago", "0.7 minutes ago", /* -0.7 */
+ "0 minutes ago", "0 minutes ago", /* -0 */
"in 0 minutes", "in 0 minutes", /* 0 */
"in 0.7 minutes", "in 0.7 minutes", /* 0.7 */
"in 1 minute", "in 1 minute", /* 1 */
@@ -91,16 +110,17 @@ static const char* en_decDef_long_midSent_min[kNumOffsets*2] = {
static const char* en_dec0_long_midSent_tues[kNumOffsets*2] = {
/* text numeric */
- ""/*no data */, ""/*no data */, /* -5 */
+ "5 Tuesdays ago", "5 Tuesdays ago", /* -5 */
""/*no data */, ""/*no data */, /* -2.2 */
- ""/*no data */, ""/*no data */, /* -2 */
- "last Tuesday", ""/*no data */, /* -1 */
+ "2 Tuesdays ago", "2 Tuesdays ago", /* -2 */
+ "last Tuesday", "1 Tuesday ago", /* -1 */
""/*no data */, ""/*no data */, /* -0.7 */
- "this Tuesday", ""/*no data */, /* 0 */
+ "this Tuesday", "0 Tuesdays ago", /* -0 */
+ "this Tuesday", "in 0 Tuesdays", /* 0 */
""/*no data */, ""/*no data */, /* 0.7 */
- "next Tuesday", ""/*no data */, /* 1 */
- ""/*no data */, ""/*no data */, /* 2 */
- ""/*no data */, ""/*no data */, /* 5 */
+ "next Tuesday", "in 1 Tuesday", /* 1 */
+ "in 2 Tuesdays", "in 2 Tuesdays", /* 2 */
+ "in 5 Tuesdays", "in 5 Tuesdays", /* 5 */
};
static const char* fr_decDef_long_midSent_day[kNumOffsets*2] = {
@@ -110,6 +130,7 @@ static const char* fr_decDef_long_midSent_day[kNumOffsets*2] = {
"avant-hier", "il y a 2 jours", /* -2 */
"hier", "il y a 1 jour", /* -1 */
"il y a 0,7 jour", "il y a 0,7 jour", /* -0.7 */
+ "aujourd\\u2019hui", "il y a 0 jour", /* -0 */
"aujourd\\u2019hui", "dans 0 jour", /* 0 */
"dans 0,7 jour", "dans 0,7 jour", /* 0.7 */
"demain", "dans 1 jour", /* 1 */
@@ -128,6 +149,7 @@ typedef struct {
} RelDateTimeFormatTestItem;
static const RelDateTimeFormatTestItem fmtTestItems[] = {
+ { "en", -1, UDAT_STYLE_LONG, UDISPCTX_CAPITALIZATION_FOR_MIDDLE_OF_SENTENCE, UDAT_REL_UNIT_SECOND, en_decDef_long_midSent_sec },
{ "en", -1, UDAT_STYLE_LONG, UDISPCTX_CAPITALIZATION_FOR_MIDDLE_OF_SENTENCE, UDAT_REL_UNIT_WEEK, en_decDef_long_midSent_week },
{ "en", 0, UDAT_STYLE_LONG, UDISPCTX_CAPITALIZATION_FOR_MIDDLE_OF_SENTENCE, UDAT_REL_UNIT_WEEK, en_dec0_long_midSent_week },
{ "en", -1, UDAT_STYLE_SHORT, UDISPCTX_CAPITALIZATION_FOR_MIDDLE_OF_SENTENCE, UDAT_REL_UNIT_WEEK, en_decDef_short_midSent_week },
diff --git a/Build/source/libs/icu/icu-src/source/test/cintltst/cucdapi.c b/Build/source/libs/icu/icu-src/source/test/cintltst/cucdapi.c
index 3debd2e46bd..3cf759a6afe 100644
--- a/Build/source/libs/icu/icu-src/source/test/cintltst/cucdapi.c
+++ b/Build/source/libs/icu/icu-src/source/test/cintltst/cucdapi.c
@@ -413,7 +413,10 @@ void TestUScriptCodeAPI(){
// new in ICU 58
"Adlam", "Bhaiksuki", "Marchen", "Newa", "Osage", "Hanb", "Jamo", "Zsye",
// new in ICU 60
- "Masaram_Gondi", "Soyombo", "Zanabazar_Square"
+ "Masaram_Gondi", "Soyombo", "Zanabazar_Square",
+ // new in ICU 61
+ "Dogra", "Gunjala_Gondi", "Makasar", "Medefaidrin",
+ "Hanifi_Rohingya", "Sogdian", "Old_Sogdian",
};
static const char* expectedShort[] = {
"Bali", "Batk", "Blis", "Brah", "Cham", "Cirt", "Cyrs", "Egyd", "Egyh", "Egyp",
@@ -443,7 +446,9 @@ void TestUScriptCodeAPI(){
// new in ICU 58
"Adlm", "Bhks", "Marc", "Newa", "Osge", "Hanb", "Jamo", "Zsye",
// new in ICU 60
- "Gonm", "Soyo", "Zanb"
+ "Gonm", "Soyo", "Zanb",
+ // new in ICU 61
+ "Dogr", "Gong", "Maka", "Medf", "Rohg", "Sogd", "Sogo",
};
int32_t j = 0;
if(UPRV_LENGTHOF(expectedLong)!=(USCRIPT_CODE_LIMIT-USCRIPT_BALINESE)) {
diff --git a/Build/source/libs/icu/icu-src/source/test/cintltst/cucdtst.c b/Build/source/libs/icu/icu-src/source/test/cintltst/cucdtst.c
index 67b53a62e0f..059bd72adad 100644
--- a/Build/source/libs/icu/icu-src/source/test/cintltst/cucdtst.c
+++ b/Build/source/libs/icu/icu-src/source/test/cintltst/cucdtst.c
@@ -61,6 +61,8 @@ static void TestPropertyNames(void);
static void TestPropertyValues(void);
static void TestConsistency(void);
static void TestCaseFolding(void);
+static void TestBinaryCharacterPropertiesAPI(void);
+static void TestIntCharacterPropertiesAPI(void);
/* internal methods used */
static int32_t MakeProp(char* str);
@@ -196,6 +198,10 @@ void addUnicodeTest(TestNode** root)
addTest(root, &TestPropertyValues, "tsutil/cucdtst/TestPropertyValues");
addTest(root, &TestConsistency, "tsutil/cucdtst/TestConsistency");
addTest(root, &TestCaseFolding, "tsutil/cucdtst/TestCaseFolding");
+ addTest(root, &TestBinaryCharacterPropertiesAPI,
+ "tsutil/cucdtst/TestBinaryCharacterPropertiesAPI");
+ addTest(root, &TestIntCharacterPropertiesAPI,
+ "tsutil/cucdtst/TestIntCharacterPropertiesAPI");
}
/*==================================================== */
@@ -1227,9 +1233,17 @@ enumDefaultsRange(const void *context, UChar32 start, UChar32 limit, UCharCatego
{ 0xFE00, U_RIGHT_TO_LEFT_ARABIC },
{ 0xFE70, U_LEFT_TO_RIGHT },
{ 0xFF00, U_RIGHT_TO_LEFT_ARABIC },
+
{ 0x10800, U_LEFT_TO_RIGHT },
+ { 0x10D00, U_RIGHT_TO_LEFT }, // Unicode 11 changes U+10D00..U+10D3F from R to AL.
+ { 0x10D40, U_RIGHT_TO_LEFT_ARABIC },
+ { 0x10F30, U_RIGHT_TO_LEFT }, // Unicode 11 changes U+10F30..U+10F6F from R to AL.
+ { 0x10F70, U_RIGHT_TO_LEFT_ARABIC },
{ 0x11000, U_RIGHT_TO_LEFT },
+
{ 0x1E800, U_LEFT_TO_RIGHT }, /* new default-R range in Unicode 5.2: U+1E800 - U+1EFFF */
+ { 0x1EC70, U_RIGHT_TO_LEFT }, // Unicode 11 changes U+1EC70..U+1ECBF from R to AL.
+ { 0x1ECC0, U_RIGHT_TO_LEFT_ARABIC },
{ 0x1EE00, U_RIGHT_TO_LEFT },
{ 0x1EF00, U_RIGHT_TO_LEFT_ARABIC }, /* Unicode 6.1 changes U+1EE00..U+1EEFF from R to AL */
{ 0x1F000, U_RIGHT_TO_LEFT },
@@ -2515,7 +2529,7 @@ TestAdditionalProperties() {
{ 0x155A, UCHAR_BLOCK, UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS },
{ 0x1717, UCHAR_BLOCK, UBLOCK_TAGALOG },
{ 0x1900, UCHAR_BLOCK, UBLOCK_LIMBU },
- { 0x1CBF, UCHAR_BLOCK, UBLOCK_NO_BLOCK },
+ { 0x0870, UCHAR_BLOCK, UBLOCK_NO_BLOCK },
{ 0x3040, UCHAR_BLOCK, UBLOCK_HIRAGANA },
{ 0x1D0FF, UCHAR_BLOCK, UBLOCK_BYZANTINE_MUSICAL_SYMBOLS },
{ 0x50000, UCHAR_BLOCK, UBLOCK_NO_BLOCK },
@@ -2591,7 +2605,7 @@ TestAdditionalProperties() {
/* UCHAR_NUMERIC_TYPE tested in TestNumericProperties() */
- /* UCHAR_SCRIPT tested in TestUScriptCodeAPI() */
+ /* UCHAR_SCRIPT tested in cucdapi.c TestUScriptCodeAPI() */
{ 0x10ff, UCHAR_HANGUL_SYLLABLE_TYPE, 0 },
{ 0x1100, UCHAR_HANGUL_SYLLABLE_TYPE, U_HST_LEADING_JAMO },
@@ -3514,3 +3528,41 @@ TestCaseFolding() {
uset_close(data.notSeen);
}
+
+static void TestBinaryCharacterPropertiesAPI() {
+ // API test only. See intltest/ucdtest.cpp for functional test.
+ UErrorCode errorCode = U_ZERO_ERROR;
+ const USet *set = u_getBinaryPropertySet(-1, &errorCode);
+ if (U_SUCCESS(errorCode)) {
+ log_err("u_getBinaryPropertySet(-1) did not fail\n");
+ }
+ errorCode = U_ZERO_ERROR;
+ set = u_getBinaryPropertySet(UCHAR_BINARY_LIMIT, &errorCode);
+ if (U_SUCCESS(errorCode)) {
+ log_err("u_getBinaryPropertySet(UCHAR_BINARY_LIMIT) did not fail\n");
+ }
+ errorCode = U_ZERO_ERROR;
+ set = u_getBinaryPropertySet(UCHAR_WHITE_SPACE, &errorCode);
+ if (!uset_contains(set, 0x20) || uset_contains(set, 0x61)) {
+ log_err("u_getBinaryPropertySet(UCHAR_WHITE_SPACE) wrong contents\n");
+ }
+}
+
+static void TestIntCharacterPropertiesAPI() {
+ // API test only. See intltest/ucdtest.cpp for functional test.
+ UErrorCode errorCode = U_ZERO_ERROR;
+ const UCPMap *map = u_getIntPropertyMap(UCHAR_INT_START - 1, &errorCode);
+ if (U_SUCCESS(errorCode)) {
+ log_err("u_getIntPropertyMap(UCHAR_INT_START - 1) did not fail\n");
+ }
+ errorCode = U_ZERO_ERROR;
+ map = u_getIntPropertyMap(UCHAR_INT_LIMIT, &errorCode);
+ if (U_SUCCESS(errorCode)) {
+ log_err("u_getIntPropertyMap(UCHAR_INT_LIMIT) did not fail\n");
+ }
+ errorCode = U_ZERO_ERROR;
+ map = u_getIntPropertyMap(UCHAR_GENERAL_CATEGORY, &errorCode);
+ if (ucpmap_get(map, 0x20) != U_SPACE_SEPARATOR || ucpmap_get(map, 0x23456) != U_OTHER_LETTER) {
+ log_err("u_getIntPropertyMap(UCHAR_GENERAL_CATEGORY) wrong contents\n");
+ }
+}
diff --git a/Build/source/libs/icu/icu-src/source/test/cintltst/cutiltst.c b/Build/source/libs/icu/icu-src/source/test/cintltst/cutiltst.c
index aa52970604d..5f43c48ad28 100644
--- a/Build/source/libs/icu/icu-src/source/test/cintltst/cutiltst.c
+++ b/Build/source/libs/icu/icu-src/source/test/cintltst/cutiltst.c
@@ -27,6 +27,7 @@ void addHashtableTest(TestNode** root);
void addCStringTest(TestNode** root);
void addTrieTest(TestNode** root);
void addTrie2Test(TestNode** root);
+void addUCPTrieTest(TestNode** root);
void addEnumerationTest(TestNode** root);
void addPosixTest(TestNode** root);
void addSortTest(TestNode** root);
@@ -38,6 +39,7 @@ void addUtility(TestNode** root)
addCStringTest(root);
addTrieTest(root);
addTrie2Test(root);
+ addUCPTrieTest(root);
addLocaleTest(root);
addCLDRTest(root);
addUnicodeTest(root);
diff --git a/Build/source/libs/icu/icu-src/source/test/cintltst/putiltst.c b/Build/source/libs/icu/icu-src/source/test/cintltst/putiltst.c
index b99d9fca9c3..1c3e0730410 100644
--- a/Build/source/libs/icu/icu-src/source/test/cintltst/putiltst.c
+++ b/Build/source/libs/icu/icu-src/source/test/cintltst/putiltst.c
@@ -128,6 +128,20 @@ static void TestPUtilAPI(void){
log_err("ERROR: uprv_isInfinite failed.\n");
}
+ log_verbose("Testing the APIs uprv_add32_overflow and uprv_mul32_overflow\n");
+ int32_t overflow_result;
+ doAssert(FALSE, uprv_add32_overflow(INT32_MAX - 2, 1, &overflow_result), "should not overflow");
+ doAssert(INT32_MAX - 1, overflow_result, "should equal INT32_MAX - 1");
+ doAssert(FALSE, uprv_add32_overflow(INT32_MAX - 2, 2, &overflow_result), "should not overflow");
+ doAssert(INT32_MAX, overflow_result, "should equal exactly INT32_MAX");
+ doAssert(TRUE, uprv_add32_overflow(INT32_MAX - 2, 3, &overflow_result), "should overflow");
+ doAssert(FALSE, uprv_mul32_overflow(INT32_MAX / 5, 4, &overflow_result), "should not overflow");
+ doAssert(INT32_MAX / 5 * 4, overflow_result, "should equal INT32_MAX / 5 * 4");
+ doAssert(TRUE, uprv_mul32_overflow(INT32_MAX / 5, 6, &overflow_result), "should overflow");
+ // Test on negative numbers:
+ doAssert(FALSE, uprv_add32_overflow(-3, -2, &overflow_result), "should not overflow");
+ doAssert(-5, overflow_result, "should equal -5");
+
#if 0
log_verbose("Testing the API uprv_digitsAfterDecimal()....\n");
doAssert(uprv_digitsAfterDecimal(value1), 3, "uprv_digitsAfterDecimal() failed.");
diff --git a/Build/source/libs/icu/icu-src/source/test/cintltst/trie2test.c b/Build/source/libs/icu/icu-src/source/test/cintltst/trie2test.c
index 9444159beda..aa7e7c64671 100644
--- a/Build/source/libs/icu/icu-src/source/test/cintltst/trie2test.c
+++ b/Build/source/libs/icu/icu-src/source/test/cintltst/trie2test.c
@@ -421,7 +421,7 @@ testTrieUTF8(const char *testName,
prevCP=c;
--c; /* end of the range */
U8_APPEND_UNSAFE(s, length, c);
- if(U_IS_SURROGATE(prevCP)) {
+ if(U_IS_SURROGATE(c)) {
// A surrogate byte sequence counts as 3 single-byte errors.
values[countValues++]=errorValue;
values[countValues++]=errorValue;
@@ -1287,31 +1287,6 @@ GrowDataArrayTest(void) {
/* versions 1 and 2 --------------------------------------------------------- */
-static void
-GetVersionTest(void) {
- uint32_t data[4];
- if( /* version 1 */
- (data[0]=0x54726965, 1!=utrie2_getVersion(data, sizeof(data), FALSE)) ||
- (data[0]=0x54726965, 1!=utrie2_getVersion(data, sizeof(data), TRUE)) ||
- (data[0]=0x65697254, 0!=utrie2_getVersion(data, sizeof(data), FALSE)) ||
- (data[0]=0x65697254, 1!=utrie2_getVersion(data, sizeof(data), TRUE)) ||
- /* version 2 */
- (data[0]=0x54726932, 2!=utrie2_getVersion(data, sizeof(data), FALSE)) ||
- (data[0]=0x54726932, 2!=utrie2_getVersion(data, sizeof(data), TRUE)) ||
- (data[0]=0x32697254, 0!=utrie2_getVersion(data, sizeof(data), FALSE)) ||
- (data[0]=0x32697254, 2!=utrie2_getVersion(data, sizeof(data), TRUE)) ||
- /* illegal arguments */
- (data[0]=0x54726932, 0!=utrie2_getVersion(NULL, sizeof(data), FALSE)) ||
- (data[0]=0x54726932, 0!=utrie2_getVersion(data, 3, FALSE)) ||
- (data[0]=0x54726932, 0!=utrie2_getVersion((char *)data+1, sizeof(data), FALSE)) ||
- /* unknown signature values */
- (data[0]=0x11223344, 0!=utrie2_getVersion(data, sizeof(data), FALSE)) ||
- (data[0]=0x54726933, 0!=utrie2_getVersion(data, sizeof(data), FALSE))
- ) {
- log_err("error: utrie2_getVersion() is not working as expected\n");
- }
-}
-
static UNewTrie *
makeNewTrie1WithRanges(const char *testName,
const SetRange setRanges[], int32_t countSetRanges,
@@ -1455,6 +1430,5 @@ addTrie2Test(TestNode** root) {
addTest(root, &DummyTrieTest, "tsutil/trie2test/DummyTrieTest");
addTest(root, &FreeBlocksTest, "tsutil/trie2test/FreeBlocksTest");
addTest(root, &GrowDataArrayTest, "tsutil/trie2test/GrowDataArrayTest");
- addTest(root, &GetVersionTest, "tsutil/trie2test/GetVersionTest");
addTest(root, &Trie12ConversionTest, "tsutil/trie2test/Trie12ConversionTest");
}
diff --git a/Build/source/libs/icu/icu-src/source/test/cintltst/ucptrietest.c b/Build/source/libs/icu/icu-src/source/test/cintltst/ucptrietest.c
new file mode 100644
index 00000000000..299ef900b83
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/test/cintltst/ucptrietest.c
@@ -0,0 +1,1577 @@
+// © 2017 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// ucptrietest.c (modified from trie2test.c)
+// created: 2017dec29 Markus W. Scherer
+
+#include <stdio.h>
+#include "unicode/utypes.h"
+#include "unicode/ucptrie.h"
+#include "unicode/umutablecptrie.h"
+#include "unicode/utf.h"
+#include "unicode/utf16.h"
+#include "unicode/utf8.h"
+#include "uassert.h"
+#include "ucptrie_impl.h"
+#include "utrie.h"
+#include "cstring.h"
+#include "cmemory.h"
+#include "udataswp.h"
+#include "cintltst.h"
+
+void addUCPTrieTest(TestNode** root);
+
+/* Values for setting possibly overlapping, out-of-order ranges of values */
+typedef struct SetRange {
+ UChar32 start, limit;
+ uint32_t value;
+} SetRange;
+
+/*
+ * Values for testing:
+ * value is set from the previous boundary's limit to before
+ * this boundary's limit
+ *
+ * There must be an entry with limit 0 and the intialValue.
+ * It may be preceded by an entry with negative limit and the errorValue.
+ */
+typedef struct CheckRange {
+ UChar32 limit;
+ uint32_t value;
+} CheckRange;
+
+static int32_t
+skipSpecialValues(const CheckRange checkRanges[], int32_t countCheckRanges) {
+ int32_t i;
+ for(i=0; i<countCheckRanges && checkRanges[i].limit<=0; ++i) {}
+ return i;
+}
+
+static int32_t
+getSpecialValues(const CheckRange checkRanges[], int32_t countCheckRanges,
+ uint32_t *pInitialValue, uint32_t *pErrorValue) {
+ int32_t i=0;
+ if(i<countCheckRanges && checkRanges[i].limit<0) {
+ *pErrorValue=checkRanges[i++].value;
+ } else {
+ *pErrorValue=0xad;
+ }
+ if(i<countCheckRanges && checkRanges[i].limit==0) {
+ *pInitialValue=checkRanges[i++].value;
+ } else {
+ *pInitialValue=0;
+ }
+ return i;
+}
+
+/* ucptrie_enum() callback, modifies a value */
+static uint32_t U_CALLCONV
+testFilter(const void *context, uint32_t value) {
+ return value ^ 0x5555;
+}
+
+static UBool
+doCheckRange(const char *name, const char *variant,
+ UChar32 start, UChar32 end, uint32_t value,
+ UChar32 expEnd, uint32_t expValue) {
+ if (end < 0) {
+ if (expEnd >= 0) {
+ log_err("error: %s getRanges (%s) fails to deliver range [U+%04lx..U+%04lx].0x%lx\n",
+ name, variant, (long)start, (long)expEnd, (long)expValue);
+ }
+ return FALSE;
+ }
+ if (expEnd < 0) {
+ log_err("error: %s getRanges (%s) delivers unexpected range [U+%04lx..U+%04lx].0x%lx\n",
+ name, variant, (long)start, (long)end, (long)value);
+ return FALSE;
+ }
+ if (end != expEnd || value != expValue) {
+ log_err("error: %s getRanges (%s) delivers wrong range [U+%04lx..U+%04lx].0x%lx "
+ "instead of [U+%04lx..U+%04lx].0x%lx\n",
+ name, variant, (long)start, (long)end, (long)value,
+ (long)start, (long)expEnd, (long)expValue);
+ return FALSE;
+ }
+ return TRUE;
+}
+
+// Test iteration starting from various UTF-8/16 and trie structure boundaries.
+// Also test starting partway through lead & trail surrogates for fixed-surrogate-value options,
+// and partway through supplementary code points.
+static UChar32 iterStarts[] = {
+ 0, 0x7f, 0x80, 0x7ff, 0x800, 0xfff, 0x1000,
+ 0xd7ff, 0xd800, 0xd888, 0xdddd, 0xdfff, 0xe000,
+ 0xffff, 0x10000, 0x12345, 0x10ffff, 0x110000
+};
+
+static void
+testTrieGetRanges(const char *testName, const UCPTrie *trie, const UMutableCPTrie *mutableTrie,
+ UCPMapRangeOption option, uint32_t surrValue,
+ const CheckRange checkRanges[], int32_t countCheckRanges) {
+ const char *const typeName = trie == NULL ? "mutableTrie" : "trie";
+ const char *const optionName = option == UCPMAP_RANGE_NORMAL ? "normal" :
+ option == UCPMAP_RANGE_FIXED_LEAD_SURROGATES ? "fixedLeadSurr" : "fixedAllSurr";
+ char name[80];
+ int32_t s;
+ for (s = 0; s < UPRV_LENGTHOF(iterStarts); ++s) {
+ UChar32 start = iterStarts[s];
+ int32_t i, i0;
+ UChar32 end, expEnd;
+ uint32_t value, expValue;
+ // No need to go from each iteration start to the very end.
+ int32_t innerLoopCount;
+
+ sprintf(name, "%s/%s(%s) min=U+%04lx", typeName, optionName, testName, (long)start);
+
+ // Skip over special values and low ranges.
+ for (i = 0; i < countCheckRanges && checkRanges[i].limit <= start; ++i) {}
+ i0 = i;
+ // without value handler
+ for (innerLoopCount = 0;; ++i, start = end + 1) {
+ if (i < countCheckRanges) {
+ expEnd = checkRanges[i].limit - 1;
+ expValue = checkRanges[i].value;
+ } else {
+ expEnd = -1;
+ expValue = value = 0x5005;
+ }
+ end = trie != NULL ?
+ ucptrie_getRange(trie, start, option, surrValue, NULL, NULL, &value) :
+ umutablecptrie_getRange(mutableTrie, start, option, surrValue, NULL, NULL, &value);
+ if (!doCheckRange(name, "without value handler", start, end, value, expEnd, expValue)) {
+ break;
+ }
+ if (s != 0 && ++innerLoopCount == 5) { break; }
+ }
+ // with value handler
+ for (i = i0, start = iterStarts[s], innerLoopCount = 0;; ++i, start = end + 1) {
+ if (i < countCheckRanges) {
+ expEnd = checkRanges[i].limit - 1;
+ expValue = checkRanges[i].value ^ 0x5555;
+ } else {
+ expEnd = -1;
+ expValue = value = 0x5005;
+ }
+ end = trie != NULL ?
+ ucptrie_getRange(trie, start, option, surrValue ^ 0x5555, testFilter, NULL, &value) :
+ umutablecptrie_getRange(mutableTrie, start, option, surrValue ^ 0x5555,
+ testFilter, NULL, &value);
+ if (!doCheckRange(name, "with value handler", start, end, value, expEnd, expValue)) {
+ break;
+ }
+ if (s != 0 && ++innerLoopCount == 5) { break; }
+ }
+ // without value
+ for (i = i0, start = iterStarts[s], innerLoopCount = 0;; ++i, start = end + 1) {
+ if (i < countCheckRanges) {
+ expEnd = checkRanges[i].limit - 1;
+ } else {
+ expEnd = -1;
+ }
+ end = trie != NULL ?
+ ucptrie_getRange(trie, start, option, surrValue, NULL, NULL, NULL) :
+ umutablecptrie_getRange(mutableTrie, start, option, surrValue, NULL, NULL, NULL);
+ if (!doCheckRange(name, "without value", start, end, 0, expEnd, 0)) {
+ break;
+ }
+ if (s != 0 && ++innerLoopCount == 5) { break; }
+ }
+ }
+}
+
+static void
+testTrieGetters(const char *testName, const UCPTrie *trie,
+ UCPTrieType type, UCPTrieValueWidth valueWidth,
+ const CheckRange checkRanges[], int32_t countCheckRanges) {
+ uint32_t initialValue, errorValue;
+ uint32_t value, value2;
+ UChar32 start, limit;
+ int32_t i, countSpecials;
+ int32_t countErrors=0;
+
+ const char *const typeName = "trie";
+
+ countSpecials=getSpecialValues(checkRanges, countCheckRanges, &initialValue, &errorValue);
+
+ start=0;
+ for(i=countSpecials; i<countCheckRanges; ++i) {
+ limit=checkRanges[i].limit;
+ value=checkRanges[i].value;
+
+ while(start<limit) {
+ if (start <= 0x7f) {
+ if (valueWidth == UCPTRIE_VALUE_BITS_16) {
+ value2 = UCPTRIE_ASCII_GET(trie, UCPTRIE_16, start);
+ } else if (valueWidth == UCPTRIE_VALUE_BITS_32) {
+ value2 = UCPTRIE_ASCII_GET(trie, UCPTRIE_32, start);
+ } else {
+ value2 = UCPTRIE_ASCII_GET(trie, UCPTRIE_8, start);
+ }
+ if (value != value2) {
+ log_err("error: %s(%s).fromASCII(U+%04lx)==0x%lx instead of 0x%lx\n",
+ typeName, testName, (long)start, (long)value2, (long)value);
+ ++countErrors;
+ }
+ }
+ if (type == UCPTRIE_TYPE_FAST) {
+ if(start<=0xffff) {
+ if(valueWidth==UCPTRIE_VALUE_BITS_16) {
+ value2=UCPTRIE_FAST_BMP_GET(trie, UCPTRIE_16, start);
+ } else if(valueWidth==UCPTRIE_VALUE_BITS_32) {
+ value2=UCPTRIE_FAST_BMP_GET(trie, UCPTRIE_32, start);
+ } else {
+ value2=UCPTRIE_FAST_BMP_GET(trie, UCPTRIE_8, start);
+ }
+ if(value!=value2) {
+ log_err("error: %s(%s).fromBMP(U+%04lx)==0x%lx instead of 0x%lx\n",
+ typeName, testName, (long)start, (long)value2, (long)value);
+ ++countErrors;
+ }
+ } else {
+ if(valueWidth==UCPTRIE_VALUE_BITS_16) {
+ value2 = UCPTRIE_FAST_SUPP_GET(trie, UCPTRIE_16, start);
+ } else if(valueWidth==UCPTRIE_VALUE_BITS_32) {
+ value2 = UCPTRIE_FAST_SUPP_GET(trie, UCPTRIE_32, start);
+ } else {
+ value2 = UCPTRIE_FAST_SUPP_GET(trie, UCPTRIE_8, start);
+ }
+ if(value!=value2) {
+ log_err("error: %s(%s).fromSupp(U+%04lx)==0x%lx instead of 0x%lx\n",
+ typeName, testName, (long)start, (long)value2, (long)value);
+ ++countErrors;
+ }
+ }
+ if(valueWidth==UCPTRIE_VALUE_BITS_16) {
+ value2 = UCPTRIE_FAST_GET(trie, UCPTRIE_16, start);
+ } else if(valueWidth==UCPTRIE_VALUE_BITS_32) {
+ value2 = UCPTRIE_FAST_GET(trie, UCPTRIE_32, start);
+ } else {
+ value2 = UCPTRIE_FAST_GET(trie, UCPTRIE_8, start);
+ }
+ } else {
+ if(valueWidth==UCPTRIE_VALUE_BITS_16) {
+ value2 = UCPTRIE_SMALL_GET(trie, UCPTRIE_16, start);
+ } else if(valueWidth==UCPTRIE_VALUE_BITS_32) {
+ value2 = UCPTRIE_SMALL_GET(trie, UCPTRIE_32, start);
+ } else {
+ value2 = UCPTRIE_SMALL_GET(trie, UCPTRIE_8, start);
+ }
+ }
+ if(value!=value2) {
+ log_err("error: %s(%s).get(U+%04lx)==0x%lx instead of 0x%lx\n",
+ typeName, testName, (long)start, (long)value2, (long)value);
+ ++countErrors;
+ }
+ value2=ucptrie_get(trie, start);
+ if(value!=value2) {
+ log_err("error: %s(%s).get(U+%04lx)==0x%lx instead of 0x%lx\n",
+ typeName, testName, (long)start, (long)value2, (long)value);
+ ++countErrors;
+ }
+ ++start;
+ if(countErrors>10) {
+ return;
+ }
+ }
+ }
+
+ /* test linear ASCII range from the data array pointer (access to "internal" field) */
+ start=0;
+ for(i=countSpecials; i<countCheckRanges && start<=0x7f; ++i) {
+ limit=checkRanges[i].limit;
+ value=checkRanges[i].value;
+
+ while(start<limit && start<=0x7f) {
+ if(valueWidth==UCPTRIE_VALUE_BITS_16) {
+ value2=trie->data.ptr16[start];
+ } else if(valueWidth==UCPTRIE_VALUE_BITS_32) {
+ value2=trie->data.ptr32[start];
+ } else {
+ value2=trie->data.ptr8[start];
+ }
+ if(value!=value2) {
+ log_err("error: %s(%s).asciiData[U+%04lx]==0x%lx instead of 0x%lx\n",
+ typeName, testName, (long)start, (long)value2, (long)value);
+ ++countErrors;
+ }
+ ++start;
+ if(countErrors>10) {
+ return;
+ }
+ }
+ }
+
+ /* test errorValue */
+ if (type == UCPTRIE_TYPE_FAST) {
+ if(valueWidth==UCPTRIE_VALUE_BITS_16) {
+ value = UCPTRIE_FAST_GET(trie, UCPTRIE_16, -1);
+ value2 = UCPTRIE_FAST_GET(trie, UCPTRIE_16, 0x110000);
+ } else if(valueWidth==UCPTRIE_VALUE_BITS_32) {
+ value = UCPTRIE_FAST_GET(trie, UCPTRIE_32, -1);
+ value2 = UCPTRIE_FAST_GET(trie, UCPTRIE_32, 0x110000);
+ } else {
+ value = UCPTRIE_FAST_GET(trie, UCPTRIE_8, -1);
+ value2 = UCPTRIE_FAST_GET(trie, UCPTRIE_8, 0x110000);
+ }
+ } else {
+ if(valueWidth==UCPTRIE_VALUE_BITS_16) {
+ value = UCPTRIE_SMALL_GET(trie, UCPTRIE_16, -1);
+ value2 = UCPTRIE_SMALL_GET(trie, UCPTRIE_16, 0x110000);
+ } else if(valueWidth==UCPTRIE_VALUE_BITS_32) {
+ value = UCPTRIE_SMALL_GET(trie, UCPTRIE_32, -1);
+ value2 = UCPTRIE_SMALL_GET(trie, UCPTRIE_32, 0x110000);
+ } else {
+ value = UCPTRIE_SMALL_GET(trie, UCPTRIE_8, -1);
+ value2 = UCPTRIE_SMALL_GET(trie, UCPTRIE_8, 0x110000);
+ }
+ }
+ if(value!=errorValue || value2!=errorValue) {
+ log_err("error: %s(%s).get(out of range) != errorValue\n",
+ typeName, testName);
+ }
+ value=ucptrie_get(trie, -1);
+ value2=ucptrie_get(trie, 0x110000);
+ if(value!=errorValue || value2!=errorValue) {
+ log_err("error: %s(%s).get(out of range) != errorValue\n",
+ typeName, testName);
+ }
+}
+
+static void
+testBuilderGetters(const char *testName, const UMutableCPTrie *mutableTrie,
+ const CheckRange checkRanges[], int32_t countCheckRanges) {
+ uint32_t initialValue, errorValue;
+ uint32_t value, value2;
+ UChar32 start, limit;
+ int32_t i, countSpecials;
+ int32_t countErrors=0;
+
+ const char *const typeName = "mutableTrie";
+
+ countSpecials=getSpecialValues(checkRanges, countCheckRanges, &initialValue, &errorValue);
+
+ start=0;
+ for(i=countSpecials; i<countCheckRanges; ++i) {
+ limit=checkRanges[i].limit;
+ value=checkRanges[i].value;
+
+ while(start<limit) {
+ value2=umutablecptrie_get(mutableTrie, start);
+ if(value!=value2) {
+ log_err("error: %s(%s).get(U+%04lx)==0x%lx instead of 0x%lx\n",
+ typeName, testName, (long)start, (long)value2, (long)value);
+ ++countErrors;
+ }
+ ++start;
+ if(countErrors>10) {
+ return;
+ }
+ }
+ }
+
+ /* test errorValue */
+ value=umutablecptrie_get(mutableTrie, -1);
+ value2=umutablecptrie_get(mutableTrie, 0x110000);
+ if(value!=errorValue || value2!=errorValue) {
+ log_err("error: %s(%s).get(out of range) != errorValue\n",
+ typeName, testName);
+ }
+}
+
+#define ACCIDENTAL_SURROGATE_PAIR(s, length, cp) (length > 0 && U16_IS_LEAD(s[length-1]) && U_IS_TRAIL(cp))
+
+static void
+testTrieUTF16(const char *testName,
+ const UCPTrie *trie, UCPTrieValueWidth valueWidth,
+ const CheckRange checkRanges[], int32_t countCheckRanges) {
+ UChar s[30000];
+ uint32_t values[16000];
+
+ const UChar *p, *limit;
+
+ uint32_t errorValue = ucptrie_get(trie, -1);
+ uint32_t value, expected;
+ UChar32 prevCP, c, c2;
+ int32_t i, length, sIndex, countValues;
+
+ /* write a string */
+ prevCP=0;
+ length=countValues=0;
+ for(i=skipSpecialValues(checkRanges, countCheckRanges); i<countCheckRanges; ++i) {
+ value=checkRanges[i].value;
+ /* write three code points */
+ if(!ACCIDENTAL_SURROGATE_PAIR(s, length, prevCP)) {
+ U16_APPEND_UNSAFE(s, length, prevCP); /* start of the range */
+ values[countValues++]=value;
+ }
+ U_ASSERT(length < UPRV_LENGTHOF(s) && countValues < UPRV_LENGTHOF(values));
+ c=checkRanges[i].limit;
+ prevCP=(prevCP+c)/2; /* middle of the range */
+ if(!ACCIDENTAL_SURROGATE_PAIR(s, length, prevCP)) {
+ U16_APPEND_UNSAFE(s, length, prevCP);
+ values[countValues++]=value;
+ }
+ prevCP=c;
+ --c; /* end of the range */
+ if(!ACCIDENTAL_SURROGATE_PAIR(s, length, c)) {
+ U16_APPEND_UNSAFE(s, length, c);
+ values[countValues++]=value;
+ }
+ }
+ limit=s+length;
+ if(length>UPRV_LENGTHOF(s)) {
+ log_err("UTF-16 test string length %d > capacity %d\n", (int)length, (int)UPRV_LENGTHOF(s));
+ return;
+ }
+ if(countValues>UPRV_LENGTHOF(values)) {
+ log_err("UTF-16 test values length %d > capacity %d\n", (int)countValues, (int)UPRV_LENGTHOF(values));
+ return;
+ }
+
+ /* try forward */
+ p=s;
+ i=0;
+ while(p<limit) {
+ sIndex=(int32_t)(p-s);
+ U16_NEXT(s, sIndex, length, c2);
+ c=0x33;
+ if(valueWidth==UCPTRIE_VALUE_BITS_16) {
+ UCPTRIE_FAST_U16_NEXT(trie, UCPTRIE_16, p, limit, c, value);
+ } else if(valueWidth==UCPTRIE_VALUE_BITS_32) {
+ UCPTRIE_FAST_U16_NEXT(trie, UCPTRIE_32, p, limit, c, value);
+ } else {
+ UCPTRIE_FAST_U16_NEXT(trie, UCPTRIE_8, p, limit, c, value);
+ }
+ expected = U_IS_SURROGATE(c) ? errorValue : values[i];
+ if(value!=expected) {
+ log_err("error: wrong value from UCPTRIE_NEXT(%s)(U+%04lx): 0x%lx instead of 0x%lx\n",
+ testName, (long)c, (long)value, (long)expected);
+ }
+ if(c!=c2) {
+ log_err("error: wrong code point from UCPTRIE_NEXT(%s): U+%04lx != U+%04lx\n",
+ testName, (long)c, (long)c2);
+ continue;
+ }
+ ++i;
+ }
+
+ /* try backward */
+ p=limit;
+ i=countValues;
+ while(s<p) {
+ --i;
+ sIndex=(int32_t)(p-s);
+ U16_PREV(s, 0, sIndex, c2);
+ c=0x33;
+ if(valueWidth==UCPTRIE_VALUE_BITS_16) {
+ UCPTRIE_FAST_U16_PREV(trie, UCPTRIE_16, s, p, c, value);
+ } else if(valueWidth==UCPTRIE_VALUE_BITS_32) {
+ UCPTRIE_FAST_U16_PREV(trie, UCPTRIE_32, s, p, c, value);
+ } else {
+ UCPTRIE_FAST_U16_PREV(trie, UCPTRIE_8, s, p, c, value);
+ }
+ expected = U_IS_SURROGATE(c) ? errorValue : values[i];
+ if(value!=expected) {
+ log_err("error: wrong value from UCPTRIE_PREV(%s)(U+%04lx): 0x%lx instead of 0x%lx\n",
+ testName, (long)c, (long)value, (long)expected);
+ }
+ if(c!=c2) {
+ log_err("error: wrong code point from UCPTRIE_PREV(%s): U+%04lx != U+%04lx\n",
+ testName, c, c2);
+ }
+ }
+}
+
+static void
+testTrieUTF8(const char *testName,
+ const UCPTrie *trie, UCPTrieValueWidth valueWidth,
+ const CheckRange checkRanges[], int32_t countCheckRanges) {
+ // Note: The byte sequence comments refer to the original UTF-8 definition.
+ // Starting with ICU 60, any sequence that is not a prefix of a valid one
+ // is treated as multiple single-byte errors.
+ // For testing, we only rely on U8_... and UCPTrie UTF-8 macros
+ // iterating consistently.
+ static const uint8_t illegal[]={
+ 0xc0, 0x80, /* non-shortest U+0000 */
+ 0xc1, 0xbf, /* non-shortest U+007f */
+ 0xc2, /* truncated */
+ 0xe0, 0x90, 0x80, /* non-shortest U+0400 */
+ 0xe0, 0xa0, /* truncated */
+ 0xed, 0xa0, 0x80, /* lead surrogate U+d800 */
+ 0xed, 0xbf, 0xbf, /* trail surrogate U+dfff */
+ 0xf0, 0x8f, 0xbf, 0xbf, /* non-shortest U+ffff */
+ 0xf0, 0x90, 0x80, /* truncated */
+ 0xf4, 0x90, 0x80, 0x80, /* beyond-Unicode U+110000 */
+ 0xf8, 0x80, 0x80, 0x80, /* truncated */
+ 0xf8, 0x80, 0x80, 0x80, 0x80, /* 5-byte UTF-8 */
+ 0xfd, 0xbf, 0xbf, 0xbf, 0xbf, /* truncated */
+ 0xfd, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, /* 6-byte UTF-8 */
+ 0xfe,
+ 0xff
+ };
+ uint8_t s[60000];
+ uint32_t values[16000];
+
+ const uint8_t *p, *limit;
+
+ uint32_t initialValue, errorValue;
+ uint32_t value, expectedBytes, actualBytes;
+ UChar32 prevCP, c;
+ int32_t i, countSpecials, length, countValues;
+ int32_t prev8, i8;
+
+ countSpecials=getSpecialValues(checkRanges, countCheckRanges, &initialValue, &errorValue);
+
+ /* write a string */
+ prevCP=0;
+ length=countValues=0;
+ /* first a couple of trail bytes in lead position */
+ s[length++]=0x80;
+ values[countValues++]=errorValue;
+ s[length++]=0xbf;
+ values[countValues++]=errorValue;
+ prev8=i8=0;
+ for(i=countSpecials; i<countCheckRanges; ++i) {
+ value=checkRanges[i].value;
+ /* write three legal (or surrogate) code points */
+ U8_APPEND_UNSAFE(s, length, prevCP); /* start of the range */
+ if(U_IS_SURROGATE(prevCP)) {
+ // A surrogate byte sequence counts as 3 single-byte errors.
+ values[countValues++]=errorValue;
+ values[countValues++]=errorValue;
+ values[countValues++]=errorValue;
+ } else {
+ values[countValues++]=value;
+ }
+ U_ASSERT(length < UPRV_LENGTHOF(s) && countValues < UPRV_LENGTHOF(values));
+ c=checkRanges[i].limit;
+ prevCP=(prevCP+c)/2; /* middle of the range */
+ U8_APPEND_UNSAFE(s, length, prevCP);
+ if(U_IS_SURROGATE(prevCP)) {
+ // A surrogate byte sequence counts as 3 single-byte errors.
+ values[countValues++]=errorValue;
+ values[countValues++]=errorValue;
+ values[countValues++]=errorValue;
+ } else {
+ values[countValues++]=value;
+ }
+ prevCP=c;
+ --c; /* end of the range */
+ U8_APPEND_UNSAFE(s, length, c);
+ if(U_IS_SURROGATE(c)) {
+ // A surrogate byte sequence counts as 3 single-byte errors.
+ values[countValues++]=errorValue;
+ values[countValues++]=errorValue;
+ values[countValues++]=errorValue;
+ } else {
+ values[countValues++]=value;
+ }
+ /* write an illegal byte sequence */
+ if(i8<sizeof(illegal)) {
+ U8_FWD_1(illegal, i8, sizeof(illegal));
+ while(prev8<i8) {
+ s[length++]=illegal[prev8++];
+ }
+ values[countValues++]=errorValue;
+ }
+ }
+ /* write the remaining illegal byte sequences */
+ while(i8<sizeof(illegal)) {
+ U8_FWD_1(illegal, i8, sizeof(illegal));
+ while(prev8<i8) {
+ s[length++]=illegal[prev8++];
+ }
+ values[countValues++]=errorValue;
+ }
+ limit=s+length;
+ if(length>UPRV_LENGTHOF(s)) {
+ log_err("UTF-8 test string length %d > capacity %d\n", (int)length, (int)UPRV_LENGTHOF(s));
+ return;
+ }
+ if(countValues>UPRV_LENGTHOF(values)) {
+ log_err("UTF-8 test values length %d > capacity %d\n", (int)countValues, (int)UPRV_LENGTHOF(values));
+ return;
+ }
+
+ /* try forward */
+ p=s;
+ i=0;
+ while(p<limit) {
+ prev8=i8=(int32_t)(p-s);
+ U8_NEXT(s, i8, length, c);
+ if(valueWidth==UCPTRIE_VALUE_BITS_16) {
+ UCPTRIE_FAST_U8_NEXT(trie, UCPTRIE_16, p, limit, value);
+ } else if(valueWidth==UCPTRIE_VALUE_BITS_32) {
+ UCPTRIE_FAST_U8_NEXT(trie, UCPTRIE_32, p, limit, value);
+ } else {
+ UCPTRIE_FAST_U8_NEXT(trie, UCPTRIE_8, p, limit, value);
+ }
+ expectedBytes=0;
+ if(value!=values[i] || i8!=(p-s)) {
+ int32_t k=prev8;
+ while(k<i8) {
+ expectedBytes=(expectedBytes<<8)|s[k++];
+ }
+ }
+ if(i8==(p-s)) {
+ actualBytes=expectedBytes;
+ } else {
+ actualBytes=0;
+ int32_t k=prev8;
+ while(k<(p-s)) {
+ actualBytes=(actualBytes<<8)|s[k++];
+ }
+ }
+ if(value!=values[i]) {
+ log_err("error: wrong value from UCPTRIE_FAST_U8_NEXT(%s)(from %d %lx->U+%04lx) (read %d bytes): "
+ "0x%lx instead of 0x%lx (from bytes %lx)\n",
+ testName, (int)prev8, (unsigned long)actualBytes, (long)c, (int)((p-s)-prev8),
+ (long)value, (long)values[i], (unsigned long)expectedBytes);
+ }
+ if(i8!=(p-s)) {
+ log_err("error: wrong end index from UCPTRIE_FAST_U8_NEXT(%s)(from %d %lx->U+%04lx): "
+ "%ld != %ld (bytes %lx)\n",
+ testName, (int)prev8, (unsigned long)actualBytes, (long)c,
+ (long)(p-s), (long)i8, (unsigned long)expectedBytes);
+ break;
+ }
+ ++i;
+ }
+
+ /* try backward */
+ p=limit;
+ i=countValues;
+ while(s<p) {
+ --i;
+ prev8=i8=(int32_t)(p-s);
+ U8_PREV(s, 0, i8, c);
+ if(valueWidth==UCPTRIE_VALUE_BITS_16) {
+ UCPTRIE_FAST_U8_PREV(trie, UCPTRIE_16, s, p, value);
+ } else if(valueWidth==UCPTRIE_VALUE_BITS_32) {
+ UCPTRIE_FAST_U8_PREV(trie, UCPTRIE_32, s, p, value);
+ } else {
+ UCPTRIE_FAST_U8_PREV(trie, UCPTRIE_8, s, p, value);
+ }
+ expectedBytes=0;
+ if(value!=values[i] || i8!=(p-s)) {
+ int32_t k=i8;
+ while(k<prev8) {
+ expectedBytes=(expectedBytes<<8)|s[k++];
+ }
+ }
+ if(i8==(p-s)) {
+ actualBytes=expectedBytes;
+ } else {
+ actualBytes=0;
+ int32_t k=(int32_t)(p-s);
+ while(k<prev8) {
+ actualBytes=(actualBytes<<8)|s[k++];
+ }
+ }
+ if(value!=values[i]) {
+ log_err("error: wrong value from UCPTRIE_FAST_U8_PREV(%s)(from %d %lx->U+%04lx) (read %d bytes): "
+ "0x%lx instead of 0x%lx (from bytes %lx)\n",
+ testName, (int)prev8, (unsigned long)actualBytes, (long)c, (int)(prev8-(p-s)),
+ (long)value, (long)values[i], (unsigned long)expectedBytes);
+ }
+ if(i8!=(p-s)) {
+ log_err("error: wrong end index from UCPTRIE_FAST_U8_PREV(%s)(from %d %lx->U+%04lx): "
+ "%ld != %ld (bytes %lx)\n",
+ testName, (int)prev8, (unsigned long)actualBytes, (long)c,
+ (long)(p-s), (long)i8, (unsigned long)expectedBytes);
+ break;
+ }
+ }
+}
+
+static void
+testTrie(const char *testName, const UCPTrie *trie,
+ UCPTrieType type, UCPTrieValueWidth valueWidth,
+ const CheckRange checkRanges[], int32_t countCheckRanges) {
+ testTrieGetters(testName, trie, type, valueWidth, checkRanges, countCheckRanges);
+ testTrieGetRanges(testName, trie, NULL, UCPMAP_RANGE_NORMAL, 0, checkRanges, countCheckRanges);
+ if (type == UCPTRIE_TYPE_FAST) {
+ testTrieUTF16(testName, trie, valueWidth, checkRanges, countCheckRanges);
+ testTrieUTF8(testName, trie, valueWidth, checkRanges, countCheckRanges);
+ }
+}
+
+static void
+testBuilder(const char *testName, const UMutableCPTrie *mutableTrie,
+ const CheckRange checkRanges[], int32_t countCheckRanges) {
+ testBuilderGetters(testName, mutableTrie, checkRanges, countCheckRanges);
+ testTrieGetRanges(testName, NULL, mutableTrie, UCPMAP_RANGE_NORMAL, 0, checkRanges, countCheckRanges);
+}
+
+static uint32_t storage[120000];
+static uint32_t swapped[120000];
+
+static void
+testTrieSerialize(const char *testName, UMutableCPTrie *mutableTrie,
+ UCPTrieType type, UCPTrieValueWidth valueWidth, UBool withSwap,
+ const CheckRange checkRanges[], int32_t countCheckRanges) {
+ UCPTrie *trie;
+ int32_t length1, length2, length3;
+ UErrorCode errorCode;
+
+ /* clone the trie so that the caller can reuse the original */
+ errorCode=U_ZERO_ERROR;
+ mutableTrie = umutablecptrie_clone(mutableTrie, &errorCode);
+ if(U_FAILURE(errorCode)) {
+ log_err("error: umutablecptrie_clone(%s) failed - %s\n",
+ testName, u_errorName(errorCode));
+ return;
+ }
+
+ /*
+ * This is not a loop, but simply a block that we can exit with "break"
+ * when something goes wrong.
+ */
+ do {
+ errorCode=U_ZERO_ERROR;
+ trie = umutablecptrie_buildImmutable(mutableTrie, type, valueWidth, &errorCode);
+ if (U_FAILURE(errorCode)) {
+ log_err("error: umutablecptrie_buildImmutable(%s) failed: %s\n",
+ testName, u_errorName(errorCode));
+ break;
+ }
+ errorCode=U_ZERO_ERROR;
+ length1=ucptrie_toBinary(trie, NULL, 0, &errorCode);
+ if(errorCode!=U_BUFFER_OVERFLOW_ERROR) {
+ log_err("error: ucptrie_toBinary(%s) preflighting set %s != U_BUFFER_OVERFLOW_ERROR\n",
+ testName, u_errorName(errorCode));
+ break;
+ }
+ errorCode=U_ZERO_ERROR;
+ length2=ucptrie_toBinary(trie, storage, sizeof(storage), &errorCode);
+ if(errorCode==U_BUFFER_OVERFLOW_ERROR) {
+ log_err("error: ucptrie_toBinary(%s) needs more memory\n", testName);
+ break;
+ }
+ if(U_FAILURE(errorCode)) {
+ log_err("error: ucptrie_toBinary(%s) failed: %s\n", testName, u_errorName(errorCode));
+ break;
+ }
+ if(length1!=length2) {
+ log_err("error: trie serialization (%s) lengths different: "
+ "preflight vs. serialize\n", testName);
+ break;
+ }
+
+ testTrie(testName, trie, type, valueWidth, checkRanges, countCheckRanges);
+ ucptrie_close(trie);
+ trie=NULL;
+
+ if(withSwap) {
+ int32_t swappedLength;
+
+ UDataSwapper *ds;
+
+ /* swap to opposite-endian */
+ uprv_memset(swapped, 0x55, length2);
+ ds=udata_openSwapper(U_IS_BIG_ENDIAN, U_CHARSET_FAMILY,
+ !U_IS_BIG_ENDIAN, U_CHARSET_FAMILY, &errorCode);
+ swappedLength=ucptrie_swap(ds, storage, -1, NULL, &errorCode);
+ if(U_FAILURE(errorCode) || swappedLength!=length2) {
+ log_err("error: ucptrie_swap(%s to OE preflighting) failed (%s) "
+ "or before/after lengths different\n",
+ testName, u_errorName(errorCode));
+ udata_closeSwapper(ds);
+ break;
+ }
+ swappedLength=ucptrie_swap(ds, storage, length2, swapped, &errorCode);
+ udata_closeSwapper(ds);
+ if(U_FAILURE(errorCode) || swappedLength!=length2) {
+ log_err("error: ucptrie_swap(%s to OE) failed (%s) or before/after lengths different\n",
+ testName, u_errorName(errorCode));
+ break;
+ }
+
+ /* swap back to platform-endian */
+ uprv_memset(storage, 0xaa, length2);
+ ds=udata_openSwapper(!U_IS_BIG_ENDIAN, U_CHARSET_FAMILY,
+ U_IS_BIG_ENDIAN, U_CHARSET_FAMILY, &errorCode);
+ swappedLength=ucptrie_swap(ds, swapped, -1, NULL, &errorCode);
+ if(U_FAILURE(errorCode) || swappedLength!=length2) {
+ log_err("error: ucptrie_swap(%s to PE preflighting) failed (%s) "
+ "or before/after lengths different\n",
+ testName, u_errorName(errorCode));
+ udata_closeSwapper(ds);
+ break;
+ }
+ swappedLength=ucptrie_swap(ds, swapped, length2, storage, &errorCode);
+ udata_closeSwapper(ds);
+ if(U_FAILURE(errorCode) || swappedLength!=length2) {
+ log_err("error: ucptrie_swap(%s to PE) failed (%s) or before/after lengths different\n",
+ testName, u_errorName(errorCode));
+ break;
+ }
+ }
+
+ trie = ucptrie_openFromBinary(type, valueWidth, storage, length2, &length3, &errorCode);
+ if(U_FAILURE(errorCode)) {
+ log_err("error: ucptrie_openFromBinary(%s) failed, %s\n", testName, u_errorName(errorCode));
+ break;
+ }
+ if(type != ucptrie_getType(trie)) {
+ log_err("error: trie serialization (%s) did not preserve trie type\n", testName);
+ break;
+ }
+ if(valueWidth != ucptrie_getValueWidth(trie)) {
+ log_err("error: trie serialization (%s) did not preserve data value width\n", testName);
+ break;
+ }
+ if(length2!=length3) {
+ log_err("error: trie serialization (%s) lengths different: "
+ "serialize vs. unserialize\n", testName);
+ break;
+ }
+ /* overwrite the storage that is not supposed to be needed */
+ uprv_memset((char *)storage+length3, 0xfa, (int32_t)(sizeof(storage)-length3));
+
+ {
+ errorCode=U_ZERO_ERROR;
+ UCPTrie *any = ucptrie_openFromBinary(UCPTRIE_TYPE_ANY, UCPTRIE_VALUE_BITS_ANY,
+ storage, length3, NULL, &errorCode);
+ if (U_SUCCESS(errorCode)) {
+ if (type != ucptrie_getType(any)) {
+ log_err("error: ucptrie_openFromBinary("
+ "UCPTRIE_TYPE_ANY, UCPTRIE_VALUE_BITS_ANY).getType() wrong\n");
+ }
+ if (valueWidth != ucptrie_getValueWidth(any)) {
+ log_err("error: ucptrie_openFromBinary("
+ "UCPTRIE_TYPE_ANY, UCPTRIE_VALUE_BITS_ANY).getValueWidth() wrong\n");
+ }
+ ucptrie_close(any);
+ } else {
+ log_err("error: ucptrie_openFromBinary("
+ "UCPTRIE_TYPE_ANY, UCPTRIE_VALUE_BITS_ANY) failed - %s\n",
+ u_errorName(errorCode));
+ }
+ }
+
+ errorCode=U_ZERO_ERROR;
+ testTrie(testName, trie, type, valueWidth, checkRanges, countCheckRanges);
+ {
+ /* make a mutable trie from an immutable one */
+ uint32_t value, value2;
+ UMutableCPTrie *mutable2 = umutablecptrie_fromUCPTrie(trie, &errorCode);
+ if(U_FAILURE(errorCode)) {
+ log_err("error: umutablecptrie_fromUCPTrie(unserialized %s) failed - %s\n",
+ testName, u_errorName(errorCode));
+ break;
+ }
+
+ value=umutablecptrie_get(mutable2, 0xa1);
+ umutablecptrie_set(mutable2, 0xa1, 789, &errorCode);
+ value2=umutablecptrie_get(mutable2, 0xa1);
+ umutablecptrie_set(mutable2, 0xa1, value, &errorCode);
+ if(U_FAILURE(errorCode) || value2!=789) {
+ log_err("error: modifying a mutableTrie-from-UCPTrie (%s) failed - %s\n",
+ testName, u_errorName(errorCode));
+ }
+ testBuilder(testName, mutable2, checkRanges, countCheckRanges);
+ umutablecptrie_close(mutable2);
+ }
+ } while(0);
+
+ umutablecptrie_close(mutableTrie);
+ ucptrie_close(trie);
+}
+
+static UMutableCPTrie *
+testTrieSerializeAllValueWidth(const char *testName,
+ UMutableCPTrie *mutableTrie, UBool withClone,
+ const CheckRange checkRanges[], int32_t countCheckRanges) {
+ char name[40];
+ uint32_t oredValues = 0;
+ int32_t i;
+ for (i = 0; i < countCheckRanges; ++i) {
+ oredValues |= checkRanges[i].value;
+ }
+
+ testBuilder(testName, mutableTrie, checkRanges, countCheckRanges);
+
+ if (oredValues <= 0xffff) {
+ uprv_strcpy(name, testName);
+ uprv_strcat(name, ".16");
+ testTrieSerialize(name, mutableTrie,
+ UCPTRIE_TYPE_FAST, UCPTRIE_VALUE_BITS_16, withClone,
+ checkRanges, countCheckRanges);
+ }
+
+ uprv_strcpy(name, testName);
+ uprv_strcat(name, ".32");
+ testTrieSerialize(name, mutableTrie,
+ UCPTRIE_TYPE_FAST, UCPTRIE_VALUE_BITS_32, withClone,
+ checkRanges, countCheckRanges);
+
+ if (oredValues <= 0xff) {
+ uprv_strcpy(name, testName);
+ uprv_strcat(name, ".8");
+ testTrieSerialize(name, mutableTrie,
+ UCPTRIE_TYPE_FAST, UCPTRIE_VALUE_BITS_8, withClone,
+ checkRanges, countCheckRanges);
+ }
+
+ if (oredValues <= 0xffff) {
+ uprv_strcpy(name, testName);
+ uprv_strcat(name, ".small16");
+ testTrieSerialize(name, mutableTrie,
+ UCPTRIE_TYPE_SMALL, UCPTRIE_VALUE_BITS_16, withClone,
+ checkRanges, countCheckRanges);
+ }
+
+ return mutableTrie;
+}
+
+static UMutableCPTrie *
+makeTrieWithRanges(const char *testName, UBool withClone,
+ const SetRange setRanges[], int32_t countSetRanges,
+ const CheckRange checkRanges[], int32_t countCheckRanges) {
+ UMutableCPTrie *mutableTrie;
+ uint32_t initialValue, errorValue;
+ uint32_t value;
+ UChar32 start, limit;
+ int32_t i;
+ UErrorCode errorCode;
+
+ log_verbose("\ntesting Trie '%s'\n", testName);
+ errorCode=U_ZERO_ERROR;
+ getSpecialValues(checkRanges, countCheckRanges, &initialValue, &errorValue);
+ mutableTrie = umutablecptrie_open(initialValue, errorValue, &errorCode);
+ if(U_FAILURE(errorCode)) {
+ log_err("error: umutablecptrie_open(%s) failed: %s\n", testName, u_errorName(errorCode));
+ return NULL;
+ }
+
+ /* set values from setRanges[] */
+ for(i=0; i<countSetRanges; ++i) {
+ if(withClone && i==countSetRanges/2) {
+ /* switch to a clone in the middle of setting values */
+ UMutableCPTrie *clone = umutablecptrie_clone(mutableTrie, &errorCode);
+ if(U_FAILURE(errorCode)) {
+ log_err("error: umutablecptrie_clone(%s) failed - %s\n",
+ testName, u_errorName(errorCode));
+ errorCode=U_ZERO_ERROR; /* continue with the original */
+ } else {
+ umutablecptrie_close(mutableTrie);
+ mutableTrie = clone;
+ }
+ }
+ start=setRanges[i].start;
+ limit=setRanges[i].limit;
+ value=setRanges[i].value;
+ if ((limit - start) == 1) {
+ umutablecptrie_set(mutableTrie, start, value, &errorCode);
+ } else {
+ umutablecptrie_setRange(mutableTrie, start, limit-1, value, &errorCode);
+ }
+ }
+
+ if(U_SUCCESS(errorCode)) {
+ return mutableTrie;
+ } else {
+ log_err("error: setting values into a mutable trie (%s) failed - %s\n",
+ testName, u_errorName(errorCode));
+ umutablecptrie_close(mutableTrie);
+ return NULL;
+ }
+}
+
+static void
+testTrieRanges(const char *testName, UBool withClone,
+ const SetRange setRanges[], int32_t countSetRanges,
+ const CheckRange checkRanges[], int32_t countCheckRanges) {
+ UMutableCPTrie *mutableTrie = makeTrieWithRanges(
+ testName, withClone, setRanges, countSetRanges, checkRanges, countCheckRanges);
+ if (mutableTrie != NULL) {
+ mutableTrie = testTrieSerializeAllValueWidth(testName, mutableTrie, withClone,
+ checkRanges, countCheckRanges);
+ umutablecptrie_close(mutableTrie);
+ }
+}
+
+/* test data ----------------------------------------------------------------*/
+
+/* set consecutive ranges, even with value 0 */
+static const SetRange
+setRanges1[]={
+ { 0, 0x40, 0 },
+ { 0x40, 0xe7, 0x34 },
+ { 0xe7, 0x3400, 0 },
+ { 0x3400, 0x9fa6, 0x61 },
+ { 0x9fa6, 0xda9e, 0x31 },
+ { 0xdada, 0xeeee, 0xff },
+ { 0xeeee, 0x11111, 1 },
+ { 0x11111, 0x44444, 0x61 },
+ { 0x44444, 0x60003, 0 },
+ { 0xf0003, 0xf0004, 0xf },
+ { 0xf0004, 0xf0006, 0x10 },
+ { 0xf0006, 0xf0007, 0x11 },
+ { 0xf0007, 0xf0040, 0x12 },
+ { 0xf0040, 0x110000, 0 }
+};
+
+static const CheckRange
+checkRanges1[]={
+ { 0, 0 },
+ { 0x40, 0 },
+ { 0xe7, 0x34 },
+ { 0x3400, 0 },
+ { 0x9fa6, 0x61 },
+ { 0xda9e, 0x31 },
+ { 0xdada, 0 },
+ { 0xeeee, 0xff },
+ { 0x11111, 1 },
+ { 0x44444, 0x61 },
+ { 0xf0003, 0 },
+ { 0xf0004, 0xf },
+ { 0xf0006, 0x10 },
+ { 0xf0007, 0x11 },
+ { 0xf0040, 0x12 },
+ { 0x110000, 0 }
+};
+
+/* set some interesting overlapping ranges */
+static const SetRange
+setRanges2[]={
+ { 0x21, 0x7f, 0x5555 },
+ { 0x2f800, 0x2fedc, 0x7a },
+ { 0x72, 0xdd, 3 },
+ { 0xdd, 0xde, 4 },
+ { 0x201, 0x240, 6 }, /* 3 consecutive blocks with the same pattern but */
+ { 0x241, 0x280, 6 }, /* discontiguous value ranges, testing iteration */
+ { 0x281, 0x2c0, 6 },
+ { 0x2f987, 0x2fa98, 5 },
+ { 0x2f777, 0x2f883, 0 },
+ { 0x2fedc, 0x2ffaa, 1 },
+ { 0x2ffaa, 0x2ffab, 2 },
+ { 0x2ffbb, 0x2ffc0, 7 }
+};
+
+static const CheckRange
+checkRanges2[]={
+ { 0, 0 },
+ { 0x21, 0 },
+ { 0x72, 0x5555 },
+ { 0xdd, 3 },
+ { 0xde, 4 },
+ { 0x201, 0 },
+ { 0x240, 6 },
+ { 0x241, 0 },
+ { 0x280, 6 },
+ { 0x281, 0 },
+ { 0x2c0, 6 },
+ { 0x2f883, 0 },
+ { 0x2f987, 0x7a },
+ { 0x2fa98, 5 },
+ { 0x2fedc, 0x7a },
+ { 0x2ffaa, 1 },
+ { 0x2ffab, 2 },
+ { 0x2ffbb, 0 },
+ { 0x2ffc0, 7 },
+ { 0x110000, 0 }
+};
+
+/* use a non-zero initial value */
+static const SetRange
+setRanges3[]={
+ { 0x31, 0xa4, 1 },
+ { 0x3400, 0x6789, 2 },
+ { 0x8000, 0x89ab, 9 },
+ { 0x9000, 0xa000, 4 },
+ { 0xabcd, 0xbcde, 3 },
+ { 0x55555, 0x110000, 6 }, /* highStart<U+ffff with non-initialValue */
+ { 0xcccc, 0x55555, 6 }
+};
+
+static const CheckRange
+checkRanges3[]={
+ { 0, 9 }, /* non-zero initialValue */
+ { 0x31, 9 },
+ { 0xa4, 1 },
+ { 0x3400, 9 },
+ { 0x6789, 2 },
+ { 0x9000, 9 },
+ { 0xa000, 4 },
+ { 0xabcd, 9 },
+ { 0xbcde, 3 },
+ { 0xcccc, 9 },
+ { 0x110000, 6 }
+};
+
+/* empty or single-value tries, testing highStart==0 */
+static const SetRange
+setRangesEmpty[]={
+ { 0, 0, 0 }, /* need some values for it to compile */
+};
+
+static const CheckRange
+checkRangesEmpty[]={
+ { 0, 3 },
+ { 0x110000, 3 }
+};
+
+static const SetRange
+setRangesSingleValue[]={
+ { 0, 0x110000, 5 },
+};
+
+static const CheckRange
+checkRangesSingleValue[]={
+ { 0, 3 },
+ { 0x110000, 5 }
+};
+
+static void
+TrieTestSet1(void) {
+ testTrieRanges("set1", FALSE,
+ setRanges1, UPRV_LENGTHOF(setRanges1),
+ checkRanges1, UPRV_LENGTHOF(checkRanges1));
+}
+
+static void
+TrieTestSet2Overlap(void) {
+ testTrieRanges("set2-overlap", FALSE,
+ setRanges2, UPRV_LENGTHOF(setRanges2),
+ checkRanges2, UPRV_LENGTHOF(checkRanges2));
+}
+
+static void
+TrieTestSet3Initial9(void) {
+ testTrieRanges("set3-initial-9", FALSE,
+ setRanges3, UPRV_LENGTHOF(setRanges3),
+ checkRanges3, UPRV_LENGTHOF(checkRanges3));
+}
+
+static void
+TrieTestSetEmpty(void) {
+ testTrieRanges("set-empty", FALSE,
+ setRangesEmpty, 0,
+ checkRangesEmpty, UPRV_LENGTHOF(checkRangesEmpty));
+}
+
+static void
+TrieTestSetSingleValue(void) {
+ testTrieRanges("set-single-value", FALSE,
+ setRangesSingleValue, UPRV_LENGTHOF(setRangesSingleValue),
+ checkRangesSingleValue, UPRV_LENGTHOF(checkRangesSingleValue));
+}
+
+static void
+TrieTestSet2OverlapWithClone(void) {
+ testTrieRanges("set2-overlap.withClone", TRUE,
+ setRanges2, UPRV_LENGTHOF(setRanges2),
+ checkRanges2, UPRV_LENGTHOF(checkRanges2));
+}
+
+/* test mutable-trie memory management -------------------------------------- */
+
+static void
+FreeBlocksTest(void) {
+ static const CheckRange
+ checkRanges[]={
+ { 0, 1 },
+ { 0x740, 1 },
+ { 0x780, 2 },
+ { 0x880, 3 },
+ { 0x110000, 1 }
+ };
+ static const char *const testName="free-blocks";
+
+ UMutableCPTrie *mutableTrie;
+ int32_t i;
+ UErrorCode errorCode;
+
+ errorCode=U_ZERO_ERROR;
+ mutableTrie=umutablecptrie_open(1, 0xad, &errorCode);
+ if(U_FAILURE(errorCode)) {
+ log_err("error: umutablecptrie_open(%s) failed: %s\n", testName, u_errorName(errorCode));
+ return;
+ }
+
+ /*
+ * Repeatedly set overlapping same-value ranges to stress the free-data-block management.
+ * If it fails, it will overflow the data array.
+ */
+ for(i=0; i<(0x120000>>4)/2; ++i) { // 4=UCPTRIE_SHIFT_3
+ umutablecptrie_setRange(mutableTrie, 0x740, 0x840-1, 1, &errorCode);
+ umutablecptrie_setRange(mutableTrie, 0x780, 0x880-1, 1, &errorCode);
+ umutablecptrie_setRange(mutableTrie, 0x740, 0x840-1, 2, &errorCode);
+ umutablecptrie_setRange(mutableTrie, 0x780, 0x880-1, 3, &errorCode);
+ }
+ /* make blocks that will be free during compaction */
+ umutablecptrie_setRange(mutableTrie, 0x1000, 0x3000-1, 2, &errorCode);
+ umutablecptrie_setRange(mutableTrie, 0x2000, 0x4000-1, 3, &errorCode);
+ umutablecptrie_setRange(mutableTrie, 0x1000, 0x4000-1, 1, &errorCode);
+ if(U_FAILURE(errorCode)) {
+ log_err("error: setting lots of ranges into a mutable trie (%s) failed - %s\n",
+ testName, u_errorName(errorCode));
+ umutablecptrie_close(mutableTrie);
+ return;
+ }
+
+ mutableTrie = testTrieSerializeAllValueWidth(testName, mutableTrie, FALSE,
+ checkRanges, UPRV_LENGTHOF(checkRanges));
+ umutablecptrie_close(mutableTrie);
+}
+
+static void
+GrowDataArrayTest(void) {
+ static const CheckRange
+ checkRanges[]={
+ { 0, 1 },
+ { 0x720, 2 },
+ { 0x7a0, 3 },
+ { 0x8a0, 4 },
+ { 0x110000, 5 }
+ };
+ static const char *const testName="grow-data";
+
+ UMutableCPTrie *mutableTrie;
+ int32_t i;
+ UErrorCode errorCode;
+
+ errorCode=U_ZERO_ERROR;
+ mutableTrie=umutablecptrie_open(1, 0xad, &errorCode);
+ if(U_FAILURE(errorCode)) {
+ log_err("error: umutablecptrie_open(%s) failed: %s\n", testName, u_errorName(errorCode));
+ return;
+ }
+
+ /*
+ * Use umutablecptrie_set() not umutablecptrie_setRange() to write non-initialValue-data.
+ * Should grow/reallocate the data array to a sufficient length.
+ */
+ for(i=0; i<0x1000; ++i) {
+ umutablecptrie_set(mutableTrie, i, 2, &errorCode);
+ }
+ for(i=0x720; i<0x1100; ++i) { /* some overlap */
+ umutablecptrie_set(mutableTrie, i, 3, &errorCode);
+ }
+ for(i=0x7a0; i<0x900; ++i) {
+ umutablecptrie_set(mutableTrie, i, 4, &errorCode);
+ }
+ for(i=0x8a0; i<0x110000; ++i) {
+ umutablecptrie_set(mutableTrie, i, 5, &errorCode);
+ }
+ if(U_FAILURE(errorCode)) {
+ log_err("error: setting lots of values into a mutable trie (%s) failed - %s\n",
+ testName, u_errorName(errorCode));
+ umutablecptrie_close(mutableTrie);
+ return;
+ }
+
+ mutableTrie = testTrieSerializeAllValueWidth(testName, mutableTrie, FALSE,
+ checkRanges, UPRV_LENGTHOF(checkRanges));
+ umutablecptrie_close(mutableTrie);
+}
+
+static void
+ManyAllSameBlocksTest(void) {
+ static const char *const testName="many-all-same";
+
+ UMutableCPTrie *mutableTrie;
+ int32_t i;
+ UErrorCode errorCode;
+ CheckRange checkRanges[(0x110000 >> 12) + 1];
+
+ errorCode = U_ZERO_ERROR;
+ mutableTrie = umutablecptrie_open(0xff33, 0xad, &errorCode);
+ if (U_FAILURE(errorCode)) {
+ log_err("error: umutablecptrie_open(%s) failed: %s\n", testName, u_errorName(errorCode));
+ return;
+ }
+ checkRanges[0].limit = 0;
+ checkRanges[0].value = 0xff33; // initialValue
+
+ // Many all-same-value blocks.
+ for (i = 0; i < 0x110000; i += 0x1000) {
+ uint32_t value = i >> 12;
+ umutablecptrie_setRange(mutableTrie, i, i + 0xfff, value, &errorCode);
+ checkRanges[value + 1].limit = i + 0x1000;
+ checkRanges[value + 1].value = value;
+ }
+ for (i = 0; i < 0x110000; i += 0x1000) {
+ uint32_t expected = i >> 12;
+ uint32_t v0 = umutablecptrie_get(mutableTrie, i);
+ uint32_t vfff = umutablecptrie_get(mutableTrie, i + 0xfff);
+ if (v0 != expected || vfff != expected) {
+ log_err("error: UMutableCPTrie U+%04lx unexpected value\n", (long)i);
+ }
+ }
+
+ mutableTrie = testTrieSerializeAllValueWidth(testName, mutableTrie, FALSE,
+ checkRanges, UPRV_LENGTHOF(checkRanges));
+ umutablecptrie_close(mutableTrie);
+}
+
+static void
+MuchDataTest(void) {
+ static const char *const testName="much-data";
+
+ UMutableCPTrie *mutableTrie;
+ int32_t r, c;
+ UErrorCode errorCode = U_ZERO_ERROR;
+ CheckRange checkRanges[(0x10000 >> 6) + (0x10240 >> 4) + 10];
+
+ mutableTrie = umutablecptrie_open(0xff33, 0xad, &errorCode);
+ if (U_FAILURE(errorCode)) {
+ log_err("error: umutablecptrie_open(%s) failed: %s\n", testName, u_errorName(errorCode));
+ return;
+ }
+ checkRanges[0].limit = 0;
+ checkRanges[0].value = 0xff33; // initialValue
+ r = 1;
+
+ // Add much data that does not compact well,
+ // to get more than 128k data values after compaction.
+ for (c = 0; c < 0x10000; c += 0x40) {
+ uint32_t value = c >> 4;
+ umutablecptrie_setRange(mutableTrie, c, c + 0x3f, value, &errorCode);
+ checkRanges[r].limit = c + 0x40;
+ checkRanges[r++].value = value;
+ }
+ checkRanges[r].limit = 0x20000;
+ checkRanges[r++].value = 0xff33;
+ for (c = 0x20000; c < 0x30230; c += 0x10) {
+ uint32_t value = c >> 4;
+ umutablecptrie_setRange(mutableTrie, c, c + 0xf, value, &errorCode);
+ checkRanges[r].limit = c + 0x10;
+ checkRanges[r++].value = value;
+ }
+ umutablecptrie_setRange(mutableTrie, 0x30230, 0x30233, 0x3023, &errorCode);
+ checkRanges[r].limit = 0x30234;
+ checkRanges[r++].value = 0x3023;
+ umutablecptrie_setRange(mutableTrie, 0x30234, 0xdffff, 0x5005, &errorCode);
+ checkRanges[r].limit = 0xe0000;
+ checkRanges[r++].value = 0x5005;
+ umutablecptrie_setRange(mutableTrie, 0xe0000, 0x10ffff, 0x9009, &errorCode);
+ checkRanges[r].limit = 0x110000;
+ checkRanges[r++].value = 0x9009;
+ if (U_FAILURE(errorCode)) {
+ log_err("error: setting lots of values into a mutable trie (%s) failed - %s\n",
+ testName, u_errorName(errorCode));
+ umutablecptrie_close(mutableTrie);
+ return;
+ }
+ U_ASSERT(r <= UPRV_LENGTHOF(checkRanges));
+
+ testBuilder(testName, mutableTrie, checkRanges, r);
+ testTrieSerialize("much-data.16", mutableTrie,
+ UCPTRIE_TYPE_FAST, UCPTRIE_VALUE_BITS_16, FALSE, checkRanges, r);
+ umutablecptrie_close(mutableTrie);
+}
+
+static void testGetRangesFixedSurr(const char *testName, const UMutableCPTrie *mutableTrie,
+ UCPMapRangeOption option,
+ const CheckRange checkRanges[], int32_t countCheckRanges) {
+ testTrieGetRanges(testName, NULL, mutableTrie, option, 5, checkRanges, countCheckRanges);
+ UErrorCode errorCode = U_ZERO_ERROR;
+ UMutableCPTrie *clone = umutablecptrie_clone(mutableTrie, &errorCode);
+ UCPTrie *trie;
+ if (U_FAILURE(errorCode)) {
+ log_err("error: umutablecptrie_clone(%s) failed: %s\n", testName, u_errorName(errorCode));
+ return;
+ }
+ trie = umutablecptrie_buildImmutable(clone, UCPTRIE_TYPE_FAST, UCPTRIE_VALUE_BITS_16, &errorCode);
+ umutablecptrie_close(clone);
+ if (U_FAILURE(errorCode)) {
+ log_err("error: umutablecptrie_buildImmutable(%s) failed: %s\n", testName, u_errorName(errorCode));
+ return;
+ }
+ testTrieGetRanges(testName, trie, NULL, option, 5, checkRanges, countCheckRanges);
+ ucptrie_close(trie);
+}
+
+static void
+TrieTestGetRangesFixedSurr(void) {
+ static const SetRange
+ setRangesFixedSurr[]={
+ { 0xd000, 0xd7ff, 5 },
+ { 0xd7ff, 0xe001, 3 },
+ { 0xe001, 0xf900, 5 },
+ };
+
+ static const CheckRange
+ checkRangesFixedLeadSurr1[]={
+ { 0, 0 },
+ { 0xd000, 0 },
+ { 0xd7ff, 5 },
+ { 0xd800, 3 },
+ { 0xdc00, 5 },
+ { 0xe001, 3 },
+ { 0xf900, 5 },
+ { 0x110000, 0 }
+ };
+
+ static const CheckRange
+ checkRangesFixedAllSurr1[]={
+ { 0, 0 },
+ { 0xd000, 0 },
+ { 0xd7ff, 5 },
+ { 0xd800, 3 },
+ { 0xe000, 5 },
+ { 0xe001, 3 },
+ { 0xf900, 5 },
+ { 0x110000, 0 }
+ };
+
+ static const CheckRange
+ checkRangesFixedLeadSurr3[]={
+ { 0, 0 },
+ { 0xd000, 0 },
+ { 0xdc00, 5 },
+ { 0xe001, 3 },
+ { 0xf900, 5 },
+ { 0x110000, 0 }
+ };
+
+ static const CheckRange
+ checkRangesFixedAllSurr3[]={
+ { 0, 0 },
+ { 0xd000, 0 },
+ { 0xe000, 5 },
+ { 0xe001, 3 },
+ { 0xf900, 5 },
+ { 0x110000, 0 }
+ };
+
+ static const CheckRange
+ checkRangesFixedSurr4[]={
+ { 0, 0 },
+ { 0xd000, 0 },
+ { 0xf900, 5 },
+ { 0x110000, 0 }
+ };
+
+ UMutableCPTrie *mutableTrie = makeTrieWithRanges(
+ "fixedSurr", FALSE, setRangesFixedSurr, UPRV_LENGTHOF(setRangesFixedSurr),
+ checkRangesFixedLeadSurr1, UPRV_LENGTHOF(checkRangesFixedLeadSurr1));
+ UErrorCode errorCode = U_ZERO_ERROR;
+ if (mutableTrie == NULL) {
+ return;
+ }
+ testGetRangesFixedSurr("fixedLeadSurr1", mutableTrie, UCPMAP_RANGE_FIXED_LEAD_SURROGATES,
+ checkRangesFixedLeadSurr1, UPRV_LENGTHOF(checkRangesFixedLeadSurr1));
+ testGetRangesFixedSurr("fixedAllSurr1", mutableTrie, UCPMAP_RANGE_FIXED_ALL_SURROGATES,
+ checkRangesFixedAllSurr1, UPRV_LENGTHOF(checkRangesFixedAllSurr1));
+ // Setting a range in the middle of lead surrogates makes no difference.
+ umutablecptrie_setRange(mutableTrie, 0xd844, 0xd899, 5, &errorCode);
+ if (U_FAILURE(errorCode)) {
+ log_err("error: umutablecptrie_setRange(fixedSurr2) failed: %s\n", u_errorName(errorCode));
+ umutablecptrie_close(mutableTrie);
+ return;
+ }
+ testGetRangesFixedSurr("fixedLeadSurr2", mutableTrie, UCPMAP_RANGE_FIXED_LEAD_SURROGATES,
+ checkRangesFixedLeadSurr1, UPRV_LENGTHOF(checkRangesFixedLeadSurr1));
+ // Bridge the gap before the lead surrogates.
+ umutablecptrie_set(mutableTrie, 0xd7ff, 5, &errorCode);
+ if (U_FAILURE(errorCode)) {
+ log_err("error: umutablecptrie_set(fixedSurr3) failed: %s\n", u_errorName(errorCode));
+ umutablecptrie_close(mutableTrie);
+ return;
+ }
+ testGetRangesFixedSurr("fixedLeadSurr3", mutableTrie, UCPMAP_RANGE_FIXED_LEAD_SURROGATES,
+ checkRangesFixedLeadSurr3, UPRV_LENGTHOF(checkRangesFixedLeadSurr3));
+ testGetRangesFixedSurr("fixedAllSurr3", mutableTrie, UCPMAP_RANGE_FIXED_ALL_SURROGATES,
+ checkRangesFixedAllSurr3, UPRV_LENGTHOF(checkRangesFixedAllSurr3));
+ // Bridge the gap after the trail surrogates.
+ umutablecptrie_set(mutableTrie, 0xe000, 5, &errorCode);
+ if (U_FAILURE(errorCode)) {
+ log_err("error: umutablecptrie_set(fixedSurr4) failed: %s\n", u_errorName(errorCode));
+ umutablecptrie_close(mutableTrie);
+ return;
+ }
+ testGetRangesFixedSurr("fixedSurr4", mutableTrie, UCPMAP_RANGE_FIXED_ALL_SURROGATES,
+ checkRangesFixedSurr4, UPRV_LENGTHOF(checkRangesFixedSurr4));
+ umutablecptrie_close(mutableTrie);
+}
+
+static void TestSmallNullBlockMatchesFast(void) {
+ // The initial builder+getRange code had a bug:
+ // When there is no null data block in the fast-index range,
+ // but a fast-range data block starts with enough values to match a small data block,
+ // then getRange() got confused.
+ // The builder must prevent this.
+ static const SetRange setRanges[] = {
+ { 0, 0x880, 1 },
+ // U+0880..U+088F map to initial value 0, potential match for small null data block.
+ { 0x890, 0x1040, 2 },
+ // U+1040..U+1050 map to 0.
+ // First small null data block in a small-type trie.
+ // In a fast-type trie, it is ok to match a small null data block at U+1041
+ // but not at U+1040.
+ { 0x1051, 0x10000, 3 },
+ // No fast data block (block length 64) filled with 0 regardless of trie type.
+ // Need more blocks filled with 0 than the largest range above,
+ // and need a highStart above that so that it actually counts.
+ { 0x20000, 0x110000, 9 }
+ };
+
+ static const CheckRange checkRanges[] = {
+ { 0x0880, 1 },
+ { 0x0890, 0 },
+ { 0x1040, 2 },
+ { 0x1051, 0 },
+ { 0x10000, 3 },
+ { 0x20000, 0 },
+ { 0x110000, 9 }
+ };
+
+ testTrieRanges("small0-in-fast", FALSE,
+ setRanges, UPRV_LENGTHOF(setRanges),
+ checkRanges, UPRV_LENGTHOF(checkRanges));
+}
+
+static void ShortAllSameBlocksTest(void) {
+ static const char *const testName = "short-all-same";
+ // Many all-same-value blocks but only of the small block length used in the mutable trie.
+ // The builder code needs to turn a group of short ALL_SAME blocks below fastLimit
+ // into a MIXED block, and reserve data array capacity for that.
+ UErrorCode errorCode = U_ZERO_ERROR;
+ UMutableCPTrie *mutableTrie = umutablecptrie_open(0, 0xad, &errorCode);
+ CheckRange checkRanges[0x101];
+ int32_t i;
+ if (U_FAILURE(errorCode)) {
+ log_err("error: umutablecptrie_open(%s) failed: %s\n", testName, u_errorName(errorCode));
+ return;
+ }
+ for (i = 0; i < 0x1000; i += 0x10) {
+ uint32_t value = i >> 4;
+ umutablecptrie_setRange(mutableTrie, i, i + 0xf, value, &errorCode);
+ checkRanges[value].limit = i + 0x10;
+ checkRanges[value].value = value;
+ }
+ checkRanges[0x100].limit = 0x110000;
+ checkRanges[0x100].value = 0;
+ if (U_FAILURE(errorCode)) {
+ log_err("error: setting values into a mutable trie (%s) failed - %s\n",
+ testName, u_errorName(errorCode));
+ umutablecptrie_close(mutableTrie);
+ return;
+ }
+
+ mutableTrie = testTrieSerializeAllValueWidth(testName, mutableTrie, FALSE,
+ checkRanges, UPRV_LENGTHOF(checkRanges));
+ umutablecptrie_close(mutableTrie);
+}
+
+void
+addUCPTrieTest(TestNode** root) {
+ addTest(root, &TrieTestSet1, "tsutil/ucptrietest/TrieTestSet1");
+ addTest(root, &TrieTestSet2Overlap, "tsutil/ucptrietest/TrieTestSet2Overlap");
+ addTest(root, &TrieTestSet3Initial9, "tsutil/ucptrietest/TrieTestSet3Initial9");
+ addTest(root, &TrieTestSetEmpty, "tsutil/ucptrietest/TrieTestSetEmpty");
+ addTest(root, &TrieTestSetSingleValue, "tsutil/ucptrietest/TrieTestSetSingleValue");
+ addTest(root, &TrieTestSet2OverlapWithClone, "tsutil/ucptrietest/TrieTestSet2OverlapWithClone");
+ addTest(root, &FreeBlocksTest, "tsutil/ucptrietest/FreeBlocksTest");
+ addTest(root, &GrowDataArrayTest, "tsutil/ucptrietest/GrowDataArrayTest");
+ addTest(root, &ManyAllSameBlocksTest, "tsutil/ucptrietest/ManyAllSameBlocksTest");
+ addTest(root, &MuchDataTest, "tsutil/ucptrietest/MuchDataTest");
+ addTest(root, &TrieTestGetRangesFixedSurr, "tsutil/ucptrietest/TrieTestGetRangesFixedSurr");
+ addTest(root, &TestSmallNullBlockMatchesFast, "tsutil/ucptrietest/TestSmallNullBlockMatchesFast");
+ addTest(root, &ShortAllSameBlocksTest, "tsutil/ucptrietest/ShortAllSameBlocksTest");
+}
diff --git a/Build/source/libs/icu/icu-src/source/test/cintltst/unumberformattertst.c b/Build/source/libs/icu/icu-src/source/test/cintltst/unumberformattertst.c
new file mode 100644
index 00000000000..0d3f7f134d0
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/test/cintltst/unumberformattertst.c
@@ -0,0 +1,190 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+// Allow implicit conversion from char16_t* to UnicodeString for this file:
+// Helpful in toString methods and elsewhere.
+#define UNISTR_FROM_STRING_EXPLICIT
+
+#include "unicode/unumberformatter.h"
+#include "unicode/umisc.h"
+#include "unicode/unum.h"
+#include "cintltst.h"
+#include "cmemory.h"
+
+static void TestSkeletonFormatToString(void);
+
+static void TestSkeletonFormatToFields(void);
+
+static void TestExampleCode(void);
+
+void addUNumberFormatterTest(TestNode** root);
+
+void addUNumberFormatterTest(TestNode** root) {
+ addTest(root, &TestSkeletonFormatToString, "unumberformatter/TestSkeletonFormatToString");
+ addTest(root, &TestSkeletonFormatToFields, "unumberformatter/TestSkeletonFormatToFields");
+ addTest(root, &TestExampleCode, "unumberformatter/TestExampleCode");
+}
+
+
+#define CAPACITY 30
+
+static void TestSkeletonFormatToString() {
+ UErrorCode ec = U_ZERO_ERROR;
+ UChar buffer[CAPACITY];
+ UFormattedNumber* result = NULL;
+
+ // setup:
+ UNumberFormatter* f = unumf_openForSkeletonAndLocale(
+ u"precision-integer currency/USD sign-accounting", -1, "en", &ec);
+ assertSuccessCheck("Should create without error", &ec, TRUE);
+ result = unumf_openResult(&ec);
+ assertSuccess("Should create result without error", &ec);
+
+ // int64 test:
+ unumf_formatInt(f, -444444, result, &ec);
+ // Missing data will give a U_MISSING_RESOURCE_ERROR here.
+ if (assertSuccessCheck("Should format integer without error", &ec, TRUE)) {
+ unumf_resultToString(result, buffer, CAPACITY, &ec);
+ assertSuccess("Should print string to buffer without error", &ec);
+ assertUEquals("Should produce expected string result", u"($444,444)", buffer);
+
+ // double test:
+ unumf_formatDouble(f, -5142.3, result, &ec);
+ assertSuccess("Should format double without error", &ec);
+ unumf_resultToString(result, buffer, CAPACITY, &ec);
+ assertSuccess("Should print string to buffer without error", &ec);
+ assertUEquals("Should produce expected string result", u"($5,142)", buffer);
+
+ // decnumber test:
+ unumf_formatDecimal(f, "9.876E2", -1, result, &ec);
+ assertSuccess("Should format decimal without error", &ec);
+ unumf_resultToString(result, buffer, CAPACITY, &ec);
+ assertSuccess("Should print string to buffer without error", &ec);
+ assertUEquals("Should produce expected string result", u"$988", buffer);
+ }
+
+ // cleanup:
+ unumf_closeResult(result);
+ unumf_close(f);
+}
+
+
+static void TestSkeletonFormatToFields() {
+ UErrorCode ec = U_ZERO_ERROR;
+ UFieldPositionIterator* ufpositer = NULL;
+
+ // setup:
+ UNumberFormatter* uformatter = unumf_openForSkeletonAndLocale(
+ u".00 measure-unit/length-meter sign-always", -1, "en", &ec);
+ assertSuccessCheck("Should create without error", &ec, TRUE);
+ UFormattedNumber* uresult = unumf_openResult(&ec);
+ assertSuccess("Should create result without error", &ec);
+ unumf_formatInt(uformatter, 9876543210L, uresult, &ec); // "+9,876,543,210.00 m"
+ if (assertSuccessCheck("unumf_formatInt() failed", &ec, TRUE)) {
+
+ // field position test:
+ UFieldPosition ufpos = {UNUM_DECIMAL_SEPARATOR_FIELD};
+ unumf_resultNextFieldPosition(uresult, &ufpos, &ec);
+ assertIntEquals("Field position should be correct", 14, ufpos.beginIndex);
+ assertIntEquals("Field position should be correct", 15, ufpos.endIndex);
+
+ // field position iterator test:
+ ufpositer = ufieldpositer_open(&ec);
+ if (assertSuccessCheck("Should create iterator without error", &ec, TRUE)) {
+
+ unumf_resultGetAllFieldPositions(uresult, ufpositer, &ec);
+ static const UFieldPosition expectedFields[] = {
+ // Field, begin index, end index
+ {UNUM_SIGN_FIELD, 0, 1},
+ {UNUM_GROUPING_SEPARATOR_FIELD, 2, 3},
+ {UNUM_GROUPING_SEPARATOR_FIELD, 6, 7},
+ {UNUM_GROUPING_SEPARATOR_FIELD, 10, 11},
+ {UNUM_INTEGER_FIELD, 1, 14},
+ {UNUM_DECIMAL_SEPARATOR_FIELD, 14, 15},
+ {UNUM_FRACTION_FIELD, 15, 17}
+ };
+ UFieldPosition actual;
+ for (int32_t i = 0; i < sizeof(expectedFields) / sizeof(*expectedFields); i++) {
+ // Iterate using the UFieldPosition to hold state...
+ UFieldPosition expected = expectedFields[i];
+ actual.field = ufieldpositer_next(ufpositer, &actual.beginIndex, &actual.endIndex);
+ assertTrue("Should not return a negative index yet", actual.field >= 0);
+ if (expected.field != actual.field) {
+ log_err(
+ "FAIL: iteration %d; expected field %d; got %d\n", i, expected.field, actual.field);
+ }
+ if (expected.beginIndex != actual.beginIndex) {
+ log_err(
+ "FAIL: iteration %d; expected beginIndex %d; got %d\n",
+ i,
+ expected.beginIndex,
+ actual.beginIndex);
+ }
+ if (expected.endIndex != actual.endIndex) {
+ log_err(
+ "FAIL: iteration %d; expected endIndex %d; got %d\n",
+ i,
+ expected.endIndex,
+ actual.endIndex);
+ }
+ }
+ actual.field = ufieldpositer_next(ufpositer, &actual.beginIndex, &actual.endIndex);
+ assertTrue("No more fields; should return a negative index", actual.field < 0);
+
+ // next field iteration:
+ actual.field = UNUM_GROUPING_SEPARATOR_FIELD;
+ actual.beginIndex = 0;
+ actual.endIndex = 0;
+ int32_t i = 1;
+ while (unumf_resultNextFieldPosition(uresult, &actual, &ec)) {
+ UFieldPosition expected = expectedFields[i++];
+ assertIntEquals("Grouping separator begin index", expected.beginIndex, actual.beginIndex);
+ assertIntEquals("Grouping separator end index", expected.endIndex, actual.endIndex);
+ }
+ assertIntEquals("Should have seen all grouping separators", 4, i);
+ }
+ }
+
+ // cleanup:
+ unumf_closeResult(uresult);
+ unumf_close(uformatter);
+ ufieldpositer_close(ufpositer);
+}
+
+
+static void TestExampleCode() {
+ // This is the example code given in unumberformatter.h.
+
+ // Setup:
+ UErrorCode ec = U_ZERO_ERROR;
+ UNumberFormatter* uformatter = unumf_openForSkeletonAndLocale(u"precision-integer", -1, "en", &ec);
+ UFormattedNumber* uresult = unumf_openResult(&ec);
+ UChar* buffer = NULL;
+ assertSuccessCheck("There should not be a failure in the example code", &ec, TRUE);
+
+ // Format a double:
+ unumf_formatDouble(uformatter, 5142.3, uresult, &ec);
+ if (assertSuccessCheck("There should not be a failure in the example code", &ec, TRUE)) {
+
+ // Export the string to a malloc'd buffer:
+ int32_t len = unumf_resultToString(uresult, NULL, 0, &ec);
+ assertTrue("No buffer yet", ec == U_BUFFER_OVERFLOW_ERROR);
+ ec = U_ZERO_ERROR;
+ buffer = (UChar*) uprv_malloc((len+1)*sizeof(UChar));
+ unumf_resultToString(uresult, buffer, len+1, &ec);
+ assertSuccess("There should not be a failure in the example code", &ec);
+ assertUEquals("Should produce expected string result", u"5,142", buffer);
+ }
+
+ // Cleanup:
+ unumf_close(uformatter);
+ unumf_closeResult(uresult);
+ uprv_free(buffer);
+}
+
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/test/cintltst/uregiontest.c b/Build/source/libs/icu/icu-src/source/test/cintltst/uregiontest.c
index fb8690db91a..93e2f19b6e7 100644
--- a/Build/source/libs/icu/icu-src/source/test/cintltst/uregiontest.c
+++ b/Build/source/libs/icu/icu-src/source/test/cintltst/uregiontest.c
@@ -316,7 +316,7 @@ static KnownRegion knownRegions[] = {
{ "TA" , -1, "QO", URGN_TERRITORY, "009" },
{ "TC" , 796, "029", URGN_TERRITORY, "019" },
{ "TD" , 148, "017", URGN_TERRITORY, "002" },
- { "TF" , 260, "145", URGN_TERRITORY, "142" },
+ { "TF" , 260, "014", URGN_TERRITORY, "002" },
{ "TG" , 768, "011", URGN_TERRITORY, "002" },
{ "TH" , 764, "035", URGN_TERRITORY, "142" },
{ "TJ" , 762, "143", URGN_TERRITORY, "142" },
diff --git a/Build/source/libs/icu/icu-src/source/test/depstest/dependencies.py b/Build/source/libs/icu/icu-src/source/test/depstest/dependencies.py
index 87bbc8cdfb4..f4e7a7d4751 100644
--- a/Build/source/libs/icu/icu-src/source/test/depstest/dependencies.py
+++ b/Build/source/libs/icu/icu-src/source/test/depstest/dependencies.py
@@ -1,4 +1,4 @@
-#! /usr/bin/python
+#! /usr/bin/python -B
# -*- coding: utf-8 -*-
#
# Copyright (C) 2016 and later: Unicode, Inc. and others.
diff --git a/Build/source/libs/icu/icu-src/source/test/depstest/dependencies.txt b/Build/source/libs/icu/icu-src/source/test/depstest/dependencies.txt
index f4605547dc7..1d05d398437 100644
--- a/Build/source/libs/icu/icu-src/source/test/depstest/dependencies.txt
+++ b/Build/source/libs/icu/icu-src/source/test/depstest/dependencies.txt
@@ -18,7 +18,7 @@ system_symbols:
# C
PIC system_misc system_debug malloc_functions ubsan
c_strings c_string_formatting
- floating_point trigonometry
+ int_functions floating_point trigonometry
stdlib_qsort
pthread system_locale
stdio_input stdio_output file_io readlink_function dir_io mmap_functions dlfcn
@@ -58,8 +58,11 @@ group: c_string_formatting
# Additional symbols in an optimized build.
__sprintf_chk
+group: int_functions
+ div
+
group: floating_point
- abs fabs floor ceil modf fmod log pow round sqrt
+ abs fabs floor ceil modf fmod log pow round sqrt trunc
group: trigonometry
acos asin atan atan2 cos sin tan
@@ -154,13 +157,12 @@ library: common
unistr_props unistr_case unistr_case_locale unistr_titlecase_brkiter unistr_cnv
cstr
uniset_core uniset_props uniset_closure usetiter uset uset_props
+ static_unicode_sets
uiter edits
ucasemap ucasemap_titlecase_brkiter script_runs
- uprops ubidi_props ucase uscript uscript_props
+ uprops ubidi_props ucase uscript uscript_props characterproperties
ubidi ushape ubiditransform
- listformatter
resourcebundle service_registration resbund_cnv ures_cnv icudataver ucat
- loclikely
currency
locale_display_names2
conversion converter_selector ucnv_set ucnvdisp
@@ -171,7 +173,7 @@ library: common
ucharstriebuilder ucharstrieiterator
bytestriebuilder bytestrieiterator
hashtable uhash uvector uvector32 uvector64 ulist
- propsvec utrie2 utrie2_builder
+ propsvec utrie2 utrie2_builder ucptrie umutablecptrie utrie_swap
sort
uinit utypes errorcode
icuplug
@@ -203,7 +205,7 @@ group: breakiterator
deps
resourcebundle service_registration
schriter utext uniset_core uniset_props
- uhash ustack utrie
+ uhash ustack utrie2_builder
ucharstrie bytestrie
ucharstriebuilder # for filteredbrk.o
normlzr # for dictbe.o, should switch to Normalizer2
@@ -253,7 +255,7 @@ group: stringprep
deps
unorm # could change to use filterednormalizer2 directly for Unicode 3.2 normalization
normalizer2
- ubidi_props
+ ubidi_props utrie
group: canonical_iterator
caniter.o
@@ -271,7 +273,8 @@ group: normalizer2
deps
uniset_core
bytestream bytesinkutil # for UTF-8 output
- utrie2_builder # for building CanonIterData & FCD
+ umutablecptrie # for building CanonIterData & FCD
+ utrie_swap # TODO(ICU-20170): move unorm2_swap() to a separate file
uvector # for building CanonIterData
uhash # for the instance cache
udata
@@ -281,6 +284,11 @@ group: punycode
deps
platform
+group: static_unicode_sets
+ static_unicode_sets.o
+ deps
+ resourcebundle uniset_props
+
group: uset_props
uset_props.o
deps
@@ -299,7 +307,7 @@ group: uniset_closure
group: uniset_props
uniset_props.o ruleiter.o
deps
- uniset_core uprops unistr_case
+ uniset_core uprops unistr_case characterproperties
parsepos
resourcebundle
propname unames
@@ -374,7 +382,7 @@ group: cstr
group: uscript
uscript.o # uscript_getCode() accepts a locale ID and loads its script code data
deps
- propname loclikely
+ propname resourcebundle
group: uscript_props # script metadata properties
uscript_props.o
@@ -390,6 +398,12 @@ group: uprops
unistr_case ustring_case # only for case folding
ucase
+group: characterproperties
+ characterproperties.o
+ deps
+ uprops
+ uniset_core
+
group: propname
propname.o
deps
@@ -475,6 +489,8 @@ group: ustr_titlecase_brkiter
group: edits
edits.o
deps
+ # Edits::Iterator::toString() calls ICU_Utility::appendNumber()
+ icu_utility
platform
group: ucasemap_titlecase_brkiter
@@ -514,7 +530,7 @@ group: uinit
group: converter_selector
ucnvsel.o
deps
- conversion propsvec utrie2_builder uset ucnv_set
+ conversion propsvec utrie2_builder utrie_swap uset ucnv_set
group: ucnvdisp # ucnv_getDisplayName()
ucnvdisp.o
@@ -549,11 +565,6 @@ group: service_registration
locale_display_names resourcebundle
hashtable uvector
-group: listformatter
- listformatter.o ulistformatter.o
- deps
- resourcebundle simpleformatter
-
group: ucat # message-catalog-like API
ucat.o
deps
@@ -572,19 +583,15 @@ group: locale_display_names2
group: currency
ucurr.o
deps
- loclikely resourcebundle ulist ustring_case_locale
+ resourcebundle ulist ustring_case_locale
stdlib_qsort # for ucurr.o (which does not use ICU's uarrsort.o)
+ static_unicode_sets usetiter
group: icudataver # u_getDataVersion()
icudataver.o
deps
resourcebundle
-group: loclikely
- loclikely.o
- deps
- resourcebundle uscript_props propname
-
group: locresdata
# This was intended to collect locale functions that load resource bundle data.
# See the resourcebundle group about what else loads data.
@@ -619,9 +626,12 @@ group: resourcebundle
locid.o locmap.o wintz.o
# Do we need class LocaleBased? http://bugs.icu-project.org/trac/ticket/8608
locbased.o
+ loclikely.o
deps
udata ucol_swp
sort stringenumeration uhash uvector
+ uscript_props propname
+ bytesinkutil
group: udata
udata.o ucmndata.o udatamem.o
@@ -676,20 +686,34 @@ group: propsvec
deps
sort utrie2_builder
+group: utrie_swap
+ utrie_swap.o
+ deps
+ udata
+
+group: umutablecptrie
+ umutablecptrie.o
+ deps
+ ucptrie
+
+group: ucptrie
+ ucptrie.o
+ deps
+ platform
+
group: utrie2_builder
utrie2_builder.o
deps
platform
utrie2
utrie # for utrie2_fromUTrie()
- ucol_swp # for utrie_swap()
-group: utrie2
+group: utrie2 # Try to switch users to ucptrie.
utrie2.o
deps
platform
-group: utrie # Callers should use utrie2 instead.
+group: utrie # Callers should use ucptrie instead.
utrie.o
deps
platform
@@ -758,7 +782,7 @@ group: icuplug
group: ucol_swp
ucol_swp.o
deps
- utrie2 # Format version 4 uses UTrie2.
+ utrie_swap
group: errorcode # ErrorCode base class
errorcode.o
@@ -803,8 +827,9 @@ library: i18n
region localedata genderinfo charset_detector spoof_detection
alphabetic_index collation collation_builder string_search
dayperiodrules
+ listformatter
formatting formattable_cnv regex regex_cnv translit
- double_conversion numberformatter
+ double_conversion number_representation numberformatter numberparser
universal_time_scale
uclean_i18n
@@ -820,7 +845,6 @@ group: localedata
deps
uniset_props resourcebundle
uset_props # TODO: change to using C++ UnicodeSet, remove this dependency
- loclikely
group: genderinfo
gender.o
@@ -859,7 +883,7 @@ group: collation
ucol_res.o ucol_sit.o ucoleitr.o
deps
bytestream normalizer2 resourcebundle service_registration unifiedcache
- ucharstrieiterator uiter ulist uset usetiter uvector32 uvector64
+ ucharstrieiterator uiter ulist uset usetiter uvector32 uvector64 utrie2
uclean_i18n propname
group: collation_builder
@@ -878,42 +902,66 @@ group: dayperiodrules
deps
resourcebundle uclean_i18n
+group: listformatter
+ listformatter.o ulistformatter.o
+ deps
+ resourcebundle simpleformatter format uclean_i18n
+
group: double_conversion
double-conversion.o double-conversion-bignum.o double-conversion-bignum-dtoa.o
double-conversion-cached-powers.o double-conversion-diy-fp.o
- double-conversion-fast-dtoa.o
+ double-conversion-fast-dtoa.o double-conversion-strtod.o
deps
platform
+group: number_representation
+ number_decimalquantity.o number_stringbuilder.o numparse_stringsegment.o number_utils.o
+ deps
+ decnumber double_conversion
+ # for data loading; that could be split off
+ resourcebundle
+ int_functions
+ ucase uniset_core
+
group: numberformatter
# ICU 60+ NumberFormatter API
- number_affixutils.o number_compact.o number_decimalquantity.o
- number_decimfmtprops.o number_fluent.o number_formatimpl.o
+ number_affixutils.o number_asformat.o
+ number_capi.o number_compact.o number_currencysymbols.o
+ number_decimfmtprops.o
+ number_fluent.o number_formatimpl.o
number_grouping.o number_integerwidth.o number_longnames.o
- number_modifiers.o number_notation.o number_padding.o
+ number_mapper.o number_modifiers.o number_multiplier.o
+ number_notation.o number_padding.o
number_patternmodifier.o number_patternstring.o number_rounding.o
- number_scientific.o number_stringbuilder.o
+ number_scientific.o number_skeletons.o
+ currpinf.o dcfmtsym.o numsys.o
+ numrange_fluent.o numrange_impl.o
+ # pluralrules
+ standardplural.o plurrule.o
deps
- digitlist formattable format units
- # TODO: fix: dependency on formatting needed for circular dependency pluralrules <-> decimfmt.o
- # We should be able to have a small pluralrules group and depend on that here.
- formatting
+ decnumber double_conversion formattable format units
+ number_representation
uclean_i18n common
+group: numberparser
+ numparse_affixes.o numparse_compositions.o numparse_currency.o
+ numparse_decimal.o numparse_impl.o numparse_parsednumber.o
+ numparse_scientific.o numparse_symbols.o
+ numparse_validators.o
+ deps
+ numberformatter
+
group: formatting
# TODO: Try to subdivide this ball of wax.
# currencyformat
- curramt.o currfmt.o currpinf.o
+ curramt.o currfmt.o
+ # pluralrules C API
+ upluralrules.o
# decimalformat
- dcfmtsym.o numsys.o unumsys.o
- affixpatternparser.o decimfmtimpl.o digitaffix.o digitaffixesandpadding.o
- digitformatter.o digitgrouping.o digitinterval.o
- pluralaffix.o precision.o smallintformatter.o valueformatter.o
- decfmtst.o decimfmt.o decimalformatpattern.o compactdecimalformat.o
+ unumsys.o
+ decimfmt.o compactdecimalformat.o
numfmt.o unum.o
winnmfmt.o
- # pluralrules
- standardplural.o plurrule.o upluralrules.o
# scientificnumberformatter - would depend on dcfmtsym, so would be circular.
scientificnumberformatter.o
# rbnf
@@ -923,6 +971,7 @@ group: formatting
# dateformat
astro.o buddhcal.o calendar.o cecal.o chnsecal.o coptccal.o dangical.o ethpccal.o
gregocal.o gregoimp.o hebrwcal.o indiancal.o islamcal.o japancal.o persncal.o taiwncal.o
+ erarules.o # mostly for Japanese eras
ucal.o
basictz.o olsontz.o rbtz.o simpletz.o timezone.o tzrule.o tztrans.o
vtzone.o vzone.o wintzimpl.o zonemeta.o zrule.o ztrans.o
@@ -934,7 +983,8 @@ group: formatting
# messageformat
choicfmt.o msgfmt.o plurfmt.o selfmt.o umsg.o
deps
- digitlist formattable format units
+ decnumber formattable format units numberformatter numberparser
+ listformatter
dayperiodrules
collation collation_builder # for rbnf
common
@@ -953,8 +1003,8 @@ group: units
deps
stringenumeration
-group: digitlist
- digitlst.o decContext.o decNumber.o visibledigits.o
+group: decnumber
+ decContext.o decNumber.o
deps
double_conversion uclean_i18n
@@ -962,7 +1012,7 @@ group: formattable
fmtable.o
measure.o
deps
- digitlist
+ decnumber number_representation
group: formattable_cnv
fmtable_cnv.o
diff --git a/Build/source/libs/icu/icu-src/source/test/depstest/depstest.py b/Build/source/libs/icu/icu-src/source/test/depstest/depstest.py
index 2a542e78707..231c6819c6e 100644
--- a/Build/source/libs/icu/icu-src/source/test/depstest/depstest.py
+++ b/Build/source/libs/icu/icu-src/source/test/depstest/depstest.py
@@ -1,4 +1,4 @@
-#! /usr/bin/python
+#! /usr/bin/python -B
# -*- coding: utf-8 -*-
#
# Copyright (C) 2016 and later: Unicode, Inc. and others.
diff --git a/Build/source/libs/icu/icu-src/source/test/hdrtst/cxxfiles.txt b/Build/source/libs/icu/icu-src/source/test/hdrtst/cxxfiles.txt
index afe1ff1796f..2084d615737 100644
--- a/Build/source/libs/icu/icu-src/source/test/hdrtst/cxxfiles.txt
+++ b/Build/source/libs/icu/icu-src/source/test/hdrtst/cxxfiles.txt
@@ -68,6 +68,7 @@ normalizer2.h
normlzr.h
nounit.h
numberformatter.h
+numberrangeformatter.h
numfmt.h
numsys.h
parsepos.h
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/Makefile.in b/Build/source/libs/icu/icu-src/source/test/intltest/Makefile.in
index e8a5b72b22d..ad47ad0a14b 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/Makefile.in
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/Makefile.in
@@ -61,10 +61,12 @@ windttst.o winnmtst.o winutil.o csdetest.o tzrulets.o tzoffloc.o tzfmttst.o ssea
tufmtts.o itspoof.o simplethread.o bidiconf.o locnmtst.o dcfmtest.o alphaindextst.o listformattertest.o genderinfotest.o compactdecimalformattest.o regiontst.o \
reldatefmttest.o simpleformattertest.o measfmttest.o numfmtspectest.o unifiedcachetest.o quantityformattertest.o \
scientificnumberformattertest.o datadrivennumberformattestsuite.o \
-numberformattesttuple.o numberformat2test.o pluralmaptest.o \
+numberformattesttuple.o pluralmaptest.o \
numbertest_affixutils.o numbertest_api.o numbertest_decimalquantity.o \
numbertest_modifiers.o numbertest_patternmodifier.o numbertest_patternstring.o \
-numbertest_stringbuilder.o numbertest_doubleconversion.o
+numbertest_stringbuilder.o numbertest_stringsegment.o \
+numbertest_parse.o numbertest_doubleconversion.o numbertest_skeletons.o \
+static_unisets_test.o numfmtdatadriventest.o numbertest_range.o erarulestest.o
DEPS = $(OBJECTS:.o=.d)
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/apicoll.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/apicoll.cpp
index d3baa66067f..b08211a1d96 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/apicoll.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/apicoll.cpp
@@ -228,13 +228,13 @@ CollationAPITest::TestProperty(/* char* par */)
void CollationAPITest::TestKeywordValues() {
IcuTestErrorCode errorCode(*this, "TestKeywordValues");
LocalPointer<Collator> col(Collator::createInstance(Locale::getEnglish(), errorCode));
- if (errorCode.logIfFailureAndReset("English Collator creation failed")) {
+ if (errorCode.errIfFailureAndReset("English Collator creation failed")) {
return;
}
LocalPointer<StringEnumeration> kwEnum(
col->getKeywordValuesForLocale("collation", Locale::getEnglish(), TRUE, errorCode));
- if (errorCode.logIfFailureAndReset("Get Keyword Values for English Collator failed")) {
+ if (errorCode.errIfFailureAndReset("Get Keyword Values for English Collator failed")) {
return;
}
assertTrue("expect at least one collation tailoring for English", kwEnum->count(errorCode) > 0);
@@ -1238,7 +1238,7 @@ void CollationAPITest::TestSortKey()
void CollationAPITest::TestSortKeyOverflow() {
IcuTestErrorCode errorCode(*this, "TestSortKeyOverflow()");
LocalPointer<Collator> col(Collator::createInstance(Locale::getEnglish(), errorCode));
- if (errorCode.logDataIfFailureAndReset("Collator::createInstance(English) failed")) {
+ if (errorCode.errDataIfFailureAndReset("Collator::createInstance(English) failed")) {
return;
}
col->setAttribute(UCOL_STRENGTH, UCOL_PRIMARY, errorCode);
@@ -2371,7 +2371,7 @@ void CollationAPITest::TestCloneBinary() {
IcuTestErrorCode errorCode(*this, "TestCloneBinary");
LocalPointer<Collator> root(Collator::createInstance(Locale::getRoot(), errorCode));
LocalPointer<Collator> coll(Collator::createInstance("de@collation=phonebook", errorCode));
- if(errorCode.logDataIfFailureAndReset("Collator::createInstance(de@collation=phonebook)")) {
+ if(errorCode.errDataIfFailureAndReset("Collator::createInstance(de@collation=phonebook)")) {
return;
}
RuleBasedCollator *rbRoot = dynamic_cast<RuleBasedCollator *>(root.getAlias());
@@ -2386,13 +2386,13 @@ void CollationAPITest::TestCloneBinary() {
assertEquals("rbc/primary: u-umlaut==ue", (int32_t)UCOL_EQUAL, rbc->compare(uUmlaut, ue, errorCode));
uint8_t bin[25000];
int32_t binLength = rbc->cloneBinary(bin, UPRV_LENGTHOF(bin), errorCode);
- if(errorCode.logDataIfFailureAndReset("rbc->cloneBinary()")) {
+ if(errorCode.errDataIfFailureAndReset("rbc->cloneBinary()")) {
return;
}
logln("rbc->cloneBinary() -> %d bytes", (int)binLength);
RuleBasedCollator rbc2(bin, binLength, rbRoot, errorCode);
- if(errorCode.logDataIfFailureAndReset("RuleBasedCollator(rbc binary)")) {
+ if(errorCode.errDataIfFailureAndReset("RuleBasedCollator(rbc binary)")) {
return;
}
assertEquals("rbc2.strength==primary", (int32_t)UCOL_PRIMARY, rbc2.getAttribute(UCOL_STRENGTH, errorCode));
@@ -2404,7 +2404,7 @@ void CollationAPITest::TestCloneBinary() {
assertTrue("rbc binary==rbc2 binary", binLength == bin2Length && memcmp(bin, bin2, binLength) == 0);
RuleBasedCollator rbc3(bin, -1, rbRoot, errorCode);
- if(errorCode.logDataIfFailureAndReset("RuleBasedCollator(rbc binary, length<0)")) {
+ if(errorCode.errDataIfFailureAndReset("RuleBasedCollator(rbc binary, length<0)")) {
return;
}
assertEquals("rbc3.strength==primary", (int32_t)UCOL_PRIMARY, rbc3.getAttribute(UCOL_STRENGTH, errorCode));
@@ -2424,7 +2424,7 @@ void CollationAPITest::TestIterNumeric() {
// and on the implementation code.
IcuTestErrorCode errorCode(*this, "TestIterNumeric");
RuleBasedCollator coll(UnicodeString("[reorder Hang Hani]"), errorCode);
- if(errorCode.logDataIfFailureAndReset("RuleBasedCollator constructor")) {
+ if(errorCode.errDataIfFailureAndReset("RuleBasedCollator constructor")) {
return;
}
coll.setAttribute(UCOL_NUMERIC_COLLATION, UCOL_ON, errorCode);
@@ -2512,7 +2512,7 @@ void CollationAPITest::TestGapTooSmall() {
{
RuleBasedCollator coll(u"&[before 1]\uFDD1€<*\u4E00-\u9FFF", errorCode);
assertTrue("tailored Han before currency", coll.compare(u"\u4E00", u"$", errorCode) < 0);
- errorCode.logIfFailureAndReset(
+ errorCode.errIfFailureAndReset(
"unexpected exception for tailoring many characters at the end of symbols");
}
}
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/bidiconf.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/bidiconf.cpp
index 529d7bca1b4..8df8da627c6 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/bidiconf.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/bidiconf.cpp
@@ -260,7 +260,7 @@ UBool BiDiConformanceTest::parseInputStringFromBiDiClasses(const char *&start) {
void BiDiConformanceTest::TestBidiTest() {
IcuTestErrorCode errorCode(*this, "TestBidiTest");
const char *sourceTestDataPath=getSourceTestData(errorCode);
- if(errorCode.logIfFailureAndReset("unable to find the source/test/testdata "
+ if(errorCode.errIfFailureAndReset("unable to find the source/test/testdata "
"folder (getSourceTestData())")) {
return;
}
@@ -275,7 +275,7 @@ void BiDiConformanceTest::TestBidiTest() {
LocalUBiDiPointer ubidi(ubidi_open());
ubidi_setClassCallback(ubidi.getAlias(), biDiConfUBiDiClassCallback, NULL,
NULL, NULL, errorCode);
- if(errorCode.logIfFailureAndReset("ubidi_setClassCallback()")) {
+ if(errorCode.errIfFailureAndReset("ubidi_setClassCallback()")) {
return;
}
lineNumber=0;
@@ -333,7 +333,7 @@ void BiDiConformanceTest::TestBidiTest() {
ubidi_setPara(ubidi.getAlias(), inputString.getBuffer(), inputString.length(),
paraLevels[i], NULL, errorCode);
const UBiDiLevel *actualLevels=ubidi_getLevels(ubidi.getAlias(), errorCode);
- if(errorCode.logIfFailureAndReset("ubidi_setPara() or ubidi_getLevels()")) {
+ if(errorCode.errIfFailureAndReset("ubidi_setPara() or ubidi_getLevels()")) {
errln("Input line %d: %s", (int)lineNumber, line);
return;
}
@@ -429,7 +429,7 @@ L L R R R B R R L L L B ON ON ; 3 ; 0 ; 0 0 1 1 1 0 1 1 2 2 2 1 1 1
void BiDiConformanceTest::TestBidiCharacterTest() {
IcuTestErrorCode errorCode(*this, "TestBidiCharacterTest");
const char *sourceTestDataPath=getSourceTestData(errorCode);
- if(errorCode.logIfFailureAndReset("unable to find the source/test/testdata "
+ if(errorCode.errIfFailureAndReset("unable to find the source/test/testdata "
"folder (getSourceTestData())")) {
return;
}
@@ -463,7 +463,7 @@ void BiDiConformanceTest::TestBidiCharacterTest() {
// Parse the code point string in field 0.
UChar *buffer=inputString.getBuffer(200);
int32_t length=u_parseString(start, buffer, inputString.getCapacity(), NULL, errorCode);
- if(errorCode.logIfFailureAndReset("Invalid string in field 0")) {
+ if(errorCode.errIfFailureAndReset("Invalid string in field 0")) {
errln("Input line %d: %s", (int)lineNumber, line);
inputString.remove();
continue;
@@ -542,7 +542,7 @@ void BiDiConformanceTest::TestBidiCharacterTest() {
ubidi_setPara(ubidi.getAlias(), inputString.getBuffer(), inputString.length(),
paraLevel, NULL, errorCode);
const UBiDiLevel *actualLevels=ubidi_getLevels(ubidi.getAlias(), errorCode);
- if(errorCode.logIfFailureAndReset("ubidi_setPara() or ubidi_getLevels()")) {
+ if(errorCode.errIfFailureAndReset("ubidi_setPara() or ubidi_getLevels()")) {
errln("Input line %d: %s", (int)lineNumber, line);
continue;
}
@@ -633,7 +633,7 @@ UBool BiDiConformanceTest::checkOrdering(UBiDi *ubidi) {
// and loop over each run's indexes, but that seems unnecessary for this test code.
for(i=visualIndex=0; i<resultLength; ++i) {
int32_t logicalIndex=ubidi_getLogicalIndex(ubidi, i, errorCode);
- if(errorCode.logIfFailureAndReset("ubidi_getLogicalIndex()")) {
+ if(errorCode.errIfFailureAndReset("ubidi_getLogicalIndex()")) {
errln("Input line %d: %s", (int)lineNumber, line);
return FALSE;
}
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/bytestrietest.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/bytestrietest.cpp
index 375acdccc9c..7123dbe25ab 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/bytestrietest.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/bytestrietest.cpp
@@ -402,7 +402,7 @@ void BytesTrieTest::TestIteratorFromBranch() {
trie->next('n');
IcuTestErrorCode errorCode(*this, "TestIteratorFromBranch()");
BytesTrie::Iterator iter(*trie, 0, errorCode);
- if(errorCode.logIfFailureAndReset("BytesTrie::Iterator(trie) constructor")) {
+ if(errorCode.errIfFailureAndReset("BytesTrie::Iterator(trie) constructor")) {
return;
}
// Expected data: Same as in buildMonthsTrie(), except only the suffixes
@@ -453,7 +453,7 @@ void BytesTrieTest::TestIteratorFromLinearMatch() {
trie->next('a');
IcuTestErrorCode errorCode(*this, "TestIteratorFromLinearMatch()");
BytesTrie::Iterator iter(*trie, 0, errorCode);
- if(errorCode.logIfFailureAndReset("BytesTrie::Iterator(trie) constructor")) {
+ if(errorCode.errIfFailureAndReset("BytesTrie::Iterator(trie) constructor")) {
return;
}
// Expected data: Same as in buildMonthsTrie(), except only the suffixes
@@ -475,7 +475,7 @@ void BytesTrieTest::TestTruncatingIteratorFromRoot() {
}
IcuTestErrorCode errorCode(*this, "TestTruncatingIteratorFromRoot()");
BytesTrie::Iterator iter(*trie, 4, errorCode);
- if(errorCode.logIfFailureAndReset("BytesTrie::Iterator(trie) constructor")) {
+ if(errorCode.errIfFailureAndReset("BytesTrie::Iterator(trie) constructor")) {
return;
}
// Expected data: Same as in buildMonthsTrie(), except only the first 4 characters
@@ -530,7 +530,7 @@ void BytesTrieTest::TestTruncatingIteratorFromLinearMatchShort() {
IcuTestErrorCode errorCode(*this, "TestTruncatingIteratorFromLinearMatchShort()");
// Truncate within the linear-match node.
BytesTrie::Iterator iter(*trie, 2, errorCode);
- if(errorCode.logIfFailureAndReset("BytesTrie::Iterator(trie) constructor")) {
+ if(errorCode.errIfFailureAndReset("BytesTrie::Iterator(trie) constructor")) {
return;
}
static const StringAndValue expected[]={
@@ -559,7 +559,7 @@ void BytesTrieTest::TestTruncatingIteratorFromLinearMatchLong() {
IcuTestErrorCode errorCode(*this, "TestTruncatingIteratorFromLinearMatchLong()");
// Truncate after the linear-match node.
BytesTrie::Iterator iter(*trie, 3, errorCode);
- if(errorCode.logIfFailureAndReset("BytesTrie::Iterator(trie) constructor")) {
+ if(errorCode.errIfFailureAndReset("BytesTrie::Iterator(trie) constructor")) {
return;
}
static const StringAndValue expected[]={
@@ -641,7 +641,7 @@ BytesTrie *BytesTrieTest::buildTrie(const StringAndValue data[], int32_t dataLen
}
StringPiece sp=builder_->buildStringPiece(buildOption, errorCode);
LocalPointer<BytesTrie> trie(builder_->build(buildOption, errorCode));
- if(!errorCode.logIfFailureAndReset("add()/build()")) {
+ if(!errorCode.errIfFailureAndReset("add()/build()")) {
builder_->add("zzz", 999, errorCode);
if(errorCode.reset()!=U_NO_WRITE_PERMISSION) {
errln("builder.build().add(zzz) did not set U_NO_WRITE_PERMISSION");
@@ -848,7 +848,7 @@ void BytesTrieTest::checkIterator(const BytesTrie &trie,
const StringAndValue data[], int32_t dataLength) {
IcuTestErrorCode errorCode(*this, "checkIterator()");
BytesTrie::Iterator iter(trie, 0, errorCode);
- if(errorCode.logIfFailureAndReset("BytesTrie::Iterator(trie) constructor")) {
+ if(errorCode.errIfFailureAndReset("BytesTrie::Iterator(trie) constructor")) {
return;
}
checkIterator(iter, data, dataLength);
@@ -863,7 +863,7 @@ void BytesTrieTest::checkIterator(BytesTrie::Iterator &iter,
break;
}
UBool hasNext=iter.next(errorCode);
- if(errorCode.logIfFailureAndReset("trie iterator next() for item %d: %s", (int)i, data[i].s)) {
+ if(errorCode.errIfFailureAndReset("trie iterator next() for item %d: %s", (int)i, data[i].s)) {
break;
}
if(!hasNext) {
@@ -885,7 +885,7 @@ void BytesTrieTest::checkIterator(BytesTrie::Iterator &iter,
errln("trie iterator hasNext()=TRUE after all items");
}
UBool hasNext=iter.next(errorCode);
- errorCode.logIfFailureAndReset("trie iterator next() after all items");
+ errorCode.errIfFailureAndReset("trie iterator next() after all items");
if(hasNext) {
errln("trie iterator next()=TRUE after all items");
}
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/calregts.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/calregts.cpp
index da522637c6f..fc64851e249 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/calregts.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/calregts.cpp
@@ -1411,6 +1411,11 @@ void CalendarRegressionTest::test4118384()
delete cal;
cal = Calendar::createInstance(Locale("th_TH@calendar=buddhist"),status);
+ if(U_FAILURE(status)) {
+ dataerrln("Error creating calendar %s", u_errorName(status));
+ delete cal;
+ return;
+ }
// test deprecated functions
if (cal->getLeastMaximum(Calendar::HOUR) != 11 ||
cal->getMaximum(Calendar::HOUR) != 11) {
@@ -1425,6 +1430,11 @@ void CalendarRegressionTest::test4118384()
delete cal;
// test deprecated functions
cal = Calendar::createInstance(Locale("ja_JP@calendar=japanese"),status);
+ if(U_FAILURE(status)) {
+ dataerrln("Error creating calendar %s", u_errorName(status));
+ delete cal;
+ return;
+ }
if (cal->getLeastMaximum(Calendar::HOUR) != 11 ||
cal->getMaximum(Calendar::HOUR) != 11) {
errln("Fail: Japanese:[deprecated functions] maximum of HOUR field should be 11\n");
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/collationtest.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/collationtest.cpp
index 70895cc56fe..4185494a7f5 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/collationtest.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/collationtest.cpp
@@ -189,7 +189,7 @@ void CollationTest::TestImplicits() {
IcuTestErrorCode errorCode(*this, "TestImplicits");
const CollationData *cd = CollationRoot::getData(errorCode);
- if(errorCode.logDataIfFailureAndReset("CollationRoot::getData()")) {
+ if(errorCode.errDataIfFailureAndReset("CollationRoot::getData()")) {
return;
}
@@ -220,7 +220,7 @@ void CollationTest::TestImplicits() {
errorCode);
UnicodeSet inOrder(someHanInCPOrder);
inOrder.addAll(unassigned).freeze();
- if(errorCode.logIfFailureAndReset("UnicodeSet")) {
+ if(errorCode.errIfFailureAndReset("UnicodeSet")) {
return;
}
const UnicodeSet *sets[] = { &coreHan, &otherHan, &unassigned };
@@ -235,7 +235,7 @@ void CollationTest::TestImplicits() {
ci.setText(s.getBuffer(), s.getBuffer() + s.length());
int64_t ce = ci.nextCE(errorCode);
int64_t ce2 = ci.nextCE(errorCode);
- if(errorCode.logIfFailureAndReset("CollationIterator.nextCE()")) {
+ if(errorCode.errIfFailureAndReset("CollationIterator.nextCE()")) {
return;
}
if(ce == Collation::NO_CE || ce2 != Collation::NO_CE) {
@@ -261,7 +261,7 @@ void CollationTest::TestImplicits() {
void CollationTest::TestNulTerminated() {
IcuTestErrorCode errorCode(*this, "TestNulTerminated");
const CollationData *data = CollationRoot::getData(errorCode);
- if(errorCode.logDataIfFailureAndReset("CollationRoot::getData()")) {
+ if(errorCode.errDataIfFailureAndReset("CollationRoot::getData()")) {
return;
}
@@ -272,7 +272,7 @@ void CollationTest::TestNulTerminated() {
for(int32_t i = 0;; ++i) {
int64_t ce1 = ci1.nextCE(errorCode);
int64_t ce2 = ci2.nextCE(errorCode);
- if(errorCode.logIfFailureAndReset("CollationIterator.nextCE()")) {
+ if(errorCode.errIfFailureAndReset("CollationIterator.nextCE()")) {
return;
}
if(ce1 != ce2) {
@@ -440,7 +440,7 @@ void CollationTest::checkFCD(const char *name,
void CollationTest::TestFCD() {
IcuTestErrorCode errorCode(*this, "TestFCD");
const CollationData *data = CollationRoot::getData(errorCode);
- if(errorCode.logDataIfFailureAndReset("CollationRoot::getData()")) {
+ if(errorCode.errDataIfFailureAndReset("CollationRoot::getData()")) {
return;
}
@@ -473,7 +473,7 @@ void CollationTest::TestFCD() {
};
FCDUTF16CollationIterator u16ci(data, FALSE, s, s, NULL);
- if(errorCode.logIfFailureAndReset("FCDUTF16CollationIterator constructor")) {
+ if(errorCode.errIfFailureAndReset("FCDUTF16CollationIterator constructor")) {
return;
}
CodePointIterator cpi(cp, UPRV_LENGTHOF(cp));
@@ -484,7 +484,7 @@ void CollationTest::TestFCD() {
UnicodeString(s).toUTF8String(utf8);
FCDUTF8CollationIterator u8ci(data, FALSE,
reinterpret_cast<const uint8_t *>(utf8.c_str()), 0, -1);
- if(errorCode.logIfFailureAndReset("FCDUTF8CollationIterator constructor")) {
+ if(errorCode.errIfFailureAndReset("FCDUTF8CollationIterator constructor")) {
return;
}
checkFCD("FCDUTF8CollationIterator", u8ci, cpi);
@@ -493,7 +493,7 @@ void CollationTest::TestFCD() {
UCharIterator iter;
uiter_setString(&iter, s, UPRV_LENGTHOF(s) - 1); // -1: without the terminating NUL
FCDUIterCollationIterator uici(data, FALSE, iter, 0);
- if(errorCode.logIfFailureAndReset("FCDUIterCollationIterator constructor")) {
+ if(errorCode.errIfFailureAndReset("FCDUIterCollationIterator constructor")) {
return;
}
checkFCD("FCDUIterCollationIterator", uici, cpi);
@@ -759,7 +759,7 @@ private:
void CollationTest::TestRootElements() {
IcuTestErrorCode errorCode(*this, "TestRootElements");
const CollationData *root = CollationRoot::getData(errorCode);
- if(errorCode.logDataIfFailureAndReset("CollationRoot::getData()")) {
+ if(errorCode.errDataIfFailureAndReset("CollationRoot::getData()")) {
return;
}
CollationRootElements rootElements(root->rootElements, root->rootElementsLength);
@@ -862,13 +862,13 @@ void CollationTest::TestRootElements() {
void CollationTest::TestTailoredElements() {
IcuTestErrorCode errorCode(*this, "TestTailoredElements");
const CollationData *root = CollationRoot::getData(errorCode);
- if(errorCode.logDataIfFailureAndReset("CollationRoot::getData()")) {
+ if(errorCode.errDataIfFailureAndReset("CollationRoot::getData()")) {
return;
}
CollationRootElements rootElements(root->rootElements, root->rootElementsLength);
UHashtable *prevLocales = uhash_open(uhash_hashChars, uhash_compareChars, NULL, errorCode);
- if(errorCode.logIfFailureAndReset("failed to create a hash table")) {
+ if(errorCode.errIfFailureAndReset("failed to create a hash table")) {
return;
}
uhash_setKeyDeleter(prevLocales, uprv_free);
@@ -896,7 +896,7 @@ void CollationTest::TestTailoredElements() {
localeWithType.setKeywordValue("collation", type, errorCode);
errorCode.assertSuccess();
LocalPointer<Collator> coll(Collator::createInstance(localeWithType, errorCode));
- if(errorCode.logIfFailureAndReset("Collator::createInstance(%s)",
+ if(errorCode.errIfFailureAndReset("Collator::createInstance(%s)",
localeWithType.getName())) {
continue;
}
@@ -1808,7 +1808,7 @@ void CollationTest::TestDataDriven() {
fcd = Normalizer2Factory::getFCDInstance(errorCode);
nfd = Normalizer2::getNFDInstance(errorCode);
- if(errorCode.logDataIfFailureAndReset("Normalizer2Factory::getFCDInstance() or getNFDInstance()")) {
+ if(errorCode.errDataIfFailureAndReset("Normalizer2Factory::getFCDInstance() or getNFDInstance()")) {
return;
}
@@ -1816,7 +1816,7 @@ void CollationTest::TestDataDriven() {
path.appendPathPart("collationtest.txt", errorCode);
const char *codePage = "UTF-8";
LocalUCHARBUFPointer f(ucbuf_open(path.data(), &codePage, TRUE, FALSE, errorCode));
- if(errorCode.logIfFailureAndReset("ucbuf_open(collationtest.txt)")) {
+ if(errorCode.errIfFailureAndReset("ucbuf_open(collationtest.txt)")) {
return;
}
// Read a new line if necessary.
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/compactdecimalformattest.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/compactdecimalformattest.cpp
index 9bdaaad6636..c38ae5879cb 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/compactdecimalformattest.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/compactdecimalformattest.cpp
@@ -119,15 +119,15 @@ static ExpectedResult kSwahiliShort[] = {
{1234.0, "elfu\\u00a01.2"},
{12345.0, "elfu\\u00a012"},
{123456.0, "elfu\\u00a0120"},
- {1234567.0, "M1.2"},
- {12345678.0, "M12"},
- {123456789.0, "M120"},
- {1.23456789E9, "B1.2"},
- {1.23456789E10, "B12"},
- {1.23456789E11, "B120"},
- {1.23456789E12, "T1.2"},
- {1.23456789E13, "T12"},
- {1.23456789E15, "T1200"}};
+ {1234567.0, "1.2M"},
+ {12345678.0, "12M"},
+ {123456789.0, "120M"},
+ {1.23456789E9, "1.2B"},
+ {1.23456789E10, "12B"},
+ {1.23456789E11, "120B"},
+ {1.23456789E12, "1.2T"},
+ {1.23456789E13, "12T"},
+ {1.23456789E15, "1200T"}};
static ExpectedResult kCsShort[] = {
{1000.0, "1\\u00a0tis."},
@@ -154,19 +154,71 @@ static ExpectedResult kSwahiliShortNegative[] = {
{-1234.0, "elfu\\u00a0-1.2"},
{-12345.0, "elfu\\u00a0-12"},
{-123456.0, "elfu\\u00a0-120"},
- {-1234567.0, "M-1.2"},
- {-12345678.0, "M-12"},
- {-123456789.0, "M-120"},
- {-1.23456789E9, "B-1.2"},
- {-1.23456789E10, "B-12"},
- {-1.23456789E11, "B-120"},
- {-1.23456789E12, "T-1.2"},
- {-1.23456789E13, "T-12"},
- {-1.23456789E15, "T-1200"}};
+ {-1234567.0, "-1.2M"},
+ {-12345678.0, "-12M"},
+ {-123456789.0, "-120M"},
+ {-1.23456789E9, "-1.2B"},
+ {-1.23456789E10, "-12B"},
+ {-1.23456789E11, "-120B"},
+ {-1.23456789E12, "-1.2T"},
+ {-1.23456789E13, "-12T"},
+ {-1.23456789E15, "-1200T"}};
static ExpectedResult kArabicLong[] = {
{-5300.0, "\\u061C-\\u0665\\u066B\\u0663 \\u0623\\u0644\\u0641"}};
+static ExpectedResult kChineseCurrencyTestData[] = {
+ {1.0, "\\uFFE51"},
+ {12.0, "\\uFFE512"},
+ {123.0, "\\uFFE5120"},
+ {1234.0, "\\uFFE51200"},
+ {12345.0, "\\uFFE51.2\\u4E07"},
+ {123456.0, "\\uFFE512\\u4E07"},
+ {1234567.0, "\\uFFE5120\\u4E07"},
+ {12345678.0, "\\uFFE51200\\u4E07"},
+ {123456789.0, "\\uFFE51.2\\u4EBF"},
+ {1234567890.0, "\\uFFE512\\u4EBF"},
+ {12345678901.0, "\\uFFE5120\\u4EBF"},
+ {123456789012.0, "\\uFFE51200\\u4EBF"},
+ {1234567890123.0, "\\uFFE51.2\\u5146"},
+ {12345678901234.0, "\\uFFE512\\u5146"},
+ {123456789012345.0, "\\uFFE5120\\u5146"},
+};
+static ExpectedResult kGermanCurrencyTestData[] = {
+ {1.0, u8"1\\u00A0\\u20AC"},
+ {12.0, u8"12\\u00A0\\u20AC"},
+ {123.0, u8"120\\u00A0\\u20AC"},
+ {1234.0, u8"1200\\u00A0\\u20AC"},
+ {12345.0, u8"12.000\\u00A0\\u20AC"},
+ {123456.0, u8"120.000\\u00A0\\u20AC"},
+ {1234567.0, u8"1,2\\u00A0Mio.\\u00A0\\u20AC"},
+ {12345678.0, u8"12\\u00A0Mio.\\u00A0\\u20AC"},
+ {123456789.0, u8"120\\u00A0Mio.\\u00A0\\u20AC"},
+ {1234567890.0, u8"1,2\\u00A0Mrd.\\u00A0\\u20AC"},
+ {12345678901.0, u8"12\\u00A0Mrd.\\u00A0\\u20AC"},
+ {123456789012.0, u8"120\\u00A0Mrd.\\u00A0\\u20AC"},
+ {1234567890123.0, u8"1,2\\u00A0Bio.\\u00A0\\u20AC"},
+ {12345678901234.0, u8"12\\u00A0Bio.\\u00A0\\u20AC"},
+ {123456789012345.0, u8"120\\u00A0Bio.\\u00A0\\u20AC"},
+};
+static ExpectedResult kEnglishCurrencyTestData[] = {
+ {1.0, u8"$1"},
+ {12.0, u8"$12"},
+ {123.0, u8"$120"},
+ {1234.0, u8"$1.2K"},
+ {12345.0, u8"$12K"},
+ {123456.0, u8"$120K"},
+ {1234567.0, u8"$1.2M"},
+ {12345678.0, u8"$12M"},
+ {123456789.0, u8"$120M"},
+ {1234567890.0, u8"$1.2B"},
+ {12345678901.0, u8"$12B"},
+ {123456789012.0, u8"$120B"},
+ {1234567890123.0, u8"$1.2T"},
+ {12345678901234.0, u8"$12T"},
+ {123456789012345.0, u8"$120T"},
+};
+
class CompactDecimalFormatTest : public IntlTest {
public:
@@ -184,13 +236,20 @@ private:
void TestCsShort();
void TestSkLong();
void TestSwahiliShortNegative();
+ void TestEnglishCurrency();
+ void TestGermanCurrency();
+ void TestChineseCurrency();
void TestArabicLong();
void TestFieldPosition();
- void TestSignificantDigits();
+ void TestDefaultSignificantDigits();
void TestAPIVariants();
+ void TestBug12975();
+
void CheckLocale(
const Locale& locale, UNumberCompactStyle style,
- const ExpectedResult* expectedResult, int32_t expectedResultLength);
+ const ExpectedResult* expectedResults, int32_t expectedResultLength);
+ void CheckLocaleWithCurrency(const Locale& locale, UNumberCompactStyle style, const UChar* currency,
+ const ExpectedResult* expectedResults, int32_t expectedResultLength);
void CheckExpectedResult(
const CompactDecimalFormat* cdf, const ExpectedResult* expectedResult,
const char* description);
@@ -210,13 +269,17 @@ void CompactDecimalFormatTest::runIndexedTest(
TESTCASE_AUTO(TestSerbianLongNegative);
TESTCASE_AUTO(TestJapaneseShort);
TESTCASE_AUTO(TestSwahiliShort);
+ TESTCASE_AUTO(TestEnglishCurrency);
+ TESTCASE_AUTO(TestGermanCurrency);
+ TESTCASE_AUTO(TestChineseCurrency);
TESTCASE_AUTO(TestCsShort);
TESTCASE_AUTO(TestSkLong);
TESTCASE_AUTO(TestSwahiliShortNegative);
TESTCASE_AUTO(TestArabicLong);
TESTCASE_AUTO(TestFieldPosition);
- TESTCASE_AUTO(TestSignificantDigits);
+ TESTCASE_AUTO(TestDefaultSignificantDigits);
TESTCASE_AUTO(TestAPIVariants);
+ TESTCASE_AUTO(TestBug12975);
TESTCASE_AUTO_END;
}
@@ -244,6 +307,21 @@ void CompactDecimalFormatTest::TestSwahiliShort() {
CheckLocale("sw", UNUM_SHORT, kSwahiliShort, UPRV_LENGTHOF(kSwahiliShort));
}
+void CompactDecimalFormatTest::TestEnglishCurrency() {
+ CheckLocaleWithCurrency(
+ "en", UNUM_SHORT, u"USD", kEnglishCurrencyTestData, UPRV_LENGTHOF(kEnglishCurrencyTestData));
+}
+
+void CompactDecimalFormatTest::TestGermanCurrency() {
+ CheckLocaleWithCurrency(
+ "de", UNUM_SHORT, u"EUR", kGermanCurrencyTestData, UPRV_LENGTHOF(kGermanCurrencyTestData));
+}
+
+void CompactDecimalFormatTest::TestChineseCurrency() {
+ CheckLocaleWithCurrency(
+ "zh", UNUM_SHORT, u"CNY", kChineseCurrencyTestData, UPRV_LENGTHOF(kChineseCurrencyTestData));
+}
+
void CompactDecimalFormatTest::TestFieldPosition() {
// Swahili uses prefixes which forces offsets in field position to change
UErrorCode status = U_ZERO_ERROR;
@@ -282,20 +360,20 @@ void CompactDecimalFormatTest::TestArabicLong() {
CheckLocale("ar-EG", UNUM_LONG, kArabicLong, UPRV_LENGTHOF(kArabicLong));
}
-void CompactDecimalFormatTest::TestSignificantDigits() {
+void CompactDecimalFormatTest::TestDefaultSignificantDigits() {
UErrorCode status = U_ZERO_ERROR;
LocalPointer<CompactDecimalFormat> cdf(CompactDecimalFormat::createInstance("en", UNUM_SHORT, status));
if (U_FAILURE(status)) {
dataerrln("Unable to create format object - %s", u_errorName(status));
return;
}
+ // We are expecting two significant digits for compact formats with one or two zeros,
+ // and rounded to the unit for compact formats with three or more zeros.
UnicodeString actual;
- cdf->format(123456.0, actual);
- // We expect 3 significant digits by default
- UnicodeString expected("123K", -1, US_INV);
- if (actual != expected) {
- errln(UnicodeString("Fail: Expected: ") + expected + UnicodeString(" Got: ") + actual);
- }
+ assertEquals("Default significant digits", u"123K", cdf->format(123456, actual.remove()));
+ assertEquals("Default significant digits", u"12K", cdf->format(12345, actual.remove()));
+ assertEquals("Default significant digits", u"1.2K", cdf->format(1234, actual.remove()));
+ assertEquals("Default significant digits", u"123", cdf->format(123, actual.remove()));
}
void CompactDecimalFormatTest::TestAPIVariants() {
@@ -331,11 +409,14 @@ void CompactDecimalFormatTest::TestAPIVariants() {
}
actual.remove();
+ pos.setBeginIndex(0);
+ pos.setEndIndex(0);
status = U_ZERO_ERROR;
cdf->format((double)123456.0, actual, &posIter, status);
- if (status != U_UNSUPPORTED_ERROR) {
- errln(UnicodeString("Fail format(double,UnicodeString&,FieldPositionIterator*,UErrorCode&): Expected status U_UNSUPPORTED_ERROR;") +
- "Got status " + u_errorName(status));
+ posIter.next(pos);
+ if (actual != expected || pos.getEndIndex() != 3 || status != U_ZERO_ERROR) {
+ errln(UnicodeString("Fail format(int32_t,UnicodeString&,FieldPosition&,UErrorCode&): Expected: \"") + expected + "\", first pos 3, status U_ZERO_ERROR; " +
+ "Got: \"" + actual + "\", pos " + pos.getEndIndex() + ", status " + u_errorName(status));
}
actual.remove();
@@ -358,11 +439,14 @@ void CompactDecimalFormatTest::TestAPIVariants() {
}
actual.remove();
+ pos.setBeginIndex(0);
+ pos.setEndIndex(0);
status = U_ZERO_ERROR;
cdf->format((int32_t)123456, actual, &posIter, status);
- if (status != U_UNSUPPORTED_ERROR) {
- errln(UnicodeString("Fail format(int32_t,UnicodeString&,FieldPositionIterator*,UErrorCode&): Expected status U_UNSUPPORTED_ERROR;") +
- "Got status " + u_errorName(status));
+ posIter.next(pos);
+ if (actual != expected || pos.getEndIndex() != 3 || status != U_ZERO_ERROR) {
+ errln(UnicodeString("Fail format(int32_t,UnicodeString&,FieldPosition&,UErrorCode&): Expected: \"") + expected + "\", first pos 3, status U_ZERO_ERROR; " +
+ "Got: \"" + actual + "\", pos " + pos.getEndIndex() + ", status " + u_errorName(status));
}
actual.remove();
@@ -385,15 +469,36 @@ void CompactDecimalFormatTest::TestAPIVariants() {
}
actual.remove();
+ pos.setBeginIndex(0);
+ pos.setEndIndex(0);
status = U_ZERO_ERROR;
cdf->format((int64_t)123456, actual, &posIter, status);
- if (status != U_UNSUPPORTED_ERROR) {
- errln(UnicodeString("Fail format(int64_t,UnicodeString&,FieldPositionIterator*,UErrorCode&): Expected status U_UNSUPPORTED_ERROR;") +
- "Got status " + u_errorName(status));
+ posIter.next(pos);
+ if (actual != expected || pos.getEndIndex() != 3 || status != U_ZERO_ERROR) {
+ errln(UnicodeString("Fail format(int32_t,UnicodeString&,FieldPosition&,UErrorCode&): Expected: \"") + expected + "\", first pos 3, status U_ZERO_ERROR; " +
+ "Got: \"" + actual + "\", pos " + pos.getEndIndex() + ", status " + u_errorName(status));
}
}
+void CompactDecimalFormatTest::TestBug12975() {
+ IcuTestErrorCode status(*this, "TestBug12975");
+ Locale locale("it");
+ LocalPointer<CompactDecimalFormat> cdf(CompactDecimalFormat::createInstance(locale, UNUM_SHORT, status));
+ if (assertSuccess("", status, true, __FILE__, __LINE__)) {
+ UnicodeString resultCdf;
+ cdf->format(12000, resultCdf);
+ LocalPointer<DecimalFormat> df((DecimalFormat*) DecimalFormat::createInstance(locale, status));
+ UnicodeString resultDefault;
+ df->format(12000, resultDefault);
+ assertEquals("CompactDecimalFormat should use default pattern when compact pattern is unavailable",
+ resultDefault, resultCdf);
+ }
+}
+
+
+// End test cases. Helpers:
+
void CompactDecimalFormatTest::CheckLocale(const Locale& locale, UNumberCompactStyle style, const ExpectedResult* expectedResults, int32_t expectedResultLength) {
UErrorCode status = U_ZERO_ERROR;
LocalPointer<CompactDecimalFormat> cdf(createCDFInstance(locale, style, status));
@@ -408,6 +513,25 @@ void CompactDecimalFormatTest::CheckLocale(const Locale& locale, UNumberCompactS
}
}
+void CompactDecimalFormatTest::CheckLocaleWithCurrency(const Locale& locale, UNumberCompactStyle style,
+ const UChar* currency,
+ const ExpectedResult* expectedResults,
+ int32_t expectedResultLength) {
+ UErrorCode status = U_ZERO_ERROR;
+ LocalPointer<CompactDecimalFormat> cdf(createCDFInstance(locale, style, status));
+ if (U_FAILURE(status)) {
+ dataerrln("Unable to create format object - %s", u_errorName(status));
+ return;
+ }
+ cdf->setCurrency(currency, status);
+ assertSuccess("Failed to set currency", status);
+ char description[256];
+ sprintf(description,"%s - %s", locale.getName(), StyleStr(style));
+ for (int32_t i = 0; i < expectedResultLength; i++) {
+ CheckExpectedResult(cdf.getAlias(), &expectedResults[i], description);
+ }
+}
+
void CompactDecimalFormatTest::CheckExpectedResult(
const CompactDecimalFormat* cdf, const ExpectedResult* expectedResult, const char* description) {
UnicodeString actual;
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/cpdtrtst.h b/Build/source/libs/icu/icu-src/source/test/intltest/cpdtrtst.h
index e723619ad36..1733f1a6e42 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/cpdtrtst.h
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/cpdtrtst.h
@@ -20,6 +20,7 @@
#if !UCONFIG_NO_TRANSLITERATION
#include "unicode/translit.h"
+#include "cpdtrans.h"
#include "intltest.h"
/**
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/datadrivennumberformattestsuite.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/datadrivennumberformattestsuite.cpp
index 9af8fdfd520..c8f10d13264 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/datadrivennumberformattestsuite.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/datadrivennumberformattestsuite.cpp
@@ -99,7 +99,7 @@ void DataDrivenNumberFormatTestSuite::run(const char *fileName, UBool runAllTest
: breaksC();
UBool actualSuccess = isPass(fTuple, errorMessage, status);
if (shouldFail && actualSuccess) {
- showFailure("Expected failure, but passed");
+ showFailure("Expected failure, but passed: " + errorMessage);
break;
} else if (!shouldFail && !actualSuccess) {
showFailure(errorMessage);
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/datadrivennumberformattestsuite.h b/Build/source/libs/icu/icu-src/source/test/intltest/datadrivennumberformattestsuite.h
index 1f70284e4c9..45c28468727 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/datadrivennumberformattestsuite.h
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/datadrivennumberformattestsuite.h
@@ -17,6 +17,7 @@
#include "unicode/unistr.h"
#include "numberformattesttuple.h"
#include "intltest.h"
+#include "cmemory.h"
struct UCHARBUF;
class IntlTest;
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/dcfmapts.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/dcfmapts.cpp
index b4639f73a45..6a79bab8509 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/dcfmapts.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/dcfmapts.cpp
@@ -22,6 +22,8 @@
#include "putilimp.h"
#include "plurrule_impl.h"
+#include "number_decimalquantity.h"
+
#include <stdio.h>
// This is an API test, not a unit test. It doesn't test very many cases, and doesn't
@@ -87,6 +89,12 @@ void IntlTestDecimalFormatAPI::runIndexedTest( int32_t index, UBool exec, const
TestRequiredDecimalPoint();
}
break;
+ case 8: name = "testErrorCode";
+ if(exec) {
+ logln((UnicodeString)"testErrorCode ---");
+ testErrorCode();
+ }
+ break;
default: name = ""; break;
}
}
@@ -112,15 +120,39 @@ void IntlTestDecimalFormatAPI::testAPI(/*char *par*/)
// bug 10864
status = U_ZERO_ERROR;
DecimalFormat noGrouping("###0.##", status);
- if (noGrouping.getGroupingSize() != 0) {
- errln("Grouping size should be 0 for no grouping.");
- }
+ assertEquals("Grouping size should be 0 for no grouping.", 0, noGrouping.getGroupingSize());
noGrouping.setGroupingUsed(TRUE);
- if (noGrouping.getGroupingSize() != 0) {
- errln("Grouping size should still be 0.");
- }
+ assertEquals("Grouping size should still be 0.", 0, noGrouping.getGroupingSize());
// end bug 10864
+ // bug 13442 comment 14
+ status = U_ZERO_ERROR;
+ {
+ DecimalFormat df("0", {"en", status}, status);
+ UnicodeString result;
+ assertEquals("pat 0: ", 0, df.getGroupingSize());
+ assertEquals("pat 0: ", (UBool) FALSE, (UBool) df.isGroupingUsed());
+ df.setGroupingUsed(false);
+ assertEquals("pat 0 then disabled: ", 0, df.getGroupingSize());
+ assertEquals("pat 0 then disabled: ", u"1111", df.format(1111, result.remove()));
+ df.setGroupingUsed(true);
+ assertEquals("pat 0 then enabled: ", 0, df.getGroupingSize());
+ assertEquals("pat 0 then enabled: ", u"1111", df.format(1111, result.remove()));
+ }
+ {
+ DecimalFormat df("#,##0", {"en", status}, status);
+ UnicodeString result;
+ assertEquals("pat #,##0: ", 3, df.getGroupingSize());
+ assertEquals("pat #,##0: ", (UBool) TRUE, (UBool) df.isGroupingUsed());
+ df.setGroupingUsed(false);
+ assertEquals("pat #,##0 then disabled: ", 3, df.getGroupingSize());
+ assertEquals("pat #,##0 then disabled: ", u"1111", df.format(1111, result.remove()));
+ df.setGroupingUsed(true);
+ assertEquals("pat #,##0 then enabled: ", 3, df.getGroupingSize());
+ assertEquals("pat #,##0 then enabled: ", u"1,111", df.format(1111, result.remove()));
+ }
+ // end bug 13442 comment 14
+
status = U_ZERO_ERROR;
const UnicodeString pattern("#,##0.# FF");
DecimalFormat pat(pattern, status);
@@ -342,6 +374,7 @@ void IntlTestDecimalFormatAPI::testAPI(/*char *par*/)
// ======= Test applyPattern()
logln((UnicodeString)"Testing applyPattern()");
+ pat = DecimalFormat(status); // reset
UnicodeString p1("#,##0.0#;(#,##0.0#)");
logln((UnicodeString)"Applying pattern " + p1);
@@ -353,9 +386,7 @@ void IntlTestDecimalFormatAPI::testAPI(/*char *par*/)
UnicodeString s2;
s2 = pat.toPattern(s2);
logln((UnicodeString)"Extracted pattern is " + s2);
- if(s2 != p1) {
- errln((UnicodeString)"ERROR: toPattern() result did not match pattern applied");
- }
+ assertEquals("toPattern() result did not match pattern applied", p1, s2);
if(pat.getSecondaryGroupingSize() != 0) {
errln("FAIL: Secondary Grouping Size should be 0, not %d\n", pat.getSecondaryGroupingSize());
@@ -375,9 +406,7 @@ void IntlTestDecimalFormatAPI::testAPI(/*char *par*/)
UnicodeString s3;
s3 = pat.toLocalizedPattern(s3);
logln((UnicodeString)"Extracted pattern is " + s3);
- if(s3 != p2) {
- errln((UnicodeString)"ERROR: toLocalizedPattern() result did not match pattern applied");
- }
+ assertEquals("toLocalizedPattern() result did not match pattern applied", p2, s3);
status = U_ZERO_ERROR;
UParseError pe;
@@ -388,9 +417,7 @@ void IntlTestDecimalFormatAPI::testAPI(/*char *par*/)
UnicodeString s4;
s4 = pat.toLocalizedPattern(s3);
logln((UnicodeString)"Extracted pattern is " + s4);
- if(s4 != p2) {
- errln((UnicodeString)"ERROR: toLocalizedPattern(with ParseErr) result did not match pattern applied");
- }
+ assertEquals("toLocalizedPattern(with ParseErr) result did not match pattern applied", p2, s4);
if(pat.getSecondaryGroupingSize() != 2) {
errln("FAIL: Secondary Grouping Size should be 2, not %d\n", pat.getSecondaryGroupingSize());
@@ -494,14 +521,14 @@ void IntlTestDecimalFormatAPI::testRounding(/*char *par*/)
//for +2.55 with RoundingIncrement=1.0
pat.setRoundingIncrement(1.0);
pat.format(Roundingnumber, resultStr);
- message= (UnicodeString)"Round() failed: round(" + (double)Roundingnumber + UnicodeString(",") + mode + UnicodeString(",FALSE) with RoundingIncrement=1.0==>");
+ message= (UnicodeString)"round(" + (double)Roundingnumber + UnicodeString(",") + mode + UnicodeString(",FALSE) with RoundingIncrement=1.0==>");
verify(message, resultStr, result[i++]);
message.remove();
resultStr.remove();
//for -2.55 with RoundingIncrement=1.0
pat.format(Roundingnumber1, resultStr);
- message= (UnicodeString)"Round() failed: round(" + (double)Roundingnumber1 + UnicodeString(",") + mode + UnicodeString(",FALSE) with RoundingIncrement=1.0==>");
+ message= (UnicodeString)"round(" + (double)Roundingnumber1 + UnicodeString(",") + mode + UnicodeString(",FALSE) with RoundingIncrement=1.0==>");
verify(message, resultStr, result[i++]);
message.remove();
resultStr.remove();
@@ -589,7 +616,14 @@ void IntlTestDecimalFormatAPI::TestScale()
if ( i > 2 ) {
pat.applyPattern(percentPattern,status);
}
- pat.setAttribute(UNUM_SCALE,testData[i].inputScale,status);
+ // Test both the attribute and the setter
+ if (i % 2 == 0) {
+ pat.setAttribute(UNUM_SCALE, testData[i].inputScale,status);
+ assertEquals("", testData[i].inputScale, pat.getMultiplierScale());
+ } else {
+ pat.setMultiplierScale(testData[i].inputScale);
+ assertEquals("", testData[i].inputScale, pat.getAttribute(UNUM_SCALE, status));
+ }
pat.format(testData[i].inputValue, resultStr);
message = UnicodeString("Unexpected output for ") + testData[i].inputValue + UnicodeString(" and scale ") +
testData[i].inputScale + UnicodeString(". Got: ");
@@ -613,171 +647,172 @@ void IntlTestDecimalFormatAPI::TestFixedDecimal() {
if (status == U_MISSING_RESOURCE_ERROR) {
return;
}
- FixedDecimal fd = df->getFixedDecimal(44, status);
+ number::impl::DecimalQuantity fd;
+ df->formatToDecimalQuantity(44, fd, status);
TEST_ASSERT_STATUS(status);
- ASSERT_EQUAL(44, fd.source);
- ASSERT_EQUAL(0, fd.visibleDecimalDigitCount);
- ASSERT_EQUAL(FALSE, fd.isNegative);
+ ASSERT_EQUAL(44, fd.getPluralOperand(PLURAL_OPERAND_N));
+ ASSERT_EQUAL(0, fd.getPluralOperand(PLURAL_OPERAND_V));
+ ASSERT_EQUAL(FALSE, fd.isNegative());
- fd = df->getFixedDecimal(-44, status);
+ df->formatToDecimalQuantity(-44, fd, status);
TEST_ASSERT_STATUS(status);
- ASSERT_EQUAL(44, fd.source);
- ASSERT_EQUAL(0, fd.visibleDecimalDigitCount);
- ASSERT_EQUAL(TRUE, fd.isNegative);
+ ASSERT_EQUAL(44, fd.getPluralOperand(PLURAL_OPERAND_N));
+ ASSERT_EQUAL(0, fd.getPluralOperand(PLURAL_OPERAND_V));
+ ASSERT_EQUAL(TRUE, fd.isNegative());
df.adoptInsteadAndCheckErrorCode(new DecimalFormat("###.00##", status), status);
TEST_ASSERT_STATUS(status);
- fd = df->getFixedDecimal(123.456, status);
+ df->formatToDecimalQuantity(123.456, fd, status);
TEST_ASSERT_STATUS(status);
- ASSERT_EQUAL(3, fd.visibleDecimalDigitCount); // v
- ASSERT_EQUAL(456, fd.decimalDigits); // f
- ASSERT_EQUAL(456, fd.decimalDigitsWithoutTrailingZeros); // t
- ASSERT_EQUAL(123, fd.intValue); // i
- ASSERT_EQUAL(123.456, fd.source); // n
- ASSERT_EQUAL(FALSE, fd.hasIntegerValue);
- ASSERT_EQUAL(FALSE, fd.isNegative);
-
- fd = df->getFixedDecimal(-123.456, status);
+ ASSERT_EQUAL(3, fd.getPluralOperand(PLURAL_OPERAND_V)); // v
+ ASSERT_EQUAL(456, fd.getPluralOperand(PLURAL_OPERAND_F)); // f
+ ASSERT_EQUAL(456, fd.getPluralOperand(PLURAL_OPERAND_T)); // t
+ ASSERT_EQUAL(123, fd.getPluralOperand(PLURAL_OPERAND_I)); // i
+ ASSERT_EQUAL(123.456, fd.getPluralOperand(PLURAL_OPERAND_N)); // n
+ ASSERT_EQUAL(FALSE, fd.hasIntegerValue());
+ ASSERT_EQUAL(FALSE, fd.isNegative());
+
+ df->formatToDecimalQuantity(-123.456, fd, status);
TEST_ASSERT_STATUS(status);
- ASSERT_EQUAL(3, fd.visibleDecimalDigitCount); // v
- ASSERT_EQUAL(456, fd.decimalDigits); // f
- ASSERT_EQUAL(456, fd.decimalDigitsWithoutTrailingZeros); // t
- ASSERT_EQUAL(123, fd.intValue); // i
- ASSERT_EQUAL(123.456, fd.source); // n
- ASSERT_EQUAL(FALSE, fd.hasIntegerValue);
- ASSERT_EQUAL(TRUE, fd.isNegative);
+ ASSERT_EQUAL(3, fd.getPluralOperand(PLURAL_OPERAND_V)); // v
+ ASSERT_EQUAL(456, fd.getPluralOperand(PLURAL_OPERAND_F)); // f
+ ASSERT_EQUAL(456, fd.getPluralOperand(PLURAL_OPERAND_T)); // t
+ ASSERT_EQUAL(123, fd.getPluralOperand(PLURAL_OPERAND_I)); // i
+ ASSERT_EQUAL(123.456, fd.getPluralOperand(PLURAL_OPERAND_N)); // n
+ ASSERT_EQUAL(FALSE, fd.hasIntegerValue());
+ ASSERT_EQUAL(TRUE, fd.isNegative());
// test max int digits
df->setMaximumIntegerDigits(2);
- fd = df->getFixedDecimal(123.456, status);
- TEST_ASSERT_STATUS(status);
- ASSERT_EQUAL(3, fd.visibleDecimalDigitCount); // v
- ASSERT_EQUAL(456, fd.decimalDigits); // f
- ASSERT_EQUAL(456, fd.decimalDigitsWithoutTrailingZeros); // t
- ASSERT_EQUAL(23, fd.intValue); // i
- ASSERT_EQUAL(23.456, fd.source); // n
- ASSERT_EQUAL(FALSE, fd.hasIntegerValue);
- ASSERT_EQUAL(FALSE, fd.isNegative);
-
- fd = df->getFixedDecimal(-123.456, status);
- TEST_ASSERT_STATUS(status);
- ASSERT_EQUAL(3, fd.visibleDecimalDigitCount); // v
- ASSERT_EQUAL(456, fd.decimalDigits); // f
- ASSERT_EQUAL(456, fd.decimalDigitsWithoutTrailingZeros); // t
- ASSERT_EQUAL(23, fd.intValue); // i
- ASSERT_EQUAL(23.456, fd.source); // n
- ASSERT_EQUAL(FALSE, fd.hasIntegerValue);
- ASSERT_EQUAL(TRUE, fd.isNegative);
+ df->formatToDecimalQuantity(123.456, fd, status);
+ TEST_ASSERT_STATUS(status);
+ ASSERT_EQUAL(3, fd.getPluralOperand(PLURAL_OPERAND_V)); // v
+ ASSERT_EQUAL(456, fd.getPluralOperand(PLURAL_OPERAND_F)); // f
+ ASSERT_EQUAL(456, fd.getPluralOperand(PLURAL_OPERAND_T)); // t
+ ASSERT_EQUAL(23, fd.getPluralOperand(PLURAL_OPERAND_I)); // i
+ ASSERT_EQUAL(23.456, fd.getPluralOperand(PLURAL_OPERAND_N)); // n
+ ASSERT_EQUAL(FALSE, fd.hasIntegerValue());
+ ASSERT_EQUAL(FALSE, fd.isNegative());
+
+ df->formatToDecimalQuantity(-123.456, fd, status);
+ TEST_ASSERT_STATUS(status);
+ ASSERT_EQUAL(3, fd.getPluralOperand(PLURAL_OPERAND_V)); // v
+ ASSERT_EQUAL(456, fd.getPluralOperand(PLURAL_OPERAND_F)); // f
+ ASSERT_EQUAL(456, fd.getPluralOperand(PLURAL_OPERAND_T)); // t
+ ASSERT_EQUAL(23, fd.getPluralOperand(PLURAL_OPERAND_I)); // i
+ ASSERT_EQUAL(23.456, fd.getPluralOperand(PLURAL_OPERAND_N)); // n
+ ASSERT_EQUAL(FALSE, fd.hasIntegerValue());
+ ASSERT_EQUAL(TRUE, fd.isNegative());
// test max fraction digits
df->setMaximumIntegerDigits(2000000000);
df->setMaximumFractionDigits(2);
- fd = df->getFixedDecimal(123.456, status);
- TEST_ASSERT_STATUS(status);
- ASSERT_EQUAL(2, fd.visibleDecimalDigitCount); // v
- ASSERT_EQUAL(46, fd.decimalDigits); // f
- ASSERT_EQUAL(46, fd.decimalDigitsWithoutTrailingZeros); // t
- ASSERT_EQUAL(123, fd.intValue); // i
- ASSERT_EQUAL(123.46, fd.source); // n
- ASSERT_EQUAL(FALSE, fd.hasIntegerValue);
- ASSERT_EQUAL(FALSE, fd.isNegative);
-
- fd = df->getFixedDecimal(-123.456, status);
- TEST_ASSERT_STATUS(status);
- ASSERT_EQUAL(2, fd.visibleDecimalDigitCount); // v
- ASSERT_EQUAL(46, fd.decimalDigits); // f
- ASSERT_EQUAL(46, fd.decimalDigitsWithoutTrailingZeros); // t
- ASSERT_EQUAL(123, fd.intValue); // i
- ASSERT_EQUAL(123.46, fd.source); // n
- ASSERT_EQUAL(FALSE, fd.hasIntegerValue);
- ASSERT_EQUAL(TRUE, fd.isNegative);
+ df->formatToDecimalQuantity(123.456, fd, status);
+ TEST_ASSERT_STATUS(status);
+ ASSERT_EQUAL(2, fd.getPluralOperand(PLURAL_OPERAND_V)); // v
+ ASSERT_EQUAL(46, fd.getPluralOperand(PLURAL_OPERAND_F)); // f
+ ASSERT_EQUAL(46, fd.getPluralOperand(PLURAL_OPERAND_T)); // t
+ ASSERT_EQUAL(123, fd.getPluralOperand(PLURAL_OPERAND_I)); // i
+ ASSERT_EQUAL(123.46, fd.getPluralOperand(PLURAL_OPERAND_N)); // n
+ ASSERT_EQUAL(FALSE, fd.hasIntegerValue());
+ ASSERT_EQUAL(FALSE, fd.isNegative());
+
+ df->formatToDecimalQuantity(-123.456, fd, status);
+ TEST_ASSERT_STATUS(status);
+ ASSERT_EQUAL(2, fd.getPluralOperand(PLURAL_OPERAND_V)); // v
+ ASSERT_EQUAL(46, fd.getPluralOperand(PLURAL_OPERAND_F)); // f
+ ASSERT_EQUAL(46, fd.getPluralOperand(PLURAL_OPERAND_T)); // t
+ ASSERT_EQUAL(123, fd.getPluralOperand(PLURAL_OPERAND_I)); // i
+ ASSERT_EQUAL(123.46, fd.getPluralOperand(PLURAL_OPERAND_N)); // n
+ ASSERT_EQUAL(FALSE, fd.hasIntegerValue());
+ ASSERT_EQUAL(TRUE, fd.isNegative());
// test esoteric rounding
df->setMaximumFractionDigits(6);
df->setRoundingIncrement(7.3);
- fd = df->getFixedDecimal(30.0, status);
+ df->formatToDecimalQuantity(30.0, fd, status);
TEST_ASSERT_STATUS(status);
- ASSERT_EQUAL(2, fd.visibleDecimalDigitCount); // v
- ASSERT_EQUAL(20, fd.decimalDigits); // f
- ASSERT_EQUAL(2, fd.decimalDigitsWithoutTrailingZeros); // t
- ASSERT_EQUAL(29, fd.intValue); // i
- ASSERT_EQUAL(29.2, fd.source); // n
- ASSERT_EQUAL(FALSE, fd.hasIntegerValue);
- ASSERT_EQUAL(FALSE, fd.isNegative);
-
- fd = df->getFixedDecimal(-30.0, status);
+ ASSERT_EQUAL(2, fd.getPluralOperand(PLURAL_OPERAND_V)); // v
+ ASSERT_EQUAL(20, fd.getPluralOperand(PLURAL_OPERAND_F)); // f
+ ASSERT_EQUAL(2, fd.getPluralOperand(PLURAL_OPERAND_T)); // t
+ ASSERT_EQUAL(29, fd.getPluralOperand(PLURAL_OPERAND_I)); // i
+ ASSERT_EQUAL(29.2, fd.getPluralOperand(PLURAL_OPERAND_N)); // n
+ ASSERT_EQUAL(FALSE, fd.hasIntegerValue());
+ ASSERT_EQUAL(FALSE, fd.isNegative());
+
+ df->formatToDecimalQuantity(-30.0, fd, status);
TEST_ASSERT_STATUS(status);
- ASSERT_EQUAL(2, fd.visibleDecimalDigitCount); // v
- ASSERT_EQUAL(20, fd.decimalDigits); // f
- ASSERT_EQUAL(2, fd.decimalDigitsWithoutTrailingZeros); // t
- ASSERT_EQUAL(29, fd.intValue); // i
- ASSERT_EQUAL(29.2, fd.source); // n
- ASSERT_EQUAL(FALSE, fd.hasIntegerValue);
- ASSERT_EQUAL(TRUE, fd.isNegative);
+ ASSERT_EQUAL(2, fd.getPluralOperand(PLURAL_OPERAND_V)); // v
+ ASSERT_EQUAL(20, fd.getPluralOperand(PLURAL_OPERAND_F)); // f
+ ASSERT_EQUAL(2, fd.getPluralOperand(PLURAL_OPERAND_T)); // t
+ ASSERT_EQUAL(29, fd.getPluralOperand(PLURAL_OPERAND_I)); // i
+ ASSERT_EQUAL(29.2, fd.getPluralOperand(PLURAL_OPERAND_N)); // n
+ ASSERT_EQUAL(FALSE, fd.hasIntegerValue());
+ ASSERT_EQUAL(TRUE, fd.isNegative());
df.adoptInsteadAndCheckErrorCode(new DecimalFormat("###", status), status);
TEST_ASSERT_STATUS(status);
- fd = df->getFixedDecimal(123.456, status);
+ df->formatToDecimalQuantity(123.456, fd, status);
TEST_ASSERT_STATUS(status);
- ASSERT_EQUAL(0, fd.visibleDecimalDigitCount);
- ASSERT_EQUAL(0, fd.decimalDigits);
- ASSERT_EQUAL(0, fd.decimalDigitsWithoutTrailingZeros);
- ASSERT_EQUAL(123, fd.intValue);
- ASSERT_EQUAL(TRUE, fd.hasIntegerValue);
- ASSERT_EQUAL(FALSE, fd.isNegative);
+ ASSERT_EQUAL(0, fd.getPluralOperand(PLURAL_OPERAND_V));
+ ASSERT_EQUAL(0, fd.getPluralOperand(PLURAL_OPERAND_F));
+ ASSERT_EQUAL(0, fd.getPluralOperand(PLURAL_OPERAND_T));
+ ASSERT_EQUAL(123, fd.getPluralOperand(PLURAL_OPERAND_I));
+ ASSERT_EQUAL(TRUE, fd.hasIntegerValue());
+ ASSERT_EQUAL(FALSE, fd.isNegative());
df.adoptInsteadAndCheckErrorCode(new DecimalFormat("###.0", status), status);
TEST_ASSERT_STATUS(status);
- fd = df->getFixedDecimal(123.01, status);
+ df->formatToDecimalQuantity(123.01, fd, status);
TEST_ASSERT_STATUS(status);
- ASSERT_EQUAL(1, fd.visibleDecimalDigitCount);
- ASSERT_EQUAL(0, fd.decimalDigits);
- ASSERT_EQUAL(0, fd.decimalDigitsWithoutTrailingZeros);
- ASSERT_EQUAL(123, fd.intValue);
- ASSERT_EQUAL(TRUE, fd.hasIntegerValue);
- ASSERT_EQUAL(FALSE, fd.isNegative);
+ ASSERT_EQUAL(1, fd.getPluralOperand(PLURAL_OPERAND_V));
+ ASSERT_EQUAL(0, fd.getPluralOperand(PLURAL_OPERAND_F));
+ ASSERT_EQUAL(0, fd.getPluralOperand(PLURAL_OPERAND_T));
+ ASSERT_EQUAL(123, fd.getPluralOperand(PLURAL_OPERAND_I));
+ ASSERT_EQUAL(TRUE, fd.hasIntegerValue());
+ ASSERT_EQUAL(FALSE, fd.isNegative());
df.adoptInsteadAndCheckErrorCode(new DecimalFormat("###.0", status), status);
TEST_ASSERT_STATUS(status);
- fd = df->getFixedDecimal(123.06, status);
+ df->formatToDecimalQuantity(123.06, fd, status);
TEST_ASSERT_STATUS(status);
- ASSERT_EQUAL(1, fd.visibleDecimalDigitCount);
- ASSERT_EQUAL(1, fd.decimalDigits);
- ASSERT_EQUAL(1, fd.decimalDigitsWithoutTrailingZeros);
- ASSERT_EQUAL(123, fd.intValue);
- ASSERT_EQUAL(FALSE, fd.hasIntegerValue);
- ASSERT_EQUAL(FALSE, fd.isNegative);
+ ASSERT_EQUAL(1, fd.getPluralOperand(PLURAL_OPERAND_V));
+ ASSERT_EQUAL(1, fd.getPluralOperand(PLURAL_OPERAND_F));
+ ASSERT_EQUAL(1, fd.getPluralOperand(PLURAL_OPERAND_T));
+ ASSERT_EQUAL(123, fd.getPluralOperand(PLURAL_OPERAND_I));
+ ASSERT_EQUAL(FALSE, fd.hasIntegerValue());
+ ASSERT_EQUAL(FALSE, fd.isNegative());
df.adoptInsteadAndCheckErrorCode(new DecimalFormat("@@@@@", status), status); // Significant Digits
TEST_ASSERT_STATUS(status);
- fd = df->getFixedDecimal(123, status);
+ df->formatToDecimalQuantity(123, fd, status);
TEST_ASSERT_STATUS(status);
- ASSERT_EQUAL(2, fd.visibleDecimalDigitCount);
- ASSERT_EQUAL(0, fd.decimalDigits);
- ASSERT_EQUAL(0, fd.decimalDigitsWithoutTrailingZeros);
- ASSERT_EQUAL(123, fd.intValue);
- ASSERT_EQUAL(TRUE, fd.hasIntegerValue);
- ASSERT_EQUAL(FALSE, fd.isNegative);
+ ASSERT_EQUAL(2, fd.getPluralOperand(PLURAL_OPERAND_V));
+ ASSERT_EQUAL(0, fd.getPluralOperand(PLURAL_OPERAND_F));
+ ASSERT_EQUAL(0, fd.getPluralOperand(PLURAL_OPERAND_T));
+ ASSERT_EQUAL(123, fd.getPluralOperand(PLURAL_OPERAND_I));
+ ASSERT_EQUAL(TRUE, fd.hasIntegerValue());
+ ASSERT_EQUAL(FALSE, fd.isNegative());
df.adoptInsteadAndCheckErrorCode(new DecimalFormat("@@@@@", status), status); // Significant Digits
TEST_ASSERT_STATUS(status);
- fd = df->getFixedDecimal(1.23, status);
+ df->formatToDecimalQuantity(1.23, fd, status);
TEST_ASSERT_STATUS(status);
- ASSERT_EQUAL(4, fd.visibleDecimalDigitCount);
- ASSERT_EQUAL(2300, fd.decimalDigits);
- ASSERT_EQUAL(23, fd.decimalDigitsWithoutTrailingZeros);
- ASSERT_EQUAL(1, fd.intValue);
- ASSERT_EQUAL(FALSE, fd.hasIntegerValue);
- ASSERT_EQUAL(FALSE, fd.isNegative);
-
- fd = df->getFixedDecimal(uprv_getInfinity(), status);
+ ASSERT_EQUAL(4, fd.getPluralOperand(PLURAL_OPERAND_V));
+ ASSERT_EQUAL(2300, fd.getPluralOperand(PLURAL_OPERAND_F));
+ ASSERT_EQUAL(23, fd.getPluralOperand(PLURAL_OPERAND_T));
+ ASSERT_EQUAL(1, fd.getPluralOperand(PLURAL_OPERAND_I));
+ ASSERT_EQUAL(FALSE, fd.hasIntegerValue());
+ ASSERT_EQUAL(FALSE, fd.isNegative());
+
+ df->formatToDecimalQuantity(uprv_getInfinity(), fd, status);
TEST_ASSERT_STATUS(status);
- ASSERT_EQUAL(TRUE, fd.isNanOrInfinity());
- fd = df->getFixedDecimal(0.0, status);
- ASSERT_EQUAL(FALSE, fd.isNanOrInfinity());
- fd = df->getFixedDecimal(uprv_getNaN(), status);
- ASSERT_EQUAL(TRUE, fd.isNanOrInfinity());
+ ASSERT_EQUAL(TRUE, fd.isNaN() || fd.isInfinite());
+ df->formatToDecimalQuantity(0.0, fd, status);
+ ASSERT_EQUAL(FALSE, fd.isNaN() || fd.isInfinite());
+ df->formatToDecimalQuantity(uprv_getNaN(), fd, status);
+ ASSERT_EQUAL(TRUE, fd.isNaN() || fd.isInfinite());
TEST_ASSERT_STATUS(status);
// Test Big Decimal input.
@@ -788,135 +823,141 @@ void IntlTestDecimalFormatAPI::TestFixedDecimal() {
TEST_ASSERT_STATUS(status);
Formattable fable("12.34", status);
TEST_ASSERT_STATUS(status);
- fd = df->getFixedDecimal(fable, status);
+ df->formatToDecimalQuantity(fable, fd, status);
TEST_ASSERT_STATUS(status);
- ASSERT_EQUAL(2, fd.visibleDecimalDigitCount);
- ASSERT_EQUAL(34, fd.decimalDigits);
- ASSERT_EQUAL(34, fd.decimalDigitsWithoutTrailingZeros);
- ASSERT_EQUAL(12, fd.intValue);
- ASSERT_EQUAL(FALSE, fd.hasIntegerValue);
- ASSERT_EQUAL(FALSE, fd.isNegative);
-
- fable.setDecimalNumber("12.345678901234567890123456789", status);
+ ASSERT_EQUAL(2, fd.getPluralOperand(PLURAL_OPERAND_V));
+ ASSERT_EQUAL(34, fd.getPluralOperand(PLURAL_OPERAND_F));
+ ASSERT_EQUAL(34, fd.getPluralOperand(PLURAL_OPERAND_T));
+ ASSERT_EQUAL(12, fd.getPluralOperand(PLURAL_OPERAND_I));
+ ASSERT_EQUAL(FALSE, fd.hasIntegerValue());
+ ASSERT_EQUAL(FALSE, fd.isNegative());
+
+ fable.setDecimalNumber("12.3456789012345678900123456789", status);
TEST_ASSERT_STATUS(status);
- fd = df->getFixedDecimal(fable, status);
+ df->formatToDecimalQuantity(fable, fd, status);
TEST_ASSERT_STATUS(status);
- ASSERT_EQUAL(22, fd.visibleDecimalDigitCount);
- ASSERT_EQUAL(345678901234567890LL, fd.decimalDigits);
- ASSERT_EQUAL(34567890123456789LL, fd.decimalDigitsWithoutTrailingZeros);
- ASSERT_EQUAL(12, fd.intValue);
- ASSERT_EQUAL(FALSE, fd.hasIntegerValue);
- ASSERT_EQUAL(FALSE, fd.isNegative);
+ ASSERT_EQUAL(22, fd.getPluralOperand(PLURAL_OPERAND_V));
+ ASSERT_EQUAL(3456789012345678900LL, fd.getPluralOperand(PLURAL_OPERAND_F));
+ ASSERT_EQUAL(34567890123456789LL, fd.getPluralOperand(PLURAL_OPERAND_T));
+ ASSERT_EQUAL(12, fd.getPluralOperand(PLURAL_OPERAND_I));
+ ASSERT_EQUAL(FALSE, fd.hasIntegerValue());
+ ASSERT_EQUAL(FALSE, fd.isNegative());
// On field overflow, Integer part is truncated on the left, fraction part on the right.
fable.setDecimalNumber("123456789012345678901234567890.123456789012345678901234567890", status);
TEST_ASSERT_STATUS(status);
- fd = df->getFixedDecimal(fable, status);
+ df->formatToDecimalQuantity(fable, fd, status);
TEST_ASSERT_STATUS(status);
- ASSERT_EQUAL(22, fd.visibleDecimalDigitCount);
- ASSERT_EQUAL(123456789012345678LL, fd.decimalDigits);
- ASSERT_EQUAL(123456789012345678LL, fd.decimalDigitsWithoutTrailingZeros);
- ASSERT_EQUAL(345678901234567890LL, fd.intValue);
- ASSERT_EQUAL(FALSE, fd.hasIntegerValue);
- ASSERT_EQUAL(FALSE, fd.isNegative);
+ ASSERT_EQUAL(22, fd.getPluralOperand(PLURAL_OPERAND_V));
+ ASSERT_EQUAL(1234567890123456789LL, fd.getPluralOperand(PLURAL_OPERAND_F));
+ ASSERT_EQUAL(1234567890123456789LL, fd.getPluralOperand(PLURAL_OPERAND_T));
+ ASSERT_EQUAL(345678901234567890LL, fd.getPluralOperand(PLURAL_OPERAND_I));
+ ASSERT_EQUAL(FALSE, fd.hasIntegerValue());
+ ASSERT_EQUAL(FALSE, fd.isNegative());
// Digits way to the right of the decimal but within the format's precision aren't truncated
fable.setDecimalNumber("1.0000000000000000000012", status);
TEST_ASSERT_STATUS(status);
- fd = df->getFixedDecimal(fable, status);
+ df->formatToDecimalQuantity(fable, fd, status);
TEST_ASSERT_STATUS(status);
- ASSERT_EQUAL(22, fd.visibleDecimalDigitCount);
- ASSERT_EQUAL(12, fd.decimalDigits);
- ASSERT_EQUAL(12, fd.decimalDigitsWithoutTrailingZeros);
- ASSERT_EQUAL(1, fd.intValue);
- ASSERT_EQUAL(FALSE, fd.hasIntegerValue);
- ASSERT_EQUAL(FALSE, fd.isNegative);
+ ASSERT_EQUAL(22, fd.getPluralOperand(PLURAL_OPERAND_V));
+ ASSERT_EQUAL(12, fd.getPluralOperand(PLURAL_OPERAND_F));
+ ASSERT_EQUAL(12, fd.getPluralOperand(PLURAL_OPERAND_T));
+ ASSERT_EQUAL(1, fd.getPluralOperand(PLURAL_OPERAND_I));
+ ASSERT_EQUAL(FALSE, fd.hasIntegerValue());
+ ASSERT_EQUAL(FALSE, fd.isNegative());
// Digits beyond the precision of the format are rounded away
fable.setDecimalNumber("1.000000000000000000000012", status);
TEST_ASSERT_STATUS(status);
- fd = df->getFixedDecimal(fable, status);
+ df->formatToDecimalQuantity(fable, fd, status);
TEST_ASSERT_STATUS(status);
- ASSERT_EQUAL(2, fd.visibleDecimalDigitCount);
- ASSERT_EQUAL(0, fd.decimalDigits);
- ASSERT_EQUAL(0, fd.decimalDigitsWithoutTrailingZeros);
- ASSERT_EQUAL(1, fd.intValue);
- ASSERT_EQUAL(TRUE, fd.hasIntegerValue);
- ASSERT_EQUAL(FALSE, fd.isNegative);
+ ASSERT_EQUAL(2, fd.getPluralOperand(PLURAL_OPERAND_V));
+ ASSERT_EQUAL(0, fd.getPluralOperand(PLURAL_OPERAND_F));
+ ASSERT_EQUAL(0, fd.getPluralOperand(PLURAL_OPERAND_T));
+ ASSERT_EQUAL(1, fd.getPluralOperand(PLURAL_OPERAND_I));
+ ASSERT_EQUAL(TRUE, fd.hasIntegerValue());
+ ASSERT_EQUAL(FALSE, fd.isNegative());
// Negative numbers come through
fable.setDecimalNumber("-1.0000000000000000000012", status);
TEST_ASSERT_STATUS(status);
- fd = df->getFixedDecimal(fable, status);
+ df->formatToDecimalQuantity(fable, fd, status);
TEST_ASSERT_STATUS(status);
- ASSERT_EQUAL(22, fd.visibleDecimalDigitCount);
- ASSERT_EQUAL(12, fd.decimalDigits);
- ASSERT_EQUAL(12, fd.decimalDigitsWithoutTrailingZeros);
- ASSERT_EQUAL(1, fd.intValue);
- ASSERT_EQUAL(FALSE, fd.hasIntegerValue);
- ASSERT_EQUAL(TRUE, fd.isNegative);
+ ASSERT_EQUAL(22, fd.getPluralOperand(PLURAL_OPERAND_V));
+ ASSERT_EQUAL(12, fd.getPluralOperand(PLURAL_OPERAND_F));
+ ASSERT_EQUAL(12, fd.getPluralOperand(PLURAL_OPERAND_T));
+ ASSERT_EQUAL(1, fd.getPluralOperand(PLURAL_OPERAND_I));
+ ASSERT_EQUAL(FALSE, fd.hasIntegerValue());
+ ASSERT_EQUAL(TRUE, fd.isNegative());
// MinFractionDigits from format larger than from number.
fable.setDecimalNumber("1000000000000000000000.3", status);
TEST_ASSERT_STATUS(status);
- fd = df->getFixedDecimal(fable, status);
+ df->formatToDecimalQuantity(fable, fd, status);
TEST_ASSERT_STATUS(status);
- ASSERT_EQUAL(2, fd.visibleDecimalDigitCount);
- ASSERT_EQUAL(30, fd.decimalDigits);
- ASSERT_EQUAL(3, fd.decimalDigitsWithoutTrailingZeros);
- ASSERT_EQUAL(100000000000000000LL, fd.intValue);
- ASSERT_EQUAL(FALSE, fd.hasIntegerValue);
- ASSERT_EQUAL(FALSE, fd.isNegative);
+ ASSERT_EQUAL(2, fd.getPluralOperand(PLURAL_OPERAND_V));
+ ASSERT_EQUAL(30, fd.getPluralOperand(PLURAL_OPERAND_F));
+ ASSERT_EQUAL(3, fd.getPluralOperand(PLURAL_OPERAND_T));
+ ASSERT_EQUAL(0, fd.getPluralOperand(PLURAL_OPERAND_I));
+ ASSERT_EQUAL(FALSE, fd.hasIntegerValue());
+ ASSERT_EQUAL(FALSE, fd.isNegative());
fable.setDecimalNumber("1000000000000000050000.3", status);
TEST_ASSERT_STATUS(status);
- fd = df->getFixedDecimal(fable, status);
+ df->formatToDecimalQuantity(fable, fd, status);
TEST_ASSERT_STATUS(status);
- ASSERT_EQUAL(2, fd.visibleDecimalDigitCount);
- ASSERT_EQUAL(30, fd.decimalDigits);
- ASSERT_EQUAL(3, fd.decimalDigitsWithoutTrailingZeros);
- ASSERT_EQUAL(50000LL, fd.intValue);
- ASSERT_EQUAL(FALSE, fd.hasIntegerValue);
- ASSERT_EQUAL(FALSE, fd.isNegative);
+ ASSERT_EQUAL(2, fd.getPluralOperand(PLURAL_OPERAND_V));
+ ASSERT_EQUAL(30, fd.getPluralOperand(PLURAL_OPERAND_F));
+ ASSERT_EQUAL(3, fd.getPluralOperand(PLURAL_OPERAND_T));
+ ASSERT_EQUAL(50000LL, fd.getPluralOperand(PLURAL_OPERAND_I));
+ ASSERT_EQUAL(FALSE, fd.hasIntegerValue());
+ ASSERT_EQUAL(FALSE, fd.isNegative());
// Test some int64_t values that are out of the range of a double
fable.setInt64(4503599627370496LL);
TEST_ASSERT_STATUS(status);
- fd = df->getFixedDecimal(fable, status);
+ df->formatToDecimalQuantity(fable, fd, status);
TEST_ASSERT_STATUS(status);
- ASSERT_EQUAL(2, fd.visibleDecimalDigitCount);
- ASSERT_EQUAL(0, fd.decimalDigits);
- ASSERT_EQUAL(0, fd.decimalDigitsWithoutTrailingZeros);
- ASSERT_EQUAL(4503599627370496LL, fd.intValue);
- ASSERT_EQUAL(TRUE, fd.hasIntegerValue);
- ASSERT_EQUAL(FALSE, fd.isNegative);
+ ASSERT_EQUAL(2, fd.getPluralOperand(PLURAL_OPERAND_V));
+ ASSERT_EQUAL(0, fd.getPluralOperand(PLURAL_OPERAND_F));
+ ASSERT_EQUAL(0, fd.getPluralOperand(PLURAL_OPERAND_T));
+ ASSERT_EQUAL(4503599627370496LL, fd.getPluralOperand(PLURAL_OPERAND_I));
+ ASSERT_EQUAL(TRUE, fd.hasIntegerValue());
+ ASSERT_EQUAL(FALSE, fd.isNegative());
fable.setInt64(4503599627370497LL);
TEST_ASSERT_STATUS(status);
- fd = df->getFixedDecimal(fable, status);
+ df->formatToDecimalQuantity(fable, fd, status);
TEST_ASSERT_STATUS(status);
- ASSERT_EQUAL(2, fd.visibleDecimalDigitCount);
- ASSERT_EQUAL(0, fd.decimalDigits);
- ASSERT_EQUAL(0, fd.decimalDigitsWithoutTrailingZeros);
- ASSERT_EQUAL(4503599627370497LL, fd.intValue);
- ASSERT_EQUAL(TRUE, fd.hasIntegerValue);
- ASSERT_EQUAL(FALSE, fd.isNegative);
+ ASSERT_EQUAL(2, fd.getPluralOperand(PLURAL_OPERAND_V));
+ ASSERT_EQUAL(0, fd.getPluralOperand(PLURAL_OPERAND_F));
+ ASSERT_EQUAL(0, fd.getPluralOperand(PLURAL_OPERAND_T));
+ ASSERT_EQUAL(4503599627370497LL, fd.getPluralOperand(PLURAL_OPERAND_I));
+ ASSERT_EQUAL(TRUE, fd.hasIntegerValue());
+ ASSERT_EQUAL(FALSE, fd.isNegative());
fable.setInt64(9223372036854775807LL);
TEST_ASSERT_STATUS(status);
- fd = df->getFixedDecimal(fable, status);
+ df->formatToDecimalQuantity(fable, fd, status);
TEST_ASSERT_STATUS(status);
- ASSERT_EQUAL(2, fd.visibleDecimalDigitCount);
- ASSERT_EQUAL(0, fd.decimalDigits);
- ASSERT_EQUAL(0, fd.decimalDigitsWithoutTrailingZeros);
+ ASSERT_EQUAL(2, fd.getPluralOperand(PLURAL_OPERAND_V));
+ ASSERT_EQUAL(0, fd.getPluralOperand(PLURAL_OPERAND_F));
+ ASSERT_EQUAL(0, fd.getPluralOperand(PLURAL_OPERAND_T));
// note: going through DigitList path to FixedDecimal, which is trimming
// int64_t fields to 18 digits. See ticket Ticket #10374
- // ASSERT_EQUAL(223372036854775807LL, fd.intValue);
- if (!(fd.intValue == 223372036854775807LL || fd.intValue == 9223372036854775807LL)) {
- dataerrln("File %s, Line %d, fd.intValue = %lld", __FILE__, __LINE__, fd.intValue);
- }
- ASSERT_EQUAL(TRUE, fd.hasIntegerValue);
- ASSERT_EQUAL(FALSE, fd.isNegative);
+ // ASSERT_EQUAL(223372036854775807LL, fd.getPluralOperand(PLURAL_OPERAND_I);
+ if (!(
+ fd.getPluralOperand(PLURAL_OPERAND_I) == 223372036854775807LL ||
+ fd.getPluralOperand(PLURAL_OPERAND_I) == 9223372036854775807LL)) {
+ dataerrln(
+ "File %s, Line %d, fd.getPluralOperand(PLURAL_OPERAND_I = %lld",
+ __FILE__,
+ __LINE__,
+ fd.getPluralOperand(PLURAL_OPERAND_I));
+ }
+ ASSERT_EQUAL(TRUE, fd.hasIntegerValue());
+ ASSERT_EQUAL(FALSE, fd.isNegative());
}
@@ -987,4 +1028,114 @@ void IntlTestDecimalFormatAPI::TestRequiredDecimalPoint() {
}
}
+// WHERE Macro yields a literal string of the form "source_file_name:line number "
+#define WHERE __FILE__ ":" XLINE(__LINE__) " "
+#define XLINE(s) LINE(s)
+#define LINE(s) #s
+
+void IntlTestDecimalFormatAPI::testErrorCode() {
+ // Try each DecimalFormat constructor with an errorCode set on input,
+ // Verify no crashes or leaks, and that the errorCode is not altered.
+
+ UErrorCode status = U_ZERO_ERROR;
+ const UnicodeString pattern(u"0.###E0");
+ UParseError pe;
+ DecimalFormatSymbols symbols(Locale::getUS(), status);
+ assertSuccess(WHERE, status);
+
+ {
+ status = U_INTERNAL_PROGRAM_ERROR;
+ DecimalFormat df(status);
+ assertEquals(WHERE, U_INTERNAL_PROGRAM_ERROR, status);
+ }
+ {
+ status = U_INTERNAL_PROGRAM_ERROR;
+ DecimalFormat df(pattern, status);
+ assertEquals(WHERE, U_INTERNAL_PROGRAM_ERROR, status);
+ }
+ {
+ status = U_INTERNAL_PROGRAM_ERROR;
+ DecimalFormat df(pattern, new DecimalFormatSymbols(symbols), status);
+ assertEquals(WHERE, U_INTERNAL_PROGRAM_ERROR, status);
+ }
+ {
+ status = U_INTERNAL_PROGRAM_ERROR;
+ DecimalFormat df(pattern, new DecimalFormatSymbols(symbols), UNUM_DECIMAL_COMPACT_LONG, status);
+ assertEquals(WHERE, U_INTERNAL_PROGRAM_ERROR, status);
+ }
+ {
+ status = U_INTERNAL_PROGRAM_ERROR;
+ DecimalFormat df(pattern, new DecimalFormatSymbols(symbols), pe, status);
+ assertEquals(WHERE, U_INTERNAL_PROGRAM_ERROR, status);
+ }
+ {
+ status = U_INTERNAL_PROGRAM_ERROR;
+ DecimalFormat df(pattern, symbols ,status);
+ assertEquals(WHERE, U_INTERNAL_PROGRAM_ERROR, status);
+ }
+
+ // Try each DecimalFormat method with an error code parameter, verifying that
+ // an input error is not altered.
+
+ status = U_INTERNAL_PROGRAM_ERROR;
+ DecimalFormat dfBogus(status);
+ assertEquals(WHERE, U_INTERNAL_PROGRAM_ERROR, status);
+
+ status = U_ZERO_ERROR;
+ DecimalFormat dfGood(pattern, new DecimalFormatSymbols(symbols), status);
+ assertSuccess(WHERE, status);
+
+ for (DecimalFormat *df: {&dfBogus, &dfGood}) {
+ status = U_INTERNAL_PROGRAM_ERROR;
+ df->setAttribute(UNUM_PARSE_INT_ONLY, 0, status);
+ assertEquals(WHERE, U_INTERNAL_PROGRAM_ERROR, status);
+
+ status = U_INTERNAL_PROGRAM_ERROR;
+ df->getAttribute(UNUM_MAX_FRACTION_DIGITS, status);
+ assertEquals(WHERE, U_INTERNAL_PROGRAM_ERROR, status);
+
+ status = U_INTERNAL_PROGRAM_ERROR;
+ UnicodeString dest;
+ FieldPosition fp;
+ df->format(1.2, dest, fp, status);
+ assertEquals(WHERE, U_INTERNAL_PROGRAM_ERROR, status);
+
+ status = U_INTERNAL_PROGRAM_ERROR;
+ df->format(1.2, dest, nullptr, status);
+ assertEquals(WHERE, U_INTERNAL_PROGRAM_ERROR, status);
+
+ status = U_INTERNAL_PROGRAM_ERROR;
+ df->format((int32_t)666, dest, nullptr, status);
+ assertEquals(WHERE, U_INTERNAL_PROGRAM_ERROR, status);
+
+ status = U_INTERNAL_PROGRAM_ERROR;
+ df->format((int64_t)666, dest, nullptr, status);
+ assertEquals(WHERE, U_INTERNAL_PROGRAM_ERROR, status);
+
+ status = U_INTERNAL_PROGRAM_ERROR;
+ df->format(StringPiece("3.1415926535897932384626"), dest, nullptr, status);
+ assertEquals(WHERE, U_INTERNAL_PROGRAM_ERROR, status);
+
+ status = U_INTERNAL_PROGRAM_ERROR;
+ df->applyPattern(pattern, status);
+ assertEquals(WHERE, U_INTERNAL_PROGRAM_ERROR, status);
+
+ status = U_INTERNAL_PROGRAM_ERROR;
+ df->applyLocalizedPattern(pattern, pe, status);
+ assertEquals(WHERE, U_INTERNAL_PROGRAM_ERROR, status);
+
+ status = U_INTERNAL_PROGRAM_ERROR;
+ df->applyLocalizedPattern(pattern, status);
+ assertEquals(WHERE, U_INTERNAL_PROGRAM_ERROR, status);
+
+ status = U_INTERNAL_PROGRAM_ERROR;
+ df->setCurrency(u"USD", status);
+ assertEquals(WHERE, U_INTERNAL_PROGRAM_ERROR, status);
+
+ status = U_INTERNAL_PROGRAM_ERROR;
+ df->setCurrencyUsage(UCURR_USAGE_CASH, &status);
+ assertEquals(WHERE, U_INTERNAL_PROGRAM_ERROR, status);
+ }
+}
+
#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/dcfmapts.h b/Build/source/libs/icu/icu-src/source/test/intltest/dcfmapts.h
index 1af38140db4..2e4bff7fb7b 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/dcfmapts.h
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/dcfmapts.h
@@ -33,6 +33,7 @@ public:
void TestFixedDecimal();
void TestBadFastpath();
void TestRequiredDecimalPoint();
+ void testErrorCode();
private:
/*Helper functions */
void verify(const UnicodeString& message, const UnicodeString& got, double expected);
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/dcfmtest.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/dcfmtest.cpp
index 63fff8146a2..2dc9f82a442 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/dcfmtest.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/dcfmtest.cpp
@@ -454,8 +454,9 @@ void DecimalFormatTest::execFormatTest(int32_t lineNum,
}
if (result != expected) {
- errln("[%s] file dcfmtest.txt, line %d: expected \"%s\", got \"%s\"",
- typeStr, lineNum, UnicodeStringPiece(expected).data(), UnicodeStringPiece(result).data());
+ errln("[%s] file dcfmtest.txt, line %d: expected \"%s\", got \"%s\", %s",
+ typeStr, lineNum, UnicodeStringPiece(expected).data(), UnicodeStringPiece(result).data(),
+ u_errorName(status));
}
}
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/dtfmttst.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/dtfmttst.cpp
index 35870f780f5..b272320e927 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/dtfmttst.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/dtfmttst.cpp
@@ -121,6 +121,7 @@ void DateFormatTest::runIndexedTest( int32_t index, UBool exec, const char* &nam
TESTCASE_AUTO(TestDayPeriodWithLocales);
TESTCASE_AUTO(TestMinuteSecondFieldsInOddPlaces);
TESTCASE_AUTO(TestDayPeriodParsing);
+ TESTCASE_AUTO(TestParseRegression13744);
TESTCASE_AUTO_END;
}
@@ -205,14 +206,14 @@ void DateFormatTest::TestPatterns() {
// actualPattern, locale);
LocalPointer<DateTimePatternGenerator> generator(
DateTimePatternGenerator::createInstance(locale, errorCode));
- if(errorCode.logDataIfFailureAndReset("DateTimePatternGenerator::createInstance() failed for locale ID \"%s\"", EXPECTED[i].localeID)) {
+ if(errorCode.errDataIfFailureAndReset("DateTimePatternGenerator::createInstance() failed for locale ID \"%s\"", EXPECTED[i].localeID)) {
continue;
}
UnicodeString pattern = generator->getBestPattern(actualPattern, errorCode);
SimpleDateFormat date1(pattern, locale, errorCode);
SimpleDateFormat date2(pattern, locale, errorCode);
date2.adoptCalendar(Calendar::createInstance(locale, errorCode));
- if(errorCode.logIfFailureAndReset("DateFormat::getInstanceForSkeleton() failed")) {
+ if(errorCode.errIfFailureAndReset("DateFormat::getInstanceForSkeleton() failed")) {
errln(" for actualPattern \"%s\" & locale ID \"%s\"",
EXPECTED[i].actualPattern, EXPECTED[i].localeID);
continue;
@@ -5180,9 +5181,9 @@ void DateFormatTest::TestDayPeriodWithLocales() {
// assertEquals("hh:mm:ss bbbb | 00:00:00 | de", "12:00:00 Mitternacht",
// sdf.format(k000000, out.remove()));
- assertEquals("hh:mm:ss bbbb | 00:00:00 | de", "12:00:00 vorm.",
+ assertEquals("hh:mm:ss bbbb | 00:00:00 | de", "12:00:00 AM",
sdf.format(k000000, out.remove()));
- assertEquals("hh:mm:ss bbbb | 12:00:00 | de", "12:00:00 nachm.",
+ assertEquals("hh:mm:ss bbbb | 12:00:00 | de", "12:00:00 PM",
sdf.format(k120000, out.remove()));
// Locale ee has a rule that wraps around midnight (21h - 4h).
@@ -5539,6 +5540,19 @@ void DateFormatTest::TestDayPeriodParsing() {
k150000, sdf.parse(UnicodeString("2015-11-13 03:00 noon"), errorCode));
}
+void DateFormatTest::TestParseRegression13744() {
+ LocalPointer<DateFormat> dfmt(DateFormat::createDateTimeInstance(
+ DateFormat::SHORT, DateFormat::SHORT, Locale("en", "US")));
+ if (dfmt.isNull()) {
+ dataerrln("DateFormat::createDateTimeInstance() failed");
+ return;
+ }
+ ParsePosition pos(0);
+ UnicodeString inDate("4/27/18");
+ dfmt->parse(inDate, pos);
+ assertEquals("Error index", inDate.length(), pos.getErrorIndex());
+}
+
#endif /* #if !UCONFIG_NO_FORMATTING */
//eof
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/dtfmttst.h b/Build/source/libs/icu/icu-src/source/test/intltest/dtfmttst.h
index 711c6ac8330..efc56732494 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/dtfmttst.h
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/dtfmttst.h
@@ -261,6 +261,7 @@ public:
void TestDayPeriodWithLocales();
void TestMinuteSecondFieldsInOddPlaces();
void TestDayPeriodParsing();
+ void TestParseRegression13744();
private:
UBool showParse(DateFormat &format, const UnicodeString &formattedString);
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/dtifmtts.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/dtifmtts.cpp
index f840b7d695d..c5b96310833 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/dtifmtts.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/dtifmtts.cpp
@@ -904,7 +904,7 @@ void DateIntervalFormatTest::testFormat() {
"de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "M", "10.2007 \\u2013 10.2008",
- "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "hm", "10.10.2007, 10:10 vorm. \\u2013 10.10.2008, 10:10 vorm.",
+ "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "hm", "10.10.2007, 10:10 AM \\u2013 10.10.2008, 10:10 AM",
"de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "Hm", "10.10.2007, 10:10 \\u2013 10.10.2008, 10:10",
"de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EEEEdMMMy", "Mittwoch, 10. Okt. \\u2013 Samstag, 10. Nov. 2007",
@@ -930,7 +930,7 @@ void DateIntervalFormatTest::testFormat() {
"de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMM", "Okt.\\u2013Nov.",
- "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "hms", "10.10.2007, 10:10:10 vorm. \\u2013 10.11.2007, 10:10:10 vorm.",
+ "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "hms", "10.10.2007, 10:10:10 AM \\u2013 10.11.2007, 10:10:10 AM",
"de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "Hms", "10.10.2007, 10:10:10 \\u2013 10.11.2007, 10:10:10",
"de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEEEdMMMy", "Samstag, 10. \\u2013 Dienstag, 20. Nov. 2007",
@@ -942,10 +942,10 @@ void DateIntervalFormatTest::testFormat() {
"de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEEEdMMM", "Samstag, 10. \\u2013 Dienstag, 20. Nov.",
- "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdMy", "Sa., 10.11.2007 \\u2013 Di., 20.11.2007",
+ "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdMy", "Sa., 10. \\u2013 Di., 20.11.2007",
- "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dM", "10.11. \\u2013 20.11.",
+ "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dM", "10.\\u201320.11.",
"de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "My", "11.2007",
@@ -955,7 +955,7 @@ void DateIntervalFormatTest::testFormat() {
"de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "y", "2007",
- "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "hmv", "10.11.2007, 10:10 vorm. Los Angeles Zeit \\u2013 20.11.2007, 10:10 vorm. Los Angeles Zeit",
+ "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "hmv", "10.11.2007, 10:10 AM Los Angeles Zeit \\u2013 20.11.2007, 10:10 AM Los Angeles Zeit",
"de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEEEdMMMy", "Mittwoch, 10. Jan. 2007",
@@ -968,33 +968,33 @@ void DateIntervalFormatTest::testFormat() {
/* Following is an important test, because the 'h' in 'Uhr' is interpreted as a pattern
if not escaped properly. */
- "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "h", "10 Uhr vorm. \\u2013 2 Uhr nachm.",
+ "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "h", "10 Uhr AM \\u2013 2 Uhr PM",
"de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "H", "10\\u201314 Uhr",
"de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EEEEdMMM", "Mittwoch, 10. Jan.",
- "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hmv", "10:00\\u201310:20 vorm. Los Angeles Zeit",
+ "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hmv", "10:00\\u201310:20 AM Los Angeles Zeit",
- "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hmz", "10:00\\u201310:20 vorm. GMT-8",
+ "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hmz", "10:00\\u201310:20 AM GMT-8",
- "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "h", "10 Uhr vorm.",
+ "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "h", "10 Uhr AM",
"de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "H", "10 Uhr",
- "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hz", "10 Uhr vorm. GMT-8",
+ "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hz", "10 Uhr AM GMT-8",
"de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EEEEdMMMy", "Mittwoch, 10. Jan. 2007",
- "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hmv", "10:10 vorm. Los Angeles Zeit",
+ "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hmv", "10:10 AM Los Angeles Zeit",
- "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hmz", "10:10 vorm. GMT-8",
+ "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hmz", "10:10 AM GMT-8",
- "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hv", "10 Uhr vorm. Los Angeles Zeit",
+ "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hv", "10 Uhr AM Los Angeles Zeit",
- "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hz", "10 Uhr vorm. GMT-8",
+ "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hz", "10 Uhr AM GMT-8",
// Thai (default calendar buddhist)
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/dtptngts.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/dtptngts.cpp
index da262ba99e4..f21856821f8 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/dtptngts.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/dtptngts.cpp
@@ -133,7 +133,7 @@ void IntlTestDateTimePatternGeneratorAPI::testAPI(/*char *par*/)
UnicodeString("13. Jan."), // 05: MMMd
UnicodeString("13. Januar"), // 06: MMMMd
UnicodeString("Q1 1999"), // 07: yQQQ
- UnicodeString("11:58 nachm."), // 08: hhmm
+ UnicodeString("11:58 PM"), // 08: hhmm
UnicodeString("23:58"), // 09: HHmm
UnicodeString("23:58"), // 10: jjmm
UnicodeString("58:59"), // 11: mmss
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/erarulestest.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/erarulestest.cpp
new file mode 100644
index 00000000000..b550361b271
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/erarulestest.cpp
@@ -0,0 +1,130 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+#include "unicode/calendar.h"
+#include "unicode/localpointer.h"
+#include "unicode/unistr.h"
+#include "erarules.h"
+#include "erarulestest.h"
+
+void EraRulesTest::runIndexedTest(int32_t index, UBool exec, const char* &name, char* /*par*/)
+{
+ if (exec) {
+ logln("TestSuite EraRulesTest");
+ }
+ TESTCASE_AUTO_BEGIN;
+ TESTCASE_AUTO(testAPIs);
+ TESTCASE_AUTO(testJapanese);
+ TESTCASE_AUTO_END;
+}
+
+void EraRulesTest::testAPIs() {
+ const char * calTypes[] = {
+ "gregorian",
+ //"iso8601",
+ "buddhist",
+ "chinese",
+ "coptic",
+ "dangi",
+ "ethiopic",
+ "ethiopic-amete-alem",
+ "hebrew",
+ "indian",
+ "islamic",
+ "islamic-civil",
+ "islamic-rgsa",
+ "islamic-tbla",
+ "islamic-umalqura",
+ "japanese",
+ "persian",
+ "roc",
+ //"unknown",
+ NULL
+ };
+
+ for (int32_t i = 0; calTypes[i] != NULL; i++) {
+ UErrorCode status = U_ZERO_ERROR;
+ const char *calId = calTypes[i];
+
+ LocalPointer<EraRules> rules1(EraRules::createInstance(calId, FALSE, status));
+ if (U_FAILURE(status)) {
+ errln(UnicodeString("Era rules for ") + calId + " is not available.");
+ continue;
+ }
+
+ LocalPointer<EraRules> rules2(EraRules::createInstance(calId, TRUE, status));
+ if (U_FAILURE(status)) {
+ errln(UnicodeString("Era rules for ") + calId + " (including tentative eras) is not available.");
+ continue;
+ }
+
+ int32_t numEras1 = rules1->getNumberOfEras();
+ if (numEras1 <= 0) {
+ errln(UnicodeString("Number of era rules for ") + calId + " is " + numEras1);
+ }
+
+ int32_t numEras2 = rules2->getNumberOfEras();
+ if (numEras2 < numEras1) {
+ errln(UnicodeString("Number of era including tentative eras is fewer than one without tentative eras in calendar: ")
+ + calId);
+ }
+
+ LocalPointer<Calendar> cal(Calendar::createInstance("en", status));
+ if (U_FAILURE(status)) {
+ errln("Failed to create a Calendar instance.");
+ continue;
+ }
+ int32_t currentIdx = rules1->getCurrentEraIndex();
+ int32_t currentYear = cal->get(UCAL_YEAR, status);
+ int32_t idx = rules1->getEraIndex(
+ currentYear, cal->get(UCAL_MONTH, status) + 1,
+ cal->get(UCAL_DATE, status), status);
+ if (U_FAILURE(status)) {
+ errln("Error while getting index of era.");
+ continue;
+ }
+ if (idx != currentIdx) {
+ errln(UnicodeString("Current era index:") + currentIdx + " is different from era index of now:" + idx
+ + " in calendar:" + calId);
+ }
+
+ int32_t eraStartYear = rules1->getStartYear(currentIdx, status);
+ if (U_FAILURE(status)) {
+ errln(UnicodeString("Failed to get the start year of era index: ") + currentIdx + " in calendar: " + calId);
+ }
+ if (currentYear < eraStartYear) {
+ errln(UnicodeString("Current era's start year is after the current year in calendar:") + calId);
+ }
+ }
+}
+
+void EraRulesTest::testJapanese() {
+ const int32_t HEISEI = 235; // ICU4C does not define constants for eras
+
+ UErrorCode status = U_ZERO_ERROR;
+ LocalPointer<EraRules> rules(EraRules::createInstance("japanese", TRUE, status));
+ if (U_FAILURE(status)) {
+ errln("Failed to get era rules for Japanese calendar.");
+ return;
+ }
+ // Rules should have an era after Heisei
+ int32_t numRules = rules->getNumberOfEras();
+ if (numRules <= HEISEI) {
+ errln("Era after Heisei is not available.");
+ return;
+ }
+ int postHeiseiStartYear = rules->getStartYear(HEISEI + 1, status);
+ if (U_FAILURE(status)) {
+ errln("Failed to get the start year of era after Heisei.");
+ }
+ if (postHeiseiStartYear != 2019) {
+ errln(UnicodeString("Era after Heisei should start in 2019, but got ") + postHeiseiStartYear);
+ }
+}
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
+
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/erarulestest.h b/Build/source/libs/icu/icu-src/source/test/intltest/erarulestest.h
new file mode 100644
index 00000000000..28116af198d
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/erarulestest.h
@@ -0,0 +1,23 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#ifndef ERARULESTEST_H_
+#define ERARULESTEST_H_
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+#include "intltest.h"
+
+class EraRulesTest : public IntlTest {
+public:
+ void runIndexedTest(int32_t index, UBool exec, const char* &name, char* par = NULL);
+
+private:
+ void testAPIs();
+ void testJapanese();
+};
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
+#endif /* ERARULESTEST_H_ */
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/intltest.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/intltest.cpp
index c45913796a4..e85ba87fca8 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/intltest.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/intltest.cpp
@@ -18,6 +18,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <cmath>
#include "unicode/ctest.h" // for str_timeDelta
#include "unicode/curramt.h"
@@ -237,6 +238,12 @@ UnicodeString toString(UBool b) {
return b ? UnicodeString("TRUE"):UnicodeString("FALSE");
}
+UnicodeString toString(const UnicodeSet& uniset, UErrorCode& status) {
+ UnicodeString result;
+ uniset.toPattern(result, status);
+ return result;
+}
+
// stephen - cleaned up 05/05/99
UnicodeString operator+(const UnicodeString& left, char num)
{ return left + (long)num; }
@@ -1894,9 +1901,13 @@ UBool IntlTest::assertTrue(const char* message, UBool condition, UBool quiet, UB
return condition;
}
-UBool IntlTest::assertFalse(const char* message, UBool condition, UBool quiet) {
+UBool IntlTest::assertFalse(const char* message, UBool condition, UBool quiet, UBool possibleDataError) {
if (condition) {
- errln("FAIL: assertFalse() failed: %s", message);
+ if (possibleDataError) {
+ dataerrln("FAIL: assertTrue() failed: %s", message);
+ } else {
+ errln("FAIL: assertTrue() failed: %s", message);
+ }
} else if (!quiet) {
logln("Ok: %s", message);
}
@@ -1998,7 +2009,8 @@ UBool IntlTest::assertEquals(const char* message,
UBool IntlTest::assertEquals(const char* message,
double expected,
double actual) {
- if (expected != actual) {
+ bool bothNaN = std::isnan(expected) && std::isnan(actual);
+ if (expected != actual && !bothNaN) {
errln((UnicodeString)"FAIL: " + message + "; got " +
actual +
"; expected " + expected);
@@ -2048,6 +2060,24 @@ UBool IntlTest::assertEquals(const char* message,
return TRUE;
}
+UBool IntlTest::assertEquals(const char* message,
+ const UnicodeSet& expected,
+ const UnicodeSet& actual) {
+ IcuTestErrorCode status(*this, "assertEqualsUniSet");
+ if (expected != actual) {
+ errln((UnicodeString)"FAIL: " + message + "; got " +
+ toString(actual, status) +
+ "; expected " + toString(expected, status));
+ return FALSE;
+ }
+#ifdef VERBOSE_ASSERTIONS
+ else {
+ logln((UnicodeString)"Ok: " + message + "; got " + toString(actual, status));
+ }
+#endif
+ return TRUE;
+}
+
#if !UCONFIG_NO_FORMATTING
UBool IntlTest::assertEquals(const char* message,
@@ -2085,12 +2115,12 @@ static const char* extractToAssertBuf(const UnicodeString& message) {
return ASSERT_BUF;
}
-UBool IntlTest::assertTrue(const UnicodeString& message, UBool condition, UBool quiet) {
- return assertTrue(extractToAssertBuf(message), condition, quiet);
+UBool IntlTest::assertTrue(const UnicodeString& message, UBool condition, UBool quiet, UBool possibleDataError) {
+ return assertTrue(extractToAssertBuf(message), condition, quiet, possibleDataError);
}
-UBool IntlTest::assertFalse(const UnicodeString& message, UBool condition, UBool quiet) {
- return assertFalse(extractToAssertBuf(message), condition, quiet);
+UBool IntlTest::assertFalse(const UnicodeString& message, UBool condition, UBool quiet, UBool possibleDataError) {
+ return assertFalse(extractToAssertBuf(message), condition, quiet, possibleDataError);
}
UBool IntlTest::assertSuccess(const UnicodeString& message, UErrorCode ec) {
@@ -2134,6 +2164,11 @@ UBool IntlTest::assertEquals(const UnicodeString& message,
UErrorCode actual) {
return assertEquals(extractToAssertBuf(message), expected, actual);
}
+UBool IntlTest::assertEquals(const UnicodeString& message,
+ const UnicodeSet& expected,
+ const UnicodeSet& actual) {
+ return assertEquals(extractToAssertBuf(message), expected, actual);
+}
#if !UCONFIG_NO_FORMATTING
UBool IntlTest::assertEquals(const UnicodeString& message,
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/intltest.h b/Build/source/libs/icu/icu-src/source/test/intltest/intltest.h
index 08765b707d0..ee3c88324d2 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/intltest.h
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/intltest.h
@@ -16,6 +16,7 @@
// The following includes utypes.h, uobject.h and unistr.h
#include "unicode/fmtable.h"
#include "unicode/testlog.h"
+#include "unicode/uniset.h"
U_NAMESPACE_USE
@@ -281,7 +282,7 @@ public:
/* JUnit-like assertions. Each returns TRUE if it succeeds. */
UBool assertTrue(const char* message, UBool condition, UBool quiet=FALSE, UBool possibleDataError=FALSE, const char *file=NULL, int line=0);
- UBool assertFalse(const char* message, UBool condition, UBool quiet=FALSE);
+ UBool assertFalse(const char* message, UBool condition, UBool quiet=FALSE, UBool possibleDataError=FALSE);
/**
* @param possibleDataError - if TRUE, use dataerrln instead of errcheckln on failure
* @return TRUE on success, FALSE on failure.
@@ -295,14 +296,15 @@ public:
UBool assertEquals(const char* message, int64_t expected, int64_t actual);
UBool assertEquals(const char* message, double expected, double actual);
UBool assertEquals(const char* message, UErrorCode expected, UErrorCode actual);
+ UBool assertEquals(const char* message, const UnicodeSet& expected, const UnicodeSet& actual);
#if !UCONFIG_NO_FORMATTING
UBool assertEquals(const char* message, const Formattable& expected,
const Formattable& actual, UBool possibleDataError=FALSE);
UBool assertEquals(const UnicodeString& message, const Formattable& expected,
const Formattable& actual);
#endif
- UBool assertTrue(const UnicodeString& message, UBool condition, UBool quiet=FALSE);
- UBool assertFalse(const UnicodeString& message, UBool condition, UBool quiet=FALSE);
+ UBool assertTrue(const UnicodeString& message, UBool condition, UBool quiet=FALSE, UBool possibleDataError=FALSE);
+ UBool assertFalse(const UnicodeString& message, UBool condition, UBool quiet=FALSE, UBool possibleDataError=FALSE);
UBool assertSuccess(const UnicodeString& message, UErrorCode ec);
UBool assertEquals(const UnicodeString& message, const UnicodeString& expected,
const UnicodeString& actual, UBool possibleDataError=FALSE);
@@ -312,6 +314,7 @@ public:
UBool assertEquals(const UnicodeString& message, int64_t expected, int64_t actual);
UBool assertEquals(const UnicodeString& message, double expected, double actual);
UBool assertEquals(const UnicodeString& message, UErrorCode expected, UErrorCode actual);
+ UBool assertEquals(const UnicodeString& message, const UnicodeSet& expected, const UnicodeSet& actual);
virtual void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par = NULL ); // overide !
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/intltest.vcxproj b/Build/source/libs/icu/icu-src/source/test/intltest/intltest.vcxproj
index 32bd338d795..50e0e2e89c2 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/intltest.vcxproj
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/intltest.vcxproj
@@ -2,7 +2,6 @@
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- The following import will include the 'default' configuration options for VS projects. -->
<Import Project="..\..\allinone\Build.Windows.ProjectConfiguration.props" />
-
<PropertyGroup Label="Globals">
<ProjectGuid>{73632960-B3A6-464D-83A3-4B43365F19B8}</ProjectGuid>
<RootNamespace>intltest</RootNamespace>
@@ -160,6 +159,7 @@
<ClCompile Include="colldata.cpp">
<DisableLanguageExtensions>false</DisableLanguageExtensions>
</ClCompile>
+ <ClCompile Include="erarulestest.cpp" />
<ClCompile Include="numfmtspectest.cpp" />
<ClCompile Include="regiontst.cpp" />
<ClCompile Include="ucharstrietest.cpp" />
@@ -248,13 +248,17 @@
<ClCompile Include="numbertest_affixutils.cpp" />
<ClCompile Include="numbertest_api.cpp" />
<ClCompile Include="numbertest_decimalquantity.cpp" />
- <ClCompile Include="numbertest_doubleconversion.cpp" />
<ClCompile Include="numbertest_modifiers.cpp" />
<ClCompile Include="numbertest_patternmodifier.cpp" />
<ClCompile Include="numbertest_patternstring.cpp" />
<ClCompile Include="numbertest_stringbuilder.cpp" />
- <ClCompile Include="numberformat2test.cpp" />
+ <ClCompile Include="numbertest_stringsegment.cpp" />
+ <ClCompile Include="numbertest_parse.cpp" />
+ <ClCompile Include="numbertest_doubleconversion.cpp" />
+ <ClCompile Include="numbertest_skeletons.cpp" />
+ <ClCompile Include="numbertest_range.cpp" />
<ClCompile Include="numfmtst.cpp" />
+ <ClCompile Include="numfmtdatadriventest.cpp" />
<ClCompile Include="numrgts.cpp" />
<ClCompile Include="pluralmaptest.cpp" />
<ClCompile Include="plurfmts.cpp" />
@@ -267,8 +271,9 @@
<ClCompile Include="scientificnumberformattertest.cpp" />
<ClCompile Include="sdtfmtts.cpp" />
<ClCompile Include="selfmts.cpp" />
- <ClCompile Include="tchcfmt.cpp" />
<ClCompile Include="simpleformattertest.cpp" />
+ <ClCompile Include="static_unisets_test.cpp" />
+ <ClCompile Include="tchcfmt.cpp" />
<ClCompile Include="tfsmalls.cpp" />
<ClCompile Include="tmsgfmt.cpp" />
<ClCompile Include="tsdate.cpp" />
@@ -361,6 +366,7 @@
</ItemGroup>
<ItemGroup>
<ClInclude Include="colldata.h" />
+ <ClInclude Include="erarulestest.h" />
<ClInclude Include="itrbbi.h" />
<ClInclude Include="rbbiapts.h" />
<ClInclude Include="rbbitst.h" />
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/intltest.vcxproj.filters b/Build/source/libs/icu/icu-src/source/test/intltest/intltest.vcxproj.filters
index 442793e69df..f1b740dbe99 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/intltest.vcxproj.filters
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/intltest.vcxproj.filters
@@ -72,7 +72,7 @@
</ClCompile>
<ClCompile Include="rbbimonkeytest.cpp">
<Filter>break iteration</Filter>
- </ClCompile>
+ </ClCompile>
<ClCompile Include="itspoof.cpp">
<Filter>spoof detection</Filter>
</ClCompile>
@@ -256,9 +256,6 @@
<ClCompile Include="numberformattesttuple.cpp">
<Filter>formatting</Filter>
</ClCompile>
- <ClCompile Include="numberformat2test.cpp">
- <Filter>formatting</Filter>
- </ClCompile>
<ClCompile Include="numbertest_affixutils.cpp">
<Filter>formatting</Filter>
</ClCompile>
@@ -268,9 +265,6 @@
<ClCompile Include="numbertest_decimalquantity.cpp">
<Filter>formatting</Filter>
</ClCompile>
- <ClCompile Include="numbertest_doubleconversion.cpp">
- <Filter>formatting</Filter>
- </ClCompile>
<ClCompile Include="numbertest_modifiers.cpp">
<Filter>formatting</Filter>
</ClCompile>
@@ -283,9 +277,27 @@
<ClCompile Include="numbertest_stringbuilder.cpp">
<Filter>formatting</Filter>
</ClCompile>
+ <ClCompile Include="numbertest_stringsegment.cpp">
+ <Filter>formatting</Filter>
+ </ClCompile>
+ <ClCompile Include="numbertest_parse.cpp">
+ <Filter>formatting</Filter>
+ </ClCompile>
+ <ClCompile Include="numbertest_doubleconversion.cpp">
+ <Filter>formatting</Filter>
+ </ClCompile>
+ <ClCompile Include="numbertest_skeletons.cpp">
+ <Filter>formatting</Filter>
+ </ClCompile>
+ <ClCompile Include="numbertest_range.cpp">
+ <Filter>formatting</Filter>
+ </ClCompile>
<ClCompile Include="numfmtst.cpp">
<Filter>formatting</Filter>
</ClCompile>
+ <ClCompile Include="numfmtdatadriventest.cpp">
+ <Filter>formatting</Filter>
+ </ClCompile>
<ClCompile Include="numrgts.cpp">
<Filter>formatting</Filter>
</ClCompile>
@@ -319,6 +331,9 @@
<ClCompile Include="simpleformattertest.cpp">
<Filter>formatting</Filter>
</ClCompile>
+ <ClCompile Include="static_unisets_test.cpp">
+ <Filter>formatting</Filter>
+ </ClCompile>
<ClCompile Include="tchcfmt.cpp">
<Filter>formatting</Filter>
</ClCompile>
@@ -520,6 +535,9 @@
<ClCompile Include="ucharstrietest.cpp">
<Filter>data &amp; memory</Filter>
</ClCompile>
+ <ClCompile Include="erarulestest.cpp">
+ <Filter>formatting</Filter>
+ </ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="itrbbi.h">
@@ -903,5 +921,8 @@
<ClInclude Include="listformattertest.h">
<Filter>formatting</Filter>
</ClInclude>
+ <ClInclude Include="erarulestest.h">
+ <Filter>formatting</Filter>
+ </ClInclude>
</ItemGroup>
-</Project>
+</Project> \ No newline at end of file
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/itformat.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/itformat.cpp
index 049e6489174..d450922eb6e 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/itformat.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/itformat.cpp
@@ -59,22 +59,8 @@
#include "dcfmtest.h" // DecimalFormatTest
#include "listformattertest.h" // ListFormatterTest
#include "regiontst.h" // RegionTest
-
-// NumberFormatter is disabled on some platforms due to C++11 compatibility
-#if !UPRV_INCOMPLETE_CPP11_SUPPORT
-# include "numbertest.h" // All NumberFormatter tests
-#else
-class NumberTest : public IntlTest {
- public:
- void runIndexedTest(int32_t index, UBool exec, const char*& name, char*) {
- if (index > 0) { name = ""; return; } // base case
- name = "NumberTest";
- if (exec) {
- infoln(u" NOTE: NumberTest is disabled on this platform; see ICU ticket #13393.");
- }
- }
-};
-#endif
+#include "numbertest.h" // NumberTest
+#include "erarulestest.h" // EraRulesTest
extern IntlTest *createCompactDecimalFormatTest();
extern IntlTest *createGenderInfoTest();
@@ -85,7 +71,6 @@ extern IntlTest *createTimeUnitTest();
extern IntlTest *createMeasureFormatTest();
extern IntlTest *createNumberFormatSpecificationTest();
extern IntlTest *createScientificNumberFormatterTest();
-extern IntlTest *createNumberFormat2Test();
#define TESTCLASS(id, TestClass) \
@@ -229,16 +214,9 @@ void IntlTestFormat::runIndexedTest( int32_t index, UBool exec, const char* &nam
callTest(*test, par);
}
break;
- case 50:
- name = "NumberFormat2Test";
- if (exec) {
- logln("NumberFormat2Test test---");
- logln((UnicodeString)"");
- LocalPointer<IntlTest> test(createNumberFormat2Test());
- callTest(*test, par);
- }
- break;
+ TESTCLASS(50,NumberFormatDataDrivenTest);
TESTCLASS(51,NumberTest);
+ TESTCLASS(52,EraRulesTest);
default: name = ""; break; //needed to end loop
}
if (exec) {
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/itrbnf.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/itrbnf.cpp
index e6e90780145..549f24ca059 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/itrbnf.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/itrbnf.cpp
@@ -76,6 +76,7 @@ void IntlTestRBNF::runIndexedTest(int32_t index, UBool exec, const char* &name,
TESTCASE(24, TestLargeNumbers);
TESTCASE(25, TestCompactDecimalFormatStyle);
TESTCASE(26, TestParseFailure);
+ TESTCASE(27, TestMinMaxIntegerDigitsIgnored);
#else
TESTCASE(0, TestRBNFDisabled);
#endif
@@ -2290,16 +2291,35 @@ void IntlTestRBNF::TestParseFailure() {
static const UChar* testData[] = {
u"・・・・・・・・・・・・・・・・・・・・・・・・"
};
- for (int i = 0; i < UPRV_LENGTHOF(testData); ++i) {
- UnicodeString spelledNumberString(testData[i]);
- Formattable actualNumber;
- rbnf.parse(spelledNumberString, actualNumber, status);
- if (status != U_INVALID_FORMAT_ERROR) { // I would have expected U_PARSE_ERROR, but NumberFormat::parse gives U_INVALID_FORMAT_ERROR
- errln("FAIL: string should be unparseable index=%d %s", i, u_errorName(status));
+ if (assertSuccess("", status, true, __FILE__, __LINE__)) {
+ for (int i = 0; i < UPRV_LENGTHOF(testData); ++i) {
+ UnicodeString spelledNumberString(testData[i]);
+ Formattable actualNumber;
+ rbnf.parse(spelledNumberString, actualNumber, status);
+ if (status != U_INVALID_FORMAT_ERROR) { // I would have expected U_PARSE_ERROR, but NumberFormat::parse gives U_INVALID_FORMAT_ERROR
+ errln("FAIL: string should be unparseable index=%d %s", i, u_errorName(status));
+ }
}
}
}
+void IntlTestRBNF::TestMinMaxIntegerDigitsIgnored() {
+ IcuTestErrorCode status(*this, "TestMinMaxIntegerDigitsIgnored");
+
+ // NOTE: SimpleDateFormat has an optimization that depends on the fact that min/max integer digits
+ // do not affect RBNF (see SimpleDateFormat#zeroPaddingNumber).
+ RuleBasedNumberFormat rbnf(URBNF_SPELLOUT, "en", status);
+ if (status.isSuccess()) {
+ rbnf.setMinimumIntegerDigits(2);
+ rbnf.setMaximumIntegerDigits(3);
+ UnicodeString result;
+ rbnf.format(3, result.remove(), status);
+ assertEquals("Min integer digits are ignored", u"three", result);
+ rbnf.format(1012, result.remove(), status);
+ assertEquals("Max integer digits are ignored", u"one thousand twelve", result);
+ }
+}
+
void
IntlTestRBNF::doTest(RuleBasedNumberFormat* formatter, const char* const testData[][2], UBool testParsing)
{
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/itrbnf.h b/Build/source/libs/icu/icu-src/source/test/intltest/itrbnf.h
index e58d321362c..c82b50d86fe 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/itrbnf.h
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/itrbnf.h
@@ -148,6 +148,7 @@ class IntlTestRBNF : public IntlTest {
void TestLargeNumbers();
void TestCompactDecimalFormatStyle();
void TestParseFailure();
+ void TestMinMaxIntegerDigitsIgnored();
protected:
virtual void doTest(RuleBasedNumberFormat* formatter, const char* const testData[][2], UBool testParsing);
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/itspoof.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/itspoof.cpp
index ac7a14cbfed..4a441ddce1c 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/itspoof.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/itspoof.cpp
@@ -90,6 +90,9 @@ void IntlTestSpoof::runIndexedTest( int32_t index, UBool exec, const char* &name
TESTCASE_AUTO(testBug12153);
TESTCASE_AUTO(testBug12825);
TESTCASE_AUTO(testBug12815);
+ TESTCASE_AUTO(testBug13314_MixedNumbers);
+ TESTCASE_AUTO(testBug13328_MixedCombiningMarks);
+ TESTCASE_AUTO(testCombiningDot);
TESTCASE_AUTO_END;
}
@@ -645,7 +648,7 @@ void IntlTestSpoof::testMixedNumbers() {
void IntlTestSpoof::testBug12153() {
UErrorCode status = U_ZERO_ERROR;
LocalUSpoofCheckerPointer sc(uspoof_open(&status));
- TEST_ASSERT_SUCCESS(status);
+ if (!assertSuccess("", status, true, __FILE__, __LINE__)) { return; }
int32_t checks = uspoof_getChecks(sc.getAlias(), &status);
TEST_ASSERT((checks & USPOOF_RESTRICTION_LEVEL) != 0);
checks &= ~USPOOF_RESTRICTION_LEVEL;
@@ -682,4 +685,71 @@ void IntlTestSpoof::testBug12815() {
TEST_ASSERT_SUCCESS(status);
}
+void IntlTestSpoof::testBug13314_MixedNumbers() {
+ UErrorCode status = U_ZERO_ERROR;
+ LocalUSpoofCheckerPointer sc(uspoof_open(&status));
+ if (!assertSuccess("", status, true, __FILE__, __LINE__)) { return; }
+ uspoof_setChecks(sc.getAlias(), USPOOF_ALL_CHECKS, &status);
+ TEST_ASSERT_SUCCESS(status);
+ int32_t failedChecks = uspoof_areConfusableUnicodeString(sc.getAlias(), u"列", u"列", &status);
+ TEST_ASSERT_SUCCESS(status);
+ assertEquals("The CJK strings should be confusable", USPOOF_SINGLE_SCRIPT_CONFUSABLE, failedChecks);
+ failedChecks = uspoof_check2UnicodeString(sc.getAlias(), u"3Ȝ", nullptr, &status);
+ TEST_ASSERT_SUCCESS(status);
+ assertEquals("The '33' string does not fail spoof", 0, failedChecks);
+}
+
+void IntlTestSpoof::testBug13328_MixedCombiningMarks() {
+ UErrorCode status = U_ZERO_ERROR;
+ LocalUSpoofCheckerPointer sc(uspoof_open(&status));
+ if (!assertSuccess("", status, true, __FILE__, __LINE__)) { return; }
+ int32_t failedChecks = uspoof_check2UnicodeString(sc.getAlias(), u"\u0061\u0F84", nullptr, &status);
+ TEST_ASSERT_SUCCESS(status);
+ assertEquals(
+ "The mismatched combining marks string fails spoof",
+ USPOOF_RESTRICTION_LEVEL,
+ failedChecks);
+}
+
+void IntlTestSpoof::testCombiningDot() {
+ UErrorCode status = U_ZERO_ERROR;
+ LocalUSpoofCheckerPointer sc(uspoof_open(&status));
+ if (!assertSuccess("", status, true, __FILE__, __LINE__)) { return; }
+ uspoof_setChecks(sc.getAlias(), USPOOF_HIDDEN_OVERLAY, &status);
+ TEST_ASSERT_SUCCESS(status);
+
+ static const struct TestCase {
+ bool shouldFail;
+ const char16_t* input;
+ } cases[] = {
+ {false, u"i"},
+ {false, u"j"},
+ {false, u"l"},
+ {true, u"i\u0307"},
+ {true, u"j\u0307"},
+ {true, u"l\u0307"},
+ {true, u"ı\u0307"},
+ {true, u"ȷ\u0307"},
+ {true, u"𝚤\u0307"},
+ {true, u"𝑗\u0307"},
+ {false, u"m\u0307"},
+ {true, u"1\u0307"},
+ {true, u"ij\u0307"},
+ {true, u"i\u0307\u0307"},
+ {true, u"abci\u0307def"},
+ {false, u"i\u0301\u0307"}, // U+0301 has combining class ABOVE (230)
+ {true, u"i\u0320\u0307"}, // U+0320 has combining class BELOW
+ {true, u"i\u0320\u0321\u0307"}, // U+0321 also has combining class BELOW
+ {false, u"i\u0320\u0301\u0307"},
+ {false, u"iz\u0307"},
+ };
+
+ for (auto& cas : cases) {
+ int32_t failedChecks = uspoof_check2(sc.getAlias(), cas.input, -1, nullptr, &status);
+ TEST_ASSERT_SUCCESS(status);
+ int32_t expected = cas.shouldFail ? USPOOF_HIDDEN_OVERLAY : 0;
+ assertEquals(cas.input, expected, failedChecks);
+ }
+}
+
#endif /* !UCONFIG_NO_REGULAR_EXPRESSIONS && !UCONFIG_NO_NORMALIZATION && !UCONFIG_NO_FILE_IO */
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/itspoof.h b/Build/source/libs/icu/icu-src/source/test/intltest/itspoof.h
index 614e4735e76..47cda32cf38 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/itspoof.h
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/itspoof.h
@@ -50,6 +50,12 @@ public:
void testBug12815();
+ void testBug13314_MixedNumbers();
+
+ void testBug13328_MixedCombiningMarks();
+
+ void testCombiningDot();
+
// Internal function to run a single skeleton test case.
void checkSkeleton(const USpoofChecker *sc, uint32_t flags,
const char *input, const char *expected, int32_t lineNum);
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/itutil.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/itutil.cpp
index 5508175ece8..4d3466120cf 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/itutil.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/itutil.cpp
@@ -39,7 +39,10 @@ static IntlTest *createEnumSetTest();
extern IntlTest *createSimpleFormatterTest();
extern IntlTest *createUnifiedCacheTest();
extern IntlTest *createQuantityFormatterTest();
-extern IntlTest *createPluralMapTest();
+extern IntlTest *createPluralMapTest();
+#if !UCONFIG_NO_FORMATTING
+extern IntlTest *createStaticUnicodeSetsTest();
+#endif
#define CASE(id, test) case id: \
@@ -135,6 +138,16 @@ void IntlTestUtilities::runIndexedTest( int32_t index, UBool exec, const char* &
callTest(*test, par);
}
break;
+ case 24:
+ name = "StaticUnicodeSetsTest";
+#if !UCONFIG_NO_FORMATTING
+ if (exec) {
+ logln("TestSuite StaticUnicodeSetsTest---"); logln();
+ LocalPointer<IntlTest> test(createStaticUnicodeSetsTest());
+ callTest(*test, par);
+ }
+#endif
+ break;
default: name = ""; break; //needed to end loop
}
}
@@ -144,6 +157,7 @@ void ErrorCodeTest::runIndexedTest(int32_t index, UBool exec, const char* &name,
switch (index) {
case 0: name = "TestErrorCode"; if (exec) TestErrorCode(); break;
case 1: name = "TestSubclass"; if (exec) TestSubclass(); break;
+ case 2: name = "TestIcuTestErrorCode"; if (exec) TestIcuTestErrorCode(); break;
default: name = ""; break; //needed to end loop
}
}
@@ -255,6 +269,114 @@ void ErrorCodeTest::TestSubclass() {
}
}
+class IcuTestErrorCodeTestHelper : public IntlTest {
+ public:
+ void errln( const UnicodeString &message ) U_OVERRIDE {
+ test->assertFalse("Already saw an error", seenError);
+ seenError = TRUE;
+ test->assertEquals("Message for Error", expectedErrln, message);
+ if (expectedDataErr) {
+ test->errln("Got non-data error, but expected data error");
+ }
+ }
+
+ void dataerrln( const UnicodeString &message ) U_OVERRIDE {
+ test->assertFalse("Already saw an error", seenError);
+ seenError = TRUE;
+ test->assertEquals("Message for Error", expectedErrln, message);
+ if (!expectedDataErr) {
+ test->errln("Got data error, but expected non-data error");
+ }
+ }
+
+ IntlTest* test;
+ UBool expectedDataErr;
+ UnicodeString expectedErrln;
+ UBool seenError;
+};
+
+void ErrorCodeTest::TestIcuTestErrorCode() {
+ IcuTestErrorCodeTestHelper helper;
+ helper.test = this;
+
+ // Test destructor message
+ helper.expectedErrln = u"AAA destructor: expected success but got error: U_ILLEGAL_PAD_POSITION";
+ helper.expectedDataErr = FALSE;
+ helper.seenError = FALSE;
+ {
+ IcuTestErrorCode testStatus(helper, "AAA");
+ testStatus.set(U_ILLEGAL_PAD_POSITION);
+ }
+ assertTrue("Should have seen an error", helper.seenError);
+
+ // Test destructor message with scope
+ helper.expectedErrln = u"BBB destructor: expected success but got error: U_ILLEGAL_PAD_POSITION scope: foo";
+ helper.expectedDataErr = FALSE;
+ helper.seenError = FALSE;
+ {
+ IcuTestErrorCode testStatus(helper, "BBB");
+ testStatus.setScope("foo");
+ testStatus.set(U_ILLEGAL_PAD_POSITION);
+ }
+ assertTrue("Should have seen an error", helper.seenError);
+
+ // Check errIfFailure message with scope
+ helper.expectedErrln = u"CCC expected success but got error: U_ILLEGAL_PAD_POSITION scope: foo";
+ helper.expectedDataErr = FALSE;
+ helper.seenError = FALSE;
+ {
+ IcuTestErrorCode testStatus(helper, "CCC");
+ testStatus.setScope("foo");
+ testStatus.set(U_ILLEGAL_PAD_POSITION);
+ testStatus.errIfFailureAndReset();
+ assertTrue("Should have seen an error", helper.seenError);
+ helper.seenError = FALSE;
+ helper.expectedErrln = u"CCC expected success but got error: U_ILLEGAL_CHAR_FOUND scope: foo - 5.4300";
+ testStatus.set(U_ILLEGAL_CHAR_FOUND);
+ testStatus.errIfFailureAndReset("%6.4f", 5.43);
+ assertTrue("Should have seen an error", helper.seenError);
+ }
+
+ // Check errDataIfFailure message without scope
+ helper.expectedErrln = u"DDD data: expected success but got error: U_ILLEGAL_PAD_POSITION";
+ helper.expectedDataErr = TRUE;
+ helper.seenError = FALSE;
+ {
+ IcuTestErrorCode testStatus(helper, "DDD");
+ testStatus.set(U_ILLEGAL_PAD_POSITION);
+ testStatus.errDataIfFailureAndReset();
+ assertTrue("Should have seen an error", helper.seenError);
+ helper.seenError = FALSE;
+ helper.expectedErrln = u"DDD data: expected success but got error: U_ILLEGAL_CHAR_FOUND - 5.4300";
+ testStatus.set(U_ILLEGAL_CHAR_FOUND);
+ testStatus.errDataIfFailureAndReset("%6.4f", 5.43);
+ assertTrue("Should have seen an error", helper.seenError);
+ }
+
+ // Check expectFailure
+ helper.expectedErrln = u"EEE expected: U_ILLEGAL_CHAR_FOUND but got error: U_ILLEGAL_PAD_POSITION";
+ helper.expectedDataErr = FALSE;
+ helper.seenError = FALSE;
+ {
+ IcuTestErrorCode testStatus(helper, "EEE");
+ testStatus.set(U_ILLEGAL_PAD_POSITION);
+ testStatus.expectErrorAndReset(U_ILLEGAL_PAD_POSITION);
+ assertFalse("Should NOT have seen an error", helper.seenError);
+ testStatus.set(U_ILLEGAL_PAD_POSITION);
+ testStatus.expectErrorAndReset(U_ILLEGAL_CHAR_FOUND);
+ assertTrue("Should have seen an error", helper.seenError);
+ helper.seenError = FALSE;
+ helper.expectedErrln = u"EEE expected: U_ILLEGAL_CHAR_FOUND but got error: U_ZERO_ERROR scope: scopety scope - 5.4300";
+ testStatus.setScope("scopety scope");
+ testStatus.set(U_ILLEGAL_PAD_POSITION);
+ testStatus.expectErrorAndReset(U_ILLEGAL_PAD_POSITION, "%6.4f", 5.43);
+ assertFalse("Should NOT have seen an error", helper.seenError);
+ testStatus.expectErrorAndReset(U_ILLEGAL_CHAR_FOUND, "%6.4f", 5.43);
+ assertTrue("Should have seen an error", helper.seenError);
+ }
+}
+
+
class LocalPointerTest : public IntlTest {
public:
LocalPointerTest() {}
@@ -502,7 +624,7 @@ void LocalPointerTest::TestLocalXyzPointer() {
static const char *const encoding="ISO-8859-1";
LocalUConverterSelectorPointer sel(
ucnvsel_open(&encoding, 1, NULL, UCNV_ROUNDTRIP_SET, errorCode));
- if(errorCode.logIfFailureAndReset("ucnvsel_open()")) {
+ if(errorCode.errIfFailureAndReset("ucnvsel_open()")) {
return;
}
if(sel.isNull()) {
@@ -512,7 +634,7 @@ void LocalPointerTest::TestLocalXyzPointer() {
#if !UCONFIG_NO_FORMATTING
LocalUCalendarPointer cal(ucal_open(NULL, 0, "root", UCAL_GREGORIAN, errorCode));
- if(errorCode.logDataIfFailureAndReset("ucal_open()")) {
+ if(errorCode.errDataIfFailureAndReset("ucal_open()")) {
return;
}
if(cal.isNull()) {
@@ -521,7 +643,7 @@ void LocalPointerTest::TestLocalXyzPointer() {
}
LocalUDateTimePatternGeneratorPointer patgen(udatpg_open("root", errorCode));
- if(errorCode.logDataIfFailureAndReset("udatpg_open()")) {
+ if(errorCode.errDataIfFailureAndReset("udatpg_open()")) {
return;
}
if(patgen.isNull()) {
@@ -530,7 +652,7 @@ void LocalPointerTest::TestLocalXyzPointer() {
}
LocalULocaleDisplayNamesPointer ldn(uldn_open("de-CH", ULDN_STANDARD_NAMES, errorCode));
- if(errorCode.logIfFailureAndReset("uldn_open()")) {
+ if(errorCode.errIfFailureAndReset("uldn_open()")) {
return;
}
if(ldn.isNull()) {
@@ -541,7 +663,7 @@ void LocalPointerTest::TestLocalXyzPointer() {
UnicodeString hello=UNICODE_STRING_SIMPLE("Hello {0}!");
LocalUMessageFormatPointer msg(
umsg_open(hello.getBuffer(), hello.length(), "root", NULL, errorCode));
- if(errorCode.logIfFailureAndReset("umsg_open()")) {
+ if(errorCode.errIfFailureAndReset("umsg_open()")) {
return;
}
if(msg.isNull()) {
@@ -554,7 +676,7 @@ void LocalPointerTest::TestLocalXyzPointer() {
const UNormalizer2 *nfc=unorm2_getNFCInstance(errorCode);
UnicodeSet emptySet;
LocalUNormalizer2Pointer fn2(unorm2_openFiltered(nfc, emptySet.toUSet(), errorCode));
- if(errorCode.logIfFailureAndReset("unorm2_openFiltered()")) {
+ if(errorCode.errIfFailureAndReset("unorm2_openFiltered()")) {
return;
}
if(fn2.isNull()) {
@@ -565,7 +687,7 @@ void LocalPointerTest::TestLocalXyzPointer() {
#if !UCONFIG_NO_IDNA
LocalUIDNAPointer idna(uidna_openUTS46(0, errorCode));
- if(errorCode.logIfFailureAndReset("uidna_openUTS46()")) {
+ if(errorCode.errIfFailureAndReset("uidna_openUTS46()")) {
return;
}
if(idna.isNull()) {
@@ -578,7 +700,7 @@ void LocalPointerTest::TestLocalXyzPointer() {
UnicodeString pattern=UNICODE_STRING_SIMPLE("abc|xy+z");
LocalURegularExpressionPointer regex(
uregex_open(pattern.getBuffer(), pattern.length(), 0, NULL, errorCode));
- if(errorCode.logIfFailureAndReset("uregex_open()")) {
+ if(errorCode.errIfFailureAndReset("uregex_open()")) {
return;
}
if(regex.isNull()) {
@@ -591,7 +713,7 @@ void LocalPointerTest::TestLocalXyzPointer() {
UnicodeString id=UNICODE_STRING_SIMPLE("Grek-Latn");
LocalUTransliteratorPointer trans(
utrans_openU(id.getBuffer(), id.length(), UTRANS_FORWARD, NULL, 0, NULL, errorCode));
- if(errorCode.logIfFailureAndReset("utrans_open()")) {
+ if(errorCode.errIfFailureAndReset("utrans_open()")) {
return;
}
if(trans.isNull()) {
@@ -608,7 +730,7 @@ void LocalPointerTest::TestLocalXyzPointerMoveSwap() {
IcuTestErrorCode errorCode(*this, "TestLocalXyzPointerMoveSwap");
const UNormalizer2 *nfc=unorm2_getNFCInstance(errorCode);
const UNormalizer2 *nfd=unorm2_getNFDInstance(errorCode);
- if(errorCode.logIfFailureAndReset("unorm2_getNF[CD]Instance()")) {
+ if(errorCode.errIfFailureAndReset("unorm2_getNF[CD]Instance()")) {
return;
}
UnicodeSet emptySet;
@@ -616,7 +738,7 @@ void LocalPointerTest::TestLocalXyzPointerMoveSwap() {
UNormalizer2 *p2 = unorm2_openFiltered(nfd, emptySet.toUSet(), errorCode);
LocalUNormalizer2Pointer f1(p1);
LocalUNormalizer2Pointer f2(p2);
- if(errorCode.logIfFailureAndReset("unorm2_openFiltered()")) {
+ if(errorCode.errIfFailureAndReset("unorm2_openFiltered()")) {
return;
}
if(f1.isNull() || f2.isNull()) {
@@ -668,7 +790,7 @@ void LocalPointerTest::TestLocalXyzPointerNull() {
IcuTestErrorCode errorCode(*this, "TestLocalXyzPointerNull/LocalUCalendarPointer");
LocalUCalendarPointer null;
LocalUCalendarPointer cal(ucal_open(NULL, 0, "root", UCAL_GREGORIAN, errorCode));
- if(!errorCode.logDataIfFailureAndReset("ucal_open()")) {
+ if(!errorCode.errDataIfFailureAndReset("ucal_open()")) {
cal.adoptInstead(NULL);
}
}
@@ -695,7 +817,7 @@ void LocalPointerTest::TestLocalXyzPointerNull() {
LocalURegularExpressionPointer null;
LocalURegularExpressionPointer regex(
uregex_open(pattern.getBuffer(), pattern.length(), 0, NULL, errorCode));
- if(!errorCode.logDataIfFailureAndReset("urege_open()")) {
+ if(!errorCode.errDataIfFailureAndReset("urege_open()")) {
regex.adoptInstead(NULL);
}
}
@@ -708,7 +830,7 @@ void LocalPointerTest::TestLocalXyzPointerNull() {
LocalUTransliteratorPointer null;
LocalUTransliteratorPointer trans(
utrans_openU(id.getBuffer(), id.length(), UTRANS_FORWARD, NULL, 0, NULL, errorCode));
- if(!errorCode.logDataIfFailureAndReset("utrans_openU()")) {
+ if(!errorCode.errDataIfFailureAndReset("utrans_openU()")) {
trans.adoptInstead(NULL);
}
}
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/itutil.h b/Build/source/libs/icu/icu-src/source/test/intltest/itutil.h
index bbda10da834..3f3e851a89c 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/itutil.h
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/itutil.h
@@ -25,6 +25,7 @@ public:
void runIndexedTest(int32_t index, UBool exec, const char* &name, char* par = NULL);
void TestErrorCode();
void TestSubclass();
+ void TestIcuTestErrorCode();
};
#endif
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/listformattertest.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/listformattertest.cpp
index af49baa05dd..4cd1c1411c6 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/listformattertest.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/listformattertest.cpp
@@ -17,8 +17,63 @@
*/
#include "listformattertest.h"
+#include "unicode/ulistformatter.h"
#include <string.h>
+#if !UCONFIG_NO_FORMATTING
+
+namespace {
+const char* attrString(int32_t attrId) {
+ switch (attrId) {
+ case ULISTFMT_LITERAL_FIELD: return "literal";
+ case ULISTFMT_ELEMENT_FIELD: return "element";
+ default: return "xxx";
+ }
+}
+} // namespace
+
+void ListFormatterTest::ExpectPositions(FieldPositionIterator& iter,
+ int32_t *values, int32_t tupleCount) {
+ UBool found[10];
+ FieldPosition fp;
+ if (tupleCount > 10) {
+ assertTrue("internal error, tupleCount too large", FALSE);
+ } else {
+ for (int i = 0; i < tupleCount; ++i) {
+ found[i] = FALSE;
+ }
+ }
+ while (iter.next(fp)) {
+ UBool ok = FALSE;
+ int32_t id = fp.getField();
+ int32_t start = fp.getBeginIndex();
+ int32_t limit = fp.getEndIndex();
+ char buf[128];
+ sprintf(buf, "%24s %3d %3d %3d", attrString(id), id, start, limit);
+ logln(buf);
+ for (int i = 0; i < tupleCount; ++i) {
+ if (found[i]) {
+ continue;
+ }
+ if (values[i*3] == id && values[i*3+1] == start && values[i*3+2] == limit) {
+ found[i] = ok = TRUE;
+ break;
+ }
+ }
+ assertTrue((UnicodeString)"found [" + attrString(id) + "," + start + "," + limit + "]", ok);
+ }
+ // check that all were found
+ UBool ok = TRUE;
+ for (int i = 0; i < tupleCount; ++i) {
+ if (!found[i]) {
+ ok = FALSE;
+ assertTrue((UnicodeString) "missing [" + attrString(values[i*3]) + "," + values[i*3+1] +
+ "," + values[i*3+2] + "]", found[i]);
+ }
+ }
+ assertTrue("no expected values were missing", ok);
+}
+
ListFormatterTest::ListFormatterTest() :
prefix("Prefix: ", -1, US_INV),
one("Alice", -1, US_INV), two("Bob", -1, US_INV),
@@ -26,9 +81,9 @@ ListFormatterTest::ListFormatterTest() :
}
void ListFormatterTest::CheckFormatting(const ListFormatter* formatter, UnicodeString data[], int32_t dataSize,
- const UnicodeString& expected_result) {
+ const UnicodeString& expected_result, const char* testName) {
UnicodeString actualResult(prefix);
- UErrorCode errorCode = U_ZERO_ERROR;
+ IcuTestErrorCode errorCode(*this, testName);
formatter->format(data, dataSize, actualResult, errorCode);
UnicodeString expectedStringWithPrefix = prefix + expected_result;
if (expectedStringWithPrefix != actualResult) {
@@ -37,29 +92,29 @@ void ListFormatterTest::CheckFormatting(const ListFormatter* formatter, UnicodeS
}
void ListFormatterTest::CheckFourCases(const char* locale_string, UnicodeString one, UnicodeString two,
- UnicodeString three, UnicodeString four, UnicodeString results[4]) {
- UErrorCode errorCode = U_ZERO_ERROR;
+ UnicodeString three, UnicodeString four, UnicodeString results[4], const char* testName) {
+ IcuTestErrorCode errorCode(*this, testName);
LocalPointer<ListFormatter> formatter(ListFormatter::createInstance(Locale(locale_string), errorCode));
if (U_FAILURE(errorCode)) {
dataerrln("ListFormatter::createInstance(Locale(\"%s\"), errorCode) failed in CheckFourCases: %s", locale_string, u_errorName(errorCode));
return;
}
UnicodeString input1[] = {one};
- CheckFormatting(formatter.getAlias(), input1, 1, results[0]);
+ CheckFormatting(formatter.getAlias(), input1, 1, results[0], testName);
UnicodeString input2[] = {one, two};
- CheckFormatting(formatter.getAlias(), input2, 2, results[1]);
+ CheckFormatting(formatter.getAlias(), input2, 2, results[1], testName);
UnicodeString input3[] = {one, two, three};
- CheckFormatting(formatter.getAlias(), input3, 3, results[2]);
+ CheckFormatting(formatter.getAlias(), input3, 3, results[2], testName);
UnicodeString input4[] = {one, two, three, four};
- CheckFormatting(formatter.getAlias(), input4, 4, results[3]);
+ CheckFormatting(formatter.getAlias(), input4, 4, results[3], testName);
}
UBool ListFormatterTest::RecordFourCases(const Locale& locale, UnicodeString one, UnicodeString two,
- UnicodeString three, UnicodeString four, UnicodeString results[4]) {
- UErrorCode errorCode = U_ZERO_ERROR;
+ UnicodeString three, UnicodeString four, UnicodeString results[4], const char* testName) {
+ IcuTestErrorCode errorCode(*this, testName);
LocalPointer<ListFormatter> formatter(ListFormatter::createInstance(locale, errorCode));
if (U_FAILURE(errorCode)) {
dataerrln("ListFormatter::createInstance(\"%s\", errorCode) failed in RecordFourCases: %s", locale.getName(), u_errorName(errorCode));
@@ -88,14 +143,14 @@ void ListFormatterTest::TestRoot() {
one + ", " + two + ", " + three + ", " + four
};
- CheckFourCases("", one, two, three, four, results);
+ CheckFourCases("", one, two, three, four, results, "TestRoot()");
}
// Bogus locale should fallback to root.
void ListFormatterTest::TestBogus() {
UnicodeString results[4];
- if (RecordFourCases(Locale::getDefault(), one, two, three, four, results)) {
- CheckFourCases("ex_PY", one, two, three, four, results);
+ if (RecordFourCases(Locale::getDefault(), one, two, three, four, results, "TestBogus()")) {
+ CheckFourCases("ex_PY", one, two, three, four, results, "TestBogus()");
}
}
@@ -109,11 +164,11 @@ void ListFormatterTest::TestEnglish() {
one + ", " + two + ", " + three + ", and " + four
};
- CheckFourCases("en", one, two, three, four, results);
+ CheckFourCases("en", one, two, three, four, results, "TestEnglish()");
}
void ListFormatterTest::Test9946() {
- UErrorCode errorCode = U_ZERO_ERROR;
+ IcuTestErrorCode errorCode(*this, "Test9946()");
LocalPointer<ListFormatter> formatter(ListFormatter::createInstance(Locale("en"), errorCode));
if (U_FAILURE(errorCode)) {
dataerrln(
@@ -144,7 +199,7 @@ void ListFormatterTest::TestEnglishUS() {
one + ", " + two + ", " + three + ", and " + four
};
- CheckFourCases("en_US", one, two, three, four, results);
+ CheckFourCases("en_US", one, two, three, four, results, "TestEnglishUS()");
}
// Tests resource loading and inheritance when region sublocale
@@ -158,7 +213,231 @@ void ListFormatterTest::TestEnglishGB() {
one + ", " + two + ", " + three + " and " + four
};
- CheckFourCases("en_GB", one, two, three, four, results);
+ CheckFourCases("en_GB", one, two, three, four, results, "TestEnglishGB()");
+}
+
+void ListFormatterTest::TestFieldPositionIteratorWontCrash() {
+ IcuTestErrorCode errorCode(*this, "TestFieldPositionIteratorWontCrash()");
+ LocalPointer<ListFormatter> formatter(
+ ListFormatter::createInstance(Locale("en"), errorCode));
+ if (U_FAILURE(errorCode)) {
+ dataerrln(
+ "ListFormatter::createInstance(Locale(\"en\"), errorCode) failed in "
+ "TestFieldPositionIteratorWontCrash: %s",
+ u_errorName(errorCode));
+ return;
+ }
+ UnicodeString data[3] = {"a", "bbb", "cc"};
+ UnicodeString actualResult;
+ // make sure NULL as FieldPositionIterator won't caused crash.
+ formatter->format(data, 3, actualResult, nullptr, errorCode);
+ if (U_FAILURE(errorCode)) {
+ dataerrln(
+ "ListFormatter::format(data, 3, nullptr, errorCode) "
+ "failed in TestFieldPositionIteratorWontCrash: %s",
+ u_errorName(errorCode));
+ return;
+ }
+}
+
+void ListFormatterTest::RunTestFieldPositionIteratorWithFormatter(
+ ListFormatter* formatter,
+ UnicodeString data[], int32_t n, int32_t expected[], int32_t tupleCount,
+ UnicodeString& appendTo, const char16_t *expectedFormatted,
+ const char* testName) {
+ IcuTestErrorCode errorCode(*this, testName);
+ FieldPositionIterator iter;
+ formatter->format(data, n, appendTo, &iter, errorCode);
+ if (U_FAILURE(errorCode)) {
+ dataerrln(
+ "ListFormatter::format(data, %d, &iter, errorCode) "
+ "failed in %s: %s", n, testName, u_errorName(errorCode));
+ return;
+ }
+ if (appendTo != expectedFormatted) {
+ errln(UnicodeString("Expected: |") + expectedFormatted + "|, Actual: |" + appendTo + "|");
+ }
+ ExpectPositions(iter, expected, tupleCount);
+}
+
+void ListFormatterTest::RunTestFieldPositionIteratorWithNItemsPatternShift(
+ UnicodeString data[], int32_t n, int32_t expected[], int32_t tupleCount,
+ UnicodeString& appendTo, const char16_t *expectedFormatted,
+ const char* testName) {
+ IcuTestErrorCode errorCode(*this, testName);
+ LocalPointer<ListFormatter> formatter(
+ ListFormatter::createInstance(Locale("ur", "IN"), "unit-narrow", errorCode));
+ if (U_FAILURE(errorCode)) {
+ dataerrln(
+ "ListFormatter::createInstance(Locale(\"ur\", \"IN\"), \"unit-narrow\", errorCode) failed in "
+ "%s: %s", testName, u_errorName(errorCode));
+ return;
+ }
+ RunTestFieldPositionIteratorWithFormatter(
+ formatter.getAlias(),
+ data, n, expected, tupleCount, appendTo, expectedFormatted, testName);
+}
+
+void ListFormatterTest::RunTestFieldPositionIteratorWithNItems(
+ UnicodeString data[], int32_t n, int32_t expected[], int32_t tupleCount,
+ UnicodeString& appendTo, const char16_t *expectedFormatted,
+ const char* testName) {
+ IcuTestErrorCode errorCode(*this, testName);
+ LocalPointer<ListFormatter> formatter(
+ ListFormatter::createInstance(Locale("en"), errorCode));
+ if (U_FAILURE(errorCode)) {
+ dataerrln(
+ "ListFormatter::createInstance(Locale(\"en\"), errorCode) failed in "
+ "%s: %s", testName, u_errorName(errorCode));
+ return;
+ }
+ RunTestFieldPositionIteratorWithFormatter(
+ formatter.getAlias(),
+ data, n, expected, tupleCount, appendTo, expectedFormatted, testName);
+}
+
+void ListFormatterTest::TestFieldPositionIteratorWith3ItemsAndDataBefore() {
+ // 0 1 2
+ // 0123456789012345678901234567
+ // "Hello World: a, bbb, and cc"
+ UnicodeString data[3] = {"a", "bbb", "cc"};
+ int32_t expected[] = {
+ ULISTFMT_ELEMENT_FIELD, 13, 14,
+ ULISTFMT_LITERAL_FIELD, 14, 16,
+ ULISTFMT_ELEMENT_FIELD, 16, 19,
+ ULISTFMT_LITERAL_FIELD, 19, 25,
+ ULISTFMT_ELEMENT_FIELD, 25, 27
+ };
+ int32_t tupleCount = sizeof(expected)/(3 * sizeof(*expected));
+ UnicodeString appendTo(u"Hello World: ");
+ RunTestFieldPositionIteratorWithNItems(
+ data, 3, expected, tupleCount, appendTo,
+ u"Hello World: a, bbb, and cc",
+ "TestFieldPositionIteratorWith3ItemsAndDataBefore");
+}
+
+void ListFormatterTest::TestFieldPositionIteratorWith3Items() {
+ // 0 1
+ // 012345678901234
+ // "a, bbb, and cc"
+ UnicodeString data[3] = {"a", "bbb", "cc"};
+ int32_t expected[] = {
+ ULISTFMT_ELEMENT_FIELD, 0, 1,
+ ULISTFMT_LITERAL_FIELD, 1, 3,
+ ULISTFMT_ELEMENT_FIELD, 3, 6,
+ ULISTFMT_LITERAL_FIELD, 6, 12,
+ ULISTFMT_ELEMENT_FIELD, 12, 14
+ };
+ int32_t tupleCount = sizeof(expected)/(3 * sizeof(*expected));
+ UnicodeString appendTo;
+ RunTestFieldPositionIteratorWithNItems(
+ data, 3, expected, tupleCount, appendTo,
+ u"a, bbb, and cc",
+ "TestFieldPositionIteratorWith3Items");
+}
+
+void ListFormatterTest::TestFieldPositionIteratorWith3ItemsPatternShift() {
+ // 0 1
+ // 012345678901234
+ // "cc bbb a"
+ UnicodeString data[3] = {"a", "bbb", "cc"};
+ int32_t expected[] = {
+ ULISTFMT_ELEMENT_FIELD, 7, 8,
+ ULISTFMT_LITERAL_FIELD, 6, 7,
+ ULISTFMT_ELEMENT_FIELD, 3, 6,
+ ULISTFMT_LITERAL_FIELD, 2, 3,
+ ULISTFMT_ELEMENT_FIELD, 0, 2
+ };
+ int32_t tupleCount = sizeof(expected)/(3 * sizeof(*expected));
+ UnicodeString appendTo;
+ RunTestFieldPositionIteratorWithNItemsPatternShift(
+ data, 3, expected, tupleCount, appendTo,
+ u"cc bbb a",
+ "TestFieldPositionIteratorWith3ItemsPatternShift");
+}
+
+void ListFormatterTest::TestFieldPositionIteratorWith2ItemsAndDataBefore() {
+ // 0 1
+ // 0123456789012345
+ // "Foo: bbb and cc"
+ UnicodeString data[2] = {"bbb", "cc"};
+ int32_t expected[] = {
+ ULISTFMT_ELEMENT_FIELD, 5, 8,
+ ULISTFMT_LITERAL_FIELD, 8, 13,
+ ULISTFMT_ELEMENT_FIELD, 13, 15
+ };
+ int32_t tupleCount = sizeof(expected)/(3 * sizeof(*expected));
+ UnicodeString appendTo("Foo: ");
+ RunTestFieldPositionIteratorWithNItems(
+ data, 2, expected, tupleCount, appendTo,
+ u"Foo: bbb and cc",
+ "TestFieldPositionIteratorWith2ItemsAndDataBefore");
+}
+
+void ListFormatterTest::TestFieldPositionIteratorWith2Items() {
+ // 0 1
+ // 01234567890
+ // "bbb and cc"
+ UnicodeString data[2] = {"bbb", "cc"};
+ int32_t expected[] = {
+ ULISTFMT_ELEMENT_FIELD, 0, 3,
+ ULISTFMT_LITERAL_FIELD, 3, 8,
+ ULISTFMT_ELEMENT_FIELD, 8, 10
+ };
+ int32_t tupleCount = sizeof(expected)/(3 * sizeof(*expected));
+ UnicodeString appendTo;
+ RunTestFieldPositionIteratorWithNItems(
+ data, 2, expected, tupleCount, appendTo,
+ u"bbb and cc",
+ "TestFieldPositionIteratorWith2Items");
+}
+
+void ListFormatterTest::TestFieldPositionIteratorWith2ItemsPatternShift() {
+ // 0 1
+ // 01234567890
+ // "cc bbb"
+ UnicodeString data[2] = {"bbb", "cc"};
+ int32_t expected[] = {
+ ULISTFMT_ELEMENT_FIELD, 3, 6,
+ ULISTFMT_LITERAL_FIELD, 2, 3,
+ ULISTFMT_ELEMENT_FIELD, 0, 2
+ };
+ int32_t tupleCount = sizeof(expected)/(3 * sizeof(*expected));
+ UnicodeString appendTo;
+ RunTestFieldPositionIteratorWithNItemsPatternShift(
+ data, 2, expected, tupleCount, appendTo,
+ u"cc bbb",
+ "TestFieldPositionIteratorWith2ItemsPatternShift");
+}
+
+void ListFormatterTest::TestFieldPositionIteratorWith1ItemAndDataBefore() {
+ // 012345678
+ // "Hello cc"
+ UnicodeString data[1] = {"cc"};
+ int32_t expected[] = {
+ ULISTFMT_ELEMENT_FIELD, 6, 8
+ };
+ int32_t tupleCount = sizeof(expected)/(3 * sizeof(*expected));
+ UnicodeString appendTo("Hello ");
+ RunTestFieldPositionIteratorWithNItems(
+ data, 1, expected, tupleCount, appendTo,
+ u"Hello cc",
+ "TestFieldPositionIteratorWith1ItemAndDataBefore");
+}
+
+void ListFormatterTest::TestFieldPositionIteratorWith1Item() {
+ // 012
+ // "cc"
+ UnicodeString data[1] = {"cc"};
+ int32_t expected[] = {
+ ULISTFMT_ELEMENT_FIELD, 0, 2
+ };
+ int32_t tupleCount = sizeof(expected)/(3 * sizeof(*expected));
+ UnicodeString appendTo;
+ RunTestFieldPositionIteratorWithNItems(
+ data, 1, expected, tupleCount, appendTo,
+ u"cc",
+ "TestFieldPositionIteratorWith1Item");
}
// Tests resource loading and inheritance when region sublocale
@@ -172,7 +451,7 @@ void ListFormatterTest::TestNynorsk() {
one + ", " + two + ", " + three + " og " + four
};
- CheckFourCases("nn", one, two, three, four, results);
+ CheckFourCases("nn", one, two, three, four, results, "TestNynorsk()");
}
// Tests resource loading and inheritance when region sublocale
@@ -188,7 +467,7 @@ void ListFormatterTest::TestChineseTradHK() {
one + comma_string + two + comma_string + three + and_string + four
};
- CheckFourCases("zh_Hant_HK", one, two, three, four, results);
+ CheckFourCases("zh_Hant_HK", one, two, three, four, results, "TestChineseTradHK()");
}
// Formatting in Russian.
@@ -202,7 +481,7 @@ void ListFormatterTest::TestRussian() {
one + ", " + two + ", " + three + and_string + four
};
- CheckFourCases("ru", one, two, three, four, results);
+ CheckFourCases("ru", one, two, three, four, results, "TestRussian()");
}
// Formatting in Malayalam.
@@ -219,7 +498,7 @@ void ListFormatterTest::TestMalayalam() {
one + ", " + two + ", " + three + ", " + four + total_string
};
- CheckFourCases("ml", one, two, three, four, results);
+ CheckFourCases("ml", one, two, three, four, results, "TestMalayalam()");
}
// Formatting in Zulu.
@@ -232,7 +511,7 @@ void ListFormatterTest::TestZulu() {
one + ", " + two + ", " + three + ", ne-" + four
};
- CheckFourCases("zu", one, two, three, four, results);
+ CheckFourCases("zu", one, two, three, four, results, "TestZulu()");
}
void ListFormatterTest::TestOutOfOrderPatterns() {
@@ -243,22 +522,22 @@ void ListFormatterTest::TestOutOfOrderPatterns() {
four + " in the last after " + three + " after " + two + " after the first " + one
};
- UErrorCode errorCode = U_ZERO_ERROR;
+ IcuTestErrorCode errorCode(*this, "TestOutOfOrderPatterns()");
ListFormatData data("{1} after {0}", "{1} after the first {0}",
"{1} after {0}", "{1} in the last after {0}");
ListFormatter formatter(data, errorCode);
UnicodeString input1[] = {one};
- CheckFormatting(&formatter, input1, 1, results[0]);
+ CheckFormatting(&formatter, input1, 1, results[0], "TestOutOfOrderPatterns()");
UnicodeString input2[] = {one, two};
- CheckFormatting(&formatter, input2, 2, results[1]);
+ CheckFormatting(&formatter, input2, 2, results[1], "TestOutOfOrderPatterns()");
UnicodeString input3[] = {one, two, three};
- CheckFormatting(&formatter, input3, 3, results[2]);
+ CheckFormatting(&formatter, input3, 3, results[2], "TestOutOfOrderPatterns()");
UnicodeString input4[] = {one, two, three, four};
- CheckFormatting(&formatter, input4, 4, results[3]);
+ CheckFormatting(&formatter, input4, 4, results[3], "TestOutOfOrderPatterns()");
}
void ListFormatterTest::runIndexedTest(int32_t index, UBool exec,
@@ -276,7 +555,35 @@ void ListFormatterTest::runIndexedTest(int32_t index, UBool exec,
case 9: name = "TestEnglishGB"; if (exec) TestEnglishGB(); break;
case 10: name = "TestNynorsk"; if (exec) TestNynorsk(); break;
case 11: name = "TestChineseTradHK"; if (exec) TestChineseTradHK(); break;
-
+ case 12: name = "TestFieldPositionIteratorWontCrash";
+ if (exec) TestFieldPositionIteratorWontCrash();
+ break;
+ case 13: name = "TestFieldPositionIteratorWith1Item";
+ if (exec) TestFieldPositionIteratorWith1Item();
+ break;
+ case 14: name = "TestFieldPositionIteratorWith1ItemAndDataBefore";
+ if (exec) TestFieldPositionIteratorWith1ItemAndDataBefore();
+ break;
+ case 15: name = "TestFieldPositionIteratorWith2Items";
+ if (exec) TestFieldPositionIteratorWith2Items();
+ break;
+ case 16: name = "TestFieldPositionIteratorWith2ItemsAndDataBefore";
+ if (exec) TestFieldPositionIteratorWith2ItemsAndDataBefore();
+ break;
+ case 17: name = "TestFieldPositionIteratorWith2ItemsPatternShift";
+ if (exec) TestFieldPositionIteratorWith2ItemsPatternShift();
+ break;
+ case 18: name = "TestFieldPositionIteratorWith3Items";
+ if (exec) TestFieldPositionIteratorWith3Items();
+ break;
+ case 19: name = "TestFieldPositionIteratorWith3ItemsAndDataBefore";
+ if (exec) TestFieldPositionIteratorWith3ItemsAndDataBefore();
+ break;
+ case 20: name = "TestFieldPositionIteratorWith3ItemsPatternShift";
+ if (exec) TestFieldPositionIteratorWith3ItemsPatternShift();
+ break;
default: name = ""; break;
}
}
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/listformattertest.h b/Build/source/libs/icu/icu-src/source/test/intltest/listformattertest.h
index a59a7e01897..61aad7ca614 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/listformattertest.h
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/listformattertest.h
@@ -19,6 +19,7 @@
#ifndef __LISTFORMATTERTEST_H__
#define __LISTFORMATTERTEST_H__
+#include "unicode/fpositer.h"
#include "unicode/listformatter.h"
#include "intltest.h"
@@ -41,23 +42,68 @@ class ListFormatterTest : public IntlTest {
void TestZulu();
void TestOutOfOrderPatterns();
void Test9946();
+ void TestFieldPositionIteratorWontCrash();
+ void TestFieldPositionIteratorWith1Item();
+ void TestFieldPositionIteratorWith2Items();
+ void TestFieldPositionIteratorWith3Items();
+ void TestFieldPositionIteratorWith1ItemAndDataBefore();
+ void TestFieldPositionIteratorWith2ItemsAndDataBefore();
+ void TestFieldPositionIteratorWith3ItemsAndDataBefore();
+ void TestFieldPositionIteratorWith2ItemsPatternShift();
+ void TestFieldPositionIteratorWith3ItemsPatternShift();
private:
- void CheckFormatting(const ListFormatter* formatter, UnicodeString data[], int32_t data_size, const UnicodeString& expected_result);
+ void CheckFormatting(
+ const ListFormatter* formatter,
+ UnicodeString data[],
+ int32_t data_size,
+ const UnicodeString& expected_result,
+ const char* testName);
+ void ExpectPositions(
+ FieldPositionIterator& iter,
+ int32_t *values,
+ int32_t tupleCount);
+ void RunTestFieldPositionIteratorWithNItems(
+ UnicodeString *data,
+ int32_t n,
+ int32_t *values,
+ int32_t tupleCount,
+ UnicodeString& appendTo,
+ const char16_t *expectedFormatted,
+ const char* testName);
+ void RunTestFieldPositionIteratorWithNItemsPatternShift(
+ UnicodeString *data,
+ int32_t n,
+ int32_t *values,
+ int32_t tupleCount,
+ UnicodeString& appendTo,
+ const char16_t *expectedFormatted,
+ const char* testName);
+ void RunTestFieldPositionIteratorWithFormatter(
+ ListFormatter* formatter,
+ UnicodeString *data,
+ int32_t n,
+ int32_t *values,
+ int32_t tupleCount,
+ UnicodeString& appendTo,
+ const char16_t *expectedFormatted,
+ const char* testName);
void CheckFourCases(
const char* locale_string,
UnicodeString one,
UnicodeString two,
UnicodeString three,
UnicodeString four,
- UnicodeString results[4]);
+ UnicodeString results[4],
+ const char* testName);
UBool RecordFourCases(
const Locale& locale,
UnicodeString one,
UnicodeString two,
UnicodeString three,
UnicodeString four,
- UnicodeString results[4]);
+ UnicodeString results[4],
+ const char* testName);
private:
// Reused test data.
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/loctest.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/loctest.cpp
index 4eb5d97c314..c467472767d 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/loctest.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/loctest.cpp
@@ -6,7 +6,12 @@
* others. All Rights Reserved.
********************************************************************/
+#include <iterator>
+#include <set>
+#include <utility>
+
#include "loctest.h"
+#include "unicode/localpointer.h"
#include "unicode/decimfmt.h"
#include "unicode/ucurr.h"
#include "unicode/smpdtfmt.h"
@@ -14,14 +19,16 @@
#include "unicode/dtfmtsym.h"
#include "unicode/brkiter.h"
#include "unicode/coll.h"
+#include "unicode/ustring.h"
+#include "unicode/std_string.h"
#include "charstr.h"
#include "cmemory.h"
#include "cstring.h"
#include <stdio.h>
#include <string.h>
#include "putilimp.h"
-#include "unicode/ustring.h"
#include "hash.h"
+#include "locmap.h"
static const char* const rawData[33][8] = {
@@ -218,9 +225,18 @@ void LocaleTest::runIndexedTest( int32_t index, UBool exec, const char* &name, c
#endif
TESTCASE_AUTO(TestSetIsBogus);
TESTCASE_AUTO(TestParallelAPIValues);
+ TESTCASE_AUTO(TestAddLikelySubtags);
+ TESTCASE_AUTO(TestMinimizeSubtags);
TESTCASE_AUTO(TestKeywordVariants);
+ TESTCASE_AUTO(TestCreateUnicodeKeywords);
TESTCASE_AUTO(TestKeywordVariantParsing);
+ TESTCASE_AUTO(TestCreateKeywordSet);
+ TESTCASE_AUTO(TestCreateUnicodeKeywordSet);
+ TESTCASE_AUTO(TestGetKeywordValueStdString);
+ TESTCASE_AUTO(TestGetUnicodeKeywordValueStdString);
TESTCASE_AUTO(TestSetKeywordValue);
+ TESTCASE_AUTO(TestSetKeywordValueStringPiece);
+ TESTCASE_AUTO(TestSetUnicodeKeywordValueStringPiece);
TESTCASE_AUTO(TestGetBaseName);
#if !UCONFIG_NO_FILE_IO
TESTCASE_AUTO(TestGetLocale);
@@ -231,6 +247,12 @@ void LocaleTest::runIndexedTest( int32_t index, UBool exec, const char* &name, c
TESTCASE_AUTO(TestGetVariantWithKeywords);
TESTCASE_AUTO(TestIsRightToLeft);
TESTCASE_AUTO(TestBug13277);
+ TESTCASE_AUTO(TestBug13554);
+ TESTCASE_AUTO(TestForLanguageTag);
+ TESTCASE_AUTO(TestToLanguageTag);
+ TESTCASE_AUTO(TestMoveAssign);
+ TESTCASE_AUTO(TestMoveCtor);
+ TESTCASE_AUTO(TestBug13417VeryLongLanguageTag);
TESTCASE_AUTO_END;
}
@@ -1134,7 +1156,7 @@ LocaleTest::TestThaiCurrencyFormat()
UErrorCode status = U_ZERO_ERROR;
DecimalFormat *thaiCurrency = (DecimalFormat*)NumberFormat::createCurrencyInstance(
Locale("th", "TH"), status);
- UnicodeString posPrefix("THB", 3, US_INV); // per cldrbug 7618
+ UnicodeString posPrefix(u"\u0E3F");
UnicodeString temp;
if(U_FAILURE(status) || !thaiCurrency)
@@ -1143,7 +1165,7 @@ LocaleTest::TestThaiCurrencyFormat()
return;
}
if (thaiCurrency->getPositivePrefix(temp) != posPrefix)
- errln("Thai currency prefix wrong: expected THB, got \"" +
+ errln("Thai currency prefix wrong: expected Baht sign, got \"" +
thaiCurrency->getPositivePrefix(temp) + "\"");
if (thaiCurrency->getPositiveSuffix(temp) != "")
errln("Thai currency suffix wrong: expected \"\", got \"" +
@@ -1597,6 +1619,34 @@ LocaleTest::TestSetIsBogus() {
void
+LocaleTest::TestAddLikelySubtags() {
+ IcuTestErrorCode status(*this, "TestAddLikelySubtags()");
+
+ static const Locale min("sv");
+ static const Locale max("sv_Latn_SE");
+
+ Locale result(min);
+ result.addLikelySubtags(status);
+ status.errIfFailureAndReset("\"%s\"", min.getName());
+ assertEquals("addLikelySubtags", max.getName(), result.getName());
+}
+
+
+void
+LocaleTest::TestMinimizeSubtags() {
+ IcuTestErrorCode status(*this, "TestMinimizeSubtags()");
+
+ static const Locale max("zh_Hant_TW");
+ static const Locale min("zh_TW");
+
+ Locale result(max);
+ result.minimizeSubtags(status);
+ status.errIfFailureAndReset("\"%s\"", max.getName());
+ assertEquals("minimizeSubtags", min.getName(), result.getName());
+}
+
+
+void
LocaleTest::TestKeywordVariants(void) {
static const struct {
const char *localeID;
@@ -1703,6 +1753,63 @@ LocaleTest::TestKeywordVariants(void) {
}
+
+void
+LocaleTest::TestCreateUnicodeKeywords(void) {
+ IcuTestErrorCode status(*this, "TestCreateUnicodeKeywords()");
+
+ static const Locale l("de@calendar=buddhist;collation=phonebook");
+
+ LocalPointer<StringEnumeration> keys(l.createUnicodeKeywords(status));
+ status.errIfFailureAndReset("\"%s\"", l.getName());
+
+ const char* key;
+ int32_t resultLength;
+
+ key = keys->next(&resultLength, status);
+ status.errIfFailureAndReset("key #1");
+ assertEquals("resultLength", 2, resultLength);
+ assertTrue("key != nullptr", key != nullptr);
+ if (key != nullptr) {
+ assertEquals("calendar", "ca", key);
+ }
+
+ key = keys->next(&resultLength, status);
+ status.errIfFailureAndReset("key #2");
+ assertEquals("resultLength", 2, resultLength);
+ assertTrue("key != nullptr", key != nullptr);
+ if (key != nullptr) {
+ assertEquals("collation", "co", key);
+ }
+
+ key = keys->next(&resultLength, status);
+ status.errIfFailureAndReset("end of keys");
+ assertEquals("resultLength", 0, resultLength);
+ assertTrue("key == nullptr", key == nullptr);
+
+ const UnicodeString* skey;
+ keys->reset(status); // KeywordEnumeration::reset() never touches status.
+
+ skey = keys->snext(status);
+ status.errIfFailureAndReset("skey #1");
+ assertTrue("skey != nullptr", skey != nullptr);
+ if (skey != nullptr) {
+ assertEquals("calendar", "ca", *skey);
+ }
+
+ skey = keys->snext(status);
+ status.errIfFailureAndReset("skey #2");
+ assertTrue("skey != nullptr", skey != nullptr);
+ if (skey != nullptr) {
+ assertEquals("collation", "co", *skey);
+ }
+
+ skey = keys->snext(status);
+ status.errIfFailureAndReset("end of keys");
+ assertTrue("skey == nullptr", skey == nullptr);
+}
+
+
void
LocaleTest::TestKeywordVariantParsing(void) {
static const struct {
@@ -1735,6 +1842,74 @@ LocaleTest::TestKeywordVariantParsing(void) {
}
void
+LocaleTest::TestCreateKeywordSet(void) {
+ IcuTestErrorCode status(*this, "TestCreateKeywordSet()");
+
+ static const Locale l("de@calendar=buddhist;collation=phonebook");
+
+ std::set<std::string> result;
+ l.getKeywords<std::string>(
+ std::insert_iterator<decltype(result)>(result, result.begin()),
+ status);
+ status.errIfFailureAndReset("\"%s\"", l.getName());
+
+ assertEquals("set::size()", 2, result.size());
+ assertTrue("set::find(\"calendar\")",
+ result.find("calendar") != result.end());
+ assertTrue("set::find(\"collation\")",
+ result.find("collation") != result.end());
+}
+
+void
+LocaleTest::TestCreateUnicodeKeywordSet(void) {
+ IcuTestErrorCode status(*this, "TestCreateUnicodeKeywordSet()");
+
+ static const Locale l("de@calendar=buddhist;collation=phonebook");
+
+ std::set<std::string> result;
+ l.getUnicodeKeywords<std::string>(
+ std::insert_iterator<decltype(result)>(result, result.begin()),
+ status);
+ status.errIfFailureAndReset("\"%s\"", l.getName());
+
+ assertEquals("set::size()", 2, result.size());
+ assertTrue("set::find(\"ca\")",
+ result.find("ca") != result.end());
+ assertTrue("set::find(\"co\")",
+ result.find("co") != result.end());
+}
+
+void
+LocaleTest::TestGetKeywordValueStdString(void) {
+ IcuTestErrorCode status(*this, "TestGetKeywordValueStdString()");
+
+ static const char tag[] = "fa-u-nu-latn";
+ static const char keyword[] = "numbers";
+ static const char expected[] = "latn";
+
+ Locale l = Locale::forLanguageTag(tag, status);
+ status.errIfFailureAndReset("\"%s\"", tag);
+
+ std::string result = l.getKeywordValue<std::string>(keyword, status);
+ status.errIfFailureAndReset("\"%s\"", keyword);
+ assertEquals(keyword, expected, result.c_str());
+}
+
+void
+LocaleTest::TestGetUnicodeKeywordValueStdString(void) {
+ IcuTestErrorCode status(*this, "TestGetUnicodeKeywordValueStdString()");
+
+ static const char keyword[] = "co";
+ static const char expected[] = "phonebk";
+
+ static const Locale l("de@calendar=buddhist;collation=phonebook");
+
+ std::string result = l.getUnicodeKeywordValue<std::string>(keyword, status);
+ status.errIfFailureAndReset("\"%s\"", keyword);
+ assertEquals(keyword, expected, result.c_str());
+}
+
+void
LocaleTest::TestSetKeywordValue(void) {
static const struct {
const char *keyword;
@@ -1770,6 +1945,33 @@ LocaleTest::TestSetKeywordValue(void) {
}
void
+LocaleTest::TestSetKeywordValueStringPiece(void) {
+ IcuTestErrorCode status(*this, "TestSetKeywordValueStringPiece()");
+ Locale l(Locale::getGerman());
+
+ l.setKeywordValue(StringPiece("collation"), StringPiece("phonebook"), status);
+ l.setKeywordValue(StringPiece("calendarxxx", 8), StringPiece("buddhistxxx", 8), status);
+
+ static const char expected[] = "de@calendar=buddhist;collation=phonebook";
+ assertEquals("", expected, l.getName());
+}
+
+void
+LocaleTest::TestSetUnicodeKeywordValueStringPiece(void) {
+ IcuTestErrorCode status(*this, "TestSetUnicodeKeywordValueStringPiece()");
+ Locale l(Locale::getGerman());
+
+ l.setUnicodeKeywordValue(StringPiece("co"), StringPiece("phonebk"), status);
+ status.errIfFailureAndReset();
+
+ l.setUnicodeKeywordValue(StringPiece("caxxx", 2), StringPiece("buddhistxxx", 8), status);
+ status.errIfFailureAndReset();
+
+ static const char expected[] = "de@calendar=buddhist;collation=phonebook";
+ assertEquals("", expected, l.getName());
+}
+
+void
LocaleTest::TestGetBaseName(void) {
static const struct {
const char *localeID;
@@ -2732,3 +2934,223 @@ void LocaleTest::TestBug13277() {
}
}
+// TestBug13554 Check for read past end of array in getPosixID().
+// The bug shows as an Address Sanitizer failure.
+
+void LocaleTest::TestBug13554() {
+ UErrorCode status = U_ZERO_ERROR;
+ const int BUFFER_SIZE = 100;
+ char posixID[BUFFER_SIZE];
+
+ for (uint32_t hostid = 0; hostid < 0x500; ++hostid) {
+ status = U_ZERO_ERROR;
+ uprv_convertToPosix(hostid, posixID, BUFFER_SIZE, &status);
+ }
+}
+
+void LocaleTest::TestForLanguageTag() {
+ IcuTestErrorCode status(*this, "TestForLanguageTag()");
+
+ static const char tag_en[] = "en-US";
+ static const char tag_oed[] = "en-GB-oed";
+ static const char tag_af[] = "af-t-ar-i0-handwrit-u-ca-coptic-x-foo";
+ static const char tag_ill[] = "!";
+ static const char tag_no_nul[] = { 'e', 'n', '-', 'G', 'B' };
+
+ static const Locale loc_en("en_US");
+ static const Locale loc_oed("en_GB_OXENDICT");
+ static const Locale loc_af("af@calendar=coptic;t=ar-i0-handwrit;x=foo");
+ static const Locale loc_null("");
+ static const Locale loc_gb("en_GB");
+
+ Locale result_en = Locale::forLanguageTag(tag_en, status);
+ status.errIfFailureAndReset("\"%s\"", tag_en);
+ assertEquals(tag_en, loc_en.getName(), result_en.getName());
+
+ Locale result_oed = Locale::forLanguageTag(tag_oed, status);
+ status.errIfFailureAndReset("\"%s\"", tag_oed);
+ assertEquals(tag_oed, loc_oed.getName(), result_oed.getName());
+
+ Locale result_af = Locale::forLanguageTag(tag_af, status);
+ status.errIfFailureAndReset("\"%s\"", tag_af);
+ assertEquals(tag_af, loc_af.getName(), result_af.getName());
+
+ Locale result_ill = Locale::forLanguageTag(tag_ill, status);
+ assertEquals(tag_ill, U_ILLEGAL_ARGUMENT_ERROR, status.reset());
+ assertTrue(result_ill.getName(), result_ill.isBogus());
+
+ Locale result_null = Locale::forLanguageTag(nullptr, status);
+ status.errIfFailureAndReset("nullptr");
+ assertEquals("nullptr", loc_null.getName(), result_null.getName());
+
+ StringPiece sp_substr(tag_oed, 5); // "en-GB", no NUL.
+ Locale result_substr = Locale::forLanguageTag(sp_substr, status);
+ status.errIfFailureAndReset("\"%.*s\"", sp_substr.size(), sp_substr.data());
+ assertEquals(CharString(sp_substr, status).data(),
+ loc_gb.getName(), result_substr.getName());
+
+ StringPiece sp_no_nul(tag_no_nul, sizeof tag_no_nul); // "en-GB", no NUL.
+ Locale result_no_nul = Locale::forLanguageTag(sp_no_nul, status);
+ status.errIfFailureAndReset("\"%.*s\"", sp_no_nul.size(), sp_no_nul.data());
+ assertEquals(CharString(sp_no_nul, status).data(),
+ loc_gb.getName(), result_no_nul.getName());
+}
+
+void LocaleTest::TestToLanguageTag() {
+ IcuTestErrorCode status(*this, "TestToLanguageTag()");
+
+ static const Locale loc_c("C");
+ static const Locale loc_en("en_US");
+ static const Locale loc_af("af@calendar=coptic;t=ar-i0-handwrit;x=foo");
+ static const Locale loc_empty("");
+ static const Locale loc_ill("!");
+
+ static const char tag_c[] = "en-US-u-va-posix";
+ static const char tag_en[] = "en-US";
+ static const char tag_af[] = "af-t-ar-i0-handwrit-u-ca-coptic-x-foo";
+ static const char tag_und[] = "und";
+
+ std::string result;
+ StringByteSink<std::string> sink(&result);
+ loc_c.toLanguageTag(sink, status);
+ status.errIfFailureAndReset("\"%s\"", loc_c.getName());
+ assertEquals(loc_c.getName(), tag_c, result.c_str());
+
+ std::string result_c = loc_c.toLanguageTag<std::string>(status);
+ status.errIfFailureAndReset("\"%s\"", loc_c.getName());
+ assertEquals(loc_c.getName(), tag_c, result_c.c_str());
+
+ std::string result_en = loc_en.toLanguageTag<std::string>(status);
+ status.errIfFailureAndReset("\"%s\"", loc_en.getName());
+ assertEquals(loc_en.getName(), tag_en, result_en.c_str());
+
+ std::string result_af = loc_af.toLanguageTag<std::string>(status);
+ status.errIfFailureAndReset("\"%s\"", loc_af.getName());
+ assertEquals(loc_af.getName(), tag_af, result_af.c_str());
+
+ std::string result_empty = loc_empty.toLanguageTag<std::string>(status);
+ status.errIfFailureAndReset("\"%s\"", loc_empty.getName());
+ assertEquals(loc_empty.getName(), tag_und, result_empty.c_str());
+
+ std::string result_ill = loc_ill.toLanguageTag<std::string>(status);
+ status.errIfFailureAndReset("\"%s\"", loc_ill.getName());
+ assertEquals(loc_ill.getName(), tag_und, result_ill.c_str());
+
+ Locale loc_bogus;
+ loc_bogus.setToBogus();
+ std::string result_bogus = loc_bogus.toLanguageTag<std::string>(status);
+ assertEquals("bogus", U_ILLEGAL_ARGUMENT_ERROR, status.reset());
+ assertTrue(result_bogus.c_str(), result_bogus.empty());
+}
+
+void LocaleTest::TestMoveAssign() {
+ // ULOC_FULLNAME_CAPACITY == 157 (uloc.h)
+ Locale l1("de@collation=phonebook;x="
+ "aaaaabbbbbcccccdddddeeeeefffffggggghhhhh"
+ "aaaaabbbbbcccccdddddeeeeefffffggggghhhhh"
+ "aaaaabbbbbcccccdddddeeeeefffffggggghhhhh"
+ "aaaaabbbbbzz");
+
+ Locale l2;
+ {
+ Locale l3(l1);
+ assertTrue("l1 == l3", l1 == l3);
+ l2 = std::move(l3);
+ assertTrue("l1 == l2", l1 == l2);
+ assertTrue("l2 != l3", l2.getName() != l3.getName());
+ }
+
+ // This should remain true also after l3 has been destructed.
+ assertTrue("l1 == l2, again", l1 == l2);
+
+ Locale l4("de@collation=phonebook");
+
+ Locale l5;
+ {
+ Locale l6(l4);
+ assertTrue("l4 == l6", l4 == l6);
+ l5 = std::move(l6);
+ assertTrue("l4 == l5", l4 == l5);
+ assertTrue("l5 != l6", l5.getName() != l6.getName());
+ }
+
+ // This should remain true also after l6 has been destructed.
+ assertTrue("l4 == l5, again", l4 == l5);
+
+ Locale l7("vo_Cyrl_AQ_EURO");
+
+ Locale l8;
+ {
+ Locale l9(l7);
+ assertTrue("l7 == l9", l7 == l9);
+ l8 = std::move(l9);
+ assertTrue("l7 == l8", l7 == l8);
+ assertTrue("l8 != l9", l8.getName() != l9.getName());
+ }
+
+ // This should remain true also after l9 has been destructed.
+ assertTrue("l7 == l8, again", l7 == l8);
+
+ assertEquals("language", l7.getLanguage(), l8.getLanguage());
+ assertEquals("script", l7.getScript(), l8.getScript());
+ assertEquals("country", l7.getCountry(), l8.getCountry());
+ assertEquals("variant", l7.getVariant(), l8.getVariant());
+ assertEquals("bogus", l7.isBogus(), l8.isBogus());
+}
+
+void LocaleTest::TestMoveCtor() {
+ // ULOC_FULLNAME_CAPACITY == 157 (uloc.h)
+ Locale l1("de@collation=phonebook;x="
+ "aaaaabbbbbcccccdddddeeeeefffffggggghhhhh"
+ "aaaaabbbbbcccccdddddeeeeefffffggggghhhhh"
+ "aaaaabbbbbcccccdddddeeeeefffffggggghhhhh"
+ "aaaaabbbbbzz");
+
+ Locale l3(l1);
+ assertTrue("l1 == l3", l1 == l3);
+ Locale l2(std::move(l3));
+ assertTrue("l1 == l2", l1 == l2);
+ assertTrue("l2 != l3", l2.getName() != l3.getName());
+
+ Locale l4("de@collation=phonebook");
+
+ Locale l6(l4);
+ assertTrue("l4 == l6", l4 == l6);
+ Locale l5(std::move(l6));
+ assertTrue("l4 == l5", l4 == l5);
+ assertTrue("l5 != l6", l5.getName() != l6.getName());
+
+ Locale l7("vo_Cyrl_AQ_EURO");
+
+ Locale l9(l7);
+ assertTrue("l7 == l9", l7 == l9);
+ Locale l8(std::move(l9));
+ assertTrue("l7 == l8", l7 == l8);
+ assertTrue("l8 != l9", l8.getName() != l9.getName());
+
+ assertEquals("language", l7.getLanguage(), l8.getLanguage());
+ assertEquals("script", l7.getScript(), l8.getScript());
+ assertEquals("country", l7.getCountry(), l8.getCountry());
+ assertEquals("variant", l7.getVariant(), l8.getVariant());
+ assertEquals("bogus", l7.isBogus(), l8.isBogus());
+}
+
+void LocaleTest::TestBug13417VeryLongLanguageTag() {
+ IcuTestErrorCode status(*this, "TestBug13417VeryLongLanguageTag()");
+
+ static const char tag[] =
+ "zh-x"
+ "-foo-bar-baz-foo-bar-baz-foo-bar-baz-foo-bar-baz"
+ "-foo-bar-baz-foo-bar-baz-foo-bar-baz-foo-bar-baz"
+ "-foo-bar-baz-foo-bar-baz-foo-bar-baz-foo-bar-baz"
+ "-foo-bar-baz-fxx"
+ ;
+
+ Locale l = Locale::forLanguageTag(tag, status);
+ status.errIfFailureAndReset("\"%s\"", tag);
+ assertTrue("!l.isBogus()", !l.isBogus());
+
+ std::string result = l.toLanguageTag<std::string>(status);
+ status.errIfFailureAndReset("\"%s\"", l.getName());
+ assertEquals("equals", tag, result.c_str());
+}
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/loctest.h b/Build/source/libs/icu/icu-src/source/test/intltest/loctest.h
index 270f427952e..2a83be51a05 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/loctest.h
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/loctest.h
@@ -72,14 +72,21 @@ public:
void TestVariantParsing(void);
- /* Test getting keyword enumeratin */
+ /* Test getting keyword enumeration */
void TestKeywordVariants(void);
+ void TestCreateUnicodeKeywords(void);
/* Test getting keyword values */
void TestKeywordVariantParsing(void);
+ void TestCreateKeywordSet(void);
+ void TestCreateUnicodeKeywordSet(void);
+ void TestGetKeywordValueStdString(void);
+ void TestGetUnicodeKeywordValueStdString(void);
/* Test setting keyword values */
void TestSetKeywordValue(void);
+ void TestSetKeywordValueStringPiece(void);
+ void TestSetUnicodeKeywordValueStringPiece(void);
/* Test getting the locale base name */
void TestGetBaseName(void);
@@ -106,6 +113,18 @@ public:
void TestIsRightToLeft();
void TestBug11421();
void TestBug13277();
+ void TestBug13554();
+
+ void TestAddLikelySubtags();
+ void TestMinimizeSubtags();
+
+ void TestForLanguageTag();
+ void TestToLanguageTag();
+
+ void TestMoveAssign();
+ void TestMoveCtor();
+
+ void TestBug13417VeryLongLanguageTag();
private:
void _checklocs(const char* label,
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/measfmttest.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/measfmttest.cpp
index 7be9adfed02..a0599bae884 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/measfmttest.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/measfmttest.cpp
@@ -50,6 +50,7 @@ private:
void TestCompatible57();
void TestCompatible58();
void TestCompatible59();
+ void TestCompatible63();
void TestGetAvailable();
void TestExamplesInDocs();
void TestFormatPeriodEn();
@@ -147,6 +148,7 @@ void MeasureFormatTest::runIndexedTest(
TESTCASE_AUTO(TestCompatible57);
TESTCASE_AUTO(TestCompatible58);
TESTCASE_AUTO(TestCompatible59);
+ TESTCASE_AUTO(TestCompatible63);
TESTCASE_AUTO(TestGetAvailable);
TESTCASE_AUTO(TestExamplesInDocs);
TESTCASE_AUTO(TestFormatPeriodEn);
@@ -1039,6 +1041,154 @@ void MeasureFormatTest::TestCompatible59() {
assertSuccess("", status);
}
+// Note that TestCompatible60(), TestCompatible61(), TestCompatible62()
+// would be the same as TestCompatible59(), no need to add them.
+
+void MeasureFormatTest::TestCompatible63() {
+ UErrorCode status = U_ZERO_ERROR;
+ LocalPointer<MeasureUnit> measureUnit;
+ measureUnit.adoptInstead(MeasureUnit::createGForce(status));
+ measureUnit.adoptInstead(MeasureUnit::createMeterPerSecondSquared(status));
+ measureUnit.adoptInstead(MeasureUnit::createArcMinute(status));
+ measureUnit.adoptInstead(MeasureUnit::createArcSecond(status));
+ measureUnit.adoptInstead(MeasureUnit::createDegree(status));
+ measureUnit.adoptInstead(MeasureUnit::createRadian(status));
+ measureUnit.adoptInstead(MeasureUnit::createRevolutionAngle(status));
+ measureUnit.adoptInstead(MeasureUnit::createAcre(status));
+ measureUnit.adoptInstead(MeasureUnit::createHectare(status));
+ measureUnit.adoptInstead(MeasureUnit::createSquareCentimeter(status));
+ measureUnit.adoptInstead(MeasureUnit::createSquareFoot(status));
+ measureUnit.adoptInstead(MeasureUnit::createSquareInch(status));
+ measureUnit.adoptInstead(MeasureUnit::createSquareKilometer(status));
+ measureUnit.adoptInstead(MeasureUnit::createSquareMeter(status));
+ measureUnit.adoptInstead(MeasureUnit::createSquareMile(status));
+ measureUnit.adoptInstead(MeasureUnit::createSquareYard(status));
+ measureUnit.adoptInstead(MeasureUnit::createKarat(status));
+ measureUnit.adoptInstead(MeasureUnit::createMilligramPerDeciliter(status));
+ measureUnit.adoptInstead(MeasureUnit::createMillimolePerLiter(status));
+ measureUnit.adoptInstead(MeasureUnit::createPartPerMillion(status));
+ measureUnit.adoptInstead(MeasureUnit::createPercent(status));
+ measureUnit.adoptInstead(MeasureUnit::createPermille(status));
+ measureUnit.adoptInstead(MeasureUnit::createLiterPer100Kilometers(status));
+ measureUnit.adoptInstead(MeasureUnit::createLiterPerKilometer(status));
+ measureUnit.adoptInstead(MeasureUnit::createMilePerGallon(status));
+ measureUnit.adoptInstead(MeasureUnit::createMilePerGallonImperial(status));
+ measureUnit.adoptInstead(MeasureUnit::createBit(status));
+ measureUnit.adoptInstead(MeasureUnit::createByte(status));
+ measureUnit.adoptInstead(MeasureUnit::createGigabit(status));
+ measureUnit.adoptInstead(MeasureUnit::createGigabyte(status));
+ measureUnit.adoptInstead(MeasureUnit::createKilobit(status));
+ measureUnit.adoptInstead(MeasureUnit::createKilobyte(status));
+ measureUnit.adoptInstead(MeasureUnit::createMegabit(status));
+ measureUnit.adoptInstead(MeasureUnit::createMegabyte(status));
+ measureUnit.adoptInstead(MeasureUnit::createPetabyte(status));
+ measureUnit.adoptInstead(MeasureUnit::createTerabit(status));
+ measureUnit.adoptInstead(MeasureUnit::createTerabyte(status));
+ measureUnit.adoptInstead(MeasureUnit::createCentury(status));
+ measureUnit.adoptInstead(MeasureUnit::createDay(status));
+ measureUnit.adoptInstead(MeasureUnit::createHour(status));
+ measureUnit.adoptInstead(MeasureUnit::createMicrosecond(status));
+ measureUnit.adoptInstead(MeasureUnit::createMillisecond(status));
+ measureUnit.adoptInstead(MeasureUnit::createMinute(status));
+ measureUnit.adoptInstead(MeasureUnit::createMonth(status));
+ measureUnit.adoptInstead(MeasureUnit::createNanosecond(status));
+ measureUnit.adoptInstead(MeasureUnit::createSecond(status));
+ measureUnit.adoptInstead(MeasureUnit::createWeek(status));
+ measureUnit.adoptInstead(MeasureUnit::createYear(status));
+ measureUnit.adoptInstead(MeasureUnit::createAmpere(status));
+ measureUnit.adoptInstead(MeasureUnit::createMilliampere(status));
+ measureUnit.adoptInstead(MeasureUnit::createOhm(status));
+ measureUnit.adoptInstead(MeasureUnit::createVolt(status));
+ measureUnit.adoptInstead(MeasureUnit::createCalorie(status));
+ measureUnit.adoptInstead(MeasureUnit::createFoodcalorie(status));
+ measureUnit.adoptInstead(MeasureUnit::createJoule(status));
+ measureUnit.adoptInstead(MeasureUnit::createKilocalorie(status));
+ measureUnit.adoptInstead(MeasureUnit::createKilojoule(status));
+ measureUnit.adoptInstead(MeasureUnit::createKilowattHour(status));
+ measureUnit.adoptInstead(MeasureUnit::createGigahertz(status));
+ measureUnit.adoptInstead(MeasureUnit::createHertz(status));
+ measureUnit.adoptInstead(MeasureUnit::createKilohertz(status));
+ measureUnit.adoptInstead(MeasureUnit::createMegahertz(status));
+ measureUnit.adoptInstead(MeasureUnit::createAstronomicalUnit(status));
+ measureUnit.adoptInstead(MeasureUnit::createCentimeter(status));
+ measureUnit.adoptInstead(MeasureUnit::createDecimeter(status));
+ measureUnit.adoptInstead(MeasureUnit::createFathom(status));
+ measureUnit.adoptInstead(MeasureUnit::createFoot(status));
+ measureUnit.adoptInstead(MeasureUnit::createFurlong(status));
+ measureUnit.adoptInstead(MeasureUnit::createInch(status));
+ measureUnit.adoptInstead(MeasureUnit::createKilometer(status));
+ measureUnit.adoptInstead(MeasureUnit::createLightYear(status));
+ measureUnit.adoptInstead(MeasureUnit::createMeter(status));
+ measureUnit.adoptInstead(MeasureUnit::createMicrometer(status));
+ measureUnit.adoptInstead(MeasureUnit::createMile(status));
+ measureUnit.adoptInstead(MeasureUnit::createMileScandinavian(status));
+ measureUnit.adoptInstead(MeasureUnit::createMillimeter(status));
+ measureUnit.adoptInstead(MeasureUnit::createNanometer(status));
+ measureUnit.adoptInstead(MeasureUnit::createNauticalMile(status));
+ measureUnit.adoptInstead(MeasureUnit::createParsec(status));
+ measureUnit.adoptInstead(MeasureUnit::createPicometer(status));
+ measureUnit.adoptInstead(MeasureUnit::createPoint(status));
+ measureUnit.adoptInstead(MeasureUnit::createYard(status));
+ measureUnit.adoptInstead(MeasureUnit::createLux(status));
+ measureUnit.adoptInstead(MeasureUnit::createCarat(status));
+ measureUnit.adoptInstead(MeasureUnit::createGram(status));
+ measureUnit.adoptInstead(MeasureUnit::createKilogram(status));
+ measureUnit.adoptInstead(MeasureUnit::createMetricTon(status));
+ measureUnit.adoptInstead(MeasureUnit::createMicrogram(status));
+ measureUnit.adoptInstead(MeasureUnit::createMilligram(status));
+ measureUnit.adoptInstead(MeasureUnit::createOunce(status));
+ measureUnit.adoptInstead(MeasureUnit::createOunceTroy(status));
+ measureUnit.adoptInstead(MeasureUnit::createPound(status));
+ measureUnit.adoptInstead(MeasureUnit::createStone(status));
+ measureUnit.adoptInstead(MeasureUnit::createTon(status));
+ measureUnit.adoptInstead(MeasureUnit::createGigawatt(status));
+ measureUnit.adoptInstead(MeasureUnit::createHorsepower(status));
+ measureUnit.adoptInstead(MeasureUnit::createKilowatt(status));
+ measureUnit.adoptInstead(MeasureUnit::createMegawatt(status));
+ measureUnit.adoptInstead(MeasureUnit::createMilliwatt(status));
+ measureUnit.adoptInstead(MeasureUnit::createWatt(status));
+ measureUnit.adoptInstead(MeasureUnit::createAtmosphere(status));
+ measureUnit.adoptInstead(MeasureUnit::createHectopascal(status));
+ measureUnit.adoptInstead(MeasureUnit::createInchHg(status));
+ measureUnit.adoptInstead(MeasureUnit::createMillibar(status));
+ measureUnit.adoptInstead(MeasureUnit::createMillimeterOfMercury(status));
+ measureUnit.adoptInstead(MeasureUnit::createPoundPerSquareInch(status));
+ measureUnit.adoptInstead(MeasureUnit::createKilometerPerHour(status));
+ measureUnit.adoptInstead(MeasureUnit::createKnot(status));
+ measureUnit.adoptInstead(MeasureUnit::createMeterPerSecond(status));
+ measureUnit.adoptInstead(MeasureUnit::createMilePerHour(status));
+ measureUnit.adoptInstead(MeasureUnit::createCelsius(status));
+ measureUnit.adoptInstead(MeasureUnit::createFahrenheit(status));
+ measureUnit.adoptInstead(MeasureUnit::createGenericTemperature(status));
+ measureUnit.adoptInstead(MeasureUnit::createKelvin(status));
+ measureUnit.adoptInstead(MeasureUnit::createAcreFoot(status));
+ measureUnit.adoptInstead(MeasureUnit::createBushel(status));
+ measureUnit.adoptInstead(MeasureUnit::createCentiliter(status));
+ measureUnit.adoptInstead(MeasureUnit::createCubicCentimeter(status));
+ measureUnit.adoptInstead(MeasureUnit::createCubicFoot(status));
+ measureUnit.adoptInstead(MeasureUnit::createCubicInch(status));
+ measureUnit.adoptInstead(MeasureUnit::createCubicKilometer(status));
+ measureUnit.adoptInstead(MeasureUnit::createCubicMeter(status));
+ measureUnit.adoptInstead(MeasureUnit::createCubicMile(status));
+ measureUnit.adoptInstead(MeasureUnit::createCubicYard(status));
+ measureUnit.adoptInstead(MeasureUnit::createCup(status));
+ measureUnit.adoptInstead(MeasureUnit::createCupMetric(status));
+ measureUnit.adoptInstead(MeasureUnit::createDeciliter(status));
+ measureUnit.adoptInstead(MeasureUnit::createFluidOunce(status));
+ measureUnit.adoptInstead(MeasureUnit::createGallon(status));
+ measureUnit.adoptInstead(MeasureUnit::createGallonImperial(status));
+ measureUnit.adoptInstead(MeasureUnit::createHectoliter(status));
+ measureUnit.adoptInstead(MeasureUnit::createLiter(status));
+ measureUnit.adoptInstead(MeasureUnit::createMegaliter(status));
+ measureUnit.adoptInstead(MeasureUnit::createMilliliter(status));
+ measureUnit.adoptInstead(MeasureUnit::createPint(status));
+ measureUnit.adoptInstead(MeasureUnit::createPintMetric(status));
+ measureUnit.adoptInstead(MeasureUnit::createQuart(status));
+ measureUnit.adoptInstead(MeasureUnit::createTablespoon(status));
+ measureUnit.adoptInstead(MeasureUnit::createTeaspoon(status));
+ assertSuccess("", status);
+}
+
void MeasureFormatTest::TestBasic() {
UErrorCode status = U_ZERO_ERROR;
MeasureUnit *ptr1 = MeasureUnit::createArcMinute(status);
@@ -1163,39 +1313,39 @@ void MeasureFormatTest::TestExamplesInDocs() {
fmtFr,
&measureC,
1,
- "23 \\u00B0C");
+ "23\\u202F\\u00B0C");
verifyFormatWithPrefix(
"Celsius",
fmtFr,
"Prefix: ",
&measureC,
1,
- "Prefix: 23 \\u00B0C");
+ "Prefix: 23\\u202F\\u00B0C");
verifyFormat(
"Fahrenheit",
fmtFr,
&measureF,
1,
- "70 \\u00B0F");
+ "70\\u202F\\u00B0F");
verifyFormat(
"Feet and inches",
fmtFrFull,
feetAndInches,
UPRV_LENGTHOF(feetAndInches),
- "70 pieds et 5,3 pouces");
+ "70 pieds et 5,3\\u00A0pouces");
verifyFormatWithPrefix(
"Feet and inches",
fmtFrFull,
"Prefix: ",
feetAndInches,
UPRV_LENGTHOF(feetAndInches),
- "Prefix: 70 pieds et 5,3 pouces");
+ "Prefix: 70 pieds et 5,3\\u00A0pouces");
verifyFormat(
"Foot and inch",
fmtFrFull,
footAndInch,
UPRV_LENGTHOF(footAndInch),
- "1 pied et 1 pouce");
+ "1\\u00A0pied et 1\\u00A0pouce");
verifyFormat(
"Foot and inch narrow",
fmtFrNarrow,
@@ -1796,11 +1946,11 @@ void MeasureFormatTest::TestManyLocaleDurations() {
helperTestManyLocaleDurations("es", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5:37");
helperTestManyLocaleDurations("fi", UMEASFMT_WIDTH_NARROW, measures, UPRV_LENGTHOF(measures), "5t 37min");
helperTestManyLocaleDurations("fi", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5.37");
- helperTestManyLocaleDurations("fr", UMEASFMT_WIDTH_NARROW, measures, UPRV_LENGTHOF(measures), "5h 37 min");
+ helperTestManyLocaleDurations("fr", UMEASFMT_WIDTH_NARROW, measures, UPRV_LENGTHOF(measures), "5h 37\\u202Fmin");
helperTestManyLocaleDurations("fr", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5:37");
helperTestManyLocaleDurations("is", UMEASFMT_WIDTH_NARROW, measures, UPRV_LENGTHOF(measures), "5 klst. og 37 m\\u00EDn.");
helperTestManyLocaleDurations("is", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5:37");
- helperTestManyLocaleDurations("ja", UMEASFMT_WIDTH_NARROW, measures, UPRV_LENGTHOF(measures), "5\\u6642\\u959337\\u5206");
+ helperTestManyLocaleDurations("ja", UMEASFMT_WIDTH_NARROW, measures, UPRV_LENGTHOF(measures), "5h37m");
helperTestManyLocaleDurations("ja", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5:37");
helperTestManyLocaleDurations("nb", UMEASFMT_WIDTH_NARROW, measures, UPRV_LENGTHOF(measures), "5t, 37m");
helperTestManyLocaleDurations("nb", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5:37");
@@ -1854,9 +2004,14 @@ void MeasureFormatTest::TestGram() {
}
void MeasureFormatTest::TestCurrencies() {
- UChar USD[4];
+ UChar USD[4] = {};
u_uastrcpy(USD, "USD");
UErrorCode status = U_ZERO_ERROR;
+ CurrencyUnit USD_unit(USD, status);
+ assertEquals("Currency Unit", USD, USD_unit.getISOCurrency());
+ if (!assertSuccess("Error creating CurrencyUnit", status)) {
+ return;
+ }
CurrencyAmount USD_1(1.0, USD, status);
assertEquals("Currency Code", USD, USD_1.getISOCurrency());
CurrencyAmount USD_2(2.0, USD, status);
@@ -1876,9 +2031,9 @@ void MeasureFormatTest::TestCurrencies() {
if (!assertSuccess("Error creating format object", status)) {
return;
}
- verifyFormat("TestCurrenciesShort", fmt, &USD_NEG_1, 1, "-USD1.00");
- verifyFormat("TestCurrenciesShort", fmt, &USD_1, 1, "USD1.00");
- verifyFormat("TestCurrenciesShort", fmt, &USD_2, 1, "USD2.00");
+ verifyFormat("TestCurrenciesShort", fmt, &USD_NEG_1, 1, "-USD\\u00A01.00");
+ verifyFormat("TestCurrenciesShort", fmt, &USD_1, 1, "USD\\u00A01.00");
+ verifyFormat("TestCurrenciesShort", fmt, &USD_2, 1, "USD\\u00A02.00");
fmt = MeasureFormat(en, UMEASFMT_WIDTH_NARROW, status);
if (!assertSuccess("Error creating format object", status)) {
return;
@@ -2099,8 +2254,8 @@ void MeasureFormatTest::TestGroupingSeparator() {
"grouping separator",
"2,147,483,647 yrs, -2,147,483,648 mths, -987 days, 1,362 hr, 987 min",
appendTo);
- assertEquals("begin index", 9, pos.getBeginIndex());
- assertEquals("end index", 10, pos.getEndIndex());
+ assertEquals("begin index", 1, pos.getBeginIndex());
+ assertEquals("end index", 2, pos.getEndIndex());
}
void MeasureFormatTest::TestDoubleZero() {
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/numberformattesttuple.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/numberformattesttuple.cpp
index 496aaeccde2..26db1ad1163 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/numberformattesttuple.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/numberformattesttuple.cpp
@@ -15,7 +15,6 @@
#include "charstr.h"
#include "cstring.h"
#include "cmemory.h"
-#include "digitlst.h"
static NumberFormatTestTuple *gNullPtr = NULL;
@@ -144,7 +143,7 @@ static void strToInt(
status = U_ILLEGAL_ARGUMENT_ERROR;
return;
}
- int32_t value = 0;
+ int64_t value = 0;
for (int32_t i = start; i < len; ++i) {
UChar ch = str[i];
if (ch < 0x30 || ch > 0x39) {
@@ -153,25 +152,23 @@ static void strToInt(
}
value = value * 10 - 0x30 + (int32_t) ch;
}
- if (neg) {
- value = -value;
- }
- *static_cast<int32_t *>(intPtr) = value;
+ int32_t signedValue = neg ? static_cast<int32_t>(-value) : static_cast<int32_t>(value);
+ *static_cast<int32_t *>(intPtr) = signedValue;
}
static void intToStr(
const void *intPtr, UnicodeString &appendTo) {
UChar buffer[20];
- int32_t x = *static_cast<const int32_t *>(intPtr);
- UBool neg = FALSE;
- if (x < 0) {
- neg = TRUE;
- x = -x;
- }
- if (neg) {
+ // int64_t such that all int32_t values can be negated
+ int64_t xSigned = *static_cast<const int32_t *>(intPtr);
+ uint32_t x;
+ if (xSigned < 0) {
appendTo.append((UChar)0x2D);
+ x = static_cast<uint32_t>(-xSigned);
+ } else {
+ x = static_cast<uint32_t>(xSigned);
}
- int32_t len = uprv_itou(buffer, UPRV_LENGTHOF(buffer), (uint32_t) x, 10, 1);
+ int32_t len = uprv_itou(buffer, UPRV_LENGTHOF(buffer), x, 10, 1);
appendTo.append(buffer, 0, len);
}
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/numberformattesttuple.h b/Build/source/libs/icu/icu-src/source/test/intltest/numberformattesttuple.h
index 685c3d698e1..f30de79deb5 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/numberformattesttuple.h
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/numberformattesttuple.h
@@ -13,7 +13,6 @@
#if !UCONFIG_NO_FORMATTING
-#include "decimalformatpattern.h"
#include "unicode/decimfmt.h"
#include "unicode/ucurr.h"
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/numbertest.h b/Build/source/libs/icu/icu-src/source/test/intltest/numbertest.h
index c1d5044761b..49c2d4411a9 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/numbertest.h
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/numbertest.h
@@ -3,15 +3,21 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
#pragma once
#include "number_stringbuilder.h"
#include "intltest.h"
#include "number_affixutils.h"
+#include "numparse_stringsegment.h"
+#include "unicode/locid.h"
+#include "unicode/numberformatter.h"
+#include "unicode/numberrangeformatter.h"
using namespace icu::number;
using namespace icu::number::impl;
+using namespace icu::numparse;
+using namespace icu::numparse::impl;
////////////////////////////////////////////////////////////////////////////////////////
// INSTRUCTIONS: //
@@ -60,10 +66,15 @@ class NumberFormatterApiTest : public IntlTest {
//void symbolsOverride();
void sign();
void decimal();
+ void scale();
void locale();
void formatTypes();
+ void fieldPosition();
+ void toFormat();
void errors();
void validRanges();
+ void copyMove();
+ void localPointerCAPI();
void runIndexedTest(int32_t index, UBool exec, const char *&name, char *par = 0);
@@ -93,24 +104,30 @@ class NumberFormatterApiTest : public IntlTest {
DecimalFormatSymbols SWISS_SYMBOLS;
DecimalFormatSymbols MYANMAR_SYMBOLS;
- void assertFormatDescending(const UnicodeString &message, const UnlocalizedNumberFormatter &f,
- Locale locale, ...);
+ void assertFormatDescending(const char16_t* message, const char16_t* skeleton,
+ const UnlocalizedNumberFormatter& f, Locale locale, ...);
- void assertFormatDescendingBig(const UnicodeString &message, const UnlocalizedNumberFormatter &f,
- Locale locale, ...);
+ void assertFormatDescendingBig(const char16_t* message, const char16_t* skeleton,
+ const UnlocalizedNumberFormatter& f, Locale locale, ...);
- void assertFormatSingle(const UnicodeString &message, const UnlocalizedNumberFormatter &f,
- Locale locale, double input, const UnicodeString &expected);
+ void assertFormatSingle(const char16_t* message, const char16_t* skeleton,
+ const UnlocalizedNumberFormatter& f, Locale locale, double input,
+ const UnicodeString& expected);
+
+ void assertUndefinedSkeleton(const UnlocalizedNumberFormatter& f);
};
class DecimalQuantityTest : public IntlTest {
public:
void testDecimalQuantityBehaviorStandalone();
void testSwitchStorage();
+ void testCopyMove();
void testAppend();
void testConvertToAccurateDouble();
void testUseApproximateDoubleWhenAble();
void testHardDoubleConversion();
+ void testToDouble();
+ void testMaxDigits();
void runIndexedTest(int32_t index, UBool exec, const char *&name, char *par = 0);
@@ -162,6 +179,7 @@ class PatternModifierTest : public IntlTest {
class PatternStringTest : public IntlTest {
public:
+ void testLocalized();
void testToPatternSimple();
void testExceptionOnInvalid();
void testBug13117();
@@ -187,6 +205,95 @@ class NumberStringBuilderTest : public IntlTest {
void assertEqualsImpl(const UnicodeString &a, const NumberStringBuilder &b);
};
+class StringSegmentTest : public IntlTest {
+ public:
+ void testOffset();
+ void testLength();
+ void testCharAt();
+ void testGetCodePoint();
+ void testCommonPrefixLength();
+
+ void runIndexedTest(int32_t index, UBool exec, const char *&name, char *par = 0);
+};
+
+class NumberParserTest : public IntlTest {
+ public:
+ void testBasic();
+ void testLocaleFi();
+ void testSeriesMatcher();
+ void testCombinedCurrencyMatcher();
+ void testAffixPatternMatcher();
+ void testGroupingDisabled();
+ void testCaseFolding();
+
+ void runIndexedTest(int32_t index, UBool exec, const char *&name, char *par = 0);
+};
+
+class NumberSkeletonTest : public IntlTest {
+ public:
+ void validTokens();
+ void invalidTokens();
+ void unknownTokens();
+ void unexpectedTokens();
+ void duplicateValues();
+ void stemsRequiringOption();
+ void defaultTokens();
+ void flexibleSeparators();
+
+ void runIndexedTest(int32_t index, UBool exec, const char *&name, char *par = 0);
+
+ private:
+ void expectedErrorSkeleton(const char16_t** cases, int32_t casesLen);
+};
+
+class NumberRangeFormatterTest : public IntlTest {
+ public:
+ NumberRangeFormatterTest();
+ NumberRangeFormatterTest(UErrorCode &status);
+
+ void testSanity();
+ void testBasic();
+ void testCollapse();
+ void testIdentity();
+ void testDifferentFormatters();
+ void testPlurals();
+ void testCopyMove();
+
+ void runIndexedTest(int32_t index, UBool exec, const char *&name, char *par = 0);
+
+ private:
+ CurrencyUnit USD;
+ CurrencyUnit GBP;
+ CurrencyUnit PTE;
+
+ MeasureUnit METER;
+ MeasureUnit KILOMETER;
+ MeasureUnit FAHRENHEIT;
+ MeasureUnit KELVIN;
+
+ void assertFormatRange(
+ const char16_t* message,
+ const UnlocalizedNumberRangeFormatter& f,
+ Locale locale,
+ const char16_t* expected_10_50,
+ const char16_t* expected_49_51,
+ const char16_t* expected_50_50,
+ const char16_t* expected_00_30,
+ const char16_t* expected_00_00,
+ const char16_t* expected_30_3K,
+ const char16_t* expected_30K_50K,
+ const char16_t* expected_49K_51K,
+ const char16_t* expected_50K_50K,
+ const char16_t* expected_50K_50M);
+
+ void assertFormattedRangeEquals(
+ const char16_t* message,
+ const LocalizedNumberRangeFormatter& l,
+ double first,
+ double second,
+ const char16_t* expected);
+};
+
// NOTE: This macro is identical to the one in itformat.cpp
#define TESTCLASS(id, TestClass) \
@@ -216,6 +323,10 @@ class NumberTest : public IntlTest {
TESTCLASS(5, PatternStringTest);
TESTCLASS(6, NumberStringBuilderTest);
TESTCLASS(7, DoubleConversionTest);
+ TESTCLASS(8, StringSegmentTest);
+ TESTCLASS(9, NumberParserTest);
+ TESTCLASS(10, NumberSkeletonTest);
+ TESTCLASS(11, NumberRangeFormatterTest);
default: name = ""; break; // needed to end loop
}
}
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_affixutils.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_affixutils.cpp
index 63c155ca496..d72991a042f 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_affixutils.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_affixutils.cpp
@@ -3,7 +3,7 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
#include "putilimp.h"
#include "unicode/dcfmtsym.h"
@@ -18,7 +18,7 @@ class DefaultSymbolProvider : public SymbolProvider {
public:
DefaultSymbolProvider(UErrorCode &status) : fSymbols(Locale("ar_SA"), status) {}
- virtual UnicodeString getSymbol(AffixPatternType type) const U_OVERRIDE {
+ UnicodeString getSymbol(AffixPatternType type) const U_OVERRIDE {
switch (type) {
case TYPE_MINUS_SIGN:
return u"−";
@@ -77,7 +77,7 @@ void AffixUtilsTest::testEscape() {
for (auto &cas : cases) {
UnicodeString input(cas[0]);
UnicodeString expected(cas[1]);
- UnicodeString result = AffixUtils::escape(UnicodeStringCharSequence(input));
+ UnicodeString result = AffixUtils::escape(input);
assertEquals(input, expected, result);
}
}
@@ -130,16 +130,16 @@ void AffixUtilsTest::testUnescape() {
UnicodeString input(cas.input);
UnicodeString output(cas.output);
- assertEquals(input, cas.currency, AffixUtils::hasCurrencySymbols(UnicodeStringCharSequence(input), status));
+ assertEquals(input, cas.currency, AffixUtils::hasCurrencySymbols(input, status));
assertSuccess("Spot 1", status);
- assertEquals(input, cas.expectedLength, AffixUtils::estimateLength(UnicodeStringCharSequence(input), status));
+ assertEquals(input, cas.expectedLength, AffixUtils::estimateLength(input, status));
assertSuccess("Spot 2", status);
UnicodeString actual = unescapeWithDefaults(defaultProvider, input, status);
assertSuccess("Spot 3", status);
assertEquals(input, output, actual);
- int32_t ulength = AffixUtils::unescapedCodePointCount(UnicodeStringCharSequence(input), defaultProvider, status);
+ int32_t ulength = AffixUtils::unescapedCodePointCount(input, defaultProvider, status);
assertSuccess("Spot 4", status);
assertEquals(input, output.countChar32(), ulength);
}
@@ -165,10 +165,10 @@ void AffixUtilsTest::testContainsReplaceType() {
UnicodeString output(cas.output);
assertEquals(
- input, hasMinusSign, AffixUtils::containsType(UnicodeStringCharSequence(input), TYPE_MINUS_SIGN, status));
+ input, hasMinusSign, AffixUtils::containsType(input, TYPE_MINUS_SIGN, status));
assertSuccess("Spot 1", status);
assertEquals(
- input, output, AffixUtils::replaceType(UnicodeStringCharSequence(input), TYPE_MINUS_SIGN, u'+', status));
+ input, output, AffixUtils::replaceType(input, TYPE_MINUS_SIGN, u'+', status));
assertSuccess("Spot 2", status);
}
}
@@ -185,11 +185,11 @@ void AffixUtilsTest::testInvalid() {
UnicodeString str(strPtr);
status = U_ZERO_ERROR;
- AffixUtils::hasCurrencySymbols(UnicodeStringCharSequence(str), status);
+ AffixUtils::hasCurrencySymbols(str, status);
assertEquals("Should set error code spot 1", status, U_ILLEGAL_ARGUMENT_ERROR);
status = U_ZERO_ERROR;
- AffixUtils::estimateLength(UnicodeStringCharSequence(str), status);
+ AffixUtils::estimateLength(str, status);
assertEquals("Should set error code spot 2", status, U_ILLEGAL_ARGUMENT_ERROR);
status = U_ZERO_ERROR;
@@ -219,20 +219,21 @@ void AffixUtilsTest::testUnescapeWithSymbolProvider() {
UErrorCode status = U_ZERO_ERROR;
NumberStringBuilder sb;
- for (auto cas : cases) {
+ for (auto& cas : cases) {
UnicodeString input(cas[0]);
UnicodeString expected(cas[1]);
sb.clear();
- AffixUtils::unescape(UnicodeStringCharSequence(input), sb, 0, provider, status);
+ AffixUtils::unescape(input, sb, 0, provider, status);
assertSuccess("Spot 1", status);
assertEquals(input, expected, sb.toUnicodeString());
+ assertEquals(input, expected, sb.toTempUnicodeString());
}
// Test insertion position
sb.clear();
sb.append(u"abcdefg", UNUM_FIELD_COUNT, status);
assertSuccess("Spot 2", status);
- AffixUtils::unescape(UnicodeStringCharSequence(UnicodeString(u"-+%")), sb, 4, provider, status);
+ AffixUtils::unescape(u"-+%", sb, 4, provider, status);
assertSuccess("Spot 3", status);
assertEquals(u"Symbol provider into middle", u"abcd123efg", sb.toUnicodeString());
}
@@ -240,7 +241,7 @@ void AffixUtilsTest::testUnescapeWithSymbolProvider() {
UnicodeString AffixUtilsTest::unescapeWithDefaults(const SymbolProvider &defaultProvider,
UnicodeString input, UErrorCode &status) {
NumberStringBuilder nsb;
- int32_t length = AffixUtils::unescape(UnicodeStringCharSequence(input), nsb, 0, defaultProvider, status);
+ int32_t length = AffixUtils::unescape(input, nsb, 0, defaultProvider, status);
assertEquals("Return value of unescape", nsb.length(), length);
return nsb.toUnicodeString();
}
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_api.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_api.cpp
index 5b1c46f1e5e..54f5e63ce14 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_api.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_api.cpp
@@ -3,29 +3,37 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
#include "charstr.h"
#include <cstdarg>
+#include <cmath>
#include "unicode/unum.h"
#include "unicode/numberformatter.h"
+#include "number_asformat.h"
#include "number_types.h"
+#include "number_utils.h"
#include "numbertest.h"
+#include "unicode/utypes.h"
// Horrible workaround for the lack of a status code in the constructor...
+// (Also affects numbertest_range.cpp)
UErrorCode globalNumberFormatterApiTestStatus = U_ZERO_ERROR;
NumberFormatterApiTest::NumberFormatterApiTest()
: NumberFormatterApiTest(globalNumberFormatterApiTestStatus) {
}
-NumberFormatterApiTest::NumberFormatterApiTest(UErrorCode &status)
- : USD(u"USD", status), GBP(u"GBP", status),
- CZK(u"CZK", status), CAD(u"CAD", status),
- ESP(u"ESP", status), PTE(u"PTE", status),
- FRENCH_SYMBOLS(Locale::getFrench(), status),
- SWISS_SYMBOLS(Locale("de-CH"), status),
- MYANMAR_SYMBOLS(Locale("my"), status) {
+NumberFormatterApiTest::NumberFormatterApiTest(UErrorCode& status)
+ : USD(u"USD", status),
+ GBP(u"GBP", status),
+ CZK(u"CZK", status),
+ CAD(u"CAD", status),
+ ESP(u"ESP", status),
+ PTE(u"PTE", status),
+ FRENCH_SYMBOLS(Locale::getFrench(), status),
+ SWISS_SYMBOLS(Locale("de-CH"), status),
+ MYANMAR_SYMBOLS(Locale("my"), status) {
// Check for error on the first MeasureUnit in case there is no data
LocalPointer<MeasureUnit> unit(MeasureUnit::createMeter(status));
@@ -49,7 +57,7 @@ NumberFormatterApiTest::NumberFormatterApiTest(UErrorCode &status)
LATN = *LocalPointer<NumberingSystem>(NumberingSystem::createInstanceByName("latn", status));
}
-void NumberFormatterApiTest::runIndexedTest(int32_t index, UBool exec, const char *&name, char *) {
+void NumberFormatterApiTest::runIndexedTest(int32_t index, UBool exec, const char*& name, char*) {
if (exec) {
logln("TestSuite NumberFormatterApiTest: ");
}
@@ -73,16 +81,22 @@ void NumberFormatterApiTest::runIndexedTest(int32_t index, UBool exec, const cha
//TESTCASE_AUTO(symbolsOverride);
TESTCASE_AUTO(sign);
TESTCASE_AUTO(decimal);
+ TESTCASE_AUTO(scale);
TESTCASE_AUTO(locale);
TESTCASE_AUTO(formatTypes);
+ TESTCASE_AUTO(fieldPosition);
+ TESTCASE_AUTO(toFormat);
TESTCASE_AUTO(errors);
TESTCASE_AUTO(validRanges);
+ TESTCASE_AUTO(copyMove);
+ TESTCASE_AUTO(localPointerCAPI);
TESTCASE_AUTO_END;
}
void NumberFormatterApiTest::notationSimple() {
assertFormatDescending(
u"Basic",
+ u"",
NumberFormatter::with(),
Locale::getEnglish(),
u"87,650",
@@ -95,8 +109,24 @@ void NumberFormatterApiTest::notationSimple() {
u"0.008765",
u"0");
+ assertFormatDescendingBig(
+ u"Big Simple",
+ u"notation-simple",
+ NumberFormatter::with().notation(Notation::simple()),
+ Locale::getEnglish(),
+ u"87,650,000",
+ u"8,765,000",
+ u"876,500",
+ u"87,650",
+ u"8,765",
+ u"876.5",
+ u"87.65",
+ u"8.765",
+ u"0");
+
assertFormatSingle(
u"Basic with Negative Sign",
+ u"",
NumberFormatter::with(),
Locale::getEnglish(),
-9876543.21,
@@ -107,6 +137,7 @@ void NumberFormatterApiTest::notationSimple() {
void NumberFormatterApiTest::notationScientific() {
assertFormatDescending(
u"Scientific",
+ u"scientific",
NumberFormatter::with().notation(Notation::scientific()),
Locale::getEnglish(),
u"8.765E4",
@@ -121,6 +152,7 @@ void NumberFormatterApiTest::notationScientific() {
assertFormatDescending(
u"Engineering",
+ u"engineering",
NumberFormatter::with().notation(Notation::engineering()),
Locale::getEnglish(),
u"87.65E3",
@@ -135,6 +167,7 @@ void NumberFormatterApiTest::notationScientific() {
assertFormatDescending(
u"Scientific sign always shown",
+ u"scientific/sign-always",
NumberFormatter::with().notation(
Notation::scientific().withExponentSignDisplay(UNumberSignDisplay::UNUM_SIGN_ALWAYS)),
Locale::getEnglish(),
@@ -150,6 +183,7 @@ void NumberFormatterApiTest::notationScientific() {
assertFormatDescending(
u"Scientific min exponent digits",
+ u"scientific/+ee",
NumberFormatter::with().notation(Notation::scientific().withMinExponentDigits(2)),
Locale::getEnglish(),
u"8.765E04",
@@ -164,6 +198,7 @@ void NumberFormatterApiTest::notationScientific() {
assertFormatSingle(
u"Scientific Negative",
+ u"scientific",
NumberFormatter::with().notation(Notation::scientific()),
Locale::getEnglish(),
-1000000,
@@ -173,6 +208,7 @@ void NumberFormatterApiTest::notationScientific() {
void NumberFormatterApiTest::notationCompact() {
assertFormatDescending(
u"Compact Short",
+ u"compact-short",
NumberFormatter::with().notation(Notation::compactShort()),
Locale::getEnglish(),
u"88K",
@@ -187,6 +223,7 @@ void NumberFormatterApiTest::notationCompact() {
assertFormatDescending(
u"Compact Long",
+ u"compact-long",
NumberFormatter::with().notation(Notation::compactLong()),
Locale::getEnglish(),
u"88 thousand",
@@ -201,6 +238,7 @@ void NumberFormatterApiTest::notationCompact() {
assertFormatDescending(
u"Compact Short Currency",
+ u"compact-short currency/USD",
NumberFormatter::with().notation(Notation::compactShort()).unit(USD),
Locale::getEnglish(),
u"$88K",
@@ -215,6 +253,7 @@ void NumberFormatterApiTest::notationCompact() {
assertFormatDescending(
u"Compact Short with ISO Currency",
+ u"compact-short currency/USD unit-width-iso-code",
NumberFormatter::with().notation(Notation::compactShort())
.unit(USD)
.unitWidth(UNumberUnitWidth::UNUM_UNIT_WIDTH_ISO_CODE),
@@ -231,6 +270,7 @@ void NumberFormatterApiTest::notationCompact() {
assertFormatDescending(
u"Compact Short with Long Name Currency",
+ u"compact-short currency/USD unit-width-full-name",
NumberFormatter::with().notation(Notation::compactShort())
.unit(USD)
.unitWidth(UNumberUnitWidth::UNUM_UNIT_WIDTH_FULL_NAME),
@@ -249,6 +289,7 @@ void NumberFormatterApiTest::notationCompact() {
// This test case should be fixed when proper compact long currency patterns are added.
assertFormatDescending(
u"Compact Long Currency",
+ u"compact-long currency/USD",
NumberFormatter::with().notation(Notation::compactLong()).unit(USD),
Locale::getEnglish(),
u"$88K", // should be something like "$88 thousand"
@@ -265,6 +306,7 @@ void NumberFormatterApiTest::notationCompact() {
// This test case should be fixed when proper compact long currency patterns are added.
assertFormatDescending(
u"Compact Long with ISO Currency",
+ u"compact-long currency/USD unit-width-iso-code",
NumberFormatter::with().notation(Notation::compactLong())
.unit(USD)
.unitWidth(UNumberUnitWidth::UNUM_UNIT_WIDTH_ISO_CODE),
@@ -282,6 +324,7 @@ void NumberFormatterApiTest::notationCompact() {
// TODO: This behavior could be improved and should be revisited.
assertFormatDescending(
u"Compact Long with Long Name Currency",
+ u"compact-long currency/USD unit-width-full-name",
NumberFormatter::with().notation(Notation::compactLong())
.unit(USD)
.unitWidth(UNumberUnitWidth::UNUM_UNIT_WIDTH_FULL_NAME),
@@ -298,6 +341,7 @@ void NumberFormatterApiTest::notationCompact() {
assertFormatSingle(
u"Compact Plural One",
+ u"compact-long",
NumberFormatter::with().notation(Notation::compactLong()),
Locale::createFromName("es"),
1000000,
@@ -305,6 +349,7 @@ void NumberFormatterApiTest::notationCompact() {
assertFormatSingle(
u"Compact Plural Other",
+ u"compact-long",
NumberFormatter::with().notation(Notation::compactLong()),
Locale::createFromName("es"),
2000000,
@@ -312,6 +357,7 @@ void NumberFormatterApiTest::notationCompact() {
assertFormatSingle(
u"Compact with Negative Sign",
+ u"compact-short",
NumberFormatter::with().notation(Notation::compactShort()),
Locale::getEnglish(),
-9876543.21,
@@ -319,6 +365,7 @@ void NumberFormatterApiTest::notationCompact() {
assertFormatSingle(
u"Compact Rounding",
+ u"compact-short",
NumberFormatter::with().notation(Notation::compactShort()),
Locale::getEnglish(),
990000,
@@ -326,6 +373,7 @@ void NumberFormatterApiTest::notationCompact() {
assertFormatSingle(
u"Compact Rounding",
+ u"compact-short",
NumberFormatter::with().notation(Notation::compactShort()),
Locale::getEnglish(),
999000,
@@ -333,6 +381,7 @@ void NumberFormatterApiTest::notationCompact() {
assertFormatSingle(
u"Compact Rounding",
+ u"compact-short",
NumberFormatter::with().notation(Notation::compactShort()),
Locale::getEnglish(),
999900,
@@ -340,6 +389,7 @@ void NumberFormatterApiTest::notationCompact() {
assertFormatSingle(
u"Compact Rounding",
+ u"compact-short",
NumberFormatter::with().notation(Notation::compactShort()),
Locale::getEnglish(),
9900000,
@@ -347,11 +397,28 @@ void NumberFormatterApiTest::notationCompact() {
assertFormatSingle(
u"Compact Rounding",
+ u"compact-short",
NumberFormatter::with().notation(Notation::compactShort()),
Locale::getEnglish(),
9990000,
u"10M");
+ assertFormatSingle(
+ u"Compact in zh-Hant-HK",
+ u"compact-short",
+ NumberFormatter::with().notation(Notation::compactShort()),
+ Locale("zh-Hant-HK"),
+ 1e7,
+ u"10M");
+
+ assertFormatSingle(
+ u"Compact in zh-Hant",
+ u"compact-short",
+ NumberFormatter::with().notation(Notation::compactShort()),
+ Locale("zh-Hant"),
+ 1e7,
+ u"1000\u842C");
+
// NOTE: There is no API for compact custom data in C++
// and thus no "Compact Somali No Figure" test
}
@@ -359,6 +426,7 @@ void NumberFormatterApiTest::notationCompact() {
void NumberFormatterApiTest::unitMeasure() {
assertFormatDescending(
u"Meters Short and unit() method",
+ u"measure-unit/length-meter",
NumberFormatter::with().unit(METER),
Locale::getEnglish(),
u"87,650 m",
@@ -373,6 +441,7 @@ void NumberFormatterApiTest::unitMeasure() {
assertFormatDescending(
u"Meters Long and adoptUnit() method",
+ u"measure-unit/length-meter unit-width-full-name",
NumberFormatter::with().adoptUnit(new MeasureUnit(METER))
.unitWidth(UNumberUnitWidth::UNUM_UNIT_WIDTH_FULL_NAME),
Locale::getEnglish(),
@@ -388,6 +457,7 @@ void NumberFormatterApiTest::unitMeasure() {
assertFormatDescending(
u"Compact Meters Long",
+ u"compact-long measure-unit/length-meter unit-width-full-name",
NumberFormatter::with().notation(Notation::compactLong())
.unit(METER)
.unitWidth(UNumberUnitWidth::UNUM_UNIT_WIDTH_FULL_NAME),
@@ -420,6 +490,7 @@ void NumberFormatterApiTest::unitMeasure() {
assertFormatSingle(
u"Meters with Negative Sign",
+ u"measure-unit/length-meter",
NumberFormatter::with().unit(METER),
Locale::getEnglish(),
-9876543.21,
@@ -428,8 +499,8 @@ void NumberFormatterApiTest::unitMeasure() {
// The locale string "सान" appears only in brx.txt:
assertFormatSingle(
u"Interesting Data Fallback 1",
- NumberFormatter::with().unit(DAY)
- .unitWidth(UNumberUnitWidth::UNUM_UNIT_WIDTH_FULL_NAME),
+ u"measure-unit/duration-day unit-width-full-name",
+ NumberFormatter::with().unit(DAY).unitWidth(UNumberUnitWidth::UNUM_UNIT_WIDTH_FULL_NAME),
Locale::createFromName("brx"),
5.43,
u"5.43 सान");
@@ -437,8 +508,8 @@ void NumberFormatterApiTest::unitMeasure() {
// Requires following the alias from unitsNarrow to unitsShort:
assertFormatSingle(
u"Interesting Data Fallback 2",
- NumberFormatter::with().unit(DAY)
- .unitWidth(UNumberUnitWidth::UNUM_UNIT_WIDTH_NARROW),
+ u"measure-unit/duration-day unit-width-narrow",
+ NumberFormatter::with().unit(DAY).unitWidth(UNumberUnitWidth::UNUM_UNIT_WIDTH_NARROW),
Locale::createFromName("brx"),
5.43,
u"5.43 d");
@@ -447,8 +518,8 @@ void NumberFormatterApiTest::unitMeasure() {
// requiring fallback to the root.
assertFormatSingle(
u"Interesting Data Fallback 3",
- NumberFormatter::with().unit(SQUARE_METER)
- .unitWidth(UNumberUnitWidth::UNUM_UNIT_WIDTH_NARROW),
+ u"measure-unit/area-square-meter unit-width-narrow",
+ NumberFormatter::with().unit(SQUARE_METER).unitWidth(UNumberUnitWidth::UNUM_UNIT_WIDTH_NARROW),
Locale::createFromName("en-GB"),
5.43,
u"5.43 m²");
@@ -457,33 +528,32 @@ void NumberFormatterApiTest::unitMeasure() {
// NOTE: This example is in the documentation.
assertFormatSingle(
u"Difference between Narrow and Short (Narrow Version)",
- NumberFormatter::with().unit(FAHRENHEIT)
- .unitWidth(UNUM_UNIT_WIDTH_NARROW),
+ u"measure-unit/temperature-fahrenheit unit-width-narrow",
+ NumberFormatter::with().unit(FAHRENHEIT).unitWidth(UNUM_UNIT_WIDTH_NARROW),
Locale("es-US"),
5.43,
u"5.43°");
assertFormatSingle(
u"Difference between Narrow and Short (Short Version)",
- NumberFormatter::with().unit(FAHRENHEIT)
- .unitWidth(UNUM_UNIT_WIDTH_SHORT),
+ u"measure-unit/temperature-fahrenheit unit-width-short",
+ NumberFormatter::with().unit(FAHRENHEIT).unitWidth(UNUM_UNIT_WIDTH_SHORT),
Locale("es-US"),
5.43,
u"5.43 °F");
assertFormatSingle(
u"MeasureUnit form without {0} in CLDR pattern",
- NumberFormatter::with()
- .unit(KELVIN)
- .unitWidth(UNumberUnitWidth::UNUM_UNIT_WIDTH_FULL_NAME),
+ u"measure-unit/temperature-kelvin unit-width-full-name",
+ NumberFormatter::with().unit(KELVIN).unitWidth(UNumberUnitWidth::UNUM_UNIT_WIDTH_FULL_NAME),
Locale("es-MX"),
1,
u"kelvin");
assertFormatSingle(
u"MeasureUnit form without {0} in CLDR pattern and wide base form",
- NumberFormatter::with()
- .rounding(Rounder::fixedFraction(20))
+ u"measure-unit/temperature-kelvin .00000000000000000000 unit-width-full-name",
+ NumberFormatter::with().precision(Precision::fixedFraction(20))
.unit(KELVIN)
.unitWidth(UNumberUnitWidth::UNUM_UNIT_WIDTH_FULL_NAME),
Locale("es-MX"),
@@ -494,6 +564,7 @@ void NumberFormatterApiTest::unitMeasure() {
void NumberFormatterApiTest::unitCompoundMeasure() {
assertFormatDescending(
u"Meters Per Second Short (unit that simplifies) and perUnit method",
+ u"measure-unit/length-meter per-measure-unit/duration-second",
NumberFormatter::with().unit(METER).perUnit(SECOND),
Locale::getEnglish(),
u"87,650 m/s",
@@ -508,6 +579,7 @@ void NumberFormatterApiTest::unitCompoundMeasure() {
assertFormatDescending(
u"Pounds Per Square Mile Short (secondary unit has per-format) and adoptPerUnit method",
+ u"measure-unit/mass-pound per-measure-unit/area-square-mile",
NumberFormatter::with().unit(POUND).adoptPerUnit(new MeasureUnit(SQUARE_MILE)),
Locale::getEnglish(),
u"87,650 lb/mi²",
@@ -522,6 +594,7 @@ void NumberFormatterApiTest::unitCompoundMeasure() {
assertFormatDescending(
u"Joules Per Furlong Short (unit with no simplifications or special patterns)",
+ u"measure-unit/energy-joule per-measure-unit/length-furlong",
NumberFormatter::with().unit(JOULE).perUnit(FURLONG),
Locale::getEnglish(),
u"87,650 J/fur",
@@ -538,6 +611,7 @@ void NumberFormatterApiTest::unitCompoundMeasure() {
void NumberFormatterApiTest::unitCurrency() {
assertFormatDescending(
u"Currency",
+ u"currency/GBP",
NumberFormatter::with().unit(GBP),
Locale::getEnglish(),
u"£87,650.00",
@@ -552,6 +626,7 @@ void NumberFormatterApiTest::unitCurrency() {
assertFormatDescending(
u"Currency ISO",
+ u"currency/GBP unit-width-iso-code",
NumberFormatter::with().unit(GBP).unitWidth(UNumberUnitWidth::UNUM_UNIT_WIDTH_ISO_CODE),
Locale::getEnglish(),
u"GBP 87,650.00",
@@ -566,6 +641,7 @@ void NumberFormatterApiTest::unitCurrency() {
assertFormatDescending(
u"Currency Long Name",
+ u"currency/GBP unit-width-full-name",
NumberFormatter::with().unit(GBP).unitWidth(UNumberUnitWidth::UNUM_UNIT_WIDTH_FULL_NAME),
Locale::getEnglish(),
u"87,650.00 British pounds",
@@ -580,6 +656,7 @@ void NumberFormatterApiTest::unitCurrency() {
assertFormatDescending(
u"Currency Hidden",
+ u"currency/GBP unit-width-hidden",
NumberFormatter::with().unit(GBP).unitWidth(UNUM_UNIT_WIDTH_HIDDEN),
Locale::getEnglish(),
u"87,650.00",
@@ -609,6 +686,7 @@ void NumberFormatterApiTest::unitCurrency() {
assertFormatSingle(
u"Currency with Negative Sign",
+ u"currency/GBP",
NumberFormatter::with().unit(GBP),
Locale::getEnglish(),
-9876543.21,
@@ -618,6 +696,7 @@ void NumberFormatterApiTest::unitCurrency() {
// NOTE: This example is in the documentation.
assertFormatSingle(
u"Currency Difference between Narrow and Short (Narrow Version)",
+ u"currency/USD unit-width-narrow",
NumberFormatter::with().unit(USD).unitWidth(UNUM_UNIT_WIDTH_NARROW),
Locale("en-CA"),
5.43,
@@ -625,6 +704,7 @@ void NumberFormatterApiTest::unitCurrency() {
assertFormatSingle(
u"Currency Difference between Narrow and Short (Short Version)",
+ u"currency/USD unit-width-short",
NumberFormatter::with().unit(USD).unitWidth(UNUM_UNIT_WIDTH_SHORT),
Locale("en-CA"),
5.43,
@@ -632,6 +712,7 @@ void NumberFormatterApiTest::unitCurrency() {
assertFormatSingle(
u"Currency-dependent format (Control)",
+ u"currency/USD unit-width-short",
NumberFormatter::with().unit(USD).unitWidth(UNUM_UNIT_WIDTH_SHORT),
Locale("ca"),
444444.55,
@@ -639,6 +720,7 @@ void NumberFormatterApiTest::unitCurrency() {
assertFormatSingle(
u"Currency-dependent format (Test)",
+ u"currency/ESP unit-width-short",
NumberFormatter::with().unit(ESP).unitWidth(UNUM_UNIT_WIDTH_SHORT),
Locale("ca"),
444444.55,
@@ -646,6 +728,7 @@ void NumberFormatterApiTest::unitCurrency() {
assertFormatSingle(
u"Currency-dependent symbols (Control)",
+ u"currency/USD unit-width-short",
NumberFormatter::with().unit(USD).unitWidth(UNUM_UNIT_WIDTH_SHORT),
Locale("pt-PT"),
444444.55,
@@ -655,6 +738,7 @@ void NumberFormatterApiTest::unitCurrency() {
// width space), and they set the decimal separator to the $ symbol.
assertFormatSingle(
u"Currency-dependent symbols (Test Short)",
+ u"currency/PTE unit-width-short",
NumberFormatter::with().unit(PTE).unitWidth(UNUM_UNIT_WIDTH_SHORT),
Locale("pt-PT"),
444444.55,
@@ -662,6 +746,7 @@ void NumberFormatterApiTest::unitCurrency() {
assertFormatSingle(
u"Currency-dependent symbols (Test Narrow)",
+ u"currency/PTE unit-width-narrow",
NumberFormatter::with().unit(PTE).unitWidth(UNUM_UNIT_WIDTH_NARROW),
Locale("pt-PT"),
444444.55,
@@ -669,6 +754,7 @@ void NumberFormatterApiTest::unitCurrency() {
assertFormatSingle(
u"Currency-dependent symbols (Test ISO Code)",
+ u"currency/PTE unit-width-iso-code",
NumberFormatter::with().unit(PTE).unitWidth(UNUM_UNIT_WIDTH_ISO_CODE),
Locale("pt-PT"),
444444.55,
@@ -678,6 +764,7 @@ void NumberFormatterApiTest::unitCurrency() {
void NumberFormatterApiTest::unitPercent() {
assertFormatDescending(
u"Percent",
+ u"percent",
NumberFormatter::with().unit(NoUnit::percent()),
Locale::getEnglish(),
u"87,650%",
@@ -692,6 +779,7 @@ void NumberFormatterApiTest::unitPercent() {
assertFormatDescending(
u"Permille",
+ u"permille",
NumberFormatter::with().unit(NoUnit::permille()),
Locale::getEnglish(),
u"87,650‰",
@@ -706,6 +794,7 @@ void NumberFormatterApiTest::unitPercent() {
assertFormatSingle(
u"NoUnit Base",
+ u"base-unit",
NumberFormatter::with().unit(NoUnit::base()),
Locale::getEnglish(),
51423,
@@ -713,6 +802,7 @@ void NumberFormatterApiTest::unitPercent() {
assertFormatSingle(
u"Percent with Negative Sign",
+ u"percent",
NumberFormatter::with().unit(NoUnit::percent()),
Locale::getEnglish(),
-98.7654321,
@@ -722,7 +812,8 @@ void NumberFormatterApiTest::unitPercent() {
void NumberFormatterApiTest::roundingFraction() {
assertFormatDescending(
u"Integer",
- NumberFormatter::with().rounding(Rounder::integer()),
+ u"precision-integer",
+ NumberFormatter::with().precision(Precision::integer()),
Locale::getEnglish(),
u"87,650",
u"8,765",
@@ -736,7 +827,8 @@ void NumberFormatterApiTest::roundingFraction() {
assertFormatDescending(
u"Fixed Fraction",
- NumberFormatter::with().rounding(Rounder::fixedFraction(3)),
+ u".000",
+ NumberFormatter::with().precision(Precision::fixedFraction(3)),
Locale::getEnglish(),
u"87,650.000",
u"8,765.000",
@@ -750,7 +842,8 @@ void NumberFormatterApiTest::roundingFraction() {
assertFormatDescending(
u"Min Fraction",
- NumberFormatter::with().rounding(Rounder::minFraction(1)),
+ u".0+",
+ NumberFormatter::with().precision(Precision::minFraction(1)),
Locale::getEnglish(),
u"87,650.0",
u"8,765.0",
@@ -764,7 +857,8 @@ void NumberFormatterApiTest::roundingFraction() {
assertFormatDescending(
u"Max Fraction",
- NumberFormatter::with().rounding(Rounder::maxFraction(1)),
+ u".#",
+ NumberFormatter::with().precision(Precision::maxFraction(1)),
Locale::getEnglish(),
u"87,650",
u"8,765",
@@ -778,7 +872,8 @@ void NumberFormatterApiTest::roundingFraction() {
assertFormatDescending(
u"Min/Max Fraction",
- NumberFormatter::with().rounding(Rounder::minMaxFraction(1, 3)),
+ u".0##",
+ NumberFormatter::with().precision(Precision::minMaxFraction(1, 3)),
Locale::getEnglish(),
u"87,650.0",
u"8,765.0",
@@ -794,51 +889,76 @@ void NumberFormatterApiTest::roundingFraction() {
void NumberFormatterApiTest::roundingFigures() {
assertFormatSingle(
u"Fixed Significant",
- NumberFormatter::with().rounding(Rounder::fixedDigits(3)),
+ u"@@@",
+ NumberFormatter::with().precision(Precision::fixedSignificantDigits(3)),
Locale::getEnglish(),
-98,
u"-98.0");
assertFormatSingle(
u"Fixed Significant Rounding",
- NumberFormatter::with().rounding(Rounder::fixedDigits(3)),
+ u"@@@",
+ NumberFormatter::with().precision(Precision::fixedSignificantDigits(3)),
Locale::getEnglish(),
-98.7654321,
u"-98.8");
assertFormatSingle(
u"Fixed Significant Zero",
- NumberFormatter::with().rounding(Rounder::fixedDigits(3)),
+ u"@@@",
+ NumberFormatter::with().precision(Precision::fixedSignificantDigits(3)),
Locale::getEnglish(),
0,
u"0.00");
assertFormatSingle(
u"Min Significant",
- NumberFormatter::with().rounding(Rounder::minDigits(2)),
+ u"@@+",
+ NumberFormatter::with().precision(Precision::minSignificantDigits(2)),
Locale::getEnglish(),
-9,
u"-9.0");
assertFormatSingle(
u"Max Significant",
- NumberFormatter::with().rounding(Rounder::maxDigits(4)),
+ u"@###",
+ NumberFormatter::with().precision(Precision::maxSignificantDigits(4)),
Locale::getEnglish(),
98.7654321,
u"98.77");
assertFormatSingle(
u"Min/Max Significant",
- NumberFormatter::with().rounding(Rounder::minMaxDigits(3, 4)),
+ u"@@@#",
+ NumberFormatter::with().precision(Precision::minMaxSignificantDigits(3, 4)),
Locale::getEnglish(),
9.99999,
u"10.0");
+
+ assertFormatSingle(
+ u"Fixed Significant on zero with lots of integer width",
+ u"@ integer-width/+000",
+ NumberFormatter::with().precision(Precision::fixedSignificantDigits(1))
+ .integerWidth(IntegerWidth::zeroFillTo(3)),
+ Locale::getEnglish(),
+ 0,
+ "000");
+
+ assertFormatSingle(
+ u"Fixed Significant on zero with zero integer width",
+ u"@ integer-width/+",
+ NumberFormatter::with().precision(Precision::fixedSignificantDigits(1))
+ .integerWidth(IntegerWidth::zeroFillTo(0)),
+ Locale::getEnglish(),
+ 0,
+ "0");
}
void NumberFormatterApiTest::roundingFractionFigures() {
assertFormatDescending(
u"Basic Significant", // for comparison
- NumberFormatter::with().rounding(Rounder::maxDigits(2)),
+ u"@#",
+ NumberFormatter::with().precision(Precision::maxSignificantDigits(2)),
Locale::getEnglish(),
u"88,000",
u"8,800",
@@ -852,7 +972,8 @@ void NumberFormatterApiTest::roundingFractionFigures() {
assertFormatDescending(
u"FracSig minMaxFrac minSig",
- NumberFormatter::with().rounding(Rounder::minMaxFraction(1, 2).withMinDigits(3)),
+ u".0#/@@@+",
+ NumberFormatter::with().precision(Precision::minMaxFraction(1, 2).withMinDigits(3)),
Locale::getEnglish(),
u"87,650.0",
u"8,765.0",
@@ -866,7 +987,8 @@ void NumberFormatterApiTest::roundingFractionFigures() {
assertFormatDescending(
u"FracSig minMaxFrac maxSig A",
- NumberFormatter::with().rounding(Rounder::minMaxFraction(1, 3).withMaxDigits(2)),
+ u".0##/@#",
+ NumberFormatter::with().precision(Precision::minMaxFraction(1, 3).withMaxDigits(2)),
Locale::getEnglish(),
u"88,000.0", // maxSig beats maxFrac
u"8,800.0", // maxSig beats maxFrac
@@ -880,7 +1002,8 @@ void NumberFormatterApiTest::roundingFractionFigures() {
assertFormatDescending(
u"FracSig minMaxFrac maxSig B",
- NumberFormatter::with().rounding(Rounder::fixedFraction(2).withMaxDigits(2)),
+ u".00/@#",
+ NumberFormatter::with().precision(Precision::fixedFraction(2).withMaxDigits(2)),
Locale::getEnglish(),
u"88,000.00", // maxSig beats maxFrac
u"8,800.00", // maxSig beats maxFrac
@@ -893,15 +1016,17 @@ void NumberFormatterApiTest::roundingFractionFigures() {
u"0.00");
assertFormatSingle(
- "FracSig with trailing zeros A",
- NumberFormatter::with().rounding(Rounder::fixedFraction(2).withMinDigits(3)),
+ u"FracSig with trailing zeros A",
+ u".00/@@@+",
+ NumberFormatter::with().precision(Precision::fixedFraction(2).withMinDigits(3)),
Locale::getEnglish(),
0.1,
u"0.10");
assertFormatSingle(
- "FracSig with trailing zeros B",
- NumberFormatter::with().rounding(Rounder::fixedFraction(2).withMinDigits(3)),
+ u"FracSig with trailing zeros B",
+ u".00/@@@+",
+ NumberFormatter::with().precision(Precision::fixedFraction(2).withMinDigits(3)),
Locale::getEnglish(),
0.0999999,
u"0.10");
@@ -910,7 +1035,8 @@ void NumberFormatterApiTest::roundingFractionFigures() {
void NumberFormatterApiTest::roundingOther() {
assertFormatDescending(
u"Rounding None",
- NumberFormatter::with().rounding(Rounder::unlimited()),
+ u"precision-unlimited",
+ NumberFormatter::with().precision(Precision::unlimited()),
Locale::getEnglish(),
u"87,650",
u"8,765",
@@ -924,7 +1050,8 @@ void NumberFormatterApiTest::roundingOther() {
assertFormatDescending(
u"Increment",
- NumberFormatter::with().rounding(Rounder::increment(0.5).withMinFraction(1)),
+ u"precision-increment/0.5",
+ NumberFormatter::with().precision(Precision::increment(0.5).withMinFraction(1)),
Locale::getEnglish(),
u"87,650.0",
u"8,765.0",
@@ -938,7 +1065,8 @@ void NumberFormatterApiTest::roundingOther() {
assertFormatDescending(
u"Increment with Min Fraction",
- NumberFormatter::with().rounding(Rounder::increment(0.5).withMinFraction(2)),
+ u"precision-increment/0.50",
+ NumberFormatter::with().precision(Precision::increment(0.5).withMinFraction(2)),
Locale::getEnglish(),
u"87,650.00",
u"8,765.00",
@@ -952,7 +1080,8 @@ void NumberFormatterApiTest::roundingOther() {
assertFormatDescending(
u"Currency Standard",
- NumberFormatter::with().rounding(Rounder::currency(UCurrencyUsage::UCURR_USAGE_STANDARD))
+ u"currency/CZK precision-currency-standard",
+ NumberFormatter::with().precision(Precision::currency(UCurrencyUsage::UCURR_USAGE_STANDARD))
.unit(CZK),
Locale::getEnglish(),
u"CZK 87,650.00",
@@ -967,7 +1096,8 @@ void NumberFormatterApiTest::roundingOther() {
assertFormatDescending(
u"Currency Cash",
- NumberFormatter::with().rounding(Rounder::currency(UCurrencyUsage::UCURR_USAGE_CASH))
+ u"currency/CZK precision-currency-cash",
+ NumberFormatter::with().precision(Precision::currency(UCurrencyUsage::UCURR_USAGE_CASH))
.unit(CZK),
Locale::getEnglish(),
u"CZK 87,650",
@@ -982,7 +1112,8 @@ void NumberFormatterApiTest::roundingOther() {
assertFormatDescending(
u"Currency Cash with Nickel Rounding",
- NumberFormatter::with().rounding(Rounder::currency(UCurrencyUsage::UCURR_USAGE_CASH))
+ u"currency/CAD precision-currency-cash",
+ NumberFormatter::with().precision(Precision::currency(UCurrencyUsage::UCURR_USAGE_CASH))
.unit(CAD),
Locale::getEnglish(),
u"CA$87,650.00",
@@ -997,8 +1128,9 @@ void NumberFormatterApiTest::roundingOther() {
assertFormatDescending(
u"Currency not in top-level fluent chain",
- NumberFormatter::with().rounding(
- Rounder::currency(UCurrencyUsage::UCURR_USAGE_CASH).withCurrency(CZK)),
+ u"precision-integer", // calling .withCurrency() applies currency rounding rules immediately
+ NumberFormatter::with().precision(
+ Precision::currency(UCurrencyUsage::UCURR_USAGE_CASH).withCurrency(CZK)),
Locale::getEnglish(),
u"87,650",
u"8,765",
@@ -1013,7 +1145,8 @@ void NumberFormatterApiTest::roundingOther() {
// NOTE: Other tests cover the behavior of the other rounding modes.
assertFormatDescending(
u"Rounding Mode CEILING",
- NumberFormatter::with().rounding(Rounder::integer().withMode(UNumberFormatRoundingMode::UNUM_ROUND_CEILING)),
+ u"precision-integer rounding-mode-ceiling",
+ NumberFormatter::with().precision(Precision::integer()).roundingMode(UNUM_ROUND_CEILING),
Locale::getEnglish(),
u"87,650",
u"8,765",
@@ -1029,6 +1162,7 @@ void NumberFormatterApiTest::roundingOther() {
void NumberFormatterApiTest::grouping() {
assertFormatDescendingBig(
u"Western Grouping",
+ u"group-auto",
NumberFormatter::with().grouping(UNUM_GROUPING_AUTO),
Locale::getEnglish(),
u"87,650,000",
@@ -1043,6 +1177,7 @@ void NumberFormatterApiTest::grouping() {
assertFormatDescendingBig(
u"Indic Grouping",
+ u"group-auto",
NumberFormatter::with().grouping(UNUM_GROUPING_AUTO),
Locale("en-IN"),
u"8,76,50,000",
@@ -1056,7 +1191,8 @@ void NumberFormatterApiTest::grouping() {
u"0");
assertFormatDescendingBig(
- u"Western Grouping, Wide",
+ u"Western Grouping, Min 2",
+ u"group-min2",
NumberFormatter::with().grouping(UNUM_GROUPING_MIN2),
Locale::getEnglish(),
u"87,650,000",
@@ -1070,7 +1206,8 @@ void NumberFormatterApiTest::grouping() {
u"0");
assertFormatDescendingBig(
- u"Indic Grouping, Wide",
+ u"Indic Grouping, Min 2",
+ u"group-min2",
NumberFormatter::with().grouping(UNUM_GROUPING_MIN2),
Locale("en-IN"),
u"8,76,50,000",
@@ -1085,6 +1222,7 @@ void NumberFormatterApiTest::grouping() {
assertFormatDescendingBig(
u"No Grouping",
+ u"group-off",
NumberFormatter::with().grouping(UNUM_GROUPING_OFF),
Locale("en-IN"),
u"87650000",
@@ -1099,6 +1237,7 @@ void NumberFormatterApiTest::grouping() {
assertFormatDescendingBig(
u"Indic locale with THOUSANDS grouping",
+ u"group-thousands",
NumberFormatter::with().grouping(UNUM_GROUPING_THOUSANDS),
Locale("en-IN"),
u"87,650,000",
@@ -1115,6 +1254,7 @@ void NumberFormatterApiTest::grouping() {
// If this test breaks due to data changes, find another locale that has minimumGroupingDigits.
assertFormatDescendingBig(
u"Hungarian Grouping",
+ u"group-auto",
NumberFormatter::with().grouping(UNUM_GROUPING_AUTO),
Locale("hu"),
u"87 650 000",
@@ -1129,6 +1269,7 @@ void NumberFormatterApiTest::grouping() {
assertFormatDescendingBig(
u"Hungarian Grouping, Min 2",
+ u"group-min2",
NumberFormatter::with().grouping(UNUM_GROUPING_MIN2),
Locale("hu"),
u"87 650 000",
@@ -1143,6 +1284,7 @@ void NumberFormatterApiTest::grouping() {
assertFormatDescendingBig(
u"Hungarian Grouping, Always",
+ u"group-on-aligned",
NumberFormatter::with().grouping(UNUM_GROUPING_ON_ALIGNED),
Locale("hu"),
u"87 650 000",
@@ -1159,6 +1301,7 @@ void NumberFormatterApiTest::grouping() {
// If this test breaks due to data changes, find another locale that has no default grouping.
assertFormatDescendingBig(
u"Bulgarian Currency Grouping",
+ u"currency/USD group-auto",
NumberFormatter::with().grouping(UNUM_GROUPING_AUTO).unit(USD),
Locale("bg"),
u"87650000,00 щ.д.",
@@ -1173,6 +1316,7 @@ void NumberFormatterApiTest::grouping() {
assertFormatDescendingBig(
u"Bulgarian Currency Grouping, Always",
+ u"currency/USD group-on-aligned",
NumberFormatter::with().grouping(UNUM_GROUPING_ON_ALIGNED).unit(USD),
Locale("bg"),
u"87 650 000,00 щ.д.",
@@ -1185,27 +1329,28 @@ void NumberFormatterApiTest::grouping() {
u"8,76 щ.д.",
u"0,00 щ.д.");
- // TODO: Enable this test when macro-setter is available in C++
- // MacroProps macros;
- // macros.grouping = Grouper(4, 1, 3);
- // assertFormatDescendingBig(
- // u"Custom Grouping via Internal API",
- // NumberFormatter::with().macros(macros),
- // Locale::getEnglish(),
- // u"8,7,6,5,0000",
- // u"8,7,6,5000",
- // u"876500",
- // u"87650",
- // u"8765",
- // u"876.5",
- // u"87.65",
- // u"8.765",
- // u"0");
+ MacroProps macros;
+ macros.grouper = Grouper(4, 1, 3, UNUM_GROUPING_COUNT);
+ assertFormatDescendingBig(
+ u"Custom Grouping via Internal API",
+ nullptr,
+ NumberFormatter::with().macros(macros),
+ Locale::getEnglish(),
+ u"8,7,6,5,0000",
+ u"8,7,6,5000",
+ u"876500",
+ u"87650",
+ u"8765",
+ u"876.5",
+ u"87.65",
+ u"8.765",
+ u"0");
}
void NumberFormatterApiTest::padding() {
assertFormatDescending(
u"Padding",
+ nullptr,
NumberFormatter::with().padding(Padder::none()),
Locale::getEnglish(),
u"87,650",
@@ -1220,6 +1365,7 @@ void NumberFormatterApiTest::padding() {
assertFormatDescending(
u"Padding",
+ nullptr,
NumberFormatter::with().padding(
Padder::codePoints(
'*', 8, PadPosition::UNUM_PAD_AFTER_PREFIX)),
@@ -1236,6 +1382,7 @@ void NumberFormatterApiTest::padding() {
assertFormatDescending(
u"Padding with code points",
+ nullptr,
NumberFormatter::with().padding(
Padder::codePoints(
0x101E4, 8, PadPosition::UNUM_PAD_AFTER_PREFIX)),
@@ -1252,6 +1399,7 @@ void NumberFormatterApiTest::padding() {
assertFormatDescending(
u"Padding with wide digits",
+ nullptr,
NumberFormatter::with().padding(
Padder::codePoints(
'*', 8, PadPosition::UNUM_PAD_AFTER_PREFIX))
@@ -1269,6 +1417,7 @@ void NumberFormatterApiTest::padding() {
assertFormatDescending(
u"Padding with currency spacing",
+ nullptr,
NumberFormatter::with().padding(
Padder::codePoints(
'*', 10, PadPosition::UNUM_PAD_AFTER_PREFIX))
@@ -1287,6 +1436,7 @@ void NumberFormatterApiTest::padding() {
assertFormatSingle(
u"Pad Before Prefix",
+ nullptr,
NumberFormatter::with().padding(
Padder::codePoints(
'*', 8, PadPosition::UNUM_PAD_BEFORE_PREFIX)),
@@ -1296,6 +1446,7 @@ void NumberFormatterApiTest::padding() {
assertFormatSingle(
u"Pad After Prefix",
+ nullptr,
NumberFormatter::with().padding(
Padder::codePoints(
'*', 8, PadPosition::UNUM_PAD_AFTER_PREFIX)),
@@ -1305,6 +1456,7 @@ void NumberFormatterApiTest::padding() {
assertFormatSingle(
u"Pad Before Suffix",
+ nullptr,
NumberFormatter::with().padding(
Padder::codePoints(
'*', 8, PadPosition::UNUM_PAD_BEFORE_SUFFIX)).unit(NoUnit::percent()),
@@ -1314,6 +1466,7 @@ void NumberFormatterApiTest::padding() {
assertFormatSingle(
u"Pad After Suffix",
+ nullptr,
NumberFormatter::with().padding(
Padder::codePoints(
'*', 8, PadPosition::UNUM_PAD_AFTER_SUFFIX)).unit(NoUnit::percent()),
@@ -1323,6 +1476,7 @@ void NumberFormatterApiTest::padding() {
assertFormatSingle(
u"Currency Spacing with Zero Digit Padding Broken",
+ nullptr,
NumberFormatter::with().padding(
Padder::codePoints(
'0', 12, PadPosition::UNUM_PAD_AFTER_PREFIX))
@@ -1336,6 +1490,7 @@ void NumberFormatterApiTest::padding() {
void NumberFormatterApiTest::integerWidth() {
assertFormatDescending(
u"Integer Width Default",
+ u"integer-width/+0",
NumberFormatter::with().integerWidth(IntegerWidth::zeroFillTo(1)),
Locale::getEnglish(),
u"87,650",
@@ -1350,6 +1505,7 @@ void NumberFormatterApiTest::integerWidth() {
assertFormatDescending(
u"Integer Width Zero Fill 0",
+ u"integer-width/+",
NumberFormatter::with().integerWidth(IntegerWidth::zeroFillTo(0)),
Locale::getEnglish(),
u"87,650",
@@ -1364,6 +1520,7 @@ void NumberFormatterApiTest::integerWidth() {
assertFormatDescending(
u"Integer Width Zero Fill 3",
+ u"integer-width/+000",
NumberFormatter::with().integerWidth(IntegerWidth::zeroFillTo(3)),
Locale::getEnglish(),
u"87,650",
@@ -1378,6 +1535,7 @@ void NumberFormatterApiTest::integerWidth() {
assertFormatDescending(
u"Integer Width Max 3",
+ u"integer-width/##0",
NumberFormatter::with().integerWidth(IntegerWidth::zeroFillTo(1).truncateAt(3)),
Locale::getEnglish(),
u"650",
@@ -1392,6 +1550,7 @@ void NumberFormatterApiTest::integerWidth() {
assertFormatDescending(
u"Integer Width Fixed 2",
+ u"integer-width/00",
NumberFormatter::with().integerWidth(IntegerWidth::zeroFillTo(2).truncateAt(2)),
Locale::getEnglish(),
u"50",
@@ -1408,10 +1567,11 @@ void NumberFormatterApiTest::integerWidth() {
void NumberFormatterApiTest::symbols() {
assertFormatDescending(
u"French Symbols with Japanese Data 1",
+ nullptr,
NumberFormatter::with().symbols(FRENCH_SYMBOLS),
Locale::getJapan(),
- u"87 650",
- u"8 765",
+ u"87\u202F650",
+ u"8\u202F765",
u"876,5",
u"87,65",
u"8,765",
@@ -1422,6 +1582,7 @@ void NumberFormatterApiTest::symbols() {
assertFormatSingle(
u"French Symbols with Japanese Data 2",
+ nullptr,
NumberFormatter::with().notation(Notation::compactShort()).symbols(FRENCH_SYMBOLS),
Locale::getJapan(),
12345,
@@ -1429,6 +1590,7 @@ void NumberFormatterApiTest::symbols() {
assertFormatDescending(
u"Latin Numbering System with Arabic Data",
+ u"currency/USD latin",
NumberFormatter::with().adoptSymbols(new NumberingSystem(LATN)).unit(USD),
Locale("ar"),
u"US$ 87,650.00",
@@ -1443,10 +1605,11 @@ void NumberFormatterApiTest::symbols() {
assertFormatDescending(
u"Math Numbering System with French Data",
+ u"numbering-system/mathsanb",
NumberFormatter::with().adoptSymbols(new NumberingSystem(MATHSANB)),
Locale::getFrench(),
- u"𝟴𝟳 𝟲𝟱𝟬",
- u"𝟴 𝟳𝟲𝟱",
+ u"𝟴𝟳\u202F𝟲𝟱𝟬",
+ u"𝟴\u202F𝟳𝟲𝟱",
u"𝟴𝟳𝟲,𝟱",
u"𝟴𝟳,𝟲𝟱",
u"𝟴,𝟳𝟲𝟱",
@@ -1457,6 +1620,7 @@ void NumberFormatterApiTest::symbols() {
assertFormatSingle(
u"Swiss Symbols (used in documentation)",
+ nullptr,
NumberFormatter::with().symbols(SWISS_SYMBOLS),
Locale::getEnglish(),
12345.67,
@@ -1464,6 +1628,7 @@ void NumberFormatterApiTest::symbols() {
assertFormatSingle(
u"Myanmar Symbols (used in documentation)",
+ nullptr,
NumberFormatter::with().symbols(MYANMAR_SYMBOLS),
Locale::getEnglish(),
12345.67,
@@ -1473,6 +1638,7 @@ void NumberFormatterApiTest::symbols() {
assertFormatSingle(
u"Currency symbol should precede number in ar with NS latn",
+ u"currency/USD latin",
NumberFormatter::with().adoptSymbols(new NumberingSystem(LATN)).unit(USD),
Locale("ar"),
12345.67,
@@ -1480,6 +1646,7 @@ void NumberFormatterApiTest::symbols() {
assertFormatSingle(
u"Currency symbol should precede number in ar@numbers=latn",
+ u"currency/USD",
NumberFormatter::with().unit(USD),
Locale("ar@numbers=latn"),
12345.67,
@@ -1487,6 +1654,7 @@ void NumberFormatterApiTest::symbols() {
assertFormatSingle(
u"Currency symbol should follow number in ar-EG with NS arab",
+ u"currency/USD",
NumberFormatter::with().unit(USD),
Locale("ar-EG"),
12345.67,
@@ -1494,6 +1662,7 @@ void NumberFormatterApiTest::symbols() {
assertFormatSingle(
u"Currency symbol should follow number in ar@numbers=arab",
+ u"currency/USD",
NumberFormatter::with().unit(USD),
Locale("ar@numbers=arab"),
12345.67,
@@ -1501,28 +1670,30 @@ void NumberFormatterApiTest::symbols() {
assertFormatSingle(
u"NumberingSystem in API should win over @numbers keyword",
+ u"currency/USD latin",
NumberFormatter::with().adoptSymbols(new NumberingSystem(LATN)).unit(USD),
Locale("ar@numbers=arab"),
12345.67,
u"US$ 12,345.67");
UErrorCode status = U_ZERO_ERROR;
- assertEquals("NumberingSystem in API should win over @numbers keyword in reverse order",
+ assertEquals(
+ "NumberingSystem in API should win over @numbers keyword in reverse order",
u"US$ 12,345.67",
- NumberFormatter::withLocale(Locale("ar@numbers=arab"))
- .adoptSymbols(new NumberingSystem(LATN))
- .unit(USD)
- .formatDouble(12345.67, status)
- .toString());
+ NumberFormatter::withLocale(Locale("ar@numbers=arab")).adoptSymbols(new NumberingSystem(LATN))
+ .unit(USD)
+ .formatDouble(12345.67, status)
+ .toString());
DecimalFormatSymbols symbols = SWISS_SYMBOLS;
UnlocalizedNumberFormatter f = NumberFormatter::with().symbols(symbols);
symbols.setSymbol(DecimalFormatSymbols::ENumberFormatSymbol::kGroupingSeparatorSymbol, u"!", status);
assertFormatSingle(
- u"Symbols object should be copied", f, Locale::getEnglish(), 12345.67, u"12’345.67");
+ u"Symbols object should be copied", nullptr, f, Locale::getEnglish(), 12345.67, u"12’345.67");
assertFormatSingle(
u"The last symbols setter wins",
+ u"latin",
NumberFormatter::with().symbols(symbols).adoptSymbols(new NumberingSystem(LATN)),
Locale::getEnglish(),
12345.67,
@@ -1530,6 +1701,7 @@ void NumberFormatterApiTest::symbols() {
assertFormatSingle(
u"The last symbols setter wins",
+ nullptr,
NumberFormatter::with().adoptSymbols(new NumberingSystem(LATN)).symbols(symbols),
Locale::getEnglish(),
12345.67,
@@ -1552,6 +1724,7 @@ void NumberFormatterApiTest::symbols() {
void NumberFormatterApiTest::sign() {
assertFormatSingle(
u"Sign Auto Positive",
+ u"sign-auto",
NumberFormatter::with().sign(UNumberSignDisplay::UNUM_SIGN_AUTO),
Locale::getEnglish(),
444444,
@@ -1559,6 +1732,7 @@ void NumberFormatterApiTest::sign() {
assertFormatSingle(
u"Sign Auto Negative",
+ u"sign-auto",
NumberFormatter::with().sign(UNumberSignDisplay::UNUM_SIGN_AUTO),
Locale::getEnglish(),
-444444,
@@ -1566,6 +1740,7 @@ void NumberFormatterApiTest::sign() {
assertFormatSingle(
u"Sign Auto Zero",
+ u"sign-auto",
NumberFormatter::with().sign(UNumberSignDisplay::UNUM_SIGN_AUTO),
Locale::getEnglish(),
0,
@@ -1573,6 +1748,7 @@ void NumberFormatterApiTest::sign() {
assertFormatSingle(
u"Sign Always Positive",
+ u"sign-always",
NumberFormatter::with().sign(UNumberSignDisplay::UNUM_SIGN_ALWAYS),
Locale::getEnglish(),
444444,
@@ -1580,6 +1756,7 @@ void NumberFormatterApiTest::sign() {
assertFormatSingle(
u"Sign Always Negative",
+ u"sign-always",
NumberFormatter::with().sign(UNumberSignDisplay::UNUM_SIGN_ALWAYS),
Locale::getEnglish(),
-444444,
@@ -1587,6 +1764,7 @@ void NumberFormatterApiTest::sign() {
assertFormatSingle(
u"Sign Always Zero",
+ u"sign-always",
NumberFormatter::with().sign(UNumberSignDisplay::UNUM_SIGN_ALWAYS),
Locale::getEnglish(),
0,
@@ -1594,6 +1772,7 @@ void NumberFormatterApiTest::sign() {
assertFormatSingle(
u"Sign Never Positive",
+ u"sign-never",
NumberFormatter::with().sign(UNumberSignDisplay::UNUM_SIGN_NEVER),
Locale::getEnglish(),
444444,
@@ -1601,6 +1780,7 @@ void NumberFormatterApiTest::sign() {
assertFormatSingle(
u"Sign Never Negative",
+ u"sign-never",
NumberFormatter::with().sign(UNumberSignDisplay::UNUM_SIGN_NEVER),
Locale::getEnglish(),
-444444,
@@ -1608,6 +1788,7 @@ void NumberFormatterApiTest::sign() {
assertFormatSingle(
u"Sign Never Zero",
+ u"sign-never",
NumberFormatter::with().sign(UNumberSignDisplay::UNUM_SIGN_NEVER),
Locale::getEnglish(),
0,
@@ -1615,6 +1796,7 @@ void NumberFormatterApiTest::sign() {
assertFormatSingle(
u"Sign Accounting Positive",
+ u"currency/USD sign-accounting",
NumberFormatter::with().sign(UNumberSignDisplay::UNUM_SIGN_ACCOUNTING).unit(USD),
Locale::getEnglish(),
444444,
@@ -1622,6 +1804,7 @@ void NumberFormatterApiTest::sign() {
assertFormatSingle(
u"Sign Accounting Negative",
+ u"currency/USD sign-accounting",
NumberFormatter::with().sign(UNumberSignDisplay::UNUM_SIGN_ACCOUNTING).unit(USD),
Locale::getEnglish(),
-444444,
@@ -1629,6 +1812,7 @@ void NumberFormatterApiTest::sign() {
assertFormatSingle(
u"Sign Accounting Zero",
+ u"currency/USD sign-accounting",
NumberFormatter::with().sign(UNumberSignDisplay::UNUM_SIGN_ACCOUNTING).unit(USD),
Locale::getEnglish(),
0,
@@ -1636,6 +1820,7 @@ void NumberFormatterApiTest::sign() {
assertFormatSingle(
u"Sign Accounting-Always Positive",
+ u"currency/USD sign-accounting-always",
NumberFormatter::with().sign(UNumberSignDisplay::UNUM_SIGN_ACCOUNTING_ALWAYS).unit(USD),
Locale::getEnglish(),
444444,
@@ -1643,6 +1828,7 @@ void NumberFormatterApiTest::sign() {
assertFormatSingle(
u"Sign Accounting-Always Negative",
+ u"currency/USD sign-accounting-always",
NumberFormatter::with().sign(UNumberSignDisplay::UNUM_SIGN_ACCOUNTING_ALWAYS).unit(USD),
Locale::getEnglish(),
-444444,
@@ -1650,6 +1836,7 @@ void NumberFormatterApiTest::sign() {
assertFormatSingle(
u"Sign Accounting-Always Zero",
+ u"currency/USD sign-accounting-always",
NumberFormatter::with().sign(UNumberSignDisplay::UNUM_SIGN_ACCOUNTING_ALWAYS).unit(USD),
Locale::getEnglish(),
0,
@@ -1657,6 +1844,7 @@ void NumberFormatterApiTest::sign() {
assertFormatSingle(
u"Sign Except-Zero Positive",
+ u"sign-except-zero",
NumberFormatter::with().sign(UNumberSignDisplay::UNUM_SIGN_EXCEPT_ZERO),
Locale::getEnglish(),
444444,
@@ -1664,6 +1852,7 @@ void NumberFormatterApiTest::sign() {
assertFormatSingle(
u"Sign Except-Zero Negative",
+ u"sign-except-zero",
NumberFormatter::with().sign(UNumberSignDisplay::UNUM_SIGN_EXCEPT_ZERO),
Locale::getEnglish(),
-444444,
@@ -1671,6 +1860,7 @@ void NumberFormatterApiTest::sign() {
assertFormatSingle(
u"Sign Except-Zero Zero",
+ u"sign-except-zero",
NumberFormatter::with().sign(UNumberSignDisplay::UNUM_SIGN_EXCEPT_ZERO),
Locale::getEnglish(),
0,
@@ -1678,6 +1868,7 @@ void NumberFormatterApiTest::sign() {
assertFormatSingle(
u"Sign Accounting-Except-Zero Positive",
+ u"currency/USD sign-accounting-except-zero",
NumberFormatter::with().sign(UNumberSignDisplay::UNUM_SIGN_ACCOUNTING_EXCEPT_ZERO).unit(USD),
Locale::getEnglish(),
444444,
@@ -1685,6 +1876,7 @@ void NumberFormatterApiTest::sign() {
assertFormatSingle(
u"Sign Accounting-Except-Zero Negative",
+ u"currency/USD sign-accounting-except-zero",
NumberFormatter::with().sign(UNumberSignDisplay::UNUM_SIGN_ACCOUNTING_EXCEPT_ZERO).unit(USD),
Locale::getEnglish(),
-444444,
@@ -1692,6 +1884,7 @@ void NumberFormatterApiTest::sign() {
assertFormatSingle(
u"Sign Accounting-Except-Zero Zero",
+ u"currency/USD sign-accounting-except-zero",
NumberFormatter::with().sign(UNumberSignDisplay::UNUM_SIGN_ACCOUNTING_EXCEPT_ZERO).unit(USD),
Locale::getEnglish(),
0,
@@ -1699,6 +1892,7 @@ void NumberFormatterApiTest::sign() {
assertFormatSingle(
u"Sign Accounting Negative Hidden",
+ u"currency/USD unit-width-hidden sign-accounting",
NumberFormatter::with().sign(UNumberSignDisplay::UNUM_SIGN_ACCOUNTING)
.unit(USD)
.unitWidth(UNUM_UNIT_WIDTH_HIDDEN),
@@ -1710,6 +1904,7 @@ void NumberFormatterApiTest::sign() {
void NumberFormatterApiTest::decimal() {
assertFormatDescending(
u"Decimal Default",
+ u"decimal-auto",
NumberFormatter::with().decimal(UNumberDecimalSeparatorDisplay::UNUM_DECIMAL_SEPARATOR_AUTO),
Locale::getEnglish(),
u"87,650",
@@ -1724,6 +1919,7 @@ void NumberFormatterApiTest::decimal() {
assertFormatDescending(
u"Decimal Always Shown",
+ u"decimal-always",
NumberFormatter::with().decimal(UNumberDecimalSeparatorDisplay::UNUM_DECIMAL_SEPARATOR_ALWAYS),
Locale::getEnglish(),
u"87,650.",
@@ -1737,51 +1933,365 @@ void NumberFormatterApiTest::decimal() {
u"0.");
}
+void NumberFormatterApiTest::scale() {
+ assertFormatDescending(
+ u"Multiplier None",
+ u"scale/1",
+ NumberFormatter::with().scale(Scale::none()),
+ Locale::getEnglish(),
+ u"87,650",
+ u"8,765",
+ u"876.5",
+ u"87.65",
+ u"8.765",
+ u"0.8765",
+ u"0.08765",
+ u"0.008765",
+ u"0");
+
+ assertFormatDescending(
+ u"Multiplier Power of Ten",
+ u"scale/1000000",
+ NumberFormatter::with().scale(Scale::powerOfTen(6)),
+ Locale::getEnglish(),
+ u"87,650,000,000",
+ u"8,765,000,000",
+ u"876,500,000",
+ u"87,650,000",
+ u"8,765,000",
+ u"876,500",
+ u"87,650",
+ u"8,765",
+ u"0");
+
+ assertFormatDescending(
+ u"Multiplier Arbitrary Double",
+ u"scale/5.2",
+ NumberFormatter::with().scale(Scale::byDouble(5.2)),
+ Locale::getEnglish(),
+ u"455,780",
+ u"45,578",
+ u"4,557.8",
+ u"455.78",
+ u"45.578",
+ u"4.5578",
+ u"0.45578",
+ u"0.045578",
+ u"0");
+
+ assertFormatDescending(
+ u"Multiplier Arbitrary BigDecimal",
+ u"scale/5.2",
+ NumberFormatter::with().scale(Scale::byDecimal({"5.2", -1})),
+ Locale::getEnglish(),
+ u"455,780",
+ u"45,578",
+ u"4,557.8",
+ u"455.78",
+ u"45.578",
+ u"4.5578",
+ u"0.45578",
+ u"0.045578",
+ u"0");
+
+ assertFormatDescending(
+ u"Multiplier Arbitrary Double And Power Of Ten",
+ u"scale/5200",
+ NumberFormatter::with().scale(Scale::byDoubleAndPowerOfTen(5.2, 3)),
+ Locale::getEnglish(),
+ u"455,780,000",
+ u"45,578,000",
+ u"4,557,800",
+ u"455,780",
+ u"45,578",
+ u"4,557.8",
+ u"455.78",
+ u"45.578",
+ u"0");
+
+ assertFormatDescending(
+ u"Multiplier Zero",
+ u"scale/0",
+ NumberFormatter::with().scale(Scale::byDouble(0)),
+ Locale::getEnglish(),
+ u"0",
+ u"0",
+ u"0",
+ u"0",
+ u"0",
+ u"0",
+ u"0",
+ u"0",
+ u"0");
+
+ assertFormatSingle(
+ u"Multiplier Skeleton Scientific Notation and Percent",
+ u"percent scale/1E2",
+ NumberFormatter::with().unit(NoUnit::percent()).scale(Scale::powerOfTen(2)),
+ Locale::getEnglish(),
+ 0.5,
+ u"50%");
+
+ assertFormatSingle(
+ u"Negative Multiplier",
+ u"scale/-5.2",
+ NumberFormatter::with().scale(Scale::byDouble(-5.2)),
+ Locale::getEnglish(),
+ 2,
+ u"-10.4");
+
+ assertFormatSingle(
+ u"Negative One Multiplier",
+ u"scale/-1",
+ NumberFormatter::with().scale(Scale::byDouble(-1)),
+ Locale::getEnglish(),
+ 444444,
+ u"-444,444");
+
+ assertFormatSingle(
+ u"Two-Type Multiplier with Overlap",
+ u"scale/10000",
+ NumberFormatter::with().scale(Scale::byDoubleAndPowerOfTen(100, 2)),
+ Locale::getEnglish(),
+ 2,
+ u"20,000");
+}
+
void NumberFormatterApiTest::locale() {
// Coverage for the locale setters.
UErrorCode status = U_ZERO_ERROR;
UnicodeString actual = NumberFormatter::withLocale(Locale::getFrench()).formatInt(1234, status)
.toString();
- assertEquals("Locale withLocale()", u"1 234", actual);
+ assertEquals("Locale withLocale()", u"1\u202f234", actual);
}
void NumberFormatterApiTest::formatTypes() {
UErrorCode status = U_ZERO_ERROR;
LocalizedNumberFormatter formatter = NumberFormatter::withLocale(Locale::getEnglish());
- const char* str1 = "98765432123456789E1";
- UnicodeString actual = formatter.formatDecimal(str1, status).toString();
+
+ // Double
+ assertEquals("Format double", "514.23", formatter.formatDouble(514.23, status).toString());
+
+ // Int64
+ assertEquals("Format int64", "51,423", formatter.formatDouble(51423L, status).toString());
+
+ // decNumber
+ UnicodeString actual = formatter.formatDecimal("98765432123456789E1", status).toString();
assertEquals("Format decNumber", u"987,654,321,234,567,890", actual);
-}
-void NumberFormatterApiTest::errors() {
- LocalizedNumberFormatter lnf = NumberFormatter::withLocale(Locale::getEnglish()).rounding(
- Rounder::fixedFraction(
- -1));
+ // Also test proper DecimalQuantity bytes storage when all digits are in the fraction.
+ // The number needs to have exactly 40 digits, which is the size of the default buffer.
+ // (issue discovered by the address sanitizer in C++)
+ static const char* str = "0.009876543210987654321098765432109876543211";
+ actual = formatter.precision(Precision::unlimited()).formatDecimal(str, status).toString();
+ assertEquals("Format decNumber to 40 digits", str, actual);
+}
- {
- UErrorCode status1 = U_ZERO_ERROR;
- UErrorCode status2 = U_ZERO_ERROR;
- FormattedNumber fn = lnf.formatInt(1, status1);
+void NumberFormatterApiTest::fieldPosition() {
+ IcuTestErrorCode status(*this, "fieldPosition");
+ FormattedNumber fmtd = NumberFormatter::withLocale("en").formatDouble(-9876543210.12, status);
+ assertEquals("Should have expected format output", u"-9,876,543,210.12", fmtd.toString(status));
+
+ static const UFieldPosition expectedFieldPositions[] = {
+ // field, begin index, end index
+ {UNUM_SIGN_FIELD, 0, 1},
+ {UNUM_GROUPING_SEPARATOR_FIELD, 2, 3},
+ {UNUM_GROUPING_SEPARATOR_FIELD, 6, 7},
+ {UNUM_GROUPING_SEPARATOR_FIELD, 10, 11},
+ {UNUM_INTEGER_FIELD, 1, 14},
+ {UNUM_DECIMAL_SEPARATOR_FIELD, 14, 15},
+ {UNUM_FRACTION_FIELD, 15, 17}};
+
+ FieldPositionIterator fpi;
+ fmtd.getAllFieldPositions(fpi, status);
+ int32_t i = 0;
+ FieldPosition actual;
+ while (fpi.next(actual)) {
+ UFieldPosition expected = expectedFieldPositions[i++];
+ assertEquals(
+ UnicodeString(u"Field, case #") + Int64ToUnicodeString(i),
+ expected.field,
+ actual.getField());
assertEquals(
- "Should fail since rounder is not legal",
- U_NUMBER_ARG_OUTOFBOUNDS_ERROR,
- status1);
- FieldPosition fp;
- fn.populateFieldPosition(fp, status2);
+ UnicodeString(u"Iterator, begin index, case #") + Int64ToUnicodeString(i),
+ expected.beginIndex,
+ actual.getBeginIndex());
assertEquals(
- "Should fail on terminal method",
- U_NUMBER_ARG_OUTOFBOUNDS_ERROR,
- status2);
+ UnicodeString(u"Iterator, end index, case #") + Int64ToUnicodeString(i),
+ expected.endIndex,
+ actual.getEndIndex());
+
+ // Check for the first location of the field
+ if (expected.field != UNUM_GROUPING_SEPARATOR_FIELD) {
+ FieldPosition actual2(expected.field);
+ UBool found = fmtd.nextFieldPosition(actual2, status);
+ assertEquals(
+ UnicodeString(u"Next, found first time, case #") + Int64ToUnicodeString(i),
+ (UBool) TRUE,
+ found);
+ assertEquals(
+ UnicodeString(u"Next, begin index, case #") + Int64ToUnicodeString(i),
+ expected.beginIndex,
+ actual2.getBeginIndex());
+ assertEquals(
+ UnicodeString(u"Next, end index, case #") + Int64ToUnicodeString(i),
+ expected.endIndex,
+ actual2.getEndIndex());
+ found = fmtd.nextFieldPosition(actual2, status);
+ assertEquals(
+ UnicodeString(u"Next, found second time, case #") + Int64ToUnicodeString(i),
+ (UBool) FALSE,
+ found);
+ }
}
-
- {
- UErrorCode status = U_ZERO_ERROR;
- lnf.copyErrorTo(status);
+ assertEquals(
+ "Should have seen every field position",
+ sizeof(expectedFieldPositions) / sizeof(*expectedFieldPositions),
+ i);
+
+ // Test the iteration functionality of nextFieldPosition
+ actual = {UNUM_GROUPING_SEPARATOR_FIELD};
+ i = 1;
+ while (fmtd.nextFieldPosition(actual, status)) {
+ UFieldPosition expected = expectedFieldPositions[i++];
+ assertEquals(
+ UnicodeString(u"Next for grouping, field, case #") + Int64ToUnicodeString(i),
+ expected.field,
+ actual.getField());
assertEquals(
- "Should fail since rounder is not legal",
- U_NUMBER_ARG_OUTOFBOUNDS_ERROR,
- status);
+ UnicodeString(u"Next for grouping, begin index, case #") + Int64ToUnicodeString(i),
+ expected.beginIndex,
+ actual.getBeginIndex());
+ assertEquals(
+ UnicodeString(u"Next for grouping, end index, case #") + Int64ToUnicodeString(i),
+ expected.endIndex,
+ actual.getEndIndex());
}
+ assertEquals(u"Should have seen all grouping separators", 4, i);
+
+ // Make sure strings without fraction do not contain fraction field
+ actual = {UNUM_FRACTION_FIELD};
+ fmtd = NumberFormatter::withLocale("en").formatInt(5, status);
+ assertFalse(u"No fraction part in an integer", fmtd.nextFieldPosition(actual, status));
+}
+
+void NumberFormatterApiTest::toFormat() {
+ IcuTestErrorCode status(*this, "icuFormat");
+ LocalizedNumberFormatter lnf = NumberFormatter::withLocale("fr")
+ .precision(Precision::fixedFraction(3));
+ LocalPointer<Format> format(lnf.toFormat(status), status);
+ FieldPosition fpos(UNUM_DECIMAL_SEPARATOR_FIELD);
+ UnicodeString sb;
+ format->format(514.23, sb, fpos, status);
+ assertEquals("Should correctly format number", u"514,230", sb);
+ assertEquals("Should find decimal separator", 3, fpos.getBeginIndex());
+ assertEquals("Should find end of decimal separator", 4, fpos.getEndIndex());
+ assertEquals(
+ "ICU Format should round-trip",
+ lnf.toSkeleton(status),
+ dynamic_cast<LocalizedNumberFormatterAsFormat*>(format.getAlias())->getNumberFormatter()
+ .toSkeleton(status));
+
+ FieldPositionIterator fpi1;
+ lnf.formatDouble(514.23, status).getAllFieldPositions(fpi1, status);
+ FieldPositionIterator fpi2;
+ format->format(514.23, sb.remove(), &fpi2, status);
+ assertTrue("Should produce same field position iterator", fpi1 == fpi2);
+}
+
+void NumberFormatterApiTest::errors() {
+ LocalizedNumberFormatter lnf = NumberFormatter::withLocale(Locale::getEnglish()).precision(
+ Precision::fixedFraction(
+ -1));
+
+ // formatInt
+ UErrorCode status = U_ZERO_ERROR;
+ FormattedNumber fn = lnf.formatInt(1, status);
+ assertEquals(
+ "Should fail in formatInt method with error code for rounding",
+ U_NUMBER_ARG_OUTOFBOUNDS_ERROR,
+ status);
+
+ // formatDouble
+ status = U_ZERO_ERROR;
+ fn = lnf.formatDouble(1.0, status);
+ assertEquals(
+ "Should fail in formatDouble method with error code for rounding",
+ U_NUMBER_ARG_OUTOFBOUNDS_ERROR,
+ status);
+
+ // formatDecimal (decimal error)
+ status = U_ZERO_ERROR;
+ fn = NumberFormatter::withLocale("en").formatDecimal("1x2", status);
+ assertEquals(
+ "Should fail in formatDecimal method with error code for decimal number syntax",
+ U_DECIMAL_NUMBER_SYNTAX_ERROR,
+ status);
+
+ // formatDecimal (setting error)
+ status = U_ZERO_ERROR;
+ fn = lnf.formatDecimal("1.0", status);
+ assertEquals(
+ "Should fail in formatDecimal method with error code for rounding",
+ U_NUMBER_ARG_OUTOFBOUNDS_ERROR,
+ status);
+
+ // Skeleton string
+ status = U_ZERO_ERROR;
+ UnicodeString output = lnf.toSkeleton(status);
+ assertEquals(
+ "Should fail on toSkeleton terminal method with correct error code",
+ U_NUMBER_ARG_OUTOFBOUNDS_ERROR,
+ status);
+ assertTrue(
+ "Terminal toSkeleton on error object should be bogus",
+ output.isBogus());
+
+ // FieldPosition
+ status = U_ZERO_ERROR;
+ FieldPosition fp;
+ fn.populateFieldPosition(fp, status);
+ assertEquals(
+ "Should fail on FieldPosition terminal method with correct error code",
+ U_NUMBER_ARG_OUTOFBOUNDS_ERROR,
+ status);
+
+ // FieldPositionIterator
+ status = U_ZERO_ERROR;
+ FieldPositionIterator fpi;
+ fn.populateFieldPositionIterator(fpi, status);
+ assertEquals(
+ "Should fail on FieldPositoinIterator terminal method with correct error code",
+ U_NUMBER_ARG_OUTOFBOUNDS_ERROR,
+ status);
+
+ // Appendable
+ status = U_ZERO_ERROR;
+ UnicodeStringAppendable appendable(output.remove());
+ fn.appendTo(appendable, status);
+ assertEquals(
+ "Should fail on Appendable terminal method with correct error code",
+ U_NUMBER_ARG_OUTOFBOUNDS_ERROR,
+ status);
+
+ // UnicodeString
+ status = U_ZERO_ERROR;
+ output = fn.toString(status);
+ assertEquals(
+ "Should fail on UnicodeString terminal method with correct error code",
+ U_NUMBER_ARG_OUTOFBOUNDS_ERROR,
+ status);
+ assertTrue(
+ "Terminal UnicodeString on error object should be bogus",
+ output.isBogus());
+
+ // CopyErrorTo
+ status = U_ZERO_ERROR;
+ lnf.copyErrorTo(status);
+ assertEquals(
+ "Should fail since rounder is not legal with correct error code",
+ U_NUMBER_ARG_OUTOFBOUNDS_ERROR,
+ status);
}
void NumberFormatterApiTest::validRanges() {
@@ -1825,35 +2335,143 @@ void NumberFormatterApiTest::validRanges() {
} \
}
- VALID_RANGE_ONEARG(rounding, Rounder::fixedFraction, 0);
- VALID_RANGE_ONEARG(rounding, Rounder::minFraction, 0);
- VALID_RANGE_ONEARG(rounding, Rounder::maxFraction, 0);
- VALID_RANGE_TWOARGS(rounding, Rounder::minMaxFraction, 0);
- VALID_RANGE_ONEARG(rounding, Rounder::fixedDigits, 1);
- VALID_RANGE_ONEARG(rounding, Rounder::minDigits, 1);
- VALID_RANGE_ONEARG(rounding, Rounder::maxDigits, 1);
- VALID_RANGE_TWOARGS(rounding, Rounder::minMaxDigits, 1);
- VALID_RANGE_ONEARG(rounding, Rounder::fixedFraction(1).withMinDigits, 1);
- VALID_RANGE_ONEARG(rounding, Rounder::fixedFraction(1).withMaxDigits, 1);
+ VALID_RANGE_ONEARG(rounding, Precision::fixedFraction, 0);
+ VALID_RANGE_ONEARG(rounding, Precision::minFraction, 0);
+ VALID_RANGE_ONEARG(rounding, Precision::maxFraction, 0);
+ VALID_RANGE_TWOARGS(rounding, Precision::minMaxFraction, 0);
+ VALID_RANGE_ONEARG(rounding, Precision::fixedSignificantDigits, 1);
+ VALID_RANGE_ONEARG(rounding, Precision::minSignificantDigits, 1);
+ VALID_RANGE_ONEARG(rounding, Precision::maxSignificantDigits, 1);
+ VALID_RANGE_TWOARGS(rounding, Precision::minMaxSignificantDigits, 1);
+ VALID_RANGE_ONEARG(rounding, Precision::fixedFraction(1).withMinDigits, 1);
+ VALID_RANGE_ONEARG(rounding, Precision::fixedFraction(1).withMaxDigits, 1);
VALID_RANGE_ONEARG(notation, Notation::scientific().withMinExponentDigits, 1);
VALID_RANGE_ONEARG(integerWidth, IntegerWidth::zeroFillTo, 0);
VALID_RANGE_ONEARG(integerWidth, IntegerWidth::zeroFillTo(0).truncateAt, -1);
}
+void NumberFormatterApiTest::copyMove() {
+ IcuTestErrorCode status(*this, "copyMove");
+
+ // Default constructors
+ LocalizedNumberFormatter l1;
+ assertEquals("Initial behavior", u"10", l1.formatInt(10, status).toString(), true);
+ if (status.errDataIfFailureAndReset()) { return; }
+ assertEquals("Initial call count", 1, l1.getCallCount());
+ assertTrue("Initial compiled", l1.getCompiled() == nullptr);
+
+ // Setup
+ l1 = NumberFormatter::withLocale("en").unit(NoUnit::percent()).threshold(3);
+ assertEquals("Initial behavior", u"10%", l1.formatInt(10, status).toString());
+ assertEquals("Initial call count", 1, l1.getCallCount());
+ assertTrue("Initial compiled", l1.getCompiled() == nullptr);
+ l1.formatInt(123, status);
+ assertEquals("Still not compiled", 2, l1.getCallCount());
+ assertTrue("Still not compiled", l1.getCompiled() == nullptr);
+ l1.formatInt(123, status);
+ assertEquals("Compiled", u"10%", l1.formatInt(10, status).toString());
+ assertEquals("Compiled", INT32_MIN, l1.getCallCount());
+ assertTrue("Compiled", l1.getCompiled() != nullptr);
+
+ // Copy constructor
+ LocalizedNumberFormatter l2 = l1;
+ assertEquals("[constructor] Copy behavior", u"10%", l2.formatInt(10, status).toString());
+ assertEquals("[constructor] Copy should not have compiled state", 1, l2.getCallCount());
+ assertTrue("[constructor] Copy should not have compiled state", l2.getCompiled() == nullptr);
+
+ // Move constructor
+ LocalizedNumberFormatter l3 = std::move(l1);
+ assertEquals("[constructor] Move behavior", u"10%", l3.formatInt(10, status).toString());
+ assertEquals("[constructor] Move *should* have compiled state", INT32_MIN, l3.getCallCount());
+ assertTrue("[constructor] Move *should* have compiled state", l3.getCompiled() != nullptr);
+ assertEquals("[constructor] Source should be reset after move", 0, l1.getCallCount());
+ assertTrue("[constructor] Source should be reset after move", l1.getCompiled() == nullptr);
+
+ // Reset l1 and l2 to check for macro-props copying for behavior testing
+ // Make the test more interesting: also warm them up with a compiled formatter.
+ l1 = NumberFormatter::withLocale("en");
+ l1.formatInt(1, status);
+ l1.formatInt(1, status);
+ l1.formatInt(1, status);
+ l2 = NumberFormatter::withLocale("en");
+ l2.formatInt(1, status);
+ l2.formatInt(1, status);
+ l2.formatInt(1, status);
+
+ // Copy assignment
+ l1 = l3;
+ assertEquals("[assignment] Copy behavior", u"10%", l1.formatInt(10, status).toString());
+ assertEquals("[assignment] Copy should not have compiled state", 1, l1.getCallCount());
+ assertTrue("[assignment] Copy should not have compiled state", l1.getCompiled() == nullptr);
+
+ // Move assignment
+ l2 = std::move(l3);
+ assertEquals("[assignment] Move behavior", u"10%", l2.formatInt(10, status).toString());
+ assertEquals("[assignment] Move *should* have compiled state", INT32_MIN, l2.getCallCount());
+ assertTrue("[assignment] Move *should* have compiled state", l2.getCompiled() != nullptr);
+ assertEquals("[assignment] Source should be reset after move", 0, l3.getCallCount());
+ assertTrue("[assignment] Source should be reset after move", l3.getCompiled() == nullptr);
+
+ // Coverage tests for UnlocalizedNumberFormatter
+ UnlocalizedNumberFormatter u1;
+ assertEquals("Default behavior", u"10", u1.locale("en").formatInt(10, status).toString());
+ u1 = u1.unit(NoUnit::percent());
+ assertEquals("Copy assignment", u"10%", u1.locale("en").formatInt(10, status).toString());
+ UnlocalizedNumberFormatter u2 = u1;
+ assertEquals("Copy constructor", u"10%", u2.locale("en").formatInt(10, status).toString());
+ UnlocalizedNumberFormatter u3 = std::move(u1);
+ assertEquals("Move constructor", u"10%", u3.locale("en").formatInt(10, status).toString());
+ u1 = NumberFormatter::with();
+ u1 = std::move(u2);
+ assertEquals("Move assignment", u"10%", u1.locale("en").formatInt(10, status).toString());
+
+ // FormattedNumber move operators
+ FormattedNumber result = l1.formatInt(10, status);
+ assertEquals("FormattedNumber move constructor", u"10%", result.toString());
+ result = l1.formatInt(20, status);
+ assertEquals("FormattedNumber move assignment", u"20%", result.toString());
+}
+
+void NumberFormatterApiTest::localPointerCAPI() {
+ // NOTE: This is also the sample code in unumberformatter.h
+ UErrorCode ec = U_ZERO_ERROR;
+
+ // Setup:
+ LocalUNumberFormatterPointer uformatter(unumf_openForSkeletonAndLocale(u"percent", -1, "en", &ec));
+ LocalUFormattedNumberPointer uresult(unumf_openResult(&ec));
+ if (!assertSuccess("", ec, true, __FILE__, __LINE__)) { return; }
+
+ // Format a decimal number:
+ unumf_formatDecimal(uformatter.getAlias(), "9.87E-3", -1, uresult.getAlias(), &ec);
+ if (!assertSuccess("", ec, true, __FILE__, __LINE__)) { return; }
+
+ // Get the location of the percent sign:
+ UFieldPosition ufpos = {UNUM_PERCENT_FIELD, 0, 0};
+ unumf_resultNextFieldPosition(uresult.getAlias(), &ufpos, &ec);
+ assertEquals("Percent sign location within '0.00987%'", 7, ufpos.beginIndex);
+ assertEquals("Percent sign location within '0.00987%'", 8, ufpos.endIndex);
-void NumberFormatterApiTest::assertFormatDescending(const UnicodeString &message,
- const UnlocalizedNumberFormatter &f,
- Locale locale, ...) {
+ // No need to do any cleanup since we are using LocalPointer.
+}
+
+
+void NumberFormatterApiTest::assertFormatDescending(const char16_t* umessage, const char16_t* uskeleton,
+ const UnlocalizedNumberFormatter& f, Locale locale,
+ ...) {
va_list args;
va_start(args, locale);
+ UnicodeString message(TRUE, umessage, -1);
static double inputs[] = {87650, 8765, 876.5, 87.65, 8.765, 0.8765, 0.08765, 0.008765, 0};
const LocalizedNumberFormatter l1 = f.threshold(0).locale(locale); // no self-regulation
const LocalizedNumberFormatter l2 = f.threshold(1).locale(locale); // all self-regulation
- UErrorCode status = U_ZERO_ERROR;
+ IcuTestErrorCode status(*this, "assertFormatDescending");
+ status.setScope(message);
+ UnicodeString expecteds[10];
for (int16_t i = 0; i < 9; i++) {
char16_t caseNumber = u'0' + i;
double d = inputs[i];
UnicodeString expected = va_arg(args, const char16_t*);
+ expecteds[i] = expected;
UnicodeString actual1 = l1.formatDouble(d, status).toString();
assertSuccess(message + u": Unsafe Path: " + caseNumber, status);
assertEquals(message + u": Unsafe Path: " + caseNumber, expected, actual1);
@@ -1861,21 +2479,40 @@ void NumberFormatterApiTest::assertFormatDescending(const UnicodeString &message
assertSuccess(message + u": Safe Path: " + caseNumber, status);
assertEquals(message + u": Safe Path: " + caseNumber, expected, actual2);
}
+ if (uskeleton != nullptr) { // if null, skeleton is declared as undefined.
+ UnicodeString skeleton(TRUE, uskeleton, -1);
+ // Only compare normalized skeletons: the tests need not provide the normalized forms.
+ // Use the normalized form to construct the testing formatter to guarantee no loss of info.
+ UnicodeString normalized = NumberFormatter::forSkeleton(skeleton, status).toSkeleton(status);
+ assertEquals(message + ": Skeleton:", normalized, f.toSkeleton(status));
+ LocalizedNumberFormatter l3 = NumberFormatter::forSkeleton(normalized, status).locale(locale);
+ for (int32_t i = 0; i < 9; i++) {
+ double d = inputs[i];
+ UnicodeString actual3 = l3.formatDouble(d, status).toString();
+ assertEquals(message + ": Skeleton Path: '" + normalized + "': " + d, expecteds[i], actual3);
+ }
+ } else {
+ assertUndefinedSkeleton(f);
+ }
}
-void NumberFormatterApiTest::assertFormatDescendingBig(const UnicodeString &message,
- const UnlocalizedNumberFormatter &f,
- Locale locale, ...) {
+void NumberFormatterApiTest::assertFormatDescendingBig(const char16_t* umessage, const char16_t* uskeleton,
+ const UnlocalizedNumberFormatter& f, Locale locale,
+ ...) {
va_list args;
va_start(args, locale);
+ UnicodeString message(TRUE, umessage, -1);
static double inputs[] = {87650000, 8765000, 876500, 87650, 8765, 876.5, 87.65, 8.765, 0};
const LocalizedNumberFormatter l1 = f.threshold(0).locale(locale); // no self-regulation
const LocalizedNumberFormatter l2 = f.threshold(1).locale(locale); // all self-regulation
- UErrorCode status = U_ZERO_ERROR;
+ IcuTestErrorCode status(*this, "assertFormatDescendingBig");
+ status.setScope(message);
+ UnicodeString expecteds[10];
for (int16_t i = 0; i < 9; i++) {
char16_t caseNumber = u'0' + i;
double d = inputs[i];
UnicodeString expected = va_arg(args, const char16_t*);
+ expecteds[i] = expected;
UnicodeString actual1 = l1.formatDouble(d, status).toString();
assertSuccess(message + u": Unsafe Path: " + caseNumber, status);
assertEquals(message + u": Unsafe Path: " + caseNumber, expected, actual1);
@@ -1883,20 +2520,58 @@ void NumberFormatterApiTest::assertFormatDescendingBig(const UnicodeString &mess
assertSuccess(message + u": Safe Path: " + caseNumber, status);
assertEquals(message + u": Safe Path: " + caseNumber, expected, actual2);
}
+ if (uskeleton != nullptr) { // if null, skeleton is declared as undefined.
+ UnicodeString skeleton(TRUE, uskeleton, -1);
+ // Only compare normalized skeletons: the tests need not provide the normalized forms.
+ // Use the normalized form to construct the testing formatter to guarantee no loss of info.
+ UnicodeString normalized = NumberFormatter::forSkeleton(skeleton, status).toSkeleton(status);
+ assertEquals(message + ": Skeleton:", normalized, f.toSkeleton(status));
+ LocalizedNumberFormatter l3 = NumberFormatter::forSkeleton(normalized, status).locale(locale);
+ for (int32_t i = 0; i < 9; i++) {
+ double d = inputs[i];
+ UnicodeString actual3 = l3.formatDouble(d, status).toString();
+ assertEquals(message + ": Skeleton Path: '" + normalized + "': " + d, expecteds[i], actual3);
+ }
+ } else {
+ assertUndefinedSkeleton(f);
+ }
}
-void NumberFormatterApiTest::assertFormatSingle(const UnicodeString &message,
- const UnlocalizedNumberFormatter &f, Locale locale,
- double input, const UnicodeString &expected) {
+void NumberFormatterApiTest::assertFormatSingle(const char16_t* umessage, const char16_t* uskeleton,
+ const UnlocalizedNumberFormatter& f, Locale locale,
+ double input, const UnicodeString& expected) {
+ UnicodeString message(TRUE, umessage, -1);
const LocalizedNumberFormatter l1 = f.threshold(0).locale(locale); // no self-regulation
const LocalizedNumberFormatter l2 = f.threshold(1).locale(locale); // all self-regulation
- UErrorCode status = U_ZERO_ERROR;
+ IcuTestErrorCode status(*this, "assertFormatSingle");
+ status.setScope(message);
UnicodeString actual1 = l1.formatDouble(input, status).toString();
assertSuccess(message + u": Unsafe Path", status);
assertEquals(message + u": Unsafe Path", expected, actual1);
UnicodeString actual2 = l2.formatDouble(input, status).toString();
assertSuccess(message + u": Safe Path", status);
assertEquals(message + u": Safe Path", expected, actual2);
+ if (uskeleton != nullptr) { // if null, skeleton is declared as undefined.
+ UnicodeString skeleton(TRUE, uskeleton, -1);
+ // Only compare normalized skeletons: the tests need not provide the normalized forms.
+ // Use the normalized form to construct the testing formatter to ensure no loss of info.
+ UnicodeString normalized = NumberFormatter::forSkeleton(skeleton, status).toSkeleton(status);
+ assertEquals(message + ": Skeleton:", normalized, f.toSkeleton(status));
+ LocalizedNumberFormatter l3 = NumberFormatter::forSkeleton(normalized, status).locale(locale);
+ UnicodeString actual3 = l3.formatDouble(input, status).toString();
+ assertEquals(message + ": Skeleton Path: '" + normalized + "': " + input, expected, actual3);
+ } else {
+ assertUndefinedSkeleton(f);
+ }
+}
+
+void NumberFormatterApiTest::assertUndefinedSkeleton(const UnlocalizedNumberFormatter& f) {
+ UErrorCode status = U_ZERO_ERROR;
+ UnicodeString skeleton = f.toSkeleton(status);
+ assertEquals(
+ u"Expect toSkeleton to fail, but passed, producing: " + skeleton,
+ U_UNSUPPORTED_ERROR,
+ status);
}
#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_decimalquantity.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_decimalquantity.cpp
index 0cbcc524644..48b9f91e27a 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_decimalquantity.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_decimalquantity.cpp
@@ -3,11 +3,13 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
#include "number_decimalquantity.h"
+#include "number_decnum.h"
#include "math.h"
#include <cmath>
+#include "number_utils.h"
#include "numbertest.h"
void DecimalQuantityTest::runIndexedTest(int32_t index, UBool exec, const char *&name, char *) {
@@ -16,11 +18,14 @@ void DecimalQuantityTest::runIndexedTest(int32_t index, UBool exec, const char *
}
TESTCASE_AUTO_BEGIN;
TESTCASE_AUTO(testDecimalQuantityBehaviorStandalone);
- TESTCASE_AUTO(testSwitchStorage);
+ TESTCASE_AUTO(testSwitchStorage);;
+ TESTCASE_AUTO(testCopyMove);
TESTCASE_AUTO(testAppend);
TESTCASE_AUTO(testConvertToAccurateDouble);
TESTCASE_AUTO(testUseApproximateDoubleWhenAble);
TESTCASE_AUTO(testHardDoubleConversion);
+ TESTCASE_AUTO(testToDouble);
+ TESTCASE_AUTO(testMaxDigits);
TESTCASE_AUTO_END;
}
@@ -58,9 +63,6 @@ void DecimalQuantityTest::checkDoubleBehavior(double d, bool explicitRequired) {
assertTrue("Should be using approximate double", !fq.isExplicitExactDouble());
}
UnicodeString baseStr = fq.toString();
- assertDoubleEquals(
- UnicodeString(u"Initial construction from hard double: ") + baseStr,
- d, fq.toDouble());
fq.roundToInfinity();
UnicodeString newStr = fq.toString();
if (explicitRequired) {
@@ -103,68 +105,111 @@ void DecimalQuantityTest::testSwitchStorage() {
fq.setToLong(1234123412341234L);
assertFalse("Should not be using byte array", fq.isUsingBytes());
- assertEquals("Failed on initialize", u"1234123412341234E0", fq.toNumberString());
+ assertEquals("Failed on initialize", u"1.234123412341234E+15", fq.toScientificString());
assertHealth(fq);
// Long -> Bytes
fq.appendDigit(5, 0, true);
assertTrue("Should be using byte array", fq.isUsingBytes());
- assertEquals("Failed on multiply", u"12341234123412345E0", fq.toNumberString());
+ assertEquals("Failed on multiply", u"1.2341234123412345E+16", fq.toScientificString());
assertHealth(fq);
// Bytes -> Long
fq.roundToMagnitude(5, RoundingMode::UNUM_ROUND_HALFEVEN, status);
assertSuccess("Rounding to magnitude", status);
assertFalse("Should not be using byte array", fq.isUsingBytes());
- assertEquals("Failed on round", u"123412341234E5", fq.toNumberString());
+ assertEquals("Failed on round", u"1.23412341234E+16", fq.toScientificString());
assertHealth(fq);
}
+void DecimalQuantityTest::testCopyMove() {
+ // Small numbers (fits in BCD long)
+ {
+ DecimalQuantity a;
+ a.setToLong(1234123412341234L);
+ DecimalQuantity b = a; // copy constructor
+ assertToStringAndHealth(a, u"<DecimalQuantity 999:0:0:-999 long 1234123412341234E0>");
+ assertToStringAndHealth(b, u"<DecimalQuantity 999:0:0:-999 long 1234123412341234E0>");
+ DecimalQuantity c(std::move(a)); // move constructor
+ assertToStringAndHealth(c, u"<DecimalQuantity 999:0:0:-999 long 1234123412341234E0>");
+ c.setToLong(54321L);
+ assertToStringAndHealth(c, u"<DecimalQuantity 999:0:0:-999 long 54321E0>");
+ c = b; // copy assignment
+ assertToStringAndHealth(b, u"<DecimalQuantity 999:0:0:-999 long 1234123412341234E0>");
+ assertToStringAndHealth(c, u"<DecimalQuantity 999:0:0:-999 long 1234123412341234E0>");
+ b.setToLong(45678);
+ c.setToLong(56789);
+ c = std::move(b); // move assignment
+ assertToStringAndHealth(c, u"<DecimalQuantity 999:0:0:-999 long 45678E0>");
+ a = std::move(c); // move assignment to a defunct object
+ assertToStringAndHealth(a, u"<DecimalQuantity 999:0:0:-999 long 45678E0>");
+ }
+
+ // Large numbers (requires byte allocation)
+ {
+ IcuTestErrorCode status(*this, "testCopyMove");
+ DecimalQuantity a;
+ a.setToDecNumber({"1234567890123456789", -1}, status);
+ DecimalQuantity b = a; // copy constructor
+ assertToStringAndHealth(a, u"<DecimalQuantity 999:0:0:-999 bytes 1234567890123456789E0>");
+ assertToStringAndHealth(b, u"<DecimalQuantity 999:0:0:-999 bytes 1234567890123456789E0>");
+ DecimalQuantity c(std::move(a)); // move constructor
+ assertToStringAndHealth(c, u"<DecimalQuantity 999:0:0:-999 bytes 1234567890123456789E0>");
+ c.setToDecNumber({"9876543210987654321", -1}, status);
+ assertToStringAndHealth(c, u"<DecimalQuantity 999:0:0:-999 bytes 9876543210987654321E0>");
+ c = b; // copy assignment
+ assertToStringAndHealth(b, u"<DecimalQuantity 999:0:0:-999 bytes 1234567890123456789E0>");
+ assertToStringAndHealth(c, u"<DecimalQuantity 999:0:0:-999 bytes 1234567890123456789E0>");
+ b.setToDecNumber({"876543210987654321", -1}, status);
+ c.setToDecNumber({"987654321098765432", -1}, status);
+ c = std::move(b); // move assignment
+ assertToStringAndHealth(c, u"<DecimalQuantity 999:0:0:-999 bytes 876543210987654321E0>");
+ a = std::move(c); // move assignment to a defunct object
+ assertToStringAndHealth(a, u"<DecimalQuantity 999:0:0:-999 bytes 876543210987654321E0>");
+ }
+}
+
void DecimalQuantityTest::testAppend() {
DecimalQuantity fq;
fq.appendDigit(1, 0, true);
- assertEquals("Failed on append", u"1E0", fq.toNumberString());
+ assertEquals("Failed on append", u"1E+0", fq.toScientificString());
assertHealth(fq);
fq.appendDigit(2, 0, true);
- assertEquals("Failed on append", u"12E0", fq.toNumberString());
+ assertEquals("Failed on append", u"1.2E+1", fq.toScientificString());
assertHealth(fq);
fq.appendDigit(3, 1, true);
- assertEquals("Failed on append", u"1203E0", fq.toNumberString());
+ assertEquals("Failed on append", u"1.203E+3", fq.toScientificString());
assertHealth(fq);
fq.appendDigit(0, 1, true);
- assertEquals("Failed on append", u"1203E2", fq.toNumberString());
+ assertEquals("Failed on append", u"1.203E+5", fq.toScientificString());
assertHealth(fq);
fq.appendDigit(4, 0, true);
- assertEquals("Failed on append", u"1203004E0", fq.toNumberString());
+ assertEquals("Failed on append", u"1.203004E+6", fq.toScientificString());
assertHealth(fq);
fq.appendDigit(0, 0, true);
- assertEquals("Failed on append", u"1203004E1", fq.toNumberString());
+ assertEquals("Failed on append", u"1.203004E+7", fq.toScientificString());
assertHealth(fq);
fq.appendDigit(5, 0, false);
- assertEquals("Failed on append", u"120300405E-1", fq.toNumberString());
+ assertEquals("Failed on append", u"1.20300405E+7", fq.toScientificString());
assertHealth(fq);
fq.appendDigit(6, 0, false);
- assertEquals("Failed on append", u"1203004056E-2", fq.toNumberString());
+ assertEquals("Failed on append", u"1.203004056E+7", fq.toScientificString());
assertHealth(fq);
fq.appendDigit(7, 3, false);
- assertEquals("Failed on append", u"12030040560007E-6", fq.toNumberString());
+ assertEquals("Failed on append", u"1.2030040560007E+7", fq.toScientificString());
assertHealth(fq);
- UnicodeString baseExpected(u"12030040560007");
+ UnicodeString baseExpected(u"1.2030040560007");
for (int i = 0; i < 10; i++) {
fq.appendDigit(8, 0, false);
baseExpected.append(u'8');
UnicodeString expected(baseExpected);
- expected.append(u"E-");
- if (i >= 3) {
- expected.append(u'1');
- }
- expected.append(((7 + i) % 10) + u'0');
- assertEquals("Failed on append", expected, fq.toNumberString());
+ expected.append(u"E+7");
+ assertEquals("Failed on append", expected, fq.toScientificString());
assertHealth(fq);
}
fq.appendDigit(9, 2, false);
baseExpected.append(u"009");
UnicodeString expected(baseExpected);
- expected.append(u"E-19");
- assertEquals("Failed on append", expected, fq.toNumberString());
+ expected.append(u"E+7");
+ assertEquals("Failed on append", expected, fq.toScientificString());
assertHealth(fq);
}
@@ -294,4 +339,45 @@ void DecimalQuantityTest::testHardDoubleConversion() {
}
}
+void DecimalQuantityTest::testToDouble() {
+ IcuTestErrorCode status(*this, "testToDouble");
+ static const struct TestCase {
+ const char* input; // char* for the decNumber constructor
+ double expected;
+ } cases[] = {
+ { "0", 0.0 },
+ { "514.23", 514.23 },
+ { "-3.142E-271", -3.142e-271 } };
+
+ for (auto& cas : cases) {
+ status.setScope(cas.input);
+ DecimalQuantity q;
+ q.setToDecNumber({cas.input, -1}, status);
+ double actual = q.toDouble();
+ assertEquals("Doubles should exactly equal", cas.expected, actual);
+ }
+}
+
+void DecimalQuantityTest::testMaxDigits() {
+ IcuTestErrorCode status(*this, "testMaxDigits");
+ DecimalQuantity dq;
+ dq.setToDouble(876.543);
+ dq.roundToInfinity();
+ dq.setIntegerLength(0, 2);
+ dq.setFractionLength(0, 2);
+ assertEquals("Should trim, toPlainString", "76.54", dq.toPlainString());
+ assertEquals("Should trim, toScientificString", "7.654E+1", dq.toScientificString());
+ assertEquals("Should trim, toLong", 76LL, dq.toLong(true));
+ assertEquals("Should trim, toFractionLong", (int64_t) 54, (int64_t) dq.toFractionLong(false));
+ assertEquals("Should trim, toDouble", 76.54, dq.toDouble());
+ // To test DecNum output, check the round-trip.
+ DecNum dn;
+ dq.toDecNum(dn, status);
+ DecimalQuantity copy;
+ copy.setToDecNum(dn, status);
+ if (!logKnownIssue("13701")) {
+ assertEquals("Should trim, toDecNum", "76.54", copy.toPlainString());
+ }
+}
+
#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_doubleconversion.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_doubleconversion.cpp
index a52865d8d3d..a98fa903f34 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_doubleconversion.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_doubleconversion.cpp
@@ -3,7 +3,7 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
#include "numbertest.h"
#include "double-conversion.h"
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_modifiers.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_modifiers.cpp
index bebb3f8b2b6..52f4f494751 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_modifiers.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_modifiers.cpp
@@ -3,7 +3,7 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
#include "putilimp.h"
#include "intltest.h"
@@ -101,7 +101,9 @@ void ModifiersTest::testSimpleModifier() {
void ModifiersTest::testCurrencySpacingEnabledModifier() {
UErrorCode status = U_ZERO_ERROR;
DecimalFormatSymbols symbols(Locale("en"), status);
- assertSuccess("Spot 1", status);
+ if (!assertSuccess("Spot 1", status, true)) {
+ return;
+ }
NumberStringBuilder prefix;
NumberStringBuilder suffix;
@@ -160,12 +162,12 @@ void ModifiersTest::assertModifierEquals(const Modifier &mod, NumberStringBuilde
UErrorCode &status) {
int32_t oldCount = sb.codePointCount();
mod.apply(sb, 0, sb.length(), status);
- assertEquals("Prefix length", expectedPrefixLength, mod.getPrefixLength(status));
+ assertEquals("Prefix length", expectedPrefixLength, mod.getPrefixLength());
assertEquals("Strong", expectedStrong, mod.isStrong());
if (dynamic_cast<const CurrencySpacingEnabledModifier*>(&mod) == nullptr) {
// i.e., if mod is not a CurrencySpacingEnabledModifier
assertEquals("Code point count equals actual code point count",
- sb.codePointCount() - oldCount, mod.getCodePointCount(status));
+ sb.codePointCount() - oldCount, mod.getCodePointCount());
}
UnicodeString debugString;
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_parse.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_parse.cpp
new file mode 100644
index 00000000000..d5276b4fac3
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_parse.cpp
@@ -0,0 +1,354 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+#include "numbertest.h"
+#include "numparse_impl.h"
+#include "static_unicode_sets.h"
+#include "unicode/dcfmtsym.h"
+#include "unicode/testlog.h"
+
+#include <cmath>
+#include <numparse_affixes.h>
+
+using icu::unisets::get;
+
+void NumberParserTest::runIndexedTest(int32_t index, UBool exec, const char*& name, char*) {
+ if (exec) {
+ logln("TestSuite NumberParserTest: ");
+ }
+ TESTCASE_AUTO_BEGIN;
+ TESTCASE_AUTO(testBasic);
+ TESTCASE_AUTO(testSeriesMatcher);
+ TESTCASE_AUTO(testCombinedCurrencyMatcher);
+ TESTCASE_AUTO(testAffixPatternMatcher);
+ TESTCASE_AUTO_END;
+}
+
+void NumberParserTest::testBasic() {
+ IcuTestErrorCode status(*this, "testBasic");
+
+ static const struct TestCase {
+ int32_t flags;
+ const char16_t* inputString;
+ const char16_t* patternString;
+ int32_t expectedCharsConsumed;
+ double expectedResultDouble;
+ } cases[] = {{3, u"51423", u"0", 5, 51423.},
+ {3, u"51423x", u"0", 5, 51423.},
+ {3, u" 51423", u"0", 6, 51423.},
+ {3, u"51423 ", u"0", 5, 51423.},
+ {3, u"𝟱𝟭𝟰𝟮𝟯", u"0", 10, 51423.},
+ {3, u"𝟱𝟭𝟰𝟮𝟯x", u"0", 10, 51423.},
+ {3, u" 𝟱𝟭𝟰𝟮𝟯", u"0", 11, 51423.},
+ {3, u"𝟱𝟭𝟰𝟮𝟯 ", u"0", 10, 51423.},
+ {7, u"51,423", u"#,##,##0", 6, 51423.},
+ {7, u" 51,423", u"#,##,##0", 7, 51423.},
+ {7, u"51,423 ", u"#,##,##0", 6, 51423.},
+ {7, u"51,423,", u"#,##,##0", 6, 51423.},
+ {7, u"51,423,,", u"#,##,##0", 6, 51423.},
+ {7, u"51,423.5", u"#,##,##0", 8, 51423.5},
+ {7, u"51,423.5,", u"#,##,##0", 8, 51423.5},
+ {7, u"51,423.5,,", u"#,##,##0", 8, 51423.5},
+ {7, u"51,423.5.", u"#,##,##0", 8, 51423.5},
+ {7, u"51,423.5..", u"#,##,##0", 8, 51423.5},
+ {7, u"𝟱𝟭,𝟰𝟮𝟯", u"#,##,##0", 11, 51423.},
+ {7, u"𝟳,𝟴𝟵,𝟱𝟭,𝟰𝟮𝟯", u"#,##,##0", 19, 78951423.},
+ {7, u"𝟳𝟴,𝟵𝟱𝟭.𝟰𝟮𝟯", u"#,##,##0", 18, 78951.423},
+ {7, u"𝟳𝟴,𝟬𝟬𝟬", u"#,##,##0", 11, 78000.},
+ {7, u"𝟳𝟴,𝟬𝟬𝟬.𝟬𝟬𝟬", u"#,##,##0", 18, 78000.},
+ {7, u"𝟳𝟴,𝟬𝟬𝟬.𝟬𝟮𝟯", u"#,##,##0", 18, 78000.023},
+ {7, u"𝟳𝟴.𝟬𝟬𝟬.𝟬𝟮𝟯", u"#,##,##0", 11, 78.},
+ {7, u"1,", u"#,##,##0", 1, 1.},
+ {7, u"1,,", u"#,##,##0", 1, 1.},
+ {7, u"1.,", u"#,##,##0", 2, 1.},
+ {3, u"1,.", u"#,##,##0", 3, 1.},
+ {7, u"1..", u"#,##,##0", 2, 1.},
+ {3, u",1", u"#,##,##0", 2, 1.},
+ {3, u"1,1", u"#,##,##0", 1, 1.},
+ {3, u"1,1,", u"#,##,##0", 1, 1.},
+ {3, u"1,1,,", u"#,##,##0", 1, 1.},
+ {3, u"1,1,1", u"#,##,##0", 1, 1.},
+ {3, u"1,1,1,", u"#,##,##0", 1, 1.},
+ {3, u"1,1,1,,", u"#,##,##0", 1, 1.},
+ {3, u"-51423", u"0", 6, -51423.},
+ {3, u"51423-", u"0", 5, 51423.}, // plus and minus sign by default do NOT match after
+ {3, u"+51423", u"0", 6, 51423.},
+ {3, u"51423+", u"0", 5, 51423.}, // plus and minus sign by default do NOT match after
+ {3, u"%51423", u"0", 6, 51423.},
+ {3, u"51423%", u"0", 6, 51423.},
+ {3, u"51423%%", u"0", 6, 51423.},
+ {3, u"‰51423", u"0", 6, 51423.},
+ {3, u"51423‰", u"0", 6, 51423.},
+ {3, u"51423‰‰", u"0", 6, 51423.},
+ {3, u"∞", u"0", 1, INFINITY},
+ {3, u"-∞", u"0", 2, -INFINITY},
+ {3, u"@@@123 @@", u"0", 6, 123.}, // TODO: Should padding be strong instead of weak?
+ {3, u"@@@123@@ ", u"0", 6, 123.}, // TODO: Should padding be strong instead of weak?
+ {3, u"a51423US dollars", u"a0¤¤¤", 16, 51423.},
+ {3, u"a 51423 US dollars", u"a0¤¤¤", 18, 51423.},
+ {3, u"514.23 USD", u"¤0", 10, 514.23},
+ {3, u"514.23 GBP", u"¤0", 10, 514.23},
+ {3, u"a 𝟱𝟭𝟰𝟮𝟯 b", u"a0b", 14, 51423.},
+ {3, u"-a 𝟱𝟭𝟰𝟮𝟯 b", u"a0b", 15, -51423.},
+ {3, u"a -𝟱𝟭𝟰𝟮𝟯 b", u"a0b", 15, -51423.},
+ {3, u"𝟱𝟭𝟰𝟮𝟯", u"[0];(0)", 10, 51423.},
+ {3, u"[𝟱𝟭𝟰𝟮𝟯", u"[0];(0)", 11, 51423.},
+ {3, u"𝟱𝟭𝟰𝟮𝟯]", u"[0];(0)", 11, 51423.},
+ {3, u"[𝟱𝟭𝟰𝟮𝟯]", u"[0];(0)", 12, 51423.},
+ {3, u"(𝟱𝟭𝟰𝟮𝟯", u"[0];(0)", 11, -51423.},
+ {3, u"𝟱𝟭𝟰𝟮𝟯)", u"[0];(0)", 11, -51423.},
+ {3, u"(𝟱𝟭𝟰𝟮𝟯)", u"[0];(0)", 12, -51423.},
+ {3, u"𝟱𝟭𝟰𝟮𝟯", u"{0};{0}", 10, 51423.},
+ {3, u"{𝟱𝟭𝟰𝟮𝟯", u"{0};{0}", 11, 51423.},
+ {3, u"𝟱𝟭𝟰𝟮𝟯}", u"{0};{0}", 11, 51423.},
+ {3, u"{𝟱𝟭𝟰𝟮𝟯}", u"{0};{0}", 12, 51423.},
+ {1, u"a40b", u"a0'0b'", 3, 40.}, // greedy code path thinks "40" is the number
+ {2, u"a40b", u"a0'0b'", 4, 4.}, // slow code path finds the suffix "0b"
+ {3, u"𝟱.𝟭𝟰𝟮E𝟯", u"0", 12, 5142.},
+ {3, u"𝟱.𝟭𝟰𝟮E-𝟯", u"0", 13, 0.005142},
+ {3, u"𝟱.𝟭𝟰𝟮e-𝟯", u"0", 13, 0.005142},
+ {7, u"5,142.50 Canadian dollars", u"#,##,##0 ¤¤¤", 25, 5142.5},
+ {3, u"a$ b5", u"a ¤ b0", 5, 5.0},
+ {3, u"📺1.23", u"📺0;📻0", 6, 1.23},
+ {3, u"📻1.23", u"📺0;📻0", 6, -1.23},
+ {3, u".00", u"0", 3, 0.0},
+ {3, u" 1,234", u"a0", 35, 1234.}, // should not hang
+ {3, u"NaN", u"0", 3, NAN},
+ {3, u"NaN E5", u"0", 6, NAN},
+ {3, u"0", u"0", 1, 0.0}};
+
+ parse_flags_t parseFlags = PARSE_FLAG_IGNORE_CASE | PARSE_FLAG_INCLUDE_UNPAIRED_AFFIXES;
+ for (auto& cas : cases) {
+ UnicodeString inputString(cas.inputString);
+ UnicodeString patternString(cas.patternString);
+ LocalPointer<const NumberParserImpl> parser(
+ NumberParserImpl::createSimpleParser(
+ Locale("en"), patternString, parseFlags, status));
+ if (status.errDataIfFailureAndReset("createSimpleParser() failed")) {
+ continue;
+ }
+ UnicodeString message =
+ UnicodeString("Input <") + inputString + UnicodeString("> Parser ") + parser->toString();
+
+ if (0 != (cas.flags & 0x01)) {
+ // Test greedy code path
+ ParsedNumber resultObject;
+ parser->parse(inputString, true, resultObject, status);
+ assertTrue("Greedy Parse failed: " + message, resultObject.success());
+ assertEquals(
+ "Greedy Parse failed: " + message, cas.expectedCharsConsumed, resultObject.charEnd);
+ assertEquals(
+ "Greedy Parse failed: " + message, cas.expectedResultDouble, resultObject.getDouble());
+ }
+
+ if (0 != (cas.flags & 0x02)) {
+ // Test slow code path
+ ParsedNumber resultObject;
+ parser->parse(inputString, false, resultObject, status);
+ assertTrue("Non-Greedy Parse failed: " + message, resultObject.success());
+ assertEquals(
+ "Non-Greedy Parse failed: " + message,
+ cas.expectedCharsConsumed,
+ resultObject.charEnd);
+ assertEquals(
+ "Non-Greedy Parse failed: " + message,
+ cas.expectedResultDouble,
+ resultObject.getDouble());
+ }
+
+ if (0 != (cas.flags & 0x04)) {
+ // Test with strict separators
+ parser.adoptInstead(
+ NumberParserImpl::createSimpleParser(
+ Locale("en"),
+ patternString,
+ parseFlags | PARSE_FLAG_STRICT_GROUPING_SIZE,
+ status));
+ ParsedNumber resultObject;
+ parser->parse(inputString, true, resultObject, status);
+ assertTrue("Strict Parse failed: " + message, resultObject.success());
+ assertEquals(
+ "Strict Parse failed: " + message, cas.expectedCharsConsumed, resultObject.charEnd);
+ assertEquals(
+ "Strict Parse failed: " + message, cas.expectedResultDouble, resultObject.getDouble());
+ }
+ }
+}
+
+void NumberParserTest::testSeriesMatcher() {
+ IcuTestErrorCode status(*this, "testSeriesMatcher");
+
+ DecimalFormatSymbols symbols("en", status);
+ if (status.errDataIfFailureAndReset("Failure in DecimalFormtSymbols constructor")) {
+ return;
+ }
+ PlusSignMatcher m0(symbols, false);
+ MinusSignMatcher m1(symbols, false);
+ IgnorablesMatcher m2(unisets::DEFAULT_IGNORABLES);
+ PercentMatcher m3(symbols);
+ IgnorablesMatcher m4(unisets::DEFAULT_IGNORABLES);
+
+ ArraySeriesMatcher::MatcherArray matchers(5);
+ matchers[0] = &m0;
+ matchers[1] = &m1;
+ matchers[2] = &m2;
+ matchers[3] = &m3;
+ matchers[4] = &m4;
+ ArraySeriesMatcher series(matchers, 5);
+
+ assertFalse("", series.smokeTest(StringSegment(u"x", false)));
+ assertFalse("", series.smokeTest(StringSegment(u"-", false)));
+ assertTrue("", series.smokeTest(StringSegment(u"+", false)));
+
+ static const struct TestCase {
+ const char16_t* input;
+ int32_t expectedOffset;
+ bool expectedMaybeMore;
+ } cases[] = {{u"", 0, true},
+ {u" ", 0, false},
+ {u"$", 0, false},
+ {u"+", 0, true},
+ {u" +", 0, false},
+ {u"+-", 0, true},
+ {u"+ -", 0, false},
+ {u"+- ", 0, true},
+ {u"+- $", 0, false},
+ {u"+-%", 3, true},
+ {u" +- % ", 0, false},
+ {u"+- % ", 7, true},
+ {u"+-%$", 3, false}};
+
+ for (auto& cas : cases) {
+ UnicodeString input(cas.input);
+
+ StringSegment segment(input, false);
+ ParsedNumber result;
+ bool actualMaybeMore = series.match(segment, result, status);
+ int actualOffset = segment.getOffset();
+
+ assertEquals("'" + input + "'", cas.expectedOffset, actualOffset);
+ assertEquals("'" + input + "'", cas.expectedMaybeMore, actualMaybeMore);
+ }
+}
+
+void NumberParserTest::testCombinedCurrencyMatcher() {
+ IcuTestErrorCode status(*this, "testCombinedCurrencyMatcher");
+
+ IgnorablesMatcher ignorables(unisets::DEFAULT_IGNORABLES);
+ Locale locale = Locale::getEnglish();
+
+ DecimalFormatSymbols dfs(locale, status);
+ if (status.errDataIfFailureAndReset("Failure in DecimalFormtSymbols constructor")) {
+ return;
+ }
+ dfs.setSymbol(DecimalFormatSymbols::kCurrencySymbol, u"IU$", status);
+ dfs.setSymbol(DecimalFormatSymbols::kIntlCurrencySymbol, u"ICU", status);
+ CurrencySymbols currencySymbols({u"ICU", status}, locale, dfs, status);
+
+ AffixTokenMatcherSetupData affixSetupData = {
+ currencySymbols, {"en", status}, ignorables, "en", 0};
+ AffixTokenMatcherWarehouse warehouse(&affixSetupData);
+ NumberParseMatcher& matcher = warehouse.currency(status);
+ affixSetupData.parseFlags = PARSE_FLAG_NO_FOREIGN_CURRENCY;
+ AffixTokenMatcherWarehouse warehouseNoForeign(&affixSetupData);
+ NumberParseMatcher& matcherNoForeign = warehouseNoForeign.currency(status);
+
+ static const struct TestCase {
+ const char16_t* input;
+ const char16_t* expectedCurrencyCode;
+ const char16_t* expectedNoForeignCurrencyCode;
+ } cases[]{{u"", u"", u""},
+ {u"FOO", u"", u""},
+ {u"USD", u"USD", u""},
+ {u"$", u"USD", u""},
+ {u"US dollars", u"USD", u""},
+ {u"eu", u"", u""},
+ {u"euros", u"EUR", u""},
+ {u"ICU", u"ICU", u"ICU"},
+ {u"IU$", u"ICU", u"ICU"}};
+ for (auto& cas : cases) {
+ UnicodeString input(cas.input);
+
+ {
+ StringSegment segment(input, false);
+ ParsedNumber result;
+ matcher.match(segment, result, status);
+ assertEquals(
+ "Parsing " + input,
+ cas.expectedCurrencyCode,
+ result.currencyCode);
+ assertEquals(
+ "Whole string on " + input,
+ cas.expectedCurrencyCode[0] == 0 ? 0 : input.length(),
+ result.charEnd);
+ }
+ {
+ StringSegment segment(input, false);
+ ParsedNumber result;
+ matcherNoForeign.match(segment, result, status);
+ assertEquals(
+ "[no foreign] Parsing " + input,
+ cas.expectedNoForeignCurrencyCode,
+ result.currencyCode);
+ assertEquals(
+ "[no foreign] Whole string on " + input,
+ cas.expectedNoForeignCurrencyCode[0] == 0 ? 0 : input.length(),
+ result.charEnd);
+ }
+ }
+}
+
+void NumberParserTest::testAffixPatternMatcher() {
+ IcuTestErrorCode status(*this, "testAffixPatternMatcher");
+ Locale locale = Locale::getEnglish();
+ IgnorablesMatcher ignorables(unisets::DEFAULT_IGNORABLES);
+
+ DecimalFormatSymbols dfs(locale, status);
+ dfs.setSymbol(DecimalFormatSymbols::kCurrencySymbol, u"IU$", status);
+ dfs.setSymbol(DecimalFormatSymbols::kIntlCurrencySymbol, u"ICU", status);
+ CurrencySymbols currencySymbols({u"ICU", status}, locale, dfs, status);
+
+ AffixTokenMatcherSetupData affixSetupData = {
+ currencySymbols, {"en", status}, ignorables, "en", 0};
+ AffixTokenMatcherWarehouse warehouse(&affixSetupData);
+
+ static const struct TestCase {
+ bool exactMatch;
+ const char16_t* affixPattern;
+ int32_t expectedMatcherLength;
+ const char16_t* sampleParseableString;
+ } cases[] = {{false, u"-", 1, u"-"},
+ {false, u"+-%", 5, u"+-%"},
+ {true, u"+-%", 3, u"+-%"},
+ {false, u"ab c", 5, u"a bc"},
+ {true, u"abc", 3, u"abc"},
+ {false, u"hello-to+this%very¤long‰string", 59, u"hello-to+this%very USD long‰string"}};
+
+ for (auto& cas : cases) {
+ UnicodeString affixPattern(cas.affixPattern);
+ UnicodeString sampleParseableString(cas.sampleParseableString);
+ int parseFlags = cas.exactMatch ? PARSE_FLAG_EXACT_AFFIX : 0;
+
+ bool success;
+ AffixPatternMatcher matcher = AffixPatternMatcher::fromAffixPattern(
+ affixPattern, warehouse, parseFlags, &success, status);
+ if (!status.errDataIfFailureAndReset("Creation should be successful")) {
+
+ // Check that the matcher has the expected number of children
+ assertEquals(affixPattern + " " + cas.exactMatch, cas.expectedMatcherLength, matcher.length());
+
+ // Check that the matcher works on a sample string
+ StringSegment segment(sampleParseableString, false);
+ ParsedNumber result;
+ matcher.match(segment, result, status);
+ assertEquals(affixPattern + " " + cas.exactMatch, sampleParseableString.length(), result.charEnd);
+ }
+ }
+}
+
+
+#endif
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_patternmodifier.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_patternmodifier.cpp
index 79c99e9c224..3a0fda82675 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_patternmodifier.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_patternmodifier.cpp
@@ -3,9 +3,10 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
#include "numbertest.h"
+#include "number_microprops.h"
#include "number_patternmodifier.h"
void PatternModifierTest::runIndexedTest(int32_t index, UBool exec, const char *&name, char *) {
@@ -28,9 +29,11 @@ void PatternModifierTest::testBasic() {
mod.setPatternInfo(&patternInfo);
mod.setPatternAttributes(UNUM_SIGN_AUTO, false);
DecimalFormatSymbols symbols(Locale::getEnglish(), status);
- CurrencyUnit currency(u"USD", status);
- assertSuccess("Spot 2", status);
- mod.setSymbols(&symbols, currency, UNUM_UNIT_WIDTH_SHORT, nullptr);
+ CurrencySymbols currencySymbols({u"USD", status}, "en", status);
+ if (!assertSuccess("Spot 2", status, true)) {
+ return;
+ }
+ mod.setSymbols(&symbols, &currencySymbols, UNUM_UNIT_WIDTH_SHORT, nullptr);
mod.setNumberProperties(1, StandardPlural::Form::COUNT);
assertEquals("Pattern a0b", u"a", getPrefix(mod, status));
@@ -88,9 +91,11 @@ void PatternModifierTest::testPatternWithNoPlaceholder() {
mod.setPatternInfo(&patternInfo);
mod.setPatternAttributes(UNUM_SIGN_AUTO, false);
DecimalFormatSymbols symbols(Locale::getEnglish(), status);
- CurrencyUnit currency(u"USD", status);
- assertSuccess("Spot 2", status);
- mod.setSymbols(&symbols, currency, UNUM_UNIT_WIDTH_SHORT, nullptr);
+ CurrencySymbols currencySymbols({u"USD", status}, "en", status);
+ if (!assertSuccess("Spot 2", status, true)) {
+ return;
+ }
+ mod.setSymbols(&symbols, &currencySymbols, UNUM_UNIT_WIDTH_SHORT, nullptr);
mod.setNumberProperties(1, StandardPlural::Form::COUNT);
// Unsafe Code Path
@@ -129,10 +134,10 @@ void PatternModifierTest::testMutableEqualsImmutable() {
mod.setPatternInfo(&patternInfo);
mod.setPatternAttributes(UNUM_SIGN_AUTO, false);
DecimalFormatSymbols symbols(Locale::getEnglish(), status);
- CurrencyUnit currency(u"USD", status);
+ CurrencySymbols currencySymbols({u"USD", status}, "en", status);
assertSuccess("Spot 2", status);
if (U_FAILURE(status)) { return; }
- mod.setSymbols(&symbols, currency, UNUM_UNIT_WIDTH_SHORT, nullptr);
+ mod.setSymbols(&symbols, &currencySymbols, UNUM_UNIT_WIDTH_SHORT, nullptr);
DecimalQuantity fq;
fq.setToInt(1);
@@ -165,14 +170,14 @@ void PatternModifierTest::testMutableEqualsImmutable() {
UnicodeString PatternModifierTest::getPrefix(const MutablePatternModifier &mod, UErrorCode &status) {
NumberStringBuilder nsb;
mod.apply(nsb, 0, 0, status);
- int32_t prefixLength = mod.getPrefixLength(status);
+ int32_t prefixLength = mod.getPrefixLength();
return UnicodeString(nsb.toUnicodeString(), 0, prefixLength);
}
UnicodeString PatternModifierTest::getSuffix(const MutablePatternModifier &mod, UErrorCode &status) {
NumberStringBuilder nsb;
mod.apply(nsb, 0, 0, status);
- int32_t prefixLength = mod.getPrefixLength(status);
+ int32_t prefixLength = mod.getPrefixLength();
return UnicodeString(nsb.toUnicodeString(), prefixLength, nsb.length() - prefixLength);
}
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_patternstring.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_patternstring.cpp
index aa2c2b47365..b89148df00d 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_patternstring.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_patternstring.cpp
@@ -3,30 +3,55 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
#include "numbertest.h"
#include "number_patternstring.h"
-void PatternStringTest::runIndexedTest(int32_t index, UBool exec, const char *&name, char *) {
+void PatternStringTest::runIndexedTest(int32_t index, UBool exec, const char*& name, char*) {
if (exec) {
logln("TestSuite PatternStringTest: ");
}
TESTCASE_AUTO_BEGIN;
+ TESTCASE_AUTO(testLocalized);
TESTCASE_AUTO(testToPatternSimple);
TESTCASE_AUTO(testExceptionOnInvalid);
TESTCASE_AUTO(testBug13117);
TESTCASE_AUTO_END;
}
+void PatternStringTest::testLocalized() {
+ IcuTestErrorCode status(*this, "testLocalized");
+ DecimalFormatSymbols symbols(Locale::getEnglish(), status);
+ if (status.isFailure()) { return; }
+ symbols.setSymbol(DecimalFormatSymbols::kDecimalSeparatorSymbol, u"a", status);
+ symbols.setSymbol(DecimalFormatSymbols::kPercentSymbol, u"b", status);
+ symbols.setSymbol(DecimalFormatSymbols::kMinusSignSymbol, u".", status);
+ symbols.setSymbol(DecimalFormatSymbols::kPlusSignSymbol, u"'", status);
+
+ UnicodeString standard = u"+-abcb''a''#,##0.0%'a%'";
+ UnicodeString localized = u"’.'ab'c'b''a'''#,##0a0b'a%'";
+ UnicodeString toStandard = u"+-'ab'c'b''a'''#,##0.0%'a%'";
+
+ assertEquals(
+ "standard to localized",
+ localized,
+ PatternStringUtils::convertLocalized(standard, symbols, true, status));
+ assertEquals(
+ "localized to standard",
+ toStandard,
+ PatternStringUtils::convertLocalized(localized, symbols, false, status));
+}
+
void PatternStringTest::testToPatternSimple() {
- const char16_t *cases[][2] = {{u"#", u"0"},
+ const char16_t* cases[][2] = {{u"#", u"0"},
{u"0", u"0"},
{u"#0", u"0"},
{u"###", u"0"},
{u"0.##", u"0.##"},
{u"0.00", u"0.00"},
{u"0.00#", u"0.00#"},
+ {u"0.05", u"0.05"},
{u"#E0", u"#E0"},
{u"0E0", u"0E0"},
{u"#00E00", u"#00E00"},
@@ -34,6 +59,7 @@ void PatternStringTest::testToPatternSimple() {
{u"#;#", u"0;0"},
// ignore a negative prefix pattern of '-' since that is the default:
{u"#;-#", u"0"},
+ {u"pp#,000;(#)", u"pp#,000;(#,000)"},
{u"**##0", u"**##0"},
{u"*'x'##0", u"*x##0"},
{u"a''b0", u"a''b0"},
@@ -42,12 +68,12 @@ void PatternStringTest::testToPatternSimple() {
{u"*'நி'##0", u"*'நி'##0"},};
UErrorCode status = U_ZERO_ERROR;
- for (const char16_t **cas : cases) {
+ for (const char16_t** cas : cases) {
UnicodeString input(cas[0]);
UnicodeString output(cas[1]);
DecimalFormatProperties properties = PatternParser::parseToProperties(
- input, PatternParser::IGNORE_ROUNDING_NEVER, status);
+ input, IGNORE_ROUNDING_NEVER, status);
assertSuccess(input, status);
UnicodeString actual = PatternStringUtils::propertiesToPatternString(properties, status);
assertEquals(input, output, actual);
@@ -55,7 +81,7 @@ void PatternStringTest::testToPatternSimple() {
}
void PatternStringTest::testExceptionOnInvalid() {
- static const char16_t *invalidPatterns[] = {
+ static const char16_t* invalidPatterns[] = {
u"#.#.#",
u"0#",
u"0#.",
@@ -80,13 +106,9 @@ void PatternStringTest::testExceptionOnInvalid() {
void PatternStringTest::testBug13117() {
UErrorCode status = U_ZERO_ERROR;
DecimalFormatProperties expected = PatternParser::parseToProperties(
- u"0",
- PatternParser::IGNORE_ROUNDING_NEVER,
- status);
+ u"0", IGNORE_ROUNDING_NEVER, status);
DecimalFormatProperties actual = PatternParser::parseToProperties(
- u"0;",
- PatternParser::IGNORE_ROUNDING_NEVER,
- status);
+ u"0;", IGNORE_ROUNDING_NEVER, status);
assertSuccess("Spot 1", status);
assertTrue("Should not consume negative subpattern", expected == actual);
}
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_range.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_range.cpp
new file mode 100644
index 00000000000..571864644f6
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_range.cpp
@@ -0,0 +1,809 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+#include "numbertest.h"
+#include "unicode/numberrangeformatter.h"
+
+#include <cmath>
+#include <numparse_affixes.h>
+
+// Horrible workaround for the lack of a status code in the constructor...
+// (Also affects numbertest_api.cpp)
+UErrorCode globalNumberRangeFormatterTestStatus = U_ZERO_ERROR;
+
+NumberRangeFormatterTest::NumberRangeFormatterTest()
+ : NumberRangeFormatterTest(globalNumberRangeFormatterTestStatus) {
+}
+
+NumberRangeFormatterTest::NumberRangeFormatterTest(UErrorCode& status)
+ : USD(u"USD", status),
+ GBP(u"GBP", status),
+ PTE(u"PTE", status) {
+
+ // Check for error on the first MeasureUnit in case there is no data
+ LocalPointer<MeasureUnit> unit(MeasureUnit::createMeter(status));
+ if (U_FAILURE(status)) {
+ dataerrln("%s %d status = %s", __FILE__, __LINE__, u_errorName(status));
+ return;
+ }
+ METER = *unit;
+
+ KILOMETER = *LocalPointer<MeasureUnit>(MeasureUnit::createKilometer(status));
+ FAHRENHEIT = *LocalPointer<MeasureUnit>(MeasureUnit::createFahrenheit(status));
+ KELVIN = *LocalPointer<MeasureUnit>(MeasureUnit::createKelvin(status));
+}
+
+void NumberRangeFormatterTest::runIndexedTest(int32_t index, UBool exec, const char*& name, char*) {
+ if (exec) {
+ logln("TestSuite NumberRangeFormatterTest: ");
+ }
+ TESTCASE_AUTO_BEGIN;
+ TESTCASE_AUTO(testSanity);
+ TESTCASE_AUTO(testBasic);
+ TESTCASE_AUTO(testCollapse);
+ TESTCASE_AUTO(testIdentity);
+ TESTCASE_AUTO(testDifferentFormatters);
+ TESTCASE_AUTO(testPlurals);
+ TESTCASE_AUTO(testCopyMove);
+ TESTCASE_AUTO_END;
+}
+
+void NumberRangeFormatterTest::testSanity() {
+ IcuTestErrorCode status(*this, "testSanity");
+ LocalizedNumberRangeFormatter lnrf1 = NumberRangeFormatter::withLocale("en-us");
+ LocalizedNumberRangeFormatter lnrf2 = NumberRangeFormatter::with().locale("en-us");
+ assertEquals("Formatters should have same behavior 1",
+ lnrf1.formatFormattableRange(4, 6, status).toString(status),
+ lnrf2.formatFormattableRange(4, 6, status).toString(status));
+}
+
+void NumberRangeFormatterTest::testBasic() {
+ assertFormatRange(
+ u"Basic",
+ NumberRangeFormatter::with(),
+ Locale("en-us"),
+ u"1–5",
+ u"~5",
+ u"~5",
+ u"0–3",
+ u"~0",
+ u"3–3,000",
+ u"3,000–5,000",
+ u"4,999–5,001",
+ u"~5,000",
+ u"5,000–5,000,000");
+
+ assertFormatRange(
+ u"Basic with units",
+ NumberRangeFormatter::with()
+ .numberFormatterBoth(NumberFormatter::with().unit(METER)),
+ Locale("en-us"),
+ u"1–5 m",
+ u"~5 m",
+ u"~5 m",
+ u"0–3 m",
+ u"~0 m",
+ u"3–3,000 m",
+ u"3,000–5,000 m",
+ u"4,999–5,001 m",
+ u"~5,000 m",
+ u"5,000–5,000,000 m");
+
+ assertFormatRange(
+ u"Basic with different units",
+ NumberRangeFormatter::with()
+ .numberFormatterFirst(NumberFormatter::with().unit(METER))
+ .numberFormatterSecond(NumberFormatter::with().unit(KILOMETER)),
+ Locale("en-us"),
+ u"1 m – 5 km",
+ u"5 m – 5 km",
+ u"5 m – 5 km",
+ u"0 m – 3 km",
+ u"0 m – 0 km",
+ u"3 m – 3,000 km",
+ u"3,000 m – 5,000 km",
+ u"4,999 m – 5,001 km",
+ u"5,000 m – 5,000 km",
+ u"5,000 m – 5,000,000 km");
+
+ assertFormatRange(
+ u"Basic long unit",
+ NumberRangeFormatter::with()
+ .numberFormatterBoth(NumberFormatter::with().unit(METER).unitWidth(UNUM_UNIT_WIDTH_FULL_NAME)),
+ Locale("en-us"),
+ u"1–5 meters",
+ u"~5 meters",
+ u"~5 meters",
+ u"0–3 meters",
+ u"~0 meters",
+ u"3–3,000 meters",
+ u"3,000–5,000 meters",
+ u"4,999–5,001 meters",
+ u"~5,000 meters",
+ u"5,000–5,000,000 meters");
+
+ assertFormatRange(
+ u"Non-English locale and unit",
+ NumberRangeFormatter::with()
+ .numberFormatterBoth(NumberFormatter::with().unit(FAHRENHEIT).unitWidth(UNUM_UNIT_WIDTH_FULL_NAME)),
+ Locale("fr-FR"),
+ u"1–5\u00A0degrés Fahrenheit",
+ u"≈5\u00A0degrés Fahrenheit",
+ u"≈5\u00A0degrés Fahrenheit",
+ u"0–3\u00A0degrés Fahrenheit",
+ u"≈0\u00A0degré Fahrenheit",
+ u"3–3\u202F000\u00A0degrés Fahrenheit",
+ u"3\u202F000–5\u202F000\u00A0degrés Fahrenheit",
+ u"4\u202F999–5\u202F001\u00A0degrés Fahrenheit",
+ u"≈5\u202F000\u00A0degrés Fahrenheit",
+ u"5\u202F000–5\u202F000\u202F000\u00A0degrés Fahrenheit");
+
+ assertFormatRange(
+ u"Locale with custom range separator",
+ NumberRangeFormatter::with(),
+ Locale("ja"),
+ u"1~5",
+ u"約 5",
+ u"約 5",
+ u"0~3",
+ u"約 0",
+ u"3~3,000",
+ u"3,000~5,000",
+ u"4,999~5,001",
+ u"約 5,000",
+ u"5,000~5,000,000");
+
+ assertFormatRange(
+ u"Locale that already has spaces around range separator",
+ NumberRangeFormatter::with()
+ .collapse(UNUM_RANGE_COLLAPSE_NONE)
+ .numberFormatterBoth(NumberFormatter::with().unit(KELVIN)),
+ Locale("hr"),
+ u"1 K – 5 K",
+ u"~5 K",
+ u"~5 K",
+ u"0 K – 3 K",
+ u"~0 K",
+ u"3 K – 3.000 K",
+ u"3.000 K – 5.000 K",
+ u"4.999 K – 5.001 K",
+ u"~5.000 K",
+ u"5.000 K – 5.000.000 K");
+
+ assertFormatRange(
+ u"Locale with custom numbering system and no plural ranges data",
+ NumberRangeFormatter::with(),
+ Locale("shn@numbers=beng"),
+ // 012459 = ০১৩৪৫৯
+ u"১–৫",
+ u"~৫",
+ u"~৫",
+ u"০–৩",
+ u"~০",
+ u"৩–৩,০০০",
+ u"৩,০০০–৫,০০০",
+ u"৪,৯৯৯–৫,০০১",
+ u"~৫,০০০",
+ u"৫,০০০–৫,০০০,০০০");
+
+ assertFormatRange(
+ u"Portuguese currency",
+ NumberRangeFormatter::with()
+ .numberFormatterBoth(NumberFormatter::with().unit(PTE)),
+ Locale("pt-PT"),
+ u"1$00 - 5$00 \u200B",
+ u"~5$00 \u200B",
+ u"~5$00 \u200B",
+ u"0$00 - 3$00 \u200B",
+ u"~0$00 \u200B",
+ u"3$00 - 3000$00 \u200B",
+ u"3000$00 - 5000$00 \u200B",
+ u"4999$00 - 5001$00 \u200B",
+ u"~5000$00 \u200B",
+ u"5000$00 - 5,000,000$00 \u200B");
+}
+
+void NumberRangeFormatterTest::testCollapse() {
+ assertFormatRange(
+ u"Default collapse on currency (default rounding)",
+ NumberRangeFormatter::with()
+ .numberFormatterBoth(NumberFormatter::with().unit(USD)),
+ Locale("en-us"),
+ u"$1.00 – $5.00",
+ u"~$5.00",
+ u"~$5.00",
+ u"$0.00 – $3.00",
+ u"~$0.00",
+ u"$3.00 – $3,000.00",
+ u"$3,000.00 – $5,000.00",
+ u"$4,999.00 – $5,001.00",
+ u"~$5,000.00",
+ u"$5,000.00 – $5,000,000.00");
+
+ assertFormatRange(
+ u"Default collapse on currency",
+ NumberRangeFormatter::with()
+ .numberFormatterBoth(NumberFormatter::with().unit(USD).precision(Precision::integer())),
+ Locale("en-us"),
+ u"$1 – $5",
+ u"~$5",
+ u"~$5",
+ u"$0 – $3",
+ u"~$0",
+ u"$3 – $3,000",
+ u"$3,000 – $5,000",
+ u"$4,999 – $5,001",
+ u"~$5,000",
+ u"$5,000 – $5,000,000");
+
+ assertFormatRange(
+ u"No collapse on currency",
+ NumberRangeFormatter::with()
+ .collapse(UNUM_RANGE_COLLAPSE_NONE)
+ .numberFormatterBoth(NumberFormatter::with().unit(USD).precision(Precision::integer())),
+ Locale("en-us"),
+ u"$1 – $5",
+ u"~$5",
+ u"~$5",
+ u"$0 – $3",
+ u"~$0",
+ u"$3 – $3,000",
+ u"$3,000 – $5,000",
+ u"$4,999 – $5,001",
+ u"~$5,000",
+ u"$5,000 – $5,000,000");
+
+ assertFormatRange(
+ u"Unit collapse on currency",
+ NumberRangeFormatter::with()
+ .collapse(UNUM_RANGE_COLLAPSE_UNIT)
+ .numberFormatterBoth(NumberFormatter::with().unit(USD).precision(Precision::integer())),
+ Locale("en-us"),
+ u"$1–5",
+ u"~$5",
+ u"~$5",
+ u"$0–3",
+ u"~$0",
+ u"$3–3,000",
+ u"$3,000–5,000",
+ u"$4,999–5,001",
+ u"~$5,000",
+ u"$5,000–5,000,000");
+
+ assertFormatRange(
+ u"All collapse on currency",
+ NumberRangeFormatter::with()
+ .collapse(UNUM_RANGE_COLLAPSE_ALL)
+ .numberFormatterBoth(NumberFormatter::with().unit(USD).precision(Precision::integer())),
+ Locale("en-us"),
+ u"$1–5",
+ u"~$5",
+ u"~$5",
+ u"$0–3",
+ u"~$0",
+ u"$3–3,000",
+ u"$3,000–5,000",
+ u"$4,999–5,001",
+ u"~$5,000",
+ u"$5,000–5,000,000");
+
+ assertFormatRange(
+ u"Default collapse on currency ISO code",
+ NumberRangeFormatter::with()
+ .numberFormatterBoth(NumberFormatter::with()
+ .unit(GBP)
+ .unitWidth(UNUM_UNIT_WIDTH_ISO_CODE)
+ .precision(Precision::integer())),
+ Locale("en-us"),
+ u"GBP 1–5",
+ u"~GBP 5", // TODO: Fix this at some point
+ u"~GBP 5",
+ u"GBP 0–3",
+ u"~GBP 0",
+ u"GBP 3–3,000",
+ u"GBP 3,000–5,000",
+ u"GBP 4,999–5,001",
+ u"~GBP 5,000",
+ u"GBP 5,000–5,000,000");
+
+ assertFormatRange(
+ u"No collapse on currency ISO code",
+ NumberRangeFormatter::with()
+ .collapse(UNUM_RANGE_COLLAPSE_NONE)
+ .numberFormatterBoth(NumberFormatter::with()
+ .unit(GBP)
+ .unitWidth(UNUM_UNIT_WIDTH_ISO_CODE)
+ .precision(Precision::integer())),
+ Locale("en-us"),
+ u"GBP 1 – GBP 5",
+ u"~GBP 5", // TODO: Fix this at some point
+ u"~GBP 5",
+ u"GBP 0 – GBP 3",
+ u"~GBP 0",
+ u"GBP 3 – GBP 3,000",
+ u"GBP 3,000 – GBP 5,000",
+ u"GBP 4,999 – GBP 5,001",
+ u"~GBP 5,000",
+ u"GBP 5,000 – GBP 5,000,000");
+
+ assertFormatRange(
+ u"Unit collapse on currency ISO code",
+ NumberRangeFormatter::with()
+ .collapse(UNUM_RANGE_COLLAPSE_UNIT)
+ .numberFormatterBoth(NumberFormatter::with()
+ .unit(GBP)
+ .unitWidth(UNUM_UNIT_WIDTH_ISO_CODE)
+ .precision(Precision::integer())),
+ Locale("en-us"),
+ u"GBP 1–5",
+ u"~GBP 5", // TODO: Fix this at some point
+ u"~GBP 5",
+ u"GBP 0–3",
+ u"~GBP 0",
+ u"GBP 3–3,000",
+ u"GBP 3,000–5,000",
+ u"GBP 4,999–5,001",
+ u"~GBP 5,000",
+ u"GBP 5,000–5,000,000");
+
+ assertFormatRange(
+ u"All collapse on currency ISO code",
+ NumberRangeFormatter::with()
+ .collapse(UNUM_RANGE_COLLAPSE_ALL)
+ .numberFormatterBoth(NumberFormatter::with()
+ .unit(GBP)
+ .unitWidth(UNUM_UNIT_WIDTH_ISO_CODE)
+ .precision(Precision::integer())),
+ Locale("en-us"),
+ u"GBP 1–5",
+ u"~GBP 5", // TODO: Fix this at some point
+ u"~GBP 5",
+ u"GBP 0–3",
+ u"~GBP 0",
+ u"GBP 3–3,000",
+ u"GBP 3,000–5,000",
+ u"GBP 4,999–5,001",
+ u"~GBP 5,000",
+ u"GBP 5,000–5,000,000");
+
+ // Default collapse on measurement unit is in testBasic()
+
+ assertFormatRange(
+ u"No collapse on measurement unit",
+ NumberRangeFormatter::with()
+ .collapse(UNUM_RANGE_COLLAPSE_NONE)
+ .numberFormatterBoth(NumberFormatter::with().unit(METER)),
+ Locale("en-us"),
+ u"1 m – 5 m",
+ u"~5 m",
+ u"~5 m",
+ u"0 m – 3 m",
+ u"~0 m",
+ u"3 m – 3,000 m",
+ u"3,000 m – 5,000 m",
+ u"4,999 m – 5,001 m",
+ u"~5,000 m",
+ u"5,000 m – 5,000,000 m");
+
+ assertFormatRange(
+ u"Unit collapse on measurement unit",
+ NumberRangeFormatter::with()
+ .collapse(UNUM_RANGE_COLLAPSE_UNIT)
+ .numberFormatterBoth(NumberFormatter::with().unit(METER)),
+ Locale("en-us"),
+ u"1–5 m",
+ u"~5 m",
+ u"~5 m",
+ u"0–3 m",
+ u"~0 m",
+ u"3–3,000 m",
+ u"3,000–5,000 m",
+ u"4,999–5,001 m",
+ u"~5,000 m",
+ u"5,000–5,000,000 m");
+
+ assertFormatRange(
+ u"All collapse on measurement unit",
+ NumberRangeFormatter::with()
+ .collapse(UNUM_RANGE_COLLAPSE_ALL)
+ .numberFormatterBoth(NumberFormatter::with().unit(METER)),
+ Locale("en-us"),
+ u"1–5 m",
+ u"~5 m",
+ u"~5 m",
+ u"0–3 m",
+ u"~0 m",
+ u"3–3,000 m",
+ u"3,000–5,000 m",
+ u"4,999–5,001 m",
+ u"~5,000 m",
+ u"5,000–5,000,000 m");
+
+ assertFormatRange(
+ u"Default collapse, long-form compact notation",
+ NumberRangeFormatter::with()
+ .numberFormatterBoth(NumberFormatter::with().notation(Notation::compactLong())),
+ Locale("de-CH"),
+ u"1–5",
+ u"≈5",
+ u"≈5",
+ u"0–3",
+ u"≈0",
+ u"3–3 Tausend",
+ u"3–5 Tausend",
+ u"≈5 Tausend",
+ u"≈5 Tausend",
+ u"5 Tausend – 5 Millionen");
+
+ assertFormatRange(
+ u"Unit collapse, long-form compact notation",
+ NumberRangeFormatter::with()
+ .collapse(UNUM_RANGE_COLLAPSE_UNIT)
+ .numberFormatterBoth(NumberFormatter::with().notation(Notation::compactLong())),
+ Locale("de-CH"),
+ u"1–5",
+ u"≈5",
+ u"≈5",
+ u"0–3",
+ u"≈0",
+ u"3–3 Tausend",
+ u"3 Tausend – 5 Tausend",
+ u"≈5 Tausend",
+ u"≈5 Tausend",
+ u"5 Tausend – 5 Millionen");
+
+ assertFormatRange(
+ u"Default collapse on measurement unit with compact-short notation",
+ NumberRangeFormatter::with()
+ .numberFormatterBoth(NumberFormatter::with().notation(Notation::compactShort()).unit(METER)),
+ Locale("en-us"),
+ u"1–5 m",
+ u"~5 m",
+ u"~5 m",
+ u"0–3 m",
+ u"~0 m",
+ u"3–3K m",
+ u"3K – 5K m",
+ u"~5K m",
+ u"~5K m",
+ u"5K – 5M m");
+
+ assertFormatRange(
+ u"No collapse on measurement unit with compact-short notation",
+ NumberRangeFormatter::with()
+ .collapse(UNUM_RANGE_COLLAPSE_NONE)
+ .numberFormatterBoth(NumberFormatter::with().notation(Notation::compactShort()).unit(METER)),
+ Locale("en-us"),
+ u"1 m – 5 m",
+ u"~5 m",
+ u"~5 m",
+ u"0 m – 3 m",
+ u"~0 m",
+ u"3 m – 3K m",
+ u"3K m – 5K m",
+ u"~5K m",
+ u"~5K m",
+ u"5K m – 5M m");
+
+ assertFormatRange(
+ u"Unit collapse on measurement unit with compact-short notation",
+ NumberRangeFormatter::with()
+ .collapse(UNUM_RANGE_COLLAPSE_UNIT)
+ .numberFormatterBoth(NumberFormatter::with().notation(Notation::compactShort()).unit(METER)),
+ Locale("en-us"),
+ u"1–5 m",
+ u"~5 m",
+ u"~5 m",
+ u"0–3 m",
+ u"~0 m",
+ u"3–3K m",
+ u"3K – 5K m",
+ u"~5K m",
+ u"~5K m",
+ u"5K – 5M m");
+
+ assertFormatRange(
+ u"All collapse on measurement unit with compact-short notation",
+ NumberRangeFormatter::with()
+ .collapse(UNUM_RANGE_COLLAPSE_ALL)
+ .numberFormatterBoth(NumberFormatter::with().notation(Notation::compactShort()).unit(METER)),
+ Locale("en-us"),
+ u"1–5 m",
+ u"~5 m",
+ u"~5 m",
+ u"0–3 m",
+ u"~0 m",
+ u"3–3K m",
+ u"3–5K m", // this one is the key use case for ALL
+ u"~5K m",
+ u"~5K m",
+ u"5K – 5M m");
+
+ assertFormatRange(
+ u"No collapse on scientific notation",
+ NumberRangeFormatter::with()
+ .collapse(UNUM_RANGE_COLLAPSE_NONE)
+ .numberFormatterBoth(NumberFormatter::with().notation(Notation::scientific())),
+ Locale("en-us"),
+ u"1E0 – 5E0",
+ u"~5E0",
+ u"~5E0",
+ u"0E0 – 3E0",
+ u"~0E0",
+ u"3E0 – 3E3",
+ u"3E3 – 5E3",
+ u"4.999E3 – 5.001E3",
+ u"~5E3",
+ u"5E3 – 5E6");
+
+ assertFormatRange(
+ u"All collapse on scientific notation",
+ NumberRangeFormatter::with()
+ .collapse(UNUM_RANGE_COLLAPSE_ALL)
+ .numberFormatterBoth(NumberFormatter::with().notation(Notation::scientific())),
+ Locale("en-us"),
+ u"1–5E0",
+ u"~5E0",
+ u"~5E0",
+ u"0–3E0",
+ u"~0E0",
+ u"3E0 – 3E3",
+ u"3–5E3",
+ u"4.999–5.001E3",
+ u"~5E3",
+ u"5E3 – 5E6");
+
+ // TODO: Test compact currency?
+ // The code is not smart enough to differentiate the notation from the unit.
+}
+
+void NumberRangeFormatterTest::testIdentity() {
+ assertFormatRange(
+ u"Identity fallback Range",
+ NumberRangeFormatter::with().identityFallback(UNUM_IDENTITY_FALLBACK_RANGE),
+ Locale("en-us"),
+ u"1–5",
+ u"5–5",
+ u"5–5",
+ u"0–3",
+ u"0–0",
+ u"3–3,000",
+ u"3,000–5,000",
+ u"4,999–5,001",
+ u"5,000–5,000",
+ u"5,000–5,000,000");
+
+ assertFormatRange(
+ u"Identity fallback Approximately or Single Value",
+ NumberRangeFormatter::with().identityFallback(UNUM_IDENTITY_FALLBACK_APPROXIMATELY_OR_SINGLE_VALUE),
+ Locale("en-us"),
+ u"1–5",
+ u"~5",
+ u"5",
+ u"0–3",
+ u"0",
+ u"3–3,000",
+ u"3,000–5,000",
+ u"4,999–5,001",
+ u"5,000",
+ u"5,000–5,000,000");
+
+ assertFormatRange(
+ u"Identity fallback Single Value",
+ NumberRangeFormatter::with().identityFallback(UNUM_IDENTITY_FALLBACK_SINGLE_VALUE),
+ Locale("en-us"),
+ u"1–5",
+ u"5",
+ u"5",
+ u"0–3",
+ u"0",
+ u"3–3,000",
+ u"3,000–5,000",
+ u"4,999–5,001",
+ u"5,000",
+ u"5,000–5,000,000");
+
+ assertFormatRange(
+ u"Identity fallback Approximately or Single Value with compact notation",
+ NumberRangeFormatter::with()
+ .identityFallback(UNUM_IDENTITY_FALLBACK_APPROXIMATELY_OR_SINGLE_VALUE)
+ .numberFormatterBoth(NumberFormatter::with().notation(Notation::compactShort())),
+ Locale("en-us"),
+ u"1–5",
+ u"~5",
+ u"5",
+ u"0–3",
+ u"0",
+ u"3–3K",
+ u"3K – 5K",
+ u"~5K",
+ u"5K",
+ u"5K – 5M");
+
+ assertFormatRange(
+ u"Approximately in middle of unit string",
+ NumberRangeFormatter::with().numberFormatterBoth(
+ NumberFormatter::with().unit(FAHRENHEIT).unitWidth(UNUM_UNIT_WIDTH_FULL_NAME)),
+ Locale("zh-Hant"),
+ u"華氏 1-5 度",
+ u"華氏 ~5 度",
+ u"華氏 ~5 度",
+ u"華氏 0-3 度",
+ u"華氏 ~0 度",
+ u"華氏 3-3,000 度",
+ u"華氏 3,000-5,000 度",
+ u"華氏 4,999-5,001 度",
+ u"華氏 ~5,000 度",
+ u"華氏 5,000-5,000,000 度");
+}
+
+void NumberRangeFormatterTest::testDifferentFormatters() {
+ assertFormatRange(
+ u"Different rounding rules",
+ NumberRangeFormatter::with()
+ .numberFormatterFirst(NumberFormatter::with().precision(Precision::integer()))
+ .numberFormatterSecond(NumberFormatter::with().precision(Precision::fixedDigits(2))),
+ Locale("en-us"),
+ u"1–5.0",
+ u"5–5.0",
+ u"5–5.0",
+ u"0–3.0",
+ u"0–0.0",
+ u"3–3,000",
+ u"3,000–5,000",
+ u"4,999–5,000",
+ u"5,000–5,000", // TODO: Should this one be ~5,000?
+ u"5,000–5,000,000");
+}
+
+void NumberRangeFormatterTest::testPlurals() {
+ IcuTestErrorCode status(*this, "testPlurals");
+
+ // Locale sl has interesting plural forms:
+ // GBP{
+ // one{"britanski funt"}
+ // two{"britanska funta"}
+ // few{"britanski funti"}
+ // other{"britanskih funtov"}
+ // }
+ Locale locale("sl");
+
+ UnlocalizedNumberFormatter unf = NumberFormatter::with()
+ .unit(GBP)
+ .unitWidth(UNUM_UNIT_WIDTH_FULL_NAME)
+ .precision(Precision::integer());
+ LocalizedNumberFormatter lnf = unf.locale(locale);
+
+ // For comparison, run the non-range version of the formatter
+ assertEquals(Int64ToUnicodeString(1), u"1 britanski funt", lnf.formatDouble(1, status).toString(status));
+ assertEquals(Int64ToUnicodeString(2), u"2 britanska funta", lnf.formatDouble(2, status).toString(status));
+ assertEquals(Int64ToUnicodeString(3), u"3 britanski funti", lnf.formatDouble(3, status).toString(status));
+ assertEquals(Int64ToUnicodeString(5), u"5 britanskih funtov", lnf.formatDouble(5, status).toString(status));
+ if (status.errIfFailureAndReset()) { return; }
+
+ LocalizedNumberRangeFormatter lnrf = NumberRangeFormatter::with()
+ .numberFormatterBoth(unf)
+ .identityFallback(UNUM_IDENTITY_FALLBACK_RANGE)
+ .locale(locale);
+
+ struct TestCase {
+ double first;
+ double second;
+ const char16_t* expected;
+ } cases[] = {
+ {1, 1, u"1–1 britanski funti"}, // one + one -> few
+ {1, 2, u"1–2 britanska funta"}, // one + two -> two
+ {1, 3, u"1–3 britanski funti"}, // one + few -> few
+ {1, 5, u"1–5 britanskih funtov"}, // one + other -> other
+ {2, 1, u"2–1 britanski funti"}, // two + one -> few
+ {2, 2, u"2–2 britanska funta"}, // two + two -> two
+ {2, 3, u"2–3 britanski funti"}, // two + few -> few
+ {2, 5, u"2–5 britanskih funtov"}, // two + other -> other
+ {3, 1, u"3–1 britanski funti"}, // few + one -> few
+ {3, 2, u"3–2 britanska funta"}, // few + two -> two
+ {3, 3, u"3–3 britanski funti"}, // few + few -> few
+ {3, 5, u"3–5 britanskih funtov"}, // few + other -> other
+ {5, 1, u"5–1 britanski funti"}, // other + one -> few
+ {5, 2, u"5–2 britanska funta"}, // other + two -> two
+ {5, 3, u"5–3 britanski funti"}, // other + few -> few
+ {5, 5, u"5–5 britanskih funtov"}, // other + other -> other
+ };
+ for (auto& cas : cases) {
+ UnicodeString message = Int64ToUnicodeString(cas.first);
+ message += u" ";
+ message += Int64ToUnicodeString(cas.second);
+ status.setScope(message);
+ UnicodeString actual = lnrf.formatFormattableRange(cas.first, cas.second, status).toString(status);
+ assertEquals(message, cas.expected, actual);
+ status.errIfFailureAndReset();
+ }
+}
+
+void NumberRangeFormatterTest::testCopyMove() {
+ IcuTestErrorCode status(*this, "testCopyMove");
+
+ // Default constructors
+ LocalizedNumberRangeFormatter l1;
+ assertEquals("Initial behavior", u"1–5", l1.formatFormattableRange(1, 5, status).toString(status));
+ if (status.errDataIfFailureAndReset()) { return; }
+
+ // Setup
+ l1 = NumberRangeFormatter::withLocale("fr-FR")
+ .numberFormatterBoth(NumberFormatter::with().unit(USD));
+ assertEquals("Currency behavior", u"1,00–5,00 $US", l1.formatFormattableRange(1, 5, status).toString(status));
+
+ // Copy constructor
+ LocalizedNumberRangeFormatter l2 = l1;
+ assertEquals("Copy constructor", u"1,00–5,00 $US", l2.formatFormattableRange(1, 5, status).toString(status));
+
+ // Move constructor
+ LocalizedNumberRangeFormatter l3 = std::move(l1);
+ assertEquals("Move constructor", u"1,00–5,00 $US", l3.formatFormattableRange(1, 5, status).toString(status));
+
+ // Reset objects for assignment tests
+ l1 = NumberRangeFormatter::withLocale("en-us");
+ l2 = NumberRangeFormatter::withLocale("en-us");
+ assertEquals("Rest behavior, l1", u"1–5", l1.formatFormattableRange(1, 5, status).toString(status));
+ assertEquals("Rest behavior, l2", u"1–5", l2.formatFormattableRange(1, 5, status).toString(status));
+
+ // Copy assignment
+ l1 = l3;
+ assertEquals("Copy constructor", u"1,00–5,00 $US", l1.formatFormattableRange(1, 5, status).toString(status));
+
+ // Move assignment
+ l2 = std::move(l3);
+ assertEquals("Copy constructor", u"1,00–5,00 $US", l2.formatFormattableRange(1, 5, status).toString(status));
+
+ // FormattedNumberRange
+ FormattedNumberRange result = l1.formatFormattableRange(1, 5, status);
+ assertEquals("FormattedNumberRange move constructor", u"1,00–5,00 $US", result.toString(status));
+ result = l1.formatFormattableRange(3, 6, status);
+ assertEquals("FormattedNumberRange move assignment", u"3,00–6,00 $US", result.toString(status));
+}
+
+void NumberRangeFormatterTest::assertFormatRange(
+ const char16_t* message,
+ const UnlocalizedNumberRangeFormatter& f,
+ Locale locale,
+ const char16_t* expected_10_50,
+ const char16_t* expected_49_51,
+ const char16_t* expected_50_50,
+ const char16_t* expected_00_30,
+ const char16_t* expected_00_00,
+ const char16_t* expected_30_3K,
+ const char16_t* expected_30K_50K,
+ const char16_t* expected_49K_51K,
+ const char16_t* expected_50K_50K,
+ const char16_t* expected_50K_50M) {
+ LocalizedNumberRangeFormatter l = f.locale(locale);
+ assertFormattedRangeEquals(message, l, 1, 5, expected_10_50);
+ assertFormattedRangeEquals(message, l, 4.9999999, 5.0000001, expected_49_51);
+ assertFormattedRangeEquals(message, l, 5, 5, expected_50_50);
+ assertFormattedRangeEquals(message, l, 0, 3, expected_00_30);
+ assertFormattedRangeEquals(message, l, 0, 0, expected_00_00);
+ assertFormattedRangeEquals(message, l, 3, 3000, expected_30_3K);
+ assertFormattedRangeEquals(message, l, 3000, 5000, expected_30K_50K);
+ assertFormattedRangeEquals(message, l, 4999, 5001, expected_49K_51K);
+ assertFormattedRangeEquals(message, l, 5000, 5000, expected_50K_50K);
+ assertFormattedRangeEquals(message, l, 5e3, 5e6, expected_50K_50M);
+}
+
+void NumberRangeFormatterTest::assertFormattedRangeEquals(
+ const char16_t* message,
+ const LocalizedNumberRangeFormatter& l,
+ double first,
+ double second,
+ const char16_t* expected) {
+ IcuTestErrorCode status(*this, "assertFormattedRangeEquals");
+ UnicodeString fullMessage = UnicodeString(message) + u": " + DoubleToUnicodeString(first) + u", " + DoubleToUnicodeString(second);
+ status.setScope(fullMessage);
+ UnicodeString actual = l.formatFormattableRange(first, second, status).toString(status);
+ assertEquals(fullMessage, expected, actual);
+}
+
+
+#endif
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_skeletons.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_skeletons.cpp
new file mode 100644
index 00000000000..8ac05298538
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_skeletons.cpp
@@ -0,0 +1,272 @@
+// © 2017 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+#include "unicode/dcfmtsym.h"
+
+#include "cstr.h"
+#include "numbertest.h"
+#include "number_utils.h"
+#include "number_skeletons.h"
+#include "putilimp.h"
+
+using namespace icu::number::impl;
+
+
+void NumberSkeletonTest::runIndexedTest(int32_t index, UBool exec, const char*& name, char*) {
+ if (exec) {
+ logln("TestSuite AffixUtilsTest: ");
+ }
+ TESTCASE_AUTO_BEGIN;
+ TESTCASE_AUTO(validTokens);
+ TESTCASE_AUTO(invalidTokens);
+ TESTCASE_AUTO(unknownTokens);
+ TESTCASE_AUTO(unexpectedTokens);
+ TESTCASE_AUTO(duplicateValues);
+ TESTCASE_AUTO(stemsRequiringOption);
+ TESTCASE_AUTO(defaultTokens);
+ TESTCASE_AUTO(flexibleSeparators);
+ TESTCASE_AUTO_END;
+}
+
+void NumberSkeletonTest::validTokens() {
+ IcuTestErrorCode status(*this, "validTokens");
+
+ // This tests only if the tokens are valid, not their behavior.
+ // Most of these are from the design doc.
+ static const char16_t* cases[] = {
+ u"precision-integer",
+ u"precision-unlimited",
+ u"@@@##",
+ u"@@+",
+ u".000##",
+ u".00+",
+ u".",
+ u".+",
+ u".######",
+ u".00/@@+",
+ u".00/@##",
+ u"precision-increment/3.14",
+ u"precision-currency-standard",
+ u"precision-integer rounding-mode-half-up",
+ u".00# rounding-mode-ceiling",
+ u".00/@@+ rounding-mode-floor",
+ u"scientific",
+ u"scientific/+ee",
+ u"scientific/sign-always",
+ u"scientific/+ee/sign-always",
+ u"scientific/sign-always/+ee",
+ u"scientific/sign-except-zero",
+ u"engineering",
+ u"engineering/+eee",
+ u"compact-short",
+ u"compact-long",
+ u"notation-simple",
+ u"percent",
+ u"permille",
+ u"measure-unit/length-meter",
+ u"measure-unit/area-square-meter",
+ u"measure-unit/energy-joule per-measure-unit/length-meter",
+ u"currency/XXX",
+ u"currency/ZZZ",
+ u"currency/usd",
+ u"group-off",
+ u"group-min2",
+ u"group-auto",
+ u"group-on-aligned",
+ u"group-thousands",
+ u"integer-width/00",
+ u"integer-width/#0",
+ u"integer-width/+00",
+ u"sign-always",
+ u"sign-auto",
+ u"sign-never",
+ u"sign-accounting",
+ u"sign-accounting-always",
+ u"sign-except-zero",
+ u"sign-accounting-except-zero",
+ u"unit-width-narrow",
+ u"unit-width-short",
+ u"unit-width-iso-code",
+ u"unit-width-full-name",
+ u"unit-width-hidden",
+ u"decimal-auto",
+ u"decimal-always",
+ u"scale/5.2",
+ u"scale/-5.2",
+ u"scale/100",
+ u"scale/1E2",
+ u"scale/1",
+ u"latin",
+ u"numbering-system/arab",
+ u"numbering-system/latn",
+ u"precision-integer/@##",
+ u"precision-integer rounding-mode-ceiling",
+ u"precision-currency-cash rounding-mode-ceiling"};
+
+ for (auto& cas : cases) {
+ UnicodeString skeletonString(cas);
+ status.setScope(skeletonString);
+ NumberFormatter::forSkeleton(skeletonString, status);
+ assertSuccess(CStr(skeletonString)(), status, true);
+ status.errIfFailureAndReset();
+ }
+}
+
+void NumberSkeletonTest::invalidTokens() {
+ static const char16_t* cases[] = {
+ u".00x",
+ u".00##0",
+ u".##+",
+ u".00##+",
+ u".0#+",
+ u"@@x",
+ u"@@##0",
+ u"@#+",
+ u".00/@",
+ u".00/@@",
+ u".00/@@x",
+ u".00/@@#",
+ u".00/@@#+",
+ u".00/floor/@@+", // wrong order
+ u"precision-increment/français", // non-invariant characters for C++
+ u"scientific/ee",
+ u"precision-increment/xxx",
+ u"precision-increment/NaN",
+ u"precision-increment/0.1.2",
+ u"scale/xxx",
+ u"scale/NaN",
+ u"scale/0.1.2",
+ u"scale/français", // non-invariant characters for C++
+ u"currency/dummy",
+ u"currency/ççç", // three characters but not ASCII
+ u"measure-unit/foo",
+ u"integer-width/xxx",
+ u"integer-width/0+",
+ u"integer-width/+0#",
+ u"scientific/foo"};
+
+ expectedErrorSkeleton(cases, UPRV_LENGTHOF(cases));
+}
+
+void NumberSkeletonTest::unknownTokens() {
+ static const char16_t* cases[] = {
+ u"maesure-unit",
+ u"measure-unit/foo-bar",
+ u"numbering-system/dummy",
+ u"français",
+ u"measure-unit/français-français", // non-invariant characters for C++
+ u"numbering-system/français", // non-invariant characters for C++
+ u"currency-USD"};
+
+ expectedErrorSkeleton(cases, UPRV_LENGTHOF(cases));
+}
+
+void NumberSkeletonTest::unexpectedTokens() {
+ static const char16_t* cases[] = {
+ u"group-thousands/foo",
+ u"precision-integer//@## group-off",
+ u"precision-integer//@## group-off",
+ u"precision-integer/ group-off",
+ u"precision-integer// group-off"};
+
+ expectedErrorSkeleton(cases, UPRV_LENGTHOF(cases));
+}
+
+void NumberSkeletonTest::duplicateValues() {
+ static const char16_t* cases[] = {
+ u"precision-integer precision-integer",
+ u"precision-integer .00+",
+ u"precision-integer precision-unlimited",
+ u"precision-integer @@@",
+ u"scientific engineering",
+ u"engineering compact-long",
+ u"sign-auto sign-always"};
+
+ expectedErrorSkeleton(cases, UPRV_LENGTHOF(cases));
+}
+
+void NumberSkeletonTest::stemsRequiringOption() {
+ static const char16_t* stems[] = {
+ u"precision-increment",
+ u"measure-unit",
+ u"per-unit",
+ u"currency",
+ u"integer-width",
+ u"numbering-system",
+ u"scale"};
+ static const char16_t* suffixes[] = {u"", u"/@##", u" scientific", u"/@## scientific"};
+
+ for (auto& stem : stems) {
+ for (auto& suffix : suffixes) {
+ UnicodeString skeletonString = UnicodeString(stem) + suffix;
+ UErrorCode status = U_ZERO_ERROR;
+ NumberFormatter::forSkeleton(skeletonString, status);
+ assertEquals(skeletonString, U_NUMBER_SKELETON_SYNTAX_ERROR, status);
+ }
+ }
+}
+
+void NumberSkeletonTest::defaultTokens() {
+ IcuTestErrorCode status(*this, "defaultTokens");
+
+ static const char16_t* cases[] = {
+ u"notation-simple",
+ u"base-unit",
+ u"group-auto",
+ u"integer-width/+0",
+ u"sign-auto",
+ u"unit-width-short",
+ u"decimal-auto"};
+
+ for (auto& cas : cases) {
+ UnicodeString skeletonString(cas);
+ status.setScope(skeletonString);
+ UnicodeString normalized = NumberFormatter::forSkeleton(
+ skeletonString, status).toSkeleton(status);
+ // Skeleton should become empty when normalized
+ assertEquals(skeletonString, u"", normalized);
+ status.errIfFailureAndReset();
+ }
+}
+
+void NumberSkeletonTest::flexibleSeparators() {
+ IcuTestErrorCode status(*this, "flexibleSeparators");
+
+ static struct TestCase {
+ const char16_t* skeleton;
+ const char16_t* expected;
+ } cases[] = {{u"precision-integer group-off", u"5142"},
+ {u"precision-integer group-off", u"5142"},
+ {u"precision-integer/@## group-off", u"5140"},
+ {u"precision-integer/@## group-off", u"5140"}};
+
+ for (auto& cas : cases) {
+ UnicodeString skeletonString(cas.skeleton);
+ UnicodeString expected(cas.expected);
+ status.setScope(skeletonString);
+ UnicodeString actual = NumberFormatter::forSkeleton(skeletonString, status).locale("en")
+ .formatDouble(5142.3, status)
+ .toString();
+ if (!status.errDataIfFailureAndReset()) {
+ assertEquals(skeletonString, expected, actual);
+ }
+ status.errIfFailureAndReset();
+ }
+}
+
+// In C++, there is no distinguishing between "invalid", "unknown", and "unexpected" tokens.
+void NumberSkeletonTest::expectedErrorSkeleton(const char16_t** cases, int32_t casesLen) {
+ for (int32_t i = 0; i < casesLen; i++) {
+ UnicodeString skeletonString(cases[i]);
+ UErrorCode status = U_ZERO_ERROR;
+ NumberFormatter::forSkeleton(skeletonString, status);
+ assertEquals(skeletonString, U_NUMBER_SKELETON_SYNTAX_ERROR, status);
+ }
+}
+
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_stringbuilder.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_stringbuilder.cpp
index 76d27e1b12a..3106bedb310 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_stringbuilder.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_stringbuilder.cpp
@@ -3,7 +3,7 @@
#include "unicode/utypes.h"
-#if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT
+#if !UCONFIG_NO_FORMATTING
#include "putilimp.h"
#include "numbertest.h"
@@ -77,7 +77,7 @@ void NumberStringBuilderTest::testInsertAppendUnicodeString() {
}
void NumberStringBuilderTest::testSplice() {
- const struct TestCase {
+ static const struct TestCase {
const char16_t* input;
const int32_t startThis;
const int32_t endThis;
@@ -191,7 +191,7 @@ void NumberStringBuilderTest::testFields() {
// Very basic FieldPosition test. More robust tests happen in NumberFormatTest.
// Let NumberFormatTest also take care of FieldPositionIterator material.
FieldPosition fp(UNUM_CURRENCY_FIELD);
- sb.populateFieldPosition(fp, 0, status);
+ sb.nextFieldPosition(fp, status);
assertSuccess("Populating the FieldPosition", status);
assertEquals("Currency start position", str.length(), fp.getBeginIndex());
assertEquals("Currency end position", str.length() * 2, fp.getEndIndex());
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_stringsegment.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_stringsegment.cpp
new file mode 100644
index 00000000000..bb54781cb97
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_stringsegment.cpp
@@ -0,0 +1,94 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+#include "numbertest.h"
+#include "numparse_stringsegment.h"
+
+static const char16_t* SAMPLE_STRING = u"📻 radio 📻";
+
+void StringSegmentTest::runIndexedTest(int32_t index, UBool exec, const char*&name, char*) {
+ if (exec) {
+ logln("TestSuite StringSegmentTest: ");
+ }
+ TESTCASE_AUTO_BEGIN;
+ TESTCASE_AUTO(testOffset);
+ TESTCASE_AUTO(testLength);
+ TESTCASE_AUTO(testCharAt);
+ TESTCASE_AUTO(testGetCodePoint);
+ TESTCASE_AUTO(testCommonPrefixLength);
+ TESTCASE_AUTO_END;
+}
+
+void StringSegmentTest::testOffset() {
+ StringSegment segment(SAMPLE_STRING, false);
+ assertEquals("Initial Offset", 0, segment.getOffset());
+ segment.adjustOffset(3);
+ assertEquals("Adjust A", 3, segment.getOffset());
+ segment.adjustOffset(2);
+ assertEquals("Adjust B", 5, segment.getOffset());
+ segment.setOffset(4);
+ assertEquals("Set Offset", 4, segment.getOffset());
+}
+
+void StringSegmentTest::testLength() {
+ StringSegment segment(SAMPLE_STRING, false);
+ assertEquals("Initial length", 11, segment.length());
+ segment.adjustOffset(3);
+ assertEquals("Adjust", 8, segment.length());
+ segment.setLength(4);
+ assertEquals("Set Length", 4, segment.length());
+ segment.setOffset(5);
+ assertEquals("After adjust offset", 2, segment.length());
+ segment.resetLength();
+ assertEquals("After reset length", 6, segment.length());
+}
+
+void StringSegmentTest::testCharAt() {
+ StringSegment segment(SAMPLE_STRING, false);
+ assertEquals("Initial", SAMPLE_STRING, segment.toUnicodeString());
+ assertEquals("Initial", SAMPLE_STRING, segment.toTempUnicodeString());
+ segment.adjustOffset(3);
+ assertEquals("After adjust-offset", UnicodeString(u"radio 📻"), segment.toUnicodeString());
+ assertEquals("After adjust-offset", UnicodeString(u"radio 📻"), segment.toTempUnicodeString());
+ segment.setLength(5);
+ assertEquals("After adjust-length", UnicodeString(u"radio"), segment.toUnicodeString());
+ assertEquals("After adjust-length", UnicodeString(u"radio"), segment.toTempUnicodeString());
+}
+
+void StringSegmentTest::testGetCodePoint() {
+ StringSegment segment(SAMPLE_STRING, false);
+ assertEquals("Double-width code point", 0x1F4FB, segment.getCodePoint());
+ segment.setLength(1);
+ assertEquals("Inalid A", -1, segment.getCodePoint());
+ segment.resetLength();
+ segment.adjustOffset(1);
+ assertEquals("Invalid B", -1, segment.getCodePoint());
+ segment.adjustOffset(1);
+ assertEquals("Valid again", 0x20, segment.getCodePoint());
+}
+
+void StringSegmentTest::testCommonPrefixLength() {
+ StringSegment segment(SAMPLE_STRING, false);
+ assertEquals("", 11, segment.getCommonPrefixLength(SAMPLE_STRING));
+ assertEquals("", 4, segment.getCommonPrefixLength(u"📻 r"));
+ assertEquals("", 3, segment.getCommonPrefixLength(u"📻 x"));
+ assertEquals("", 0, segment.getCommonPrefixLength(u"x"));
+ segment.adjustOffset(3);
+ assertEquals("", 0, segment.getCommonPrefixLength(u"RADiO"));
+ assertEquals("", 5, segment.getCommonPrefixLength(u"radio"));
+ assertEquals("", 2, segment.getCommonPrefixLength(u"rafio"));
+ assertEquals("", 0, segment.getCommonPrefixLength(u"fadio"));
+ segment.setLength(3);
+ assertEquals("", 3, segment.getCommonPrefixLength(u"radio"));
+ assertEquals("", 2, segment.getCommonPrefixLength(u"rafio"));
+ assertEquals("", 0, segment.getCommonPrefixLength(u"fadio"));
+ segment.resetLength();
+ segment.setOffset(11); // end of string
+ assertEquals("", 0, segment.getCommonPrefixLength(u"foo"));
+}
+
+#endif
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/numfmtdatadriventest.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/numfmtdatadriventest.cpp
new file mode 100644
index 00000000000..8842f757728
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/numfmtdatadriventest.cpp
@@ -0,0 +1,505 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+#include "numfmtst.h"
+#include "number_decimalquantity.h"
+#include "putilimp.h"
+#include "charstr.h"
+#include <cmath>
+
+using icu::number::impl::DecimalQuantity;
+
+void NumberFormatDataDrivenTest::runIndexedTest(int32_t index, UBool exec, const char*& name, char*) {
+ if (exec) {
+ logln("TestSuite NumberFormatDataDrivenTest: ");
+ }
+ TESTCASE_AUTO_BEGIN;
+ TESTCASE_AUTO(TestNumberFormatTestTuple);
+ TESTCASE_AUTO(TestDataDrivenICU4C);
+ TESTCASE_AUTO_END;
+}
+
+static DecimalQuantity&
+strToDigitList(const UnicodeString& str, DecimalQuantity& digitList, UErrorCode& status) {
+ if (U_FAILURE(status)) {
+ return digitList;
+ }
+ if (str == "NaN") {
+ digitList.setToDouble(uprv_getNaN());
+ return digitList;
+ }
+ if (str == "-Inf") {
+ digitList.setToDouble(-1 * uprv_getInfinity());
+ return digitList;
+ }
+ if (str == "Inf") {
+ digitList.setToDouble(uprv_getInfinity());
+ return digitList;
+ }
+ CharString formatValue;
+ formatValue.appendInvariantChars(str, status);
+ digitList.setToDecNumber({formatValue.data(), formatValue.length()}, status);
+ return digitList;
+}
+
+static UnicodeString&
+format(const DecimalFormat& fmt, const DecimalQuantity& digitList, UnicodeString& appendTo,
+ UErrorCode& status) {
+ if (U_FAILURE(status)) {
+ return appendTo;
+ }
+ FieldPosition fpos(FieldPosition::DONT_CARE);
+ return fmt.format(digitList, appendTo, fpos, status);
+}
+
+template<class T>
+static UnicodeString&
+format(const DecimalFormat& fmt, T value, UnicodeString& appendTo, UErrorCode& status) {
+ if (U_FAILURE(status)) {
+ return appendTo;
+ }
+ FieldPosition fpos(FieldPosition::DONT_CARE);
+ return fmt.format(value, appendTo, fpos, status);
+}
+
+static void adjustDecimalFormat(const NumberFormatTestTuple& tuple, DecimalFormat& fmt,
+ UnicodeString& appendErrorMessage) {
+ if (tuple.minIntegerDigitsFlag) {
+ fmt.setMinimumIntegerDigits(tuple.minIntegerDigits);
+ }
+ if (tuple.maxIntegerDigitsFlag) {
+ fmt.setMaximumIntegerDigits(tuple.maxIntegerDigits);
+ }
+ if (tuple.minFractionDigitsFlag) {
+ fmt.setMinimumFractionDigits(tuple.minFractionDigits);
+ }
+ if (tuple.maxFractionDigitsFlag) {
+ fmt.setMaximumFractionDigits(tuple.maxFractionDigits);
+ }
+ if (tuple.currencyFlag) {
+ UErrorCode status = U_ZERO_ERROR;
+ UnicodeString currency(tuple.currency);
+ const UChar* terminatedCurrency = currency.getTerminatedBuffer();
+ fmt.setCurrency(terminatedCurrency, status);
+ if (U_FAILURE(status)) {
+ appendErrorMessage.append("Error setting currency.");
+ }
+ }
+ if (tuple.minGroupingDigitsFlag) {
+ fmt.setMinimumGroupingDigits(tuple.minGroupingDigits);
+ }
+ if (tuple.useSigDigitsFlag) {
+ fmt.setSignificantDigitsUsed(tuple.useSigDigits != 0);
+ }
+ if (tuple.minSigDigitsFlag) {
+ fmt.setMinimumSignificantDigits(tuple.minSigDigits);
+ }
+ if (tuple.maxSigDigitsFlag) {
+ fmt.setMaximumSignificantDigits(tuple.maxSigDigits);
+ }
+ if (tuple.useGroupingFlag) {
+ fmt.setGroupingUsed(tuple.useGrouping != 0);
+ }
+ if (tuple.multiplierFlag) {
+ fmt.setMultiplier(tuple.multiplier);
+ }
+ if (tuple.roundingIncrementFlag) {
+ fmt.setRoundingIncrement(tuple.roundingIncrement);
+ }
+ if (tuple.formatWidthFlag) {
+ fmt.setFormatWidth(tuple.formatWidth);
+ }
+ if (tuple.padCharacterFlag) {
+ fmt.setPadCharacter(tuple.padCharacter);
+ }
+ if (tuple.useScientificFlag) {
+ fmt.setScientificNotation(tuple.useScientific != 0);
+ }
+ if (tuple.groupingFlag) {
+ fmt.setGroupingSize(tuple.grouping);
+ }
+ if (tuple.grouping2Flag) {
+ fmt.setSecondaryGroupingSize(tuple.grouping2);
+ }
+ if (tuple.roundingModeFlag) {
+ fmt.setRoundingMode(tuple.roundingMode);
+ }
+ if (tuple.currencyUsageFlag) {
+ UErrorCode status = U_ZERO_ERROR;
+ fmt.setCurrencyUsage(tuple.currencyUsage, &status);
+ if (U_FAILURE(status)) {
+ appendErrorMessage.append("CurrencyUsage: error setting.");
+ }
+ }
+ if (tuple.minimumExponentDigitsFlag) {
+ fmt.setMinimumExponentDigits(tuple.minimumExponentDigits);
+ }
+ if (tuple.exponentSignAlwaysShownFlag) {
+ fmt.setExponentSignAlwaysShown(tuple.exponentSignAlwaysShown != 0);
+ }
+ if (tuple.decimalSeparatorAlwaysShownFlag) {
+ fmt.setDecimalSeparatorAlwaysShown(
+ tuple.decimalSeparatorAlwaysShown != 0);
+ }
+ if (tuple.padPositionFlag) {
+ fmt.setPadPosition(tuple.padPosition);
+ }
+ if (tuple.positivePrefixFlag) {
+ fmt.setPositivePrefix(tuple.positivePrefix);
+ }
+ if (tuple.positiveSuffixFlag) {
+ fmt.setPositiveSuffix(tuple.positiveSuffix);
+ }
+ if (tuple.negativePrefixFlag) {
+ fmt.setNegativePrefix(tuple.negativePrefix);
+ }
+ if (tuple.negativeSuffixFlag) {
+ fmt.setNegativeSuffix(tuple.negativeSuffix);
+ }
+ if (tuple.signAlwaysShownFlag) {
+ fmt.setSignAlwaysShown(tuple.signAlwaysShown != 0);
+ }
+ if (tuple.localizedPatternFlag) {
+ UErrorCode status = U_ZERO_ERROR;
+ fmt.applyLocalizedPattern(tuple.localizedPattern, status);
+ if (U_FAILURE(status)) {
+ appendErrorMessage.append("Error setting localized pattern.");
+ }
+ }
+ fmt.setLenient(NFTT_GET_FIELD(tuple, lenient, 1) != 0);
+ if (tuple.parseIntegerOnlyFlag) {
+ fmt.setParseIntegerOnly(tuple.parseIntegerOnly != 0);
+ }
+ if (tuple.decimalPatternMatchRequiredFlag) {
+ fmt.setDecimalPatternMatchRequired(
+ tuple.decimalPatternMatchRequired != 0);
+ }
+ if (tuple.parseNoExponentFlag) {
+ UErrorCode status = U_ZERO_ERROR;
+ fmt.setAttribute(
+ UNUM_PARSE_NO_EXPONENT, tuple.parseNoExponent, status);
+ if (U_FAILURE(status)) {
+ appendErrorMessage.append("Error setting parse no exponent flag.");
+ }
+ }
+ if (tuple.parseCaseSensitiveFlag) {
+ fmt.setParseCaseSensitive(tuple.parseCaseSensitive != 0);
+ }
+}
+
+static DecimalFormat*
+newDecimalFormat(const Locale& locale, const UnicodeString& pattern, UErrorCode& status) {
+ if (U_FAILURE(status)) {
+ return NULL;
+ }
+ LocalPointer<DecimalFormatSymbols> symbols(
+ new DecimalFormatSymbols(locale, status), status);
+ if (U_FAILURE(status)) {
+ return NULL;
+ }
+ UParseError perror;
+ LocalPointer<DecimalFormat> result(
+ new DecimalFormat(
+ pattern, symbols.getAlias(), perror, status), status);
+ if (!result.isNull()) {
+ symbols.orphan();
+ }
+ if (U_FAILURE(status)) {
+ return NULL;
+ }
+ return result.orphan();
+}
+
+static DecimalFormat* newDecimalFormat(const NumberFormatTestTuple& tuple, UErrorCode& status) {
+ if (U_FAILURE(status)) {
+ return NULL;
+ }
+ Locale en("en");
+ return newDecimalFormat(NFTT_GET_FIELD(tuple, locale, en),
+ NFTT_GET_FIELD(tuple, pattern, "0"),
+ status);
+}
+
+UBool NumberFormatDataDrivenTest::isFormatPass(const NumberFormatTestTuple& tuple,
+ UnicodeString& appendErrorMessage, UErrorCode& status) {
+ if (U_FAILURE(status)) {
+ return FALSE;
+ }
+ LocalPointer<DecimalFormat> fmtPtr(newDecimalFormat(tuple, status));
+ if (U_FAILURE(status)) {
+ appendErrorMessage.append("Error creating DecimalFormat.");
+ return FALSE;
+ }
+ adjustDecimalFormat(tuple, *fmtPtr, appendErrorMessage);
+ if (appendErrorMessage.length() > 0) {
+ return FALSE;
+ }
+ DecimalQuantity digitList;
+ strToDigitList(tuple.format, digitList, status);
+ {
+ UnicodeString appendTo;
+ format(*fmtPtr, digitList, appendTo, status);
+ if (U_FAILURE(status)) {
+ appendErrorMessage.append("Error formatting.");
+ return FALSE;
+ }
+ if (appendTo != tuple.output) {
+ appendErrorMessage.append(
+ UnicodeString("Expected: ") + tuple.output + ", got: " + appendTo);
+ return FALSE;
+ }
+ }
+ double doubleVal = digitList.toDouble();
+ DecimalQuantity doubleCheck;
+ doubleCheck.setToDouble(doubleVal);
+ if (digitList == doubleCheck) { // skip cases where the double does not round-trip
+ UnicodeString appendTo;
+ format(*fmtPtr, doubleVal, appendTo, status);
+ if (U_FAILURE(status)) {
+ appendErrorMessage.append("Error formatting.");
+ return FALSE;
+ }
+ if (appendTo != tuple.output) {
+ appendErrorMessage.append(
+ UnicodeString("double Expected: ") + tuple.output + ", got: " + appendTo);
+ return FALSE;
+ }
+ }
+ if (!uprv_isNaN(doubleVal) && !uprv_isInfinite(doubleVal) && digitList.fitsInLong()) {
+ int64_t intVal = digitList.toLong();
+ {
+ UnicodeString appendTo;
+ format(*fmtPtr, intVal, appendTo, status);
+ if (U_FAILURE(status)) {
+ appendErrorMessage.append("Error formatting.");
+ return FALSE;
+ }
+ if (appendTo != tuple.output) {
+ appendErrorMessage.append(
+ UnicodeString("int64 Expected: ") + tuple.output + ", got: " + appendTo);
+ return FALSE;
+ }
+ }
+ }
+ return TRUE;
+}
+
+UBool NumberFormatDataDrivenTest::isToPatternPass(const NumberFormatTestTuple& tuple,
+ UnicodeString& appendErrorMessage, UErrorCode& status) {
+ if (U_FAILURE(status)) {
+ return FALSE;
+ }
+ LocalPointer<DecimalFormat> fmtPtr(newDecimalFormat(tuple, status));
+ if (U_FAILURE(status)) {
+ appendErrorMessage.append("Error creating DecimalFormat.");
+ return FALSE;
+ }
+ adjustDecimalFormat(tuple, *fmtPtr, appendErrorMessage);
+ if (appendErrorMessage.length() > 0) {
+ return FALSE;
+ }
+ if (tuple.toPatternFlag) {
+ UnicodeString actual;
+ fmtPtr->toPattern(actual);
+ if (actual != tuple.toPattern) {
+ appendErrorMessage.append(
+ UnicodeString("Expected: ") + tuple.toPattern + ", got: " + actual + ". ");
+ }
+ }
+ if (tuple.toLocalizedPatternFlag) {
+ UnicodeString actual;
+ fmtPtr->toLocalizedPattern(actual);
+ if (actual != tuple.toLocalizedPattern) {
+ appendErrorMessage.append(
+ UnicodeString("Expected: ") + tuple.toLocalizedPattern + ", got: " + actual + ". ");
+ }
+ }
+ return appendErrorMessage.length() == 0;
+}
+
+UBool NumberFormatDataDrivenTest::isParsePass(const NumberFormatTestTuple& tuple,
+ UnicodeString& appendErrorMessage, UErrorCode& status) {
+ if (U_FAILURE(status)) {
+ return FALSE;
+ }
+ LocalPointer<DecimalFormat> fmtPtr(newDecimalFormat(tuple, status));
+ if (U_FAILURE(status)) {
+ appendErrorMessage.append("Error creating DecimalFormat.");
+ return FALSE;
+ }
+ adjustDecimalFormat(tuple, *fmtPtr, appendErrorMessage);
+ if (appendErrorMessage.length() > 0) {
+ return FALSE;
+ }
+ Formattable result;
+ ParsePosition ppos;
+ fmtPtr->parse(tuple.parse, result, ppos);
+ if (ppos.getIndex() == 0) {
+ appendErrorMessage.append("Parse failed; got error index ");
+ appendErrorMessage = appendErrorMessage + ppos.getErrorIndex();
+ return FALSE;
+ }
+ if (tuple.output == "fail") {
+ appendErrorMessage.append(
+ UnicodeString("Parse succeeded: ") + result.getDouble() + ", but was expected to fail.");
+ return TRUE; // TRUE because failure handling is in the test suite
+ }
+ if (tuple.output == "NaN") {
+ if (!uprv_isNaN(result.getDouble())) {
+ appendErrorMessage.append(UnicodeString("Expected NaN, but got: ") + result.getDouble());
+ return FALSE;
+ }
+ return TRUE;
+ } else if (tuple.output == "Inf") {
+ if (!uprv_isInfinite(result.getDouble()) || result.getDouble() < 0) {
+ appendErrorMessage.append(UnicodeString("Expected Inf, but got: ") + result.getDouble());
+ return FALSE;
+ }
+ return TRUE;
+ } else if (tuple.output == "-Inf") {
+ if (!uprv_isInfinite(result.getDouble()) || result.getDouble() > 0) {
+ appendErrorMessage.append(UnicodeString("Expected -Inf, but got: ") + result.getDouble());
+ return FALSE;
+ }
+ return TRUE;
+ } else if (tuple.output == "-0.0") {
+ if (!std::signbit(result.getDouble()) || result.getDouble() != 0) {
+ appendErrorMessage.append(UnicodeString("Expected -0.0, but got: ") + result.getDouble());
+ return FALSE;
+ }
+ return TRUE;
+ }
+ // All other cases parse to a DecimalQuantity, not a double.
+
+ DecimalQuantity expectedQuantity;
+ strToDigitList(tuple.output, expectedQuantity, status);
+ UnicodeString expectedString = expectedQuantity.toScientificString();
+ if (U_FAILURE(status)) {
+ appendErrorMessage.append("[Error parsing decnumber] ");
+ // If this happens, assume that tuple.output is exactly the same format as
+ // DecimalQuantity.toScientificString()
+ expectedString = tuple.output;
+ status = U_ZERO_ERROR;
+ }
+ UnicodeString actualString = result.getDecimalQuantity()->toScientificString();
+ if (expectedString != actualString) {
+ appendErrorMessage.append(
+ UnicodeString("Expected: ") + tuple.output + " (i.e., " + expectedString + "), but got: " +
+ actualString + " (" + ppos.getIndex() + ":" + ppos.getErrorIndex() + ")");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+UBool NumberFormatDataDrivenTest::isParseCurrencyPass(const NumberFormatTestTuple& tuple,
+ UnicodeString& appendErrorMessage,
+ UErrorCode& status) {
+ if (U_FAILURE(status)) {
+ return FALSE;
+ }
+ LocalPointer<DecimalFormat> fmtPtr(newDecimalFormat(tuple, status));
+ if (U_FAILURE(status)) {
+ appendErrorMessage.append("Error creating DecimalFormat.");
+ return FALSE;
+ }
+ adjustDecimalFormat(tuple, *fmtPtr, appendErrorMessage);
+ if (appendErrorMessage.length() > 0) {
+ return FALSE;
+ }
+ ParsePosition ppos;
+ LocalPointer<CurrencyAmount> currAmt(
+ fmtPtr->parseCurrency(tuple.parse, ppos));
+ if (ppos.getIndex() == 0) {
+ appendErrorMessage.append("Parse failed; got error index ");
+ appendErrorMessage = appendErrorMessage + ppos.getErrorIndex();
+ return FALSE;
+ }
+ UnicodeString currStr(currAmt->getISOCurrency());
+ U_ASSERT(currAmt->getNumber().getDecimalQuantity() != nullptr); // no doubles in currency tests
+ UnicodeString resultStr = currAmt->getNumber().getDecimalQuantity()->toScientificString();
+ if (tuple.output == "fail") {
+ appendErrorMessage.append(
+ UnicodeString("Parse succeeded: ") + resultStr + ", but was expected to fail.");
+ return TRUE; // TRUE because failure handling is in the test suite
+ }
+
+ DecimalQuantity expectedQuantity;
+ strToDigitList(tuple.output, expectedQuantity, status);
+ UnicodeString expectedString = expectedQuantity.toScientificString();
+ if (U_FAILURE(status)) {
+ appendErrorMessage.append("Error parsing decnumber");
+ // If this happens, assume that tuple.output is exactly the same format as
+ // DecimalQuantity.toNumberString()
+ expectedString = tuple.output;
+ status = U_ZERO_ERROR;
+ }
+ if (expectedString != resultStr) {
+ appendErrorMessage.append(
+ UnicodeString("Expected: ") + tuple.output + " (i.e., " + expectedString + "), but got: " +
+ resultStr + " (" + ppos.getIndex() + ":" + ppos.getErrorIndex() + ")");
+ return FALSE;
+ }
+
+ if (currStr != tuple.outputCurrency) {
+ appendErrorMessage.append(
+ UnicodeString(
+ "Expected currency: ") + tuple.outputCurrency + ", got: " + currStr + ". ");
+ return FALSE;
+ }
+ return TRUE;
+}
+
+void NumberFormatDataDrivenTest::TestNumberFormatTestTuple() {
+ NumberFormatTestTuple tuple;
+ UErrorCode status = U_ZERO_ERROR;
+
+ tuple.setField(
+ NumberFormatTestTuple::getFieldByName("locale"), "en", status);
+ tuple.setField(
+ NumberFormatTestTuple::getFieldByName("pattern"), "#,##0.00", status);
+ tuple.setField(
+ NumberFormatTestTuple::getFieldByName("minIntegerDigits"), "-10", status);
+ if (!assertSuccess("", status)) {
+ return;
+ }
+
+ // only what we set should be set.
+ assertEquals("", "en", tuple.locale.getName());
+ assertEquals("", "#,##0.00", tuple.pattern);
+ assertEquals("", -10, tuple.minIntegerDigits);
+ assertTrue("", tuple.localeFlag);
+ assertTrue("", tuple.patternFlag);
+ assertTrue("", tuple.minIntegerDigitsFlag);
+ assertFalse("", tuple.formatFlag);
+
+ UnicodeString appendTo;
+ assertEquals(
+ "", "{locale: en, pattern: #,##0.00, minIntegerDigits: -10}", tuple.toString(appendTo));
+
+ tuple.clear();
+ appendTo.remove();
+ assertEquals(
+ "", "{}", tuple.toString(appendTo));
+ tuple.setField(
+ NumberFormatTestTuple::getFieldByName("aBadFieldName"), "someValue", status);
+ if (status != U_ILLEGAL_ARGUMENT_ERROR) {
+ errln("Expected U_ILLEGAL_ARGUMENT_ERROR");
+ }
+ status = U_ZERO_ERROR;
+ tuple.setField(
+ NumberFormatTestTuple::getFieldByName("minIntegerDigits"), "someBadValue", status);
+ if (status != U_ILLEGAL_ARGUMENT_ERROR) {
+ errln("Expected U_ILLEGAL_ARGUMENT_ERROR");
+ }
+}
+
+void NumberFormatDataDrivenTest::TestDataDrivenICU4C() {
+ run("numberformattestspecification.txt", TRUE);
+}
+
+#endif // !UCONFIG_NO_FORMATTING
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/numfmtspectest.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/numfmtspectest.cpp
index 82ee94e5fdd..7d59678c929 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/numfmtspectest.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/numfmtspectest.cpp
@@ -89,14 +89,14 @@ void NumberFormatSpecificationTest::runIndexedTest(
}
void NumberFormatSpecificationTest::TestBasicPatterns() {
- assertPatternFr("1 234,57", 1234.567, "#,##0.##", TRUE);
+ assertPatternFr("1\\u202F234,57", 1234.567, "#,##0.##", TRUE);
assertPatternFr("1234,57", 1234.567, "0.##", TRUE);
assertPatternFr("1235", 1234.567, "0", TRUE);
- assertPatternFr("1 234,567", 1234.567, "#,##0.###", TRUE);
+ assertPatternFr("1\\u202F234,567", 1234.567, "#,##0.###", TRUE);
assertPatternFr("1234,567", 1234.567, "###0.#####", TRUE);
assertPatternFr("1234,5670", 1234.567, "###0.0000#", TRUE);
assertPatternFr("01234,5670", 1234.567, "00000.0000", TRUE);
- assertPatternFr("1 234,57 \\u20ac", 1234.567, "#,##0.00 \\u00a4", TRUE);
+ assertPatternFr("1\\u202F234,57 \\u20ac", 1234.567, "#,##0.00 \\u00a4", TRUE);
}
void NumberFormatSpecificationTest::TestNfSetters() {
@@ -107,8 +107,8 @@ void NumberFormatSpecificationTest::TestNfSetters() {
}
nf->setMaximumIntegerDigits(5);
nf->setMinimumIntegerDigits(4);
- assertEquals("", "34 567,89", format(1234567.89, *nf), TRUE);
- assertEquals("", "0 034,56", format(34.56, *nf), TRUE);
+ assertEquals("", u"34\u202F567,89", format(1234567.89, *nf), TRUE);
+ assertEquals("", u"0\u202F034,56", format(34.56, *nf), TRUE);
}
void NumberFormatSpecificationTest::TestRounding() {
@@ -121,20 +121,20 @@ void NumberFormatSpecificationTest::TestRounding() {
assertPatternFr("8", 10.0, "4", TRUE);
assertPatternFr("99,90", 99.0, "2.70", TRUE);
assertPatternFr("273,00", 272.0, "2.73", TRUE);
- assertPatternFr("1 03,60", 104.0, "#,#3.70", TRUE);
+ assertPatternFr("1\\u202F03,60", 104.0, "#,#3.70", TRUE);
}
void NumberFormatSpecificationTest::TestSignificantDigits() {
assertPatternFr("1230", 1234.0, "@@@", TRUE);
- assertPatternFr("1 234", 1234.0, "@,@@@", TRUE);
- assertPatternFr("1 235 000", 1234567.0, "@,@@@", TRUE);
- assertPatternFr("1 234 567", 1234567.0, "@@@@,@@@", TRUE);
- assertPatternFr("12 34 567,00", 1234567.0, "@@@@,@@,@@@", TRUE);
- assertPatternFr("12 34 567,0", 1234567.0, "@@@@,@@,@@#", TRUE);
- assertPatternFr("12 34 567", 1234567.0, "@@@@,@@,@##", TRUE);
- assertPatternFr("12 34 567", 1234567.001, "@@@@,@@,@##", TRUE);
- assertPatternFr("12 34 567", 1234567.001, "@@@@,@@,###", TRUE);
- assertPatternFr("1 200", 1234.0, "#,#@@", TRUE);
+ assertPatternFr("1\\u202F234", 1234.0, "@,@@@", TRUE);
+ assertPatternFr("1\\u202F235\\u202F000", 1234567.0, "@,@@@", TRUE);
+ assertPatternFr("1\\u202F234\\u202F567", 1234567.0, "@@@@,@@@", TRUE);
+ assertPatternFr("12\\u202F34\\u202F567,00", 1234567.0, "@@@@,@@,@@@", TRUE);
+ assertPatternFr("12\\u202F34\\u202F567,0", 1234567.0, "@@@@,@@,@@#", TRUE);
+ assertPatternFr("12\\u202F34\\u202F567", 1234567.0, "@@@@,@@,@##", TRUE);
+ assertPatternFr("12\\u202F34\\u202F567", 1234567.001, "@@@@,@@,@##", TRUE);
+ assertPatternFr("12\\u202F34\\u202F567", 1234567.001, "@@@@,@@,###", TRUE);
+ assertPatternFr("1\\u202F200", 1234.0, "#,#@@", TRUE);
}
void NumberFormatSpecificationTest::TestScientificNotation() {
@@ -161,8 +161,8 @@ void NumberFormatSpecificationTest::TestPercent() {
assertPatternFr("p%p57,3", 0.573, "p%p0.0", TRUE);
assertPatternFr("p%p0,6", 0.573, "p'%'p0.0", TRUE);
assertPatternFr("%3,260", 0.0326, "%@@@@", TRUE);
- assertPatternFr("%1 540", 15.43, "%#,@@@", TRUE);
- assertPatternFr("%1 656,4", 16.55, "%#,##4.1", TRUE);
+ assertPatternFr("%1\\u202F540", 15.43, "%#,@@@", TRUE);
+ assertPatternFr("%1\\u202F656,4", 16.55, "%#,##4.1", TRUE);
assertPatternFr("%16,3E3", 162.55, "%##0.00E0", TRUE);
}
@@ -172,18 +172,18 @@ void NumberFormatSpecificationTest::TestPerMilli() {
assertPatternFr("p\\u2030p573,0", 0.573, "p\\u2030p0.0", TRUE);
assertPatternFr("p\\u2030p0,6", 0.573, "p'\\u2030'p0.0", TRUE);
assertPatternFr("\\u203032,60", 0.0326, "\\u2030@@@@", TRUE);
- assertPatternFr("\\u203015 400", 15.43, "\\u2030#,@@@", TRUE);
- assertPatternFr("\\u203016 551,7", 16.55, "\\u2030#,##4.1", TRUE);
+ assertPatternFr("\\u203015\\u202F400", 15.43, "\\u2030#,@@@", TRUE);
+ assertPatternFr("\\u203016\\u202F551,7", 16.55, "\\u2030#,##4.1", TRUE);
assertPatternFr("\\u2030163E3", 162.55, "\\u2030##0.00E0", TRUE);
}
void NumberFormatSpecificationTest::TestPadding() {
- assertPatternFr("$***1 234", 1234, "$**####,##0", TRUE);
- assertPatternFr("xxx$1 234", 1234, "*x$####,##0", TRUE);
- assertPatternFr("1 234xxx$", 1234, "####,##0*x$", TRUE);
- assertPatternFr("1 234$xxx", 1234, "####,##0$*x", TRUE);
- assertPatternFr("ne1 234nx", -1234, "####,##0$*x;ne#n", TRUE);
- assertPatternFr("n1 234*xx", -1234, "####,##0$*x;n#'*'", TRUE);
+ assertPatternFr("$***1\\u202F234", 1234, "$**####,##0", TRUE);
+ assertPatternFr("xxx$1\\u202F234", 1234, "*x$####,##0", TRUE);
+ assertPatternFr("1\\u202F234xxx$", 1234, "####,##0*x$", TRUE);
+ assertPatternFr("1\\u202F234$xxx", 1234, "####,##0$*x", TRUE);
+ assertPatternFr("ne1\\u202F234nx", -1234, "####,##0$*x;ne#n", TRUE);
+ assertPatternFr("n1\\u202F234*xx", -1234, "####,##0$*x;n#'*'", TRUE);
assertPatternFr("yyyy%432,6", 4.33, "*y%4.2######", TRUE);
if (!logKnownIssue("11025")) {
assertPatternFr("EUR *433,00", 433.0, "\\u00a4\\u00a4 **####0.00");
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/numfmtst.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/numfmtst.cpp
index c8fce9e28b6..34355939113 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/numfmtst.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/numfmtst.cpp
@@ -15,6 +15,7 @@
#if !UCONFIG_NO_FORMATTING
#include "numfmtst.h"
+#include "unicode/currpinf.h"
#include "unicode/dcfmtsym.h"
#include "unicode/decimfmt.h"
#include "unicode/localpointer.h"
@@ -23,10 +24,10 @@
#include "unicode/measfmt.h"
#include "unicode/curramt.h"
#include "unicode/strenum.h"
-#include "digitlst.h"
#include "textfile.h"
#include "tokiter.h"
#include "charstr.h"
+#include "cstr.h"
#include "putilimp.h"
#include "winnmtst.h"
#include <cmath>
@@ -38,8 +39,9 @@
#include "unicode/numsys.h"
#include "fmtableimp.h"
#include "numberformattesttuple.h"
-#include "datadrivennumberformattestsuite.h"
#include "unicode/msgfmt.h"
+#include "number_decimalquantity.h"
+#include "unicode/numberformatter.h"
#if (U_PLATFORM == U_PF_AIX) || (U_PLATFORM == U_PF_OS390)
// These should not be macros. If they are,
@@ -62,451 +64,8 @@ namespace std {
#endif
#endif
-
-class NumberFormatTestDataDriven : public DataDrivenNumberFormatTestSuite {
-protected:
-UBool isFormatPass(
- const NumberFormatTestTuple &tuple,
- UnicodeString &appendErrorMessage,
- UErrorCode &status);
-UBool isToPatternPass(
- const NumberFormatTestTuple &tuple,
- UnicodeString &appendErrorMessage,
- UErrorCode &status);
-UBool isParsePass(
- const NumberFormatTestTuple &tuple,
- UnicodeString &appendErrorMessage,
- UErrorCode &status);
-UBool isParseCurrencyPass(
- const NumberFormatTestTuple &tuple,
- UnicodeString &appendErrorMessage,
- UErrorCode &status);
-};
-
-static DigitList &strToDigitList(
- const UnicodeString &str,
- DigitList &digitList,
- UErrorCode &status) {
- if (U_FAILURE(status)) {
- return digitList;
- }
- if (str == "NaN") {
- digitList.set(uprv_getNaN());
- return digitList;
- }
- if (str == "-Inf") {
- digitList.set(-1*uprv_getInfinity());
- return digitList;
- }
- if (str == "Inf") {
- digitList.set(uprv_getInfinity());
- return digitList;
- }
- CharString formatValue;
- formatValue.appendInvariantChars(str, status);
- digitList.set(StringPiece(formatValue.data()), status, 0);
- return digitList;
-}
-
-static UnicodeString &format(
- const DecimalFormat &fmt,
- const DigitList &digitList,
- UnicodeString &appendTo,
- UErrorCode &status) {
- if (U_FAILURE(status)) {
- return appendTo;
- }
- FieldPosition fpos(FieldPosition::DONT_CARE);
- return fmt.format(digitList, appendTo, fpos, status);
-}
-
-template<class T>
-static UnicodeString &format(
- const DecimalFormat &fmt,
- T value,
- UnicodeString &appendTo,
- UErrorCode &status) {
- if (U_FAILURE(status)) {
- return appendTo;
- }
- FieldPosition fpos(FieldPosition::DONT_CARE);
- return fmt.format(value, appendTo, fpos, status);
-}
-
-static void adjustDecimalFormat(
- const NumberFormatTestTuple &tuple,
- DecimalFormat &fmt,
- UnicodeString &appendErrorMessage) {
- if (tuple.minIntegerDigitsFlag) {
- fmt.setMinimumIntegerDigits(tuple.minIntegerDigits);
- }
- if (tuple.maxIntegerDigitsFlag) {
- fmt.setMaximumIntegerDigits(tuple.maxIntegerDigits);
- }
- if (tuple.minFractionDigitsFlag) {
- fmt.setMinimumFractionDigits(tuple.minFractionDigits);
- }
- if (tuple.maxFractionDigitsFlag) {
- fmt.setMaximumFractionDigits(tuple.maxFractionDigits);
- }
- if (tuple.currencyFlag) {
- UErrorCode status = U_ZERO_ERROR;
- UnicodeString currency(tuple.currency);
- const UChar *terminatedCurrency = currency.getTerminatedBuffer();
- fmt.setCurrency(terminatedCurrency, status);
- if (U_FAILURE(status)) {
- appendErrorMessage.append("Error setting currency.");
- }
- }
- if (tuple.minGroupingDigitsFlag) {
- fmt.setMinimumGroupingDigits(tuple.minGroupingDigits);
- }
- if (tuple.useSigDigitsFlag) {
- fmt.setSignificantDigitsUsed(tuple.useSigDigits != 0);
- }
- if (tuple.minSigDigitsFlag) {
- fmt.setMinimumSignificantDigits(tuple.minSigDigits);
- }
- if (tuple.maxSigDigitsFlag) {
- fmt.setMaximumSignificantDigits(tuple.maxSigDigits);
- }
- if (tuple.useGroupingFlag) {
- fmt.setGroupingUsed(tuple.useGrouping != 0);
- }
- if (tuple.multiplierFlag) {
- fmt.setMultiplier(tuple.multiplier);
- }
- if (tuple.roundingIncrementFlag) {
- fmt.setRoundingIncrement(tuple.roundingIncrement);
- }
- if (tuple.formatWidthFlag) {
- fmt.setFormatWidth(tuple.formatWidth);
- }
- if (tuple.padCharacterFlag) {
- fmt.setPadCharacter(tuple.padCharacter);
- }
- if (tuple.useScientificFlag) {
- fmt.setScientificNotation(tuple.useScientific != 0);
- }
- if (tuple.groupingFlag) {
- fmt.setGroupingSize(tuple.grouping);
- }
- if (tuple.grouping2Flag) {
- fmt.setSecondaryGroupingSize(tuple.grouping2);
- }
- if (tuple.roundingModeFlag) {
- fmt.setRoundingMode(tuple.roundingMode);
- }
- if (tuple.currencyUsageFlag) {
- UErrorCode status = U_ZERO_ERROR;
- fmt.setCurrencyUsage(tuple.currencyUsage, &status);
- if (U_FAILURE(status)) {
- appendErrorMessage.append("CurrencyUsage: error setting.");
- }
- }
- if (tuple.minimumExponentDigitsFlag) {
- fmt.setMinimumExponentDigits(tuple.minimumExponentDigits);
- }
- if (tuple.exponentSignAlwaysShownFlag) {
- fmt.setExponentSignAlwaysShown(tuple.exponentSignAlwaysShown != 0);
- }
- if (tuple.decimalSeparatorAlwaysShownFlag) {
- fmt.setDecimalSeparatorAlwaysShown(
- tuple.decimalSeparatorAlwaysShown != 0);
- }
- if (tuple.padPositionFlag) {
- fmt.setPadPosition(tuple.padPosition);
- }
- if (tuple.positivePrefixFlag) {
- fmt.setPositivePrefix(tuple.positivePrefix);
- }
- if (tuple.positiveSuffixFlag) {
- fmt.setPositiveSuffix(tuple.positiveSuffix);
- }
- if (tuple.negativePrefixFlag) {
- fmt.setNegativePrefix(tuple.negativePrefix);
- }
- if (tuple.negativeSuffixFlag) {
- fmt.setNegativeSuffix(tuple.negativeSuffix);
- }
- if (tuple.signAlwaysShownFlag) {
- // Not currently supported
- }
- if (tuple.localizedPatternFlag) {
- UErrorCode status = U_ZERO_ERROR;
- fmt.applyLocalizedPattern(tuple.localizedPattern, status);
- if (U_FAILURE(status)) {
- appendErrorMessage.append("Error setting localized pattern.");
- }
- }
- fmt.setLenient(NFTT_GET_FIELD(tuple, lenient, 1) != 0);
- if (tuple.parseIntegerOnlyFlag) {
- fmt.setParseIntegerOnly(tuple.parseIntegerOnly != 0);
- }
- if (tuple.decimalPatternMatchRequiredFlag) {
- fmt.setDecimalPatternMatchRequired(
- tuple.decimalPatternMatchRequired != 0);
- }
- if (tuple.parseNoExponentFlag) {
- UErrorCode status = U_ZERO_ERROR;
- fmt.setAttribute(
- UNUM_PARSE_NO_EXPONENT,
- tuple.parseNoExponent,
- status);
- if (U_FAILURE(status)) {
- appendErrorMessage.append("Error setting parse no exponent flag.");
- }
- }
- if (tuple.parseCaseSensitiveFlag) {
- // TODO: Fill this in when support is added in ICU4C
- }
-}
-
-static DecimalFormat *newDecimalFormat(
- const Locale &locale,
- const UnicodeString &pattern,
- UErrorCode &status) {
- if (U_FAILURE(status)) {
- return NULL;
- }
- LocalPointer<DecimalFormatSymbols> symbols(
- new DecimalFormatSymbols(locale, status), status);
- if (U_FAILURE(status)) {
- return NULL;
- }
- UParseError perror;
- LocalPointer<DecimalFormat> result(new DecimalFormat(
- pattern, symbols.getAlias(), perror, status), status);
- if (!result.isNull()) {
- symbols.orphan();
- }
- if (U_FAILURE(status)) {
- return NULL;
- }
- return result.orphan();
-}
-
-static DecimalFormat *newDecimalFormat(
- const NumberFormatTestTuple &tuple,
- UErrorCode &status) {
- if (U_FAILURE(status)) {
- return NULL;
- }
- Locale en("en");
- return newDecimalFormat(
- NFTT_GET_FIELD(tuple, locale, en),
- NFTT_GET_FIELD(tuple, pattern, "0"),
- status);
-}
-
-UBool NumberFormatTestDataDriven::isFormatPass(
- const NumberFormatTestTuple &tuple,
- UnicodeString &appendErrorMessage,
- UErrorCode &status) {
- if (U_FAILURE(status)) {
- return FALSE;
- }
- LocalPointer<DecimalFormat> fmtPtr(newDecimalFormat(tuple, status));
- if (U_FAILURE(status)) {
- appendErrorMessage.append("Error creating DecimalFormat.");
- return FALSE;
- }
- adjustDecimalFormat(tuple, *fmtPtr, appendErrorMessage);
- if (appendErrorMessage.length() > 0) {
- return FALSE;
- }
- DigitList digitList;
- strToDigitList(tuple.format, digitList, status);
- {
- UnicodeString appendTo;
- format(*fmtPtr, digitList, appendTo, status);
- if (U_FAILURE(status)) {
- appendErrorMessage.append("Error formatting.");
- return FALSE;
- }
- if (appendTo != tuple.output) {
- appendErrorMessage.append(
- UnicodeString("Expected: ") + tuple.output + ", got: " + appendTo);
- return FALSE;
- }
- }
- double doubleVal = digitList.getDouble();
- {
- UnicodeString appendTo;
- format(*fmtPtr, doubleVal, appendTo, status);
- if (U_FAILURE(status)) {
- appendErrorMessage.append("Error formatting.");
- return FALSE;
- }
- if (appendTo != tuple.output) {
- appendErrorMessage.append(
- UnicodeString("double Expected: ") + tuple.output + ", got: " + appendTo);
- return FALSE;
- }
- }
- if (!uprv_isNaN(doubleVal) && !uprv_isInfinite(doubleVal) && doubleVal == uprv_floor(doubleVal)) {
- int64_t intVal = digitList.getInt64();
- {
- UnicodeString appendTo;
- format(*fmtPtr, intVal, appendTo, status);
- if (U_FAILURE(status)) {
- appendErrorMessage.append("Error formatting.");
- return FALSE;
- }
- if (appendTo != tuple.output) {
- appendErrorMessage.append(
- UnicodeString("int64 Expected: ") + tuple.output + ", got: " + appendTo);
- return FALSE;
- }
- }
- }
- return TRUE;
-}
-
-UBool NumberFormatTestDataDriven::isToPatternPass(
- const NumberFormatTestTuple &tuple,
- UnicodeString &appendErrorMessage,
- UErrorCode &status) {
- if (U_FAILURE(status)) {
- return FALSE;
- }
- LocalPointer<DecimalFormat> fmtPtr(newDecimalFormat(tuple, status));
- if (U_FAILURE(status)) {
- appendErrorMessage.append("Error creating DecimalFormat.");
- return FALSE;
- }
- adjustDecimalFormat(tuple, *fmtPtr, appendErrorMessage);
- if (appendErrorMessage.length() > 0) {
- return FALSE;
- }
- if (tuple.toPatternFlag) {
- UnicodeString actual;
- fmtPtr->toPattern(actual);
- if (actual != tuple.toPattern) {
- appendErrorMessage.append(
- UnicodeString("Expected: ") + tuple.toPattern + ", got: " + actual + ". ");
- }
- }
- if (tuple.toLocalizedPatternFlag) {
- UnicodeString actual;
- fmtPtr->toLocalizedPattern(actual);
- if (actual != tuple.toLocalizedPattern) {
- appendErrorMessage.append(
- UnicodeString("Expected: ") + tuple.toLocalizedPattern + ", got: " + actual + ". ");
- }
- }
- return appendErrorMessage.length() == 0;
-}
-
-UBool NumberFormatTestDataDriven::isParsePass(
- const NumberFormatTestTuple &tuple,
- UnicodeString &appendErrorMessage,
- UErrorCode &status) {
- if (U_FAILURE(status)) {
- return FALSE;
- }
- LocalPointer<DecimalFormat> fmtPtr(newDecimalFormat(tuple, status));
- if (U_FAILURE(status)) {
- appendErrorMessage.append("Error creating DecimalFormat.");
- return FALSE;
- }
- adjustDecimalFormat(tuple, *fmtPtr, appendErrorMessage);
- if (appendErrorMessage.length() > 0) {
- return FALSE;
- }
- Formattable result;
- ParsePosition ppos;
- fmtPtr->parse(tuple.parse, result, ppos);
- if (ppos.getIndex() == 0) {
- appendErrorMessage.append("Parse failed; got error index ");
- appendErrorMessage = appendErrorMessage + ppos.getErrorIndex();
- return FALSE;
- }
- UnicodeString resultStr(UnicodeString::fromUTF8(result.getDecimalNumber(status)));
- if (tuple.output == "fail") {
- appendErrorMessage.append(UnicodeString("Parse succeeded: ") + resultStr + ", but was expected to fail.");
- return TRUE; // TRUE because failure handling is in the test suite
- }
- if (tuple.output == "NaN") {
- if (!uprv_isNaN(result.getDouble())) {
- appendErrorMessage.append("Expected NaN, but got: " + resultStr);
- return FALSE;
- }
- return TRUE;
- } else if (tuple.output == "Inf") {
- if (!uprv_isInfinite(result.getDouble()) || result.getDouble() < 0) {
- appendErrorMessage.append("Expected Inf, but got: " + resultStr);
- return FALSE;
- }
- return TRUE;
- } else if (tuple.output == "-Inf") {
- if (!uprv_isInfinite(result.getDouble()) || result.getDouble() > 0) {
- appendErrorMessage.append("Expected -Inf, but got: " + resultStr);
- return FALSE;
- }
- return TRUE;
- }
- DigitList expected;
- strToDigitList(tuple.output, expected, status);
- if (U_FAILURE(status)) {
- appendErrorMessage.append("Error parsing.");
- return FALSE;
- }
- if (expected != *result.getDigitList()) {
- appendErrorMessage.append(UnicodeString("Expected: ") + tuple.output + ", but got: " + resultStr + " (" + ppos.getIndex() + ":" + ppos.getErrorIndex() + ")");
- return FALSE;
- }
- return TRUE;
-}
-
-UBool NumberFormatTestDataDriven::isParseCurrencyPass(
- const NumberFormatTestTuple &tuple,
- UnicodeString &appendErrorMessage,
- UErrorCode &status) {
- if (U_FAILURE(status)) {
- return FALSE;
- }
- LocalPointer<DecimalFormat> fmtPtr(newDecimalFormat(tuple, status));
- if (U_FAILURE(status)) {
- appendErrorMessage.append("Error creating DecimalFormat.");
- return FALSE;
- }
- adjustDecimalFormat(tuple, *fmtPtr, appendErrorMessage);
- if (appendErrorMessage.length() > 0) {
- return FALSE;
- }
- ParsePosition ppos;
- LocalPointer<CurrencyAmount> currAmt(
- fmtPtr->parseCurrency(tuple.parse, ppos));
- if (ppos.getIndex() == 0) {
- appendErrorMessage.append("Parse failed; got error index ");
- appendErrorMessage = appendErrorMessage + ppos.getErrorIndex();
- return FALSE;
- }
- UnicodeString currStr(currAmt->getISOCurrency());
- Formattable resultFormattable(currAmt->getNumber());
- UnicodeString resultStr(UnicodeString::fromUTF8(resultFormattable.getDecimalNumber(status)));
- if (tuple.output == "fail") {
- appendErrorMessage.append(UnicodeString("Parse succeeded: ") + resultStr + ", but was expected to fail.");
- return TRUE; // TRUE because failure handling is in the test suite
- }
- DigitList expected;
- strToDigitList(tuple.output, expected, status);
- if (U_FAILURE(status)) {
- appendErrorMessage.append("Error parsing.");
- return FALSE;
- }
- if (expected != *currAmt->getNumber().getDigitList()) {
- appendErrorMessage.append(UnicodeString("Expected: ") + tuple.output + ", but got: " + resultStr + " (" + ppos.getIndex() + ":" + ppos.getErrorIndex() + ")");
- return FALSE;
- }
- if (currStr != tuple.outputCurrency) {
- appendErrorMessage.append(UnicodeString(
- "Expected currency: ") + tuple.outputCurrency + ", got: " + currStr + ". ");
- return FALSE;
- }
- return TRUE;
-}
+using icu::number::impl::DecimalQuantity;
+using namespace icu::number;
//#define NUMFMTST_CACHE_DEBUG 1
#include "stdio.h" /* for sprintf */
@@ -566,6 +125,7 @@ void NumberFormatTest::runIndexedTest( int32_t index, UBool exec, const char* &n
TESTCASE_AUTO(TestCurrencyAmount);
TESTCASE_AUTO(TestCurrencyUnit);
TESTCASE_AUTO(TestCoverage);
+ TESTCASE_AUTO(TestLocalizedPatternSymbolCoverage);
TESTCASE_AUTO(TestJB3832);
TESTCASE_AUTO(TestHost);
TESTCASE_AUTO(TestHostClone);
@@ -576,6 +136,7 @@ void NumberFormatTest::runIndexedTest( int32_t index, UBool exec, const char* &n
TESTCASE_AUTO(TestSpaceParsing);
TESTCASE_AUTO(TestMultiCurrencySign);
TESTCASE_AUTO(TestCurrencyFormatForMixParsing);
+ TESTCASE_AUTO(TestMismatchedCurrencyFormatFail);
TESTCASE_AUTO(TestDecimalFormatCurrencyParse);
TESTCASE_AUTO(TestCurrencyIsoPluralFormat);
TESTCASE_AUTO(TestCurrencyParsing);
@@ -608,10 +169,7 @@ void NumberFormatTest::runIndexedTest( int32_t index, UBool exec, const char* &n
TESTCASE_AUTO(TestAccountingCurrency);
TESTCASE_AUTO(TestEquality);
TESTCASE_AUTO(TestCurrencyUsage);
- TESTCASE_AUTO(TestNumberFormatTestTuple);
- TESTCASE_AUTO(TestDataDriven);
TESTCASE_AUTO(TestDoubleLimit11439);
- TESTCASE_AUTO(TestFastPathConsistent11524);
TESTCASE_AUTO(TestGetAffixes);
TESTCASE_AUTO(TestToPatternScientific11648);
TESTCASE_AUTO(TestBenchmark);
@@ -619,6 +177,9 @@ void NumberFormatTest::runIndexedTest( int32_t index, UBool exec, const char* &n
TESTCASE_AUTO(TestFractionalDigitsForCurrency);
TESTCASE_AUTO(TestFormatCurrencyPlural);
TESTCASE_AUTO(Test11868);
+ TESTCASE_AUTO(Test11739_ParseLongCurrency);
+ TESTCASE_AUTO(Test13035_MultiCodePointPaddingInPattern);
+ TESTCASE_AUTO(Test13737_ParseScientificStrict);
TESTCASE_AUTO(Test10727_RoundingZero);
TESTCASE_AUTO(Test11376_getAndSetPositivePrefix);
TESTCASE_AUTO(Test11475_signRecognition);
@@ -626,8 +187,38 @@ void NumberFormatTest::runIndexedTest( int32_t index, UBool exec, const char* &n
TESTCASE_AUTO(Test11649_toPatternWithMultiCurrency);
TESTCASE_AUTO(Test13327_numberingSystemBufferOverflow);
TESTCASE_AUTO(Test13391_chakmaParsing);
+ TESTCASE_AUTO(Test11735_ExceptionIssue);
TESTCASE_AUTO(Test11035_FormatCurrencyAmount);
TESTCASE_AUTO(Test11318_DoubleConversion);
+ TESTCASE_AUTO(TestParsePercentRegression);
+ TESTCASE_AUTO(TestMultiplierWithScale);
+ TESTCASE_AUTO(TestFastFormatInt32);
+ TESTCASE_AUTO(Test11646_Equality);
+ TESTCASE_AUTO(TestParseNaN);
+ TESTCASE_AUTO(Test11897_LocalizedPatternSeparator);
+ TESTCASE_AUTO(Test13055_PercentageRounding);
+ TESTCASE_AUTO(Test11839);
+ TESTCASE_AUTO(Test10354);
+ TESTCASE_AUTO(Test11645_ApplyPatternEquality);
+ TESTCASE_AUTO(Test12567);
+ TESTCASE_AUTO(Test11626_CustomizeCurrencyPluralInfo);
+ TESTCASE_AUTO(Test20073_StrictPercentParseErrorIndex);
+ TESTCASE_AUTO(Test13056_GroupingSize);
+ TESTCASE_AUTO(Test11025_CurrencyPadding);
+ TESTCASE_AUTO(Test11648_ExpDecFormatMalPattern);
+ TESTCASE_AUTO(Test11649_DecFmtCurrencies);
+ TESTCASE_AUTO(Test13148_ParseGroupingSeparators);
+ TESTCASE_AUTO(Test12753_PatternDecimalPoint);
+ TESTCASE_AUTO(Test11647_PatternCurrencySymbols);
+ TESTCASE_AUTO(Test11913_BigDecimal);
+ TESTCASE_AUTO(Test11020_RoundingInScientificNotation);
+ TESTCASE_AUTO(Test11640_TripleCurrencySymbol);
+ TESTCASE_AUTO(Test13763_FieldPositionIteratorOffset);
+ TESTCASE_AUTO(Test13777_ParseLongNameNonCurrencyMode);
+ TESTCASE_AUTO(Test13804_EmptyStringsWhenParsing);
+ TESTCASE_AUTO(Test20037_ScientificIntegerOverflow);
+ TESTCASE_AUTO(Test13840_ParseLongStringCrash);
+ TESTCASE_AUTO(Test13850_EmptyStringCurrency);
TESTCASE_AUTO_END;
}
@@ -645,10 +236,10 @@ NumberFormatTest::TestAPI(void)
}
if(test != NULL) {
test->setMinimumIntegerDigits(10);
- test->setMaximumIntegerDigits(2);
+ test->setMaximumIntegerDigits(1);
test->setMinimumFractionDigits(10);
- test->setMaximumFractionDigits(2);
+ test->setMaximumFractionDigits(1);
UnicodeString result;
FieldPosition pos;
@@ -663,9 +254,14 @@ NumberFormatTest::TestAPI(void)
result.remove();
int64_t ll = 12;
test->format(ll, result);
- if (result != "12.00"){
- errln("format int64_t error");
- }
+ assertEquals("format int64_t error", u"2.0", result);
+
+ test->setMinimumIntegerDigits(4);
+ test->setMinimumFractionDigits(4);
+
+ result.remove();
+ test->format(ll, result);
+ assertEquals("format int64_t error", u"0,012.0000", result);
ParsePosition ppos;
LocalPointer<CurrencyAmount> currAmt(test->parseCurrency("",ppos));
@@ -717,6 +313,58 @@ NumberFormatTest::TestCoverage(void){
};
}
+void NumberFormatTest::TestLocalizedPatternSymbolCoverage() {
+ IcuTestErrorCode errorCode(*this, "TestLocalizedPatternSymbolCoverage");
+ // Ticket #12961: DecimalFormat::toLocalizedPattern() is not working as designed.
+ DecimalFormatSymbols dfs(errorCode);
+ dfs.setSymbol(DecimalFormatSymbols::kGroupingSeparatorSymbol, u'⁖');
+ dfs.setSymbol(DecimalFormatSymbols::kDecimalSeparatorSymbol, u'⁘');
+ dfs.setSymbol(DecimalFormatSymbols::kPatternSeparatorSymbol, u'⁙');
+ dfs.setSymbol(DecimalFormatSymbols::kDigitSymbol, u'▰');
+ dfs.setSymbol(DecimalFormatSymbols::kZeroDigitSymbol, u'໐');
+ dfs.setSymbol(DecimalFormatSymbols::kSignificantDigitSymbol, u'⁕');
+ dfs.setSymbol(DecimalFormatSymbols::kPlusSignSymbol, u'†');
+ dfs.setSymbol(DecimalFormatSymbols::kMinusSignSymbol, u'‡');
+ dfs.setSymbol(DecimalFormatSymbols::kPercentSymbol, u'⁜');
+ dfs.setSymbol(DecimalFormatSymbols::kPerMillSymbol, u'‱');
+ dfs.setSymbol(DecimalFormatSymbols::kExponentialSymbol, u"⁑⁑"); // tests multi-char sequence
+ dfs.setSymbol(DecimalFormatSymbols::kPadEscapeSymbol, u'⁂');
+
+ {
+ UnicodeString standardPattern(u"#,##0.05+%;#,##0.05-%");
+ UnicodeString localizedPattern(u"▰⁖▰▰໐⁘໐໕†⁜⁙▰⁖▰▰໐⁘໐໕‡⁜");
+
+ DecimalFormat df1("#", new DecimalFormatSymbols(dfs), errorCode);
+ df1.applyPattern(standardPattern, errorCode);
+ DecimalFormat df2("#", new DecimalFormatSymbols(dfs), errorCode);
+ df2.applyLocalizedPattern(localizedPattern, errorCode);
+ assertTrue("DecimalFormat instances should be equal", df1 == df2);
+ UnicodeString p2;
+ assertEquals("toPattern should match on localizedPattern instance",
+ standardPattern, df2.toPattern(p2));
+ UnicodeString lp1;
+ assertEquals("toLocalizedPattern should match on standardPattern instance",
+ localizedPattern, df1.toLocalizedPattern(lp1));
+ }
+
+ {
+ UnicodeString standardPattern(u"* @@@E0‰");
+ UnicodeString localizedPattern(u"⁂ ⁕⁕⁕⁑⁑໐‱");
+
+ DecimalFormat df1("#", new DecimalFormatSymbols(dfs), errorCode);
+ df1.applyPattern(standardPattern, errorCode);
+ DecimalFormat df2("#", new DecimalFormatSymbols(dfs), errorCode);
+ df2.applyLocalizedPattern(localizedPattern, errorCode);
+ assertTrue("DecimalFormat instances should be equal", df1 == df2);
+ UnicodeString p2;
+ assertEquals("toPattern should match on localizedPattern instance",
+ standardPattern, df2.toPattern(p2));
+ UnicodeString lp1;
+ assertEquals("toLocalizedPattern should match on standardPattern instance",
+ localizedPattern, df1.toLocalizedPattern(lp1));
+ }
+}
+
// Test various patterns
void
NumberFormatTest::TestPatterns(void)
@@ -727,7 +375,7 @@ NumberFormatTest::TestPatterns(void)
const char* pat[] = { "#.#", "#.", ".#", "#" };
int32_t pat_length = UPRV_LENGTHOF(pat);
- const char* newpat[] = { "#0.#", "#0.", "#.0", "#" };
+ const char* newpat[] = { "0.#", "0.", "#.0", "0" };
const char* num[] = { "0", "0.", ".0", "0" };
for (int32_t i=0; i<pat_length; ++i)
{
@@ -901,7 +549,7 @@ NumberFormatTest::TestExponential(void)
#endif
}
else {
- errln((UnicodeString)"FAIL: Non-numeric Formattable returned");
+ errln(UnicodeString("FAIL: Non-numeric Formattable returned: ") + pattern + " " + s);
continue;
}
if (pos.getIndex() == s.length())
@@ -912,7 +560,8 @@ NumberFormatTest::TestExponential(void)
(uprv_fabs(a - valParse[v+ival]) / a > (2*DBL_EPSILON))) ||
(!useEpsilon && a != valParse[v+ival]))
{
- errln((UnicodeString)"FAIL: Expected " + valParse[v+ival]);
+ errln((UnicodeString)"FAIL: Expected " + valParse[v+ival] + " but got " + a
+ + " on input " + s);
}
}
else {
@@ -939,7 +588,7 @@ NumberFormatTest::TestExponential(void)
{
logln((UnicodeString)" -parse-> " + a);
if (a != lvalParse[v+ilval])
- errln((UnicodeString)"FAIL: Expected " + lvalParse[v+ilval]);
+ errln((UnicodeString)"FAIL: Expected " + lvalParse[v+ilval] + " but got " + a);
}
else
errln((UnicodeString)"FAIL: Partial parse (" + pos.getIndex() + " chars) -> " + a);
@@ -975,7 +624,7 @@ NumberFormatTest::TestScientificGrouping() {
// jb 2552
UErrorCode status = U_ZERO_ERROR;
DecimalFormat fmt("##0.00E0",status);
- if (U_SUCCESS(status)) {
+ if (assertSuccess("", status, true, __FILE__, __LINE__)) {
expect(fmt, .01234, "12.3E-3");
expect(fmt, .1234, "123E-3");
expect(fmt, 1.234, "1.23E0");
@@ -1235,7 +884,7 @@ NumberFormatTest::TestCurrency(void)
UnicodeString s; currencyFmt->format(1.50, s);
logln((UnicodeString)"Un pauvre ici a..........." + s);
if (!(s==CharsToUnicodeString("1,50\\u00A0$")))
- errln((UnicodeString)"FAIL: Expected 1,50<nbsp>$");
+ errln((UnicodeString)"FAIL: Expected 1,50<nbsp>$ but got " + s);
delete currencyFmt;
s.truncate(0);
char loc[256]={0};
@@ -1245,7 +894,7 @@ NumberFormatTest::TestCurrency(void)
currencyFmt->format(1.50, s);
logln((UnicodeString)"Un pauvre en Allemagne a.." + s);
if (!(s==CharsToUnicodeString("1,50\\u00A0DM")))
- errln((UnicodeString)"FAIL: Expected 1,50<nbsp>DM");
+ errln((UnicodeString)"FAIL: Expected 1,50<nbsp>DM but got " + s);
delete currencyFmt;
s.truncate(0);
len = uloc_canonicalize("fr_FR_PREEURO", loc, 256, &status);
@@ -1311,7 +960,7 @@ void NumberFormatTest::TestCurrencyObject() {
1234.56, CharsToUnicodeString("\\u00A51,235")); // Yen
expectCurrency(*fmt, Locale("fr", "CH", ""),
- 1234.56, "CHF1,234.56"); // no more 0.05 rounding here, see cldrbug 5548
+ 1234.56, "CHF 1,234.56"); // no more 0.05 rounding here, see cldrbug 5548
expectCurrency(*fmt, Locale::getUS(),
1234.56, "$1,234.56");
@@ -1325,19 +974,19 @@ void NumberFormatTest::TestCurrencyObject() {
return;
}
- expectCurrency(*fmt, null, 1234.56, CharsToUnicodeString("1 234,56 \\u20AC"));
+ expectCurrency(*fmt, null, 1234.56, CharsToUnicodeString("1\\u202F234,56 \\u20AC"));
expectCurrency(*fmt, Locale::getJapan(),
- 1234.56, CharsToUnicodeString("1 235 JPY")); // Yen
+ 1234.56, CharsToUnicodeString("1\\u202F235 JPY")); // Yen
expectCurrency(*fmt, Locale("fr", "CH", ""),
- 1234.56, "1 234,56 CHF"); // no more 0.05 rounding here, see cldrbug 5548
+ 1234.56, CharsToUnicodeString("1\\u202F234,56 CHF")); // no more 0.05 rounding here, see cldrbug 5548
expectCurrency(*fmt, Locale::getUS(),
- 1234.56, "1 234,56 $US");
+ 1234.56, CharsToUnicodeString("1\\u202F234,56 $US"));
expectCurrency(*fmt, Locale::getFrance(),
- 1234.56, CharsToUnicodeString("1 234,56 \\u20AC")); // Euro
+ 1234.56, CharsToUnicodeString("1\\u202F234,56 \\u20AC")); // Euro
delete fmt;
}
@@ -1378,7 +1027,7 @@ static const char *lenientAffixTestCases[] = {
static const char *lenientMinusTestCases[] = {
"-5",
"\\u22125",
- "\\u20105"
+ "\\u27965"
};
static const char *lenientCurrencyTestCases[] = {
@@ -1454,7 +1103,8 @@ NumberFormatTest::TestLenientParse(void)
if (U_FAILURE(status) || n.getType() != Formattable::kLong ||
n.getLong() != 1) {
- errln((UnicodeString)"Lenient parse failed for \"" + (UnicodeString) lenientAffixTestCases[t] + (UnicodeString) "\"");
+ dataerrln((UnicodeString)"Lenient parse failed for \"" + (UnicodeString) lenientAffixTestCases[t]
+ + (UnicodeString) "\"; error code = " + u_errorName(status));
status = U_ZERO_ERROR;
}
}
@@ -1477,7 +1127,8 @@ NumberFormatTest::TestLenientParse(void)
logln((UnicodeString)"parse(" + testCase + ") = " + n.getLong());
if (U_FAILURE(status) || n.getType() != Formattable::kLong || n.getLong() != -5) {
- errln((UnicodeString)"Lenient parse failed for \"" + (UnicodeString) lenientMinusTestCases[t] + (UnicodeString) "\"");
+ errln((UnicodeString)"Lenient parse failed for \"" + (UnicodeString) lenientMinusTestCases[t]
+ + (UnicodeString) "\"; error code = " + u_errorName(status));
status = U_ZERO_ERROR;
}
}
@@ -1497,7 +1148,8 @@ NumberFormatTest::TestLenientParse(void)
logln((UnicodeString)"parse(" + testCase + ") = " + n.getLong());
if (U_FAILURE(status) || n.getType() != Formattable::kLong || n.getLong() != -5) {
- errln((UnicodeString)"Lenient parse failed for \"" + (UnicodeString) lenientMinusTestCases[t] + (UnicodeString) "\"");
+ errln((UnicodeString)"Lenient parse failed for \"" + (UnicodeString) lenientMinusTestCases[t]
+ + (UnicodeString) "\"; error code = " + u_errorName(status));
status = U_ZERO_ERROR;
}
}
@@ -1518,7 +1170,8 @@ NumberFormatTest::TestLenientParse(void)
if (U_FAILURE(status) ||n.getType() != Formattable::kLong ||
n.getLong() != 1000) {
- errln((UnicodeString)"Lenient parse failed for \"" + (UnicodeString) lenientCurrencyTestCases[t] + (UnicodeString) "\"");
+ errln((UnicodeString)"Lenient parse failed for \"" + (UnicodeString) lenientCurrencyTestCases[t]
+ + (UnicodeString) "\"; error code = " + u_errorName(status));
status = U_ZERO_ERROR;
}
}
@@ -1531,7 +1184,8 @@ NumberFormatTest::TestLenientParse(void)
if (U_FAILURE(status) ||n.getType() != Formattable::kLong ||
n.getLong() != -1000) {
- errln((UnicodeString)"Lenient parse failed for \"" + (UnicodeString) lenientNegativeCurrencyTestCases[t] + (UnicodeString) "\"");
+ errln((UnicodeString)"Lenient parse failed for \"" + (UnicodeString) lenientNegativeCurrencyTestCases[t]
+ + (UnicodeString) "\"; error code = " + u_errorName(status));
status = U_ZERO_ERROR;
}
}
@@ -1553,7 +1207,9 @@ NumberFormatTest::TestLenientParse(void)
if (U_FAILURE(status) ||n.getType() != Formattable::kDouble ||
n.getDouble() != 0.25) {
- errln((UnicodeString)"Lenient parse failed for \"" + (UnicodeString) lenientPercentTestCases[t] + (UnicodeString) "\"");
+ errln((UnicodeString)"Lenient parse failed for \"" + (UnicodeString) lenientPercentTestCases[t]
+ + (UnicodeString) "\"; error code = " + u_errorName(status)
+ + "; got: " + n.getDouble(status));
status = U_ZERO_ERROR;
}
}
@@ -1566,7 +1222,9 @@ NumberFormatTest::TestLenientParse(void)
if (U_FAILURE(status) ||n.getType() != Formattable::kDouble ||
n.getDouble() != -0.25) {
- errln((UnicodeString)"Lenient parse failed for \"" + (UnicodeString) lenientNegativePercentTestCases[t] + (UnicodeString) "\"");
+ errln((UnicodeString)"Lenient parse failed for \"" + (UnicodeString) lenientNegativePercentTestCases[t]
+ + (UnicodeString) "\"; error code = " + u_errorName(status)
+ + "; got: " + n.getDouble(status));
status = U_ZERO_ERROR;
}
}
@@ -1589,7 +1247,8 @@ NumberFormatTest::TestLenientParse(void)
logln((UnicodeString)"parse(" + testCase + ") = " + n.getLong());
if (! U_FAILURE(status)) {
- errln((UnicodeString)"Strict Parse succeeded for \"" + (UnicodeString) strictFailureTestCases[t] + (UnicodeString) "\"");
+ errln((UnicodeString)"Strict Parse succeeded for \"" + (UnicodeString) strictFailureTestCases[t]
+ + (UnicodeString) "\"; error code = " + u_errorName(status));
}
status = U_ZERO_ERROR;
@@ -1605,7 +1264,8 @@ NumberFormatTest::TestLenientParse(void)
if (U_FAILURE(status) ||n.getType() != Formattable::kLong ||
n.getLong() != 1000) {
- errln((UnicodeString)"Lenient parse failed for \"" + (UnicodeString) strictFailureTestCases[t] + (UnicodeString) "\"");
+ errln((UnicodeString)"Lenient parse failed for \"" + (UnicodeString) strictFailureTestCases[t]
+ + (UnicodeString) "\"; error code = " + u_errorName(status));
status = U_ZERO_ERROR;
}
}
@@ -1652,13 +1312,13 @@ void NumberFormatTest::TestSecondaryGrouping(void) {
CHECK(status, "DecimalFormat ct");
expect2(f, (int32_t)123456789L, "12,34,56,789");
- expectPat(f, "#,##,###");
+ expectPat(f, "#,##,##0");
f.applyPattern("#,###", status);
CHECK(status, "applyPattern");
f.setSecondaryGroupingSize(4);
expect2(f, (int32_t)123456789L, "12,3456,789");
- expectPat(f, "#,####,###");
+ expectPat(f, "#,####,##0");
NumberFormat *g = NumberFormat::createInstance(Locale("hi", "IN"), status);
CHECK_DATA(status, "createInstance(hi_IN)");
@@ -1710,6 +1370,8 @@ void NumberFormatTest::TestWhiteSpaceParsing(void) {
errcheckln(ec, "FAIL: Constructor - %s", u_errorName(ec));
return;
}
+ // From ICU 62, flexible whitespace needs lenient mode
+ fmt.setLenient(TRUE);
int32_t n = 1234;
expect(fmt, "a b1234c ", n);
expect(fmt, "a b1234c ", n);
@@ -1780,7 +1442,7 @@ void NumberFormatTest::TestScientific(void) {
int32_t PAT_length = UPRV_LENGTHOF(PAT);
int32_t DIGITS[] = {
// min int, max int, min frac, max frac
- 0, 1, 0, 0, // "#E0"
+ 1, 1, 0, 0, // "#E0"
1, 1, 0, 4, // "0.####E0"
2, 2, 3, 3, // "00.000E00"
1, 3, 0, 4, // "##0.####E000"
@@ -2123,7 +1785,7 @@ void NumberFormatTest::TestPatterns2(void) {
fmt.setFormatWidth(16);
// 12 34567890123456
- expectPat(fmt, "AA*^#,###,##0.00ZZ");
+ expectPat(fmt, "AA*^#####,##0.00ZZ");
}
void NumberFormatTest::TestSurrogateSupport(void) {
@@ -2648,11 +2310,17 @@ void NumberFormatTest::TestPerMill() {
DecimalFormat fmt(ctou("###.###\\u2030"), ec);
if (!assertSuccess("DecimalFormat ct", ec)) return;
assertEquals("0.4857 x ###.###\\u2030",
- ctou("485.7\\u2030"), fmt.format(0.4857, str));
+ ctou("485.7\\u2030"), fmt.format(0.4857, str), true);
DecimalFormatSymbols sym(Locale::getUS(), ec);
+ if (!assertSuccess("", ec, true, __FILE__, __LINE__)) {
+ return;
+ }
sym.setSymbol(DecimalFormatSymbols::kPerMillSymbol, ctou("m"));
DecimalFormat fmt2("", sym, ec);
+ if (!assertSuccess("", ec, true, __FILE__, __LINE__)) {
+ return;
+ }
fmt2.applyLocalizedPattern("###.###m", ec);
if (!assertSuccess("setup", ec)) return;
str.truncate(0);
@@ -3616,17 +3284,13 @@ NumberFormatTest::TestSpaceParsing() {
// the data are:
// the string to be parsed, parsed position, parsed error index
const TestSpaceParsingItem DATA[] = {
- // TOTO: Update the following TODOs, some may be handled now
{"$124", 4, -1, FALSE},
{"$124 $124", 4, -1, FALSE},
{"$124 ", 4, -1, FALSE},
- //{"$ 124 ", 5, -1, FALSE}, // TODO: need to handle space correctly
- //{"$\\u00A0124 ", 5, -1, FALSE}, // TODO: need to handle space correctly
- {"$ 124 ", 0, 1, FALSE}, // errorIndex used to be 0, now 1 (better)
- {"$\\u00A0124 ", 0, 1, FALSE}, // errorIndex used to be 0, now 1 (better)
- {" $ 124 ", 0, 0, FALSE}, // TODO: need to handle space correctly
- {"124$", 0, 3, FALSE}, // TODO: need to handle space correctly
- // {"124 $", 5, -1, FALSE}, // TODO: OK or not, need currency spacing rule
+ {"$ 124 ", 0, 1, FALSE},
+ {"$\\u00A0124 ", 5, -1, FALSE},
+ {" $ 124 ", 0, 0, FALSE},
+ {"124$", 0, 4, FALSE},
{"124 $", 0, 3, FALSE},
{"$124", 4, -1, TRUE},
{"$124 $124", 4, -1, TRUE},
@@ -3634,10 +3298,10 @@ NumberFormatTest::TestSpaceParsing() {
{"$ 124 ", 5, -1, TRUE},
{"$\\u00A0124 ", 5, -1, TRUE},
{" $ 124 ", 6, -1, TRUE},
- //{"124$", 4, -1, TRUE}, // TODO: need to handle trailing currency correctly
- {"124$", 3, -1, TRUE},
- //{"124 $", 5, -1, TRUE}, // TODO: OK or not, need currency spacing rule
- {"124 $", 4, -1, TRUE},
+ {"124$", 4, -1, TRUE},
+ {"124$", 4, -1, TRUE},
+ {"124 $", 5, -1, TRUE},
+ {"124 $", 5, -1, TRUE},
};
UErrorCode status = U_ZERO_ERROR;
Locale locale("en_US");
@@ -3655,6 +3319,7 @@ NumberFormatTest::TestSpaceParsing() {
foo->setLenient(DATA[i].lenient);
Formattable result;
foo->parse(stringToBeParsed, result, parsePosition);
+ logln("Parsing: " + stringToBeParsed);
if (parsePosition.getIndex() != parsedPosition ||
parsePosition.getErrorIndex() != errorIndex) {
errln("FAILED parse " + stringToBeParsed + "; lenient: " + DATA[i].lenient + "; wrong position, expected: (" + parsedPosition + ", " + errorIndex + "); got (" + parsePosition.getIndex() + ", " + parsePosition.getErrorIndex() + ")");
@@ -3767,13 +3432,13 @@ NumberFormatTest::TestMultiCurrencySign() {
// currency format using currency ISO name, such as "USD",
// currency format using plural name, such as "US dollars".
// for US locale
- {"en_US", "\\u00A4#,##0.00;-\\u00A4#,##0.00", "1234.56", "$1,234.56", "USD1,234.56", "US dollars1,234.56"},
- {"en_US", "\\u00A4#,##0.00;-\\u00A4#,##0.00", "-1234.56", "-$1,234.56", "-USD1,234.56", "-US dollars1,234.56"},
- {"en_US", "\\u00A4#,##0.00;-\\u00A4#,##0.00", "1", "$1.00", "USD1.00", "US dollars1.00"},
+ {"en_US", "\\u00A4#,##0.00;-\\u00A4#,##0.00", "1234.56", "$1,234.56", "USD\\u00A01,234.56", "US dollars\\u00A01,234.56"},
+ {"en_US", "\\u00A4#,##0.00;-\\u00A4#,##0.00", "-1234.56", "-$1,234.56", "-USD\\u00A01,234.56", "-US dollars\\u00A01,234.56"},
+ {"en_US", "\\u00A4#,##0.00;-\\u00A4#,##0.00", "1", "$1.00", "USD\\u00A01.00", "US dollars\\u00A01.00"},
// for CHINA locale
- {"zh_CN", "\\u00A4#,##0.00;(\\u00A4#,##0.00)", "1234.56", "\\uFFE51,234.56", "CNY1,234.56", "\\u4EBA\\u6C11\\u5E011,234.56"},
- {"zh_CN", "\\u00A4#,##0.00;(\\u00A4#,##0.00)", "-1234.56", "(\\uFFE51,234.56)", "(CNY1,234.56)", "(\\u4EBA\\u6C11\\u5E011,234.56)"},
- {"zh_CN", "\\u00A4#,##0.00;(\\u00A4#,##0.00)", "1", "\\uFFE51.00", "CNY1.00", "\\u4EBA\\u6C11\\u5E011.00"}
+ {"zh_CN", "\\u00A4#,##0.00;(\\u00A4#,##0.00)", "1234.56", "\\uFFE51,234.56", "CNY\\u00A01,234.56", "\\u4EBA\\u6C11\\u5E01\\u00A01,234.56"},
+ {"zh_CN", "\\u00A4#,##0.00;(\\u00A4#,##0.00)", "-1234.56", "(\\uFFE51,234.56)", "(CNY\\u00A01,234.56)", "(\\u4EBA\\u6C11\\u5E01\\u00A01,234.56)"},
+ {"zh_CN", "\\u00A4#,##0.00;(\\u00A4#,##0.00)", "1", "\\uFFE51.00", "CNY\\u00A01.00", "\\u4EBA\\u6C11\\u5E01\\u00A01.00"}
};
const UChar doubleCurrencySign[] = {0xA4, 0xA4, 0};
@@ -3859,7 +3524,7 @@ NumberFormatTest::TestCurrencyFormatForMixParsing() {
"$1,234.56", // string to be parsed
"USD1,234.56",
"US dollars1,234.56",
- "1,234.56 US dollars"
+ // "1,234.56 US dollars" // Fails in 62 because currency format is not compatible with pattern.
};
const CurrencyAmount* curramt = NULL;
for (uint32_t i = 0; i < UPRV_LENGTHOF(formats); ++i) {
@@ -3888,6 +3553,40 @@ NumberFormatTest::TestCurrencyFormatForMixParsing() {
}
+/** Starting in ICU 62, strict mode is actually strict with currency formats. */
+void NumberFormatTest::TestMismatchedCurrencyFormatFail() {
+ IcuTestErrorCode status(*this, "TestMismatchedCurrencyFormatFail");
+ LocalPointer<DecimalFormat> df(
+ dynamic_cast<DecimalFormat*>(DecimalFormat::createCurrencyInstance("en", status)), status);
+ if (!assertSuccess("createCurrencyInstance() failed.", status, true, __FILE__, __LINE__)) {return;}
+ UnicodeString pattern;
+ assertEquals("Test assumes that currency sign is at the beginning",
+ u"\u00A4#,##0.00",
+ df->toPattern(pattern));
+ // Should round-trip on the correct currency format:
+ expect2(*df, 1.23, u"\u00A41.23");
+ df->setCurrency(u"EUR", status);
+ expect2(*df, 1.23, u"\u20AC1.23");
+ // Should parse with currency in the wrong place in lenient mode
+ df->setLenient(TRUE);
+ expect(*df, u"1.23\u20AC", 1.23);
+ expectParseCurrency(*df, u"EUR", 1.23, "1.23\\u20AC");
+ // Should NOT parse with currency in the wrong place in STRICT mode
+ df->setLenient(FALSE);
+ {
+ Formattable result;
+ ErrorCode failStatus;
+ df->parse(u"1.23\u20AC", result, failStatus);
+ assertEquals("Should fail to parse", U_INVALID_FORMAT_ERROR, failStatus);
+ }
+ {
+ ParsePosition ppos;
+ df->parseCurrency(u"1.23\u20AC", ppos);
+ assertEquals("Should fail to parse currency", 0, ppos.getIndex());
+ }
+}
+
+
void
NumberFormatTest::TestDecimalFormatCurrencyParse() {
// Locale.US
@@ -3917,12 +3616,15 @@ NumberFormatTest::TestDecimalFormatCurrencyParse() {
{"USD1,234.56", "1234.56"},
{"1,234.56 US dollar", "1234.56"},
};
+ // NOTE: ICU 62 requires that the currency format match the pattern in strict mode.
+ fmt->setLenient(TRUE);
for (uint32_t i = 0; i < UPRV_LENGTHOF(DATA); ++i) {
UnicodeString stringToBeParsed = ctou(DATA[i][0]);
double parsedResult = atof(DATA[i][1]);
UErrorCode status = U_ZERO_ERROR;
Formattable result;
fmt->parse(stringToBeParsed, result, status);
+ logln((UnicodeString)"Input: " + stringToBeParsed + "; output: " + result.getDouble(status));
if (U_FAILURE(status) ||
(result.getType() == Formattable::kDouble &&
result.getDouble() != parsedResult) ||
@@ -3946,13 +3648,13 @@ NumberFormatTest::TestCurrencyIsoPluralFormat() {
// format result using ISOCURRENCYSTYLE,
// format result using PLURALCURRENCYSTYLE,
- {"en_US", "1", "USD", "$1.00", "USD1.00", "1.00 US dollars"},
- {"en_US", "1234.56", "USD", "$1,234.56", "USD1,234.56", "1,234.56 US dollars"},
- {"en_US", "-1234.56", "USD", "-$1,234.56", "-USD1,234.56", "-1,234.56 US dollars"},
- {"zh_CN", "1", "USD", "US$1.00", "USD1.00", "1.00\\u7F8E\\u5143"},
- {"zh_CN", "1234.56", "USD", "US$1,234.56", "USD1,234.56", "1,234.56\\u7F8E\\u5143"},
- {"zh_CN", "1", "CNY", "\\uFFE51.00", "CNY1.00", "1.00\\u4EBA\\u6C11\\u5E01"},
- {"zh_CN", "1234.56", "CNY", "\\uFFE51,234.56", "CNY1,234.56", "1,234.56\\u4EBA\\u6C11\\u5E01"},
+ {"en_US", "1", "USD", "$1.00", "USD\\u00A01.00", "1.00 US dollars"},
+ {"en_US", "1234.56", "USD", "$1,234.56", "USD\\u00A01,234.56", "1,234.56 US dollars"},
+ {"en_US", "-1234.56", "USD", "-$1,234.56", "-USD\\u00A01,234.56", "-1,234.56 US dollars"},
+ {"zh_CN", "1", "USD", "US$1.00", "USD\\u00A01.00", "1.00\\u00A0\\u7F8E\\u5143"},
+ {"zh_CN", "1234.56", "USD", "US$1,234.56", "USD\\u00A01,234.56", "1,234.56\\u00A0\\u7F8E\\u5143"},
+ {"zh_CN", "1", "CNY", "\\uFFE51.00", "CNY\\u00A01.00", "1.00\\u00A0\\u4EBA\\u6C11\\u5E01"},
+ {"zh_CN", "1234.56", "CNY", "\\uFFE51,234.56", "CNY\\u00A01,234.56", "1,234.56\\u00A0\\u4EBA\\u6C11\\u5E01"},
{"ru_RU", "1", "RUB", "1,00\\u00A0\\u20BD", "1,00\\u00A0RUB", "1,00 \\u0440\\u043E\\u0441\\u0441\\u0438\\u0439\\u0441\\u043A\\u043E\\u0433\\u043E \\u0440\\u0443\\u0431\\u043B\\u044F"},
{"ru_RU", "2", "RUB", "2,00\\u00A0\\u20BD", "2,00\\u00A0RUB", "2,00 \\u0440\\u043E\\u0441\\u0441\\u0438\\u0439\\u0441\\u043A\\u043E\\u0433\\u043E \\u0440\\u0443\\u0431\\u043B\\u044F"},
{"ru_RU", "5", "RUB", "5,00\\u00A0\\u20BD", "5,00\\u00A0RUB", "5,00 \\u0440\\u043E\\u0441\\u0441\\u0438\\u0439\\u0441\\u043A\\u043E\\u0433\\u043E \\u0440\\u0443\\u0431\\u043B\\u044F"},
@@ -3968,12 +3670,14 @@ NumberFormatTest::TestCurrencyIsoPluralFormat() {
};
for (int32_t i=0; i<UPRV_LENGTHOF(DATA); ++i) {
+ const char* localeString = DATA[i][0];
+ double numberToBeFormat = atof(DATA[i][1]);
+ const char* currencyISOCode = DATA[i][2];
+ logln(UnicodeString(u"Locale: ") + localeString + "; amount: " + numberToBeFormat);
+ Locale locale(localeString);
for (int32_t kIndex = 0; kIndex < UPRV_LENGTHOF(currencyStyles); ++kIndex) {
UNumberFormatStyle k = currencyStyles[kIndex];
- const char* localeString = DATA[i][0];
- double numberToBeFormat = atof(DATA[i][1]);
- const char* currencyISOCode = DATA[i][2];
- Locale locale(localeString);
+ logln(UnicodeString(u"UNumberFormatStyle: ") + k);
UErrorCode status = U_ZERO_ERROR;
NumberFormat* numFmt = NumberFormat::createInstance(locale, k, status);
if (U_FAILURE(status)) {
@@ -4000,6 +3704,8 @@ NumberFormatTest::TestCurrencyIsoPluralFormat() {
errln("FAIL: Expected " + formatResult + " actual: " + strBuf);
}
// test parsing, and test parsing for all currency formats.
+ // NOTE: ICU 62 requires that the currency format match the pattern in strict mode.
+ numFmt->setLenient(TRUE);
for (int j = 3; j < 6; ++j) {
// DATA[i][3] is the currency format result using
// CURRENCYSTYLE formatter.
@@ -4040,24 +3746,25 @@ NumberFormatTest::TestCurrencyParsing() {
// format result using CURRENCYSTYLE,
// format result using ISOCURRENCYSTYLE,
// format result using PLURALCURRENCYSTYLE,
- {"en_US", "1", "USD", "$1.00", "USD1.00", "1.00 US dollar"},
+ {"en_US", "1", "USD", "$1.00", "USD\\u00A01.00", "1.00 US dollars"},
{"pa_IN", "1", "USD", "US$\\u00A01.00", "USD\\u00A01.00", "1.00 \\u0a2f\\u0a42.\\u0a10\\u0a38. \\u0a21\\u0a3e\\u0a32\\u0a30"},
{"es_AR", "1", "USD", "US$\\u00A01,00", "USD\\u00A01,00", "1,00 d\\u00f3lar estadounidense"},
{"ar_EG", "1", "USD", "\\u0661\\u066b\\u0660\\u0660\\u00a0US$", "\\u0661\\u066b\\u0660\\u0660\\u00a0USD", "\\u0661\\u066b\\u0660\\u0660 \\u062f\\u0648\\u0644\\u0627\\u0631 \\u0623\\u0645\\u0631\\u064a\\u0643\\u064a"},
{"fa_CA", "1", "USD", "\\u200e$\\u06f1\\u066b\\u06f0\\u06f0", "\\u200eUSD\\u06f1\\u066b\\u06f0\\u06f0", "\\u06f1\\u066b\\u06f0\\u06f0 \\u062f\\u0644\\u0627\\u0631 \\u0627\\u0645\\u0631\\u06cc\\u06a9\\u0627"},
{"he_IL", "1", "USD", "\\u200f1.00\\u00a0$", "\\u200f1.00\\u00a0USD", "1.00 \\u05d3\\u05d5\\u05dc\\u05e8 \\u05d0\\u05de\\u05e8\\u05d9\\u05e7\\u05d0\\u05d9"},
- {"hr_HR", "1", "USD", "1,00\\u00a0USD", "1,00\\u00a0USD", "1,00 Ameri\\u010dki dolar"},
- {"id_ID", "1", "USD", "US$1,00", "USD1,00", "1,00 Dolar Amerika Serikat"},
- {"it_IT", "1", "USD", "1,00\\u00a0USD", "1,00\\u00a0USD", "1,00 Dollaro Statunitense"},
- {"ko_KR", "1", "USD", "US$1.00", "USD1.00", "1.00 \\ubbf8\\uad6d \\ub2ec\\ub7ec"},
- {"ja_JP", "1", "USD", "$1.00", "USD1.00", "1.00\\u7c73\\u30c9\\u30eb"},
- {"zh_CN", "1", "CNY", "\\uFFE51.00", "CNY01.00", "1.00\\u4EBA\\u6C11\\u5E01"},
- {"zh_TW", "1", "CNY", "CN\\u00A51.00", "CNY1.00", "1.00 \\u4eba\\u6c11\\u5e63"},
- {"zh_Hant", "1", "CNY", "CN\\u00A51.00", "CNY1.00", "1.00 \\u4eba\\u6c11\\u5e63"},
- {"zh_Hant", "1", "JPY", "\\u00A51.00", "JPY1.00", "1.00 \\u65e5\\u5713"},
- {"ja_JP", "1", "JPY", "\\uFFE51.00", "JPY1.00", "1.00\\u65e5\\u672c\\u5186"},
- {"ja_JP", "1", "JPY", "\\u00A51.00", "JPY1.00", "1.00\\u65e5\\u672c\\u5186"},
- {"ru_RU", "1", "RUB", "1,00\\u00A0\\u20BD", "1,00\\u00A0RUB", "1,00 \\u0420\\u043E\\u0441\\u0441\\u0438\\u0439\\u0441\\u043A\\u0438\\u0439 \\u0440\\u0443\\u0431\\u043B\\u044C"}
+ {"hr_HR", "1", "USD", "1,00\\u00a0USD", "1,00\\u00a0USD", "1,00 ameri\\u010Dkih dolara"},
+ {"id_ID", "1", "USD", "US$\\u00A01,00", "USD\\u00A01,00", "1,00 Dolar Amerika Serikat"},
+ {"it_IT", "1", "USD", "1,00\\u00a0USD", "1,00\\u00a0USD", "1,00 dollari statunitensi"},
+ {"ko_KR", "1", "USD", "US$\\u00A01.00", "USD\\u00A01.00", "1.00 \\ubbf8\\uad6d \\ub2ec\\ub7ec"},
+ {"ja_JP", "1", "USD", "$1.00", "USD\\u00A01.00", "1.00\\u00A0\\u7c73\\u30c9\\u30eb"},
+ {"zh_CN", "1", "CNY", "\\uFFE51.00", "CNY\\u00A001.00", "1.00\\u00A0\\u4EBA\\u6C11\\u5E01"},
+ {"zh_TW", "1", "CNY", "CN\\u00A51.00", "CNY\\u00A01.00", "1.00 \\u4eba\\u6c11\\u5e63"},
+ {"zh_Hant", "1", "CNY", "CN\\u00A51.00", "CNY\\u00A01.00", "1.00 \\u4eba\\u6c11\\u5e63"},
+ {"zh_Hant", "1", "JPY", "\\u00A51.00", "JPY\\u00A01.00", "1 \\u65E5\\u5713"},
+ {"ja_JP", "1", "JPY", "\\uFFE51.00", "JPY\\u00A01.00", "1\\u00A0\\u5186"},
+ // ICU 62 requires #parseCurrency() to recognize variants when parsing
+ // {"ja_JP", "1", "JPY", "\\u00A51.00", "JPY\\u00A01.00", "1\\u00A0\\u5186"},
+ {"ru_RU", "1", "RUB", "1,00\\u00A0\\u00A0\\u20BD", "1,00\\u00A0\\u00A0RUB", "1,00 \\u0440\\u043E\\u0441\\u0441\\u0438\\u0439\\u0441\\u043A\\u043E\\u0433\\u043E \\u0440\\u0443\\u0431\\u043B\\u044F"}
};
static const UNumberFormatStyle currencyStyles[] = {
UNUM_CURRENCY,
@@ -4104,9 +3811,6 @@ for (;;) {
UnicodeString strBuf;
numFmt->format(numberToBeFormat, strBuf);
- // TODO: Re-enable the following test block. It has been disabled since
- // the code was first checked-in (r25497)
- /*
int resultDataIndex = 3 + kIndex;
// DATA[i][resultDataIndex] is the currency format result
// using 'k' currency style.
@@ -4114,8 +3818,9 @@ for (;;) {
if (strBuf.compare(formatResult)) {
errln("FAIL: Expected " + formatResult + " actual: " + strBuf);
}
- */
// test parsing, and test parsing for all currency formats.
+ // NOTE: ICU 62 requires that the currency format match the pattern in strict mode.
+ numFmt->setLenient(TRUE);
for (int j = 3; j < 6; ++j) {
// DATA[i][3] is the currency format result using
// CURRENCYSTYLE formatter.
@@ -4158,6 +3863,7 @@ NumberFormatTest::TestParseCurrencyInUCurr() {
"1.00 US DOLLAR", // case in-sensitive
"$1.00",
"USD1.00",
+ "usd1.00", // case in-sensitive: #13696
"US dollar1.00",
"US dollars1.00",
"$1.00",
@@ -6173,7 +5879,6 @@ NumberFormatTest::TestParseCurrencyInUCurr() {
const char* WRONG_DATA[] = {
// Following are missing one last char in the currency name
- "usd1.00", // case sensitive
"1.00 Nicaraguan Cordob",
"1.00 Namibian Dolla",
"1.00 Namibian dolla",
@@ -6699,26 +6404,24 @@ NumberFormatTest::TestParseCurrencyInUCurr() {
Locale locale("en_US");
for (uint32_t i=0; i<UPRV_LENGTHOF(DATA); ++i) {
- UnicodeString formatted = ctou(DATA[i]);
- UErrorCode status = U_ZERO_ERROR;
- NumberFormat* numFmt = NumberFormat::createInstance(locale, UNUM_CURRENCY, status);
- if (numFmt != NULL && U_SUCCESS(status)) {
- ParsePosition parsePos;
- LocalPointer<CurrencyAmount> currAmt(numFmt->parseCurrency(formatted, parsePos));
- if (parsePos.getIndex() > 0) {
- double doubleVal = currAmt->getNumber().getDouble(status);
- if ( doubleVal != 1.0 ) {
- errln("Parsed as currency value other than 1.0: " + formatted + " -> " + doubleVal);
- }
- } else {
- errln("Failed to parse as currency: " + formatted);
- }
- } else {
- dataerrln("Unable to create NumberFormat. - %s", u_errorName(status));
- delete numFmt;
- break;
- }
- delete numFmt;
+ UnicodeString formatted = ctou(DATA[i]);
+ UErrorCode status = U_ZERO_ERROR;
+ LocalPointer<NumberFormat> numFmt(NumberFormat::createInstance(locale, UNUM_CURRENCY, status), status);
+ if (!assertSuccess("", status, true, __FILE__, __LINE__)) {
+ return;
+ }
+ // NOTE: ICU 62 requires that the currency format match the pattern in strict mode.
+ numFmt->setLenient(TRUE);
+ ParsePosition parsePos;
+ LocalPointer<CurrencyAmount> currAmt(numFmt->parseCurrency(formatted, parsePos));
+ if (parsePos.getIndex() > 0) {
+ double doubleVal = currAmt->getNumber().getDouble(status);
+ if ( doubleVal != 1.0 ) {
+ errln("Parsed as currency value other than 1.0: " + formatted + " -> " + doubleVal);
+ }
+ } else {
+ errln("Failed to parse as currency: " + formatted);
+ }
}
for (uint32_t i=0; i<UPRV_LENGTHOF(WRONG_DATA); ++i) {
@@ -6933,15 +6636,11 @@ const char* attrString(int32_t attrId) {
// API test, not a comprehensive test.
// See DecimalFormatTest/DataDrivenTests
//
-#define ASSERT_SUCCESS(status) {if (U_FAILURE(status)) errln("file %s, line %d: status: %s", \
- __FILE__, __LINE__, u_errorName(status));}
-#define ASSERT_EQUALS(expected, actual) {if ((expected) != (actual)) \
- errln("file %s, line %d: %s != %s", __FILE__, __LINE__, #expected, #actual);}
-
-static UBool operator != (const char *s1, UnicodeString &s2) {
- // This function lets ASSERT_EQUALS("literal", UnicodeString) work.
- UnicodeString us1(s1);
- return us1 != s2;
+#define ASSERT_SUCCESS(status) { \
+ assertSuccess(UnicodeString("file ") + __FILE__ + ", line " + __LINE__, (status)); \
+}
+#define ASSERT_EQUALS(expected, actual) { \
+ assertEquals(UnicodeString("file ") + __FILE__ + ", line " + __LINE__, (expected), (actual)); \
}
void NumberFormatTest::TestDecimal() {
@@ -6951,7 +6650,7 @@ void NumberFormatTest::TestDecimal() {
ASSERT_SUCCESS(status);
StringPiece s = f.getDecimalNumber(status);
ASSERT_SUCCESS(status);
- ASSERT_EQUALS("1.2345678999987654321E+667", s);
+ ASSERT_EQUALS("1.2345678999987654321E+667", s.data());
//printf("%s\n", s.data());
}
@@ -6970,7 +6669,7 @@ void NumberFormatTest::TestDecimal() {
ASSERT_EQUALS(123.45, f.getDouble());
ASSERT_EQUALS(123.45, f.getDouble(status));
ASSERT_SUCCESS(status);
- ASSERT_EQUALS("123.45", f.getDecimalNumber(status));
+ ASSERT_EQUALS("123.45", f.getDecimalNumber(status).data());
ASSERT_SUCCESS(status);
f.setDecimalNumber("4.5678E7", status);
@@ -6985,7 +6684,7 @@ void NumberFormatTest::TestDecimal() {
ASSERT_EQUALS(-123, f.getLong());
ASSERT_EQUALS(-123, f.getLong(status));
ASSERT_SUCCESS(status);
- ASSERT_EQUALS("-123", f.getDecimalNumber(status));
+ ASSERT_EQUALS("-123", f.getDecimalNumber(status).data());
ASSERT_SUCCESS(status);
status = U_ZERO_ERROR;
@@ -6995,7 +6694,7 @@ void NumberFormatTest::TestDecimal() {
ASSERT_EQUALS(1234567890123LL, f.getInt64());
ASSERT_EQUALS(1234567890123LL, f.getInt64(status));
ASSERT_SUCCESS(status);
- ASSERT_EQUALS("1234567890123", f.getDecimalNumber(status));
+ ASSERT_EQUALS("1.234567890123E+12", f.getDecimalNumber(status).data());
ASSERT_SUCCESS(status);
}
@@ -7024,9 +6723,9 @@ void NumberFormatTest::TestDecimal() {
dataerrln("Unable to create NumberFormat");
} else {
UnicodeString formattedResult;
- DigitList dl;
+ DecimalQuantity dl;
StringPiece num("123.4566666666666666666666666666666666621E+40");
- dl.set(num, status);
+ dl.setToDecNumber(num, status);
ASSERT_SUCCESS(status);
fmtr->format(dl, formattedResult, NULL, status);
ASSERT_SUCCESS(status);
@@ -7034,7 +6733,7 @@ void NumberFormatTest::TestDecimal() {
status = U_ZERO_ERROR;
num.set("666.666");
- dl.set(num, status);
+ dl.setToDecNumber(num, status);
FieldPosition pos(NumberFormat::FRACTION_FIELD);
ASSERT_SUCCESS(status);
formattedResult.remove();
@@ -7058,7 +6757,7 @@ void NumberFormatTest::TestDecimal() {
Formattable result;
fmtr->parse(input, result, status);
ASSERT_SUCCESS(status);
- ASSERT_EQUALS(0, strcmp("0.0184", result.getDecimalNumber(status).data()));
+ ASSERT_EQUALS("0.0184", result.getDecimalNumber(status).data());
//std::cout << result.getDecimalNumber(status).data();
delete fmtr;
}
@@ -7111,8 +6810,8 @@ void NumberFormatTest::TestCurrencyFractionDigits() {
errln((UnicodeString)"NumberFormat::format() should return the same result - text1="
+ text1 + " text2=" + text2);
}
- delete fmt;
}
+ delete fmt;
}
void NumberFormatTest::TestExponentParse() {
@@ -7123,7 +6822,7 @@ void NumberFormatTest::TestExponentParse() {
// set the exponent symbol
status = U_ZERO_ERROR;
- DecimalFormatSymbols *symbols = new DecimalFormatSymbols(Locale::getDefault(), status);
+ DecimalFormatSymbols symbols(Locale::getDefault(), status);
if(U_FAILURE(status)) {
dataerrln((UnicodeString)"ERROR: Could not create DecimalFormatSymbols (Default)");
return;
@@ -7131,7 +6830,7 @@ void NumberFormatTest::TestExponentParse() {
// create format instance
status = U_ZERO_ERROR;
- DecimalFormat fmt("#####", symbols, status);
+ DecimalFormat fmt(u"#####", symbols, status);
if(U_FAILURE(status)) {
errln((UnicodeString)"ERROR: Could not create DecimalFormat (pattern, symbols*)");
}
@@ -7265,25 +6964,11 @@ NumberFormatTest::Test9087(void)
unum_close(fmt);
}
-#include "dcfmtimp.h"
-
void NumberFormatTest::TestFormatFastpaths() {
-#if UCONFIG_FORMAT_FASTPATHS_49
- logln("Sizeof DecimalFormat = %d, Sizeof DecimalFormatInternal=%d, UNUM_DECIMALFORMAT_INTERNAL_SIZE=%d\n",
- sizeof(DecimalFormat), sizeof(DecimalFormatInternal), UNUM_DECIMALFORMAT_INTERNAL_SIZE);
- if(UNUM_DECIMALFORMAT_INTERNAL_SIZE < sizeof(DecimalFormatInternal)) {
- errln("Error: sizeof(DecimalFormatInternal)=%d but UNUM_DECIMALFORMAT_INTERNAL_SIZE is only %d. Increase the #define?\n", sizeof(DecimalFormatInternal), UNUM_DECIMALFORMAT_INTERNAL_SIZE);
- } else if(UNUM_DECIMALFORMAT_INTERNAL_SIZE > (sizeof(DecimalFormatInternal)+16)) {
- infoln("Note: sizeof(DecimalFormatInternal)=%d but UNUM_DECIMALFORMAT_INTERNAL_SIZE is %d. Decrease the #define? sizeof(DecimalFormat)=%d\n", sizeof(DecimalFormatInternal), UNUM_DECIMALFORMAT_INTERNAL_SIZE, sizeof(DecimalFormat));
- }
-#else
- infoln("NOTE: UCONFIG_FORMAT_FASTPATHS not set, test skipped.");
-#endif
-
// get some additional case
{
UErrorCode status=U_ZERO_ERROR;
- DecimalFormat df(UnicodeString("0000",""),status);
+ DecimalFormat df(UnicodeString(u"0000"),status);
if (U_FAILURE(status)) {
dataerrln("Error creating DecimalFormat - %s", u_errorName(status));
} else {
@@ -7293,15 +6978,16 @@ void NumberFormatTest::TestFormatFastpaths() {
FieldPosition pos;
df.format(long_number, result, pos);
if(U_FAILURE(status)||expect!=result) {
- errcheckln(status, "FAIL: expected '"+expect+"' got '"+result+"' status "+UnicodeString(u_errorName(status),""));
- } else {
+ dataerrln("%s:%d FAIL: expected '%s' got '%s' status %s",
+ __FILE__, __LINE__, CStr(expect)(), CStr(result)(), u_errorName(status));
+ } else {
logln("OK: got expected '"+result+"' status "+UnicodeString(u_errorName(status),""));
}
}
}
{
UErrorCode status=U_ZERO_ERROR;
- DecimalFormat df(UnicodeString("0000000000000000000",""),status);
+ DecimalFormat df(UnicodeString(u"0000000000000000000"),status);
if (U_FAILURE(status)) {
dataerrln("Error creating DecimalFormat - %s", u_errorName(status));
} else {
@@ -7316,7 +7002,8 @@ void NumberFormatTest::TestFormatFastpaths() {
FieldPosition pos;
df.format(long_number, result, pos);
if(U_FAILURE(status)||expect!=result) {
- errcheckln(status, "FAIL: expected '"+expect+"' got '"+result+"' status "+UnicodeString(u_errorName(status),"")+" on -9223372036854775808");
+ dataerrln("%s:%d FAIL: expected '%s' got '%s' status %s on -9223372036854775808",
+ __FILE__, __LINE__, CStr(expect)(), CStr(result)(), u_errorName(status));
} else {
logln("OK: got expected '"+result+"' status "+UnicodeString(u_errorName(status),"")+" on -9223372036854775808");
}
@@ -7324,7 +7011,7 @@ void NumberFormatTest::TestFormatFastpaths() {
}
{
UErrorCode status=U_ZERO_ERROR;
- DecimalFormat df(UnicodeString("0000000000000000000",""),status);
+ DecimalFormat df(UnicodeString(u"0000000000000000000"),status);
if (U_FAILURE(status)) {
dataerrln("Error creating DecimalFormat - %s", u_errorName(status));
} else {
@@ -7339,7 +7026,8 @@ void NumberFormatTest::TestFormatFastpaths() {
FieldPosition pos;
df.format(long_number, result, pos);
if(U_FAILURE(status)||expect!=result) {
- errcheckln(status, "FAIL: expected '"+expect+"' got '"+result+"' status "+UnicodeString(u_errorName(status),"")+" on U_INT64_MAX");
+ dataerrln("%s:%d FAIL: expected '%s' got '%s' status %s on U_INT64_MAX",
+ __FILE__, __LINE__, CStr(expect)(), CStr(result)(), u_errorName(status));
} else {
logln("OK: got expected '"+result+"' status "+UnicodeString(u_errorName(status),"")+" on U_INT64_MAX");
}
@@ -7362,7 +7050,8 @@ void NumberFormatTest::TestFormatFastpaths() {
FieldPosition pos;
df.format(long_number, result, pos);
if(U_FAILURE(status)||expect!=result) {
- errcheckln(status, "FAIL: expected '"+expect+"' got '"+result+"' status "+UnicodeString(u_errorName(status),"")+" on 0");
+ dataerrln("%s:%d FAIL: expected '%s' got '%s' status %s on 0",
+ __FILE__, __LINE__, CStr(expect)(), CStr(result)(), u_errorName(status));
} else {
logln("OK: got expected '"+result+"' status "+UnicodeString(u_errorName(status),"")+" on 0");
}
@@ -7380,7 +7069,8 @@ void NumberFormatTest::TestFormatFastpaths() {
FieldPosition pos;
df.format(long_number, result, pos);
if(U_FAILURE(status)||expect!=result) {
- errcheckln(status, "FAIL: expected '"+expect+"' got '"+result+"' status "+UnicodeString(u_errorName(status),"")+" on -9223372036854775807");
+ dataerrln("%s:%d FAIL: expected '%s' got '%s' status %s on -9223372036854775807",
+ __FILE__, __LINE__, CStr(expect)(), CStr(result)(), u_errorName(status));
} else {
logln("OK: got expected '"+result+"' status "+UnicodeString(u_errorName(status),"")+" on -9223372036854775807");
}
@@ -7390,15 +7080,15 @@ void NumberFormatTest::TestFormatFastpaths() {
void NumberFormatTest::TestFormattableSize(void) {
- if(sizeof(FmtStackData) > UNUM_INTERNAL_STACKARRAY_SIZE) {
- errln("Error: sizeof(FmtStackData)=%d, UNUM_INTERNAL_STACKARRAY_SIZE=%d\n",
- sizeof(FmtStackData), UNUM_INTERNAL_STACKARRAY_SIZE);
- } else if(sizeof(FmtStackData) < UNUM_INTERNAL_STACKARRAY_SIZE) {
- logln("Warning: sizeof(FmtStackData)=%d, UNUM_INTERNAL_STACKARRAY_SIZE=%d\n",
- sizeof(FmtStackData), UNUM_INTERNAL_STACKARRAY_SIZE);
+ if(sizeof(Formattable) > 112) {
+ errln("Error: sizeof(Formattable)=%d, 112=%d\n",
+ sizeof(Formattable), 112);
+ } else if(sizeof(Formattable) < 112) {
+ logln("Warning: sizeof(Formattable)=%d, 112=%d\n",
+ sizeof(Formattable), 112);
} else {
- logln("sizeof(FmtStackData)=%d, UNUM_INTERNAL_STACKARRAY_SIZE=%d\n",
- sizeof(FmtStackData), UNUM_INTERNAL_STACKARRAY_SIZE);
+ logln("sizeof(Formattable)=%d, 112=%d\n",
+ sizeof(Formattable), 112);
}
}
@@ -7679,6 +7369,35 @@ void NumberFormatTest::TestSignificantDigits(void) {
}
result.remove();
}
+
+ // Test for ICU-20063
+ {
+ DecimalFormat df({"en-us", status}, status);
+ df.setSignificantDigitsUsed(TRUE);
+ expect(df, 9.87654321, u"9.87654");
+ df.setMaximumSignificantDigits(3);
+ expect(df, 9.87654321, u"9.88");
+ // setSignificantDigitsUsed with maxSig only
+ df.setSignificantDigitsUsed(TRUE);
+ expect(df, 9.87654321, u"9.88");
+ df.setMinimumSignificantDigits(2);
+ expect(df, 9, u"9.0");
+ // setSignificantDigitsUsed with both minSig and maxSig
+ df.setSignificantDigitsUsed(TRUE);
+ expect(df, 9, u"9.0");
+ // setSignificantDigitsUsed to false: should revert to fraction rounding
+ df.setSignificantDigitsUsed(FALSE);
+ expect(df, 9.87654321, u"9.876543");
+ expect(df, 9, u"9");
+ df.setSignificantDigitsUsed(TRUE);
+ df.setMinimumSignificantDigits(2);
+ expect(df, 9.87654321, u"9.87654");
+ expect(df, 9, u"9.0");
+ // setSignificantDigitsUsed with minSig only
+ df.setSignificantDigitsUsed(TRUE);
+ expect(df, 9.87654321, u"9.87654");
+ expect(df, 9, u"9.0");
+ }
}
void NumberFormatTest::TestShowZero() {
@@ -7942,19 +7661,14 @@ void NumberFormatTest::Test10468ApplyPattern() {
return;
}
- if (fmt.getPadCharacterString() != UnicodeString("a")) {
- errln("Padding character should be 'a'.");
- return;
- }
+ assertEquals("Padding character should be 'a'.", u"a", fmt.getPadCharacterString());
// Padding char of fmt ought to be '*' since that is the default and no
// explicit padding char is specified in the new pattern.
fmt.applyPattern("AA#,##0.00ZZ", status);
// Oops this still prints 'a' even though we changed the pattern.
- if (fmt.getPadCharacterString() != UnicodeString(" ")) {
- errln("applyPattern did not clear padding character.");
- }
+ assertEquals("applyPattern did not clear padding character.", u" ", fmt.getPadCharacterString());
}
void NumberFormatTest::TestRoundingScientific10542() {
@@ -8130,12 +7844,12 @@ void NumberFormatTest::TestRoundingScientific10542() {
void NumberFormatTest::TestZeroScientific10547() {
UErrorCode status = U_ZERO_ERROR;
DecimalFormat fmt("0.00E0", status);
- if (!assertSuccess("Formt creation", status)) {
+ if (!assertSuccess("Format creation", status)) {
return;
}
UnicodeString out;
fmt.format(-0.0, out);
- assertEquals("format", "-0.00E0", out);
+ assertEquals("format", "-0.00E0", out, true);
}
void NumberFormatTest::verifyRounding(
@@ -8154,13 +7868,8 @@ void NumberFormatTest::verifyRounding(
UnicodeString actual;
format.format(values[j], actual);
if (currentExpected != actual) {
- char buffer[256];
- sprintf(
- buffer,
- "For %s value %f, expected ",
- descriptions[i],
- values[j]);
- errln(UnicodeString(buffer) + currentExpected + ", got " + actual);
+ dataerrln("For %s value %f, expected '%s', got '%s'",
+ descriptions[i], values[j], CStr(currentExpected)(), CStr(actual)());
}
}
}
@@ -8189,26 +7898,24 @@ void NumberFormatTest::TestAccountingCurrency() {
// for #5186
void NumberFormatTest::TestEquality() {
UErrorCode status = U_ZERO_ERROR;
- DecimalFormatSymbols* symbols = new DecimalFormatSymbols(Locale("root"), status);
+ DecimalFormatSymbols symbols(Locale("root"), status);
if (U_FAILURE(status)) {
dataerrln("Fail: can't create DecimalFormatSymbols for root");
return;
}
UnicodeString pattern("#,##0.###");
- DecimalFormat* fmtBase = new DecimalFormat(pattern, symbols, status);
+ DecimalFormat fmtBase(pattern, symbols, status);
if (U_FAILURE(status)) {
dataerrln("Fail: can't create DecimalFormat using root symbols");
return;
}
- DecimalFormat* fmtClone = (DecimalFormat*)fmtBase->clone();
- fmtClone->setFormatWidth(fmtBase->getFormatWidth() + 32);
- if (*fmtClone == *fmtBase) {
+ DecimalFormat* fmtClone = (DecimalFormat*)fmtBase.clone();
+ fmtClone->setFormatWidth(fmtBase.getFormatWidth() + 32);
+ if (*fmtClone == fmtBase) {
errln("Error: DecimalFormat == does not distinguish objects that differ only in FormatWidth");
}
delete fmtClone;
-
- delete fmtBase;
}
void NumberFormatTest::TestCurrencyUsage() {
@@ -8219,22 +7926,22 @@ void NumberFormatTest::TestCurrencyUsage() {
// compare the Currency and Currency Cash Digits
// Note that as of CLDR 26:
- // * TWD switches from 0 decimals to 2; PKR still has 0, so change test to that
+ // * TWD and PKR switched from 0 decimals to 2; ISK still has 0, so change test to that
// * CAD rounds to .05 in cash mode only
// 1st time for getter/setter, 2nd time for factory method
- Locale enUS_PKR("en_US@currency=PKR");
+ Locale enUS_ISK("en_US@currency=ISK");
for(int i=0; i<2; i++){
status = U_ZERO_ERROR;
if(i == 0){
- fmt = (DecimalFormat *) NumberFormat::createInstance(enUS_PKR, UNUM_CURRENCY, status);
- if (assertSuccess("en_US@currency=PKR/CURRENCY", status, TRUE) == FALSE) {
+ fmt = (DecimalFormat *) NumberFormat::createInstance(enUS_ISK, UNUM_CURRENCY, status);
+ if (assertSuccess("en_US@currency=ISK/CURRENCY", status, TRUE) == FALSE) {
continue;
}
UnicodeString original;
fmt->format(agent,original);
- assertEquals("Test Currency Usage 1", UnicodeString("PKR124"), original);
+ assertEquals("Test Currency Usage 1", u"ISK\u00A0124", original);
// test the getter here
UCurrencyUsage curUsage = fmt->getCurrencyUsage();
@@ -8242,8 +7949,8 @@ void NumberFormatTest::TestCurrencyUsage() {
fmt->setCurrencyUsage(UCURR_USAGE_CASH, &status);
}else{
- fmt = (DecimalFormat *) NumberFormat::createInstance(enUS_PKR, UNUM_CASH_CURRENCY, status);
- if (assertSuccess("en_US@currency=PKR/CASH", status, TRUE) == FALSE) {
+ fmt = (DecimalFormat *) NumberFormat::createInstance(enUS_ISK, UNUM_CASH_CURRENCY, status);
+ if (assertSuccess("en_US@currency=ISK/CASH", status, TRUE) == FALSE) {
continue;
}
}
@@ -8254,7 +7961,7 @@ void NumberFormatTest::TestCurrencyUsage() {
UnicodeString cash_currency;
fmt->format(agent,cash_currency);
- assertEquals("Test Currency Usage 2", UnicodeString("PKR124"), cash_currency);
+ assertEquals("Test Currency Usage 2", u"ISK\u00A0124", cash_currency);
delete fmt;
}
@@ -8271,7 +7978,7 @@ void NumberFormatTest::TestCurrencyUsage() {
UnicodeString original_rounding;
fmt->format(agent, original_rounding);
- assertEquals("Test Currency Usage 3", UnicodeString("CA$123.57"), original_rounding);
+ assertEquals("Test Currency Usage 3", u"CA$123.57", original_rounding);
fmt->setCurrencyUsage(UCURR_USAGE_CASH, &status);
}else{
fmt = (DecimalFormat *) NumberFormat::createInstance(enUS_CAD, UNUM_CASH_CURRENCY, status);
@@ -8282,7 +7989,7 @@ void NumberFormatTest::TestCurrencyUsage() {
UnicodeString cash_rounding_currency;
fmt->format(agent, cash_rounding_currency);
- assertEquals("Test Currency Usage 4", UnicodeString("CA$123.55"), cash_rounding_currency);
+ assertEquals("Test Currency Usage 4", u"CA$123.55", cash_rounding_currency);
delete fmt;
}
@@ -8307,83 +8014,18 @@ void NumberFormatTest::TestCurrencyUsage() {
UnicodeString cur_original;
fmt->setCurrencyUsage(UCURR_USAGE_STANDARD, &status);
fmt->format(agent, cur_original);
- assertEquals("Test Currency Usage 5", UnicodeString("CA$123.57"), cur_original);
+ assertEquals("Test Currency Usage 5", u"CA$123.57", cur_original);
fmt->setCurrency(CUR_PKR, status);
assertSuccess("Set currency to PKR", status);
UnicodeString PKR_changed;
fmt->format(agent, PKR_changed);
- assertEquals("Test Currency Usage 6", UnicodeString("PKR124"), PKR_changed);
+ assertEquals("Test Currency Usage 6", u"PKR\u00A0123.57", PKR_changed);
delete fmt;
}
}
-void NumberFormatTest::TestNumberFormatTestTuple() {
- NumberFormatTestTuple tuple;
- UErrorCode status = U_ZERO_ERROR;
-
- tuple.setField(
- NumberFormatTestTuple::getFieldByName("locale"),
- "en",
- status);
- tuple.setField(
- NumberFormatTestTuple::getFieldByName("pattern"),
- "#,##0.00",
- status);
- tuple.setField(
- NumberFormatTestTuple::getFieldByName("minIntegerDigits"),
- "-10",
- status);
- if (!assertSuccess("", status)) {
- return;
- }
-
- // only what we set should be set.
- assertEquals("", "en", tuple.locale.getName());
- assertEquals("", "#,##0.00", tuple.pattern);
- assertEquals("", -10, tuple.minIntegerDigits);
- assertTrue("", tuple.localeFlag);
- assertTrue("", tuple.patternFlag);
- assertTrue("", tuple.minIntegerDigitsFlag);
- assertFalse("", tuple.formatFlag);
-
- UnicodeString appendTo;
- assertEquals(
- "",
- "{locale: en, pattern: #,##0.00, minIntegerDigits: -10}",
- tuple.toString(appendTo));
-
- tuple.clear();
- appendTo.remove();
- assertEquals(
- "",
- "{}",
- tuple.toString(appendTo));
- tuple.setField(
- NumberFormatTestTuple::getFieldByName("aBadFieldName"),
- "someValue",
- status);
- if (status != U_ILLEGAL_ARGUMENT_ERROR) {
- errln("Expected U_ILLEGAL_ARGUMENT_ERROR");
- }
- status = U_ZERO_ERROR;
- tuple.setField(
- NumberFormatTestTuple::getFieldByName("minIntegerDigits"),
- "someBadValue",
- status);
- if (status != U_ILLEGAL_ARGUMENT_ERROR) {
- errln("Expected U_ILLEGAL_ARGUMENT_ERROR");
- }
-}
-
-void
-NumberFormatTest::TestDataDriven() {
- NumberFormatTestDataDriven dd;
- dd.setCaller(this);
- dd.run("numberformattestspecification.txt", TRUE);
-}
-
// Check the constant MAX_INT64_IN_DOUBLE.
// The value should convert to a double with no loss of precision.
@@ -8401,7 +8043,7 @@ void NumberFormatTest::TestDoubleLimit11439() {
sprintf(buf, "%lld", (long long)num);
double fNum = 0.0;
sscanf(buf, "%lf", &fNum);
- int64_t rtNum = fNum;
+ int64_t rtNum = static_cast<int64_t>(fNum);
if (num != rtNum) {
errln("%s:%d MAX_INT64_IN_DOUBLE test, %lld did not round trip. Got %lld", __FILE__, __LINE__, (long long)num, (long long)rtNum);
return;
@@ -8411,7 +8053,7 @@ void NumberFormatTest::TestDoubleLimit11439() {
sprintf(buf, "%lld", (long long)num);
double fNum = 0.0;
sscanf(buf, "%lf", &fNum);
- int64_t rtNum = fNum;
+ int64_t rtNum = static_cast<int64_t>(fNum);
if (num != rtNum) {
errln("%s:%d MAX_INT64_IN_DOUBLE test, %lld did not round trip. Got %lld", __FILE__, __LINE__, (long long)num, (long long)rtNum);
return;
@@ -8419,21 +8061,6 @@ void NumberFormatTest::TestDoubleLimit11439() {
}
}
-void NumberFormatTest::TestFastPathConsistent11524() {
- UErrorCode status = U_ZERO_ERROR;
- NumberFormat *fmt = NumberFormat::createInstance("en", status);
- if (U_FAILURE(status) || fmt == NULL) {
- dataerrln("Failed call to NumberFormat::createInstance() - %s", u_errorName(status));
- return;
- }
- fmt->setMaximumIntegerDigits(INT32_MIN);
- UnicodeString appendTo;
- assertEquals("", "0", fmt->format((int32_t)123, appendTo));
- appendTo.remove();
- assertEquals("", "0", fmt->format((int32_t)12345, appendTo));
- delete fmt;
-}
-
void NumberFormatTest::TestGetAffixes() {
UErrorCode status = U_ZERO_ERROR;
DecimalFormatSymbols sym("en_US", status);
@@ -8672,11 +8299,51 @@ void NumberFormatTest::Test11868() {
}
void NumberFormatTest::Test10727_RoundingZero() {
- DigitList d;
- d.set(-0.0);
- assertFalse("", d.isPositive());
- d.round(3);
- assertFalse("", d.isPositive());
+ IcuTestErrorCode status(*this, "Test10727_RoundingZero");
+ DecimalQuantity dq;
+ dq.setToDouble(-0.0);
+ assertTrue("", dq.isNegative());
+ dq.roundToMagnitude(0, UNUM_ROUND_HALFEVEN, status);
+ assertTrue("", dq.isNegative());
+}
+
+void NumberFormatTest::Test11739_ParseLongCurrency() {
+ IcuTestErrorCode status(*this, "Test11739_ParseLongCurrency");
+ LocalPointer<NumberFormat> nf(NumberFormat::createCurrencyInstance("sr_BA", status));
+ if (status.errDataIfFailureAndReset()) { return; }
+ ((DecimalFormat*) nf.getAlias())->applyPattern(u"#,##0.0 ¤¤¤", status);
+ ParsePosition ppos(0);
+ LocalPointer<CurrencyAmount> result(nf->parseCurrency(u"1.500 амерички долар", ppos));
+ assertEquals("Should parse to 1500 USD", -1, ppos.getErrorIndex());
+ assertEquals("Should parse to 1500 USD", 1500LL, result->getNumber().getInt64(status));
+ assertEquals("Should parse to 1500 USD", u"USD", result->getISOCurrency());
+}
+
+void NumberFormatTest::Test13035_MultiCodePointPaddingInPattern() {
+ IcuTestErrorCode status(*this, "Test13035_MultiCodePointPaddingInPattern");
+ DecimalFormat df(u"a*'நி'###0b", status);
+ if (!assertSuccess("", status, true, __FILE__, __LINE__)) { return; }
+ UnicodeString result;
+ df.format(12, result.remove());
+ // TODO(13034): Re-enable this test when support is added in ICU4C.
+ //assertEquals("Multi-codepoint padding should not be split", u"aநிநி12b", result);
+ df = DecimalFormat(u"a*\U0001F601###0b", status);
+ if (!assertSuccess("", status, true, __FILE__, __LINE__)) { return; }
+ result = df.format(12, result.remove());
+ assertEquals("Single-codepoint padding should not be split", u"a\U0001F601\U0001F60112b", result, true);
+ df = DecimalFormat(u"a*''###0b", status);
+ if (!assertSuccess("", status, true, __FILE__, __LINE__)) { return; }
+ result = df.format(12, result.remove());
+ assertEquals("Quote should be escapable in padding syntax", "a''12b", result, true);
+}
+
+void NumberFormatTest::Test13737_ParseScientificStrict() {
+ IcuTestErrorCode status(*this, "Test13737_ParseScientificStrict");
+ LocalPointer<NumberFormat> df(NumberFormat::createScientificInstance("en", status), status);
+ if (!assertSuccess("", status, true, __FILE__, __LINE__)) {return;}
+ df->setLenient(FALSE);
+ // Parse Test
+ expect(*df, u"1.2", 1.2);
}
void NumberFormatTest::Test11376_getAndSetPositivePrefix() {
@@ -8710,9 +8377,7 @@ void NumberFormatTest::Test11376_getAndSetPositivePrefix() {
}
DecimalFormat *dfmt = (DecimalFormat *) fmt.getAlias();
UnicodeString result;
- UnicodeString tripleIntlCurrency(" \\u00a4\\u00a4\\u00a4");
- tripleIntlCurrency = tripleIntlCurrency.unescape();
- assertEquals("", tripleIntlCurrency, dfmt->getPositiveSuffix(result));
+ assertEquals("", u" (unknown currency)", dfmt->getPositiveSuffix(result));
dfmt->setCurrency(USD);
// getPositiveSuffix() always returns the suffix for the
@@ -8905,25 +8570,17 @@ void NumberFormatTest::verifyFieldPositionIterator(
}
}
-void NumberFormatTest::checkExceptionIssue11735() {
- UErrorCode status;
+void NumberFormatTest::Test11735_ExceptionIssue() {
+ IcuTestErrorCode status(*this, "Test11735_ExceptionIssue");
Locale enLocale("en");
DecimalFormatSymbols symbols(enLocale, status);
-
- if (U_FAILURE(status)) {
- errln((UnicodeString)
- "Fail: Construct DecimalFormatSymbols");
+ if (status.isSuccess()) {
+ DecimalFormat fmt("0", symbols, status);
+ assertSuccess("Fail: Construct DecimalFormat formatter", status, true, __FILE__, __LINE__);
+ ParsePosition ppos(0);
+ fmt.parseCurrency("53.45", ppos); // NPE thrown here in ICU4J.
+ assertEquals("Issue11735 ppos", 0, ppos.getIndex());
}
-
- DecimalFormat fmt("0", symbols, status);
- if (U_FAILURE(status)) {
- errln((UnicodeString)
- "Fail: Construct DecimalFormat formatter");
- }
-
- ParsePosition ppos(0);
- fmt.parseCurrency("53.45", ppos); // NPE thrown here in ICU4J.
- assertEquals("Issue11735 ppos", 0, ppos.getIndex());
}
void NumberFormatTest::Test11035_FormatCurrencyAmount() {
@@ -8971,4 +8628,673 @@ void NumberFormatTest::Test11318_DoubleConversion() {
assertEquals("Should render all digits", u"999,999,999,999,999.9", appendTo);
}
+void NumberFormatTest::TestParsePercentRegression() {
+ IcuTestErrorCode status(*this, "TestParsePercentRegression");
+ LocalPointer<DecimalFormat> df1((DecimalFormat*) NumberFormat::createInstance("en", status), status);
+ LocalPointer<DecimalFormat> df2((DecimalFormat*) NumberFormat::createPercentInstance("en", status), status);
+ if (status.isFailure()) {return; }
+ df1->setLenient(TRUE);
+ df2->setLenient(TRUE);
+
+ {
+ ParsePosition ppos;
+ Formattable result;
+ df1->parse("50%", result, ppos);
+ assertEquals("df1 should accept a number but not the percent sign", 2, ppos.getIndex());
+ assertEquals("df1 should return the number as 50", 50.0, result.getDouble(status));
+ }
+ {
+ ParsePosition ppos;
+ Formattable result;
+ df2->parse("50%", result, ppos);
+ assertEquals("df2 should accept the percent sign", 3, ppos.getIndex());
+ assertEquals("df2 should return the number as 0.5", 0.5, result.getDouble(status));
+ }
+ {
+ ParsePosition ppos;
+ Formattable result;
+ df2->parse("50", result, ppos);
+ assertEquals("df2 should return the number as 0.5 even though the percent sign is missing",
+ 0.5,
+ result.getDouble(status));
+ }
+}
+
+void NumberFormatTest::TestMultiplierWithScale() {
+ IcuTestErrorCode status(*this, "TestMultiplierWithScale");
+
+ // Test magnitude combined with multiplier, as shown in API docs
+ DecimalFormat df("0", {"en", status}, status);
+ if (status.isSuccess()) {
+ df.setMultiplier(5);
+ df.setMultiplierScale(-1);
+ expect2(df, 100, u"50"); // round-trip test
+ }
+}
+
+void NumberFormatTest::TestFastFormatInt32() {
+ IcuTestErrorCode status(*this, "TestFastFormatInt32");
+
+ // The two simplest formatters, old API and new API.
+ // Old API should use the fastpath for ints.
+ LocalizedNumberFormatter lnf = NumberFormatter::withLocale("en");
+ LocalPointer<NumberFormat> df(NumberFormat::createInstance("en", status), status);
+ if (!assertSuccess("", status, true, __FILE__, __LINE__)) {return;}
+
+ double nums[] = {
+ 0.0,
+ -0.0,
+ NAN,
+ INFINITY,
+ 0.1,
+ 1.0,
+ 1.1,
+ 2.0,
+ 3.0,
+ 9.0,
+ 10.0,
+ 99.0,
+ 100.0,
+ 999.0,
+ 1000.0,
+ 9999.0,
+ 10000.0,
+ 99999.0,
+ 100000.0,
+ 999999.0,
+ 1000000.0,
+ static_cast<double>(INT32_MAX) - 1,
+ static_cast<double>(INT32_MAX),
+ static_cast<double>(INT32_MAX) + 1,
+ static_cast<double>(INT32_MIN) - 1,
+ static_cast<double>(INT32_MIN),
+ static_cast<double>(INT32_MIN) + 1};
+
+ for (auto num : nums) {
+ UnicodeString expected = lnf.formatDouble(num, status).toString();
+ UnicodeString actual;
+ df->format(num, actual);
+ assertEquals(UnicodeString("d = ") + num, expected, actual);
+ }
+}
+
+void NumberFormatTest::Test11646_Equality() {
+ UErrorCode status = U_ZERO_ERROR;
+ DecimalFormatSymbols symbols(Locale::getEnglish(), status);
+ UnicodeString pattern(u"\u00a4\u00a4\u00a4 0.00 %\u00a4\u00a4");
+ DecimalFormat fmt(pattern, symbols, status);
+ if (!assertSuccess("", status)) return;
+
+ // Test equality with affixes. set affix methods can't capture special
+ // characters which is why equality should fail.
+ {
+ DecimalFormat fmtCopy(fmt);
+ assertTrue("", fmt == fmtCopy);
+ UnicodeString positivePrefix;
+ fmtCopy.setPositivePrefix(fmtCopy.getPositivePrefix(positivePrefix));
+ assertFalse("", fmt == fmtCopy);
+ }
+ {
+ DecimalFormat fmtCopy = DecimalFormat(fmt);
+ assertTrue("", fmt == fmtCopy);
+ UnicodeString positivePrefix;
+ fmtCopy.setPositiveSuffix(fmtCopy.getPositiveSuffix(positivePrefix));
+ assertFalse("", fmt == fmtCopy);
+ }
+ {
+ DecimalFormat fmtCopy(fmt);
+ assertTrue("", fmt == fmtCopy);
+ UnicodeString negativePrefix;
+ fmtCopy.setNegativePrefix(fmtCopy.getNegativePrefix(negativePrefix));
+ assertFalse("", fmt == fmtCopy);
+ }
+ {
+ DecimalFormat fmtCopy(fmt);
+ assertTrue("", fmt == fmtCopy);
+ UnicodeString negativePrefix;
+ fmtCopy.setNegativeSuffix(fmtCopy.getNegativeSuffix(negativePrefix));
+ assertFalse("", fmt == fmtCopy);
+ }
+}
+
+void NumberFormatTest::TestParseNaN() {
+ IcuTestErrorCode status(*this, "TestParseNaN");
+
+ DecimalFormat df("0", { "en", status }, status);
+ if (!assertSuccess("", status, true, __FILE__, __LINE__)) { return; }
+ Formattable parseResult;
+ df.parse(u"NaN", parseResult, status);
+ assertEquals("NaN should parse successfully", NAN, parseResult.getDouble());
+ assertFalse("Result NaN should be positive", std::signbit(parseResult.getDouble()));
+ UnicodeString formatResult;
+ df.format(parseResult.getDouble(), formatResult);
+ assertEquals("NaN should round-trip", u"NaN", formatResult);
+}
+
+void NumberFormatTest::Test11897_LocalizedPatternSeparator() {
+ IcuTestErrorCode status(*this, "Test11897_LocalizedPatternSeparator");
+
+ // In a locale with a different <list> symbol, like arabic,
+ // kPatternSeparatorSymbol should still be ';'
+ {
+ DecimalFormatSymbols dfs("ar", status);
+ assertEquals("pattern separator symbol should be ;",
+ u";",
+ dfs.getSymbol(DecimalFormatSymbols::kPatternSeparatorSymbol));
+ }
+
+ // However, the custom symbol should be used in localized notation
+ // when set manually via API
+ {
+ DecimalFormatSymbols dfs("en", status);
+ dfs.setSymbol(DecimalFormatSymbols::kPatternSeparatorSymbol, u"!", FALSE);
+ DecimalFormat df(u"0", dfs, status);
+ if (!assertSuccess("", status, true, __FILE__, __LINE__)) { return; }
+ df.applyPattern("a0;b0", status); // should not throw
+ UnicodeString result;
+ assertEquals("should apply the normal pattern",
+ df.getNegativePrefix(result.remove()),
+ "b");
+ df.applyLocalizedPattern(u"c0!d0", status); // should not throw
+ assertEquals("should apply the localized pattern",
+ df.getNegativePrefix(result.remove()),
+ "d");
+ }
+}
+
+void NumberFormatTest::Test13055_PercentageRounding() {
+ IcuTestErrorCode status(*this, "PercentageRounding");
+ UnicodeString actual;
+ LocalPointer<NumberFormat>pFormat(NumberFormat::createPercentInstance("en_US", status));
+ if (U_FAILURE(status)) {
+ dataerrln("Failure creating DecimalFormat %s", u_errorName(status));
+ return;
+ }
+ pFormat->setMaximumFractionDigits(0);
+ pFormat->setRoundingMode(DecimalFormat::kRoundHalfEven);
+ pFormat->format(2.155, actual);
+ assertEquals("Should round percent toward even number", "216%", actual);
+}
+
+void NumberFormatTest::Test11839() {
+ IcuTestErrorCode errorCode(*this, "Test11839");
+ // Ticket #11839: DecimalFormat does not respect custom plus sign
+ LocalPointer<DecimalFormatSymbols> dfs(new DecimalFormatSymbols(Locale::getEnglish(), errorCode), errorCode);
+ if (!assertSuccess("", errorCode, true, __FILE__, __LINE__)) { return; }
+ dfs->setSymbol(DecimalFormatSymbols::kMinusSignSymbol, u"a∸");
+ dfs->setSymbol(DecimalFormatSymbols::kPlusSignSymbol, u"b∔"); // ∔ U+2214 DOT PLUS
+ DecimalFormat df(u"0.00+;0.00-", dfs.orphan(), errorCode);
+ UnicodeString result;
+ df.format(-1.234, result, errorCode);
+ assertEquals("Locale-specific minus sign should be used", u"1.23a∸", result);
+ df.format(1.234, result.remove(), errorCode);
+ assertEquals("Locale-specific plus sign should be used", u"1.23b∔", result);
+ // Test round-trip with parse
+ expect2(df, -456, u"456.00a∸");
+ expect2(df, 456, u"456.00b∔");
+}
+
+void NumberFormatTest::Test10354() {
+ IcuTestErrorCode errorCode(*this, "Test10354");
+ // Ticket #10354: invalid FieldPositionIterator when formatting with empty NaN
+ DecimalFormatSymbols dfs(errorCode);
+ UnicodeString empty;
+ dfs.setSymbol(DecimalFormatSymbols::kNaNSymbol, empty);
+ DecimalFormat df(errorCode);
+ df.setDecimalFormatSymbols(dfs);
+ UnicodeString result;
+ FieldPositionIterator positions;
+ df.format(NAN, result, &positions, errorCode);
+ errorCode.errIfFailureAndReset("DecimalFormat.format(NAN, FieldPositionIterator) failed");
+ FieldPosition fp;
+ while (positions.next(fp)) {
+ // Should not loop forever
+ }
+}
+
+void NumberFormatTest::Test11645_ApplyPatternEquality() {
+ IcuTestErrorCode status(*this, "Test11645_ApplyPatternEquality");
+ const char16_t* pattern = u"#,##0.0#";
+ LocalPointer<DecimalFormat> fmt((DecimalFormat*) NumberFormat::createInstance(status), status);
+ if (!assertSuccess("", status, true, __FILE__, __LINE__)) { return; }
+ fmt->applyPattern(pattern, status);
+ LocalPointer<DecimalFormat> fmtCopy;
+
+ static const int32_t newMultiplier = 37;
+ fmtCopy.adoptInstead(new DecimalFormat(*fmt));
+ assertFalse("Value before setter", fmtCopy->getMultiplier() == newMultiplier);
+ fmtCopy->setMultiplier(newMultiplier);
+ assertEquals("Value after setter", fmtCopy->getMultiplier(), newMultiplier);
+ fmtCopy->applyPattern(pattern, status);
+ assertEquals("Value after applyPattern", fmtCopy->getMultiplier(), newMultiplier);
+ assertFalse("multiplier", *fmt == *fmtCopy);
+
+ static const NumberFormat::ERoundingMode newRoundingMode = NumberFormat::ERoundingMode::kRoundCeiling;
+ fmtCopy.adoptInstead(new DecimalFormat(*fmt));
+ assertFalse("Value before setter", fmtCopy->getRoundingMode() == newRoundingMode);
+ fmtCopy->setRoundingMode(newRoundingMode);
+ assertEquals("Value after setter", fmtCopy->getRoundingMode(), newRoundingMode);
+ fmtCopy->applyPattern(pattern, status);
+ assertEquals("Value after applyPattern", fmtCopy->getRoundingMode(), newRoundingMode);
+ assertFalse("roundingMode", *fmt == *fmtCopy);
+
+ static const char16_t *const newCurrency = u"EAT";
+ fmtCopy.adoptInstead(new DecimalFormat(*fmt));
+ assertFalse("Value before setter", fmtCopy->getCurrency() == newCurrency);
+ fmtCopy->setCurrency(newCurrency);
+ assertEquals("Value after setter", fmtCopy->getCurrency(), newCurrency);
+ fmtCopy->applyPattern(pattern, status);
+ assertEquals("Value after applyPattern", fmtCopy->getCurrency(), newCurrency);
+ assertFalse("currency", *fmt == *fmtCopy);
+
+ static const UCurrencyUsage newCurrencyUsage = UCurrencyUsage::UCURR_USAGE_CASH;
+ fmtCopy.adoptInstead(new DecimalFormat(*fmt));
+ assertFalse("Value before setter", fmtCopy->getCurrencyUsage() == newCurrencyUsage);
+ fmtCopy->setCurrencyUsage(newCurrencyUsage, status);
+ assertEquals("Value after setter", fmtCopy->getCurrencyUsage(), newCurrencyUsage);
+ fmtCopy->applyPattern(pattern, status);
+ assertEquals("Value after applyPattern", fmtCopy->getCurrencyUsage(), newCurrencyUsage);
+ assertFalse("currencyUsage", *fmt == *fmtCopy);
+}
+
+void NumberFormatTest::Test12567() {
+ IcuTestErrorCode errorCode(*this, "Test12567");
+ // Ticket #12567: DecimalFormat.equals() may not be symmetric
+ LocalPointer<DecimalFormat> df1((DecimalFormat *)
+ NumberFormat::createInstance(Locale::getUS(), UNUM_CURRENCY, errorCode));
+ LocalPointer<DecimalFormat> df2((DecimalFormat *)
+ NumberFormat::createInstance(Locale::getUS(), UNUM_DECIMAL, errorCode));
+ if (!assertSuccess("", errorCode, true, __FILE__, __LINE__)) { return; }
+ // NOTE: CurrencyPluralInfo equality not tested in C++ because its operator== is not defined.
+ df1->applyPattern(u"0.00", errorCode);
+ df2->applyPattern(u"0.00", errorCode);
+ assertTrue("df1 == df2", *df1 == *df2);
+ assertTrue("df2 == df1", *df2 == *df1);
+ df2->setPositivePrefix(u"abc");
+ assertTrue("df1 != df2", *df1 != *df2);
+ assertTrue("df2 != df1", *df2 != *df1);
+}
+
+void NumberFormatTest::Test11626_CustomizeCurrencyPluralInfo() {
+ IcuTestErrorCode errorCode(*this, "Test11626_CustomizeCurrencyPluralInfo");
+ // Ticket #11626: No unit test demonstrating how to use CurrencyPluralInfo to
+ // change formatting spelled out currencies
+ // Use locale sr because it has interesting plural rules.
+ Locale locale("sr");
+ LocalPointer<DecimalFormatSymbols> symbols(new DecimalFormatSymbols(locale, errorCode), errorCode);
+ CurrencyPluralInfo info(locale, errorCode);
+ if (!assertSuccess("", errorCode, true, __FILE__, __LINE__)) { return; }
+ info.setCurrencyPluralPattern(u"one", u"0 qwerty", errorCode);
+ info.setCurrencyPluralPattern(u"few", u"0 dvorak", errorCode);
+ DecimalFormat df(u"#", symbols.orphan(), UNUM_CURRENCY_PLURAL, errorCode);
+ df.setCurrencyPluralInfo(info);
+ df.setCurrency(u"USD");
+ df.setMaximumFractionDigits(0);
+
+ UnicodeString result;
+ assertEquals("Plural one", u"1 qwerty", df.format(1, result, errorCode));
+ assertEquals("Plural few", u"3 dvorak", df.format(3, result.remove(), errorCode));
+ assertEquals("Plural other", u"99 америчких долара", df.format(99, result.remove(), errorCode));
+
+ info.setPluralRules(u"few: n is 1; one: n in 2..4", errorCode);
+ df.setCurrencyPluralInfo(info);
+ assertEquals("Plural one", u"1 dvorak", df.format(1, result.remove(), errorCode));
+ assertEquals("Plural few", u"3 qwerty", df.format(3, result.remove(), errorCode));
+ assertEquals("Plural other", u"99 америчких долара", df.format(99, result.remove(), errorCode));
+}
+
+void NumberFormatTest::Test20073_StrictPercentParseErrorIndex() {
+ IcuTestErrorCode status(*this, "Test20073_StrictPercentParseErrorIndex");
+ ParsePosition parsePosition(0);
+ DecimalFormat df(u"0%", {"en-us", status}, status);
+ if (U_FAILURE(status)) {
+ dataerrln("Unable to create DecimalFormat instance.");
+ return;
+ }
+ df.setLenient(FALSE);
+ Formattable result;
+ df.parse(u"%2%", result, parsePosition);
+ assertEquals("", 0, parsePosition.getIndex());
+ assertEquals("", 0, parsePosition.getErrorIndex());
+}
+
+void NumberFormatTest::Test13056_GroupingSize() {
+ UErrorCode status = U_ZERO_ERROR;
+ DecimalFormat df(u"#,##0", status);
+ if (!assertSuccess("", status)) return;
+ assertEquals("Primary grouping should return 3", 3, df.getGroupingSize());
+ assertEquals("Secondary grouping should return 0", 0, df.getSecondaryGroupingSize());
+ df.setSecondaryGroupingSize(3);
+ assertEquals("Primary grouping should still return 3", 3, df.getGroupingSize());
+ assertEquals("Secondary grouping should round-trip", 3, df.getSecondaryGroupingSize());
+ df.setGroupingSize(4);
+ assertEquals("Primary grouping should return 4", 4, df.getGroupingSize());
+ assertEquals("Secondary should remember explicit setting and return 3", 3, df.getSecondaryGroupingSize());
+}
+
+
+void NumberFormatTest::Test11025_CurrencyPadding() {
+ UErrorCode status = U_ZERO_ERROR;
+ UnicodeString pattern(u"¤¤ **####0.00");
+ DecimalFormatSymbols sym(Locale::getFrance(), status);
+ if (!assertSuccess("", status)) return;
+ DecimalFormat fmt(pattern, sym, status);
+ if (!assertSuccess("", status)) return;
+ UnicodeString result;
+ fmt.format(433.0, result);
+ assertEquals("Number should be padded to 11 characters", "EUR *433,00", result);
+}
+
+void NumberFormatTest::Test11648_ExpDecFormatMalPattern() {
+ UErrorCode status = U_ZERO_ERROR;
+
+ DecimalFormat fmt("0.00", {"en", status}, status);
+ if (!assertSuccess("", status, true, __FILE__, __LINE__)) { return; }
+ fmt.setScientificNotation(TRUE);
+ UnicodeString pattern;
+
+ assertEquals("A valid scientific notation pattern should be produced",
+ "0.00E0",
+ fmt.toPattern(pattern));
+
+ DecimalFormat fmt2(pattern, status);
+ assertSuccess("", status);
+}
+
+void NumberFormatTest::Test11649_DecFmtCurrencies() {
+ IcuTestErrorCode status(*this, "Test11649_DecFmtCurrencies");
+ UnicodeString pattern("\\u00a4\\u00a4\\u00a4 0.00");
+ pattern = pattern.unescape();
+ DecimalFormat fmt(pattern, status);
+ if (!assertSuccess("", status, true, __FILE__, __LINE__)) { return; }
+ static const UChar USD[] = u"USD";
+ fmt.setCurrency(USD);
+ UnicodeString appendTo;
+
+ assertEquals("", "US dollars 12.34", fmt.format(12.34, appendTo));
+ UnicodeString topattern;
+
+ assertEquals("", pattern, fmt.toPattern(topattern));
+ DecimalFormat fmt2(topattern, status);
+ fmt2.setCurrency(USD);
+
+ appendTo.remove();
+ assertEquals("", "US dollars 12.34", fmt2.format(12.34, appendTo));
+}
+
+void NumberFormatTest::Test13148_ParseGroupingSeparators() {
+ IcuTestErrorCode status(*this, "Test13148");
+ LocalPointer<DecimalFormat> fmt(
+ (DecimalFormat*)NumberFormat::createInstance("en-ZA", status), status);
+ if (!assertSuccess("", status, true, __FILE__, __LINE__)) { return; }
+
+ DecimalFormatSymbols symbols = *fmt->getDecimalFormatSymbols();
+
+ symbols.setSymbol(DecimalFormatSymbols::kDecimalSeparatorSymbol, u'.');
+ symbols.setSymbol(DecimalFormatSymbols::kGroupingSeparatorSymbol, u',');
+ fmt->setDecimalFormatSymbols(symbols);
+ Formattable number;
+ fmt->parse(u"300,000", number, status);
+ assertEquals("Should parse as 300000", 300000LL, number.getInt64(status));
+}
+
+void NumberFormatTest::Test12753_PatternDecimalPoint() {
+ UErrorCode status = U_ZERO_ERROR;
+ DecimalFormatSymbols symbols(Locale::getUS(), status);
+ symbols.setSymbol(DecimalFormatSymbols::kDecimalSeparatorSymbol, u"*", false);
+ DecimalFormat df(u"0.00", symbols, status);
+ if (!assertSuccess("", status)) return;
+ df.setDecimalPatternMatchRequired(true);
+ Formattable result;
+ df.parse(u"123",result, status);
+ assertEquals("Parsing integer succeeded even though setDecimalPatternMatchRequired was set",
+ U_INVALID_FORMAT_ERROR, status);
+ }
+
+ void NumberFormatTest::Test11647_PatternCurrencySymbols() {
+ UErrorCode status = U_ZERO_ERROR;
+ DecimalFormat df(status);
+ df.applyPattern(u"¤¤¤¤#", status);
+ if (!assertSuccess("", status)) return;
+ UnicodeString actual;
+ df.format(123, actual);
+ assertEquals("Should replace 4 currency signs with U+FFFD", u"\uFFFD123", actual);
+}
+
+void NumberFormatTest::Test11913_BigDecimal() {
+ UErrorCode status = U_ZERO_ERROR;
+ LocalPointer<NumberFormat> df(NumberFormat::createInstance(Locale::getEnglish(), status), status);
+ if (!assertSuccess("", status)) return;
+ UnicodeString result;
+ df->format(StringPiece("1.23456789E400"), result, nullptr, status);
+ assertSuccess("", status);
+ assertEquals("Should format more than 309 digits", u"12,345,678", UnicodeString(result, 0, 10));
+ assertEquals("Should format more than 309 digits", 534, result.length());
+}
+
+void NumberFormatTest::Test11020_RoundingInScientificNotation() {
+ UErrorCode status = U_ZERO_ERROR;
+ DecimalFormatSymbols sym(Locale::getFrance(), status);
+ DecimalFormat fmt(u"0.05E0", sym, status);
+ if (!assertSuccess("", status, true, __FILE__, __LINE__)) { return; }
+ assertSuccess("", status);
+ UnicodeString result;
+ fmt.format(12301.2, result);
+ assertEquals("Rounding increment should be applied after magnitude scaling", u"1,25E4", result);
+}
+
+void NumberFormatTest::Test11640_TripleCurrencySymbol() {
+ IcuTestErrorCode status(*this, "Test11640_TripleCurrencySymbol");
+ UnicodeString actual;
+ DecimalFormat dFormat(u"¤¤¤ 0", status);
+ if (U_FAILURE(status)) {
+ dataerrln("Failure creating DecimalFormat %s", u_errorName(status));
+ return;
+ }
+ dFormat.setCurrency(u"USD");
+ UnicodeString result;
+ dFormat.getPositivePrefix(result);
+ assertEquals("Triple-currency should give long name on getPositivePrefix",
+ "US dollars ", result);
+}
+
+
+void NumberFormatTest::Test13763_FieldPositionIteratorOffset() {
+ IcuTestErrorCode status(*this, "Test13763_FieldPositionIteratorOffset");
+ FieldPositionIterator fpi;
+ UnicodeString result(u"foo\U0001F4FBbar"); // 8 code units
+ LocalPointer<NumberFormat> nf(NumberFormat::createInstance("en", status), status);
+ if (!assertSuccess("", status, true, __FILE__, __LINE__)) { return; }
+ nf->format(5142.3, result, &fpi, status);
+
+ int32_t expected[] = {
+ UNUM_GROUPING_SEPARATOR_FIELD, 9, 10,
+ UNUM_INTEGER_FIELD, 8, 13,
+ UNUM_DECIMAL_SEPARATOR_FIELD, 13, 14,
+ UNUM_FRACTION_FIELD, 14, 15,
+ };
+ int32_t tupleCount = UPRV_LENGTHOF(expected)/3;
+ expectPositions(fpi, expected, tupleCount, result);
+}
+
+void NumberFormatTest::Test13777_ParseLongNameNonCurrencyMode() {
+ IcuTestErrorCode status(*this, "Test13777_ParseLongNameNonCurrencyMode");
+
+ LocalPointer<NumberFormat> df(
+ NumberFormat::createInstance("en-us", UNumberFormatStyle::UNUM_CURRENCY_PLURAL, status), status);
+ if (!assertSuccess("", status, true, __FILE__, __LINE__)) { return; }
+ expect2(*df, 1.5, u"1.50 US dollars");
+}
+
+void NumberFormatTest::Test13804_EmptyStringsWhenParsing() {
+ IcuTestErrorCode status(*this, "Test13804_EmptyStringsWhenParsing");
+
+ DecimalFormatSymbols dfs("en", status);
+ if (status.errIfFailureAndReset()) {
+ return;
+ }
+ dfs.setSymbol(DecimalFormatSymbols::kCurrencySymbol, u"", FALSE);
+ dfs.setSymbol(DecimalFormatSymbols::kDecimalSeparatorSymbol, u"", FALSE);
+ dfs.setSymbol(DecimalFormatSymbols::kZeroDigitSymbol, u"", FALSE);
+ dfs.setSymbol(DecimalFormatSymbols::kOneDigitSymbol, u"", FALSE);
+ dfs.setSymbol(DecimalFormatSymbols::kTwoDigitSymbol, u"", FALSE);
+ dfs.setSymbol(DecimalFormatSymbols::kThreeDigitSymbol, u"", FALSE);
+ dfs.setSymbol(DecimalFormatSymbols::kFourDigitSymbol, u"", FALSE);
+ dfs.setSymbol(DecimalFormatSymbols::kFiveDigitSymbol, u"", FALSE);
+ dfs.setSymbol(DecimalFormatSymbols::kSixDigitSymbol, u"", FALSE);
+ dfs.setSymbol(DecimalFormatSymbols::kSevenDigitSymbol, u"", FALSE);
+ dfs.setSymbol(DecimalFormatSymbols::kEightDigitSymbol, u"", FALSE);
+ dfs.setSymbol(DecimalFormatSymbols::kNineDigitSymbol, u"", FALSE);
+ dfs.setSymbol(DecimalFormatSymbols::kExponentMultiplicationSymbol, u"", FALSE);
+ dfs.setSymbol(DecimalFormatSymbols::kExponentialSymbol, u"", FALSE);
+ dfs.setSymbol(DecimalFormatSymbols::kGroupingSeparatorSymbol, u"", FALSE);
+ dfs.setSymbol(DecimalFormatSymbols::kInfinitySymbol, u"", FALSE);
+ dfs.setSymbol(DecimalFormatSymbols::kIntlCurrencySymbol, u"", FALSE);
+ dfs.setSymbol(DecimalFormatSymbols::kMinusSignSymbol, u"", FALSE);
+ dfs.setSymbol(DecimalFormatSymbols::kMonetarySeparatorSymbol, u"", FALSE);
+ dfs.setSymbol(DecimalFormatSymbols::kMonetaryGroupingSeparatorSymbol, u"", FALSE);
+ dfs.setSymbol(DecimalFormatSymbols::kNaNSymbol, u"", FALSE);
+ dfs.setPatternForCurrencySpacing(UNUM_CURRENCY_INSERT, FALSE, u"");
+ dfs.setPatternForCurrencySpacing(UNUM_CURRENCY_INSERT, TRUE, u"");
+ dfs.setSymbol(DecimalFormatSymbols::kPercentSymbol, u"", FALSE);
+ dfs.setSymbol(DecimalFormatSymbols::kPerMillSymbol, u"", FALSE);
+ dfs.setSymbol(DecimalFormatSymbols::kPlusSignSymbol, u"", FALSE);
+
+ DecimalFormat df("0", dfs, status);
+ if (status.errIfFailureAndReset()) {
+ return;
+ }
+ df.setGroupingUsed(TRUE);
+ df.setScientificNotation(TRUE);
+ df.setLenient(TRUE); // enable all matchers
+ {
+ UnicodeString result;
+ df.format(0, result); // should not crash or hit infinite loop
+ }
+ const char16_t* samples[] = {
+ u"",
+ u"123",
+ u"$123",
+ u"-",
+ u"+",
+ u"44%",
+ u"1E+2.3"
+ };
+ for (auto& sample : samples) {
+ logln(UnicodeString(u"Attempting parse on: ") + sample);
+ status.setScope(sample);
+ // We don't care about the results, only that we don't crash and don't loop.
+ Formattable result;
+ ParsePosition ppos(0);
+ df.parse(sample, result, ppos);
+ ppos = ParsePosition(0);
+ LocalPointer<CurrencyAmount> curramt(df.parseCurrency(sample, ppos));
+ status.errIfFailureAndReset();
+ }
+
+ // Test with a nonempty exponent separator symbol to cover more code
+ dfs.setSymbol(DecimalFormatSymbols::kExponentialSymbol, u"E", FALSE);
+ df.setDecimalFormatSymbols(dfs);
+ {
+ Formattable result;
+ ParsePosition ppos(0);
+ df.parse(u"1E+2.3", result, ppos);
+ }
+}
+
+void NumberFormatTest::Test20037_ScientificIntegerOverflow() {
+ IcuTestErrorCode status(*this, "Test20037_ScientificIntegerOverflow");
+
+ LocalPointer<NumberFormat> nf(NumberFormat::createInstance(status));
+ if (U_FAILURE(status)) {
+ dataerrln("Unable to create NumberFormat instance.");
+ return;
+ }
+ Formattable result;
+
+ // Test overflow of exponent
+ nf->parse(u"1E-2147483648", result, status);
+ StringPiece sp = result.getDecimalNumber(status);
+ assertEquals(u"Should snap to zero",
+ u"0",
+ {sp.data(), sp.length(), US_INV});
+
+ // Test edge case overflow of exponent
+ result = Formattable();
+ nf->parse(u"1E-2147483647E-1", result, status);
+ sp = result.getDecimalNumber(status);
+ assertEquals(u"Should not overflow and should parse only the first exponent",
+ u"1E-2147483647",
+ {sp.data(), sp.length(), US_INV});
+}
+
+void NumberFormatTest::Test13840_ParseLongStringCrash() {
+ IcuTestErrorCode status(*this, "Test13840_ParseLongStringCrash");
+
+ LocalPointer<NumberFormat> nf(NumberFormat::createInstance("en", status), status);
+ if (status.errIfFailureAndReset()) { return; }
+
+ Formattable result;
+ static const char16_t* bigString =
+ u"111111111111111111111111111111111111111111111111111111111111111111111"
+ u"111111111111111111111111111111111111111111111111111111111111111111111"
+ u"111111111111111111111111111111111111111111111111111111111111111111111"
+ u"111111111111111111111111111111111111111111111111111111111111111111111"
+ u"111111111111111111111111111111111111111111111111111111111111111111111"
+ u"111111111111111111111111111111111111111111111111111111111111111111111";
+ nf->parse(bigString, result, status);
+
+ // Normalize the input string:
+ CharString expectedChars;
+ expectedChars.appendInvariantChars(bigString, status);
+ DecimalQuantity expectedDQ;
+ expectedDQ.setToDecNumber(expectedChars.toStringPiece(), status);
+ UnicodeString expectedUString = expectedDQ.toScientificString();
+
+ // Get the output string:
+ StringPiece actualChars = result.getDecimalNumber(status);
+ UnicodeString actualUString = UnicodeString(actualChars.data(), actualChars.length(), US_INV);
+
+ assertEquals("Should round-trip without crashing", expectedUString, actualUString);
+}
+
+void NumberFormatTest::Test13850_EmptyStringCurrency() {
+ IcuTestErrorCode status(*this, "Test13840_EmptyStringCurrency");
+
+ struct TestCase {
+ const char16_t* currencyArg;
+ UErrorCode expectedError;
+ } cases[] = {
+ {u"", U_ZERO_ERROR},
+ {u"U", U_ILLEGAL_ARGUMENT_ERROR},
+ {u"Us", U_ILLEGAL_ARGUMENT_ERROR},
+ {nullptr, U_ZERO_ERROR},
+ {u"U$D", U_INVARIANT_CONVERSION_ERROR},
+ {u"Xxx", U_ZERO_ERROR}
+ };
+ for (const auto& cas : cases) {
+ UnicodeString message(u"with currency arg: ");
+ if (cas.currencyArg == nullptr) {
+ message += u"nullptr";
+ } else {
+ message += UnicodeString(cas.currencyArg);
+ }
+ status.setScope(message);
+ LocalPointer<NumberFormat> nf(NumberFormat::createCurrencyInstance("en-US", status), status);
+ if (status.errIfFailureAndReset()) { return; }
+ UnicodeString actual;
+ nf->format(1, actual, status);
+ status.errIfFailureAndReset();
+ assertEquals(u"Should format with US currency " + message, u"$1.00", actual);
+ nf->setCurrency(cas.currencyArg, status);
+ if (status.expectErrorAndReset(cas.expectedError)) {
+ // If an error occurred, do not check formatting.
+ continue;
+ }
+ nf->format(1, actual.remove(), status);
+ assertEquals(u"Should unset the currency " + message, u"\u00A41.00", actual);
+ status.errIfFailureAndReset();
+ }
+}
+
#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/numfmtst.h b/Build/source/libs/icu/icu-src/source/test/intltest/numfmtst.h
index c212bea393a..9d255383243 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/numfmtst.h
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/numfmtst.h
@@ -16,6 +16,7 @@
#include "unicode/numfmt.h"
#include "unicode/decimfmt.h"
#include "caltztst.h"
+#include "datadrivennumberformattestsuite.h"
/**
* Expected field positions from field position iterator. Tests should
@@ -30,6 +31,35 @@ struct NumberFormatTest_Attributes {
int32_t epos;
};
+
+/**
+ * Header for the data-driven test, powered by numberformattestspecification.txt
+ */
+class NumberFormatDataDrivenTest : public DataDrivenNumberFormatTestSuite {
+ public:
+ void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par );
+ void TestNumberFormatTestTuple();
+ void TestDataDrivenICU4C();
+
+ protected:
+ UBool isFormatPass(
+ const NumberFormatTestTuple &tuple,
+ UnicodeString &appendErrorMessage,
+ UErrorCode &status);
+ UBool isToPatternPass(
+ const NumberFormatTestTuple &tuple,
+ UnicodeString &appendErrorMessage,
+ UErrorCode &status);
+ UBool isParsePass(
+ const NumberFormatTestTuple &tuple,
+ UnicodeString &appendErrorMessage,
+ UErrorCode &status);
+ UBool isParseCurrencyPass(
+ const NumberFormatTestTuple &tuple,
+ UnicodeString &appendErrorMessage,
+ UErrorCode &status);
+};
+
/**
* Performs various in-depth test on NumberFormat
**/
@@ -45,6 +75,7 @@ class NumberFormatTest: public CalendarTimeZoneTest {
void TestAPI(void);
void TestCoverage(void);
+ void TestLocalizedPatternSymbolCoverage();
/**
* Test the handling of quotes
@@ -155,6 +186,7 @@ class NumberFormatTest: public CalendarTimeZoneTest {
void TestSpaceParsing();
void TestMultiCurrencySign();
void TestCurrencyFormatForMixParsing();
+ void TestMismatchedCurrencyFormatFail();
void TestDecimalFormatCurrencyParse();
void TestCurrencyIsoPluralFormat();
void TestCurrencyParsing();
@@ -198,8 +230,6 @@ class NumberFormatTest: public CalendarTimeZoneTest {
void TestEquality();
void TestCurrencyUsage();
- void TestNumberFormatTestTuple();
- void TestDataDriven();
void TestDoubleLimit11439();
void TestFastPathConsistent11524();
@@ -210,6 +240,9 @@ class NumberFormatTest: public CalendarTimeZoneTest {
void TestFractionalDigitsForCurrency();
void TestFormatCurrencyPlural();
void Test11868();
+ void Test11739_ParseLongCurrency();
+ void Test13035_MultiCodePointPaddingInPattern();
+ void Test13737_ParseScientificStrict();
void Test10727_RoundingZero();
void Test11376_getAndSetPositivePrefix();
void Test11475_signRecognition();
@@ -218,9 +251,38 @@ class NumberFormatTest: public CalendarTimeZoneTest {
void Test13327_numberingSystemBufferOverflow();
void Test13391_chakmaParsing();
- void checkExceptionIssue11735();
+ void Test11735_ExceptionIssue();
void Test11035_FormatCurrencyAmount();
void Test11318_DoubleConversion();
+ void TestParsePercentRegression();
+ void TestMultiplierWithScale();
+ void TestFastFormatInt32();
+ void Test11646_Equality();
+ void TestParseNaN();
+ void Test11897_LocalizedPatternSeparator();
+ void Test13055_PercentageRounding();
+ void Test11839();
+ void Test10354();
+ void Test11645_ApplyPatternEquality();
+ void Test12567();
+ void Test11626_CustomizeCurrencyPluralInfo();
+ void Test20073_StrictPercentParseErrorIndex();
+ void Test13056_GroupingSize();
+ void Test11025_CurrencyPadding();
+ void Test11648_ExpDecFormatMalPattern();
+ void Test11649_DecFmtCurrencies();
+ void Test13148_ParseGroupingSeparators();
+ void Test12753_PatternDecimalPoint();
+ void Test11647_PatternCurrencySymbols();
+ void Test11913_BigDecimal();
+ void Test11020_RoundingInScientificNotation();
+ void Test11640_TripleCurrencySymbol();
+ void Test13763_FieldPositionIteratorOffset();
+ void Test13777_ParseLongNameNonCurrencyMode();
+ void Test13804_EmptyStringsWhenParsing();
+ void Test20037_ScientificIntegerOverflow();
+ void Test13840_ParseLongStringCrash();
+ void Test13850_EmptyStringCurrency();
private:
UBool testFormattableAsUFormattable(const char *file, int line, Formattable &f);
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/numrgts.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/numrgts.cpp
index e4852bd4cdc..2cfc4eecd60 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/numrgts.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/numrgts.cpp
@@ -11,6 +11,7 @@
#include "numrgts.h"
+#include <cmath> // std::signbit
#include <float.h> // DBL_MIN, DBL_MAX
#include <stdio.h>
@@ -22,6 +23,7 @@
#include "unicode/datefmt.h"
#include "unicode/ucurr.h"
#include "cmemory.h"
+#include "cstr.h"
#include "putilimp.h"
#include "uassert.h"
@@ -547,8 +549,8 @@ void NumberFormatRegressionTest::Test4086575(void)
// nbsp = \u00a0
//nf->applyLocalizedPattern("#\u00a0###,00;(#\u00a0###,00)");
UChar patChars[] = {
- 0x23, 0x00a0, 0x23, 0x23, 0x23, 0x2c, 0x30, 0x30, 0x3b,
- 0x28, 0x23, 0x00a0, 0x23, 0x23, 0x23, 0x2c, 0x30, 0x30, 0x29
+ 0x23, 0x202f, 0x23, 0x23, 0x23, 0x2c, 0x30, 0x30, 0x3b,
+ 0x28, 0x23, 0x202f, 0x23, 0x23, 0x23, 0x2c, 0x30, 0x30, 0x29
};
UnicodeString pat(patChars, 19, 19);
nf->applyLocalizedPattern(pat, status);
@@ -559,7 +561,7 @@ void NumberFormatRegressionTest::Test4086575(void)
buffer = nf->format((int32_t)1234, buffer, pos);
//if (buffer != UnicodeString("1\u00a0234,00"))
UChar c[] = {
- 0x31, 0x00a0, 0x32, 0x33, 0x34, 0x2c, 0x30, 0x30
+ 0x31, 0x202f, 0x32, 0x33, 0x34, 0x2c, 0x30, 0x30
};
UnicodeString cc(c, 8, 8);
if (buffer != cc)
@@ -568,7 +570,7 @@ void NumberFormatRegressionTest::Test4086575(void)
buffer.remove();
buffer = nf->format((int32_t)-1234, buffer, pos);
UChar c1[] = {
- 0x28, 0x31, 0x00a0, 0x32, 0x33, 0x34, 0x2c, 0x30, 0x30, 0x29
+ 0x28, 0x31, 0x202f, 0x32, 0x33, 0x34, 0x2c, 0x30, 0x30, 0x29
};
UnicodeString cc1(c1, 10, 10);
if (buffer != cc1)
@@ -806,29 +808,29 @@ void NumberFormatRegressionTest::Test4092480 (void)
dfFoo->applyPattern("0000;-000", status);
failure(status, "dfFoo->applyPattern");
UnicodeString temp;
- if (dfFoo->toPattern(temp) != UnicodeString("#0000"))
- errln("dfFoo.toPattern : " + dfFoo->toPattern(temp));
+ if (dfFoo->toPattern(temp) != UnicodeString("0000"))
+ errln("ERROR: dfFoo.toPattern : " + dfFoo->toPattern(temp));
FieldPosition pos(FieldPosition::DONT_CARE);
logln(dfFoo->format((int32_t)42, temp, pos));
logln(dfFoo->format((int32_t)-42, temp, pos));
dfFoo->applyPattern("000;-000", status);
failure(status, "dfFoo->applyPattern");
- if (dfFoo->toPattern(temp) != UnicodeString("#000"))
- errln("dfFoo.toPattern : " + dfFoo->toPattern(temp));
+ if (dfFoo->toPattern(temp) != UnicodeString("000"))
+ errln("ERROR: dfFoo.toPattern : " + dfFoo->toPattern(temp));
logln(dfFoo->format((int32_t)42,temp, pos));
logln(dfFoo->format((int32_t)-42, temp, pos));
dfFoo->applyPattern("000;-0000", status);
failure(status, "dfFoo->applyPattern");
- if (dfFoo->toPattern(temp) != UnicodeString("#000"))
- errln("dfFoo.toPattern : " + dfFoo->toPattern(temp));
+ if (dfFoo->toPattern(temp) != UnicodeString("000"))
+ errln("ERROR: dfFoo.toPattern : " + dfFoo->toPattern(temp));
logln(dfFoo->format((int32_t)42, temp, pos));
logln(dfFoo->format((int32_t)-42, temp, pos));
dfFoo->applyPattern("0000;-000", status);
failure(status, "dfFoo->applyPattern");
- if (dfFoo->toPattern(temp) != UnicodeString("#0000"))
- errln("dfFoo.toPattern : " + dfFoo->toPattern(temp));
+ if (dfFoo->toPattern(temp) != UnicodeString("0000"))
+ errln("ERROR: dfFoo.toPattern : " + dfFoo->toPattern(temp));
logln(dfFoo->format((int32_t)42, temp, pos));
logln(dfFoo->format((int32_t)-42, temp, pos));
/*} catch (Exception foo) {
@@ -897,18 +899,18 @@ void NumberFormatRegressionTest::Test4070798 (void)
UnicodeString tempString;
/* User error :
- String expectedDefault = "-5\u00a0789,987";
- String expectedCurrency = "5\u00a0789,98\u00a0F";
- String expectedPercent = "-578\u00a0998%";
+ String expectedDefault = "-5\u202f789,987";
+ String expectedCurrency = "5\u202f789,98\u00a0F";
+ String expectedPercent = "-578\u202f998%";
*/
UChar chars1 [] = {
- 0x2d, 0x35, 0x00a0, 0x37, 0x38, 0x39, 0x2c, 0x39, 0x38, 0x38
+ 0x2d, 0x35, 0x202f, 0x37, 0x38, 0x39, 0x2c, 0x39, 0x38, 0x38
};
UChar chars2 [] = {
- 0x35, 0x00a0, 0x37, 0x38, 0x39, 0x2c, 0x39, 0x39, 0x00a0, 0x46
+ 0x35, 0x202f, 0x37, 0x38, 0x39, 0x2c, 0x39, 0x39, 0x00a0, 0x46
};
UChar chars3 [] = {
- 0x2d, 0x35, 0x37, 0x38, 0x00a0, 0x39, 0x39, 0x39, 0x00a0, 0x25
+ 0x2d, 0x35, 0x37, 0x38, 0x202f, 0x39, 0x39, 0x39, 0x00a0, 0x25
};
UnicodeString expectedDefault(chars1, 10, 10);
UnicodeString expectedCurrency(chars2, 10, 10);
@@ -1177,30 +1179,28 @@ void NumberFormatRegressionTest::Test4071859 (void)
void NumberFormatRegressionTest::Test4093610(void)
{
UErrorCode status = U_ZERO_ERROR;
- DecimalFormat *df = new DecimalFormat("#0.#", status);
+ DecimalFormat df("#0.#", status);
if (!failure(status, "new DecimalFormat")) {
UnicodeString s("12.4");
- roundingTest(df, 12.35, s);
- roundingTest(df, 12.45, s);
+ roundingTest(&df, 12.35, s);
+ roundingTest(&df, 12.45, s);
s = "12.5";
- roundingTest(df, 12.452,s);
+ roundingTest(&df, 12.452,s);
s = "12.6";
- roundingTest(df, 12.55, s);
- roundingTest(df, 12.65, s);
+ roundingTest(&df, 12.55, s);
+ roundingTest(&df, 12.65, s);
s = "12.7";
- roundingTest(df, 12.652,s);
+ roundingTest(&df, 12.652,s);
s = "12.8";
- roundingTest(df, 12.75, s);
- roundingTest(df, 12.752,s);
- roundingTest(df, 12.85, s);
+ roundingTest(&df, 12.75, s);
+ roundingTest(&df, 12.752,s);
+ roundingTest(&df, 12.85, s);
s = "12.9";
- roundingTest(df, 12.852,s);
+ roundingTest(&df, 12.852,s);
s = "13";
- roundingTest(df, 12.95, s);
- roundingTest(df, 12.952,s);
+ roundingTest(&df, 12.95, s);
+ roundingTest(&df, 12.952,s);
}
-
- delete df;
}
void NumberFormatRegressionTest::roundingTest(DecimalFormat *df, double x, UnicodeString& expected)
@@ -1209,8 +1209,9 @@ void NumberFormatRegressionTest::roundingTest(DecimalFormat *df, double x, Unico
FieldPosition pos(FieldPosition::DONT_CARE);
out = df->format(x, out, pos);
logln(UnicodeString("") + x + " formats with 1 fractional digits to " + out);
- if (out != expected)
- errln("FAIL: Expected " + expected);
+ if (out != expected) {
+ dataerrln("FAIL: Expected '%s'; got '%s'", CStr(expected)(), CStr(out)());
+ }
}
/* @bug 4098741
* Tests the setMaximumFractionDigits limit.
@@ -1691,6 +1692,12 @@ void NumberFormatRegressionTest::Test4122840(void)
// Create a DecimalFormat using the pattern we got and format a number
DecimalFormatSymbols *symbols = new DecimalFormatSymbols(locales[i], status);
failure(status, "new DecimalFormatSymbols");
+
+ // Disable currency spacing for the purposes of this test.
+ // To do this, set the spacing insert to the empty string both before and after the symbol.
+ symbols->setPatternForCurrencySpacing(UNUM_CURRENCY_INSERT, FALSE, u"");
+ symbols->setPatternForCurrencySpacing(UNUM_CURRENCY_INSERT, TRUE, u"");
+
DecimalFormat *fmt1 = new DecimalFormat(pattern, *symbols, status);
failure(status, "new DecimalFormat");
@@ -1886,9 +1893,11 @@ void NumberFormatRegressionTest::Test4134300(void) {
void NumberFormatRegressionTest::Test4140009(void)
{
UErrorCode status = U_ZERO_ERROR;
- DecimalFormatSymbols *syms = new DecimalFormatSymbols(Locale::getEnglish(), status);
- failure(status, "new DecimalFormatSymbols");
- DecimalFormat *f = new DecimalFormat(UnicodeString(""), syms, status);
+ LocalPointer<DecimalFormatSymbols> syms(new DecimalFormatSymbols(Locale::getEnglish(), status), status);
+ if (failure(status, "new DecimalFormatSymbols")) {
+ return;
+ }
+ DecimalFormat *f = new DecimalFormat(UnicodeString(u""), syms.orphan(), status);
if (!failure(status, "new DecimalFormat")) {
UnicodeString s;
FieldPosition pos(FieldPosition::DONT_CARE);
@@ -2003,6 +2012,8 @@ void NumberFormatRegressionTest::Test4145457() {
* DecimalFormat.applyPattern() sets minimum integer digits incorrectly.
* CANNOT REPRODUCE
* This bug is a duplicate of 4139344, which is a duplicate of 4134300
+ *
+ * ICU 62: minInt is always at least one, and the getter should reflect that!
*/
void NumberFormatRegressionTest::Test4147295(void)
{
@@ -2013,7 +2024,7 @@ void NumberFormatRegressionTest::Test4147295(void)
sdf->applyPattern(pattern, status);
if (!failure(status, "sdf->applyPattern")) {
int minIntDig = sdf->getMinimumIntegerDigits();
- if (minIntDig != 0) {
+ if (minIntDig != 1) {
errln("Test failed");
errln(UnicodeString(" Minimum integer digits : ") + minIntDig);
UnicodeString temp;
@@ -2132,8 +2143,9 @@ NumberFormatRegressionTest::Test4162852(void)
{
UErrorCode status = U_ZERO_ERROR;
for(int32_t i=0; i < 2; ++i) {
- NumberFormat *f = (i == 0) ? NumberFormat::createInstance(status)
- : NumberFormat::createPercentInstance(status);
+ LocalPointer<NumberFormat> f(
+ ((i == 0) ? NumberFormat::createInstance(status) : NumberFormat::createPercentInstance(status)),
+ status);
if(U_FAILURE(status)) {
dataerrln("Couldn't create number format - %s", u_errorName(status));
return;
@@ -2144,20 +2156,19 @@ NumberFormatRegressionTest::Test4162852(void)
f->format(d, s);
Formattable n;
f->parse(s, n, status);
- if(U_FAILURE(status))
+ if(U_FAILURE(status)) {
errln("Couldn't parse!");
+ return;
+ }
double e = n.getDouble();
- logln(UnicodeString("") +
- d + " -> " +
- '"' + s + '"' + " -> " + e);
+ logln("%f -> \"%s\" -> %f", d, CStr(s)(), e);
#if (U_PLATFORM == U_PF_OS390 && !defined(IEEE_754)) || U_PLATFORM == U_PF_OS400
if (e != 0.0) {
#else
- if (e != 0.0 || 1.0/e > 0.0) {
+ if (e != 0.0 || (std::signbit(e) == false)) {
#endif
- logln("Failed to parse negative zero");
+ errln("Failed to parse negative zero");
}
- delete f;
}
}
@@ -2205,26 +2216,31 @@ void NumberFormatRegressionTest::Test4167494(void) {
* DecimalFormat.parse() fails when ParseIntegerOnly set to true
*/
void NumberFormatRegressionTest::Test4170798(void) {
- UErrorCode status = U_ZERO_ERROR;
- NumberFormat *nf = NumberFormat::createInstance(Locale::getUS(), status);
- if (failure(status, "NumberFormat::createInstance", TRUE)){
- delete nf;
- return;
- };
- DecimalFormat *df = dynamic_cast<DecimalFormat *>(nf);
- if(df == NULL) {
- errln("DecimalFormat needed to continue");
+ IcuTestErrorCode status(*this, "Test4170798");
+ LocalPointer<DecimalFormat> df(dynamic_cast<DecimalFormat*>(
+ NumberFormat::createInstance(Locale::getUS(), status)), status);
+ if (!assertSuccess("", status, true, __FILE__, __LINE__)) {
return;
}
+ {
+ Formattable n;
+ ParsePosition pos(0);
+ df->parse("-0.0", n, pos);
+ if (n.getType() != Formattable::kDouble
+ || n.getDouble() != -0.0) {
+ errln(UnicodeString("FAIL: default parse(\"-0.0\") returns ") + toString(n));
+ }
+ }
df->setParseIntegerOnly(TRUE);
- Formattable n;
- ParsePosition pos(0);
- df->parse("-0.0", n, pos);
- if (n.getType() != Formattable::kLong
- || n.getLong() != 0) {
- errln(UnicodeString("FAIL: parse(\"-0.0\") returns ") + toString(n));
+ {
+ Formattable n;
+ ParsePosition pos(0);
+ df->parse("-0.0", n, pos);
+ if (n.getType() != Formattable::kLong
+ || n.getLong() != 0) {
+ errln(UnicodeString("FAIL: integer parse(\"-0.0\") returns ") + toString(n));
+ }
}
- delete nf;
}
/**
@@ -2233,15 +2249,15 @@ void NumberFormatRegressionTest::Test4170798(void) {
*/
void NumberFormatRegressionTest::Test4176114(void) {
const char* DATA[] = {
- "00", "#00",
- "000", "#000", // No grouping
- "#000", "#000", // No grouping
+ "00", "00",
+ "000", "000", // No grouping
+ "#000", "000", // No grouping
"#,##0", "#,##0",
"#,000", "#,000",
- "0,000", "#0,000",
- "00,000", "#00,000",
- "000,000", "#,000,000",
- "0,000,000,000,000.0000", "#0,000,000,000,000.0000", // Reported
+ "0,000", "0,000",
+ "00,000", "00,000",
+ "000,000", "000,000",
+ "0,000,000,000,000.0000", "0,000,000,000,000.0000", // Reported
};
int DATA_length = UPRV_LENGTHOF(DATA);
UErrorCode status = U_ZERO_ERROR;
@@ -2372,9 +2388,9 @@ void NumberFormatRegressionTest::Test4212072(void) {
sym.setSymbol(DecimalFormatSymbols::kCurrencySymbol, "usd");
fmt.setDecimalFormatSymbols(sym);
s.remove();
- if (fmt.format(12.5, s, pos) != UnicodeString("usd12.50")) {
+ if (fmt.format(12.5, s, pos) != UnicodeString(u"usd\u00A012.50")) {
errln(UnicodeString("FAIL: 12.5 x (currency=usd) -> ") + s +
- ", exp usd12.50");
+ u", exp usd\u00A012.50");
}
s.remove();
if (fmt.getPositivePrefix(s) != UnicodeString("usd")) {
@@ -2388,9 +2404,9 @@ void NumberFormatRegressionTest::Test4212072(void) {
sym.setSymbol(DecimalFormatSymbols::kIntlCurrencySymbol, "DOL");
fmt.setDecimalFormatSymbols(sym);
s.remove();
- if (fmt.format(12.5, s, pos) != UnicodeString("DOL12.50")) {
+ if (fmt.format(12.5, s, pos) != UnicodeString(u"DOL\u00A012.50")) {
errln(UnicodeString("FAIL: 12.5 x (intlcurrency=DOL) -> ") + s +
- ", exp DOL12.50");
+ u", exp DOL\u00A012.50");
}
s.remove();
if (fmt.getPositivePrefix(s) != UnicodeString("DOL")) {
@@ -2734,7 +2750,7 @@ void NumberFormatRegressionTest::TestJ691(void) {
#define TEST_ASSERT_EQUALS(x,y) \
{ \
char _msg[1000]; \
- int32_t len = sprintf (_msg,"File %s, line %d: Assertion Failed: " #x "==" #y "\n", __FILE__, __LINE__); \
+ int32_t len = sprintf (_msg,"File %s, line %d: " #x "==" #y, __FILE__, __LINE__); \
(void)len; \
U_ASSERT(len < (int32_t) sizeof(_msg)); \
assertEquals((const char*) _msg, x,y); \
@@ -2759,10 +2775,10 @@ void NumberFormatRegressionTest::Test8199(void) {
Formattable val;
nf->parse(numStr, val, status);
TEST_CHECK_STATUS(status);
- TEST_ASSERT(Formattable::kDouble == val.getType());
- TEST_ASSERT(1000000000 == val.getInt64(status));
+ TEST_ASSERT_EQUALS(Formattable::kDouble, val.getType());
+ TEST_ASSERT_EQUALS(1000000000LL, val.getInt64(status));
TEST_CHECK_STATUS(status);
- TEST_ASSERT(1000000000.6 == val.getDouble(status));
+ TEST_ASSERT_EQUALS(1000000000.6, val.getDouble(status));
TEST_CHECK_STATUS(status);
numStr = "100000000000000001.1"; // approx 1E17, parses as a double rather
@@ -2770,25 +2786,25 @@ void NumberFormatRegressionTest::Test8199(void) {
// even though int64 is more precise.
nf->parse(numStr, val, status);
TEST_CHECK_STATUS(status);
- TEST_ASSERT(Formattable::kDouble == val.getType());
- TEST_ASSERT(100000000000000001LL == val.getInt64(status));
+ TEST_ASSERT_EQUALS(Formattable::kDouble, val.getType());
+ TEST_ASSERT_EQUALS(100000000000000001LL, val.getInt64(status));
TEST_CHECK_STATUS(status);
- TEST_ASSERT(100000000000000000.0 == val.getDouble(status));
+ TEST_ASSERT_EQUALS(100000000000000000.0, val.getDouble(status));
TEST_CHECK_STATUS(status);
numStr = "1E17"; // Parses with the internal decimal number having non-zero exponent
nf->parse(numStr, val, status);
TEST_CHECK_STATUS(status);
- TEST_ASSERT(Formattable::kInt64 == val.getType());
- TEST_ASSERT(100000000000000000LL == val.getInt64());
- TEST_ASSERT(1.0E17 == val.getDouble(status));
+ TEST_ASSERT_EQUALS(Formattable::kInt64, val.getType());
+ TEST_ASSERT_EQUALS(100000000000000000LL, val.getInt64());
+ TEST_ASSERT_EQUALS(1.0E17, val.getDouble(status));
TEST_CHECK_STATUS(status);
numStr = "9223372036854775807"; // largest int64_t
nf->parse(numStr, val, status);
TEST_CHECK_STATUS(status);
- TEST_ASSERT(Formattable::kInt64 == val.getType());
- TEST_ASSERT(9223372036854775807LL == val.getInt64());
+ TEST_ASSERT_EQUALS(Formattable::kInt64, val.getType());
+ TEST_ASSERT_EQUALS(9223372036854775807LL, val.getInt64());
// In the following check, note that a substantial range of integers will
// convert to the same double value. There are also platform variations
// in the rounding at compile time of double constants.
@@ -2799,31 +2815,31 @@ void NumberFormatRegressionTest::Test8199(void) {
numStr = "-9223372036854775808"; // smallest int64_t
nf->parse(numStr, val, status);
TEST_CHECK_STATUS(status);
- TEST_ASSERT(Formattable::kInt64 == val.getType());
- // TEST_ASSERT(-9223372036854775808LL == val.getInt64()); // Compiler chokes on constant.
- TEST_ASSERT((int64_t)0x8000000000000000LL == val.getInt64());
- TEST_ASSERT(-9223372036854775808.0 == val.getDouble(status));
+ TEST_ASSERT_EQUALS(Formattable::kInt64, val.getType());
+ // TEST_ASSERT_EQUALS(-9223372036854775808LL, val.getInt64()); // Compiler chokes on constant.
+ TEST_ASSERT_EQUALS((int64_t)0x8000000000000000LL, val.getInt64());
+ TEST_ASSERT_EQUALS(-9223372036854775808.0, val.getDouble(status));
TEST_CHECK_STATUS(status);
numStr = "9223372036854775808"; // largest int64_t + 1
nf->parse(numStr, val, status);
TEST_CHECK_STATUS(status);
- TEST_ASSERT(Formattable::kDouble == val.getType());
- TEST_ASSERT(9223372036854775807LL == val.getInt64(status));
- TEST_ASSERT(status == U_INVALID_FORMAT_ERROR);
+ TEST_ASSERT_EQUALS(Formattable::kDouble, val.getType());
+ TEST_ASSERT_EQUALS(9223372036854775807LL, val.getInt64(status));
+ TEST_ASSERT_EQUALS(status, U_INVALID_FORMAT_ERROR);
status = U_ZERO_ERROR;
- TEST_ASSERT(9223372036854775810.0 == val.getDouble(status));
+ TEST_ASSERT_EQUALS(9223372036854775810.0, val.getDouble(status));
TEST_CHECK_STATUS(status);
numStr = "-9223372036854775809"; // smallest int64_t - 1
nf->parse(numStr, val, status);
TEST_CHECK_STATUS(status);
- TEST_ASSERT(Formattable::kDouble == val.getType());
- // TEST_ASSERT(-9223372036854775808LL == val.getInt64(status)); // spurious compiler warnings
- TEST_ASSERT((int64_t)0x8000000000000000LL == val.getInt64(status));
- TEST_ASSERT(status == U_INVALID_FORMAT_ERROR);
+ TEST_ASSERT_EQUALS(Formattable::kDouble, val.getType());
+ // TEST_ASSERT_EQUALS(-9223372036854775808LL, val.getInt64(status)); // spurious compiler warnings
+ TEST_ASSERT_EQUALS((int64_t)0x8000000000000000LL, val.getInt64(status));
+ TEST_ASSERT_EQUALS(status, U_INVALID_FORMAT_ERROR);
status = U_ZERO_ERROR;
- TEST_ASSERT(-9223372036854775810.0 == val.getDouble(status));
+ TEST_ASSERT_EQUALS(-9223372036854775810.0, val.getDouble(status));
TEST_CHECK_STATUS(status);
// Test values near the limit of where doubles can represent all integers.
@@ -2837,25 +2853,25 @@ void NumberFormatRegressionTest::Test8199(void) {
nf->parse(numStr, val, status);
TEST_CHECK_STATUS(status);
// printf("getInt64() returns %lld\n", val.getInt64(status));
- TEST_ASSERT(Formattable::kDouble == val.getType());
- TEST_ASSERT(9007199254740991LL == val.getInt64(status));
- TEST_ASSERT(9007199254740991.0 == val.getDouble(status));
+ TEST_ASSERT_EQUALS(Formattable::kDouble, val.getType());
+ TEST_ASSERT_EQUALS(9007199254740991LL, val.getInt64(status));
+ TEST_ASSERT_EQUALS(9007199254740991.0, val.getDouble(status));
TEST_CHECK_STATUS(status);
status = U_ZERO_ERROR;
numStr = "9007199254740992.1"; // 54 bits for the int part.
nf->parse(numStr, val, status);
TEST_CHECK_STATUS(status);
- TEST_ASSERT(Formattable::kDouble == val.getType());
- TEST_ASSERT(9007199254740992LL == val.getInt64(status));
- TEST_ASSERT(9007199254740992.0 == val.getDouble(status));
+ TEST_ASSERT_EQUALS(Formattable::kDouble, val.getType());
+ TEST_ASSERT_EQUALS(9007199254740992LL, val.getInt64(status));
+ TEST_ASSERT_EQUALS(9007199254740992.0, val.getDouble(status));
TEST_CHECK_STATUS(status);
status = U_ZERO_ERROR;
numStr = "9007199254740993.1"; // 54 bits for the int part. Double will round
nf->parse(numStr, val, status); // the ones digit, putting it up to ...994
TEST_CHECK_STATUS(status);
- TEST_ASSERT(Formattable::kDouble == val.getType());
+ TEST_ASSERT_EQUALS(Formattable::kDouble, val.getType());
TEST_ASSERT_EQUALS((int64_t)9007199254740993LL,val.getInt64(status));
TEST_ASSERT_EQUALS((double)9007199254740994.0,(double)val.getDouble(status));
TEST_CHECK_STATUS(status);
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/plurfmts.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/plurfmts.cpp
index db2485d31f7..c676a8fc833 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/plurfmts.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/plurfmts.cpp
@@ -55,7 +55,7 @@ void PluralFormatTest::pluralFormatBasicTest(/*char *par*/)
PluralFormat* plFmt[8];
Locale locale = Locale::getDefault();
UnicodeString otherPattern = UnicodeString("other{#}");
- UnicodeString message=UnicodeString("ERROR: PluralFormat basic test");
+ UnicodeString message=UnicodeString("PluralFormat basic test");
// ========= Test constructors
logln(" Testing PluralFormat constructors ...");
@@ -630,21 +630,21 @@ PluralFormatTest::ordinalFormatTest(void) {
IcuTestErrorCode errorCode(*this, "ordinalFormatTest");
UnicodeString pattern("one{#st file}two{#nd file}few{#rd file}other{#th file}");
PluralFormat pf(Locale::getEnglish(), UPLURAL_TYPE_ORDINAL, pattern, errorCode);
- if (errorCode.logDataIfFailureAndReset("PluralFormat(en, UPLURAL_TYPE_ORDINAL, pattern) failed")) {
+ if (errorCode.errDataIfFailureAndReset("PluralFormat(en, UPLURAL_TYPE_ORDINAL, pattern) failed")) {
return;
}
UnicodeString result = pf.format((int32_t)321, errorCode);
- if (!errorCode.logIfFailureAndReset("PluralFormat.format(321) failed") &&
+ if (!errorCode.errIfFailureAndReset("PluralFormat.format(321) failed") &&
result != UNICODE_STRING_SIMPLE("321st file")) {
errln(UnicodeString("PluralFormat.format(321) wrong result string: ") + result);
}
result = pf.format((int32_t)22, errorCode);
- if (!errorCode.logIfFailureAndReset("PluralFormat.format(22) failed") &&
+ if (!errorCode.errIfFailureAndReset("PluralFormat.format(22) failed") &&
result != UNICODE_STRING_SIMPLE("22nd file")) {
errln(UnicodeString("PluralFormat.format(22) wrong result string: ") + result);
}
result = pf.format((int32_t)3, errorCode);
- if (!errorCode.logIfFailureAndReset("PluralFormat.format(3) failed") &&
+ if (!errorCode.errIfFailureAndReset("PluralFormat.format(3) failed") &&
result != UNICODE_STRING_SIMPLE("3rd file")) {
errln(UnicodeString("PluralFormat.format(3) wrong result string: ") + result);
}
@@ -652,16 +652,16 @@ PluralFormatTest::ordinalFormatTest(void) {
// Code coverage: Use the other new-for-UPluralType constructor as well.
PluralFormat pf2(Locale::getEnglish(), UPLURAL_TYPE_ORDINAL, errorCode);
pf2.applyPattern(pattern, errorCode);
- if (errorCode.logIfFailureAndReset("PluralFormat(en, UPLURAL_TYPE_ORDINAL, pattern) failed")) {
+ if (errorCode.errIfFailureAndReset("PluralFormat(en, UPLURAL_TYPE_ORDINAL, pattern) failed")) {
return;
}
result = pf2.format((int32_t)456, errorCode);
- if (!errorCode.logIfFailureAndReset("PluralFormat.format(456) failed") &&
+ if (!errorCode.errIfFailureAndReset("PluralFormat.format(456) failed") &&
result != UNICODE_STRING_SIMPLE("456th file")) {
errln(UnicodeString("PluralFormat.format(456) wrong result string: ") + result);
}
result = pf2.format((int32_t)111, errorCode);
- if (!errorCode.logIfFailureAndReset("PluralFormat.format(111) failed") &&
+ if (!errorCode.errIfFailureAndReset("PluralFormat.format(111) failed") &&
result != UNICODE_STRING_SIMPLE("111th file")) {
errln(UnicodeString("PluralFormat.format(111) wrong result string: ") + result);
}
@@ -685,7 +685,7 @@ PluralFormatTest::TestDecimals() {
}
void
-PluralFormatTest::numberFormatTest(PluralFormat* plFmt,
+PluralFormatTest::numberFormatTest(PluralFormat* plFmt,
NumberFormat *numFmt,
int32_t start,
int32_t end,
@@ -723,12 +723,15 @@ PluralFormatTest::numberFormatTest(PluralFormat* plFmt,
}
}
}
- if ( (numResult!=plResult) || U_FAILURE(status) ) {
+ if (U_FAILURE(status)) {
+ assertSuccess(*message + " in numberFormatTest", status);
+ }
+ if (numResult!=plResult) {
if ( message == NULL ) {
errln("ERROR: Unexpected plural format - got:"+plResult+ UnicodeString(" expecting:")+numResult);
}
else {
- errln( *message+UnicodeString(" got:")+plResult+UnicodeString(" expecting:")+numResult);
+ assertEquals(*message + " in numberFormatTest", numResult, plResult);
}
}
}
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/plurults.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/plurults.cpp
index 7d342287d98..ae7fd4b5869 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/plurults.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/plurults.cpp
@@ -24,10 +24,12 @@
#include "unicode/stringpiece.h"
#include "cmemory.h"
-#include "digitlst.h"
#include "plurrule_impl.h"
#include "plurults.h"
#include "uhash.h"
+#include "number_decimalquantity.h"
+
+using icu::number::impl::DecimalQuantity;
void setupResult(const int32_t testSource[], char result[], int32_t* max);
UBool checkEqual(const PluralRules &test, char *result, int32_t max);
@@ -593,7 +595,7 @@ PluralRulesTest::testGetAllKeywordValues() {
void PluralRulesTest::testOrdinal() {
IcuTestErrorCode errorCode(*this, "testOrdinal");
LocalPointer<PluralRules> pr(PluralRules::forLocale("en", UPLURAL_TYPE_ORDINAL, errorCode));
- if (errorCode.logIfFailureAndReset("PluralRules::forLocale(en, UPLURAL_TYPE_ORDINAL) failed")) {
+ if (errorCode.errIfFailureAndReset("PluralRules::forLocale(en, UPLURAL_TYPE_ORDINAL) failed")) {
return;
}
UnicodeString keyword = pr->select(2.);
@@ -633,14 +635,14 @@ void PluralRulesTest::checkSelect(const LocalPointer<PluralRules> &rules, UError
}
// DigitList is a convenient way to parse the decimal number string and get a double.
- DigitList dl;
- dl.set(StringPiece(num), status);
+ DecimalQuantity dl;
+ dl.setToDecNumber(StringPiece(num), status);
if (U_FAILURE(status)) {
errln("file %s, line %d, ICU error status: %s.", __FILE__, line, u_errorName(status));
status = U_ZERO_ERROR;
continue;
}
- double numDbl = dl.getDouble();
+ double numDbl = dl.toDouble();
const char *decimalPoint = strchr(num, '.');
int fractionDigitCount = decimalPoint == NULL ? 0 : (num + strlen(num) - 1) - decimalPoint;
int fractionDigits = fractionDigitCount == 0 ? 0 : atoi(decimalPoint + 1);
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/rbbimonkeytest.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/rbbimonkeytest.cpp
index 30755b36484..2a45ae6fad2 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/rbbimonkeytest.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/rbbimonkeytest.cpp
@@ -184,6 +184,14 @@ void BreakRules::addRule(const UnicodeString &name, const UnicodeString &definit
}
fSetRefsMatcher->appendTail(thisRule->fExpandedRule);
+ // If rule begins with a '^' rule chaining is disallowed.
+ // Strip off the '^' from the rule expression, and set the flag.
+ if (thisRule->fExpandedRule.charAt(0) == u'^') {
+ thisRule->fInitialMatchOnly = true;
+ thisRule->fExpandedRule.remove(0, 1);
+ thisRule->fExpandedRule.trim();
+ }
+
// Replace the divide sign (\u00f7) with a regular expression named capture.
// When running the rules, a match that includes this group means we found a break position.
@@ -442,6 +450,8 @@ void MonkeyTestData::set(BreakRules *rules, IntlTest::icu_rand &rand, UErrorCode
// ICU always reports a break there.
// The reference rules do not have a means to do so.
int32_t strIdx = 0;
+ bool initialMatch = true; // True at start of text, and immediately after each boundary,
+ // for control over rule chaining.
while (strIdx < fString.length()) {
BreakRule *matchingRule = NULL;
UBool hasBreak = FALSE;
@@ -451,6 +461,10 @@ void MonkeyTestData::set(BreakRules *rules, IntlTest::icu_rand &rand, UErrorCode
int32_t breakGroup = 0;
for (ruleNum=0; ruleNum<rules->fBreakRules.size(); ruleNum++) {
BreakRule *rule = static_cast<BreakRule *>(rules->fBreakRules.elementAt(ruleNum));
+ if (rule->fInitialMatchOnly && !initialMatch) {
+ // Skip checking this '^' rule. (No rule chaining)
+ continue;
+ }
rule->fRuleMatcher->reset();
if (rule->fRuleMatcher->lookingAt(strIdx, status)) {
// A candidate rule match, check further to see if we take it or continue to check other rules.
@@ -512,10 +526,12 @@ void MonkeyTestData::set(BreakRules *rules, IntlTest::icu_rand &rand, UErrorCode
// which may differ from end of the match. The matching rule may have included
// context following the boundary that needs to be looked at again.
strIdx = matchingRule->fRuleMatcher->end(breakGroup, status);
+ initialMatch = true;
} else {
// Original rule didn't specify a break.
// Continue applying rules starting on the last code point of this match.
strIdx = fString.moveIndex32(matchEnd, -1);
+ initialMatch = false;
if (strIdx == matchStart) {
// Match was only one code point, no progress if we continue.
// Shouldn't get here, case is filtered out at top of loop.
@@ -931,9 +947,9 @@ void RBBIMonkeyTest::testMonkey() {
int32_t i;
for (i=0; tests[i] != NULL; ++i) {
logln("beginning testing of %s", tests[i]);
- RBBIMonkeyImpl *test = new RBBIMonkeyImpl(status);
+ LocalPointer<RBBIMonkeyImpl> test(new RBBIMonkeyImpl(status));
if (U_FAILURE(status)) {
- errln("%s:%d: error %s while starting test %s.", __FILE__, __LINE__, u_errorName(status), tests[i]);
+ dataerrln("%s:%d: error %s while starting test %s.", __FILE__, __LINE__, u_errorName(status), tests[i]);
break;
}
test->fDumpExpansions = dumpExpansions;
@@ -942,11 +958,11 @@ void RBBIMonkeyTest::testMonkey() {
test->fLoopCount = loopCount;
test->setup(tests[i], status);
if (U_FAILURE(status)) {
- errln("%s:%d: error %s while starting test %s.", __FILE__, __LINE__, u_errorName(status), tests[i]);
+ dataerrln("%s:%d: error %s while starting test %s.", __FILE__, __LINE__, u_errorName(status), tests[i]);
break;
}
test->startTest();
- startedTests.addElement(test, status);
+ startedTests.addElement(test.orphan(), status);
if (U_FAILURE(status)) {
errln("%s:%d: error %s while starting test %s.", __FILE__, __LINE__, u_errorName(status), tests[i]);
break;
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/rbbimonkeytest.h b/Build/source/libs/icu/icu-src/source/test/intltest/rbbimonkeytest.h
index 83b16f3c6cd..54d23fcceae 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/rbbimonkeytest.h
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/rbbimonkeytest.h
@@ -25,6 +25,20 @@
#include "uhash.h"
#include "uvector.h"
+// RBBI Monkey Test. Run break iterators against randomly generated strings, compare results with
+// an independent reference implementation.
+//
+// The monkey test can be run with parameters, e.g.
+// intltest rbbi/RBBIMonkeyTest@loop=-1,rules=word.txt
+// will run word break testing in an infinite loop.
+// Summary of options
+// rules=name Test against the named reference rule file.
+// Files are found in source/test/testdata/break_rules
+// loop=nnn Loop nnn times. -1 for no limit. loop of 1 is useful for debugging.
+// seed=nnnn Random number generator seed. Allows recreation of a failure.
+// Error messages include the necessary seed value.
+// verbose Display details of a failure. Useful for debugging. Use with loop=1.
+// expansions Debug option, show expansions of rules and sets.
//
// TODO:
// Develop a tailoring format.
@@ -88,6 +102,7 @@ class BreakRule: public UObject {
UnicodeString fRule; // Rule expression, excluding the name, as written in user source.
UnicodeString fExpandedRule; // Rule expression after expanding the set definitions.
LocalPointer<RegexMatcher> fRuleMatcher; // Regular expression that matches the rule.
+ bool fInitialMatchOnly = false; // True if rule begins with '^', meaning no chaining.
};
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/rbbitst.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/rbbitst.cpp
index 02785167d76..048e2bb8ed5 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/rbbitst.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/rbbitst.cpp
@@ -17,6 +17,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <utility>
#include <vector>
#include "unicode/brkiter.h"
@@ -111,6 +112,8 @@ void RBBITest::runIndexedTest( int32_t index, UBool exec, const char* &name, cha
TESTCASE_AUTO(TestBug12677);
TESTCASE_AUTO(TestTableRedundancies);
TESTCASE_AUTO(TestBug13447);
+ TESTCASE_AUTO(TestReverse);
+ TESTCASE_AUTO(TestBug13692);
TESTCASE_AUTO_END;
}
@@ -1056,7 +1059,7 @@ void RBBITest::TestExtended() {
if (U_FAILURE(status)) {
- errln("ICU Error %s while parsing test file at line %d.",
+ dataerrln("ICU Error %s while parsing test file at line %d.",
u_errorName(status), lineNum);
status = U_ZERO_ERROR;
goto end_test; // Stop the test
@@ -1280,35 +1283,40 @@ void RBBITest::TestUnicodeFiles() {
// Check for test cases from the Unicode test data files that are known to fail
-// and should be skipped because ICU is not yet able to fully implement the spec.
-// See ticket #7270.
+// and should be skipped as known issues because ICU does not fully implement
+// the Unicode specifications, or because ICU includes tailorings that differ from
+// the Unicode standard.
+//
+// Test cases are identified by the test data sequence, which tends to be more stable
+// across Unicode versions than the test file line numbers.
+//
+// The test case with ticket "10666" is a dummy, included as an example.
UBool RBBITest::testCaseIsKnownIssue(const UnicodeString &testCase, const char *fileName) {
static struct TestCase {
+ const char *fTicketNum;
const char *fFileName;
const UChar *fString;
- } badTestCases[] = { // Line Numbers from Unicode 7.0.0 file.
- {"LineBreakTest.txt", u"\u200B\u0020}"}, // Line 5198
- {"LineBreakTest.txt", u"\u200B\u0020)"}, // Line 5202
- {"LineBreakTest.txt", u"\u200B\u0020!"}, // Line 5214
- {"LineBreakTest.txt", u"\u200B\u0020,"}, // Line 5246
- {"LineBreakTest.txt", u"\u200B\u0020/"}, // Line 5298
- {"LineBreakTest.txt", u"\u200B\u0020\u2060"}, // Line 5302
- // Line Numbers from pre-release verion of GraphemeBreakTest-10.0.0.txt
- {"GraphemeBreakTest.txt", u"\u200D\u2640"}, // Line 656, old GB 11 test ZWJ x GAZ
- {"GraphemeBreakTest.txt", u"\u200D\U0001F466"}, // Line 658, old GB 11 test ZWJ x EBG
- {"GraphemeBreakTest.txt", u"\u200D\U0001F466\U0001F3FB"}, // Line 842, old GB 11 test ZWJ x EBG x EModifier
-
- // Line Numbers from pre-release verion of WordBreakTest-10.0.0.txt
- {"WordBreakTest.txt", u"\u200D\u261D"}, // Line 1356, ZWJ x EmojiNRK
- {"WordBreakTest.txt", u"\u200D\U0001F3FB"}, // Line 1358, ZWJ x EmojiNRK
+ } badTestCases[] = {
+ {"10666", "GraphemeBreakTest.txt", u"\u0020\u0020\u0033"}, // Fake example, for illustration.
+ // Issue 8151, move the Finnish tailoring of the line break of hyphens to root.
+ // This probably ultimately wants to be resolved by updating UAX-14, but in the mean time
+ // ICU is out of sync with Unicode.
+ {"8151", "LineBreakTest.txt", u"-#"},
+ {"8151", "LineBreakTest.txt", u"\u002d\u0308\u0023"},
+ {"8151", "LineBreakTest.txt", u"\u002d\u00a7"},
+ {"8151", "LineBreakTest.txt", u"\u002d\u0308\u00a7"},
+ {"8151", "LineBreakTest.txt", u"\u002d\U00050005"},
+ {"8151", "LineBreakTest.txt", u"\u002d\u0308\U00050005"},
+ {"8151", "LineBreakTest.txt", u"\u002d\u0e01"},
+ {"8151", "LineBreakTest.txt", u"\u002d\u0308\u0e01"},
};
for (int n=0; n<UPRV_LENGTHOF(badTestCases); n++) {
const TestCase &badCase = badTestCases[n];
if (!strcmp(fileName, badCase.fFileName) &&
testCase == UnicodeString(badCase.fString)) {
- return logKnownIssue("7270");
+ return logKnownIssue(badCase.fTicketNum);
}
}
return FALSE;
@@ -1556,34 +1564,6 @@ static uint32_t m_rand()
}
-//
-// Data for Extended Pictographic scraped from CLDR common/properties/ExtendedPictographic.txt, r13267
-//
-static const char16_t *gExtended_Pict = u"["
- "\\U0001F774-\\U0001F77F\\U00002700-\\U00002701\\U00002703-\\U00002704\\U0000270E\\U00002710-\\U00002711\\U00002765-\\U00002767"
- "\\U0001F030-\\U0001F093\\U0001F094-\\U0001F09F\\U0001F10D-\\U0001F10F\\U0001F12F\\U0001F16C-\\U0001F16F\\U0001F1AD-\\U0001F1E5"
- "\\U0001F260-\\U0001F265\\U0001F203-\\U0001F20F\\U0001F23C-\\U0001F23F\\U0001F249-\\U0001F24F\\U0001F252-\\U0001F25F"
- "\\U0001F266-\\U0001F2FF\\U0001F7D5-\\U0001F7FF\\U0001F000-\\U0001F003\\U0001F005-\\U0001F02B\\U0001F02C-\\U0001F02F"
- "\\U0001F322-\\U0001F323\\U0001F394-\\U0001F395\\U0001F398\\U0001F39C-\\U0001F39D\\U0001F3F1-\\U0001F3F2\\U0001F3F6"
- "\\U0001F4FE\\U0001F53E-\\U0001F548\\U0001F54F\\U0001F568-\\U0001F56E\\U0001F571-\\U0001F572\\U0001F57B-\\U0001F586"
- "\\U0001F588-\\U0001F589\\U0001F58E-\\U0001F58F\\U0001F591-\\U0001F594\\U0001F597-\\U0001F5A3\\U0001F5A6-\\U0001F5A7"
- "\\U0001F5A9-\\U0001F5B0\\U0001F5B3-\\U0001F5BB\\U0001F5BD-\\U0001F5C1\\U0001F5C5-\\U0001F5D0\\U0001F5D4-\\U0001F5DB"
- "\\U0001F5DF-\\U0001F5E0\\U0001F5E2\\U0001F5E4-\\U0001F5E7\\U0001F5E9-\\U0001F5EE\\U0001F5F0-\\U0001F5F2\\U0001F5F4-\\U0001F5F9"
- "\\U00002605\\U00002607-\\U0000260D\\U0000260F-\\U00002610\\U00002612\\U00002616-\\U00002617\\U00002619-\\U0000261C"
- "\\U0000261E-\\U0000261F\\U00002621\\U00002624-\\U00002625\\U00002627-\\U00002629\\U0000262B-\\U0000262D\\U00002630-\\U00002637"
- "\\U0000263B-\\U00002647\\U00002654-\\U0000265F\\U00002661-\\U00002662\\U00002664\\U00002667\\U00002669-\\U0000267A"
- "\\U0000267C-\\U0000267E\\U00002680-\\U00002691\\U00002695\\U00002698\\U0000269A\\U0000269D-\\U0000269F\\U000026A2-\\U000026A9"
- "\\U000026AC-\\U000026AF\\U000026B2-\\U000026BC\\U000026BF-\\U000026C3\\U000026C6-\\U000026C7\\U000026C9-\\U000026CD"
- "\\U000026D0\\U000026D2\\U000026D5-\\U000026E8\\U000026EB-\\U000026EF\\U000026F6\\U000026FB-\\U000026FC\\U000026FE-\\U000026FF"
- "\\U00002388\\U0001FA00-\\U0001FFFD\\U0001F0A0-\\U0001F0AE\\U0001F0B1-\\U0001F0BF\\U0001F0C1-\\U0001F0CF\\U0001F0D1-\\U0001F0F5"
- "\\U0001F0AF-\\U0001F0B0\\U0001F0C0\\U0001F0D0\\U0001F0F6-\\U0001F0FF\\U0001F80C-\\U0001F80F\\U0001F848-\\U0001F84F"
- "\\U0001F85A-\\U0001F85F\\U0001F888-\\U0001F88F\\U0001F8AE-\\U0001F8FF\\U0001F900-\\U0001F90B\\U0001F91F\\U0001F928-\\U0001F92F"
- "\\U0001F931-\\U0001F932\\U0001F94C\\U0001F95F-\\U0001F96B\\U0001F992-\\U0001F997\\U0001F9D0-\\U0001F9E6\\U0001F90C-\\U0001F90F"
- "\\U0001F93F\\U0001F94D-\\U0001F94F\\U0001F96C-\\U0001F97F\\U0001F998-\\U0001F9BF\\U0001F9C1-\\U0001F9CF\\U0001F9E7-\\U0001F9FF"
- "\\U0001F6C6-\\U0001F6CA\\U0001F6D3-\\U0001F6D4\\U0001F6E6-\\U0001F6E8\\U0001F6EA\\U0001F6F1-\\U0001F6F2\\U0001F6F7-\\U0001F6F8"
- "\\U0001F6D5-\\U0001F6DF\\U0001F6ED-\\U0001F6EF\\U0001F6F9-\\U0001F6FF"
- "]";
-
//------------------------------------------------------------------------------------------
//
// class RBBICharMonkey Character (Grapheme Cluster) specific implementation
@@ -1613,11 +1593,7 @@ private:
UnicodeSet *fLVSet;
UnicodeSet *fLVTSet;
UnicodeSet *fHangulSet;
- UnicodeSet *fEmojiBaseSet;
- UnicodeSet *fEmojiModifierSet;
UnicodeSet *fExtendedPictSet;
- UnicodeSet *fEBGSet;
- UnicodeSet *fEmojiNRKSet;
UnicodeSet *fAnySet;
const UnicodeString *fText;
@@ -1649,12 +1625,7 @@ RBBICharMonkey::RBBICharMonkey() {
fHangulSet->addAll(*fLVSet);
fHangulSet->addAll(*fLVTSet);
- fEmojiBaseSet = new UnicodeSet(UNICODE_STRING_SIMPLE("[\\p{Grapheme_Cluster_Break = EB}]"), status);
- fEmojiModifierSet = new UnicodeSet(UNICODE_STRING_SIMPLE("[\\p{Grapheme_Cluster_Break = EM}]"), status);
- fExtendedPictSet = new UnicodeSet(gExtended_Pict, status);
- fEBGSet = new UnicodeSet(UNICODE_STRING_SIMPLE("[\\p{Grapheme_Cluster_Break = EBG}]"), status);
- fEmojiNRKSet = new UnicodeSet(UNICODE_STRING_SIMPLE(
- "[[\\p{Emoji}]-[\\p{Grapheme_Cluster_Break = Regional_Indicator}*#0-9\\u00a9\\u00ae\\u2122\\u3030\\u303d]]"), status);
+ fExtendedPictSet = new UnicodeSet(u"[:Extended_Pictographic:]", status);
fAnySet = new UnicodeSet(0, 0x10ffff);
fSets = new UVector(status);
@@ -1668,12 +1639,8 @@ RBBICharMonkey::RBBICharMonkey() {
fSets->addElement(fSpacingSet, status);
fSets->addElement(fHangulSet, status);
fSets->addElement(fAnySet, status);
- fSets->addElement(fEmojiBaseSet, status);
- fSets->addElement(fEmojiModifierSet, status);
fSets->addElement(fZWJSet, status);
fSets->addElement(fExtendedPictSet, status);
- fSets->addElement(fEBGSet, status);
- fSets->addElement(fEmojiNRKSet,status);
if (U_FAILURE(status)) {
deferredStatus = status;
}
@@ -1793,22 +1760,8 @@ int32_t RBBICharMonkey::next(int32_t prevPos) {
continue;
}
- // Rule (GB10) (Emoji_Base | EBG) Extend * x Emoji_Modifier
- if ((fEmojiBaseSet->contains(c1) || fEBGSet->contains(c1)) && fEmojiModifierSet->contains(c2)) {
- continue;
- }
- if ((fEmojiBaseSet->contains(cBase) || fEBGSet->contains(cBase)) &&
- fExtendSet->contains(c1) && fEmojiModifierSet->contains(c2)) {
- continue;
- }
-
- // Rule (GB11) (Glue_After_ZWJ | Emoji) Extend * ZWJ x (Glue_After_ZWJ | Emoji)
- if ((fExtendedPictSet->contains(c0) || fEmojiNRKSet->contains(c0)) && fZWJSet->contains(c1) &&
- (fExtendedPictSet->contains(c2) || fEmojiNRKSet->contains(c2))) {
- continue;
- }
- if ((fExtendedPictSet->contains(cBase) || fEmojiNRKSet->contains(cBase)) && fExtendSet->contains(c0) && fZWJSet->contains(c1) &&
- (fExtendedPictSet->contains(c2) || fEmojiNRKSet->contains(c2))) {
+ // Rule (GB11) Extended_Pictographic Extend * ZWJ x Extended_Pictographic
+ if (fExtendedPictSet->contains(cBase) && fZWJSet->contains(c1) && fExtendedPictSet->contains(c2)) {
continue;
}
@@ -1817,7 +1770,7 @@ int32_t RBBICharMonkey::next(int32_t prevPos) {
// a break if there are three or more contiguous RIs. If there are
// only two, a break following will occur via other rules, and will include
// any trailing extend characters, which is needed behavior.
- if (fRegionalIndicatorSet->contains(c0) && fRegionalIndicatorSet->contains(c1)
+ if (fRegionalIndicatorSet->contains(c0) && fRegionalIndicatorSet->contains(c1)
&& fRegionalIndicatorSet->contains(c2)) {
break;
}
@@ -1855,12 +1808,8 @@ RBBICharMonkey::~RBBICharMonkey() {
delete fLVTSet;
delete fHangulSet;
delete fAnySet;
- delete fEmojiBaseSet;
- delete fEmojiModifierSet;
delete fZWJSet;
delete fExtendedPictSet;
- delete fEBGSet;
- delete fEmojiNRKSet;
}
//------------------------------------------------------------------------------------------
@@ -1896,13 +1845,10 @@ private:
UnicodeSet *fOtherSet;
UnicodeSet *fExtendSet;
UnicodeSet *fExtendNumLetSet;
+ UnicodeSet *fWSegSpaceSet;
UnicodeSet *fDictionarySet;
- UnicodeSet *fEBaseSet;
- UnicodeSet *fEBGSet;
- UnicodeSet *fEModifierSet;
UnicodeSet *fZWJSet;
UnicodeSet *fExtendedPictSet;
- UnicodeSet *fEmojiNRKSet;
const UnicodeString *fText;
};
@@ -1930,14 +1876,10 @@ RBBIWordMonkey::RBBIWordMonkey()
fFormatSet = new UnicodeSet(u"[\\p{Word_Break = Format}]", status);
fExtendNumLetSet = new UnicodeSet(u"[\\p{Word_Break = ExtendNumLet}]", status);
fExtendSet = new UnicodeSet(u"[\\p{Word_Break = Extend}]", status);
+ fWSegSpaceSet = new UnicodeSet(u"[\\p{Word_Break = WSegSpace}]", status);
- fEBaseSet = new UnicodeSet(u"[\\p{Word_Break = EB}]", status);
- fEBGSet = new UnicodeSet(u"[\\p{Word_Break = EBG}]", status);
- fEModifierSet = new UnicodeSet(u"[\\p{Word_Break = EM}]", status);
fZWJSet = new UnicodeSet(u"[\\p{Word_Break = ZWJ}]", status);
- fExtendedPictSet = new UnicodeSet(gExtended_Pict, status);
- fEmojiNRKSet = new UnicodeSet(
- u"[[\\p{Emoji}]-[\\p{Word_Break = Regional_Indicator}*#0-9\\u00a9\\u00ae\\u2122\\u3030\\u303d]]", status);
+ fExtendedPictSet = new UnicodeSet(u"[:Extended_Pictographic:]", status);
fDictionarySet = new UnicodeSet(u"[[\\uac00-\\ud7a3][:Han:][:Hiragana:]]", status);
fDictionarySet->addAll(*fKatakanaSet);
@@ -1965,15 +1907,12 @@ RBBIWordMonkey::RBBIWordMonkey()
fOtherSet->removeAll(*fMidNumSet);
fOtherSet->removeAll(*fNumericSet);
fOtherSet->removeAll(*fExtendNumLetSet);
+ fOtherSet->removeAll(*fWSegSpaceSet);
fOtherSet->removeAll(*fFormatSet);
fOtherSet->removeAll(*fExtendSet);
fOtherSet->removeAll(*fRegionalIndicatorSet);
- fOtherSet->removeAll(*fEBaseSet);
- fOtherSet->removeAll(*fEBGSet);
- fOtherSet->removeAll(*fEModifierSet);
fOtherSet->removeAll(*fZWJSet);
fOtherSet->removeAll(*fExtendedPictSet);
- fOtherSet->removeAll(*fEmojiNRKSet);
// Inhibit dictionary characters from being tested at all.
fOtherSet->removeAll(*fDictionarySet);
@@ -1997,13 +1936,10 @@ RBBIWordMonkey::RBBIWordMonkey()
fSets->addElement(fExtendSet, status);
fSets->addElement(fOtherSet, status);
fSets->addElement(fExtendNumLetSet, status);
+ fSets->addElement(fWSegSpaceSet, status);
- fSets->addElement(fEBaseSet, status);
- fSets->addElement(fEBGSet, status);
- fSets->addElement(fEModifierSet, status);
fSets->addElement(fZWJSet, status);
fSets->addElement(fExtendedPictSet, status);
- fSets->addElement(fEmojiNRKSet, status);
if (U_FAILURE(status)) {
deferredStatus = status;
@@ -2082,12 +2018,17 @@ int32_t RBBIWordMonkey::next(int32_t prevPos) {
break;
};
- // Rule (3c) ZWJ x (Glue_after_ZWJ | EmojiNRK).
+ // Rule (3c) ZWJ x Extended_Pictographic
// Not ignoring extend chars, so peek into input text to
// get the potential ZWJ, the character immediately preceding c2.
// Sloppy UChar32 indexing: p2-1 may reference trail half
// but char32At will get the full code point.
- if (fZWJSet->contains(fText->char32At(p2-1)) && (fExtendedPictSet->contains(c2) || fEmojiNRKSet->contains(c2))) {
+ if (fZWJSet->contains(fText->char32At(p2-1)) && fExtendedPictSet->contains(c2)) {
+ continue;
+ }
+
+ // Rule (3d) Keep horizontal whitespace together.
+ if (fWSegSpaceSet->contains(fText->char32At(p2-1)) && fWSegSpaceSet->contains(c2)) {
continue;
}
@@ -2181,11 +2122,6 @@ int32_t RBBIWordMonkey::next(int32_t prevPos) {
continue;
}
- // WB 14 (E_Base | EBG) x E_Modifier
- if ((fEBaseSet->contains(c1) || fEBGSet->contains(c1)) && fEModifierSet->contains(c2)) {
- continue;
- }
-
// Rule 15 - 17 Group pairs of Regional Indicators.
if (fRegionalIndicatorSet->contains(c0) && fRegionalIndicatorSet->contains(c1)) {
break;
@@ -2225,15 +2161,12 @@ RBBIWordMonkey::~RBBIWordMonkey() {
delete fFormatSet;
delete fExtendSet;
delete fExtendNumLetSet;
+ delete fWSegSpaceSet;
delete fRegionalIndicatorSet;
delete fDictionarySet;
delete fOtherSet;
- delete fEBaseSet;
- delete fEBGSet;
- delete fEModifierSet;
delete fZWJSet;
delete fExtendedPictSet;
- delete fEmojiNRKSet;
}
@@ -2595,6 +2528,7 @@ private:
UnicodeSet *fB2;
UnicodeSet *fBA;
UnicodeSet *fBB;
+ UnicodeSet *fHH;
UnicodeSet *fHY;
UnicodeSet *fH2;
UnicodeSet *fH3;
@@ -2622,9 +2556,7 @@ private:
UnicodeSet *fXX;
UnicodeSet *fEB;
UnicodeSet *fEM;
- UnicodeSet *fZJ;
- UnicodeSet *fExtendedPict;
- UnicodeSet *fEmojiNRK;
+ UnicodeSet *fZWJ;
BreakIterator *fCharBI;
const UnicodeString *fText;
@@ -2661,6 +2593,7 @@ RBBILineMonkey::RBBILineMonkey() :
fB2 = new UnicodeSet(UNICODE_STRING_SIMPLE("[\\p{Line_break=B2}]"), status);
fBA = new UnicodeSet(UNICODE_STRING_SIMPLE("[\\p{Line_break=BA}]"), status);
fBB = new UnicodeSet(UNICODE_STRING_SIMPLE("[\\p{Line_break=BB}]"), status);
+ fHH = new UnicodeSet();
fHY = new UnicodeSet(UNICODE_STRING_SIMPLE("[\\p{Line_break=HY}]"), status);
fH2 = new UnicodeSet(UNICODE_STRING_SIMPLE("[\\p{Line_break=H2}]"), status);
fH3 = new UnicodeSet(UNICODE_STRING_SIMPLE("[\\p{Line_break=H3}]"), status);
@@ -2689,9 +2622,7 @@ RBBILineMonkey::RBBILineMonkey() :
fXX = new UnicodeSet(UNICODE_STRING_SIMPLE("[\\p{Line_break=XX}]"), status);
fEB = new UnicodeSet(UNICODE_STRING_SIMPLE("[\\p{Line_break=EB}]"), status);
fEM = new UnicodeSet(UNICODE_STRING_SIMPLE("[\\p{Line_break=EM}]"), status);
- fZJ = new UnicodeSet(UNICODE_STRING_SIMPLE("[\\p{Line_break=ZWJ}]"), status);
- fEmojiNRK = new UnicodeSet(UNICODE_STRING_SIMPLE("[[\\p{Emoji}]-[\\p{Line_break=RI}*#0-9\\u00a9\\u00ae\\u2122\\u3030\\u303d]]"), status);
- fExtendedPict = new UnicodeSet(gExtended_Pict, status);
+ fZWJ = new UnicodeSet(UNICODE_STRING_SIMPLE("[\\p{Line_break=ZWJ}]"), status);
if (U_FAILURE(status)) {
deferredStatus = status;
@@ -2703,7 +2634,9 @@ RBBILineMonkey::RBBILineMonkey() :
fAL->addAll(*fSG); // Default behavior for SG is identical to AL.
fNS->addAll(*fCJ); // Default behavior for CJ is identical to NS.
- fCM->addAll(*fZJ); // ZWJ behaves as a CM.
+ fCM->addAll(*fZWJ); // ZWJ behaves as a CM.
+
+ fHH->add(u'\u2010'); // Hyphen, '‐'
fSets->addElement(fBK, status);
fSets->addElement(fCR, status);
@@ -2745,9 +2678,7 @@ RBBILineMonkey::RBBILineMonkey() :
fSets->addElement(fSG, status);
fSets->addElement(fEB, status);
fSets->addElement(fEM, status);
- fSets->addElement(fZJ, status);
- fSets->addElement(fExtendedPict, status);
- fSets->addElement(fEmojiNRK, status);
+ fSets->addElement(fZWJ, status);
const char *rules =
@@ -2931,18 +2862,50 @@ int32_t RBBILineMonkey::next(int32_t startPos) {
}
// LB 8 Break after zero width space
- if (fZW->contains(prevChar)) {
+ // ZW SP* ÷
+ // Scan backwards from prevChar for SP* ZW
+ tPos = prevPos;
+ while (tPos>0 && fSP->contains(fText->char32At(tPos))) {
+ tPos = fText->moveIndex32(tPos, -1);
+ }
+ if (fZW->contains(fText->char32At(tPos))) {
break;
}
- // LB 8a ZWJ x (ID | ExtendedPict | Emoji)
+ // LB 25 Numbers
+ // Move this test up, before LB8a, because numbers can match a longer sequence that would
+ // also match 8a. e.g. NU ZWJ IS PO (ZWJ acts like CM)
+ if (fNumberMatcher->lookingAt(prevPos, status)) {
+ if (U_FAILURE(status)) {
+ break;
+ }
+ // Matched a number. But could have been just a single digit, which would
+ // not represent a "no break here" between prevChar and thisChar
+ int32_t numEndIdx = fNumberMatcher->end(status); // idx of first char following num
+ if (numEndIdx > pos) {
+ // Number match includes at least our two chars being checked
+ if (numEndIdx > nextPos) {
+ // Number match includes additional chars. Update pos and nextPos
+ // so that next loop iteration will continue at the end of the number,
+ // checking for breaks between last char in number & whatever follows.
+ pos = nextPos = numEndIdx;
+ do {
+ pos = fText->moveIndex32(pos, -1);
+ thisChar = fText->char32At(pos);
+ } while (fCM->contains(thisChar));
+ }
+ continue;
+ }
+ }
+
+ // LB 8a ZWJ x
// The monkey test's way of ignoring combining characters doesn't work
// for this rule. ZJ is also a CM. Need to get the actual character
// preceding "thisChar", not ignoring combining marks, possibly ZJ.
{
int32_t prevIdx = fText->moveIndex32(pos, -1);
UChar32 prevC = fText->char32At(prevIdx);
- if (fZJ->contains(prevC) && (fID->contains(thisChar) || fExtendedPict->contains(thisChar) || fEmojiNRK->contains(thisChar))) {
+ if (fZWJ->contains(prevC)) {
continue;
}
}
@@ -3077,6 +3040,15 @@ int32_t RBBILineMonkey::next(int32_t startPos) {
break;
}
+ // LB 20.09 Don't break between Hyphens and letters if a break precedes the hyphen.
+ // Formerly this was a Finnish tailoring.
+ // Moved to root in ICU 63. This is an ICU customization, not in UAX-14.
+ // ^($HY | $HH) $AL;
+ if (fAL->contains(thisChar) && (fHY->contains(prevChar) || fHH->contains(prevChar)) &&
+ prevPosX2 == -1) {
+ continue;
+ }
+
// LB 21
if (fBA->contains(thisChar) ||
fHY->contains(thisChar) ||
@@ -3121,11 +3093,11 @@ int32_t RBBILineMonkey::next(int32_t startPos) {
// LB 23a Do not break between numeric prefixes and ideographs, or between ideographs and numeric postfixes.
// PR x (ID | EB | EM)
// (ID | EB | EM) x PO
- if (fPR->contains(prevChar) &&
+ if (fPR->contains(prevChar) &&
(fID->contains(thisChar) || fEB->contains(thisChar) || fEM->contains(thisChar))) {
continue;
}
- if ((fID->contains(prevChar) || fEB->contains(prevChar) || fEM->contains(prevChar)) &&
+ if ((fID->contains(prevChar) || fEB->contains(prevChar) || fEM->contains(prevChar)) &&
fPO->contains(thisChar)) {
continue;
}
@@ -3142,32 +3114,7 @@ int32_t RBBILineMonkey::next(int32_t startPos) {
continue;
}
-
-
- // LB 25 Numbers
- if (fNumberMatcher->lookingAt(prevPos, status)) {
- if (U_FAILURE(status)) {
- break;
- }
- // Matched a number. But could have been just a single digit, which would
- // not represent a "no break here" between prevChar and thisChar
- int32_t numEndIdx = fNumberMatcher->end(status); // idx of first char following num
- if (numEndIdx > pos) {
- // Number match includes at least our two chars being checked
- if (numEndIdx > nextPos) {
- // Number match includes additional chars. Update pos and nextPos
- // so that next loop iteration will continue at the end of the number,
- // checking for breaks between last char in number & whatever follows.
- pos = nextPos = numEndIdx;
- do {
- pos = fText->moveIndex32(pos, -1);
- thisChar = fText->char32At(pos);
- } while (fCM->contains(thisChar));
- }
- continue;
- }
- }
-
+ // LB 25 numbers match, moved up, before LB 8a,
// LB 26 Do not break a Korean syllable.
if (fJL->contains(prevChar) && (fJL->contains(thisChar) ||
@@ -3225,12 +3172,16 @@ int32_t RBBILineMonkey::next(int32_t startPos) {
continue;
}
- // LB30a RI RI <break> RI
- // RI x RI
+ // LB30a RI RI ÷ RI
+ // RI x RI
if (fRI->contains(prevCharX2) && fRI->contains(prevChar) && fRI->contains(thisChar)) {
break;
}
if (fRI->contains(prevChar) && fRI->contains(thisChar)) {
+ // Two Regional Indicators have been paired.
+ // Over-write the trailing one (thisChar) to prevent it from forming another pair with a
+ // following RI. This is a hack.
+ thisChar = -1;
continue;
}
@@ -3269,6 +3220,7 @@ RBBILineMonkey::~RBBILineMonkey() {
delete fB2;
delete fBA;
delete fBB;
+ delete fHH;
delete fHY;
delete fH2;
delete fH3;
@@ -3297,9 +3249,7 @@ RBBILineMonkey::~RBBILineMonkey() {
delete fXX;
delete fEB;
delete fEM;
- delete fZJ;
- delete fExtendedPict;
- delete fEmojiNRK;
+ delete fZWJ;
delete fCharBI;
delete fNumberMatcher;
@@ -4422,7 +4372,7 @@ void RBBITest::TestBug12519() {
return;
}
assertTrue(WHERE, Locale::getEnglish() == biEn->getLocale(ULOC_VALID_LOCALE, status));
-
+
assertTrue(WHERE, Locale::getFrench() == biFr->getLocale(ULOC_VALID_LOCALE, status));
assertTrue(WHERE "Locales do not participate in BreakIterator equality.", *biEn == *biFr);
@@ -4462,7 +4412,7 @@ void RBBITest::TestBug12677() {
void RBBITest::TestTableRedundancies() {
UErrorCode status = U_ZERO_ERROR;
-
+
LocalPointer<RuleBasedBreakIterator> bi (
(RuleBasedBreakIterator *)BreakIterator::createLineInstance(Locale::getEnglish(), status));
assertSuccess(WHERE, status);
@@ -4538,12 +4488,124 @@ void RBBITest::TestBug13447() {
assertEquals(WHERE, UBRK_WORD_NUMBER, bi->getRuleStatus());
}
+// TestReverse exercises both the synthesized safe reverse rules and the logic
+// for filling the break iterator cache when starting from random positions
+// in the text.
+//
+// It's a monkey test, working on random data, with the expected data obtained
+// from forward iteration (no safe rules involved), comparing with results
+// when indexing into the interior of the string (safe rules needed).
+
+void RBBITest::TestReverse() {
+ UErrorCode status = U_ZERO_ERROR;
+
+ TestReverse(std::unique_ptr<RuleBasedBreakIterator>((RuleBasedBreakIterator *)
+ BreakIterator::createCharacterInstance(Locale::getEnglish(), status)));
+ assertSuccess(WHERE, status, true);
+ status = U_ZERO_ERROR;
+ TestReverse(std::unique_ptr<RuleBasedBreakIterator>((RuleBasedBreakIterator *)
+ BreakIterator::createWordInstance(Locale::getEnglish(), status)));
+ assertSuccess(WHERE, status, true);
+ status = U_ZERO_ERROR;
+ TestReverse(std::unique_ptr<RuleBasedBreakIterator>((RuleBasedBreakIterator *)
+ BreakIterator::createLineInstance(Locale::getEnglish(), status)));
+ assertSuccess(WHERE, status, true);
+ status = U_ZERO_ERROR;
+ TestReverse(std::unique_ptr<RuleBasedBreakIterator>((RuleBasedBreakIterator *)
+ BreakIterator::createSentenceInstance(Locale::getEnglish(), status)));
+ assertSuccess(WHERE, status, true);
+}
+
+void RBBITest::TestReverse(std::unique_ptr<RuleBasedBreakIterator>bi) {
+ if (!bi) {
+ return;
+ }
+
+ // From the mapping trie in the break iterator's internal data, create a
+ // vector of UnicodeStrings, one for each character category, containing
+ // all of the code points that map to that category. Unicode planes 0 and 1 only,
+ // to avoid an execess of unassigned code points.
+
+ RBBIDataWrapper *data = bi->fData;
+ int32_t categoryCount = data->fHeader->fCatCount;
+ UTrie2 *trie = data->fTrie;
+
+ std::vector<UnicodeString> strings(categoryCount, UnicodeString());
+ for (int cp=0; cp<0x1fff0; ++cp) {
+ int cat = utrie2_get32(trie, cp);
+ cat &= ~0x4000; // And off the dictionary bit from the category.
+ assertTrue(WHERE, cat < categoryCount && cat >= 0);
+ if (cat < 0 || cat >= categoryCount) return;
+ strings[cat].append(cp);
+ }
+
+ icu_rand randomGen;
+ const int testStringLength = 10000;
+ UnicodeString testString;
+
+ for (int i=0; i<testStringLength; ++i) {
+ int charClass = randomGen() % categoryCount;
+ if (strings[charClass].length() > 0) {
+ int cp = strings[charClass].char32At(randomGen() % strings[charClass].length());
+ testString.append(cp);
+ }
+ }
+
+ typedef std::pair<UBool, int32_t> Result;
+ std::vector<Result> expectedResults;
+ bi->setText(testString);
+ for (int i=0; i<testString.length(); ++i) {
+ bool isboundary = bi->isBoundary(i);
+ int ruleStatus = bi->getRuleStatus();
+ expectedResults.push_back(std::make_pair(isboundary, ruleStatus));
+ }
+
+ for (int i=testString.length()-1; i>=0; --i) {
+ bi->setText(testString); // clears the internal break cache
+ Result expected = expectedResults[i];
+ assertEquals(WHERE, expected.first, bi->isBoundary(i));
+ assertEquals(WHERE, expected.second, bi->getRuleStatus());
+ }
+}
+
+
+// Ticket 13692 - finding word boundaries in very large numbers or words could
+// be very time consuming. When the problem was present, this void test
+// would run more than fifteen minutes, which is to say, the failure was noticeale.
+
+void RBBITest::TestBug13692() {
+ UErrorCode status = U_ZERO_ERROR;
+ LocalPointer<RuleBasedBreakIterator> bi ((RuleBasedBreakIterator *)
+ BreakIterator::createWordInstance(Locale::getEnglish(), status), status);
+ if (!assertSuccess(WHERE, status, true)) {
+ return;
+ }
+ constexpr int32_t LENGTH = 1000000;
+ UnicodeString longNumber(LENGTH, (UChar32)u'3', LENGTH);
+ for (int i=0; i<20; i+=2) {
+ longNumber.setCharAt(i, u' ');
+ }
+ bi->setText(longNumber);
+ assertFalse(WHERE, bi->isBoundary(LENGTH-5));
+ assertSuccess(WHERE, status);
+}
+
//
// TestDebug - A place-holder test for debugging purposes.
// For putting in fragments of other tests that can be invoked
// for tracing without a lot of unwanted extra stuff happening.
//
void RBBITest::TestDebug(void) {
+ UErrorCode status = U_ZERO_ERROR;
+ LocalPointer<RuleBasedBreakIterator> bi ((RuleBasedBreakIterator *)
+ BreakIterator::createCharacterInstance(Locale::getEnglish(), status), status);
+ if (!assertSuccess(WHERE, status, true)) {
+ return;
+ }
+ const UnicodeString &rules = bi->getRules();
+ UParseError pe;
+ LocalPointer<RuleBasedBreakIterator> newbi(new RuleBasedBreakIterator(rules, pe, status));
+ assertSuccess(WHERE, status);
}
void RBBITest::TestProperties() {
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/rbbitst.h b/Build/source/libs/icu/icu-src/source/test/intltest/rbbitst.h
index 21fdfb9f01a..cfaf688ac1f 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/rbbitst.h
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/rbbitst.h
@@ -17,6 +17,8 @@
#if !UCONFIG_NO_BREAK_ITERATION
+#include <memory>
+
#include "intltest.h"
#include "unicode/brkiter.h"
#include "unicode/rbbi.h"
@@ -77,6 +79,9 @@ public:
void TestBug12677();
void TestTableRedundancies();
void TestBug13447();
+ void TestReverse();
+ void TestReverse(std::unique_ptr<RuleBasedBreakIterator>bi);
+ void TestBug13692();
void TestDebug();
void TestProperties();
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/regiontst.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/regiontst.cpp
index 20d62f30c04..d8a6723bfe3 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/regiontst.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/regiontst.cpp
@@ -290,7 +290,7 @@ static KnownRegion knownRegions[] = {
{ "TA" , -1, "QO", URGN_TERRITORY, "009" },
{ "TC" , 796, "029", URGN_TERRITORY, "019" },
{ "TD" , 148, "017", URGN_TERRITORY, "002" },
- { "TF" , 260, "145", URGN_TERRITORY, "142" },
+ { "TF" , 260, "014", URGN_TERRITORY, "002" },
{ "TG" , 768, "011", URGN_TERRITORY, "002" },
{ "TH" , 764, "035", URGN_TERRITORY, "142" },
{ "TJ" , 762, "143", URGN_TERRITORY, "142" },
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/reldatefmttest.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/reldatefmttest.cpp
index c0765ddc2e3..4481f420cb8 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/reldatefmttest.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/reldatefmttest.cpp
@@ -10,8 +10,10 @@
*
*******************************************************************************
*/
+#include <memory>
#include <stdio.h>
#include <stdlib.h>
+#include <vector>
#include "intltest.h"
@@ -24,6 +26,7 @@
static const char *DirectionStr(UDateDirection direction);
static const char *RelativeUnitStr(UDateRelativeUnit unit);
+static const char *RelativeDateTimeUnitStr(URelativeDateTimeUnit unit);
static const char *AbsoluteUnitStr(UDateAbsoluteUnit unit);
typedef struct WithQuantityExpected {
@@ -244,6 +247,7 @@ static WithoutQuantityExpected kEnglishNoQuantity[] = {
{UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_DAY, "tomorrow"},
{UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_WEEK, "next week"},
{UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_MONTH, "next month"},
+ {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_QUARTER, "next quarter"},
{UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_YEAR, "next year"},
{UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_MONDAY, "next Monday"},
{UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_TUESDAY, "next Tuesday"},
@@ -258,6 +262,7 @@ static WithoutQuantityExpected kEnglishNoQuantity[] = {
{UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_DAY, "yesterday"},
{UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_WEEK, "last week"},
{UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_MONTH, "last month"},
+ {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_QUARTER, "last quarter"},
{UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_YEAR, "last year"},
{UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_MONDAY, "last Monday"},
{UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_TUESDAY, "last Tuesday"},
@@ -270,6 +275,7 @@ static WithoutQuantityExpected kEnglishNoQuantity[] = {
{UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_DAY, "today"},
{UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_WEEK, "this week"},
{UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_MONTH, "this month"},
+ {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_QUARTER, "this quarter"},
{UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_YEAR, "this year"},
{UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_MONDAY, "this Monday"},
{UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_TUESDAY, "this Tuesday"},
@@ -282,6 +288,7 @@ static WithoutQuantityExpected kEnglishNoQuantity[] = {
{UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_DAY, "day"},
{UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_WEEK, "week"},
{UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_MONTH, "month"},
+ {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_QUARTER, "quarter"},
{UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_YEAR, "year"},
{UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_MONDAY, "Monday"},
{UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_TUESDAY, "Tuesday"},
@@ -300,6 +307,7 @@ static WithoutQuantityExpected kEnglishNoQuantityCaps[] = {
{UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_DAY, "Tomorrow"},
{UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_WEEK, "Next week"},
{UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_MONTH, "Next month"},
+ {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_QUARTER, "Next quarter"},
{UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_YEAR, "Next year"},
{UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_MONDAY, "Next Monday"},
{UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_TUESDAY, "Next Tuesday"},
@@ -314,6 +322,7 @@ static WithoutQuantityExpected kEnglishNoQuantityCaps[] = {
{UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_DAY, "Yesterday"},
{UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_WEEK, "Last week"},
{UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_MONTH, "Last month"},
+ {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_QUARTER, "Last quarter"},
{UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_YEAR, "Last year"},
{UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_MONDAY, "Last Monday"},
{UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_TUESDAY, "Last Tuesday"},
@@ -326,6 +335,7 @@ static WithoutQuantityExpected kEnglishNoQuantityCaps[] = {
{UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_DAY, "Today"},
{UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_WEEK, "This week"},
{UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_MONTH, "This month"},
+ {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_QUARTER, "This quarter"},
{UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_YEAR, "This year"},
{UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_MONDAY, "This Monday"},
{UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_TUESDAY, "This Tuesday"},
@@ -338,6 +348,7 @@ static WithoutQuantityExpected kEnglishNoQuantityCaps[] = {
{UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_DAY, "Day"},
{UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_WEEK, "Week"},
{UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_MONTH, "Month"},
+ {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_QUARTER, "Quarter"},
{UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_YEAR, "Year"},
{UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_MONDAY, "Monday"},
{UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_TUESDAY, "Tuesday"},
@@ -356,6 +367,7 @@ static WithoutQuantityExpected kEnglishNoQuantityShort[] = {
{UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_DAY, "tomorrow"},
{UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_WEEK, "next wk."},
{UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_MONTH, "next mo."},
+ {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_QUARTER, "next qtr."},
{UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_YEAR, "next yr."},
{UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_MONDAY, "next Mon."},
{UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_TUESDAY, "next Tue."},
@@ -370,6 +382,7 @@ static WithoutQuantityExpected kEnglishNoQuantityShort[] = {
{UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_DAY, "yesterday"},
{UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_WEEK, "last wk."},
{UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_MONTH, "last mo."},
+ {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_QUARTER, "last qtr."},
{UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_YEAR, "last yr."},
{UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_MONDAY, "last Mon."},
{UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_TUESDAY, "last Tue."},
@@ -382,6 +395,7 @@ static WithoutQuantityExpected kEnglishNoQuantityShort[] = {
{UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_DAY, "today"},
{UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_WEEK, "this wk."},
{UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_MONTH, "this mo."},
+ {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_QUARTER, "this qtr."},
{UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_YEAR, "this yr."},
{UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_MONDAY, "this Mon."},
{UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_TUESDAY, "this Tue."},
@@ -394,6 +408,7 @@ static WithoutQuantityExpected kEnglishNoQuantityShort[] = {
{UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_DAY, "day"},
{UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_WEEK, "wk."},
{UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_MONTH, "mo."},
+ {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_QUARTER, "qtr."},
{UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_YEAR, "yr."},
{UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_MONDAY, "Mo"},
{UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_TUESDAY, "Tu"},
@@ -412,6 +427,7 @@ static WithoutQuantityExpected kEnglishNoQuantityNarrow[] = {
{UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_DAY, "tomorrow"},
{UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_WEEK, "next wk."},
{UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_MONTH, "next mo."},
+ {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_QUARTER, "next qtr."},
{UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_YEAR, "next yr."},
{UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_MONDAY, "next M"},
{UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_TUESDAY, "next Tu"},
@@ -426,6 +442,7 @@ static WithoutQuantityExpected kEnglishNoQuantityNarrow[] = {
{UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_DAY, "yesterday"},
{UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_WEEK, "last wk."},
{UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_MONTH, "last mo."},
+ {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_QUARTER, "last qtr."},
{UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_YEAR, "last yr."},
{UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_MONDAY, "last M"},
{UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_TUESDAY, "last Tu"},
@@ -438,6 +455,7 @@ static WithoutQuantityExpected kEnglishNoQuantityNarrow[] = {
{UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_DAY, "today"},
{UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_WEEK, "this wk."},
{UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_MONTH, "this mo."},
+ {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_QUARTER, "this qtr."},
{UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_YEAR, "this yr."},
{UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_MONDAY, "this M"},
{UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_TUESDAY, "this Tu"},
@@ -450,6 +468,7 @@ static WithoutQuantityExpected kEnglishNoQuantityNarrow[] = {
{UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_DAY, "day"},
{UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_WEEK, "wk."},
{UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_MONTH, "mo."},
+ {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_QUARTER, "qtr."},
{UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_YEAR, "yr."},
{UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_MONDAY, "M"},
{UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_TUESDAY, "T"},
@@ -467,6 +486,261 @@ static WithoutQuantityExpected kSpanishNoQuantity[] = {
{UDAT_DIRECTION_LAST_2, UDAT_ABSOLUTE_DAY, "anteayer"}
};
+typedef struct WithQuantityExpectedRelativeDateTimeUnit {
+ double value;
+ URelativeDateTimeUnit unit;
+ const char *expected;
+} WithQuantityExpectedRelativeDateTimeUnit;
+
+static WithQuantityExpectedRelativeDateTimeUnit kEnglishFormatNumeric[] = {
+ {0.0, UDAT_REL_UNIT_SECOND, "in 0 seconds"},
+ {0.5, UDAT_REL_UNIT_SECOND, "in 0.5 seconds"},
+ {1.0, UDAT_REL_UNIT_SECOND, "in 1 second"},
+ {2.0, UDAT_REL_UNIT_SECOND, "in 2 seconds"},
+ {0.0, UDAT_REL_UNIT_MINUTE, "in 0 minutes"},
+ {0.5, UDAT_REL_UNIT_MINUTE, "in 0.5 minutes"},
+ {1.0, UDAT_REL_UNIT_MINUTE, "in 1 minute"},
+ {2.0, UDAT_REL_UNIT_MINUTE, "in 2 minutes"},
+ {0.0, UDAT_REL_UNIT_HOUR, "in 0 hours"},
+ {0.5, UDAT_REL_UNIT_HOUR, "in 0.5 hours"},
+ {1.0, UDAT_REL_UNIT_HOUR, "in 1 hour"},
+ {2.0, UDAT_REL_UNIT_HOUR, "in 2 hours"},
+ {0.0, UDAT_REL_UNIT_DAY, "in 0 days"},
+ {0.5, UDAT_REL_UNIT_DAY, "in 0.5 days"},
+ {1.0, UDAT_REL_UNIT_DAY, "in 1 day"},
+ {2.0, UDAT_REL_UNIT_DAY, "in 2 days"},
+ {0.0, UDAT_REL_UNIT_WEEK, "in 0 weeks"},
+ {0.5, UDAT_REL_UNIT_WEEK, "in 0.5 weeks"},
+ {1.0, UDAT_REL_UNIT_WEEK, "in 1 week"},
+ {2.0, UDAT_REL_UNIT_WEEK, "in 2 weeks"},
+ {0.0, UDAT_REL_UNIT_MONTH, "in 0 months"},
+ {0.5, UDAT_REL_UNIT_MONTH, "in 0.5 months"},
+ {1.0, UDAT_REL_UNIT_MONTH, "in 1 month"},
+ {2.0, UDAT_REL_UNIT_MONTH, "in 2 months"},
+ {0.0, UDAT_REL_UNIT_QUARTER, "in 0 quarters"},
+ {0.5, UDAT_REL_UNIT_QUARTER, "in 0.5 quarters"},
+ {1.0, UDAT_REL_UNIT_QUARTER, "in 1 quarter"},
+ {2.0, UDAT_REL_UNIT_QUARTER, "in 2 quarters"},
+ {0.0, UDAT_REL_UNIT_YEAR, "in 0 years"},
+ {0.5, UDAT_REL_UNIT_YEAR, "in 0.5 years"},
+ {1.0, UDAT_REL_UNIT_YEAR, "in 1 year"},
+ {2.0, UDAT_REL_UNIT_YEAR, "in 2 years"},
+ {0.0, UDAT_REL_UNIT_SUNDAY, "in 0 Sundays"},
+ {0.5, UDAT_REL_UNIT_SUNDAY, "in 0.5 Sundays"},
+ {1.0, UDAT_REL_UNIT_SUNDAY, "in 1 Sunday"},
+ {2.0, UDAT_REL_UNIT_SUNDAY, "in 2 Sundays"},
+ {0.0, UDAT_REL_UNIT_MONDAY, "in 0 Mondays"},
+ {0.5, UDAT_REL_UNIT_MONDAY, "in 0.5 Mondays"},
+ {1.0, UDAT_REL_UNIT_MONDAY, "in 1 Monday"},
+ {2.0, UDAT_REL_UNIT_MONDAY, "in 2 Mondays"},
+ {0.0, UDAT_REL_UNIT_TUESDAY, "in 0 Tuesdays"},
+ {0.5, UDAT_REL_UNIT_TUESDAY, "in 0.5 Tuesdays"},
+ {1.0, UDAT_REL_UNIT_TUESDAY, "in 1 Tuesday"},
+ {2.0, UDAT_REL_UNIT_TUESDAY, "in 2 Tuesdays"},
+ {0.0, UDAT_REL_UNIT_WEDNESDAY, "in 0 Wednesdays"},
+ {0.5, UDAT_REL_UNIT_WEDNESDAY, "in 0.5 Wednesdays"},
+ {1.0, UDAT_REL_UNIT_WEDNESDAY, "in 1 Wednesday"},
+ {2.0, UDAT_REL_UNIT_WEDNESDAY, "in 2 Wednesdays"},
+ {0.0, UDAT_REL_UNIT_THURSDAY, "in 0 Thursdays"},
+ {0.5, UDAT_REL_UNIT_THURSDAY, "in 0.5 Thursdays"},
+ {1.0, UDAT_REL_UNIT_THURSDAY, "in 1 Thursday"},
+ {2.0, UDAT_REL_UNIT_THURSDAY, "in 2 Thursdays"},
+ {0.0, UDAT_REL_UNIT_FRIDAY, "in 0 Fridays"},
+ {0.5, UDAT_REL_UNIT_FRIDAY, "in 0.5 Fridays"},
+ {1.0, UDAT_REL_UNIT_FRIDAY, "in 1 Friday"},
+ {2.0, UDAT_REL_UNIT_FRIDAY, "in 2 Fridays"},
+ {0.0, UDAT_REL_UNIT_SATURDAY, "in 0 Saturdays"},
+ {0.5, UDAT_REL_UNIT_SATURDAY, "in 0.5 Saturdays"},
+ {1.0, UDAT_REL_UNIT_SATURDAY, "in 1 Saturday"},
+ {2.0, UDAT_REL_UNIT_SATURDAY, "in 2 Saturdays"},
+
+ {-0.0, UDAT_REL_UNIT_SECOND, "0 seconds ago"},
+ {-0.5, UDAT_REL_UNIT_SECOND, "0.5 seconds ago"},
+ {-1.0, UDAT_REL_UNIT_SECOND, "1 second ago"},
+ {-2.0, UDAT_REL_UNIT_SECOND, "2 seconds ago"},
+ {-0.0, UDAT_REL_UNIT_MINUTE, "0 minutes ago"},
+ {-0.5, UDAT_REL_UNIT_MINUTE, "0.5 minutes ago"},
+ {-1.0, UDAT_REL_UNIT_MINUTE, "1 minute ago"},
+ {-2.0, UDAT_REL_UNIT_MINUTE, "2 minutes ago"},
+ {-0.0, UDAT_REL_UNIT_HOUR, "0 hours ago"},
+ {-0.5, UDAT_REL_UNIT_HOUR, "0.5 hours ago"},
+ {-1.0, UDAT_REL_UNIT_HOUR, "1 hour ago"},
+ {-2.0, UDAT_REL_UNIT_HOUR, "2 hours ago"},
+ {-0.0, UDAT_REL_UNIT_DAY, "0 days ago"},
+ {-0.5, UDAT_REL_UNIT_DAY, "0.5 days ago"},
+ {-1.0, UDAT_REL_UNIT_DAY, "1 day ago"},
+ {-2.0, UDAT_REL_UNIT_DAY, "2 days ago"},
+ {-0.0, UDAT_REL_UNIT_WEEK, "0 weeks ago"},
+ {-0.5, UDAT_REL_UNIT_WEEK, "0.5 weeks ago"},
+ {-1.0, UDAT_REL_UNIT_WEEK, "1 week ago"},
+ {-2.0, UDAT_REL_UNIT_WEEK, "2 weeks ago"},
+ {-0.0, UDAT_REL_UNIT_MONTH, "0 months ago"},
+ {-0.5, UDAT_REL_UNIT_MONTH, "0.5 months ago"},
+ {-1.0, UDAT_REL_UNIT_MONTH, "1 month ago"},
+ {-2.0, UDAT_REL_UNIT_MONTH, "2 months ago"},
+ {-0.0, UDAT_REL_UNIT_QUARTER, "0 quarters ago"},
+ {-0.5, UDAT_REL_UNIT_QUARTER, "0.5 quarters ago"},
+ {-1.0, UDAT_REL_UNIT_QUARTER, "1 quarter ago"},
+ {-2.0, UDAT_REL_UNIT_QUARTER, "2 quarters ago"},
+ {-0.0, UDAT_REL_UNIT_YEAR, "0 years ago"},
+ {-0.5, UDAT_REL_UNIT_YEAR, "0.5 years ago"},
+ {-1.0, UDAT_REL_UNIT_YEAR, "1 year ago"},
+ {-2.0, UDAT_REL_UNIT_YEAR, "2 years ago"},
+ {-0.0, UDAT_REL_UNIT_SUNDAY, "0 Sundays ago"},
+ {-0.5, UDAT_REL_UNIT_SUNDAY, "0.5 Sundays ago"},
+ {-1.0, UDAT_REL_UNIT_SUNDAY, "1 Sunday ago"},
+ {-2.0, UDAT_REL_UNIT_SUNDAY, "2 Sundays ago"},
+ {-0.0, UDAT_REL_UNIT_MONDAY, "0 Mondays ago"},
+ {-0.5, UDAT_REL_UNIT_MONDAY, "0.5 Mondays ago"},
+ {-1.0, UDAT_REL_UNIT_MONDAY, "1 Monday ago"},
+ {-2.0, UDAT_REL_UNIT_MONDAY, "2 Mondays ago"},
+ {-0.0, UDAT_REL_UNIT_TUESDAY, "0 Tuesdays ago"},
+ {-0.5, UDAT_REL_UNIT_TUESDAY, "0.5 Tuesdays ago"},
+ {-1.0, UDAT_REL_UNIT_TUESDAY, "1 Tuesday ago"},
+ {-2.0, UDAT_REL_UNIT_TUESDAY, "2 Tuesdays ago"},
+ {-0.0, UDAT_REL_UNIT_WEDNESDAY, "0 Wednesdays ago"},
+ {-0.5, UDAT_REL_UNIT_WEDNESDAY, "0.5 Wednesdays ago"},
+ {-1.0, UDAT_REL_UNIT_WEDNESDAY, "1 Wednesday ago"},
+ {-2.0, UDAT_REL_UNIT_WEDNESDAY, "2 Wednesdays ago"},
+ {-0.0, UDAT_REL_UNIT_THURSDAY, "0 Thursdays ago"},
+ {-0.5, UDAT_REL_UNIT_THURSDAY, "0.5 Thursdays ago"},
+ {-1.0, UDAT_REL_UNIT_THURSDAY, "1 Thursday ago"},
+ {-2.0, UDAT_REL_UNIT_THURSDAY, "2 Thursdays ago"},
+ {-0.0, UDAT_REL_UNIT_FRIDAY, "0 Fridays ago"},
+ {-0.5, UDAT_REL_UNIT_FRIDAY, "0.5 Fridays ago"},
+ {-1.0, UDAT_REL_UNIT_FRIDAY, "1 Friday ago"},
+ {-2.0, UDAT_REL_UNIT_FRIDAY, "2 Fridays ago"},
+ {-0.0, UDAT_REL_UNIT_SATURDAY, "0 Saturdays ago"},
+ {-0.5, UDAT_REL_UNIT_SATURDAY, "0.5 Saturdays ago"},
+ {-1.0, UDAT_REL_UNIT_SATURDAY, "1 Saturday ago"},
+ {-2.0, UDAT_REL_UNIT_SATURDAY, "2 Saturdays ago"}
+};
+
+static WithQuantityExpectedRelativeDateTimeUnit kEnglishFormat[] = {
+ {0.0, UDAT_REL_UNIT_SECOND, "now"},
+ {0.5, UDAT_REL_UNIT_SECOND, "in 0.5 seconds"},
+ {1.0, UDAT_REL_UNIT_SECOND, "in 1 second"},
+ {2.0, UDAT_REL_UNIT_SECOND, "in 2 seconds"},
+ {0.0, UDAT_REL_UNIT_MINUTE, "in 0 minutes"},
+ {0.5, UDAT_REL_UNIT_MINUTE, "in 0.5 minutes"},
+ {1.0, UDAT_REL_UNIT_MINUTE, "in 1 minute"},
+ {2.0, UDAT_REL_UNIT_MINUTE, "in 2 minutes"},
+ {0.0, UDAT_REL_UNIT_HOUR, "in 0 hours"},
+ {0.5, UDAT_REL_UNIT_HOUR, "in 0.5 hours"},
+ {1.0, UDAT_REL_UNIT_HOUR, "in 1 hour"},
+ {2.0, UDAT_REL_UNIT_HOUR, "in 2 hours"},
+ {0.0, UDAT_REL_UNIT_DAY, "today"},
+ {0.5, UDAT_REL_UNIT_DAY, "in 0.5 days"},
+ {1.0, UDAT_REL_UNIT_DAY, "tomorrow"},
+ {2.0, UDAT_REL_UNIT_DAY, "in 2 days"},
+ {0.0, UDAT_REL_UNIT_WEEK, "this week"},
+ {0.5, UDAT_REL_UNIT_WEEK, "in 0.5 weeks"},
+ {1.0, UDAT_REL_UNIT_WEEK, "next week"},
+ {2.0, UDAT_REL_UNIT_WEEK, "in 2 weeks"},
+ {0.0, UDAT_REL_UNIT_MONTH, "this month"},
+ {0.5, UDAT_REL_UNIT_MONTH, "in 0.5 months"},
+ {1.0, UDAT_REL_UNIT_MONTH, "next month"},
+ {2.0, UDAT_REL_UNIT_MONTH, "in 2 months"},
+ {0.0, UDAT_REL_UNIT_QUARTER, "this quarter"},
+ {0.5, UDAT_REL_UNIT_QUARTER, "in 0.5 quarters"},
+ {1.0, UDAT_REL_UNIT_QUARTER, "next quarter"},
+ {2.0, UDAT_REL_UNIT_QUARTER, "in 2 quarters"},
+ {0.0, UDAT_REL_UNIT_YEAR, "this year"},
+ {0.5, UDAT_REL_UNIT_YEAR, "in 0.5 years"},
+ {1.0, UDAT_REL_UNIT_YEAR, "next year"},
+ {2.0, UDAT_REL_UNIT_YEAR, "in 2 years"},
+ {0.0, UDAT_REL_UNIT_SUNDAY, "this Sunday"},
+ {0.5, UDAT_REL_UNIT_SUNDAY, "in 0.5 Sundays"},
+ {1.0, UDAT_REL_UNIT_SUNDAY, "next Sunday"},
+ {2.0, UDAT_REL_UNIT_SUNDAY, "in 2 Sundays"},
+ {0.0, UDAT_REL_UNIT_MONDAY, "this Monday"},
+ {0.5, UDAT_REL_UNIT_MONDAY, "in 0.5 Mondays"},
+ {1.0, UDAT_REL_UNIT_MONDAY, "next Monday"},
+ {2.0, UDAT_REL_UNIT_MONDAY, "in 2 Mondays"},
+ {0.0, UDAT_REL_UNIT_TUESDAY, "this Tuesday"},
+ {0.5, UDAT_REL_UNIT_TUESDAY, "in 0.5 Tuesdays"},
+ {1.0, UDAT_REL_UNIT_TUESDAY, "next Tuesday"},
+ {2.0, UDAT_REL_UNIT_TUESDAY, "in 2 Tuesdays"},
+ {0.0, UDAT_REL_UNIT_WEDNESDAY, "this Wednesday"},
+ {0.5, UDAT_REL_UNIT_WEDNESDAY, "in 0.5 Wednesdays"},
+ {1.0, UDAT_REL_UNIT_WEDNESDAY, "next Wednesday"},
+ {2.0, UDAT_REL_UNIT_WEDNESDAY, "in 2 Wednesdays"},
+ {0.0, UDAT_REL_UNIT_THURSDAY, "this Thursday"},
+ {0.5, UDAT_REL_UNIT_THURSDAY, "in 0.5 Thursdays"},
+ {1.0, UDAT_REL_UNIT_THURSDAY, "next Thursday"},
+ {2.0, UDAT_REL_UNIT_THURSDAY, "in 2 Thursdays"},
+ {0.0, UDAT_REL_UNIT_FRIDAY, "this Friday"},
+ {0.5, UDAT_REL_UNIT_FRIDAY, "in 0.5 Fridays"},
+ {1.0, UDAT_REL_UNIT_FRIDAY, "next Friday"},
+ {2.0, UDAT_REL_UNIT_FRIDAY, "in 2 Fridays"},
+ {0.0, UDAT_REL_UNIT_SATURDAY, "this Saturday"},
+ {0.5, UDAT_REL_UNIT_SATURDAY, "in 0.5 Saturdays"},
+ {1.0, UDAT_REL_UNIT_SATURDAY, "next Saturday"},
+ {2.0, UDAT_REL_UNIT_SATURDAY, "in 2 Saturdays"},
+
+ {-0.0, UDAT_REL_UNIT_SECOND, "now"},
+ {-0.5, UDAT_REL_UNIT_SECOND, "0.5 seconds ago"},
+ {-1.0, UDAT_REL_UNIT_SECOND, "1 second ago"},
+ {-2.0, UDAT_REL_UNIT_SECOND, "2 seconds ago"},
+ {-0.0, UDAT_REL_UNIT_MINUTE, "0 minutes ago"},
+ {-0.5, UDAT_REL_UNIT_MINUTE, "0.5 minutes ago"},
+ {-1.0, UDAT_REL_UNIT_MINUTE, "1 minute ago"},
+ {-2.0, UDAT_REL_UNIT_MINUTE, "2 minutes ago"},
+ {-0.0, UDAT_REL_UNIT_HOUR, "0 hours ago"},
+ {-0.5, UDAT_REL_UNIT_HOUR, "0.5 hours ago"},
+ {-1.0, UDAT_REL_UNIT_HOUR, "1 hour ago"},
+ {-2.0, UDAT_REL_UNIT_HOUR, "2 hours ago"},
+ {-0.0, UDAT_REL_UNIT_DAY, "today"},
+ {-0.5, UDAT_REL_UNIT_DAY, "0.5 days ago"},
+ {-1.0, UDAT_REL_UNIT_DAY, "yesterday"},
+ {-2.0, UDAT_REL_UNIT_DAY, "2 days ago"},
+ {-0.0, UDAT_REL_UNIT_WEEK, "this week"},
+ {-0.5, UDAT_REL_UNIT_WEEK, "0.5 weeks ago"},
+ {-1.0, UDAT_REL_UNIT_WEEK, "last week"},
+ {-2.0, UDAT_REL_UNIT_WEEK, "2 weeks ago"},
+ {-0.0, UDAT_REL_UNIT_MONTH, "this month"},
+ {-0.5, UDAT_REL_UNIT_MONTH, "0.5 months ago"},
+ {-1.0, UDAT_REL_UNIT_MONTH, "last month"},
+ {-2.0, UDAT_REL_UNIT_MONTH, "2 months ago"},
+ {-0.0, UDAT_REL_UNIT_QUARTER, "this quarter"},
+ {-0.5, UDAT_REL_UNIT_QUARTER, "0.5 quarters ago"},
+ {-1.0, UDAT_REL_UNIT_QUARTER, "last quarter"},
+ {-2.0, UDAT_REL_UNIT_QUARTER, "2 quarters ago"},
+ {-0.0, UDAT_REL_UNIT_YEAR, "this year"},
+ {-0.5, UDAT_REL_UNIT_YEAR, "0.5 years ago"},
+ {-1.0, UDAT_REL_UNIT_YEAR, "last year"},
+ {-2.0, UDAT_REL_UNIT_YEAR, "2 years ago"},
+ {-0.0, UDAT_REL_UNIT_SUNDAY, "this Sunday"},
+ {-0.5, UDAT_REL_UNIT_SUNDAY, "0.5 Sundays ago"},
+ {-1.0, UDAT_REL_UNIT_SUNDAY, "last Sunday"},
+ {-2.0, UDAT_REL_UNIT_SUNDAY, "2 Sundays ago"},
+ {-0.0, UDAT_REL_UNIT_MONDAY, "this Monday"},
+ {-0.5, UDAT_REL_UNIT_MONDAY, "0.5 Mondays ago"},
+ {-1.0, UDAT_REL_UNIT_MONDAY, "last Monday"},
+ {-2.0, UDAT_REL_UNIT_MONDAY, "2 Mondays ago"},
+ {-0.0, UDAT_REL_UNIT_TUESDAY, "this Tuesday"},
+ {-0.5, UDAT_REL_UNIT_TUESDAY, "0.5 Tuesdays ago"},
+ {-1.0, UDAT_REL_UNIT_TUESDAY, "last Tuesday"},
+ {-2.0, UDAT_REL_UNIT_TUESDAY, "2 Tuesdays ago"},
+ {-0.0, UDAT_REL_UNIT_WEDNESDAY, "this Wednesday"},
+ {-0.5, UDAT_REL_UNIT_WEDNESDAY, "0.5 Wednesdays ago"},
+ {-1.0, UDAT_REL_UNIT_WEDNESDAY, "last Wednesday"},
+ {-2.0, UDAT_REL_UNIT_WEDNESDAY, "2 Wednesdays ago"},
+ {-0.0, UDAT_REL_UNIT_THURSDAY, "this Thursday"},
+ {-0.5, UDAT_REL_UNIT_THURSDAY, "0.5 Thursdays ago"},
+ {-1.0, UDAT_REL_UNIT_THURSDAY, "last Thursday"},
+ {-2.0, UDAT_REL_UNIT_THURSDAY, "2 Thursdays ago"},
+ {-0.0, UDAT_REL_UNIT_FRIDAY, "this Friday"},
+ {-0.5, UDAT_REL_UNIT_FRIDAY, "0.5 Fridays ago"},
+ {-1.0, UDAT_REL_UNIT_FRIDAY, "last Friday"},
+ {-2.0, UDAT_REL_UNIT_FRIDAY, "2 Fridays ago"},
+ {-0.0, UDAT_REL_UNIT_SATURDAY, "this Saturday"},
+ {-0.5, UDAT_REL_UNIT_SATURDAY, "0.5 Saturdays ago"},
+ {-1.0, UDAT_REL_UNIT_SATURDAY, "last Saturday"},
+ {-2.0, UDAT_REL_UNIT_SATURDAY, "2 Saturdays ago"}
+};
+
+
class RelativeDateTimeFormatterTest : public IntlTest {
public:
RelativeDateTimeFormatterTest() {
@@ -491,12 +765,20 @@ private:
void TestGetters();
void TestCombineDateAndTime();
void TestBadDisplayContext();
+ void TestFormat();
+ void TestFormatNumeric();
+ void TestLocales();
void RunTest(
const Locale& locale,
const WithQuantityExpected* expectedResults,
int32_t expectedResultLength);
void RunTest(
const Locale& locale,
+ const WithQuantityExpectedRelativeDateTimeUnit* expectedResults,
+ int32_t expectedResultLength,
+ bool numeric);
+ void RunTest(
+ const Locale& locale,
UDateRelativeDateTimeFormatterStyle style,
const WithQuantityExpected* expectedResults,
int32_t expectedResultLength);
@@ -516,6 +798,12 @@ private:
const char *description);
void RunTest(
const RelativeDateTimeFormatter& fmt,
+ const WithQuantityExpectedRelativeDateTimeUnit* expectedResults,
+ int32_t expectedResultLength,
+ const char *description,
+ bool numeric);
+ void RunTest(
+ const RelativeDateTimeFormatter& fmt,
const WithoutQuantityExpected* expectedResults,
int32_t expectedResultLength,
const char *description);
@@ -525,6 +813,11 @@ private:
const char* description);
void CheckExpectedResult(
const RelativeDateTimeFormatter& fmt,
+ const WithQuantityExpectedRelativeDateTimeUnit& expectedResults,
+ const char* description,
+ bool numeric);
+ void CheckExpectedResult(
+ const RelativeDateTimeFormatter& fmt,
const WithoutQuantityExpected& expectedResult,
const char* description);
void VerifyIllegalArgument(
@@ -562,6 +855,9 @@ void RelativeDateTimeFormatterTest::runIndexedTest(
TESTCASE_AUTO(TestCombineDateAndTime);
TESTCASE_AUTO(TestBadDisplayContext);
TESTCASE_AUTO(TestSidewaysDataLoading);
+ TESTCASE_AUTO(TestFormat);
+ TESTCASE_AUTO(TestFormatNumeric);
+ TESTCASE_AUTO(TestLocales);
TESTCASE_AUTO_END;
}
@@ -767,6 +1063,21 @@ void RelativeDateTimeFormatterTest::RunTest(
void RelativeDateTimeFormatterTest::RunTest(
const Locale& locale,
+ const WithQuantityExpectedRelativeDateTimeUnit* expectedResults,
+ int32_t expectedResultLength,
+ bool numeric) {
+ UErrorCode status = U_ZERO_ERROR;
+ RelativeDateTimeFormatter fmt(locale, status);
+ if (U_FAILURE(status)) {
+ dataerrln("Unable to create format object - %s", u_errorName(status));
+ return;
+ }
+ RunTest(fmt, expectedResults, expectedResultLength, locale.getName(), numeric);
+}
+
+
+void RelativeDateTimeFormatterTest::RunTest(
+ const Locale& locale,
UDateRelativeDateTimeFormatterStyle style,
const WithQuantityExpected* expectedResults,
int32_t expectedResultLength) {
@@ -820,6 +1131,17 @@ void RelativeDateTimeFormatterTest::RunTest(
void RelativeDateTimeFormatterTest::RunTest(
const RelativeDateTimeFormatter& fmt,
+ const WithQuantityExpectedRelativeDateTimeUnit* expectedResults,
+ int32_t expectedResultLength,
+ const char *description,
+ bool numeric) {
+ for (int32_t i = 0; i < expectedResultLength; ++i) {
+ CheckExpectedResult(fmt, expectedResults[i], description, numeric);
+ }
+}
+
+void RelativeDateTimeFormatterTest::RunTest(
+ const RelativeDateTimeFormatter& fmt,
const WithoutQuantityExpected* expectedResults,
int32_t expectedResultLength,
const char *description) {
@@ -854,6 +1176,34 @@ void RelativeDateTimeFormatterTest::CheckExpectedResult(
void RelativeDateTimeFormatterTest::CheckExpectedResult(
const RelativeDateTimeFormatter& fmt,
+ const WithQuantityExpectedRelativeDateTimeUnit& expectedResult,
+ const char* description,
+ bool numeric) {
+ UErrorCode status = U_ZERO_ERROR;
+ UnicodeString actual;
+ if (numeric) {
+ fmt.formatNumeric(expectedResult.value, expectedResult.unit, actual, status);
+ } else {
+ fmt.format(expectedResult.value, expectedResult.unit, actual, status);
+ }
+ UnicodeString expected(expectedResult.expected, -1, US_INV);
+ expected = expected.unescape();
+ char buffer[256];
+ sprintf(
+ buffer,
+ "%s, %f, %s",
+ description,
+ expectedResult.value,
+ RelativeDateTimeUnitStr(expectedResult.unit));
+ if (actual != expected) {
+ errln(UnicodeString("Fail: Expected: ") + expected
+ + ", Got: " + actual
+ + ", For: " + buffer);
+ }
+}
+
+void RelativeDateTimeFormatterTest::CheckExpectedResult(
+ const RelativeDateTimeFormatter& fmt,
const WithoutQuantityExpected& expectedResult,
const char* description) {
UErrorCode status = U_ZERO_ERROR;
@@ -942,6 +1292,27 @@ void RelativeDateTimeFormatterTest::TestSidewaysDataLoading(void) {
assertEquals("next year: ", expected, actual);
}
+void RelativeDateTimeFormatterTest::TestFormatNumeric() {
+ RunTest("en", kEnglishFormatNumeric, UPRV_LENGTHOF(kEnglishFormatNumeric), true);
+}
+
+void RelativeDateTimeFormatterTest::TestFormat() {
+ RunTest("en", kEnglishFormat, UPRV_LENGTHOF(kEnglishFormat), false);
+}
+
+void RelativeDateTimeFormatterTest::TestLocales() {
+ int32_t numLocales = 0;
+ const Locale *availableLocales = Locale::getAvailableLocales(numLocales);
+ std::vector<std::unique_ptr<RelativeDateTimeFormatter>> allFormatters;
+ for (int localeIdx=0; localeIdx<numLocales; localeIdx++) {
+ const Locale &loc = availableLocales[localeIdx];
+ UErrorCode status = U_ZERO_ERROR;
+ std::unique_ptr<RelativeDateTimeFormatter> rdtf(new RelativeDateTimeFormatter(loc, status));
+ allFormatters.push_back(std::move(rdtf));
+ assertSuccess(loc.getName(), status);
+ }
+}
+
static const char *kLast2 = "Last_2";
static const char *kLast = "Last";
static const char *kThis = "This";
@@ -955,7 +1326,15 @@ static const char *kHours = "Hours";
static const char *kDays = "Days";
static const char *kWeeks = "Weeks";
static const char *kMonths = "Months";
+static const char *kQuarters = "Quarters";
static const char *kYears = "Years";
+static const char *kSundays = "Sundays";
+static const char *kMondays = "Mondays";
+static const char *kTuesdays = "Tuesdays";
+static const char *kWednesdays = "Wednesdays";
+static const char *kThursdays = "Thursdays";
+static const char *kFridays = "Fridays";
+static const char *kSaturdays = "Saturdays";
static const char *kSunday = "Sunday";
static const char *kMonday = "Monday";
@@ -967,6 +1346,7 @@ static const char *kSaturday = "Saturday";
static const char *kDay = "Day";
static const char *kWeek = "Week";
static const char *kMonth = "Month";
+static const char *kQuarter = "Quarter";
static const char *kYear = "Year";
static const char *kNow = "Now";
@@ -1016,6 +1396,45 @@ static const char *RelativeUnitStr(
return kUndefined;
}
+static const char *RelativeDateTimeUnitStr(
+ URelativeDateTimeUnit unit) {
+ switch (unit) {
+ case UDAT_REL_UNIT_SECOND:
+ return kSeconds;
+ case UDAT_REL_UNIT_MINUTE:
+ return kMinutes;
+ case UDAT_REL_UNIT_HOUR:
+ return kHours;
+ case UDAT_REL_UNIT_DAY:
+ return kDays;
+ case UDAT_REL_UNIT_WEEK:
+ return kWeeks;
+ case UDAT_REL_UNIT_MONTH:
+ return kMonths;
+ case UDAT_REL_UNIT_QUARTER:
+ return kQuarters;
+ case UDAT_REL_UNIT_YEAR:
+ return kYears;
+ case UDAT_REL_UNIT_SUNDAY:
+ return kSundays;
+ case UDAT_REL_UNIT_MONDAY:
+ return kMondays;
+ case UDAT_REL_UNIT_TUESDAY:
+ return kTuesdays;
+ case UDAT_REL_UNIT_WEDNESDAY:
+ return kWednesdays;
+ case UDAT_REL_UNIT_THURSDAY:
+ return kThursdays;
+ case UDAT_REL_UNIT_FRIDAY:
+ return kFridays;
+ case UDAT_REL_UNIT_SATURDAY:
+ return kSaturdays;
+ default:
+ return kUndefined;
+ }
+ return kUndefined;
+}
+
static const char *AbsoluteUnitStr(
UDateAbsoluteUnit unit) {
switch (unit) {
@@ -1039,6 +1458,8 @@ static const char *AbsoluteUnitStr(
return kWeek;
case UDAT_ABSOLUTE_MONTH:
return kMonth;
+ case UDAT_ABSOLUTE_QUARTER:
+ return kQuarter;
case UDAT_ABSOLUTE_YEAR:
return kYear;
case UDAT_ABSOLUTE_NOW:
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/static_unisets_test.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/static_unisets_test.cpp
new file mode 100644
index 00000000000..bfe69963526
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/static_unisets_test.cpp
@@ -0,0 +1,119 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+#include "numbertest.h"
+#include "static_unicode_sets.h"
+#include "unicode/dcfmtsym.h"
+
+using icu::unisets::get;
+
+class StaticUnicodeSetsTest : public IntlTest {
+ public:
+ void testSetCoverage();
+ void testNonEmpty();
+
+ void runIndexedTest(int32_t index, UBool exec, const char *&name, char *par = 0);
+
+ private:
+ void assertInSet(const UnicodeString& localeName, const UnicodeString &setName,
+ const UnicodeSet& set, const UnicodeString& str);
+ void assertInSet(const UnicodeString& localeName, const UnicodeString &setName,
+ const UnicodeSet& set, UChar32 cp);
+};
+
+extern IntlTest *createStaticUnicodeSetsTest() {
+ return new StaticUnicodeSetsTest();
+}
+
+void StaticUnicodeSetsTest::runIndexedTest(int32_t index, UBool exec, const char*&name, char*) {
+ if (exec) {
+ logln("TestSuite StaticUnicodeSetsTest: ");
+ }
+ TESTCASE_AUTO_BEGIN;
+ TESTCASE_AUTO(testSetCoverage);
+ TESTCASE_AUTO(testNonEmpty);
+ TESTCASE_AUTO_END;
+}
+
+void StaticUnicodeSetsTest::testSetCoverage() {
+ UErrorCode status = U_ZERO_ERROR;
+
+ // Lenient comma/period should be supersets of strict comma/period;
+ // it also makes the coverage logic cheaper.
+ assertTrue(
+ "COMMA should be superset of STRICT_COMMA",
+ get(unisets::COMMA)->containsAll(*get(unisets::STRICT_COMMA)));
+ assertTrue(
+ "PERIOD should be superset of STRICT_PERIOD",
+ get(unisets::PERIOD)->containsAll(*get(unisets::STRICT_PERIOD)));
+
+ UnicodeSet decimals;
+ decimals.addAll(*get(unisets::STRICT_COMMA));
+ decimals.addAll(*get(unisets::STRICT_PERIOD));
+ decimals.freeze();
+ UnicodeSet grouping;
+ grouping.addAll(decimals);
+ grouping.addAll(*get(unisets::OTHER_GROUPING_SEPARATORS));
+ decimals.freeze();
+
+ const UnicodeSet &plusSign = *get(unisets::PLUS_SIGN);
+ const UnicodeSet &minusSign = *get(unisets::MINUS_SIGN);
+ const UnicodeSet &percent = *get(unisets::PERCENT_SIGN);
+ const UnicodeSet &permille = *get(unisets::PERMILLE_SIGN);
+ const UnicodeSet &infinity = *get(unisets::INFINITY_KEY);
+
+ int32_t localeCount;
+ const Locale* allAvailableLocales = Locale::getAvailableLocales(localeCount);
+ for (int32_t i = 0; i < localeCount; i++) {
+ Locale locale = allAvailableLocales[i];
+ DecimalFormatSymbols dfs(locale, status);
+ UnicodeString localeName;
+ locale.getDisplayName(localeName);
+ assertSuccess(UnicodeString("Making DFS for ") + localeName, status);
+
+#define ASSERT_IN_SET(name, foo) assertInSet(localeName, UnicodeString("" #name ""), name, foo)
+ ASSERT_IN_SET(decimals, dfs.getConstSymbol(DecimalFormatSymbols::kDecimalSeparatorSymbol));
+ ASSERT_IN_SET(grouping, dfs.getConstSymbol(DecimalFormatSymbols::kGroupingSeparatorSymbol));
+ ASSERT_IN_SET(plusSign, dfs.getConstSymbol(DecimalFormatSymbols::kPlusSignSymbol));
+ ASSERT_IN_SET(minusSign, dfs.getConstSymbol(DecimalFormatSymbols::kMinusSignSymbol));
+ ASSERT_IN_SET(percent, dfs.getConstSymbol(DecimalFormatSymbols::kPercentSymbol));
+ ASSERT_IN_SET(permille, dfs.getConstSymbol(DecimalFormatSymbols::kPerMillSymbol));
+ ASSERT_IN_SET(infinity, dfs.getConstSymbol(DecimalFormatSymbols::kInfinitySymbol));
+ }
+}
+
+void StaticUnicodeSetsTest::testNonEmpty() {
+ for (int32_t i=0; i<unisets::COUNT; i++) {
+ if (i == unisets::EMPTY) {
+ continue;
+ }
+ const UnicodeSet* uset = get(static_cast<unisets::Key>(i));
+ // Can fail if no data:
+ assertFalse(UnicodeString("Set should not be empty: ") + i, uset->isEmpty(), FALSE, TRUE);
+ }
+}
+
+void StaticUnicodeSetsTest::assertInSet(const UnicodeString &localeName, const UnicodeString &setName,
+ const UnicodeSet &set, const UnicodeString &str) {
+ if (str.countChar32(0, str.length()) != 1) {
+ // Ignore locale strings with more than one code point (usually a bidi mark)
+ return;
+ }
+ assertInSet(localeName, setName, set, str.char32At(0));
+}
+
+void StaticUnicodeSetsTest::assertInSet(const UnicodeString &localeName, const UnicodeString &setName,
+ const UnicodeSet &set, UChar32 cp) {
+ // If this test case fails, add the specified code point to the corresponding set in
+ // UnicodeSetStaticCache.java and numparse_unisets.cpp
+ assertTrue(
+ localeName + UnicodeString(u" ") + UnicodeString(cp) + UnicodeString(u" is missing in ") +
+ setName, set.contains(cp));
+}
+
+
+#endif
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/strcase.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/strcase.cpp
index 83444bf3c90..3fb05849925 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/strcase.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/strcase.cpp
@@ -67,6 +67,8 @@ public:
void TestLongUnicodeString();
void TestBug13127();
void TestInPlaceTitle();
+ void TestCaseMapEditsIteratorDocs();
+ void TestCaseMapGreekExtended();
private:
void assertGreekUpper(const char16_t *s, const char16_t *expected);
@@ -111,6 +113,8 @@ StringCaseTest::runIndexedTest(int32_t index, UBool exec, const char *&name, cha
TESTCASE_AUTO(TestBug13127);
TESTCASE_AUTO(TestInPlaceTitle);
#endif
+ TESTCASE_AUTO(TestCaseMapEditsIteratorDocs);
+ TESTCASE_AUTO(TestCaseMapGreekExtended);
TESTCASE_AUTO_END;
}
@@ -1005,7 +1009,7 @@ void StringCaseTest::TestCopyMoveEdits() {
// std::move trouble on these platforms.
// See https://ssl.icu-project.org/trac/ticket/13393
-#if !UPRV_INCOMPLETE_CPP11_SUPPORT && !(U_PLATFORM == U_PF_AIX || U_PLATFORM == U_PF_OS390)
+#if !(U_PLATFORM == U_PF_AIX || U_PLATFORM == U_PF_OS390)
// move constructor empties object with heap array
Edits d(std::move(a));
assertEquals("d: move-constructed many edits, length delta", 250, d.lengthDelta());
@@ -1533,3 +1537,167 @@ void StringCaseTest::TestInPlaceTitle() {
assertEquals("u_strToTitle(in-place)", expected, s);
}
#endif
+
+void StringCaseTest::TestCaseMapEditsIteratorDocs() {
+ IcuTestErrorCode status(*this, "TestCaseMapEditsIteratorDocs");
+ const char16_t* input = u"abcßDeF";
+ int32_t inputLength = u_strlen(input);
+ // output: "abcssdef"
+
+ char16_t output[10];
+ Edits edits;
+ CaseMap::fold(0, input, -1, output, 10, &edits, status);
+
+ static const char16_t* fineIteratorExpected[] = {
+ u"{ src[0..3] ≡ dest[0..3] (no-change) }",
+ u"{ src[3..4] ⇝ dest[3..5], repl[0..2] }",
+ u"{ src[4..5] ⇝ dest[5..6], repl[2..3] }",
+ u"{ src[5..6] ≡ dest[6..7] (no-change) }",
+ u"{ src[6..7] ⇝ dest[7..8], repl[3..4] }",
+ };
+ static const char16_t* fineChangesIteratorExpected[] = {
+ u"{ src[3..4] ⇝ dest[3..5], repl[0..2] }",
+ u"{ src[4..5] ⇝ dest[5..6], repl[2..3] }",
+ u"{ src[6..7] ⇝ dest[7..8], repl[3..4] }",
+ };
+ static const char16_t* coarseIteratorExpected[] = {
+ u"{ src[0..3] ≡ dest[0..3] (no-change) }",
+ u"{ src[3..5] ⇝ dest[3..6], repl[0..3] }",
+ u"{ src[5..6] ≡ dest[6..7] (no-change) }",
+ u"{ src[6..7] ⇝ dest[7..8], repl[3..4] }",
+ };
+ static const char16_t* coarseChangesIteratorExpected[] = {
+ u"{ src[3..5] ⇝ dest[3..6], repl[0..3] }",
+ u"{ src[6..7] ⇝ dest[7..8], repl[3..4] }",
+ };
+
+ // Expected destination indices when source index is queried
+ static int32_t expectedDestFineEditIndices[] = {0, 0, 0, 3, 5, 6, 7};
+ static int32_t expectedDestCoarseEditIndices[] = {0, 0, 0, 3, 3, 6, 7};
+ static int32_t expectedDestFineStringIndices[] = {0, 1, 2, 3, 5, 6, 7};
+ static int32_t expectedDestCoarseStringIndices[] = {0, 1, 2, 3, 6, 6, 7};
+
+ // Expected source indices when destination index is queried
+ static int32_t expectedSrcFineEditIndices[] = { 0, 0, 0, 3, 3, 4, 5, 6 };
+ static int32_t expectedSrcCoarseEditIndices[] = { 0, 0, 0, 3, 3, 3, 5, 6 };
+ static int32_t expectedSrcFineStringIndices[] = { 0, 1, 2, 3, 4, 4, 5, 6 };
+ static int32_t expectedSrcCoarseStringIndices[] = { 0, 1, 2, 3, 5, 5, 5, 6 };
+
+ // Demonstrate the iterator next() method:
+ Edits::Iterator fineIterator = edits.getFineIterator();
+ int i = 0;
+ UnicodeString toString;
+ while (fineIterator.next(status)) {
+ UnicodeString expected = fineIteratorExpected[i++];
+ assertEquals(UnicodeString(u"Iteration #") + i,
+ expected,
+ fineIterator.toString(toString.remove()));
+ }
+ Edits::Iterator fineChangesIterator = edits.getFineChangesIterator();
+ i = 0;
+ while (fineChangesIterator.next(status)) {
+ UnicodeString expected = fineChangesIteratorExpected[i++];
+ assertEquals(UnicodeString(u"Iteration #") + i,
+ expected,
+ fineChangesIterator.toString(toString.remove()));
+ }
+ Edits::Iterator coarseIterator = edits.getCoarseIterator();
+ i = 0;
+ while (coarseIterator.next(status)) {
+ UnicodeString expected = coarseIteratorExpected[i++];
+ assertEquals(UnicodeString(u"Iteration #") + i,
+ expected,
+ coarseIterator.toString(toString.remove()));
+ }
+ Edits::Iterator coarseChangesIterator = edits.getCoarseChangesIterator();
+ i = 0;
+ while (coarseChangesIterator.next(status)) {
+ UnicodeString expected = coarseChangesIteratorExpected[i++];
+ assertEquals(UnicodeString(u"Iteration #") + i,
+ expected,
+ coarseChangesIterator.toString(toString.remove()));
+ }
+
+ // Demonstrate the iterator indexing methods:
+ // fineIterator should have the same behavior as fineChangesIterator, and
+ // coarseIterator should have the same behavior as coarseChangesIterator.
+ for (int32_t srcIndex=0; srcIndex<inputLength; srcIndex++) {
+ fineIterator.findSourceIndex(srcIndex, status);
+ fineChangesIterator.findSourceIndex(srcIndex, status);
+ coarseIterator.findSourceIndex(srcIndex, status);
+ coarseChangesIterator.findSourceIndex(srcIndex, status);
+
+ assertEquals(UnicodeString("Source index: ") + srcIndex,
+ expectedDestFineEditIndices[srcIndex],
+ fineIterator.destinationIndex());
+ assertEquals(UnicodeString("Source index: ") + srcIndex,
+ expectedDestFineEditIndices[srcIndex],
+ fineChangesIterator.destinationIndex());
+ assertEquals(UnicodeString("Source index: ") + srcIndex,
+ expectedDestCoarseEditIndices[srcIndex],
+ coarseIterator.destinationIndex());
+ assertEquals(UnicodeString("Source index: ") + srcIndex,
+ expectedDestCoarseEditIndices[srcIndex],
+ coarseChangesIterator.destinationIndex());
+
+ assertEquals(UnicodeString("Source index: ") + srcIndex,
+ expectedDestFineStringIndices[srcIndex],
+ fineIterator.destinationIndexFromSourceIndex(srcIndex, status));
+ assertEquals(UnicodeString("Source index: ") + srcIndex,
+ expectedDestFineStringIndices[srcIndex],
+ fineChangesIterator.destinationIndexFromSourceIndex(srcIndex, status));
+ assertEquals(UnicodeString("Source index: ") + srcIndex,
+ expectedDestCoarseStringIndices[srcIndex],
+ coarseIterator.destinationIndexFromSourceIndex(srcIndex, status));
+ assertEquals(UnicodeString("Source index: ") + srcIndex,
+ expectedDestCoarseStringIndices[srcIndex],
+ coarseChangesIterator.destinationIndexFromSourceIndex(srcIndex, status));
+ }
+ for (int32_t destIndex=0; destIndex<inputLength; destIndex++) {
+ fineIterator.findDestinationIndex(destIndex, status);
+ fineChangesIterator.findDestinationIndex(destIndex, status);
+ coarseIterator.findDestinationIndex(destIndex, status);
+ coarseChangesIterator.findDestinationIndex(destIndex, status);
+
+ assertEquals(UnicodeString("Destination index: ") + destIndex,
+ expectedSrcFineEditIndices[destIndex],
+ fineIterator.sourceIndex());
+ assertEquals(UnicodeString("Destination index: ") + destIndex,
+ expectedSrcFineEditIndices[destIndex],
+ fineChangesIterator.sourceIndex());
+ assertEquals(UnicodeString("Destination index: ") + destIndex,
+ expectedSrcCoarseEditIndices[destIndex],
+ coarseIterator.sourceIndex());
+ assertEquals(UnicodeString("Destination index: ") + destIndex,
+ expectedSrcCoarseEditIndices[destIndex],
+ coarseChangesIterator.sourceIndex());
+
+ assertEquals(UnicodeString("Destination index: ") + destIndex,
+ expectedSrcFineStringIndices[destIndex],
+ fineIterator.sourceIndexFromDestinationIndex(destIndex, status));
+ assertEquals(UnicodeString("Destination index: ") + destIndex,
+ expectedSrcFineStringIndices[destIndex],
+ fineChangesIterator.sourceIndexFromDestinationIndex(destIndex, status));
+ assertEquals(UnicodeString("Destination index: ") + destIndex,
+ expectedSrcCoarseStringIndices[destIndex],
+ coarseIterator.sourceIndexFromDestinationIndex(destIndex, status));
+ assertEquals(UnicodeString("Destination index: ") + destIndex,
+ expectedSrcCoarseStringIndices[destIndex],
+ coarseChangesIterator.sourceIndexFromDestinationIndex(destIndex, status));
+ }
+}
+
+void StringCaseTest::TestCaseMapGreekExtended() {
+ // Ticket 13851
+ UnicodeString s(u"\u1F80\u1F88\u1FFC");
+ UnicodeString result(s);
+ result.toLower(Locale::getRoot());
+ assertEquals(u"lower", u"\u1F80\u1F80\u1FF3", result);
+#if !UCONFIG_NO_BREAK_ITERATION
+ result = s;
+ result.toTitle(nullptr, Locale::getRoot());
+ assertEquals(u"title", u"\u1F88\u1F80\u1FF3", result);
+#endif
+}
+
+//#endif
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/strtest.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/strtest.cpp
index d8fd7a0042a..b95b525296e 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/strtest.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/strtest.cpp
@@ -551,6 +551,28 @@ StringTest::TestCharString() {
if (chStr.length() != 0) {
errln("%s:%d expected length() = 0, got %d", __FILE__, __LINE__, chStr.length());
}
+
+ {
+ CharString s1("Short string", errorCode);
+ CharString s2(std::move(s1));
+ assertEquals("s2 should have content of s1", "Short string", s2.data());
+ CharString s3("Dummy", errorCode);
+ s3 = std::move(s2);
+ assertEquals("s3 should have content of s2", "Short string", s3.data());
+ }
+
+ {
+ CharString s1("Long string over 40 characters to trigger heap allocation", errorCode);
+ CharString s2(std::move(s1));
+ assertEquals("s2 should have content of s1",
+ "Long string over 40 characters to trigger heap allocation",
+ s2.data());
+ CharString s3("Dummy string with over 40 characters to trigger heap allocation", errorCode);
+ s3 = std::move(s2);
+ assertEquals("s3 should have content of s2",
+ "Long string over 40 characters to trigger heap allocation",
+ s3.data());
+ }
}
void
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/testidna.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/testidna.cpp
index acda1f60bc1..e5eb44eb75a 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/testidna.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/testidna.cpp
@@ -473,6 +473,10 @@ void TestIDNA::testAPI(const UChar* src, const UChar* expected, const char* test
// test null-terminated source and return value of number of UChars required
destLen = func(src,-1,NULL,0,options, &parseError , &status);
+ if (status == U_FILE_ACCESS_ERROR) {
+ dataerrln("U_FILE_ACCESS_ERROR. Skipping the remainder of this test.");
+ return;
+ }
if(status == U_BUFFER_OVERFLOW_ERROR){
status = U_ZERO_ERROR; // reset error code
if(destLen+1 < MAX_DEST_SIZE){
@@ -1297,17 +1301,25 @@ void TestIDNA::TestIDNToUnicode(){
testIDNToUnicode("uidna_IDNToUnicode", uidna_IDNToUnicode);
}
void TestIDNA::TestCompare(){
- testCompare("uidna_compare",uidna_compare);
+ UErrorCode status = U_ZERO_ERROR;
+ uidna_close(uidna_openUTS46(0, &status)); // Fail quickly if no data.
+ if (assertSuccess("", status, true, __FILE__, __LINE__)) {
+ testCompare("uidna_compare",uidna_compare);
+ }
}
void TestIDNA::TestErrorCases(){
testErrorCases( "uidna_IDNToASCII",uidna_IDNToASCII,
"uidna_IDNToUnicode",uidna_IDNToUnicode);
}
void TestIDNA::TestRootLabelSeparator(){
- testRootLabelSeparator( "uidna_compare",uidna_compare,
- "uidna_IDNToASCII", uidna_IDNToASCII,
- "uidna_IDNToUnicode",uidna_IDNToUnicode
- );
+ UErrorCode status = U_ZERO_ERROR;
+ uidna_close(uidna_openUTS46(0, &status)); // Fail quickly if no data.
+ if (assertSuccess("", status, true, __FILE__, __LINE__)) {
+ testRootLabelSeparator( "uidna_compare",uidna_compare,
+ "uidna_IDNToASCII", uidna_IDNToASCII,
+ "uidna_IDNToUnicode",uidna_IDNToUnicode
+ );
+ }
}
void TestIDNA::TestChaining(){
testChaining("uidna_toASCII",uidna_toASCII, "uidna_toUnicode", uidna_toUnicode);
@@ -1529,14 +1541,14 @@ void TestIDNA::TestCompareReferenceImpl(){
int32_t srcLen = 0;
// data even OK?
- {
- UErrorCode dataStatus = U_ZERO_ERROR;
- loadTestData(dataStatus);
- if(U_FAILURE(dataStatus)) {
+ UErrorCode dataStatus = U_ZERO_ERROR;
+ loadTestData(dataStatus);
+ if(U_FAILURE(dataStatus)) {
dataerrln("Couldn't load test data: %s\n", u_errorName(dataStatus)); // save us from thousands and thousands of errors
return;
- }
}
+ uidna_close(uidna_openUTS46(0, &dataStatus)); // Fail quickly if no data.
+ if (!assertSuccess("", dataStatus, true, __FILE__, __LINE__)) { return; }
for (int32_t i = 0; i <= 0x10FFFF; i++){
if (quick == TRUE && i > 0x0FFF){
@@ -1561,13 +1573,9 @@ void TestIDNA::TestCompareReferenceImpl(){
void TestIDNA::TestRefIDNA(){
UErrorCode status = U_ZERO_ERROR;
- getInstance(status); // Init prep
- if (U_FAILURE(status)) {
- if (status == U_FILE_ACCESS_ERROR) {
- dataerrln("Test could not initialize. Got %s", u_errorName(status));
- }
- return;
- }
+
+ getInstance(status); // Init prep. Abort test early if no data.
+ if (!assertSuccess("", status, true, __FILE__, __LINE__)) { return; }
testToASCII("idnaref_toASCII", idnaref_toASCII);
testToUnicode("idnaref_toUnicode", idnaref_toUnicode);
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/tmsgfmt.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/tmsgfmt.cpp
index d4e6ab69521..7249001f5eb 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/tmsgfmt.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/tmsgfmt.cpp
@@ -71,6 +71,7 @@ TestMessageFormat::runIndexedTest(int32_t index, UBool exec,
TESTCASE_AUTO(TestSelectOrdinal);
TESTCASE_AUTO(TestDecimals);
TESTCASE_AUTO(TestArgIsPrefixOfAnother);
+ TESTCASE_AUTO(TestMessageFormatNumberSkeleton);
TESTCASE_AUTO_END;
}
@@ -999,8 +1000,7 @@ void TestMessageFormat::testSetLocale()
UnicodeString compareStrGer = "At <time> on 08.08.1997, you made a deposit of ";
compareStrGer += "456,83";
compareStrGer += (UChar) 0x00a0;
- compareStrGer += (UChar) 0x00a4;
- compareStrGer += ".";
+ compareStrGer += "XXX.";
MessageFormat msg( formatStr, err);
result = "";
@@ -1014,13 +1014,15 @@ void TestMessageFormat::testSetLocale()
logln(result);
if (result != compareStrEng) {
- dataerrln("*** MSG format err. - %s", u_errorName(err));
+ char bbuf[96];
+ result.extract(0, result.length(), bbuf, sizeof(bbuf));
+ dataerrln("*** MSG format err. - %s; result was %s", u_errorName(err), bbuf);
}
msg.setLocale(Locale::getEnglish());
UBool getLocale_ok = TRUE;
if (msg.getLocale() != Locale::getEnglish()) {
- errln("*** MSG getLocal err.");
+ errln("*** MSG getLocale err.");
getLocale_ok = FALSE;
}
@@ -1800,11 +1802,11 @@ void TestMessageFormat::testCoverage(void) {
void TestMessageFormat::testGetFormatNames() {
IcuTestErrorCode errorCode(*this, "testGetFormatNames");
MessageFormat msgfmt("Hello, {alice,number} {oops,date,full} {zip,spellout} World.", Locale::getRoot(), errorCode);
- if(errorCode.logDataIfFailureAndReset("MessageFormat() failed")) {
+ if(errorCode.errDataIfFailureAndReset("MessageFormat() failed")) {
return;
}
LocalPointer<StringEnumeration> names(msgfmt.getFormatNames(errorCode));
- if(errorCode.logIfFailureAndReset("msgfmt.getFormatNames() failed")) {
+ if(errorCode.errIfFailureAndReset("msgfmt.getFormatNames() failed")) {
return;
}
const UnicodeString *name;
@@ -1846,7 +1848,7 @@ void TestMessageFormat::TestTrimArgumentName() {
// ICU 4.8 allows and ignores white space around argument names and numbers.
IcuTestErrorCode errorCode(*this, "TestTrimArgumentName");
MessageFormat m("a { 0 , number , '#,#'#.0 } z", Locale::getEnglish(), errorCode);
- if (errorCode.logDataIfFailureAndReset("Unable to instantiate MessageFormat")) {
+ if (errorCode.errDataIfFailureAndReset("Unable to instantiate MessageFormat")) {
return;
}
Formattable args[1] = { (int32_t)2 };
@@ -1871,7 +1873,7 @@ void TestMessageFormat::TestSelectOrdinal() {
"{0,plural,one{1 file}other{# files}}, "
"{0,selectordinal,one{#st file}two{#nd file}few{#rd file}other{#th file}}",
Locale::getEnglish(), errorCode);
- if (errorCode.logDataIfFailureAndReset("Unable to instantiate MessageFormat")) {
+ if (errorCode.errDataIfFailureAndReset("Unable to instantiate MessageFormat")) {
return;
}
Formattable args[1] = { (int32_t)21 };
@@ -1892,7 +1894,7 @@ void TestMessageFormat::TestSelectOrdinal() {
assertEquals("plural-and-ordinal format(3) failed", "3 files, 3rd file",
m.format(args, 1, result.remove(), ignore, errorCode), TRUE);
- errorCode.logDataIfFailureAndReset("");
+ errorCode.errDataIfFailureAndReset("");
}
void TestMessageFormat::TestDecimals() {
@@ -1993,4 +1995,38 @@ void TestMessageFormat::TestArgIsPrefixOfAnother() {
assertEquals("aa aaa", "AB ABC", mf3.format(argNames + 1, args + 1, 2, result.remove(), errorCode));
}
+void TestMessageFormat::TestMessageFormatNumberSkeleton() {
+ IcuTestErrorCode status(*this, "TestMessageFormatNumberSkeleton");
+
+ static const struct TestCase {
+ const char16_t* messagePattern;
+ const char* localeName;
+ double arg;
+ const char16_t* expected;
+ } cases[] = {
+ { u"{0,number,::percent}", "en", 50, u"50%" },
+ { u"{0,number,::percent scale/100}", "en", 0.5, u"50%" },
+ { u"{0,number, :: percent scale/100 }", "en", 0.5, u"50%" },
+ { u"{0,number,::currency/USD}", "en", 23, u"$23.00" },
+ { u"{0,number,::precision-integer}", "en", 514.23, u"514" },
+ { u"{0,number,::.000}", "en", 514.23, u"514.230" },
+ { u"{0,number,::.}", "en", 514.23, u"514" },
+ { u"{0,number,::}", "fr", 514.23, u"514,23" },
+ { u"Cost: {0,number,::currency/EUR}.", "en", 4.3, u"Cost: €4.30." },
+ { u"{0,number,'::'0.00}", "en", 50, u"::50.00" }, // pattern literal
+ };
+
+ for (auto& cas : cases) {
+ status.setScope(cas.messagePattern);
+ MessageFormat msgf(cas.messagePattern, cas.localeName, status);
+ UnicodeString sb;
+ FieldPosition fpos(0);
+ Formattable argsArray[] = {{cas.arg}};
+ Formattable args(argsArray, 1);
+ msgf.format(args, sb, status);
+
+ assertEquals(cas.messagePattern, cas.expected, sb);
+ }
+}
+
#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/tmsgfmt.h b/Build/source/libs/icu/icu-src/source/test/intltest/tmsgfmt.h
index 7c0afc411f8..d4bc13d9eaa 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/tmsgfmt.h
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/tmsgfmt.h
@@ -121,6 +121,7 @@ public:
void TestSelectOrdinal();
void TestDecimals();
void TestArgIsPrefixOfAnother();
+ void TestMessageFormatNumberSkeleton();
private:
UnicodeString GetPatternAndSkipSyntax(const MessagePattern& pattern);
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/tsdcfmsy.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/tsdcfmsy.cpp
index 1ed6d760e67..18a1ae863c1 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/tsdcfmsy.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/tsdcfmsy.cpp
@@ -201,15 +201,15 @@ void IntlTestDecimalFormatSymbols::testSymbols(/* char *par */)
DecimalFormatSymbols sym(Locale::getUS(), status);
UnicodeString customDecSeperator("S");
- Verify(34.5, (UnicodeString)"00.00", sym, (UnicodeString)"34.50");
+ Verify(34.5, u"00.00", sym, u"34.50");
sym.setSymbol(DecimalFormatSymbols::kDecimalSeparatorSymbol, customDecSeperator);
- Verify(34.5, (UnicodeString)"00.00", sym, (UnicodeString)"34S50");
- sym.setSymbol(DecimalFormatSymbols::kPercentSymbol, (UnicodeString)"P");
- Verify(34.5, (UnicodeString)"00 %", sym, (UnicodeString)"3450 P");
- sym.setSymbol(DecimalFormatSymbols::kCurrencySymbol, (UnicodeString)"D");
- Verify(34.5, CharsToUnicodeString("\\u00a4##.##"), sym, (UnicodeString)"D34.5");
- sym.setSymbol(DecimalFormatSymbols::kGroupingSeparatorSymbol, (UnicodeString)"|");
- Verify(3456.5, (UnicodeString)"0,000.##", sym, (UnicodeString)"3|456S5");
+ Verify(34.5, u"00.00", sym, u"34S50");
+ sym.setSymbol(DecimalFormatSymbols::kPercentSymbol, u"P");
+ Verify(34.5, u"00 %", sym, u"3450 P");
+ sym.setSymbol(DecimalFormatSymbols::kCurrencySymbol, u"D");
+ Verify(34.5, u"\u00a4##.##", sym, u"D\u00a034.50");
+ sym.setSymbol(DecimalFormatSymbols::kGroupingSeparatorSymbol, u"|");
+ Verify(3456.5, u"0,000.##", sym, u"3|456S5");
}
@@ -217,11 +217,11 @@ void IntlTestDecimalFormatSymbols::testLastResortData() {
IcuTestErrorCode errorCode(*this, "testLastResortData");
LocalPointer<DecimalFormatSymbols> lastResort(
DecimalFormatSymbols::createWithLastResortData(errorCode));
- if(errorCode.logIfFailureAndReset("DecimalFormatSymbols::createWithLastResortData() failed")) {
+ if(errorCode.errIfFailureAndReset("DecimalFormatSymbols::createWithLastResortData() failed")) {
return;
}
DecimalFormatSymbols root(Locale::getRoot(), errorCode);
- if(errorCode.logDataIfFailureAndReset("DecimalFormatSymbols(root) failed")) {
+ if(errorCode.errDataIfFailureAndReset("DecimalFormatSymbols(root) failed")) {
return;
}
// Note: It is not necessary that the last resort data matches the root locale,
@@ -354,38 +354,39 @@ void IntlTestDecimalFormatSymbols::testNumberingSystem() {
const char16_t* expected1; // Expected number format string
const char16_t* expected2; // Expected pattern separator
};
- static const testcase cases[9] = {
- {"en", "latn", u"1,234.56", u";"},
- {"en", "arab", u"١٬٢٣٤٫٥٦", u"؛"},
- {"en", "mathsanb", u"𝟭,𝟮𝟯𝟰.𝟱𝟲", u";"},
- {"en", "mymr", u"၁,၂၃၄.၅၆", u";"},
- {"my", "latn", u"1,234.56", u";"},
- {"my", "arab", u"١٬٢٣٤٫٥٦", u"؛"},
- {"my", "mathsanb", u"𝟭,𝟮𝟯𝟰.𝟱𝟲", u";"},
- {"my", "mymr", u"၁,၂၃၄.၅၆", u"၊"},
- {"en@numbers=thai", "mymr", u"၁,၂၃၄.၅၆", u";"}, // conflicting numbering system
+ static const testcase cases[] = {
+ {"en", "latn", u"1,234.56", u"%"},
+ {"en", "arab", u"١٬٢٣٤٫٥٦", u"٪\u061C"},
+ {"en", "mathsanb", u"𝟭,𝟮𝟯𝟰.𝟱𝟲", u"%"},
+ {"en", "mymr", u"၁,၂၃၄.၅၆", u"%"},
+ {"my", "latn", u"1,234.56", u"%"},
+ {"my", "arab", u"١٬٢٣٤٫٥٦", u"٪\u061C"},
+ {"my", "mathsanb", u"𝟭,𝟮𝟯𝟰.𝟱𝟲", u"%"},
+ {"my", "mymr", u"၁,၂၃၄.၅၆", u"%"},
+ {"ar", "latn", u"1,234.56", u"\u200E%\u200E"},
+ {"ar", "arab", u"١٬٢٣٤٫٥٦", u"٪\u061C"},
+ {"en@numbers=thai", "mymr", u"၁,၂၃၄.၅၆", u"%"}, // conflicting numbering system
};
for (int i=0; i<8; i++) {
testcase cas = cases[i];
Locale loc(cas.locid);
LocalPointer<NumberingSystem> ns(NumberingSystem::createInstanceByName(cas.nsname, errorCode));
- if (errorCode.logDataIfFailureAndReset("NumberingSystem failed")) {
+ if (errorCode.errDataIfFailureAndReset("NumberingSystem failed")) {
return;
}
UnicodeString expected1(cas.expected1);
UnicodeString expected2(cas.expected2);
DecimalFormatSymbols dfs(loc, *ns, errorCode);
- if (errorCode.logDataIfFailureAndReset("DecimalFormatSymbols failed")) {
+ if (errorCode.errDataIfFailureAndReset("DecimalFormatSymbols failed")) {
return;
}
Verify(1234.56, "#,##0.##", dfs, expected1);
- // The pattern separator is something that differs by numbering system in my@numbers=mymr.
- UnicodeString actual2 = dfs.getSymbol(DecimalFormatSymbols::kPatternSeparatorSymbol);
- if (expected2 != actual2) {
- errln((UnicodeString)"ERROR: DecimalFormatSymbols returned pattern separator " + actual2
- + " but we expected " + expected2);
- }
+ // The percent sign differs by numbering system.
+ UnicodeString actual2 = dfs.getSymbol(DecimalFormatSymbols::kPercentSymbol);
+ assertEquals((UnicodeString) "Percent sign with " + cas.locid + " and " + cas.nsname,
+ expected2,
+ actual2);
}
}
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/tsmthred.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/tsmthred.cpp
index 1a717e3dc03..0c8219a9ba5 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/tsmthred.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/tsmthred.cpp
@@ -13,6 +13,7 @@
#include "umutex.h"
#include "cmemory.h"
#include "cstring.h"
+#include "indiancal.h"
#include "uparse.h"
#include "unicode/localpointer.h"
#include "unicode/resbund.h"
@@ -45,6 +46,7 @@ MultithreadTest::~MultithreadTest()
#include <stdio.h>
#include <string.h>
#include <ctype.h> // tolower, toupper
+#include <memory>
#include "unicode/putil.h"
@@ -62,82 +64,29 @@ void MultithreadTest::runIndexedTest( int32_t index, UBool exec,
const char* &name, char* /*par*/ ) {
if (exec)
logln("TestSuite MultithreadTest: ");
- switch (index) {
- case 0:
- name = "TestThreads";
- if (exec)
- TestThreads();
- break;
-
- case 1:
- name = "TestMutex";
- if (exec)
- TestMutex();
- break;
-
- case 2:
- name = "TestThreadedIntl";
+
+ TESTCASE_AUTO_BEGIN;
+ TESTCASE_AUTO(TestThreads);
+ TESTCASE_AUTO(TestMutex);
#if !UCONFIG_NO_FORMATTING
- if (exec) {
- TestThreadedIntl();
- }
+ TESTCASE_AUTO(TestThreadedIntl);
#endif
- break;
-
- case 3:
- name = "TestCollators";
#if !UCONFIG_NO_COLLATION
- if (exec) {
- TestCollators();
- }
+ TESTCASE_AUTO(TestCollators);
#endif /* #if !UCONFIG_NO_COLLATION */
- break;
-
- case 4:
- name = "TestString";
- if (exec) {
- TestString();
- }
- break;
-
- case 5:
- name = "TestArabicShapingThreads";
- if (exec) {
- TestArabicShapingThreads();
- }
- break;
-
- case 6:
- name = "TestAnyTranslit";
- if (exec) {
- TestAnyTranslit();
- }
- break;
-
- case 7:
- name = "TestConditionVariables";
- if (exec) {
- TestConditionVariables();
- }
- break;
- case 8:
- name = "TestUnifiedCache";
- if (exec) {
- TestUnifiedCache();
- }
- break;
+ TESTCASE_AUTO(TestString);
+ TESTCASE_AUTO(TestArabicShapingThreads);
+ TESTCASE_AUTO(TestAnyTranslit);
+ TESTCASE_AUTO(TestConditionVariables);
+ TESTCASE_AUTO(TestUnifiedCache);
#if !UCONFIG_NO_TRANSLITERATION
- case 9:
- name = "TestBreakTranslit";
- if (exec) {
- TestBreakTranslit();
- }
- break;
-#endif
- default:
- name = "";
- break; //needed to end loop
- }
+ TESTCASE_AUTO(TestBreakTranslit);
+ TESTCASE_AUTO(TestIncDec);
+#if !UCONFIG_NO_FORMATTING
+ TESTCASE_AUTO(Test20104);
+#endif /* #if !UCONFIG_NO_FORMATTING */
+#endif /* #if !UCONFIG_NO_TRANSLITERATION */
+ TESTCASE_AUTO_END
}
@@ -684,9 +633,9 @@ public:
FormatThreadTestData( 1.0, CharsToUnicodeString("100\\u00a0%")),
FormatThreadTestData( 0.26, CharsToUnicodeString("26\\u00a0%")),
FormatThreadTestData(
- 16384.99, CharsToUnicodeString("1\\u00a0638\\u00a0499\\u00a0%")), // U+00a0 = NBSP
+ 16384.99, CharsToUnicodeString("1\\u202F638\\u202F499\\u00a0%")), // U+202F = NNBSP
FormatThreadTestData(
- 81890.23, CharsToUnicodeString("8\\u00a0189\\u00a0023\\u00a0%")),
+ 81890.23, CharsToUnicodeString("8\\u202F189\\u202F023\\u00a0%")),
};
int32_t kPercentFormatTestDataLength = UPRV_LENGTHOF(kPercentFormatTestData);
int32_t iteration;
@@ -1572,4 +1521,67 @@ void MultithreadTest::TestBreakTranslit() {
gTranslitExpected = NULL;
}
+
+class TestIncDecThread : public SimpleThread {
+public:
+ TestIncDecThread() { };
+ virtual void run();
+};
+
+static u_atomic_int32_t gIncDecCounter;
+
+void TestIncDecThread::run() {
+ umtx_atomic_inc(&gIncDecCounter);
+ for (int32_t i=0; i<5000000; ++i) {
+ umtx_atomic_inc(&gIncDecCounter);
+ umtx_atomic_dec(&gIncDecCounter);
+ }
+}
+
+void MultithreadTest::TestIncDec()
+{
+ static constexpr int NUM_THREADS = 4;
+ gIncDecCounter = 0;
+ TestIncDecThread threads[NUM_THREADS];
+ for (auto &thread:threads) {
+ thread.start();
+ }
+ for (auto &thread:threads) {
+ thread.join();
+ }
+ assertEquals("TestIncDec", NUM_THREADS, gIncDecCounter);
+}
+
+#if !UCONFIG_NO_FORMATTING
+static Calendar *gSharedCalendar = {};
+
+class Test20104Thread : public SimpleThread {
+public:
+ Test20104Thread() { };
+ virtual void run();
+};
+
+void Test20104Thread::run() {
+ gSharedCalendar->defaultCenturyStartYear();
+}
+
+void MultithreadTest::Test20104() {
+ UErrorCode status = U_ZERO_ERROR;
+ Locale loc("hi_IN");
+ gSharedCalendar = new IndianCalendar(loc, status);
+ assertSuccess("Test20104", status);
+
+ static constexpr int NUM_THREADS = 4;
+ Test20104Thread threads[NUM_THREADS];
+ for (auto &thread:threads) {
+ thread.start();
+ }
+ for (auto &thread:threads) {
+ thread.join();
+ }
+ delete gSharedCalendar;
+ // Note: failure is reported by Thread Sanitizer. Test itself succeeds.
+}
+#endif /* !UCONFIG_NO_FORMATTING */
+
#endif /* !UCONFIG_NO_TRANSLITERATION */
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/tsmthred.h b/Build/source/libs/icu/icu-src/source/test/intltest/tsmthred.h
index 6ed24d7635c..565080ac69a 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/tsmthred.h
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/tsmthred.h
@@ -52,7 +52,8 @@ public:
void TestConditionVariables();
void TestUnifiedCache();
void TestBreakTranslit();
-
+ void TestIncDec();
+ void Test20104();
};
#endif
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/tstnorm.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/tstnorm.cpp
index 6bc965e16e5..741211b170f 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/tstnorm.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/tstnorm.cpp
@@ -633,6 +633,29 @@ BasicNormalizerTest::TestPreviousNext(const UChar *src, int32_t srcLength,
const char *moves,
UNormalizationMode mode,
const char *name) {
+ // Sanity check non-iterative normalization.
+ {
+ IcuTestErrorCode errorCode(*this, "TestPreviousNext");
+ UnicodeString result;
+ Normalizer::normalize(UnicodeString(src, srcLength), mode, 0, result, errorCode);
+ if (errorCode.isFailure()) {
+ dataerrln("error: non-iterative normalization of %s failed: %s",
+ name, errorCode.errorName());
+ errorCode.reset();
+ return;
+ }
+ // UnicodeString::fromUTF32(expect, expectLength)
+ // would turn unpaired surrogates into U+FFFD.
+ for (int32_t i = 0, j = 0; i < result.length(); ++j) {
+ UChar32 c = result.char32At(i);
+ if (c != expect[j]) {
+ errln("error: non-iterative normalization of %s did not yield the expected result",
+ name);
+ }
+ i += U16_LENGTH(c);
+ }
+ }
+
// iterators
Normalizer iter(src, srcLength, mode);
@@ -1394,7 +1417,7 @@ BasicNormalizerTest::TestSkippable() {
skipSets[UNORM_NFKD].applyPattern(UNICODE_STRING_SIMPLE("[:NFKD_Inert:]"), errorCode);
skipSets[UNORM_NFC].applyPattern(UNICODE_STRING_SIMPLE("[:NFC_Inert:]"), errorCode);
skipSets[UNORM_NFKC].applyPattern(UNICODE_STRING_SIMPLE("[:NFKC_Inert:]"), errorCode);
- if(errorCode.logDataIfFailureAndReset("UnicodeSet(NF..._Inert) failed")) {
+ if(errorCode.errDataIfFailureAndReset("UnicodeSet(NF..._Inert) failed")) {
return;
}
@@ -1432,9 +1455,14 @@ struct StringPair { const char *input, *expected; };
void
BasicNormalizerTest::TestCustomComp() {
static const StringPair pairs[]={
- { "\\uD801\\uE000\\uDFFE", "" },
- { "\\uD800\\uD801\\uE000\\uDFFE\\uDFFF", "\\uD7FF\\uFFFF" },
- { "\\uD800\\uD801\\uDFFE\\uDFFF", "\\uD7FF\\U000107FE\\uFFFF" },
+ // ICU 63 normalization with UCPTrie requires inert surrogate code points.
+ // { "\\uD801\\uE000\\uDFFE", "" },
+ // { "\\uD800\\uD801\\uE000\\uDFFE\\uDFFF", "\\uD7FF\\uFFFF" },
+ // { "\\uD800\\uD801\\uDFFE\\uDFFF", "\\uD7FF\\U000107FE\\uFFFF" },
+ { "\\uD801\\uE000\\uDFFE", "\\uD801\\uDFFE" },
+ { "\\uD800\\uD801\\uE000\\uDFFE\\uDFFF", "\\uD800\\uD801\\uDFFE\\uDFFF" },
+ { "\\uD800\\uD801\\uDFFE\\uDFFF", "\\uD800\\U000107FE\\uDFFF" },
+
{ "\\uE001\\U000110B9\\u0345\\u0308\\u0327", "\\uE002\\U000110B9\\u0327\\u0345" },
{ "\\uE010\\U000F0011\\uE012", "\\uE011\\uE012" },
{ "\\uE010\\U000F0011\\U000F0011\\uE012", "\\uE011\\U000F0010" },
@@ -1445,7 +1473,7 @@ BasicNormalizerTest::TestCustomComp() {
const Normalizer2 *customNorm2=
Normalizer2::getInstance(loadTestData(errorCode), "testnorm",
UNORM2_COMPOSE, errorCode);
- if(errorCode.logDataIfFailureAndReset("unable to load testdata/testnorm.nrm")) {
+ if(errorCode.errDataIfFailureAndReset("unable to load testdata/testnorm.nrm")) {
return;
}
for(int32_t i=0; i<UPRV_LENGTHOF(pairs); ++i) {
@@ -1462,9 +1490,14 @@ BasicNormalizerTest::TestCustomComp() {
void
BasicNormalizerTest::TestCustomFCC() {
static const StringPair pairs[]={
- { "\\uD801\\uE000\\uDFFE", "" },
- { "\\uD800\\uD801\\uE000\\uDFFE\\uDFFF", "\\uD7FF\\uFFFF" },
- { "\\uD800\\uD801\\uDFFE\\uDFFF", "\\uD7FF\\U000107FE\\uFFFF" },
+ // ICU 63 normalization with UCPTrie requires inert surrogate code points.
+ // { "\\uD801\\uE000\\uDFFE", "" },
+ // { "\\uD800\\uD801\\uE000\\uDFFE\\uDFFF", "\\uD7FF\\uFFFF" },
+ // { "\\uD800\\uD801\\uDFFE\\uDFFF", "\\uD7FF\\U000107FE\\uFFFF" },
+ { "\\uD801\\uE000\\uDFFE", "\\uD801\\uDFFE" },
+ { "\\uD800\\uD801\\uE000\\uDFFE\\uDFFF", "\\uD800\\uD801\\uDFFE\\uDFFF" },
+ { "\\uD800\\uD801\\uDFFE\\uDFFF", "\\uD800\\U000107FE\\uDFFF" },
+
// The following expected result is different from CustomComp
// because of only-contiguous composition.
{ "\\uE001\\U000110B9\\u0345\\u0308\\u0327", "\\uE001\\U000110B9\\u0327\\u0308\\u0345" },
@@ -1477,7 +1510,7 @@ BasicNormalizerTest::TestCustomFCC() {
const Normalizer2 *customNorm2=
Normalizer2::getInstance(loadTestData(errorCode), "testnorm",
UNORM2_COMPOSE_CONTIGUOUS, errorCode);
- if(errorCode.logDataIfFailureAndReset("unable to load testdata/testnorm.nrm")) {
+ if(errorCode.errDataIfFailureAndReset("unable to load testdata/testnorm.nrm")) {
return;
}
for(int32_t i=0; i<UPRV_LENGTHOF(pairs); ++i) {
@@ -1537,7 +1570,7 @@ void
BasicNormalizerTest::TestNormalizeUTF8WithEdits() {
IcuTestErrorCode errorCode(*this, "TestNormalizeUTF8WithEdits");
const Normalizer2 *nfkc_cf=Normalizer2::getNFKCCasefoldInstance(errorCode);
- if(errorCode.logDataIfFailureAndReset("Normalizer2::getNFKCCasefoldInstance() call failed")) {
+ if(errorCode.errDataIfFailureAndReset("Normalizer2::getNFKCCasefoldInstance() call failed")) {
return;
}
static const char *const src =
@@ -1641,7 +1674,7 @@ BasicNormalizerTest::TestLowMappingToEmpty_D() {
IcuTestErrorCode errorCode(*this, "TestLowMappingToEmpty_D");
const Normalizer2 *n2 = Normalizer2::getInstance(
nullptr, "nfkc_cf", UNORM2_DECOMPOSE, errorCode);
- if (errorCode.logDataIfFailureAndReset("Normalizer2::getInstance() call failed")) {
+ if (errorCode.errDataIfFailureAndReset("Normalizer2::getInstance() call failed")) {
return;
}
checkLowMappingToEmpty(*n2);
@@ -1663,7 +1696,7 @@ BasicNormalizerTest::TestLowMappingToEmpty_FCD() {
IcuTestErrorCode errorCode(*this, "TestLowMappingToEmpty_FCD");
const Normalizer2 *n2 = Normalizer2::getInstance(
nullptr, "nfkc_cf", UNORM2_FCD, errorCode);
- if (errorCode.logDataIfFailureAndReset("Normalizer2::getInstance() call failed")) {
+ if (errorCode.errDataIfFailureAndReset("Normalizer2::getInstance() call failed")) {
return;
}
checkLowMappingToEmpty(*n2);
@@ -1690,7 +1723,7 @@ void
BasicNormalizerTest::TestNormalizeIllFormedText() {
IcuTestErrorCode errorCode(*this, "TestNormalizeIllFormedText");
const Normalizer2 *nfkc_cf = Normalizer2::getNFKCCasefoldInstance(errorCode);
- if(errorCode.logDataIfFailureAndReset("Normalizer2::getNFKCCasefoldInstance() call failed")) {
+ if(errorCode.errDataIfFailureAndReset("Normalizer2::getNFKCCasefoldInstance() call failed")) {
return;
}
// Normalization behavior for ill-formed text is not defined.
@@ -1733,7 +1766,7 @@ BasicNormalizerTest::TestComposeJamoTBase() {
// which is not a conjoining Jamo Trailing consonant.
IcuTestErrorCode errorCode(*this, "TestComposeJamoTBase");
const Normalizer2 *nfkc = Normalizer2::getNFKCInstance(errorCode);
- if(errorCode.logDataIfFailureAndReset("Normalizer2::getNFKCInstance() call failed")) {
+ if(errorCode.errDataIfFailureAndReset("Normalizer2::getNFKCInstance() call failed")) {
return;
}
UnicodeString s(u"\u1100\u1161\u11A7\u1100\u314F\u11A7가\u11A7");
@@ -1759,7 +1792,7 @@ void
BasicNormalizerTest::TestComposeBoundaryAfter() {
IcuTestErrorCode errorCode(*this, "TestComposeBoundaryAfter");
const Normalizer2 *nfkc = Normalizer2::getNFKCInstance(errorCode);
- if(errorCode.logDataIfFailureAndReset("Normalizer2::getNFKCInstance() call failed")) {
+ if(errorCode.errDataIfFailureAndReset("Normalizer2::getNFKCInstance() call failed")) {
return;
}
// U+02DA and U+FB2C do not have compose-boundaries-after.
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/ucdtest.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/ucdtest.cpp
index 8a52c94820f..6b784b7b1b2 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/ucdtest.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/ucdtest.cpp
@@ -7,13 +7,16 @@
#include "unicode/ustring.h"
#include "unicode/uchar.h"
+#include "unicode/ucpmap.h"
#include "unicode/uniset.h"
#include "unicode/putil.h"
#include "unicode/uscript.h"
+#include "unicode/uset.h"
#include "cstring.h"
#include "hash.h"
#include "patternprops.h"
#include "normalizer2impl.h"
+#include "testutil.h"
#include "uparse.h"
#include "ucdtest.h"
@@ -62,8 +65,15 @@ void UnicodeTest::runIndexedTest( int32_t index, UBool exec, const char* &name,
TESTCASE_AUTO(TestScriptMetadata);
TESTCASE_AUTO(TestBidiPairedBracketType);
TESTCASE_AUTO(TestEmojiProperties);
+ TESTCASE_AUTO(TestIndicPositionalCategory);
+ TESTCASE_AUTO(TestIndicSyllabicCategory);
+ TESTCASE_AUTO(TestVerticalOrientation);
TESTCASE_AUTO(TestDefaultScriptExtensions);
TESTCASE_AUTO(TestInvalidCodePointFolding);
+#if !UCONFIG_NO_NORMALIZATION
+ TESTCASE_AUTO(TestBinaryCharacterProperties);
+ TESTCASE_AUTO(TestIntCharacterProperties);
+#endif
TESTCASE_AUTO_END;
}
@@ -531,6 +541,52 @@ void UnicodeTest::TestEmojiProperties() {
u_hasBinaryProperty(0x1F64B, UCHAR_EMOJI_MODIFIER_BASE));
assertTrue("asterisk is Emoji_Component",
u_hasBinaryProperty(0x2A, UCHAR_EMOJI_COMPONENT));
+ assertTrue("copyright is Extended_Pictographic",
+ u_hasBinaryProperty(0xA9, UCHAR_EXTENDED_PICTOGRAPHIC));
+}
+
+void UnicodeTest::TestIndicPositionalCategory() {
+ IcuTestErrorCode errorCode(*this, "TestIndicPositionalCategory()");
+ UnicodeSet na(u"[:InPC=NA:]", errorCode);
+ assertTrue("mostly NA", 1000000 <= na.size() && na.size() <= UCHAR_MAX_VALUE - 500);
+ UnicodeSet vol(u"[:InPC=Visual_Order_Left:]", errorCode);
+ assertTrue("some Visual_Order_Left", 19 <= vol.size() && vol.size() <= 100);
+ assertEquals("U+08FF: NA", U_INPC_NA,
+ u_getIntPropertyValue(0x08FF, UCHAR_INDIC_POSITIONAL_CATEGORY));
+ assertEquals("U+0900: Top", U_INPC_TOP,
+ u_getIntPropertyValue(0x0900, UCHAR_INDIC_POSITIONAL_CATEGORY));
+ assertEquals("U+10A06: Overstruck", U_INPC_OVERSTRUCK,
+ u_getIntPropertyValue(0x10A06, UCHAR_INDIC_POSITIONAL_CATEGORY));
+}
+
+void UnicodeTest::TestIndicSyllabicCategory() {
+ IcuTestErrorCode errorCode(*this, "TestIndicSyllabicCategory()");
+ UnicodeSet other(u"[:InSC=Other:]", errorCode);
+ assertTrue("mostly Other", 1000000 <= other.size() && other.size() <= UCHAR_MAX_VALUE - 500);
+ UnicodeSet ava(u"[:InSC=Avagraha:]", errorCode);
+ assertTrue("some Avagraha", 16 <= ava.size() && ava.size() <= 100);
+ assertEquals("U+08FF: Other", U_INSC_OTHER,
+ u_getIntPropertyValue(0x08FF, UCHAR_INDIC_SYLLABIC_CATEGORY));
+ assertEquals("U+0900: Bindu", U_INSC_BINDU,
+ u_getIntPropertyValue(0x0900, UCHAR_INDIC_SYLLABIC_CATEGORY));
+ assertEquals("U+11065: Brahmi_Joining_Number", U_INSC_BRAHMI_JOINING_NUMBER,
+ u_getIntPropertyValue(0x11065, UCHAR_INDIC_SYLLABIC_CATEGORY));
+}
+
+void UnicodeTest::TestVerticalOrientation() {
+ IcuTestErrorCode errorCode(*this, "TestVerticalOrientation()");
+ UnicodeSet r(u"[:vo=R:]", errorCode);
+ assertTrue("mostly R", 0xc0000 <= r.size() && r.size() <= 0xd0000);
+ UnicodeSet u(u"[:vo=U:]", errorCode);
+ assertTrue("much U", 0x40000 <= u.size() && u.size() <= 0x50000);
+ UnicodeSet tu(u"[:vo=Tu:]", errorCode);
+ assertTrue("some Tu", 147 <= tu.size() && tu.size() <= 300);
+ assertEquals("U+0E01: Rotated", U_VO_ROTATED,
+ u_getIntPropertyValue(0x0E01, UCHAR_VERTICAL_ORIENTATION));
+ assertEquals("U+3008: Transformed_Rotated", U_VO_TRANSFORMED_ROTATED,
+ u_getIntPropertyValue(0x3008, UCHAR_VERTICAL_ORIENTATION));
+ assertEquals("U+33333: Upright", U_VO_UPRIGHT,
+ u_getIntPropertyValue(0x33333, UCHAR_VERTICAL_ORIENTATION));
}
void UnicodeTest::TestDefaultScriptExtensions() {
@@ -566,3 +622,77 @@ void UnicodeTest::TestInvalidCodePointFolding(void) {
cp, u_foldCase(cp, U_FOLD_CASE_EXCLUDE_SPECIAL_I));
}
}
+
+void UnicodeTest::TestBinaryCharacterProperties() {
+#if !UCONFIG_NO_NORMALIZATION
+ IcuTestErrorCode errorCode(*this, "TestBinaryCharacterProperties()");
+ // Spot-check getBinaryPropertySet() vs. hasBinaryProperty().
+ for (int32_t prop = 0; prop < UCHAR_BINARY_LIMIT; ++prop) {
+ const USet *uset = u_getBinaryPropertySet((UProperty)prop, errorCode);
+ if (errorCode.errIfFailureAndReset("u_getBinaryPropertySet(%d)", (int)prop)) {
+ continue;
+ }
+ const UnicodeSet &set = *UnicodeSet::fromUSet(uset);
+ int32_t size = set.size();
+ if (size == 0) {
+ assertFalse(UnicodeString("!hasBinaryProperty(U+0020, ") + prop + u")",
+ u_hasBinaryProperty(0x20, (UProperty)prop));
+ assertFalse(UnicodeString("!hasBinaryProperty(U+0061, ") + prop + u")",
+ u_hasBinaryProperty(0x61, (UProperty)prop));
+ assertFalse(UnicodeString("!hasBinaryProperty(U+4E00, ") + prop + u")",
+ u_hasBinaryProperty(0x4e00, (UProperty)prop));
+ } else {
+ UChar32 c = set.charAt(0);
+ if (c > 0) {
+ assertFalse(
+ UnicodeString("!hasBinaryProperty(") + TestUtility::hex(c - 1) +
+ u", " + prop + u")",
+ u_hasBinaryProperty(c - 1, (UProperty)prop));
+ }
+ assertTrue(
+ UnicodeString("hasBinaryProperty(") + TestUtility::hex(c) +
+ u", " + prop + u")",
+ u_hasBinaryProperty(c, (UProperty)prop));
+ c = set.charAt(size - 1);
+ assertTrue(
+ UnicodeString("hasBinaryProperty(") + TestUtility::hex(c) +
+ u", " + prop + u")",
+ u_hasBinaryProperty(c, (UProperty)prop));
+ if (c < 0x10ffff) {
+ assertFalse(
+ UnicodeString("!hasBinaryProperty(") + TestUtility::hex(c + 1) +
+ u", " + prop + u")",
+ u_hasBinaryProperty(c + 1, (UProperty)prop));
+ }
+ }
+ }
+#endif
+}
+
+void UnicodeTest::TestIntCharacterProperties() {
+#if !UCONFIG_NO_NORMALIZATION
+ IcuTestErrorCode errorCode(*this, "TestIntCharacterProperties()");
+ // Spot-check getIntPropertyMap() vs. getIntPropertyValue().
+ for (int32_t prop = UCHAR_INT_START; prop < UCHAR_INT_LIMIT; ++prop) {
+ const UCPMap *map = u_getIntPropertyMap((UProperty)prop, errorCode);
+ if (errorCode.errIfFailureAndReset("u_getIntPropertyMap(%d)", (int)prop)) {
+ continue;
+ }
+ uint32_t value;
+ UChar32 end = ucpmap_getRange(map, 0, UCPMAP_RANGE_NORMAL, 0, nullptr, nullptr, &value);
+ assertTrue("int property first range", end >= 0);
+ UChar32 c = end / 2;
+ assertEquals(UnicodeString("int property first range value at ") + TestUtility::hex(c),
+ u_getIntPropertyValue(c, (UProperty)prop), value);
+ end = ucpmap_getRange(map, 0x5000, UCPMAP_RANGE_NORMAL, 0, nullptr, nullptr, &value);
+ assertTrue("int property later range", end >= 0);
+ assertEquals(UnicodeString("int property later range value at ") + TestUtility::hex(end),
+ u_getIntPropertyValue(end, (UProperty)prop), value);
+ // ucpmap_get() API coverage
+ // TODO: move to cucdtst.c
+ assertEquals(
+ "int property upcmap_get(U+0061)",
+ u_getIntPropertyValue(0x61, (UProperty)prop), ucpmap_get(map, 0x61));
+ }
+#endif
+}
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/ucdtest.h b/Build/source/libs/icu/icu-src/source/test/intltest/ucdtest.h
index 8a7ae3f4ecf..2ed1395b50f 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/ucdtest.h
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/ucdtest.h
@@ -41,8 +41,13 @@ public:
void TestScriptMetadata();
void TestBidiPairedBracketType();
void TestEmojiProperties();
+ void TestIndicPositionalCategory();
+ void TestIndicSyllabicCategory();
+ void TestVerticalOrientation();
void TestDefaultScriptExtensions();
void TestInvalidCodePointFolding();
+ void TestBinaryCharacterProperties();
+ void TestIntCharacterProperties();
private:
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/ucharstrietest.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/ucharstrietest.cpp
index ac7be45799b..316880eb3f4 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/ucharstrietest.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/ucharstrietest.cpp
@@ -559,7 +559,7 @@ void UCharsTrieTest::TestIteratorFromBranch() {
trie->next(u_n);
IcuTestErrorCode errorCode(*this, "TestIteratorFromBranch()");
UCharsTrie::Iterator iter(*trie, 0, errorCode);
- if(errorCode.logIfFailureAndReset("UCharsTrie::Iterator(trie) constructor")) {
+ if(errorCode.errIfFailureAndReset("UCharsTrie::Iterator(trie) constructor")) {
return;
}
// Expected data: Same as in buildMonthsTrie(), except only the suffixes
@@ -610,7 +610,7 @@ void UCharsTrieTest::TestIteratorFromLinearMatch() {
trie->next(u_a);
IcuTestErrorCode errorCode(*this, "TestIteratorFromLinearMatch()");
UCharsTrie::Iterator iter(*trie, 0, errorCode);
- if(errorCode.logIfFailureAndReset("UCharsTrie::Iterator(trie) constructor")) {
+ if(errorCode.errIfFailureAndReset("UCharsTrie::Iterator(trie) constructor")) {
return;
}
// Expected data: Same as in buildMonthsTrie(), except only the suffixes
@@ -632,7 +632,7 @@ void UCharsTrieTest::TestTruncatingIteratorFromRoot() {
}
IcuTestErrorCode errorCode(*this, "TestTruncatingIteratorFromRoot()");
UCharsTrie::Iterator iter(*trie, 4, errorCode);
- if(errorCode.logIfFailureAndReset("UCharsTrie::Iterator(trie) constructor")) {
+ if(errorCode.errIfFailureAndReset("UCharsTrie::Iterator(trie) constructor")) {
return;
}
// Expected data: Same as in buildMonthsTrie(), except only the first 4 characters
@@ -687,7 +687,7 @@ void UCharsTrieTest::TestTruncatingIteratorFromLinearMatchShort() {
IcuTestErrorCode errorCode(*this, "TestTruncatingIteratorFromLinearMatchShort()");
// Truncate within the linear-match node.
UCharsTrie::Iterator iter(*trie, 2, errorCode);
- if(errorCode.logIfFailureAndReset("UCharsTrie::Iterator(trie) constructor")) {
+ if(errorCode.errIfFailureAndReset("UCharsTrie::Iterator(trie) constructor")) {
return;
}
static const StringAndValue expected[]={
@@ -716,7 +716,7 @@ void UCharsTrieTest::TestTruncatingIteratorFromLinearMatchLong() {
IcuTestErrorCode errorCode(*this, "TestTruncatingIteratorFromLinearMatchLong()");
// Truncate after the linear-match node.
UCharsTrie::Iterator iter(*trie, 3, errorCode);
- if(errorCode.logIfFailureAndReset("UCharsTrie::Iterator(trie) constructor")) {
+ if(errorCode.errIfFailureAndReset("UCharsTrie::Iterator(trie) constructor")) {
return;
}
static const StringAndValue expected[]={
@@ -792,7 +792,7 @@ UCharsTrie *UCharsTrieTest::buildTrie(const StringAndValue data[], int32_t dataL
UnicodeString trieUChars;
builder_->buildUnicodeString(buildOption, trieUChars, errorCode);
LocalPointer<UCharsTrie> trie(builder_->build(buildOption, errorCode));
- if(!errorCode.logIfFailureAndReset("add()/build()")) {
+ if(!errorCode.errIfFailureAndReset("add()/build()")) {
builder_->add("zzz", 999, errorCode);
if(errorCode.reset()!=U_NO_WRITE_PERMISSION) {
errln("builder.build().add(zzz) did not set U_NO_WRITE_PERMISSION");
@@ -1011,7 +1011,7 @@ void UCharsTrieTest::checkIterator(UCharsTrie &trie,
const StringAndValue data[], int32_t dataLength) {
IcuTestErrorCode errorCode(*this, "checkIterator()");
UCharsTrie::Iterator iter(trie, 0, errorCode);
- if(errorCode.logIfFailureAndReset("UCharsTrie::Iterator(trieUChars) constructor")) {
+ if(errorCode.errIfFailureAndReset("UCharsTrie::Iterator(trieUChars) constructor")) {
return;
}
checkIterator(iter, data, dataLength);
@@ -1026,7 +1026,7 @@ void UCharsTrieTest::checkIterator(UCharsTrie::Iterator &iter,
break;
}
UBool hasNext=iter.next(errorCode);
- if(errorCode.logIfFailureAndReset("trie iterator next() for item %d: %s", (int)i, data[i].s)) {
+ if(errorCode.errIfFailureAndReset("trie iterator next() for item %d: %s", (int)i, data[i].s)) {
break;
}
if(!hasNext) {
@@ -1052,7 +1052,7 @@ void UCharsTrieTest::checkIterator(UCharsTrie::Iterator &iter,
errln("trie iterator hasNext()=TRUE after all items");
}
UBool hasNext=iter.next(errorCode);
- errorCode.logIfFailureAndReset("trie iterator next() after all items");
+ errorCode.errIfFailureAndReset("trie iterator next() after all items");
if(hasNext) {
errln("trie iterator next()=TRUE after all items");
}
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/uobjtest.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/uobjtest.cpp
index d58e8c25d33..d55ba7e5a13 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/uobjtest.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/uobjtest.cpp
@@ -215,7 +215,6 @@ UObject *UObjectTest::testClassNoClassID(UObject *obj, const char *className, co
#include "rbt_data.h"
#include "nultrans.h"
#include "anytrans.h"
-#include "digitlst.h"
#include "esctrn.h"
#include "funcrepl.h"
#include "servnotf.h"
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/ustrtest.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/ustrtest.cpp
index 4b7cb7ae7c7..57d72fb3f54 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/ustrtest.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/ustrtest.cpp
@@ -64,6 +64,7 @@ void UnicodeStringTest::runIndexedTest( int32_t index, UBool exec, const char* &
TESTCASE_AUTO(TestUInt16Pointers);
TESTCASE_AUTO(TestWCharPointers);
TESTCASE_AUTO(TestNullPointers);
+ TESTCASE_AUTO(TestUnicodeStringInsertAppendToSelf);
TESTCASE_AUTO_END;
}
@@ -1123,27 +1124,25 @@ UnicodeStringTest::TestMiscellaneous()
errln("UnicodeString(u[-1]).getTerminatedBuffer() returns a bad buffer");
}
- test1=UNICODE_STRING("la", 2);
- test1.append(UNICODE_STRING(" lila", 5).getTerminatedBuffer(), 0, -1);
- if(test1!=UNICODE_STRING("la lila", 7)) {
- errln("UnicodeString::append(const UChar *, start, length) failed");
- }
+ // NOTE: Some compilers will optimize u"la" to point to the same static memory
+ // as u" lila", offset by 3 code units
+ test1=UnicodeString(TRUE, u"la", 2);
+ test1.append(UnicodeString(TRUE, u" lila", 5).getTerminatedBuffer(), 0, -1);
+ assertEquals("UnicodeString::append(const UChar *, start, length) failed",
+ u"la lila", test1);
- test1.insert(3, UNICODE_STRING("dudum ", 6), 0, INT32_MAX);
- if(test1!=UNICODE_STRING("la dudum lila", 13)) {
- errln("UnicodeString::insert(start, const UniStr &, start, length) failed");
- }
+ test1.insert(3, UnicodeString(TRUE, u"dudum ", 6), 0, INT32_MAX);
+ assertEquals("UnicodeString::insert(start, const UniStr &, start, length) failed",
+ u"la dudum lila", test1);
static const UChar ucs[]={ 0x68, 0x6d, 0x20, 0 };
test1.insert(9, ucs, -1);
- if(test1!=UNICODE_STRING("la dudum hm lila", 16)) {
- errln("UnicodeString::insert(start, const UChar *, length) failed");
- }
+ assertEquals("UnicodeString::insert(start, const UChar *, length) failed",
+ u"la dudum hm lila", test1);
test1.replace(9, 2, (UChar)0x2b);
- if(test1!=UNICODE_STRING("la dudum + lila", 15)) {
- errln("UnicodeString::replace(start, length, UChar) failed");
- }
+ assertEquals("UnicodeString::replace(start, length, UChar) failed",
+ u"la dudum + lila", test1);
if(test1.hasMetaData() || UnicodeString().hasMetaData()) {
errln("UnicodeString::hasMetaData() returns TRUE");
@@ -2248,3 +2247,59 @@ UnicodeStringTest::TestNullPointers() {
UnicodeString(u"def").extract(nullptr, 0, errorCode);
assertEquals("buffer overflow extracting to nullptr", U_BUFFER_OVERFLOW_ERROR, errorCode);
}
+
+void UnicodeStringTest::TestUnicodeStringInsertAppendToSelf() {
+ IcuTestErrorCode status(*this, "TestUnicodeStringAppendToSelf");
+
+ // Test append operation
+ UnicodeString str(u"foo ");
+ str.append(str);
+ str.append(str);
+ str.append(str);
+ assertEquals("", u"foo foo foo foo foo foo foo foo ", str);
+
+ // Test append operation with readonly alias to start
+ str = UnicodeString(TRUE, u"foo ", 4);
+ str.append(str);
+ str.append(str);
+ str.append(str);
+ assertEquals("", u"foo foo foo foo foo foo foo foo ", str);
+
+ // Test append operation with aliased substring
+ str = u"abcde";
+ UnicodeString sub = str.tempSubString(1, 2);
+ str.append(sub);
+ assertEquals("", u"abcdebc", str);
+
+ // Test append operation with double-aliased substring
+ str = UnicodeString(TRUE, u"abcde", 5);
+ sub = str.tempSubString(1, 2);
+ str.append(sub);
+ assertEquals("", u"abcdebc", str);
+
+ // Test insert operation
+ str = u"a-*b";
+ str.insert(2, str);
+ str.insert(4, str);
+ str.insert(8, str);
+ assertEquals("", u"a-a-a-a-a-a-a-a-*b*b*b*b*b*b*b*b", str);
+
+ // Test insert operation with readonly alias to start
+ str = UnicodeString(TRUE, u"a-*b", 4);
+ str.insert(2, str);
+ str.insert(4, str);
+ str.insert(8, str);
+ assertEquals("", u"a-a-a-a-a-a-a-a-*b*b*b*b*b*b*b*b", str);
+
+ // Test insert operation with aliased substring
+ str = u"abcde";
+ sub = str.tempSubString(1, 3);
+ str.insert(2, sub);
+ assertEquals("", u"abbcdcde", str);
+
+ // Test insert operation with double-aliased substring
+ str = UnicodeString(TRUE, u"abcde", 5);
+ sub = str.tempSubString(1, 3);
+ str.insert(2, sub);
+ assertEquals("", u"abbcdcde", str);
+}
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/ustrtest.h b/Build/source/libs/icu/icu-src/source/test/intltest/ustrtest.h
index 4ba348c431f..218befdcc68 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/ustrtest.h
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/ustrtest.h
@@ -96,6 +96,7 @@ public:
void TestUInt16Pointers();
void TestWCharPointers();
void TestNullPointers();
+ void TestUnicodeStringInsertAppendToSelf();
};
#endif
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/uts46test.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/uts46test.cpp
index 05c2edb6868..1a9bd6b5a7a 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/uts46test.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/uts46test.cpp
@@ -44,7 +44,7 @@ public:
void checkIdnaTestResult(const char *line, const char *type,
const UnicodeString &expected, const UnicodeString &result,
- const IDNAInfo &info);
+ const char *status, const IDNAInfo &info);
void idnaTestOneLine(char *fields[][2], UErrorCode &errorCode);
private:
@@ -73,7 +73,7 @@ void UTS46Test::runIndexedTest(int32_t index, UBool exec, const char *&name, cha
commonOptions|
UIDNA_NONTRANSITIONAL_TO_ASCII|UIDNA_NONTRANSITIONAL_TO_UNICODE,
errorCode);
- if(errorCode.logDataIfFailureAndReset("createUTS46Instance()")) {
+ if(errorCode.errDataIfFailureAndReset("createUTS46Instance()")) {
name="";
return;
}
@@ -611,7 +611,7 @@ void UTS46Test::TestSomeCases() {
trans->nameToUnicode(input, uT, uTInfo, errorCode);
nontrans->nameToASCII(input, aN, aNInfo, errorCode);
nontrans->nameToUnicode(input, uN, uNInfo, errorCode);
- if(errorCode.logIfFailureAndReset("first-level processing [%d/%s] %s",
+ if(errorCode.errIfFailureAndReset("first-level processing [%d/%s] %s",
(int)i, testCase.o, testCase.s)
) {
continue;
@@ -688,7 +688,7 @@ void UTS46Test::TestSomeCases() {
nontrans->nameToASCII(uT, uTaN, uTaNInfo, errorCode);
nontrans->nameToUnicode(aN, aNuN, aNuNInfo, errorCode);
nontrans->nameToASCII(uN, uNaN, uNaNInfo, errorCode);
- if(errorCode.logIfFailureAndReset("second-level processing [%d/%s] %s",
+ if(errorCode.errIfFailureAndReset("second-level processing [%d/%s] %s",
(int)i, testCase.o, testCase.s)
) {
continue;
@@ -732,7 +732,7 @@ void UTS46Test::TestSomeCases() {
trans->labelToUnicode(input, uTL, uTLInfo, errorCode);
nontrans->labelToASCII(input, aNL, aNLInfo, errorCode);
nontrans->labelToUnicode(input, uNL, uNLInfo, errorCode);
- if(errorCode.logIfFailureAndReset("labelToXYZ processing [%d/%s] %s",
+ if(errorCode.errIfFailureAndReset("labelToXYZ processing [%d/%s] %s",
(int)i, testCase.o, testCase.s)
) {
continue;
@@ -852,7 +852,7 @@ void UTS46Test::TestSomeCases() {
trans->nameToUnicodeUTF8(input8, uT8Sink, uT8Info, errorCode);
nontrans->nameToASCII_UTF8(input8, aN8Sink, aN8Info, errorCode);
nontrans->nameToUnicodeUTF8(input8, uN8Sink, uN8Info, errorCode);
- if(errorCode.logIfFailureAndReset("UTF-8 processing [%d/%s] %s",
+ if(errorCode.errIfFailureAndReset("UTF-8 processing [%d/%s] %s",
(int)i, testCase.o, testCase.s)
) {
continue;
@@ -896,7 +896,7 @@ void UTS46Test::TestSomeCases() {
namespace {
-const int32_t kNumFields = 4; // Will need 5 when we read NV8 from the optional fifth column.
+const int32_t kNumFields = 7;
void U_CALLCONV
idnaTestLineFn(void *context,
@@ -905,17 +905,43 @@ idnaTestLineFn(void *context,
reinterpret_cast<UTS46Test *>(context)->idnaTestOneLine(fields, *pErrorCode);
}
+UnicodeString s16FromField(char *(&field)[2]) {
+ int32_t length = (int32_t)(field[1] - field[0]);
+ return UnicodeString::fromUTF8(StringPiece(field[0], length)).trim().unescape();
+}
+
+std::string statusFromField(char *(&field)[2]) {
+ const char *start = u_skipWhitespace(field[0]);
+ std::string status;
+ if (start != field[1]) {
+ int32_t length = (int32_t)(field[1] - start);
+ while (length > 0 && (start[length - 1] == u' ' || start[length - 1] == u'\t')) {
+ --length;
+ }
+ status.assign(start, length);
+ }
+ return status;
+}
+
} // namespace
void UTS46Test::checkIdnaTestResult(const char *line, const char *type,
const UnicodeString &expected, const UnicodeString &result,
- const IDNAInfo &info) {
+ const char *status, const IDNAInfo &info) {
// An error in toUnicode or toASCII is indicated by a value in square brackets,
// such as "[B5 B6]".
- UBool expectedHasErrors = !expected.isEmpty() && expected[0] == u'[';
+ UBool expectedHasErrors = FALSE;
+ if (*status != 0) {
+ if (*status != u'[') {
+ errln("%s status field does not start with '[': %s\n %s", type, status, line);
+ }
+ if (strcmp(status, u8"[]") != 0) {
+ expectedHasErrors = TRUE;
+ }
+ }
if (expectedHasErrors != info.hasErrors()) {
- errln("%s expected errors %d != %d = actual has errors: %04lx\n %s",
- type, expectedHasErrors, info.hasErrors(), (long)info.getErrors(), line);
+ errln("%s expected errors %s %d != %d = actual has errors: %04lx\n %s",
+ type, status, expectedHasErrors, info.hasErrors(), (long)info.getErrors(), line);
}
if (!expectedHasErrors && expected != result) {
errln("%s expected != actual\n %s", type, line);
@@ -925,57 +951,68 @@ void UTS46Test::checkIdnaTestResult(const char *line, const char *type,
}
void UTS46Test::idnaTestOneLine(char *fields[][2], UErrorCode &errorCode) {
- // Column 1: type - T for transitional, N for nontransitional, B for both
- const char *typePtr = u_skipWhitespace(fields[0][0]);
- const char *limit;
- char typeChar;
- if (typePtr == fields[0][1] ||
- ((typeChar = *typePtr) != 'B' && typeChar != 'N' && typeChar != 'T') ||
- (limit = u_skipWhitespace(typePtr + 1)) != fields[0][1]) {
- errln("empty or unknown type field: %s", fields[0][0]);
- errorCode = U_ILLEGAL_ARGUMENT_ERROR;
- return;
- }
-
- // Column 2: source - the source string to be tested
- int32_t length = (int32_t)(fields[1][1] - fields[1][0]);
- UnicodeString source16 = UnicodeString::fromUTF8(StringPiece(fields[1][0], length)).
- trim().unescape();
+ // IdnaTestV2.txt (since Unicode 11)
+ // Column 1: source
+ // The source string to be tested
+ UnicodeString source = s16FromField(fields[0]);
- // Column 3: toUnicode - the result of applying toUnicode to the source.
+ // Column 2: toUnicode
+ // The result of applying toUnicode to the source, with Transitional_Processing=false.
// A blank value means the same as the source value.
- length = (int32_t)(fields[2][1] - fields[2][0]);
- UnicodeString unicode16 = UnicodeString::fromUTF8(StringPiece(fields[2][0], length)).
- trim().unescape();
- if (unicode16.isEmpty()) {
- unicode16 = source16;
+ UnicodeString toUnicode = s16FromField(fields[1]);
+ if (toUnicode.isEmpty()) {
+ toUnicode = source;
}
- // Column 4: toASCII - the result of applying toASCII to the source, using the specified type.
+ // Column 3: toUnicodeStatus
+ // A set of status codes, each corresponding to a particular test.
+ // A blank value means [].
+ std::string toUnicodeStatus = statusFromField(fields[2]);
+
+ // Column 4: toAsciiN
+ // The result of applying toASCII to the source, with Transitional_Processing=false.
// A blank value means the same as the toUnicode value.
- length = (int32_t)(fields[3][1] - fields[3][0]);
- UnicodeString ascii16 = UnicodeString::fromUTF8(StringPiece(fields[3][0], length)).
- trim().unescape();
- if (ascii16.isEmpty()) {
- ascii16 = unicode16;
+ UnicodeString toAsciiN = s16FromField(fields[3]);
+ if (toAsciiN.isEmpty()) {
+ toAsciiN = toUnicode;
+ }
+
+ // Column 5: toAsciiNStatus
+ // A set of status codes, each corresponding to a particular test.
+ // A blank value means the same as the toUnicodeStatus value.
+ std::string toAsciiNStatus = statusFromField(fields[4]);
+ if (toAsciiNStatus.empty()) {
+ toAsciiNStatus = toUnicodeStatus;
}
- // Column 5: NV8 - present if the toUnicode value would not be a valid domain name under IDNA2008. Not a normative field.
- // Ignored as long as we do not implement and test vanilla IDNA2008.
+ // Column 6: toAsciiT
+ // The result of applying toASCII to the source, with Transitional_Processing=true.
+ // A blank value means the same as the toAsciiN value.
+ UnicodeString toAsciiT = s16FromField(fields[5]);
+ if (toAsciiT.isEmpty()) {
+ toAsciiT = toAsciiN;
+ }
+
+ // Column 7: toAsciiTStatus
+ // A set of status codes, each corresponding to a particular test.
+ // A blank value means the same as the toAsciiNStatus value.
+ std::string toAsciiTStatus = statusFromField(fields[6]);
+ if (toAsciiTStatus.empty()) {
+ toAsciiTStatus = toAsciiNStatus;
+ }
// ToASCII/ToUnicode, transitional/nontransitional
UnicodeString uN, aN, aT;
IDNAInfo uNInfo, aNInfo, aTInfo;
- nontrans->nameToUnicode(source16, uN, uNInfo, errorCode);
- checkIdnaTestResult(fields[0][0], "toUnicodeNontrans", unicode16, uN, uNInfo);
- if (typeChar == 'T' || typeChar == 'B') {
- trans->nameToASCII(source16, aT, aTInfo, errorCode);
- checkIdnaTestResult(fields[0][0], "toASCIITrans", ascii16, aT, aTInfo);
- }
- if (typeChar == 'N' || typeChar == 'B') {
- nontrans->nameToASCII(source16, aN, aNInfo, errorCode);
- checkIdnaTestResult(fields[0][0], "toASCIINontrans", ascii16, aN, aNInfo);
- }
+ nontrans->nameToUnicode(source, uN, uNInfo, errorCode);
+ checkIdnaTestResult(fields[0][0], "toUnicodeNontrans", toUnicode, uN,
+ toUnicodeStatus.c_str(), uNInfo);
+ nontrans->nameToASCII(source, aN, aNInfo, errorCode);
+ checkIdnaTestResult(fields[0][0], "toASCIINontrans", toAsciiN, aN,
+ toAsciiNStatus.c_str(), aNInfo);
+ trans->nameToASCII(source, aT, aTInfo, errorCode);
+ checkIdnaTestResult(fields[0][0], "toASCIITrans", toAsciiT, aT,
+ toAsciiTStatus.c_str(), aTInfo);
}
// TODO: de-duplicate
@@ -985,12 +1022,12 @@ U_DEFINE_LOCAL_OPEN_POINTER(LocalStdioFilePointer, FILE, fclose);
void UTS46Test::IdnaTest() {
IcuTestErrorCode errorCode(*this, "IdnaTest");
const char *sourceTestDataPath = getSourceTestData(errorCode);
- if (errorCode.logIfFailureAndReset("unable to find the source/test/testdata "
+ if (errorCode.errIfFailureAndReset("unable to find the source/test/testdata "
"folder (getSourceTestData())")) {
return;
}
CharString path(sourceTestDataPath, errorCode);
- path.appendPathPart("IdnaTest.txt", errorCode);
+ path.appendPathPart("IdnaTestV2.txt", errorCode);
LocalStdioFilePointer idnaTestFile(fopen(path.data(), "r"));
if (idnaTestFile.isNull()) {
errln("unable to open %s", path.data());
@@ -1002,7 +1039,7 @@ void UTS46Test::IdnaTest() {
// Comments are indicated with hash marks.
char *fields[kNumFields][2];
u_parseDelimitedFile(path.data(), ';', fields, kNumFields, idnaTestLineFn, this, errorCode);
- if (errorCode.logIfFailureAndReset("error parsing IdnaTest.txt")) {
+ if (errorCode.errIfFailureAndReset("error parsing IdnaTest.txt")) {
return;
}
}
diff --git a/Build/source/libs/icu/icu-src/source/test/intltest/windttst.cpp b/Build/source/libs/icu/icu-src/source/test/intltest/windttst.cpp
index dea6ebf2475..97c98d69e7e 100644
--- a/Build/source/libs/icu/icu-src/source/test/intltest/windttst.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/intltest/windttst.cpp
@@ -88,7 +88,8 @@ void Win32DateTimeTest::testLocales(DateFormatTest *log)
for (int z = 0; z < ec; z += 1) {
UnicodeString equiv = TimeZone::getEquivalentID(zoneID, z);
- if (found = uprv_getWindowsTimeZoneInfo(&tzi, equiv.getBuffer(), equiv.length())) {
+ found = uprv_getWindowsTimeZoneInfo(&tzi, equiv.getBuffer(), equiv.length());
+ if (found) {
break;
}
}
diff --git a/Build/source/libs/icu/icu-src/source/test/iotest/filetst.c b/Build/source/libs/icu/icu-src/source/test/iotest/filetst.c
index 12646e6e2fc..1c667e174e1 100644
--- a/Build/source/libs/icu/icu-src/source/test/iotest/filetst.c
+++ b/Build/source/libs/icu/icu-src/source/test/iotest/filetst.c
@@ -731,7 +731,7 @@ static void TestfgetsNewLineHandling(void) {
static void TestLineCount(const char *prefixLine, const char *line, int32_t numRepititions) {
UChar buffer[64];
UChar expectedBuffer[64];
- int32_t lineLen = strlen(line);
+ int32_t lineLen = (int32_t)strlen(line);
UChar *returnedUCharBuffer;
int32_t repetitions;
UFILE *myFile = NULL;
diff --git a/Build/source/libs/icu/icu-src/source/test/iotest/iotest.cpp b/Build/source/libs/icu/icu-src/source/test/iotest/iotest.cpp
index 6bc549ad4da..186d10e17e5 100644
--- a/Build/source/libs/icu/icu-src/source/test/iotest/iotest.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/iotest/iotest.cpp
@@ -178,18 +178,18 @@ char* DataDrivenLogger::fgTestDataPath = NULL;
static int64_t
uto64(const UChar *buffer)
{
- int64_t result = 0;
+ uint64_t result = 0;
/* iterate through buffer */
while(*buffer) {
/* read the next digit */
- result *= 16;
+ result *= 16u;
if (!u_isxdigit(*buffer)) {
log_err("\\u%04X is not a valid hex digit for this test\n", (UChar)*buffer);
}
result += *buffer - 0x0030 - (*buffer >= 0x0041 ? (*buffer >= 0x0061 ? 39 : 7) : 0);
buffer++;
}
- return result;
+ return (int64_t)result;
}
#endif
diff --git a/Build/source/libs/icu/icu-src/source/test/iotest/trnstst.c b/Build/source/libs/icu/icu-src/source/test/iotest/trnstst.c
index be32143e79e..b82e79df4fc 100644
--- a/Build/source/libs/icu/icu-src/source/test/iotest/trnstst.c
+++ b/Build/source/libs/icu/icu-src/source/test/iotest/trnstst.c
@@ -193,7 +193,7 @@ static void TestTranslitFileOut(void)
return;
}
- len=fread(ubuf, sizeof(UChar), u_strlen(compare), infile);
+ len= (int)fread(ubuf, sizeof(UChar), u_strlen(compare), infile);
log_verbose("Read %d UChars\n", len);
if(len != u_strlen(compare))
{
diff --git a/Build/source/libs/icu/icu-src/source/test/perf/DateFmtPerf/DateFmtPerf.cpp b/Build/source/libs/icu/icu-src/source/test/perf/DateFmtPerf/DateFmtPerf.cpp
index 4f053c35615..d0a729550fc 100644
--- a/Build/source/libs/icu/icu-src/source/test/perf/DateFmtPerf/DateFmtPerf.cpp
+++ b/Build/source/libs/icu/icu-src/source/test/perf/DateFmtPerf/DateFmtPerf.cpp
@@ -278,7 +278,7 @@ int main(int argc, const char* argv[]){
if(U_FAILURE(status)){ // ERROR HERE!!!
- cout << "initialize failed! " << status << endl;
+ cout << "initialize failed! " << u_errorName(status) << endl;
return status;
}
//cout << "Done initializing!\n" << endl;
diff --git a/Build/source/libs/icu/icu-src/source/test/perf/normperf/Makefile.in b/Build/source/libs/icu/icu-src/source/test/perf/normperf/Makefile.in
index 1655c78cd66..bc63e822686 100644
--- a/Build/source/libs/icu/icu-src/source/test/perf/normperf/Makefile.in
+++ b/Build/source/libs/icu/icu-src/source/test/perf/normperf/Makefile.in
@@ -17,17 +17,20 @@ include $(top_builddir)/icudefs.mk
subdir = test/perf/normperf
## Extra files to remove for 'make clean'
-CLEANFILES = *~ $(DEPS)
+CLEANFILES = *~ $(DEPS) $(SIMPLE_DEPS)
## Target information
TARGET = normperf
+SIMPLE = simplenormperf
CPPFLAGS += -I$(top_srcdir)/common -I$(top_srcdir)/tools/toolutil -I$(top_srcdir)/tools/ctestfw
LIBS = $(LIBCTESTFW) $(LIBICUI18N) $(LIBICUUC) $(LIBICUTOOLUTIL) $(DEFAULT_LIBS) $(LIB_M)
OBJECTS = normperf.o
+SIMPLE_OBJ = simplenormperf.o
DEPS = $(OBJECTS:.o=.d)
+SIMPLE_DEPS = $(SIMPLE_OBJ:.o=.d)
## List of phony targets
.PHONY : all all-local install install-local clean clean-local \
@@ -44,7 +47,7 @@ distclean : distclean-local
dist: dist-local
check: all check-local
-all-local: $(TARGET)
+all-local: $(TARGET) $(SIMPLE)
install-local:
@@ -52,7 +55,7 @@ dist-local:
clean-local:
test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES)
- $(RMV) $(OBJECTS) $(TARGET)
+ $(RMV) $(OBJECTS) $(SIMPLE_OBJ) $(TARGET) $(SIMPLE)
distclean-local: clean-local
$(RMV) Makefile
@@ -67,16 +70,21 @@ $(TARGET) : $(OBJECTS)
$(LINK.cc) -o $@ $^ $(LIBS)
$(POST_BUILD_STEP)
+$(SIMPLE) : $(SIMPLE_OBJ)
+ $(LINK.cc) -o $@ $^ $(LIBS)
+ $(POST_BUILD_STEP)
+
invoke:
ICU_DATA=$${ICU_DATA:-$(top_builddir)/data/} TZ=PST8PDT $(INVOKE) $(INVOCATION)
ifeq (,$(MAKECMDGOALS))
-include $(DEPS)
+-include $(SIMPLE_DEPS)
else
ifneq ($(patsubst %clean,,$(MAKECMDGOALS)),)
ifneq ($(patsubst %install,,$(MAKECMDGOALS)),)
-include $(DEPS)
+-include $(SIMPLE_DEPS)
endif
endif
endif
-
diff --git a/Build/source/libs/icu/icu-src/source/test/perf/normperf/simplenormperf.cpp b/Build/source/libs/icu/icu-src/source/test/perf/normperf/simplenormperf.cpp
new file mode 100644
index 00000000000..b6865ba1eca
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/test/perf/normperf/simplenormperf.cpp
@@ -0,0 +1,352 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// simplenormperf.cpp
+// created: 2018mar15 Markus W. Scherer
+
+#include <stdio.h>
+#include <string>
+
+#include "unicode/utypes.h"
+#include "unicode/bytestream.h"
+#include "unicode/normalizer2.h"
+#include "unicode/stringpiece.h"
+#include "unicode/unistr.h"
+#include "unicode/utf8.h"
+#include "unicode/utimer.h"
+#include "cmemory.h"
+
+using icu::Normalizer2;
+using icu::UnicodeString;
+
+namespace {
+
+// Strings with commonly occurring BMP characters.
+class CommonChars {
+public:
+ static UnicodeString getMixed(int32_t minLength) {
+ return extend(UnicodeString(latin1).append(japanese).append(arabic), minLength);
+ }
+ static UnicodeString getLatin1(int32_t minLength) { return extend(latin1, minLength); }
+ static UnicodeString getLowercaseLatin1(int32_t minLength) { return extend(lowercaseLatin1, minLength); }
+ static UnicodeString getASCII(int32_t minLength) { return extend(ascii, minLength); }
+ static UnicodeString getJapanese(int32_t minLength) { return extend(japanese, minLength); }
+
+ // Returns an array of UTF-8 offsets, one per code point.
+ // Assumes all BMP characters.
+ static int32_t *toUTF8WithOffsets(const UnicodeString &s16, std::string &s8, int32_t &numCodePoints) {
+ s8.clear();
+ s8.reserve(s16.length());
+ s16.toUTF8String(s8);
+ const char *s = s8.data();
+ int32_t length = s8.length();
+ int32_t *offsets = new int32_t[length + 1];
+ int32_t numCP = 0;
+ for (int32_t i = 0; i < length;) {
+ offsets[numCP++] = i;
+ U8_FWD_1(s, i, length);
+ }
+ offsets[numCP] = length;
+ numCodePoints = numCP;
+ return offsets;
+ }
+
+private:
+ static UnicodeString extend(const UnicodeString &s, int32_t minLength) {
+ UnicodeString result(s);
+ while (result.length() < minLength) {
+ UnicodeString twice = result + result;
+ result = std::move(twice);
+ }
+ return result;
+ }
+
+ static const UChar *const latin1;
+ static const UChar *const lowercaseLatin1;
+ static const UChar *const ascii;
+ static const UChar *const japanese;
+ static const UChar *const arabic;
+};
+
+const UChar *const CommonChars::latin1 =
+ // Goethe’s Bergschloß in normal sentence case.
+ u"Da droben auf jenem Berge, da steht ein altes Schloß, "
+ u"wo hinter Toren und Türen sonst lauerten Ritter und Roß.\n"
+ u"Verbrannt sind Türen und Tore, und überall ist es so still; "
+ u"das alte verfallne Gemäuer durchklettr ich, wie ich nur will.\n"
+ u"Hierneben lag ein Keller, so voll von köstlichem Wein; "
+ u"nun steiget nicht mehr mit Krügen die Kellnerin heiter hinein.\n"
+ u"Sie setzt den Gästen im Saale nicht mehr die Becher umher, "
+ u"sie füllt zum Heiligen Mahle dem Pfaffen das Fläschchen nicht mehr.\n"
+ u"Sie reicht dem lüsternen Knappen nicht mehr auf dem Gange den Trank, "
+ u"und nimmt für flüchtige Gabe nicht mehr den flüchtigen Dank.\n"
+ u"Denn alle Balken und Decken, sie sind schon lange verbrannt, "
+ u"und Trepp und Gang und Kapelle in Schutt und Trümmer verwandt.\n"
+ u"Doch als mit Zither und Flasche nach diesen felsigen Höhn "
+ u"ich an dem heitersten Tage mein Liebchen steigen gesehn,\n"
+ u"da drängte sich frohes Behagen hervor aus verödeter Ruh, "
+ u"da gings wie in alten Tagen recht feierlich wieder zu.\n"
+ u"Als wären für stattliche Gäste die weitesten Räume bereit, "
+ u"als käm ein Pärchen gegangen aus jener tüchtigen Zeit.\n"
+ u"Als stünd in seiner Kapelle der würdige Pfaffe schon da "
+ u"und fragte: Wollt ihr einander? Wir aber lächelten: Ja!\n"
+ u"Und tief bewegten Gesänge des Herzens innigsten Grund, "
+ u"Es zeugte, statt der Menge, der Echo schallender Mund.\n"
+ u"Und als sich gegen Abend im stillen alles verlor,"
+ u"da blickte die glühende Sonne zum schroffen Gipfel empor.\n"
+ u"Und Knapp und Kellnerin glänzen als Herren weit und breit; "
+ u"sie nimmt sich zum Kredenzen und er zum Danke sich Zeit.\n";
+
+const UChar *const CommonChars::lowercaseLatin1 =
+ // Goethe’s Bergschloß in all lowercase
+ u"da droben auf jenem berge, da steht ein altes schloß, "
+ u"wo hinter toren und türen sonst lauerten ritter und roß.\n"
+ u"verbrannt sind türen und tore, und überall ist es so still; "
+ u"das alte verfallne gemäuer durchklettr ich, wie ich nur will.\n"
+ u"hierneben lag ein keller, so voll von köstlichem wein; "
+ u"nun steiget nicht mehr mit krügen die kellnerin heiter hinein.\n"
+ u"sie setzt den gästen im saale nicht mehr die becher umher, "
+ u"sie füllt zum heiligen mahle dem pfaffen das fläschchen nicht mehr.\n"
+ u"sie reicht dem lüsternen knappen nicht mehr auf dem gange den trank, "
+ u"und nimmt für flüchtige gabe nicht mehr den flüchtigen dank.\n"
+ u"denn alle balken und decken, sie sind schon lange verbrannt, "
+ u"und trepp und gang und kapelle in schutt und trümmer verwandt.\n"
+ u"doch als mit zither und flasche nach diesen felsigen höhn "
+ u"ich an dem heitersten tage mein liebchen steigen gesehn,\n"
+ u"da drängte sich frohes behagen hervor aus verödeter ruh, "
+ u"da gings wie in alten tagen recht feierlich wieder zu.\n"
+ u"als wären für stattliche gäste die weitesten räume bereit, "
+ u"als käm ein pärchen gegangen aus jener tüchtigen zeit.\n"
+ u"als stünd in seiner kapelle der würdige pfaffe schon da "
+ u"und fragte: wollt ihr einander? wir aber lächelten: ja!\n"
+ u"und tief bewegten gesänge des herzens innigsten grund, "
+ u"es zeugte, statt der menge, der echo schallender mund.\n"
+ u"und als sich gegen abend im stillen alles verlor,"
+ u"da blickte die glühende sonne zum schroffen gipfel empor.\n"
+ u"und knapp und kellnerin glänzen als herren weit und breit; "
+ u"sie nimmt sich zum kredenzen und er zum danke sich zeit.\n";
+
+const UChar *const CommonChars::ascii =
+ // Goethe’s Bergschloß in normal sentence case but ASCII-fied
+ u"Da droben auf jenem Berge, da steht ein altes Schloss, "
+ u"wo hinter Toren und Tueren sonst lauerten Ritter und Ross.\n"
+ u"Verbrannt sind Tueren und Tore, und ueberall ist es so still; "
+ u"das alte verfallne Gemaeuer durchklettr ich, wie ich nur will.\n"
+ u"Hierneben lag ein Keller, so voll von koestlichem Wein; "
+ u"nun steiget nicht mehr mit Kruegen die Kellnerin heiter hinein.\n"
+ u"Sie setzt den Gaesten im Saale nicht mehr die Becher umher, "
+ u"sie fuellt zum Heiligen Mahle dem Pfaffen das Flaeschchen nicht mehr.\n"
+ u"Sie reicht dem luesternen Knappen nicht mehr auf dem Gange den Trank, "
+ u"und nimmt fuer fluechtige Gabe nicht mehr den fluechtigen Dank.\n"
+ u"Denn alle Balken und Decken, sie sind schon lange verbrannt, "
+ u"und Trepp und Gang und Kapelle in Schutt und Truemmer verwandt.\n"
+ u"Doch als mit Zither und Flasche nach diesen felsigen Hoehn "
+ u"ich an dem heitersten Tage mein Liebchen steigen gesehn,\n"
+ u"da draengte sich frohes Behagen hervor aus veroedeter Ruh, "
+ u"da gings wie in alten Tagen recht feierlich wieder zu.\n"
+ u"Als waeren fuer stattliche Gaeste die weitesten Raeume bereit, "
+ u"als kaem ein Paerchen gegangen aus jener tuechtigen Zeit.\n"
+ u"Als stuend in seiner Kapelle der wuerdige Pfaffe schon da "
+ u"und fragte: Wollt ihr einander? Wir aber laechelten: Ja!\n"
+ u"Und tief bewegten Gesaenge des Herzens innigsten Grund, "
+ u"Es zeugte, statt der Menge, der Echo schallender Mund.\n"
+ u"Und als sich gegen Abend im stillen alles verlor,"
+ u"da blickte die gluehende Sonne zum schroffen Gipfel empor.\n"
+ u"Und Knapp und Kellnerin glaenzen als Herren weit und breit; "
+ u"sie nimmt sich zum Kredenzen und er zum Danke sich Zeit.\n";
+
+const UChar *const CommonChars::japanese =
+ // Ame ni mo makezu = Be not Defeated by the Rain, by Kenji Miyazawa.
+ u"雨にもまけず風にもまけず雪にも夏の暑さにもまけぬ"
+ u"丈夫なからだをもち慾はなく決して瞋らず"
+ u"いつもしずかにわらっている一日に玄米四合と"
+ u"味噌と少しの野菜をたべあらゆることを"
+ u"じぶんをかんじょうにいれずによくみききしわかり"
+ u"そしてわすれず野原の松の林の蔭の"
+ u"小さな萱ぶきの小屋にいて東に病気のこどもあれば"
+ u"行って看病してやり西につかれた母あれば"
+ u"行ってその稲の束を負い南に死にそうな人あれば"
+ u"行ってこわがらなくてもいいといい"
+ u"北にけんかやそしょうがあれば"
+ u"つまらないからやめろといいひでりのときはなみだをながし"
+ u"さむさのなつはおろおろあるきみんなにでくのぼうとよばれ"
+ u"ほめられもせずくにもされずそういうものにわたしはなりたい";
+
+const UChar *const CommonChars::arabic =
+ // Some Arabic for variety. "What is Unicode?"
+ // http://www.unicode.org/standard/translations/arabic.html
+ u"تتعامل الحواسيب بالأسام مع الأرقام فقط، "
+ u"و تخزن الحروف و المحارف "
+ u"الأخرى بتخصيص رقم لكل واحد "
+ u"منها. قبل اختراع يونيكود كان هناك ";
+
+// TODO: class BenchmarkPerCodePoint?
+
+class Operation {
+public:
+ Operation() {}
+ virtual ~Operation();
+ virtual double call(int32_t iterations, int32_t pieceLength) = 0;
+
+protected:
+ UTimer startTime;
+};
+
+Operation::~Operation() {}
+
+const int32_t kLengths[] = { 5, 12, 30, 100, 1000, 10000 };
+
+int32_t getMaxLength() { return kLengths[UPRV_LENGTHOF(kLengths) - 1]; }
+
+// Returns seconds per code point.
+double measure(Operation &op, int32_t pieceLength) {
+ // Increase the number of iterations until we use at least one second.
+ int32_t iterations = 1;
+ for (;;) {
+ double seconds = op.call(iterations, pieceLength);
+ if (seconds >= 1) {
+ if (iterations > 1) {
+ return seconds / (iterations * pieceLength);
+ } else {
+ // Run it once more, to avoid measuring only the warm-up.
+ return op.call(1, pieceLength) / (iterations * pieceLength);
+ }
+ }
+ if (seconds < 0.01) {
+ iterations *= 10;
+ } else if (seconds < 0.55) {
+ iterations *= 1.1 / seconds;
+ } else {
+ iterations *= 2;
+ }
+ }
+}
+
+void benchmark(const char *name, Operation &op) {
+ for (int32_t i = 0; i < UPRV_LENGTHOF(kLengths); ++i) {
+ int32_t pieceLength = kLengths[i];
+ double secPerCp = measure(op, pieceLength);
+ printf("%s %6d %12f ns/cp\n", name, (int)pieceLength, secPerCp * 1000000000);
+ }
+ puts("");
+}
+
+class NormalizeUTF16 : public Operation {
+public:
+ NormalizeUTF16(const Normalizer2 &n2, const UnicodeString &text) :
+ norm2(n2), src(text), s(src.getBuffer()) {}
+ virtual ~NormalizeUTF16();
+ virtual double call(int32_t iterations, int32_t pieceLength);
+
+private:
+ const Normalizer2 &norm2;
+ UnicodeString src;
+ const UChar *s;
+ UnicodeString dest;
+};
+
+NormalizeUTF16::~NormalizeUTF16() {}
+
+// Assumes all BMP characters.
+double NormalizeUTF16::call(int32_t iterations, int32_t pieceLength) {
+ int32_t start = 0;
+ int32_t limit = src.length() - pieceLength;
+ UnicodeString piece;
+ UErrorCode errorCode = U_ZERO_ERROR;
+ utimer_getTime(&startTime);
+ for (int32_t i = 0; i < iterations; ++i) {
+ piece.setTo(FALSE, s + start, pieceLength);
+ norm2.normalize(piece, dest, errorCode);
+ start = (start + pieceLength) % limit;
+ }
+ return utimer_getElapsedSeconds(&startTime);
+}
+
+class NormalizeUTF8 : public Operation {
+public:
+ NormalizeUTF8(const Normalizer2 &n2, const UnicodeString &text) : norm2(n2), sink(&dest) {
+ offsets = CommonChars::toUTF8WithOffsets(text, src, numCodePoints);
+ s = src.data();
+ }
+ virtual ~NormalizeUTF8();
+ virtual double call(int32_t iterations, int32_t pieceLength);
+
+private:
+ const Normalizer2 &norm2;
+ std::string src;
+ const char *s;
+ int32_t *offsets;
+ int32_t numCodePoints;
+ std::string dest;
+ icu::StringByteSink<std::string> sink;
+};
+
+NormalizeUTF8::~NormalizeUTF8() {
+ delete[] offsets;
+}
+
+double NormalizeUTF8::call(int32_t iterations, int32_t pieceLength) {
+ int32_t start = 0;
+ int32_t limit = numCodePoints - pieceLength;
+ UErrorCode errorCode = U_ZERO_ERROR;
+ utimer_getTime(&startTime);
+ for (int32_t i = 0; i < iterations; ++i) {
+ int32_t start8 = offsets[start];
+ int32_t limit8 = offsets[start + pieceLength];
+ icu::StringPiece piece(s + start8, limit8 - start8);
+ norm2.normalizeUTF8(0, piece, sink, nullptr, errorCode);
+ start = (start + pieceLength) % limit;
+ }
+ return utimer_getElapsedSeconds(&startTime);
+}
+
+} // namespace
+
+extern int main(int /*argc*/, const char * /*argv*/[]) {
+ // More than the longest piece length so that we read from different parts of the string
+ // for that piece length.
+ int32_t maxLength = getMaxLength() * 10;
+ UErrorCode errorCode = U_ZERO_ERROR;
+ const Normalizer2 *nfc = Normalizer2::getNFCInstance(errorCode);
+ const Normalizer2 *nfkc_cf = Normalizer2::getNFKCCasefoldInstance(errorCode);
+ if (U_FAILURE(errorCode)) {
+ fprintf(stderr,
+ "simplenormperf: failed to get Normalizer2 instances - %s\n",
+ u_errorName(errorCode));
+ }
+ {
+ // Base line: Should remain in the fast loop without trie lookups.
+ NormalizeUTF16 op(*nfc, CommonChars::getLatin1(maxLength));
+ benchmark("NFC/UTF-16/latin1", op);
+ }
+ {
+ // Base line 2: Read UTF-8, trie lookups, but should have nothing to do.
+ NormalizeUTF8 op(*nfc, CommonChars::getJapanese(maxLength));
+ benchmark("NFC/UTF-8/japanese", op);
+ }
+ {
+ NormalizeUTF16 op(*nfkc_cf, CommonChars::getMixed(maxLength));
+ benchmark("NFKC_CF/UTF-16/mixed", op);
+ }
+ {
+ NormalizeUTF16 op(*nfkc_cf, CommonChars::getLowercaseLatin1(maxLength));
+ benchmark("NFKC_CF/UTF-16/lowercaseLatin1", op);
+ }
+ {
+ NormalizeUTF16 op(*nfkc_cf, CommonChars::getJapanese(maxLength));
+ benchmark("NFKC_CF/UTF-16/japanese", op);
+ }
+ {
+ NormalizeUTF8 op(*nfkc_cf, CommonChars::getMixed(maxLength));
+ benchmark("NFKC_CF/UTF-8/mixed", op);
+ }
+ {
+ NormalizeUTF8 op(*nfkc_cf, CommonChars::getLowercaseLatin1(maxLength));
+ benchmark("NFKC_CF/UTF-8/lowercaseLatin1", op);
+ }
+ {
+ NormalizeUTF8 op(*nfkc_cf, CommonChars::getJapanese(maxLength));
+ benchmark("NFKC_CF/UTF-8/japanese", op);
+ }
+ return 0;
+}
diff --git a/Build/source/libs/icu/icu-src/source/test/testdata/BidiTest.txt b/Build/source/libs/icu/icu-src/source/test/testdata/BidiTest.txt
index 53a3d7c3de8..e7637c3de25 100644
--- a/Build/source/libs/icu/icu-src/source/test/testdata/BidiTest.txt
+++ b/Build/source/libs/icu/icu-src/source/test/testdata/BidiTest.txt
@@ -1,6 +1,6 @@
-# BidiTest-10.0.0.txt
-# Date: 2017-02-14, 04:25:55 GMT
-# © 2017 Unicode®, Inc.
+# BidiTest-11.0.0.txt
+# Date: 2018-01-31, 08:20:07 GMT
+# © 2018 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# For terms of use, see http://www.unicode.org/terms_of_use.html
#
diff --git a/Build/source/libs/icu/icu-src/source/test/testdata/CollationTest_NON_IGNORABLE_SHORT.txt b/Build/source/libs/icu/icu-src/source/test/testdata/CollationTest_NON_IGNORABLE_SHORT.txt
index ae318757fdf..58b3110aa62 100644
--- a/Build/source/libs/icu/icu-src/source/test/testdata/CollationTest_NON_IGNORABLE_SHORT.txt
+++ b/Build/source/libs/icu/icu-src/source/test/testdata/CollationTest_NON_IGNORABLE_SHORT.txt
@@ -1,10 +1,10 @@
# CollationTest_CLDR_NON_IGNORABLE_SHORT.txt
-# Date: 2017-06-05, 23:16:59 GMT
-# © 2017 Unicode®, Inc.
+# Date: 2018-05-21, 23:52:51 GMT
+# © 2018 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# For terms of use, see http://www.unicode.org/terms_of_use.html
-# UCA Version: 10.0.0
-# UCD Version: 10.0.0
+# UCA Version: 11.0.0
+# UCD Version: 11.0.0
# For a description of the format and usage, see
# http://www.unicode.org/reports/tr35/tr35-collation.html#Root_Data_Files
@@ -161,6 +161,8 @@
0749 0334
0334 074A
074A 0334
+0334 08D3
+08D3 0334
0334 08D4
08D4 0334
0334 08D5
@@ -620,6 +622,22 @@ A67C 0334
A67D 0334
0334 10AE5
10AE5 0334
+0334 10D24
+10D24 0334
+0334 10D25
+10D25 0334
+0334 10D26
+10D26 0334
+0334 10D27
+10D27 0334
+0334 10F48
+10F48 0334
+0334 10F49
+10F49 0334
+0334 10F4A
+10F4A 0334
+0334 10F4C
+10F4C 0334
0316 0334
0334 0316
0317 0334
@@ -688,6 +706,8 @@ A67D 0334
0742 0334
0334 0746
0746 0334
+0334 07FD
+07FD 0334
0334 0859
0859 0334
0334 085A
@@ -736,6 +756,20 @@ FE27 0334
10A0D 0334
0334 10AE6
10AE6 0334
+0334 10F46
+10F46 0334
+0334 10F47
+10F47 0334
+0334 10F4B
+10F4B 0334
+0334 10F4D
+10F4D 0334
+0334 10F4E
+10F4E 0334
+0334 10F4F
+10F4F 0334
+0334 10F50
+10F50 0334
0334 3099
3099 0334
0334 309A
@@ -1061,6 +1095,8 @@ A9B3 0334
11236 0334
0334 112E9
112E9 0334
+0334 1133B
+1133B 0334
0334 1133C
1133C 0334
0334 11446
@@ -1071,6 +1107,8 @@ A9B3 0334
115C0 0334
0334 116B7
116B7 0334
+0334 1183A
+1183A 0334
0334 11D42
11D42 0334
0334 11100
@@ -1083,6 +1121,10 @@ A9B3 0334
10A0F 0334
0334 11102
11102 0334
+0334 09FE
+09FE 0334
+0334 1145E
+1145E 0334
0334 10A38
10A38 0334
0334 10A3A
@@ -1570,6 +1612,16 @@ FE10 0062
2E41 0061
2E41 0041
2E41 0062
+2E4C 0021
+2E4C 003F
+2E4C 0061
+2E4C 0041
+2E4C 0062
+2E4E 0021
+2E4E 003F
+2E4E 0061
+2E4E 0041
+2E4E 0062
055D 0021
055D 003F
055D 0061
@@ -1625,6 +1677,11 @@ A6F5 003F
A6F5 0061
A6F5 0041
A6F5 0062
+16E97 0021
+16E97 003F
+16E97 0061
+16E97 0041
+16E97 0062
3001 0021
FE51 0021
FF64 0021
@@ -2065,6 +2122,7 @@ A6F4 0062
0749 0021
074A 0021
07FA 0021
+08D3 0021
08D4 0021
08D5 0021
08D6 0021
@@ -2228,6 +2286,7 @@ FFFA 0021
FFFB 0021
102E0 0021
110BD 0021
+110CD 0021
11366 0021
11367 0021
11368 0021
@@ -2847,6 +2906,14 @@ E01EF 0021
A67C 0021
A67D 0021
10AE5 0021
+10D24 0021
+10D25 0021
+10D26 0021
+10D27 0021
+10F48 0021
+10F49 0021
+10F4A 0021
+10F4C 0021
1BC9D 0021
0316 0021
0317 0021
@@ -2882,6 +2949,7 @@ A67D 0021
0362 0021
0742 0021
0746 0021
+07FD 0021
0859 0021
085A 0021
085B 0021
@@ -2906,6 +2974,13 @@ A67D 0021
FE27 0021
10A0D 0021
10AE6 0021
+10F46 0021
+10F47 0021
+10F4B 0021
+10F4D 0021
+10F4E 0021
+10F4F 0021
+10F50 0021
0336 0021
0337 0021
20D8 0021
@@ -3127,11 +3202,13 @@ A9B3 0021
111CA 0021
11236 0021
112E9 0021
+1133B 0021
1133C 0021
11446 0021
114C3 0021
115C0 0021
116B7 0021
+1183A 0021
11A33 0021
11D42 0021
0900 0021
@@ -3170,6 +3247,7 @@ A980 0021
0B02 0021
0B82 0021
0C02 0021
+0C04 0021
0C82 0021
0D00 0021
0D02 0021
@@ -3198,11 +3276,13 @@ A981 0021
115BD 0021
1163D 0021
116AB 0021
+11837 0021
11A38 0021
11A96 0021
11C3D 0021
11CB5 0021
11D40 0021
+11D95 0021
0903 0021
0983 0021
0A03 0021
@@ -3232,10 +3312,15 @@ A983 0021
115BE 0021
1163E 0021
116AC 0021
+11838 0021
11A39 0021
11A97 0021
11C3E 0021
11D41 0021
+11D96 0021
+09FE 0021
+111C9 0021
+1145E 0021
0A70 0021
0A71 0021
1B03 0021
@@ -3512,6 +3597,7 @@ FE15 0062
0749 003F
074A 003F
07FA 003F
+08D3 003F
08D4 003F
08D5 003F
08D6 003F
@@ -3675,6 +3761,7 @@ FFFA 003F
FFFB 003F
102E0 003F
110BD 003F
+110CD 003F
11366 003F
11367 003F
11368 003F
@@ -4294,6 +4381,14 @@ E01EF 003F
A67C 003F
A67D 003F
10AE5 003F
+10D24 003F
+10D25 003F
+10D26 003F
+10D27 003F
+10F48 003F
+10F49 003F
+10F4A 003F
+10F4C 003F
1BC9D 003F
0316 003F
0317 003F
@@ -4329,6 +4424,7 @@ A67D 003F
0362 003F
0742 003F
0746 003F
+07FD 003F
0859 003F
085A 003F
085B 003F
@@ -4353,6 +4449,13 @@ A67D 003F
FE27 003F
10A0D 003F
10AE6 003F
+10F46 003F
+10F47 003F
+10F4B 003F
+10F4D 003F
+10F4E 003F
+10F4F 003F
+10F50 003F
0336 003F
0337 003F
20D8 003F
@@ -4574,11 +4677,13 @@ A9B3 003F
111CA 003F
11236 003F
112E9 003F
+1133B 003F
1133C 003F
11446 003F
114C3 003F
115C0 003F
116B7 003F
+1183A 003F
11A33 003F
11D42 003F
0900 003F
@@ -4617,6 +4722,7 @@ A980 003F
0B02 003F
0B82 003F
0C02 003F
+0C04 003F
0C82 003F
0D00 003F
0D02 003F
@@ -4645,11 +4751,13 @@ A981 003F
115BD 003F
1163D 003F
116AB 003F
+11837 003F
11A38 003F
11A96 003F
11C3D 003F
11CB5 003F
11D40 003F
+11D95 003F
0903 003F
0983 003F
0A03 003F
@@ -4679,10 +4787,15 @@ A983 003F
115BE 003F
1163E 003F
116AC 003F
+11838 003F
11A39 003F
11A97 003F
11C3E 003F
11D41 003F
+11D96 003F
+09FE 003F
+111C9 003F
+1145E 003F
0A70 003F
0A71 003F
1B03 003F
@@ -4994,6 +5107,11 @@ A6F3 0062
16AF5 0061
16AF5 0041
16AF5 0062
+16E98 0021
+16E98 003F
+16E98 0061
+16E98 0041
+16E98 0062
1BC9F 0021
1BC9F 003F
1BC9F 0061
@@ -5444,6 +5562,31 @@ A95F 0062
10B3F 0061
10B3F 0041
10B3F 0062
+10F55 0021
+10F55 003F
+10F55 0061
+10F55 0041
+10F55 0062
+10F56 0021
+10F56 003F
+10F56 0061
+10F56 0041
+10F56 0062
+10F57 0021
+10F57 003F
+10F57 0061
+10F57 0041
+10F57 0062
+10F58 0021
+10F58 003F
+10F58 0061
+10F58 0041
+10F58 0062
+10F59 0021
+10F59 003F
+10F59 0061
+10F59 0041
+10F59 0062
110BE 0021
110BE 003F
110BE 0061
@@ -5484,6 +5627,16 @@ A95F 0062
1173E 0061
1173E 0041
1173E 0062
+11EF7 0021
+11EF7 003F
+11EF7 0061
+11EF7 0041
+11EF7 0062
+11EF8 0021
+11EF8 003F
+11EF8 0061
+11EF8 0041
+11EF8 0062
2055 0021
2055 003F
2055 0061
@@ -7274,6 +7427,11 @@ FD3F 0062
204B 0061
204B 0041
204B 0062
+2E4D 0021
+2E4D 003F
+2E4D 0061
+2E4D 0041
+2E4D 0062
2E3F 0021
2E3F 003F
2E3F 0061
@@ -7354,6 +7512,11 @@ FE68 0041
005C 0062
FF3C 0062
FE68 0062
+2E4A 0021
+2E4A 003F
+2E4A 0061
+2E4A 0041
+2E4A 0062
0026 0021
FF06 0021
FE60 0021
@@ -7454,6 +7617,11 @@ FE6A 0062
2E38 0061
2E38 0041
2E38 0062
+2E4B 0021
+2E4B 003F
+2E4B 0061
+2E4B 0041
+2E4B 0062
2022 0021
2022 003F
2022 0061
@@ -7864,11 +8032,21 @@ A8FC 0062
09FD 0061
09FD 0041
09FD 0062
+0A76 0021
+0A76 003F
+0A76 0061
+0A76 0041
+0A76 0062
0AF0 0021
0AF0 003F
0AF0 0061
0AF0 0041
0AF0 0062
+0C84 0021
+0C84 003F
+0C84 0061
+0C84 0041
+0C84 0062
0DF4 0021
0DF4 003F
0DF4 0061
@@ -8469,11 +8647,6 @@ AA5C 0062
111C7 0061
111C7 0041
111C7 0062
-111C9 0021
-111C9 003F
-111C9 0061
-111C9 0041
-111C9 0062
111DB 0021
111DB 003F
111DB 0061
@@ -8644,6 +8817,11 @@ AA5C 0062
11643 0061
11643 0041
11643 0062
+1183B 0021
+1183B 003F
+1183B 0061
+1183B 0041
+1183B 0062
16B37 0021
16B37 003F
16B37 0061
@@ -8674,6 +8852,16 @@ AA5C 0062
16B44 0061
16B44 0041
16B44 0062
+16E99 0021
+16E99 003F
+16E99 0061
+16E99 0041
+16E99 0062
+16E9A 0021
+16E9A 003F
+16E9A 0061
+16E9A 0041
+16E9A 0062
1DA87 0021
1DA87 003F
1DA87 0061
@@ -10132,6 +10320,11 @@ AA79 0062
00A9 0061
00A9 0041
00A9 0062
+1F12F 0021
+1F12F 003F
+1F12F 0061
+1F12F 0041
+1F12F 0062
00AE 0021
00AE 003F
00AE 0061
@@ -20877,6 +21070,21 @@ FFEE 0062
2BB9 0061
2BB9 0041
2BB9 0062
+2BBA 0021
+2BBA 003F
+2BBA 0061
+2BBA 0041
+2BBA 0062
+2BBB 0021
+2BBB 003F
+2BBB 0061
+2BBB 0041
+2BBB 0062
+2BBC 0021
+2BBC 003F
+2BBC 0061
+2BBC 0041
+2BBC 0062
2BBD 0021
2BBD 003F
2BBD 0061
@@ -20982,6 +21190,131 @@ FFEE 0062
2BD2 0061
2BD2 0041
2BD2 0062
+2BD3 0021
+2BD3 003F
+2BD3 0061
+2BD3 0041
+2BD3 0062
+2BD4 0021
+2BD4 003F
+2BD4 0061
+2BD4 0041
+2BD4 0062
+2BD5 0021
+2BD5 003F
+2BD5 0061
+2BD5 0041
+2BD5 0062
+2BD6 0021
+2BD6 003F
+2BD6 0061
+2BD6 0041
+2BD6 0062
+2BD7 0021
+2BD7 003F
+2BD7 0061
+2BD7 0041
+2BD7 0062
+2BD8 0021
+2BD8 003F
+2BD8 0061
+2BD8 0041
+2BD8 0062
+2BD9 0021
+2BD9 003F
+2BD9 0061
+2BD9 0041
+2BD9 0062
+2BDA 0021
+2BDA 003F
+2BDA 0061
+2BDA 0041
+2BDA 0062
+2BDB 0021
+2BDB 003F
+2BDB 0061
+2BDB 0041
+2BDB 0062
+2BDC 0021
+2BDC 003F
+2BDC 0061
+2BDC 0041
+2BDC 0062
+2BDD 0021
+2BDD 003F
+2BDD 0061
+2BDD 0041
+2BDD 0062
+2BDE 0021
+2BDE 003F
+2BDE 0061
+2BDE 0041
+2BDE 0062
+2BDF 0021
+2BDF 003F
+2BDF 0061
+2BDF 0041
+2BDF 0062
+2BE0 0021
+2BE0 003F
+2BE0 0061
+2BE0 0041
+2BE0 0062
+2BE1 0021
+2BE1 003F
+2BE1 0061
+2BE1 0041
+2BE1 0062
+2BE2 0021
+2BE2 003F
+2BE2 0061
+2BE2 0041
+2BE2 0062
+2BE3 0021
+2BE3 003F
+2BE3 0061
+2BE3 0041
+2BE3 0062
+2BE4 0021
+2BE4 003F
+2BE4 0061
+2BE4 0041
+2BE4 0062
+2BE5 0021
+2BE5 003F
+2BE5 0061
+2BE5 0041
+2BE5 0062
+2BE6 0021
+2BE6 003F
+2BE6 0061
+2BE6 0041
+2BE6 0062
+2BE7 0021
+2BE7 003F
+2BE7 0061
+2BE7 0041
+2BE7 0062
+2BE8 0021
+2BE8 003F
+2BE8 0061
+2BE8 0041
+2BE8 0062
+2BE9 0021
+2BE9 003F
+2BE9 0061
+2BE9 0041
+2BE9 0062
+2BEA 0021
+2BEA 003F
+2BEA 0061
+2BEA 0041
+2BEA 0062
+2BEB 0021
+2BEB 003F
+2BEB 0061
+2BEB 0041
+2BEB 0062
2BEC 0021
2BEC 003F
2BEC 0061
@@ -21002,6 +21335,81 @@ FFEE 0062
2BEF 0061
2BEF 0041
2BEF 0062
+2BF0 0021
+2BF0 003F
+2BF0 0061
+2BF0 0041
+2BF0 0062
+2BF1 0021
+2BF1 003F
+2BF1 0061
+2BF1 0041
+2BF1 0062
+2BF2 0021
+2BF2 003F
+2BF2 0061
+2BF2 0041
+2BF2 0062
+2BF3 0021
+2BF3 003F
+2BF3 0061
+2BF3 0041
+2BF3 0062
+2BF4 0021
+2BF4 003F
+2BF4 0061
+2BF4 0041
+2BF4 0062
+2BF5 0021
+2BF5 003F
+2BF5 0061
+2BF5 0041
+2BF5 0062
+2BF6 0021
+2BF6 003F
+2BF6 0061
+2BF6 0041
+2BF6 0062
+2BF7 0021
+2BF7 003F
+2BF7 0061
+2BF7 0041
+2BF7 0062
+2BF8 0021
+2BF8 003F
+2BF8 0061
+2BF8 0041
+2BF8 0062
+2BF9 0021
+2BF9 003F
+2BF9 0061
+2BF9 0041
+2BF9 0062
+2BFA 0021
+2BFA 003F
+2BFA 0061
+2BFA 0041
+2BFA 0062
+2BFB 0021
+2BFB 003F
+2BFB 0061
+2BFB 0041
+2BFB 0062
+2BFC 0021
+2BFC 003F
+2BFC 0061
+2BFC 0041
+2BFC 0062
+2BFD 0021
+2BFD 003F
+2BFD 0061
+2BFD 0041
+2BFD 0062
+2BFE 0021
+2BFE 003F
+2BFE 0061
+2BFE 0041
+2BFE 0062
2CE5 0021
2CE5 003F
2CE5 0061
@@ -26480,6 +26888,11 @@ A4C6 0062
1BC9C 0061
1BC9C 0041
1BC9C 0062
+1ECAC 0021
+1ECAC 003F
+1ECAC 0061
+1ECAC 0041
+1ECAC 0062
1F000 0021
1F000 003F
1F000 0061
@@ -27610,6 +28023,76 @@ A4C6 0062
1F0F5 0061
1F0F5 0041
1F0F5 0062
+1FA60 0021
+1FA60 003F
+1FA60 0061
+1FA60 0041
+1FA60 0062
+1FA61 0021
+1FA61 003F
+1FA61 0061
+1FA61 0041
+1FA61 0062
+1FA62 0021
+1FA62 003F
+1FA62 0061
+1FA62 0041
+1FA62 0062
+1FA63 0021
+1FA63 003F
+1FA63 0061
+1FA63 0041
+1FA63 0062
+1FA64 0021
+1FA64 003F
+1FA64 0061
+1FA64 0041
+1FA64 0062
+1FA65 0021
+1FA65 003F
+1FA65 0061
+1FA65 0041
+1FA65 0062
+1FA66 0021
+1FA66 003F
+1FA66 0061
+1FA66 0041
+1FA66 0062
+1FA67 0021
+1FA67 003F
+1FA67 0061
+1FA67 0041
+1FA67 0062
+1FA68 0021
+1FA68 003F
+1FA68 0061
+1FA68 0041
+1FA68 0062
+1FA69 0021
+1FA69 003F
+1FA69 0061
+1FA69 0041
+1FA69 0062
+1FA6A 0021
+1FA6A 003F
+1FA6A 0061
+1FA6A 0041
+1FA6A 0062
+1FA6B 0021
+1FA6B 003F
+1FA6B 0061
+1FA6B 0041
+1FA6B 0062
+1FA6C 0021
+1FA6C 003F
+1FA6C 0061
+1FA6C 0041
+1FA6C 0062
+1FA6D 0021
+1FA6D 003F
+1FA6D 0061
+1FA6D 0041
+1FA6D 0062
1F260 0021
1F260 003F
1F260 0061
@@ -31840,6 +32323,21 @@ A4C6 0062
1F94C 0061
1F94C 0041
1F94C 0062
+1F94D 0021
+1F94D 003F
+1F94D 0061
+1F94D 0041
+1F94D 0062
+1F94E 0021
+1F94E 003F
+1F94E 0061
+1F94E 0041
+1F94E 0062
+1F94F 0021
+1F94F 003F
+1F94F 0061
+1F94F 0041
+1F94F 0062
1F950 0021
1F950 003F
1F950 0061
@@ -31980,6 +32478,76 @@ A4C6 0062
1F96B 0061
1F96B 0041
1F96B 0062
+1F96C 0021
+1F96C 003F
+1F96C 0061
+1F96C 0041
+1F96C 0062
+1F96D 0021
+1F96D 003F
+1F96D 0061
+1F96D 0041
+1F96D 0062
+1F96E 0021
+1F96E 003F
+1F96E 0061
+1F96E 0041
+1F96E 0062
+1F96F 0021
+1F96F 003F
+1F96F 0061
+1F96F 0041
+1F96F 0062
+1F970 0021
+1F970 003F
+1F970 0061
+1F970 0041
+1F970 0062
+1F973 0021
+1F973 003F
+1F973 0061
+1F973 0041
+1F973 0062
+1F974 0021
+1F974 003F
+1F974 0061
+1F974 0041
+1F974 0062
+1F975 0021
+1F975 003F
+1F975 0061
+1F975 0041
+1F975 0062
+1F976 0021
+1F976 003F
+1F976 0061
+1F976 0041
+1F976 0062
+1F97A 0021
+1F97A 003F
+1F97A 0061
+1F97A 0041
+1F97A 0062
+1F97C 0021
+1F97C 003F
+1F97C 0061
+1F97C 0041
+1F97C 0062
+1F97D 0021
+1F97D 003F
+1F97D 0061
+1F97D 0041
+1F97D 0062
+1F97E 0021
+1F97E 003F
+1F97E 0061
+1F97E 0041
+1F97E 0062
+1F97F 0021
+1F97F 003F
+1F97F 0061
+1F97F 0041
+1F97F 0062
1F980 0021
1F980 003F
1F980 0061
@@ -32100,11 +32668,126 @@ A4C6 0062
1F997 0061
1F997 0041
1F997 0062
+1F998 0021
+1F998 003F
+1F998 0061
+1F998 0041
+1F998 0062
+1F999 0021
+1F999 003F
+1F999 0061
+1F999 0041
+1F999 0062
+1F99A 0021
+1F99A 003F
+1F99A 0061
+1F99A 0041
+1F99A 0062
+1F99B 0021
+1F99B 003F
+1F99B 0061
+1F99B 0041
+1F99B 0062
+1F99C 0021
+1F99C 003F
+1F99C 0061
+1F99C 0041
+1F99C 0062
+1F99D 0021
+1F99D 003F
+1F99D 0061
+1F99D 0041
+1F99D 0062
+1F99E 0021
+1F99E 003F
+1F99E 0061
+1F99E 0041
+1F99E 0062
+1F99F 0021
+1F99F 003F
+1F99F 0061
+1F99F 0041
+1F99F 0062
+1F9A0 0021
+1F9A0 003F
+1F9A0 0061
+1F9A0 0041
+1F9A0 0062
+1F9A1 0021
+1F9A1 003F
+1F9A1 0061
+1F9A1 0041
+1F9A1 0062
+1F9A2 0021
+1F9A2 003F
+1F9A2 0061
+1F9A2 0041
+1F9A2 0062
+1F9B0 0021
+1F9B0 003F
+1F9B0 0061
+1F9B0 0041
+1F9B0 0062
+1F9B1 0021
+1F9B1 003F
+1F9B1 0061
+1F9B1 0041
+1F9B1 0062
+1F9B2 0021
+1F9B2 003F
+1F9B2 0061
+1F9B2 0041
+1F9B2 0062
+1F9B3 0021
+1F9B3 003F
+1F9B3 0061
+1F9B3 0041
+1F9B3 0062
+1F9B4 0021
+1F9B4 003F
+1F9B4 0061
+1F9B4 0041
+1F9B4 0062
+1F9B5 0021
+1F9B5 003F
+1F9B5 0061
+1F9B5 0041
+1F9B5 0062
+1F9B6 0021
+1F9B6 003F
+1F9B6 0061
+1F9B6 0041
+1F9B6 0062
+1F9B7 0021
+1F9B7 003F
+1F9B7 0061
+1F9B7 0041
+1F9B7 0062
+1F9B8 0021
+1F9B8 003F
+1F9B8 0061
+1F9B8 0041
+1F9B8 0062
+1F9B9 0021
+1F9B9 003F
+1F9B9 0061
+1F9B9 0041
+1F9B9 0062
1F9C0 0021
1F9C0 003F
1F9C0 0061
1F9C0 0041
1F9C0 0062
+1F9C1 0021
+1F9C1 003F
+1F9C1 0061
+1F9C1 0041
+1F9C1 0062
+1F9C2 0021
+1F9C2 003F
+1F9C2 0061
+1F9C2 0041
+1F9C2 0062
1F9D0 0021
1F9D0 003F
1F9D0 0061
@@ -32220,6 +32903,131 @@ A4C6 0062
1F9E6 0061
1F9E6 0041
1F9E6 0062
+1F9E7 0021
+1F9E7 003F
+1F9E7 0061
+1F9E7 0041
+1F9E7 0062
+1F9E8 0021
+1F9E8 003F
+1F9E8 0061
+1F9E8 0041
+1F9E8 0062
+1F9E9 0021
+1F9E9 003F
+1F9E9 0061
+1F9E9 0041
+1F9E9 0062
+1F9EA 0021
+1F9EA 003F
+1F9EA 0061
+1F9EA 0041
+1F9EA 0062
+1F9EB 0021
+1F9EB 003F
+1F9EB 0061
+1F9EB 0041
+1F9EB 0062
+1F9EC 0021
+1F9EC 003F
+1F9EC 0061
+1F9EC 0041
+1F9EC 0062
+1F9ED 0021
+1F9ED 003F
+1F9ED 0061
+1F9ED 0041
+1F9ED 0062
+1F9EE 0021
+1F9EE 003F
+1F9EE 0061
+1F9EE 0041
+1F9EE 0062
+1F9EF 0021
+1F9EF 003F
+1F9EF 0061
+1F9EF 0041
+1F9EF 0062
+1F9F0 0021
+1F9F0 003F
+1F9F0 0061
+1F9F0 0041
+1F9F0 0062
+1F9F1 0021
+1F9F1 003F
+1F9F1 0061
+1F9F1 0041
+1F9F1 0062
+1F9F2 0021
+1F9F2 003F
+1F9F2 0061
+1F9F2 0041
+1F9F2 0062
+1F9F3 0021
+1F9F3 003F
+1F9F3 0061
+1F9F3 0041
+1F9F3 0062
+1F9F4 0021
+1F9F4 003F
+1F9F4 0061
+1F9F4 0041
+1F9F4 0062
+1F9F5 0021
+1F9F5 003F
+1F9F5 0061
+1F9F5 0041
+1F9F5 0062
+1F9F6 0021
+1F9F6 003F
+1F9F6 0061
+1F9F6 0041
+1F9F6 0062
+1F9F7 0021
+1F9F7 003F
+1F9F7 0061
+1F9F7 0041
+1F9F7 0062
+1F9F8 0021
+1F9F8 003F
+1F9F8 0061
+1F9F8 0041
+1F9F8 0062
+1F9F9 0021
+1F9F9 003F
+1F9F9 0061
+1F9F9 0041
+1F9F9 0062
+1F9FA 0021
+1F9FA 003F
+1F9FA 0061
+1F9FA 0041
+1F9FA 0062
+1F9FB 0021
+1F9FB 003F
+1F9FB 0061
+1F9FB 0041
+1F9FB 0062
+1F9FC 0021
+1F9FC 003F
+1F9FC 0061
+1F9FC 0041
+1F9FC 0062
+1F9FD 0021
+1F9FD 003F
+1F9FD 0061
+1F9FD 0041
+1F9FD 0062
+1F9FE 0021
+1F9FE 003F
+1F9FE 0061
+1F9FE 0041
+1F9FE 0062
+1F9FF 0021
+1F9FF 003F
+1F9FF 0061
+1F9FF 0041
+1F9FF 0062
1F600 0021
1F600 003F
1F600 0061
@@ -33395,6 +34203,11 @@ A4C6 0062
1F6F8 0061
1F6F8 0041
1F6F8 0062
+1F6F9 0021
+1F6F9 003F
+1F6F9 0061
+1F6F9 0041
+1F6F9 0062
1F700 0021
1F700 003F
1F700 0061
@@ -34400,6 +35213,26 @@ A4C6 0062
1F7D4 0061
1F7D4 0041
1F7D4 0062
+1F7D5 0021
+1F7D5 003F
+1F7D5 0061
+1F7D5 0041
+1F7D5 0062
+1F7D6 0021
+1F7D6 003F
+1F7D6 0061
+1F7D6 0041
+1F7D6 0062
+1F7D7 0021
+1F7D7 003F
+1F7D7 0061
+1F7D7 0041
+1F7D7 0062
+1F7D8 0021
+1F7D8 003F
+1F7D8 0061
+1F7D8 0041
+1F7D8 0062
1F800 0021
1F800 003F
1F800 0061
@@ -38356,6 +39189,16 @@ FFE5 0062
060B 0061
060B 0041
060B 0062
+07FE 0021
+07FE 003F
+07FE 0061
+07FE 0041
+07FE 0062
+07FF 0021
+07FF 003F
+07FF 0061
+07FF 0041
+07FF 0062
09F2 0021
09F2 003F
09F2 0061
@@ -38526,6 +39369,11 @@ FFE6 0062
20B9 0061
20B9 0041
20B9 0062
+1ECB0 0021
+1ECB0 003F
+1ECB0 0061
+1ECB0 0041
+1ECB0 0062
20BA 0021
20BA 003F
20BA 0061
@@ -39656,6 +40504,46 @@ A835 0062
10BAF 0061
10BAF 0041
10BAF 0062
+10F22 0021
+10F22 003F
+10F22 0061
+10F22 0041
+10F22 0062
+10F23 0021
+10F23 003F
+10F23 0061
+10F23 0041
+10F23 0062
+10F24 0021
+10F24 003F
+10F24 0061
+10F24 0041
+10F24 0062
+10F25 0021
+10F25 003F
+10F25 0061
+10F25 0041
+10F25 0062
+10F26 0021
+10F26 003F
+10F26 0061
+10F26 0041
+10F26 0062
+10F52 0021
+10F52 003F
+10F52 0061
+10F52 0041
+10F52 0062
+10F53 0021
+10F53 003F
+10F53 0061
+10F53 0041
+10F53 0062
+10F54 0021
+10F54 003F
+10F54 0061
+10F54 0041
+10F54 0062
1173A 0021
1173A 003F
1173A 0061
@@ -39741,6 +40629,11 @@ A835 0062
10A47 0061
10A47 0041
10A47 0062
+10A48 0021
+10A48 003F
+10A48 0061
+10A48 0041
+10A48 0062
11C63 0021
11C63 003F
11C63 0061
@@ -39926,6 +40819,336 @@ A835 0062
16B61 0061
16B61 0041
16B61 0062
+16E8A 0021
+16E8A 003F
+16E8A 0061
+16E8A 0041
+16E8A 0062
+16E8B 0021
+16E8B 003F
+16E8B 0061
+16E8B 0041
+16E8B 0062
+16E8C 0021
+16E8C 003F
+16E8C 0061
+16E8C 0041
+16E8C 0062
+16E8D 0021
+16E8D 003F
+16E8D 0061
+16E8D 0041
+16E8D 0062
+16E8E 0021
+16E8E 003F
+16E8E 0061
+16E8E 0041
+16E8E 0062
+16E8F 0021
+16E8F 003F
+16E8F 0061
+16E8F 0041
+16E8F 0062
+16E90 0021
+16E90 003F
+16E90 0061
+16E90 0041
+16E90 0062
+16E91 0021
+16E91 003F
+16E91 0061
+16E91 0041
+16E91 0062
+16E92 0021
+16E92 003F
+16E92 0061
+16E92 0041
+16E92 0062
+16E93 0021
+16E93 003F
+16E93 0061
+16E93 0041
+16E93 0062
+1D2EA 0021
+1D2EA 003F
+1D2EA 0061
+1D2EA 0041
+1D2EA 0062
+1D2EB 0021
+1D2EB 003F
+1D2EB 0061
+1D2EB 0041
+1D2EB 0062
+1D2EC 0021
+1D2EC 003F
+1D2EC 0061
+1D2EC 0041
+1D2EC 0062
+1D2ED 0021
+1D2ED 003F
+1D2ED 0061
+1D2ED 0041
+1D2ED 0062
+1D2EE 0021
+1D2EE 003F
+1D2EE 0061
+1D2EE 0041
+1D2EE 0062
+1D2EF 0021
+1D2EF 003F
+1D2EF 0061
+1D2EF 0041
+1D2EF 0062
+1D2F0 0021
+1D2F0 003F
+1D2F0 0061
+1D2F0 0041
+1D2F0 0062
+1D2F1 0021
+1D2F1 003F
+1D2F1 0061
+1D2F1 0041
+1D2F1 0062
+1D2F2 0021
+1D2F2 003F
+1D2F2 0061
+1D2F2 0041
+1D2F2 0062
+1D2F3 0021
+1D2F3 003F
+1D2F3 0061
+1D2F3 0041
+1D2F3 0062
+1EC7A 0021
+1EC7A 003F
+1EC7A 0061
+1EC7A 0041
+1EC7A 0062
+1EC7B 0021
+1EC7B 003F
+1EC7B 0061
+1EC7B 0041
+1EC7B 0062
+1EC7C 0021
+1EC7C 003F
+1EC7C 0061
+1EC7C 0041
+1EC7C 0062
+1EC7D 0021
+1EC7D 003F
+1EC7D 0061
+1EC7D 0041
+1EC7D 0062
+1EC7E 0021
+1EC7E 003F
+1EC7E 0061
+1EC7E 0041
+1EC7E 0062
+1EC7F 0021
+1EC7F 003F
+1EC7F 0061
+1EC7F 0041
+1EC7F 0062
+1EC80 0021
+1EC80 003F
+1EC80 0061
+1EC80 0041
+1EC80 0062
+1EC81 0021
+1EC81 003F
+1EC81 0061
+1EC81 0041
+1EC81 0062
+1EC82 0021
+1EC82 003F
+1EC82 0061
+1EC82 0041
+1EC82 0062
+1EC83 0021
+1EC83 003F
+1EC83 0061
+1EC83 0041
+1EC83 0062
+1EC84 0021
+1EC84 003F
+1EC84 0061
+1EC84 0041
+1EC84 0062
+1EC85 0021
+1EC85 003F
+1EC85 0061
+1EC85 0041
+1EC85 0062
+1EC86 0021
+1EC86 003F
+1EC86 0061
+1EC86 0041
+1EC86 0062
+1EC87 0021
+1EC87 003F
+1EC87 0061
+1EC87 0041
+1EC87 0062
+1EC88 0021
+1EC88 003F
+1EC88 0061
+1EC88 0041
+1EC88 0062
+1EC89 0021
+1EC89 003F
+1EC89 0061
+1EC89 0041
+1EC89 0062
+1EC8A 0021
+1EC8A 003F
+1EC8A 0061
+1EC8A 0041
+1EC8A 0062
+1EC8B 0021
+1EC8B 003F
+1EC8B 0061
+1EC8B 0041
+1EC8B 0062
+1EC8C 0021
+1EC8C 003F
+1EC8C 0061
+1EC8C 0041
+1EC8C 0062
+1EC8D 0021
+1EC8D 003F
+1EC8D 0061
+1EC8D 0041
+1EC8D 0062
+1EC8E 0021
+1EC8E 003F
+1EC8E 0061
+1EC8E 0041
+1EC8E 0062
+1EC8F 0021
+1EC8F 003F
+1EC8F 0061
+1EC8F 0041
+1EC8F 0062
+1EC90 0021
+1EC90 003F
+1EC90 0061
+1EC90 0041
+1EC90 0062
+1EC91 0021
+1EC91 003F
+1EC91 0061
+1EC91 0041
+1EC91 0062
+1EC92 0021
+1EC92 003F
+1EC92 0061
+1EC92 0041
+1EC92 0062
+1EC93 0021
+1EC93 003F
+1EC93 0061
+1EC93 0041
+1EC93 0062
+1EC94 0021
+1EC94 003F
+1EC94 0061
+1EC94 0041
+1EC94 0062
+1EC95 0021
+1EC95 003F
+1EC95 0061
+1EC95 0041
+1EC95 0062
+1EC96 0021
+1EC96 003F
+1EC96 0061
+1EC96 0041
+1EC96 0062
+1EC97 0021
+1EC97 003F
+1EC97 0061
+1EC97 0041
+1EC97 0062
+1EC98 0021
+1EC98 003F
+1EC98 0061
+1EC98 0041
+1EC98 0062
+1EC99 0021
+1EC99 003F
+1EC99 0061
+1EC99 0041
+1EC99 0062
+1EC9A 0021
+1EC9A 003F
+1EC9A 0061
+1EC9A 0041
+1EC9A 0062
+1EC9B 0021
+1EC9B 003F
+1EC9B 0061
+1EC9B 0041
+1EC9B 0062
+1EC9C 0021
+1EC9C 003F
+1EC9C 0061
+1EC9C 0041
+1EC9C 0062
+1EC9D 0021
+1EC9D 003F
+1EC9D 0061
+1EC9D 0041
+1EC9D 0062
+1EC9E 0021
+1EC9E 003F
+1EC9E 0061
+1EC9E 0041
+1EC9E 0062
+1EC9F 0021
+1EC9F 003F
+1EC9F 0061
+1EC9F 0041
+1EC9F 0062
+1ECA0 0021
+1ECA0 003F
+1ECA0 0061
+1ECA0 0041
+1ECA0 0062
+1ECA1 0021
+1ECA1 003F
+1ECA1 0061
+1ECA1 0041
+1ECA1 0062
+1ECA2 0021
+1ECA2 003F
+1ECA2 0061
+1ECA2 0041
+1ECA2 0062
+1ECAD 0021
+1ECAD 003F
+1ECAD 0061
+1ECAD 0041
+1ECAD 0062
+1ECAE 0021
+1ECAE 003F
+1ECAE 0061
+1ECAE 0041
+1ECAE 0062
+1ECAF 0021
+1ECAF 003F
+1ECAF 0061
+1ECAF 0041
+1ECAF 0062
+1ECB3 0021
+1ECB3 003F
+1ECB3 0061
+1ECB3 0041
+1ECB3 0062
+1ECB4 0021
+1ECB4 003F
+1ECB4 0061
+1ECB4 0041
+1ECB4 0062
109C9 0021
109C9 003F
109C9 0061
@@ -40377,6 +41600,7 @@ AA50 0021
ABF0 0021
1018A 0021
104A0 0021
+10D30 0021
11066 0021
110F0 0021
11136 0021
@@ -40390,8 +41614,11 @@ ABF0 0021
118E0 0021
11C50 0021
11D50 0021
+11DA0 0021
16A60 0021
16B50 0021
+16E80 0021
+1D2E0 0021
1E950 0021
FF10 0021
0F33 0021
@@ -40447,6 +41674,7 @@ AA50 003F
ABF0 003F
1018A 003F
104A0 003F
+10D30 003F
11066 003F
110F0 003F
11136 003F
@@ -40460,8 +41688,11 @@ ABF0 003F
118E0 003F
11C50 003F
11D50 003F
+11DA0 003F
16A60 003F
16B50 003F
+16E80 003F
+1D2E0 003F
1E950 003F
FF10 003F
0F33 003F
@@ -40527,6 +41758,7 @@ AA50 0061
ABF0 0061
1018A 0061
104A0 0061
+10D30 0061
11066 0061
110F0 0061
11136 0061
@@ -40540,8 +41772,11 @@ ABF0 0061
118E0 0061
11C50 0061
11D50 0061
+11DA0 0061
16A60 0061
16B50 0061
+16E80 0061
+1D2E0 0061
1E950 0061
0030 0041
0660 0041
@@ -40584,6 +41819,7 @@ AA50 0041
ABF0 0041
1018A 0041
104A0 0041
+10D30 0041
11066 0041
110F0 0041
11136 0041
@@ -40597,8 +41833,11 @@ ABF0 0041
118E0 0041
11C50 0041
11D50 0041
+11DA0 0041
16A60 0041
16B50 0041
+16E80 0041
+1D2E0 0041
1E950 0041
FF10 0061
FF10 0041
@@ -40667,6 +41906,7 @@ AA50 0062
ABF0 0062
1018A 0062
104A0 0062
+10D30 0062
11066 0062
110F0 0062
11136 0062
@@ -40680,8 +41920,11 @@ ABF0 0062
118E0 0062
11C50 0062
11D50 0062
+11DA0 0062
16A60 0062
16B50 0062
+16E80 0062
+1D2E0 0062
1E950 0062
FF10 0062
0F33 0062
@@ -40771,7 +42014,10 @@ ABF1 0021
10B78 0021
10BA9 0021
10CFA 0021
+10D31 0021
10E60 0021
+10F1D 0021
+10F51 0021
11052 0021
11067 0021
110F1 0021
@@ -40788,6 +42034,7 @@ ABF1 0021
11C51 0021
11C5A 0021
11D51 0021
+11DA1 0021
12415 0021
1241E 0021
1242C 0021
@@ -40796,9 +42043,15 @@ ABF1 0021
12458 0021
16A61 0021
16B51 0021
+16E81 0021
+1D2E1 0021
1D360 0021
+1D372 0021
+1D377 0021
1E8C7 0021
1E951 0021
+1EC71 0021
+1ECA3 0021
FF11 0021
0F2A 0021
1D7CF 0021
@@ -40813,6 +42066,8 @@ FF11 0021
278A 0021
00B9 0021
2081 0021
+16E94 0021
+1ECB1 0021
0031 003F
0661 003F
06F1 003F
@@ -40878,7 +42133,10 @@ ABF1 003F
10B78 003F
10BA9 003F
10CFA 003F
+10D31 003F
10E60 003F
+10F1D 003F
+10F51 003F
11052 003F
11067 003F
110F1 003F
@@ -40895,6 +42153,7 @@ ABF1 003F
11C51 003F
11C5A 003F
11D51 003F
+11DA1 003F
12415 003F
1241E 003F
1242C 003F
@@ -40903,9 +42162,15 @@ ABF1 003F
12458 003F
16A61 003F
16B51 003F
+16E81 003F
+1D2E1 003F
1D360 003F
+1D372 003F
+1D377 003F
1E8C7 003F
1E951 003F
+1EC71 003F
+1ECA3 003F
FF11 003F
0F2A 003F
1D7CF 003F
@@ -40920,6 +42185,8 @@ FF11 003F
278A 003F
00B9 003F
2081 003F
+16E94 003F
+1ECB1 003F
2488 0021
2488 003F
2488 0061
@@ -41330,7 +42597,10 @@ ABF1 0061
10B78 0061
10BA9 0061
10CFA 0061
+10D31 0061
10E60 0061
+10F1D 0061
+10F51 0061
11052 0061
11067 0061
110F1 0061
@@ -41347,6 +42617,7 @@ ABF1 0061
11C51 0061
11C5A 0061
11D51 0061
+11DA1 0061
12415 0061
1241E 0061
1242C 0061
@@ -41355,9 +42626,15 @@ ABF1 0061
12458 0061
16A61 0061
16B51 0061
+16E81 0061
+1D2E1 0061
1D360 0061
+1D372 0061
+1D377 0061
1E8C7 0061
1E951 0061
+1EC71 0061
+1ECA3 0061
0031 0041
0661 0041
06F1 0041
@@ -41423,7 +42700,10 @@ ABF1 0041
10B78 0041
10BA9 0041
10CFA 0041
+10D31 0041
10E60 0041
+10F1D 0041
+10F51 0041
11052 0041
11067 0041
110F1 0041
@@ -41440,6 +42720,7 @@ ABF1 0041
11C51 0041
11C5A 0041
11D51 0041
+11DA1 0041
12415 0041
1241E 0041
1242C 0041
@@ -41448,9 +42729,15 @@ ABF1 0041
12458 0041
16A61 0041
16B51 0041
+16E81 0041
+1D2E1 0041
1D360 0041
+1D372 0041
+1D377 0041
1E8C7 0041
1E951 0041
+1EC71 0041
+1ECA3 0041
FF11 0061
FF11 0041
0F2A 0061
@@ -41479,6 +42766,10 @@ FF11 0041
00B9 0041
2081 0061
2081 0041
+16E94 0061
+1ECB1 0061
+16E94 0041
+1ECB1 0041
0031 0062
0661 0062
06F1 0062
@@ -41544,7 +42835,10 @@ ABF1 0062
10B78 0062
10BA9 0062
10CFA 0062
+10D31 0062
10E60 0062
+10F1D 0062
+10F51 0062
11052 0062
11067 0062
110F1 0062
@@ -41561,6 +42855,7 @@ ABF1 0062
11C51 0062
11C5A 0062
11D51 0062
+11DA1 0062
12415 0062
1241E 0062
1242C 0062
@@ -41569,9 +42864,15 @@ ABF1 0062
12458 0062
16A61 0062
16B51 0062
+16E81 0062
+1D2E1 0062
1D360 0062
+1D372 0062
+1D377 0062
1E8C7 0062
1E951 0062
+1EC71 0062
+1ECA3 0062
FF11 0062
0F2A 0062
1D7CF 0062
@@ -41586,6 +42887,8 @@ FF11 0062
278A 0062
00B9 0062
2081 0062
+16E94 0062
+1ECB1 0062
33E0 0021
33E0 003F
33E0 0061
@@ -41664,7 +42967,9 @@ ABF2 0021
10B59 0021
10B79 0021
10BAA 0021
+10D32 0021
10E61 0021
+10F1E 0021
11053 0021
11068 0021
110F2 0021
@@ -41681,6 +42986,7 @@ ABF2 0021
11C52 0021
11C5B 0021
11D52 0021
+11DA2 0021
12400 0021
12416 0021
1241F 0021
@@ -41693,9 +42999,14 @@ ABF2 0021
12459 0021
16A62 0021
16B52 0021
+16E82 0021
+1D2E2 0021
1D361 0021
+1D373 0021
1E8C8 0021
1E952 0021
+1EC72 0021
+1ECA4 0021
FF12 0021
0F2B 0021
1D7D0 0021
@@ -41710,6 +43021,8 @@ FF12 0021
278B 0021
00B2 0021
2082 0021
+16E95 0021
+1ECB2 0021
0032 003F
0662 003F
06F2 003F
@@ -41768,7 +43081,9 @@ ABF2 003F
10B59 003F
10B79 003F
10BAA 003F
+10D32 003F
10E61 003F
+10F1E 003F
11053 003F
11068 003F
110F2 003F
@@ -41785,6 +43100,7 @@ ABF2 003F
11C52 003F
11C5B 003F
11D52 003F
+11DA2 003F
12400 003F
12416 003F
1241F 003F
@@ -41797,9 +43113,14 @@ ABF2 003F
12459 003F
16A62 003F
16B52 003F
+16E82 003F
+1D2E2 003F
1D361 003F
+1D373 003F
1E8C8 003F
1E952 003F
+1EC72 003F
+1ECA4 003F
FF12 003F
0F2B 003F
1D7D0 003F
@@ -41814,6 +43135,8 @@ FF12 003F
278B 003F
00B2 003F
2082 003F
+16E95 003F
+1ECB2 003F
2489 0021
2489 003F
2489 0061
@@ -42032,7 +43355,9 @@ ABF2 0061
10B59 0061
10B79 0061
10BAA 0061
+10D32 0061
10E61 0061
+10F1E 0061
11053 0061
11068 0061
110F2 0061
@@ -42049,6 +43374,7 @@ ABF2 0061
11C52 0061
11C5B 0061
11D52 0061
+11DA2 0061
12400 0061
12416 0061
1241F 0061
@@ -42061,9 +43387,14 @@ ABF2 0061
12459 0061
16A62 0061
16B52 0061
+16E82 0061
+1D2E2 0061
1D361 0061
+1D373 0061
1E8C8 0061
1E952 0061
+1EC72 0061
+1ECA4 0061
0032 0041
0662 0041
06F2 0041
@@ -42122,7 +43453,9 @@ ABF2 0041
10B59 0041
10B79 0041
10BAA 0041
+10D32 0041
10E61 0041
+10F1E 0041
11053 0041
11068 0041
110F2 0041
@@ -42139,6 +43472,7 @@ ABF2 0041
11C52 0041
11C5B 0041
11D52 0041
+11DA2 0041
12400 0041
12416 0041
1241F 0041
@@ -42151,9 +43485,14 @@ ABF2 0041
12459 0041
16A62 0041
16B52 0041
+16E82 0041
+1D2E2 0041
1D361 0041
+1D373 0041
1E8C8 0041
1E952 0041
+1EC72 0041
+1ECA4 0041
FF12 0061
FF12 0041
0F2B 0061
@@ -42182,6 +43521,10 @@ FF12 0041
00B2 0041
2082 0061
2082 0041
+16E95 0061
+1ECB2 0061
+16E95 0041
+1ECB2 0041
0032 0062
0662 0062
06F2 0062
@@ -42240,7 +43583,9 @@ ABF2 0062
10B59 0062
10B79 0062
10BAA 0062
+10D32 0062
10E61 0062
+10F1E 0062
11053 0062
11068 0062
110F2 0062
@@ -42257,6 +43602,7 @@ ABF2 0062
11C52 0062
11C5B 0062
11D52 0062
+11DA2 0062
12400 0062
12416 0062
1241F 0062
@@ -42269,9 +43615,14 @@ ABF2 0062
12459 0062
16A62 0062
16B52 0062
+16E82 0062
+1D2E2 0062
1D361 0062
+1D373 0062
1E8C8 0062
1E952 0062
+1EC72 0062
+1ECA4 0062
FF12 0062
0F2B 0062
1D7D0 0062
@@ -42286,6 +43637,8 @@ FF12 0062
278B 0062
00B2 0062
2082 0062
+16E95 0062
+1ECB2 0062
1F19D 0021
1F19D 003F
1F19D 0061
@@ -42369,7 +43722,9 @@ ABF3 0021
10B5A 0021
10B7A 0021
10BAB 0021
+10D33 0021
10E62 0021
+10F1F 0021
11054 0021
11069 0021
110F3 0021
@@ -42386,6 +43741,7 @@ ABF3 0021
11C53 0021
11C5C 0021
11D53 0021
+11DA3 0021
12401 0021
12408 0021
12417 0021
@@ -42403,9 +43759,14 @@ ABF3 0021
12457 0021
16A63 0021
16B53 0021
+16E83 0021
+1D2E3 0021
1D362 0021
+1D374 0021
1E8C9 0021
1E953 0021
+1EC73 0021
+1ECA5 0021
FF13 0021
0F2C 0021
1D7D1 0021
@@ -42420,6 +43781,7 @@ FF13 0021
278C 0021
00B3 0021
2083 0021
+16E96 0021
0033 003F
0663 003F
06F3 003F
@@ -42473,7 +43835,9 @@ ABF3 003F
10B5A 003F
10B7A 003F
10BAB 003F
+10D33 003F
10E62 003F
+10F1F 003F
11054 003F
11069 003F
110F3 003F
@@ -42490,6 +43854,7 @@ ABF3 003F
11C53 003F
11C5C 003F
11D53 003F
+11DA3 003F
12401 003F
12408 003F
12417 003F
@@ -42507,9 +43872,14 @@ ABF3 003F
12457 003F
16A63 003F
16B53 003F
+16E83 003F
+1D2E3 003F
1D362 003F
+1D374 003F
1E8C9 003F
1E953 003F
+1EC73 003F
+1ECA5 003F
FF13 003F
0F2C 003F
1D7D1 003F
@@ -42524,6 +43894,7 @@ FF13 003F
278C 003F
00B3 003F
2083 003F
+16E96 003F
248A 0021
248A 003F
248A 0061
@@ -42662,7 +44033,9 @@ ABF3 0061
10B5A 0061
10B7A 0061
10BAB 0061
+10D33 0061
10E62 0061
+10F1F 0061
11054 0061
11069 0061
110F3 0061
@@ -42679,6 +44052,7 @@ ABF3 0061
11C53 0061
11C5C 0061
11D53 0061
+11DA3 0061
12401 0061
12408 0061
12417 0061
@@ -42696,9 +44070,14 @@ ABF3 0061
12457 0061
16A63 0061
16B53 0061
+16E83 0061
+1D2E3 0061
1D362 0061
+1D374 0061
1E8C9 0061
1E953 0061
+1EC73 0061
+1ECA5 0061
0033 0041
0663 0041
06F3 0041
@@ -42752,7 +44131,9 @@ ABF3 0041
10B5A 0041
10B7A 0041
10BAB 0041
+10D33 0041
10E62 0041
+10F1F 0041
11054 0041
11069 0041
110F3 0041
@@ -42769,6 +44150,7 @@ ABF3 0041
11C53 0041
11C5C 0041
11D53 0041
+11DA3 0041
12401 0041
12408 0041
12417 0041
@@ -42786,9 +44168,14 @@ ABF3 0041
12457 0041
16A63 0041
16B53 0041
+16E83 0041
+1D2E3 0041
1D362 0041
+1D374 0041
1E8C9 0041
1E953 0041
+1EC73 0041
+1ECA5 0041
FF13 0061
FF13 0041
0F2C 0061
@@ -42817,6 +44204,8 @@ FF13 0041
00B3 0041
2083 0061
2083 0041
+16E96 0061
+16E96 0041
0033 0062
0663 0062
06F3 0062
@@ -42870,7 +44259,9 @@ ABF3 0062
10B5A 0062
10B7A 0062
10BAB 0062
+10D33 0062
10E62 0062
+10F1F 0062
11054 0062
11069 0062
110F3 0062
@@ -42887,6 +44278,7 @@ ABF3 0062
11C53 0062
11C5C 0062
11D53 0062
+11DA3 0062
12401 0062
12408 0062
12417 0062
@@ -42904,9 +44296,14 @@ ABF3 0062
12457 0062
16A63 0062
16B53 0062
+16E83 0062
+1D2E3 0062
1D362 0062
+1D374 0062
1E8C9 0062
1E953 0062
+1EC73 0062
+1ECA5 0062
FF13 0062
0F2C 0062
1D7D1 0062
@@ -42921,6 +44318,7 @@ FF13 0062
278C 0062
00B3 0062
2083 0062
+16E96 0062
1F19B 0021
1F19B 003F
1F19B 0061
@@ -42996,7 +44394,9 @@ ABF4 0021
10B5B 0021
10B7B 0021
10BAC 0021
+10D34 0021
10E63 0021
+10F20 0021
11055 0021
1106A 0021
110F4 0021
@@ -43013,6 +44413,7 @@ ABF4 0021
11C54 0021
11C5D 0021
11D54 0021
+11DA4 0021
12402 0021
12409 0021
1240F 0021
@@ -43031,9 +44432,14 @@ ABF4 0021
12469 0021
16A64 0021
16B54 0021
+16E84 0021
+1D2E4 0021
1D363 0021
+1D375 0021
1E8CA 0021
1E954 0021
+1EC74 0021
+1ECA6 0021
FF14 0021
0F2D 0021
1D7D2 0021
@@ -43098,7 +44504,9 @@ ABF4 003F
10B5B 003F
10B7B 003F
10BAC 003F
+10D34 003F
10E63 003F
+10F20 003F
11055 003F
1106A 003F
110F4 003F
@@ -43115,6 +44523,7 @@ ABF4 003F
11C54 003F
11C5D 003F
11D54 003F
+11DA4 003F
12402 003F
12409 003F
1240F 003F
@@ -43133,9 +44542,14 @@ ABF4 003F
12469 003F
16A64 003F
16B54 003F
+16E84 003F
+1D2E4 003F
1D363 003F
+1D375 003F
1E8CA 003F
1E954 003F
+1EC74 003F
+1ECA6 003F
FF14 003F
0F2D 003F
1D7D2 003F
@@ -43265,7 +44679,9 @@ ABF4 0061
10B5B 0061
10B7B 0061
10BAC 0061
+10D34 0061
10E63 0061
+10F20 0061
11055 0061
1106A 0061
110F4 0061
@@ -43282,6 +44698,7 @@ ABF4 0061
11C54 0061
11C5D 0061
11D54 0061
+11DA4 0061
12402 0061
12409 0061
1240F 0061
@@ -43300,9 +44717,14 @@ ABF4 0061
12469 0061
16A64 0061
16B54 0061
+16E84 0061
+1D2E4 0061
1D363 0061
+1D375 0061
1E8CA 0061
1E954 0061
+1EC74 0061
+1ECA6 0061
0034 0041
0664 0041
06F4 0041
@@ -43353,7 +44775,9 @@ ABF4 0041
10B5B 0041
10B7B 0041
10BAC 0041
+10D34 0041
10E63 0041
+10F20 0041
11055 0041
1106A 0041
110F4 0041
@@ -43370,6 +44794,7 @@ ABF4 0041
11C54 0041
11C5D 0041
11D54 0041
+11DA4 0041
12402 0041
12409 0041
1240F 0041
@@ -43388,9 +44813,14 @@ ABF4 0041
12469 0041
16A64 0041
16B54 0041
+16E84 0041
+1D2E4 0041
1D363 0041
+1D375 0041
1E8CA 0041
1E954 0041
+1EC74 0041
+1ECA6 0041
FF14 0061
FF14 0041
0F2D 0061
@@ -43469,7 +44899,9 @@ ABF4 0062
10B5B 0062
10B7B 0062
10BAC 0062
+10D34 0062
10E63 0062
+10F20 0062
11055 0062
1106A 0062
110F4 0062
@@ -43486,6 +44918,7 @@ ABF4 0062
11C54 0062
11C5D 0062
11D54 0062
+11DA4 0062
12402 0062
12409 0062
1240F 0062
@@ -43504,9 +44937,14 @@ ABF4 0062
12469 0062
16A64 0062
16B54 0062
+16E84 0062
+1D2E4 0062
1D363 0062
+1D375 0062
1E8CA 0062
1E954 0062
+1EC74 0062
+1ECA6 0062
FF14 0062
0F2D 0062
1D7D2 0062
@@ -43600,7 +45038,9 @@ ABF5 0021
109C4 0021
10AEC 0021
10CFB 0021
+10D35 0021
10E64 0021
+10F21 0021
11056 0021
1106B 0021
110F5 0021
@@ -43617,6 +45057,7 @@ ABF5 0021
11C55 0021
11C5E 0021
11D55 0021
+11DA5 0021
12403 0021
1240A 0021
12410 0021
@@ -43631,9 +45072,15 @@ ABF5 0021
1246A 0021
16A65 0021
16B55 0021
+16E85 0021
+1D2E5 0021
1D364 0021
+1D376 0021
+1D378 0021
1E8CB 0021
1E955 0021
+1EC75 0021
+1ECA7 0021
FF15 0021
0F2E 0021
1D7D3 0021
@@ -43702,7 +45149,9 @@ ABF5 003F
109C4 003F
10AEC 003F
10CFB 003F
+10D35 003F
10E64 003F
+10F21 003F
11056 003F
1106B 003F
110F5 003F
@@ -43719,6 +45168,7 @@ ABF5 003F
11C55 003F
11C5E 003F
11D55 003F
+11DA5 003F
12403 003F
1240A 003F
12410 003F
@@ -43733,9 +45183,15 @@ ABF5 003F
1246A 003F
16A65 003F
16B55 003F
+16E85 003F
+1D2E5 003F
1D364 003F
+1D376 003F
+1D378 003F
1E8CB 003F
1E955 003F
+1EC75 003F
+1ECA7 003F
FF15 003F
0F2E 003F
1D7D3 003F
@@ -43834,7 +45290,9 @@ ABF5 0061
109C4 0061
10AEC 0061
10CFB 0061
+10D35 0061
10E64 0061
+10F21 0061
11056 0061
1106B 0061
110F5 0061
@@ -43851,6 +45309,7 @@ ABF5 0061
11C55 0061
11C5E 0061
11D55 0061
+11DA5 0061
12403 0061
1240A 0061
12410 0061
@@ -43865,9 +45324,15 @@ ABF5 0061
1246A 0061
16A65 0061
16B55 0061
+16E85 0061
+1D2E5 0061
1D364 0061
+1D376 0061
+1D378 0061
1E8CB 0061
1E955 0061
+1EC75 0061
+1ECA7 0061
0035 0041
0665 0041
06F5 0041
@@ -43922,7 +45387,9 @@ ABF5 0041
109C4 0041
10AEC 0041
10CFB 0041
+10D35 0041
10E64 0041
+10F21 0041
11056 0041
1106B 0041
110F5 0041
@@ -43939,6 +45406,7 @@ ABF5 0041
11C55 0041
11C5E 0041
11D55 0041
+11DA5 0041
12403 0041
1240A 0041
12410 0041
@@ -43953,9 +45421,15 @@ ABF5 0041
1246A 0041
16A65 0041
16B55 0041
+16E85 0041
+1D2E5 0041
1D364 0041
+1D376 0041
+1D378 0041
1E8CB 0041
1E955 0041
+1EC75 0041
+1ECA7 0041
FF15 0061
FF15 0041
0F2E 0061
@@ -44038,7 +45512,9 @@ ABF5 0062
109C4 0062
10AEC 0062
10CFB 0062
+10D35 0062
10E64 0062
+10F21 0062
11056 0062
1106B 0062
110F5 0062
@@ -44055,6 +45531,7 @@ ABF5 0062
11C55 0062
11C5E 0062
11D55 0062
+11DA5 0062
12403 0062
1240A 0062
12410 0062
@@ -44069,9 +45546,15 @@ ABF5 0062
1246A 0062
16A65 0062
16B55 0062
+16E85 0062
+1D2E5 0062
1D364 0062
+1D376 0062
+1D378 0062
1E8CB 0062
1E955 0062
+1EC75 0062
+1ECA7 0062
FF15 0062
0F2E 0062
1D7D3 0062
@@ -44150,6 +45633,7 @@ ABF6 0021
102E6 0021
104A6 0021
109C5 0021
+10D36 0021
10E65 0021
11057 0021
1106C 0021
@@ -44167,6 +45651,7 @@ ABF6 0021
11C56 0021
11C5F 0021
11D56 0021
+11DA6 0021
12404 0021
1240B 0021
12411 0021
@@ -44177,9 +45662,13 @@ ABF6 0021
1246B 0021
16A66 0021
16B56 0021
+16E86 0021
+1D2E6 0021
1D365 0021
1E8CC 0021
1E956 0021
+1EC76 0021
+1ECA8 0021
FF16 0021
0F2F 0021
1D7D4 0021
@@ -44238,6 +45727,7 @@ ABF6 003F
102E6 003F
104A6 003F
109C5 003F
+10D36 003F
10E65 003F
11057 003F
1106C 003F
@@ -44255,6 +45745,7 @@ ABF6 003F
11C56 003F
11C5F 003F
11D56 003F
+11DA6 003F
12404 003F
1240B 003F
12411 003F
@@ -44265,9 +45756,13 @@ ABF6 003F
1246B 003F
16A66 003F
16B56 003F
+16E86 003F
+1D2E6 003F
1D365 003F
1E8CC 003F
1E956 003F
+1EC76 003F
+1ECA8 003F
FF16 003F
0F2F 003F
1D7D4 003F
@@ -44341,6 +45836,7 @@ ABF6 0061
102E6 0061
104A6 0061
109C5 0061
+10D36 0061
10E65 0061
11057 0061
1106C 0061
@@ -44358,6 +45854,7 @@ ABF6 0061
11C56 0061
11C5F 0061
11D56 0061
+11DA6 0061
12404 0061
1240B 0061
12411 0061
@@ -44368,9 +45865,13 @@ ABF6 0061
1246B 0061
16A66 0061
16B56 0061
+16E86 0061
+1D2E6 0061
1D365 0061
1E8CC 0061
1E956 0061
+1EC76 0061
+1ECA8 0061
0036 0041
0666 0041
06F6 0041
@@ -44415,6 +45916,7 @@ ABF6 0041
102E6 0041
104A6 0041
109C5 0041
+10D36 0041
10E65 0041
11057 0041
1106C 0041
@@ -44432,6 +45934,7 @@ ABF6 0041
11C56 0041
11C5F 0041
11D56 0041
+11DA6 0041
12404 0041
1240B 0041
12411 0041
@@ -44442,9 +45945,13 @@ ABF6 0041
1246B 0041
16A66 0041
16B56 0041
+16E86 0041
+1D2E6 0041
1D365 0041
1E8CC 0041
1E956 0041
+1EC76 0041
+1ECA8 0041
FF16 0061
FF16 0041
0F2F 0061
@@ -44517,6 +46024,7 @@ ABF6 0062
102E6 0062
104A6 0062
109C5 0062
+10D36 0062
10E65 0062
11057 0062
1106C 0062
@@ -44534,6 +46042,7 @@ ABF6 0062
11C56 0062
11C5F 0062
11D56 0062
+11DA6 0062
12404 0062
1240B 0062
12411 0062
@@ -44544,9 +46053,13 @@ ABF6 0062
1246B 0062
16A66 0062
16B56 0062
+16E86 0062
+1D2E6 0062
1D365 0062
1E8CC 0062
1E956 0062
+1EC76 0062
+1ECA8 0062
FF16 0062
0F2F 0062
1D7D4 0062
@@ -44624,6 +46137,7 @@ ABF7 0021
102E7 0021
104A7 0021
109C6 0021
+10D37 0021
10E66 0021
11058 0021
1106D 0021
@@ -44641,6 +46155,7 @@ ABF7 0021
11C57 0021
11C60 0021
11D57 0021
+11DA7 0021
12405 0021
1240C 0021
12412 0021
@@ -44652,9 +46167,13 @@ ABF7 0021
1246C 0021
16A67 0021
16B57 0021
+16E87 0021
+1D2E7 0021
1D366 0021
1E8CD 0021
1E957 0021
+1EC77 0021
+1ECA9 0021
FF17 0021
0F30 0021
1D7D5 0021
@@ -44712,6 +46231,7 @@ ABF7 003F
102E7 003F
104A7 003F
109C6 003F
+10D37 003F
10E66 003F
11058 003F
1106D 003F
@@ -44729,6 +46249,7 @@ ABF7 003F
11C57 003F
11C60 003F
11D57 003F
+11DA7 003F
12405 003F
1240C 003F
12412 003F
@@ -44740,9 +46261,13 @@ ABF7 003F
1246C 003F
16A67 003F
16B57 003F
+16E87 003F
+1D2E7 003F
1D366 003F
1E8CD 003F
1E957 003F
+1EC77 003F
+1ECA9 003F
FF17 003F
0F30 003F
1D7D5 003F
@@ -44820,6 +46345,7 @@ ABF7 0061
102E7 0061
104A7 0061
109C6 0061
+10D37 0061
10E66 0061
11058 0061
1106D 0061
@@ -44837,6 +46363,7 @@ ABF7 0061
11C57 0061
11C60 0061
11D57 0061
+11DA7 0061
12405 0061
1240C 0061
12412 0061
@@ -44848,9 +46375,13 @@ ABF7 0061
1246C 0061
16A67 0061
16B57 0061
+16E87 0061
+1D2E7 0061
1D366 0061
1E8CD 0061
1E957 0061
+1EC77 0061
+1ECA9 0061
0037 0041
0667 0041
06F7 0041
@@ -44894,6 +46425,7 @@ ABF7 0041
102E7 0041
104A7 0041
109C6 0041
+10D37 0041
10E66 0041
11058 0041
1106D 0041
@@ -44911,6 +46443,7 @@ ABF7 0041
11C57 0041
11C60 0041
11D57 0041
+11DA7 0041
12405 0041
1240C 0041
12412 0041
@@ -44922,9 +46455,13 @@ ABF7 0041
1246C 0041
16A67 0041
16B57 0041
+16E87 0041
+1D2E7 0041
1D366 0041
1E8CD 0041
1E957 0041
+1EC77 0041
+1ECA9 0041
FF17 0061
FF17 0041
0F30 0061
@@ -44996,6 +46533,7 @@ ABF7 0062
102E7 0062
104A7 0062
109C6 0062
+10D37 0062
10E66 0062
11058 0062
1106D 0062
@@ -45013,6 +46551,7 @@ ABF7 0062
11C57 0062
11C60 0062
11D57 0062
+11DA7 0062
12405 0062
1240C 0062
12412 0062
@@ -45024,9 +46563,13 @@ ABF7 0062
1246C 0062
16A67 0062
16B57 0062
+16E87 0062
+1D2E7 0062
1D366 0062
1E8CD 0062
1E957 0062
+1EC77 0062
+1ECA9 0062
FF17 0062
0F30 0062
1D7D5 0062
@@ -45104,6 +46647,7 @@ ABF8 0021
102E8 0021
104A8 0021
109C7 0021
+10D38 0021
10E67 0021
11059 0021
1106E 0021
@@ -45121,6 +46665,7 @@ ABF8 0021
11C58 0021
11C61 0021
11D58 0021
+11DA8 0021
12406 0021
1240D 0021
12413 0021
@@ -45131,9 +46676,13 @@ ABF8 0021
1246D 0021
16A68 0021
16B58 0021
+16E88 0021
+1D2E8 0021
1D367 0021
1E8CE 0021
1E958 0021
+1EC78 0021
+1ECAA 0021
FF18 0021
0F31 0021
1D7D6 0021
@@ -45191,6 +46740,7 @@ ABF8 003F
102E8 003F
104A8 003F
109C7 003F
+10D38 003F
10E67 003F
11059 003F
1106E 003F
@@ -45208,6 +46758,7 @@ ABF8 003F
11C58 003F
11C61 003F
11D58 003F
+11DA8 003F
12406 003F
1240D 003F
12413 003F
@@ -45218,9 +46769,13 @@ ABF8 003F
1246D 003F
16A68 003F
16B58 003F
+16E88 003F
+1D2E8 003F
1D367 003F
1E8CE 003F
1E958 003F
+1EC78 003F
+1ECAA 003F
FF18 003F
0F31 003F
1D7D6 003F
@@ -45288,6 +46843,7 @@ ABF8 0061
102E8 0061
104A8 0061
109C7 0061
+10D38 0061
10E67 0061
11059 0061
1106E 0061
@@ -45305,6 +46861,7 @@ ABF8 0061
11C58 0061
11C61 0061
11D58 0061
+11DA8 0061
12406 0061
1240D 0061
12413 0061
@@ -45315,9 +46872,13 @@ ABF8 0061
1246D 0061
16A68 0061
16B58 0061
+16E88 0061
+1D2E8 0061
1D367 0061
1E8CE 0061
1E958 0061
+1EC78 0061
+1ECAA 0061
0038 0041
0668 0041
06F8 0041
@@ -45361,6 +46922,7 @@ ABF8 0041
102E8 0041
104A8 0041
109C7 0041
+10D38 0041
10E67 0041
11059 0041
1106E 0041
@@ -45378,6 +46940,7 @@ ABF8 0041
11C58 0041
11C61 0041
11D58 0041
+11DA8 0041
12406 0041
1240D 0041
12413 0041
@@ -45388,9 +46951,13 @@ ABF8 0041
1246D 0041
16A68 0041
16B58 0041
+16E88 0041
+1D2E8 0041
1D367 0041
1E8CE 0041
1E958 0041
+1EC78 0041
+1ECAA 0041
FF18 0061
FF18 0041
0F31 0061
@@ -45462,6 +47029,7 @@ ABF8 0062
102E8 0062
104A8 0062
109C7 0062
+10D38 0062
10E67 0062
11059 0062
1106E 0062
@@ -45479,6 +47047,7 @@ ABF8 0062
11C58 0062
11C61 0062
11D58 0062
+11DA8 0062
12406 0062
1240D 0062
12413 0062
@@ -45489,9 +47058,13 @@ ABF8 0062
1246D 0062
16A68 0062
16B58 0062
+16E88 0062
+1D2E8 0062
1D367 0062
1E8CE 0062
1E958 0062
+1EC78 0062
+1ECAA 0062
FF18 0062
0F31 0062
1D7D6 0062
@@ -45574,6 +47147,7 @@ ABF9 0021
102E9 0021
104A9 0021
109C8 0021
+10D39 0021
10E68 0021
1105A 0021
1106F 0021
@@ -45591,6 +47165,7 @@ ABF9 0021
11C59 0021
11C62 0021
11D59 0021
+11DA9 0021
12407 0021
1240E 0021
12414 0021
@@ -45603,9 +47178,13 @@ ABF9 0021
1246E 0021
16A69 0021
16B59 0021
+16E89 0021
+1D2E9 0021
1D368 0021
1E8CF 0021
1E959 0021
+1EC79 0021
+1ECAB 0021
FF19 0021
0F32 0021
1D7D7 0021
@@ -45663,6 +47242,7 @@ ABF9 003F
102E9 003F
104A9 003F
109C8 003F
+10D39 003F
10E68 003F
1105A 003F
1106F 003F
@@ -45680,6 +47260,7 @@ ABF9 003F
11C59 003F
11C62 003F
11D59 003F
+11DA9 003F
12407 003F
1240E 003F
12414 003F
@@ -45692,9 +47273,13 @@ ABF9 003F
1246E 003F
16A69 003F
16B59 003F
+16E89 003F
+1D2E9 003F
1D368 003F
1E8CF 003F
1E959 003F
+1EC79 003F
+1ECAB 003F
FF19 003F
0F32 003F
1D7D7 003F
@@ -45757,6 +47342,7 @@ ABF9 0061
102E9 0061
104A9 0061
109C8 0061
+10D39 0061
10E68 0061
1105A 0061
1106F 0061
@@ -45774,6 +47360,7 @@ ABF9 0061
11C59 0061
11C62 0061
11D59 0061
+11DA9 0061
12407 0061
1240E 0061
12414 0061
@@ -45786,9 +47373,13 @@ ABF9 0061
1246E 0061
16A69 0061
16B59 0061
+16E89 0061
+1D2E9 0061
1D368 0061
1E8CF 0061
1E959 0061
+1EC79 0061
+1ECAB 0061
0039 0041
0669 0041
06F9 0041
@@ -45832,6 +47423,7 @@ ABF9 0041
102E9 0041
104A9 0041
109C8 0041
+10D39 0041
10E68 0041
1105A 0041
1106F 0041
@@ -45849,6 +47441,7 @@ ABF9 0041
11C59 0041
11C62 0041
11D59 0041
+11DA9 0041
12407 0041
1240E 0041
12414 0041
@@ -45861,9 +47454,13 @@ ABF9 0041
1246E 0041
16A69 0041
16B59 0041
+16E89 0041
+1D2E9 0041
1D368 0041
1E8CF 0041
1E959 0041
+1EC79 0041
+1ECAB 0041
FF19 0061
FF19 0041
0F32 0061
@@ -45935,6 +47532,7 @@ ABF9 0062
102E9 0062
104A9 0062
109C8 0062
+10D39 0062
10E68 0062
1105A 0062
1106F 0062
@@ -45952,6 +47550,7 @@ ABF9 0062
11C59 0062
11C62 0062
11D59 0062
+11DA9 0062
12407 0062
1240E 0062
12414 0062
@@ -45964,9 +47563,13 @@ ABF9 0062
1246E 0062
16A69 0062
16B59 0062
+16E89 0062
+1D2E9 0062
1D368 0062
1E8CF 0062
1E959 0062
+1EC79 0062
+1ECAB 0062
FF19 0062
0F32 0062
1D7D7 0062
@@ -46141,6 +47744,7 @@ FF19 0062
0749 0061
074A 0061
07FA 0061
+08D3 0061
08D4 0061
08D5 0061
08D6 0061
@@ -46304,6 +47908,7 @@ FFFA 0061
FFFB 0061
102E0 0061
110BD 0061
+110CD 0061
11366 0061
11367 0061
11368 0061
@@ -46977,6 +48582,7 @@ E01EF 0061
0749 0041
074A 0041
07FA 0041
+08D3 0041
08D4 0041
08D5 0041
08D6 0041
@@ -47140,6 +48746,7 @@ FFFA 0041
FFFB 0041
102E0 0041
110BD 0041
+110CD 0041
11366 0041
11367 0041
11368 0041
@@ -47992,6 +49599,14 @@ E01EF 0041
A67C 0061
A67D 0061
10AE5 0061
+10D24 0061
+10D25 0061
+10D26 0061
+10D27 0061
+10F48 0061
+10F49 0061
+10F4A 0061
+10F4C 0061
1BC9D 0061
030D 0041
030E 0041
@@ -48056,6 +49671,14 @@ A67D 0061
A67C 0041
A67D 0041
10AE5 0041
+10D24 0041
+10D25 0041
+10D26 0041
+10D27 0041
+10F48 0041
+10F49 0041
+10F4A 0041
+10F4C 0041
1BC9D 0041
0316 0061
0317 0061
@@ -48091,6 +49714,7 @@ A67D 0041
0362 0061
0742 0061
0746 0061
+07FD 0061
0859 0061
085A 0061
085B 0061
@@ -48115,6 +49739,13 @@ A67D 0041
FE27 0061
10A0D 0061
10AE6 0061
+10F46 0061
+10F47 0061
+10F4B 0061
+10F4D 0061
+10F4E 0061
+10F4F 0061
+10F50 0061
0316 0041
0317 0041
0318 0041
@@ -48149,6 +49780,7 @@ FE27 0061
0362 0041
0742 0041
0746 0041
+07FD 0041
0859 0041
085A 0041
085B 0041
@@ -48173,6 +49805,13 @@ FE27 0061
FE27 0041
10A0D 0041
10AE6 0041
+10F46 0041
+10F47 0041
+10F4B 0041
+10F4D 0041
+10F4E 0041
+10F4F 0041
+10F50 0041
0336 0061
0337 0061
20D8 0061
@@ -48603,11 +50242,13 @@ A9B3 0061
111CA 0061
11236 0061
112E9 0061
+1133B 0061
1133C 0061
11446 0061
114C3 0061
115C0 0061
116B7 0061
+1183A 0061
11A33 0061
11D42 0061
093C 0041
@@ -48628,11 +50269,13 @@ A9B3 0041
111CA 0041
11236 0041
112E9 0041
+1133B 0041
1133C 0041
11446 0041
114C3 0041
115C0 0041
116B7 0041
+1183A 0041
11A33 0041
11D42 0041
0900 0061
@@ -48700,6 +50343,7 @@ A980 0041
0B02 0061
0B82 0061
0C02 0061
+0C04 0061
0C82 0061
0D00 0061
0D02 0061
@@ -48728,11 +50372,13 @@ A981 0061
115BD 0061
1163D 0061
116AB 0061
+11837 0061
11A38 0061
11A96 0061
11C3D 0061
11CB5 0061
11D40 0061
+11D95 0061
0902 0041
0982 0041
0A02 0041
@@ -48740,6 +50386,7 @@ A981 0061
0B02 0041
0B82 0041
0C02 0041
+0C04 0041
0C82 0041
0D00 0041
0D02 0041
@@ -48768,11 +50415,13 @@ A981 0041
115BD 0041
1163D 0041
116AB 0041
+11837 0041
11A38 0041
11A96 0041
11C3D 0041
11CB5 0041
11D40 0041
+11D95 0041
0903 0061
0983 0061
0A03 0061
@@ -48802,10 +50451,12 @@ A983 0061
115BE 0061
1163E 0061
116AC 0061
+11838 0061
11A39 0061
11A97 0061
11C3E 0061
11D41 0061
+11D96 0061
0903 0041
0983 0041
0A03 0041
@@ -48835,10 +50486,18 @@ A983 0041
115BE 0041
1163E 0041
116AC 0041
+11838 0041
11A39 0041
11A97 0041
11C3E 0041
11D41 0041
+11D96 0041
+09FE 0061
+111C9 0061
+1145E 0061
+09FE 0041
+111C9 0041
+1145E 0041
0A70 0061
0A70 0041
0A71 0061
@@ -49928,6 +51587,7 @@ AB64 0062
0749 0062
074A 0062
07FA 0062
+08D3 0062
08D4 0062
08D5 0062
08D6 0062
@@ -50091,6 +51751,7 @@ FFFA 0062
FFFB 0062
102E0 0062
110BD 0062
+110CD 0062
11366 0062
11367 0062
11368 0062
@@ -50728,6 +52389,14 @@ E01EF 0062
A67C 0062
A67D 0062
10AE5 0062
+10D24 0062
+10D25 0062
+10D26 0062
+10D27 0062
+10F48 0062
+10F49 0062
+10F4A 0062
+10F4C 0062
1BC9D 0062
0316 0062
0317 0062
@@ -50763,6 +52432,7 @@ A67D 0062
0362 0062
0742 0062
0746 0062
+07FD 0062
0859 0062
085A 0062
085B 0062
@@ -50787,6 +52457,13 @@ A67D 0062
FE27 0062
10A0D 0062
10AE6 0062
+10F46 0062
+10F47 0062
+10F4B 0062
+10F4D 0062
+10F4E 0062
+10F4F 0062
+10F50 0062
0336 0062
0337 0062
20D8 0062
@@ -51010,11 +52687,13 @@ A9B3 0062
111CA 0062
11236 0062
112E9 0062
+1133B 0062
1133C 0062
11446 0062
114C3 0062
115C0 0062
116B7 0062
+1183A 0062
11A33 0062
11D42 0062
0900 0062
@@ -51053,6 +52732,7 @@ A980 0062
0B02 0062
0B82 0062
0C02 0062
+0C04 0062
0C82 0062
0D00 0062
0D02 0062
@@ -51081,11 +52761,13 @@ A981 0062
115BD 0062
1163D 0062
116AB 0062
+11837 0062
11A38 0062
11A96 0062
11C3D 0062
11CB5 0062
11D40 0062
+11D95 0062
0903 0062
0983 0062
0A03 0062
@@ -51115,10 +52797,15 @@ A983 0062
115BE 0062
1163E 0062
116AC 0062
+11838 0062
11A39 0062
11A97 0062
11C3E 0062
11D41 0062
+11D96 0062
+09FE 0062
+111C9 0062
+1145E 0062
0A70 0062
0A71 0062
1B03 0062
@@ -59097,6 +60784,11 @@ FF31 0062
0239 0061
0239 0041
0239 0062
+A7AF 0021
+A7AF 003F
+A7AF 0061
+A7AF 0041
+A7AF 0062
A757 0021
A756 0021
A757 003F
@@ -61539,6 +63231,16 @@ AB4F 003F
AB4F 0061
AB4F 0041
AB4F 0062
+A7B9 0021
+A7B8 0021
+A7B9 003F
+A7B8 003F
+A7B9 0061
+A7B9 0041
+A7B8 0061
+A7B8 0041
+A7B9 0062
+A7B8 0062
1D7E 0021
1D7E 003F
1D7E 0061
@@ -71857,10 +73559,15 @@ A65E 0062
10375 0041
10375 0062
10D0 0021
+1C90 0021
10D0 003F
+1C90 003F
10D0 0061
10D0 0041
+1C90 0061
+1C90 0041
10D0 0062
+1C90 0062
2D00 0021
10A0 0021
2D00 003F
@@ -71872,10 +73579,15 @@ A65E 0062
2D00 0062
10A0 0062
10D1 0021
+1C91 0021
10D1 003F
+1C91 003F
10D1 0061
10D1 0041
+1C91 0061
+1C91 0041
10D1 0062
+1C91 0062
2D01 0021
10A1 0021
2D01 003F
@@ -71887,10 +73599,15 @@ A65E 0062
2D01 0062
10A1 0062
10D2 0021
+1C92 0021
10D2 003F
+1C92 003F
10D2 0061
10D2 0041
+1C92 0061
+1C92 0041
10D2 0062
+1C92 0062
2D02 0021
10A2 0021
2D02 003F
@@ -71902,10 +73619,15 @@ A65E 0062
2D02 0062
10A2 0062
10D3 0021
+1C93 0021
10D3 003F
+1C93 003F
10D3 0061
10D3 0041
+1C93 0061
+1C93 0041
10D3 0062
+1C93 0062
2D03 0021
10A3 0021
2D03 003F
@@ -71917,10 +73639,15 @@ A65E 0062
2D03 0062
10A3 0062
10D4 0021
+1C94 0021
10D4 003F
+1C94 003F
10D4 0061
10D4 0041
+1C94 0061
+1C94 0041
10D4 0062
+1C94 0062
2D04 0021
10A4 0021
2D04 003F
@@ -71932,10 +73659,15 @@ A65E 0062
2D04 0062
10A4 0062
10D5 0021
+1C95 0021
10D5 003F
+1C95 003F
10D5 0061
10D5 0041
+1C95 0061
+1C95 0041
10D5 0062
+1C95 0062
2D05 0021
10A5 0021
2D05 003F
@@ -71947,10 +73679,15 @@ A65E 0062
2D05 0062
10A5 0062
10D6 0021
+1C96 0021
10D6 003F
+1C96 003F
10D6 0061
10D6 0041
+1C96 0061
+1C96 0041
10D6 0062
+1C96 0062
2D06 0021
10A6 0021
2D06 003F
@@ -71962,10 +73699,15 @@ A65E 0062
2D06 0062
10A6 0062
10F1 0021
+1CB1 0021
10F1 003F
+1CB1 003F
10F1 0061
10F1 0041
+1CB1 0061
+1CB1 0041
10F1 0062
+1CB1 0062
2D21 0021
10C1 0021
2D21 003F
@@ -71977,10 +73719,15 @@ A65E 0062
2D21 0062
10C1 0062
10D7 0021
+1C97 0021
10D7 003F
+1C97 003F
10D7 0061
10D7 0041
+1C97 0061
+1C97 0041
10D7 0062
+1C97 0062
2D07 0021
10A7 0021
2D07 003F
@@ -71992,10 +73739,15 @@ A65E 0062
2D07 0062
10A7 0062
10D8 0021
+1C98 0021
10D8 003F
+1C98 003F
10D8 0061
10D8 0041
+1C98 0061
+1C98 0041
10D8 0062
+1C98 0062
2D08 0021
10A8 0021
2D08 003F
@@ -72007,10 +73759,15 @@ A65E 0062
2D08 0062
10A8 0062
10D9 0021
+1C99 0021
10D9 003F
+1C99 003F
10D9 0061
10D9 0041
+1C99 0061
+1C99 0041
10D9 0062
+1C99 0062
2D09 0021
10A9 0021
2D09 003F
@@ -72022,10 +73779,15 @@ A65E 0062
2D09 0062
10A9 0062
10DA 0021
+1C9A 0021
10DA 003F
+1C9A 003F
10DA 0061
10DA 0041
+1C9A 0061
+1C9A 0041
10DA 0062
+1C9A 0062
2D0A 0021
10AA 0021
2D0A 003F
@@ -72037,10 +73799,15 @@ A65E 0062
2D0A 0062
10AA 0062
10DB 0021
+1C9B 0021
10DB 003F
+1C9B 003F
10DB 0061
10DB 0041
+1C9B 0061
+1C9B 0041
10DB 0062
+1C9B 0062
2D0B 0021
10AB 0021
2D0B 003F
@@ -72052,14 +73819,19 @@ A65E 0062
2D0B 0062
10AB 0062
10DC 0021
+1C9C 0021
10FC 0021
10DC 003F
+1C9C 003F
10FC 003F
10DC 0061
10DC 0041
+1C9C 0061
+1C9C 0041
10FC 0061
10FC 0041
10DC 0062
+1C9C 0062
10FC 0062
2D0C 0021
10AC 0021
@@ -72072,10 +73844,15 @@ A65E 0062
2D0C 0062
10AC 0062
10F2 0021
+1CB2 0021
10F2 003F
+1CB2 003F
10F2 0061
10F2 0041
+1CB2 0061
+1CB2 0041
10F2 0062
+1CB2 0062
2D22 0021
10C2 0021
2D22 003F
@@ -72087,10 +73864,15 @@ A65E 0062
2D22 0062
10C2 0062
10DD 0021
+1C9D 0021
10DD 003F
+1C9D 003F
10DD 0061
10DD 0041
+1C9D 0061
+1C9D 0041
10DD 0062
+1C9D 0062
2D0D 0021
10AD 0021
2D0D 003F
@@ -72102,10 +73884,15 @@ A65E 0062
2D0D 0062
10AD 0062
10DE 0021
+1C9E 0021
10DE 003F
+1C9E 003F
10DE 0061
10DE 0041
+1C9E 0061
+1C9E 0041
10DE 0062
+1C9E 0062
2D0E 0021
10AE 0021
2D0E 003F
@@ -72117,10 +73904,15 @@ A65E 0062
2D0E 0062
10AE 0062
10DF 0021
+1C9F 0021
10DF 003F
+1C9F 003F
10DF 0061
10DF 0041
+1C9F 0061
+1C9F 0041
10DF 0062
+1C9F 0062
2D0F 0021
10AF 0021
2D0F 003F
@@ -72132,10 +73924,15 @@ A65E 0062
2D0F 0062
10AF 0062
10E0 0021
+1CA0 0021
10E0 003F
+1CA0 003F
10E0 0061
10E0 0041
+1CA0 0061
+1CA0 0041
10E0 0062
+1CA0 0062
2D10 0021
10B0 0021
2D10 003F
@@ -72147,10 +73944,15 @@ A65E 0062
2D10 0062
10B0 0062
10E1 0021
+1CA1 0021
10E1 003F
+1CA1 003F
10E1 0061
10E1 0041
+1CA1 0061
+1CA1 0041
10E1 0062
+1CA1 0062
2D11 0021
10B1 0021
2D11 003F
@@ -72162,10 +73964,15 @@ A65E 0062
2D11 0062
10B1 0062
10E2 0021
+1CA2 0021
10E2 003F
+1CA2 003F
10E2 0061
10E2 0041
+1CA2 0061
+1CA2 0041
10E2 0062
+1CA2 0062
2D12 0021
10B2 0021
2D12 003F
@@ -72177,10 +73984,15 @@ A65E 0062
2D12 0062
10B2 0062
10F3 0021
+1CB3 0021
10F3 003F
+1CB3 003F
10F3 0061
10F3 0041
+1CB3 0061
+1CB3 0041
10F3 0062
+1CB3 0062
2D23 0021
10C3 0021
2D23 003F
@@ -72192,10 +74004,15 @@ A65E 0062
2D23 0062
10C3 0062
10E3 0021
+1CA3 0021
10E3 003F
+1CA3 003F
10E3 0061
10E3 0041
+1CA3 0061
+1CA3 0041
10E3 0062
+1CA3 0062
2D13 0021
10B3 0021
2D13 003F
@@ -72207,10 +74024,15 @@ A65E 0062
2D13 0062
10B3 0062
10E4 0021
+1CA4 0021
10E4 003F
+1CA4 003F
10E4 0061
10E4 0041
+1CA4 0061
+1CA4 0041
10E4 0062
+1CA4 0062
2D14 0021
10B4 0021
2D14 003F
@@ -72222,10 +74044,15 @@ A65E 0062
2D14 0062
10B4 0062
10E5 0021
+1CA5 0021
10E5 003F
+1CA5 003F
10E5 0061
10E5 0041
+1CA5 0061
+1CA5 0041
10E5 0062
+1CA5 0062
2D15 0021
10B5 0021
2D15 003F
@@ -72237,10 +74064,15 @@ A65E 0062
2D15 0062
10B5 0062
10E6 0021
+1CA6 0021
10E6 003F
+1CA6 003F
10E6 0061
10E6 0041
+1CA6 0061
+1CA6 0041
10E6 0062
+1CA6 0062
2D16 0021
10B6 0021
2D16 003F
@@ -72252,10 +74084,15 @@ A65E 0062
2D16 0062
10B6 0062
10E7 0021
+1CA7 0021
10E7 003F
+1CA7 003F
10E7 0061
10E7 0041
+1CA7 0061
+1CA7 0041
10E7 0062
+1CA7 0062
2D17 0021
10B7 0021
2D17 003F
@@ -72267,10 +74104,15 @@ A65E 0062
2D17 0062
10B7 0062
10E8 0021
+1CA8 0021
10E8 003F
+1CA8 003F
10E8 0061
10E8 0041
+1CA8 0061
+1CA8 0041
10E8 0062
+1CA8 0062
2D18 0021
10B8 0021
2D18 003F
@@ -72282,10 +74124,15 @@ A65E 0062
2D18 0062
10B8 0062
10E9 0021
+1CA9 0021
10E9 003F
+1CA9 003F
10E9 0061
10E9 0041
+1CA9 0061
+1CA9 0041
10E9 0062
+1CA9 0062
2D19 0021
10B9 0021
2D19 003F
@@ -72297,10 +74144,15 @@ A65E 0062
2D19 0062
10B9 0062
10EA 0021
+1CAA 0021
10EA 003F
+1CAA 003F
10EA 0061
10EA 0041
+1CAA 0061
+1CAA 0041
10EA 0062
+1CAA 0062
2D1A 0021
10BA 0021
2D1A 003F
@@ -72312,10 +74164,15 @@ A65E 0062
2D1A 0062
10BA 0062
10EB 0021
+1CAB 0021
10EB 003F
+1CAB 003F
10EB 0061
10EB 0041
+1CAB 0061
+1CAB 0041
10EB 0062
+1CAB 0062
2D1B 0021
10BB 0021
2D1B 003F
@@ -72327,10 +74184,15 @@ A65E 0062
2D1B 0062
10BB 0062
10EC 0021
+1CAC 0021
10EC 003F
+1CAC 003F
10EC 0061
10EC 0041
+1CAC 0061
+1CAC 0041
10EC 0062
+1CAC 0062
2D1C 0021
10BC 0021
2D1C 003F
@@ -72342,10 +74204,15 @@ A65E 0062
2D1C 0062
10BC 0062
10ED 0021
+1CAD 0021
10ED 003F
+1CAD 003F
10ED 0061
10ED 0041
+1CAD 0061
+1CAD 0041
10ED 0062
+1CAD 0062
2D1D 0021
10BD 0021
2D1D 003F
@@ -72357,10 +74224,15 @@ A65E 0062
2D1D 0062
10BD 0062
10EE 0021
+1CAE 0021
10EE 003F
+1CAE 003F
10EE 0061
10EE 0041
+1CAE 0061
+1CAE 0041
10EE 0062
+1CAE 0062
2D1E 0021
10BE 0021
2D1E 003F
@@ -72372,10 +74244,15 @@ A65E 0062
2D1E 0062
10BE 0062
10F4 0021
+1CB4 0021
10F4 003F
+1CB4 003F
10F4 0061
10F4 0041
+1CB4 0061
+1CB4 0041
10F4 0062
+1CB4 0062
2D24 0021
10C4 0021
2D24 003F
@@ -72387,10 +74264,15 @@ A65E 0062
2D24 0062
10C4 0062
10EF 0021
+1CAF 0021
10EF 003F
+1CAF 003F
10EF 0061
10EF 0041
+1CAF 0061
+1CAF 0041
10EF 0062
+1CAF 0062
2D1F 0021
10BF 0021
2D1F 003F
@@ -72402,10 +74284,15 @@ A65E 0062
2D1F 0062
10BF 0062
10F0 0021
+1CB0 0021
10F0 003F
+1CB0 003F
10F0 0061
10F0 0041
+1CB0 0061
+1CB0 0041
10F0 0062
+1CB0 0062
2D20 0021
10C0 0021
2D20 003F
@@ -72417,10 +74304,15 @@ A65E 0062
2D20 0062
10C0 0062
10F5 0021
+1CB5 0021
10F5 003F
+1CB5 003F
10F5 0061
10F5 0041
+1CB5 0061
+1CB5 0041
10F5 0062
+1CB5 0062
2D25 0021
10C5 0021
2D25 003F
@@ -72432,15 +74324,25 @@ A65E 0062
2D25 0062
10C5 0062
10F6 0021
+1CB6 0021
10F6 003F
+1CB6 003F
10F6 0061
10F6 0041
+1CB6 0061
+1CB6 0041
10F6 0062
+1CB6 0062
10F7 0021
+1CB7 0021
10F7 003F
+1CB7 003F
10F7 0061
10F7 0041
+1CB7 0061
+1CB7 0041
10F7 0062
+1CB7 0062
2D27 0021
10C7 0021
2D27 003F
@@ -72452,25 +74354,45 @@ A65E 0062
2D27 0062
10C7 0062
10F8 0021
+1CB8 0021
10F8 003F
+1CB8 003F
10F8 0061
10F8 0041
+1CB8 0061
+1CB8 0041
10F8 0062
+1CB8 0062
10F9 0021
+1CB9 0021
10F9 003F
+1CB9 003F
10F9 0061
10F9 0041
+1CB9 0061
+1CB9 0041
10F9 0062
+1CB9 0062
10FA 0021
+1CBA 0021
10FA 003F
+1CBA 003F
10FA 0061
10FA 0041
+1CBA 0061
+1CBA 0041
10FA 0062
+1CBA 0062
10FD 0021
+1CBD 0021
10FD 003F
+1CBD 003F
10FD 0061
10FD 0041
+1CBD 0061
+1CBD 0041
10FD 0062
+1CBD 0062
2D2D 0021
10CD 0021
2D2D 003F
@@ -72482,15 +74404,25 @@ A65E 0062
2D2D 0062
10CD 0062
10FE 0021
+1CBE 0021
10FE 003F
+1CBE 003F
10FE 0061
10FE 0041
+1CBE 0061
+1CBE 0041
10FE 0062
+1CBE 0062
10FF 0021
+1CBF 0021
10FF 003F
+1CBF 003F
10FF 0061
10FF 0041
+1CBF 0061
+1CBF 0041
10FF 0062
+1CBF 0062
0561 0021
0531 0021
0561 003F
@@ -72501,6 +74433,11 @@ A65E 0062
0531 0041
0561 0062
0531 0062
+0560 0021
+0560 003F
+0560 0061
+0560 0041
+0560 0062
0562 0021
0532 0021
0562 003F
@@ -72726,6 +74663,11 @@ FB13 0062
0545 0041
0575 0062
0545 0062
+0588 0021
+0588 003F
+0588 0061
+0588 0041
+0588 0062
0576 0021
0546 0021
0576 003F
@@ -73118,6 +75060,11 @@ FB39 0041
05D9 0062
FB1D 0062
FB39 0062
+05EF 0021
+05EF 003F
+05EF 0061
+05EF 0041
+05EF 0062
05F2 0334 05B7
05F2 05B7 0334
FB1F 0334
@@ -82545,6 +84492,11 @@ A8FD 0062
0910 0061
0910 0041
0910 0062
+A8FE 0021
+A8FE 003F
+A8FE 0061
+A8FE 0041
+A8FE 0062
0911 0021
0911 003F
0911 0061
@@ -83053,6 +85005,11 @@ A8FB 0062
0948 0061
0948 0041
0948 0062
+A8FF 0021
+A8FF 003F
+A8FF 0061
+A8FF 0041
+A8FF 0062
0949 0021
0949 003F
0949 0061
@@ -90900,6 +92857,288 @@ A8C4 0062
116B6 0061
116B6 0041
116B6 0062
+11800 0021
+11800 003F
+11800 0061
+11800 0041
+11800 0062
+11801 0021
+11801 003F
+11801 0061
+11801 0041
+11801 0062
+11802 0021
+11802 003F
+11802 0061
+11802 0041
+11802 0062
+11803 0021
+11803 003F
+11803 0061
+11803 0041
+11803 0062
+11804 0021
+11804 003F
+11804 0061
+11804 0041
+11804 0062
+11805 0021
+11805 003F
+11805 0061
+11805 0041
+11805 0062
+11806 0021
+11806 003F
+11806 0061
+11806 0041
+11806 0062
+11807 0021
+11807 003F
+11807 0061
+11807 0041
+11807 0062
+11808 0021
+11808 003F
+11808 0061
+11808 0041
+11808 0062
+11809 0021
+11809 003F
+11809 0061
+11809 0041
+11809 0062
+1180A 0021
+1180A 003F
+1180A 0061
+1180A 0041
+1180A 0062
+1180B 0021
+1180B 003F
+1180B 0061
+1180B 0041
+1180B 0062
+1180C 0021
+1180C 003F
+1180C 0061
+1180C 0041
+1180C 0062
+1180D 0021
+1180D 003F
+1180D 0061
+1180D 0041
+1180D 0062
+1180E 0021
+1180E 003F
+1180E 0061
+1180E 0041
+1180E 0062
+1180F 0021
+1180F 003F
+1180F 0061
+1180F 0041
+1180F 0062
+11810 0021
+11810 003F
+11810 0061
+11810 0041
+11810 0062
+11811 0021
+11811 003F
+11811 0061
+11811 0041
+11811 0062
+11812 0021
+11812 003F
+11812 0061
+11812 0041
+11812 0062
+11813 0021
+11813 003F
+11813 0061
+11813 0041
+11813 0062
+11814 0021
+11814 003F
+11814 0061
+11814 0041
+11814 0062
+11815 0021
+11815 003F
+11815 0061
+11815 0041
+11815 0062
+11816 0021
+11816 003F
+11816 0061
+11816 0041
+11816 0062
+11817 0021
+11817 003F
+11817 0061
+11817 0041
+11817 0062
+11818 0021
+11818 003F
+11818 0061
+11818 0041
+11818 0062
+11819 0021
+11819 003F
+11819 0061
+11819 0041
+11819 0062
+1181A 0021
+1181A 003F
+1181A 0061
+1181A 0041
+1181A 0062
+1181B 0021
+1181B 003F
+1181B 0061
+1181B 0041
+1181B 0062
+1181C 0021
+1181C 003F
+1181C 0061
+1181C 0041
+1181C 0062
+1181D 0021
+1181D 003F
+1181D 0061
+1181D 0041
+1181D 0062
+1181E 0021
+1181E 003F
+1181E 0061
+1181E 0041
+1181E 0062
+1181F 0021
+1181F 003F
+1181F 0061
+1181F 0041
+1181F 0062
+11820 0021
+11820 003F
+11820 0061
+11820 0041
+11820 0062
+11821 0021
+11821 003F
+11821 0061
+11821 0041
+11821 0062
+11822 0021
+11822 003F
+11822 0061
+11822 0041
+11822 0062
+11823 0021
+11823 003F
+11823 0061
+11823 0041
+11823 0062
+11824 0021
+11824 003F
+11824 0061
+11824 0041
+11824 0062
+11825 0021
+11825 003F
+11825 0061
+11825 0041
+11825 0062
+11826 0021
+11826 003F
+11826 0061
+11826 0041
+11826 0062
+11827 0021
+11827 003F
+11827 0061
+11827 0041
+11827 0062
+11828 0021
+11828 003F
+11828 0061
+11828 0041
+11828 0062
+11829 0021
+11829 003F
+11829 0061
+11829 0041
+11829 0062
+1182A 0021
+1182A 003F
+1182A 0061
+1182A 0041
+1182A 0062
+1182B 0021
+1182B 003F
+1182B 0061
+1182B 0041
+1182B 0062
+1182C 0021
+1182C 003F
+1182C 0061
+1182C 0041
+1182C 0062
+1182D 0021
+1182D 003F
+1182D 0061
+1182D 0041
+1182D 0062
+1182E 0021
+1182E 003F
+1182E 0061
+1182E 0041
+1182E 0062
+1182F 0021
+1182F 003F
+1182F 0061
+1182F 0041
+1182F 0062
+11830 0021
+11830 003F
+11830 0061
+11830 0041
+11830 0062
+11831 0021
+11831 003F
+11831 0061
+11831 0041
+11831 0062
+11832 0021
+11832 003F
+11832 0061
+11832 0041
+11832 0062
+11833 0021
+11833 003F
+11833 0061
+11833 0041
+11833 0062
+11834 0021
+11834 003F
+11834 0061
+11834 0041
+11834 0062
+11835 0021
+11835 003F
+11835 0061
+11835 0041
+11835 0062
+11836 0021
+11836 003F
+11836 0061
+11836 0041
+11836 0062
+0334 11839
+11839 0334
+11839 0021
+11839 003F
+11839 0061
+11839 0041
+11839 0062
11700 0021
11700 003F
11700 0061
@@ -90941,10 +93180,15 @@ A8C4 0062
11707 0041
11707 0062
11708 0021
+1171A 0021
11708 003F
+1171A 003F
11708 0061
11708 0041
+1171A 0061
+1171A 0041
11708 0062
+1171A 0062
11709 0021
11709 003F
11709 0061
@@ -91416,6 +93660,263 @@ A8C4 0062
11D45 0061
11D45 0041
11D45 0062
+11D98 0021
+11D98 003F
+11D98 0061
+11D98 0041
+11D98 0062
+11D60 0021
+11D60 003F
+11D60 0061
+11D60 0041
+11D60 0062
+11D61 0021
+11D61 003F
+11D61 0061
+11D61 0041
+11D61 0062
+11D62 0021
+11D62 003F
+11D62 0061
+11D62 0041
+11D62 0062
+11D63 0021
+11D63 003F
+11D63 0061
+11D63 0041
+11D63 0062
+11D64 0021
+11D64 003F
+11D64 0061
+11D64 0041
+11D64 0062
+11D65 0021
+11D65 003F
+11D65 0061
+11D65 0041
+11D65 0062
+11D67 0021
+11D67 003F
+11D67 0061
+11D67 0041
+11D67 0062
+11D68 0021
+11D68 003F
+11D68 0061
+11D68 0041
+11D68 0062
+11D6A 0021
+11D6A 003F
+11D6A 0061
+11D6A 0041
+11D6A 0062
+11D6B 0021
+11D6B 003F
+11D6B 0061
+11D6B 0041
+11D6B 0062
+11D6C 0021
+11D6C 003F
+11D6C 0061
+11D6C 0041
+11D6C 0062
+11D6D 0021
+11D6D 003F
+11D6D 0061
+11D6D 0041
+11D6D 0062
+11D6E 0021
+11D6E 003F
+11D6E 0061
+11D6E 0041
+11D6E 0062
+11D6F 0021
+11D6F 003F
+11D6F 0061
+11D6F 0041
+11D6F 0062
+11D70 0021
+11D70 003F
+11D70 0061
+11D70 0041
+11D70 0062
+11D71 0021
+11D71 003F
+11D71 0061
+11D71 0041
+11D71 0062
+11D72 0021
+11D72 003F
+11D72 0061
+11D72 0041
+11D72 0062
+11D73 0021
+11D73 003F
+11D73 0061
+11D73 0041
+11D73 0062
+11D74 0021
+11D74 003F
+11D74 0061
+11D74 0041
+11D74 0062
+11D75 0021
+11D75 003F
+11D75 0061
+11D75 0041
+11D75 0062
+11D76 0021
+11D76 003F
+11D76 0061
+11D76 0041
+11D76 0062
+11D77 0021
+11D77 003F
+11D77 0061
+11D77 0041
+11D77 0062
+11D78 0021
+11D78 003F
+11D78 0061
+11D78 0041
+11D78 0062
+11D79 0021
+11D79 003F
+11D79 0061
+11D79 0041
+11D79 0062
+11D7A 0021
+11D7A 003F
+11D7A 0061
+11D7A 0041
+11D7A 0062
+11D7B 0021
+11D7B 003F
+11D7B 0061
+11D7B 0041
+11D7B 0062
+11D7C 0021
+11D7C 003F
+11D7C 0061
+11D7C 0041
+11D7C 0062
+11D7D 0021
+11D7D 003F
+11D7D 0061
+11D7D 0041
+11D7D 0062
+11D7E 0021
+11D7E 003F
+11D7E 0061
+11D7E 0041
+11D7E 0062
+11D7F 0021
+11D7F 003F
+11D7F 0061
+11D7F 0041
+11D7F 0062
+11D80 0021
+11D80 003F
+11D80 0061
+11D80 0041
+11D80 0062
+11D81 0021
+11D81 003F
+11D81 0061
+11D81 0041
+11D81 0062
+11D82 0021
+11D82 003F
+11D82 0061
+11D82 0041
+11D82 0062
+11D83 0021
+11D83 003F
+11D83 0061
+11D83 0041
+11D83 0062
+11D84 0021
+11D84 003F
+11D84 0061
+11D84 0041
+11D84 0062
+11D85 0021
+11D85 003F
+11D85 0061
+11D85 0041
+11D85 0062
+11D86 0021
+11D86 003F
+11D86 0061
+11D86 0041
+11D86 0062
+11D87 0021
+11D87 003F
+11D87 0061
+11D87 0041
+11D87 0062
+11D88 0021
+11D88 003F
+11D88 0061
+11D88 0041
+11D88 0062
+11D89 0021
+11D89 003F
+11D89 0061
+11D89 0041
+11D89 0062
+11D8A 0021
+11D8A 003F
+11D8A 0061
+11D8A 0041
+11D8A 0062
+11D8B 0021
+11D8B 003F
+11D8B 0061
+11D8B 0041
+11D8B 0062
+11D8C 0021
+11D8C 003F
+11D8C 0061
+11D8C 0041
+11D8C 0062
+11D8D 0021
+11D8D 003F
+11D8D 0061
+11D8D 0041
+11D8D 0062
+11D8E 0021
+11D8E 003F
+11D8E 0061
+11D8E 0041
+11D8E 0062
+11D90 0021
+11D90 003F
+11D90 0061
+11D90 0041
+11D90 0062
+11D91 0021
+11D91 003F
+11D91 0061
+11D91 0041
+11D91 0062
+11D93 0021
+11D93 003F
+11D93 0061
+11D93 0041
+11D93 0062
+11D94 0021
+11D94 003F
+11D94 0061
+11D94 0041
+11D94 0062
+0334 11D97
+11D97 0334
+11D97 0021
+11D97 003F
+11D97 0061
+11D97 0041
+11D97 0062
1B83 0021
1BBA 0021
1B83 003F
@@ -92064,6 +94565,11 @@ A8C4 0062
10A10 0061
10A10 0041
10A10 0062
+10A32 0021
+10A32 003F
+10A32 0061
+10A32 0041
+10A32 0062
10A11 0021
10A11 003F
10A11 0061
@@ -92104,11 +94610,21 @@ A8C4 0062
10A1A 0061
10A1A 0041
10A1A 0062
+10A34 0021
+10A34 003F
+10A34 0061
+10A34 0041
+10A34 0062
10A1B 0021
10A1B 003F
10A1B 0061
10A1B 0041
10A1B 0062
+10A33 0021
+10A33 003F
+10A33 0061
+10A33 0041
+10A33 0062
10A1C 0021
10A1C 003F
10A1C 0061
@@ -92194,6 +94710,11 @@ A8C4 0062
10A2C 0061
10A2C 0041
10A2C 0062
+10A35 0021
+10A35 003F
+10A35 0061
+10A35 0041
+10A35 0062
10A2D 0021
10A2D 003F
10A2D 0061
@@ -92219,16 +94740,6 @@ A8C4 0062
10A31 0061
10A31 0041
10A31 0062
-10A32 0021
-10A32 003F
-10A32 0061
-10A32 0041
-10A32 0062
-10A33 0021
-10A33 003F
-10A33 0061
-10A33 0041
-10A33 0062
0334 10A3F
10A3F 0334
10A3F 0021
@@ -99919,6 +102430,11 @@ AADC 0062
11A99 0061
11A99 0041
11A99 0062
+11A9D 0021
+11A9D 003F
+11A9D 0061
+11A9D 0041
+11A9D 0062
11C72 0021
11C72 003F
11C72 0061
@@ -101592,6 +104108,121 @@ A873 0062
1A1B 0061
1A1B 0041
1A1B 0062
+11EE0 0021
+11EE0 003F
+11EE0 0061
+11EE0 0041
+11EE0 0062
+11EE1 0021
+11EE1 003F
+11EE1 0061
+11EE1 0041
+11EE1 0062
+11EE2 0021
+11EE2 003F
+11EE2 0061
+11EE2 0041
+11EE2 0062
+11EE3 0021
+11EE3 003F
+11EE3 0061
+11EE3 0041
+11EE3 0062
+11EE4 0021
+11EE4 003F
+11EE4 0061
+11EE4 0041
+11EE4 0062
+11EE5 0021
+11EE5 003F
+11EE5 0061
+11EE5 0041
+11EE5 0062
+11EE6 0021
+11EE6 003F
+11EE6 0061
+11EE6 0041
+11EE6 0062
+11EE7 0021
+11EE7 003F
+11EE7 0061
+11EE7 0041
+11EE7 0062
+11EE8 0021
+11EE8 003F
+11EE8 0061
+11EE8 0041
+11EE8 0062
+11EE9 0021
+11EE9 003F
+11EE9 0061
+11EE9 0041
+11EE9 0062
+11EEA 0021
+11EEA 003F
+11EEA 0061
+11EEA 0041
+11EEA 0062
+11EEB 0021
+11EEB 003F
+11EEB 0061
+11EEB 0041
+11EEB 0062
+11EEC 0021
+11EEC 003F
+11EEC 0061
+11EEC 0041
+11EEC 0062
+11EED 0021
+11EED 003F
+11EED 0061
+11EED 0041
+11EED 0062
+11EEE 0021
+11EEE 003F
+11EEE 0061
+11EEE 0041
+11EEE 0062
+11EEF 0021
+11EEF 003F
+11EEF 0061
+11EEF 0041
+11EEF 0062
+11EF0 0021
+11EF0 003F
+11EF0 0061
+11EF0 0041
+11EF0 0062
+11EF1 0021
+11EF1 003F
+11EF1 0061
+11EF1 0041
+11EF1 0062
+11EF2 0021
+11EF2 003F
+11EF2 0061
+11EF2 0041
+11EF2 0062
+11EF3 0021
+11EF3 003F
+11EF3 0061
+11EF3 0041
+11EF3 0062
+11EF4 0021
+11EF4 003F
+11EF4 0061
+11EF4 0041
+11EF4 0062
+11EF5 0021
+11EF5 003F
+11EF5 0061
+11EF5 0041
+11EF5 0062
+11EF6 0021
+11EF6 003F
+11EF6 0061
+11EF6 0041
+11EF6 0062
1BC0 0021
1BC1 0021
1BC0 003F
@@ -103097,6 +105728,186 @@ AA76 003F
AA76 0061
AA76 0041
AA76 0062
+10D00 0021
+10D00 003F
+10D00 0061
+10D00 0041
+10D00 0062
+10D1D 0021
+10D1D 003F
+10D1D 0061
+10D1D 0041
+10D1D 0062
+10D1E 0021
+10D1E 003F
+10D1E 0061
+10D1E 0041
+10D1E 0062
+10D1F 0021
+10D1F 003F
+10D1F 0061
+10D1F 0041
+10D1F 0062
+10D20 0021
+10D20 003F
+10D20 0061
+10D20 0041
+10D20 0062
+10D21 0021
+10D21 003F
+10D21 0061
+10D21 0041
+10D21 0062
+10D01 0021
+10D01 003F
+10D01 0061
+10D01 0041
+10D01 0062
+10D02 0021
+10D02 003F
+10D02 0061
+10D02 0041
+10D02 0062
+10D03 0021
+10D03 003F
+10D03 0061
+10D03 0041
+10D03 0062
+10D04 0021
+10D04 003F
+10D04 0061
+10D04 0041
+10D04 0062
+10D05 0021
+10D05 003F
+10D05 0061
+10D05 0041
+10D05 0062
+10D06 0021
+10D06 003F
+10D06 0061
+10D06 0041
+10D06 0062
+10D07 0021
+10D07 003F
+10D07 0061
+10D07 0041
+10D07 0062
+10D08 0021
+10D08 003F
+10D08 0061
+10D08 0041
+10D08 0062
+10D09 0021
+10D09 003F
+10D09 0061
+10D09 0041
+10D09 0062
+10D0A 0021
+10D0A 003F
+10D0A 0061
+10D0A 0041
+10D0A 0062
+10D0B 0021
+10D0B 003F
+10D0B 0061
+10D0B 0041
+10D0B 0062
+10D0C 0021
+10D0C 003F
+10D0C 0061
+10D0C 0041
+10D0C 0062
+10D0D 0021
+10D0D 003F
+10D0D 0061
+10D0D 0041
+10D0D 0062
+10D0E 0021
+10D0E 003F
+10D0E 0061
+10D0E 0041
+10D0E 0062
+10D0F 0021
+10D0F 003F
+10D0F 0061
+10D0F 0041
+10D0F 0062
+10D10 0021
+10D10 003F
+10D10 0061
+10D10 0041
+10D10 0062
+10D11 0021
+10D11 003F
+10D11 0061
+10D11 0041
+10D11 0062
+10D12 0021
+10D12 003F
+10D12 0061
+10D12 0041
+10D12 0062
+10D13 0021
+10D13 003F
+10D13 0061
+10D13 0041
+10D13 0062
+10D14 0021
+10D14 003F
+10D14 0061
+10D14 0041
+10D14 0062
+10D15 0021
+10D15 003F
+10D15 0061
+10D15 0041
+10D15 0062
+10D16 0021
+10D16 003F
+10D16 0061
+10D16 0041
+10D16 0062
+10D17 0021
+10D17 003F
+10D17 0061
+10D17 0041
+10D17 0062
+10D18 0021
+10D18 003F
+10D18 0061
+10D18 0041
+10D18 0062
+10D19 0021
+10D19 003F
+10D19 0061
+10D19 0041
+10D19 0062
+10D1A 0021
+10D1A 003F
+10D1A 0061
+10D1A 0041
+10D1A 0062
+10D1B 0021
+10D1B 003F
+10D1B 0061
+10D1B 0041
+10D1B 0062
+10D1C 0021
+10D1C 003F
+10D1C 0061
+10D1C 0041
+10D1C 0062
+10D22 0021
+10D22 003F
+10D22 0061
+10D22 0041
+10D22 0062
+10D23 0021
+10D23 003F
+10D23 0061
+10D23 0041
+10D23 0062
11103 0021
11103 003F
11103 0061
@@ -103277,6 +106088,11 @@ AA76 0062
11126 0061
11126 0041
11126 0062
+11144 0021
+11144 003F
+11144 0061
+11144 0041
+11144 0062
11127 0021
11127 003F
11127 0061
@@ -103353,6 +106169,16 @@ AA76 0062
11132 0001 11127 0061
11132 0591 11127 0061
11132 1D165 11127 0061
+11145 0021
+11145 003F
+11145 0061
+11145 0041
+11145 0062
+11146 0021
+11146 003F
+11146 0061
+11146 0041
+11146 0062
0334 11133
11133 0334
11133 0021
@@ -107506,6 +110332,11 @@ A9C0 0062
1871 0061
1871 0041
1871 0062
+1878 0021
+1878 003F
+1878 0061
+1878 0041
+1878 0062
185C 0021
185C 003F
185C 0061
@@ -120008,6 +122839,326 @@ A6EF 0062
1E8C4 0061
1E8C4 0041
1E8C4 0062
+16E60 0021
+16E40 0021
+16E60 003F
+16E40 003F
+16E60 0061
+16E60 0041
+16E40 0061
+16E40 0041
+16E60 0062
+16E40 0062
+16E61 0021
+16E41 0021
+16E61 003F
+16E41 003F
+16E61 0061
+16E61 0041
+16E41 0061
+16E41 0041
+16E61 0062
+16E41 0062
+16E62 0021
+16E42 0021
+16E62 003F
+16E42 003F
+16E62 0061
+16E62 0041
+16E42 0061
+16E42 0041
+16E62 0062
+16E42 0062
+16E63 0021
+16E43 0021
+16E63 003F
+16E43 003F
+16E63 0061
+16E63 0041
+16E43 0061
+16E43 0041
+16E63 0062
+16E43 0062
+16E64 0021
+16E44 0021
+16E64 003F
+16E44 003F
+16E64 0061
+16E64 0041
+16E44 0061
+16E44 0041
+16E64 0062
+16E44 0062
+16E65 0021
+16E45 0021
+16E65 003F
+16E45 003F
+16E65 0061
+16E65 0041
+16E45 0061
+16E45 0041
+16E65 0062
+16E45 0062
+16E66 0021
+16E46 0021
+16E66 003F
+16E46 003F
+16E66 0061
+16E66 0041
+16E46 0061
+16E46 0041
+16E66 0062
+16E46 0062
+16E67 0021
+16E47 0021
+16E67 003F
+16E47 003F
+16E67 0061
+16E67 0041
+16E47 0061
+16E47 0041
+16E67 0062
+16E47 0062
+16E68 0021
+16E48 0021
+16E68 003F
+16E48 003F
+16E68 0061
+16E68 0041
+16E48 0061
+16E48 0041
+16E68 0062
+16E48 0062
+16E69 0021
+16E49 0021
+16E69 003F
+16E49 003F
+16E69 0061
+16E69 0041
+16E49 0061
+16E49 0041
+16E69 0062
+16E49 0062
+16E6A 0021
+16E4A 0021
+16E6A 003F
+16E4A 003F
+16E6A 0061
+16E6A 0041
+16E4A 0061
+16E4A 0041
+16E6A 0062
+16E4A 0062
+16E6B 0021
+16E4B 0021
+16E6B 003F
+16E4B 003F
+16E6B 0061
+16E6B 0041
+16E4B 0061
+16E4B 0041
+16E6B 0062
+16E4B 0062
+16E6C 0021
+16E4C 0021
+16E6C 003F
+16E4C 003F
+16E6C 0061
+16E6C 0041
+16E4C 0061
+16E4C 0041
+16E6C 0062
+16E4C 0062
+16E6D 0021
+16E4D 0021
+16E6D 003F
+16E4D 003F
+16E6D 0061
+16E6D 0041
+16E4D 0061
+16E4D 0041
+16E6D 0062
+16E4D 0062
+16E6E 0021
+16E4E 0021
+16E6E 003F
+16E4E 003F
+16E6E 0061
+16E6E 0041
+16E4E 0061
+16E4E 0041
+16E6E 0062
+16E4E 0062
+16E6F 0021
+16E4F 0021
+16E6F 003F
+16E4F 003F
+16E6F 0061
+16E6F 0041
+16E4F 0061
+16E4F 0041
+16E6F 0062
+16E4F 0062
+16E70 0021
+16E50 0021
+16E70 003F
+16E50 003F
+16E70 0061
+16E70 0041
+16E50 0061
+16E50 0041
+16E70 0062
+16E50 0062
+16E71 0021
+16E51 0021
+16E71 003F
+16E51 003F
+16E71 0061
+16E71 0041
+16E51 0061
+16E51 0041
+16E71 0062
+16E51 0062
+16E72 0021
+16E52 0021
+16E72 003F
+16E52 003F
+16E72 0061
+16E72 0041
+16E52 0061
+16E52 0041
+16E72 0062
+16E52 0062
+16E73 0021
+16E53 0021
+16E73 003F
+16E53 003F
+16E73 0061
+16E73 0041
+16E53 0061
+16E53 0041
+16E73 0062
+16E53 0062
+16E74 0021
+16E54 0021
+16E74 003F
+16E54 003F
+16E74 0061
+16E74 0041
+16E54 0061
+16E54 0041
+16E74 0062
+16E54 0062
+16E75 0021
+16E55 0021
+16E75 003F
+16E55 003F
+16E75 0061
+16E75 0041
+16E55 0061
+16E55 0041
+16E75 0062
+16E55 0062
+16E76 0021
+16E56 0021
+16E76 003F
+16E56 003F
+16E76 0061
+16E76 0041
+16E56 0061
+16E56 0041
+16E76 0062
+16E56 0062
+16E77 0021
+16E57 0021
+16E77 003F
+16E57 003F
+16E77 0061
+16E77 0041
+16E57 0061
+16E57 0041
+16E77 0062
+16E57 0062
+16E78 0021
+16E58 0021
+16E78 003F
+16E58 003F
+16E78 0061
+16E78 0041
+16E58 0061
+16E58 0041
+16E78 0062
+16E58 0062
+16E79 0021
+16E59 0021
+16E79 003F
+16E59 003F
+16E79 0061
+16E79 0041
+16E59 0061
+16E59 0041
+16E79 0062
+16E59 0062
+16E7A 0021
+16E5A 0021
+16E7A 003F
+16E5A 003F
+16E7A 0061
+16E7A 0041
+16E5A 0061
+16E5A 0041
+16E7A 0062
+16E5A 0062
+16E7B 0021
+16E5B 0021
+16E7B 003F
+16E5B 003F
+16E7B 0061
+16E7B 0041
+16E5B 0061
+16E5B 0041
+16E7B 0062
+16E5B 0062
+16E7C 0021
+16E5C 0021
+16E7C 003F
+16E5C 003F
+16E7C 0061
+16E7C 0041
+16E5C 0061
+16E5C 0041
+16E7C 0062
+16E5C 0062
+16E7D 0021
+16E5D 0021
+16E7D 003F
+16E5D 003F
+16E7D 0061
+16E7D 0041
+16E5D 0061
+16E5D 0041
+16E7D 0062
+16E5D 0062
+16E7E 0021
+16E5E 0021
+16E7E 003F
+16E5E 003F
+16E7E 0061
+16E7E 0041
+16E5E 0061
+16E5E 0041
+16E7E 0062
+16E5E 0062
+16E7F 0021
+16E5F 0021
+16E7F 003F
+16E5F 003F
+16E7F 0061
+16E7F 0041
+16E5F 0061
+16E5F 0041
+16E7F 0062
+16E5F 0062
1E922 0021
1E900 0021
1E922 003F
@@ -126720,6 +129871,11 @@ FF9D 0062
3107 0061
3107 0041
3107 0062
+31AC 0021
+31AC 003F
+31AC 0061
+31AC 0041
+31AC 0062
3108 0021
3108 003F
3108 0061
@@ -126750,6 +129906,11 @@ FF9D 0062
310B 0061
310B 0041
310B 0062
+312F 0021
+312F 003F
+312F 0061
+312F 0041
+312F 0062
310C 0021
310C 003F
310C 0061
@@ -126990,11 +130151,6 @@ FF9D 0062
31B1 0061
31B1 0041
31B1 0062
-31AC 0021
-31AC 003F
-31AC 0061
-31AC 0041
-31AC 0062
3126 0021
3126 003F
3126 0061
@@ -142435,6 +145591,266 @@ A4F7 0062
10AE4 0061
10AE4 0041
10AE4 0062
+10F00 0021
+10F01 0021
+10F00 003F
+10F01 003F
+10F00 0061
+10F00 0041
+10F01 0061
+10F01 0041
+10F00 0062
+10F01 0062
+10F02 0021
+10F03 0021
+10F02 003F
+10F03 003F
+10F02 0061
+10F02 0041
+10F03 0061
+10F03 0041
+10F02 0062
+10F03 0062
+10F04 0021
+10F04 003F
+10F04 0061
+10F04 0041
+10F04 0062
+10F05 0021
+10F06 0021
+10F05 003F
+10F06 003F
+10F05 0061
+10F05 0041
+10F06 0061
+10F06 0041
+10F05 0062
+10F06 0062
+10F07 0021
+10F07 003F
+10F07 0061
+10F07 0041
+10F07 0062
+10F08 0021
+10F08 003F
+10F08 0061
+10F08 0041
+10F08 0062
+10F09 0021
+10F09 003F
+10F09 0061
+10F09 0041
+10F09 0062
+10F0A 0021
+10F0A 003F
+10F0A 0061
+10F0A 0041
+10F0A 0062
+10F0B 0021
+10F0B 003F
+10F0B 0061
+10F0B 0041
+10F0B 0062
+10F0C 0021
+10F0C 003F
+10F0C 0061
+10F0C 0041
+10F0C 0062
+10F0D 0021
+10F0D 003F
+10F0D 0061
+10F0D 0041
+10F0D 0062
+10F0E 0021
+10F0F 0021
+10F10 0021
+10F0E 003F
+10F0F 003F
+10F10 003F
+10F0E 0061
+10F0E 0041
+10F0F 0061
+10F0F 0041
+10F10 0061
+10F10 0041
+10F0E 0062
+10F0F 0062
+10F10 0062
+10F11 0021
+10F11 003F
+10F11 0061
+10F11 0041
+10F11 0062
+10F12 0021
+10F13 0021
+10F12 003F
+10F13 003F
+10F12 0061
+10F12 0041
+10F13 0061
+10F13 0041
+10F12 0062
+10F13 0062
+10F27 0021
+10F27 003F
+10F27 0061
+10F27 0041
+10F27 0062
+10F14 0021
+10F14 003F
+10F14 0061
+10F14 0041
+10F14 0062
+10F15 0021
+10F16 0021
+10F17 0021
+10F15 003F
+10F16 003F
+10F17 003F
+10F15 0061
+10F15 0041
+10F16 0061
+10F16 0041
+10F17 0061
+10F17 0041
+10F15 0062
+10F16 0062
+10F17 0062
+10F18 0021
+10F18 003F
+10F18 0061
+10F18 0041
+10F18 0062
+10F19 0021
+10F19 003F
+10F19 0061
+10F19 0041
+10F19 0062
+10F1A 0021
+10F1B 0021
+10F1C 0021
+10F1A 003F
+10F1B 003F
+10F1C 003F
+10F1A 0061
+10F1A 0041
+10F1B 0061
+10F1B 0041
+10F1C 0061
+10F1C 0041
+10F1A 0062
+10F1B 0062
+10F1C 0062
+10F30 0021
+10F30 003F
+10F30 0061
+10F30 0041
+10F30 0062
+10F31 0021
+10F31 003F
+10F31 0061
+10F31 0041
+10F31 0062
+10F32 0021
+10F32 003F
+10F32 0061
+10F32 0041
+10F32 0062
+10F33 0021
+10F33 003F
+10F33 0061
+10F33 0041
+10F33 0062
+10F34 0021
+10F34 003F
+10F34 0061
+10F34 0041
+10F34 0062
+10F35 0021
+10F35 003F
+10F35 0061
+10F35 0041
+10F35 0062
+10F36 0021
+10F36 003F
+10F36 0061
+10F36 0041
+10F36 0062
+10F37 0021
+10F37 003F
+10F37 0061
+10F37 0041
+10F37 0062
+10F38 0021
+10F38 003F
+10F38 0061
+10F38 0041
+10F38 0062
+10F39 0021
+10F39 003F
+10F39 0061
+10F39 0041
+10F39 0062
+10F3A 0021
+10F3A 003F
+10F3A 0061
+10F3A 0041
+10F3A 0062
+10F3B 0021
+10F3B 003F
+10F3B 0061
+10F3B 0041
+10F3B 0062
+10F3C 0021
+10F3C 003F
+10F3C 0061
+10F3C 0041
+10F3C 0062
+10F3D 0021
+10F3D 003F
+10F3D 0061
+10F3D 0041
+10F3D 0062
+10F3E 0021
+10F3E 003F
+10F3E 0061
+10F3E 0041
+10F3E 0062
+10F3F 0021
+10F3F 003F
+10F3F 0061
+10F3F 0041
+10F3F 0062
+10F40 0021
+10F40 003F
+10F40 0061
+10F40 0041
+10F40 0062
+10F41 0021
+10F45 0021
+10F41 003F
+10F45 003F
+10F41 0061
+10F41 0041
+10F45 0061
+10F45 0041
+10F41 0062
+10F45 0062
+10F42 0021
+10F42 003F
+10F42 0061
+10F42 0041
+10F42 0062
+10F43 0021
+10F43 003F
+10F43 0061
+10F43 0041
+10F43 0062
+10F44 0021
+10F44 003F
+10F44 0061
+10F44 0041
+10F44 0062
10380 0021
10380 003F
10380 0061
@@ -163065,11 +166481,6 @@ FACE 0062
4DB6 0061
4DB6 0041
4DB6 0062
-9FEB 0021
-9FEB 003F
-9FEB 0061
-9FEB 0041
-9FEB 0062
D800 0021
D800 003F
D800 0061
diff --git a/Build/source/libs/icu/icu-src/source/test/testdata/CollationTest_SHIFTED_SHORT.txt b/Build/source/libs/icu/icu-src/source/test/testdata/CollationTest_SHIFTED_SHORT.txt
index ab76c933e25..d634c5997ba 100644
--- a/Build/source/libs/icu/icu-src/source/test/testdata/CollationTest_SHIFTED_SHORT.txt
+++ b/Build/source/libs/icu/icu-src/source/test/testdata/CollationTest_SHIFTED_SHORT.txt
@@ -1,10 +1,10 @@
# CollationTest_CLDR_SHIFTED_SHORT.txt
-# Date: 2017-06-05, 23:17:01 GMT
-# © 2017 Unicode®, Inc.
+# Date: 2018-05-21, 23:52:53 GMT
+# © 2018 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# For terms of use, see http://www.unicode.org/terms_of_use.html
-# UCA Version: 10.0.0
-# UCD Version: 10.0.0
+# UCA Version: 11.0.0
+# UCD Version: 11.0.0
# For a description of the format and usage, see
# http://www.unicode.org/reports/tr35/tr35-collation.html#Root_Data_Files
@@ -154,6 +154,10 @@ FF0C 003F
2E32 003F
2E41 0021
2E41 003F
+2E4C 0021
+2E4C 003F
+2E4E 0021
+2E4E 003F
055D 0021
055D 003F
060C 0021
@@ -176,6 +180,9 @@ A60D 0021
A60D 003F
A6F5 0021
A6F5 003F
+16E97 0334
+16E97 0021
+16E97 003F
3001 0021
FE11 0021
FE51 0021
@@ -437,6 +444,7 @@ A6F4 003F
0749 0021
074A 0021
07FA 0021
+08D3 0021
08D4 0021
08D5 0021
08D6 0021
@@ -600,6 +608,7 @@ FFFA 0021
FFFB 0021
102E0 0021
110BD 0021
+110CD 0021
11366 0021
11367 0021
11368 0021
@@ -1296,6 +1305,7 @@ FF01 003F
0749 003F
074A 003F
07FA 003F
+08D3 003F
08D4 003F
08D5 003F
08D6 003F
@@ -1459,6 +1469,7 @@ FFFA 003F
FFFB 003F
102E0 003F
110BD 003F
+110CD 003F
11366 003F
11367 003F
11368 003F
@@ -2084,6 +2095,9 @@ A6F3 003F
16AF5 0334
16AF5 0021
16AF5 003F
+16E98 0334
+16E98 0021
+16E98 003F
1BC9F 0334
1BC9F 0021
1BC9F 003F
@@ -2296,6 +2310,21 @@ A95F 003F
10B3F 0334
10B3F 0021
10B3F 003F
+10F55 0334
+10F55 0021
+10F55 003F
+10F56 0334
+10F56 0021
+10F56 003F
+10F57 0334
+10F57 0021
+10F57 003F
+10F58 0334
+10F58 0021
+10F58 003F
+10F59 0334
+10F59 0021
+10F59 003F
110BE 0334
110BE 0021
110BE 003F
@@ -2320,6 +2349,12 @@ A95F 003F
1173E 0334
1173E 0021
1173E 003F
+11EF7 0334
+11EF7 0021
+11EF7 003F
+11EF8 0334
+11EF8 0021
+11EF8 003F
2055 0021
2055 003F
2056 0021
@@ -2750,6 +2785,8 @@ FD3F 003F
00B6 003F
204B 0021
204B 003F
+2E4D 0021
+2E4D 003F
2E3F 0021
2E3F 003F
0040 0021
@@ -2782,6 +2819,8 @@ FF3C 0021
005C 003F
FE68 003F
FF3C 003F
+2E4A 0021
+2E4A 003F
0026 0021
FE60 0021
FF06 0021
@@ -2822,6 +2861,8 @@ FF05 003F
2E37 003F
2E38 0021
2E38 003F
+2E4B 0021
+2E4B 003F
2022 0021
2022 003F
2023 0021
@@ -2999,8 +3040,12 @@ A8FC 0021
A8FC 003F
09FD 0021
09FD 003F
+0A76 0021
+0A76 003F
0AF0 0021
0AF0 003F
+0C84 0021
+0C84 003F
0DF4 0021
0DF4 003F
0E4F 0021
@@ -3293,9 +3338,6 @@ AA5C 003F
111C7 0334
111C7 0021
111C7 003F
-111C9 0334
-111C9 0021
-111C9 003F
111DB 0334
111DB 0021
111DB 003F
@@ -3398,6 +3440,9 @@ AA5C 003F
11643 0334
11643 0021
11643 003F
+1183B 0334
+1183B 0021
+1183B 003F
16B37 0334
16B37 0021
16B37 003F
@@ -3416,6 +3461,12 @@ AA5C 003F
16B44 0334
16B44 0021
16B44 003F
+16E99 0334
+16E99 0021
+16E99 003F
+16E9A 0334
+16E9A 0021
+16E9A 003F
1DA87 0334
1DA87 0021
1DA87 003F
@@ -3554,6 +3605,14 @@ AA5C 003F
A67C 0021
A67D 0021
10AE5 0021
+10D24 0021
+10D25 0021
+10D26 0021
+10D27 0021
+10F48 0021
+10F49 0021
+10F4A 0021
+10F4C 0021
1BC9D 0021
030D 003F
030E 003F
@@ -3618,6 +3677,14 @@ A67D 0021
A67C 003F
A67D 003F
10AE5 003F
+10D24 003F
+10D25 003F
+10D26 003F
+10D27 003F
+10F48 003F
+10F49 003F
+10F4A 003F
+10F4C 003F
1BC9D 003F
1BC9D 0334
0316 0021
@@ -3654,6 +3721,7 @@ A67D 003F
0362 0021
0742 0021
0746 0021
+07FD 0021
0859 0021
085A 0021
085B 0021
@@ -3678,6 +3746,13 @@ A67D 003F
FE27 0021
10A0D 0021
10AE6 0021
+10F46 0021
+10F47 0021
+10F4B 0021
+10F4D 0021
+10F4E 0021
+10F4F 0021
+10F50 0021
0316 003F
0317 003F
0318 003F
@@ -3712,6 +3787,7 @@ FE27 0021
0362 003F
0742 003F
0746 003F
+07FD 003F
0859 003F
085A 003F
085B 003F
@@ -3736,6 +3812,13 @@ FE27 0021
FE27 003F
10A0D 003F
10AE6 003F
+10F46 003F
+10F47 003F
+10F4B 003F
+10F4D 003F
+10F4E 003F
+10F4F 003F
+10F50 003F
0336 0021
0337 0021
20D8 0021
@@ -3964,6 +4047,8 @@ FF9F 003F
0749 0334
0334 074A
074A 0334
+0334 08D3
+08D3 0334
0334 08D4
08D4 0334
0334 08D5
@@ -4253,6 +4338,7 @@ FE2F 0334
1CE7 0334
1CE8 0334
110BD 0334
+110CD 0334
1BCA0 0334
1BCA1 0334
1BCA2 0334
@@ -4902,6 +4988,22 @@ A67C 0334
A67D 0334
0334 10AE5
10AE5 0334
+0334 10D24
+10D24 0334
+0334 10D25
+10D25 0334
+0334 10D26
+10D26 0334
+0334 10D27
+10D27 0334
+0334 10F48
+10F48 0334
+0334 10F49
+10F49 0334
+0334 10F4A
+10F4A 0334
+0334 10F4C
+10F4C 0334
0316 0334
0334 0316
0317 0334
@@ -4970,6 +5072,8 @@ A67D 0334
0742 0334
0334 0746
0746 0334
+0334 07FD
+07FD 0334
0334 0859
0859 0334
0334 085A
@@ -5018,6 +5122,20 @@ FE27 0334
10A0D 0334
0334 10AE6
10AE6 0334
+0334 10F46
+10F46 0334
+0334 10F47
+10F47 0334
+0334 10F4B
+10F4B 0334
+0334 10F4D
+10F4D 0334
+0334 10F4E
+10F4E 0334
+0334 10F4F
+10F4F 0334
+0334 10F50
+10F50 0334
0334 3099
3099 0334
0334 309A
@@ -5343,6 +5461,8 @@ A9B3 0334
11236 0334
0334 112E9
112E9 0334
+0334 1133B
+1133B 0334
0334 1133C
1133C 0334
0334 11446
@@ -5353,6 +5473,8 @@ A9B3 0334
115C0 0334
0334 116B7
116B7 0334
+0334 1183A
+1183A 0334
0334 11D42
11D42 0334
0334 11100
@@ -5365,6 +5487,10 @@ A9B3 0334
10A0F 0334
0334 11102
11102 0334
+0334 09FE
+09FE 0334
+0334 1145E
+1145E 0334
0334 10A38
10A38 0334
0334 10A3A
@@ -5826,11 +5952,13 @@ A9B3 0021
111CA 0021
11236 0021
112E9 0021
+1133B 0021
1133C 0021
11446 0021
114C3 0021
115C0 0021
116B7 0021
+1183A 0021
11A33 0021
11D42 0021
093C 003F
@@ -5851,11 +5979,13 @@ A9B3 003F
111CA 003F
11236 003F
112E9 003F
+1133B 003F
1133C 003F
11446 003F
114C3 003F
115C0 003F
116B7 003F
+1183A 003F
11A33 003F
11D42 003F
11A33 0334
@@ -5938,6 +6068,7 @@ A980 003F
0B02 0021
0B82 0021
0C02 0021
+0C04 0021
0C82 0021
0D00 0021
0D02 0021
@@ -5966,11 +6097,13 @@ A981 0021
115BD 0021
1163D 0021
116AB 0021
+11837 0021
11A38 0021
11A96 0021
11C3D 0021
11CB5 0021
11D40 0021
+11D95 0021
0902 003F
0982 003F
0A02 003F
@@ -5978,6 +6111,7 @@ A981 0021
0B02 003F
0B82 003F
0C02 003F
+0C04 003F
0C82 003F
0D00 003F
0D02 003F
@@ -6006,11 +6140,13 @@ A981 003F
115BD 003F
1163D 003F
116AB 003F
+11837 003F
11A38 003F
11A96 003F
11C3D 003F
11CB5 003F
11D40 003F
+11D95 003F
10A0E 0334
11001 0334
11081 0334
@@ -6024,11 +6160,13 @@ A981 003F
115BD 0334
1163D 0334
116AB 0334
+11837 0334
11A38 0334
11A96 0334
11C3D 0334
11CB5 0334
11D40 0334
+11D95 0334
0903 0021
0983 0021
0A03 0021
@@ -6058,10 +6196,12 @@ A983 0021
115BE 0021
1163E 0021
116AC 0021
+11838 0021
11A39 0021
11A97 0021
11C3E 0021
11D41 0021
+11D96 0021
0903 003F
0983 003F
0A03 003F
@@ -6091,10 +6231,12 @@ A983 003F
115BE 003F
1163E 003F
116AC 003F
+11838 003F
11A39 003F
11A97 003F
11C3E 003F
11D41 003F
+11D96 003F
11002 0334
11082 0334
11182 0334
@@ -6104,10 +6246,19 @@ A983 003F
115BE 0334
1163E 0334
116AC 0334
+11838 0334
11A39 0334
11A97 0334
11C3E 0334
11D41 0334
+11D96 0334
+09FE 0021
+111C9 0021
+1145E 0021
+09FE 003F
+111C9 003F
+1145E 003F
+111C9 0334
0A70 0021
0A70 003F
0A71 0021
@@ -7703,6 +7854,12 @@ AA79 0062
00A9 0061
00A9 0041
00A9 0062
+1F12F 0021
+1F12F 003F
+1F12F 0334
+1F12F 0061
+1F12F 0041
+1F12F 0062
00AE 0021
00AE 003F
00AE 0061
@@ -18489,6 +18646,21 @@ FFEE 0062
2BB9 0061
2BB9 0041
2BB9 0062
+2BBA 0021
+2BBA 003F
+2BBA 0061
+2BBA 0041
+2BBA 0062
+2BBB 0021
+2BBB 003F
+2BBB 0061
+2BBB 0041
+2BBB 0062
+2BBC 0021
+2BBC 003F
+2BBC 0061
+2BBC 0041
+2BBC 0062
2BBD 0021
2BBD 003F
2BBD 0061
@@ -18594,6 +18766,131 @@ FFEE 0062
2BD2 0061
2BD2 0041
2BD2 0062
+2BD3 0021
+2BD3 003F
+2BD3 0061
+2BD3 0041
+2BD3 0062
+2BD4 0021
+2BD4 003F
+2BD4 0061
+2BD4 0041
+2BD4 0062
+2BD5 0021
+2BD5 003F
+2BD5 0061
+2BD5 0041
+2BD5 0062
+2BD6 0021
+2BD6 003F
+2BD6 0061
+2BD6 0041
+2BD6 0062
+2BD7 0021
+2BD7 003F
+2BD7 0061
+2BD7 0041
+2BD7 0062
+2BD8 0021
+2BD8 003F
+2BD8 0061
+2BD8 0041
+2BD8 0062
+2BD9 0021
+2BD9 003F
+2BD9 0061
+2BD9 0041
+2BD9 0062
+2BDA 0021
+2BDA 003F
+2BDA 0061
+2BDA 0041
+2BDA 0062
+2BDB 0021
+2BDB 003F
+2BDB 0061
+2BDB 0041
+2BDB 0062
+2BDC 0021
+2BDC 003F
+2BDC 0061
+2BDC 0041
+2BDC 0062
+2BDD 0021
+2BDD 003F
+2BDD 0061
+2BDD 0041
+2BDD 0062
+2BDE 0021
+2BDE 003F
+2BDE 0061
+2BDE 0041
+2BDE 0062
+2BDF 0021
+2BDF 003F
+2BDF 0061
+2BDF 0041
+2BDF 0062
+2BE0 0021
+2BE0 003F
+2BE0 0061
+2BE0 0041
+2BE0 0062
+2BE1 0021
+2BE1 003F
+2BE1 0061
+2BE1 0041
+2BE1 0062
+2BE2 0021
+2BE2 003F
+2BE2 0061
+2BE2 0041
+2BE2 0062
+2BE3 0021
+2BE3 003F
+2BE3 0061
+2BE3 0041
+2BE3 0062
+2BE4 0021
+2BE4 003F
+2BE4 0061
+2BE4 0041
+2BE4 0062
+2BE5 0021
+2BE5 003F
+2BE5 0061
+2BE5 0041
+2BE5 0062
+2BE6 0021
+2BE6 003F
+2BE6 0061
+2BE6 0041
+2BE6 0062
+2BE7 0021
+2BE7 003F
+2BE7 0061
+2BE7 0041
+2BE7 0062
+2BE8 0021
+2BE8 003F
+2BE8 0061
+2BE8 0041
+2BE8 0062
+2BE9 0021
+2BE9 003F
+2BE9 0061
+2BE9 0041
+2BE9 0062
+2BEA 0021
+2BEA 003F
+2BEA 0061
+2BEA 0041
+2BEA 0062
+2BEB 0021
+2BEB 003F
+2BEB 0061
+2BEB 0041
+2BEB 0062
2BEC 0021
2BEC 003F
2BEC 0061
@@ -18614,6 +18911,81 @@ FFEE 0062
2BEF 0061
2BEF 0041
2BEF 0062
+2BF0 0021
+2BF0 003F
+2BF0 0061
+2BF0 0041
+2BF0 0062
+2BF1 0021
+2BF1 003F
+2BF1 0061
+2BF1 0041
+2BF1 0062
+2BF2 0021
+2BF2 003F
+2BF2 0061
+2BF2 0041
+2BF2 0062
+2BF3 0021
+2BF3 003F
+2BF3 0061
+2BF3 0041
+2BF3 0062
+2BF4 0021
+2BF4 003F
+2BF4 0061
+2BF4 0041
+2BF4 0062
+2BF5 0021
+2BF5 003F
+2BF5 0061
+2BF5 0041
+2BF5 0062
+2BF6 0021
+2BF6 003F
+2BF6 0061
+2BF6 0041
+2BF6 0062
+2BF7 0021
+2BF7 003F
+2BF7 0061
+2BF7 0041
+2BF7 0062
+2BF8 0021
+2BF8 003F
+2BF8 0061
+2BF8 0041
+2BF8 0062
+2BF9 0021
+2BF9 003F
+2BF9 0061
+2BF9 0041
+2BF9 0062
+2BFA 0021
+2BFA 003F
+2BFA 0061
+2BFA 0041
+2BFA 0062
+2BFB 0021
+2BFB 003F
+2BFB 0061
+2BFB 0041
+2BFB 0062
+2BFC 0021
+2BFC 003F
+2BFC 0061
+2BFC 0041
+2BFC 0062
+2BFD 0021
+2BFD 003F
+2BFD 0061
+2BFD 0041
+2BFD 0062
+2BFE 0021
+2BFE 003F
+2BFE 0061
+2BFE 0041
+2BFE 0062
2CE5 0021
2CE5 003F
2CE5 0061
@@ -24772,6 +25144,12 @@ A4C6 0062
1BC9C 0061
1BC9C 0041
1BC9C 0062
+1ECAC 0021
+1ECAC 003F
+1ECAC 0334
+1ECAC 0061
+1ECAC 0041
+1ECAC 0062
1F000 0021
1F000 003F
1F000 0334
@@ -26128,6 +26506,90 @@ A4C6 0062
1F0F5 0061
1F0F5 0041
1F0F5 0062
+1FA60 0021
+1FA60 003F
+1FA60 0334
+1FA60 0061
+1FA60 0041
+1FA60 0062
+1FA61 0021
+1FA61 003F
+1FA61 0334
+1FA61 0061
+1FA61 0041
+1FA61 0062
+1FA62 0021
+1FA62 003F
+1FA62 0334
+1FA62 0061
+1FA62 0041
+1FA62 0062
+1FA63 0021
+1FA63 003F
+1FA63 0334
+1FA63 0061
+1FA63 0041
+1FA63 0062
+1FA64 0021
+1FA64 003F
+1FA64 0334
+1FA64 0061
+1FA64 0041
+1FA64 0062
+1FA65 0021
+1FA65 003F
+1FA65 0334
+1FA65 0061
+1FA65 0041
+1FA65 0062
+1FA66 0021
+1FA66 003F
+1FA66 0334
+1FA66 0061
+1FA66 0041
+1FA66 0062
+1FA67 0021
+1FA67 003F
+1FA67 0334
+1FA67 0061
+1FA67 0041
+1FA67 0062
+1FA68 0021
+1FA68 003F
+1FA68 0334
+1FA68 0061
+1FA68 0041
+1FA68 0062
+1FA69 0021
+1FA69 003F
+1FA69 0334
+1FA69 0061
+1FA69 0041
+1FA69 0062
+1FA6A 0021
+1FA6A 003F
+1FA6A 0334
+1FA6A 0061
+1FA6A 0041
+1FA6A 0062
+1FA6B 0021
+1FA6B 003F
+1FA6B 0334
+1FA6B 0061
+1FA6B 0041
+1FA6B 0062
+1FA6C 0021
+1FA6C 003F
+1FA6C 0334
+1FA6C 0061
+1FA6C 0041
+1FA6C 0062
+1FA6D 0021
+1FA6D 003F
+1FA6D 0334
+1FA6D 0061
+1FA6D 0041
+1FA6D 0062
1F260 0021
1F260 003F
1F260 0334
@@ -31204,6 +31666,24 @@ A4C6 0062
1F94C 0061
1F94C 0041
1F94C 0062
+1F94D 0021
+1F94D 003F
+1F94D 0334
+1F94D 0061
+1F94D 0041
+1F94D 0062
+1F94E 0021
+1F94E 003F
+1F94E 0334
+1F94E 0061
+1F94E 0041
+1F94E 0062
+1F94F 0021
+1F94F 003F
+1F94F 0334
+1F94F 0061
+1F94F 0041
+1F94F 0062
1F950 0021
1F950 003F
1F950 0334
@@ -31372,6 +31852,90 @@ A4C6 0062
1F96B 0061
1F96B 0041
1F96B 0062
+1F96C 0021
+1F96C 003F
+1F96C 0334
+1F96C 0061
+1F96C 0041
+1F96C 0062
+1F96D 0021
+1F96D 003F
+1F96D 0334
+1F96D 0061
+1F96D 0041
+1F96D 0062
+1F96E 0021
+1F96E 003F
+1F96E 0334
+1F96E 0061
+1F96E 0041
+1F96E 0062
+1F96F 0021
+1F96F 003F
+1F96F 0334
+1F96F 0061
+1F96F 0041
+1F96F 0062
+1F970 0021
+1F970 003F
+1F970 0334
+1F970 0061
+1F970 0041
+1F970 0062
+1F973 0021
+1F973 003F
+1F973 0334
+1F973 0061
+1F973 0041
+1F973 0062
+1F974 0021
+1F974 003F
+1F974 0334
+1F974 0061
+1F974 0041
+1F974 0062
+1F975 0021
+1F975 003F
+1F975 0334
+1F975 0061
+1F975 0041
+1F975 0062
+1F976 0021
+1F976 003F
+1F976 0334
+1F976 0061
+1F976 0041
+1F976 0062
+1F97A 0021
+1F97A 003F
+1F97A 0334
+1F97A 0061
+1F97A 0041
+1F97A 0062
+1F97C 0021
+1F97C 003F
+1F97C 0334
+1F97C 0061
+1F97C 0041
+1F97C 0062
+1F97D 0021
+1F97D 003F
+1F97D 0334
+1F97D 0061
+1F97D 0041
+1F97D 0062
+1F97E 0021
+1F97E 003F
+1F97E 0334
+1F97E 0061
+1F97E 0041
+1F97E 0062
+1F97F 0021
+1F97F 003F
+1F97F 0334
+1F97F 0061
+1F97F 0041
+1F97F 0062
1F980 0021
1F980 003F
1F980 0334
@@ -31516,12 +32080,150 @@ A4C6 0062
1F997 0061
1F997 0041
1F997 0062
+1F998 0021
+1F998 003F
+1F998 0334
+1F998 0061
+1F998 0041
+1F998 0062
+1F999 0021
+1F999 003F
+1F999 0334
+1F999 0061
+1F999 0041
+1F999 0062
+1F99A 0021
+1F99A 003F
+1F99A 0334
+1F99A 0061
+1F99A 0041
+1F99A 0062
+1F99B 0021
+1F99B 003F
+1F99B 0334
+1F99B 0061
+1F99B 0041
+1F99B 0062
+1F99C 0021
+1F99C 003F
+1F99C 0334
+1F99C 0061
+1F99C 0041
+1F99C 0062
+1F99D 0021
+1F99D 003F
+1F99D 0334
+1F99D 0061
+1F99D 0041
+1F99D 0062
+1F99E 0021
+1F99E 003F
+1F99E 0334
+1F99E 0061
+1F99E 0041
+1F99E 0062
+1F99F 0021
+1F99F 003F
+1F99F 0334
+1F99F 0061
+1F99F 0041
+1F99F 0062
+1F9A0 0021
+1F9A0 003F
+1F9A0 0334
+1F9A0 0061
+1F9A0 0041
+1F9A0 0062
+1F9A1 0021
+1F9A1 003F
+1F9A1 0334
+1F9A1 0061
+1F9A1 0041
+1F9A1 0062
+1F9A2 0021
+1F9A2 003F
+1F9A2 0334
+1F9A2 0061
+1F9A2 0041
+1F9A2 0062
+1F9B0 0021
+1F9B0 003F
+1F9B0 0334
+1F9B0 0061
+1F9B0 0041
+1F9B0 0062
+1F9B1 0021
+1F9B1 003F
+1F9B1 0334
+1F9B1 0061
+1F9B1 0041
+1F9B1 0062
+1F9B2 0021
+1F9B2 003F
+1F9B2 0334
+1F9B2 0061
+1F9B2 0041
+1F9B2 0062
+1F9B3 0021
+1F9B3 003F
+1F9B3 0334
+1F9B3 0061
+1F9B3 0041
+1F9B3 0062
+1F9B4 0021
+1F9B4 003F
+1F9B4 0334
+1F9B4 0061
+1F9B4 0041
+1F9B4 0062
+1F9B5 0021
+1F9B5 003F
+1F9B5 0334
+1F9B5 0061
+1F9B5 0041
+1F9B5 0062
+1F9B6 0021
+1F9B6 003F
+1F9B6 0334
+1F9B6 0061
+1F9B6 0041
+1F9B6 0062
+1F9B7 0021
+1F9B7 003F
+1F9B7 0334
+1F9B7 0061
+1F9B7 0041
+1F9B7 0062
+1F9B8 0021
+1F9B8 003F
+1F9B8 0334
+1F9B8 0061
+1F9B8 0041
+1F9B8 0062
+1F9B9 0021
+1F9B9 003F
+1F9B9 0334
+1F9B9 0061
+1F9B9 0041
+1F9B9 0062
1F9C0 0021
1F9C0 003F
1F9C0 0334
1F9C0 0061
1F9C0 0041
1F9C0 0062
+1F9C1 0021
+1F9C1 003F
+1F9C1 0334
+1F9C1 0061
+1F9C1 0041
+1F9C1 0062
+1F9C2 0021
+1F9C2 003F
+1F9C2 0334
+1F9C2 0061
+1F9C2 0041
+1F9C2 0062
1F9D0 0021
1F9D0 003F
1F9D0 0334
@@ -31660,6 +32362,156 @@ A4C6 0062
1F9E6 0061
1F9E6 0041
1F9E6 0062
+1F9E7 0021
+1F9E7 003F
+1F9E7 0334
+1F9E7 0061
+1F9E7 0041
+1F9E7 0062
+1F9E8 0021
+1F9E8 003F
+1F9E8 0334
+1F9E8 0061
+1F9E8 0041
+1F9E8 0062
+1F9E9 0021
+1F9E9 003F
+1F9E9 0334
+1F9E9 0061
+1F9E9 0041
+1F9E9 0062
+1F9EA 0021
+1F9EA 003F
+1F9EA 0334
+1F9EA 0061
+1F9EA 0041
+1F9EA 0062
+1F9EB 0021
+1F9EB 003F
+1F9EB 0334
+1F9EB 0061
+1F9EB 0041
+1F9EB 0062
+1F9EC 0021
+1F9EC 003F
+1F9EC 0334
+1F9EC 0061
+1F9EC 0041
+1F9EC 0062
+1F9ED 0021
+1F9ED 003F
+1F9ED 0334
+1F9ED 0061
+1F9ED 0041
+1F9ED 0062
+1F9EE 0021
+1F9EE 003F
+1F9EE 0334
+1F9EE 0061
+1F9EE 0041
+1F9EE 0062
+1F9EF 0021
+1F9EF 003F
+1F9EF 0334
+1F9EF 0061
+1F9EF 0041
+1F9EF 0062
+1F9F0 0021
+1F9F0 003F
+1F9F0 0334
+1F9F0 0061
+1F9F0 0041
+1F9F0 0062
+1F9F1 0021
+1F9F1 003F
+1F9F1 0334
+1F9F1 0061
+1F9F1 0041
+1F9F1 0062
+1F9F2 0021
+1F9F2 003F
+1F9F2 0334
+1F9F2 0061
+1F9F2 0041
+1F9F2 0062
+1F9F3 0021
+1F9F3 003F
+1F9F3 0334
+1F9F3 0061
+1F9F3 0041
+1F9F3 0062
+1F9F4 0021
+1F9F4 003F
+1F9F4 0334
+1F9F4 0061
+1F9F4 0041
+1F9F4 0062
+1F9F5 0021
+1F9F5 003F
+1F9F5 0334
+1F9F5 0061
+1F9F5 0041
+1F9F5 0062
+1F9F6 0021
+1F9F6 003F
+1F9F6 0334
+1F9F6 0061
+1F9F6 0041
+1F9F6 0062
+1F9F7 0021
+1F9F7 003F
+1F9F7 0334
+1F9F7 0061
+1F9F7 0041
+1F9F7 0062
+1F9F8 0021
+1F9F8 003F
+1F9F8 0334
+1F9F8 0061
+1F9F8 0041
+1F9F8 0062
+1F9F9 0021
+1F9F9 003F
+1F9F9 0334
+1F9F9 0061
+1F9F9 0041
+1F9F9 0062
+1F9FA 0021
+1F9FA 003F
+1F9FA 0334
+1F9FA 0061
+1F9FA 0041
+1F9FA 0062
+1F9FB 0021
+1F9FB 003F
+1F9FB 0334
+1F9FB 0061
+1F9FB 0041
+1F9FB 0062
+1F9FC 0021
+1F9FC 003F
+1F9FC 0334
+1F9FC 0061
+1F9FC 0041
+1F9FC 0062
+1F9FD 0021
+1F9FD 003F
+1F9FD 0334
+1F9FD 0061
+1F9FD 0041
+1F9FD 0062
+1F9FE 0021
+1F9FE 003F
+1F9FE 0334
+1F9FE 0061
+1F9FE 0041
+1F9FE 0062
+1F9FF 0021
+1F9FF 003F
+1F9FF 0334
+1F9FF 0061
+1F9FF 0041
+1F9FF 0062
1F600 0021
1F600 003F
1F600 0334
@@ -33070,6 +33922,12 @@ A4C6 0062
1F6F8 0061
1F6F8 0041
1F6F8 0062
+1F6F9 0021
+1F6F9 003F
+1F6F9 0334
+1F6F9 0061
+1F6F9 0041
+1F6F9 0062
1F700 0021
1F700 003F
1F700 0334
@@ -34276,6 +35134,30 @@ A4C6 0062
1F7D4 0061
1F7D4 0041
1F7D4 0062
+1F7D5 0021
+1F7D5 003F
+1F7D5 0334
+1F7D5 0061
+1F7D5 0041
+1F7D5 0062
+1F7D6 0021
+1F7D6 003F
+1F7D6 0334
+1F7D6 0061
+1F7D6 0041
+1F7D6 0062
+1F7D7 0021
+1F7D7 003F
+1F7D7 0334
+1F7D7 0061
+1F7D7 0041
+1F7D7 0062
+1F7D8 0021
+1F7D8 003F
+1F7D8 0334
+1F7D8 0061
+1F7D8 0041
+1F7D8 0062
1F800 0021
1F800 003F
1F800 0334
@@ -38924,6 +39806,16 @@ FFE5 0062
060B 0061
060B 0041
060B 0062
+07FE 0021
+07FE 003F
+07FE 0061
+07FE 0041
+07FE 0062
+07FF 0021
+07FF 003F
+07FF 0061
+07FF 0041
+07FF 0062
09F2 0021
09F2 003F
09F2 0061
@@ -39094,6 +39986,12 @@ FFE6 0062
20B9 0061
20B9 0041
20B9 0062
+1ECB0 0021
+1ECB0 003F
+1ECB0 0334
+1ECB0 0061
+1ECB0 0041
+1ECB0 0062
20BA 0021
20BA 003F
20BA 0061
@@ -40387,6 +41285,54 @@ A835 0062
10BAF 0061
10BAF 0041
10BAF 0062
+10F22 0021
+10F22 003F
+10F22 0334
+10F22 0061
+10F22 0041
+10F22 0062
+10F23 0021
+10F23 003F
+10F23 0334
+10F23 0061
+10F23 0041
+10F23 0062
+10F24 0021
+10F24 003F
+10F24 0334
+10F24 0061
+10F24 0041
+10F24 0062
+10F25 0021
+10F25 003F
+10F25 0334
+10F25 0061
+10F25 0041
+10F25 0062
+10F26 0021
+10F26 003F
+10F26 0334
+10F26 0061
+10F26 0041
+10F26 0062
+10F52 0021
+10F52 003F
+10F52 0334
+10F52 0061
+10F52 0041
+10F52 0062
+10F53 0021
+10F53 003F
+10F53 0334
+10F53 0061
+10F53 0041
+10F53 0062
+10F54 0021
+10F54 003F
+10F54 0334
+10F54 0061
+10F54 0041
+10F54 0062
1173A 0021
1173A 003F
1173A 0334
@@ -40489,6 +41435,12 @@ A835 0062
10A47 0061
10A47 0041
10A47 0062
+10A48 0021
+10A48 003F
+10A48 0334
+10A48 0061
+10A48 0041
+10A48 0062
11C63 0021
11C63 003F
11C63 0334
@@ -40711,6 +41663,402 @@ A835 0062
16B61 0061
16B61 0041
16B61 0062
+16E8A 0021
+16E8A 003F
+16E8A 0334
+16E8A 0061
+16E8A 0041
+16E8A 0062
+16E8B 0021
+16E8B 003F
+16E8B 0334
+16E8B 0061
+16E8B 0041
+16E8B 0062
+16E8C 0021
+16E8C 003F
+16E8C 0334
+16E8C 0061
+16E8C 0041
+16E8C 0062
+16E8D 0021
+16E8D 003F
+16E8D 0334
+16E8D 0061
+16E8D 0041
+16E8D 0062
+16E8E 0021
+16E8E 003F
+16E8E 0334
+16E8E 0061
+16E8E 0041
+16E8E 0062
+16E8F 0021
+16E8F 003F
+16E8F 0334
+16E8F 0061
+16E8F 0041
+16E8F 0062
+16E90 0021
+16E90 003F
+16E90 0334
+16E90 0061
+16E90 0041
+16E90 0062
+16E91 0021
+16E91 003F
+16E91 0334
+16E91 0061
+16E91 0041
+16E91 0062
+16E92 0021
+16E92 003F
+16E92 0334
+16E92 0061
+16E92 0041
+16E92 0062
+16E93 0021
+16E93 003F
+16E93 0334
+16E93 0061
+16E93 0041
+16E93 0062
+1D2EA 0021
+1D2EA 003F
+1D2EA 0334
+1D2EA 0061
+1D2EA 0041
+1D2EA 0062
+1D2EB 0021
+1D2EB 003F
+1D2EB 0334
+1D2EB 0061
+1D2EB 0041
+1D2EB 0062
+1D2EC 0021
+1D2EC 003F
+1D2EC 0334
+1D2EC 0061
+1D2EC 0041
+1D2EC 0062
+1D2ED 0021
+1D2ED 003F
+1D2ED 0334
+1D2ED 0061
+1D2ED 0041
+1D2ED 0062
+1D2EE 0021
+1D2EE 003F
+1D2EE 0334
+1D2EE 0061
+1D2EE 0041
+1D2EE 0062
+1D2EF 0021
+1D2EF 003F
+1D2EF 0334
+1D2EF 0061
+1D2EF 0041
+1D2EF 0062
+1D2F0 0021
+1D2F0 003F
+1D2F0 0334
+1D2F0 0061
+1D2F0 0041
+1D2F0 0062
+1D2F1 0021
+1D2F1 003F
+1D2F1 0334
+1D2F1 0061
+1D2F1 0041
+1D2F1 0062
+1D2F2 0021
+1D2F2 003F
+1D2F2 0334
+1D2F2 0061
+1D2F2 0041
+1D2F2 0062
+1D2F3 0021
+1D2F3 003F
+1D2F3 0334
+1D2F3 0061
+1D2F3 0041
+1D2F3 0062
+1EC7A 0021
+1EC7A 003F
+1EC7A 0334
+1EC7A 0061
+1EC7A 0041
+1EC7A 0062
+1EC7B 0021
+1EC7B 003F
+1EC7B 0334
+1EC7B 0061
+1EC7B 0041
+1EC7B 0062
+1EC7C 0021
+1EC7C 003F
+1EC7C 0334
+1EC7C 0061
+1EC7C 0041
+1EC7C 0062
+1EC7D 0021
+1EC7D 003F
+1EC7D 0334
+1EC7D 0061
+1EC7D 0041
+1EC7D 0062
+1EC7E 0021
+1EC7E 003F
+1EC7E 0334
+1EC7E 0061
+1EC7E 0041
+1EC7E 0062
+1EC7F 0021
+1EC7F 003F
+1EC7F 0334
+1EC7F 0061
+1EC7F 0041
+1EC7F 0062
+1EC80 0021
+1EC80 003F
+1EC80 0334
+1EC80 0061
+1EC80 0041
+1EC80 0062
+1EC81 0021
+1EC81 003F
+1EC81 0334
+1EC81 0061
+1EC81 0041
+1EC81 0062
+1EC82 0021
+1EC82 003F
+1EC82 0334
+1EC82 0061
+1EC82 0041
+1EC82 0062
+1EC83 0021
+1EC83 003F
+1EC83 0334
+1EC83 0061
+1EC83 0041
+1EC83 0062
+1EC84 0021
+1EC84 003F
+1EC84 0334
+1EC84 0061
+1EC84 0041
+1EC84 0062
+1EC85 0021
+1EC85 003F
+1EC85 0334
+1EC85 0061
+1EC85 0041
+1EC85 0062
+1EC86 0021
+1EC86 003F
+1EC86 0334
+1EC86 0061
+1EC86 0041
+1EC86 0062
+1EC87 0021
+1EC87 003F
+1EC87 0334
+1EC87 0061
+1EC87 0041
+1EC87 0062
+1EC88 0021
+1EC88 003F
+1EC88 0334
+1EC88 0061
+1EC88 0041
+1EC88 0062
+1EC89 0021
+1EC89 003F
+1EC89 0334
+1EC89 0061
+1EC89 0041
+1EC89 0062
+1EC8A 0021
+1EC8A 003F
+1EC8A 0334
+1EC8A 0061
+1EC8A 0041
+1EC8A 0062
+1EC8B 0021
+1EC8B 003F
+1EC8B 0334
+1EC8B 0061
+1EC8B 0041
+1EC8B 0062
+1EC8C 0021
+1EC8C 003F
+1EC8C 0334
+1EC8C 0061
+1EC8C 0041
+1EC8C 0062
+1EC8D 0021
+1EC8D 003F
+1EC8D 0334
+1EC8D 0061
+1EC8D 0041
+1EC8D 0062
+1EC8E 0021
+1EC8E 003F
+1EC8E 0334
+1EC8E 0061
+1EC8E 0041
+1EC8E 0062
+1EC8F 0021
+1EC8F 003F
+1EC8F 0334
+1EC8F 0061
+1EC8F 0041
+1EC8F 0062
+1EC90 0021
+1EC90 003F
+1EC90 0334
+1EC90 0061
+1EC90 0041
+1EC90 0062
+1EC91 0021
+1EC91 003F
+1EC91 0334
+1EC91 0061
+1EC91 0041
+1EC91 0062
+1EC92 0021
+1EC92 003F
+1EC92 0334
+1EC92 0061
+1EC92 0041
+1EC92 0062
+1EC93 0021
+1EC93 003F
+1EC93 0334
+1EC93 0061
+1EC93 0041
+1EC93 0062
+1EC94 0021
+1EC94 003F
+1EC94 0334
+1EC94 0061
+1EC94 0041
+1EC94 0062
+1EC95 0021
+1EC95 003F
+1EC95 0334
+1EC95 0061
+1EC95 0041
+1EC95 0062
+1EC96 0021
+1EC96 003F
+1EC96 0334
+1EC96 0061
+1EC96 0041
+1EC96 0062
+1EC97 0021
+1EC97 003F
+1EC97 0334
+1EC97 0061
+1EC97 0041
+1EC97 0062
+1EC98 0021
+1EC98 003F
+1EC98 0334
+1EC98 0061
+1EC98 0041
+1EC98 0062
+1EC99 0021
+1EC99 003F
+1EC99 0334
+1EC99 0061
+1EC99 0041
+1EC99 0062
+1EC9A 0021
+1EC9A 003F
+1EC9A 0334
+1EC9A 0061
+1EC9A 0041
+1EC9A 0062
+1EC9B 0021
+1EC9B 003F
+1EC9B 0334
+1EC9B 0061
+1EC9B 0041
+1EC9B 0062
+1EC9C 0021
+1EC9C 003F
+1EC9C 0334
+1EC9C 0061
+1EC9C 0041
+1EC9C 0062
+1EC9D 0021
+1EC9D 003F
+1EC9D 0334
+1EC9D 0061
+1EC9D 0041
+1EC9D 0062
+1EC9E 0021
+1EC9E 003F
+1EC9E 0334
+1EC9E 0061
+1EC9E 0041
+1EC9E 0062
+1EC9F 0021
+1EC9F 003F
+1EC9F 0334
+1EC9F 0061
+1EC9F 0041
+1EC9F 0062
+1ECA0 0021
+1ECA0 003F
+1ECA0 0334
+1ECA0 0061
+1ECA0 0041
+1ECA0 0062
+1ECA1 0021
+1ECA1 003F
+1ECA1 0334
+1ECA1 0061
+1ECA1 0041
+1ECA1 0062
+1ECA2 0021
+1ECA2 003F
+1ECA2 0334
+1ECA2 0061
+1ECA2 0041
+1ECA2 0062
+1ECAD 0021
+1ECAD 003F
+1ECAD 0334
+1ECAD 0061
+1ECAD 0041
+1ECAD 0062
+1ECAE 0021
+1ECAE 003F
+1ECAE 0334
+1ECAE 0061
+1ECAE 0041
+1ECAE 0062
+1ECAF 0021
+1ECAF 003F
+1ECAF 0334
+1ECAF 0061
+1ECAF 0041
+1ECAF 0062
+1ECB3 0021
+1ECB3 003F
+1ECB3 0334
+1ECB3 0061
+1ECB3 0041
+1ECB3 0062
+1ECB4 0021
+1ECB4 003F
+1ECB4 0334
+1ECB4 0061
+1ECB4 0041
+1ECB4 0062
109C9 0021
109C9 003F
109C9 0334
@@ -41238,6 +42586,7 @@ AA50 0021
ABF0 0021
1018A 0021
104A0 0021
+10D30 0021
11066 0021
110F0 0021
11136 0021
@@ -41251,8 +42600,11 @@ ABF0 0021
118E0 0021
11C50 0021
11D50 0021
+11DA0 0021
16A60 0021
16B50 0021
+16E80 0021
+1D2E0 0021
1E950 0021
0030 003F
0660 003F
@@ -41295,6 +42647,7 @@ AA50 003F
ABF0 003F
1018A 003F
104A0 003F
+10D30 003F
11066 003F
110F0 003F
11136 003F
@@ -41308,8 +42661,11 @@ ABF0 003F
118E0 003F
11C50 003F
11D50 003F
+11DA0 003F
16A60 003F
16B50 003F
+16E80 003F
+1D2E0 003F
1E950 003F
FF10 0021
FF10 003F
@@ -41345,6 +42701,7 @@ FF10 003F
2080 003F
1018A 0334
104A0 0334
+10D30 0334
11066 0334
110F0 0334
11136 0334
@@ -41358,8 +42715,11 @@ FF10 003F
118E0 0334
11C50 0334
11D50 0334
+11DA0 0334
16A60 0334
16B50 0334
+16E80 0334
+1D2E0 0334
1E950 0334
1D7CE 0334
1D7D8 0334
@@ -41414,6 +42774,7 @@ AA50 0061
ABF0 0061
1018A 0061
104A0 0061
+10D30 0061
11066 0061
110F0 0061
11136 0061
@@ -41427,8 +42788,11 @@ ABF0 0061
118E0 0061
11C50 0061
11D50 0061
+11DA0 0061
16A60 0061
16B50 0061
+16E80 0061
+1D2E0 0061
1E950 0061
0030 0041
0660 0041
@@ -41471,6 +42835,7 @@ AA50 0041
ABF0 0041
1018A 0041
104A0 0041
+10D30 0041
11066 0041
110F0 0041
11136 0041
@@ -41484,8 +42849,11 @@ ABF0 0041
118E0 0041
11C50 0041
11D50 0041
+11DA0 0041
16A60 0041
16B50 0041
+16E80 0041
+1D2E0 0041
1E950 0041
FF10 0061
FF10 0041
@@ -41558,6 +42926,7 @@ AA50 0062
ABF0 0062
1018A 0062
104A0 0062
+10D30 0062
11066 0062
110F0 0062
11136 0062
@@ -41571,8 +42940,11 @@ ABF0 0062
118E0 0062
11C50 0062
11D50 0062
+11DA0 0062
16A60 0062
16B50 0062
+16E80 0062
+1D2E0 0062
1E950 0062
FF10 0062
1F101 0062
@@ -41659,7 +43031,10 @@ ABF1 0021
10B78 0021
10BA9 0021
10CFA 0021
+10D31 0021
10E60 0021
+10F1D 0021
+10F51 0021
11052 0021
11067 0021
110F1 0021
@@ -41676,6 +43051,7 @@ ABF1 0021
11C51 0021
11C5A 0021
11D51 0021
+11DA1 0021
12415 0021
1241E 0021
1242C 0021
@@ -41684,9 +43060,15 @@ ABF1 0021
12458 0021
16A61 0021
16B51 0021
+16E81 0021
+1D2E1 0021
1D360 0021
+1D372 0021
+1D377 0021
1E8C7 0021
1E951 0021
+1EC71 0021
+1ECA3 0021
0031 003F
0661 003F
06F1 003F
@@ -41752,7 +43134,10 @@ ABF1 003F
10B78 003F
10BA9 003F
10CFA 003F
+10D31 003F
10E60 003F
+10F1D 003F
+10F51 003F
11052 003F
11067 003F
110F1 003F
@@ -41769,6 +43154,7 @@ ABF1 003F
11C51 003F
11C5A 003F
11D51 003F
+11DA1 003F
12415 003F
1241E 003F
1242C 003F
@@ -41777,9 +43163,15 @@ ABF1 003F
12458 003F
16A61 003F
16B51 003F
+16E81 003F
+1D2E1 003F
1D360 003F
+1D372 003F
+1D377 003F
1E8C7 003F
1E951 003F
+1EC71 003F
+1ECA3 003F
FF11 0021
FF11 003F
2474 0021
@@ -41838,7 +43230,10 @@ FF11 003F
10B78 0334
10BA9 0334
10CFA 0334
+10D31 0334
10E60 0334
+10F1D 0334
+10F51 0334
11052 0334
11067 0334
110F1 0334
@@ -41855,6 +43250,7 @@ FF11 003F
11C51 0334
11C5A 0334
11D51 0334
+11DA1 0334
12415 0334
1241E 0334
1242C 0334
@@ -41863,14 +43259,26 @@ FF11 003F
12458 0334
16A61 0334
16B51 0334
+16E81 0334
+1D2E1 0334
1D360 0334
+1D372 0334
+1D377 0334
1E8C7 0334
1E951 0334
+1EC71 0334
+1ECA3 0334
1D7CF 0334
1D7D9 0334
1D7E3 0334
1D7ED 0334
1D7F7 0334
+16E94 0021
+1ECB1 0021
+16E94 003F
+1ECB1 003F
+16E94 0334
+1ECB1 0334
215F 0021
215F 003F
2152 0021
@@ -42327,7 +43735,10 @@ ABF1 0061
10B78 0061
10BA9 0061
10CFA 0061
+10D31 0061
10E60 0061
+10F1D 0061
+10F51 0061
11052 0061
11067 0061
110F1 0061
@@ -42344,6 +43755,7 @@ ABF1 0061
11C51 0061
11C5A 0061
11D51 0061
+11DA1 0061
12415 0061
1241E 0061
1242C 0061
@@ -42352,9 +43764,15 @@ ABF1 0061
12458 0061
16A61 0061
16B51 0061
+16E81 0061
+1D2E1 0061
1D360 0061
+1D372 0061
+1D377 0061
1E8C7 0061
1E951 0061
+1EC71 0061
+1ECA3 0061
0031 0041
0661 0041
06F1 0041
@@ -42420,7 +43838,10 @@ ABF1 0041
10B78 0041
10BA9 0041
10CFA 0041
+10D31 0041
10E60 0041
+10F1D 0041
+10F51 0041
11052 0041
11067 0041
110F1 0041
@@ -42437,6 +43858,7 @@ ABF1 0041
11C51 0041
11C5A 0041
11D51 0041
+11DA1 0041
12415 0041
1241E 0041
1242C 0041
@@ -42445,9 +43867,15 @@ ABF1 0041
12458 0041
16A61 0041
16B51 0041
+16E81 0041
+1D2E1 0041
1D360 0041
+1D372 0041
+1D377 0041
1E8C7 0041
1E951 0041
+1EC71 0041
+1ECA3 0041
FF11 0061
FF11 0041
2474 0061
@@ -42482,6 +43910,10 @@ FF11 0041
00B9 0041
2081 0061
2081 0041
+16E94 0061
+1ECB1 0061
+16E94 0041
+1ECB1 0041
0031 0062
0661 0062
06F1 0062
@@ -42547,7 +43979,10 @@ ABF1 0062
10B78 0062
10BA9 0062
10CFA 0062
+10D31 0062
10E60 0062
+10F1D 0062
+10F51 0062
11052 0062
11067 0062
110F1 0062
@@ -42564,6 +43999,7 @@ ABF1 0062
11C51 0062
11C5A 0062
11D51 0062
+11DA1 0062
12415 0062
1241E 0062
1242C 0062
@@ -42572,9 +44008,15 @@ ABF1 0062
12458 0062
16A61 0062
16B51 0062
+16E81 0062
+1D2E1 0062
1D360 0062
+1D372 0062
+1D377 0062
1E8C7 0062
1E951 0062
+1EC71 0062
+1ECA3 0062
FF11 0062
2474 0062
1F102 0062
@@ -42592,6 +44034,8 @@ FF11 0062
278A 0062
00B9 0062
2081 0062
+16E94 0062
+1ECB1 0062
33E0 0021
33E0 003F
33E0 0061
@@ -42665,7 +44109,9 @@ ABF2 0021
10B59 0021
10B79 0021
10BAA 0021
+10D32 0021
10E61 0021
+10F1E 0021
11053 0021
11068 0021
110F2 0021
@@ -42682,6 +44128,7 @@ ABF2 0021
11C52 0021
11C5B 0021
11D52 0021
+11DA2 0021
12400 0021
12416 0021
1241F 0021
@@ -42694,9 +44141,14 @@ ABF2 0021
12459 0021
16A62 0021
16B52 0021
+16E82 0021
+1D2E2 0021
1D361 0021
+1D373 0021
1E8C8 0021
1E952 0021
+1EC72 0021
+1ECA4 0021
0032 003F
0662 003F
06F2 003F
@@ -42755,7 +44207,9 @@ ABF2 003F
10B59 003F
10B79 003F
10BAA 003F
+10D32 003F
10E61 003F
+10F1E 003F
11053 003F
11068 003F
110F2 003F
@@ -42772,6 +44226,7 @@ ABF2 003F
11C52 003F
11C5B 003F
11D52 003F
+11DA2 003F
12400 003F
12416 003F
1241F 003F
@@ -42784,9 +44239,14 @@ ABF2 003F
12459 003F
16A62 003F
16B52 003F
+16E82 003F
+1D2E2 003F
1D361 003F
+1D373 003F
1E8C8 003F
1E952 003F
+1EC72 003F
+1ECA4 003F
FF12 0021
FF12 003F
2475 0021
@@ -42839,7 +44299,9 @@ FF12 003F
10B59 0334
10B79 0334
10BAA 0334
+10D32 0334
10E61 0334
+10F1E 0334
11053 0334
11068 0334
110F2 0334
@@ -42856,6 +44318,7 @@ FF12 003F
11C52 0334
11C5B 0334
11D52 0334
+11DA2 0334
12400 0334
12416 0334
1241F 0334
@@ -42868,14 +44331,25 @@ FF12 003F
12459 0334
16A62 0334
16B52 0334
+16E82 0334
+1D2E2 0334
1D361 0334
+1D373 0334
1E8C8 0334
1E952 0334
+1EC72 0334
+1ECA4 0334
1D7D0 0334
1D7DA 0334
1D7E4 0334
1D7EE 0334
1D7F8 0334
+16E95 0021
+1ECB2 0021
+16E95 003F
+1ECB2 003F
+16E95 0334
+1ECB2 0334
2154 0021
2154 003F
2154 0061
@@ -43095,7 +44569,9 @@ ABF2 0061
10B59 0061
10B79 0061
10BAA 0061
+10D32 0061
10E61 0061
+10F1E 0061
11053 0061
11068 0061
110F2 0061
@@ -43112,6 +44588,7 @@ ABF2 0061
11C52 0061
11C5B 0061
11D52 0061
+11DA2 0061
12400 0061
12416 0061
1241F 0061
@@ -43124,9 +44601,14 @@ ABF2 0061
12459 0061
16A62 0061
16B52 0061
+16E82 0061
+1D2E2 0061
1D361 0061
+1D373 0061
1E8C8 0061
1E952 0061
+1EC72 0061
+1ECA4 0061
0032 0041
0662 0041
06F2 0041
@@ -43185,7 +44667,9 @@ ABF2 0041
10B59 0041
10B79 0041
10BAA 0041
+10D32 0041
10E61 0041
+10F1E 0041
11053 0041
11068 0041
110F2 0041
@@ -43202,6 +44686,7 @@ ABF2 0041
11C52 0041
11C5B 0041
11D52 0041
+11DA2 0041
12400 0041
12416 0041
1241F 0041
@@ -43214,9 +44699,14 @@ ABF2 0041
12459 0041
16A62 0041
16B52 0041
+16E82 0041
+1D2E2 0041
1D361 0041
+1D373 0041
1E8C8 0041
1E952 0041
+1EC72 0041
+1ECA4 0041
FF12 0061
FF12 0041
2475 0061
@@ -43251,6 +44741,10 @@ FF12 0041
00B2 0041
2082 0061
2082 0041
+16E95 0061
+1ECB2 0061
+16E95 0041
+1ECB2 0041
0032 0062
0662 0062
06F2 0062
@@ -43309,7 +44803,9 @@ ABF2 0062
10B59 0062
10B79 0062
10BAA 0062
+10D32 0062
10E61 0062
+10F1E 0062
11053 0062
11068 0062
110F2 0062
@@ -43326,6 +44822,7 @@ ABF2 0062
11C52 0062
11C5B 0062
11D52 0062
+11DA2 0062
12400 0062
12416 0062
1241F 0062
@@ -43338,9 +44835,14 @@ ABF2 0062
12459 0062
16A62 0062
16B52 0062
+16E82 0062
+1D2E2 0062
1D361 0062
+1D373 0062
1E8C8 0062
1E952 0062
+1EC72 0062
+1ECA4 0062
FF12 0062
2475 0062
1F103 0062
@@ -43358,6 +44860,8 @@ FF12 0062
278B 0062
00B2 0062
2082 0062
+16E95 0062
+1ECB2 0062
1F19D 0021
1F19D 003F
1F19D 0334
@@ -43438,7 +44942,9 @@ ABF3 0021
10B5A 0021
10B7A 0021
10BAB 0021
+10D33 0021
10E62 0021
+10F1F 0021
11054 0021
11069 0021
110F3 0021
@@ -43455,6 +44961,7 @@ ABF3 0021
11C53 0021
11C5C 0021
11D53 0021
+11DA3 0021
12401 0021
12408 0021
12417 0021
@@ -43472,9 +44979,14 @@ ABF3 0021
12457 0021
16A63 0021
16B53 0021
+16E83 0021
+1D2E3 0021
1D362 0021
+1D374 0021
1E8C9 0021
1E953 0021
+1EC73 0021
+1ECA5 0021
0033 003F
0663 003F
06F3 003F
@@ -43528,7 +45040,9 @@ ABF3 003F
10B5A 003F
10B7A 003F
10BAB 003F
+10D33 003F
10E62 003F
+10F1F 003F
11054 003F
11069 003F
110F3 003F
@@ -43545,6 +45059,7 @@ ABF3 003F
11C53 003F
11C5C 003F
11D53 003F
+11DA3 003F
12401 003F
12408 003F
12417 003F
@@ -43562,9 +45077,14 @@ ABF3 003F
12457 003F
16A63 003F
16B53 003F
+16E83 003F
+1D2E3 003F
1D362 003F
+1D374 003F
1E8C9 003F
1E953 003F
+1EC73 003F
+1ECA5 003F
FF13 0021
FF13 003F
2476 0021
@@ -43612,7 +45132,9 @@ FF13 003F
10B5A 0334
10B7A 0334
10BAB 0334
+10D33 0334
10E62 0334
+10F1F 0334
11054 0334
11069 0334
110F3 0334
@@ -43629,6 +45151,7 @@ FF13 003F
11C53 0334
11C5C 0334
11D53 0334
+11DA3 0334
12401 0334
12408 0334
12417 0334
@@ -43646,14 +45169,22 @@ FF13 003F
12457 0334
16A63 0334
16B53 0334
+16E83 0334
+1D2E3 0334
1D362 0334
+1D374 0334
1E8C9 0334
1E953 0334
+1EC73 0334
+1ECA5 0334
1D7D1 0334
1D7DB 0334
1D7E5 0334
1D7EF 0334
1D7F9 0334
+16E96 0021
+16E96 003F
+16E96 0334
00BE 0021
00BE 003F
00BE 0061
@@ -43787,7 +45318,9 @@ ABF3 0061
10B5A 0061
10B7A 0061
10BAB 0061
+10D33 0061
10E62 0061
+10F1F 0061
11054 0061
11069 0061
110F3 0061
@@ -43804,6 +45337,7 @@ ABF3 0061
11C53 0061
11C5C 0061
11D53 0061
+11DA3 0061
12401 0061
12408 0061
12417 0061
@@ -43821,9 +45355,14 @@ ABF3 0061
12457 0061
16A63 0061
16B53 0061
+16E83 0061
+1D2E3 0061
1D362 0061
+1D374 0061
1E8C9 0061
1E953 0061
+1EC73 0061
+1ECA5 0061
0033 0041
0663 0041
06F3 0041
@@ -43877,7 +45416,9 @@ ABF3 0041
10B5A 0041
10B7A 0041
10BAB 0041
+10D33 0041
10E62 0041
+10F1F 0041
11054 0041
11069 0041
110F3 0041
@@ -43894,6 +45435,7 @@ ABF3 0041
11C53 0041
11C5C 0041
11D53 0041
+11DA3 0041
12401 0041
12408 0041
12417 0041
@@ -43911,9 +45453,14 @@ ABF3 0041
12457 0041
16A63 0041
16B53 0041
+16E83 0041
+1D2E3 0041
1D362 0041
+1D374 0041
1E8C9 0041
1E953 0041
+1EC73 0041
+1ECA5 0041
FF13 0061
FF13 0041
2476 0061
@@ -43948,6 +45495,8 @@ FF13 0041
00B3 0041
2083 0061
2083 0041
+16E96 0061
+16E96 0041
0033 0062
0663 0062
06F3 0062
@@ -44001,7 +45550,9 @@ ABF3 0062
10B5A 0062
10B7A 0062
10BAB 0062
+10D33 0062
10E62 0062
+10F1F 0062
11054 0062
11069 0062
110F3 0062
@@ -44018,6 +45569,7 @@ ABF3 0062
11C53 0062
11C5C 0062
11D53 0062
+11DA3 0062
12401 0062
12408 0062
12417 0062
@@ -44035,9 +45587,14 @@ ABF3 0062
12457 0062
16A63 0062
16B53 0062
+16E83 0062
+1D2E3 0062
1D362 0062
+1D374 0062
1E8C9 0062
1E953 0062
+1EC73 0062
+1ECA5 0062
FF13 0062
2476 0062
1F104 0062
@@ -44055,6 +45612,7 @@ FF13 0062
278C 0062
00B3 0062
2083 0062
+16E96 0062
1F19B 0021
1F19B 003F
1F19B 0334
@@ -44126,7 +45684,9 @@ ABF4 0021
10B5B 0021
10B7B 0021
10BAC 0021
+10D34 0021
10E63 0021
+10F20 0021
11055 0021
1106A 0021
110F4 0021
@@ -44143,6 +45703,7 @@ ABF4 0021
11C54 0021
11C5D 0021
11D54 0021
+11DA4 0021
12402 0021
12409 0021
1240F 0021
@@ -44161,9 +45722,14 @@ ABF4 0021
12469 0021
16A64 0021
16B54 0021
+16E84 0021
+1D2E4 0021
1D363 0021
+1D375 0021
1E8CA 0021
1E954 0021
+1EC74 0021
+1ECA6 0021
0034 003F
0664 003F
06F4 003F
@@ -44214,7 +45780,9 @@ ABF4 003F
10B5B 003F
10B7B 003F
10BAC 003F
+10D34 003F
10E63 003F
+10F20 003F
11055 003F
1106A 003F
110F4 003F
@@ -44231,6 +45799,7 @@ ABF4 003F
11C54 003F
11C5D 003F
11D54 003F
+11DA4 003F
12402 003F
12409 003F
1240F 003F
@@ -44249,9 +45818,14 @@ ABF4 003F
12469 003F
16A64 003F
16B54 003F
+16E84 003F
+1D2E4 003F
1D363 003F
+1D375 003F
1E8CA 003F
1E954 003F
+1EC74 003F
+1ECA6 003F
FF14 0021
FF14 003F
2477 0021
@@ -44298,7 +45872,9 @@ FF14 003F
10B5B 0334
10B7B 0334
10BAC 0334
+10D34 0334
10E63 0334
+10F20 0334
11055 0334
1106A 0334
110F4 0334
@@ -44315,6 +45891,7 @@ FF14 003F
11C54 0334
11C5D 0334
11D54 0334
+11DA4 0334
12402 0334
12409 0334
1240F 0334
@@ -44333,9 +45910,14 @@ FF14 003F
12469 0334
16A64 0334
16B54 0334
+16E84 0334
+1D2E4 0334
1D363 0334
+1D375 0334
1E8CA 0334
1E954 0334
+1EC74 0334
+1ECA6 0334
1D7D2 0334
1D7DC 0334
1D7E6 0334
@@ -44451,7 +46033,9 @@ ABF4 0061
10B5B 0061
10B7B 0061
10BAC 0061
+10D34 0061
10E63 0061
+10F20 0061
11055 0061
1106A 0061
110F4 0061
@@ -44468,6 +46052,7 @@ ABF4 0061
11C54 0061
11C5D 0061
11D54 0061
+11DA4 0061
12402 0061
12409 0061
1240F 0061
@@ -44486,9 +46071,14 @@ ABF4 0061
12469 0061
16A64 0061
16B54 0061
+16E84 0061
+1D2E4 0061
1D363 0061
+1D375 0061
1E8CA 0061
1E954 0061
+1EC74 0061
+1ECA6 0061
0034 0041
0664 0041
06F4 0041
@@ -44539,7 +46129,9 @@ ABF4 0041
10B5B 0041
10B7B 0041
10BAC 0041
+10D34 0041
10E63 0041
+10F20 0041
11055 0041
1106A 0041
110F4 0041
@@ -44556,6 +46148,7 @@ ABF4 0041
11C54 0041
11C5D 0041
11D54 0041
+11DA4 0041
12402 0041
12409 0041
1240F 0041
@@ -44574,9 +46167,14 @@ ABF4 0041
12469 0041
16A64 0041
16B54 0041
+16E84 0041
+1D2E4 0041
1D363 0041
+1D375 0041
1E8CA 0041
1E954 0041
+1EC74 0041
+1ECA6 0041
FF14 0061
FF14 0041
2477 0061
@@ -44661,7 +46259,9 @@ ABF4 0062
10B5B 0062
10B7B 0062
10BAC 0062
+10D34 0062
10E63 0062
+10F20 0062
11055 0062
1106A 0062
110F4 0062
@@ -44678,6 +46278,7 @@ ABF4 0062
11C54 0062
11C5D 0062
11D54 0062
+11DA4 0062
12402 0062
12409 0062
1240F 0062
@@ -44696,9 +46297,14 @@ ABF4 0062
12469 0062
16A64 0062
16B54 0062
+16E84 0062
+1D2E4 0062
1D363 0062
+1D375 0062
1E8CA 0062
1E954 0062
+1EC74 0062
+1ECA6 0062
FF14 0062
2477 0062
1F105 0062
@@ -44791,7 +46397,9 @@ ABF5 0021
109C4 0021
10AEC 0021
10CFB 0021
+10D35 0021
10E64 0021
+10F21 0021
11056 0021
1106B 0021
110F5 0021
@@ -44808,6 +46416,7 @@ ABF5 0021
11C55 0021
11C5E 0021
11D55 0021
+11DA5 0021
12403 0021
1240A 0021
12410 0021
@@ -44822,9 +46431,15 @@ ABF5 0021
1246A 0021
16A65 0021
16B55 0021
+16E85 0021
+1D2E5 0021
1D364 0021
+1D376 0021
+1D378 0021
1E8CB 0021
1E955 0021
+1EC75 0021
+1ECA7 0021
0035 003F
0665 003F
06F5 003F
@@ -44879,7 +46494,9 @@ ABF5 003F
109C4 003F
10AEC 003F
10CFB 003F
+10D35 003F
10E64 003F
+10F21 003F
11056 003F
1106B 003F
110F5 003F
@@ -44896,6 +46513,7 @@ ABF5 003F
11C55 003F
11C5E 003F
11D55 003F
+11DA5 003F
12403 003F
1240A 003F
12410 003F
@@ -44910,9 +46528,15 @@ ABF5 003F
1246A 003F
16A65 003F
16B55 003F
+16E85 003F
+1D2E5 003F
1D364 003F
+1D376 003F
+1D378 003F
1E8CB 003F
1E955 003F
+1EC75 003F
+1ECA7 003F
FF15 0021
FF15 003F
2478 0021
@@ -44963,7 +46587,9 @@ FF15 003F
109C4 0334
10AEC 0334
10CFB 0334
+10D35 0334
10E64 0334
+10F21 0334
11056 0334
1106B 0334
110F5 0334
@@ -44980,6 +46606,7 @@ FF15 003F
11C55 0334
11C5E 0334
11D55 0334
+11DA5 0334
12403 0334
1240A 0334
12410 0334
@@ -44994,9 +46621,15 @@ FF15 003F
1246A 0334
16A65 0334
16B55 0334
+16E85 0334
+1D2E5 0334
1D364 0334
+1D376 0334
+1D378 0334
1E8CB 0334
1E955 0334
+1EC75 0334
+1ECA7 0334
1D7D3 0334
1D7DD 0334
1D7E7 0334
@@ -45082,7 +46715,9 @@ ABF5 0061
109C4 0061
10AEC 0061
10CFB 0061
+10D35 0061
10E64 0061
+10F21 0061
11056 0061
1106B 0061
110F5 0061
@@ -45099,6 +46734,7 @@ ABF5 0061
11C55 0061
11C5E 0061
11D55 0061
+11DA5 0061
12403 0061
1240A 0061
12410 0061
@@ -45113,9 +46749,15 @@ ABF5 0061
1246A 0061
16A65 0061
16B55 0061
+16E85 0061
+1D2E5 0061
1D364 0061
+1D376 0061
+1D378 0061
1E8CB 0061
1E955 0061
+1EC75 0061
+1ECA7 0061
0035 0041
0665 0041
06F5 0041
@@ -45170,7 +46812,9 @@ ABF5 0041
109C4 0041
10AEC 0041
10CFB 0041
+10D35 0041
10E64 0041
+10F21 0041
11056 0041
1106B 0041
110F5 0041
@@ -45187,6 +46831,7 @@ ABF5 0041
11C55 0041
11C5E 0041
11D55 0041
+11DA5 0041
12403 0041
1240A 0041
12410 0041
@@ -45201,9 +46846,15 @@ ABF5 0041
1246A 0041
16A65 0041
16B55 0041
+16E85 0041
+1D2E5 0041
1D364 0041
+1D376 0041
+1D378 0041
1E8CB 0041
1E955 0041
+1EC75 0041
+1ECA7 0041
FF15 0061
FF15 0041
2478 0061
@@ -45292,7 +46943,9 @@ ABF5 0062
109C4 0062
10AEC 0062
10CFB 0062
+10D35 0062
10E64 0062
+10F21 0062
11056 0062
1106B 0062
110F5 0062
@@ -45309,6 +46962,7 @@ ABF5 0062
11C55 0062
11C5E 0062
11D55 0062
+11DA5 0062
12403 0062
1240A 0062
12410 0062
@@ -45323,9 +46977,15 @@ ABF5 0062
1246A 0062
16A65 0062
16B55 0062
+16E85 0062
+1D2E5 0062
1D364 0062
+1D376 0062
+1D378 0062
1E8CB 0062
1E955 0062
+1EC75 0062
+1ECA7 0062
FF15 0062
2478 0062
1F106 0062
@@ -45402,6 +47062,7 @@ ABF6 0021
102E6 0021
104A6 0021
109C5 0021
+10D36 0021
10E65 0021
11057 0021
1106C 0021
@@ -45419,6 +47080,7 @@ ABF6 0021
11C56 0021
11C5F 0021
11D56 0021
+11DA6 0021
12404 0021
1240B 0021
12411 0021
@@ -45429,9 +47091,13 @@ ABF6 0021
1246B 0021
16A66 0021
16B56 0021
+16E86 0021
+1D2E6 0021
1D365 0021
1E8CC 0021
1E956 0021
+1EC76 0021
+1ECA8 0021
0036 003F
0666 003F
06F6 003F
@@ -45476,6 +47142,7 @@ ABF6 003F
102E6 003F
104A6 003F
109C5 003F
+10D36 003F
10E65 003F
11057 003F
1106C 003F
@@ -45493,6 +47160,7 @@ ABF6 003F
11C56 003F
11C5F 003F
11D56 003F
+11DA6 003F
12404 003F
1240B 003F
12411 003F
@@ -45503,9 +47171,13 @@ ABF6 003F
1246B 003F
16A66 003F
16B56 003F
+16E86 003F
+1D2E6 003F
1D365 003F
1E8CC 003F
1E956 003F
+1EC76 003F
+1ECA8 003F
FF16 0021
FF16 003F
2479 0021
@@ -45545,6 +47217,7 @@ FF16 003F
102E6 0334
104A6 0334
109C5 0334
+10D36 0334
10E65 0334
11057 0334
1106C 0334
@@ -45562,6 +47235,7 @@ FF16 003F
11C56 0334
11C5F 0334
11D56 0334
+11DA6 0334
12404 0334
1240B 0334
12411 0334
@@ -45572,9 +47246,13 @@ FF16 003F
1246B 0334
16A66 0334
16B56 0334
+16E86 0334
+1D2E6 0334
1D365 0334
1E8CC 0334
1E956 0334
+1EC76 0334
+1ECA8 0334
1D7D4 0334
1D7DE 0334
1D7E8 0334
@@ -45635,6 +47313,7 @@ ABF6 0061
102E6 0061
104A6 0061
109C5 0061
+10D36 0061
10E65 0061
11057 0061
1106C 0061
@@ -45652,6 +47331,7 @@ ABF6 0061
11C56 0061
11C5F 0061
11D56 0061
+11DA6 0061
12404 0061
1240B 0061
12411 0061
@@ -45662,9 +47342,13 @@ ABF6 0061
1246B 0061
16A66 0061
16B56 0061
+16E86 0061
+1D2E6 0061
1D365 0061
1E8CC 0061
1E956 0061
+1EC76 0061
+1ECA8 0061
0036 0041
0666 0041
06F6 0041
@@ -45709,6 +47393,7 @@ ABF6 0041
102E6 0041
104A6 0041
109C5 0041
+10D36 0041
10E65 0041
11057 0041
1106C 0041
@@ -45726,6 +47411,7 @@ ABF6 0041
11C56 0041
11C5F 0041
11D56 0041
+11DA6 0041
12404 0041
1240B 0041
12411 0041
@@ -45736,9 +47422,13 @@ ABF6 0041
1246B 0041
16A66 0041
16B56 0041
+16E86 0041
+1D2E6 0041
1D365 0041
1E8CC 0041
1E956 0041
+1EC76 0041
+1ECA8 0041
FF16 0061
FF16 0041
2479 0061
@@ -45817,6 +47507,7 @@ ABF6 0062
102E6 0062
104A6 0062
109C5 0062
+10D36 0062
10E65 0062
11057 0062
1106C 0062
@@ -45834,6 +47525,7 @@ ABF6 0062
11C56 0062
11C5F 0062
11D56 0062
+11DA6 0062
12404 0062
1240B 0062
12411 0062
@@ -45844,9 +47536,13 @@ ABF6 0062
1246B 0062
16A66 0062
16B56 0062
+16E86 0062
+1D2E6 0062
1D365 0062
1E8CC 0062
1E956 0062
+1EC76 0062
+1ECA8 0062
FF16 0062
2479 0062
1F107 0062
@@ -45922,6 +47618,7 @@ ABF7 0021
102E7 0021
104A7 0021
109C6 0021
+10D37 0021
10E66 0021
11058 0021
1106D 0021
@@ -45939,6 +47636,7 @@ ABF7 0021
11C57 0021
11C60 0021
11D57 0021
+11DA7 0021
12405 0021
1240C 0021
12412 0021
@@ -45950,9 +47648,13 @@ ABF7 0021
1246C 0021
16A67 0021
16B57 0021
+16E87 0021
+1D2E7 0021
1D366 0021
1E8CD 0021
1E957 0021
+1EC77 0021
+1ECA9 0021
0037 003F
0667 003F
06F7 003F
@@ -45996,6 +47698,7 @@ ABF7 003F
102E7 003F
104A7 003F
109C6 003F
+10D37 003F
10E66 003F
11058 003F
1106D 003F
@@ -46013,6 +47716,7 @@ ABF7 003F
11C57 003F
11C60 003F
11D57 003F
+11DA7 003F
12405 003F
1240C 003F
12412 003F
@@ -46024,9 +47728,13 @@ ABF7 003F
1246C 003F
16A67 003F
16B57 003F
+16E87 003F
+1D2E7 003F
1D366 003F
1E8CD 003F
1E957 003F
+1EC77 003F
+1ECA9 003F
FF17 0021
FF17 003F
247A 0021
@@ -46066,6 +47774,7 @@ FF17 003F
102E7 0334
104A7 0334
109C6 0334
+10D37 0334
10E66 0334
11058 0334
1106D 0334
@@ -46083,6 +47792,7 @@ FF17 003F
11C57 0334
11C60 0334
11D57 0334
+11DA7 0334
12405 0334
1240C 0334
12412 0334
@@ -46094,9 +47804,13 @@ FF17 003F
1246C 0334
16A67 0334
16B57 0334
+16E87 0334
+1D2E7 0334
1D366 0334
1E8CD 0334
1E957 0334
+1EC77 0334
+1ECA9 0334
1D7D5 0334
1D7DF 0334
1D7E9 0334
@@ -46161,6 +47875,7 @@ ABF7 0061
102E7 0061
104A7 0061
109C6 0061
+10D37 0061
10E66 0061
11058 0061
1106D 0061
@@ -46178,6 +47893,7 @@ ABF7 0061
11C57 0061
11C60 0061
11D57 0061
+11DA7 0061
12405 0061
1240C 0061
12412 0061
@@ -46189,9 +47905,13 @@ ABF7 0061
1246C 0061
16A67 0061
16B57 0061
+16E87 0061
+1D2E7 0061
1D366 0061
1E8CD 0061
1E957 0061
+1EC77 0061
+1ECA9 0061
0037 0041
0667 0041
06F7 0041
@@ -46235,6 +47955,7 @@ ABF7 0041
102E7 0041
104A7 0041
109C6 0041
+10D37 0041
10E66 0041
11058 0041
1106D 0041
@@ -46252,6 +47973,7 @@ ABF7 0041
11C57 0041
11C60 0041
11D57 0041
+11DA7 0041
12405 0041
1240C 0041
12412 0041
@@ -46263,9 +47985,13 @@ ABF7 0041
1246C 0041
16A67 0041
16B57 0041
+16E87 0041
+1D2E7 0041
1D366 0041
1E8CD 0041
1E957 0041
+1EC77 0041
+1ECA9 0041
FF17 0061
FF17 0041
247A 0061
@@ -46343,6 +48069,7 @@ ABF7 0062
102E7 0062
104A7 0062
109C6 0062
+10D37 0062
10E66 0062
11058 0062
1106D 0062
@@ -46360,6 +48087,7 @@ ABF7 0062
11C57 0062
11C60 0062
11D57 0062
+11DA7 0062
12405 0062
1240C 0062
12412 0062
@@ -46371,9 +48099,13 @@ ABF7 0062
1246C 0062
16A67 0062
16B57 0062
+16E87 0062
+1D2E7 0062
1D366 0062
1E8CD 0062
1E957 0062
+1EC77 0062
+1ECA9 0062
FF17 0062
247A 0062
1F108 0062
@@ -46449,6 +48181,7 @@ ABF8 0021
102E8 0021
104A8 0021
109C7 0021
+10D38 0021
10E67 0021
11059 0021
1106E 0021
@@ -46466,6 +48199,7 @@ ABF8 0021
11C58 0021
11C61 0021
11D58 0021
+11DA8 0021
12406 0021
1240D 0021
12413 0021
@@ -46476,9 +48210,13 @@ ABF8 0021
1246D 0021
16A68 0021
16B58 0021
+16E88 0021
+1D2E8 0021
1D367 0021
1E8CE 0021
1E958 0021
+1EC78 0021
+1ECAA 0021
0038 003F
0668 003F
06F8 003F
@@ -46522,6 +48260,7 @@ ABF8 003F
102E8 003F
104A8 003F
109C7 003F
+10D38 003F
10E67 003F
11059 003F
1106E 003F
@@ -46539,6 +48278,7 @@ ABF8 003F
11C58 003F
11C61 003F
11D58 003F
+11DA8 003F
12406 003F
1240D 003F
12413 003F
@@ -46549,9 +48289,13 @@ ABF8 003F
1246D 003F
16A68 003F
16B58 003F
+16E88 003F
+1D2E8 003F
1D367 003F
1E8CE 003F
1E958 003F
+1EC78 003F
+1ECAA 003F
FF18 0021
FF18 003F
247B 0021
@@ -46591,6 +48335,7 @@ FF18 003F
102E8 0334
104A8 0334
109C7 0334
+10D38 0334
10E67 0334
11059 0334
1106E 0334
@@ -46608,6 +48353,7 @@ FF18 003F
11C58 0334
11C61 0334
11D58 0334
+11DA8 0334
12406 0334
1240D 0334
12413 0334
@@ -46618,9 +48364,13 @@ FF18 003F
1246D 0334
16A68 0334
16B58 0334
+16E88 0334
+1D2E8 0334
1D367 0334
1E8CE 0334
1E958 0334
+1EC78 0334
+1ECAA 0334
1D7D6 0334
1D7E0 0334
1D7EA 0334
@@ -46674,6 +48424,7 @@ ABF8 0061
102E8 0061
104A8 0061
109C7 0061
+10D38 0061
10E67 0061
11059 0061
1106E 0061
@@ -46691,6 +48442,7 @@ ABF8 0061
11C58 0061
11C61 0061
11D58 0061
+11DA8 0061
12406 0061
1240D 0061
12413 0061
@@ -46701,9 +48453,13 @@ ABF8 0061
1246D 0061
16A68 0061
16B58 0061
+16E88 0061
+1D2E8 0061
1D367 0061
1E8CE 0061
1E958 0061
+1EC78 0061
+1ECAA 0061
0038 0041
0668 0041
06F8 0041
@@ -46747,6 +48503,7 @@ ABF8 0041
102E8 0041
104A8 0041
109C7 0041
+10D38 0041
10E67 0041
11059 0041
1106E 0041
@@ -46764,6 +48521,7 @@ ABF8 0041
11C58 0041
11C61 0041
11D58 0041
+11DA8 0041
12406 0041
1240D 0041
12413 0041
@@ -46774,9 +48532,13 @@ ABF8 0041
1246D 0041
16A68 0041
16B58 0041
+16E88 0041
+1D2E8 0041
1D367 0041
1E8CE 0041
1E958 0041
+1EC78 0041
+1ECAA 0041
FF18 0061
FF18 0041
247B 0061
@@ -46854,6 +48616,7 @@ ABF8 0062
102E8 0062
104A8 0062
109C7 0062
+10D38 0062
10E67 0062
11059 0062
1106E 0062
@@ -46871,6 +48634,7 @@ ABF8 0062
11C58 0062
11C61 0062
11D58 0062
+11DA8 0062
12406 0062
1240D 0062
12413 0062
@@ -46881,9 +48645,13 @@ ABF8 0062
1246D 0062
16A68 0062
16B58 0062
+16E88 0062
+1D2E8 0062
1D367 0062
1E8CE 0062
1E958 0062
+1EC78 0062
+1ECAA 0062
FF18 0062
247B 0062
1F109 0062
@@ -46965,6 +48733,7 @@ ABF9 0021
102E9 0021
104A9 0021
109C8 0021
+10D39 0021
10E68 0021
1105A 0021
1106F 0021
@@ -46982,6 +48751,7 @@ ABF9 0021
11C59 0021
11C62 0021
11D59 0021
+11DA9 0021
12407 0021
1240E 0021
12414 0021
@@ -46994,9 +48764,13 @@ ABF9 0021
1246E 0021
16A69 0021
16B59 0021
+16E89 0021
+1D2E9 0021
1D368 0021
1E8CF 0021
1E959 0021
+1EC79 0021
+1ECAB 0021
0039 003F
0669 003F
06F9 003F
@@ -47040,6 +48814,7 @@ ABF9 003F
102E9 003F
104A9 003F
109C8 003F
+10D39 003F
10E68 003F
1105A 003F
1106F 003F
@@ -47057,6 +48832,7 @@ ABF9 003F
11C59 003F
11C62 003F
11D59 003F
+11DA9 003F
12407 003F
1240E 003F
12414 003F
@@ -47069,9 +48845,13 @@ ABF9 003F
1246E 003F
16A69 003F
16B59 003F
+16E89 003F
+1D2E9 003F
1D368 003F
1E8CF 003F
1E959 003F
+1EC79 003F
+1ECAB 003F
FF19 0021
FF19 003F
247C 0021
@@ -47111,6 +48891,7 @@ FF19 003F
102E9 0334
104A9 0334
109C8 0334
+10D39 0334
10E68 0334
1105A 0334
1106F 0334
@@ -47128,6 +48909,7 @@ FF19 003F
11C59 0334
11C62 0334
11D59 0334
+11DA9 0334
12407 0334
1240E 0334
12414 0334
@@ -47140,9 +48922,13 @@ FF19 003F
1246E 0334
16A69 0334
16B59 0334
+16E89 0334
+1D2E9 0334
1D368 0334
1E8CF 0334
1E959 0334
+1EC79 0334
+1ECAB 0334
1D7D7 0334
1D7E1 0334
1D7EB 0334
@@ -47191,6 +48977,7 @@ ABF9 0061
102E9 0061
104A9 0061
109C8 0061
+10D39 0061
10E68 0061
1105A 0061
1106F 0061
@@ -47208,6 +48995,7 @@ ABF9 0061
11C59 0061
11C62 0061
11D59 0061
+11DA9 0061
12407 0061
1240E 0061
12414 0061
@@ -47220,9 +49008,13 @@ ABF9 0061
1246E 0061
16A69 0061
16B59 0061
+16E89 0061
+1D2E9 0061
1D368 0061
1E8CF 0061
1E959 0061
+1EC79 0061
+1ECAB 0061
0039 0041
0669 0041
06F9 0041
@@ -47266,6 +49058,7 @@ ABF9 0041
102E9 0041
104A9 0041
109C8 0041
+10D39 0041
10E68 0041
1105A 0041
1106F 0041
@@ -47283,6 +49076,7 @@ ABF9 0041
11C59 0041
11C62 0041
11D59 0041
+11DA9 0041
12407 0041
1240E 0041
12414 0041
@@ -47295,9 +49089,13 @@ ABF9 0041
1246E 0041
16A69 0041
16B59 0041
+16E89 0041
+1D2E9 0041
1D368 0041
1E8CF 0041
1E959 0041
+1EC79 0041
+1ECAB 0041
FF19 0061
FF19 0041
247C 0061
@@ -47375,6 +49173,7 @@ ABF9 0062
102E9 0062
104A9 0062
109C8 0062
+10D39 0062
10E68 0062
1105A 0062
1106F 0062
@@ -47392,6 +49191,7 @@ ABF9 0062
11C59 0062
11C62 0062
11D59 0062
+11DA9 0062
12407 0062
1240E 0062
12414 0062
@@ -47404,9 +49204,13 @@ ABF9 0062
1246E 0062
16A69 0062
16B59 0062
+16E89 0062
+1D2E9 0062
1D368 0062
1E8CF 0062
1E959 0062
+1EC79 0062
+1ECAB 0062
FF19 0062
247C 0062
1F10A 0062
@@ -47512,6 +49316,8 @@ FF0C 0061
2E34 0061
2E32 0061
2E41 0061
+2E4C 0061
+2E4E 0061
055D 0061
060C 0061
060D 0061
@@ -47523,6 +49329,7 @@ FF0C 0061
A4FE 0061
A60D 0061
A6F5 0061
+16E97 0061
3001 0061
FE11 0061
FE51 0061
@@ -47639,6 +49446,7 @@ A4FF 0061
A60E 0061
A6F3 0061
16AF5 0061
+16E98 0061
1BC9F 0061
3002 0061
FE12 0061
@@ -47729,6 +49537,11 @@ A95F 0061
10B3D 0061
10B3E 0061
10B3F 0061
+10F55 0061
+10F56 0061
+10F57 0061
+10F58 0061
+10F59 0061
110BE 0061
110BF 0061
11140 0061
@@ -47737,6 +49550,8 @@ A95F 0061
111DF 0061
112A9 0061
1173E 0061
+11EF7 0061
+11EF8 0061
2055 0061
2056 0061
2058 0061
@@ -47946,6 +49761,7 @@ FD3F 0061
2E39 0061
00B6 0061
204B 0061
+2E4D 0061
2E3F 0061
0040 0061
FE6B 0061
@@ -47962,6 +49778,7 @@ FF0F 0061
005C 0061
FE68 0061
FF3C 0061
+2E4A 0061
0026 0061
FE60 0061
FF06 0061
@@ -47982,6 +49799,7 @@ FF05 0061
2E36 0061
2E37 0061
2E38 0061
+2E4B 0061
2022 0061
2023 0061
2027 0061
@@ -48064,7 +49882,9 @@ A8F9 0061
A8FA 0061
A8FC 0061
09FD 0061
+0A76 0061
0AF0 0061
+0C84 0061
0DF4 0061
0E4F 0061
0E5A 0061
@@ -48185,7 +50005,6 @@ AA5C 0061
11175 0061
111CD 0061
111C7 0061
-111C9 0061
111DB 0061
111DD 0061
1123A 0061
@@ -48220,12 +50039,15 @@ AA5C 0061
115D6 0061
115D7 0061
11643 0061
+1183B 0061
16B37 0061
16B38 0061
16B39 0061
16B3A 0061
16B3B 0061
16B44 0061
+16E99 0061
+16E9A 0061
1DA87 0061
1DA88 0061
1DA89 0061
@@ -48377,6 +50199,7 @@ AA5C 0061
0749 0061
074A 0061
07FA 0061
+08D3 0061
08D4 0061
08D5 0061
08D6 0061
@@ -48540,6 +50363,7 @@ FFFA 0061
FFFB 0061
102E0 0061
110BD 0061
+110CD 0061
11366 0061
11367 0061
11368 0061
@@ -49177,6 +51001,8 @@ FF0C 0041
2E34 0041
2E32 0041
2E41 0041
+2E4C 0041
+2E4E 0041
055D 0041
060C 0041
060D 0041
@@ -49188,6 +51014,7 @@ FF0C 0041
A4FE 0041
A60D 0041
A6F5 0041
+16E97 0041
3001 0041
FE11 0041
FE51 0041
@@ -49304,6 +51131,7 @@ A4FF 0041
A60E 0041
A6F3 0041
16AF5 0041
+16E98 0041
1BC9F 0041
3002 0041
FE12 0041
@@ -49394,6 +51222,11 @@ A95F 0041
10B3D 0041
10B3E 0041
10B3F 0041
+10F55 0041
+10F56 0041
+10F57 0041
+10F58 0041
+10F59 0041
110BE 0041
110BF 0041
11140 0041
@@ -49402,6 +51235,8 @@ A95F 0041
111DF 0041
112A9 0041
1173E 0041
+11EF7 0041
+11EF8 0041
2055 0041
2056 0041
2058 0041
@@ -49611,6 +51446,7 @@ FD3F 0041
2E39 0041
00B6 0041
204B 0041
+2E4D 0041
2E3F 0041
0040 0041
FE6B 0041
@@ -49627,6 +51463,7 @@ FF0F 0041
005C 0041
FE68 0041
FF3C 0041
+2E4A 0041
0026 0041
FE60 0041
FF06 0041
@@ -49647,6 +51484,7 @@ FF05 0041
2E36 0041
2E37 0041
2E38 0041
+2E4B 0041
2022 0041
2023 0041
2027 0041
@@ -49729,7 +51567,9 @@ A8F9 0041
A8FA 0041
A8FC 0041
09FD 0041
+0A76 0041
0AF0 0041
+0C84 0041
0DF4 0041
0E4F 0041
0E5A 0041
@@ -49850,7 +51690,6 @@ AA5C 0041
11175 0041
111CD 0041
111C7 0041
-111C9 0041
111DB 0041
111DD 0041
1123A 0041
@@ -49885,12 +51724,15 @@ AA5C 0041
115D6 0041
115D7 0041
11643 0041
+1183B 0041
16B37 0041
16B38 0041
16B39 0041
16B3A 0041
16B3B 0041
16B44 0041
+16E99 0041
+16E9A 0041
1DA87 0041
1DA88 0041
1DA89 0041
@@ -50042,6 +51884,7 @@ AA5C 0041
0749 0041
074A 0041
07FA 0041
+08D3 0041
08D4 0041
08D5 0041
08D6 0041
@@ -50205,6 +52048,7 @@ FFFA 0041
FFFB 0041
102E0 0041
110BD 0041
+110CD 0041
11366 0041
11367 0041
11368 0041
@@ -51261,6 +53105,14 @@ A79A 003F
A67C 0061
A67D 0061
10AE5 0061
+10D24 0061
+10D25 0061
+10D26 0061
+10D27 0061
+10F48 0061
+10F49 0061
+10F4A 0061
+10F4C 0061
1BC9D 0061
030D 0041
030E 0041
@@ -51325,6 +53177,14 @@ A67D 0061
A67C 0041
A67D 0041
10AE5 0041
+10D24 0041
+10D25 0041
+10D26 0041
+10D27 0041
+10F48 0041
+10F49 0041
+10F4A 0041
+10F4C 0041
1BC9D 0041
0316 0061
0317 0061
@@ -51360,6 +53220,7 @@ A67D 0041
0362 0061
0742 0061
0746 0061
+07FD 0061
0859 0061
085A 0061
085B 0061
@@ -51384,6 +53245,13 @@ A67D 0041
FE27 0061
10A0D 0061
10AE6 0061
+10F46 0061
+10F47 0061
+10F4B 0061
+10F4D 0061
+10F4E 0061
+10F4F 0061
+10F50 0061
0316 0041
0317 0041
0318 0041
@@ -51418,6 +53286,7 @@ FE27 0061
0362 0041
0742 0041
0746 0041
+07FD 0041
0859 0041
085A 0041
085B 0041
@@ -51442,6 +53311,13 @@ FE27 0061
FE27 0041
10A0D 0041
10AE6 0041
+10F46 0041
+10F47 0041
+10F4B 0041
+10F4D 0041
+10F4E 0041
+10F4F 0041
+10F50 0041
0336 0061
0337 0061
20D8 0061
@@ -51872,11 +53748,13 @@ A9B3 0061
111CA 0061
11236 0061
112E9 0061
+1133B 0061
1133C 0061
11446 0061
114C3 0061
115C0 0061
116B7 0061
+1183A 0061
11A33 0061
11D42 0061
093C 0041
@@ -51897,11 +53775,13 @@ A9B3 0041
111CA 0041
11236 0041
112E9 0041
+1133B 0041
1133C 0041
11446 0041
114C3 0041
115C0 0041
116B7 0041
+1183A 0041
11A33 0041
11D42 0041
0900 0061
@@ -51969,6 +53849,7 @@ A980 0041
0B02 0061
0B82 0061
0C02 0061
+0C04 0061
0C82 0061
0D00 0061
0D02 0061
@@ -51997,11 +53878,13 @@ A981 0061
115BD 0061
1163D 0061
116AB 0061
+11837 0061
11A38 0061
11A96 0061
11C3D 0061
11CB5 0061
11D40 0061
+11D95 0061
0902 0041
0982 0041
0A02 0041
@@ -52009,6 +53892,7 @@ A981 0061
0B02 0041
0B82 0041
0C02 0041
+0C04 0041
0C82 0041
0D00 0041
0D02 0041
@@ -52037,11 +53921,13 @@ A981 0041
115BD 0041
1163D 0041
116AB 0041
+11837 0041
11A38 0041
11A96 0041
11C3D 0041
11CB5 0041
11D40 0041
+11D95 0041
0903 0061
0983 0061
0A03 0061
@@ -52071,10 +53957,12 @@ A983 0061
115BE 0061
1163E 0061
116AC 0061
+11838 0061
11A39 0061
11A97 0061
11C3E 0061
11D41 0061
+11D96 0061
0903 0041
0983 0041
0A03 0041
@@ -52104,10 +53992,18 @@ A983 0041
115BE 0041
1163E 0041
116AC 0041
+11838 0041
11A39 0041
11A97 0041
11C3E 0041
11D41 0041
+11D96 0041
+09FE 0061
+111C9 0061
+1145E 0061
+09FE 0041
+111C9 0041
+1145E 0041
0A70 0061
0A70 0041
0A71 0061
@@ -52926,6 +54822,8 @@ FF0C 0062
2E34 0062
2E32 0062
2E41 0062
+2E4C 0062
+2E4E 0062
055D 0062
060C 0062
060D 0062
@@ -52937,6 +54835,7 @@ FF0C 0062
A4FE 0062
A60D 0062
A6F5 0062
+16E97 0062
3001 0062
FE11 0062
FE51 0062
@@ -53053,6 +54952,7 @@ A4FF 0062
A60E 0062
A6F3 0062
16AF5 0062
+16E98 0062
1BC9F 0062
3002 0062
FE12 0062
@@ -53143,6 +55043,11 @@ A95F 0062
10B3D 0062
10B3E 0062
10B3F 0062
+10F55 0062
+10F56 0062
+10F57 0062
+10F58 0062
+10F59 0062
110BE 0062
110BF 0062
11140 0062
@@ -53151,6 +55056,8 @@ A95F 0062
111DF 0062
112A9 0062
1173E 0062
+11EF7 0062
+11EF8 0062
2055 0062
2056 0062
2058 0062
@@ -53360,6 +55267,7 @@ FD3F 0062
2E39 0062
00B6 0062
204B 0062
+2E4D 0062
2E3F 0062
0040 0062
FE6B 0062
@@ -53376,6 +55284,7 @@ FF0F 0062
005C 0062
FE68 0062
FF3C 0062
+2E4A 0062
0026 0062
FE60 0062
FF06 0062
@@ -53396,6 +55305,7 @@ FF05 0062
2E36 0062
2E37 0062
2E38 0062
+2E4B 0062
2022 0062
2023 0062
2027 0062
@@ -53478,7 +55388,9 @@ A8F9 0062
A8FA 0062
A8FC 0062
09FD 0062
+0A76 0062
0AF0 0062
+0C84 0062
0DF4 0062
0E4F 0062
0E5A 0062
@@ -53599,7 +55511,6 @@ AA5C 0062
11175 0062
111CD 0062
111C7 0062
-111C9 0062
111DB 0062
111DD 0062
1123A 0062
@@ -53634,12 +55545,15 @@ AA5C 0062
115D6 0062
115D7 0062
11643 0062
+1183B 0062
16B37 0062
16B38 0062
16B39 0062
16B3A 0062
16B3B 0062
16B44 0062
+16E99 0062
+16E9A 0062
1DA87 0062
1DA88 0062
1DA89 0062
@@ -53791,6 +55705,7 @@ AA5C 0062
0749 0062
074A 0062
07FA 0062
+08D3 0062
08D4 0062
08D5 0062
08D6 0062
@@ -53954,6 +55869,7 @@ FFFA 0062
FFFB 0062
102E0 0062
110BD 0062
+110CD 0062
11366 0062
11367 0062
11368 0062
@@ -54712,6 +56628,14 @@ FF22 003F
A67C 0062
A67D 0062
10AE5 0062
+10D24 0062
+10D25 0062
+10D26 0062
+10D27 0062
+10F48 0062
+10F49 0062
+10F4A 0062
+10F4C 0062
1BC9D 0062
0316 0062
0317 0062
@@ -54747,6 +56671,7 @@ A67D 0062
0362 0062
0742 0062
0746 0062
+07FD 0062
0859 0062
085A 0062
085B 0062
@@ -54771,6 +56696,13 @@ A67D 0062
FE27 0062
10A0D 0062
10AE6 0062
+10F46 0062
+10F47 0062
+10F4B 0062
+10F4D 0062
+10F4E 0062
+10F4F 0062
+10F50 0062
0336 0062
0337 0062
20D8 0062
@@ -54994,11 +56926,13 @@ A9B3 0062
111CA 0062
11236 0062
112E9 0062
+1133B 0062
1133C 0062
11446 0062
114C3 0062
115C0 0062
116B7 0062
+1183A 0062
11A33 0062
11D42 0062
0900 0062
@@ -55037,6 +56971,7 @@ A980 0062
0B02 0062
0B82 0062
0C02 0062
+0C04 0062
0C82 0062
0D00 0062
0D02 0062
@@ -55065,11 +57000,13 @@ A981 0062
115BD 0062
1163D 0062
116AB 0062
+11837 0062
11A38 0062
11A96 0062
11C3D 0062
11CB5 0062
11D40 0062
+11D95 0062
0903 0062
0983 0062
0A03 0062
@@ -55099,10 +57036,15 @@ A983 0062
115BE 0062
1163E 0062
116AC 0062
+11838 0062
11A39 0062
11A97 0062
11C3E 0062
11D41 0062
+11D96 0062
+09FE 0062
+111C9 0062
+1145E 0062
0A70 0062
0A71 0062
1B03 0062
@@ -63606,6 +65548,11 @@ FF31 0062
0239 0061
0239 0041
0239 0062
+A7AF 0021
+A7AF 003F
+A7AF 0061
+A7AF 0041
+A7AF 0062
A757 0021
A757 003F
A756 0021
@@ -66219,6 +68166,16 @@ AB4F 003F
AB4F 0061
AB4F 0041
AB4F 0062
+A7B9 0021
+A7B9 003F
+A7B8 0021
+A7B8 003F
+A7B9 0061
+A7B9 0041
+A7B8 0061
+A7B8 0041
+A7B9 0062
+A7B8 0062
1D7E 0021
1D7E 003F
1D7E 0061
@@ -77061,9 +79018,14 @@ A65E 0062
10375 0062
10D0 0021
10D0 003F
+1C90 0021
+1C90 003F
10D0 0061
10D0 0041
+1C90 0061
+1C90 0041
10D0 0062
+1C90 0062
2D00 0021
2D00 003F
10A0 0021
@@ -77076,9 +79038,14 @@ A65E 0062
10A0 0062
10D1 0021
10D1 003F
+1C91 0021
+1C91 003F
10D1 0061
10D1 0041
+1C91 0061
+1C91 0041
10D1 0062
+1C91 0062
2D01 0021
2D01 003F
10A1 0021
@@ -77091,9 +79058,14 @@ A65E 0062
10A1 0062
10D2 0021
10D2 003F
+1C92 0021
+1C92 003F
10D2 0061
10D2 0041
+1C92 0061
+1C92 0041
10D2 0062
+1C92 0062
2D02 0021
2D02 003F
10A2 0021
@@ -77106,9 +79078,14 @@ A65E 0062
10A2 0062
10D3 0021
10D3 003F
+1C93 0021
+1C93 003F
10D3 0061
10D3 0041
+1C93 0061
+1C93 0041
10D3 0062
+1C93 0062
2D03 0021
2D03 003F
10A3 0021
@@ -77121,9 +79098,14 @@ A65E 0062
10A3 0062
10D4 0021
10D4 003F
+1C94 0021
+1C94 003F
10D4 0061
10D4 0041
+1C94 0061
+1C94 0041
10D4 0062
+1C94 0062
2D04 0021
2D04 003F
10A4 0021
@@ -77136,9 +79118,14 @@ A65E 0062
10A4 0062
10D5 0021
10D5 003F
+1C95 0021
+1C95 003F
10D5 0061
10D5 0041
+1C95 0061
+1C95 0041
10D5 0062
+1C95 0062
2D05 0021
2D05 003F
10A5 0021
@@ -77151,9 +79138,14 @@ A65E 0062
10A5 0062
10D6 0021
10D6 003F
+1C96 0021
+1C96 003F
10D6 0061
10D6 0041
+1C96 0061
+1C96 0041
10D6 0062
+1C96 0062
2D06 0021
2D06 003F
10A6 0021
@@ -77166,9 +79158,14 @@ A65E 0062
10A6 0062
10F1 0021
10F1 003F
+1CB1 0021
+1CB1 003F
10F1 0061
10F1 0041
+1CB1 0061
+1CB1 0041
10F1 0062
+1CB1 0062
2D21 0021
2D21 003F
10C1 0021
@@ -77181,9 +79178,14 @@ A65E 0062
10C1 0062
10D7 0021
10D7 003F
+1C97 0021
+1C97 003F
10D7 0061
10D7 0041
+1C97 0061
+1C97 0041
10D7 0062
+1C97 0062
2D07 0021
2D07 003F
10A7 0021
@@ -77196,9 +79198,14 @@ A65E 0062
10A7 0062
10D8 0021
10D8 003F
+1C98 0021
+1C98 003F
10D8 0061
10D8 0041
+1C98 0061
+1C98 0041
10D8 0062
+1C98 0062
2D08 0021
2D08 003F
10A8 0021
@@ -77211,9 +79218,14 @@ A65E 0062
10A8 0062
10D9 0021
10D9 003F
+1C99 0021
+1C99 003F
10D9 0061
10D9 0041
+1C99 0061
+1C99 0041
10D9 0062
+1C99 0062
2D09 0021
2D09 003F
10A9 0021
@@ -77226,9 +79238,14 @@ A65E 0062
10A9 0062
10DA 0021
10DA 003F
+1C9A 0021
+1C9A 003F
10DA 0061
10DA 0041
+1C9A 0061
+1C9A 0041
10DA 0062
+1C9A 0062
2D0A 0021
2D0A 003F
10AA 0021
@@ -77241,9 +79258,14 @@ A65E 0062
10AA 0062
10DB 0021
10DB 003F
+1C9B 0021
+1C9B 003F
10DB 0061
10DB 0041
+1C9B 0061
+1C9B 0041
10DB 0062
+1C9B 0062
2D0B 0021
2D0B 003F
10AB 0021
@@ -77256,13 +79278,18 @@ A65E 0062
10AB 0062
10DC 0021
10DC 003F
+1C9C 0021
+1C9C 003F
10FC 0021
10FC 003F
10DC 0061
10DC 0041
+1C9C 0061
+1C9C 0041
10FC 0061
10FC 0041
10DC 0062
+1C9C 0062
10FC 0062
2D0C 0021
2D0C 003F
@@ -77276,9 +79303,14 @@ A65E 0062
10AC 0062
10F2 0021
10F2 003F
+1CB2 0021
+1CB2 003F
10F2 0061
10F2 0041
+1CB2 0061
+1CB2 0041
10F2 0062
+1CB2 0062
2D22 0021
2D22 003F
10C2 0021
@@ -77291,9 +79323,14 @@ A65E 0062
10C2 0062
10DD 0021
10DD 003F
+1C9D 0021
+1C9D 003F
10DD 0061
10DD 0041
+1C9D 0061
+1C9D 0041
10DD 0062
+1C9D 0062
2D0D 0021
2D0D 003F
10AD 0021
@@ -77306,9 +79343,14 @@ A65E 0062
10AD 0062
10DE 0021
10DE 003F
+1C9E 0021
+1C9E 003F
10DE 0061
10DE 0041
+1C9E 0061
+1C9E 0041
10DE 0062
+1C9E 0062
2D0E 0021
2D0E 003F
10AE 0021
@@ -77321,9 +79363,14 @@ A65E 0062
10AE 0062
10DF 0021
10DF 003F
+1C9F 0021
+1C9F 003F
10DF 0061
10DF 0041
+1C9F 0061
+1C9F 0041
10DF 0062
+1C9F 0062
2D0F 0021
2D0F 003F
10AF 0021
@@ -77336,9 +79383,14 @@ A65E 0062
10AF 0062
10E0 0021
10E0 003F
+1CA0 0021
+1CA0 003F
10E0 0061
10E0 0041
+1CA0 0061
+1CA0 0041
10E0 0062
+1CA0 0062
2D10 0021
2D10 003F
10B0 0021
@@ -77351,9 +79403,14 @@ A65E 0062
10B0 0062
10E1 0021
10E1 003F
+1CA1 0021
+1CA1 003F
10E1 0061
10E1 0041
+1CA1 0061
+1CA1 0041
10E1 0062
+1CA1 0062
2D11 0021
2D11 003F
10B1 0021
@@ -77366,9 +79423,14 @@ A65E 0062
10B1 0062
10E2 0021
10E2 003F
+1CA2 0021
+1CA2 003F
10E2 0061
10E2 0041
+1CA2 0061
+1CA2 0041
10E2 0062
+1CA2 0062
2D12 0021
2D12 003F
10B2 0021
@@ -77381,9 +79443,14 @@ A65E 0062
10B2 0062
10F3 0021
10F3 003F
+1CB3 0021
+1CB3 003F
10F3 0061
10F3 0041
+1CB3 0061
+1CB3 0041
10F3 0062
+1CB3 0062
2D23 0021
2D23 003F
10C3 0021
@@ -77396,9 +79463,14 @@ A65E 0062
10C3 0062
10E3 0021
10E3 003F
+1CA3 0021
+1CA3 003F
10E3 0061
10E3 0041
+1CA3 0061
+1CA3 0041
10E3 0062
+1CA3 0062
2D13 0021
2D13 003F
10B3 0021
@@ -77411,9 +79483,14 @@ A65E 0062
10B3 0062
10E4 0021
10E4 003F
+1CA4 0021
+1CA4 003F
10E4 0061
10E4 0041
+1CA4 0061
+1CA4 0041
10E4 0062
+1CA4 0062
2D14 0021
2D14 003F
10B4 0021
@@ -77426,9 +79503,14 @@ A65E 0062
10B4 0062
10E5 0021
10E5 003F
+1CA5 0021
+1CA5 003F
10E5 0061
10E5 0041
+1CA5 0061
+1CA5 0041
10E5 0062
+1CA5 0062
2D15 0021
2D15 003F
10B5 0021
@@ -77441,9 +79523,14 @@ A65E 0062
10B5 0062
10E6 0021
10E6 003F
+1CA6 0021
+1CA6 003F
10E6 0061
10E6 0041
+1CA6 0061
+1CA6 0041
10E6 0062
+1CA6 0062
2D16 0021
2D16 003F
10B6 0021
@@ -77456,9 +79543,14 @@ A65E 0062
10B6 0062
10E7 0021
10E7 003F
+1CA7 0021
+1CA7 003F
10E7 0061
10E7 0041
+1CA7 0061
+1CA7 0041
10E7 0062
+1CA7 0062
2D17 0021
2D17 003F
10B7 0021
@@ -77471,9 +79563,14 @@ A65E 0062
10B7 0062
10E8 0021
10E8 003F
+1CA8 0021
+1CA8 003F
10E8 0061
10E8 0041
+1CA8 0061
+1CA8 0041
10E8 0062
+1CA8 0062
2D18 0021
2D18 003F
10B8 0021
@@ -77486,9 +79583,14 @@ A65E 0062
10B8 0062
10E9 0021
10E9 003F
+1CA9 0021
+1CA9 003F
10E9 0061
10E9 0041
+1CA9 0061
+1CA9 0041
10E9 0062
+1CA9 0062
2D19 0021
2D19 003F
10B9 0021
@@ -77501,9 +79603,14 @@ A65E 0062
10B9 0062
10EA 0021
10EA 003F
+1CAA 0021
+1CAA 003F
10EA 0061
10EA 0041
+1CAA 0061
+1CAA 0041
10EA 0062
+1CAA 0062
2D1A 0021
2D1A 003F
10BA 0021
@@ -77516,9 +79623,14 @@ A65E 0062
10BA 0062
10EB 0021
10EB 003F
+1CAB 0021
+1CAB 003F
10EB 0061
10EB 0041
+1CAB 0061
+1CAB 0041
10EB 0062
+1CAB 0062
2D1B 0021
2D1B 003F
10BB 0021
@@ -77531,9 +79643,14 @@ A65E 0062
10BB 0062
10EC 0021
10EC 003F
+1CAC 0021
+1CAC 003F
10EC 0061
10EC 0041
+1CAC 0061
+1CAC 0041
10EC 0062
+1CAC 0062
2D1C 0021
2D1C 003F
10BC 0021
@@ -77546,9 +79663,14 @@ A65E 0062
10BC 0062
10ED 0021
10ED 003F
+1CAD 0021
+1CAD 003F
10ED 0061
10ED 0041
+1CAD 0061
+1CAD 0041
10ED 0062
+1CAD 0062
2D1D 0021
2D1D 003F
10BD 0021
@@ -77561,9 +79683,14 @@ A65E 0062
10BD 0062
10EE 0021
10EE 003F
+1CAE 0021
+1CAE 003F
10EE 0061
10EE 0041
+1CAE 0061
+1CAE 0041
10EE 0062
+1CAE 0062
2D1E 0021
2D1E 003F
10BE 0021
@@ -77576,9 +79703,14 @@ A65E 0062
10BE 0062
10F4 0021
10F4 003F
+1CB4 0021
+1CB4 003F
10F4 0061
10F4 0041
+1CB4 0061
+1CB4 0041
10F4 0062
+1CB4 0062
2D24 0021
2D24 003F
10C4 0021
@@ -77591,9 +79723,14 @@ A65E 0062
10C4 0062
10EF 0021
10EF 003F
+1CAF 0021
+1CAF 003F
10EF 0061
10EF 0041
+1CAF 0061
+1CAF 0041
10EF 0062
+1CAF 0062
2D1F 0021
2D1F 003F
10BF 0021
@@ -77606,9 +79743,14 @@ A65E 0062
10BF 0062
10F0 0021
10F0 003F
+1CB0 0021
+1CB0 003F
10F0 0061
10F0 0041
+1CB0 0061
+1CB0 0041
10F0 0062
+1CB0 0062
2D20 0021
2D20 003F
10C0 0021
@@ -77621,9 +79763,14 @@ A65E 0062
10C0 0062
10F5 0021
10F5 003F
+1CB5 0021
+1CB5 003F
10F5 0061
10F5 0041
+1CB5 0061
+1CB5 0041
10F5 0062
+1CB5 0062
2D25 0021
2D25 003F
10C5 0021
@@ -77636,14 +79783,24 @@ A65E 0062
10C5 0062
10F6 0021
10F6 003F
+1CB6 0021
+1CB6 003F
10F6 0061
10F6 0041
+1CB6 0061
+1CB6 0041
10F6 0062
+1CB6 0062
10F7 0021
10F7 003F
+1CB7 0021
+1CB7 003F
10F7 0061
10F7 0041
+1CB7 0061
+1CB7 0041
10F7 0062
+1CB7 0062
2D27 0021
2D27 003F
10C7 0021
@@ -77656,24 +79813,44 @@ A65E 0062
10C7 0062
10F8 0021
10F8 003F
+1CB8 0021
+1CB8 003F
10F8 0061
10F8 0041
+1CB8 0061
+1CB8 0041
10F8 0062
+1CB8 0062
10F9 0021
10F9 003F
+1CB9 0021
+1CB9 003F
10F9 0061
10F9 0041
+1CB9 0061
+1CB9 0041
10F9 0062
+1CB9 0062
10FA 0021
10FA 003F
+1CBA 0021
+1CBA 003F
10FA 0061
10FA 0041
+1CBA 0061
+1CBA 0041
10FA 0062
+1CBA 0062
10FD 0021
10FD 003F
+1CBD 0021
+1CBD 003F
10FD 0061
10FD 0041
+1CBD 0061
+1CBD 0041
10FD 0062
+1CBD 0062
2D2D 0021
2D2D 003F
10CD 0021
@@ -77686,14 +79863,24 @@ A65E 0062
10CD 0062
10FE 0021
10FE 003F
+1CBE 0021
+1CBE 003F
10FE 0061
10FE 0041
+1CBE 0061
+1CBE 0041
10FE 0062
+1CBE 0062
10FF 0021
10FF 003F
+1CBF 0021
+1CBF 003F
10FF 0061
10FF 0041
+1CBF 0061
+1CBF 0041
10FF 0062
+1CBF 0062
0561 0021
0561 003F
0531 0021
@@ -77704,6 +79891,11 @@ A65E 0062
0531 0041
0561 0062
0531 0062
+0560 0021
+0560 003F
+0560 0061
+0560 0041
+0560 0062
0562 0021
0562 003F
0532 0021
@@ -77929,6 +80121,11 @@ FB13 0062
0545 0041
0575 0062
0545 0062
+0588 0021
+0588 003F
+0588 0061
+0588 0041
+0588 0062
0576 0021
0576 003F
0546 0021
@@ -78321,6 +80518,11 @@ FB39 0041
05D9 0062
FB1D 0062
FB39 0062
+05EF 0021
+05EF 003F
+05EF 0061
+05EF 0041
+05EF 0062
05F2 0021
05F2 003F
05F2 0334 05B7
@@ -87911,6 +90113,11 @@ A8FD 0062
0910 0061
0910 0041
0910 0062
+A8FE 0021
+A8FE 003F
+A8FE 0061
+A8FE 0041
+A8FE 0062
0911 0021
0911 003F
0911 0061
@@ -88419,6 +90626,11 @@ A8FB 0062
0948 0061
0948 0041
0948 0062
+A8FF 0021
+A8FF 003F
+A8FF 0061
+A8FF 0041
+A8FF 0062
0949 0021
0949 003F
0949 0061
@@ -96952,6 +99164,343 @@ A8C4 0062
116B6 0061
116B6 0041
116B6 0062
+11800 0021
+11800 003F
+11800 0334
+11800 0061
+11800 0041
+11800 0062
+11801 0021
+11801 003F
+11801 0334
+11801 0061
+11801 0041
+11801 0062
+11802 0021
+11802 003F
+11802 0334
+11802 0061
+11802 0041
+11802 0062
+11803 0021
+11803 003F
+11803 0334
+11803 0061
+11803 0041
+11803 0062
+11804 0021
+11804 003F
+11804 0334
+11804 0061
+11804 0041
+11804 0062
+11805 0021
+11805 003F
+11805 0334
+11805 0061
+11805 0041
+11805 0062
+11806 0021
+11806 003F
+11806 0334
+11806 0061
+11806 0041
+11806 0062
+11807 0021
+11807 003F
+11807 0334
+11807 0061
+11807 0041
+11807 0062
+11808 0021
+11808 003F
+11808 0334
+11808 0061
+11808 0041
+11808 0062
+11809 0021
+11809 003F
+11809 0334
+11809 0061
+11809 0041
+11809 0062
+1180A 0021
+1180A 003F
+1180A 0334
+1180A 0061
+1180A 0041
+1180A 0062
+1180B 0021
+1180B 003F
+1180B 0334
+1180B 0061
+1180B 0041
+1180B 0062
+1180C 0021
+1180C 003F
+1180C 0334
+1180C 0061
+1180C 0041
+1180C 0062
+1180D 0021
+1180D 003F
+1180D 0334
+1180D 0061
+1180D 0041
+1180D 0062
+1180E 0021
+1180E 003F
+1180E 0334
+1180E 0061
+1180E 0041
+1180E 0062
+1180F 0021
+1180F 003F
+1180F 0334
+1180F 0061
+1180F 0041
+1180F 0062
+11810 0021
+11810 003F
+11810 0334
+11810 0061
+11810 0041
+11810 0062
+11811 0021
+11811 003F
+11811 0334
+11811 0061
+11811 0041
+11811 0062
+11812 0021
+11812 003F
+11812 0334
+11812 0061
+11812 0041
+11812 0062
+11813 0021
+11813 003F
+11813 0334
+11813 0061
+11813 0041
+11813 0062
+11814 0021
+11814 003F
+11814 0334
+11814 0061
+11814 0041
+11814 0062
+11815 0021
+11815 003F
+11815 0334
+11815 0061
+11815 0041
+11815 0062
+11816 0021
+11816 003F
+11816 0334
+11816 0061
+11816 0041
+11816 0062
+11817 0021
+11817 003F
+11817 0334
+11817 0061
+11817 0041
+11817 0062
+11818 0021
+11818 003F
+11818 0334
+11818 0061
+11818 0041
+11818 0062
+11819 0021
+11819 003F
+11819 0334
+11819 0061
+11819 0041
+11819 0062
+1181A 0021
+1181A 003F
+1181A 0334
+1181A 0061
+1181A 0041
+1181A 0062
+1181B 0021
+1181B 003F
+1181B 0334
+1181B 0061
+1181B 0041
+1181B 0062
+1181C 0021
+1181C 003F
+1181C 0334
+1181C 0061
+1181C 0041
+1181C 0062
+1181D 0021
+1181D 003F
+1181D 0334
+1181D 0061
+1181D 0041
+1181D 0062
+1181E 0021
+1181E 003F
+1181E 0334
+1181E 0061
+1181E 0041
+1181E 0062
+1181F 0021
+1181F 003F
+1181F 0334
+1181F 0061
+1181F 0041
+1181F 0062
+11820 0021
+11820 003F
+11820 0334
+11820 0061
+11820 0041
+11820 0062
+11821 0021
+11821 003F
+11821 0334
+11821 0061
+11821 0041
+11821 0062
+11822 0021
+11822 003F
+11822 0334
+11822 0061
+11822 0041
+11822 0062
+11823 0021
+11823 003F
+11823 0334
+11823 0061
+11823 0041
+11823 0062
+11824 0021
+11824 003F
+11824 0334
+11824 0061
+11824 0041
+11824 0062
+11825 0021
+11825 003F
+11825 0334
+11825 0061
+11825 0041
+11825 0062
+11826 0021
+11826 003F
+11826 0334
+11826 0061
+11826 0041
+11826 0062
+11827 0021
+11827 003F
+11827 0334
+11827 0061
+11827 0041
+11827 0062
+11828 0021
+11828 003F
+11828 0334
+11828 0061
+11828 0041
+11828 0062
+11829 0021
+11829 003F
+11829 0334
+11829 0061
+11829 0041
+11829 0062
+1182A 0021
+1182A 003F
+1182A 0334
+1182A 0061
+1182A 0041
+1182A 0062
+1182B 0021
+1182B 003F
+1182B 0334
+1182B 0061
+1182B 0041
+1182B 0062
+1182C 0021
+1182C 003F
+1182C 0334
+1182C 0061
+1182C 0041
+1182C 0062
+1182D 0021
+1182D 003F
+1182D 0334
+1182D 0061
+1182D 0041
+1182D 0062
+1182E 0021
+1182E 003F
+1182E 0334
+1182E 0061
+1182E 0041
+1182E 0062
+1182F 0021
+1182F 003F
+1182F 0334
+1182F 0061
+1182F 0041
+1182F 0062
+11830 0021
+11830 003F
+11830 0334
+11830 0061
+11830 0041
+11830 0062
+11831 0021
+11831 003F
+11831 0334
+11831 0061
+11831 0041
+11831 0062
+11832 0021
+11832 003F
+11832 0334
+11832 0061
+11832 0041
+11832 0062
+11833 0021
+11833 003F
+11833 0334
+11833 0061
+11833 0041
+11833 0062
+11834 0021
+11834 003F
+11834 0334
+11834 0061
+11834 0041
+11834 0062
+11835 0021
+11835 003F
+11835 0334
+11835 0061
+11835 0041
+11835 0062
+11836 0021
+11836 003F
+11836 0334
+11836 0061
+11836 0041
+11836 0062
+11839 0021
+11839 003F
+0334 11839
+11839 0334
+11839 0061
+11839 0041
+11839 0062
11700 0021
11700 003F
11700 0334
@@ -97003,9 +99552,15 @@ A8C4 0062
11708 0021
11708 003F
11708 0334
+1171A 0021
+1171A 003F
+1171A 0334
11708 0061
11708 0041
+1171A 0061
+1171A 0041
11708 0062
+1171A 0062
11709 0021
11709 003F
11709 0334
@@ -97567,6 +100122,313 @@ A8C4 0062
11D45 0061
11D45 0041
11D45 0062
+11D98 0021
+11D98 003F
+11D98 0334
+11D98 0061
+11D98 0041
+11D98 0062
+11D60 0021
+11D60 003F
+11D60 0334
+11D60 0061
+11D60 0041
+11D60 0062
+11D61 0021
+11D61 003F
+11D61 0334
+11D61 0061
+11D61 0041
+11D61 0062
+11D62 0021
+11D62 003F
+11D62 0334
+11D62 0061
+11D62 0041
+11D62 0062
+11D63 0021
+11D63 003F
+11D63 0334
+11D63 0061
+11D63 0041
+11D63 0062
+11D64 0021
+11D64 003F
+11D64 0334
+11D64 0061
+11D64 0041
+11D64 0062
+11D65 0021
+11D65 003F
+11D65 0334
+11D65 0061
+11D65 0041
+11D65 0062
+11D67 0021
+11D67 003F
+11D67 0334
+11D67 0061
+11D67 0041
+11D67 0062
+11D68 0021
+11D68 003F
+11D68 0334
+11D68 0061
+11D68 0041
+11D68 0062
+11D6A 0021
+11D6A 003F
+11D6A 0334
+11D6A 0061
+11D6A 0041
+11D6A 0062
+11D6B 0021
+11D6B 003F
+11D6B 0334
+11D6B 0061
+11D6B 0041
+11D6B 0062
+11D6C 0021
+11D6C 003F
+11D6C 0334
+11D6C 0061
+11D6C 0041
+11D6C 0062
+11D6D 0021
+11D6D 003F
+11D6D 0334
+11D6D 0061
+11D6D 0041
+11D6D 0062
+11D6E 0021
+11D6E 003F
+11D6E 0334
+11D6E 0061
+11D6E 0041
+11D6E 0062
+11D6F 0021
+11D6F 003F
+11D6F 0334
+11D6F 0061
+11D6F 0041
+11D6F 0062
+11D70 0021
+11D70 003F
+11D70 0334
+11D70 0061
+11D70 0041
+11D70 0062
+11D71 0021
+11D71 003F
+11D71 0334
+11D71 0061
+11D71 0041
+11D71 0062
+11D72 0021
+11D72 003F
+11D72 0334
+11D72 0061
+11D72 0041
+11D72 0062
+11D73 0021
+11D73 003F
+11D73 0334
+11D73 0061
+11D73 0041
+11D73 0062
+11D74 0021
+11D74 003F
+11D74 0334
+11D74 0061
+11D74 0041
+11D74 0062
+11D75 0021
+11D75 003F
+11D75 0334
+11D75 0061
+11D75 0041
+11D75 0062
+11D76 0021
+11D76 003F
+11D76 0334
+11D76 0061
+11D76 0041
+11D76 0062
+11D77 0021
+11D77 003F
+11D77 0334
+11D77 0061
+11D77 0041
+11D77 0062
+11D78 0021
+11D78 003F
+11D78 0334
+11D78 0061
+11D78 0041
+11D78 0062
+11D79 0021
+11D79 003F
+11D79 0334
+11D79 0061
+11D79 0041
+11D79 0062
+11D7A 0021
+11D7A 003F
+11D7A 0334
+11D7A 0061
+11D7A 0041
+11D7A 0062
+11D7B 0021
+11D7B 003F
+11D7B 0334
+11D7B 0061
+11D7B 0041
+11D7B 0062
+11D7C 0021
+11D7C 003F
+11D7C 0334
+11D7C 0061
+11D7C 0041
+11D7C 0062
+11D7D 0021
+11D7D 003F
+11D7D 0334
+11D7D 0061
+11D7D 0041
+11D7D 0062
+11D7E 0021
+11D7E 003F
+11D7E 0334
+11D7E 0061
+11D7E 0041
+11D7E 0062
+11D7F 0021
+11D7F 003F
+11D7F 0334
+11D7F 0061
+11D7F 0041
+11D7F 0062
+11D80 0021
+11D80 003F
+11D80 0334
+11D80 0061
+11D80 0041
+11D80 0062
+11D81 0021
+11D81 003F
+11D81 0334
+11D81 0061
+11D81 0041
+11D81 0062
+11D82 0021
+11D82 003F
+11D82 0334
+11D82 0061
+11D82 0041
+11D82 0062
+11D83 0021
+11D83 003F
+11D83 0334
+11D83 0061
+11D83 0041
+11D83 0062
+11D84 0021
+11D84 003F
+11D84 0334
+11D84 0061
+11D84 0041
+11D84 0062
+11D85 0021
+11D85 003F
+11D85 0334
+11D85 0061
+11D85 0041
+11D85 0062
+11D86 0021
+11D86 003F
+11D86 0334
+11D86 0061
+11D86 0041
+11D86 0062
+11D87 0021
+11D87 003F
+11D87 0334
+11D87 0061
+11D87 0041
+11D87 0062
+11D88 0021
+11D88 003F
+11D88 0334
+11D88 0061
+11D88 0041
+11D88 0062
+11D89 0021
+11D89 003F
+11D89 0334
+11D89 0061
+11D89 0041
+11D89 0062
+11D8A 0021
+11D8A 003F
+11D8A 0334
+11D8A 0061
+11D8A 0041
+11D8A 0062
+11D8B 0021
+11D8B 003F
+11D8B 0334
+11D8B 0061
+11D8B 0041
+11D8B 0062
+11D8C 0021
+11D8C 003F
+11D8C 0334
+11D8C 0061
+11D8C 0041
+11D8C 0062
+11D8D 0021
+11D8D 003F
+11D8D 0334
+11D8D 0061
+11D8D 0041
+11D8D 0062
+11D8E 0021
+11D8E 003F
+11D8E 0334
+11D8E 0061
+11D8E 0041
+11D8E 0062
+11D90 0021
+11D90 003F
+11D90 0334
+11D90 0061
+11D90 0041
+11D90 0062
+11D91 0021
+11D91 003F
+11D91 0334
+11D91 0061
+11D91 0041
+11D91 0062
+11D93 0021
+11D93 003F
+11D93 0334
+11D93 0061
+11D93 0041
+11D93 0062
+11D94 0021
+11D94 003F
+11D94 0334
+11D94 0061
+11D94 0041
+11D94 0062
+11D97 0021
+11D97 003F
+0334 11D97
+11D97 0334
+11D97 0061
+11D97 0041
+11D97 0062
1B83 0021
1B83 003F
1BBA 0021
@@ -98290,6 +101152,12 @@ A8C4 0062
10A10 0061
10A10 0041
10A10 0062
+10A32 0021
+10A32 003F
+10A32 0334
+10A32 0061
+10A32 0041
+10A32 0062
10A11 0021
10A11 003F
10A11 0334
@@ -98338,12 +101206,24 @@ A8C4 0062
10A1A 0061
10A1A 0041
10A1A 0062
+10A34 0021
+10A34 003F
+10A34 0334
+10A34 0061
+10A34 0041
+10A34 0062
10A1B 0021
10A1B 003F
10A1B 0334
10A1B 0061
10A1B 0041
10A1B 0062
+10A33 0021
+10A33 003F
+10A33 0334
+10A33 0061
+10A33 0041
+10A33 0062
10A1C 0021
10A1C 003F
10A1C 0334
@@ -98446,6 +101326,12 @@ A8C4 0062
10A2C 0061
10A2C 0041
10A2C 0062
+10A35 0021
+10A35 003F
+10A35 0334
+10A35 0061
+10A35 0041
+10A35 0062
10A2D 0021
10A2D 003F
10A2D 0334
@@ -98476,18 +101362,6 @@ A8C4 0062
10A31 0061
10A31 0041
10A31 0062
-10A32 0021
-10A32 003F
-10A32 0334
-10A32 0061
-10A32 0041
-10A32 0062
-10A33 0021
-10A33 003F
-10A33 0334
-10A33 0061
-10A33 0041
-10A33 0062
10A3F 0021
10A3F 003F
0334 10A3F
@@ -106361,6 +109235,12 @@ AADC 0062
11A99 0061
11A99 0041
11A99 0062
+11A9D 0021
+11A9D 003F
+11A9D 0334
+11A9D 0061
+11A9D 0041
+11A9D 0062
11C72 0021
11C72 003F
11C72 0334
@@ -108098,6 +110978,144 @@ A873 0062
1A1B 0061
1A1B 0041
1A1B 0062
+11EE0 0021
+11EE0 003F
+11EE0 0334
+11EE0 0061
+11EE0 0041
+11EE0 0062
+11EE1 0021
+11EE1 003F
+11EE1 0334
+11EE1 0061
+11EE1 0041
+11EE1 0062
+11EE2 0021
+11EE2 003F
+11EE2 0334
+11EE2 0061
+11EE2 0041
+11EE2 0062
+11EE3 0021
+11EE3 003F
+11EE3 0334
+11EE3 0061
+11EE3 0041
+11EE3 0062
+11EE4 0021
+11EE4 003F
+11EE4 0334
+11EE4 0061
+11EE4 0041
+11EE4 0062
+11EE5 0021
+11EE5 003F
+11EE5 0334
+11EE5 0061
+11EE5 0041
+11EE5 0062
+11EE6 0021
+11EE6 003F
+11EE6 0334
+11EE6 0061
+11EE6 0041
+11EE6 0062
+11EE7 0021
+11EE7 003F
+11EE7 0334
+11EE7 0061
+11EE7 0041
+11EE7 0062
+11EE8 0021
+11EE8 003F
+11EE8 0334
+11EE8 0061
+11EE8 0041
+11EE8 0062
+11EE9 0021
+11EE9 003F
+11EE9 0334
+11EE9 0061
+11EE9 0041
+11EE9 0062
+11EEA 0021
+11EEA 003F
+11EEA 0334
+11EEA 0061
+11EEA 0041
+11EEA 0062
+11EEB 0021
+11EEB 003F
+11EEB 0334
+11EEB 0061
+11EEB 0041
+11EEB 0062
+11EEC 0021
+11EEC 003F
+11EEC 0334
+11EEC 0061
+11EEC 0041
+11EEC 0062
+11EED 0021
+11EED 003F
+11EED 0334
+11EED 0061
+11EED 0041
+11EED 0062
+11EEE 0021
+11EEE 003F
+11EEE 0334
+11EEE 0061
+11EEE 0041
+11EEE 0062
+11EEF 0021
+11EEF 003F
+11EEF 0334
+11EEF 0061
+11EEF 0041
+11EEF 0062
+11EF0 0021
+11EF0 003F
+11EF0 0334
+11EF0 0061
+11EF0 0041
+11EF0 0062
+11EF1 0021
+11EF1 003F
+11EF1 0334
+11EF1 0061
+11EF1 0041
+11EF1 0062
+11EF2 0021
+11EF2 003F
+11EF2 0334
+11EF2 0061
+11EF2 0041
+11EF2 0062
+11EF3 0021
+11EF3 003F
+11EF3 0334
+11EF3 0061
+11EF3 0041
+11EF3 0062
+11EF4 0021
+11EF4 003F
+11EF4 0334
+11EF4 0061
+11EF4 0041
+11EF4 0062
+11EF5 0021
+11EF5 003F
+11EF5 0334
+11EF5 0061
+11EF5 0041
+11EF5 0062
+11EF6 0021
+11EF6 003F
+11EF6 0334
+11EF6 0061
+11EF6 0041
+11EF6 0062
1BC0 0021
1BC0 003F
1BC1 0021
@@ -109603,6 +112621,222 @@ AA76 003F
AA76 0061
AA76 0041
AA76 0062
+10D00 0021
+10D00 003F
+10D00 0334
+10D00 0061
+10D00 0041
+10D00 0062
+10D1D 0021
+10D1D 003F
+10D1D 0334
+10D1D 0061
+10D1D 0041
+10D1D 0062
+10D1E 0021
+10D1E 003F
+10D1E 0334
+10D1E 0061
+10D1E 0041
+10D1E 0062
+10D1F 0021
+10D1F 003F
+10D1F 0334
+10D1F 0061
+10D1F 0041
+10D1F 0062
+10D20 0021
+10D20 003F
+10D20 0334
+10D20 0061
+10D20 0041
+10D20 0062
+10D21 0021
+10D21 003F
+10D21 0334
+10D21 0061
+10D21 0041
+10D21 0062
+10D01 0021
+10D01 003F
+10D01 0334
+10D01 0061
+10D01 0041
+10D01 0062
+10D02 0021
+10D02 003F
+10D02 0334
+10D02 0061
+10D02 0041
+10D02 0062
+10D03 0021
+10D03 003F
+10D03 0334
+10D03 0061
+10D03 0041
+10D03 0062
+10D04 0021
+10D04 003F
+10D04 0334
+10D04 0061
+10D04 0041
+10D04 0062
+10D05 0021
+10D05 003F
+10D05 0334
+10D05 0061
+10D05 0041
+10D05 0062
+10D06 0021
+10D06 003F
+10D06 0334
+10D06 0061
+10D06 0041
+10D06 0062
+10D07 0021
+10D07 003F
+10D07 0334
+10D07 0061
+10D07 0041
+10D07 0062
+10D08 0021
+10D08 003F
+10D08 0334
+10D08 0061
+10D08 0041
+10D08 0062
+10D09 0021
+10D09 003F
+10D09 0334
+10D09 0061
+10D09 0041
+10D09 0062
+10D0A 0021
+10D0A 003F
+10D0A 0334
+10D0A 0061
+10D0A 0041
+10D0A 0062
+10D0B 0021
+10D0B 003F
+10D0B 0334
+10D0B 0061
+10D0B 0041
+10D0B 0062
+10D0C 0021
+10D0C 003F
+10D0C 0334
+10D0C 0061
+10D0C 0041
+10D0C 0062
+10D0D 0021
+10D0D 003F
+10D0D 0334
+10D0D 0061
+10D0D 0041
+10D0D 0062
+10D0E 0021
+10D0E 003F
+10D0E 0334
+10D0E 0061
+10D0E 0041
+10D0E 0062
+10D0F 0021
+10D0F 003F
+10D0F 0334
+10D0F 0061
+10D0F 0041
+10D0F 0062
+10D10 0021
+10D10 003F
+10D10 0334
+10D10 0061
+10D10 0041
+10D10 0062
+10D11 0021
+10D11 003F
+10D11 0334
+10D11 0061
+10D11 0041
+10D11 0062
+10D12 0021
+10D12 003F
+10D12 0334
+10D12 0061
+10D12 0041
+10D12 0062
+10D13 0021
+10D13 003F
+10D13 0334
+10D13 0061
+10D13 0041
+10D13 0062
+10D14 0021
+10D14 003F
+10D14 0334
+10D14 0061
+10D14 0041
+10D14 0062
+10D15 0021
+10D15 003F
+10D15 0334
+10D15 0061
+10D15 0041
+10D15 0062
+10D16 0021
+10D16 003F
+10D16 0334
+10D16 0061
+10D16 0041
+10D16 0062
+10D17 0021
+10D17 003F
+10D17 0334
+10D17 0061
+10D17 0041
+10D17 0062
+10D18 0021
+10D18 003F
+10D18 0334
+10D18 0061
+10D18 0041
+10D18 0062
+10D19 0021
+10D19 003F
+10D19 0334
+10D19 0061
+10D19 0041
+10D19 0062
+10D1A 0021
+10D1A 003F
+10D1A 0334
+10D1A 0061
+10D1A 0041
+10D1A 0062
+10D1B 0021
+10D1B 003F
+10D1B 0334
+10D1B 0061
+10D1B 0041
+10D1B 0062
+10D1C 0021
+10D1C 003F
+10D1C 0334
+10D1C 0061
+10D1C 0041
+10D1C 0062
+10D22 0021
+10D22 003F
+10D22 0334
+10D22 0061
+10D22 0041
+10D22 0062
+10D23 0021
+10D23 003F
+10D23 0334
+10D23 0061
+10D23 0041
+10D23 0062
11103 0021
11103 003F
11103 0334
@@ -109819,6 +113053,12 @@ AA76 0062
11126 0061
11126 0041
11126 0062
+11144 0021
+11144 003F
+11144 0334
+11144 0061
+11144 0041
+11144 0062
11127 0021
11127 003F
11127 0334
@@ -109909,6 +113149,18 @@ AA76 0062
11132 0001 11127 0061
11132 0591 11127 0061
11132 1D165 11127 0061
+11145 0021
+11145 003F
+11145 0334
+11145 0061
+11145 0041
+11145 0062
+11146 0021
+11146 003F
+11146 0334
+11146 0061
+11146 0041
+11146 0062
11133 0021
11133 003F
0334 11133
@@ -114062,6 +117314,11 @@ A9C0 0062
1871 0061
1871 0041
1871 0062
+1878 0021
+1878 003F
+1878 0061
+1878 0041
+1878 0062
185C 0021
185C 003F
185C 0061
@@ -127607,6 +130864,390 @@ A6EF 0062
1E8C4 0061
1E8C4 0041
1E8C4 0062
+16E60 0021
+16E60 003F
+16E40 0021
+16E40 003F
+16E60 0334
+16E40 0334
+16E60 0061
+16E60 0041
+16E40 0061
+16E40 0041
+16E60 0062
+16E40 0062
+16E61 0021
+16E61 003F
+16E41 0021
+16E41 003F
+16E61 0334
+16E41 0334
+16E61 0061
+16E61 0041
+16E41 0061
+16E41 0041
+16E61 0062
+16E41 0062
+16E62 0021
+16E62 003F
+16E42 0021
+16E42 003F
+16E62 0334
+16E42 0334
+16E62 0061
+16E62 0041
+16E42 0061
+16E42 0041
+16E62 0062
+16E42 0062
+16E63 0021
+16E63 003F
+16E43 0021
+16E43 003F
+16E63 0334
+16E43 0334
+16E63 0061
+16E63 0041
+16E43 0061
+16E43 0041
+16E63 0062
+16E43 0062
+16E64 0021
+16E64 003F
+16E44 0021
+16E44 003F
+16E64 0334
+16E44 0334
+16E64 0061
+16E64 0041
+16E44 0061
+16E44 0041
+16E64 0062
+16E44 0062
+16E65 0021
+16E65 003F
+16E45 0021
+16E45 003F
+16E65 0334
+16E45 0334
+16E65 0061
+16E65 0041
+16E45 0061
+16E45 0041
+16E65 0062
+16E45 0062
+16E66 0021
+16E66 003F
+16E46 0021
+16E46 003F
+16E66 0334
+16E46 0334
+16E66 0061
+16E66 0041
+16E46 0061
+16E46 0041
+16E66 0062
+16E46 0062
+16E67 0021
+16E67 003F
+16E47 0021
+16E47 003F
+16E67 0334
+16E47 0334
+16E67 0061
+16E67 0041
+16E47 0061
+16E47 0041
+16E67 0062
+16E47 0062
+16E68 0021
+16E68 003F
+16E48 0021
+16E48 003F
+16E68 0334
+16E48 0334
+16E68 0061
+16E68 0041
+16E48 0061
+16E48 0041
+16E68 0062
+16E48 0062
+16E69 0021
+16E69 003F
+16E49 0021
+16E49 003F
+16E69 0334
+16E49 0334
+16E69 0061
+16E69 0041
+16E49 0061
+16E49 0041
+16E69 0062
+16E49 0062
+16E6A 0021
+16E6A 003F
+16E4A 0021
+16E4A 003F
+16E6A 0334
+16E4A 0334
+16E6A 0061
+16E6A 0041
+16E4A 0061
+16E4A 0041
+16E6A 0062
+16E4A 0062
+16E6B 0021
+16E6B 003F
+16E4B 0021
+16E4B 003F
+16E6B 0334
+16E4B 0334
+16E6B 0061
+16E6B 0041
+16E4B 0061
+16E4B 0041
+16E6B 0062
+16E4B 0062
+16E6C 0021
+16E6C 003F
+16E4C 0021
+16E4C 003F
+16E6C 0334
+16E4C 0334
+16E6C 0061
+16E6C 0041
+16E4C 0061
+16E4C 0041
+16E6C 0062
+16E4C 0062
+16E6D 0021
+16E6D 003F
+16E4D 0021
+16E4D 003F
+16E6D 0334
+16E4D 0334
+16E6D 0061
+16E6D 0041
+16E4D 0061
+16E4D 0041
+16E6D 0062
+16E4D 0062
+16E6E 0021
+16E6E 003F
+16E4E 0021
+16E4E 003F
+16E6E 0334
+16E4E 0334
+16E6E 0061
+16E6E 0041
+16E4E 0061
+16E4E 0041
+16E6E 0062
+16E4E 0062
+16E6F 0021
+16E6F 003F
+16E4F 0021
+16E4F 003F
+16E6F 0334
+16E4F 0334
+16E6F 0061
+16E6F 0041
+16E4F 0061
+16E4F 0041
+16E6F 0062
+16E4F 0062
+16E70 0021
+16E70 003F
+16E50 0021
+16E50 003F
+16E70 0334
+16E50 0334
+16E70 0061
+16E70 0041
+16E50 0061
+16E50 0041
+16E70 0062
+16E50 0062
+16E71 0021
+16E71 003F
+16E51 0021
+16E51 003F
+16E71 0334
+16E51 0334
+16E71 0061
+16E71 0041
+16E51 0061
+16E51 0041
+16E71 0062
+16E51 0062
+16E72 0021
+16E72 003F
+16E52 0021
+16E52 003F
+16E72 0334
+16E52 0334
+16E72 0061
+16E72 0041
+16E52 0061
+16E52 0041
+16E72 0062
+16E52 0062
+16E73 0021
+16E73 003F
+16E53 0021
+16E53 003F
+16E73 0334
+16E53 0334
+16E73 0061
+16E73 0041
+16E53 0061
+16E53 0041
+16E73 0062
+16E53 0062
+16E74 0021
+16E74 003F
+16E54 0021
+16E54 003F
+16E74 0334
+16E54 0334
+16E74 0061
+16E74 0041
+16E54 0061
+16E54 0041
+16E74 0062
+16E54 0062
+16E75 0021
+16E75 003F
+16E55 0021
+16E55 003F
+16E75 0334
+16E55 0334
+16E75 0061
+16E75 0041
+16E55 0061
+16E55 0041
+16E75 0062
+16E55 0062
+16E76 0021
+16E76 003F
+16E56 0021
+16E56 003F
+16E76 0334
+16E56 0334
+16E76 0061
+16E76 0041
+16E56 0061
+16E56 0041
+16E76 0062
+16E56 0062
+16E77 0021
+16E77 003F
+16E57 0021
+16E57 003F
+16E77 0334
+16E57 0334
+16E77 0061
+16E77 0041
+16E57 0061
+16E57 0041
+16E77 0062
+16E57 0062
+16E78 0021
+16E78 003F
+16E58 0021
+16E58 003F
+16E78 0334
+16E58 0334
+16E78 0061
+16E78 0041
+16E58 0061
+16E58 0041
+16E78 0062
+16E58 0062
+16E79 0021
+16E79 003F
+16E59 0021
+16E59 003F
+16E79 0334
+16E59 0334
+16E79 0061
+16E79 0041
+16E59 0061
+16E59 0041
+16E79 0062
+16E59 0062
+16E7A 0021
+16E7A 003F
+16E5A 0021
+16E5A 003F
+16E7A 0334
+16E5A 0334
+16E7A 0061
+16E7A 0041
+16E5A 0061
+16E5A 0041
+16E7A 0062
+16E5A 0062
+16E7B 0021
+16E7B 003F
+16E5B 0021
+16E5B 003F
+16E7B 0334
+16E5B 0334
+16E7B 0061
+16E7B 0041
+16E5B 0061
+16E5B 0041
+16E7B 0062
+16E5B 0062
+16E7C 0021
+16E7C 003F
+16E5C 0021
+16E5C 003F
+16E7C 0334
+16E5C 0334
+16E7C 0061
+16E7C 0041
+16E5C 0061
+16E5C 0041
+16E7C 0062
+16E5C 0062
+16E7D 0021
+16E7D 003F
+16E5D 0021
+16E5D 003F
+16E7D 0334
+16E5D 0334
+16E7D 0061
+16E7D 0041
+16E5D 0061
+16E5D 0041
+16E7D 0062
+16E5D 0062
+16E7E 0021
+16E7E 003F
+16E5E 0021
+16E5E 003F
+16E7E 0334
+16E5E 0334
+16E7E 0061
+16E7E 0041
+16E5E 0061
+16E5E 0041
+16E7E 0062
+16E5E 0062
+16E7F 0021
+16E7F 003F
+16E5F 0021
+16E5F 003F
+16E7F 0334
+16E5F 0334
+16E7F 0061
+16E7F 0041
+16E5F 0061
+16E5F 0041
+16E7F 0062
+16E5F 0062
1E922 0021
1E922 003F
1E900 0021
@@ -134833,6 +138474,11 @@ FF9D 0062
3107 0061
3107 0041
3107 0062
+31AC 0021
+31AC 003F
+31AC 0061
+31AC 0041
+31AC 0062
3108 0021
3108 003F
3108 0061
@@ -134863,6 +138509,11 @@ FF9D 0062
310B 0061
310B 0041
310B 0062
+312F 0021
+312F 003F
+312F 0061
+312F 0041
+312F 0062
310C 0021
310C 003F
310C 0061
@@ -135103,11 +138754,6 @@ FF9D 0062
31B1 0061
31B1 0041
31B1 0062
-31AC 0021
-31AC 003F
-31AC 0061
-31AC 0041
-31AC 0062
3126 0021
3126 003F
3126 0061
@@ -152416,6 +156062,318 @@ A4F7 0062
10AE4 0061
10AE4 0041
10AE4 0062
+10F00 0021
+10F00 003F
+10F01 0021
+10F01 003F
+10F00 0334
+10F01 0334
+10F00 0061
+10F00 0041
+10F01 0061
+10F01 0041
+10F00 0062
+10F01 0062
+10F02 0021
+10F02 003F
+10F03 0021
+10F03 003F
+10F02 0334
+10F03 0334
+10F02 0061
+10F02 0041
+10F03 0061
+10F03 0041
+10F02 0062
+10F03 0062
+10F04 0021
+10F04 003F
+10F04 0334
+10F04 0061
+10F04 0041
+10F04 0062
+10F05 0021
+10F05 003F
+10F06 0021
+10F06 003F
+10F05 0334
+10F06 0334
+10F05 0061
+10F05 0041
+10F06 0061
+10F06 0041
+10F05 0062
+10F06 0062
+10F07 0021
+10F07 003F
+10F07 0334
+10F07 0061
+10F07 0041
+10F07 0062
+10F08 0021
+10F08 003F
+10F08 0334
+10F08 0061
+10F08 0041
+10F08 0062
+10F09 0021
+10F09 003F
+10F09 0334
+10F09 0061
+10F09 0041
+10F09 0062
+10F0A 0021
+10F0A 003F
+10F0A 0334
+10F0A 0061
+10F0A 0041
+10F0A 0062
+10F0B 0021
+10F0B 003F
+10F0B 0334
+10F0B 0061
+10F0B 0041
+10F0B 0062
+10F0C 0021
+10F0C 003F
+10F0C 0334
+10F0C 0061
+10F0C 0041
+10F0C 0062
+10F0D 0021
+10F0D 003F
+10F0D 0334
+10F0D 0061
+10F0D 0041
+10F0D 0062
+10F0E 0021
+10F0E 003F
+10F0F 0021
+10F0F 003F
+10F0E 0334
+10F0F 0334
+10F10 0021
+10F10 003F
+10F10 0334
+10F0E 0061
+10F0E 0041
+10F0F 0061
+10F0F 0041
+10F10 0061
+10F10 0041
+10F0E 0062
+10F0F 0062
+10F10 0062
+10F11 0021
+10F11 003F
+10F11 0334
+10F11 0061
+10F11 0041
+10F11 0062
+10F12 0021
+10F12 003F
+10F12 0334
+10F13 0021
+10F13 003F
+10F13 0334
+10F12 0061
+10F12 0041
+10F13 0061
+10F13 0041
+10F12 0062
+10F13 0062
+10F27 0021
+10F27 003F
+10F27 0334
+10F27 0061
+10F27 0041
+10F27 0062
+10F14 0021
+10F14 003F
+10F14 0334
+10F14 0061
+10F14 0041
+10F14 0062
+10F15 0021
+10F15 003F
+10F16 0021
+10F16 003F
+10F15 0334
+10F16 0334
+10F17 0021
+10F17 003F
+10F17 0334
+10F15 0061
+10F15 0041
+10F16 0061
+10F16 0041
+10F17 0061
+10F17 0041
+10F15 0062
+10F16 0062
+10F17 0062
+10F18 0021
+10F18 003F
+10F18 0334
+10F18 0061
+10F18 0041
+10F18 0062
+10F19 0021
+10F19 003F
+10F19 0334
+10F19 0061
+10F19 0041
+10F19 0062
+10F1A 0021
+10F1A 003F
+10F1B 0021
+10F1B 003F
+10F1A 0334
+10F1B 0334
+10F1C 0021
+10F1C 003F
+10F1C 0334
+10F1A 0061
+10F1A 0041
+10F1B 0061
+10F1B 0041
+10F1C 0061
+10F1C 0041
+10F1A 0062
+10F1B 0062
+10F1C 0062
+10F30 0021
+10F30 003F
+10F30 0334
+10F30 0061
+10F30 0041
+10F30 0062
+10F31 0021
+10F31 003F
+10F31 0334
+10F31 0061
+10F31 0041
+10F31 0062
+10F32 0021
+10F32 003F
+10F32 0334
+10F32 0061
+10F32 0041
+10F32 0062
+10F33 0021
+10F33 003F
+10F33 0334
+10F33 0061
+10F33 0041
+10F33 0062
+10F34 0021
+10F34 003F
+10F34 0334
+10F34 0061
+10F34 0041
+10F34 0062
+10F35 0021
+10F35 003F
+10F35 0334
+10F35 0061
+10F35 0041
+10F35 0062
+10F36 0021
+10F36 003F
+10F36 0334
+10F36 0061
+10F36 0041
+10F36 0062
+10F37 0021
+10F37 003F
+10F37 0334
+10F37 0061
+10F37 0041
+10F37 0062
+10F38 0021
+10F38 003F
+10F38 0334
+10F38 0061
+10F38 0041
+10F38 0062
+10F39 0021
+10F39 003F
+10F39 0334
+10F39 0061
+10F39 0041
+10F39 0062
+10F3A 0021
+10F3A 003F
+10F3A 0334
+10F3A 0061
+10F3A 0041
+10F3A 0062
+10F3B 0021
+10F3B 003F
+10F3B 0334
+10F3B 0061
+10F3B 0041
+10F3B 0062
+10F3C 0021
+10F3C 003F
+10F3C 0334
+10F3C 0061
+10F3C 0041
+10F3C 0062
+10F3D 0021
+10F3D 003F
+10F3D 0334
+10F3D 0061
+10F3D 0041
+10F3D 0062
+10F3E 0021
+10F3E 003F
+10F3E 0334
+10F3E 0061
+10F3E 0041
+10F3E 0062
+10F3F 0021
+10F3F 003F
+10F3F 0334
+10F3F 0061
+10F3F 0041
+10F3F 0062
+10F40 0021
+10F40 003F
+10F40 0334
+10F40 0061
+10F40 0041
+10F40 0062
+10F41 0021
+10F41 003F
+10F41 0334
+10F45 0021
+10F45 003F
+10F45 0334
+10F41 0061
+10F41 0041
+10F45 0061
+10F45 0041
+10F41 0062
+10F45 0062
+10F42 0021
+10F42 003F
+10F42 0334
+10F42 0061
+10F42 0041
+10F42 0062
+10F43 0021
+10F43 003F
+10F43 0334
+10F43 0061
+10F43 0041
+10F43 0062
+10F44 0021
+10F44 003F
+10F44 0334
+10F44 0061
+10F44 0041
+10F44 0062
10380 0021
10380 003F
10380 0334
@@ -176575,11 +180533,6 @@ FACE 0062
4DB6 0061
4DB6 0041
4DB6 0062
-9FEB 0021
-9FEB 003F
-9FEB 0061
-9FEB 0041
-9FEB 0062
D800 0021
D800 003F
D800 0061
diff --git a/Build/source/libs/icu/icu-src/source/test/testdata/GraphemeBreakTest.txt b/Build/source/libs/icu/icu-src/source/test/testdata/GraphemeBreakTest.txt
index d7d8f90de07..6847953c237 100644
--- a/Build/source/libs/icu/icu-src/source/test/testdata/GraphemeBreakTest.txt
+++ b/Build/source/libs/icu/icu-src/source/test/testdata/GraphemeBreakTest.txt
@@ -1,6 +1,6 @@
-# GraphemeBreakTest-10.0.0.txt
-# Date: 2017-04-14, 05:40:29 GMT
-# © 2017 Unicode®, Inc.
+# GraphemeBreakTest-11.0.0.txt
+# Date: 2018-03-18, 13:30:33 GMT
+# © 2018 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# For terms of use, see http://www.unicode.org/terms_of_use.html
#
@@ -23,828 +23,678 @@
# These samples may be extended or changed in the future.
#
÷ 0020 ÷ 0020 ÷ # ÷ [0.2] SPACE (Other) ÷ [999.0] SPACE (Other) ÷ [0.3]
-÷ 0020 × 0308 ÷ 0020 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ 0020 × 0308 ÷ 0020 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] SPACE (Other) ÷ [0.3]
÷ 0020 ÷ 000D ÷ # ÷ [0.2] SPACE (Other) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
-÷ 0020 × 0308 ÷ 000D ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0020 × 0308 ÷ 000D ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 0020 ÷ 000A ÷ # ÷ [0.2] SPACE (Other) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
-÷ 0020 × 0308 ÷ 000A ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0020 × 0308 ÷ 000A ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 0020 ÷ 0001 ÷ # ÷ [0.2] SPACE (Other) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ 0020 × 0308 ÷ 0001 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ 0020 × 0300 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
-÷ 0020 × 0308 × 0300 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
+÷ 0020 × 0308 ÷ 0001 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 0020 × 034F ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING GRAPHEME JOINER (Extend) ÷ [0.3]
+÷ 0020 × 0308 × 034F ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] COMBINING GRAPHEME JOINER (Extend) ÷ [0.3]
+÷ 0020 ÷ 1F1E6 ÷ # ÷ [0.2] SPACE (Other) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
+÷ 0020 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 0020 ÷ 0600 ÷ # ÷ [0.2] SPACE (Other) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
-÷ 0020 × 0308 ÷ 0600 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
+÷ 0020 × 0308 ÷ 0600 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
÷ 0020 × 0903 ÷ # ÷ [0.2] SPACE (Other) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
-÷ 0020 × 0308 × 0903 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 0020 × 0308 × 0903 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 0020 ÷ 1100 ÷ # ÷ [0.2] SPACE (Other) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
-÷ 0020 × 0308 ÷ 1100 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 0020 × 0308 ÷ 1100 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 0020 ÷ 1160 ÷ # ÷ [0.2] SPACE (Other) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
-÷ 0020 × 0308 ÷ 1160 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 0020 × 0308 ÷ 1160 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 0020 ÷ 11A8 ÷ # ÷ [0.2] SPACE (Other) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
-÷ 0020 × 0308 ÷ 11A8 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 0020 × 0308 ÷ 11A8 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 0020 ÷ AC00 ÷ # ÷ [0.2] SPACE (Other) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
-÷ 0020 × 0308 ÷ AC00 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 0020 × 0308 ÷ AC00 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 0020 ÷ AC01 ÷ # ÷ [0.2] SPACE (Other) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ 0020 × 0308 ÷ AC01 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ 0020 ÷ 1F1E6 ÷ # ÷ [0.2] SPACE (Other) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 0020 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 0020 ÷ 261D ÷ # ÷ [0.2] SPACE (Other) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0020 × 0308 ÷ 261D ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0020 ÷ 1F3FB ÷ # ÷ [0.2] SPACE (Other) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0020 × 0308 ÷ 1F3FB ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0020 × 200D ÷ # ÷ [0.2] SPACE (Other) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ 0020 × 0308 × 200D ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ 0020 ÷ 2640 ÷ # ÷ [0.2] SPACE (Other) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0020 × 0308 ÷ 2640 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0020 ÷ 1F466 ÷ # ÷ [0.2] SPACE (Other) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 0020 × 0308 ÷ 1F466 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ 0020 × 0308 ÷ AC01 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ 0020 ÷ 231A ÷ # ÷ [0.2] SPACE (Other) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0020 × 0308 ÷ 231A ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0020 × 0300 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [0.3]
+÷ 0020 × 0308 × 0300 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [0.3]
+÷ 0020 × 200D ÷ # ÷ [0.2] SPACE (Other) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [0.3]
+÷ 0020 × 0308 × 200D ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [0.3]
÷ 0020 ÷ 0378 ÷ # ÷ [0.2] SPACE (Other) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
-÷ 0020 × 0308 ÷ 0378 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
+÷ 0020 × 0308 ÷ 0378 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
÷ 0020 ÷ D800 ÷ # ÷ [0.2] SPACE (Other) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
-÷ 0020 × 0308 ÷ D800 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
+÷ 0020 × 0308 ÷ D800 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
÷ 000D ÷ 0020 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] SPACE (Other) ÷ [0.3]
-÷ 000D ÷ 0308 ÷ 0020 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 0020 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] SPACE (Other) ÷ [0.3]
÷ 000D ÷ 000D ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
-÷ 000D ÷ 0308 ÷ 000D ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 000D ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 000D × 000A ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) × [3.0] <LINE FEED (LF)> (LF) ÷ [0.3]
-÷ 000D ÷ 0308 ÷ 000A ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 000A ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 000D ÷ 0001 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ 000D ÷ 0308 ÷ 0001 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ 000D ÷ 0300 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
-÷ 000D ÷ 0308 × 0300 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 0001 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 000D ÷ 034F ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING GRAPHEME JOINER (Extend) ÷ [0.3]
+÷ 000D ÷ 0308 × 034F ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] COMBINING GRAPHEME JOINER (Extend) ÷ [0.3]
+÷ 000D ÷ 1F1E6 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 1F1E6 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 000D ÷ 0600 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
-÷ 000D ÷ 0308 ÷ 0600 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 0600 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
÷ 000D ÷ 0903 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
-÷ 000D ÷ 0308 × 0903 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 000D ÷ 0308 × 0903 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 000D ÷ 1100 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
-÷ 000D ÷ 0308 ÷ 1100 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 1100 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 000D ÷ 1160 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
-÷ 000D ÷ 0308 ÷ 1160 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 1160 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 000D ÷ 11A8 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
-÷ 000D ÷ 0308 ÷ 11A8 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 11A8 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 000D ÷ AC00 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
-÷ 000D ÷ 0308 ÷ AC00 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ AC00 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 000D ÷ AC01 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ 000D ÷ 0308 ÷ AC01 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ 000D ÷ 1F1E6 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 000D ÷ 0308 ÷ 1F1E6 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 000D ÷ 261D ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 000D ÷ 0308 ÷ 261D ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 000D ÷ 1F3FB ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 000D ÷ 0308 ÷ 1F3FB ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 000D ÷ 200D ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ 000D ÷ 0308 × 200D ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ 000D ÷ 2640 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 000D ÷ 0308 ÷ 2640 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 000D ÷ 1F466 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] BOY (EBG) ÷ [0.3]
-÷ 000D ÷ 0308 ÷ 1F466 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ AC01 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ 000D ÷ 231A ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] WATCH (ExtPict) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 231A ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 000D ÷ 0300 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [0.3]
+÷ 000D ÷ 0308 × 0300 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [0.3]
+÷ 000D ÷ 200D ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [0.3]
+÷ 000D ÷ 0308 × 200D ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [0.3]
÷ 000D ÷ 0378 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] <reserved-0378> (Other) ÷ [0.3]
-÷ 000D ÷ 0308 ÷ 0378 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 0378 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
÷ 000D ÷ D800 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] <surrogate-D800> (Control) ÷ [0.3]
-÷ 000D ÷ 0308 ÷ D800 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ D800 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
÷ 000A ÷ 0020 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] SPACE (Other) ÷ [0.3]
-÷ 000A ÷ 0308 ÷ 0020 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 0020 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] SPACE (Other) ÷ [0.3]
÷ 000A ÷ 000D ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
-÷ 000A ÷ 0308 ÷ 000D ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 000D ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 000A ÷ 000A ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] <LINE FEED (LF)> (LF) ÷ [0.3]
-÷ 000A ÷ 0308 ÷ 000A ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 000A ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 000A ÷ 0001 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ 000A ÷ 0308 ÷ 0001 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ 000A ÷ 0300 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
-÷ 000A ÷ 0308 × 0300 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 0001 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 000A ÷ 034F ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING GRAPHEME JOINER (Extend) ÷ [0.3]
+÷ 000A ÷ 0308 × 034F ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] COMBINING GRAPHEME JOINER (Extend) ÷ [0.3]
+÷ 000A ÷ 1F1E6 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 1F1E6 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 000A ÷ 0600 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
-÷ 000A ÷ 0308 ÷ 0600 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 0600 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
÷ 000A ÷ 0903 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
-÷ 000A ÷ 0308 × 0903 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 000A ÷ 0308 × 0903 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 000A ÷ 1100 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
-÷ 000A ÷ 0308 ÷ 1100 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 1100 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 000A ÷ 1160 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
-÷ 000A ÷ 0308 ÷ 1160 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 1160 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 000A ÷ 11A8 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
-÷ 000A ÷ 0308 ÷ 11A8 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 11A8 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 000A ÷ AC00 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
-÷ 000A ÷ 0308 ÷ AC00 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ AC00 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 000A ÷ AC01 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ 000A ÷ 0308 ÷ AC01 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ 000A ÷ 1F1E6 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 000A ÷ 0308 ÷ 1F1E6 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 000A ÷ 261D ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 000A ÷ 0308 ÷ 261D ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 000A ÷ 1F3FB ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 000A ÷ 0308 ÷ 1F3FB ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 000A ÷ 200D ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ 000A ÷ 0308 × 200D ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ 000A ÷ 2640 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 000A ÷ 0308 ÷ 2640 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 000A ÷ 1F466 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] BOY (EBG) ÷ [0.3]
-÷ 000A ÷ 0308 ÷ 1F466 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ AC01 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ 000A ÷ 231A ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] WATCH (ExtPict) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 231A ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 000A ÷ 0300 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [0.3]
+÷ 000A ÷ 0308 × 0300 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [0.3]
+÷ 000A ÷ 200D ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [0.3]
+÷ 000A ÷ 0308 × 200D ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [0.3]
÷ 000A ÷ 0378 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] <reserved-0378> (Other) ÷ [0.3]
-÷ 000A ÷ 0308 ÷ 0378 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 0378 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
÷ 000A ÷ D800 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] <surrogate-D800> (Control) ÷ [0.3]
-÷ 000A ÷ 0308 ÷ D800 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ D800 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
÷ 0001 ÷ 0020 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] SPACE (Other) ÷ [0.3]
-÷ 0001 ÷ 0308 ÷ 0020 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ 0001 ÷ 0308 ÷ 0020 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] SPACE (Other) ÷ [0.3]
÷ 0001 ÷ 000D ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
-÷ 0001 ÷ 0308 ÷ 000D ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0001 ÷ 0308 ÷ 000D ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 0001 ÷ 000A ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] <LINE FEED (LF)> (LF) ÷ [0.3]
-÷ 0001 ÷ 0308 ÷ 000A ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0001 ÷ 0308 ÷ 000A ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 0001 ÷ 0001 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ 0001 ÷ 0308 ÷ 0001 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ 0001 ÷ 0300 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
-÷ 0001 ÷ 0308 × 0300 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
+÷ 0001 ÷ 0308 ÷ 0001 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 0001 ÷ 034F ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING GRAPHEME JOINER (Extend) ÷ [0.3]
+÷ 0001 ÷ 0308 × 034F ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] COMBINING GRAPHEME JOINER (Extend) ÷ [0.3]
+÷ 0001 ÷ 1F1E6 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
+÷ 0001 ÷ 0308 ÷ 1F1E6 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 0001 ÷ 0600 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
-÷ 0001 ÷ 0308 ÷ 0600 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
+÷ 0001 ÷ 0308 ÷ 0600 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
÷ 0001 ÷ 0903 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
-÷ 0001 ÷ 0308 × 0903 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 0001 ÷ 0308 × 0903 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 0001 ÷ 1100 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
-÷ 0001 ÷ 0308 ÷ 1100 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 0001 ÷ 0308 ÷ 1100 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 0001 ÷ 1160 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
-÷ 0001 ÷ 0308 ÷ 1160 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 0001 ÷ 0308 ÷ 1160 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 0001 ÷ 11A8 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
-÷ 0001 ÷ 0308 ÷ 11A8 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 0001 ÷ 0308 ÷ 11A8 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 0001 ÷ AC00 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
-÷ 0001 ÷ 0308 ÷ AC00 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 0001 ÷ 0308 ÷ AC00 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 0001 ÷ AC01 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ 0001 ÷ 0308 ÷ AC01 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ 0001 ÷ 1F1E6 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 0001 ÷ 0308 ÷ 1F1E6 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 0001 ÷ 261D ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0001 ÷ 0308 ÷ 261D ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0001 ÷ 1F3FB ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0001 ÷ 0308 ÷ 1F3FB ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0001 ÷ 200D ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ 0001 ÷ 0308 × 200D ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ 0001 ÷ 2640 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0001 ÷ 0308 ÷ 2640 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0001 ÷ 1F466 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] BOY (EBG) ÷ [0.3]
-÷ 0001 ÷ 0308 ÷ 1F466 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ 0001 ÷ 0308 ÷ AC01 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ 0001 ÷ 231A ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0001 ÷ 0308 ÷ 231A ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0001 ÷ 0300 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [0.3]
+÷ 0001 ÷ 0308 × 0300 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [0.3]
+÷ 0001 ÷ 200D ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [0.3]
+÷ 0001 ÷ 0308 × 200D ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [0.3]
÷ 0001 ÷ 0378 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] <reserved-0378> (Other) ÷ [0.3]
-÷ 0001 ÷ 0308 ÷ 0378 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
+÷ 0001 ÷ 0308 ÷ 0378 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
÷ 0001 ÷ D800 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] <surrogate-D800> (Control) ÷ [0.3]
-÷ 0001 ÷ 0308 ÷ D800 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
-÷ 0300 ÷ 0020 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3]
-÷ 0300 × 0308 ÷ 0020 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3]
-÷ 0300 ÷ 000D ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
-÷ 0300 × 0308 ÷ 000D ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
-÷ 0300 ÷ 000A ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
-÷ 0300 × 0308 ÷ 000A ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
-÷ 0300 ÷ 0001 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ 0300 × 0308 ÷ 0001 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ 0300 × 0300 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
-÷ 0300 × 0308 × 0300 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
-÷ 0300 ÷ 0600 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
-÷ 0300 × 0308 ÷ 0600 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
-÷ 0300 × 0903 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
-÷ 0300 × 0308 × 0903 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
-÷ 0300 ÷ 1100 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
-÷ 0300 × 0308 ÷ 1100 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
-÷ 0300 ÷ 1160 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
-÷ 0300 × 0308 ÷ 1160 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
-÷ 0300 ÷ 11A8 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
-÷ 0300 × 0308 ÷ 11A8 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
-÷ 0300 ÷ AC00 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
-÷ 0300 × 0308 ÷ AC00 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
-÷ 0300 ÷ AC01 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ 0300 × 0308 ÷ AC01 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ 0300 ÷ 1F1E6 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 0300 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 0300 ÷ 261D ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0300 × 0308 ÷ 261D ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0300 ÷ 1F3FB ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0300 × 0308 ÷ 1F3FB ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0300 × 200D ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ 0300 × 0308 × 200D ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ 0300 ÷ 2640 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0300 × 0308 ÷ 2640 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0300 ÷ 1F466 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 0300 × 0308 ÷ 1F466 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 0300 ÷ 0378 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
-÷ 0300 × 0308 ÷ 0378 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
-÷ 0300 ÷ D800 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
-÷ 0300 × 0308 ÷ D800 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
+÷ 0001 ÷ 0308 ÷ D800 ÷ # ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
+÷ 034F ÷ 0020 ÷ # ÷ [0.2] COMBINING GRAPHEME JOINER (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ 034F × 0308 ÷ 0020 ÷ # ÷ [0.2] COMBINING GRAPHEME JOINER (Extend) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ 034F ÷ 000D ÷ # ÷ [0.2] COMBINING GRAPHEME JOINER (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 034F × 0308 ÷ 000D ÷ # ÷ [0.2] COMBINING GRAPHEME JOINER (Extend) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 034F ÷ 000A ÷ # ÷ [0.2] COMBINING GRAPHEME JOINER (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 034F × 0308 ÷ 000A ÷ # ÷ [0.2] COMBINING GRAPHEME JOINER (Extend) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 034F ÷ 0001 ÷ # ÷ [0.2] COMBINING GRAPHEME JOINER (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 034F × 0308 ÷ 0001 ÷ # ÷ [0.2] COMBINING GRAPHEME JOINER (Extend) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 034F × 034F ÷ # ÷ [0.2] COMBINING GRAPHEME JOINER (Extend) × [9.0] COMBINING GRAPHEME JOINER (Extend) ÷ [0.3]
+÷ 034F × 0308 × 034F ÷ # ÷ [0.2] COMBINING GRAPHEME JOINER (Extend) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] COMBINING GRAPHEME JOINER (Extend) ÷ [0.3]
+÷ 034F ÷ 1F1E6 ÷ # ÷ [0.2] COMBINING GRAPHEME JOINER (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
+÷ 034F × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] COMBINING GRAPHEME JOINER (Extend) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
+÷ 034F ÷ 0600 ÷ # ÷ [0.2] COMBINING GRAPHEME JOINER (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
+÷ 034F × 0308 ÷ 0600 ÷ # ÷ [0.2] COMBINING GRAPHEME JOINER (Extend) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
+÷ 034F × 0903 ÷ # ÷ [0.2] COMBINING GRAPHEME JOINER (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 034F × 0308 × 0903 ÷ # ÷ [0.2] COMBINING GRAPHEME JOINER (Extend) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 034F ÷ 1100 ÷ # ÷ [0.2] COMBINING GRAPHEME JOINER (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 034F × 0308 ÷ 1100 ÷ # ÷ [0.2] COMBINING GRAPHEME JOINER (Extend) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 034F ÷ 1160 ÷ # ÷ [0.2] COMBINING GRAPHEME JOINER (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 034F × 0308 ÷ 1160 ÷ # ÷ [0.2] COMBINING GRAPHEME JOINER (Extend) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 034F ÷ 11A8 ÷ # ÷ [0.2] COMBINING GRAPHEME JOINER (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 034F × 0308 ÷ 11A8 ÷ # ÷ [0.2] COMBINING GRAPHEME JOINER (Extend) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 034F ÷ AC00 ÷ # ÷ [0.2] COMBINING GRAPHEME JOINER (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 034F × 0308 ÷ AC00 ÷ # ÷ [0.2] COMBINING GRAPHEME JOINER (Extend) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 034F ÷ AC01 ÷ # ÷ [0.2] COMBINING GRAPHEME JOINER (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ 034F × 0308 ÷ AC01 ÷ # ÷ [0.2] COMBINING GRAPHEME JOINER (Extend) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ 034F ÷ 231A ÷ # ÷ [0.2] COMBINING GRAPHEME JOINER (Extend) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 034F × 0308 ÷ 231A ÷ # ÷ [0.2] COMBINING GRAPHEME JOINER (Extend) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 034F × 0300 ÷ # ÷ [0.2] COMBINING GRAPHEME JOINER (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [0.3]
+÷ 034F × 0308 × 0300 ÷ # ÷ [0.2] COMBINING GRAPHEME JOINER (Extend) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [0.3]
+÷ 034F × 200D ÷ # ÷ [0.2] COMBINING GRAPHEME JOINER (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [0.3]
+÷ 034F × 0308 × 200D ÷ # ÷ [0.2] COMBINING GRAPHEME JOINER (Extend) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [0.3]
+÷ 034F ÷ 0378 ÷ # ÷ [0.2] COMBINING GRAPHEME JOINER (Extend) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
+÷ 034F × 0308 ÷ 0378 ÷ # ÷ [0.2] COMBINING GRAPHEME JOINER (Extend) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
+÷ 034F ÷ D800 ÷ # ÷ [0.2] COMBINING GRAPHEME JOINER (Extend) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
+÷ 034F × 0308 ÷ D800 ÷ # ÷ [0.2] COMBINING GRAPHEME JOINER (Extend) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
+÷ 1F1E6 ÷ 0020 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ 1F1E6 × 0308 ÷ 0020 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ 1F1E6 ÷ 000D ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 1F1E6 × 0308 ÷ 000D ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 1F1E6 ÷ 000A ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 1F1E6 × 0308 ÷ 000A ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 1F1E6 ÷ 0001 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 1F1E6 × 0308 ÷ 0001 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 1F1E6 × 034F ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING GRAPHEME JOINER (Extend) ÷ [0.3]
+÷ 1F1E6 × 0308 × 034F ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] COMBINING GRAPHEME JOINER (Extend) ÷ [0.3]
+÷ 1F1E6 × 1F1E6 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [12.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
+÷ 1F1E6 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
+÷ 1F1E6 ÷ 0600 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
+÷ 1F1E6 × 0308 ÷ 0600 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
+÷ 1F1E6 × 0903 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 1F1E6 × 0308 × 0903 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 1F1E6 ÷ 1100 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 1F1E6 × 0308 ÷ 1100 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 1F1E6 ÷ 1160 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 1F1E6 × 0308 ÷ 1160 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 1F1E6 ÷ 11A8 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 1F1E6 × 0308 ÷ 11A8 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 1F1E6 ÷ AC00 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 1F1E6 × 0308 ÷ AC00 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 1F1E6 ÷ AC01 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ 1F1E6 × 0308 ÷ AC01 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ 1F1E6 ÷ 231A ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 1F1E6 × 0308 ÷ 231A ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 1F1E6 × 0300 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [0.3]
+÷ 1F1E6 × 0308 × 0300 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [0.3]
+÷ 1F1E6 × 200D ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [0.3]
+÷ 1F1E6 × 0308 × 200D ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [0.3]
+÷ 1F1E6 ÷ 0378 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
+÷ 1F1E6 × 0308 ÷ 0378 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
+÷ 1F1E6 ÷ D800 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
+÷ 1F1E6 × 0308 ÷ D800 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
÷ 0600 × 0020 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.2] SPACE (Other) ÷ [0.3]
-÷ 0600 × 0308 ÷ 0020 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ 0600 × 0308 ÷ 0020 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] SPACE (Other) ÷ [0.3]
÷ 0600 ÷ 000D ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
-÷ 0600 × 0308 ÷ 000D ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0600 × 0308 ÷ 000D ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 0600 ÷ 000A ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
-÷ 0600 × 0308 ÷ 000A ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0600 × 0308 ÷ 000A ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 0600 ÷ 0001 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ 0600 × 0308 ÷ 0001 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ 0600 × 0300 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
-÷ 0600 × 0308 × 0300 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
+÷ 0600 × 0308 ÷ 0001 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 0600 × 034F ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING GRAPHEME JOINER (Extend) ÷ [0.3]
+÷ 0600 × 0308 × 034F ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] COMBINING GRAPHEME JOINER (Extend) ÷ [0.3]
+÷ 0600 × 1F1E6 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
+÷ 0600 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 0600 × 0600 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.2] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
-÷ 0600 × 0308 ÷ 0600 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
+÷ 0600 × 0308 ÷ 0600 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
÷ 0600 × 0903 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
-÷ 0600 × 0308 × 0903 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 0600 × 0308 × 0903 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 0600 × 1100 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.2] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
-÷ 0600 × 0308 ÷ 1100 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 0600 × 0308 ÷ 1100 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 0600 × 1160 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.2] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
-÷ 0600 × 0308 ÷ 1160 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 0600 × 0308 ÷ 1160 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 0600 × 11A8 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.2] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
-÷ 0600 × 0308 ÷ 11A8 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 0600 × 0308 ÷ 11A8 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 0600 × AC00 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.2] HANGUL SYLLABLE GA (LV) ÷ [0.3]
-÷ 0600 × 0308 ÷ AC00 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 0600 × 0308 ÷ AC00 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 0600 × AC01 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.2] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ 0600 × 0308 ÷ AC01 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ 0600 × 1F1E6 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 0600 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 0600 × 261D ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.2] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0600 × 0308 ÷ 261D ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0600 × 1F3FB ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0600 × 0308 ÷ 1F3FB ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0600 × 200D ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ 0600 × 0308 × 200D ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ 0600 × 2640 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.2] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0600 × 0308 ÷ 2640 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0600 × 1F466 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.2] BOY (EBG) ÷ [0.3]
-÷ 0600 × 0308 ÷ 1F466 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ 0600 × 0308 ÷ AC01 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ 0600 × 231A ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.2] WATCH (ExtPict) ÷ [0.3]
+÷ 0600 × 0308 ÷ 231A ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0600 × 0300 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [0.3]
+÷ 0600 × 0308 × 0300 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [0.3]
+÷ 0600 × 200D ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [0.3]
+÷ 0600 × 0308 × 200D ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [0.3]
÷ 0600 × 0378 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.2] <reserved-0378> (Other) ÷ [0.3]
-÷ 0600 × 0308 ÷ 0378 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
+÷ 0600 × 0308 ÷ 0378 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
÷ 0600 ÷ D800 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
-÷ 0600 × 0308 ÷ D800 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
+÷ 0600 × 0308 ÷ D800 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
÷ 0903 ÷ 0020 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] SPACE (Other) ÷ [0.3]
-÷ 0903 × 0308 ÷ 0020 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ 0903 × 0308 ÷ 0020 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] SPACE (Other) ÷ [0.3]
÷ 0903 ÷ 000D ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
-÷ 0903 × 0308 ÷ 000D ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0903 × 0308 ÷ 000D ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 0903 ÷ 000A ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
-÷ 0903 × 0308 ÷ 000A ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0903 × 0308 ÷ 000A ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 0903 ÷ 0001 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ 0903 × 0308 ÷ 0001 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ 0903 × 0300 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
-÷ 0903 × 0308 × 0300 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
+÷ 0903 × 0308 ÷ 0001 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 0903 × 034F ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING GRAPHEME JOINER (Extend) ÷ [0.3]
+÷ 0903 × 0308 × 034F ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] COMBINING GRAPHEME JOINER (Extend) ÷ [0.3]
+÷ 0903 ÷ 1F1E6 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
+÷ 0903 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 0903 ÷ 0600 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
-÷ 0903 × 0308 ÷ 0600 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
+÷ 0903 × 0308 ÷ 0600 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
÷ 0903 × 0903 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
-÷ 0903 × 0308 × 0903 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 0903 × 0308 × 0903 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 0903 ÷ 1100 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
-÷ 0903 × 0308 ÷ 1100 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 0903 × 0308 ÷ 1100 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 0903 ÷ 1160 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
-÷ 0903 × 0308 ÷ 1160 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 0903 × 0308 ÷ 1160 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 0903 ÷ 11A8 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
-÷ 0903 × 0308 ÷ 11A8 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 0903 × 0308 ÷ 11A8 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 0903 ÷ AC00 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
-÷ 0903 × 0308 ÷ AC00 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 0903 × 0308 ÷ AC00 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 0903 ÷ AC01 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ 0903 × 0308 ÷ AC01 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ 0903 ÷ 1F1E6 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 0903 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 0903 ÷ 261D ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0903 × 0308 ÷ 261D ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0903 ÷ 1F3FB ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0903 × 0308 ÷ 1F3FB ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0903 × 200D ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ 0903 × 0308 × 200D ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ 0903 ÷ 2640 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0903 × 0308 ÷ 2640 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0903 ÷ 1F466 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 0903 × 0308 ÷ 1F466 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ 0903 × 0308 ÷ AC01 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ 0903 ÷ 231A ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0903 × 0308 ÷ 231A ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0903 × 0300 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [0.3]
+÷ 0903 × 0308 × 0300 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [0.3]
+÷ 0903 × 200D ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [0.3]
+÷ 0903 × 0308 × 200D ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [0.3]
÷ 0903 ÷ 0378 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
-÷ 0903 × 0308 ÷ 0378 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
+÷ 0903 × 0308 ÷ 0378 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
÷ 0903 ÷ D800 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
-÷ 0903 × 0308 ÷ D800 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
+÷ 0903 × 0308 ÷ D800 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
÷ 1100 ÷ 0020 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [999.0] SPACE (Other) ÷ [0.3]
-÷ 1100 × 0308 ÷ 0020 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ 1100 × 0308 ÷ 0020 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] SPACE (Other) ÷ [0.3]
÷ 1100 ÷ 000D ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
-÷ 1100 × 0308 ÷ 000D ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 1100 × 0308 ÷ 000D ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 1100 ÷ 000A ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
-÷ 1100 × 0308 ÷ 000A ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 1100 × 0308 ÷ 000A ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 1100 ÷ 0001 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ 1100 × 0308 ÷ 0001 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ 1100 × 0300 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
-÷ 1100 × 0308 × 0300 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
+÷ 1100 × 0308 ÷ 0001 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 1100 × 034F ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING GRAPHEME JOINER (Extend) ÷ [0.3]
+÷ 1100 × 0308 × 034F ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] COMBINING GRAPHEME JOINER (Extend) ÷ [0.3]
+÷ 1100 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
+÷ 1100 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 1100 ÷ 0600 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
-÷ 1100 × 0308 ÷ 0600 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
+÷ 1100 × 0308 ÷ 0600 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
÷ 1100 × 0903 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
-÷ 1100 × 0308 × 0903 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 1100 × 0308 × 0903 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 1100 × 1100 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [6.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
-÷ 1100 × 0308 ÷ 1100 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 1100 × 0308 ÷ 1100 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 1100 × 1160 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [6.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
-÷ 1100 × 0308 ÷ 1160 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 1100 × 0308 ÷ 1160 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 1100 ÷ 11A8 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
-÷ 1100 × 0308 ÷ 11A8 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 1100 × 0308 ÷ 11A8 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 1100 × AC00 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [6.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
-÷ 1100 × 0308 ÷ AC00 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 1100 × 0308 ÷ AC00 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 1100 × AC01 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [6.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ 1100 × 0308 ÷ AC01 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ 1100 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 1100 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 1100 ÷ 261D ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 1100 × 0308 ÷ 261D ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 1100 ÷ 1F3FB ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 1100 × 0308 ÷ 1F3FB ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 1100 × 200D ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ 1100 × 0308 × 200D ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ 1100 ÷ 2640 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 1100 × 0308 ÷ 2640 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 1100 ÷ 1F466 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 1100 × 0308 ÷ 1F466 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ 1100 × 0308 ÷ AC01 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ 1100 ÷ 231A ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 1100 × 0308 ÷ 231A ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 1100 × 0300 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [0.3]
+÷ 1100 × 0308 × 0300 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [0.3]
+÷ 1100 × 200D ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [0.3]
+÷ 1100 × 0308 × 200D ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [0.3]
÷ 1100 ÷ 0378 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
-÷ 1100 × 0308 ÷ 0378 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
+÷ 1100 × 0308 ÷ 0378 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
÷ 1100 ÷ D800 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
-÷ 1100 × 0308 ÷ D800 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
+÷ 1100 × 0308 ÷ D800 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
÷ 1160 ÷ 0020 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] SPACE (Other) ÷ [0.3]
-÷ 1160 × 0308 ÷ 0020 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ 1160 × 0308 ÷ 0020 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] SPACE (Other) ÷ [0.3]
÷ 1160 ÷ 000D ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
-÷ 1160 × 0308 ÷ 000D ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 1160 × 0308 ÷ 000D ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 1160 ÷ 000A ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
-÷ 1160 × 0308 ÷ 000A ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 1160 × 0308 ÷ 000A ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 1160 ÷ 0001 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ 1160 × 0308 ÷ 0001 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ 1160 × 0300 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
-÷ 1160 × 0308 × 0300 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
+÷ 1160 × 0308 ÷ 0001 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 1160 × 034F ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING GRAPHEME JOINER (Extend) ÷ [0.3]
+÷ 1160 × 0308 × 034F ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] COMBINING GRAPHEME JOINER (Extend) ÷ [0.3]
+÷ 1160 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
+÷ 1160 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 1160 ÷ 0600 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
-÷ 1160 × 0308 ÷ 0600 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
+÷ 1160 × 0308 ÷ 0600 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
÷ 1160 × 0903 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
-÷ 1160 × 0308 × 0903 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 1160 × 0308 × 0903 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 1160 ÷ 1100 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
-÷ 1160 × 0308 ÷ 1100 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 1160 × 0308 ÷ 1100 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 1160 × 1160 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [7.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
-÷ 1160 × 0308 ÷ 1160 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 1160 × 0308 ÷ 1160 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 1160 × 11A8 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [7.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
-÷ 1160 × 0308 ÷ 11A8 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 1160 × 0308 ÷ 11A8 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 1160 ÷ AC00 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
-÷ 1160 × 0308 ÷ AC00 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 1160 × 0308 ÷ AC00 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 1160 ÷ AC01 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ 1160 × 0308 ÷ AC01 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ 1160 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 1160 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 1160 ÷ 261D ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 1160 × 0308 ÷ 261D ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 1160 ÷ 1F3FB ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 1160 × 0308 ÷ 1F3FB ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 1160 × 200D ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ 1160 × 0308 × 200D ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ 1160 ÷ 2640 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 1160 × 0308 ÷ 2640 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 1160 ÷ 1F466 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 1160 × 0308 ÷ 1F466 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ 1160 × 0308 ÷ AC01 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ 1160 ÷ 231A ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 1160 × 0308 ÷ 231A ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 1160 × 0300 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [0.3]
+÷ 1160 × 0308 × 0300 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [0.3]
+÷ 1160 × 200D ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [0.3]
+÷ 1160 × 0308 × 200D ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [0.3]
÷ 1160 ÷ 0378 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
-÷ 1160 × 0308 ÷ 0378 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
+÷ 1160 × 0308 ÷ 0378 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
÷ 1160 ÷ D800 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
-÷ 1160 × 0308 ÷ D800 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
+÷ 1160 × 0308 ÷ D800 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
÷ 11A8 ÷ 0020 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] SPACE (Other) ÷ [0.3]
-÷ 11A8 × 0308 ÷ 0020 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ 11A8 × 0308 ÷ 0020 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] SPACE (Other) ÷ [0.3]
÷ 11A8 ÷ 000D ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
-÷ 11A8 × 0308 ÷ 000D ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 11A8 × 0308 ÷ 000D ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 11A8 ÷ 000A ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
-÷ 11A8 × 0308 ÷ 000A ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 11A8 × 0308 ÷ 000A ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 11A8 ÷ 0001 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ 11A8 × 0308 ÷ 0001 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ 11A8 × 0300 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
-÷ 11A8 × 0308 × 0300 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
+÷ 11A8 × 0308 ÷ 0001 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 11A8 × 034F ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING GRAPHEME JOINER (Extend) ÷ [0.3]
+÷ 11A8 × 0308 × 034F ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] COMBINING GRAPHEME JOINER (Extend) ÷ [0.3]
+÷ 11A8 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
+÷ 11A8 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 11A8 ÷ 0600 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
-÷ 11A8 × 0308 ÷ 0600 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
+÷ 11A8 × 0308 ÷ 0600 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
÷ 11A8 × 0903 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
-÷ 11A8 × 0308 × 0903 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 11A8 × 0308 × 0903 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 11A8 ÷ 1100 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
-÷ 11A8 × 0308 ÷ 1100 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 11A8 × 0308 ÷ 1100 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 11A8 ÷ 1160 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
-÷ 11A8 × 0308 ÷ 1160 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 11A8 × 0308 ÷ 1160 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 11A8 × 11A8 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [8.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
-÷ 11A8 × 0308 ÷ 11A8 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 11A8 × 0308 ÷ 11A8 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 11A8 ÷ AC00 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
-÷ 11A8 × 0308 ÷ AC00 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 11A8 × 0308 ÷ AC00 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 11A8 ÷ AC01 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ 11A8 × 0308 ÷ AC01 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ 11A8 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 11A8 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 11A8 ÷ 261D ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 11A8 × 0308 ÷ 261D ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 11A8 ÷ 1F3FB ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 11A8 × 0308 ÷ 1F3FB ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 11A8 × 200D ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ 11A8 × 0308 × 200D ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ 11A8 ÷ 2640 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 11A8 × 0308 ÷ 2640 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 11A8 ÷ 1F466 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 11A8 × 0308 ÷ 1F466 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ 11A8 × 0308 ÷ AC01 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ 11A8 ÷ 231A ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 11A8 × 0308 ÷ 231A ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 11A8 × 0300 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [0.3]
+÷ 11A8 × 0308 × 0300 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [0.3]
+÷ 11A8 × 200D ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [0.3]
+÷ 11A8 × 0308 × 200D ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [0.3]
÷ 11A8 ÷ 0378 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
-÷ 11A8 × 0308 ÷ 0378 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
+÷ 11A8 × 0308 ÷ 0378 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
÷ 11A8 ÷ D800 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
-÷ 11A8 × 0308 ÷ D800 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
+÷ 11A8 × 0308 ÷ D800 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
÷ AC00 ÷ 0020 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] SPACE (Other) ÷ [0.3]
-÷ AC00 × 0308 ÷ 0020 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ AC00 × 0308 ÷ 0020 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] SPACE (Other) ÷ [0.3]
÷ AC00 ÷ 000D ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
-÷ AC00 × 0308 ÷ 000D ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ AC00 × 0308 ÷ 000D ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ AC00 ÷ 000A ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
-÷ AC00 × 0308 ÷ 000A ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ AC00 × 0308 ÷ 000A ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ AC00 ÷ 0001 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ AC00 × 0308 ÷ 0001 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ AC00 × 0300 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
-÷ AC00 × 0308 × 0300 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
+÷ AC00 × 0308 ÷ 0001 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ AC00 × 034F ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING GRAPHEME JOINER (Extend) ÷ [0.3]
+÷ AC00 × 0308 × 034F ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] COMBINING GRAPHEME JOINER (Extend) ÷ [0.3]
+÷ AC00 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
+÷ AC00 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ AC00 ÷ 0600 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
-÷ AC00 × 0308 ÷ 0600 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
+÷ AC00 × 0308 ÷ 0600 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
÷ AC00 × 0903 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
-÷ AC00 × 0308 × 0903 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ AC00 × 0308 × 0903 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ AC00 ÷ 1100 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
-÷ AC00 × 0308 ÷ 1100 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ AC00 × 0308 ÷ 1100 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ AC00 × 1160 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [7.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
-÷ AC00 × 0308 ÷ 1160 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ AC00 × 0308 ÷ 1160 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ AC00 × 11A8 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [7.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
-÷ AC00 × 0308 ÷ 11A8 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ AC00 × 0308 ÷ 11A8 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ AC00 ÷ AC00 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
-÷ AC00 × 0308 ÷ AC00 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ AC00 × 0308 ÷ AC00 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ AC00 ÷ AC01 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ AC00 × 0308 ÷ AC01 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ AC00 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ AC00 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ AC00 ÷ 261D ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ AC00 × 0308 ÷ 261D ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ AC00 ÷ 1F3FB ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ AC00 × 0308 ÷ 1F3FB ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ AC00 × 200D ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ AC00 × 0308 × 200D ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ AC00 ÷ 2640 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ AC00 × 0308 ÷ 2640 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ AC00 ÷ 1F466 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ AC00 × 0308 ÷ 1F466 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ AC00 × 0308 ÷ AC01 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ AC00 ÷ 231A ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ AC00 × 0308 ÷ 231A ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ AC00 × 0300 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [0.3]
+÷ AC00 × 0308 × 0300 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [0.3]
+÷ AC00 × 200D ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [0.3]
+÷ AC00 × 0308 × 200D ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [0.3]
÷ AC00 ÷ 0378 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
-÷ AC00 × 0308 ÷ 0378 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
+÷ AC00 × 0308 ÷ 0378 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
÷ AC00 ÷ D800 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
-÷ AC00 × 0308 ÷ D800 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
+÷ AC00 × 0308 ÷ D800 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
÷ AC01 ÷ 0020 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] SPACE (Other) ÷ [0.3]
-÷ AC01 × 0308 ÷ 0020 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ AC01 × 0308 ÷ 0020 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] SPACE (Other) ÷ [0.3]
÷ AC01 ÷ 000D ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
-÷ AC01 × 0308 ÷ 000D ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ AC01 × 0308 ÷ 000D ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ AC01 ÷ 000A ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
-÷ AC01 × 0308 ÷ 000A ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ AC01 × 0308 ÷ 000A ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ AC01 ÷ 0001 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ AC01 × 0308 ÷ 0001 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ AC01 × 0300 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
-÷ AC01 × 0308 × 0300 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
+÷ AC01 × 0308 ÷ 0001 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ AC01 × 034F ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING GRAPHEME JOINER (Extend) ÷ [0.3]
+÷ AC01 × 0308 × 034F ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] COMBINING GRAPHEME JOINER (Extend) ÷ [0.3]
+÷ AC01 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
+÷ AC01 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ AC01 ÷ 0600 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
-÷ AC01 × 0308 ÷ 0600 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
+÷ AC01 × 0308 ÷ 0600 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
÷ AC01 × 0903 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
-÷ AC01 × 0308 × 0903 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ AC01 × 0308 × 0903 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ AC01 ÷ 1100 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
-÷ AC01 × 0308 ÷ 1100 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ AC01 × 0308 ÷ 1100 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ AC01 ÷ 1160 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
-÷ AC01 × 0308 ÷ 1160 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ AC01 × 0308 ÷ 1160 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ AC01 × 11A8 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [8.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
-÷ AC01 × 0308 ÷ 11A8 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ AC01 × 0308 ÷ 11A8 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ AC01 ÷ AC00 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
-÷ AC01 × 0308 ÷ AC00 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ AC01 × 0308 ÷ AC00 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ AC01 ÷ AC01 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ AC01 × 0308 ÷ AC01 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ AC01 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ AC01 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ AC01 ÷ 261D ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ AC01 × 0308 ÷ 261D ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ AC01 ÷ 1F3FB ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ AC01 × 0308 ÷ 1F3FB ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ AC01 × 200D ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ AC01 × 0308 × 200D ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ AC01 ÷ 2640 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ AC01 × 0308 ÷ 2640 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ AC01 ÷ 1F466 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ AC01 × 0308 ÷ 1F466 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ AC01 × 0308 ÷ AC01 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ AC01 ÷ 231A ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ AC01 × 0308 ÷ 231A ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ AC01 × 0300 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [0.3]
+÷ AC01 × 0308 × 0300 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [0.3]
+÷ AC01 × 200D ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [0.3]
+÷ AC01 × 0308 × 200D ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [0.3]
÷ AC01 ÷ 0378 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
-÷ AC01 × 0308 ÷ 0378 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
+÷ AC01 × 0308 ÷ 0378 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
÷ AC01 ÷ D800 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
-÷ AC01 × 0308 ÷ D800 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
-÷ 1F1E6 ÷ 0020 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] SPACE (Other) ÷ [0.3]
-÷ 1F1E6 × 0308 ÷ 0020 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3]
-÷ 1F1E6 ÷ 000D ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
-÷ 1F1E6 × 0308 ÷ 000D ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
-÷ 1F1E6 ÷ 000A ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
-÷ 1F1E6 × 0308 ÷ 000A ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
-÷ 1F1E6 ÷ 0001 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ 1F1E6 × 0308 ÷ 0001 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ 1F1E6 × 0300 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
-÷ 1F1E6 × 0308 × 0300 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
-÷ 1F1E6 ÷ 0600 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
-÷ 1F1E6 × 0308 ÷ 0600 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
-÷ 1F1E6 × 0903 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
-÷ 1F1E6 × 0308 × 0903 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
-÷ 1F1E6 ÷ 1100 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
-÷ 1F1E6 × 0308 ÷ 1100 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
-÷ 1F1E6 ÷ 1160 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
-÷ 1F1E6 × 0308 ÷ 1160 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
-÷ 1F1E6 ÷ 11A8 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
-÷ 1F1E6 × 0308 ÷ 11A8 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
-÷ 1F1E6 ÷ AC00 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
-÷ 1F1E6 × 0308 ÷ AC00 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
-÷ 1F1E6 ÷ AC01 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ 1F1E6 × 0308 ÷ AC01 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ 1F1E6 × 1F1E6 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [12.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 1F1E6 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 1F1E6 ÷ 261D ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 1F1E6 × 0308 ÷ 261D ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 1F1E6 ÷ 1F3FB ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 1F1E6 × 0308 ÷ 1F3FB ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 1F1E6 × 200D ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ 1F1E6 × 0308 × 200D ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ 1F1E6 ÷ 2640 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 1F1E6 × 0308 ÷ 2640 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 1F1E6 ÷ 1F466 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 1F1E6 × 0308 ÷ 1F466 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 1F1E6 ÷ 0378 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
-÷ 1F1E6 × 0308 ÷ 0378 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
-÷ 1F1E6 ÷ D800 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
-÷ 1F1E6 × 0308 ÷ D800 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
-÷ 261D ÷ 0020 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] SPACE (Other) ÷ [0.3]
-÷ 261D × 0308 ÷ 0020 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3]
-÷ 261D ÷ 000D ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
-÷ 261D × 0308 ÷ 000D ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
-÷ 261D ÷ 000A ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
-÷ 261D × 0308 ÷ 000A ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
-÷ 261D ÷ 0001 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ 261D × 0308 ÷ 0001 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ 261D × 0300 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
-÷ 261D × 0308 × 0300 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
-÷ 261D ÷ 0600 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
-÷ 261D × 0308 ÷ 0600 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
-÷ 261D × 0903 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
-÷ 261D × 0308 × 0903 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
-÷ 261D ÷ 1100 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
-÷ 261D × 0308 ÷ 1100 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
-÷ 261D ÷ 1160 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
-÷ 261D × 0308 ÷ 1160 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
-÷ 261D ÷ 11A8 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
-÷ 261D × 0308 ÷ 11A8 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
-÷ 261D ÷ AC00 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
-÷ 261D × 0308 ÷ AC00 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
-÷ 261D ÷ AC01 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ 261D × 0308 ÷ AC01 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ 261D ÷ 1F1E6 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 261D × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 261D ÷ 261D ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 261D × 0308 ÷ 261D ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 261D × 1F3FB ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [10.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 261D × 0308 × 1F3FB ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) × [10.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 261D × 200D ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ 261D × 0308 × 200D ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ 261D ÷ 2640 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 261D × 0308 ÷ 2640 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 261D ÷ 1F466 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 261D × 0308 ÷ 1F466 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 261D ÷ 0378 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
-÷ 261D × 0308 ÷ 0378 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
-÷ 261D ÷ D800 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
-÷ 261D × 0308 ÷ D800 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
-÷ 1F3FB ÷ 0020 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] SPACE (Other) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 0020 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3]
-÷ 1F3FB ÷ 000D ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 000D ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
-÷ 1F3FB ÷ 000A ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 000A ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
-÷ 1F3FB ÷ 0001 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 0001 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ 1F3FB × 0300 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
-÷ 1F3FB × 0308 × 0300 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
-÷ 1F3FB ÷ 0600 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 0600 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
-÷ 1F3FB × 0903 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
-÷ 1F3FB × 0308 × 0903 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
-÷ 1F3FB ÷ 1100 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 1100 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
-÷ 1F3FB ÷ 1160 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 1160 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
-÷ 1F3FB ÷ 11A8 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 11A8 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
-÷ 1F3FB ÷ AC00 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ AC00 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
-÷ 1F3FB ÷ AC01 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ AC01 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ 1F3FB ÷ 1F1E6 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 1F3FB ÷ 261D ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 261D ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 1F3FB ÷ 1F3FB ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 1F3FB ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 1F3FB × 200D ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ 1F3FB × 0308 × 200D ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ 1F3FB ÷ 2640 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 2640 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 1F3FB ÷ 1F466 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 1F466 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 1F3FB ÷ 0378 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 0378 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
-÷ 1F3FB ÷ D800 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ D800 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
-÷ 200D ÷ 0020 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] SPACE (Other) ÷ [0.3]
-÷ 200D × 0308 ÷ 0020 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3]
-÷ 200D ÷ 000D ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
-÷ 200D × 0308 ÷ 000D ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
-÷ 200D ÷ 000A ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
-÷ 200D × 0308 ÷ 000A ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
-÷ 200D ÷ 0001 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ 200D × 0308 ÷ 0001 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ 200D × 0300 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
-÷ 200D × 0308 × 0300 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
-÷ 200D ÷ 0600 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
-÷ 200D × 0308 ÷ 0600 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
-÷ 200D × 0903 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
-÷ 200D × 0308 × 0903 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
-÷ 200D ÷ 1100 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
-÷ 200D × 0308 ÷ 1100 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
-÷ 200D ÷ 1160 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
-÷ 200D × 0308 ÷ 1160 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
-÷ 200D ÷ 11A8 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
-÷ 200D × 0308 ÷ 11A8 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
-÷ 200D ÷ AC00 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
-÷ 200D × 0308 ÷ AC00 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
-÷ 200D ÷ AC01 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ 200D × 0308 ÷ AC01 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ 200D ÷ 1F1E6 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 200D × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 200D ÷ 261D ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 200D × 0308 ÷ 261D ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 200D ÷ 1F3FB ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 200D × 0308 ÷ 1F3FB ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 200D × 200D ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ 200D × 0308 × 200D ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ 200D × 2640 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [11.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 200D × 0308 ÷ 2640 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 200D × 1F466 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [11.0] BOY (EBG) ÷ [0.3]
-÷ 200D × 0308 ÷ 1F466 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 200D ÷ 0378 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
-÷ 200D × 0308 ÷ 0378 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
-÷ 200D ÷ D800 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
-÷ 200D × 0308 ÷ D800 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
-÷ 2640 ÷ 0020 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] SPACE (Other) ÷ [0.3]
-÷ 2640 × 0308 ÷ 0020 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3]
-÷ 2640 ÷ 000D ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
-÷ 2640 × 0308 ÷ 000D ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
-÷ 2640 ÷ 000A ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
-÷ 2640 × 0308 ÷ 000A ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
-÷ 2640 ÷ 0001 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ 2640 × 0308 ÷ 0001 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ 2640 × 0300 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
-÷ 2640 × 0308 × 0300 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
-÷ 2640 ÷ 0600 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
-÷ 2640 × 0308 ÷ 0600 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
-÷ 2640 × 0903 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
-÷ 2640 × 0308 × 0903 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
-÷ 2640 ÷ 1100 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
-÷ 2640 × 0308 ÷ 1100 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
-÷ 2640 ÷ 1160 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
-÷ 2640 × 0308 ÷ 1160 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
-÷ 2640 ÷ 11A8 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
-÷ 2640 × 0308 ÷ 11A8 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
-÷ 2640 ÷ AC00 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
-÷ 2640 × 0308 ÷ AC00 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
-÷ 2640 ÷ AC01 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ 2640 × 0308 ÷ AC01 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ 2640 ÷ 1F1E6 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 2640 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 2640 ÷ 261D ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 2640 × 0308 ÷ 261D ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 2640 ÷ 1F3FB ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 2640 × 0308 ÷ 1F3FB ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 2640 × 200D ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ 2640 × 0308 × 200D ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ 2640 ÷ 2640 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 2640 × 0308 ÷ 2640 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 2640 ÷ 1F466 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 2640 × 0308 ÷ 1F466 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 2640 ÷ 0378 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
-÷ 2640 × 0308 ÷ 0378 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
-÷ 2640 ÷ D800 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
-÷ 2640 × 0308 ÷ D800 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
-÷ 1F466 ÷ 0020 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] SPACE (Other) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 0020 ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3]
-÷ 1F466 ÷ 000D ÷ # ÷ [0.2] BOY (EBG) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 000D ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
-÷ 1F466 ÷ 000A ÷ # ÷ [0.2] BOY (EBG) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 000A ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
-÷ 1F466 ÷ 0001 ÷ # ÷ [0.2] BOY (EBG) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 0001 ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ 1F466 × 0300 ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
-÷ 1F466 × 0308 × 0300 ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
-÷ 1F466 ÷ 0600 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 0600 ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
-÷ 1F466 × 0903 ÷ # ÷ [0.2] BOY (EBG) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
-÷ 1F466 × 0308 × 0903 ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
-÷ 1F466 ÷ 1100 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 1100 ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
-÷ 1F466 ÷ 1160 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 1160 ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
-÷ 1F466 ÷ 11A8 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 11A8 ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
-÷ 1F466 ÷ AC00 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
-÷ 1F466 × 0308 ÷ AC00 ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
-÷ 1F466 ÷ AC01 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ 1F466 × 0308 ÷ AC01 ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ 1F466 ÷ 1F1E6 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 1F466 ÷ 261D ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 261D ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 1F466 × 1F3FB ÷ # ÷ [0.2] BOY (EBG) × [10.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 1F466 × 0308 × 1F3FB ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) × [10.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 1F466 × 200D ÷ # ÷ [0.2] BOY (EBG) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ 1F466 × 0308 × 200D ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ 1F466 ÷ 2640 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 2640 ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 1F466 ÷ 1F466 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 1F466 ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 1F466 ÷ 0378 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 0378 ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
-÷ 1F466 ÷ D800 ÷ # ÷ [0.2] BOY (EBG) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
-÷ 1F466 × 0308 ÷ D800 ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
+÷ AC01 × 0308 ÷ D800 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
+÷ 231A ÷ 0020 ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ 231A × 0308 ÷ 0020 ÷ # ÷ [0.2] WATCH (ExtPict) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ 231A ÷ 000D ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 231A × 0308 ÷ 000D ÷ # ÷ [0.2] WATCH (ExtPict) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 231A ÷ 000A ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 231A × 0308 ÷ 000A ÷ # ÷ [0.2] WATCH (ExtPict) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 231A ÷ 0001 ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 231A × 0308 ÷ 0001 ÷ # ÷ [0.2] WATCH (ExtPict) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 231A × 034F ÷ # ÷ [0.2] WATCH (ExtPict) × [9.0] COMBINING GRAPHEME JOINER (Extend) ÷ [0.3]
+÷ 231A × 0308 × 034F ÷ # ÷ [0.2] WATCH (ExtPict) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] COMBINING GRAPHEME JOINER (Extend) ÷ [0.3]
+÷ 231A ÷ 1F1E6 ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
+÷ 231A × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] WATCH (ExtPict) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
+÷ 231A ÷ 0600 ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
+÷ 231A × 0308 ÷ 0600 ÷ # ÷ [0.2] WATCH (ExtPict) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
+÷ 231A × 0903 ÷ # ÷ [0.2] WATCH (ExtPict) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 231A × 0308 × 0903 ÷ # ÷ [0.2] WATCH (ExtPict) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 231A ÷ 1100 ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 231A × 0308 ÷ 1100 ÷ # ÷ [0.2] WATCH (ExtPict) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 231A ÷ 1160 ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 231A × 0308 ÷ 1160 ÷ # ÷ [0.2] WATCH (ExtPict) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 231A ÷ 11A8 ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 231A × 0308 ÷ 11A8 ÷ # ÷ [0.2] WATCH (ExtPict) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 231A ÷ AC00 ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 231A × 0308 ÷ AC00 ÷ # ÷ [0.2] WATCH (ExtPict) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 231A ÷ AC01 ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ 231A × 0308 ÷ AC01 ÷ # ÷ [0.2] WATCH (ExtPict) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ 231A ÷ 231A ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 231A × 0308 ÷ 231A ÷ # ÷ [0.2] WATCH (ExtPict) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 231A × 0300 ÷ # ÷ [0.2] WATCH (ExtPict) × [9.0] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [0.3]
+÷ 231A × 0308 × 0300 ÷ # ÷ [0.2] WATCH (ExtPict) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [0.3]
+÷ 231A × 200D ÷ # ÷ [0.2] WATCH (ExtPict) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [0.3]
+÷ 231A × 0308 × 200D ÷ # ÷ [0.2] WATCH (ExtPict) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [0.3]
+÷ 231A ÷ 0378 ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
+÷ 231A × 0308 ÷ 0378 ÷ # ÷ [0.2] WATCH (ExtPict) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
+÷ 231A ÷ D800 ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
+÷ 231A × 0308 ÷ D800 ÷ # ÷ [0.2] WATCH (ExtPict) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
+÷ 0300 ÷ 0020 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ 0300 × 0308 ÷ 0020 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ 0300 ÷ 000D ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0300 × 0308 ÷ 000D ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0300 ÷ 000A ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0300 × 0308 ÷ 000A ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0300 ÷ 0001 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 0300 × 0308 ÷ 0001 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 0300 × 034F ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) × [9.0] COMBINING GRAPHEME JOINER (Extend) ÷ [0.3]
+÷ 0300 × 0308 × 034F ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] COMBINING GRAPHEME JOINER (Extend) ÷ [0.3]
+÷ 0300 ÷ 1F1E6 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
+÷ 0300 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
+÷ 0300 ÷ 0600 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
+÷ 0300 × 0308 ÷ 0600 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
+÷ 0300 × 0903 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 0300 × 0308 × 0903 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 0300 ÷ 1100 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 0300 × 0308 ÷ 1100 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 0300 ÷ 1160 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 0300 × 0308 ÷ 1160 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 0300 ÷ 11A8 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 0300 × 0308 ÷ 11A8 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 0300 ÷ AC00 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 0300 × 0308 ÷ AC00 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 0300 ÷ AC01 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ 0300 × 0308 ÷ AC01 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ 0300 ÷ 231A ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0300 × 0308 ÷ 231A ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0300 × 0300 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) × [9.0] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [0.3]
+÷ 0300 × 0308 × 0300 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [0.3]
+÷ 0300 × 200D ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [0.3]
+÷ 0300 × 0308 × 200D ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [0.3]
+÷ 0300 ÷ 0378 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
+÷ 0300 × 0308 ÷ 0378 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
+÷ 0300 ÷ D800 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
+÷ 0300 × 0308 ÷ D800 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
+÷ 200D ÷ 0020 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ 200D × 0308 ÷ 0020 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ 200D ÷ 000D ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 200D × 0308 ÷ 000D ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 200D ÷ 000A ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 200D × 0308 ÷ 000A ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 200D ÷ 0001 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 200D × 0308 ÷ 0001 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 200D × 034F ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) × [9.0] COMBINING GRAPHEME JOINER (Extend) ÷ [0.3]
+÷ 200D × 0308 × 034F ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] COMBINING GRAPHEME JOINER (Extend) ÷ [0.3]
+÷ 200D ÷ 1F1E6 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
+÷ 200D × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
+÷ 200D ÷ 0600 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
+÷ 200D × 0308 ÷ 0600 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
+÷ 200D × 0903 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 200D × 0308 × 0903 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 200D ÷ 1100 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 200D × 0308 ÷ 1100 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 200D ÷ 1160 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 200D × 0308 ÷ 1160 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 200D ÷ 11A8 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 200D × 0308 ÷ 11A8 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 200D ÷ AC00 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 200D × 0308 ÷ AC00 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 200D ÷ AC01 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ 200D × 0308 ÷ AC01 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ 200D ÷ 231A ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 200D × 0308 ÷ 231A ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 200D × 0300 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) × [9.0] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [0.3]
+÷ 200D × 0308 × 0300 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [0.3]
+÷ 200D × 200D ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [0.3]
+÷ 200D × 0308 × 200D ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [0.3]
+÷ 200D ÷ 0378 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
+÷ 200D × 0308 ÷ 0378 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
+÷ 200D ÷ D800 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
+÷ 200D × 0308 ÷ D800 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
÷ 0378 ÷ 0020 ÷ # ÷ [0.2] <reserved-0378> (Other) ÷ [999.0] SPACE (Other) ÷ [0.3]
-÷ 0378 × 0308 ÷ 0020 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ 0378 × 0308 ÷ 0020 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] SPACE (Other) ÷ [0.3]
÷ 0378 ÷ 000D ÷ # ÷ [0.2] <reserved-0378> (Other) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
-÷ 0378 × 0308 ÷ 000D ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0378 × 0308 ÷ 000D ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 0378 ÷ 000A ÷ # ÷ [0.2] <reserved-0378> (Other) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
-÷ 0378 × 0308 ÷ 000A ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0378 × 0308 ÷ 000A ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 0378 ÷ 0001 ÷ # ÷ [0.2] <reserved-0378> (Other) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ 0378 × 0308 ÷ 0001 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ 0378 × 0300 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
-÷ 0378 × 0308 × 0300 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
+÷ 0378 × 0308 ÷ 0001 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 0378 × 034F ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING GRAPHEME JOINER (Extend) ÷ [0.3]
+÷ 0378 × 0308 × 034F ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] COMBINING GRAPHEME JOINER (Extend) ÷ [0.3]
+÷ 0378 ÷ 1F1E6 ÷ # ÷ [0.2] <reserved-0378> (Other) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
+÷ 0378 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 0378 ÷ 0600 ÷ # ÷ [0.2] <reserved-0378> (Other) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
-÷ 0378 × 0308 ÷ 0600 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
+÷ 0378 × 0308 ÷ 0600 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
÷ 0378 × 0903 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
-÷ 0378 × 0308 × 0903 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 0378 × 0308 × 0903 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 0378 ÷ 1100 ÷ # ÷ [0.2] <reserved-0378> (Other) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
-÷ 0378 × 0308 ÷ 1100 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 0378 × 0308 ÷ 1100 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 0378 ÷ 1160 ÷ # ÷ [0.2] <reserved-0378> (Other) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
-÷ 0378 × 0308 ÷ 1160 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 0378 × 0308 ÷ 1160 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 0378 ÷ 11A8 ÷ # ÷ [0.2] <reserved-0378> (Other) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
-÷ 0378 × 0308 ÷ 11A8 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 0378 × 0308 ÷ 11A8 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 0378 ÷ AC00 ÷ # ÷ [0.2] <reserved-0378> (Other) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
-÷ 0378 × 0308 ÷ AC00 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 0378 × 0308 ÷ AC00 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 0378 ÷ AC01 ÷ # ÷ [0.2] <reserved-0378> (Other) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ 0378 × 0308 ÷ AC01 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ 0378 ÷ 1F1E6 ÷ # ÷ [0.2] <reserved-0378> (Other) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 0378 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 0378 ÷ 261D ÷ # ÷ [0.2] <reserved-0378> (Other) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0378 × 0308 ÷ 261D ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0378 ÷ 1F3FB ÷ # ÷ [0.2] <reserved-0378> (Other) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0378 × 0308 ÷ 1F3FB ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0378 × 200D ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ 0378 × 0308 × 200D ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ 0378 ÷ 2640 ÷ # ÷ [0.2] <reserved-0378> (Other) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0378 × 0308 ÷ 2640 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0378 ÷ 1F466 ÷ # ÷ [0.2] <reserved-0378> (Other) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 0378 × 0308 ÷ 1F466 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ 0378 × 0308 ÷ AC01 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ 0378 ÷ 231A ÷ # ÷ [0.2] <reserved-0378> (Other) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0378 × 0308 ÷ 231A ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0378 × 0300 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [0.3]
+÷ 0378 × 0308 × 0300 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [0.3]
+÷ 0378 × 200D ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [0.3]
+÷ 0378 × 0308 × 200D ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [0.3]
÷ 0378 ÷ 0378 ÷ # ÷ [0.2] <reserved-0378> (Other) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
-÷ 0378 × 0308 ÷ 0378 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
+÷ 0378 × 0308 ÷ 0378 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
÷ 0378 ÷ D800 ÷ # ÷ [0.2] <reserved-0378> (Other) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
-÷ 0378 × 0308 ÷ D800 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
+÷ 0378 × 0308 ÷ D800 ÷ # ÷ [0.2] <reserved-0378> (Other) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
÷ D800 ÷ 0020 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] SPACE (Other) ÷ [0.3]
-÷ D800 ÷ 0308 ÷ 0020 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ D800 ÷ 0308 ÷ 0020 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] SPACE (Other) ÷ [0.3]
÷ D800 ÷ 000D ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
-÷ D800 ÷ 0308 ÷ 000D ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ D800 ÷ 0308 ÷ 000D ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ D800 ÷ 000A ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] <LINE FEED (LF)> (LF) ÷ [0.3]
-÷ D800 ÷ 0308 ÷ 000A ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ D800 ÷ 0308 ÷ 000A ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ D800 ÷ 0001 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ D800 ÷ 0308 ÷ 0001 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
-÷ D800 ÷ 0300 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
-÷ D800 ÷ 0308 × 0300 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
+÷ D800 ÷ 0308 ÷ 0001 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ D800 ÷ 034F ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING GRAPHEME JOINER (Extend) ÷ [0.3]
+÷ D800 ÷ 0308 × 034F ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] COMBINING GRAPHEME JOINER (Extend) ÷ [0.3]
+÷ D800 ÷ 1F1E6 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
+÷ D800 ÷ 0308 ÷ 1F1E6 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ D800 ÷ 0600 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
-÷ D800 ÷ 0308 ÷ 0600 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
+÷ D800 ÷ 0308 ÷ 0600 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3]
÷ D800 ÷ 0903 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
-÷ D800 ÷ 0308 × 0903 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ D800 ÷ 0308 × 0903 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ D800 ÷ 1100 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
-÷ D800 ÷ 0308 ÷ 1100 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ D800 ÷ 0308 ÷ 1100 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ D800 ÷ 1160 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
-÷ D800 ÷ 0308 ÷ 1160 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ D800 ÷ 0308 ÷ 1160 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ D800 ÷ 11A8 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
-÷ D800 ÷ 0308 ÷ 11A8 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ D800 ÷ 0308 ÷ 11A8 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ D800 ÷ AC00 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
-÷ D800 ÷ 0308 ÷ AC00 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ D800 ÷ 0308 ÷ AC00 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ D800 ÷ AC01 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ D800 ÷ 0308 ÷ AC01 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
-÷ D800 ÷ 1F1E6 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ D800 ÷ 0308 ÷ 1F1E6 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ D800 ÷ 261D ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ D800 ÷ 0308 ÷ 261D ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ D800 ÷ 1F3FB ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ D800 ÷ 0308 ÷ 1F3FB ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ D800 ÷ 200D ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ D800 ÷ 0308 × 200D ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ D800 ÷ 2640 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ D800 ÷ 0308 ÷ 2640 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ D800 ÷ 1F466 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] BOY (EBG) ÷ [0.3]
-÷ D800 ÷ 0308 ÷ 1F466 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ D800 ÷ 0308 ÷ AC01 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ D800 ÷ 231A ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] WATCH (ExtPict) ÷ [0.3]
+÷ D800 ÷ 0308 ÷ 231A ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ D800 ÷ 0300 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [0.3]
+÷ D800 ÷ 0308 × 0300 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] COMBINING GRAVE ACCENT (Extend_ExtCccZwj) ÷ [0.3]
+÷ D800 ÷ 200D ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [0.3]
+÷ D800 ÷ 0308 × 200D ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [0.3]
÷ D800 ÷ 0378 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] <reserved-0378> (Other) ÷ [0.3]
-÷ D800 ÷ 0308 ÷ 0378 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
+÷ D800 ÷ 0308 ÷ 0378 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] <reserved-0378> (Other) ÷ [0.3]
÷ D800 ÷ D800 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] <surrogate-D800> (Control) ÷ [0.3]
-÷ D800 ÷ 0308 ÷ D800 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
-÷ 000D × 000A ÷ 0061 ÷ 000A ÷ 0308 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) × [3.0] <LINE FEED (LF)> (LF) ÷ [4.0] LATIN SMALL LETTER A (Other) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [0.3]
-÷ 0061 × 0308 ÷ # ÷ [0.2] LATIN SMALL LETTER A (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [0.3]
-÷ 0020 × 200D ÷ 0646 ÷ # ÷ [0.2] SPACE (Other) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] ARABIC LETTER NOON (Other) ÷ [0.3]
-÷ 0646 × 200D ÷ 0020 ÷ # ÷ [0.2] ARABIC LETTER NOON (Other) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ D800 ÷ 0308 ÷ D800 ÷ # ÷ [0.2] <surrogate-D800> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [5.0] <surrogate-D800> (Control) ÷ [0.3]
+÷ 000D × 000A ÷ 0061 ÷ 000A ÷ 0308 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) × [3.0] <LINE FEED (LF)> (LF) ÷ [4.0] LATIN SMALL LETTER A (Other) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [0.3]
+÷ 0061 × 0308 ÷ # ÷ [0.2] LATIN SMALL LETTER A (Other) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [0.3]
+÷ 0020 × 200D ÷ 0646 ÷ # ÷ [0.2] SPACE (Other) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [999.0] ARABIC LETTER NOON (Other) ÷ [0.3]
+÷ 0646 × 200D ÷ 0020 ÷ # ÷ [0.2] ARABIC LETTER NOON (Other) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [999.0] SPACE (Other) ÷ [0.3]
÷ 1100 × 1100 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [6.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ AC00 × 11A8 ÷ 1100 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [7.0] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ AC01 × 11A8 ÷ 1100 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [8.0] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 1F1E6 × 1F1E7 ÷ 1F1E8 ÷ 0062 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [12.0] REGIONAL INDICATOR SYMBOL LETTER B (RI) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER C (RI) ÷ [999.0] LATIN SMALL LETTER B (Other) ÷ [0.3]
÷ 0061 ÷ 1F1E6 × 1F1E7 ÷ 1F1E8 ÷ 0062 ÷ # ÷ [0.2] LATIN SMALL LETTER A (Other) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [13.0] REGIONAL INDICATOR SYMBOL LETTER B (RI) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER C (RI) ÷ [999.0] LATIN SMALL LETTER B (Other) ÷ [0.3]
-÷ 0061 ÷ 1F1E6 × 1F1E7 × 200D ÷ 1F1E8 ÷ 0062 ÷ # ÷ [0.2] LATIN SMALL LETTER A (Other) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [13.0] REGIONAL INDICATOR SYMBOL LETTER B (RI) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER C (RI) ÷ [999.0] LATIN SMALL LETTER B (Other) ÷ [0.3]
-÷ 0061 ÷ 1F1E6 × 200D ÷ 1F1E7 × 1F1E8 ÷ 0062 ÷ # ÷ [0.2] LATIN SMALL LETTER A (Other) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER B (RI) × [13.0] REGIONAL INDICATOR SYMBOL LETTER C (RI) ÷ [999.0] LATIN SMALL LETTER B (Other) ÷ [0.3]
+÷ 0061 ÷ 1F1E6 × 1F1E7 × 200D ÷ 1F1E8 ÷ 0062 ÷ # ÷ [0.2] LATIN SMALL LETTER A (Other) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [13.0] REGIONAL INDICATOR SYMBOL LETTER B (RI) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER C (RI) ÷ [999.0] LATIN SMALL LETTER B (Other) ÷ [0.3]
+÷ 0061 ÷ 1F1E6 × 200D ÷ 1F1E7 × 1F1E8 ÷ 0062 ÷ # ÷ [0.2] LATIN SMALL LETTER A (Other) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER B (RI) × [13.0] REGIONAL INDICATOR SYMBOL LETTER C (RI) ÷ [999.0] LATIN SMALL LETTER B (Other) ÷ [0.3]
÷ 0061 ÷ 1F1E6 × 1F1E7 ÷ 1F1E8 × 1F1E9 ÷ 0062 ÷ # ÷ [0.2] LATIN SMALL LETTER A (Other) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [13.0] REGIONAL INDICATOR SYMBOL LETTER B (RI) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER C (RI) × [13.0] REGIONAL INDICATOR SYMBOL LETTER D (RI) ÷ [999.0] LATIN SMALL LETTER B (Other) ÷ [0.3]
-÷ 0061 × 200D ÷ # ÷ [0.2] LATIN SMALL LETTER A (Other) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
-÷ 0061 × 0308 ÷ 0062 ÷ # ÷ [0.2] LATIN SMALL LETTER A (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] LATIN SMALL LETTER B (Other) ÷ [0.3]
+÷ 0061 × 200D ÷ # ÷ [0.2] LATIN SMALL LETTER A (Other) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [0.3]
+÷ 0061 × 0308 ÷ 0062 ÷ # ÷ [0.2] LATIN SMALL LETTER A (Other) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) ÷ [999.0] LATIN SMALL LETTER B (Other) ÷ [0.3]
÷ 0061 × 0903 ÷ 0062 ÷ # ÷ [0.2] LATIN SMALL LETTER A (Other) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] LATIN SMALL LETTER B (Other) ÷ [0.3]
÷ 0061 ÷ 0600 × 0062 ÷ # ÷ [0.2] LATIN SMALL LETTER A (Other) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) × [9.2] LATIN SMALL LETTER B (Other) ÷ [0.3]
-÷ 261D × 1F3FB ÷ 261D ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [10.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 1F466 × 1F3FB ÷ # ÷ [0.2] BOY (EBG) × [10.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 200D × 1F466 × 1F3FB ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [11.0] BOY (EBG) × [10.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 200D × 2640 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [11.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 200D × 1F466 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [11.0] BOY (EBG) ÷ [0.3]
-÷ 1F466 ÷ 1F466 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ 1F476 × 1F3FF ÷ 1F476 ÷ # ÷ [0.2] BABY (ExtPict) × [9.0] EMOJI MODIFIER FITZPATRICK TYPE-6 (Extend) ÷ [999.0] BABY (ExtPict) ÷ [0.3]
+÷ 0061 × 1F3FF ÷ 1F476 ÷ # ÷ [0.2] LATIN SMALL LETTER A (Other) × [9.0] EMOJI MODIFIER FITZPATRICK TYPE-6 (Extend) ÷ [999.0] BABY (ExtPict) ÷ [0.3]
+÷ 0061 × 1F3FF ÷ 1F476 × 200D × 1F6D1 ÷ # ÷ [0.2] LATIN SMALL LETTER A (Other) × [9.0] EMOJI MODIFIER FITZPATRICK TYPE-6 (Extend) ÷ [999.0] BABY (ExtPict) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) × [11.0] OCTAGONAL SIGN (ExtPict) ÷ [0.3]
+÷ 1F476 × 1F3FF × 0308 × 200D × 1F476 × 1F3FF ÷ # ÷ [0.2] BABY (ExtPict) × [9.0] EMOJI MODIFIER FITZPATRICK TYPE-6 (Extend) × [9.0] COMBINING DIAERESIS (Extend_ExtCccZwj) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) × [11.0] BABY (ExtPict) × [9.0] EMOJI MODIFIER FITZPATRICK TYPE-6 (Extend) ÷ [0.3]
+÷ 1F6D1 × 200D × 1F6D1 ÷ # ÷ [0.2] OCTAGONAL SIGN (ExtPict) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) × [11.0] OCTAGONAL SIGN (ExtPict) ÷ [0.3]
+÷ 0061 × 200D ÷ 1F6D1 ÷ # ÷ [0.2] LATIN SMALL LETTER A (Other) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [999.0] OCTAGONAL SIGN (ExtPict) ÷ [0.3]
+÷ 2701 × 200D × 2701 ÷ # ÷ [0.2] UPPER BLADE SCISSORS (Other) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) × [11.0] UPPER BLADE SCISSORS (Other) ÷ [0.3]
+÷ 0061 × 200D ÷ 2701 ÷ # ÷ [0.2] LATIN SMALL LETTER A (Other) × [9.0] ZERO WIDTH JOINER (ZWJ_ExtCccZwj) ÷ [999.0] UPPER BLADE SCISSORS (Other) ÷ [0.3]
#
-# Lines: 822
+# Lines: 672
#
# EOF
diff --git a/Build/source/libs/icu/icu-src/source/test/testdata/IdnaTest.txt b/Build/source/libs/icu/icu-src/source/test/testdata/IdnaTest.txt
deleted file mode 100644
index f0b240a65d8..00000000000
--- a/Build/source/libs/icu/icu-src/source/test/testdata/IdnaTest.txt
+++ /dev/null
@@ -1,7848 +0,0 @@
-# IdnaTest.txt
-# Date: 2017-06-02, 14:19:52 GMT
-# © 2017 Unicode®, Inc.
-# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
-#
-# Contains test cases for verifying UTS46 conformance. For more information,
-# see http://www.unicode.org/reports/tr46/
-#
-# FORMAT:
-#
-# This file is in UTF8, with certain characters escaped using the \uXXXX or \x{XXXX}
-# convention where they could otherwise have a confusing display.
-# These characters include:
-#
-# - General Categories C, Z, and M
-# - Default ignorable characters
-# - Bidi categories R, AL, AN
-#
-# Columns (c1, c2,...) are separated by semicolons.
-# Leading and trailing spaces and tabs in each column are ignored.
-# Comments are indicated with hash marks.
-#
-# Column 1: type - T for transitional, N for nontransitional, B for both
-# Column 2: source - The source string to be tested
-# Column 3: toUnicode - The result of applying toUnicode to the source, using nontransitional.
-# A blank value means the same as the source value; a value in [...] is a set of error codes.
-# Column 4: toASCII - The result of applying toASCII to the source, using the specified type: T, N, or B.
-# A blank value means the same as the toUnicode value; a value in [...] is a set of error codes.
-# Column 5: idna2008 - NV8 is only present if the status is valid but the character is excluded by IDNA2008
-# from all domain names for all versions of Unicode.
-# XV8 is present when the character is excluded by IDNA2008 for the current version of Unicode.
-# These are informative values only.
-#
-# If the value of toUnicode is the same as source, the column will be blank.
-# The line comments currently show visible characters that have been escaped
-# (after removing default-ignorables and controls, except for whitespace)
-#
-# The test is performed with the following flag settings:
-#
-# VerifyDnsLength: true
-# CheckHyphens: true
-# CheckBidi: true
-# CheckJoiners: true
-# UseSTD3ASCIIRules: true
-#
-# An error in toUnicode or toASCII is indicated by a value in square brackets, such as "[B5 B6]".
-# In such a case, the contents is a list of error codes based on the step numbers in UTS46 and IDNA2008,
-# with the following formats:
-#
-# Pn for Section 4 Processing step n
-# Vn for 4.1 Validity Criteria step n
-# An for 4.2 ToASCII step n
-# Bn for Bidi (in IDNA2008)
-# Cn for ContextJ (in IDNA2008)
-#
-# However, these particular error codes are only informative;
-# the important feature is whether or not there is an error.
-#
-# CONFORMANCE:
-#
-# To test for conformance to UTS46, an implementation must first perform the toUnicode operation
-# on the source string, then the toASCII operation (with the indicated type) on the source string.
-# Implementations may be more strict than UTS46; thus they may have errors where the file indicates results.
-# In particular, an implementation conformant to IDNA2008 would disallow the input for lines marked with NV8.
-#
-# Moreover, the error codes in the file are informative; implementations need only record that there is an error:
-# they need not reproduce those codes. Thus to then verify conformance for the toASCII and toUnicode columns:
-#
-# - If the file indicates an error, the implementation must also have an error.
-# - If the file does not indicate an error, then the implementation must either have an error,
-# or must have a matching result.
-#
-# ====================================================================================================
-B; fass.de; ;
-T; faß.de; ; fass.de
-N; faß.de; ; xn--fa-hia.de
-T; Faß.de; faß.de; fass.de
-N; Faß.de; faß.de; xn--fa-hia.de
-B; xn--fa-hia.de; faß.de; xn--fa-hia.de
-
-# BIDI TESTS
-
-B; à\u05D0; [B5 B6]; [B5 B6] # àא
-B; a\u0300\u05D0; [B5 B6]; [B5 B6] # àא
-B; A\u0300\u05D0; [B5 B6]; [B5 B6] # àא
-B; À\u05D0; [B5 B6]; [B5 B6] # àא
-B; xn--0ca24w; [B5 B6]; [B5 B6] # àא
-B; 0à.\u05D0; [B1]; [B1] # 0à.א
-B; 0a\u0300.\u05D0; [B1]; [B1] # 0à.א
-B; 0A\u0300.\u05D0; [B1]; [B1] # 0à.א
-B; 0À.\u05D0; [B1]; [B1] # 0à.א
-B; xn--0-sfa.xn--4db; [B1]; [B1] # 0à.א
-B; à.\u05D0\u0308; ; xn--0ca.xn--ssa73l # à.א̈
-B; a\u0300.\u05D0\u0308; à.\u05D0\u0308; xn--0ca.xn--ssa73l # à.א̈
-B; A\u0300.\u05D0\u0308; à.\u05D0\u0308; xn--0ca.xn--ssa73l # à.א̈
-B; À.\u05D0\u0308; à.\u05D0\u0308; xn--0ca.xn--ssa73l # à.א̈
-B; xn--0ca.xn--ssa73l; à.\u05D0\u0308; xn--0ca.xn--ssa73l # à.א̈
-B; à.\u05D00\u0660\u05D0; [B4]; [B4] # à.א0٠א
-B; a\u0300.\u05D00\u0660\u05D0; [B4]; [B4] # à.א0٠א
-B; A\u0300.\u05D00\u0660\u05D0; [B4]; [B4] # à.א0٠א
-B; À.\u05D00\u0660\u05D0; [B4]; [B4] # à.א0٠א
-B; xn--0ca.xn--0-zhcb98c; [B4]; [B4] # à.א0٠א
-B; \u0308.\u05D0; [B1 B3 B6 V5]; [B1 B3 B6 V5] # ̈.א
-B; xn--ssa.xn--4db; [B1 B3 B6 V5]; [B1 B3 B6 V5] # ̈.א
-B; à.\u05D00\u0660; [B4]; [B4] # à.א0٠
-B; a\u0300.\u05D00\u0660; [B4]; [B4] # à.א0٠
-B; A\u0300.\u05D00\u0660; [B4]; [B4] # à.א0٠
-B; À.\u05D00\u0660; [B4]; [B4] # à.א0٠
-B; xn--0ca.xn--0-zhc74b; [B4]; [B4] # à.א0٠
-B; àˇ.\u05D0; [B6]; [B6] # àˇ.א
-B; a\u0300ˇ.\u05D0; [B6]; [B6] # àˇ.א
-B; A\u0300ˇ.\u05D0; [B6]; [B6] # àˇ.א
-B; Àˇ.\u05D0; [B6]; [B6] # àˇ.א
-B; xn--0ca88g.xn--4db; [B6]; [B6] # àˇ.א
-B; à\u0308.\u05D0; ; xn--0ca81i.xn--4db # à̈.א
-B; a\u0300\u0308.\u05D0; à\u0308.\u05D0; xn--0ca81i.xn--4db # à̈.א
-B; A\u0300\u0308.\u05D0; à\u0308.\u05D0; xn--0ca81i.xn--4db # à̈.א
-B; À\u0308.\u05D0; à\u0308.\u05D0; xn--0ca81i.xn--4db # à̈.א
-B; xn--0ca81i.xn--4db; à\u0308.\u05D0; xn--0ca81i.xn--4db # à̈.א
-
-# CONTEXT TESTS
-
-T; a\u200Cb; [C1]; ab # ab
-N; a\u200Cb; [C1]; [C1] # ab
-T; A\u200CB; [C1]; ab # ab
-N; A\u200CB; [C1]; [C1] # ab
-T; A\u200Cb; [C1]; ab # ab
-N; A\u200Cb; [C1]; [C1] # ab
-B; ab; ;
-B; xn--ab-j1t; [C1]; [C1] # ab
-T; a\u094D\u200Cb; ; xn--ab-fsf # a्b
-N; a\u094D\u200Cb; ; xn--ab-fsf604u # a्b
-T; A\u094D\u200CB; a\u094D\u200Cb; xn--ab-fsf # a्b
-N; A\u094D\u200CB; a\u094D\u200Cb; xn--ab-fsf604u # a्b
-T; A\u094D\u200Cb; a\u094D\u200Cb; xn--ab-fsf # a्b
-N; A\u094D\u200Cb; a\u094D\u200Cb; xn--ab-fsf604u # a्b
-B; xn--ab-fsf; a\u094Db; xn--ab-fsf # a्b
-B; a\u094Db; ; xn--ab-fsf # a्b
-B; A\u094DB; a\u094Db; xn--ab-fsf # a्b
-B; A\u094Db; a\u094Db; xn--ab-fsf # a्b
-B; xn--ab-fsf604u; a\u094D\u200Cb; xn--ab-fsf604u # a्b
-T; \u0308\u200C\u0308\u0628b; [B1 C1 V5]; [B1 V5] # ̈̈بb
-N; \u0308\u200C\u0308\u0628b; [B1 C1 V5]; [B1 C1 V5] # ̈̈بb
-T; \u0308\u200C\u0308\u0628B; [B1 C1 V5]; [B1 V5] # ̈̈بb
-N; \u0308\u200C\u0308\u0628B; [B1 C1 V5]; [B1 C1 V5] # ̈̈بb
-B; xn--b-bcba413a; [B1 V5]; [B1 V5] # ̈̈بb
-B; xn--b-bcba413a2w8b; [B1 C1 V5]; [B1 C1 V5] # ̈̈بb
-T; a\u0628\u0308\u200C\u0308; [B5 B6 C1]; [B5 B6] # aب̈̈
-N; a\u0628\u0308\u200C\u0308; [B5 B6 C1]; [B5 B6 C1] # aب̈̈
-T; A\u0628\u0308\u200C\u0308; [B5 B6 C1]; [B5 B6] # aب̈̈
-N; A\u0628\u0308\u200C\u0308; [B5 B6 C1]; [B5 B6 C1] # aب̈̈
-B; xn--a-ccba213a; [B5 B6]; [B5 B6] # aب̈̈
-B; xn--a-ccba213a5w8b; [B5 B6 C1]; [B5 B6 C1] # aب̈̈
-T; a\u0628\u0308\u200C\u0308\u0628b; [B5]; [B5] # aب̈̈بb
-N; a\u0628\u0308\u200C\u0308\u0628b; [B5]; [B5] # aب̈̈بb
-T; A\u0628\u0308\u200C\u0308\u0628B; [B5]; [B5] # aب̈̈بb
-N; A\u0628\u0308\u200C\u0308\u0628B; [B5]; [B5] # aب̈̈بb
-T; A\u0628\u0308\u200C\u0308\u0628b; [B5]; [B5] # aب̈̈بb
-N; A\u0628\u0308\u200C\u0308\u0628b; [B5]; [B5] # aب̈̈بb
-B; xn--ab-uuba211bca; [B5]; [B5] # aب̈̈بb
-B; xn--ab-uuba211bca8057b; [B5]; [B5] # aب̈̈بb
-T; a\u200Db; [C2]; ab # ab
-N; a\u200Db; [C2]; [C2] # ab
-T; A\u200DB; [C2]; ab # ab
-N; A\u200DB; [C2]; [C2] # ab
-T; A\u200Db; [C2]; ab # ab
-N; A\u200Db; [C2]; [C2] # ab
-B; xn--ab-m1t; [C2]; [C2] # ab
-T; a\u094D\u200Db; ; xn--ab-fsf # a्b
-N; a\u094D\u200Db; ; xn--ab-fsf014u # a्b
-T; A\u094D\u200DB; a\u094D\u200Db; xn--ab-fsf # a्b
-N; A\u094D\u200DB; a\u094D\u200Db; xn--ab-fsf014u # a्b
-T; A\u094D\u200Db; a\u094D\u200Db; xn--ab-fsf # a्b
-N; A\u094D\u200Db; a\u094D\u200Db; xn--ab-fsf014u # a्b
-B; xn--ab-fsf014u; a\u094D\u200Db; xn--ab-fsf014u # a्b
-T; \u0308\u200D\u0308\u0628b; [B1 C2 V5]; [B1 V5] # ̈̈بb
-N; \u0308\u200D\u0308\u0628b; [B1 C2 V5]; [B1 C2 V5] # ̈̈بb
-T; \u0308\u200D\u0308\u0628B; [B1 C2 V5]; [B1 V5] # ̈̈بb
-N; \u0308\u200D\u0308\u0628B; [B1 C2 V5]; [B1 C2 V5] # ̈̈بb
-B; xn--b-bcba413a7w8b; [B1 C2 V5]; [B1 C2 V5] # ̈̈بb
-T; a\u0628\u0308\u200D\u0308; [B5 B6 C2]; [B5 B6] # aب̈̈
-N; a\u0628\u0308\u200D\u0308; [B5 B6 C2]; [B5 B6 C2] # aب̈̈
-T; A\u0628\u0308\u200D\u0308; [B5 B6 C2]; [B5 B6] # aب̈̈
-N; A\u0628\u0308\u200D\u0308; [B5 B6 C2]; [B5 B6 C2] # aب̈̈
-B; xn--a-ccba213abx8b; [B5 B6 C2]; [B5 B6 C2] # aب̈̈
-T; a\u0628\u0308\u200D\u0308\u0628b; [B5 C2]; [B5] # aب̈̈بb
-N; a\u0628\u0308\u200D\u0308\u0628b; [B5 C2]; [B5 C2] # aب̈̈بb
-T; A\u0628\u0308\u200D\u0308\u0628B; [B5 C2]; [B5] # aب̈̈بb
-N; A\u0628\u0308\u200D\u0308\u0628B; [B5 C2]; [B5 C2] # aب̈̈بb
-T; A\u0628\u0308\u200D\u0308\u0628b; [B5 C2]; [B5] # aب̈̈بb
-N; A\u0628\u0308\u200D\u0308\u0628b; [B5 C2]; [B5 C2] # aب̈̈بb
-B; xn--ab-uuba211bca5157b; [B5 C2]; [B5 C2] # aب̈̈بb
-
-# SELECTED TESTS
-
-B; ¡; ; xn--7a; NV8
-B; xn--7a; ¡; xn--7a; NV8
-B; ᧚; ; xn--pkf; XV8
-B; xn--pkf; ᧚; xn--pkf; XV8
-B; 。; [A4_2]; [A4_2]
-B; .; [A4_2]; [A4_2]
-B; ꭠ; ; xn--3y9a
-B; xn--3y9a; ꭠ; xn--3y9a
-B; 1234567890ä1234567890123456789012345678901234567890123456; ; [A4_2]
-B; 1234567890a\u03081234567890123456789012345678901234567890123456; 1234567890ä1234567890123456789012345678901234567890123456; [A4_2]
-B; 1234567890A\u03081234567890123456789012345678901234567890123456; 1234567890ä1234567890123456789012345678901234567890123456; [A4_2]
-B; 1234567890Ä1234567890123456789012345678901234567890123456; 1234567890ä1234567890123456789012345678901234567890123456; [A4_2]
-B; xn--12345678901234567890123456789012345678901234567890123456-fxe; 1234567890ä1234567890123456789012345678901234567890123456; [A4_2]
-B; www.eXample.cOm; www.example.com;
-B; Bücher.de; bücher.de; xn--bcher-kva.de
-B; Bu\u0308cher.de; bücher.de; xn--bcher-kva.de
-B; bu\u0308cher.de; bücher.de; xn--bcher-kva.de
-B; bücher.de; ; xn--bcher-kva.de
-B; BÜCHER.DE; bücher.de; xn--bcher-kva.de
-B; BU\u0308CHER.DE; bücher.de; xn--bcher-kva.de
-B; xn--bcher-kva.de; bücher.de; xn--bcher-kva.de
-B; ÖBB; öbb; xn--bb-eka
-B; O\u0308BB; öbb; xn--bb-eka
-B; o\u0308bb; öbb; xn--bb-eka
-B; öbb; ; xn--bb-eka
-B; Öbb; öbb; xn--bb-eka
-B; O\u0308bb; öbb; xn--bb-eka
-B; xn--bb-eka; öbb; xn--bb-eka
-T; βόλος.com; ; xn--nxasmq6b.com
-N; βόλος.com; ; xn--nxasmm1c.com
-T; βο\u0301λος.com; βόλος.com; xn--nxasmq6b.com
-N; βο\u0301λος.com; βόλος.com; xn--nxasmm1c.com
-B; ΒΟ\u0301ΛΟΣ.COM; βόλοσ.com; xn--nxasmq6b.com
-B; ΒΌΛΟΣ.COM; βόλοσ.com; xn--nxasmq6b.com
-B; βόλοσ.com; ; xn--nxasmq6b.com
-B; βο\u0301λοσ.com; βόλοσ.com; xn--nxasmq6b.com
-B; Βο\u0301λοσ.com; βόλοσ.com; xn--nxasmq6b.com
-B; Βόλοσ.com; βόλοσ.com; xn--nxasmq6b.com
-B; xn--nxasmq6b.com; βόλοσ.com; xn--nxasmq6b.com
-T; Βο\u0301λος.com; βόλος.com; xn--nxasmq6b.com
-N; Βο\u0301λος.com; βόλος.com; xn--nxasmm1c.com
-T; Βόλος.com; βόλος.com; xn--nxasmq6b.com
-N; Βόλος.com; βόλος.com; xn--nxasmm1c.com
-B; xn--nxasmm1c.com; βόλος.com; xn--nxasmm1c.com
-B; xn--nxasmm1c; βόλος; xn--nxasmm1c
-T; βόλος; ; xn--nxasmq6b
-N; βόλος; ; xn--nxasmm1c
-T; βο\u0301λος; βόλος; xn--nxasmq6b
-N; βο\u0301λος; βόλος; xn--nxasmm1c
-B; ΒΟ\u0301ΛΟΣ; βόλοσ; xn--nxasmq6b
-B; ΒΌΛΟΣ; βόλοσ; xn--nxasmq6b
-B; βόλοσ; ; xn--nxasmq6b
-B; βο\u0301λοσ; βόλοσ; xn--nxasmq6b
-B; Βο\u0301λοσ; βόλοσ; xn--nxasmq6b
-B; Βόλοσ; βόλοσ; xn--nxasmq6b
-B; xn--nxasmq6b; βόλοσ; xn--nxasmq6b
-T; Βόλος; βόλος; xn--nxasmq6b
-N; Βόλος; βόλος; xn--nxasmm1c
-T; Βο\u0301λος; βόλος; xn--nxasmq6b
-N; Βο\u0301λος; βόλος; xn--nxasmm1c
-T; www.ශ\u0DCA\u200Dර\u0DD3.com; ; www.xn--10cl1a0b.com # www.ශ්රී.com
-N; www.ශ\u0DCA\u200Dර\u0DD3.com; ; www.xn--10cl1a0b660p.com # www.ශ්රී.com
-T; WWW.ශ\u0DCA\u200Dර\u0DD3.COM; www.ශ\u0DCA\u200Dර\u0DD3.com; www.xn--10cl1a0b.com # www.ශ්රී.com
-N; WWW.ශ\u0DCA\u200Dර\u0DD3.COM; www.ශ\u0DCA\u200Dර\u0DD3.com; www.xn--10cl1a0b660p.com # www.ශ්රී.com
-T; Www.ශ\u0DCA\u200Dර\u0DD3.com; www.ශ\u0DCA\u200Dර\u0DD3.com; www.xn--10cl1a0b.com # www.ශ්රී.com
-N; Www.ශ\u0DCA\u200Dර\u0DD3.com; www.ශ\u0DCA\u200Dර\u0DD3.com; www.xn--10cl1a0b660p.com # www.ශ්රී.com
-B; www.xn--10cl1a0b.com; www.ශ\u0DCAර\u0DD3.com; www.xn--10cl1a0b.com # www.ශ්රී.com
-B; www.ශ\u0DCAර\u0DD3.com; ; www.xn--10cl1a0b.com # www.ශ්රී.com
-B; WWW.ශ\u0DCAර\u0DD3.COM; www.ශ\u0DCAර\u0DD3.com; www.xn--10cl1a0b.com # www.ශ්රී.com
-B; Www.ශ\u0DCAර\u0DD3.com; www.ශ\u0DCAර\u0DD3.com; www.xn--10cl1a0b.com # www.ශ්රී.com
-B; www.xn--10cl1a0b660p.com; www.ශ\u0DCA\u200Dර\u0DD3.com; www.xn--10cl1a0b660p.com # www.ශ්රී.com
-T; \u0646\u0627\u0645\u0647\u200C\u0627\u06CC; ; xn--mgba3gch31f # نامهای
-N; \u0646\u0627\u0645\u0647\u200C\u0627\u06CC; ; xn--mgba3gch31f060k # نامهای
-B; xn--mgba3gch31f; \u0646\u0627\u0645\u0647\u0627\u06CC; xn--mgba3gch31f # نامهای
-B; \u0646\u0627\u0645\u0647\u0627\u06CC; ; xn--mgba3gch31f # نامهای
-B; xn--mgba3gch31f060k; \u0646\u0627\u0645\u0647\u200C\u0627\u06CC; xn--mgba3gch31f060k # نامهای
-B; xn--mgba3gch31f060k.com; \u0646\u0627\u0645\u0647\u200C\u0627\u06CC.com; xn--mgba3gch31f060k.com # نامهای.com
-T; \u0646\u0627\u0645\u0647\u200C\u0627\u06CC.com; ; xn--mgba3gch31f.com # نامهای.com
-N; \u0646\u0627\u0645\u0647\u200C\u0627\u06CC.com; ; xn--mgba3gch31f060k.com # نامهای.com
-T; \u0646\u0627\u0645\u0647\u200C\u0627\u06CC.COM; \u0646\u0627\u0645\u0647\u200C\u0627\u06CC.com; xn--mgba3gch31f.com # نامهای.com
-N; \u0646\u0627\u0645\u0647\u200C\u0627\u06CC.COM; \u0646\u0627\u0645\u0647\u200C\u0627\u06CC.com; xn--mgba3gch31f060k.com # نامهای.com
-T; \u0646\u0627\u0645\u0647\u200C\u0627\u06CC.Com; \u0646\u0627\u0645\u0647\u200C\u0627\u06CC.com; xn--mgba3gch31f.com # نامهای.com
-N; \u0646\u0627\u0645\u0647\u200C\u0627\u06CC.Com; \u0646\u0627\u0645\u0647\u200C\u0627\u06CC.com; xn--mgba3gch31f060k.com # نامهای.com
-B; xn--mgba3gch31f.com; \u0646\u0627\u0645\u0647\u0627\u06CC.com; xn--mgba3gch31f.com # نامهای.com
-B; \u0646\u0627\u0645\u0647\u0627\u06CC.com; ; xn--mgba3gch31f.com # نامهای.com
-B; \u0646\u0627\u0645\u0647\u0627\u06CC.COM; \u0646\u0627\u0645\u0647\u0627\u06CC.com; xn--mgba3gch31f.com # نامهای.com
-B; \u0646\u0627\u0645\u0647\u0627\u06CC.Com; \u0646\u0627\u0645\u0647\u0627\u06CC.com; xn--mgba3gch31f.com # نامهای.com
-B; a.b.c。d。; a.b.c.d.;
-B; a.b.c。d。; a.b.c.d.;
-B; A.B.C。D。; a.b.c.d.;
-B; A.b.c。D。; a.b.c.d.;
-B; a.b.c.d.; ;
-B; A.B.C。D。; a.b.c.d.;
-B; A.b.c。D。; a.b.c.d.;
-B; U\u0308.xn--tda; ü.ü; xn--tda.xn--tda
-B; Ü.xn--tda; ü.ü; xn--tda.xn--tda
-B; ü.xn--tda; ü.ü; xn--tda.xn--tda
-B; u\u0308.xn--tda; ü.ü; xn--tda.xn--tda
-B; U\u0308.XN--TDA; ü.ü; xn--tda.xn--tda
-B; Ü.XN--TDA; ü.ü; xn--tda.xn--tda
-B; Ü.xn--Tda; ü.ü; xn--tda.xn--tda
-B; U\u0308.xn--Tda; ü.ü; xn--tda.xn--tda
-B; xn--tda.xn--tda; ü.ü; xn--tda.xn--tda
-B; ü.ü; ; xn--tda.xn--tda
-B; u\u0308.u\u0308; ü.ü; xn--tda.xn--tda
-B; U\u0308.U\u0308; ü.ü; xn--tda.xn--tda
-B; Ü.Ü; ü.ü; xn--tda.xn--tda
-B; Ü.ü; ü.ü; xn--tda.xn--tda
-B; U\u0308.u\u0308; ü.ü; xn--tda.xn--tda
-B; xn--u-ccb; [V1]; [V1] # ü
-B; a⒈com; [P1 V6]; [P1 V6]
-B; a1.com; ;
-B; A⒈COM; [P1 V6]; [P1 V6]
-B; A⒈Com; [P1 V6]; [P1 V6]
-B; xn--acom-0w1b; [V6]; [V6]
-B; xn--a-ecp.ru; [V6]; [V6]
-B; xn--0.pt; [A3]; [A3]
-B; xn--a.pt; [V6]; [V6] # .pt
-B; xn--a-Ä.pt; [A3]; [A3]
-B; xn--a-A\u0308.pt; [A3]; [A3]
-B; xn--a-a\u0308.pt; [A3]; [A3]
-B; xn--a-ä.pt; [A3]; [A3]
-B; XN--A-Ä.PT; [A3]; [A3]
-B; XN--A-A\u0308.PT; [A3]; [A3]
-B; Xn--A-A\u0308.pt; [A3]; [A3]
-B; Xn--A-Ä.pt; [A3]; [A3]
-B; xn--xn--a--gua.pt; [V2]; [V2]
-B; 日本語。JP; 日本語.jp; xn--wgv71a119e.jp
-B; 日本語。JP; 日本語.jp; xn--wgv71a119e.jp
-B; 日本語。jp; 日本語.jp; xn--wgv71a119e.jp
-B; 日本語。Jp; 日本語.jp; xn--wgv71a119e.jp
-B; xn--wgv71a119e.jp; 日本語.jp; xn--wgv71a119e.jp
-B; 日本語.jp; ; xn--wgv71a119e.jp
-B; 日本語.JP; 日本語.jp; xn--wgv71a119e.jp
-B; 日本語.Jp; 日本語.jp; xn--wgv71a119e.jp
-B; 日本語。jp; 日本語.jp; xn--wgv71a119e.jp
-B; 日本語。Jp; 日本語.jp; xn--wgv71a119e.jp
-B; ☕; ; xn--53h; NV8
-B; xn--53h; ☕; xn--53h; NV8
-T; 1.aß\u200C\u200Db\u200C\u200Dcßßßßdςσßßßßßßßßeßßßßßßßßßßxßßßßßßßßßßyßßßßßßßß\u0302ßz; [C1 C2]; [A4_2] # 1.aßbcßßßßdςσßßßßßßßßeßßßßßßßßßßxßßßßßßßßßßyßßßßßßßß̂ßz
-N; 1.aß\u200C\u200Db\u200C\u200Dcßßßßdςσßßßßßßßßeßßßßßßßßßßxßßßßßßßßßßyßßßßßßßß\u0302ßz; [C1 C2]; [C1 C2 A4_2] # 1.aßbcßßßßdςσßßßßßßßßeßßßßßßßßßßxßßßßßßßßßßyßßßßßßßß̂ßz
-T; 1.ASS\u200C\u200DB\u200C\u200DCSSSSSSSSDΣΣSSSSSSSSSSSSSSSSESSSSSSSSSSSSSSSSSSSSXSSSSSSSSSSSSSSSSSSSSYSSSSSSSSSSSSSSSS\u0302SSZ; [C1 C2]; [A4_2] # 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz
-N; 1.ASS\u200C\u200DB\u200C\u200DCSSSSSSSSDΣΣSSSSSSSSSSSSSSSSESSSSSSSSSSSSSSSSSSSSXSSSSSSSSSSSSSSSSSSSSYSSSSSSSSSSSSSSSS\u0302SSZ; [C1 C2]; [C1 C2 A4_2] # 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz
-T; 1.ASS\u200C\u200DB\u200C\u200DCSSSSSSSSDΣΣSSSSSSSSSSSSSSSSESSSSSSSSSSSSSSSSSSSSXSSSSSSSSSSSSSSSSSSSSYSSSSSSSSSSSSSSSŜSSZ; [C1 C2]; [A4_2] # 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz
-N; 1.ASS\u200C\u200DB\u200C\u200DCSSSSSSSSDΣΣSSSSSSSSSSSSSSSSESSSSSSSSSSSSSSSSSSSSXSSSSSSSSSSSSSSSSSSSSYSSSSSSSSSSSSSSSŜSSZ; [C1 C2]; [C1 C2 A4_2] # 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz
-T; 1.ass\u200C\u200Db\u200C\u200Dcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz; [C1 C2]; [A4_2] # 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz
-N; 1.ass\u200C\u200Db\u200C\u200Dcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz; [C1 C2]; [C1 C2 A4_2] # 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz
-T; 1.ass\u200C\u200Db\u200C\u200Dcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssyssssssssssssssss\u0302ssz; [C1 C2]; [A4_2] # 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz
-N; 1.ass\u200C\u200Db\u200C\u200Dcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssyssssssssssssssss\u0302ssz; [C1 C2]; [C1 C2 A4_2] # 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz
-T; 1.Ass\u200C\u200Db\u200C\u200Dcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssyssssssssssssssss\u0302ssz; [C1 C2]; [A4_2] # 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz
-N; 1.Ass\u200C\u200Db\u200C\u200Dcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssyssssssssssssssss\u0302ssz; [C1 C2]; [C1 C2 A4_2] # 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz
-T; 1.Ass\u200C\u200Db\u200C\u200Dcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz; [C1 C2]; [A4_2] # 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz
-N; 1.Ass\u200C\u200Db\u200C\u200Dcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz; [C1 C2]; [C1 C2 A4_2] # 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz
-B; 1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa; 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz; [A4_2]
-B; 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz; ; [A4_2]
-B; 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssyssssssssssssssss\u0302ssz; 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz; [A4_2]
-B; 1.ASSBCSSSSSSSSDΣΣSSSSSSSSSSSSSSSSESSSSSSSSSSSSSSSSSSSSXSSSSSSSSSSSSSSSSSSSSYSSSSSSSSSSSSSSSS\u0302SSZ; 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz; [A4_2]
-B; 1.ASSBCSSSSSSSSDΣΣSSSSSSSSSSSSSSSSESSSSSSSSSSSSSSSSSSSSXSSSSSSSSSSSSSSSSSSSSYSSSSSSSSSSSSSSSŜSSZ; 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz; [A4_2]
-B; 1.Assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz; 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz; [A4_2]
-B; 1.Assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssyssssssssssssssss\u0302ssz; 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz; [A4_2]
-B; 1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa69989dba9gc; [C1 C2]; [C1 C2 A4_2] # 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz
-T; 1.Aß\u200C\u200Db\u200C\u200Dcßßßßdςσßßßßßßßßeßßßßßßßßßßxßßßßßßßßßßyßßßßßßßß\u0302ßz; [C1 C2]; [A4_2] # 1.aßbcßßßßdςσßßßßßßßßeßßßßßßßßßßxßßßßßßßßßßyßßßßßßßß̂ßz
-N; 1.Aß\u200C\u200Db\u200C\u200Dcßßßßdςσßßßßßßßßeßßßßßßßßßßxßßßßßßßßßßyßßßßßßßß\u0302ßz; [C1 C2]; [C1 C2 A4_2] # 1.aßbcßßßßdςσßßßßßßßßeßßßßßßßßßßxßßßßßßßßßßyßßßßßßßß̂ßz
-B; 1.xn--abcdexyz-qyacaaabaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaa010ze2isb1140zba8cc; [C1 C2]; [C1 C2 A4_2] # 1.aßbcßßßßdςσßßßßßßßßeßßßßßßßßßßxßßßßßßßßßßyßßßßßßßß̂ßz
-T; \u200Cx\u200Dn\u200C-\u200D-bß; [C1 C2]; xn--bss # xn--bß
-N; \u200Cx\u200Dn\u200C-\u200D-bß; [C1 C2]; [C1 C2] # xn--bß
-T; \u200CX\u200DN\u200C-\u200D-BSS; [C1 C2]; xn--bss # xn--bss
-N; \u200CX\u200DN\u200C-\u200D-BSS; [C1 C2]; [C1 C2] # xn--bss
-T; \u200Cx\u200Dn\u200C-\u200D-bss; [C1 C2]; xn--bss # xn--bss
-N; \u200Cx\u200Dn\u200C-\u200D-bss; [C1 C2]; [C1 C2] # xn--bss
-T; \u200CX\u200Dn\u200C-\u200D-Bss; [C1 C2]; xn--bss # xn--bss
-N; \u200CX\u200Dn\u200C-\u200D-Bss; [C1 C2]; [C1 C2] # xn--bss
-B; xn--bss; 夙; xn--bss
-B; 夙; ; xn--bss
-B; xn--xn--bss-7z6ccid; [C1 C2]; [C1 C2] # xn--bss
-T; \u200CX\u200Dn\u200C-\u200D-Bß; [C1 C2]; xn--bss # xn--bß
-N; \u200CX\u200Dn\u200C-\u200D-Bß; [C1 C2]; [C1 C2] # xn--bß
-B; xn--xn--b-pqa5796ccahd; [C1 C2]; [C1 C2] # xn--bß
-B; ˣ\u034Fℕ\u200B﹣\u00AD-\u180Cℬ\uFE00ſ\u2064𝔰󠇯ffl; 夡夞夜夙; xn--bssffl
-B; x\u034FN\u200B-\u00AD-\u180CB\uFE00s\u2064s󠇯ffl; 夡夞夜夙; xn--bssffl
-B; x\u034Fn\u200B-\u00AD-\u180Cb\uFE00s\u2064s󠇯ffl; 夡夞夜夙; xn--bssffl
-B; X\u034FN\u200B-\u00AD-\u180CB\uFE00S\u2064S󠇯FFL; 夡夞夜夙; xn--bssffl
-B; X\u034Fn\u200B-\u00AD-\u180CB\uFE00s\u2064s󠇯ffl; 夡夞夜夙; xn--bssffl
-B; xn--bssffl; 夡夞夜夙; xn--bssffl
-B; 夡夞夜夙; ; xn--bssffl
-B; ˣ\u034Fℕ\u200B﹣\u00AD-\u180Cℬ\uFE00S\u2064𝔰󠇯FFL; 夡夞夜夙; xn--bssffl
-B; x\u034FN\u200B-\u00AD-\u180CB\uFE00S\u2064s󠇯FFL; 夡夞夜夙; xn--bssffl
-B; ˣ\u034Fℕ\u200B﹣\u00AD-\u180Cℬ\uFE00s\u2064𝔰󠇯ffl; 夡夞夜夙; xn--bssffl
-B; 123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; ;
-B; 123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.; ;
-B; 123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789012; ; [A4_1]
-B; 123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901234.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890; ; [A4_2]
-B; 123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901234.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890.; ; [A4_2]
-B; 123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901234.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; ; [A4_1 A4_2]
-B; ä1234567890123456789012345678901234567890123456789012345; ; xn--1234567890123456789012345678901234567890123456789012345-9te
-B; a\u03081234567890123456789012345678901234567890123456789012345; ä1234567890123456789012345678901234567890123456789012345; xn--1234567890123456789012345678901234567890123456789012345-9te
-B; A\u03081234567890123456789012345678901234567890123456789012345; ä1234567890123456789012345678901234567890123456789012345; xn--1234567890123456789012345678901234567890123456789012345-9te
-B; Ä1234567890123456789012345678901234567890123456789012345; ä1234567890123456789012345678901234567890123456789012345; xn--1234567890123456789012345678901234567890123456789012345-9te
-B; xn--1234567890123456789012345678901234567890123456789012345-9te; ä1234567890123456789012345678901234567890123456789012345; xn--1234567890123456789012345678901234567890123456789012345-9te
-B; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; ; 123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901
-B; 123456789012345678901234567890123456789012345678901234567890123.1234567890a\u0308123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; 123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901
-B; 123456789012345678901234567890123456789012345678901234567890123.1234567890A\u0308123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; 123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901
-B; 123456789012345678901234567890123456789012345678901234567890123.1234567890Ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; 123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901
-B; 123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; 123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901
-B; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.; ; 123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.
-B; 123456789012345678901234567890123456789012345678901234567890123.1234567890a\u0308123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.; 123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.
-B; 123456789012345678901234567890123456789012345678901234567890123.1234567890A\u0308123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.; 123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.
-B; 123456789012345678901234567890123456789012345678901234567890123.1234567890Ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.; 123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.
-B; 123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.; 123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.
-B; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789012; ; [A4_1]
-B; 123456789012345678901234567890123456789012345678901234567890123.1234567890a\u0308123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789012; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789012; [A4_1]
-B; 123456789012345678901234567890123456789012345678901234567890123.1234567890A\u0308123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789012; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789012; [A4_1]
-B; 123456789012345678901234567890123456789012345678901234567890123.1234567890Ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789012; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789012; [A4_1]
-B; 123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789012; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789012; [A4_1]
-B; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890; ; [A4_2]
-B; 123456789012345678901234567890123456789012345678901234567890123.1234567890a\u03081234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890; [A4_2]
-B; 123456789012345678901234567890123456789012345678901234567890123.1234567890A\u03081234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890; [A4_2]
-B; 123456789012345678901234567890123456789012345678901234567890123.1234567890Ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890; [A4_2]
-B; 123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890; [A4_2]
-B; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890.; ; [A4_2]
-B; 123456789012345678901234567890123456789012345678901234567890123.1234567890a\u03081234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890.; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890.; [A4_2]
-B; 123456789012345678901234567890123456789012345678901234567890123.1234567890A\u03081234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890.; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890.; [A4_2]
-B; 123456789012345678901234567890123456789012345678901234567890123.1234567890Ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890.; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890.; [A4_2]
-B; 123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890.; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890.; [A4_2]
-B; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; ; [A4_1 A4_2]
-B; 123456789012345678901234567890123456789012345678901234567890123.1234567890a\u03081234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; [A4_1 A4_2]
-B; 123456789012345678901234567890123456789012345678901234567890123.1234567890A\u03081234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; [A4_1 A4_2]
-B; 123456789012345678901234567890123456789012345678901234567890123.1234567890Ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; [A4_1 A4_2]
-B; 123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; [A4_1 A4_2]
-B; a.b..-q--a-.e; [V2 V3 A4_2]; [V2 V3 A4_2]
-B; a.b..-q--ä-.e; [V2 V3 A4_2]; [V2 V3 A4_2]
-B; a.b..-q--a\u0308-.e; [V2 V3 A4_2]; [V2 V3 A4_2]
-B; A.B..-Q--A\u0308-.E; [V2 V3 A4_2]; [V2 V3 A4_2]
-B; A.B..-Q--Ä-.E; [V2 V3 A4_2]; [V2 V3 A4_2]
-B; A.b..-Q--Ä-.E; [V2 V3 A4_2]; [V2 V3 A4_2]
-B; A.b..-Q--A\u0308-.E; [V2 V3 A4_2]; [V2 V3 A4_2]
-B; a.b..xn---q----jra.e; [V2 V3 A4_2]; [V2 V3 A4_2]
-B; a..c; [A4_2]; [A4_2]
-B; a.-b.; [V3]; [V3]
-B; a.b-.c; [V3]; [V3]
-B; a.-.c; [V3]; [V3]
-B; a.bc--de.f; [V2]; [V2]
-B; ä.\u00AD.c; [A4_2]; [A4_2]
-B; a\u0308.\u00AD.c; [A4_2]; [A4_2]
-B; A\u0308.\u00AD.C; [A4_2]; [A4_2]
-B; Ä.\u00AD.C; [A4_2]; [A4_2]
-B; xn--4ca..c; [A4_2]; [A4_2]
-B; ä.-b.; [V3]; [V3]
-B; a\u0308.-b.; [V3]; [V3]
-B; A\u0308.-B.; [V3]; [V3]
-B; Ä.-B.; [V3]; [V3]
-B; xn--4ca.-b.; [V3]; [V3]
-B; ä.b-.c; [V3]; [V3]
-B; a\u0308.b-.c; [V3]; [V3]
-B; A\u0308.B-.C; [V3]; [V3]
-B; Ä.B-.C; [V3]; [V3]
-B; Ä.b-.C; [V3]; [V3]
-B; A\u0308.b-.C; [V3]; [V3]
-B; xn--4ca.b-.c; [V3]; [V3]
-B; ä.-.c; [V3]; [V3]
-B; a\u0308.-.c; [V3]; [V3]
-B; A\u0308.-.C; [V3]; [V3]
-B; Ä.-.C; [V3]; [V3]
-B; xn--4ca.-.c; [V3]; [V3]
-B; ä.bc--de.f; [V2]; [V2]
-B; a\u0308.bc--de.f; [V2]; [V2]
-B; A\u0308.BC--DE.F; [V2]; [V2]
-B; Ä.BC--DE.F; [V2]; [V2]
-B; Ä.bc--De.f; [V2]; [V2]
-B; A\u0308.bc--De.f; [V2]; [V2]
-B; xn--4ca.bc--de.f; [V2]; [V2]
-B; a.b.\u0308c.d; [V5]; [V5] # a.b.̈c.d
-B; A.B.\u0308C.D; [V5]; [V5] # a.b.̈c.d
-B; A.b.\u0308c.d; [V5]; [V5] # a.b.̈c.d
-B; a.b.xn--c-bcb.d; [V5]; [V5] # a.b.̈c.d
-B; A0; a0;
-B; 0A; 0a;
-B; 0A.\u05D0; [B1]; [B1] # 0a.א
-B; 0a.\u05D0; [B1]; [B1] # 0a.א
-B; 0a.xn--4db; [B1]; [B1] # 0a.א
-B; c.xn--0-eha.xn--4db; [B1]; [B1] # c.0ü.א
-B; b-.\u05D0; [B6 V3]; [B6 V3] # b-.א
-B; B-.\u05D0; [B6 V3]; [B6 V3] # b-.א
-B; b-.xn--4db; [B6 V3]; [B6 V3] # b-.א
-B; d.xn----dha.xn--4db; [B6 V3]; [B6 V3] # d.ü-.א
-B; a\u05D0; [B5 B6]; [B5 B6] # aא
-B; A\u05D0; [B5 B6]; [B5 B6] # aא
-B; xn--a-0hc; [B5 B6]; [B5 B6] # aא
-B; \u05D0\u05C7; ; xn--vdbr # אׇ
-B; xn--vdbr; \u05D0\u05C7; xn--vdbr # אׇ
-B; \u05D09\u05C7; ; xn--9-ihcz # א9ׇ
-B; xn--9-ihcz; \u05D09\u05C7; xn--9-ihcz # א9ׇ
-B; \u05D0a\u05C7; [B2 B3]; [B2 B3] # אaׇ
-B; \u05D0A\u05C7; [B2 B3]; [B2 B3] # אaׇ
-B; xn--a-ihcz; [B2 B3]; [B2 B3] # אaׇ
-B; \u05D0\u05EA; ; xn--4db6c # את
-B; xn--4db6c; \u05D0\u05EA; xn--4db6c # את
-B; \u05D0\u05F3\u05EA; ; xn--4db6c0a # א׳ת
-B; xn--4db6c0a; \u05D0\u05F3\u05EA; xn--4db6c0a # א׳ת
-B; a\u05D0Tz; [B5]; [B5] # aאtz
-B; a\u05D0tz; [B5]; [B5] # aאtz
-B; A\u05D0TZ; [B5]; [B5] # aאtz
-B; A\u05D0tz; [B5]; [B5] # aאtz
-B; xn--atz-qpe; [B5]; [B5] # aאtz
-B; \u05D0T\u05EA; [B2]; [B2] # אtת
-B; \u05D0t\u05EA; [B2]; [B2] # אtת
-B; xn--t-zhc3f; [B2]; [B2] # אtת
-B; \u05D07\u05EA; ; xn--7-zhc3f # א7ת
-B; xn--7-zhc3f; \u05D07\u05EA; xn--7-zhc3f # א7ת
-B; \u05D0\u0667\u05EA; ; xn--4db6c6t # א٧ת
-B; xn--4db6c6t; \u05D0\u0667\u05EA; xn--4db6c6t # א٧ת
-B; a7\u0667z; [B5]; [B5] # a7٧z
-B; A7\u0667Z; [B5]; [B5] # a7٧z
-B; A7\u0667z; [B5]; [B5] # a7٧z
-B; xn--a7z-06e; [B5]; [B5] # a7٧z
-B; \u05D07\u0667\u05EA; [B4]; [B4] # א7٧ת
-B; xn--7-zhc3fty; [B4]; [B4] # א7٧ת
-T; ஹ\u0BCD\u200D; ; xn--dmc4b # ஹ்
-N; ஹ\u0BCD\u200D; ; xn--dmc4b194h # ஹ்
-B; xn--dmc4b; ஹ\u0BCD; xn--dmc4b # ஹ்
-B; ஹ\u0BCD; ; xn--dmc4b # ஹ்
-B; xn--dmc4b194h; ஹ\u0BCD\u200D; xn--dmc4b194h # ஹ்
-T; ஹ\u200D; [C2]; xn--dmc # ஹ
-N; ஹ\u200D; [C2]; [C2] # ஹ
-B; xn--dmc; ஹ; xn--dmc
-B; ஹ; ; xn--dmc
-B; xn--dmc225h; [C2]; [C2] # ஹ
-T; \u200D; [C2]; [A4_2] #
-N; \u200D; [C2]; [C2] #
-B; ; [A4_2]; [A4_2]
-B; xn--1ug; [C2]; [C2] #
-T; ஹ\u0BCD\u200C; ; xn--dmc4b # ஹ்
-N; ஹ\u0BCD\u200C; ; xn--dmc4by94h # ஹ்
-B; xn--dmc4by94h; ஹ\u0BCD\u200C; xn--dmc4by94h # ஹ்
-T; ஹ\u200C; [C1]; xn--dmc # ஹ
-N; ஹ\u200C; [C1]; [C1] # ஹ
-B; xn--dmc025h; [C1]; [C1] # ஹ
-T; \u200C; [C1]; [A4_2] #
-N; \u200C; [C1]; [C1] #
-B; xn--0ug; [C1]; [C1] #
-T; \u0644\u0670\u200C\u06ED\u06EF; ; xn--ghb2gxqia # لٰۭۯ
-N; \u0644\u0670\u200C\u06ED\u06EF; ; xn--ghb2gxqia7523a # لٰۭۯ
-B; xn--ghb2gxqia; \u0644\u0670\u06ED\u06EF; xn--ghb2gxqia # لٰۭۯ
-B; \u0644\u0670\u06ED\u06EF; ; xn--ghb2gxqia # لٰۭۯ
-B; xn--ghb2gxqia7523a; \u0644\u0670\u200C\u06ED\u06EF; xn--ghb2gxqia7523a # لٰۭۯ
-T; \u0644\u0670\u200C\u06EF; ; xn--ghb2g3q # لٰۯ
-N; \u0644\u0670\u200C\u06EF; ; xn--ghb2g3qq34f # لٰۯ
-B; xn--ghb2g3q; \u0644\u0670\u06EF; xn--ghb2g3q # لٰۯ
-B; \u0644\u0670\u06EF; ; xn--ghb2g3q # لٰۯ
-B; xn--ghb2g3qq34f; \u0644\u0670\u200C\u06EF; xn--ghb2g3qq34f # لٰۯ
-T; \u0644\u200C\u06ED\u06EF; ; xn--ghb25aga # لۭۯ
-N; \u0644\u200C\u06ED\u06EF; ; xn--ghb25aga828w # لۭۯ
-B; xn--ghb25aga; \u0644\u06ED\u06EF; xn--ghb25aga # لۭۯ
-B; \u0644\u06ED\u06EF; ; xn--ghb25aga # لۭۯ
-B; xn--ghb25aga828w; \u0644\u200C\u06ED\u06EF; xn--ghb25aga828w # لۭۯ
-T; \u0644\u200C\u06EF; ; xn--ghb65a # لۯ
-N; \u0644\u200C\u06EF; ; xn--ghb65a953d # لۯ
-B; xn--ghb65a; \u0644\u06EF; xn--ghb65a # لۯ
-B; \u0644\u06EF; ; xn--ghb65a # لۯ
-B; xn--ghb65a953d; \u0644\u200C\u06EF; xn--ghb65a953d # لۯ
-T; \u0644\u0670\u200C\u06ED; [B3 C1]; xn--ghb2gxq # لٰۭ
-N; \u0644\u0670\u200C\u06ED; [B3 C1]; [B3 C1] # لٰۭ
-B; xn--ghb2gxq; \u0644\u0670\u06ED; xn--ghb2gxq # لٰۭ
-B; \u0644\u0670\u06ED; ; xn--ghb2gxq # لٰۭ
-B; xn--ghb2gxqy34f; [B3 C1]; [B3 C1] # لٰۭ
-T; \u06EF\u200C\u06EF; [C1]; xn--cmba # ۯۯ
-N; \u06EF\u200C\u06EF; [C1]; [C1] # ۯۯ
-B; xn--cmba; \u06EF\u06EF; xn--cmba # ۯۯ
-B; \u06EF\u06EF; ; xn--cmba # ۯۯ
-B; xn--cmba004q; [C1]; [C1] # ۯۯ
-T; \u0644\u200C; [B3 C1]; xn--ghb # ل
-N; \u0644\u200C; [B3 C1]; [B3 C1] # ل
-B; xn--ghb; \u0644; xn--ghb # ل
-B; \u0644; ; xn--ghb # ل
-B; xn--ghb413k; [B3 C1]; [B3 C1] # ل
-B; a。。b; [A4_2]; [A4_2]
-B; A。。B; [A4_2]; [A4_2]
-B; a..b; [A4_2]; [A4_2]
-T; \u200D。。\u06B9\u200C; [B1 B3 C1 C2 A4_2]; [A4_2] # ..ڹ
-N; \u200D。。\u06B9\u200C; [B1 B3 C1 C2 A4_2]; [B1 B3 C1 C2 A4_2] # ..ڹ
-B; ..xn--skb; [A4_2]; [A4_2] # ..ڹ
-B; xn--1ug..xn--skb080k; [B1 B3 C1 C2 A4_2]; [B1 B3 C1 C2 A4_2] # ..ڹ
-B; \u05D00\u0660; [B4]; [B4] # א0٠
-B; xn--0-zhc74b; [B4]; [B4] # א0٠
-B; $; [P1 V6]; [P1 V6]
-
-# RANDOMIZED TESTS
-
-B; c.0ü.\u05D0; [B1]; [B1] # c.0ü.א
-B; c.0u\u0308.\u05D0; [B1]; [B1] # c.0ü.א
-B; C.0U\u0308.\u05D0; [B1]; [B1] # c.0ü.א
-B; C.0Ü.\u05D0; [B1]; [B1] # c.0ü.א
-B; ⒕∝\u065F򓤦.-󠄯; [P1 V3 V6]; [P1 V3 V6] # ⒕∝ٟ.-
-B; 14.∝\u065F򓤦.-󠄯; [P1 V3 V6]; [P1 V3 V6] # 14.∝ٟ.-
-B; 14.xn--7hb713l3v90n.-; [V3 V6]; [V3 V6] # 14.∝ٟ.-
-B; xn--7hb713lfwbi1311b.-; [V3 V6]; [V3 V6] # ⒕∝ٟ.-
-B; ꡣ.\u07CF; ; xn--8c9a.xn--qsb # ꡣ.ߏ
-B; xn--8c9a.xn--qsb; ꡣ.\u07CF; xn--8c9a.xn--qsb # ꡣ.ߏ
-B; ≯\u0603。-; [B1 P1 V3 V6]; [B1 P1 V3 V6] # ≯.-
-B; >\u0338\u0603。-; [B1 P1 V3 V6]; [B1 P1 V3 V6] # ≯.-
-B; ≯\u0603。-; [B1 P1 V3 V6]; [B1 P1 V3 V6] # ≯.-
-B; >\u0338\u0603。-; [B1 P1 V3 V6]; [B1 P1 V3 V6] # ≯.-
-B; xn--lfb566l.-; [B1 V3 V6]; [B1 V3 V6] # ≯.-
-T; ⾛𐹧⾕.\u115F󠗰ςႭ; [B5 P1 V6]; [B5 P1 V6] # 走𐹧谷.ςႭ
-N; ⾛𐹧⾕.\u115F󠗰ςႭ; [B5 P1 V6]; [B5 P1 V6] # 走𐹧谷.ςႭ
-T; 走𐹧谷.\u115F󠗰ςႭ; [B5 P1 V6]; [B5 P1 V6] # 走𐹧谷.ςႭ
-N; 走𐹧谷.\u115F󠗰ςႭ; [B5 P1 V6]; [B5 P1 V6] # 走𐹧谷.ςႭ
-T; 走𐹧谷.\u115F󠗰ςⴍ; [B5 P1 V6]; [B5 P1 V6] # 走𐹧谷.ςⴍ
-N; 走𐹧谷.\u115F󠗰ςⴍ; [B5 P1 V6]; [B5 P1 V6] # 走𐹧谷.ςⴍ
-B; 走𐹧谷.\u115F󠗰ΣႭ; [B5 P1 V6]; [B5 P1 V6] # 走𐹧谷.σႭ
-B; 走𐹧谷.\u115F󠗰σⴍ; [B5 P1 V6]; [B5 P1 V6] # 走𐹧谷.σⴍ
-B; 走𐹧谷.\u115F󠗰Σⴍ; [B5 P1 V6]; [B5 P1 V6] # 走𐹧谷.σⴍ
-B; xn--6g3a1x434z.xn--4xa180eotvh7453a; [B5 V6]; [B5 V6] # 走𐹧谷.σⴍ
-B; xn--6g3a1x434z.xn--4xa627dhpae6345i; [B5 V6]; [B5 V6] # 走𐹧谷.σႭ
-B; xn--6g3a1x434z.xn--3xa380eotvh7453a; [B5 V6]; [B5 V6] # 走𐹧谷.ςⴍ
-B; xn--6g3a1x434z.xn--3xa827dhpae6345i; [B5 V6]; [B5 V6] # 走𐹧谷.ςႭ
-T; ⾛𐹧⾕.\u115F󠗰ςⴍ; [B5 P1 V6]; [B5 P1 V6] # 走𐹧谷.ςⴍ
-N; ⾛𐹧⾕.\u115F󠗰ςⴍ; [B5 P1 V6]; [B5 P1 V6] # 走𐹧谷.ςⴍ
-B; ⾛𐹧⾕.\u115F󠗰ΣႭ; [B5 P1 V6]; [B5 P1 V6] # 走𐹧谷.σႭ
-B; ⾛𐹧⾕.\u115F󠗰σⴍ; [B5 P1 V6]; [B5 P1 V6] # 走𐹧谷.σⴍ
-B; ⾛𐹧⾕.\u115F󠗰Σⴍ; [B5 P1 V6]; [B5 P1 V6] # 走𐹧谷.σⴍ
-T; \u200D≠ᢙ≯.솣-ᡴႠ; [C2 P1 V6]; [P1 V6] # ≠ᢙ≯.솣-ᡴႠ
-N; \u200D≠ᢙ≯.솣-ᡴႠ; [C2 P1 V6]; [C2 P1 V6] # ≠ᢙ≯.솣-ᡴႠ
-T; \u200D=\u0338ᢙ>\u0338.솣-ᡴႠ; [C2 P1 V6]; [P1 V6] # ≠ᢙ≯.솣-ᡴႠ
-N; \u200D=\u0338ᢙ>\u0338.솣-ᡴႠ; [C2 P1 V6]; [C2 P1 V6] # ≠ᢙ≯.솣-ᡴႠ
-T; \u200D=\u0338ᢙ>\u0338.솣-ᡴⴀ; [C2 P1 V6]; [P1 V6] # ≠ᢙ≯.솣-ᡴⴀ
-N; \u200D=\u0338ᢙ>\u0338.솣-ᡴⴀ; [C2 P1 V6]; [C2 P1 V6] # ≠ᢙ≯.솣-ᡴⴀ
-T; \u200D≠ᢙ≯.솣-ᡴⴀ; [C2 P1 V6]; [P1 V6] # ≠ᢙ≯.솣-ᡴⴀ
-N; \u200D≠ᢙ≯.솣-ᡴⴀ; [C2 P1 V6]; [C2 P1 V6] # ≠ᢙ≯.솣-ᡴⴀ
-B; xn--jbf911clb.xn----p9j493ivi4l; [V6]; [V6]
-B; xn--jbf929a90b0b.xn----p9j493ivi4l; [C2 V6]; [C2 V6] # ≠ᢙ≯.솣-ᡴⴀ
-B; xn--jbf911clb.xn----6zg521d196p; [V6]; [V6]
-B; xn--jbf929a90b0b.xn----6zg521d196p; [C2 V6]; [C2 V6] # ≠ᢙ≯.솣-ᡴႠ
-B; 񯞜.𐿇\u0FA2\u077D\u0600; [P1 V6]; [P1 V6] # .ྡྷݽ
-B; 񯞜.𐿇\u0FA1\u0FB7\u077D\u0600; [P1 V6]; [P1 V6] # .ྡྷݽ
-B; 񯞜.𐿇\u0FA1\u0FB7\u077D\u0600; [P1 V6]; [P1 V6] # .ྡྷݽ
-B; xn--gw68a.xn--ifb57ev2psc6027m; [V6]; [V6] # .ྡྷݽ
-B; 𣳔\u0303.𑓂; [V5]; [V5] # 𣳔̃.𑓂
-B; xn--nsa95820a.xn--wz1d; [V5]; [V5] # 𣳔̃.𑓂
-B; 𞤀𞥅񘐱。󠄌Ⴣꡥ; [B2 B3 P1 V6]; [B2 B3 P1 V6]
-B; 𞤢𞥅񘐱。󠄌ⴣꡥ; [B2 B3 P1 V6]; [B2 B3 P1 V6]
-B; xn--9d6hgcy3556a.xn--rlju750b; [B2 B3 V6]; [B2 B3 V6]
-B; xn--9d6hgcy3556a.xn--7nd0578e; [B2 B3 V6]; [B2 B3 V6]
-B; 𞤀𞥅񘐱。󠄌ⴣꡥ; [B2 B3 P1 V6]; [B2 B3 P1 V6]
-T; \u08E2𑁿ς𖬱。󠅡렧; [B1 P1 V6]; [B1 P1 V6] # 𑁿ς𖬱.렧
-N; \u08E2𑁿ς𖬱。󠅡렧; [B1 P1 V6]; [B1 P1 V6] # 𑁿ς𖬱.렧
-T; \u08E2𑁿ς𖬱。󠅡렧; [B1 P1 V6]; [B1 P1 V6] # 𑁿ς𖬱.렧
-N; \u08E2𑁿ς𖬱。󠅡렧; [B1 P1 V6]; [B1 P1 V6] # 𑁿ς𖬱.렧
-B; \u08E2𑁿Σ𖬱。󠅡렧; [B1 P1 V6]; [B1 P1 V6] # 𑁿σ𖬱.렧
-B; \u08E2𑁿Σ𖬱。󠅡렧; [B1 P1 V6]; [B1 P1 V6] # 𑁿σ𖬱.렧
-B; \u08E2𑁿σ𖬱。󠅡렧; [B1 P1 V6]; [B1 P1 V6] # 𑁿σ𖬱.렧
-B; \u08E2𑁿σ𖬱。󠅡렧; [B1 P1 V6]; [B1 P1 V6] # 𑁿σ𖬱.렧
-B; xn--4xa53xp48ys2xc.xn--kn2b; [B1 V6]; [B1 V6] # 𑁿σ𖬱.렧
-B; xn--3xa73xp48ys2xc.xn--kn2b; [B1 V6]; [B1 V6] # 𑁿ς𖬱.렧
-T; -\u200D。𞤍\u200C\u200D⒈; [B1 C1 C2 P1 V3 V6]; [B1 P1 V3 V6] # -.𞤯⒈
-N; -\u200D。𞤍\u200C\u200D⒈; [B1 C1 C2 P1 V3 V6]; [B1 C1 C2 P1 V3 V6] # -.𞤯⒈
-T; -\u200D。𞤍\u200C\u200D1.; [B1 C1 C2 V3]; [B1 V3] # -.𞤯1.
-N; -\u200D。𞤍\u200C\u200D1.; [B1 C1 C2 V3]; [B1 C1 C2 V3] # -.𞤯1.
-T; -\u200D。𞤯\u200C\u200D1.; [B1 C1 C2 V3]; [B1 V3] # -.𞤯1.
-N; -\u200D。𞤯\u200C\u200D1.; [B1 C1 C2 V3]; [B1 C1 C2 V3] # -.𞤯1.
-B; -.xn--1-0i8r.; [B1 V3]; [B1 V3]
-B; xn----ugn.xn--1-rgnd61297b.; [B1 C1 C2 V3]; [B1 C1 C2 V3] # -.𞤯1.
-T; -\u200D。𞤯\u200C\u200D⒈; [B1 C1 C2 P1 V3 V6]; [B1 P1 V3 V6] # -.𞤯⒈
-N; -\u200D。𞤯\u200C\u200D⒈; [B1 C1 C2 P1 V3 V6]; [B1 C1 C2 P1 V3 V6] # -.𞤯⒈
-B; -.xn--tsh3666n; [B1 V3 V6]; [B1 V3 V6]
-B; xn----ugn.xn--0ugc555aiv51d; [B1 C1 C2 V3 V6]; [B1 C1 C2 V3 V6] # -.𞤯⒈
-T; \u200C򅎭.Ⴒ𑇀; [C1 P1 V6]; [P1 V6] # .Ⴒ𑇀
-N; \u200C򅎭.Ⴒ𑇀; [C1 P1 V6]; [C1 P1 V6] # .Ⴒ𑇀
-T; \u200C򅎭.ⴒ𑇀; [C1 P1 V6]; [P1 V6] # .ⴒ𑇀
-N; \u200C򅎭.ⴒ𑇀; [C1 P1 V6]; [C1 P1 V6] # .ⴒ𑇀
-B; xn--bn95b.xn--9kj2034e; [V6]; [V6]
-B; xn--0ug15083f.xn--9kj2034e; [C1 V6]; [C1 V6] # .ⴒ𑇀
-B; xn--bn95b.xn--qnd6272k; [V6]; [V6]
-B; xn--0ug15083f.xn--qnd6272k; [C1 V6]; [C1 V6] # .Ⴒ𑇀
-T; 繱𑖿\u200D.8︒; [P1 V6]; [P1 V6] # 繱𑖿.8︒
-N; 繱𑖿\u200D.8︒; [P1 V6]; [P1 V6] # 繱𑖿.8︒
-T; 繱𑖿\u200D.8。; 繱𑖿\u200D.8.; xn--gl0as212a.8. # 繱𑖿.8.
-N; 繱𑖿\u200D.8。; 繱𑖿\u200D.8.; xn--1ug6928ac48e.8. # 繱𑖿.8.
-B; xn--gl0as212a.8.; 繱𑖿.8.; xn--gl0as212a.8.
-B; 繱𑖿.8.; ; xn--gl0as212a.8.
-B; xn--1ug6928ac48e.8.; 繱𑖿\u200D.8.; xn--1ug6928ac48e.8. # 繱𑖿.8.
-T; 繱𑖿\u200D.8.; ; xn--gl0as212a.8. # 繱𑖿.8.
-N; 繱𑖿\u200D.8.; ; xn--1ug6928ac48e.8. # 繱𑖿.8.
-B; xn--gl0as212a.xn--8-o89h; [V6]; [V6]
-B; xn--1ug6928ac48e.xn--8-o89h; [V6]; [V6] # 繱𑖿.8︒
-B; 󠆾.𞀈; [V5 A4_2]; [V5 A4_2]
-B; 󠆾.𞀈; [V5 A4_2]; [V5 A4_2]
-B; .xn--ph4h; [V5 A4_2]; [V5 A4_2]
-T; ß\u06EB。\u200D; [C2]; xn--ss-59d. # ß۫.
-N; ß\u06EB。\u200D; [C2]; [C2] # ß۫.
-T; SS\u06EB。\u200D; [C2]; xn--ss-59d. # ss۫.
-N; SS\u06EB。\u200D; [C2]; [C2] # ss۫.
-T; ss\u06EB。\u200D; [C2]; xn--ss-59d. # ss۫.
-N; ss\u06EB。\u200D; [C2]; [C2] # ss۫.
-T; Ss\u06EB。\u200D; [C2]; xn--ss-59d. # ss۫.
-N; Ss\u06EB。\u200D; [C2]; [C2] # ss۫.
-B; xn--ss-59d.; ss\u06EB.; xn--ss-59d. # ss۫.
-B; ss\u06EB.; ; xn--ss-59d. # ss۫.
-B; SS\u06EB.; ss\u06EB.; xn--ss-59d. # ss۫.
-B; Ss\u06EB.; ss\u06EB.; xn--ss-59d. # ss۫.
-B; xn--ss-59d.xn--1ug; [C2]; [C2] # ss۫.
-B; xn--zca012a.xn--1ug; [C2]; [C2] # ß۫.
-T; 󠐵\u200C⒈.󠎇; [C1 P1 V6]; [P1 V6] # ⒈.
-N; 󠐵\u200C⒈.󠎇; [C1 P1 V6]; [C1 P1 V6] # ⒈.
-T; 󠐵\u200C1..󠎇; [C1 P1 V6 A4_2]; [P1 V6 A4_2] # 1..
-N; 󠐵\u200C1..󠎇; [C1 P1 V6 A4_2]; [C1 P1 V6 A4_2] # 1..
-B; xn--1-bs31m..xn--tv36e; [V6 A4_2]; [V6 A4_2]
-B; xn--1-rgn37671n..xn--tv36e; [C1 V6 A4_2]; [C1 V6 A4_2] # 1..
-B; xn--tshz2001k.xn--tv36e; [V6]; [V6]
-B; xn--0ug88o47900b.xn--tv36e; [C1 V6]; [C1 V6] # ⒈.
-T; 󟈣\u065F\uAAB2ß。󌓧; [P1 V6]; [P1 V6] # ٟꪲß.
-N; 󟈣\u065F\uAAB2ß。󌓧; [P1 V6]; [P1 V6] # ٟꪲß.
-B; 󟈣\u065F\uAAB2SS。󌓧; [P1 V6]; [P1 V6] # ٟꪲss.
-B; 󟈣\u065F\uAAB2ss。󌓧; [P1 V6]; [P1 V6] # ٟꪲss.
-B; 󟈣\u065F\uAAB2Ss。󌓧; [P1 V6]; [P1 V6] # ٟꪲss.
-B; xn--ss-3xd2839nncy1m.xn--bb79d; [V6]; [V6] # ٟꪲss.
-B; xn--zca92z0t7n5w96j.xn--bb79d; [V6]; [V6] # ٟꪲß.
-T; \u0774\u200C𞤿。𽘐䉜\u200D񿤼; [C1 C2 P1 V6]; [P1 V6] # ݴ𞤿.䉜
-N; \u0774\u200C𞤿。𽘐䉜\u200D񿤼; [C1 C2 P1 V6]; [C1 C2 P1 V6] # ݴ𞤿.䉜
-T; \u0774\u200C𞤝。𽘐䉜\u200D񿤼; [C1 C2 P1 V6]; [P1 V6] # ݴ𞤿.䉜
-N; \u0774\u200C𞤝。𽘐䉜\u200D񿤼; [C1 C2 P1 V6]; [C1 C2 P1 V6] # ݴ𞤿.䉜
-B; xn--4pb2977v.xn--z0nt555ukbnv; [V6]; [V6] # ݴ𞤿.䉜
-B; xn--4pb607jjt73a.xn--1ug236ke314donv1a; [C1 C2 V6]; [C1 C2 V6] # ݴ𞤿.䉜
-T; 򔭜ςᡱ⒈.≮𑄳\u200D𐮍; [B1 P1 V6]; [B1 P1 V6] # ςᡱ⒈.≮𑄳𐮍
-N; 򔭜ςᡱ⒈.≮𑄳\u200D𐮍; [B1 P1 V6]; [B1 P1 V6] # ςᡱ⒈.≮𑄳𐮍
-T; 򔭜ςᡱ⒈.<\u0338𑄳\u200D𐮍; [B1 P1 V6]; [B1 P1 V6] # ςᡱ⒈.≮𑄳𐮍
-N; 򔭜ςᡱ⒈.<\u0338𑄳\u200D𐮍; [B1 P1 V6]; [B1 P1 V6] # ςᡱ⒈.≮𑄳𐮍
-T; 򔭜ςᡱ1..≮𑄳\u200D𐮍; [B1 P1 V6 A4_2]; [B1 P1 V6 A4_2] # ςᡱ1..≮𑄳𐮍
-N; 򔭜ςᡱ1..≮𑄳\u200D𐮍; [B1 P1 V6 A4_2]; [B1 P1 V6 A4_2] # ςᡱ1..≮𑄳𐮍
-T; 򔭜ςᡱ1..<\u0338𑄳\u200D𐮍; [B1 P1 V6 A4_2]; [B1 P1 V6 A4_2] # ςᡱ1..≮𑄳𐮍
-N; 򔭜ςᡱ1..<\u0338𑄳\u200D𐮍; [B1 P1 V6 A4_2]; [B1 P1 V6 A4_2] # ςᡱ1..≮𑄳𐮍
-T; 򔭜Σᡱ1..<\u0338𑄳\u200D𐮍; [B1 P1 V6 A4_2]; [B1 P1 V6 A4_2] # σᡱ1..≮𑄳𐮍
-N; 򔭜Σᡱ1..<\u0338𑄳\u200D𐮍; [B1 P1 V6 A4_2]; [B1 P1 V6 A4_2] # σᡱ1..≮𑄳𐮍
-T; 򔭜Σᡱ1..≮𑄳\u200D𐮍; [B1 P1 V6 A4_2]; [B1 P1 V6 A4_2] # σᡱ1..≮𑄳𐮍
-N; 򔭜Σᡱ1..≮𑄳\u200D𐮍; [B1 P1 V6 A4_2]; [B1 P1 V6 A4_2] # σᡱ1..≮𑄳𐮍
-T; 򔭜σᡱ1..≮𑄳\u200D𐮍; [B1 P1 V6 A4_2]; [B1 P1 V6 A4_2] # σᡱ1..≮𑄳𐮍
-N; 򔭜σᡱ1..≮𑄳\u200D𐮍; [B1 P1 V6 A4_2]; [B1 P1 V6 A4_2] # σᡱ1..≮𑄳𐮍
-T; 򔭜σᡱ1..<\u0338𑄳\u200D𐮍; [B1 P1 V6 A4_2]; [B1 P1 V6 A4_2] # σᡱ1..≮𑄳𐮍
-N; 򔭜σᡱ1..<\u0338𑄳\u200D𐮍; [B1 P1 V6 A4_2]; [B1 P1 V6 A4_2] # σᡱ1..≮𑄳𐮍
-B; xn--1-zmb699meq63t..xn--gdh5392g6sd; [B1 V6 A4_2]; [B1 V6 A4_2]
-B; xn--1-zmb699meq63t..xn--1ug85gn777ahze; [B1 V6 A4_2]; [B1 V6 A4_2] # σᡱ1..≮𑄳𐮍
-B; xn--1-xmb999meq63t..xn--1ug85gn777ahze; [B1 V6 A4_2]; [B1 V6 A4_2] # ςᡱ1..≮𑄳𐮍
-T; 򔭜Σᡱ⒈.<\u0338𑄳\u200D𐮍; [B1 P1 V6]; [B1 P1 V6] # σᡱ⒈.≮𑄳𐮍
-N; 򔭜Σᡱ⒈.<\u0338𑄳\u200D𐮍; [B1 P1 V6]; [B1 P1 V6] # σᡱ⒈.≮𑄳𐮍
-T; 򔭜Σᡱ⒈.≮𑄳\u200D𐮍; [B1 P1 V6]; [B1 P1 V6] # σᡱ⒈.≮𑄳𐮍
-N; 򔭜Σᡱ⒈.≮𑄳\u200D𐮍; [B1 P1 V6]; [B1 P1 V6] # σᡱ⒈.≮𑄳𐮍
-T; 򔭜σᡱ⒈.≮𑄳\u200D𐮍; [B1 P1 V6]; [B1 P1 V6] # σᡱ⒈.≮𑄳𐮍
-N; 򔭜σᡱ⒈.≮𑄳\u200D𐮍; [B1 P1 V6]; [B1 P1 V6] # σᡱ⒈.≮𑄳𐮍
-T; 򔭜σᡱ⒈.<\u0338𑄳\u200D𐮍; [B1 P1 V6]; [B1 P1 V6] # σᡱ⒈.≮𑄳𐮍
-N; 򔭜σᡱ⒈.<\u0338𑄳\u200D𐮍; [B1 P1 V6]; [B1 P1 V6] # σᡱ⒈.≮𑄳𐮍
-B; xn--4xa207hkzinr77u.xn--gdh5392g6sd; [B1 V6]; [B1 V6]
-B; xn--4xa207hkzinr77u.xn--1ug85gn777ahze; [B1 V6]; [B1 V6] # σᡱ⒈.≮𑄳𐮍
-B; xn--3xa407hkzinr77u.xn--1ug85gn777ahze; [B1 V6]; [B1 V6] # ςᡱ⒈.≮𑄳𐮍
-B; \u3164\u094DႠ\u17D0.\u180B; [P1 V6]; [P1 V6] # ्Ⴀ័.
-B; \u1160\u094DႠ\u17D0.\u180B; [P1 V6]; [P1 V6] # ्Ⴀ័.
-B; \u1160\u094Dⴀ\u17D0.\u180B; [P1 V6]; [P1 V6] # ्ⴀ័.
-B; xn--n3b742bkqf4ty.; [V6]; [V6] # ्ⴀ័.
-B; xn--n3b468aoqa89r.; [V6]; [V6] # ्Ⴀ័.
-B; \u3164\u094Dⴀ\u17D0.\u180B; [P1 V6]; [P1 V6] # ्ⴀ័.
-B; xn--n3b445e53po6d.; [V6]; [V6] # ्ⴀ័.
-B; xn--n3b468azngju2a.; [V6]; [V6] # ्Ⴀ័.
-T; ❣\u200D.\u09CD𑰽\u0612\uA929; [C2 V5]; [V5] # ❣.্𑰽ؒꤩ
-N; ❣\u200D.\u09CD𑰽\u0612\uA929; [C2 V5]; [C2 V5] # ❣.্𑰽ؒꤩ
-T; ❣\u200D.\u09CD𑰽\u0612\uA929; [C2 V5]; [V5] # ❣.্𑰽ؒꤩ
-N; ❣\u200D.\u09CD𑰽\u0612\uA929; [C2 V5]; [C2 V5] # ❣.্𑰽ؒꤩ
-B; xn--pei.xn--0fb32q3w7q2g4d; [V5]; [V5] # ❣.্𑰽ؒꤩ
-B; xn--1ugy10a.xn--0fb32q3w7q2g4d; [C2 V5]; [C2 V5] # ❣.্𑰽ؒꤩ
-B; ≮𐳺𐹄.≯񪮸ꡅ; [B1 P1 V6]; [B1 P1 V6]
-B; <\u0338𐳺𐹄.>\u0338񪮸ꡅ; [B1 P1 V6]; [B1 P1 V6]
-B; xn--gdh7943gk2a.xn--hdh1383c5e36c; [B1 V6]; [B1 V6]
-B; \u0CCC𐧅𐳏󠲺。\u0CCDᠦ; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ೌ𐧅𐳏.್ᠦ
-B; \u0CCC𐧅𐳏󠲺。\u0CCDᠦ; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ೌ𐧅𐳏.್ᠦ
-B; \u0CCC𐧅𐲏󠲺。\u0CCDᠦ; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ೌ𐧅𐳏.್ᠦ
-B; xn--7tc6360ky5bn2732c.xn--8tc429c; [B1 V5 V6]; [B1 V5 V6] # ೌ𐧅𐳏.್ᠦ
-B; \u0CCC𐧅𐲏󠲺。\u0CCDᠦ; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ೌ𐧅𐳏.್ᠦ
-B; \u0349。𧡫; [V5]; [V5] # ͉.𧡫
-B; xn--nua.xn--bc6k; [V5]; [V5] # ͉.𧡫
-B; 𑰿󠅦.\u1160; [P1 V5 V6]; [P1 V5 V6] # 𑰿.
-B; 𑰿󠅦.\u1160; [P1 V5 V6]; [P1 V5 V6] # 𑰿.
-B; xn--ok3d.xn--psd; [V5 V6]; [V5 V6] # 𑰿.
-T; -𞤆\u200D。󸼄𞳒; [B1 B5 B6 C2 P1 V3 V6]; [B1 B5 B6 P1 V3 V6] # -𞤨.
-N; -𞤆\u200D。󸼄𞳒; [B1 B5 B6 C2 P1 V3 V6]; [B1 B5 B6 C2 P1 V3 V6] # -𞤨.
-T; -𞤨\u200D。󸼄𞳒; [B1 B5 B6 C2 P1 V3 V6]; [B1 B5 B6 P1 V3 V6] # -𞤨.
-N; -𞤨\u200D。󸼄𞳒; [B1 B5 B6 C2 P1 V3 V6]; [B1 B5 B6 C2 P1 V3 V6] # -𞤨.
-B; xn----ni8r.xn--846h96596c; [B1 B5 B6 V3 V6]; [B1 B5 B6 V3 V6]
-B; xn----ugnx367r.xn--846h96596c; [B1 B5 B6 C2 V3 V6]; [B1 B5 B6 C2 V3 V6] # -𞤨.
-B; ꡏ󠇶≯𳾽。\u1DFD⾇滸𐹰; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ꡏ≯.᷽舛滸𐹰
-B; ꡏ󠇶>\u0338𳾽。\u1DFD⾇滸𐹰; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ꡏ≯.᷽舛滸𐹰
-B; ꡏ󠇶≯𳾽。\u1DFD舛滸𐹰; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ꡏ≯.᷽舛滸𐹰
-B; ꡏ󠇶>\u0338𳾽。\u1DFD舛滸𐹰; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ꡏ≯.᷽舛滸𐹰
-B; xn--hdh7483cu6twwki8e.xn--yfg0765a58l0n6k; [B1 V5 V6]; [B1 V5 V6] # ꡏ≯.᷽舛滸𐹰
-B; 蔏。𑰺; [V5]; [V5]
-B; 蔏。𑰺; [V5]; [V5]
-B; xn--uy1a.xn--jk3d; [V5]; [V5]
-B; 𝟿𐮋。󠄊; [B1]; [B1]
-B; 9𐮋。󠄊; [B1]; [B1]
-B; xn--9-rv5i.; [B1]; [B1]
-B; 󟇇-䟖F。\u07CB⒈\u0662; [B4 P1 V6]; [B4 P1 V6] # -䟖f.ߋ⒈٢
-B; 󟇇-䟖F。\u07CB1.\u0662; [B1 P1 V6]; [B1 P1 V6] # -䟖f.ߋ1.٢
-B; 󟇇-䟖f。\u07CB1.\u0662; [B1 P1 V6]; [B1 P1 V6] # -䟖f.ߋ1.٢
-B; xn---f-mz8b08788k.xn--1-ybd.xn--bib; [B1 V6]; [B1 V6] # -䟖f.ߋ1.٢
-B; 󟇇-䟖f。\u07CB⒈\u0662; [B4 P1 V6]; [B4 P1 V6] # -䟖f.ߋ⒈٢
-B; xn---f-mz8b08788k.xn--bib53ev44d; [B4 V6]; [B4 V6] # -䟖f.ߋ⒈٢
-T; \u200C。𐹺; [B1 C1]; [B1 A4_2] # .𐹺
-N; \u200C。𐹺; [B1 C1]; [B1 C1] # .𐹺
-T; \u200C。𐹺; [B1 C1]; [B1 A4_2] # .𐹺
-N; \u200C。𐹺; [B1 C1]; [B1 C1] # .𐹺
-B; .xn--yo0d; [B1 A4_2]; [B1 A4_2]
-B; xn--0ug.xn--yo0d; [B1 C1]; [B1 C1] # .𐹺
-T; 𐡆.≯\u200C-𞥀; [B1 C1 P1 V6]; [B1 P1 V6] # 𐡆.≯-𞥀
-N; 𐡆.≯\u200C-𞥀; [B1 C1 P1 V6]; [B1 C1 P1 V6] # 𐡆.≯-𞥀
-T; 𐡆.>\u0338\u200C-𞥀; [B1 C1 P1 V6]; [B1 P1 V6] # 𐡆.≯-𞥀
-N; 𐡆.>\u0338\u200C-𞥀; [B1 C1 P1 V6]; [B1 C1 P1 V6] # 𐡆.≯-𞥀
-T; 𐡆.>\u0338\u200C-𞤞; [B1 C1 P1 V6]; [B1 P1 V6] # 𐡆.≯-𞥀
-N; 𐡆.>\u0338\u200C-𞤞; [B1 C1 P1 V6]; [B1 C1 P1 V6] # 𐡆.≯-𞥀
-T; 𐡆.≯\u200C-𞤞; [B1 C1 P1 V6]; [B1 P1 V6] # 𐡆.≯-𞥀
-N; 𐡆.≯\u200C-𞤞; [B1 C1 P1 V6]; [B1 C1 P1 V6] # 𐡆.≯-𞥀
-B; xn--le9c.xn----ogo9956r; [B1 V6]; [B1 V6]
-B; xn--le9c.xn----rgn40iy359e; [B1 C1 V6]; [B1 C1 V6] # 𐡆.≯-𞥀
-B; 󠁀-。≠\uFCD7; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -.≠هج
-B; 󠁀-。=\u0338\uFCD7; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -.≠هج
-B; 󠁀-。≠\u0647\u062C; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -.≠هج
-B; 󠁀-。=\u0338\u0647\u062C; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -.≠هج
-B; xn----f411m.xn--rgb7c611j; [B1 V3 V6]; [B1 V3 V6] # -.≠هج
-T; 񻬹𑈵。\u200D𞨶; [B1 C2 P1 V6]; [P1 V6] # 𑈵.
-N; 񻬹𑈵。\u200D𞨶; [B1 C2 P1 V6]; [B1 C2 P1 V6] # 𑈵.
-B; xn--8g1d12120a.xn--5l6h; [V6]; [V6]
-B; xn--8g1d12120a.xn--1ug6651p; [B1 C2 V6]; [B1 C2 V6] # 𑈵.
-B; 𑋧\uA9C02。㧉򒖄; [P1 V5 V6]; [P1 V5 V6] # 𑋧꧀2.㧉
-B; 𑋧\uA9C02。㧉򒖄; [P1 V5 V6]; [P1 V5 V6] # 𑋧꧀2.㧉
-B; xn--2-5z4eu89y.xn--97l02706d; [V5 V6]; [V5 V6] # 𑋧꧀2.㧉
-T; \u200C𽬄𐹴𞩥。≯6; [B1 C1 P1 V6]; [B1 B5 B6 P1 V6] # 𐹴.≯6
-N; \u200C𽬄𐹴𞩥。≯6; [B1 C1 P1 V6]; [B1 C1 P1 V6] # 𐹴.≯6
-T; \u200C𽬄𐹴𞩥。>\u03386; [B1 C1 P1 V6]; [B1 B5 B6 P1 V6] # 𐹴.≯6
-N; \u200C𽬄𐹴𞩥。>\u03386; [B1 C1 P1 V6]; [B1 C1 P1 V6] # 𐹴.≯6
-B; xn--so0du768aim9m.xn--6-ogo; [B1 B5 B6 V6]; [B1 B5 B6 V6]
-B; xn--0ug7105gf5wfxepq.xn--6-ogo; [B1 C1 V6]; [B1 C1 V6] # 𐹴.≯6
-T; 𑁿.𐹦𻞵-\u200D; [B1 B3 B6 C2 P1 V5 V6]; [B1 B3 B6 P1 V3 V5 V6] # 𑁿.𐹦-
-N; 𑁿.𐹦𻞵-\u200D; [B1 B3 B6 C2 P1 V5 V6]; [B1 B3 B6 C2 P1 V5 V6] # 𑁿.𐹦-
-T; 𑁿.𐹦𻞵-\u200D; [B1 B3 B6 C2 P1 V5 V6]; [B1 B3 B6 P1 V3 V5 V6] # 𑁿.𐹦-
-N; 𑁿.𐹦𻞵-\u200D; [B1 B3 B6 C2 P1 V5 V6]; [B1 B3 B6 C2 P1 V5 V6] # 𑁿.𐹦-
-B; xn--q30d.xn----i26i1299n; [B1 B3 B6 V3 V5 V6]; [B1 B3 B6 V3 V5 V6]
-B; xn--q30d.xn----ugn1088hfsxv; [B1 B3 B6 C2 V5 V6]; [B1 B3 B6 C2 V5 V6] # 𑁿.𐹦-
-T; ⤸ς𺱀。\uFFA0; [P1 V6]; [P1 V6] # ⤸ς.
-N; ⤸ς𺱀。\uFFA0; [P1 V6]; [P1 V6] # ⤸ς.
-T; ⤸ς𺱀。\u1160; [P1 V6]; [P1 V6] # ⤸ς.
-N; ⤸ς𺱀。\u1160; [P1 V6]; [P1 V6] # ⤸ς.
-B; ⤸Σ𺱀。\u1160; [P1 V6]; [P1 V6] # ⤸σ.
-B; ⤸σ𺱀。\u1160; [P1 V6]; [P1 V6] # ⤸σ.
-B; xn--4xa192qmp03d.xn--psd; [V6]; [V6] # ⤸σ.
-B; xn--3xa392qmp03d.xn--psd; [V6]; [V6] # ⤸ς.
-B; ⤸Σ𺱀。\uFFA0; [P1 V6]; [P1 V6] # ⤸σ.
-B; ⤸σ𺱀。\uFFA0; [P1 V6]; [P1 V6] # ⤸σ.
-B; xn--4xa192qmp03d.xn--cl7c; [V6]; [V6] # ⤸σ.
-B; xn--3xa392qmp03d.xn--cl7c; [V6]; [V6] # ⤸ς.
-B; \u0765\u1035𐫔\u06D5.𐦬𑋪Ⴃ; [B2 B3 P1 V6]; [B2 B3 P1 V6] # ݥဵ𐫔ە.𐦬𑋪Ⴃ
-B; \u0765\u1035𐫔\u06D5.𐦬𑋪ⴃ; [B2 B3]; [B2 B3] # ݥဵ𐫔ە.𐦬𑋪ⴃ
-B; xn--llb10as9tqp5y.xn--ukj7371e21f; [B2 B3]; [B2 B3] # ݥဵ𐫔ە.𐦬𑋪ⴃ
-B; xn--llb10as9tqp5y.xn--bnd9168j21f; [B2 B3 V6]; [B2 B3 V6] # ݥဵ𐫔ە.𐦬𑋪Ⴃ
-B; \u0661\u1B44-킼.\u1BAA\u0616\u066C≯; [B1 B5 B6 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # ١᭄-킼.᮪ؖ٬≯
-B; \u0661\u1B44-킼.\u1BAA\u0616\u066C>\u0338; [B1 B5 B6 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # ١᭄-킼.᮪ؖ٬≯
-B; xn----9pc551nk39n.xn--4fb6o571degg; [B1 B5 B6 V5 V6]; [B1 B5 B6 V5 V6] # ١᭄-킼.᮪ؖ٬≯
-B; -。\u06C2\u0604򅖡𑓂; [B1 B2 B3 P1 V3 V6]; [B1 B2 B3 P1 V3 V6] # -.ۂ𑓂
-B; -。\u06C1\u0654\u0604򅖡𑓂; [B1 B2 B3 P1 V3 V6]; [B1 B2 B3 P1 V3 V6] # -.ۂ𑓂
-B; -.xn--mfb39a7208dzgs3d; [B1 B2 B3 V3 V6]; [B1 B2 B3 V3 V6] # -.ۂ𑓂
-T; \u200D󯑖󠁐.\u05BD𙮰ꡝ𐋡; [C2 P1 V5 V6]; [P1 V5 V6] # .ֽꡝ𐋡
-N; \u200D󯑖󠁐.\u05BD𙮰ꡝ𐋡; [C2 P1 V5 V6]; [C2 P1 V5 V6] # .ֽꡝ𐋡
-T; \u200D󯑖󠁐.\u05BD𙮰ꡝ𐋡; [C2 P1 V5 V6]; [P1 V5 V6] # .ֽꡝ𐋡
-N; \u200D󯑖󠁐.\u05BD𙮰ꡝ𐋡; [C2 P1 V5 V6]; [C2 P1 V5 V6] # .ֽꡝ𐋡
-B; xn--b726ey18m.xn--ldb8734fg0qcyzzg; [V5 V6]; [V5 V6] # .ֽꡝ𐋡
-B; xn--1ug66101lt8me.xn--ldb8734fg0qcyzzg; [C2 V5 V6]; [C2 V5 V6] # .ֽꡝ𐋡
-T; ︒􃈵ς񀠇。𐮈; [B1 P1 V6]; [B1 P1 V6]
-N; ︒􃈵ς񀠇。𐮈; [B1 P1 V6]; [B1 P1 V6]
-T; 。􃈵ς񀠇。𐮈; [P1 V6 A4_2]; [P1 V6 A4_2]
-N; 。􃈵ς񀠇。𐮈; [P1 V6 A4_2]; [P1 V6 A4_2]
-B; 。􃈵Σ񀠇。𐮈; [P1 V6 A4_2]; [P1 V6 A4_2]
-B; 。􃈵σ񀠇。𐮈; [P1 V6 A4_2]; [P1 V6 A4_2]
-B; .xn--4xa68573c7n64d.xn--f29c; [V6 A4_2]; [V6 A4_2]
-B; .xn--3xa88573c7n64d.xn--f29c; [V6 A4_2]; [V6 A4_2]
-B; ︒􃈵Σ񀠇。𐮈; [B1 P1 V6]; [B1 P1 V6]
-B; ︒􃈵σ񀠇。𐮈; [B1 P1 V6]; [B1 P1 V6]
-B; xn--4xa1729jwz5t7gl5f.xn--f29c; [B1 V6]; [B1 V6]
-B; xn--3xa3729jwz5t7gl5f.xn--f29c; [B1 V6]; [B1 V6]
-B; \u07D9.\u06EE󆾃≯󠅲; [B2 B3 P1 V6]; [B2 B3 P1 V6] # ߙ.ۮ≯
-B; \u07D9.\u06EE󆾃>\u0338󠅲; [B2 B3 P1 V6]; [B2 B3 P1 V6] # ߙ.ۮ≯
-B; \u07D9.\u06EE󆾃≯󠅲; [B2 B3 P1 V6]; [B2 B3 P1 V6] # ߙ.ۮ≯
-B; \u07D9.\u06EE󆾃>\u0338󠅲; [B2 B3 P1 V6]; [B2 B3 P1 V6] # ߙ.ۮ≯
-B; xn--0sb.xn--bmb691l0524t; [B2 B3 V6]; [B2 B3 V6] # ߙ.ۮ≯
-B; \u1A73󚙸.𐭍; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ᩳ.𐭍
-B; xn--2of22352n.xn--q09c; [B1 V5 V6]; [B1 V5 V6] # ᩳ.𐭍
-B; ⒉󠊓≠。Ⴟ⬣Ⴈ; [P1 V6]; [P1 V6]
-B; ⒉󠊓=\u0338。Ⴟ⬣Ⴈ; [P1 V6]; [P1 V6]
-B; 2.󠊓≠。Ⴟ⬣Ⴈ; [P1 V6]; [P1 V6]
-B; 2.󠊓=\u0338。Ⴟ⬣Ⴈ; [P1 V6]; [P1 V6]
-B; 2.󠊓=\u0338。ⴟ⬣ⴈ; [P1 V6]; [P1 V6]
-B; 2.󠊓≠。ⴟ⬣ⴈ; [P1 V6]; [P1 V6]
-B; 2.xn--1chz4101l.xn--45iz7d6b; [V6]; [V6]
-B; 2.xn--1chz4101l.xn--gnd9b297j; [V6]; [V6]
-B; ⒉󠊓=\u0338。ⴟ⬣ⴈ; [P1 V6]; [P1 V6]
-B; ⒉󠊓≠。ⴟ⬣ⴈ; [P1 V6]; [P1 V6]
-B; xn--1ch07f91401d.xn--45iz7d6b; [V6]; [V6]
-B; xn--1ch07f91401d.xn--gnd9b297j; [V6]; [V6]
-B; -󠉱\u0FB8Ⴥ。-𐹽\u0774𞣑; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -ྸჅ.-𐹽ݴ𞣑
-B; -󠉱\u0FB8ⴥ。-𐹽\u0774𞣑; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -ྸⴥ.-𐹽ݴ𞣑
-B; xn----xmg317tgv352a.xn----05c4213ryr0g; [B1 V3 V6]; [B1 V3 V6] # -ྸⴥ.-𐹽ݴ𞣑
-B; xn----xmg12fm2555h.xn----05c4213ryr0g; [B1 V3 V6]; [B1 V3 V6] # -ྸჅ.-𐹽ݴ𞣑
-B; \u0659。𑄴︒\u0627\u07DD; [B1 B3 B6 P1 V5 V6]; [B1 B3 B6 P1 V5 V6] # ٙ.𑄴︒اߝ
-B; \u0659。𑄴。\u0627\u07DD; [B1 B3 B6 V5]; [B1 B3 B6 V5] # ٙ.𑄴.اߝ
-B; xn--1hb.xn--w80d.xn--mgb09f; [B1 B3 B6 V5]; [B1 B3 B6 V5] # ٙ.𑄴.اߝ
-B; xn--1hb.xn--mgb09fp820c08pa; [B1 B3 B6 V5 V6]; [B1 B3 B6 V5 V6] # ٙ.𑄴︒اߝ
-T; Ⴙ\u0638.󠆓\u200D; [B1 B5 B6 C2 P1 V6]; [B5 B6 P1 V6] # Ⴙظ.
-N; Ⴙ\u0638.󠆓\u200D; [B1 B5 B6 C2 P1 V6]; [B1 B5 B6 C2 P1 V6] # Ⴙظ.
-T; ⴙ\u0638.󠆓\u200D; [B1 B5 B6 C2]; [B5 B6] # ⴙظ.
-N; ⴙ\u0638.󠆓\u200D; [B1 B5 B6 C2]; [B1 B5 B6 C2] # ⴙظ.
-B; xn--3gb910r.; [B5 B6]; [B5 B6] # ⴙظ.
-B; xn--3gb910r.xn--1ug; [B1 B5 B6 C2]; [B1 B5 B6 C2] # ⴙظ.
-B; xn--3gb194c.; [B5 B6 V6]; [B5 B6 V6] # Ⴙظ.
-B; xn--3gb194c.xn--1ug; [B1 B5 B6 C2 V6]; [B1 B5 B6 C2 V6] # Ⴙظ.
-B; 󠆸。₆0𐺧\u0756; [B1 P1 V6 A4_2]; [B1 P1 V6 A4_2] # .60ݖ
-B; 󠆸。60𐺧\u0756; [B1 P1 V6 A4_2]; [B1 P1 V6 A4_2] # .60ݖ
-B; .xn--60-cke9470y; [B1 V6 A4_2]; [B1 V6 A4_2] # .60ݖ
-B; 6\u084F。-𑈴; [B1 V3]; [B1 V3] # 6ࡏ.-𑈴
-B; 6\u084F。-𑈴; [B1 V3]; [B1 V3] # 6ࡏ.-𑈴
-B; xn--6-jjd.xn----6n8i; [B1 V3]; [B1 V3] # 6ࡏ.-𑈴
-T; \u200D񋌿𐹰。\u0ACDς𞰎\u08D6; [B1 C2 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # 𐹰.્ςࣖ
-N; \u200D񋌿𐹰。\u0ACDς𞰎\u08D6; [B1 C2 P1 V5 V6]; [B1 C2 P1 V5 V6] # 𐹰.્ςࣖ
-T; \u200D񋌿𐹰。\u0ACDς𞰎\u08D6; [B1 C2 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # 𐹰.્ςࣖ
-N; \u200D񋌿𐹰。\u0ACDς𞰎\u08D6; [B1 C2 P1 V5 V6]; [B1 C2 P1 V5 V6] # 𐹰.્ςࣖ
-T; \u200D񋌿𐹰。\u0ACDΣ𞰎\u08D6; [B1 C2 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # 𐹰.્σࣖ
-N; \u200D񋌿𐹰。\u0ACDΣ𞰎\u08D6; [B1 C2 P1 V5 V6]; [B1 C2 P1 V5 V6] # 𐹰.્σࣖ
-T; \u200D񋌿𐹰。\u0ACDσ𞰎\u08D6; [B1 C2 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # 𐹰.્σࣖ
-N; \u200D񋌿𐹰。\u0ACDσ𞰎\u08D6; [B1 C2 P1 V5 V6]; [B1 C2 P1 V5 V6] # 𐹰.્σࣖ
-B; xn--oo0d1330n.xn--4xa21xcwbfz15g; [B1 B5 B6 V5 V6]; [B1 B5 B6 V5 V6] # 𐹰.્σࣖ
-B; xn--1ugx105gq26y.xn--4xa21xcwbfz15g; [B1 C2 V5 V6]; [B1 C2 V5 V6] # 𐹰.્σࣖ
-B; xn--1ugx105gq26y.xn--3xa41xcwbfz15g; [B1 C2 V5 V6]; [B1 C2 V5 V6] # 𐹰.્ςࣖ
-T; \u200D񋌿𐹰。\u0ACDΣ𞰎\u08D6; [B1 C2 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # 𐹰.્σࣖ
-N; \u200D񋌿𐹰。\u0ACDΣ𞰎\u08D6; [B1 C2 P1 V5 V6]; [B1 C2 P1 V5 V6] # 𐹰.્σࣖ
-T; \u200D񋌿𐹰。\u0ACDσ𞰎\u08D6; [B1 C2 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # 𐹰.્σࣖ
-N; \u200D񋌿𐹰。\u0ACDσ𞰎\u08D6; [B1 C2 P1 V5 V6]; [B1 C2 P1 V5 V6] # 𐹰.્σࣖ
-B; ⒈񟄜Ⴓ⒪.\u0DCA򘘶\u088B𐹢; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ⒈Ⴓ⒪.්𐹢
-B; 1.񟄜Ⴓ(o).\u0DCA򘘶\u088B𐹢; [B1 B6 P1 V5 V6]; [B1 B6 P1 V5 V6] # 1.Ⴓ(o).්𐹢
-B; 1.񟄜ⴓ(o).\u0DCA򘘶\u088B𐹢; [B1 B6 P1 V5 V6]; [B1 B6 P1 V5 V6] # 1.ⴓ(o).්𐹢
-B; 1.񟄜Ⴓ(O).\u0DCA򘘶\u088B𐹢; [B1 B6 P1 V5 V6]; [B1 B6 P1 V5 V6] # 1.Ⴓ(o).්𐹢
-B; 1.xn--(o)-7sn88849j.xn--3xb99xpx1yoes3e; [B1 B6 P1 V5 V6]; [B1 B6 P1 V5 V6] # 1.Ⴓ(o).්𐹢
-B; 1.xn--(o)-ej1bu5389e.xn--3xb99xpx1yoes3e; [B1 B6 P1 V5 V6]; [B1 B6 P1 V5 V6] # 1.ⴓ(o).්𐹢
-B; ⒈񟄜ⴓ⒪.\u0DCA򘘶\u088B𐹢; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ⒈ⴓ⒪.්𐹢
-B; xn--tsh0ds63atl31n.xn--3xb99xpx1yoes3e; [B1 V5 V6]; [B1 V5 V6] # ⒈ⴓ⒪.්𐹢
-B; xn--rnd762h7cx3027d.xn--3xb99xpx1yoes3e; [B1 V5 V6]; [B1 V5 V6] # ⒈Ⴓ⒪.්𐹢
-B; 𞤷.𐮐𞢁𐹠\u0624; ; xn--ve6h.xn--jgb1694kz0b2176a; NV8 # 𞤷.𐮐𞢁𐹠ؤ
-B; 𞤷.𐮐𞢁𐹠\u0648\u0654; 𞤷.𐮐𞢁𐹠\u0624; xn--ve6h.xn--jgb1694kz0b2176a; NV8 # 𞤷.𐮐𞢁𐹠ؤ
-B; 𞤕.𐮐𞢁𐹠\u0648\u0654; 𞤷.𐮐𞢁𐹠\u0624; xn--ve6h.xn--jgb1694kz0b2176a; NV8 # 𞤷.𐮐𞢁𐹠ؤ
-B; 𞤕.𐮐𞢁𐹠\u0624; 𞤷.𐮐𞢁𐹠\u0624; xn--ve6h.xn--jgb1694kz0b2176a; NV8 # 𞤷.𐮐𞢁𐹠ؤ
-B; xn--ve6h.xn--jgb1694kz0b2176a; 𞤷.𐮐𞢁𐹠\u0624; xn--ve6h.xn--jgb1694kz0b2176a; NV8 # 𞤷.𐮐𞢁𐹠ؤ
-B; 𐲈-。𑄳񢌻; [B1 B3 P1 V3 V5 V6]; [B1 B3 P1 V3 V5 V6]
-B; 𐲈-。𑄳񢌻; [B1 B3 P1 V3 V5 V6]; [B1 B3 P1 V3 V5 V6]
-B; 𐳈-。𑄳񢌻; [B1 B3 P1 V3 V5 V6]; [B1 B3 P1 V3 V5 V6]
-B; xn----ue6i.xn--v80d6662t; [B1 B3 V3 V5 V6]; [B1 B3 V3 V5 V6]
-B; 𐳈-。𑄳񢌻; [B1 B3 P1 V3 V5 V6]; [B1 B3 P1 V3 V5 V6]
-B; -󠉖ꡧ.󠊂񇆃🄉; [P1 V3 V6]; [P1 V3 V6]
-B; -󠉖ꡧ.󠊂񇆃8,; [P1 V3 V6]; [P1 V3 V6]
-B; xn----hg4ei0361g.xn--8,-k362evu488a; [P1 V3 V6]; [P1 V3 V6]
-B; xn----hg4ei0361g.xn--207ht163h7m94c; [V3 V6]; [V3 V6]
-B; 󠾛󠈴臯𧔤.\u0768𝟝; [B1 P1 V6]; [B1 P1 V6] # 臯𧔤.ݨ5
-B; 󠾛󠈴臯𧔤.\u07685; [B1 P1 V6]; [B1 P1 V6] # 臯𧔤.ݨ5
-B; xn--zb1at733hm579ddhla.xn--5-b5c; [B1 V6]; [B1 V6] # 臯𧔤.ݨ5
-B; ≮𐹣.𝨿; [B1 B3 B6 P1 V5 V6]; [B1 B3 B6 P1 V5 V6]
-B; <\u0338𐹣.𝨿; [B1 B3 B6 P1 V5 V6]; [B1 B3 B6 P1 V5 V6]
-B; ≮𐹣.𝨿; [B1 B3 B6 P1 V5 V6]; [B1 B3 B6 P1 V5 V6]
-B; <\u0338𐹣.𝨿; [B1 B3 B6 P1 V5 V6]; [B1 B3 B6 P1 V5 V6]
-B; xn--gdh1504g.xn--e92h; [B1 B3 B6 V5 V6]; [B1 B3 B6 V5 V6]
-B; 𐹯ᯛ\u0A4D。脥; [B1]; [B1] # 𐹯ᯛ੍.脥
-B; 𐹯ᯛ\u0A4D。脥; [B1]; [B1] # 𐹯ᯛ੍.脥
-B; xn--ybc101g3m1p.xn--740a; [B1]; [B1] # 𐹯ᯛ੍.脥
-B; \u1B44\u115F𞷿򃀍.-; [B1 B5 P1 V3 V5 V6]; [B1 B5 P1 V3 V5 V6] # ᭄.-
-B; xn--osd971cpx70btgt8b.-; [B1 B5 V3 V5 V6]; [B1 B5 V3 V5 V6] # ᭄.-
-T; \u200C。\u0354; [C1 V5]; [V5 A4_2] # .͔
-N; \u200C。\u0354; [C1 V5]; [C1 V5] # .͔
-T; \u200C。\u0354; [C1 V5]; [V5 A4_2] # .͔
-N; \u200C。\u0354; [C1 V5]; [C1 V5] # .͔
-B; .xn--yua; [V5 A4_2]; [V5 A4_2] # .͔
-B; xn--0ug.xn--yua; [C1 V5]; [C1 V5] # .͔
-B; 𞤥󠅮.ᡄႮ; [P1 V6]; [P1 V6]
-B; 𞤥󠅮.ᡄႮ; [P1 V6]; [P1 V6]
-B; 𞤥󠅮.ᡄⴎ; 𞤥.ᡄⴎ; xn--de6h.xn--37e857h
-B; 𞤃󠅮.ᡄႮ; [P1 V6]; [P1 V6]
-B; 𞤃󠅮.ᡄⴎ; 𞤥.ᡄⴎ; xn--de6h.xn--37e857h
-B; xn--de6h.xn--37e857h; 𞤥.ᡄⴎ; xn--de6h.xn--37e857h
-B; 𞤥.ᡄⴎ; ; xn--de6h.xn--37e857h
-B; 𞤃.ᡄႮ; [P1 V6]; [P1 V6]
-B; 𞤃.ᡄⴎ; 𞤥.ᡄⴎ; xn--de6h.xn--37e857h
-B; xn--de6h.xn--mnd799a; [V6]; [V6]
-B; 𞤥󠅮.ᡄⴎ; 𞤥.ᡄⴎ; xn--de6h.xn--37e857h
-B; 𞤃󠅮.ᡄႮ; [P1 V6]; [P1 V6]
-B; 𞤃󠅮.ᡄⴎ; 𞤥.ᡄⴎ; xn--de6h.xn--37e857h
-B; 𞤥.ᡄႮ; [P1 V6]; [P1 V6]
-B; 𞤧𝨨Ξ.𪺏㛨❸; [B2 B3 B6]; [B2 B3 B6]
-B; 𞤧𝨨Ξ.𪺏㛨❸; [B2 B3 B6]; [B2 B3 B6]
-B; 𞤧𝨨ξ.𪺏㛨❸; [B2 B3 B6]; [B2 B3 B6]
-B; 𞤅𝨨Ξ.𪺏㛨❸; [B2 B3 B6]; [B2 B3 B6]
-B; 𞤅𝨨ξ.𪺏㛨❸; [B2 B3 B6]; [B2 B3 B6]
-B; xn--zxa5691vboja.xn--bfi293ci119b; [B2 B3 B6]; [B2 B3 B6]
-B; 𞤧𝨨ξ.𪺏㛨❸; [B2 B3 B6]; [B2 B3 B6]
-B; 𞤅𝨨Ξ.𪺏㛨❸; [B2 B3 B6]; [B2 B3 B6]
-B; 𞤅𝨨ξ.𪺏㛨❸; [B2 B3 B6]; [B2 B3 B6]
-T; ᠆몆\u200C-。Ⴛ𐦅︒; [B1 B5 B6 C1 P1 V3 V6]; [B1 B5 B6 P1 V3 V6] # ᠆몆-.Ⴛ𐦅︒
-N; ᠆몆\u200C-。Ⴛ𐦅︒; [B1 B5 B6 C1 P1 V3 V6]; [B1 B5 B6 C1 P1 V3 V6] # ᠆몆-.Ⴛ𐦅︒
-T; ᠆몆\u200C-。Ⴛ𐦅︒; [B1 B5 B6 C1 P1 V3 V6]; [B1 B5 B6 P1 V3 V6] # ᠆몆-.Ⴛ𐦅︒
-N; ᠆몆\u200C-。Ⴛ𐦅︒; [B1 B5 B6 C1 P1 V3 V6]; [B1 B5 B6 C1 P1 V3 V6] # ᠆몆-.Ⴛ𐦅︒
-T; ᠆몆\u200C-。Ⴛ𐦅。; [B1 B5 B6 C1 P1 V3 V6]; [B1 B5 B6 P1 V3 V6] # ᠆몆-.Ⴛ𐦅.
-N; ᠆몆\u200C-。Ⴛ𐦅。; [B1 B5 B6 C1 P1 V3 V6]; [B1 B5 B6 C1 P1 V3 V6] # ᠆몆-.Ⴛ𐦅.
-T; ᠆몆\u200C-。Ⴛ𐦅。; [B1 B5 B6 C1 P1 V3 V6]; [B1 B5 B6 P1 V3 V6] # ᠆몆-.Ⴛ𐦅.
-N; ᠆몆\u200C-。Ⴛ𐦅。; [B1 B5 B6 C1 P1 V3 V6]; [B1 B5 B6 C1 P1 V3 V6] # ᠆몆-.Ⴛ𐦅.
-T; ᠆몆\u200C-。ⴛ𐦅。; [B1 B5 B6 C1 P1 V3 V6]; [B1 B5 B6 P1 V3 V6] # ᠆몆-.ⴛ𐦅.
-N; ᠆몆\u200C-。ⴛ𐦅。; [B1 B5 B6 C1 P1 V3 V6]; [B1 B5 B6 C1 P1 V3 V6] # ᠆몆-.ⴛ𐦅.
-T; ᠆몆\u200C-。ⴛ𐦅。; [B1 B5 B6 C1 P1 V3 V6]; [B1 B5 B6 P1 V3 V6] # ᠆몆-.ⴛ𐦅.
-N; ᠆몆\u200C-。ⴛ𐦅。; [B1 B5 B6 C1 P1 V3 V6]; [B1 B5 B6 C1 P1 V3 V6] # ᠆몆-.ⴛ𐦅.
-B; xn----e3j6620g.xn--jlju661e.; [B1 B5 B6 V3 V6]; [B1 B5 B6 V3 V6]
-B; xn----e3j425bsk1o.xn--jlju661e.; [B1 B5 B6 C1 V3 V6]; [B1 B5 B6 C1 V3 V6] # ᠆몆-.ⴛ𐦅.
-B; xn----e3j6620g.xn--znd4948j.; [B1 B5 B6 V3 V6]; [B1 B5 B6 V3 V6]
-B; xn----e3j425bsk1o.xn--znd4948j.; [B1 B5 B6 C1 V3 V6]; [B1 B5 B6 C1 V3 V6] # ᠆몆-.Ⴛ𐦅.
-T; ᠆몆\u200C-。ⴛ𐦅︒; [B1 B5 B6 C1 P1 V3 V6]; [B1 B5 B6 P1 V3 V6] # ᠆몆-.ⴛ𐦅︒
-N; ᠆몆\u200C-。ⴛ𐦅︒; [B1 B5 B6 C1 P1 V3 V6]; [B1 B5 B6 C1 P1 V3 V6] # ᠆몆-.ⴛ𐦅︒
-T; ᠆몆\u200C-。ⴛ𐦅︒; [B1 B5 B6 C1 P1 V3 V6]; [B1 B5 B6 P1 V3 V6] # ᠆몆-.ⴛ𐦅︒
-N; ᠆몆\u200C-。ⴛ𐦅︒; [B1 B5 B6 C1 P1 V3 V6]; [B1 B5 B6 C1 P1 V3 V6] # ᠆몆-.ⴛ𐦅︒
-B; xn----e3j6620g.xn--jlj4997dhgh; [B1 B5 B6 V3 V6]; [B1 B5 B6 V3 V6]
-B; xn----e3j425bsk1o.xn--jlj4997dhgh; [B1 B5 B6 C1 V3 V6]; [B1 B5 B6 C1 V3 V6] # ᠆몆-.ⴛ𐦅︒
-B; xn----e3j6620g.xn--znd2362jhgh; [B1 B5 B6 V3 V6]; [B1 B5 B6 V3 V6]
-B; xn----e3j425bsk1o.xn--znd2362jhgh; [B1 B5 B6 C1 V3 V6]; [B1 B5 B6 C1 V3 V6] # ᠆몆-.Ⴛ𐦅︒
-T; 󠾳.︒⥱\u200C𐹬; [B1 C1 P1 V6]; [B1 P1 V6] # .︒⥱𐹬
-N; 󠾳.︒⥱\u200C𐹬; [B1 C1 P1 V6]; [B1 C1 P1 V6] # .︒⥱𐹬
-T; 󠾳.。⥱\u200C𐹬; [B1 C1 P1 V6 A4_2]; [B1 P1 V6 A4_2] # ..⥱𐹬
-N; 󠾳.。⥱\u200C𐹬; [B1 C1 P1 V6 A4_2]; [B1 C1 P1 V6 A4_2] # ..⥱𐹬
-B; xn--uf66e..xn--qti2829e; [B1 V6 A4_2]; [B1 V6 A4_2]
-B; xn--uf66e..xn--0ugz28as66q; [B1 C1 V6 A4_2]; [B1 C1 V6 A4_2] # ..⥱𐹬
-B; xn--uf66e.xn--qtiz073e3ik; [B1 V6]; [B1 V6]
-B; xn--uf66e.xn--0ugz28axl3pqxna; [B1 C1 V6]; [B1 C1 V6] # .︒⥱𐹬
-B; 𐯖.𐹠Ⴑ񚇜𐫊; [B1 P1 V6]; [B1 P1 V6]
-B; 𐯖.𐹠ⴑ񚇜𐫊; [B1 P1 V6]; [B1 P1 V6]
-B; xn--n49c.xn--8kj8702ewicl862o; [B1 V6]; [B1 V6]
-B; xn--n49c.xn--pnd4619jwicl862o; [B1 V6]; [B1 V6]
-B; \u0FA4񱤯.𝟭Ⴛ; [P1 V5 V6]; [P1 V5 V6] # ྤ.1Ⴛ
-B; \u0FA4񱤯.1Ⴛ; [P1 V5 V6]; [P1 V5 V6] # ྤ.1Ⴛ
-B; \u0FA4񱤯.1ⴛ; [P1 V5 V6]; [P1 V5 V6] # ྤ.1ⴛ
-B; xn--0fd40533g.xn--1-tws; [V5 V6]; [V5 V6] # ྤ.1ⴛ
-B; xn--0fd40533g.xn--1-q1g; [V5 V6]; [V5 V6] # ྤ.1Ⴛ
-B; \u0FA4񱤯.𝟭ⴛ; [P1 V5 V6]; [P1 V5 V6] # ྤ.1ⴛ
-B; -\u0826齀。릿𐸋; [B1 B5 B6 P1 V3 V6]; [B1 B5 B6 P1 V3 V6] # -ࠦ齀.릿
-B; -\u0826齀。릿𐸋; [B1 B5 B6 P1 V3 V6]; [B1 B5 B6 P1 V3 V6] # -ࠦ齀.릿
-B; xn----6gd0617i.xn--7y2bm55m; [B1 B5 B6 V3 V6]; [B1 B5 B6 V3 V6] # -ࠦ齀.릿
-T; 󠔊\u071C鹝꾗。񾵐\u200D\u200D⏃; [B1 B6 C2 P1 V6]; [B1 B6 P1 V6] # ܜ鹝꾗.⏃
-N; 󠔊\u071C鹝꾗。񾵐\u200D\u200D⏃; [B1 B6 C2 P1 V6]; [B1 B6 C2 P1 V6] # ܜ鹝꾗.⏃
-T; 󠔊\u071C鹝꾗。񾵐\u200D\u200D⏃; [B1 B6 C2 P1 V6]; [B1 B6 P1 V6] # ܜ鹝꾗.⏃
-N; 󠔊\u071C鹝꾗。񾵐\u200D\u200D⏃; [B1 B6 C2 P1 V6]; [B1 B6 C2 P1 V6] # ܜ鹝꾗.⏃
-B; xn--mnb6558e91kyq533a.xn--6mh27269e; [B1 B6 V6]; [B1 B6 V6] # ܜ鹝꾗.⏃
-B; xn--mnb6558e91kyq533a.xn--1uga46zs309y; [B1 B6 C2 V6]; [B1 B6 C2 V6] # ܜ鹝꾗.⏃
-B; ≮.-\u0708--; [B1 P1 V2 V3 V6]; [B1 P1 V2 V3 V6] # ≮.-܈--
-B; <\u0338.-\u0708--; [B1 P1 V2 V3 V6]; [B1 P1 V2 V3 V6] # ≮.-܈--
-B; ≮.-\u0708--; [B1 P1 V2 V3 V6]; [B1 P1 V2 V3 V6] # ≮.-܈--
-B; <\u0338.-\u0708--; [B1 P1 V2 V3 V6]; [B1 P1 V2 V3 V6] # ≮.-܈--
-B; xn--gdh.xn------eqf; [B1 V2 V3 V6]; [B1 V2 V3 V6] # ≮.-܈--
-T; 𐹸󠋳。\u200Dς𝟩; [B1 C2 P1 V6]; [B1 P1 V6] # 𐹸.ς7
-N; 𐹸󠋳。\u200Dς𝟩; [B1 C2 P1 V6]; [B1 C2 P1 V6] # 𐹸.ς7
-T; 𐹸󠋳。\u200Dς7; [B1 C2 P1 V6]; [B1 P1 V6] # 𐹸.ς7
-N; 𐹸󠋳。\u200Dς7; [B1 C2 P1 V6]; [B1 C2 P1 V6] # 𐹸.ς7
-T; 𐹸󠋳。\u200DΣ7; [B1 C2 P1 V6]; [B1 P1 V6] # 𐹸.σ7
-N; 𐹸󠋳。\u200DΣ7; [B1 C2 P1 V6]; [B1 C2 P1 V6] # 𐹸.σ7
-T; 𐹸󠋳。\u200Dσ7; [B1 C2 P1 V6]; [B1 P1 V6] # 𐹸.σ7
-N; 𐹸󠋳。\u200Dσ7; [B1 C2 P1 V6]; [B1 C2 P1 V6] # 𐹸.σ7
-B; xn--wo0di5177c.xn--7-zmb; [B1 V6]; [B1 V6]
-B; xn--wo0di5177c.xn--7-zmb938s; [B1 C2 V6]; [B1 C2 V6] # 𐹸.σ7
-B; xn--wo0di5177c.xn--7-xmb248s; [B1 C2 V6]; [B1 C2 V6] # 𐹸.ς7
-T; 𐹸󠋳。\u200DΣ𝟩; [B1 C2 P1 V6]; [B1 P1 V6] # 𐹸.σ7
-N; 𐹸󠋳。\u200DΣ𝟩; [B1 C2 P1 V6]; [B1 C2 P1 V6] # 𐹸.σ7
-T; 𐹸󠋳。\u200Dσ𝟩; [B1 C2 P1 V6]; [B1 P1 V6] # 𐹸.σ7
-N; 𐹸󠋳。\u200Dσ𝟩; [B1 C2 P1 V6]; [B1 C2 P1 V6] # 𐹸.σ7
-T; ς򅜌8.𞭤; [P1 V6]; [P1 V6]
-N; ς򅜌8.𞭤; [P1 V6]; [P1 V6]
-T; ς򅜌8.𞭤; [P1 V6]; [P1 V6]
-N; ς򅜌8.𞭤; [P1 V6]; [P1 V6]
-B; Σ򅜌8.𞭤; [P1 V6]; [P1 V6]
-B; σ򅜌8.𞭤; [P1 V6]; [P1 V6]
-B; xn--8-zmb14974n.xn--su6h; [V6]; [V6]
-B; xn--8-xmb44974n.xn--su6h; [V6]; [V6]
-B; Σ򅜌8.𞭤; [P1 V6]; [P1 V6]
-B; σ򅜌8.𞭤; [P1 V6]; [P1 V6]
-T; \u200Cᡑ🄀\u0684.-𐫄𑲤; [B1 C1 P1 V3 V6]; [B1 B5 B6 P1 V3 V6] # ᡑ🄀ڄ.-𐫄𑲤
-N; \u200Cᡑ🄀\u0684.-𐫄𑲤; [B1 C1 P1 V3 V6]; [B1 C1 P1 V3 V6] # ᡑ🄀ڄ.-𐫄𑲤
-T; \u200Cᡑ0.\u0684.-𐫄𑲤; [B1 C1 V3]; [B1 V3] # ᡑ0.ڄ.-𐫄𑲤
-N; \u200Cᡑ0.\u0684.-𐫄𑲤; [B1 C1 V3]; [B1 C1 V3] # ᡑ0.ڄ.-𐫄𑲤
-B; xn--0-o7j.xn--9ib.xn----ek5i065b; [B1 V3]; [B1 V3] # ᡑ0.ڄ.-𐫄𑲤
-B; xn--0-o7j263b.xn--9ib.xn----ek5i065b; [B1 C1 V3]; [B1 C1 V3] # ᡑ0.ڄ.-𐫄𑲤
-B; xn--9ib722gbw95a.xn----ek5i065b; [B1 B5 B6 V3 V6]; [B1 B5 B6 V3 V6] # ᡑ🄀ڄ.-𐫄𑲤
-B; xn--9ib722gvtfi563c.xn----ek5i065b; [B1 C1 V3 V6]; [B1 C1 V3 V6] # ᡑ🄀ڄ.-𐫄𑲤
-B; 𖠍。𐪿넯򞵲; [B2 B3 P1 V6]; [B2 B3 P1 V6]
-B; 𖠍。𐪿넯򞵲; [B2 B3 P1 V6]; [B2 B3 P1 V6]
-B; xn--4e9e.xn--l60bj21opd57g; [B2 B3 V6]; [B2 B3 V6]
-B; ᠇Ⴘ。\u0603Ⴈ𝆊; [B1 P1 V6]; [B1 P1 V6] # ᠇Ⴘ.Ⴈ𝆊
-B; ᠇ⴘ。\u0603ⴈ𝆊; [B1 P1 V6]; [B1 P1 V6] # ᠇ⴘ.ⴈ𝆊
-B; xn--d6e009h.xn--lfb290rfu3z; [B1 V6]; [B1 V6] # ᠇ⴘ.ⴈ𝆊
-B; xn--wnd558a.xn--lfb465c1v87a; [B1 V6]; [B1 V6] # ᠇Ⴘ.Ⴈ𝆊
-B; ⒚󠋑𞤰。牣\u0667Ⴜᣥ; [B1 B5 P1 V6]; [B1 B5 P1 V6] # ⒚𞤰.牣٧Ⴜᣥ
-B; 19.󠋑𞤰。牣\u0667Ⴜᣥ; [B1 B5 P1 V6]; [B1 B5 P1 V6] # 19.𞤰.牣٧Ⴜᣥ
-B; 19.󠋑𞤰。牣\u0667ⴜᣥ; [B1 B5 P1 V6]; [B1 B5 P1 V6] # 19.𞤰.牣٧ⴜᣥ
-B; 19.󠋑𞤎。牣\u0667Ⴜᣥ; [B1 B5 P1 V6]; [B1 B5 P1 V6] # 19.𞤰.牣٧Ⴜᣥ
-B; 19.xn--oe6h75760c.xn--gib404ccxgh00h; [B1 B5 V6]; [B1 B5 V6] # 19.𞤰.牣٧Ⴜᣥ
-B; 19.xn--oe6h75760c.xn--gib285gtxo2l9d; [B1 B5 V6]; [B1 B5 V6] # 19.𞤰.牣٧ⴜᣥ
-B; ⒚󠋑𞤰。牣\u0667ⴜᣥ; [B1 B5 P1 V6]; [B1 B5 P1 V6] # ⒚𞤰.牣٧ⴜᣥ
-B; ⒚󠋑𞤎。牣\u0667Ⴜᣥ; [B1 B5 P1 V6]; [B1 B5 P1 V6] # ⒚𞤰.牣٧Ⴜᣥ
-B; xn--cthy466n29j3e.xn--gib404ccxgh00h; [B1 B5 V6]; [B1 B5 V6] # ⒚𞤰.牣٧Ⴜᣥ
-B; xn--cthy466n29j3e.xn--gib285gtxo2l9d; [B1 B5 V6]; [B1 B5 V6] # ⒚𞤰.牣٧ⴜᣥ
-B; -𐋱𐰽⒈.Ⴓ; [B1 P1 V3 V6]; [B1 P1 V3 V6]
-B; -𐋱𐰽1..Ⴓ; [B1 P1 V3 V6 A4_2]; [B1 P1 V3 V6 A4_2]
-B; -𐋱𐰽1..ⴓ; [B1 V3 A4_2]; [B1 V3 A4_2]
-B; xn---1-895nq11a..xn--blj; [B1 V3 A4_2]; [B1 V3 A4_2]
-B; xn---1-895nq11a..xn--rnd; [B1 V3 V6 A4_2]; [B1 V3 V6 A4_2]
-B; -𐋱𐰽⒈.ⴓ; [B1 P1 V3 V6]; [B1 P1 V3 V6]
-B; xn----ecp0206g90h.xn--blj; [B1 V3 V6]; [B1 V3 V6]
-B; xn----ecp0206g90h.xn--rnd; [B1 V3 V6]; [B1 V3 V6]
-T; \u200C긃.榶-; [C1 V3]; [V3] # 긃.榶-
-N; \u200C긃.榶-; [C1 V3]; [C1 V3] # 긃.榶-
-T; \u200C긃.榶-; [C1 V3]; [V3] # 긃.榶-
-N; \u200C긃.榶-; [C1 V3]; [C1 V3] # 긃.榶-
-B; xn--ej0b.xn----d87b; [V3]; [V3]
-B; xn--0ug3307c.xn----d87b; [C1 V3]; [C1 V3] # 긃.榶-
-T; 뉓泓𜵽.\u09CD\u200D; [P1 V5 V6]; [P1 V5 V6] # 뉓泓.্
-N; 뉓泓𜵽.\u09CD\u200D; [P1 V5 V6]; [P1 V5 V6] # 뉓泓.্
-T; 뉓泓𜵽.\u09CD\u200D; [P1 V5 V6]; [P1 V5 V6] # 뉓泓.্
-N; 뉓泓𜵽.\u09CD\u200D; [P1 V5 V6]; [P1 V5 V6] # 뉓泓.্
-B; xn--lwwp69lqs7m.xn--b7b; [V5 V6]; [V5 V6] # 뉓泓.্
-B; xn--lwwp69lqs7m.xn--b7b605i; [V5 V6]; [V5 V6] # 뉓泓.্
-T; \u200D𐹴ß。\u0EB4\u2B75񪅌; [B1 C2 P1 V5 V6]; [B1 P1 V5 V6] # 𐹴ß.ິ
-N; \u200D𐹴ß。\u0EB4\u2B75񪅌; [B1 C2 P1 V5 V6]; [B1 C2 P1 V5 V6] # 𐹴ß.ິ
-T; \u200D𐹴ß。\u0EB4\u2B75񪅌; [B1 C2 P1 V5 V6]; [B1 P1 V5 V6] # 𐹴ß.ິ
-N; \u200D𐹴ß。\u0EB4\u2B75񪅌; [B1 C2 P1 V5 V6]; [B1 C2 P1 V5 V6] # 𐹴ß.ິ
-T; \u200D𐹴SS。\u0EB4\u2B75񪅌; [B1 C2 P1 V5 V6]; [B1 P1 V5 V6] # 𐹴ss.ິ
-N; \u200D𐹴SS。\u0EB4\u2B75񪅌; [B1 C2 P1 V5 V6]; [B1 C2 P1 V5 V6] # 𐹴ss.ິ
-T; \u200D𐹴ss。\u0EB4\u2B75񪅌; [B1 C2 P1 V5 V6]; [B1 P1 V5 V6] # 𐹴ss.ິ
-N; \u200D𐹴ss。\u0EB4\u2B75񪅌; [B1 C2 P1 V5 V6]; [B1 C2 P1 V5 V6] # 𐹴ss.ິ
-T; \u200D𐹴Ss。\u0EB4\u2B75񪅌; [B1 C2 P1 V5 V6]; [B1 P1 V5 V6] # 𐹴ss.ິ
-N; \u200D𐹴Ss。\u0EB4\u2B75񪅌; [B1 C2 P1 V5 V6]; [B1 C2 P1 V5 V6] # 𐹴ss.ິ
-B; xn--ss-ti3o.xn--57c638l8774i; [B1 V5 V6]; [B1 V5 V6] # 𐹴ss.ິ
-B; xn--ss-l1t5169j.xn--57c638l8774i; [B1 C2 V5 V6]; [B1 C2 V5 V6] # 𐹴ss.ິ
-B; xn--zca770nip7n.xn--57c638l8774i; [B1 C2 V5 V6]; [B1 C2 V5 V6] # 𐹴ß.ິ
-T; \u200D𐹴SS。\u0EB4\u2B75񪅌; [B1 C2 P1 V5 V6]; [B1 P1 V5 V6] # 𐹴ss.ິ
-N; \u200D𐹴SS。\u0EB4\u2B75񪅌; [B1 C2 P1 V5 V6]; [B1 C2 P1 V5 V6] # 𐹴ss.ິ
-T; \u200D𐹴ss。\u0EB4\u2B75񪅌; [B1 C2 P1 V5 V6]; [B1 P1 V5 V6] # 𐹴ss.ິ
-N; \u200D𐹴ss。\u0EB4\u2B75񪅌; [B1 C2 P1 V5 V6]; [B1 C2 P1 V5 V6] # 𐹴ss.ິ
-T; \u200D𐹴Ss。\u0EB4\u2B75񪅌; [B1 C2 P1 V5 V6]; [B1 P1 V5 V6] # 𐹴ss.ິ
-N; \u200D𐹴Ss。\u0EB4\u2B75񪅌; [B1 C2 P1 V5 V6]; [B1 C2 P1 V5 V6] # 𐹴ss.ິ
-B; \u1B44.\u1BAA-≮≠; [P1 V5 V6]; [P1 V5 V6] # ᭄.᮪-≮≠
-B; \u1B44.\u1BAA-<\u0338=\u0338; [P1 V5 V6]; [P1 V5 V6] # ᭄.᮪-≮≠
-B; \u1B44.\u1BAA-≮≠; [P1 V5 V6]; [P1 V5 V6] # ᭄.᮪-≮≠
-B; \u1B44.\u1BAA-<\u0338=\u0338; [P1 V5 V6]; [P1 V5 V6] # ᭄.᮪-≮≠
-B; xn--1uf.xn----nmlz65aub; [V5 V6]; [V5 V6] # ᭄.᮪-≮≠
-B; \u1BF3Ⴑ\u115F.𑄴Ⅎ; [P1 V5 V6]; [P1 V5 V6] # ᯳Ⴑ.𑄴Ⅎ
-B; \u1BF3Ⴑ\u115F.𑄴Ⅎ; [P1 V5 V6]; [P1 V5 V6] # ᯳Ⴑ.𑄴Ⅎ
-B; \u1BF3ⴑ\u115F.𑄴ⅎ; [P1 V5 V6]; [P1 V5 V6] # ᯳ⴑ.𑄴ⅎ
-B; \u1BF3Ⴑ\u115F.𑄴ⅎ; [P1 V5 V6]; [P1 V5 V6] # ᯳Ⴑ.𑄴ⅎ
-B; xn--pnd26a55x.xn--73g3065g; [V5 V6]; [V5 V6] # ᯳Ⴑ.𑄴ⅎ
-B; xn--osd925cvyn.xn--73g3065g; [V5 V6]; [V5 V6] # ᯳ⴑ.𑄴ⅎ
-B; xn--pnd26a55x.xn--f3g7465g; [V5 V6]; [V5 V6] # ᯳Ⴑ.𑄴Ⅎ
-B; \u1BF3ⴑ\u115F.𑄴ⅎ; [P1 V5 V6]; [P1 V5 V6] # ᯳ⴑ.𑄴ⅎ
-B; \u1BF3Ⴑ\u115F.𑄴ⅎ; [P1 V5 V6]; [P1 V5 V6] # ᯳Ⴑ.𑄴ⅎ
-B; 𜉆。Ⴃ𐴣𐹹똯; [B5 P1 V6]; [B5 P1 V6]
-B; 𜉆。Ⴃ𐴣𐹹똯; [B5 P1 V6]; [B5 P1 V6]
-B; 𜉆。ⴃ𐴣𐹹똯; [B5 P1 V6]; [B5 P1 V6]
-B; 𜉆。ⴃ𐴣𐹹똯; [B5 P1 V6]; [B5 P1 V6]
-B; xn--187g.xn--ukjy205b8rscdeb; [B5 V6]; [B5 V6]
-B; xn--187g.xn--bnd4785f8r8bdeb; [B5 V6]; [B5 V6]
-B; 𐫀。⳻󠙾󠄷\u3164; [B1 P1 V6]; [B1 P1 V6] # 𐫀.⳻
-B; 𐫀。⳻󠙾󠄷\u1160; [B1 P1 V6]; [B1 P1 V6] # 𐫀.⳻
-B; xn--pw9c.xn--psd742lxt32w; [B1 V6]; [B1 V6] # 𐫀.⳻
-B; xn--pw9c.xn--mkj83l4v899a; [B1 V6]; [B1 V6] # 𐫀.⳻
-B; \u079A⾇.\u071E-𐋰; [B2 B3]; [B2 B3] # ޚ舛.ܞ-𐋰
-B; \u079A舛.\u071E-𐋰; [B2 B3]; [B2 B3] # ޚ舛.ܞ-𐋰
-B; xn--7qb6383d.xn----20c3154q; [B2 B3]; [B2 B3] # ޚ舛.ܞ-𐋰
-B; Ⴉ猕󹛫≮.︒; [P1 V6]; [P1 V6]
-B; Ⴉ猕󹛫<\u0338.︒; [P1 V6]; [P1 V6]
-B; Ⴉ猕󹛫≮.。; [P1 V6 A4_2]; [P1 V6 A4_2]
-B; Ⴉ猕󹛫<\u0338.。; [P1 V6 A4_2]; [P1 V6 A4_2]
-B; ⴉ猕󹛫<\u0338.。; [P1 V6 A4_2]; [P1 V6 A4_2]
-B; ⴉ猕󹛫≮.。; [P1 V6 A4_2]; [P1 V6 A4_2]
-B; xn--gdh892bbz0d5438s..; [V6 A4_2]; [V6 A4_2]
-B; xn--hnd212gz32d54x5r..; [V6 A4_2]; [V6 A4_2]
-B; ⴉ猕󹛫<\u0338.︒; [P1 V6]; [P1 V6]
-B; ⴉ猕󹛫≮.︒; [P1 V6]; [P1 V6]
-B; xn--gdh892bbz0d5438s.xn--y86c; [V6]; [V6]
-B; xn--hnd212gz32d54x5r.xn--y86c; [V6]; [V6]
-B; 🏮。\u062B鳳\u07E2󠅉; [B1 B2]; [B1 B2] # 🏮.ث鳳ߢ
-B; 🏮。\u062B鳳\u07E2󠅉; [B1 B2]; [B1 B2] # 🏮.ث鳳ߢ
-B; xn--8m8h.xn--qgb29f6z90a; [B1 B2]; [B1 B2] # 🏮.ث鳳ߢ
-T; \u200D𐹶。ß; [B1 C2]; [B1] # 𐹶.ß
-N; \u200D𐹶。ß; [B1 C2]; [B1 C2] # 𐹶.ß
-T; \u200D𐹶。SS; [B1 C2]; [B1] # 𐹶.ss
-N; \u200D𐹶。SS; [B1 C2]; [B1 C2] # 𐹶.ss
-T; \u200D𐹶。ss; [B1 C2]; [B1] # 𐹶.ss
-N; \u200D𐹶。ss; [B1 C2]; [B1 C2] # 𐹶.ss
-T; \u200D𐹶。Ss; [B1 C2]; [B1] # 𐹶.ss
-N; \u200D𐹶。Ss; [B1 C2]; [B1 C2] # 𐹶.ss
-B; xn--uo0d.ss; [B1]; [B1]
-B; xn--1ug9105g.ss; [B1 C2]; [B1 C2] # 𐹶.ss
-B; xn--1ug9105g.xn--zca; [B1 C2]; [B1 C2] # 𐹶.ß
-T; Å둄-.\u200C; [C1 V3]; [V3] # å둄-.
-N; Å둄-.\u200C; [C1 V3]; [C1 V3] # å둄-.
-T; A\u030A둄-.\u200C; [C1 V3]; [V3] # å둄-.
-N; A\u030A둄-.\u200C; [C1 V3]; [C1 V3] # å둄-.
-T; Å둄-.\u200C; [C1 V3]; [V3] # å둄-.
-N; Å둄-.\u200C; [C1 V3]; [C1 V3] # å둄-.
-T; A\u030A둄-.\u200C; [C1 V3]; [V3] # å둄-.
-N; A\u030A둄-.\u200C; [C1 V3]; [C1 V3] # å둄-.
-T; a\u030A둄-.\u200C; [C1 V3]; [V3] # å둄-.
-N; a\u030A둄-.\u200C; [C1 V3]; [C1 V3] # å둄-.
-T; å둄-.\u200C; [C1 V3]; [V3] # å둄-.
-N; å둄-.\u200C; [C1 V3]; [C1 V3] # å둄-.
-B; xn----1fa1788k.; [V3]; [V3]
-B; xn----1fa1788k.xn--0ug; [C1 V3]; [C1 V3] # å둄-.
-T; a\u030A둄-.\u200C; [C1 V3]; [V3] # å둄-.
-N; a\u030A둄-.\u200C; [C1 V3]; [C1 V3] # å둄-.
-T; å둄-.\u200C; [C1 V3]; [V3] # å둄-.
-N; å둄-.\u200C; [C1 V3]; [C1 V3] # å둄-.
-B; \u3099򬎑\u1DD7𞤀.򱲢-\u0953; [B1 B6 P1 V5 V6]; [B1 B6 P1 V5 V6] # ゙ᷗ𞤢.-॓
-B; \u3099򬎑\u1DD7𞤢.򱲢-\u0953; [B1 B6 P1 V5 V6]; [B1 B6 P1 V5 V6] # ゙ᷗ𞤢.-॓
-B; xn--veg121fwg63altj9d.xn----eyd92688s; [B1 B6 V5 V6]; [B1 B6 V5 V6] # ゙ᷗ𞤢.-॓
-T; ς.ß񴱄\u06DD\u2D7F; [B5 B6 P1 V6]; [B5 B6 P1 V6] # ς.ß⵿
-N; ς.ß񴱄\u06DD\u2D7F; [B5 B6 P1 V6]; [B5 B6 P1 V6] # ς.ß⵿
-B; Σ.SS񴱄\u06DD\u2D7F; [B5 B6 P1 V6]; [B5 B6 P1 V6] # σ.ss⵿
-B; σ.ss񴱄\u06DD\u2D7F; [B5 B6 P1 V6]; [B5 B6 P1 V6] # σ.ss⵿
-B; Σ.ss񴱄\u06DD\u2D7F; [B5 B6 P1 V6]; [B5 B6 P1 V6] # σ.ss⵿
-B; xn--4xa.xn--ss-y8d4760biv60n; [B5 B6 V6]; [B5 B6 V6] # σ.ss⵿
-T; Σ.ß񴱄\u06DD\u2D7F; [B5 B6 P1 V6]; [B5 B6 P1 V6] # σ.ß⵿
-N; Σ.ß񴱄\u06DD\u2D7F; [B5 B6 P1 V6]; [B5 B6 P1 V6] # σ.ß⵿
-T; σ.ß񴱄\u06DD\u2D7F; [B5 B6 P1 V6]; [B5 B6 P1 V6] # σ.ß⵿
-N; σ.ß񴱄\u06DD\u2D7F; [B5 B6 P1 V6]; [B5 B6 P1 V6] # σ.ß⵿
-B; xn--4xa.xn--zca281az71b8x73m; [B5 B6 V6]; [B5 B6 V6] # σ.ß⵿
-B; xn--3xa.xn--zca281az71b8x73m; [B5 B6 V6]; [B5 B6 V6] # ς.ß⵿
-B; ꡀ𞀟。\u066B\u0599; [B1]; [B1] # ꡀ𞀟.٫֙
-B; ꡀ𞀟。\u066B\u0599; [B1]; [B1] # ꡀ𞀟.٫֙
-B; xn--8b9a1720d.xn--kcb33b; [B1]; [B1] # ꡀ𞀟.٫֙
-T; 򈛉\u200C\u08A9。⧅񘘡-𐭡; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 P1 V6] # ࢩ.⧅-𐭡
-N; 򈛉\u200C\u08A9。⧅񘘡-𐭡; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 C1 P1 V6] # ࢩ.⧅-𐭡
-T; 򈛉\u200C\u08A9。⧅񘘡-𐭡; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 P1 V6] # ࢩ.⧅-𐭡
-N; 򈛉\u200C\u08A9。⧅񘘡-𐭡; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 C1 P1 V6] # ࢩ.⧅-𐭡
-B; xn--yyb56242i.xn----zir1232guu71b; [B1 B5 B6 V6]; [B1 B5 B6 V6] # ࢩ.⧅-𐭡
-B; xn--yyb780jll63m.xn----zir1232guu71b; [B1 B5 B6 C1 V6]; [B1 B5 B6 C1 V6] # ࢩ.⧅-𐭡
-T; 룱\u200D𰍨\u200C。𝨖︒; [C1 C2 P1 V5 V6]; [P1 V5 V6] # 룱.𝨖︒
-N; 룱\u200D𰍨\u200C。𝨖︒; [C1 C2 P1 V5 V6]; [C1 C2 P1 V5 V6] # 룱.𝨖︒
-T; 룱\u200D𰍨\u200C。𝨖︒; [C1 C2 P1 V5 V6]; [P1 V5 V6] # 룱.𝨖︒
-N; 룱\u200D𰍨\u200C。𝨖︒; [C1 C2 P1 V5 V6]; [C1 C2 P1 V5 V6] # 룱.𝨖︒
-T; 룱\u200D𰍨\u200C。𝨖。; [C1 C2 P1 V5 V6]; [P1 V5 V6] # 룱.𝨖.
-N; 룱\u200D𰍨\u200C。𝨖。; [C1 C2 P1 V5 V6]; [C1 C2 P1 V5 V6] # 룱.𝨖.
-T; 룱\u200D𰍨\u200C。𝨖。; [C1 C2 P1 V5 V6]; [P1 V5 V6] # 룱.𝨖.
-N; 룱\u200D𰍨\u200C。𝨖。; [C1 C2 P1 V5 V6]; [C1 C2 P1 V5 V6] # 룱.𝨖.
-B; xn--ct2b0738h.xn--772h.; [V5 V6]; [V5 V6]
-B; xn--0ugb3358ili2v.xn--772h.; [C1 C2 V5 V6]; [C1 C2 V5 V6] # 룱.𝨖.
-B; xn--ct2b0738h.xn--y86cl899a; [V5 V6]; [V5 V6]
-B; xn--0ugb3358ili2v.xn--y86cl899a; [C1 C2 V5 V6]; [C1 C2 V5 V6] # 룱.𝨖︒
-T; 🄄.\u1CDC⒈ß; [P1 V5 V6]; [P1 V5 V6] # 🄄.᳜⒈ß
-N; 🄄.\u1CDC⒈ß; [P1 V5 V6]; [P1 V5 V6] # 🄄.᳜⒈ß
-T; 3,.\u1CDC1.ß; [P1 V5 V6]; [P1 V5 V6] # 3,.᳜1.ß
-N; 3,.\u1CDC1.ß; [P1 V5 V6]; [P1 V5 V6] # 3,.᳜1.ß
-B; 3,.\u1CDC1.SS; [P1 V5 V6]; [P1 V5 V6] # 3,.᳜1.ss
-B; 3,.\u1CDC1.ss; [P1 V5 V6]; [P1 V5 V6] # 3,.᳜1.ss
-B; 3,.\u1CDC1.Ss; [P1 V5 V6]; [P1 V5 V6] # 3,.᳜1.ss
-B; 3,.xn--1-43l.ss; [P1 V5 V6]; [P1 V5 V6] # 3,.᳜1.ss
-B; 3,.xn--1-43l.xn--zca; [P1 V5 V6]; [P1 V5 V6] # 3,.᳜1.ß
-B; 🄄.\u1CDC⒈SS; [P1 V5 V6]; [P1 V5 V6] # 🄄.᳜⒈ss
-B; 🄄.\u1CDC⒈ss; [P1 V5 V6]; [P1 V5 V6] # 🄄.᳜⒈ss
-B; 🄄.\u1CDC⒈Ss; [P1 V5 V6]; [P1 V5 V6] # 🄄.᳜⒈ss
-B; xn--x07h.xn--ss-k1r094b; [V5 V6]; [V5 V6] # 🄄.᳜⒈ss
-B; xn--x07h.xn--zca344lmif; [V5 V6]; [V5 V6] # 🄄.᳜⒈ß
-B; 񇌍\u2D7F。𞼓򡄨𑐺; [B2 B3 P1 V6]; [B2 B3 P1 V6] # ⵿.𑐺
-B; 񇌍\u2D7F。𞼓򡄨𑐺; [B2 B3 P1 V6]; [B2 B3 P1 V6] # ⵿.𑐺
-B; xn--eoj16016a.xn--0v1d3848a3lr0d; [B2 B3 V6]; [B2 B3 V6] # ⵿.𑐺
-T; \u1DFD\u103A\u094D.≠\u200D㇛; [C2 P1 V5 V6]; [P1 V5 V6] # ်्᷽.≠㇛
-N; \u1DFD\u103A\u094D.≠\u200D㇛; [C2 P1 V5 V6]; [C2 P1 V5 V6] # ်्᷽.≠㇛
-T; \u103A\u094D\u1DFD.≠\u200D㇛; [C2 P1 V5 V6]; [P1 V5 V6] # ်्᷽.≠㇛
-N; \u103A\u094D\u1DFD.≠\u200D㇛; [C2 P1 V5 V6]; [C2 P1 V5 V6] # ်्᷽.≠㇛
-T; \u103A\u094D\u1DFD.=\u0338\u200D㇛; [C2 P1 V5 V6]; [P1 V5 V6] # ်्᷽.≠㇛
-N; \u103A\u094D\u1DFD.=\u0338\u200D㇛; [C2 P1 V5 V6]; [C2 P1 V5 V6] # ်्᷽.≠㇛
-T; \u103A\u094D\u1DFD.≠\u200D㇛; [C2 P1 V5 V6]; [P1 V5 V6] # ်्᷽.≠㇛
-N; \u103A\u094D\u1DFD.≠\u200D㇛; [C2 P1 V5 V6]; [C2 P1 V5 V6] # ်्᷽.≠㇛
-T; \u103A\u094D\u1DFD.=\u0338\u200D㇛; [C2 P1 V5 V6]; [P1 V5 V6] # ်्᷽.≠㇛
-N; \u103A\u094D\u1DFD.=\u0338\u200D㇛; [C2 P1 V5 V6]; [C2 P1 V5 V6] # ်्᷽.≠㇛
-B; xn--n3b956a9zm.xn--1ch912d; [V5 V6]; [V5 V6] # ်्᷽.≠㇛
-B; xn--n3b956a9zm.xn--1ug63gz5w; [C2 V5 V6]; [C2 V5 V6] # ်्᷽.≠㇛
-T; Ⴁ𐋨娤.\u200D\u033C\u0662𑖿; [B1 C2 P1 V6]; [B1 P1 V5 V6] # Ⴁ𐋨娤.̼٢𑖿
-N; Ⴁ𐋨娤.\u200D\u033C\u0662𑖿; [B1 C2 P1 V6]; [B1 C2 P1 V6] # Ⴁ𐋨娤.̼٢𑖿
-T; ⴁ𐋨娤.\u200D\u033C\u0662𑖿; [B1 C2]; [B1 V5] # ⴁ𐋨娤.̼٢𑖿
-N; ⴁ𐋨娤.\u200D\u033C\u0662𑖿; [B1 C2]; [B1 C2] # ⴁ𐋨娤.̼٢𑖿
-B; xn--skjw75lg29h.xn--9ta62nrv36a; [B1 V5]; [B1 V5] # ⴁ𐋨娤.̼٢𑖿
-B; xn--skjw75lg29h.xn--9ta62ngt6aou8t; [B1 C2]; [B1 C2] # ⴁ𐋨娤.̼٢𑖿
-B; xn--8md2578ag21g.xn--9ta62nrv36a; [B1 V5 V6]; [B1 V5 V6] # Ⴁ𐋨娤.̼٢𑖿
-B; xn--8md2578ag21g.xn--9ta62ngt6aou8t; [B1 C2 V6]; [B1 C2 V6] # Ⴁ𐋨娤.̼٢𑖿
-T; 🄀Ⴄ\u0669\u0820。⒈\u0FB6ß; [B1 P1 V6]; [B1 P1 V6] # 🄀Ⴄ٩ࠠ.⒈ྶß
-N; 🄀Ⴄ\u0669\u0820。⒈\u0FB6ß; [B1 P1 V6]; [B1 P1 V6] # 🄀Ⴄ٩ࠠ.⒈ྶß
-T; 0.Ⴄ\u0669\u0820。1.\u0FB6ß; [B1 B5 B6 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # 0.Ⴄ٩ࠠ.1.ྶß
-N; 0.Ⴄ\u0669\u0820。1.\u0FB6ß; [B1 B5 B6 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # 0.Ⴄ٩ࠠ.1.ྶß
-T; 0.ⴄ\u0669\u0820。1.\u0FB6ß; [B1 B5 B6 V5]; [B1 B5 B6 V5] # 0.ⴄ٩ࠠ.1.ྶß
-N; 0.ⴄ\u0669\u0820。1.\u0FB6ß; [B1 B5 B6 V5]; [B1 B5 B6 V5] # 0.ⴄ٩ࠠ.1.ྶß
-B; 0.Ⴄ\u0669\u0820。1.\u0FB6SS; [B1 B5 B6 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # 0.Ⴄ٩ࠠ.1.ྶss
-B; 0.ⴄ\u0669\u0820。1.\u0FB6ss; [B1 B5 B6 V5]; [B1 B5 B6 V5] # 0.ⴄ٩ࠠ.1.ྶss
-B; 0.Ⴄ\u0669\u0820。1.\u0FB6Ss; [B1 B5 B6 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # 0.Ⴄ٩ࠠ.1.ྶss
-B; 0.xn--iib29f26o.1.xn--ss-1sj; [B1 B5 B6 V5 V6]; [B1 B5 B6 V5 V6] # 0.Ⴄ٩ࠠ.1.ྶss
-B; 0.xn--iib29fp25e.1.xn--ss-1sj; [B1 B5 B6 V5]; [B1 B5 B6 V5] # 0.ⴄ٩ࠠ.1.ྶss
-B; 0.xn--iib29fp25e.1.xn--zca117e; [B1 B5 B6 V5]; [B1 B5 B6 V5] # 0.ⴄ٩ࠠ.1.ྶß
-B; 0.xn--iib29f26o.1.xn--zca117e; [B1 B5 B6 V5 V6]; [B1 B5 B6 V5 V6] # 0.Ⴄ٩ࠠ.1.ྶß
-T; 🄀ⴄ\u0669\u0820。⒈\u0FB6ß; [B1 P1 V6]; [B1 P1 V6] # 🄀ⴄ٩ࠠ.⒈ྶß
-N; 🄀ⴄ\u0669\u0820。⒈\u0FB6ß; [B1 P1 V6]; [B1 P1 V6] # 🄀ⴄ٩ࠠ.⒈ྶß
-B; 🄀Ⴄ\u0669\u0820。⒈\u0FB6SS; [B1 P1 V6]; [B1 P1 V6] # 🄀Ⴄ٩ࠠ.⒈ྶss
-B; 🄀ⴄ\u0669\u0820。⒈\u0FB6ss; [B1 P1 V6]; [B1 P1 V6] # 🄀ⴄ٩ࠠ.⒈ྶss
-B; 🄀Ⴄ\u0669\u0820。⒈\u0FB6Ss; [B1 P1 V6]; [B1 P1 V6] # 🄀Ⴄ٩ࠠ.⒈ྶss
-B; xn--iib29f26o6n43c.xn--ss-1sj588o; [B1 V6]; [B1 V6] # 🄀Ⴄ٩ࠠ.⒈ྶss
-B; xn--iib29fp25e0219a.xn--ss-1sj588o; [B1 V6]; [B1 V6] # 🄀ⴄ٩ࠠ.⒈ྶss
-B; xn--iib29fp25e0219a.xn--zca117e3vp; [B1 V6]; [B1 V6] # 🄀ⴄ٩ࠠ.⒈ྶß
-B; xn--iib29f26o6n43c.xn--zca117e3vp; [B1 V6]; [B1 V6] # 🄀Ⴄ٩ࠠ.⒈ྶß
-T; ≠.\u200C-\u066B; [B1 C1 P1 V6]; [B1 P1 V3 V6] # ≠.-٫
-N; ≠.\u200C-\u066B; [B1 C1 P1 V6]; [B1 C1 P1 V6] # ≠.-٫
-T; =\u0338.\u200C-\u066B; [B1 C1 P1 V6]; [B1 P1 V3 V6] # ≠.-٫
-N; =\u0338.\u200C-\u066B; [B1 C1 P1 V6]; [B1 C1 P1 V6] # ≠.-٫
-B; xn--1ch.xn----vqc; [B1 V3 V6]; [B1 V3 V6] # ≠.-٫
-B; xn--1ch.xn----vqc597q; [B1 C1 V6]; [B1 C1 V6] # ≠.-٫
-B; \u0660۱。󠳶𞠁\u0665; [B1 P1 V6]; [B1 P1 V6] # ٠۱.𞠁٥
-B; \u0660۱。󠳶𞠁\u0665; [B1 P1 V6]; [B1 P1 V6] # ٠۱.𞠁٥
-B; xn--8hb40a.xn--eib7967vner3e; [B1 V6]; [B1 V6] # ٠۱.𞠁٥
-T; \u200C\u0663⒖。󱅉𽷛\u1BF3; [B1 C1 P1 V6]; [B1 P1 V6] # ٣⒖.᯳
-N; \u200C\u0663⒖。󱅉𽷛\u1BF3; [B1 C1 P1 V6]; [B1 C1 P1 V6] # ٣⒖.᯳
-T; \u200C\u066315.。󱅉𽷛\u1BF3; [B1 C1 P1 V6 A4_2]; [B1 P1 V6 A4_2] # ٣15..᯳
-N; \u200C\u066315.。󱅉𽷛\u1BF3; [B1 C1 P1 V6 A4_2]; [B1 C1 P1 V6 A4_2] # ٣15..᯳
-B; xn--15-gyd..xn--1zf13512buy41d; [B1 V6 A4_2]; [B1 V6 A4_2] # ٣15..᯳
-B; xn--15-gyd983x..xn--1zf13512buy41d; [B1 C1 V6 A4_2]; [B1 C1 V6 A4_2] # ٣15..᯳
-B; xn--cib675m.xn--1zf13512buy41d; [B1 V6]; [B1 V6] # ٣⒖.᯳
-B; xn--cib152kwgd.xn--1zf13512buy41d; [B1 C1 V6]; [B1 C1 V6] # ٣⒖.᯳
-B; \u1BF3.-逋񳦭󙙮; [P1 V3 V5 V6]; [P1 V3 V5 V6] # ᯳.-逋
-B; xn--1zf.xn----483d46987byr50b; [V3 V5 V6]; [V3 V5 V6] # ᯳.-逋
-T; \u0756。\u3164\u200Dς; [C2 P1 V6]; [P1 V6] # ݖ.ς
-N; \u0756。\u3164\u200Dς; [C2 P1 V6]; [C2 P1 V6] # ݖ.ς
-T; \u0756。\u1160\u200Dς; [C2 P1 V6]; [P1 V6] # ݖ.ς
-N; \u0756。\u1160\u200Dς; [C2 P1 V6]; [C2 P1 V6] # ݖ.ς
-T; \u0756。\u1160\u200DΣ; [C2 P1 V6]; [P1 V6] # ݖ.σ
-N; \u0756。\u1160\u200DΣ; [C2 P1 V6]; [C2 P1 V6] # ݖ.σ
-T; \u0756。\u1160\u200Dσ; [C2 P1 V6]; [P1 V6] # ݖ.σ
-N; \u0756。\u1160\u200Dσ; [C2 P1 V6]; [C2 P1 V6] # ݖ.σ
-B; xn--9ob.xn--4xa380e; [V6]; [V6] # ݖ.σ
-B; xn--9ob.xn--4xa380ebol; [C2 V6]; [C2 V6] # ݖ.σ
-B; xn--9ob.xn--3xa580ebol; [C2 V6]; [C2 V6] # ݖ.ς
-T; \u0756。\u3164\u200DΣ; [C2 P1 V6]; [P1 V6] # ݖ.σ
-N; \u0756。\u3164\u200DΣ; [C2 P1 V6]; [C2 P1 V6] # ݖ.σ
-T; \u0756。\u3164\u200Dσ; [C2 P1 V6]; [P1 V6] # ݖ.σ
-N; \u0756。\u3164\u200Dσ; [C2 P1 V6]; [C2 P1 V6] # ݖ.σ
-B; xn--9ob.xn--4xa574u; [V6]; [V6] # ݖ.σ
-B; xn--9ob.xn--4xa795lq2l; [C2 V6]; [C2 V6] # ݖ.σ
-B; xn--9ob.xn--3xa995lq2l; [C2 V6]; [C2 V6] # ݖ.ς
-T; ᡆႣ。󞢧\u0315\u200D\u200D; [C2 P1 V6]; [P1 V6] # ᡆႣ.̕
-N; ᡆႣ。󞢧\u0315\u200D\u200D; [C2 P1 V6]; [C2 P1 V6] # ᡆႣ.̕
-T; ᡆႣ。󞢧\u0315\u200D\u200D; [C2 P1 V6]; [P1 V6] # ᡆႣ.̕
-N; ᡆႣ。󞢧\u0315\u200D\u200D; [C2 P1 V6]; [C2 P1 V6] # ᡆႣ.̕
-T; ᡆⴃ。󞢧\u0315\u200D\u200D; [C2 P1 V6]; [P1 V6] # ᡆⴃ.̕
-N; ᡆⴃ。󞢧\u0315\u200D\u200D; [C2 P1 V6]; [C2 P1 V6] # ᡆⴃ.̕
-B; xn--57e237h.xn--5sa98523p; [V6]; [V6] # ᡆⴃ.̕
-B; xn--57e237h.xn--5sa649la993427a; [C2 V6]; [C2 V6] # ᡆⴃ.̕
-B; xn--bnd320b.xn--5sa98523p; [V6]; [V6] # ᡆႣ.̕
-B; xn--bnd320b.xn--5sa649la993427a; [C2 V6]; [C2 V6] # ᡆႣ.̕
-T; ᡆⴃ。󞢧\u0315\u200D\u200D; [C2 P1 V6]; [P1 V6] # ᡆⴃ.̕
-N; ᡆⴃ。󞢧\u0315\u200D\u200D; [C2 P1 V6]; [C2 P1 V6] # ᡆⴃ.̕
-T; 㭄\u200D\u084F𑚵.ς𐮮\u200C\u200D; [B5 B6 C1 C2]; [B5 B6] # 㭄ࡏ𑚵.ς𐮮
-N; 㭄\u200D\u084F𑚵.ς𐮮\u200C\u200D; [B5 B6 C1 C2]; [B5 B6 C1 C2] # 㭄ࡏ𑚵.ς𐮮
-T; 㭄\u200D\u084F𑚵.ς𐮮\u200C\u200D; [B5 B6 C1 C2]; [B5 B6] # 㭄ࡏ𑚵.ς𐮮
-N; 㭄\u200D\u084F𑚵.ς𐮮\u200C\u200D; [B5 B6 C1 C2]; [B5 B6 C1 C2] # 㭄ࡏ𑚵.ς𐮮
-T; 㭄\u200D\u084F𑚵.Σ𐮮\u200C\u200D; [B5 B6 C1 C2]; [B5 B6] # 㭄ࡏ𑚵.σ𐮮
-N; 㭄\u200D\u084F𑚵.Σ𐮮\u200C\u200D; [B5 B6 C1 C2]; [B5 B6 C1 C2] # 㭄ࡏ𑚵.σ𐮮
-T; 㭄\u200D\u084F𑚵.σ𐮮\u200C\u200D; [B5 B6 C1 C2]; [B5 B6] # 㭄ࡏ𑚵.σ𐮮
-N; 㭄\u200D\u084F𑚵.σ𐮮\u200C\u200D; [B5 B6 C1 C2]; [B5 B6 C1 C2] # 㭄ࡏ𑚵.σ𐮮
-B; xn--ewb302xhu1l.xn--4xa0426k; [B5 B6]; [B5 B6] # 㭄ࡏ𑚵.σ𐮮
-B; xn--ewb962jfitku4r.xn--4xa695lda6932v; [B5 B6 C1 C2]; [B5 B6 C1 C2] # 㭄ࡏ𑚵.σ𐮮
-B; xn--ewb962jfitku4r.xn--3xa895lda6932v; [B5 B6 C1 C2]; [B5 B6 C1 C2] # 㭄ࡏ𑚵.ς𐮮
-T; 㭄\u200D\u084F𑚵.Σ𐮮\u200C\u200D; [B5 B6 C1 C2]; [B5 B6] # 㭄ࡏ𑚵.σ𐮮
-N; 㭄\u200D\u084F𑚵.Σ𐮮\u200C\u200D; [B5 B6 C1 C2]; [B5 B6 C1 C2] # 㭄ࡏ𑚵.σ𐮮
-T; 㭄\u200D\u084F𑚵.σ𐮮\u200C\u200D; [B5 B6 C1 C2]; [B5 B6] # 㭄ࡏ𑚵.σ𐮮
-N; 㭄\u200D\u084F𑚵.σ𐮮\u200C\u200D; [B5 B6 C1 C2]; [B5 B6 C1 C2] # 㭄ࡏ𑚵.σ𐮮
-B; \u17B5。𞯸ꡀ🄋; [B1 B2 B3 B6 P1 V5 V6]; [B1 B2 B3 B6 P1 V5 V6] # .ꡀ🄋
-B; xn--03e.xn--8b9ar252dngd; [B1 B2 B3 B6 V5 V6]; [B1 B2 B3 B6 V5 V6] # .ꡀ🄋
-B; 󐪺暑.⾑\u0668; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 暑.襾٨
-B; 󐪺暑.襾\u0668; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 暑.襾٨
-B; xn--tlvq3513e.xn--hib9228d; [B5 B6 V6]; [B5 B6 V6] # 暑.襾٨
-B; 󠄚≯ꡢ。\u0891\u1DFF; [B1 P1 V6]; [B1 P1 V6] # ≯ꡢ.᷿
-B; 󠄚>\u0338ꡢ。\u0891\u1DFF; [B1 P1 V6]; [B1 P1 V6] # ≯ꡢ.᷿
-B; xn--hdh7783c.xn--9xb680i; [B1 V6]; [B1 V6] # ≯ꡢ.᷿
-B; \uFDC3𮁱\u0B4D𐨿.󐧤Ⴗ; [B2 B3 P1 V6]; [B2 B3 P1 V6] # كمم𮁱୍𐨿.Ⴗ
-B; \u0643\u0645\u0645𮁱\u0B4D𐨿.󐧤Ⴗ; [B2 B3 P1 V6]; [B2 B3 P1 V6] # كمم𮁱୍𐨿.Ⴗ
-B; \u0643\u0645\u0645𮁱\u0B4D𐨿.󐧤ⴗ; [B2 B3 P1 V6]; [B2 B3 P1 V6] # كمم𮁱୍𐨿.ⴗ
-B; xn--fhbea662czx68a2tju.xn--fljz2846h; [B2 B3 V6]; [B2 B3 V6] # كمم𮁱୍𐨿.ⴗ
-B; xn--fhbea662czx68a2tju.xn--vnd55511o; [B2 B3 V6]; [B2 B3 V6] # كمم𮁱୍𐨿.Ⴗ
-B; \uFDC3𮁱\u0B4D𐨿.󐧤ⴗ; [B2 B3 P1 V6]; [B2 B3 P1 V6] # كمم𮁱୍𐨿.ⴗ
-B; 𞀨。\u1B44򡛨𞎇; [P1 V5 V6]; [P1 V5 V6] # 𞀨.᭄
-B; 𞀨。\u1B44򡛨𞎇; [P1 V5 V6]; [P1 V5 V6] # 𞀨.᭄
-B; xn--mi4h.xn--1uf6843smg20c; [V5 V6]; [V5 V6] # 𞀨.᭄
-T; 󠣼\u200C.𐺰\u200Cᡟ; [B1 B2 B3 C1 P1 V6]; [B1 B2 B3 P1 V6] # .ᡟ
-N; 󠣼\u200C.𐺰\u200Cᡟ; [B1 B2 B3 C1 P1 V6]; [B1 B2 B3 C1 P1 V6] # .ᡟ
-T; 󠣼\u200C.𐺰\u200Cᡟ; [B1 B2 B3 C1 P1 V6]; [B1 B2 B3 P1 V6] # .ᡟ
-N; 󠣼\u200C.𐺰\u200Cᡟ; [B1 B2 B3 C1 P1 V6]; [B1 B2 B3 C1 P1 V6] # .ᡟ
-B; xn--q046e.xn--v8e7227j; [B1 B2 B3 V6]; [B1 B2 B3 V6]
-B; xn--0ug18531l.xn--v8e340bp21t; [B1 B2 B3 C1 V6]; [B1 B2 B3 C1 V6] # .ᡟ
-T; ᢛ󨅟ß.ጧ; [P1 V6]; [P1 V6]
-N; ᢛ󨅟ß.ጧ; [P1 V6]; [P1 V6]
-B; ᢛ󨅟SS.ጧ; [P1 V6]; [P1 V6]
-B; ᢛ󨅟ss.ጧ; [P1 V6]; [P1 V6]
-B; ᢛ󨅟Ss.ጧ; [P1 V6]; [P1 V6]
-B; xn--ss-7dp66033t.xn--p5d; [V6]; [V6]
-B; xn--zca562jc642x.xn--p5d; [V6]; [V6]
-T; ⮒\u200C.񒚗\u200C; [C1 P1 V6]; [P1 V6] # ⮒.
-N; ⮒\u200C.񒚗\u200C; [C1 P1 V6]; [C1 P1 V6] # ⮒.
-B; xn--b9i.xn--5p9y; [V6]; [V6]
-B; xn--0ugx66b.xn--0ugz2871c; [C1 V6]; [C1 V6] # ⮒.
-B; 𞤂񹞁𐹯。Ⴜ; [B2 P1 V6]; [B2 P1 V6]
-B; 𞤤񹞁𐹯。ⴜ; [B2 P1 V6]; [B2 P1 V6]
-B; xn--no0dr648a51o3b.xn--klj; [B2 V6]; [B2 V6]
-B; xn--no0dr648a51o3b.xn--0nd; [B2 V6]; [B2 V6]
-B; 𞤂񹞁𐹯。ⴜ; [B2 P1 V6]; [B2 P1 V6]
-T; 𐹵⮣\u200C𑄰。񷴿\uFCB7; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 P1 V6] # 𐹵⮣𑄰.ضم
-N; 𐹵⮣\u200C𑄰。񷴿\uFCB7; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 C1 P1 V6] # 𐹵⮣𑄰.ضم
-T; 𐹵⮣\u200C𑄰。񷴿\u0636\u0645; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 P1 V6] # 𐹵⮣𑄰.ضم
-N; 𐹵⮣\u200C𑄰。񷴿\u0636\u0645; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 C1 P1 V6] # 𐹵⮣𑄰.ضم
-B; xn--s9i5458e7yb.xn--1gb4a66004i; [B1 B5 B6 V6]; [B1 B5 B6 V6] # 𐹵⮣𑄰.ضم
-B; xn--0ug586bcj8p7jc.xn--1gb4a66004i; [B1 B5 B6 C1 V6]; [B1 B5 B6 C1 V6] # 𐹵⮣𑄰.ضم
-T; Ⴒ。デß𞤵\u0C4D; [B5 B6 P1 V6]; [B5 B6 P1 V6] # Ⴒ.デß𞤵్
-N; Ⴒ。デß𞤵\u0C4D; [B5 B6 P1 V6]; [B5 B6 P1 V6] # Ⴒ.デß𞤵్
-T; Ⴒ。テ\u3099ß𞤵\u0C4D; [B5 B6 P1 V6]; [B5 B6 P1 V6] # Ⴒ.デß𞤵్
-N; Ⴒ。テ\u3099ß𞤵\u0C4D; [B5 B6 P1 V6]; [B5 B6 P1 V6] # Ⴒ.デß𞤵్
-T; ⴒ。テ\u3099ß𞤵\u0C4D; [B5 B6]; [B5 B6] # ⴒ.デß𞤵్
-N; ⴒ。テ\u3099ß𞤵\u0C4D; [B5 B6]; [B5 B6] # ⴒ.デß𞤵్
-T; ⴒ。デß𞤵\u0C4D; [B5 B6]; [B5 B6] # ⴒ.デß𞤵్
-N; ⴒ。デß𞤵\u0C4D; [B5 B6]; [B5 B6] # ⴒ.デß𞤵్
-B; Ⴒ。デSS𞤓\u0C4D; [B5 B6 P1 V6]; [B5 B6 P1 V6] # Ⴒ.デss𞤵్
-B; Ⴒ。テ\u3099SS𞤓\u0C4D; [B5 B6 P1 V6]; [B5 B6 P1 V6] # Ⴒ.デss𞤵్
-B; ⴒ。テ\u3099ss𞤵\u0C4D; [B5 B6]; [B5 B6] # ⴒ.デss𞤵్
-B; ⴒ。デss𞤵\u0C4D; [B5 B6]; [B5 B6] # ⴒ.デss𞤵్
-B; Ⴒ。デSs𞤵\u0C4D; [B5 B6 P1 V6]; [B5 B6 P1 V6] # Ⴒ.デss𞤵్
-B; Ⴒ。テ\u3099Ss𞤵\u0C4D; [B5 B6 P1 V6]; [B5 B6 P1 V6] # Ⴒ.デss𞤵్
-B; xn--qnd.xn--ss-9nh3648ahh20b; [B5 B6 V6]; [B5 B6 V6] # Ⴒ.デss𞤵్
-B; xn--9kj.xn--ss-9nh3648ahh20b; [B5 B6]; [B5 B6] # ⴒ.デss𞤵్
-B; xn--9kj.xn--zca669cmr3a0f28a; [B5 B6]; [B5 B6] # ⴒ.デß𞤵్
-B; xn--qnd.xn--zca669cmr3a0f28a; [B5 B6 V6]; [B5 B6 V6] # Ⴒ.デß𞤵్
-B; Ⴒ。デSS𞤵\u0C4D; [B5 B6 P1 V6]; [B5 B6 P1 V6] # Ⴒ.デss𞤵్
-B; Ⴒ。テ\u3099SS𞤵\u0C4D; [B5 B6 P1 V6]; [B5 B6 P1 V6] # Ⴒ.デss𞤵్
-B; 𑁿\u0D4D.7-\u07D2; [B1 B3 B6 V5]; [B1 B3 B6 V5] # 𑁿്.7-ߒ
-B; 𑁿\u0D4D.7-\u07D2; [B1 B3 B6 V5]; [B1 B3 B6 V5] # 𑁿്.7-ߒ
-B; xn--wxc1283k.xn--7--yue; [B1 B3 B6 V5]; [B1 B3 B6 V5] # 𑁿്.7-ߒ
-B; ≯𑜫󠭇.\u1734񒞤𑍬ᢧ; [P1 V5 V6]; [P1 V5 V6] # ≯𑜫.᜴𑍬ᢧ
-B; >\u0338𑜫󠭇.\u1734񒞤𑍬ᢧ; [P1 V5 V6]; [P1 V5 V6] # ≯𑜫.᜴𑍬ᢧ
-B; xn--hdhx157g68o0g.xn--c0e65eu616c34o7a; [V5 V6]; [V5 V6] # ≯𑜫.᜴𑍬ᢧ
-B; \u1DDB򎐙Ⴗ쏔。\u0781; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ᷛႷ쏔.ށ
-B; \u1DDB򎐙Ⴗ쏔。\u0781; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ᷛႷ쏔.ށ
-B; \u1DDB򎐙ⴗ쏔。\u0781; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ᷛⴗ쏔.ށ
-B; \u1DDB򎐙ⴗ쏔。\u0781; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ᷛⴗ쏔.ށ
-B; xn--zegy26dw47iy6w2f.xn--iqb; [B1 V5 V6]; [B1 V5 V6] # ᷛⴗ쏔.ށ
-B; xn--vnd148d733ky6n9e.xn--iqb; [B1 V5 V6]; [B1 V5 V6] # ᷛႷ쏔.ށ
-T; ß。𐋳Ⴌ\u0FB8; [P1 V6]; [P1 V6] # ß.𐋳Ⴌྸ
-N; ß。𐋳Ⴌ\u0FB8; [P1 V6]; [P1 V6] # ß.𐋳Ⴌྸ
-T; ß。𐋳Ⴌ\u0FB8; [P1 V6]; [P1 V6] # ß.𐋳Ⴌྸ
-N; ß。𐋳Ⴌ\u0FB8; [P1 V6]; [P1 V6] # ß.𐋳Ⴌྸ
-T; ß。𐋳ⴌ\u0FB8; ß.𐋳ⴌ\u0FB8; ss.xn--lgd921mvv0m; NV8 # ß.𐋳ⴌྸ
-N; ß。𐋳ⴌ\u0FB8; ß.𐋳ⴌ\u0FB8; xn--zca.xn--lgd921mvv0m; NV8 # ß.𐋳ⴌྸ
-B; SS。𐋳Ⴌ\u0FB8; [P1 V6]; [P1 V6] # ss.𐋳Ⴌྸ
-B; ss。𐋳ⴌ\u0FB8; ss.𐋳ⴌ\u0FB8; ss.xn--lgd921mvv0m; NV8 # ss.𐋳ⴌྸ
-B; Ss。𐋳Ⴌ\u0FB8; [P1 V6]; [P1 V6] # ss.𐋳Ⴌྸ
-B; ss.xn--lgd10cu829c; [V6]; [V6] # ss.𐋳Ⴌྸ
-B; ss.xn--lgd921mvv0m; ss.𐋳ⴌ\u0FB8; ss.xn--lgd921mvv0m; NV8 # ss.𐋳ⴌྸ
-B; ss.𐋳ⴌ\u0FB8; ; ss.xn--lgd921mvv0m; NV8 # ss.𐋳ⴌྸ
-B; SS.𐋳Ⴌ\u0FB8; [P1 V6]; [P1 V6] # ss.𐋳Ⴌྸ
-B; Ss.𐋳Ⴌ\u0FB8; [P1 V6]; [P1 V6] # ss.𐋳Ⴌྸ
-B; xn--zca.xn--lgd921mvv0m; ß.𐋳ⴌ\u0FB8; xn--zca.xn--lgd921mvv0m; NV8 # ß.𐋳ⴌྸ
-T; ß.𐋳ⴌ\u0FB8; ; ss.xn--lgd921mvv0m; NV8 # ß.𐋳ⴌྸ
-N; ß.𐋳ⴌ\u0FB8; ; xn--zca.xn--lgd921mvv0m; NV8 # ß.𐋳ⴌྸ
-B; xn--zca.xn--lgd10cu829c; [V6]; [V6] # ß.𐋳Ⴌྸ
-T; ß。𐋳ⴌ\u0FB8; ß.𐋳ⴌ\u0FB8; ss.xn--lgd921mvv0m; NV8 # ß.𐋳ⴌྸ
-N; ß。𐋳ⴌ\u0FB8; ß.𐋳ⴌ\u0FB8; xn--zca.xn--lgd921mvv0m; NV8 # ß.𐋳ⴌྸ
-B; SS。𐋳Ⴌ\u0FB8; [P1 V6]; [P1 V6] # ss.𐋳Ⴌྸ
-B; ss。𐋳ⴌ\u0FB8; ss.𐋳ⴌ\u0FB8; ss.xn--lgd921mvv0m; NV8 # ss.𐋳ⴌྸ
-B; Ss。𐋳Ⴌ\u0FB8; [P1 V6]; [P1 V6] # ss.𐋳Ⴌྸ
-T; -\u069E𐶡.\u200C⾝\u09CD; [B1 C1 P1 V3 V6]; [B1 P1 V3 V6] # -ڞ.身্
-N; -\u069E𐶡.\u200C⾝\u09CD; [B1 C1 P1 V3 V6]; [B1 C1 P1 V3 V6] # -ڞ.身্
-T; -\u069E𐶡.\u200C身\u09CD; [B1 C1 P1 V3 V6]; [B1 P1 V3 V6] # -ڞ.身্
-N; -\u069E𐶡.\u200C身\u09CD; [B1 C1 P1 V3 V6]; [B1 C1 P1 V3 V6] # -ڞ.身্
-B; xn----stc7013r.xn--b7b1419d; [B1 V3 V6]; [B1 V3 V6] # -ڞ.身্
-B; xn----stc7013r.xn--b7b305imj2f; [B1 C1 V3 V6]; [B1 C1 V3 V6] # -ڞ.身্
-T; 😮\u0764𑈵𞀖.💅\u200D; [B1 C2]; [B1] # 😮ݤ𑈵𞀖.💅
-N; 😮\u0764𑈵𞀖.💅\u200D; [B1 C2]; [B1 C2] # 😮ݤ𑈵𞀖.💅
-T; 😮\u0764𑈵𞀖.💅\u200D; [B1 C2]; [B1] # 😮ݤ𑈵𞀖.💅
-N; 😮\u0764𑈵𞀖.💅\u200D; [B1 C2]; [B1 C2] # 😮ݤ𑈵𞀖.💅
-B; xn--opb4277kuc7elqsa.xn--kr8h; [B1]; [B1] # 😮ݤ𑈵𞀖.💅
-B; xn--opb4277kuc7elqsa.xn--1ug5265p; [B1 C2]; [B1 C2] # 😮ݤ𑈵𞀖.💅
-T; \u08F2\u200D꙳\u0712.ᢏ\u200C󠍄; [B1 B6 C1 C2 P1 V5 V6]; [B1 B6 P1 V5 V6] # ࣲ꙳ܒ.ᢏ
-N; \u08F2\u200D꙳\u0712.ᢏ\u200C󠍄; [B1 B6 C1 C2 P1 V5 V6]; [B1 B6 C1 C2 P1 V5 V6] # ࣲ꙳ܒ.ᢏ
-B; xn--cnb37gdy00a.xn--89e02253p; [B1 B6 V5 V6]; [B1 B6 V5 V6] # ࣲ꙳ܒ.ᢏ
-B; xn--cnb37g904be26j.xn--89e849ax9363a; [B1 B6 C1 C2 V5 V6]; [B1 B6 C1 C2 V5 V6] # ࣲ꙳ܒ.ᢏ
-B; Ⴑ.\u06BF𞯓ᠲ; [B2 B3 P1 V6]; [B2 B3 P1 V6] # Ⴑ.ڿᠲ
-B; Ⴑ.\u06BF𞯓ᠲ; [B2 B3 P1 V6]; [B2 B3 P1 V6] # Ⴑ.ڿᠲ
-B; ⴑ.\u06BF𞯓ᠲ; [B2 B3 P1 V6]; [B2 B3 P1 V6] # ⴑ.ڿᠲ
-B; xn--8kj.xn--ykb840gd555a; [B2 B3 V6]; [B2 B3 V6] # ⴑ.ڿᠲ
-B; xn--pnd.xn--ykb840gd555a; [B2 B3 V6]; [B2 B3 V6] # Ⴑ.ڿᠲ
-B; ⴑ.\u06BF𞯓ᠲ; [B2 B3 P1 V6]; [B2 B3 P1 V6] # ⴑ.ڿᠲ
-B; \u1A5A𛦝\u0C4D。𚝬𝟵; [P1 V5 V6]; [P1 V5 V6] # ᩚ్.9
-B; \u1A5A𛦝\u0C4D。𚝬9; [P1 V5 V6]; [P1 V5 V6] # ᩚ్.9
-B; xn--lqc703ebm93a.xn--9-000p; [V5 V6]; [V5 V6] # ᩚ్.9
-T; \u200C\u06A0𿺆𝟗。Ⴣ꒘\uFCD0񐘖; [B1 B5 C1 P1 V6]; [B2 B5 P1 V6] # ڠ9.Ⴣ꒘مخ
-N; \u200C\u06A0𿺆𝟗。Ⴣ꒘\uFCD0񐘖; [B1 B5 C1 P1 V6]; [B1 B5 C1 P1 V6] # ڠ9.Ⴣ꒘مخ
-T; \u200C\u06A0𿺆9。Ⴣ꒘\u0645\u062E񐘖; [B1 B5 C1 P1 V6]; [B2 B5 P1 V6] # ڠ9.Ⴣ꒘مخ
-N; \u200C\u06A0𿺆9。Ⴣ꒘\u0645\u062E񐘖; [B1 B5 C1 P1 V6]; [B1 B5 C1 P1 V6] # ڠ9.Ⴣ꒘مخ
-T; \u200C\u06A0𿺆9。ⴣ꒘\u0645\u062E񐘖; [B1 B5 C1 P1 V6]; [B2 B5 P1 V6] # ڠ9.ⴣ꒘مخ
-N; \u200C\u06A0𿺆9。ⴣ꒘\u0645\u062E񐘖; [B1 B5 C1 P1 V6]; [B1 B5 C1 P1 V6] # ڠ9.ⴣ꒘مخ
-B; xn--9-vtc42319e.xn--tgb9bz87p833hw316c; [B2 B5 V6]; [B2 B5 V6] # ڠ9.ⴣ꒘مخ
-B; xn--9-vtc736qts91g.xn--tgb9bz87p833hw316c; [B1 B5 C1 V6]; [B1 B5 C1 V6] # ڠ9.ⴣ꒘مخ
-B; xn--9-vtc42319e.xn--tgb9bz61cfn8mw3t2c; [B2 B5 V6]; [B2 B5 V6] # ڠ9.Ⴣ꒘مخ
-B; xn--9-vtc736qts91g.xn--tgb9bz61cfn8mw3t2c; [B1 B5 C1 V6]; [B1 B5 C1 V6] # ڠ9.Ⴣ꒘مخ
-T; \u200C\u06A0𿺆𝟗。ⴣ꒘\uFCD0񐘖; [B1 B5 C1 P1 V6]; [B2 B5 P1 V6] # ڠ9.ⴣ꒘مخ
-N; \u200C\u06A0𿺆𝟗。ⴣ꒘\uFCD0񐘖; [B1 B5 C1 P1 V6]; [B1 B5 C1 P1 V6] # ڠ9.ⴣ꒘مخ
-B; ᡖ。\u031F񗛨\u0B82-; [P1 V3 V5 V6]; [P1 V3 V5 V6] # ᡖ.̟ஂ-
-B; ᡖ。\u031F񗛨\u0B82-; [P1 V3 V5 V6]; [P1 V3 V5 V6] # ᡖ.̟ஂ-
-B; xn--m8e.xn----mdb555dkk71m; [V3 V5 V6]; [V3 V5 V6] # ᡖ.̟ஂ-
-B; 𞠠浘。絧𞀀; [B2 B3]; [B2 B3]
-B; xn--e0wp491f.xn--ud0a3573e; [B2 B3]; [B2 B3]
-B; \u0596Ⴋ.𝟳≯︒\uFE0A; [P1 V5 V6]; [P1 V5 V6] # ֖Ⴋ.7≯︒
-B; \u0596Ⴋ.𝟳>\u0338︒\uFE0A; [P1 V5 V6]; [P1 V5 V6] # ֖Ⴋ.7≯︒
-B; \u0596Ⴋ.7≯。\uFE0A; [P1 V5 V6]; [P1 V5 V6] # ֖Ⴋ.7≯.
-B; \u0596Ⴋ.7>\u0338。\uFE0A; [P1 V5 V6]; [P1 V5 V6] # ֖Ⴋ.7≯.
-B; \u0596ⴋ.7>\u0338。\uFE0A; [P1 V5 V6]; [P1 V5 V6] # ֖ⴋ.7≯.
-B; \u0596ⴋ.7≯。\uFE0A; [P1 V5 V6]; [P1 V5 V6] # ֖ⴋ.7≯.
-B; xn--hcb613r.xn--7-pgo.; [V5 V6]; [V5 V6] # ֖ⴋ.7≯.
-B; xn--hcb887c.xn--7-pgo.; [V5 V6]; [V5 V6] # ֖Ⴋ.7≯.
-B; \u0596ⴋ.𝟳>\u0338︒\uFE0A; [P1 V5 V6]; [P1 V5 V6] # ֖ⴋ.7≯︒
-B; \u0596ⴋ.𝟳≯︒\uFE0A; [P1 V5 V6]; [P1 V5 V6] # ֖ⴋ.7≯︒
-B; xn--hcb613r.xn--7-pgoy530h; [V5 V6]; [V5 V6] # ֖ⴋ.7≯︒
-B; xn--hcb887c.xn--7-pgoy530h; [V5 V6]; [V5 V6] # ֖Ⴋ.7≯︒
-T; \u200DF𑓂。󠺨︒\u077E𐹢; [B1 C2 P1 V6]; [B1 P1 V6] # f𑓂.︒ݾ𐹢
-N; \u200DF𑓂。󠺨︒\u077E𐹢; [B1 C2 P1 V6]; [B1 C2 P1 V6] # f𑓂.︒ݾ𐹢
-T; \u200DF𑓂。󠺨。\u077E𐹢; [B1 C2 P1 V6]; [B1 P1 V6] # f𑓂..ݾ𐹢
-N; \u200DF𑓂。󠺨。\u077E𐹢; [B1 C2 P1 V6]; [B1 C2 P1 V6] # f𑓂..ݾ𐹢
-T; \u200Df𑓂。󠺨。\u077E𐹢; [B1 C2 P1 V6]; [B1 P1 V6] # f𑓂..ݾ𐹢
-N; \u200Df𑓂。󠺨。\u077E𐹢; [B1 C2 P1 V6]; [B1 C2 P1 V6] # f𑓂..ݾ𐹢
-B; xn--f-kq9i.xn--7656e.xn--fqb4175k; [B1 V6]; [B1 V6] # f𑓂..ݾ𐹢
-B; xn--f-tgn9761i.xn--7656e.xn--fqb4175k; [B1 C2 V6]; [B1 C2 V6] # f𑓂..ݾ𐹢
-T; \u200Df𑓂。󠺨︒\u077E𐹢; [B1 C2 P1 V6]; [B1 P1 V6] # f𑓂.︒ݾ𐹢
-N; \u200Df𑓂。󠺨︒\u077E𐹢; [B1 C2 P1 V6]; [B1 C2 P1 V6] # f𑓂.︒ݾ𐹢
-B; xn--f-kq9i.xn--fqb1637j8hky9452a; [B1 V6]; [B1 V6] # f𑓂.︒ݾ𐹢
-B; xn--f-tgn9761i.xn--fqb1637j8hky9452a; [B1 C2 V6]; [B1 C2 V6] # f𑓂.︒ݾ𐹢
-B; \u0845🄇𐼗︒。𐹻𑜫; [B1 B3 P1 V6]; [B1 B3 P1 V6] # ࡅ🄇︒.𐹻𑜫
-B; \u08456,𐼗。。𐹻𑜫; [B1 P1 V6 A4_2]; [B1 P1 V6 A4_2] # ࡅ6,..𐹻𑜫
-B; xn--6,-r4e4420y..xn--zo0di2m; [B1 P1 V6 A4_2]; [B1 P1 V6 A4_2] # ࡅ6,..𐹻𑜫
-B; xn--3vb4696jpxkjh7s.xn--zo0di2m; [B1 B3 V6]; [B1 B3 V6] # ࡅ🄇︒.𐹻𑜫
-B; 𐹈.\u1DC0𑈱𐦭; [B1 P1 V5 V6]; [B1 P1 V5 V6] # .᷀𑈱𐦭
-B; xn--jn0d.xn--7dg0871h3lf; [B1 V5 V6]; [B1 V5 V6] # .᷀𑈱𐦭
-B; Ⴂ䠺。𞤃񅏎󙮦\u0693; [B2 P1 V6]; [B2 P1 V6] # Ⴂ䠺.𞤥ړ
-B; ⴂ䠺。𞤥񅏎󙮦\u0693; [B2 P1 V6]; [B2 P1 V6] # ⴂ䠺.𞤥ړ
-B; xn--tkj638f.xn--pjb9818vg4xno967d; [B2 V6]; [B2 V6] # ⴂ䠺.𞤥ړ
-B; xn--9md875z.xn--pjb9818vg4xno967d; [B2 V6]; [B2 V6] # Ⴂ䠺.𞤥ړ
-B; ⴂ䠺。𞤃񅏎󙮦\u0693; [B2 P1 V6]; [B2 P1 V6] # ⴂ䠺.𞤥ړ
-B; 🄇伐︒.𜙚\uA8C4; [P1 V6]; [P1 V6] # 🄇伐︒.꣄
-B; 6,伐。.𜙚\uA8C4; [P1 V6 A4_2]; [P1 V6 A4_2] # 6,伐..꣄
-B; xn--6,-7i3c..xn--0f9ao925c; [P1 V6 A4_2]; [P1 V6 A4_2] # 6,伐..꣄
-B; xn--woqs083bel0g.xn--0f9ao925c; [V6]; [V6] # 🄇伐︒.꣄
-T; \u200D𐹠\uABED\uFFFB。\u200D𐫓Ⴚ𑂹; [B1 C2 P1 V6]; [B1 B2 B3 P1 V6] # 𐹠꯭.𐫓Ⴚ𑂹
-N; \u200D𐹠\uABED\uFFFB。\u200D𐫓Ⴚ𑂹; [B1 C2 P1 V6]; [B1 C2 P1 V6] # 𐹠꯭.𐫓Ⴚ𑂹
-T; \u200D𐹠\uABED\uFFFB。\u200D𐫓ⴚ𑂹; [B1 C2 P1 V6]; [B1 B2 B3 P1 V6] # 𐹠꯭.𐫓ⴚ𑂹
-N; \u200D𐹠\uABED\uFFFB。\u200D𐫓ⴚ𑂹; [B1 C2 P1 V6]; [B1 C2 P1 V6] # 𐹠꯭.𐫓ⴚ𑂹
-B; xn--429az70n29i.xn--ilj7702eqyd; [B1 B2 B3 V6]; [B1 B2 B3 V6] # 𐹠꯭.𐫓ⴚ𑂹
-B; xn--1ugz126coy7bdbm.xn--1ug062chv7ov6e; [B1 C2 V6]; [B1 C2 V6] # 𐹠꯭.𐫓ⴚ𑂹
-B; xn--429az70n29i.xn--ynd3619jqyd; [B1 B2 B3 V6]; [B1 B2 B3 V6] # 𐹠꯭.𐫓Ⴚ𑂹
-B; xn--1ugz126coy7bdbm.xn--ynd959evs1pv6e; [B1 C2 V6]; [B1 C2 V6] # 𐹠꯭.𐫓Ⴚ𑂹
-B; 󠆠.񷐴󌟈; [P1 V6 A4_2]; [P1 V6 A4_2]
-B; 󠆠.񷐴󌟈; [P1 V6 A4_2]; [P1 V6 A4_2]
-B; .xn--rx21bhv12i; [V6 A4_2]; [V6 A4_2]
-T; 𐫃\u200CႦ.≠𞷙; [B1 B2 B3 C1 P1 V6]; [B1 B2 B3 P1 V6] # 𐫃Ⴆ.≠
-N; 𐫃\u200CႦ.≠𞷙; [B1 B2 B3 C1 P1 V6]; [B1 B2 B3 C1 P1 V6] # 𐫃Ⴆ.≠
-T; 𐫃\u200CႦ.=\u0338𞷙; [B1 B2 B3 C1 P1 V6]; [B1 B2 B3 P1 V6] # 𐫃Ⴆ.≠
-N; 𐫃\u200CႦ.=\u0338𞷙; [B1 B2 B3 C1 P1 V6]; [B1 B2 B3 C1 P1 V6] # 𐫃Ⴆ.≠
-T; 𐫃\u200Cⴆ.=\u0338𞷙; [B1 B2 B3 C1 P1 V6]; [B1 B2 B3 P1 V6] # 𐫃ⴆ.≠
-N; 𐫃\u200Cⴆ.=\u0338𞷙; [B1 B2 B3 C1 P1 V6]; [B1 B2 B3 C1 P1 V6] # 𐫃ⴆ.≠
-T; 𐫃\u200Cⴆ.≠𞷙; [B1 B2 B3 C1 P1 V6]; [B1 B2 B3 P1 V6] # 𐫃ⴆ.≠
-N; 𐫃\u200Cⴆ.≠𞷙; [B1 B2 B3 C1 P1 V6]; [B1 B2 B3 C1 P1 V6] # 𐫃ⴆ.≠
-B; xn--xkjz802e.xn--1ch2802p; [B1 B2 B3 V6]; [B1 B2 B3 V6]
-B; xn--0ug132csv7o.xn--1ch2802p; [B1 B2 B3 C1 V6]; [B1 B2 B3 C1 V6] # 𐫃ⴆ.≠
-B; xn--end1719j.xn--1ch2802p; [B1 B2 B3 V6]; [B1 B2 B3 V6]
-B; xn--end799ekr1p.xn--1ch2802p; [B1 B2 B3 C1 V6]; [B1 B2 B3 C1 V6] # 𐫃Ⴆ.≠
-B; 󠁲𙩢𝟥ꘌ.\u0841; [B1 P1 V6]; [B1 P1 V6] # 3ꘌ.ࡁ
-B; 󠁲𙩢3ꘌ.\u0841; [B1 P1 V6]; [B1 P1 V6] # 3ꘌ.ࡁ
-B; xn--3-0g3es485d8i15h.xn--zvb; [B1 V6]; [B1 V6] # 3ꘌ.ࡁ
-B; -.\u1886󡲣-; [P1 V3 V5 V6]; [P1 V3 V5 V6] # -.ᢆ-
-B; -.xn----pbkx6497q; [V3 V5 V6]; [V3 V5 V6] # -.ᢆ-
-T; 󲚗\u200C。\u200C𞰆ς; [B1 B6 C1 P1 V6]; [B2 B3 P1 V6] # .ς
-N; 󲚗\u200C。\u200C𞰆ς; [B1 B6 C1 P1 V6]; [B1 B6 C1 P1 V6] # .ς
-T; 󲚗\u200C。\u200C𞰆ς; [B1 B6 C1 P1 V6]; [B2 B3 P1 V6] # .ς
-N; 󲚗\u200C。\u200C𞰆ς; [B1 B6 C1 P1 V6]; [B1 B6 C1 P1 V6] # .ς
-T; 󲚗\u200C。\u200C𞰆Σ; [B1 B6 C1 P1 V6]; [B2 B3 P1 V6] # .σ
-N; 󲚗\u200C。\u200C𞰆Σ; [B1 B6 C1 P1 V6]; [B1 B6 C1 P1 V6] # .σ
-T; 󲚗\u200C。\u200C𞰆σ; [B1 B6 C1 P1 V6]; [B2 B3 P1 V6] # .σ
-N; 󲚗\u200C。\u200C𞰆σ; [B1 B6 C1 P1 V6]; [B1 B6 C1 P1 V6] # .σ
-B; xn--qp42f.xn--4xa3011w; [B2 B3 V6]; [B2 B3 V6]
-B; xn--0ug76062m.xn--4xa595lhn92a; [B1 B6 C1 V6]; [B1 B6 C1 V6] # .σ
-B; xn--0ug76062m.xn--3xa795lhn92a; [B1 B6 C1 V6]; [B1 B6 C1 V6] # .ς
-T; 󲚗\u200C。\u200C𞰆Σ; [B1 B6 C1 P1 V6]; [B2 B3 P1 V6] # .σ
-N; 󲚗\u200C。\u200C𞰆Σ; [B1 B6 C1 P1 V6]; [B1 B6 C1 P1 V6] # .σ
-T; 󲚗\u200C。\u200C𞰆σ; [B1 B6 C1 P1 V6]; [B2 B3 P1 V6] # .σ
-N; 󲚗\u200C。\u200C𞰆σ; [B1 B6 C1 P1 V6]; [B1 B6 C1 P1 V6] # .σ
-T; 堕𑓂\u1B02。𐮇𞤽\u200C-; [B3 C1 V3]; [B3 V3] # 堕𑓂ᬂ.𐮇𞤽-
-N; 堕𑓂\u1B02。𐮇𞤽\u200C-; [B3 C1 V3]; [B3 C1 V3] # 堕𑓂ᬂ.𐮇𞤽-
-T; 堕𑓂\u1B02。𐮇𞤛\u200C-; [B3 C1 V3]; [B3 V3] # 堕𑓂ᬂ.𐮇𞤽-
-N; 堕𑓂\u1B02。𐮇𞤛\u200C-; [B3 C1 V3]; [B3 C1 V3] # 堕𑓂ᬂ.𐮇𞤽-
-B; xn--5sf345zdk8h.xn----iv5iw606c; [B3 V3]; [B3 V3] # 堕𑓂ᬂ.𐮇𞤽-
-B; xn--5sf345zdk8h.xn----rgnt157hwl9g; [B3 C1 V3]; [B3 C1 V3] # 堕𑓂ᬂ.𐮇𞤽-
-T; 𐹶𑁆ᡕ𞤢。ᡥς\u062Aς; [B1 B5]; [B1 B5] # 𐹶𑁆ᡕ𞤢.ᡥςتς
-N; 𐹶𑁆ᡕ𞤢。ᡥς\u062Aς; [B1 B5]; [B1 B5] # 𐹶𑁆ᡕ𞤢.ᡥςتς
-T; 𐹶𑁆ᡕ𞤢。ᡥς\u062Aς; [B1 B5]; [B1 B5] # 𐹶𑁆ᡕ𞤢.ᡥςتς
-N; 𐹶𑁆ᡕ𞤢。ᡥς\u062Aς; [B1 B5]; [B1 B5] # 𐹶𑁆ᡕ𞤢.ᡥςتς
-B; 𐹶𑁆ᡕ𞤀。ᡥΣ\u062AΣ; [B1 B5]; [B1 B5] # 𐹶𑁆ᡕ𞤢.ᡥσتσ
-B; 𐹶𑁆ᡕ𞤢。ᡥσ\u062Aσ; [B1 B5]; [B1 B5] # 𐹶𑁆ᡕ𞤢.ᡥσتσ
-B; 𐹶𑁆ᡕ𞤀。ᡥΣ\u062Aσ; [B1 B5]; [B1 B5] # 𐹶𑁆ᡕ𞤢.ᡥσتσ
-B; xn--l8e1317j1ebz456b.xn--4xaa85plx4a; [B1 B5]; [B1 B5] # 𐹶𑁆ᡕ𞤢.ᡥσتσ
-T; 𐹶𑁆ᡕ𞤀。ᡥΣ\u062Aς; [B1 B5]; [B1 B5] # 𐹶𑁆ᡕ𞤢.ᡥσتς
-N; 𐹶𑁆ᡕ𞤀。ᡥΣ\u062Aς; [B1 B5]; [B1 B5] # 𐹶𑁆ᡕ𞤢.ᡥσتς
-T; 𐹶𑁆ᡕ𞤢。ᡥσ\u062Aς; [B1 B5]; [B1 B5] # 𐹶𑁆ᡕ𞤢.ᡥσتς
-N; 𐹶𑁆ᡕ𞤢。ᡥσ\u062Aς; [B1 B5]; [B1 B5] # 𐹶𑁆ᡕ𞤢.ᡥσتς
-B; xn--l8e1317j1ebz456b.xn--3xab95plx4a; [B1 B5]; [B1 B5] # 𐹶𑁆ᡕ𞤢.ᡥσتς
-B; xn--l8e1317j1ebz456b.xn--3xaa16plx4a; [B1 B5]; [B1 B5] # 𐹶𑁆ᡕ𞤢.ᡥςتς
-B; 𐹶𑁆ᡕ𞤀。ᡥΣ\u062AΣ; [B1 B5]; [B1 B5] # 𐹶𑁆ᡕ𞤢.ᡥσتσ
-B; 𐹶𑁆ᡕ𞤢。ᡥσ\u062Aσ; [B1 B5]; [B1 B5] # 𐹶𑁆ᡕ𞤢.ᡥσتσ
-B; 𐹶𑁆ᡕ𞤀。ᡥΣ\u062Aσ; [B1 B5]; [B1 B5] # 𐹶𑁆ᡕ𞤢.ᡥσتσ
-T; 𐹶𑁆ᡕ𞤀。ᡥΣ\u062Aς; [B1 B5]; [B1 B5] # 𐹶𑁆ᡕ𞤢.ᡥσتς
-N; 𐹶𑁆ᡕ𞤀。ᡥΣ\u062Aς; [B1 B5]; [B1 B5] # 𐹶𑁆ᡕ𞤢.ᡥσتς
-T; 𐹶𑁆ᡕ𞤢。ᡥσ\u062Aς; [B1 B5]; [B1 B5] # 𐹶𑁆ᡕ𞤢.ᡥσتς
-N; 𐹶𑁆ᡕ𞤢。ᡥσ\u062Aς; [B1 B5]; [B1 B5] # 𐹶𑁆ᡕ𞤢.ᡥσتς
-B; 𐹶𑁆ᡕ𞤢。ᡥΣ\u062AΣ; [B1 B5]; [B1 B5] # 𐹶𑁆ᡕ𞤢.ᡥσتσ
-B; 𐹶𑁆ᡕ𞤢。ᡥΣ\u062Aσ; [B1 B5]; [B1 B5] # 𐹶𑁆ᡕ𞤢.ᡥσتσ
-T; 𐹶𑁆ᡕ𞤢。ᡥΣ\u062Aς; [B1 B5]; [B1 B5] # 𐹶𑁆ᡕ𞤢.ᡥσتς
-N; 𐹶𑁆ᡕ𞤢。ᡥΣ\u062Aς; [B1 B5]; [B1 B5] # 𐹶𑁆ᡕ𞤢.ᡥσتς
-B; 𐹶𑁆ᡕ𞤢。ᡥΣ\u062AΣ; [B1 B5]; [B1 B5] # 𐹶𑁆ᡕ𞤢.ᡥσتσ
-B; 𐹶𑁆ᡕ𞤢。ᡥΣ\u062Aσ; [B1 B5]; [B1 B5] # 𐹶𑁆ᡕ𞤢.ᡥσتσ
-T; 𐹶𑁆ᡕ𞤢。ᡥΣ\u062Aς; [B1 B5]; [B1 B5] # 𐹶𑁆ᡕ𞤢.ᡥσتς
-N; 𐹶𑁆ᡕ𞤢。ᡥΣ\u062Aς; [B1 B5]; [B1 B5] # 𐹶𑁆ᡕ𞤢.ᡥσتς
-T; 󏒰.-𝟻ß; [P1 V3 V6]; [P1 V3 V6]
-N; 󏒰.-𝟻ß; [P1 V3 V6]; [P1 V3 V6]
-T; 󏒰.-5ß; [P1 V3 V6]; [P1 V3 V6]
-N; 󏒰.-5ß; [P1 V3 V6]; [P1 V3 V6]
-B; 󏒰.-5SS; [P1 V3 V6]; [P1 V3 V6]
-B; 󏒰.-5ss; [P1 V3 V6]; [P1 V3 V6]
-B; 󏒰.-5Ss; [P1 V3 V6]; [P1 V3 V6]
-B; xn--t960e.-5ss; [V3 V6]; [V3 V6]
-B; xn--t960e.xn---5-hia; [V3 V6]; [V3 V6]
-B; 󏒰.-𝟻SS; [P1 V3 V6]; [P1 V3 V6]
-B; 󏒰.-𝟻ss; [P1 V3 V6]; [P1 V3 V6]
-B; 󏒰.-𝟻Ss; [P1 V3 V6]; [P1 V3 V6]
-T; \u200D𐨿.🤒Ⴥ򑮶; [C2 P1 V6]; [P1 V5 V6] # 𐨿.🤒Ⴥ
-N; \u200D𐨿.🤒Ⴥ򑮶; [C2 P1 V6]; [C2 P1 V6] # 𐨿.🤒Ⴥ
-T; \u200D𐨿.🤒ⴥ򑮶; [C2 P1 V6]; [P1 V5 V6] # 𐨿.🤒ⴥ
-N; \u200D𐨿.🤒ⴥ򑮶; [C2 P1 V6]; [C2 P1 V6] # 𐨿.🤒ⴥ
-B; xn--0s9c.xn--tljz038l0gz4b; [V5 V6]; [V5 V6]
-B; xn--1ug9533g.xn--tljz038l0gz4b; [C2 V6]; [C2 V6] # 𐨿.🤒ⴥ
-B; xn--0s9c.xn--9nd3211w0gz4b; [V5 V6]; [V5 V6]
-B; xn--1ug9533g.xn--9nd3211w0gz4b; [C2 V6]; [C2 V6] # 𐨿.🤒Ⴥ
-T; 𵋅。ß𬵩\u200D; [C2 P1 V6]; [P1 V6] # .ß𬵩
-N; 𵋅。ß𬵩\u200D; [C2 P1 V6]; [C2 P1 V6] # .ß𬵩
-T; 𵋅。SS𬵩\u200D; [C2 P1 V6]; [P1 V6] # .ss𬵩
-N; 𵋅。SS𬵩\u200D; [C2 P1 V6]; [C2 P1 V6] # .ss𬵩
-T; 𵋅。ss𬵩\u200D; [C2 P1 V6]; [P1 V6] # .ss𬵩
-N; 𵋅。ss𬵩\u200D; [C2 P1 V6]; [C2 P1 V6] # .ss𬵩
-T; 𵋅。Ss𬵩\u200D; [C2 P1 V6]; [P1 V6] # .ss𬵩
-N; 𵋅。Ss𬵩\u200D; [C2 P1 V6]; [C2 P1 V6] # .ss𬵩
-B; xn--ey1p.xn--ss-eq36b; [V6]; [V6]
-B; xn--ey1p.xn--ss-n1tx0508a; [C2 V6]; [C2 V6] # .ss𬵩
-B; xn--ey1p.xn--zca870nz438b; [C2 V6]; [C2 V6] # .ß𬵩
-T; \u200C𭉝。\u07F1\u0301𞹻; [B1 C1 V5]; [B1 V5] # 𭉝.߱́غ
-N; \u200C𭉝。\u07F1\u0301𞹻; [B1 C1 V5]; [B1 C1 V5] # 𭉝.߱́غ
-T; \u200C𭉝。\u07F1\u0301\u063A; [B1 C1 V5]; [B1 V5] # 𭉝.߱́غ
-N; \u200C𭉝。\u07F1\u0301\u063A; [B1 C1 V5]; [B1 C1 V5] # 𭉝.߱́غ
-B; xn--634m.xn--lsa46nuub; [B1 V5]; [B1 V5] # 𭉝.߱́غ
-B; xn--0ugy003y.xn--lsa46nuub; [B1 C1 V5]; [B1 C1 V5] # 𭉝.߱́غ
-T; 𞼌\u200C𑈶。𐹡; [B1 B3 C1 P1 V6]; [B1 P1 V6] # 𑈶.𐹡
-N; 𞼌\u200C𑈶。𐹡; [B1 B3 C1 P1 V6]; [B1 B3 C1 P1 V6] # 𑈶.𐹡
-B; xn--9g1d1288a.xn--8n0d; [B1 V6]; [B1 V6]
-B; xn--0ug7946gzpxf.xn--8n0d; [B1 B3 C1 V6]; [B1 B3 C1 V6] # 𑈶.𐹡
-T; 󠅯򇽭\u200C🜭。𑖿\u1ABBς≠; [C1 P1 V5 V6]; [P1 V5 V6] # 🜭.𑖿᪻ς≠
-N; 󠅯򇽭\u200C🜭。𑖿\u1ABBς≠; [C1 P1 V5 V6]; [C1 P1 V5 V6] # 🜭.𑖿᪻ς≠
-T; 󠅯򇽭\u200C🜭。𑖿\u1ABBς=\u0338; [C1 P1 V5 V6]; [P1 V5 V6] # 🜭.𑖿᪻ς≠
-N; 󠅯򇽭\u200C🜭。𑖿\u1ABBς=\u0338; [C1 P1 V5 V6]; [C1 P1 V5 V6] # 🜭.𑖿᪻ς≠
-T; 󠅯򇽭\u200C🜭。𑖿\u1ABBς≠; [C1 P1 V5 V6]; [P1 V5 V6] # 🜭.𑖿᪻ς≠
-N; 󠅯򇽭\u200C🜭。𑖿\u1ABBς≠; [C1 P1 V5 V6]; [C1 P1 V5 V6] # 🜭.𑖿᪻ς≠
-T; 󠅯򇽭\u200C🜭。𑖿\u1ABBς=\u0338; [C1 P1 V5 V6]; [P1 V5 V6] # 🜭.𑖿᪻ς≠
-N; 󠅯򇽭\u200C🜭。𑖿\u1ABBς=\u0338; [C1 P1 V5 V6]; [C1 P1 V5 V6] # 🜭.𑖿᪻ς≠
-T; 󠅯򇽭\u200C🜭。𑖿\u1ABBΣ=\u0338; [C1 P1 V5 V6]; [P1 V5 V6] # 🜭.𑖿᪻σ≠
-N; 󠅯򇽭\u200C🜭。𑖿\u1ABBΣ=\u0338; [C1 P1 V5 V6]; [C1 P1 V5 V6] # 🜭.𑖿᪻σ≠
-T; 󠅯򇽭\u200C🜭。𑖿\u1ABBΣ≠; [C1 P1 V5 V6]; [P1 V5 V6] # 🜭.𑖿᪻σ≠
-N; 󠅯򇽭\u200C🜭。𑖿\u1ABBΣ≠; [C1 P1 V5 V6]; [C1 P1 V5 V6] # 🜭.𑖿᪻σ≠
-T; 󠅯򇽭\u200C🜭。𑖿\u1ABBσ≠; [C1 P1 V5 V6]; [P1 V5 V6] # 🜭.𑖿᪻σ≠
-N; 󠅯򇽭\u200C🜭。𑖿\u1ABBσ≠; [C1 P1 V5 V6]; [C1 P1 V5 V6] # 🜭.𑖿᪻σ≠
-T; 󠅯򇽭\u200C🜭。𑖿\u1ABBσ=\u0338; [C1 P1 V5 V6]; [P1 V5 V6] # 🜭.𑖿᪻σ≠
-N; 󠅯򇽭\u200C🜭。𑖿\u1ABBσ=\u0338; [C1 P1 V5 V6]; [C1 P1 V5 V6] # 🜭.𑖿᪻σ≠
-B; xn--zb9h5968x.xn--4xa378i1mfjw7y; [V5 V6]; [V5 V6] # 🜭.𑖿᪻σ≠
-B; xn--0ug3766p5nm1b.xn--4xa378i1mfjw7y; [C1 V5 V6]; [C1 V5 V6] # 🜭.𑖿᪻σ≠
-B; xn--0ug3766p5nm1b.xn--3xa578i1mfjw7y; [C1 V5 V6]; [C1 V5 V6] # 🜭.𑖿᪻ς≠
-T; 󠅯򇽭\u200C🜭。𑖿\u1ABBΣ=\u0338; [C1 P1 V5 V6]; [P1 V5 V6] # 🜭.𑖿᪻σ≠
-N; 󠅯򇽭\u200C🜭。𑖿\u1ABBΣ=\u0338; [C1 P1 V5 V6]; [C1 P1 V5 V6] # 🜭.𑖿᪻σ≠
-T; 󠅯򇽭\u200C🜭。𑖿\u1ABBΣ≠; [C1 P1 V5 V6]; [P1 V5 V6] # 🜭.𑖿᪻σ≠
-N; 󠅯򇽭\u200C🜭。𑖿\u1ABBΣ≠; [C1 P1 V5 V6]; [C1 P1 V5 V6] # 🜭.𑖿᪻σ≠
-T; 󠅯򇽭\u200C🜭。𑖿\u1ABBσ≠; [C1 P1 V5 V6]; [P1 V5 V6] # 🜭.𑖿᪻σ≠
-N; 󠅯򇽭\u200C🜭。𑖿\u1ABBσ≠; [C1 P1 V5 V6]; [C1 P1 V5 V6] # 🜭.𑖿᪻σ≠
-T; 󠅯򇽭\u200C🜭。𑖿\u1ABBσ=\u0338; [C1 P1 V5 V6]; [P1 V5 V6] # 🜭.𑖿᪻σ≠
-N; 󠅯򇽭\u200C🜭。𑖿\u1ABBσ=\u0338; [C1 P1 V5 V6]; [C1 P1 V5 V6] # 🜭.𑖿᪻σ≠
-T; ⒋。⒈\u200D򳴢; [C2 P1 V6]; [P1 V6] # ⒋.⒈
-N; ⒋。⒈\u200D򳴢; [C2 P1 V6]; [C2 P1 V6] # ⒋.⒈
-T; 4.。1.\u200D򳴢; [C2 P1 V6 A4_2]; [P1 V6 A4_2] # 4..1.
-N; 4.。1.\u200D򳴢; [C2 P1 V6 A4_2]; [C2 P1 V6 A4_2] # 4..1.
-B; 4..1.xn--sf51d; [V6 A4_2]; [V6 A4_2]
-B; 4..1.xn--1ug64613i; [C2 V6 A4_2]; [C2 V6 A4_2] # 4..1.
-B; xn--wsh.xn--tsh07994h; [V6]; [V6]
-B; xn--wsh.xn--1ug58o74922a; [C2 V6]; [C2 V6] # ⒋.⒈
-T; \u0644ß。𐇽\u1A60򾅢𞤾; [B1 B2 B3 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # لß.᩠𐇽𞤾
-N; \u0644ß。𐇽\u1A60򾅢𞤾; [B1 B2 B3 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # لß.᩠𐇽𞤾
-T; \u0644ß。\u1A60𐇽򾅢𞤾; [B1 B2 B3 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # لß.᩠𐇽𞤾
-N; \u0644ß。\u1A60𐇽򾅢𞤾; [B1 B2 B3 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # لß.᩠𐇽𞤾
-T; \u0644ß。\u1A60𐇽򾅢𞤾; [B1 B2 B3 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # لß.᩠𐇽𞤾
-N; \u0644ß。\u1A60𐇽򾅢𞤾; [B1 B2 B3 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # لß.᩠𐇽𞤾
-B; \u0644SS。\u1A60𐇽򾅢𞤜; [B1 B2 B3 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # لss.᩠𐇽𞤾
-B; \u0644ss。\u1A60𐇽򾅢𞤾; [B1 B2 B3 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # لss.᩠𐇽𞤾
-B; \u0644Ss。\u1A60𐇽򾅢𞤜; [B1 B2 B3 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # لss.᩠𐇽𞤾
-B; xn--ss-svd.xn--jof2298hn83fln78f; [B1 B2 B3 V5 V6]; [B1 B2 B3 V5 V6] # لss.᩠𐇽𞤾
-B; xn--zca57y.xn--jof2298hn83fln78f; [B1 B2 B3 V5 V6]; [B1 B2 B3 V5 V6] # لß.᩠𐇽𞤾
-B; \u0644SS。\u1A60𐇽򾅢𞤜; [B1 B2 B3 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # لss.᩠𐇽𞤾
-B; \u0644ss。\u1A60𐇽򾅢𞤾; [B1 B2 B3 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # لss.᩠𐇽𞤾
-B; \u0644Ss。\u1A60𐇽򾅢𞤜; [B1 B2 B3 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # لss.᩠𐇽𞤾
-B; \u0644SS。𐇽\u1A60򾅢𞤜; [B1 B2 B3 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # لss.᩠𐇽𞤾
-B; \u0644ss。𐇽\u1A60򾅢𞤾; [B1 B2 B3 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # لss.᩠𐇽𞤾
-B; \u0644Ss。𐇽\u1A60򾅢𞤜; [B1 B2 B3 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # لss.᩠𐇽𞤾
-B; \u0644SS。\u1A60𐇽򾅢𞤾; [B1 B2 B3 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # لss.᩠𐇽𞤾
-B; \u0644Ss。\u1A60𐇽򾅢𞤾; [B1 B2 B3 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # لss.᩠𐇽𞤾
-B; \u0644SS。\u1A60𐇽򾅢𞤾; [B1 B2 B3 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # لss.᩠𐇽𞤾
-B; \u0644Ss。\u1A60𐇽򾅢𞤾; [B1 B2 B3 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # لss.᩠𐇽𞤾
-B; \u0644SS。𐇽\u1A60򾅢𞤾; [B1 B2 B3 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # لss.᩠𐇽𞤾
-B; \u0644Ss。𐇽\u1A60򾅢𞤾; [B1 B2 B3 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # لss.᩠𐇽𞤾
-B; 𐹽𑄳񼜲.\u1DDF\u17B8\uA806𑜫; [B1 B3 B6 P1 V5 V6]; [B1 B3 B6 P1 V5 V6] # 𐹽𑄳.ᷟី꠆𑜫
-B; xn--1o0di0c0652w.xn--33e362arr1l153d; [B1 B3 B6 V5 V6]; [B1 B3 B6 V5 V6] # 𐹽𑄳.ᷟី꠆𑜫
-T; Ⴓ𑜫\u200D򗭓.\u06A7𑰶; [P1 V6]; [P1 V6] # Ⴓ𑜫.ڧ𑰶
-N; Ⴓ𑜫\u200D򗭓.\u06A7𑰶; [P1 V6]; [P1 V6] # Ⴓ𑜫.ڧ𑰶
-T; Ⴓ𑜫\u200D򗭓.\u06A7𑰶; [P1 V6]; [P1 V6] # Ⴓ𑜫.ڧ𑰶
-N; Ⴓ𑜫\u200D򗭓.\u06A7𑰶; [P1 V6]; [P1 V6] # Ⴓ𑜫.ڧ𑰶
-T; ⴓ𑜫\u200D򗭓.\u06A7𑰶; [P1 V6]; [P1 V6] # ⴓ𑜫.ڧ𑰶
-N; ⴓ𑜫\u200D򗭓.\u06A7𑰶; [P1 V6]; [P1 V6] # ⴓ𑜫.ڧ𑰶
-B; xn--blj6306ey091d.xn--9jb4223l; [V6]; [V6] # ⴓ𑜫.ڧ𑰶
-B; xn--1ugy52cym7p7xu5e.xn--9jb4223l; [V6]; [V6] # ⴓ𑜫.ڧ𑰶
-B; xn--rnd8945ky009c.xn--9jb4223l; [V6]; [V6] # Ⴓ𑜫.ڧ𑰶
-B; xn--rnd479ep20q7x12e.xn--9jb4223l; [V6]; [V6] # Ⴓ𑜫.ڧ𑰶
-T; ⴓ𑜫\u200D򗭓.\u06A7𑰶; [P1 V6]; [P1 V6] # ⴓ𑜫.ڧ𑰶
-N; ⴓ𑜫\u200D򗭓.\u06A7𑰶; [P1 V6]; [P1 V6] # ⴓ𑜫.ڧ𑰶
-B; 𐨿.🄆—; [P1 V5 V6]; [P1 V5 V6]
-B; 𐨿.5,—; [P1 V5 V6]; [P1 V5 V6]
-B; xn--0s9c.xn--5,-81t; [P1 V5 V6]; [P1 V5 V6]
-B; xn--0s9c.xn--8ug8324p; [V5 V6]; [V5 V6]
-B; 򔊱񁦮۸。󠾭-; [P1 V3 V6]; [P1 V3 V6]
-B; xn--lmb18944c0g2z.xn----2k81m; [V3 V6]; [V3 V6]
-B; 𼗸\u07CD𐹮。\u06DDᡎᠴ; [B1 B5 B6 P1 V6]; [B1 B5 B6 P1 V6] # ߍ𐹮.ᡎᠴ
-B; xn--osb0855kcc2r.xn--tlb299fhc; [B1 B5 B6 V6]; [B1 B5 B6 V6] # ߍ𐹮.ᡎᠴ
-T; \u200DᠮႾ🄂.🚗\u0841𮹌\u200C; [B1 C1 C2 P1 V6]; [B1 P1 V6] # ᠮႾ🄂.🚗ࡁ
-N; \u200DᠮႾ🄂.🚗\u0841𮹌\u200C; [B1 C1 C2 P1 V6]; [B1 C1 C2 P1 V6] # ᠮႾ🄂.🚗ࡁ
-T; \u200DᠮႾ1,.🚗\u0841𮹌\u200C; [B1 C1 C2 P1 V6]; [B1 B6 P1 V6] # ᠮႾ1,.🚗ࡁ
-N; \u200DᠮႾ1,.🚗\u0841𮹌\u200C; [B1 C1 C2 P1 V6]; [B1 C1 C2 P1 V6] # ᠮႾ1,.🚗ࡁ
-T; \u200Dᠮⴞ1,.🚗\u0841𮹌\u200C; [B1 C1 C2 P1 V6]; [B1 B6 P1 V6] # ᠮⴞ1,.🚗ࡁ
-N; \u200Dᠮⴞ1,.🚗\u0841𮹌\u200C; [B1 C1 C2 P1 V6]; [B1 C1 C2 P1 V6] # ᠮⴞ1,.🚗ࡁ
-B; xn--1,-v3o625k.xn--zvb3124wpkpf; [B1 B6 P1 V6]; [B1 B6 P1 V6] # ᠮⴞ1,.🚗ࡁ
-B; xn--1,-v3o161c53q.xn--zvb692j9664aic1g; [B1 C1 C2 P1 V6]; [B1 C1 C2 P1 V6] # ᠮⴞ1,.🚗ࡁ
-B; xn--1,-ogkx89c.xn--zvb3124wpkpf; [B1 B6 P1 V6]; [B1 B6 P1 V6] # ᠮႾ1,.🚗ࡁ
-B; xn--1,-ogkx89c39j.xn--zvb692j9664aic1g; [B1 C1 C2 P1 V6]; [B1 C1 C2 P1 V6] # ᠮႾ1,.🚗ࡁ
-T; \u200Dᠮⴞ🄂.🚗\u0841𮹌\u200C; [B1 C1 C2 P1 V6]; [B1 P1 V6] # ᠮⴞ🄂.🚗ࡁ
-N; \u200Dᠮⴞ🄂.🚗\u0841𮹌\u200C; [B1 C1 C2 P1 V6]; [B1 C1 C2 P1 V6] # ᠮⴞ🄂.🚗ࡁ
-B; xn--h7e438h1p44a.xn--zvb3124wpkpf; [B1 V6]; [B1 V6] # ᠮⴞ🄂.🚗ࡁ
-B; xn--h7e341b0wlbv45b.xn--zvb692j9664aic1g; [B1 C1 C2 V6]; [B1 C1 C2 V6] # ᠮⴞ🄂.🚗ࡁ
-B; xn--2nd129ai554b.xn--zvb3124wpkpf; [B1 V6]; [B1 V6] # ᠮႾ🄂.🚗ࡁ
-B; xn--2nd129ay2gnw71c.xn--zvb692j9664aic1g; [B1 C1 C2 V6]; [B1 C1 C2 V6] # ᠮႾ🄂.🚗ࡁ
-B; \u0601\u0697.𑚶񼡷⾆; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ڗ.𑚶舌
-B; \u0601\u0697.𑚶񼡷舌; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ڗ.𑚶舌
-B; xn--jfb41a.xn--tc1ap851axo39c; [B1 V5 V6]; [B1 V5 V6] # ڗ.𑚶舌
-B; 🞅󠳡󜍙.񲖷; [P1 V6]; [P1 V6]
-B; xn--ie9hi1349bqdlb.xn--oj69a; [V6]; [V6]
-T; \u20E7񯡎-򫣝.4Ⴄ\u200C; [C1 P1 V5 V6]; [P1 V5 V6] # ⃧-.4Ⴄ
-N; \u20E7񯡎-򫣝.4Ⴄ\u200C; [C1 P1 V5 V6]; [C1 P1 V5 V6] # ⃧-.4Ⴄ
-T; \u20E7񯡎-򫣝.4ⴄ\u200C; [C1 P1 V5 V6]; [P1 V5 V6] # ⃧-.4ⴄ
-N; \u20E7񯡎-򫣝.4ⴄ\u200C; [C1 P1 V5 V6]; [C1 P1 V5 V6] # ⃧-.4ⴄ
-B; xn----9snu5320fi76w.xn--4-ivs; [V5 V6]; [V5 V6] # ⃧-.4ⴄ
-B; xn----9snu5320fi76w.xn--4-sgn589c; [C1 V5 V6]; [C1 V5 V6] # ⃧-.4ⴄ
-B; xn----9snu5320fi76w.xn--4-f0g; [V5 V6]; [V5 V6] # ⃧-.4Ⴄ
-B; xn----9snu5320fi76w.xn--4-f0g649i; [C1 V5 V6]; [C1 V5 V6] # ⃧-.4Ⴄ
-T; ᚭ。𝌠ß𖫱; ᚭ.𝌠ß𖫱; xn--hwe.xn--ss-ci1ub261a; NV8
-N; ᚭ。𝌠ß𖫱; ᚭ.𝌠ß𖫱; xn--hwe.xn--zca4946pblnc; NV8
-T; ᚭ。𝌠ß𖫱; ᚭ.𝌠ß𖫱; xn--hwe.xn--ss-ci1ub261a; NV8
-N; ᚭ。𝌠ß𖫱; ᚭ.𝌠ß𖫱; xn--hwe.xn--zca4946pblnc; NV8
-B; ᚭ。𝌠SS𖫱; ᚭ.𝌠ss𖫱; xn--hwe.xn--ss-ci1ub261a; NV8
-B; ᚭ。𝌠ss𖫱; ᚭ.𝌠ss𖫱; xn--hwe.xn--ss-ci1ub261a; NV8
-B; ᚭ。𝌠Ss𖫱; ᚭ.𝌠ss𖫱; xn--hwe.xn--ss-ci1ub261a; NV8
-B; xn--hwe.xn--ss-ci1ub261a; ᚭ.𝌠ss𖫱; xn--hwe.xn--ss-ci1ub261a; NV8
-B; ᚭ.𝌠ss𖫱; ; xn--hwe.xn--ss-ci1ub261a; NV8
-B; ᚭ.𝌠SS𖫱; ᚭ.𝌠ss𖫱; xn--hwe.xn--ss-ci1ub261a; NV8
-B; ᚭ.𝌠Ss𖫱; ᚭ.𝌠ss𖫱; xn--hwe.xn--ss-ci1ub261a; NV8
-B; xn--hwe.xn--zca4946pblnc; ᚭ.𝌠ß𖫱; xn--hwe.xn--zca4946pblnc; NV8
-T; ᚭ.𝌠ß𖫱; ; xn--hwe.xn--ss-ci1ub261a; NV8
-N; ᚭ.𝌠ß𖫱; ; xn--hwe.xn--zca4946pblnc; NV8
-B; ᚭ。𝌠SS𖫱; ᚭ.𝌠ss𖫱; xn--hwe.xn--ss-ci1ub261a; NV8
-B; ᚭ。𝌠ss𖫱; ᚭ.𝌠ss𖫱; xn--hwe.xn--ss-ci1ub261a; NV8
-B; ᚭ。𝌠Ss𖫱; ᚭ.𝌠ss𖫱; xn--hwe.xn--ss-ci1ub261a; NV8
-B; ₁。𞤫ꡪ; [B1 B2 B3]; [B1 B2 B3]
-B; 1。𞤫ꡪ; [B1 B2 B3]; [B1 B2 B3]
-B; 1。𞤉ꡪ; [B1 B2 B3]; [B1 B2 B3]
-B; 1.xn--gd9al691d; [B1 B2 B3]; [B1 B2 B3]
-B; ₁。𞤉ꡪ; [B1 B2 B3]; [B1 B2 B3]
-T; 𯻼\u200C.𞶞򻙤񥘇; [B2 B3 B6 C1 P1 V6]; [B2 B3 P1 V6] # .
-N; 𯻼\u200C.𞶞򻙤񥘇; [B2 B3 B6 C1 P1 V6]; [B2 B3 B6 C1 P1 V6] # .
-B; xn--kg4n.xn--2b7hs861pl540a; [B2 B3 V6]; [B2 B3 V6]
-B; xn--0ug27500a.xn--2b7hs861pl540a; [B2 B3 B6 C1 V6]; [B2 B3 B6 C1 V6] # .
-B; 𑑄≯。𑜤; [P1 V5 V6]; [P1 V5 V6]
-B; 𑑄>\u0338。𑜤; [P1 V5 V6]; [P1 V5 V6]
-B; 𑑄≯。𑜤; [P1 V5 V6]; [P1 V5 V6]
-B; 𑑄>\u0338。𑜤; [P1 V5 V6]; [P1 V5 V6]
-B; xn--hdh5636g.xn--ci2d; [V5 V6]; [V5 V6]
-T; Ⴋ≮𱲆。\u200D\u07A7𐋣; [C2 P1 V6]; [P1 V5 V6] # Ⴋ≮.ާ𐋣
-N; Ⴋ≮𱲆。\u200D\u07A7𐋣; [C2 P1 V6]; [C2 P1 V6] # Ⴋ≮.ާ𐋣
-T; Ⴋ<\u0338𱲆。\u200D\u07A7𐋣; [C2 P1 V6]; [P1 V5 V6] # Ⴋ≮.ާ𐋣
-N; Ⴋ<\u0338𱲆。\u200D\u07A7𐋣; [C2 P1 V6]; [C2 P1 V6] # Ⴋ≮.ާ𐋣
-T; ⴋ<\u0338𱲆。\u200D\u07A7𐋣; [C2 P1 V6]; [P1 V5 V6] # ⴋ≮.ާ𐋣
-N; ⴋ<\u0338𱲆。\u200D\u07A7𐋣; [C2 P1 V6]; [C2 P1 V6] # ⴋ≮.ާ𐋣
-T; ⴋ≮𱲆。\u200D\u07A7𐋣; [C2 P1 V6]; [P1 V5 V6] # ⴋ≮.ާ𐋣
-N; ⴋ≮𱲆。\u200D\u07A7𐋣; [C2 P1 V6]; [C2 P1 V6] # ⴋ≮.ާ𐋣
-B; xn--gdhz03bxt42d.xn--lrb6479j; [V5 V6]; [V5 V6] # ⴋ≮.ާ𐋣
-B; xn--gdhz03bxt42d.xn--lrb506jqr4n; [C2 V6]; [C2 V6] # ⴋ≮.ާ𐋣
-B; xn--jnd802gsm17c.xn--lrb6479j; [V5 V6]; [V5 V6] # Ⴋ≮.ާ𐋣
-B; xn--jnd802gsm17c.xn--lrb506jqr4n; [C2 V6]; [C2 V6] # Ⴋ≮.ާ𐋣
-B; \u17D2.򆽒≯; [P1 V5 V6]; [P1 V5 V6] # ្.≯
-B; \u17D2.򆽒>\u0338; [P1 V5 V6]; [P1 V5 V6] # ្.≯
-B; xn--u4e.xn--hdhx0084f; [V5 V6]; [V5 V6] # ្.≯
-B; 񏁇\u1734.𐨺É⬓𑄴; [P1 V5 V6]; [P1 V5 V6] # ᜴.𐨺é⬓𑄴
-B; 񏁇\u1734.𐨺E\u0301⬓𑄴; [P1 V5 V6]; [P1 V5 V6] # ᜴.𐨺é⬓𑄴
-B; 񏁇\u1734.𐨺É⬓𑄴; [P1 V5 V6]; [P1 V5 V6] # ᜴.𐨺é⬓𑄴
-B; 񏁇\u1734.𐨺E\u0301⬓𑄴; [P1 V5 V6]; [P1 V5 V6] # ᜴.𐨺é⬓𑄴
-B; 񏁇\u1734.𐨺e\u0301⬓𑄴; [P1 V5 V6]; [P1 V5 V6] # ᜴.𐨺é⬓𑄴
-B; 񏁇\u1734.𐨺é⬓𑄴; [P1 V5 V6]; [P1 V5 V6] # ᜴.𐨺é⬓𑄴
-B; xn--c0e34564d.xn--9ca207st53lg3f; [V5 V6]; [V5 V6] # ᜴.𐨺é⬓𑄴
-B; 񏁇\u1734.𐨺e\u0301⬓𑄴; [P1 V5 V6]; [P1 V5 V6] # ᜴.𐨺é⬓𑄴
-B; 񏁇\u1734.𐨺é⬓𑄴; [P1 V5 V6]; [P1 V5 V6] # ᜴.𐨺é⬓𑄴
-T; ᢇ\u200D\uA8C4。︒𞤺; [B1 B6 C2 P1 V6]; [B1 P1 V6] # ᢇ꣄.︒𞤺
-N; ᢇ\u200D\uA8C4。︒𞤺; [B1 B6 C2 P1 V6]; [B1 B6 C2 P1 V6] # ᢇ꣄.︒𞤺
-T; ᢇ\u200D\uA8C4。。𞤺; [B6 C2 A4_2]; [A4_2] # ᢇ꣄..𞤺
-N; ᢇ\u200D\uA8C4。。𞤺; [B6 C2 A4_2]; [B6 C2 A4_2] # ᢇ꣄..𞤺
-T; ᢇ\u200D\uA8C4。。𞤘; [B6 C2 A4_2]; [A4_2] # ᢇ꣄..𞤺
-N; ᢇ\u200D\uA8C4。。𞤘; [B6 C2 A4_2]; [B6 C2 A4_2] # ᢇ꣄..𞤺
-B; xn--09e4694e..xn--ye6h; [A4_2]; [A4_2] # ᢇ꣄..𞤺
-B; xn--09e669a6x8j..xn--ye6h; [B6 C2 A4_2]; [B6 C2 A4_2] # ᢇ꣄..𞤺
-T; ᢇ\u200D\uA8C4。︒𞤘; [B1 B6 C2 P1 V6]; [B1 P1 V6] # ᢇ꣄.︒𞤺
-N; ᢇ\u200D\uA8C4。︒𞤘; [B1 B6 C2 P1 V6]; [B1 B6 C2 P1 V6] # ᢇ꣄.︒𞤺
-B; xn--09e4694e.xn--y86cv562b; [B1 V6]; [B1 V6] # ᢇ꣄.︒𞤺
-B; xn--09e669a6x8j.xn--y86cv562b; [B1 B6 C2 V6]; [B1 B6 C2 V6] # ᢇ꣄.︒𞤺
-T; 𞩬򖙱\u1714\u200C。\u0631\u07AA≮; [B2 B3 P1 V6]; [B2 B3 P1 V6] # ᜔.رު≮
-N; 𞩬򖙱\u1714\u200C。\u0631\u07AA≮; [B2 B3 P1 V6]; [B2 B3 P1 V6] # ᜔.رު≮
-T; 𞩬򖙱\u1714\u200C。\u0631\u07AA<\u0338; [B2 B3 P1 V6]; [B2 B3 P1 V6] # ᜔.رު≮
-N; 𞩬򖙱\u1714\u200C。\u0631\u07AA<\u0338; [B2 B3 P1 V6]; [B2 B3 P1 V6] # ᜔.رު≮
-T; 𞩬򖙱\u1714\u200C。\u0631\u07AA≮; [B2 B3 P1 V6]; [B2 B3 P1 V6] # ᜔.رު≮
-N; 𞩬򖙱\u1714\u200C。\u0631\u07AA≮; [B2 B3 P1 V6]; [B2 B3 P1 V6] # ᜔.رު≮
-T; 𞩬򖙱\u1714\u200C。\u0631\u07AA<\u0338; [B2 B3 P1 V6]; [B2 B3 P1 V6] # ᜔.رު≮
-N; 𞩬򖙱\u1714\u200C。\u0631\u07AA<\u0338; [B2 B3 P1 V6]; [B2 B3 P1 V6] # ᜔.رު≮
-B; xn--fze3930v7hz6b.xn--wgb86el10d; [B2 B3 V6]; [B2 B3 V6] # ᜔.رު≮
-B; xn--fze607b9651bjwl7c.xn--wgb86el10d; [B2 B3 V6]; [B2 B3 V6] # ᜔.رު≮
-B; Ⴣ.\u0653ᢤ; [P1 V5 V6]; [P1 V5 V6] # Ⴣ.ٓᢤ
-B; Ⴣ.\u0653ᢤ; [P1 V5 V6]; [P1 V5 V6] # Ⴣ.ٓᢤ
-B; ⴣ.\u0653ᢤ; [V5]; [V5] # ⴣ.ٓᢤ
-B; xn--rlj.xn--vhb294g; [V5]; [V5] # ⴣ.ٓᢤ
-B; xn--7nd.xn--vhb294g; [V5 V6]; [V5 V6] # Ⴣ.ٓᢤ
-B; ⴣ.\u0653ᢤ; [V5]; [V5] # ⴣ.ٓᢤ
-B; 󠄈\u0813.싉򄆻Ⴤ򂡐; [P1 V6]; [P1 V6] # ࠓ.싉Ⴤ
-B; 󠄈\u0813.싉򄆻Ⴤ򂡐; [P1 V6]; [P1 V6] # ࠓ.싉Ⴤ
-B; 󠄈\u0813.싉򄆻Ⴤ򂡐; [P1 V6]; [P1 V6] # ࠓ.싉Ⴤ
-B; 󠄈\u0813.싉򄆻Ⴤ򂡐; [P1 V6]; [P1 V6] # ࠓ.싉Ⴤ
-B; 󠄈\u0813.싉򄆻ⴤ򂡐; [P1 V6]; [P1 V6] # ࠓ.싉ⴤ
-B; 󠄈\u0813.싉򄆻ⴤ򂡐; [P1 V6]; [P1 V6] # ࠓ.싉ⴤ
-B; xn--oub.xn--sljz109bpe25dviva; [V6]; [V6] # ࠓ.싉ⴤ
-B; xn--oub.xn--8nd9522gpe69cviva; [V6]; [V6] # ࠓ.싉Ⴤ
-B; 󠄈\u0813.싉򄆻ⴤ򂡐; [P1 V6]; [P1 V6] # ࠓ.싉ⴤ
-B; 󠄈\u0813.싉򄆻ⴤ򂡐; [P1 V6]; [P1 V6] # ࠓ.싉ⴤ
-B; \uAA2C𑲫≮.⤂; [P1 V5 V6]; [P1 V5 V6] # ꨬ𑲫≮.⤂
-B; \uAA2C𑲫<\u0338.⤂; [P1 V5 V6]; [P1 V5 V6] # ꨬ𑲫≮.⤂
-B; \uAA2C𑲫≮.⤂; [P1 V5 V6]; [P1 V5 V6] # ꨬ𑲫≮.⤂
-B; \uAA2C𑲫<\u0338.⤂; [P1 V5 V6]; [P1 V5 V6] # ꨬ𑲫≮.⤂
-B; xn--gdh1854cn19c.xn--kqi; [V5 V6]; [V5 V6] # ꨬ𑲫≮.⤂
-B; \u0604𐩔≮Ⴢ.Ⴃ; [B1 P1 V6]; [B1 P1 V6] # 𐩔≮Ⴢ.Ⴃ
-B; \u0604𐩔<\u0338Ⴢ.Ⴃ; [B1 P1 V6]; [B1 P1 V6] # 𐩔≮Ⴢ.Ⴃ
-B; \u0604𐩔≮Ⴢ.Ⴃ; [B1 P1 V6]; [B1 P1 V6] # 𐩔≮Ⴢ.Ⴃ
-B; \u0604𐩔<\u0338Ⴢ.Ⴃ; [B1 P1 V6]; [B1 P1 V6] # 𐩔≮Ⴢ.Ⴃ
-B; \u0604𐩔<\u0338ⴢ.ⴃ; [B1 P1 V6]; [B1 P1 V6] # 𐩔≮ⴢ.ⴃ
-B; \u0604𐩔≮ⴢ.ⴃ; [B1 P1 V6]; [B1 P1 V6] # 𐩔≮ⴢ.ⴃ
-B; \u0604𐩔≮Ⴢ.ⴃ; [B1 P1 V6]; [B1 P1 V6] # 𐩔≮Ⴢ.ⴃ
-B; \u0604𐩔<\u0338Ⴢ.ⴃ; [B1 P1 V6]; [B1 P1 V6] # 𐩔≮Ⴢ.ⴃ
-B; xn--mfb416c0jox02t.xn--ukj; [B1 V6]; [B1 V6] # 𐩔≮Ⴢ.ⴃ
-B; xn--mfb266l4khr54u.xn--ukj; [B1 V6]; [B1 V6] # 𐩔≮ⴢ.ⴃ
-B; xn--mfb416c0jox02t.xn--bnd; [B1 V6]; [B1 V6] # 𐩔≮Ⴢ.Ⴃ
-B; \u0604𐩔<\u0338ⴢ.ⴃ; [B1 P1 V6]; [B1 P1 V6] # 𐩔≮ⴢ.ⴃ
-B; \u0604𐩔≮ⴢ.ⴃ; [B1 P1 V6]; [B1 P1 V6] # 𐩔≮ⴢ.ⴃ
-B; \u0604𐩔≮Ⴢ.ⴃ; [B1 P1 V6]; [B1 P1 V6] # 𐩔≮Ⴢ.ⴃ
-B; \u0604𐩔<\u0338Ⴢ.ⴃ; [B1 P1 V6]; [B1 P1 V6] # 𐩔≮Ⴢ.ⴃ
-B; 𑁅。-; [V3 V5]; [V3 V5]
-B; xn--210d.-; [V3 V5]; [V3 V5]
-B; \u0DCA򕸽󠧱。饈≠\u0664; [B1 B5 B6 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # ්.饈≠٤
-B; \u0DCA򕸽󠧱。饈=\u0338\u0664; [B1 B5 B6 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # ්.饈≠٤
-B; \u0DCA򕸽󠧱。饈≠\u0664; [B1 B5 B6 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # ්.饈≠٤
-B; \u0DCA򕸽󠧱。饈=\u0338\u0664; [B1 B5 B6 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # ්.饈≠٤
-B; xn--h1c25913jfwov.xn--dib144ler5f; [B1 B5 B6 V5 V6]; [B1 B5 B6 V5 V6] # ්.饈≠٤
-B; 𞥃ᠠ⁷。≯邅⬻4; [B1 B2 P1 V6]; [B1 B2 P1 V6]
-B; 𞥃ᠠ⁷。>\u0338邅⬻4; [B1 B2 P1 V6]; [B1 B2 P1 V6]
-B; 𞥃ᠠ7。≯邅⬻4; [B1 B2 P1 V6]; [B1 B2 P1 V6]
-B; 𞥃ᠠ7。>\u0338邅⬻4; [B1 B2 P1 V6]; [B1 B2 P1 V6]
-B; 𞤡ᠠ7。>\u0338邅⬻4; [B1 B2 P1 V6]; [B1 B2 P1 V6]
-B; 𞤡ᠠ7。≯邅⬻4; [B1 B2 P1 V6]; [B1 B2 P1 V6]
-B; xn--7-v4j2826w.xn--4-ogoy01bou3i; [B1 B2 V6]; [B1 B2 V6]
-B; 𞤡ᠠ⁷。>\u0338邅⬻4; [B1 B2 P1 V6]; [B1 B2 P1 V6]
-B; 𞤡ᠠ⁷。≯邅⬻4; [B1 B2 P1 V6]; [B1 B2 P1 V6]
-B; 򠿯ᡳ-𑐻.𐹴𐋫\u0605󑎳; [B1 B6 P1 V6]; [B1 B6 P1 V6] # ᡳ-𑐻.𐹴𐋫
-B; xn----m9j3429kxmy7e.xn--nfb7950kdihrp812a; [B1 B6 V6]; [B1 B6 V6] # ᡳ-𑐻.𐹴𐋫
-B; 򠶆\u0845\u0A51.넨-󶧈; [B5 B6 P1 V6]; [B5 B6 P1 V6] # ࡅੑ.넨-
-B; 򠶆\u0845\u0A51.넨-󶧈; [B5 B6 P1 V6]; [B5 B6 P1 V6] # ࡅੑ.넨-
-B; xn--3vb26hb6834b.xn----i37ez0957g; [B5 B6 V6]; [B5 B6 V6] # ࡅੑ.넨-
-T; ꡦᡑ\u200D⒈。𐋣-; [C2 P1 V3 V6]; [P1 V3 V6] # ꡦᡑ⒈.𐋣-
-N; ꡦᡑ\u200D⒈。𐋣-; [C2 P1 V3 V6]; [C2 P1 V3 V6] # ꡦᡑ⒈.𐋣-
-T; ꡦᡑ\u200D1.。𐋣-; [C2 V3 A4_2]; [V3 A4_2] # ꡦᡑ1..𐋣-
-N; ꡦᡑ\u200D1.。𐋣-; [C2 V3 A4_2]; [C2 V3 A4_2] # ꡦᡑ1..𐋣-
-B; xn--1-o7j0610f..xn----381i; [V3 A4_2]; [V3 A4_2]
-B; xn--1-o7j663bdl7m..xn----381i; [C2 V3 A4_2]; [C2 V3 A4_2] # ꡦᡑ1..𐋣-
-B; xn--h8e863drj7h.xn----381i; [V3 V6]; [V3 V6]
-B; xn--h8e470bl0d838o.xn----381i; [C2 V3 V6]; [C2 V3 V6] # ꡦᡑ⒈.𐋣-
-B; Ⴌ。􍼠\uFB69; [B5 B6 P1 V6]; [B5 B6 P1 V6] # Ⴌ.ٹ
-B; Ⴌ。􍼠\u0679; [B5 B6 P1 V6]; [B5 B6 P1 V6] # Ⴌ.ٹ
-B; ⴌ。􍼠\u0679; [B5 B6 P1 V6]; [B5 B6 P1 V6] # ⴌ.ٹ
-B; xn--3kj.xn--yib19191t; [B5 B6 V6]; [B5 B6 V6] # ⴌ.ٹ
-B; xn--knd.xn--yib19191t; [B5 B6 V6]; [B5 B6 V6] # Ⴌ.ٹ
-B; ⴌ。􍼠\uFB69; [B5 B6 P1 V6]; [B5 B6 P1 V6] # ⴌ.ٹ
-B; 𐮁𐭱.\u0F84\u135E-\u1CFA; [B1 P1 V5 V6]; [B1 P1 V5 V6] # 𐮁𐭱.྄፞-
-B; xn--r19c5a.xn----xjg270ag3m; [B1 V5 V6]; [B1 V5 V6] # 𐮁𐭱.྄፞-
-T; ⒈䰹\u200D-。웈; [C2 P1 V3 V6]; [P1 V3 V6] # ⒈䰹-.웈
-N; ⒈䰹\u200D-。웈; [C2 P1 V3 V6]; [C2 P1 V3 V6] # ⒈䰹-.웈
-T; ⒈䰹\u200D-。웈; [C2 P1 V3 V6]; [P1 V3 V6] # ⒈䰹-.웈
-N; ⒈䰹\u200D-。웈; [C2 P1 V3 V6]; [C2 P1 V3 V6] # ⒈䰹-.웈
-T; 1.䰹\u200D-。웈; [C2 V3]; [V3] # 1.䰹-.웈
-N; 1.䰹\u200D-。웈; [C2 V3]; [C2 V3] # 1.䰹-.웈
-T; 1.䰹\u200D-。웈; [C2 V3]; [V3] # 1.䰹-.웈
-N; 1.䰹\u200D-。웈; [C2 V3]; [C2 V3] # 1.䰹-.웈
-B; 1.xn----zw5a.xn--kp5b; [V3]; [V3]
-B; 1.xn----tgnz80r.xn--kp5b; [C2 V3]; [C2 V3] # 1.䰹-.웈
-B; xn----dcp160o.xn--kp5b; [V3 V6]; [V3 V6]
-B; xn----tgnx5rjr6c.xn--kp5b; [C2 V3 V6]; [C2 V3 V6] # ⒈䰹-.웈
-T; て。\u200C󠳽\u07F3; [C1 P1 V6]; [P1 V6] # て.߳
-N; て。\u200C󠳽\u07F3; [C1 P1 V6]; [C1 P1 V6] # て.߳
-B; xn--m9j.xn--rtb10784p; [V6]; [V6] # て.߳
-B; xn--m9j.xn--rtb154j9l73w; [C1 V6]; [C1 V6] # て.߳
-T; ς。\uA9C0\u06E7; [V5]; [V5] # ς.꧀ۧ
-N; ς。\uA9C0\u06E7; [V5]; [V5] # ς.꧀ۧ
-T; ς。\uA9C0\u06E7; [V5]; [V5] # ς.꧀ۧ
-N; ς。\uA9C0\u06E7; [V5]; [V5] # ς.꧀ۧ
-B; Σ。\uA9C0\u06E7; [V5]; [V5] # σ.꧀ۧ
-B; σ。\uA9C0\u06E7; [V5]; [V5] # σ.꧀ۧ
-B; xn--4xa.xn--3lb1944f; [V5]; [V5] # σ.꧀ۧ
-B; xn--3xa.xn--3lb1944f; [V5]; [V5] # ς.꧀ۧ
-B; Σ。\uA9C0\u06E7; [V5]; [V5] # σ.꧀ۧ
-B; σ。\uA9C0\u06E7; [V5]; [V5] # σ.꧀ۧ
-B; \u0BCD󥫅򌉑.ႢႵ; [P1 V5 V6]; [P1 V5 V6] # ்.ႢႵ
-B; \u0BCD󥫅򌉑.ⴂⴕ; [P1 V5 V6]; [P1 V5 V6] # ்.ⴂⴕ
-B; \u0BCD󥫅򌉑.Ⴂⴕ; [P1 V5 V6]; [P1 V5 V6] # ்.Ⴂⴕ
-B; xn--xmc83135idcxza.xn--9md086l; [V5 V6]; [V5 V6] # ்.Ⴂⴕ
-B; xn--xmc83135idcxza.xn--tkjwb; [V5 V6]; [V5 V6] # ்.ⴂⴕ
-B; xn--xmc83135idcxza.xn--9md2b; [V5 V6]; [V5 V6] # ்.ႢႵ
-T; \u1C32🄈⾛\u05A6.\u200D򯥤\u07FD; [B1 C2 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # ᰲ🄈走֦.
-N; \u1C32🄈⾛\u05A6.\u200D򯥤\u07FD; [B1 C2 P1 V5 V6]; [B1 C2 P1 V5 V6] # ᰲ🄈走֦.
-T; \u1C327,走\u05A6.\u200D򯥤\u07FD; [B1 C2 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # ᰲ7,走֦.
-N; \u1C327,走\u05A6.\u200D򯥤\u07FD; [B1 C2 P1 V5 V6]; [B1 C2 P1 V5 V6] # ᰲ7,走֦.
-B; xn--7,-bid991urn3k.xn--1tb13454l; [B1 B5 B6 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # ᰲ7,走֦.
-B; xn--7,-bid991urn3k.xn--1tb334j1197q; [B1 C2 P1 V5 V6]; [B1 C2 P1 V5 V6] # ᰲ7,走֦.
-B; xn--xcb756i493fwi5o.xn--1tb13454l; [B1 B5 B6 V5 V6]; [B1 B5 B6 V5 V6] # ᰲ🄈走֦.
-B; xn--xcb756i493fwi5o.xn--1tb334j1197q; [B1 C2 V5 V6]; [B1 C2 V5 V6] # ᰲ🄈走֦.
-B; ᢗ。Ӏ񝄻; [P1 V6]; [P1 V6]
-B; ᢗ。Ӏ񝄻; [P1 V6]; [P1 V6]
-B; ᢗ。ӏ񝄻; [P1 V6]; [P1 V6]
-B; xn--hbf.xn--s5a83117e; [V6]; [V6]
-B; xn--hbf.xn--d5a86117e; [V6]; [V6]
-B; ᢗ。ӏ񝄻; [P1 V6]; [P1 V6]
-B; \u0668-。񠏇🝆ᄾ; [B1 P1 V3 V6]; [B1 P1 V3 V6] # ٨-.🝆ᄾ
-B; xn----oqc.xn--qrd1699v327w; [B1 V3 V6]; [B1 V3 V6] # ٨-.🝆ᄾ
-B; -𐋷𖾑。󠆬; [V3]; [V3]
-B; xn----991iq40y.; [V3]; [V3]
-T; \u200C𐹳🐴멈.\uABED񐡼; [B1 C1 P1 V5 V6]; [B1 P1 V5 V6] # 𐹳🐴멈.꯭
-N; \u200C𐹳🐴멈.\uABED񐡼; [B1 C1 P1 V5 V6]; [B1 C1 P1 V5 V6] # 𐹳🐴멈.꯭
-T; \u200C𐹳🐴멈.\uABED񐡼; [B1 C1 P1 V5 V6]; [B1 P1 V5 V6] # 𐹳🐴멈.꯭
-N; \u200C𐹳🐴멈.\uABED񐡼; [B1 C1 P1 V5 V6]; [B1 C1 P1 V5 V6] # 𐹳🐴멈.꯭
-B; xn--422b325mqb6i.xn--429a8682s; [B1 V5 V6]; [B1 V5 V6] # 𐹳🐴멈.꯭
-B; xn--0ug6681d406b7bwk.xn--429a8682s; [B1 C1 V5 V6]; [B1 C1 V5 V6] # 𐹳🐴멈.꯭
-B; ≮.\u0769\u0603; [B1 P1 V6]; [B1 P1 V6] # ≮.ݩ
-B; <\u0338.\u0769\u0603; [B1 P1 V6]; [B1 P1 V6] # ≮.ݩ
-B; xn--gdh.xn--lfb92e; [B1 V6]; [B1 V6] # ≮.ݩ
-T; 𐶭⾆。\u200C𑚶򟱃𞰘; [B1 B2 B3 C1 P1 V6]; [B2 B3 B5 B6 P1 V5 V6] # 舌.𑚶
-N; 𐶭⾆。\u200C𑚶򟱃𞰘; [B1 B2 B3 C1 P1 V6]; [B1 B2 B3 C1 P1 V6] # 舌.𑚶
-T; 𐶭舌。\u200C𑚶򟱃𞰘; [B1 B2 B3 C1 P1 V6]; [B2 B3 B5 B6 P1 V5 V6] # 舌.𑚶
-N; 𐶭舌。\u200C𑚶򟱃𞰘; [B1 B2 B3 C1 P1 V6]; [B1 B2 B3 C1 P1 V6] # 舌.𑚶
-B; xn--tc1ao37z.xn--6e2dw557azds2d; [B2 B3 B5 B6 V5 V6]; [B2 B3 B5 B6 V5 V6]
-B; xn--tc1ao37z.xn--0ugx728gi1nfwqz2e; [B1 B2 B3 C1 V6]; [B1 B2 B3 C1 V6] # 舌.𑚶
-T; \u200CჀ-.𝟷ς𞴺ς; [B1 C1 P1 V3 V6]; [B1 B6 P1 V3 V6] # Ⴠ-.1ςς
-N; \u200CჀ-.𝟷ς𞴺ς; [B1 C1 P1 V3 V6]; [B1 C1 P1 V3 V6] # Ⴠ-.1ςς
-T; \u200CჀ-.1ς𞴺ς; [B1 C1 P1 V3 V6]; [B1 B6 P1 V3 V6] # Ⴠ-.1ςς
-N; \u200CჀ-.1ς𞴺ς; [B1 C1 P1 V3 V6]; [B1 C1 P1 V3 V6] # Ⴠ-.1ςς
-T; \u200Cⴠ-.1ς𞴺ς; [B1 C1 P1 V3 V6]; [B1 B6 P1 V3 V6] # ⴠ-.1ςς
-N; \u200Cⴠ-.1ς𞴺ς; [B1 C1 P1 V3 V6]; [B1 C1 P1 V3 V6] # ⴠ-.1ςς
-T; \u200CჀ-.1Σ𞴺Σ; [B1 C1 P1 V3 V6]; [B1 B6 P1 V3 V6] # Ⴠ-.1σσ
-N; \u200CჀ-.1Σ𞴺Σ; [B1 C1 P1 V3 V6]; [B1 C1 P1 V3 V6] # Ⴠ-.1σσ
-T; \u200Cⴠ-.1σ𞴺σ; [B1 C1 P1 V3 V6]; [B1 B6 P1 V3 V6] # ⴠ-.1σσ
-N; \u200Cⴠ-.1σ𞴺σ; [B1 C1 P1 V3 V6]; [B1 C1 P1 V3 V6] # ⴠ-.1σσ
-B; xn----2ws.xn--1-0mba52321c; [B1 B6 V3 V6]; [B1 B6 V3 V6]
-B; xn----rgn530d.xn--1-0mba52321c; [B1 C1 V3 V6]; [B1 C1 V3 V6] # ⴠ-.1σσ
-B; xn----z1g.xn--1-0mba52321c; [B1 B6 V3 V6]; [B1 B6 V3 V6]
-B; xn----z1g168i.xn--1-0mba52321c; [B1 C1 V3 V6]; [B1 C1 V3 V6] # Ⴠ-.1σσ
-B; xn----rgn530d.xn--1-ymba92321c; [B1 C1 V3 V6]; [B1 C1 V3 V6] # ⴠ-.1ςς
-B; xn----z1g168i.xn--1-ymba92321c; [B1 C1 V3 V6]; [B1 C1 V3 V6] # Ⴠ-.1ςς
-T; \u200Cⴠ-.𝟷ς𞴺ς; [B1 C1 P1 V3 V6]; [B1 B6 P1 V3 V6] # ⴠ-.1ςς
-N; \u200Cⴠ-.𝟷ς𞴺ς; [B1 C1 P1 V3 V6]; [B1 C1 P1 V3 V6] # ⴠ-.1ςς
-T; \u200CჀ-.𝟷Σ𞴺Σ; [B1 C1 P1 V3 V6]; [B1 B6 P1 V3 V6] # Ⴠ-.1σσ
-N; \u200CჀ-.𝟷Σ𞴺Σ; [B1 C1 P1 V3 V6]; [B1 C1 P1 V3 V6] # Ⴠ-.1σσ
-T; \u200Cⴠ-.𝟷σ𞴺σ; [B1 C1 P1 V3 V6]; [B1 B6 P1 V3 V6] # ⴠ-.1σσ
-N; \u200Cⴠ-.𝟷σ𞴺σ; [B1 C1 P1 V3 V6]; [B1 C1 P1 V3 V6] # ⴠ-.1σσ
-B; 𑲘󠄒𓑡。𝟪Ⴜ; [P1 V5 V6]; [P1 V5 V6]
-B; 𑲘󠄒𓑡。8Ⴜ; [P1 V5 V6]; [P1 V5 V6]
-B; 𑲘󠄒𓑡。8ⴜ; [P1 V5 V6]; [P1 V5 V6]
-B; xn--7m3d291b.xn--8-vws; [V5 V6]; [V5 V6]
-B; xn--7m3d291b.xn--8-s1g; [V5 V6]; [V5 V6]
-B; 𑲘󠄒𓑡。𝟪ⴜ; [P1 V5 V6]; [P1 V5 V6]
-B; 䪏\u06AB\u07E0\u0941。뭕ᢝ\u17B9; [B5 B6]; [B5 B6] # 䪏ګߠु.뭕ᢝឹ
-B; 䪏\u06AB\u07E0\u0941。뭕ᢝ\u17B9; [B5 B6]; [B5 B6] # 䪏ګߠु.뭕ᢝឹ
-B; 䪏\u06AB\u07E0\u0941。뭕ᢝ\u17B9; [B5 B6]; [B5 B6] # 䪏ګߠु.뭕ᢝឹ
-B; 䪏\u06AB\u07E0\u0941。뭕ᢝ\u17B9; [B5 B6]; [B5 B6] # 䪏ګߠु.뭕ᢝឹ
-B; xn--ekb23dj4at01n.xn--43e96bh910b; [B5 B6]; [B5 B6] # 䪏ګߠु.뭕ᢝឹ
-B; \u1BAB。🂉󠁰; [P1 V5 V6]; [P1 V5 V6] # ᮫.🂉
-B; \u1BAB。🂉󠁰; [P1 V5 V6]; [P1 V5 V6] # ᮫.🂉
-B; xn--zxf.xn--fx7ho0250c; [V5 V6]; [V5 V6] # ᮫.🂉
-T; 󩎃\u0AC4。ς\u200D𐹮𑈵; [B5 C2 P1 V6]; [B5 P1 V6] # ૄ.ς𐹮𑈵
-N; 󩎃\u0AC4。ς\u200D𐹮𑈵; [B5 C2 P1 V6]; [B5 C2 P1 V6] # ૄ.ς𐹮𑈵
-T; 󩎃\u0AC4。Σ\u200D𐹮𑈵; [B5 C2 P1 V6]; [B5 P1 V6] # ૄ.σ𐹮𑈵
-N; 󩎃\u0AC4。Σ\u200D𐹮𑈵; [B5 C2 P1 V6]; [B5 C2 P1 V6] # ૄ.σ𐹮𑈵
-T; 󩎃\u0AC4。σ\u200D𐹮𑈵; [B5 C2 P1 V6]; [B5 P1 V6] # ૄ.σ𐹮𑈵
-N; 󩎃\u0AC4。σ\u200D𐹮𑈵; [B5 C2 P1 V6]; [B5 C2 P1 V6] # ૄ.σ𐹮𑈵
-B; xn--dfc53161q.xn--4xa8467k5mc; [B5 V6]; [B5 V6] # ૄ.σ𐹮𑈵
-B; xn--dfc53161q.xn--4xa895lzo7nsfd; [B5 C2 V6]; [B5 C2 V6] # ૄ.σ𐹮𑈵
-B; xn--dfc53161q.xn--3xa006lzo7nsfd; [B5 C2 V6]; [B5 C2 V6] # ૄ.ς𐹮𑈵
-B; 𐫀ᡂ𑜫.𑘿; [B1 B2 B3 B6 V5]; [B1 B2 B3 B6 V5]
-B; 𐫀ᡂ𑜫.𑘿; [B1 B2 B3 B6 V5]; [B1 B2 B3 B6 V5]
-B; xn--17e9625js1h.xn--sb2d; [B1 B2 B3 B6 V5]; [B1 B2 B3 B6 V5]
-T; 󬚶󸋖򖩰-。\u200C; [C1 P1 V3 V6]; [P1 V3 V6] # -.
-N; 󬚶󸋖򖩰-。\u200C; [C1 P1 V3 V6]; [C1 P1 V3 V6] # -.
-B; xn----7i12hu122k9ire.; [V3 V6]; [V3 V6]
-B; xn----7i12hu122k9ire.xn--0ug; [C1 V3 V6]; [C1 V3 V6] # -.
-B; 𐹣.\u07C2; [B1]; [B1] # 𐹣.߂
-B; 𐹣.\u07C2; [B1]; [B1] # 𐹣.߂
-B; xn--bo0d.xn--dsb; [B1]; [B1] # 𐹣.߂
-B; -\u07E1。Ↄ; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -ߡ.Ↄ
-B; -\u07E1。Ↄ; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -ߡ.Ↄ
-B; -\u07E1。ↄ; [B1 V3]; [B1 V3] # -ߡ.ↄ
-B; xn----8cd.xn--r5g; [B1 V3]; [B1 V3] # -ߡ.ↄ
-B; xn----8cd.xn--q5g; [B1 V3 V6]; [B1 V3 V6] # -ߡ.Ↄ
-B; -\u07E1。ↄ; [B1 V3]; [B1 V3] # -ߡ.ↄ
-T; \u200D-︒󠄄。ß哑\u200C𐵿; [B1 B5 B6 C1 C2 P1 V6]; [B1 B5 B6 P1 V3 V6] # -︒.ß哑
-N; \u200D-︒󠄄。ß哑\u200C𐵿; [B1 B5 B6 C1 C2 P1 V6]; [B1 B5 B6 C1 C2 P1 V6] # -︒.ß哑
-T; \u200D-。󠄄。ß哑\u200C𐵿; [B1 B5 B6 C1 C2 P1 V3 V6 A4_2]; [B1 B5 B6 P1 V3 V6 A4_2] # -..ß哑
-N; \u200D-。󠄄。ß哑\u200C𐵿; [B1 B5 B6 C1 C2 P1 V3 V6 A4_2]; [B1 B5 B6 C1 C2 P1 V3 V6 A4_2] # -..ß哑
-T; \u200D-。󠄄。SS哑\u200C𐵿; [B1 B5 B6 C1 C2 P1 V3 V6 A4_2]; [B1 B5 B6 P1 V3 V6 A4_2] # -..ss哑
-N; \u200D-。󠄄。SS哑\u200C𐵿; [B1 B5 B6 C1 C2 P1 V3 V6 A4_2]; [B1 B5 B6 C1 C2 P1 V3 V6 A4_2] # -..ss哑
-T; \u200D-。󠄄。ss哑\u200C𐵿; [B1 B5 B6 C1 C2 P1 V3 V6 A4_2]; [B1 B5 B6 P1 V3 V6 A4_2] # -..ss哑
-N; \u200D-。󠄄。ss哑\u200C𐵿; [B1 B5 B6 C1 C2 P1 V3 V6 A4_2]; [B1 B5 B6 C1 C2 P1 V3 V6 A4_2] # -..ss哑
-T; \u200D-。󠄄。Ss哑\u200C𐵿; [B1 B5 B6 C1 C2 P1 V3 V6 A4_2]; [B1 B5 B6 P1 V3 V6 A4_2] # -..ss哑
-N; \u200D-。󠄄。Ss哑\u200C𐵿; [B1 B5 B6 C1 C2 P1 V3 V6 A4_2]; [B1 B5 B6 C1 C2 P1 V3 V6 A4_2] # -..ss哑
-B; -..xn--ss-h46c5711e; [B1 B5 B6 V3 V6 A4_2]; [B1 B5 B6 V3 V6 A4_2]
-B; xn----tgn..xn--ss-k1ts75zb8ym; [B1 B5 B6 C1 C2 V3 V6 A4_2]; [B1 B5 B6 C1 C2 V3 V6 A4_2] # -..ss哑
-B; xn----tgn..xn--zca670n5f0binyk; [B1 B5 B6 C1 C2 V3 V6 A4_2]; [B1 B5 B6 C1 C2 V3 V6 A4_2] # -..ß哑
-T; \u200D-︒󠄄。SS哑\u200C𐵿; [B1 B5 B6 C1 C2 P1 V6]; [B1 B5 B6 P1 V3 V6] # -︒.ss哑
-N; \u200D-︒󠄄。SS哑\u200C𐵿; [B1 B5 B6 C1 C2 P1 V6]; [B1 B5 B6 C1 C2 P1 V6] # -︒.ss哑
-T; \u200D-︒󠄄。ss哑\u200C𐵿; [B1 B5 B6 C1 C2 P1 V6]; [B1 B5 B6 P1 V3 V6] # -︒.ss哑
-N; \u200D-︒󠄄。ss哑\u200C𐵿; [B1 B5 B6 C1 C2 P1 V6]; [B1 B5 B6 C1 C2 P1 V6] # -︒.ss哑
-T; \u200D-︒󠄄。Ss哑\u200C𐵿; [B1 B5 B6 C1 C2 P1 V6]; [B1 B5 B6 P1 V3 V6] # -︒.ss哑
-N; \u200D-︒󠄄。Ss哑\u200C𐵿; [B1 B5 B6 C1 C2 P1 V6]; [B1 B5 B6 C1 C2 P1 V6] # -︒.ss哑
-B; xn----o89h.xn--ss-h46c5711e; [B1 B5 B6 V3 V6]; [B1 B5 B6 V3 V6]
-B; xn----tgnt341h.xn--ss-k1ts75zb8ym; [B1 B5 B6 C1 C2 V6]; [B1 B5 B6 C1 C2 V6] # -︒.ss哑
-B; xn----tgnt341h.xn--zca670n5f0binyk; [B1 B5 B6 C1 C2 V6]; [B1 B5 B6 C1 C2 V6] # -︒.ß哑
-B; ︒.\uFE2F𑑂; [P1 V5 V6]; [P1 V5 V6] # ︒.𑑂︯
-B; ︒.𑑂\uFE2F; [P1 V5 V6]; [P1 V5 V6] # ︒.𑑂︯
-B; 。.𑑂\uFE2F; [V5 A4_2]; [V5 A4_2] # ..𑑂︯
-B; ..xn--s96cu30b; [V5 A4_2]; [V5 A4_2] # ..𑑂︯
-B; xn--y86c.xn--s96cu30b; [V5 V6]; [V5 V6] # ︒.𑑂︯
-T; \uA92C。\u200D; [C2 V5]; [V5] # ꤬.
-N; \uA92C。\u200D; [C2 V5]; [C2 V5] # ꤬.
-B; xn--zi9a.; [V5]; [V5] # ꤬.
-B; xn--zi9a.xn--1ug; [C2 V5]; [C2 V5] # ꤬.
-T; \u200D󠸡。\uFCD7; [B1 C2 P1 V6]; [B1 P1 V6] # .هج
-N; \u200D󠸡。\uFCD7; [B1 C2 P1 V6]; [B1 C2 P1 V6] # .هج
-T; \u200D󠸡。\u0647\u062C; [B1 C2 P1 V6]; [B1 P1 V6] # .هج
-N; \u200D󠸡。\u0647\u062C; [B1 C2 P1 V6]; [B1 C2 P1 V6] # .هج
-B; xn--d356e.xn--rgb7c; [B1 V6]; [B1 V6] # .هج
-B; xn--1ug80651l.xn--rgb7c; [B1 C2 V6]; [B1 C2 V6] # .هج
-T; -Ⴄ𝟢\u0663.𑍴ς; [B1 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # -Ⴄ0٣.𑍴ς
-N; -Ⴄ𝟢\u0663.𑍴ς; [B1 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # -Ⴄ0٣.𑍴ς
-T; -Ⴄ0\u0663.𑍴ς; [B1 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # -Ⴄ0٣.𑍴ς
-N; -Ⴄ0\u0663.𑍴ς; [B1 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # -Ⴄ0٣.𑍴ς
-T; -ⴄ0\u0663.𑍴ς; [B1 V3 V5]; [B1 V3 V5] # -ⴄ0٣.𑍴ς
-N; -ⴄ0\u0663.𑍴ς; [B1 V3 V5]; [B1 V3 V5] # -ⴄ0٣.𑍴ς
-B; -Ⴄ0\u0663.𑍴Σ; [B1 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # -Ⴄ0٣.𑍴σ
-B; -ⴄ0\u0663.𑍴σ; [B1 V3 V5]; [B1 V3 V5] # -ⴄ0٣.𑍴σ
-B; xn---0-iyd8660b.xn--4xa9120l; [B1 V3 V5]; [B1 V3 V5] # -ⴄ0٣.𑍴σ
-B; xn---0-iyd216h.xn--4xa9120l; [B1 V3 V5 V6]; [B1 V3 V5 V6] # -Ⴄ0٣.𑍴σ
-B; xn---0-iyd8660b.xn--3xa1220l; [B1 V3 V5]; [B1 V3 V5] # -ⴄ0٣.𑍴ς
-B; xn---0-iyd216h.xn--3xa1220l; [B1 V3 V5 V6]; [B1 V3 V5 V6] # -Ⴄ0٣.𑍴ς
-T; -ⴄ𝟢\u0663.𑍴ς; [B1 V3 V5]; [B1 V3 V5] # -ⴄ0٣.𑍴ς
-N; -ⴄ𝟢\u0663.𑍴ς; [B1 V3 V5]; [B1 V3 V5] # -ⴄ0٣.𑍴ς
-B; -Ⴄ𝟢\u0663.𑍴Σ; [B1 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # -Ⴄ0٣.𑍴σ
-B; -ⴄ𝟢\u0663.𑍴σ; [B1 V3 V5]; [B1 V3 V5] # -ⴄ0٣.𑍴σ
-B; 󦈄。-; [P1 V3 V6]; [P1 V3 V6]
-B; xn--xm38e.-; [V3 V6]; [V3 V6]
-T; ⋠𐋮.򶈮\u0F18ß≯; [P1 V6]; [P1 V6] # ⋠𐋮.༘ß≯
-N; ⋠𐋮.򶈮\u0F18ß≯; [P1 V6]; [P1 V6] # ⋠𐋮.༘ß≯
-T; ≼\u0338𐋮.򶈮\u0F18ß>\u0338; [P1 V6]; [P1 V6] # ⋠𐋮.༘ß≯
-N; ≼\u0338𐋮.򶈮\u0F18ß>\u0338; [P1 V6]; [P1 V6] # ⋠𐋮.༘ß≯
-T; ⋠𐋮.򶈮\u0F18ß≯; [P1 V6]; [P1 V6] # ⋠𐋮.༘ß≯
-N; ⋠𐋮.򶈮\u0F18ß≯; [P1 V6]; [P1 V6] # ⋠𐋮.༘ß≯
-T; ≼\u0338𐋮.򶈮\u0F18ß>\u0338; [P1 V6]; [P1 V6] # ⋠𐋮.༘ß≯
-N; ≼\u0338𐋮.򶈮\u0F18ß>\u0338; [P1 V6]; [P1 V6] # ⋠𐋮.༘ß≯
-B; ≼\u0338𐋮.򶈮\u0F18SS>\u0338; [P1 V6]; [P1 V6] # ⋠𐋮.༘ss≯
-B; ⋠𐋮.򶈮\u0F18SS≯; [P1 V6]; [P1 V6] # ⋠𐋮.༘ss≯
-B; ⋠𐋮.򶈮\u0F18ss≯; [P1 V6]; [P1 V6] # ⋠𐋮.༘ss≯
-B; ≼\u0338𐋮.򶈮\u0F18ss>\u0338; [P1 V6]; [P1 V6] # ⋠𐋮.༘ss≯
-B; ≼\u0338𐋮.򶈮\u0F18Ss>\u0338; [P1 V6]; [P1 V6] # ⋠𐋮.༘ss≯
-B; ⋠𐋮.򶈮\u0F18Ss≯; [P1 V6]; [P1 V6] # ⋠𐋮.༘ss≯
-B; xn--pgh4639f.xn--ss-ifj426nle504a; [V6]; [V6] # ⋠𐋮.༘ss≯
-B; xn--pgh4639f.xn--zca593eo6oc013y; [V6]; [V6] # ⋠𐋮.༘ß≯
-B; ≼\u0338𐋮.򶈮\u0F18SS>\u0338; [P1 V6]; [P1 V6] # ⋠𐋮.༘ss≯
-B; ⋠𐋮.򶈮\u0F18SS≯; [P1 V6]; [P1 V6] # ⋠𐋮.༘ss≯
-B; ⋠𐋮.򶈮\u0F18ss≯; [P1 V6]; [P1 V6] # ⋠𐋮.༘ss≯
-B; ≼\u0338𐋮.򶈮\u0F18ss>\u0338; [P1 V6]; [P1 V6] # ⋠𐋮.༘ss≯
-B; ≼\u0338𐋮.򶈮\u0F18Ss>\u0338; [P1 V6]; [P1 V6] # ⋠𐋮.༘ss≯
-B; ⋠𐋮.򶈮\u0F18Ss≯; [P1 V6]; [P1 V6] # ⋠𐋮.༘ss≯
-B; 1𐋸\u0664。󠢮\uFBA4񷝊; [B1 P1 V6]; [B1 P1 V6] # 1𐋸٤.ۀ
-B; 1𐋸\u0664。󠢮\u06C0񷝊; [B1 P1 V6]; [B1 P1 V6] # 1𐋸٤.ۀ
-B; 1𐋸\u0664。󠢮\u06D5\u0654񷝊; [B1 P1 V6]; [B1 P1 V6] # 1𐋸٤.ۀ
-B; xn--1-hqc3905q.xn--zkb83268gqee4a; [B1 V6]; [B1 V6] # 1𐋸٤.ۀ
-T; 儭-。𐹴Ⴢ񥳠\u200C; [B1 B6 C1 P1 V3 V6]; [B1 B6 P1 V3 V6] # 儭-.𐹴Ⴢ
-N; 儭-。𐹴Ⴢ񥳠\u200C; [B1 B6 C1 P1 V3 V6]; [B1 B6 C1 P1 V3 V6] # 儭-.𐹴Ⴢ
-T; 儭-。𐹴Ⴢ񥳠\u200C; [B1 B6 C1 P1 V3 V6]; [B1 B6 P1 V3 V6] # 儭-.𐹴Ⴢ
-N; 儭-。𐹴Ⴢ񥳠\u200C; [B1 B6 C1 P1 V3 V6]; [B1 B6 C1 P1 V3 V6] # 儭-.𐹴Ⴢ
-T; 儭-。𐹴ⴢ񥳠\u200C; [B1 B6 C1 P1 V3 V6]; [B1 B6 P1 V3 V6] # 儭-.𐹴ⴢ
-N; 儭-。𐹴ⴢ񥳠\u200C; [B1 B6 C1 P1 V3 V6]; [B1 B6 C1 P1 V3 V6] # 儭-.𐹴ⴢ
-B; xn----gz7a.xn--qlj9223eywx0b; [B1 B6 V3 V6]; [B1 B6 V3 V6]
-B; xn----gz7a.xn--0ug472cfq0pus98b; [B1 B6 C1 V3 V6]; [B1 B6 C1 V3 V6] # 儭-.𐹴ⴢ
-B; xn----gz7a.xn--6nd5001kyw98a; [B1 B6 V3 V6]; [B1 B6 V3 V6]
-B; xn----gz7a.xn--6nd249ejl4pusr7b; [B1 B6 C1 V3 V6]; [B1 B6 C1 V3 V6] # 儭-.𐹴Ⴢ
-T; 儭-。𐹴ⴢ񥳠\u200C; [B1 B6 C1 P1 V3 V6]; [B1 B6 P1 V3 V6] # 儭-.𐹴ⴢ
-N; 儭-。𐹴ⴢ񥳠\u200C; [B1 B6 C1 P1 V3 V6]; [B1 B6 C1 P1 V3 V6] # 儭-.𐹴ⴢ
-B; 𝟺𐋷\u06B9.𞤭򿍡; [B1 B2 B3 P1 V6]; [B1 B2 B3 P1 V6] # 4𐋷ڹ.𞤭
-B; 4𐋷\u06B9.𞤭򿍡; [B1 B2 B3 P1 V6]; [B1 B2 B3 P1 V6] # 4𐋷ڹ.𞤭
-B; 4𐋷\u06B9.𞤋򿍡; [B1 B2 B3 P1 V6]; [B1 B2 B3 P1 V6] # 4𐋷ڹ.𞤭
-B; xn--4-cvc5384q.xn--le6hi7322b; [B1 B2 B3 V6]; [B1 B2 B3 V6] # 4𐋷ڹ.𞤭
-B; 𝟺𐋷\u06B9.𞤋򿍡; [B1 B2 B3 P1 V6]; [B1 B2 B3 P1 V6] # 4𐋷ڹ.𞤭
-B; ≯-ꡋ𑲣.⒈𐹭; [B1 P1 V6]; [B1 P1 V6]
-B; >\u0338-ꡋ𑲣.⒈𐹭; [B1 P1 V6]; [B1 P1 V6]
-B; ≯-ꡋ𑲣.1.𐹭; [B1 P1 V6]; [B1 P1 V6]
-B; >\u0338-ꡋ𑲣.1.𐹭; [B1 P1 V6]; [B1 P1 V6]
-B; xn----ogox061d5i8d.1.xn--lo0d; [B1 V6]; [B1 V6]
-B; xn----ogox061d5i8d.xn--tsh0666f; [B1 V6]; [B1 V6]
-B; \u0330.󰜱蚀; [P1 V5 V6]; [P1 V5 V6] # ̰.蚀
-B; \u0330.󰜱蚀; [P1 V5 V6]; [P1 V5 V6] # ̰.蚀
-B; xn--xta.xn--e91aw9417e; [V5 V6]; [V5 V6] # ̰.蚀
-T; \uFB39Ⴘ.𞡼𑇀ß\u20D7; [B2 B3 P1 V6]; [B2 B3 P1 V6] # יּႸ.𞡼𑇀ß⃗
-N; \uFB39Ⴘ.𞡼𑇀ß\u20D7; [B2 B3 P1 V6]; [B2 B3 P1 V6] # יּႸ.𞡼𑇀ß⃗
-T; \u05D9\u05BCႸ.𞡼𑇀ß\u20D7; [B2 B3 P1 V6]; [B2 B3 P1 V6] # יּႸ.𞡼𑇀ß⃗
-N; \u05D9\u05BCႸ.𞡼𑇀ß\u20D7; [B2 B3 P1 V6]; [B2 B3 P1 V6] # יּႸ.𞡼𑇀ß⃗
-T; \u05D9\u05BCⴘ.𞡼𑇀ß\u20D7; [B2 B3]; [B2 B3] # יּⴘ.𞡼𑇀ß⃗
-N; \u05D9\u05BCⴘ.𞡼𑇀ß\u20D7; [B2 B3]; [B2 B3] # יּⴘ.𞡼𑇀ß⃗
-B; \u05D9\u05BCႸ.𞡼𑇀SS\u20D7; [B2 B3 P1 V6]; [B2 B3 P1 V6] # יּႸ.𞡼𑇀ss⃗
-B; \u05D9\u05BCⴘ.𞡼𑇀ss\u20D7; [B2 B3]; [B2 B3] # יּⴘ.𞡼𑇀ss⃗
-B; \u05D9\u05BCႸ.𞡼𑇀ss\u20D7; [B2 B3 P1 V6]; [B2 B3 P1 V6] # יּႸ.𞡼𑇀ss⃗
-B; xn--kdb1d867b.xn--ss-yju5690ken9h; [B2 B3 V6]; [B2 B3 V6] # יּႸ.𞡼𑇀ss⃗
-B; xn--kdb1d278n.xn--ss-yju5690ken9h; [B2 B3]; [B2 B3] # יּⴘ.𞡼𑇀ss⃗
-B; xn--kdb1d278n.xn--zca284nhg9nrrxg; [B2 B3]; [B2 B3] # יּⴘ.𞡼𑇀ß⃗
-B; xn--kdb1d867b.xn--zca284nhg9nrrxg; [B2 B3 V6]; [B2 B3 V6] # יּႸ.𞡼𑇀ß⃗
-T; \uFB39ⴘ.𞡼𑇀ß\u20D7; [B2 B3]; [B2 B3] # יּⴘ.𞡼𑇀ß⃗
-N; \uFB39ⴘ.𞡼𑇀ß\u20D7; [B2 B3]; [B2 B3] # יּⴘ.𞡼𑇀ß⃗
-B; \uFB39Ⴘ.𞡼𑇀SS\u20D7; [B2 B3 P1 V6]; [B2 B3 P1 V6] # יּႸ.𞡼𑇀ss⃗
-B; \uFB39ⴘ.𞡼𑇀ss\u20D7; [B2 B3]; [B2 B3] # יּⴘ.𞡼𑇀ss⃗
-B; \uFB39Ⴘ.𞡼𑇀ss\u20D7; [B2 B3 P1 V6]; [B2 B3 P1 V6] # יּႸ.𞡼𑇀ss⃗
-B; \u1BA3𐹰򁱓。凬; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ᮣ𐹰.凬
-B; \u1BA3𐹰򁱓。凬; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ᮣ𐹰.凬
-B; xn--rxfz314ilg20c.xn--t9q; [B1 V5 V6]; [B1 V5 V6] # ᮣ𐹰.凬
-T; 🢟🄈\u200Dꡎ。\u0F84; [C2 P1 V5 V6]; [P1 V5 V6] # 🢟🄈ꡎ.྄
-N; 🢟🄈\u200Dꡎ。\u0F84; [C2 P1 V5 V6]; [C2 P1 V5 V6] # 🢟🄈ꡎ.྄
-T; 🢟7,\u200Dꡎ。\u0F84; [C2 P1 V5 V6]; [P1 V5 V6] # 🢟7,ꡎ.྄
-N; 🢟7,\u200Dꡎ。\u0F84; [C2 P1 V5 V6]; [C2 P1 V5 V6] # 🢟7,ꡎ.྄
-B; xn--7,-gh9hg322i.xn--3ed; [P1 V5 V6]; [P1 V5 V6] # 🢟7,ꡎ.྄
-B; xn--7,-n1t0654eqo3o.xn--3ed; [C2 P1 V5 V6]; [C2 P1 V5 V6] # 🢟7,ꡎ.྄
-B; xn--nc9aq743ds0e.xn--3ed; [V5 V6]; [V5 V6] # 🢟🄈ꡎ.྄
-B; xn--1ug4874cfd0kbmg.xn--3ed; [C2 V5 V6]; [C2 V5 V6] # 🢟🄈ꡎ.྄
-B; ꡔ。\u1039ᢇ; [V5]; [V5] # ꡔ.္ᢇ
-B; xn--tc9a.xn--9jd663b; [V5]; [V5] # ꡔ.္ᢇ
-B; \u20EB≮.𝨖; [P1 V5 V6]; [P1 V5 V6] # ⃫≮.𝨖
-B; \u20EB<\u0338.𝨖; [P1 V5 V6]; [P1 V5 V6] # ⃫≮.𝨖
-B; xn--e1g71d.xn--772h; [V5 V6]; [V5 V6] # ⃫≮.𝨖
-B; Ⴢ≯褦.ᠪ\u07EAႾ\u0767; [B5 B6 P1 V6]; [B5 B6 P1 V6] # Ⴢ≯褦.ᠪߪႾݧ
-B; Ⴢ>\u0338褦.ᠪ\u07EAႾ\u0767; [B5 B6 P1 V6]; [B5 B6 P1 V6] # Ⴢ≯褦.ᠪߪႾݧ
-B; Ⴢ≯褦.ᠪ\u07EAႾ\u0767; [B5 B6 P1 V6]; [B5 B6 P1 V6] # Ⴢ≯褦.ᠪߪႾݧ
-B; Ⴢ>\u0338褦.ᠪ\u07EAႾ\u0767; [B5 B6 P1 V6]; [B5 B6 P1 V6] # Ⴢ≯褦.ᠪߪႾݧ
-B; ⴢ>\u0338褦.ᠪ\u07EAⴞ\u0767; [B5 B6 P1 V6]; [B5 B6 P1 V6] # ⴢ≯褦.ᠪߪⴞݧ
-B; ⴢ≯褦.ᠪ\u07EAⴞ\u0767; [B5 B6 P1 V6]; [B5 B6 P1 V6] # ⴢ≯褦.ᠪߪⴞݧ
-B; xn--hdh433bev8e.xn--rpb5x392bcyt; [B5 B6 V6]; [B5 B6 V6] # ⴢ≯褦.ᠪߪⴞݧ
-B; xn--6nd461g478e.xn--rpb5x49td2h; [B5 B6 V6]; [B5 B6 V6] # Ⴢ≯褦.ᠪߪႾݧ
-B; ⴢ>\u0338褦.ᠪ\u07EAⴞ\u0767; [B5 B6 P1 V6]; [B5 B6 P1 V6] # ⴢ≯褦.ᠪߪⴞݧ
-B; ⴢ≯褦.ᠪ\u07EAⴞ\u0767; [B5 B6 P1 V6]; [B5 B6 P1 V6] # ⴢ≯褦.ᠪߪⴞݧ
-T; 򊉆󠆒\u200C\uA953。𞤙\u067Bꡘ; [B2 B3 C1 P1 V6]; [B2 B3 P1 V6] # ꥓.𞤻ٻꡘ
-N; 򊉆󠆒\u200C\uA953。𞤙\u067Bꡘ; [B2 B3 C1 P1 V6]; [B2 B3 C1 P1 V6] # ꥓.𞤻ٻꡘ
-T; 򊉆󠆒\u200C\uA953。𞤻\u067Bꡘ; [B2 B3 C1 P1 V6]; [B2 B3 P1 V6] # ꥓.𞤻ٻꡘ
-N; 򊉆󠆒\u200C\uA953。𞤻\u067Bꡘ; [B2 B3 C1 P1 V6]; [B2 B3 C1 P1 V6] # ꥓.𞤻ٻꡘ
-B; xn--3j9al6189a.xn--0ib8893fegvj; [B2 B3 V6]; [B2 B3 V6] # ꥓.𞤻ٻꡘ
-B; xn--0ug8815chtz0e.xn--0ib8893fegvj; [B2 B3 C1 V6]; [B2 B3 C1 V6] # ꥓.𞤻ٻꡘ
-T; \u200C.≯; [C1 P1 V6]; [P1 V6 A4_2] # .≯
-N; \u200C.≯; [C1 P1 V6]; [C1 P1 V6] # .≯
-T; \u200C.>\u0338; [C1 P1 V6]; [P1 V6 A4_2] # .≯
-N; \u200C.>\u0338; [C1 P1 V6]; [C1 P1 V6] # .≯
-B; .xn--hdh; [V6 A4_2]; [V6 A4_2]
-B; xn--0ug.xn--hdh; [C1 V6]; [C1 V6] # .≯
-B; 𰅧񣩠-.\uABED-悜; [P1 V3 V5 V6]; [P1 V3 V5 V6] # -.꯭-悜
-B; 𰅧񣩠-.\uABED-悜; [P1 V3 V5 V6]; [P1 V3 V5 V6] # -.꯭-悜
-B; xn----7m53aj640l.xn----8f4br83t; [V3 V5 V6]; [V3 V5 V6] # -.꯭-悜
-T; ᡉ𶓧⬞ᢜ.-\u200D𞣑\u202E; [C2 P1 V3 V6]; [P1 V3 V6] # ᡉ⬞ᢜ.-𞣑
-N; ᡉ𶓧⬞ᢜ.-\u200D𞣑\u202E; [C2 P1 V3 V6]; [C2 P1 V3 V6] # ᡉ⬞ᢜ.-𞣑
-B; xn--87e0ol04cdl39e.xn----qinu247r; [V3 V6]; [V3 V6] # ᡉ⬞ᢜ.-𞣑
-B; xn--87e0ol04cdl39e.xn----ugn5e3763s; [C2 V3 V6]; [C2 V3 V6] # ᡉ⬞ᢜ.-𞣑
-T; ⒐\u200C衃Ⴝ.\u0682Ⴔ; [B1 B2 B3 C1 P1 V6]; [B1 B2 B3 P1 V6] # ⒐衃Ⴝ.ڂႴ
-N; ⒐\u200C衃Ⴝ.\u0682Ⴔ; [B1 B2 B3 C1 P1 V6]; [B1 B2 B3 C1 P1 V6] # ⒐衃Ⴝ.ڂႴ
-T; 9.\u200C衃Ⴝ.\u0682Ⴔ; [B1 B2 B3 C1 P1 V6]; [B1 B2 B3 P1 V6] # 9.衃Ⴝ.ڂႴ
-N; 9.\u200C衃Ⴝ.\u0682Ⴔ; [B1 B2 B3 C1 P1 V6]; [B1 B2 B3 C1 P1 V6] # 9.衃Ⴝ.ڂႴ
-T; 9.\u200C衃ⴝ.\u0682ⴔ; [B1 B2 B3 C1]; [B1 B2 B3] # 9.衃ⴝ.ڂⴔ
-N; 9.\u200C衃ⴝ.\u0682ⴔ; [B1 B2 B3 C1]; [B1 B2 B3 C1] # 9.衃ⴝ.ڂⴔ
-T; 9.\u200C衃Ⴝ.\u0682ⴔ; [B1 B2 B3 C1 P1 V6]; [B1 B2 B3 P1 V6] # 9.衃Ⴝ.ڂⴔ
-N; 9.\u200C衃Ⴝ.\u0682ⴔ; [B1 B2 B3 C1 P1 V6]; [B1 B2 B3 C1 P1 V6] # 9.衃Ⴝ.ڂⴔ
-B; 9.xn--1nd9032d.xn--7ib268q; [B1 B2 B3 V6]; [B1 B2 B3 V6] # 9.衃Ⴝ.ڂⴔ
-B; 9.xn--1nd159e1y2f.xn--7ib268q; [B1 B2 B3 C1 V6]; [B1 B2 B3 C1 V6] # 9.衃Ⴝ.ڂⴔ
-B; 9.xn--llj1920a.xn--7ib268q; [B1 B2 B3]; [B1 B2 B3] # 9.衃ⴝ.ڂⴔ
-B; 9.xn--0ug862cbm5e.xn--7ib268q; [B1 B2 B3 C1]; [B1 B2 B3 C1] # 9.衃ⴝ.ڂⴔ
-B; 9.xn--1nd9032d.xn--7ib433c; [B1 B2 B3 V6]; [B1 B2 B3 V6] # 9.衃Ⴝ.ڂႴ
-B; 9.xn--1nd159e1y2f.xn--7ib433c; [B1 B2 B3 C1 V6]; [B1 B2 B3 C1 V6] # 9.衃Ⴝ.ڂႴ
-T; ⒐\u200C衃ⴝ.\u0682ⴔ; [B1 B2 B3 C1 P1 V6]; [B1 B2 B3 P1 V6] # ⒐衃ⴝ.ڂⴔ
-N; ⒐\u200C衃ⴝ.\u0682ⴔ; [B1 B2 B3 C1 P1 V6]; [B1 B2 B3 C1 P1 V6] # ⒐衃ⴝ.ڂⴔ
-T; ⒐\u200C衃Ⴝ.\u0682ⴔ; [B1 B2 B3 C1 P1 V6]; [B1 B2 B3 P1 V6] # ⒐衃Ⴝ.ڂⴔ
-N; ⒐\u200C衃Ⴝ.\u0682ⴔ; [B1 B2 B3 C1 P1 V6]; [B1 B2 B3 C1 P1 V6] # ⒐衃Ⴝ.ڂⴔ
-B; xn--1nd362hy16e.xn--7ib268q; [B1 B2 B3 V6]; [B1 B2 B3 V6] # ⒐衃Ⴝ.ڂⴔ
-B; xn--1nd159ecmd785k.xn--7ib268q; [B1 B2 B3 C1 V6]; [B1 B2 B3 C1 V6] # ⒐衃Ⴝ.ڂⴔ
-B; xn--1shy52abz3f.xn--7ib268q; [B1 B2 B3 V6]; [B1 B2 B3 V6] # ⒐衃ⴝ.ڂⴔ
-B; xn--0ugx0px1izu2h.xn--7ib268q; [B1 B2 B3 C1 V6]; [B1 B2 B3 C1 V6] # ⒐衃ⴝ.ڂⴔ
-B; xn--1nd362hy16e.xn--7ib433c; [B1 B2 B3 V6]; [B1 B2 B3 V6] # ⒐衃Ⴝ.ڂႴ
-B; xn--1nd159ecmd785k.xn--7ib433c; [B1 B2 B3 C1 V6]; [B1 B2 B3 C1 V6] # ⒐衃Ⴝ.ڂႴ
-T; \u07E1\u200C。--⸬; [B1 B3 C1 V3]; [B1 V3] # ߡ.--⸬
-N; \u07E1\u200C。--⸬; [B1 B3 C1 V3]; [B1 B3 C1 V3] # ߡ.--⸬
-B; xn--8sb.xn-----iw2a; [B1 V3]; [B1 V3] # ߡ.--⸬
-B; xn--8sb884j.xn-----iw2a; [B1 B3 C1 V3]; [B1 B3 C1 V3] # ߡ.--⸬
-B; 𞥓.\u0718; 𞥓.\u0718; xn--of6h.xn--inb # 𞥓.ܘ
-B; 𞥓.\u0718; ; xn--of6h.xn--inb # 𞥓.ܘ
-B; xn--of6h.xn--inb; 𞥓.\u0718; xn--of6h.xn--inb # 𞥓.ܘ
-B; 󠄽-.-\u0DCA; [V3]; [V3] # -.-්
-B; 󠄽-.-\u0DCA; [V3]; [V3] # -.-්
-B; -.xn----ptf; [V3]; [V3] # -.-්
-B; 󠇝\u075B-.\u1927; [B1 B3 B6 V3 V5]; [B1 B3 B6 V3 V5] # ݛ-.ᤧ
-B; xn----k4c.xn--lff; [B1 B3 B6 V3 V5]; [B1 B3 B6 V3 V5] # ݛ-.ᤧ
-B; 𞤴󠆹⦉𐹺.\uA806⒌󘤸; [B1 P1 V5 V6]; [B1 P1 V5 V6] # 𞤴⦉𐹺.꠆⒌
-B; 𞤴󠆹⦉𐹺.\uA8065.󘤸; [B1 P1 V5 V6]; [B1 P1 V5 V6] # 𞤴⦉𐹺.꠆5.
-B; 𞤒󠆹⦉𐹺.\uA8065.󘤸; [B1 P1 V5 V6]; [B1 P1 V5 V6] # 𞤴⦉𐹺.꠆5.
-B; xn--fuix729epewf.xn--5-w93e.xn--7b83e; [B1 V5 V6]; [B1 V5 V6] # 𞤴⦉𐹺.꠆5.
-B; 𞤒󠆹⦉𐹺.\uA806⒌󘤸; [B1 P1 V5 V6]; [B1 P1 V5 V6] # 𞤴⦉𐹺.꠆⒌
-B; xn--fuix729epewf.xn--xsh5029b6e77i; [B1 V5 V6]; [B1 V5 V6] # 𞤴⦉𐹺.꠆⒌
-T; 󠄸₀。𑖿\u200C𐦂\u200D; [B1 C2 V5]; [B1 V5] # 0.𑖿𐦂
-N; 󠄸₀。𑖿\u200C𐦂\u200D; [B1 C2 V5]; [B1 C2 V5] # 0.𑖿𐦂
-T; 󠄸0。𑖿\u200C𐦂\u200D; [B1 C2 V5]; [B1 V5] # 0.𑖿𐦂
-N; 󠄸0。𑖿\u200C𐦂\u200D; [B1 C2 V5]; [B1 C2 V5] # 0.𑖿𐦂
-B; 0.xn--mn9cz2s; [B1 V5]; [B1 V5]
-B; 0.xn--0ugc8040p9hk; [B1 C2 V5]; [B1 C2 V5] # 0.𑖿𐦂
-B; Ⴚ𐋸󠄄。𝟝ퟶ\u103A; [P1 V6]; [P1 V6] # Ⴚ𐋸.5ퟶ်
-B; Ⴚ𐋸󠄄。5ퟶ\u103A; [P1 V6]; [P1 V6] # Ⴚ𐋸.5ퟶ်
-B; ⴚ𐋸󠄄。5ퟶ\u103A; ⴚ𐋸.5ퟶ\u103A; xn--ilj2659d.xn--5-dug9054m; NV8 # ⴚ𐋸.5ퟶ်
-B; xn--ilj2659d.xn--5-dug9054m; ⴚ𐋸.5ퟶ\u103A; xn--ilj2659d.xn--5-dug9054m; NV8 # ⴚ𐋸.5ퟶ်
-B; ⴚ𐋸.5ퟶ\u103A; ; xn--ilj2659d.xn--5-dug9054m; NV8 # ⴚ𐋸.5ퟶ်
-B; Ⴚ𐋸.5ퟶ\u103A; [P1 V6]; [P1 V6] # Ⴚ𐋸.5ퟶ်
-B; xn--ynd2415j.xn--5-dug9054m; [V6]; [V6] # Ⴚ𐋸.5ퟶ်
-B; ⴚ𐋸󠄄。𝟝ퟶ\u103A; ⴚ𐋸.5ퟶ\u103A; xn--ilj2659d.xn--5-dug9054m; NV8 # ⴚ𐋸.5ퟶ်
-T; \u200D-ᠹ﹪.\u1DE1\u1922; [C2 P1 V5 V6]; [P1 V3 V5 V6] # -ᠹ﹪.ᷡᤢ
-N; \u200D-ᠹ﹪.\u1DE1\u1922; [C2 P1 V5 V6]; [C2 P1 V5 V6] # -ᠹ﹪.ᷡᤢ
-T; \u200D-ᠹ%.\u1DE1\u1922; [C2 P1 V5 V6]; [P1 V3 V5 V6] # -ᠹ%.ᷡᤢ
-N; \u200D-ᠹ%.\u1DE1\u1922; [C2 P1 V5 V6]; [C2 P1 V5 V6] # -ᠹ%.ᷡᤢ
-B; xn---%-u4o.xn--gff52t; [P1 V3 V5 V6]; [P1 V3 V5 V6] # -ᠹ%.ᷡᤢ
-B; xn---%-u4oy48b.xn--gff52t; [C2 P1 V5 V6]; [C2 P1 V5 V6] # -ᠹ%.ᷡᤢ
-B; xn----c6jx047j.xn--gff52t; [V3 V5 V6]; [V3 V5 V6] # -ᠹ﹪.ᷡᤢ
-B; xn----c6j614b1z4v.xn--gff52t; [C2 V5 V6]; [C2 V5 V6] # -ᠹ﹪.ᷡᤢ
-B; ≠.ᠿ; [P1 V6]; [P1 V6]
-B; =\u0338.ᠿ; [P1 V6]; [P1 V6]
-B; xn--1ch.xn--y7e; [V6]; [V6]
-B; \u0723\u05A3。㌪; \u0723\u05A3.ハイツ; xn--ucb18e.xn--eck4c5a # ܣ֣.ハイツ
-B; \u0723\u05A3。ハイツ; \u0723\u05A3.ハイツ; xn--ucb18e.xn--eck4c5a # ܣ֣.ハイツ
-B; xn--ucb18e.xn--eck4c5a; \u0723\u05A3.ハイツ; xn--ucb18e.xn--eck4c5a # ܣ֣.ハイツ
-B; \u0723\u05A3.ハイツ; ; xn--ucb18e.xn--eck4c5a # ܣ֣.ハイツ
-B; 𞷥󠆀≮.\u2D7F-; [B1 B3 P1 V3 V5 V6]; [B1 B3 P1 V3 V5 V6] # ≮.⵿-
-B; 𞷥󠆀<\u0338.\u2D7F-; [B1 B3 P1 V3 V5 V6]; [B1 B3 P1 V3 V5 V6] # ≮.⵿-
-B; xn--gdhx802p.xn----i2s; [B1 B3 V3 V5 V6]; [B1 B3 V3 V5 V6] # ≮.⵿-
-B; ₆榎򦖎\u0D4D。𞤅\u06ED\uFC5A󠮨; [B1 B3 P1 V6]; [B1 B3 P1 V6] # 6榎്.𞤧ۭيي
-B; 6榎򦖎\u0D4D。𞤅\u06ED\u064A\u064A󠮨; [B1 B3 P1 V6]; [B1 B3 P1 V6] # 6榎്.𞤧ۭيي
-B; 6榎򦖎\u0D4D。𞤧\u06ED\u064A\u064A󠮨; [B1 B3 P1 V6]; [B1 B3 P1 V6] # 6榎്.𞤧ۭيي
-B; xn--6-kmf4691ejv41j.xn--mhba10ch545mn8v8h; [B1 B3 V6]; [B1 B3 V6] # 6榎്.𞤧ۭيي
-B; ₆榎򦖎\u0D4D。𞤧\u06ED\uFC5A󠮨; [B1 B3 P1 V6]; [B1 B3 P1 V6] # 6榎്.𞤧ۭيي
-B; 𣩫.򌑲; [P1 V6]; [P1 V6]
-B; 𣩫.򌑲; [P1 V6]; [P1 V6]
-B; xn--td3j.xn--4628b; [V6]; [V6]
-T; \u200D︒。\u06B9\u200C; [B1 B3 C1 C2 P1 V6]; [B1 P1 V6] # ︒.ڹ
-N; \u200D︒。\u06B9\u200C; [B1 B3 C1 C2 P1 V6]; [B1 B3 C1 C2 P1 V6] # ︒.ڹ
-B; xn--y86c.xn--skb; [B1 V6]; [B1 V6] # ︒.ڹ
-B; xn--1ug2658f.xn--skb080k; [B1 B3 C1 C2 V6]; [B1 B3 C1 C2 V6] # ︒.ڹ
-B; xn--skb; \u06B9; xn--skb # ڹ
-B; \u06B9; ; xn--skb # ڹ
-T; 𐹦\u200C𐹶。\u206D; [B1 C1 P1 V6]; [B1 P1 V6] # 𐹦𐹶.
-N; 𐹦\u200C𐹶。\u206D; [B1 C1 P1 V6]; [B1 C1 P1 V6] # 𐹦𐹶.
-B; xn--eo0d6a.xn--sxg; [B1 V6]; [B1 V6] # 𐹦𐹶.
-B; xn--0ug4994goba.xn--sxg; [B1 C1 V6]; [B1 C1 V6] # 𐹦𐹶.
-B; \u0C4D𝨾\u05A9𝟭。-𑜨; [V3 V5]; [V3 V5] # ్𝨾֩1.-𑜨
-B; \u0C4D𝨾\u05A91。-𑜨; [V3 V5]; [V3 V5] # ్𝨾֩1.-𑜨
-B; xn--1-rfc312cdp45c.xn----nq0j; [V3 V5]; [V3 V5] # ్𝨾֩1.-𑜨
-B; 򣿈。뙏; [P1 V6]; [P1 V6]
-B; 򣿈。뙏; [P1 V6]; [P1 V6]
-B; xn--ph26c.xn--281b; [V6]; [V6]
-B; 񕨚󠄌󑽀ᡀ.\u08B6; [P1 V6]; [P1 V6] # ᡀ.ࢶ
-B; xn--z7e98100evc01b.xn--czb; [V6]; [V6] # ᡀ.ࢶ
-T; \u200D。񅁛; [C2 P1 V6]; [P1 V6 A4_2] # .
-N; \u200D。񅁛; [C2 P1 V6]; [C2 P1 V6] # .
-T; \u200D。񅁛; [C2 P1 V6]; [P1 V6 A4_2] # .
-N; \u200D。񅁛; [C2 P1 V6]; [C2 P1 V6] # .
-B; .xn--6x4u; [V6 A4_2]; [V6 A4_2]
-B; xn--1ug.xn--6x4u; [C2 V6]; [C2 V6] # .
-B; \u084B皥.-; [B1 B2 B3 V3]; [B1 B2 B3 V3] # ࡋ皥.-
-B; \u084B皥.-; [B1 B2 B3 V3]; [B1 B2 B3 V3] # ࡋ皥.-
-B; xn--9vb4167c.-; [B1 B2 B3 V3]; [B1 B2 B3 V3] # ࡋ皥.-
-B; 𐣸\u0315𐮇.⒈ꡦ; [B1 P1 V6]; [B1 P1 V6] # ̕𐮇.⒈ꡦ
-B; 𐣸\u0315𐮇.1.ꡦ; [B1 P1 V6]; [B1 P1 V6] # ̕𐮇.1.ꡦ
-B; xn--5sa9915kgvb.1.xn--cd9a; [B1 V6]; [B1 V6] # ̕𐮇.1.ꡦ
-B; xn--5sa9915kgvb.xn--tshw539b; [B1 V6]; [B1 V6] # ̕𐮇.⒈ꡦ
-T; Ⴛ\u200C\u05A2\u200D。\uFFA0ā𐹦; [B5 B6 C1 C2 P1 V6]; [B5 B6 P1 V6] # Ⴛ֢.ā𐹦
-N; Ⴛ\u200C\u05A2\u200D。\uFFA0ā𐹦; [B5 B6 C1 C2 P1 V6]; [B5 B6 C1 C2 P1 V6] # Ⴛ֢.ā𐹦
-T; Ⴛ\u200C\u05A2\u200D。\uFFA0a\u0304𐹦; [B5 B6 C1 C2 P1 V6]; [B5 B6 P1 V6] # Ⴛ֢.ā𐹦
-N; Ⴛ\u200C\u05A2\u200D。\uFFA0a\u0304𐹦; [B5 B6 C1 C2 P1 V6]; [B5 B6 C1 C2 P1 V6] # Ⴛ֢.ā𐹦
-T; Ⴛ\u200C\u05A2\u200D。\u1160ā𐹦; [B5 B6 C1 C2 P1 V6]; [B5 B6 P1 V6] # Ⴛ֢.ā𐹦
-N; Ⴛ\u200C\u05A2\u200D。\u1160ā𐹦; [B5 B6 C1 C2 P1 V6]; [B5 B6 C1 C2 P1 V6] # Ⴛ֢.ā𐹦
-T; Ⴛ\u200C\u05A2\u200D。\u1160a\u0304𐹦; [B5 B6 C1 C2 P1 V6]; [B5 B6 P1 V6] # Ⴛ֢.ā𐹦
-N; Ⴛ\u200C\u05A2\u200D。\u1160a\u0304𐹦; [B5 B6 C1 C2 P1 V6]; [B5 B6 C1 C2 P1 V6] # Ⴛ֢.ā𐹦
-T; ⴛ\u200C\u05A2\u200D。\u1160a\u0304𐹦; [B5 B6 C1 C2 P1 V6]; [B5 B6 P1 V6] # ⴛ֢.ā𐹦
-N; ⴛ\u200C\u05A2\u200D。\u1160a\u0304𐹦; [B5 B6 C1 C2 P1 V6]; [B5 B6 C1 C2 P1 V6] # ⴛ֢.ā𐹦
-T; ⴛ\u200C\u05A2\u200D。\u1160ā𐹦; [B5 B6 C1 C2 P1 V6]; [B5 B6 P1 V6] # ⴛ֢.ā𐹦
-N; ⴛ\u200C\u05A2\u200D。\u1160ā𐹦; [B5 B6 C1 C2 P1 V6]; [B5 B6 C1 C2 P1 V6] # ⴛ֢.ā𐹦
-T; Ⴛ\u200C\u05A2\u200D。\u1160Ā𐹦; [B5 B6 C1 C2 P1 V6]; [B5 B6 P1 V6] # Ⴛ֢.ā𐹦
-N; Ⴛ\u200C\u05A2\u200D。\u1160Ā𐹦; [B5 B6 C1 C2 P1 V6]; [B5 B6 C1 C2 P1 V6] # Ⴛ֢.ā𐹦
-T; Ⴛ\u200C\u05A2\u200D。\u1160A\u0304𐹦; [B5 B6 C1 C2 P1 V6]; [B5 B6 P1 V6] # Ⴛ֢.ā𐹦
-N; Ⴛ\u200C\u05A2\u200D。\u1160A\u0304𐹦; [B5 B6 C1 C2 P1 V6]; [B5 B6 C1 C2 P1 V6] # Ⴛ֢.ā𐹦
-B; xn--tcb597c.xn--yda594fdn5q; [B5 B6 V6]; [B5 B6 V6] # Ⴛ֢.ā𐹦
-B; xn--tcb597cdmmfa.xn--yda594fdn5q; [B5 B6 C1 C2 V6]; [B5 B6 C1 C2 V6] # Ⴛ֢.ā𐹦
-B; xn--tcb323r.xn--yda594fdn5q; [B5 B6 V6]; [B5 B6 V6] # ⴛ֢.ā𐹦
-B; xn--tcb736kea974k.xn--yda594fdn5q; [B5 B6 C1 C2 V6]; [B5 B6 C1 C2 V6] # ⴛ֢.ā𐹦
-T; ⴛ\u200C\u05A2\u200D。\uFFA0a\u0304𐹦; [B5 B6 C1 C2 P1 V6]; [B5 B6 P1 V6] # ⴛ֢.ā𐹦
-N; ⴛ\u200C\u05A2\u200D。\uFFA0a\u0304𐹦; [B5 B6 C1 C2 P1 V6]; [B5 B6 C1 C2 P1 V6] # ⴛ֢.ā𐹦
-T; ⴛ\u200C\u05A2\u200D。\uFFA0ā𐹦; [B5 B6 C1 C2 P1 V6]; [B5 B6 P1 V6] # ⴛ֢.ā𐹦
-N; ⴛ\u200C\u05A2\u200D。\uFFA0ā𐹦; [B5 B6 C1 C2 P1 V6]; [B5 B6 C1 C2 P1 V6] # ⴛ֢.ā𐹦
-T; Ⴛ\u200C\u05A2\u200D。\uFFA0Ā𐹦; [B5 B6 C1 C2 P1 V6]; [B5 B6 P1 V6] # Ⴛ֢.ā𐹦
-N; Ⴛ\u200C\u05A2\u200D。\uFFA0Ā𐹦; [B5 B6 C1 C2 P1 V6]; [B5 B6 C1 C2 P1 V6] # Ⴛ֢.ā𐹦
-T; Ⴛ\u200C\u05A2\u200D。\uFFA0A\u0304𐹦; [B5 B6 C1 C2 P1 V6]; [B5 B6 P1 V6] # Ⴛ֢.ā𐹦
-N; Ⴛ\u200C\u05A2\u200D。\uFFA0A\u0304𐹦; [B5 B6 C1 C2 P1 V6]; [B5 B6 C1 C2 P1 V6] # Ⴛ֢.ā𐹦
-B; xn--tcb597c.xn--yda9741khjj; [B5 B6 V6]; [B5 B6 V6] # Ⴛ֢.ā𐹦
-B; xn--tcb597cdmmfa.xn--yda9741khjj; [B5 B6 C1 C2 V6]; [B5 B6 C1 C2 V6] # Ⴛ֢.ā𐹦
-B; xn--tcb323r.xn--yda9741khjj; [B5 B6 V6]; [B5 B6 V6] # ⴛ֢.ā𐹦
-B; xn--tcb736kea974k.xn--yda9741khjj; [B5 B6 C1 C2 V6]; [B5 B6 C1 C2 V6] # ⴛ֢.ā𐹦
-T; \uFFF9\u200C。曳⾑𐋰≯; [C1 P1 V6]; [P1 V6] # .曳襾𐋰≯
-N; \uFFF9\u200C。曳⾑𐋰≯; [C1 P1 V6]; [C1 P1 V6] # .曳襾𐋰≯
-T; \uFFF9\u200C。曳⾑𐋰>\u0338; [C1 P1 V6]; [P1 V6] # .曳襾𐋰≯
-N; \uFFF9\u200C。曳⾑𐋰>\u0338; [C1 P1 V6]; [C1 P1 V6] # .曳襾𐋰≯
-T; \uFFF9\u200C。曳襾𐋰≯; [C1 P1 V6]; [P1 V6] # .曳襾𐋰≯
-N; \uFFF9\u200C。曳襾𐋰≯; [C1 P1 V6]; [C1 P1 V6] # .曳襾𐋰≯
-T; \uFFF9\u200C。曳襾𐋰>\u0338; [C1 P1 V6]; [P1 V6] # .曳襾𐋰≯
-N; \uFFF9\u200C。曳襾𐋰>\u0338; [C1 P1 V6]; [C1 P1 V6] # .曳襾𐋰≯
-B; xn--vn7c.xn--hdh501y8wvfs5h; [V6]; [V6] # .曳襾𐋰≯
-B; xn--0ug2139f.xn--hdh501y8wvfs5h; [C1 V6]; [C1 V6] # .曳襾𐋰≯
-T; ≯⒈。ß; [P1 V6]; [P1 V6]
-N; ≯⒈。ß; [P1 V6]; [P1 V6]
-T; >\u0338⒈。ß; [P1 V6]; [P1 V6]
-N; >\u0338⒈。ß; [P1 V6]; [P1 V6]
-T; ≯1.。ß; [P1 V6 A4_2]; [P1 V6 A4_2]
-N; ≯1.。ß; [P1 V6 A4_2]; [P1 V6 A4_2]
-T; >\u03381.。ß; [P1 V6 A4_2]; [P1 V6 A4_2]
-N; >\u03381.。ß; [P1 V6 A4_2]; [P1 V6 A4_2]
-B; >\u03381.。SS; [P1 V6 A4_2]; [P1 V6 A4_2]
-B; ≯1.。SS; [P1 V6 A4_2]; [P1 V6 A4_2]
-B; ≯1.。ss; [P1 V6 A4_2]; [P1 V6 A4_2]
-B; >\u03381.。ss; [P1 V6 A4_2]; [P1 V6 A4_2]
-B; >\u03381.。Ss; [P1 V6 A4_2]; [P1 V6 A4_2]
-B; ≯1.。Ss; [P1 V6 A4_2]; [P1 V6 A4_2]
-B; xn--1-ogo..ss; [V6 A4_2]; [V6 A4_2]
-B; xn--1-ogo..xn--zca; [V6 A4_2]; [V6 A4_2]
-B; >\u0338⒈。SS; [P1 V6]; [P1 V6]
-B; ≯⒈。SS; [P1 V6]; [P1 V6]
-B; ≯⒈。ss; [P1 V6]; [P1 V6]
-B; >\u0338⒈。ss; [P1 V6]; [P1 V6]
-B; >\u0338⒈。Ss; [P1 V6]; [P1 V6]
-B; ≯⒈。Ss; [P1 V6]; [P1 V6]
-B; xn--hdh84f.ss; [V6]; [V6]
-B; xn--hdh84f.xn--zca; [V6]; [V6]
-T; \u0667\u200D\uFB96。\u07DA-₆Ⴙ; [B1 B2 B3 C2 P1 V6]; [B1 B2 B3 P1 V6] # ٧ڳ.ߚ-6Ⴙ
-N; \u0667\u200D\uFB96。\u07DA-₆Ⴙ; [B1 B2 B3 C2 P1 V6]; [B1 B2 B3 C2 P1 V6] # ٧ڳ.ߚ-6Ⴙ
-T; \u0667\u200D\u06B3。\u07DA-6Ⴙ; [B1 B2 B3 C2 P1 V6]; [B1 B2 B3 P1 V6] # ٧ڳ.ߚ-6Ⴙ
-N; \u0667\u200D\u06B3。\u07DA-6Ⴙ; [B1 B2 B3 C2 P1 V6]; [B1 B2 B3 C2 P1 V6] # ٧ڳ.ߚ-6Ⴙ
-T; \u0667\u200D\u06B3。\u07DA-6ⴙ; [B1 B2 B3 C2]; [B1 B2 B3] # ٧ڳ.ߚ-6ⴙ
-N; \u0667\u200D\u06B3。\u07DA-6ⴙ; [B1 B2 B3 C2]; [B1 B2 B3 C2] # ٧ڳ.ߚ-6ⴙ
-B; xn--gib6m.xn---6-lve6529a; [B1 B2 B3]; [B1 B2 B3] # ٧ڳ.ߚ-6ⴙ
-B; xn--gib6m343e.xn---6-lve6529a; [B1 B2 B3 C2]; [B1 B2 B3 C2] # ٧ڳ.ߚ-6ⴙ
-B; xn--gib6m.xn---6-lve002g; [B1 B2 B3 V6]; [B1 B2 B3 V6] # ٧ڳ.ߚ-6Ⴙ
-B; xn--gib6m343e.xn---6-lve002g; [B1 B2 B3 C2 V6]; [B1 B2 B3 C2 V6] # ٧ڳ.ߚ-6Ⴙ
-T; \u0667\u200D\uFB96。\u07DA-₆ⴙ; [B1 B2 B3 C2]; [B1 B2 B3] # ٧ڳ.ߚ-6ⴙ
-N; \u0667\u200D\uFB96。\u07DA-₆ⴙ; [B1 B2 B3 C2]; [B1 B2 B3 C2] # ٧ڳ.ߚ-6ⴙ
-T; \u200C。≠; [C1 P1 V6]; [P1 V6 A4_2] # .≠
-N; \u200C。≠; [C1 P1 V6]; [C1 P1 V6] # .≠
-T; \u200C。=\u0338; [C1 P1 V6]; [P1 V6 A4_2] # .≠
-N; \u200C。=\u0338; [C1 P1 V6]; [C1 P1 V6] # .≠
-T; \u200C。≠; [C1 P1 V6]; [P1 V6 A4_2] # .≠
-N; \u200C。≠; [C1 P1 V6]; [C1 P1 V6] # .≠
-T; \u200C。=\u0338; [C1 P1 V6]; [P1 V6 A4_2] # .≠
-N; \u200C。=\u0338; [C1 P1 V6]; [C1 P1 V6] # .≠
-B; .xn--1ch; [V6 A4_2]; [V6 A4_2]
-B; xn--0ug.xn--1ch; [C1 V6]; [C1 V6] # .≠
-T; 𑖿𝨔.ᡟ𑖿\u1B42\u200C; [C1 V5]; [V5] # 𑖿𝨔.ᡟ𑖿ᭂ
-N; 𑖿𝨔.ᡟ𑖿\u1B42\u200C; [C1 V5]; [C1 V5] # 𑖿𝨔.ᡟ𑖿ᭂ
-B; xn--461dw464a.xn--v8e29loy65a; [V5]; [V5] # 𑖿𝨔.ᡟ𑖿ᭂ
-B; xn--461dw464a.xn--v8e29ldzfo952a; [C1 V5]; [C1 V5] # 𑖿𝨔.ᡟ𑖿ᭂ
-T; 򔣳\u200D򑝱.𖬴Ↄ≠-; [C2 P1 V3 V5 V6]; [P1 V3 V5 V6] # .𖬴Ↄ≠-
-N; 򔣳\u200D򑝱.𖬴Ↄ≠-; [C2 P1 V3 V5 V6]; [C2 P1 V3 V5 V6] # .𖬴Ↄ≠-
-T; 򔣳\u200D򑝱.𖬴Ↄ=\u0338-; [C2 P1 V3 V5 V6]; [P1 V3 V5 V6] # .𖬴Ↄ≠-
-N; 򔣳\u200D򑝱.𖬴Ↄ=\u0338-; [C2 P1 V3 V5 V6]; [C2 P1 V3 V5 V6] # .𖬴Ↄ≠-
-T; 򔣳\u200D򑝱.𖬴ↄ=\u0338-; [C2 P1 V3 V5 V6]; [P1 V3 V5 V6] # .𖬴ↄ≠-
-N; 򔣳\u200D򑝱.𖬴ↄ=\u0338-; [C2 P1 V3 V5 V6]; [C2 P1 V3 V5 V6] # .𖬴ↄ≠-
-T; 򔣳\u200D򑝱.𖬴ↄ≠-; [C2 P1 V3 V5 V6]; [P1 V3 V5 V6] # .𖬴ↄ≠-
-N; 򔣳\u200D򑝱.𖬴ↄ≠-; [C2 P1 V3 V5 V6]; [C2 P1 V3 V5 V6] # .𖬴ↄ≠-
-B; xn--6j00chy9a.xn----81n51bt713h; [V3 V5 V6]; [V3 V5 V6]
-B; xn--1ug15151gkb5a.xn----81n51bt713h; [C2 V3 V5 V6]; [C2 V3 V5 V6] # .𖬴ↄ≠-
-B; xn--6j00chy9a.xn----61n81bt713h; [V3 V5 V6]; [V3 V5 V6]
-B; xn--1ug15151gkb5a.xn----61n81bt713h; [C2 V3 V5 V6]; [C2 V3 V5 V6] # .𖬴Ↄ≠-
-T; \u07E2ς\u200D𝟳。蔑򛖢; [B2 C2 P1 V6]; [B2 P1 V6] # ߢς7.蔑
-N; \u07E2ς\u200D𝟳。蔑򛖢; [B2 C2 P1 V6]; [B2 C2 P1 V6] # ߢς7.蔑
-T; \u07E2ς\u200D7。蔑򛖢; [B2 C2 P1 V6]; [B2 P1 V6] # ߢς7.蔑
-N; \u07E2ς\u200D7。蔑򛖢; [B2 C2 P1 V6]; [B2 C2 P1 V6] # ߢς7.蔑
-T; \u07E2Σ\u200D7。蔑򛖢; [B2 C2 P1 V6]; [B2 P1 V6] # ߢσ7.蔑
-N; \u07E2Σ\u200D7。蔑򛖢; [B2 C2 P1 V6]; [B2 C2 P1 V6] # ߢσ7.蔑
-T; \u07E2σ\u200D7。蔑򛖢; [B2 C2 P1 V6]; [B2 P1 V6] # ߢσ7.蔑
-N; \u07E2σ\u200D7。蔑򛖢; [B2 C2 P1 V6]; [B2 C2 P1 V6] # ߢσ7.蔑
-B; xn--7-zmb872a.xn--wy1ao4929b; [B2 V6]; [B2 V6] # ߢσ7.蔑
-B; xn--7-zmb872aez5a.xn--wy1ao4929b; [B2 C2 V6]; [B2 C2 V6] # ߢσ7.蔑
-B; xn--7-xmb182aez5a.xn--wy1ao4929b; [B2 C2 V6]; [B2 C2 V6] # ߢς7.蔑
-T; \u07E2Σ\u200D𝟳。蔑򛖢; [B2 C2 P1 V6]; [B2 P1 V6] # ߢσ7.蔑
-N; \u07E2Σ\u200D𝟳。蔑򛖢; [B2 C2 P1 V6]; [B2 C2 P1 V6] # ߢσ7.蔑
-T; \u07E2σ\u200D𝟳。蔑򛖢; [B2 C2 P1 V6]; [B2 P1 V6] # ߢσ7.蔑
-N; \u07E2σ\u200D𝟳。蔑򛖢; [B2 C2 P1 V6]; [B2 C2 P1 V6] # ߢσ7.蔑
-B; 𐹰.\u0600; [B1 P1 V6]; [B1 P1 V6] # 𐹰.
-B; xn--oo0d.xn--ifb; [B1 V6]; [B1 V6] # 𐹰.
-B; -\u08A8.𱠖; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -ࢨ.
-B; xn----mod.xn--5o9n; [B1 V3 V6]; [B1 V3 V6] # -ࢨ.
-B; ≯𞱸󠇀。誆⒈; [B1 P1 V6]; [B1 P1 V6]
-B; >\u0338𞱸󠇀。誆⒈; [B1 P1 V6]; [B1 P1 V6]
-B; ≯𞱸󠇀。誆1.; [B1 P1 V6]; [B1 P1 V6]
-B; >\u0338𞱸󠇀。誆1.; [B1 P1 V6]; [B1 P1 V6]
-B; xn--hdh7151p.xn--1-dy1d.; [B1 V6]; [B1 V6]
-B; xn--hdh7151p.xn--tsh1248a; [B1 V6]; [B1 V6]
-B; \u0616𞥙䐊\u0650.︒\u0645↺\u069C; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ؖ𞥙䐊ِ.︒م↺ڜ
-B; \u0616𞥙䐊\u0650.。\u0645↺\u069C; [B1 V5 A4_2]; [B1 V5 A4_2] # ؖ𞥙䐊ِ..م↺ڜ
-B; xn--4fb0j490qjg4x..xn--hhb8o948e; [B1 V5 A4_2]; [B1 V5 A4_2] # ؖ𞥙䐊ِ..م↺ڜ
-B; xn--4fb0j490qjg4x.xn--hhb8o948euo5r; [B1 V5 V6]; [B1 V5 V6] # ؖ𞥙䐊ِ.︒م↺ڜ
-T; 퀬-\uDF7E񶳒.\u200C\u0AC5󩸤۴; [C1 P1 V6]; [P1 V5 V6 A3] # 퀬-.ૅ۴
-N; 퀬-\uDF7E񶳒.\u200C\u0AC5󩸤۴; [C1 P1 V6]; [C1 P1 V6 A3] # 퀬-.ૅ۴
-T; 퀬-\uDF7E񶳒.\u200C\u0AC5󩸤۴; [C1 P1 V6]; [P1 V5 V6 A3] # 퀬-.ૅ۴
-N; 퀬-\uDF7E񶳒.\u200C\u0AC5󩸤۴; [C1 P1 V6]; [C1 P1 V6 A3] # 퀬-.ૅ۴
-B; 퀬-\uDF7E񶳒.xn--hmb76q74166b; [P1 V5 V6]; [P1 V5 V6 A3] # 퀬-.ૅ۴
-B; 퀬-\uDF7E񶳒.xn--hmb76q74166b; [P1 V5 V6]; [P1 V5 V6 A3] # 퀬-.ૅ۴
-B; 퀬-\uDF7E񶳒.XN--HMB76Q74166B; [P1 V5 V6]; [P1 V5 V6 A3] # 퀬-.ૅ۴
-B; 퀬-\uDF7E񶳒.XN--HMB76Q74166B; [P1 V5 V6]; [P1 V5 V6 A3] # 퀬-.ૅ۴
-B; 퀬-\uDF7E񶳒.Xn--Hmb76q74166b; [P1 V5 V6]; [P1 V5 V6 A3] # 퀬-.ૅ۴
-B; 퀬-\uDF7E񶳒.Xn--Hmb76q74166b; [P1 V5 V6]; [P1 V5 V6 A3] # 퀬-.ૅ۴
-B; 퀬-\uDF7E񶳒.xn--hmb76q48y18505a; [C1 P1 V6]; [C1 P1 V6 A3] # 퀬-.ૅ۴
-B; 퀬-\uDF7E񶳒.xn--hmb76q48y18505a; [C1 P1 V6]; [C1 P1 V6 A3] # 퀬-.ૅ۴
-B; 퀬-\uDF7E񶳒.XN--HMB76Q48Y18505A; [C1 P1 V6]; [C1 P1 V6 A3] # 퀬-.ૅ۴
-B; 퀬-\uDF7E񶳒.XN--HMB76Q48Y18505A; [C1 P1 V6]; [C1 P1 V6 A3] # 퀬-.ૅ۴
-B; 퀬-\uDF7E񶳒.Xn--Hmb76q48y18505a; [C1 P1 V6]; [C1 P1 V6 A3] # 퀬-.ૅ۴
-B; 퀬-\uDF7E񶳒.Xn--Hmb76q48y18505a; [C1 P1 V6]; [C1 P1 V6 A3] # 퀬-.ૅ۴
-B; Ⴌ.𐹾︒𑁿𞾄; [B1 P1 V6]; [B1 P1 V6]
-B; Ⴌ.𐹾。𑁿𞾄; [B1 P1 V5 V6]; [B1 P1 V5 V6]
-B; ⴌ.𐹾。𑁿𞾄; [B1 P1 V5 V6]; [B1 P1 V5 V6]
-B; xn--3kj.xn--2o0d.xn--q30dg029a; [B1 V5 V6]; [B1 V5 V6]
-B; xn--knd.xn--2o0d.xn--q30dg029a; [B1 V5 V6]; [B1 V5 V6]
-B; ⴌ.𐹾︒𑁿𞾄; [B1 P1 V6]; [B1 P1 V6]
-B; xn--3kj.xn--y86c030a9ob6374b; [B1 V6]; [B1 V6]
-B; xn--knd.xn--y86c030a9ob6374b; [B1 V6]; [B1 V6]
-B; 񧞿╏。𞩕󠁾; [B3 B6 P1 V6]; [B3 B6 P1 V6]
-B; xn--iyh90030d.xn--1m6hs0260c; [B3 B6 V6]; [B3 B6 V6]
-T; \u200D┮󠇐.\u0C00\u0C4D\u1734\u200D; [C2 V5]; [V5] # ┮.ఀ్᜴
-N; \u200D┮󠇐.\u0C00\u0C4D\u1734\u200D; [C2 V5]; [C2 V5] # ┮.ఀ్᜴
-T; \u200D┮󠇐.\u0C00\u0C4D\u1734\u200D; [C2 V5]; [V5] # ┮.ఀ్᜴
-N; \u200D┮󠇐.\u0C00\u0C4D\u1734\u200D; [C2 V5]; [C2 V5] # ┮.ఀ్᜴
-B; xn--kxh.xn--eoc8m432a; [V5]; [V5] # ┮.ఀ్᜴
-B; xn--1ug04r.xn--eoc8m432a40i; [C2 V5]; [C2 V5] # ┮.ఀ్᜴
-B; 򹚪。🄂; [P1 V6]; [P1 V6]
-B; 򹚪。1,; [P1 V6]; [P1 V6]
-B; xn--n433d.1,; [P1 V6]; [P1 V6]
-B; xn--n433d.xn--v07h; [V6]; [V6]
-B; 𑍨刍.🛦; [V5]; [V5]
-B; xn--rbry728b.xn--y88h; [V5]; [V5]
-B; 󠌏3。\u1BF1𝟒; [P1 V5 V6]; [P1 V5 V6] # 3.ᯱ4
-B; 󠌏3。\u1BF14; [P1 V5 V6]; [P1 V5 V6] # 3.ᯱ4
-B; xn--3-ib31m.xn--4-pql; [V5 V6]; [V5 V6] # 3.ᯱ4
-T; \u06876Ⴔ辘.\uFD22\u0687\u200C; [B2 B3 C1 P1 V6]; [B2 B3 P1 V6] # ڇ6Ⴔ辘.صيڇ
-N; \u06876Ⴔ辘.\uFD22\u0687\u200C; [B2 B3 C1 P1 V6]; [B2 B3 C1 P1 V6] # ڇ6Ⴔ辘.صيڇ
-T; \u06876Ⴔ辘.\u0635\u064A\u0687\u200C; [B2 B3 C1 P1 V6]; [B2 B3 P1 V6] # ڇ6Ⴔ辘.صيڇ
-N; \u06876Ⴔ辘.\u0635\u064A\u0687\u200C; [B2 B3 C1 P1 V6]; [B2 B3 C1 P1 V6] # ڇ6Ⴔ辘.صيڇ
-T; \u06876ⴔ辘.\u0635\u064A\u0687\u200C; [B2 B3 C1]; [B2 B3] # ڇ6ⴔ辘.صيڇ
-N; \u06876ⴔ辘.\u0635\u064A\u0687\u200C; [B2 B3 C1]; [B2 B3 C1] # ڇ6ⴔ辘.صيڇ
-B; xn--6-gsc2270akm6f.xn--0gb6bxk; [B2 B3]; [B2 B3] # ڇ6ⴔ辘.صيڇ
-B; xn--6-gsc2270akm6f.xn--0gb6bxkx18g; [B2 B3 C1]; [B2 B3 C1] # ڇ6ⴔ辘.صيڇ
-B; xn--6-gsc039eqq6k.xn--0gb6bxk; [B2 B3 V6]; [B2 B3 V6] # ڇ6Ⴔ辘.صيڇ
-B; xn--6-gsc039eqq6k.xn--0gb6bxkx18g; [B2 B3 C1 V6]; [B2 B3 C1 V6] # ڇ6Ⴔ辘.صيڇ
-T; \u06876ⴔ辘.\uFD22\u0687\u200C; [B2 B3 C1]; [B2 B3] # ڇ6ⴔ辘.صيڇ
-N; \u06876ⴔ辘.\uFD22\u0687\u200C; [B2 B3 C1]; [B2 B3 C1] # ڇ6ⴔ辘.صيڇ
-B; 󠄍.𐮭𞰬򻫞۹; [B2 P1 V6 A4_2]; [B2 P1 V6 A4_2]
-B; .xn--mmb3954kd0uf1zx7f; [B2 V6 A4_2]; [B2 V6 A4_2]
-B; \uA87D≯.򻲀򒳄; [P1 V6]; [P1 V6] # ≯.
-B; \uA87D>\u0338.򻲀򒳄; [P1 V6]; [P1 V6] # ≯.
-B; \uA87D≯.򻲀򒳄; [P1 V6]; [P1 V6] # ≯.
-B; \uA87D>\u0338.򻲀򒳄; [P1 V6]; [P1 V6] # ≯.
-B; xn--hdh8193c.xn--5z40cp629b; [V6]; [V6] # ≯.
-T; ςო\u067B.ς\u0714; [B5 B6]; [B5 B6] # ςოٻ.ςܔ
-N; ςო\u067B.ς\u0714; [B5 B6]; [B5 B6] # ςოٻ.ςܔ
-B; Σო\u067B.Σ\u0714; [B5 B6]; [B5 B6] # σოٻ.σܔ
-B; σო\u067B.σ\u0714; [B5 B6]; [B5 B6] # σოٻ.σܔ
-B; Σო\u067B.σ\u0714; [B5 B6]; [B5 B6] # σოٻ.σܔ
-B; xn--4xa60l26n.xn--4xa21o; [B5 B6]; [B5 B6] # σოٻ.σܔ
-T; Σო\u067B.ς\u0714; [B5 B6]; [B5 B6] # σოٻ.ςܔ
-N; Σო\u067B.ς\u0714; [B5 B6]; [B5 B6] # σოٻ.ςܔ
-T; σო\u067B.ς\u0714; [B5 B6]; [B5 B6] # σოٻ.ςܔ
-N; σო\u067B.ς\u0714; [B5 B6]; [B5 B6] # σოٻ.ςܔ
-B; xn--4xa60l26n.xn--3xa41o; [B5 B6]; [B5 B6] # σოٻ.ςܔ
-B; xn--3xa80l26n.xn--3xa41o; [B5 B6]; [B5 B6] # ςოٻ.ςܔ
-B; 򄖚\u0748𠄯\u075F。󠛩; [B1 B5 B6 P1 V6]; [B1 B5 B6 P1 V6] # ݈𠄯ݟ.
-B; 򄖚\u0748𠄯\u075F。󠛩; [B1 B5 B6 P1 V6]; [B1 B5 B6 P1 V6] # ݈𠄯ݟ.
-B; xn--vob0c4369twfv8b.xn--kl46e; [B1 B5 B6 V6]; [B1 B5 B6 V6] # ݈𠄯ݟ.
-T; 󠳛.\u200D䤫≠Ⴞ; [C2 P1 V6]; [P1 V6] # .䤫≠Ⴞ
-N; 󠳛.\u200D䤫≠Ⴞ; [C2 P1 V6]; [C2 P1 V6] # .䤫≠Ⴞ
-T; 󠳛.\u200D䤫=\u0338Ⴞ; [C2 P1 V6]; [P1 V6] # .䤫≠Ⴞ
-N; 󠳛.\u200D䤫=\u0338Ⴞ; [C2 P1 V6]; [C2 P1 V6] # .䤫≠Ⴞ
-T; 󠳛.\u200D䤫≠Ⴞ; [C2 P1 V6]; [P1 V6] # .䤫≠Ⴞ
-N; 󠳛.\u200D䤫≠Ⴞ; [C2 P1 V6]; [C2 P1 V6] # .䤫≠Ⴞ
-T; 󠳛.\u200D䤫=\u0338Ⴞ; [C2 P1 V6]; [P1 V6] # .䤫≠Ⴞ
-N; 󠳛.\u200D䤫=\u0338Ⴞ; [C2 P1 V6]; [C2 P1 V6] # .䤫≠Ⴞ
-T; 󠳛.\u200D䤫=\u0338ⴞ; [C2 P1 V6]; [P1 V6] # .䤫≠ⴞ
-N; 󠳛.\u200D䤫=\u0338ⴞ; [C2 P1 V6]; [C2 P1 V6] # .䤫≠ⴞ
-T; 󠳛.\u200D䤫≠ⴞ; [C2 P1 V6]; [P1 V6] # .䤫≠ⴞ
-N; 󠳛.\u200D䤫≠ⴞ; [C2 P1 V6]; [C2 P1 V6] # .䤫≠ⴞ
-B; xn--1t56e.xn--1ch153bqvw; [V6]; [V6]
-B; xn--1t56e.xn--1ug73gzzpwi3a; [C2 V6]; [C2 V6] # .䤫≠ⴞ
-B; xn--1t56e.xn--2nd141ghl2a; [V6]; [V6]
-B; xn--1t56e.xn--2nd159e9vb743e; [C2 V6]; [C2 V6] # .䤫≠Ⴞ
-T; 󠳛.\u200D䤫=\u0338ⴞ; [C2 P1 V6]; [P1 V6] # .䤫≠ⴞ
-N; 󠳛.\u200D䤫=\u0338ⴞ; [C2 P1 V6]; [C2 P1 V6] # .䤫≠ⴞ
-T; 󠳛.\u200D䤫≠ⴞ; [C2 P1 V6]; [P1 V6] # .䤫≠ⴞ
-N; 󠳛.\u200D䤫≠ⴞ; [C2 P1 V6]; [C2 P1 V6] # .䤫≠ⴞ
-B; 𐽘𑈵.𐹣🕥; [B1 B2 B3 P1 V6]; [B1 B2 B3 P1 V6]
-B; 𐽘𑈵.𐹣🕥; [B1 B2 B3 P1 V6]; [B1 B2 B3 P1 V6]
-B; xn--bv0d02c.xn--bo0dq650b; [B1 B2 B3 V6]; [B1 B2 B3 V6]
-B; ⒊⒈𑁄。9; [P1 V6]; [P1 V6]
-B; 3.1.𑁄。9; [V5]; [V5]
-B; 3.1.xn--110d.9; [V5]; [V5]
-B; xn--tshd3512p.9; [V6]; [V6]
-T; -\u200C\u2DF1≮.𐹱򭏴4₉; [B1 C1 P1 V3 V6]; [B1 P1 V3 V6] # -ⷱ≮.𐹱49
-N; -\u200C\u2DF1≮.𐹱򭏴4₉; [B1 C1 P1 V3 V6]; [B1 C1 P1 V3 V6] # -ⷱ≮.𐹱49
-T; -\u200C\u2DF1<\u0338.𐹱򭏴4₉; [B1 C1 P1 V3 V6]; [B1 P1 V3 V6] # -ⷱ≮.𐹱49
-N; -\u200C\u2DF1<\u0338.𐹱򭏴4₉; [B1 C1 P1 V3 V6]; [B1 C1 P1 V3 V6] # -ⷱ≮.𐹱49
-T; -\u200C\u2DF1≮.𐹱򭏴49; [B1 C1 P1 V3 V6]; [B1 P1 V3 V6] # -ⷱ≮.𐹱49
-N; -\u200C\u2DF1≮.𐹱򭏴49; [B1 C1 P1 V3 V6]; [B1 C1 P1 V3 V6] # -ⷱ≮.𐹱49
-T; -\u200C\u2DF1<\u0338.𐹱򭏴49; [B1 C1 P1 V3 V6]; [B1 P1 V3 V6] # -ⷱ≮.𐹱49
-N; -\u200C\u2DF1<\u0338.𐹱򭏴49; [B1 C1 P1 V3 V6]; [B1 C1 P1 V3 V6] # -ⷱ≮.𐹱49
-B; xn----ngo823c.xn--49-ki3om2611f; [B1 V3 V6]; [B1 V3 V6] # -ⷱ≮.𐹱49
-B; xn----sgn20i14s.xn--49-ki3om2611f; [B1 C1 V3 V6]; [B1 C1 V3 V6] # -ⷱ≮.𐹱49
-B; -≯딾。\u0847; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -≯딾.ࡇ
-B; ->\u0338딾。\u0847; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -≯딾.ࡇ
-B; -≯딾。\u0847; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -≯딾.ࡇ
-B; ->\u0338딾。\u0847; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -≯딾.ࡇ
-B; xn----pgow547d.xn--5vb; [B1 V3 V6]; [B1 V3 V6] # -≯딾.ࡇ
-T; 𑙢⒈𐹠-。󠗐\u200C; [B1 C1 P1 V3 V6]; [B1 P1 V3 V6] # 𑙢⒈𐹠-.
-N; 𑙢⒈𐹠-。󠗐\u200C; [B1 C1 P1 V3 V6]; [B1 C1 P1 V3 V6] # 𑙢⒈𐹠-.
-T; 𑙢1.𐹠-。󠗐\u200C; [B1 C1 P1 V3 V6]; [B1 P1 V3 V6] # 𑙢1.𐹠-.
-N; 𑙢1.𐹠-。󠗐\u200C; [B1 C1 P1 V3 V6]; [B1 C1 P1 V3 V6] # 𑙢1.𐹠-.
-B; xn--1-bf0j.xn----516i.xn--jd46e; [B1 V3 V6]; [B1 V3 V6]
-B; xn--1-bf0j.xn----516i.xn--0ug23321l; [B1 C1 V3 V6]; [B1 C1 V3 V6] # 𑙢1.𐹠-.
-B; xn----dcpy090hiyg.xn--jd46e; [B1 V3 V6]; [B1 V3 V6]
-B; xn----dcpy090hiyg.xn--0ug23321l; [B1 C1 V3 V6]; [B1 C1 V3 V6] # 𑙢⒈𐹠-.
-B; \u034A.𐨎; [V5]; [V5] # ͊.𐨎
-B; \u034A.𐨎; [V5]; [V5] # ͊.𐨎
-B; xn--oua.xn--mr9c; [V5]; [V5] # ͊.𐨎
-B; 훉≮。\u0E34; [P1 V5 V6]; [P1 V5 V6] # 훉≮.ิ
-B; 훉<\u0338。\u0E34; [P1 V5 V6]; [P1 V5 V6] # 훉≮.ิ
-B; 훉≮。\u0E34; [P1 V5 V6]; [P1 V5 V6] # 훉≮.ิ
-B; 훉<\u0338。\u0E34; [P1 V5 V6]; [P1 V5 V6] # 훉≮.ิ
-B; xn--gdh2512e.xn--i4c; [V5 V6]; [V5 V6] # 훉≮.ิ
-B; \u2DF7򞣉🃘.𴈇𝟸\u0659𞤯; [B1 B5 B6 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # ⷷ🃘.2ٙ𞤯
-B; \u2DF7򞣉🃘.𴈇2\u0659𞤯; [B1 B5 B6 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # ⷷ🃘.2ٙ𞤯
-B; \u2DF7򞣉🃘.𴈇2\u0659𞤍; [B1 B5 B6 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # ⷷ🃘.2ٙ𞤯
-B; xn--trj8045le6s9b.xn--2-upc23918acjsj; [B1 B5 B6 V5 V6]; [B1 B5 B6 V5 V6] # ⷷ🃘.2ٙ𞤯
-B; \u2DF7򞣉🃘.𴈇𝟸\u0659𞤍; [B1 B5 B6 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # ⷷ🃘.2ٙ𞤯
-T; 󗇩ßᢞ\u200C。\u0660𞷻\uFCD4-; [B1 B6 C1 P1 V3 V6]; [B1 P1 V3 V6] # ßᢞ.٠نخ-
-N; 󗇩ßᢞ\u200C。\u0660𞷻\uFCD4-; [B1 B6 C1 P1 V3 V6]; [B1 B6 C1 P1 V3 V6] # ßᢞ.٠نخ-
-T; 󗇩ßᢞ\u200C。\u0660𞷻\u0646\u062E-; [B1 B6 C1 P1 V3 V6]; [B1 P1 V3 V6] # ßᢞ.٠نخ-
-N; 󗇩ßᢞ\u200C。\u0660𞷻\u0646\u062E-; [B1 B6 C1 P1 V3 V6]; [B1 B6 C1 P1 V3 V6] # ßᢞ.٠نخ-
-T; 󗇩SSᢞ\u200C。\u0660𞷻\u0646\u062E-; [B1 B6 C1 P1 V3 V6]; [B1 P1 V3 V6] # ssᢞ.٠نخ-
-N; 󗇩SSᢞ\u200C。\u0660𞷻\u0646\u062E-; [B1 B6 C1 P1 V3 V6]; [B1 B6 C1 P1 V3 V6] # ssᢞ.٠نخ-
-T; 󗇩ssᢞ\u200C。\u0660𞷻\u0646\u062E-; [B1 B6 C1 P1 V3 V6]; [B1 P1 V3 V6] # ssᢞ.٠نخ-
-N; 󗇩ssᢞ\u200C。\u0660𞷻\u0646\u062E-; [B1 B6 C1 P1 V3 V6]; [B1 B6 C1 P1 V3 V6] # ssᢞ.٠نخ-
-T; 󗇩Ssᢞ\u200C。\u0660𞷻\u0646\u062E-; [B1 B6 C1 P1 V3 V6]; [B1 P1 V3 V6] # ssᢞ.٠نخ-
-N; 󗇩Ssᢞ\u200C。\u0660𞷻\u0646\u062E-; [B1 B6 C1 P1 V3 V6]; [B1 B6 C1 P1 V3 V6] # ssᢞ.٠نخ-
-B; xn--ss-jepz4596r.xn----dnc5e1er384z; [B1 V3 V6]; [B1 V3 V6] # ssᢞ.٠نخ-
-B; xn--ss-jep006bqt765b.xn----dnc5e1er384z; [B1 B6 C1 V3 V6]; [B1 B6 C1 V3 V6] # ssᢞ.٠نخ-
-B; xn--zca272jbif10059a.xn----dnc5e1er384z; [B1 B6 C1 V3 V6]; [B1 B6 C1 V3 V6] # ßᢞ.٠نخ-
-T; 󗇩SSᢞ\u200C。\u0660𞷻\uFCD4-; [B1 B6 C1 P1 V3 V6]; [B1 P1 V3 V6] # ssᢞ.٠نخ-
-N; 󗇩SSᢞ\u200C。\u0660𞷻\uFCD4-; [B1 B6 C1 P1 V3 V6]; [B1 B6 C1 P1 V3 V6] # ssᢞ.٠نخ-
-T; 󗇩ssᢞ\u200C。\u0660𞷻\uFCD4-; [B1 B6 C1 P1 V3 V6]; [B1 P1 V3 V6] # ssᢞ.٠نخ-
-N; 󗇩ssᢞ\u200C。\u0660𞷻\uFCD4-; [B1 B6 C1 P1 V3 V6]; [B1 B6 C1 P1 V3 V6] # ssᢞ.٠نخ-
-T; 󗇩Ssᢞ\u200C。\u0660𞷻\uFCD4-; [B1 B6 C1 P1 V3 V6]; [B1 P1 V3 V6] # ssᢞ.٠نخ-
-N; 󗇩Ssᢞ\u200C。\u0660𞷻\uFCD4-; [B1 B6 C1 P1 V3 V6]; [B1 B6 C1 P1 V3 V6] # ssᢞ.٠نخ-
-B; ꡆ。Ↄ\u0FB5놮-; [P1 V3 V6]; [P1 V3 V6] # ꡆ.Ↄྵ놮-
-B; ꡆ。Ↄ\u0FB5놮-; [P1 V3 V6]; [P1 V3 V6] # ꡆ.Ↄྵ놮-
-B; ꡆ。ↄ\u0FB5놮-; [V3]; [V3] # ꡆ.ↄྵ놮-
-B; ꡆ。ↄ\u0FB5놮-; [V3]; [V3] # ꡆ.ↄྵ놮-
-B; xn--fc9a.xn----qmg097k469k; [V3]; [V3] # ꡆ.ↄྵ놮-
-B; xn--fc9a.xn----qmg787k869k; [V3 V6]; [V3 V6] # ꡆ.Ↄྵ놮-
-T; \uFDAD\u200D.񥰌\u06A9; [B3 B5 B6 C2 P1 V6]; [B5 B6 P1 V6] # لمي.ک
-N; \uFDAD\u200D.񥰌\u06A9; [B3 B5 B6 C2 P1 V6]; [B3 B5 B6 C2 P1 V6] # لمي.ک
-T; \u0644\u0645\u064A\u200D.񥰌\u06A9; [B3 B5 B6 C2 P1 V6]; [B5 B6 P1 V6] # لمي.ک
-N; \u0644\u0645\u064A\u200D.񥰌\u06A9; [B3 B5 B6 C2 P1 V6]; [B3 B5 B6 C2 P1 V6] # لمي.ک
-B; xn--ghbcp.xn--ckb36214f; [B5 B6 V6]; [B5 B6 V6] # لمي.ک
-B; xn--ghbcp494x.xn--ckb36214f; [B3 B5 B6 C2 V6]; [B3 B5 B6 C2 V6] # لمي.ک
-B; Ⴜ\u1C2F𐳒≯。\u06E0\u1732\u0FBA; [B1 B3 B5 B6 P1 V5 V6]; [B1 B3 B5 B6 P1 V5 V6] # Ⴜᰯ𐳒≯.۠ᜲྺ
-B; Ⴜ\u1C2F𐳒>\u0338。\u06E0\u1732\u0FBA; [B1 B3 B5 B6 P1 V5 V6]; [B1 B3 B5 B6 P1 V5 V6] # Ⴜᰯ𐳒≯.۠ᜲྺ
-B; ⴜ\u1C2F𐳒>\u0338。\u06E0\u1732\u0FBA; [B1 B3 B5 B6 P1 V5 V6]; [B1 B3 B5 B6 P1 V5 V6] # ⴜᰯ𐳒≯.۠ᜲྺ
-B; ⴜ\u1C2F𐳒≯。\u06E0\u1732\u0FBA; [B1 B3 B5 B6 P1 V5 V6]; [B1 B3 B5 B6 P1 V5 V6] # ⴜᰯ𐳒≯.۠ᜲྺ
-B; Ⴜ\u1C2F𐲒≯。\u06E0\u1732\u0FBA; [B1 B3 B5 B6 P1 V5 V6]; [B1 B3 B5 B6 P1 V5 V6] # Ⴜᰯ𐳒≯.۠ᜲྺ
-B; Ⴜ\u1C2F𐲒>\u0338。\u06E0\u1732\u0FBA; [B1 B3 B5 B6 P1 V5 V6]; [B1 B3 B5 B6 P1 V5 V6] # Ⴜᰯ𐳒≯.۠ᜲྺ
-B; xn--0nd679cf3eq67y.xn--wlb646b4ng; [B1 B3 B5 B6 V5 V6]; [B1 B3 B5 B6 V5 V6] # Ⴜᰯ𐳒≯.۠ᜲྺ
-B; xn--r1f68xh1jgv7u.xn--wlb646b4ng; [B1 B3 B5 B6 V5 V6]; [B1 B3 B5 B6 V5 V6] # ⴜᰯ𐳒≯.۠ᜲྺ
-B; 𐋵。\uFCEC; [B1]; [B1] # 𐋵.كم
-B; 𐋵。\u0643\u0645; [B1]; [B1] # 𐋵.كم
-B; xn--p97c.xn--fhbe; [B1]; [B1] # 𐋵.كم
-B; 𐋵.\u0643\u0645; [B1]; [B1] # 𐋵.كم
-B; ≮𝅶.񱲁\uAAEC⹈󰥭; [P1 V6]; [P1 V6] # ≮.ꫬ⹈
-B; <\u0338𝅶.񱲁\uAAEC⹈󰥭; [P1 V6]; [P1 V6] # ≮.ꫬ⹈
-B; ≮𝅶.񱲁\uAAEC⹈󰥭; [P1 V6]; [P1 V6] # ≮.ꫬ⹈
-B; <\u0338𝅶.񱲁\uAAEC⹈󰥭; [P1 V6]; [P1 V6] # ≮.ꫬ⹈
-B; xn--gdh0880o.xn--4tjx101bsg00ds9pyc; [V6]; [V6] # ≮.ꫬ⹈
-B; \u2DF0\u0358ᢕ.\u0361𐹷󠴍; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ⷰ͘ᢕ.͡𐹷
-B; \u2DF0\u0358ᢕ.\u0361𐹷󠴍; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ⷰ͘ᢕ.͡𐹷
-B; xn--2ua889htsp.xn--cva2687k2tv0g; [B1 V5 V6]; [B1 V5 V6] # ⷰ͘ᢕ.͡𐹷
-T; \uFD79ᡐ\u200C\u06AD.𑋪\u05C7; [B1 B2 B3 B6 V5]; [B1 B2 B3 B6 V5] # غممᡐڭ.𑋪ׇ
-N; \uFD79ᡐ\u200C\u06AD.𑋪\u05C7; [B1 B2 B3 B6 V5]; [B1 B2 B3 B6 V5] # غممᡐڭ.𑋪ׇ
-T; \u063A\u0645\u0645ᡐ\u200C\u06AD.𑋪\u05C7; [B1 B2 B3 B6 V5]; [B1 B2 B3 B6 V5] # غممᡐڭ.𑋪ׇ
-N; \u063A\u0645\u0645ᡐ\u200C\u06AD.𑋪\u05C7; [B1 B2 B3 B6 V5]; [B1 B2 B3 B6 V5] # غممᡐڭ.𑋪ׇ
-B; xn--5gbwa03bg24e.xn--vdb1198k; [B1 B2 B3 B6 V5]; [B1 B2 B3 B6 V5] # غممᡐڭ.𑋪ׇ
-B; xn--5gbwa03bg24eptk.xn--vdb1198k; [B1 B2 B3 B6 V5]; [B1 B2 B3 B6 V5] # غممᡐڭ.𑋪ׇ
-T; 𑑂。\u200D󥞀🞕򥁔; [C2 P1 V5 V6]; [P1 V5 V6] # 𑑂.🞕
-N; 𑑂。\u200D󥞀🞕򥁔; [C2 P1 V5 V6]; [C2 P1 V5 V6] # 𑑂.🞕
-T; 𑑂。\u200D󥞀🞕򥁔; [C2 P1 V5 V6]; [P1 V5 V6] # 𑑂.🞕
-N; 𑑂。\u200D󥞀🞕򥁔; [C2 P1 V5 V6]; [C2 P1 V5 V6] # 𑑂.🞕
-B; xn--8v1d.xn--ye9h41035a2qqs; [V5 V6]; [V5 V6]
-B; xn--8v1d.xn--1ug1386plvx1cd8vya; [C2 V5 V6]; [C2 V5 V6] # 𑑂.🞕
-B; -\u05E9。⒚; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -ש.⒚
-B; -\u05E9。19.; [B1 V3]; [B1 V3] # -ש.19.
-B; xn----gjc.19.; [B1 V3]; [B1 V3] # -ש.19.
-B; xn----gjc.xn--cth; [B1 V3 V6]; [B1 V3 V6] # -ש.⒚
-T; 􊾻\u0845\u200C。ᢎ\u200D; [B5 B6 C1 C2 P1 V6]; [B5 B6 P1 V6] # ࡅ.ᢎ
-N; 􊾻\u0845\u200C。ᢎ\u200D; [B5 B6 C1 C2 P1 V6]; [B5 B6 C1 C2 P1 V6] # ࡅ.ᢎ
-T; 􊾻\u0845\u200C。ᢎ\u200D; [B5 B6 C1 C2 P1 V6]; [B5 B6 P1 V6] # ࡅ.ᢎ
-N; 􊾻\u0845\u200C。ᢎ\u200D; [B5 B6 C1 C2 P1 V6]; [B5 B6 C1 C2 P1 V6] # ࡅ.ᢎ
-B; xn--3vb50049s.xn--79e; [B5 B6 V6]; [B5 B6 V6] # ࡅ.ᢎ
-B; xn--3vb882jz4411a.xn--79e259a; [B5 B6 C1 C2 V6]; [B5 B6 C1 C2 V6] # ࡅ.ᢎ
-T; ß\u09C1\u1DED。\u06208₅; ß\u09C1\u1DED.\u062085; xn--ss-e2f077r.xn--85-psd # ßুᷭ.ؠ85
-N; ß\u09C1\u1DED。\u06208₅; ß\u09C1\u1DED.\u062085; xn--zca266bwrr.xn--85-psd # ßুᷭ.ؠ85
-T; ß\u09C1\u1DED。\u062085; ß\u09C1\u1DED.\u062085; xn--ss-e2f077r.xn--85-psd # ßুᷭ.ؠ85
-N; ß\u09C1\u1DED。\u062085; ß\u09C1\u1DED.\u062085; xn--zca266bwrr.xn--85-psd # ßুᷭ.ؠ85
-B; SS\u09C1\u1DED。\u062085; ss\u09C1\u1DED.\u062085; xn--ss-e2f077r.xn--85-psd # ssুᷭ.ؠ85
-B; ss\u09C1\u1DED。\u062085; ss\u09C1\u1DED.\u062085; xn--ss-e2f077r.xn--85-psd # ssুᷭ.ؠ85
-B; Ss\u09C1\u1DED。\u062085; ss\u09C1\u1DED.\u062085; xn--ss-e2f077r.xn--85-psd # ssুᷭ.ؠ85
-B; xn--ss-e2f077r.xn--85-psd; ss\u09C1\u1DED.\u062085; xn--ss-e2f077r.xn--85-psd # ssুᷭ.ؠ85
-B; ss\u09C1\u1DED.\u062085; ; xn--ss-e2f077r.xn--85-psd # ssুᷭ.ؠ85
-B; SS\u09C1\u1DED.\u062085; ss\u09C1\u1DED.\u062085; xn--ss-e2f077r.xn--85-psd # ssুᷭ.ؠ85
-B; Ss\u09C1\u1DED.\u062085; ss\u09C1\u1DED.\u062085; xn--ss-e2f077r.xn--85-psd # ssুᷭ.ؠ85
-B; xn--zca266bwrr.xn--85-psd; ß\u09C1\u1DED.\u062085; xn--zca266bwrr.xn--85-psd # ßুᷭ.ؠ85
-T; ß\u09C1\u1DED.\u062085; ; xn--ss-e2f077r.xn--85-psd # ßুᷭ.ؠ85
-N; ß\u09C1\u1DED.\u062085; ; xn--zca266bwrr.xn--85-psd # ßুᷭ.ؠ85
-B; SS\u09C1\u1DED。\u06208₅; ss\u09C1\u1DED.\u062085; xn--ss-e2f077r.xn--85-psd # ssুᷭ.ؠ85
-B; ss\u09C1\u1DED。\u06208₅; ss\u09C1\u1DED.\u062085; xn--ss-e2f077r.xn--85-psd # ssুᷭ.ؠ85
-B; Ss\u09C1\u1DED。\u06208₅; ss\u09C1\u1DED.\u062085; xn--ss-e2f077r.xn--85-psd # ssুᷭ.ؠ85
-T; \u0ACD\u0484魅𝟣.₃𐹥ß; [B1 V5]; [B1 V5] # ્҄魅1.3𐹥ß
-N; \u0ACD\u0484魅𝟣.₃𐹥ß; [B1 V5]; [B1 V5] # ્҄魅1.3𐹥ß
-T; \u0ACD\u0484魅1.3𐹥ß; [B1 V5]; [B1 V5] # ્҄魅1.3𐹥ß
-N; \u0ACD\u0484魅1.3𐹥ß; [B1 V5]; [B1 V5] # ્҄魅1.3𐹥ß
-B; \u0ACD\u0484魅1.3𐹥SS; [B1 V5]; [B1 V5] # ્҄魅1.3𐹥ss
-B; \u0ACD\u0484魅1.3𐹥ss; [B1 V5]; [B1 V5] # ્҄魅1.3𐹥ss
-B; \u0ACD\u0484魅1.3𐹥Ss; [B1 V5]; [B1 V5] # ્҄魅1.3𐹥ss
-B; xn--1-0xb049b102o.xn--3ss-nv9t; [B1 V5]; [B1 V5] # ્҄魅1.3𐹥ss
-B; xn--1-0xb049b102o.xn--3-qfa7018r; [B1 V5]; [B1 V5] # ્҄魅1.3𐹥ß
-B; \u0ACD\u0484魅𝟣.₃𐹥SS; [B1 V5]; [B1 V5] # ્҄魅1.3𐹥ss
-B; \u0ACD\u0484魅𝟣.₃𐹥ss; [B1 V5]; [B1 V5] # ્҄魅1.3𐹥ss
-B; \u0ACD\u0484魅𝟣.₃𐹥Ss; [B1 V5]; [B1 V5] # ્҄魅1.3𐹥ss
-B; \u072B。𑓂⒈𑜫󠿻; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ܫ.𑓂⒈𑜫
-B; \u072B。𑓂1.𑜫󠿻; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ܫ.𑓂1.𑜫
-B; xn--1nb.xn--1-jq9i.xn--ji2dg9877c; [B1 V5 V6]; [B1 V5 V6] # ܫ.𑓂1.𑜫
-B; xn--1nb.xn--tsh7798f6rbrt828c; [B1 V5 V6]; [B1 V5 V6] # ܫ.𑓂⒈𑜫
-B; \uFE0Dછ。嵨; છ.嵨; xn--6dc.xn--tot
-B; xn--6dc.xn--tot; છ.嵨; xn--6dc.xn--tot
-B; છ.嵨; ; xn--6dc.xn--tot
-B; Ⴔ≠Ⴀ.𐹥𐹰; [B1 P1 V6]; [B1 P1 V6]
-B; Ⴔ=\u0338Ⴀ.𐹥𐹰; [B1 P1 V6]; [B1 P1 V6]
-B; ⴔ=\u0338ⴀ.𐹥𐹰; [B1 P1 V6]; [B1 P1 V6]
-B; ⴔ≠ⴀ.𐹥𐹰; [B1 P1 V6]; [B1 P1 V6]
-B; xn--1ch603bxb.xn--do0dwa; [B1 V6]; [B1 V6]
-B; xn--7md3b171g.xn--do0dwa; [B1 V6]; [B1 V6]
-T; -\u200C⒙𐫥。𝨵; [C1 P1 V3 V5 V6]; [P1 V3 V5 V6] # -⒙𐫥.𝨵
-N; -\u200C⒙𐫥。𝨵; [C1 P1 V3 V5 V6]; [C1 P1 V3 V5 V6] # -⒙𐫥.𝨵
-T; -\u200C18.𐫥。𝨵; [C1 V3 V5]; [V3 V5] # -18.𐫥.𝨵
-N; -\u200C18.𐫥。𝨵; [C1 V3 V5]; [C1 V3 V5] # -18.𐫥.𝨵
-B; -18.xn--rx9c.xn--382h; [V3 V5]; [V3 V5]
-B; xn---18-9m0a.xn--rx9c.xn--382h; [C1 V3 V5]; [C1 V3 V5] # -18.𐫥.𝨵
-B; xn----ddps939g.xn--382h; [V3 V5 V6]; [V3 V5 V6]
-B; xn----sgn18r3191a.xn--382h; [C1 V3 V5 V6]; [C1 V3 V5 V6] # -⒙𐫥.𝨵
-B; ︒.ʌᠣ-𐹽; [B1 B5 B6 P1 V6]; [B1 B5 B6 P1 V6]
-B; 。.ʌᠣ-𐹽; [B5 B6 A4_2]; [B5 B6 A4_2]
-B; 。.Ʌᠣ-𐹽; [B5 B6 A4_2]; [B5 B6 A4_2]
-B; ..xn----73a596nuh9t; [B5 B6 A4_2]; [B5 B6 A4_2]
-B; ︒.Ʌᠣ-𐹽; [B1 B5 B6 P1 V6]; [B1 B5 B6 P1 V6]
-B; xn--y86c.xn----73a596nuh9t; [B1 B5 B6 V6]; [B1 B5 B6 V6]
-B; \uFE05︒。𦀾\u1CE0; [P1 V6]; [P1 V6] # ︒.𦀾᳠
-B; \uFE05。。𦀾\u1CE0; [A4_2]; [A4_2] # ..𦀾᳠
-B; ..xn--t6f5138v; [A4_2]; [A4_2] # ..𦀾᳠
-B; xn--y86c.xn--t6f5138v; [V6]; [V6] # ︒.𦀾᳠
-B; xn--t6f5138v; 𦀾\u1CE0; xn--t6f5138v # 𦀾᳠
-B; 𦀾\u1CE0; ; xn--t6f5138v # 𦀾᳠
-T; 𞮑ß􏞞。ᡁ; [B2 B3 P1 V6]; [B2 B3 P1 V6]
-N; 𞮑ß􏞞。ᡁ; [B2 B3 P1 V6]; [B2 B3 P1 V6]
-B; 𞮑SS􏞞。ᡁ; [B2 B3 P1 V6]; [B2 B3 P1 V6]
-B; 𞮑ss􏞞。ᡁ; [B2 B3 P1 V6]; [B2 B3 P1 V6]
-B; 𞮑Ss􏞞。ᡁ; [B2 B3 P1 V6]; [B2 B3 P1 V6]
-B; xn--ss-o412ac6305g.xn--07e; [B2 B3 V6]; [B2 B3 V6]
-B; xn--zca9432wb989f.xn--07e; [B2 B3 V6]; [B2 B3 V6]
-T; \uA953\u200D\u062C\u066C。𱆎󻡟\u200C󠅆; [B5 B6 C1 P1 V5 V6]; [B5 B6 P1 V5 V6] # ꥓ج٬.
-N; \uA953\u200D\u062C\u066C。𱆎󻡟\u200C󠅆; [B5 B6 C1 P1 V5 V6]; [B5 B6 C1 P1 V5 V6] # ꥓ج٬.
-B; xn--rgb2k6711c.xn--ec8nj3948b; [B5 B6 V5 V6]; [B5 B6 V5 V6] # ꥓ج٬.
-B; xn--rgb2k500fhq9j.xn--0ug78870a5sp9d; [B5 B6 C1 V5 V6]; [B5 B6 C1 V5 V6] # ꥓ج٬.
-T; 󠕏.-ß\u200C≠; [C1 P1 V3 V6]; [P1 V3 V6] # .-ß≠
-N; 󠕏.-ß\u200C≠; [C1 P1 V3 V6]; [C1 P1 V3 V6] # .-ß≠
-T; 󠕏.-ß\u200C=\u0338; [C1 P1 V3 V6]; [P1 V3 V6] # .-ß≠
-N; 󠕏.-ß\u200C=\u0338; [C1 P1 V3 V6]; [C1 P1 V3 V6] # .-ß≠
-T; 󠕏.-ß\u200C≠; [C1 P1 V3 V6]; [P1 V3 V6] # .-ß≠
-N; 󠕏.-ß\u200C≠; [C1 P1 V3 V6]; [C1 P1 V3 V6] # .-ß≠
-T; 󠕏.-ß\u200C=\u0338; [C1 P1 V3 V6]; [P1 V3 V6] # .-ß≠
-N; 󠕏.-ß\u200C=\u0338; [C1 P1 V3 V6]; [C1 P1 V3 V6] # .-ß≠
-T; 󠕏.-SS\u200C=\u0338; [C1 P1 V3 V6]; [P1 V3 V6] # .-ss≠
-N; 󠕏.-SS\u200C=\u0338; [C1 P1 V3 V6]; [C1 P1 V3 V6] # .-ss≠
-T; 󠕏.-SS\u200C≠; [C1 P1 V3 V6]; [P1 V3 V6] # .-ss≠
-N; 󠕏.-SS\u200C≠; [C1 P1 V3 V6]; [C1 P1 V3 V6] # .-ss≠
-T; 󠕏.-ss\u200C≠; [C1 P1 V3 V6]; [P1 V3 V6] # .-ss≠
-N; 󠕏.-ss\u200C≠; [C1 P1 V3 V6]; [C1 P1 V3 V6] # .-ss≠
-T; 󠕏.-ss\u200C=\u0338; [C1 P1 V3 V6]; [P1 V3 V6] # .-ss≠
-N; 󠕏.-ss\u200C=\u0338; [C1 P1 V3 V6]; [C1 P1 V3 V6] # .-ss≠
-T; 󠕏.-Ss\u200C=\u0338; [C1 P1 V3 V6]; [P1 V3 V6] # .-ss≠
-N; 󠕏.-Ss\u200C=\u0338; [C1 P1 V3 V6]; [C1 P1 V3 V6] # .-ss≠
-T; 󠕏.-Ss\u200C≠; [C1 P1 V3 V6]; [P1 V3 V6] # .-ss≠
-N; 󠕏.-Ss\u200C≠; [C1 P1 V3 V6]; [C1 P1 V3 V6] # .-ss≠
-B; xn--u836e.xn---ss-gl2a; [V3 V6]; [V3 V6]
-B; xn--u836e.xn---ss-cn0at5l; [C1 V3 V6]; [C1 V3 V6] # .-ss≠
-B; xn--u836e.xn----qfa750ve7b; [C1 V3 V6]; [C1 V3 V6] # .-ß≠
-T; 󠕏.-SS\u200C=\u0338; [C1 P1 V3 V6]; [P1 V3 V6] # .-ss≠
-N; 󠕏.-SS\u200C=\u0338; [C1 P1 V3 V6]; [C1 P1 V3 V6] # .-ss≠
-T; 󠕏.-SS\u200C≠; [C1 P1 V3 V6]; [P1 V3 V6] # .-ss≠
-N; 󠕏.-SS\u200C≠; [C1 P1 V3 V6]; [C1 P1 V3 V6] # .-ss≠
-T; 󠕏.-ss\u200C≠; [C1 P1 V3 V6]; [P1 V3 V6] # .-ss≠
-N; 󠕏.-ss\u200C≠; [C1 P1 V3 V6]; [C1 P1 V3 V6] # .-ss≠
-T; 󠕏.-ss\u200C=\u0338; [C1 P1 V3 V6]; [P1 V3 V6] # .-ss≠
-N; 󠕏.-ss\u200C=\u0338; [C1 P1 V3 V6]; [C1 P1 V3 V6] # .-ss≠
-T; 󠕏.-Ss\u200C=\u0338; [C1 P1 V3 V6]; [P1 V3 V6] # .-ss≠
-N; 󠕏.-Ss\u200C=\u0338; [C1 P1 V3 V6]; [C1 P1 V3 V6] # .-ss≠
-T; 󠕏.-Ss\u200C≠; [C1 P1 V3 V6]; [P1 V3 V6] # .-ss≠
-N; 󠕏.-Ss\u200C≠; [C1 P1 V3 V6]; [C1 P1 V3 V6] # .-ss≠
-T; ᡙ\u200C。≯𐋲≠; [C1 P1 V6]; [P1 V6] # ᡙ.≯𐋲≠
-N; ᡙ\u200C。≯𐋲≠; [C1 P1 V6]; [C1 P1 V6] # ᡙ.≯𐋲≠
-T; ᡙ\u200C。>\u0338𐋲=\u0338; [C1 P1 V6]; [P1 V6] # ᡙ.≯𐋲≠
-N; ᡙ\u200C。>\u0338𐋲=\u0338; [C1 P1 V6]; [C1 P1 V6] # ᡙ.≯𐋲≠
-T; ᡙ\u200C。≯𐋲≠; [C1 P1 V6]; [P1 V6] # ᡙ.≯𐋲≠
-N; ᡙ\u200C。≯𐋲≠; [C1 P1 V6]; [C1 P1 V6] # ᡙ.≯𐋲≠
-T; ᡙ\u200C。>\u0338𐋲=\u0338; [C1 P1 V6]; [P1 V6] # ᡙ.≯𐋲≠
-N; ᡙ\u200C。>\u0338𐋲=\u0338; [C1 P1 V6]; [C1 P1 V6] # ᡙ.≯𐋲≠
-B; xn--p8e.xn--1ch3a7084l; [V6]; [V6]
-B; xn--p8e650b.xn--1ch3a7084l; [C1 V6]; [C1 V6] # ᡙ.≯𐋲≠
-B; 𐹧𞲄󠁭񆼩。\u034E🄀; [B1 P1 V5 V6]; [B1 P1 V5 V6] # 𐹧.͎🄀
-B; 𐹧𞲄󠁭񆼩。\u034E0.; [B1 P1 V5 V6]; [B1 P1 V5 V6] # 𐹧.͎0.
-B; xn--fo0dw409aq58qrn69d.xn--0-bgb.; [B1 V5 V6]; [B1 V5 V6] # 𐹧.͎0.
-B; xn--fo0dw409aq58qrn69d.xn--sua6883w; [B1 V5 V6]; [B1 V5 V6] # 𐹧.͎🄀
-T; Ⴄ.\u200D\u0721󻣋ς; [B1 C2 P1 V6]; [B2 B3 P1 V6] # Ⴄ.ܡς
-N; Ⴄ.\u200D\u0721󻣋ς; [B1 C2 P1 V6]; [B1 C2 P1 V6] # Ⴄ.ܡς
-T; Ⴄ.\u200D\u0721󻣋ς; [B1 C2 P1 V6]; [B2 B3 P1 V6] # Ⴄ.ܡς
-N; Ⴄ.\u200D\u0721󻣋ς; [B1 C2 P1 V6]; [B1 C2 P1 V6] # Ⴄ.ܡς
-T; ⴄ.\u200D\u0721󻣋ς; [B1 C2 P1 V6]; [B2 B3 P1 V6] # ⴄ.ܡς
-N; ⴄ.\u200D\u0721󻣋ς; [B1 C2 P1 V6]; [B1 C2 P1 V6] # ⴄ.ܡς
-T; Ⴄ.\u200D\u0721󻣋Σ; [B1 C2 P1 V6]; [B2 B3 P1 V6] # Ⴄ.ܡσ
-N; Ⴄ.\u200D\u0721󻣋Σ; [B1 C2 P1 V6]; [B1 C2 P1 V6] # Ⴄ.ܡσ
-T; ⴄ.\u200D\u0721󻣋σ; [B1 C2 P1 V6]; [B2 B3 P1 V6] # ⴄ.ܡσ
-N; ⴄ.\u200D\u0721󻣋σ; [B1 C2 P1 V6]; [B1 C2 P1 V6] # ⴄ.ܡσ
-B; xn--vkj.xn--4xa73ob5892c; [B2 B3 V6]; [B2 B3 V6] # ⴄ.ܡσ
-B; xn--vkj.xn--4xa73o3t5ajq467a; [B1 C2 V6]; [B1 C2 V6] # ⴄ.ܡσ
-B; xn--cnd.xn--4xa73ob5892c; [B2 B3 V6]; [B2 B3 V6] # Ⴄ.ܡσ
-B; xn--cnd.xn--4xa73o3t5ajq467a; [B1 C2 V6]; [B1 C2 V6] # Ⴄ.ܡσ
-B; xn--vkj.xn--3xa93o3t5ajq467a; [B1 C2 V6]; [B1 C2 V6] # ⴄ.ܡς
-B; xn--cnd.xn--3xa93o3t5ajq467a; [B1 C2 V6]; [B1 C2 V6] # Ⴄ.ܡς
-T; ⴄ.\u200D\u0721󻣋ς; [B1 C2 P1 V6]; [B2 B3 P1 V6] # ⴄ.ܡς
-N; ⴄ.\u200D\u0721󻣋ς; [B1 C2 P1 V6]; [B1 C2 P1 V6] # ⴄ.ܡς
-T; Ⴄ.\u200D\u0721󻣋Σ; [B1 C2 P1 V6]; [B2 B3 P1 V6] # Ⴄ.ܡσ
-N; Ⴄ.\u200D\u0721󻣋Σ; [B1 C2 P1 V6]; [B1 C2 P1 V6] # Ⴄ.ܡσ
-T; ⴄ.\u200D\u0721󻣋σ; [B1 C2 P1 V6]; [B2 B3 P1 V6] # ⴄ.ܡσ
-N; ⴄ.\u200D\u0721󻣋σ; [B1 C2 P1 V6]; [B1 C2 P1 V6] # ⴄ.ܡσ
-B; 򮵛\u0613.Ⴕ; [P1 V6]; [P1 V6] # ؓ.Ⴕ
-B; 򮵛\u0613.ⴕ; [P1 V6]; [P1 V6] # ؓ.ⴕ
-B; xn--1fb94204l.xn--dlj; [V6]; [V6] # ؓ.ⴕ
-B; xn--1fb94204l.xn--tnd; [V6]; [V6] # ؓ.Ⴕ
-T; ≯\u1DF3𞤥。\u200C\uA8C4󠪉\u200D; [B1 C1 C2 P1 V6]; [B1 P1 V5 V6] # ≯ᷳ𞤥.꣄
-N; ≯\u1DF3𞤥。\u200C\uA8C4󠪉\u200D; [B1 C1 C2 P1 V6]; [B1 C1 C2 P1 V6] # ≯ᷳ𞤥.꣄
-T; >\u0338\u1DF3𞤥。\u200C\uA8C4󠪉\u200D; [B1 C1 C2 P1 V6]; [B1 P1 V5 V6] # ≯ᷳ𞤥.꣄
-N; >\u0338\u1DF3𞤥。\u200C\uA8C4󠪉\u200D; [B1 C1 C2 P1 V6]; [B1 C1 C2 P1 V6] # ≯ᷳ𞤥.꣄
-T; >\u0338\u1DF3𞤃。\u200C\uA8C4󠪉\u200D; [B1 C1 C2 P1 V6]; [B1 P1 V5 V6] # ≯ᷳ𞤥.꣄
-N; >\u0338\u1DF3𞤃。\u200C\uA8C4󠪉\u200D; [B1 C1 C2 P1 V6]; [B1 C1 C2 P1 V6] # ≯ᷳ𞤥.꣄
-T; ≯\u1DF3𞤃。\u200C\uA8C4󠪉\u200D; [B1 C1 C2 P1 V6]; [B1 P1 V5 V6] # ≯ᷳ𞤥.꣄
-N; ≯\u1DF3𞤃。\u200C\uA8C4󠪉\u200D; [B1 C1 C2 P1 V6]; [B1 C1 C2 P1 V6] # ≯ᷳ𞤥.꣄
-B; xn--ofg13qyr21c.xn--0f9au6706d; [B1 V5 V6]; [B1 V5 V6] # ≯ᷳ𞤥.꣄
-B; xn--ofg13qyr21c.xn--0ugc0116hix29k; [B1 C1 C2 V6]; [B1 C1 C2 V6] # ≯ᷳ𞤥.꣄
-T; \u200C󠄷。򒑁; [C1 P1 V6]; [P1 V6 A4_2] # .
-N; \u200C󠄷。򒑁; [C1 P1 V6]; [C1 P1 V6] # .
-T; \u200C󠄷。򒑁; [C1 P1 V6]; [P1 V6 A4_2] # .
-N; \u200C󠄷。򒑁; [C1 P1 V6]; [C1 P1 V6] # .
-B; .xn--w720c; [V6 A4_2]; [V6 A4_2]
-B; xn--0ug.xn--w720c; [C1 V6]; [C1 V6] # .
-T; ⒈\u0DD6焅.󗡙\u200Dꡟ; [C2 P1 V6]; [P1 V6] # ⒈ූ焅.ꡟ
-N; ⒈\u0DD6焅.󗡙\u200Dꡟ; [C2 P1 V6]; [C2 P1 V6] # ⒈ූ焅.ꡟ
-T; 1.\u0DD6焅.󗡙\u200Dꡟ; [C2 P1 V5 V6]; [P1 V5 V6] # 1.ූ焅.ꡟ
-N; 1.\u0DD6焅.󗡙\u200Dꡟ; [C2 P1 V5 V6]; [C2 P1 V5 V6] # 1.ූ焅.ꡟ
-B; 1.xn--t1c6981c.xn--4c9a21133d; [V5 V6]; [V5 V6] # 1.ූ焅.ꡟ
-B; 1.xn--t1c6981c.xn--1ugz184c9lw7i; [C2 V5 V6]; [C2 V5 V6] # 1.ූ焅.ꡟ
-B; xn--t1c337io97c.xn--4c9a21133d; [V6]; [V6] # ⒈ූ焅.ꡟ
-B; xn--t1c337io97c.xn--1ugz184c9lw7i; [C2 V6]; [C2 V6] # ⒈ූ焅.ꡟ
-T; \u1DCDς≮.ς𝪦𞤕0; [B1 B5 P1 V5 V6]; [B1 B5 P1 V5 V6] # ᷍ς≮.ς𝪦𞤷0
-N; \u1DCDς≮.ς𝪦𞤕0; [B1 B5 P1 V5 V6]; [B1 B5 P1 V5 V6] # ᷍ς≮.ς𝪦𞤷0
-T; \u1DCDς<\u0338.ς𝪦𞤕0; [B1 B5 P1 V5 V6]; [B1 B5 P1 V5 V6] # ᷍ς≮.ς𝪦𞤷0
-N; \u1DCDς<\u0338.ς𝪦𞤕0; [B1 B5 P1 V5 V6]; [B1 B5 P1 V5 V6] # ᷍ς≮.ς𝪦𞤷0
-T; \u1DCDς<\u0338.ς𝪦𞤷0; [B1 B5 P1 V5 V6]; [B1 B5 P1 V5 V6] # ᷍ς≮.ς𝪦𞤷0
-N; \u1DCDς<\u0338.ς𝪦𞤷0; [B1 B5 P1 V5 V6]; [B1 B5 P1 V5 V6] # ᷍ς≮.ς𝪦𞤷0
-T; \u1DCDς≮.ς𝪦𞤷0; [B1 B5 P1 V5 V6]; [B1 B5 P1 V5 V6] # ᷍ς≮.ς𝪦𞤷0
-N; \u1DCDς≮.ς𝪦𞤷0; [B1 B5 P1 V5 V6]; [B1 B5 P1 V5 V6] # ᷍ς≮.ς𝪦𞤷0
-B; \u1DCDΣ≮.Σ𝪦𞤕0; [B1 B5 P1 V5 V6]; [B1 B5 P1 V5 V6] # ᷍σ≮.σ𝪦𞤷0
-B; \u1DCDΣ<\u0338.Σ𝪦𞤕0; [B1 B5 P1 V5 V6]; [B1 B5 P1 V5 V6] # ᷍σ≮.σ𝪦𞤷0
-B; \u1DCDσ<\u0338.σ𝪦𞤷0; [B1 B5 P1 V5 V6]; [B1 B5 P1 V5 V6] # ᷍σ≮.σ𝪦𞤷0
-B; \u1DCDσ≮.σ𝪦𞤷0; [B1 B5 P1 V5 V6]; [B1 B5 P1 V5 V6] # ᷍σ≮.σ𝪦𞤷0
-B; \u1DCDΣ≮.Σ𝪦𞤷0; [B1 B5 P1 V5 V6]; [B1 B5 P1 V5 V6] # ᷍σ≮.σ𝪦𞤷0
-B; \u1DCDΣ<\u0338.Σ𝪦𞤷0; [B1 B5 P1 V5 V6]; [B1 B5 P1 V5 V6] # ᷍σ≮.σ𝪦𞤷0
-B; xn--4xa544kvid.xn--0-zmb55727aggma; [B1 B5 V5 V6]; [B1 B5 V5 V6] # ᷍σ≮.σ𝪦𞤷0
-B; xn--3xa744kvid.xn--0-xmb85727aggma; [B1 B5 V5 V6]; [B1 B5 V5 V6] # ᷍ς≮.ς𝪦𞤷0
-B; \u1DCDσ≮.σ𝪦𞤕0; [B1 B5 P1 V5 V6]; [B1 B5 P1 V5 V6] # ᷍σ≮.σ𝪦𞤷0
-B; \u1DCDσ<\u0338.σ𝪦𞤕0; [B1 B5 P1 V5 V6]; [B1 B5 P1 V5 V6] # ᷍σ≮.σ𝪦𞤷0
-T; 򢦾ß\u05B9𐫙.\u05AD\u08A1; [B1 B5 B6 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # ßֹ𐫙.֭ࢡ
-N; 򢦾ß\u05B9𐫙.\u05AD\u08A1; [B1 B5 B6 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # ßֹ𐫙.֭ࢡ
-B; 򢦾SS\u05B9𐫙.\u05AD\u08A1; [B1 B5 B6 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # ssֹ𐫙.֭ࢡ
-B; 򢦾ss\u05B9𐫙.\u05AD\u08A1; [B1 B5 B6 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # ssֹ𐫙.֭ࢡ
-B; 򢦾Ss\u05B9𐫙.\u05AD\u08A1; [B1 B5 B6 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # ssֹ𐫙.֭ࢡ
-B; xn--ss-xjd6058xlz50g.xn--4cb62m; [B1 B5 B6 V5 V6]; [B1 B5 B6 V5 V6] # ssֹ𐫙.֭ࢡ
-B; xn--zca89v339zj118e.xn--4cb62m; [B1 B5 B6 V5 V6]; [B1 B5 B6 V5 V6] # ßֹ𐫙.֭ࢡ
-B; -𞣄。⒈; [B1 P1 V3 V6]; [B1 P1 V3 V6]
-B; -𞣄。1.; [B1 V3]; [B1 V3]
-B; xn----xc8r.1.; [B1 V3]; [B1 V3]
-B; xn----xc8r.xn--tsh; [B1 V3 V6]; [B1 V3 V6]
-B; 񈠢𐫖𝟡。\u063E𑘿; [B5 P1 V6]; [B5 P1 V6] # 𐫖9.ؾ𑘿
-B; 񈠢𐫖9。\u063E𑘿; [B5 P1 V6]; [B5 P1 V6] # 𐫖9.ؾ𑘿
-B; xn--9-el5iv442t.xn--9gb0830l; [B5 V6]; [B5 V6] # 𐫖9.ؾ𑘿
-T; \u0668\uFC8C\u0668\u1A5D.\u200D; [B1 C2]; [B1] # ٨نم٨ᩝ.
-N; \u0668\uFC8C\u0668\u1A5D.\u200D; [B1 C2]; [B1 C2] # ٨نم٨ᩝ.
-T; \u0668\u0646\u0645\u0668\u1A5D.\u200D; [B1 C2]; [B1] # ٨نم٨ᩝ.
-N; \u0668\u0646\u0645\u0668\u1A5D.\u200D; [B1 C2]; [B1 C2] # ٨نم٨ᩝ.
-B; xn--hhbb5hc956w.; [B1]; [B1] # ٨نم٨ᩝ.
-B; xn--hhbb5hc956w.xn--1ug; [B1 C2]; [B1 C2] # ٨نم٨ᩝ.
-B; 𝟘.Ⴇ󀳑\uFD50񫃱; [B1 B5 P1 V6]; [B1 B5 P1 V6] # 0.Ⴇتجم
-B; 0.Ⴇ󀳑\u062A\u062C\u0645񫃱; [B1 B5 P1 V6]; [B1 B5 P1 V6] # 0.Ⴇتجم
-B; 0.ⴇ󀳑\u062A\u062C\u0645񫃱; [B1 B5 P1 V6]; [B1 B5 P1 V6] # 0.ⴇتجم
-B; 0.xn--pgbe9ez79qd207lvff8b; [B1 B5 V6]; [B1 B5 V6] # 0.ⴇتجم
-B; 0.xn--pgbe9e344c2725svff8b; [B1 B5 V6]; [B1 B5 V6] # 0.Ⴇتجم
-B; 𝟘.ⴇ󀳑\uFD50񫃱; [B1 B5 P1 V6]; [B1 B5 P1 V6] # 0.ⴇتجم
-B; 𑇀▍.⁞ᠰ; [V5]; [V5]
-B; xn--9zh3057f.xn--j7e103b; [V5]; [V5]
-T; \u200D-\u067A.򏯩; [B1 C2 P1 V6]; [B1 P1 V3 V6] # -ٺ.
-N; \u200D-\u067A.򏯩; [B1 C2 P1 V6]; [B1 C2 P1 V6] # -ٺ.
-B; xn----qrc.xn--ts49b; [B1 V3 V6]; [B1 V3 V6] # -ٺ.
-B; xn----qrc357q.xn--ts49b; [B1 C2 V6]; [B1 C2 V6] # -ٺ.
-T; ᠢ𐮂𐫘寐。\u200C≯✳; [B1 B5 C1 P1 V6]; [B1 B5 P1 V6] # ᠢ𐮂𐫘寐.≯✳
-N; ᠢ𐮂𐫘寐。\u200C≯✳; [B1 B5 C1 P1 V6]; [B1 B5 C1 P1 V6] # ᠢ𐮂𐫘寐.≯✳
-T; ᠢ𐮂𐫘寐。\u200C>\u0338✳; [B1 B5 C1 P1 V6]; [B1 B5 P1 V6] # ᠢ𐮂𐫘寐.≯✳
-N; ᠢ𐮂𐫘寐。\u200C>\u0338✳; [B1 B5 C1 P1 V6]; [B1 B5 C1 P1 V6] # ᠢ𐮂𐫘寐.≯✳
-T; ᠢ𐮂𐫘寐。\u200C≯✳; [B1 B5 C1 P1 V6]; [B1 B5 P1 V6] # ᠢ𐮂𐫘寐.≯✳
-N; ᠢ𐮂𐫘寐。\u200C≯✳; [B1 B5 C1 P1 V6]; [B1 B5 C1 P1 V6] # ᠢ𐮂𐫘寐.≯✳
-T; ᠢ𐮂𐫘寐。\u200C>\u0338✳; [B1 B5 C1 P1 V6]; [B1 B5 P1 V6] # ᠢ𐮂𐫘寐.≯✳
-N; ᠢ𐮂𐫘寐。\u200C>\u0338✳; [B1 B5 C1 P1 V6]; [B1 B5 C1 P1 V6] # ᠢ𐮂𐫘寐.≯✳
-B; xn--46e6675axzzhota.xn--hdh99p; [B1 B5 V6]; [B1 B5 V6]
-B; xn--46e6675axzzhota.xn--0ug06gu8f; [B1 B5 C1 V6]; [B1 B5 C1 V6] # ᠢ𐮂𐫘寐.≯✳
-T; \u200D。󸲜ႺႴ𞨇; [B1 B5 B6 C2 P1 V6]; [B5 B6 P1 V6 A4_2] # .ႺႴ
-N; \u200D。󸲜ႺႴ𞨇; [B1 B5 B6 C2 P1 V6]; [B1 B5 B6 C2 P1 V6] # .ႺႴ
-T; \u200D。󸲜ႺႴ𞨇; [B1 B5 B6 C2 P1 V6]; [B5 B6 P1 V6 A4_2] # .ႺႴ
-N; \u200D。󸲜ႺႴ𞨇; [B1 B5 B6 C2 P1 V6]; [B1 B5 B6 C2 P1 V6] # .ႺႴ
-T; \u200D。󸲜ⴚⴔ𞨇; [B1 B5 B6 C2 P1 V6]; [B5 B6 P1 V6 A4_2] # .ⴚⴔ
-N; \u200D。󸲜ⴚⴔ𞨇; [B1 B5 B6 C2 P1 V6]; [B1 B5 B6 C2 P1 V6] # .ⴚⴔ
-T; \u200D。󸲜Ⴚⴔ𞨇; [B1 B5 B6 C2 P1 V6]; [B5 B6 P1 V6 A4_2] # .Ⴚⴔ
-N; \u200D。󸲜Ⴚⴔ𞨇; [B1 B5 B6 C2 P1 V6]; [B1 B5 B6 C2 P1 V6] # .Ⴚⴔ
-B; .xn--ynd036lq981an3r4h; [B5 B6 V6 A4_2]; [B5 B6 V6 A4_2]
-B; xn--1ug.xn--ynd036lq981an3r4h; [B1 B5 B6 C2 V6]; [B1 B5 B6 C2 V6] # .Ⴚⴔ
-B; .xn--cljl81825an3r4h; [B5 B6 V6 A4_2]; [B5 B6 V6 A4_2]
-B; xn--1ug.xn--cljl81825an3r4h; [B1 B5 B6 C2 V6]; [B1 B5 B6 C2 V6] # .ⴚⴔ
-B; .xn--sndl01647an3h1h; [B5 B6 V6 A4_2]; [B5 B6 V6 A4_2]
-B; xn--1ug.xn--sndl01647an3h1h; [B1 B5 B6 C2 V6]; [B1 B5 B6 C2 V6] # .ႺႴ
-T; \u200D。󸲜ⴚⴔ𞨇; [B1 B5 B6 C2 P1 V6]; [B5 B6 P1 V6 A4_2] # .ⴚⴔ
-N; \u200D。󸲜ⴚⴔ𞨇; [B1 B5 B6 C2 P1 V6]; [B1 B5 B6 C2 P1 V6] # .ⴚⴔ
-T; \u200D。󸲜Ⴚⴔ𞨇; [B1 B5 B6 C2 P1 V6]; [B5 B6 P1 V6 A4_2] # .Ⴚⴔ
-N; \u200D。󸲜Ⴚⴔ𞨇; [B1 B5 B6 C2 P1 V6]; [B1 B5 B6 C2 P1 V6] # .Ⴚⴔ
-T; -3.\u200Dヌᢕ; [C2 V3]; [V3] # -3.ヌᢕ
-N; -3.\u200Dヌᢕ; [C2 V3]; [C2 V3] # -3.ヌᢕ
-B; -3.xn--fbf115j; [V3]; [V3]
-B; -3.xn--fbf739aq5o; [C2 V3]; [C2 V3] # -3.ヌᢕ
-T; 🂃\u0666ß\u200D。󠠂򭰍𞩒-; [B1 C2 P1 V3 V6]; [B1 P1 V3 V6] # 🂃٦ß.-
-N; 🂃\u0666ß\u200D。󠠂򭰍𞩒-; [B1 C2 P1 V3 V6]; [B1 C2 P1 V3 V6] # 🂃٦ß.-
-T; 🂃\u0666SS\u200D。󠠂򭰍𞩒-; [B1 C2 P1 V3 V6]; [B1 P1 V3 V6] # 🂃٦ss.-
-N; 🂃\u0666SS\u200D。󠠂򭰍𞩒-; [B1 C2 P1 V3 V6]; [B1 C2 P1 V3 V6] # 🂃٦ss.-
-T; 🂃\u0666ss\u200D。󠠂򭰍𞩒-; [B1 C2 P1 V3 V6]; [B1 P1 V3 V6] # 🂃٦ss.-
-N; 🂃\u0666ss\u200D。󠠂򭰍𞩒-; [B1 C2 P1 V3 V6]; [B1 C2 P1 V3 V6] # 🂃٦ss.-
-T; 🂃\u0666Ss\u200D。󠠂򭰍𞩒-; [B1 C2 P1 V3 V6]; [B1 P1 V3 V6] # 🂃٦ss.-
-N; 🂃\u0666Ss\u200D。󠠂򭰍𞩒-; [B1 C2 P1 V3 V6]; [B1 C2 P1 V3 V6] # 🂃٦ss.-
-B; xn--ss-pyd98921c.xn----nz8rh7531csznt; [B1 V3 V6]; [B1 V3 V6] # 🂃٦ss.-
-B; xn--ss-pyd483x5k99b.xn----nz8rh7531csznt; [B1 C2 V3 V6]; [B1 C2 V3 V6] # 🂃٦ss.-
-B; xn--zca34z68yzu83b.xn----nz8rh7531csznt; [B1 C2 V3 V6]; [B1 C2 V3 V6] # 🂃٦ß.-
-T; ꇟ-𐾺\u069F。򰀺\u200C; [B5 B6 C1 P1 V6]; [B5 B6 P1 V6] # ꇟ-ڟ.
-N; ꇟ-𐾺\u069F。򰀺\u200C; [B5 B6 C1 P1 V6]; [B5 B6 C1 P1 V6] # ꇟ-ڟ.
-B; xn----utc4430jd3zd.xn--bp20d; [B5 B6 V6]; [B5 B6 V6] # ꇟ-ڟ.
-B; xn----utc4430jd3zd.xn--0ugx6670i; [B5 B6 C1 V6]; [B5 B6 C1 V6] # ꇟ-ڟ.
-B; \u0665.\u0484𐨗𝩋𴤃; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ٥.҄𐨗𝩋
-B; xn--eib.xn--n3a0405kus8eft5l; [B1 V5 V6]; [B1 V5 V6] # ٥.҄𐨗𝩋
-B; -.񱼓\u0649𐨿; [B1 B5 B6 P1 V3 V6]; [B1 B5 B6 P1 V3 V6] # -.ى𐨿
-B; -.xn--lhb4124khbq4b; [B1 B5 B6 V3 V6]; [B1 B5 B6 V3 V6] # -.ى𐨿
-T; 󾬨ς.𞶙녫ß; [B2 B3 P1 V6]; [B2 B3 P1 V6]
-N; 󾬨ς.𞶙녫ß; [B2 B3 P1 V6]; [B2 B3 P1 V6]
-T; 󾬨ς.𞶙녫ß; [B2 B3 P1 V6]; [B2 B3 P1 V6]
-N; 󾬨ς.𞶙녫ß; [B2 B3 P1 V6]; [B2 B3 P1 V6]
-B; 󾬨Σ.𞶙녫SS; [B2 B3 P1 V6]; [B2 B3 P1 V6]
-B; 󾬨Σ.𞶙녫SS; [B2 B3 P1 V6]; [B2 B3 P1 V6]
-B; 󾬨σ.𞶙녫ss; [B2 B3 P1 V6]; [B2 B3 P1 V6]
-B; 󾬨σ.𞶙녫ss; [B2 B3 P1 V6]; [B2 B3 P1 V6]
-B; 󾬨Σ.𞶙녫Ss; [B2 B3 P1 V6]; [B2 B3 P1 V6]
-B; 󾬨Σ.𞶙녫Ss; [B2 B3 P1 V6]; [B2 B3 P1 V6]
-B; xn--4xa76659r.xn--ss-d64i8755h; [B2 B3 V6]; [B2 B3 V6]
-B; xn--3xa96659r.xn--zca5051g4h4i; [B2 B3 V6]; [B2 B3 V6]
-T; Ⅎ\u17D2\u200D。≠\u200D\u200C; [C1 C2 P1 V6]; [P1 V6] # Ⅎ្.≠
-N; Ⅎ\u17D2\u200D。≠\u200D\u200C; [C1 C2 P1 V6]; [C1 C2 P1 V6] # Ⅎ្.≠
-T; Ⅎ\u17D2\u200D。=\u0338\u200D\u200C; [C1 C2 P1 V6]; [P1 V6] # Ⅎ្.≠
-N; Ⅎ\u17D2\u200D。=\u0338\u200D\u200C; [C1 C2 P1 V6]; [C1 C2 P1 V6] # Ⅎ្.≠
-T; Ⅎ\u17D2\u200D。≠\u200D\u200C; [C1 C2 P1 V6]; [P1 V6] # Ⅎ្.≠
-N; Ⅎ\u17D2\u200D。≠\u200D\u200C; [C1 C2 P1 V6]; [C1 C2 P1 V6] # Ⅎ្.≠
-T; Ⅎ\u17D2\u200D。=\u0338\u200D\u200C; [C1 C2 P1 V6]; [P1 V6] # Ⅎ្.≠
-N; Ⅎ\u17D2\u200D。=\u0338\u200D\u200C; [C1 C2 P1 V6]; [C1 C2 P1 V6] # Ⅎ្.≠
-T; ⅎ\u17D2\u200D。=\u0338\u200D\u200C; [C1 C2 P1 V6]; [P1 V6] # ⅎ្.≠
-N; ⅎ\u17D2\u200D。=\u0338\u200D\u200C; [C1 C2 P1 V6]; [C1 C2 P1 V6] # ⅎ្.≠
-T; ⅎ\u17D2\u200D。≠\u200D\u200C; [C1 C2 P1 V6]; [P1 V6] # ⅎ្.≠
-N; ⅎ\u17D2\u200D。≠\u200D\u200C; [C1 C2 P1 V6]; [C1 C2 P1 V6] # ⅎ្.≠
-B; xn--u4e969b.xn--1ch; [V6]; [V6] # ⅎ្.≠
-B; xn--u4e823bq1a.xn--0ugb89o; [C1 C2 V6]; [C1 C2 V6] # ⅎ្.≠
-B; xn--u4e319b.xn--1ch; [V6]; [V6] # Ⅎ្.≠
-B; xn--u4e823bcza.xn--0ugb89o; [C1 C2 V6]; [C1 C2 V6] # Ⅎ្.≠
-T; ⅎ\u17D2\u200D。=\u0338\u200D\u200C; [C1 C2 P1 V6]; [P1 V6] # ⅎ្.≠
-N; ⅎ\u17D2\u200D。=\u0338\u200D\u200C; [C1 C2 P1 V6]; [C1 C2 P1 V6] # ⅎ្.≠
-T; ⅎ\u17D2\u200D。≠\u200D\u200C; [C1 C2 P1 V6]; [P1 V6] # ⅎ្.≠
-N; ⅎ\u17D2\u200D。≠\u200D\u200C; [C1 C2 P1 V6]; [C1 C2 P1 V6] # ⅎ្.≠
-T; 𐋺\uAAF6\uA953󧦉.\u200C\u1714\u068F; [B1 C1 P1 V6]; [B1 P1 V5 V6] # 𐋺꫶꥓.᜔ڏ
-N; 𐋺\uAAF6\uA953󧦉.\u200C\u1714\u068F; [B1 C1 P1 V6]; [B1 C1 P1 V6] # 𐋺꫶꥓.᜔ڏ
-T; 𐋺\uAAF6\uA953󧦉.\u200C\u1714\u068F; [B1 C1 P1 V6]; [B1 P1 V5 V6] # 𐋺꫶꥓.᜔ڏ
-N; 𐋺\uAAF6\uA953󧦉.\u200C\u1714\u068F; [B1 C1 P1 V6]; [B1 C1 P1 V6] # 𐋺꫶꥓.᜔ڏ
-B; xn--3j9a14ak27osbz2o.xn--ljb175f; [B1 V5 V6]; [B1 V5 V6] # 𐋺꫶꥓.᜔ڏ
-B; xn--3j9a14ak27osbz2o.xn--ljb175f1wg; [B1 C1 V6]; [B1 C1 V6] # 𐋺꫶꥓.᜔ڏ
-B; 񺔯\u0FA8.≯; [P1 V6]; [P1 V6] # ྨ.≯
-B; 񺔯\u0FA8.>\u0338; [P1 V6]; [P1 V6] # ྨ.≯
-B; 񺔯\u0FA8.≯; [P1 V6]; [P1 V6] # ྨ.≯
-B; 񺔯\u0FA8.>\u0338; [P1 V6]; [P1 V6] # ྨ.≯
-B; xn--4fd57150h.xn--hdh; [V6]; [V6] # ྨ.≯
-T; \u200D𞡄Ⴓ.𐇽; [B1 B3 B6 C2 P1 V5 V6]; [B1 B2 B3 B6 P1 V5 V6] # 𞡄Ⴓ.𐇽
-N; \u200D𞡄Ⴓ.𐇽; [B1 B3 B6 C2 P1 V5 V6]; [B1 B3 B6 C2 P1 V5 V6] # 𞡄Ⴓ.𐇽
-T; \u200D𞡄Ⴓ.𐇽; [B1 B3 B6 C2 P1 V5 V6]; [B1 B2 B3 B6 P1 V5 V6] # 𞡄Ⴓ.𐇽
-N; \u200D𞡄Ⴓ.𐇽; [B1 B3 B6 C2 P1 V5 V6]; [B1 B3 B6 C2 P1 V5 V6] # 𞡄Ⴓ.𐇽
-T; \u200D𞡄ⴓ.𐇽; [B1 B3 B6 C2 V5]; [B1 B2 B3 B6 V5] # 𞡄ⴓ.𐇽
-N; \u200D𞡄ⴓ.𐇽; [B1 B3 B6 C2 V5]; [B1 B3 B6 C2 V5] # 𞡄ⴓ.𐇽
-B; xn--blj7492l.xn--m27c; [B1 B2 B3 B6 V5]; [B1 B2 B3 B6 V5]
-B; xn--1ugz52c4i16a.xn--m27c; [B1 B3 B6 C2 V5]; [B1 B3 B6 C2 V5] # 𞡄ⴓ.𐇽
-B; xn--rnd5552v.xn--m27c; [B1 B2 B3 B6 V5 V6]; [B1 B2 B3 B6 V5 V6]
-B; xn--rnd379ex885a.xn--m27c; [B1 B3 B6 C2 V5 V6]; [B1 B3 B6 C2 V5 V6] # 𞡄Ⴓ.𐇽
-T; \u200D𞡄ⴓ.𐇽; [B1 B3 B6 C2 V5]; [B1 B2 B3 B6 V5] # 𞡄ⴓ.𐇽
-N; \u200D𞡄ⴓ.𐇽; [B1 B3 B6 C2 V5]; [B1 B3 B6 C2 V5] # 𞡄ⴓ.𐇽
-T; 𐪒ß\uA8EA.ᡤ; [B2 B3]; [B2 B3] # 𐪒ß꣪.ᡤ
-N; 𐪒ß\uA8EA.ᡤ; [B2 B3]; [B2 B3] # 𐪒ß꣪.ᡤ
-T; 𐪒ß\uA8EA.ᡤ; [B2 B3]; [B2 B3] # 𐪒ß꣪.ᡤ
-N; 𐪒ß\uA8EA.ᡤ; [B2 B3]; [B2 B3] # 𐪒ß꣪.ᡤ
-B; 𐪒SS\uA8EA.ᡤ; [B2 B3]; [B2 B3] # 𐪒ss꣪.ᡤ
-B; 𐪒ss\uA8EA.ᡤ; [B2 B3]; [B2 B3] # 𐪒ss꣪.ᡤ
-B; 𐪒Ss\uA8EA.ᡤ; [B2 B3]; [B2 B3] # 𐪒ss꣪.ᡤ
-B; xn--ss-tu9hw933a.xn--08e; [B2 B3]; [B2 B3] # 𐪒ss꣪.ᡤ
-B; xn--zca2517f2hvc.xn--08e; [B2 B3]; [B2 B3] # 𐪒ß꣪.ᡤ
-B; 𐪒SS\uA8EA.ᡤ; [B2 B3]; [B2 B3] # 𐪒ss꣪.ᡤ
-B; 𐪒ss\uA8EA.ᡤ; [B2 B3]; [B2 B3] # 𐪒ss꣪.ᡤ
-B; 𐪒Ss\uA8EA.ᡤ; [B2 B3]; [B2 B3] # 𐪒ss꣪.ᡤ
-T; 𐨿󠆌鸮𑚶.ς; [V5]; [V5]
-N; 𐨿󠆌鸮𑚶.ς; [V5]; [V5]
-B; 𐨿󠆌鸮𑚶.Σ; [V5]; [V5]
-B; 𐨿󠆌鸮𑚶.σ; [V5]; [V5]
-B; xn--l76a726rt2h.xn--4xa; [V5]; [V5]
-B; xn--l76a726rt2h.xn--3xa; [V5]; [V5]
-B; ⒗𞤬。-𑚶; [B1 P1 V3 V6]; [B1 P1 V3 V6]
-B; 16.𞤬。-𑚶; [B1 V3]; [B1 V3]
-B; 16.𞤊。-𑚶; [B1 V3]; [B1 V3]
-B; 16.xn--ke6h.xn----4j0j; [B1 V3]; [B1 V3]
-B; ⒗𞤊。-𑚶; [B1 P1 V3 V6]; [B1 P1 V3 V6]
-B; xn--8shw466n.xn----4j0j; [B1 V3 V6]; [B1 V3 V6]
-B; \u08B3𞤿⾫。𐹣\u068F⒈; [B1 B2 B3 P1 V6]; [B1 B2 B3 P1 V6] # ࢳ𞤿隹.𐹣ڏ⒈
-B; \u08B3𞤿隹。𐹣\u068F1.; [B1 B2 B3]; [B1 B2 B3] # ࢳ𞤿隹.𐹣ڏ1.
-B; \u08B3𞤝隹。𐹣\u068F1.; [B1 B2 B3]; [B1 B2 B3] # ࢳ𞤿隹.𐹣ڏ1.
-B; xn--8yb0383efiwk.xn--1-wsc3373r.; [B1 B2 B3]; [B1 B2 B3] # ࢳ𞤿隹.𐹣ڏ1.
-B; \u08B3𞤝⾫。𐹣\u068F⒈; [B1 B2 B3 P1 V6]; [B1 B2 B3 P1 V6] # ࢳ𞤿隹.𐹣ڏ⒈
-B; xn--8yb0383efiwk.xn--ljb064mol4n; [B1 B2 B3 V6]; [B1 B2 B3 V6] # ࢳ𞤿隹.𐹣ڏ⒈
-B; \u2433𚎛𝟧\u0661.ᡢ8\u0F72\u0600; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 5١.ᡢ8ི
-B; \u2433𚎛5\u0661.ᡢ8\u0F72\u0600; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 5١.ᡢ8ི
-B; xn--5-bqc410un435a.xn--8-rkc763epjj; [B5 B6 V6]; [B5 B6 V6] # 5١.ᡢ8ི
-B; 𐹠.🄀⒒-󨰈; [B1 P1 V6]; [B1 P1 V6]
-B; 𐹠.0.11.-󨰈; [B1 P1 V3 V6]; [B1 P1 V3 V6]
-B; xn--7n0d.0.11.xn----8j07m; [B1 V3 V6]; [B1 V3 V6]
-B; xn--7n0d.xn----xcp9757q1s13g; [B1 V6]; [B1 V6]
-T; ς-。\u200C𝟭-; [C1 V3]; [V3] # ς-.1-
-N; ς-。\u200C𝟭-; [C1 V3]; [C1 V3] # ς-.1-
-T; ς-。\u200C1-; [C1 V3]; [V3] # ς-.1-
-N; ς-。\u200C1-; [C1 V3]; [C1 V3] # ς-.1-
-T; Σ-。\u200C1-; [C1 V3]; [V3] # σ-.1-
-N; Σ-。\u200C1-; [C1 V3]; [C1 V3] # σ-.1-
-T; σ-。\u200C1-; [C1 V3]; [V3] # σ-.1-
-N; σ-。\u200C1-; [C1 V3]; [C1 V3] # σ-.1-
-B; xn----zmb.1-; [V3]; [V3]
-B; xn----zmb.xn--1--i1t; [C1 V3]; [C1 V3] # σ-.1-
-B; xn----xmb.xn--1--i1t; [C1 V3]; [C1 V3] # ς-.1-
-T; Σ-。\u200C𝟭-; [C1 V3]; [V3] # σ-.1-
-N; Σ-。\u200C𝟭-; [C1 V3]; [C1 V3] # σ-.1-
-T; σ-。\u200C𝟭-; [C1 V3]; [V3] # σ-.1-
-N; σ-。\u200C𝟭-; [C1 V3]; [C1 V3] # σ-.1-
-B; \u1734-\u0CE2.󠄩Ⴄ; [P1 V5 V6]; [P1 V5 V6] # ᜴-ೢ.Ⴄ
-B; \u1734-\u0CE2.󠄩Ⴄ; [P1 V5 V6]; [P1 V5 V6] # ᜴-ೢ.Ⴄ
-B; \u1734-\u0CE2.󠄩ⴄ; [V5]; [V5] # ᜴-ೢ.ⴄ
-B; xn----ggf830f.xn--vkj; [V5]; [V5] # ᜴-ೢ.ⴄ
-B; xn----ggf830f.xn--cnd; [V5 V6]; [V5 V6] # ᜴-ೢ.Ⴄ
-B; \u1734-\u0CE2.󠄩ⴄ; [V5]; [V5] # ᜴-ೢ.ⴄ
-B; 򭈗♋\u06BB𐦥。\u0954⒈; [B1 B5 B6 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # ♋ڻ𐦥.॔⒈
-B; 򭈗♋\u06BB𐦥。\u09541.; [B1 B5 B6 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # ♋ڻ𐦥.॔1.
-B; xn--ukb372n129m3rs7f.xn--1-fyd.; [B1 B5 B6 V5 V6]; [B1 B5 B6 V5 V6] # ♋ڻ𐦥.॔1.
-B; xn--ukb372n129m3rs7f.xn--u3b240l; [B1 B5 B6 V5 V6]; [B1 B5 B6 V5 V6] # ♋ڻ𐦥.॔⒈
-T; \u05A4.\u06C1\u1AB3\u200C; [B1 B3 B6 C1 V5]; [B1 B3 B6 V5] # ֤.ہ᪳
-N; \u05A4.\u06C1\u1AB3\u200C; [B1 B3 B6 C1 V5]; [B1 B3 B6 C1 V5] # ֤.ہ᪳
-T; \u05A4.\u06C1\u1AB3\u200C; [B1 B3 B6 C1 V5]; [B1 B3 B6 V5] # ֤.ہ᪳
-N; \u05A4.\u06C1\u1AB3\u200C; [B1 B3 B6 C1 V5]; [B1 B3 B6 C1 V5] # ֤.ہ᪳
-B; xn--vcb.xn--0kb623h; [B1 B3 B6 V5]; [B1 B3 B6 V5] # ֤.ہ᪳
-B; xn--vcb.xn--0kb623hm1d; [B1 B3 B6 C1 V5]; [B1 B3 B6 C1 V5] # ֤.ہ᪳
-B; 񢭏\u0846≮\u0ACD.𞦊; [B5 B6 P1 V6]; [B5 B6 P1 V6] # ࡆ≮્.
-B; 񢭏\u0846<\u0338\u0ACD.𞦊; [B5 B6 P1 V6]; [B5 B6 P1 V6] # ࡆ≮્.
-B; 񢭏\u0846≮\u0ACD.𞦊; [B5 B6 P1 V6]; [B5 B6 P1 V6] # ࡆ≮્.
-B; 񢭏\u0846<\u0338\u0ACD.𞦊; [B5 B6 P1 V6]; [B5 B6 P1 V6] # ࡆ≮્.
-B; xn--4vb80kq29ayo62l.xn--8g6h; [B5 B6 V6]; [B5 B6 V6] # ࡆ≮્.
-T; \u200D。𞀘⒈ꡍ擉; [C2 P1 V5 V6]; [P1 V5 V6 A4_2] # .𞀘⒈ꡍ擉
-N; \u200D。𞀘⒈ꡍ擉; [C2 P1 V5 V6]; [C2 P1 V5 V6] # .𞀘⒈ꡍ擉
-T; \u200D。𞀘1.ꡍ擉; [C2 V5]; [V5 A4_2] # .𞀘1.ꡍ擉
-N; \u200D。𞀘1.ꡍ擉; [C2 V5]; [C2 V5] # .𞀘1.ꡍ擉
-B; .xn--1-1p4r.xn--s7uv61m; [V5 A4_2]; [V5 A4_2]
-B; xn--1ug.xn--1-1p4r.xn--s7uv61m; [C2 V5]; [C2 V5] # .𞀘1.ꡍ擉
-B; .xn--tsh026uql4bew9p; [V5 V6 A4_2]; [V5 V6 A4_2]
-B; xn--1ug.xn--tsh026uql4bew9p; [C2 V5 V6]; [C2 V5 V6] # .𞀘⒈ꡍ擉
-B; ₈\u07CB.\uFB64≠; [B1 B3 P1 V6]; [B1 B3 P1 V6] # 8ߋ.ٿ≠
-B; ₈\u07CB.\uFB64=\u0338; [B1 B3 P1 V6]; [B1 B3 P1 V6] # 8ߋ.ٿ≠
-B; 8\u07CB.\u067F≠; [B1 B3 P1 V6]; [B1 B3 P1 V6] # 8ߋ.ٿ≠
-B; 8\u07CB.\u067F=\u0338; [B1 B3 P1 V6]; [B1 B3 P1 V6] # 8ߋ.ٿ≠
-B; xn--8-zbd.xn--4ib883l; [B1 B3 V6]; [B1 B3 V6] # 8ߋ.ٿ≠
-B; ᢡ\u07DE򹐣.⒒\u0642𑍦; [B1 B5 P1 V6]; [B1 B5 P1 V6] # ᢡߞ.⒒ق𑍦
-B; ᢡ\u07DE򹐣.11.\u0642𑍦; [B1 B5 P1 V6]; [B1 B5 P1 V6] # ᢡߞ.11.ق𑍦
-B; xn--5sb596fi873t.11.xn--ehb4198k; [B1 B5 V6]; [B1 B5 V6] # ᢡߞ.11.ق𑍦
-B; xn--5sb596fi873t.xn--ehb336mvy7n; [B1 B5 V6]; [B1 B5 V6] # ᢡߞ.⒒ق𑍦
-B; \u0E48-𐹺𝟜.\u0363\u06E1⒏; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ่-𐹺4.ͣۡ⒏
-B; \u0E48-𐹺4.\u0363\u06E18.; [B1 V5]; [B1 V5] # ่-𐹺4.ͣۡ8.
-B; xn---4-owiz479s.xn--8-ihb69x.; [B1 V5]; [B1 V5] # ่-𐹺4.ͣۡ8.
-B; xn---4-owiz479s.xn--eva20pjv9a; [B1 V5 V6]; [B1 V5 V6] # ่-𐹺4.ͣۡ⒏
-B; ⫐。Ⴠ-󃐢; [P1 V6]; [P1 V6]
-B; ⫐。Ⴠ-󃐢; [P1 V6]; [P1 V6]
-B; ⫐。ⴠ-󃐢; [P1 V6]; [P1 V6]
-B; xn--r3i.xn----2wst7439i; [V6]; [V6]
-B; xn--r3i.xn----z1g58579u; [V6]; [V6]
-B; ⫐。ⴠ-󃐢; [P1 V6]; [P1 V6]
-B; 𑑂◊.⦟∠; [V5]; [V5]
-B; 𑑂◊.⦟∠; [V5]; [V5]
-B; xn--01h3338f.xn--79g270a; [V5]; [V5]
-B; 𿌰-\u0662。󋸛ꡂ; [B5 B6 P1 V6]; [B5 B6 P1 V6] # -٢.ꡂ
-B; xn----dqc20828e.xn--bc9an2879c; [B5 B6 V6]; [B5 B6 V6] # -٢.ꡂ
-B; \u0678。󠏬\u0741𞪭𐹪; [B1 P1 V6]; [B1 P1 V6] # يٴ.݁𐹪
-B; \u064A\u0674。󠏬\u0741𞪭𐹪; [B1 P1 V6]; [B1 P1 V6] # يٴ.݁𐹪
-B; xn--mhb8f.xn--oob2585kfdsfsbo7h; [B1 V6]; [B1 V6] # يٴ.݁𐹪
-T; 𐫆ꌄ。\u200Dᣬ; [B1 B2 B3 C2]; [B2 B3] # 𐫆ꌄ.ᣬ
-N; 𐫆ꌄ。\u200Dᣬ; [B1 B2 B3 C2]; [B1 B2 B3 C2] # 𐫆ꌄ.ᣬ
-T; 𐫆ꌄ。\u200Dᣬ; [B1 B2 B3 C2]; [B2 B3] # 𐫆ꌄ.ᣬ
-N; 𐫆ꌄ。\u200Dᣬ; [B1 B2 B3 C2]; [B1 B2 B3 C2] # 𐫆ꌄ.ᣬ
-B; xn--y77ao18q.xn--wdf; [B2 B3]; [B2 B3]
-B; xn--y77ao18q.xn--wdf367a; [B1 B2 B3 C2]; [B1 B2 B3 C2] # 𐫆ꌄ.ᣬ
-B; ₀\u0662。󅪞≯-; [B1 B6 P1 V3 V6]; [B1 B6 P1 V3 V6] # 0٢.≯-
-B; ₀\u0662。󅪞>\u0338-; [B1 B6 P1 V3 V6]; [B1 B6 P1 V3 V6] # 0٢.≯-
-B; 0\u0662。󅪞≯-; [B1 B6 P1 V3 V6]; [B1 B6 P1 V3 V6] # 0٢.≯-
-B; 0\u0662。󅪞>\u0338-; [B1 B6 P1 V3 V6]; [B1 B6 P1 V3 V6] # 0٢.≯-
-B; xn--0-dqc.xn----ogov3342l; [B1 B6 V3 V6]; [B1 B6 V3 V6] # 0٢.≯-
-B; \u031C𐹫-𞯃.𐋤\u0845; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ̜𐹫-.𐋤ࡅ
-B; xn----gdb7046r692g.xn--3vb1349j; [B1 V5 V6]; [B1 V5 V6] # ̜𐹫-.𐋤ࡅ
-B; ≠。𝩑𐹩Ⴡ\u0594; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ≠.𝩑𐹩Ⴡ֔
-B; =\u0338。𝩑𐹩Ⴡ\u0594; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ≠.𝩑𐹩Ⴡ֔
-B; ≠。𝩑𐹩Ⴡ\u0594; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ≠.𝩑𐹩Ⴡ֔
-B; =\u0338。𝩑𐹩Ⴡ\u0594; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ≠.𝩑𐹩Ⴡ֔
-B; =\u0338。𝩑𐹩ⴡ\u0594; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ≠.𝩑𐹩ⴡ֔
-B; ≠。𝩑𐹩ⴡ\u0594; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ≠.𝩑𐹩ⴡ֔
-B; xn--1ch.xn--fcb363rk03mypug; [B1 V5 V6]; [B1 V5 V6] # ≠.𝩑𐹩ⴡ֔
-B; xn--1ch.xn--fcb538c649rypog; [B1 V5 V6]; [B1 V5 V6] # ≠.𝩑𐹩Ⴡ֔
-B; =\u0338。𝩑𐹩ⴡ\u0594; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ≠.𝩑𐹩ⴡ֔
-B; ≠。𝩑𐹩ⴡ\u0594; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ≠.𝩑𐹩ⴡ֔
-B; 𖫳≠.Ⴀ𐮀; [B1 B5 B6 P1 V5 V6]; [B1 B5 B6 P1 V5 V6]
-B; 𖫳=\u0338.Ⴀ𐮀; [B1 B5 B6 P1 V5 V6]; [B1 B5 B6 P1 V5 V6]
-B; 𖫳=\u0338.ⴀ𐮀; [B1 B5 B6 P1 V5 V6]; [B1 B5 B6 P1 V5 V6]
-B; 𖫳≠.ⴀ𐮀; [B1 B5 B6 P1 V5 V6]; [B1 B5 B6 P1 V5 V6]
-B; xn--1ch9250k.xn--rkj6232e; [B1 B5 B6 V5 V6]; [B1 B5 B6 V5 V6]
-B; xn--1ch9250k.xn--7md2659j; [B1 B5 B6 V5 V6]; [B1 B5 B6 V5 V6]
-B; 󠅾\u0736\u0726.ᢚ閪\u08E2𝩟; [B1 B5 B6 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # ܶܦ.ᢚ閪𝩟
-B; 󠅾\u0736\u0726.ᢚ閪\u08E2𝩟; [B1 B5 B6 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # ܶܦ.ᢚ閪𝩟
-B; xn--wnb5a.xn--l0b161fis8gbp5m; [B1 B5 B6 V5 V6]; [B1 B5 B6 V5 V6] # ܶܦ.ᢚ閪𝩟
-T; \u200D󠇜\u06CB\uA8E9。\u20DD\u0FB0-ᛟ; [B1 C2 V5]; [B1 V5] # ۋ꣩.⃝ྰ-ᛟ
-N; \u200D󠇜\u06CB\uA8E9。\u20DD\u0FB0-ᛟ; [B1 C2 V5]; [B1 C2 V5] # ۋ꣩.⃝ྰ-ᛟ
-T; \u200D󠇜\u06CB\uA8E9。\u20DD\u0FB0-ᛟ; [B1 C2 V5]; [B1 V5] # ۋ꣩.⃝ྰ-ᛟ
-N; \u200D󠇜\u06CB\uA8E9。\u20DD\u0FB0-ᛟ; [B1 C2 V5]; [B1 C2 V5] # ۋ꣩.⃝ྰ-ᛟ
-B; xn--blb8114f.xn----gmg236cj6k; [B1 V5]; [B1 V5] # ۋ꣩.⃝ྰ-ᛟ
-B; xn--blb540ke10h.xn----gmg236cj6k; [B1 C2 V5]; [B1 C2 V5] # ۋ꣩.⃝ྰ-ᛟ
-B; 헁󘖙\u0E3A󚍚。\u06BA𝟜; [P1 V6]; [P1 V6] # 헁ฺ.ں4
-B; 헁󘖙\u0E3A󚍚。\u06BA𝟜; [P1 V6]; [P1 V6] # 헁ฺ.ں4
-B; 헁󘖙\u0E3A󚍚。\u06BA4; [P1 V6]; [P1 V6] # 헁ฺ.ں4
-B; 헁󘖙\u0E3A󚍚。\u06BA4; [P1 V6]; [P1 V6] # 헁ฺ.ں4
-B; xn--o4c1723h8g85gt4ya.xn--4-dvc; [V6]; [V6] # 헁ฺ.ں4
-T; 𐹭。󃱂\u200CႾ; [B1 C1 P1 V6]; [B1 P1 V6] # 𐹭.Ⴞ
-N; 𐹭。󃱂\u200CႾ; [B1 C1 P1 V6]; [B1 C1 P1 V6] # 𐹭.Ⴞ
-T; 𐹭。󃱂\u200CႾ; [B1 C1 P1 V6]; [B1 P1 V6] # 𐹭.Ⴞ
-N; 𐹭。󃱂\u200CႾ; [B1 C1 P1 V6]; [B1 C1 P1 V6] # 𐹭.Ⴞ
-T; 𐹭。󃱂\u200Cⴞ; [B1 C1 P1 V6]; [B1 P1 V6] # 𐹭.ⴞ
-N; 𐹭。󃱂\u200Cⴞ; [B1 C1 P1 V6]; [B1 C1 P1 V6] # 𐹭.ⴞ
-B; xn--lo0d.xn--mljx1099g; [B1 V6]; [B1 V6]
-B; xn--lo0d.xn--0ugx72cwi33v; [B1 C1 V6]; [B1 C1 V6] # 𐹭.ⴞ
-B; xn--lo0d.xn--2nd75260n; [B1 V6]; [B1 V6]
-B; xn--lo0d.xn--2nd949eqw95u; [B1 C1 V6]; [B1 C1 V6] # 𐹭.Ⴞ
-T; 𐹭。󃱂\u200Cⴞ; [B1 C1 P1 V6]; [B1 P1 V6] # 𐹭.ⴞ
-N; 𐹭。󃱂\u200Cⴞ; [B1 C1 P1 V6]; [B1 C1 P1 V6] # 𐹭.ⴞ
-B; \uA953.\u033D𑂽馋; [P1 V5 V6]; [P1 V5 V6] # ꥓.̽馋
-B; xn--3j9a.xn--bua0708eqzrd; [V5 V6]; [V5 V6] # ꥓.̽馋
-T; 󈫝򪛸\u200D。䜖; [C2 P1 V6]; [P1 V6] # .䜖
-N; 󈫝򪛸\u200D。䜖; [C2 P1 V6]; [C2 P1 V6] # .䜖
-T; 󈫝򪛸\u200D。䜖; [C2 P1 V6]; [P1 V6] # .䜖
-N; 󈫝򪛸\u200D。䜖; [C2 P1 V6]; [C2 P1 V6] # .䜖
-B; xn--g138cxw05a.xn--k0o; [V6]; [V6]
-B; xn--1ug30527h9mxi.xn--k0o; [C2 V6]; [C2 V6] # .䜖
-T; ᡯ⚉姶🄉.۷\u200D🎪\u200D; [C2 P1 V6]; [P1 V6] # ᡯ⚉姶🄉.۷🎪
-N; ᡯ⚉姶🄉.۷\u200D🎪\u200D; [C2 P1 V6]; [C2 P1 V6] # ᡯ⚉姶🄉.۷🎪
-T; ᡯ⚉姶8,.۷\u200D🎪\u200D; [C2 P1 V6]; [P1 V6] # ᡯ⚉姶8,.۷🎪
-N; ᡯ⚉姶8,.۷\u200D🎪\u200D; [C2 P1 V6]; [C2 P1 V6] # ᡯ⚉姶8,.۷🎪
-B; xn--8,-g9oy26fzu4d.xn--kmb6733w; [P1 V6]; [P1 V6]
-B; xn--8,-g9oy26fzu4d.xn--kmb859ja94998b; [C2 P1 V6]; [C2 P1 V6] # ᡯ⚉姶8,.۷🎪
-B; xn--c9e433epi4b3j20a.xn--kmb6733w; [V6]; [V6]
-B; xn--c9e433epi4b3j20a.xn--kmb859ja94998b; [C2 V6]; [C2 V6] # ᡯ⚉姶🄉.۷🎪
-B; 𞽀.𐹸🚖\u0E3A; [B1 P1 V6]; [B1 P1 V6] # .𐹸🚖ฺ
-B; xn--0n7h.xn--o4c9032klszf; [B1 V6]; [B1 V6] # .𐹸🚖ฺ
-B; Ⴔᠵ。𐹧\u0747۹; [B1 P1 V6]; [B1 P1 V6] # Ⴔᠵ.𐹧݇۹
-B; Ⴔᠵ。𐹧\u0747۹; [B1 P1 V6]; [B1 P1 V6] # Ⴔᠵ.𐹧݇۹
-B; ⴔᠵ。𐹧\u0747۹; [B1]; [B1] # ⴔᠵ.𐹧݇۹
-B; xn--o7e997h.xn--mmb9ml895e; [B1]; [B1] # ⴔᠵ.𐹧݇۹
-B; xn--snd659a.xn--mmb9ml895e; [B1 V6]; [B1 V6] # Ⴔᠵ.𐹧݇۹
-B; ⴔᠵ。𐹧\u0747۹; [B1]; [B1] # ⴔᠵ.𐹧݇۹
-T; \u135Fᡈ\u200C.︒-𖾐-; [C1 P1 V3 V5 V6]; [P1 V3 V5 V6] # ፟ᡈ.︒-𖾐-
-N; \u135Fᡈ\u200C.︒-𖾐-; [C1 P1 V3 V5 V6]; [C1 P1 V3 V5 V6] # ፟ᡈ.︒-𖾐-
-T; \u135Fᡈ\u200C.。-𖾐-; [C1 V3 V5 A4_2]; [V3 V5 A4_2] # ፟ᡈ..-𖾐-
-N; \u135Fᡈ\u200C.。-𖾐-; [C1 V3 V5 A4_2]; [C1 V3 V5 A4_2] # ፟ᡈ..-𖾐-
-B; xn--b7d82w..xn-----pe4u; [V3 V5 A4_2]; [V3 V5 A4_2] # ፟ᡈ..-𖾐-
-B; xn--b7d82wo4h..xn-----pe4u; [C1 V3 V5 A4_2]; [C1 V3 V5 A4_2] # ፟ᡈ..-𖾐-
-B; xn--b7d82w.xn-----c82nz547a; [V3 V5 V6]; [V3 V5 V6] # ፟ᡈ.︒-𖾐-
-B; xn--b7d82wo4h.xn-----c82nz547a; [C1 V3 V5 V6]; [C1 V3 V5 V6] # ፟ᡈ.︒-𖾐-
-T; ⒈\u0601⒖\u200C.\u1DF0\u07DB; [B1 C1 P1 V5 V6]; [B1 P1 V5 V6] # ⒈⒖.ᷰߛ
-N; ⒈\u0601⒖\u200C.\u1DF0\u07DB; [B1 C1 P1 V5 V6]; [B1 C1 P1 V5 V6] # ⒈⒖.ᷰߛ
-T; 1.\u060115.\u200C.\u1DF0\u07DB; [B1 C1 P1 V5 V6]; [B1 P1 V5 V6 A4_2] # 1.15..ᷰߛ
-N; 1.\u060115.\u200C.\u1DF0\u07DB; [B1 C1 P1 V5 V6]; [B1 C1 P1 V5 V6] # 1.15..ᷰߛ
-B; 1.xn--15-1pd..xn--2sb914i; [B1 V5 V6 A4_2]; [B1 V5 V6 A4_2] # 1.15..ᷰߛ
-B; 1.xn--15-1pd.xn--0ug.xn--2sb914i; [B1 C1 V5 V6]; [B1 C1 V5 V6] # 1.15..ᷰߛ
-B; xn--jfb347mib.xn--2sb914i; [B1 V5 V6]; [B1 V5 V6] # ⒈⒖.ᷰߛ
-B; xn--jfb844kmfdwb.xn--2sb914i; [B1 C1 V5 V6]; [B1 C1 V5 V6] # ⒈⒖.ᷰߛ
-B; 𝩜。-\u0B4DႫ; [P1 V3 V5 V6]; [P1 V3 V5 V6] # 𝩜.-୍Ⴋ
-B; 𝩜。-\u0B4Dⴋ; [V3 V5]; [V3 V5] # 𝩜.-୍ⴋ
-B; xn--792h.xn----bse820x; [V3 V5]; [V3 V5] # 𝩜.-୍ⴋ
-B; xn--792h.xn----bse632b; [V3 V5 V6]; [V3 V5 V6] # 𝩜.-୍Ⴋ
-T; ßჀ.\u0620刯Ⴝ; [B2 B3 P1 V6]; [B2 B3 P1 V6] # ßჀ.ؠ刯Ⴝ
-N; ßჀ.\u0620刯Ⴝ; [B2 B3 P1 V6]; [B2 B3 P1 V6] # ßჀ.ؠ刯Ⴝ
-T; ßⴠ.\u0620刯ⴝ; [B2 B3]; [B2 B3] # ßⴠ.ؠ刯ⴝ
-N; ßⴠ.\u0620刯ⴝ; [B2 B3]; [B2 B3] # ßⴠ.ؠ刯ⴝ
-B; SSჀ.\u0620刯Ⴝ; [B2 B3 P1 V6]; [B2 B3 P1 V6] # ssჀ.ؠ刯Ⴝ
-B; ssⴠ.\u0620刯ⴝ; [B2 B3]; [B2 B3] # ssⴠ.ؠ刯ⴝ
-B; Ssⴠ.\u0620刯Ⴝ; [B2 B3 P1 V6]; [B2 B3 P1 V6] # ssⴠ.ؠ刯Ⴝ
-B; xn--ss-j81a.xn--fgb845cb66c; [B2 B3 V6]; [B2 B3 V6] # ssⴠ.ؠ刯Ⴝ
-B; xn--ss-j81a.xn--fgb670rovy; [B2 B3]; [B2 B3] # ssⴠ.ؠ刯ⴝ
-B; xn--ss-wgk.xn--fgb845cb66c; [B2 B3 V6]; [B2 B3 V6] # ssჀ.ؠ刯Ⴝ
-B; xn--zca277t.xn--fgb670rovy; [B2 B3]; [B2 B3] # ßⴠ.ؠ刯ⴝ
-B; xn--zca442f.xn--fgb845cb66c; [B2 B3 V6]; [B2 B3 V6] # ßჀ.ؠ刯Ⴝ
-B; \u1BAAႣℲ。ᠳ툻\u0673; [B5 B6 P1 V5 V6]; [B5 B6 P1 V5 V6] # ᮪ႣℲ.ᠳ툻ٳ
-B; \u1BAAႣℲ。ᠳ툻\u0673; [B5 B6 P1 V5 V6]; [B5 B6 P1 V5 V6] # ᮪ႣℲ.ᠳ툻ٳ
-B; \u1BAAႣℲ。ᠳ툻\u0673; [B5 B6 P1 V5 V6]; [B5 B6 P1 V5 V6] # ᮪ႣℲ.ᠳ툻ٳ
-B; \u1BAAႣℲ。ᠳ툻\u0673; [B5 B6 P1 V5 V6]; [B5 B6 P1 V5 V6] # ᮪ႣℲ.ᠳ툻ٳ
-B; \u1BAAⴃⅎ。ᠳ툻\u0673; [B5 B6 V5]; [B5 B6 V5] # ᮪ⴃⅎ.ᠳ툻ٳ
-B; \u1BAAⴃⅎ。ᠳ툻\u0673; [B5 B6 V5]; [B5 B6 V5] # ᮪ⴃⅎ.ᠳ툻ٳ
-B; \u1BAAႣⅎ。ᠳ툻\u0673; [B5 B6 P1 V5 V6]; [B5 B6 P1 V5 V6] # ᮪Ⴃⅎ.ᠳ툻ٳ
-B; \u1BAAႣⅎ。ᠳ툻\u0673; [B5 B6 P1 V5 V6]; [B5 B6 P1 V5 V6] # ᮪Ⴃⅎ.ᠳ툻ٳ
-B; xn--bnd957c2pe.xn--sib102gc69k; [B5 B6 V5 V6]; [B5 B6 V5 V6] # ᮪Ⴃⅎ.ᠳ툻ٳ
-B; xn--yxf24x4ol.xn--sib102gc69k; [B5 B6 V5]; [B5 B6 V5] # ᮪ⴃⅎ.ᠳ툻ٳ
-B; xn--bnd957cone.xn--sib102gc69k; [B5 B6 V5 V6]; [B5 B6 V5 V6] # ᮪ႣℲ.ᠳ툻ٳ
-B; \u1BAAⴃⅎ。ᠳ툻\u0673; [B5 B6 V5]; [B5 B6 V5] # ᮪ⴃⅎ.ᠳ툻ٳ
-B; \u1BAAⴃⅎ。ᠳ툻\u0673; [B5 B6 V5]; [B5 B6 V5] # ᮪ⴃⅎ.ᠳ툻ٳ
-B; \u1BAAႣⅎ。ᠳ툻\u0673; [B5 B6 P1 V5 V6]; [B5 B6 P1 V5 V6] # ᮪Ⴃⅎ.ᠳ툻ٳ
-B; \u1BAAႣⅎ。ᠳ툻\u0673; [B5 B6 P1 V5 V6]; [B5 B6 P1 V5 V6] # ᮪Ⴃⅎ.ᠳ툻ٳ
-B; \u06EC.\u08A2𐹫\u067C; [B1 B3 B6 V5]; [B1 B3 B6 V5] # ۬.ࢢ𐹫ټ
-B; xn--8lb.xn--1ib31ily45b; [B1 B3 B6 V5]; [B1 B3 B6 V5] # ۬.ࢢ𐹫ټ
-B; \u06B6\u06DF。₇\uA806; [B1]; [B1] # ڶ۟.7꠆
-B; \u06B6\u06DF。7\uA806; [B1]; [B1] # ڶ۟.7꠆
-B; xn--pkb6f.xn--7-x93e; [B1]; [B1] # ڶ۟.7꠆
-B; \u06B6\u06DF.7\uA806; [B1]; [B1] # ڶ۟.7꠆
-T; Ⴣ𐹻.\u200C𝪣≮󠩉; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 P1 V5 V6] # Ⴣ𐹻.𝪣≮
-N; Ⴣ𐹻.\u200C𝪣≮󠩉; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 C1 P1 V6] # Ⴣ𐹻.𝪣≮
-T; Ⴣ𐹻.\u200C𝪣<\u0338󠩉; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 P1 V5 V6] # Ⴣ𐹻.𝪣≮
-N; Ⴣ𐹻.\u200C𝪣<\u0338󠩉; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 C1 P1 V6] # Ⴣ𐹻.𝪣≮
-T; ⴣ𐹻.\u200C𝪣<\u0338󠩉; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 P1 V5 V6] # ⴣ𐹻.𝪣≮
-N; ⴣ𐹻.\u200C𝪣<\u0338󠩉; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 C1 P1 V6] # ⴣ𐹻.𝪣≮
-T; ⴣ𐹻.\u200C𝪣≮󠩉; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 P1 V5 V6] # ⴣ𐹻.𝪣≮
-N; ⴣ𐹻.\u200C𝪣≮󠩉; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 C1 P1 V6] # ⴣ𐹻.𝪣≮
-B; xn--rlj6323e.xn--gdh4944ob3x3e; [B1 B5 B6 V5 V6]; [B1 B5 B6 V5 V6]
-B; xn--rlj6323e.xn--0ugy6gn120eb103g; [B1 B5 B6 C1 V6]; [B1 B5 B6 C1 V6] # ⴣ𐹻.𝪣≮
-B; xn--7nd8101k.xn--gdh4944ob3x3e; [B1 B5 B6 V5 V6]; [B1 B5 B6 V5 V6]
-B; xn--7nd8101k.xn--0ugy6gn120eb103g; [B1 B5 B6 C1 V6]; [B1 B5 B6 C1 V6] # Ⴣ𐹻.𝪣≮
-T; 𝟵隁⯮.\u180D\u200C; [C1]; xn--9-mfs8024b. # 9隁⯮.
-N; 𝟵隁⯮.\u180D\u200C; [C1]; [C1] # 9隁⯮.
-T; 9隁⯮.\u180D\u200C; [C1]; xn--9-mfs8024b. # 9隁⯮.
-N; 9隁⯮.\u180D\u200C; [C1]; [C1] # 9隁⯮.
-B; xn--9-mfs8024b.; 9隁⯮.; xn--9-mfs8024b.; NV8
-B; 9隁⯮.; ; xn--9-mfs8024b.; NV8
-B; xn--9-mfs8024b.xn--0ug; [C1]; [C1] # 9隁⯮.
-B; ⒏𐹧。Ⴣ\u0F84彦; [B1 P1 V6]; [B1 P1 V6] # ⒏𐹧.Ⴣ྄彦
-B; 8.𐹧。Ⴣ\u0F84彦; [B1 P1 V6]; [B1 P1 V6] # 8.𐹧.Ⴣ྄彦
-B; 8.𐹧。ⴣ\u0F84彦; [B1]; [B1] # 8.𐹧.ⴣ྄彦
-B; 8.xn--fo0d.xn--3ed972m6o8a; [B1]; [B1] # 8.𐹧.ⴣ྄彦
-B; 8.xn--fo0d.xn--3ed15dt93o; [B1 V6]; [B1 V6] # 8.𐹧.Ⴣ྄彦
-B; ⒏𐹧。ⴣ\u0F84彦; [B1 P1 V6]; [B1 P1 V6] # ⒏𐹧.ⴣ྄彦
-B; xn--0sh2466f.xn--3ed972m6o8a; [B1 V6]; [B1 V6] # ⒏𐹧.ⴣ྄彦
-B; xn--0sh2466f.xn--3ed15dt93o; [B1 V6]; [B1 V6] # ⒏𐹧.Ⴣ྄彦
-B; -问񬰔⒛。\u0604-񜗉橬; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -问⒛.-橬
-B; -问񬰔20.。\u0604-񜗉橬; [B1 P1 V3 V6 A4_2]; [B1 P1 V3 V6 A4_2] # -问20..-橬
-B; xn---20-658jx1776d..xn----ykc7228efm46d; [B1 V3 V6 A4_2]; [B1 V3 V6 A4_2] # -问20..-橬
-B; xn----hdpu849bhis3e.xn----ykc7228efm46d; [B1 V3 V6]; [B1 V3 V6] # -问⒛.-橬
-T; \u1BACႬ\u200C\u0325。𝟸; [C1 P1 V5 V6]; [P1 V5 V6] # ᮬႬ̥.2
-N; \u1BACႬ\u200C\u0325。𝟸; [C1 P1 V5 V6]; [C1 P1 V5 V6] # ᮬႬ̥.2
-T; \u1BACႬ\u200C\u0325。2; [C1 P1 V5 V6]; [P1 V5 V6] # ᮬႬ̥.2
-N; \u1BACႬ\u200C\u0325。2; [C1 P1 V5 V6]; [C1 P1 V5 V6] # ᮬႬ̥.2
-T; \u1BACⴌ\u200C\u0325。2; [C1 V5]; [V5] # ᮬⴌ̥.2
-N; \u1BACⴌ\u200C\u0325。2; [C1 V5]; [C1 V5] # ᮬⴌ̥.2
-B; xn--mta176jjjm.2; [V5]; [V5] # ᮬⴌ̥.2
-B; xn--mta176j97cl2q.2; [C1 V5]; [C1 V5] # ᮬⴌ̥.2
-B; xn--mta930emri.2; [V5 V6]; [V5 V6] # ᮬႬ̥.2
-B; xn--mta930emribme.2; [C1 V5 V6]; [C1 V5 V6] # ᮬႬ̥.2
-T; \u1BACⴌ\u200C\u0325。𝟸; [C1 V5]; [V5] # ᮬⴌ̥.2
-N; \u1BACⴌ\u200C\u0325。𝟸; [C1 V5]; [C1 V5] # ᮬⴌ̥.2
-B; \uDC5F。\uA806\u0669󠒩; [B1 P1 V5 V6]; [B1 P1 V5 V6 A3] # .꠆٩
-B; \uDC5F.xn--iib9583fusy0i; [B1 P1 V5 V6]; [B1 P1 V5 V6 A3] # .꠆٩
-B; \uDC5F.XN--IIB9583FUSY0I; [B1 P1 V5 V6]; [B1 P1 V5 V6 A3] # .꠆٩
-B; \uDC5F.Xn--Iib9583fusy0i; [B1 P1 V5 V6]; [B1 P1 V5 V6 A3] # .꠆٩
-B; 󠄁\u035F⾶。₇︒눇≮; [P1 V5 V6]; [P1 V5 V6] # ͟飛.7︒눇≮
-B; 󠄁\u035F⾶。₇︒눇<\u0338; [P1 V5 V6]; [P1 V5 V6] # ͟飛.7︒눇≮
-B; 󠄁\u035F飛。7。눇≮; [P1 V5 V6]; [P1 V5 V6] # ͟飛.7.눇≮
-B; 󠄁\u035F飛。7。눇<\u0338; [P1 V5 V6]; [P1 V5 V6] # ͟飛.7.눇≮
-B; xn--9ua0567e.7.xn--gdh6767c; [V5 V6]; [V5 V6] # ͟飛.7.눇≮
-B; xn--9ua0567e.xn--7-ngou006d1ttc; [V5 V6]; [V5 V6] # ͟飛.7︒눇≮
-T; \u200C\uFE09𐹴\u200D.\u200C⿃; [B1 C1 C2]; [B1] # 𐹴.鳥
-N; \u200C\uFE09𐹴\u200D.\u200C⿃; [B1 C1 C2]; [B1 C1 C2] # 𐹴.鳥
-T; \u200C\uFE09𐹴\u200D.\u200C鳥; [B1 C1 C2]; [B1] # 𐹴.鳥
-N; \u200C\uFE09𐹴\u200D.\u200C鳥; [B1 C1 C2]; [B1 C1 C2] # 𐹴.鳥
-B; xn--so0d.xn--6x6a; [B1]; [B1]
-B; xn--0ugc6024p.xn--0ug1920c; [B1 C1 C2]; [B1 C1 C2] # 𐹴.鳥
-T; 🍮.\u200D󠗒𐦁𝨝; [B1 C2 P1 V6]; [B1 P1 V6] # 🍮.𐦁𝨝
-N; 🍮.\u200D󠗒𐦁𝨝; [B1 C2 P1 V6]; [B1 C2 P1 V6] # 🍮.𐦁𝨝
-T; 🍮.\u200D󠗒𐦁𝨝; [B1 C2 P1 V6]; [B1 P1 V6] # 🍮.𐦁𝨝
-N; 🍮.\u200D󠗒𐦁𝨝; [B1 C2 P1 V6]; [B1 C2 P1 V6] # 🍮.𐦁𝨝
-B; xn--lj8h.xn--ln9ci476aqmr2g; [B1 V6]; [B1 V6]
-B; xn--lj8h.xn--1ug6603gr1pfwq37h; [B1 C2 V6]; [B1 C2 V6] # 🍮.𐦁𝨝
-T; \u067D\u0943.𞤓\u200D; [B3 C2]; xn--2ib43l.xn--te6h # ٽृ.𞤵
-N; \u067D\u0943.𞤓\u200D; [B3 C2]; [B3 C2] # ٽृ.𞤵
-T; \u067D\u0943.𞤵\u200D; [B3 C2]; xn--2ib43l.xn--te6h # ٽृ.𞤵
-N; \u067D\u0943.𞤵\u200D; [B3 C2]; [B3 C2] # ٽृ.𞤵
-B; xn--2ib43l.xn--te6h; \u067D\u0943.𞤵; xn--2ib43l.xn--te6h # ٽृ.𞤵
-B; \u067D\u0943.𞤵; ; xn--2ib43l.xn--te6h # ٽृ.𞤵
-B; \u067D\u0943.𞤓; \u067D\u0943.𞤵; xn--2ib43l.xn--te6h # ٽृ.𞤵
-B; xn--2ib43l.xn--1ugy711p; [B3 C2]; [B3 C2] # ٽृ.𞤵
-B; \u0664\u0A4D-.󥜽\u1039񦦐; [B1 P1 V3 V6]; [B1 P1 V3 V6] # ٤੍-.္
-B; \u0664\u0A4D-.󥜽\u1039񦦐; [B1 P1 V3 V6]; [B1 P1 V3 V6] # ٤੍-.္
-B; xn----gqc711a.xn--9jd88234f3qm0b; [B1 V3 V6]; [B1 V3 V6] # ٤੍-.္
-T; 4\u103A-𐹸。\uAA29\u200C𐹴≮; [B1 C1 P1 V5 V6]; [B1 P1 V5 V6] # 4်-𐹸.ꨩ𐹴≮
-N; 4\u103A-𐹸。\uAA29\u200C𐹴≮; [B1 C1 P1 V5 V6]; [B1 C1 P1 V5 V6] # 4်-𐹸.ꨩ𐹴≮
-T; 4\u103A-𐹸。\uAA29\u200C𐹴<\u0338; [B1 C1 P1 V5 V6]; [B1 P1 V5 V6] # 4်-𐹸.ꨩ𐹴≮
-N; 4\u103A-𐹸。\uAA29\u200C𐹴<\u0338; [B1 C1 P1 V5 V6]; [B1 C1 P1 V5 V6] # 4်-𐹸.ꨩ𐹴≮
-T; 4\u103A-𐹸。\uAA29\u200C𐹴≮; [B1 C1 P1 V5 V6]; [B1 P1 V5 V6] # 4်-𐹸.ꨩ𐹴≮
-N; 4\u103A-𐹸。\uAA29\u200C𐹴≮; [B1 C1 P1 V5 V6]; [B1 C1 P1 V5 V6] # 4်-𐹸.ꨩ𐹴≮
-T; 4\u103A-𐹸。\uAA29\u200C𐹴<\u0338; [B1 C1 P1 V5 V6]; [B1 P1 V5 V6] # 4်-𐹸.ꨩ𐹴≮
-N; 4\u103A-𐹸。\uAA29\u200C𐹴<\u0338; [B1 C1 P1 V5 V6]; [B1 C1 P1 V5 V6] # 4်-𐹸.ꨩ𐹴≮
-B; xn--4--e4j7831r.xn--gdh8754cz40c; [B1 V5 V6]; [B1 V5 V6] # 4်-𐹸.ꨩ𐹴≮
-B; xn--4--e4j7831r.xn--0ugy6gjy5sl3ud; [B1 C1 V5 V6]; [B1 C1 V5 V6] # 4်-𐹸.ꨩ𐹴≮
-T; \u200C。\uFFA0\u0F84\u0F96; [C1 P1 V6]; [P1 V6 A4_2] # .྄ྖ
-N; \u200C。\uFFA0\u0F84\u0F96; [C1 P1 V6]; [C1 P1 V6] # .྄ྖ
-T; \u200C。\u1160\u0F84\u0F96; [C1 P1 V6]; [P1 V6 A4_2] # .྄ྖ
-N; \u200C。\u1160\u0F84\u0F96; [C1 P1 V6]; [C1 P1 V6] # .྄ྖ
-B; .xn--3ed0b20h; [V6 A4_2]; [V6 A4_2] # .྄ྖ
-B; xn--0ug.xn--3ed0b20h; [C1 V6]; [C1 V6] # .྄ྖ
-B; .xn--3ed0by082k; [V6 A4_2]; [V6 A4_2] # .྄ྖ
-B; xn--0ug.xn--3ed0by082k; [C1 V6]; [C1 V6] # .྄ྖ
-T; ≯򍘅.\u200D𐅼򲇛; [C2 P1 V6]; [P1 V6] # ≯.𐅼
-N; ≯򍘅.\u200D𐅼򲇛; [C2 P1 V6]; [C2 P1 V6] # ≯.𐅼
-T; >\u0338򍘅.\u200D𐅼򲇛; [C2 P1 V6]; [P1 V6] # ≯.𐅼
-N; >\u0338򍘅.\u200D𐅼򲇛; [C2 P1 V6]; [C2 P1 V6] # ≯.𐅼
-T; ≯򍘅.\u200D𐅼򲇛; [C2 P1 V6]; [P1 V6] # ≯.𐅼
-N; ≯򍘅.\u200D𐅼򲇛; [C2 P1 V6]; [C2 P1 V6] # ≯.𐅼
-T; >\u0338򍘅.\u200D𐅼򲇛; [C2 P1 V6]; [P1 V6] # ≯.𐅼
-N; >\u0338򍘅.\u200D𐅼򲇛; [C2 P1 V6]; [C2 P1 V6] # ≯.𐅼
-B; xn--hdh84488f.xn--xy7cw2886b; [V6]; [V6]
-B; xn--hdh84488f.xn--1ug8099fbjp4e; [C2 V6]; [C2 V6] # ≯.𐅼
-T; \u0641ß𐰯。𝟕𐫫; [B1 B2]; [B1 B2] # فß𐰯.7𐫫
-N; \u0641ß𐰯。𝟕𐫫; [B1 B2]; [B1 B2] # فß𐰯.7𐫫
-T; \u0641ß𐰯。7𐫫; [B1 B2]; [B1 B2] # فß𐰯.7𐫫
-N; \u0641ß𐰯。7𐫫; [B1 B2]; [B1 B2] # فß𐰯.7𐫫
-B; \u0641SS𐰯。7𐫫; [B1 B2]; [B1 B2] # فss𐰯.7𐫫
-B; \u0641ss𐰯。7𐫫; [B1 B2]; [B1 B2] # فss𐰯.7𐫫
-B; \u0641Ss𐰯。7𐫫; [B1 B2]; [B1 B2] # فss𐰯.7𐫫
-B; xn--ss-jvd2339x.xn--7-mm5i; [B1 B2]; [B1 B2] # فss𐰯.7𐫫
-B; xn--zca96ys96y.xn--7-mm5i; [B1 B2]; [B1 B2] # فß𐰯.7𐫫
-B; \u0641SS𐰯。𝟕𐫫; [B1 B2]; [B1 B2] # فss𐰯.7𐫫
-B; \u0641ss𐰯。𝟕𐫫; [B1 B2]; [B1 B2] # فss𐰯.7𐫫
-B; \u0641Ss𐰯。𝟕𐫫; [B1 B2]; [B1 B2] # فss𐰯.7𐫫
-T; ß\u07AC\u07A7\u08B1。𐭁􅮙𐹲; [B2 B5 B6 P1 V6]; [B2 B5 B6 P1 V6] # ßެާࢱ.𐭁𐹲
-N; ß\u07AC\u07A7\u08B1。𐭁􅮙𐹲; [B2 B5 B6 P1 V6]; [B2 B5 B6 P1 V6] # ßެާࢱ.𐭁𐹲
-B; SS\u07AC\u07A7\u08B1。𐭁􅮙𐹲; [B2 B5 B6 P1 V6]; [B2 B5 B6 P1 V6] # ssެާࢱ.𐭁𐹲
-B; ss\u07AC\u07A7\u08B1。𐭁􅮙𐹲; [B2 B5 B6 P1 V6]; [B2 B5 B6 P1 V6] # ssެާࢱ.𐭁𐹲
-B; Ss\u07AC\u07A7\u08B1。𐭁􅮙𐹲; [B2 B5 B6 P1 V6]; [B2 B5 B6 P1 V6] # ssެާࢱ.𐭁𐹲
-B; xn--ss-9qet02k.xn--e09co8cr9861c; [B2 B5 B6 V6]; [B2 B5 B6 V6] # ssެާࢱ.𐭁𐹲
-B; xn--zca685aoa95h.xn--e09co8cr9861c; [B2 B5 B6 V6]; [B2 B5 B6 V6] # ßެާࢱ.𐭁𐹲
-B; -。󠉗⒌𞯛; [B1 P1 V3 V6]; [B1 P1 V3 V6]
-B; -。󠉗5.𞯛; [B1 P1 V3 V6]; [B1 P1 V3 V6]
-B; -.xn--5-zz21m.xn--6x6h; [B1 V3 V6]; [B1 V3 V6]
-B; -.xn--xsh6367n1bi3e; [B1 V3 V6]; [B1 V3 V6]
-T; 𼎏ς.-≮\uFCAB; [B1 P1 V3 V6]; [B1 P1 V3 V6] # ς.-≮خج
-N; 𼎏ς.-≮\uFCAB; [B1 P1 V3 V6]; [B1 P1 V3 V6] # ς.-≮خج
-T; 𼎏ς.-<\u0338\uFCAB; [B1 P1 V3 V6]; [B1 P1 V3 V6] # ς.-≮خج
-N; 𼎏ς.-<\u0338\uFCAB; [B1 P1 V3 V6]; [B1 P1 V3 V6] # ς.-≮خج
-T; 𼎏ς.-≮\u062E\u062C; [B1 P1 V3 V6]; [B1 P1 V3 V6] # ς.-≮خج
-N; 𼎏ς.-≮\u062E\u062C; [B1 P1 V3 V6]; [B1 P1 V3 V6] # ς.-≮خج
-T; 𼎏ς.-<\u0338\u062E\u062C; [B1 P1 V3 V6]; [B1 P1 V3 V6] # ς.-≮خج
-N; 𼎏ς.-<\u0338\u062E\u062C; [B1 P1 V3 V6]; [B1 P1 V3 V6] # ς.-≮خج
-B; 𼎏Σ.-<\u0338\u062E\u062C; [B1 P1 V3 V6]; [B1 P1 V3 V6] # σ.-≮خج
-B; 𼎏Σ.-≮\u062E\u062C; [B1 P1 V3 V6]; [B1 P1 V3 V6] # σ.-≮خج
-B; 𼎏σ.-≮\u062E\u062C; [B1 P1 V3 V6]; [B1 P1 V3 V6] # σ.-≮خج
-B; 𼎏σ.-<\u0338\u062E\u062C; [B1 P1 V3 V6]; [B1 P1 V3 V6] # σ.-≮خج
-B; xn--4xa92520c.xn----9mcf1400a; [B1 V3 V6]; [B1 V3 V6] # σ.-≮خج
-B; xn--3xa13520c.xn----9mcf1400a; [B1 V3 V6]; [B1 V3 V6] # ς.-≮خج
-B; 𼎏Σ.-<\u0338\uFCAB; [B1 P1 V3 V6]; [B1 P1 V3 V6] # σ.-≮خج
-B; 𼎏Σ.-≮\uFCAB; [B1 P1 V3 V6]; [B1 P1 V3 V6] # σ.-≮خج
-B; 𼎏σ.-≮\uFCAB; [B1 P1 V3 V6]; [B1 P1 V3 V6] # σ.-≮خج
-B; 𼎏σ.-<\u0338\uFCAB; [B1 P1 V3 V6]; [B1 P1 V3 V6] # σ.-≮خج
-B; ꡗ\u08B8\u0719.񔤔󠛙\u0C4D\uFC3E; [B5 B6 P1 V6]; [B5 B6 P1 V6] # ꡗࢸܙ.్كي
-B; ꡗ\u08B8\u0719.񔤔󠛙\u0C4D\u0643\u064A; [B5 B6 P1 V6]; [B5 B6 P1 V6] # ꡗࢸܙ.్كي
-B; xn--jnb34fs003a.xn--fhbo927bk128mpi24d; [B5 B6 V6]; [B5 B6 V6] # ꡗࢸܙ.్كي
-B; 𐠰\u08B7𞤌𐫭。𐋦\u17CD𝩃; [B1]; [B1] # 𐠰ࢷ𞤮𐫭.𐋦៍𝩃
-B; 𐠰\u08B7𞤮𐫭。𐋦\u17CD𝩃; [B1]; [B1] # 𐠰ࢷ𞤮𐫭.𐋦៍𝩃
-B; xn--dzb5191kezbrw47a.xn--p4e3841jz9tf; [B1]; [B1] # 𐠰ࢷ𞤮𐫭.𐋦៍𝩃
-B; 𐠰\u08B7𞤮𐫭.𐋦\u17CD𝩃; [B1]; [B1] # 𐠰ࢷ𞤮𐫭.𐋦៍𝩃
-B; 𐠰\u08B7𞤌𐫭.𐋦\u17CD𝩃; [B1]; [B1] # 𐠰ࢷ𞤮𐫭.𐋦៍𝩃
-T; ₂㘷--。\u06D3\u200C𐫆𑖿; [B1 C1 V2 V3]; [B1 V2 V3] # 2㘷--.ۓ𐫆𑖿
-N; ₂㘷--。\u06D3\u200C𐫆𑖿; [B1 C1 V2 V3]; [B1 C1 V2 V3] # 2㘷--.ۓ𐫆𑖿
-T; ₂㘷--。\u06D2\u0654\u200C𐫆𑖿; [B1 C1 V2 V3]; [B1 V2 V3] # 2㘷--.ۓ𐫆𑖿
-N; ₂㘷--。\u06D2\u0654\u200C𐫆𑖿; [B1 C1 V2 V3]; [B1 C1 V2 V3] # 2㘷--.ۓ𐫆𑖿
-T; 2㘷--。\u06D3\u200C𐫆𑖿; [B1 C1 V2 V3]; [B1 V2 V3] # 2㘷--.ۓ𐫆𑖿
-N; 2㘷--。\u06D3\u200C𐫆𑖿; [B1 C1 V2 V3]; [B1 C1 V2 V3] # 2㘷--.ۓ𐫆𑖿
-T; 2㘷--。\u06D2\u0654\u200C𐫆𑖿; [B1 C1 V2 V3]; [B1 V2 V3] # 2㘷--.ۓ𐫆𑖿
-N; 2㘷--。\u06D2\u0654\u200C𐫆𑖿; [B1 C1 V2 V3]; [B1 C1 V2 V3] # 2㘷--.ۓ𐫆𑖿
-B; xn--2---u58b.xn--jlb8024k14g; [B1 V2 V3]; [B1 V2 V3] # 2㘷--.ۓ𐫆𑖿
-B; xn--2---u58b.xn--jlb820ku99nbgj; [B1 C1 V2 V3]; [B1 C1 V2 V3] # 2㘷--.ۓ𐫆𑖿
-B; -𘊻.ᡮ\u062D-; [B1 B5 B6 V3]; [B1 B5 B6 V3] # -𘊻.ᡮح-
-B; -𘊻.ᡮ\u062D-; [B1 B5 B6 V3]; [B1 B5 B6 V3] # -𘊻.ᡮح-
-B; xn----bp5n.xn----bnc231l; [B1 B5 B6 V3]; [B1 B5 B6 V3] # -𘊻.ᡮح-
-T; \u200C-ß。ᢣ𐹭\u063F; [B1 B5 B6 C1]; [B1 B5 B6 V3] # -ß.ᢣ𐹭ؿ
-N; \u200C-ß。ᢣ𐹭\u063F; [B1 B5 B6 C1]; [B1 B5 B6 C1] # -ß.ᢣ𐹭ؿ
-T; \u200C-ß。ᢣ𐹭\u063F; [B1 B5 B6 C1]; [B1 B5 B6 V3] # -ß.ᢣ𐹭ؿ
-N; \u200C-ß。ᢣ𐹭\u063F; [B1 B5 B6 C1]; [B1 B5 B6 C1] # -ß.ᢣ𐹭ؿ
-T; \u200C-SS。ᢣ𐹭\u063F; [B1 B5 B6 C1]; [B1 B5 B6 V3] # -ss.ᢣ𐹭ؿ
-N; \u200C-SS。ᢣ𐹭\u063F; [B1 B5 B6 C1]; [B1 B5 B6 C1] # -ss.ᢣ𐹭ؿ
-T; \u200C-ss。ᢣ𐹭\u063F; [B1 B5 B6 C1]; [B1 B5 B6 V3] # -ss.ᢣ𐹭ؿ
-N; \u200C-ss。ᢣ𐹭\u063F; [B1 B5 B6 C1]; [B1 B5 B6 C1] # -ss.ᢣ𐹭ؿ
-T; \u200C-Ss。ᢣ𐹭\u063F; [B1 B5 B6 C1]; [B1 B5 B6 V3] # -ss.ᢣ𐹭ؿ
-N; \u200C-Ss。ᢣ𐹭\u063F; [B1 B5 B6 C1]; [B1 B5 B6 C1] # -ss.ᢣ𐹭ؿ
-B; -ss.xn--bhb925glx3p; [B1 B5 B6 V3]; [B1 B5 B6 V3] # -ss.ᢣ𐹭ؿ
-B; xn---ss-8m0a.xn--bhb925glx3p; [B1 B5 B6 C1]; [B1 B5 B6 C1] # -ss.ᢣ𐹭ؿ
-B; xn----qfa550v.xn--bhb925glx3p; [B1 B5 B6 C1]; [B1 B5 B6 C1] # -ß.ᢣ𐹭ؿ
-T; \u200C-SS。ᢣ𐹭\u063F; [B1 B5 B6 C1]; [B1 B5 B6 V3] # -ss.ᢣ𐹭ؿ
-N; \u200C-SS。ᢣ𐹭\u063F; [B1 B5 B6 C1]; [B1 B5 B6 C1] # -ss.ᢣ𐹭ؿ
-T; \u200C-ss。ᢣ𐹭\u063F; [B1 B5 B6 C1]; [B1 B5 B6 V3] # -ss.ᢣ𐹭ؿ
-N; \u200C-ss。ᢣ𐹭\u063F; [B1 B5 B6 C1]; [B1 B5 B6 C1] # -ss.ᢣ𐹭ؿ
-T; \u200C-Ss。ᢣ𐹭\u063F; [B1 B5 B6 C1]; [B1 B5 B6 V3] # -ss.ᢣ𐹭ؿ
-N; \u200C-Ss。ᢣ𐹭\u063F; [B1 B5 B6 C1]; [B1 B5 B6 C1] # -ss.ᢣ𐹭ؿ
-B; ꧐Ӏ\u1BAA\u08F6.눵; [P1 V6]; [P1 V6] # ꧐Ӏ᮪ࣶ.눵
-B; ꧐Ӏ\u1BAA\u08F6.눵; [P1 V6]; [P1 V6] # ꧐Ӏ᮪ࣶ.눵
-B; ꧐Ӏ\u1BAA\u08F6.눵; [P1 V6]; [P1 V6] # ꧐Ӏ᮪ࣶ.눵
-B; ꧐Ӏ\u1BAA\u08F6.눵; [P1 V6]; [P1 V6] # ꧐Ӏ᮪ࣶ.눵
-B; ꧐ӏ\u1BAA\u08F6.눵; ꧐ӏ\u1BAA\u08F6.눵; xn--s5a04sn4u297k.xn--2e1b # ꧐ӏ᮪ࣶ.눵
-B; ꧐ӏ\u1BAA\u08F6.눵; ; xn--s5a04sn4u297k.xn--2e1b # ꧐ӏ᮪ࣶ.눵
-B; xn--s5a04sn4u297k.xn--2e1b; ꧐ӏ\u1BAA\u08F6.눵; xn--s5a04sn4u297k.xn--2e1b # ꧐ӏ᮪ࣶ.눵
-B; xn--d5a07sn4u297k.xn--2e1b; [V6]; [V6] # ꧐Ӏ᮪ࣶ.눵
-B; ꧐ӏ\u1BAA\u08F6.눵; ꧐ӏ\u1BAA\u08F6.눵; xn--s5a04sn4u297k.xn--2e1b # ꧐ӏ᮪ࣶ.눵
-B; ꧐ӏ\u1BAA\u08F6.눵; ꧐ӏ\u1BAA\u08F6.눵; xn--s5a04sn4u297k.xn--2e1b # ꧐ӏ᮪ࣶ.눵
-B; \uA8EA。𖄿𑆾󠇗; [P1 V5 V6]; [P1 V5 V6] # ꣪.𑆾
-B; \uA8EA。𖄿𑆾󠇗; [P1 V5 V6]; [P1 V5 V6] # ꣪.𑆾
-B; xn--3g9a.xn--ud1dz07k; [V5 V6]; [V5 V6] # ꣪.𑆾
-B; 󇓓𑚳。񐷿≯⾇; [P1 V6]; [P1 V6]
-B; 󇓓𑚳。񐷿>\u0338⾇; [P1 V6]; [P1 V6]
-B; 󇓓𑚳。񐷿≯舛; [P1 V6]; [P1 V6]
-B; 󇓓𑚳。񐷿>\u0338舛; [P1 V6]; [P1 V6]
-B; xn--3e2d79770c.xn--hdh0088abyy1c; [V6]; [V6]
-T; 𐫇\u0661\u200C.\u200D\u200C; [B1 B3 C1 C2]; xn--9hb7344k. # 𐫇١.
-N; 𐫇\u0661\u200C.\u200D\u200C; [B1 B3 C1 C2]; [B1 B3 C1 C2] # 𐫇١.
-T; 𐫇\u0661\u200C.\u200D\u200C; [B1 B3 C1 C2]; xn--9hb7344k. # 𐫇١.
-N; 𐫇\u0661\u200C.\u200D\u200C; [B1 B3 C1 C2]; [B1 B3 C1 C2] # 𐫇١.
-B; xn--9hb7344k.; 𐫇\u0661.; xn--9hb7344k. # 𐫇١.
-B; 𐫇\u0661.; ; xn--9hb7344k. # 𐫇١.
-B; xn--9hb652kv99n.xn--0ugb; [B1 B3 C1 C2]; [B1 B3 C1 C2] # 𐫇١.
-T; 񡅈砪≯ᢑ。≯𝩚򓴔\u200C; [C1 P1 V6]; [P1 V6] # 砪≯ᢑ.≯𝩚
-N; 񡅈砪≯ᢑ。≯𝩚򓴔\u200C; [C1 P1 V6]; [C1 P1 V6] # 砪≯ᢑ.≯𝩚
-T; 񡅈砪>\u0338ᢑ。>\u0338𝩚򓴔\u200C; [C1 P1 V6]; [P1 V6] # 砪≯ᢑ.≯𝩚
-N; 񡅈砪>\u0338ᢑ。>\u0338𝩚򓴔\u200C; [C1 P1 V6]; [C1 P1 V6] # 砪≯ᢑ.≯𝩚
-T; 񡅈砪≯ᢑ。≯𝩚򓴔\u200C; [C1 P1 V6]; [P1 V6] # 砪≯ᢑ.≯𝩚
-N; 񡅈砪≯ᢑ。≯𝩚򓴔\u200C; [C1 P1 V6]; [C1 P1 V6] # 砪≯ᢑ.≯𝩚
-T; 񡅈砪>\u0338ᢑ。>\u0338𝩚򓴔\u200C; [C1 P1 V6]; [P1 V6] # 砪≯ᢑ.≯𝩚
-N; 񡅈砪>\u0338ᢑ。>\u0338𝩚򓴔\u200C; [C1 P1 V6]; [C1 P1 V6] # 砪≯ᢑ.≯𝩚
-B; xn--bbf561cf95e57y3e.xn--hdh0834o7mj6b; [V6]; [V6]
-B; xn--bbf561cf95e57y3e.xn--0ugz6gc910ejro8c; [C1 V6]; [C1 V6] # 砪≯ᢑ.≯𝩚
-B; Ⴥ.𑄳㊸; [P1 V5 V6]; [P1 V5 V6]
-B; Ⴥ.𑄳43; [P1 V5 V6]; [P1 V5 V6]
-B; ⴥ.𑄳43; [V5]; [V5]
-B; xn--tlj.xn--43-274o; [V5]; [V5]
-B; xn--9nd.xn--43-274o; [V5 V6]; [V5 V6]
-B; ⴥ.𑄳㊸; [V5]; [V5]
-B; 𝟎\u0663。Ⴒᡇ\u08F2𐹠; [B1 B5 B6 P1 V6]; [B1 B5 B6 P1 V6] # 0٣.Ⴒᡇࣲ𐹠
-B; 0\u0663。Ⴒᡇ\u08F2𐹠; [B1 B5 B6 P1 V6]; [B1 B5 B6 P1 V6] # 0٣.Ⴒᡇࣲ𐹠
-B; 0\u0663。ⴒᡇ\u08F2𐹠; [B1 B5 B6]; [B1 B5 B6] # 0٣.ⴒᡇࣲ𐹠
-B; xn--0-fqc.xn--10b369eivp359r; [B1 B5 B6]; [B1 B5 B6] # 0٣.ⴒᡇࣲ𐹠
-B; xn--0-fqc.xn--10b180bnwgfy0z; [B1 B5 B6 V6]; [B1 B5 B6 V6] # 0٣.Ⴒᡇࣲ𐹠
-B; 𝟎\u0663。ⴒᡇ\u08F2𐹠; [B1 B5 B6]; [B1 B5 B6] # 0٣.ⴒᡇࣲ𐹠
-B; 񗪨󠄉\uFFA0\u0FB7.񸞰\uA953; [P1 V6]; [P1 V6] # ྷ.꥓
-B; 񗪨󠄉\u1160\u0FB7.񸞰\uA953; [P1 V6]; [P1 V6] # ྷ.꥓
-B; xn--kgd36f9z57y.xn--3j9au7544a; [V6]; [V6] # ྷ.꥓
-B; xn--kgd7493jee34a.xn--3j9au7544a; [V6]; [V6] # ྷ.꥓
-T; \u0618.۳\u200C\uA953; [C1 V5]; [V5] # ؘ.۳꥓
-N; \u0618.۳\u200C\uA953; [C1 V5]; [C1 V5] # ؘ.۳꥓
-B; xn--6fb.xn--gmb0524f; [V5]; [V5] # ؘ.۳꥓
-B; xn--6fb.xn--gmb469jjf1h; [C1 V5]; [C1 V5] # ؘ.۳꥓
-B; ᡌ.︒ᢑ; [P1 V6]; [P1 V6]
-B; ᡌ.。ᢑ; [A4_2]; [A4_2]
-B; xn--c8e..xn--bbf; [A4_2]; [A4_2]
-B; xn--c8e.xn--bbf9168i; [V6]; [V6]
-B; 𑋪\u1073。𞽧; [B1 B3 B6 P1 V5 V6]; [B1 B3 B6 P1 V5 V6] # 𑋪ၳ.
-B; 𑋪\u1073。𞽧; [B1 B3 B6 P1 V5 V6]; [B1 B3 B6 P1 V5 V6] # 𑋪ၳ.
-B; xn--xld7443k.xn--4o7h; [B1 B3 B6 V5 V6]; [B1 B3 B6 V5 V6] # 𑋪ၳ.
-B; 𞷏。ᠢ򓘆; [P1 V6]; [P1 V6]
-B; xn--hd7h.xn--46e66060j; [V6]; [V6]
-T; 𑄳㴼.\u200C𐹡\u20EB񫺦; [B1 C1 P1 V5 V6]; [B1 P1 V5 V6] # 𑄳㴼.𐹡⃫
-N; 𑄳㴼.\u200C𐹡\u20EB񫺦; [B1 C1 P1 V5 V6]; [B1 C1 P1 V5 V6] # 𑄳㴼.𐹡⃫
-T; 𑄳㴼.\u200C𐹡\u20EB񫺦; [B1 C1 P1 V5 V6]; [B1 P1 V5 V6] # 𑄳㴼.𐹡⃫
-N; 𑄳㴼.\u200C𐹡\u20EB񫺦; [B1 C1 P1 V5 V6]; [B1 C1 P1 V5 V6] # 𑄳㴼.𐹡⃫
-B; xn--iym9428c.xn--e1g3464g08p3b; [B1 V5 V6]; [B1 V5 V6] # 𑄳㴼.𐹡⃫
-B; xn--iym9428c.xn--0ug46a7218cllv0c; [B1 C1 V5 V6]; [B1 C1 V5 V6] # 𑄳㴼.𐹡⃫
-B; 񠻟𐹳𑈯。\u031D; [B1 B3 B5 B6 P1 V5 V6]; [B1 B3 B5 B6 P1 V5 V6] # 𐹳𑈯.̝
-B; 񠻟𐹳𑈯。\u031D; [B1 B3 B5 B6 P1 V5 V6]; [B1 B3 B5 B6 P1 V5 V6] # 𐹳𑈯.̝
-B; xn--ro0dw7dey96m.xn--eta; [B1 B3 B5 B6 V5 V6]; [B1 B3 B5 B6 V5 V6] # 𐹳𑈯.̝
-B; ᢊ뾜󠱴𑚶。\u089D𐹥; [P1 V6]; [P1 V6] # ᢊ뾜𑚶.𐹥
-B; ᢊ뾜󠱴𑚶。\u089D𐹥; [P1 V6]; [P1 V6] # ᢊ뾜𑚶.𐹥
-B; xn--39e4566fjv8bwmt6n.xn--myb6415k; [V6]; [V6] # ᢊ뾜𑚶.𐹥
-T; 𐹥≠。𐋲󠧠\u200C; [B1 C1 P1 V6]; [B1 P1 V6] # 𐹥≠.𐋲
-N; 𐹥≠。𐋲󠧠\u200C; [B1 C1 P1 V6]; [B1 C1 P1 V6] # 𐹥≠.𐋲
-T; 𐹥=\u0338。𐋲󠧠\u200C; [B1 C1 P1 V6]; [B1 P1 V6] # 𐹥≠.𐋲
-N; 𐹥=\u0338。𐋲󠧠\u200C; [B1 C1 P1 V6]; [B1 C1 P1 V6] # 𐹥≠.𐋲
-T; 𐹥≠。𐋲󠧠\u200C; [B1 C1 P1 V6]; [B1 P1 V6] # 𐹥≠.𐋲
-N; 𐹥≠。𐋲󠧠\u200C; [B1 C1 P1 V6]; [B1 C1 P1 V6] # 𐹥≠.𐋲
-T; 𐹥=\u0338。𐋲󠧠\u200C; [B1 C1 P1 V6]; [B1 P1 V6] # 𐹥≠.𐋲
-N; 𐹥=\u0338。𐋲󠧠\u200C; [B1 C1 P1 V6]; [B1 C1 P1 V6] # 𐹥≠.𐋲
-B; xn--1ch6704g.xn--m97cw2999c; [B1 V6]; [B1 V6]
-B; xn--1ch6704g.xn--0ug3840g51u4g; [B1 C1 V6]; [B1 C1 V6] # 𐹥≠.𐋲
-T; \u115F񙯠\u094D.\u200D\uA953𐪤; [B1 C2 P1 V6]; [B5 B6 P1 V5 V6] # ्.꥓
-N; \u115F񙯠\u094D.\u200D\uA953𐪤; [B1 C2 P1 V6]; [B1 C2 P1 V6] # ्.꥓
-T; \u115F񙯠\u094D.\u200D\uA953𐪤; [B1 C2 P1 V6]; [B5 B6 P1 V5 V6] # ्.꥓
-N; \u115F񙯠\u094D.\u200D\uA953𐪤; [B1 C2 P1 V6]; [B1 C2 P1 V6] # ्.꥓
-B; xn--n3b542bb085j.xn--3j9al95p; [B5 B6 V5 V6]; [B5 B6 V5 V6] # ्.꥓
-B; xn--n3b542bb085j.xn--1ug6815co9wc; [B1 C2 V6]; [B1 C2 V6] # ्.꥓
-B; 򌋔󠆎󠆗𑲕。≮; [P1 V6]; [P1 V6]
-B; 򌋔󠆎󠆗𑲕。<\u0338; [P1 V6]; [P1 V6]
-B; xn--4m3dv4354a.xn--gdh; [V6]; [V6]
-B; 󠆦.\u08E3暀≠; [P1 V5 V6 A4_2]; [P1 V5 V6 A4_2] # .ࣣ暀≠
-B; 󠆦.\u08E3暀=\u0338; [P1 V5 V6 A4_2]; [P1 V5 V6 A4_2] # .ࣣ暀≠
-B; .xn--m0b461k3g2c; [V5 V6 A4_2]; [V5 V6 A4_2] # .ࣣ暀≠
-B; 𐡤\uABED。\uFD30򜖅\u1DF0; [B2 B3 P1 V6]; [B2 B3 P1 V6] # 𐡤꯭.شمᷰ
-B; 𐡤\uABED。\u0634\u0645򜖅\u1DF0; [B2 B3 P1 V6]; [B2 B3 P1 V6] # 𐡤꯭.شمᷰ
-B; xn--429ak76o.xn--zgb8a701kox37t; [B2 B3 V6]; [B2 B3 V6] # 𐡤꯭.شمᷰ
-T; 𝉃\u200D⒈。Ⴌ𞱓; [B1 B5 B6 C2 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # 𝉃⒈.Ⴌ
-N; 𝉃\u200D⒈。Ⴌ𞱓; [B1 B5 B6 C2 P1 V5 V6]; [B1 B5 B6 C2 P1 V5 V6] # 𝉃⒈.Ⴌ
-T; 𝉃\u200D1.。Ⴌ𞱓; [B1 B5 B6 C2 P1 V5 V6 A4_2]; [B1 B5 B6 P1 V5 V6 A4_2] # 𝉃1..Ⴌ
-N; 𝉃\u200D1.。Ⴌ𞱓; [B1 B5 B6 C2 P1 V5 V6 A4_2]; [B1 B5 B6 C2 P1 V5 V6 A4_2] # 𝉃1..Ⴌ
-T; 𝉃\u200D1.。ⴌ𞱓; [B1 B5 B6 C2 P1 V5 V6 A4_2]; [B1 B5 B6 P1 V5 V6 A4_2] # 𝉃1..ⴌ
-N; 𝉃\u200D1.。ⴌ𞱓; [B1 B5 B6 C2 P1 V5 V6 A4_2]; [B1 B5 B6 C2 P1 V5 V6 A4_2] # 𝉃1..ⴌ
-B; xn--1-px8q..xn--3kj4524l; [B1 B5 B6 V5 V6 A4_2]; [B1 B5 B6 V5 V6 A4_2]
-B; xn--1-tgn9827q..xn--3kj4524l; [B1 B5 B6 C2 V5 V6 A4_2]; [B1 B5 B6 C2 V5 V6 A4_2] # 𝉃1..ⴌ
-B; xn--1-px8q..xn--knd8464v; [B1 B5 B6 V5 V6 A4_2]; [B1 B5 B6 V5 V6 A4_2]
-B; xn--1-tgn9827q..xn--knd8464v; [B1 B5 B6 C2 V5 V6 A4_2]; [B1 B5 B6 C2 V5 V6 A4_2] # 𝉃1..Ⴌ
-T; 𝉃\u200D⒈。ⴌ𞱓; [B1 B5 B6 C2 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # 𝉃⒈.ⴌ
-N; 𝉃\u200D⒈。ⴌ𞱓; [B1 B5 B6 C2 P1 V5 V6]; [B1 B5 B6 C2 P1 V5 V6] # 𝉃⒈.ⴌ
-B; xn--tshz828m.xn--3kj4524l; [B1 B5 B6 V5 V6]; [B1 B5 B6 V5 V6]
-B; xn--1ug68oq348b.xn--3kj4524l; [B1 B5 B6 C2 V5 V6]; [B1 B5 B6 C2 V5 V6] # 𝉃⒈.ⴌ
-B; xn--tshz828m.xn--knd8464v; [B1 B5 B6 V5 V6]; [B1 B5 B6 V5 V6]
-B; xn--1ug68oq348b.xn--knd8464v; [B1 B5 B6 C2 V5 V6]; [B1 B5 B6 C2 V5 V6] # 𝉃⒈.Ⴌ
-T; 󠣙\u0A4D𱫘𞤸.ς񵯞􈰔; [B1 P1 V6]; [B1 P1 V6] # ੍𞤸.ς
-N; 󠣙\u0A4D𱫘𞤸.ς񵯞􈰔; [B1 P1 V6]; [B1 P1 V6] # ੍𞤸.ς
-B; 󠣙\u0A4D𱫘𞤖.Σ񵯞􈰔; [B1 P1 V6]; [B1 P1 V6] # ੍𞤸.σ
-B; 󠣙\u0A4D𱫘𞤸.σ񵯞􈰔; [B1 P1 V6]; [B1 P1 V6] # ੍𞤸.σ
-B; 󠣙\u0A4D𱫘𞤖.σ񵯞􈰔; [B1 P1 V6]; [B1 P1 V6] # ੍𞤸.σ
-B; xn--ybc0236vjvxgt5q0g.xn--4xa82737giye6b; [B1 V6]; [B1 V6] # ੍𞤸.σ
-T; 󠣙\u0A4D𱫘𞤖.ς񵯞􈰔; [B1 P1 V6]; [B1 P1 V6] # ੍𞤸.ς
-N; 󠣙\u0A4D𱫘𞤖.ς񵯞􈰔; [B1 P1 V6]; [B1 P1 V6] # ੍𞤸.ς
-B; xn--ybc0236vjvxgt5q0g.xn--3xa03737giye6b; [B1 V6]; [B1 V6] # ੍𞤸.ς
-B; 󠣙\u0A4D𱫘𞤸.Σ񵯞􈰔; [B1 P1 V6]; [B1 P1 V6] # ੍𞤸.σ
-T; \u07D3。\u200C𐫀򞭱; [B1 C1 P1 V6]; [B2 B3 P1 V6] # ߓ.𐫀
-N; \u07D3。\u200C𐫀򞭱; [B1 C1 P1 V6]; [B1 C1 P1 V6] # ߓ.𐫀
-B; xn--usb.xn--pw9ci1099a; [B2 B3 V6]; [B2 B3 V6] # ߓ.𐫀
-B; xn--usb.xn--0ug9553gm3v5d; [B1 C1 V6]; [B1 C1 V6] # ߓ.𐫀
-B; \u1C2E𞀝.\u05A6ꡟ𞤕󠆖; [B1 B3 B6 V5]; [B1 B3 B6 V5] # ᰮ𞀝.֦ꡟ𞤷
-B; \u1C2E𞀝.\u05A6ꡟ𞤷󠆖; [B1 B3 B6 V5]; [B1 B3 B6 V5] # ᰮ𞀝.֦ꡟ𞤷
-B; xn--q1f4493q.xn--xcb8244fifvj; [B1 B3 B6 V5]; [B1 B3 B6 V5] # ᰮ𞀝.֦ꡟ𞤷
-T; 䂹󾖅𐋦.\u200D; [C2 P1 V6]; [P1 V6] # 䂹𐋦.
-N; 䂹󾖅𐋦.\u200D; [C2 P1 V6]; [C2 P1 V6] # 䂹𐋦.
-T; 䂹󾖅𐋦.\u200D; [C2 P1 V6]; [P1 V6] # 䂹𐋦.
-N; 䂹󾖅𐋦.\u200D; [C2 P1 V6]; [C2 P1 V6] # 䂹𐋦.
-B; xn--0on3543c5981i.; [V6]; [V6]
-B; xn--0on3543c5981i.xn--1ug; [C2 V6]; [C2 V6] # 䂹𐋦.
-T; \uA9C0\u200C𐹲\u200C。\u0767🄉; [B5 B6 C1 P1 V5 V6]; [B5 B6 P1 V5 V6] # ꧀𐹲.ݧ🄉
-N; \uA9C0\u200C𐹲\u200C。\u0767🄉; [B5 B6 C1 P1 V5 V6]; [B5 B6 C1 P1 V5 V6] # ꧀𐹲.ݧ🄉
-T; \uA9C0\u200C𐹲\u200C。\u07678,; [B3 B5 B6 C1 P1 V5 V6]; [B3 B5 B6 P1 V5 V6] # ꧀𐹲.ݧ8,
-N; \uA9C0\u200C𐹲\u200C。\u07678,; [B3 B5 B6 C1 P1 V5 V6]; [B3 B5 B6 C1 P1 V5 V6] # ꧀𐹲.ݧ8,
-B; xn--7m9an32q.xn--8,-qle; [B3 B5 B6 P1 V5 V6]; [B3 B5 B6 P1 V5 V6] # ꧀𐹲.ݧ8,
-B; xn--0uga8686hdgvd.xn--8,-qle; [B3 B5 B6 C1 P1 V5 V6]; [B3 B5 B6 C1 P1 V5 V6] # ꧀𐹲.ݧ8,
-B; xn--7m9an32q.xn--rpb6081w; [B5 B6 V5 V6]; [B5 B6 V5 V6] # ꧀𐹲.ݧ🄉
-B; xn--0uga8686hdgvd.xn--rpb6081w; [B5 B6 C1 V5 V6]; [B5 B6 C1 V5 V6] # ꧀𐹲.ݧ🄉
-B; ︒。Ⴃ≯; [P1 V6]; [P1 V6]
-B; ︒。Ⴃ>\u0338; [P1 V6]; [P1 V6]
-B; 。。Ⴃ≯; [P1 V6 A4_2]; [P1 V6 A4_2]
-B; 。。Ⴃ>\u0338; [P1 V6 A4_2]; [P1 V6 A4_2]
-B; 。。ⴃ>\u0338; [P1 V6 A4_2]; [P1 V6 A4_2]
-B; 。。ⴃ≯; [P1 V6 A4_2]; [P1 V6 A4_2]
-B; ..xn--hdh782b; [V6 A4_2]; [V6 A4_2]
-B; ..xn--bnd622g; [V6 A4_2]; [V6 A4_2]
-B; ︒。ⴃ>\u0338; [P1 V6]; [P1 V6]
-B; ︒。ⴃ≯; [P1 V6]; [P1 V6]
-B; xn--y86c.xn--hdh782b; [V6]; [V6]
-B; xn--y86c.xn--bnd622g; [V6]; [V6]
-T; 𐹮。󠢼\u200D; [B1 C2 P1 V6]; [B1 P1 V6] # 𐹮.
-N; 𐹮。󠢼\u200D; [B1 C2 P1 V6]; [B1 C2 P1 V6] # 𐹮.
-T; 𐹮。󠢼\u200D; [B1 C2 P1 V6]; [B1 P1 V6] # 𐹮.
-N; 𐹮。󠢼\u200D; [B1 C2 P1 V6]; [B1 C2 P1 V6] # 𐹮.
-B; xn--mo0d.xn--wy46e; [B1 V6]; [B1 V6]
-B; xn--mo0d.xn--1ug18431l; [B1 C2 V6]; [B1 C2 V6] # 𐹮.
-T; Ⴞ𐹨。︒\u077D\u200DႯ; [B1 B5 B6 C2 P1 V6]; [B1 B5 B6 P1 V6] # Ⴞ𐹨.︒ݽႯ
-N; Ⴞ𐹨。︒\u077D\u200DႯ; [B1 B5 B6 C2 P1 V6]; [B1 B5 B6 C2 P1 V6] # Ⴞ𐹨.︒ݽႯ
-T; Ⴞ𐹨。。\u077D\u200DႯ; [B2 B3 B5 B6 C2 P1 V6 A4_2]; [B2 B3 B5 B6 P1 V6 A4_2] # Ⴞ𐹨..ݽႯ
-N; Ⴞ𐹨。。\u077D\u200DႯ; [B2 B3 B5 B6 C2 P1 V6 A4_2]; [B2 B3 B5 B6 C2 P1 V6 A4_2] # Ⴞ𐹨..ݽႯ
-T; ⴞ𐹨。。\u077D\u200Dⴏ; [B2 B3 B5 B6 C2 A4_2]; [B2 B3 B5 B6 A4_2] # ⴞ𐹨..ݽⴏ
-N; ⴞ𐹨。。\u077D\u200Dⴏ; [B2 B3 B5 B6 C2 A4_2]; [B2 B3 B5 B6 C2 A4_2] # ⴞ𐹨..ݽⴏ
-B; xn--mlju223e..xn--eqb053q; [B2 B3 B5 B6 A4_2]; [B2 B3 B5 B6 A4_2] # ⴞ𐹨..ݽⴏ
-B; xn--mlju223e..xn--eqb096jpgj; [B2 B3 B5 B6 C2 A4_2]; [B2 B3 B5 B6 C2 A4_2] # ⴞ𐹨..ݽⴏ
-B; xn--2nd0990k..xn--eqb228b; [B2 B3 B5 B6 V6 A4_2]; [B2 B3 B5 B6 V6 A4_2] # Ⴞ𐹨..ݽႯ
-B; xn--2nd0990k..xn--eqb228bgzm; [B2 B3 B5 B6 C2 V6 A4_2]; [B2 B3 B5 B6 C2 V6 A4_2] # Ⴞ𐹨..ݽႯ
-T; ⴞ𐹨。︒\u077D\u200Dⴏ; [B1 B5 B6 C2 P1 V6]; [B1 B5 B6 P1 V6] # ⴞ𐹨.︒ݽⴏ
-N; ⴞ𐹨。︒\u077D\u200Dⴏ; [B1 B5 B6 C2 P1 V6]; [B1 B5 B6 C2 P1 V6] # ⴞ𐹨.︒ݽⴏ
-B; xn--mlju223e.xn--eqb053qjk7l; [B1 B5 B6 V6]; [B1 B5 B6 V6] # ⴞ𐹨.︒ݽⴏ
-B; xn--mlju223e.xn--eqb096jpgj9y7r; [B1 B5 B6 C2 V6]; [B1 B5 B6 C2 V6] # ⴞ𐹨.︒ݽⴏ
-B; xn--2nd0990k.xn--eqb228b583r; [B1 B5 B6 V6]; [B1 B5 B6 V6] # Ⴞ𐹨.︒ݽႯ
-B; xn--2nd0990k.xn--eqb228bgzmvp0t; [B1 B5 B6 C2 V6]; [B1 B5 B6 C2 V6] # Ⴞ𐹨.︒ݽႯ
-T; \u200CႦ𝟹。-\u20D2-\u07D1; [B1 C1 P1 V3 V6]; [B1 P1 V3 V6] # Ⴆ3.-⃒-ߑ
-N; \u200CႦ𝟹。-\u20D2-\u07D1; [B1 C1 P1 V3 V6]; [B1 C1 P1 V3 V6] # Ⴆ3.-⃒-ߑ
-T; \u200CႦ3。-\u20D2-\u07D1; [B1 C1 P1 V3 V6]; [B1 P1 V3 V6] # Ⴆ3.-⃒-ߑ
-N; \u200CႦ3。-\u20D2-\u07D1; [B1 C1 P1 V3 V6]; [B1 C1 P1 V3 V6] # Ⴆ3.-⃒-ߑ
-T; \u200Cⴆ3。-\u20D2-\u07D1; [B1 C1 V3]; [B1 V3] # ⴆ3.-⃒-ߑ
-N; \u200Cⴆ3。-\u20D2-\u07D1; [B1 C1 V3]; [B1 C1 V3] # ⴆ3.-⃒-ߑ
-B; xn--3-lvs.xn-----vue617w; [B1 V3]; [B1 V3] # ⴆ3.-⃒-ߑ
-B; xn--3-rgnv99c.xn-----vue617w; [B1 C1 V3]; [B1 C1 V3] # ⴆ3.-⃒-ߑ
-B; xn--3-i0g.xn-----vue617w; [B1 V3 V6]; [B1 V3 V6] # Ⴆ3.-⃒-ߑ
-B; xn--3-i0g939i.xn-----vue617w; [B1 C1 V3 V6]; [B1 C1 V3 V6] # Ⴆ3.-⃒-ߑ
-T; \u200Cⴆ𝟹。-\u20D2-\u07D1; [B1 C1 V3]; [B1 V3] # ⴆ3.-⃒-ߑ
-N; \u200Cⴆ𝟹。-\u20D2-\u07D1; [B1 C1 V3]; [B1 C1 V3] # ⴆ3.-⃒-ߑ
-B; 箃Ⴡ-󠁝。≠-🤖; [P1 V6]; [P1 V6]
-B; 箃Ⴡ-󠁝。=\u0338-🤖; [P1 V6]; [P1 V6]
-B; 箃Ⴡ-󠁝。≠-🤖; [P1 V6]; [P1 V6]
-B; 箃Ⴡ-󠁝。=\u0338-🤖; [P1 V6]; [P1 V6]
-B; 箃ⴡ-󠁝。=\u0338-🤖; [P1 V6]; [P1 V6]
-B; 箃ⴡ-󠁝。≠-🤖; [P1 V6]; [P1 V6]
-B; xn----4wsr321ay823p.xn----tfot873s; [V6]; [V6]
-B; xn----11g3013fy8x5m.xn----tfot873s; [V6]; [V6]
-B; 箃ⴡ-󠁝。=\u0338-🤖; [P1 V6]; [P1 V6]
-B; 箃ⴡ-󠁝。≠-🤖; [P1 V6]; [P1 V6]
-B; \u07E5.\u06B5; ; xn--dtb.xn--okb # ߥ.ڵ
-B; xn--dtb.xn--okb; \u07E5.\u06B5; xn--dtb.xn--okb # ߥ.ڵ
-T; \u200C\u200D.𞤿; [B1 C1 C2]; [A4_2] # .𞤿
-N; \u200C\u200D.𞤿; [B1 C1 C2]; [B1 C1 C2] # .𞤿
-T; \u200C\u200D.𞤝; [B1 C1 C2]; [A4_2] # .𞤿
-N; \u200C\u200D.𞤝; [B1 C1 C2]; [B1 C1 C2] # .𞤿
-B; .xn--3e6h; [A4_2]; [A4_2]
-B; xn--0ugc.xn--3e6h; [B1 C1 C2]; [B1 C1 C2] # .𞤿
-B; xn--3e6h; 𞤿; xn--3e6h
-B; 𞤿; ; xn--3e6h
-B; 𞤝; 𞤿; xn--3e6h
-T; 🜑𐹧\u0639.ς𑍍蜹; [B1]; [B1] # 🜑𐹧ع.ς𑍍蜹
-N; 🜑𐹧\u0639.ς𑍍蜹; [B1]; [B1] # 🜑𐹧ع.ς𑍍蜹
-B; 🜑𐹧\u0639.Σ𑍍蜹; [B1]; [B1] # 🜑𐹧ع.σ𑍍蜹
-B; 🜑𐹧\u0639.σ𑍍蜹; [B1]; [B1] # 🜑𐹧ع.σ𑍍蜹
-B; xn--4gb3736kk4zf.xn--4xa2248dy27d; [B1]; [B1] # 🜑𐹧ع.σ𑍍蜹
-B; xn--4gb3736kk4zf.xn--3xa4248dy27d; [B1]; [B1] # 🜑𐹧ع.ς𑍍蜹
-B; 򫠐ス􆟤\u0669.󚃟; [B5 B6 P1 V6]; [B5 B6 P1 V6] # ス٩.
-B; 򫠐ス􆟤\u0669.󚃟; [B5 B6 P1 V6]; [B5 B6 P1 V6] # ス٩.
-B; xn--iib777sp230oo708a.xn--7824e; [B5 B6 V6]; [B5 B6 V6] # ス٩.
-B; 𝪣򕡝.\u059A\uD850\u06C2; [B1 P1 V5 V6]; [B1 P1 V5 V6 A3] # 𝪣.֚ۂ
-B; 𝪣򕡝.\u059A\uD850\u06C1\u0654; [B1 P1 V5 V6]; [B1 P1 V5 V6 A3] # 𝪣.֚ۂ
-B; 𝪣򕡝.\u059A\uD850\u06C2; [B1 P1 V5 V6]; [B1 P1 V5 V6 A3] # 𝪣.֚ۂ
-B; 𝪣򕡝.\u059A\uD850\u06C1\u0654; [B1 P1 V5 V6]; [B1 P1 V5 V6 A3] # 𝪣.֚ۂ
-B; xn--8c3hu7971a.\u059A\uD850\u06C2; [B1 P1 V5 V6]; [B1 P1 V5 V6 A3] # 𝪣.֚ۂ
-B; xn--8c3hu7971a.\u059A\uD850\u06C1\u0654; [B1 P1 V5 V6]; [B1 P1 V5 V6 A3] # 𝪣.֚ۂ
-B; XN--8C3HU7971A.\u059A\uD850\u06C1\u0654; [B1 P1 V5 V6]; [B1 P1 V5 V6 A3] # 𝪣.֚ۂ
-B; XN--8C3HU7971A.\u059A\uD850\u06C2; [B1 P1 V5 V6]; [B1 P1 V5 V6 A3] # 𝪣.֚ۂ
-B; Xn--8C3hu7971a.\u059A\uD850\u06C2; [B1 P1 V5 V6]; [B1 P1 V5 V6 A3] # 𝪣.֚ۂ
-B; Xn--8C3hu7971a.\u059A\uD850\u06C1\u0654; [B1 P1 V5 V6]; [B1 P1 V5 V6 A3] # 𝪣.֚ۂ
-T; \u0660򪓵\u200C。\u0757; [B1 C1 P1 V6]; [B1 P1 V6] # ٠.ݗ
-N; \u0660򪓵\u200C。\u0757; [B1 C1 P1 V6]; [B1 C1 P1 V6] # ٠.ݗ
-B; xn--8hb82030l.xn--bpb; [B1 V6]; [B1 V6] # ٠.ݗ
-B; xn--8hb852ke991q.xn--bpb; [B1 C1 V6]; [B1 C1 V6] # ٠.ݗ
-T; \u103A\u200D\u200C。-\u200C; [C1 V3 V5]; [V3 V5] # ်.-
-N; \u103A\u200D\u200C。-\u200C; [C1 V3 V5]; [C1 V3 V5] # ်.-
-B; xn--bkd.-; [V3 V5]; [V3 V5] # ်.-
-B; xn--bkd412fca.xn----sgn; [C1 V3 V5]; [C1 V3 V5] # ်.-
-B; ︒。\u1B44ᡉ; [P1 V5 V6]; [P1 V5 V6] # ︒.᭄ᡉ
-B; 。。\u1B44ᡉ; [V5 A4_2]; [V5 A4_2] # ..᭄ᡉ
-B; ..xn--87e93m; [V5 A4_2]; [V5 A4_2] # ..᭄ᡉ
-B; xn--y86c.xn--87e93m; [V5 V6]; [V5 V6] # ︒.᭄ᡉ
-T; \u0758ß。ጫᢊ\u0768𝟐; [B2 B3 B5]; [B2 B3 B5] # ݘß.ጫᢊݨ2
-N; \u0758ß。ጫᢊ\u0768𝟐; [B2 B3 B5]; [B2 B3 B5] # ݘß.ጫᢊݨ2
-T; \u0758ß。ጫᢊ\u07682; [B2 B3 B5]; [B2 B3 B5] # ݘß.ጫᢊݨ2
-N; \u0758ß。ጫᢊ\u07682; [B2 B3 B5]; [B2 B3 B5] # ݘß.ጫᢊݨ2
-B; \u0758SS。ጫᢊ\u07682; [B2 B3 B5]; [B2 B3 B5] # ݘss.ጫᢊݨ2
-B; \u0758ss。ጫᢊ\u07682; [B2 B3 B5]; [B2 B3 B5] # ݘss.ጫᢊݨ2
-B; \u0758Ss。ጫᢊ\u07682; [B2 B3 B5]; [B2 B3 B5] # ݘss.ጫᢊݨ2
-B; xn--ss-gke.xn--2-b5c641gfmf; [B2 B3 B5]; [B2 B3 B5] # ݘss.ጫᢊݨ2
-B; xn--zca724a.xn--2-b5c641gfmf; [B2 B3 B5]; [B2 B3 B5] # ݘß.ጫᢊݨ2
-B; \u0758SS。ጫᢊ\u0768𝟐; [B2 B3 B5]; [B2 B3 B5] # ݘss.ጫᢊݨ2
-B; \u0758ss。ጫᢊ\u0768𝟐; [B2 B3 B5]; [B2 B3 B5] # ݘss.ጫᢊݨ2
-B; \u0758Ss。ጫᢊ\u0768𝟐; [B2 B3 B5]; [B2 B3 B5] # ݘss.ጫᢊݨ2
-B; \u07C3𞶇ᚲ.\u0902\u0353𝟚\u09CD; [B1 B2 B3 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # ߃ᚲ.ं͓2্
-B; \u07C3𞶇ᚲ.\u0902\u03532\u09CD; [B1 B2 B3 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # ߃ᚲ.ं͓2্
-B; xn--esb067enh07a.xn--2-lgb874bjxa; [B1 B2 B3 V5 V6]; [B1 B2 B3 V5 V6] # ߃ᚲ.ं͓2্
-T; -\u1BAB︒\u200D.񒶈񥹓; [C2 P1 V3 V6]; [P1 V3 V6] # -᮫︒.
-N; -\u1BAB︒\u200D.񒶈񥹓; [C2 P1 V3 V6]; [C2 P1 V3 V6] # -᮫︒.
-T; -\u1BAB。\u200D.񒶈񥹓; [C2 P1 V3 V6]; [P1 V3 V6 A4_2] # -᮫..
-N; -\u1BAB。\u200D.񒶈񥹓; [C2 P1 V3 V6]; [C2 P1 V3 V6] # -᮫..
-B; xn----qml..xn--x50zy803a; [V3 V6 A4_2]; [V3 V6 A4_2] # -᮫..
-B; xn----qml.xn--1ug.xn--x50zy803a; [C2 V3 V6]; [C2 V3 V6] # -᮫..
-B; xn----qml1407i.xn--x50zy803a; [V3 V6]; [V3 V6] # -᮫︒.
-B; xn----qmlv7tw180a.xn--x50zy803a; [C2 V3 V6]; [C2 V3 V6] # -᮫︒.
-B; 󠦮.≯𞀆; [P1 V6]; [P1 V6]
-B; 󠦮.>\u0338𞀆; [P1 V6]; [P1 V6]
-B; xn--t546e.xn--hdh5166o; [V6]; [V6]
-B; -𑄳󠊗𐹩。𞮱; [B1 P1 V3 V6]; [B1 P1 V3 V6]
-B; xn----p26i72em2894c.xn--zw6h; [B1 V3 V6]; [B1 V3 V6]
-B; \u06B9.ᡳ\u115F; [P1 V6]; [P1 V6] # ڹ.ᡳ
-B; \u06B9.ᡳ\u115F; [P1 V6]; [P1 V6] # ڹ.ᡳ
-B; xn--skb.xn--osd737a; [V6]; [V6] # ڹ.ᡳ
-B; 㨛𘱎.︒𝟕\u0D01; [P1 V6]; [P1 V6] # 㨛.︒7ഁ
-B; 㨛𘱎.。7\u0D01; [P1 V6 A4_2]; [P1 V6 A4_2] # 㨛..7ഁ
-B; xn--mbm8237g..xn--7-7hf; [V6 A4_2]; [V6 A4_2] # 㨛..7ഁ
-B; xn--mbm8237g.xn--7-7hf1526p; [V6]; [V6] # 㨛.︒7ഁ
-B; \u06DD𻱧-。𞷁\u2064𞤣≮; [B1 B3 P1 V3 V6]; [B1 B3 P1 V3 V6] # -.𞤣≮
-B; \u06DD𻱧-。𞷁\u2064𞤣<\u0338; [B1 B3 P1 V3 V6]; [B1 B3 P1 V3 V6] # -.𞤣≮
-B; \u06DD𻱧-。𞷁\u2064𞤣≮; [B1 B3 P1 V3 V6]; [B1 B3 P1 V3 V6] # -.𞤣≮
-B; \u06DD𻱧-。𞷁\u2064𞤣<\u0338; [B1 B3 P1 V3 V6]; [B1 B3 P1 V3 V6] # -.𞤣≮
-B; \u06DD𻱧-。𞷁\u2064𞤁<\u0338; [B1 B3 P1 V3 V6]; [B1 B3 P1 V3 V6] # -.𞤣≮
-B; \u06DD𻱧-。𞷁\u2064𞤁≮; [B1 B3 P1 V3 V6]; [B1 B3 P1 V3 V6] # -.𞤣≮
-B; xn----dxc06304e.xn--gdh5020pk5c; [B1 B3 V3 V6]; [B1 B3 V3 V6] # -.𞤣≮
-B; \u06DD𻱧-。𞷁\u2064𞤁<\u0338; [B1 B3 P1 V3 V6]; [B1 B3 P1 V3 V6] # -.𞤣≮
-B; \u06DD𻱧-。𞷁\u2064𞤁≮; [B1 B3 P1 V3 V6]; [B1 B3 P1 V3 V6] # -.𞤣≮
-T; ß\u200C\uAAF6ᢥ.⊶ჁႶ; [C1 P1 V6]; [P1 V6] # ß꫶ᢥ.⊶ჁႶ
-N; ß\u200C\uAAF6ᢥ.⊶ჁႶ; [C1 P1 V6]; [C1 P1 V6] # ß꫶ᢥ.⊶ჁႶ
-T; ß\u200C\uAAF6ᢥ.⊶ჁႶ; [C1 P1 V6]; [P1 V6] # ß꫶ᢥ.⊶ჁႶ
-N; ß\u200C\uAAF6ᢥ.⊶ჁႶ; [C1 P1 V6]; [C1 P1 V6] # ß꫶ᢥ.⊶ჁႶ
-T; ß\u200C\uAAF6ᢥ.⊶ⴡⴖ; [C1]; xn--ss-4epx629f.xn--ifh802b6a # ß꫶ᢥ.⊶ⴡⴖ
-N; ß\u200C\uAAF6ᢥ.⊶ⴡⴖ; [C1]; [C1] # ß꫶ᢥ.⊶ⴡⴖ
-T; SS\u200C\uAAF6ᢥ.⊶ჁႶ; [C1 P1 V6]; [P1 V6] # ss꫶ᢥ.⊶ჁႶ
-N; SS\u200C\uAAF6ᢥ.⊶ჁႶ; [C1 P1 V6]; [C1 P1 V6] # ss꫶ᢥ.⊶ჁႶ
-T; ss\u200C\uAAF6ᢥ.⊶ⴡⴖ; [C1]; xn--ss-4epx629f.xn--ifh802b6a # ss꫶ᢥ.⊶ⴡⴖ
-N; ss\u200C\uAAF6ᢥ.⊶ⴡⴖ; [C1]; [C1] # ss꫶ᢥ.⊶ⴡⴖ
-T; Ss\u200C\uAAF6ᢥ.⊶Ⴡⴖ; [C1 P1 V6]; [P1 V6] # ss꫶ᢥ.⊶Ⴡⴖ
-N; Ss\u200C\uAAF6ᢥ.⊶Ⴡⴖ; [C1 P1 V6]; [C1 P1 V6] # ss꫶ᢥ.⊶Ⴡⴖ
-B; xn--ss-4epx629f.xn--5nd703gyrh; [V6]; [V6] # ss꫶ᢥ.⊶Ⴡⴖ
-B; xn--ss-4ep585bkm5p.xn--5nd703gyrh; [C1 V6]; [C1 V6] # ss꫶ᢥ.⊶Ⴡⴖ
-B; xn--ss-4epx629f.xn--ifh802b6a; ss\uAAF6ᢥ.⊶ⴡⴖ; xn--ss-4epx629f.xn--ifh802b6a; NV8 # ss꫶ᢥ.⊶ⴡⴖ
-B; ss\uAAF6ᢥ.⊶ⴡⴖ; ; xn--ss-4epx629f.xn--ifh802b6a; NV8 # ss꫶ᢥ.⊶ⴡⴖ
-B; SS\uAAF6ᢥ.⊶ჁႶ; [P1 V6]; [P1 V6] # ss꫶ᢥ.⊶ჁႶ
-B; Ss\uAAF6ᢥ.⊶Ⴡⴖ; [P1 V6]; [P1 V6] # ss꫶ᢥ.⊶Ⴡⴖ
-B; xn--ss-4epx629f.xn--undv409k; [V6]; [V6] # ss꫶ᢥ.⊶ჁႶ
-B; xn--ss-4ep585bkm5p.xn--ifh802b6a; [C1]; [C1] # ss꫶ᢥ.⊶ⴡⴖ
-B; xn--ss-4ep585bkm5p.xn--undv409k; [C1 V6]; [C1 V6] # ss꫶ᢥ.⊶ჁႶ
-B; xn--zca682johfi89m.xn--ifh802b6a; [C1]; [C1] # ß꫶ᢥ.⊶ⴡⴖ
-B; xn--zca682johfi89m.xn--undv409k; [C1 V6]; [C1 V6] # ß꫶ᢥ.⊶ჁႶ
-T; ß\u200C\uAAF6ᢥ.⊶ⴡⴖ; [C1]; xn--ss-4epx629f.xn--ifh802b6a # ß꫶ᢥ.⊶ⴡⴖ
-N; ß\u200C\uAAF6ᢥ.⊶ⴡⴖ; [C1]; [C1] # ß꫶ᢥ.⊶ⴡⴖ
-T; SS\u200C\uAAF6ᢥ.⊶ჁႶ; [C1 P1 V6]; [P1 V6] # ss꫶ᢥ.⊶ჁႶ
-N; SS\u200C\uAAF6ᢥ.⊶ჁႶ; [C1 P1 V6]; [C1 P1 V6] # ss꫶ᢥ.⊶ჁႶ
-T; ss\u200C\uAAF6ᢥ.⊶ⴡⴖ; [C1]; xn--ss-4epx629f.xn--ifh802b6a # ss꫶ᢥ.⊶ⴡⴖ
-N; ss\u200C\uAAF6ᢥ.⊶ⴡⴖ; [C1]; [C1] # ss꫶ᢥ.⊶ⴡⴖ
-T; Ss\u200C\uAAF6ᢥ.⊶Ⴡⴖ; [C1 P1 V6]; [P1 V6] # ss꫶ᢥ.⊶Ⴡⴖ
-N; Ss\u200C\uAAF6ᢥ.⊶Ⴡⴖ; [C1 P1 V6]; [C1 P1 V6] # ss꫶ᢥ.⊶Ⴡⴖ
-T; \u200D。ς󠁉; [C2 P1 V6]; [P1 V6 A4_2] # .ς
-N; \u200D。ς󠁉; [C2 P1 V6]; [C2 P1 V6] # .ς
-T; \u200D。Σ󠁉; [C2 P1 V6]; [P1 V6 A4_2] # .σ
-N; \u200D。Σ󠁉; [C2 P1 V6]; [C2 P1 V6] # .σ
-T; \u200D。σ󠁉; [C2 P1 V6]; [P1 V6 A4_2] # .σ
-N; \u200D。σ󠁉; [C2 P1 V6]; [C2 P1 V6] # .σ
-B; .xn--4xa24344p; [V6 A4_2]; [V6 A4_2]
-B; xn--1ug.xn--4xa24344p; [C2 V6]; [C2 V6] # .σ
-B; xn--1ug.xn--3xa44344p; [C2 V6]; [C2 V6] # .ς
-T; 𞵑ß.\u0751\u200D𞤛-; [B2 B3 C2 P1 V3 V6]; [B2 B3 P1 V3 V6] # ß.ݑ𞤽-
-N; 𞵑ß.\u0751\u200D𞤛-; [B2 B3 C2 P1 V3 V6]; [B2 B3 C2 P1 V3 V6] # ß.ݑ𞤽-
-T; 𞵑ß.\u0751\u200D𞤽-; [B2 B3 C2 P1 V3 V6]; [B2 B3 P1 V3 V6] # ß.ݑ𞤽-
-N; 𞵑ß.\u0751\u200D𞤽-; [B2 B3 C2 P1 V3 V6]; [B2 B3 C2 P1 V3 V6] # ß.ݑ𞤽-
-T; 𞵑SS.\u0751\u200D𞤛-; [B2 B3 C2 P1 V3 V6]; [B2 B3 P1 V3 V6] # ss.ݑ𞤽-
-N; 𞵑SS.\u0751\u200D𞤛-; [B2 B3 C2 P1 V3 V6]; [B2 B3 C2 P1 V3 V6] # ss.ݑ𞤽-
-T; 𞵑ss.\u0751\u200D𞤽-; [B2 B3 C2 P1 V3 V6]; [B2 B3 P1 V3 V6] # ss.ݑ𞤽-
-N; 𞵑ss.\u0751\u200D𞤽-; [B2 B3 C2 P1 V3 V6]; [B2 B3 C2 P1 V3 V6] # ss.ݑ𞤽-
-T; 𞵑Ss.\u0751\u200D𞤽-; [B2 B3 C2 P1 V3 V6]; [B2 B3 P1 V3 V6] # ss.ݑ𞤽-
-N; 𞵑Ss.\u0751\u200D𞤽-; [B2 B3 C2 P1 V3 V6]; [B2 B3 C2 P1 V3 V6] # ss.ݑ𞤽-
-B; xn--ss-2722a.xn----z3c03218a; [B2 B3 V3 V6]; [B2 B3 V3 V6] # ss.ݑ𞤽-
-B; xn--ss-2722a.xn----z3c011q9513b; [B2 B3 C2 V3 V6]; [B2 B3 C2 V3 V6] # ss.ݑ𞤽-
-B; xn--zca5423w.xn----z3c011q9513b; [B2 B3 C2 V3 V6]; [B2 B3 C2 V3 V6] # ß.ݑ𞤽-
-T; 𞵑ss.\u0751\u200D𞤛-; [B2 B3 C2 P1 V3 V6]; [B2 B3 P1 V3 V6] # ss.ݑ𞤽-
-N; 𞵑ss.\u0751\u200D𞤛-; [B2 B3 C2 P1 V3 V6]; [B2 B3 C2 P1 V3 V6] # ss.ݑ𞤽-
-T; 𞵑Ss.\u0751\u200D𞤛-; [B2 B3 C2 P1 V3 V6]; [B2 B3 P1 V3 V6] # ss.ݑ𞤽-
-N; 𞵑Ss.\u0751\u200D𞤛-; [B2 B3 C2 P1 V3 V6]; [B2 B3 C2 P1 V3 V6] # ss.ݑ𞤽-
-T; 𑘽\u200D𞤧.𐹧󡦪-; [B1 C2 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # 𑘽𞤧.𐹧-
-N; 𑘽\u200D𞤧.𐹧󡦪-; [B1 C2 P1 V3 V5 V6]; [B1 C2 P1 V3 V5 V6] # 𑘽𞤧.𐹧-
-T; 𑘽\u200D𞤧.𐹧󡦪-; [B1 C2 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # 𑘽𞤧.𐹧-
-N; 𑘽\u200D𞤧.𐹧󡦪-; [B1 C2 P1 V3 V5 V6]; [B1 C2 P1 V3 V5 V6] # 𑘽𞤧.𐹧-
-T; 𑘽\u200D𞤅.𐹧󡦪-; [B1 C2 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # 𑘽𞤧.𐹧-
-N; 𑘽\u200D𞤅.𐹧󡦪-; [B1 C2 P1 V3 V5 V6]; [B1 C2 P1 V3 V5 V6] # 𑘽𞤧.𐹧-
-B; xn--qb2ds317a.xn----k26iq1483f; [B1 V3 V5 V6]; [B1 V3 V5 V6]
-B; xn--1ugz808gdimf.xn----k26iq1483f; [B1 C2 V3 V5 V6]; [B1 C2 V3 V5 V6] # 𑘽𞤧.𐹧-
-T; 𑘽\u200D𞤅.𐹧󡦪-; [B1 C2 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # 𑘽𞤧.𐹧-
-N; 𑘽\u200D𞤅.𐹧󡦪-; [B1 C2 P1 V3 V5 V6]; [B1 C2 P1 V3 V5 V6] # 𑘽𞤧.𐹧-
-B; ⒒򨘙򳳠𑓀.-󞡊; [P1 V3 V6]; [P1 V3 V6]
-B; 11.򨘙򳳠𑓀.-󞡊; [P1 V3 V6]; [P1 V3 V6]
-B; 11.xn--uz1d59632bxujd.xn----x310m; [V3 V6]; [V3 V6]
-B; xn--3shy698frsu9dt1me.xn----x310m; [V3 V6]; [V3 V6]
-T; -。\u200D; [C2 V3]; [V3] # -.
-N; -。\u200D; [C2 V3]; [C2 V3] # -.
-T; -。\u200D; [C2 V3]; [V3] # -.
-N; -。\u200D; [C2 V3]; [C2 V3] # -.
-B; -.; [V3]; [V3]
-B; -.xn--1ug; [C2 V3]; [C2 V3] # -.
-T; ≮ᡬ.ς¹-\uDB09; [P1 V6]; [P1 V6 A3] # ≮ᡬ.ς1-
-N; ≮ᡬ.ς¹-\uDB09; [P1 V6]; [P1 V6 A3] # ≮ᡬ.ς1-
-T; <\u0338ᡬ.ς¹-\uDB09; [P1 V6]; [P1 V6 A3] # ≮ᡬ.ς1-
-N; <\u0338ᡬ.ς¹-\uDB09; [P1 V6]; [P1 V6 A3] # ≮ᡬ.ς1-
-T; ≮ᡬ.ς1-\uDB09; [P1 V6]; [P1 V6 A3] # ≮ᡬ.ς1-
-N; ≮ᡬ.ς1-\uDB09; [P1 V6]; [P1 V6 A3] # ≮ᡬ.ς1-
-T; <\u0338ᡬ.ς1-\uDB09; [P1 V6]; [P1 V6 A3] # ≮ᡬ.ς1-
-N; <\u0338ᡬ.ς1-\uDB09; [P1 V6]; [P1 V6 A3] # ≮ᡬ.ς1-
-B; <\u0338ᡬ.Σ1-\uDB09; [P1 V6]; [P1 V6 A3] # ≮ᡬ.σ1-
-B; ≮ᡬ.Σ1-\uDB09; [P1 V6]; [P1 V6 A3] # ≮ᡬ.σ1-
-B; ≮ᡬ.σ1-\uDB09; [P1 V6]; [P1 V6 A3] # ≮ᡬ.σ1-
-B; <\u0338ᡬ.σ1-\uDB09; [P1 V6]; [P1 V6 A3] # ≮ᡬ.σ1-
-B; xn--88e732c.σ1-\uDB09; [P1 V6]; [P1 V6 A3] # ≮ᡬ.σ1-
-B; XN--88E732C.Σ1-\uDB09; [P1 V6]; [P1 V6 A3] # ≮ᡬ.σ1-
-T; xn--88e732c.ς1-\uDB09; [P1 V6]; [P1 V6 A3] # ≮ᡬ.ς1-
-N; xn--88e732c.ς1-\uDB09; [P1 V6]; [P1 V6 A3] # ≮ᡬ.ς1-
-T; Xn--88E732c.ς1-\uDB09; [P1 V6]; [P1 V6 A3] # ≮ᡬ.ς1-
-N; Xn--88E732c.ς1-\uDB09; [P1 V6]; [P1 V6 A3] # ≮ᡬ.ς1-
-B; Xn--88E732c.σ1-\uDB09; [P1 V6]; [P1 V6 A3] # ≮ᡬ.σ1-
-B; <\u0338ᡬ.Σ¹-\uDB09; [P1 V6]; [P1 V6 A3] # ≮ᡬ.σ1-
-B; ≮ᡬ.Σ¹-\uDB09; [P1 V6]; [P1 V6 A3] # ≮ᡬ.σ1-
-B; ≮ᡬ.σ¹-\uDB09; [P1 V6]; [P1 V6 A3] # ≮ᡬ.σ1-
-B; <\u0338ᡬ.σ¹-\uDB09; [P1 V6]; [P1 V6 A3] # ≮ᡬ.σ1-
-B; ቬ򔠼񁗶。𐨬𝟠; [P1 V6]; [P1 V6]
-B; ቬ򔠼񁗶。𐨬8; [P1 V6]; [P1 V6]
-B; xn--d0d41273c887z.xn--8-ob5i; [V6]; [V6]
-B; 𐱲。蔫\u0766; [B5 B6 P1 V6]; [B5 B6 P1 V6] # .蔫ݦ
-B; xn--389c.xn--qpb7055d; [B5 B6 V6]; [B5 B6 V6] # .蔫ݦ
-B; 򒲧₃。ꡚ𛇑󠄳\u0647; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 3.ꡚ𛇑ه
-B; 򒲧3。ꡚ𛇑󠄳\u0647; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 3.ꡚ𛇑ه
-B; xn--3-ep59g.xn--jhb5904fcp0h; [B5 B6 V6]; [B5 B6 V6] # 3.ꡚ𛇑ه
-T; 蓸\u0642≠.ß; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 蓸ق≠.ß
-N; 蓸\u0642≠.ß; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 蓸ق≠.ß
-T; 蓸\u0642=\u0338.ß; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 蓸ق≠.ß
-N; 蓸\u0642=\u0338.ß; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 蓸ق≠.ß
-B; 蓸\u0642=\u0338.SS; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 蓸ق≠.ss
-B; 蓸\u0642≠.SS; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 蓸ق≠.ss
-B; 蓸\u0642≠.ss; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 蓸ق≠.ss
-B; 蓸\u0642=\u0338.ss; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 蓸ق≠.ss
-B; 蓸\u0642=\u0338.Ss; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 蓸ق≠.ss
-B; 蓸\u0642≠.Ss; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 蓸ق≠.ss
-B; xn--ehb015lnt1e.ss; [B5 B6 V6]; [B5 B6 V6] # 蓸ق≠.ss
-B; xn--ehb015lnt1e.xn--zca; [B5 B6 V6]; [B5 B6 V6] # 蓸ق≠.ß
-T; \u084E\u067A\u0DD3⒊.𐹹𞱩󠃪\u200C; [B1 C1 P1 V6]; [B1 P1 V6] # ࡎٺී⒊.𐹹
-N; \u084E\u067A\u0DD3⒊.𐹹𞱩󠃪\u200C; [B1 C1 P1 V6]; [B1 C1 P1 V6] # ࡎٺී⒊.𐹹
-T; \u084E\u067A\u0DD33..𐹹𞱩󠃪\u200C; [B1 C1 P1 V6 A4_2]; [B1 P1 V6 A4_2] # ࡎٺී3..𐹹
-N; \u084E\u067A\u0DD33..𐹹𞱩󠃪\u200C; [B1 C1 P1 V6 A4_2]; [B1 C1 P1 V6 A4_2] # ࡎٺී3..𐹹
-B; xn--3-prc71ls9j..xn--xo0dw109an237f; [B1 V6 A4_2]; [B1 V6 A4_2] # ࡎٺී3..𐹹
-B; xn--3-prc71ls9j..xn--0ug3205g7eyf3c96h; [B1 C1 V6 A4_2]; [B1 C1 V6 A4_2] # ࡎٺී3..𐹹
-B; xn--zib94gfziuq1a.xn--xo0dw109an237f; [B1 V6]; [B1 V6] # ࡎٺී⒊.𐹹
-B; xn--zib94gfziuq1a.xn--0ug3205g7eyf3c96h; [B1 C1 V6]; [B1 C1 V6] # ࡎٺී⒊.𐹹
-T; ς\u200D-.Ⴣ𦟙; [C2 P1 V3 V6]; [P1 V3 V6] # ς-.Ⴣ𦟙
-N; ς\u200D-.Ⴣ𦟙; [C2 P1 V3 V6]; [C2 P1 V3 V6] # ς-.Ⴣ𦟙
-T; ς\u200D-.ⴣ𦟙; [C2 V3]; [V3] # ς-.ⴣ𦟙
-N; ς\u200D-.ⴣ𦟙; [C2 V3]; [C2 V3] # ς-.ⴣ𦟙
-T; Σ\u200D-.Ⴣ𦟙; [C2 P1 V3 V6]; [P1 V3 V6] # σ-.Ⴣ𦟙
-N; Σ\u200D-.Ⴣ𦟙; [C2 P1 V3 V6]; [C2 P1 V3 V6] # σ-.Ⴣ𦟙
-T; σ\u200D-.ⴣ𦟙; [C2 V3]; [V3] # σ-.ⴣ𦟙
-N; σ\u200D-.ⴣ𦟙; [C2 V3]; [C2 V3] # σ-.ⴣ𦟙
-B; xn----zmb.xn--rlj2573p; [V3]; [V3]
-B; xn----zmb048s.xn--rlj2573p; [C2 V3]; [C2 V3] # σ-.ⴣ𦟙
-B; xn----zmb.xn--7nd64871a; [V3 V6]; [V3 V6]
-B; xn----zmb048s.xn--7nd64871a; [C2 V3 V6]; [C2 V3 V6] # σ-.Ⴣ𦟙
-B; xn----xmb348s.xn--rlj2573p; [C2 V3]; [C2 V3] # ς-.ⴣ𦟙
-B; xn----xmb348s.xn--7nd64871a; [C2 V3 V6]; [C2 V3 V6] # ς-.Ⴣ𦟙
-B; ≠。🞳𝟲; [P1 V6]; [P1 V6]
-B; =\u0338。🞳𝟲; [P1 V6]; [P1 V6]
-B; ≠。🞳6; [P1 V6]; [P1 V6]
-B; =\u0338。🞳6; [P1 V6]; [P1 V6]
-B; xn--1ch.xn--6-dl4s; [V6]; [V6]
-B; 󅬽.蠔; [P1 V6]; [P1 V6]
-B; xn--g747d.xn--xl2a; [V6]; [V6]
-T; \u08E6\u200D.뼽; [C2 V5]; [V5] # ࣦ.뼽
-N; \u08E6\u200D.뼽; [C2 V5]; [C2 V5] # ࣦ.뼽
-T; \u08E6\u200D.뼽; [C2 V5]; [V5] # ࣦ.뼽
-N; \u08E6\u200D.뼽; [C2 V5]; [C2 V5] # ࣦ.뼽
-T; \u08E6\u200D.뼽; [C2 V5]; [V5] # ࣦ.뼽
-N; \u08E6\u200D.뼽; [C2 V5]; [C2 V5] # ࣦ.뼽
-T; \u08E6\u200D.뼽; [C2 V5]; [V5] # ࣦ.뼽
-N; \u08E6\u200D.뼽; [C2 V5]; [C2 V5] # ࣦ.뼽
-B; xn--p0b.xn--e43b; [V5]; [V5] # ࣦ.뼽
-B; xn--p0b869i.xn--e43b; [C2 V5]; [C2 V5] # ࣦ.뼽
-B; ₇\u0BCD􃂷\u06D2。👖\u0675-𞪑; [B1 P1 V6]; [B1 P1 V6] # 7்ے.👖اٴ-
-B; 7\u0BCD􃂷\u06D2。👖\u0627\u0674-𞪑; [B1 P1 V6]; [B1 P1 V6] # 7்ے.👖اٴ-
-B; xn--7-rwc839aj3073c.xn----ymc5uv818oghka; [B1 V6]; [B1 V6] # 7்ے.👖اٴ-
-B; -。\u077B; [B1 V3]; [B1 V3] # -.ݻ
-B; -。\u077B; [B1 V3]; [B1 V3] # -.ݻ
-B; -.xn--cqb; [B1 V3]; [B1 V3] # -.ݻ
-B; 𑇌𵛓。-⒈ꡏ\u072B; [B1 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # 𑇌.-⒈ꡏܫ
-B; 𑇌𵛓。-1.ꡏ\u072B; [B1 B5 B6 P1 V3 V5 V6]; [B1 B5 B6 P1 V3 V5 V6] # 𑇌.-1.ꡏܫ
-B; xn--8d1dg030h.-1.xn--1nb7163f; [B1 B5 B6 V3 V5 V6]; [B1 B5 B6 V3 V5 V6] # 𑇌.-1.ꡏܫ
-B; xn--8d1dg030h.xn----u1c466tp10j; [B1 V3 V5 V6]; [B1 V3 V5 V6] # 𑇌.-⒈ꡏܫ
-B; 璛\u1734\u06AF.-; [B1 B5 B6 V3]; [B1 B5 B6 V3] # 璛᜴گ.-
-B; xn--ikb175frt4e.-; [B1 B5 B6 V3]; [B1 B5 B6 V3] # 璛᜴گ.-
-B; 󠆰\u08A1\u0A4D샕.𐹲휁; [B1 B2 B3]; [B1 B2 B3] # ࢡ੍샕.𐹲휁
-B; 󠆰\u08A1\u0A4D샕.𐹲휁; [B1 B2 B3]; [B1 B2 B3] # ࢡ੍샕.𐹲휁
-B; 󠆰\u08A1\u0A4D샕.𐹲휁; [B1 B2 B3]; [B1 B2 B3] # ࢡ੍샕.𐹲휁
-B; 󠆰\u08A1\u0A4D샕.𐹲휁; [B1 B2 B3]; [B1 B2 B3] # ࢡ੍샕.𐹲휁
-B; xn--qyb07fj857a.xn--728bv72h; [B1 B2 B3]; [B1 B2 B3] # ࢡ੍샕.𐹲휁
-B; 񍨽.񋸕; [P1 V6]; [P1 V6]
-B; 񍨽.񋸕; [P1 V6]; [P1 V6]
-B; xn--pr3x.xn--rv7w; [V6]; [V6]
-B; \u067D𞥕。𑑂𞤶Ⴍ-; [B1 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # ٽ𞥕.𑑂𞤶Ⴍ-
-B; \u067D𞥕。𑑂𞤶Ⴍ-; [B1 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # ٽ𞥕.𑑂𞤶Ⴍ-
-B; \u067D𞥕。𑑂𞤶ⴍ-; [B1 V3 V5]; [B1 V3 V5] # ٽ𞥕.𑑂𞤶ⴍ-
-B; \u067D𞥕。𑑂𞤔Ⴍ-; [B1 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # ٽ𞥕.𑑂𞤶Ⴍ-
-B; \u067D𞥕。𑑂𞤔ⴍ-; [B1 V3 V5]; [B1 V3 V5] # ٽ𞥕.𑑂𞤶ⴍ-
-B; xn--2ib0338v.xn----zvs0199fo91g; [B1 V3 V5]; [B1 V3 V5] # ٽ𞥕.𑑂𞤶ⴍ-
-B; xn--2ib0338v.xn----w0g2740ro9vg; [B1 V3 V5 V6]; [B1 V3 V5 V6] # ٽ𞥕.𑑂𞤶Ⴍ-
-B; \u067D𞥕。𑑂𞤶ⴍ-; [B1 V3 V5]; [B1 V3 V5] # ٽ𞥕.𑑂𞤶ⴍ-
-B; \u067D𞥕。𑑂𞤔Ⴍ-; [B1 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # ٽ𞥕.𑑂𞤶Ⴍ-
-B; \u067D𞥕。𑑂𞤔ⴍ-; [B1 V3 V5]; [B1 V3 V5] # ٽ𞥕.𑑂𞤶ⴍ-
-B; 𐯀𐸉𞧏。񢚧₄Ⴋ񂹫; [P1 V6]; [P1 V6]
-B; 𐯀𐸉𞧏。񢚧4Ⴋ񂹫; [P1 V6]; [P1 V6]
-B; 𐯀𐸉𞧏。񢚧4ⴋ񂹫; [P1 V6]; [P1 V6]
-B; xn--039c42bq865a.xn--4-wvs27840bnrzm; [V6]; [V6]
-B; xn--039c42bq865a.xn--4-t0g49302fnrzm; [V6]; [V6]
-B; 𐯀𐸉𞧏。񢚧₄ⴋ񂹫; [P1 V6]; [P1 V6]
-B; 4\u06BD︒󠑥.≠; [B1 P1 V6]; [B1 P1 V6] # 4ڽ︒.≠
-B; 4\u06BD︒󠑥.=\u0338; [B1 P1 V6]; [B1 P1 V6] # 4ڽ︒.≠
-B; 4\u06BD。󠑥.≠; [B1 P1 V6]; [B1 P1 V6] # 4ڽ..≠
-B; 4\u06BD。󠑥.=\u0338; [B1 P1 V6]; [B1 P1 V6] # 4ڽ..≠
-B; xn--4-kvc.xn--5136e.xn--1ch; [B1 V6]; [B1 V6] # 4ڽ..≠
-B; xn--4-kvc5601q2h50i.xn--1ch; [B1 V6]; [B1 V6] # 4ڽ︒.≠
-B; 𝟓。\u06D7; [V5]; [V5] # 5.ۗ
-B; 5。\u06D7; [V5]; [V5] # 5.ۗ
-B; 5.xn--nlb; [V5]; [V5] # 5.ۗ
-T; \u200C򺸩.⾕; [C1 P1 V6]; [P1 V6] # .谷
-N; \u200C򺸩.⾕; [C1 P1 V6]; [C1 P1 V6] # .谷
-T; \u200C򺸩.谷; [C1 P1 V6]; [P1 V6] # .谷
-N; \u200C򺸩.谷; [C1 P1 V6]; [C1 P1 V6] # .谷
-B; xn--i183d.xn--6g3a; [V6]; [V6]
-B; xn--0ug26167i.xn--6g3a; [C1 V6]; [C1 V6] # .谷
-T; ︒󎰇\u200D.-\u073C\u200C; [C1 C2 P1 V3 V6]; [P1 V3 V6] # ︒.-ܼ
-N; ︒󎰇\u200D.-\u073C\u200C; [C1 C2 P1 V3 V6]; [C1 C2 P1 V3 V6] # ︒.-ܼ
-T; 。󎰇\u200D.-\u073C\u200C; [C1 C2 P1 V3 V6 A4_2]; [P1 V3 V6 A4_2] # ..-ܼ
-N; 。󎰇\u200D.-\u073C\u200C; [C1 C2 P1 V3 V6 A4_2]; [C1 C2 P1 V3 V6 A4_2] # ..-ܼ
-B; .xn--hh50e.xn----t2c; [V3 V6 A4_2]; [V3 V6 A4_2] # ..-ܼ
-B; .xn--1ug05310k.xn----t2c071q; [C1 C2 V3 V6 A4_2]; [C1 C2 V3 V6 A4_2] # ..-ܼ
-B; xn--y86c71305c.xn----t2c; [V3 V6]; [V3 V6] # ︒.-ܼ
-B; xn--1ug1658ftw26f.xn----t2c071q; [C1 C2 V3 V6]; [C1 C2 V3 V6] # ︒.-ܼ
-B; ≯𞤟。ᡨ; [B1 P1 V6]; [B1 P1 V6]
-B; >\u0338𞤟。ᡨ; [B1 P1 V6]; [B1 P1 V6]
-B; >\u0338𞥁。ᡨ; [B1 P1 V6]; [B1 P1 V6]
-B; ≯𞥁。ᡨ; [B1 P1 V6]; [B1 P1 V6]
-B; xn--hdhz520p.xn--48e; [B1 V6]; [B1 V6]
-B; \u0F74𫫰𝨄。\u0713𐹦; [B1 V5]; [B1 V5] # ུ𫫰𝨄.ܓ𐹦
-B; xn--ned8985uo92e.xn--dnb6395k; [B1 V5]; [B1 V5] # ུ𫫰𝨄.ܓ𐹦
-B; \u033C\u07DB⁷𝟹。𝟬; [B1 V5]; [B1 V5] # ̼ߛ73.0
-B; \u033C\u07DB73。0; [B1 V5]; [B1 V5] # ̼ߛ73.0
-B; xn--73-9yb648b.0; [B1 V5]; [B1 V5] # ̼ߛ73.0
-T; \u200D.𝟗; [C2]; [A4_2] # .9
-N; \u200D.𝟗; [C2]; [C2] # .9
-T; \u200D.9; [C2]; [A4_2] # .9
-N; \u200D.9; [C2]; [C2] # .9
-B; .9; [A4_2]; [A4_2]
-B; xn--1ug.9; [C2]; [C2] # .9
-B; 9; ;
-B; \u0779ᡭ𪕈。\u06B6\u08D9; [B2 B3]; [B2 B3] # ݹᡭ𪕈.ڶࣙ
-B; xn--9pb497fs270c.xn--pkb80i; [B2 B3]; [B2 B3] # ݹᡭ𪕈.ڶࣙ
-B; \u07265\u07E2겙。\u1CF4𐷚; [B1 B2 B3 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # ܦ5ߢ겙.᳴
-B; \u07265\u07E2겙。\u1CF4𐷚; [B1 B2 B3 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # ܦ5ߢ겙.᳴
-B; \u07265\u07E2겙。\u1CF4𐷚; [B1 B2 B3 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # ܦ5ߢ겙.᳴
-B; \u07265\u07E2겙。\u1CF4𐷚; [B1 B2 B3 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # ܦ5ߢ겙.᳴
-B; xn--5-j1c97c2483c.xn--e7f2093h; [B1 B2 B3 V5 V6]; [B1 B2 B3 V5 V6] # ܦ5ߢ겙.᳴
-T; Ⴍ𿣍ꡨ\u05AE。Ⴞ\u200C\u200C; [C1 P1 V6]; [P1 V6] # Ⴍꡨ֮.Ⴞ
-N; Ⴍ𿣍ꡨ\u05AE。Ⴞ\u200C\u200C; [C1 P1 V6]; [C1 P1 V6] # Ⴍꡨ֮.Ⴞ
-T; ⴍ𿣍ꡨ\u05AE。ⴞ\u200C\u200C; [C1 P1 V6]; [P1 V6] # ⴍꡨ֮.ⴞ
-N; ⴍ𿣍ꡨ\u05AE。ⴞ\u200C\u200C; [C1 P1 V6]; [C1 P1 V6] # ⴍꡨ֮.ⴞ
-B; xn--5cb172r175fug38a.xn--mlj; [V6]; [V6] # ⴍꡨ֮.ⴞ
-B; xn--5cb172r175fug38a.xn--0uga051h; [C1 V6]; [C1 V6] # ⴍꡨ֮.ⴞ
-B; xn--5cb347co96jug15a.xn--2nd; [V6]; [V6] # Ⴍꡨ֮.Ⴞ
-B; xn--5cb347co96jug15a.xn--2nd059ea; [C1 V6]; [C1 V6] # Ⴍꡨ֮.Ⴞ
-B; 𐋰。󑓱; [P1 V6]; [P1 V6]
-B; xn--k97c.xn--q031e; [V6]; [V6]
-B; 󡎦\u17B4\u0B4D.𐹾; [B1 P1 V6]; [B1 P1 V6] # ୍.𐹾
-B; xn--9ic364dho91z.xn--2o0d; [B1 V6]; [B1 V6] # ୍.𐹾
-B; \u08DFႫ𶿸귤.򠅼𝟢휪\u0AE3; [P1 V5 V6]; [P1 V5 V6] # ࣟႫ귤.0휪ૣ
-B; \u08DFႫ𶿸귤.򠅼𝟢휪\u0AE3; [P1 V5 V6]; [P1 V5 V6] # ࣟႫ귤.0휪ૣ
-B; \u08DFႫ𶿸귤.򠅼0휪\u0AE3; [P1 V5 V6]; [P1 V5 V6] # ࣟႫ귤.0휪ૣ
-B; \u08DFႫ𶿸귤.򠅼0휪\u0AE3; [P1 V5 V6]; [P1 V5 V6] # ࣟႫ귤.0휪ૣ
-B; \u08DFⴋ𶿸귤.򠅼0휪\u0AE3; [P1 V5 V6]; [P1 V5 V6] # ࣟⴋ귤.0휪ૣ
-B; \u08DFⴋ𶿸귤.򠅼0휪\u0AE3; [P1 V5 V6]; [P1 V5 V6] # ࣟⴋ귤.0휪ૣ
-B; xn--i0b436pkl2g2h42a.xn--0-8le8997mulr5f; [V5 V6]; [V5 V6] # ࣟⴋ귤.0휪ૣ
-B; xn--i0b601b6r7l2hs0a.xn--0-8le8997mulr5f; [V5 V6]; [V5 V6] # ࣟႫ귤.0휪ૣ
-B; \u08DFⴋ𶿸귤.򠅼𝟢휪\u0AE3; [P1 V5 V6]; [P1 V5 V6] # ࣟⴋ귤.0휪ૣ
-B; \u08DFⴋ𶿸귤.򠅼𝟢휪\u0AE3; [P1 V5 V6]; [P1 V5 V6] # ࣟⴋ귤.0휪ૣ
-B; \u0784.𞡝\u0601; [P1 V6]; [P1 V6] # ބ.𞡝
-B; \u0784.𞡝\u0601; [P1 V6]; [P1 V6] # ބ.𞡝
-B; xn--lqb.xn--jfb1808v; [V6]; [V6] # ބ.𞡝
-T; \u0ACD₃.8\uA8C4\u200D🃤; [V5]; [V5] # ્3.8꣄🃤
-N; \u0ACD₃.8\uA8C4\u200D🃤; [V5]; [V5] # ્3.8꣄🃤
-T; \u0ACD3.8\uA8C4\u200D🃤; [V5]; [V5] # ્3.8꣄🃤
-N; \u0ACD3.8\uA8C4\u200D🃤; [V5]; [V5] # ્3.8꣄🃤
-B; xn--3-yke.xn--8-sl4et308f; [V5]; [V5] # ્3.8꣄🃤
-B; xn--3-yke.xn--8-ugnv982dbkwm; [V5]; [V5] # ્3.8꣄🃤
-B; ℻⩷𝆆。𞤠󠆁\u180C; [B6]; [B6]
-B; FAX⩷𝆆。𞤠󠆁\u180C; [B6]; [B6]
-B; fax⩷𝆆。𞥂󠆁\u180C; [B6]; [B6]
-B; Fax⩷𝆆。𞤠󠆁\u180C; [B6]; [B6]
-B; xn--fax-4c9a1676t.xn--6e6h; [B6]; [B6]
-B; ℻⩷𝆆。𞥂󠆁\u180C; [B6]; [B6]
-B; FAX⩷𝆆。𞥂󠆁\u180C; [B6]; [B6]
-B; fax⩷𝆆。𞤠󠆁\u180C; [B6]; [B6]
-B; fax⩷𝆆.𞥂; [B6]; [B6]
-B; FAX⩷𝆆.𞤠; [B6]; [B6]
-B; Fax⩷𝆆.𞤠; [B6]; [B6]
-B; FAX⩷𝆆.𞥂; [B6]; [B6]
-B; Fax⩷𝆆.𞥂; [B6]; [B6]
-B; ꡕ≠\u105E󮿱。𐵧󠄫\uFFA0; [B2 B3 P1 V6]; [B2 B3 P1 V6] # ꡕ≠ၞ.
-B; ꡕ=\u0338\u105E󮿱。𐵧󠄫\uFFA0; [B2 B3 P1 V6]; [B2 B3 P1 V6] # ꡕ≠ၞ.
-B; ꡕ≠\u105E󮿱。𐵧󠄫\u1160; [B2 B3 P1 V6]; [B2 B3 P1 V6] # ꡕ≠ၞ.
-B; ꡕ=\u0338\u105E󮿱。𐵧󠄫\u1160; [B2 B3 P1 V6]; [B2 B3 P1 V6] # ꡕ≠ၞ.
-B; xn--cld333gn31h0158l.xn--psd1510k; [B2 B3 V6]; [B2 B3 V6] # ꡕ≠ၞ.
-B; xn--cld333gn31h0158l.xn--cl7c96v; [B2 B3 V6]; [B2 B3 V6] # ꡕ≠ၞ.
-T; 鱊。\u200C; [C1]; xn--rt6a. # 鱊.
-N; 鱊。\u200C; [C1]; [C1] # 鱊.
-B; xn--rt6a.; 鱊.; xn--rt6a.
-B; 鱊.; ; xn--rt6a.
-B; xn--rt6a.xn--0ug; [C1]; [C1] # 鱊.
-B; 8𐹣.𑍨; [B1 B3 B6 V5]; [B1 B3 B6 V5]
-B; 8𐹣.𑍨; [B1 B3 B6 V5]; [B1 B3 B6 V5]
-B; xn--8-d26i.xn--0p1d; [B1 B3 B6 V5]; [B1 B3 B6 V5]
-B; ⏹𐧀.𐫯; [B1]; [B1]
-B; ⏹𐧀.𐫯; [B1]; [B1]
-B; xn--qoh9161g.xn--1x9c; [B1]; [B1]
-T; 𞤺\u07CC4.\u200D; [B1 C2]; xn--4-0bd15808a. # 𞤺ߌ4.
-N; 𞤺\u07CC4.\u200D; [B1 C2]; [B1 C2] # 𞤺ߌ4.
-T; 𞤺\u07CC4.\u200D; [B1 C2]; xn--4-0bd15808a. # 𞤺ߌ4.
-N; 𞤺\u07CC4.\u200D; [B1 C2]; [B1 C2] # 𞤺ߌ4.
-T; 𞤘\u07CC4.\u200D; [B1 C2]; xn--4-0bd15808a. # 𞤺ߌ4.
-N; 𞤘\u07CC4.\u200D; [B1 C2]; [B1 C2] # 𞤺ߌ4.
-B; xn--4-0bd15808a.; 𞤺\u07CC4.; xn--4-0bd15808a. # 𞤺ߌ4.
-B; 𞤺\u07CC4.; ; xn--4-0bd15808a. # 𞤺ߌ4.
-B; 𞤘\u07CC4.; 𞤺\u07CC4.; xn--4-0bd15808a. # 𞤺ߌ4.
-B; xn--4-0bd15808a.xn--1ug; [B1 C2]; [B1 C2] # 𞤺ߌ4.
-T; 𞤘\u07CC4.\u200D; [B1 C2]; xn--4-0bd15808a. # 𞤺ߌ4.
-N; 𞤘\u07CC4.\u200D; [B1 C2]; [B1 C2] # 𞤺ߌ4.
-B; ⒗\u0981\u20EF-.\u08E2•; [B1 P1 V3 V6]; [B1 P1 V3 V6] # ⒗ঁ⃯-.•
-B; 16.\u0981\u20EF-.\u08E2•; [B1 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # 16.ঁ⃯-.•
-B; 16.xn----z0d801p.xn--l0b810j; [B1 V3 V5 V6]; [B1 V3 V5 V6] # 16.ঁ⃯-.•
-B; xn----z0d801p6kd.xn--l0b810j; [B1 V3 V6]; [B1 V3 V6] # ⒗ঁ⃯-.•
-B; -。䏛; [V3]; [V3]
-B; -。䏛; [V3]; [V3]
-B; -.xn--xco; [V3]; [V3]
-T; \u200C񒃠.\u200D; [C1 C2 P1 V6]; [P1 V6] # .
-N; \u200C񒃠.\u200D; [C1 C2 P1 V6]; [C1 C2 P1 V6] # .
-T; \u200C񒃠.\u200D; [C1 C2 P1 V6]; [P1 V6] # .
-N; \u200C񒃠.\u200D; [C1 C2 P1 V6]; [C1 C2 P1 V6] # .
-B; xn--dj8y.; [V6]; [V6]
-B; xn--0ugz7551c.xn--1ug; [C1 C2 V6]; [C1 C2 V6] # .
-T; ⒈⓰󥣇。𐹠\u200D򗷦Ⴕ; [B1 C2 P1 V6]; [B1 P1 V6] # ⒈⓰.𐹠Ⴕ
-N; ⒈⓰󥣇。𐹠\u200D򗷦Ⴕ; [B1 C2 P1 V6]; [B1 C2 P1 V6] # ⒈⓰.𐹠Ⴕ
-T; 1.⓰󥣇。𐹠\u200D򗷦Ⴕ; [B1 C2 P1 V6]; [B1 P1 V6] # 1.⓰.𐹠Ⴕ
-N; 1.⓰󥣇。𐹠\u200D򗷦Ⴕ; [B1 C2 P1 V6]; [B1 C2 P1 V6] # 1.⓰.𐹠Ⴕ
-T; 1.⓰󥣇。𐹠\u200D򗷦ⴕ; [B1 C2 P1 V6]; [B1 P1 V6] # 1.⓰.𐹠ⴕ
-N; 1.⓰󥣇。𐹠\u200D򗷦ⴕ; [B1 C2 P1 V6]; [B1 C2 P1 V6] # 1.⓰.𐹠ⴕ
-B; 1.xn--svh00804k.xn--dljv223ee5t2d; [B1 V6]; [B1 V6]
-B; 1.xn--svh00804k.xn--1ug352csp0psg45e; [B1 C2 V6]; [B1 C2 V6] # 1.⓰.𐹠ⴕ
-B; 1.xn--svh00804k.xn--tnd1990ke579c; [B1 V6]; [B1 V6]
-B; 1.xn--svh00804k.xn--tnd969erj4psgl3e; [B1 C2 V6]; [B1 C2 V6] # 1.⓰.𐹠Ⴕ
-T; ⒈⓰󥣇。𐹠\u200D򗷦ⴕ; [B1 C2 P1 V6]; [B1 P1 V6] # ⒈⓰.𐹠ⴕ
-N; ⒈⓰󥣇。𐹠\u200D򗷦ⴕ; [B1 C2 P1 V6]; [B1 C2 P1 V6] # ⒈⓰.𐹠ⴕ
-B; xn--tsh0nz9380h.xn--dljv223ee5t2d; [B1 V6]; [B1 V6]
-B; xn--tsh0nz9380h.xn--1ug352csp0psg45e; [B1 C2 V6]; [B1 C2 V6] # ⒈⓰.𐹠ⴕ
-B; xn--tsh0nz9380h.xn--tnd1990ke579c; [B1 V6]; [B1 V6]
-B; xn--tsh0nz9380h.xn--tnd969erj4psgl3e; [B1 C2 V6]; [B1 C2 V6] # ⒈⓰.𐹠Ⴕ
-T; 𞠊ᠮ-ß。\u1CD0効\u0601𷣭; [B1 B2 B3 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # 𞠊ᠮ-ß.᳐効
-N; 𞠊ᠮ-ß。\u1CD0効\u0601𷣭; [B1 B2 B3 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # 𞠊ᠮ-ß.᳐効
-T; 𞠊ᠮ-ß。\u1CD0効\u0601𷣭; [B1 B2 B3 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # 𞠊ᠮ-ß.᳐効
-N; 𞠊ᠮ-ß。\u1CD0効\u0601𷣭; [B1 B2 B3 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # 𞠊ᠮ-ß.᳐効
-B; 𞠊ᠮ-SS。\u1CD0効\u0601𷣭; [B1 B2 B3 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # 𞠊ᠮ-ss.᳐効
-B; 𞠊ᠮ-ss。\u1CD0効\u0601𷣭; [B1 B2 B3 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # 𞠊ᠮ-ss.᳐効
-B; 𞠊ᠮ-Ss。\u1CD0効\u0601𷣭; [B1 B2 B3 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # 𞠊ᠮ-ss.᳐効
-B; xn---ss-21t18904a.xn--jfb197i791bi6x4c; [B1 B2 B3 V5 V6]; [B1 B2 B3 V5 V6] # 𞠊ᠮ-ss.᳐効
-B; xn----qfa310pg973b.xn--jfb197i791bi6x4c; [B1 B2 B3 V5 V6]; [B1 B2 B3 V5 V6] # 𞠊ᠮ-ß.᳐効
-B; 𞠊ᠮ-SS。\u1CD0効\u0601𷣭; [B1 B2 B3 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # 𞠊ᠮ-ss.᳐効
-B; 𞠊ᠮ-ss。\u1CD0効\u0601𷣭; [B1 B2 B3 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # 𞠊ᠮ-ss.᳐効
-B; 𞠊ᠮ-Ss。\u1CD0効\u0601𷣭; [B1 B2 B3 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # 𞠊ᠮ-ss.᳐効
-B; 𑇀.󠨱; [P1 V5 V6]; [P1 V5 V6]
-B; xn--wd1d.xn--k946e; [V5 V6]; [V5 V6]
-B; ␒3\uFB88。𝟘𐨿𐹆; [B1 P1 V6]; [B1 P1 V6] # ␒3ڈ.0𐨿
-B; ␒3\u0688。0𐨿𐹆; [B1 P1 V6]; [B1 P1 V6] # ␒3ڈ.0𐨿
-B; xn--3-jsc897t.xn--0-sc5iy3h; [B1 V6]; [B1 V6] # ␒3ڈ.0𐨿
-B; \u076B6\u0A81\u08A6。\u1DE3; [B1 B3 B6 V5]; [B1 B3 B6 V5] # ݫ6ઁࢦ.ᷣ
-B; \u076B6\u0A81\u08A6。\u1DE3; [B1 B3 B6 V5]; [B1 B3 B6 V5] # ݫ6ઁࢦ.ᷣ
-B; xn--6-h5c06gj6c.xn--7eg; [B1 B3 B6 V5]; [B1 B3 B6 V5] # ݫ6ઁࢦ.ᷣ
-T; \u0605-𽤞Ⴂ。򅤶\u200D; [B1 B6 C2 P1 V6]; [B1 P1 V6] # -Ⴂ.
-N; \u0605-𽤞Ⴂ。򅤶\u200D; [B1 B6 C2 P1 V6]; [B1 B6 C2 P1 V6] # -Ⴂ.
-T; \u0605-𽤞ⴂ。򅤶\u200D; [B1 B6 C2 P1 V6]; [B1 P1 V6] # -ⴂ.
-N; \u0605-𽤞ⴂ。򅤶\u200D; [B1 B6 C2 P1 V6]; [B1 B6 C2 P1 V6] # -ⴂ.
-B; xn----0kc8501a5399e.xn--ss06b; [B1 V6]; [B1 V6] # -ⴂ.
-B; xn----0kc8501a5399e.xn--1ugy3204f; [B1 B6 C2 V6]; [B1 B6 C2 V6] # -ⴂ.
-B; xn----0kc662fc152h.xn--ss06b; [B1 V6]; [B1 V6] # -Ⴂ.
-B; xn----0kc662fc152h.xn--1ugy3204f; [B1 B6 C2 V6]; [B1 B6 C2 V6] # -Ⴂ.
-T; ⾆.ꡈ5≯ß; [P1 V6]; [P1 V6]
-N; ⾆.ꡈ5≯ß; [P1 V6]; [P1 V6]
-T; ⾆.ꡈ5>\u0338ß; [P1 V6]; [P1 V6]
-N; ⾆.ꡈ5>\u0338ß; [P1 V6]; [P1 V6]
-T; 舌.ꡈ5≯ß; [P1 V6]; [P1 V6]
-N; 舌.ꡈ5≯ß; [P1 V6]; [P1 V6]
-T; 舌.ꡈ5>\u0338ß; [P1 V6]; [P1 V6]
-N; 舌.ꡈ5>\u0338ß; [P1 V6]; [P1 V6]
-B; 舌.ꡈ5>\u0338SS; [P1 V6]; [P1 V6]
-B; 舌.ꡈ5≯SS; [P1 V6]; [P1 V6]
-B; 舌.ꡈ5≯ss; [P1 V6]; [P1 V6]
-B; 舌.ꡈ5>\u0338ss; [P1 V6]; [P1 V6]
-B; 舌.ꡈ5>\u0338Ss; [P1 V6]; [P1 V6]
-B; 舌.ꡈ5≯Ss; [P1 V6]; [P1 V6]
-B; xn--tc1a.xn--5ss-3m2a5009e; [V6]; [V6]
-B; xn--tc1a.xn--5-qfa988w745i; [V6]; [V6]
-B; ⾆.ꡈ5>\u0338SS; [P1 V6]; [P1 V6]
-B; ⾆.ꡈ5≯SS; [P1 V6]; [P1 V6]
-B; ⾆.ꡈ5≯ss; [P1 V6]; [P1 V6]
-B; ⾆.ꡈ5>\u0338ss; [P1 V6]; [P1 V6]
-B; ⾆.ꡈ5>\u0338Ss; [P1 V6]; [P1 V6]
-B; ⾆.ꡈ5≯Ss; [P1 V6]; [P1 V6]
-T; \u0ACD8\u200D.򾂈\u075C; [B1 B5 B6 C2 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # ્8.ݜ
-N; \u0ACD8\u200D.򾂈\u075C; [B1 B5 B6 C2 P1 V5 V6]; [B1 B5 B6 C2 P1 V5 V6] # ્8.ݜ
-T; \u0ACD8\u200D.򾂈\u075C; [B1 B5 B6 C2 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # ્8.ݜ
-N; \u0ACD8\u200D.򾂈\u075C; [B1 B5 B6 C2 P1 V5 V6]; [B1 B5 B6 C2 P1 V5 V6] # ્8.ݜ
-B; xn--8-yke.xn--gpb79046m; [B1 B5 B6 V5 V6]; [B1 B5 B6 V5 V6] # ્8.ݜ
-B; xn--8-yke534n.xn--gpb79046m; [B1 B5 B6 C2 V5 V6]; [B1 B5 B6 C2 V5 V6] # ્8.ݜ
-B; 򸷆\u0A70≮򹓙.񞎧⁷󠯙\u06B6; [B5 B6 P1 V6]; [B5 B6 P1 V6] # ੰ≮.7ڶ
-B; 򸷆\u0A70<\u0338򹓙.񞎧⁷󠯙\u06B6; [B5 B6 P1 V6]; [B5 B6 P1 V6] # ੰ≮.7ڶ
-B; 򸷆\u0A70≮򹓙.񞎧7󠯙\u06B6; [B5 B6 P1 V6]; [B5 B6 P1 V6] # ੰ≮.7ڶ
-B; 򸷆\u0A70<\u0338򹓙.񞎧7󠯙\u06B6; [B5 B6 P1 V6]; [B5 B6 P1 V6] # ੰ≮.7ڶ
-B; xn--ycc893jqh38rb6fa.xn--7-5uc53836ixt41c; [B5 B6 V6]; [B5 B6 V6] # ੰ≮.7ڶ
-T; 𞤪.ς; ; xn--ie6h.xn--4xa
-N; 𞤪.ς; ; xn--ie6h.xn--3xa
-B; 𞤈.Σ; 𞤪.σ; xn--ie6h.xn--4xa
-B; 𞤪.σ; ; xn--ie6h.xn--4xa
-B; 𞤈.σ; 𞤪.σ; xn--ie6h.xn--4xa
-B; xn--ie6h.xn--4xa; 𞤪.σ; xn--ie6h.xn--4xa
-T; 𞤈.ς; 𞤪.ς; xn--ie6h.xn--4xa
-N; 𞤈.ς; 𞤪.ς; xn--ie6h.xn--3xa
-B; xn--ie6h.xn--3xa; 𞤪.ς; xn--ie6h.xn--3xa
-B; 𞤪.Σ; 𞤪.σ; xn--ie6h.xn--4xa
-T; \u200CႺ。ς; [C1 P1 V6]; [P1 V6] # Ⴚ.ς
-N; \u200CႺ。ς; [C1 P1 V6]; [C1 P1 V6] # Ⴚ.ς
-T; \u200CႺ。ς; [C1 P1 V6]; [P1 V6] # Ⴚ.ς
-N; \u200CႺ。ς; [C1 P1 V6]; [C1 P1 V6] # Ⴚ.ς
-T; \u200Cⴚ。ς; [C1]; xn--ilj.xn--4xa # ⴚ.ς
-N; \u200Cⴚ。ς; [C1]; [C1] # ⴚ.ς
-T; \u200CႺ。Σ; [C1 P1 V6]; [P1 V6] # Ⴚ.σ
-N; \u200CႺ。Σ; [C1 P1 V6]; [C1 P1 V6] # Ⴚ.σ
-T; \u200Cⴚ。σ; [C1]; xn--ilj.xn--4xa # ⴚ.σ
-N; \u200Cⴚ。σ; [C1]; [C1] # ⴚ.σ
-B; xn--ilj.xn--4xa; ⴚ.σ; xn--ilj.xn--4xa
-B; ⴚ.σ; ; xn--ilj.xn--4xa
-B; Ⴚ.Σ; [P1 V6]; [P1 V6]
-T; ⴚ.ς; ; xn--ilj.xn--4xa
-N; ⴚ.ς; ; xn--ilj.xn--3xa
-T; Ⴚ.ς; [P1 V6]; [P1 V6]
-N; Ⴚ.ς; [P1 V6]; [P1 V6]
-B; xn--ynd.xn--4xa; [V6]; [V6]
-B; xn--ynd.xn--3xa; [V6]; [V6]
-B; xn--ilj.xn--3xa; ⴚ.ς; xn--ilj.xn--3xa
-B; Ⴚ.σ; [P1 V6]; [P1 V6]
-B; xn--0ug262c.xn--4xa; [C1]; [C1] # ⴚ.σ
-B; xn--ynd759e.xn--4xa; [C1 V6]; [C1 V6] # Ⴚ.σ
-B; xn--0ug262c.xn--3xa; [C1]; [C1] # ⴚ.ς
-B; xn--ynd759e.xn--3xa; [C1 V6]; [C1 V6] # Ⴚ.ς
-T; \u200Cⴚ。ς; [C1]; xn--ilj.xn--4xa # ⴚ.ς
-N; \u200Cⴚ。ς; [C1]; [C1] # ⴚ.ς
-T; \u200CႺ。Σ; [C1 P1 V6]; [P1 V6] # Ⴚ.σ
-N; \u200CႺ。Σ; [C1 P1 V6]; [C1 P1 V6] # Ⴚ.σ
-T; \u200Cⴚ。σ; [C1]; xn--ilj.xn--4xa # ⴚ.σ
-N; \u200Cⴚ。σ; [C1]; [C1] # ⴚ.σ
-B; 𞤃.𐹦; [B1]; [B1]
-B; 𞤃.𐹦; [B1]; [B1]
-B; 𞤥.𐹦; [B1]; [B1]
-B; xn--de6h.xn--eo0d; [B1]; [B1]
-B; 𞤥.𐹦; [B1]; [B1]
-T; \u200D⾕。\u200C\u0310\uA953ꡎ; [C1 C2]; [V5] # 谷.꥓̐ꡎ
-N; \u200D⾕。\u200C\u0310\uA953ꡎ; [C1 C2]; [C1 C2] # 谷.꥓̐ꡎ
-T; \u200D⾕。\u200C\uA953\u0310ꡎ; [C1 C2]; [V5] # 谷.꥓̐ꡎ
-N; \u200D⾕。\u200C\uA953\u0310ꡎ; [C1 C2]; [C1 C2] # 谷.꥓̐ꡎ
-T; \u200D谷。\u200C\uA953\u0310ꡎ; [C1 C2]; [V5] # 谷.꥓̐ꡎ
-N; \u200D谷。\u200C\uA953\u0310ꡎ; [C1 C2]; [C1 C2] # 谷.꥓̐ꡎ
-B; xn--6g3a.xn--0sa8175flwa; [V5]; [V5] # 谷.꥓̐ꡎ
-B; xn--1ug0273b.xn--0sa359l6n7g13a; [C1 C2]; [C1 C2] # 谷.꥓̐ꡎ
-T; \u06AA-뉔.𞤐\u200C; [B2 B3 C1]; [B2 B3] # ڪ-뉔.𞤲
-N; \u06AA-뉔.𞤐\u200C; [B2 B3 C1]; [B2 B3 C1] # ڪ-뉔.𞤲
-T; \u06AA-뉔.𞤐\u200C; [B2 B3 C1]; [B2 B3] # ڪ-뉔.𞤲
-N; \u06AA-뉔.𞤐\u200C; [B2 B3 C1]; [B2 B3 C1] # ڪ-뉔.𞤲
-T; \u06AA-뉔.𞤐\u200C; [B2 B3 C1]; [B2 B3] # ڪ-뉔.𞤲
-N; \u06AA-뉔.𞤐\u200C; [B2 B3 C1]; [B2 B3 C1] # ڪ-뉔.𞤲
-T; \u06AA-뉔.𞤐\u200C; [B2 B3 C1]; [B2 B3] # ڪ-뉔.𞤲
-N; \u06AA-뉔.𞤐\u200C; [B2 B3 C1]; [B2 B3 C1] # ڪ-뉔.𞤲
-T; \u06AA-뉔.𞤲\u200C; [B2 B3 C1]; [B2 B3] # ڪ-뉔.𞤲
-N; \u06AA-뉔.𞤲\u200C; [B2 B3 C1]; [B2 B3 C1] # ڪ-뉔.𞤲
-T; \u06AA-뉔.𞤲\u200C; [B2 B3 C1]; [B2 B3] # ڪ-뉔.𞤲
-N; \u06AA-뉔.𞤲\u200C; [B2 B3 C1]; [B2 B3 C1] # ڪ-뉔.𞤲
-B; xn----guc3592k.xn--qe6h; [B2 B3]; [B2 B3] # ڪ-뉔.𞤲
-B; xn----guc3592k.xn--0ug7611p; [B2 B3 C1]; [B2 B3 C1] # ڪ-뉔.𞤲
-T; \u06AA-뉔.𞤲\u200C; [B2 B3 C1]; [B2 B3] # ڪ-뉔.𞤲
-N; \u06AA-뉔.𞤲\u200C; [B2 B3 C1]; [B2 B3 C1] # ڪ-뉔.𞤲
-T; \u06AA-뉔.𞤲\u200C; [B2 B3 C1]; [B2 B3] # ڪ-뉔.𞤲
-N; \u06AA-뉔.𞤲\u200C; [B2 B3 C1]; [B2 B3 C1] # ڪ-뉔.𞤲
-T; 񔲵5ᦛς.\uA8C4\u077B\u1CD2\u0738; [B1 P1 V5 V6]; [B1 P1 V5 V6] # 5ᦛς.꣄ݻܸ᳒
-N; 񔲵5ᦛς.\uA8C4\u077B\u1CD2\u0738; [B1 P1 V5 V6]; [B1 P1 V5 V6] # 5ᦛς.꣄ݻܸ᳒
-T; 񔲵5ᦛς.\uA8C4\u077B\u0738\u1CD2; [B1 P1 V5 V6]; [B1 P1 V5 V6] # 5ᦛς.꣄ݻܸ᳒
-N; 񔲵5ᦛς.\uA8C4\u077B\u0738\u1CD2; [B1 P1 V5 V6]; [B1 P1 V5 V6] # 5ᦛς.꣄ݻܸ᳒
-T; 񔲵5ᦛς.\uA8C4\u077B\u0738\u1CD2; [B1 P1 V5 V6]; [B1 P1 V5 V6] # 5ᦛς.꣄ݻܸ᳒
-N; 񔲵5ᦛς.\uA8C4\u077B\u0738\u1CD2; [B1 P1 V5 V6]; [B1 P1 V5 V6] # 5ᦛς.꣄ݻܸ᳒
-B; 񔲵5ᦛΣ.\uA8C4\u077B\u0738\u1CD2; [B1 P1 V5 V6]; [B1 P1 V5 V6] # 5ᦛσ.꣄ݻܸ᳒
-B; 񔲵5ᦛσ.\uA8C4\u077B\u0738\u1CD2; [B1 P1 V5 V6]; [B1 P1 V5 V6] # 5ᦛσ.꣄ݻܸ᳒
-B; xn--5-0mb988ng603j.xn--fob7kk44dl41k; [B1 V5 V6]; [B1 V5 V6] # 5ᦛσ.꣄ݻܸ᳒
-B; xn--5-ymb298ng603j.xn--fob7kk44dl41k; [B1 V5 V6]; [B1 V5 V6] # 5ᦛς.꣄ݻܸ᳒
-B; 񔲵5ᦛΣ.\uA8C4\u077B\u0738\u1CD2; [B1 P1 V5 V6]; [B1 P1 V5 V6] # 5ᦛσ.꣄ݻܸ᳒
-B; 񔲵5ᦛσ.\uA8C4\u077B\u0738\u1CD2; [B1 P1 V5 V6]; [B1 P1 V5 V6] # 5ᦛσ.꣄ݻܸ᳒
-B; 񔲵5ᦛΣ.\uA8C4\u077B\u1CD2\u0738; [B1 P1 V5 V6]; [B1 P1 V5 V6] # 5ᦛσ.꣄ݻܸ᳒
-B; 񔲵5ᦛσ.\uA8C4\u077B\u1CD2\u0738; [B1 P1 V5 V6]; [B1 P1 V5 V6] # 5ᦛσ.꣄ݻܸ᳒
-B; 淽。ᠾ; 淽.ᠾ; xn--34w.xn--x7e
-B; xn--34w.xn--x7e; 淽.ᠾ; xn--34w.xn--x7e
-B; 淽.ᠾ; ; xn--34w.xn--x7e
-B; 𐹴𑘷。-; [B1 V3]; [B1 V3]
-B; xn--so0do6k.-; [B1 V3]; [B1 V3]
-B; 򬨩Ⴓ❓。𑄨; [P1 V5 V6]; [P1 V5 V6]
-B; 򬨩Ⴓ❓。𑄨; [P1 V5 V6]; [P1 V5 V6]
-B; 򬨩ⴓ❓。𑄨; [P1 V5 V6]; [P1 V5 V6]
-B; xn--8di78qvw32y.xn--k80d; [V5 V6]; [V5 V6]
-B; xn--rnd896i0j14q.xn--k80d; [V5 V6]; [V5 V6]
-B; 򬨩ⴓ❓。𑄨; [P1 V5 V6]; [P1 V5 V6]
-T; \u200C𐹡𞤌Ⴇ。ßႣ; [B1 C1 P1 V6]; [B1 P1 V6] # 𐹡𞤮Ⴇ.ßႣ
-N; \u200C𐹡𞤌Ⴇ。ßႣ; [B1 C1 P1 V6]; [B1 C1 P1 V6] # 𐹡𞤮Ⴇ.ßႣ
-T; \u200C𐹡𞤌Ⴇ。ßႣ; [B1 C1 P1 V6]; [B1 P1 V6] # 𐹡𞤮Ⴇ.ßႣ
-N; \u200C𐹡𞤌Ⴇ。ßႣ; [B1 C1 P1 V6]; [B1 C1 P1 V6] # 𐹡𞤮Ⴇ.ßႣ
-T; \u200C𐹡𞤮ⴇ。ßⴃ; [B1 C1]; [B1] # 𐹡𞤮ⴇ.ßⴃ
-N; \u200C𐹡𞤮ⴇ。ßⴃ; [B1 C1]; [B1 C1] # 𐹡𞤮ⴇ.ßⴃ
-T; \u200C𐹡𞤌Ⴇ。SSႣ; [B1 C1 P1 V6]; [B1 P1 V6] # 𐹡𞤮Ⴇ.ssႣ
-N; \u200C𐹡𞤌Ⴇ。SSႣ; [B1 C1 P1 V6]; [B1 C1 P1 V6] # 𐹡𞤮Ⴇ.ssႣ
-T; \u200C𐹡𞤮ⴇ。ssⴃ; [B1 C1]; [B1] # 𐹡𞤮ⴇ.ssⴃ
-N; \u200C𐹡𞤮ⴇ。ssⴃ; [B1 C1]; [B1 C1] # 𐹡𞤮ⴇ.ssⴃ
-T; \u200C𐹡𞤌ⴇ。Ssⴃ; [B1 C1]; [B1] # 𐹡𞤮ⴇ.ssⴃ
-N; \u200C𐹡𞤌ⴇ。Ssⴃ; [B1 C1]; [B1 C1] # 𐹡𞤮ⴇ.ssⴃ
-B; xn--ykj9323eegwf.xn--ss-151a; [B1]; [B1]
-B; xn--0ug332c3q0pr56g.xn--ss-151a; [B1 C1]; [B1 C1] # 𐹡𞤮ⴇ.ssⴃ
-B; xn--fnd1201kegrf.xn--ss-fek; [B1 V6]; [B1 V6]
-B; xn--fnd599eyj4pr50g.xn--ss-fek; [B1 C1 V6]; [B1 C1 V6] # 𐹡𞤮Ⴇ.ssႣ
-B; xn--0ug332c3q0pr56g.xn--zca417t; [B1 C1]; [B1 C1] # 𐹡𞤮ⴇ.ßⴃ
-B; xn--fnd599eyj4pr50g.xn--zca681f; [B1 C1 V6]; [B1 C1 V6] # 𐹡𞤮Ⴇ.ßႣ
-T; \u200C𐹡𞤮ⴇ。ßⴃ; [B1 C1]; [B1] # 𐹡𞤮ⴇ.ßⴃ
-N; \u200C𐹡𞤮ⴇ。ßⴃ; [B1 C1]; [B1 C1] # 𐹡𞤮ⴇ.ßⴃ
-T; \u200C𐹡𞤌Ⴇ。SSႣ; [B1 C1 P1 V6]; [B1 P1 V6] # 𐹡𞤮Ⴇ.ssႣ
-N; \u200C𐹡𞤌Ⴇ。SSႣ; [B1 C1 P1 V6]; [B1 C1 P1 V6] # 𐹡𞤮Ⴇ.ssႣ
-T; \u200C𐹡𞤮ⴇ。ssⴃ; [B1 C1]; [B1] # 𐹡𞤮ⴇ.ssⴃ
-N; \u200C𐹡𞤮ⴇ。ssⴃ; [B1 C1]; [B1 C1] # 𐹡𞤮ⴇ.ssⴃ
-T; \u200C𐹡𞤌ⴇ。Ssⴃ; [B1 C1]; [B1] # 𐹡𞤮ⴇ.ssⴃ
-N; \u200C𐹡𞤌ⴇ。Ssⴃ; [B1 C1]; [B1 C1] # 𐹡𞤮ⴇ.ssⴃ
-T; \u200C𐹡𞤌ⴇ。ßⴃ; [B1 C1]; [B1] # 𐹡𞤮ⴇ.ßⴃ
-N; \u200C𐹡𞤌ⴇ。ßⴃ; [B1 C1]; [B1 C1] # 𐹡𞤮ⴇ.ßⴃ
-T; \u200C𐹡𞤌ⴇ。ssⴃ; [B1 C1]; [B1] # 𐹡𞤮ⴇ.ssⴃ
-N; \u200C𐹡𞤌ⴇ。ssⴃ; [B1 C1]; [B1 C1] # 𐹡𞤮ⴇ.ssⴃ
-T; \u200C𐹡𞤌Ⴇ。Ssⴃ; [B1 C1 P1 V6]; [B1 P1 V6] # 𐹡𞤮Ⴇ.ssⴃ
-N; \u200C𐹡𞤌Ⴇ。Ssⴃ; [B1 C1 P1 V6]; [B1 C1 P1 V6] # 𐹡𞤮Ⴇ.ssⴃ
-B; xn--fnd1201kegrf.xn--ss-151a; [B1 V6]; [B1 V6]
-B; xn--fnd599eyj4pr50g.xn--ss-151a; [B1 C1 V6]; [B1 C1 V6] # 𐹡𞤮Ⴇ.ssⴃ
-T; \u200C𐹡𞤌ⴇ。ßⴃ; [B1 C1]; [B1] # 𐹡𞤮ⴇ.ßⴃ
-N; \u200C𐹡𞤌ⴇ。ßⴃ; [B1 C1]; [B1 C1] # 𐹡𞤮ⴇ.ßⴃ
-T; \u200C𐹡𞤌ⴇ。ssⴃ; [B1 C1]; [B1] # 𐹡𞤮ⴇ.ssⴃ
-N; \u200C𐹡𞤌ⴇ。ssⴃ; [B1 C1]; [B1 C1] # 𐹡𞤮ⴇ.ssⴃ
-T; \u200C𐹡𞤌Ⴇ。Ssⴃ; [B1 C1 P1 V6]; [B1 P1 V6] # 𐹡𞤮Ⴇ.ssⴃ
-N; \u200C𐹡𞤌Ⴇ。Ssⴃ; [B1 C1 P1 V6]; [B1 C1 P1 V6] # 𐹡𞤮Ⴇ.ssⴃ
-B; \u17FF。𞬳; [P1 V6]; [P1 V6] # .
-B; \u17FF。𞬳; [P1 V6]; [P1 V6] # .
-B; xn--45e.xn--et6h; [V6]; [V6] # .
-T; \u0652\u200D。\u0CCD𑚳; [C2 V5]; [V5] # ْ.್𑚳
-N; \u0652\u200D。\u0CCD𑚳; [C2 V5]; [C2 V5] # ْ.್𑚳
-T; \u0652\u200D。\u0CCD𑚳; [C2 V5]; [V5] # ْ.್𑚳
-N; \u0652\u200D。\u0CCD𑚳; [C2 V5]; [C2 V5] # ْ.್𑚳
-B; xn--uhb.xn--8tc4527k; [V5]; [V5] # ْ.್𑚳
-B; xn--uhb882k.xn--8tc4527k; [C2 V5]; [C2 V5] # ْ.್𑚳
-B; -≠ᠻ.\u076D𞥃≮󟷺; [B1 B2 B3 P1 V3 V6]; [B1 B2 B3 P1 V3 V6] # -≠ᠻ.ݭ𞥃≮
-B; -=\u0338ᠻ.\u076D𞥃<\u0338󟷺; [B1 B2 B3 P1 V3 V6]; [B1 B2 B3 P1 V3 V6] # -≠ᠻ.ݭ𞥃≮
-B; -≠ᠻ.\u076D𞥃≮󟷺; [B1 B2 B3 P1 V3 V6]; [B1 B2 B3 P1 V3 V6] # -≠ᠻ.ݭ𞥃≮
-B; -=\u0338ᠻ.\u076D𞥃<\u0338󟷺; [B1 B2 B3 P1 V3 V6]; [B1 B2 B3 P1 V3 V6] # -≠ᠻ.ݭ𞥃≮
-B; -=\u0338ᠻ.\u076D𞤡<\u0338󟷺; [B1 B2 B3 P1 V3 V6]; [B1 B2 B3 P1 V3 V6] # -≠ᠻ.ݭ𞥃≮
-B; -≠ᠻ.\u076D𞤡≮󟷺; [B1 B2 B3 P1 V3 V6]; [B1 B2 B3 P1 V3 V6] # -≠ᠻ.ݭ𞥃≮
-B; xn----g6j886c.xn--xpb049kk353abj99f; [B1 B2 B3 V3 V6]; [B1 B2 B3 V3 V6] # -≠ᠻ.ݭ𞥃≮
-B; -=\u0338ᠻ.\u076D𞤡<\u0338󟷺; [B1 B2 B3 P1 V3 V6]; [B1 B2 B3 P1 V3 V6] # -≠ᠻ.ݭ𞥃≮
-B; -≠ᠻ.\u076D𞤡≮󟷺; [B1 B2 B3 P1 V3 V6]; [B1 B2 B3 P1 V3 V6] # -≠ᠻ.ݭ𞥃≮
-B; 󠰆≯\u07B5𐻪.򊥕≮𑁆\u084C; [B1 B5 B6 P1 V6]; [B1 B5 B6 P1 V6] # ≯.≮𑁆ࡌ
-B; 󠰆>\u0338\u07B5𐻪.򊥕<\u0338𑁆\u084C; [B1 B5 B6 P1 V6]; [B1 B5 B6 P1 V6] # ≯.≮𑁆ࡌ
-B; 󠰆≯\u07B5𐻪.򊥕≮𑁆\u084C; [B1 B5 B6 P1 V6]; [B1 B5 B6 P1 V6] # ≯.≮𑁆ࡌ
-B; 󠰆>\u0338\u07B5𐻪.򊥕<\u0338𑁆\u084C; [B1 B5 B6 P1 V6]; [B1 B5 B6 P1 V6] # ≯.≮𑁆ࡌ
-B; xn--zrb797kdm1oes34i.xn--bwb394k8k2o25n6d; [B1 B5 B6 V6]; [B1 B5 B6 V6] # ≯.≮𑁆ࡌ
-B; ≠󦋂.\u0600\u0BCD-\u06B9; [B1 P1 V6]; [B1 P1 V6] # ≠.்-ڹ
-B; =\u0338󦋂.\u0600\u0BCD-\u06B9; [B1 P1 V6]; [B1 P1 V6] # ≠.்-ڹ
-B; xn--1ch22084l.xn----qkc07co6n; [B1 V6]; [B1 V6] # ≠.்-ڹ
-B; \u17DD󠁣≠。𐹼𐋤; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ៝≠.𐹼𐋤
-B; \u17DD󠁣=\u0338。𐹼𐋤; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ៝≠.𐹼𐋤
-B; \u17DD󠁣≠。𐹼𐋤; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ៝≠.𐹼𐋤
-B; \u17DD󠁣=\u0338。𐹼𐋤; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ៝≠.𐹼𐋤
-B; xn--54e694cn389z.xn--787ct8r; [B1 V5 V6]; [B1 V5 V6] # ៝≠.𐹼𐋤
-T; ß𰀻񆬗。𝩨🕮ß; [P1 V5 V6]; [P1 V5 V6]
-N; ß𰀻񆬗。𝩨🕮ß; [P1 V5 V6]; [P1 V5 V6]
-T; ß𰀻񆬗。𝩨🕮ß; [P1 V5 V6]; [P1 V5 V6]
-N; ß𰀻񆬗。𝩨🕮ß; [P1 V5 V6]; [P1 V5 V6]
-B; SS𰀻񆬗。𝩨🕮SS; [P1 V5 V6]; [P1 V5 V6]
-B; ss𰀻񆬗。𝩨🕮ss; [P1 V5 V6]; [P1 V5 V6]
-B; Ss𰀻񆬗。𝩨🕮Ss; [P1 V5 V6]; [P1 V5 V6]
-B; xn--ss-jl59biy67d.xn--ss-4d11aw87d; [V5 V6]; [V5 V6]
-B; xn--zca20040bgrkh.xn--zca3653v86qa; [V5 V6]; [V5 V6]
-B; SS𰀻񆬗。𝩨🕮SS; [P1 V5 V6]; [P1 V5 V6]
-B; ss𰀻񆬗。𝩨🕮ss; [P1 V5 V6]; [P1 V5 V6]
-B; Ss𰀻񆬗。𝩨🕮Ss; [P1 V5 V6]; [P1 V5 V6]
-T; \u200D。\u200C; [C1 C2]; [A4_2] # .
-N; \u200D。\u200C; [C1 C2]; [C1 C2] # .
-B; xn--1ug.xn--0ug; [C1 C2]; [C1 C2] # .
-T; \u0483𐭞\u200D.\u17B9𞯌򟩚; [B1 C2 P1 V5 V6]; [B1 P1 V5 V6] # ҃𐭞.ឹ
-N; \u0483𐭞\u200D.\u17B9𞯌򟩚; [B1 C2 P1 V5 V6]; [B1 C2 P1 V5 V6] # ҃𐭞.ឹ
-B; xn--m3a6965k.xn--43e8670vmd79b; [B1 V5 V6]; [B1 V5 V6] # ҃𐭞.ឹ
-B; xn--m3a412lrr0o.xn--43e8670vmd79b; [B1 C2 V5 V6]; [B1 C2 V5 V6] # ҃𐭞.ឹ
-T; \u200C𐠨\u200C临。ꡢ򄷞ⶏ𐹣; [B1 B5 B6 C1 P1 V6]; [B2 B3 B5 B6 P1 V6] # 𐠨临.ꡢⶏ𐹣
-N; \u200C𐠨\u200C临。ꡢ򄷞ⶏ𐹣; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 C1 P1 V6] # 𐠨临.ꡢⶏ𐹣
-B; xn--miq9646b.xn--uojv340bk71c99u9f; [B2 B3 B5 B6 V6]; [B2 B3 B5 B6 V6]
-B; xn--0uga2656aop9k.xn--uojv340bk71c99u9f; [B1 B5 B6 C1 V6]; [B1 B5 B6 C1 V6] # 𐠨临.ꡢⶏ𐹣
-B; 󠑘.󠄮; [P1 V6]; [P1 V6]
-B; 󠑘.󠄮; [P1 V6]; [P1 V6]
-B; xn--s136e.; [V6]; [V6]
-B; 𐫄\u0D4D.\uAAF6; [B1 B3 B6 V5]; [B1 B3 B6 V5] # 𐫄്.꫶
-B; 𐫄\u0D4D.\uAAF6; [B1 B3 B6 V5]; [B1 B3 B6 V5] # 𐫄്.꫶
-B; xn--wxc7880k.xn--2v9a; [B1 B3 B6 V5]; [B1 B3 B6 V5] # 𐫄്.꫶
-B; \uA9B7󝵙멹。⒛󠨇; [P1 V5 V6]; [P1 V5 V6] # ꦷ멹.⒛
-B; \uA9B7󝵙멹。⒛󠨇; [P1 V5 V6]; [P1 V5 V6] # ꦷ멹.⒛
-B; \uA9B7󝵙멹。20.󠨇; [P1 V5 V6]; [P1 V5 V6] # ꦷ멹.20.
-B; \uA9B7󝵙멹。20.󠨇; [P1 V5 V6]; [P1 V5 V6] # ꦷ멹.20.
-B; xn--ym9av13acp85w.20.xn--d846e; [V5 V6]; [V5 V6] # ꦷ멹.20.
-B; xn--ym9av13acp85w.xn--dth22121k; [V5 V6]; [V5 V6] # ꦷ멹.⒛
-B; Ⴅ󲬹릖󠶚.\u0777𐹳⒊; [B4 B6 P1 V6]; [B4 B6 P1 V6] # Ⴅ릖.ݷ𐹳⒊
-B; Ⴅ󲬹릖󠶚.\u0777𐹳⒊; [B4 B6 P1 V6]; [B4 B6 P1 V6] # Ⴅ릖.ݷ𐹳⒊
-B; Ⴅ󲬹릖󠶚.\u0777𐹳3.; [B4 B6 P1 V6]; [B4 B6 P1 V6] # Ⴅ릖.ݷ𐹳3.
-B; Ⴅ󲬹릖󠶚.\u0777𐹳3.; [B4 B6 P1 V6]; [B4 B6 P1 V6] # Ⴅ릖.ݷ𐹳3.
-B; ⴅ󲬹릖󠶚.\u0777𐹳3.; [B4 B6 P1 V6]; [B4 B6 P1 V6] # ⴅ릖.ݷ𐹳3.
-B; ⴅ󲬹릖󠶚.\u0777𐹳3.; [B4 B6 P1 V6]; [B4 B6 P1 V6] # ⴅ릖.ݷ𐹳3.
-B; xn--wkj8016bne45io02g.xn--3-55c6803r.; [B4 B6 V6]; [B4 B6 V6] # ⴅ릖.ݷ𐹳3.
-B; xn--dnd2167fnet0io02g.xn--3-55c6803r.; [B4 B6 V6]; [B4 B6 V6] # Ⴅ릖.ݷ𐹳3.
-B; ⴅ󲬹릖󠶚.\u0777𐹳⒊; [B4 B6 P1 V6]; [B4 B6 P1 V6] # ⴅ릖.ݷ𐹳⒊
-B; ⴅ󲬹릖󠶚.\u0777𐹳⒊; [B4 B6 P1 V6]; [B4 B6 P1 V6] # ⴅ릖.ݷ𐹳⒊
-B; xn--wkj8016bne45io02g.xn--7pb000mwm4n; [B4 B6 V6]; [B4 B6 V6] # ⴅ릖.ݷ𐹳⒊
-B; xn--dnd2167fnet0io02g.xn--7pb000mwm4n; [B4 B6 V6]; [B4 B6 V6] # Ⴅ릖.ݷ𐹳⒊
-T; \u200C。︒; [C1 P1 V6]; [P1 V6 A4_2] # .︒
-N; \u200C。︒; [C1 P1 V6]; [C1 P1 V6] # .︒
-T; \u200C。。; [C1 A4_2]; [A4_2] # ..
-N; \u200C。。; [C1 A4_2]; [C1 A4_2] # ..
-B; ..; [A4_2]; [A4_2]
-B; xn--0ug..; [C1 A4_2]; [C1 A4_2] # ..
-B; .xn--y86c; [V6 A4_2]; [V6 A4_2]
-B; xn--0ug.xn--y86c; [C1 V6]; [C1 V6] # .︒
-B; ≯\u076D.₄; [B1 P1 V6]; [B1 P1 V6] # ≯ݭ.4
-B; >\u0338\u076D.₄; [B1 P1 V6]; [B1 P1 V6] # ≯ݭ.4
-B; ≯\u076D.4; [B1 P1 V6]; [B1 P1 V6] # ≯ݭ.4
-B; >\u0338\u076D.4; [B1 P1 V6]; [B1 P1 V6] # ≯ݭ.4
-B; xn--xpb149k.4; [B1 V6]; [B1 V6] # ≯ݭ.4
-T; ᡲ-𝟹.ß-\u200C-; [C1 V3]; [V2 V3] # ᡲ-3.ß--
-N; ᡲ-𝟹.ß-\u200C-; [C1 V3]; [C1 V3] # ᡲ-3.ß--
-T; ᡲ-3.ß-\u200C-; [C1 V3]; [V2 V3] # ᡲ-3.ß--
-N; ᡲ-3.ß-\u200C-; [C1 V3]; [C1 V3] # ᡲ-3.ß--
-T; ᡲ-3.SS-\u200C-; [C1 V3]; [V2 V3] # ᡲ-3.ss--
-N; ᡲ-3.SS-\u200C-; [C1 V3]; [C1 V3] # ᡲ-3.ss--
-T; ᡲ-3.ss-\u200C-; [C1 V3]; [V2 V3] # ᡲ-3.ss--
-N; ᡲ-3.ss-\u200C-; [C1 V3]; [C1 V3] # ᡲ-3.ss--
-T; ᡲ-3.Ss-\u200C-; [C1 V3]; [V2 V3] # ᡲ-3.ss--
-N; ᡲ-3.Ss-\u200C-; [C1 V3]; [C1 V3] # ᡲ-3.ss--
-B; xn---3-p9o.ss--; [V2 V3]; [V2 V3]
-B; xn---3-p9o.xn--ss---276a; [C1 V3]; [C1 V3] # ᡲ-3.ss--
-B; xn---3-p9o.xn-----fia9303a; [C1 V3]; [C1 V3] # ᡲ-3.ß--
-T; ᡲ-𝟹.SS-\u200C-; [C1 V3]; [V2 V3] # ᡲ-3.ss--
-N; ᡲ-𝟹.SS-\u200C-; [C1 V3]; [C1 V3] # ᡲ-3.ss--
-T; ᡲ-𝟹.ss-\u200C-; [C1 V3]; [V2 V3] # ᡲ-3.ss--
-N; ᡲ-𝟹.ss-\u200C-; [C1 V3]; [C1 V3] # ᡲ-3.ss--
-T; ᡲ-𝟹.Ss-\u200C-; [C1 V3]; [V2 V3] # ᡲ-3.ss--
-N; ᡲ-𝟹.Ss-\u200C-; [C1 V3]; [C1 V3] # ᡲ-3.ss--
-B; \uFD08𝟦\u0647󎊯。Ӏ; [B2 B3 P1 V6]; [B2 B3 P1 V6] # ضي4ه.Ӏ
-B; \u0636\u064A4\u0647󎊯。Ӏ; [B2 B3 P1 V6]; [B2 B3 P1 V6] # ضي4ه.Ӏ
-B; \u0636\u064A4\u0647󎊯。ӏ; [B2 B3 P1 V6]; [B2 B3 P1 V6] # ضي4ه.ӏ
-B; xn--4-tnc6ck183523b.xn--s5a; [B2 B3 V6]; [B2 B3 V6] # ضي4ه.ӏ
-B; xn--4-tnc6ck183523b.xn--d5a; [B2 B3 V6]; [B2 B3 V6] # ضي4ه.Ӏ
-B; \uFD08𝟦\u0647󎊯。ӏ; [B2 B3 P1 V6]; [B2 B3 P1 V6] # ضي4ه.ӏ
-B; -.\u0602\u0622𑆾🐹; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -.آ𑆾🐹
-B; -.\u0602\u0627\u0653𑆾🐹; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -.آ𑆾🐹
-B; -.xn--kfb8dy983hgl7g; [B1 V3 V6]; [B1 V3 V6] # -.آ𑆾🐹
-B; 󙶜ᢘ。\u1A7F⺢; [P1 V5 V6]; [P1 V5 V6] # ᢘ.᩿⺢
-B; xn--ibf35138o.xn--fpfz94g; [V5 V6]; [V5 V6] # ᢘ.᩿⺢
-B; ≠ႷᠤႫ。\uD907\u034C\u0633觴; [B1 B5 P1 V6]; [B1 B5 P1 V6 A3] # ≠ႷᠤႫ.͌س觴
-B; =\u0338ႷᠤႫ。\uD907\u034C\u0633觴; [B1 B5 P1 V6]; [B1 B5 P1 V6 A3] # ≠ႷᠤႫ.͌س觴
-B; ≠ႷᠤႫ。\uD907\u034C\u0633觴; [B1 B5 P1 V6]; [B1 B5 P1 V6 A3] # ≠ႷᠤႫ.͌س觴
-B; =\u0338ႷᠤႫ。\uD907\u034C\u0633觴; [B1 B5 P1 V6]; [B1 B5 P1 V6 A3] # ≠ႷᠤႫ.͌س觴
-B; =\u0338ⴗᠤⴋ。\uD907\u034C\u0633觴; [B1 B5 P1 V6]; [B1 B5 P1 V6 A3] # ≠ⴗᠤⴋ.͌س觴
-B; ≠ⴗᠤⴋ。\uD907\u034C\u0633觴; [B1 B5 P1 V6]; [B1 B5 P1 V6 A3] # ≠ⴗᠤⴋ.͌س觴
-B; ≠Ⴗᠤⴋ。\uD907\u034C\u0633觴; [B1 B5 P1 V6]; [B1 B5 P1 V6 A3] # ≠Ⴗᠤⴋ.͌س觴
-B; =\u0338Ⴗᠤⴋ。\uD907\u034C\u0633觴; [B1 B5 P1 V6]; [B1 B5 P1 V6 A3] # ≠Ⴗᠤⴋ.͌س觴
-B; xn--vnd619as6ig6k.\uD907\u034C\u0633觴; [B1 B5 P1 V6]; [B1 B5 P1 V6 A3] # ≠Ⴗᠤⴋ.͌س觴
-B; XN--VND619AS6IG6K.\uD907\u034C\u0633觴; [B1 B5 P1 V6]; [B1 B5 P1 V6 A3] # ≠Ⴗᠤⴋ.͌س觴
-B; Xn--Vnd619as6ig6k.\uD907\u034C\u0633觴; [B1 B5 P1 V6]; [B1 B5 P1 V6 A3] # ≠Ⴗᠤⴋ.͌س觴
-B; xn--66e353ce0ilb.\uD907\u034C\u0633觴; [B1 B5 P1 V6]; [B1 B5 P1 V6 A3] # ≠ⴗᠤⴋ.͌س觴
-B; XN--66E353CE0ILB.\uD907\u034C\u0633觴; [B1 B5 P1 V6]; [B1 B5 P1 V6 A3] # ≠ⴗᠤⴋ.͌س觴
-B; Xn--66E353ce0ilb.\uD907\u034C\u0633觴; [B1 B5 P1 V6]; [B1 B5 P1 V6 A3] # ≠ⴗᠤⴋ.͌س觴
-B; xn--jndx718cnnl.\uD907\u034C\u0633觴; [B1 B5 P1 V6]; [B1 B5 P1 V6 A3] # ≠ႷᠤႫ.͌س觴
-B; XN--JNDX718CNNL.\uD907\u034C\u0633觴; [B1 B5 P1 V6]; [B1 B5 P1 V6 A3] # ≠ႷᠤႫ.͌س觴
-B; Xn--Jndx718cnnl.\uD907\u034C\u0633觴; [B1 B5 P1 V6]; [B1 B5 P1 V6 A3] # ≠ႷᠤႫ.͌س觴
-B; =\u0338ⴗᠤⴋ。\uD907\u034C\u0633觴; [B1 B5 P1 V6]; [B1 B5 P1 V6 A3] # ≠ⴗᠤⴋ.͌س觴
-B; ≠ⴗᠤⴋ。\uD907\u034C\u0633觴; [B1 B5 P1 V6]; [B1 B5 P1 V6 A3] # ≠ⴗᠤⴋ.͌س觴
-B; ≠Ⴗᠤⴋ。\uD907\u034C\u0633觴; [B1 B5 P1 V6]; [B1 B5 P1 V6 A3] # ≠Ⴗᠤⴋ.͌س觴
-B; =\u0338Ⴗᠤⴋ。\uD907\u034C\u0633觴; [B1 B5 P1 V6]; [B1 B5 P1 V6 A3] # ≠Ⴗᠤⴋ.͌س觴
-B; \u0667.𐥨; [B1 P1 V6]; [B1 P1 V6] # ٧.
-B; xn--gib.xn--vm9c; [B1 V6]; [B1 V6] # ٧.
-T; \uA9C0𝟯。\u200D񼑥𐹪\u1BF3; [B1 C2 P1 V5 V6]; [B5 P1 V5 V6] # ꧀3.𐹪᯳
-N; \uA9C0𝟯。\u200D񼑥𐹪\u1BF3; [B1 C2 P1 V5 V6]; [B1 C2 P1 V5 V6] # ꧀3.𐹪᯳
-T; \uA9C03。\u200D񼑥𐹪\u1BF3; [B1 C2 P1 V5 V6]; [B5 P1 V5 V6] # ꧀3.𐹪᯳
-N; \uA9C03。\u200D񼑥𐹪\u1BF3; [B1 C2 P1 V5 V6]; [B1 C2 P1 V5 V6] # ꧀3.𐹪᯳
-B; xn--3-5z4e.xn--1zfz754hncv8b; [B5 V5 V6]; [B5 V5 V6] # ꧀3.𐹪᯳
-B; xn--3-5z4e.xn--1zf96ony8ygd68c; [B1 C2 V5 V6]; [B1 C2 V5 V6] # ꧀3.𐹪᯳
-B; 򣕄4񠖽.≯\u0664𑀾󠸌; [B1 P1 V6]; [B1 P1 V6] # 4.≯٤𑀾
-B; 򣕄4񠖽.>\u0338\u0664𑀾󠸌; [B1 P1 V6]; [B1 P1 V6] # 4.≯٤𑀾
-B; xn--4-fg85dl688i.xn--dib174li86ntdy0i; [B1 V6]; [B1 V6] # 4.≯٤𑀾
-B; 򗆧𝟯。⒈\u1A76𝟚򠘌; [P1 V6]; [P1 V6] # 3.⒈᩶2
-B; 򗆧3。1.\u1A762򠘌; [P1 V5 V6]; [P1 V5 V6] # 3.1.᩶2
-B; xn--3-rj42h.1.xn--2-13k96240l; [V5 V6]; [V5 V6] # 3.1.᩶2
-B; xn--3-rj42h.xn--2-13k746cq465x; [V6]; [V6] # 3.⒈᩶2
-T; \u200D₅⒈。≯𝟴\u200D; [C2 P1 V6]; [P1 V6] # 5⒈.≯8
-N; \u200D₅⒈。≯𝟴\u200D; [C2 P1 V6]; [C2 P1 V6] # 5⒈.≯8
-T; \u200D₅⒈。>\u0338𝟴\u200D; [C2 P1 V6]; [P1 V6] # 5⒈.≯8
-N; \u200D₅⒈。>\u0338𝟴\u200D; [C2 P1 V6]; [C2 P1 V6] # 5⒈.≯8
-T; \u200D51.。≯8\u200D; [C2 P1 V6 A4_2]; [P1 V6 A4_2] # 51..≯8
-N; \u200D51.。≯8\u200D; [C2 P1 V6 A4_2]; [C2 P1 V6 A4_2] # 51..≯8
-T; \u200D51.。>\u03388\u200D; [C2 P1 V6 A4_2]; [P1 V6 A4_2] # 51..≯8
-N; \u200D51.。>\u03388\u200D; [C2 P1 V6 A4_2]; [C2 P1 V6 A4_2] # 51..≯8
-B; 51..xn--8-ogo; [V6 A4_2]; [V6 A4_2]
-B; xn--51-l1t..xn--8-ugn00i; [C2 V6 A4_2]; [C2 V6 A4_2] # 51..≯8
-B; xn--5-ecp.xn--8-ogo; [V6]; [V6]
-B; xn--5-tgnz5r.xn--8-ugn00i; [C2 V6]; [C2 V6] # 5⒈.≯8
-T; ꡰ\u0697\u1086.򪘙\u072F≠\u200C; [B5 B6 C1 P1 V6]; [B5 B6 P1 V6] # ꡰڗႆ.ܯ≠
-N; ꡰ\u0697\u1086.򪘙\u072F≠\u200C; [B5 B6 C1 P1 V6]; [B5 B6 C1 P1 V6] # ꡰڗႆ.ܯ≠
-T; ꡰ\u0697\u1086.򪘙\u072F=\u0338\u200C; [B5 B6 C1 P1 V6]; [B5 B6 P1 V6] # ꡰڗႆ.ܯ≠
-N; ꡰ\u0697\u1086.򪘙\u072F=\u0338\u200C; [B5 B6 C1 P1 V6]; [B5 B6 C1 P1 V6] # ꡰڗႆ.ܯ≠
-T; ꡰ\u0697\u1086.򪘙\u072F≠\u200C; [B5 B6 C1 P1 V6]; [B5 B6 P1 V6] # ꡰڗႆ.ܯ≠
-N; ꡰ\u0697\u1086.򪘙\u072F≠\u200C; [B5 B6 C1 P1 V6]; [B5 B6 C1 P1 V6] # ꡰڗႆ.ܯ≠
-T; ꡰ\u0697\u1086.򪘙\u072F=\u0338\u200C; [B5 B6 C1 P1 V6]; [B5 B6 P1 V6] # ꡰڗႆ.ܯ≠
-N; ꡰ\u0697\u1086.򪘙\u072F=\u0338\u200C; [B5 B6 C1 P1 V6]; [B5 B6 C1 P1 V6] # ꡰڗႆ.ܯ≠
-B; xn--tjb002cn51k.xn--5nb630lbj91q; [B5 B6 V6]; [B5 B6 V6] # ꡰڗႆ.ܯ≠
-B; xn--tjb002cn51k.xn--5nb448jcubcz547b; [B5 B6 C1 V6]; [B5 B6 C1 V6] # ꡰڗႆ.ܯ≠
-B; 𑄱。򪌿𐹵; [B1 B3 B5 B6 P1 V5 V6]; [B1 B3 B5 B6 P1 V5 V6]
-B; 𑄱。򪌿𐹵; [B1 B3 B5 B6 P1 V5 V6]; [B1 B3 B5 B6 P1 V5 V6]
-B; xn--t80d.xn--to0d14792b; [B1 B3 B5 B6 V5 V6]; [B1 B3 B5 B6 V5 V6]
-B; 𝟥\u0600。\u073D; [B1 B3 B6 P1 V5 V6]; [B1 B3 B6 P1 V5 V6] # 3.ܽ
-B; 3\u0600。\u073D; [B1 B3 B6 P1 V5 V6]; [B1 B3 B6 P1 V5 V6] # 3.ܽ
-B; xn--3-rkc.xn--kob; [B1 B3 B6 V5 V6]; [B1 B3 B6 V5 V6] # 3.ܽ
-B; \u0637𐹣\u0666.\u076D긷; [B2 B3]; [B2 B3] # ط𐹣٦.ݭ긷
-B; \u0637𐹣\u0666.\u076D긷; [B2 B3]; [B2 B3] # ط𐹣٦.ݭ긷
-B; xn--2gb8gu829f.xn--xpb0156f; [B2 B3]; [B2 B3] # ط𐹣٦.ݭ긷
-B; ︒Ↄ\u2DE7򾀃.Ⴗ𐣞; [B1 B5 B6 P1 V6]; [B1 B5 B6 P1 V6] # ︒Ↄⷧ.Ⴗ
-B; 。Ↄ\u2DE7򾀃.Ⴗ𐣞; [B5 B6 P1 V6 A4_2]; [B5 B6 P1 V6 A4_2] # .Ↄⷧ.Ⴗ
-B; 。ↄ\u2DE7򾀃.ⴗ𐣞; [B5 B6 P1 V6 A4_2]; [B5 B6 P1 V6 A4_2] # .ↄⷧ.ⴗ
-B; .xn--r5gy00cll06u.xn--flj4541e; [B5 B6 V6 A4_2]; [B5 B6 V6 A4_2] # .ↄⷧ.ⴗ
-B; .xn--q5g000cll06u.xn--vnd8618j; [B5 B6 V6 A4_2]; [B5 B6 V6 A4_2] # .Ↄⷧ.Ⴗ
-B; ︒ↄ\u2DE7򾀃.ⴗ𐣞; [B1 B5 B6 P1 V6]; [B1 B5 B6 P1 V6] # ︒ↄⷧ.ⴗ
-B; xn--r5gy00c056n0226g.xn--flj4541e; [B1 B5 B6 V6]; [B1 B5 B6 V6] # ︒ↄⷧ.ⴗ
-B; xn--q5g000c056n0226g.xn--vnd8618j; [B1 B5 B6 V6]; [B1 B5 B6 V6] # ︒Ↄⷧ.Ⴗ
-B; \u0600.\u05B1; [B1 B3 B6 P1 V5 V6]; [B1 B3 B6 P1 V5 V6] # .ֱ
-B; xn--ifb.xn--8cb; [B1 B3 B6 V5 V6]; [B1 B3 B6 V5 V6] # .ֱ
-T; ς≯。𐹽; [B1 B6 P1 V6]; [B1 B6 P1 V6]
-N; ς≯。𐹽; [B1 B6 P1 V6]; [B1 B6 P1 V6]
-T; ς>\u0338。𐹽; [B1 B6 P1 V6]; [B1 B6 P1 V6]
-N; ς>\u0338。𐹽; [B1 B6 P1 V6]; [B1 B6 P1 V6]
-T; ς≯。𐹽; [B1 B6 P1 V6]; [B1 B6 P1 V6]
-N; ς≯。𐹽; [B1 B6 P1 V6]; [B1 B6 P1 V6]
-T; ς>\u0338。𐹽; [B1 B6 P1 V6]; [B1 B6 P1 V6]
-N; ς>\u0338。𐹽; [B1 B6 P1 V6]; [B1 B6 P1 V6]
-B; Σ>\u0338。𐹽; [B1 B6 P1 V6]; [B1 B6 P1 V6]
-B; Σ≯。𐹽; [B1 B6 P1 V6]; [B1 B6 P1 V6]
-B; σ≯。𐹽; [B1 B6 P1 V6]; [B1 B6 P1 V6]
-B; σ>\u0338。𐹽; [B1 B6 P1 V6]; [B1 B6 P1 V6]
-B; xn--4xa818m.xn--1o0d; [B1 B6 V6]; [B1 B6 V6]
-B; xn--3xa028m.xn--1o0d; [B1 B6 V6]; [B1 B6 V6]
-B; Σ>\u0338。𐹽; [B1 B6 P1 V6]; [B1 B6 P1 V6]
-B; Σ≯。𐹽; [B1 B6 P1 V6]; [B1 B6 P1 V6]
-B; σ≯。𐹽; [B1 B6 P1 V6]; [B1 B6 P1 V6]
-B; σ>\u0338。𐹽; [B1 B6 P1 V6]; [B1 B6 P1 V6]
-T; \u17D2\u200D\u075F。𐹶; [B1 V5]; [B1 V5] # ្ݟ.𐹶
-N; \u17D2\u200D\u075F。𐹶; [B1 V5]; [B1 V5] # ្ݟ.𐹶
-B; xn--jpb535f.xn--uo0d; [B1 V5]; [B1 V5] # ្ݟ.𐹶
-B; xn--jpb535fv9f.xn--uo0d; [B1 V5]; [B1 V5] # ្ݟ.𐹶
-B; 𾷂\u0A42Ⴊ񂂟.≮; [P1 V6]; [P1 V6] # ੂႪ.≮
-B; 𾷂\u0A42Ⴊ񂂟.<\u0338; [P1 V6]; [P1 V6] # ੂႪ.≮
-B; 𾷂\u0A42ⴊ񂂟.<\u0338; [P1 V6]; [P1 V6] # ੂⴊ.≮
-B; 𾷂\u0A42ⴊ񂂟.≮; [P1 V6]; [P1 V6] # ੂⴊ.≮
-B; xn--nbc229o4y27dgskb.xn--gdh; [V6]; [V6] # ੂⴊ.≮
-B; xn--nbc493aro75ggskb.xn--gdh; [V6]; [V6] # ੂႪ.≮
-B; ꡠ.۲; ꡠ.۲; xn--5c9a.xn--fmb
-B; ꡠ.۲; ; xn--5c9a.xn--fmb
-B; xn--5c9a.xn--fmb; ꡠ.۲; xn--5c9a.xn--fmb
-B; 𐹣񄷄。ꡬ🄄; [B1 P1 V6]; [B1 P1 V6]
-B; 𐹣񄷄。ꡬ3,; [B1 B6 P1 V6]; [B1 B6 P1 V6]
-B; xn--bo0d0203l.xn--3,-yj9h; [B1 B6 P1 V6]; [B1 B6 P1 V6]
-B; xn--bo0d0203l.xn--id9a4443d; [B1 V6]; [B1 V6]
-T; -\u0C4D𞾀𑲓。\u200D\u0D4D; [B1 C2 P1 V3 V6]; [B1 B3 B6 P1 V3 V5 V6] # -్𑲓.്
-N; -\u0C4D𞾀𑲓。\u200D\u0D4D; [B1 C2 P1 V3 V6]; [B1 C2 P1 V3 V6] # -్𑲓.്
-T; -\u0C4D𞾀𑲓。\u200D\u0D4D; [B1 C2 P1 V3 V6]; [B1 B3 B6 P1 V3 V5 V6] # -్𑲓.്
-N; -\u0C4D𞾀𑲓。\u200D\u0D4D; [B1 C2 P1 V3 V6]; [B1 C2 P1 V3 V6] # -్𑲓.്
-B; xn----x6e0220sclug.xn--wxc; [B1 B3 B6 V3 V5 V6]; [B1 B3 B6 V3 V5 V6] # -్𑲓.്
-B; xn----x6e0220sclug.xn--wxc317g; [B1 C2 V3 V6]; [B1 C2 V3 V6] # -్𑲓.്
-T; \uA67D\u200C霣🄆。\u200C𑁂\u1B01; [C1 P1 V5 V6]; [P1 V5 V6] # ꙽霣🄆.𑁂ᬁ
-N; \uA67D\u200C霣🄆。\u200C𑁂\u1B01; [C1 P1 V5 V6]; [C1 P1 V5 V6] # ꙽霣🄆.𑁂ᬁ
-T; \uA67D\u200C霣🄆。\u200C𑁂\u1B01; [C1 P1 V5 V6]; [P1 V5 V6] # ꙽霣🄆.𑁂ᬁ
-N; \uA67D\u200C霣🄆。\u200C𑁂\u1B01; [C1 P1 V5 V6]; [C1 P1 V5 V6] # ꙽霣🄆.𑁂ᬁ
-T; \uA67D\u200C霣5,。\u200C𑁂\u1B01; [C1 P1 V5 V6]; [P1 V5 V6] # ꙽霣5,.𑁂ᬁ
-N; \uA67D\u200C霣5,。\u200C𑁂\u1B01; [C1 P1 V5 V6]; [C1 P1 V5 V6] # ꙽霣5,.𑁂ᬁ
-B; xn--5,-op8g373c.xn--4sf0725i; [P1 V5 V6]; [P1 V5 V6] # ꙽霣5,.𑁂ᬁ
-B; xn--5,-i1tz135dnbqa.xn--4sf36u6u4w; [C1 P1 V5 V6]; [C1 P1 V5 V6] # ꙽霣5,.𑁂ᬁ
-B; xn--2q5a751a653w.xn--4sf0725i; [V5 V6]; [V5 V6] # ꙽霣🄆.𑁂ᬁ
-B; xn--0ug4208b2vjuk63a.xn--4sf36u6u4w; [C1 V5 V6]; [C1 V5 V6] # ꙽霣🄆.𑁂ᬁ
-B; 兎。ᠼ󠴜𑚶𑰿; [P1 V6]; [P1 V6]
-B; 兎。ᠼ󠴜𑚶𑰿; [P1 V6]; [P1 V6]
-B; xn--b5q.xn--v7e6041kqqd4m251b; [V6]; [V6]
-T; 𝟙。\u200D𝟸\u200D⁷; [C2]; 1.27 # 1.27
-N; 𝟙。\u200D𝟸\u200D⁷; [C2]; [C2] # 1.27
-T; 1。\u200D2\u200D7; [C2]; 1.27 # 1.27
-N; 1。\u200D2\u200D7; [C2]; [C2] # 1.27
-B; 1.27; ;
-B; 1.xn--27-l1tb; [C2]; [C2] # 1.27
-B; ᡨ-。󠻋𝟷; [P1 V3 V6]; [P1 V3 V6]
-B; ᡨ-。󠻋1; [P1 V3 V6]; [P1 V3 V6]
-B; xn----z8j.xn--1-5671m; [V3 V6]; [V3 V6]
-B; 𑰻񵀐𐫚.\u0668⁹; [B1 P1 V5 V6]; [B1 P1 V5 V6] # 𑰻𐫚.٨9
-B; 𑰻񵀐𐫚.\u06689; [B1 P1 V5 V6]; [B1 P1 V5 V6] # 𑰻𐫚.٨9
-B; xn--gx9cr01aul57i.xn--9-oqc; [B1 V5 V6]; [B1 V5 V6] # 𑰻𐫚.٨9
-T; Ⴜ򈷭\u0F80⾇。Ⴏ♀\u200C\u200C; [C1 P1 V6]; [P1 V6] # Ⴜྀ舛.Ⴏ♀
-N; Ⴜ򈷭\u0F80⾇。Ⴏ♀\u200C\u200C; [C1 P1 V6]; [C1 P1 V6] # Ⴜྀ舛.Ⴏ♀
-T; Ⴜ򈷭\u0F80舛。Ⴏ♀\u200C\u200C; [C1 P1 V6]; [P1 V6] # Ⴜྀ舛.Ⴏ♀
-N; Ⴜ򈷭\u0F80舛。Ⴏ♀\u200C\u200C; [C1 P1 V6]; [C1 P1 V6] # Ⴜྀ舛.Ⴏ♀
-T; ⴜ򈷭\u0F80舛。ⴏ♀\u200C\u200C; [C1 P1 V6]; [P1 V6] # ⴜྀ舛.ⴏ♀
-N; ⴜ򈷭\u0F80舛。ⴏ♀\u200C\u200C; [C1 P1 V6]; [C1 P1 V6] # ⴜྀ舛.ⴏ♀
-B; xn--zed372mdj2do3v4h.xn--e5h11w; [V6]; [V6] # ⴜྀ舛.ⴏ♀
-B; xn--zed372mdj2do3v4h.xn--0uga678bgyh; [C1 V6]; [C1 V6] # ⴜྀ舛.ⴏ♀
-B; xn--zed54dz10wo343g.xn--nnd651i; [V6]; [V6] # Ⴜྀ舛.Ⴏ♀
-B; xn--zed54dz10wo343g.xn--nnd089ea464d; [C1 V6]; [C1 V6] # Ⴜྀ舛.Ⴏ♀
-T; ⴜ򈷭\u0F80⾇。ⴏ♀\u200C\u200C; [C1 P1 V6]; [P1 V6] # ⴜྀ舛.ⴏ♀
-N; ⴜ򈷭\u0F80⾇。ⴏ♀\u200C\u200C; [C1 P1 V6]; [C1 P1 V6] # ⴜྀ舛.ⴏ♀
-T; 𑁆𝟰.\u200D; [C2 V5]; [V5] # 𑁆4.
-N; 𑁆𝟰.\u200D; [C2 V5]; [C2 V5] # 𑁆4.
-T; 𑁆4.\u200D; [C2 V5]; [V5] # 𑁆4.
-N; 𑁆4.\u200D; [C2 V5]; [C2 V5] # 𑁆4.
-B; xn--4-xu7i.; [V5]; [V5]
-B; xn--4-xu7i.xn--1ug; [C2 V5]; [C2 V5] # 𑁆4.
-T; 񮴘Ⴞ癀。𑘿\u200D\u200C붼; [C1 P1 V5 V6]; [P1 V5 V6] # Ⴞ癀.𑘿붼
-N; 񮴘Ⴞ癀。𑘿\u200D\u200C붼; [C1 P1 V5 V6]; [C1 P1 V5 V6] # Ⴞ癀.𑘿붼
-T; 񮴘Ⴞ癀。𑘿\u200D\u200C붼; [C1 P1 V5 V6]; [P1 V5 V6] # Ⴞ癀.𑘿붼
-N; 񮴘Ⴞ癀。𑘿\u200D\u200C붼; [C1 P1 V5 V6]; [C1 P1 V5 V6] # Ⴞ癀.𑘿붼
-T; 񮴘Ⴞ癀。𑘿\u200D\u200C붼; [C1 P1 V5 V6]; [P1 V5 V6] # Ⴞ癀.𑘿붼
-N; 񮴘Ⴞ癀。𑘿\u200D\u200C붼; [C1 P1 V5 V6]; [C1 P1 V5 V6] # Ⴞ癀.𑘿붼
-T; 񮴘Ⴞ癀。𑘿\u200D\u200C붼; [C1 P1 V5 V6]; [P1 V5 V6] # Ⴞ癀.𑘿붼
-N; 񮴘Ⴞ癀。𑘿\u200D\u200C붼; [C1 P1 V5 V6]; [C1 P1 V5 V6] # Ⴞ癀.𑘿붼
-T; 񮴘ⴞ癀。𑘿\u200D\u200C붼; [C1 P1 V5 V6]; [P1 V5 V6] # ⴞ癀.𑘿붼
-N; 񮴘ⴞ癀。𑘿\u200D\u200C붼; [C1 P1 V5 V6]; [C1 P1 V5 V6] # ⴞ癀.𑘿붼
-T; 񮴘ⴞ癀。𑘿\u200D\u200C붼; [C1 P1 V5 V6]; [P1 V5 V6] # ⴞ癀.𑘿붼
-N; 񮴘ⴞ癀。𑘿\u200D\u200C붼; [C1 P1 V5 V6]; [C1 P1 V5 V6] # ⴞ癀.𑘿붼
-B; xn--mlju35u7qx2f.xn--et3bn23n; [V5 V6]; [V5 V6]
-B; xn--mlju35u7qx2f.xn--0ugb6122js83c; [C1 V5 V6]; [C1 V5 V6] # ⴞ癀.𑘿붼
-B; xn--2nd6803c7q37d.xn--et3bn23n; [V5 V6]; [V5 V6]
-B; xn--2nd6803c7q37d.xn--0ugb6122js83c; [C1 V5 V6]; [C1 V5 V6] # Ⴞ癀.𑘿붼
-T; 񮴘ⴞ癀。𑘿\u200D\u200C붼; [C1 P1 V5 V6]; [P1 V5 V6] # ⴞ癀.𑘿붼
-N; 񮴘ⴞ癀。𑘿\u200D\u200C붼; [C1 P1 V5 V6]; [C1 P1 V5 V6] # ⴞ癀.𑘿붼
-T; 񮴘ⴞ癀。𑘿\u200D\u200C붼; [C1 P1 V5 V6]; [P1 V5 V6] # ⴞ癀.𑘿붼
-N; 񮴘ⴞ癀。𑘿\u200D\u200C붼; [C1 P1 V5 V6]; [C1 P1 V5 V6] # ⴞ癀.𑘿붼
-B; 󚀅-\u0BCD。\u06B9; [B6 P1 V6]; [B6 P1 V6] # -்.ڹ
-B; xn----mze84808x.xn--skb; [B6 V6]; [B6 V6] # -்.ڹ
-B; ᡃ𝟧≯ᠣ.氁񨏱ꁫ; [P1 V6]; [P1 V6]
-B; ᡃ𝟧>\u0338ᠣ.氁񨏱ꁫ; [P1 V6]; [P1 V6]
-B; ᡃ5≯ᠣ.氁񨏱ꁫ; [P1 V6]; [P1 V6]
-B; ᡃ5>\u0338ᠣ.氁񨏱ꁫ; [P1 V6]; [P1 V6]
-B; xn--5-24jyf768b.xn--lqw213ime95g; [V6]; [V6]
-B; 𐹬𝩇.\u0F76; [B1 B3 B6 V5]; [B1 B3 B6 V5] # 𐹬𝩇.ྲྀ
-B; 𐹬𝩇.\u0FB2\u0F80; [B1 B3 B6 V5]; [B1 B3 B6 V5] # 𐹬𝩇.ྲྀ
-B; 𐹬𝩇.\u0FB2\u0F80; [B1 B3 B6 V5]; [B1 B3 B6 V5] # 𐹬𝩇.ྲྀ
-B; xn--ko0d8295a.xn--zed3h; [B1 B3 B6 V5]; [B1 B3 B6 V5] # 𐹬𝩇.ྲྀ
-B; -𑈶⒏.⒎𰛢󠎭; [P1 V3 V6]; [P1 V3 V6]
-B; -𑈶8..7.𰛢󠎭; [P1 V3 V6 A4_2]; [P1 V3 V6 A4_2]
-B; xn---8-bv5o..7.xn--c35nf1622b; [V3 V6 A4_2]; [V3 V6 A4_2]
-B; xn----scp6252h.xn--zshy411yzpx2d; [V3 V6]; [V3 V6]
-T; \u200CႡ畝\u200D.≮; [C1 C2 P1 V6]; [P1 V6] # Ⴁ畝.≮
-N; \u200CႡ畝\u200D.≮; [C1 C2 P1 V6]; [C1 C2 P1 V6] # Ⴁ畝.≮
-T; \u200CႡ畝\u200D.<\u0338; [C1 C2 P1 V6]; [P1 V6] # Ⴁ畝.≮
-N; \u200CႡ畝\u200D.<\u0338; [C1 C2 P1 V6]; [C1 C2 P1 V6] # Ⴁ畝.≮
-T; \u200CႡ畝\u200D.≮; [C1 C2 P1 V6]; [P1 V6] # Ⴁ畝.≮
-N; \u200CႡ畝\u200D.≮; [C1 C2 P1 V6]; [C1 C2 P1 V6] # Ⴁ畝.≮
-T; \u200CႡ畝\u200D.<\u0338; [C1 C2 P1 V6]; [P1 V6] # Ⴁ畝.≮
-N; \u200CႡ畝\u200D.<\u0338; [C1 C2 P1 V6]; [C1 C2 P1 V6] # Ⴁ畝.≮
-T; \u200Cⴁ畝\u200D.<\u0338; [C1 C2 P1 V6]; [P1 V6] # ⴁ畝.≮
-N; \u200Cⴁ畝\u200D.<\u0338; [C1 C2 P1 V6]; [C1 C2 P1 V6] # ⴁ畝.≮
-T; \u200Cⴁ畝\u200D.≮; [C1 C2 P1 V6]; [P1 V6] # ⴁ畝.≮
-N; \u200Cⴁ畝\u200D.≮; [C1 C2 P1 V6]; [C1 C2 P1 V6] # ⴁ畝.≮
-B; xn--skjy82u.xn--gdh; [V6]; [V6]
-B; xn--0ugc160hb36e.xn--gdh; [C1 C2 V6]; [C1 C2 V6] # ⴁ畝.≮
-B; xn--8md0962c.xn--gdh; [V6]; [V6]
-B; xn--8md700fea3748f.xn--gdh; [C1 C2 V6]; [C1 C2 V6] # Ⴁ畝.≮
-T; \u200Cⴁ畝\u200D.<\u0338; [C1 C2 P1 V6]; [P1 V6] # ⴁ畝.≮
-N; \u200Cⴁ畝\u200D.<\u0338; [C1 C2 P1 V6]; [C1 C2 P1 V6] # ⴁ畝.≮
-T; \u200Cⴁ畝\u200D.≮; [C1 C2 P1 V6]; [P1 V6] # ⴁ畝.≮
-N; \u200Cⴁ畝\u200D.≮; [C1 C2 P1 V6]; [C1 C2 P1 V6] # ⴁ畝.≮
-T; 歷。𐹻≯󳛽\u200D; [B1 C2 P1 V6]; [B1 P1 V6] # 歷.𐹻≯
-N; 歷。𐹻≯󳛽\u200D; [B1 C2 P1 V6]; [B1 C2 P1 V6] # 歷.𐹻≯
-T; 歷。𐹻>\u0338󳛽\u200D; [B1 C2 P1 V6]; [B1 P1 V6] # 歷.𐹻≯
-N; 歷。𐹻>\u0338󳛽\u200D; [B1 C2 P1 V6]; [B1 C2 P1 V6] # 歷.𐹻≯
-T; 歷。𐹻≯󳛽\u200D; [B1 C2 P1 V6]; [B1 P1 V6] # 歷.𐹻≯
-N; 歷。𐹻≯󳛽\u200D; [B1 C2 P1 V6]; [B1 C2 P1 V6] # 歷.𐹻≯
-T; 歷。𐹻>\u0338󳛽\u200D; [B1 C2 P1 V6]; [B1 P1 V6] # 歷.𐹻≯
-N; 歷。𐹻>\u0338󳛽\u200D; [B1 C2 P1 V6]; [B1 C2 P1 V6] # 歷.𐹻≯
-B; xn--nmw.xn--hdh7804gdms2h; [B1 V6]; [B1 V6]
-B; xn--nmw.xn--1ugx6gs128a1134j; [B1 C2 V6]; [B1 C2 V6] # 歷.𐹻≯
-T; \u0ECB\u200D.鎁󠰑; [C2 P1 V5 V6]; [P1 V5 V6] # ໋.鎁
-N; \u0ECB\u200D.鎁󠰑; [C2 P1 V5 V6]; [C2 P1 V5 V6] # ໋.鎁
-T; \u0ECB\u200D.鎁󠰑; [C2 P1 V5 V6]; [P1 V5 V6] # ໋.鎁
-N; \u0ECB\u200D.鎁󠰑; [C2 P1 V5 V6]; [C2 P1 V5 V6] # ໋.鎁
-B; xn--t8c.xn--iz4a43209d; [V5 V6]; [V5 V6] # ໋.鎁
-B; xn--t8c059f.xn--iz4a43209d; [C2 V5 V6]; [C2 V5 V6] # ໋.鎁
-T; \u200D\u200C𞤀。𱘅𐶃; [B1 B5 B6 C1 C2 P1 V6]; [B5 B6 P1 V6] # 𞤢.
-N; \u200D\u200C𞤀。𱘅𐶃; [B1 B5 B6 C1 C2 P1 V6]; [B1 B5 B6 C1 C2 P1 V6] # 𞤢.
-T; \u200D\u200C𞤀。𱘅𐶃; [B1 B5 B6 C1 C2 P1 V6]; [B5 B6 P1 V6] # 𞤢.
-N; \u200D\u200C𞤀。𱘅𐶃; [B1 B5 B6 C1 C2 P1 V6]; [B1 B5 B6 C1 C2 P1 V6] # 𞤢.
-T; \u200D\u200C𞤢。𱘅𐶃; [B1 B5 B6 C1 C2 P1 V6]; [B5 B6 P1 V6] # 𞤢.
-N; \u200D\u200C𞤢。𱘅𐶃; [B1 B5 B6 C1 C2 P1 V6]; [B1 B5 B6 C1 C2 P1 V6] # 𞤢.
-B; xn--9d6h.xn--wh0dj799f; [B5 B6 V6]; [B5 B6 V6]
-B; xn--0ugb45126a.xn--wh0dj799f; [B1 B5 B6 C1 C2 V6]; [B1 B5 B6 C1 C2 V6] # 𞤢.
-T; \u200D\u200C𞤢。𱘅𐶃; [B1 B5 B6 C1 C2 P1 V6]; [B5 B6 P1 V6] # 𞤢.
-N; \u200D\u200C𞤢。𱘅𐶃; [B1 B5 B6 C1 C2 P1 V6]; [B1 B5 B6 C1 C2 P1 V6] # 𞤢.
-T; \u0628≠𝟫-.ς⒍𐹦≠; [B3 B5 B6 P1 V3 V6]; [B3 B5 B6 P1 V3 V6] # ب≠9-.ς⒍𐹦≠
-N; \u0628≠𝟫-.ς⒍𐹦≠; [B3 B5 B6 P1 V3 V6]; [B3 B5 B6 P1 V3 V6] # ب≠9-.ς⒍𐹦≠
-T; \u0628=\u0338𝟫-.ς⒍𐹦=\u0338; [B3 B5 B6 P1 V3 V6]; [B3 B5 B6 P1 V3 V6] # ب≠9-.ς⒍𐹦≠
-N; \u0628=\u0338𝟫-.ς⒍𐹦=\u0338; [B3 B5 B6 P1 V3 V6]; [B3 B5 B6 P1 V3 V6] # ب≠9-.ς⒍𐹦≠
-T; \u0628≠9-.ς6.𐹦≠; [B1 B3 P1 V3 V6]; [B1 B3 P1 V3 V6] # ب≠9-.ς6.𐹦≠
-N; \u0628≠9-.ς6.𐹦≠; [B1 B3 P1 V3 V6]; [B1 B3 P1 V3 V6] # ب≠9-.ς6.𐹦≠
-T; \u0628=\u03389-.ς6.𐹦=\u0338; [B1 B3 P1 V3 V6]; [B1 B3 P1 V3 V6] # ب≠9-.ς6.𐹦≠
-N; \u0628=\u03389-.ς6.𐹦=\u0338; [B1 B3 P1 V3 V6]; [B1 B3 P1 V3 V6] # ب≠9-.ς6.𐹦≠
-B; \u0628=\u03389-.Σ6.𐹦=\u0338; [B1 B3 P1 V3 V6]; [B1 B3 P1 V3 V6] # ب≠9-.σ6.𐹦≠
-B; \u0628≠9-.Σ6.𐹦≠; [B1 B3 P1 V3 V6]; [B1 B3 P1 V3 V6] # ب≠9-.σ6.𐹦≠
-B; \u0628≠9-.σ6.𐹦≠; [B1 B3 P1 V3 V6]; [B1 B3 P1 V3 V6] # ب≠9-.σ6.𐹦≠
-B; \u0628=\u03389-.σ6.𐹦=\u0338; [B1 B3 P1 V3 V6]; [B1 B3 P1 V3 V6] # ب≠9-.σ6.𐹦≠
-B; xn--9--etd0100a.xn--6-zmb.xn--1ch8704g; [B1 B3 V3 V6]; [B1 B3 V3 V6] # ب≠9-.σ6.𐹦≠
-B; xn--9--etd0100a.xn--6-xmb.xn--1ch8704g; [B1 B3 V3 V6]; [B1 B3 V3 V6] # ب≠9-.ς6.𐹦≠
-B; \u0628=\u0338𝟫-.Σ⒍𐹦=\u0338; [B3 B5 B6 P1 V3 V6]; [B3 B5 B6 P1 V3 V6] # ب≠9-.σ⒍𐹦≠
-B; \u0628≠𝟫-.Σ⒍𐹦≠; [B3 B5 B6 P1 V3 V6]; [B3 B5 B6 P1 V3 V6] # ب≠9-.σ⒍𐹦≠
-B; \u0628≠𝟫-.σ⒍𐹦≠; [B3 B5 B6 P1 V3 V6]; [B3 B5 B6 P1 V3 V6] # ب≠9-.σ⒍𐹦≠
-B; \u0628=\u0338𝟫-.σ⒍𐹦=\u0338; [B3 B5 B6 P1 V3 V6]; [B3 B5 B6 P1 V3 V6] # ب≠9-.σ⒍𐹦≠
-B; xn--9--etd0100a.xn--4xa887mzpbzz04b; [B3 B5 B6 V3 V6]; [B3 B5 B6 V3 V6] # ب≠9-.σ⒍𐹦≠
-B; xn--9--etd0100a.xn--3xa097mzpbzz04b; [B3 B5 B6 V3 V6]; [B3 B5 B6 V3 V6] # ب≠9-.ς⒍𐹦≠
-B; 򉛴.-ᡢ\u0592𝨠; [P1 V3 V6]; [P1 V3 V6] # .-ᡢ֒𝨠
-B; xn--ep37b.xn----hec165lho83b; [V3 V6]; [V3 V6] # .-ᡢ֒𝨠
-T; \u06CB⒈ß󠄽。񷋍-; [B2 B3 B6 P1 V3 V6]; [B2 B3 B6 P1 V3 V6] # ۋ⒈ß.-
-N; \u06CB⒈ß󠄽。񷋍-; [B2 B3 B6 P1 V3 V6]; [B2 B3 B6 P1 V3 V6] # ۋ⒈ß.-
-T; \u06CB1.ß󠄽。񷋍-; [B6 P1 V3 V6]; [B6 P1 V3 V6] # ۋ1.ß.-
-N; \u06CB1.ß󠄽。񷋍-; [B6 P1 V3 V6]; [B6 P1 V3 V6] # ۋ1.ß.-
-B; \u06CB1.SS󠄽。񷋍-; [B6 P1 V3 V6]; [B6 P1 V3 V6] # ۋ1.ss.-
-B; \u06CB1.ss󠄽。񷋍-; [B6 P1 V3 V6]; [B6 P1 V3 V6] # ۋ1.ss.-
-B; \u06CB1.Ss󠄽。񷋍-; [B6 P1 V3 V6]; [B6 P1 V3 V6] # ۋ1.ss.-
-B; xn--1-cwc.ss.xn----q001f; [B6 V3 V6]; [B6 V3 V6] # ۋ1.ss.-
-B; xn--1-cwc.xn--zca.xn----q001f; [B6 V3 V6]; [B6 V3 V6] # ۋ1.ß.-
-B; \u06CB⒈SS󠄽。񷋍-; [B2 B3 B6 P1 V3 V6]; [B2 B3 B6 P1 V3 V6] # ۋ⒈ss.-
-B; \u06CB⒈ss󠄽。񷋍-; [B2 B3 B6 P1 V3 V6]; [B2 B3 B6 P1 V3 V6] # ۋ⒈ss.-
-B; \u06CB⒈Ss󠄽。񷋍-; [B2 B3 B6 P1 V3 V6]; [B2 B3 B6 P1 V3 V6] # ۋ⒈ss.-
-B; xn--ss-d7d6651a.xn----q001f; [B2 B3 B6 V3 V6]; [B2 B3 B6 V3 V6] # ۋ⒈ss.-
-B; xn--zca541ato3a.xn----q001f; [B2 B3 B6 V3 V6]; [B2 B3 B6 V3 V6] # ۋ⒈ß.-
-T; 𿀫.\u1BAAςႦ\u200D; [C2 P1 V5 V6]; [P1 V5 V6] # .᮪ςႦ
-N; 𿀫.\u1BAAςႦ\u200D; [C2 P1 V5 V6]; [C2 P1 V5 V6] # .᮪ςႦ
-T; 𿀫.\u1BAAςႦ\u200D; [C2 P1 V5 V6]; [P1 V5 V6] # .᮪ςႦ
-N; 𿀫.\u1BAAςႦ\u200D; [C2 P1 V5 V6]; [C2 P1 V5 V6] # .᮪ςႦ
-T; 𿀫.\u1BAAςⴆ\u200D; [C2 P1 V5 V6]; [P1 V5 V6] # .᮪ςⴆ
-N; 𿀫.\u1BAAςⴆ\u200D; [C2 P1 V5 V6]; [C2 P1 V5 V6] # .᮪ςⴆ
-T; 𿀫.\u1BAAΣႦ\u200D; [C2 P1 V5 V6]; [P1 V5 V6] # .᮪σႦ
-N; 𿀫.\u1BAAΣႦ\u200D; [C2 P1 V5 V6]; [C2 P1 V5 V6] # .᮪σႦ
-T; 𿀫.\u1BAAσⴆ\u200D; [C2 P1 V5 V6]; [P1 V5 V6] # .᮪σⴆ
-N; 𿀫.\u1BAAσⴆ\u200D; [C2 P1 V5 V6]; [C2 P1 V5 V6] # .᮪σⴆ
-T; 𿀫.\u1BAAΣⴆ\u200D; [C2 P1 V5 V6]; [P1 V5 V6] # .᮪σⴆ
-N; 𿀫.\u1BAAΣⴆ\u200D; [C2 P1 V5 V6]; [C2 P1 V5 V6] # .᮪σⴆ
-B; xn--nu4s.xn--4xa153j7im; [V5 V6]; [V5 V6] # .᮪σⴆ
-B; xn--nu4s.xn--4xa153jk8cs1q; [C2 V5 V6]; [C2 V5 V6] # .᮪σⴆ
-B; xn--nu4s.xn--4xa217dxri; [V5 V6]; [V5 V6] # .᮪σႦ
-B; xn--nu4s.xn--4xa217dxriome; [C2 V5 V6]; [C2 V5 V6] # .᮪σႦ
-B; xn--nu4s.xn--3xa353jk8cs1q; [C2 V5 V6]; [C2 V5 V6] # .᮪ςⴆ
-B; xn--nu4s.xn--3xa417dxriome; [C2 V5 V6]; [C2 V5 V6] # .᮪ςႦ
-T; 𿀫.\u1BAAςⴆ\u200D; [C2 P1 V5 V6]; [P1 V5 V6] # .᮪ςⴆ
-N; 𿀫.\u1BAAςⴆ\u200D; [C2 P1 V5 V6]; [C2 P1 V5 V6] # .᮪ςⴆ
-T; 𿀫.\u1BAAΣႦ\u200D; [C2 P1 V5 V6]; [P1 V5 V6] # .᮪σႦ
-N; 𿀫.\u1BAAΣႦ\u200D; [C2 P1 V5 V6]; [C2 P1 V5 V6] # .᮪σႦ
-T; 𿀫.\u1BAAσⴆ\u200D; [C2 P1 V5 V6]; [P1 V5 V6] # .᮪σⴆ
-N; 𿀫.\u1BAAσⴆ\u200D; [C2 P1 V5 V6]; [C2 P1 V5 V6] # .᮪σⴆ
-T; 𿀫.\u1BAAΣⴆ\u200D; [C2 P1 V5 V6]; [P1 V5 V6] # .᮪σⴆ
-N; 𿀫.\u1BAAΣⴆ\u200D; [C2 P1 V5 V6]; [C2 P1 V5 V6] # .᮪σⴆ
-B; ⾆\u08E2.𝈴; [B1 B5 B6 P1 V6]; [B1 B5 B6 P1 V6] # 舌.𝈴
-B; 舌\u08E2.𝈴; [B1 B5 B6 P1 V6]; [B1 B5 B6 P1 V6] # 舌.𝈴
-B; xn--l0b9413d.xn--kl1h; [B1 B5 B6 V6]; [B1 B5 B6 V6] # 舌.𝈴
-B; ⫞𐹶𖫴。⭠⒈; [B1 P1 V6]; [B1 P1 V6]
-B; ⫞𐹶𖫴。⭠1.; [B1]; [B1]
-B; xn--53ix188et88b.xn--1-h6r.; [B1]; [B1]
-B; xn--53ix188et88b.xn--tsh52w; [B1 V6]; [B1 V6]
-T; ⒈\u200C\uAAEC︒.\u0ACD; [C1 P1 V5 V6]; [P1 V5 V6] # ⒈ꫬ︒.્
-N; ⒈\u200C\uAAEC︒.\u0ACD; [C1 P1 V5 V6]; [C1 P1 V5 V6] # ⒈ꫬ︒.્
-T; 1.\u200C\uAAEC。.\u0ACD; [C1 V5 A4_2]; [V5 A4_2] # 1.ꫬ..્
-N; 1.\u200C\uAAEC。.\u0ACD; [C1 V5 A4_2]; [C1 V5 A4_2] # 1.ꫬ..્
-B; 1.xn--sv9a..xn--mfc; [V5 A4_2]; [V5 A4_2] # 1.ꫬ..્
-B; 1.xn--0ug7185c..xn--mfc; [C1 V5 A4_2]; [C1 V5 A4_2] # 1.ꫬ..્
-B; xn--tsh0720cse8b.xn--mfc; [V5 V6]; [V5 V6] # ⒈ꫬ︒.્
-B; xn--0ug78o720myr1c.xn--mfc; [C1 V5 V6]; [C1 V5 V6] # ⒈ꫬ︒.્
-B; \u0C46。䰀\u0668𞭅󠅼; [B1 B3 B5 B6 P1 V5 V6]; [B1 B3 B5 B6 P1 V5 V6] # ె.䰀٨
-B; xn--eqc.xn--hib5476aim6t; [B1 B3 B5 B6 V5 V6]; [B1 B3 B5 B6 V5 V6] # ె.䰀٨
-T; ß\u200D.\u1BF2񄾼; [C2 P1 V5 V6]; [P1 V5 V6] # ß.᯲
-N; ß\u200D.\u1BF2񄾼; [C2 P1 V5 V6]; [C2 P1 V5 V6] # ß.᯲
-T; SS\u200D.\u1BF2񄾼; [C2 P1 V5 V6]; [P1 V5 V6] # ss.᯲
-N; SS\u200D.\u1BF2񄾼; [C2 P1 V5 V6]; [C2 P1 V5 V6] # ss.᯲
-T; ss\u200D.\u1BF2񄾼; [C2 P1 V5 V6]; [P1 V5 V6] # ss.᯲
-N; ss\u200D.\u1BF2񄾼; [C2 P1 V5 V6]; [C2 P1 V5 V6] # ss.᯲
-T; Ss\u200D.\u1BF2񄾼; [C2 P1 V5 V6]; [P1 V5 V6] # ss.᯲
-N; Ss\u200D.\u1BF2񄾼; [C2 P1 V5 V6]; [C2 P1 V5 V6] # ss.᯲
-B; ss.xn--0zf22107b; [V5 V6]; [V5 V6] # ss.᯲
-B; xn--ss-n1t.xn--0zf22107b; [C2 V5 V6]; [C2 V5 V6] # ss.᯲
-B; xn--zca870n.xn--0zf22107b; [C2 V5 V6]; [C2 V5 V6] # ß.᯲
-T; 𑓂\u200C≮.≮; [P1 V5 V6]; [P1 V5 V6] # 𑓂≮.≮
-N; 𑓂\u200C≮.≮; [P1 V5 V6]; [P1 V5 V6] # 𑓂≮.≮
-T; 𑓂\u200C<\u0338.<\u0338; [P1 V5 V6]; [P1 V5 V6] # 𑓂≮.≮
-N; 𑓂\u200C<\u0338.<\u0338; [P1 V5 V6]; [P1 V5 V6] # 𑓂≮.≮
-B; xn--gdhz656g.xn--gdh; [V5 V6]; [V5 V6]
-B; xn--0ugy6glz29a.xn--gdh; [V5 V6]; [V5 V6] # 𑓂≮.≮
-B; 🕼.\uFFA0; [P1 V6]; [P1 V6] # 🕼.
-B; 🕼.\u1160; [P1 V6]; [P1 V6] # 🕼.
-B; xn--my8h.xn--psd; [V6]; [V6] # 🕼.
-B; xn--my8h.xn--cl7c; [V6]; [V6] # 🕼.
-B; ᡔ\uFD82。񷘎; [B5 B6 P1 V6]; [B5 B6 P1 V6] # ᡔلحى.
-B; ᡔ\u0644\u062D\u0649。񷘎; [B5 B6 P1 V6]; [B5 B6 P1 V6] # ᡔلحى.
-B; xn--sgb9bq785p.xn--bc31b; [B5 B6 V6]; [B5 B6 V6] # ᡔلحى.
-B; 爕򳙑.𝟰気; [P1 V6]; [P1 V6]
-B; 爕򳙑.4気; [P1 V6]; [P1 V6]
-B; xn--1zxq3199c.xn--4-678b; [V6]; [V6]
-B; ⒋𑍍Ⴝ-.𞬪\u0DCA\u05B5; [B1 P1 V3 V6]; [B1 P1 V3 V6] # ⒋𑍍Ⴝ-.්ֵ
-B; 4.𑍍Ⴝ-.𞬪\u0DCA\u05B5; [B1 B6 P1 V3 V5 V6]; [B1 B6 P1 V3 V5 V6] # 4.𑍍Ⴝ-.්ֵ
-B; 4.𑍍ⴝ-.𞬪\u0DCA\u05B5; [B1 B6 P1 V3 V5 V6]; [B1 B6 P1 V3 V5 V6] # 4.𑍍ⴝ-.්ֵ
-B; 4.xn----wwsx259f.xn--ddb152b7y23b; [B1 B6 V3 V5 V6]; [B1 B6 V3 V5 V6] # 4.𑍍ⴝ-.්ֵ
-B; 4.xn----t1g9869q.xn--ddb152b7y23b; [B1 B6 V3 V5 V6]; [B1 B6 V3 V5 V6] # 4.𑍍Ⴝ-.්ֵ
-B; ⒋𑍍ⴝ-.𞬪\u0DCA\u05B5; [B1 P1 V3 V6]; [B1 P1 V3 V6] # ⒋𑍍ⴝ-.්ֵ
-B; xn----jcp487avl3w.xn--ddb152b7y23b; [B1 V3 V6]; [B1 V3 V6] # ⒋𑍍ⴝ-.්ֵ
-B; xn----t1g323mnk9t.xn--ddb152b7y23b; [B1 V3 V6]; [B1 V3 V6] # ⒋𑍍Ⴝ-.්ֵ
-B; 󞝃。򑆃񉢗--; [P1 V2 V3 V6]; [P1 V2 V3 V6]
-B; xn--2y75e.xn-----1l15eer88n; [V2 V3 V6]; [V2 V3 V6]
-T; \u200D\u07DF。\u200C\uABED; [B1 C1 C2]; [B1 B3 B6 V5] # ߟ.꯭
-N; \u200D\u07DF。\u200C\uABED; [B1 C1 C2]; [B1 C1 C2] # ߟ.꯭
-T; \u200D\u07DF。\u200C\uABED; [B1 C1 C2]; [B1 B3 B6 V5] # ߟ.꯭
-N; \u200D\u07DF。\u200C\uABED; [B1 C1 C2]; [B1 C1 C2] # ߟ.꯭
-B; xn--6sb.xn--429a; [B1 B3 B6 V5]; [B1 B3 B6 V5] # ߟ.꯭
-B; xn--6sb394j.xn--0ug1126c; [B1 C1 C2]; [B1 C1 C2] # ߟ.꯭
-B; 𞮽\u07FF\u084E。ᢍ򝹁𐫘; [B5 B6 P1 V6]; [B5 B6 P1 V6] # ࡎ.ᢍ𐫘
-B; 𞮽\u07FF\u084E。ᢍ򝹁𐫘; [B5 B6 P1 V6]; [B5 B6 P1 V6] # ࡎ.ᢍ𐫘
-B; xn--3tb2nz468k.xn--69e8615j5rn5d; [B5 B6 V6]; [B5 B6 V6] # ࡎ.ᢍ𐫘
-B; \u06ED𞺌𑄚\u1714.ꡞ\u08B7; [B1 B5 B6 V5]; [B1 B5 B6 V5] # ۭم𑄚᜔.ꡞࢷ
-B; \u06ED\u0645𑄚\u1714.ꡞ\u08B7; [B1 B5 B6 V5]; [B1 B5 B6 V5] # ۭم𑄚᜔.ꡞࢷ
-B; xn--hhb94ag41b739u.xn--dzb5582f; [B1 B5 B6 V5]; [B1 B5 B6 V5] # ۭم𑄚᜔.ꡞࢷ
-T; 񻂵킃𑘶\u07DC。ς\u063Cς; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 킃𑘶ߜ.ςؼς
-N; 񻂵킃𑘶\u07DC。ς\u063Cς; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 킃𑘶ߜ.ςؼς
-T; 񻂵킃𑘶\u07DC。ς\u063Cς; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 킃𑘶ߜ.ςؼς
-N; 񻂵킃𑘶\u07DC。ς\u063Cς; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 킃𑘶ߜ.ςؼς
-T; 񻂵킃𑘶\u07DC。ς\u063Cς; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 킃𑘶ߜ.ςؼς
-N; 񻂵킃𑘶\u07DC。ς\u063Cς; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 킃𑘶ߜ.ςؼς
-T; 񻂵킃𑘶\u07DC。ς\u063Cς; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 킃𑘶ߜ.ςؼς
-N; 񻂵킃𑘶\u07DC。ς\u063Cς; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 킃𑘶ߜ.ςؼς
-B; 񻂵킃𑘶\u07DC。Σ\u063CΣ; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 킃𑘶ߜ.σؼσ
-B; 񻂵킃𑘶\u07DC。Σ\u063CΣ; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 킃𑘶ߜ.σؼσ
-B; 񻂵킃𑘶\u07DC。σ\u063Cσ; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 킃𑘶ߜ.σؼσ
-B; 񻂵킃𑘶\u07DC。σ\u063Cσ; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 킃𑘶ߜ.σؼσ
-B; 񻂵킃𑘶\u07DC。Σ\u063Cσ; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 킃𑘶ߜ.σؼσ
-B; 񻂵킃𑘶\u07DC。Σ\u063Cσ; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 킃𑘶ߜ.σؼσ
-B; xn--3sb7483hoyvbbe76g.xn--4xaa21q; [B5 B6 V6]; [B5 B6 V6] # 킃𑘶ߜ.σؼσ
-T; 񻂵킃𑘶\u07DC。Σ\u063Cς; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 킃𑘶ߜ.σؼς
-N; 񻂵킃𑘶\u07DC。Σ\u063Cς; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 킃𑘶ߜ.σؼς
-T; 񻂵킃𑘶\u07DC。Σ\u063Cς; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 킃𑘶ߜ.σؼς
-N; 񻂵킃𑘶\u07DC。Σ\u063Cς; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 킃𑘶ߜ.σؼς
-T; 񻂵킃𑘶\u07DC。σ\u063Cς; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 킃𑘶ߜ.σؼς
-N; 񻂵킃𑘶\u07DC。σ\u063Cς; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 킃𑘶ߜ.σؼς
-T; 񻂵킃𑘶\u07DC。σ\u063Cς; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 킃𑘶ߜ.σؼς
-N; 񻂵킃𑘶\u07DC。σ\u063Cς; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 킃𑘶ߜ.σؼς
-B; xn--3sb7483hoyvbbe76g.xn--3xab31q; [B5 B6 V6]; [B5 B6 V6] # 킃𑘶ߜ.σؼς
-B; xn--3sb7483hoyvbbe76g.xn--3xaa51q; [B5 B6 V6]; [B5 B6 V6] # 킃𑘶ߜ.ςؼς
-B; 񻂵킃𑘶\u07DC。Σ\u063CΣ; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 킃𑘶ߜ.σؼσ
-B; 񻂵킃𑘶\u07DC。Σ\u063CΣ; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 킃𑘶ߜ.σؼσ
-B; 񻂵킃𑘶\u07DC。σ\u063Cσ; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 킃𑘶ߜ.σؼσ
-B; 񻂵킃𑘶\u07DC。σ\u063Cσ; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 킃𑘶ߜ.σؼσ
-B; 񻂵킃𑘶\u07DC。Σ\u063Cσ; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 킃𑘶ߜ.σؼσ
-B; 񻂵킃𑘶\u07DC。Σ\u063Cσ; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 킃𑘶ߜ.σؼσ
-T; 񻂵킃𑘶\u07DC。Σ\u063Cς; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 킃𑘶ߜ.σؼς
-N; 񻂵킃𑘶\u07DC。Σ\u063Cς; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 킃𑘶ߜ.σؼς
-T; 񻂵킃𑘶\u07DC。Σ\u063Cς; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 킃𑘶ߜ.σؼς
-N; 񻂵킃𑘶\u07DC。Σ\u063Cς; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 킃𑘶ߜ.σؼς
-T; 񻂵킃𑘶\u07DC。σ\u063Cς; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 킃𑘶ߜ.σؼς
-N; 񻂵킃𑘶\u07DC。σ\u063Cς; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 킃𑘶ߜ.σؼς
-T; 񻂵킃𑘶\u07DC。σ\u063Cς; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 킃𑘶ߜ.σؼς
-N; 񻂵킃𑘶\u07DC。σ\u063Cς; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 킃𑘶ߜ.σؼς
-B; 蔰。󠁹\u08DD-𑈵; [P1 V6]; [P1 V6] # 蔰.ࣝ-𑈵
-B; xn--sz1a.xn----mrd9984r3dl0i; [V6]; [V6] # 蔰.ࣝ-𑈵
-T; ςჅ。\u075A; [P1 V6]; [P1 V6] # ςჅ.ݚ
-N; ςჅ。\u075A; [P1 V6]; [P1 V6] # ςჅ.ݚ
-T; ςⴥ。\u075A; ςⴥ.\u075A; xn--4xa203s.xn--epb # ςⴥ.ݚ
-N; ςⴥ。\u075A; ςⴥ.\u075A; xn--3xa403s.xn--epb # ςⴥ.ݚ
-B; ΣჅ。\u075A; [P1 V6]; [P1 V6] # σჅ.ݚ
-B; σⴥ。\u075A; σⴥ.\u075A; xn--4xa203s.xn--epb # σⴥ.ݚ
-B; Σⴥ。\u075A; σⴥ.\u075A; xn--4xa203s.xn--epb # σⴥ.ݚ
-B; xn--4xa203s.xn--epb; σⴥ.\u075A; xn--4xa203s.xn--epb # σⴥ.ݚ
-B; σⴥ.\u075A; ; xn--4xa203s.xn--epb # σⴥ.ݚ
-B; ΣჅ.\u075A; [P1 V6]; [P1 V6] # σჅ.ݚ
-B; Σⴥ.\u075A; σⴥ.\u075A; xn--4xa203s.xn--epb # σⴥ.ݚ
-B; xn--4xa477d.xn--epb; [V6]; [V6] # σჅ.ݚ
-B; xn--3xa403s.xn--epb; ςⴥ.\u075A; xn--3xa403s.xn--epb # ςⴥ.ݚ
-T; ςⴥ.\u075A; ; xn--4xa203s.xn--epb # ςⴥ.ݚ
-N; ςⴥ.\u075A; ; xn--3xa403s.xn--epb # ςⴥ.ݚ
-B; xn--3xa677d.xn--epb; [V6]; [V6] # ςჅ.ݚ
-B; \u0C4DႩ𞰓.\u1B72; [B1 B3 B6 P1 V5 V6]; [B1 B3 B6 P1 V5 V6] # ్Ⴉ.᭲
-B; \u0C4DႩ𞰓.\u1B72; [B1 B3 B6 P1 V5 V6]; [B1 B3 B6 P1 V5 V6] # ్Ⴉ.᭲
-B; \u0C4Dⴉ𞰓.\u1B72; [B1 B3 B6 P1 V5 V6]; [B1 B3 B6 P1 V5 V6] # ్ⴉ.᭲
-B; xn--lqc478nlr02a.xn--dwf; [B1 B3 B6 V5 V6]; [B1 B3 B6 V5 V6] # ్ⴉ.᭲
-B; xn--lqc64t7t26c.xn--dwf; [B1 B3 B6 V5 V6]; [B1 B3 B6 V5 V6] # ్Ⴉ.᭲
-B; \u0C4Dⴉ𞰓.\u1B72; [B1 B3 B6 P1 V5 V6]; [B1 B3 B6 P1 V5 V6] # ్ⴉ.᭲
-B; ⮷≮񎈴󠄟。𐠄; [B1 P1 V6]; [B1 P1 V6]
-B; ⮷<\u0338񎈴󠄟。𐠄; [B1 P1 V6]; [B1 P1 V6]
-B; xn--gdh877a3513h.xn--pc9c; [B1 V6]; [B1 V6]
-T; \u06BC。\u200Dẏ\u200Cᡤ; [B1 C1 C2]; xn--vkb.xn--08e172a # ڼ.ẏᡤ
-N; \u06BC。\u200Dẏ\u200Cᡤ; [B1 C1 C2]; [B1 C1 C2] # ڼ.ẏᡤ
-T; \u06BC。\u200Dy\u0307\u200Cᡤ; [B1 C1 C2]; xn--vkb.xn--08e172a # ڼ.ẏᡤ
-N; \u06BC。\u200Dy\u0307\u200Cᡤ; [B1 C1 C2]; [B1 C1 C2] # ڼ.ẏᡤ
-T; \u06BC。\u200Dẏ\u200Cᡤ; [B1 C1 C2]; xn--vkb.xn--08e172a # ڼ.ẏᡤ
-N; \u06BC。\u200Dẏ\u200Cᡤ; [B1 C1 C2]; [B1 C1 C2] # ڼ.ẏᡤ
-T; \u06BC。\u200Dy\u0307\u200Cᡤ; [B1 C1 C2]; xn--vkb.xn--08e172a # ڼ.ẏᡤ
-N; \u06BC。\u200Dy\u0307\u200Cᡤ; [B1 C1 C2]; [B1 C1 C2] # ڼ.ẏᡤ
-T; \u06BC。\u200DY\u0307\u200Cᡤ; [B1 C1 C2]; xn--vkb.xn--08e172a # ڼ.ẏᡤ
-N; \u06BC。\u200DY\u0307\u200Cᡤ; [B1 C1 C2]; [B1 C1 C2] # ڼ.ẏᡤ
-T; \u06BC。\u200DẎ\u200Cᡤ; [B1 C1 C2]; xn--vkb.xn--08e172a # ڼ.ẏᡤ
-N; \u06BC。\u200DẎ\u200Cᡤ; [B1 C1 C2]; [B1 C1 C2] # ڼ.ẏᡤ
-B; xn--vkb.xn--08e172a; \u06BC.ẏᡤ; xn--vkb.xn--08e172a # ڼ.ẏᡤ
-B; \u06BC.ẏᡤ; ; xn--vkb.xn--08e172a # ڼ.ẏᡤ
-B; \u06BC.y\u0307ᡤ; \u06BC.ẏᡤ; xn--vkb.xn--08e172a # ڼ.ẏᡤ
-B; \u06BC.Y\u0307ᡤ; \u06BC.ẏᡤ; xn--vkb.xn--08e172a # ڼ.ẏᡤ
-B; \u06BC.Ẏᡤ; \u06BC.ẏᡤ; xn--vkb.xn--08e172a # ڼ.ẏᡤ
-B; xn--vkb.xn--08e172ax6aca; [B1 C1 C2]; [B1 C1 C2] # ڼ.ẏᡤ
-T; \u06BC。\u200DY\u0307\u200Cᡤ; [B1 C1 C2]; xn--vkb.xn--08e172a # ڼ.ẏᡤ
-N; \u06BC。\u200DY\u0307\u200Cᡤ; [B1 C1 C2]; [B1 C1 C2] # ڼ.ẏᡤ
-T; \u06BC。\u200DẎ\u200Cᡤ; [B1 C1 C2]; xn--vkb.xn--08e172a # ڼ.ẏᡤ
-N; \u06BC。\u200DẎ\u200Cᡤ; [B1 C1 C2]; [B1 C1 C2] # ڼ.ẏᡤ
-B; 𐹹𑲛。񑂐\u0DCA; [B1 P1 V6]; [B1 P1 V6] # 𐹹𑲛.්
-B; xn--xo0dg5v.xn--h1c39876d; [B1 V6]; [B1 V6] # 𐹹𑲛.්
-B; -≠𑈵。嵕\uFEF1۴\uA953; [B1 B5 P1 V3 V6]; [B1 B5 P1 V3 V6] # -≠𑈵.嵕ي۴꥓
-B; -=\u0338𑈵。嵕\uFEF1۴\uA953; [B1 B5 P1 V3 V6]; [B1 B5 P1 V3 V6] # -≠𑈵.嵕ي۴꥓
-B; -≠𑈵。嵕\u064A۴\uA953; [B1 B5 P1 V3 V6]; [B1 B5 P1 V3 V6] # -≠𑈵.嵕ي۴꥓
-B; -=\u0338𑈵。嵕\u064A۴\uA953; [B1 B5 P1 V3 V6]; [B1 B5 P1 V3 V6] # -≠𑈵.嵕ي۴꥓
-B; xn----ufo4749h.xn--mhb45a235sns3c; [B1 B5 V3 V6]; [B1 B5 V3 V6] # -≠𑈵.嵕ي۴꥓
-T; \u200C񍸰𐹶\u076E.\u06C1\u200D≯\u200D; [B1 B3 C1 C2 P1 V6]; [B3 B5 B6 P1 V6] # 𐹶ݮ.ہ≯
-N; \u200C񍸰𐹶\u076E.\u06C1\u200D≯\u200D; [B1 B3 C1 C2 P1 V6]; [B1 B3 C1 C2 P1 V6] # 𐹶ݮ.ہ≯
-T; \u200C񍸰𐹶\u076E.\u06C1\u200D>\u0338\u200D; [B1 B3 C1 C2 P1 V6]; [B3 B5 B6 P1 V6] # 𐹶ݮ.ہ≯
-N; \u200C񍸰𐹶\u076E.\u06C1\u200D>\u0338\u200D; [B1 B3 C1 C2 P1 V6]; [B1 B3 C1 C2 P1 V6] # 𐹶ݮ.ہ≯
-T; \u200C񍸰𐹶\u076E.\u06C1\u200D≯\u200D; [B1 B3 C1 C2 P1 V6]; [B3 B5 B6 P1 V6] # 𐹶ݮ.ہ≯
-N; \u200C񍸰𐹶\u076E.\u06C1\u200D≯\u200D; [B1 B3 C1 C2 P1 V6]; [B1 B3 C1 C2 P1 V6] # 𐹶ݮ.ہ≯
-T; \u200C񍸰𐹶\u076E.\u06C1\u200D>\u0338\u200D; [B1 B3 C1 C2 P1 V6]; [B3 B5 B6 P1 V6] # 𐹶ݮ.ہ≯
-N; \u200C񍸰𐹶\u076E.\u06C1\u200D>\u0338\u200D; [B1 B3 C1 C2 P1 V6]; [B1 B3 C1 C2 P1 V6] # 𐹶ݮ.ہ≯
-B; xn--ypb5875khz9y.xn--0kb682l; [B3 B5 B6 V6]; [B3 B5 B6 V6] # 𐹶ݮ.ہ≯
-B; xn--ypb717jrx2o7v94a.xn--0kb660ka35v; [B1 B3 C1 C2 V6]; [B1 B3 C1 C2 V6] # 𐹶ݮ.ہ≯
-B; ≮.\u17B5\u0855𐫔; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ≮.ࡕ𐫔
-B; <\u0338.\u17B5\u0855𐫔; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ≮.ࡕ𐫔
-B; ≮.\u17B5\u0855𐫔; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ≮.ࡕ𐫔
-B; <\u0338.\u17B5\u0855𐫔; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ≮.ࡕ𐫔
-B; xn--gdh.xn--kwb589e217p; [B1 V5 V6]; [B1 V5 V6] # ≮.ࡕ𐫔
-T; 𐩗\u200D。ႩႵ; [B3 C2 P1 V6]; [P1 V6] # 𐩗.ႩႵ
-N; 𐩗\u200D。ႩႵ; [B3 C2 P1 V6]; [B3 C2 P1 V6] # 𐩗.ႩႵ
-T; 𐩗\u200D。ႩႵ; [B3 C2 P1 V6]; [P1 V6] # 𐩗.ႩႵ
-N; 𐩗\u200D。ႩႵ; [B3 C2 P1 V6]; [B3 C2 P1 V6] # 𐩗.ႩႵ
-T; 𐩗\u200D。ⴉⴕ; [B3 C2]; xn--pt9c.xn--0kjya # 𐩗.ⴉⴕ
-N; 𐩗\u200D。ⴉⴕ; [B3 C2]; [B3 C2] # 𐩗.ⴉⴕ
-T; 𐩗\u200D。Ⴉⴕ; [B3 C2 P1 V6]; [P1 V6] # 𐩗.Ⴉⴕ
-N; 𐩗\u200D。Ⴉⴕ; [B3 C2 P1 V6]; [B3 C2 P1 V6] # 𐩗.Ⴉⴕ
-B; xn--pt9c.xn--hnd666l; [V6]; [V6]
-B; xn--1ug4933g.xn--hnd666l; [B3 C2 V6]; [B3 C2 V6] # 𐩗.Ⴉⴕ
-B; xn--pt9c.xn--0kjya; 𐩗.ⴉⴕ; xn--pt9c.xn--0kjya; NV8
-B; 𐩗.ⴉⴕ; ; xn--pt9c.xn--0kjya; NV8
-B; 𐩗.ႩႵ; [P1 V6]; [P1 V6]
-B; 𐩗.Ⴉⴕ; [P1 V6]; [P1 V6]
-B; xn--pt9c.xn--hndy; [V6]; [V6]
-B; xn--1ug4933g.xn--0kjya; [B3 C2]; [B3 C2] # 𐩗.ⴉⴕ
-B; xn--1ug4933g.xn--hndy; [B3 C2 V6]; [B3 C2 V6] # 𐩗.ႩႵ
-T; 𐩗\u200D。ⴉⴕ; [B3 C2]; xn--pt9c.xn--0kjya # 𐩗.ⴉⴕ
-N; 𐩗\u200D。ⴉⴕ; [B3 C2]; [B3 C2] # 𐩗.ⴉⴕ
-T; 𐩗\u200D。Ⴉⴕ; [B3 C2 P1 V6]; [P1 V6] # 𐩗.Ⴉⴕ
-N; 𐩗\u200D。Ⴉⴕ; [B3 C2 P1 V6]; [B3 C2 P1 V6] # 𐩗.Ⴉⴕ
-T; \u200C\u200Cㄤ.\u032E󕨑\u09C2; [C1 P1 V5 V6]; [P1 V5 V6] # ㄤ.̮ূ
-N; \u200C\u200Cㄤ.\u032E󕨑\u09C2; [C1 P1 V5 V6]; [C1 P1 V5 V6] # ㄤ.̮ূ
-T; \u200C\u200Cㄤ.\u032E󕨑\u09C2; [C1 P1 V5 V6]; [P1 V5 V6] # ㄤ.̮ূ
-N; \u200C\u200Cㄤ.\u032E󕨑\u09C2; [C1 P1 V5 V6]; [C1 P1 V5 V6] # ㄤ.̮ূ
-B; xn--1fk.xn--vta284a9o563a; [V5 V6]; [V5 V6] # ㄤ.̮ূ
-B; xn--0uga242k.xn--vta284a9o563a; [C1 V5 V6]; [C1 V5 V6] # ㄤ.̮ূ
-T; 𐋻。-\u200C𐫄Ⴗ; [B1 C1 P1 V3 V6]; [B1 P1 V3 V6] # 𐋻.-𐫄Ⴗ
-N; 𐋻。-\u200C𐫄Ⴗ; [B1 C1 P1 V3 V6]; [B1 C1 P1 V3 V6] # 𐋻.-𐫄Ⴗ
-T; 𐋻。-\u200C𐫄Ⴗ; [B1 C1 P1 V3 V6]; [B1 P1 V3 V6] # 𐋻.-𐫄Ⴗ
-N; 𐋻。-\u200C𐫄Ⴗ; [B1 C1 P1 V3 V6]; [B1 C1 P1 V3 V6] # 𐋻.-𐫄Ⴗ
-T; 𐋻。-\u200C𐫄ⴗ; [B1 C1 V3]; [B1 V3] # 𐋻.-𐫄ⴗ
-N; 𐋻。-\u200C𐫄ⴗ; [B1 C1 V3]; [B1 C1 V3] # 𐋻.-𐫄ⴗ
-B; xn--v97c.xn----lws0526f; [B1 V3]; [B1 V3]
-B; xn--v97c.xn----sgnv20du99s; [B1 C1 V3]; [B1 C1 V3] # 𐋻.-𐫄ⴗ
-B; xn--v97c.xn----i1g2513q; [B1 V3 V6]; [B1 V3 V6]
-B; xn--v97c.xn----i1g888ih12u; [B1 C1 V3 V6]; [B1 C1 V3 V6] # 𐋻.-𐫄Ⴗ
-T; 𐋻。-\u200C𐫄ⴗ; [B1 C1 V3]; [B1 V3] # 𐋻.-𐫄ⴗ
-N; 𐋻。-\u200C𐫄ⴗ; [B1 C1 V3]; [B1 C1 V3] # 𐋻.-𐫄ⴗ
-T; 🙑𐷺.≠\u200C; [B1 C1 P1 V6]; [B1 P1 V6] # 🙑.≠
-N; 🙑𐷺.≠\u200C; [B1 C1 P1 V6]; [B1 C1 P1 V6] # 🙑.≠
-T; 🙑𐷺.=\u0338\u200C; [B1 C1 P1 V6]; [B1 P1 V6] # 🙑.≠
-N; 🙑𐷺.=\u0338\u200C; [B1 C1 P1 V6]; [B1 C1 P1 V6] # 🙑.≠
-T; 🙑𐷺.≠\u200C; [B1 C1 P1 V6]; [B1 P1 V6] # 🙑.≠
-N; 🙑𐷺.≠\u200C; [B1 C1 P1 V6]; [B1 C1 P1 V6] # 🙑.≠
-T; 🙑𐷺.=\u0338\u200C; [B1 C1 P1 V6]; [B1 P1 V6] # 🙑.≠
-N; 🙑𐷺.=\u0338\u200C; [B1 C1 P1 V6]; [B1 C1 P1 V6] # 🙑.≠
-B; xn--bl0dh970b.xn--1ch; [B1 V6]; [B1 V6]
-B; xn--bl0dh970b.xn--0ug83g; [B1 C1 V6]; [B1 C1 V6] # 🙑.≠
-B; \u064C\u1CD2。𞮞\u2D7F⧎; [B1 B3 B6 P1 V5 V6]; [B1 B3 B6 P1 V5 V6] # ٌ᳒.⵿⧎
-B; \u064C\u1CD2。𞮞\u2D7F⧎; [B1 B3 B6 P1 V5 V6]; [B1 B3 B6 P1 V5 V6] # ٌ᳒.⵿⧎
-B; xn--ohb646i.xn--ewi38jf765c; [B1 B3 B6 V5 V6]; [B1 B3 B6 V5 V6] # ٌ᳒.⵿⧎
-B; Ⴔ𝨨₃󠁦.𝟳𑂹\u0B82; [P1 V6]; [P1 V6] # Ⴔ𝨨3.7𑂹ஂ
-B; Ⴔ𝨨3󠁦.7𑂹\u0B82; [P1 V6]; [P1 V6] # Ⴔ𝨨3.7𑂹ஂ
-B; ⴔ𝨨3󠁦.7𑂹\u0B82; [P1 V6]; [P1 V6] # ⴔ𝨨3.7𑂹ஂ
-B; xn--3-ews6985n35s3g.xn--7-cve6271r; [V6]; [V6] # ⴔ𝨨3.7𑂹ஂ
-B; xn--3-b1g83426a35t0g.xn--7-cve6271r; [V6]; [V6] # Ⴔ𝨨3.7𑂹ஂ
-B; ⴔ𝨨₃󠁦.𝟳𑂹\u0B82; [P1 V6]; [P1 V6] # ⴔ𝨨3.7𑂹ஂ
-T; 䏈\u200C。\u200C⒈񱢕; [C1 P1 V6]; [P1 V6] # 䏈.⒈
-N; 䏈\u200C。\u200C⒈񱢕; [C1 P1 V6]; [C1 P1 V6] # 䏈.⒈
-T; 䏈\u200C。\u200C1.񱢕; [C1 P1 V6]; [P1 V6] # 䏈.1.
-N; 䏈\u200C。\u200C1.񱢕; [C1 P1 V6]; [C1 P1 V6] # 䏈.1.
-B; xn--eco.1.xn--ms39a; [V6]; [V6]
-B; xn--0ug491l.xn--1-rgn.xn--ms39a; [C1 V6]; [C1 V6] # 䏈.1.
-B; xn--eco.xn--tsh21126d; [V6]; [V6]
-B; xn--0ug491l.xn--0ug88oot66q; [C1 V6]; [C1 V6] # 䏈.⒈
-T; 1\uAAF6ß𑲥。\u1DD8; [V5]; [V5] # 1꫶ß𑲥.ᷘ
-N; 1\uAAF6ß𑲥。\u1DD8; [V5]; [V5] # 1꫶ß𑲥.ᷘ
-T; 1\uAAF6ß𑲥。\u1DD8; [V5]; [V5] # 1꫶ß𑲥.ᷘ
-N; 1\uAAF6ß𑲥。\u1DD8; [V5]; [V5] # 1꫶ß𑲥.ᷘ
-B; 1\uAAF6SS𑲥。\u1DD8; [V5]; [V5] # 1꫶ss𑲥.ᷘ
-B; 1\uAAF6ss𑲥。\u1DD8; [V5]; [V5] # 1꫶ss𑲥.ᷘ
-B; 1\uAAF6Ss𑲥。\u1DD8; [V5]; [V5] # 1꫶ss𑲥.ᷘ
-B; xn--1ss-ir6ln166b.xn--weg; [V5]; [V5] # 1꫶ss𑲥.ᷘ
-B; xn--1-qfa2471kdb0d.xn--weg; [V5]; [V5] # 1꫶ß𑲥.ᷘ
-B; 1\uAAF6SS𑲥。\u1DD8; [V5]; [V5] # 1꫶ss𑲥.ᷘ
-B; 1\uAAF6ss𑲥。\u1DD8; [V5]; [V5] # 1꫶ss𑲥.ᷘ
-B; 1\uAAF6Ss𑲥。\u1DD8; [V5]; [V5] # 1꫶ss𑲥.ᷘ
-T; \u200D񫶩𞪯\u0CCD。\u077C⒈; [B1 C2 P1 V6]; [B5 B6 P1 V6] # ್.ݼ⒈
-N; \u200D񫶩𞪯\u0CCD。\u077C⒈; [B1 C2 P1 V6]; [B1 C2 P1 V6] # ್.ݼ⒈
-T; \u200D񫶩𞪯\u0CCD。\u077C1.; [B1 C2 P1 V6]; [B5 B6 P1 V6] # ್.ݼ1.
-N; \u200D񫶩𞪯\u0CCD。\u077C1.; [B1 C2 P1 V6]; [B1 C2 P1 V6] # ್.ݼ1.
-B; xn--8tc9875v5is1a.xn--1-g6c.; [B5 B6 V6]; [B5 B6 V6] # ್.ݼ1.
-B; xn--8tc969gzn94a4lm8a.xn--1-g6c.; [B1 C2 V6]; [B1 C2 V6] # ್.ݼ1.
-B; xn--8tc9875v5is1a.xn--dqb689l; [B5 B6 V6]; [B5 B6 V6] # ್.ݼ⒈
-B; xn--8tc969gzn94a4lm8a.xn--dqb689l; [B1 C2 V6]; [B1 C2 V6] # ್.ݼ⒈
-B; \u1AB6.𞤳򓢖򻉒\u07D7; [B1 B2 B3 B6 P1 V5 V6]; [B1 B2 B3 B6 P1 V5 V6] # ᪶.𞤳ߗ
-B; \u1AB6.𞤳򓢖򻉒\u07D7; [B1 B2 B3 B6 P1 V5 V6]; [B1 B2 B3 B6 P1 V5 V6] # ᪶.𞤳ߗ
-B; \u1AB6.𞤑򓢖򻉒\u07D7; [B1 B2 B3 B6 P1 V5 V6]; [B1 B2 B3 B6 P1 V5 V6] # ᪶.𞤳ߗ
-B; xn--zqf.xn--ysb9657vuiz5bj0ep; [B1 B2 B3 B6 V5 V6]; [B1 B2 B3 B6 V5 V6] # ᪶.𞤳ߗ
-B; \u1AB6.𞤑򓢖򻉒\u07D7; [B1 B2 B3 B6 P1 V5 V6]; [B1 B2 B3 B6 P1 V5 V6] # ᪶.𞤳ߗ
-B; \u0842𞩚⒈.󠬌8򏳏\u0770; [B1 P1 V6]; [B1 P1 V6] # ࡂ⒈.8ݰ
-B; \u0842𞩚1..󠬌8򏳏\u0770; [B1 P1 V6 A4_2]; [B1 P1 V6 A4_2] # ࡂ1..8ݰ
-B; xn--1-rid26318a..xn--8-s5c22427ox454a; [B1 V6 A4_2]; [B1 V6 A4_2] # ࡂ1..8ݰ
-B; xn--0vb095ldg52a.xn--8-s5c22427ox454a; [B1 V6]; [B1 V6] # ࡂ⒈.8ݰ
-B; \u0361𐫫\u0369ᡷ。-󠰛鞰; [B1 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # ͡𐫫ͩᡷ.-鞰
-B; xn--cvaq482npv5t.xn----yg7dt1332g; [B1 V3 V5 V6]; [B1 V3 V5 V6] # ͡𐫫ͩᡷ.-鞰
-T; -.\u0ACD剘ß𐫃; [B1 V3 V5]; [B1 V3 V5] # -.્剘ß𐫃
-N; -.\u0ACD剘ß𐫃; [B1 V3 V5]; [B1 V3 V5] # -.્剘ß𐫃
-B; -.\u0ACD剘SS𐫃; [B1 V3 V5]; [B1 V3 V5] # -.્剘ss𐫃
-B; -.\u0ACD剘ss𐫃; [B1 V3 V5]; [B1 V3 V5] # -.્剘ss𐫃
-B; -.\u0ACD剘Ss𐫃; [B1 V3 V5]; [B1 V3 V5] # -.્剘ss𐫃
-B; -.xn--ss-bqg4734erywk; [B1 V3 V5]; [B1 V3 V5] # -.્剘ss𐫃
-B; -.xn--zca791c493duf8i; [B1 V3 V5]; [B1 V3 V5] # -.્剘ß𐫃
-B; \u08FB𞵸。-; [B1 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # ࣻ.-
-B; \u08FB𞵸。-; [B1 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # ࣻ.-
-B; xn--b1b2719v.-; [B1 V3 V5 V6]; [B1 V3 V5 V6] # ࣻ.-
-B; ⒈󠈻𐹲。≠\u0603𐹽; [B1 P1 V6]; [B1 P1 V6] # ⒈𐹲.≠𐹽
-B; ⒈󠈻𐹲。=\u0338\u0603𐹽; [B1 P1 V6]; [B1 P1 V6] # ⒈𐹲.≠𐹽
-B; 1.󠈻𐹲。≠\u0603𐹽; [B1 P1 V6]; [B1 P1 V6] # 1.𐹲.≠𐹽
-B; 1.󠈻𐹲。=\u0338\u0603𐹽; [B1 P1 V6]; [B1 P1 V6] # 1.𐹲.≠𐹽
-B; 1.xn--qo0dl3077c.xn--lfb536lb35n; [B1 V6]; [B1 V6] # 1.𐹲.≠𐹽
-B; xn--tshw766f1153g.xn--lfb536lb35n; [B1 V6]; [B1 V6] # ⒈𐹲.≠𐹽
-T; 𐹢󠈚Ⴎ\u200C.㖾𐹡; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 P1 V6] # 𐹢Ⴎ.㖾𐹡
-N; 𐹢󠈚Ⴎ\u200C.㖾𐹡; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 C1 P1 V6] # 𐹢Ⴎ.㖾𐹡
-T; 𐹢󠈚ⴎ\u200C.㖾𐹡; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 P1 V6] # 𐹢ⴎ.㖾𐹡
-N; 𐹢󠈚ⴎ\u200C.㖾𐹡; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 C1 P1 V6] # 𐹢ⴎ.㖾𐹡
-B; xn--5kjx323em053g.xn--pelu572d; [B1 B5 B6 V6]; [B1 B5 B6 V6]
-B; xn--0ug342clq0pqxv4i.xn--pelu572d; [B1 B5 B6 C1 V6]; [B1 B5 B6 C1 V6] # 𐹢ⴎ.㖾𐹡
-B; xn--mnd9001km0o0g.xn--pelu572d; [B1 B5 B6 V6]; [B1 B5 B6 V6]
-B; xn--mnd289ezj4pqxp0i.xn--pelu572d; [B1 B5 B6 C1 V6]; [B1 B5 B6 C1 V6] # 𐹢Ⴎ.㖾𐹡
-B; 򩼗.\u07C7ᡖႳႧ; [B2 B3 P1 V6]; [B2 B3 P1 V6] # .߇ᡖႳႧ
-B; 򩼗.\u07C7ᡖႳႧ; [B2 B3 P1 V6]; [B2 B3 P1 V6] # .߇ᡖႳႧ
-B; 򩼗.\u07C7ᡖⴓⴇ; [B2 B3 P1 V6]; [B2 B3 P1 V6] # .߇ᡖⴓⴇ
-B; 򩼗.\u07C7ᡖႳⴇ; [B2 B3 P1 V6]; [B2 B3 P1 V6] # .߇ᡖႳⴇ
-B; xn--te28c.xn--isb286btrgo7w; [B2 B3 V6]; [B2 B3 V6] # .߇ᡖႳⴇ
-B; xn--te28c.xn--isb295fbtpmb; [B2 B3 V6]; [B2 B3 V6] # .߇ᡖⴓⴇ
-B; xn--te28c.xn--isb856b9a631d; [B2 B3 V6]; [B2 B3 V6] # .߇ᡖႳႧ
-B; 򩼗.\u07C7ᡖⴓⴇ; [B2 B3 P1 V6]; [B2 B3 P1 V6] # .߇ᡖⴓⴇ
-B; 򩼗.\u07C7ᡖႳⴇ; [B2 B3 P1 V6]; [B2 B3 P1 V6] # .߇ᡖႳⴇ
-T; \u200D􅍉.\u06B3\u0775; [B1 C2 P1 V6]; [P1 V6] # .ڳݵ
-N; \u200D􅍉.\u06B3\u0775; [B1 C2 P1 V6]; [B1 C2 P1 V6] # .ڳݵ
-B; xn--3j78f.xn--mkb20b; [V6]; [V6] # .ڳݵ
-B; xn--1ug39444n.xn--mkb20b; [B1 C2 V6]; [B1 C2 V6] # .ڳݵ
-B; 𲤱⒛⾳.ꡦ⒈; [P1 V6]; [P1 V6]
-B; 𲤱20.音.ꡦ1.; [P1 V6]; [P1 V6]
-B; xn--20-9802c.xn--0w5a.xn--1-eg4e.; [V6]; [V6]
-B; xn--dth6033bzbvx.xn--tsh9439b; [V6]; [V6]
-B; \u07DC8񳦓-。򞲙𑁿𐩥\u09CD; [B2 B3 B5 B6 P1 V3 V6]; [B2 B3 B5 B6 P1 V3 V6] # ߜ8-.𑁿𐩥্
-B; \u07DC8񳦓-。򞲙𑁿𐩥\u09CD; [B2 B3 B5 B6 P1 V3 V6]; [B2 B3 B5 B6 P1 V3 V6] # ߜ8-.𑁿𐩥্
-B; xn--8--rve13079p.xn--b7b9842k42df776x; [B2 B3 B5 B6 V3 V6]; [B2 B3 B5 B6 V3 V6] # ߜ8-.𑁿𐩥্
-T; Ⴕ。۰≮ß\u0745; [P1 V6]; [P1 V6] # Ⴕ.۰≮ß݅
-N; Ⴕ。۰≮ß\u0745; [P1 V6]; [P1 V6] # Ⴕ.۰≮ß݅
-T; Ⴕ。۰<\u0338ß\u0745; [P1 V6]; [P1 V6] # Ⴕ.۰≮ß݅
-N; Ⴕ。۰<\u0338ß\u0745; [P1 V6]; [P1 V6] # Ⴕ.۰≮ß݅
-T; ⴕ。۰<\u0338ß\u0745; [P1 V6]; [P1 V6] # ⴕ.۰≮ß݅
-N; ⴕ。۰<\u0338ß\u0745; [P1 V6]; [P1 V6] # ⴕ.۰≮ß݅
-T; ⴕ。۰≮ß\u0745; [P1 V6]; [P1 V6] # ⴕ.۰≮ß݅
-N; ⴕ。۰≮ß\u0745; [P1 V6]; [P1 V6] # ⴕ.۰≮ß݅
-B; Ⴕ。۰≮SS\u0745; [P1 V6]; [P1 V6] # Ⴕ.۰≮ss݅
-B; Ⴕ。۰<\u0338SS\u0745; [P1 V6]; [P1 V6] # Ⴕ.۰≮ss݅
-B; ⴕ。۰<\u0338ss\u0745; [P1 V6]; [P1 V6] # ⴕ.۰≮ss݅
-B; ⴕ。۰≮ss\u0745; [P1 V6]; [P1 V6] # ⴕ.۰≮ss݅
-B; Ⴕ。۰≮Ss\u0745; [P1 V6]; [P1 V6] # Ⴕ.۰≮ss݅
-B; Ⴕ。۰<\u0338Ss\u0745; [P1 V6]; [P1 V6] # Ⴕ.۰≮ss݅
-B; xn--tnd.xn--ss-jbe65aw27i; [V6]; [V6] # Ⴕ.۰≮ss݅
-B; xn--dlj.xn--ss-jbe65aw27i; [V6]; [V6] # ⴕ.۰≮ss݅
-B; xn--dlj.xn--zca912alh227g; [V6]; [V6] # ⴕ.۰≮ß݅
-B; xn--tnd.xn--zca912alh227g; [V6]; [V6] # Ⴕ.۰≮ß݅
-B; \u07E9-.𝨗꒱\u1B72; [B1 B3 V3 V5]; [B1 B3 V3 V5] # ߩ-.𝨗꒱᭲
-B; xn----odd.xn--dwf8994dc8wj; [B1 B3 V3 V5]; [B1 B3 V3 V5] # ߩ-.𝨗꒱᭲
-T; 𞼸\u200C.≯䕵⫧; [B1 B3 C1 P1 V6]; [B1 P1 V6] # .≯䕵⫧
-N; 𞼸\u200C.≯䕵⫧; [B1 B3 C1 P1 V6]; [B1 B3 C1 P1 V6] # .≯䕵⫧
-T; 𞼸\u200C.>\u0338䕵⫧; [B1 B3 C1 P1 V6]; [B1 P1 V6] # .≯䕵⫧
-N; 𞼸\u200C.>\u0338䕵⫧; [B1 B3 C1 P1 V6]; [B1 B3 C1 P1 V6] # .≯䕵⫧
-B; xn--sn7h.xn--hdh754ax6w; [B1 V6]; [B1 V6]
-B; xn--0ugx453p.xn--hdh754ax6w; [B1 B3 C1 V6]; [B1 B3 C1 V6] # .≯䕵⫧
-T; 𐨅ß\uFC57.\u06AC۳︒; [B1 B3 P1 V5 V6]; [B1 B3 P1 V5 V6] # 𐨅ßيخ.ڬ۳︒
-N; 𐨅ß\uFC57.\u06AC۳︒; [B1 B3 P1 V5 V6]; [B1 B3 P1 V5 V6] # 𐨅ßيخ.ڬ۳︒
-T; 𐨅ß\u064A\u062E.\u06AC۳。; [B1 V5]; [B1 V5] # 𐨅ßيخ.ڬ۳.
-N; 𐨅ß\u064A\u062E.\u06AC۳。; [B1 V5]; [B1 V5] # 𐨅ßيخ.ڬ۳.
-B; 𐨅SS\u064A\u062E.\u06AC۳。; [B1 V5]; [B1 V5] # 𐨅ssيخ.ڬ۳.
-B; 𐨅ss\u064A\u062E.\u06AC۳。; [B1 V5]; [B1 V5] # 𐨅ssيخ.ڬ۳.
-B; 𐨅Ss\u064A\u062E.\u06AC۳。; [B1 V5]; [B1 V5] # 𐨅ssيخ.ڬ۳.
-B; xn--ss-ytd5i7765l.xn--fkb6l.; [B1 V5]; [B1 V5] # 𐨅ssيخ.ڬ۳.
-B; xn--zca23yncs877j.xn--fkb6l.; [B1 V5]; [B1 V5] # 𐨅ßيخ.ڬ۳.
-B; 𐨅SS\uFC57.\u06AC۳︒; [B1 B3 P1 V5 V6]; [B1 B3 P1 V5 V6] # 𐨅ssيخ.ڬ۳︒
-B; 𐨅ss\uFC57.\u06AC۳︒; [B1 B3 P1 V5 V6]; [B1 B3 P1 V5 V6] # 𐨅ssيخ.ڬ۳︒
-B; 𐨅Ss\uFC57.\u06AC۳︒; [B1 B3 P1 V5 V6]; [B1 B3 P1 V5 V6] # 𐨅ssيخ.ڬ۳︒
-B; xn--ss-ytd5i7765l.xn--fkb6lp314e; [B1 B3 V5 V6]; [B1 B3 V5 V6] # 𐨅ssيخ.ڬ۳︒
-B; xn--zca23yncs877j.xn--fkb6lp314e; [B1 B3 V5 V6]; [B1 B3 V5 V6] # 𐨅ßيخ.ڬ۳︒
-B; -≮🡒\u1CED.񏿾Ⴁ\u0714; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -≮🡒᳭.Ⴁܔ
-B; -<\u0338🡒\u1CED.񏿾Ⴁ\u0714; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -≮🡒᳭.Ⴁܔ
-B; -<\u0338🡒\u1CED.񏿾ⴁ\u0714; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -≮🡒᳭.ⴁܔ
-B; -≮🡒\u1CED.񏿾ⴁ\u0714; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -≮🡒᳭.ⴁܔ
-B; xn----44l04zxt68c.xn--enb135qf106f; [B1 V3 V6]; [B1 V3 V6] # -≮🡒᳭.ⴁܔ
-B; xn----44l04zxt68c.xn--enb300c1597h; [B1 V3 V6]; [B1 V3 V6] # -≮🡒᳭.Ⴁܔ
-T; 𞤨。ꡏ\u200D\u200C; [B6 C1 C2]; xn--ge6h.xn--oc9a # 𞤨.ꡏ
-N; 𞤨。ꡏ\u200D\u200C; [B6 C1 C2]; [B6 C1 C2] # 𞤨.ꡏ
-T; 𞤨。ꡏ\u200D\u200C; [B6 C1 C2]; xn--ge6h.xn--oc9a # 𞤨.ꡏ
-N; 𞤨。ꡏ\u200D\u200C; [B6 C1 C2]; [B6 C1 C2] # 𞤨.ꡏ
-T; 𞤆。ꡏ\u200D\u200C; [B6 C1 C2]; xn--ge6h.xn--oc9a # 𞤨.ꡏ
-N; 𞤆。ꡏ\u200D\u200C; [B6 C1 C2]; [B6 C1 C2] # 𞤨.ꡏ
-B; xn--ge6h.xn--oc9a; 𞤨.ꡏ; xn--ge6h.xn--oc9a
-B; 𞤨.ꡏ; ; xn--ge6h.xn--oc9a
-B; 𞤆.ꡏ; 𞤨.ꡏ; xn--ge6h.xn--oc9a
-B; xn--ge6h.xn--0ugb9575h; [B6 C1 C2]; [B6 C1 C2] # 𞤨.ꡏ
-T; 𞤆。ꡏ\u200D\u200C; [B6 C1 C2]; xn--ge6h.xn--oc9a # 𞤨.ꡏ
-N; 𞤆。ꡏ\u200D\u200C; [B6 C1 C2]; [B6 C1 C2] # 𞤨.ꡏ
-B; 󠅹𑂶.ᢌ𑂹\u0669; [B1 B3 B5 B6 V5]; [B1 B3 B5 B6 V5] # 𑂶.ᢌ𑂹٩
-B; 󠅹𑂶.ᢌ𑂹\u0669; [B1 B3 B5 B6 V5]; [B1 B3 B5 B6 V5] # 𑂶.ᢌ𑂹٩
-B; xn--b50d.xn--iib993gyp5p; [B1 B3 B5 B6 V5]; [B1 B3 B5 B6 V5] # 𑂶.ᢌ𑂹٩
-B; Ⅎ󠅺񝵒。≯⾑; [P1 V6]; [P1 V6]
-B; Ⅎ󠅺񝵒。>\u0338⾑; [P1 V6]; [P1 V6]
-B; Ⅎ󠅺񝵒。≯襾; [P1 V6]; [P1 V6]
-B; Ⅎ󠅺񝵒。>\u0338襾; [P1 V6]; [P1 V6]
-B; ⅎ󠅺񝵒。>\u0338襾; [P1 V6]; [P1 V6]
-B; ⅎ󠅺񝵒。≯襾; [P1 V6]; [P1 V6]
-B; xn--73g39298c.xn--hdhz171b; [V6]; [V6]
-B; xn--f3g73398c.xn--hdhz171b; [V6]; [V6]
-B; ⅎ󠅺񝵒。>\u0338⾑; [P1 V6]; [P1 V6]
-B; ⅎ󠅺񝵒。≯⾑; [P1 V6]; [P1 V6]
-T; ς\u200D\u0DD4\u0660。-; [B1 B5 B6 C2 V3]; [B1 B5 B6 V3] # ςු٠.-
-N; ς\u200D\u0DD4\u0660。-; [B1 B5 B6 C2 V3]; [B1 B5 B6 C2 V3] # ςු٠.-
-T; ς\u200D\u0DD4\u0660。-; [B1 B5 B6 C2 V3]; [B1 B5 B6 V3] # ςු٠.-
-N; ς\u200D\u0DD4\u0660。-; [B1 B5 B6 C2 V3]; [B1 B5 B6 C2 V3] # ςු٠.-
-T; Σ\u200D\u0DD4\u0660。-; [B1 B5 B6 C2 V3]; [B1 B5 B6 V3] # σු٠.-
-N; Σ\u200D\u0DD4\u0660。-; [B1 B5 B6 C2 V3]; [B1 B5 B6 C2 V3] # σු٠.-
-T; σ\u200D\u0DD4\u0660。-; [B1 B5 B6 C2 V3]; [B1 B5 B6 V3] # σු٠.-
-N; σ\u200D\u0DD4\u0660。-; [B1 B5 B6 C2 V3]; [B1 B5 B6 C2 V3] # σු٠.-
-B; xn--4xa25ks2j.-; [B1 B5 B6 V3]; [B1 B5 B6 V3] # σු٠.-
-B; xn--4xa25ks2jenu.-; [B1 B5 B6 C2 V3]; [B1 B5 B6 C2 V3] # σු٠.-
-B; xn--3xa45ks2jenu.-; [B1 B5 B6 C2 V3]; [B1 B5 B6 C2 V3] # ςු٠.-
-T; Σ\u200D\u0DD4\u0660。-; [B1 B5 B6 C2 V3]; [B1 B5 B6 V3] # σු٠.-
-N; Σ\u200D\u0DD4\u0660。-; [B1 B5 B6 C2 V3]; [B1 B5 B6 C2 V3] # σු٠.-
-T; σ\u200D\u0DD4\u0660。-; [B1 B5 B6 C2 V3]; [B1 B5 B6 V3] # σු٠.-
-N; σ\u200D\u0DD4\u0660。-; [B1 B5 B6 C2 V3]; [B1 B5 B6 C2 V3] # σු٠.-
-T; \u200C.ßႩ-; [C1 P1 V3 V6]; [P1 V3 V6 A4_2] # .ßႩ-
-N; \u200C.ßႩ-; [C1 P1 V3 V6]; [C1 P1 V3 V6] # .ßႩ-
-T; \u200C.ßⴉ-; [C1 V3]; [V3 A4_2] # .ßⴉ-
-N; \u200C.ßⴉ-; [C1 V3]; [C1 V3] # .ßⴉ-
-T; \u200C.SSႩ-; [C1 P1 V3 V6]; [P1 V3 V6 A4_2] # .ssႩ-
-N; \u200C.SSႩ-; [C1 P1 V3 V6]; [C1 P1 V3 V6] # .ssႩ-
-T; \u200C.ssⴉ-; [C1 V3]; [V3 A4_2] # .ssⴉ-
-N; \u200C.ssⴉ-; [C1 V3]; [C1 V3] # .ssⴉ-
-T; \u200C.Ssⴉ-; [C1 V3]; [V3 A4_2] # .ssⴉ-
-N; \u200C.Ssⴉ-; [C1 V3]; [C1 V3] # .ssⴉ-
-B; .xn--ss--bi1b; [V3 A4_2]; [V3 A4_2]
-B; xn--0ug.xn--ss--bi1b; [C1 V3]; [C1 V3] # .ssⴉ-
-B; .xn--ss--4rn; [V3 V6 A4_2]; [V3 V6 A4_2]
-B; xn--0ug.xn--ss--4rn; [C1 V3 V6]; [C1 V3 V6] # .ssႩ-
-B; xn--0ug.xn----pfa2305a; [C1 V3]; [C1 V3] # .ßⴉ-
-B; xn--0ug.xn----pfa042j; [C1 V3 V6]; [C1 V3 V6] # .ßႩ-
-B; 󍭲𐫍㓱。⾑; [B5 P1 V6]; [B5 P1 V6]
-B; 󍭲𐫍㓱。襾; [B5 P1 V6]; [B5 P1 V6]
-B; xn--u7kt691dlj09f.xn--9v2a; [B5 V6]; [B5 V6]
-T; \u06A0𐮋𐹰≮。≯󠦗\u200D; [B1 B3 C2 P1 V6]; [B1 B3 P1 V6] # ڠ𐮋𐹰≮.≯
-N; \u06A0𐮋𐹰≮。≯󠦗\u200D; [B1 B3 C2 P1 V6]; [B1 B3 C2 P1 V6] # ڠ𐮋𐹰≮.≯
-T; \u06A0𐮋𐹰<\u0338。>\u0338󠦗\u200D; [B1 B3 C2 P1 V6]; [B1 B3 P1 V6] # ڠ𐮋𐹰≮.≯
-N; \u06A0𐮋𐹰<\u0338。>\u0338󠦗\u200D; [B1 B3 C2 P1 V6]; [B1 B3 C2 P1 V6] # ڠ𐮋𐹰≮.≯
-B; xn--2jb053lf13nyoc.xn--hdh08821l; [B1 B3 V6]; [B1 B3 V6] # ڠ𐮋𐹰≮.≯
-B; xn--2jb053lf13nyoc.xn--1ugx6gc8096c; [B1 B3 C2 V6]; [B1 B3 C2 V6] # ڠ𐮋𐹰≮.≯
-B; 𝟞。񃰶\u0777\u08B0⩋; [B1 B5 B6 P1 V6]; [B1 B5 B6 P1 V6] # 6.ݷࢰ⩋
-B; 6。񃰶\u0777\u08B0⩋; [B1 B5 B6 P1 V6]; [B1 B5 B6 P1 V6] # 6.ݷࢰ⩋
-B; 6.xn--7pb04do15eq748f; [B1 B5 B6 V6]; [B1 B5 B6 V6] # 6.ݷࢰ⩋
-B; -\uFCFD。𑇀𑍴; [B1 V3 V5]; [B1 V3 V5] # -شى.𑇀𑍴
-B; -\uFCFD。𑇀𑍴; [B1 V3 V5]; [B1 V3 V5] # -شى.𑇀𑍴
-B; -\u0634\u0649。𑇀𑍴; [B1 V3 V5]; [B1 V3 V5] # -شى.𑇀𑍴
-B; xn----qnc7d.xn--wd1d62a; [B1 V3 V5]; [B1 V3 V5] # -شى.𑇀𑍴
-T; \u200C󠊶𝟏.\u0D43򪥐𐹬󊓶; [B1 C1 P1 V5 V6]; [B1 P1 V5 V6] # 1.ൃ𐹬
-N; \u200C󠊶𝟏.\u0D43򪥐𐹬󊓶; [B1 C1 P1 V5 V6]; [B1 C1 P1 V5 V6] # 1.ൃ𐹬
-T; \u200C󠊶1.\u0D43򪥐𐹬󊓶; [B1 C1 P1 V5 V6]; [B1 P1 V5 V6] # 1.ൃ𐹬
-N; \u200C󠊶1.\u0D43򪥐𐹬󊓶; [B1 C1 P1 V5 V6]; [B1 C1 P1 V5 V6] # 1.ൃ𐹬
-B; xn--1-f521m.xn--mxc0872kcu37dnmem; [B1 V5 V6]; [B1 V5 V6] # 1.ൃ𐹬
-B; xn--1-rgnu0071n.xn--mxc0872kcu37dnmem; [B1 C1 V5 V6]; [B1 C1 V5 V6] # 1.ൃ𐹬
-T; 齙--𝟰.ß; 齙--4.ß; xn----4-p16k.ss
-N; 齙--𝟰.ß; 齙--4.ß; xn----4-p16k.xn--zca
-T; 齙--4.ß; ; xn----4-p16k.ss
-N; 齙--4.ß; ; xn----4-p16k.xn--zca
-B; 齙--4.SS; 齙--4.ss; xn----4-p16k.ss
-B; 齙--4.ss; ; xn----4-p16k.ss
-B; 齙--4.Ss; 齙--4.ss; xn----4-p16k.ss
-B; xn----4-p16k.ss; 齙--4.ss; xn----4-p16k.ss
-B; xn----4-p16k.xn--zca; 齙--4.ß; xn----4-p16k.xn--zca
-B; 齙--𝟰.SS; 齙--4.ss; xn----4-p16k.ss
-B; 齙--𝟰.ss; 齙--4.ss; xn----4-p16k.ss
-B; 齙--𝟰.Ss; 齙--4.ss; xn----4-p16k.ss
-T; \u1BF2.𐹢𞀖\u200C; [B1 C1 V5]; [B1 V5] # ᯲.𐹢𞀖
-N; \u1BF2.𐹢𞀖\u200C; [B1 C1 V5]; [B1 C1 V5] # ᯲.𐹢𞀖
-B; xn--0zf.xn--9n0d2296a; [B1 V5]; [B1 V5] # ᯲.𐹢𞀖
-B; xn--0zf.xn--0ug9894grqqf; [B1 C1 V5]; [B1 C1 V5] # ᯲.𐹢𞀖
-T; 󃲙󠋘。\uDEDE-\u200D; [C2 P1 V6]; [P1 V3 V6 A3] # .-
-N; 󃲙󠋘。\uDEDE-\u200D; [C2 P1 V6]; [C2 P1 V6 A3] # .-
-T; 󃲙󠋘。\uDEDE-\u200D; [C2 P1 V6]; [P1 V3 V6 A3] # .-
-N; 󃲙󠋘。\uDEDE-\u200D; [C2 P1 V6]; [C2 P1 V6 A3] # .-
-B; xn--ct86d8w51a.\uDEDE-; [P1 V3 V6]; [P1 V3 V6 A3] # .-
-B; XN--CT86D8W51A.\uDEDE-; [P1 V3 V6]; [P1 V3 V6 A3] # .-
-B; Xn--Ct86d8w51a.\uDEDE-; [P1 V3 V6]; [P1 V3 V6 A3] # .-
-T; xn--ct86d8w51a.\uDEDE-\u200D; [C2 P1 V6]; [P1 V3 V6 A3] # .-
-N; xn--ct86d8w51a.\uDEDE-\u200D; [C2 P1 V6]; [C2 P1 V6 A3] # .-
-T; XN--CT86D8W51A.\uDEDE-\u200D; [C2 P1 V6]; [P1 V3 V6 A3] # .-
-N; XN--CT86D8W51A.\uDEDE-\u200D; [C2 P1 V6]; [C2 P1 V6 A3] # .-
-T; Xn--Ct86d8w51a.\uDEDE-\u200D; [C2 P1 V6]; [P1 V3 V6 A3] # .-
-N; Xn--Ct86d8w51a.\uDEDE-\u200D; [C2 P1 V6]; [C2 P1 V6 A3] # .-
-B; \u1A60.𞵷-𝪩悎; [B1 B2 B3 B6 P1 V5 V6]; [B1 B2 B3 B6 P1 V5 V6] # ᩠.-𝪩悎
-B; \u1A60.𞵷-𝪩悎; [B1 B2 B3 B6 P1 V5 V6]; [B1 B2 B3 B6 P1 V5 V6] # ᩠.-𝪩悎
-B; xn--jof.xn----gf4bq282iezpa; [B1 B2 B3 B6 V5 V6]; [B1 B2 B3 B6 V5 V6] # ᩠.-𝪩悎
-B; 𛜯󠊛.𞤳񏥾; [B2 B3 B6 P1 V6]; [B2 B3 B6 P1 V6]
-B; 𛜯󠊛.𞤳񏥾; [B2 B3 B6 P1 V6]; [B2 B3 B6 P1 V6]
-B; 𛜯󠊛.𞤑񏥾; [B2 B3 B6 P1 V6]; [B2 B3 B6 P1 V6]
-B; xn--xx5gy2741c.xn--re6hw266j; [B2 B3 B6 V6]; [B2 B3 B6 V6]
-B; 𛜯󠊛.𞤑񏥾; [B2 B3 B6 P1 V6]; [B2 B3 B6 P1 V6]
-B; \u071C𐫒\u062E.𐋲; [B1]; [B1] # ܜ𐫒خ.𐋲
-B; xn--tgb98b8643d.xn--m97c; [B1]; [B1] # ܜ𐫒خ.𐋲
-B; 𐼑𞤓\u0637\u08E2.\uDF56; [P1 V6]; [P1 V6 A3] # 𞤵ط.
-B; 𐼑𞤵\u0637\u08E2.\uDF56; [P1 V6]; [P1 V6 A3] # 𞤵ط.
-B; xn--2gb08k9w69agm0g.\uDF56; [P1 V6]; [P1 V6 A3] # 𞤵ط.
-B; XN--2GB08K9W69AGM0G.\uDF56; [P1 V6]; [P1 V6 A3] # 𞤵ط.
-B; Xn--2Gb08k9w69agm0g.\uDF56; [P1 V6]; [P1 V6 A3] # 𞤵ط.
-B; Ↄ。\u0A4D\u1CD4𞷣; [B1 P1 V5 V6]; [B1 P1 V5 V6] # Ↄ.᳔੍
-B; Ↄ。\u1CD4\u0A4D𞷣; [B1 P1 V5 V6]; [B1 P1 V5 V6] # Ↄ.᳔੍
-B; ↄ。\u1CD4\u0A4D𞷣; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ↄ.᳔੍
-B; xn--r5g.xn--ybc995g0835a; [B1 V5 V6]; [B1 V5 V6] # ↄ.᳔੍
-B; xn--q5g.xn--ybc995g0835a; [B1 V5 V6]; [B1 V5 V6] # Ↄ.᳔੍
-B; ↄ。\u0A4D\u1CD4𞷣; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ↄ.᳔੍
-B; 󠪢-。򛂏≮𑜫; [P1 V3 V6]; [P1 V3 V6]
-B; 󠪢-。򛂏<\u0338𑜫; [P1 V3 V6]; [P1 V3 V6]
-B; xn----bh61m.xn--gdhz157g0em1d; [V3 V6]; [V3 V6]
-T; \u200C󠉹\u200D。򌿧≮Ⴉ; [C1 C2 P1 V6]; [P1 V6] # .≮Ⴉ
-N; \u200C󠉹\u200D。򌿧≮Ⴉ; [C1 C2 P1 V6]; [C1 C2 P1 V6] # .≮Ⴉ
-T; \u200C󠉹\u200D。򌿧<\u0338Ⴉ; [C1 C2 P1 V6]; [P1 V6] # .≮Ⴉ
-N; \u200C󠉹\u200D。򌿧<\u0338Ⴉ; [C1 C2 P1 V6]; [C1 C2 P1 V6] # .≮Ⴉ
-T; \u200C󠉹\u200D。򌿧<\u0338ⴉ; [C1 C2 P1 V6]; [P1 V6] # .≮ⴉ
-N; \u200C󠉹\u200D。򌿧<\u0338ⴉ; [C1 C2 P1 V6]; [C1 C2 P1 V6] # .≮ⴉ
-T; \u200C󠉹\u200D。򌿧≮ⴉ; [C1 C2 P1 V6]; [P1 V6] # .≮ⴉ
-N; \u200C󠉹\u200D。򌿧≮ⴉ; [C1 C2 P1 V6]; [C1 C2 P1 V6] # .≮ⴉ
-B; xn--3n36e.xn--gdh992byu01p; [V6]; [V6]
-B; xn--0ugc90904y.xn--gdh992byu01p; [C1 C2 V6]; [C1 C2 V6] # .≮ⴉ
-B; xn--3n36e.xn--hnd112gpz83n; [V6]; [V6]
-B; xn--0ugc90904y.xn--hnd112gpz83n; [C1 C2 V6]; [C1 C2 V6] # .≮Ⴉ
-B; 𐹯-𑄴\u08BC。︒䖐⾆; [B1 P1 V6]; [B1 P1 V6] # 𐹯-𑄴ࢼ.︒䖐舌
-B; 𐹯-𑄴\u08BC。。䖐舌; [B1 A4_2]; [B1 A4_2] # 𐹯-𑄴ࢼ..䖐舌
-B; xn----rpd7902rclc..xn--fpo216m; [B1 A4_2]; [B1 A4_2] # 𐹯-𑄴ࢼ..䖐舌
-B; xn----rpd7902rclc.xn--fpo216mn07e; [B1 V6]; [B1 V6] # 𐹯-𑄴ࢼ.︒䖐舌
-B; 𝪞Ⴐ。쪡; [P1 V5 V6]; [P1 V5 V6]
-B; 𝪞Ⴐ。쪡; [P1 V5 V6]; [P1 V5 V6]
-B; 𝪞Ⴐ。쪡; [P1 V5 V6]; [P1 V5 V6]
-B; 𝪞Ⴐ。쪡; [P1 V5 V6]; [P1 V5 V6]
-B; 𝪞ⴐ。쪡; [V5]; [V5]
-B; 𝪞ⴐ。쪡; [V5]; [V5]
-B; xn--7kj1858k.xn--pi6b; [V5]; [V5]
-B; xn--ond3755u.xn--pi6b; [V5 V6]; [V5 V6]
-B; 𝪞ⴐ。쪡; [V5]; [V5]
-B; 𝪞ⴐ。쪡; [V5]; [V5]
-B; \u0E3A쩁𐹬.􋉳; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ฺ쩁𐹬.
-B; \u0E3A쩁𐹬.􋉳; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ฺ쩁𐹬.
-B; xn--o4c4837g2zvb.xn--5f70g; [B1 V5 V6]; [B1 V5 V6] # ฺ쩁𐹬.
-T; ᡅ0\u200C。⎢󤨄; [C1 P1 V6]; [P1 V6] # ᡅ0.⎢
-N; ᡅ0\u200C。⎢󤨄; [C1 P1 V6]; [C1 P1 V6] # ᡅ0.⎢
-T; ᡅ0\u200C。⎢󤨄; [C1 P1 V6]; [P1 V6] # ᡅ0.⎢
-N; ᡅ0\u200C。⎢󤨄; [C1 P1 V6]; [C1 P1 V6] # ᡅ0.⎢
-B; xn--0-z6j.xn--8lh28773l; [V6]; [V6]
-B; xn--0-z6jy93b.xn--8lh28773l; [C1 V6]; [C1 V6] # ᡅ0.⎢
-T; 𲮚9ꍩ\u17D3.\u200Dß; [C2 P1 V6]; [P1 V6] # 9ꍩ៓.ß
-N; 𲮚9ꍩ\u17D3.\u200Dß; [C2 P1 V6]; [C2 P1 V6] # 9ꍩ៓.ß
-T; 𲮚9ꍩ\u17D3.\u200Dß; [C2 P1 V6]; [P1 V6] # 9ꍩ៓.ß
-N; 𲮚9ꍩ\u17D3.\u200Dß; [C2 P1 V6]; [C2 P1 V6] # 9ꍩ៓.ß
-T; 𲮚9ꍩ\u17D3.\u200DSS; [C2 P1 V6]; [P1 V6] # 9ꍩ៓.ss
-N; 𲮚9ꍩ\u17D3.\u200DSS; [C2 P1 V6]; [C2 P1 V6] # 9ꍩ៓.ss
-T; 𲮚9ꍩ\u17D3.\u200Dss; [C2 P1 V6]; [P1 V6] # 9ꍩ៓.ss
-N; 𲮚9ꍩ\u17D3.\u200Dss; [C2 P1 V6]; [C2 P1 V6] # 9ꍩ៓.ss
-T; 𲮚9ꍩ\u17D3.\u200DSs; [C2 P1 V6]; [P1 V6] # 9ꍩ៓.ss
-N; 𲮚9ꍩ\u17D3.\u200DSs; [C2 P1 V6]; [C2 P1 V6] # 9ꍩ៓.ss
-B; xn--9-i0j5967eg3qz.ss; [V6]; [V6] # 9ꍩ៓.ss
-B; xn--9-i0j5967eg3qz.xn--ss-l1t; [C2 V6]; [C2 V6] # 9ꍩ៓.ss
-B; xn--9-i0j5967eg3qz.xn--zca770n; [C2 V6]; [C2 V6] # 9ꍩ៓.ß
-T; 𲮚9ꍩ\u17D3.\u200DSS; [C2 P1 V6]; [P1 V6] # 9ꍩ៓.ss
-N; 𲮚9ꍩ\u17D3.\u200DSS; [C2 P1 V6]; [C2 P1 V6] # 9ꍩ៓.ss
-T; 𲮚9ꍩ\u17D3.\u200Dss; [C2 P1 V6]; [P1 V6] # 9ꍩ៓.ss
-N; 𲮚9ꍩ\u17D3.\u200Dss; [C2 P1 V6]; [C2 P1 V6] # 9ꍩ៓.ss
-T; 𲮚9ꍩ\u17D3.\u200DSs; [C2 P1 V6]; [P1 V6] # 9ꍩ៓.ss
-N; 𲮚9ꍩ\u17D3.\u200DSs; [C2 P1 V6]; [C2 P1 V6] # 9ꍩ៓.ss
-B; ꗷ𑆀.\u075D𐩒; ; xn--ju8a625r.xn--hpb0073k; NV8 # ꗷ𑆀.ݝ𐩒
-B; xn--ju8a625r.xn--hpb0073k; ꗷ𑆀.\u075D𐩒; xn--ju8a625r.xn--hpb0073k; NV8 # ꗷ𑆀.ݝ𐩒
-B; ⒐≯-。︒򩑣-񞛠; [P1 V3 V6]; [P1 V3 V6]
-B; ⒐>\u0338-。︒򩑣-񞛠; [P1 V3 V6]; [P1 V3 V6]
-B; 9.≯-。。򩑣-񞛠; [P1 V3 V6 A4_2]; [P1 V3 V6 A4_2]
-B; 9.>\u0338-。。򩑣-񞛠; [P1 V3 V6 A4_2]; [P1 V3 V6 A4_2]
-B; 9.xn----ogo..xn----xj54d1s69k; [V3 V6 A4_2]; [V3 V6 A4_2]
-B; xn----ogot9g.xn----n89hl0522az9u2a; [V3 V6]; [V3 V6]
-B; 򈪚\u0CE3Ⴡ󠢏.\u061D; [B6 P1 V6]; [B6 P1 V6] # ೣჁ.
-B; 򈪚\u0CE3Ⴡ󠢏.\u061D; [B6 P1 V6]; [B6 P1 V6] # ೣჁ.
-B; 򈪚\u0CE3ⴡ󠢏.\u061D; [B6 P1 V6]; [B6 P1 V6] # ೣⴡ.
-B; xn--vuc226n8n28lmju7a.xn--cgb; [B6 V6]; [B6 V6] # ೣⴡ.
-B; xn--vuc49qvu85xmju7a.xn--cgb; [B6 V6]; [B6 V6] # ೣჁ.
-B; 򈪚\u0CE3ⴡ󠢏.\u061D; [B6 P1 V6]; [B6 P1 V6] # ೣⴡ.
-B; \u1DEB。𐋩\u0638-𐫮; [B1 B3 B6 V5]; [B1 B3 B6 V5] # ᷫ.𐋩ظ-𐫮
-B; xn--gfg.xn----xnc0815qyyg; [B1 B3 B6 V5]; [B1 B3 B6 V5] # ᷫ.𐋩ظ-𐫮
-B; 싇。⾇𐳋Ⴝ; [B5 P1 V6]; [B5 P1 V6]
-B; 싇。⾇𐳋Ⴝ; [B5 P1 V6]; [B5 P1 V6]
-B; 싇。舛𐳋Ⴝ; [B5 P1 V6]; [B5 P1 V6]
-B; 싇。舛𐳋Ⴝ; [B5 P1 V6]; [B5 P1 V6]
-B; 싇。舛𐳋ⴝ; [B5]; [B5]
-B; 싇。舛𐳋ⴝ; [B5]; [B5]
-B; 싇。舛𐲋Ⴝ; [B5 P1 V6]; [B5 P1 V6]
-B; 싇。舛𐲋Ⴝ; [B5 P1 V6]; [B5 P1 V6]
-B; 싇。舛𐲋ⴝ; [B5]; [B5]
-B; 싇。舛𐲋ⴝ; [B5]; [B5]
-B; xn--9u4b.xn--llj123yh74e; [B5]; [B5]
-B; xn--9u4b.xn--1nd7519ch79d; [B5 V6]; [B5 V6]
-B; 싇。⾇𐳋ⴝ; [B5]; [B5]
-B; 싇。⾇𐳋ⴝ; [B5]; [B5]
-B; 싇。⾇𐲋Ⴝ; [B5 P1 V6]; [B5 P1 V6]
-B; 싇。⾇𐲋Ⴝ; [B5 P1 V6]; [B5 P1 V6]
-B; 싇。⾇𐲋ⴝ; [B5]; [B5]
-B; 싇。⾇𐲋ⴝ; [B5]; [B5]
-T; 𐹠ς。\u200C\u06BFჀ; [B1 C1 P1 V6]; [B1 B2 B3 P1 V6] # 𐹠ς.ڿჀ
-N; 𐹠ς。\u200C\u06BFჀ; [B1 C1 P1 V6]; [B1 C1 P1 V6] # 𐹠ς.ڿჀ
-T; 𐹠ς。\u200C\u06BFⴠ; [B1 C1]; [B1 B2 B3] # 𐹠ς.ڿⴠ
-N; 𐹠ς。\u200C\u06BFⴠ; [B1 C1]; [B1 C1] # 𐹠ς.ڿⴠ
-T; 𐹠Σ。\u200C\u06BFჀ; [B1 C1 P1 V6]; [B1 B2 B3 P1 V6] # 𐹠σ.ڿჀ
-N; 𐹠Σ。\u200C\u06BFჀ; [B1 C1 P1 V6]; [B1 C1 P1 V6] # 𐹠σ.ڿჀ
-T; 𐹠σ。\u200C\u06BFⴠ; [B1 C1]; [B1 B2 B3] # 𐹠σ.ڿⴠ
-N; 𐹠σ。\u200C\u06BFⴠ; [B1 C1]; [B1 C1] # 𐹠σ.ڿⴠ
-B; xn--4xa9167k.xn--ykb467q; [B1 B2 B3]; [B1 B2 B3] # 𐹠σ.ڿⴠ
-B; xn--4xa9167k.xn--ykb760k9hj; [B1 C1]; [B1 C1] # 𐹠σ.ڿⴠ
-B; xn--4xa9167k.xn--ykb632c; [B1 B2 B3 V6]; [B1 B2 B3 V6] # 𐹠σ.ڿჀ
-B; xn--4xa9167k.xn--ykb632cvxm; [B1 C1 V6]; [B1 C1 V6] # 𐹠σ.ڿჀ
-B; xn--3xa1267k.xn--ykb760k9hj; [B1 C1]; [B1 C1] # 𐹠ς.ڿⴠ
-B; xn--3xa1267k.xn--ykb632cvxm; [B1 C1 V6]; [B1 C1 V6] # 𐹠ς.ڿჀ
-T; 򇒐\u200C\u0604.\u069A-ß; [B2 B3 B5 B6 C1 P1 V6]; [B2 B3 B5 B6 P1 V6] # .ښ-ß
-N; 򇒐\u200C\u0604.\u069A-ß; [B2 B3 B5 B6 C1 P1 V6]; [B2 B3 B5 B6 C1 P1 V6] # .ښ-ß
-T; 򇒐\u200C\u0604.\u069A-SS; [B2 B3 B5 B6 C1 P1 V6]; [B2 B3 B5 B6 P1 V6] # .ښ-ss
-N; 򇒐\u200C\u0604.\u069A-SS; [B2 B3 B5 B6 C1 P1 V6]; [B2 B3 B5 B6 C1 P1 V6] # .ښ-ss
-T; 򇒐\u200C\u0604.\u069A-ss; [B2 B3 B5 B6 C1 P1 V6]; [B2 B3 B5 B6 P1 V6] # .ښ-ss
-N; 򇒐\u200C\u0604.\u069A-ss; [B2 B3 B5 B6 C1 P1 V6]; [B2 B3 B5 B6 C1 P1 V6] # .ښ-ss
-T; 򇒐\u200C\u0604.\u069A-Ss; [B2 B3 B5 B6 C1 P1 V6]; [B2 B3 B5 B6 P1 V6] # .ښ-ss
-N; 򇒐\u200C\u0604.\u069A-Ss; [B2 B3 B5 B6 C1 P1 V6]; [B2 B3 B5 B6 C1 P1 V6] # .ښ-ss
-B; xn--mfb98261i.xn---ss-sdf; [B2 B3 B5 B6 V6]; [B2 B3 B5 B6 V6] # .ښ-ss
-B; xn--mfb144kqo32m.xn---ss-sdf; [B2 B3 B5 B6 C1 V6]; [B2 B3 B5 B6 C1 V6] # .ښ-ss
-B; xn--mfb144kqo32m.xn----qfa315b; [B2 B3 B5 B6 C1 V6]; [B2 B3 B5 B6 C1 V6] # .ښ-ß
-T; \u200C\u200D\u17B5\u067A.-\uFBB0󅄞𐸚; [B1 C1 C2 P1 V3 V6]; [B1 P1 V3 V5 V6] # ٺ.-ۓ
-N; \u200C\u200D\u17B5\u067A.-\uFBB0󅄞𐸚; [B1 C1 C2 P1 V3 V6]; [B1 C1 C2 P1 V3 V6] # ٺ.-ۓ
-T; \u200C\u200D\u17B5\u067A.-\u06D3󅄞𐸚; [B1 C1 C2 P1 V3 V6]; [B1 P1 V3 V5 V6] # ٺ.-ۓ
-N; \u200C\u200D\u17B5\u067A.-\u06D3󅄞𐸚; [B1 C1 C2 P1 V3 V6]; [B1 C1 C2 P1 V3 V6] # ٺ.-ۓ
-T; \u200C\u200D\u17B5\u067A.-\u06D2\u0654󅄞𐸚; [B1 C1 C2 P1 V3 V6]; [B1 P1 V3 V5 V6] # ٺ.-ۓ
-N; \u200C\u200D\u17B5\u067A.-\u06D2\u0654󅄞𐸚; [B1 C1 C2 P1 V3 V6]; [B1 C1 C2 P1 V3 V6] # ٺ.-ۓ
-B; xn--zib539f.xn----twc1133r17r6g; [B1 V3 V5 V6]; [B1 V3 V5 V6] # ٺ.-ۓ
-B; xn--zib539f8igea.xn----twc1133r17r6g; [B1 C1 C2 V3 V6]; [B1 C1 C2 V3 V6] # ٺ.-ۓ
-B; 򡶱。𐮬≠; [B3 P1 V6]; [B3 P1 V6]
-B; 򡶱。𐮬=\u0338; [B3 P1 V6]; [B3 P1 V6]
-B; 򡶱。𐮬≠; [B3 P1 V6]; [B3 P1 V6]
-B; 򡶱。𐮬=\u0338; [B3 P1 V6]; [B3 P1 V6]
-B; xn--dd55c.xn--1ch3003g; [B3 V6]; [B3 V6]
-B; \u0FB2𞶅。𐹮𐹷덝۵; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ྲ.𐹮𐹷덝۵
-B; \u0FB2𞶅。𐹮𐹷덝۵; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ྲ.𐹮𐹷덝۵
-B; \u0FB2𞶅。𐹮𐹷덝۵; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ྲ.𐹮𐹷덝۵
-B; \u0FB2𞶅。𐹮𐹷덝۵; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ྲ.𐹮𐹷덝۵
-B; xn--fgd0675v.xn--imb5839fidpcbba; [B1 V5 V6]; [B1 V5 V6] # ྲ.𐹮𐹷덝۵
-T; Ⴏ󠅋-.\u200DႩ; [C2 P1 V3 V6]; [P1 V3 V6] # Ⴏ-.Ⴉ
-N; Ⴏ󠅋-.\u200DႩ; [C2 P1 V3 V6]; [C2 P1 V3 V6] # Ⴏ-.Ⴉ
-T; Ⴏ󠅋-.\u200DႩ; [C2 P1 V3 V6]; [P1 V3 V6] # Ⴏ-.Ⴉ
-N; Ⴏ󠅋-.\u200DႩ; [C2 P1 V3 V6]; [C2 P1 V3 V6] # Ⴏ-.Ⴉ
-T; ⴏ󠅋-.\u200Dⴉ; [C2 V3]; [V3] # ⴏ-.ⴉ
-N; ⴏ󠅋-.\u200Dⴉ; [C2 V3]; [C2 V3] # ⴏ-.ⴉ
-B; xn----3vs.xn--0kj; [V3]; [V3]
-B; xn----3vs.xn--1ug532c; [C2 V3]; [C2 V3] # ⴏ-.ⴉ
-B; xn----00g.xn--hnd; [V3 V6]; [V3 V6]
-B; xn----00g.xn--hnd399e; [C2 V3 V6]; [C2 V3 V6] # Ⴏ-.Ⴉ
-T; ⴏ󠅋-.\u200Dⴉ; [C2 V3]; [V3] # ⴏ-.ⴉ
-N; ⴏ󠅋-.\u200Dⴉ; [C2 V3]; [C2 V3] # ⴏ-.ⴉ
-B; ⇧𐨏󠾈󯶅。\u0600󠈵󠆉; [B1 P1 V6]; [B1 P1 V6] # ⇧𐨏.
-B; xn--l8g5552g64t4g46xf.xn--ifb08144p; [B1 V6]; [B1 V6] # ⇧𐨏.
-B; ≠𐮂.↑🄇⒈; [B1 P1 V6]; [B1 P1 V6]
-B; =\u0338𐮂.↑🄇⒈; [B1 P1 V6]; [B1 P1 V6]
-B; ≠𐮂.↑6,1.; [B1 P1 V6]; [B1 P1 V6]
-B; =\u0338𐮂.↑6,1.; [B1 P1 V6]; [B1 P1 V6]
-B; xn--1chy492g.xn--6,1-pw1a.; [B1 P1 V6]; [B1 P1 V6]
-B; xn--1chy492g.xn--45gx9iuy44d; [B1 V6]; [B1 V6]
-T; 𝩏󠲉ß.ᢤ򄦌\u200C𐹫; [B1 B5 B6 C1 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # 𝩏ß.ᢤ𐹫
-N; 𝩏󠲉ß.ᢤ򄦌\u200C𐹫; [B1 B5 B6 C1 P1 V5 V6]; [B1 B5 B6 C1 P1 V5 V6] # 𝩏ß.ᢤ𐹫
-T; 𝩏󠲉SS.ᢤ򄦌\u200C𐹫; [B1 B5 B6 C1 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # 𝩏ss.ᢤ𐹫
-N; 𝩏󠲉SS.ᢤ򄦌\u200C𐹫; [B1 B5 B6 C1 P1 V5 V6]; [B1 B5 B6 C1 P1 V5 V6] # 𝩏ss.ᢤ𐹫
-T; 𝩏󠲉ss.ᢤ򄦌\u200C𐹫; [B1 B5 B6 C1 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # 𝩏ss.ᢤ𐹫
-N; 𝩏󠲉ss.ᢤ򄦌\u200C𐹫; [B1 B5 B6 C1 P1 V5 V6]; [B1 B5 B6 C1 P1 V5 V6] # 𝩏ss.ᢤ𐹫
-T; 𝩏󠲉Ss.ᢤ򄦌\u200C𐹫; [B1 B5 B6 C1 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # 𝩏ss.ᢤ𐹫
-N; 𝩏󠲉Ss.ᢤ򄦌\u200C𐹫; [B1 B5 B6 C1 P1 V5 V6]; [B1 B5 B6 C1 P1 V5 V6] # 𝩏ss.ᢤ𐹫
-B; xn--ss-zb11ap1427e.xn--ubf2596jbt61c; [B1 B5 B6 V5 V6]; [B1 B5 B6 V5 V6]
-B; xn--ss-zb11ap1427e.xn--ubf609atw1tynn3d; [B1 B5 B6 C1 V5 V6]; [B1 B5 B6 C1 V5 V6] # 𝩏ss.ᢤ𐹫
-B; xn--zca3153vupz3e.xn--ubf609atw1tynn3d; [B1 B5 B6 C1 V5 V6]; [B1 B5 B6 C1 V5 V6] # 𝩏ß.ᢤ𐹫
-T; ß𐵳񗘁Ⴇ。\uA67A; [B1 B3 B5 B6 P1 V5 V6]; [B1 B3 B5 B6 P1 V5 V6] # ßႧ.ꙺ
-N; ß𐵳񗘁Ⴇ。\uA67A; [B1 B3 B5 B6 P1 V5 V6]; [B1 B3 B5 B6 P1 V5 V6] # ßႧ.ꙺ
-T; ß𐵳񗘁Ⴇ。\uA67A; [B1 B3 B5 B6 P1 V5 V6]; [B1 B3 B5 B6 P1 V5 V6] # ßႧ.ꙺ
-N; ß𐵳񗘁Ⴇ。\uA67A; [B1 B3 B5 B6 P1 V5 V6]; [B1 B3 B5 B6 P1 V5 V6] # ßႧ.ꙺ
-T; ß𐵳񗘁ⴇ。\uA67A; [B1 B3 B5 B6 P1 V5 V6]; [B1 B3 B5 B6 P1 V5 V6] # ßⴇ.ꙺ
-N; ß𐵳񗘁ⴇ。\uA67A; [B1 B3 B5 B6 P1 V5 V6]; [B1 B3 B5 B6 P1 V5 V6] # ßⴇ.ꙺ
-B; SS𐵳񗘁Ⴇ。\uA67A; [B1 B3 B5 B6 P1 V5 V6]; [B1 B3 B5 B6 P1 V5 V6] # ssႧ.ꙺ
-B; ss𐵳񗘁ⴇ。\uA67A; [B1 B3 B5 B6 P1 V5 V6]; [B1 B3 B5 B6 P1 V5 V6] # ssⴇ.ꙺ
-B; Ss𐵳񗘁Ⴇ。\uA67A; [B1 B3 B5 B6 P1 V5 V6]; [B1 B3 B5 B6 P1 V5 V6] # ssႧ.ꙺ
-B; xn--ss-rek7420r4hs7b.xn--9x8a; [B1 B3 B5 B6 V5 V6]; [B1 B3 B5 B6 V5 V6] # ssႧ.ꙺ
-B; xn--ss-e61ar955h4hs7b.xn--9x8a; [B1 B3 B5 B6 V5 V6]; [B1 B3 B5 B6 V5 V6] # ssⴇ.ꙺ
-B; xn--zca227tpy4lkns1b.xn--9x8a; [B1 B3 B5 B6 V5 V6]; [B1 B3 B5 B6 V5 V6] # ßⴇ.ꙺ
-B; xn--zca491fci5qkn79a.xn--9x8a; [B1 B3 B5 B6 V5 V6]; [B1 B3 B5 B6 V5 V6] # ßႧ.ꙺ
-T; ß𐵳񗘁ⴇ。\uA67A; [B1 B3 B5 B6 P1 V5 V6]; [B1 B3 B5 B6 P1 V5 V6] # ßⴇ.ꙺ
-N; ß𐵳񗘁ⴇ。\uA67A; [B1 B3 B5 B6 P1 V5 V6]; [B1 B3 B5 B6 P1 V5 V6] # ßⴇ.ꙺ
-B; SS𐵳񗘁Ⴇ。\uA67A; [B1 B3 B5 B6 P1 V5 V6]; [B1 B3 B5 B6 P1 V5 V6] # ssႧ.ꙺ
-B; ss𐵳񗘁ⴇ。\uA67A; [B1 B3 B5 B6 P1 V5 V6]; [B1 B3 B5 B6 P1 V5 V6] # ssⴇ.ꙺ
-B; Ss𐵳񗘁Ⴇ。\uA67A; [B1 B3 B5 B6 P1 V5 V6]; [B1 B3 B5 B6 P1 V5 V6] # ssႧ.ꙺ
-B; \u1714。󠆣-𑋪; [V3 V5]; [V3 V5] # ᜔.-𑋪
-B; xn--fze.xn----ly8i; [V3 V5]; [V3 V5] # ᜔.-𑋪
-T; \uABE8-.򨏜\u05BDß; [P1 V3 V5 V6]; [P1 V3 V5 V6] # ꯨ-.ֽß
-N; \uABE8-.򨏜\u05BDß; [P1 V3 V5 V6]; [P1 V3 V5 V6] # ꯨ-.ֽß
-T; \uABE8-.򨏜\u05BDß; [P1 V3 V5 V6]; [P1 V3 V5 V6] # ꯨ-.ֽß
-N; \uABE8-.򨏜\u05BDß; [P1 V3 V5 V6]; [P1 V3 V5 V6] # ꯨ-.ֽß
-B; \uABE8-.򨏜\u05BDSS; [P1 V3 V5 V6]; [P1 V3 V5 V6] # ꯨ-.ֽss
-B; \uABE8-.򨏜\u05BDss; [P1 V3 V5 V6]; [P1 V3 V5 V6] # ꯨ-.ֽss
-B; \uABE8-.򨏜\u05BDSs; [P1 V3 V5 V6]; [P1 V3 V5 V6] # ꯨ-.ֽss
-B; xn----pw5e.xn--ss-7jd10716y; [V3 V5 V6]; [V3 V5 V6] # ꯨ-.ֽss
-B; xn----pw5e.xn--zca50wfv060a; [V3 V5 V6]; [V3 V5 V6] # ꯨ-.ֽß
-B; \uABE8-.򨏜\u05BDSS; [P1 V3 V5 V6]; [P1 V3 V5 V6] # ꯨ-.ֽss
-B; \uABE8-.򨏜\u05BDss; [P1 V3 V5 V6]; [P1 V3 V5 V6] # ꯨ-.ֽss
-B; \uABE8-.򨏜\u05BDSs; [P1 V3 V5 V6]; [P1 V3 V5 V6] # ꯨ-.ֽss
-B; ᡓ-≮。\u066B󠅱ᡄ; [B1 B6 P1 V6]; [B1 B6 P1 V6] # ᡓ-≮.٫ᡄ
-B; ᡓ-<\u0338。\u066B󠅱ᡄ; [B1 B6 P1 V6]; [B1 B6 P1 V6] # ᡓ-≮.٫ᡄ
-B; xn----s7j866c.xn--kib252g; [B1 B6 V6]; [B1 B6 V6] # ᡓ-≮.٫ᡄ
-B; 𝟥♮𑜫\u08ED.\u17D2𑜫8󠆏; [V5]; [V5] # 3♮𑜫࣭.្𑜫8
-B; 3♮𑜫\u08ED.\u17D2𑜫8󠆏; [V5]; [V5] # 3♮𑜫࣭.្𑜫8
-B; xn--3-ksd277tlo7s.xn--8-f0jx021l; [V5]; [V5] # 3♮𑜫࣭.្𑜫8
-T; -。򕌀\u200D❡; [C2 P1 V3 V6]; [P1 V3 V6] # -.❡
-N; -。򕌀\u200D❡; [C2 P1 V3 V6]; [C2 P1 V3 V6] # -.❡
-T; -。򕌀\u200D❡; [C2 P1 V3 V6]; [P1 V3 V6] # -.❡
-N; -。򕌀\u200D❡; [C2 P1 V3 V6]; [C2 P1 V3 V6] # -.❡
-B; -.xn--nei54421f; [V3 V6]; [V3 V6]
-B; -.xn--1ug800aq795s; [C2 V3 V6]; [C2 V3 V6] # -.❡
-B; 𝟓☱𝟐򥰵。𝪮񐡳; [P1 V5 V6]; [P1 V5 V6]
-B; 5☱2򥰵。𝪮񐡳; [P1 V5 V6]; [P1 V5 V6]
-B; xn--52-dwx47758j.xn--kd3hk431k; [V5 V6]; [V5 V6]
-B; -.-├򖦣; [P1 V3 V6]; [P1 V3 V6]
-B; -.xn----ukp70432h; [V3 V6]; [V3 V6]
-T; \u05A5\u076D。\u200D󠀘; [B1 C2 P1 V5 V6]; [B1 P1 V5 V6] # ֥ݭ.
-N; \u05A5\u076D。\u200D󠀘; [B1 C2 P1 V5 V6]; [B1 C2 P1 V5 V6] # ֥ݭ.
-T; \u05A5\u076D。\u200D󠀘; [B1 C2 P1 V5 V6]; [B1 P1 V5 V6] # ֥ݭ.
-N; \u05A5\u076D。\u200D󠀘; [B1 C2 P1 V5 V6]; [B1 C2 P1 V5 V6] # ֥ݭ.
-B; xn--wcb62g.xn--p526e; [B1 V5 V6]; [B1 V5 V6] # ֥ݭ.
-B; xn--wcb62g.xn--1ugy8001l; [B1 C2 V5 V6]; [B1 C2 V5 V6] # ֥ݭ.
-T; 쥥󔏉Ⴎ.\u200C⒈⒈𐫒; [B1 C1 P1 V6]; [B1 P1 V6] # 쥥Ⴎ.⒈⒈𐫒
-N; 쥥󔏉Ⴎ.\u200C⒈⒈𐫒; [B1 C1 P1 V6]; [B1 C1 P1 V6] # 쥥Ⴎ.⒈⒈𐫒
-T; 쥥󔏉Ⴎ.\u200C⒈⒈𐫒; [B1 C1 P1 V6]; [B1 P1 V6] # 쥥Ⴎ.⒈⒈𐫒
-N; 쥥󔏉Ⴎ.\u200C⒈⒈𐫒; [B1 C1 P1 V6]; [B1 C1 P1 V6] # 쥥Ⴎ.⒈⒈𐫒
-T; 쥥󔏉Ⴎ.\u200C1.1.𐫒; [B1 C1 P1 V6]; [B1 P1 V6] # 쥥Ⴎ.1.1.𐫒
-N; 쥥󔏉Ⴎ.\u200C1.1.𐫒; [B1 C1 P1 V6]; [B1 C1 P1 V6] # 쥥Ⴎ.1.1.𐫒
-T; 쥥󔏉Ⴎ.\u200C1.1.𐫒; [B1 C1 P1 V6]; [B1 P1 V6] # 쥥Ⴎ.1.1.𐫒
-N; 쥥󔏉Ⴎ.\u200C1.1.𐫒; [B1 C1 P1 V6]; [B1 C1 P1 V6] # 쥥Ⴎ.1.1.𐫒
-T; 쥥󔏉ⴎ.\u200C1.1.𐫒; [B1 C1 P1 V6]; [B1 P1 V6] # 쥥ⴎ.1.1.𐫒
-N; 쥥󔏉ⴎ.\u200C1.1.𐫒; [B1 C1 P1 V6]; [B1 C1 P1 V6] # 쥥ⴎ.1.1.𐫒
-T; 쥥󔏉ⴎ.\u200C1.1.𐫒; [B1 C1 P1 V6]; [B1 P1 V6] # 쥥ⴎ.1.1.𐫒
-N; 쥥󔏉ⴎ.\u200C1.1.𐫒; [B1 C1 P1 V6]; [B1 C1 P1 V6] # 쥥ⴎ.1.1.𐫒
-B; xn--5kj3511ccyw3h.1.1.xn--7w9c; [B1 V6]; [B1 V6]
-B; xn--5kj3511ccyw3h.xn--1-rgn.1.xn--7w9c; [B1 C1 V6]; [B1 C1 V6] # 쥥ⴎ.1.1.𐫒
-B; xn--mnd7865gcy28g.1.1.xn--7w9c; [B1 V6]; [B1 V6]
-B; xn--mnd7865gcy28g.xn--1-rgn.1.xn--7w9c; [B1 C1 V6]; [B1 C1 V6] # 쥥Ⴎ.1.1.𐫒
-T; 쥥󔏉ⴎ.\u200C⒈⒈𐫒; [B1 C1 P1 V6]; [B1 P1 V6] # 쥥ⴎ.⒈⒈𐫒
-N; 쥥󔏉ⴎ.\u200C⒈⒈𐫒; [B1 C1 P1 V6]; [B1 C1 P1 V6] # 쥥ⴎ.⒈⒈𐫒
-T; 쥥󔏉ⴎ.\u200C⒈⒈𐫒; [B1 C1 P1 V6]; [B1 P1 V6] # 쥥ⴎ.⒈⒈𐫒
-N; 쥥󔏉ⴎ.\u200C⒈⒈𐫒; [B1 C1 P1 V6]; [B1 C1 P1 V6] # 쥥ⴎ.⒈⒈𐫒
-B; xn--5kj3511ccyw3h.xn--tsha6797o; [B1 V6]; [B1 V6]
-B; xn--5kj3511ccyw3h.xn--0ug88oa0396u; [B1 C1 V6]; [B1 C1 V6] # 쥥ⴎ.⒈⒈𐫒
-B; xn--mnd7865gcy28g.xn--tsha6797o; [B1 V6]; [B1 V6]
-B; xn--mnd7865gcy28g.xn--0ug88oa0396u; [B1 C1 V6]; [B1 C1 V6] # 쥥Ⴎ.⒈⒈𐫒
-B; \u0827𝟶\u06A0-。𑄳; [B1 B3 B6 V3 V5]; [B1 B3 B6 V3 V5] # ࠧ0ڠ-.𑄳
-B; \u08270\u06A0-。𑄳; [B1 B3 B6 V3 V5]; [B1 B3 B6 V3 V5] # ࠧ0ڠ-.𑄳
-B; xn--0--p3d67m.xn--v80d; [B1 B3 B6 V3 V5]; [B1 B3 B6 V3 V5] # ࠧ0ڠ-.𑄳
-T; ς.\uFDC1🞛⒈; [P1 V6]; [P1 V6] # ς.فمي🞛⒈
-N; ς.\uFDC1🞛⒈; [P1 V6]; [P1 V6] # ς.فمي🞛⒈
-T; ς.\u0641\u0645\u064A🞛1.; ; xn--4xa.xn--1-gocmu97674d.; NV8 # ς.فمي🞛1.
-N; ς.\u0641\u0645\u064A🞛1.; ; xn--3xa.xn--1-gocmu97674d.; NV8 # ς.فمي🞛1.
-B; Σ.\u0641\u0645\u064A🞛1.; σ.\u0641\u0645\u064A🞛1.; xn--4xa.xn--1-gocmu97674d.; NV8 # σ.فمي🞛1.
-B; σ.\u0641\u0645\u064A🞛1.; ; xn--4xa.xn--1-gocmu97674d.; NV8 # σ.فمي🞛1.
-B; xn--4xa.xn--1-gocmu97674d.; σ.\u0641\u0645\u064A🞛1.; xn--4xa.xn--1-gocmu97674d.; NV8 # σ.فمي🞛1.
-B; xn--3xa.xn--1-gocmu97674d.; ς.\u0641\u0645\u064A🞛1.; xn--3xa.xn--1-gocmu97674d.; NV8 # ς.فمي🞛1.
-B; Σ.\uFDC1🞛⒈; [P1 V6]; [P1 V6] # σ.فمي🞛⒈
-B; σ.\uFDC1🞛⒈; [P1 V6]; [P1 V6] # σ.فمي🞛⒈
-B; xn--4xa.xn--dhbip2802atb20c; [V6]; [V6] # σ.فمي🞛⒈
-B; xn--3xa.xn--dhbip2802atb20c; [V6]; [V6] # ς.فمي🞛⒈
-B; 🗩-。𐹻󐞆񥉮; [B1 P1 V3 V6]; [B1 P1 V3 V6]
-B; 🗩-。𐹻󐞆񥉮; [B1 P1 V3 V6]; [B1 P1 V3 V6]
-B; xn----6t3s.xn--zo0d4811u6ru6a; [B1 V3 V6]; [B1 V3 V6]
-T; 𐡜-🔪。𝟻\u200C𐿀; [B1 B3 C1 P1 V6]; [B1 B3 P1 V6] # 𐡜-🔪.5
-N; 𐡜-🔪。𝟻\u200C𐿀; [B1 B3 C1 P1 V6]; [B1 B3 C1 P1 V6] # 𐡜-🔪.5
-T; 𐡜-🔪。5\u200C𐿀; [B1 B3 C1 P1 V6]; [B1 B3 P1 V6] # 𐡜-🔪.5
-N; 𐡜-🔪。5\u200C𐿀; [B1 B3 C1 P1 V6]; [B1 B3 C1 P1 V6] # 𐡜-🔪.5
-B; xn----5j4iv089c.xn--5-bn7i; [B1 B3 V6]; [B1 B3 V6]
-B; xn----5j4iv089c.xn--5-sgn7149h; [B1 B3 C1 V6]; [B1 B3 C1 V6] # 𐡜-🔪.5
-T; 𐹣늿\u200Dß.\u07CF0\u05BC; [B1 C2]; [B1] # 𐹣늿ß.ߏ0ּ
-N; 𐹣늿\u200Dß.\u07CF0\u05BC; [B1 C2]; [B1 C2] # 𐹣늿ß.ߏ0ּ
-T; 𐹣늿\u200Dß.\u07CF0\u05BC; [B1 C2]; [B1] # 𐹣늿ß.ߏ0ּ
-N; 𐹣늿\u200Dß.\u07CF0\u05BC; [B1 C2]; [B1 C2] # 𐹣늿ß.ߏ0ּ
-T; 𐹣늿\u200Dß.\u07CF0\u05BC; [B1 C2]; [B1] # 𐹣늿ß.ߏ0ּ
-N; 𐹣늿\u200Dß.\u07CF0\u05BC; [B1 C2]; [B1 C2] # 𐹣늿ß.ߏ0ּ
-T; 𐹣늿\u200Dß.\u07CF0\u05BC; [B1 C2]; [B1] # 𐹣늿ß.ߏ0ּ
-N; 𐹣늿\u200Dß.\u07CF0\u05BC; [B1 C2]; [B1 C2] # 𐹣늿ß.ߏ0ּ
-T; 𐹣늿\u200DSS.\u07CF0\u05BC; [B1 C2]; [B1] # 𐹣늿ss.ߏ0ּ
-N; 𐹣늿\u200DSS.\u07CF0\u05BC; [B1 C2]; [B1 C2] # 𐹣늿ss.ߏ0ּ
-T; 𐹣늿\u200DSS.\u07CF0\u05BC; [B1 C2]; [B1] # 𐹣늿ss.ߏ0ּ
-N; 𐹣늿\u200DSS.\u07CF0\u05BC; [B1 C2]; [B1 C2] # 𐹣늿ss.ߏ0ּ
-T; 𐹣늿\u200Dss.\u07CF0\u05BC; [B1 C2]; [B1] # 𐹣늿ss.ߏ0ּ
-N; 𐹣늿\u200Dss.\u07CF0\u05BC; [B1 C2]; [B1 C2] # 𐹣늿ss.ߏ0ּ
-T; 𐹣늿\u200Dss.\u07CF0\u05BC; [B1 C2]; [B1] # 𐹣늿ss.ߏ0ּ
-N; 𐹣늿\u200Dss.\u07CF0\u05BC; [B1 C2]; [B1 C2] # 𐹣늿ss.ߏ0ּ
-T; 𐹣늿\u200DSs.\u07CF0\u05BC; [B1 C2]; [B1] # 𐹣늿ss.ߏ0ּ
-N; 𐹣늿\u200DSs.\u07CF0\u05BC; [B1 C2]; [B1 C2] # 𐹣늿ss.ߏ0ּ
-T; 𐹣늿\u200DSs.\u07CF0\u05BC; [B1 C2]; [B1] # 𐹣늿ss.ߏ0ּ
-N; 𐹣늿\u200DSs.\u07CF0\u05BC; [B1 C2]; [B1 C2] # 𐹣늿ss.ߏ0ּ
-B; xn--ss-i05i7041a.xn--0-vgc50n; [B1]; [B1] # 𐹣늿ss.ߏ0ּ
-B; xn--ss-l1tu910fo0xd.xn--0-vgc50n; [B1 C2]; [B1 C2] # 𐹣늿ss.ߏ0ּ
-B; xn--zca770n5s4hev6c.xn--0-vgc50n; [B1 C2]; [B1 C2] # 𐹣늿ß.ߏ0ּ
-T; 𐹣늿\u200DSS.\u07CF0\u05BC; [B1 C2]; [B1] # 𐹣늿ss.ߏ0ּ
-N; 𐹣늿\u200DSS.\u07CF0\u05BC; [B1 C2]; [B1 C2] # 𐹣늿ss.ߏ0ּ
-T; 𐹣늿\u200DSS.\u07CF0\u05BC; [B1 C2]; [B1] # 𐹣늿ss.ߏ0ּ
-N; 𐹣늿\u200DSS.\u07CF0\u05BC; [B1 C2]; [B1 C2] # 𐹣늿ss.ߏ0ּ
-T; 𐹣늿\u200Dss.\u07CF0\u05BC; [B1 C2]; [B1] # 𐹣늿ss.ߏ0ּ
-N; 𐹣늿\u200Dss.\u07CF0\u05BC; [B1 C2]; [B1 C2] # 𐹣늿ss.ߏ0ּ
-T; 𐹣늿\u200Dss.\u07CF0\u05BC; [B1 C2]; [B1] # 𐹣늿ss.ߏ0ּ
-N; 𐹣늿\u200Dss.\u07CF0\u05BC; [B1 C2]; [B1 C2] # 𐹣늿ss.ߏ0ּ
-T; 𐹣늿\u200DSs.\u07CF0\u05BC; [B1 C2]; [B1] # 𐹣늿ss.ߏ0ּ
-N; 𐹣늿\u200DSs.\u07CF0\u05BC; [B1 C2]; [B1 C2] # 𐹣늿ss.ߏ0ּ
-T; 𐹣늿\u200DSs.\u07CF0\u05BC; [B1 C2]; [B1] # 𐹣늿ss.ߏ0ּ
-N; 𐹣늿\u200DSs.\u07CF0\u05BC; [B1 C2]; [B1 C2] # 𐹣늿ss.ߏ0ּ
-B; 9󠇥.󪴴ᢓ; [P1 V6]; [P1 V6]
-B; 9󠇥.󪴴ᢓ; [P1 V6]; [P1 V6]
-B; 9.xn--dbf91222q; [V6]; [V6]
-T; \u200C\uFFA0.𐫭🠗ß⽟; [B1 B2 B3 C1 P1 V6]; [B2 B3 P1 V6] # .𐫭🠗ß玉
-N; \u200C\uFFA0.𐫭🠗ß⽟; [B1 B2 B3 C1 P1 V6]; [B1 B2 B3 C1 P1 V6] # .𐫭🠗ß玉
-T; \u200C\u1160.𐫭🠗ß玉; [B1 B2 B3 C1 P1 V6]; [B2 B3 P1 V6] # .𐫭🠗ß玉
-N; \u200C\u1160.𐫭🠗ß玉; [B1 B2 B3 C1 P1 V6]; [B1 B2 B3 C1 P1 V6] # .𐫭🠗ß玉
-T; \u200C\u1160.𐫭🠗SS玉; [B1 B2 B3 C1 P1 V6]; [B2 B3 P1 V6] # .𐫭🠗ss玉
-N; \u200C\u1160.𐫭🠗SS玉; [B1 B2 B3 C1 P1 V6]; [B1 B2 B3 C1 P1 V6] # .𐫭🠗ss玉
-T; \u200C\u1160.𐫭🠗ss玉; [B1 B2 B3 C1 P1 V6]; [B2 B3 P1 V6] # .𐫭🠗ss玉
-N; \u200C\u1160.𐫭🠗ss玉; [B1 B2 B3 C1 P1 V6]; [B1 B2 B3 C1 P1 V6] # .𐫭🠗ss玉
-T; \u200C\u1160.𐫭🠗Ss玉; [B1 B2 B3 C1 P1 V6]; [B2 B3 P1 V6] # .𐫭🠗ss玉
-N; \u200C\u1160.𐫭🠗Ss玉; [B1 B2 B3 C1 P1 V6]; [B1 B2 B3 C1 P1 V6] # .𐫭🠗ss玉
-B; xn--psd.xn--ss-je6eq954cp25j; [B2 B3 V6]; [B2 B3 V6] # .𐫭🠗ss玉
-B; xn--psd526e.xn--ss-je6eq954cp25j; [B1 B2 B3 C1 V6]; [B1 B2 B3 C1 V6] # .𐫭🠗ss玉
-B; xn--psd526e.xn--zca2289c550e0iwi; [B1 B2 B3 C1 V6]; [B1 B2 B3 C1 V6] # .𐫭🠗ß玉
-T; \u200C\uFFA0.𐫭🠗SS⽟; [B1 B2 B3 C1 P1 V6]; [B2 B3 P1 V6] # .𐫭🠗ss玉
-N; \u200C\uFFA0.𐫭🠗SS⽟; [B1 B2 B3 C1 P1 V6]; [B1 B2 B3 C1 P1 V6] # .𐫭🠗ss玉
-T; \u200C\uFFA0.𐫭🠗ss⽟; [B1 B2 B3 C1 P1 V6]; [B2 B3 P1 V6] # .𐫭🠗ss玉
-N; \u200C\uFFA0.𐫭🠗ss⽟; [B1 B2 B3 C1 P1 V6]; [B1 B2 B3 C1 P1 V6] # .𐫭🠗ss玉
-T; \u200C\uFFA0.𐫭🠗Ss⽟; [B1 B2 B3 C1 P1 V6]; [B2 B3 P1 V6] # .𐫭🠗ss玉
-N; \u200C\uFFA0.𐫭🠗Ss⽟; [B1 B2 B3 C1 P1 V6]; [B1 B2 B3 C1 P1 V6] # .𐫭🠗ss玉
-B; xn--cl7c.xn--ss-je6eq954cp25j; [B2 B3 V6]; [B2 B3 V6] # .𐫭🠗ss玉
-B; xn--0ug7719f.xn--ss-je6eq954cp25j; [B1 B2 B3 C1 V6]; [B1 B2 B3 C1 V6] # .𐫭🠗ss玉
-B; xn--0ug7719f.xn--zca2289c550e0iwi; [B1 B2 B3 C1 V6]; [B1 B2 B3 C1 V6] # .𐫭🠗ß玉
-T; ︒Ⴖ\u0366.\u200C; [C1 P1 V6]; [P1 V6] # ︒Ⴖͦ.
-N; ︒Ⴖ\u0366.\u200C; [C1 P1 V6]; [C1 P1 V6] # ︒Ⴖͦ.
-T; 。Ⴖ\u0366.\u200C; [C1 P1 V6 A4_2]; [P1 V6 A4_2] # .Ⴖͦ.
-N; 。Ⴖ\u0366.\u200C; [C1 P1 V6 A4_2]; [C1 P1 V6 A4_2] # .Ⴖͦ.
-T; 。ⴖ\u0366.\u200C; [C1 A4_2]; [A4_2] # .ⴖͦ.
-N; 。ⴖ\u0366.\u200C; [C1 A4_2]; [C1 A4_2] # .ⴖͦ.
-B; .xn--hva754s.; [A4_2]; [A4_2] # .ⴖͦ.
-B; .xn--hva754s.xn--0ug; [C1 A4_2]; [C1 A4_2] # .ⴖͦ.
-B; .xn--hva929d.; [V6 A4_2]; [V6 A4_2] # .Ⴖͦ.
-B; .xn--hva929d.xn--0ug; [C1 V6 A4_2]; [C1 V6 A4_2] # .Ⴖͦ.
-T; ︒ⴖ\u0366.\u200C; [C1 P1 V6]; [P1 V6] # ︒ⴖͦ.
-N; ︒ⴖ\u0366.\u200C; [C1 P1 V6]; [C1 P1 V6] # ︒ⴖͦ.
-B; xn--hva754sy94k.; [V6]; [V6] # ︒ⴖͦ.
-B; xn--hva754sy94k.xn--0ug; [C1 V6]; [C1 V6] # ︒ⴖͦ.
-B; xn--hva929dl29p.; [V6]; [V6] # ︒Ⴖͦ.
-B; xn--hva929dl29p.xn--0ug; [C1 V6]; [C1 V6] # ︒Ⴖͦ.
-B; xn--hva754s.; ⴖ\u0366.; xn--hva754s. # ⴖͦ.
-B; ⴖ\u0366.; ; xn--hva754s. # ⴖͦ.
-B; Ⴖ\u0366.; [P1 V6]; [P1 V6] # Ⴖͦ.
-B; xn--hva929d.; [V6]; [V6] # Ⴖͦ.
-T; \u08BB.\u200CႣ𞀒; [B1 C1 P1 V6]; [P1 V6] # ࢻ.Ⴃ𞀒
-N; \u08BB.\u200CႣ𞀒; [B1 C1 P1 V6]; [B1 C1 P1 V6] # ࢻ.Ⴃ𞀒
-T; \u08BB.\u200CႣ𞀒; [B1 C1 P1 V6]; [P1 V6] # ࢻ.Ⴃ𞀒
-N; \u08BB.\u200CႣ𞀒; [B1 C1 P1 V6]; [B1 C1 P1 V6] # ࢻ.Ⴃ𞀒
-T; \u08BB.\u200Cⴃ𞀒; [B1 C1]; xn--hzb.xn--ukj4430l # ࢻ.ⴃ𞀒
-N; \u08BB.\u200Cⴃ𞀒; [B1 C1]; [B1 C1] # ࢻ.ⴃ𞀒
-B; xn--hzb.xn--ukj4430l; \u08BB.ⴃ𞀒; xn--hzb.xn--ukj4430l # ࢻ.ⴃ𞀒
-B; \u08BB.ⴃ𞀒; ; xn--hzb.xn--ukj4430l # ࢻ.ⴃ𞀒
-B; \u08BB.Ⴃ𞀒; [P1 V6]; [P1 V6] # ࢻ.Ⴃ𞀒
-B; xn--hzb.xn--bnd2938u; [V6]; [V6] # ࢻ.Ⴃ𞀒
-B; xn--hzb.xn--0ug822cp045a; [B1 C1]; [B1 C1] # ࢻ.ⴃ𞀒
-B; xn--hzb.xn--bnd300f7225a; [B1 C1 V6]; [B1 C1 V6] # ࢻ.Ⴃ𞀒
-T; \u08BB.\u200Cⴃ𞀒; [B1 C1]; xn--hzb.xn--ukj4430l # ࢻ.ⴃ𞀒
-N; \u08BB.\u200Cⴃ𞀒; [B1 C1]; [B1 C1] # ࢻ.ⴃ𞀒
-T; \u200D\u200C。2䫷󠧷; [C1 C2 P1 V6]; [P1 V6 A4_2] # .2䫷
-N; \u200D\u200C。2䫷󠧷; [C1 C2 P1 V6]; [C1 C2 P1 V6] # .2䫷
-T; \u200D\u200C。2䫷󠧷; [C1 C2 P1 V6]; [P1 V6 A4_2] # .2䫷
-N; \u200D\u200C。2䫷󠧷; [C1 C2 P1 V6]; [C1 C2 P1 V6] # .2䫷
-B; .xn--2-me5ay1273i; [V6 A4_2]; [V6 A4_2]
-B; xn--0ugb.xn--2-me5ay1273i; [C1 C2 V6]; [C1 C2 V6] # .2䫷
-B; -𞀤󜠐。򈬖; [P1 V3 V6]; [P1 V3 V6]
-B; xn----rq4re4997d.xn--l707b; [V3 V6]; [V3 V6]
-T; 󳛂︒\u200C㟀.\u0624⒈; [C1 P1 V6]; [P1 V6] # ︒㟀.ؤ⒈
-N; 󳛂︒\u200C㟀.\u0624⒈; [C1 P1 V6]; [C1 P1 V6] # ︒㟀.ؤ⒈
-T; 󳛂︒\u200C㟀.\u0648\u0654⒈; [C1 P1 V6]; [P1 V6] # ︒㟀.ؤ⒈
-N; 󳛂︒\u200C㟀.\u0648\u0654⒈; [C1 P1 V6]; [C1 P1 V6] # ︒㟀.ؤ⒈
-T; 󳛂。\u200C㟀.\u06241.; [B1 C1 P1 V6]; [P1 V6] # .㟀.ؤ1.
-N; 󳛂。\u200C㟀.\u06241.; [B1 C1 P1 V6]; [B1 C1 P1 V6] # .㟀.ؤ1.
-T; 󳛂。\u200C㟀.\u0648\u06541.; [B1 C1 P1 V6]; [P1 V6] # .㟀.ؤ1.
-N; 󳛂。\u200C㟀.\u0648\u06541.; [B1 C1 P1 V6]; [B1 C1 P1 V6] # .㟀.ؤ1.
-B; xn--z272f.xn--etl.xn--1-smc.; [V6]; [V6] # .㟀.ؤ1.
-B; xn--z272f.xn--0ug754g.xn--1-smc.; [B1 C1 V6]; [B1 C1 V6] # .㟀.ؤ1.
-B; xn--etlt457ccrq7h.xn--jgb476m; [V6]; [V6] # ︒㟀.ؤ⒈
-B; xn--0ug754gxl4ldlt0k.xn--jgb476m; [C1 V6]; [C1 V6] # ︒㟀.ؤ⒈
-T; 𑲜\u07CA𝅼。-\u200D; [B1 C2 V3 V5]; [B1 V3 V5] # 𑲜ߊ𝅼.-
-N; 𑲜\u07CA𝅼。-\u200D; [B1 C2 V3 V5]; [B1 C2 V3 V5] # 𑲜ߊ𝅼.-
-B; xn--lsb5482l7nre.-; [B1 V3 V5]; [B1 V3 V5] # 𑲜ߊ𝅼.-
-B; xn--lsb5482l7nre.xn----ugn; [B1 C2 V3 V5]; [B1 C2 V3 V5] # 𑲜ߊ𝅼.-
-T; \u200C.Ⴉ≠𐫶; [B1 B5 B6 C1 P1 V6]; [B5 B6 P1 V6 A4_2] # .Ⴉ≠𐫶
-N; \u200C.Ⴉ≠𐫶; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 C1 P1 V6] # .Ⴉ≠𐫶
-T; \u200C.Ⴉ=\u0338𐫶; [B1 B5 B6 C1 P1 V6]; [B5 B6 P1 V6 A4_2] # .Ⴉ≠𐫶
-N; \u200C.Ⴉ=\u0338𐫶; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 C1 P1 V6] # .Ⴉ≠𐫶
-T; \u200C.Ⴉ≠𐫶; [B1 B5 B6 C1 P1 V6]; [B5 B6 P1 V6 A4_2] # .Ⴉ≠𐫶
-N; \u200C.Ⴉ≠𐫶; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 C1 P1 V6] # .Ⴉ≠𐫶
-T; \u200C.Ⴉ=\u0338𐫶; [B1 B5 B6 C1 P1 V6]; [B5 B6 P1 V6 A4_2] # .Ⴉ≠𐫶
-N; \u200C.Ⴉ=\u0338𐫶; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 C1 P1 V6] # .Ⴉ≠𐫶
-T; \u200C.ⴉ=\u0338𐫶; [B1 B5 B6 C1 P1 V6]; [B5 B6 P1 V6 A4_2] # .ⴉ≠𐫶
-N; \u200C.ⴉ=\u0338𐫶; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 C1 P1 V6] # .ⴉ≠𐫶
-T; \u200C.ⴉ≠𐫶; [B1 B5 B6 C1 P1 V6]; [B5 B6 P1 V6 A4_2] # .ⴉ≠𐫶
-N; \u200C.ⴉ≠𐫶; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 C1 P1 V6] # .ⴉ≠𐫶
-B; .xn--1chx23bzj4p; [B5 B6 V6 A4_2]; [B5 B6 V6 A4_2]
-B; xn--0ug.xn--1chx23bzj4p; [B1 B5 B6 C1 V6]; [B1 B5 B6 C1 V6] # .ⴉ≠𐫶
-B; .xn--hnd481gv73o; [B5 B6 V6 A4_2]; [B5 B6 V6 A4_2]
-B; xn--0ug.xn--hnd481gv73o; [B1 B5 B6 C1 V6]; [B1 B5 B6 C1 V6] # .Ⴉ≠𐫶
-T; \u200C.ⴉ=\u0338𐫶; [B1 B5 B6 C1 P1 V6]; [B5 B6 P1 V6 A4_2] # .ⴉ≠𐫶
-N; \u200C.ⴉ=\u0338𐫶; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 C1 P1 V6] # .ⴉ≠𐫶
-T; \u200C.ⴉ≠𐫶; [B1 B5 B6 C1 P1 V6]; [B5 B6 P1 V6 A4_2] # .ⴉ≠𐫶
-N; \u200C.ⴉ≠𐫶; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 C1 P1 V6] # .ⴉ≠𐫶
-T; \u0750。≯ς; [B1 P1 V6]; [B1 P1 V6] # ݐ.≯ς
-N; \u0750。≯ς; [B1 P1 V6]; [B1 P1 V6] # ݐ.≯ς
-T; \u0750。>\u0338ς; [B1 P1 V6]; [B1 P1 V6] # ݐ.≯ς
-N; \u0750。>\u0338ς; [B1 P1 V6]; [B1 P1 V6] # ݐ.≯ς
-B; \u0750。>\u0338Σ; [B1 P1 V6]; [B1 P1 V6] # ݐ.≯σ
-B; \u0750。≯Σ; [B1 P1 V6]; [B1 P1 V6] # ݐ.≯σ
-B; \u0750。≯σ; [B1 P1 V6]; [B1 P1 V6] # ݐ.≯σ
-B; \u0750。>\u0338σ; [B1 P1 V6]; [B1 P1 V6] # ݐ.≯σ
-B; xn--3ob.xn--4xa718m; [B1 V6]; [B1 V6] # ݐ.≯σ
-B; xn--3ob.xn--3xa918m; [B1 V6]; [B1 V6] # ݐ.≯ς
-B; \u07FC𐸆.𓖏︒񊨩Ⴐ; [P1 V6]; [P1 V6] # .︒Ⴐ
-B; \u07FC𐸆.𓖏。񊨩Ⴐ; [P1 V6]; [P1 V6] # ..Ⴐ
-B; \u07FC𐸆.𓖏。񊨩ⴐ; [P1 V6]; [P1 V6] # ..ⴐ
-B; xn--0tb8725k.xn--tu8d.xn--7kj73887a; [V6]; [V6] # ..ⴐ
-B; xn--0tb8725k.xn--tu8d.xn--ond97931d; [V6]; [V6] # ..Ⴐ
-B; \u07FC𐸆.𓖏︒񊨩ⴐ; [P1 V6]; [P1 V6] # .︒ⴐ
-B; xn--0tb8725k.xn--7kj9008dt18a7py9c; [V6]; [V6] # .︒ⴐ
-B; xn--0tb8725k.xn--ond3562jt18a7py9c; [V6]; [V6] # .︒Ⴐ
-B; Ⴥ⚭󠖫⋃。𑌼; [P1 V5 V6]; [P1 V5 V6]
-B; Ⴥ⚭󠖫⋃。𑌼; [P1 V5 V6]; [P1 V5 V6]
-B; ⴥ⚭󠖫⋃。𑌼; [P1 V5 V6]; [P1 V5 V6]
-B; xn--vfh16m67gx1162b.xn--ro1d; [V5 V6]; [V5 V6]
-B; xn--9nd623g4zc5z060c.xn--ro1d; [V5 V6]; [V5 V6]
-B; ⴥ⚭󠖫⋃。𑌼; [P1 V5 V6]; [P1 V5 V6]
-B; 🄈。󠷳\u0844; [B1 P1 V6]; [B1 P1 V6] # 🄈.ࡄ
-B; 7,。󠷳\u0844; [B1 P1 V6]; [B1 P1 V6] # 7,.ࡄ
-B; 7,.xn--2vb13094p; [B1 P1 V6]; [B1 P1 V6] # 7,.ࡄ
-B; xn--107h.xn--2vb13094p; [B1 V6]; [B1 V6] # 🄈.ࡄ
-T; ≮\u0846。섖쮖ß; [B1 P1 V6]; [B1 P1 V6] # ≮ࡆ.섖쮖ß
-N; ≮\u0846。섖쮖ß; [B1 P1 V6]; [B1 P1 V6] # ≮ࡆ.섖쮖ß
-T; <\u0338\u0846。섖쮖ß; [B1 P1 V6]; [B1 P1 V6] # ≮ࡆ.섖쮖ß
-N; <\u0338\u0846。섖쮖ß; [B1 P1 V6]; [B1 P1 V6] # ≮ࡆ.섖쮖ß
-B; <\u0338\u0846。섖쮖SS; [B1 P1 V6]; [B1 P1 V6] # ≮ࡆ.섖쮖ss
-B; ≮\u0846。섖쮖SS; [B1 P1 V6]; [B1 P1 V6] # ≮ࡆ.섖쮖ss
-B; ≮\u0846。섖쮖ss; [B1 P1 V6]; [B1 P1 V6] # ≮ࡆ.섖쮖ss
-B; <\u0338\u0846。섖쮖ss; [B1 P1 V6]; [B1 P1 V6] # ≮ࡆ.섖쮖ss
-B; <\u0338\u0846。섖쮖Ss; [B1 P1 V6]; [B1 P1 V6] # ≮ࡆ.섖쮖ss
-B; ≮\u0846。섖쮖Ss; [B1 P1 V6]; [B1 P1 V6] # ≮ࡆ.섖쮖ss
-B; xn--4vb505k.xn--ss-5z4j006a; [B1 V6]; [B1 V6] # ≮ࡆ.섖쮖ss
-B; xn--4vb505k.xn--zca7259goug; [B1 V6]; [B1 V6] # ≮ࡆ.섖쮖ß
-B; 󠆓⛏-。ꡒ; [V3]; [V3]
-B; xn----o9p.xn--rc9a; [V3]; [V3]
-T; \u07BB𐹳\u0626𑁆。\u08A7\u06B0\u200Cᢒ; [B2 B3 P1 V6]; [B2 B3 P1 V6] # 𐹳ئ𑁆.ࢧڰᢒ
-N; \u07BB𐹳\u0626𑁆。\u08A7\u06B0\u200Cᢒ; [B2 B3 P1 V6]; [B2 B3 P1 V6] # 𐹳ئ𑁆.ࢧڰᢒ
-T; \u07BB𐹳\u064A𑁆\u0654。\u08A7\u06B0\u200Cᢒ; [B2 B3 P1 V6]; [B2 B3 P1 V6] # 𐹳ئ𑁆.ࢧڰᢒ
-N; \u07BB𐹳\u064A𑁆\u0654。\u08A7\u06B0\u200Cᢒ; [B2 B3 P1 V6]; [B2 B3 P1 V6] # 𐹳ئ𑁆.ࢧڰᢒ
-B; xn--lgb32f2753cosb.xn--jkb91hlz1a; [B2 B3 V6]; [B2 B3 V6] # 𐹳ئ𑁆.ࢧڰᢒ
-B; xn--lgb32f2753cosb.xn--jkb91hlz1azih; [B2 B3 V6]; [B2 B3 V6] # 𐹳ئ𑁆.ࢧڰᢒ
-B; \u0816.𐨕𚚕; [B1 B2 B3 B6 P1 V5 V6]; [B1 B2 B3 B6 P1 V5 V6] # ࠖ.𐨕
-B; xn--rub.xn--tr9c248x; [B1 B2 B3 B6 V5 V6]; [B1 B2 B3 B6 V5 V6] # ࠖ.𐨕
-B; --。𽊆\u0767𐽋𞠬; [B1 B5 B6 P1 V3 V6]; [B1 B5 B6 P1 V3 V6] # --.ݧ𞠬
-B; --.xn--rpb6226k77pfh58p; [B1 B5 B6 V3 V6]; [B1 B5 B6 V3 V6] # --.ݧ𞠬
-B; 򛭦𐋥𹸐.≯\u08B0\u08A6󔛣; [B1 P1 V6]; [B1 P1 V6] # 𐋥.≯ࢰࢦ
-B; 򛭦𐋥𹸐.>\u0338\u08B0\u08A6󔛣; [B1 P1 V6]; [B1 P1 V6] # 𐋥.≯ࢰࢦ
-B; xn--887c2298i5mv6a.xn--vybt688qm8981a; [B1 V6]; [B1 V6] # 𐋥.≯ࢰࢦ
-B; 䔛󠇒򤸞𐹧.-䤷; [B1 B5 B6 P1 V3 V6]; [B1 B5 B6 P1 V3 V6]
-B; 䔛󠇒򤸞𐹧.-䤷; [B1 B5 B6 P1 V3 V6]; [B1 B5 B6 P1 V3 V6]
-B; xn--2loy662coo60e.xn----0n4a; [B1 B5 B6 V3 V6]; [B1 B5 B6 V3 V6]
-T; 𐹩.\u200D-; [B1 C2 V3]; [B1 V3] # 𐹩.-
-N; 𐹩.\u200D-; [B1 C2 V3]; [B1 C2 V3] # 𐹩.-
-T; 𐹩.\u200D-; [B1 C2 V3]; [B1 V3] # 𐹩.-
-N; 𐹩.\u200D-; [B1 C2 V3]; [B1 C2 V3] # 𐹩.-
-B; xn--ho0d.-; [B1 V3]; [B1 V3]
-B; xn--ho0d.xn----tgn; [B1 C2 V3]; [B1 C2 V3] # 𐹩.-
-B; 񂈦帷。≯萺\u1DC8-; [P1 V3 V6]; [P1 V3 V6] # 帷.≯萺᷈-
-B; 񂈦帷。>\u0338萺\u1DC8-; [P1 V3 V6]; [P1 V3 V6] # 帷.≯萺᷈-
-B; 񂈦帷。≯萺\u1DC8-; [P1 V3 V6]; [P1 V3 V6] # 帷.≯萺᷈-
-B; 񂈦帷。>\u0338萺\u1DC8-; [P1 V3 V6]; [P1 V3 V6] # 帷.≯萺᷈-
-B; xn--qutw175s.xn----mimu6tf67j; [V3 V6]; [V3 V6] # 帷.≯萺᷈-
-T; \u200D攌\uABED。ᢖ-Ⴘ; [C2 P1 V6]; [P1 V6] # 攌꯭.ᢖ-Ⴘ
-N; \u200D攌\uABED。ᢖ-Ⴘ; [C2 P1 V6]; [C2 P1 V6] # 攌꯭.ᢖ-Ⴘ
-T; \u200D攌\uABED。ᢖ-ⴘ; [C2]; xn--p9ut19m.xn----mck373i # 攌꯭.ᢖ-ⴘ
-N; \u200D攌\uABED。ᢖ-ⴘ; [C2]; [C2] # 攌꯭.ᢖ-ⴘ
-B; xn--p9ut19m.xn----mck373i; 攌\uABED.ᢖ-ⴘ; xn--p9ut19m.xn----mck373i # 攌꯭.ᢖ-ⴘ
-B; 攌\uABED.ᢖ-ⴘ; ; xn--p9ut19m.xn----mck373i # 攌꯭.ᢖ-ⴘ
-B; 攌\uABED.ᢖ-Ⴘ; [P1 V6]; [P1 V6] # 攌꯭.ᢖ-Ⴘ
-B; xn--p9ut19m.xn----k1g451d; [V6]; [V6] # 攌꯭.ᢖ-Ⴘ
-B; xn--1ug592ykp6b.xn----mck373i; [C2]; [C2] # 攌꯭.ᢖ-ⴘ
-B; xn--1ug592ykp6b.xn----k1g451d; [C2 V6]; [C2 V6] # 攌꯭.ᢖ-Ⴘ
-T; \u200Cꖨ.⒗3툒۳; [C1 P1 V6]; [P1 V6] # ꖨ.⒗3툒۳
-N; \u200Cꖨ.⒗3툒۳; [C1 P1 V6]; [C1 P1 V6] # ꖨ.⒗3툒۳
-T; \u200Cꖨ.⒗3툒۳; [C1 P1 V6]; [P1 V6] # ꖨ.⒗3툒۳
-N; \u200Cꖨ.⒗3툒۳; [C1 P1 V6]; [C1 P1 V6] # ꖨ.⒗3툒۳
-T; \u200Cꖨ.16.3툒۳; [C1]; xn--9r8a.16.xn--3-nyc0117m # ꖨ.16.3툒۳
-N; \u200Cꖨ.16.3툒۳; [C1]; [C1] # ꖨ.16.3툒۳
-T; \u200Cꖨ.16.3툒۳; [C1]; xn--9r8a.16.xn--3-nyc0117m # ꖨ.16.3툒۳
-N; \u200Cꖨ.16.3툒۳; [C1]; [C1] # ꖨ.16.3툒۳
-B; xn--9r8a.16.xn--3-nyc0117m; ꖨ.16.3툒۳; xn--9r8a.16.xn--3-nyc0117m
-B; ꖨ.16.3툒۳; ; xn--9r8a.16.xn--3-nyc0117m
-B; ꖨ.16.3툒۳; ꖨ.16.3툒۳; xn--9r8a.16.xn--3-nyc0117m
-B; xn--0ug2473c.16.xn--3-nyc0117m; [C1]; [C1] # ꖨ.16.3툒۳
-B; xn--9r8a.xn--3-nyc678tu07m; [V6]; [V6]
-B; xn--0ug2473c.xn--3-nyc678tu07m; [C1 V6]; [C1 V6] # ꖨ.⒗3툒۳
-B; ⒈걾6.𐱁\u06D0; [B1 P1 V6]; [B1 P1 V6] # ⒈걾6.𐱁ې
-B; ⒈걾6.𐱁\u06D0; [B1 P1 V6]; [B1 P1 V6] # ⒈걾6.𐱁ې
-B; 1.걾6.𐱁\u06D0; [B1]; [B1] # 1.걾6.𐱁ې
-B; 1.걾6.𐱁\u06D0; [B1]; [B1] # 1.걾6.𐱁ې
-B; 1.xn--6-945e.xn--glb1794k; [B1]; [B1] # 1.걾6.𐱁ې
-B; xn--6-dcps419c.xn--glb1794k; [B1 V6]; [B1 V6] # ⒈걾6.𐱁ې
-B; 𐲞𝟶≮≮.󠀧\u0639; [B1 B3 P1 V6]; [B1 B3 P1 V6] # 𐳞0≮≮.ع
-B; 𐲞𝟶<\u0338<\u0338.󠀧\u0639; [B1 B3 P1 V6]; [B1 B3 P1 V6] # 𐳞0≮≮.ع
-B; 𐲞0≮≮.󠀧\u0639; [B1 B3 P1 V6]; [B1 B3 P1 V6] # 𐳞0≮≮.ع
-B; 𐲞0<\u0338<\u0338.󠀧\u0639; [B1 B3 P1 V6]; [B1 B3 P1 V6] # 𐳞0≮≮.ع
-B; 𐳞0<\u0338<\u0338.󠀧\u0639; [B1 B3 P1 V6]; [B1 B3 P1 V6] # 𐳞0≮≮.ع
-B; 𐳞0≮≮.󠀧\u0639; [B1 B3 P1 V6]; [B1 B3 P1 V6] # 𐳞0≮≮.ع
-B; xn--0-ngoa5711v.xn--4gb31034p; [B1 B3 V6]; [B1 B3 V6] # 𐳞0≮≮.ع
-B; 𐳞𝟶<\u0338<\u0338.󠀧\u0639; [B1 B3 P1 V6]; [B1 B3 P1 V6] # 𐳞0≮≮.ع
-B; 𐳞𝟶≮≮.󠀧\u0639; [B1 B3 P1 V6]; [B1 B3 P1 V6] # 𐳞0≮≮.ع
-B; \u0AE3.𐹺\u115F; [B1 B3 B6 P1 V5 V6]; [B1 B3 B6 P1 V5 V6] # ૣ.𐹺
-B; xn--8fc.xn--osd3070k; [B1 B3 B6 V5 V6]; [B1 B3 B6 V5 V6] # ૣ.𐹺
-T; 𝟏𝨙⸖.\u200D; [C2]; xn--1-5bt6845n. # 1𝨙⸖.
-N; 𝟏𝨙⸖.\u200D; [C2]; [C2] # 1𝨙⸖.
-T; 1𝨙⸖.\u200D; [C2]; xn--1-5bt6845n. # 1𝨙⸖.
-N; 1𝨙⸖.\u200D; [C2]; [C2] # 1𝨙⸖.
-B; xn--1-5bt6845n.; 1𝨙⸖.; xn--1-5bt6845n.; NV8
-B; 1𝨙⸖.; ; xn--1-5bt6845n.; NV8
-B; xn--1-5bt6845n.xn--1ug; [C2]; [C2] # 1𝨙⸖.
-T; 𞤐≠\u0726\u1A60。-\u200C\u07D5; [B1 C1 P1 V3 V6]; [B1 P1 V3 V6] # 𞤲≠ܦ᩠.-ߕ
-N; 𞤐≠\u0726\u1A60。-\u200C\u07D5; [B1 C1 P1 V3 V6]; [B1 C1 P1 V3 V6] # 𞤲≠ܦ᩠.-ߕ
-T; 𞤐=\u0338\u0726\u1A60。-\u200C\u07D5; [B1 C1 P1 V3 V6]; [B1 P1 V3 V6] # 𞤲≠ܦ᩠.-ߕ
-N; 𞤐=\u0338\u0726\u1A60。-\u200C\u07D5; [B1 C1 P1 V3 V6]; [B1 C1 P1 V3 V6] # 𞤲≠ܦ᩠.-ߕ
-T; 𞤐≠\u0726\u1A60。-\u200C\u07D5; [B1 C1 P1 V3 V6]; [B1 P1 V3 V6] # 𞤲≠ܦ᩠.-ߕ
-N; 𞤐≠\u0726\u1A60。-\u200C\u07D5; [B1 C1 P1 V3 V6]; [B1 C1 P1 V3 V6] # 𞤲≠ܦ᩠.-ߕ
-T; 𞤐=\u0338\u0726\u1A60。-\u200C\u07D5; [B1 C1 P1 V3 V6]; [B1 P1 V3 V6] # 𞤲≠ܦ᩠.-ߕ
-N; 𞤐=\u0338\u0726\u1A60。-\u200C\u07D5; [B1 C1 P1 V3 V6]; [B1 C1 P1 V3 V6] # 𞤲≠ܦ᩠.-ߕ
-T; 𞤲=\u0338\u0726\u1A60。-\u200C\u07D5; [B1 C1 P1 V3 V6]; [B1 P1 V3 V6] # 𞤲≠ܦ᩠.-ߕ
-N; 𞤲=\u0338\u0726\u1A60。-\u200C\u07D5; [B1 C1 P1 V3 V6]; [B1 C1 P1 V3 V6] # 𞤲≠ܦ᩠.-ߕ
-T; 𞤲≠\u0726\u1A60。-\u200C\u07D5; [B1 C1 P1 V3 V6]; [B1 P1 V3 V6] # 𞤲≠ܦ᩠.-ߕ
-N; 𞤲≠\u0726\u1A60。-\u200C\u07D5; [B1 C1 P1 V3 V6]; [B1 C1 P1 V3 V6] # 𞤲≠ܦ᩠.-ߕ
-B; xn--wnb859grzfzw60c.xn----kcd; [B1 V3 V6]; [B1 V3 V6] # 𞤲≠ܦ᩠.-ߕ
-B; xn--wnb859grzfzw60c.xn----kcd017p; [B1 C1 V3 V6]; [B1 C1 V3 V6] # 𞤲≠ܦ᩠.-ߕ
-T; 𞤲=\u0338\u0726\u1A60。-\u200C\u07D5; [B1 C1 P1 V3 V6]; [B1 P1 V3 V6] # 𞤲≠ܦ᩠.-ߕ
-N; 𞤲=\u0338\u0726\u1A60。-\u200C\u07D5; [B1 C1 P1 V3 V6]; [B1 C1 P1 V3 V6] # 𞤲≠ܦ᩠.-ߕ
-T; 𞤲≠\u0726\u1A60。-\u200C\u07D5; [B1 C1 P1 V3 V6]; [B1 P1 V3 V6] # 𞤲≠ܦ᩠.-ߕ
-N; 𞤲≠\u0726\u1A60。-\u200C\u07D5; [B1 C1 P1 V3 V6]; [B1 C1 P1 V3 V6] # 𞤲≠ܦ᩠.-ߕ
-B; 𐹰\u0368-ꡧ。\u0675; [B1]; [B1] # 𐹰ͨ-ꡧ.اٴ
-B; 𐹰\u0368-ꡧ。\u0627\u0674; [B1]; [B1] # 𐹰ͨ-ꡧ.اٴ
-B; xn----shb2387jgkqd.xn--mgb8m; [B1]; [B1] # 𐹰ͨ-ꡧ.اٴ
-B; F󠅟。򏗅♚; [P1 V6]; [P1 V6]
-B; F󠅟。򏗅♚; [P1 V6]; [P1 V6]
-B; f󠅟。򏗅♚; [P1 V6]; [P1 V6]
-B; f.xn--45hz6953f; [V6]; [V6]
-B; f󠅟。򏗅♚; [P1 V6]; [P1 V6]
-B; \u0B4D𑄴\u1DE9。𝟮Ⴘ𞀨񃥇; [P1 V5 V6]; [P1 V5 V6] # ୍𑄴ᷩ.2Ⴘ𞀨
-B; \u0B4D𑄴\u1DE9。2Ⴘ𞀨񃥇; [P1 V5 V6]; [P1 V5 V6] # ୍𑄴ᷩ.2Ⴘ𞀨
-B; \u0B4D𑄴\u1DE9。2ⴘ𞀨񃥇; [P1 V5 V6]; [P1 V5 V6] # ୍𑄴ᷩ.2ⴘ𞀨
-B; xn--9ic246gs21p.xn--2-nws2918ndrjr; [V5 V6]; [V5 V6] # ୍𑄴ᷩ.2ⴘ𞀨
-B; xn--9ic246gs21p.xn--2-k1g43076adrwq; [V5 V6]; [V5 V6] # ୍𑄴ᷩ.2Ⴘ𞀨
-B; \u0B4D𑄴\u1DE9。𝟮ⴘ𞀨񃥇; [P1 V5 V6]; [P1 V5 V6] # ୍𑄴ᷩ.2ⴘ𞀨
-T; 򓠭\u200C\u200C⒈。勉𑁅; [C1 P1 V6]; [P1 V6] # ⒈.勉𑁅
-N; 򓠭\u200C\u200C⒈。勉𑁅; [C1 P1 V6]; [C1 P1 V6] # ⒈.勉𑁅
-T; 򓠭\u200C\u200C1.。勉𑁅; [C1 P1 V6 A4_2]; [P1 V6 A4_2] # 1..勉𑁅
-N; 򓠭\u200C\u200C1.。勉𑁅; [C1 P1 V6 A4_2]; [C1 P1 V6 A4_2] # 1..勉𑁅
-B; xn--1-yi00h..xn--4grs325b; [V6 A4_2]; [V6 A4_2]
-B; xn--1-rgna61159u..xn--4grs325b; [C1 V6 A4_2]; [C1 V6 A4_2] # 1..勉𑁅
-B; xn--tsh11906f.xn--4grs325b; [V6]; [V6]
-B; xn--0uga855aez302a.xn--4grs325b; [C1 V6]; [C1 V6] # ⒈.勉𑁅
-B; ᡃ.玿񫈜󕞐; [P1 V6]; [P1 V6]
-B; xn--27e.xn--7cy81125a0yq4a; [V6]; [V6]
-T; \u200C\u200C。⒈≯𝟵; [C1 P1 V6]; [P1 V6 A4_2] # .⒈≯9
-N; \u200C\u200C。⒈≯𝟵; [C1 P1 V6]; [C1 P1 V6] # .⒈≯9
-T; \u200C\u200C。⒈>\u0338𝟵; [C1 P1 V6]; [P1 V6 A4_2] # .⒈≯9
-N; \u200C\u200C。⒈>\u0338𝟵; [C1 P1 V6]; [C1 P1 V6] # .⒈≯9
-T; \u200C\u200C。1.≯9; [C1 P1 V6]; [P1 V6 A4_2] # .1.≯9
-N; \u200C\u200C。1.≯9; [C1 P1 V6]; [C1 P1 V6] # .1.≯9
-T; \u200C\u200C。1.>\u03389; [C1 P1 V6]; [P1 V6 A4_2] # .1.≯9
-N; \u200C\u200C。1.>\u03389; [C1 P1 V6]; [C1 P1 V6] # .1.≯9
-B; .1.xn--9-ogo; [V6 A4_2]; [V6 A4_2]
-B; xn--0uga.1.xn--9-ogo; [C1 V6]; [C1 V6] # .1.≯9
-B; .xn--9-ogo37g; [V6 A4_2]; [V6 A4_2]
-B; xn--0uga.xn--9-ogo37g; [C1 V6]; [C1 V6] # .⒈≯9
-B; \u115F\u1DE0򐀁.𺻆≯𐮁; [B5 B6 P1 V6]; [B5 B6 P1 V6] # ᷠ.≯𐮁
-B; \u115F\u1DE0򐀁.𺻆>\u0338𐮁; [B5 B6 P1 V6]; [B5 B6 P1 V6] # ᷠ.≯𐮁
-B; xn--osd615d5659o.xn--hdh5192gkm6r; [B5 B6 V6]; [B5 B6 V6] # ᷠ.≯𐮁
-T; 󠄫𝩤\u200D\u063E.𝩩-\u081E󑼩; [B1 C2 P1 V5 V6]; [B1 P1 V5 V6] # 𝩤ؾ.𝩩-ࠞ
-N; 󠄫𝩤\u200D\u063E.𝩩-\u081E󑼩; [B1 C2 P1 V5 V6]; [B1 C2 P1 V5 V6] # 𝩤ؾ.𝩩-ࠞ
-B; xn--9gb5080v.xn----qgd52296avol4f; [B1 V5 V6]; [B1 V5 V6] # 𝩤ؾ.𝩩-ࠞ
-B; xn--9gb723kg862a.xn----qgd52296avol4f; [B1 C2 V5 V6]; [B1 C2 V5 V6] # 𝩤ؾ.𝩩-ࠞ
-B; \u20DA.𑘿-; [V3 V5]; [V3 V5] # ⃚.𑘿-
-B; \u20DA.𑘿-; [V3 V5]; [V3 V5] # ⃚.𑘿-
-B; xn--w0g.xn----bd0j; [V3 V5]; [V3 V5] # ⃚.𑘿-
-T; 䮸ß.󠵟󠭎紙\u08A8; [B1 P1 V6]; [B1 P1 V6] # 䮸ß.紙ࢨ
-N; 䮸ß.󠵟󠭎紙\u08A8; [B1 P1 V6]; [B1 P1 V6] # 䮸ß.紙ࢨ
-B; 䮸SS.󠵟󠭎紙\u08A8; [B1 P1 V6]; [B1 P1 V6] # 䮸ss.紙ࢨ
-B; 䮸ss.󠵟󠭎紙\u08A8; [B1 P1 V6]; [B1 P1 V6] # 䮸ss.紙ࢨ
-B; 䮸Ss.󠵟󠭎紙\u08A8; [B1 P1 V6]; [B1 P1 V6] # 䮸ss.紙ࢨ
-B; xn--ss-sf1c.xn--xyb1370div70kpzba; [B1 V6]; [B1 V6] # 䮸ss.紙ࢨ
-B; xn--zca5349a.xn--xyb1370div70kpzba; [B1 V6]; [B1 V6] # 䮸ß.紙ࢨ
-B; -Ⴞ.-𝩨⅔𐦕; [B1 P1 V3 V6]; [B1 P1 V3 V6]
-B; -Ⴞ.-𝩨2⁄3𐦕; [B1 P1 V3 V6]; [B1 P1 V3 V6]
-B; -ⴞ.-𝩨2⁄3𐦕; [B1 V3]; [B1 V3]
-B; xn----zws.xn---23-pt0a0433lk3jj; [B1 V3]; [B1 V3]
-B; xn----w1g.xn---23-pt0a0433lk3jj; [B1 V3 V6]; [B1 V3 V6]
-B; -ⴞ.-𝩨⅔𐦕; [B1 V3]; [B1 V3]
-B; 󧈯𐹯\u0AC2。򖢨𐮁񇼖ᡂ; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 𐹯ૂ.𐮁ᡂ
-B; 󧈯𐹯\u0AC2。򖢨𐮁񇼖ᡂ; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 𐹯ૂ.𐮁ᡂ
-B; xn--bfc7604kv8m3g.xn--17e5565jl7zw4h16a; [B5 B6 V6]; [B5 B6 V6] # 𐹯ૂ.𐮁ᡂ
-T; \u1082-\u200D\uA8EA.ꡊ\u200D񼸳; [C2 P1 V5 V6]; [P1 V5 V6] # ႂ-꣪.ꡊ
-N; \u1082-\u200D\uA8EA.ꡊ\u200D񼸳; [C2 P1 V5 V6]; [C2 P1 V5 V6] # ႂ-꣪.ꡊ
-T; \u1082-\u200D\uA8EA.ꡊ\u200D񼸳; [C2 P1 V5 V6]; [P1 V5 V6] # ႂ-꣪.ꡊ
-N; \u1082-\u200D\uA8EA.ꡊ\u200D񼸳; [C2 P1 V5 V6]; [C2 P1 V5 V6] # ႂ-꣪.ꡊ
-B; xn----gyg3618i.xn--jc9ao4185a; [V5 V6]; [V5 V6] # ႂ-꣪.ꡊ
-B; xn----gyg250jio7k.xn--1ug8774cri56d; [C2 V5 V6]; [C2 V5 V6] # ႂ-꣪.ꡊ
-B; ۱。≠\u0668; [B1 P1 V6]; [B1 P1 V6] # ۱.≠٨
-B; ۱。=\u0338\u0668; [B1 P1 V6]; [B1 P1 V6] # ۱.≠٨
-B; xn--emb.xn--hib334l; [B1 V6]; [B1 V6] # ۱.≠٨
-B; 𑈵廊.𐠍; [V5]; [V5]
-B; xn--xytw701b.xn--yc9c; [V5]; [V5]
-T; \u200D\u0356-.-Ⴐ\u0661; [B1 C2 P1 V3 V6]; [B1 P1 V3 V5 V6] # ͖-.-Ⴐ١
-N; \u200D\u0356-.-Ⴐ\u0661; [B1 C2 P1 V3 V6]; [B1 C2 P1 V3 V6] # ͖-.-Ⴐ١
-T; \u200D\u0356-.-Ⴐ\u0661; [B1 C2 P1 V3 V6]; [B1 P1 V3 V5 V6] # ͖-.-Ⴐ١
-N; \u200D\u0356-.-Ⴐ\u0661; [B1 C2 P1 V3 V6]; [B1 C2 P1 V3 V6] # ͖-.-Ⴐ١
-T; \u200D\u0356-.-ⴐ\u0661; [B1 C2 V3]; [B1 V3 V5] # ͖-.-ⴐ١
-N; \u200D\u0356-.-ⴐ\u0661; [B1 C2 V3]; [B1 C2 V3] # ͖-.-ⴐ١
-B; xn----rgb.xn----bqc2280a; [B1 V3 V5]; [B1 V3 V5] # ͖-.-ⴐ١
-B; xn----rgb661t.xn----bqc2280a; [B1 C2 V3]; [B1 C2 V3] # ͖-.-ⴐ١
-B; xn----rgb.xn----bqc030f; [B1 V3 V5 V6]; [B1 V3 V5 V6] # ͖-.-Ⴐ١
-B; xn----rgb661t.xn----bqc030f; [B1 C2 V3 V6]; [B1 C2 V3 V6] # ͖-.-Ⴐ١
-T; \u200D\u0356-.-ⴐ\u0661; [B1 C2 V3]; [B1 V3 V5] # ͖-.-ⴐ١
-N; \u200D\u0356-.-ⴐ\u0661; [B1 C2 V3]; [B1 C2 V3] # ͖-.-ⴐ١
-B; \u063A\u0661挏󾯐.-; [B1 B2 B3 P1 V3 V6]; [B1 B2 B3 P1 V3 V6] # غ١挏.-
-B; xn--5gb2f4205aqi47p.-; [B1 B2 B3 V3 V6]; [B1 B2 B3 V3 V6] # غ١挏.-
-B; \u06EF。𐹧𞤽; [B1]; [B1] # ۯ.𐹧𞤽
-B; \u06EF。𐹧𞤽; [B1]; [B1] # ۯ.𐹧𞤽
-B; \u06EF。𐹧𞤛; [B1]; [B1] # ۯ.𐹧𞤽
-B; xn--cmb.xn--fo0dy848a; [B1]; [B1] # ۯ.𐹧𞤽
-B; \u06EF。𐹧𞤛; [B1]; [B1] # ۯ.𐹧𞤽
-B; Ⴞ𶛀𛗻.ᢗ릫; [P1 V6]; [P1 V6]
-B; Ⴞ𶛀𛗻.ᢗ릫; [P1 V6]; [P1 V6]
-B; Ⴞ𶛀𛗻.ᢗ릫; [P1 V6]; [P1 V6]
-B; Ⴞ𶛀𛗻.ᢗ릫; [P1 V6]; [P1 V6]
-B; ⴞ𶛀𛗻.ᢗ릫; [P1 V6]; [P1 V6]
-B; ⴞ𶛀𛗻.ᢗ릫; [P1 V6]; [P1 V6]
-B; xn--mlj0486jgl2j.xn--hbf6853f; [V6]; [V6]
-B; xn--2nd8876sgl2j.xn--hbf6853f; [V6]; [V6]
-B; ⴞ𶛀𛗻.ᢗ릫; [P1 V6]; [P1 V6]
-B; ⴞ𶛀𛗻.ᢗ릫; [P1 V6]; [P1 V6]
-T; 󠎃󗭞\u06B7𐹷。≯\u200C\u1DFE; [B1 C1 P1 V6]; [B1 P1 V6] # ڷ𐹷.≯᷾
-N; 󠎃󗭞\u06B7𐹷。≯\u200C\u1DFE; [B1 C1 P1 V6]; [B1 C1 P1 V6] # ڷ𐹷.≯᷾
-T; 󠎃󗭞\u06B7𐹷。>\u0338\u200C\u1DFE; [B1 C1 P1 V6]; [B1 P1 V6] # ڷ𐹷.≯᷾
-N; 󠎃󗭞\u06B7𐹷。>\u0338\u200C\u1DFE; [B1 C1 P1 V6]; [B1 C1 P1 V6] # ڷ𐹷.≯᷾
-T; 󠎃󗭞\u06B7𐹷。≯\u200C\u1DFE; [B1 C1 P1 V6]; [B1 P1 V6] # ڷ𐹷.≯᷾
-N; 󠎃󗭞\u06B7𐹷。≯\u200C\u1DFE; [B1 C1 P1 V6]; [B1 C1 P1 V6] # ڷ𐹷.≯᷾
-T; 󠎃󗭞\u06B7𐹷。>\u0338\u200C\u1DFE; [B1 C1 P1 V6]; [B1 P1 V6] # ڷ𐹷.≯᷾
-N; 󠎃󗭞\u06B7𐹷。>\u0338\u200C\u1DFE; [B1 C1 P1 V6]; [B1 C1 P1 V6] # ڷ𐹷.≯᷾
-B; xn--qkb4516kbi06fg2id.xn--zfg31q; [B1 V6]; [B1 V6] # ڷ𐹷.≯᷾
-B; xn--qkb4516kbi06fg2id.xn--zfg59fm0c; [B1 C1 V6]; [B1 C1 V6] # ڷ𐹷.≯᷾
-T; ᛎ󠅍󠐕\u200D。𐹾𐹪𐻝-; [B1 B6 C2 P1 V3 V6]; [B1 B6 P1 V3 V6] # ᛎ.𐹾𐹪-
-N; ᛎ󠅍󠐕\u200D。𐹾𐹪𐻝-; [B1 B6 C2 P1 V3 V6]; [B1 B6 C2 P1 V3 V6] # ᛎ.𐹾𐹪-
-T; ᛎ󠅍󠐕\u200D。𐹾𐹪𐻝-; [B1 B6 C2 P1 V3 V6]; [B1 B6 P1 V3 V6] # ᛎ.𐹾𐹪-
-N; ᛎ󠅍󠐕\u200D。𐹾𐹪𐻝-; [B1 B6 C2 P1 V3 V6]; [B1 B6 C2 P1 V3 V6] # ᛎ.𐹾𐹪-
-B; xn--fxe63563p.xn----q26i2bvu; [B1 B6 V3 V6]; [B1 B6 V3 V6]
-B; xn--fxe848bq3411a.xn----q26i2bvu; [B1 B6 C2 V3 V6]; [B1 B6 C2 V3 V6] # ᛎ.𐹾𐹪-
-B; 𐹶.𐫂; [B1]; [B1]
-B; xn--uo0d.xn--rw9c; [B1]; [B1]
-T; ß\u200D\u103A。⒈; [C2 P1 V6]; [P1 V6] # ß်.⒈
-N; ß\u200D\u103A。⒈; [C2 P1 V6]; [C2 P1 V6] # ß်.⒈
-T; ß\u200D\u103A。1.; [C2]; xn--ss-f4j.1. # ß်.1.
-N; ß\u200D\u103A。1.; [C2]; [C2] # ß်.1.
-T; SS\u200D\u103A。1.; [C2]; xn--ss-f4j.1. # ss်.1.
-N; SS\u200D\u103A。1.; [C2]; [C2] # ss်.1.
-T; ss\u200D\u103A。1.; [C2]; xn--ss-f4j.1. # ss်.1.
-N; ss\u200D\u103A。1.; [C2]; [C2] # ss်.1.
-T; Ss\u200D\u103A。1.; [C2]; xn--ss-f4j.1. # ss်.1.
-N; Ss\u200D\u103A。1.; [C2]; [C2] # ss်.1.
-B; xn--ss-f4j.1.; ss\u103A.1.; xn--ss-f4j.1. # ss်.1.
-B; ss\u103A.1.; ; xn--ss-f4j.1. # ss်.1.
-B; SS\u103A.1.; ss\u103A.1.; xn--ss-f4j.1. # ss်.1.
-B; Ss\u103A.1.; ss\u103A.1.; xn--ss-f4j.1. # ss်.1.
-B; xn--ss-f4j585j.1.; [C2]; [C2] # ss်.1.
-B; xn--zca679eh2l.1.; [C2]; [C2] # ß်.1.
-T; SS\u200D\u103A。⒈; [C2 P1 V6]; [P1 V6] # ss်.⒈
-N; SS\u200D\u103A。⒈; [C2 P1 V6]; [C2 P1 V6] # ss်.⒈
-T; ss\u200D\u103A。⒈; [C2 P1 V6]; [P1 V6] # ss်.⒈
-N; ss\u200D\u103A。⒈; [C2 P1 V6]; [C2 P1 V6] # ss်.⒈
-T; Ss\u200D\u103A。⒈; [C2 P1 V6]; [P1 V6] # ss်.⒈
-N; Ss\u200D\u103A。⒈; [C2 P1 V6]; [C2 P1 V6] # ss်.⒈
-B; xn--ss-f4j.xn--tsh; [V6]; [V6] # ss်.⒈
-B; xn--ss-f4j585j.xn--tsh; [C2 V6]; [C2 V6] # ss်.⒈
-B; xn--zca679eh2l.xn--tsh; [C2 V6]; [C2 V6] # ß်.⒈
-T; \u0B4D\u200C𙶵𞻘。\u200D; [B1 C2 P1 V5 V6]; [B1 P1 V5 V6] # ୍.
-N; \u0B4D\u200C𙶵𞻘。\u200D; [B1 C2 P1 V5 V6]; [B1 C2 P1 V5 V6] # ୍.
-B; xn--9ic6417rn4xb.; [B1 V5 V6]; [B1 V5 V6] # ୍.
-B; xn--9ic637hz82z32jc.xn--1ug; [B1 C2 V5 V6]; [B1 C2 V5 V6] # ୍.
-B; 𐮅。\u06BC🁕; [B3]; [B3] # 𐮅.ڼ🁕
-B; 𐮅。\u06BC🁕; [B3]; [B3] # 𐮅.ڼ🁕
-B; xn--c29c.xn--vkb8871w; [B3]; [B3] # 𐮅.ڼ🁕
-T; \u0620\u17D2。𐫔󠀧\u200C𑈵; [B2 B3 C1 P1 V6]; [B2 B3 P1 V6] # ؠ្.𐫔𑈵
-N; \u0620\u17D2。𐫔󠀧\u200C𑈵; [B2 B3 C1 P1 V6]; [B2 B3 C1 P1 V6] # ؠ្.𐫔𑈵
-B; xn--fgb471g.xn--9w9c29jw3931a; [B2 B3 V6]; [B2 B3 V6] # ؠ្.𐫔𑈵
-B; xn--fgb471g.xn--0ug9853g7verp838a; [B2 B3 C1 V6]; [B2 B3 C1 V6] # ؠ្.𐫔𑈵
-B; 񋉕.𞣕𞤊; [B1 P1 V5 V6]; [B1 P1 V5 V6]
-B; 񋉕.𞣕𞤬; [B1 P1 V5 V6]; [B1 P1 V5 V6]
-B; xn--tf5w.xn--2b6hof; [B1 V5 V6]; [B1 V5 V6]
-T; \u06CC𐨿.ß\u0F84𑍬; \u06CC𐨿.ß\u0F84𑍬; xn--clb2593k.xn--ss-toj6092t # ی𐨿.ß྄𑍬
-N; \u06CC𐨿.ß\u0F84𑍬; \u06CC𐨿.ß\u0F84𑍬; xn--clb2593k.xn--zca216edt0r # ی𐨿.ß྄𑍬
-T; \u06CC𐨿.ß\u0F84𑍬; ; xn--clb2593k.xn--ss-toj6092t # ی𐨿.ß྄𑍬
-N; \u06CC𐨿.ß\u0F84𑍬; ; xn--clb2593k.xn--zca216edt0r # ی𐨿.ß྄𑍬
-B; \u06CC𐨿.SS\u0F84𑍬; \u06CC𐨿.ss\u0F84𑍬; xn--clb2593k.xn--ss-toj6092t # ی𐨿.ss྄𑍬
-B; \u06CC𐨿.ss\u0F84𑍬; ; xn--clb2593k.xn--ss-toj6092t # ی𐨿.ss྄𑍬
-B; \u06CC𐨿.Ss\u0F84𑍬; \u06CC𐨿.ss\u0F84𑍬; xn--clb2593k.xn--ss-toj6092t # ی𐨿.ss྄𑍬
-B; xn--clb2593k.xn--ss-toj6092t; \u06CC𐨿.ss\u0F84𑍬; xn--clb2593k.xn--ss-toj6092t # ی𐨿.ss྄𑍬
-B; xn--clb2593k.xn--zca216edt0r; \u06CC𐨿.ß\u0F84𑍬; xn--clb2593k.xn--zca216edt0r # ی𐨿.ß྄𑍬
-B; \u06CC𐨿.SS\u0F84𑍬; \u06CC𐨿.ss\u0F84𑍬; xn--clb2593k.xn--ss-toj6092t # ی𐨿.ss྄𑍬
-B; \u06CC𐨿.ss\u0F84𑍬; \u06CC𐨿.ss\u0F84𑍬; xn--clb2593k.xn--ss-toj6092t # ی𐨿.ss྄𑍬
-B; \u06CC𐨿.Ss\u0F84𑍬; \u06CC𐨿.ss\u0F84𑍬; xn--clb2593k.xn--ss-toj6092t # ی𐨿.ss྄𑍬
-T; 𝟠≮\u200C。󠅱\u17B4; [C1 P1 V5 V6]; [P1 V5 V6] # 8≮.
-N; 𝟠≮\u200C。󠅱\u17B4; [C1 P1 V5 V6]; [C1 P1 V5 V6] # 8≮.
-T; 𝟠<\u0338\u200C。󠅱\u17B4; [C1 P1 V5 V6]; [P1 V5 V6] # 8≮.
-N; 𝟠<\u0338\u200C。󠅱\u17B4; [C1 P1 V5 V6]; [C1 P1 V5 V6] # 8≮.
-T; 8≮\u200C。󠅱\u17B4; [C1 P1 V5 V6]; [P1 V5 V6] # 8≮.
-N; 8≮\u200C。󠅱\u17B4; [C1 P1 V5 V6]; [C1 P1 V5 V6] # 8≮.
-T; 8<\u0338\u200C。󠅱\u17B4; [C1 P1 V5 V6]; [P1 V5 V6] # 8≮.
-N; 8<\u0338\u200C。󠅱\u17B4; [C1 P1 V5 V6]; [C1 P1 V5 V6] # 8≮.
-B; xn--8-ngo.xn--z3e; [V5 V6]; [V5 V6] # 8≮.
-B; xn--8-sgn10i.xn--z3e; [C1 V5 V6]; [C1 V5 V6] # 8≮.
-B; ᢕ≯︒񄂯.Ⴀ; [P1 V6]; [P1 V6]
-B; ᢕ>\u0338︒񄂯.Ⴀ; [P1 V6]; [P1 V6]
-B; ᢕ≯。񄂯.Ⴀ; [P1 V6]; [P1 V6]
-B; ᢕ>\u0338。񄂯.Ⴀ; [P1 V6]; [P1 V6]
-B; ᢕ>\u0338。񄂯.ⴀ; [P1 V6]; [P1 V6]
-B; ᢕ≯。񄂯.ⴀ; [P1 V6]; [P1 V6]
-B; xn--fbf851c.xn--ko1u.xn--rkj; [V6]; [V6]
-B; xn--fbf851c.xn--ko1u.xn--7md; [V6]; [V6]
-B; ᢕ>\u0338︒񄂯.ⴀ; [P1 V6]; [P1 V6]
-B; ᢕ≯︒񄂯.ⴀ; [P1 V6]; [P1 V6]
-B; xn--fbf851cq98poxw1a.xn--rkj; [V6]; [V6]
-B; xn--fbf851cq98poxw1a.xn--7md; [V6]; [V6]
-B; \u0F9F.-\u082A; [V3 V5]; [V3 V5] # ྟ.-ࠪ
-B; \u0F9F.-\u082A; [V3 V5]; [V3 V5] # ྟ.-ࠪ
-B; xn--vfd.xn----fhd; [V3 V5]; [V3 V5] # ྟ.-ࠪ
-B; ᵬ󠆠.핒⒒⒈􈄦; [P1 V6]; [P1 V6]
-B; ᵬ󠆠.핒⒒⒈􈄦; [P1 V6]; [P1 V6]
-B; ᵬ󠆠.핒11.1.􈄦; [P1 V6]; [P1 V6]
-B; ᵬ󠆠.핒11.1.􈄦; [P1 V6]; [P1 V6]
-B; xn--tbg.xn--11-5o7k.1.xn--k469f; [V6]; [V6]
-B; xn--tbg.xn--tsht7586kyts9l; [V6]; [V6]
-T; ς𑓂𐋢.\u0668; [B1]; [B1] # ς𑓂𐋢.٨
-N; ς𑓂𐋢.\u0668; [B1]; [B1] # ς𑓂𐋢.٨
-T; ς𑓂𐋢.\u0668; [B1]; [B1] # ς𑓂𐋢.٨
-N; ς𑓂𐋢.\u0668; [B1]; [B1] # ς𑓂𐋢.٨
-B; Σ𑓂𐋢.\u0668; [B1]; [B1] # σ𑓂𐋢.٨
-B; σ𑓂𐋢.\u0668; [B1]; [B1] # σ𑓂𐋢.٨
-B; xn--4xa6371khhl.xn--hib; [B1]; [B1] # σ𑓂𐋢.٨
-B; xn--3xa8371khhl.xn--hib; [B1]; [B1] # ς𑓂𐋢.٨
-B; Σ𑓂𐋢.\u0668; [B1]; [B1] # σ𑓂𐋢.٨
-B; σ𑓂𐋢.\u0668; [B1]; [B1] # σ𑓂𐋢.٨
-T; \uA953\u200C𐋻\u200D.\u2DF8𞿄𐹲; [B1 B6 C2 P1 V5 V6]; [B1 P1 V5 V6] # ꥓𐋻.ⷸ𐹲
-N; \uA953\u200C𐋻\u200D.\u2DF8𞿄𐹲; [B1 B6 C2 P1 V5 V6]; [B1 B6 C2 P1 V5 V6] # ꥓𐋻.ⷸ𐹲
-B; xn--3j9a531o.xn--urju692efj0f; [B1 V5 V6]; [B1 V5 V6] # ꥓𐋻.ⷸ𐹲
-B; xn--0ugc8356he76c.xn--urju692efj0f; [B1 B6 C2 V5 V6]; [B1 B6 C2 V5 V6] # ꥓𐋻.ⷸ𐹲
-B; ⊼。񪧖\u0695; [B1 B5 B6 P1 V6]; [B1 B5 B6 P1 V6] # ⊼.ڕ
-B; xn--ofh.xn--rjb13118f; [B1 B5 B6 V6]; [B1 B5 B6 V6] # ⊼.ڕ
-B; 𐯬񖋔。󜳥; [B2 B3 P1 V6]; [B2 B3 P1 V6]
-B; xn--949co370q.xn--7g25e; [B2 B3 V6]; [B2 B3 V6]
-T; \u0601𑍧\u07DD。ς򬍘🀞\u17B5; [B1 B6 P1 V6]; [B1 B6 P1 V6] # 𑍧ߝ.ς🀞
-N; \u0601𑍧\u07DD。ς򬍘🀞\u17B5; [B1 B6 P1 V6]; [B1 B6 P1 V6] # 𑍧ߝ.ς🀞
-B; \u0601𑍧\u07DD。Σ򬍘🀞\u17B5; [B1 B6 P1 V6]; [B1 B6 P1 V6] # 𑍧ߝ.σ🀞
-B; \u0601𑍧\u07DD。σ򬍘🀞\u17B5; [B1 B6 P1 V6]; [B1 B6 P1 V6] # 𑍧ߝ.σ🀞
-B; xn--jfb66gt010c.xn--4xa623h9p95ars26d; [B1 B6 V6]; [B1 B6 V6] # 𑍧ߝ.σ🀞
-B; xn--jfb66gt010c.xn--3xa823h9p95ars26d; [B1 B6 V6]; [B1 B6 V6] # 𑍧ߝ.ς🀞
-B; -𐳲\u0646󠺐。\uABED𝟥; [B1 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # -𐳲ن.꯭3
-B; -𐳲\u0646󠺐。\uABED3; [B1 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # -𐳲ن.꯭3
-B; -𐲲\u0646󠺐。\uABED3; [B1 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # -𐳲ن.꯭3
-B; xn----roc5482rek10i.xn--3-zw5e; [B1 V3 V5 V6]; [B1 V3 V5 V6] # -𐳲ن.꯭3
-B; -𐲲\u0646󠺐。\uABED𝟥; [B1 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # -𐳲ن.꯭3
-T; \u200C󠴦。񲨕≮𐦜; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 P1 V6] # .≮𐦜
-N; \u200C󠴦。񲨕≮𐦜; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 C1 P1 V6] # .≮𐦜
-T; \u200C󠴦。񲨕<\u0338𐦜; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 P1 V6] # .≮𐦜
-N; \u200C󠴦。񲨕<\u0338𐦜; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 C1 P1 V6] # .≮𐦜
-T; \u200C󠴦。񲨕≮𐦜; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 P1 V6] # .≮𐦜
-N; \u200C󠴦。񲨕≮𐦜; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 C1 P1 V6] # .≮𐦜
-T; \u200C󠴦。񲨕<\u0338𐦜; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 P1 V6] # .≮𐦜
-N; \u200C󠴦。񲨕<\u0338𐦜; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 C1 P1 V6] # .≮𐦜
-B; xn--6v56e.xn--gdhz712gzlr6b; [B1 B5 B6 V6]; [B1 B5 B6 V6]
-B; xn--0ug22251l.xn--gdhz712gzlr6b; [B1 B5 B6 C1 V6]; [B1 B5 B6 C1 V6] # .≮𐦜
-B; ⒈✌򟬟.𝟡񠱣; [P1 V6]; [P1 V6]
-B; 1.✌򟬟.9񠱣; [P1 V6]; [P1 V6]
-B; 1.xn--7bi44996f.xn--9-o706d; [V6]; [V6]
-B; xn--tsh24g49550b.xn--9-o706d; [V6]; [V6]
-B; 𑆾𞤬𐮆.\u0666\u1DD4; [B1 V5]; [B1 V5] # 𑆾𞤬𐮆.٦ᷔ
-B; 𑆾𞤊𐮆.\u0666\u1DD4; [B1 V5]; [B1 V5] # 𑆾𞤬𐮆.٦ᷔ
-B; xn--d29c79hf98r.xn--fib011j; [B1 V5]; [B1 V5] # 𑆾𞤬𐮆.٦ᷔ
-T; ς.\uA9C0\uA8C4; [V5]; [V5] # ς.꧀꣄
-N; ς.\uA9C0\uA8C4; [V5]; [V5] # ς.꧀꣄
-T; ς.\uA9C0\uA8C4; [V5]; [V5] # ς.꧀꣄
-N; ς.\uA9C0\uA8C4; [V5]; [V5] # ς.꧀꣄
-B; Σ.\uA9C0\uA8C4; [V5]; [V5] # σ.꧀꣄
-B; σ.\uA9C0\uA8C4; [V5]; [V5] # σ.꧀꣄
-B; xn--4xa.xn--0f9ars; [V5]; [V5] # σ.꧀꣄
-B; xn--3xa.xn--0f9ars; [V5]; [V5] # ς.꧀꣄
-B; Σ.\uA9C0\uA8C4; [V5]; [V5] # σ.꧀꣄
-B; σ.\uA9C0\uA8C4; [V5]; [V5] # σ.꧀꣄
-T; 𑰶\u200C≯𐳐.\u085B; [B1 B3 B6 C1 P1 V5 V6]; [B1 B3 B6 P1 V5 V6] # 𑰶≯𐳐.࡛
-N; 𑰶\u200C≯𐳐.\u085B; [B1 B3 B6 C1 P1 V5 V6]; [B1 B3 B6 C1 P1 V5 V6] # 𑰶≯𐳐.࡛
-T; 𑰶\u200C>\u0338𐳐.\u085B; [B1 B3 B6 C1 P1 V5 V6]; [B1 B3 B6 P1 V5 V6] # 𑰶≯𐳐.࡛
-N; 𑰶\u200C>\u0338𐳐.\u085B; [B1 B3 B6 C1 P1 V5 V6]; [B1 B3 B6 C1 P1 V5 V6] # 𑰶≯𐳐.࡛
-T; 𑰶\u200C≯𐳐.\u085B; [B1 B3 B6 C1 P1 V5 V6]; [B1 B3 B6 P1 V5 V6] # 𑰶≯𐳐.࡛
-N; 𑰶\u200C≯𐳐.\u085B; [B1 B3 B6 C1 P1 V5 V6]; [B1 B3 B6 C1 P1 V5 V6] # 𑰶≯𐳐.࡛
-T; 𑰶\u200C>\u0338𐳐.\u085B; [B1 B3 B6 C1 P1 V5 V6]; [B1 B3 B6 P1 V5 V6] # 𑰶≯𐳐.࡛
-N; 𑰶\u200C>\u0338𐳐.\u085B; [B1 B3 B6 C1 P1 V5 V6]; [B1 B3 B6 C1 P1 V5 V6] # 𑰶≯𐳐.࡛
-T; 𑰶\u200C>\u0338𐲐.\u085B; [B1 B3 B6 C1 P1 V5 V6]; [B1 B3 B6 P1 V5 V6] # 𑰶≯𐳐.࡛
-N; 𑰶\u200C>\u0338𐲐.\u085B; [B1 B3 B6 C1 P1 V5 V6]; [B1 B3 B6 C1 P1 V5 V6] # 𑰶≯𐳐.࡛
-T; 𑰶\u200C≯𐲐.\u085B; [B1 B3 B6 C1 P1 V5 V6]; [B1 B3 B6 P1 V5 V6] # 𑰶≯𐳐.࡛
-N; 𑰶\u200C≯𐲐.\u085B; [B1 B3 B6 C1 P1 V5 V6]; [B1 B3 B6 C1 P1 V5 V6] # 𑰶≯𐳐.࡛
-B; xn--hdhz343g3wj.xn--qwb; [B1 B3 B6 V5 V6]; [B1 B3 B6 V5 V6] # 𑰶≯𐳐.࡛
-B; xn--0ug06g7697ap4ma.xn--qwb; [B1 B3 B6 C1 V5 V6]; [B1 B3 B6 C1 V5 V6] # 𑰶≯𐳐.࡛
-T; 𑰶\u200C>\u0338𐲐.\u085B; [B1 B3 B6 C1 P1 V5 V6]; [B1 B3 B6 P1 V5 V6] # 𑰶≯𐳐.࡛
-N; 𑰶\u200C>\u0338𐲐.\u085B; [B1 B3 B6 C1 P1 V5 V6]; [B1 B3 B6 C1 P1 V5 V6] # 𑰶≯𐳐.࡛
-T; 𑰶\u200C≯𐲐.\u085B; [B1 B3 B6 C1 P1 V5 V6]; [B1 B3 B6 P1 V5 V6] # 𑰶≯𐳐.࡛
-N; 𑰶\u200C≯𐲐.\u085B; [B1 B3 B6 C1 P1 V5 V6]; [B1 B3 B6 C1 P1 V5 V6] # 𑰶≯𐳐.࡛
-B; 羚。≯; [P1 V6]; [P1 V6]
-B; 羚。>\u0338; [P1 V6]; [P1 V6]
-B; 羚。≯; [P1 V6]; [P1 V6]
-B; 羚。>\u0338; [P1 V6]; [P1 V6]
-B; xn--xt0a.xn--hdh; [V6]; [V6]
-B; 𑓂\u1759.\u08A8; [B1 P1 V5 V6]; [B1 P1 V5 V6] # 𑓂.ࢨ
-B; 𑓂\u1759.\u08A8; [B1 P1 V5 V6]; [B1 P1 V5 V6] # 𑓂.ࢨ
-B; xn--e1e9580k.xn--xyb; [B1 V5 V6]; [B1 V5 V6] # 𑓂.ࢨ
-T; 󨣿󠇀\u200D。\u0663ҠჀ𝟑; [B1 B6 C2 P1 V6]; [B1 P1 V6] # .٣ҡჀ3
-N; 󨣿󠇀\u200D。\u0663ҠჀ𝟑; [B1 B6 C2 P1 V6]; [B1 B6 C2 P1 V6] # .٣ҡჀ3
-T; 󨣿󠇀\u200D。\u0663ҠჀ3; [B1 B6 C2 P1 V6]; [B1 P1 V6] # .٣ҡჀ3
-N; 󨣿󠇀\u200D。\u0663ҠჀ3; [B1 B6 C2 P1 V6]; [B1 B6 C2 P1 V6] # .٣ҡჀ3
-T; 󨣿󠇀\u200D。\u0663ҡⴠ3; [B1 B6 C2 P1 V6]; [B1 P1 V6] # .٣ҡⴠ3
-N; 󨣿󠇀\u200D。\u0663ҡⴠ3; [B1 B6 C2 P1 V6]; [B1 B6 C2 P1 V6] # .٣ҡⴠ3
-T; 󨣿󠇀\u200D。\u0663Ҡⴠ3; [B1 B6 C2 P1 V6]; [B1 P1 V6] # .٣ҡⴠ3
-N; 󨣿󠇀\u200D。\u0663Ҡⴠ3; [B1 B6 C2 P1 V6]; [B1 B6 C2 P1 V6] # .٣ҡⴠ3
-B; xn--1r19e.xn--3-ozb36ko13f; [B1 V6]; [B1 V6] # .٣ҡⴠ3
-B; xn--1ug89936l.xn--3-ozb36ko13f; [B1 B6 C2 V6]; [B1 B6 C2 V6] # .٣ҡⴠ3
-B; xn--1r19e.xn--3-ozb36kixu; [B1 V6]; [B1 V6] # .٣ҡჀ3
-B; xn--1ug89936l.xn--3-ozb36kixu; [B1 B6 C2 V6]; [B1 B6 C2 V6] # .٣ҡჀ3
-T; 󨣿󠇀\u200D。\u0663ҡⴠ𝟑; [B1 B6 C2 P1 V6]; [B1 P1 V6] # .٣ҡⴠ3
-N; 󨣿󠇀\u200D。\u0663ҡⴠ𝟑; [B1 B6 C2 P1 V6]; [B1 B6 C2 P1 V6] # .٣ҡⴠ3
-T; 󨣿󠇀\u200D。\u0663Ҡⴠ𝟑; [B1 B6 C2 P1 V6]; [B1 P1 V6] # .٣ҡⴠ3
-N; 󨣿󠇀\u200D。\u0663Ҡⴠ𝟑; [B1 B6 C2 P1 V6]; [B1 B6 C2 P1 V6] # .٣ҡⴠ3
-B; ᡷ。𐹢\u08E0; [B1]; [B1] # ᡷ.𐹢࣠
-B; xn--k9e.xn--j0b5005k; [B1]; [B1] # ᡷ.𐹢࣠
-T; 򕮇\u1BF3。\u0666񗜼\u17D2ß; [B1 P1 V6]; [B1 P1 V6] # ᯳.٦្ß
-N; 򕮇\u1BF3。\u0666񗜼\u17D2ß; [B1 P1 V6]; [B1 P1 V6] # ᯳.٦្ß
-T; 򕮇\u1BF3。\u0666񗜼\u17D2ß; [B1 P1 V6]; [B1 P1 V6] # ᯳.٦្ß
-N; 򕮇\u1BF3。\u0666񗜼\u17D2ß; [B1 P1 V6]; [B1 P1 V6] # ᯳.٦្ß
-B; 򕮇\u1BF3。\u0666񗜼\u17D2SS; [B1 P1 V6]; [B1 P1 V6] # ᯳.٦្ss
-B; 򕮇\u1BF3。\u0666񗜼\u17D2ss; [B1 P1 V6]; [B1 P1 V6] # ᯳.٦្ss
-B; 򕮇\u1BF3。\u0666񗜼\u17D2Ss; [B1 P1 V6]; [B1 P1 V6] # ᯳.٦្ss
-B; xn--1zf58212h.xn--ss-pyd459o3258m; [B1 V6]; [B1 V6] # ᯳.٦្ss
-B; xn--1zf58212h.xn--zca34zk4qx711k; [B1 V6]; [B1 V6] # ᯳.٦្ß
-B; 򕮇\u1BF3。\u0666񗜼\u17D2SS; [B1 P1 V6]; [B1 P1 V6] # ᯳.٦្ss
-B; 򕮇\u1BF3。\u0666񗜼\u17D2ss; [B1 P1 V6]; [B1 P1 V6] # ᯳.٦្ss
-B; 򕮇\u1BF3。\u0666񗜼\u17D2Ss; [B1 P1 V6]; [B1 P1 V6] # ᯳.٦្ss
-B; \u0664򤽎𑲛.󠔢︒≠; [B1 P1 V6]; [B1 P1 V6] # ٤𑲛.︒≠
-B; \u0664򤽎𑲛.󠔢︒=\u0338; [B1 P1 V6]; [B1 P1 V6] # ٤𑲛.︒≠
-B; \u0664򤽎𑲛.󠔢。≠; [B1 P1 V6]; [B1 P1 V6] # ٤𑲛..≠
-B; \u0664򤽎𑲛.󠔢。=\u0338; [B1 P1 V6]; [B1 P1 V6] # ٤𑲛..≠
-B; xn--dib0653l2i02d.xn--k736e.xn--1ch; [B1 V6]; [B1 V6] # ٤𑲛..≠
-B; xn--dib0653l2i02d.xn--1ch7467f14u4g; [B1 V6]; [B1 V6] # ٤𑲛.︒≠
-B; ➆񷧕ỗ⒈.򑬒񡘮\u085B𝟫; [P1 V6]; [P1 V6] # ➆ỗ⒈.࡛9
-B; ➆񷧕o\u0302\u0303⒈.򑬒񡘮\u085B𝟫; [P1 V6]; [P1 V6] # ➆ỗ⒈.࡛9
-B; ➆񷧕ỗ1..򑬒񡘮\u085B9; [P1 V6 A4_2]; [P1 V6 A4_2] # ➆ỗ1..࡛9
-B; ➆񷧕o\u0302\u03031..򑬒񡘮\u085B9; [P1 V6 A4_2]; [P1 V6 A4_2] # ➆ỗ1..࡛9
-B; ➆񷧕O\u0302\u03031..򑬒񡘮\u085B9; [P1 V6 A4_2]; [P1 V6 A4_2] # ➆ỗ1..࡛9
-B; ➆񷧕Ỗ1..򑬒񡘮\u085B9; [P1 V6 A4_2]; [P1 V6 A4_2] # ➆ỗ1..࡛9
-B; xn--1-3xm292b6044r..xn--9-6jd87310jtcqs; [V6 A4_2]; [V6 A4_2] # ➆ỗ1..࡛9
-B; ➆񷧕O\u0302\u0303⒈.򑬒񡘮\u085B𝟫; [P1 V6]; [P1 V6] # ➆ỗ⒈.࡛9
-B; ➆񷧕Ỗ⒈.򑬒񡘮\u085B𝟫; [P1 V6]; [P1 V6] # ➆ỗ⒈.࡛9
-B; xn--6lg26tvvc6v99z.xn--9-6jd87310jtcqs; [V6]; [V6] # ➆ỗ⒈.࡛9
-T; \u200D。𞤘; [B1 C2]; [A4_2] # .𞤺
-N; \u200D。𞤘; [B1 C2]; [B1 C2] # .𞤺
-T; \u200D。𞤘; [B1 C2]; [A4_2] # .𞤺
-N; \u200D。𞤘; [B1 C2]; [B1 C2] # .𞤺
-T; \u200D。𞤺; [B1 C2]; [A4_2] # .𞤺
-N; \u200D。𞤺; [B1 C2]; [B1 C2] # .𞤺
-B; .xn--ye6h; [A4_2]; [A4_2]
-B; xn--1ug.xn--ye6h; [B1 C2]; [B1 C2] # .𞤺
-T; \u200D。𞤺; [B1 C2]; [A4_2] # .𞤺
-N; \u200D。𞤺; [B1 C2]; [B1 C2] # .𞤺
-B; xn--ye6h; 𞤺; xn--ye6h
-B; 𞤺; ; xn--ye6h
-B; 𞤘; 𞤺; xn--ye6h
-B; \u0829\u0724.ᢣ; [B1 V5]; [B1 V5] # ࠩܤ.ᢣ
-B; xn--unb53c.xn--tbf; [B1 V5]; [B1 V5] # ࠩܤ.ᢣ
-T; \u073C\u200C-。𓐾ß; [C1 P1 V3 V5 V6]; [P1 V3 V5 V6] # ܼ-.ß
-N; \u073C\u200C-。𓐾ß; [C1 P1 V3 V5 V6]; [C1 P1 V3 V5 V6] # ܼ-.ß
-T; \u073C\u200C-。𓐾SS; [C1 P1 V3 V5 V6]; [P1 V3 V5 V6] # ܼ-.ss
-N; \u073C\u200C-。𓐾SS; [C1 P1 V3 V5 V6]; [C1 P1 V3 V5 V6] # ܼ-.ss
-T; \u073C\u200C-。𓐾ss; [C1 P1 V3 V5 V6]; [P1 V3 V5 V6] # ܼ-.ss
-N; \u073C\u200C-。𓐾ss; [C1 P1 V3 V5 V6]; [C1 P1 V3 V5 V6] # ܼ-.ss
-T; \u073C\u200C-。𓐾Ss; [C1 P1 V3 V5 V6]; [P1 V3 V5 V6] # ܼ-.ss
-N; \u073C\u200C-。𓐾Ss; [C1 P1 V3 V5 V6]; [C1 P1 V3 V5 V6] # ܼ-.ss
-B; xn----s2c.xn--ss-066q; [V3 V5 V6]; [V3 V5 V6] # ܼ-.ss
-B; xn----s2c071q.xn--ss-066q; [C1 V3 V5 V6]; [C1 V3 V5 V6] # ܼ-.ss
-B; xn----s2c071q.xn--zca7848m; [C1 V3 V5 V6]; [C1 V3 V5 V6] # ܼ-.ß
-T; \u200Cς🃡⒗.\u0CC6仧\u0756; [B1 B5 B6 C1 P1 V5 V6]; [B5 B6 P1 V5 V6] # ς🃡⒗.ೆ仧ݖ
-N; \u200Cς🃡⒗.\u0CC6仧\u0756; [B1 B5 B6 C1 P1 V5 V6]; [B1 B5 B6 C1 P1 V5 V6] # ς🃡⒗.ೆ仧ݖ
-T; \u200Cς🃡16..\u0CC6仧\u0756; [B1 B5 B6 C1 V5 A4_2]; [B5 B6 V5 A4_2] # ς🃡16..ೆ仧ݖ
-N; \u200Cς🃡16..\u0CC6仧\u0756; [B1 B5 B6 C1 V5 A4_2]; [B1 B5 B6 C1 V5 A4_2] # ς🃡16..ೆ仧ݖ
-T; \u200CΣ🃡16..\u0CC6仧\u0756; [B1 B5 B6 C1 V5 A4_2]; [B5 B6 V5 A4_2] # σ🃡16..ೆ仧ݖ
-N; \u200CΣ🃡16..\u0CC6仧\u0756; [B1 B5 B6 C1 V5 A4_2]; [B1 B5 B6 C1 V5 A4_2] # σ🃡16..ೆ仧ݖ
-T; \u200Cσ🃡16..\u0CC6仧\u0756; [B1 B5 B6 C1 V5 A4_2]; [B5 B6 V5 A4_2] # σ🃡16..ೆ仧ݖ
-N; \u200Cσ🃡16..\u0CC6仧\u0756; [B1 B5 B6 C1 V5 A4_2]; [B1 B5 B6 C1 V5 A4_2] # σ🃡16..ೆ仧ݖ
-B; xn--16-ubc66061c..xn--9ob79ycx2e; [B5 B6 V5 A4_2]; [B5 B6 V5 A4_2] # σ🃡16..ೆ仧ݖ
-B; xn--16-ubc7700avy99b..xn--9ob79ycx2e; [B1 B5 B6 C1 V5 A4_2]; [B1 B5 B6 C1 V5 A4_2] # σ🃡16..ೆ仧ݖ
-B; xn--16-rbc1800avy99b..xn--9ob79ycx2e; [B1 B5 B6 C1 V5 A4_2]; [B1 B5 B6 C1 V5 A4_2] # ς🃡16..ೆ仧ݖ
-T; \u200CΣ🃡⒗.\u0CC6仧\u0756; [B1 B5 B6 C1 P1 V5 V6]; [B5 B6 P1 V5 V6] # σ🃡⒗.ೆ仧ݖ
-N; \u200CΣ🃡⒗.\u0CC6仧\u0756; [B1 B5 B6 C1 P1 V5 V6]; [B1 B5 B6 C1 P1 V5 V6] # σ🃡⒗.ೆ仧ݖ
-T; \u200Cσ🃡⒗.\u0CC6仧\u0756; [B1 B5 B6 C1 P1 V5 V6]; [B5 B6 P1 V5 V6] # σ🃡⒗.ೆ仧ݖ
-N; \u200Cσ🃡⒗.\u0CC6仧\u0756; [B1 B5 B6 C1 P1 V5 V6]; [B1 B5 B6 C1 P1 V5 V6] # σ🃡⒗.ೆ仧ݖ
-B; xn--4xa229nbu92a.xn--9ob79ycx2e; [B5 B6 V5 V6]; [B5 B6 V5 V6] # σ🃡⒗.ೆ仧ݖ
-B; xn--4xa595lz9czy52d.xn--9ob79ycx2e; [B1 B5 B6 C1 V5 V6]; [B1 B5 B6 C1 V5 V6] # σ🃡⒗.ೆ仧ݖ
-B; xn--3xa795lz9czy52d.xn--9ob79ycx2e; [B1 B5 B6 C1 V5 V6]; [B1 B5 B6 C1 V5 V6] # ς🃡⒗.ೆ仧ݖ
-B; -.𞸚; [B1 V3]; [B1 V3] # -.ظ
-B; -.\u0638; [B1 V3]; [B1 V3] # -.ظ
-B; -.xn--3gb; [B1 V3]; [B1 V3] # -.ظ
-B; 򏛓\u0683.\u0F7E\u0634; [B1 B5 B6 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # ڃ.ཾش
-B; xn--8ib92728i.xn--zgb968b; [B1 B5 B6 V5 V6]; [B1 B5 B6 V5 V6] # ڃ.ཾش
-B; \u0FE6\u0843񽶬.𐮏; [B5 P1 V6]; [B5 P1 V6] # ࡃ.𐮏
-B; xn--1vb320b5m04p.xn--m29c; [B5 V6]; [B5 V6] # ࡃ.𐮏
-T; 2񎨠\u07CBß。ᠽ; [B1 P1 V6]; [B1 P1 V6] # 2ߋß.ᠽ
-N; 2񎨠\u07CBß。ᠽ; [B1 P1 V6]; [B1 P1 V6] # 2ߋß.ᠽ
-B; 2񎨠\u07CBSS。ᠽ; [B1 P1 V6]; [B1 P1 V6] # 2ߋss.ᠽ
-B; 2񎨠\u07CBss。ᠽ; [B1 P1 V6]; [B1 P1 V6] # 2ߋss.ᠽ
-B; 2񎨠\u07CBSs。ᠽ; [B1 P1 V6]; [B1 P1 V6] # 2ߋss.ᠽ
-B; xn--2ss-odg83511n.xn--w7e; [B1 V6]; [B1 V6] # 2ߋss.ᠽ
-B; xn--2-qfa924cez02l.xn--w7e; [B1 V6]; [B1 V6] # 2ߋß.ᠽ
-T; 㸳\u07CA≮.\u06CEß-\u200D; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 P1 V3 V6] # 㸳ߊ≮.ێß-
-N; 㸳\u07CA≮.\u06CEß-\u200D; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 C2 P1 V6] # 㸳ߊ≮.ێß-
-T; 㸳\u07CA<\u0338.\u06CEß-\u200D; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 P1 V3 V6] # 㸳ߊ≮.ێß-
-N; 㸳\u07CA<\u0338.\u06CEß-\u200D; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 C2 P1 V6] # 㸳ߊ≮.ێß-
-T; 㸳\u07CA≮.\u06CEß-\u200D; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 P1 V3 V6] # 㸳ߊ≮.ێß-
-N; 㸳\u07CA≮.\u06CEß-\u200D; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 C2 P1 V6] # 㸳ߊ≮.ێß-
-T; 㸳\u07CA<\u0338.\u06CEß-\u200D; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 P1 V3 V6] # 㸳ߊ≮.ێß-
-N; 㸳\u07CA<\u0338.\u06CEß-\u200D; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 C2 P1 V6] # 㸳ߊ≮.ێß-
-T; 㸳\u07CA<\u0338.\u06CESS-\u200D; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 P1 V3 V6] # 㸳ߊ≮.ێss-
-N; 㸳\u07CA<\u0338.\u06CESS-\u200D; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 C2 P1 V6] # 㸳ߊ≮.ێss-
-T; 㸳\u07CA≮.\u06CESS-\u200D; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 P1 V3 V6] # 㸳ߊ≮.ێss-
-N; 㸳\u07CA≮.\u06CESS-\u200D; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 C2 P1 V6] # 㸳ߊ≮.ێss-
-T; 㸳\u07CA≮.\u06CEss-\u200D; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 P1 V3 V6] # 㸳ߊ≮.ێss-
-N; 㸳\u07CA≮.\u06CEss-\u200D; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 C2 P1 V6] # 㸳ߊ≮.ێss-
-T; 㸳\u07CA<\u0338.\u06CEss-\u200D; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 P1 V3 V6] # 㸳ߊ≮.ێss-
-N; 㸳\u07CA<\u0338.\u06CEss-\u200D; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 C2 P1 V6] # 㸳ߊ≮.ێss-
-T; 㸳\u07CA<\u0338.\u06CESs-\u200D; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 P1 V3 V6] # 㸳ߊ≮.ێss-
-N; 㸳\u07CA<\u0338.\u06CESs-\u200D; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 C2 P1 V6] # 㸳ߊ≮.ێss-
-T; 㸳\u07CA≮.\u06CESs-\u200D; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 P1 V3 V6] # 㸳ߊ≮.ێss-
-N; 㸳\u07CA≮.\u06CESs-\u200D; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 C2 P1 V6] # 㸳ߊ≮.ێss-
-B; xn--lsb457kkut.xn--ss--qjf; [B2 B3 B5 B6 V3 V6]; [B2 B3 B5 B6 V3 V6] # 㸳ߊ≮.ێss-
-B; xn--lsb457kkut.xn--ss--qjf2343a; [B2 B3 B5 B6 C2 V6]; [B2 B3 B5 B6 C2 V6] # 㸳ߊ≮.ێss-
-B; xn--lsb457kkut.xn----pfa076bys4a; [B2 B3 B5 B6 C2 V6]; [B2 B3 B5 B6 C2 V6] # 㸳ߊ≮.ێß-
-T; 㸳\u07CA<\u0338.\u06CESS-\u200D; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 P1 V3 V6] # 㸳ߊ≮.ێss-
-N; 㸳\u07CA<\u0338.\u06CESS-\u200D; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 C2 P1 V6] # 㸳ߊ≮.ێss-
-T; 㸳\u07CA≮.\u06CESS-\u200D; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 P1 V3 V6] # 㸳ߊ≮.ێss-
-N; 㸳\u07CA≮.\u06CESS-\u200D; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 C2 P1 V6] # 㸳ߊ≮.ێss-
-T; 㸳\u07CA≮.\u06CEss-\u200D; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 P1 V3 V6] # 㸳ߊ≮.ێss-
-N; 㸳\u07CA≮.\u06CEss-\u200D; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 C2 P1 V6] # 㸳ߊ≮.ێss-
-T; 㸳\u07CA<\u0338.\u06CEss-\u200D; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 P1 V3 V6] # 㸳ߊ≮.ێss-
-N; 㸳\u07CA<\u0338.\u06CEss-\u200D; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 C2 P1 V6] # 㸳ߊ≮.ێss-
-T; 㸳\u07CA<\u0338.\u06CESs-\u200D; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 P1 V3 V6] # 㸳ߊ≮.ێss-
-N; 㸳\u07CA<\u0338.\u06CESs-\u200D; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 C2 P1 V6] # 㸳ߊ≮.ێss-
-T; 㸳\u07CA≮.\u06CESs-\u200D; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 P1 V3 V6] # 㸳ߊ≮.ێss-
-N; 㸳\u07CA≮.\u06CESs-\u200D; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 C2 P1 V6] # 㸳ߊ≮.ێss-
-B; -򷝬\u135E𑜧.\u1DEB-︒; [P1 V3 V5 V6]; [P1 V3 V5 V6] # -፞𑜧.ᷫ-︒
-B; -򷝬\u135E𑜧.\u1DEB-。; [P1 V3 V5 V6]; [P1 V3 V5 V6] # -፞𑜧.ᷫ-.
-B; xn----b5h1837n2ok9f.xn----mkm.; [V3 V5 V6]; [V3 V5 V6] # -፞𑜧.ᷫ-.
-B; xn----b5h1837n2ok9f.xn----mkmw278h; [V3 V5 V6]; [V3 V5 V6] # -፞𑜧.ᷫ-︒
-B; ︒.򚠡\u1A59; [P1 V6]; [P1 V6] # ︒.ᩙ
-B; 。.򚠡\u1A59; [P1 V6 A4_2]; [P1 V6 A4_2] # ..ᩙ
-B; ..xn--cof61594i; [V6 A4_2]; [V6 A4_2] # ..ᩙ
-B; xn--y86c.xn--cof61594i; [V6]; [V6] # ︒.ᩙ
-T; \u0323\u2DE1。\u200C⓾\u200C\u06B9; [B1 B3 B6 C1 V5]; [B1 B3 B6 V5] # ̣ⷡ.⓾ڹ
-N; \u0323\u2DE1。\u200C⓾\u200C\u06B9; [B1 B3 B6 C1 V5]; [B1 B3 B6 C1 V5] # ̣ⷡ.⓾ڹ
-B; xn--kta899s.xn--skb116m; [B1 B3 B6 V5]; [B1 B3 B6 V5] # ̣ⷡ.⓾ڹ
-B; xn--kta899s.xn--skb970ka771c; [B1 B3 B6 C1 V5]; [B1 B3 B6 C1 V5] # ̣ⷡ.⓾ڹ
-B; 𞠶ᠴ\u06DD。\u1074𞤵󠅦; [B1 B2 P1 V5 V6]; [B1 B2 P1 V5 V6] # 𞠶ᠴ.ၴ𞤵
-B; 𞠶ᠴ\u06DD。\u1074𞤵󠅦; [B1 B2 P1 V5 V6]; [B1 B2 P1 V5 V6] # 𞠶ᠴ.ၴ𞤵
-B; 𞠶ᠴ\u06DD。\u1074𞤓󠅦; [B1 B2 P1 V5 V6]; [B1 B2 P1 V5 V6] # 𞠶ᠴ.ၴ𞤵
-B; xn--tlb199fwl35a.xn--yld4613v; [B1 B2 V5 V6]; [B1 B2 V5 V6] # 𞠶ᠴ.ၴ𞤵
-B; 𞠶ᠴ\u06DD。\u1074𞤓󠅦; [B1 B2 P1 V5 V6]; [B1 B2 P1 V5 V6] # 𞠶ᠴ.ၴ𞤵
-B; 𑰺.-򑟏; [P1 V3 V5 V6]; [P1 V3 V5 V6]
-B; xn--jk3d.xn----iz68g; [V3 V5 V6]; [V3 V5 V6]
-B; 󠻩.赏; [P1 V6]; [P1 V6]
-B; 󠻩.赏; [P1 V6]; [P1 V6]
-B; xn--2856e.xn--6o3a; [V6]; [V6]
-B; \u06B0ᠡ。Ⴁ; [B2 B3 P1 V6]; [B2 B3 P1 V6] # ڰᠡ.Ⴁ
-B; \u06B0ᠡ。Ⴁ; [B2 B3 P1 V6]; [B2 B3 P1 V6] # ڰᠡ.Ⴁ
-B; \u06B0ᠡ。ⴁ; [B2 B3]; [B2 B3] # ڰᠡ.ⴁ
-B; xn--jkb440g.xn--skj; [B2 B3]; [B2 B3] # ڰᠡ.ⴁ
-B; xn--jkb440g.xn--8md; [B2 B3 V6]; [B2 B3 V6] # ڰᠡ.Ⴁ
-B; \u06B0ᠡ。ⴁ; [B2 B3]; [B2 B3] # ڰᠡ.ⴁ
-T; \u20DEႪ\u06BBς。-; [B1 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # ⃞Ⴊڻς.-
-N; \u20DEႪ\u06BBς。-; [B1 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # ⃞Ⴊڻς.-
-T; \u20DEႪ\u06BBς。-; [B1 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # ⃞Ⴊڻς.-
-N; \u20DEႪ\u06BBς。-; [B1 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # ⃞Ⴊڻς.-
-T; \u20DEⴊ\u06BBς。-; [B1 V3 V5]; [B1 V3 V5] # ⃞ⴊڻς.-
-N; \u20DEⴊ\u06BBς。-; [B1 V3 V5]; [B1 V3 V5] # ⃞ⴊڻς.-
-B; \u20DEႪ\u06BBΣ。-; [B1 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # ⃞Ⴊڻσ.-
-B; \u20DEⴊ\u06BBσ。-; [B1 V3 V5]; [B1 V3 V5] # ⃞ⴊڻσ.-
-B; \u20DEႪ\u06BBσ。-; [B1 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # ⃞Ⴊڻσ.-
-B; xn--4xa33m7zmb0q.-; [B1 V3 V5 V6]; [B1 V3 V5 V6] # ⃞Ⴊڻσ.-
-B; xn--4xa33mr38aeel.-; [B1 V3 V5]; [B1 V3 V5] # ⃞ⴊڻσ.-
-B; xn--3xa53mr38aeel.-; [B1 V3 V5]; [B1 V3 V5] # ⃞ⴊڻς.-
-B; xn--3xa53m7zmb0q.-; [B1 V3 V5 V6]; [B1 V3 V5 V6] # ⃞Ⴊڻς.-
-T; \u20DEⴊ\u06BBς。-; [B1 V3 V5]; [B1 V3 V5] # ⃞ⴊڻς.-
-N; \u20DEⴊ\u06BBς。-; [B1 V3 V5]; [B1 V3 V5] # ⃞ⴊڻς.-
-B; \u20DEႪ\u06BBΣ。-; [B1 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # ⃞Ⴊڻσ.-
-B; \u20DEⴊ\u06BBσ。-; [B1 V3 V5]; [B1 V3 V5] # ⃞ⴊڻσ.-
-B; \u20DEႪ\u06BBσ。-; [B1 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # ⃞Ⴊڻσ.-
-T; Ⴍ.񍇦\u200C; [C1 P1 V6]; [P1 V6] # Ⴍ.
-N; Ⴍ.񍇦\u200C; [C1 P1 V6]; [C1 P1 V6] # Ⴍ.
-T; Ⴍ.񍇦\u200C; [C1 P1 V6]; [P1 V6] # Ⴍ.
-N; Ⴍ.񍇦\u200C; [C1 P1 V6]; [C1 P1 V6] # Ⴍ.
-T; ⴍ.񍇦\u200C; [C1 P1 V6]; [P1 V6] # ⴍ.
-N; ⴍ.񍇦\u200C; [C1 P1 V6]; [C1 P1 V6] # ⴍ.
-B; xn--4kj.xn--p01x; [V6]; [V6]
-B; xn--4kj.xn--0ug56448b; [C1 V6]; [C1 V6] # ⴍ.
-B; xn--lnd.xn--p01x; [V6]; [V6]
-B; xn--lnd.xn--0ug56448b; [C1 V6]; [C1 V6] # Ⴍ.
-T; ⴍ.񍇦\u200C; [C1 P1 V6]; [P1 V6] # ⴍ.
-N; ⴍ.񍇦\u200C; [C1 P1 V6]; [C1 P1 V6] # ⴍ.
-B; 򉟂󠵣.𐫫\u1A60󴺖\u1B44; [B2 B3 B6 P1 V6]; [B2 B3 B6 P1 V6] # .𐫫᩠᭄
-B; xn--9u37blu98h.xn--jof13bt568cork1j; [B2 B3 B6 V6]; [B2 B3 B6 V6] # .𐫫᩠᭄
-B; ≯❊ᠯ。𐹱⺨; [B1 P1 V6]; [B1 P1 V6]
-B; >\u0338❊ᠯ。𐹱⺨; [B1 P1 V6]; [B1 P1 V6]
-B; ≯❊ᠯ。𐹱⺨; [B1 P1 V6]; [B1 P1 V6]
-B; >\u0338❊ᠯ。𐹱⺨; [B1 P1 V6]; [B1 P1 V6]
-B; xn--i7e163ct2d.xn--vwj7372e; [B1 V6]; [B1 V6]
-B; 􁕜𐹧𞭁𐹩。Ⴈ𐫮Ⴏ; [B5 B6 P1 V6]; [B5 B6 P1 V6]
-B; 􁕜𐹧𞭁𐹩。ⴈ𐫮ⴏ; [B5 B6 P1 V6]; [B5 B6 P1 V6]
-B; xn--fo0de1270ope54j.xn--zkjo0151o; [B5 B6 V6]; [B5 B6 V6]
-B; xn--fo0de1270ope54j.xn--gndo2033q; [B5 B6 V6]; [B5 B6 V6]
-B; 𞠂。\uA926; [B1 B3 B6 V5]; [B1 B3 B6 V5] # 𞠂.ꤦ
-B; xn--145h.xn--ti9a; [B1 B3 B6 V5]; [B1 B3 B6 V5] # 𞠂.ꤦ
-B; 𝟔𐹫.\u0733\u10379ꡇ; [B1 V5]; [B1 V5] # 6𐹫.့ܳ9ꡇ
-B; 𝟔𐹫.\u1037\u07339ꡇ; [B1 V5]; [B1 V5] # 6𐹫.့ܳ9ꡇ
-B; 6𐹫.\u1037\u07339ꡇ; [B1 V5]; [B1 V5] # 6𐹫.့ܳ9ꡇ
-B; xn--6-t26i.xn--9-91c730e8u8n; [B1 V5]; [B1 V5] # 6𐹫.့ܳ9ꡇ
-B; \u0724\u0603𞲶.\u06D8; [B1 B3 B6 P1 V5 V6]; [B1 B3 B6 P1 V5 V6] # ܤ.ۘ
-B; \u0724\u0603𞲶.\u06D8; [B1 B3 B6 P1 V5 V6]; [B1 B3 B6 P1 V5 V6] # ܤ.ۘ
-B; xn--lfb19ct414i.xn--olb; [B1 B3 B6 V5 V6]; [B1 B3 B6 V5 V6] # ܤ.ۘ
-T; ✆񱔩ꡋ.\u0632\u200D𞣴; [B1 C2 P1 V6]; [B1 P1 V6] # ✆ꡋ.ز
-N; ✆񱔩ꡋ.\u0632\u200D𞣴; [B1 C2 P1 V6]; [B1 C2 P1 V6] # ✆ꡋ.ز
-T; ✆񱔩ꡋ.\u0632\u200D𞣴; [B1 C2 P1 V6]; [B1 P1 V6] # ✆ꡋ.ز
-N; ✆񱔩ꡋ.\u0632\u200D𞣴; [B1 C2 P1 V6]; [B1 C2 P1 V6] # ✆ꡋ.ز
-B; xn--1biv525bcix0d.xn--xgb6828v; [B1 V6]; [B1 V6] # ✆ꡋ.ز
-B; xn--1biv525bcix0d.xn--xgb253k0m73a; [B1 C2 V6]; [B1 C2 V6] # ✆ꡋ.ز
-B; \u0845񃾰𞸍-.≠򃁟𑋪; [B1 B2 B3 P1 V3 V6]; [B1 B2 B3 P1 V3 V6] # ࡅن-.≠𑋪
-B; \u0845񃾰𞸍-.=\u0338򃁟𑋪; [B1 B2 B3 P1 V3 V6]; [B1 B2 B3 P1 V3 V6] # ࡅن-.≠𑋪
-B; \u0845񃾰\u0646-.≠򃁟𑋪; [B1 B2 B3 P1 V3 V6]; [B1 B2 B3 P1 V3 V6] # ࡅن-.≠𑋪
-B; \u0845񃾰\u0646-.=\u0338򃁟𑋪; [B1 B2 B3 P1 V3 V6]; [B1 B2 B3 P1 V3 V6] # ࡅن-.≠𑋪
-B; xn----qoc64my971s.xn--1ch7585g76o3c; [B1 B2 B3 V3 V6]; [B1 B2 B3 V3 V6] # ࡅن-.≠𑋪
-B; 𝟛.笠; 3.笠; 3.xn--6vz
-B; 𝟛.笠; 3.笠; 3.xn--6vz
-B; 3.笠; ; 3.xn--6vz
-B; 3.xn--6vz; 3.笠; 3.xn--6vz
-T; -\u200D.Ⴞ𐋷; [C2 P1 V3 V6]; [P1 V3 V6] # -.Ⴞ𐋷
-N; -\u200D.Ⴞ𐋷; [C2 P1 V3 V6]; [C2 P1 V3 V6] # -.Ⴞ𐋷
-T; -\u200D.ⴞ𐋷; [C2 V3]; [V3] # -.ⴞ𐋷
-N; -\u200D.ⴞ𐋷; [C2 V3]; [C2 V3] # -.ⴞ𐋷
-B; -.xn--mlj8559d; [V3]; [V3]
-B; xn----ugn.xn--mlj8559d; [C2 V3]; [C2 V3] # -.ⴞ𐋷
-B; -.xn--2nd2315j; [V3 V6]; [V3 V6]
-B; xn----ugn.xn--2nd2315j; [C2 V3 V6]; [C2 V3 V6] # -.Ⴞ𐋷
-T; \u200Dςß\u0731.\u0BCD; [C2 V5]; [V5] # ςßܱ.்
-N; \u200Dςß\u0731.\u0BCD; [C2 V5]; [C2 V5] # ςßܱ.்
-T; \u200Dςß\u0731.\u0BCD; [C2 V5]; [V5] # ςßܱ.்
-N; \u200Dςß\u0731.\u0BCD; [C2 V5]; [C2 V5] # ςßܱ.்
-T; \u200DΣSS\u0731.\u0BCD; [C2 V5]; [V5] # σssܱ.்
-N; \u200DΣSS\u0731.\u0BCD; [C2 V5]; [C2 V5] # σssܱ.்
-T; \u200Dσss\u0731.\u0BCD; [C2 V5]; [V5] # σssܱ.்
-N; \u200Dσss\u0731.\u0BCD; [C2 V5]; [C2 V5] # σssܱ.்
-T; \u200DΣss\u0731.\u0BCD; [C2 V5]; [V5] # σssܱ.்
-N; \u200DΣss\u0731.\u0BCD; [C2 V5]; [C2 V5] # σssܱ.்
-B; xn--ss-ubc826a.xn--xmc; [V5]; [V5] # σssܱ.்
-B; xn--ss-ubc826ab34b.xn--xmc; [C2 V5]; [C2 V5] # σssܱ.்
-T; \u200DΣß\u0731.\u0BCD; [C2 V5]; [V5] # σßܱ.்
-N; \u200DΣß\u0731.\u0BCD; [C2 V5]; [C2 V5] # σßܱ.்
-T; \u200Dσß\u0731.\u0BCD; [C2 V5]; [V5] # σßܱ.்
-N; \u200Dσß\u0731.\u0BCD; [C2 V5]; [C2 V5] # σßܱ.்
-B; xn--zca39lk1di19a.xn--xmc; [C2 V5]; [C2 V5] # σßܱ.்
-B; xn--zca19ln1di19a.xn--xmc; [C2 V5]; [C2 V5] # ςßܱ.்
-T; \u200DΣSS\u0731.\u0BCD; [C2 V5]; [V5] # σssܱ.்
-N; \u200DΣSS\u0731.\u0BCD; [C2 V5]; [C2 V5] # σssܱ.்
-T; \u200Dσss\u0731.\u0BCD; [C2 V5]; [V5] # σssܱ.்
-N; \u200Dσss\u0731.\u0BCD; [C2 V5]; [C2 V5] # σssܱ.்
-T; \u200DΣss\u0731.\u0BCD; [C2 V5]; [V5] # σssܱ.்
-N; \u200DΣss\u0731.\u0BCD; [C2 V5]; [C2 V5] # σssܱ.்
-T; \u200DΣß\u0731.\u0BCD; [C2 V5]; [V5] # σßܱ.்
-N; \u200DΣß\u0731.\u0BCD; [C2 V5]; [C2 V5] # σßܱ.்
-T; \u200Dσß\u0731.\u0BCD; [C2 V5]; [V5] # σßܱ.்
-N; \u200Dσß\u0731.\u0BCD; [C2 V5]; [C2 V5] # σßܱ.்
-T; ≠.\u200D; [C2 P1 V6]; [P1 V6] # ≠.
-N; ≠.\u200D; [C2 P1 V6]; [C2 P1 V6] # ≠.
-T; =\u0338.\u200D; [C2 P1 V6]; [P1 V6] # ≠.
-N; =\u0338.\u200D; [C2 P1 V6]; [C2 P1 V6] # ≠.
-T; ≠.\u200D; [C2 P1 V6]; [P1 V6] # ≠.
-N; ≠.\u200D; [C2 P1 V6]; [C2 P1 V6] # ≠.
-T; =\u0338.\u200D; [C2 P1 V6]; [P1 V6] # ≠.
-N; =\u0338.\u200D; [C2 P1 V6]; [C2 P1 V6] # ≠.
-B; xn--1ch.; [V6]; [V6]
-B; xn--1ch.xn--1ug; [C2 V6]; [C2 V6] # ≠.
-B; \uFC01。\u0C81ᠼ▗򒁋; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ئح.ಁᠼ▗
-B; \u0626\u062D。\u0C81ᠼ▗򒁋; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ئح.ಁᠼ▗
-B; \u064A\u0654\u062D。\u0C81ᠼ▗򒁋; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ئح.ಁᠼ▗
-B; xn--lgbo.xn--2rc021dcxkrx55t; [B1 V5 V6]; [B1 V5 V6] # ئح.ಁᠼ▗
-T; 󧋵\u09CDς.ς𐨿; [P1 V6]; [P1 V6] # ্ς.ς𐨿
-N; 󧋵\u09CDς.ς𐨿; [P1 V6]; [P1 V6] # ্ς.ς𐨿
-T; 󧋵\u09CDς.ς𐨿; [P1 V6]; [P1 V6] # ্ς.ς𐨿
-N; 󧋵\u09CDς.ς𐨿; [P1 V6]; [P1 V6] # ্ς.ς𐨿
-B; 󧋵\u09CDΣ.Σ𐨿; [P1 V6]; [P1 V6] # ্σ.σ𐨿
-T; 󧋵\u09CDσ.ς𐨿; [P1 V6]; [P1 V6] # ্σ.ς𐨿
-N; 󧋵\u09CDσ.ς𐨿; [P1 V6]; [P1 V6] # ্σ.ς𐨿
-B; 󧋵\u09CDσ.σ𐨿; [P1 V6]; [P1 V6] # ্σ.σ𐨿
-B; 󧋵\u09CDΣ.σ𐨿; [P1 V6]; [P1 V6] # ্σ.σ𐨿
-B; xn--4xa502av8297a.xn--4xa6055k; [V6]; [V6] # ্σ.σ𐨿
-T; 󧋵\u09CDΣ.ς𐨿; [P1 V6]; [P1 V6] # ্σ.ς𐨿
-N; 󧋵\u09CDΣ.ς𐨿; [P1 V6]; [P1 V6] # ্σ.ς𐨿
-B; xn--4xa502av8297a.xn--3xa8055k; [V6]; [V6] # ্σ.ς𐨿
-B; xn--3xa702av8297a.xn--3xa8055k; [V6]; [V6] # ্ς.ς𐨿
-B; 󧋵\u09CDΣ.Σ𐨿; [P1 V6]; [P1 V6] # ্σ.σ𐨿
-T; 󧋵\u09CDσ.ς𐨿; [P1 V6]; [P1 V6] # ্σ.ς𐨿
-N; 󧋵\u09CDσ.ς𐨿; [P1 V6]; [P1 V6] # ্σ.ς𐨿
-B; 󧋵\u09CDσ.σ𐨿; [P1 V6]; [P1 V6] # ্σ.σ𐨿
-B; 󧋵\u09CDΣ.σ𐨿; [P1 V6]; [P1 V6] # ্σ.σ𐨿
-T; 󧋵\u09CDΣ.ς𐨿; [P1 V6]; [P1 V6] # ্σ.ς𐨿
-N; 󧋵\u09CDΣ.ς𐨿; [P1 V6]; [P1 V6] # ্σ.ς𐨿
-B; 𐫓\u07D8牅\u08F8。𞦤\u1A17򱍰Ⴙ; [B2 B3 P1 V6]; [B2 B3 P1 V6] # 𐫓ߘ牅ࣸ.ᨗႹ
-B; 𐫓\u07D8牅\u08F8。𞦤\u1A17򱍰Ⴙ; [B2 B3 P1 V6]; [B2 B3 P1 V6] # 𐫓ߘ牅ࣸ.ᨗႹ
-B; 𐫓\u07D8牅\u08F8。𞦤\u1A17򱍰ⴙ; [B2 B3 P1 V6]; [B2 B3 P1 V6] # 𐫓ߘ牅ࣸ.ᨗⴙ
-B; xn--zsb09cu46vjs6f.xn--gmf469fr883am5r1e; [B2 B3 V6]; [B2 B3 V6] # 𐫓ߘ牅ࣸ.ᨗⴙ
-B; xn--zsb09cu46vjs6f.xn--xnd909bv540bm5k9d; [B2 B3 V6]; [B2 B3 V6] # 𐫓ߘ牅ࣸ.ᨗႹ
-B; 𐫓\u07D8牅\u08F8。𞦤\u1A17򱍰ⴙ; [B2 B3 P1 V6]; [B2 B3 P1 V6] # 𐫓ߘ牅ࣸ.ᨗⴙ
-B; 񣤒。륧; [P1 V6]; [P1 V6]
-B; 񣤒。륧; [P1 V6]; [P1 V6]
-B; 񣤒。륧; [P1 V6]; [P1 V6]
-B; 񣤒。륧; [P1 V6]; [P1 V6]
-B; xn--s264a.xn--pw2b; [V6]; [V6]
-T; 𐹷\u200D。󉵢; [B1 C2 P1 V6]; [B1 P1 V6] # 𐹷.
-N; 𐹷\u200D。󉵢; [B1 C2 P1 V6]; [B1 C2 P1 V6] # 𐹷.
-B; xn--vo0d.xn--8088d; [B1 V6]; [B1 V6]
-B; xn--1ugx205g.xn--8088d; [B1 C2 V6]; [B1 C2 V6] # 𐹷.
-B; Ⴘ\u06C2𑲭。-; [B1 B5 B6 P1 V3 V6]; [B1 B5 B6 P1 V3 V6] # Ⴘۂ𑲭.-
-B; Ⴘ\u06C1\u0654𑲭。-; [B1 B5 B6 P1 V3 V6]; [B1 B5 B6 P1 V3 V6] # Ⴘۂ𑲭.-
-B; Ⴘ\u06C2𑲭。-; [B1 B5 B6 P1 V3 V6]; [B1 B5 B6 P1 V3 V6] # Ⴘۂ𑲭.-
-B; Ⴘ\u06C1\u0654𑲭。-; [B1 B5 B6 P1 V3 V6]; [B1 B5 B6 P1 V3 V6] # Ⴘۂ𑲭.-
-B; ⴘ\u06C1\u0654𑲭。-; [B1 B5 B6 V3]; [B1 B5 B6 V3] # ⴘۂ𑲭.-
-B; ⴘ\u06C2𑲭。-; [B1 B5 B6 V3]; [B1 B5 B6 V3] # ⴘۂ𑲭.-
-B; xn--1kb147qfk3n.-; [B1 B5 B6 V3]; [B1 B5 B6 V3] # ⴘۂ𑲭.-
-B; xn--1kb312c139t.-; [B1 B5 B6 V3 V6]; [B1 B5 B6 V3 V6] # Ⴘۂ𑲭.-
-B; ⴘ\u06C1\u0654𑲭。-; [B1 B5 B6 V3]; [B1 B5 B6 V3] # ⴘۂ𑲭.-
-B; ⴘ\u06C2𑲭。-; [B1 B5 B6 V3]; [B1 B5 B6 V3] # ⴘۂ𑲭.-
-B; \uA806\u067B₆ᡐ。🛇\uFCDD; [B1 V5]; [B1 V5] # ꠆ٻ6ᡐ.🛇يم
-B; \uA806\u067B6ᡐ。🛇\u064A\u0645; [B1 V5]; [B1 V5] # ꠆ٻ6ᡐ.🛇يم
-B; xn--6-rrc018krt9k.xn--hhbj61429a; [B1 V5]; [B1 V5] # ꠆ٻ6ᡐ.🛇يم
-B; 򸍂.㇄ᡟ𐫂\u0622; [B1 P1 V6]; [B1 P1 V6] # .㇄ᡟ𐫂آ
-B; 򸍂.㇄ᡟ𐫂\u0627\u0653; [B1 P1 V6]; [B1 P1 V6] # .㇄ᡟ𐫂آ
-B; xn--p292d.xn--hgb154ghrsvm2r; [B1 V6]; [B1 V6] # .㇄ᡟ𐫂آ
-B; \u07DF򵚌。-\u07E9; [B1 B2 B3 P1 V3 V6]; [B1 B2 B3 P1 V3 V6] # ߟ.-ߩ
-B; xn--6sb88139l.xn----pdd; [B1 B2 B3 V3 V6]; [B1 B2 B3 V3 V6] # ߟ.-ߩ
-T; ς\u0643⾑.\u200Cᢟ\u200C⒈; [B1 B5 C1 P1 V6]; [B5 P1 V6] # ςك襾.ᢟ⒈
-N; ς\u0643⾑.\u200Cᢟ\u200C⒈; [B1 B5 C1 P1 V6]; [B1 B5 C1 P1 V6] # ςك襾.ᢟ⒈
-T; ς\u0643襾.\u200Cᢟ\u200C1.; [B1 B5 C1]; [B5] # ςك襾.ᢟ1.
-N; ς\u0643襾.\u200Cᢟ\u200C1.; [B1 B5 C1]; [B1 B5 C1] # ςك襾.ᢟ1.
-T; Σ\u0643襾.\u200Cᢟ\u200C1.; [B1 B5 C1]; [B5] # σك襾.ᢟ1.
-N; Σ\u0643襾.\u200Cᢟ\u200C1.; [B1 B5 C1]; [B1 B5 C1] # σك襾.ᢟ1.
-T; σ\u0643襾.\u200Cᢟ\u200C1.; [B1 B5 C1]; [B5] # σك襾.ᢟ1.
-N; σ\u0643襾.\u200Cᢟ\u200C1.; [B1 B5 C1]; [B1 B5 C1] # σك襾.ᢟ1.
-B; xn--4xa49jux8r.xn--1-4ck.; [B5]; [B5] # σك襾.ᢟ1.
-B; xn--4xa49jux8r.xn--1-4ck691bba.; [B1 B5 C1]; [B1 B5 C1] # σك襾.ᢟ1.
-B; xn--3xa69jux8r.xn--1-4ck691bba.; [B1 B5 C1]; [B1 B5 C1] # ςك襾.ᢟ1.
-T; Σ\u0643⾑.\u200Cᢟ\u200C⒈; [B1 B5 C1 P1 V6]; [B5 P1 V6] # σك襾.ᢟ⒈
-N; Σ\u0643⾑.\u200Cᢟ\u200C⒈; [B1 B5 C1 P1 V6]; [B1 B5 C1 P1 V6] # σك襾.ᢟ⒈
-T; σ\u0643⾑.\u200Cᢟ\u200C⒈; [B1 B5 C1 P1 V6]; [B5 P1 V6] # σك襾.ᢟ⒈
-N; σ\u0643⾑.\u200Cᢟ\u200C⒈; [B1 B5 C1 P1 V6]; [B1 B5 C1 P1 V6] # σك襾.ᢟ⒈
-B; xn--4xa49jux8r.xn--pbf212d; [B5 V6]; [B5 V6] # σك襾.ᢟ⒈
-B; xn--4xa49jux8r.xn--pbf519aba607b; [B1 B5 C1 V6]; [B1 B5 C1 V6] # σك襾.ᢟ⒈
-B; xn--3xa69jux8r.xn--pbf519aba607b; [B1 B5 C1 V6]; [B1 B5 C1 V6] # ςك襾.ᢟ⒈
-B; ᡆ𑓝.𞵆; [P1 V6]; [P1 V6]
-B; ᡆ𑓝.𞵆; [P1 V6]; [P1 V6]
-B; xn--57e0440k.xn--k86h; [V6]; [V6]
-T; \u0A4D𦍓\u1DEE。\u200C\u08BD񝹲; [B1 C1 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # ੍𦍓ᷮ.ࢽ
-N; \u0A4D𦍓\u1DEE。\u200C\u08BD񝹲; [B1 C1 P1 V5 V6]; [B1 C1 P1 V5 V6] # ੍𦍓ᷮ.ࢽ
-T; \u0A4D𦍓\u1DEE。\u200C\u08BD񝹲; [B1 C1 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # ੍𦍓ᷮ.ࢽ
-N; \u0A4D𦍓\u1DEE。\u200C\u08BD񝹲; [B1 C1 P1 V5 V6]; [B1 C1 P1 V5 V6] # ੍𦍓ᷮ.ࢽ
-B; xn--ybc461hph93b.xn--jzb29857e; [B1 B2 B3 V5 V6]; [B1 B2 B3 V5 V6] # ੍𦍓ᷮ.ࢽ
-B; xn--ybc461hph93b.xn--jzb740j1y45h; [B1 C1 V5 V6]; [B1 C1 V5 V6] # ੍𦍓ᷮ.ࢽ
-T; \u062E\u0748񅪪-.\u200C먿; [B1 B2 B3 C1 P1 V3 V6]; [B2 B3 P1 V3 V6] # خ݈-.먿
-N; \u062E\u0748񅪪-.\u200C먿; [B1 B2 B3 C1 P1 V3 V6]; [B1 B2 B3 C1 P1 V3 V6] # خ݈-.먿
-T; \u062E\u0748񅪪-.\u200C먿; [B1 B2 B3 C1 P1 V3 V6]; [B2 B3 P1 V3 V6] # خ݈-.먿
-N; \u062E\u0748񅪪-.\u200C먿; [B1 B2 B3 C1 P1 V3 V6]; [B1 B2 B3 C1 P1 V3 V6] # خ݈-.먿
-T; \u062E\u0748񅪪-.\u200C먿; [B1 B2 B3 C1 P1 V3 V6]; [B2 B3 P1 V3 V6] # خ݈-.먿
-N; \u062E\u0748񅪪-.\u200C먿; [B1 B2 B3 C1 P1 V3 V6]; [B1 B2 B3 C1 P1 V3 V6] # خ݈-.먿
-T; \u062E\u0748񅪪-.\u200C먿; [B1 B2 B3 C1 P1 V3 V6]; [B2 B3 P1 V3 V6] # خ݈-.먿
-N; \u062E\u0748񅪪-.\u200C먿; [B1 B2 B3 C1 P1 V3 V6]; [B1 B2 B3 C1 P1 V3 V6] # خ݈-.먿
-B; xn----dnc06f42153a.xn--v22b; [B2 B3 V3 V6]; [B2 B3 V3 V6] # خ݈-.먿
-B; xn----dnc06f42153a.xn--0ug1581d; [B1 B2 B3 C1 V3 V6]; [B1 B2 B3 C1 V3 V6] # خ݈-.먿
-B; 􋿦。ᠽ; [P1 V6]; [P1 V6]
-B; 􋿦。ᠽ; [P1 V6]; [P1 V6]
-B; xn--j890g.xn--w7e; [V6]; [V6]
-T; 嬃𝍌.\u200D\u0B44; [C2]; [V5] # 嬃𝍌.ୄ
-N; 嬃𝍌.\u200D\u0B44; [C2]; [C2] # 嬃𝍌.ୄ
-T; 嬃𝍌.\u200D\u0B44; [C2]; [V5] # 嬃𝍌.ୄ
-N; 嬃𝍌.\u200D\u0B44; [C2]; [C2] # 嬃𝍌.ୄ
-B; xn--b6s0078f.xn--0ic; [V5]; [V5] # 嬃𝍌.ୄ
-B; xn--b6s0078f.xn--0ic557h; [C2]; [C2] # 嬃𝍌.ୄ
-B; \u0602𝌪≯.𚋲򵁨; [B1 P1 V6]; [B1 P1 V6] # 𝌪≯.
-B; \u0602𝌪>\u0338.𚋲򵁨; [B1 P1 V6]; [B1 P1 V6] # 𝌪≯.
-B; \u0602𝌪≯.𚋲򵁨; [B1 P1 V6]; [B1 P1 V6] # 𝌪≯.
-B; \u0602𝌪>\u0338.𚋲򵁨; [B1 P1 V6]; [B1 P1 V6] # 𝌪≯.
-B; xn--kfb866llx01a.xn--wp1gm3570b; [B1 V6]; [B1 V6] # 𝌪≯.
-B; 򫾥\u08B7\u17CC\uA9C0.𞼠; [B5 P1 V6]; [B5 P1 V6] # ࢷ៌꧀.
-B; xn--dzb638ewm4i1iy1h.xn--3m7h; [B5 V6]; [B5 V6] # ࢷ៌꧀.
-T; \u200C.񟛤; [C1 P1 V6]; [P1 V6 A4_2] # .
-N; \u200C.񟛤; [C1 P1 V6]; [C1 P1 V6] # .
-B; .xn--q823a; [V6 A4_2]; [V6 A4_2]
-B; xn--0ug.xn--q823a; [C1 V6]; [C1 V6] # .
-B; 򺛕Ⴃ䠅.𐸑; [P1 V6]; [P1 V6]
-B; 򺛕Ⴃ䠅.𐸑; [P1 V6]; [P1 V6]
-B; 򺛕ⴃ䠅.𐸑; [P1 V6]; [P1 V6]
-B; xn--ukju77frl47r.xn--yl0d; [V6]; [V6]
-B; xn--bnd074zr557n.xn--yl0d; [V6]; [V6]
-B; 򺛕ⴃ䠅.𐸑; [P1 V6]; [P1 V6]
-B; \u1BF1𐹳𐹵𞤚。𝟨Ⴅ; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ᯱ𐹳𐹵𞤼.6Ⴅ
-B; \u1BF1𐹳𐹵𞤚。6Ⴅ; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ᯱ𐹳𐹵𞤼.6Ⴅ
-B; \u1BF1𐹳𐹵𞤼。6ⴅ; [B1 V5]; [B1 V5] # ᯱ𐹳𐹵𞤼.6ⴅ
-B; xn--zzfy954hga2415t.xn--6-kvs; [B1 V5]; [B1 V5] # ᯱ𐹳𐹵𞤼.6ⴅ
-B; xn--zzfy954hga2415t.xn--6-h0g; [B1 V5 V6]; [B1 V5 V6] # ᯱ𐹳𐹵𞤼.6Ⴅ
-B; \u1BF1𐹳𐹵𞤼。𝟨ⴅ; [B1 V5]; [B1 V5] # ᯱ𐹳𐹵𞤼.6ⴅ
-B; \u1BF1𐹳𐹵𞤚。6ⴅ; [B1 V5]; [B1 V5] # ᯱ𐹳𐹵𞤼.6ⴅ
-B; \u1BF1𐹳𐹵𞤚。𝟨ⴅ; [B1 V5]; [B1 V5] # ᯱ𐹳𐹵𞤼.6ⴅ
-B; -。︒; [P1 V3 V6]; [P1 V3 V6]
-B; -。。; [V3 A4_2]; [V3 A4_2]
-B; -..; [V3 A4_2]; [V3 A4_2]
-B; -.xn--y86c; [V3 V6]; [V3 V6]
-B; \u07DBჀ。-⁵--; [B1 B2 B3 P1 V2 V3 V6]; [B1 B2 B3 P1 V2 V3 V6] # ߛჀ.-5--
-B; \u07DBჀ。-5--; [B1 B2 B3 P1 V2 V3 V6]; [B1 B2 B3 P1 V2 V3 V6] # ߛჀ.-5--
-B; \u07DBⴠ。-5--; [B1 B2 B3 V2 V3]; [B1 B2 B3 V2 V3] # ߛⴠ.-5--
-B; xn--2sb691q.-5--; [B1 B2 B3 V2 V3]; [B1 B2 B3 V2 V3] # ߛⴠ.-5--
-B; xn--2sb866b.-5--; [B1 B2 B3 V2 V3 V6]; [B1 B2 B3 V2 V3 V6] # ߛჀ.-5--
-B; \u07DBⴠ。-⁵--; [B1 B2 B3 V2 V3]; [B1 B2 B3 V2 V3] # ߛⴠ.-5--
-B; ≯\uD8DD󠑕。𐹷𐹻≯𐷒; [B1 P1 V6]; [B1 P1 V6 A3] # ≯.𐹷𐹻≯
-B; >\u0338\uD8DD󠑕。𐹷𐹻>\u0338𐷒; [B1 P1 V6]; [B1 P1 V6 A3] # ≯.𐹷𐹻≯
-B; ≯\uD8DD󠑕。𐹷𐹻≯𐷒; [B1 P1 V6]; [B1 P1 V6 A3] # ≯.𐹷𐹻≯
-B; >\u0338\uD8DD󠑕。𐹷𐹻>\u0338𐷒; [B1 P1 V6]; [B1 P1 V6 A3] # ≯.𐹷𐹻≯
-B; ≯\uD8DD󠑕.xn--hdh8283gdoaqa; [B1 P1 V6]; [B1 P1 V6 A3] # ≯.𐹷𐹻≯
-B; >\u0338\uD8DD󠑕.xn--hdh8283gdoaqa; [B1 P1 V6]; [B1 P1 V6 A3] # ≯.𐹷𐹻≯
-B; >\u0338\uD8DD󠑕.XN--HDH8283GDOAQA; [B1 P1 V6]; [B1 P1 V6 A3] # ≯.𐹷𐹻≯
-B; ≯\uD8DD󠑕.XN--HDH8283GDOAQA; [B1 P1 V6]; [B1 P1 V6 A3] # ≯.𐹷𐹻≯
-B; ≯\uD8DD󠑕.Xn--Hdh8283gdoaqa; [B1 P1 V6]; [B1 P1 V6 A3] # ≯.𐹷𐹻≯
-B; >\u0338\uD8DD󠑕.Xn--Hdh8283gdoaqa; [B1 P1 V6]; [B1 P1 V6 A3] # ≯.𐹷𐹻≯
-T; ㍔\u08E6\u077C\u200D。\u0346򁳊𝅶\u0604; [B1 B5 B6 C2 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # ルーブルࣦݼ.͆
-N; ㍔\u08E6\u077C\u200D。\u0346򁳊𝅶\u0604; [B1 B5 B6 C2 P1 V5 V6]; [B1 B5 B6 C2 P1 V5 V6] # ルーブルࣦݼ.͆
-T; ルーブル\u08E6\u077C\u200D。\u0346򁳊𝅶\u0604; [B1 B5 B6 C2 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # ルーブルࣦݼ.͆
-N; ルーブル\u08E6\u077C\u200D。\u0346򁳊𝅶\u0604; [B1 B5 B6 C2 P1 V5 V6]; [B1 B5 B6 C2 P1 V5 V6] # ルーブルࣦݼ.͆
-T; ルーフ\u3099ル\u08E6\u077C\u200D。\u0346򁳊𝅶\u0604; [B1 B5 B6 C2 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # ルーブルࣦݼ.͆
-N; ルーフ\u3099ル\u08E6\u077C\u200D。\u0346򁳊𝅶\u0604; [B1 B5 B6 C2 P1 V5 V6]; [B1 B5 B6 C2 P1 V5 V6] # ルーブルࣦݼ.͆
-B; xn--dqb73el09fncab4h.xn--kua81ls548d3608b; [B1 B5 B6 V5 V6]; [B1 B5 B6 V5 V6] # ルーブルࣦݼ.͆
-B; xn--dqb73ec22c9kp8cb1j.xn--kua81ls548d3608b; [B1 B5 B6 C2 V5 V6]; [B1 B5 B6 C2 V5 V6] # ルーブルࣦݼ.͆
-T; \u200D.F; [C2]; [A4_2] # .f
-N; \u200D.F; [C2]; [C2] # .f
-T; \u200D.f; [C2]; [A4_2] # .f
-N; \u200D.f; [C2]; [C2] # .f
-B; .f; [A4_2]; [A4_2]
-B; xn--1ug.f; [C2]; [C2] # .f
-B; f; ;
-T; \u200D㨲。ß; [C2]; xn--9bm.ss # 㨲.ß
-N; \u200D㨲。ß; [C2]; [C2] # 㨲.ß
-T; \u200D㨲。ß; [C2]; xn--9bm.ss # 㨲.ß
-N; \u200D㨲。ß; [C2]; [C2] # 㨲.ß
-T; \u200D㨲。SS; [C2]; xn--9bm.ss # 㨲.ss
-N; \u200D㨲。SS; [C2]; [C2] # 㨲.ss
-T; \u200D㨲。ss; [C2]; xn--9bm.ss # 㨲.ss
-N; \u200D㨲。ss; [C2]; [C2] # 㨲.ss
-T; \u200D㨲。Ss; [C2]; xn--9bm.ss # 㨲.ss
-N; \u200D㨲。Ss; [C2]; [C2] # 㨲.ss
-B; xn--9bm.ss; 㨲.ss; xn--9bm.ss
-B; 㨲.ss; ; xn--9bm.ss
-B; 㨲.SS; 㨲.ss; xn--9bm.ss
-B; 㨲.Ss; 㨲.ss; xn--9bm.ss
-B; xn--1ug914h.ss; [C2]; [C2] # 㨲.ss
-B; xn--1ug914h.xn--zca; [C2]; [C2] # 㨲.ß
-T; \u200D㨲。SS; [C2]; xn--9bm.ss # 㨲.ss
-N; \u200D㨲。SS; [C2]; [C2] # 㨲.ss
-T; \u200D㨲。ss; [C2]; xn--9bm.ss # 㨲.ss
-N; \u200D㨲。ss; [C2]; [C2] # 㨲.ss
-T; \u200D㨲。Ss; [C2]; xn--9bm.ss # 㨲.ss
-N; \u200D㨲。Ss; [C2]; [C2] # 㨲.ss
-B; \u0605\u067E。\u08A8; [B1 P1 V6]; [B1 P1 V6] # پ.ࢨ
-B; \u0605\u067E。\u08A8; [B1 P1 V6]; [B1 P1 V6] # پ.ࢨ
-B; xn--nfb6v.xn--xyb; [B1 V6]; [B1 V6] # پ.ࢨ
-B; ⾑\u0753𞤁。𐹵\u0682; [B1 B5 B6]; [B1 B5 B6] # 襾ݓ𞤣.𐹵ڂ
-B; 襾\u0753𞤁。𐹵\u0682; [B1 B5 B6]; [B1 B5 B6] # 襾ݓ𞤣.𐹵ڂ
-B; 襾\u0753𞤣。𐹵\u0682; [B1 B5 B6]; [B1 B5 B6] # 襾ݓ𞤣.𐹵ڂ
-B; xn--6ob9577deqwl.xn--7ib5526k; [B1 B5 B6]; [B1 B5 B6] # 襾ݓ𞤣.𐹵ڂ
-B; ⾑\u0753𞤣。𐹵\u0682; [B1 B5 B6]; [B1 B5 B6] # 襾ݓ𞤣.𐹵ڂ
-T; 񦴻ς-\u20EB。\u0754-ꡛ; [B2 B3 B6 P1 V6]; [B2 B3 B6 P1 V6] # ς-⃫.ݔ-ꡛ
-N; 񦴻ς-\u20EB。\u0754-ꡛ; [B2 B3 B6 P1 V6]; [B2 B3 B6 P1 V6] # ς-⃫.ݔ-ꡛ
-T; 񦴻ς-\u20EB。\u0754-ꡛ; [B2 B3 B6 P1 V6]; [B2 B3 B6 P1 V6] # ς-⃫.ݔ-ꡛ
-N; 񦴻ς-\u20EB。\u0754-ꡛ; [B2 B3 B6 P1 V6]; [B2 B3 B6 P1 V6] # ς-⃫.ݔ-ꡛ
-B; 񦴻Σ-\u20EB。\u0754-ꡛ; [B2 B3 B6 P1 V6]; [B2 B3 B6 P1 V6] # σ-⃫.ݔ-ꡛ
-B; 񦴻σ-\u20EB。\u0754-ꡛ; [B2 B3 B6 P1 V6]; [B2 B3 B6 P1 V6] # σ-⃫.ݔ-ꡛ
-B; xn----zmb705tuo34l.xn----53c4874j; [B2 B3 B6 V6]; [B2 B3 B6 V6] # σ-⃫.ݔ-ꡛ
-B; xn----xmb015tuo34l.xn----53c4874j; [B2 B3 B6 V6]; [B2 B3 B6 V6] # ς-⃫.ݔ-ꡛ
-B; 񦴻Σ-\u20EB。\u0754-ꡛ; [B2 B3 B6 P1 V6]; [B2 B3 B6 P1 V6] # σ-⃫.ݔ-ꡛ
-B; 񦴻σ-\u20EB。\u0754-ꡛ; [B2 B3 B6 P1 V6]; [B2 B3 B6 P1 V6] # σ-⃫.ݔ-ꡛ
-T; \u200D.􀸨; [C2 P1 V6]; [P1 V6 A4_2] # .
-N; \u200D.􀸨; [C2 P1 V6]; [C2 P1 V6] # .
-T; \u200D.􀸨; [C2 P1 V6]; [P1 V6 A4_2] # .
-N; \u200D.􀸨; [C2 P1 V6]; [C2 P1 V6] # .
-B; .xn--h327f; [V6 A4_2]; [V6 A4_2]
-B; xn--1ug.xn--h327f; [C2 V6]; [C2 V6] # .
-B; 񣭻񌥁。≠𝟲; [P1 V6]; [P1 V6]
-B; 񣭻񌥁。=\u0338𝟲; [P1 V6]; [P1 V6]
-B; 񣭻񌥁。≠6; [P1 V6]; [P1 V6]
-B; 񣭻񌥁。=\u03386; [P1 V6]; [P1 V6]
-B; xn--h79w4z99a.xn--6-tfo; [V6]; [V6]
-T; 󠅊ᡭ\u200D.𐥡; [B6 C2 P1 V6]; [P1 V6] # ᡭ.
-N; 󠅊ᡭ\u200D.𐥡; [B6 C2 P1 V6]; [B6 C2 P1 V6] # ᡭ.
-B; xn--98e.xn--om9c; [V6]; [V6]
-B; xn--98e810b.xn--om9c; [B6 C2 V6]; [B6 C2 V6] # ᡭ.
-B; \u0C40\u0855𐥛𑄴.󭰵; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ీࡕ𑄴.
-B; \u0C40\u0855𐥛𑄴.󭰵; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ీࡕ𑄴.
-B; xn--kwb91r5112avtg.xn--o580f; [B1 V5 V6]; [B1 V5 V6] # ీࡕ𑄴.
-T; 𞤮。𑇊\u200C≯\u1CE6; [B1 C1 P1 V5 V6]; [B1 P1 V5 V6] # 𞤮.𑇊≯᳦
-N; 𞤮。𑇊\u200C≯\u1CE6; [B1 C1 P1 V5 V6]; [B1 C1 P1 V5 V6] # 𞤮.𑇊≯᳦
-T; 𞤮。𑇊\u200C>\u0338\u1CE6; [B1 C1 P1 V5 V6]; [B1 P1 V5 V6] # 𞤮.𑇊≯᳦
-N; 𞤮。𑇊\u200C>\u0338\u1CE6; [B1 C1 P1 V5 V6]; [B1 C1 P1 V5 V6] # 𞤮.𑇊≯᳦
-T; 𞤌。𑇊\u200C>\u0338\u1CE6; [B1 C1 P1 V5 V6]; [B1 P1 V5 V6] # 𞤮.𑇊≯᳦
-N; 𞤌。𑇊\u200C>\u0338\u1CE6; [B1 C1 P1 V5 V6]; [B1 C1 P1 V5 V6] # 𞤮.𑇊≯᳦
-T; 𞤌。𑇊\u200C≯\u1CE6; [B1 C1 P1 V5 V6]; [B1 P1 V5 V6] # 𞤮.𑇊≯᳦
-N; 𞤌。𑇊\u200C≯\u1CE6; [B1 C1 P1 V5 V6]; [B1 C1 P1 V5 V6] # 𞤮.𑇊≯᳦
-B; xn--me6h.xn--z6fz8ueq2v; [B1 V5 V6]; [B1 V5 V6] # 𞤮.𑇊≯᳦
-B; xn--me6h.xn--z6f16kn9b2642b; [B1 C1 V5 V6]; [B1 C1 V5 V6] # 𞤮.𑇊≯᳦
-B; 󠄀𝟕.𞤌񛗓Ⴉ; [B1 B2 B3 P1 V6]; [B1 B2 B3 P1 V6]
-B; 󠄀7.𞤌񛗓Ⴉ; [B1 B2 B3 P1 V6]; [B1 B2 B3 P1 V6]
-B; 󠄀7.𞤮񛗓ⴉ; [B1 B2 B3 P1 V6]; [B1 B2 B3 P1 V6]
-B; 7.xn--0kjz523lv1vv; [B1 B2 B3 V6]; [B1 B2 B3 V6]
-B; 7.xn--hnd3403vv1vv; [B1 B2 B3 V6]; [B1 B2 B3 V6]
-B; 󠄀𝟕.𞤮񛗓ⴉ; [B1 B2 B3 P1 V6]; [B1 B2 B3 P1 V6]
-B; 󠄀7.𞤌񛗓ⴉ; [B1 B2 B3 P1 V6]; [B1 B2 B3 P1 V6]
-B; 󠄀𝟕.𞤌񛗓ⴉ; [B1 B2 B3 P1 V6]; [B1 B2 B3 P1 V6]
-B; 閃9𝩍。Ↄ\u0669\u08B1\u0B4D; [B5 B6 P1 V6]; [B5 B6 P1 V6] # 閃9𝩍.Ↄ٩ࢱ୍
-B; 閃9𝩍。ↄ\u0669\u08B1\u0B4D; [B5 B6]; [B5 B6] # 閃9𝩍.ↄ٩ࢱ୍
-B; xn--9-3j6dk517f.xn--iib28ij3c4t9a; [B5 B6]; [B5 B6] # 閃9𝩍.ↄ٩ࢱ୍
-B; xn--9-3j6dk517f.xn--iib28ij3c0t9a; [B5 B6 V6]; [B5 B6 V6] # 閃9𝩍.Ↄ٩ࢱ୍
-B; \uAAF6ᢏ\u0E3A2.𐋢\u0745\u0F9F︒; [P1 V5 V6]; [P1 V5 V6] # ꫶ᢏฺ2.𐋢݅ྟ︒
-B; \uAAF6ᢏ\u0E3A2.𐋢\u0745\u0F9F。; [V5]; [V5] # ꫶ᢏฺ2.𐋢݅ྟ.
-B; xn--2-2zf840fk16m.xn--sob093b2m7s.; [V5]; [V5] # ꫶ᢏฺ2.𐋢݅ྟ.
-B; xn--2-2zf840fk16m.xn--sob093bj62sz9d; [V5 V6]; [V5 V6] # ꫶ᢏฺ2.𐋢݅ྟ︒
-B; 󅴧。≠-󠙄⾛; [P1 V6]; [P1 V6]
-B; 󅴧。=\u0338-󠙄⾛; [P1 V6]; [P1 V6]
-B; 󅴧。≠-󠙄走; [P1 V6]; [P1 V6]
-B; 󅴧。=\u0338-󠙄走; [P1 V6]; [P1 V6]
-B; xn--gm57d.xn----tfo4949b3664m; [V6]; [V6]
-B; \u076E\u0604Ⴊ。-≠\u1160; [B1 B2 B3 P1 V3 V6]; [B1 B2 B3 P1 V3 V6] # ݮႪ.-≠
-B; \u076E\u0604Ⴊ。-=\u0338\u1160; [B1 B2 B3 P1 V3 V6]; [B1 B2 B3 P1 V3 V6] # ݮႪ.-≠
-B; \u076E\u0604ⴊ。-=\u0338\u1160; [B1 B2 B3 P1 V3 V6]; [B1 B2 B3 P1 V3 V6] # ݮⴊ.-≠
-B; \u076E\u0604ⴊ。-≠\u1160; [B1 B2 B3 P1 V3 V6]; [B1 B2 B3 P1 V3 V6] # ݮⴊ.-≠
-B; xn--mfb73ek93f.xn----5bh589i; [B1 B2 B3 V3 V6]; [B1 B2 B3 V3 V6] # ݮⴊ.-≠
-B; xn--mfb73ex6r.xn----5bh589i; [B1 B2 B3 V3 V6]; [B1 B2 B3 V3 V6] # ݮႪ.-≠
-T; \uFB4F𐹧𝟒≯。\u200C; [B1 B3 B4 C1 P1 V6]; [B3 B4 P1 V6] # אל𐹧4≯.
-N; \uFB4F𐹧𝟒≯。\u200C; [B1 B3 B4 C1 P1 V6]; [B1 B3 B4 C1 P1 V6] # אל𐹧4≯.
-T; \uFB4F𐹧𝟒>\u0338。\u200C; [B1 B3 B4 C1 P1 V6]; [B3 B4 P1 V6] # אל𐹧4≯.
-N; \uFB4F𐹧𝟒>\u0338。\u200C; [B1 B3 B4 C1 P1 V6]; [B1 B3 B4 C1 P1 V6] # אל𐹧4≯.
-T; \u05D0\u05DC𐹧4≯。\u200C; [B1 B3 B4 C1 P1 V6]; [B3 B4 P1 V6] # אל𐹧4≯.
-N; \u05D0\u05DC𐹧4≯。\u200C; [B1 B3 B4 C1 P1 V6]; [B1 B3 B4 C1 P1 V6] # אל𐹧4≯.
-T; \u05D0\u05DC𐹧4>\u0338。\u200C; [B1 B3 B4 C1 P1 V6]; [B3 B4 P1 V6] # אל𐹧4≯.
-N; \u05D0\u05DC𐹧4>\u0338。\u200C; [B1 B3 B4 C1 P1 V6]; [B1 B3 B4 C1 P1 V6] # אל𐹧4≯.
-B; xn--4-zhc0by36txt0w.; [B3 B4 V6]; [B3 B4 V6] # אל𐹧4≯.
-B; xn--4-zhc0by36txt0w.xn--0ug; [B1 B3 B4 C1 V6]; [B1 B3 B4 C1 V6] # אל𐹧4≯.
-B; 𝟎。甯; 0.甯; 0.xn--qny
-B; 0。甯; 0.甯; 0.xn--qny
-B; 0.xn--qny; 0.甯; 0.xn--qny
-B; 0.甯; ; 0.xn--qny
-B; -⾆.\uAAF6; [V3 V5]; [V3 V5] # -舌.꫶
-B; -舌.\uAAF6; [V3 V5]; [V3 V5] # -舌.꫶
-B; xn----ef8c.xn--2v9a; [V3 V5]; [V3 V5] # -舌.꫶
-B; -。ᢘ; [V3]; [V3]
-B; -。ᢘ; [V3]; [V3]
-B; -.xn--ibf; [V3]; [V3]
-B; 🂴Ⴋ.≮; [P1 V6]; [P1 V6]
-B; 🂴Ⴋ.<\u0338; [P1 V6]; [P1 V6]
-B; 🂴ⴋ.<\u0338; [P1 V6]; [P1 V6]
-B; 🂴ⴋ.≮; [P1 V6]; [P1 V6]
-B; xn--2kj7565l.xn--gdh; [V6]; [V6]
-B; xn--jnd1986v.xn--gdh; [V6]; [V6]
-T; 璼𝨭。\u200C󠇟; [C1]; xn--gky8837e. # 璼𝨭.
-N; 璼𝨭。\u200C󠇟; [C1]; [C1] # 璼𝨭.
-T; 璼𝨭。\u200C󠇟; [C1]; xn--gky8837e. # 璼𝨭.
-N; 璼𝨭。\u200C󠇟; [C1]; [C1] # 璼𝨭.
-B; xn--gky8837e.; 璼𝨭.; xn--gky8837e.
-B; 璼𝨭.; ; xn--gky8837e.
-B; xn--gky8837e.xn--0ug; [C1]; [C1] # 璼𝨭.
-B; \u06698񂍽。-5🞥; [B1 P1 V3 V6]; [B1 P1 V3 V6] # ٩8.-5🞥
-B; \u06698񂍽。-5🞥; [B1 P1 V3 V6]; [B1 P1 V3 V6] # ٩8.-5🞥
-B; xn--8-qqc97891f.xn---5-rp92a; [B1 V3 V6]; [B1 V3 V6] # ٩8.-5🞥
-T; \u200C.\u200C; [C1]; [A4_2] # .
-N; \u200C.\u200C; [C1]; [C1] # .
-B; xn--0ug.xn--0ug; [C1]; [C1] # .
-T; \u200D튛.\u0716; [B1 C2]; xn--157b.xn--gnb # 튛.ܖ
-N; \u200D튛.\u0716; [B1 C2]; [B1 C2] # 튛.ܖ
-T; \u200D튛.\u0716; [B1 C2]; xn--157b.xn--gnb # 튛.ܖ
-N; \u200D튛.\u0716; [B1 C2]; [B1 C2] # 튛.ܖ
-B; xn--157b.xn--gnb; 튛.\u0716; xn--157b.xn--gnb # 튛.ܖ
-B; 튛.\u0716; ; xn--157b.xn--gnb # 튛.ܖ
-B; 튛.\u0716; 튛.\u0716; xn--157b.xn--gnb # 튛.ܖ
-B; xn--1ug4441e.xn--gnb; [B1 C2]; [B1 C2] # 튛.ܖ
-B; ᡋ𐹰𞽳.\u0779ⴞ; [B2 B3 B5 B6 P1 V6]; [B2 B3 B5 B6 P1 V6] # ᡋ𐹰.ݹⴞ
-B; ᡋ𐹰𞽳.\u0779Ⴞ; [B2 B3 B5 B6 P1 V6]; [B2 B3 B5 B6 P1 V6] # ᡋ𐹰.ݹႾ
-B; xn--b8e0417jocvf.xn--9pb068b; [B2 B3 B5 B6 V6]; [B2 B3 B5 B6 V6] # ᡋ𐹰.ݹႾ
-B; xn--b8e0417jocvf.xn--9pb883q; [B2 B3 B5 B6 V6]; [B2 B3 B5 B6 V6] # ᡋ𐹰.ݹⴞ
-B; 𐷃\u0662𝅻𝟧.𐹮𐹬Ⴇ; [B1 B4 P1 V6]; [B1 B4 P1 V6] # ٢𝅻5.𐹮𐹬Ⴇ
-B; 𐷃\u0662𝅻5.𐹮𐹬Ⴇ; [B1 B4 P1 V6]; [B1 B4 P1 V6] # ٢𝅻5.𐹮𐹬Ⴇ
-B; 𐷃\u0662𝅻5.𐹮𐹬ⴇ; [B1 B4 P1 V6]; [B1 B4 P1 V6] # ٢𝅻5.𐹮𐹬ⴇ
-B; xn--5-cqc8833rhv7f.xn--ykjz523efa; [B1 B4 V6]; [B1 B4 V6] # ٢𝅻5.𐹮𐹬ⴇ
-B; xn--5-cqc8833rhv7f.xn--fnd3401kfa; [B1 B4 V6]; [B1 B4 V6] # ٢𝅻5.𐹮𐹬Ⴇ
-B; 𐷃\u0662𝅻𝟧.𐹮𐹬ⴇ; [B1 B4 P1 V6]; [B1 B4 P1 V6] # ٢𝅻5.𐹮𐹬ⴇ
-B; Ⴗ.\u05C2𑄴\uA9B7񘃨; [P1 V5 V6]; [P1 V5 V6] # Ⴗ.𑄴ׂꦷ
-B; Ⴗ.𑄴\u05C2\uA9B7񘃨; [P1 V5 V6]; [P1 V5 V6] # Ⴗ.𑄴ׂꦷ
-B; Ⴗ.𑄴\u05C2\uA9B7񘃨; [P1 V5 V6]; [P1 V5 V6] # Ⴗ.𑄴ׂꦷ
-B; ⴗ.𑄴\u05C2\uA9B7񘃨; [P1 V5 V6]; [P1 V5 V6] # ⴗ.𑄴ׂꦷ
-B; xn--flj.xn--qdb0605f14ycrms3c; [V5 V6]; [V5 V6] # ⴗ.𑄴ׂꦷ
-B; xn--vnd.xn--qdb0605f14ycrms3c; [V5 V6]; [V5 V6] # Ⴗ.𑄴ׂꦷ
-B; ⴗ.𑄴\u05C2\uA9B7񘃨; [P1 V5 V6]; [P1 V5 V6] # ⴗ.𑄴ׂꦷ
-B; ⴗ.\u05C2𑄴\uA9B7񘃨; [P1 V5 V6]; [P1 V5 V6] # ⴗ.𑄴ׂꦷ
-B; 𝟾𾤘.򇕛\u066C; [B1 B5 B6 P1 V6]; [B1 B5 B6 P1 V6] # 8.٬
-B; 8𾤘.򇕛\u066C; [B1 B5 B6 P1 V6]; [B1 B5 B6 P1 V6] # 8.٬
-B; xn--8-kh23b.xn--lib78461i; [B1 B5 B6 V6]; [B1 B5 B6 V6] # 8.٬
-B; ⒈酫︒。\u08D6; [P1 V5 V6]; [P1 V5 V6] # ⒈酫︒.ࣖ
-B; 1.酫。。\u08D6; [V5 A4_2]; [V5 A4_2] # 1.酫..ࣖ
-B; 1.xn--8j4a..xn--8zb; [V5 A4_2]; [V5 A4_2] # 1.酫..ࣖ
-B; xn--tsh4490bfe8c.xn--8zb; [V5 V6]; [V5 V6] # ⒈酫︒.ࣖ
-T; \u2DE3\u200C≮\u1A6B.\u200C\u0E3A; [C1 P1 V5 V6]; [P1 V5 V6] # ⷣ≮ᩫ.ฺ
-N; \u2DE3\u200C≮\u1A6B.\u200C\u0E3A; [C1 P1 V5 V6]; [C1 P1 V5 V6] # ⷣ≮ᩫ.ฺ
-T; \u2DE3\u200C<\u0338\u1A6B.\u200C\u0E3A; [C1 P1 V5 V6]; [P1 V5 V6] # ⷣ≮ᩫ.ฺ
-N; \u2DE3\u200C<\u0338\u1A6B.\u200C\u0E3A; [C1 P1 V5 V6]; [C1 P1 V5 V6] # ⷣ≮ᩫ.ฺ
-B; xn--uof548an0j.xn--o4c; [V5 V6]; [V5 V6] # ⷣ≮ᩫ.ฺ
-B; xn--uof63xk4bf3s.xn--o4c732g; [C1 V5 V6]; [C1 V5 V6] # ⷣ≮ᩫ.ฺ
-T; 𞪂。ႷႽ¹\u200D; [B6 C2 P1 V6]; [P1 V6] # .ႷႽ1
-N; 𞪂。ႷႽ¹\u200D; [B6 C2 P1 V6]; [B6 C2 P1 V6] # .ႷႽ1
-T; 𞪂。ႷႽ1\u200D; [B6 C2 P1 V6]; [P1 V6] # .ႷႽ1
-N; 𞪂。ႷႽ1\u200D; [B6 C2 P1 V6]; [B6 C2 P1 V6] # .ႷႽ1
-T; 𞪂。ⴗⴝ1\u200D; [B6 C2 P1 V6]; [P1 V6] # .ⴗⴝ1
-N; 𞪂。ⴗⴝ1\u200D; [B6 C2 P1 V6]; [B6 C2 P1 V6] # .ⴗⴝ1
-T; 𞪂。Ⴗⴝ1\u200D; [B6 C2 P1 V6]; [P1 V6] # .Ⴗⴝ1
-N; 𞪂。Ⴗⴝ1\u200D; [B6 C2 P1 V6]; [B6 C2 P1 V6] # .Ⴗⴝ1
-B; xn--co6h.xn--1-h1g429s; [V6]; [V6]
-B; xn--co6h.xn--1-h1g398iewm; [B6 C2 V6]; [B6 C2 V6] # .Ⴗⴝ1
-B; xn--co6h.xn--1-kwssa; [V6]; [V6]
-B; xn--co6h.xn--1-ugn710dya; [B6 C2 V6]; [B6 C2 V6] # .ⴗⴝ1
-B; xn--co6h.xn--1-h1gs; [V6]; [V6]
-B; xn--co6h.xn--1-h1gs597m; [B6 C2 V6]; [B6 C2 V6] # .ႷႽ1
-T; 𞪂。ⴗⴝ¹\u200D; [B6 C2 P1 V6]; [P1 V6] # .ⴗⴝ1
-N; 𞪂。ⴗⴝ¹\u200D; [B6 C2 P1 V6]; [B6 C2 P1 V6] # .ⴗⴝ1
-T; 𞪂。Ⴗⴝ¹\u200D; [B6 C2 P1 V6]; [P1 V6] # .Ⴗⴝ1
-N; 𞪂。Ⴗⴝ¹\u200D; [B6 C2 P1 V6]; [B6 C2 P1 V6] # .Ⴗⴝ1
-B; 𑄴𑄳2.𞳿󠀳-; [B1 B3 P1 V3 V5 V6]; [B1 B3 P1 V3 V5 V6]
-B; xn--2-h87ic.xn----s39r33498d; [B1 B3 V3 V5 V6]; [B1 B3 V3 V5 V6]
-B; 󠕲󟶶\u0665。񀁁𑄳𞤃\u0710; [B1 B5 B6 P1 V6]; [B1 B5 B6 P1 V6] # ٥.𑄳𞤥ܐ
-B; 󠕲󟶶\u0665。񀁁𑄳𞤃\u0710; [B1 B5 B6 P1 V6]; [B1 B5 B6 P1 V6] # ٥.𑄳𞤥ܐ
-B; 󠕲󟶶\u0665。񀁁𑄳𞤥\u0710; [B1 B5 B6 P1 V6]; [B1 B5 B6 P1 V6] # ٥.𑄳𞤥ܐ
-B; xn--eib57614py3ea.xn--9mb5737kqnpfzkwr; [B1 B5 B6 V6]; [B1 B5 B6 V6] # ٥.𑄳𞤥ܐ
-B; 󠕲󟶶\u0665。񀁁𑄳𞤥\u0710; [B1 B5 B6 P1 V6]; [B1 B5 B6 P1 V6] # ٥.𑄳𞤥ܐ
-T; \u0720򲠽𐹢\u17BB。ςᢈ🝭\u200C; [B2 B6 C1 P1 V6]; [B2 B6 P1 V6] # ܠ𐹢ុ.ςᢈ🝭
-N; \u0720򲠽𐹢\u17BB。ςᢈ🝭\u200C; [B2 B6 C1 P1 V6]; [B2 B6 C1 P1 V6] # ܠ𐹢ុ.ςᢈ🝭
-T; \u0720򲠽𐹢\u17BB。ςᢈ🝭\u200C; [B2 B6 C1 P1 V6]; [B2 B6 P1 V6] # ܠ𐹢ុ.ςᢈ🝭
-N; \u0720򲠽𐹢\u17BB。ςᢈ🝭\u200C; [B2 B6 C1 P1 V6]; [B2 B6 C1 P1 V6] # ܠ𐹢ុ.ςᢈ🝭
-T; \u0720򲠽𐹢\u17BB。Σᢈ🝭\u200C; [B2 B6 C1 P1 V6]; [B2 B6 P1 V6] # ܠ𐹢ុ.σᢈ🝭
-N; \u0720򲠽𐹢\u17BB。Σᢈ🝭\u200C; [B2 B6 C1 P1 V6]; [B2 B6 C1 P1 V6] # ܠ𐹢ុ.σᢈ🝭
-T; \u0720򲠽𐹢\u17BB。σᢈ🝭\u200C; [B2 B6 C1 P1 V6]; [B2 B6 P1 V6] # ܠ𐹢ុ.σᢈ🝭
-N; \u0720򲠽𐹢\u17BB。σᢈ🝭\u200C; [B2 B6 C1 P1 V6]; [B2 B6 C1 P1 V6] # ܠ𐹢ុ.σᢈ🝭
-B; xn--qnb616fis0qzt36f.xn--4xa847hli46a; [B2 B6 V6]; [B2 B6 V6] # ܠ𐹢ុ.σᢈ🝭
-B; xn--qnb616fis0qzt36f.xn--4xa847h6ofgl44c; [B2 B6 C1 V6]; [B2 B6 C1 V6] # ܠ𐹢ុ.σᢈ🝭
-B; xn--qnb616fis0qzt36f.xn--3xa057h6ofgl44c; [B2 B6 C1 V6]; [B2 B6 C1 V6] # ܠ𐹢ុ.ςᢈ🝭
-T; \u0720򲠽𐹢\u17BB。Σᢈ🝭\u200C; [B2 B6 C1 P1 V6]; [B2 B6 P1 V6] # ܠ𐹢ុ.σᢈ🝭
-N; \u0720򲠽𐹢\u17BB。Σᢈ🝭\u200C; [B2 B6 C1 P1 V6]; [B2 B6 C1 P1 V6] # ܠ𐹢ុ.σᢈ🝭
-T; \u0720򲠽𐹢\u17BB。σᢈ🝭\u200C; [B2 B6 C1 P1 V6]; [B2 B6 P1 V6] # ܠ𐹢ុ.σᢈ🝭
-N; \u0720򲠽𐹢\u17BB。σᢈ🝭\u200C; [B2 B6 C1 P1 V6]; [B2 B6 C1 P1 V6] # ܠ𐹢ុ.σᢈ🝭
-T; \u200D--≮。𐹧; [B1 C2 P1 V6]; [B1 P1 V3 V6] # --≮.𐹧
-N; \u200D--≮。𐹧; [B1 C2 P1 V6]; [B1 C2 P1 V6] # --≮.𐹧
-T; \u200D--<\u0338。𐹧; [B1 C2 P1 V6]; [B1 P1 V3 V6] # --≮.𐹧
-N; \u200D--<\u0338。𐹧; [B1 C2 P1 V6]; [B1 C2 P1 V6] # --≮.𐹧
-B; xn-----ujv.xn--fo0d; [B1 V3 V6]; [B1 V3 V6]
-B; xn-----l1tz1k.xn--fo0d; [B1 C2 V6]; [B1 C2 V6] # --≮.𐹧
-B; \uA806。𻚏\u0FB0⒕; [P1 V5 V6]; [P1 V5 V6] # ꠆.ྰ⒕
-B; \uA806。𻚏\u0FB014.; [P1 V5 V6]; [P1 V5 V6] # ꠆.ྰ14.
-B; xn--l98a.xn--14-jsj57880f.; [V5 V6]; [V5 V6] # ꠆.ྰ14.
-B; xn--l98a.xn--dgd218hhp28d; [V5 V6]; [V5 V6] # ꠆.ྰ⒕
-B; 򮉂\u06BC.𑆺\u0669; [B1 B5 B6 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # ڼ.𑆺٩
-B; 򮉂\u06BC.𑆺\u0669; [B1 B5 B6 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # ڼ.𑆺٩
-B; xn--vkb92243l.xn--iib9797k; [B1 B5 B6 V5 V6]; [B1 B5 B6 V5 V6] # ڼ.𑆺٩
-B; 󠁎\u06D0-。𞤴; [B1 P1 V3 V6]; [B1 P1 V3 V6] # ې-.𞤴
-B; 󠁎\u06D0-。𞤒; [B1 P1 V3 V6]; [B1 P1 V3 V6] # ې-.𞤴
-B; xn----mwc72685y.xn--se6h; [B1 V3 V6]; [B1 V3 V6] # ې-.𞤴
-T; 𝟠4󠇗𝈻.\u200D𐋵⛧\u200D; [C2]; xn--84-s850a.xn--59h6326e # 84𝈻.𐋵⛧
-N; 𝟠4󠇗𝈻.\u200D𐋵⛧\u200D; [C2]; [C2] # 84𝈻.𐋵⛧
-T; 84󠇗𝈻.\u200D𐋵⛧\u200D; [C2]; xn--84-s850a.xn--59h6326e # 84𝈻.𐋵⛧
-N; 84󠇗𝈻.\u200D𐋵⛧\u200D; [C2]; [C2] # 84𝈻.𐋵⛧
-B; xn--84-s850a.xn--59h6326e; 84𝈻.𐋵⛧; xn--84-s850a.xn--59h6326e; NV8
-B; 84𝈻.𐋵⛧; ; xn--84-s850a.xn--59h6326e; NV8
-B; xn--84-s850a.xn--1uga573cfq1w; [C2]; [C2] # 84𝈻.𐋵⛧
-B; -\u0601。ᡪ; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -.ᡪ
-B; -\u0601。ᡪ; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -.ᡪ
-B; xn----tkc.xn--68e; [B1 V3 V6]; [B1 V3 V6] # -.ᡪ
-T; ≮𝟕.謖ß≯; [P1 V6]; [P1 V6]
-N; ≮𝟕.謖ß≯; [P1 V6]; [P1 V6]
-T; <\u0338𝟕.謖ß>\u0338; [P1 V6]; [P1 V6]
-N; <\u0338𝟕.謖ß>\u0338; [P1 V6]; [P1 V6]
-T; ≮7.謖ß≯; [P1 V6]; [P1 V6]
-N; ≮7.謖ß≯; [P1 V6]; [P1 V6]
-T; <\u03387.謖ß>\u0338; [P1 V6]; [P1 V6]
-N; <\u03387.謖ß>\u0338; [P1 V6]; [P1 V6]
-B; <\u03387.謖SS>\u0338; [P1 V6]; [P1 V6]
-B; ≮7.謖SS≯; [P1 V6]; [P1 V6]
-B; ≮7.謖ss≯; [P1 V6]; [P1 V6]
-B; <\u03387.謖ss>\u0338; [P1 V6]; [P1 V6]
-B; <\u03387.謖Ss>\u0338; [P1 V6]; [P1 V6]
-B; ≮7.謖Ss≯; [P1 V6]; [P1 V6]
-B; xn--7-mgo.xn--ss-xjvv174c; [V6]; [V6]
-B; xn--7-mgo.xn--zca892oly5e; [V6]; [V6]
-B; <\u0338𝟕.謖SS>\u0338; [P1 V6]; [P1 V6]
-B; ≮𝟕.謖SS≯; [P1 V6]; [P1 V6]
-B; ≮𝟕.謖ss≯; [P1 V6]; [P1 V6]
-B; <\u0338𝟕.謖ss>\u0338; [P1 V6]; [P1 V6]
-B; <\u0338𝟕.謖Ss>\u0338; [P1 V6]; [P1 V6]
-B; ≮𝟕.謖Ss≯; [P1 V6]; [P1 V6]
-B; 朶Ⴉ𞪡.𝨽\u0825📻-; [B1 B5 B6 P1 V3 V5 V6]; [B1 B5 B6 P1 V3 V5 V6] # 朶Ⴉ.𝨽ࠥ📻-
-B; 朶ⴉ𞪡.𝨽\u0825📻-; [B1 B5 B6 P1 V3 V5 V6]; [B1 B5 B6 P1 V3 V5 V6] # 朶ⴉ.𝨽ࠥ📻-
-B; xn--0kjz47pd57t.xn----3gd37096apmwa; [B1 B5 B6 V3 V5 V6]; [B1 B5 B6 V3 V5 V6] # 朶ⴉ.𝨽ࠥ📻-
-B; xn--hnd7245bd56p.xn----3gd37096apmwa; [B1 B5 B6 V3 V5 V6]; [B1 B5 B6 V3 V5 V6] # 朶Ⴉ.𝨽ࠥ📻-
-T; 𐤎。󑿰\u200C≮\u200D; [B6 C1 C2 P1 V6]; [B6 P1 V6] # 𐤎.≮
-N; 𐤎。󑿰\u200C≮\u200D; [B6 C1 C2 P1 V6]; [B6 C1 C2 P1 V6] # 𐤎.≮
-T; 𐤎。󑿰\u200C<\u0338\u200D; [B6 C1 C2 P1 V6]; [B6 P1 V6] # 𐤎.≮
-N; 𐤎。󑿰\u200C<\u0338\u200D; [B6 C1 C2 P1 V6]; [B6 C1 C2 P1 V6] # 𐤎.≮
-B; xn--bk9c.xn--gdhx6802k; [B6 V6]; [B6 V6]
-B; xn--bk9c.xn--0ugc04p2u638c; [B6 C1 C2 V6]; [B6 C1 C2 V6] # 𐤎.≮
-T; 񭜎⒈。\u200C𝟤; [C1 P1 V6]; [P1 V6] # ⒈.2
-N; 񭜎⒈。\u200C𝟤; [C1 P1 V6]; [C1 P1 V6] # ⒈.2
-T; 񭜎1.。\u200C2; [C1 P1 V6 A4_2]; [P1 V6 A4_2] # 1..2
-N; 񭜎1.。\u200C2; [C1 P1 V6 A4_2]; [C1 P1 V6 A4_2] # 1..2
-B; xn--1-ex54e..2; [V6 A4_2]; [V6 A4_2]
-B; xn--1-ex54e..xn--2-rgn; [C1 V6 A4_2]; [C1 V6 A4_2] # 1..2
-B; xn--tsh94183d.2; [V6]; [V6]
-B; xn--tsh94183d.xn--2-rgn; [C1 V6]; [C1 V6] # ⒈.2
-T; 󠟊𐹤\u200D.𐹳󙄵𐹶; [B1 C2 P1 V6]; [B1 P1 V6] # 𐹤.𐹳𐹶
-N; 󠟊𐹤\u200D.𐹳󙄵𐹶; [B1 C2 P1 V6]; [B1 C2 P1 V6] # 𐹤.𐹳𐹶
-T; 󠟊𐹤\u200D.𐹳󙄵𐹶; [B1 C2 P1 V6]; [B1 P1 V6] # 𐹤.𐹳𐹶
-N; 󠟊𐹤\u200D.𐹳󙄵𐹶; [B1 C2 P1 V6]; [B1 C2 P1 V6] # 𐹤.𐹳𐹶
-B; xn--co0d98977c.xn--ro0dga22807v; [B1 V6]; [B1 V6]
-B; xn--1ugy994g7k93g.xn--ro0dga22807v; [B1 C2 V6]; [B1 C2 V6] # 𐹤.𐹳𐹶
-B; 𞤴𐹻𑓂𐭝.\u094D\uFE07􉛯; [B1 P1 V5 V6]; [B1 P1 V5 V6] # 𞤴𐹻𑓂𐭝.्
-B; 𞤴𐹻𑓂𐭝.\u094D\uFE07􉛯; [B1 P1 V5 V6]; [B1 P1 V5 V6] # 𞤴𐹻𑓂𐭝.्
-B; 𞤒𐹻𑓂𐭝.\u094D\uFE07􉛯; [B1 P1 V5 V6]; [B1 P1 V5 V6] # 𞤴𐹻𑓂𐭝.्
-B; xn--609c96c09grp2w.xn--n3b28708s; [B1 V5 V6]; [B1 V5 V6] # 𞤴𐹻𑓂𐭝.्
-B; 𞤒𐹻𑓂𐭝.\u094D\uFE07􉛯; [B1 P1 V5 V6]; [B1 P1 V5 V6] # 𞤴𐹻𑓂𐭝.्
-B; \u0668。𐹠𐹽񗮶; [B1 P1 V6]; [B1 P1 V6] # ٨.𐹠𐹽
-B; \u0668。𐹠𐹽񗮶; [B1 P1 V6]; [B1 P1 V6] # ٨.𐹠𐹽
-B; xn--hib.xn--7n0d2bu9196b; [B1 V6]; [B1 V6] # ٨.𐹠𐹽
-B; \u1160񍀜.8򶾵\u069C; [B1 P1 V6]; [B1 P1 V6] # .8ڜ
-B; xn--psd85033d.xn--8-otc61545t; [B1 V6]; [B1 V6] # .8ڜ
-T; \u200D\u200C󠆪。ß𑓃; [C1 C2]; [A4_2] # .ß𑓃
-N; \u200D\u200C󠆪。ß𑓃; [C1 C2]; [C1 C2] # .ß𑓃
-T; \u200D\u200C󠆪。ß𑓃; [C1 C2]; [A4_2] # .ß𑓃
-N; \u200D\u200C󠆪。ß𑓃; [C1 C2]; [C1 C2] # .ß𑓃
-T; \u200D\u200C󠆪。SS𑓃; [C1 C2]; [A4_2] # .ss𑓃
-N; \u200D\u200C󠆪。SS𑓃; [C1 C2]; [C1 C2] # .ss𑓃
-T; \u200D\u200C󠆪。ss𑓃; [C1 C2]; [A4_2] # .ss𑓃
-N; \u200D\u200C󠆪。ss𑓃; [C1 C2]; [C1 C2] # .ss𑓃
-T; \u200D\u200C󠆪。Ss𑓃; [C1 C2]; [A4_2] # .ss𑓃
-N; \u200D\u200C󠆪。Ss𑓃; [C1 C2]; [C1 C2] # .ss𑓃
-B; .xn--ss-bh7o; [A4_2]; [A4_2]
-B; xn--0ugb.xn--ss-bh7o; [C1 C2]; [C1 C2] # .ss𑓃
-B; xn--0ugb.xn--zca0732l; [C1 C2]; [C1 C2] # .ß𑓃
-T; \u200D\u200C󠆪。SS𑓃; [C1 C2]; [A4_2] # .ss𑓃
-N; \u200D\u200C󠆪。SS𑓃; [C1 C2]; [C1 C2] # .ss𑓃
-T; \u200D\u200C󠆪。ss𑓃; [C1 C2]; [A4_2] # .ss𑓃
-N; \u200D\u200C󠆪。ss𑓃; [C1 C2]; [C1 C2] # .ss𑓃
-T; \u200D\u200C󠆪。Ss𑓃; [C1 C2]; [A4_2] # .ss𑓃
-N; \u200D\u200C󠆪。Ss𑓃; [C1 C2]; [C1 C2] # .ss𑓃
-B; xn--ss-bh7o; ss𑓃; xn--ss-bh7o
-B; ss𑓃; ; xn--ss-bh7o
-B; SS𑓃; ss𑓃; xn--ss-bh7o
-B; Ss𑓃; ss𑓃; xn--ss-bh7o
-T; ︒\u200Cヶ䒩.ꡪ; [C1 P1 V6]; [P1 V6] # ︒ヶ䒩.ꡪ
-N; ︒\u200Cヶ䒩.ꡪ; [C1 P1 V6]; [C1 P1 V6] # ︒ヶ䒩.ꡪ
-T; 。\u200Cヶ䒩.ꡪ; [C1 A4_2]; [A4_2] # .ヶ䒩.ꡪ
-N; 。\u200Cヶ䒩.ꡪ; [C1 A4_2]; [C1 A4_2] # .ヶ䒩.ꡪ
-B; .xn--qekw60d.xn--gd9a; [A4_2]; [A4_2]
-B; .xn--0ug287dj0o.xn--gd9a; [C1 A4_2]; [C1 A4_2] # .ヶ䒩.ꡪ
-B; xn--qekw60dns9k.xn--gd9a; [V6]; [V6]
-B; xn--0ug287dj0or48o.xn--gd9a; [C1 V6]; [C1 V6] # ︒ヶ䒩.ꡪ
-B; xn--qekw60d.xn--gd9a; ヶ䒩.ꡪ; xn--qekw60d.xn--gd9a
-B; ヶ䒩.ꡪ; ; xn--qekw60d.xn--gd9a
-T; \u200C⒈𤮍.󢓋\u1A60; [C1 P1 V6]; [P1 V6] # ⒈𤮍.᩠
-N; \u200C⒈𤮍.󢓋\u1A60; [C1 P1 V6]; [C1 P1 V6] # ⒈𤮍.᩠
-T; \u200C1.𤮍.󢓋\u1A60; [C1 P1 V6]; [P1 V6] # 1.𤮍.᩠
-N; \u200C1.𤮍.󢓋\u1A60; [C1 P1 V6]; [C1 P1 V6] # 1.𤮍.᩠
-B; 1.xn--4x6j.xn--jof45148n; [V6]; [V6] # 1.𤮍.᩠
-B; xn--1-rgn.xn--4x6j.xn--jof45148n; [C1 V6]; [C1 V6] # 1.𤮍.᩠
-B; xn--tshw462r.xn--jof45148n; [V6]; [V6] # ⒈𤮍.᩠
-B; xn--0ug88o7471d.xn--jof45148n; [C1 V6]; [C1 V6] # ⒈𤮍.᩠
-T; ⒈\u200C𐫓󠀺。\u1A60񤰵\u200D; [B1 C1 C2 P1 V5 V6]; [B1 P1 V5 V6] # ⒈𐫓.᩠
-N; ⒈\u200C𐫓󠀺。\u1A60񤰵\u200D; [B1 C1 C2 P1 V5 V6]; [B1 C1 C2 P1 V5 V6] # ⒈𐫓.᩠
-T; 1.\u200C𐫓󠀺。\u1A60񤰵\u200D; [B1 C1 C2 P1 V5 V6]; [B1 B3 P1 V5 V6] # 1.𐫓.᩠
-N; 1.\u200C𐫓󠀺。\u1A60񤰵\u200D; [B1 C1 C2 P1 V5 V6]; [B1 C1 C2 P1 V5 V6] # 1.𐫓.᩠
-B; 1.xn--8w9c40377c.xn--jofz5294e; [B1 B3 V5 V6]; [B1 B3 V5 V6] # 1.𐫓.᩠
-B; 1.xn--0ug8853gk263g.xn--jof95xex98m; [B1 C1 C2 V5 V6]; [B1 C1 C2 V5 V6] # 1.𐫓.᩠
-B; xn--tsh4435fk263g.xn--jofz5294e; [B1 V5 V6]; [B1 V5 V6] # ⒈𐫓.᩠
-B; xn--0ug78ol75wzcx4i.xn--jof95xex98m; [B1 C1 C2 V5 V6]; [B1 C1 C2 V5 V6] # ⒈𐫓.᩠
-B; 𝅵。𝟫𞀈䬺⒈; [P1 V6]; [P1 V6]
-B; 𝅵。9𞀈䬺1.; [P1 V6]; [P1 V6]
-B; xn--3f1h.xn--91-030c1650n.; [V6]; [V6]
-B; xn--3f1h.xn--9-ecp936non25a; [V6]; [V6]
-B; 򡼺≯。盚\u0635; [B5 B6 P1 V6]; [B5 B6 P1 V6] # ≯.盚ص
-B; 򡼺>\u0338。盚\u0635; [B5 B6 P1 V6]; [B5 B6 P1 V6] # ≯.盚ص
-B; xn--hdh30181h.xn--0gb7878c; [B5 B6 V6]; [B5 B6 V6] # ≯.盚ص
-B; -񿰭\u05B4。-󠁊𐢸≯; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -ִ.-≯
-B; -񿰭\u05B4。-󠁊𐢸>\u0338; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -ִ.-≯
-B; xn----fgc06667m.xn----pgoy615he5y4i; [B1 V3 V6]; [B1 V3 V6] # -ִ.-≯
-T; 󿭓\u1B44\u200C\u0A4D.𐭛񳋔; [B2 B3 B6 P1 V6]; [B2 B3 P1 V6] # ᭄੍.𐭛
-N; 󿭓\u1B44\u200C\u0A4D.𐭛񳋔; [B2 B3 B6 P1 V6]; [B2 B3 B6 P1 V6] # ᭄੍.𐭛
-T; 󿭓\u1B44\u200C\u0A4D.𐭛񳋔; [B2 B3 B6 P1 V6]; [B2 B3 P1 V6] # ᭄੍.𐭛
-N; 󿭓\u1B44\u200C\u0A4D.𐭛񳋔; [B2 B3 B6 P1 V6]; [B2 B3 B6 P1 V6] # ᭄੍.𐭛
-B; xn--ybc997fb5881a.xn--409c6100y; [B2 B3 V6]; [B2 B3 V6] # ᭄੍.𐭛
-B; xn--ybc997f6rd2n772c.xn--409c6100y; [B2 B3 B6 V6]; [B2 B3 B6 V6] # ᭄੍.𐭛
-T; ⾇.\u067D𞤴\u06BB\u200D; [B3 C2]; xn--8c1a.xn--2ib8jn539l # 舛.ٽ𞤴ڻ
-N; ⾇.\u067D𞤴\u06BB\u200D; [B3 C2]; [B3 C2] # 舛.ٽ𞤴ڻ
-T; 舛.\u067D𞤴\u06BB\u200D; [B3 C2]; xn--8c1a.xn--2ib8jn539l # 舛.ٽ𞤴ڻ
-N; 舛.\u067D𞤴\u06BB\u200D; [B3 C2]; [B3 C2] # 舛.ٽ𞤴ڻ
-T; 舛.\u067D𞤒\u06BB\u200D; [B3 C2]; xn--8c1a.xn--2ib8jn539l # 舛.ٽ𞤴ڻ
-N; 舛.\u067D𞤒\u06BB\u200D; [B3 C2]; [B3 C2] # 舛.ٽ𞤴ڻ
-B; xn--8c1a.xn--2ib8jn539l; 舛.\u067D𞤴\u06BB; xn--8c1a.xn--2ib8jn539l # 舛.ٽ𞤴ڻ
-B; 舛.\u067D𞤴\u06BB; ; xn--8c1a.xn--2ib8jn539l # 舛.ٽ𞤴ڻ
-B; 舛.\u067D𞤒\u06BB; 舛.\u067D𞤴\u06BB; xn--8c1a.xn--2ib8jn539l # 舛.ٽ𞤴ڻ
-B; xn--8c1a.xn--2ib8jv19e6413b; [B3 C2]; [B3 C2] # 舛.ٽ𞤴ڻ
-T; ⾇.\u067D𞤒\u06BB\u200D; [B3 C2]; xn--8c1a.xn--2ib8jn539l # 舛.ٽ𞤴ڻ
-N; ⾇.\u067D𞤒\u06BB\u200D; [B3 C2]; [B3 C2] # 舛.ٽ𞤴ڻ
-B; 4򭆥。\u0767≯; [B1 B3 P1 V6]; [B1 B3 P1 V6] # 4.ݧ≯
-B; 4򭆥。\u0767>\u0338; [B1 B3 P1 V6]; [B1 B3 P1 V6] # 4.ݧ≯
-B; xn--4-xn17i.xn--rpb459k; [B1 B3 V6]; [B1 B3 V6] # 4.ݧ≯
-B; 𲔏𞫨񺿂硲.\u06AD; [B5 P1 V6]; [B5 P1 V6] # 硲.ڭ
-B; 𲔏𞫨񺿂硲.\u06AD; [B5 P1 V6]; [B5 P1 V6] # 硲.ڭ
-B; xn--lcz1610fn78gk609a.xn--gkb; [B5 V6]; [B5 V6] # 硲.ڭ
-T; \u200C.\uFE08\u0666Ⴆ℮; [B1 C1 P1 V6]; [B1 P1 V6 A4_2] # .٦Ⴆ℮
-N; \u200C.\uFE08\u0666Ⴆ℮; [B1 C1 P1 V6]; [B1 C1 P1 V6] # .٦Ⴆ℮
-T; \u200C.\uFE08\u0666ⴆ℮; [B1 C1]; [B1 A4_2] # .٦ⴆ℮
-N; \u200C.\uFE08\u0666ⴆ℮; [B1 C1]; [B1 C1] # .٦ⴆ℮
-B; .xn--fib628k4li; [B1 A4_2]; [B1 A4_2] # .٦ⴆ℮
-B; xn--0ug.xn--fib628k4li; [B1 C1]; [B1 C1] # .٦ⴆ℮
-B; .xn--fib263c0yn; [B1 V6 A4_2]; [B1 V6 A4_2] # .٦Ⴆ℮
-B; xn--0ug.xn--fib263c0yn; [B1 C1 V6]; [B1 C1 V6] # .٦Ⴆ℮
-T; \u06A3.\u0D4D\u200DϞ; [B1 V5]; [B1 V5] # ڣ.്ϟ
-N; \u06A3.\u0D4D\u200DϞ; [B1 V5]; [B1 V5] # ڣ.്ϟ
-T; \u06A3.\u0D4D\u200DϞ; [B1 V5]; [B1 V5] # ڣ.്ϟ
-N; \u06A3.\u0D4D\u200DϞ; [B1 V5]; [B1 V5] # ڣ.്ϟ
-T; \u06A3.\u0D4D\u200Dϟ; [B1 V5]; [B1 V5] # ڣ.്ϟ
-N; \u06A3.\u0D4D\u200Dϟ; [B1 V5]; [B1 V5] # ڣ.്ϟ
-B; xn--5jb.xn--xya149b; [B1 V5]; [B1 V5] # ڣ.്ϟ
-B; xn--5jb.xn--xya149bpvp; [B1 V5]; [B1 V5] # ڣ.്ϟ
-T; \u06A3.\u0D4D\u200Dϟ; [B1 V5]; [B1 V5] # ڣ.്ϟ
-N; \u06A3.\u0D4D\u200Dϟ; [B1 V5]; [B1 V5] # ڣ.്ϟ
-T; \u200C𞸇𑘿。\u0623𐮂-腍; [B1 B2 B3 C1]; [B2 B3] # ح𑘿.أ𐮂-腍
-N; \u200C𞸇𑘿。\u0623𐮂-腍; [B1 B2 B3 C1]; [B1 B2 B3 C1] # ح𑘿.أ𐮂-腍
-T; \u200C𞸇𑘿。\u0627\u0654𐮂-腍; [B1 B2 B3 C1]; [B2 B3] # ح𑘿.أ𐮂-腍
-N; \u200C𞸇𑘿。\u0627\u0654𐮂-腍; [B1 B2 B3 C1]; [B1 B2 B3 C1] # ح𑘿.أ𐮂-腍
-T; \u200C\u062D𑘿。\u0623𐮂-腍; [B1 B2 B3 C1]; [B2 B3] # ح𑘿.أ𐮂-腍
-N; \u200C\u062D𑘿。\u0623𐮂-腍; [B1 B2 B3 C1]; [B1 B2 B3 C1] # ح𑘿.أ𐮂-腍
-T; \u200C\u062D𑘿。\u0627\u0654𐮂-腍; [B1 B2 B3 C1]; [B2 B3] # ح𑘿.أ𐮂-腍
-N; \u200C\u062D𑘿。\u0627\u0654𐮂-腍; [B1 B2 B3 C1]; [B1 B2 B3 C1] # ح𑘿.أ𐮂-腍
-B; xn--sgb4140l.xn----qmc5075grs9e; [B2 B3]; [B2 B3] # ح𑘿.أ𐮂-腍
-B; xn--sgb953kmi8o.xn----qmc5075grs9e; [B1 B2 B3 C1]; [B1 B2 B3 C1] # ح𑘿.أ𐮂-腍
-B; -򭷙\u066B纛。𝟛񭤇🄅; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -٫纛.3🄅
-B; -򭷙\u066B纛。3񭤇4,; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -٫纛.34,
-B; xn----vqc8143g0tt4i.xn--34,-8787l; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -٫纛.34,
-B; xn----vqc8143g0tt4i.xn--3-os1sn476y; [B1 V3 V6]; [B1 V3 V6] # -٫纛.3🄅
-B; 🔔.Ⴂ\u07CC\u0BCD𐋮; [B1 B5 P1 V6]; [B1 B5 P1 V6] # 🔔.Ⴂߌ்𐋮
-B; 🔔.Ⴂ\u07CC\u0BCD𐋮; [B1 B5 P1 V6]; [B1 B5 P1 V6] # 🔔.Ⴂߌ்𐋮
-B; 🔔.ⴂ\u07CC\u0BCD𐋮; [B1 B5]; [B1 B5] # 🔔.ⴂߌ்𐋮
-B; xn--nv8h.xn--nsb46rvz1b222p; [B1 B5]; [B1 B5] # 🔔.ⴂߌ்𐋮
-B; xn--nv8h.xn--nsb46r83e8112a; [B1 B5 V6]; [B1 B5 V6] # 🔔.Ⴂߌ்𐋮
-B; 🔔.ⴂ\u07CC\u0BCD𐋮; [B1 B5]; [B1 B5] # 🔔.ⴂߌ்𐋮
-B; 軥\u06B3.-𖬵; [B1 B5 B6 V3]; [B1 B5 B6 V3] # 軥ڳ.-𖬵
-B; xn--mkb5480e.xn----6u5m; [B1 B5 B6 V3]; [B1 B5 B6 V3] # 軥ڳ.-𖬵
-B; 𐹤\u07CA\u06B6.𐨂-; [B1 V3 V5]; [B1 V3 V5] # 𐹤ߊڶ.𐨂-
-B; xn--pkb56cn614d.xn----974i; [B1 V3 V5]; [B1 V3 V5] # 𐹤ߊڶ.𐨂-
-B; -󠅱0。\u17CF\u1DFD톇십; [V3 V5]; [V3 V5] # -0.៏᷽톇십
-B; -󠅱0。\u17CF\u1DFD톇십; [V3 V5]; [V3 V5] # -0.៏᷽톇십
-B; -󠅱0。\u17CF\u1DFD톇십; [V3 V5]; [V3 V5] # -0.៏᷽톇십
-B; -󠅱0。\u17CF\u1DFD톇십; [V3 V5]; [V3 V5] # -0.៏᷽톇십
-B; -0.xn--r4e872ah77nghm; [V3 V5]; [V3 V5] # -0.៏᷽톇십
-B; ꡰ︒--。\u17CC靈𐹢񘳮; [B1 B6 P1 V2 V3 V5 V6]; [B1 B6 P1 V2 V3 V5 V6] # ꡰ︒--.៌靈𐹢
-B; ꡰ。--。\u17CC靈𐹢񘳮; [B1 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # ꡰ.--.៌靈𐹢
-B; xn--md9a.--.xn--o4e6836dpxudz0v1c; [B1 V3 V5 V6]; [B1 V3 V5 V6] # ꡰ.--.៌靈𐹢
-B; xn-----bk9hu24z.xn--o4e6836dpxudz0v1c; [B1 B6 V2 V3 V5 V6]; [B1 B6 V2 V3 V5 V6] # ꡰ︒--.៌靈𐹢
-B; \u115FႿႵრ。\u0B4D; [P1 V5 V6]; [P1 V5 V6] # ႿႵრ.୍
-B; \u115FႿႵრ。\u0B4D; [P1 V5 V6]; [P1 V5 V6] # ႿႵრ.୍
-B; \u115Fⴟⴕრ。\u0B4D; [P1 V5 V6]; [P1 V5 V6] # ⴟⴕრ.୍
-B; \u115FႿⴕრ。\u0B4D; [P1 V5 V6]; [P1 V5 V6] # Ⴟⴕრ.୍
-B; xn--3nd0etsm92g.xn--9ic; [V5 V6]; [V5 V6] # Ⴟⴕრ.୍
-B; xn--1od7wz74eeb.xn--9ic; [V5 V6]; [V5 V6] # ⴟⴕრ.୍
-B; xn--tndt4hvw.xn--9ic; [V5 V6]; [V5 V6] # ႿႵრ.୍
-B; \u115Fⴟⴕრ。\u0B4D; [P1 V5 V6]; [P1 V5 V6] # ⴟⴕრ.୍
-B; \u115FႿⴕრ。\u0B4D; [P1 V5 V6]; [P1 V5 V6] # Ⴟⴕრ.୍
-B; 🄃𐹠.\u0664󠅇; [B1 P1 V6]; [B1 P1 V6] # 🄃𐹠.٤
-B; 2,𐹠.\u0664󠅇; [B1 P1 V6]; [B1 P1 V6] # 2,𐹠.٤
-B; xn--2,-5g3o.xn--dib; [B1 P1 V6]; [B1 P1 V6] # 2,𐹠.٤
-B; xn--7n0d1189a.xn--dib; [B1 V6]; [B1 V6] # 🄃𐹠.٤
-T; 򻲼\u200C\uFC5B.\u07D2\u0848\u1BF3; [B2 B3 B5 B6 C1 P1 V6]; [B2 B3 B5 B6 P1 V6] # ذٰ.ߒࡈ᯳
-N; 򻲼\u200C\uFC5B.\u07D2\u0848\u1BF3; [B2 B3 B5 B6 C1 P1 V6]; [B2 B3 B5 B6 C1 P1 V6] # ذٰ.ߒࡈ᯳
-T; 򻲼\u200C\u0630\u0670.\u07D2\u0848\u1BF3; [B2 B3 B5 B6 C1 P1 V6]; [B2 B3 B5 B6 P1 V6] # ذٰ.ߒࡈ᯳
-N; 򻲼\u200C\u0630\u0670.\u07D2\u0848\u1BF3; [B2 B3 B5 B6 C1 P1 V6]; [B2 B3 B5 B6 C1 P1 V6] # ذٰ.ߒࡈ᯳
-B; xn--vgb2kp1223g.xn--tsb0vz43c; [B2 B3 B5 B6 V6]; [B2 B3 B5 B6 V6] # ذٰ.ߒࡈ᯳
-B; xn--vgb2kq00fl213y.xn--tsb0vz43c; [B2 B3 B5 B6 C1 V6]; [B2 B3 B5 B6 C1 V6] # ذٰ.ߒࡈ᯳
-T; \u200D\u200D𞵪\u200C。ᡘ𑲭\u17B5; [B1 C1 C2 P1 V6]; [P1 V6] # .ᡘ𑲭
-N; \u200D\u200D𞵪\u200C。ᡘ𑲭\u17B5; [B1 C1 C2 P1 V6]; [B1 C1 C2 P1 V6] # .ᡘ𑲭
-B; xn--l96h.xn--03e93aq365d; [V6]; [V6] # .ᡘ𑲭
-B; xn--0ugba05538b.xn--03e93aq365d; [B1 C1 C2 V6]; [B1 C1 C2 V6] # .ᡘ𑲭
-B; 𞷻。⚄񗑇𑁿; [B1 P1 V6]; [B1 P1 V6]
-B; xn--qe7h.xn--c7h2966f7so4a; [B1 V6]; [B1 V6]
-B; \uA8C4≠.𞠨\u0667; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ꣄≠.𞠨٧
-B; \uA8C4=\u0338.𞠨\u0667; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ꣄≠.𞠨٧
-B; \uA8C4≠.𞠨\u0667; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ꣄≠.𞠨٧
-B; \uA8C4=\u0338.𞠨\u0667; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ꣄≠.𞠨٧
-B; xn--1chy504c.xn--gib1777v; [B1 V5 V6]; [B1 V5 V6] # ꣄≠.𞠨٧
-B; 𝟛𝆪\uA8C4。\uA8EA-; [V3 V5]; [V3 V5] # 3꣄𝆪.꣪-
-B; 𝟛\uA8C4𝆪。\uA8EA-; [V3 V5]; [V3 V5] # 3꣄𝆪.꣪-
-B; 3\uA8C4𝆪。\uA8EA-; [V3 V5]; [V3 V5] # 3꣄𝆪.꣪-
-B; xn--3-sl4eu679e.xn----xn4e; [V3 V5]; [V3 V5] # 3꣄𝆪.꣪-
-B; \u075F\u1BA2\u103AႧ.4; [B1 B2 B3 P1 V6]; [B1 B2 B3 P1 V6] # ݟᮢ်Ⴇ.4
-B; \u075F\u1BA2\u103Aⴇ.4; [B1 B2 B3]; [B1 B2 B3] # ݟᮢ်ⴇ.4
-B; xn--jpb846bjzj7pr.4; [B1 B2 B3]; [B1 B2 B3] # ݟᮢ်ⴇ.4
-B; xn--jpb846bmjw88a.4; [B1 B2 B3 V6]; [B1 B2 B3 V6] # ݟᮢ်Ⴇ.4
-B; ᄹ。\u0ECA򠯤󠄞; [P1 V5 V6]; [P1 V5 V6] # ᄹ.໊
-B; ᄹ。\u0ECA򠯤󠄞; [P1 V5 V6]; [P1 V5 V6] # ᄹ.໊
-B; xn--lrd.xn--s8c05302k; [V5 V6]; [V5 V6] # ᄹ.໊
-B; Ⴆ򻢩.󠆡\uFE09𞤍; [P1 V6]; [P1 V6]
-B; Ⴆ򻢩.󠆡\uFE09𞤍; [P1 V6]; [P1 V6]
-B; ⴆ򻢩.󠆡\uFE09𞤯; [P1 V6]; [P1 V6]
-B; xn--xkjw3965g.xn--ne6h; [V6]; [V6]
-B; xn--end82983m.xn--ne6h; [V6]; [V6]
-B; ⴆ򻢩.󠆡\uFE09𞤯; [P1 V6]; [P1 V6]
-B; ⴆ򻢩.󠆡\uFE09𞤍; [P1 V6]; [P1 V6]
-B; ⴆ򻢩.󠆡\uFE09𞤍; [P1 V6]; [P1 V6]
-T; ß\u080B︒\u067B.帼F∬\u200C; [B5 B6 C1 P1 V6]; [B5 B6 P1 V6] # ßࠋ︒ٻ.帼f∫∫
-N; ß\u080B︒\u067B.帼F∬\u200C; [B5 B6 C1 P1 V6]; [B5 B6 C1 P1 V6] # ßࠋ︒ٻ.帼f∫∫
-T; ß\u080B。\u067B.帼F∫∫\u200C; [B5 B6 C1]; [B5 B6] # ßࠋ.ٻ.帼f∫∫
-N; ß\u080B。\u067B.帼F∫∫\u200C; [B5 B6 C1]; [B5 B6 C1] # ßࠋ.ٻ.帼f∫∫
-T; ß\u080B。\u067B.帼f∫∫\u200C; [B5 B6 C1]; [B5 B6] # ßࠋ.ٻ.帼f∫∫
-N; ß\u080B。\u067B.帼f∫∫\u200C; [B5 B6 C1]; [B5 B6 C1] # ßࠋ.ٻ.帼f∫∫
-T; SS\u080B。\u067B.帼F∫∫\u200C; [B5 B6 C1]; [B5 B6] # ssࠋ.ٻ.帼f∫∫
-N; SS\u080B。\u067B.帼F∫∫\u200C; [B5 B6 C1]; [B5 B6 C1] # ssࠋ.ٻ.帼f∫∫
-T; ss\u080B。\u067B.帼f∫∫\u200C; [B5 B6 C1]; [B5 B6] # ssࠋ.ٻ.帼f∫∫
-N; ss\u080B。\u067B.帼f∫∫\u200C; [B5 B6 C1]; [B5 B6 C1] # ssࠋ.ٻ.帼f∫∫
-T; Ss\u080B。\u067B.帼F∫∫\u200C; [B5 B6 C1]; [B5 B6] # ssࠋ.ٻ.帼f∫∫
-N; Ss\u080B。\u067B.帼F∫∫\u200C; [B5 B6 C1]; [B5 B6 C1] # ssࠋ.ٻ.帼f∫∫
-B; xn--ss-uze.xn--0ib.xn--f-tcoa9162d; [B5 B6]; [B5 B6] # ssࠋ.ٻ.帼f∫∫
-B; xn--ss-uze.xn--0ib.xn--f-sgn48ga6997e; [B5 B6 C1]; [B5 B6 C1] # ssࠋ.ٻ.帼f∫∫
-B; xn--zca687a.xn--0ib.xn--f-sgn48ga6997e; [B5 B6 C1]; [B5 B6 C1] # ßࠋ.ٻ.帼f∫∫
-T; ß\u080B︒\u067B.帼f∬\u200C; [B5 B6 C1 P1 V6]; [B5 B6 P1 V6] # ßࠋ︒ٻ.帼f∫∫
-N; ß\u080B︒\u067B.帼f∬\u200C; [B5 B6 C1 P1 V6]; [B5 B6 C1 P1 V6] # ßࠋ︒ٻ.帼f∫∫
-T; SS\u080B︒\u067B.帼F∬\u200C; [B5 B6 C1 P1 V6]; [B5 B6 P1 V6] # ssࠋ︒ٻ.帼f∫∫
-N; SS\u080B︒\u067B.帼F∬\u200C; [B5 B6 C1 P1 V6]; [B5 B6 C1 P1 V6] # ssࠋ︒ٻ.帼f∫∫
-T; ss\u080B︒\u067B.帼f∬\u200C; [B5 B6 C1 P1 V6]; [B5 B6 P1 V6] # ssࠋ︒ٻ.帼f∫∫
-N; ss\u080B︒\u067B.帼f∬\u200C; [B5 B6 C1 P1 V6]; [B5 B6 C1 P1 V6] # ssࠋ︒ٻ.帼f∫∫
-T; Ss\u080B︒\u067B.帼F∬\u200C; [B5 B6 C1 P1 V6]; [B5 B6 P1 V6] # ssࠋ︒ٻ.帼f∫∫
-N; Ss\u080B︒\u067B.帼F∬\u200C; [B5 B6 C1 P1 V6]; [B5 B6 C1 P1 V6] # ssࠋ︒ٻ.帼f∫∫
-B; xn--ss-k0d31nu121d.xn--f-tcoa9162d; [B5 B6 V6]; [B5 B6 V6] # ssࠋ︒ٻ.帼f∫∫
-B; xn--ss-k0d31nu121d.xn--f-sgn48ga6997e; [B5 B6 C1 V6]; [B5 B6 C1 V6] # ssࠋ︒ٻ.帼f∫∫
-B; xn--zca68zj8ac956c.xn--f-sgn48ga6997e; [B5 B6 C1 V6]; [B5 B6 C1 V6] # ßࠋ︒ٻ.帼f∫∫
-T; 󘪗。𐹴𞨌\u200D; [B1 C2 P1 V6]; [B1 P1 V6] # .𐹴
-N; 󘪗。𐹴𞨌\u200D; [B1 C2 P1 V6]; [B1 C2 P1 V6] # .𐹴
-T; 󘪗。𐹴𞨌\u200D; [B1 C2 P1 V6]; [B1 P1 V6] # .𐹴
-N; 󘪗。𐹴𞨌\u200D; [B1 C2 P1 V6]; [B1 C2 P1 V6] # .𐹴
-B; xn--8l83e.xn--so0dw168a; [B1 V6]; [B1 V6]
-B; xn--8l83e.xn--1ug4105gsxwf; [B1 C2 V6]; [B1 C2 V6] # .𐹴
-B; 񗛨.򅟢𝟨\uA8C4; [P1 V6]; [P1 V6] # .6꣄
-B; 񗛨.򅟢6\uA8C4; [P1 V6]; [P1 V6] # .6꣄
-B; xn--mi60a.xn--6-sl4es8023c; [V6]; [V6] # .6꣄
-B; \u1AB2\uFD8E。-۹ႱႨ; [B1 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # ᪲مخج.-۹ႱႨ
-B; \u1AB2\u0645\u062E\u062C。-۹ႱႨ; [B1 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # ᪲مخج.-۹ႱႨ
-B; \u1AB2\u0645\u062E\u062C。-۹ⴑⴈ; [B1 V3 V5]; [B1 V3 V5] # ᪲مخج.-۹ⴑⴈ
-B; \u1AB2\u0645\u062E\u062C。-۹Ⴑⴈ; [B1 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # ᪲مخج.-۹Ⴑⴈ
-B; xn--rgbd2e831i.xn----zyc875efr3a; [B1 V3 V5 V6]; [B1 V3 V5 V6] # ᪲مخج.-۹Ⴑⴈ
-B; xn--rgbd2e831i.xn----zyc3430a9a; [B1 V3 V5]; [B1 V3 V5] # ᪲مخج.-۹ⴑⴈ
-B; xn--rgbd2e831i.xn----zyc155e9a; [B1 V3 V5 V6]; [B1 V3 V5 V6] # ᪲مخج.-۹ႱႨ
-B; \u1AB2\uFD8E。-۹ⴑⴈ; [B1 V3 V5]; [B1 V3 V5] # ᪲مخج.-۹ⴑⴈ
-B; \u1AB2\uFD8E。-۹Ⴑⴈ; [B1 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # ᪲مخج.-۹Ⴑⴈ
-B; 𞤤.-\u08A3︒; [B1 P1 V3 V6]; [B1 P1 V3 V6] # 𞤤.-ࢣ︒
-B; 𞤤.-\u08A3。; [B1 V3]; [B1 V3] # 𞤤.-ࢣ.
-B; 𞤂.-\u08A3。; [B1 V3]; [B1 V3] # 𞤤.-ࢣ.
-B; xn--ce6h.xn----cod.; [B1 V3]; [B1 V3] # 𞤤.-ࢣ.
-B; 𞤂.-\u08A3︒; [B1 P1 V3 V6]; [B1 P1 V3 V6] # 𞤤.-ࢣ︒
-B; xn--ce6h.xn----cod7069p; [B1 V3 V6]; [B1 V3 V6] # 𞤤.-ࢣ︒
-T; \u200C𐺨.\u0859--; [B1 C1 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # .࡙--
-N; \u200C𐺨.\u0859--; [B1 C1 P1 V3 V5 V6]; [B1 C1 P1 V3 V5 V6] # .࡙--
-B; xn--9p0d.xn-----h6e; [B1 V3 V5 V6]; [B1 V3 V5 V6] # .࡙--
-B; xn--0ug7905g.xn-----h6e; [B1 C1 V3 V5 V6]; [B1 C1 V3 V5 V6] # .࡙--
-B; 𐋸󮘋Ⴢ.Ⴁ; [P1 V6]; [P1 V6]
-B; 𐋸󮘋ⴢ.ⴁ; [P1 V6]; [P1 V6]
-B; 𐋸󮘋Ⴢ.ⴁ; [P1 V6]; [P1 V6]
-B; xn--6nd5215jr2u0h.xn--skj; [V6]; [V6]
-B; xn--qlj1559dr224h.xn--skj; [V6]; [V6]
-B; xn--6nd5215jr2u0h.xn--8md; [V6]; [V6]
-T; 񗑿\uA806₄򩞆。𲩧󠒹ς; [P1 V6]; [P1 V6] # ꠆4.ς
-N; 񗑿\uA806₄򩞆。𲩧󠒹ς; [P1 V6]; [P1 V6] # ꠆4.ς
-T; 񗑿\uA8064򩞆。𲩧󠒹ς; [P1 V6]; [P1 V6] # ꠆4.ς
-N; 񗑿\uA8064򩞆。𲩧󠒹ς; [P1 V6]; [P1 V6] # ꠆4.ς
-B; 񗑿\uA8064򩞆。𲩧󠒹Σ; [P1 V6]; [P1 V6] # ꠆4.σ
-B; 񗑿\uA8064򩞆。𲩧󠒹σ; [P1 V6]; [P1 V6] # ꠆4.σ
-B; xn--4-w93ej7463a9io5a.xn--4xa31142bk3f0d; [V6]; [V6] # ꠆4.σ
-B; xn--4-w93ej7463a9io5a.xn--3xa51142bk3f0d; [V6]; [V6] # ꠆4.ς
-B; 񗑿\uA806₄򩞆。𲩧󠒹Σ; [P1 V6]; [P1 V6] # ꠆4.σ
-B; 񗑿\uA806₄򩞆。𲩧󠒹σ; [P1 V6]; [P1 V6] # ꠆4.σ
-B; 󠆀\u0723。\u1DF4\u0775; [B1 V5]; [B1 V5] # ܣ.ᷴݵ
-B; xn--tnb.xn--5pb136i; [B1 V5]; [B1 V5] # ܣ.ᷴݵ
-T; 𐹱\u0842𝪨。𬼖Ⴑ\u200D; [B1 B6 C2 P1 V6]; [B1 P1 V6] # 𐹱ࡂ𝪨.𬼖Ⴑ
-N; 𐹱\u0842𝪨。𬼖Ⴑ\u200D; [B1 B6 C2 P1 V6]; [B1 B6 C2 P1 V6] # 𐹱ࡂ𝪨.𬼖Ⴑ
-T; 𐹱\u0842𝪨。𬼖Ⴑ\u200D; [B1 B6 C2 P1 V6]; [B1 P1 V6] # 𐹱ࡂ𝪨.𬼖Ⴑ
-N; 𐹱\u0842𝪨。𬼖Ⴑ\u200D; [B1 B6 C2 P1 V6]; [B1 B6 C2 P1 V6] # 𐹱ࡂ𝪨.𬼖Ⴑ
-T; 𐹱\u0842𝪨。𬼖ⴑ\u200D; [B1 B6 C2]; [B1] # 𐹱ࡂ𝪨.𬼖ⴑ
-N; 𐹱\u0842𝪨。𬼖ⴑ\u200D; [B1 B6 C2]; [B1 B6 C2] # 𐹱ࡂ𝪨.𬼖ⴑ
-B; xn--0vb1535kdb6e.xn--8kjz186s; [B1]; [B1] # 𐹱ࡂ𝪨.𬼖ⴑ
-B; xn--0vb1535kdb6e.xn--1ug742c5714c; [B1 B6 C2]; [B1 B6 C2] # 𐹱ࡂ𝪨.𬼖ⴑ
-B; xn--0vb1535kdb6e.xn--pnd93707a; [B1 V6]; [B1 V6] # 𐹱ࡂ𝪨.𬼖Ⴑ
-B; xn--0vb1535kdb6e.xn--pnd879eqy33c; [B1 B6 C2 V6]; [B1 B6 C2 V6] # 𐹱ࡂ𝪨.𬼖Ⴑ
-T; 𐹱\u0842𝪨。𬼖ⴑ\u200D; [B1 B6 C2]; [B1] # 𐹱ࡂ𝪨.𬼖ⴑ
-N; 𐹱\u0842𝪨。𬼖ⴑ\u200D; [B1 B6 C2]; [B1 B6 C2] # 𐹱ࡂ𝪨.𬼖ⴑ
-T; \u1714𐭪󠙘\u200D。-𐹴; [B1 C2 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # ᜔𐭪.-𐹴
-N; \u1714𐭪󠙘\u200D。-𐹴; [B1 C2 P1 V3 V5 V6]; [B1 C2 P1 V3 V5 V6] # ᜔𐭪.-𐹴
-T; \u1714𐭪󠙘\u200D。-𐹴; [B1 C2 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # ᜔𐭪.-𐹴
-N; \u1714𐭪󠙘\u200D。-𐹴; [B1 C2 P1 V3 V5 V6]; [B1 C2 P1 V3 V5 V6] # ᜔𐭪.-𐹴
-B; xn--fze4126jujt0g.xn----c36i; [B1 V3 V5 V6]; [B1 V3 V5 V6] # ᜔𐭪.-𐹴
-B; xn--fze807bso0spy14i.xn----c36i; [B1 C2 V3 V5 V6]; [B1 C2 V3 V5 V6] # ᜔𐭪.-𐹴
-B; 𾢬。\u0729︒쯙𝟧; [B2 P1 V6]; [B2 P1 V6] # .ܩ︒쯙5
-B; 𾢬。\u0729︒쯙𝟧; [B2 P1 V6]; [B2 P1 V6] # .ܩ︒쯙5
-B; 𾢬。\u0729。쯙5; [P1 V6]; [P1 V6] # .ܩ.쯙5
-B; 𾢬。\u0729。쯙5; [P1 V6]; [P1 V6] # .ܩ.쯙5
-B; xn--t92s.xn--znb.xn--5-y88f; [V6]; [V6] # .ܩ.쯙5
-B; xn--t92s.xn--5-p1c0712mm8rb; [B2 V6]; [B2 V6] # .ܩ︒쯙5
-B; 𞤟-。\u0762≮뻐; [B2 B3 P1 V3 V6]; [B2 B3 P1 V3 V6] # 𞥁-.ݢ≮뻐
-B; 𞤟-。\u0762<\u0338뻐; [B2 B3 P1 V3 V6]; [B2 B3 P1 V3 V6] # 𞥁-.ݢ≮뻐
-B; 𞥁-。\u0762<\u0338뻐; [B2 B3 P1 V3 V6]; [B2 B3 P1 V3 V6] # 𞥁-.ݢ≮뻐
-B; 𞥁-。\u0762≮뻐; [B2 B3 P1 V3 V6]; [B2 B3 P1 V3 V6] # 𞥁-.ݢ≮뻐
-B; xn----1j8r.xn--mpb269krv4i; [B2 B3 V3 V6]; [B2 B3 V3 V6] # 𞥁-.ݢ≮뻐
-B; 𞥩-򊫠.\u08B4≠; [B2 B3 P1 V6]; [B2 B3 P1 V6] # -.ࢴ≠
-B; 𞥩-򊫠.\u08B4=\u0338; [B2 B3 P1 V6]; [B2 B3 P1 V6] # -.ࢴ≠
-B; 𞥩-򊫠.\u08B4≠; [B2 B3 P1 V6]; [B2 B3 P1 V6] # -.ࢴ≠
-B; 𞥩-򊫠.\u08B4=\u0338; [B2 B3 P1 V6]; [B2 B3 P1 V6] # -.ࢴ≠
-B; xn----cm8rp3609a.xn--9yb852k; [B2 B3 V6]; [B2 B3 V6] # -.ࢴ≠
-T; -񅂏ςႼ.\u0661; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -ςႼ.١
-N; -񅂏ςႼ.\u0661; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -ςႼ.١
-T; -񅂏ςႼ.\u0661; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -ςႼ.١
-N; -񅂏ςႼ.\u0661; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -ςႼ.١
-T; -񅂏ςⴜ.\u0661; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -ςⴜ.١
-N; -񅂏ςⴜ.\u0661; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -ςⴜ.١
-B; -񅂏ΣႼ.\u0661; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -σႼ.١
-B; -񅂏σⴜ.\u0661; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -σⴜ.١
-B; -񅂏Σⴜ.\u0661; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -σⴜ.١
-B; xn----0mb9682aov12f.xn--9hb; [B1 V3 V6]; [B1 V3 V6] # -σⴜ.١
-B; xn----0mb770hun11i.xn--9hb; [B1 V3 V6]; [B1 V3 V6] # -σႼ.١
-B; xn----ymb2782aov12f.xn--9hb; [B1 V3 V6]; [B1 V3 V6] # -ςⴜ.١
-B; xn----ymb080hun11i.xn--9hb; [B1 V3 V6]; [B1 V3 V6] # -ςႼ.١
-T; -񅂏ςⴜ.\u0661; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -ςⴜ.١
-N; -񅂏ςⴜ.\u0661; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -ςⴜ.١
-B; -񅂏ΣႼ.\u0661; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -σႼ.١
-B; -񅂏σⴜ.\u0661; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -σⴜ.١
-B; -񅂏Σⴜ.\u0661; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -σⴜ.١
-T; \u17CA.\u200D𝟮𑀿; [C2 V5]; [V5] # ៊.2𑀿
-N; \u17CA.\u200D𝟮𑀿; [C2 V5]; [C2 V5] # ៊.2𑀿
-T; \u17CA.\u200D2𑀿; [C2 V5]; [V5] # ៊.2𑀿
-N; \u17CA.\u200D2𑀿; [C2 V5]; [C2 V5] # ៊.2𑀿
-B; xn--m4e.xn--2-ku7i; [V5]; [V5] # ៊.2𑀿
-B; xn--m4e.xn--2-tgnv469h; [C2 V5]; [C2 V5] # ៊.2𑀿
-B; ≯𝟖。\u1A60𐫓򟇑; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ≯8.᩠𐫓
-B; >\u0338𝟖。\u1A60𐫓򟇑; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ≯8.᩠𐫓
-B; ≯8。\u1A60𐫓򟇑; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ≯8.᩠𐫓
-B; >\u03388。\u1A60𐫓򟇑; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ≯8.᩠𐫓
-B; xn--8-ogo.xn--jof5303iv1z5d; [B1 V5 V6]; [B1 V5 V6] # ≯8.᩠𐫓
-T; 𑲫Ↄ\u0664。\u200C; [B1 C1 P1 V5 V6]; [B1 P1 V5 V6] # 𑲫Ↄ٤.
-N; 𑲫Ↄ\u0664。\u200C; [B1 C1 P1 V5 V6]; [B1 C1 P1 V5 V6] # 𑲫Ↄ٤.
-T; 𑲫Ↄ\u0664。\u200C; [B1 C1 P1 V5 V6]; [B1 P1 V5 V6] # 𑲫Ↄ٤.
-N; 𑲫Ↄ\u0664。\u200C; [B1 C1 P1 V5 V6]; [B1 C1 P1 V5 V6] # 𑲫Ↄ٤.
-T; 𑲫ↄ\u0664。\u200C; [B1 C1 V5]; [B1 V5] # 𑲫ↄ٤.
-N; 𑲫ↄ\u0664。\u200C; [B1 C1 V5]; [B1 C1 V5] # 𑲫ↄ٤.
-B; xn--dib100l8x1p.; [B1 V5]; [B1 V5] # 𑲫ↄ٤.
-B; xn--dib100l8x1p.xn--0ug; [B1 C1 V5]; [B1 C1 V5] # 𑲫ↄ٤.
-B; xn--dib999kcy1p.; [B1 V5 V6]; [B1 V5 V6] # 𑲫Ↄ٤.
-B; xn--dib999kcy1p.xn--0ug; [B1 C1 V5 V6]; [B1 C1 V5 V6] # 𑲫Ↄ٤.
-T; 𑲫ↄ\u0664。\u200C; [B1 C1 V5]; [B1 V5] # 𑲫ↄ٤.
-N; 𑲫ↄ\u0664。\u200C; [B1 C1 V5]; [B1 C1 V5] # 𑲫ↄ٤.
-T; \u0C00𝟵\u200D\uFC9D.\u200D\u0750⒈; [B1 C2 P1 V5 V6]; [B1 P1 V5 V6] # ఀ9بح.ݐ⒈
-N; \u0C00𝟵\u200D\uFC9D.\u200D\u0750⒈; [B1 C2 P1 V5 V6]; [B1 C2 P1 V5 V6] # ఀ9بح.ݐ⒈
-T; \u0C009\u200D\u0628\u062D.\u200D\u07501.; [B1 C2 V5]; [B1 V5] # ఀ9بح.ݐ1.
-N; \u0C009\u200D\u0628\u062D.\u200D\u07501.; [B1 C2 V5]; [B1 C2 V5] # ఀ9بح.ݐ1.
-B; xn--9-1mcp570d.xn--1-x3c.; [B1 V5]; [B1 V5] # ఀ9بح.ݐ1.
-B; xn--9-1mcp570dl51a.xn--1-x3c211q.; [B1 C2 V5]; [B1 C2 V5] # ఀ9بح.ݐ1.
-B; xn--9-1mcp570d.xn--3ob470m; [B1 V5 V6]; [B1 V5 V6] # ఀ9بح.ݐ⒈
-B; xn--9-1mcp570dl51a.xn--3ob977jmfd; [B1 C2 V5 V6]; [B1 C2 V5 V6] # ఀ9بح.ݐ⒈
-T; \uAAF6。嬶ß葽; [V5]; [V5] # ꫶.嬶ß葽
-N; \uAAF6。嬶ß葽; [V5]; [V5] # ꫶.嬶ß葽
-B; \uAAF6。嬶SS葽; [V5]; [V5] # ꫶.嬶ss葽
-B; \uAAF6。嬶ss葽; [V5]; [V5] # ꫶.嬶ss葽
-B; \uAAF6。嬶Ss葽; [V5]; [V5] # ꫶.嬶ss葽
-B; xn--2v9a.xn--ss-q40dp97m; [V5]; [V5] # ꫶.嬶ss葽
-B; xn--2v9a.xn--zca7637b14za; [V5]; [V5] # ꫶.嬶ß葽
-B; 𑚶⒈。񞻡𐹺; [B5 B6 P1 V5 V6]; [B5 B6 P1 V5 V6]
-B; 𑚶1.。񞻡𐹺; [B5 B6 P1 V5 V6 A4_2]; [B5 B6 P1 V5 V6 A4_2]
-B; xn--1-3j0j..xn--yo0d5914s; [B5 B6 V5 V6 A4_2]; [B5 B6 V5 V6 A4_2]
-B; xn--tshz969f.xn--yo0d5914s; [B5 B6 V5 V6]; [B5 B6 V5 V6]
-B; 𑜤︒≮.񚕽\u05D8𞾩; [B1 B5 B6 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # 𑜤︒≮.ט
-B; 𑜤︒<\u0338.񚕽\u05D8𞾩; [B1 B5 B6 P1 V5 V6]; [B1 B5 B6 P1 V5 V6] # 𑜤︒≮.ט
-B; 𑜤。≮.񚕽\u05D8𞾩; [B1 B3 B5 B6 P1 V5 V6]; [B1 B3 B5 B6 P1 V5 V6] # 𑜤.≮.ט
-B; 𑜤。<\u0338.񚕽\u05D8𞾩; [B1 B3 B5 B6 P1 V5 V6]; [B1 B3 B5 B6 P1 V5 V6] # 𑜤.≮.ט
-B; xn--ci2d.xn--gdh.xn--deb0091w5q9u; [B1 B3 B5 B6 V5 V6]; [B1 B3 B5 B6 V5 V6] # 𑜤.≮.ט
-B; xn--gdh5267fdzpa.xn--deb0091w5q9u; [B1 B5 B6 V5 V6]; [B1 B5 B6 V5 V6] # 𑜤︒≮.ט
-T; 󠆋\u0603񏦤.⇁ς򏋈򺇥; [B1 P1 V6]; [B1 P1 V6] # .⇁ς
-N; 󠆋\u0603񏦤.⇁ς򏋈򺇥; [B1 P1 V6]; [B1 P1 V6] # .⇁ς
-B; 󠆋\u0603񏦤.⇁Σ򏋈򺇥; [B1 P1 V6]; [B1 P1 V6] # .⇁σ
-B; 󠆋\u0603񏦤.⇁σ򏋈򺇥; [B1 P1 V6]; [B1 P1 V6] # .⇁σ
-B; xn--lfb04106d.xn--4xa964mxv16m8moq; [B1 V6]; [B1 V6] # .⇁σ
-B; xn--lfb04106d.xn--3xa174mxv16m8moq; [B1 V6]; [B1 V6] # .⇁ς
-T; ς𑐽𵢈𑜫。𞬩\u200C𐫄; [C1 P1 V6]; [P1 V6] # ς𑐽𑜫.𐫄
-N; ς𑐽𵢈𑜫。𞬩\u200C𐫄; [C1 P1 V6]; [C1 P1 V6] # ς𑐽𑜫.𐫄
-T; ς𑐽𵢈𑜫。𞬩\u200C𐫄; [C1 P1 V6]; [P1 V6] # ς𑐽𑜫.𐫄
-N; ς𑐽𵢈𑜫。𞬩\u200C𐫄; [C1 P1 V6]; [C1 P1 V6] # ς𑐽𑜫.𐫄
-T; Σ𑐽𵢈𑜫。𞬩\u200C𐫄; [C1 P1 V6]; [P1 V6] # σ𑐽𑜫.𐫄
-N; Σ𑐽𵢈𑜫。𞬩\u200C𐫄; [C1 P1 V6]; [C1 P1 V6] # σ𑐽𑜫.𐫄
-T; σ𑐽𵢈𑜫。𞬩\u200C𐫄; [C1 P1 V6]; [P1 V6] # σ𑐽𑜫.𐫄
-N; σ𑐽𵢈𑜫。𞬩\u200C𐫄; [C1 P1 V6]; [C1 P1 V6] # σ𑐽𑜫.𐫄
-B; xn--4xa2260lk3b8z15g.xn--tw9ct349a; [V6]; [V6]
-B; xn--4xa2260lk3b8z15g.xn--0ug4653g2xzf; [C1 V6]; [C1 V6] # σ𑐽𑜫.𐫄
-B; xn--3xa4260lk3b8z15g.xn--0ug4653g2xzf; [C1 V6]; [C1 V6] # ς𑐽𑜫.𐫄
-T; Σ𑐽𵢈𑜫。𞬩\u200C𐫄; [C1 P1 V6]; [P1 V6] # σ𑐽𑜫.𐫄
-N; Σ𑐽𵢈𑜫。𞬩\u200C𐫄; [C1 P1 V6]; [C1 P1 V6] # σ𑐽𑜫.𐫄
-T; σ𑐽𵢈𑜫。𞬩\u200C𐫄; [C1 P1 V6]; [P1 V6] # σ𑐽𑜫.𐫄
-N; σ𑐽𵢈𑜫。𞬩\u200C𐫄; [C1 P1 V6]; [C1 P1 V6] # σ𑐽𑜫.𐫄
-B; -򵏽。-\uFC4C\u075B; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -.-نحݛ
-B; -򵏽。-\u0646\u062D\u075B; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -.-نحݛ
-B; xn----o452j.xn----cnc8e38c; [B1 V3 V6]; [B1 V3 V6] # -.-نحݛ
-T; ⺢򇺅𝟤。\u200D🚷; [C2 P1 V6]; [P1 V6] # ⺢2.🚷
-N; ⺢򇺅𝟤。\u200D🚷; [C2 P1 V6]; [C2 P1 V6] # ⺢2.🚷
-T; ⺢򇺅2。\u200D🚷; [C2 P1 V6]; [P1 V6] # ⺢2.🚷
-N; ⺢򇺅2。\u200D🚷; [C2 P1 V6]; [C2 P1 V6] # ⺢2.🚷
-B; xn--2-4jtr4282f.xn--m78h; [V6]; [V6]
-B; xn--2-4jtr4282f.xn--1ugz946p; [C2 V6]; [C2 V6] # ⺢2.🚷
-T; \u0CF8\u200D\u2DFE𐹲。򤐶; [B5 B6 C2 P1 V6]; [B5 B6 P1 V6] # ⷾ𐹲.
-N; \u0CF8\u200D\u2DFE𐹲。򤐶; [B5 B6 C2 P1 V6]; [B5 B6 C2 P1 V6] # ⷾ𐹲.
-T; \u0CF8\u200D\u2DFE𐹲。򤐶; [B5 B6 C2 P1 V6]; [B5 B6 P1 V6] # ⷾ𐹲.
-N; \u0CF8\u200D\u2DFE𐹲。򤐶; [B5 B6 C2 P1 V6]; [B5 B6 C2 P1 V6] # ⷾ𐹲.
-B; xn--hvc220of37m.xn--3e36c; [B5 B6 V6]; [B5 B6 V6] # ⷾ𐹲.
-B; xn--hvc488g69j402t.xn--3e36c; [B5 B6 C2 V6]; [B5 B6 C2 V6] # ⷾ𐹲.
-B; 𐹢.Ⴍ₉⁸; [B1 P1 V6]; [B1 P1 V6]
-B; 𐹢.Ⴍ98; [B1 P1 V6]; [B1 P1 V6]
-B; 𐹢.ⴍ98; [B1]; [B1]
-B; xn--9n0d.xn--98-u61a; [B1]; [B1]
-B; xn--9n0d.xn--98-7ek; [B1 V6]; [B1 V6]
-B; 𐹢.ⴍ₉⁸; [B1]; [B1]
-T; \u200C\u034F。ß\u08E2⒚≯; [B1 B5 B6 C1 P1 V6]; [B5 B6 P1 V6 A4_2] # .ß⒚≯
-N; \u200C\u034F。ß\u08E2⒚≯; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 C1 P1 V6] # .ß⒚≯
-T; \u200C\u034F。ß\u08E2⒚>\u0338; [B1 B5 B6 C1 P1 V6]; [B5 B6 P1 V6 A4_2] # .ß⒚≯
-N; \u200C\u034F。ß\u08E2⒚>\u0338; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 C1 P1 V6] # .ß⒚≯
-T; \u200C\u034F。ß\u08E219.≯; [B1 B5 C1 P1 V6]; [B1 B5 P1 V6 A4_2] # .ß19.≯
-N; \u200C\u034F。ß\u08E219.≯; [B1 B5 C1 P1 V6]; [B1 B5 C1 P1 V6] # .ß19.≯
-T; \u200C\u034F。ß\u08E219.>\u0338; [B1 B5 C1 P1 V6]; [B1 B5 P1 V6 A4_2] # .ß19.≯
-N; \u200C\u034F。ß\u08E219.>\u0338; [B1 B5 C1 P1 V6]; [B1 B5 C1 P1 V6] # .ß19.≯
-T; \u200C\u034F。SS\u08E219.>\u0338; [B1 B5 C1 P1 V6]; [B1 B5 P1 V6 A4_2] # .ss19.≯
-N; \u200C\u034F。SS\u08E219.>\u0338; [B1 B5 C1 P1 V6]; [B1 B5 C1 P1 V6] # .ss19.≯
-T; \u200C\u034F。SS\u08E219.≯; [B1 B5 C1 P1 V6]; [B1 B5 P1 V6 A4_2] # .ss19.≯
-N; \u200C\u034F。SS\u08E219.≯; [B1 B5 C1 P1 V6]; [B1 B5 C1 P1 V6] # .ss19.≯
-T; \u200C\u034F。ss\u08E219.≯; [B1 B5 C1 P1 V6]; [B1 B5 P1 V6 A4_2] # .ss19.≯
-N; \u200C\u034F。ss\u08E219.≯; [B1 B5 C1 P1 V6]; [B1 B5 C1 P1 V6] # .ss19.≯
-T; \u200C\u034F。ss\u08E219.>\u0338; [B1 B5 C1 P1 V6]; [B1 B5 P1 V6 A4_2] # .ss19.≯
-N; \u200C\u034F。ss\u08E219.>\u0338; [B1 B5 C1 P1 V6]; [B1 B5 C1 P1 V6] # .ss19.≯
-T; \u200C\u034F。Ss\u08E219.>\u0338; [B1 B5 C1 P1 V6]; [B1 B5 P1 V6 A4_2] # .ss19.≯
-N; \u200C\u034F。Ss\u08E219.>\u0338; [B1 B5 C1 P1 V6]; [B1 B5 C1 P1 V6] # .ss19.≯
-T; \u200C\u034F。Ss\u08E219.≯; [B1 B5 C1 P1 V6]; [B1 B5 P1 V6 A4_2] # .ss19.≯
-N; \u200C\u034F。Ss\u08E219.≯; [B1 B5 C1 P1 V6]; [B1 B5 C1 P1 V6] # .ss19.≯
-B; .xn--ss19-w0i.xn--hdh; [B1 B5 V6 A4_2]; [B1 B5 V6 A4_2] # .ss19.≯
-B; xn--0ug.xn--ss19-w0i.xn--hdh; [B1 B5 C1 V6]; [B1 B5 C1 V6] # .ss19.≯
-B; xn--0ug.xn--19-fia813f.xn--hdh; [B1 B5 C1 V6]; [B1 B5 C1 V6] # .ß19.≯
-T; \u200C\u034F。SS\u08E2⒚>\u0338; [B1 B5 B6 C1 P1 V6]; [B5 B6 P1 V6 A4_2] # .ss⒚≯
-N; \u200C\u034F。SS\u08E2⒚>\u0338; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 C1 P1 V6] # .ss⒚≯
-T; \u200C\u034F。SS\u08E2⒚≯; [B1 B5 B6 C1 P1 V6]; [B5 B6 P1 V6 A4_2] # .ss⒚≯
-N; \u200C\u034F。SS\u08E2⒚≯; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 C1 P1 V6] # .ss⒚≯
-T; \u200C\u034F。ss\u08E2⒚≯; [B1 B5 B6 C1 P1 V6]; [B5 B6 P1 V6 A4_2] # .ss⒚≯
-N; \u200C\u034F。ss\u08E2⒚≯; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 C1 P1 V6] # .ss⒚≯
-T; \u200C\u034F。ss\u08E2⒚>\u0338; [B1 B5 B6 C1 P1 V6]; [B5 B6 P1 V6 A4_2] # .ss⒚≯
-N; \u200C\u034F。ss\u08E2⒚>\u0338; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 C1 P1 V6] # .ss⒚≯
-T; \u200C\u034F。Ss\u08E2⒚>\u0338; [B1 B5 B6 C1 P1 V6]; [B5 B6 P1 V6 A4_2] # .ss⒚≯
-N; \u200C\u034F。Ss\u08E2⒚>\u0338; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 C1 P1 V6] # .ss⒚≯
-T; \u200C\u034F。Ss\u08E2⒚≯; [B1 B5 B6 C1 P1 V6]; [B5 B6 P1 V6 A4_2] # .ss⒚≯
-N; \u200C\u034F。Ss\u08E2⒚≯; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 C1 P1 V6] # .ss⒚≯
-B; .xn--ss-9if872xjjc; [B5 B6 V6 A4_2]; [B5 B6 V6 A4_2] # .ss⒚≯
-B; xn--0ug.xn--ss-9if872xjjc; [B1 B5 B6 C1 V6]; [B1 B5 B6 C1 V6] # .ss⒚≯
-B; xn--0ug.xn--zca612bx9vo5b; [B1 B5 B6 C1 V6]; [B1 B5 B6 C1 V6] # .ß⒚≯
-T; \u200C𞥍ᡌ.𣃔; [B1 C1 P1 V6]; [B2 B3 P1 V6] # ᡌ.𣃔
-N; \u200C𞥍ᡌ.𣃔; [B1 C1 P1 V6]; [B1 C1 P1 V6] # ᡌ.𣃔
-T; \u200C𞥍ᡌ.𣃔; [B1 C1 P1 V6]; [B2 B3 P1 V6] # ᡌ.𣃔
-N; \u200C𞥍ᡌ.𣃔; [B1 C1 P1 V6]; [B1 C1 P1 V6] # ᡌ.𣃔
-B; xn--c8e5919u.xn--od1j; [B2 B3 V6]; [B2 B3 V6]
-B; xn--c8e180bqz13b.xn--od1j; [B1 C1 V6]; [B1 C1 V6] # ᡌ.𣃔
-B; \u07D0򜬝-񡢬。\u0FA0Ⴛ𞷏𝆬; [B1 B2 B3 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # ߐ-.ྠႻ𝆬
-B; \u07D0򜬝-񡢬。\u0FA0ⴛ𞷏𝆬; [B1 B2 B3 P1 V5 V6]; [B1 B2 B3 P1 V5 V6] # ߐ-.ྠⴛ𝆬
-B; xn----8bd11730jefvw.xn--wfd802mpm20agsxa; [B1 B2 B3 V5 V6]; [B1 B2 B3 V5 V6] # ߐ-.ྠⴛ𝆬
-B; xn----8bd11730jefvw.xn--wfd08cd265hgsxa; [B1 B2 B3 V5 V6]; [B1 B2 B3 V5 V6] # ߐ-.ྠႻ𝆬
-B; 𝨥。⫟𑈾; [V5]; [V5]
-B; xn--n82h.xn--63iw010f; [V5]; [V5]
-T; ⾛\u0753.Ⴕ𞠬\u0604\u200D; [B5 B6 C2 P1 V6]; [B5 B6 P1 V6] # 走ݓ.Ⴕ𞠬
-N; ⾛\u0753.Ⴕ𞠬\u0604\u200D; [B5 B6 C2 P1 V6]; [B5 B6 C2 P1 V6] # 走ݓ.Ⴕ𞠬
-T; 走\u0753.Ⴕ𞠬\u0604\u200D; [B5 B6 C2 P1 V6]; [B5 B6 P1 V6] # 走ݓ.Ⴕ𞠬
-N; 走\u0753.Ⴕ𞠬\u0604\u200D; [B5 B6 C2 P1 V6]; [B5 B6 C2 P1 V6] # 走ݓ.Ⴕ𞠬
-T; 走\u0753.ⴕ𞠬\u0604\u200D; [B5 B6 C2 P1 V6]; [B5 B6 P1 V6] # 走ݓ.ⴕ𞠬
-N; 走\u0753.ⴕ𞠬\u0604\u200D; [B5 B6 C2 P1 V6]; [B5 B6 C2 P1 V6] # 走ݓ.ⴕ𞠬
-B; xn--6ob9779d.xn--mfb511rxu80a; [B5 B6 V6]; [B5 B6 V6] # 走ݓ.ⴕ𞠬
-B; xn--6ob9779d.xn--mfb444k5gjt754b; [B5 B6 C2 V6]; [B5 B6 C2 V6] # 走ݓ.ⴕ𞠬
-B; xn--6ob9779d.xn--mfb785ck569a; [B5 B6 V6]; [B5 B6 V6] # 走ݓ.Ⴕ𞠬
-B; xn--6ob9779d.xn--mfb785czmm0y85b; [B5 B6 C2 V6]; [B5 B6 C2 V6] # 走ݓ.Ⴕ𞠬
-T; ⾛\u0753.ⴕ𞠬\u0604\u200D; [B5 B6 C2 P1 V6]; [B5 B6 P1 V6] # 走ݓ.ⴕ𞠬
-N; ⾛\u0753.ⴕ𞠬\u0604\u200D; [B5 B6 C2 P1 V6]; [B5 B6 C2 P1 V6] # 走ݓ.ⴕ𞠬
-T; -ᢗ\u200C🄄.𑜢; [C1 P1 V3 V5 V6]; [P1 V3 V5 V6] # -ᢗ🄄.𑜢
-N; -ᢗ\u200C🄄.𑜢; [C1 P1 V3 V5 V6]; [C1 P1 V3 V5 V6] # -ᢗ🄄.𑜢
-T; -ᢗ\u200C3,.𑜢; [C1 P1 V3 V5 V6]; [P1 V3 V5 V6] # -ᢗ3,.𑜢
-N; -ᢗ\u200C3,.𑜢; [C1 P1 V3 V5 V6]; [C1 P1 V3 V5 V6] # -ᢗ3,.𑜢
-B; xn---3,-3eu.xn--9h2d; [P1 V3 V5 V6]; [P1 V3 V5 V6]
-B; xn---3,-3eu051c.xn--9h2d; [C1 P1 V3 V5 V6]; [C1 P1 V3 V5 V6] # -ᢗ3,.𑜢
-B; xn----pck1820x.xn--9h2d; [V3 V5 V6]; [V3 V5 V6]
-B; xn----pck312bx563c.xn--9h2d; [C1 V3 V5 V6]; [C1 V3 V5 V6] # -ᢗ🄄.𑜢
-T; ≠𐸁𹏁\u200C.Ⴚ򳄠; [B1 C1 P1 V6]; [B1 P1 V6] # ≠.Ⴚ
-N; ≠𐸁𹏁\u200C.Ⴚ򳄠; [B1 C1 P1 V6]; [B1 C1 P1 V6] # ≠.Ⴚ
-T; =\u0338𐸁𹏁\u200C.Ⴚ򳄠; [B1 C1 P1 V6]; [B1 P1 V6] # ≠.Ⴚ
-N; =\u0338𐸁𹏁\u200C.Ⴚ򳄠; [B1 C1 P1 V6]; [B1 C1 P1 V6] # ≠.Ⴚ
-T; =\u0338𐸁𹏁\u200C.ⴚ򳄠; [B1 C1 P1 V6]; [B1 P1 V6] # ≠.ⴚ
-N; =\u0338𐸁𹏁\u200C.ⴚ򳄠; [B1 C1 P1 V6]; [B1 C1 P1 V6] # ≠.ⴚ
-T; ≠𐸁𹏁\u200C.ⴚ򳄠; [B1 C1 P1 V6]; [B1 P1 V6] # ≠.ⴚ
-N; ≠𐸁𹏁\u200C.ⴚ򳄠; [B1 C1 P1 V6]; [B1 C1 P1 V6] # ≠.ⴚ
-B; xn--1ch2293gv3nr.xn--ilj23531g; [B1 V6]; [B1 V6]
-B; xn--0ug83gn618a21ov.xn--ilj23531g; [B1 C1 V6]; [B1 C1 V6] # ≠.ⴚ
-B; xn--1ch2293gv3nr.xn--ynd49496l; [B1 V6]; [B1 V6]
-B; xn--0ug83gn618a21ov.xn--ynd49496l; [B1 C1 V6]; [B1 C1 V6] # ≠.Ⴚ
-B; \u0669。󠇀𑇊; [B1 B3 B6 V5]; [B1 B3 B6 V5] # ٩.𑇊
-B; \u0669。󠇀𑇊; [B1 B3 B6 V5]; [B1 B3 B6 V5] # ٩.𑇊
-B; xn--iib.xn--6d1d; [B1 B3 B6 V5]; [B1 B3 B6 V5] # ٩.𑇊
-B; \u1086𞶀≯⒍。-; [B1 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # ႆ≯⒍.-
-B; \u1086𞶀>\u0338⒍。-; [B1 P1 V3 V5 V6]; [B1 P1 V3 V5 V6] # ႆ≯⒍.-
-B; \u1086𞶀≯6.。-; [B1 P1 V3 V5 V6 A4_2]; [B1 P1 V3 V5 V6 A4_2] # ႆ≯6..-
-B; \u1086𞶀>\u03386.。-; [B1 P1 V3 V5 V6 A4_2]; [B1 P1 V3 V5 V6 A4_2] # ႆ≯6..-
-B; xn--6-oyg968k7h74b..-; [B1 V3 V5 V6 A4_2]; [B1 V3 V5 V6 A4_2] # ႆ≯6..-
-B; xn--hmd482gqqb8730g.-; [B1 V3 V5 V6]; [B1 V3 V5 V6] # ႆ≯⒍.-
-B; \u17B4.쮇-; [P1 V3 V5 V6]; [P1 V3 V5 V6] # .쮇-
-B; \u17B4.쮇-; [P1 V3 V5 V6]; [P1 V3 V5 V6] # .쮇-
-B; xn--z3e.xn----938f; [V3 V5 V6]; [V3 V5 V6] # .쮇-
-T; \u200C𑓂。⒈-􀪛; [C1 P1 V6]; [P1 V5 V6] # 𑓂.⒈-
-N; \u200C𑓂。⒈-􀪛; [C1 P1 V6]; [C1 P1 V6] # 𑓂.⒈-
-T; \u200C𑓂。1.-􀪛; [C1 P1 V3 V6]; [P1 V3 V5 V6] # 𑓂.1.-
-N; \u200C𑓂。1.-􀪛; [C1 P1 V3 V6]; [C1 P1 V3 V6] # 𑓂.1.-
-B; xn--wz1d.1.xn----rg03o; [V3 V5 V6]; [V3 V5 V6]
-B; xn--0ugy057g.1.xn----rg03o; [C1 V3 V6]; [C1 V3 V6] # 𑓂.1.-
-B; xn--wz1d.xn----dcp29674o; [V5 V6]; [V5 V6]
-B; xn--0ugy057g.xn----dcp29674o; [C1 V6]; [C1 V6] # 𑓂.⒈-
-T; ⒈\uFEAE\u200C。\u20E9🖞\u200C𖬴; [B1 C1 P1 V5 V6]; [B1 P1 V5 V6] # ⒈ر.⃩🖞𖬴
-N; ⒈\uFEAE\u200C。\u20E9🖞\u200C𖬴; [B1 C1 P1 V5 V6]; [B1 C1 P1 V5 V6] # ⒈ر.⃩🖞𖬴
-T; 1.\u0631\u200C。\u20E9🖞\u200C𖬴; [B1 B3 C1 V5]; [B1 V5] # 1.ر.⃩🖞𖬴
-N; 1.\u0631\u200C。\u20E9🖞\u200C𖬴; [B1 B3 C1 V5]; [B1 B3 C1 V5] # 1.ر.⃩🖞𖬴
-B; 1.xn--wgb.xn--c1g6021kg18c; [B1 V5]; [B1 V5] # 1.ر.⃩🖞𖬴
-B; 1.xn--wgb253k.xn--0ugz6a8040fty5d; [B1 B3 C1 V5]; [B1 B3 C1 V5] # 1.ر.⃩🖞𖬴
-B; xn--wgb746m.xn--c1g6021kg18c; [B1 V5 V6]; [B1 V5 V6] # ⒈ر.⃩🖞𖬴
-B; xn--wgb253kmfd.xn--0ugz6a8040fty5d; [B1 C1 V5 V6]; [B1 C1 V5 V6] # ⒈ر.⃩🖞𖬴
-B; 󌭇。𝟐\u1BA8\u07D4; [B1 P1 V6]; [B1 P1 V6] # .2ᮨߔ
-B; 󌭇。2\u1BA8\u07D4; [B1 P1 V6]; [B1 P1 V6] # .2ᮨߔ
-B; xn--xm89d.xn--2-icd143m; [B1 V6]; [B1 V6] # .2ᮨߔ
-T; \uFD8F򫳺.ς\u200D𐹷; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 P1 V6] # مخم.ς𐹷
-N; \uFD8F򫳺.ς\u200D𐹷; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 C2 P1 V6] # مخم.ς𐹷
-T; \u0645\u062E\u0645򫳺.ς\u200D𐹷; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 P1 V6] # مخم.ς𐹷
-N; \u0645\u062E\u0645򫳺.ς\u200D𐹷; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 C2 P1 V6] # مخم.ς𐹷
-T; \u0645\u062E\u0645򫳺.Σ\u200D𐹷; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 P1 V6] # مخم.σ𐹷
-N; \u0645\u062E\u0645򫳺.Σ\u200D𐹷; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 C2 P1 V6] # مخم.σ𐹷
-T; \u0645\u062E\u0645򫳺.σ\u200D𐹷; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 P1 V6] # مخم.σ𐹷
-N; \u0645\u062E\u0645򫳺.σ\u200D𐹷; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 C2 P1 V6] # مخم.σ𐹷
-B; xn--tgb9bb64691z.xn--4xa6667k; [B2 B3 B5 B6 V6]; [B2 B3 B5 B6 V6] # مخم.σ𐹷
-B; xn--tgb9bb64691z.xn--4xa895lrp7n; [B2 B3 B5 B6 C2 V6]; [B2 B3 B5 B6 C2 V6] # مخم.σ𐹷
-B; xn--tgb9bb64691z.xn--3xa006lrp7n; [B2 B3 B5 B6 C2 V6]; [B2 B3 B5 B6 C2 V6] # مخم.ς𐹷
-T; \uFD8F򫳺.Σ\u200D𐹷; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 P1 V6] # مخم.σ𐹷
-N; \uFD8F򫳺.Σ\u200D𐹷; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 C2 P1 V6] # مخم.σ𐹷
-T; \uFD8F򫳺.σ\u200D𐹷; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 P1 V6] # مخم.σ𐹷
-N; \uFD8F򫳺.σ\u200D𐹷; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 C2 P1 V6] # مخم.σ𐹷
-B; ⒎\u06C1\u0605。\uAAF6۵𐇽; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ⒎ہ.꫶۵𐇽
-B; 7.\u06C1\u0605。\uAAF6۵𐇽; [B1 P1 V5 V6]; [B1 P1 V5 V6] # 7.ہ.꫶۵𐇽
-B; 7.xn--nfb98a.xn--imb3805fxt8b; [B1 V5 V6]; [B1 V5 V6] # 7.ہ.꫶۵𐇽
-B; xn--nfb98ai25e.xn--imb3805fxt8b; [B1 V5 V6]; [B1 V5 V6] # ⒎ہ.꫶۵𐇽
-B; -ᡥ᠆󍲭。\u0605\u1A5D𐹡; [B1 P1 V3 V6]; [B1 P1 V3 V6] # -ᡥ᠆.ᩝ𐹡
-B; xn----f3j6s87156i.xn--nfb035hoo2p; [B1 V3 V6]; [B1 V3 V6] # -ᡥ᠆.ᩝ𐹡
-T; \u200D.\u06BD\u0663\u0596; [B1 C2]; [A4_2] # .ڽ٣֖
-N; \u200D.\u06BD\u0663\u0596; [B1 C2]; [B1 C2] # .ڽ٣֖
-B; .xn--hcb32bni; [A4_2]; [A4_2] # .ڽ٣֖
-B; xn--1ug.xn--hcb32bni; [B1 C2]; [B1 C2] # .ڽ٣֖
-B; xn--hcb32bni; \u06BD\u0663\u0596; xn--hcb32bni # ڽ٣֖
-B; \u06BD\u0663\u0596; ; xn--hcb32bni # ڽ٣֖
-T; 㒧۱.Ⴚ\u0678\u200D; [B5 B6 C2 P1 V6]; [B5 B6 P1 V6] # 㒧۱.Ⴚيٴ
-N; 㒧۱.Ⴚ\u0678\u200D; [B5 B6 C2 P1 V6]; [B5 B6 C2 P1 V6] # 㒧۱.Ⴚيٴ
-T; 㒧۱.Ⴚ\u064A\u0674\u200D; [B5 B6 C2 P1 V6]; [B5 B6 P1 V6] # 㒧۱.Ⴚيٴ
-N; 㒧۱.Ⴚ\u064A\u0674\u200D; [B5 B6 C2 P1 V6]; [B5 B6 C2 P1 V6] # 㒧۱.Ⴚيٴ
-T; 㒧۱.ⴚ\u064A\u0674\u200D; [B5 B6 C2]; [B5 B6] # 㒧۱.ⴚيٴ
-N; 㒧۱.ⴚ\u064A\u0674\u200D; [B5 B6 C2]; [B5 B6 C2] # 㒧۱.ⴚيٴ
-B; xn--emb715u.xn--mhb8fy26k; [B5 B6]; [B5 B6] # 㒧۱.ⴚيٴ
-B; xn--emb715u.xn--mhb8f960g03l; [B5 B6 C2]; [B5 B6 C2] # 㒧۱.ⴚيٴ
-B; xn--emb715u.xn--mhb8f817a; [B5 B6 V6]; [B5 B6 V6] # 㒧۱.Ⴚيٴ
-B; xn--emb715u.xn--mhb8f817ao2p; [B5 B6 C2 V6]; [B5 B6 C2 V6] # 㒧۱.Ⴚيٴ
-T; 㒧۱.ⴚ\u0678\u200D; [B5 B6 C2]; [B5 B6] # 㒧۱.ⴚيٴ
-N; 㒧۱.ⴚ\u0678\u200D; [B5 B6 C2]; [B5 B6 C2] # 㒧۱.ⴚيٴ
-B; \u0F94ꡋ-.-𖬴; [V3 V5]; [V3 V5] # ྔꡋ-.-𖬴
-B; \u0F94ꡋ-.-𖬴; [V3 V5]; [V3 V5] # ྔꡋ-.-𖬴
-B; xn----ukg9938i.xn----4u5m; [V3 V5]; [V3 V5] # ྔꡋ-.-𖬴
-T; 񿒳-⋢\u200C.标-; [C1 P1 V3 V6]; [P1 V3 V6] # -⋢.标-
-N; 񿒳-⋢\u200C.标-; [C1 P1 V3 V6]; [C1 P1 V3 V6] # -⋢.标-
-T; 񿒳-⊑\u0338\u200C.标-; [C1 P1 V3 V6]; [P1 V3 V6] # -⋢.标-
-N; 񿒳-⊑\u0338\u200C.标-; [C1 P1 V3 V6]; [C1 P1 V3 V6] # -⋢.标-
-T; 񿒳-⋢\u200C.标-; [C1 P1 V3 V6]; [P1 V3 V6] # -⋢.标-
-N; 񿒳-⋢\u200C.标-; [C1 P1 V3 V6]; [C1 P1 V3 V6] # -⋢.标-
-T; 񿒳-⊑\u0338\u200C.标-; [C1 P1 V3 V6]; [P1 V3 V6] # -⋢.标-
-N; 񿒳-⊑\u0338\u200C.标-; [C1 P1 V3 V6]; [C1 P1 V3 V6] # -⋢.标-
-B; xn----9mo67451g.xn----qj7b; [V3 V6]; [V3 V6]
-B; xn----sgn90kn5663a.xn----qj7b; [C1 V3 V6]; [C1 V3 V6] # -⋢.标-
-T; \u0671.ς\u07DC; [B5 B6]; [B5 B6] # ٱ.ςߜ
-N; \u0671.ς\u07DC; [B5 B6]; [B5 B6] # ٱ.ςߜ
-T; \u0671.ς\u07DC; [B5 B6]; [B5 B6] # ٱ.ςߜ
-N; \u0671.ς\u07DC; [B5 B6]; [B5 B6] # ٱ.ςߜ
-B; \u0671.Σ\u07DC; [B5 B6]; [B5 B6] # ٱ.σߜ
-B; \u0671.σ\u07DC; [B5 B6]; [B5 B6] # ٱ.σߜ
-B; xn--qib.xn--4xa21s; [B5 B6]; [B5 B6] # ٱ.σߜ
-B; xn--qib.xn--3xa41s; [B5 B6]; [B5 B6] # ٱ.ςߜ
-B; \u0671.Σ\u07DC; [B5 B6]; [B5 B6] # ٱ.σߜ
-B; \u0671.σ\u07DC; [B5 B6]; [B5 B6] # ٱ.σߜ
-T; 񼈶\u0605.\u08C1\u200D𑑂𱼱; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 P1 V6] # .𑑂
-N; 񼈶\u0605.\u08C1\u200D𑑂𱼱; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 C2 P1 V6] # .𑑂
-T; 񼈶\u0605.\u08C1\u200D𑑂𱼱; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 P1 V6] # .𑑂
-N; 񼈶\u0605.\u08C1\u200D𑑂𱼱; [B2 B3 B5 B6 C2 P1 V6]; [B2 B3 B5 B6 C2 P1 V6] # .𑑂
-B; xn--nfb17942h.xn--nzb6708kx3pn; [B2 B3 B5 B6 V6]; [B2 B3 B5 B6 V6] # .𑑂
-B; xn--nfb17942h.xn--nzb240jv06otevq; [B2 B3 B5 B6 C2 V6]; [B2 B3 B5 B6 C2 V6] # .𑑂
-B; 𐹾𐋩𞵜。\u1BF2; [B1 P1 V5 V6]; [B1 P1 V5 V6] # 𐹾𐋩.᯲
-B; 𐹾𐋩𞵜。\u1BF2; [B1 P1 V5 V6]; [B1 P1 V5 V6] # 𐹾𐋩.᯲
-B; xn--d97cn8rn44p.xn--0zf; [B1 V5 V6]; [B1 V5 V6] # 𐹾𐋩.᯲
-T; 6\u1160\u1C33󠸧.򟜊锰\u072Cς; [B1 B5 P1 V6]; [B1 B5 P1 V6] # 6ᰳ.锰ܬς
-N; 6\u1160\u1C33󠸧.򟜊锰\u072Cς; [B1 B5 P1 V6]; [B1 B5 P1 V6] # 6ᰳ.锰ܬς
-B; 6\u1160\u1C33󠸧.򟜊锰\u072CΣ; [B1 B5 P1 V6]; [B1 B5 P1 V6] # 6ᰳ.锰ܬσ
-B; 6\u1160\u1C33󠸧.򟜊锰\u072Cσ; [B1 B5 P1 V6]; [B1 B5 P1 V6] # 6ᰳ.锰ܬσ
-B; xn--6-5bh476ewr517a.xn--4xa95ohw6pk078g; [B1 B5 V6]; [B1 B5 V6] # 6ᰳ.锰ܬσ
-B; xn--6-5bh476ewr517a.xn--3xa16ohw6pk078g; [B1 B5 V6]; [B1 B5 V6] # 6ᰳ.锰ܬς
-B; \u06B3\uFE04񅎦𝟽。𐹽; [B1 B2 P1 V6]; [B1 B2 P1 V6] # ڳ7.𐹽
-B; \u06B3\uFE04񅎦7。𐹽; [B1 B2 P1 V6]; [B1 B2 P1 V6] # ڳ7.𐹽
-B; xn--7-yuc34665f.xn--1o0d; [B1 B2 V6]; [B1 B2 V6] # ڳ7.𐹽
-T; 𞮧.\u200C⫞; [B1 C1 P1 V6]; [B1 P1 V6] # .⫞
-N; 𞮧.\u200C⫞; [B1 C1 P1 V6]; [B1 C1 P1 V6] # .⫞
-T; 𞮧.\u200C⫞; [B1 C1 P1 V6]; [B1 P1 V6] # .⫞
-N; 𞮧.\u200C⫞; [B1 C1 P1 V6]; [B1 C1 P1 V6] # .⫞
-B; xn--pw6h.xn--53i; [B1 V6]; [B1 V6]
-B; xn--pw6h.xn--0ug283b; [B1 C1 V6]; [B1 C1 V6] # .⫞
-B; -񕉴.\u06E0ᢚ-; [P1 V3 V5 V6]; [P1 V3 V5 V6] # -.۠ᢚ-
-B; xn----qi38c.xn----jxc827k; [V3 V5 V6]; [V3 V5 V6] # -.۠ᢚ-
-T; ⌁\u200D𑄴.\u200C𝟩\u066C; [B1 C1 C2]; [B1] # ⌁𑄴.7٬
-N; ⌁\u200D𑄴.\u200C𝟩\u066C; [B1 C1 C2]; [B1 C1 C2] # ⌁𑄴.7٬
-T; ⌁\u200D𑄴.\u200C7\u066C; [B1 C1 C2]; [B1] # ⌁𑄴.7٬
-N; ⌁\u200D𑄴.\u200C7\u066C; [B1 C1 C2]; [B1 C1 C2] # ⌁𑄴.7٬
-B; xn--nhh5394g.xn--7-xqc; [B1]; [B1] # ⌁𑄴.7٬
-B; xn--1ug38i2093a.xn--7-xqc297q; [B1 C1 C2]; [B1 C1 C2] # ⌁𑄴.7٬
-B; ︒\uFD05\u0E37\uFEFC。岓\u1BF2󠾃ᡂ; [B1 P1 V6]; [B1 P1 V6] # ︒صىืلا.岓᯲ᡂ
-B; 。\u0635\u0649\u0E37\u0644\u0627。岓\u1BF2󠾃ᡂ; [P1 V6 A4_2]; [P1 V6 A4_2] # .صىืلا.岓᯲ᡂ
-B; .xn--mgb1a7bt462h.xn--17e10qe61f9r71s; [V6 A4_2]; [V6 A4_2] # .صىืلا.岓᯲ᡂ
-B; xn--mgb1a7bt462hf267a.xn--17e10qe61f9r71s; [B1 V6]; [B1 V6] # ︒صىืلا.岓᯲ᡂ
-B; 𐹨。8𑁆; [B1]; [B1]
-B; xn--go0d.xn--8-yu7i; [B1]; [B1]
-B; 𞀕\u0D43.ꡚ\u08FA𐹰\u0D44; [B1 B3 B5 B6 V5]; [B1 B3 B5 B6 V5] # 𞀕ൃ.ꡚࣺ𐹰ൄ
-B; 𞀕\u0D43.ꡚ\u08FA𐹰\u0D44; [B1 B3 B5 B6 V5]; [B1 B3 B5 B6 V5] # 𞀕ൃ.ꡚࣺ𐹰ൄ
-B; xn--mxc5210v.xn--90b01t8u2p1ltd; [B1 B3 B5 B6 V5]; [B1 B3 B5 B6 V5] # 𞀕ൃ.ꡚࣺ𐹰ൄ
-B; 󆩏𐦹\u0303。󠍅; [B1 B5 B6 P1 V6]; [B1 B5 B6 P1 V6] # ̃.
-B; 󆩏𐦹\u0303。󠍅; [B1 B5 B6 P1 V6]; [B1 B5 B6 P1 V6] # ̃.
-B; xn--nsa1265kp9z9e.xn--xt36e; [B1 B5 B6 V6]; [B1 B5 B6 V6] # ̃.
-B; ᢌ.-\u085A; [V3]; [V3] # ᢌ.-࡚
-B; ᢌ.-\u085A; [V3]; [V3] # ᢌ.-࡚
-B; xn--59e.xn----5jd; [V3]; [V3] # ᢌ.-࡚
-B; 𥛛𑘶。𐹬𐲸\u0BCD; [B1 P1 V6]; [B1 P1 V6] # 𥛛𑘶.𐹬்
-B; 𥛛𑘶。𐹬𐲸\u0BCD; [B1 P1 V6]; [B1 P1 V6] # 𥛛𑘶.𐹬்
-B; xn--jb2dj685c.xn--xmc5562kmcb; [B1 V6]; [B1 V6] # 𥛛𑘶.𐹬்
-T; Ⴐ\u077F.\u200C; [B1 B5 B6 C1 P1 V6]; [B5 B6 P1 V6] # Ⴐݿ.
-N; Ⴐ\u077F.\u200C; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 C1 P1 V6] # Ⴐݿ.
-T; Ⴐ\u077F.\u200C; [B1 B5 B6 C1 P1 V6]; [B5 B6 P1 V6] # Ⴐݿ.
-N; Ⴐ\u077F.\u200C; [B1 B5 B6 C1 P1 V6]; [B1 B5 B6 C1 P1 V6] # Ⴐݿ.
-T; ⴐ\u077F.\u200C; [B1 B5 B6 C1]; [B5 B6] # ⴐݿ.
-N; ⴐ\u077F.\u200C; [B1 B5 B6 C1]; [B1 B5 B6 C1] # ⴐݿ.
-B; xn--gqb743q.; [B5 B6]; [B5 B6] # ⴐݿ.
-B; xn--gqb743q.xn--0ug; [B1 B5 B6 C1]; [B1 B5 B6 C1] # ⴐݿ.
-B; xn--gqb918b.; [B5 B6 V6]; [B5 B6 V6] # Ⴐݿ.
-B; xn--gqb918b.xn--0ug; [B1 B5 B6 C1 V6]; [B1 B5 B6 C1 V6] # Ⴐݿ.
-T; ⴐ\u077F.\u200C; [B1 B5 B6 C1]; [B5 B6] # ⴐݿ.
-N; ⴐ\u077F.\u200C; [B1 B5 B6 C1]; [B1 B5 B6 C1] # ⴐݿ.
-T; 🄅𑲞-⒈。\u200Dᠩ\u06A5; [B1 C2 P1 V6]; [B1 B5 B6 P1 V6] # 🄅𑲞-⒈.ᠩڥ
-N; 🄅𑲞-⒈。\u200Dᠩ\u06A5; [B1 C2 P1 V6]; [B1 C2 P1 V6] # 🄅𑲞-⒈.ᠩڥ
-T; 4,𑲞-1.。\u200Dᠩ\u06A5; [B1 C2 P1 V6 A4_2]; [B1 B5 B6 P1 V6 A4_2] # 4,𑲞-1..ᠩڥ
-N; 4,𑲞-1.。\u200Dᠩ\u06A5; [B1 C2 P1 V6 A4_2]; [B1 C2 P1 V6 A4_2] # 4,𑲞-1..ᠩڥ
-B; xn--4,-1-w401a..xn--7jb180g; [B1 B5 B6 P1 V6 A4_2]; [B1 B5 B6 P1 V6 A4_2] # 4,𑲞-1..ᠩڥ
-B; xn--4,-1-w401a..xn--7jb180gexf; [B1 C2 P1 V6 A4_2]; [B1 C2 P1 V6 A4_2] # 4,𑲞-1..ᠩڥ
-B; xn----ecp8796hjtvg.xn--7jb180g; [B1 B5 B6 V6]; [B1 B5 B6 V6] # 🄅𑲞-⒈.ᠩڥ
-B; xn----ecp8796hjtvg.xn--7jb180gexf; [B1 C2 V6]; [B1 C2 V6] # 🄅𑲞-⒈.ᠩڥ
-B; 񗀤。𞤪򮿋; [B2 B3 P1 V6]; [B2 B3 P1 V6]
-B; 񗀤。𞤈򮿋; [B2 B3 P1 V6]; [B2 B3 P1 V6]
-B; xn--4240a.xn--ie6h83808a; [B2 B3 V6]; [B2 B3 V6]
-B; \u05C1۲。𐮊\u066C𝨊鄨; [B1 B2 B3 V5]; [B1 B2 B3 V5] # ׁ۲.𐮊٬𝨊鄨
-B; \u05C1۲。𐮊\u066C𝨊鄨; [B1 B2 B3 V5]; [B1 B2 B3 V5] # ׁ۲.𐮊٬𝨊鄨
-B; xn--pdb42d.xn--lib6412enztdwv6h; [B1 B2 B3 V5]; [B1 B2 B3 V5] # ׁ۲.𐮊٬𝨊鄨
-B; 𞭳-ꡁ。\u1A69\u0BCD-; [B1 B2 B3 P1 V3 V5 V6]; [B1 B2 B3 P1 V3 V5 V6] # -ꡁ.ᩩ்-
-B; xn----be4e4276f.xn----lze333i; [B1 B2 B3 V3 V5 V6]; [B1 B2 B3 V3 V5 V6] # -ꡁ.ᩩ்-
-T; \u1039-𚮭🞢.ß; [P1 V5 V6]; [P1 V5 V6] # ္-🞢.ß
-N; \u1039-𚮭🞢.ß; [P1 V5 V6]; [P1 V5 V6] # ္-🞢.ß
-T; \u1039-𚮭🞢.ß; [P1 V5 V6]; [P1 V5 V6] # ္-🞢.ß
-N; \u1039-𚮭🞢.ß; [P1 V5 V6]; [P1 V5 V6] # ္-🞢.ß
-B; \u1039-𚮭🞢.SS; [P1 V5 V6]; [P1 V5 V6] # ္-🞢.ss
-B; \u1039-𚮭🞢.ss; [P1 V5 V6]; [P1 V5 V6] # ္-🞢.ss
-B; \u1039-𚮭🞢.Ss; [P1 V5 V6]; [P1 V5 V6] # ္-🞢.ss
-B; xn----9tg11172akr8b.ss; [V5 V6]; [V5 V6] # ္-🞢.ss
-B; xn----9tg11172akr8b.xn--zca; [V5 V6]; [V5 V6] # ္-🞢.ß
-B; \u1039-𚮭🞢.SS; [P1 V5 V6]; [P1 V5 V6] # ္-🞢.ss
-B; \u1039-𚮭🞢.ss; [P1 V5 V6]; [P1 V5 V6] # ္-🞢.ss
-B; \u1039-𚮭🞢.Ss; [P1 V5 V6]; [P1 V5 V6] # ္-🞢.ss
-T; \uFCF2-\u200C。Ⴟ\u200C␣; [B3 B6 C1 P1 V6]; [B3 B6 P1 V3 V6] # ـَّ-.Ⴟ␣
-N; \uFCF2-\u200C。Ⴟ\u200C␣; [B3 B6 C1 P1 V6]; [B3 B6 C1 P1 V6] # ـَّ-.Ⴟ␣
-T; \u0640\u064E\u0651-\u200C。Ⴟ\u200C␣; [B3 B6 C1 P1 V6]; [B3 B6 P1 V3 V6] # ـَّ-.Ⴟ␣
-N; \u0640\u064E\u0651-\u200C。Ⴟ\u200C␣; [B3 B6 C1 P1 V6]; [B3 B6 C1 P1 V6] # ـَّ-.Ⴟ␣
-T; \u0640\u064E\u0651-\u200C。ⴟ\u200C␣; [B3 B6 C1]; [B3 B6 V3] # ـَّ-.ⴟ␣
-N; \u0640\u064E\u0651-\u200C。ⴟ\u200C␣; [B3 B6 C1]; [B3 B6 C1] # ـَّ-.ⴟ␣
-B; xn----eoc6bm.xn--xph904a; [B3 B6 V3]; [B3 B6 V3] # ـَّ-.ⴟ␣
-B; xn----eoc6bm0504a.xn--0ug13nd0j; [B3 B6 C1]; [B3 B6 C1] # ـَّ-.ⴟ␣
-B; xn----eoc6bm.xn--3nd240h; [B3 B6 V3 V6]; [B3 B6 V3 V6] # ـَّ-.Ⴟ␣
-B; xn----eoc6bm0504a.xn--3nd849e05c; [B3 B6 C1 V6]; [B3 B6 C1 V6] # ـَّ-.Ⴟ␣
-T; \uFCF2-\u200C。ⴟ\u200C␣; [B3 B6 C1]; [B3 B6 V3] # ـَّ-.ⴟ␣
-N; \uFCF2-\u200C。ⴟ\u200C␣; [B3 B6 C1]; [B3 B6 C1] # ـَّ-.ⴟ␣
-T; \u0D4D-\u200D\u200C。񥞧₅≠; [C1 C2 P1 V5 V6]; [P1 V3 V5 V6] # ്-.5≠
-N; \u0D4D-\u200D\u200C。񥞧₅≠; [C1 C2 P1 V5 V6]; [C1 C2 P1 V5 V6] # ്-.5≠
-T; \u0D4D-\u200D\u200C。񥞧₅=\u0338; [C1 C2 P1 V5 V6]; [P1 V3 V5 V6] # ്-.5≠
-N; \u0D4D-\u200D\u200C。񥞧₅=\u0338; [C1 C2 P1 V5 V6]; [C1 C2 P1 V5 V6] # ്-.5≠
-T; \u0D4D-\u200D\u200C。񥞧5≠; [C1 C2 P1 V5 V6]; [P1 V3 V5 V6] # ്-.5≠
-N; \u0D4D-\u200D\u200C。񥞧5≠; [C1 C2 P1 V5 V6]; [C1 C2 P1 V5 V6] # ്-.5≠
-T; \u0D4D-\u200D\u200C。񥞧5=\u0338; [C1 C2 P1 V5 V6]; [P1 V3 V5 V6] # ്-.5≠
-N; \u0D4D-\u200D\u200C。񥞧5=\u0338; [C1 C2 P1 V5 V6]; [C1 C2 P1 V5 V6] # ്-.5≠
-B; xn----jmf.xn--5-ufo50192e; [V3 V5 V6]; [V3 V5 V6] # ്-.5≠
-B; xn----jmf215lda.xn--5-ufo50192e; [C1 C2 V5 V6]; [C1 C2 V5 V6] # ്-.5≠
-B; 锣。\u0A4D󠘻󠚆; [P1 V5 V6]; [P1 V5 V6] # 锣.੍
-B; xn--gc5a.xn--ybc83044ppga; [V5 V6]; [V5 V6] # 锣.੍
-T; \u063D𑈾.\u0649\u200D\uA92B; [B3 C2]; xn--8gb2338k.xn--lhb0154f # ؽ𑈾.ى꤫
-N; \u063D𑈾.\u0649\u200D\uA92B; [B3 C2]; [B3 C2] # ؽ𑈾.ى꤫
-T; \u063D𑈾.\u0649\u200D\uA92B; [B3 C2]; xn--8gb2338k.xn--lhb0154f # ؽ𑈾.ى꤫
-N; \u063D𑈾.\u0649\u200D\uA92B; [B3 C2]; [B3 C2] # ؽ𑈾.ى꤫
-B; xn--8gb2338k.xn--lhb0154f; \u063D𑈾.\u0649\uA92B; xn--8gb2338k.xn--lhb0154f # ؽ𑈾.ى꤫
-B; \u063D𑈾.\u0649\uA92B; ; xn--8gb2338k.xn--lhb0154f # ؽ𑈾.ى꤫
-B; xn--8gb2338k.xn--lhb603k060h; [B3 C2]; [B3 C2] # ؽ𑈾.ى꤫
-T; \u0666⁴Ⴅ.\u08BD\u200C; [B1 B3 C1 P1 V6]; [B1 P1 V6] # ٦4Ⴅ.ࢽ
-N; \u0666⁴Ⴅ.\u08BD\u200C; [B1 B3 C1 P1 V6]; [B1 B3 C1 P1 V6] # ٦4Ⴅ.ࢽ
-T; \u06664Ⴅ.\u08BD\u200C; [B1 B3 C1 P1 V6]; [B1 P1 V6] # ٦4Ⴅ.ࢽ
-N; \u06664Ⴅ.\u08BD\u200C; [B1 B3 C1 P1 V6]; [B1 B3 C1 P1 V6] # ٦4Ⴅ.ࢽ
-T; \u06664ⴅ.\u08BD\u200C; [B1 B3 C1]; [B1] # ٦4ⴅ.ࢽ
-N; \u06664ⴅ.\u08BD\u200C; [B1 B3 C1]; [B1 B3 C1] # ٦4ⴅ.ࢽ
-B; xn--4-kqc6770a.xn--jzb; [B1]; [B1] # ٦4ⴅ.ࢽ
-B; xn--4-kqc6770a.xn--jzb840j; [B1 B3 C1]; [B1 B3 C1] # ٦4ⴅ.ࢽ
-B; xn--4-kqc489e.xn--jzb; [B1 V6]; [B1 V6] # ٦4Ⴅ.ࢽ
-B; xn--4-kqc489e.xn--jzb840j; [B1 B3 C1 V6]; [B1 B3 C1 V6] # ٦4Ⴅ.ࢽ
-T; \u0666⁴ⴅ.\u08BD\u200C; [B1 B3 C1]; [B1] # ٦4ⴅ.ࢽ
-N; \u0666⁴ⴅ.\u08BD\u200C; [B1 B3 C1]; [B1 B3 C1] # ٦4ⴅ.ࢽ
-T; ჁႱ6\u0318。ß\u1B03; [P1 V6]; [P1 V6] # ჁႱ6̘.ßᬃ
-N; ჁႱ6\u0318。ß\u1B03; [P1 V6]; [P1 V6] # ჁႱ6̘.ßᬃ
-T; ⴡⴑ6\u0318。ß\u1B03; ⴡⴑ6\u0318.ß\u1B03; xn--6-8cb7433a2ba.xn--ss-2vq # ⴡⴑ6̘.ßᬃ
-N; ⴡⴑ6\u0318。ß\u1B03; ⴡⴑ6\u0318.ß\u1B03; xn--6-8cb7433a2ba.xn--zca894k # ⴡⴑ6̘.ßᬃ
-B; ჁႱ6\u0318。SS\u1B03; [P1 V6]; [P1 V6] # ჁႱ6̘.ssᬃ
-B; ⴡⴑ6\u0318。ss\u1B03; ⴡⴑ6\u0318.ss\u1B03; xn--6-8cb7433a2ba.xn--ss-2vq # ⴡⴑ6̘.ssᬃ
-B; Ⴡⴑ6\u0318。Ss\u1B03; [P1 V6]; [P1 V6] # Ⴡⴑ6̘.ssᬃ
-B; xn--6-8cb306hms1a.xn--ss-2vq; [V6]; [V6] # Ⴡⴑ6̘.ssᬃ
-B; xn--6-8cb7433a2ba.xn--ss-2vq; ⴡⴑ6\u0318.ss\u1B03; xn--6-8cb7433a2ba.xn--ss-2vq # ⴡⴑ6̘.ssᬃ
-B; ⴡⴑ6\u0318.ss\u1B03; ; xn--6-8cb7433a2ba.xn--ss-2vq # ⴡⴑ6̘.ssᬃ
-B; ჁႱ6\u0318.SS\u1B03; [P1 V6]; [P1 V6] # ჁႱ6̘.ssᬃ
-B; Ⴡⴑ6\u0318.Ss\u1B03; [P1 V6]; [P1 V6] # Ⴡⴑ6̘.ssᬃ
-B; xn--6-8cb555h2b.xn--ss-2vq; [V6]; [V6] # ჁႱ6̘.ssᬃ
-B; xn--6-8cb7433a2ba.xn--zca894k; ⴡⴑ6\u0318.ß\u1B03; xn--6-8cb7433a2ba.xn--zca894k # ⴡⴑ6̘.ßᬃ
-T; ⴡⴑ6\u0318.ß\u1B03; ; xn--6-8cb7433a2ba.xn--ss-2vq # ⴡⴑ6̘.ßᬃ
-N; ⴡⴑ6\u0318.ß\u1B03; ; xn--6-8cb7433a2ba.xn--zca894k # ⴡⴑ6̘.ßᬃ
-B; xn--6-8cb555h2b.xn--zca894k; [V6]; [V6] # ჁႱ6̘.ßᬃ
-B; 򋡐。≯𑋪; [P1 V6]; [P1 V6]
-B; 򋡐。>\u0338𑋪; [P1 V6]; [P1 V6]
-B; 򋡐。≯𑋪; [P1 V6]; [P1 V6]
-B; 򋡐。>\u0338𑋪; [P1 V6]; [P1 V6]
-B; xn--eo08b.xn--hdh3385g; [V6]; [V6]
-T; \u065A۲。\u200C-\u1BF3\u08E2; [B1 C1 P1 V5 V6]; [B1 P1 V3 V5 V6] # ٚ۲.-᯳
-N; \u065A۲。\u200C-\u1BF3\u08E2; [B1 C1 P1 V5 V6]; [B1 C1 P1 V5 V6] # ٚ۲.-᯳
-B; xn--2hb81a.xn----xrd657l; [B1 V3 V5 V6]; [B1 V3 V5 V6] # ٚ۲.-᯳
-B; xn--2hb81a.xn----xrd657l30d; [B1 C1 V5 V6]; [B1 C1 V5 V6] # ٚ۲.-᯳
-B; 󠄏𖬴󠲽。\uFFA0; [P1 V5 V6]; [P1 V5 V6] # 𖬴.
-B; 󠄏𖬴󠲽。\u1160; [P1 V5 V6]; [P1 V5 V6] # 𖬴.
-B; xn--619ep9154c.xn--psd; [V5 V6]; [V5 V6] # 𖬴.
-B; xn--619ep9154c.xn--cl7c; [V5 V6]; [V5 V6] # 𖬴.
-T; ß⒈\u0760\uD7AE.􉖲󠅄\u0605򉔯; [B5 P1 V6]; [B5 P1 V6] # ß⒈ݠ.
-N; ß⒈\u0760\uD7AE.􉖲󠅄\u0605򉔯; [B5 P1 V6]; [B5 P1 V6] # ß⒈ݠ.
-T; ß1.\u0760\uD7AE.􉖲󠅄\u0605򉔯; [B2 B3 B5 P1 V6]; [B2 B3 B5 P1 V6] # ß1.ݠ.
-N; ß1.\u0760\uD7AE.􉖲󠅄\u0605򉔯; [B2 B3 B5 P1 V6]; [B2 B3 B5 P1 V6] # ß1.ݠ.
-B; SS1.\u0760\uD7AE.􉖲󠅄\u0605򉔯; [B2 B3 B5 P1 V6]; [B2 B3 B5 P1 V6] # ss1.ݠ.
-B; ss1.\u0760\uD7AE.􉖲󠅄\u0605򉔯; [B2 B3 B5 P1 V6]; [B2 B3 B5 P1 V6] # ss1.ݠ.
-B; Ss1.\u0760\uD7AE.􉖲󠅄\u0605򉔯; [B2 B3 B5 P1 V6]; [B2 B3 B5 P1 V6] # ss1.ݠ.
-B; ss1.xn--kpb6677h.xn--nfb09923ifkyyb; [B2 B3 B5 V6]; [B2 B3 B5 V6] # ss1.ݠ.
-B; xn--1-pfa.xn--kpb6677h.xn--nfb09923ifkyyb; [B2 B3 B5 V6]; [B2 B3 B5 V6] # ß1.ݠ.
-B; SS⒈\u0760\uD7AE.􉖲󠅄\u0605򉔯; [B5 P1 V6]; [B5 P1 V6] # ss⒈ݠ.
-B; ss⒈\u0760\uD7AE.􉖲󠅄\u0605򉔯; [B5 P1 V6]; [B5 P1 V6] # ss⒈ݠ.
-B; Ss⒈\u0760\uD7AE.􉖲󠅄\u0605򉔯; [B5 P1 V6]; [B5 P1 V6] # ss⒈ݠ.
-B; xn--ss-6ke9690a0g1q.xn--nfb09923ifkyyb; [B5 V6]; [B5 V6] # ss⒈ݠ.
-B; xn--zca444a0s1ao12n.xn--nfb09923ifkyyb; [B5 V6]; [B5 V6] # ß⒈ݠ.
-B; 󠭔.𐋱₂; [P1 V6]; [P1 V6]
-B; 󠭔.𐋱2; [P1 V6]; [P1 V6]
-B; xn--vi56e.xn--2-w91i; [V6]; [V6]
-T; \u0716\u0947。-ß\u06A5\u200C; [B1 C1 V3]; [B1 V3] # ܖे.-ßڥ
-N; \u0716\u0947。-ß\u06A5\u200C; [B1 C1 V3]; [B1 C1 V3] # ܖे.-ßڥ
-T; \u0716\u0947。-SS\u06A5\u200C; [B1 C1 V3]; [B1 V3] # ܖे.-ssڥ
-N; \u0716\u0947。-SS\u06A5\u200C; [B1 C1 V3]; [B1 C1 V3] # ܖे.-ssڥ
-T; \u0716\u0947。-ss\u06A5\u200C; [B1 C1 V3]; [B1 V3] # ܖे.-ssڥ
-N; \u0716\u0947。-ss\u06A5\u200C; [B1 C1 V3]; [B1 C1 V3] # ܖे.-ssڥ
-T; \u0716\u0947。-Ss\u06A5\u200C; [B1 C1 V3]; [B1 V3] # ܖे.-ssڥ
-N; \u0716\u0947。-Ss\u06A5\u200C; [B1 C1 V3]; [B1 C1 V3] # ܖे.-ssڥ
-B; xn--gnb63i.xn---ss-4ef; [B1 V3]; [B1 V3] # ܖे.-ssڥ
-B; xn--gnb63i.xn---ss-4ef9263a; [B1 C1 V3]; [B1 C1 V3] # ܖे.-ssڥ
-B; xn--gnb63i.xn----qfa845bhx4a; [B1 C1 V3]; [B1 C1 V3] # ܖे.-ßڥ
-T; \u1BA9\u200D\u062A񡚈.\u1CD5䷉Ⴡ; [B1 C2 P1 V5 V6]; [B1 P1 V5 V6] # ᮩت.᳕䷉Ⴡ
-N; \u1BA9\u200D\u062A񡚈.\u1CD5䷉Ⴡ; [B1 C2 P1 V5 V6]; [B1 C2 P1 V5 V6] # ᮩت.᳕䷉Ⴡ
-T; \u1BA9\u200D\u062A񡚈.\u1CD5䷉Ⴡ; [B1 C2 P1 V5 V6]; [B1 P1 V5 V6] # ᮩت.᳕䷉Ⴡ
-N; \u1BA9\u200D\u062A񡚈.\u1CD5䷉Ⴡ; [B1 C2 P1 V5 V6]; [B1 C2 P1 V5 V6] # ᮩت.᳕䷉Ⴡ
-T; \u1BA9\u200D\u062A񡚈.\u1CD5䷉ⴡ; [B1 C2 P1 V5 V6]; [B1 P1 V5 V6] # ᮩت.᳕䷉ⴡ
-N; \u1BA9\u200D\u062A񡚈.\u1CD5䷉ⴡ; [B1 C2 P1 V5 V6]; [B1 C2 P1 V5 V6] # ᮩت.᳕䷉ⴡ
-B; xn--pgb911izv33i.xn--i6f270etuy; [B1 V5 V6]; [B1 V5 V6] # ᮩت.᳕䷉ⴡ
-B; xn--pgb911imgdrw34r.xn--i6f270etuy; [B1 C2 V5 V6]; [B1 C2 V5 V6] # ᮩت.᳕䷉ⴡ
-B; xn--pgb911izv33i.xn--5nd792dgv3b; [B1 V5 V6]; [B1 V5 V6] # ᮩت.᳕䷉Ⴡ
-B; xn--pgb911imgdrw34r.xn--5nd792dgv3b; [B1 C2 V5 V6]; [B1 C2 V5 V6] # ᮩت.᳕䷉Ⴡ
-T; \u1BA9\u200D\u062A񡚈.\u1CD5䷉ⴡ; [B1 C2 P1 V5 V6]; [B1 P1 V5 V6] # ᮩت.᳕䷉ⴡ
-N; \u1BA9\u200D\u062A񡚈.\u1CD5䷉ⴡ; [B1 C2 P1 V5 V6]; [B1 C2 P1 V5 V6] # ᮩت.᳕䷉ⴡ
-T; \u2DBF.ß\u200D; [C2 P1 V6]; [P1 V6] # .ß
-N; \u2DBF.ß\u200D; [C2 P1 V6]; [C2 P1 V6] # .ß
-T; \u2DBF.SS\u200D; [C2 P1 V6]; [P1 V6] # .ss
-N; \u2DBF.SS\u200D; [C2 P1 V6]; [C2 P1 V6] # .ss
-T; \u2DBF.ss\u200D; [C2 P1 V6]; [P1 V6] # .ss
-N; \u2DBF.ss\u200D; [C2 P1 V6]; [C2 P1 V6] # .ss
-T; \u2DBF.Ss\u200D; [C2 P1 V6]; [P1 V6] # .ss
-N; \u2DBF.Ss\u200D; [C2 P1 V6]; [C2 P1 V6] # .ss
-B; xn--7pj.ss; [V6]; [V6] # .ss
-B; xn--7pj.xn--ss-n1t; [C2 V6]; [C2 V6] # .ss
-B; xn--7pj.xn--zca870n; [C2 V6]; [C2 V6] # .ß
-B; \u1BF3︒.\u062A≯ꡂ; [B2 B3 B6 P1 V5 V6]; [B2 B3 B6 P1 V5 V6] # ᯳︒.ت≯ꡂ
-B; \u1BF3︒.\u062A>\u0338ꡂ; [B2 B3 B6 P1 V5 V6]; [B2 B3 B6 P1 V5 V6] # ᯳︒.ت≯ꡂ
-B; \u1BF3。.\u062A≯ꡂ; [B2 B3 P1 V5 V6 A4_2]; [B2 B3 P1 V5 V6 A4_2] # ᯳..ت≯ꡂ
-B; \u1BF3。.\u062A>\u0338ꡂ; [B2 B3 P1 V5 V6 A4_2]; [B2 B3 P1 V5 V6 A4_2] # ᯳..ت≯ꡂ
-B; xn--1zf..xn--pgb885lry5g; [B2 B3 V5 V6 A4_2]; [B2 B3 V5 V6 A4_2] # ᯳..ت≯ꡂ
-B; xn--1zf8957g.xn--pgb885lry5g; [B2 B3 B6 V5 V6]; [B2 B3 B6 V5 V6] # ᯳︒.ت≯ꡂ
-B; ≮≠񏻃。-𫠆\u06B7𐹪; [B1 P1 V3 V6]; [B1 P1 V3 V6] # ≮≠.-𫠆ڷ𐹪
-B; <\u0338=\u0338񏻃。-𫠆\u06B7𐹪; [B1 P1 V3 V6]; [B1 P1 V3 V6] # ≮≠.-𫠆ڷ𐹪
-B; ≮≠񏻃。-𫠆\u06B7𐹪; [B1 P1 V3 V6]; [B1 P1 V3 V6] # ≮≠.-𫠆ڷ𐹪
-B; <\u0338=\u0338񏻃。-𫠆\u06B7𐹪; [B1 P1 V3 V6]; [B1 P1 V3 V6] # ≮≠.-𫠆ڷ𐹪
-B; xn--1ch1a29470f.xn----7uc5363rc1rn; [B1 V3 V6]; [B1 V3 V6] # ≮≠.-𫠆ڷ𐹪
-B; 𐹡\u0777。ꡂ; [B1]; [B1] # 𐹡ݷ.ꡂ
-B; xn--7pb5275k.xn--bc9a; [B1]; [B1] # 𐹡ݷ.ꡂ
-T; Ⴉ𝆅񔻅\u0619.ß𐧦𐹳\u0775; [B5 B6 P1 V6]; [B5 B6 P1 V6] # Ⴉؙ𝆅.ß𐧦𐹳ݵ
-N; Ⴉ𝆅񔻅\u0619.ß𐧦𐹳\u0775; [B5 B6 P1 V6]; [B5 B6 P1 V6] # Ⴉؙ𝆅.ß𐧦𐹳ݵ
-T; ⴉ𝆅񔻅\u0619.ß𐧦𐹳\u0775; [B5 B6 P1 V6]; [B5 B6 P1 V6] # ⴉؙ𝆅.ß𐧦𐹳ݵ
-N; ⴉ𝆅񔻅\u0619.ß𐧦𐹳\u0775; [B5 B6 P1 V6]; [B5 B6 P1 V6] # ⴉؙ𝆅.ß𐧦𐹳ݵ
-B; Ⴉ𝆅񔻅\u0619.SS𐧦𐹳\u0775; [B5 B6 P1 V6]; [B5 B6 P1 V6] # Ⴉؙ𝆅.ss𐧦𐹳ݵ
-B; ⴉ𝆅񔻅\u0619.ss𐧦𐹳\u0775; [B5 B6 P1 V6]; [B5 B6 P1 V6] # ⴉؙ𝆅.ss𐧦𐹳ݵ
-B; Ⴉ𝆅񔻅\u0619.Ss𐧦𐹳\u0775; [B5 B6 P1 V6]; [B5 B6 P1 V6] # Ⴉؙ𝆅.ss𐧦𐹳ݵ
-B; xn--7fb125cjv87a7xvz.xn--ss-zme7575xp0e; [B5 B6 V6]; [B5 B6 V6] # Ⴉؙ𝆅.ss𐧦𐹳ݵ
-B; xn--7fb940rwt3z7xvz.xn--ss-zme7575xp0e; [B5 B6 V6]; [B5 B6 V6] # ⴉؙ𝆅.ss𐧦𐹳ݵ
-B; xn--7fb940rwt3z7xvz.xn--zca684a699vf2d; [B5 B6 V6]; [B5 B6 V6] # ⴉؙ𝆅.ß𐧦𐹳ݵ
-B; xn--7fb125cjv87a7xvz.xn--zca684a699vf2d; [B5 B6 V6]; [B5 B6 V6] # Ⴉؙ𝆅.ß𐧦𐹳ݵ
-T; \u200D\u0643𐧾↙.񊽡; [B1 C2 P1 V6]; [B3 P1 V6] # ك𐧾↙.
-N; \u200D\u0643𐧾↙.񊽡; [B1 C2 P1 V6]; [B1 C2 P1 V6] # ك𐧾↙.
-B; xn--fhb011lnp8n.xn--7s4w; [B3 V6]; [B3 V6] # ك𐧾↙.
-B; xn--fhb713k87ag053c.xn--7s4w; [B1 C2 V6]; [B1 C2 V6] # ك𐧾↙.
-T; 梉。\u200C; [C1]; xn--7zv. # 梉.
-N; 梉。\u200C; [C1]; [C1] # 梉.
-B; xn--7zv.; 梉.; xn--7zv.
-B; 梉.; ; xn--7zv.
-B; xn--7zv.xn--0ug; [C1]; [C1] # 梉.
-T; ꡣ-≠.\u200D𞤗𐅢Ↄ; [B1 B6 C2 P1 V6]; [B2 B3 B6 P1 V6] # ꡣ-≠.𞤹𐅢Ↄ
-N; ꡣ-≠.\u200D𞤗𐅢Ↄ; [B1 B6 C2 P1 V6]; [B1 B6 C2 P1 V6] # ꡣ-≠.𞤹𐅢Ↄ
-T; ꡣ-=\u0338.\u200D𞤗𐅢Ↄ; [B1 B6 C2 P1 V6]; [B2 B3 B6 P1 V6] # ꡣ-≠.𞤹𐅢Ↄ
-N; ꡣ-=\u0338.\u200D𞤗𐅢Ↄ; [B1 B6 C2 P1 V6]; [B1 B6 C2 P1 V6] # ꡣ-≠.𞤹𐅢Ↄ
-T; ꡣ-=\u0338.\u200D𞤹𐅢ↄ; [B1 B6 C2 P1 V6]; [B2 B3 B6 P1 V6] # ꡣ-≠.𞤹𐅢ↄ
-N; ꡣ-=\u0338.\u200D𞤹𐅢ↄ; [B1 B6 C2 P1 V6]; [B1 B6 C2 P1 V6] # ꡣ-≠.𞤹𐅢ↄ
-T; ꡣ-≠.\u200D𞤹𐅢ↄ; [B1 B6 C2 P1 V6]; [B2 B3 B6 P1 V6] # ꡣ-≠.𞤹𐅢ↄ
-N; ꡣ-≠.\u200D𞤹𐅢ↄ; [B1 B6 C2 P1 V6]; [B1 B6 C2 P1 V6] # ꡣ-≠.𞤹𐅢ↄ
-T; ꡣ-≠.\u200D𞤗𐅢ↄ; [B1 B6 C2 P1 V6]; [B2 B3 B6 P1 V6] # ꡣ-≠.𞤹𐅢ↄ
-N; ꡣ-≠.\u200D𞤗𐅢ↄ; [B1 B6 C2 P1 V6]; [B1 B6 C2 P1 V6] # ꡣ-≠.𞤹𐅢ↄ
-T; ꡣ-=\u0338.\u200D𞤗𐅢ↄ; [B1 B6 C2 P1 V6]; [B2 B3 B6 P1 V6] # ꡣ-≠.𞤹𐅢ↄ
-N; ꡣ-=\u0338.\u200D𞤗𐅢ↄ; [B1 B6 C2 P1 V6]; [B1 B6 C2 P1 V6] # ꡣ-≠.𞤹𐅢ↄ
-B; xn----ufo9661d.xn--r5gy929fhm4f; [B2 B3 B6 V6]; [B2 B3 B6 V6]
-B; xn----ufo9661d.xn--1ug99cj620c71sh; [B1 B6 C2 V6]; [B1 B6 C2 V6] # ꡣ-≠.𞤹𐅢ↄ
-B; xn----ufo9661d.xn--q5g0929fhm4f; [B2 B3 B6 V6]; [B2 B3 B6 V6]
-B; xn----ufo9661d.xn--1ug79cm620c71sh; [B1 B6 C2 V6]; [B1 B6 C2 V6] # ꡣ-≠.𞤹𐅢Ↄ
-T; ς⒐𝆫⸵。𐱢🄊𝟳; [B6 P1 V6]; [B6 P1 V6]
-N; ς⒐𝆫⸵。𐱢🄊𝟳; [B6 P1 V6]; [B6 P1 V6]
-T; ς9.𝆫⸵。𐱢9,7; [B1 P1 V5 V6]; [B1 P1 V5 V6]
-N; ς9.𝆫⸵。𐱢9,7; [B1 P1 V5 V6]; [B1 P1 V5 V6]
-B; Σ9.𝆫⸵。𐱢9,7; [B1 P1 V5 V6]; [B1 P1 V5 V6]
-B; σ9.𝆫⸵。𐱢9,7; [B1 P1 V5 V6]; [B1 P1 V5 V6]
-B; xn--9-zmb.xn--ltj1535k.xn--9,7-r67t; [B1 P1 V5 V6]; [B1 P1 V5 V6]
-B; xn--9-xmb.xn--ltj1535k.xn--9,7-r67t; [B1 P1 V5 V6]; [B1 P1 V5 V6]
-B; Σ⒐𝆫⸵。𐱢🄊𝟳; [B6 P1 V6]; [B6 P1 V6]
-B; σ⒐𝆫⸵。𐱢🄊𝟳; [B6 P1 V6]; [B6 P1 V6]
-B; xn--4xa809nwtghi25b.xn--7-075iy877c; [B6 V6]; [B6 V6]
-B; xn--3xa019nwtghi25b.xn--7-075iy877c; [B6 V6]; [B6 V6]
-T; \u0853.\u200Cß; [B1 C1]; xn--iwb.ss # ࡓ.ß
-N; \u0853.\u200Cß; [B1 C1]; [B1 C1] # ࡓ.ß
-T; \u0853.\u200Cß; [B1 C1]; xn--iwb.ss # ࡓ.ß
-N; \u0853.\u200Cß; [B1 C1]; [B1 C1] # ࡓ.ß
-T; \u0853.\u200CSS; [B1 C1]; xn--iwb.ss # ࡓ.ss
-N; \u0853.\u200CSS; [B1 C1]; [B1 C1] # ࡓ.ss
-T; \u0853.\u200Css; [B1 C1]; xn--iwb.ss # ࡓ.ss
-N; \u0853.\u200Css; [B1 C1]; [B1 C1] # ࡓ.ss
-T; \u0853.\u200CSs; [B1 C1]; xn--iwb.ss # ࡓ.ss
-N; \u0853.\u200CSs; [B1 C1]; [B1 C1] # ࡓ.ss
-B; xn--iwb.ss; \u0853.ss; xn--iwb.ss # ࡓ.ss
-B; \u0853.ss; ; xn--iwb.ss # ࡓ.ss
-B; \u0853.SS; \u0853.ss; xn--iwb.ss # ࡓ.ss
-B; \u0853.Ss; \u0853.ss; xn--iwb.ss # ࡓ.ss
-B; xn--iwb.xn--ss-i1t; [B1 C1]; [B1 C1] # ࡓ.ss
-B; xn--iwb.xn--zca570n; [B1 C1]; [B1 C1] # ࡓ.ß
-T; \u0853.\u200CSS; [B1 C1]; xn--iwb.ss # ࡓ.ss
-N; \u0853.\u200CSS; [B1 C1]; [B1 C1] # ࡓ.ss
-T; \u0853.\u200Css; [B1 C1]; xn--iwb.ss # ࡓ.ss
-N; \u0853.\u200Css; [B1 C1]; [B1 C1] # ࡓ.ss
-T; \u0853.\u200CSs; [B1 C1]; xn--iwb.ss # ࡓ.ss
-N; \u0853.\u200CSs; [B1 C1]; [B1 C1] # ࡓ.ss
-T; 񯶣-.\u200D\u074E\uA94D󠻨; [B1 B6 C2 P1 V3 V6]; [B3 B6 P1 V3 V6] # -.ݎꥍ
-N; 񯶣-.\u200D\u074E\uA94D󠻨; [B1 B6 C2 P1 V3 V6]; [B1 B6 C2 P1 V3 V6] # -.ݎꥍ
-B; xn----s116e.xn--1ob6504fmf40i; [B3 B6 V3 V6]; [B3 B6 V3 V6] # -.ݎꥍ
-B; xn----s116e.xn--1ob387jy90hq459k; [B1 B6 C2 V3 V6]; [B1 B6 C2 V3 V6] # -.ݎꥍ
-B; 䃚蟥-。-񽒘⒈; [P1 V3 V6]; [P1 V3 V6]
-B; 䃚蟥-。-񽒘1.; [P1 V3 V6]; [P1 V3 V6]
-B; xn----n50a258u.xn---1-up07j.; [V3 V6]; [V3 V6]
-B; xn----n50a258u.xn----ecp33805f; [V3 V6]; [V3 V6]
-B; 𐹸䚵-ꡡ。⺇; [B1]; [B1]
-B; xn----bm3an932a1l5d.xn--xvj; [B1]; [B1]
-B; 𑄳。\u1ADC𐹻; [B1 B3 B5 B6 P1 V5 V6]; [B1 B3 B5 B6 P1 V5 V6] # 𑄳.𐹻
-B; xn--v80d.xn--2rf1154i; [B1 B3 B5 B6 V5 V6]; [B1 B3 B5 B6 V5 V6] # 𑄳.𐹻
-B; ≮𐹻.⒎𑂵\u06BA\u0602; [B1 P1 V6]; [B1 P1 V6] # ≮𐹻.⒎𑂵ں
-B; <\u0338𐹻.⒎𑂵\u06BA\u0602; [B1 P1 V6]; [B1 P1 V6] # ≮𐹻.⒎𑂵ں
-B; ≮𐹻.7.𑂵\u06BA\u0602; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ≮𐹻.7.𑂵ں
-B; <\u0338𐹻.7.𑂵\u06BA\u0602; [B1 P1 V5 V6]; [B1 P1 V5 V6] # ≮𐹻.7.𑂵ں
-B; xn--gdhx904g.7.xn--kfb18an307d; [B1 V5 V6]; [B1 V5 V6] # ≮𐹻.7.𑂵ں
-B; xn--gdhx904g.xn--kfb18a325efm3s; [B1 V6]; [B1 V6] # ≮𐹻.⒎𑂵ں
-T; ᢔ≠􋉂.\u200D𐋢; [C2 P1 V6]; [P1 V6] # ᢔ≠.𐋢
-N; ᢔ≠􋉂.\u200D𐋢; [C2 P1 V6]; [C2 P1 V6] # ᢔ≠.𐋢
-T; ᢔ=\u0338􋉂.\u200D𐋢; [C2 P1 V6]; [P1 V6] # ᢔ≠.𐋢
-N; ᢔ=\u0338􋉂.\u200D𐋢; [C2 P1 V6]; [C2 P1 V6] # ᢔ≠.𐋢
-B; xn--ebf031cf7196a.xn--587c; [V6]; [V6]
-B; xn--ebf031cf7196a.xn--1ug9540g; [C2 V6]; [C2 V6] # ᢔ≠.𐋢
-B; 𐩁≮񣊛≯.\u066C𞵕⳿; [B1 B2 B3 P1 V6]; [B1 B2 B3 P1 V6] # 𐩁≮≯.٬⳿
-B; 𐩁<\u0338񣊛>\u0338.\u066C𞵕⳿; [B1 B2 B3 P1 V6]; [B1 B2 B3 P1 V6] # 𐩁≮≯.٬⳿
-B; 𐩁≮񣊛≯.\u066C𞵕⳿; [B1 B2 B3 P1 V6]; [B1 B2 B3 P1 V6] # 𐩁≮≯.٬⳿
-B; 𐩁<\u0338񣊛>\u0338.\u066C𞵕⳿; [B1 B2 B3 P1 V6]; [B1 B2 B3 P1 V6] # 𐩁≮≯.٬⳿
-B; xn--gdhc0519o0y27b.xn--lib468q0d21a; [B1 B2 B3 V6]; [B1 B2 B3 V6] # 𐩁≮≯.٬⳿
-B; -。⺐; [V3]; [V3]
-B; -。⺐; [V3]; [V3]
-B; -.xn--6vj; [V3]; [V3]
-B; 󠰩𑲬.\u065C; [P1 V5 V6]; [P1 V5 V6] # 𑲬.ٜ
-B; 󠰩𑲬.\u065C; [P1 V5 V6]; [P1 V5 V6] # 𑲬.ٜ
-B; xn--sn3d59267c.xn--4hb; [V5 V6]; [V5 V6] # 𑲬.ٜ
-T; 𐍺.񚇃\u200C; [C1 P1 V5 V6]; [P1 V5 V6] # 𐍺.
-N; 𐍺.񚇃\u200C; [C1 P1 V5 V6]; [C1 P1 V5 V6] # 𐍺.
-B; xn--ie8c.xn--2g51a; [V5 V6]; [V5 V6]
-B; xn--ie8c.xn--0ug03366c; [C1 V5 V6]; [C1 V5 V6] # 𐍺.
-B; \u063D\u06E3.𐨎; [B1 B3 B6 V5]; [B1 B3 B6 V5] # ؽۣ.𐨎
-B; xn--8gb64a.xn--mr9c; [B1 B3 B6 V5]; [B1 B3 B6 V5] # ؽۣ.𐨎
-T; 漦Ⴙς.񡻀𐴄; [B5 B6 P1 V6]; [B5 B6 P1 V6]
-N; 漦Ⴙς.񡻀𐴄; [B5 B6 P1 V6]; [B5 B6 P1 V6]
-T; 漦ⴙς.񡻀𐴄; [B5 B6 P1 V6]; [B5 B6 P1 V6]
-N; 漦ⴙς.񡻀𐴄; [B5 B6 P1 V6]; [B5 B6 P1 V6]
-B; 漦ႹΣ.񡻀𐴄; [B5 B6 P1 V6]; [B5 B6 P1 V6]
-B; 漦ⴙσ.񡻀𐴄; [B5 B6 P1 V6]; [B5 B6 P1 V6]
-B; 漦Ⴙσ.񡻀𐴄; [B5 B6 P1 V6]; [B5 B6 P1 V6]
-B; xn--4xa947d717e.xn--9d0d3162t; [B5 B6 V6]; [B5 B6 V6]
-B; xn--4xa772sl47b.xn--9d0d3162t; [B5 B6 V6]; [B5 B6 V6]
-B; xn--3xa972sl47b.xn--9d0d3162t; [B5 B6 V6]; [B5 B6 V6]
-B; xn--3xa157d717e.xn--9d0d3162t; [B5 B6 V6]; [B5 B6 V6]
-B; 𐹫踧\u0CCD򫚇.󜀃⒈𝨤; [B1 P1 V6]; [B1 P1 V6] # 𐹫踧್.⒈𝨤
-B; 𐹫踧\u0CCD򫚇.󜀃1.𝨤; [B1 B3 B6 P1 V5 V6]; [B1 B3 B6 P1 V5 V6] # 𐹫踧್.1.𝨤
-B; xn--8tc1437dro0d6q06h.xn--1-p948l.xn--m82h; [B1 B3 B6 V5 V6]; [B1 B3 B6 V5 V6] # 𐹫踧್.1.𝨤
-B; xn--8tc1437dro0d6q06h.xn--tsh2611ncu71e; [B1 V6]; [B1 V6] # 𐹫踧್.⒈𝨤
-T; \u200D≮.󠟪𹫏-; [C2 P1 V3 V6]; [P1 V3 V6] # ≮.-
-N; \u200D≮.󠟪𹫏-; [C2 P1 V3 V6]; [C2 P1 V3 V6] # ≮.-
-T; \u200D<\u0338.󠟪𹫏-; [C2 P1 V3 V6]; [P1 V3 V6] # ≮.-
-N; \u200D<\u0338.󠟪𹫏-; [C2 P1 V3 V6]; [C2 P1 V3 V6] # ≮.-
-T; \u200D≮.󠟪𹫏-; [C2 P1 V3 V6]; [P1 V3 V6] # ≮.-
-N; \u200D≮.󠟪𹫏-; [C2 P1 V3 V6]; [C2 P1 V3 V6] # ≮.-
-T; \u200D<\u0338.󠟪𹫏-; [C2 P1 V3 V6]; [P1 V3 V6] # ≮.-
-N; \u200D<\u0338.󠟪𹫏-; [C2 P1 V3 V6]; [C2 P1 V3 V6] # ≮.-
-B; xn--gdh.xn----cr99a1w710b; [V3 V6]; [V3 V6]
-B; xn--1ug95g.xn----cr99a1w710b; [C2 V3 V6]; [C2 V3 V6] # ≮.-
-T; \u200D\u200D襔。Ⴜ5ꡮ񵝏; [C2 P1 V6]; [P1 V6] # 襔.Ⴜ5ꡮ
-N; \u200D\u200D襔。Ⴜ5ꡮ񵝏; [C2 P1 V6]; [C2 P1 V6] # 襔.Ⴜ5ꡮ
-T; \u200D\u200D襔。ⴜ5ꡮ񵝏; [C2 P1 V6]; [P1 V6] # 襔.ⴜ5ꡮ
-N; \u200D\u200D襔。ⴜ5ꡮ񵝏; [C2 P1 V6]; [C2 P1 V6] # 襔.ⴜ5ꡮ
-B; xn--2u2a.xn--5-uws5848bpf44e; [V6]; [V6]
-B; xn--1uga7691f.xn--5-uws5848bpf44e; [C2 V6]; [C2 V6] # 襔.ⴜ5ꡮ
-B; xn--2u2a.xn--5-r1g7167ipfw8d; [V6]; [V6]
-B; xn--1uga7691f.xn--5-r1g7167ipfw8d; [C2 V6]; [C2 V6] # 襔.Ⴜ5ꡮ
-T; 𐫜𑌼\u200D.婀; [B3 C2]; xn--ix9c26l.xn--q0s # 𐫜𑌼.婀
-N; 𐫜𑌼\u200D.婀; [B3 C2]; [B3 C2] # 𐫜𑌼.婀
-T; 𐫜𑌼\u200D.婀; [B3 C2]; xn--ix9c26l.xn--q0s # 𐫜𑌼.婀
-N; 𐫜𑌼\u200D.婀; [B3 C2]; [B3 C2] # 𐫜𑌼.婀
-B; xn--ix9c26l.xn--q0s; 𐫜𑌼.婀; xn--ix9c26l.xn--q0s
-B; 𐫜𑌼.婀; ; xn--ix9c26l.xn--q0s
-B; xn--1ugx063g1if.xn--q0s; [B3 C2]; [B3 C2] # 𐫜𑌼.婀
-B; 󠅽︒︒𐹯。⬳\u1A78; [B1 P1 V6]; [B1 P1 V6] # ︒︒𐹯.⬳᩸
-B; 󠅽。。𐹯。⬳\u1A78; [B1 A4_2]; [B1 A4_2] # ..𐹯.⬳᩸
-B; ..xn--no0d.xn--7of309e; [B1 A4_2]; [B1 A4_2] # ..𐹯.⬳᩸
-B; xn--y86ca186j.xn--7of309e; [B1 V6]; [B1 V6] # ︒︒𐹯.⬳᩸
-T; 𝟖ß.󠄐-\uDBDAႯ; [P1 V3 V6]; [P1 V3 V6 A3] # 8ß.-Ⴏ
-N; 𝟖ß.󠄐-\uDBDAႯ; [P1 V3 V6]; [P1 V3 V6 A3] # 8ß.-Ⴏ
-T; 8ß.󠄐-\uDBDAႯ; [P1 V3 V6]; [P1 V3 V6 A3] # 8ß.-Ⴏ
-N; 8ß.󠄐-\uDBDAႯ; [P1 V3 V6]; [P1 V3 V6 A3] # 8ß.-Ⴏ
-T; 8ß.󠄐-\uDBDAⴏ; [P1 V3 V6]; [P1 V3 V6 A3] # 8ß.-ⴏ
-N; 8ß.󠄐-\uDBDAⴏ; [P1 V3 V6]; [P1 V3 V6 A3] # 8ß.-ⴏ
-B; 8SS.󠄐-\uDBDAႯ; [P1 V3 V6]; [P1 V3 V6 A3] # 8ss.-Ⴏ
-B; 8ss.󠄐-\uDBDAⴏ; [P1 V3 V6]; [P1 V3 V6 A3] # 8ss.-ⴏ
-B; 8Ss.󠄐-\uDBDAႯ; [P1 V3 V6]; [P1 V3 V6 A3] # 8ss.-Ⴏ
-B; 8ss.-\uDBDAႯ; [P1 V3 V6]; [P1 V3 V6 A3] # 8ss.-Ⴏ
-B; 8ss.-\uDBDAⴏ; [P1 V3 V6]; [P1 V3 V6 A3] # 8ss.-ⴏ
-B; 8SS.-\uDBDAႯ; [P1 V3 V6]; [P1 V3 V6 A3] # 8ss.-Ⴏ
-B; 8Ss.-\uDBDAႯ; [P1 V3 V6]; [P1 V3 V6 A3] # 8ss.-Ⴏ
-B; xn--8-qfa.-\uDBDAⴏ; [P1 V3 V6]; [P1 V3 V6 A3] # 8ß.-ⴏ
-B; XN--8-QFA.-\uDBDAႯ; [P1 V3 V6]; [P1 V3 V6 A3] # 8ß.-Ⴏ
-B; Xn--8-Qfa.-\uDBDAႯ; [P1 V3 V6]; [P1 V3 V6 A3] # 8ß.-Ⴏ
-B; xn--8-qfa.-\uDBDAႯ; [P1 V3 V6]; [P1 V3 V6 A3] # 8ß.-Ⴏ
-T; 𝟖ß.󠄐-\uDBDAⴏ; [P1 V3 V6]; [P1 V3 V6 A3] # 8ß.-ⴏ
-N; 𝟖ß.󠄐-\uDBDAⴏ; [P1 V3 V6]; [P1 V3 V6 A3] # 8ß.-ⴏ
-B; 𝟖SS.󠄐-\uDBDAႯ; [P1 V3 V6]; [P1 V3 V6 A3] # 8ss.-Ⴏ
-B; 𝟖ss.󠄐-\uDBDAⴏ; [P1 V3 V6]; [P1 V3 V6 A3] # 8ss.-ⴏ
-B; 𝟖Ss.󠄐-\uDBDAႯ; [P1 V3 V6]; [P1 V3 V6 A3] # 8ss.-Ⴏ
-T; -\u200D󠋟.\u200C𐹣Ⴅ; [B1 C1 C2 P1 V3 V6]; [B1 P1 V3 V6] # -.𐹣Ⴅ
-N; -\u200D󠋟.\u200C𐹣Ⴅ; [B1 C1 C2 P1 V3 V6]; [B1 C1 C2 P1 V3 V6] # -.𐹣Ⴅ
-T; -\u200D󠋟.\u200C𐹣ⴅ; [B1 C1 C2 P1 V3 V6]; [B1 P1 V3 V6] # -.𐹣ⴅ
-N; -\u200D󠋟.\u200C𐹣ⴅ; [B1 C1 C2 P1 V3 V6]; [B1 C1 C2 P1 V3 V6] # -.𐹣ⴅ
-B; xn----s721m.xn--wkj1423e; [B1 V3 V6]; [B1 V3 V6]
-B; xn----ugnv7071n.xn--0ugz32cgr0p; [B1 C1 C2 V3 V6]; [B1 C1 C2 V3 V6] # -.𐹣ⴅ
-B; xn----s721m.xn--dnd9201k; [B1 V3 V6]; [B1 V3 V6]
-B; xn----ugnv7071n.xn--dnd999e4j4p; [B1 C1 C2 V3 V6]; [B1 C1 C2 V3 V6] # -.𐹣Ⴅ
-T; \uA9B9\u200D큷𻶡。₂; [C2 P1 V5 V6]; [P1 V5 V6] # ꦹ큷.2
-N; \uA9B9\u200D큷𻶡。₂; [C2 P1 V5 V6]; [C2 P1 V5 V6] # ꦹ큷.2
-T; \uA9B9\u200D큷𻶡。₂; [C2 P1 V5 V6]; [P1 V5 V6] # ꦹ큷.2
-N; \uA9B9\u200D큷𻶡。₂; [C2 P1 V5 V6]; [C2 P1 V5 V6] # ꦹ큷.2
-T; \uA9B9\u200D큷𻶡。2; [C2 P1 V5 V6]; [P1 V5 V6] # ꦹ큷.2
-N; \uA9B9\u200D큷𻶡。2; [C2 P1 V5 V6]; [C2 P1 V5 V6] # ꦹ큷.2
-T; \uA9B9\u200D큷𻶡。2; [C2 P1 V5 V6]; [P1 V5 V6] # ꦹ큷.2
-N; \uA9B9\u200D큷𻶡。2; [C2 P1 V5 V6]; [C2 P1 V5 V6] # ꦹ큷.2
-B; xn--0m9as84e2e21c.2; [V5 V6]; [V5 V6] # ꦹ큷.2
-B; xn--1ug1435cfkyaoi04d.2; [C2 V5 V6]; [C2 V5 V6] # ꦹ큷.2
-B; \uDF4D.🄄𞯘; [B1 P1 V6]; [B1 P1 V6 A3] # .🄄
-B; \uDF4D.3,𞯘; [B1 P1 V6]; [B1 P1 V6 A3] # .3,
-B; \uDF4D.xn--3,-tb22a; [B1 P1 V6]; [B1 P1 V6 A3] # .3,
-B; \uDF4D.XN--3,-TB22A; [B1 P1 V6]; [B1 P1 V6 A3] # .3,
-B; \uDF4D.Xn--3,-Tb22a; [B1 P1 V6]; [B1 P1 V6 A3] # .3,
-B; \uDF4D.xn--3x6hx6f; [B1 P1 V6]; [B1 P1 V6 A3] # .🄄
-B; \uDF4D.XN--3X6HX6F; [B1 P1 V6]; [B1 P1 V6 A3] # .🄄
-B; \uDF4D.Xn--3X6hx6f; [B1 P1 V6]; [B1 P1 V6 A3] # .🄄
-B; 𝨖𐩙。\u06DD󀡶\uA8C5⒈; [B1 P1 V5 V6]; [B1 P1 V5 V6] # 𝨖.ꣅ⒈
-B; 𝨖𐩙。\u06DD󀡶\uA8C51.; [B1 P1 V5 V6]; [B1 P1 V5 V6] # 𝨖.ꣅ1.
-B; xn--rt9cl956a.xn--1-dxc8545j0693i.; [B1 V5 V6]; [B1 V5 V6] # 𝨖.ꣅ1.
-B; xn--rt9cl956a.xn--tlb403mxv4g06s9i; [B1 V5 V6]; [B1 V5 V6] # 𝨖.ꣅ⒈
-T; 򒈣\u05E1\u06B8。Ⴈ\u200D; [B5 B6 C2 P1 V6]; [B5 B6 P1 V6] # סڸ.Ⴈ
-N; 򒈣\u05E1\u06B8。Ⴈ\u200D; [B5 B6 C2 P1 V6]; [B5 B6 C2 P1 V6] # סڸ.Ⴈ
-T; 򒈣\u05E1\u06B8。ⴈ\u200D; [B5 B6 C2 P1 V6]; [B5 B6 P1 V6] # סڸ.ⴈ
-N; 򒈣\u05E1\u06B8。ⴈ\u200D; [B5 B6 C2 P1 V6]; [B5 B6 C2 P1 V6] # סڸ.ⴈ
-B; xn--meb44b57607c.xn--zkj; [B5 B6 V6]; [B5 B6 V6] # סڸ.ⴈ
-B; xn--meb44b57607c.xn--1ug232c; [B5 B6 C2 V6]; [B5 B6 C2 V6] # סڸ.ⴈ
-B; xn--meb44b57607c.xn--gnd; [B5 B6 V6]; [B5 B6 V6] # סڸ.Ⴈ
-B; xn--meb44b57607c.xn--gnd699e; [B5 B6 C2 V6]; [B5 B6 C2 V6] # סڸ.Ⴈ
-T; 󀚶𝨱\u07E6⒈.𑗝髯\u200C; [B1 B5 C1 P1 V5 V6]; [B1 B5 P1 V5 V6] # 𝨱ߦ⒈.𑗝髯
-N; 󀚶𝨱\u07E6⒈.𑗝髯\u200C; [B1 B5 C1 P1 V5 V6]; [B1 B5 C1 P1 V5 V6] # 𝨱ߦ⒈.𑗝髯
-T; 󀚶𝨱\u07E61..𑗝髯\u200C; [B1 B5 C1 P1 V5 V6 A4_2]; [B1 B5 P1 V5 V6 A4_2] # 𝨱ߦ1..𑗝髯
-N; 󀚶𝨱\u07E61..𑗝髯\u200C; [B1 B5 C1 P1 V5 V6 A4_2]; [B1 B5 C1 P1 V5 V6 A4_2] # 𝨱ߦ1..𑗝髯
-B; xn--1-idd62296a1fr6e..xn--uj6at43v; [B1 B5 V5 V6 A4_2]; [B1 B5 V5 V6 A4_2] # 𝨱ߦ1..𑗝髯
-B; xn--1-idd62296a1fr6e..xn--0ugx259bocxd; [B1 B5 C1 V5 V6 A4_2]; [B1 B5 C1 V5 V6 A4_2] # 𝨱ߦ1..𑗝髯
-B; xn--etb477lq931a1f58e.xn--uj6at43v; [B1 B5 V5 V6]; [B1 B5 V5 V6] # 𝨱ߦ⒈.𑗝髯
-B; xn--etb477lq931a1f58e.xn--0ugx259bocxd; [B1 B5 C1 V5 V6]; [B1 B5 C1 V5 V6] # 𝨱ߦ⒈.𑗝髯
-B; 𐫀.\u0689𑌀; 𐫀.\u0689𑌀; xn--pw9c.xn--fjb8658k # 𐫀.ډ𑌀
-B; 𐫀.\u0689𑌀; ; xn--pw9c.xn--fjb8658k # 𐫀.ډ𑌀
-B; xn--pw9c.xn--fjb8658k; 𐫀.\u0689𑌀; xn--pw9c.xn--fjb8658k # 𐫀.ډ𑌀
-B; 𑋪.𐳝; [B1 B3 B6 V5]; [B1 B3 B6 V5]
-B; 𑋪.𐳝; [B1 B3 B6 V5]; [B1 B3 B6 V5]
-B; 𑋪.𐲝; [B1 B3 B6 V5]; [B1 B3 B6 V5]
-B; xn--fm1d.xn--5c0d; [B1 B3 B6 V5]; [B1 B3 B6 V5]
-B; 𑋪.𐲝; [B1 B3 B6 V5]; [B1 B3 B6 V5]
-B; ≠膣。\u0F83; [P1 V5 V6]; [P1 V5 V6] # ≠膣.ྃ
-B; =\u0338膣。\u0F83; [P1 V5 V6]; [P1 V5 V6] # ≠膣.ྃ
-B; xn--1chy468a.xn--2ed; [V5 V6]; [V5 V6] # ≠膣.ྃ
-T; 񰀎-\u077D。ß; [B5 B6 P1 V6]; [B5 B6 P1 V6] # -ݽ.ß
-N; 񰀎-\u077D。ß; [B5 B6 P1 V6]; [B5 B6 P1 V6] # -ݽ.ß
-T; 񰀎-\u077D。ß; [B5 B6 P1 V6]; [B5 B6 P1 V6] # -ݽ.ß
-N; 񰀎-\u077D。ß; [B5 B6 P1 V6]; [B5 B6 P1 V6] # -ݽ.ß
-B; 񰀎-\u077D。SS; [B5 B6 P1 V6]; [B5 B6 P1 V6] # -ݽ.ss
-B; 񰀎-\u077D。ss; [B5 B6 P1 V6]; [B5 B6 P1 V6] # -ݽ.ss
-B; 񰀎-\u077D。Ss; [B5 B6 P1 V6]; [B5 B6 P1 V6] # -ݽ.ss
-B; xn----j6c95618k.ss; [B5 B6 V6]; [B5 B6 V6] # -ݽ.ss
-B; xn----j6c95618k.xn--zca; [B5 B6 V6]; [B5 B6 V6] # -ݽ.ß
-B; 񰀎-\u077D。SS; [B5 B6 P1 V6]; [B5 B6 P1 V6] # -ݽ.ss
-B; 񰀎-\u077D。ss; [B5 B6 P1 V6]; [B5 B6 P1 V6] # -ݽ.ss
-B; 񰀎-\u077D。Ss; [B5 B6 P1 V6]; [B5 B6 P1 V6] # -ݽ.ss
-T; ς𐹠ᡚ𑄳.⾭𐹽𽐖𐫜; [B5 B6 P1 V6]; [B5 B6 P1 V6]
-N; ς𐹠ᡚ𑄳.⾭𐹽𽐖𐫜; [B5 B6 P1 V6]; [B5 B6 P1 V6]
-T; ς𐹠ᡚ𑄳.靑𐹽𽐖𐫜; [B5 B6 P1 V6]; [B5 B6 P1 V6]
-N; ς𐹠ᡚ𑄳.靑𐹽𽐖𐫜; [B5 B6 P1 V6]; [B5 B6 P1 V6]
-B; Σ𐹠ᡚ𑄳.靑𐹽𽐖𐫜; [B5 B6 P1 V6]; [B5 B6 P1 V6]
-B; σ𐹠ᡚ𑄳.靑𐹽𽐖𐫜; [B5 B6 P1 V6]; [B5 B6 P1 V6]
-B; xn--4xa656hp23pxmc.xn--es5a888tvjc2u15h; [B5 B6 V6]; [B5 B6 V6]
-B; xn--3xa856hp23pxmc.xn--es5a888tvjc2u15h; [B5 B6 V6]; [B5 B6 V6]
-B; Σ𐹠ᡚ𑄳.⾭𐹽𽐖𐫜; [B5 B6 P1 V6]; [B5 B6 P1 V6]
-B; σ𐹠ᡚ𑄳.⾭𐹽𽐖𐫜; [B5 B6 P1 V6]; [B5 B6 P1 V6]
-T; 𐋷。\u200D; [C2]; xn--r97c. # 𐋷.
-N; 𐋷。\u200D; [C2]; [C2] # 𐋷.
-B; xn--r97c.; 𐋷.; xn--r97c.; NV8
-B; 𐋷.; ; xn--r97c.; NV8
-B; xn--r97c.xn--1ug; [C2]; [C2] # 𐋷.
-B; 𑰳𑈯。⥪; [V5]; [V5]
-B; xn--2g1d14o.xn--jti; [V5]; [V5]
-T; 𑆀䁴񤧣.Ⴕ𝟜\u200C\u0348; [C1 P1 V5 V6]; [P1 V5 V6] # 𑆀䁴.Ⴕ4͈
-N; 𑆀䁴񤧣.Ⴕ𝟜\u200C\u0348; [C1 P1 V5 V6]; [C1 P1 V5 V6] # 𑆀䁴.Ⴕ4͈
-T; 𑆀䁴񤧣.Ⴕ4\u200C\u0348; [C1 P1 V5 V6]; [P1 V5 V6] # 𑆀䁴.Ⴕ4͈
-N; 𑆀䁴񤧣.Ⴕ4\u200C\u0348; [C1 P1 V5 V6]; [C1 P1 V5 V6] # 𑆀䁴.Ⴕ4͈
-T; 𑆀䁴񤧣.ⴕ4\u200C\u0348; [C1 P1 V5 V6]; [P1 V5 V6] # 𑆀䁴.ⴕ4͈
-N; 𑆀䁴񤧣.ⴕ4\u200C\u0348; [C1 P1 V5 V6]; [C1 P1 V5 V6] # 𑆀䁴.ⴕ4͈
-B; xn--1mnx647cg3x1b.xn--4-zfb5123a; [V5 V6]; [V5 V6] # 𑆀䁴.ⴕ4͈
-B; xn--1mnx647cg3x1b.xn--4-zfb502tlsl; [C1 V5 V6]; [C1 V5 V6] # 𑆀䁴.ⴕ4͈
-B; xn--1mnx647cg3x1b.xn--4-zfb324h; [V5 V6]; [V5 V6] # 𑆀䁴.Ⴕ4͈
-B; xn--1mnx647cg3x1b.xn--4-zfb324h32o; [C1 V5 V6]; [C1 V5 V6] # 𑆀䁴.Ⴕ4͈
-T; 𑆀䁴񤧣.ⴕ𝟜\u200C\u0348; [C1 P1 V5 V6]; [P1 V5 V6] # 𑆀䁴.ⴕ4͈
-N; 𑆀䁴񤧣.ⴕ𝟜\u200C\u0348; [C1 P1 V5 V6]; [C1 P1 V5 V6] # 𑆀䁴.ⴕ4͈
-T; 憡\uDF1F\u200CႴ.𐋮\u200D≠; [C1 C2 P1 V6]; [P1 V6 A3] # 憡Ⴔ.𐋮≠
-N; 憡\uDF1F\u200CႴ.𐋮\u200D≠; [C1 C2 P1 V6]; [C1 C2 P1 V6 A3] # 憡Ⴔ.𐋮≠
-T; 憡\uDF1F\u200CႴ.𐋮\u200D=\u0338; [C1 C2 P1 V6]; [P1 V6 A3] # 憡Ⴔ.𐋮≠
-N; 憡\uDF1F\u200CႴ.𐋮\u200D=\u0338; [C1 C2 P1 V6]; [C1 C2 P1 V6 A3] # 憡Ⴔ.𐋮≠
-T; 憡\uDF1F\u200Cⴔ.𐋮\u200D=\u0338; [C1 C2 P1 V6]; [P1 V6 A3] # 憡ⴔ.𐋮≠
-N; 憡\uDF1F\u200Cⴔ.𐋮\u200D=\u0338; [C1 C2 P1 V6]; [C1 C2 P1 V6 A3] # 憡ⴔ.𐋮≠
-T; 憡\uDF1F\u200Cⴔ.𐋮\u200D≠; [C1 C2 P1 V6]; [P1 V6 A3] # 憡ⴔ.𐋮≠
-N; 憡\uDF1F\u200Cⴔ.𐋮\u200D≠; [C1 C2 P1 V6]; [C1 C2 P1 V6 A3] # 憡ⴔ.𐋮≠
-B; 憡\uDF1Fⴔ.xn--1chz659f; [P1 V6]; [P1 V6 A3] # 憡ⴔ.𐋮≠
-B; 憡\uDF1FႴ.XN--1CHZ659F; [P1 V6]; [P1 V6 A3] # 憡Ⴔ.𐋮≠
-B; 憡\uDF1FႴ.xn--1Chz659f; [P1 V6]; [P1 V6 A3] # 憡Ⴔ.𐋮≠
-B; 憡\uDF1FႴ.xn--1chz659f; [P1 V6]; [P1 V6 A3] # 憡Ⴔ.𐋮≠
-T; 憡\uDF1F\u200Cⴔ.xn--1ug73gl146a; [C1 C2 P1 V6]; [C2 P1 V6 A3] # 憡ⴔ.𐋮≠
-N; 憡\uDF1F\u200Cⴔ.xn--1ug73gl146a; [C1 C2 P1 V6]; [C1 C2 P1 V6 A3] # 憡ⴔ.𐋮≠
-T; 憡\uDF1F\u200CႴ.XN--1UG73GL146A; [C1 C2 P1 V6]; [C2 P1 V6 A3] # 憡Ⴔ.𐋮≠
-N; 憡\uDF1F\u200CႴ.XN--1UG73GL146A; [C1 C2 P1 V6]; [C1 C2 P1 V6 A3] # 憡Ⴔ.𐋮≠
-T; 憡\uDF1F\u200CႴ.xn--1Ug73gl146a; [C1 C2 P1 V6]; [C2 P1 V6 A3] # 憡Ⴔ.𐋮≠
-N; 憡\uDF1F\u200CႴ.xn--1Ug73gl146a; [C1 C2 P1 V6]; [C1 C2 P1 V6 A3] # 憡Ⴔ.𐋮≠
-B; 憡\uDF1FႴ.xn--1ug73gl146a; [C2 P1 V6]; [C2 P1 V6 A3] # 憡Ⴔ.𐋮≠
-B; 憡\uDF1Fⴔ.xn--1ug73gl146a; [C2 P1 V6]; [C2 P1 V6 A3] # 憡ⴔ.𐋮≠
-B; 憡\uDF1FႴ.XN--1UG73GL146A; [C2 P1 V6]; [C2 P1 V6 A3] # 憡Ⴔ.𐋮≠
-B; 憡\uDF1FႴ.xn--1Ug73gl146a; [C2 P1 V6]; [C2 P1 V6 A3] # 憡Ⴔ.𐋮≠
-T; 憡\uDF1F\u200CႴ.xn--1ug73gl146a; [C1 C2 P1 V6]; [C2 P1 V6 A3] # 憡Ⴔ.𐋮≠
-N; 憡\uDF1F\u200CႴ.xn--1ug73gl146a; [C1 C2 P1 V6]; [C1 C2 P1 V6 A3] # 憡Ⴔ.𐋮≠
diff --git a/Build/source/libs/icu/icu-src/source/test/testdata/IdnaTestV2.txt b/Build/source/libs/icu/icu-src/source/test/testdata/IdnaTestV2.txt
new file mode 100644
index 00000000000..8897be96b6f
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/test/testdata/IdnaTestV2.txt
@@ -0,0 +1,6331 @@
+# IdnaTestV2.txt
+# Date: 2018-05-22, 05:53:13 GMT
+# © 2018 Unicode®, Inc.
+# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
+# For terms of use, see http://www.unicode.org/terms_of_use.html
+# Contains test cases for verifying UTS #46 conformance. For more information,
+# see http://www.unicode.org/reports/tr46/
+#
+# FORMAT:
+#
+# This file is in UTF-8, where characters may be escaped using the \uXXXX or \x{XXXX}
+# convention where they could otherwise have a confusing display.
+# These characters include control codes and combining marks.
+#
+# Columns (c1, c2,...) are separated by semicolons.
+# Leading and trailing spaces and tabs in each column are ignored.
+# Comments are indicated with hash marks.
+#
+# Column 1: source - The source string to be tested
+# Column 2: toUnicode - The result of applying toUnicode to the source,
+# with Transitional_Processing=false.
+# A blank value means the same as the source value.
+# Column 3: toUnicodeStatus - A set of status codes, each corresponding to a particular test.
+# A blank value means [] (no errors).
+# Column 4: toAsciiN - The result of applying toASCII to the source,
+# with Transitional_Processing=false.
+# A blank value means the same as the toUnicode value.
+# Column 5: toAsciiNStatus - A set of status codes, each corresponding to a particular test.
+# A blank value means the same as the toUnicodeStatus value.
+# An explicit [] means no errors.
+# Column 6: toAsciiT - The result of applying toASCII to the source,
+# with Transitional_Processing=true.
+# A blank value means the same as the toAsciiN value.
+# Column 7: toAsciiTStatus - A set of status codes, each corresponding to a particular test.
+# A blank value means the same as the toAsciiNStatus value.
+# An explicit [] means no errors.
+#
+# The line comments currently show visible characters that have been escaped.
+#
+# CONFORMANCE:
+#
+# To test for conformance to UTS #46, an implementation will perform the toUnicode, toAsciiN, and
+# toAsciiT operations on the source string, then verify the resulting strings and relevant status
+# values.
+#
+# If the implementation converts illegal code points into U+FFFD (as per
+# http://www.unicode.org/reports/tr46/proposed.html#Processing) then the string comparisons need to
+# account for that by treating U+FFFD in the actual value as a wildcard when comparing to the
+# expected value in the test file.
+#
+# A status in toUnicode, toAsciiN or toAsciiT is indicated by a value in square brackets,
+# such as "[B5 B6]". In such a case, the contents is a list of status codes based on the step
+# numbers in UTS #46 and IDNA2008, with the following formats.
+#
+# Pn for Section 4 Processing step n
+# Vn for 4.1 Validity Criteria step n
+# U1 for UseSTD3ASCIIRules
+# An for 4.2 ToASCII step n
+# Bn for Bidi (in IDNA2008)
+# Cn for ContextJ (in IDNA2008)
+# Xn for toUnicode issues (see below)
+#
+# Thus C1 = Appendix A.1. ZERO WIDTH NON-JOINER, and C2 = Appendix A.2. ZERO WIDTH JOINER.
+# (The CONTEXTO tests are optional for client software, and not tested here.)
+#
+# Implementations that allow values of particular input flags to be false would ignore
+# the corresponding status codes listed in the table below when testing for errors.
+#
+# VerifyDnsLength: P4
+# CheckHyphens: V2, V3
+# CheckBidi: V8
+# CheckJoiners: V7
+# UseSTD3ASCIIRules: U1
+#
+# Implementations may be more strict than the default settings for UTS #46.
+# In particular, an implementation conformant to IDNA2008 would disallow the input for lines
+# marked with NV8.
+#
+# Implementations need only record that there is an error: they need not reproduce the
+# precise status codes (after removing the ignored status values).
+#
+# Compatibility errors
+#
+# The special error codes X3 and X4_2 are now returned where a toASCII error code
+# was formerly being generated in toUnicode due to an empty label.
+#
+# A3 was being generated in the following cases (in addition to its normal usage).
+# • an empty label in toUnicode. In this case, it is replaced by X3.
+#
+# A4_2 was being generated in the following case (in addition to its normal usage).
+# • an empty label in V8 (CheckBidi). In this case, it is being replaced by X4_2.
+# ============================================================================================
+fass.de; ; ; ; ; ; # fass.de
+faß.de; ; ; xn--fa-hia.de; ; fass.de; # faß.de
+Faß.de; faß.de; ; xn--fa-hia.de; ; fass.de; # faß.de
+xn--fa-hia.de; faß.de; ; xn--fa-hia.de; ; ; # faß.de
+
+# BIDI TESTS
+
+àא; ; [B5, B6]; xn--0ca24w; ; ; # àא
+àא; àא; [B5, B6]; xn--0ca24w; ; ; # àא
+Àא; àא; [B5, B6]; xn--0ca24w; ; ; # àא
+Àא; àא; [B5, B6]; xn--0ca24w; ; ; # àא
+xn--0ca24w; àא; [B5, B6]; xn--0ca24w; ; ; # àא
+0à.א; ; [B1]; xn--0-sfa.xn--4db; ; ; # 0à.א
+0à.א; 0à.א; [B1]; xn--0-sfa.xn--4db; ; ; # 0à.א
+0À.א; 0à.א; [B1]; xn--0-sfa.xn--4db; ; ; # 0à.א
+0À.א; 0à.א; [B1]; xn--0-sfa.xn--4db; ; ; # 0à.א
+xn--0-sfa.xn--4db; 0à.א; [B1]; xn--0-sfa.xn--4db; ; ; # 0à.א
+à.א̈; ; ; xn--0ca.xn--ssa73l; ; ; # à.א̈
+à.א̈; à.א̈; ; xn--0ca.xn--ssa73l; ; ; # à.א̈
+À.א̈; à.א̈; ; xn--0ca.xn--ssa73l; ; ; # à.א̈
+À.א̈; à.א̈; ; xn--0ca.xn--ssa73l; ; ; # à.א̈
+xn--0ca.xn--ssa73l; à.א̈; ; xn--0ca.xn--ssa73l; ; ; # à.א̈
+à.א0٠א; ; [B4]; xn--0ca.xn--0-zhcb98c; ; ; # à.א0٠א
+à.א0٠א; à.א0٠א; [B4]; xn--0ca.xn--0-zhcb98c; ; ; # à.א0٠א
+À.א0٠א; à.א0٠א; [B4]; xn--0ca.xn--0-zhcb98c; ; ; # à.א0٠א
+À.א0٠א; à.א0٠א; [B4]; xn--0ca.xn--0-zhcb98c; ; ; # à.א0٠א
+xn--0ca.xn--0-zhcb98c; à.א0٠א; [B4]; xn--0ca.xn--0-zhcb98c; ; ; # à.א0٠א
+̈.א; ; [B1, B3, B6, V5]; xn--ssa.xn--4db; ; ; # ̈.א
+xn--ssa.xn--4db; ̈.א; [B1, B3, B6, V5]; xn--ssa.xn--4db; ; ; # ̈.א
+à.א0٠; ; [B4]; xn--0ca.xn--0-zhc74b; ; ; # à.א0٠
+à.א0٠; à.א0٠; [B4]; xn--0ca.xn--0-zhc74b; ; ; # à.א0٠
+À.א0٠; à.א0٠; [B4]; xn--0ca.xn--0-zhc74b; ; ; # à.א0٠
+À.א0٠; à.א0٠; [B4]; xn--0ca.xn--0-zhc74b; ; ; # à.א0٠
+xn--0ca.xn--0-zhc74b; à.א0٠; [B4]; xn--0ca.xn--0-zhc74b; ; ; # à.א0٠
+àˇ.א; ; [B6]; xn--0ca88g.xn--4db; ; ; # àˇ.א
+àˇ.א; àˇ.א; [B6]; xn--0ca88g.xn--4db; ; ; # àˇ.א
+Àˇ.א; àˇ.א; [B6]; xn--0ca88g.xn--4db; ; ; # àˇ.א
+Àˇ.א; àˇ.א; [B6]; xn--0ca88g.xn--4db; ; ; # àˇ.א
+xn--0ca88g.xn--4db; àˇ.א; [B6]; xn--0ca88g.xn--4db; ; ; # àˇ.א
+à̈.א; ; ; xn--0ca81i.xn--4db; ; ; # à̈.א
+à̈.א; à̈.א; ; xn--0ca81i.xn--4db; ; ; # à̈.א
+À̈.א; à̈.א; ; xn--0ca81i.xn--4db; ; ; # à̈.א
+À̈.א; à̈.א; ; xn--0ca81i.xn--4db; ; ; # à̈.א
+xn--0ca81i.xn--4db; à̈.א; ; xn--0ca81i.xn--4db; ; ; # à̈.א
+
+# CONTEXT TESTS
+
+a‌b; ; [C1]; xn--ab-j1t; ; ab; [] # ab
+A‌B; a‌b; [C1]; xn--ab-j1t; ; ab; [] # ab
+A‌b; a‌b; [C1]; xn--ab-j1t; ; ab; [] # ab
+ab; ; ; ; ; ; # ab
+xn--ab-j1t; a‌b; [C1]; xn--ab-j1t; ; ; # ab
+a्‌b; ; ; xn--ab-fsf604u; ; xn--ab-fsf; # a्b
+A्‌B; a्‌b; ; xn--ab-fsf604u; ; xn--ab-fsf; # a्b
+A्‌b; a्‌b; ; xn--ab-fsf604u; ; xn--ab-fsf; # a्b
+xn--ab-fsf; a्b; ; xn--ab-fsf; ; ; # a्b
+a्b; ; ; xn--ab-fsf; ; ; # a्b
+A्B; a्b; ; xn--ab-fsf; ; ; # a्b
+A्b; a्b; ; xn--ab-fsf; ; ; # a्b
+xn--ab-fsf604u; a्‌b; ; xn--ab-fsf604u; ; ; # a्b
+̈‌̈بb; ; [B1, C1, V5]; xn--b-bcba413a2w8b; ; xn--b-bcba413a; [B1, V5] # ̈̈بb
+̈‌̈بB; ̈‌̈بb; [B1, C1, V5]; xn--b-bcba413a2w8b; ; xn--b-bcba413a; [B1, V5] # ̈̈بb
+xn--b-bcba413a; ̈̈بb; [B1, V5]; xn--b-bcba413a; ; ; # ̈̈بb
+xn--b-bcba413a2w8b; ̈‌̈بb; [B1, C1, V5]; xn--b-bcba413a2w8b; ; ; # ̈̈بb
+aب̈‌̈; ; [B5, B6, C1]; xn--a-ccba213a5w8b; ; xn--a-ccba213a; [B5, B6] # aب̈̈
+Aب̈‌̈; aب̈‌̈; [B5, B6, C1]; xn--a-ccba213a5w8b; ; xn--a-ccba213a; [B5, B6] # aب̈̈
+xn--a-ccba213a; aب̈̈; [B5, B6]; xn--a-ccba213a; ; ; # aب̈̈
+xn--a-ccba213a5w8b; aب̈‌̈; [B5, B6, C1]; xn--a-ccba213a5w8b; ; ; # aب̈̈
+aب̈‌̈بb; ; [B5]; xn--ab-uuba211bca8057b; ; xn--ab-uuba211bca; # aب̈̈بb
+Aب̈‌̈بB; aب̈‌̈بb; [B5]; xn--ab-uuba211bca8057b; ; xn--ab-uuba211bca; # aب̈̈بb
+Aب̈‌̈بb; aب̈‌̈بb; [B5]; xn--ab-uuba211bca8057b; ; xn--ab-uuba211bca; # aب̈̈بb
+xn--ab-uuba211bca; aب̈̈بb; [B5]; xn--ab-uuba211bca; ; ; # aب̈̈بb
+xn--ab-uuba211bca8057b; aب̈‌̈بb; [B5]; xn--ab-uuba211bca8057b; ; ; # aب̈̈بb
+a‍b; ; [C2]; xn--ab-m1t; ; ab; [] # ab
+A‍B; a‍b; [C2]; xn--ab-m1t; ; ab; [] # ab
+A‍b; a‍b; [C2]; xn--ab-m1t; ; ab; [] # ab
+xn--ab-m1t; a‍b; [C2]; xn--ab-m1t; ; ; # ab
+a्‍b; ; ; xn--ab-fsf014u; ; xn--ab-fsf; # a्b
+A्‍B; a्‍b; ; xn--ab-fsf014u; ; xn--ab-fsf; # a्b
+A्‍b; a्‍b; ; xn--ab-fsf014u; ; xn--ab-fsf; # a्b
+xn--ab-fsf014u; a्‍b; ; xn--ab-fsf014u; ; ; # a्b
+̈‍̈بb; ; [B1, C2, V5]; xn--b-bcba413a7w8b; ; xn--b-bcba413a; [B1, V5] # ̈̈بb
+̈‍̈بB; ̈‍̈بb; [B1, C2, V5]; xn--b-bcba413a7w8b; ; xn--b-bcba413a; [B1, V5] # ̈̈بb
+xn--b-bcba413a7w8b; ̈‍̈بb; [B1, C2, V5]; xn--b-bcba413a7w8b; ; ; # ̈̈بb
+aب̈‍̈; ; [B5, B6, C2]; xn--a-ccba213abx8b; ; xn--a-ccba213a; [B5, B6] # aب̈̈
+Aب̈‍̈; aب̈‍̈; [B5, B6, C2]; xn--a-ccba213abx8b; ; xn--a-ccba213a; [B5, B6] # aب̈̈
+xn--a-ccba213abx8b; aب̈‍̈; [B5, B6, C2]; xn--a-ccba213abx8b; ; ; # aب̈̈
+aب̈‍̈بb; ; [B5, C2]; xn--ab-uuba211bca5157b; ; xn--ab-uuba211bca; [B5] # aب̈̈بb
+Aب̈‍̈بB; aب̈‍̈بb; [B5, C2]; xn--ab-uuba211bca5157b; ; xn--ab-uuba211bca; [B5] # aب̈̈بb
+Aب̈‍̈بb; aب̈‍̈بb; [B5, C2]; xn--ab-uuba211bca5157b; ; xn--ab-uuba211bca; [B5] # aب̈̈بb
+xn--ab-uuba211bca5157b; aب̈‍̈بb; [B5, C2]; xn--ab-uuba211bca5157b; ; ; # aب̈̈بb
+
+# SELECTED TESTS
+
+¡; ; ; xn--7a; ; ; # ¡
+xn--7a; ¡; ; xn--7a; ; ; # ¡
+᧚; ; ; xn--pkf; ; ; # ᧚
+xn--pkf; ᧚; ; xn--pkf; ; ; # ᧚
+。; .; [X4_2]; ; [A4_2]; ; # .
+.; ; [X4_2]; ; [A4_2]; ; # .
+ꭠ; ; ; xn--3y9a; ; ; # ꭠ
+xn--3y9a; ꭠ; ; xn--3y9a; ; ; # ꭠ
+1234567890ä1234567890123456789012345678901234567890123456; ; ; xn--12345678901234567890123456789012345678901234567890123456-fxe; [A4_2]; ; # 1234567890ä1234567890123456789012345678901234567890123456
+1234567890ä1234567890123456789012345678901234567890123456; 1234567890ä1234567890123456789012345678901234567890123456; ; xn--12345678901234567890123456789012345678901234567890123456-fxe; [A4_2]; ; # 1234567890ä1234567890123456789012345678901234567890123456
+1234567890Ä1234567890123456789012345678901234567890123456; 1234567890ä1234567890123456789012345678901234567890123456; ; xn--12345678901234567890123456789012345678901234567890123456-fxe; [A4_2]; ; # 1234567890ä1234567890123456789012345678901234567890123456
+1234567890Ä1234567890123456789012345678901234567890123456; 1234567890ä1234567890123456789012345678901234567890123456; ; xn--12345678901234567890123456789012345678901234567890123456-fxe; [A4_2]; ; # 1234567890ä1234567890123456789012345678901234567890123456
+xn--12345678901234567890123456789012345678901234567890123456-fxe; 1234567890ä1234567890123456789012345678901234567890123456; ; xn--12345678901234567890123456789012345678901234567890123456-fxe; [A4_2]; ; # 1234567890ä1234567890123456789012345678901234567890123456
+www.eXample.cOm; www.example.com; ; ; ; ; # www.example.com
+Bücher.de; bücher.de; ; xn--bcher-kva.de; ; ; # bücher.de
+Bücher.de; bücher.de; ; xn--bcher-kva.de; ; ; # bücher.de
+bücher.de; bücher.de; ; xn--bcher-kva.de; ; ; # bücher.de
+bücher.de; ; ; xn--bcher-kva.de; ; ; # bücher.de
+BÜCHER.DE; bücher.de; ; xn--bcher-kva.de; ; ; # bücher.de
+BÜCHER.DE; bücher.de; ; xn--bcher-kva.de; ; ; # bücher.de
+xn--bcher-kva.de; bücher.de; ; xn--bcher-kva.de; ; ; # bücher.de
+ÖBB; öbb; ; xn--bb-eka; ; ; # öbb
+ÖBB; öbb; ; xn--bb-eka; ; ; # öbb
+öbb; öbb; ; xn--bb-eka; ; ; # öbb
+öbb; ; ; xn--bb-eka; ; ; # öbb
+Öbb; öbb; ; xn--bb-eka; ; ; # öbb
+Öbb; öbb; ; xn--bb-eka; ; ; # öbb
+xn--bb-eka; öbb; ; xn--bb-eka; ; ; # öbb
+βόλος.com; ; ; xn--nxasmm1c.com; ; xn--nxasmq6b.com; # βόλος.com
+βόλος.com; βόλος.com; ; xn--nxasmm1c.com; ; xn--nxasmq6b.com; # βόλος.com
+ΒΌΛΟΣ.COM; βόλοσ.com; ; xn--nxasmq6b.com; ; ; # βόλοσ.com
+ΒΌΛΟΣ.COM; βόλοσ.com; ; xn--nxasmq6b.com; ; ; # βόλοσ.com
+βόλοσ.com; ; ; xn--nxasmq6b.com; ; ; # βόλοσ.com
+βόλοσ.com; βόλοσ.com; ; xn--nxasmq6b.com; ; ; # βόλοσ.com
+Βόλοσ.com; βόλοσ.com; ; xn--nxasmq6b.com; ; ; # βόλοσ.com
+Βόλοσ.com; βόλοσ.com; ; xn--nxasmq6b.com; ; ; # βόλοσ.com
+xn--nxasmq6b.com; βόλοσ.com; ; xn--nxasmq6b.com; ; ; # βόλοσ.com
+Βόλος.com; βόλος.com; ; xn--nxasmm1c.com; ; xn--nxasmq6b.com; # βόλος.com
+Βόλος.com; βόλος.com; ; xn--nxasmm1c.com; ; xn--nxasmq6b.com; # βόλος.com
+xn--nxasmm1c.com; βόλος.com; ; xn--nxasmm1c.com; ; ; # βόλος.com
+xn--nxasmm1c; βόλος; ; xn--nxasmm1c; ; ; # βόλος
+βόλος; ; ; xn--nxasmm1c; ; xn--nxasmq6b; # βόλος
+βόλος; βόλος; ; xn--nxasmm1c; ; xn--nxasmq6b; # βόλος
+ΒΌΛΟΣ; βόλοσ; ; xn--nxasmq6b; ; ; # βόλοσ
+ΒΌΛΟΣ; βόλοσ; ; xn--nxasmq6b; ; ; # βόλοσ
+βόλοσ; ; ; xn--nxasmq6b; ; ; # βόλοσ
+βόλοσ; βόλοσ; ; xn--nxasmq6b; ; ; # βόλοσ
+Βόλοσ; βόλοσ; ; xn--nxasmq6b; ; ; # βόλοσ
+Βόλοσ; βόλοσ; ; xn--nxasmq6b; ; ; # βόλοσ
+xn--nxasmq6b; βόλοσ; ; xn--nxasmq6b; ; ; # βόλοσ
+Βόλος; βόλος; ; xn--nxasmm1c; ; xn--nxasmq6b; # βόλος
+Βόλος; βόλος; ; xn--nxasmm1c; ; xn--nxasmq6b; # βόλος
+www.ශ්‍රී.com; ; ; www.xn--10cl1a0b660p.com; ; www.xn--10cl1a0b.com; # www.ශ්රී.com
+WWW.ශ්‍රී.COM; www.ශ්‍රී.com; ; www.xn--10cl1a0b660p.com; ; www.xn--10cl1a0b.com; # www.ශ්රී.com
+Www.ශ්‍රී.com; www.ශ්‍රී.com; ; www.xn--10cl1a0b660p.com; ; www.xn--10cl1a0b.com; # www.ශ්රී.com
+www.xn--10cl1a0b.com; www.ශ්රී.com; ; www.xn--10cl1a0b.com; ; ; # www.ශ්රී.com
+www.ශ්රී.com; ; ; www.xn--10cl1a0b.com; ; ; # www.ශ්රී.com
+WWW.ශ්රී.COM; www.ශ්රී.com; ; www.xn--10cl1a0b.com; ; ; # www.ශ්රී.com
+Www.ශ්රී.com; www.ශ්රී.com; ; www.xn--10cl1a0b.com; ; ; # www.ශ්රී.com
+www.xn--10cl1a0b660p.com; www.ශ්‍රී.com; ; www.xn--10cl1a0b660p.com; ; ; # www.ශ්රී.com
+نامه‌ای; ; ; xn--mgba3gch31f060k; ; xn--mgba3gch31f; # نامهای
+xn--mgba3gch31f; نامهای; ; xn--mgba3gch31f; ; ; # نامهای
+نامهای; ; ; xn--mgba3gch31f; ; ; # نامهای
+xn--mgba3gch31f060k; نامه‌ای; ; xn--mgba3gch31f060k; ; ; # نامهای
+xn--mgba3gch31f060k.com; نامه‌ای.com; ; xn--mgba3gch31f060k.com; ; ; # نامهای.com
+نامه‌ای.com; ; ; xn--mgba3gch31f060k.com; ; xn--mgba3gch31f.com; # نامهای.com
+نامه‌ای.COM; نامه‌ای.com; ; xn--mgba3gch31f060k.com; ; xn--mgba3gch31f.com; # نامهای.com
+xn--mgba3gch31f.com; نامهای.com; ; xn--mgba3gch31f.com; ; ; # نامهای.com
+نامهای.com; ; ; xn--mgba3gch31f.com; ; ; # نامهای.com
+نامهای.COM; نامهای.com; ; xn--mgba3gch31f.com; ; ; # نامهای.com
+a.b.c。d。; a.b.c.d.; ; ; ; ; # a.b.c.d.
+a.b.c。d。; a.b.c.d.; ; ; ; ; # a.b.c.d.
+A.B.C。D。; a.b.c.d.; ; ; ; ; # a.b.c.d.
+A.b.c。D。; a.b.c.d.; ; ; ; ; # a.b.c.d.
+a.b.c.d.; ; ; ; ; ; # a.b.c.d.
+A.B.C。D。; a.b.c.d.; ; ; ; ; # a.b.c.d.
+A.b.c。D。; a.b.c.d.; ; ; ; ; # a.b.c.d.
+Ü.xn--tda; ü.ü; ; xn--tda.xn--tda; ; ; # ü.ü
+Ü.xn--tda; ü.ü; ; xn--tda.xn--tda; ; ; # ü.ü
+ü.xn--tda; ü.ü; ; xn--tda.xn--tda; ; ; # ü.ü
+ü.xn--tda; ü.ü; ; xn--tda.xn--tda; ; ; # ü.ü
+Ü.XN--TDA; ü.ü; ; xn--tda.xn--tda; ; ; # ü.ü
+Ü.XN--TDA; ü.ü; ; xn--tda.xn--tda; ; ; # ü.ü
+Ü.xn--Tda; ü.ü; ; xn--tda.xn--tda; ; ; # ü.ü
+Ü.xn--Tda; ü.ü; ; xn--tda.xn--tda; ; ; # ü.ü
+xn--tda.xn--tda; ü.ü; ; xn--tda.xn--tda; ; ; # ü.ü
+ü.ü; ; ; xn--tda.xn--tda; ; ; # ü.ü
+ü.ü; ü.ü; ; xn--tda.xn--tda; ; ; # ü.ü
+Ü.Ü; ü.ü; ; xn--tda.xn--tda; ; ; # ü.ü
+Ü.Ü; ü.ü; ; xn--tda.xn--tda; ; ; # ü.ü
+Ü.ü; ü.ü; ; xn--tda.xn--tda; ; ; # ü.ü
+Ü.ü; ü.ü; ; xn--tda.xn--tda; ; ; # ü.ü
+xn--u-ccb; ü; [V1]; xn--u-ccb; ; ; # ü
+a⒈com; ; [P1, V6]; xn--acom-0w1b; ; ; # a⒈com
+a1.com; ; ; ; ; ; # a1.com
+A⒈COM; a⒈com; [P1, V6]; xn--acom-0w1b; ; ; # a⒈com
+A⒈Com; a⒈com; [P1, V6]; xn--acom-0w1b; ; ; # a⒈com
+xn--acom-0w1b; a⒈com; [V6]; xn--acom-0w1b; ; ; # a⒈com
+xn--a-ecp.ru; a⒈.ru; [V6]; xn--a-ecp.ru; ; ; # a⒈.ru
+xn--0.pt; ; [P4]; ; ; ; # xn--0.pt
+xn--a.pt; €.pt; [V6]; xn--a.pt; ; ; # .pt
+xn--a-Ä.pt; xn--a-ä.pt; [P4]; xn--xn--a--gua.pt; ; ; # xn--a-ä.pt
+xn--a-Ä.pt; xn--a-ä.pt; [P4]; xn--xn--a--gua.pt; ; ; # xn--a-ä.pt
+xn--a-ä.pt; xn--a-ä.pt; [P4]; xn--xn--a--gua.pt; ; ; # xn--a-ä.pt
+xn--a-ä.pt; ; [P4]; xn--xn--a--gua.pt; ; ; # xn--a-ä.pt
+XN--A-Ä.PT; xn--a-ä.pt; [P4]; xn--xn--a--gua.pt; ; ; # xn--a-ä.pt
+XN--A-Ä.PT; xn--a-ä.pt; [P4]; xn--xn--a--gua.pt; ; ; # xn--a-ä.pt
+Xn--A-Ä.pt; xn--a-ä.pt; [P4]; xn--xn--a--gua.pt; ; ; # xn--a-ä.pt
+Xn--A-Ä.pt; xn--a-ä.pt; [P4]; xn--xn--a--gua.pt; ; ; # xn--a-ä.pt
+xn--xn--a--gua.pt; xn--a-ä.pt; [V2]; xn--xn--a--gua.pt; ; ; # xn--a-ä.pt
+日本語。JP; 日本語.jp; ; xn--wgv71a119e.jp; ; ; # 日本語.jp
+日本語。JP; 日本語.jp; ; xn--wgv71a119e.jp; ; ; # 日本語.jp
+日本語。jp; 日本語.jp; ; xn--wgv71a119e.jp; ; ; # 日本語.jp
+日本語。Jp; 日本語.jp; ; xn--wgv71a119e.jp; ; ; # 日本語.jp
+xn--wgv71a119e.jp; 日本語.jp; ; xn--wgv71a119e.jp; ; ; # 日本語.jp
+日本語.jp; ; ; xn--wgv71a119e.jp; ; ; # 日本語.jp
+日本語.JP; 日本語.jp; ; xn--wgv71a119e.jp; ; ; # 日本語.jp
+日本語.Jp; 日本語.jp; ; xn--wgv71a119e.jp; ; ; # 日本語.jp
+日本語。jp; 日本語.jp; ; xn--wgv71a119e.jp; ; ; # 日本語.jp
+日本語。Jp; 日本語.jp; ; xn--wgv71a119e.jp; ; ; # 日本語.jp
+☕; ; ; xn--53h; ; ; # ☕
+xn--53h; ☕; ; xn--53h; ; ; # ☕
+1.aß‌‍b‌‍cßßßßdςσßßßßßßßßeßßßßßßßßßßxßßßßßßßßßßyßßßßßßßß̂ßz; ; [C1, C2]; 1.xn--abcdexyz-qyacaaabaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaa010ze2isb1140zba8cc; [C1, C2, A4_2]; 1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa; [A4_2] # 1.aßbcßßßßdςσßßßßßßßßeßßßßßßßßßßxßßßßßßßßßßyßßßßßßßß̂ßz
+1.ASS‌‍B‌‍CSSSSSSSSDΣΣSSSSSSSSSSSSSSSSESSSSSSSSSSSSSSSSSSSSXSSSSSSSSSSSSSSSSSSSSYSSSSSSSSSSSSSSSŜSSZ; 1.ass‌‍b‌‍cssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz; [C1, C2]; 1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa69989dba9gc; [C1, C2, A4_2]; 1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa; [A4_2] # 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz
+1.ASS‌‍B‌‍CSSSSSSSSDΣΣSSSSSSSSSSSSSSSSESSSSSSSSSSSSSSSSSSSSXSSSSSSSSSSSSSSSSSSSSYSSSSSSSSSSSSSSSŜSSZ; 1.ass‌‍b‌‍cssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz; [C1, C2]; 1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa69989dba9gc; [C1, C2, A4_2]; 1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa; [A4_2] # 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz
+1.ass‌‍b‌‍cssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz; ; [C1, C2]; 1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa69989dba9gc; [C1, C2, A4_2]; 1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa; [A4_2] # 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz
+1.ass‌‍b‌‍cssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz; 1.ass‌‍b‌‍cssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz; [C1, C2]; 1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa69989dba9gc; [C1, C2, A4_2]; 1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa; [A4_2] # 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz
+1.Ass‌‍b‌‍cssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz; 1.ass‌‍b‌‍cssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz; [C1, C2]; 1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa69989dba9gc; [C1, C2, A4_2]; 1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa; [A4_2] # 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz
+1.Ass‌‍b‌‍cssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz; 1.ass‌‍b‌‍cssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz; [C1, C2]; 1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa69989dba9gc; [C1, C2, A4_2]; 1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa; [A4_2] # 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz
+1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa; 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz; ; 1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa; [A4_2]; ; # 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz
+1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz; ; ; 1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa; [A4_2]; ; # 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz
+1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz; 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz; ; 1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa; [A4_2]; ; # 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz
+1.ASSBCSSSSSSSSDΣΣSSSSSSSSSSSSSSSSESSSSSSSSSSSSSSSSSSSSXSSSSSSSSSSSSSSSSSSSSYSSSSSSSSSSSSSSSŜSSZ; 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz; ; 1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa; [A4_2]; ; # 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz
+1.ASSBCSSSSSSSSDΣΣSSSSSSSSSSSSSSSSESSSSSSSSSSSSSSSSSSSSXSSSSSSSSSSSSSSSSSSSSYSSSSSSSSSSSSSSSŜSSZ; 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz; ; 1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa; [A4_2]; ; # 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz
+1.Assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz; 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz; ; 1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa; [A4_2]; ; # 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz
+1.Assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz; 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz; ; 1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa; [A4_2]; ; # 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz
+1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa69989dba9gc; 1.ass‌‍b‌‍cssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz; [C1, C2]; 1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa69989dba9gc; [C1, C2, A4_2]; ; # 1.assbcssssssssdσσssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssŝssz
+1.Aß‌‍b‌‍cßßßßdςσßßßßßßßßeßßßßßßßßßßxßßßßßßßßßßyßßßßßßßß̂ßz; 1.aß‌‍b‌‍cßßßßdςσßßßßßßßßeßßßßßßßßßßxßßßßßßßßßßyßßßßßßßß̂ßz; [C1, C2]; 1.xn--abcdexyz-qyacaaabaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaa010ze2isb1140zba8cc; [C1, C2, A4_2]; 1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa; [A4_2] # 1.aßbcßßßßdςσßßßßßßßßeßßßßßßßßßßxßßßßßßßßßßyßßßßßßßß̂ßz
+1.xn--abcdexyz-qyacaaabaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaa010ze2isb1140zba8cc; 1.aß‌‍b‌‍cßßßßdςσßßßßßßßßeßßßßßßßßßßxßßßßßßßßßßyßßßßßßßß̂ßz; [C1, C2]; 1.xn--abcdexyz-qyacaaabaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaa010ze2isb1140zba8cc; [C1, C2, A4_2]; ; # 1.aßbcßßßßdςσßßßßßßßßeßßßßßßßßßßxßßßßßßßßßßyßßßßßßßß̂ßz
+‌x‍n‌-‍-bß; ; [C1, C2]; xn--xn--b-pqa5796ccahd; ; xn--bss; [] # xn--bß
+‌X‍N‌-‍-BSS; ‌x‍n‌-‍-bss; [C1, C2]; xn--xn--bss-7z6ccid; ; xn--bss; [] # xn--bss
+‌x‍n‌-‍-bss; ; [C1, C2]; xn--xn--bss-7z6ccid; ; xn--bss; [] # xn--bss
+‌X‍n‌-‍-Bss; ‌x‍n‌-‍-bss; [C1, C2]; xn--xn--bss-7z6ccid; ; xn--bss; [] # xn--bss
+xn--bss; 夙; ; xn--bss; ; ; # 夙
+夙; ; ; xn--bss; ; ; # 夙
+xn--xn--bss-7z6ccid; ‌x‍n‌-‍-bss; [C1, C2]; xn--xn--bss-7z6ccid; ; ; # xn--bss
+‌X‍n‌-‍-Bß; ‌x‍n‌-‍-bß; [C1, C2]; xn--xn--b-pqa5796ccahd; ; xn--bss; [] # xn--bß
+xn--xn--b-pqa5796ccahd; ‌x‍n‌-‍-bß; [C1, C2]; xn--xn--b-pqa5796ccahd; ; ; # xn--bß
+ˣ͏ℕ​﹣­-᠌ℬ︀ſ⁤𝔰󠇯ffl; 夡夞夜夙; ; xn--bssffl; ; ; # 夡夞夜夙
+x͏N​-­-᠌B︀s⁤s󠇯ffl; 夡夞夜夙; ; xn--bssffl; ; ; # 夡夞夜夙
+x͏n​-­-᠌b︀s⁤s󠇯ffl; 夡夞夜夙; ; xn--bssffl; ; ; # 夡夞夜夙
+X͏N​-­-᠌B︀S⁤S󠇯FFL; 夡夞夜夙; ; xn--bssffl; ; ; # 夡夞夜夙
+X͏n​-­-᠌B︀s⁤s󠇯ffl; 夡夞夜夙; ; xn--bssffl; ; ; # 夡夞夜夙
+xn--bssffl; 夡夞夜夙; ; xn--bssffl; ; ; # 夡夞夜夙
+夡夞夜夙; ; ; xn--bssffl; ; ; # 夡夞夜夙
+ˣ͏ℕ​﹣­-᠌ℬ︀S⁤𝔰󠇯FFL; 夡夞夜夙; ; xn--bssffl; ; ; # 夡夞夜夙
+x͏N​-­-᠌B︀S⁤s󠇯FFL; 夡夞夜夙; ; xn--bssffl; ; ; # 夡夞夜夙
+ˣ͏ℕ​﹣­-᠌ℬ︀s⁤𝔰󠇯ffl; 夡夞夜夙; ; xn--bssffl; ; ; # 夡夞夜夙
+123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; ; ; ; ; ; # 123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901
+123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.; ; ; ; ; ; # 123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.
+123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789012; ; ; ; [A4_1]; ; # 123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789012
+123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901234.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890; ; ; ; [A4_2]; ; # 123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901234.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890
+123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901234.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890.; ; ; ; [A4_2]; ; # 123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901234.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890.
+123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901234.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; ; ; ; [A4_1, A4_2]; ; # 123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901234.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901
+ä1234567890123456789012345678901234567890123456789012345; ; ; xn--1234567890123456789012345678901234567890123456789012345-9te; ; ; # ä1234567890123456789012345678901234567890123456789012345
+ä1234567890123456789012345678901234567890123456789012345; ä1234567890123456789012345678901234567890123456789012345; ; xn--1234567890123456789012345678901234567890123456789012345-9te; ; ; # ä1234567890123456789012345678901234567890123456789012345
+Ä1234567890123456789012345678901234567890123456789012345; ä1234567890123456789012345678901234567890123456789012345; ; xn--1234567890123456789012345678901234567890123456789012345-9te; ; ; # ä1234567890123456789012345678901234567890123456789012345
+Ä1234567890123456789012345678901234567890123456789012345; ä1234567890123456789012345678901234567890123456789012345; ; xn--1234567890123456789012345678901234567890123456789012345-9te; ; ; # ä1234567890123456789012345678901234567890123456789012345
+xn--1234567890123456789012345678901234567890123456789012345-9te; ä1234567890123456789012345678901234567890123456789012345; ; xn--1234567890123456789012345678901234567890123456789012345-9te; ; ; # ä1234567890123456789012345678901234567890123456789012345
+123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; ; ; 123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; ; ; # 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901
+123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; ; 123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; ; ; # 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901
+123456789012345678901234567890123456789012345678901234567890123.1234567890Ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; ; 123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; ; ; # 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901
+123456789012345678901234567890123456789012345678901234567890123.1234567890Ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; ; 123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; ; ; # 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901
+123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; ; 123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; ; ; # 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901
+123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.; ; ; 123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.; ; ; # 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.
+123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.; ; 123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.; ; ; # 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.
+123456789012345678901234567890123456789012345678901234567890123.1234567890Ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.; ; 123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.; ; ; # 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.
+123456789012345678901234567890123456789012345678901234567890123.1234567890Ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.; ; 123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.; ; ; # 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.
+123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.; ; 123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.; ; ; # 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901.
+123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789012; ; ; 123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789012; [A4_1]; ; # 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789012
+123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789012; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789012; ; 123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789012; [A4_1]; ; # 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789012
+123456789012345678901234567890123456789012345678901234567890123.1234567890Ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789012; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789012; ; 123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789012; [A4_1]; ; # 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789012
+123456789012345678901234567890123456789012345678901234567890123.1234567890Ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789012; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789012; ; 123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789012; [A4_1]; ; # 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789012
+123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789012; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789012; ; 123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789012; [A4_1]; ; # 123456789012345678901234567890123456789012345678901234567890123.1234567890ä123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789012
+123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890; ; ; 123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890; [A4_2]; ; # 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890
+123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890; ; 123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890; [A4_2]; ; # 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890
+123456789012345678901234567890123456789012345678901234567890123.1234567890Ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890; ; 123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890; [A4_2]; ; # 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890
+123456789012345678901234567890123456789012345678901234567890123.1234567890Ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890; ; 123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890; [A4_2]; ; # 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890
+123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890; ; 123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890; [A4_2]; ; # 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890
+123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890.; ; ; 123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890.; [A4_2]; ; # 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890.
+123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890.; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890.; ; 123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890.; [A4_2]; ; # 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890.
+123456789012345678901234567890123456789012345678901234567890123.1234567890Ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890.; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890.; ; 123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890.; [A4_2]; ; # 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890.
+123456789012345678901234567890123456789012345678901234567890123.1234567890Ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890.; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890.; ; 123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890.; [A4_2]; ; # 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890.
+123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890.; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890.; ; 123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890.; [A4_2]; ; # 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890.
+123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; ; ; 123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; [A4_1, A4_2]; ; # 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901
+123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; ; 123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; [A4_1, A4_2]; ; # 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901
+123456789012345678901234567890123456789012345678901234567890123.1234567890Ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; ; 123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; [A4_1, A4_2]; ; # 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901
+123456789012345678901234567890123456789012345678901234567890123.1234567890Ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; ; 123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; [A4_1, A4_2]; ; # 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901
+123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; ; 123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901; [A4_1, A4_2]; ; # 123456789012345678901234567890123456789012345678901234567890123.1234567890ä1234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901
+a.b..-q--a-.e; ; [V2, V3, X4_2]; ; [V2, V3, A4_2]; ; # a.b..-q--a-.e
+a.b..-q--ä-.e; ; [V2, V3, X4_2]; a.b..xn---q----jra.e; [V2, V3, A4_2]; ; # a.b..-q--ä-.e
+a.b..-q--ä-.e; a.b..-q--ä-.e; [V2, V3, X4_2]; a.b..xn---q----jra.e; [V2, V3, A4_2]; ; # a.b..-q--ä-.e
+A.B..-Q--Ä-.E; a.b..-q--ä-.e; [V2, V3, X4_2]; a.b..xn---q----jra.e; [V2, V3, A4_2]; ; # a.b..-q--ä-.e
+A.B..-Q--Ä-.E; a.b..-q--ä-.e; [V2, V3, X4_2]; a.b..xn---q----jra.e; [V2, V3, A4_2]; ; # a.b..-q--ä-.e
+A.b..-Q--Ä-.E; a.b..-q--ä-.e; [V2, V3, X4_2]; a.b..xn---q----jra.e; [V2, V3, A4_2]; ; # a.b..-q--ä-.e
+A.b..-Q--Ä-.E; a.b..-q--ä-.e; [V2, V3, X4_2]; a.b..xn---q----jra.e; [V2, V3, A4_2]; ; # a.b..-q--ä-.e
+a.b..xn---q----jra.e; a.b..-q--ä-.e; [V2, V3, X4_2]; a.b..xn---q----jra.e; [V2, V3, A4_2]; ; # a.b..-q--ä-.e
+a..c; ; [X4_2]; ; [A4_2]; ; # a..c
+a.-b.; ; [V3]; ; ; ; # a.-b.
+a.b-.c; ; [V3]; ; ; ; # a.b-.c
+a.-.c; ; [V3]; ; ; ; # a.-.c
+a.bc--de.f; ; [V2]; ; ; ; # a.bc--de.f
+ä.­.c; ä..c; [X4_2]; xn--4ca..c; [A4_2]; ; # ä..c
+ä.­.c; ä..c; [X4_2]; xn--4ca..c; [A4_2]; ; # ä..c
+Ä.­.C; ä..c; [X4_2]; xn--4ca..c; [A4_2]; ; # ä..c
+Ä.­.C; ä..c; [X4_2]; xn--4ca..c; [A4_2]; ; # ä..c
+xn--4ca..c; ä..c; [X4_2]; xn--4ca..c; [A4_2]; ; # ä..c
+ä.-b.; ; [V3]; xn--4ca.-b.; ; ; # ä.-b.
+ä.-b.; ä.-b.; [V3]; xn--4ca.-b.; ; ; # ä.-b.
+Ä.-B.; ä.-b.; [V3]; xn--4ca.-b.; ; ; # ä.-b.
+Ä.-B.; ä.-b.; [V3]; xn--4ca.-b.; ; ; # ä.-b.
+xn--4ca.-b.; ä.-b.; [V3]; xn--4ca.-b.; ; ; # ä.-b.
+ä.b-.c; ; [V3]; xn--4ca.b-.c; ; ; # ä.b-.c
+ä.b-.c; ä.b-.c; [V3]; xn--4ca.b-.c; ; ; # ä.b-.c
+Ä.B-.C; ä.b-.c; [V3]; xn--4ca.b-.c; ; ; # ä.b-.c
+Ä.B-.C; ä.b-.c; [V3]; xn--4ca.b-.c; ; ; # ä.b-.c
+Ä.b-.C; ä.b-.c; [V3]; xn--4ca.b-.c; ; ; # ä.b-.c
+Ä.b-.C; ä.b-.c; [V3]; xn--4ca.b-.c; ; ; # ä.b-.c
+xn--4ca.b-.c; ä.b-.c; [V3]; xn--4ca.b-.c; ; ; # ä.b-.c
+ä.-.c; ; [V3]; xn--4ca.-.c; ; ; # ä.-.c
+ä.-.c; ä.-.c; [V3]; xn--4ca.-.c; ; ; # ä.-.c
+Ä.-.C; ä.-.c; [V3]; xn--4ca.-.c; ; ; # ä.-.c
+Ä.-.C; ä.-.c; [V3]; xn--4ca.-.c; ; ; # ä.-.c
+xn--4ca.-.c; ä.-.c; [V3]; xn--4ca.-.c; ; ; # ä.-.c
+ä.bc--de.f; ; [V2]; xn--4ca.bc--de.f; ; ; # ä.bc--de.f
+ä.bc--de.f; ä.bc--de.f; [V2]; xn--4ca.bc--de.f; ; ; # ä.bc--de.f
+Ä.BC--DE.F; ä.bc--de.f; [V2]; xn--4ca.bc--de.f; ; ; # ä.bc--de.f
+Ä.BC--DE.F; ä.bc--de.f; [V2]; xn--4ca.bc--de.f; ; ; # ä.bc--de.f
+Ä.bc--De.f; ä.bc--de.f; [V2]; xn--4ca.bc--de.f; ; ; # ä.bc--de.f
+Ä.bc--De.f; ä.bc--de.f; [V2]; xn--4ca.bc--de.f; ; ; # ä.bc--de.f
+xn--4ca.bc--de.f; ä.bc--de.f; [V2]; xn--4ca.bc--de.f; ; ; # ä.bc--de.f
+a.b.̈c.d; ; [V5]; a.b.xn--c-bcb.d; ; ; # a.b.̈c.d
+A.B.̈C.D; a.b.̈c.d; [V5]; a.b.xn--c-bcb.d; ; ; # a.b.̈c.d
+A.b.̈c.d; a.b.̈c.d; [V5]; a.b.xn--c-bcb.d; ; ; # a.b.̈c.d
+a.b.xn--c-bcb.d; a.b.̈c.d; [V5]; a.b.xn--c-bcb.d; ; ; # a.b.̈c.d
+A0; a0; ; ; ; ; # a0
+0A; 0a; ; ; ; ; # 0a
+0A.א; 0a.א; [B1]; 0a.xn--4db; ; ; # 0a.א
+0a.א; ; [B1]; 0a.xn--4db; ; ; # 0a.א
+0a.xn--4db; 0a.א; [B1]; 0a.xn--4db; ; ; # 0a.א
+c.xn--0-eha.xn--4db; c.0ü.א; [B1]; c.xn--0-eha.xn--4db; ; ; # c.0ü.א
+b-.א; ; [B6, V3]; b-.xn--4db; ; ; # b-.א
+B-.א; b-.א; [B6, V3]; b-.xn--4db; ; ; # b-.א
+b-.xn--4db; b-.א; [B6, V3]; b-.xn--4db; ; ; # b-.א
+d.xn----dha.xn--4db; d.ü-.א; [B6, V3]; d.xn----dha.xn--4db; ; ; # d.ü-.א
+aא; ; [B5, B6]; xn--a-0hc; ; ; # aא
+Aא; aא; [B5, B6]; xn--a-0hc; ; ; # aא
+xn--a-0hc; aא; [B5, B6]; xn--a-0hc; ; ; # aא
+אׇ; ; ; xn--vdbr; ; ; # אׇ
+xn--vdbr; אׇ; ; xn--vdbr; ; ; # אׇ
+א9ׇ; ; ; xn--9-ihcz; ; ; # א9ׇ
+xn--9-ihcz; א9ׇ; ; xn--9-ihcz; ; ; # א9ׇ
+אaׇ; ; [B2, B3]; xn--a-ihcz; ; ; # אaׇ
+אAׇ; אaׇ; [B2, B3]; xn--a-ihcz; ; ; # אaׇ
+xn--a-ihcz; אaׇ; [B2, B3]; xn--a-ihcz; ; ; # אaׇ
+את; ; ; xn--4db6c; ; ; # את
+xn--4db6c; את; ; xn--4db6c; ; ; # את
+א׳ת; ; ; xn--4db6c0a; ; ; # א׳ת
+xn--4db6c0a; א׳ת; ; xn--4db6c0a; ; ; # א׳ת
+aאTz; aאtz; [B5]; xn--atz-qpe; ; ; # aאtz
+aאtz; ; [B5]; xn--atz-qpe; ; ; # aאtz
+AאTZ; aאtz; [B5]; xn--atz-qpe; ; ; # aאtz
+Aאtz; aאtz; [B5]; xn--atz-qpe; ; ; # aאtz
+xn--atz-qpe; aאtz; [B5]; xn--atz-qpe; ; ; # aאtz
+אTת; אtת; [B2]; xn--t-zhc3f; ; ; # אtת
+אtת; ; [B2]; xn--t-zhc3f; ; ; # אtת
+xn--t-zhc3f; אtת; [B2]; xn--t-zhc3f; ; ; # אtת
+א7ת; ; ; xn--7-zhc3f; ; ; # א7ת
+xn--7-zhc3f; א7ת; ; xn--7-zhc3f; ; ; # א7ת
+א٧ת; ; ; xn--4db6c6t; ; ; # א٧ת
+xn--4db6c6t; א٧ת; ; xn--4db6c6t; ; ; # א٧ת
+a7٧z; ; [B5]; xn--a7z-06e; ; ; # a7٧z
+A7٧Z; a7٧z; [B5]; xn--a7z-06e; ; ; # a7٧z
+A7٧z; a7٧z; [B5]; xn--a7z-06e; ; ; # a7٧z
+xn--a7z-06e; a7٧z; [B5]; xn--a7z-06e; ; ; # a7٧z
+א7٧ת; ; [B4]; xn--7-zhc3fty; ; ; # א7٧ת
+xn--7-zhc3fty; א7٧ת; [B4]; xn--7-zhc3fty; ; ; # א7٧ת
+ஹ்‍; ; ; xn--dmc4b194h; ; xn--dmc4b; # ஹ்
+xn--dmc4b; ஹ்; ; xn--dmc4b; ; ; # ஹ்
+ஹ்; ; ; xn--dmc4b; ; ; # ஹ்
+xn--dmc4b194h; ஹ்‍; ; xn--dmc4b194h; ; ; # ஹ்
+ஹ‍; ; [C2]; xn--dmc225h; ; xn--dmc; [] # ஹ
+xn--dmc; ஹ; ; xn--dmc; ; ; # ஹ
+ஹ; ; ; xn--dmc; ; ; # ஹ
+xn--dmc225h; ஹ‍; [C2]; xn--dmc225h; ; ; # ஹ
+‍; ; [C2]; xn--1ug; ; ; [A4_2] #
+; ; [X4_2]; ; [A4_2]; ; #
+xn--1ug; ‍; [C2]; xn--1ug; ; ; #
+ஹ்‌; ; ; xn--dmc4by94h; ; xn--dmc4b; # ஹ்
+xn--dmc4by94h; ஹ்‌; ; xn--dmc4by94h; ; ; # ஹ்
+ஹ‌; ; [C1]; xn--dmc025h; ; xn--dmc; [] # ஹ
+xn--dmc025h; ஹ‌; [C1]; xn--dmc025h; ; ; # ஹ
+‌; ; [C1]; xn--0ug; ; ; [A4_2] #
+xn--0ug; ‌; [C1]; xn--0ug; ; ; #
+لٰ‌ۭۯ; ; ; xn--ghb2gxqia7523a; ; xn--ghb2gxqia; # لٰۭۯ
+xn--ghb2gxqia; لٰۭۯ; ; xn--ghb2gxqia; ; ; # لٰۭۯ
+لٰۭۯ; ; ; xn--ghb2gxqia; ; ; # لٰۭۯ
+xn--ghb2gxqia7523a; لٰ‌ۭۯ; ; xn--ghb2gxqia7523a; ; ; # لٰۭۯ
+لٰ‌ۯ; ; ; xn--ghb2g3qq34f; ; xn--ghb2g3q; # لٰۯ
+xn--ghb2g3q; لٰۯ; ; xn--ghb2g3q; ; ; # لٰۯ
+لٰۯ; ; ; xn--ghb2g3q; ; ; # لٰۯ
+xn--ghb2g3qq34f; لٰ‌ۯ; ; xn--ghb2g3qq34f; ; ; # لٰۯ
+ل‌ۭۯ; ; ; xn--ghb25aga828w; ; xn--ghb25aga; # لۭۯ
+xn--ghb25aga; لۭۯ; ; xn--ghb25aga; ; ; # لۭۯ
+لۭۯ; ; ; xn--ghb25aga; ; ; # لۭۯ
+xn--ghb25aga828w; ل‌ۭۯ; ; xn--ghb25aga828w; ; ; # لۭۯ
+ل‌ۯ; ; ; xn--ghb65a953d; ; xn--ghb65a; # لۯ
+xn--ghb65a; لۯ; ; xn--ghb65a; ; ; # لۯ
+لۯ; ; ; xn--ghb65a; ; ; # لۯ
+xn--ghb65a953d; ل‌ۯ; ; xn--ghb65a953d; ; ; # لۯ
+لٰ‌ۭ; ; [B3, C1]; xn--ghb2gxqy34f; ; xn--ghb2gxq; [] # لٰۭ
+xn--ghb2gxq; لٰۭ; ; xn--ghb2gxq; ; ; # لٰۭ
+لٰۭ; ; ; xn--ghb2gxq; ; ; # لٰۭ
+xn--ghb2gxqy34f; لٰ‌ۭ; [B3, C1]; xn--ghb2gxqy34f; ; ; # لٰۭ
+ۯ‌ۯ; ; [C1]; xn--cmba004q; ; xn--cmba; [] # ۯۯ
+xn--cmba; ۯۯ; ; xn--cmba; ; ; # ۯۯ
+ۯۯ; ; ; xn--cmba; ; ; # ۯۯ
+xn--cmba004q; ۯ‌ۯ; [C1]; xn--cmba004q; ; ; # ۯۯ
+ل‌; ; [B3, C1]; xn--ghb413k; ; xn--ghb; [] # ل
+xn--ghb; ل; ; xn--ghb; ; ; # ل
+ل; ; ; xn--ghb; ; ; # ل
+xn--ghb413k; ل‌; [B3, C1]; xn--ghb413k; ; ; # ل
+a。。b; a..b; [X4_2]; ; [A4_2]; ; # a..b
+A。。B; a..b; [X4_2]; ; [A4_2]; ; # a..b
+a..b; ; [X4_2]; ; [A4_2]; ; # a..b
+‍。。ڹ‌; ‍..ڹ‌; [B1, B3, C1, C2, X4_2]; xn--1ug..xn--skb080k; [B1, B3, C1, C2, A4_2]; ..xn--skb; [A4_2] # ..ڹ
+..xn--skb; ..ڹ; [X4_2]; ..xn--skb; [A4_2]; ; # ..ڹ
+xn--1ug..xn--skb080k; ‍..ڹ‌; [B1, B3, C1, C2, X4_2]; xn--1ug..xn--skb080k; [B1, B3, C1, C2, A4_2]; ; # ..ڹ
+א0٠; ; [B4]; xn--0-zhc74b; ; ; # א0٠
+xn--0-zhc74b; א0٠; [B4]; xn--0-zhc74b; ; ; # א0٠
+$; ; [P1, V6]; ; ; ; # $
+
+# RANDOMIZED TESTS
+
+c.0ü.א; ; [B1]; c.xn--0-eha.xn--4db; ; ; # c.0ü.א
+c.0ü.א; c.0ü.א; [B1]; c.xn--0-eha.xn--4db; ; ; # c.0ü.א
+C.0Ü.א; c.0ü.א; [B1]; c.xn--0-eha.xn--4db; ; ; # c.0ü.א
+C.0Ü.א; c.0ü.א; [B1]; c.xn--0-eha.xn--4db; ; ; # c.0ü.א
+C.0ü.א; c.0ü.א; [B1]; c.xn--0-eha.xn--4db; ; ; # c.0ü.א
+C.0ü.א; c.0ü.א; [B1]; c.xn--0-eha.xn--4db; ; ; # c.0ü.א
+⒕∝ٟ򓤦.-󠄯; ⒕∝ٟ򓤦.-; [P1, V3, V6]; xn--7hb713lfwbi1311b.-; ; ; # ⒕∝ٟ.-
+14.∝ٟ򓤦.-󠄯; 14.∝ٟ򓤦.-; [P1, V3, V6]; 14.xn--7hb713l3v90n.-; ; ; # 14.∝ٟ.-
+14.xn--7hb713l3v90n.-; 14.∝ٟ򓤦.-; [V3, V6]; 14.xn--7hb713l3v90n.-; ; ; # 14.∝ٟ.-
+xn--7hb713lfwbi1311b.-; ⒕∝ٟ򓤦.-; [V3, V6]; xn--7hb713lfwbi1311b.-; ; ; # ⒕∝ٟ.-
+ꡣ.ߏ; ; ; xn--8c9a.xn--qsb; ; ; # ꡣ.ߏ
+xn--8c9a.xn--qsb; ꡣ.ߏ; ; xn--8c9a.xn--qsb; ; ; # ꡣ.ߏ
+≯؃。-; ≯؃.-; [B1, P1, V3, V6]; xn--lfb566l.-; ; ; # ≯.-
+≯؃。-; ≯؃.-; [B1, P1, V3, V6]; xn--lfb566l.-; ; ; # ≯.-
+≯؃。-; ≯؃.-; [B1, P1, V3, V6]; xn--lfb566l.-; ; ; # ≯.-
+≯؃。-; ≯؃.-; [B1, P1, V3, V6]; xn--lfb566l.-; ; ; # ≯.-
+xn--lfb566l.-; ≯؃.-; [B1, V3, V6]; xn--lfb566l.-; ; ; # ≯.-
+⾛𐹧⾕.ᅟ󠗰ςႭ; 走𐹧谷.ᅟ󠗰ςႭ; [B5, P1, V6]; xn--6g3a1x434z.xn--3xa827dhpae6345i; ; xn--6g3a1x434z.xn--4xa627dhpae6345i; # 走𐹧谷.ςႭ
+走𐹧谷.ᅟ󠗰ςႭ; ; [B5, P1, V6]; xn--6g3a1x434z.xn--3xa827dhpae6345i; ; xn--6g3a1x434z.xn--4xa627dhpae6345i; # 走𐹧谷.ςႭ
+走𐹧谷.ᅟ󠗰ςⴍ; ; [B5, P1, V6]; xn--6g3a1x434z.xn--3xa380eotvh7453a; ; xn--6g3a1x434z.xn--4xa180eotvh7453a; # 走𐹧谷.ςⴍ
+走𐹧谷.ᅟ󠗰ΣႭ; 走𐹧谷.ᅟ󠗰σႭ; [B5, P1, V6]; xn--6g3a1x434z.xn--4xa627dhpae6345i; ; ; # 走𐹧谷.σႭ
+走𐹧谷.ᅟ󠗰σⴍ; ; [B5, P1, V6]; xn--6g3a1x434z.xn--4xa180eotvh7453a; ; ; # 走𐹧谷.σⴍ
+走𐹧谷.ᅟ󠗰Σⴍ; 走𐹧谷.ᅟ󠗰σⴍ; [B5, P1, V6]; xn--6g3a1x434z.xn--4xa180eotvh7453a; ; ; # 走𐹧谷.σⴍ
+xn--6g3a1x434z.xn--4xa180eotvh7453a; 走𐹧谷.ᅟ󠗰σⴍ; [B5, V6]; xn--6g3a1x434z.xn--4xa180eotvh7453a; ; ; # 走𐹧谷.σⴍ
+xn--6g3a1x434z.xn--4xa627dhpae6345i; 走𐹧谷.ᅟ󠗰σႭ; [B5, V6]; xn--6g3a1x434z.xn--4xa627dhpae6345i; ; ; # 走𐹧谷.σႭ
+xn--6g3a1x434z.xn--3xa380eotvh7453a; 走𐹧谷.ᅟ󠗰ςⴍ; [B5, V6]; xn--6g3a1x434z.xn--3xa380eotvh7453a; ; ; # 走𐹧谷.ςⴍ
+xn--6g3a1x434z.xn--3xa827dhpae6345i; 走𐹧谷.ᅟ󠗰ςႭ; [B5, V6]; xn--6g3a1x434z.xn--3xa827dhpae6345i; ; ; # 走𐹧谷.ςႭ
+⾛𐹧⾕.ᅟ󠗰ςⴍ; 走𐹧谷.ᅟ󠗰ςⴍ; [B5, P1, V6]; xn--6g3a1x434z.xn--3xa380eotvh7453a; ; xn--6g3a1x434z.xn--4xa180eotvh7453a; # 走𐹧谷.ςⴍ
+⾛𐹧⾕.ᅟ󠗰ΣႭ; 走𐹧谷.ᅟ󠗰σႭ; [B5, P1, V6]; xn--6g3a1x434z.xn--4xa627dhpae6345i; ; ; # 走𐹧谷.σႭ
+⾛𐹧⾕.ᅟ󠗰σⴍ; 走𐹧谷.ᅟ󠗰σⴍ; [B5, P1, V6]; xn--6g3a1x434z.xn--4xa180eotvh7453a; ; ; # 走𐹧谷.σⴍ
+⾛𐹧⾕.ᅟ󠗰Σⴍ; 走𐹧谷.ᅟ󠗰σⴍ; [B5, P1, V6]; xn--6g3a1x434z.xn--4xa180eotvh7453a; ; ; # 走𐹧谷.σⴍ
+‍≠ᢙ≯.솣-ᡴႠ; ; [C2, P1, V6]; xn--jbf929a90b0b.xn----6zg521d196p; ; xn--jbf911clb.xn----6zg521d196p; [P1, V6] # ≠ᢙ≯.솣-ᡴႠ
+‍≠ᢙ≯.솣-ᡴႠ; ‍≠ᢙ≯.솣-ᡴႠ; [C2, P1, V6]; xn--jbf929a90b0b.xn----6zg521d196p; ; xn--jbf911clb.xn----6zg521d196p; [P1, V6] # ≠ᢙ≯.솣-ᡴႠ
+‍≠ᢙ≯.솣-ᡴⴀ; ‍≠ᢙ≯.솣-ᡴⴀ; [C2, P1, V6]; xn--jbf929a90b0b.xn----p9j493ivi4l; ; xn--jbf911clb.xn----p9j493ivi4l; [P1, V6] # ≠ᢙ≯.솣-ᡴⴀ
+‍≠ᢙ≯.솣-ᡴⴀ; ; [C2, P1, V6]; xn--jbf929a90b0b.xn----p9j493ivi4l; ; xn--jbf911clb.xn----p9j493ivi4l; [P1, V6] # ≠ᢙ≯.솣-ᡴⴀ
+xn--jbf911clb.xn----p9j493ivi4l; ≠ᢙ≯.솣-ᡴⴀ; [V6]; xn--jbf911clb.xn----p9j493ivi4l; ; ; # ≠ᢙ≯.솣-ᡴⴀ
+xn--jbf929a90b0b.xn----p9j493ivi4l; ‍≠ᢙ≯.솣-ᡴⴀ; [C2, V6]; xn--jbf929a90b0b.xn----p9j493ivi4l; ; ; # ≠ᢙ≯.솣-ᡴⴀ
+xn--jbf911clb.xn----6zg521d196p; ≠ᢙ≯.솣-ᡴႠ; [V6]; xn--jbf911clb.xn----6zg521d196p; ; ; # ≠ᢙ≯.솣-ᡴႠ
+xn--jbf929a90b0b.xn----6zg521d196p; ‍≠ᢙ≯.솣-ᡴႠ; [C2, V6]; xn--jbf929a90b0b.xn----6zg521d196p; ; ; # ≠ᢙ≯.솣-ᡴႠ
+񯞜.𐿇ྡྷݽ؀; 񯞜.𐿇ྡྷݽ؀; [P1, V6]; xn--gw68a.xn--ifb57ev2psc6027m; ; ; # .ྡྷݽ
+񯞜.𐿇ྡྷݽ؀; 񯞜.𐿇ྡྷݽ؀; [P1, V6]; xn--gw68a.xn--ifb57ev2psc6027m; ; ; # .ྡྷݽ
+񯞜.𐿇ྡྷݽ؀; ; [P1, V6]; xn--gw68a.xn--ifb57ev2psc6027m; ; ; # .ྡྷݽ
+xn--gw68a.xn--ifb57ev2psc6027m; 񯞜.𐿇ྡྷݽ؀; [V6]; xn--gw68a.xn--ifb57ev2psc6027m; ; ; # .ྡྷݽ
+𣳔̃.𑓂; ; [V5]; xn--nsa95820a.xn--wz1d; ; ; # 𣳔̃.𑓂
+xn--nsa95820a.xn--wz1d; 𣳔̃.𑓂; [V5]; xn--nsa95820a.xn--wz1d; ; ; # 𣳔̃.𑓂
+𞤀𞥅񘐱。󠄌Ⴣꡥ; 𞤢𞥅񘐱.Ⴣꡥ; [B2, B3, P1, V6]; xn--9d6hgcy3556a.xn--7nd0578e; ; ; # 𞤢𞥅.Ⴣꡥ
+𞤢𞥅񘐱。󠄌ⴣꡥ; 𞤢𞥅񘐱.ⴣꡥ; [B2, B3, P1, V6]; xn--9d6hgcy3556a.xn--rlju750b; ; ; # 𞤢𞥅.ⴣꡥ
+xn--9d6hgcy3556a.xn--rlju750b; 𞤢𞥅񘐱.ⴣꡥ; [B2, B3, V6]; xn--9d6hgcy3556a.xn--rlju750b; ; ; # 𞤢𞥅.ⴣꡥ
+xn--9d6hgcy3556a.xn--7nd0578e; 𞤢𞥅񘐱.Ⴣꡥ; [B2, B3, V6]; xn--9d6hgcy3556a.xn--7nd0578e; ; ; # 𞤢𞥅.Ⴣꡥ
+𞤀𞥅񘐱。󠄌ⴣꡥ; 𞤢𞥅񘐱.ⴣꡥ; [B2, B3, P1, V6]; xn--9d6hgcy3556a.xn--rlju750b; ; ; # 𞤢𞥅.ⴣꡥ
+࣢𑁿ς𖬱。󠅡렧; ࣢𑁿ς𖬱.렧; [B1, P1, V6]; xn--3xa73xp48ys2xc.xn--kn2b; ; xn--4xa53xp48ys2xc.xn--kn2b; # 𑁿ς𖬱.렧
+࣢𑁿ς𖬱。󠅡렧; ࣢𑁿ς𖬱.렧; [B1, P1, V6]; xn--3xa73xp48ys2xc.xn--kn2b; ; xn--4xa53xp48ys2xc.xn--kn2b; # 𑁿ς𖬱.렧
+࣢𑁿Σ𖬱。󠅡렧; ࣢𑁿σ𖬱.렧; [B1, P1, V6]; xn--4xa53xp48ys2xc.xn--kn2b; ; ; # 𑁿σ𖬱.렧
+࣢𑁿Σ𖬱。󠅡렧; ࣢𑁿σ𖬱.렧; [B1, P1, V6]; xn--4xa53xp48ys2xc.xn--kn2b; ; ; # 𑁿σ𖬱.렧
+࣢𑁿σ𖬱。󠅡렧; ࣢𑁿σ𖬱.렧; [B1, P1, V6]; xn--4xa53xp48ys2xc.xn--kn2b; ; ; # 𑁿σ𖬱.렧
+࣢𑁿σ𖬱。󠅡렧; ࣢𑁿σ𖬱.렧; [B1, P1, V6]; xn--4xa53xp48ys2xc.xn--kn2b; ; ; # 𑁿σ𖬱.렧
+xn--4xa53xp48ys2xc.xn--kn2b; ࣢𑁿σ𖬱.렧; [B1, V6]; xn--4xa53xp48ys2xc.xn--kn2b; ; ; # 𑁿σ𖬱.렧
+xn--3xa73xp48ys2xc.xn--kn2b; ࣢𑁿ς𖬱.렧; [B1, V6]; xn--3xa73xp48ys2xc.xn--kn2b; ; ; # 𑁿ς𖬱.렧
+-‍。𞤍‌‍⒈; -‍.𞤯‌‍⒈; [B1, C1, C2, P1, V3, V6]; xn----ugn.xn--0ugc555aiv51d; ; -.xn--tsh3666n; [B1, P1, V3, V6] # -.𞤯⒈
+-‍。𞤍‌‍1.; -‍.𞤯‌‍1.; [B1, C1, C2, V3]; xn----ugn.xn--1-rgnd61297b.; ; -.xn--1-0i8r.; [B1, V3] # -.𞤯1.
+-‍。𞤯‌‍1.; -‍.𞤯‌‍1.; [B1, C1, C2, V3]; xn----ugn.xn--1-rgnd61297b.; ; -.xn--1-0i8r.; [B1, V3] # -.𞤯1.
+-.xn--1-0i8r.; -.𞤯1.; [B1, V3]; -.xn--1-0i8r.; ; ; # -.𞤯1.
+xn----ugn.xn--1-rgnd61297b.; -‍.𞤯‌‍1.; [B1, C1, C2, V3]; xn----ugn.xn--1-rgnd61297b.; ; ; # -.𞤯1.
+-‍。𞤯‌‍⒈; -‍.𞤯‌‍⒈; [B1, C1, C2, P1, V3, V6]; xn----ugn.xn--0ugc555aiv51d; ; -.xn--tsh3666n; [B1, P1, V3, V6] # -.𞤯⒈
+-.xn--tsh3666n; -.𞤯⒈; [B1, V3, V6]; -.xn--tsh3666n; ; ; # -.𞤯⒈
+xn----ugn.xn--0ugc555aiv51d; -‍.𞤯‌‍⒈; [B1, C1, C2, V3, V6]; xn----ugn.xn--0ugc555aiv51d; ; ; # -.𞤯⒈
+‌򅎭.Ⴒ𑇀; ; [C1, P1, V6]; xn--0ug15083f.xn--qnd6272k; ; xn--bn95b.xn--qnd6272k; [P1, V6] # .Ⴒ𑇀
+‌򅎭.ⴒ𑇀; ; [C1, P1, V6]; xn--0ug15083f.xn--9kj2034e; ; xn--bn95b.xn--9kj2034e; [P1, V6] # .ⴒ𑇀
+xn--bn95b.xn--9kj2034e; 򅎭.ⴒ𑇀; [V6]; xn--bn95b.xn--9kj2034e; ; ; # .ⴒ𑇀
+xn--0ug15083f.xn--9kj2034e; ‌򅎭.ⴒ𑇀; [C1, V6]; xn--0ug15083f.xn--9kj2034e; ; ; # .ⴒ𑇀
+xn--bn95b.xn--qnd6272k; 򅎭.Ⴒ𑇀; [V6]; xn--bn95b.xn--qnd6272k; ; ; # .Ⴒ𑇀
+xn--0ug15083f.xn--qnd6272k; ‌򅎭.Ⴒ𑇀; [C1, V6]; xn--0ug15083f.xn--qnd6272k; ; ; # .Ⴒ𑇀
+繱𑖿‍.8︒; 繱𑖿‍.8︒; [P1, V6]; xn--1ug6928ac48e.xn--8-o89h; ; xn--gl0as212a.xn--8-o89h; # 繱𑖿.8︒
+繱𑖿‍.8。; 繱𑖿‍.8.; ; xn--1ug6928ac48e.8.; ; xn--gl0as212a.8.; # 繱𑖿.8.
+xn--gl0as212a.8.; 繱𑖿.8.; ; xn--gl0as212a.8.; ; ; # 繱𑖿.8.
+繱𑖿.8.; ; ; xn--gl0as212a.8.; ; ; # 繱𑖿.8.
+xn--1ug6928ac48e.8.; 繱𑖿‍.8.; ; xn--1ug6928ac48e.8.; ; ; # 繱𑖿.8.
+繱𑖿‍.8.; ; ; xn--1ug6928ac48e.8.; ; xn--gl0as212a.8.; # 繱𑖿.8.
+xn--gl0as212a.xn--8-o89h; 繱𑖿.8︒; [V6]; xn--gl0as212a.xn--8-o89h; ; ; # 繱𑖿.8︒
+xn--1ug6928ac48e.xn--8-o89h; 繱𑖿‍.8︒; [V6]; xn--1ug6928ac48e.xn--8-o89h; ; ; # 繱𑖿.8︒
+󠆾.𞀈; .𞀈; [V5, X4_2]; .xn--ph4h; [V5, A4_2]; ; # .𞀈
+󠆾.𞀈; .𞀈; [V5, X4_2]; .xn--ph4h; [V5, A4_2]; ; # .𞀈
+.xn--ph4h; .𞀈; [V5, X4_2]; .xn--ph4h; [V5, A4_2]; ; # .𞀈
+ß۫。‍; ß۫.‍; [C2]; xn--zca012a.xn--1ug; ; xn--ss-59d.; [] # ß۫.
+SS۫。‍; ss۫.‍; [C2]; xn--ss-59d.xn--1ug; ; xn--ss-59d.; [] # ss۫.
+ss۫。‍; ss۫.‍; [C2]; xn--ss-59d.xn--1ug; ; xn--ss-59d.; [] # ss۫.
+Ss۫。‍; ss۫.‍; [C2]; xn--ss-59d.xn--1ug; ; xn--ss-59d.; [] # ss۫.
+xn--ss-59d.; ss۫.; ; xn--ss-59d.; ; ; # ss۫.
+ss۫.; ; ; xn--ss-59d.; ; ; # ss۫.
+SS۫.; ss۫.; ; xn--ss-59d.; ; ; # ss۫.
+Ss۫.; ss۫.; ; xn--ss-59d.; ; ; # ss۫.
+xn--ss-59d.xn--1ug; ss۫.‍; [C2]; xn--ss-59d.xn--1ug; ; ; # ss۫.
+xn--zca012a.xn--1ug; ß۫.‍; [C2]; xn--zca012a.xn--1ug; ; ; # ß۫.
+󠐵‌⒈.󠎇; 󠐵‌⒈.󠎇; [C1, P1, V6]; xn--0ug88o47900b.xn--tv36e; ; xn--tshz2001k.xn--tv36e; [P1, V6] # ⒈.
+󠐵‌1..󠎇; ; [C1, P1, V6, X4_2]; xn--1-rgn37671n..xn--tv36e; [C1, P1, V6, A4_2]; xn--1-bs31m..xn--tv36e; [P1, V6, A4_2] # 1..
+xn--1-bs31m..xn--tv36e; 󠐵1..󠎇; [V6, X4_2]; xn--1-bs31m..xn--tv36e; [V6, A4_2]; ; # 1..
+xn--1-rgn37671n..xn--tv36e; 󠐵‌1..󠎇; [C1, V6, X4_2]; xn--1-rgn37671n..xn--tv36e; [C1, V6, A4_2]; ; # 1..
+xn--tshz2001k.xn--tv36e; 󠐵⒈.󠎇; [V6]; xn--tshz2001k.xn--tv36e; ; ; # ⒈.
+xn--0ug88o47900b.xn--tv36e; 󠐵‌⒈.󠎇; [C1, V6]; xn--0ug88o47900b.xn--tv36e; ; ; # ⒈.
+󟈣ٟꪲß。󌓧; 󟈣ٟꪲß.󌓧; [P1, V6]; xn--zca92z0t7n5w96j.xn--bb79d; ; xn--ss-3xd2839nncy1m.xn--bb79d; # ٟꪲß.
+󟈣ٟꪲSS。󌓧; 󟈣ٟꪲss.󌓧; [P1, V6]; xn--ss-3xd2839nncy1m.xn--bb79d; ; ; # ٟꪲss.
+󟈣ٟꪲss。󌓧; 󟈣ٟꪲss.󌓧; [P1, V6]; xn--ss-3xd2839nncy1m.xn--bb79d; ; ; # ٟꪲss.
+󟈣ٟꪲSs。󌓧; 󟈣ٟꪲss.󌓧; [P1, V6]; xn--ss-3xd2839nncy1m.xn--bb79d; ; ; # ٟꪲss.
+xn--ss-3xd2839nncy1m.xn--bb79d; 󟈣ٟꪲss.󌓧; [V6]; xn--ss-3xd2839nncy1m.xn--bb79d; ; ; # ٟꪲss.
+xn--zca92z0t7n5w96j.xn--bb79d; 󟈣ٟꪲß.󌓧; [V6]; xn--zca92z0t7n5w96j.xn--bb79d; ; ; # ٟꪲß.
+ݴ‌𞤿。𽘐䉜‍񿤼; ݴ‌𞤿.𽘐䉜‍񿤼; [C1, C2, P1, V6]; xn--4pb607jjt73a.xn--1ug236ke314donv1a; ; xn--4pb2977v.xn--z0nt555ukbnv; [P1, V6] # ݴ𞤿.䉜
+ݴ‌𞤝。𽘐䉜‍񿤼; ݴ‌𞤿.𽘐䉜‍񿤼; [C1, C2, P1, V6]; xn--4pb607jjt73a.xn--1ug236ke314donv1a; ; xn--4pb2977v.xn--z0nt555ukbnv; [P1, V6] # ݴ𞤿.䉜
+xn--4pb2977v.xn--z0nt555ukbnv; ݴ𞤿.𽘐䉜񿤼; [V6]; xn--4pb2977v.xn--z0nt555ukbnv; ; ; # ݴ𞤿.䉜
+xn--4pb607jjt73a.xn--1ug236ke314donv1a; ݴ‌𞤿.𽘐䉜‍񿤼; [C1, C2, V6]; xn--4pb607jjt73a.xn--1ug236ke314donv1a; ; ; # ݴ𞤿.䉜
+򔭜ςᡱ⒈.≮𑄳‍𐮍; ; [B1, P1, V6]; xn--3xa407hkzinr77u.xn--1ug85gn777ahze; ; xn--4xa207hkzinr77u.xn--gdh5392g6sd; # ςᡱ⒈.≮𑄳𐮍
+򔭜ςᡱ⒈.≮𑄳‍𐮍; 򔭜ςᡱ⒈.≮𑄳‍𐮍; [B1, P1, V6]; xn--3xa407hkzinr77u.xn--1ug85gn777ahze; ; xn--4xa207hkzinr77u.xn--gdh5392g6sd; # ςᡱ⒈.≮𑄳𐮍
+򔭜ςᡱ1..≮𑄳‍𐮍; ; [B1, P1, V6, X4_2]; xn--1-xmb999meq63t..xn--1ug85gn777ahze; [B1, P1, V6, A4_2]; xn--1-zmb699meq63t..xn--gdh5392g6sd; # ςᡱ1..≮𑄳𐮍
+򔭜ςᡱ1..≮𑄳‍𐮍; 򔭜ςᡱ1..≮𑄳‍𐮍; [B1, P1, V6, X4_2]; xn--1-xmb999meq63t..xn--1ug85gn777ahze; [B1, P1, V6, A4_2]; xn--1-zmb699meq63t..xn--gdh5392g6sd; # ςᡱ1..≮𑄳𐮍
+򔭜Σᡱ1..≮𑄳‍𐮍; 򔭜σᡱ1..≮𑄳‍𐮍; [B1, P1, V6, X4_2]; xn--1-zmb699meq63t..xn--1ug85gn777ahze; [B1, P1, V6, A4_2]; xn--1-zmb699meq63t..xn--gdh5392g6sd; # σᡱ1..≮𑄳𐮍
+򔭜Σᡱ1..≮𑄳‍𐮍; 򔭜σᡱ1..≮𑄳‍𐮍; [B1, P1, V6, X4_2]; xn--1-zmb699meq63t..xn--1ug85gn777ahze; [B1, P1, V6, A4_2]; xn--1-zmb699meq63t..xn--gdh5392g6sd; # σᡱ1..≮𑄳𐮍
+򔭜σᡱ1..≮𑄳‍𐮍; ; [B1, P1, V6, X4_2]; xn--1-zmb699meq63t..xn--1ug85gn777ahze; [B1, P1, V6, A4_2]; xn--1-zmb699meq63t..xn--gdh5392g6sd; # σᡱ1..≮𑄳𐮍
+򔭜σᡱ1..≮𑄳‍𐮍; 򔭜σᡱ1..≮𑄳‍𐮍; [B1, P1, V6, X4_2]; xn--1-zmb699meq63t..xn--1ug85gn777ahze; [B1, P1, V6, A4_2]; xn--1-zmb699meq63t..xn--gdh5392g6sd; # σᡱ1..≮𑄳𐮍
+xn--1-zmb699meq63t..xn--gdh5392g6sd; 򔭜σᡱ1..≮𑄳𐮍; [B1, V6, X4_2]; xn--1-zmb699meq63t..xn--gdh5392g6sd; [B1, V6, A4_2]; ; # σᡱ1..≮𑄳𐮍
+xn--1-zmb699meq63t..xn--1ug85gn777ahze; 򔭜σᡱ1..≮𑄳‍𐮍; [B1, V6, X4_2]; xn--1-zmb699meq63t..xn--1ug85gn777ahze; [B1, V6, A4_2]; ; # σᡱ1..≮𑄳𐮍
+xn--1-xmb999meq63t..xn--1ug85gn777ahze; 򔭜ςᡱ1..≮𑄳‍𐮍; [B1, V6, X4_2]; xn--1-xmb999meq63t..xn--1ug85gn777ahze; [B1, V6, A4_2]; ; # ςᡱ1..≮𑄳𐮍
+򔭜Σᡱ⒈.≮𑄳‍𐮍; 򔭜σᡱ⒈.≮𑄳‍𐮍; [B1, P1, V6]; xn--4xa207hkzinr77u.xn--1ug85gn777ahze; ; xn--4xa207hkzinr77u.xn--gdh5392g6sd; # σᡱ⒈.≮𑄳𐮍
+򔭜Σᡱ⒈.≮𑄳‍𐮍; 򔭜σᡱ⒈.≮𑄳‍𐮍; [B1, P1, V6]; xn--4xa207hkzinr77u.xn--1ug85gn777ahze; ; xn--4xa207hkzinr77u.xn--gdh5392g6sd; # σᡱ⒈.≮𑄳𐮍
+򔭜σᡱ⒈.≮𑄳‍𐮍; ; [B1, P1, V6]; xn--4xa207hkzinr77u.xn--1ug85gn777ahze; ; xn--4xa207hkzinr77u.xn--gdh5392g6sd; # σᡱ⒈.≮𑄳𐮍
+򔭜σᡱ⒈.≮𑄳‍𐮍; 򔭜σᡱ⒈.≮𑄳‍𐮍; [B1, P1, V6]; xn--4xa207hkzinr77u.xn--1ug85gn777ahze; ; xn--4xa207hkzinr77u.xn--gdh5392g6sd; # σᡱ⒈.≮𑄳𐮍
+xn--4xa207hkzinr77u.xn--gdh5392g6sd; 򔭜σᡱ⒈.≮𑄳𐮍; [B1, V6]; xn--4xa207hkzinr77u.xn--gdh5392g6sd; ; ; # σᡱ⒈.≮𑄳𐮍
+xn--4xa207hkzinr77u.xn--1ug85gn777ahze; 򔭜σᡱ⒈.≮𑄳‍𐮍; [B1, V6]; xn--4xa207hkzinr77u.xn--1ug85gn777ahze; ; ; # σᡱ⒈.≮𑄳𐮍
+xn--3xa407hkzinr77u.xn--1ug85gn777ahze; 򔭜ςᡱ⒈.≮𑄳‍𐮍; [B1, V6]; xn--3xa407hkzinr77u.xn--1ug85gn777ahze; ; ; # ςᡱ⒈.≮𑄳𐮍
+ㅤ्Ⴀ័.᠋; ㅤ्Ⴀ័.; [P1, V6]; xn--n3b468azngju2a.; ; ; # ्Ⴀ័.
+ᅠ्Ⴀ័.᠋; ᅠ्Ⴀ័.; [P1, V6]; xn--n3b468aoqa89r.; ; ; # ्Ⴀ័.
+ᅠ्ⴀ័.᠋; ᅠ्ⴀ័.; [P1, V6]; xn--n3b742bkqf4ty.; ; ; # ्ⴀ័.
+xn--n3b742bkqf4ty.; ᅠ्ⴀ័.; [V6]; xn--n3b742bkqf4ty.; ; ; # ्ⴀ័.
+xn--n3b468aoqa89r.; ᅠ्Ⴀ័.; [V6]; xn--n3b468aoqa89r.; ; ; # ्Ⴀ័.
+ㅤ्ⴀ័.᠋; ㅤ्ⴀ័.; [P1, V6]; xn--n3b445e53po6d.; ; ; # ्ⴀ័.
+xn--n3b445e53po6d.; ㅤ्ⴀ័.; [V6]; xn--n3b445e53po6d.; ; ; # ्ⴀ័.
+xn--n3b468azngju2a.; ㅤ्Ⴀ័.; [V6]; xn--n3b468azngju2a.; ; ; # ्Ⴀ័.
+❣‍.্𑰽ؒꤩ; ❣‍.্𑰽ؒꤩ; [C2, V5]; xn--1ugy10a.xn--0fb32q3w7q2g4d; ; xn--pei.xn--0fb32q3w7q2g4d; [V5] # ❣.্𑰽ؒꤩ
+❣‍.্𑰽ؒꤩ; ; [C2, V5]; xn--1ugy10a.xn--0fb32q3w7q2g4d; ; xn--pei.xn--0fb32q3w7q2g4d; [V5] # ❣.্𑰽ؒꤩ
+xn--pei.xn--0fb32q3w7q2g4d; ❣.্𑰽ؒꤩ; [V5]; xn--pei.xn--0fb32q3w7q2g4d; ; ; # ❣.্𑰽ؒꤩ
+xn--1ugy10a.xn--0fb32q3w7q2g4d; ❣‍.্𑰽ؒꤩ; [C2, V5]; xn--1ugy10a.xn--0fb32q3w7q2g4d; ; ; # ❣.্𑰽ؒꤩ
+≮𐳺𐹄.≯񪮸ꡅ; ; [B1, P1, V6]; xn--gdh7943gk2a.xn--hdh1383c5e36c; ; ; # ≮𐳺.≯ꡅ
+≮𐳺𐹄.≯񪮸ꡅ; ≮𐳺𐹄.≯񪮸ꡅ; [B1, P1, V6]; xn--gdh7943gk2a.xn--hdh1383c5e36c; ; ; # ≮𐳺.≯ꡅ
+xn--gdh7943gk2a.xn--hdh1383c5e36c; ≮𐳺𐹄.≯񪮸ꡅ; [B1, V6]; xn--gdh7943gk2a.xn--hdh1383c5e36c; ; ; # ≮𐳺.≯ꡅ
+ೌ𐧅𐳏󠲺。್ᠦ; ೌ𐧅𐳏󠲺.್ᠦ; [B1, P1, V5, V6]; xn--7tc6360ky5bn2732c.xn--8tc429c; ; ; # ೌ𐧅𐳏.್ᠦ
+ೌ𐧅𐳏󠲺。್ᠦ; ೌ𐧅𐳏󠲺.್ᠦ; [B1, P1, V5, V6]; xn--7tc6360ky5bn2732c.xn--8tc429c; ; ; # ೌ𐧅𐳏.್ᠦ
+ೌ𐧅𐲏󠲺。್ᠦ; ೌ𐧅𐳏󠲺.್ᠦ; [B1, P1, V5, V6]; xn--7tc6360ky5bn2732c.xn--8tc429c; ; ; # ೌ𐧅𐳏.್ᠦ
+xn--7tc6360ky5bn2732c.xn--8tc429c; ೌ𐧅𐳏󠲺.್ᠦ; [B1, V5, V6]; xn--7tc6360ky5bn2732c.xn--8tc429c; ; ; # ೌ𐧅𐳏.್ᠦ
+ೌ𐧅𐲏󠲺。್ᠦ; ೌ𐧅𐳏󠲺.್ᠦ; [B1, P1, V5, V6]; xn--7tc6360ky5bn2732c.xn--8tc429c; ; ; # ೌ𐧅𐳏.್ᠦ
+͉。𧡫; ͉.𧡫; [V5]; xn--nua.xn--bc6k; ; ; # ͉.𧡫
+xn--nua.xn--bc6k; ͉.𧡫; [V5]; xn--nua.xn--bc6k; ; ; # ͉.𧡫
+𑰿󠅦.ᅠ; 𑰿.ᅠ; [P1, V5, V6]; xn--ok3d.xn--psd; ; ; # 𑰿.
+𑰿󠅦.ᅠ; 𑰿.ᅠ; [P1, V5, V6]; xn--ok3d.xn--psd; ; ; # 𑰿.
+xn--ok3d.xn--psd; 𑰿.ᅠ; [V5, V6]; xn--ok3d.xn--psd; ; ; # 𑰿.
+-𞤆‍。󸼄𞳒; -𞤨‍.󸼄𞳒; [B1, B5, B6, C2, P1, V3, V6]; xn----ugnx367r.xn--846h96596c; ; xn----ni8r.xn--846h96596c; [B1, B5, B6, P1, V3, V6] # -𞤨.
+-𞤨‍。󸼄𞳒; -𞤨‍.󸼄𞳒; [B1, B5, B6, C2, P1, V3, V6]; xn----ugnx367r.xn--846h96596c; ; xn----ni8r.xn--846h96596c; [B1, B5, B6, P1, V3, V6] # -𞤨.
+xn----ni8r.xn--846h96596c; -𞤨.󸼄𞳒; [B1, B5, B6, V3, V6]; xn----ni8r.xn--846h96596c; ; ; # -𞤨.
+xn----ugnx367r.xn--846h96596c; -𞤨‍.󸼄𞳒; [B1, B5, B6, C2, V3, V6]; xn----ugnx367r.xn--846h96596c; ; ; # -𞤨.
+ꡏ󠇶≯𳾽。᷽⾇滸𐹰; ꡏ󠇶≯𳾽.᷽舛滸𐹰; [B1, P1, V5, V6]; xn--hdh7483cu6twwki8e.xn--yfg0765a58l0n6k; ; ; # ꡏ≯.᷽舛滸𐹰
+ꡏ󠇶≯𳾽。᷽⾇滸𐹰; ꡏ󠇶≯𳾽.᷽舛滸𐹰; [B1, P1, V5, V6]; xn--hdh7483cu6twwki8e.xn--yfg0765a58l0n6k; ; ; # ꡏ≯.᷽舛滸𐹰
+ꡏ󠇶≯𳾽。᷽舛滸𐹰; ꡏ󠇶≯𳾽.᷽舛滸𐹰; [B1, P1, V5, V6]; xn--hdh7483cu6twwki8e.xn--yfg0765a58l0n6k; ; ; # ꡏ≯.᷽舛滸𐹰
+ꡏ󠇶≯𳾽。᷽舛滸𐹰; ꡏ󠇶≯𳾽.᷽舛滸𐹰; [B1, P1, V5, V6]; xn--hdh7483cu6twwki8e.xn--yfg0765a58l0n6k; ; ; # ꡏ≯.᷽舛滸𐹰
+xn--hdh7483cu6twwki8e.xn--yfg0765a58l0n6k; ꡏ󠇶≯𳾽.᷽舛滸𐹰; [B1, V5, V6]; xn--hdh7483cu6twwki8e.xn--yfg0765a58l0n6k; ; ; # ꡏ≯.᷽舛滸𐹰
+蔏。𑰺; 蔏.𑰺; [V5]; xn--uy1a.xn--jk3d; ; ; # 蔏.𑰺
+蔏。𑰺; 蔏.𑰺; [V5]; xn--uy1a.xn--jk3d; ; ; # 蔏.𑰺
+xn--uy1a.xn--jk3d; 蔏.𑰺; [V5]; xn--uy1a.xn--jk3d; ; ; # 蔏.𑰺
+𝟿𐮋。󠄊; 9𐮋.; [B1]; xn--9-rv5i.; ; ; # 9𐮋.
+9𐮋。󠄊; 9𐮋.; [B1]; xn--9-rv5i.; ; ; # 9𐮋.
+xn--9-rv5i.; 9𐮋.; [B1]; xn--9-rv5i.; ; ; # 9𐮋.
+󟇇-䟖F。ߋ⒈٢; 󟇇-䟖f.ߋ⒈٢; [B4, P1, V6]; xn---f-mz8b08788k.xn--bib53ev44d; ; ; # -䟖f.ߋ⒈٢
+󟇇-䟖F。ߋ1.٢; 󟇇-䟖f.ߋ1.٢; [B1, P1, V6]; xn---f-mz8b08788k.xn--1-ybd.xn--bib; ; ; # -䟖f.ߋ1.٢
+󟇇-䟖f。ߋ1.٢; 󟇇-䟖f.ߋ1.٢; [B1, P1, V6]; xn---f-mz8b08788k.xn--1-ybd.xn--bib; ; ; # -䟖f.ߋ1.٢
+xn---f-mz8b08788k.xn--1-ybd.xn--bib; 󟇇-䟖f.ߋ1.٢; [B1, V6]; xn---f-mz8b08788k.xn--1-ybd.xn--bib; ; ; # -䟖f.ߋ1.٢
+󟇇-䟖f。ߋ⒈٢; 󟇇-䟖f.ߋ⒈٢; [B4, P1, V6]; xn---f-mz8b08788k.xn--bib53ev44d; ; ; # -䟖f.ߋ⒈٢
+xn---f-mz8b08788k.xn--bib53ev44d; 󟇇-䟖f.ߋ⒈٢; [B4, V6]; xn---f-mz8b08788k.xn--bib53ev44d; ; ; # -䟖f.ߋ⒈٢
+‌。𐹺; ‌.𐹺; [B1, C1]; xn--0ug.xn--yo0d; ; .xn--yo0d; [B1, A4_2] # .𐹺
+‌。𐹺; ‌.𐹺; [B1, C1]; xn--0ug.xn--yo0d; ; .xn--yo0d; [B1, A4_2] # .𐹺
+.xn--yo0d; .𐹺; [B1, X4_2]; .xn--yo0d; [B1, A4_2]; ; # .𐹺
+xn--0ug.xn--yo0d; ‌.𐹺; [B1, C1]; xn--0ug.xn--yo0d; ; ; # .𐹺
+𐡆.≯‌-𞥀; ; [B1, C1, P1, V6]; xn--le9c.xn----rgn40iy359e; ; xn--le9c.xn----ogo9956r; [B1, P1, V6] # 𐡆.≯-𞥀
+𐡆.≯‌-𞥀; 𐡆.≯‌-𞥀; [B1, C1, P1, V6]; xn--le9c.xn----rgn40iy359e; ; xn--le9c.xn----ogo9956r; [B1, P1, V6] # 𐡆.≯-𞥀
+𐡆.≯‌-𞤞; 𐡆.≯‌-𞥀; [B1, C1, P1, V6]; xn--le9c.xn----rgn40iy359e; ; xn--le9c.xn----ogo9956r; [B1, P1, V6] # 𐡆.≯-𞥀
+𐡆.≯‌-𞤞; 𐡆.≯‌-𞥀; [B1, C1, P1, V6]; xn--le9c.xn----rgn40iy359e; ; xn--le9c.xn----ogo9956r; [B1, P1, V6] # 𐡆.≯-𞥀
+xn--le9c.xn----ogo9956r; 𐡆.≯-𞥀; [B1, V6]; xn--le9c.xn----ogo9956r; ; ; # 𐡆.≯-𞥀
+xn--le9c.xn----rgn40iy359e; 𐡆.≯‌-𞥀; [B1, C1, V6]; xn--le9c.xn----rgn40iy359e; ; ; # 𐡆.≯-𞥀
+󠁀-。≠ﳗ; 󠁀-.≠هج; [B1, P1, V3, V6]; xn----f411m.xn--rgb7c611j; ; ; # -.≠هج
+󠁀-。≠ﳗ; 󠁀-.≠هج; [B1, P1, V3, V6]; xn----f411m.xn--rgb7c611j; ; ; # -.≠هج
+󠁀-。≠هج; 󠁀-.≠هج; [B1, P1, V3, V6]; xn----f411m.xn--rgb7c611j; ; ; # -.≠هج
+󠁀-。≠هج; 󠁀-.≠هج; [B1, P1, V3, V6]; xn----f411m.xn--rgb7c611j; ; ; # -.≠هج
+xn----f411m.xn--rgb7c611j; 󠁀-.≠هج; [B1, V3, V6]; xn----f411m.xn--rgb7c611j; ; ; # -.≠هج
+񻬹𑈵。‍𞨶; 񻬹𑈵.‍𞨶; [B1, C2, P1, V6]; xn--8g1d12120a.xn--1ug6651p; ; xn--8g1d12120a.xn--5l6h; [P1, V6] # 𑈵.
+xn--8g1d12120a.xn--5l6h; 񻬹𑈵.𞨶; [V6]; xn--8g1d12120a.xn--5l6h; ; ; # 𑈵.
+xn--8g1d12120a.xn--1ug6651p; 񻬹𑈵.‍𞨶; [B1, C2, V6]; xn--8g1d12120a.xn--1ug6651p; ; ; # 𑈵.
+𑋧꧀2。㧉򒖄; 𑋧꧀2.㧉򒖄; [P1, V5, V6]; xn--2-5z4eu89y.xn--97l02706d; ; ; # 𑋧꧀2.㧉
+𑋧꧀2。㧉򒖄; 𑋧꧀2.㧉򒖄; [P1, V5, V6]; xn--2-5z4eu89y.xn--97l02706d; ; ; # 𑋧꧀2.㧉
+xn--2-5z4eu89y.xn--97l02706d; 𑋧꧀2.㧉򒖄; [V5, V6]; xn--2-5z4eu89y.xn--97l02706d; ; ; # 𑋧꧀2.㧉
+‌𽬄𐹴𞩥。≯6; ‌𽬄𐹴𞩥.≯6; [B1, C1, P1, V6]; xn--0ug7105gf5wfxepq.xn--6-ogo; ; xn--so0du768aim9m.xn--6-ogo; [B1, B5, B6, P1, V6] # 𐹴.≯6
+‌𽬄𐹴𞩥。≯6; ‌𽬄𐹴𞩥.≯6; [B1, C1, P1, V6]; xn--0ug7105gf5wfxepq.xn--6-ogo; ; xn--so0du768aim9m.xn--6-ogo; [B1, B5, B6, P1, V6] # 𐹴.≯6
+xn--so0du768aim9m.xn--6-ogo; 𽬄𐹴𞩥.≯6; [B1, B5, B6, V6]; xn--so0du768aim9m.xn--6-ogo; ; ; # 𐹴.≯6
+xn--0ug7105gf5wfxepq.xn--6-ogo; ‌𽬄𐹴𞩥.≯6; [B1, C1, V6]; xn--0ug7105gf5wfxepq.xn--6-ogo; ; ; # 𐹴.≯6
+𑁿.𐹦𻞵-‍; 𑁿.𐹦𻞵-‍; [B1, B3, B6, C2, P1, V5, V6]; xn--q30d.xn----ugn1088hfsxv; ; xn--q30d.xn----i26i1299n; [B1, B3, B6, P1, V3, V5, V6] # 𑁿.𐹦-
+𑁿.𐹦𻞵-‍; ; [B1, B3, B6, C2, P1, V5, V6]; xn--q30d.xn----ugn1088hfsxv; ; xn--q30d.xn----i26i1299n; [B1, B3, B6, P1, V3, V5, V6] # 𑁿.𐹦-
+xn--q30d.xn----i26i1299n; 𑁿.𐹦𻞵-; [B1, B3, B6, V3, V5, V6]; xn--q30d.xn----i26i1299n; ; ; # 𑁿.𐹦-
+xn--q30d.xn----ugn1088hfsxv; 𑁿.𐹦𻞵-‍; [B1, B3, B6, C2, V5, V6]; xn--q30d.xn----ugn1088hfsxv; ; ; # 𑁿.𐹦-
+⤸ς𺱀。ᅠ; ⤸ς𺱀.ᅠ; [P1, V6]; xn--3xa392qmp03d.xn--cl7c; ; xn--4xa192qmp03d.xn--cl7c; # ⤸ς.
+⤸ς𺱀。ᅠ; ⤸ς𺱀.ᅠ; [P1, V6]; xn--3xa392qmp03d.xn--psd; ; xn--4xa192qmp03d.xn--psd; # ⤸ς.
+⤸Σ𺱀。ᅠ; ⤸σ𺱀.ᅠ; [P1, V6]; xn--4xa192qmp03d.xn--psd; ; ; # ⤸σ.
+⤸σ𺱀。ᅠ; ⤸σ𺱀.ᅠ; [P1, V6]; xn--4xa192qmp03d.xn--psd; ; ; # ⤸σ.
+xn--4xa192qmp03d.xn--psd; ⤸σ𺱀.ᅠ; [V6]; xn--4xa192qmp03d.xn--psd; ; ; # ⤸σ.
+xn--3xa392qmp03d.xn--psd; ⤸ς𺱀.ᅠ; [V6]; xn--3xa392qmp03d.xn--psd; ; ; # ⤸ς.
+⤸Σ𺱀。ᅠ; ⤸σ𺱀.ᅠ; [P1, V6]; xn--4xa192qmp03d.xn--cl7c; ; ; # ⤸σ.
+⤸σ𺱀。ᅠ; ⤸σ𺱀.ᅠ; [P1, V6]; xn--4xa192qmp03d.xn--cl7c; ; ; # ⤸σ.
+xn--4xa192qmp03d.xn--cl7c; ⤸σ𺱀.ᅠ; [V6]; xn--4xa192qmp03d.xn--cl7c; ; ; # ⤸σ.
+xn--3xa392qmp03d.xn--cl7c; ⤸ς𺱀.ᅠ; [V6]; xn--3xa392qmp03d.xn--cl7c; ; ; # ⤸ς.
+ݥဵ𐫔ە.𐦬𑋪Ⴃ; ; [B2, B3, P1, V6]; xn--llb10as9tqp5y.xn--bnd9168j21f; ; ; # ݥဵ𐫔ە.𐦬𑋪Ⴃ
+ݥဵ𐫔ە.𐦬𑋪ⴃ; ; [B2, B3]; xn--llb10as9tqp5y.xn--ukj7371e21f; ; ; # ݥဵ𐫔ە.𐦬𑋪ⴃ
+xn--llb10as9tqp5y.xn--ukj7371e21f; ݥဵ𐫔ە.𐦬𑋪ⴃ; [B2, B3]; xn--llb10as9tqp5y.xn--ukj7371e21f; ; ; # ݥဵ𐫔ە.𐦬𑋪ⴃ
+xn--llb10as9tqp5y.xn--bnd9168j21f; ݥဵ𐫔ە.𐦬𑋪Ⴃ; [B2, B3, V6]; xn--llb10as9tqp5y.xn--bnd9168j21f; ; ; # ݥဵ𐫔ە.𐦬𑋪Ⴃ
+١᭄-킼.᮪ؖ٬≯; ; [B1, B5, B6, P1, V5, V6]; xn----9pc551nk39n.xn--4fb6o571degg; ; ; # ١᭄-킼.᮪ؖ٬≯
+١᭄-킼.᮪ؖ٬≯; ١᭄-킼.᮪ؖ٬≯; [B1, B5, B6, P1, V5, V6]; xn----9pc551nk39n.xn--4fb6o571degg; ; ; # ١᭄-킼.᮪ؖ٬≯
+xn----9pc551nk39n.xn--4fb6o571degg; ١᭄-킼.᮪ؖ٬≯; [B1, B5, B6, V5, V6]; xn----9pc551nk39n.xn--4fb6o571degg; ; ; # ١᭄-킼.᮪ؖ٬≯
+-。ۂ؄򅖡𑓂; -.ۂ؄򅖡𑓂; [B1, B2, B3, P1, V3, V6]; -.xn--mfb39a7208dzgs3d; ; ; # -.ۂ𑓂
+-。ۂ؄򅖡𑓂; -.ۂ؄򅖡𑓂; [B1, B2, B3, P1, V3, V6]; -.xn--mfb39a7208dzgs3d; ; ; # -.ۂ𑓂
+-.xn--mfb39a7208dzgs3d; -.ۂ؄򅖡𑓂; [B1, B2, B3, V3, V6]; -.xn--mfb39a7208dzgs3d; ; ; # -.ۂ𑓂
+‍󯑖󠁐.ֽ𙮰ꡝ𐋡; ‍󯑖󠁐.ֽ𙮰ꡝ𐋡; [C2, P1, V5, V6]; xn--1ug66101lt8me.xn--ldb8734fg0qcyzzg; ; xn--b726ey18m.xn--ldb8734fg0qcyzzg; [P1, V5, V6] # .ֽꡝ𐋡
+‍󯑖󠁐.ֽ𙮰ꡝ𐋡; ; [C2, P1, V5, V6]; xn--1ug66101lt8me.xn--ldb8734fg0qcyzzg; ; xn--b726ey18m.xn--ldb8734fg0qcyzzg; [P1, V5, V6] # .ֽꡝ𐋡
+xn--b726ey18m.xn--ldb8734fg0qcyzzg; 󯑖󠁐.ֽ𙮰ꡝ𐋡; [V5, V6]; xn--b726ey18m.xn--ldb8734fg0qcyzzg; ; ; # .ֽꡝ𐋡
+xn--1ug66101lt8me.xn--ldb8734fg0qcyzzg; ‍󯑖󠁐.ֽ𙮰ꡝ𐋡; [C2, V5, V6]; xn--1ug66101lt8me.xn--ldb8734fg0qcyzzg; ; ; # .ֽꡝ𐋡
+︒􃈵ς񀠇。𐮈; ︒􃈵ς񀠇.𐮈; [B1, P1, V6]; xn--3xa3729jwz5t7gl5f.xn--f29c; ; xn--4xa1729jwz5t7gl5f.xn--f29c; # ︒ς.𐮈
+。􃈵ς񀠇。𐮈; .􃈵ς񀠇.𐮈; [P1, V6, X4_2]; .xn--3xa88573c7n64d.xn--f29c; [P1, V6, A4_2]; .xn--4xa68573c7n64d.xn--f29c; # .ς.𐮈
+。􃈵Σ񀠇。𐮈; .􃈵σ񀠇.𐮈; [P1, V6, X4_2]; .xn--4xa68573c7n64d.xn--f29c; [P1, V6, A4_2]; ; # .σ.𐮈
+。􃈵σ񀠇。𐮈; .􃈵σ񀠇.𐮈; [P1, V6, X4_2]; .xn--4xa68573c7n64d.xn--f29c; [P1, V6, A4_2]; ; # .σ.𐮈
+.xn--4xa68573c7n64d.xn--f29c; .􃈵σ񀠇.𐮈; [V6, X4_2]; .xn--4xa68573c7n64d.xn--f29c; [V6, A4_2]; ; # .σ.𐮈
+.xn--3xa88573c7n64d.xn--f29c; .􃈵ς񀠇.𐮈; [V6, X4_2]; .xn--3xa88573c7n64d.xn--f29c; [V6, A4_2]; ; # .ς.𐮈
+︒􃈵Σ񀠇。𐮈; ︒􃈵σ񀠇.𐮈; [B1, P1, V6]; xn--4xa1729jwz5t7gl5f.xn--f29c; ; ; # ︒σ.𐮈
+︒􃈵σ񀠇。𐮈; ︒􃈵σ񀠇.𐮈; [B1, P1, V6]; xn--4xa1729jwz5t7gl5f.xn--f29c; ; ; # ︒σ.𐮈
+xn--4xa1729jwz5t7gl5f.xn--f29c; ︒􃈵σ񀠇.𐮈; [B1, V6]; xn--4xa1729jwz5t7gl5f.xn--f29c; ; ; # ︒σ.𐮈
+xn--3xa3729jwz5t7gl5f.xn--f29c; ︒􃈵ς񀠇.𐮈; [B1, V6]; xn--3xa3729jwz5t7gl5f.xn--f29c; ; ; # ︒ς.𐮈
+ߙ.ۮ󆾃≯󠅲; ߙ.ۮ󆾃≯; [B2, B3, P1, V6]; xn--0sb.xn--bmb691l0524t; ; ; # ߙ.ۮ≯
+ߙ.ۮ󆾃≯󠅲; ߙ.ۮ󆾃≯; [B2, B3, P1, V6]; xn--0sb.xn--bmb691l0524t; ; ; # ߙ.ۮ≯
+ߙ.ۮ󆾃≯󠅲; ߙ.ۮ󆾃≯; [B2, B3, P1, V6]; xn--0sb.xn--bmb691l0524t; ; ; # ߙ.ۮ≯
+ߙ.ۮ󆾃≯󠅲; ߙ.ۮ󆾃≯; [B2, B3, P1, V6]; xn--0sb.xn--bmb691l0524t; ; ; # ߙ.ۮ≯
+xn--0sb.xn--bmb691l0524t; ߙ.ۮ󆾃≯; [B2, B3, V6]; xn--0sb.xn--bmb691l0524t; ; ; # ߙ.ۮ≯
+ᩳ󚙸.𐭍; ; [B1, P1, V5, V6]; xn--2of22352n.xn--q09c; ; ; # ᩳ.𐭍
+xn--2of22352n.xn--q09c; ᩳ󚙸.𐭍; [B1, V5, V6]; xn--2of22352n.xn--q09c; ; ; # ᩳ.𐭍
+⒉󠊓≠。Ⴟ⬣Ⴈ; ⒉󠊓≠.Ⴟ⬣Ⴈ; [P1, V6]; xn--1ch07f91401d.xn--gnd9b297j; ; ; # ⒉≠.Ⴟ⬣Ⴈ
+⒉󠊓≠。Ⴟ⬣Ⴈ; ⒉󠊓≠.Ⴟ⬣Ⴈ; [P1, V6]; xn--1ch07f91401d.xn--gnd9b297j; ; ; # ⒉≠.Ⴟ⬣Ⴈ
+2.󠊓≠。Ⴟ⬣Ⴈ; 2.󠊓≠.Ⴟ⬣Ⴈ; [P1, V6]; 2.xn--1chz4101l.xn--gnd9b297j; ; ; # 2.≠.Ⴟ⬣Ⴈ
+2.󠊓≠。Ⴟ⬣Ⴈ; 2.󠊓≠.Ⴟ⬣Ⴈ; [P1, V6]; 2.xn--1chz4101l.xn--gnd9b297j; ; ; # 2.≠.Ⴟ⬣Ⴈ
+2.󠊓≠。ⴟ⬣ⴈ; 2.󠊓≠.ⴟ⬣ⴈ; [P1, V6]; 2.xn--1chz4101l.xn--45iz7d6b; ; ; # 2.≠.ⴟ⬣ⴈ
+2.󠊓≠。ⴟ⬣ⴈ; 2.󠊓≠.ⴟ⬣ⴈ; [P1, V6]; 2.xn--1chz4101l.xn--45iz7d6b; ; ; # 2.≠.ⴟ⬣ⴈ
+2.xn--1chz4101l.xn--45iz7d6b; 2.󠊓≠.ⴟ⬣ⴈ; [V6]; 2.xn--1chz4101l.xn--45iz7d6b; ; ; # 2.≠.ⴟ⬣ⴈ
+2.xn--1chz4101l.xn--gnd9b297j; 2.󠊓≠.Ⴟ⬣Ⴈ; [V6]; 2.xn--1chz4101l.xn--gnd9b297j; ; ; # 2.≠.Ⴟ⬣Ⴈ
+⒉󠊓≠。ⴟ⬣ⴈ; ⒉󠊓≠.ⴟ⬣ⴈ; [P1, V6]; xn--1ch07f91401d.xn--45iz7d6b; ; ; # ⒉≠.ⴟ⬣ⴈ
+⒉󠊓≠。ⴟ⬣ⴈ; ⒉󠊓≠.ⴟ⬣ⴈ; [P1, V6]; xn--1ch07f91401d.xn--45iz7d6b; ; ; # ⒉≠.ⴟ⬣ⴈ
+xn--1ch07f91401d.xn--45iz7d6b; ⒉󠊓≠.ⴟ⬣ⴈ; [V6]; xn--1ch07f91401d.xn--45iz7d6b; ; ; # ⒉≠.ⴟ⬣ⴈ
+xn--1ch07f91401d.xn--gnd9b297j; ⒉󠊓≠.Ⴟ⬣Ⴈ; [V6]; xn--1ch07f91401d.xn--gnd9b297j; ; ; # ⒉≠.Ⴟ⬣Ⴈ
+-󠉱ྸჅ。-𐹽ݴ𞣑; -󠉱ྸჅ.-𐹽ݴ𞣑; [B1, P1, V3, V6]; xn----xmg12fm2555h.xn----05c4213ryr0g; ; ; # -ྸჅ.-𐹽ݴ𞣑
+-󠉱ྸⴥ。-𐹽ݴ𞣑; -󠉱ྸⴥ.-𐹽ݴ𞣑; [B1, P1, V3, V6]; xn----xmg317tgv352a.xn----05c4213ryr0g; ; ; # -ྸⴥ.-𐹽ݴ𞣑
+xn----xmg317tgv352a.xn----05c4213ryr0g; -󠉱ྸⴥ.-𐹽ݴ𞣑; [B1, V3, V6]; xn----xmg317tgv352a.xn----05c4213ryr0g; ; ; # -ྸⴥ.-𐹽ݴ𞣑
+xn----xmg12fm2555h.xn----05c4213ryr0g; -󠉱ྸჅ.-𐹽ݴ𞣑; [B1, V3, V6]; xn----xmg12fm2555h.xn----05c4213ryr0g; ; ; # -ྸჅ.-𐹽ݴ𞣑
+ٙ。𑄴︒اߝ; ٙ.𑄴︒اߝ; [B1, B3, B6, P1, V5, V6]; xn--1hb.xn--mgb09fp820c08pa; ; ; # ٙ.𑄴︒اߝ
+ٙ。𑄴。اߝ; ٙ.𑄴.اߝ; [B1, B3, B6, V5]; xn--1hb.xn--w80d.xn--mgb09f; ; ; # ٙ.𑄴.اߝ
+xn--1hb.xn--w80d.xn--mgb09f; ٙ.𑄴.اߝ; [B1, B3, B6, V5]; xn--1hb.xn--w80d.xn--mgb09f; ; ; # ٙ.𑄴.اߝ
+xn--1hb.xn--mgb09fp820c08pa; ٙ.𑄴︒اߝ; [B1, B3, B6, V5, V6]; xn--1hb.xn--mgb09fp820c08pa; ; ; # ٙ.𑄴︒اߝ
+Ⴙظ.󠆓‍; Ⴙظ.‍; [B1, B5, B6, C2, P1, V6]; xn--3gb194c.xn--1ug; ; xn--3gb194c.; [B5, B6, P1, V6] # Ⴙظ.
+ⴙظ.󠆓‍; ⴙظ.‍; [B1, B5, B6, C2]; xn--3gb910r.xn--1ug; ; xn--3gb910r.; [B5, B6] # ⴙظ.
+xn--3gb910r.; ⴙظ.; [B5, B6]; xn--3gb910r.; ; ; # ⴙظ.
+xn--3gb910r.xn--1ug; ⴙظ.‍; [B1, B5, B6, C2]; xn--3gb910r.xn--1ug; ; ; # ⴙظ.
+xn--3gb194c.; Ⴙظ.; [B5, B6, V6]; xn--3gb194c.; ; ; # Ⴙظ.
+xn--3gb194c.xn--1ug; Ⴙظ.‍; [B1, B5, B6, C2, V6]; xn--3gb194c.xn--1ug; ; ; # Ⴙظ.
+󠆸。₆0𐺧ݖ; .60𐺧ݖ; [B1, P1, V6, X4_2]; .xn--60-cke9470y; [B1, P1, V6, A4_2]; ; # .60ݖ
+󠆸。60𐺧ݖ; .60𐺧ݖ; [B1, P1, V6, X4_2]; .xn--60-cke9470y; [B1, P1, V6, A4_2]; ; # .60ݖ
+.xn--60-cke9470y; .60𐺧ݖ; [B1, V6, X4_2]; .xn--60-cke9470y; [B1, V6, A4_2]; ; # .60ݖ
+6ࡏ。-𑈴; 6ࡏ.-𑈴; [B1, V3]; xn--6-jjd.xn----6n8i; ; ; # 6ࡏ.-𑈴
+6ࡏ。-𑈴; 6ࡏ.-𑈴; [B1, V3]; xn--6-jjd.xn----6n8i; ; ; # 6ࡏ.-𑈴
+xn--6-jjd.xn----6n8i; 6ࡏ.-𑈴; [B1, V3]; xn--6-jjd.xn----6n8i; ; ; # 6ࡏ.-𑈴
+‍񋌿𐹰。્ς𞰎ࣖ; ‍񋌿𐹰.્ς𞰎ࣖ; [B1, C2, P1, V5, V6]; xn--1ugx105gq26y.xn--3xa41xcwbfz15g; ; xn--oo0d1330n.xn--4xa21xcwbfz15g; [B1, B5, B6, P1, V5, V6] # 𐹰.્ςࣖ
+‍񋌿𐹰。્ς𞰎ࣖ; ‍񋌿𐹰.્ς𞰎ࣖ; [B1, C2, P1, V5, V6]; xn--1ugx105gq26y.xn--3xa41xcwbfz15g; ; xn--oo0d1330n.xn--4xa21xcwbfz15g; [B1, B5, B6, P1, V5, V6] # 𐹰.્ςࣖ
+‍񋌿𐹰。્Σ𞰎ࣖ; ‍񋌿𐹰.્σ𞰎ࣖ; [B1, C2, P1, V5, V6]; xn--1ugx105gq26y.xn--4xa21xcwbfz15g; ; xn--oo0d1330n.xn--4xa21xcwbfz15g; [B1, B5, B6, P1, V5, V6] # 𐹰.્σࣖ
+‍񋌿𐹰。્σ𞰎ࣖ; ‍񋌿𐹰.્σ𞰎ࣖ; [B1, C2, P1, V5, V6]; xn--1ugx105gq26y.xn--4xa21xcwbfz15g; ; xn--oo0d1330n.xn--4xa21xcwbfz15g; [B1, B5, B6, P1, V5, V6] # 𐹰.્σࣖ
+xn--oo0d1330n.xn--4xa21xcwbfz15g; 񋌿𐹰.્σ𞰎ࣖ; [B1, B5, B6, V5, V6]; xn--oo0d1330n.xn--4xa21xcwbfz15g; ; ; # 𐹰.્σࣖ
+xn--1ugx105gq26y.xn--4xa21xcwbfz15g; ‍񋌿𐹰.્σ𞰎ࣖ; [B1, C2, V5, V6]; xn--1ugx105gq26y.xn--4xa21xcwbfz15g; ; ; # 𐹰.્σࣖ
+xn--1ugx105gq26y.xn--3xa41xcwbfz15g; ‍񋌿𐹰.્ς𞰎ࣖ; [B1, C2, V5, V6]; xn--1ugx105gq26y.xn--3xa41xcwbfz15g; ; ; # 𐹰.્ςࣖ
+‍񋌿𐹰。્Σ𞰎ࣖ; ‍񋌿𐹰.્σ𞰎ࣖ; [B1, C2, P1, V5, V6]; xn--1ugx105gq26y.xn--4xa21xcwbfz15g; ; xn--oo0d1330n.xn--4xa21xcwbfz15g; [B1, B5, B6, P1, V5, V6] # 𐹰.્σࣖ
+‍񋌿𐹰。્σ𞰎ࣖ; ‍񋌿𐹰.્σ𞰎ࣖ; [B1, C2, P1, V5, V6]; xn--1ugx105gq26y.xn--4xa21xcwbfz15g; ; xn--oo0d1330n.xn--4xa21xcwbfz15g; [B1, B5, B6, P1, V5, V6] # 𐹰.્σࣖ
+⒈񟄜Ⴓ⒪.්򘘶ࢋ𐹢; ⒈񟄜Ⴓ⒪.්򘘶ࢋ𐹢; [B1, P1, V5, V6]; xn--rnd762h7cx3027d.xn--3xb99xpx1yoes3e; ; ; # ⒈Ⴓ⒪.්𐹢
+1.񟄜Ⴓ(o).්򘘶ࢋ𐹢; ; [B1, B6, P1, V5, V6]; 1.xn--(o)-7sn88849j.xn--3xb99xpx1yoes3e; ; ; # 1.Ⴓ(o).්𐹢
+1.񟄜ⴓ(o).්򘘶ࢋ𐹢; ; [B1, B6, P1, V5, V6]; 1.xn--(o)-ej1bu5389e.xn--3xb99xpx1yoes3e; ; ; # 1.ⴓ(o).්𐹢
+1.񟄜Ⴓ(O).්򘘶ࢋ𐹢; 1.񟄜Ⴓ(o).්򘘶ࢋ𐹢; [B1, B6, P1, V5, V6]; 1.xn--(o)-7sn88849j.xn--3xb99xpx1yoes3e; ; ; # 1.Ⴓ(o).්𐹢
+1.xn--(o)-7sn88849j.xn--3xb99xpx1yoes3e; 1.񟄜Ⴓ(o).්򘘶ࢋ𐹢; [B1, B6, P1, V5, V6]; 1.xn--(o)-7sn88849j.xn--3xb99xpx1yoes3e; ; ; # 1.Ⴓ(o).්𐹢
+1.xn--(o)-ej1bu5389e.xn--3xb99xpx1yoes3e; 1.񟄜ⴓ(o).්򘘶ࢋ𐹢; [B1, B6, P1, V5, V6]; 1.xn--(o)-ej1bu5389e.xn--3xb99xpx1yoes3e; ; ; # 1.ⴓ(o).්𐹢
+⒈񟄜ⴓ⒪.්򘘶ࢋ𐹢; ⒈񟄜ⴓ⒪.්򘘶ࢋ𐹢; [B1, P1, V5, V6]; xn--tsh0ds63atl31n.xn--3xb99xpx1yoes3e; ; ; # ⒈ⴓ⒪.්𐹢
+xn--tsh0ds63atl31n.xn--3xb99xpx1yoes3e; ⒈񟄜ⴓ⒪.්򘘶ࢋ𐹢; [B1, V5, V6]; xn--tsh0ds63atl31n.xn--3xb99xpx1yoes3e; ; ; # ⒈ⴓ⒪.්𐹢
+xn--rnd762h7cx3027d.xn--3xb99xpx1yoes3e; ⒈񟄜Ⴓ⒪.්򘘶ࢋ𐹢; [B1, V5, V6]; xn--rnd762h7cx3027d.xn--3xb99xpx1yoes3e; ; ; # ⒈Ⴓ⒪.්𐹢
+𞤷.𐮐𞢁𐹠ؤ; ; ; xn--ve6h.xn--jgb1694kz0b2176a; ; ; # 𞤷.𐮐𞢁𐹠ؤ
+𞤷.𐮐𞢁𐹠ؤ; 𞤷.𐮐𞢁𐹠ؤ; ; xn--ve6h.xn--jgb1694kz0b2176a; ; ; # 𞤷.𐮐𞢁𐹠ؤ
+𞤕.𐮐𞢁𐹠ؤ; 𞤷.𐮐𞢁𐹠ؤ; ; xn--ve6h.xn--jgb1694kz0b2176a; ; ; # 𞤷.𐮐𞢁𐹠ؤ
+𞤕.𐮐𞢁𐹠ؤ; 𞤷.𐮐𞢁𐹠ؤ; ; xn--ve6h.xn--jgb1694kz0b2176a; ; ; # 𞤷.𐮐𞢁𐹠ؤ
+xn--ve6h.xn--jgb1694kz0b2176a; 𞤷.𐮐𞢁𐹠ؤ; ; xn--ve6h.xn--jgb1694kz0b2176a; ; ; # 𞤷.𐮐𞢁𐹠ؤ
+𐲈-。𑄳񢌻; 𐳈-.𑄳񢌻; [B1, B3, P1, V3, V5, V6]; xn----ue6i.xn--v80d6662t; ; ; # 𐳈-.𑄳
+𐲈-。𑄳񢌻; 𐳈-.𑄳񢌻; [B1, B3, P1, V3, V5, V6]; xn----ue6i.xn--v80d6662t; ; ; # 𐳈-.𑄳
+𐳈-。𑄳񢌻; 𐳈-.𑄳񢌻; [B1, B3, P1, V3, V5, V6]; xn----ue6i.xn--v80d6662t; ; ; # 𐳈-.𑄳
+xn----ue6i.xn--v80d6662t; 𐳈-.𑄳񢌻; [B1, B3, V3, V5, V6]; xn----ue6i.xn--v80d6662t; ; ; # 𐳈-.𑄳
+𐳈-。𑄳񢌻; 𐳈-.𑄳񢌻; [B1, B3, P1, V3, V5, V6]; xn----ue6i.xn--v80d6662t; ; ; # 𐳈-.𑄳
+-󠉖ꡧ.󠊂񇆃🄉; -󠉖ꡧ.󠊂񇆃🄉; [P1, V3, V6]; xn----hg4ei0361g.xn--207ht163h7m94c; ; ; # -ꡧ.🄉
+-󠉖ꡧ.󠊂񇆃8,; ; [P1, V3, V6]; xn----hg4ei0361g.xn--8,-k362evu488a; ; ; # -ꡧ.8,
+xn----hg4ei0361g.xn--8,-k362evu488a; -󠉖ꡧ.󠊂񇆃8,; [P1, V3, V6]; xn----hg4ei0361g.xn--8,-k362evu488a; ; ; # -ꡧ.8,
+xn----hg4ei0361g.xn--207ht163h7m94c; -󠉖ꡧ.󠊂񇆃🄉; [V3, V6]; xn----hg4ei0361g.xn--207ht163h7m94c; ; ; # -ꡧ.🄉
+󠾛󠈴臯𧔤.ݨ𝟝; 󠾛󠈴臯𧔤.ݨ5; [B1, P1, V6]; xn--zb1at733hm579ddhla.xn--5-b5c; ; ; # 臯𧔤.ݨ5
+󠾛󠈴臯𧔤.ݨ5; ; [B1, P1, V6]; xn--zb1at733hm579ddhla.xn--5-b5c; ; ; # 臯𧔤.ݨ5
+xn--zb1at733hm579ddhla.xn--5-b5c; 󠾛󠈴臯𧔤.ݨ5; [B1, V6]; xn--zb1at733hm579ddhla.xn--5-b5c; ; ; # 臯𧔤.ݨ5
+≮𐹣.𝨿; ≮𐹣.𝨿; [B1, B3, B6, P1, V5, V6]; xn--gdh1504g.xn--e92h; ; ; # ≮𐹣.𝨿
+≮𐹣.𝨿; ≮𐹣.𝨿; [B1, B3, B6, P1, V5, V6]; xn--gdh1504g.xn--e92h; ; ; # ≮𐹣.𝨿
+≮𐹣.𝨿; ; [B1, B3, B6, P1, V5, V6]; xn--gdh1504g.xn--e92h; ; ; # ≮𐹣.𝨿
+≮𐹣.𝨿; ≮𐹣.𝨿; [B1, B3, B6, P1, V5, V6]; xn--gdh1504g.xn--e92h; ; ; # ≮𐹣.𝨿
+xn--gdh1504g.xn--e92h; ≮𐹣.𝨿; [B1, B3, B6, V5, V6]; xn--gdh1504g.xn--e92h; ; ; # ≮𐹣.𝨿
+𐹯ᯛ੍。脥; 𐹯ᯛ੍.脥; [B1]; xn--ybc101g3m1p.xn--740a; ; ; # 𐹯ᯛ੍.脥
+𐹯ᯛ੍。脥; 𐹯ᯛ੍.脥; [B1]; xn--ybc101g3m1p.xn--740a; ; ; # 𐹯ᯛ੍.脥
+xn--ybc101g3m1p.xn--740a; 𐹯ᯛ੍.脥; [B1]; xn--ybc101g3m1p.xn--740a; ; ; # 𐹯ᯛ੍.脥
+᭄ᅟ𞷿򃀍.-; ; [B1, B5, P1, V3, V5, V6]; xn--osd971cpx70btgt8b.-; ; ; # ᭄.-
+xn--osd971cpx70btgt8b.-; ᭄ᅟ𞷿򃀍.-; [B1, B5, V3, V5, V6]; xn--osd971cpx70btgt8b.-; ; ; # ᭄.-
+‌。͔; ‌.͔; [C1, V5]; xn--0ug.xn--yua; ; .xn--yua; [V5, A4_2] # .͔
+‌。͔; ‌.͔; [C1, V5]; xn--0ug.xn--yua; ; .xn--yua; [V5, A4_2] # .͔
+.xn--yua; .͔; [V5, X4_2]; .xn--yua; [V5, A4_2]; ; # .͔
+xn--0ug.xn--yua; ‌.͔; [C1, V5]; xn--0ug.xn--yua; ; ; # .͔
+𞤥󠅮.ᡄႮ; 𞤥.ᡄႮ; [P1, V6]; xn--de6h.xn--mnd799a; ; ; # 𞤥.ᡄႮ
+𞤥󠅮.ᡄႮ; 𞤥.ᡄႮ; [P1, V6]; xn--de6h.xn--mnd799a; ; ; # 𞤥.ᡄႮ
+𞤥󠅮.ᡄⴎ; 𞤥.ᡄⴎ; ; xn--de6h.xn--37e857h; ; ; # 𞤥.ᡄⴎ
+𞤃󠅮.ᡄႮ; 𞤥.ᡄႮ; [P1, V6]; xn--de6h.xn--mnd799a; ; ; # 𞤥.ᡄႮ
+𞤃󠅮.ᡄⴎ; 𞤥.ᡄⴎ; ; xn--de6h.xn--37e857h; ; ; # 𞤥.ᡄⴎ
+xn--de6h.xn--37e857h; 𞤥.ᡄⴎ; ; xn--de6h.xn--37e857h; ; ; # 𞤥.ᡄⴎ
+𞤥.ᡄⴎ; ; ; xn--de6h.xn--37e857h; ; ; # 𞤥.ᡄⴎ
+𞤃.ᡄႮ; 𞤥.ᡄႮ; [P1, V6]; xn--de6h.xn--mnd799a; ; ; # 𞤥.ᡄႮ
+𞤃.ᡄⴎ; 𞤥.ᡄⴎ; ; xn--de6h.xn--37e857h; ; ; # 𞤥.ᡄⴎ
+xn--de6h.xn--mnd799a; 𞤥.ᡄႮ; [V6]; xn--de6h.xn--mnd799a; ; ; # 𞤥.ᡄႮ
+𞤥󠅮.ᡄⴎ; 𞤥.ᡄⴎ; ; xn--de6h.xn--37e857h; ; ; # 𞤥.ᡄⴎ
+𞤃󠅮.ᡄႮ; 𞤥.ᡄႮ; [P1, V6]; xn--de6h.xn--mnd799a; ; ; # 𞤥.ᡄႮ
+𞤃󠅮.ᡄⴎ; 𞤥.ᡄⴎ; ; xn--de6h.xn--37e857h; ; ; # 𞤥.ᡄⴎ
+𞤥.ᡄႮ; ; [P1, V6]; xn--de6h.xn--mnd799a; ; ; # 𞤥.ᡄႮ
+𞤧𝨨Ξ.𪺏㛨❸; 𞤧𝨨ξ.𪺏㛨❸; [B2, B3, B6]; xn--zxa5691vboja.xn--bfi293ci119b; ; ; # 𞤧𝨨ξ.𪺏㛨❸
+𞤧𝨨Ξ.𪺏㛨❸; 𞤧𝨨ξ.𪺏㛨❸; [B2, B3, B6]; xn--zxa5691vboja.xn--bfi293ci119b; ; ; # 𞤧𝨨ξ.𪺏㛨❸
+𞤧𝨨ξ.𪺏㛨❸; ; [B2, B3, B6]; xn--zxa5691vboja.xn--bfi293ci119b; ; ; # 𞤧𝨨ξ.𪺏㛨❸
+𞤅𝨨Ξ.𪺏㛨❸; 𞤧𝨨ξ.𪺏㛨❸; [B2, B3, B6]; xn--zxa5691vboja.xn--bfi293ci119b; ; ; # 𞤧𝨨ξ.𪺏㛨❸
+𞤅𝨨ξ.𪺏㛨❸; 𞤧𝨨ξ.𪺏㛨❸; [B2, B3, B6]; xn--zxa5691vboja.xn--bfi293ci119b; ; ; # 𞤧𝨨ξ.𪺏㛨❸
+xn--zxa5691vboja.xn--bfi293ci119b; 𞤧𝨨ξ.𪺏㛨❸; [B2, B3, B6]; xn--zxa5691vboja.xn--bfi293ci119b; ; ; # 𞤧𝨨ξ.𪺏㛨❸
+𞤧𝨨ξ.𪺏㛨❸; 𞤧𝨨ξ.𪺏㛨❸; [B2, B3, B6]; xn--zxa5691vboja.xn--bfi293ci119b; ; ; # 𞤧𝨨ξ.𪺏㛨❸
+𞤅𝨨Ξ.𪺏㛨❸; 𞤧𝨨ξ.𪺏㛨❸; [B2, B3, B6]; xn--zxa5691vboja.xn--bfi293ci119b; ; ; # 𞤧𝨨ξ.𪺏㛨❸
+𞤅𝨨ξ.𪺏㛨❸; 𞤧𝨨ξ.𪺏㛨❸; [B2, B3, B6]; xn--zxa5691vboja.xn--bfi293ci119b; ; ; # 𞤧𝨨ξ.𪺏㛨❸
+᠆몆‌-。Ⴛ𐦅︒; ᠆몆‌-.Ⴛ𐦅︒; [B1, B5, B6, C1, P1, V3, V6]; xn----e3j425bsk1o.xn--znd2362jhgh; ; xn----e3j6620g.xn--znd2362jhgh; [B1, B5, B6, P1, V3, V6] # ᠆몆-.Ⴛ𐦅︒
+᠆몆‌-。Ⴛ𐦅︒; ᠆몆‌-.Ⴛ𐦅︒; [B1, B5, B6, C1, P1, V3, V6]; xn----e3j425bsk1o.xn--znd2362jhgh; ; xn----e3j6620g.xn--znd2362jhgh; [B1, B5, B6, P1, V3, V6] # ᠆몆-.Ⴛ𐦅︒
+᠆몆‌-。Ⴛ𐦅。; ᠆몆‌-.Ⴛ𐦅.; [B1, B5, B6, C1, P1, V3, V6]; xn----e3j425bsk1o.xn--znd4948j.; ; xn----e3j6620g.xn--znd4948j.; [B1, B5, B6, P1, V3, V6] # ᠆몆-.Ⴛ𐦅.
+᠆몆‌-。Ⴛ𐦅。; ᠆몆‌-.Ⴛ𐦅.; [B1, B5, B6, C1, P1, V3, V6]; xn----e3j425bsk1o.xn--znd4948j.; ; xn----e3j6620g.xn--znd4948j.; [B1, B5, B6, P1, V3, V6] # ᠆몆-.Ⴛ𐦅.
+᠆몆‌-。ⴛ𐦅。; ᠆몆‌-.ⴛ𐦅.; [B1, B5, B6, C1, P1, V3, V6]; xn----e3j425bsk1o.xn--jlju661e.; ; xn----e3j6620g.xn--jlju661e.; [B1, B5, B6, P1, V3, V6] # ᠆몆-.ⴛ𐦅.
+᠆몆‌-。ⴛ𐦅。; ᠆몆‌-.ⴛ𐦅.; [B1, B5, B6, C1, P1, V3, V6]; xn----e3j425bsk1o.xn--jlju661e.; ; xn----e3j6620g.xn--jlju661e.; [B1, B5, B6, P1, V3, V6] # ᠆몆-.ⴛ𐦅.
+xn----e3j6620g.xn--jlju661e.; ᠆몆-.ⴛ𐦅.; [B1, B5, B6, V3, V6]; xn----e3j6620g.xn--jlju661e.; ; ; # ᠆몆-.ⴛ𐦅.
+xn----e3j425bsk1o.xn--jlju661e.; ᠆몆‌-.ⴛ𐦅.; [B1, B5, B6, C1, V3, V6]; xn----e3j425bsk1o.xn--jlju661e.; ; ; # ᠆몆-.ⴛ𐦅.
+xn----e3j6620g.xn--znd4948j.; ᠆몆-.Ⴛ𐦅.; [B1, B5, B6, V3, V6]; xn----e3j6620g.xn--znd4948j.; ; ; # ᠆몆-.Ⴛ𐦅.
+xn----e3j425bsk1o.xn--znd4948j.; ᠆몆‌-.Ⴛ𐦅.; [B1, B5, B6, C1, V3, V6]; xn----e3j425bsk1o.xn--znd4948j.; ; ; # ᠆몆-.Ⴛ𐦅.
+᠆몆‌-。ⴛ𐦅︒; ᠆몆‌-.ⴛ𐦅︒; [B1, B5, B6, C1, P1, V3, V6]; xn----e3j425bsk1o.xn--jlj4997dhgh; ; xn----e3j6620g.xn--jlj4997dhgh; [B1, B5, B6, P1, V3, V6] # ᠆몆-.ⴛ𐦅︒
+᠆몆‌-。ⴛ𐦅︒; ᠆몆‌-.ⴛ𐦅︒; [B1, B5, B6, C1, P1, V3, V6]; xn----e3j425bsk1o.xn--jlj4997dhgh; ; xn----e3j6620g.xn--jlj4997dhgh; [B1, B5, B6, P1, V3, V6] # ᠆몆-.ⴛ𐦅︒
+xn----e3j6620g.xn--jlj4997dhgh; ᠆몆-.ⴛ𐦅︒; [B1, B5, B6, V3, V6]; xn----e3j6620g.xn--jlj4997dhgh; ; ; # ᠆몆-.ⴛ𐦅︒
+xn----e3j425bsk1o.xn--jlj4997dhgh; ᠆몆‌-.ⴛ𐦅︒; [B1, B5, B6, C1, V3, V6]; xn----e3j425bsk1o.xn--jlj4997dhgh; ; ; # ᠆몆-.ⴛ𐦅︒
+xn----e3j6620g.xn--znd2362jhgh; ᠆몆-.Ⴛ𐦅︒; [B1, B5, B6, V3, V6]; xn----e3j6620g.xn--znd2362jhgh; ; ; # ᠆몆-.Ⴛ𐦅︒
+xn----e3j425bsk1o.xn--znd2362jhgh; ᠆몆‌-.Ⴛ𐦅︒; [B1, B5, B6, C1, V3, V6]; xn----e3j425bsk1o.xn--znd2362jhgh; ; ; # ᠆몆-.Ⴛ𐦅︒
+󠾳.︒⥱‌𐹬; ; [B1, C1, P1, V6]; xn--uf66e.xn--0ugz28axl3pqxna; ; xn--uf66e.xn--qtiz073e3ik; [B1, P1, V6] # .︒⥱𐹬
+󠾳.。⥱‌𐹬; 󠾳..⥱‌𐹬; [B1, C1, P1, V6, X4_2]; xn--uf66e..xn--0ugz28as66q; [B1, C1, P1, V6, A4_2]; xn--uf66e..xn--qti2829e; [B1, P1, V6, A4_2] # ..⥱𐹬
+xn--uf66e..xn--qti2829e; 󠾳..⥱𐹬; [B1, V6, X4_2]; xn--uf66e..xn--qti2829e; [B1, V6, A4_2]; ; # ..⥱𐹬
+xn--uf66e..xn--0ugz28as66q; 󠾳..⥱‌𐹬; [B1, C1, V6, X4_2]; xn--uf66e..xn--0ugz28as66q; [B1, C1, V6, A4_2]; ; # ..⥱𐹬
+xn--uf66e.xn--qtiz073e3ik; 󠾳.︒⥱𐹬; [B1, V6]; xn--uf66e.xn--qtiz073e3ik; ; ; # .︒⥱𐹬
+xn--uf66e.xn--0ugz28axl3pqxna; 󠾳.︒⥱‌𐹬; [B1, C1, V6]; xn--uf66e.xn--0ugz28axl3pqxna; ; ; # .︒⥱𐹬
+𐯖.𐹠Ⴑ񚇜𐫊; ; [B1, P1, V6]; xn--n49c.xn--pnd4619jwicl862o; ; ; # .𐹠Ⴑ𐫊
+𐯖.𐹠ⴑ񚇜𐫊; ; [B1, P1, V6]; xn--n49c.xn--8kj8702ewicl862o; ; ; # .𐹠ⴑ𐫊
+xn--n49c.xn--8kj8702ewicl862o; 𐯖.𐹠ⴑ񚇜𐫊; [B1, V6]; xn--n49c.xn--8kj8702ewicl862o; ; ; # .𐹠ⴑ𐫊
+xn--n49c.xn--pnd4619jwicl862o; 𐯖.𐹠Ⴑ񚇜𐫊; [B1, V6]; xn--n49c.xn--pnd4619jwicl862o; ; ; # .𐹠Ⴑ𐫊
+ྤ񱤯.𝟭Ⴛ; ྤ񱤯.1Ⴛ; [P1, V5, V6]; xn--0fd40533g.xn--1-q1g; ; ; # ྤ.1Ⴛ
+ྤ񱤯.1Ⴛ; ; [P1, V5, V6]; xn--0fd40533g.xn--1-q1g; ; ; # ྤ.1Ⴛ
+ྤ񱤯.1ⴛ; ; [P1, V5, V6]; xn--0fd40533g.xn--1-tws; ; ; # ྤ.1ⴛ
+xn--0fd40533g.xn--1-tws; ྤ񱤯.1ⴛ; [V5, V6]; xn--0fd40533g.xn--1-tws; ; ; # ྤ.1ⴛ
+xn--0fd40533g.xn--1-q1g; ྤ񱤯.1Ⴛ; [V5, V6]; xn--0fd40533g.xn--1-q1g; ; ; # ྤ.1Ⴛ
+ྤ񱤯.𝟭ⴛ; ྤ񱤯.1ⴛ; [P1, V5, V6]; xn--0fd40533g.xn--1-tws; ; ; # ྤ.1ⴛ
+-ࠦ齀。릿𐸋; -ࠦ齀.릿𐸋; [B1, B5, B6, P1, V3, V6]; xn----6gd0617i.xn--7y2bm55m; ; ; # -ࠦ齀.릿
+-ࠦ齀。릿𐸋; -ࠦ齀.릿𐸋; [B1, B5, B6, P1, V3, V6]; xn----6gd0617i.xn--7y2bm55m; ; ; # -ࠦ齀.릿
+xn----6gd0617i.xn--7y2bm55m; -ࠦ齀.릿𐸋; [B1, B5, B6, V3, V6]; xn----6gd0617i.xn--7y2bm55m; ; ; # -ࠦ齀.릿
+󠔊ܜ鹝꾗。񾵐‍‍⏃; 󠔊ܜ鹝꾗.񾵐‍‍⏃; [B1, B6, C2, P1, V6]; xn--mnb6558e91kyq533a.xn--1uga46zs309y; ; xn--mnb6558e91kyq533a.xn--6mh27269e; [B1, B6, P1, V6] # ܜ鹝꾗.⏃
+󠔊ܜ鹝꾗。񾵐‍‍⏃; 󠔊ܜ鹝꾗.񾵐‍‍⏃; [B1, B6, C2, P1, V6]; xn--mnb6558e91kyq533a.xn--1uga46zs309y; ; xn--mnb6558e91kyq533a.xn--6mh27269e; [B1, B6, P1, V6] # ܜ鹝꾗.⏃
+xn--mnb6558e91kyq533a.xn--6mh27269e; 󠔊ܜ鹝꾗.񾵐⏃; [B1, B6, V6]; xn--mnb6558e91kyq533a.xn--6mh27269e; ; ; # ܜ鹝꾗.⏃
+xn--mnb6558e91kyq533a.xn--1uga46zs309y; 󠔊ܜ鹝꾗.񾵐‍‍⏃; [B1, B6, C2, V6]; xn--mnb6558e91kyq533a.xn--1uga46zs309y; ; ; # ܜ鹝꾗.⏃
+≮.-܈--; ≮.-܈--; [B1, P1, V2, V3, V6]; xn--gdh.xn------eqf; ; ; # ≮.-܈--
+≮.-܈--; ≮.-܈--; [B1, P1, V2, V3, V6]; xn--gdh.xn------eqf; ; ; # ≮.-܈--
+≮.-܈--; ; [B1, P1, V2, V3, V6]; xn--gdh.xn------eqf; ; ; # ≮.-܈--
+≮.-܈--; ≮.-܈--; [B1, P1, V2, V3, V6]; xn--gdh.xn------eqf; ; ; # ≮.-܈--
+xn--gdh.xn------eqf; ≮.-܈--; [B1, V2, V3, V6]; xn--gdh.xn------eqf; ; ; # ≮.-܈--
+𐹸󠋳。‍ς𝟩; 𐹸󠋳.‍ς7; [B1, C2, P1, V6]; xn--wo0di5177c.xn--7-xmb248s; ; xn--wo0di5177c.xn--7-zmb; [B1, P1, V6] # 𐹸.ς7
+𐹸󠋳。‍ς7; 𐹸󠋳.‍ς7; [B1, C2, P1, V6]; xn--wo0di5177c.xn--7-xmb248s; ; xn--wo0di5177c.xn--7-zmb; [B1, P1, V6] # 𐹸.ς7
+𐹸󠋳。‍Σ7; 𐹸󠋳.‍σ7; [B1, C2, P1, V6]; xn--wo0di5177c.xn--7-zmb938s; ; xn--wo0di5177c.xn--7-zmb; [B1, P1, V6] # 𐹸.σ7
+𐹸󠋳。‍σ7; 𐹸󠋳.‍σ7; [B1, C2, P1, V6]; xn--wo0di5177c.xn--7-zmb938s; ; xn--wo0di5177c.xn--7-zmb; [B1, P1, V6] # 𐹸.σ7
+xn--wo0di5177c.xn--7-zmb; 𐹸󠋳.σ7; [B1, V6]; xn--wo0di5177c.xn--7-zmb; ; ; # 𐹸.σ7
+xn--wo0di5177c.xn--7-zmb938s; 𐹸󠋳.‍σ7; [B1, C2, V6]; xn--wo0di5177c.xn--7-zmb938s; ; ; # 𐹸.σ7
+xn--wo0di5177c.xn--7-xmb248s; 𐹸󠋳.‍ς7; [B1, C2, V6]; xn--wo0di5177c.xn--7-xmb248s; ; ; # 𐹸.ς7
+𐹸󠋳。‍Σ𝟩; 𐹸󠋳.‍σ7; [B1, C2, P1, V6]; xn--wo0di5177c.xn--7-zmb938s; ; xn--wo0di5177c.xn--7-zmb; [B1, P1, V6] # 𐹸.σ7
+𐹸󠋳。‍σ𝟩; 𐹸󠋳.‍σ7; [B1, C2, P1, V6]; xn--wo0di5177c.xn--7-zmb938s; ; xn--wo0di5177c.xn--7-zmb; [B1, P1, V6] # 𐹸.σ7
+ς򅜌8.𞭤; ς򅜌8.𞭤; [P1, V6]; xn--8-xmb44974n.xn--su6h; ; xn--8-zmb14974n.xn--su6h; # ς8.
+ς򅜌8.𞭤; ; [P1, V6]; xn--8-xmb44974n.xn--su6h; ; xn--8-zmb14974n.xn--su6h; # ς8.
+Σ򅜌8.𞭤; σ򅜌8.𞭤; [P1, V6]; xn--8-zmb14974n.xn--su6h; ; ; # σ8.
+σ򅜌8.𞭤; ; [P1, V6]; xn--8-zmb14974n.xn--su6h; ; ; # σ8.
+xn--8-zmb14974n.xn--su6h; σ򅜌8.𞭤; [V6]; xn--8-zmb14974n.xn--su6h; ; ; # σ8.
+xn--8-xmb44974n.xn--su6h; ς򅜌8.𞭤; [V6]; xn--8-xmb44974n.xn--su6h; ; ; # ς8.
+Σ򅜌8.𞭤; σ򅜌8.𞭤; [P1, V6]; xn--8-zmb14974n.xn--su6h; ; ; # σ8.
+σ򅜌8.𞭤; σ򅜌8.𞭤; [P1, V6]; xn--8-zmb14974n.xn--su6h; ; ; # σ8.
+‌ᡑ🄀ڄ.-𐫄𑲤; ‌ᡑ🄀ڄ.-𐫄𑲤; [B1, C1, P1, V3, V6]; xn--9ib722gvtfi563c.xn----ek5i065b; ; xn--9ib722gbw95a.xn----ek5i065b; [B1, B5, B6, P1, V3, V6] # ᡑ🄀ڄ.-𐫄𑲤
+‌ᡑ0.ڄ.-𐫄𑲤; ; [B1, C1, V3]; xn--0-o7j263b.xn--9ib.xn----ek5i065b; ; xn--0-o7j.xn--9ib.xn----ek5i065b; [B1, V3] # ᡑ0.ڄ.-𐫄𑲤
+xn--0-o7j.xn--9ib.xn----ek5i065b; ᡑ0.ڄ.-𐫄𑲤; [B1, V3]; xn--0-o7j.xn--9ib.xn----ek5i065b; ; ; # ᡑ0.ڄ.-𐫄𑲤
+xn--0-o7j263b.xn--9ib.xn----ek5i065b; ‌ᡑ0.ڄ.-𐫄𑲤; [B1, C1, V3]; xn--0-o7j263b.xn--9ib.xn----ek5i065b; ; ; # ᡑ0.ڄ.-𐫄𑲤
+xn--9ib722gbw95a.xn----ek5i065b; ᡑ🄀ڄ.-𐫄𑲤; [B1, B5, B6, V3, V6]; xn--9ib722gbw95a.xn----ek5i065b; ; ; # ᡑ🄀ڄ.-𐫄𑲤
+xn--9ib722gvtfi563c.xn----ek5i065b; ‌ᡑ🄀ڄ.-𐫄𑲤; [B1, C1, V3, V6]; xn--9ib722gvtfi563c.xn----ek5i065b; ; ; # ᡑ🄀ڄ.-𐫄𑲤
+𖠍。𐪿넯򞵲; 𖠍.𐪿넯򞵲; [B2, B3, P1, V6]; xn--4e9e.xn--l60bj21opd57g; ; ; # 𖠍.넯
+𖠍。𐪿넯򞵲; 𖠍.𐪿넯򞵲; [B2, B3, P1, V6]; xn--4e9e.xn--l60bj21opd57g; ; ; # 𖠍.넯
+xn--4e9e.xn--l60bj21opd57g; 𖠍.𐪿넯򞵲; [B2, B3, V6]; xn--4e9e.xn--l60bj21opd57g; ; ; # 𖠍.넯
+᠇Ⴘ。؃Ⴈ𝆊; ᠇Ⴘ.؃Ⴈ𝆊; [B1, P1, V6]; xn--wnd558a.xn--lfb465c1v87a; ; ; # ᠇Ⴘ.Ⴈ𝆊
+᠇ⴘ。؃ⴈ𝆊; ᠇ⴘ.؃ⴈ𝆊; [B1, P1, V6]; xn--d6e009h.xn--lfb290rfu3z; ; ; # ᠇ⴘ.ⴈ𝆊
+xn--d6e009h.xn--lfb290rfu3z; ᠇ⴘ.؃ⴈ𝆊; [B1, V6]; xn--d6e009h.xn--lfb290rfu3z; ; ; # ᠇ⴘ.ⴈ𝆊
+xn--wnd558a.xn--lfb465c1v87a; ᠇Ⴘ.؃Ⴈ𝆊; [B1, V6]; xn--wnd558a.xn--lfb465c1v87a; ; ; # ᠇Ⴘ.Ⴈ𝆊
+⒚󠋑𞤰。牣٧Ⴜᣥ; ⒚󠋑𞤰.牣٧Ⴜᣥ; [B1, B5, P1, V6]; xn--cthy466n29j3e.xn--gib404ccxgh00h; ; ; # ⒚𞤰.牣٧Ⴜᣥ
+19.󠋑𞤰。牣٧Ⴜᣥ; 19.󠋑𞤰.牣٧Ⴜᣥ; [B1, B5, P1, V6]; 19.xn--oe6h75760c.xn--gib404ccxgh00h; ; ; # 19.𞤰.牣٧Ⴜᣥ
+19.󠋑𞤰。牣٧ⴜᣥ; 19.󠋑𞤰.牣٧ⴜᣥ; [B1, B5, P1, V6]; 19.xn--oe6h75760c.xn--gib285gtxo2l9d; ; ; # 19.𞤰.牣٧ⴜᣥ
+19.󠋑𞤎。牣٧Ⴜᣥ; 19.󠋑𞤰.牣٧Ⴜᣥ; [B1, B5, P1, V6]; 19.xn--oe6h75760c.xn--gib404ccxgh00h; ; ; # 19.𞤰.牣٧Ⴜᣥ
+19.󠋑𞤎。牣٧ⴜᣥ; 19.󠋑𞤰.牣٧ⴜᣥ; [B1, B5, P1, V6]; 19.xn--oe6h75760c.xn--gib285gtxo2l9d; ; ; # 19.𞤰.牣٧ⴜᣥ
+19.xn--oe6h75760c.xn--gib285gtxo2l9d; 19.󠋑𞤰.牣٧ⴜᣥ; [B1, B5, V6]; 19.xn--oe6h75760c.xn--gib285gtxo2l9d; ; ; # 19.𞤰.牣٧ⴜᣥ
+19.xn--oe6h75760c.xn--gib404ccxgh00h; 19.󠋑𞤰.牣٧Ⴜᣥ; [B1, B5, V6]; 19.xn--oe6h75760c.xn--gib404ccxgh00h; ; ; # 19.𞤰.牣٧Ⴜᣥ
+⒚󠋑𞤰。牣٧ⴜᣥ; ⒚󠋑𞤰.牣٧ⴜᣥ; [B1, B5, P1, V6]; xn--cthy466n29j3e.xn--gib285gtxo2l9d; ; ; # ⒚𞤰.牣٧ⴜᣥ
+⒚󠋑𞤎。牣٧Ⴜᣥ; ⒚󠋑𞤰.牣٧Ⴜᣥ; [B1, B5, P1, V6]; xn--cthy466n29j3e.xn--gib404ccxgh00h; ; ; # ⒚𞤰.牣٧Ⴜᣥ
+⒚󠋑𞤎。牣٧ⴜᣥ; ⒚󠋑𞤰.牣٧ⴜᣥ; [B1, B5, P1, V6]; xn--cthy466n29j3e.xn--gib285gtxo2l9d; ; ; # ⒚𞤰.牣٧ⴜᣥ
+xn--cthy466n29j3e.xn--gib285gtxo2l9d; ⒚󠋑𞤰.牣٧ⴜᣥ; [B1, B5, V6]; xn--cthy466n29j3e.xn--gib285gtxo2l9d; ; ; # ⒚𞤰.牣٧ⴜᣥ
+xn--cthy466n29j3e.xn--gib404ccxgh00h; ⒚󠋑𞤰.牣٧Ⴜᣥ; [B1, B5, V6]; xn--cthy466n29j3e.xn--gib404ccxgh00h; ; ; # ⒚𞤰.牣٧Ⴜᣥ
+-𐋱𐰽⒈.Ⴓ; ; [B1, P1, V3, V6]; xn----ecp0206g90h.xn--rnd; ; ; # -𐋱𐰽⒈.Ⴓ
+-𐋱𐰽1..Ⴓ; ; [B1, P1, V3, V6, X4_2]; xn---1-895nq11a..xn--rnd; [B1, P1, V3, V6, A4_2]; ; # -𐋱𐰽1..Ⴓ
+-𐋱𐰽1..ⴓ; ; [B1, V3, X4_2]; xn---1-895nq11a..xn--blj; [B1, V3, A4_2]; ; # -𐋱𐰽1..ⴓ
+xn---1-895nq11a..xn--blj; -𐋱𐰽1..ⴓ; [B1, V3, X4_2]; xn---1-895nq11a..xn--blj; [B1, V3, A4_2]; ; # -𐋱𐰽1..ⴓ
+xn---1-895nq11a..xn--rnd; -𐋱𐰽1..Ⴓ; [B1, V3, V6, X4_2]; xn---1-895nq11a..xn--rnd; [B1, V3, V6, A4_2]; ; # -𐋱𐰽1..Ⴓ
+-𐋱𐰽⒈.ⴓ; ; [B1, P1, V3, V6]; xn----ecp0206g90h.xn--blj; ; ; # -𐋱𐰽⒈.ⴓ
+xn----ecp0206g90h.xn--blj; -𐋱𐰽⒈.ⴓ; [B1, V3, V6]; xn----ecp0206g90h.xn--blj; ; ; # -𐋱𐰽⒈.ⴓ
+xn----ecp0206g90h.xn--rnd; -𐋱𐰽⒈.Ⴓ; [B1, V3, V6]; xn----ecp0206g90h.xn--rnd; ; ; # -𐋱𐰽⒈.Ⴓ
+‌긃.榶-; ; [C1, V3]; xn--0ug3307c.xn----d87b; ; xn--ej0b.xn----d87b; [V3] # 긃.榶-
+‌긃.榶-; ‌긃.榶-; [C1, V3]; xn--0ug3307c.xn----d87b; ; xn--ej0b.xn----d87b; [V3] # 긃.榶-
+xn--ej0b.xn----d87b; 긃.榶-; [V3]; xn--ej0b.xn----d87b; ; ; # 긃.榶-
+xn--0ug3307c.xn----d87b; ‌긃.榶-; [C1, V3]; xn--0ug3307c.xn----d87b; ; ; # 긃.榶-
+뉓泓𜵽.্‍; ; [P1, V5, V6]; xn--lwwp69lqs7m.xn--b7b605i; ; xn--lwwp69lqs7m.xn--b7b; # 뉓泓.্
+뉓泓𜵽.্‍; 뉓泓𜵽.্‍; [P1, V5, V6]; xn--lwwp69lqs7m.xn--b7b605i; ; xn--lwwp69lqs7m.xn--b7b; # 뉓泓.্
+xn--lwwp69lqs7m.xn--b7b; 뉓泓𜵽.্; [V5, V6]; xn--lwwp69lqs7m.xn--b7b; ; ; # 뉓泓.্
+xn--lwwp69lqs7m.xn--b7b605i; 뉓泓𜵽.্‍; [V5, V6]; xn--lwwp69lqs7m.xn--b7b605i; ; ; # 뉓泓.্
+‍𐹴ß。ິ⭵񪅌; ‍𐹴ß.ິ⭵񪅌; [B1, C2, P1, V5, V6]; xn--zca770nip7n.xn--57c638l8774i; ; xn--ss-ti3o.xn--57c638l8774i; [B1, P1, V5, V6] # 𐹴ß.ິ
+‍𐹴ß。ິ⭵񪅌; ‍𐹴ß.ິ⭵񪅌; [B1, C2, P1, V5, V6]; xn--zca770nip7n.xn--57c638l8774i; ; xn--ss-ti3o.xn--57c638l8774i; [B1, P1, V5, V6] # 𐹴ß.ິ
+‍𐹴SS。ິ⭵񪅌; ‍𐹴ss.ິ⭵񪅌; [B1, C2, P1, V5, V6]; xn--ss-l1t5169j.xn--57c638l8774i; ; xn--ss-ti3o.xn--57c638l8774i; [B1, P1, V5, V6] # 𐹴ss.ິ
+‍𐹴ss。ິ⭵񪅌; ‍𐹴ss.ິ⭵񪅌; [B1, C2, P1, V5, V6]; xn--ss-l1t5169j.xn--57c638l8774i; ; xn--ss-ti3o.xn--57c638l8774i; [B1, P1, V5, V6] # 𐹴ss.ິ
+‍𐹴Ss。ິ⭵񪅌; ‍𐹴ss.ິ⭵񪅌; [B1, C2, P1, V5, V6]; xn--ss-l1t5169j.xn--57c638l8774i; ; xn--ss-ti3o.xn--57c638l8774i; [B1, P1, V5, V6] # 𐹴ss.ິ
+xn--ss-ti3o.xn--57c638l8774i; 𐹴ss.ິ⭵񪅌; [B1, V5, V6]; xn--ss-ti3o.xn--57c638l8774i; ; ; # 𐹴ss.ິ
+xn--ss-l1t5169j.xn--57c638l8774i; ‍𐹴ss.ິ⭵񪅌; [B1, C2, V5, V6]; xn--ss-l1t5169j.xn--57c638l8774i; ; ; # 𐹴ss.ິ
+xn--zca770nip7n.xn--57c638l8774i; ‍𐹴ß.ິ⭵񪅌; [B1, C2, V5, V6]; xn--zca770nip7n.xn--57c638l8774i; ; ; # 𐹴ß.ິ
+‍𐹴SS。ິ⭵񪅌; ‍𐹴ss.ິ⭵񪅌; [B1, C2, P1, V5, V6]; xn--ss-l1t5169j.xn--57c638l8774i; ; xn--ss-ti3o.xn--57c638l8774i; [B1, P1, V5, V6] # 𐹴ss.ິ
+‍𐹴ss。ິ⭵񪅌; ‍𐹴ss.ິ⭵񪅌; [B1, C2, P1, V5, V6]; xn--ss-l1t5169j.xn--57c638l8774i; ; xn--ss-ti3o.xn--57c638l8774i; [B1, P1, V5, V6] # 𐹴ss.ິ
+‍𐹴Ss。ິ⭵񪅌; ‍𐹴ss.ິ⭵񪅌; [B1, C2, P1, V5, V6]; xn--ss-l1t5169j.xn--57c638l8774i; ; xn--ss-ti3o.xn--57c638l8774i; [B1, P1, V5, V6] # 𐹴ss.ິ
+᭄.᮪-≮≠; ᭄.᮪-≮≠; [P1, V5, V6]; xn--1uf.xn----nmlz65aub; ; ; # ᭄.᮪-≮≠
+᭄.᮪-≮≠; ᭄.᮪-≮≠; [P1, V5, V6]; xn--1uf.xn----nmlz65aub; ; ; # ᭄.᮪-≮≠
+᭄.᮪-≮≠; ; [P1, V5, V6]; xn--1uf.xn----nmlz65aub; ; ; # ᭄.᮪-≮≠
+᭄.᮪-≮≠; ᭄.᮪-≮≠; [P1, V5, V6]; xn--1uf.xn----nmlz65aub; ; ; # ᭄.᮪-≮≠
+xn--1uf.xn----nmlz65aub; ᭄.᮪-≮≠; [V5, V6]; xn--1uf.xn----nmlz65aub; ; ; # ᭄.᮪-≮≠
+᯳Ⴑᅟ.𑄴Ⅎ; ᯳Ⴑᅟ.𑄴Ⅎ; [P1, V5, V6]; xn--pnd26a55x.xn--f3g7465g; ; ; # ᯳Ⴑ.𑄴Ⅎ
+᯳Ⴑᅟ.𑄴Ⅎ; ; [P1, V5, V6]; xn--pnd26a55x.xn--f3g7465g; ; ; # ᯳Ⴑ.𑄴Ⅎ
+᯳ⴑᅟ.𑄴ⅎ; ; [P1, V5, V6]; xn--osd925cvyn.xn--73g3065g; ; ; # ᯳ⴑ.𑄴ⅎ
+᯳Ⴑᅟ.𑄴ⅎ; ; [P1, V5, V6]; xn--pnd26a55x.xn--73g3065g; ; ; # ᯳Ⴑ.𑄴ⅎ
+xn--pnd26a55x.xn--73g3065g; ᯳Ⴑᅟ.𑄴ⅎ; [V5, V6]; xn--pnd26a55x.xn--73g3065g; ; ; # ᯳Ⴑ.𑄴ⅎ
+xn--osd925cvyn.xn--73g3065g; ᯳ⴑᅟ.𑄴ⅎ; [V5, V6]; xn--osd925cvyn.xn--73g3065g; ; ; # ᯳ⴑ.𑄴ⅎ
+xn--pnd26a55x.xn--f3g7465g; ᯳Ⴑᅟ.𑄴Ⅎ; [V5, V6]; xn--pnd26a55x.xn--f3g7465g; ; ; # ᯳Ⴑ.𑄴Ⅎ
+᯳ⴑᅟ.𑄴ⅎ; ᯳ⴑᅟ.𑄴ⅎ; [P1, V5, V6]; xn--osd925cvyn.xn--73g3065g; ; ; # ᯳ⴑ.𑄴ⅎ
+᯳Ⴑᅟ.𑄴ⅎ; ᯳Ⴑᅟ.𑄴ⅎ; [P1, V5, V6]; xn--pnd26a55x.xn--73g3065g; ; ; # ᯳Ⴑ.𑄴ⅎ
+𜉆。Ⴃ𐴣𐹹똯; 𜉆.Ⴃ𐴣𐹹똯; [B5, P1, V6]; xn--187g.xn--bnd4785f8r8bdeb; ; ; # .Ⴃ𐴣𐹹똯
+𜉆。Ⴃ𐴣𐹹똯; 𜉆.Ⴃ𐴣𐹹똯; [B5, P1, V6]; xn--187g.xn--bnd4785f8r8bdeb; ; ; # .Ⴃ𐴣𐹹똯
+𜉆。ⴃ𐴣𐹹똯; 𜉆.ⴃ𐴣𐹹똯; [B5, P1, V6]; xn--187g.xn--ukjy205b8rscdeb; ; ; # .ⴃ𐴣𐹹똯
+𜉆。ⴃ𐴣𐹹똯; 𜉆.ⴃ𐴣𐹹똯; [B5, P1, V6]; xn--187g.xn--ukjy205b8rscdeb; ; ; # .ⴃ𐴣𐹹똯
+xn--187g.xn--ukjy205b8rscdeb; 𜉆.ⴃ𐴣𐹹똯; [B5, V6]; xn--187g.xn--ukjy205b8rscdeb; ; ; # .ⴃ𐴣𐹹똯
+xn--187g.xn--bnd4785f8r8bdeb; 𜉆.Ⴃ𐴣𐹹똯; [B5, V6]; xn--187g.xn--bnd4785f8r8bdeb; ; ; # .Ⴃ𐴣𐹹똯
+𐫀。⳻󠙾󠄷ㅤ; 𐫀.⳻󠙾ㅤ; [B1, P1, V6]; xn--pw9c.xn--mkj83l4v899a; ; ; # 𐫀.⳻
+𐫀。⳻󠙾󠄷ᅠ; 𐫀.⳻󠙾ᅠ; [B1, P1, V6]; xn--pw9c.xn--psd742lxt32w; ; ; # 𐫀.⳻
+xn--pw9c.xn--psd742lxt32w; 𐫀.⳻󠙾ᅠ; [B1, V6]; xn--pw9c.xn--psd742lxt32w; ; ; # 𐫀.⳻
+xn--pw9c.xn--mkj83l4v899a; 𐫀.⳻󠙾ㅤ; [B1, V6]; xn--pw9c.xn--mkj83l4v899a; ; ; # 𐫀.⳻
+ޚ⾇.ܞ-𐋰; ޚ舛.ܞ-𐋰; [B2, B3]; xn--7qb6383d.xn----20c3154q; ; ; # ޚ舛.ܞ-𐋰
+ޚ舛.ܞ-𐋰; ; [B2, B3]; xn--7qb6383d.xn----20c3154q; ; ; # ޚ舛.ܞ-𐋰
+xn--7qb6383d.xn----20c3154q; ޚ舛.ܞ-𐋰; [B2, B3]; xn--7qb6383d.xn----20c3154q; ; ; # ޚ舛.ܞ-𐋰
+Ⴉ猕󹛫≮.︒; Ⴉ猕󹛫≮.︒; [P1, V6]; xn--hnd212gz32d54x5r.xn--y86c; ; ; # Ⴉ猕≮.︒
+Ⴉ猕󹛫≮.︒; Ⴉ猕󹛫≮.︒; [P1, V6]; xn--hnd212gz32d54x5r.xn--y86c; ; ; # Ⴉ猕≮.︒
+Ⴉ猕󹛫≮.。; Ⴉ猕󹛫≮..; [P1, V6, X4_2]; xn--hnd212gz32d54x5r..; [P1, V6, A4_2]; ; # Ⴉ猕≮..
+Ⴉ猕󹛫≮.。; Ⴉ猕󹛫≮..; [P1, V6, X4_2]; xn--hnd212gz32d54x5r..; [P1, V6, A4_2]; ; # Ⴉ猕≮..
+ⴉ猕󹛫≮.。; ⴉ猕󹛫≮..; [P1, V6, X4_2]; xn--gdh892bbz0d5438s..; [P1, V6, A4_2]; ; # ⴉ猕≮..
+ⴉ猕󹛫≮.。; ⴉ猕󹛫≮..; [P1, V6, X4_2]; xn--gdh892bbz0d5438s..; [P1, V6, A4_2]; ; # ⴉ猕≮..
+xn--gdh892bbz0d5438s..; ⴉ猕󹛫≮..; [V6, X4_2]; xn--gdh892bbz0d5438s..; [V6, A4_2]; ; # ⴉ猕≮..
+xn--hnd212gz32d54x5r..; Ⴉ猕󹛫≮..; [V6, X4_2]; xn--hnd212gz32d54x5r..; [V6, A4_2]; ; # Ⴉ猕≮..
+ⴉ猕󹛫≮.︒; ⴉ猕󹛫≮.︒; [P1, V6]; xn--gdh892bbz0d5438s.xn--y86c; ; ; # ⴉ猕≮.︒
+ⴉ猕󹛫≮.︒; ⴉ猕󹛫≮.︒; [P1, V6]; xn--gdh892bbz0d5438s.xn--y86c; ; ; # ⴉ猕≮.︒
+xn--gdh892bbz0d5438s.xn--y86c; ⴉ猕󹛫≮.︒; [V6]; xn--gdh892bbz0d5438s.xn--y86c; ; ; # ⴉ猕≮.︒
+xn--hnd212gz32d54x5r.xn--y86c; Ⴉ猕󹛫≮.︒; [V6]; xn--hnd212gz32d54x5r.xn--y86c; ; ; # Ⴉ猕≮.︒
+🏮。ث鳳ߢ󠅉; 🏮.ث鳳ߢ; [B1, B2]; xn--8m8h.xn--qgb29f6z90a; ; ; # 🏮.ث鳳ߢ
+🏮。ث鳳ߢ󠅉; 🏮.ث鳳ߢ; [B1, B2]; xn--8m8h.xn--qgb29f6z90a; ; ; # 🏮.ث鳳ߢ
+xn--8m8h.xn--qgb29f6z90a; 🏮.ث鳳ߢ; [B1, B2]; xn--8m8h.xn--qgb29f6z90a; ; ; # 🏮.ث鳳ߢ
+‍𐹶。ß; ‍𐹶.ß; [B1, C2]; xn--1ug9105g.xn--zca; ; xn--uo0d.ss; [B1] # 𐹶.ß
+‍𐹶。SS; ‍𐹶.ss; [B1, C2]; xn--1ug9105g.ss; ; xn--uo0d.ss; [B1] # 𐹶.ss
+‍𐹶。ss; ‍𐹶.ss; [B1, C2]; xn--1ug9105g.ss; ; xn--uo0d.ss; [B1] # 𐹶.ss
+‍𐹶。Ss; ‍𐹶.ss; [B1, C2]; xn--1ug9105g.ss; ; xn--uo0d.ss; [B1] # 𐹶.ss
+xn--uo0d.ss; 𐹶.ss; [B1]; xn--uo0d.ss; ; ; # 𐹶.ss
+xn--1ug9105g.ss; ‍𐹶.ss; [B1, C2]; xn--1ug9105g.ss; ; ; # 𐹶.ss
+xn--1ug9105g.xn--zca; ‍𐹶.ß; [B1, C2]; xn--1ug9105g.xn--zca; ; ; # 𐹶.ß
+Å둄-.‌; å둄-.‌; [C1, V3]; xn----1fa1788k.xn--0ug; ; xn----1fa1788k.; [V3] # å둄-.
+Å둄-.‌; å둄-.‌; [C1, V3]; xn----1fa1788k.xn--0ug; ; xn----1fa1788k.; [V3] # å둄-.
+Å둄-.‌; å둄-.‌; [C1, V3]; xn----1fa1788k.xn--0ug; ; xn----1fa1788k.; [V3] # å둄-.
+Å둄-.‌; å둄-.‌; [C1, V3]; xn----1fa1788k.xn--0ug; ; xn----1fa1788k.; [V3] # å둄-.
+å둄-.‌; å둄-.‌; [C1, V3]; xn----1fa1788k.xn--0ug; ; xn----1fa1788k.; [V3] # å둄-.
+å둄-.‌; ; [C1, V3]; xn----1fa1788k.xn--0ug; ; xn----1fa1788k.; [V3] # å둄-.
+xn----1fa1788k.; å둄-.; [V3]; xn----1fa1788k.; ; ; # å둄-.
+xn----1fa1788k.xn--0ug; å둄-.‌; [C1, V3]; xn----1fa1788k.xn--0ug; ; ; # å둄-.
+å둄-.‌; å둄-.‌; [C1, V3]; xn----1fa1788k.xn--0ug; ; xn----1fa1788k.; [V3] # å둄-.
+å둄-.‌; å둄-.‌; [C1, V3]; xn----1fa1788k.xn--0ug; ; xn----1fa1788k.; [V3] # å둄-.
+゙򬎑ᷗ𞤀.򱲢-॓; ゙򬎑ᷗ𞤢.򱲢-॓; [B1, B6, P1, V5, V6]; xn--veg121fwg63altj9d.xn----eyd92688s; ; ; # ゙ᷗ𞤢.-॓
+゙򬎑ᷗ𞤢.򱲢-॓; ; [B1, B6, P1, V5, V6]; xn--veg121fwg63altj9d.xn----eyd92688s; ; ; # ゙ᷗ𞤢.-॓
+xn--veg121fwg63altj9d.xn----eyd92688s; ゙򬎑ᷗ𞤢.򱲢-॓; [B1, B6, V5, V6]; xn--veg121fwg63altj9d.xn----eyd92688s; ; ; # ゙ᷗ𞤢.-॓
+ς.ß񴱄۝⵿; ; [B5, B6, P1, V6]; xn--3xa.xn--zca281az71b8x73m; ; xn--4xa.xn--ss-y8d4760biv60n; # ς.ß⵿
+Σ.SS񴱄۝⵿; σ.ss񴱄۝⵿; [B5, B6, P1, V6]; xn--4xa.xn--ss-y8d4760biv60n; ; ; # σ.ss⵿
+σ.ss񴱄۝⵿; ; [B5, B6, P1, V6]; xn--4xa.xn--ss-y8d4760biv60n; ; ; # σ.ss⵿
+Σ.ss񴱄۝⵿; σ.ss񴱄۝⵿; [B5, B6, P1, V6]; xn--4xa.xn--ss-y8d4760biv60n; ; ; # σ.ss⵿
+xn--4xa.xn--ss-y8d4760biv60n; σ.ss񴱄۝⵿; [B5, B6, V6]; xn--4xa.xn--ss-y8d4760biv60n; ; ; # σ.ss⵿
+Σ.ß񴱄۝⵿; σ.ß񴱄۝⵿; [B5, B6, P1, V6]; xn--4xa.xn--zca281az71b8x73m; ; xn--4xa.xn--ss-y8d4760biv60n; # σ.ß⵿
+σ.ß񴱄۝⵿; ; [B5, B6, P1, V6]; xn--4xa.xn--zca281az71b8x73m; ; xn--4xa.xn--ss-y8d4760biv60n; # σ.ß⵿
+xn--4xa.xn--zca281az71b8x73m; σ.ß񴱄۝⵿; [B5, B6, V6]; xn--4xa.xn--zca281az71b8x73m; ; ; # σ.ß⵿
+xn--3xa.xn--zca281az71b8x73m; ς.ß񴱄۝⵿; [B5, B6, V6]; xn--3xa.xn--zca281az71b8x73m; ; ; # ς.ß⵿
+ꡀ𞀟。٫֙; ꡀ𞀟.٫֙; [B1]; xn--8b9a1720d.xn--kcb33b; ; ; # ꡀ𞀟.٫֙
+ꡀ𞀟。٫֙; ꡀ𞀟.٫֙; [B1]; xn--8b9a1720d.xn--kcb33b; ; ; # ꡀ𞀟.٫֙
+xn--8b9a1720d.xn--kcb33b; ꡀ𞀟.٫֙; [B1]; xn--8b9a1720d.xn--kcb33b; ; ; # ꡀ𞀟.٫֙
+򈛉‌ࢩ。⧅񘘡-𐭡; 򈛉‌ࢩ.⧅񘘡-𐭡; [B1, B5, B6, C1, P1, V6]; xn--yyb780jll63m.xn----zir1232guu71b; ; xn--yyb56242i.xn----zir1232guu71b; [B1, B5, B6, P1, V6] # ࢩ.⧅-𐭡
+򈛉‌ࢩ。⧅񘘡-𐭡; 򈛉‌ࢩ.⧅񘘡-𐭡; [B1, B5, B6, C1, P1, V6]; xn--yyb780jll63m.xn----zir1232guu71b; ; xn--yyb56242i.xn----zir1232guu71b; [B1, B5, B6, P1, V6] # ࢩ.⧅-𐭡
+xn--yyb56242i.xn----zir1232guu71b; 򈛉ࢩ.⧅񘘡-𐭡; [B1, B5, B6, V6]; xn--yyb56242i.xn----zir1232guu71b; ; ; # ࢩ.⧅-𐭡
+xn--yyb780jll63m.xn----zir1232guu71b; 򈛉‌ࢩ.⧅񘘡-𐭡; [B1, B5, B6, C1, V6]; xn--yyb780jll63m.xn----zir1232guu71b; ; ; # ࢩ.⧅-𐭡
+룱‍𰍨‌。𝨖︒; 룱‍𰍨‌.𝨖︒; [C1, C2, P1, V5, V6]; xn--0ugb3358ili2v.xn--y86cl899a; ; xn--ct2b0738h.xn--y86cl899a; [P1, V5, V6] # 룱.𝨖︒
+룱‍𰍨‌。𝨖︒; 룱‍𰍨‌.𝨖︒; [C1, C2, P1, V5, V6]; xn--0ugb3358ili2v.xn--y86cl899a; ; xn--ct2b0738h.xn--y86cl899a; [P1, V5, V6] # 룱.𝨖︒
+룱‍𰍨‌。𝨖。; 룱‍𰍨‌.𝨖.; [C1, C2, P1, V5, V6]; xn--0ugb3358ili2v.xn--772h.; ; xn--ct2b0738h.xn--772h.; [P1, V5, V6] # 룱.𝨖.
+룱‍𰍨‌。𝨖。; 룱‍𰍨‌.𝨖.; [C1, C2, P1, V5, V6]; xn--0ugb3358ili2v.xn--772h.; ; xn--ct2b0738h.xn--772h.; [P1, V5, V6] # 룱.𝨖.
+xn--ct2b0738h.xn--772h.; 룱𰍨.𝨖.; [V5, V6]; xn--ct2b0738h.xn--772h.; ; ; # 룱.𝨖.
+xn--0ugb3358ili2v.xn--772h.; 룱‍𰍨‌.𝨖.; [C1, C2, V5, V6]; xn--0ugb3358ili2v.xn--772h.; ; ; # 룱.𝨖.
+xn--ct2b0738h.xn--y86cl899a; 룱𰍨.𝨖︒; [V5, V6]; xn--ct2b0738h.xn--y86cl899a; ; ; # 룱.𝨖︒
+xn--0ugb3358ili2v.xn--y86cl899a; 룱‍𰍨‌.𝨖︒; [C1, C2, V5, V6]; xn--0ugb3358ili2v.xn--y86cl899a; ; ; # 룱.𝨖︒
+🄄.᳜⒈ß; 🄄.᳜⒈ß; [P1, V5, V6]; xn--x07h.xn--zca344lmif; ; xn--x07h.xn--ss-k1r094b; # 🄄.᳜⒈ß
+3,.᳜1.ß; ; [P1, V5, V6]; 3,.xn--1-43l.xn--zca; ; 3,.xn--1-43l.ss; # 3,.᳜1.ß
+3,.᳜1.SS; 3,.᳜1.ss; [P1, V5, V6]; 3,.xn--1-43l.ss; ; ; # 3,.᳜1.ss
+3,.᳜1.ss; ; [P1, V5, V6]; 3,.xn--1-43l.ss; ; ; # 3,.᳜1.ss
+3,.᳜1.Ss; 3,.᳜1.ss; [P1, V5, V6]; 3,.xn--1-43l.ss; ; ; # 3,.᳜1.ss
+3,.xn--1-43l.ss; 3,.᳜1.ss; [P1, V5, V6]; 3,.xn--1-43l.ss; ; ; # 3,.᳜1.ss
+3,.xn--1-43l.xn--zca; 3,.᳜1.ß; [P1, V5, V6]; 3,.xn--1-43l.xn--zca; ; ; # 3,.᳜1.ß
+🄄.᳜⒈SS; 🄄.᳜⒈ss; [P1, V5, V6]; xn--x07h.xn--ss-k1r094b; ; ; # 🄄.᳜⒈ss
+🄄.᳜⒈ss; 🄄.᳜⒈ss; [P1, V5, V6]; xn--x07h.xn--ss-k1r094b; ; ; # 🄄.᳜⒈ss
+🄄.᳜⒈Ss; 🄄.᳜⒈ss; [P1, V5, V6]; xn--x07h.xn--ss-k1r094b; ; ; # 🄄.᳜⒈ss
+xn--x07h.xn--ss-k1r094b; 🄄.᳜⒈ss; [V5, V6]; xn--x07h.xn--ss-k1r094b; ; ; # 🄄.᳜⒈ss
+xn--x07h.xn--zca344lmif; 🄄.᳜⒈ß; [V5, V6]; xn--x07h.xn--zca344lmif; ; ; # 🄄.᳜⒈ß
+񇌍⵿。𞼓򡄨𑐺; 񇌍⵿.𞼓򡄨𑐺; [B2, B3, P1, V6]; xn--eoj16016a.xn--0v1d3848a3lr0d; ; ; # ⵿.𑐺
+񇌍⵿。𞼓򡄨𑐺; 񇌍⵿.𞼓򡄨𑐺; [B2, B3, P1, V6]; xn--eoj16016a.xn--0v1d3848a3lr0d; ; ; # ⵿.𑐺
+xn--eoj16016a.xn--0v1d3848a3lr0d; 񇌍⵿.𞼓򡄨𑐺; [B2, B3, V6]; xn--eoj16016a.xn--0v1d3848a3lr0d; ; ; # ⵿.𑐺
+်्᷽.≠‍㇛; ်्᷽.≠‍㇛; [C2, P1, V5, V6]; xn--n3b956a9zm.xn--1ug63gz5w; ; xn--n3b956a9zm.xn--1ch912d; [P1, V5, V6] # ်्᷽.≠㇛
+်्᷽.≠‍㇛; ်्᷽.≠‍㇛; [C2, P1, V5, V6]; xn--n3b956a9zm.xn--1ug63gz5w; ; xn--n3b956a9zm.xn--1ch912d; [P1, V5, V6] # ်्᷽.≠㇛
+်्᷽.≠‍㇛; ်्᷽.≠‍㇛; [C2, P1, V5, V6]; xn--n3b956a9zm.xn--1ug63gz5w; ; xn--n3b956a9zm.xn--1ch912d; [P1, V5, V6] # ်्᷽.≠㇛
+်्᷽.≠‍㇛; ; [C2, P1, V5, V6]; xn--n3b956a9zm.xn--1ug63gz5w; ; xn--n3b956a9zm.xn--1ch912d; [P1, V5, V6] # ်्᷽.≠㇛
+်्᷽.≠‍㇛; ်्᷽.≠‍㇛; [C2, P1, V5, V6]; xn--n3b956a9zm.xn--1ug63gz5w; ; xn--n3b956a9zm.xn--1ch912d; [P1, V5, V6] # ်्᷽.≠㇛
+xn--n3b956a9zm.xn--1ch912d; ်्᷽.≠㇛; [V5, V6]; xn--n3b956a9zm.xn--1ch912d; ; ; # ်्᷽.≠㇛
+xn--n3b956a9zm.xn--1ug63gz5w; ်्᷽.≠‍㇛; [C2, V5, V6]; xn--n3b956a9zm.xn--1ug63gz5w; ; ; # ်्᷽.≠㇛
+Ⴁ𐋨娤.‍̼٢𑖿; ; [B1, C2, P1, V6]; xn--8md2578ag21g.xn--9ta62ngt6aou8t; ; xn--8md2578ag21g.xn--9ta62nrv36a; [B1, P1, V5, V6] # Ⴁ𐋨娤.̼٢𑖿
+ⴁ𐋨娤.‍̼٢𑖿; ; [B1, C2]; xn--skjw75lg29h.xn--9ta62ngt6aou8t; ; xn--skjw75lg29h.xn--9ta62nrv36a; [B1, V5] # ⴁ𐋨娤.̼٢𑖿
+xn--skjw75lg29h.xn--9ta62nrv36a; ⴁ𐋨娤.̼٢𑖿; [B1, V5]; xn--skjw75lg29h.xn--9ta62nrv36a; ; ; # ⴁ𐋨娤.̼٢𑖿
+xn--skjw75lg29h.xn--9ta62ngt6aou8t; ⴁ𐋨娤.‍̼٢𑖿; [B1, C2]; xn--skjw75lg29h.xn--9ta62ngt6aou8t; ; ; # ⴁ𐋨娤.̼٢𑖿
+xn--8md2578ag21g.xn--9ta62nrv36a; Ⴁ𐋨娤.̼٢𑖿; [B1, V5, V6]; xn--8md2578ag21g.xn--9ta62nrv36a; ; ; # Ⴁ𐋨娤.̼٢𑖿
+xn--8md2578ag21g.xn--9ta62ngt6aou8t; Ⴁ𐋨娤.‍̼٢𑖿; [B1, C2, V6]; xn--8md2578ag21g.xn--9ta62ngt6aou8t; ; ; # Ⴁ𐋨娤.̼٢𑖿
+🄀Ⴄ٩ࠠ。⒈ྶß; 🄀Ⴄ٩ࠠ.⒈ྶß; [B1, P1, V6]; xn--iib29f26o6n43c.xn--zca117e3vp; ; xn--iib29f26o6n43c.xn--ss-1sj588o; # 🄀Ⴄ٩ࠠ.⒈ྶß
+0.Ⴄ٩ࠠ。1.ྶß; 0.Ⴄ٩ࠠ.1.ྶß; [B1, B5, B6, P1, V5, V6]; 0.xn--iib29f26o.1.xn--zca117e; ; 0.xn--iib29f26o.1.xn--ss-1sj; # 0.Ⴄ٩ࠠ.1.ྶß
+0.ⴄ٩ࠠ。1.ྶß; 0.ⴄ٩ࠠ.1.ྶß; [B1, B5, B6, V5]; 0.xn--iib29fp25e.1.xn--zca117e; ; 0.xn--iib29fp25e.1.xn--ss-1sj; # 0.ⴄ٩ࠠ.1.ྶß
+0.Ⴄ٩ࠠ。1.ྶSS; 0.Ⴄ٩ࠠ.1.ྶss; [B1, B5, B6, P1, V5, V6]; 0.xn--iib29f26o.1.xn--ss-1sj; ; ; # 0.Ⴄ٩ࠠ.1.ྶss
+0.ⴄ٩ࠠ。1.ྶss; 0.ⴄ٩ࠠ.1.ྶss; [B1, B5, B6, V5]; 0.xn--iib29fp25e.1.xn--ss-1sj; ; ; # 0.ⴄ٩ࠠ.1.ྶss
+0.Ⴄ٩ࠠ。1.ྶSs; 0.Ⴄ٩ࠠ.1.ྶss; [B1, B5, B6, P1, V5, V6]; 0.xn--iib29f26o.1.xn--ss-1sj; ; ; # 0.Ⴄ٩ࠠ.1.ྶss
+0.xn--iib29f26o.1.xn--ss-1sj; 0.Ⴄ٩ࠠ.1.ྶss; [B1, B5, B6, V5, V6]; 0.xn--iib29f26o.1.xn--ss-1sj; ; ; # 0.Ⴄ٩ࠠ.1.ྶss
+0.xn--iib29fp25e.1.xn--ss-1sj; 0.ⴄ٩ࠠ.1.ྶss; [B1, B5, B6, V5]; 0.xn--iib29fp25e.1.xn--ss-1sj; ; ; # 0.ⴄ٩ࠠ.1.ྶss
+0.xn--iib29fp25e.1.xn--zca117e; 0.ⴄ٩ࠠ.1.ྶß; [B1, B5, B6, V5]; 0.xn--iib29fp25e.1.xn--zca117e; ; ; # 0.ⴄ٩ࠠ.1.ྶß
+0.xn--iib29f26o.1.xn--zca117e; 0.Ⴄ٩ࠠ.1.ྶß; [B1, B5, B6, V5, V6]; 0.xn--iib29f26o.1.xn--zca117e; ; ; # 0.Ⴄ٩ࠠ.1.ྶß
+🄀ⴄ٩ࠠ。⒈ྶß; 🄀ⴄ٩ࠠ.⒈ྶß; [B1, P1, V6]; xn--iib29fp25e0219a.xn--zca117e3vp; ; xn--iib29fp25e0219a.xn--ss-1sj588o; # 🄀ⴄ٩ࠠ.⒈ྶß
+🄀Ⴄ٩ࠠ。⒈ྶSS; 🄀Ⴄ٩ࠠ.⒈ྶss; [B1, P1, V6]; xn--iib29f26o6n43c.xn--ss-1sj588o; ; ; # 🄀Ⴄ٩ࠠ.⒈ྶss
+🄀ⴄ٩ࠠ。⒈ྶss; 🄀ⴄ٩ࠠ.⒈ྶss; [B1, P1, V6]; xn--iib29fp25e0219a.xn--ss-1sj588o; ; ; # 🄀ⴄ٩ࠠ.⒈ྶss
+🄀Ⴄ٩ࠠ。⒈ྶSs; 🄀Ⴄ٩ࠠ.⒈ྶss; [B1, P1, V6]; xn--iib29f26o6n43c.xn--ss-1sj588o; ; ; # 🄀Ⴄ٩ࠠ.⒈ྶss
+xn--iib29f26o6n43c.xn--ss-1sj588o; 🄀Ⴄ٩ࠠ.⒈ྶss; [B1, V6]; xn--iib29f26o6n43c.xn--ss-1sj588o; ; ; # 🄀Ⴄ٩ࠠ.⒈ྶss
+xn--iib29fp25e0219a.xn--ss-1sj588o; 🄀ⴄ٩ࠠ.⒈ྶss; [B1, V6]; xn--iib29fp25e0219a.xn--ss-1sj588o; ; ; # 🄀ⴄ٩ࠠ.⒈ྶss
+xn--iib29fp25e0219a.xn--zca117e3vp; 🄀ⴄ٩ࠠ.⒈ྶß; [B1, V6]; xn--iib29fp25e0219a.xn--zca117e3vp; ; ; # 🄀ⴄ٩ࠠ.⒈ྶß
+xn--iib29f26o6n43c.xn--zca117e3vp; 🄀Ⴄ٩ࠠ.⒈ྶß; [B1, V6]; xn--iib29f26o6n43c.xn--zca117e3vp; ; ; # 🄀Ⴄ٩ࠠ.⒈ྶß
+≠.‌-٫; ; [B1, C1, P1, V6]; xn--1ch.xn----vqc597q; ; xn--1ch.xn----vqc; [B1, P1, V3, V6] # ≠.-٫
+≠.‌-٫; ≠.‌-٫; [B1, C1, P1, V6]; xn--1ch.xn----vqc597q; ; xn--1ch.xn----vqc; [B1, P1, V3, V6] # ≠.-٫
+xn--1ch.xn----vqc; ≠.-٫; [B1, V3, V6]; xn--1ch.xn----vqc; ; ; # ≠.-٫
+xn--1ch.xn----vqc597q; ≠.‌-٫; [B1, C1, V6]; xn--1ch.xn----vqc597q; ; ; # ≠.-٫
+٠۱。󠳶𞠁٥; ٠۱.󠳶𞠁٥; [B1, P1, V6]; xn--8hb40a.xn--eib7967vner3e; ; ; # ٠۱.𞠁٥
+٠۱。󠳶𞠁٥; ٠۱.󠳶𞠁٥; [B1, P1, V6]; xn--8hb40a.xn--eib7967vner3e; ; ; # ٠۱.𞠁٥
+xn--8hb40a.xn--eib7967vner3e; ٠۱.󠳶𞠁٥; [B1, V6]; xn--8hb40a.xn--eib7967vner3e; ; ; # ٠۱.𞠁٥
+‌٣⒖。󱅉𽷛᯳; ‌٣⒖.󱅉𽷛᯳; [B1, C1, P1, V6]; xn--cib152kwgd.xn--1zf13512buy41d; ; xn--cib675m.xn--1zf13512buy41d; [B1, P1, V6] # ٣⒖.᯳
+‌٣15.。󱅉𽷛᯳; ‌٣15..󱅉𽷛᯳; [B1, C1, P1, V6, X4_2]; xn--15-gyd983x..xn--1zf13512buy41d; [B1, C1, P1, V6, A4_2]; xn--15-gyd..xn--1zf13512buy41d; [B1, P1, V6, A4_2] # ٣15..᯳
+xn--15-gyd..xn--1zf13512buy41d; ٣15..󱅉𽷛᯳; [B1, V6, X4_2]; xn--15-gyd..xn--1zf13512buy41d; [B1, V6, A4_2]; ; # ٣15..᯳
+xn--15-gyd983x..xn--1zf13512buy41d; ‌٣15..󱅉𽷛᯳; [B1, C1, V6, X4_2]; xn--15-gyd983x..xn--1zf13512buy41d; [B1, C1, V6, A4_2]; ; # ٣15..᯳
+xn--cib675m.xn--1zf13512buy41d; ٣⒖.󱅉𽷛᯳; [B1, V6]; xn--cib675m.xn--1zf13512buy41d; ; ; # ٣⒖.᯳
+xn--cib152kwgd.xn--1zf13512buy41d; ‌٣⒖.󱅉𽷛᯳; [B1, C1, V6]; xn--cib152kwgd.xn--1zf13512buy41d; ; ; # ٣⒖.᯳
+᯳.-逋񳦭󙙮; ; [P1, V3, V5, V6]; xn--1zf.xn----483d46987byr50b; ; ; # ᯳.-逋
+xn--1zf.xn----483d46987byr50b; ᯳.-逋񳦭󙙮; [V3, V5, V6]; xn--1zf.xn----483d46987byr50b; ; ; # ᯳.-逋
+ݖ。ㅤ‍ς; ݖ.ㅤ‍ς; [C2, P1, V6]; xn--9ob.xn--3xa995lq2l; ; xn--9ob.xn--4xa574u; [P1, V6] # ݖ.ς
+ݖ。ᅠ‍ς; ݖ.ᅠ‍ς; [C2, P1, V6]; xn--9ob.xn--3xa580ebol; ; xn--9ob.xn--4xa380e; [P1, V6] # ݖ.ς
+ݖ。ᅠ‍Σ; ݖ.ᅠ‍σ; [C2, P1, V6]; xn--9ob.xn--4xa380ebol; ; xn--9ob.xn--4xa380e; [P1, V6] # ݖ.σ
+ݖ。ᅠ‍σ; ݖ.ᅠ‍σ; [C2, P1, V6]; xn--9ob.xn--4xa380ebol; ; xn--9ob.xn--4xa380e; [P1, V6] # ݖ.σ
+xn--9ob.xn--4xa380e; ݖ.ᅠσ; [V6]; xn--9ob.xn--4xa380e; ; ; # ݖ.σ
+xn--9ob.xn--4xa380ebol; ݖ.ᅠ‍σ; [C2, V6]; xn--9ob.xn--4xa380ebol; ; ; # ݖ.σ
+xn--9ob.xn--3xa580ebol; ݖ.ᅠ‍ς; [C2, V6]; xn--9ob.xn--3xa580ebol; ; ; # ݖ.ς
+ݖ。ㅤ‍Σ; ݖ.ㅤ‍σ; [C2, P1, V6]; xn--9ob.xn--4xa795lq2l; ; xn--9ob.xn--4xa574u; [P1, V6] # ݖ.σ
+ݖ。ㅤ‍σ; ݖ.ㅤ‍σ; [C2, P1, V6]; xn--9ob.xn--4xa795lq2l; ; xn--9ob.xn--4xa574u; [P1, V6] # ݖ.σ
+xn--9ob.xn--4xa574u; ݖ.ㅤσ; [V6]; xn--9ob.xn--4xa574u; ; ; # ݖ.σ
+xn--9ob.xn--4xa795lq2l; ݖ.ㅤ‍σ; [C2, V6]; xn--9ob.xn--4xa795lq2l; ; ; # ݖ.σ
+xn--9ob.xn--3xa995lq2l; ݖ.ㅤ‍ς; [C2, V6]; xn--9ob.xn--3xa995lq2l; ; ; # ݖ.ς
+ᡆႣ。󞢧̕‍‍; ᡆႣ.󞢧̕‍‍; [C2, P1, V6]; xn--bnd320b.xn--5sa649la993427a; ; xn--bnd320b.xn--5sa98523p; [P1, V6] # ᡆႣ.̕
+ᡆႣ。󞢧̕‍‍; ᡆႣ.󞢧̕‍‍; [C2, P1, V6]; xn--bnd320b.xn--5sa649la993427a; ; xn--bnd320b.xn--5sa98523p; [P1, V6] # ᡆႣ.̕
+ᡆⴃ。󞢧̕‍‍; ᡆⴃ.󞢧̕‍‍; [C2, P1, V6]; xn--57e237h.xn--5sa649la993427a; ; xn--57e237h.xn--5sa98523p; [P1, V6] # ᡆⴃ.̕
+xn--57e237h.xn--5sa98523p; ᡆⴃ.󞢧̕; [V6]; xn--57e237h.xn--5sa98523p; ; ; # ᡆⴃ.̕
+xn--57e237h.xn--5sa649la993427a; ᡆⴃ.󞢧̕‍‍; [C2, V6]; xn--57e237h.xn--5sa649la993427a; ; ; # ᡆⴃ.̕
+xn--bnd320b.xn--5sa98523p; ᡆႣ.󞢧̕; [V6]; xn--bnd320b.xn--5sa98523p; ; ; # ᡆႣ.̕
+xn--bnd320b.xn--5sa649la993427a; ᡆႣ.󞢧̕‍‍; [C2, V6]; xn--bnd320b.xn--5sa649la993427a; ; ; # ᡆႣ.̕
+ᡆⴃ。󞢧̕‍‍; ᡆⴃ.󞢧̕‍‍; [C2, P1, V6]; xn--57e237h.xn--5sa649la993427a; ; xn--57e237h.xn--5sa98523p; [P1, V6] # ᡆⴃ.̕
+㭄‍ࡏ𑚵.ς𐮮‌‍; 㭄‍ࡏ𑚵.ς𐮮‌‍; [B5, B6, C1, C2]; xn--ewb962jfitku4r.xn--3xa895lda6932v; ; xn--ewb302xhu1l.xn--4xa0426k; [B5, B6] # 㭄ࡏ𑚵.ς𐮮
+㭄‍ࡏ𑚵.ς𐮮‌‍; ; [B5, B6, C1, C2]; xn--ewb962jfitku4r.xn--3xa895lda6932v; ; xn--ewb302xhu1l.xn--4xa0426k; [B5, B6] # 㭄ࡏ𑚵.ς𐮮
+㭄‍ࡏ𑚵.Σ𐮮‌‍; 㭄‍ࡏ𑚵.σ𐮮‌‍; [B5, B6, C1, C2]; xn--ewb962jfitku4r.xn--4xa695lda6932v; ; xn--ewb302xhu1l.xn--4xa0426k; [B5, B6] # 㭄ࡏ𑚵.σ𐮮
+㭄‍ࡏ𑚵.σ𐮮‌‍; ; [B5, B6, C1, C2]; xn--ewb962jfitku4r.xn--4xa695lda6932v; ; xn--ewb302xhu1l.xn--4xa0426k; [B5, B6] # 㭄ࡏ𑚵.σ𐮮
+xn--ewb302xhu1l.xn--4xa0426k; 㭄ࡏ𑚵.σ𐮮; [B5, B6]; xn--ewb302xhu1l.xn--4xa0426k; ; ; # 㭄ࡏ𑚵.σ𐮮
+xn--ewb962jfitku4r.xn--4xa695lda6932v; 㭄‍ࡏ𑚵.σ𐮮‌‍; [B5, B6, C1, C2]; xn--ewb962jfitku4r.xn--4xa695lda6932v; ; ; # 㭄ࡏ𑚵.σ𐮮
+xn--ewb962jfitku4r.xn--3xa895lda6932v; 㭄‍ࡏ𑚵.ς𐮮‌‍; [B5, B6, C1, C2]; xn--ewb962jfitku4r.xn--3xa895lda6932v; ; ; # 㭄ࡏ𑚵.ς𐮮
+㭄‍ࡏ𑚵.Σ𐮮‌‍; 㭄‍ࡏ𑚵.σ𐮮‌‍; [B5, B6, C1, C2]; xn--ewb962jfitku4r.xn--4xa695lda6932v; ; xn--ewb302xhu1l.xn--4xa0426k; [B5, B6] # 㭄ࡏ𑚵.σ𐮮
+㭄‍ࡏ𑚵.σ𐮮‌‍; 㭄‍ࡏ𑚵.σ𐮮‌‍; [B5, B6, C1, C2]; xn--ewb962jfitku4r.xn--4xa695lda6932v; ; xn--ewb302xhu1l.xn--4xa0426k; [B5, B6] # 㭄ࡏ𑚵.σ𐮮
+឵。𞯸ꡀ🄋; ឵.𞯸ꡀ🄋; [B1, B2, B3, B6, P1, V5, V6]; xn--03e.xn--8b9ar252dngd; ; ; # .ꡀ🄋
+xn--03e.xn--8b9ar252dngd; ឵.𞯸ꡀ🄋; [B1, B2, B3, B6, V5, V6]; xn--03e.xn--8b9ar252dngd; ; ; # .ꡀ🄋
+󐪺暑.⾑٨; 󐪺暑.襾٨; [B5, B6, P1, V6]; xn--tlvq3513e.xn--hib9228d; ; ; # 暑.襾٨
+󐪺暑.襾٨; ; [B5, B6, P1, V6]; xn--tlvq3513e.xn--hib9228d; ; ; # 暑.襾٨
+xn--tlvq3513e.xn--hib9228d; 󐪺暑.襾٨; [B5, B6, V6]; xn--tlvq3513e.xn--hib9228d; ; ; # 暑.襾٨
+󠄚≯ꡢ。࢑᷿; ≯ꡢ.࢑᷿; [B1, P1, V6]; xn--hdh7783c.xn--9xb680i; ; ; # ≯ꡢ.᷿
+󠄚≯ꡢ。࢑᷿; ≯ꡢ.࢑᷿; [B1, P1, V6]; xn--hdh7783c.xn--9xb680i; ; ; # ≯ꡢ.᷿
+xn--hdh7783c.xn--9xb680i; ≯ꡢ.࢑᷿; [B1, V6]; xn--hdh7783c.xn--9xb680i; ; ; # ≯ꡢ.᷿
+ﷃ𮁱୍𐨿.󐧤Ⴗ; كمم𮁱୍𐨿.󐧤Ⴗ; [B2, B3, P1, V6]; xn--fhbea662czx68a2tju.xn--vnd55511o; ; ; # كمم𮁱୍𐨿.Ⴗ
+كمم𮁱୍𐨿.󐧤Ⴗ; ; [B2, B3, P1, V6]; xn--fhbea662czx68a2tju.xn--vnd55511o; ; ; # كمم𮁱୍𐨿.Ⴗ
+كمم𮁱୍𐨿.󐧤ⴗ; ; [B2, B3, P1, V6]; xn--fhbea662czx68a2tju.xn--fljz2846h; ; ; # كمم𮁱୍𐨿.ⴗ
+xn--fhbea662czx68a2tju.xn--fljz2846h; كمم𮁱୍𐨿.󐧤ⴗ; [B2, B3, V6]; xn--fhbea662czx68a2tju.xn--fljz2846h; ; ; # كمم𮁱୍𐨿.ⴗ
+xn--fhbea662czx68a2tju.xn--vnd55511o; كمم𮁱୍𐨿.󐧤Ⴗ; [B2, B3, V6]; xn--fhbea662czx68a2tju.xn--vnd55511o; ; ; # كمم𮁱୍𐨿.Ⴗ
+ﷃ𮁱୍𐨿.󐧤ⴗ; كمم𮁱୍𐨿.󐧤ⴗ; [B2, B3, P1, V6]; xn--fhbea662czx68a2tju.xn--fljz2846h; ; ; # كمم𮁱୍𐨿.ⴗ
+𞀨。᭄򡛨𞎇; 𞀨.᭄򡛨𞎇; [P1, V5, V6]; xn--mi4h.xn--1uf6843smg20c; ; ; # 𞀨.᭄
+𞀨。᭄򡛨𞎇; 𞀨.᭄򡛨𞎇; [P1, V5, V6]; xn--mi4h.xn--1uf6843smg20c; ; ; # 𞀨.᭄
+xn--mi4h.xn--1uf6843smg20c; 𞀨.᭄򡛨𞎇; [V5, V6]; xn--mi4h.xn--1uf6843smg20c; ; ; # 𞀨.᭄
+󠣼‌.𐺰‌ᡟ; 󠣼‌.𐺰‌ᡟ; [B1, B2, B3, C1, P1, V6]; xn--0ug18531l.xn--v8e340bp21t; ; xn--q046e.xn--v8e7227j; [B1, B2, B3, P1, V6] # .ᡟ
+󠣼‌.𐺰‌ᡟ; ; [B1, B2, B3, C1, P1, V6]; xn--0ug18531l.xn--v8e340bp21t; ; xn--q046e.xn--v8e7227j; [B1, B2, B3, P1, V6] # .ᡟ
+xn--q046e.xn--v8e7227j; 󠣼.𐺰ᡟ; [B1, B2, B3, V6]; xn--q046e.xn--v8e7227j; ; ; # .ᡟ
+xn--0ug18531l.xn--v8e340bp21t; 󠣼‌.𐺰‌ᡟ; [B1, B2, B3, C1, V6]; xn--0ug18531l.xn--v8e340bp21t; ; ; # .ᡟ
+ᢛ󨅟ß.ጧ; ; [P1, V6]; xn--zca562jc642x.xn--p5d; ; xn--ss-7dp66033t.xn--p5d; # ᢛß.ጧ
+ᢛ󨅟SS.ጧ; ᢛ󨅟ss.ጧ; [P1, V6]; xn--ss-7dp66033t.xn--p5d; ; ; # ᢛss.ጧ
+ᢛ󨅟ss.ጧ; ; [P1, V6]; xn--ss-7dp66033t.xn--p5d; ; ; # ᢛss.ጧ
+ᢛ󨅟Ss.ጧ; ᢛ󨅟ss.ጧ; [P1, V6]; xn--ss-7dp66033t.xn--p5d; ; ; # ᢛss.ጧ
+xn--ss-7dp66033t.xn--p5d; ᢛ󨅟ss.ጧ; [V6]; xn--ss-7dp66033t.xn--p5d; ; ; # ᢛss.ጧ
+xn--zca562jc642x.xn--p5d; ᢛ󨅟ß.ጧ; [V6]; xn--zca562jc642x.xn--p5d; ; ; # ᢛß.ጧ
+⮒‌.񒚗‌; ; [C1, P1, V6]; xn--0ugx66b.xn--0ugz2871c; ; xn--b9i.xn--5p9y; [P1, V6] # ⮒.
+xn--b9i.xn--5p9y; ⮒.񒚗; [V6]; xn--b9i.xn--5p9y; ; ; # ⮒.
+xn--0ugx66b.xn--0ugz2871c; ⮒‌.񒚗‌; [C1, V6]; xn--0ugx66b.xn--0ugz2871c; ; ; # ⮒.
+𞤂񹞁𐹯。Ⴜ; 𞤤񹞁𐹯.Ⴜ; [B2, P1, V6]; xn--no0dr648a51o3b.xn--0nd; ; ; # 𞤤𐹯.Ⴜ
+𞤤񹞁𐹯。ⴜ; 𞤤񹞁𐹯.ⴜ; [B2, P1, V6]; xn--no0dr648a51o3b.xn--klj; ; ; # 𞤤𐹯.ⴜ
+xn--no0dr648a51o3b.xn--klj; 𞤤񹞁𐹯.ⴜ; [B2, V6]; xn--no0dr648a51o3b.xn--klj; ; ; # 𞤤𐹯.ⴜ
+xn--no0dr648a51o3b.xn--0nd; 𞤤񹞁𐹯.Ⴜ; [B2, V6]; xn--no0dr648a51o3b.xn--0nd; ; ; # 𞤤𐹯.Ⴜ
+𞤂񹞁𐹯。ⴜ; 𞤤񹞁𐹯.ⴜ; [B2, P1, V6]; xn--no0dr648a51o3b.xn--klj; ; ; # 𞤤𐹯.ⴜ
+𐹵⮣‌𑄰。񷴿ﲷ; 𐹵⮣‌𑄰.񷴿ضم; [B1, B5, B6, C1, P1, V6]; xn--0ug586bcj8p7jc.xn--1gb4a66004i; ; xn--s9i5458e7yb.xn--1gb4a66004i; [B1, B5, B6, P1, V6] # 𐹵⮣𑄰.ضم
+𐹵⮣‌𑄰。񷴿ضم; 𐹵⮣‌𑄰.񷴿ضم; [B1, B5, B6, C1, P1, V6]; xn--0ug586bcj8p7jc.xn--1gb4a66004i; ; xn--s9i5458e7yb.xn--1gb4a66004i; [B1, B5, B6, P1, V6] # 𐹵⮣𑄰.ضم
+xn--s9i5458e7yb.xn--1gb4a66004i; 𐹵⮣𑄰.񷴿ضم; [B1, B5, B6, V6]; xn--s9i5458e7yb.xn--1gb4a66004i; ; ; # 𐹵⮣𑄰.ضم
+xn--0ug586bcj8p7jc.xn--1gb4a66004i; 𐹵⮣‌𑄰.񷴿ضم; [B1, B5, B6, C1, V6]; xn--0ug586bcj8p7jc.xn--1gb4a66004i; ; ; # 𐹵⮣𑄰.ضم
+Ⴒ。デß𞤵్; Ⴒ.デß𞤵్; [B5, B6, P1, V6]; xn--qnd.xn--zca669cmr3a0f28a; ; xn--qnd.xn--ss-9nh3648ahh20b; # Ⴒ.デß𞤵్
+Ⴒ。デß𞤵్; Ⴒ.デß𞤵్; [B5, B6, P1, V6]; xn--qnd.xn--zca669cmr3a0f28a; ; xn--qnd.xn--ss-9nh3648ahh20b; # Ⴒ.デß𞤵్
+ⴒ。デß𞤵్; ⴒ.デß𞤵్; [B5, B6]; xn--9kj.xn--zca669cmr3a0f28a; ; xn--9kj.xn--ss-9nh3648ahh20b; # ⴒ.デß𞤵్
+ⴒ。デß𞤵్; ⴒ.デß𞤵్; [B5, B6]; xn--9kj.xn--zca669cmr3a0f28a; ; xn--9kj.xn--ss-9nh3648ahh20b; # ⴒ.デß𞤵్
+Ⴒ。デSS𞤓్; Ⴒ.デss𞤵్; [B5, B6, P1, V6]; xn--qnd.xn--ss-9nh3648ahh20b; ; ; # Ⴒ.デss𞤵్
+Ⴒ。デSS𞤓్; Ⴒ.デss𞤵్; [B5, B6, P1, V6]; xn--qnd.xn--ss-9nh3648ahh20b; ; ; # Ⴒ.デss𞤵్
+ⴒ。デss𞤵్; ⴒ.デss𞤵్; [B5, B6]; xn--9kj.xn--ss-9nh3648ahh20b; ; ; # ⴒ.デss𞤵్
+ⴒ。デss𞤵్; ⴒ.デss𞤵్; [B5, B6]; xn--9kj.xn--ss-9nh3648ahh20b; ; ; # ⴒ.デss𞤵్
+Ⴒ。デSs𞤵్; Ⴒ.デss𞤵్; [B5, B6, P1, V6]; xn--qnd.xn--ss-9nh3648ahh20b; ; ; # Ⴒ.デss𞤵్
+Ⴒ。デSs𞤵్; Ⴒ.デss𞤵్; [B5, B6, P1, V6]; xn--qnd.xn--ss-9nh3648ahh20b; ; ; # Ⴒ.デss𞤵్
+xn--qnd.xn--ss-9nh3648ahh20b; Ⴒ.デss𞤵్; [B5, B6, V6]; xn--qnd.xn--ss-9nh3648ahh20b; ; ; # Ⴒ.デss𞤵్
+xn--9kj.xn--ss-9nh3648ahh20b; ⴒ.デss𞤵్; [B5, B6]; xn--9kj.xn--ss-9nh3648ahh20b; ; ; # ⴒ.デss𞤵్
+xn--9kj.xn--zca669cmr3a0f28a; ⴒ.デß𞤵్; [B5, B6]; xn--9kj.xn--zca669cmr3a0f28a; ; ; # ⴒ.デß𞤵్
+xn--qnd.xn--zca669cmr3a0f28a; Ⴒ.デß𞤵్; [B5, B6, V6]; xn--qnd.xn--zca669cmr3a0f28a; ; ; # Ⴒ.デß𞤵్
+Ⴒ。デSS𞤵్; Ⴒ.デss𞤵్; [B5, B6, P1, V6]; xn--qnd.xn--ss-9nh3648ahh20b; ; ; # Ⴒ.デss𞤵్
+Ⴒ。デSS𞤵్; Ⴒ.デss𞤵్; [B5, B6, P1, V6]; xn--qnd.xn--ss-9nh3648ahh20b; ; ; # Ⴒ.デss𞤵్
+𑁿്.7-ߒ; 𑁿്.7-ߒ; [B1, B3, B6, V5]; xn--wxc1283k.xn--7--yue; ; ; # 𑁿്.7-ߒ
+𑁿്.7-ߒ; ; [B1, B3, B6, V5]; xn--wxc1283k.xn--7--yue; ; ; # 𑁿്.7-ߒ
+xn--wxc1283k.xn--7--yue; 𑁿്.7-ߒ; [B1, B3, B6, V5]; xn--wxc1283k.xn--7--yue; ; ; # 𑁿്.7-ߒ
+≯𑜫󠭇.᜴񒞤𑍬ᢧ; ; [P1, V5, V6]; xn--hdhx157g68o0g.xn--c0e65eu616c34o7a; ; ; # ≯𑜫.᜴𑍬ᢧ
+≯𑜫󠭇.᜴񒞤𑍬ᢧ; ≯𑜫󠭇.᜴񒞤𑍬ᢧ; [P1, V5, V6]; xn--hdhx157g68o0g.xn--c0e65eu616c34o7a; ; ; # ≯𑜫.᜴𑍬ᢧ
+xn--hdhx157g68o0g.xn--c0e65eu616c34o7a; ≯𑜫󠭇.᜴񒞤𑍬ᢧ; [V5, V6]; xn--hdhx157g68o0g.xn--c0e65eu616c34o7a; ; ; # ≯𑜫.᜴𑍬ᢧ
+ᷛ򎐙Ⴗ쏔。ށ; ᷛ򎐙Ⴗ쏔.ށ; [B1, P1, V5, V6]; xn--vnd148d733ky6n9e.xn--iqb; ; ; # ᷛႷ쏔.ށ
+ᷛ򎐙Ⴗ쏔。ށ; ᷛ򎐙Ⴗ쏔.ށ; [B1, P1, V5, V6]; xn--vnd148d733ky6n9e.xn--iqb; ; ; # ᷛႷ쏔.ށ
+ᷛ򎐙ⴗ쏔。ށ; ᷛ򎐙ⴗ쏔.ށ; [B1, P1, V5, V6]; xn--zegy26dw47iy6w2f.xn--iqb; ; ; # ᷛⴗ쏔.ށ
+ᷛ򎐙ⴗ쏔。ށ; ᷛ򎐙ⴗ쏔.ށ; [B1, P1, V5, V6]; xn--zegy26dw47iy6w2f.xn--iqb; ; ; # ᷛⴗ쏔.ށ
+xn--zegy26dw47iy6w2f.xn--iqb; ᷛ򎐙ⴗ쏔.ށ; [B1, V5, V6]; xn--zegy26dw47iy6w2f.xn--iqb; ; ; # ᷛⴗ쏔.ށ
+xn--vnd148d733ky6n9e.xn--iqb; ᷛ򎐙Ⴗ쏔.ށ; [B1, V5, V6]; xn--vnd148d733ky6n9e.xn--iqb; ; ; # ᷛႷ쏔.ށ
+ß。𐋳Ⴌྸ; ß.𐋳Ⴌྸ; [P1, V6]; xn--zca.xn--lgd10cu829c; ; ss.xn--lgd10cu829c; # ß.𐋳Ⴌྸ
+ß。𐋳Ⴌྸ; ß.𐋳Ⴌྸ; [P1, V6]; xn--zca.xn--lgd10cu829c; ; ss.xn--lgd10cu829c; # ß.𐋳Ⴌྸ
+ß。𐋳ⴌྸ; ß.𐋳ⴌྸ; ; xn--zca.xn--lgd921mvv0m; ; ss.xn--lgd921mvv0m; # ß.𐋳ⴌྸ
+SS。𐋳Ⴌྸ; ss.𐋳Ⴌྸ; [P1, V6]; ss.xn--lgd10cu829c; ; ; # ss.𐋳Ⴌྸ
+ss。𐋳ⴌྸ; ss.𐋳ⴌྸ; ; ss.xn--lgd921mvv0m; ; ; # ss.𐋳ⴌྸ
+Ss。𐋳Ⴌྸ; ss.𐋳Ⴌྸ; [P1, V6]; ss.xn--lgd10cu829c; ; ; # ss.𐋳Ⴌྸ
+ss.xn--lgd10cu829c; ss.𐋳Ⴌྸ; [V6]; ss.xn--lgd10cu829c; ; ; # ss.𐋳Ⴌྸ
+ss.xn--lgd921mvv0m; ss.𐋳ⴌྸ; ; ss.xn--lgd921mvv0m; ; ; # ss.𐋳ⴌྸ
+ss.𐋳ⴌྸ; ; ; ss.xn--lgd921mvv0m; ; ; # ss.𐋳ⴌྸ
+SS.𐋳Ⴌྸ; ss.𐋳Ⴌྸ; [P1, V6]; ss.xn--lgd10cu829c; ; ; # ss.𐋳Ⴌྸ
+Ss.𐋳Ⴌྸ; ss.𐋳Ⴌྸ; [P1, V6]; ss.xn--lgd10cu829c; ; ; # ss.𐋳Ⴌྸ
+xn--zca.xn--lgd921mvv0m; ß.𐋳ⴌྸ; ; xn--zca.xn--lgd921mvv0m; ; ; # ß.𐋳ⴌྸ
+ß.𐋳ⴌྸ; ; ; xn--zca.xn--lgd921mvv0m; ; ss.xn--lgd921mvv0m; # ß.𐋳ⴌྸ
+xn--zca.xn--lgd10cu829c; ß.𐋳Ⴌྸ; [V6]; xn--zca.xn--lgd10cu829c; ; ; # ß.𐋳Ⴌྸ
+ß。𐋳ⴌྸ; ß.𐋳ⴌྸ; ; xn--zca.xn--lgd921mvv0m; ; ss.xn--lgd921mvv0m; # ß.𐋳ⴌྸ
+SS。𐋳Ⴌྸ; ss.𐋳Ⴌྸ; [P1, V6]; ss.xn--lgd10cu829c; ; ; # ss.𐋳Ⴌྸ
+ss。𐋳ⴌྸ; ss.𐋳ⴌྸ; ; ss.xn--lgd921mvv0m; ; ; # ss.𐋳ⴌྸ
+Ss。𐋳Ⴌྸ; ss.𐋳Ⴌྸ; [P1, V6]; ss.xn--lgd10cu829c; ; ; # ss.𐋳Ⴌྸ
+-ڞ𐶡.‌⾝্; -ڞ𐶡.‌身্; [B1, C1, P1, V3, V6]; xn----stc7013r.xn--b7b305imj2f; ; xn----stc7013r.xn--b7b1419d; [B1, P1, V3, V6] # -ڞ.身্
+-ڞ𐶡.‌身্; ; [B1, C1, P1, V3, V6]; xn----stc7013r.xn--b7b305imj2f; ; xn----stc7013r.xn--b7b1419d; [B1, P1, V3, V6] # -ڞ.身্
+xn----stc7013r.xn--b7b1419d; -ڞ𐶡.身্; [B1, V3, V6]; xn----stc7013r.xn--b7b1419d; ; ; # -ڞ.身্
+xn----stc7013r.xn--b7b305imj2f; -ڞ𐶡.‌身্; [B1, C1, V3, V6]; xn----stc7013r.xn--b7b305imj2f; ; ; # -ڞ.身্
+😮ݤ𑈵𞀖.💅‍; 😮ݤ𑈵𞀖.💅‍; [B1, C2]; xn--opb4277kuc7elqsa.xn--1ug5265p; ; xn--opb4277kuc7elqsa.xn--kr8h; [B1] # 😮ݤ𑈵𞀖.💅
+😮ݤ𑈵𞀖.💅‍; ; [B1, C2]; xn--opb4277kuc7elqsa.xn--1ug5265p; ; xn--opb4277kuc7elqsa.xn--kr8h; [B1] # 😮ݤ𑈵𞀖.💅
+xn--opb4277kuc7elqsa.xn--kr8h; 😮ݤ𑈵𞀖.💅; [B1]; xn--opb4277kuc7elqsa.xn--kr8h; ; ; # 😮ݤ𑈵𞀖.💅
+xn--opb4277kuc7elqsa.xn--1ug5265p; 😮ݤ𑈵𞀖.💅‍; [B1, C2]; xn--opb4277kuc7elqsa.xn--1ug5265p; ; ; # 😮ݤ𑈵𞀖.💅
+ࣲ‍꙳ܒ.ᢏ‌󠍄; ; [B1, B6, C1, C2, P1, V5, V6]; xn--cnb37g904be26j.xn--89e849ax9363a; ; xn--cnb37gdy00a.xn--89e02253p; [B1, B6, P1, V5, V6] # ࣲ꙳ܒ.ᢏ
+xn--cnb37gdy00a.xn--89e02253p; ࣲ꙳ܒ.ᢏ󠍄; [B1, B6, V5, V6]; xn--cnb37gdy00a.xn--89e02253p; ; ; # ࣲ꙳ܒ.ᢏ
+xn--cnb37g904be26j.xn--89e849ax9363a; ࣲ‍꙳ܒ.ᢏ‌󠍄; [B1, B6, C1, C2, V5, V6]; xn--cnb37g904be26j.xn--89e849ax9363a; ; ; # ࣲ꙳ܒ.ᢏ
+Ⴑ.ڿ𞯓ᠲ; Ⴑ.ڿ𞯓ᠲ; [B2, B3, P1, V6]; xn--pnd.xn--ykb840gd555a; ; ; # Ⴑ.ڿᠲ
+Ⴑ.ڿ𞯓ᠲ; ; [B2, B3, P1, V6]; xn--pnd.xn--ykb840gd555a; ; ; # Ⴑ.ڿᠲ
+ⴑ.ڿ𞯓ᠲ; ; [B2, B3, P1, V6]; xn--8kj.xn--ykb840gd555a; ; ; # ⴑ.ڿᠲ
+xn--8kj.xn--ykb840gd555a; ⴑ.ڿ𞯓ᠲ; [B2, B3, V6]; xn--8kj.xn--ykb840gd555a; ; ; # ⴑ.ڿᠲ
+xn--pnd.xn--ykb840gd555a; Ⴑ.ڿ𞯓ᠲ; [B2, B3, V6]; xn--pnd.xn--ykb840gd555a; ; ; # Ⴑ.ڿᠲ
+ⴑ.ڿ𞯓ᠲ; ⴑ.ڿ𞯓ᠲ; [B2, B3, P1, V6]; xn--8kj.xn--ykb840gd555a; ; ; # ⴑ.ڿᠲ
+ᩚ𛦝్。𚝬𝟵; ᩚ𛦝్.𚝬9; [P1, V5, V6]; xn--lqc703ebm93a.xn--9-000p; ; ; # ᩚ్.9
+ᩚ𛦝్。𚝬9; ᩚ𛦝్.𚝬9; [P1, V5, V6]; xn--lqc703ebm93a.xn--9-000p; ; ; # ᩚ్.9
+xn--lqc703ebm93a.xn--9-000p; ᩚ𛦝్.𚝬9; [V5, V6]; xn--lqc703ebm93a.xn--9-000p; ; ; # ᩚ్.9
+‌ڠ𿺆𝟗。Ⴣ꒘ﳐ񐘖; ‌ڠ𿺆9.Ⴣ꒘مخ񐘖; [B1, B5, C1, P1, V6]; xn--9-vtc736qts91g.xn--tgb9bz61cfn8mw3t2c; ; xn--9-vtc42319e.xn--tgb9bz61cfn8mw3t2c; [B2, B5, P1, V6] # ڠ9.Ⴣ꒘مخ
+‌ڠ𿺆9。Ⴣ꒘مخ񐘖; ‌ڠ𿺆9.Ⴣ꒘مخ񐘖; [B1, B5, C1, P1, V6]; xn--9-vtc736qts91g.xn--tgb9bz61cfn8mw3t2c; ; xn--9-vtc42319e.xn--tgb9bz61cfn8mw3t2c; [B2, B5, P1, V6] # ڠ9.Ⴣ꒘مخ
+‌ڠ𿺆9。ⴣ꒘مخ񐘖; ‌ڠ𿺆9.ⴣ꒘مخ񐘖; [B1, B5, C1, P1, V6]; xn--9-vtc736qts91g.xn--tgb9bz87p833hw316c; ; xn--9-vtc42319e.xn--tgb9bz87p833hw316c; [B2, B5, P1, V6] # ڠ9.ⴣ꒘مخ
+xn--9-vtc42319e.xn--tgb9bz87p833hw316c; ڠ𿺆9.ⴣ꒘مخ񐘖; [B2, B5, V6]; xn--9-vtc42319e.xn--tgb9bz87p833hw316c; ; ; # ڠ9.ⴣ꒘مخ
+xn--9-vtc736qts91g.xn--tgb9bz87p833hw316c; ‌ڠ𿺆9.ⴣ꒘مخ񐘖; [B1, B5, C1, V6]; xn--9-vtc736qts91g.xn--tgb9bz87p833hw316c; ; ; # ڠ9.ⴣ꒘مخ
+xn--9-vtc42319e.xn--tgb9bz61cfn8mw3t2c; ڠ𿺆9.Ⴣ꒘مخ񐘖; [B2, B5, V6]; xn--9-vtc42319e.xn--tgb9bz61cfn8mw3t2c; ; ; # ڠ9.Ⴣ꒘مخ
+xn--9-vtc736qts91g.xn--tgb9bz61cfn8mw3t2c; ‌ڠ𿺆9.Ⴣ꒘مخ񐘖; [B1, B5, C1, V6]; xn--9-vtc736qts91g.xn--tgb9bz61cfn8mw3t2c; ; ; # ڠ9.Ⴣ꒘مخ
+‌ڠ𿺆𝟗。ⴣ꒘ﳐ񐘖; ‌ڠ𿺆9.ⴣ꒘مخ񐘖; [B1, B5, C1, P1, V6]; xn--9-vtc736qts91g.xn--tgb9bz87p833hw316c; ; xn--9-vtc42319e.xn--tgb9bz87p833hw316c; [B2, B5, P1, V6] # ڠ9.ⴣ꒘مخ
+ᡖ。̟񗛨ஂ-; ᡖ.̟񗛨ஂ-; [P1, V3, V5, V6]; xn--m8e.xn----mdb555dkk71m; ; ; # ᡖ.̟ஂ-
+ᡖ。̟񗛨ஂ-; ᡖ.̟񗛨ஂ-; [P1, V3, V5, V6]; xn--m8e.xn----mdb555dkk71m; ; ; # ᡖ.̟ஂ-
+xn--m8e.xn----mdb555dkk71m; ᡖ.̟񗛨ஂ-; [V3, V5, V6]; xn--m8e.xn----mdb555dkk71m; ; ; # ᡖ.̟ஂ-
+𞠠浘。絧𞀀; 𞠠浘.絧𞀀; [B2, B3]; xn--e0wp491f.xn--ud0a3573e; ; ; # 𞠠浘.絧𞀀
+xn--e0wp491f.xn--ud0a3573e; 𞠠浘.絧𞀀; [B2, B3]; xn--e0wp491f.xn--ud0a3573e; ; ; # 𞠠浘.絧𞀀
+֖Ⴋ.𝟳≯︒︊; ֖Ⴋ.7≯︒; [P1, V5, V6]; xn--hcb887c.xn--7-pgoy530h; ; ; # ֖Ⴋ.7≯︒
+֖Ⴋ.𝟳≯︒︊; ֖Ⴋ.7≯︒; [P1, V5, V6]; xn--hcb887c.xn--7-pgoy530h; ; ; # ֖Ⴋ.7≯︒
+֖Ⴋ.7≯。︊; ֖Ⴋ.7≯.; [P1, V5, V6]; xn--hcb887c.xn--7-pgo.; ; ; # ֖Ⴋ.7≯.
+֖Ⴋ.7≯。︊; ֖Ⴋ.7≯.; [P1, V5, V6]; xn--hcb887c.xn--7-pgo.; ; ; # ֖Ⴋ.7≯.
+֖ⴋ.7≯。︊; ֖ⴋ.7≯.; [P1, V5, V6]; xn--hcb613r.xn--7-pgo.; ; ; # ֖ⴋ.7≯.
+֖ⴋ.7≯。︊; ֖ⴋ.7≯.; [P1, V5, V6]; xn--hcb613r.xn--7-pgo.; ; ; # ֖ⴋ.7≯.
+xn--hcb613r.xn--7-pgo.; ֖ⴋ.7≯.; [V5, V6]; xn--hcb613r.xn--7-pgo.; ; ; # ֖ⴋ.7≯.
+xn--hcb887c.xn--7-pgo.; ֖Ⴋ.7≯.; [V5, V6]; xn--hcb887c.xn--7-pgo.; ; ; # ֖Ⴋ.7≯.
+֖ⴋ.𝟳≯︒︊; ֖ⴋ.7≯︒; [P1, V5, V6]; xn--hcb613r.xn--7-pgoy530h; ; ; # ֖ⴋ.7≯︒
+֖ⴋ.𝟳≯︒︊; ֖ⴋ.7≯︒; [P1, V5, V6]; xn--hcb613r.xn--7-pgoy530h; ; ; # ֖ⴋ.7≯︒
+xn--hcb613r.xn--7-pgoy530h; ֖ⴋ.7≯︒; [V5, V6]; xn--hcb613r.xn--7-pgoy530h; ; ; # ֖ⴋ.7≯︒
+xn--hcb887c.xn--7-pgoy530h; ֖Ⴋ.7≯︒; [V5, V6]; xn--hcb887c.xn--7-pgoy530h; ; ; # ֖Ⴋ.7≯︒
+‍F𑓂。󠺨︒ݾ𐹢; ‍f𑓂.󠺨︒ݾ𐹢; [B1, C2, P1, V6]; xn--f-tgn9761i.xn--fqb1637j8hky9452a; ; xn--f-kq9i.xn--fqb1637j8hky9452a; [B1, P1, V6] # f𑓂.︒ݾ𐹢
+‍F𑓂。󠺨。ݾ𐹢; ‍f𑓂.󠺨.ݾ𐹢; [B1, C2, P1, V6]; xn--f-tgn9761i.xn--7656e.xn--fqb4175k; ; xn--f-kq9i.xn--7656e.xn--fqb4175k; [B1, P1, V6] # f𑓂..ݾ𐹢
+‍f𑓂。󠺨。ݾ𐹢; ‍f𑓂.󠺨.ݾ𐹢; [B1, C2, P1, V6]; xn--f-tgn9761i.xn--7656e.xn--fqb4175k; ; xn--f-kq9i.xn--7656e.xn--fqb4175k; [B1, P1, V6] # f𑓂..ݾ𐹢
+xn--f-kq9i.xn--7656e.xn--fqb4175k; f𑓂.󠺨.ݾ𐹢; [B1, V6]; xn--f-kq9i.xn--7656e.xn--fqb4175k; ; ; # f𑓂..ݾ𐹢
+xn--f-tgn9761i.xn--7656e.xn--fqb4175k; ‍f𑓂.󠺨.ݾ𐹢; [B1, C2, V6]; xn--f-tgn9761i.xn--7656e.xn--fqb4175k; ; ; # f𑓂..ݾ𐹢
+‍f𑓂。󠺨︒ݾ𐹢; ‍f𑓂.󠺨︒ݾ𐹢; [B1, C2, P1, V6]; xn--f-tgn9761i.xn--fqb1637j8hky9452a; ; xn--f-kq9i.xn--fqb1637j8hky9452a; [B1, P1, V6] # f𑓂.︒ݾ𐹢
+xn--f-kq9i.xn--fqb1637j8hky9452a; f𑓂.󠺨︒ݾ𐹢; [B1, V6]; xn--f-kq9i.xn--fqb1637j8hky9452a; ; ; # f𑓂.︒ݾ𐹢
+xn--f-tgn9761i.xn--fqb1637j8hky9452a; ‍f𑓂.󠺨︒ݾ𐹢; [B1, C2, V6]; xn--f-tgn9761i.xn--fqb1637j8hky9452a; ; ; # f𑓂.︒ݾ𐹢
+ࡅ🄇𐼗︒。𐹻𑜫; ࡅ🄇𐼗︒.𐹻𑜫; [B1, B3, P1, V6]; xn--3vb4696jpxkjh7s.xn--zo0di2m; ; ; # ࡅ🄇𐼗︒.𐹻𑜫
+ࡅ6,𐼗。。𐹻𑜫; ࡅ6,𐼗..𐹻𑜫; [B1, P1, V6, X4_2]; xn--6,-r4e4420y..xn--zo0di2m; [B1, P1, V6, A4_2]; ; # ࡅ6,𐼗..𐹻𑜫
+xn--6,-r4e4420y..xn--zo0di2m; ࡅ6,𐼗..𐹻𑜫; [B1, P1, V6, X4_2]; xn--6,-r4e4420y..xn--zo0di2m; [B1, P1, V6, A4_2]; ; # ࡅ6,𐼗..𐹻𑜫
+xn--3vb4696jpxkjh7s.xn--zo0di2m; ࡅ🄇𐼗︒.𐹻𑜫; [B1, B3, V6]; xn--3vb4696jpxkjh7s.xn--zo0di2m; ; ; # ࡅ🄇𐼗︒.𐹻𑜫
+𐹈.᷀𑈱𐦭; ; [B1, P1, V5, V6]; xn--jn0d.xn--7dg0871h3lf; ; ; # .᷀𑈱𐦭
+xn--jn0d.xn--7dg0871h3lf; 𐹈.᷀𑈱𐦭; [B1, V5, V6]; xn--jn0d.xn--7dg0871h3lf; ; ; # .᷀𑈱𐦭
+Ⴂ䠺。𞤃񅏎󙮦ړ; Ⴂ䠺.𞤥񅏎󙮦ړ; [B2, P1, V6]; xn--9md875z.xn--pjb9818vg4xno967d; ; ; # Ⴂ䠺.𞤥ړ
+ⴂ䠺。𞤥񅏎󙮦ړ; ⴂ䠺.𞤥񅏎󙮦ړ; [B2, P1, V6]; xn--tkj638f.xn--pjb9818vg4xno967d; ; ; # ⴂ䠺.𞤥ړ
+xn--tkj638f.xn--pjb9818vg4xno967d; ⴂ䠺.𞤥񅏎󙮦ړ; [B2, V6]; xn--tkj638f.xn--pjb9818vg4xno967d; ; ; # ⴂ䠺.𞤥ړ
+xn--9md875z.xn--pjb9818vg4xno967d; Ⴂ䠺.𞤥񅏎󙮦ړ; [B2, V6]; xn--9md875z.xn--pjb9818vg4xno967d; ; ; # Ⴂ䠺.𞤥ړ
+ⴂ䠺。𞤃񅏎󙮦ړ; ⴂ䠺.𞤥񅏎󙮦ړ; [B2, P1, V6]; xn--tkj638f.xn--pjb9818vg4xno967d; ; ; # ⴂ䠺.𞤥ړ
+🄇伐︒.𜙚꣄; ; [P1, V6]; xn--woqs083bel0g.xn--0f9ao925c; ; ; # 🄇伐︒.꣄
+6,伐。.𜙚꣄; 6,伐..𜙚꣄; [P1, V6, X4_2]; xn--6,-7i3c..xn--0f9ao925c; [P1, V6, A4_2]; ; # 6,伐..꣄
+xn--6,-7i3c..xn--0f9ao925c; 6,伐..𜙚꣄; [P1, V6, X4_2]; xn--6,-7i3c..xn--0f9ao925c; [P1, V6, A4_2]; ; # 6,伐..꣄
+xn--woqs083bel0g.xn--0f9ao925c; 🄇伐︒.𜙚꣄; [V6]; xn--woqs083bel0g.xn--0f9ao925c; ; ; # 🄇伐︒.꣄
+‍𐹠꯭。‍𐫓Ⴚ𑂹; ‍𐹠꯭.‍𐫓Ⴚ𑂹; [B1, C2, P1, V6]; xn--1ugz126coy7bdbm.xn--ynd959evs1pv6e; ; xn--429az70n29i.xn--ynd3619jqyd; [B1, B2, B3, P1, V6] # 𐹠꯭.𐫓Ⴚ𑂹
+‍𐹠꯭。‍𐫓ⴚ𑂹; ‍𐹠꯭.‍𐫓ⴚ𑂹; [B1, C2, P1, V6]; xn--1ugz126coy7bdbm.xn--1ug062chv7ov6e; ; xn--429az70n29i.xn--ilj7702eqyd; [B1, B2, B3, P1, V6] # 𐹠꯭.𐫓ⴚ𑂹
+xn--429az70n29i.xn--ilj7702eqyd; 𐹠꯭.𐫓ⴚ𑂹; [B1, B2, B3, V6]; xn--429az70n29i.xn--ilj7702eqyd; ; ; # 𐹠꯭.𐫓ⴚ𑂹
+xn--1ugz126coy7bdbm.xn--1ug062chv7ov6e; ‍𐹠꯭.‍𐫓ⴚ𑂹; [B1, C2, V6]; xn--1ugz126coy7bdbm.xn--1ug062chv7ov6e; ; ; # 𐹠꯭.𐫓ⴚ𑂹
+xn--429az70n29i.xn--ynd3619jqyd; 𐹠꯭.𐫓Ⴚ𑂹; [B1, B2, B3, V6]; xn--429az70n29i.xn--ynd3619jqyd; ; ; # 𐹠꯭.𐫓Ⴚ𑂹
+xn--1ugz126coy7bdbm.xn--ynd959evs1pv6e; ‍𐹠꯭.‍𐫓Ⴚ𑂹; [B1, C2, V6]; xn--1ugz126coy7bdbm.xn--ynd959evs1pv6e; ; ; # 𐹠꯭.𐫓Ⴚ𑂹
+󠆠.񷐴󌟈; .񷐴󌟈; [P1, V6, X4_2]; .xn--rx21bhv12i; [P1, V6, A4_2]; ; # .
+󠆠.񷐴󌟈; .񷐴󌟈; [P1, V6, X4_2]; .xn--rx21bhv12i; [P1, V6, A4_2]; ; # .
+.xn--rx21bhv12i; .񷐴󌟈; [V6, X4_2]; .xn--rx21bhv12i; [V6, A4_2]; ; # .
+𐫃‌Ⴆ.≠𞷙; ; [B1, B2, B3, C1, P1, V6]; xn--end799ekr1p.xn--1ch2802p; ; xn--end1719j.xn--1ch2802p; [B1, B2, B3, P1, V6] # 𐫃Ⴆ.≠
+𐫃‌Ⴆ.≠𞷙; 𐫃‌Ⴆ.≠𞷙; [B1, B2, B3, C1, P1, V6]; xn--end799ekr1p.xn--1ch2802p; ; xn--end1719j.xn--1ch2802p; [B1, B2, B3, P1, V6] # 𐫃Ⴆ.≠
+𐫃‌ⴆ.≠𞷙; 𐫃‌ⴆ.≠𞷙; [B1, B2, B3, C1, P1, V6]; xn--0ug132csv7o.xn--1ch2802p; ; xn--xkjz802e.xn--1ch2802p; [B1, B2, B3, P1, V6] # 𐫃ⴆ.≠
+𐫃‌ⴆ.≠𞷙; ; [B1, B2, B3, C1, P1, V6]; xn--0ug132csv7o.xn--1ch2802p; ; xn--xkjz802e.xn--1ch2802p; [B1, B2, B3, P1, V6] # 𐫃ⴆ.≠
+xn--xkjz802e.xn--1ch2802p; 𐫃ⴆ.≠𞷙; [B1, B2, B3, V6]; xn--xkjz802e.xn--1ch2802p; ; ; # 𐫃ⴆ.≠
+xn--0ug132csv7o.xn--1ch2802p; 𐫃‌ⴆ.≠𞷙; [B1, B2, B3, C1, V6]; xn--0ug132csv7o.xn--1ch2802p; ; ; # 𐫃ⴆ.≠
+xn--end1719j.xn--1ch2802p; 𐫃Ⴆ.≠𞷙; [B1, B2, B3, V6]; xn--end1719j.xn--1ch2802p; ; ; # 𐫃Ⴆ.≠
+xn--end799ekr1p.xn--1ch2802p; 𐫃‌Ⴆ.≠𞷙; [B1, B2, B3, C1, V6]; xn--end799ekr1p.xn--1ch2802p; ; ; # 𐫃Ⴆ.≠
+󠁲𙩢𝟥ꘌ.ࡁ; 󠁲𙩢3ꘌ.ࡁ; [B1, P1, V6]; xn--3-0g3es485d8i15h.xn--zvb; ; ; # 3ꘌ.ࡁ
+󠁲𙩢3ꘌ.ࡁ; ; [B1, P1, V6]; xn--3-0g3es485d8i15h.xn--zvb; ; ; # 3ꘌ.ࡁ
+xn--3-0g3es485d8i15h.xn--zvb; 󠁲𙩢3ꘌ.ࡁ; [B1, V6]; xn--3-0g3es485d8i15h.xn--zvb; ; ; # 3ꘌ.ࡁ
+-.ᢆ󡲣-; ; [P1, V3, V5, V6]; -.xn----pbkx6497q; ; ; # -.ᢆ-
+-.xn----pbkx6497q; -.ᢆ󡲣-; [V3, V5, V6]; -.xn----pbkx6497q; ; ; # -.ᢆ-
+󲚗‌。‌𞰆ς; 󲚗‌.‌𞰆ς; [B1, B6, C1, P1, V6]; xn--0ug76062m.xn--3xa795lhn92a; ; xn--qp42f.xn--4xa3011w; [B2, B3, P1, V6] # .ς
+󲚗‌。‌𞰆ς; 󲚗‌.‌𞰆ς; [B1, B6, C1, P1, V6]; xn--0ug76062m.xn--3xa795lhn92a; ; xn--qp42f.xn--4xa3011w; [B2, B3, P1, V6] # .ς
+󲚗‌。‌𞰆Σ; 󲚗‌.‌𞰆σ; [B1, B6, C1, P1, V6]; xn--0ug76062m.xn--4xa595lhn92a; ; xn--qp42f.xn--4xa3011w; [B2, B3, P1, V6] # .σ
+󲚗‌。‌𞰆σ; 󲚗‌.‌𞰆σ; [B1, B6, C1, P1, V6]; xn--0ug76062m.xn--4xa595lhn92a; ; xn--qp42f.xn--4xa3011w; [B2, B3, P1, V6] # .σ
+xn--qp42f.xn--4xa3011w; 󲚗.𞰆σ; [B2, B3, V6]; xn--qp42f.xn--4xa3011w; ; ; # .σ
+xn--0ug76062m.xn--4xa595lhn92a; 󲚗‌.‌𞰆σ; [B1, B6, C1, V6]; xn--0ug76062m.xn--4xa595lhn92a; ; ; # .σ
+xn--0ug76062m.xn--3xa795lhn92a; 󲚗‌.‌𞰆ς; [B1, B6, C1, V6]; xn--0ug76062m.xn--3xa795lhn92a; ; ; # .ς
+󲚗‌。‌𞰆Σ; 󲚗‌.‌𞰆σ; [B1, B6, C1, P1, V6]; xn--0ug76062m.xn--4xa595lhn92a; ; xn--qp42f.xn--4xa3011w; [B2, B3, P1, V6] # .σ
+󲚗‌。‌𞰆σ; 󲚗‌.‌𞰆σ; [B1, B6, C1, P1, V6]; xn--0ug76062m.xn--4xa595lhn92a; ; xn--qp42f.xn--4xa3011w; [B2, B3, P1, V6] # .σ
+堕𑓂ᬂ。𐮇𞤽‌-; 堕𑓂ᬂ.𐮇𞤽‌-; [B3, C1, V3]; xn--5sf345zdk8h.xn----rgnt157hwl9g; ; xn--5sf345zdk8h.xn----iv5iw606c; [B3, V3] # 堕𑓂ᬂ.𐮇𞤽-
+堕𑓂ᬂ。𐮇𞤛‌-; 堕𑓂ᬂ.𐮇𞤽‌-; [B3, C1, V3]; xn--5sf345zdk8h.xn----rgnt157hwl9g; ; xn--5sf345zdk8h.xn----iv5iw606c; [B3, V3] # 堕𑓂ᬂ.𐮇𞤽-
+xn--5sf345zdk8h.xn----iv5iw606c; 堕𑓂ᬂ.𐮇𞤽-; [B3, V3]; xn--5sf345zdk8h.xn----iv5iw606c; ; ; # 堕𑓂ᬂ.𐮇𞤽-
+xn--5sf345zdk8h.xn----rgnt157hwl9g; 堕𑓂ᬂ.𐮇𞤽‌-; [B3, C1, V3]; xn--5sf345zdk8h.xn----rgnt157hwl9g; ; ; # 堕𑓂ᬂ.𐮇𞤽-
+𐹶𑁆ᡕ𞤢。ᡥςتς; 𐹶𑁆ᡕ𞤢.ᡥςتς; [B1, B5]; xn--l8e1317j1ebz456b.xn--3xaa16plx4a; ; xn--l8e1317j1ebz456b.xn--4xaa85plx4a; # 𐹶𑁆ᡕ𞤢.ᡥςتς
+𐹶𑁆ᡕ𞤢。ᡥςتς; 𐹶𑁆ᡕ𞤢.ᡥςتς; [B1, B5]; xn--l8e1317j1ebz456b.xn--3xaa16plx4a; ; xn--l8e1317j1ebz456b.xn--4xaa85plx4a; # 𐹶𑁆ᡕ𞤢.ᡥςتς
+𐹶𑁆ᡕ𞤀。ᡥΣتΣ; 𐹶𑁆ᡕ𞤢.ᡥσتσ; [B1, B5]; xn--l8e1317j1ebz456b.xn--4xaa85plx4a; ; ; # 𐹶𑁆ᡕ𞤢.ᡥσتσ
+𐹶𑁆ᡕ𞤢。ᡥσتσ; 𐹶𑁆ᡕ𞤢.ᡥσتσ; [B1, B5]; xn--l8e1317j1ebz456b.xn--4xaa85plx4a; ; ; # 𐹶𑁆ᡕ𞤢.ᡥσتσ
+xn--l8e1317j1ebz456b.xn--4xaa85plx4a; 𐹶𑁆ᡕ𞤢.ᡥσتσ; [B1, B5]; xn--l8e1317j1ebz456b.xn--4xaa85plx4a; ; ; # 𐹶𑁆ᡕ𞤢.ᡥσتσ
+xn--l8e1317j1ebz456b.xn--3xaa16plx4a; 𐹶𑁆ᡕ𞤢.ᡥςتς; [B1, B5]; xn--l8e1317j1ebz456b.xn--3xaa16plx4a; ; ; # 𐹶𑁆ᡕ𞤢.ᡥςتς
+𐹶𑁆ᡕ𞤀。ᡥΣتΣ; 𐹶𑁆ᡕ𞤢.ᡥσتσ; [B1, B5]; xn--l8e1317j1ebz456b.xn--4xaa85plx4a; ; ; # 𐹶𑁆ᡕ𞤢.ᡥσتσ
+𐹶𑁆ᡕ𞤢。ᡥσتσ; 𐹶𑁆ᡕ𞤢.ᡥσتσ; [B1, B5]; xn--l8e1317j1ebz456b.xn--4xaa85plx4a; ; ; # 𐹶𑁆ᡕ𞤢.ᡥσتσ
+𐹶𑁆ᡕ𞤢。ᡥΣتΣ; 𐹶𑁆ᡕ𞤢.ᡥσتσ; [B1, B5]; xn--l8e1317j1ebz456b.xn--4xaa85plx4a; ; ; # 𐹶𑁆ᡕ𞤢.ᡥσتσ
+𐹶𑁆ᡕ𞤢。ᡥΣتσ; 𐹶𑁆ᡕ𞤢.ᡥσتσ; [B1, B5]; xn--l8e1317j1ebz456b.xn--4xaa85plx4a; ; ; # 𐹶𑁆ᡕ𞤢.ᡥσتσ
+𐹶𑁆ᡕ𞤢。ᡥΣتς; 𐹶𑁆ᡕ𞤢.ᡥσتς; [B1, B5]; xn--l8e1317j1ebz456b.xn--3xab95plx4a; ; xn--l8e1317j1ebz456b.xn--4xaa85plx4a; # 𐹶𑁆ᡕ𞤢.ᡥσتς
+𐹶𑁆ᡕ𞤢。ᡥσتς; 𐹶𑁆ᡕ𞤢.ᡥσتς; [B1, B5]; xn--l8e1317j1ebz456b.xn--3xab95plx4a; ; xn--l8e1317j1ebz456b.xn--4xaa85plx4a; # 𐹶𑁆ᡕ𞤢.ᡥσتς
+xn--l8e1317j1ebz456b.xn--3xab95plx4a; 𐹶𑁆ᡕ𞤢.ᡥσتς; [B1, B5]; xn--l8e1317j1ebz456b.xn--3xab95plx4a; ; ; # 𐹶𑁆ᡕ𞤢.ᡥσتς
+𐹶𑁆ᡕ𞤢。ᡥΣتΣ; 𐹶𑁆ᡕ𞤢.ᡥσتσ; [B1, B5]; xn--l8e1317j1ebz456b.xn--4xaa85plx4a; ; ; # 𐹶𑁆ᡕ𞤢.ᡥσتσ
+𐹶𑁆ᡕ𞤢。ᡥΣتσ; 𐹶𑁆ᡕ𞤢.ᡥσتσ; [B1, B5]; xn--l8e1317j1ebz456b.xn--4xaa85plx4a; ; ; # 𐹶𑁆ᡕ𞤢.ᡥσتσ
+𐹶𑁆ᡕ𞤢。ᡥΣتς; 𐹶𑁆ᡕ𞤢.ᡥσتς; [B1, B5]; xn--l8e1317j1ebz456b.xn--3xab95plx4a; ; xn--l8e1317j1ebz456b.xn--4xaa85plx4a; # 𐹶𑁆ᡕ𞤢.ᡥσتς
+𐹶𑁆ᡕ𞤢。ᡥσتς; 𐹶𑁆ᡕ𞤢.ᡥσتς; [B1, B5]; xn--l8e1317j1ebz456b.xn--3xab95plx4a; ; xn--l8e1317j1ebz456b.xn--4xaa85plx4a; # 𐹶𑁆ᡕ𞤢.ᡥσتς
+󏒰.-𝟻ß; 󏒰.-5ß; [P1, V3, V6]; xn--t960e.xn---5-hia; ; xn--t960e.-5ss; # .-5ß
+󏒰.-5ß; ; [P1, V3, V6]; xn--t960e.xn---5-hia; ; xn--t960e.-5ss; # .-5ß
+󏒰.-5SS; 󏒰.-5ss; [P1, V3, V6]; xn--t960e.-5ss; ; ; # .-5ss
+󏒰.-5ss; ; [P1, V3, V6]; xn--t960e.-5ss; ; ; # .-5ss
+xn--t960e.-5ss; 󏒰.-5ss; [V3, V6]; xn--t960e.-5ss; ; ; # .-5ss
+xn--t960e.xn---5-hia; 󏒰.-5ß; [V3, V6]; xn--t960e.xn---5-hia; ; ; # .-5ß
+󏒰.-𝟻SS; 󏒰.-5ss; [P1, V3, V6]; xn--t960e.-5ss; ; ; # .-5ss
+󏒰.-𝟻ss; 󏒰.-5ss; [P1, V3, V6]; xn--t960e.-5ss; ; ; # .-5ss
+󏒰.-𝟻Ss; 󏒰.-5ss; [P1, V3, V6]; xn--t960e.-5ss; ; ; # .-5ss
+󏒰.-5Ss; 󏒰.-5ss; [P1, V3, V6]; xn--t960e.-5ss; ; ; # .-5ss
+‍𐨿.🤒Ⴥ򑮶; ; [C2, P1, V6]; xn--1ug9533g.xn--9nd3211w0gz4b; ; xn--0s9c.xn--9nd3211w0gz4b; [P1, V5, V6] # 𐨿.🤒Ⴥ
+‍𐨿.🤒ⴥ򑮶; ; [C2, P1, V6]; xn--1ug9533g.xn--tljz038l0gz4b; ; xn--0s9c.xn--tljz038l0gz4b; [P1, V5, V6] # 𐨿.🤒ⴥ
+xn--0s9c.xn--tljz038l0gz4b; 𐨿.🤒ⴥ򑮶; [V5, V6]; xn--0s9c.xn--tljz038l0gz4b; ; ; # 𐨿.🤒ⴥ
+xn--1ug9533g.xn--tljz038l0gz4b; ‍𐨿.🤒ⴥ򑮶; [C2, V6]; xn--1ug9533g.xn--tljz038l0gz4b; ; ; # 𐨿.🤒ⴥ
+xn--0s9c.xn--9nd3211w0gz4b; 𐨿.🤒Ⴥ򑮶; [V5, V6]; xn--0s9c.xn--9nd3211w0gz4b; ; ; # 𐨿.🤒Ⴥ
+xn--1ug9533g.xn--9nd3211w0gz4b; ‍𐨿.🤒Ⴥ򑮶; [C2, V6]; xn--1ug9533g.xn--9nd3211w0gz4b; ; ; # 𐨿.🤒Ⴥ
+𵋅。ß𬵩‍; 𵋅.ß𬵩‍; [C2, P1, V6]; xn--ey1p.xn--zca870nz438b; ; xn--ey1p.xn--ss-eq36b; [P1, V6] # .ß𬵩
+𵋅。SS𬵩‍; 𵋅.ss𬵩‍; [C2, P1, V6]; xn--ey1p.xn--ss-n1tx0508a; ; xn--ey1p.xn--ss-eq36b; [P1, V6] # .ss𬵩
+𵋅。ss𬵩‍; 𵋅.ss𬵩‍; [C2, P1, V6]; xn--ey1p.xn--ss-n1tx0508a; ; xn--ey1p.xn--ss-eq36b; [P1, V6] # .ss𬵩
+𵋅。Ss𬵩‍; 𵋅.ss𬵩‍; [C2, P1, V6]; xn--ey1p.xn--ss-n1tx0508a; ; xn--ey1p.xn--ss-eq36b; [P1, V6] # .ss𬵩
+xn--ey1p.xn--ss-eq36b; 𵋅.ss𬵩; [V6]; xn--ey1p.xn--ss-eq36b; ; ; # .ss𬵩
+xn--ey1p.xn--ss-n1tx0508a; 𵋅.ss𬵩‍; [C2, V6]; xn--ey1p.xn--ss-n1tx0508a; ; ; # .ss𬵩
+xn--ey1p.xn--zca870nz438b; 𵋅.ß𬵩‍; [C2, V6]; xn--ey1p.xn--zca870nz438b; ; ; # .ß𬵩
+‌𭉝。߱́𞹻; ‌𭉝.߱́غ; [B1, C1, V5]; xn--0ugy003y.xn--lsa46nuub; ; xn--634m.xn--lsa46nuub; [B1, V5] # 𭉝.߱́غ
+‌𭉝。߱́غ; ‌𭉝.߱́غ; [B1, C1, V5]; xn--0ugy003y.xn--lsa46nuub; ; xn--634m.xn--lsa46nuub; [B1, V5] # 𭉝.߱́غ
+xn--634m.xn--lsa46nuub; 𭉝.߱́غ; [B1, V5]; xn--634m.xn--lsa46nuub; ; ; # 𭉝.߱́غ
+xn--0ugy003y.xn--lsa46nuub; ‌𭉝.߱́غ; [B1, C1, V5]; xn--0ugy003y.xn--lsa46nuub; ; ; # 𭉝.߱́غ
+𞼌‌𑈶。𐹡; 𞼌‌𑈶.𐹡; [B1, B3, C1, P1, V6]; xn--0ug7946gzpxf.xn--8n0d; ; xn--9g1d1288a.xn--8n0d; [B1, P1, V6] # 𑈶.𐹡
+xn--9g1d1288a.xn--8n0d; 𞼌𑈶.𐹡; [B1, V6]; xn--9g1d1288a.xn--8n0d; ; ; # 𑈶.𐹡
+xn--0ug7946gzpxf.xn--8n0d; 𞼌‌𑈶.𐹡; [B1, B3, C1, V6]; xn--0ug7946gzpxf.xn--8n0d; ; ; # 𑈶.𐹡
+󠅯򇽭‌🜭。𑖿᪻ς≠; 򇽭‌🜭.𑖿᪻ς≠; [C1, P1, V5, V6]; xn--0ug3766p5nm1b.xn--3xa578i1mfjw7y; ; xn--zb9h5968x.xn--4xa378i1mfjw7y; [P1, V5, V6] # 🜭.𑖿᪻ς≠
+󠅯򇽭‌🜭。𑖿᪻ς≠; 򇽭‌🜭.𑖿᪻ς≠; [C1, P1, V5, V6]; xn--0ug3766p5nm1b.xn--3xa578i1mfjw7y; ; xn--zb9h5968x.xn--4xa378i1mfjw7y; [P1, V5, V6] # 🜭.𑖿᪻ς≠
+󠅯򇽭‌🜭。𑖿᪻ς≠; 򇽭‌🜭.𑖿᪻ς≠; [C1, P1, V5, V6]; xn--0ug3766p5nm1b.xn--3xa578i1mfjw7y; ; xn--zb9h5968x.xn--4xa378i1mfjw7y; [P1, V5, V6] # 🜭.𑖿᪻ς≠
+󠅯򇽭‌🜭。𑖿᪻ς≠; 򇽭‌🜭.𑖿᪻ς≠; [C1, P1, V5, V6]; xn--0ug3766p5nm1b.xn--3xa578i1mfjw7y; ; xn--zb9h5968x.xn--4xa378i1mfjw7y; [P1, V5, V6] # 🜭.𑖿᪻ς≠
+󠅯򇽭‌🜭。𑖿᪻Σ≠; 򇽭‌🜭.𑖿᪻σ≠; [C1, P1, V5, V6]; xn--0ug3766p5nm1b.xn--4xa378i1mfjw7y; ; xn--zb9h5968x.xn--4xa378i1mfjw7y; [P1, V5, V6] # 🜭.𑖿᪻σ≠
+󠅯򇽭‌🜭。𑖿᪻Σ≠; 򇽭‌🜭.𑖿᪻σ≠; [C1, P1, V5, V6]; xn--0ug3766p5nm1b.xn--4xa378i1mfjw7y; ; xn--zb9h5968x.xn--4xa378i1mfjw7y; [P1, V5, V6] # 🜭.𑖿᪻σ≠
+󠅯򇽭‌🜭。𑖿᪻σ≠; 򇽭‌🜭.𑖿᪻σ≠; [C1, P1, V5, V6]; xn--0ug3766p5nm1b.xn--4xa378i1mfjw7y; ; xn--zb9h5968x.xn--4xa378i1mfjw7y; [P1, V5, V6] # 🜭.𑖿᪻σ≠
+󠅯򇽭‌🜭。𑖿᪻σ≠; 򇽭‌🜭.𑖿᪻σ≠; [C1, P1, V5, V6]; xn--0ug3766p5nm1b.xn--4xa378i1mfjw7y; ; xn--zb9h5968x.xn--4xa378i1mfjw7y; [P1, V5, V6] # 🜭.𑖿᪻σ≠
+xn--zb9h5968x.xn--4xa378i1mfjw7y; 򇽭🜭.𑖿᪻σ≠; [V5, V6]; xn--zb9h5968x.xn--4xa378i1mfjw7y; ; ; # 🜭.𑖿᪻σ≠
+xn--0ug3766p5nm1b.xn--4xa378i1mfjw7y; 򇽭‌🜭.𑖿᪻σ≠; [C1, V5, V6]; xn--0ug3766p5nm1b.xn--4xa378i1mfjw7y; ; ; # 🜭.𑖿᪻σ≠
+xn--0ug3766p5nm1b.xn--3xa578i1mfjw7y; 򇽭‌🜭.𑖿᪻ς≠; [C1, V5, V6]; xn--0ug3766p5nm1b.xn--3xa578i1mfjw7y; ; ; # 🜭.𑖿᪻ς≠
+󠅯򇽭‌🜭。𑖿᪻Σ≠; 򇽭‌🜭.𑖿᪻σ≠; [C1, P1, V5, V6]; xn--0ug3766p5nm1b.xn--4xa378i1mfjw7y; ; xn--zb9h5968x.xn--4xa378i1mfjw7y; [P1, V5, V6] # 🜭.𑖿᪻σ≠
+󠅯򇽭‌🜭。𑖿᪻Σ≠; 򇽭‌🜭.𑖿᪻σ≠; [C1, P1, V5, V6]; xn--0ug3766p5nm1b.xn--4xa378i1mfjw7y; ; xn--zb9h5968x.xn--4xa378i1mfjw7y; [P1, V5, V6] # 🜭.𑖿᪻σ≠
+󠅯򇽭‌🜭。𑖿᪻σ≠; 򇽭‌🜭.𑖿᪻σ≠; [C1, P1, V5, V6]; xn--0ug3766p5nm1b.xn--4xa378i1mfjw7y; ; xn--zb9h5968x.xn--4xa378i1mfjw7y; [P1, V5, V6] # 🜭.𑖿᪻σ≠
+󠅯򇽭‌🜭。𑖿᪻σ≠; 򇽭‌🜭.𑖿᪻σ≠; [C1, P1, V5, V6]; xn--0ug3766p5nm1b.xn--4xa378i1mfjw7y; ; xn--zb9h5968x.xn--4xa378i1mfjw7y; [P1, V5, V6] # 🜭.𑖿᪻σ≠
+⒋。⒈‍򳴢; ⒋.⒈‍򳴢; [C2, P1, V6]; xn--wsh.xn--1ug58o74922a; ; xn--wsh.xn--tsh07994h; [P1, V6] # ⒋.⒈
+4.。1.‍򳴢; 4..1.‍򳴢; [C2, P1, V6, X4_2]; 4..1.xn--1ug64613i; [C2, P1, V6, A4_2]; 4..1.xn--sf51d; [P1, V6, A4_2] # 4..1.
+4..1.xn--sf51d; 4..1.򳴢; [V6, X4_2]; 4..1.xn--sf51d; [V6, A4_2]; ; # 4..1.
+4..1.xn--1ug64613i; 4..1.‍򳴢; [C2, V6, X4_2]; 4..1.xn--1ug64613i; [C2, V6, A4_2]; ; # 4..1.
+xn--wsh.xn--tsh07994h; ⒋.⒈򳴢; [V6]; xn--wsh.xn--tsh07994h; ; ; # ⒋.⒈
+xn--wsh.xn--1ug58o74922a; ⒋.⒈‍򳴢; [C2, V6]; xn--wsh.xn--1ug58o74922a; ; ; # ⒋.⒈
+لß。᩠𐇽򾅢𞤾; لß.᩠𐇽򾅢𞤾; [B1, B2, B3, P1, V5, V6]; xn--zca57y.xn--jof2298hn83fln78f; ; xn--ss-svd.xn--jof2298hn83fln78f; # لß.᩠𐇽𞤾
+لß。᩠𐇽򾅢𞤾; لß.᩠𐇽򾅢𞤾; [B1, B2, B3, P1, V5, V6]; xn--zca57y.xn--jof2298hn83fln78f; ; xn--ss-svd.xn--jof2298hn83fln78f; # لß.᩠𐇽𞤾
+لß。᩠𐇽򾅢𞤾; لß.᩠𐇽򾅢𞤾; [B1, B2, B3, P1, V5, V6]; xn--zca57y.xn--jof2298hn83fln78f; ; xn--ss-svd.xn--jof2298hn83fln78f; # لß.᩠𐇽𞤾
+لSS。᩠𐇽򾅢𞤜; لss.᩠𐇽򾅢𞤾; [B1, B2, B3, P1, V5, V6]; xn--ss-svd.xn--jof2298hn83fln78f; ; ; # لss.᩠𐇽𞤾
+لss。᩠𐇽򾅢𞤾; لss.᩠𐇽򾅢𞤾; [B1, B2, B3, P1, V5, V6]; xn--ss-svd.xn--jof2298hn83fln78f; ; ; # لss.᩠𐇽𞤾
+لss。᩠𐇽򾅢𞤜; لss.᩠𐇽򾅢𞤾; [B1, B2, B3, P1, V5, V6]; xn--ss-svd.xn--jof2298hn83fln78f; ; ; # لss.᩠𐇽𞤾
+xn--ss-svd.xn--jof2298hn83fln78f; لss.᩠𐇽򾅢𞤾; [B1, B2, B3, V5, V6]; xn--ss-svd.xn--jof2298hn83fln78f; ; ; # لss.᩠𐇽𞤾
+لß。᩠𐇽򾅢𞤜; لß.᩠𐇽򾅢𞤾; [B1, B2, B3, P1, V5, V6]; xn--zca57y.xn--jof2298hn83fln78f; ; xn--ss-svd.xn--jof2298hn83fln78f; # لß.᩠𐇽𞤾
+xn--zca57y.xn--jof2298hn83fln78f; لß.᩠𐇽򾅢𞤾; [B1, B2, B3, V5, V6]; xn--zca57y.xn--jof2298hn83fln78f; ; ; # لß.᩠𐇽𞤾
+لSS。᩠𐇽򾅢𞤜; لss.᩠𐇽򾅢𞤾; [B1, B2, B3, P1, V5, V6]; xn--ss-svd.xn--jof2298hn83fln78f; ; ; # لss.᩠𐇽𞤾
+لss。᩠𐇽򾅢𞤾; لss.᩠𐇽򾅢𞤾; [B1, B2, B3, P1, V5, V6]; xn--ss-svd.xn--jof2298hn83fln78f; ; ; # لss.᩠𐇽𞤾
+لss。᩠𐇽򾅢𞤜; لss.᩠𐇽򾅢𞤾; [B1, B2, B3, P1, V5, V6]; xn--ss-svd.xn--jof2298hn83fln78f; ; ; # لss.᩠𐇽𞤾
+لß。᩠𐇽򾅢𞤜; لß.᩠𐇽򾅢𞤾; [B1, B2, B3, P1, V5, V6]; xn--zca57y.xn--jof2298hn83fln78f; ; xn--ss-svd.xn--jof2298hn83fln78f; # لß.᩠𐇽𞤾
+لSS。᩠𐇽򾅢𞤜; لss.᩠𐇽򾅢𞤾; [B1, B2, B3, P1, V5, V6]; xn--ss-svd.xn--jof2298hn83fln78f; ; ; # لss.᩠𐇽𞤾
+لss。᩠𐇽򾅢𞤾; لss.᩠𐇽򾅢𞤾; [B1, B2, B3, P1, V5, V6]; xn--ss-svd.xn--jof2298hn83fln78f; ; ; # لss.᩠𐇽𞤾
+لss。᩠𐇽򾅢𞤜; لss.᩠𐇽򾅢𞤾; [B1, B2, B3, P1, V5, V6]; xn--ss-svd.xn--jof2298hn83fln78f; ; ; # لss.᩠𐇽𞤾
+لß。᩠𐇽򾅢𞤜; لß.᩠𐇽򾅢𞤾; [B1, B2, B3, P1, V5, V6]; xn--zca57y.xn--jof2298hn83fln78f; ; xn--ss-svd.xn--jof2298hn83fln78f; # لß.᩠𐇽𞤾
+لSS。᩠𐇽򾅢𞤾; لss.᩠𐇽򾅢𞤾; [B1, B2, B3, P1, V5, V6]; xn--ss-svd.xn--jof2298hn83fln78f; ; ; # لss.᩠𐇽𞤾
+لSs。᩠𐇽򾅢𞤾; لss.᩠𐇽򾅢𞤾; [B1, B2, B3, P1, V5, V6]; xn--ss-svd.xn--jof2298hn83fln78f; ; ; # لss.᩠𐇽𞤾
+لSS。᩠𐇽򾅢𞤾; لss.᩠𐇽򾅢𞤾; [B1, B2, B3, P1, V5, V6]; xn--ss-svd.xn--jof2298hn83fln78f; ; ; # لss.᩠𐇽𞤾
+لSs。᩠𐇽򾅢𞤾; لss.᩠𐇽򾅢𞤾; [B1, B2, B3, P1, V5, V6]; xn--ss-svd.xn--jof2298hn83fln78f; ; ; # لss.᩠𐇽𞤾
+لSS。᩠𐇽򾅢𞤾; لss.᩠𐇽򾅢𞤾; [B1, B2, B3, P1, V5, V6]; xn--ss-svd.xn--jof2298hn83fln78f; ; ; # لss.᩠𐇽𞤾
+لSs。᩠𐇽򾅢𞤾; لss.᩠𐇽򾅢𞤾; [B1, B2, B3, P1, V5, V6]; xn--ss-svd.xn--jof2298hn83fln78f; ; ; # لss.᩠𐇽𞤾
+𐹽𑄳񼜲.ᷟី꠆𑜫; ; [B1, B3, B6, P1, V5, V6]; xn--1o0di0c0652w.xn--33e362arr1l153d; ; ; # 𐹽𑄳.ᷟី꠆𑜫
+xn--1o0di0c0652w.xn--33e362arr1l153d; 𐹽𑄳񼜲.ᷟី꠆𑜫; [B1, B3, B6, V5, V6]; xn--1o0di0c0652w.xn--33e362arr1l153d; ; ; # 𐹽𑄳.ᷟី꠆𑜫
+Ⴓ𑜫‍򗭓.ڧ𑰶; Ⴓ𑜫‍򗭓.ڧ𑰶; [P1, V6]; xn--rnd479ep20q7x12e.xn--9jb4223l; ; xn--rnd8945ky009c.xn--9jb4223l; # Ⴓ𑜫.ڧ𑰶
+Ⴓ𑜫‍򗭓.ڧ𑰶; ; [P1, V6]; xn--rnd479ep20q7x12e.xn--9jb4223l; ; xn--rnd8945ky009c.xn--9jb4223l; # Ⴓ𑜫.ڧ𑰶
+ⴓ𑜫‍򗭓.ڧ𑰶; ; [P1, V6]; xn--1ugy52cym7p7xu5e.xn--9jb4223l; ; xn--blj6306ey091d.xn--9jb4223l; # ⴓ𑜫.ڧ𑰶
+xn--blj6306ey091d.xn--9jb4223l; ⴓ𑜫򗭓.ڧ𑰶; [V6]; xn--blj6306ey091d.xn--9jb4223l; ; ; # ⴓ𑜫.ڧ𑰶
+xn--1ugy52cym7p7xu5e.xn--9jb4223l; ⴓ𑜫‍򗭓.ڧ𑰶; [V6]; xn--1ugy52cym7p7xu5e.xn--9jb4223l; ; ; # ⴓ𑜫.ڧ𑰶
+xn--rnd8945ky009c.xn--9jb4223l; Ⴓ𑜫򗭓.ڧ𑰶; [V6]; xn--rnd8945ky009c.xn--9jb4223l; ; ; # Ⴓ𑜫.ڧ𑰶
+xn--rnd479ep20q7x12e.xn--9jb4223l; Ⴓ𑜫‍򗭓.ڧ𑰶; [V6]; xn--rnd479ep20q7x12e.xn--9jb4223l; ; ; # Ⴓ𑜫.ڧ𑰶
+ⴓ𑜫‍򗭓.ڧ𑰶; ⴓ𑜫‍򗭓.ڧ𑰶; [P1, V6]; xn--1ugy52cym7p7xu5e.xn--9jb4223l; ; xn--blj6306ey091d.xn--9jb4223l; # ⴓ𑜫.ڧ𑰶
+𐨿.🄆—; ; [P1, V5, V6]; xn--0s9c.xn--8ug8324p; ; ; # 𐨿.🄆—
+𐨿.5,—; ; [P1, V5, V6]; xn--0s9c.xn--5,-81t; ; ; # 𐨿.5,—
+xn--0s9c.xn--5,-81t; 𐨿.5,—; [P1, V5, V6]; xn--0s9c.xn--5,-81t; ; ; # 𐨿.5,—
+xn--0s9c.xn--8ug8324p; 𐨿.🄆—; [V5, V6]; xn--0s9c.xn--8ug8324p; ; ; # 𐨿.🄆—
+򔊱񁦮۸。󠾭-; 򔊱񁦮۸.󠾭-; [P1, V3, V6]; xn--lmb18944c0g2z.xn----2k81m; ; ; # ۸.-
+xn--lmb18944c0g2z.xn----2k81m; 򔊱񁦮۸.󠾭-; [V3, V6]; xn--lmb18944c0g2z.xn----2k81m; ; ; # ۸.-
+𼗸ߍ𐹮。۝ᡎᠴ; 𼗸ߍ𐹮.۝ᡎᠴ; [B1, B5, B6, P1, V6]; xn--osb0855kcc2r.xn--tlb299fhc; ; ; # ߍ𐹮.ᡎᠴ
+xn--osb0855kcc2r.xn--tlb299fhc; 𼗸ߍ𐹮.۝ᡎᠴ; [B1, B5, B6, V6]; xn--osb0855kcc2r.xn--tlb299fhc; ; ; # ߍ𐹮.ᡎᠴ
+‍ᠮႾ🄂.🚗ࡁ𮹌‌; ; [B1, C1, C2, P1, V6]; xn--2nd129ay2gnw71c.xn--zvb692j9664aic1g; ; xn--2nd129ai554b.xn--zvb3124wpkpf; [B1, P1, V6] # ᠮႾ🄂.🚗ࡁ
+‍ᠮႾ1,.🚗ࡁ𮹌‌; ; [B1, C1, C2, P1, V6]; xn--1,-ogkx89c39j.xn--zvb692j9664aic1g; ; xn--1,-ogkx89c.xn--zvb3124wpkpf; [B1, B6, P1, V6] # ᠮႾ1,.🚗ࡁ
+‍ᠮⴞ1,.🚗ࡁ𮹌‌; ; [B1, C1, C2, P1, V6]; xn--1,-v3o161c53q.xn--zvb692j9664aic1g; ; xn--1,-v3o625k.xn--zvb3124wpkpf; [B1, B6, P1, V6] # ᠮⴞ1,.🚗ࡁ
+xn--1,-v3o625k.xn--zvb3124wpkpf; ᠮⴞ1,.🚗ࡁ𮹌; [B1, B6, P1, V6]; xn--1,-v3o625k.xn--zvb3124wpkpf; ; ; # ᠮⴞ1,.🚗ࡁ
+xn--1,-v3o161c53q.xn--zvb692j9664aic1g; ‍ᠮⴞ1,.🚗ࡁ𮹌‌; [B1, C1, C2, P1, V6]; xn--1,-v3o161c53q.xn--zvb692j9664aic1g; ; ; # ᠮⴞ1,.🚗ࡁ
+xn--1,-ogkx89c.xn--zvb3124wpkpf; ᠮႾ1,.🚗ࡁ𮹌; [B1, B6, P1, V6]; xn--1,-ogkx89c.xn--zvb3124wpkpf; ; ; # ᠮႾ1,.🚗ࡁ
+xn--1,-ogkx89c39j.xn--zvb692j9664aic1g; ‍ᠮႾ1,.🚗ࡁ𮹌‌; [B1, C1, C2, P1, V6]; xn--1,-ogkx89c39j.xn--zvb692j9664aic1g; ; ; # ᠮႾ1,.🚗ࡁ
+‍ᠮⴞ🄂.🚗ࡁ𮹌‌; ; [B1, C1, C2, P1, V6]; xn--h7e341b0wlbv45b.xn--zvb692j9664aic1g; ; xn--h7e438h1p44a.xn--zvb3124wpkpf; [B1, P1, V6] # ᠮⴞ🄂.🚗ࡁ
+xn--h7e438h1p44a.xn--zvb3124wpkpf; ᠮⴞ🄂.🚗ࡁ𮹌; [B1, V6]; xn--h7e438h1p44a.xn--zvb3124wpkpf; ; ; # ᠮⴞ🄂.🚗ࡁ
+xn--h7e341b0wlbv45b.xn--zvb692j9664aic1g; ‍ᠮⴞ🄂.🚗ࡁ𮹌‌; [B1, C1, C2, V6]; xn--h7e341b0wlbv45b.xn--zvb692j9664aic1g; ; ; # ᠮⴞ🄂.🚗ࡁ
+xn--2nd129ai554b.xn--zvb3124wpkpf; ᠮႾ🄂.🚗ࡁ𮹌; [B1, V6]; xn--2nd129ai554b.xn--zvb3124wpkpf; ; ; # ᠮႾ🄂.🚗ࡁ
+xn--2nd129ay2gnw71c.xn--zvb692j9664aic1g; ‍ᠮႾ🄂.🚗ࡁ𮹌‌; [B1, C1, C2, V6]; xn--2nd129ay2gnw71c.xn--zvb692j9664aic1g; ; ; # ᠮႾ🄂.🚗ࡁ
+؁ڗ.𑚶񼡷⾆; ؁ڗ.𑚶񼡷舌; [B1, P1, V5, V6]; xn--jfb41a.xn--tc1ap851axo39c; ; ; # ڗ.𑚶舌
+؁ڗ.𑚶񼡷舌; ; [B1, P1, V5, V6]; xn--jfb41a.xn--tc1ap851axo39c; ; ; # ڗ.𑚶舌
+xn--jfb41a.xn--tc1ap851axo39c; ؁ڗ.𑚶񼡷舌; [B1, V5, V6]; xn--jfb41a.xn--tc1ap851axo39c; ; ; # ڗ.𑚶舌
+🞅󠳡󜍙.񲖷; ; [P1, V6]; xn--ie9hi1349bqdlb.xn--oj69a; ; ; # 🞅.
+xn--ie9hi1349bqdlb.xn--oj69a; 🞅󠳡󜍙.񲖷; [V6]; xn--ie9hi1349bqdlb.xn--oj69a; ; ; # 🞅.
+⃧񯡎-򫣝.4Ⴄ‌; ; [C1, P1, V5, V6]; xn----9snu5320fi76w.xn--4-f0g649i; ; xn----9snu5320fi76w.xn--4-f0g; [P1, V5, V6] # ⃧-.4Ⴄ
+⃧񯡎-򫣝.4ⴄ‌; ; [C1, P1, V5, V6]; xn----9snu5320fi76w.xn--4-sgn589c; ; xn----9snu5320fi76w.xn--4-ivs; [P1, V5, V6] # ⃧-.4ⴄ
+xn----9snu5320fi76w.xn--4-ivs; ⃧񯡎-򫣝.4ⴄ; [V5, V6]; xn----9snu5320fi76w.xn--4-ivs; ; ; # ⃧-.4ⴄ
+xn----9snu5320fi76w.xn--4-sgn589c; ⃧񯡎-򫣝.4ⴄ‌; [C1, V5, V6]; xn----9snu5320fi76w.xn--4-sgn589c; ; ; # ⃧-.4ⴄ
+xn----9snu5320fi76w.xn--4-f0g; ⃧񯡎-򫣝.4Ⴄ; [V5, V6]; xn----9snu5320fi76w.xn--4-f0g; ; ; # ⃧-.4Ⴄ
+xn----9snu5320fi76w.xn--4-f0g649i; ⃧񯡎-򫣝.4Ⴄ‌; [C1, V5, V6]; xn----9snu5320fi76w.xn--4-f0g649i; ; ; # ⃧-.4Ⴄ
+ᚭ。𝌠ß𖫱; ᚭ.𝌠ß𖫱; ; xn--hwe.xn--zca4946pblnc; ; xn--hwe.xn--ss-ci1ub261a; # ᚭ.𝌠ß𖫱
+ᚭ。𝌠ß𖫱; ᚭ.𝌠ß𖫱; ; xn--hwe.xn--zca4946pblnc; ; xn--hwe.xn--ss-ci1ub261a; # ᚭ.𝌠ß𖫱
+ᚭ。𝌠SS𖫱; ᚭ.𝌠ss𖫱; ; xn--hwe.xn--ss-ci1ub261a; ; ; # ᚭ.𝌠ss𖫱
+ᚭ。𝌠ss𖫱; ᚭ.𝌠ss𖫱; ; xn--hwe.xn--ss-ci1ub261a; ; ; # ᚭ.𝌠ss𖫱
+ᚭ。𝌠Ss𖫱; ᚭ.𝌠ss𖫱; ; xn--hwe.xn--ss-ci1ub261a; ; ; # ᚭ.𝌠ss𖫱
+xn--hwe.xn--ss-ci1ub261a; ᚭ.𝌠ss𖫱; ; xn--hwe.xn--ss-ci1ub261a; ; ; # ᚭ.𝌠ss𖫱
+ᚭ.𝌠ss𖫱; ; ; xn--hwe.xn--ss-ci1ub261a; ; ; # ᚭ.𝌠ss𖫱
+ᚭ.𝌠SS𖫱; ᚭ.𝌠ss𖫱; ; xn--hwe.xn--ss-ci1ub261a; ; ; # ᚭ.𝌠ss𖫱
+ᚭ.𝌠Ss𖫱; ᚭ.𝌠ss𖫱; ; xn--hwe.xn--ss-ci1ub261a; ; ; # ᚭ.𝌠ss𖫱
+xn--hwe.xn--zca4946pblnc; ᚭ.𝌠ß𖫱; ; xn--hwe.xn--zca4946pblnc; ; ; # ᚭ.𝌠ß𖫱
+ᚭ.𝌠ß𖫱; ; ; xn--hwe.xn--zca4946pblnc; ; xn--hwe.xn--ss-ci1ub261a; # ᚭ.𝌠ß𖫱
+ᚭ。𝌠SS𖫱; ᚭ.𝌠ss𖫱; ; xn--hwe.xn--ss-ci1ub261a; ; ; # ᚭ.𝌠ss𖫱
+ᚭ。𝌠ss𖫱; ᚭ.𝌠ss𖫱; ; xn--hwe.xn--ss-ci1ub261a; ; ; # ᚭ.𝌠ss𖫱
+ᚭ。𝌠Ss𖫱; ᚭ.𝌠ss𖫱; ; xn--hwe.xn--ss-ci1ub261a; ; ; # ᚭ.𝌠ss𖫱
+₁。𞤫ꡪ; 1.𞤫ꡪ; [B1, B2, B3]; 1.xn--gd9al691d; ; ; # 1.𞤫ꡪ
+1。𞤫ꡪ; 1.𞤫ꡪ; [B1, B2, B3]; 1.xn--gd9al691d; ; ; # 1.𞤫ꡪ
+1。𞤉ꡪ; 1.𞤫ꡪ; [B1, B2, B3]; 1.xn--gd9al691d; ; ; # 1.𞤫ꡪ
+1.xn--gd9al691d; 1.𞤫ꡪ; [B1, B2, B3]; 1.xn--gd9al691d; ; ; # 1.𞤫ꡪ
+₁。𞤉ꡪ; 1.𞤫ꡪ; [B1, B2, B3]; 1.xn--gd9al691d; ; ; # 1.𞤫ꡪ
+𯻼‌.𞶞򻙤񥘇; ; [B2, B3, B6, C1, P1, V6]; xn--0ug27500a.xn--2b7hs861pl540a; ; xn--kg4n.xn--2b7hs861pl540a; [B2, B3, P1, V6] # .
+xn--kg4n.xn--2b7hs861pl540a; 𯻼.𞶞򻙤񥘇; [B2, B3, V6]; xn--kg4n.xn--2b7hs861pl540a; ; ; # .
+xn--0ug27500a.xn--2b7hs861pl540a; 𯻼‌.𞶞򻙤񥘇; [B2, B3, B6, C1, V6]; xn--0ug27500a.xn--2b7hs861pl540a; ; ; # .
+𑑄≯。𑜤; 𑑄≯.𑜤; [P1, V5, V6]; xn--hdh5636g.xn--ci2d; ; ; # 𑑄≯.𑜤
+𑑄≯。𑜤; 𑑄≯.𑜤; [P1, V5, V6]; xn--hdh5636g.xn--ci2d; ; ; # 𑑄≯.𑜤
+𑑄≯。𑜤; 𑑄≯.𑜤; [P1, V5, V6]; xn--hdh5636g.xn--ci2d; ; ; # 𑑄≯.𑜤
+𑑄≯。𑜤; 𑑄≯.𑜤; [P1, V5, V6]; xn--hdh5636g.xn--ci2d; ; ; # 𑑄≯.𑜤
+xn--hdh5636g.xn--ci2d; 𑑄≯.𑜤; [V5, V6]; xn--hdh5636g.xn--ci2d; ; ; # 𑑄≯.𑜤
+Ⴋ≮𱲆。‍ާ𐋣; Ⴋ≮𱲆.‍ާ𐋣; [C2, P1, V6]; xn--jnd802gsm17c.xn--lrb506jqr4n; ; xn--jnd802gsm17c.xn--lrb6479j; [P1, V5, V6] # Ⴋ≮.ާ𐋣
+Ⴋ≮𱲆。‍ާ𐋣; Ⴋ≮𱲆.‍ާ𐋣; [C2, P1, V6]; xn--jnd802gsm17c.xn--lrb506jqr4n; ; xn--jnd802gsm17c.xn--lrb6479j; [P1, V5, V6] # Ⴋ≮.ާ𐋣
+ⴋ≮𱲆。‍ާ𐋣; ⴋ≮𱲆.‍ާ𐋣; [C2, P1, V6]; xn--gdhz03bxt42d.xn--lrb506jqr4n; ; xn--gdhz03bxt42d.xn--lrb6479j; [P1, V5, V6] # ⴋ≮.ާ𐋣
+ⴋ≮𱲆。‍ާ𐋣; ⴋ≮𱲆.‍ާ𐋣; [C2, P1, V6]; xn--gdhz03bxt42d.xn--lrb506jqr4n; ; xn--gdhz03bxt42d.xn--lrb6479j; [P1, V5, V6] # ⴋ≮.ާ𐋣
+xn--gdhz03bxt42d.xn--lrb6479j; ⴋ≮𱲆.ާ𐋣; [V5, V6]; xn--gdhz03bxt42d.xn--lrb6479j; ; ; # ⴋ≮.ާ𐋣
+xn--gdhz03bxt42d.xn--lrb506jqr4n; ⴋ≮𱲆.‍ާ𐋣; [C2, V6]; xn--gdhz03bxt42d.xn--lrb506jqr4n; ; ; # ⴋ≮.ާ𐋣
+xn--jnd802gsm17c.xn--lrb6479j; Ⴋ≮𱲆.ާ𐋣; [V5, V6]; xn--jnd802gsm17c.xn--lrb6479j; ; ; # Ⴋ≮.ާ𐋣
+xn--jnd802gsm17c.xn--lrb506jqr4n; Ⴋ≮𱲆.‍ާ𐋣; [C2, V6]; xn--jnd802gsm17c.xn--lrb506jqr4n; ; ; # Ⴋ≮.ާ𐋣
+្.򆽒≯; ; [P1, V5, V6]; xn--u4e.xn--hdhx0084f; ; ; # ្.≯
+្.򆽒≯; ្.򆽒≯; [P1, V5, V6]; xn--u4e.xn--hdhx0084f; ; ; # ្.≯
+xn--u4e.xn--hdhx0084f; ្.򆽒≯; [V5, V6]; xn--u4e.xn--hdhx0084f; ; ; # ្.≯
+񏁇᜴.𐨺É⬓𑄴; 񏁇᜴.𐨺é⬓𑄴; [P1, V5, V6]; xn--c0e34564d.xn--9ca207st53lg3f; ; ; # ᜴.𐨺é⬓𑄴
+񏁇᜴.𐨺É⬓𑄴; 񏁇᜴.𐨺é⬓𑄴; [P1, V5, V6]; xn--c0e34564d.xn--9ca207st53lg3f; ; ; # ᜴.𐨺é⬓𑄴
+񏁇᜴.𐨺É⬓𑄴; 񏁇᜴.𐨺é⬓𑄴; [P1, V5, V6]; xn--c0e34564d.xn--9ca207st53lg3f; ; ; # ᜴.𐨺é⬓𑄴
+񏁇᜴.𐨺É⬓𑄴; 񏁇᜴.𐨺é⬓𑄴; [P1, V5, V6]; xn--c0e34564d.xn--9ca207st53lg3f; ; ; # ᜴.𐨺é⬓𑄴
+񏁇᜴.𐨺é⬓𑄴; 񏁇᜴.𐨺é⬓𑄴; [P1, V5, V6]; xn--c0e34564d.xn--9ca207st53lg3f; ; ; # ᜴.𐨺é⬓𑄴
+񏁇᜴.𐨺é⬓𑄴; ; [P1, V5, V6]; xn--c0e34564d.xn--9ca207st53lg3f; ; ; # ᜴.𐨺é⬓𑄴
+xn--c0e34564d.xn--9ca207st53lg3f; 񏁇᜴.𐨺é⬓𑄴; [V5, V6]; xn--c0e34564d.xn--9ca207st53lg3f; ; ; # ᜴.𐨺é⬓𑄴
+񏁇᜴.𐨺é⬓𑄴; 񏁇᜴.𐨺é⬓𑄴; [P1, V5, V6]; xn--c0e34564d.xn--9ca207st53lg3f; ; ; # ᜴.𐨺é⬓𑄴
+񏁇᜴.𐨺é⬓𑄴; 񏁇᜴.𐨺é⬓𑄴; [P1, V5, V6]; xn--c0e34564d.xn--9ca207st53lg3f; ; ; # ᜴.𐨺é⬓𑄴
+ᢇ‍꣄。︒𞤺; ᢇ‍꣄.︒𞤺; [B1, B6, C2, P1, V6]; xn--09e669a6x8j.xn--y86cv562b; ; xn--09e4694e.xn--y86cv562b; [B1, P1, V6] # ᢇ꣄.︒𞤺
+ᢇ‍꣄。。𞤺; ᢇ‍꣄..𞤺; [B6, C2, X4_2]; xn--09e669a6x8j..xn--ye6h; [B6, C2, A4_2]; xn--09e4694e..xn--ye6h; [A4_2] # ᢇ꣄..𞤺
+ᢇ‍꣄。。𞤘; ᢇ‍꣄..𞤺; [B6, C2, X4_2]; xn--09e669a6x8j..xn--ye6h; [B6, C2, A4_2]; xn--09e4694e..xn--ye6h; [A4_2] # ᢇ꣄..𞤺
+xn--09e4694e..xn--ye6h; ᢇ꣄..𞤺; [X4_2]; xn--09e4694e..xn--ye6h; [A4_2]; ; # ᢇ꣄..𞤺
+xn--09e669a6x8j..xn--ye6h; ᢇ‍꣄..𞤺; [B6, C2, X4_2]; xn--09e669a6x8j..xn--ye6h; [B6, C2, A4_2]; ; # ᢇ꣄..𞤺
+ᢇ‍꣄。︒𞤘; ᢇ‍꣄.︒𞤺; [B1, B6, C2, P1, V6]; xn--09e669a6x8j.xn--y86cv562b; ; xn--09e4694e.xn--y86cv562b; [B1, P1, V6] # ᢇ꣄.︒𞤺
+xn--09e4694e.xn--y86cv562b; ᢇ꣄.︒𞤺; [B1, V6]; xn--09e4694e.xn--y86cv562b; ; ; # ᢇ꣄.︒𞤺
+xn--09e669a6x8j.xn--y86cv562b; ᢇ‍꣄.︒𞤺; [B1, B6, C2, V6]; xn--09e669a6x8j.xn--y86cv562b; ; ; # ᢇ꣄.︒𞤺
+𞩬򖙱᜔‌。رު≮; 𞩬򖙱᜔‌.رު≮; [B2, B3, P1, V6]; xn--fze607b9651bjwl7c.xn--wgb86el10d; ; xn--fze3930v7hz6b.xn--wgb86el10d; # ᜔.رު≮
+𞩬򖙱᜔‌。رު≮; 𞩬򖙱᜔‌.رު≮; [B2, B3, P1, V6]; xn--fze607b9651bjwl7c.xn--wgb86el10d; ; xn--fze3930v7hz6b.xn--wgb86el10d; # ᜔.رު≮
+𞩬򖙱᜔‌。رު≮; 𞩬򖙱᜔‌.رު≮; [B2, B3, P1, V6]; xn--fze607b9651bjwl7c.xn--wgb86el10d; ; xn--fze3930v7hz6b.xn--wgb86el10d; # ᜔.رު≮
+𞩬򖙱᜔‌。رު≮; 𞩬򖙱᜔‌.رު≮; [B2, B3, P1, V6]; xn--fze607b9651bjwl7c.xn--wgb86el10d; ; xn--fze3930v7hz6b.xn--wgb86el10d; # ᜔.رު≮
+xn--fze3930v7hz6b.xn--wgb86el10d; 𞩬򖙱᜔.رު≮; [B2, B3, V6]; xn--fze3930v7hz6b.xn--wgb86el10d; ; ; # ᜔.رު≮
+xn--fze607b9651bjwl7c.xn--wgb86el10d; 𞩬򖙱᜔‌.رު≮; [B2, B3, V6]; xn--fze607b9651bjwl7c.xn--wgb86el10d; ; ; # ᜔.رު≮
+Ⴣ.ٓᢤ; Ⴣ.ٓᢤ; [P1, V5, V6]; xn--7nd.xn--vhb294g; ; ; # Ⴣ.ٓᢤ
+Ⴣ.ٓᢤ; ; [P1, V5, V6]; xn--7nd.xn--vhb294g; ; ; # Ⴣ.ٓᢤ
+ⴣ.ٓᢤ; ; [V5]; xn--rlj.xn--vhb294g; ; ; # ⴣ.ٓᢤ
+xn--rlj.xn--vhb294g; ⴣ.ٓᢤ; [V5]; xn--rlj.xn--vhb294g; ; ; # ⴣ.ٓᢤ
+xn--7nd.xn--vhb294g; Ⴣ.ٓᢤ; [V5, V6]; xn--7nd.xn--vhb294g; ; ; # Ⴣ.ٓᢤ
+ⴣ.ٓᢤ; ⴣ.ٓᢤ; [V5]; xn--rlj.xn--vhb294g; ; ; # ⴣ.ٓᢤ
+󠄈ࠓ.싉򄆻Ⴤ򂡐; ࠓ.싉򄆻Ⴤ򂡐; [P1, V6]; xn--oub.xn--8nd9522gpe69cviva; ; ; # ࠓ.싉Ⴤ
+󠄈ࠓ.싉򄆻Ⴤ򂡐; ࠓ.싉򄆻Ⴤ򂡐; [P1, V6]; xn--oub.xn--8nd9522gpe69cviva; ; ; # ࠓ.싉Ⴤ
+󠄈ࠓ.싉򄆻Ⴤ򂡐; ࠓ.싉򄆻Ⴤ򂡐; [P1, V6]; xn--oub.xn--8nd9522gpe69cviva; ; ; # ࠓ.싉Ⴤ
+󠄈ࠓ.싉򄆻Ⴤ򂡐; ࠓ.싉򄆻Ⴤ򂡐; [P1, V6]; xn--oub.xn--8nd9522gpe69cviva; ; ; # ࠓ.싉Ⴤ
+󠄈ࠓ.싉򄆻ⴤ򂡐; ࠓ.싉򄆻ⴤ򂡐; [P1, V6]; xn--oub.xn--sljz109bpe25dviva; ; ; # ࠓ.싉ⴤ
+󠄈ࠓ.싉򄆻ⴤ򂡐; ࠓ.싉򄆻ⴤ򂡐; [P1, V6]; xn--oub.xn--sljz109bpe25dviva; ; ; # ࠓ.싉ⴤ
+xn--oub.xn--sljz109bpe25dviva; ࠓ.싉򄆻ⴤ򂡐; [V6]; xn--oub.xn--sljz109bpe25dviva; ; ; # ࠓ.싉ⴤ
+xn--oub.xn--8nd9522gpe69cviva; ࠓ.싉򄆻Ⴤ򂡐; [V6]; xn--oub.xn--8nd9522gpe69cviva; ; ; # ࠓ.싉Ⴤ
+󠄈ࠓ.싉򄆻ⴤ򂡐; ࠓ.싉򄆻ⴤ򂡐; [P1, V6]; xn--oub.xn--sljz109bpe25dviva; ; ; # ࠓ.싉ⴤ
+󠄈ࠓ.싉򄆻ⴤ򂡐; ࠓ.싉򄆻ⴤ򂡐; [P1, V6]; xn--oub.xn--sljz109bpe25dviva; ; ; # ࠓ.싉ⴤ
+ꨬ𑲫≮.⤂; ꨬ𑲫≮.⤂; [P1, V5, V6]; xn--gdh1854cn19c.xn--kqi; ; ; # ꨬ𑲫≮.⤂
+ꨬ𑲫≮.⤂; ꨬ𑲫≮.⤂; [P1, V5, V6]; xn--gdh1854cn19c.xn--kqi; ; ; # ꨬ𑲫≮.⤂
+ꨬ𑲫≮.⤂; ; [P1, V5, V6]; xn--gdh1854cn19c.xn--kqi; ; ; # ꨬ𑲫≮.⤂
+ꨬ𑲫≮.⤂; ꨬ𑲫≮.⤂; [P1, V5, V6]; xn--gdh1854cn19c.xn--kqi; ; ; # ꨬ𑲫≮.⤂
+xn--gdh1854cn19c.xn--kqi; ꨬ𑲫≮.⤂; [V5, V6]; xn--gdh1854cn19c.xn--kqi; ; ; # ꨬ𑲫≮.⤂
+؄𐩔≮Ⴢ.Ⴃ; ؄𐩔≮Ⴢ.Ⴃ; [B1, P1, V6]; xn--mfb416c0jox02t.xn--bnd; ; ; # 𐩔≮Ⴢ.Ⴃ
+؄𐩔≮Ⴢ.Ⴃ; ؄𐩔≮Ⴢ.Ⴃ; [B1, P1, V6]; xn--mfb416c0jox02t.xn--bnd; ; ; # 𐩔≮Ⴢ.Ⴃ
+؄𐩔≮Ⴢ.Ⴃ; ; [B1, P1, V6]; xn--mfb416c0jox02t.xn--bnd; ; ; # 𐩔≮Ⴢ.Ⴃ
+؄𐩔≮Ⴢ.Ⴃ; ؄𐩔≮Ⴢ.Ⴃ; [B1, P1, V6]; xn--mfb416c0jox02t.xn--bnd; ; ; # 𐩔≮Ⴢ.Ⴃ
+؄𐩔≮ⴢ.ⴃ; ؄𐩔≮ⴢ.ⴃ; [B1, P1, V6]; xn--mfb266l4khr54u.xn--ukj; ; ; # 𐩔≮ⴢ.ⴃ
+؄𐩔≮ⴢ.ⴃ; ; [B1, P1, V6]; xn--mfb266l4khr54u.xn--ukj; ; ; # 𐩔≮ⴢ.ⴃ
+؄𐩔≮Ⴢ.ⴃ; ; [B1, P1, V6]; xn--mfb416c0jox02t.xn--ukj; ; ; # 𐩔≮Ⴢ.ⴃ
+؄𐩔≮Ⴢ.ⴃ; ؄𐩔≮Ⴢ.ⴃ; [B1, P1, V6]; xn--mfb416c0jox02t.xn--ukj; ; ; # 𐩔≮Ⴢ.ⴃ
+xn--mfb416c0jox02t.xn--ukj; ؄𐩔≮Ⴢ.ⴃ; [B1, V6]; xn--mfb416c0jox02t.xn--ukj; ; ; # 𐩔≮Ⴢ.ⴃ
+xn--mfb266l4khr54u.xn--ukj; ؄𐩔≮ⴢ.ⴃ; [B1, V6]; xn--mfb266l4khr54u.xn--ukj; ; ; # 𐩔≮ⴢ.ⴃ
+xn--mfb416c0jox02t.xn--bnd; ؄𐩔≮Ⴢ.Ⴃ; [B1, V6]; xn--mfb416c0jox02t.xn--bnd; ; ; # 𐩔≮Ⴢ.Ⴃ
+؄𐩔≮ⴢ.ⴃ; ؄𐩔≮ⴢ.ⴃ; [B1, P1, V6]; xn--mfb266l4khr54u.xn--ukj; ; ; # 𐩔≮ⴢ.ⴃ
+؄𐩔≮ⴢ.ⴃ; ؄𐩔≮ⴢ.ⴃ; [B1, P1, V6]; xn--mfb266l4khr54u.xn--ukj; ; ; # 𐩔≮ⴢ.ⴃ
+؄𐩔≮Ⴢ.ⴃ; ؄𐩔≮Ⴢ.ⴃ; [B1, P1, V6]; xn--mfb416c0jox02t.xn--ukj; ; ; # 𐩔≮Ⴢ.ⴃ
+؄𐩔≮Ⴢ.ⴃ; ؄𐩔≮Ⴢ.ⴃ; [B1, P1, V6]; xn--mfb416c0jox02t.xn--ukj; ; ; # 𐩔≮Ⴢ.ⴃ
+𑁅。-; 𑁅.-; [V3, V5]; xn--210d.-; ; ; # 𑁅.-
+xn--210d.-; 𑁅.-; [V3, V5]; xn--210d.-; ; ; # 𑁅.-
+්򕸽󠧱。饈≠٤; ්򕸽󠧱.饈≠٤; [B1, B5, B6, P1, V5, V6]; xn--h1c25913jfwov.xn--dib144ler5f; ; ; # ්.饈≠٤
+්򕸽󠧱。饈≠٤; ්򕸽󠧱.饈≠٤; [B1, B5, B6, P1, V5, V6]; xn--h1c25913jfwov.xn--dib144ler5f; ; ; # ්.饈≠٤
+්򕸽󠧱。饈≠٤; ්򕸽󠧱.饈≠٤; [B1, B5, B6, P1, V5, V6]; xn--h1c25913jfwov.xn--dib144ler5f; ; ; # ්.饈≠٤
+්򕸽󠧱。饈≠٤; ්򕸽󠧱.饈≠٤; [B1, B5, B6, P1, V5, V6]; xn--h1c25913jfwov.xn--dib144ler5f; ; ; # ්.饈≠٤
+xn--h1c25913jfwov.xn--dib144ler5f; ්򕸽󠧱.饈≠٤; [B1, B5, B6, V5, V6]; xn--h1c25913jfwov.xn--dib144ler5f; ; ; # ්.饈≠٤
+𞥃ᠠ⁷。≯邅⬻4; 𞥃ᠠ7.≯邅⬻4; [B1, B2, P1, V6]; xn--7-v4j2826w.xn--4-ogoy01bou3i; ; ; # 𞥃ᠠ7.≯邅⬻4
+𞥃ᠠ⁷。≯邅⬻4; 𞥃ᠠ7.≯邅⬻4; [B1, B2, P1, V6]; xn--7-v4j2826w.xn--4-ogoy01bou3i; ; ; # 𞥃ᠠ7.≯邅⬻4
+𞥃ᠠ7。≯邅⬻4; 𞥃ᠠ7.≯邅⬻4; [B1, B2, P1, V6]; xn--7-v4j2826w.xn--4-ogoy01bou3i; ; ; # 𞥃ᠠ7.≯邅⬻4
+𞥃ᠠ7。≯邅⬻4; 𞥃ᠠ7.≯邅⬻4; [B1, B2, P1, V6]; xn--7-v4j2826w.xn--4-ogoy01bou3i; ; ; # 𞥃ᠠ7.≯邅⬻4
+𞤡ᠠ7。≯邅⬻4; 𞥃ᠠ7.≯邅⬻4; [B1, B2, P1, V6]; xn--7-v4j2826w.xn--4-ogoy01bou3i; ; ; # 𞥃ᠠ7.≯邅⬻4
+𞤡ᠠ7。≯邅⬻4; 𞥃ᠠ7.≯邅⬻4; [B1, B2, P1, V6]; xn--7-v4j2826w.xn--4-ogoy01bou3i; ; ; # 𞥃ᠠ7.≯邅⬻4
+xn--7-v4j2826w.xn--4-ogoy01bou3i; 𞥃ᠠ7.≯邅⬻4; [B1, B2, V6]; xn--7-v4j2826w.xn--4-ogoy01bou3i; ; ; # 𞥃ᠠ7.≯邅⬻4
+𞤡ᠠ⁷。≯邅⬻4; 𞥃ᠠ7.≯邅⬻4; [B1, B2, P1, V6]; xn--7-v4j2826w.xn--4-ogoy01bou3i; ; ; # 𞥃ᠠ7.≯邅⬻4
+𞤡ᠠ⁷。≯邅⬻4; 𞥃ᠠ7.≯邅⬻4; [B1, B2, P1, V6]; xn--7-v4j2826w.xn--4-ogoy01bou3i; ; ; # 𞥃ᠠ7.≯邅⬻4
+򠿯ᡳ-𑐻.𐹴𐋫؅󑎳; ; [B1, B6, P1, V6]; xn----m9j3429kxmy7e.xn--nfb7950kdihrp812a; ; ; # ᡳ-𑐻.𐹴𐋫
+xn----m9j3429kxmy7e.xn--nfb7950kdihrp812a; 򠿯ᡳ-𑐻.𐹴𐋫؅󑎳; [B1, B6, V6]; xn----m9j3429kxmy7e.xn--nfb7950kdihrp812a; ; ; # ᡳ-𑐻.𐹴𐋫
+򠶆ࡅੑ.넨-󶧈; ; [B5, B6, P1, V6]; xn--3vb26hb6834b.xn----i37ez0957g; ; ; # ࡅੑ.넨-
+򠶆ࡅੑ.넨-󶧈; 򠶆ࡅੑ.넨-󶧈; [B5, B6, P1, V6]; xn--3vb26hb6834b.xn----i37ez0957g; ; ; # ࡅੑ.넨-
+xn--3vb26hb6834b.xn----i37ez0957g; 򠶆ࡅੑ.넨-󶧈; [B5, B6, V6]; xn--3vb26hb6834b.xn----i37ez0957g; ; ; # ࡅੑ.넨-
+ꡦᡑ‍⒈。𐋣-; ꡦᡑ‍⒈.𐋣-; [C2, P1, V3, V6]; xn--h8e470bl0d838o.xn----381i; ; xn--h8e863drj7h.xn----381i; [P1, V3, V6] # ꡦᡑ⒈.𐋣-
+ꡦᡑ‍1.。𐋣-; ꡦᡑ‍1..𐋣-; [C2, V3, X4_2]; xn--1-o7j663bdl7m..xn----381i; [C2, V3, A4_2]; xn--1-o7j0610f..xn----381i; [V3, A4_2] # ꡦᡑ1..𐋣-
+xn--1-o7j0610f..xn----381i; ꡦᡑ1..𐋣-; [V3, X4_2]; xn--1-o7j0610f..xn----381i; [V3, A4_2]; ; # ꡦᡑ1..𐋣-
+xn--1-o7j663bdl7m..xn----381i; ꡦᡑ‍1..𐋣-; [C2, V3, X4_2]; xn--1-o7j663bdl7m..xn----381i; [C2, V3, A4_2]; ; # ꡦᡑ1..𐋣-
+xn--h8e863drj7h.xn----381i; ꡦᡑ⒈.𐋣-; [V3, V6]; xn--h8e863drj7h.xn----381i; ; ; # ꡦᡑ⒈.𐋣-
+xn--h8e470bl0d838o.xn----381i; ꡦᡑ‍⒈.𐋣-; [C2, V3, V6]; xn--h8e470bl0d838o.xn----381i; ; ; # ꡦᡑ⒈.𐋣-
+Ⴌ。􍼠ﭩ; Ⴌ.􍼠ٹ; [B5, B6, P1, V6]; xn--knd.xn--yib19191t; ; ; # Ⴌ.ٹ
+Ⴌ。􍼠ٹ; Ⴌ.􍼠ٹ; [B5, B6, P1, V6]; xn--knd.xn--yib19191t; ; ; # Ⴌ.ٹ
+ⴌ。􍼠ٹ; ⴌ.􍼠ٹ; [B5, B6, P1, V6]; xn--3kj.xn--yib19191t; ; ; # ⴌ.ٹ
+xn--3kj.xn--yib19191t; ⴌ.􍼠ٹ; [B5, B6, V6]; xn--3kj.xn--yib19191t; ; ; # ⴌ.ٹ
+xn--knd.xn--yib19191t; Ⴌ.􍼠ٹ; [B5, B6, V6]; xn--knd.xn--yib19191t; ; ; # Ⴌ.ٹ
+ⴌ。􍼠ﭩ; ⴌ.􍼠ٹ; [B5, B6, P1, V6]; xn--3kj.xn--yib19191t; ; ; # ⴌ.ٹ
+𐮁𐭱.྄፞-ᳺ; ; [B1, P1, V5, V6]; xn--r19c5a.xn----xjg270ag3m; ; ; # 𐮁𐭱.྄፞-
+xn--r19c5a.xn----xjg270ag3m; 𐮁𐭱.྄፞-ᳺ; [B1, V5, V6]; xn--r19c5a.xn----xjg270ag3m; ; ; # 𐮁𐭱.྄፞-
+⒈䰹‍-。웈; ⒈䰹‍-.웈; [C2, P1, V3, V6]; xn----tgnx5rjr6c.xn--kp5b; ; xn----dcp160o.xn--kp5b; [P1, V3, V6] # ⒈䰹-.웈
+⒈䰹‍-。웈; ⒈䰹‍-.웈; [C2, P1, V3, V6]; xn----tgnx5rjr6c.xn--kp5b; ; xn----dcp160o.xn--kp5b; [P1, V3, V6] # ⒈䰹-.웈
+1.䰹‍-。웈; 1.䰹‍-.웈; [C2, V3]; 1.xn----tgnz80r.xn--kp5b; ; 1.xn----zw5a.xn--kp5b; [V3] # 1.䰹-.웈
+1.䰹‍-。웈; 1.䰹‍-.웈; [C2, V3]; 1.xn----tgnz80r.xn--kp5b; ; 1.xn----zw5a.xn--kp5b; [V3] # 1.䰹-.웈
+1.xn----zw5a.xn--kp5b; 1.䰹-.웈; [V3]; 1.xn----zw5a.xn--kp5b; ; ; # 1.䰹-.웈
+1.xn----tgnz80r.xn--kp5b; 1.䰹‍-.웈; [C2, V3]; 1.xn----tgnz80r.xn--kp5b; ; ; # 1.䰹-.웈
+xn----dcp160o.xn--kp5b; ⒈䰹-.웈; [V3, V6]; xn----dcp160o.xn--kp5b; ; ; # ⒈䰹-.웈
+xn----tgnx5rjr6c.xn--kp5b; ⒈䰹‍-.웈; [C2, V3, V6]; xn----tgnx5rjr6c.xn--kp5b; ; ; # ⒈䰹-.웈
+て。‌󠳽߳; て.‌󠳽߳; [C1, P1, V6]; xn--m9j.xn--rtb154j9l73w; ; xn--m9j.xn--rtb10784p; [P1, V6] # て.߳
+xn--m9j.xn--rtb10784p; て.󠳽߳; [V6]; xn--m9j.xn--rtb10784p; ; ; # て.߳
+xn--m9j.xn--rtb154j9l73w; て.‌󠳽߳; [C1, V6]; xn--m9j.xn--rtb154j9l73w; ; ; # て.߳
+ς。꧀ۧ; ς.꧀ۧ; [V5]; xn--3xa.xn--3lb1944f; ; xn--4xa.xn--3lb1944f; # ς.꧀ۧ
+ς。꧀ۧ; ς.꧀ۧ; [V5]; xn--3xa.xn--3lb1944f; ; xn--4xa.xn--3lb1944f; # ς.꧀ۧ
+Σ。꧀ۧ; σ.꧀ۧ; [V5]; xn--4xa.xn--3lb1944f; ; ; # σ.꧀ۧ
+σ。꧀ۧ; σ.꧀ۧ; [V5]; xn--4xa.xn--3lb1944f; ; ; # σ.꧀ۧ
+xn--4xa.xn--3lb1944f; σ.꧀ۧ; [V5]; xn--4xa.xn--3lb1944f; ; ; # σ.꧀ۧ
+xn--3xa.xn--3lb1944f; ς.꧀ۧ; [V5]; xn--3xa.xn--3lb1944f; ; ; # ς.꧀ۧ
+Σ。꧀ۧ; σ.꧀ۧ; [V5]; xn--4xa.xn--3lb1944f; ; ; # σ.꧀ۧ
+σ。꧀ۧ; σ.꧀ۧ; [V5]; xn--4xa.xn--3lb1944f; ; ; # σ.꧀ۧ
+்󥫅򌉑.ႢႵ; ; [P1, V5, V6]; xn--xmc83135idcxza.xn--9md2b; ; ; # ்.ႢႵ
+்󥫅򌉑.ⴂⴕ; ; [P1, V5, V6]; xn--xmc83135idcxza.xn--tkjwb; ; ; # ்.ⴂⴕ
+்󥫅򌉑.Ⴂⴕ; ; [P1, V5, V6]; xn--xmc83135idcxza.xn--9md086l; ; ; # ்.Ⴂⴕ
+xn--xmc83135idcxza.xn--9md086l; ்󥫅򌉑.Ⴂⴕ; [V5, V6]; xn--xmc83135idcxza.xn--9md086l; ; ; # ்.Ⴂⴕ
+xn--xmc83135idcxza.xn--tkjwb; ்󥫅򌉑.ⴂⴕ; [V5, V6]; xn--xmc83135idcxza.xn--tkjwb; ; ; # ்.ⴂⴕ
+xn--xmc83135idcxza.xn--9md2b; ்󥫅򌉑.ႢႵ; [V5, V6]; xn--xmc83135idcxza.xn--9md2b; ; ; # ்.ႢႵ
+ᰲ🄈⾛֦.‍򯥤߽; ᰲ🄈走֦.‍򯥤߽; [C2, P1, V5, V6]; xn--xcb756i493fwi5o.xn--1tb334j1197q; ; xn--xcb756i493fwi5o.xn--1tb13454l; [P1, V5, V6] # ᰲ🄈走֦.߽
+ᰲ7,走֦.‍򯥤߽; ; [C2, P1, V5, V6]; xn--7,-bid991urn3k.xn--1tb334j1197q; ; xn--7,-bid991urn3k.xn--1tb13454l; [P1, V5, V6] # ᰲ7,走֦.߽
+xn--7,-bid991urn3k.xn--1tb13454l; ᰲ7,走֦.򯥤߽; [P1, V5, V6]; xn--7,-bid991urn3k.xn--1tb13454l; ; ; # ᰲ7,走֦.߽
+xn--7,-bid991urn3k.xn--1tb334j1197q; ᰲ7,走֦.‍򯥤߽; [C2, P1, V5, V6]; xn--7,-bid991urn3k.xn--1tb334j1197q; ; ; # ᰲ7,走֦.߽
+xn--xcb756i493fwi5o.xn--1tb13454l; ᰲ🄈走֦.򯥤߽; [V5, V6]; xn--xcb756i493fwi5o.xn--1tb13454l; ; ; # ᰲ🄈走֦.߽
+xn--xcb756i493fwi5o.xn--1tb334j1197q; ᰲ🄈走֦.‍򯥤߽; [C2, V5, V6]; xn--xcb756i493fwi5o.xn--1tb334j1197q; ; ; # ᰲ🄈走֦.߽
+ᢗ。Ӏ񝄻; ᢗ.Ӏ񝄻; [P1, V6]; xn--hbf.xn--d5a86117e; ; ; # ᢗ.Ӏ
+ᢗ。Ӏ񝄻; ᢗ.Ӏ񝄻; [P1, V6]; xn--hbf.xn--d5a86117e; ; ; # ᢗ.Ӏ
+ᢗ。ӏ񝄻; ᢗ.ӏ񝄻; [P1, V6]; xn--hbf.xn--s5a83117e; ; ; # ᢗ.ӏ
+xn--hbf.xn--s5a83117e; ᢗ.ӏ񝄻; [V6]; xn--hbf.xn--s5a83117e; ; ; # ᢗ.ӏ
+xn--hbf.xn--d5a86117e; ᢗ.Ӏ񝄻; [V6]; xn--hbf.xn--d5a86117e; ; ; # ᢗ.Ӏ
+ᢗ。ӏ񝄻; ᢗ.ӏ񝄻; [P1, V6]; xn--hbf.xn--s5a83117e; ; ; # ᢗ.ӏ
+٨-。񠏇🝆ᄾ; ٨-.񠏇🝆ᄾ; [B1, P1, V3, V6]; xn----oqc.xn--qrd1699v327w; ; ; # ٨-.🝆ᄾ
+xn----oqc.xn--qrd1699v327w; ٨-.񠏇🝆ᄾ; [B1, V3, V6]; xn----oqc.xn--qrd1699v327w; ; ; # ٨-.🝆ᄾ
+-𐋷𖾑。󠆬; -𐋷𖾑.; [V3]; xn----991iq40y.; ; ; # -𐋷𖾑.
+xn----991iq40y.; -𐋷𖾑.; [V3]; xn----991iq40y.; ; ; # -𐋷𖾑.
+‌𐹳🐴멈.꯭񐡼; ; [B1, C1, P1, V5, V6]; xn--0ug6681d406b7bwk.xn--429a8682s; ; xn--422b325mqb6i.xn--429a8682s; [B1, P1, V5, V6] # 𐹳🐴멈.꯭
+‌𐹳🐴멈.꯭񐡼; ‌𐹳🐴멈.꯭񐡼; [B1, C1, P1, V5, V6]; xn--0ug6681d406b7bwk.xn--429a8682s; ; xn--422b325mqb6i.xn--429a8682s; [B1, P1, V5, V6] # 𐹳🐴멈.꯭
+xn--422b325mqb6i.xn--429a8682s; 𐹳🐴멈.꯭񐡼; [B1, V5, V6]; xn--422b325mqb6i.xn--429a8682s; ; ; # 𐹳🐴멈.꯭
+xn--0ug6681d406b7bwk.xn--429a8682s; ‌𐹳🐴멈.꯭񐡼; [B1, C1, V5, V6]; xn--0ug6681d406b7bwk.xn--429a8682s; ; ; # 𐹳🐴멈.꯭
+≮.ݩ؃; ; [B1, P1, V6]; xn--gdh.xn--lfb92e; ; ; # ≮.ݩ
+≮.ݩ؃; ≮.ݩ؃; [B1, P1, V6]; xn--gdh.xn--lfb92e; ; ; # ≮.ݩ
+xn--gdh.xn--lfb92e; ≮.ݩ؃; [B1, V6]; xn--gdh.xn--lfb92e; ; ; # ≮.ݩ
+𐶭⾆。‌𑚶򟱃𞰘; 𐶭舌.‌𑚶򟱃𞰘; [B1, B2, B3, C1, P1, V6]; xn--tc1ao37z.xn--0ugx728gi1nfwqz2e; ; xn--tc1ao37z.xn--6e2dw557azds2d; [B2, B3, B5, B6, P1, V5, V6] # 舌.𑚶
+𐶭舌。‌𑚶򟱃𞰘; 𐶭舌.‌𑚶򟱃𞰘; [B1, B2, B3, C1, P1, V6]; xn--tc1ao37z.xn--0ugx728gi1nfwqz2e; ; xn--tc1ao37z.xn--6e2dw557azds2d; [B2, B3, B5, B6, P1, V5, V6] # 舌.𑚶
+xn--tc1ao37z.xn--6e2dw557azds2d; 𐶭舌.𑚶򟱃𞰘; [B2, B3, B5, B6, V5, V6]; xn--tc1ao37z.xn--6e2dw557azds2d; ; ; # 舌.𑚶
+xn--tc1ao37z.xn--0ugx728gi1nfwqz2e; 𐶭舌.‌𑚶򟱃𞰘; [B1, B2, B3, C1, V6]; xn--tc1ao37z.xn--0ugx728gi1nfwqz2e; ; ; # 舌.𑚶
+‌Ⴠ-.𝟷ς𞴺ς; ‌Ⴠ-.1ς𞴺ς; [B1, C1, P1, V3, V6]; xn----z1g168i.xn--1-ymba92321c; ; xn----z1g.xn--1-0mba52321c; [B1, B6, P1, V3, V6] # Ⴠ-.1ςς
+‌Ⴠ-.1ς𞴺ς; ; [B1, C1, P1, V3, V6]; xn----z1g168i.xn--1-ymba92321c; ; xn----z1g.xn--1-0mba52321c; [B1, B6, P1, V3, V6] # Ⴠ-.1ςς
+‌ⴠ-.1ς𞴺ς; ; [B1, C1, P1, V3, V6]; xn----rgn530d.xn--1-ymba92321c; ; xn----2ws.xn--1-0mba52321c; [B1, B6, P1, V3, V6] # ⴠ-.1ςς
+‌Ⴠ-.1Σ𞴺Σ; ‌Ⴠ-.1σ𞴺σ; [B1, C1, P1, V3, V6]; xn----z1g168i.xn--1-0mba52321c; ; xn----z1g.xn--1-0mba52321c; [B1, B6, P1, V3, V6] # Ⴠ-.1σσ
+‌ⴠ-.1σ𞴺σ; ; [B1, C1, P1, V3, V6]; xn----rgn530d.xn--1-0mba52321c; ; xn----2ws.xn--1-0mba52321c; [B1, B6, P1, V3, V6] # ⴠ-.1σσ
+‌Ⴠ-.1σ𞴺Σ; ‌Ⴠ-.1σ𞴺σ; [B1, C1, P1, V3, V6]; xn----z1g168i.xn--1-0mba52321c; ; xn----z1g.xn--1-0mba52321c; [B1, B6, P1, V3, V6] # Ⴠ-.1σσ
+xn----z1g.xn--1-0mba52321c; Ⴠ-.1σ𞴺σ; [B1, B6, V3, V6]; xn----z1g.xn--1-0mba52321c; ; ; # Ⴠ-.1σσ
+xn----z1g168i.xn--1-0mba52321c; ‌Ⴠ-.1σ𞴺σ; [B1, C1, V3, V6]; xn----z1g168i.xn--1-0mba52321c; ; ; # Ⴠ-.1σσ
+xn----2ws.xn--1-0mba52321c; ⴠ-.1σ𞴺σ; [B1, B6, V3, V6]; xn----2ws.xn--1-0mba52321c; ; ; # ⴠ-.1σσ
+xn----rgn530d.xn--1-0mba52321c; ‌ⴠ-.1σ𞴺σ; [B1, C1, V3, V6]; xn----rgn530d.xn--1-0mba52321c; ; ; # ⴠ-.1σσ
+‌Ⴠ-.1ς𞴺Σ; ‌Ⴠ-.1ς𞴺σ; [B1, C1, P1, V3, V6]; xn----z1g168i.xn--1-ymbd52321c; ; xn----z1g.xn--1-0mba52321c; [B1, B6, P1, V3, V6] # Ⴠ-.1ςσ
+‌ⴠ-.1ς𞴺σ; ; [B1, C1, P1, V3, V6]; xn----rgn530d.xn--1-ymbd52321c; ; xn----2ws.xn--1-0mba52321c; [B1, B6, P1, V3, V6] # ⴠ-.1ςσ
+xn----rgn530d.xn--1-ymbd52321c; ‌ⴠ-.1ς𞴺σ; [B1, C1, V3, V6]; xn----rgn530d.xn--1-ymbd52321c; ; ; # ⴠ-.1ςσ
+xn----z1g168i.xn--1-ymbd52321c; ‌Ⴠ-.1ς𞴺σ; [B1, C1, V3, V6]; xn----z1g168i.xn--1-ymbd52321c; ; ; # Ⴠ-.1ςσ
+xn----rgn530d.xn--1-ymba92321c; ‌ⴠ-.1ς𞴺ς; [B1, C1, V3, V6]; xn----rgn530d.xn--1-ymba92321c; ; ; # ⴠ-.1ςς
+xn----z1g168i.xn--1-ymba92321c; ‌Ⴠ-.1ς𞴺ς; [B1, C1, V3, V6]; xn----z1g168i.xn--1-ymba92321c; ; ; # Ⴠ-.1ςς
+‌ⴠ-.𝟷ς𞴺ς; ‌ⴠ-.1ς𞴺ς; [B1, C1, P1, V3, V6]; xn----rgn530d.xn--1-ymba92321c; ; xn----2ws.xn--1-0mba52321c; [B1, B6, P1, V3, V6] # ⴠ-.1ςς
+‌Ⴠ-.𝟷Σ𞴺Σ; ‌Ⴠ-.1σ𞴺σ; [B1, C1, P1, V3, V6]; xn----z1g168i.xn--1-0mba52321c; ; xn----z1g.xn--1-0mba52321c; [B1, B6, P1, V3, V6] # Ⴠ-.1σσ
+‌ⴠ-.𝟷σ𞴺σ; ‌ⴠ-.1σ𞴺σ; [B1, C1, P1, V3, V6]; xn----rgn530d.xn--1-0mba52321c; ; xn----2ws.xn--1-0mba52321c; [B1, B6, P1, V3, V6] # ⴠ-.1σσ
+‌Ⴠ-.𝟷σ𞴺Σ; ‌Ⴠ-.1σ𞴺σ; [B1, C1, P1, V3, V6]; xn----z1g168i.xn--1-0mba52321c; ; xn----z1g.xn--1-0mba52321c; [B1, B6, P1, V3, V6] # Ⴠ-.1σσ
+‌Ⴠ-.𝟷ς𞴺Σ; ‌Ⴠ-.1ς𞴺σ; [B1, C1, P1, V3, V6]; xn----z1g168i.xn--1-ymbd52321c; ; xn----z1g.xn--1-0mba52321c; [B1, B6, P1, V3, V6] # Ⴠ-.1ςσ
+‌ⴠ-.𝟷ς𞴺σ; ‌ⴠ-.1ς𞴺σ; [B1, C1, P1, V3, V6]; xn----rgn530d.xn--1-ymbd52321c; ; xn----2ws.xn--1-0mba52321c; [B1, B6, P1, V3, V6] # ⴠ-.1ςσ
+𑲘󠄒𓑡。𝟪Ⴜ; 𑲘𓑡.8Ⴜ; [P1, V5, V6]; xn--7m3d291b.xn--8-s1g; ; ; # 𑲘.8Ⴜ
+𑲘󠄒𓑡。8Ⴜ; 𑲘𓑡.8Ⴜ; [P1, V5, V6]; xn--7m3d291b.xn--8-s1g; ; ; # 𑲘.8Ⴜ
+𑲘󠄒𓑡。8ⴜ; 𑲘𓑡.8ⴜ; [P1, V5, V6]; xn--7m3d291b.xn--8-vws; ; ; # 𑲘.8ⴜ
+xn--7m3d291b.xn--8-vws; 𑲘𓑡.8ⴜ; [V5, V6]; xn--7m3d291b.xn--8-vws; ; ; # 𑲘.8ⴜ
+xn--7m3d291b.xn--8-s1g; 𑲘𓑡.8Ⴜ; [V5, V6]; xn--7m3d291b.xn--8-s1g; ; ; # 𑲘.8Ⴜ
+𑲘󠄒𓑡。𝟪ⴜ; 𑲘𓑡.8ⴜ; [P1, V5, V6]; xn--7m3d291b.xn--8-vws; ; ; # 𑲘.8ⴜ
+䪏ګߠु。뭕ᢝឹ; 䪏ګߠु.뭕ᢝឹ; [B5, B6]; xn--ekb23dj4at01n.xn--43e96bh910b; ; ; # 䪏ګߠु.뭕ᢝឹ
+䪏ګߠु。뭕ᢝឹ; 䪏ګߠु.뭕ᢝឹ; [B5, B6]; xn--ekb23dj4at01n.xn--43e96bh910b; ; ; # 䪏ګߠु.뭕ᢝឹ
+䪏ګߠु。뭕ᢝឹ; 䪏ګߠु.뭕ᢝឹ; [B5, B6]; xn--ekb23dj4at01n.xn--43e96bh910b; ; ; # 䪏ګߠु.뭕ᢝឹ
+䪏ګߠु。뭕ᢝឹ; 䪏ګߠु.뭕ᢝឹ; [B5, B6]; xn--ekb23dj4at01n.xn--43e96bh910b; ; ; # 䪏ګߠु.뭕ᢝឹ
+xn--ekb23dj4at01n.xn--43e96bh910b; 䪏ګߠु.뭕ᢝឹ; [B5, B6]; xn--ekb23dj4at01n.xn--43e96bh910b; ; ; # 䪏ګߠु.뭕ᢝឹ
+᮫。🂉󠁰; ᮫.🂉󠁰; [P1, V5, V6]; xn--zxf.xn--fx7ho0250c; ; ; # ᮫.🂉
+᮫。🂉󠁰; ᮫.🂉󠁰; [P1, V5, V6]; xn--zxf.xn--fx7ho0250c; ; ; # ᮫.🂉
+xn--zxf.xn--fx7ho0250c; ᮫.🂉󠁰; [V5, V6]; xn--zxf.xn--fx7ho0250c; ; ; # ᮫.🂉
+󩎃ૄ。ς‍𐹮𑈵; 󩎃ૄ.ς‍𐹮𑈵; [B5, C2, P1, V6]; xn--dfc53161q.xn--3xa006lzo7nsfd; ; xn--dfc53161q.xn--4xa8467k5mc; [B5, P1, V6] # ૄ.ς𐹮𑈵
+󩎃ૄ。Σ‍𐹮𑈵; 󩎃ૄ.σ‍𐹮𑈵; [B5, C2, P1, V6]; xn--dfc53161q.xn--4xa895lzo7nsfd; ; xn--dfc53161q.xn--4xa8467k5mc; [B5, P1, V6] # ૄ.σ𐹮𑈵
+󩎃ૄ。σ‍𐹮𑈵; 󩎃ૄ.σ‍𐹮𑈵; [B5, C2, P1, V6]; xn--dfc53161q.xn--4xa895lzo7nsfd; ; xn--dfc53161q.xn--4xa8467k5mc; [B5, P1, V6] # ૄ.σ𐹮𑈵
+xn--dfc53161q.xn--4xa8467k5mc; 󩎃ૄ.σ𐹮𑈵; [B5, V6]; xn--dfc53161q.xn--4xa8467k5mc; ; ; # ૄ.σ𐹮𑈵
+xn--dfc53161q.xn--4xa895lzo7nsfd; 󩎃ૄ.σ‍𐹮𑈵; [B5, C2, V6]; xn--dfc53161q.xn--4xa895lzo7nsfd; ; ; # ૄ.σ𐹮𑈵
+xn--dfc53161q.xn--3xa006lzo7nsfd; 󩎃ૄ.ς‍𐹮𑈵; [B5, C2, V6]; xn--dfc53161q.xn--3xa006lzo7nsfd; ; ; # ૄ.ς𐹮𑈵
+𐫀ᡂ𑜫.𑘿; 𐫀ᡂ𑜫.𑘿; [B1, B2, B3, B6, V5]; xn--17e9625js1h.xn--sb2d; ; ; # 𐫀ᡂ𑜫.𑘿
+𐫀ᡂ𑜫.𑘿; ; [B1, B2, B3, B6, V5]; xn--17e9625js1h.xn--sb2d; ; ; # 𐫀ᡂ𑜫.𑘿
+xn--17e9625js1h.xn--sb2d; 𐫀ᡂ𑜫.𑘿; [B1, B2, B3, B6, V5]; xn--17e9625js1h.xn--sb2d; ; ; # 𐫀ᡂ𑜫.𑘿
+󬚶󸋖򖩰-。‌; 󬚶󸋖򖩰-.‌; [C1, P1, V3, V6]; xn----7i12hu122k9ire.xn--0ug; ; xn----7i12hu122k9ire.; [P1, V3, V6] # -.
+xn----7i12hu122k9ire.; 󬚶󸋖򖩰-.; [V3, V6]; xn----7i12hu122k9ire.; ; ; # -.
+xn----7i12hu122k9ire.xn--0ug; 󬚶󸋖򖩰-.‌; [C1, V3, V6]; xn----7i12hu122k9ire.xn--0ug; ; ; # -.
+𐹣.߂; 𐹣.߂; [B1]; xn--bo0d.xn--dsb; ; ; # 𐹣.߂
+𐹣.߂; ; [B1]; xn--bo0d.xn--dsb; ; ; # 𐹣.߂
+xn--bo0d.xn--dsb; 𐹣.߂; [B1]; xn--bo0d.xn--dsb; ; ; # 𐹣.߂
+-ߡ。Ↄ; -ߡ.Ↄ; [B1, P1, V3, V6]; xn----8cd.xn--q5g; ; ; # -ߡ.Ↄ
+-ߡ。Ↄ; -ߡ.Ↄ; [B1, P1, V3, V6]; xn----8cd.xn--q5g; ; ; # -ߡ.Ↄ
+-ߡ。ↄ; -ߡ.ↄ; [B1, V3]; xn----8cd.xn--r5g; ; ; # -ߡ.ↄ
+xn----8cd.xn--r5g; -ߡ.ↄ; [B1, V3]; xn----8cd.xn--r5g; ; ; # -ߡ.ↄ
+xn----8cd.xn--q5g; -ߡ.Ↄ; [B1, V3, V6]; xn----8cd.xn--q5g; ; ; # -ߡ.Ↄ
+-ߡ。ↄ; -ߡ.ↄ; [B1, V3]; xn----8cd.xn--r5g; ; ; # -ߡ.ↄ
+‍-︒󠄄。ß哑‌𐵿; ‍-︒.ß哑‌𐵿; [B1, B5, B6, C1, C2, P1, V6]; xn----tgnt341h.xn--zca670n5f0binyk; ; xn----o89h.xn--ss-h46c5711e; [B1, B5, B6, P1, V3, V6] # -︒.ß哑
+‍-。󠄄。ß哑‌𐵿; ‍-..ß哑‌𐵿; [B1, B5, B6, C1, C2, P1, V3, V6, X4_2]; xn----tgn..xn--zca670n5f0binyk; [B1, B5, B6, C1, C2, P1, V3, V6, A4_2]; -..xn--ss-h46c5711e; [B1, B5, B6, P1, V3, V6, A4_2] # -..ß哑
+‍-。󠄄。SS哑‌𐵿; ‍-..ss哑‌𐵿; [B1, B5, B6, C1, C2, P1, V3, V6, X4_2]; xn----tgn..xn--ss-k1ts75zb8ym; [B1, B5, B6, C1, C2, P1, V3, V6, A4_2]; -..xn--ss-h46c5711e; [B1, B5, B6, P1, V3, V6, A4_2] # -..ss哑
+‍-。󠄄。ss哑‌𐵿; ‍-..ss哑‌𐵿; [B1, B5, B6, C1, C2, P1, V3, V6, X4_2]; xn----tgn..xn--ss-k1ts75zb8ym; [B1, B5, B6, C1, C2, P1, V3, V6, A4_2]; -..xn--ss-h46c5711e; [B1, B5, B6, P1, V3, V6, A4_2] # -..ss哑
+‍-。󠄄。Ss哑‌𐵿; ‍-..ss哑‌𐵿; [B1, B5, B6, C1, C2, P1, V3, V6, X4_2]; xn----tgn..xn--ss-k1ts75zb8ym; [B1, B5, B6, C1, C2, P1, V3, V6, A4_2]; -..xn--ss-h46c5711e; [B1, B5, B6, P1, V3, V6, A4_2] # -..ss哑
+-..xn--ss-h46c5711e; -..ss哑𐵿; [B1, B5, B6, V3, V6, X4_2]; -..xn--ss-h46c5711e; [B1, B5, B6, V3, V6, A4_2]; ; # -..ss哑
+xn----tgn..xn--ss-k1ts75zb8ym; ‍-..ss哑‌𐵿; [B1, B5, B6, C1, C2, V3, V6, X4_2]; xn----tgn..xn--ss-k1ts75zb8ym; [B1, B5, B6, C1, C2, V3, V6, A4_2]; ; # -..ss哑
+xn----tgn..xn--zca670n5f0binyk; ‍-..ß哑‌𐵿; [B1, B5, B6, C1, C2, V3, V6, X4_2]; xn----tgn..xn--zca670n5f0binyk; [B1, B5, B6, C1, C2, V3, V6, A4_2]; ; # -..ß哑
+‍-︒󠄄。SS哑‌𐵿; ‍-︒.ss哑‌𐵿; [B1, B5, B6, C1, C2, P1, V6]; xn----tgnt341h.xn--ss-k1ts75zb8ym; ; xn----o89h.xn--ss-h46c5711e; [B1, B5, B6, P1, V3, V6] # -︒.ss哑
+‍-︒󠄄。ss哑‌𐵿; ‍-︒.ss哑‌𐵿; [B1, B5, B6, C1, C2, P1, V6]; xn----tgnt341h.xn--ss-k1ts75zb8ym; ; xn----o89h.xn--ss-h46c5711e; [B1, B5, B6, P1, V3, V6] # -︒.ss哑
+‍-︒󠄄。Ss哑‌𐵿; ‍-︒.ss哑‌𐵿; [B1, B5, B6, C1, C2, P1, V6]; xn----tgnt341h.xn--ss-k1ts75zb8ym; ; xn----o89h.xn--ss-h46c5711e; [B1, B5, B6, P1, V3, V6] # -︒.ss哑
+xn----o89h.xn--ss-h46c5711e; -︒.ss哑𐵿; [B1, B5, B6, V3, V6]; xn----o89h.xn--ss-h46c5711e; ; ; # -︒.ss哑
+xn----tgnt341h.xn--ss-k1ts75zb8ym; ‍-︒.ss哑‌𐵿; [B1, B5, B6, C1, C2, V6]; xn----tgnt341h.xn--ss-k1ts75zb8ym; ; ; # -︒.ss哑
+xn----tgnt341h.xn--zca670n5f0binyk; ‍-︒.ß哑‌𐵿; [B1, B5, B6, C1, C2, V6]; xn----tgnt341h.xn--zca670n5f0binyk; ; ; # -︒.ß哑
+︒.𑑂︯; ︒.𑑂︯; [P1, V5, V6]; xn--y86c.xn--s96cu30b; ; ; # ︒.𑑂︯
+︒.𑑂︯; ︒.𑑂︯; [P1, V5, V6]; xn--y86c.xn--s96cu30b; ; ; # ︒.𑑂︯
+。.𑑂︯; ..𑑂︯; [V5, X4_2]; ..xn--s96cu30b; [V5, A4_2]; ; # ..𑑂︯
+..xn--s96cu30b; ..𑑂︯; [V5, X4_2]; ..xn--s96cu30b; [V5, A4_2]; ; # ..𑑂︯
+xn--y86c.xn--s96cu30b; ︒.𑑂︯; [V5, V6]; xn--y86c.xn--s96cu30b; ; ; # ︒.𑑂︯
+꤬。‍; ꤬.‍; [C2, V5]; xn--zi9a.xn--1ug; ; xn--zi9a.; [V5] # ꤬.
+xn--zi9a.; ꤬.; [V5]; xn--zi9a.; ; ; # ꤬.
+xn--zi9a.xn--1ug; ꤬.‍; [C2, V5]; xn--zi9a.xn--1ug; ; ; # ꤬.
+‍󠸡。ﳗ; ‍󠸡.هج; [B1, C2, P1, V6]; xn--1ug80651l.xn--rgb7c; ; xn--d356e.xn--rgb7c; [B1, P1, V6] # .هج
+‍󠸡。هج; ‍󠸡.هج; [B1, C2, P1, V6]; xn--1ug80651l.xn--rgb7c; ; xn--d356e.xn--rgb7c; [B1, P1, V6] # .هج
+xn--d356e.xn--rgb7c; 󠸡.هج; [B1, V6]; xn--d356e.xn--rgb7c; ; ; # .هج
+xn--1ug80651l.xn--rgb7c; ‍󠸡.هج; [B1, C2, V6]; xn--1ug80651l.xn--rgb7c; ; ; # .هج
+-Ⴄ𝟢٣.𑍴ς; -Ⴄ0٣.𑍴ς; [B1, P1, V3, V5, V6]; xn---0-iyd216h.xn--3xa1220l; ; xn---0-iyd216h.xn--4xa9120l; # -Ⴄ0٣.𑍴ς
+-Ⴄ0٣.𑍴ς; ; [B1, P1, V3, V5, V6]; xn---0-iyd216h.xn--3xa1220l; ; xn---0-iyd216h.xn--4xa9120l; # -Ⴄ0٣.𑍴ς
+-ⴄ0٣.𑍴ς; ; [B1, V3, V5]; xn---0-iyd8660b.xn--3xa1220l; ; xn---0-iyd8660b.xn--4xa9120l; # -ⴄ0٣.𑍴ς
+-Ⴄ0٣.𑍴Σ; -Ⴄ0٣.𑍴σ; [B1, P1, V3, V5, V6]; xn---0-iyd216h.xn--4xa9120l; ; ; # -Ⴄ0٣.𑍴σ
+-ⴄ0٣.𑍴σ; ; [B1, V3, V5]; xn---0-iyd8660b.xn--4xa9120l; ; ; # -ⴄ0٣.𑍴σ
+xn---0-iyd8660b.xn--4xa9120l; -ⴄ0٣.𑍴σ; [B1, V3, V5]; xn---0-iyd8660b.xn--4xa9120l; ; ; # -ⴄ0٣.𑍴σ
+xn---0-iyd216h.xn--4xa9120l; -Ⴄ0٣.𑍴σ; [B1, V3, V5, V6]; xn---0-iyd216h.xn--4xa9120l; ; ; # -Ⴄ0٣.𑍴σ
+xn---0-iyd8660b.xn--3xa1220l; -ⴄ0٣.𑍴ς; [B1, V3, V5]; xn---0-iyd8660b.xn--3xa1220l; ; ; # -ⴄ0٣.𑍴ς
+xn---0-iyd216h.xn--3xa1220l; -Ⴄ0٣.𑍴ς; [B1, V3, V5, V6]; xn---0-iyd216h.xn--3xa1220l; ; ; # -Ⴄ0٣.𑍴ς
+-ⴄ𝟢٣.𑍴ς; -ⴄ0٣.𑍴ς; [B1, V3, V5]; xn---0-iyd8660b.xn--3xa1220l; ; xn---0-iyd8660b.xn--4xa9120l; # -ⴄ0٣.𑍴ς
+-Ⴄ𝟢٣.𑍴Σ; -Ⴄ0٣.𑍴σ; [B1, P1, V3, V5, V6]; xn---0-iyd216h.xn--4xa9120l; ; ; # -Ⴄ0٣.𑍴σ
+-ⴄ𝟢٣.𑍴σ; -ⴄ0٣.𑍴σ; [B1, V3, V5]; xn---0-iyd8660b.xn--4xa9120l; ; ; # -ⴄ0٣.𑍴σ
+󦈄。-; 󦈄.-; [P1, V3, V6]; xn--xm38e.-; ; ; # .-
+xn--xm38e.-; 󦈄.-; [V3, V6]; xn--xm38e.-; ; ; # .-
+⋠𐋮.򶈮༘ß≯; ⋠𐋮.򶈮༘ß≯; [P1, V6]; xn--pgh4639f.xn--zca593eo6oc013y; ; xn--pgh4639f.xn--ss-ifj426nle504a; # ⋠𐋮.༘ß≯
+⋠𐋮.򶈮༘ß≯; ⋠𐋮.򶈮༘ß≯; [P1, V6]; xn--pgh4639f.xn--zca593eo6oc013y; ; xn--pgh4639f.xn--ss-ifj426nle504a; # ⋠𐋮.༘ß≯
+⋠𐋮.򶈮༘ß≯; ; [P1, V6]; xn--pgh4639f.xn--zca593eo6oc013y; ; xn--pgh4639f.xn--ss-ifj426nle504a; # ⋠𐋮.༘ß≯
+⋠𐋮.򶈮༘ß≯; ⋠𐋮.򶈮༘ß≯; [P1, V6]; xn--pgh4639f.xn--zca593eo6oc013y; ; xn--pgh4639f.xn--ss-ifj426nle504a; # ⋠𐋮.༘ß≯
+⋠𐋮.򶈮༘SS≯; ⋠𐋮.򶈮༘ss≯; [P1, V6]; xn--pgh4639f.xn--ss-ifj426nle504a; ; ; # ⋠𐋮.༘ss≯
+⋠𐋮.򶈮༘SS≯; ⋠𐋮.򶈮༘ss≯; [P1, V6]; xn--pgh4639f.xn--ss-ifj426nle504a; ; ; # ⋠𐋮.༘ss≯
+⋠𐋮.򶈮༘ss≯; ; [P1, V6]; xn--pgh4639f.xn--ss-ifj426nle504a; ; ; # ⋠𐋮.༘ss≯
+⋠𐋮.򶈮༘ss≯; ⋠𐋮.򶈮༘ss≯; [P1, V6]; xn--pgh4639f.xn--ss-ifj426nle504a; ; ; # ⋠𐋮.༘ss≯
+⋠𐋮.򶈮༘Ss≯; ⋠𐋮.򶈮༘ss≯; [P1, V6]; xn--pgh4639f.xn--ss-ifj426nle504a; ; ; # ⋠𐋮.༘ss≯
+⋠𐋮.򶈮༘Ss≯; ⋠𐋮.򶈮༘ss≯; [P1, V6]; xn--pgh4639f.xn--ss-ifj426nle504a; ; ; # ⋠𐋮.༘ss≯
+xn--pgh4639f.xn--ss-ifj426nle504a; ⋠𐋮.򶈮༘ss≯; [V6]; xn--pgh4639f.xn--ss-ifj426nle504a; ; ; # ⋠𐋮.༘ss≯
+xn--pgh4639f.xn--zca593eo6oc013y; ⋠𐋮.򶈮༘ß≯; [V6]; xn--pgh4639f.xn--zca593eo6oc013y; ; ; # ⋠𐋮.༘ß≯
+⋠𐋮.򶈮༘SS≯; ⋠𐋮.򶈮༘ss≯; [P1, V6]; xn--pgh4639f.xn--ss-ifj426nle504a; ; ; # ⋠𐋮.༘ss≯
+⋠𐋮.򶈮༘SS≯; ⋠𐋮.򶈮༘ss≯; [P1, V6]; xn--pgh4639f.xn--ss-ifj426nle504a; ; ; # ⋠𐋮.༘ss≯
+⋠𐋮.򶈮༘ss≯; ⋠𐋮.򶈮༘ss≯; [P1, V6]; xn--pgh4639f.xn--ss-ifj426nle504a; ; ; # ⋠𐋮.༘ss≯
+⋠𐋮.򶈮༘ss≯; ⋠𐋮.򶈮༘ss≯; [P1, V6]; xn--pgh4639f.xn--ss-ifj426nle504a; ; ; # ⋠𐋮.༘ss≯
+⋠𐋮.򶈮༘Ss≯; ⋠𐋮.򶈮༘ss≯; [P1, V6]; xn--pgh4639f.xn--ss-ifj426nle504a; ; ; # ⋠𐋮.༘ss≯
+⋠𐋮.򶈮༘Ss≯; ⋠𐋮.򶈮༘ss≯; [P1, V6]; xn--pgh4639f.xn--ss-ifj426nle504a; ; ; # ⋠𐋮.༘ss≯
+1𐋸٤。󠢮ﮤ񷝊; 1𐋸٤.󠢮ۀ񷝊; [B1, P1, V6]; xn--1-hqc3905q.xn--zkb83268gqee4a; ; ; # 1𐋸٤.ۀ
+1𐋸٤。󠢮ۀ񷝊; 1𐋸٤.󠢮ۀ񷝊; [B1, P1, V6]; xn--1-hqc3905q.xn--zkb83268gqee4a; ; ; # 1𐋸٤.ۀ
+1𐋸٤。󠢮ۀ񷝊; 1𐋸٤.󠢮ۀ񷝊; [B1, P1, V6]; xn--1-hqc3905q.xn--zkb83268gqee4a; ; ; # 1𐋸٤.ۀ
+xn--1-hqc3905q.xn--zkb83268gqee4a; 1𐋸٤.󠢮ۀ񷝊; [B1, V6]; xn--1-hqc3905q.xn--zkb83268gqee4a; ; ; # 1𐋸٤.ۀ
+儭-。𐹴Ⴢ񥳠‌; 儭-.𐹴Ⴢ񥳠‌; [B1, B6, C1, P1, V3, V6]; xn----gz7a.xn--6nd249ejl4pusr7b; ; xn----gz7a.xn--6nd5001kyw98a; [B1, B6, P1, V3, V6] # 儭-.𐹴Ⴢ
+儭-。𐹴Ⴢ񥳠‌; 儭-.𐹴Ⴢ񥳠‌; [B1, B6, C1, P1, V3, V6]; xn----gz7a.xn--6nd249ejl4pusr7b; ; xn----gz7a.xn--6nd5001kyw98a; [B1, B6, P1, V3, V6] # 儭-.𐹴Ⴢ
+儭-。𐹴ⴢ񥳠‌; 儭-.𐹴ⴢ񥳠‌; [B1, B6, C1, P1, V3, V6]; xn----gz7a.xn--0ug472cfq0pus98b; ; xn----gz7a.xn--qlj9223eywx0b; [B1, B6, P1, V3, V6] # 儭-.𐹴ⴢ
+xn----gz7a.xn--qlj9223eywx0b; 儭-.𐹴ⴢ񥳠; [B1, B6, V3, V6]; xn----gz7a.xn--qlj9223eywx0b; ; ; # 儭-.𐹴ⴢ
+xn----gz7a.xn--0ug472cfq0pus98b; 儭-.𐹴ⴢ񥳠‌; [B1, B6, C1, V3, V6]; xn----gz7a.xn--0ug472cfq0pus98b; ; ; # 儭-.𐹴ⴢ
+xn----gz7a.xn--6nd5001kyw98a; 儭-.𐹴Ⴢ񥳠; [B1, B6, V3, V6]; xn----gz7a.xn--6nd5001kyw98a; ; ; # 儭-.𐹴Ⴢ
+xn----gz7a.xn--6nd249ejl4pusr7b; 儭-.𐹴Ⴢ񥳠‌; [B1, B6, C1, V3, V6]; xn----gz7a.xn--6nd249ejl4pusr7b; ; ; # 儭-.𐹴Ⴢ
+儭-。𐹴ⴢ񥳠‌; 儭-.𐹴ⴢ񥳠‌; [B1, B6, C1, P1, V3, V6]; xn----gz7a.xn--0ug472cfq0pus98b; ; xn----gz7a.xn--qlj9223eywx0b; [B1, B6, P1, V3, V6] # 儭-.𐹴ⴢ
+𝟺𐋷ڹ.𞤭򿍡; 4𐋷ڹ.𞤭򿍡; [B1, B2, B3, P1, V6]; xn--4-cvc5384q.xn--le6hi7322b; ; ; # 4𐋷ڹ.𞤭
+4𐋷ڹ.𞤭򿍡; ; [B1, B2, B3, P1, V6]; xn--4-cvc5384q.xn--le6hi7322b; ; ; # 4𐋷ڹ.𞤭
+4𐋷ڹ.𞤋򿍡; 4𐋷ڹ.𞤭򿍡; [B1, B2, B3, P1, V6]; xn--4-cvc5384q.xn--le6hi7322b; ; ; # 4𐋷ڹ.𞤭
+xn--4-cvc5384q.xn--le6hi7322b; 4𐋷ڹ.𞤭򿍡; [B1, B2, B3, V6]; xn--4-cvc5384q.xn--le6hi7322b; ; ; # 4𐋷ڹ.𞤭
+𝟺𐋷ڹ.𞤋򿍡; 4𐋷ڹ.𞤭򿍡; [B1, B2, B3, P1, V6]; xn--4-cvc5384q.xn--le6hi7322b; ; ; # 4𐋷ڹ.𞤭
+≯-ꡋ𑲣.⒈𐹭; ; [B1, P1, V6]; xn----ogox061d5i8d.xn--tsh0666f; ; ; # ≯-ꡋ𑲣.⒈𐹭
+≯-ꡋ𑲣.⒈𐹭; ≯-ꡋ𑲣.⒈𐹭; [B1, P1, V6]; xn----ogox061d5i8d.xn--tsh0666f; ; ; # ≯-ꡋ𑲣.⒈𐹭
+≯-ꡋ𑲣.1.𐹭; ; [B1, P1, V6]; xn----ogox061d5i8d.1.xn--lo0d; ; ; # ≯-ꡋ𑲣.1.𐹭
+≯-ꡋ𑲣.1.𐹭; ≯-ꡋ𑲣.1.𐹭; [B1, P1, V6]; xn----ogox061d5i8d.1.xn--lo0d; ; ; # ≯-ꡋ𑲣.1.𐹭
+xn----ogox061d5i8d.1.xn--lo0d; ≯-ꡋ𑲣.1.𐹭; [B1, V6]; xn----ogox061d5i8d.1.xn--lo0d; ; ; # ≯-ꡋ𑲣.1.𐹭
+xn----ogox061d5i8d.xn--tsh0666f; ≯-ꡋ𑲣.⒈𐹭; [B1, V6]; xn----ogox061d5i8d.xn--tsh0666f; ; ; # ≯-ꡋ𑲣.⒈𐹭
+̰.󰜱蚀; ̰.󰜱蚀; [P1, V5, V6]; xn--xta.xn--e91aw9417e; ; ; # ̰.蚀
+̰.󰜱蚀; ; [P1, V5, V6]; xn--xta.xn--e91aw9417e; ; ; # ̰.蚀
+xn--xta.xn--e91aw9417e; ̰.󰜱蚀; [V5, V6]; xn--xta.xn--e91aw9417e; ; ; # ̰.蚀
+יּႸ.𞡼𑇀ß⃗; יּႸ.𞡼𑇀ß⃗; [B2, B3, P1, V6]; xn--kdb1d867b.xn--zca284nhg9nrrxg; ; xn--kdb1d867b.xn--ss-yju5690ken9h; # יּႸ.𞡼𑇀ß⃗
+יּႸ.𞡼𑇀ß⃗; ; [B2, B3, P1, V6]; xn--kdb1d867b.xn--zca284nhg9nrrxg; ; xn--kdb1d867b.xn--ss-yju5690ken9h; # יּႸ.𞡼𑇀ß⃗
+יּⴘ.𞡼𑇀ß⃗; ; [B2, B3]; xn--kdb1d278n.xn--zca284nhg9nrrxg; ; xn--kdb1d278n.xn--ss-yju5690ken9h; # יּⴘ.𞡼𑇀ß⃗
+יּႸ.𞡼𑇀SS⃗; יּႸ.𞡼𑇀ss⃗; [B2, B3, P1, V6]; xn--kdb1d867b.xn--ss-yju5690ken9h; ; ; # יּႸ.𞡼𑇀ss⃗
+יּⴘ.𞡼𑇀ss⃗; ; [B2, B3]; xn--kdb1d278n.xn--ss-yju5690ken9h; ; ; # יּⴘ.𞡼𑇀ss⃗
+xn--kdb1d278n.xn--ss-yju5690ken9h; יּⴘ.𞡼𑇀ss⃗; [B2, B3]; xn--kdb1d278n.xn--ss-yju5690ken9h; ; ; # יּⴘ.𞡼𑇀ss⃗
+xn--kdb1d867b.xn--ss-yju5690ken9h; יּႸ.𞡼𑇀ss⃗; [B2, B3, V6]; xn--kdb1d867b.xn--ss-yju5690ken9h; ; ; # יּႸ.𞡼𑇀ss⃗
+xn--kdb1d278n.xn--zca284nhg9nrrxg; יּⴘ.𞡼𑇀ß⃗; [B2, B3]; xn--kdb1d278n.xn--zca284nhg9nrrxg; ; ; # יּⴘ.𞡼𑇀ß⃗
+xn--kdb1d867b.xn--zca284nhg9nrrxg; יּႸ.𞡼𑇀ß⃗; [B2, B3, V6]; xn--kdb1d867b.xn--zca284nhg9nrrxg; ; ; # יּႸ.𞡼𑇀ß⃗
+יּⴘ.𞡼𑇀ß⃗; יּⴘ.𞡼𑇀ß⃗; [B2, B3]; xn--kdb1d278n.xn--zca284nhg9nrrxg; ; xn--kdb1d278n.xn--ss-yju5690ken9h; # יּⴘ.𞡼𑇀ß⃗
+יּႸ.𞡼𑇀SS⃗; יּႸ.𞡼𑇀ss⃗; [B2, B3, P1, V6]; xn--kdb1d867b.xn--ss-yju5690ken9h; ; ; # יּႸ.𞡼𑇀ss⃗
+יּⴘ.𞡼𑇀ss⃗; יּⴘ.𞡼𑇀ss⃗; [B2, B3]; xn--kdb1d278n.xn--ss-yju5690ken9h; ; ; # יּⴘ.𞡼𑇀ss⃗
+יּႸ.𞡼𑇀ss⃗; ; [B2, B3, P1, V6]; xn--kdb1d867b.xn--ss-yju5690ken9h; ; ; # יּႸ.𞡼𑇀ss⃗
+יּႸ.𞡼𑇀ss⃗; יּႸ.𞡼𑇀ss⃗; [B2, B3, P1, V6]; xn--kdb1d867b.xn--ss-yju5690ken9h; ; ; # יּႸ.𞡼𑇀ss⃗
+ᮣ𐹰򁱓。凬; ᮣ𐹰򁱓.凬; [B1, P1, V5, V6]; xn--rxfz314ilg20c.xn--t9q; ; ; # ᮣ𐹰.凬
+ᮣ𐹰򁱓。凬; ᮣ𐹰򁱓.凬; [B1, P1, V5, V6]; xn--rxfz314ilg20c.xn--t9q; ; ; # ᮣ𐹰.凬
+xn--rxfz314ilg20c.xn--t9q; ᮣ𐹰򁱓.凬; [B1, V5, V6]; xn--rxfz314ilg20c.xn--t9q; ; ; # ᮣ𐹰.凬
+🢟🄈‍ꡎ。྄; 🢟🄈‍ꡎ.྄; [C2, P1, V5, V6]; xn--1ug4874cfd0kbmg.xn--3ed; ; xn--nc9aq743ds0e.xn--3ed; [P1, V5, V6] # 🢟🄈ꡎ.྄
+🢟7,‍ꡎ。྄; 🢟7,‍ꡎ.྄; [C2, P1, V5, V6]; xn--7,-n1t0654eqo3o.xn--3ed; ; xn--7,-gh9hg322i.xn--3ed; [P1, V5, V6] # 🢟7,ꡎ.྄
+xn--7,-gh9hg322i.xn--3ed; 🢟7,ꡎ.྄; [P1, V5, V6]; xn--7,-gh9hg322i.xn--3ed; ; ; # 🢟7,ꡎ.྄
+xn--7,-n1t0654eqo3o.xn--3ed; 🢟7,‍ꡎ.྄; [C2, P1, V5, V6]; xn--7,-n1t0654eqo3o.xn--3ed; ; ; # 🢟7,ꡎ.྄
+xn--nc9aq743ds0e.xn--3ed; 🢟🄈ꡎ.྄; [V5, V6]; xn--nc9aq743ds0e.xn--3ed; ; ; # 🢟🄈ꡎ.྄
+xn--1ug4874cfd0kbmg.xn--3ed; 🢟🄈‍ꡎ.྄; [C2, V5, V6]; xn--1ug4874cfd0kbmg.xn--3ed; ; ; # 🢟🄈ꡎ.྄
+ꡔ。္ᢇ; ꡔ.္ᢇ; [V5]; xn--tc9a.xn--9jd663b; ; ; # ꡔ.္ᢇ
+xn--tc9a.xn--9jd663b; ꡔ.္ᢇ; [V5]; xn--tc9a.xn--9jd663b; ; ; # ꡔ.္ᢇ
+⃫≮.𝨖; ; [P1, V5, V6]; xn--e1g71d.xn--772h; ; ; # ⃫≮.𝨖
+⃫≮.𝨖; ⃫≮.𝨖; [P1, V5, V6]; xn--e1g71d.xn--772h; ; ; # ⃫≮.𝨖
+xn--e1g71d.xn--772h; ⃫≮.𝨖; [V5, V6]; xn--e1g71d.xn--772h; ; ; # ⃫≮.𝨖
+Ⴢ≯褦.ᠪߪႾݧ; Ⴢ≯褦.ᠪߪႾݧ; [B5, B6, P1, V6]; xn--6nd461g478e.xn--rpb5x49td2h; ; ; # Ⴢ≯褦.ᠪߪႾݧ
+Ⴢ≯褦.ᠪߪႾݧ; Ⴢ≯褦.ᠪߪႾݧ; [B5, B6, P1, V6]; xn--6nd461g478e.xn--rpb5x49td2h; ; ; # Ⴢ≯褦.ᠪߪႾݧ
+Ⴢ≯褦.ᠪߪႾݧ; ; [B5, B6, P1, V6]; xn--6nd461g478e.xn--rpb5x49td2h; ; ; # Ⴢ≯褦.ᠪߪႾݧ
+Ⴢ≯褦.ᠪߪႾݧ; Ⴢ≯褦.ᠪߪႾݧ; [B5, B6, P1, V6]; xn--6nd461g478e.xn--rpb5x49td2h; ; ; # Ⴢ≯褦.ᠪߪႾݧ
+ⴢ≯褦.ᠪߪⴞݧ; ⴢ≯褦.ᠪߪⴞݧ; [B5, B6, P1, V6]; xn--hdh433bev8e.xn--rpb5x392bcyt; ; ; # ⴢ≯褦.ᠪߪⴞݧ
+ⴢ≯褦.ᠪߪⴞݧ; ; [B5, B6, P1, V6]; xn--hdh433bev8e.xn--rpb5x392bcyt; ; ; # ⴢ≯褦.ᠪߪⴞݧ
+Ⴢ≯褦.ᠪߪⴞݧ; ; [B5, B6, P1, V6]; xn--6nd461g478e.xn--rpb5x392bcyt; ; ; # Ⴢ≯褦.ᠪߪⴞݧ
+Ⴢ≯褦.ᠪߪⴞݧ; Ⴢ≯褦.ᠪߪⴞݧ; [B5, B6, P1, V6]; xn--6nd461g478e.xn--rpb5x392bcyt; ; ; # Ⴢ≯褦.ᠪߪⴞݧ
+xn--6nd461g478e.xn--rpb5x392bcyt; Ⴢ≯褦.ᠪߪⴞݧ; [B5, B6, V6]; xn--6nd461g478e.xn--rpb5x392bcyt; ; ; # Ⴢ≯褦.ᠪߪⴞݧ
+xn--hdh433bev8e.xn--rpb5x392bcyt; ⴢ≯褦.ᠪߪⴞݧ; [B5, B6, V6]; xn--hdh433bev8e.xn--rpb5x392bcyt; ; ; # ⴢ≯褦.ᠪߪⴞݧ
+xn--6nd461g478e.xn--rpb5x49td2h; Ⴢ≯褦.ᠪߪႾݧ; [B5, B6, V6]; xn--6nd461g478e.xn--rpb5x49td2h; ; ; # Ⴢ≯褦.ᠪߪႾݧ
+ⴢ≯褦.ᠪߪⴞݧ; ⴢ≯褦.ᠪߪⴞݧ; [B5, B6, P1, V6]; xn--hdh433bev8e.xn--rpb5x392bcyt; ; ; # ⴢ≯褦.ᠪߪⴞݧ
+ⴢ≯褦.ᠪߪⴞݧ; ⴢ≯褦.ᠪߪⴞݧ; [B5, B6, P1, V6]; xn--hdh433bev8e.xn--rpb5x392bcyt; ; ; # ⴢ≯褦.ᠪߪⴞݧ
+Ⴢ≯褦.ᠪߪⴞݧ; Ⴢ≯褦.ᠪߪⴞݧ; [B5, B6, P1, V6]; xn--6nd461g478e.xn--rpb5x392bcyt; ; ; # Ⴢ≯褦.ᠪߪⴞݧ
+Ⴢ≯褦.ᠪߪⴞݧ; Ⴢ≯褦.ᠪߪⴞݧ; [B5, B6, P1, V6]; xn--6nd461g478e.xn--rpb5x392bcyt; ; ; # Ⴢ≯褦.ᠪߪⴞݧ
+򊉆󠆒‌꥓。𞤙ٻꡘ; 򊉆‌꥓.𞤻ٻꡘ; [B2, B3, C1, P1, V6]; xn--0ug8815chtz0e.xn--0ib8893fegvj; ; xn--3j9al6189a.xn--0ib8893fegvj; [B2, B3, P1, V6] # ꥓.𞤻ٻꡘ
+򊉆󠆒‌꥓。𞤻ٻꡘ; 򊉆‌꥓.𞤻ٻꡘ; [B2, B3, C1, P1, V6]; xn--0ug8815chtz0e.xn--0ib8893fegvj; ; xn--3j9al6189a.xn--0ib8893fegvj; [B2, B3, P1, V6] # ꥓.𞤻ٻꡘ
+xn--3j9al6189a.xn--0ib8893fegvj; 򊉆꥓.𞤻ٻꡘ; [B2, B3, V6]; xn--3j9al6189a.xn--0ib8893fegvj; ; ; # ꥓.𞤻ٻꡘ
+xn--0ug8815chtz0e.xn--0ib8893fegvj; 򊉆‌꥓.𞤻ٻꡘ; [B2, B3, C1, V6]; xn--0ug8815chtz0e.xn--0ib8893fegvj; ; ; # ꥓.𞤻ٻꡘ
+‌.≯; ; [C1, P1, V6]; xn--0ug.xn--hdh; ; .xn--hdh; [P1, V6, A4_2] # .≯
+‌.≯; ‌.≯; [C1, P1, V6]; xn--0ug.xn--hdh; ; .xn--hdh; [P1, V6, A4_2] # .≯
+.xn--hdh; .≯; [V6, X4_2]; .xn--hdh; [V6, A4_2]; ; # .≯
+xn--0ug.xn--hdh; ‌.≯; [C1, V6]; xn--0ug.xn--hdh; ; ; # .≯
+𰅧񣩠-.꯭-悜; 𰅧񣩠-.꯭-悜; [P1, V3, V5, V6]; xn----7m53aj640l.xn----8f4br83t; ; ; # -.꯭-悜
+𰅧񣩠-.꯭-悜; ; [P1, V3, V5, V6]; xn----7m53aj640l.xn----8f4br83t; ; ; # -.꯭-悜
+xn----7m53aj640l.xn----8f4br83t; 𰅧񣩠-.꯭-悜; [V3, V5, V6]; xn----7m53aj640l.xn----8f4br83t; ; ; # -.꯭-悜
+ᡉ𶓧⬞ᢜ.-‍𞣑‮; ; [C2, P1, V3, V6]; xn--87e0ol04cdl39e.xn----ugn5e3763s; ; xn--87e0ol04cdl39e.xn----qinu247r; [P1, V3, V6] # ᡉ⬞ᢜ.-𞣑
+xn--87e0ol04cdl39e.xn----qinu247r; ᡉ𶓧⬞ᢜ.-𞣑‮; [V3, V6]; xn--87e0ol04cdl39e.xn----qinu247r; ; ; # ᡉ⬞ᢜ.-𞣑
+xn--87e0ol04cdl39e.xn----ugn5e3763s; ᡉ𶓧⬞ᢜ.-‍𞣑‮; [C2, V3, V6]; xn--87e0ol04cdl39e.xn----ugn5e3763s; ; ; # ᡉ⬞ᢜ.-𞣑
+⒐‌衃Ⴝ.ڂႴ; ; [B1, B2, B3, C1, P1, V6]; xn--1nd159ecmd785k.xn--7ib433c; ; xn--1nd362hy16e.xn--7ib433c; [B1, B2, B3, P1, V6] # ⒐衃Ⴝ.ڂႴ
+9.‌衃Ⴝ.ڂႴ; ; [B1, B2, B3, C1, P1, V6]; 9.xn--1nd159e1y2f.xn--7ib433c; ; 9.xn--1nd9032d.xn--7ib433c; [B1, B2, B3, P1, V6] # 9.衃Ⴝ.ڂႴ
+9.‌衃ⴝ.ڂⴔ; ; [B1, B2, B3, C1]; 9.xn--0ug862cbm5e.xn--7ib268q; ; 9.xn--llj1920a.xn--7ib268q; [B1, B2, B3] # 9.衃ⴝ.ڂⴔ
+9.‌衃Ⴝ.ڂⴔ; ; [B1, B2, B3, C1, P1, V6]; 9.xn--1nd159e1y2f.xn--7ib268q; ; 9.xn--1nd9032d.xn--7ib268q; [B1, B2, B3, P1, V6] # 9.衃Ⴝ.ڂⴔ
+9.xn--1nd9032d.xn--7ib268q; 9.衃Ⴝ.ڂⴔ; [B1, B2, B3, V6]; 9.xn--1nd9032d.xn--7ib268q; ; ; # 9.衃Ⴝ.ڂⴔ
+9.xn--1nd159e1y2f.xn--7ib268q; 9.‌衃Ⴝ.ڂⴔ; [B1, B2, B3, C1, V6]; 9.xn--1nd159e1y2f.xn--7ib268q; ; ; # 9.衃Ⴝ.ڂⴔ
+9.xn--llj1920a.xn--7ib268q; 9.衃ⴝ.ڂⴔ; [B1, B2, B3]; 9.xn--llj1920a.xn--7ib268q; ; ; # 9.衃ⴝ.ڂⴔ
+9.xn--0ug862cbm5e.xn--7ib268q; 9.‌衃ⴝ.ڂⴔ; [B1, B2, B3, C1]; 9.xn--0ug862cbm5e.xn--7ib268q; ; ; # 9.衃ⴝ.ڂⴔ
+9.xn--1nd9032d.xn--7ib433c; 9.衃Ⴝ.ڂႴ; [B1, B2, B3, V6]; 9.xn--1nd9032d.xn--7ib433c; ; ; # 9.衃Ⴝ.ڂႴ
+9.xn--1nd159e1y2f.xn--7ib433c; 9.‌衃Ⴝ.ڂႴ; [B1, B2, B3, C1, V6]; 9.xn--1nd159e1y2f.xn--7ib433c; ; ; # 9.衃Ⴝ.ڂႴ
+⒐‌衃ⴝ.ڂⴔ; ; [B1, B2, B3, C1, P1, V6]; xn--0ugx0px1izu2h.xn--7ib268q; ; xn--1shy52abz3f.xn--7ib268q; [B1, B2, B3, P1, V6] # ⒐衃ⴝ.ڂⴔ
+⒐‌衃Ⴝ.ڂⴔ; ; [B1, B2, B3, C1, P1, V6]; xn--1nd159ecmd785k.xn--7ib268q; ; xn--1nd362hy16e.xn--7ib268q; [B1, B2, B3, P1, V6] # ⒐衃Ⴝ.ڂⴔ
+xn--1nd362hy16e.xn--7ib268q; ⒐衃Ⴝ.ڂⴔ; [B1, B2, B3, V6]; xn--1nd362hy16e.xn--7ib268q; ; ; # ⒐衃Ⴝ.ڂⴔ
+xn--1nd159ecmd785k.xn--7ib268q; ⒐‌衃Ⴝ.ڂⴔ; [B1, B2, B3, C1, V6]; xn--1nd159ecmd785k.xn--7ib268q; ; ; # ⒐衃Ⴝ.ڂⴔ
+xn--1shy52abz3f.xn--7ib268q; ⒐衃ⴝ.ڂⴔ; [B1, B2, B3, V6]; xn--1shy52abz3f.xn--7ib268q; ; ; # ⒐衃ⴝ.ڂⴔ
+xn--0ugx0px1izu2h.xn--7ib268q; ⒐‌衃ⴝ.ڂⴔ; [B1, B2, B3, C1, V6]; xn--0ugx0px1izu2h.xn--7ib268q; ; ; # ⒐衃ⴝ.ڂⴔ
+xn--1nd362hy16e.xn--7ib433c; ⒐衃Ⴝ.ڂႴ; [B1, B2, B3, V6]; xn--1nd362hy16e.xn--7ib433c; ; ; # ⒐衃Ⴝ.ڂႴ
+xn--1nd159ecmd785k.xn--7ib433c; ⒐‌衃Ⴝ.ڂႴ; [B1, B2, B3, C1, V6]; xn--1nd159ecmd785k.xn--7ib433c; ; ; # ⒐衃Ⴝ.ڂႴ
+ߡ‌。--⸬; ߡ‌.--⸬; [B1, B3, C1, V3]; xn--8sb884j.xn-----iw2a; ; xn--8sb.xn-----iw2a; [B1, V3] # ߡ.--⸬
+xn--8sb.xn-----iw2a; ߡ.--⸬; [B1, V3]; xn--8sb.xn-----iw2a; ; ; # ߡ.--⸬
+xn--8sb884j.xn-----iw2a; ߡ‌.--⸬; [B1, B3, C1, V3]; xn--8sb884j.xn-----iw2a; ; ; # ߡ.--⸬
+𞥓.ܘ; 𞥓.ܘ; ; xn--of6h.xn--inb; ; ; # 𞥓.ܘ
+𞥓.ܘ; ; ; xn--of6h.xn--inb; ; ; # 𞥓.ܘ
+xn--of6h.xn--inb; 𞥓.ܘ; ; xn--of6h.xn--inb; ; ; # 𞥓.ܘ
+󠄽-.-්; -.-්; [V3]; -.xn----ptf; ; ; # -.-්
+󠄽-.-්; -.-්; [V3]; -.xn----ptf; ; ; # -.-්
+-.xn----ptf; -.-්; [V3]; -.xn----ptf; ; ; # -.-්
+󠇝ݛ-.ᤧ; ݛ-.ᤧ; [B1, B3, B6, V3, V5]; xn----k4c.xn--lff; ; ; # ݛ-.ᤧ
+xn----k4c.xn--lff; ݛ-.ᤧ; [B1, B3, B6, V3, V5]; xn----k4c.xn--lff; ; ; # ݛ-.ᤧ
+𞤴󠆹⦉𐹺.꠆⒌󘤸; 𞤴⦉𐹺.꠆⒌󘤸; [B1, P1, V5, V6]; xn--fuix729epewf.xn--xsh5029b6e77i; ; ; # 𞤴⦉𐹺.꠆⒌
+𞤴󠆹⦉𐹺.꠆5.󘤸; 𞤴⦉𐹺.꠆5.󘤸; [B1, P1, V5, V6]; xn--fuix729epewf.xn--5-w93e.xn--7b83e; ; ; # 𞤴⦉𐹺.꠆5.
+𞤒󠆹⦉𐹺.꠆5.󘤸; 𞤴⦉𐹺.꠆5.󘤸; [B1, P1, V5, V6]; xn--fuix729epewf.xn--5-w93e.xn--7b83e; ; ; # 𞤴⦉𐹺.꠆5.
+xn--fuix729epewf.xn--5-w93e.xn--7b83e; 𞤴⦉𐹺.꠆5.󘤸; [B1, V5, V6]; xn--fuix729epewf.xn--5-w93e.xn--7b83e; ; ; # 𞤴⦉𐹺.꠆5.
+𞤒󠆹⦉𐹺.꠆⒌󘤸; 𞤴⦉𐹺.꠆⒌󘤸; [B1, P1, V5, V6]; xn--fuix729epewf.xn--xsh5029b6e77i; ; ; # 𞤴⦉𐹺.꠆⒌
+xn--fuix729epewf.xn--xsh5029b6e77i; 𞤴⦉𐹺.꠆⒌󘤸; [B1, V5, V6]; xn--fuix729epewf.xn--xsh5029b6e77i; ; ; # 𞤴⦉𐹺.꠆⒌
+󠄸₀。𑖿‌𐦂‍; 0.𑖿‌𐦂‍; [B1, C2, V5]; 0.xn--0ugc8040p9hk; ; 0.xn--mn9cz2s; [B1, V5] # 0.𑖿𐦂
+󠄸0。𑖿‌𐦂‍; 0.𑖿‌𐦂‍; [B1, C2, V5]; 0.xn--0ugc8040p9hk; ; 0.xn--mn9cz2s; [B1, V5] # 0.𑖿𐦂
+0.xn--mn9cz2s; 0.𑖿𐦂; [B1, V5]; 0.xn--mn9cz2s; ; ; # 0.𑖿𐦂
+0.xn--0ugc8040p9hk; 0.𑖿‌𐦂‍; [B1, C2, V5]; 0.xn--0ugc8040p9hk; ; ; # 0.𑖿𐦂
+Ⴚ𐋸󠄄。𝟝ퟶ်; Ⴚ𐋸.5ퟶ်; [P1, V6]; xn--ynd2415j.xn--5-dug9054m; ; ; # Ⴚ𐋸.5ퟶ်
+Ⴚ𐋸󠄄。5ퟶ်; Ⴚ𐋸.5ퟶ်; [P1, V6]; xn--ynd2415j.xn--5-dug9054m; ; ; # Ⴚ𐋸.5ퟶ်
+ⴚ𐋸󠄄。5ퟶ်; ⴚ𐋸.5ퟶ်; ; xn--ilj2659d.xn--5-dug9054m; ; ; # ⴚ𐋸.5ퟶ်
+xn--ilj2659d.xn--5-dug9054m; ⴚ𐋸.5ퟶ်; ; xn--ilj2659d.xn--5-dug9054m; ; ; # ⴚ𐋸.5ퟶ်
+ⴚ𐋸.5ퟶ်; ; ; xn--ilj2659d.xn--5-dug9054m; ; ; # ⴚ𐋸.5ퟶ်
+Ⴚ𐋸.5ퟶ်; ; [P1, V6]; xn--ynd2415j.xn--5-dug9054m; ; ; # Ⴚ𐋸.5ퟶ်
+xn--ynd2415j.xn--5-dug9054m; Ⴚ𐋸.5ퟶ်; [V6]; xn--ynd2415j.xn--5-dug9054m; ; ; # Ⴚ𐋸.5ퟶ်
+ⴚ𐋸󠄄。𝟝ퟶ်; ⴚ𐋸.5ퟶ်; ; xn--ilj2659d.xn--5-dug9054m; ; ; # ⴚ𐋸.5ퟶ်
+‍-ᠹ﹪.ᷡᤢ; ; [C2, P1, V5, V6]; xn----c6j614b1z4v.xn--gff52t; ; xn----c6jx047j.xn--gff52t; [P1, V3, V5, V6] # -ᠹ﹪.ᷡᤢ
+‍-ᠹ%.ᷡᤢ; ; [C2, P1, V5, V6]; xn---%-u4oy48b.xn--gff52t; ; xn---%-u4o.xn--gff52t; [P1, V3, V5, V6] # -ᠹ%.ᷡᤢ
+xn---%-u4o.xn--gff52t; -ᠹ%.ᷡᤢ; [P1, V3, V5, V6]; xn---%-u4o.xn--gff52t; ; ; # -ᠹ%.ᷡᤢ
+xn---%-u4oy48b.xn--gff52t; ‍-ᠹ%.ᷡᤢ; [C2, P1, V5, V6]; xn---%-u4oy48b.xn--gff52t; ; ; # -ᠹ%.ᷡᤢ
+xn----c6jx047j.xn--gff52t; -ᠹ﹪.ᷡᤢ; [V3, V5, V6]; xn----c6jx047j.xn--gff52t; ; ; # -ᠹ﹪.ᷡᤢ
+xn----c6j614b1z4v.xn--gff52t; ‍-ᠹ﹪.ᷡᤢ; [C2, V5, V6]; xn----c6j614b1z4v.xn--gff52t; ; ; # -ᠹ﹪.ᷡᤢ
+≠.ᠿ; ; [P1, V6]; xn--1ch.xn--y7e; ; ; # ≠.ᠿ
+≠.ᠿ; ≠.ᠿ; [P1, V6]; xn--1ch.xn--y7e; ; ; # ≠.ᠿ
+xn--1ch.xn--y7e; ≠.ᠿ; [V6]; xn--1ch.xn--y7e; ; ; # ≠.ᠿ
+ܣ֣。㌪; ܣ֣.ハイツ; ; xn--ucb18e.xn--eck4c5a; ; ; # ܣ֣.ハイツ
+ܣ֣。ハイツ; ܣ֣.ハイツ; ; xn--ucb18e.xn--eck4c5a; ; ; # ܣ֣.ハイツ
+xn--ucb18e.xn--eck4c5a; ܣ֣.ハイツ; ; xn--ucb18e.xn--eck4c5a; ; ; # ܣ֣.ハイツ
+ܣ֣.ハイツ; ; ; xn--ucb18e.xn--eck4c5a; ; ; # ܣ֣.ハイツ
+𞷥󠆀≮.⵿-; 𞷥≮.⵿-; [B1, B3, P1, V3, V5, V6]; xn--gdhx802p.xn----i2s; ; ; # ≮.⵿-
+𞷥󠆀≮.⵿-; 𞷥≮.⵿-; [B1, B3, P1, V3, V5, V6]; xn--gdhx802p.xn----i2s; ; ; # ≮.⵿-
+xn--gdhx802p.xn----i2s; 𞷥≮.⵿-; [B1, B3, V3, V5, V6]; xn--gdhx802p.xn----i2s; ; ; # ≮.⵿-
+₆榎򦖎്。𞤅ۭﱚ󠮨; 6榎򦖎്.𞤧ۭيي󠮨; [B1, B3, P1, V6]; xn--6-kmf4691ejv41j.xn--mhba10ch545mn8v8h; ; ; # 6榎്.𞤧ۭيي
+6榎򦖎്。𞤅ۭيي󠮨; 6榎򦖎്.𞤧ۭيي󠮨; [B1, B3, P1, V6]; xn--6-kmf4691ejv41j.xn--mhba10ch545mn8v8h; ; ; # 6榎്.𞤧ۭيي
+6榎򦖎്。𞤧ۭيي󠮨; 6榎򦖎്.𞤧ۭيي󠮨; [B1, B3, P1, V6]; xn--6-kmf4691ejv41j.xn--mhba10ch545mn8v8h; ; ; # 6榎്.𞤧ۭيي
+xn--6-kmf4691ejv41j.xn--mhba10ch545mn8v8h; 6榎򦖎്.𞤧ۭيي󠮨; [B1, B3, V6]; xn--6-kmf4691ejv41j.xn--mhba10ch545mn8v8h; ; ; # 6榎്.𞤧ۭيي
+₆榎򦖎്。𞤧ۭﱚ󠮨; 6榎򦖎്.𞤧ۭيي󠮨; [B1, B3, P1, V6]; xn--6-kmf4691ejv41j.xn--mhba10ch545mn8v8h; ; ; # 6榎്.𞤧ۭيي
+𣩫.򌑲; 𣩫.򌑲; [P1, V6]; xn--td3j.xn--4628b; ; ; # 𣩫.
+𣩫.򌑲; ; [P1, V6]; xn--td3j.xn--4628b; ; ; # 𣩫.
+xn--td3j.xn--4628b; 𣩫.򌑲; [V6]; xn--td3j.xn--4628b; ; ; # 𣩫.
+‍︒。ڹ‌; ‍︒.ڹ‌; [B1, B3, C1, C2, P1, V6]; xn--1ug2658f.xn--skb080k; ; xn--y86c.xn--skb; [B1, P1, V6] # ︒.ڹ
+xn--y86c.xn--skb; ︒.ڹ; [B1, V6]; xn--y86c.xn--skb; ; ; # ︒.ڹ
+xn--1ug2658f.xn--skb080k; ‍︒.ڹ‌; [B1, B3, C1, C2, V6]; xn--1ug2658f.xn--skb080k; ; ; # ︒.ڹ
+xn--skb; ڹ; ; xn--skb; ; ; # ڹ
+ڹ; ; ; xn--skb; ; ; # ڹ
+𐹦‌𐹶。; 𐹦‌𐹶.; [B1, C1, P1, V6]; xn--0ug4994goba.xn--sxg; ; xn--eo0d6a.xn--sxg; [B1, P1, V6] # 𐹦𐹶.
+xn--eo0d6a.xn--sxg; 𐹦𐹶.; [B1, V6]; xn--eo0d6a.xn--sxg; ; ; # 𐹦𐹶.
+xn--0ug4994goba.xn--sxg; 𐹦‌𐹶.; [B1, C1, V6]; xn--0ug4994goba.xn--sxg; ; ; # 𐹦𐹶.
+్𝨾֩𝟭。-𑜨; ్𝨾֩1.-𑜨; [V3, V5]; xn--1-rfc312cdp45c.xn----nq0j; ; ; # ్𝨾֩1.-𑜨
+్𝨾֩1。-𑜨; ్𝨾֩1.-𑜨; [V3, V5]; xn--1-rfc312cdp45c.xn----nq0j; ; ; # ్𝨾֩1.-𑜨
+xn--1-rfc312cdp45c.xn----nq0j; ్𝨾֩1.-𑜨; [V3, V5]; xn--1-rfc312cdp45c.xn----nq0j; ; ; # ్𝨾֩1.-𑜨
+򣿈。뙏; 򣿈.뙏; [P1, V6]; xn--ph26c.xn--281b; ; ; # .뙏
+򣿈。뙏; 򣿈.뙏; [P1, V6]; xn--ph26c.xn--281b; ; ; # .뙏
+xn--ph26c.xn--281b; 򣿈.뙏; [V6]; xn--ph26c.xn--281b; ; ; # .뙏
+񕨚󠄌󑽀ᡀ.ࢶ; 񕨚󑽀ᡀ.ࢶ; [P1, V6]; xn--z7e98100evc01b.xn--czb; ; ; # ᡀ.ࢶ
+xn--z7e98100evc01b.xn--czb; 񕨚󑽀ᡀ.ࢶ; [V6]; xn--z7e98100evc01b.xn--czb; ; ; # ᡀ.ࢶ
+‍。񅁛; ‍.񅁛; [C2, P1, V6]; xn--1ug.xn--6x4u; ; .xn--6x4u; [P1, V6, A4_2] # .
+‍。񅁛; ‍.񅁛; [C2, P1, V6]; xn--1ug.xn--6x4u; ; .xn--6x4u; [P1, V6, A4_2] # .
+.xn--6x4u; .񅁛; [V6, X4_2]; .xn--6x4u; [V6, A4_2]; ; # .
+xn--1ug.xn--6x4u; ‍.񅁛; [C2, V6]; xn--1ug.xn--6x4u; ; ; # .
+ࡋ皥.-; ࡋ皥.-; [B1, B2, B3, V3]; xn--9vb4167c.-; ; ; # ࡋ皥.-
+ࡋ皥.-; ; [B1, B2, B3, V3]; xn--9vb4167c.-; ; ; # ࡋ皥.-
+xn--9vb4167c.-; ࡋ皥.-; [B1, B2, B3, V3]; xn--9vb4167c.-; ; ; # ࡋ皥.-
+𐣸̕𐮇.⒈ꡦ; 𐣸̕𐮇.⒈ꡦ; [B1, P1, V6]; xn--5sa9915kgvb.xn--tshw539b; ; ; # ̕𐮇.⒈ꡦ
+𐣸̕𐮇.1.ꡦ; ; [B1, P1, V6]; xn--5sa9915kgvb.1.xn--cd9a; ; ; # ̕𐮇.1.ꡦ
+xn--5sa9915kgvb.1.xn--cd9a; 𐣸̕𐮇.1.ꡦ; [B1, V6]; xn--5sa9915kgvb.1.xn--cd9a; ; ; # ̕𐮇.1.ꡦ
+xn--5sa9915kgvb.xn--tshw539b; 𐣸̕𐮇.⒈ꡦ; [B1, V6]; xn--5sa9915kgvb.xn--tshw539b; ; ; # ̕𐮇.⒈ꡦ
+Ⴛ‌֢‍。ᅠā𐹦; Ⴛ‌֢‍.ᅠā𐹦; [B5, B6, C1, C2, P1, V6]; xn--tcb597cdmmfa.xn--yda9741khjj; ; xn--tcb597c.xn--yda9741khjj; [B5, B6, P1, V6] # Ⴛ֢.ā𐹦
+Ⴛ‌֢‍。ᅠā𐹦; Ⴛ‌֢‍.ᅠā𐹦; [B5, B6, C1, C2, P1, V6]; xn--tcb597cdmmfa.xn--yda9741khjj; ; xn--tcb597c.xn--yda9741khjj; [B5, B6, P1, V6] # Ⴛ֢.ā𐹦
+Ⴛ‌֢‍。ᅠā𐹦; Ⴛ‌֢‍.ᅠā𐹦; [B5, B6, C1, C2, P1, V6]; xn--tcb597cdmmfa.xn--yda594fdn5q; ; xn--tcb597c.xn--yda594fdn5q; [B5, B6, P1, V6] # Ⴛ֢.ā𐹦
+Ⴛ‌֢‍。ᅠā𐹦; Ⴛ‌֢‍.ᅠā𐹦; [B5, B6, C1, C2, P1, V6]; xn--tcb597cdmmfa.xn--yda594fdn5q; ; xn--tcb597c.xn--yda594fdn5q; [B5, B6, P1, V6] # Ⴛ֢.ā𐹦
+ⴛ‌֢‍。ᅠā𐹦; ⴛ‌֢‍.ᅠā𐹦; [B5, B6, C1, C2, P1, V6]; xn--tcb736kea974k.xn--yda594fdn5q; ; xn--tcb323r.xn--yda594fdn5q; [B5, B6, P1, V6] # ⴛ֢.ā𐹦
+ⴛ‌֢‍。ᅠā𐹦; ⴛ‌֢‍.ᅠā𐹦; [B5, B6, C1, C2, P1, V6]; xn--tcb736kea974k.xn--yda594fdn5q; ; xn--tcb323r.xn--yda594fdn5q; [B5, B6, P1, V6] # ⴛ֢.ā𐹦
+Ⴛ‌֢‍。ᅠĀ𐹦; Ⴛ‌֢‍.ᅠā𐹦; [B5, B6, C1, C2, P1, V6]; xn--tcb597cdmmfa.xn--yda594fdn5q; ; xn--tcb597c.xn--yda594fdn5q; [B5, B6, P1, V6] # Ⴛ֢.ā𐹦
+Ⴛ‌֢‍。ᅠĀ𐹦; Ⴛ‌֢‍.ᅠā𐹦; [B5, B6, C1, C2, P1, V6]; xn--tcb597cdmmfa.xn--yda594fdn5q; ; xn--tcb597c.xn--yda594fdn5q; [B5, B6, P1, V6] # Ⴛ֢.ā𐹦
+xn--tcb597c.xn--yda594fdn5q; Ⴛ֢.ᅠā𐹦; [B5, B6, V6]; xn--tcb597c.xn--yda594fdn5q; ; ; # Ⴛ֢.ā𐹦
+xn--tcb597cdmmfa.xn--yda594fdn5q; Ⴛ‌֢‍.ᅠā𐹦; [B5, B6, C1, C2, V6]; xn--tcb597cdmmfa.xn--yda594fdn5q; ; ; # Ⴛ֢.ā𐹦
+xn--tcb323r.xn--yda594fdn5q; ⴛ֢.ᅠā𐹦; [B5, B6, V6]; xn--tcb323r.xn--yda594fdn5q; ; ; # ⴛ֢.ā𐹦
+xn--tcb736kea974k.xn--yda594fdn5q; ⴛ‌֢‍.ᅠā𐹦; [B5, B6, C1, C2, V6]; xn--tcb736kea974k.xn--yda594fdn5q; ; ; # ⴛ֢.ā𐹦
+ⴛ‌֢‍。ᅠā𐹦; ⴛ‌֢‍.ᅠā𐹦; [B5, B6, C1, C2, P1, V6]; xn--tcb736kea974k.xn--yda9741khjj; ; xn--tcb323r.xn--yda9741khjj; [B5, B6, P1, V6] # ⴛ֢.ā𐹦
+ⴛ‌֢‍。ᅠā𐹦; ⴛ‌֢‍.ᅠā𐹦; [B5, B6, C1, C2, P1, V6]; xn--tcb736kea974k.xn--yda9741khjj; ; xn--tcb323r.xn--yda9741khjj; [B5, B6, P1, V6] # ⴛ֢.ā𐹦
+Ⴛ‌֢‍。ᅠĀ𐹦; Ⴛ‌֢‍.ᅠā𐹦; [B5, B6, C1, C2, P1, V6]; xn--tcb597cdmmfa.xn--yda9741khjj; ; xn--tcb597c.xn--yda9741khjj; [B5, B6, P1, V6] # Ⴛ֢.ā𐹦
+Ⴛ‌֢‍。ᅠĀ𐹦; Ⴛ‌֢‍.ᅠā𐹦; [B5, B6, C1, C2, P1, V6]; xn--tcb597cdmmfa.xn--yda9741khjj; ; xn--tcb597c.xn--yda9741khjj; [B5, B6, P1, V6] # Ⴛ֢.ā𐹦
+xn--tcb597c.xn--yda9741khjj; Ⴛ֢.ᅠā𐹦; [B5, B6, V6]; xn--tcb597c.xn--yda9741khjj; ; ; # Ⴛ֢.ā𐹦
+xn--tcb597cdmmfa.xn--yda9741khjj; Ⴛ‌֢‍.ᅠā𐹦; [B5, B6, C1, C2, V6]; xn--tcb597cdmmfa.xn--yda9741khjj; ; ; # Ⴛ֢.ā𐹦
+xn--tcb323r.xn--yda9741khjj; ⴛ֢.ᅠā𐹦; [B5, B6, V6]; xn--tcb323r.xn--yda9741khjj; ; ; # ⴛ֢.ā𐹦
+xn--tcb736kea974k.xn--yda9741khjj; ⴛ‌֢‍.ᅠā𐹦; [B5, B6, C1, C2, V6]; xn--tcb736kea974k.xn--yda9741khjj; ; ; # ⴛ֢.ā𐹦
+‌。曳⾑𐋰≯; ‌.曳襾𐋰≯; [C1, P1, V6]; xn--0ug2139f.xn--hdh501y8wvfs5h; ; xn--vn7c.xn--hdh501y8wvfs5h; [P1, V6] # .曳襾𐋰≯
+‌。曳⾑𐋰≯; ‌.曳襾𐋰≯; [C1, P1, V6]; xn--0ug2139f.xn--hdh501y8wvfs5h; ; xn--vn7c.xn--hdh501y8wvfs5h; [P1, V6] # .曳襾𐋰≯
+‌。曳襾𐋰≯; ‌.曳襾𐋰≯; [C1, P1, V6]; xn--0ug2139f.xn--hdh501y8wvfs5h; ; xn--vn7c.xn--hdh501y8wvfs5h; [P1, V6] # .曳襾𐋰≯
+‌。曳襾𐋰≯; ‌.曳襾𐋰≯; [C1, P1, V6]; xn--0ug2139f.xn--hdh501y8wvfs5h; ; xn--vn7c.xn--hdh501y8wvfs5h; [P1, V6] # .曳襾𐋰≯
+xn--vn7c.xn--hdh501y8wvfs5h; .曳襾𐋰≯; [V6]; xn--vn7c.xn--hdh501y8wvfs5h; ; ; # .曳襾𐋰≯
+xn--0ug2139f.xn--hdh501y8wvfs5h; ‌.曳襾𐋰≯; [C1, V6]; xn--0ug2139f.xn--hdh501y8wvfs5h; ; ; # .曳襾𐋰≯
+≯⒈。ß; ≯⒈.ß; [P1, V6]; xn--hdh84f.xn--zca; ; xn--hdh84f.ss; # ≯⒈.ß
+≯⒈。ß; ≯⒈.ß; [P1, V6]; xn--hdh84f.xn--zca; ; xn--hdh84f.ss; # ≯⒈.ß
+≯1.。ß; ≯1..ß; [P1, V6, X4_2]; xn--1-ogo..xn--zca; [P1, V6, A4_2]; xn--1-ogo..ss; # ≯1..ß
+≯1.。ß; ≯1..ß; [P1, V6, X4_2]; xn--1-ogo..xn--zca; [P1, V6, A4_2]; xn--1-ogo..ss; # ≯1..ß
+≯1.。SS; ≯1..ss; [P1, V6, X4_2]; xn--1-ogo..ss; [P1, V6, A4_2]; ; # ≯1..ss
+≯1.。SS; ≯1..ss; [P1, V6, X4_2]; xn--1-ogo..ss; [P1, V6, A4_2]; ; # ≯1..ss
+≯1.。ss; ≯1..ss; [P1, V6, X4_2]; xn--1-ogo..ss; [P1, V6, A4_2]; ; # ≯1..ss
+≯1.。ss; ≯1..ss; [P1, V6, X4_2]; xn--1-ogo..ss; [P1, V6, A4_2]; ; # ≯1..ss
+≯1.。Ss; ≯1..ss; [P1, V6, X4_2]; xn--1-ogo..ss; [P1, V6, A4_2]; ; # ≯1..ss
+≯1.。Ss; ≯1..ss; [P1, V6, X4_2]; xn--1-ogo..ss; [P1, V6, A4_2]; ; # ≯1..ss
+xn--1-ogo..ss; ≯1..ss; [V6, X4_2]; xn--1-ogo..ss; [V6, A4_2]; ; # ≯1..ss
+xn--1-ogo..xn--zca; ≯1..ß; [V6, X4_2]; xn--1-ogo..xn--zca; [V6, A4_2]; ; # ≯1..ß
+≯⒈。SS; ≯⒈.ss; [P1, V6]; xn--hdh84f.ss; ; ; # ≯⒈.ss
+≯⒈。SS; ≯⒈.ss; [P1, V6]; xn--hdh84f.ss; ; ; # ≯⒈.ss
+≯⒈。ss; ≯⒈.ss; [P1, V6]; xn--hdh84f.ss; ; ; # ≯⒈.ss
+≯⒈。ss; ≯⒈.ss; [P1, V6]; xn--hdh84f.ss; ; ; # ≯⒈.ss
+≯⒈。Ss; ≯⒈.ss; [P1, V6]; xn--hdh84f.ss; ; ; # ≯⒈.ss
+≯⒈。Ss; ≯⒈.ss; [P1, V6]; xn--hdh84f.ss; ; ; # ≯⒈.ss
+xn--hdh84f.ss; ≯⒈.ss; [V6]; xn--hdh84f.ss; ; ; # ≯⒈.ss
+xn--hdh84f.xn--zca; ≯⒈.ß; [V6]; xn--hdh84f.xn--zca; ; ; # ≯⒈.ß
+٧‍ﮖ。ߚ-₆Ⴙ; ٧‍ڳ.ߚ-6Ⴙ; [B1, B2, B3, C2, P1, V6]; xn--gib6m343e.xn---6-lve002g; ; xn--gib6m.xn---6-lve002g; [B1, B2, B3, P1, V6] # ٧ڳ.ߚ-6Ⴙ
+٧‍ڳ。ߚ-6Ⴙ; ٧‍ڳ.ߚ-6Ⴙ; [B1, B2, B3, C2, P1, V6]; xn--gib6m343e.xn---6-lve002g; ; xn--gib6m.xn---6-lve002g; [B1, B2, B3, P1, V6] # ٧ڳ.ߚ-6Ⴙ
+٧‍ڳ。ߚ-6ⴙ; ٧‍ڳ.ߚ-6ⴙ; [B1, B2, B3, C2]; xn--gib6m343e.xn---6-lve6529a; ; xn--gib6m.xn---6-lve6529a; [B1, B2, B3] # ٧ڳ.ߚ-6ⴙ
+xn--gib6m.xn---6-lve6529a; ٧ڳ.ߚ-6ⴙ; [B1, B2, B3]; xn--gib6m.xn---6-lve6529a; ; ; # ٧ڳ.ߚ-6ⴙ
+xn--gib6m343e.xn---6-lve6529a; ٧‍ڳ.ߚ-6ⴙ; [B1, B2, B3, C2]; xn--gib6m343e.xn---6-lve6529a; ; ; # ٧ڳ.ߚ-6ⴙ
+xn--gib6m.xn---6-lve002g; ٧ڳ.ߚ-6Ⴙ; [B1, B2, B3, V6]; xn--gib6m.xn---6-lve002g; ; ; # ٧ڳ.ߚ-6Ⴙ
+xn--gib6m343e.xn---6-lve002g; ٧‍ڳ.ߚ-6Ⴙ; [B1, B2, B3, C2, V6]; xn--gib6m343e.xn---6-lve002g; ; ; # ٧ڳ.ߚ-6Ⴙ
+٧‍ﮖ。ߚ-₆ⴙ; ٧‍ڳ.ߚ-6ⴙ; [B1, B2, B3, C2]; xn--gib6m343e.xn---6-lve6529a; ; xn--gib6m.xn---6-lve6529a; [B1, B2, B3] # ٧ڳ.ߚ-6ⴙ
+‌。≠; ‌.≠; [C1, P1, V6]; xn--0ug.xn--1ch; ; .xn--1ch; [P1, V6, A4_2] # .≠
+‌。≠; ‌.≠; [C1, P1, V6]; xn--0ug.xn--1ch; ; .xn--1ch; [P1, V6, A4_2] # .≠
+‌。≠; ‌.≠; [C1, P1, V6]; xn--0ug.xn--1ch; ; .xn--1ch; [P1, V6, A4_2] # .≠
+‌。≠; ‌.≠; [C1, P1, V6]; xn--0ug.xn--1ch; ; .xn--1ch; [P1, V6, A4_2] # .≠
+.xn--1ch; .≠; [V6, X4_2]; .xn--1ch; [V6, A4_2]; ; # .≠
+xn--0ug.xn--1ch; ‌.≠; [C1, V6]; xn--0ug.xn--1ch; ; ; # .≠
+𑖿𝨔.ᡟ𑖿ᭂ‌; ; [C1, V5]; xn--461dw464a.xn--v8e29ldzfo952a; ; xn--461dw464a.xn--v8e29loy65a; [V5] # 𑖿𝨔.ᡟ𑖿ᭂ
+xn--461dw464a.xn--v8e29loy65a; 𑖿𝨔.ᡟ𑖿ᭂ; [V5]; xn--461dw464a.xn--v8e29loy65a; ; ; # 𑖿𝨔.ᡟ𑖿ᭂ
+xn--461dw464a.xn--v8e29ldzfo952a; 𑖿𝨔.ᡟ𑖿ᭂ‌; [C1, V5]; xn--461dw464a.xn--v8e29ldzfo952a; ; ; # 𑖿𝨔.ᡟ𑖿ᭂ
+򔣳‍򑝱.𖬴Ↄ≠-; ; [C2, P1, V3, V5, V6]; xn--1ug15151gkb5a.xn----61n81bt713h; ; xn--6j00chy9a.xn----61n81bt713h; [P1, V3, V5, V6] # .𖬴Ↄ≠-
+򔣳‍򑝱.𖬴Ↄ≠-; 򔣳‍򑝱.𖬴Ↄ≠-; [C2, P1, V3, V5, V6]; xn--1ug15151gkb5a.xn----61n81bt713h; ; xn--6j00chy9a.xn----61n81bt713h; [P1, V3, V5, V6] # .𖬴Ↄ≠-
+򔣳‍򑝱.𖬴ↄ≠-; 򔣳‍򑝱.𖬴ↄ≠-; [C2, P1, V3, V5, V6]; xn--1ug15151gkb5a.xn----81n51bt713h; ; xn--6j00chy9a.xn----81n51bt713h; [P1, V3, V5, V6] # .𖬴ↄ≠-
+򔣳‍򑝱.𖬴ↄ≠-; ; [C2, P1, V3, V5, V6]; xn--1ug15151gkb5a.xn----81n51bt713h; ; xn--6j00chy9a.xn----81n51bt713h; [P1, V3, V5, V6] # .𖬴ↄ≠-
+xn--6j00chy9a.xn----81n51bt713h; 򔣳򑝱.𖬴ↄ≠-; [V3, V5, V6]; xn--6j00chy9a.xn----81n51bt713h; ; ; # .𖬴ↄ≠-
+xn--1ug15151gkb5a.xn----81n51bt713h; 򔣳‍򑝱.𖬴ↄ≠-; [C2, V3, V5, V6]; xn--1ug15151gkb5a.xn----81n51bt713h; ; ; # .𖬴ↄ≠-
+xn--6j00chy9a.xn----61n81bt713h; 򔣳򑝱.𖬴Ↄ≠-; [V3, V5, V6]; xn--6j00chy9a.xn----61n81bt713h; ; ; # .𖬴Ↄ≠-
+xn--1ug15151gkb5a.xn----61n81bt713h; 򔣳‍򑝱.𖬴Ↄ≠-; [C2, V3, V5, V6]; xn--1ug15151gkb5a.xn----61n81bt713h; ; ; # .𖬴Ↄ≠-
+ߢς‍𝟳。蔑򛖢; ߢς‍7.蔑򛖢; [B2, C2, P1, V6]; xn--7-xmb182aez5a.xn--wy1ao4929b; ; xn--7-zmb872a.xn--wy1ao4929b; [B2, P1, V6] # ߢς7.蔑
+ߢς‍7。蔑򛖢; ߢς‍7.蔑򛖢; [B2, C2, P1, V6]; xn--7-xmb182aez5a.xn--wy1ao4929b; ; xn--7-zmb872a.xn--wy1ao4929b; [B2, P1, V6] # ߢς7.蔑
+ߢΣ‍7。蔑򛖢; ߢσ‍7.蔑򛖢; [B2, C2, P1, V6]; xn--7-zmb872aez5a.xn--wy1ao4929b; ; xn--7-zmb872a.xn--wy1ao4929b; [B2, P1, V6] # ߢσ7.蔑
+ߢσ‍7。蔑򛖢; ߢσ‍7.蔑򛖢; [B2, C2, P1, V6]; xn--7-zmb872aez5a.xn--wy1ao4929b; ; xn--7-zmb872a.xn--wy1ao4929b; [B2, P1, V6] # ߢσ7.蔑
+xn--7-zmb872a.xn--wy1ao4929b; ߢσ7.蔑򛖢; [B2, V6]; xn--7-zmb872a.xn--wy1ao4929b; ; ; # ߢσ7.蔑
+xn--7-zmb872aez5a.xn--wy1ao4929b; ߢσ‍7.蔑򛖢; [B2, C2, V6]; xn--7-zmb872aez5a.xn--wy1ao4929b; ; ; # ߢσ7.蔑
+xn--7-xmb182aez5a.xn--wy1ao4929b; ߢς‍7.蔑򛖢; [B2, C2, V6]; xn--7-xmb182aez5a.xn--wy1ao4929b; ; ; # ߢς7.蔑
+ߢΣ‍𝟳。蔑򛖢; ߢσ‍7.蔑򛖢; [B2, C2, P1, V6]; xn--7-zmb872aez5a.xn--wy1ao4929b; ; xn--7-zmb872a.xn--wy1ao4929b; [B2, P1, V6] # ߢσ7.蔑
+ߢσ‍𝟳。蔑򛖢; ߢσ‍7.蔑򛖢; [B2, C2, P1, V6]; xn--7-zmb872aez5a.xn--wy1ao4929b; ; xn--7-zmb872a.xn--wy1ao4929b; [B2, P1, V6] # ߢσ7.蔑
+𐹰.؀; ; [B1, P1, V6]; xn--oo0d.xn--ifb; ; ; # 𐹰.
+xn--oo0d.xn--ifb; 𐹰.؀; [B1, V6]; xn--oo0d.xn--ifb; ; ; # 𐹰.
+-ࢨ.𱠖; ; [B1, P1, V3, V6]; xn----mod.xn--5o9n; ; ; # -ࢨ.
+xn----mod.xn--5o9n; -ࢨ.𱠖; [B1, V3, V6]; xn----mod.xn--5o9n; ; ; # -ࢨ.
+≯𞱸󠇀。誆⒈; ≯𞱸.誆⒈; [B1, P1, V6]; xn--hdh7151p.xn--tsh1248a; ; ; # ≯𞱸.誆⒈
+≯𞱸󠇀。誆⒈; ≯𞱸.誆⒈; [B1, P1, V6]; xn--hdh7151p.xn--tsh1248a; ; ; # ≯𞱸.誆⒈
+≯𞱸󠇀。誆1.; ≯𞱸.誆1.; [B1, P1, V6]; xn--hdh7151p.xn--1-dy1d.; ; ; # ≯𞱸.誆1.
+≯𞱸󠇀。誆1.; ≯𞱸.誆1.; [B1, P1, V6]; xn--hdh7151p.xn--1-dy1d.; ; ; # ≯𞱸.誆1.
+xn--hdh7151p.xn--1-dy1d.; ≯𞱸.誆1.; [B1, V6]; xn--hdh7151p.xn--1-dy1d.; ; ; # ≯𞱸.誆1.
+xn--hdh7151p.xn--tsh1248a; ≯𞱸.誆⒈; [B1, V6]; xn--hdh7151p.xn--tsh1248a; ; ; # ≯𞱸.誆⒈
+ؖ𞥙䐊ِ.︒م↺ڜ; ؖ𞥙䐊ِ.︒م↺ڜ; [B1, P1, V5, V6]; xn--4fb0j490qjg4x.xn--hhb8o948euo5r; ; ; # ؖ𞥙䐊ِ.︒م↺ڜ
+ؖ𞥙䐊ِ.。م↺ڜ; ؖ𞥙䐊ِ..م↺ڜ; [B1, V5, X4_2]; xn--4fb0j490qjg4x..xn--hhb8o948e; [B1, V5, A4_2]; ; # ؖ𞥙䐊ِ..م↺ڜ
+xn--4fb0j490qjg4x..xn--hhb8o948e; ؖ𞥙䐊ِ..م↺ڜ; [B1, V5, X4_2]; xn--4fb0j490qjg4x..xn--hhb8o948e; [B1, V5, A4_2]; ; # ؖ𞥙䐊ِ..م↺ڜ
+xn--4fb0j490qjg4x.xn--hhb8o948euo5r; ؖ𞥙䐊ِ.︒م↺ڜ; [B1, V5, V6]; xn--4fb0j490qjg4x.xn--hhb8o948euo5r; ; ; # ؖ𞥙䐊ِ.︒م↺ڜ
+퀬-?񶳒.‌ૅ󩸤۴; ; [C1, P1, V6]; 퀬-?񶳒.xn--hmb76q48y18505a; [C1, P1, V6, A3]; 퀬-?񶳒.xn--hmb76q74166b; [P1, V5, V6, A3] # 퀬-.ૅ۴
+퀬-?񶳒.‌ૅ󩸤۴; 퀬-?񶳒.‌ૅ󩸤۴; [C1, P1, V6]; 퀬-?񶳒.xn--hmb76q48y18505a; [C1, P1, V6, A3]; 퀬-?񶳒.xn--hmb76q74166b; [P1, V5, V6, A3] # 퀬-.ૅ۴
+퀬-?񶳒.xn--hmb76q74166b; 퀬-?񶳒.ૅ󩸤۴; [P1, V5, V6]; 퀬-?񶳒.xn--hmb76q74166b; [P1, V5, V6, A3]; ; # 퀬-.ૅ۴
+퀬-?񶳒.xn--hmb76q74166b; 퀬-?񶳒.ૅ󩸤۴; [P1, V5, V6]; 퀬-?񶳒.xn--hmb76q74166b; [P1, V5, V6, A3]; ; # 퀬-.ૅ۴
+퀬-?񶳒.XN--HMB76Q74166B; 퀬-?񶳒.ૅ󩸤۴; [P1, V5, V6]; 퀬-?񶳒.xn--hmb76q74166b; [P1, V5, V6, A3]; ; # 퀬-.ૅ۴
+퀬-?񶳒.XN--HMB76Q74166B; 퀬-?񶳒.ૅ󩸤۴; [P1, V5, V6]; 퀬-?񶳒.xn--hmb76q74166b; [P1, V5, V6, A3]; ; # 퀬-.ૅ۴
+퀬-?񶳒.Xn--Hmb76q74166b; 퀬-?񶳒.ૅ󩸤۴; [P1, V5, V6]; 퀬-?񶳒.xn--hmb76q74166b; [P1, V5, V6, A3]; ; # 퀬-.ૅ۴
+퀬-?񶳒.Xn--Hmb76q74166b; 퀬-?񶳒.ૅ󩸤۴; [P1, V5, V6]; 퀬-?񶳒.xn--hmb76q74166b; [P1, V5, V6, A3]; ; # 퀬-.ૅ۴
+퀬-?񶳒.xn--hmb76q48y18505a; 퀬-?񶳒.‌ૅ󩸤۴; [C1, P1, V6]; 퀬-?񶳒.xn--hmb76q48y18505a; [C1, P1, V6, A3]; ; # 퀬-.ૅ۴
+퀬-?񶳒.xn--hmb76q48y18505a; 퀬-?񶳒.‌ૅ󩸤۴; [C1, P1, V6]; 퀬-?񶳒.xn--hmb76q48y18505a; [C1, P1, V6, A3]; ; # 퀬-.ૅ۴
+퀬-?񶳒.XN--HMB76Q48Y18505A; 퀬-?񶳒.‌ૅ󩸤۴; [C1, P1, V6]; 퀬-?񶳒.xn--hmb76q48y18505a; [C1, P1, V6, A3]; ; # 퀬-.ૅ۴
+퀬-?񶳒.XN--HMB76Q48Y18505A; 퀬-?񶳒.‌ૅ󩸤۴; [C1, P1, V6]; 퀬-?񶳒.xn--hmb76q48y18505a; [C1, P1, V6, A3]; ; # 퀬-.ૅ۴
+퀬-?񶳒.Xn--Hmb76q48y18505a; 퀬-?񶳒.‌ૅ󩸤۴; [C1, P1, V6]; 퀬-?񶳒.xn--hmb76q48y18505a; [C1, P1, V6, A3]; ; # 퀬-.ૅ۴
+퀬-?񶳒.Xn--Hmb76q48y18505a; 퀬-?񶳒.‌ૅ󩸤۴; [C1, P1, V6]; 퀬-?񶳒.xn--hmb76q48y18505a; [C1, P1, V6, A3]; ; # 퀬-.ૅ۴
+Ⴌ.𐹾︒𑁿𞾄; ; [B1, P1, V6]; xn--knd.xn--y86c030a9ob6374b; ; ; # Ⴌ.𐹾︒𑁿
+Ⴌ.𐹾。𑁿𞾄; Ⴌ.𐹾.𑁿𞾄; [B1, P1, V5, V6]; xn--knd.xn--2o0d.xn--q30dg029a; ; ; # Ⴌ.𐹾.𑁿
+ⴌ.𐹾。𑁿𞾄; ⴌ.𐹾.𑁿𞾄; [B1, P1, V5, V6]; xn--3kj.xn--2o0d.xn--q30dg029a; ; ; # ⴌ.𐹾.𑁿
+xn--3kj.xn--2o0d.xn--q30dg029a; ⴌ.𐹾.𑁿𞾄; [B1, V5, V6]; xn--3kj.xn--2o0d.xn--q30dg029a; ; ; # ⴌ.𐹾.𑁿
+xn--knd.xn--2o0d.xn--q30dg029a; Ⴌ.𐹾.𑁿𞾄; [B1, V5, V6]; xn--knd.xn--2o0d.xn--q30dg029a; ; ; # Ⴌ.𐹾.𑁿
+ⴌ.𐹾︒𑁿𞾄; ; [B1, P1, V6]; xn--3kj.xn--y86c030a9ob6374b; ; ; # ⴌ.𐹾︒𑁿
+xn--3kj.xn--y86c030a9ob6374b; ⴌ.𐹾︒𑁿𞾄; [B1, V6]; xn--3kj.xn--y86c030a9ob6374b; ; ; # ⴌ.𐹾︒𑁿
+xn--knd.xn--y86c030a9ob6374b; Ⴌ.𐹾︒𑁿𞾄; [B1, V6]; xn--knd.xn--y86c030a9ob6374b; ; ; # Ⴌ.𐹾︒𑁿
+񧞿╏。𞩕󠁾; 񧞿╏.𞩕󠁾; [B3, B6, P1, V6]; xn--iyh90030d.xn--1m6hs0260c; ; ; # ╏.
+xn--iyh90030d.xn--1m6hs0260c; 񧞿╏.𞩕󠁾; [B3, B6, V6]; xn--iyh90030d.xn--1m6hs0260c; ; ; # ╏.
+‍┮󠇐.ఀ్᜴‍; ‍┮.ఀ్᜴‍; [C2, V5]; xn--1ug04r.xn--eoc8m432a40i; ; xn--kxh.xn--eoc8m432a; [V5] # ┮.ఀ్᜴
+‍┮󠇐.ఀ్᜴‍; ‍┮.ఀ్᜴‍; [C2, V5]; xn--1ug04r.xn--eoc8m432a40i; ; xn--kxh.xn--eoc8m432a; [V5] # ┮.ఀ్᜴
+xn--kxh.xn--eoc8m432a; ┮.ఀ్᜴; [V5]; xn--kxh.xn--eoc8m432a; ; ; # ┮.ఀ్᜴
+xn--1ug04r.xn--eoc8m432a40i; ‍┮.ఀ్᜴‍; [C2, V5]; xn--1ug04r.xn--eoc8m432a40i; ; ; # ┮.ఀ్᜴
+򹚪。🄂; 򹚪.🄂; [P1, V6]; xn--n433d.xn--v07h; ; ; # .🄂
+򹚪。1,; 򹚪.1,; [P1, V6]; xn--n433d.1,; ; ; # .1,
+xn--n433d.1,; 򹚪.1,; [P1, V6]; xn--n433d.1,; ; ; # .1,
+xn--n433d.xn--v07h; 򹚪.🄂; [V6]; xn--n433d.xn--v07h; ; ; # .🄂
+𑍨刍.🛦; ; [V5]; xn--rbry728b.xn--y88h; ; ; # 𑍨刍.🛦
+xn--rbry728b.xn--y88h; 𑍨刍.🛦; [V5]; xn--rbry728b.xn--y88h; ; ; # 𑍨刍.🛦
+󠌏3。ᯱ𝟒; 󠌏3.ᯱ4; [P1, V5, V6]; xn--3-ib31m.xn--4-pql; ; ; # 3.ᯱ4
+󠌏3。ᯱ4; 󠌏3.ᯱ4; [P1, V5, V6]; xn--3-ib31m.xn--4-pql; ; ; # 3.ᯱ4
+xn--3-ib31m.xn--4-pql; 󠌏3.ᯱ4; [V5, V6]; xn--3-ib31m.xn--4-pql; ; ; # 3.ᯱ4
+ڇ6Ⴔ辘.ﴢڇ‌; ڇ6Ⴔ辘.صيڇ‌; [B2, B3, C1, P1, V6]; xn--6-gsc039eqq6k.xn--0gb6bxkx18g; ; xn--6-gsc039eqq6k.xn--0gb6bxk; [B2, B3, P1, V6] # ڇ6Ⴔ辘.صيڇ
+ڇ6Ⴔ辘.صيڇ‌; ; [B2, B3, C1, P1, V6]; xn--6-gsc039eqq6k.xn--0gb6bxkx18g; ; xn--6-gsc039eqq6k.xn--0gb6bxk; [B2, B3, P1, V6] # ڇ6Ⴔ辘.صيڇ
+ڇ6ⴔ辘.صيڇ‌; ; [B2, B3, C1]; xn--6-gsc2270akm6f.xn--0gb6bxkx18g; ; xn--6-gsc2270akm6f.xn--0gb6bxk; [B2, B3] # ڇ6ⴔ辘.صيڇ
+xn--6-gsc2270akm6f.xn--0gb6bxk; ڇ6ⴔ辘.صيڇ; [B2, B3]; xn--6-gsc2270akm6f.xn--0gb6bxk; ; ; # ڇ6ⴔ辘.صيڇ
+xn--6-gsc2270akm6f.xn--0gb6bxkx18g; ڇ6ⴔ辘.صيڇ‌; [B2, B3, C1]; xn--6-gsc2270akm6f.xn--0gb6bxkx18g; ; ; # ڇ6ⴔ辘.صيڇ
+xn--6-gsc039eqq6k.xn--0gb6bxk; ڇ6Ⴔ辘.صيڇ; [B2, B3, V6]; xn--6-gsc039eqq6k.xn--0gb6bxk; ; ; # ڇ6Ⴔ辘.صيڇ
+xn--6-gsc039eqq6k.xn--0gb6bxkx18g; ڇ6Ⴔ辘.صيڇ‌; [B2, B3, C1, V6]; xn--6-gsc039eqq6k.xn--0gb6bxkx18g; ; ; # ڇ6Ⴔ辘.صيڇ
+ڇ6ⴔ辘.ﴢڇ‌; ڇ6ⴔ辘.صيڇ‌; [B2, B3, C1]; xn--6-gsc2270akm6f.xn--0gb6bxkx18g; ; xn--6-gsc2270akm6f.xn--0gb6bxk; [B2, B3] # ڇ6ⴔ辘.صيڇ
+󠄍.𐮭𞰬򻫞۹; .𐮭𞰬򻫞۹; [B2, P1, V6, X4_2]; .xn--mmb3954kd0uf1zx7f; [B2, P1, V6, A4_2]; ; # .𐮭۹
+.xn--mmb3954kd0uf1zx7f; .𐮭𞰬򻫞۹; [B2, V6, X4_2]; .xn--mmb3954kd0uf1zx7f; [B2, V6, A4_2]; ; # .𐮭۹
+꡽≯.򻲀򒳄; ꡽≯.򻲀򒳄; [P1, V6]; xn--hdh8193c.xn--5z40cp629b; ; ; # ≯.
+꡽≯.򻲀򒳄; ꡽≯.򻲀򒳄; [P1, V6]; xn--hdh8193c.xn--5z40cp629b; ; ; # ≯.
+꡽≯.򻲀򒳄; ; [P1, V6]; xn--hdh8193c.xn--5z40cp629b; ; ; # ≯.
+꡽≯.򻲀򒳄; ꡽≯.򻲀򒳄; [P1, V6]; xn--hdh8193c.xn--5z40cp629b; ; ; # ≯.
+xn--hdh8193c.xn--5z40cp629b; ꡽≯.򻲀򒳄; [V6]; xn--hdh8193c.xn--5z40cp629b; ; ; # ≯.
+ςოٻ.ςܔ; ; [B5, B6]; xn--3xa80l26n.xn--3xa41o; ; xn--4xa60l26n.xn--4xa21o; # ςოٻ.ςܔ
+ΣᲝٻ.Σܔ; σᲝٻ.σܔ; [B5, B6, P1, V6]; xn--4xa60lw94a.xn--4xa21o; ; ; # σᲝٻ.σܔ
+σოٻ.σܔ; ; [B5, B6]; xn--4xa60l26n.xn--4xa21o; ; ; # σოٻ.σܔ
+Σოٻ.σܔ; σოٻ.σܔ; [B5, B6]; xn--4xa60l26n.xn--4xa21o; ; ; # σოٻ.σܔ
+xn--4xa60l26n.xn--4xa21o; σოٻ.σܔ; [B5, B6]; xn--4xa60l26n.xn--4xa21o; ; ; # σოٻ.σܔ
+xn--4xa60lw94a.xn--4xa21o; σᲝٻ.σܔ; [B5, B6, V6]; xn--4xa60lw94a.xn--4xa21o; ; ; # σᲝٻ.σܔ
+Σოٻ.ςܔ; σოٻ.ςܔ; [B5, B6]; xn--4xa60l26n.xn--3xa41o; ; xn--4xa60l26n.xn--4xa21o; # σოٻ.ςܔ
+σოٻ.ςܔ; ; [B5, B6]; xn--4xa60l26n.xn--3xa41o; ; xn--4xa60l26n.xn--4xa21o; # σოٻ.ςܔ
+xn--4xa60l26n.xn--3xa41o; σოٻ.ςܔ; [B5, B6]; xn--4xa60l26n.xn--3xa41o; ; ; # σოٻ.ςܔ
+xn--3xa80l26n.xn--3xa41o; ςოٻ.ςܔ; [B5, B6]; xn--3xa80l26n.xn--3xa41o; ; ; # ςოٻ.ςܔ
+Σოٻ.Σܔ; σოٻ.σܔ; [B5, B6]; xn--4xa60l26n.xn--4xa21o; ; ; # σოٻ.σܔ
+򄖚݈𠄯ݟ。󠛩; 򄖚݈𠄯ݟ.󠛩; [B1, B5, B6, P1, V6]; xn--vob0c4369twfv8b.xn--kl46e; ; ; # ݈𠄯ݟ.
+򄖚݈𠄯ݟ。󠛩; 򄖚݈𠄯ݟ.󠛩; [B1, B5, B6, P1, V6]; xn--vob0c4369twfv8b.xn--kl46e; ; ; # ݈𠄯ݟ.
+xn--vob0c4369twfv8b.xn--kl46e; 򄖚݈𠄯ݟ.󠛩; [B1, B5, B6, V6]; xn--vob0c4369twfv8b.xn--kl46e; ; ; # ݈𠄯ݟ.
+󠳛.‍䤫≠Ⴞ; 󠳛.‍䤫≠Ⴞ; [C2, P1, V6]; xn--1t56e.xn--2nd159e9vb743e; ; xn--1t56e.xn--2nd141ghl2a; [P1, V6] # .䤫≠Ⴞ
+󠳛.‍䤫≠Ⴞ; 󠳛.‍䤫≠Ⴞ; [C2, P1, V6]; xn--1t56e.xn--2nd159e9vb743e; ; xn--1t56e.xn--2nd141ghl2a; [P1, V6] # .䤫≠Ⴞ
+󠳛.‍䤫≠Ⴞ; ; [C2, P1, V6]; xn--1t56e.xn--2nd159e9vb743e; ; xn--1t56e.xn--2nd141ghl2a; [P1, V6] # .䤫≠Ⴞ
+󠳛.‍䤫≠Ⴞ; 󠳛.‍䤫≠Ⴞ; [C2, P1, V6]; xn--1t56e.xn--2nd159e9vb743e; ; xn--1t56e.xn--2nd141ghl2a; [P1, V6] # .䤫≠Ⴞ
+󠳛.‍䤫≠ⴞ; 󠳛.‍䤫≠ⴞ; [C2, P1, V6]; xn--1t56e.xn--1ug73gzzpwi3a; ; xn--1t56e.xn--1ch153bqvw; [P1, V6] # .䤫≠ⴞ
+󠳛.‍䤫≠ⴞ; ; [C2, P1, V6]; xn--1t56e.xn--1ug73gzzpwi3a; ; xn--1t56e.xn--1ch153bqvw; [P1, V6] # .䤫≠ⴞ
+xn--1t56e.xn--1ch153bqvw; 󠳛.䤫≠ⴞ; [V6]; xn--1t56e.xn--1ch153bqvw; ; ; # .䤫≠ⴞ
+xn--1t56e.xn--1ug73gzzpwi3a; 󠳛.‍䤫≠ⴞ; [C2, V6]; xn--1t56e.xn--1ug73gzzpwi3a; ; ; # .䤫≠ⴞ
+xn--1t56e.xn--2nd141ghl2a; 󠳛.䤫≠Ⴞ; [V6]; xn--1t56e.xn--2nd141ghl2a; ; ; # .䤫≠Ⴞ
+xn--1t56e.xn--2nd159e9vb743e; 󠳛.‍䤫≠Ⴞ; [C2, V6]; xn--1t56e.xn--2nd159e9vb743e; ; ; # .䤫≠Ⴞ
+󠳛.‍䤫≠ⴞ; 󠳛.‍䤫≠ⴞ; [C2, P1, V6]; xn--1t56e.xn--1ug73gzzpwi3a; ; xn--1t56e.xn--1ch153bqvw; [P1, V6] # .䤫≠ⴞ
+󠳛.‍䤫≠ⴞ; 󠳛.‍䤫≠ⴞ; [C2, P1, V6]; xn--1t56e.xn--1ug73gzzpwi3a; ; xn--1t56e.xn--1ch153bqvw; [P1, V6] # .䤫≠ⴞ
+𐽘𑈵.𐹣🕥; 𐽘𑈵.𐹣🕥; [B1, B2, B3]; xn--bv0d02c.xn--bo0dq650b; ; ; # 𐽘𑈵.𐹣🕥
+𐽘𑈵.𐹣🕥; ; [B1, B2, B3]; xn--bv0d02c.xn--bo0dq650b; ; ; # 𐽘𑈵.𐹣🕥
+xn--bv0d02c.xn--bo0dq650b; 𐽘𑈵.𐹣🕥; [B1, B2, B3]; xn--bv0d02c.xn--bo0dq650b; ; ; # 𐽘𑈵.𐹣🕥
+⒊⒈𑁄。9; ⒊⒈𑁄.9; [P1, V6]; xn--tshd3512p.9; ; ; # ⒊⒈𑁄.9
+3.1.𑁄。9; 3.1.𑁄.9; [V5]; 3.1.xn--110d.9; ; ; # 3.1.𑁄.9
+3.1.xn--110d.9; 3.1.𑁄.9; [V5]; 3.1.xn--110d.9; ; ; # 3.1.𑁄.9
+xn--tshd3512p.9; ⒊⒈𑁄.9; [V6]; xn--tshd3512p.9; ; ; # ⒊⒈𑁄.9
+-‌ⷱ≮.𐹱򭏴4₉; -‌ⷱ≮.𐹱򭏴49; [B1, C1, P1, V3, V6]; xn----sgn20i14s.xn--49-ki3om2611f; ; xn----ngo823c.xn--49-ki3om2611f; [B1, P1, V3, V6] # -ⷱ≮.𐹱49
+-‌ⷱ≮.𐹱򭏴4₉; -‌ⷱ≮.𐹱򭏴49; [B1, C1, P1, V3, V6]; xn----sgn20i14s.xn--49-ki3om2611f; ; xn----ngo823c.xn--49-ki3om2611f; [B1, P1, V3, V6] # -ⷱ≮.𐹱49
+-‌ⷱ≮.𐹱򭏴49; ; [B1, C1, P1, V3, V6]; xn----sgn20i14s.xn--49-ki3om2611f; ; xn----ngo823c.xn--49-ki3om2611f; [B1, P1, V3, V6] # -ⷱ≮.𐹱49
+-‌ⷱ≮.𐹱򭏴49; -‌ⷱ≮.𐹱򭏴49; [B1, C1, P1, V3, V6]; xn----sgn20i14s.xn--49-ki3om2611f; ; xn----ngo823c.xn--49-ki3om2611f; [B1, P1, V3, V6] # -ⷱ≮.𐹱49
+xn----ngo823c.xn--49-ki3om2611f; -ⷱ≮.𐹱򭏴49; [B1, V3, V6]; xn----ngo823c.xn--49-ki3om2611f; ; ; # -ⷱ≮.𐹱49
+xn----sgn20i14s.xn--49-ki3om2611f; -‌ⷱ≮.𐹱򭏴49; [B1, C1, V3, V6]; xn----sgn20i14s.xn--49-ki3om2611f; ; ; # -ⷱ≮.𐹱49
+-≯딾。ࡇ; -≯딾.ࡇ; [B1, P1, V3, V6]; xn----pgow547d.xn--5vb; ; ; # -≯딾.ࡇ
+-≯딾。ࡇ; -≯딾.ࡇ; [B1, P1, V3, V6]; xn----pgow547d.xn--5vb; ; ; # -≯딾.ࡇ
+-≯딾。ࡇ; -≯딾.ࡇ; [B1, P1, V3, V6]; xn----pgow547d.xn--5vb; ; ; # -≯딾.ࡇ
+-≯딾。ࡇ; -≯딾.ࡇ; [B1, P1, V3, V6]; xn----pgow547d.xn--5vb; ; ; # -≯딾.ࡇ
+xn----pgow547d.xn--5vb; -≯딾.ࡇ; [B1, V3, V6]; xn----pgow547d.xn--5vb; ; ; # -≯딾.ࡇ
+𑙢⒈𐹠-。󠗐‌; 𑙢⒈𐹠-.󠗐‌; [B1, C1, P1, V3, V6]; xn----dcpy090hiyg.xn--0ug23321l; ; xn----dcpy090hiyg.xn--jd46e; [B1, P1, V3, V6] # 𑙢⒈𐹠-.
+𑙢1.𐹠-。󠗐‌; 𑙢1.𐹠-.󠗐‌; [B1, C1, P1, V3, V6]; xn--1-bf0j.xn----516i.xn--0ug23321l; ; xn--1-bf0j.xn----516i.xn--jd46e; [B1, P1, V3, V6] # 𑙢1.𐹠-.
+xn--1-bf0j.xn----516i.xn--jd46e; 𑙢1.𐹠-.󠗐; [B1, V3, V6]; xn--1-bf0j.xn----516i.xn--jd46e; ; ; # 𑙢1.𐹠-.
+xn--1-bf0j.xn----516i.xn--0ug23321l; 𑙢1.𐹠-.󠗐‌; [B1, C1, V3, V6]; xn--1-bf0j.xn----516i.xn--0ug23321l; ; ; # 𑙢1.𐹠-.
+xn----dcpy090hiyg.xn--jd46e; 𑙢⒈𐹠-.󠗐; [B1, V3, V6]; xn----dcpy090hiyg.xn--jd46e; ; ; # 𑙢⒈𐹠-.
+xn----dcpy090hiyg.xn--0ug23321l; 𑙢⒈𐹠-.󠗐‌; [B1, C1, V3, V6]; xn----dcpy090hiyg.xn--0ug23321l; ; ; # 𑙢⒈𐹠-.
+͊.𐨎; ͊.𐨎; [V5]; xn--oua.xn--mr9c; ; ; # ͊.𐨎
+͊.𐨎; ; [V5]; xn--oua.xn--mr9c; ; ; # ͊.𐨎
+xn--oua.xn--mr9c; ͊.𐨎; [V5]; xn--oua.xn--mr9c; ; ; # ͊.𐨎
+훉≮。ิ; 훉≮.ิ; [P1, V5, V6]; xn--gdh2512e.xn--i4c; ; ; # 훉≮.ิ
+훉≮。ิ; 훉≮.ิ; [P1, V5, V6]; xn--gdh2512e.xn--i4c; ; ; # 훉≮.ิ
+훉≮。ิ; 훉≮.ิ; [P1, V5, V6]; xn--gdh2512e.xn--i4c; ; ; # 훉≮.ิ
+훉≮。ิ; 훉≮.ิ; [P1, V5, V6]; xn--gdh2512e.xn--i4c; ; ; # 훉≮.ิ
+xn--gdh2512e.xn--i4c; 훉≮.ิ; [V5, V6]; xn--gdh2512e.xn--i4c; ; ; # 훉≮.ิ
+ⷷ򞣉🃘.𴈇𝟸ٙ𞤯; ⷷ򞣉🃘.𴈇2ٙ𞤯; [B1, B5, B6, P1, V5, V6]; xn--trj8045le6s9b.xn--2-upc23918acjsj; ; ; # ⷷ🃘.2ٙ𞤯
+ⷷ򞣉🃘.𴈇2ٙ𞤯; ; [B1, B5, B6, P1, V5, V6]; xn--trj8045le6s9b.xn--2-upc23918acjsj; ; ; # ⷷ🃘.2ٙ𞤯
+ⷷ򞣉🃘.𴈇2ٙ𞤍; ⷷ򞣉🃘.𴈇2ٙ𞤯; [B1, B5, B6, P1, V5, V6]; xn--trj8045le6s9b.xn--2-upc23918acjsj; ; ; # ⷷ🃘.2ٙ𞤯
+xn--trj8045le6s9b.xn--2-upc23918acjsj; ⷷ򞣉🃘.𴈇2ٙ𞤯; [B1, B5, B6, V5, V6]; xn--trj8045le6s9b.xn--2-upc23918acjsj; ; ; # ⷷ🃘.2ٙ𞤯
+ⷷ򞣉🃘.𴈇𝟸ٙ𞤍; ⷷ򞣉🃘.𴈇2ٙ𞤯; [B1, B5, B6, P1, V5, V6]; xn--trj8045le6s9b.xn--2-upc23918acjsj; ; ; # ⷷ🃘.2ٙ𞤯
+󗇩ßᢞ‌。٠𞷻ﳔ-; 󗇩ßᢞ‌.٠𞷻نخ-; [B1, B6, C1, P1, V3, V6]; xn--zca272jbif10059a.xn----dnc5e1er384z; ; xn--ss-jepz4596r.xn----dnc5e1er384z; [B1, P1, V3, V6] # ßᢞ.٠نخ-
+󗇩ßᢞ‌。٠𞷻نخ-; 󗇩ßᢞ‌.٠𞷻نخ-; [B1, B6, C1, P1, V3, V6]; xn--zca272jbif10059a.xn----dnc5e1er384z; ; xn--ss-jepz4596r.xn----dnc5e1er384z; [B1, P1, V3, V6] # ßᢞ.٠نخ-
+󗇩SSᢞ‌。٠𞷻نخ-; 󗇩ssᢞ‌.٠𞷻نخ-; [B1, B6, C1, P1, V3, V6]; xn--ss-jep006bqt765b.xn----dnc5e1er384z; ; xn--ss-jepz4596r.xn----dnc5e1er384z; [B1, P1, V3, V6] # ssᢞ.٠نخ-
+󗇩ssᢞ‌。٠𞷻نخ-; 󗇩ssᢞ‌.٠𞷻نخ-; [B1, B6, C1, P1, V3, V6]; xn--ss-jep006bqt765b.xn----dnc5e1er384z; ; xn--ss-jepz4596r.xn----dnc5e1er384z; [B1, P1, V3, V6] # ssᢞ.٠نخ-
+󗇩Ssᢞ‌。٠𞷻نخ-; 󗇩ssᢞ‌.٠𞷻نخ-; [B1, B6, C1, P1, V3, V6]; xn--ss-jep006bqt765b.xn----dnc5e1er384z; ; xn--ss-jepz4596r.xn----dnc5e1er384z; [B1, P1, V3, V6] # ssᢞ.٠نخ-
+xn--ss-jepz4596r.xn----dnc5e1er384z; 󗇩ssᢞ.٠𞷻نخ-; [B1, V3, V6]; xn--ss-jepz4596r.xn----dnc5e1er384z; ; ; # ssᢞ.٠نخ-
+xn--ss-jep006bqt765b.xn----dnc5e1er384z; 󗇩ssᢞ‌.٠𞷻نخ-; [B1, B6, C1, V3, V6]; xn--ss-jep006bqt765b.xn----dnc5e1er384z; ; ; # ssᢞ.٠نخ-
+xn--zca272jbif10059a.xn----dnc5e1er384z; 󗇩ßᢞ‌.٠𞷻نخ-; [B1, B6, C1, V3, V6]; xn--zca272jbif10059a.xn----dnc5e1er384z; ; ; # ßᢞ.٠نخ-
+󗇩SSᢞ‌。٠𞷻ﳔ-; 󗇩ssᢞ‌.٠𞷻نخ-; [B1, B6, C1, P1, V3, V6]; xn--ss-jep006bqt765b.xn----dnc5e1er384z; ; xn--ss-jepz4596r.xn----dnc5e1er384z; [B1, P1, V3, V6] # ssᢞ.٠نخ-
+󗇩ssᢞ‌。٠𞷻ﳔ-; 󗇩ssᢞ‌.٠𞷻نخ-; [B1, B6, C1, P1, V3, V6]; xn--ss-jep006bqt765b.xn----dnc5e1er384z; ; xn--ss-jepz4596r.xn----dnc5e1er384z; [B1, P1, V3, V6] # ssᢞ.٠نخ-
+󗇩Ssᢞ‌。٠𞷻ﳔ-; 󗇩ssᢞ‌.٠𞷻نخ-; [B1, B6, C1, P1, V3, V6]; xn--ss-jep006bqt765b.xn----dnc5e1er384z; ; xn--ss-jepz4596r.xn----dnc5e1er384z; [B1, P1, V3, V6] # ssᢞ.٠نخ-
+ꡆ。Ↄྵ놮-; ꡆ.Ↄྵ놮-; [P1, V3, V6]; xn--fc9a.xn----qmg787k869k; ; ; # ꡆ.Ↄྵ놮-
+ꡆ。Ↄྵ놮-; ꡆ.Ↄྵ놮-; [P1, V3, V6]; xn--fc9a.xn----qmg787k869k; ; ; # ꡆ.Ↄྵ놮-
+ꡆ。ↄྵ놮-; ꡆ.ↄྵ놮-; [V3]; xn--fc9a.xn----qmg097k469k; ; ; # ꡆ.ↄྵ놮-
+ꡆ。ↄྵ놮-; ꡆ.ↄྵ놮-; [V3]; xn--fc9a.xn----qmg097k469k; ; ; # ꡆ.ↄྵ놮-
+xn--fc9a.xn----qmg097k469k; ꡆ.ↄྵ놮-; [V3]; xn--fc9a.xn----qmg097k469k; ; ; # ꡆ.ↄྵ놮-
+xn--fc9a.xn----qmg787k869k; ꡆ.Ↄྵ놮-; [V3, V6]; xn--fc9a.xn----qmg787k869k; ; ; # ꡆ.Ↄྵ놮-
+ﶭ‍.񥰌ک; لمي‍.񥰌ک; [B3, B5, B6, C2, P1, V6]; xn--ghbcp494x.xn--ckb36214f; ; xn--ghbcp.xn--ckb36214f; [B5, B6, P1, V6] # لمي.ک
+لمي‍.񥰌ک; ; [B3, B5, B6, C2, P1, V6]; xn--ghbcp494x.xn--ckb36214f; ; xn--ghbcp.xn--ckb36214f; [B5, B6, P1, V6] # لمي.ک
+xn--ghbcp.xn--ckb36214f; لمي.񥰌ک; [B5, B6, V6]; xn--ghbcp.xn--ckb36214f; ; ; # لمي.ک
+xn--ghbcp494x.xn--ckb36214f; لمي‍.񥰌ک; [B3, B5, B6, C2, V6]; xn--ghbcp494x.xn--ckb36214f; ; ; # لمي.ک
+Ⴜᰯ𐳒≯。۠ᜲྺ; Ⴜᰯ𐳒≯.۠ᜲྺ; [B1, B3, B5, B6, P1, V5, V6]; xn--0nd679cf3eq67y.xn--wlb646b4ng; ; ; # Ⴜᰯ𐳒≯.۠ᜲྺ
+Ⴜᰯ𐳒≯。۠ᜲྺ; Ⴜᰯ𐳒≯.۠ᜲྺ; [B1, B3, B5, B6, P1, V5, V6]; xn--0nd679cf3eq67y.xn--wlb646b4ng; ; ; # Ⴜᰯ𐳒≯.۠ᜲྺ
+ⴜᰯ𐳒≯。۠ᜲྺ; ⴜᰯ𐳒≯.۠ᜲྺ; [B1, B3, B5, B6, P1, V5, V6]; xn--r1f68xh1jgv7u.xn--wlb646b4ng; ; ; # ⴜᰯ𐳒≯.۠ᜲྺ
+ⴜᰯ𐳒≯。۠ᜲྺ; ⴜᰯ𐳒≯.۠ᜲྺ; [B1, B3, B5, B6, P1, V5, V6]; xn--r1f68xh1jgv7u.xn--wlb646b4ng; ; ; # ⴜᰯ𐳒≯.۠ᜲྺ
+Ⴜᰯ𐲒≯。۠ᜲྺ; Ⴜᰯ𐳒≯.۠ᜲྺ; [B1, B3, B5, B6, P1, V5, V6]; xn--0nd679cf3eq67y.xn--wlb646b4ng; ; ; # Ⴜᰯ𐳒≯.۠ᜲྺ
+Ⴜᰯ𐲒≯。۠ᜲྺ; Ⴜᰯ𐳒≯.۠ᜲྺ; [B1, B3, B5, B6, P1, V5, V6]; xn--0nd679cf3eq67y.xn--wlb646b4ng; ; ; # Ⴜᰯ𐳒≯.۠ᜲྺ
+xn--0nd679cf3eq67y.xn--wlb646b4ng; Ⴜᰯ𐳒≯.۠ᜲྺ; [B1, B3, B5, B6, V5, V6]; xn--0nd679cf3eq67y.xn--wlb646b4ng; ; ; # Ⴜᰯ𐳒≯.۠ᜲྺ
+xn--r1f68xh1jgv7u.xn--wlb646b4ng; ⴜᰯ𐳒≯.۠ᜲྺ; [B1, B3, B5, B6, V5, V6]; xn--r1f68xh1jgv7u.xn--wlb646b4ng; ; ; # ⴜᰯ𐳒≯.۠ᜲྺ
+𐋵。ﳬ; 𐋵.كم; [B1]; xn--p97c.xn--fhbe; ; ; # 𐋵.كم
+𐋵。كم; 𐋵.كم; [B1]; xn--p97c.xn--fhbe; ; ; # 𐋵.كم
+xn--p97c.xn--fhbe; 𐋵.كم; [B1]; xn--p97c.xn--fhbe; ; ; # 𐋵.كم
+𐋵.كم; ; [B1]; xn--p97c.xn--fhbe; ; ; # 𐋵.كم
+≮𝅶.񱲁ꫬ⹈󰥭; ≮𝅶.񱲁ꫬ⹈󰥭; [P1, V6]; xn--gdh0880o.xn--4tjx101bsg00ds9pyc; ; ; # ≮.ꫬ⹈
+≮𝅶.񱲁ꫬ⹈󰥭; ≮𝅶.񱲁ꫬ⹈󰥭; [P1, V6]; xn--gdh0880o.xn--4tjx101bsg00ds9pyc; ; ; # ≮.ꫬ⹈
+≮𝅶.񱲁ꫬ⹈󰥭; ; [P1, V6]; xn--gdh0880o.xn--4tjx101bsg00ds9pyc; ; ; # ≮.ꫬ⹈
+≮𝅶.񱲁ꫬ⹈󰥭; ≮𝅶.񱲁ꫬ⹈󰥭; [P1, V6]; xn--gdh0880o.xn--4tjx101bsg00ds9pyc; ; ; # ≮.ꫬ⹈
+xn--gdh0880o.xn--4tjx101bsg00ds9pyc; ≮𝅶.񱲁ꫬ⹈󰥭; [V6]; xn--gdh0880o.xn--4tjx101bsg00ds9pyc; ; ; # ≮.ꫬ⹈
+ⷰ͘ᢕ.͡𐹷󠴍; ⷰ͘ᢕ.͡𐹷󠴍; [B1, P1, V5, V6]; xn--2ua889htsp.xn--cva2687k2tv0g; ; ; # ⷰ͘ᢕ.͡𐹷
+ⷰ͘ᢕ.͡𐹷󠴍; ; [B1, P1, V5, V6]; xn--2ua889htsp.xn--cva2687k2tv0g; ; ; # ⷰ͘ᢕ.͡𐹷
+xn--2ua889htsp.xn--cva2687k2tv0g; ⷰ͘ᢕ.͡𐹷󠴍; [B1, V5, V6]; xn--2ua889htsp.xn--cva2687k2tv0g; ; ; # ⷰ͘ᢕ.͡𐹷
+ﵹᡐ‌ڭ.𑋪ׇ; غممᡐ‌ڭ.𑋪ׇ; [B1, B2, B3, B6, V5]; xn--5gbwa03bg24eptk.xn--vdb1198k; ; xn--5gbwa03bg24e.xn--vdb1198k; # غممᡐڭ.𑋪ׇ
+غممᡐ‌ڭ.𑋪ׇ; ; [B1, B2, B3, B6, V5]; xn--5gbwa03bg24eptk.xn--vdb1198k; ; xn--5gbwa03bg24e.xn--vdb1198k; # غممᡐڭ.𑋪ׇ
+xn--5gbwa03bg24e.xn--vdb1198k; غممᡐڭ.𑋪ׇ; [B1, B2, B3, B6, V5]; xn--5gbwa03bg24e.xn--vdb1198k; ; ; # غممᡐڭ.𑋪ׇ
+xn--5gbwa03bg24eptk.xn--vdb1198k; غممᡐ‌ڭ.𑋪ׇ; [B1, B2, B3, B6, V5]; xn--5gbwa03bg24eptk.xn--vdb1198k; ; ; # غممᡐڭ.𑋪ׇ
+𑑂。‍󥞀🞕򥁔; 𑑂.‍󥞀🞕򥁔; [C2, P1, V5, V6]; xn--8v1d.xn--1ug1386plvx1cd8vya; ; xn--8v1d.xn--ye9h41035a2qqs; [P1, V5, V6] # 𑑂.🞕
+𑑂。‍󥞀🞕򥁔; 𑑂.‍󥞀🞕򥁔; [C2, P1, V5, V6]; xn--8v1d.xn--1ug1386plvx1cd8vya; ; xn--8v1d.xn--ye9h41035a2qqs; [P1, V5, V6] # 𑑂.🞕
+xn--8v1d.xn--ye9h41035a2qqs; 𑑂.󥞀🞕򥁔; [V5, V6]; xn--8v1d.xn--ye9h41035a2qqs; ; ; # 𑑂.🞕
+xn--8v1d.xn--1ug1386plvx1cd8vya; 𑑂.‍󥞀🞕򥁔; [C2, V5, V6]; xn--8v1d.xn--1ug1386plvx1cd8vya; ; ; # 𑑂.🞕
+-ש。⒚; -ש.⒚; [B1, P1, V3, V6]; xn----gjc.xn--cth; ; ; # -ש.⒚
+-ש。19.; -ש.19.; [B1, V3]; xn----gjc.19.; ; ; # -ש.19.
+xn----gjc.19.; -ש.19.; [B1, V3]; xn----gjc.19.; ; ; # -ש.19.
+xn----gjc.xn--cth; -ש.⒚; [B1, V3, V6]; xn----gjc.xn--cth; ; ; # -ש.⒚
+􊾻ࡅ‌。ᢎ‍; 􊾻ࡅ‌.ᢎ‍; [B5, B6, C1, C2, P1, V6]; xn--3vb882jz4411a.xn--79e259a; ; xn--3vb50049s.xn--79e; [B5, B6, P1, V6] # ࡅ.ᢎ
+􊾻ࡅ‌。ᢎ‍; 􊾻ࡅ‌.ᢎ‍; [B5, B6, C1, C2, P1, V6]; xn--3vb882jz4411a.xn--79e259a; ; xn--3vb50049s.xn--79e; [B5, B6, P1, V6] # ࡅ.ᢎ
+xn--3vb50049s.xn--79e; 􊾻ࡅ.ᢎ; [B5, B6, V6]; xn--3vb50049s.xn--79e; ; ; # ࡅ.ᢎ
+xn--3vb882jz4411a.xn--79e259a; 􊾻ࡅ‌.ᢎ‍; [B5, B6, C1, C2, V6]; xn--3vb882jz4411a.xn--79e259a; ; ; # ࡅ.ᢎ
+ßুᷭ。ؠ8₅; ßুᷭ.ؠ85; ; xn--zca266bwrr.xn--85-psd; ; xn--ss-e2f077r.xn--85-psd; # ßুᷭ.ؠ85
+ßুᷭ。ؠ85; ßুᷭ.ؠ85; ; xn--zca266bwrr.xn--85-psd; ; xn--ss-e2f077r.xn--85-psd; # ßুᷭ.ؠ85
+SSুᷭ。ؠ85; ssুᷭ.ؠ85; ; xn--ss-e2f077r.xn--85-psd; ; ; # ssুᷭ.ؠ85
+ssুᷭ。ؠ85; ssুᷭ.ؠ85; ; xn--ss-e2f077r.xn--85-psd; ; ; # ssুᷭ.ؠ85
+Ssুᷭ。ؠ85; ssুᷭ.ؠ85; ; xn--ss-e2f077r.xn--85-psd; ; ; # ssুᷭ.ؠ85
+xn--ss-e2f077r.xn--85-psd; ssুᷭ.ؠ85; ; xn--ss-e2f077r.xn--85-psd; ; ; # ssুᷭ.ؠ85
+ssুᷭ.ؠ85; ; ; xn--ss-e2f077r.xn--85-psd; ; ; # ssুᷭ.ؠ85
+SSুᷭ.ؠ85; ssুᷭ.ؠ85; ; xn--ss-e2f077r.xn--85-psd; ; ; # ssুᷭ.ؠ85
+Ssুᷭ.ؠ85; ssুᷭ.ؠ85; ; xn--ss-e2f077r.xn--85-psd; ; ; # ssুᷭ.ؠ85
+xn--zca266bwrr.xn--85-psd; ßুᷭ.ؠ85; ; xn--zca266bwrr.xn--85-psd; ; ; # ßুᷭ.ؠ85
+ßুᷭ.ؠ85; ; ; xn--zca266bwrr.xn--85-psd; ; xn--ss-e2f077r.xn--85-psd; # ßুᷭ.ؠ85
+SSুᷭ。ؠ8₅; ssুᷭ.ؠ85; ; xn--ss-e2f077r.xn--85-psd; ; ; # ssুᷭ.ؠ85
+ssুᷭ。ؠ8₅; ssুᷭ.ؠ85; ; xn--ss-e2f077r.xn--85-psd; ; ; # ssুᷭ.ؠ85
+Ssুᷭ。ؠ8₅; ssুᷭ.ؠ85; ; xn--ss-e2f077r.xn--85-psd; ; ; # ssুᷭ.ؠ85
+્҄魅𝟣.₃𐹥ß; ્҄魅1.3𐹥ß; [B1, V5]; xn--1-0xb049b102o.xn--3-qfa7018r; ; xn--1-0xb049b102o.xn--3ss-nv9t; # ્҄魅1.3𐹥ß
+્҄魅1.3𐹥ß; ; [B1, V5]; xn--1-0xb049b102o.xn--3-qfa7018r; ; xn--1-0xb049b102o.xn--3ss-nv9t; # ્҄魅1.3𐹥ß
+્҄魅1.3𐹥SS; ્҄魅1.3𐹥ss; [B1, V5]; xn--1-0xb049b102o.xn--3ss-nv9t; ; ; # ્҄魅1.3𐹥ss
+્҄魅1.3𐹥ss; ; [B1, V5]; xn--1-0xb049b102o.xn--3ss-nv9t; ; ; # ્҄魅1.3𐹥ss
+્҄魅1.3𐹥Ss; ્҄魅1.3𐹥ss; [B1, V5]; xn--1-0xb049b102o.xn--3ss-nv9t; ; ; # ્҄魅1.3𐹥ss
+xn--1-0xb049b102o.xn--3ss-nv9t; ્҄魅1.3𐹥ss; [B1, V5]; xn--1-0xb049b102o.xn--3ss-nv9t; ; ; # ્҄魅1.3𐹥ss
+xn--1-0xb049b102o.xn--3-qfa7018r; ્҄魅1.3𐹥ß; [B1, V5]; xn--1-0xb049b102o.xn--3-qfa7018r; ; ; # ્҄魅1.3𐹥ß
+્҄魅𝟣.₃𐹥SS; ્҄魅1.3𐹥ss; [B1, V5]; xn--1-0xb049b102o.xn--3ss-nv9t; ; ; # ્҄魅1.3𐹥ss
+્҄魅𝟣.₃𐹥ss; ્҄魅1.3𐹥ss; [B1, V5]; xn--1-0xb049b102o.xn--3ss-nv9t; ; ; # ્҄魅1.3𐹥ss
+્҄魅𝟣.₃𐹥Ss; ્҄魅1.3𐹥ss; [B1, V5]; xn--1-0xb049b102o.xn--3ss-nv9t; ; ; # ્҄魅1.3𐹥ss
+ܫ。𑓂⒈𑜫󠿻; ܫ.𑓂⒈𑜫󠿻; [B1, P1, V5, V6]; xn--1nb.xn--tsh7798f6rbrt828c; ; ; # ܫ.𑓂⒈𑜫
+ܫ。𑓂1.𑜫󠿻; ܫ.𑓂1.𑜫󠿻; [B1, P1, V5, V6]; xn--1nb.xn--1-jq9i.xn--ji2dg9877c; ; ; # ܫ.𑓂1.𑜫
+xn--1nb.xn--1-jq9i.xn--ji2dg9877c; ܫ.𑓂1.𑜫󠿻; [B1, V5, V6]; xn--1nb.xn--1-jq9i.xn--ji2dg9877c; ; ; # ܫ.𑓂1.𑜫
+xn--1nb.xn--tsh7798f6rbrt828c; ܫ.𑓂⒈𑜫󠿻; [B1, V5, V6]; xn--1nb.xn--tsh7798f6rbrt828c; ; ; # ܫ.𑓂⒈𑜫
+︍છ。嵨; છ.嵨; ; xn--6dc.xn--tot; ; ; # છ.嵨
+xn--6dc.xn--tot; છ.嵨; ; xn--6dc.xn--tot; ; ; # છ.嵨
+છ.嵨; ; ; xn--6dc.xn--tot; ; ; # છ.嵨
+Ⴔ≠Ⴀ.𐹥𐹰; ; [B1, P1, V6]; xn--7md3b171g.xn--do0dwa; ; ; # Ⴔ≠Ⴀ.𐹥𐹰
+Ⴔ≠Ⴀ.𐹥𐹰; Ⴔ≠Ⴀ.𐹥𐹰; [B1, P1, V6]; xn--7md3b171g.xn--do0dwa; ; ; # Ⴔ≠Ⴀ.𐹥𐹰
+ⴔ≠ⴀ.𐹥𐹰; ⴔ≠ⴀ.𐹥𐹰; [B1, P1, V6]; xn--1ch603bxb.xn--do0dwa; ; ; # ⴔ≠ⴀ.𐹥𐹰
+ⴔ≠ⴀ.𐹥𐹰; ; [B1, P1, V6]; xn--1ch603bxb.xn--do0dwa; ; ; # ⴔ≠ⴀ.𐹥𐹰
+xn--1ch603bxb.xn--do0dwa; ⴔ≠ⴀ.𐹥𐹰; [B1, V6]; xn--1ch603bxb.xn--do0dwa; ; ; # ⴔ≠ⴀ.𐹥𐹰
+xn--7md3b171g.xn--do0dwa; Ⴔ≠Ⴀ.𐹥𐹰; [B1, V6]; xn--7md3b171g.xn--do0dwa; ; ; # Ⴔ≠Ⴀ.𐹥𐹰
+-‌⒙𐫥。𝨵; -‌⒙𐫥.𝨵; [C1, P1, V3, V5, V6]; xn----sgn18r3191a.xn--382h; ; xn----ddps939g.xn--382h; [P1, V3, V5, V6] # -⒙𐫥.𝨵
+-‌18.𐫥。𝨵; -‌18.𐫥.𝨵; [C1, V3, V5]; xn---18-9m0a.xn--rx9c.xn--382h; ; -18.xn--rx9c.xn--382h; [V3, V5] # -18.𐫥.𝨵
+-18.xn--rx9c.xn--382h; -18.𐫥.𝨵; [V3, V5]; -18.xn--rx9c.xn--382h; ; ; # -18.𐫥.𝨵
+xn---18-9m0a.xn--rx9c.xn--382h; -‌18.𐫥.𝨵; [C1, V3, V5]; xn---18-9m0a.xn--rx9c.xn--382h; ; ; # -18.𐫥.𝨵
+xn----ddps939g.xn--382h; -⒙𐫥.𝨵; [V3, V5, V6]; xn----ddps939g.xn--382h; ; ; # -⒙𐫥.𝨵
+xn----sgn18r3191a.xn--382h; -‌⒙𐫥.𝨵; [C1, V3, V5, V6]; xn----sgn18r3191a.xn--382h; ; ; # -⒙𐫥.𝨵
+︒.ʌᠣ-𐹽; ; [B1, B5, B6, P1, V6]; xn--y86c.xn----73a596nuh9t; ; ; # ︒.ʌᠣ-𐹽
+。.ʌᠣ-𐹽; ..ʌᠣ-𐹽; [B5, B6, X4_2]; ..xn----73a596nuh9t; [B5, B6, A4_2]; ; # ..ʌᠣ-𐹽
+。.Ʌᠣ-𐹽; ..ʌᠣ-𐹽; [B5, B6, X4_2]; ..xn----73a596nuh9t; [B5, B6, A4_2]; ; # ..ʌᠣ-𐹽
+..xn----73a596nuh9t; ..ʌᠣ-𐹽; [B5, B6, X4_2]; ..xn----73a596nuh9t; [B5, B6, A4_2]; ; # ..ʌᠣ-𐹽
+︒.Ʌᠣ-𐹽; ︒.ʌᠣ-𐹽; [B1, B5, B6, P1, V6]; xn--y86c.xn----73a596nuh9t; ; ; # ︒.ʌᠣ-𐹽
+xn--y86c.xn----73a596nuh9t; ︒.ʌᠣ-𐹽; [B1, B5, B6, V6]; xn--y86c.xn----73a596nuh9t; ; ; # ︒.ʌᠣ-𐹽
+︅︒。𦀾᳠; ︒.𦀾᳠; [P1, V6]; xn--y86c.xn--t6f5138v; ; ; # ︒.𦀾᳠
+︅。。𦀾᳠; ..𦀾᳠; [X4_2]; ..xn--t6f5138v; [A4_2]; ; # ..𦀾᳠
+..xn--t6f5138v; ..𦀾᳠; [X4_2]; ..xn--t6f5138v; [A4_2]; ; # ..𦀾᳠
+xn--y86c.xn--t6f5138v; ︒.𦀾᳠; [V6]; xn--y86c.xn--t6f5138v; ; ; # ︒.𦀾᳠
+xn--t6f5138v; 𦀾᳠; ; xn--t6f5138v; ; ; # 𦀾᳠
+𦀾᳠; ; ; xn--t6f5138v; ; ; # 𦀾᳠
+𞮑ß􏞞。ᡁ; 𞮑ß􏞞.ᡁ; [B2, B3, P1, V6]; xn--zca9432wb989f.xn--07e; ; xn--ss-o412ac6305g.xn--07e; # ß.ᡁ
+𞮑SS􏞞。ᡁ; 𞮑ss􏞞.ᡁ; [B2, B3, P1, V6]; xn--ss-o412ac6305g.xn--07e; ; ; # ss.ᡁ
+𞮑ss􏞞。ᡁ; 𞮑ss􏞞.ᡁ; [B2, B3, P1, V6]; xn--ss-o412ac6305g.xn--07e; ; ; # ss.ᡁ
+𞮑Ss􏞞。ᡁ; 𞮑ss􏞞.ᡁ; [B2, B3, P1, V6]; xn--ss-o412ac6305g.xn--07e; ; ; # ss.ᡁ
+xn--ss-o412ac6305g.xn--07e; 𞮑ss􏞞.ᡁ; [B2, B3, V6]; xn--ss-o412ac6305g.xn--07e; ; ; # ss.ᡁ
+xn--zca9432wb989f.xn--07e; 𞮑ß􏞞.ᡁ; [B2, B3, V6]; xn--zca9432wb989f.xn--07e; ; ; # ß.ᡁ
+꥓‍ج٬。𱆎󻡟‌󠅆; ꥓‍ج٬.𱆎󻡟‌; [B5, B6, C1, P1, V5, V6]; xn--rgb2k500fhq9j.xn--0ug78870a5sp9d; ; xn--rgb2k6711c.xn--ec8nj3948b; [B5, B6, P1, V5, V6] # ꥓ج٬.
+xn--rgb2k6711c.xn--ec8nj3948b; ꥓ج٬.𱆎󻡟; [B5, B6, V5, V6]; xn--rgb2k6711c.xn--ec8nj3948b; ; ; # ꥓ج٬.
+xn--rgb2k500fhq9j.xn--0ug78870a5sp9d; ꥓‍ج٬.𱆎󻡟‌; [B5, B6, C1, V5, V6]; xn--rgb2k500fhq9j.xn--0ug78870a5sp9d; ; ; # ꥓ج٬.
+󠕏.-ß‌≠; 󠕏.-ß‌≠; [C1, P1, V3, V6]; xn--u836e.xn----qfa750ve7b; ; xn--u836e.xn---ss-gl2a; [P1, V3, V6] # .-ß≠
+󠕏.-ß‌≠; 󠕏.-ß‌≠; [C1, P1, V3, V6]; xn--u836e.xn----qfa750ve7b; ; xn--u836e.xn---ss-gl2a; [P1, V3, V6] # .-ß≠
+󠕏.-ß‌≠; ; [C1, P1, V3, V6]; xn--u836e.xn----qfa750ve7b; ; xn--u836e.xn---ss-gl2a; [P1, V3, V6] # .-ß≠
+󠕏.-ß‌≠; 󠕏.-ß‌≠; [C1, P1, V3, V6]; xn--u836e.xn----qfa750ve7b; ; xn--u836e.xn---ss-gl2a; [P1, V3, V6] # .-ß≠
+󠕏.-SS‌≠; 󠕏.-ss‌≠; [C1, P1, V3, V6]; xn--u836e.xn---ss-cn0at5l; ; xn--u836e.xn---ss-gl2a; [P1, V3, V6] # .-ss≠
+󠕏.-SS‌≠; 󠕏.-ss‌≠; [C1, P1, V3, V6]; xn--u836e.xn---ss-cn0at5l; ; xn--u836e.xn---ss-gl2a; [P1, V3, V6] # .-ss≠
+󠕏.-ss‌≠; ; [C1, P1, V3, V6]; xn--u836e.xn---ss-cn0at5l; ; xn--u836e.xn---ss-gl2a; [P1, V3, V6] # .-ss≠
+󠕏.-ss‌≠; 󠕏.-ss‌≠; [C1, P1, V3, V6]; xn--u836e.xn---ss-cn0at5l; ; xn--u836e.xn---ss-gl2a; [P1, V3, V6] # .-ss≠
+󠕏.-Ss‌≠; 󠕏.-ss‌≠; [C1, P1, V3, V6]; xn--u836e.xn---ss-cn0at5l; ; xn--u836e.xn---ss-gl2a; [P1, V3, V6] # .-ss≠
+󠕏.-Ss‌≠; 󠕏.-ss‌≠; [C1, P1, V3, V6]; xn--u836e.xn---ss-cn0at5l; ; xn--u836e.xn---ss-gl2a; [P1, V3, V6] # .-ss≠
+xn--u836e.xn---ss-gl2a; 󠕏.-ss≠; [V3, V6]; xn--u836e.xn---ss-gl2a; ; ; # .-ss≠
+xn--u836e.xn---ss-cn0at5l; 󠕏.-ss‌≠; [C1, V3, V6]; xn--u836e.xn---ss-cn0at5l; ; ; # .-ss≠
+xn--u836e.xn----qfa750ve7b; 󠕏.-ß‌≠; [C1, V3, V6]; xn--u836e.xn----qfa750ve7b; ; ; # .-ß≠
+󠕏.-SS‌≠; 󠕏.-ss‌≠; [C1, P1, V3, V6]; xn--u836e.xn---ss-cn0at5l; ; xn--u836e.xn---ss-gl2a; [P1, V3, V6] # .-ss≠
+󠕏.-SS‌≠; 󠕏.-ss‌≠; [C1, P1, V3, V6]; xn--u836e.xn---ss-cn0at5l; ; xn--u836e.xn---ss-gl2a; [P1, V3, V6] # .-ss≠
+󠕏.-ss‌≠; 󠕏.-ss‌≠; [C1, P1, V3, V6]; xn--u836e.xn---ss-cn0at5l; ; xn--u836e.xn---ss-gl2a; [P1, V3, V6] # .-ss≠
+󠕏.-ss‌≠; 󠕏.-ss‌≠; [C1, P1, V3, V6]; xn--u836e.xn---ss-cn0at5l; ; xn--u836e.xn---ss-gl2a; [P1, V3, V6] # .-ss≠
+󠕏.-Ss‌≠; 󠕏.-ss‌≠; [C1, P1, V3, V6]; xn--u836e.xn---ss-cn0at5l; ; xn--u836e.xn---ss-gl2a; [P1, V3, V6] # .-ss≠
+󠕏.-Ss‌≠; 󠕏.-ss‌≠; [C1, P1, V3, V6]; xn--u836e.xn---ss-cn0at5l; ; xn--u836e.xn---ss-gl2a; [P1, V3, V6] # .-ss≠
+ᡙ‌。≯𐋲≠; ᡙ‌.≯𐋲≠; [C1, P1, V6]; xn--p8e650b.xn--1ch3a7084l; ; xn--p8e.xn--1ch3a7084l; [P1, V6] # ᡙ.≯𐋲≠
+ᡙ‌。≯𐋲≠; ᡙ‌.≯𐋲≠; [C1, P1, V6]; xn--p8e650b.xn--1ch3a7084l; ; xn--p8e.xn--1ch3a7084l; [P1, V6] # ᡙ.≯𐋲≠
+ᡙ‌。≯𐋲≠; ᡙ‌.≯𐋲≠; [C1, P1, V6]; xn--p8e650b.xn--1ch3a7084l; ; xn--p8e.xn--1ch3a7084l; [P1, V6] # ᡙ.≯𐋲≠
+ᡙ‌。≯𐋲≠; ᡙ‌.≯𐋲≠; [C1, P1, V6]; xn--p8e650b.xn--1ch3a7084l; ; xn--p8e.xn--1ch3a7084l; [P1, V6] # ᡙ.≯𐋲≠
+xn--p8e.xn--1ch3a7084l; ᡙ.≯𐋲≠; [V6]; xn--p8e.xn--1ch3a7084l; ; ; # ᡙ.≯𐋲≠
+xn--p8e650b.xn--1ch3a7084l; ᡙ‌.≯𐋲≠; [C1, V6]; xn--p8e650b.xn--1ch3a7084l; ; ; # ᡙ.≯𐋲≠
+𐹧𞲄󠁭񆼩。͎🄀; 𐹧𞲄󠁭񆼩.͎🄀; [B1, P1, V5, V6]; xn--fo0dw409aq58qrn69d.xn--sua6883w; ; ; # 𐹧𞲄.͎🄀
+𐹧𞲄󠁭񆼩。͎0.; 𐹧𞲄󠁭񆼩.͎0.; [B1, P1, V5, V6]; xn--fo0dw409aq58qrn69d.xn--0-bgb.; ; ; # 𐹧𞲄.͎0.
+xn--fo0dw409aq58qrn69d.xn--0-bgb.; 𐹧𞲄󠁭񆼩.͎0.; [B1, V5, V6]; xn--fo0dw409aq58qrn69d.xn--0-bgb.; ; ; # 𐹧𞲄.͎0.
+xn--fo0dw409aq58qrn69d.xn--sua6883w; 𐹧𞲄󠁭񆼩.͎🄀; [B1, V5, V6]; xn--fo0dw409aq58qrn69d.xn--sua6883w; ; ; # 𐹧𞲄.͎🄀
+Ⴄ.‍ܡ󻣋ς; Ⴄ.‍ܡ󻣋ς; [B1, C2, P1, V6]; xn--cnd.xn--3xa93o3t5ajq467a; ; xn--cnd.xn--4xa73ob5892c; [B2, B3, P1, V6] # Ⴄ.ܡς
+Ⴄ.‍ܡ󻣋ς; ; [B1, C2, P1, V6]; xn--cnd.xn--3xa93o3t5ajq467a; ; xn--cnd.xn--4xa73ob5892c; [B2, B3, P1, V6] # Ⴄ.ܡς
+ⴄ.‍ܡ󻣋ς; ; [B1, C2, P1, V6]; xn--vkj.xn--3xa93o3t5ajq467a; ; xn--vkj.xn--4xa73ob5892c; [B2, B3, P1, V6] # ⴄ.ܡς
+Ⴄ.‍ܡ󻣋Σ; Ⴄ.‍ܡ󻣋σ; [B1, C2, P1, V6]; xn--cnd.xn--4xa73o3t5ajq467a; ; xn--cnd.xn--4xa73ob5892c; [B2, B3, P1, V6] # Ⴄ.ܡσ
+ⴄ.‍ܡ󻣋σ; ; [B1, C2, P1, V6]; xn--vkj.xn--4xa73o3t5ajq467a; ; xn--vkj.xn--4xa73ob5892c; [B2, B3, P1, V6] # ⴄ.ܡσ
+xn--vkj.xn--4xa73ob5892c; ⴄ.ܡ󻣋σ; [B2, B3, V6]; xn--vkj.xn--4xa73ob5892c; ; ; # ⴄ.ܡσ
+xn--vkj.xn--4xa73o3t5ajq467a; ⴄ.‍ܡ󻣋σ; [B1, C2, V6]; xn--vkj.xn--4xa73o3t5ajq467a; ; ; # ⴄ.ܡσ
+xn--cnd.xn--4xa73ob5892c; Ⴄ.ܡ󻣋σ; [B2, B3, V6]; xn--cnd.xn--4xa73ob5892c; ; ; # Ⴄ.ܡσ
+xn--cnd.xn--4xa73o3t5ajq467a; Ⴄ.‍ܡ󻣋σ; [B1, C2, V6]; xn--cnd.xn--4xa73o3t5ajq467a; ; ; # Ⴄ.ܡσ
+xn--vkj.xn--3xa93o3t5ajq467a; ⴄ.‍ܡ󻣋ς; [B1, C2, V6]; xn--vkj.xn--3xa93o3t5ajq467a; ; ; # ⴄ.ܡς
+xn--cnd.xn--3xa93o3t5ajq467a; Ⴄ.‍ܡ󻣋ς; [B1, C2, V6]; xn--cnd.xn--3xa93o3t5ajq467a; ; ; # Ⴄ.ܡς
+ⴄ.‍ܡ󻣋ς; ⴄ.‍ܡ󻣋ς; [B1, C2, P1, V6]; xn--vkj.xn--3xa93o3t5ajq467a; ; xn--vkj.xn--4xa73ob5892c; [B2, B3, P1, V6] # ⴄ.ܡς
+Ⴄ.‍ܡ󻣋Σ; Ⴄ.‍ܡ󻣋σ; [B1, C2, P1, V6]; xn--cnd.xn--4xa73o3t5ajq467a; ; xn--cnd.xn--4xa73ob5892c; [B2, B3, P1, V6] # Ⴄ.ܡσ
+ⴄ.‍ܡ󻣋σ; ⴄ.‍ܡ󻣋σ; [B1, C2, P1, V6]; xn--vkj.xn--4xa73o3t5ajq467a; ; xn--vkj.xn--4xa73ob5892c; [B2, B3, P1, V6] # ⴄ.ܡσ
+򮵛ؓ.Ⴕ; ; [P1, V6]; xn--1fb94204l.xn--tnd; ; ; # ؓ.Ⴕ
+򮵛ؓ.ⴕ; ; [P1, V6]; xn--1fb94204l.xn--dlj; ; ; # ؓ.ⴕ
+xn--1fb94204l.xn--dlj; 򮵛ؓ.ⴕ; [V6]; xn--1fb94204l.xn--dlj; ; ; # ؓ.ⴕ
+xn--1fb94204l.xn--tnd; 򮵛ؓ.Ⴕ; [V6]; xn--1fb94204l.xn--tnd; ; ; # ؓ.Ⴕ
+≯ᷳ𞤥。‌꣄󠪉‍; ≯ᷳ𞤥.‌꣄󠪉‍; [B1, C1, C2, P1, V6]; xn--ofg13qyr21c.xn--0ugc0116hix29k; ; xn--ofg13qyr21c.xn--0f9au6706d; [B1, P1, V5, V6] # ≯ᷳ𞤥.꣄
+≯ᷳ𞤥。‌꣄󠪉‍; ≯ᷳ𞤥.‌꣄󠪉‍; [B1, C1, C2, P1, V6]; xn--ofg13qyr21c.xn--0ugc0116hix29k; ; xn--ofg13qyr21c.xn--0f9au6706d; [B1, P1, V5, V6] # ≯ᷳ𞤥.꣄
+≯ᷳ𞤃。‌꣄󠪉‍; ≯ᷳ𞤥.‌꣄󠪉‍; [B1, C1, C2, P1, V6]; xn--ofg13qyr21c.xn--0ugc0116hix29k; ; xn--ofg13qyr21c.xn--0f9au6706d; [B1, P1, V5, V6] # ≯ᷳ𞤥.꣄
+≯ᷳ𞤃。‌꣄󠪉‍; ≯ᷳ𞤥.‌꣄󠪉‍; [B1, C1, C2, P1, V6]; xn--ofg13qyr21c.xn--0ugc0116hix29k; ; xn--ofg13qyr21c.xn--0f9au6706d; [B1, P1, V5, V6] # ≯ᷳ𞤥.꣄
+xn--ofg13qyr21c.xn--0f9au6706d; ≯ᷳ𞤥.꣄󠪉; [B1, V5, V6]; xn--ofg13qyr21c.xn--0f9au6706d; ; ; # ≯ᷳ𞤥.꣄
+xn--ofg13qyr21c.xn--0ugc0116hix29k; ≯ᷳ𞤥.‌꣄󠪉‍; [B1, C1, C2, V6]; xn--ofg13qyr21c.xn--0ugc0116hix29k; ; ; # ≯ᷳ𞤥.꣄
+‌󠄷。򒑁; ‌.򒑁; [C1, P1, V6]; xn--0ug.xn--w720c; ; .xn--w720c; [P1, V6, A4_2] # .
+‌󠄷。򒑁; ‌.򒑁; [C1, P1, V6]; xn--0ug.xn--w720c; ; .xn--w720c; [P1, V6, A4_2] # .
+.xn--w720c; .򒑁; [V6, X4_2]; .xn--w720c; [V6, A4_2]; ; # .
+xn--0ug.xn--w720c; ‌.򒑁; [C1, V6]; xn--0ug.xn--w720c; ; ; # .
+⒈ූ焅.󗡙‍ꡟ; ; [C2, P1, V6]; xn--t1c337io97c.xn--1ugz184c9lw7i; ; xn--t1c337io97c.xn--4c9a21133d; [P1, V6] # ⒈ූ焅.ꡟ
+1.ූ焅.󗡙‍ꡟ; ; [C2, P1, V5, V6]; 1.xn--t1c6981c.xn--1ugz184c9lw7i; ; 1.xn--t1c6981c.xn--4c9a21133d; [P1, V5, V6] # 1.ූ焅.ꡟ
+1.xn--t1c6981c.xn--4c9a21133d; 1.ූ焅.󗡙ꡟ; [V5, V6]; 1.xn--t1c6981c.xn--4c9a21133d; ; ; # 1.ූ焅.ꡟ
+1.xn--t1c6981c.xn--1ugz184c9lw7i; 1.ූ焅.󗡙‍ꡟ; [C2, V5, V6]; 1.xn--t1c6981c.xn--1ugz184c9lw7i; ; ; # 1.ූ焅.ꡟ
+xn--t1c337io97c.xn--4c9a21133d; ⒈ූ焅.󗡙ꡟ; [V6]; xn--t1c337io97c.xn--4c9a21133d; ; ; # ⒈ූ焅.ꡟ
+xn--t1c337io97c.xn--1ugz184c9lw7i; ⒈ූ焅.󗡙‍ꡟ; [C2, V6]; xn--t1c337io97c.xn--1ugz184c9lw7i; ; ; # ⒈ූ焅.ꡟ
+᷍ς≮.ς𝪦𞤕0; ᷍ς≮.ς𝪦𞤷0; [B1, B5, P1, V5, V6]; xn--3xa744kvid.xn--0-xmb85727aggma; ; xn--4xa544kvid.xn--0-zmb55727aggma; # ᷍ς≮.ς𝪦𞤷0
+᷍ς≮.ς𝪦𞤕0; ᷍ς≮.ς𝪦𞤷0; [B1, B5, P1, V5, V6]; xn--3xa744kvid.xn--0-xmb85727aggma; ; xn--4xa544kvid.xn--0-zmb55727aggma; # ᷍ς≮.ς𝪦𞤷0
+᷍ς≮.ς𝪦𞤷0; ᷍ς≮.ς𝪦𞤷0; [B1, B5, P1, V5, V6]; xn--3xa744kvid.xn--0-xmb85727aggma; ; xn--4xa544kvid.xn--0-zmb55727aggma; # ᷍ς≮.ς𝪦𞤷0
+᷍ς≮.ς𝪦𞤷0; ; [B1, B5, P1, V5, V6]; xn--3xa744kvid.xn--0-xmb85727aggma; ; xn--4xa544kvid.xn--0-zmb55727aggma; # ᷍ς≮.ς𝪦𞤷0
+᷍Σ≮.Σ𝪦𞤕0; ᷍σ≮.σ𝪦𞤷0; [B1, B5, P1, V5, V6]; xn--4xa544kvid.xn--0-zmb55727aggma; ; ; # ᷍σ≮.σ𝪦𞤷0
+᷍Σ≮.Σ𝪦𞤕0; ᷍σ≮.σ𝪦𞤷0; [B1, B5, P1, V5, V6]; xn--4xa544kvid.xn--0-zmb55727aggma; ; ; # ᷍σ≮.σ𝪦𞤷0
+᷍σ≮.σ𝪦𞤷0; ᷍σ≮.σ𝪦𞤷0; [B1, B5, P1, V5, V6]; xn--4xa544kvid.xn--0-zmb55727aggma; ; ; # ᷍σ≮.σ𝪦𞤷0
+᷍σ≮.σ𝪦𞤷0; ; [B1, B5, P1, V5, V6]; xn--4xa544kvid.xn--0-zmb55727aggma; ; ; # ᷍σ≮.σ𝪦𞤷0
+᷍Σ≮.Σ𝪦𞤷0; ᷍σ≮.σ𝪦𞤷0; [B1, B5, P1, V5, V6]; xn--4xa544kvid.xn--0-zmb55727aggma; ; ; # ᷍σ≮.σ𝪦𞤷0
+᷍Σ≮.Σ𝪦𞤷0; ᷍σ≮.σ𝪦𞤷0; [B1, B5, P1, V5, V6]; xn--4xa544kvid.xn--0-zmb55727aggma; ; ; # ᷍σ≮.σ𝪦𞤷0
+xn--4xa544kvid.xn--0-zmb55727aggma; ᷍σ≮.σ𝪦𞤷0; [B1, B5, V5, V6]; xn--4xa544kvid.xn--0-zmb55727aggma; ; ; # ᷍σ≮.σ𝪦𞤷0
+xn--3xa744kvid.xn--0-xmb85727aggma; ᷍ς≮.ς𝪦𞤷0; [B1, B5, V5, V6]; xn--3xa744kvid.xn--0-xmb85727aggma; ; ; # ᷍ς≮.ς𝪦𞤷0
+᷍σ≮.σ𝪦𞤕0; ᷍σ≮.σ𝪦𞤷0; [B1, B5, P1, V5, V6]; xn--4xa544kvid.xn--0-zmb55727aggma; ; ; # ᷍σ≮.σ𝪦𞤷0
+᷍σ≮.σ𝪦𞤕0; ᷍σ≮.σ𝪦𞤷0; [B1, B5, P1, V5, V6]; xn--4xa544kvid.xn--0-zmb55727aggma; ; ; # ᷍σ≮.σ𝪦𞤷0
+򢦾ßֹ𐫙.֭ࢡ; ; [B1, B5, B6, P1, V5, V6]; xn--zca89v339zj118e.xn--4cb62m; ; xn--ss-xjd6058xlz50g.xn--4cb62m; # ßֹ𐫙.֭ࢡ
+򢦾SSֹ𐫙.֭ࢡ; 򢦾ssֹ𐫙.֭ࢡ; [B1, B5, B6, P1, V5, V6]; xn--ss-xjd6058xlz50g.xn--4cb62m; ; ; # ssֹ𐫙.֭ࢡ
+򢦾ssֹ𐫙.֭ࢡ; ; [B1, B5, B6, P1, V5, V6]; xn--ss-xjd6058xlz50g.xn--4cb62m; ; ; # ssֹ𐫙.֭ࢡ
+򢦾Ssֹ𐫙.֭ࢡ; 򢦾ssֹ𐫙.֭ࢡ; [B1, B5, B6, P1, V5, V6]; xn--ss-xjd6058xlz50g.xn--4cb62m; ; ; # ssֹ𐫙.֭ࢡ
+xn--ss-xjd6058xlz50g.xn--4cb62m; 򢦾ssֹ𐫙.֭ࢡ; [B1, B5, B6, V5, V6]; xn--ss-xjd6058xlz50g.xn--4cb62m; ; ; # ssֹ𐫙.֭ࢡ
+xn--zca89v339zj118e.xn--4cb62m; 򢦾ßֹ𐫙.֭ࢡ; [B1, B5, B6, V5, V6]; xn--zca89v339zj118e.xn--4cb62m; ; ; # ßֹ𐫙.֭ࢡ
+-𞣄。⒈; -𞣄.⒈; [B1, P1, V3, V6]; xn----xc8r.xn--tsh; ; ; # -𞣄.⒈
+-𞣄。1.; -𞣄.1.; [B1, V3]; xn----xc8r.1.; ; ; # -𞣄.1.
+xn----xc8r.1.; -𞣄.1.; [B1, V3]; xn----xc8r.1.; ; ; # -𞣄.1.
+xn----xc8r.xn--tsh; -𞣄.⒈; [B1, V3, V6]; xn----xc8r.xn--tsh; ; ; # -𞣄.⒈
+񈠢𐫖𝟡。ؾ𑘿; 񈠢𐫖9.ؾ𑘿; [B5, P1, V6]; xn--9-el5iv442t.xn--9gb0830l; ; ; # 𐫖9.ؾ𑘿
+񈠢𐫖9。ؾ𑘿; 񈠢𐫖9.ؾ𑘿; [B5, P1, V6]; xn--9-el5iv442t.xn--9gb0830l; ; ; # 𐫖9.ؾ𑘿
+xn--9-el5iv442t.xn--9gb0830l; 񈠢𐫖9.ؾ𑘿; [B5, V6]; xn--9-el5iv442t.xn--9gb0830l; ; ; # 𐫖9.ؾ𑘿
+٨ﲌ٨ᩝ.‍; ٨نم٨ᩝ.‍; [B1, C2]; xn--hhbb5hc956w.xn--1ug; ; xn--hhbb5hc956w.; [B1] # ٨نم٨ᩝ.
+٨نم٨ᩝ.‍; ; [B1, C2]; xn--hhbb5hc956w.xn--1ug; ; xn--hhbb5hc956w.; [B1] # ٨نم٨ᩝ.
+xn--hhbb5hc956w.; ٨نم٨ᩝ.; [B1]; xn--hhbb5hc956w.; ; ; # ٨نم٨ᩝ.
+xn--hhbb5hc956w.xn--1ug; ٨نم٨ᩝ.‍; [B1, C2]; xn--hhbb5hc956w.xn--1ug; ; ; # ٨نم٨ᩝ.
+𝟘.Ⴇ󀳑ﵐ񫃱; 0.Ⴇ󀳑تجم񫃱; [B1, B5, P1, V6]; 0.xn--pgbe9e344c2725svff8b; ; ; # 0.Ⴇتجم
+0.Ⴇ󀳑تجم񫃱; ; [B1, B5, P1, V6]; 0.xn--pgbe9e344c2725svff8b; ; ; # 0.Ⴇتجم
+0.ⴇ󀳑تجم񫃱; ; [B1, B5, P1, V6]; 0.xn--pgbe9ez79qd207lvff8b; ; ; # 0.ⴇتجم
+0.xn--pgbe9ez79qd207lvff8b; 0.ⴇ󀳑تجم񫃱; [B1, B5, V6]; 0.xn--pgbe9ez79qd207lvff8b; ; ; # 0.ⴇتجم
+0.xn--pgbe9e344c2725svff8b; 0.Ⴇ󀳑تجم񫃱; [B1, B5, V6]; 0.xn--pgbe9e344c2725svff8b; ; ; # 0.Ⴇتجم
+𝟘.ⴇ󀳑ﵐ񫃱; 0.ⴇ󀳑تجم񫃱; [B1, B5, P1, V6]; 0.xn--pgbe9ez79qd207lvff8b; ; ; # 0.ⴇتجم
+𑇀▍.⁞ᠰ; ; [V5]; xn--9zh3057f.xn--j7e103b; ; ; # 𑇀▍.⁞ᠰ
+xn--9zh3057f.xn--j7e103b; 𑇀▍.⁞ᠰ; [V5]; xn--9zh3057f.xn--j7e103b; ; ; # 𑇀▍.⁞ᠰ
+‍-ٺ.򏯩; ; [B1, C2, P1, V6]; xn----qrc357q.xn--ts49b; ; xn----qrc.xn--ts49b; [B1, P1, V3, V6] # -ٺ.
+xn----qrc.xn--ts49b; -ٺ.򏯩; [B1, V3, V6]; xn----qrc.xn--ts49b; ; ; # -ٺ.
+xn----qrc357q.xn--ts49b; ‍-ٺ.򏯩; [B1, C2, V6]; xn----qrc357q.xn--ts49b; ; ; # -ٺ.
+ᠢ𐮂𐫘寐。‌≯✳; ᠢ𐮂𐫘寐.‌≯✳; [B1, B5, C1, P1, V6]; xn--46e6675axzzhota.xn--0ug06gu8f; ; xn--46e6675axzzhota.xn--hdh99p; [B1, B5, P1, V6] # ᠢ𐮂𐫘寐.≯✳
+ᠢ𐮂𐫘寐。‌≯✳; ᠢ𐮂𐫘寐.‌≯✳; [B1, B5, C1, P1, V6]; xn--46e6675axzzhota.xn--0ug06gu8f; ; xn--46e6675axzzhota.xn--hdh99p; [B1, B5, P1, V6] # ᠢ𐮂𐫘寐.≯✳
+ᠢ𐮂𐫘寐。‌≯✳; ᠢ𐮂𐫘寐.‌≯✳; [B1, B5, C1, P1, V6]; xn--46e6675axzzhota.xn--0ug06gu8f; ; xn--46e6675axzzhota.xn--hdh99p; [B1, B5, P1, V6] # ᠢ𐮂𐫘寐.≯✳
+ᠢ𐮂𐫘寐。‌≯✳; ᠢ𐮂𐫘寐.‌≯✳; [B1, B5, C1, P1, V6]; xn--46e6675axzzhota.xn--0ug06gu8f; ; xn--46e6675axzzhota.xn--hdh99p; [B1, B5, P1, V6] # ᠢ𐮂𐫘寐.≯✳
+xn--46e6675axzzhota.xn--hdh99p; ᠢ𐮂𐫘寐.≯✳; [B1, B5, V6]; xn--46e6675axzzhota.xn--hdh99p; ; ; # ᠢ𐮂𐫘寐.≯✳
+xn--46e6675axzzhota.xn--0ug06gu8f; ᠢ𐮂𐫘寐.‌≯✳; [B1, B5, C1, V6]; xn--46e6675axzzhota.xn--0ug06gu8f; ; ; # ᠢ𐮂𐫘寐.≯✳
+‍。󸲜ႺႴ𞨇; ‍.󸲜ႺႴ𞨇; [B1, B5, B6, C2, P1, V6]; xn--1ug.xn--sndl01647an3h1h; ; .xn--sndl01647an3h1h; [B5, B6, P1, V6, A4_2] # .ႺႴ
+‍。󸲜ႺႴ𞨇; ‍.󸲜ႺႴ𞨇; [B1, B5, B6, C2, P1, V6]; xn--1ug.xn--sndl01647an3h1h; ; .xn--sndl01647an3h1h; [B5, B6, P1, V6, A4_2] # .ႺႴ
+‍。󸲜ⴚⴔ𞨇; ‍.󸲜ⴚⴔ𞨇; [B1, B5, B6, C2, P1, V6]; xn--1ug.xn--cljl81825an3r4h; ; .xn--cljl81825an3r4h; [B5, B6, P1, V6, A4_2] # .ⴚⴔ
+‍。󸲜Ⴚⴔ𞨇; ‍.󸲜Ⴚⴔ𞨇; [B1, B5, B6, C2, P1, V6]; xn--1ug.xn--ynd036lq981an3r4h; ; .xn--ynd036lq981an3r4h; [B5, B6, P1, V6, A4_2] # .Ⴚⴔ
+.xn--ynd036lq981an3r4h; .󸲜Ⴚⴔ𞨇; [B5, B6, V6, X4_2]; .xn--ynd036lq981an3r4h; [B5, B6, V6, A4_2]; ; # .Ⴚⴔ
+xn--1ug.xn--ynd036lq981an3r4h; ‍.󸲜Ⴚⴔ𞨇; [B1, B5, B6, C2, V6]; xn--1ug.xn--ynd036lq981an3r4h; ; ; # .Ⴚⴔ
+.xn--cljl81825an3r4h; .󸲜ⴚⴔ𞨇; [B5, B6, V6, X4_2]; .xn--cljl81825an3r4h; [B5, B6, V6, A4_2]; ; # .ⴚⴔ
+xn--1ug.xn--cljl81825an3r4h; ‍.󸲜ⴚⴔ𞨇; [B1, B5, B6, C2, V6]; xn--1ug.xn--cljl81825an3r4h; ; ; # .ⴚⴔ
+.xn--sndl01647an3h1h; .󸲜ႺႴ𞨇; [B5, B6, V6, X4_2]; .xn--sndl01647an3h1h; [B5, B6, V6, A4_2]; ; # .ႺႴ
+xn--1ug.xn--sndl01647an3h1h; ‍.󸲜ႺႴ𞨇; [B1, B5, B6, C2, V6]; xn--1ug.xn--sndl01647an3h1h; ; ; # .ႺႴ
+‍。󸲜ⴚⴔ𞨇; ‍.󸲜ⴚⴔ𞨇; [B1, B5, B6, C2, P1, V6]; xn--1ug.xn--cljl81825an3r4h; ; .xn--cljl81825an3r4h; [B5, B6, P1, V6, A4_2] # .ⴚⴔ
+‍。󸲜Ⴚⴔ𞨇; ‍.󸲜Ⴚⴔ𞨇; [B1, B5, B6, C2, P1, V6]; xn--1ug.xn--ynd036lq981an3r4h; ; .xn--ynd036lq981an3r4h; [B5, B6, P1, V6, A4_2] # .Ⴚⴔ
+-3.‍ヌᢕ; ; [C2, V3]; -3.xn--fbf739aq5o; ; -3.xn--fbf115j; [V3] # -3.ヌᢕ
+-3.xn--fbf115j; -3.ヌᢕ; [V3]; -3.xn--fbf115j; ; ; # -3.ヌᢕ
+-3.xn--fbf739aq5o; -3.‍ヌᢕ; [C2, V3]; -3.xn--fbf739aq5o; ; ; # -3.ヌᢕ
+🂃٦ß‍。󠠂򭰍𞩒-; 🂃٦ß‍.󠠂򭰍𞩒-; [B1, C2, P1, V3, V6]; xn--zca34z68yzu83b.xn----nz8rh7531csznt; ; xn--ss-pyd98921c.xn----nz8rh7531csznt; [B1, P1, V3, V6] # 🂃٦ß.-
+🂃٦SS‍。󠠂򭰍𞩒-; 🂃٦ss‍.󠠂򭰍𞩒-; [B1, C2, P1, V3, V6]; xn--ss-pyd483x5k99b.xn----nz8rh7531csznt; ; xn--ss-pyd98921c.xn----nz8rh7531csznt; [B1, P1, V3, V6] # 🂃٦ss.-
+🂃٦ss‍。󠠂򭰍𞩒-; 🂃٦ss‍.󠠂򭰍𞩒-; [B1, C2, P1, V3, V6]; xn--ss-pyd483x5k99b.xn----nz8rh7531csznt; ; xn--ss-pyd98921c.xn----nz8rh7531csznt; [B1, P1, V3, V6] # 🂃٦ss.-
+xn--ss-pyd98921c.xn----nz8rh7531csznt; 🂃٦ss.󠠂򭰍𞩒-; [B1, V3, V6]; xn--ss-pyd98921c.xn----nz8rh7531csznt; ; ; # 🂃٦ss.-
+xn--ss-pyd483x5k99b.xn----nz8rh7531csznt; 🂃٦ss‍.󠠂򭰍𞩒-; [B1, C2, V3, V6]; xn--ss-pyd483x5k99b.xn----nz8rh7531csznt; ; ; # 🂃٦ss.-
+xn--zca34z68yzu83b.xn----nz8rh7531csznt; 🂃٦ß‍.󠠂򭰍𞩒-; [B1, C2, V3, V6]; xn--zca34z68yzu83b.xn----nz8rh7531csznt; ; ; # 🂃٦ß.-
+🂃٦Ss‍。󠠂򭰍𞩒-; 🂃٦ss‍.󠠂򭰍𞩒-; [B1, C2, P1, V3, V6]; xn--ss-pyd483x5k99b.xn----nz8rh7531csznt; ; xn--ss-pyd98921c.xn----nz8rh7531csznt; [B1, P1, V3, V6] # 🂃٦ss.-
+ꇟ-𐾺ڟ。򰀺‌; ꇟ-𐾺ڟ.򰀺‌; [B5, B6, C1, P1, V6]; xn----utc4430jd3zd.xn--0ugx6670i; ; xn----utc4430jd3zd.xn--bp20d; [B5, B6, P1, V6] # ꇟ-ڟ.
+xn----utc4430jd3zd.xn--bp20d; ꇟ-𐾺ڟ.򰀺; [B5, B6, V6]; xn----utc4430jd3zd.xn--bp20d; ; ; # ꇟ-ڟ.
+xn----utc4430jd3zd.xn--0ugx6670i; ꇟ-𐾺ڟ.򰀺‌; [B5, B6, C1, V6]; xn----utc4430jd3zd.xn--0ugx6670i; ; ; # ꇟ-ڟ.
+٥.҄𐨗𝩋𴤃; ; [B1, P1, V5, V6]; xn--eib.xn--n3a0405kus8eft5l; ; ; # ٥.҄𐨗𝩋
+xn--eib.xn--n3a0405kus8eft5l; ٥.҄𐨗𝩋𴤃; [B1, V5, V6]; xn--eib.xn--n3a0405kus8eft5l; ; ; # ٥.҄𐨗𝩋
+-.񱼓ى𐨿; ; [B1, B5, B6, P1, V3, V6]; -.xn--lhb4124khbq4b; ; ; # -.ى𐨿
+-.xn--lhb4124khbq4b; -.񱼓ى𐨿; [B1, B5, B6, V3, V6]; -.xn--lhb4124khbq4b; ; ; # -.ى𐨿
+󾬨ς.𞶙녫ß; ; [B2, B3, P1, V6]; xn--3xa96659r.xn--zca5051g4h4i; ; xn--4xa76659r.xn--ss-d64i8755h; # ς.녫ß
+󾬨ς.𞶙녫ß; 󾬨ς.𞶙녫ß; [B2, B3, P1, V6]; xn--3xa96659r.xn--zca5051g4h4i; ; xn--4xa76659r.xn--ss-d64i8755h; # ς.녫ß
+󾬨Σ.𞶙녫SS; 󾬨σ.𞶙녫ss; [B2, B3, P1, V6]; xn--4xa76659r.xn--ss-d64i8755h; ; ; # σ.녫ss
+󾬨Σ.𞶙녫SS; 󾬨σ.𞶙녫ss; [B2, B3, P1, V6]; xn--4xa76659r.xn--ss-d64i8755h; ; ; # σ.녫ss
+󾬨σ.𞶙녫ss; ; [B2, B3, P1, V6]; xn--4xa76659r.xn--ss-d64i8755h; ; ; # σ.녫ss
+󾬨σ.𞶙녫ss; 󾬨σ.𞶙녫ss; [B2, B3, P1, V6]; xn--4xa76659r.xn--ss-d64i8755h; ; ; # σ.녫ss
+󾬨Σ.𞶙녫ss; 󾬨σ.𞶙녫ss; [B2, B3, P1, V6]; xn--4xa76659r.xn--ss-d64i8755h; ; ; # σ.녫ss
+󾬨Σ.𞶙녫ss; 󾬨σ.𞶙녫ss; [B2, B3, P1, V6]; xn--4xa76659r.xn--ss-d64i8755h; ; ; # σ.녫ss
+󾬨Σ.𞶙녫Ss; 󾬨σ.𞶙녫ss; [B2, B3, P1, V6]; xn--4xa76659r.xn--ss-d64i8755h; ; ; # σ.녫ss
+󾬨Σ.𞶙녫Ss; 󾬨σ.𞶙녫ss; [B2, B3, P1, V6]; xn--4xa76659r.xn--ss-d64i8755h; ; ; # σ.녫ss
+xn--4xa76659r.xn--ss-d64i8755h; 󾬨σ.𞶙녫ss; [B2, B3, V6]; xn--4xa76659r.xn--ss-d64i8755h; ; ; # σ.녫ss
+󾬨Σ.𞶙녫ß; 󾬨σ.𞶙녫ß; [B2, B3, P1, V6]; xn--4xa76659r.xn--zca5051g4h4i; ; xn--4xa76659r.xn--ss-d64i8755h; # σ.녫ß
+󾬨Σ.𞶙녫ß; 󾬨σ.𞶙녫ß; [B2, B3, P1, V6]; xn--4xa76659r.xn--zca5051g4h4i; ; xn--4xa76659r.xn--ss-d64i8755h; # σ.녫ß
+󾬨σ.𞶙녫ß; ; [B2, B3, P1, V6]; xn--4xa76659r.xn--zca5051g4h4i; ; xn--4xa76659r.xn--ss-d64i8755h; # σ.녫ß
+󾬨σ.𞶙녫ß; 󾬨σ.𞶙녫ß; [B2, B3, P1, V6]; xn--4xa76659r.xn--zca5051g4h4i; ; xn--4xa76659r.xn--ss-d64i8755h; # σ.녫ß
+xn--4xa76659r.xn--zca5051g4h4i; 󾬨σ.𞶙녫ß; [B2, B3, V6]; xn--4xa76659r.xn--zca5051g4h4i; ; ; # σ.녫ß
+xn--3xa96659r.xn--zca5051g4h4i; 󾬨ς.𞶙녫ß; [B2, B3, V6]; xn--3xa96659r.xn--zca5051g4h4i; ; ; # ς.녫ß
+Ⅎ្‍。≠‍‌; Ⅎ្‍.≠‍‌; [C1, C2, P1, V6]; xn--u4e823bcza.xn--0ugb89o; ; xn--u4e319b.xn--1ch; [P1, V6] # Ⅎ្.≠
+Ⅎ្‍。≠‍‌; Ⅎ្‍.≠‍‌; [C1, C2, P1, V6]; xn--u4e823bcza.xn--0ugb89o; ; xn--u4e319b.xn--1ch; [P1, V6] # Ⅎ្.≠
+Ⅎ្‍。≠‍‌; Ⅎ្‍.≠‍‌; [C1, C2, P1, V6]; xn--u4e823bcza.xn--0ugb89o; ; xn--u4e319b.xn--1ch; [P1, V6] # Ⅎ្.≠
+Ⅎ្‍。≠‍‌; Ⅎ្‍.≠‍‌; [C1, C2, P1, V6]; xn--u4e823bcza.xn--0ugb89o; ; xn--u4e319b.xn--1ch; [P1, V6] # Ⅎ្.≠
+ⅎ្‍。≠‍‌; ⅎ្‍.≠‍‌; [C1, C2, P1, V6]; xn--u4e823bq1a.xn--0ugb89o; ; xn--u4e969b.xn--1ch; [P1, V6] # ⅎ្.≠
+ⅎ្‍。≠‍‌; ⅎ្‍.≠‍‌; [C1, C2, P1, V6]; xn--u4e823bq1a.xn--0ugb89o; ; xn--u4e969b.xn--1ch; [P1, V6] # ⅎ្.≠
+xn--u4e969b.xn--1ch; ⅎ្.≠; [V6]; xn--u4e969b.xn--1ch; ; ; # ⅎ្.≠
+xn--u4e823bq1a.xn--0ugb89o; ⅎ្‍.≠‍‌; [C1, C2, V6]; xn--u4e823bq1a.xn--0ugb89o; ; ; # ⅎ្.≠
+xn--u4e319b.xn--1ch; Ⅎ្.≠; [V6]; xn--u4e319b.xn--1ch; ; ; # Ⅎ្.≠
+xn--u4e823bcza.xn--0ugb89o; Ⅎ្‍.≠‍‌; [C1, C2, V6]; xn--u4e823bcza.xn--0ugb89o; ; ; # Ⅎ្.≠
+ⅎ្‍。≠‍‌; ⅎ្‍.≠‍‌; [C1, C2, P1, V6]; xn--u4e823bq1a.xn--0ugb89o; ; xn--u4e969b.xn--1ch; [P1, V6] # ⅎ្.≠
+ⅎ្‍。≠‍‌; ⅎ្‍.≠‍‌; [C1, C2, P1, V6]; xn--u4e823bq1a.xn--0ugb89o; ; xn--u4e969b.xn--1ch; [P1, V6] # ⅎ្.≠
+𐋺꫶꥓󧦉.‌᜔ڏ; 𐋺꫶꥓󧦉.‌᜔ڏ; [B1, C1, P1, V6]; xn--3j9a14ak27osbz2o.xn--ljb175f1wg; ; xn--3j9a14ak27osbz2o.xn--ljb175f; [B1, P1, V5, V6] # 𐋺꫶꥓.᜔ڏ
+𐋺꫶꥓󧦉.‌᜔ڏ; ; [B1, C1, P1, V6]; xn--3j9a14ak27osbz2o.xn--ljb175f1wg; ; xn--3j9a14ak27osbz2o.xn--ljb175f; [B1, P1, V5, V6] # 𐋺꫶꥓.᜔ڏ
+xn--3j9a14ak27osbz2o.xn--ljb175f; 𐋺꫶꥓󧦉.᜔ڏ; [B1, V5, V6]; xn--3j9a14ak27osbz2o.xn--ljb175f; ; ; # 𐋺꫶꥓.᜔ڏ
+xn--3j9a14ak27osbz2o.xn--ljb175f1wg; 𐋺꫶꥓󧦉.‌᜔ڏ; [B1, C1, V6]; xn--3j9a14ak27osbz2o.xn--ljb175f1wg; ; ; # 𐋺꫶꥓.᜔ڏ
+񺔯ྨ.≯; 񺔯ྨ.≯; [P1, V6]; xn--4fd57150h.xn--hdh; ; ; # ྨ.≯
+񺔯ྨ.≯; 񺔯ྨ.≯; [P1, V6]; xn--4fd57150h.xn--hdh; ; ; # ྨ.≯
+񺔯ྨ.≯; ; [P1, V6]; xn--4fd57150h.xn--hdh; ; ; # ྨ.≯
+񺔯ྨ.≯; 񺔯ྨ.≯; [P1, V6]; xn--4fd57150h.xn--hdh; ; ; # ྨ.≯
+xn--4fd57150h.xn--hdh; 񺔯ྨ.≯; [V6]; xn--4fd57150h.xn--hdh; ; ; # ྨ.≯
+‍𞡄Ⴓ.𐇽; ‍𞡄Ⴓ.𐇽; [B1, B3, B6, C2, P1, V5, V6]; xn--rnd379ex885a.xn--m27c; ; xn--rnd5552v.xn--m27c; [B1, B2, B3, B6, P1, V5, V6] # 𞡄Ⴓ.𐇽
+‍𞡄Ⴓ.𐇽; ; [B1, B3, B6, C2, P1, V5, V6]; xn--rnd379ex885a.xn--m27c; ; xn--rnd5552v.xn--m27c; [B1, B2, B3, B6, P1, V5, V6] # 𞡄Ⴓ.𐇽
+‍𞡄ⴓ.𐇽; ; [B1, B3, B6, C2, V5]; xn--1ugz52c4i16a.xn--m27c; ; xn--blj7492l.xn--m27c; [B1, B2, B3, B6, V5] # 𞡄ⴓ.𐇽
+xn--blj7492l.xn--m27c; 𞡄ⴓ.𐇽; [B1, B2, B3, B6, V5]; xn--blj7492l.xn--m27c; ; ; # 𞡄ⴓ.𐇽
+xn--1ugz52c4i16a.xn--m27c; ‍𞡄ⴓ.𐇽; [B1, B3, B6, C2, V5]; xn--1ugz52c4i16a.xn--m27c; ; ; # 𞡄ⴓ.𐇽
+xn--rnd5552v.xn--m27c; 𞡄Ⴓ.𐇽; [B1, B2, B3, B6, V5, V6]; xn--rnd5552v.xn--m27c; ; ; # 𞡄Ⴓ.𐇽
+xn--rnd379ex885a.xn--m27c; ‍𞡄Ⴓ.𐇽; [B1, B3, B6, C2, V5, V6]; xn--rnd379ex885a.xn--m27c; ; ; # 𞡄Ⴓ.𐇽
+‍𞡄ⴓ.𐇽; ‍𞡄ⴓ.𐇽; [B1, B3, B6, C2, V5]; xn--1ugz52c4i16a.xn--m27c; ; xn--blj7492l.xn--m27c; [B1, B2, B3, B6, V5] # 𞡄ⴓ.𐇽
+𐪒ß꣪.ᡤ; 𐪒ß꣪.ᡤ; [B2, B3]; xn--zca2517f2hvc.xn--08e; ; xn--ss-tu9hw933a.xn--08e; # 𐪒ß꣪.ᡤ
+𐪒ß꣪.ᡤ; ; [B2, B3]; xn--zca2517f2hvc.xn--08e; ; xn--ss-tu9hw933a.xn--08e; # 𐪒ß꣪.ᡤ
+𐪒SS꣪.ᡤ; 𐪒ss꣪.ᡤ; [B2, B3]; xn--ss-tu9hw933a.xn--08e; ; ; # 𐪒ss꣪.ᡤ
+𐪒ss꣪.ᡤ; ; [B2, B3]; xn--ss-tu9hw933a.xn--08e; ; ; # 𐪒ss꣪.ᡤ
+xn--ss-tu9hw933a.xn--08e; 𐪒ss꣪.ᡤ; [B2, B3]; xn--ss-tu9hw933a.xn--08e; ; ; # 𐪒ss꣪.ᡤ
+xn--zca2517f2hvc.xn--08e; 𐪒ß꣪.ᡤ; [B2, B3]; xn--zca2517f2hvc.xn--08e; ; ; # 𐪒ß꣪.ᡤ
+𐪒SS꣪.ᡤ; 𐪒ss꣪.ᡤ; [B2, B3]; xn--ss-tu9hw933a.xn--08e; ; ; # 𐪒ss꣪.ᡤ
+𐪒ss꣪.ᡤ; 𐪒ss꣪.ᡤ; [B2, B3]; xn--ss-tu9hw933a.xn--08e; ; ; # 𐪒ss꣪.ᡤ
+𐪒Ss꣪.ᡤ; 𐪒ss꣪.ᡤ; [B2, B3]; xn--ss-tu9hw933a.xn--08e; ; ; # 𐪒ss꣪.ᡤ
+𐪒Ss꣪.ᡤ; 𐪒ss꣪.ᡤ; [B2, B3]; xn--ss-tu9hw933a.xn--08e; ; ; # 𐪒ss꣪.ᡤ
+𐨿󠆌鸮𑚶.ς; 𐨿鸮𑚶.ς; [V5]; xn--l76a726rt2h.xn--3xa; ; xn--l76a726rt2h.xn--4xa; # 𐨿鸮𑚶.ς
+𐨿󠆌鸮𑚶.Σ; 𐨿鸮𑚶.σ; [V5]; xn--l76a726rt2h.xn--4xa; ; ; # 𐨿鸮𑚶.σ
+𐨿󠆌鸮𑚶.σ; 𐨿鸮𑚶.σ; [V5]; xn--l76a726rt2h.xn--4xa; ; ; # 𐨿鸮𑚶.σ
+xn--l76a726rt2h.xn--4xa; 𐨿鸮𑚶.σ; [V5]; xn--l76a726rt2h.xn--4xa; ; ; # 𐨿鸮𑚶.σ
+xn--l76a726rt2h.xn--3xa; 𐨿鸮𑚶.ς; [V5]; xn--l76a726rt2h.xn--3xa; ; ; # 𐨿鸮𑚶.ς
+⒗𞤬。-𑚶; ⒗𞤬.-𑚶; [B1, P1, V3, V6]; xn--8shw466n.xn----4j0j; ; ; # ⒗𞤬.-𑚶
+16.𞤬。-𑚶; 16.𞤬.-𑚶; [B1, V3]; 16.xn--ke6h.xn----4j0j; ; ; # 16.𞤬.-𑚶
+16.𞤊。-𑚶; 16.𞤬.-𑚶; [B1, V3]; 16.xn--ke6h.xn----4j0j; ; ; # 16.𞤬.-𑚶
+16.xn--ke6h.xn----4j0j; 16.𞤬.-𑚶; [B1, V3]; 16.xn--ke6h.xn----4j0j; ; ; # 16.𞤬.-𑚶
+⒗𞤊。-𑚶; ⒗𞤬.-𑚶; [B1, P1, V3, V6]; xn--8shw466n.xn----4j0j; ; ; # ⒗𞤬.-𑚶
+xn--8shw466n.xn----4j0j; ⒗𞤬.-𑚶; [B1, V3, V6]; xn--8shw466n.xn----4j0j; ; ; # ⒗𞤬.-𑚶
+ࢳ𞤿⾫。𐹣ڏ⒈; ࢳ𞤿隹.𐹣ڏ⒈; [B1, B2, B3, P1, V6]; xn--8yb0383efiwk.xn--ljb064mol4n; ; ; # ࢳ𞤿隹.𐹣ڏ⒈
+ࢳ𞤿隹。𐹣ڏ1.; ࢳ𞤿隹.𐹣ڏ1.; [B1, B2, B3]; xn--8yb0383efiwk.xn--1-wsc3373r.; ; ; # ࢳ𞤿隹.𐹣ڏ1.
+ࢳ𞤝隹。𐹣ڏ1.; ࢳ𞤿隹.𐹣ڏ1.; [B1, B2, B3]; xn--8yb0383efiwk.xn--1-wsc3373r.; ; ; # ࢳ𞤿隹.𐹣ڏ1.
+xn--8yb0383efiwk.xn--1-wsc3373r.; ࢳ𞤿隹.𐹣ڏ1.; [B1, B2, B3]; xn--8yb0383efiwk.xn--1-wsc3373r.; ; ; # ࢳ𞤿隹.𐹣ڏ1.
+ࢳ𞤝⾫。𐹣ڏ⒈; ࢳ𞤿隹.𐹣ڏ⒈; [B1, B2, B3, P1, V6]; xn--8yb0383efiwk.xn--ljb064mol4n; ; ; # ࢳ𞤿隹.𐹣ڏ⒈
+xn--8yb0383efiwk.xn--ljb064mol4n; ࢳ𞤿隹.𐹣ڏ⒈; [B1, B2, B3, V6]; xn--8yb0383efiwk.xn--ljb064mol4n; ; ; # ࢳ𞤿隹.𐹣ڏ⒈
+␳𚎛𝟧١.ᡢ8ི؀; ␳𚎛5١.ᡢ8ི؀; [B5, B6, P1, V6]; xn--5-bqc410un435a.xn--8-rkc763epjj; ; ; # 5١.ᡢ8ི
+␳𚎛5١.ᡢ8ི؀; ; [B5, B6, P1, V6]; xn--5-bqc410un435a.xn--8-rkc763epjj; ; ; # 5١.ᡢ8ི
+xn--5-bqc410un435a.xn--8-rkc763epjj; ␳𚎛5١.ᡢ8ི؀; [B5, B6, V6]; xn--5-bqc410un435a.xn--8-rkc763epjj; ; ; # 5١.ᡢ8ི
+𐹠.🄀⒒-󨰈; ; [B1, P1, V6]; xn--7n0d.xn----xcp9757q1s13g; ; ; # 𐹠.🄀⒒-
+𐹠.0.11.-󨰈; ; [B1, P1, V3, V6]; xn--7n0d.0.11.xn----8j07m; ; ; # 𐹠.0.11.-
+xn--7n0d.0.11.xn----8j07m; 𐹠.0.11.-󨰈; [B1, V3, V6]; xn--7n0d.0.11.xn----8j07m; ; ; # 𐹠.0.11.-
+xn--7n0d.xn----xcp9757q1s13g; 𐹠.🄀⒒-󨰈; [B1, V6]; xn--7n0d.xn----xcp9757q1s13g; ; ; # 𐹠.🄀⒒-
+ς-。‌𝟭-; ς-.‌1-; [C1, V3]; xn----xmb.xn--1--i1t; ; xn----zmb.1-; [V3] # ς-.1-
+ς-。‌1-; ς-.‌1-; [C1, V3]; xn----xmb.xn--1--i1t; ; xn----zmb.1-; [V3] # ς-.1-
+Σ-。‌1-; σ-.‌1-; [C1, V3]; xn----zmb.xn--1--i1t; ; xn----zmb.1-; [V3] # σ-.1-
+σ-。‌1-; σ-.‌1-; [C1, V3]; xn----zmb.xn--1--i1t; ; xn----zmb.1-; [V3] # σ-.1-
+xn----zmb.1-; σ-.1-; [V3]; xn----zmb.1-; ; ; # σ-.1-
+xn----zmb.xn--1--i1t; σ-.‌1-; [C1, V3]; xn----zmb.xn--1--i1t; ; ; # σ-.1-
+xn----xmb.xn--1--i1t; ς-.‌1-; [C1, V3]; xn----xmb.xn--1--i1t; ; ; # ς-.1-
+Σ-。‌𝟭-; σ-.‌1-; [C1, V3]; xn----zmb.xn--1--i1t; ; xn----zmb.1-; [V3] # σ-.1-
+σ-。‌𝟭-; σ-.‌1-; [C1, V3]; xn----zmb.xn--1--i1t; ; xn----zmb.1-; [V3] # σ-.1-
+᜴-ೢ.󠄩Ⴄ; ᜴-ೢ.Ⴄ; [P1, V5, V6]; xn----ggf830f.xn--cnd; ; ; # ᜴-ೢ.Ⴄ
+᜴-ೢ.󠄩Ⴄ; ᜴-ೢ.Ⴄ; [P1, V5, V6]; xn----ggf830f.xn--cnd; ; ; # ᜴-ೢ.Ⴄ
+᜴-ೢ.󠄩ⴄ; ᜴-ೢ.ⴄ; [V5]; xn----ggf830f.xn--vkj; ; ; # ᜴-ೢ.ⴄ
+xn----ggf830f.xn--vkj; ᜴-ೢ.ⴄ; [V5]; xn----ggf830f.xn--vkj; ; ; # ᜴-ೢ.ⴄ
+xn----ggf830f.xn--cnd; ᜴-ೢ.Ⴄ; [V5, V6]; xn----ggf830f.xn--cnd; ; ; # ᜴-ೢ.Ⴄ
+᜴-ೢ.󠄩ⴄ; ᜴-ೢ.ⴄ; [V5]; xn----ggf830f.xn--vkj; ; ; # ᜴-ೢ.ⴄ
+򭈗♋ڻ𐦥。॔⒈; 򭈗♋ڻ𐦥.॔⒈; [B1, B5, B6, P1, V5, V6]; xn--ukb372n129m3rs7f.xn--u3b240l; ; ; # ♋ڻ𐦥.॔⒈
+򭈗♋ڻ𐦥。॔1.; 򭈗♋ڻ𐦥.॔1.; [B1, B5, B6, P1, V5, V6]; xn--ukb372n129m3rs7f.xn--1-fyd.; ; ; # ♋ڻ𐦥.॔1.
+xn--ukb372n129m3rs7f.xn--1-fyd.; 򭈗♋ڻ𐦥.॔1.; [B1, B5, B6, V5, V6]; xn--ukb372n129m3rs7f.xn--1-fyd.; ; ; # ♋ڻ𐦥.॔1.
+xn--ukb372n129m3rs7f.xn--u3b240l; 򭈗♋ڻ𐦥.॔⒈; [B1, B5, B6, V5, V6]; xn--ukb372n129m3rs7f.xn--u3b240l; ; ; # ♋ڻ𐦥.॔⒈
+֤.ہ᪳‌; ֤.ہ᪳‌; [B1, B3, B6, C1, V5]; xn--vcb.xn--0kb623hm1d; ; xn--vcb.xn--0kb623h; [B1, B3, B6, V5] # ֤.ہ᪳
+֤.ہ᪳‌; ; [B1, B3, B6, C1, V5]; xn--vcb.xn--0kb623hm1d; ; xn--vcb.xn--0kb623h; [B1, B3, B6, V5] # ֤.ہ᪳
+xn--vcb.xn--0kb623h; ֤.ہ᪳; [B1, B3, B6, V5]; xn--vcb.xn--0kb623h; ; ; # ֤.ہ᪳
+xn--vcb.xn--0kb623hm1d; ֤.ہ᪳‌; [B1, B3, B6, C1, V5]; xn--vcb.xn--0kb623hm1d; ; ; # ֤.ہ᪳
+񢭏ࡆ≮્.𞦊; 񢭏ࡆ≮્.𞦊; [B5, B6, P1, V6]; xn--4vb80kq29ayo62l.xn--8g6h; ; ; # ࡆ≮્.
+񢭏ࡆ≮્.𞦊; 񢭏ࡆ≮્.𞦊; [B5, B6, P1, V6]; xn--4vb80kq29ayo62l.xn--8g6h; ; ; # ࡆ≮્.
+񢭏ࡆ≮્.𞦊; ; [B5, B6, P1, V6]; xn--4vb80kq29ayo62l.xn--8g6h; ; ; # ࡆ≮્.
+񢭏ࡆ≮્.𞦊; 񢭏ࡆ≮્.𞦊; [B5, B6, P1, V6]; xn--4vb80kq29ayo62l.xn--8g6h; ; ; # ࡆ≮્.
+xn--4vb80kq29ayo62l.xn--8g6h; 񢭏ࡆ≮્.𞦊; [B5, B6, V6]; xn--4vb80kq29ayo62l.xn--8g6h; ; ; # ࡆ≮્.
+‍。𞀘⒈ꡍ擉; ‍.𞀘⒈ꡍ擉; [C2, P1, V5, V6]; xn--1ug.xn--tsh026uql4bew9p; ; .xn--tsh026uql4bew9p; [P1, V5, V6, A4_2] # .𞀘⒈ꡍ擉
+‍。𞀘1.ꡍ擉; ‍.𞀘1.ꡍ擉; [C2, V5]; xn--1ug.xn--1-1p4r.xn--s7uv61m; ; .xn--1-1p4r.xn--s7uv61m; [V5, A4_2] # .𞀘1.ꡍ擉
+.xn--1-1p4r.xn--s7uv61m; .𞀘1.ꡍ擉; [V5, X4_2]; .xn--1-1p4r.xn--s7uv61m; [V5, A4_2]; ; # .𞀘1.ꡍ擉
+xn--1ug.xn--1-1p4r.xn--s7uv61m; ‍.𞀘1.ꡍ擉; [C2, V5]; xn--1ug.xn--1-1p4r.xn--s7uv61m; ; ; # .𞀘1.ꡍ擉
+.xn--tsh026uql4bew9p; .𞀘⒈ꡍ擉; [V5, V6, X4_2]; .xn--tsh026uql4bew9p; [V5, V6, A4_2]; ; # .𞀘⒈ꡍ擉
+xn--1ug.xn--tsh026uql4bew9p; ‍.𞀘⒈ꡍ擉; [C2, V5, V6]; xn--1ug.xn--tsh026uql4bew9p; ; ; # .𞀘⒈ꡍ擉
+₈ߋ.ﭤ≠; 8ߋ.ٿ≠; [B1, B3, P1, V6]; xn--8-zbd.xn--4ib883l; ; ; # 8ߋ.ٿ≠
+₈ߋ.ﭤ≠; 8ߋ.ٿ≠; [B1, B3, P1, V6]; xn--8-zbd.xn--4ib883l; ; ; # 8ߋ.ٿ≠
+8ߋ.ٿ≠; ; [B1, B3, P1, V6]; xn--8-zbd.xn--4ib883l; ; ; # 8ߋ.ٿ≠
+8ߋ.ٿ≠; 8ߋ.ٿ≠; [B1, B3, P1, V6]; xn--8-zbd.xn--4ib883l; ; ; # 8ߋ.ٿ≠
+xn--8-zbd.xn--4ib883l; 8ߋ.ٿ≠; [B1, B3, V6]; xn--8-zbd.xn--4ib883l; ; ; # 8ߋ.ٿ≠
+ᢡߞ򹐣.⒒ق𑍦; ; [B1, B5, P1, V6]; xn--5sb596fi873t.xn--ehb336mvy7n; ; ; # ᢡߞ.⒒ق𑍦
+ᢡߞ򹐣.11.ق𑍦; ; [B1, B5, P1, V6]; xn--5sb596fi873t.11.xn--ehb4198k; ; ; # ᢡߞ.11.ق𑍦
+xn--5sb596fi873t.11.xn--ehb4198k; ᢡߞ򹐣.11.ق𑍦; [B1, B5, V6]; xn--5sb596fi873t.11.xn--ehb4198k; ; ; # ᢡߞ.11.ق𑍦
+xn--5sb596fi873t.xn--ehb336mvy7n; ᢡߞ򹐣.⒒ق𑍦; [B1, B5, V6]; xn--5sb596fi873t.xn--ehb336mvy7n; ; ; # ᢡߞ.⒒ق𑍦
+่-𐹺𝟜.ͣۡ⒏; ่-𐹺4.ͣۡ⒏; [B1, P1, V5, V6]; xn---4-owiz479s.xn--eva20pjv9a; ; ; # ่-𐹺4.ͣۡ⒏
+่-𐹺4.ͣۡ8.; ; [B1, V5]; xn---4-owiz479s.xn--8-ihb69x.; ; ; # ่-𐹺4.ͣۡ8.
+xn---4-owiz479s.xn--8-ihb69x.; ่-𐹺4.ͣۡ8.; [B1, V5]; xn---4-owiz479s.xn--8-ihb69x.; ; ; # ่-𐹺4.ͣۡ8.
+xn---4-owiz479s.xn--eva20pjv9a; ่-𐹺4.ͣۡ⒏; [B1, V5, V6]; xn---4-owiz479s.xn--eva20pjv9a; ; ; # ่-𐹺4.ͣۡ⒏
+⫐。Ⴠ-󃐢; ⫐.Ⴠ-󃐢; [P1, V6]; xn--r3i.xn----z1g58579u; ; ; # ⫐.Ⴠ-
+⫐。Ⴠ-󃐢; ⫐.Ⴠ-󃐢; [P1, V6]; xn--r3i.xn----z1g58579u; ; ; # ⫐.Ⴠ-
+⫐。ⴠ-󃐢; ⫐.ⴠ-󃐢; [P1, V6]; xn--r3i.xn----2wst7439i; ; ; # ⫐.ⴠ-
+xn--r3i.xn----2wst7439i; ⫐.ⴠ-󃐢; [V6]; xn--r3i.xn----2wst7439i; ; ; # ⫐.ⴠ-
+xn--r3i.xn----z1g58579u; ⫐.Ⴠ-󃐢; [V6]; xn--r3i.xn----z1g58579u; ; ; # ⫐.Ⴠ-
+⫐。ⴠ-󃐢; ⫐.ⴠ-󃐢; [P1, V6]; xn--r3i.xn----2wst7439i; ; ; # ⫐.ⴠ-
+𑑂◊.⦟∠; 𑑂◊.⦟∠; [V5]; xn--01h3338f.xn--79g270a; ; ; # 𑑂◊.⦟∠
+𑑂◊.⦟∠; ; [V5]; xn--01h3338f.xn--79g270a; ; ; # 𑑂◊.⦟∠
+xn--01h3338f.xn--79g270a; 𑑂◊.⦟∠; [V5]; xn--01h3338f.xn--79g270a; ; ; # 𑑂◊.⦟∠
+𿌰-٢。󋸛ꡂ; 𿌰-٢.󋸛ꡂ; [B5, B6, P1, V6]; xn----dqc20828e.xn--bc9an2879c; ; ; # -٢.ꡂ
+xn----dqc20828e.xn--bc9an2879c; 𿌰-٢.󋸛ꡂ; [B5, B6, V6]; xn----dqc20828e.xn--bc9an2879c; ; ; # -٢.ꡂ
+ٸ。󠏬݁𞪭𐹪; يٴ.󠏬݁𞪭𐹪; [B1, P1, V6]; xn--mhb8f.xn--oob2585kfdsfsbo7h; ; ; # يٴ.݁𐹪
+يٴ。󠏬݁𞪭𐹪; يٴ.󠏬݁𞪭𐹪; [B1, P1, V6]; xn--mhb8f.xn--oob2585kfdsfsbo7h; ; ; # يٴ.݁𐹪
+xn--mhb8f.xn--oob2585kfdsfsbo7h; يٴ.󠏬݁𞪭𐹪; [B1, V6]; xn--mhb8f.xn--oob2585kfdsfsbo7h; ; ; # يٴ.݁𐹪
+𐫆ꌄ。‍ᣬ; 𐫆ꌄ.‍ᣬ; [B1, B2, B3, C2]; xn--y77ao18q.xn--wdf367a; ; xn--y77ao18q.xn--wdf; [B2, B3] # 𐫆ꌄ.ᣬ
+𐫆ꌄ。‍ᣬ; 𐫆ꌄ.‍ᣬ; [B1, B2, B3, C2]; xn--y77ao18q.xn--wdf367a; ; xn--y77ao18q.xn--wdf; [B2, B3] # 𐫆ꌄ.ᣬ
+xn--y77ao18q.xn--wdf; 𐫆ꌄ.ᣬ; [B2, B3]; xn--y77ao18q.xn--wdf; ; ; # 𐫆ꌄ.ᣬ
+xn--y77ao18q.xn--wdf367a; 𐫆ꌄ.‍ᣬ; [B1, B2, B3, C2]; xn--y77ao18q.xn--wdf367a; ; ; # 𐫆ꌄ.ᣬ
+₀٢。󅪞≯-; 0٢.󅪞≯-; [B1, B6, P1, V3, V6]; xn--0-dqc.xn----ogov3342l; ; ; # 0٢.≯-
+₀٢。󅪞≯-; 0٢.󅪞≯-; [B1, B6, P1, V3, V6]; xn--0-dqc.xn----ogov3342l; ; ; # 0٢.≯-
+0٢。󅪞≯-; 0٢.󅪞≯-; [B1, B6, P1, V3, V6]; xn--0-dqc.xn----ogov3342l; ; ; # 0٢.≯-
+0٢。󅪞≯-; 0٢.󅪞≯-; [B1, B6, P1, V3, V6]; xn--0-dqc.xn----ogov3342l; ; ; # 0٢.≯-
+xn--0-dqc.xn----ogov3342l; 0٢.󅪞≯-; [B1, B6, V3, V6]; xn--0-dqc.xn----ogov3342l; ; ; # 0٢.≯-
+̜𐹫-𞯃.𐋤ࡅ; ; [B1, P1, V5, V6]; xn----gdb7046r692g.xn--3vb1349j; ; ; # ̜𐹫-.𐋤ࡅ
+xn----gdb7046r692g.xn--3vb1349j; ̜𐹫-𞯃.𐋤ࡅ; [B1, V5, V6]; xn----gdb7046r692g.xn--3vb1349j; ; ; # ̜𐹫-.𐋤ࡅ
+≠。𝩑𐹩Ⴡ֔; ≠.𝩑𐹩Ⴡ֔; [B1, P1, V5, V6]; xn--1ch.xn--fcb538c649rypog; ; ; # ≠.𝩑𐹩Ⴡ֔
+≠。𝩑𐹩Ⴡ֔; ≠.𝩑𐹩Ⴡ֔; [B1, P1, V5, V6]; xn--1ch.xn--fcb538c649rypog; ; ; # ≠.𝩑𐹩Ⴡ֔
+≠。𝩑𐹩Ⴡ֔; ≠.𝩑𐹩Ⴡ֔; [B1, P1, V5, V6]; xn--1ch.xn--fcb538c649rypog; ; ; # ≠.𝩑𐹩Ⴡ֔
+≠。𝩑𐹩Ⴡ֔; ≠.𝩑𐹩Ⴡ֔; [B1, P1, V5, V6]; xn--1ch.xn--fcb538c649rypog; ; ; # ≠.𝩑𐹩Ⴡ֔
+≠。𝩑𐹩ⴡ֔; ≠.𝩑𐹩ⴡ֔; [B1, P1, V5, V6]; xn--1ch.xn--fcb363rk03mypug; ; ; # ≠.𝩑𐹩ⴡ֔
+≠。𝩑𐹩ⴡ֔; ≠.𝩑𐹩ⴡ֔; [B1, P1, V5, V6]; xn--1ch.xn--fcb363rk03mypug; ; ; # ≠.𝩑𐹩ⴡ֔
+xn--1ch.xn--fcb363rk03mypug; ≠.𝩑𐹩ⴡ֔; [B1, V5, V6]; xn--1ch.xn--fcb363rk03mypug; ; ; # ≠.𝩑𐹩ⴡ֔
+xn--1ch.xn--fcb538c649rypog; ≠.𝩑𐹩Ⴡ֔; [B1, V5, V6]; xn--1ch.xn--fcb538c649rypog; ; ; # ≠.𝩑𐹩Ⴡ֔
+≠。𝩑𐹩ⴡ֔; ≠.𝩑𐹩ⴡ֔; [B1, P1, V5, V6]; xn--1ch.xn--fcb363rk03mypug; ; ; # ≠.𝩑𐹩ⴡ֔
+≠。𝩑𐹩ⴡ֔; ≠.𝩑𐹩ⴡ֔; [B1, P1, V5, V6]; xn--1ch.xn--fcb363rk03mypug; ; ; # ≠.𝩑𐹩ⴡ֔
+𖫳≠.Ⴀ𐮀; ; [B1, B5, B6, P1, V5, V6]; xn--1ch9250k.xn--7md2659j; ; ; # 𖫳≠.Ⴀ𐮀
+𖫳≠.Ⴀ𐮀; 𖫳≠.Ⴀ𐮀; [B1, B5, B6, P1, V5, V6]; xn--1ch9250k.xn--7md2659j; ; ; # 𖫳≠.Ⴀ𐮀
+𖫳≠.ⴀ𐮀; 𖫳≠.ⴀ𐮀; [B1, B5, B6, P1, V5, V6]; xn--1ch9250k.xn--rkj6232e; ; ; # 𖫳≠.ⴀ𐮀
+𖫳≠.ⴀ𐮀; ; [B1, B5, B6, P1, V5, V6]; xn--1ch9250k.xn--rkj6232e; ; ; # 𖫳≠.ⴀ𐮀
+xn--1ch9250k.xn--rkj6232e; 𖫳≠.ⴀ𐮀; [B1, B5, B6, V5, V6]; xn--1ch9250k.xn--rkj6232e; ; ; # 𖫳≠.ⴀ𐮀
+xn--1ch9250k.xn--7md2659j; 𖫳≠.Ⴀ𐮀; [B1, B5, B6, V5, V6]; xn--1ch9250k.xn--7md2659j; ; ; # 𖫳≠.Ⴀ𐮀
+󠅾ܶܦ.ᢚ閪࣢𝩟; ܶܦ.ᢚ閪࣢𝩟; [B1, B5, B6, P1, V5, V6]; xn--wnb5a.xn--l0b161fis8gbp5m; ; ; # ܶܦ.ᢚ閪𝩟
+󠅾ܶܦ.ᢚ閪࣢𝩟; ܶܦ.ᢚ閪࣢𝩟; [B1, B5, B6, P1, V5, V6]; xn--wnb5a.xn--l0b161fis8gbp5m; ; ; # ܶܦ.ᢚ閪𝩟
+xn--wnb5a.xn--l0b161fis8gbp5m; ܶܦ.ᢚ閪࣢𝩟; [B1, B5, B6, V5, V6]; xn--wnb5a.xn--l0b161fis8gbp5m; ; ; # ܶܦ.ᢚ閪𝩟
+‍󠇜ۋ꣩。⃝ྰ-ᛟ; ‍ۋ꣩.⃝ྰ-ᛟ; [B1, C2, V5]; xn--blb540ke10h.xn----gmg236cj6k; ; xn--blb8114f.xn----gmg236cj6k; [B1, V5] # ۋ꣩.⃝ྰ-ᛟ
+‍󠇜ۋ꣩。⃝ྰ-ᛟ; ‍ۋ꣩.⃝ྰ-ᛟ; [B1, C2, V5]; xn--blb540ke10h.xn----gmg236cj6k; ; xn--blb8114f.xn----gmg236cj6k; [B1, V5] # ۋ꣩.⃝ྰ-ᛟ
+xn--blb8114f.xn----gmg236cj6k; ۋ꣩.⃝ྰ-ᛟ; [B1, V5]; xn--blb8114f.xn----gmg236cj6k; ; ; # ۋ꣩.⃝ྰ-ᛟ
+xn--blb540ke10h.xn----gmg236cj6k; ‍ۋ꣩.⃝ྰ-ᛟ; [B1, C2, V5]; xn--blb540ke10h.xn----gmg236cj6k; ; ; # ۋ꣩.⃝ྰ-ᛟ
+헁󘖙ฺ󚍚。ں𝟜; 헁󘖙ฺ󚍚.ں4; [P1, V6]; xn--o4c1723h8g85gt4ya.xn--4-dvc; ; ; # 헁ฺ.ں4
+헁󘖙ฺ󚍚。ں𝟜; 헁󘖙ฺ󚍚.ں4; [P1, V6]; xn--o4c1723h8g85gt4ya.xn--4-dvc; ; ; # 헁ฺ.ں4
+헁󘖙ฺ󚍚。ں4; 헁󘖙ฺ󚍚.ں4; [P1, V6]; xn--o4c1723h8g85gt4ya.xn--4-dvc; ; ; # 헁ฺ.ں4
+헁󘖙ฺ󚍚。ں4; 헁󘖙ฺ󚍚.ں4; [P1, V6]; xn--o4c1723h8g85gt4ya.xn--4-dvc; ; ; # 헁ฺ.ں4
+xn--o4c1723h8g85gt4ya.xn--4-dvc; 헁󘖙ฺ󚍚.ں4; [V6]; xn--o4c1723h8g85gt4ya.xn--4-dvc; ; ; # 헁ฺ.ں4
+𐹭。󃱂‌Ⴞ; 𐹭.󃱂‌Ⴞ; [B1, C1, P1, V6]; xn--lo0d.xn--2nd949eqw95u; ; xn--lo0d.xn--2nd75260n; [B1, P1, V6] # 𐹭.Ⴞ
+𐹭。󃱂‌Ⴞ; 𐹭.󃱂‌Ⴞ; [B1, C1, P1, V6]; xn--lo0d.xn--2nd949eqw95u; ; xn--lo0d.xn--2nd75260n; [B1, P1, V6] # 𐹭.Ⴞ
+𐹭。󃱂‌ⴞ; 𐹭.󃱂‌ⴞ; [B1, C1, P1, V6]; xn--lo0d.xn--0ugx72cwi33v; ; xn--lo0d.xn--mljx1099g; [B1, P1, V6] # 𐹭.ⴞ
+xn--lo0d.xn--mljx1099g; 𐹭.󃱂ⴞ; [B1, V6]; xn--lo0d.xn--mljx1099g; ; ; # 𐹭.ⴞ
+xn--lo0d.xn--0ugx72cwi33v; 𐹭.󃱂‌ⴞ; [B1, C1, V6]; xn--lo0d.xn--0ugx72cwi33v; ; ; # 𐹭.ⴞ
+xn--lo0d.xn--2nd75260n; 𐹭.󃱂Ⴞ; [B1, V6]; xn--lo0d.xn--2nd75260n; ; ; # 𐹭.Ⴞ
+xn--lo0d.xn--2nd949eqw95u; 𐹭.󃱂‌Ⴞ; [B1, C1, V6]; xn--lo0d.xn--2nd949eqw95u; ; ; # 𐹭.Ⴞ
+𐹭。󃱂‌ⴞ; 𐹭.󃱂‌ⴞ; [B1, C1, P1, V6]; xn--lo0d.xn--0ugx72cwi33v; ; xn--lo0d.xn--mljx1099g; [B1, P1, V6] # 𐹭.ⴞ
+꥓.̽𑂽馋; ; [P1, V5, V6]; xn--3j9a.xn--bua0708eqzrd; ; ; # ꥓.̽馋
+xn--3j9a.xn--bua0708eqzrd; ꥓.̽𑂽馋; [V5, V6]; xn--3j9a.xn--bua0708eqzrd; ; ; # ꥓.̽馋
+󈫝򪛸‍。䜖; 󈫝򪛸‍.䜖; [C2, P1, V6]; xn--1ug30527h9mxi.xn--k0o; ; xn--g138cxw05a.xn--k0o; [P1, V6] # .䜖
+󈫝򪛸‍。䜖; 󈫝򪛸‍.䜖; [C2, P1, V6]; xn--1ug30527h9mxi.xn--k0o; ; xn--g138cxw05a.xn--k0o; [P1, V6] # .䜖
+xn--g138cxw05a.xn--k0o; 󈫝򪛸.䜖; [V6]; xn--g138cxw05a.xn--k0o; ; ; # .䜖
+xn--1ug30527h9mxi.xn--k0o; 󈫝򪛸‍.䜖; [C2, V6]; xn--1ug30527h9mxi.xn--k0o; ; ; # .䜖
+ᡯ⚉姶🄉.۷‍🎪‍; ᡯ⚉姶🄉.۷‍🎪‍; [C2, P1, V6]; xn--c9e433epi4b3j20a.xn--kmb859ja94998b; ; xn--c9e433epi4b3j20a.xn--kmb6733w; [P1, V6] # ᡯ⚉姶🄉.۷🎪
+ᡯ⚉姶8,.۷‍🎪‍; ; [C2, P1, V6]; xn--8,-g9oy26fzu4d.xn--kmb859ja94998b; ; xn--8,-g9oy26fzu4d.xn--kmb6733w; [P1, V6] # ᡯ⚉姶8,.۷🎪
+xn--8,-g9oy26fzu4d.xn--kmb6733w; ᡯ⚉姶8,.۷🎪; [P1, V6]; xn--8,-g9oy26fzu4d.xn--kmb6733w; ; ; # ᡯ⚉姶8,.۷🎪
+xn--8,-g9oy26fzu4d.xn--kmb859ja94998b; ᡯ⚉姶8,.۷‍🎪‍; [C2, P1, V6]; xn--8,-g9oy26fzu4d.xn--kmb859ja94998b; ; ; # ᡯ⚉姶8,.۷🎪
+xn--c9e433epi4b3j20a.xn--kmb6733w; ᡯ⚉姶🄉.۷🎪; [V6]; xn--c9e433epi4b3j20a.xn--kmb6733w; ; ; # ᡯ⚉姶🄉.۷🎪
+xn--c9e433epi4b3j20a.xn--kmb859ja94998b; ᡯ⚉姶🄉.۷‍🎪‍; [C2, V6]; xn--c9e433epi4b3j20a.xn--kmb859ja94998b; ; ; # ᡯ⚉姶🄉.۷🎪
+𞽀.𐹸🚖ฺ; ; [B1, P1, V6]; xn--0n7h.xn--o4c9032klszf; ; ; # .𐹸🚖ฺ
+xn--0n7h.xn--o4c9032klszf; 𞽀.𐹸🚖ฺ; [B1, V6]; xn--0n7h.xn--o4c9032klszf; ; ; # .𐹸🚖ฺ
+Ⴔᠵ。𐹧݇۹; Ⴔᠵ.𐹧݇۹; [B1, P1, V6]; xn--snd659a.xn--mmb9ml895e; ; ; # Ⴔᠵ.𐹧݇۹
+Ⴔᠵ。𐹧݇۹; Ⴔᠵ.𐹧݇۹; [B1, P1, V6]; xn--snd659a.xn--mmb9ml895e; ; ; # Ⴔᠵ.𐹧݇۹
+ⴔᠵ。𐹧݇۹; ⴔᠵ.𐹧݇۹; [B1]; xn--o7e997h.xn--mmb9ml895e; ; ; # ⴔᠵ.𐹧݇۹
+xn--o7e997h.xn--mmb9ml895e; ⴔᠵ.𐹧݇۹; [B1]; xn--o7e997h.xn--mmb9ml895e; ; ; # ⴔᠵ.𐹧݇۹
+xn--snd659a.xn--mmb9ml895e; Ⴔᠵ.𐹧݇۹; [B1, V6]; xn--snd659a.xn--mmb9ml895e; ; ; # Ⴔᠵ.𐹧݇۹
+ⴔᠵ。𐹧݇۹; ⴔᠵ.𐹧݇۹; [B1]; xn--o7e997h.xn--mmb9ml895e; ; ; # ⴔᠵ.𐹧݇۹
+፟ᡈ‌.︒-𖾐-; ፟ᡈ‌.︒-𖾐-; [C1, P1, V3, V5, V6]; xn--b7d82wo4h.xn-----c82nz547a; ; xn--b7d82w.xn-----c82nz547a; [P1, V3, V5, V6] # ፟ᡈ.︒-𖾐-
+፟ᡈ‌.。-𖾐-; ፟ᡈ‌..-𖾐-; [C1, V3, V5, X4_2]; xn--b7d82wo4h..xn-----pe4u; [C1, V3, V5, A4_2]; xn--b7d82w..xn-----pe4u; [V3, V5, A4_2] # ፟ᡈ..-𖾐-
+xn--b7d82w..xn-----pe4u; ፟ᡈ..-𖾐-; [V3, V5, X4_2]; xn--b7d82w..xn-----pe4u; [V3, V5, A4_2]; ; # ፟ᡈ..-𖾐-
+xn--b7d82wo4h..xn-----pe4u; ፟ᡈ‌..-𖾐-; [C1, V3, V5, X4_2]; xn--b7d82wo4h..xn-----pe4u; [C1, V3, V5, A4_2]; ; # ፟ᡈ..-𖾐-
+xn--b7d82w.xn-----c82nz547a; ፟ᡈ.︒-𖾐-; [V3, V5, V6]; xn--b7d82w.xn-----c82nz547a; ; ; # ፟ᡈ.︒-𖾐-
+xn--b7d82wo4h.xn-----c82nz547a; ፟ᡈ‌.︒-𖾐-; [C1, V3, V5, V6]; xn--b7d82wo4h.xn-----c82nz547a; ; ; # ፟ᡈ.︒-𖾐-
+⒈؁⒖‌.ᷰߛ; ; [B1, C1, P1, V5, V6]; xn--jfb844kmfdwb.xn--2sb914i; ; xn--jfb347mib.xn--2sb914i; [B1, P1, V5, V6] # ⒈⒖.ᷰߛ
+1.؁15.‌.ᷰߛ; ; [B1, C1, P1, V5, V6]; 1.xn--15-1pd.xn--0ug.xn--2sb914i; ; 1.xn--15-1pd..xn--2sb914i; [B1, P1, V5, V6, A4_2] # 1.15..ᷰߛ
+1.xn--15-1pd..xn--2sb914i; 1.؁15..ᷰߛ; [B1, V5, V6, X4_2]; 1.xn--15-1pd..xn--2sb914i; [B1, V5, V6, A4_2]; ; # 1.15..ᷰߛ
+1.xn--15-1pd.xn--0ug.xn--2sb914i; 1.؁15.‌.ᷰߛ; [B1, C1, V5, V6]; 1.xn--15-1pd.xn--0ug.xn--2sb914i; ; ; # 1.15..ᷰߛ
+xn--jfb347mib.xn--2sb914i; ⒈؁⒖.ᷰߛ; [B1, V5, V6]; xn--jfb347mib.xn--2sb914i; ; ; # ⒈⒖.ᷰߛ
+xn--jfb844kmfdwb.xn--2sb914i; ⒈؁⒖‌.ᷰߛ; [B1, C1, V5, V6]; xn--jfb844kmfdwb.xn--2sb914i; ; ; # ⒈⒖.ᷰߛ
+𝩜。-୍Ⴋ; 𝩜.-୍Ⴋ; [P1, V3, V5, V6]; xn--792h.xn----bse632b; ; ; # 𝩜.-୍Ⴋ
+𝩜。-୍ⴋ; 𝩜.-୍ⴋ; [V3, V5]; xn--792h.xn----bse820x; ; ; # 𝩜.-୍ⴋ
+xn--792h.xn----bse820x; 𝩜.-୍ⴋ; [V3, V5]; xn--792h.xn----bse820x; ; ; # 𝩜.-୍ⴋ
+xn--792h.xn----bse632b; 𝩜.-୍Ⴋ; [V3, V5, V6]; xn--792h.xn----bse632b; ; ; # 𝩜.-୍Ⴋ
+ßჀ.ؠ刯Ⴝ; ; [B2, B3, P1, V6]; xn--zca442f.xn--fgb845cb66c; ; xn--ss-wgk.xn--fgb845cb66c; # ßჀ.ؠ刯Ⴝ
+ßⴠ.ؠ刯ⴝ; ; [B2, B3]; xn--zca277t.xn--fgb670rovy; ; xn--ss-j81a.xn--fgb670rovy; # ßⴠ.ؠ刯ⴝ
+SSჀ.ؠ刯Ⴝ; ssჀ.ؠ刯Ⴝ; [B2, B3, P1, V6]; xn--ss-wgk.xn--fgb845cb66c; ; ; # ssჀ.ؠ刯Ⴝ
+ssⴠ.ؠ刯ⴝ; ; [B2, B3]; xn--ss-j81a.xn--fgb670rovy; ; ; # ssⴠ.ؠ刯ⴝ
+Ssⴠ.ؠ刯Ⴝ; ssⴠ.ؠ刯Ⴝ; [B2, B3, P1, V6]; xn--ss-j81a.xn--fgb845cb66c; ; ; # ssⴠ.ؠ刯Ⴝ
+xn--ss-j81a.xn--fgb845cb66c; ssⴠ.ؠ刯Ⴝ; [B2, B3, V6]; xn--ss-j81a.xn--fgb845cb66c; ; ; # ssⴠ.ؠ刯Ⴝ
+xn--ss-j81a.xn--fgb670rovy; ssⴠ.ؠ刯ⴝ; [B2, B3]; xn--ss-j81a.xn--fgb670rovy; ; ; # ssⴠ.ؠ刯ⴝ
+xn--ss-wgk.xn--fgb845cb66c; ssჀ.ؠ刯Ⴝ; [B2, B3, V6]; xn--ss-wgk.xn--fgb845cb66c; ; ; # ssჀ.ؠ刯Ⴝ
+xn--zca277t.xn--fgb670rovy; ßⴠ.ؠ刯ⴝ; [B2, B3]; xn--zca277t.xn--fgb670rovy; ; ; # ßⴠ.ؠ刯ⴝ
+xn--zca442f.xn--fgb845cb66c; ßჀ.ؠ刯Ⴝ; [B2, B3, V6]; xn--zca442f.xn--fgb845cb66c; ; ; # ßჀ.ؠ刯Ⴝ
+᮪ႣℲ。ᠳ툻ٳ; ᮪ႣℲ.ᠳ툻ٳ; [B5, B6, P1, V5, V6]; xn--bnd957cone.xn--sib102gc69k; ; ; # ᮪ႣℲ.ᠳ툻ٳ
+᮪ႣℲ。ᠳ툻ٳ; ᮪ႣℲ.ᠳ툻ٳ; [B5, B6, P1, V5, V6]; xn--bnd957cone.xn--sib102gc69k; ; ; # ᮪ႣℲ.ᠳ툻ٳ
+᮪ႣℲ。ᠳ툻ٳ; ᮪ႣℲ.ᠳ툻ٳ; [B5, B6, P1, V5, V6]; xn--bnd957cone.xn--sib102gc69k; ; ; # ᮪ႣℲ.ᠳ툻ٳ
+᮪ႣℲ。ᠳ툻ٳ; ᮪ႣℲ.ᠳ툻ٳ; [B5, B6, P1, V5, V6]; xn--bnd957cone.xn--sib102gc69k; ; ; # ᮪ႣℲ.ᠳ툻ٳ
+᮪ⴃⅎ。ᠳ툻ٳ; ᮪ⴃⅎ.ᠳ툻ٳ; [B5, B6, V5]; xn--yxf24x4ol.xn--sib102gc69k; ; ; # ᮪ⴃⅎ.ᠳ툻ٳ
+᮪ⴃⅎ。ᠳ툻ٳ; ᮪ⴃⅎ.ᠳ툻ٳ; [B5, B6, V5]; xn--yxf24x4ol.xn--sib102gc69k; ; ; # ᮪ⴃⅎ.ᠳ툻ٳ
+᮪Ⴃⅎ。ᠳ툻ٳ; ᮪Ⴃⅎ.ᠳ툻ٳ; [B5, B6, P1, V5, V6]; xn--bnd957c2pe.xn--sib102gc69k; ; ; # ᮪Ⴃⅎ.ᠳ툻ٳ
+᮪Ⴃⅎ。ᠳ툻ٳ; ᮪Ⴃⅎ.ᠳ툻ٳ; [B5, B6, P1, V5, V6]; xn--bnd957c2pe.xn--sib102gc69k; ; ; # ᮪Ⴃⅎ.ᠳ툻ٳ
+xn--bnd957c2pe.xn--sib102gc69k; ᮪Ⴃⅎ.ᠳ툻ٳ; [B5, B6, V5, V6]; xn--bnd957c2pe.xn--sib102gc69k; ; ; # ᮪Ⴃⅎ.ᠳ툻ٳ
+xn--yxf24x4ol.xn--sib102gc69k; ᮪ⴃⅎ.ᠳ툻ٳ; [B5, B6, V5]; xn--yxf24x4ol.xn--sib102gc69k; ; ; # ᮪ⴃⅎ.ᠳ툻ٳ
+xn--bnd957cone.xn--sib102gc69k; ᮪ႣℲ.ᠳ툻ٳ; [B5, B6, V5, V6]; xn--bnd957cone.xn--sib102gc69k; ; ; # ᮪ႣℲ.ᠳ툻ٳ
+᮪ⴃⅎ。ᠳ툻ٳ; ᮪ⴃⅎ.ᠳ툻ٳ; [B5, B6, V5]; xn--yxf24x4ol.xn--sib102gc69k; ; ; # ᮪ⴃⅎ.ᠳ툻ٳ
+᮪ⴃⅎ。ᠳ툻ٳ; ᮪ⴃⅎ.ᠳ툻ٳ; [B5, B6, V5]; xn--yxf24x4ol.xn--sib102gc69k; ; ; # ᮪ⴃⅎ.ᠳ툻ٳ
+᮪Ⴃⅎ。ᠳ툻ٳ; ᮪Ⴃⅎ.ᠳ툻ٳ; [B5, B6, P1, V5, V6]; xn--bnd957c2pe.xn--sib102gc69k; ; ; # ᮪Ⴃⅎ.ᠳ툻ٳ
+᮪Ⴃⅎ。ᠳ툻ٳ; ᮪Ⴃⅎ.ᠳ툻ٳ; [B5, B6, P1, V5, V6]; xn--bnd957c2pe.xn--sib102gc69k; ; ; # ᮪Ⴃⅎ.ᠳ툻ٳ
+۬.ࢢ𐹫ټ; ; [B1, B3, B6, V5]; xn--8lb.xn--1ib31ily45b; ; ; # ۬.ࢢ𐹫ټ
+xn--8lb.xn--1ib31ily45b; ۬.ࢢ𐹫ټ; [B1, B3, B6, V5]; xn--8lb.xn--1ib31ily45b; ; ; # ۬.ࢢ𐹫ټ
+ڶ۟。₇꠆; ڶ۟.7꠆; [B1]; xn--pkb6f.xn--7-x93e; ; ; # ڶ۟.7꠆
+ڶ۟。7꠆; ڶ۟.7꠆; [B1]; xn--pkb6f.xn--7-x93e; ; ; # ڶ۟.7꠆
+xn--pkb6f.xn--7-x93e; ڶ۟.7꠆; [B1]; xn--pkb6f.xn--7-x93e; ; ; # ڶ۟.7꠆
+ڶ۟.7꠆; ; [B1]; xn--pkb6f.xn--7-x93e; ; ; # ڶ۟.7꠆
+Ⴣ𐹻.‌𝪣≮󠩉; ; [B1, B5, B6, C1, P1, V6]; xn--7nd8101k.xn--0ugy6gn120eb103g; ; xn--7nd8101k.xn--gdh4944ob3x3e; [B1, B5, B6, P1, V5, V6] # Ⴣ𐹻.𝪣≮
+Ⴣ𐹻.‌𝪣≮󠩉; Ⴣ𐹻.‌𝪣≮󠩉; [B1, B5, B6, C1, P1, V6]; xn--7nd8101k.xn--0ugy6gn120eb103g; ; xn--7nd8101k.xn--gdh4944ob3x3e; [B1, B5, B6, P1, V5, V6] # Ⴣ𐹻.𝪣≮
+ⴣ𐹻.‌𝪣≮󠩉; ⴣ𐹻.‌𝪣≮󠩉; [B1, B5, B6, C1, P1, V6]; xn--rlj6323e.xn--0ugy6gn120eb103g; ; xn--rlj6323e.xn--gdh4944ob3x3e; [B1, B5, B6, P1, V5, V6] # ⴣ𐹻.𝪣≮
+ⴣ𐹻.‌𝪣≮󠩉; ; [B1, B5, B6, C1, P1, V6]; xn--rlj6323e.xn--0ugy6gn120eb103g; ; xn--rlj6323e.xn--gdh4944ob3x3e; [B1, B5, B6, P1, V5, V6] # ⴣ𐹻.𝪣≮
+xn--rlj6323e.xn--gdh4944ob3x3e; ⴣ𐹻.𝪣≮󠩉; [B1, B5, B6, V5, V6]; xn--rlj6323e.xn--gdh4944ob3x3e; ; ; # ⴣ𐹻.𝪣≮
+xn--rlj6323e.xn--0ugy6gn120eb103g; ⴣ𐹻.‌𝪣≮󠩉; [B1, B5, B6, C1, V6]; xn--rlj6323e.xn--0ugy6gn120eb103g; ; ; # ⴣ𐹻.𝪣≮
+xn--7nd8101k.xn--gdh4944ob3x3e; Ⴣ𐹻.𝪣≮󠩉; [B1, B5, B6, V5, V6]; xn--7nd8101k.xn--gdh4944ob3x3e; ; ; # Ⴣ𐹻.𝪣≮
+xn--7nd8101k.xn--0ugy6gn120eb103g; Ⴣ𐹻.‌𝪣≮󠩉; [B1, B5, B6, C1, V6]; xn--7nd8101k.xn--0ugy6gn120eb103g; ; ; # Ⴣ𐹻.𝪣≮
+𝟵隁⯮.᠍‌; 9隁⯮.‌; [C1]; xn--9-mfs8024b.xn--0ug; ; xn--9-mfs8024b.; [] # 9隁⯮.
+9隁⯮.᠍‌; 9隁⯮.‌; [C1]; xn--9-mfs8024b.xn--0ug; ; xn--9-mfs8024b.; [] # 9隁⯮.
+xn--9-mfs8024b.; 9隁⯮.; ; xn--9-mfs8024b.; ; ; # 9隁⯮.
+9隁⯮.; ; ; xn--9-mfs8024b.; ; ; # 9隁⯮.
+xn--9-mfs8024b.xn--0ug; 9隁⯮.‌; [C1]; xn--9-mfs8024b.xn--0ug; ; ; # 9隁⯮.
+⒏𐹧。Ⴣ྄彦; ⒏𐹧.Ⴣ྄彦; [B1, P1, V6]; xn--0sh2466f.xn--3ed15dt93o; ; ; # ⒏𐹧.Ⴣ྄彦
+8.𐹧。Ⴣ྄彦; 8.𐹧.Ⴣ྄彦; [B1, P1, V6]; 8.xn--fo0d.xn--3ed15dt93o; ; ; # 8.𐹧.Ⴣ྄彦
+8.𐹧。ⴣ྄彦; 8.𐹧.ⴣ྄彦; [B1]; 8.xn--fo0d.xn--3ed972m6o8a; ; ; # 8.𐹧.ⴣ྄彦
+8.xn--fo0d.xn--3ed972m6o8a; 8.𐹧.ⴣ྄彦; [B1]; 8.xn--fo0d.xn--3ed972m6o8a; ; ; # 8.𐹧.ⴣ྄彦
+8.xn--fo0d.xn--3ed15dt93o; 8.𐹧.Ⴣ྄彦; [B1, V6]; 8.xn--fo0d.xn--3ed15dt93o; ; ; # 8.𐹧.Ⴣ྄彦
+⒏𐹧。ⴣ྄彦; ⒏𐹧.ⴣ྄彦; [B1, P1, V6]; xn--0sh2466f.xn--3ed972m6o8a; ; ; # ⒏𐹧.ⴣ྄彦
+xn--0sh2466f.xn--3ed972m6o8a; ⒏𐹧.ⴣ྄彦; [B1, V6]; xn--0sh2466f.xn--3ed972m6o8a; ; ; # ⒏𐹧.ⴣ྄彦
+xn--0sh2466f.xn--3ed15dt93o; ⒏𐹧.Ⴣ྄彦; [B1, V6]; xn--0sh2466f.xn--3ed15dt93o; ; ; # ⒏𐹧.Ⴣ྄彦
+-问񬰔⒛。؄-񜗉橬; -问񬰔⒛.؄-񜗉橬; [B1, P1, V3, V6]; xn----hdpu849bhis3e.xn----ykc7228efm46d; ; ; # -问⒛.-橬
+-问񬰔20.。؄-񜗉橬; -问񬰔20..؄-񜗉橬; [B1, P1, V3, V6, X4_2]; xn---20-658jx1776d..xn----ykc7228efm46d; [B1, P1, V3, V6, A4_2]; ; # -问20..-橬
+xn---20-658jx1776d..xn----ykc7228efm46d; -问񬰔20..؄-񜗉橬; [B1, V3, V6, X4_2]; xn---20-658jx1776d..xn----ykc7228efm46d; [B1, V3, V6, A4_2]; ; # -问20..-橬
+xn----hdpu849bhis3e.xn----ykc7228efm46d; -问񬰔⒛.؄-񜗉橬; [B1, V3, V6]; xn----hdpu849bhis3e.xn----ykc7228efm46d; ; ; # -问⒛.-橬
+ᮬႬ‌̥。𝟸; ᮬႬ‌̥.2; [C1, P1, V5, V6]; xn--mta930emribme.2; ; xn--mta930emri.2; [P1, V5, V6] # ᮬႬ̥.2
+ᮬႬ‌̥。2; ᮬႬ‌̥.2; [C1, P1, V5, V6]; xn--mta930emribme.2; ; xn--mta930emri.2; [P1, V5, V6] # ᮬႬ̥.2
+ᮬⴌ‌̥。2; ᮬⴌ‌̥.2; [C1, V5]; xn--mta176j97cl2q.2; ; xn--mta176jjjm.2; [V5] # ᮬⴌ̥.2
+xn--mta176jjjm.2; ᮬⴌ̥.2; [V5]; xn--mta176jjjm.2; ; ; # ᮬⴌ̥.2
+xn--mta176j97cl2q.2; ᮬⴌ‌̥.2; [C1, V5]; xn--mta176j97cl2q.2; ; ; # ᮬⴌ̥.2
+xn--mta930emri.2; ᮬႬ̥.2; [V5, V6]; xn--mta930emri.2; ; ; # ᮬႬ̥.2
+xn--mta930emribme.2; ᮬႬ‌̥.2; [C1, V5, V6]; xn--mta930emribme.2; ; ; # ᮬႬ̥.2
+ᮬⴌ‌̥。𝟸; ᮬⴌ‌̥.2; [C1, V5]; xn--mta176j97cl2q.2; ; xn--mta176jjjm.2; [V5] # ᮬⴌ̥.2
+?。꠆٩󠒩; ?.꠆٩󠒩; [B1, P1, V5, V6]; ?.xn--iib9583fusy0i; [B1, P1, V5, V6, A3]; ; # .꠆٩
+?.xn--iib9583fusy0i; ?.꠆٩󠒩; [B1, P1, V5, V6]; ?.xn--iib9583fusy0i; [B1, P1, V5, V6, A3]; ; # .꠆٩
+?.XN--IIB9583FUSY0I; ?.꠆٩󠒩; [B1, P1, V5, V6]; ?.xn--iib9583fusy0i; [B1, P1, V5, V6, A3]; ; # .꠆٩
+?.Xn--Iib9583fusy0i; ?.꠆٩󠒩; [B1, P1, V5, V6]; ?.xn--iib9583fusy0i; [B1, P1, V5, V6, A3]; ; # .꠆٩
+󠄁͟⾶。₇︒눇≮; ͟飛.7︒눇≮; [P1, V5, V6]; xn--9ua0567e.xn--7-ngou006d1ttc; ; ; # ͟飛.7︒눇≮
+󠄁͟⾶。₇︒눇≮; ͟飛.7︒눇≮; [P1, V5, V6]; xn--9ua0567e.xn--7-ngou006d1ttc; ; ; # ͟飛.7︒눇≮
+󠄁͟飛。7。눇≮; ͟飛.7.눇≮; [P1, V5, V6]; xn--9ua0567e.7.xn--gdh6767c; ; ; # ͟飛.7.눇≮
+󠄁͟飛。7。눇≮; ͟飛.7.눇≮; [P1, V5, V6]; xn--9ua0567e.7.xn--gdh6767c; ; ; # ͟飛.7.눇≮
+xn--9ua0567e.7.xn--gdh6767c; ͟飛.7.눇≮; [V5, V6]; xn--9ua0567e.7.xn--gdh6767c; ; ; # ͟飛.7.눇≮
+xn--9ua0567e.xn--7-ngou006d1ttc; ͟飛.7︒눇≮; [V5, V6]; xn--9ua0567e.xn--7-ngou006d1ttc; ; ; # ͟飛.7︒눇≮
+‌︉𐹴‍.‌⿃; ‌𐹴‍.‌鳥; [B1, C1, C2]; xn--0ugc6024p.xn--0ug1920c; ; xn--so0d.xn--6x6a; [B1] # 𐹴.鳥
+‌︉𐹴‍.‌鳥; ‌𐹴‍.‌鳥; [B1, C1, C2]; xn--0ugc6024p.xn--0ug1920c; ; xn--so0d.xn--6x6a; [B1] # 𐹴.鳥
+xn--so0d.xn--6x6a; 𐹴.鳥; [B1]; xn--so0d.xn--6x6a; ; ; # 𐹴.鳥
+xn--0ugc6024p.xn--0ug1920c; ‌𐹴‍.‌鳥; [B1, C1, C2]; xn--0ugc6024p.xn--0ug1920c; ; ; # 𐹴.鳥
+🍮.‍󠗒𐦁𝨝; 🍮.‍󠗒𐦁𝨝; [B1, C2, P1, V6]; xn--lj8h.xn--1ug6603gr1pfwq37h; ; xn--lj8h.xn--ln9ci476aqmr2g; [B1, P1, V6] # 🍮.𐦁𝨝
+🍮.‍󠗒𐦁𝨝; ; [B1, C2, P1, V6]; xn--lj8h.xn--1ug6603gr1pfwq37h; ; xn--lj8h.xn--ln9ci476aqmr2g; [B1, P1, V6] # 🍮.𐦁𝨝
+xn--lj8h.xn--ln9ci476aqmr2g; 🍮.󠗒𐦁𝨝; [B1, V6]; xn--lj8h.xn--ln9ci476aqmr2g; ; ; # 🍮.𐦁𝨝
+xn--lj8h.xn--1ug6603gr1pfwq37h; 🍮.‍󠗒𐦁𝨝; [B1, C2, V6]; xn--lj8h.xn--1ug6603gr1pfwq37h; ; ; # 🍮.𐦁𝨝
+ٽृ.𞤓‍; ٽृ.𞤵‍; [B3, C2]; xn--2ib43l.xn--1ugy711p; ; xn--2ib43l.xn--te6h; [] # ٽृ.𞤵
+ٽृ.𞤵‍; ; [B3, C2]; xn--2ib43l.xn--1ugy711p; ; xn--2ib43l.xn--te6h; [] # ٽृ.𞤵
+xn--2ib43l.xn--te6h; ٽृ.𞤵; ; xn--2ib43l.xn--te6h; ; ; # ٽृ.𞤵
+ٽृ.𞤵; ; ; xn--2ib43l.xn--te6h; ; ; # ٽृ.𞤵
+ٽृ.𞤓; ٽृ.𞤵; ; xn--2ib43l.xn--te6h; ; ; # ٽृ.𞤵
+xn--2ib43l.xn--1ugy711p; ٽृ.𞤵‍; [B3, C2]; xn--2ib43l.xn--1ugy711p; ; ; # ٽृ.𞤵
+٤੍-.󥜽္񦦐; ٤੍-.󥜽္񦦐; [B1, P1, V3, V6]; xn----gqc711a.xn--9jd88234f3qm0b; ; ; # ٤੍-.္
+٤੍-.󥜽္񦦐; ; [B1, P1, V3, V6]; xn----gqc711a.xn--9jd88234f3qm0b; ; ; # ٤੍-.္
+xn----gqc711a.xn--9jd88234f3qm0b; ٤੍-.󥜽္񦦐; [B1, V3, V6]; xn----gqc711a.xn--9jd88234f3qm0b; ; ; # ٤੍-.္
+4်-𐹸。ꨩ‌𐹴≮; 4်-𐹸.ꨩ‌𐹴≮; [B1, C1, P1, V5, V6]; xn--4--e4j7831r.xn--0ugy6gjy5sl3ud; ; xn--4--e4j7831r.xn--gdh8754cz40c; [B1, P1, V5, V6] # 4်-𐹸.ꨩ𐹴≮
+4်-𐹸。ꨩ‌𐹴≮; 4်-𐹸.ꨩ‌𐹴≮; [B1, C1, P1, V5, V6]; xn--4--e4j7831r.xn--0ugy6gjy5sl3ud; ; xn--4--e4j7831r.xn--gdh8754cz40c; [B1, P1, V5, V6] # 4်-𐹸.ꨩ𐹴≮
+4်-𐹸。ꨩ‌𐹴≮; 4်-𐹸.ꨩ‌𐹴≮; [B1, C1, P1, V5, V6]; xn--4--e4j7831r.xn--0ugy6gjy5sl3ud; ; xn--4--e4j7831r.xn--gdh8754cz40c; [B1, P1, V5, V6] # 4်-𐹸.ꨩ𐹴≮
+4်-𐹸。ꨩ‌𐹴≮; 4်-𐹸.ꨩ‌𐹴≮; [B1, C1, P1, V5, V6]; xn--4--e4j7831r.xn--0ugy6gjy5sl3ud; ; xn--4--e4j7831r.xn--gdh8754cz40c; [B1, P1, V5, V6] # 4်-𐹸.ꨩ𐹴≮
+xn--4--e4j7831r.xn--gdh8754cz40c; 4်-𐹸.ꨩ𐹴≮; [B1, V5, V6]; xn--4--e4j7831r.xn--gdh8754cz40c; ; ; # 4်-𐹸.ꨩ𐹴≮
+xn--4--e4j7831r.xn--0ugy6gjy5sl3ud; 4်-𐹸.ꨩ‌𐹴≮; [B1, C1, V5, V6]; xn--4--e4j7831r.xn--0ugy6gjy5sl3ud; ; ; # 4်-𐹸.ꨩ𐹴≮
+‌。ᅠ྄ྖ; ‌.ᅠ྄ྖ; [C1, P1, V6]; xn--0ug.xn--3ed0by082k; ; .xn--3ed0by082k; [P1, V6, A4_2] # .྄ྖ
+‌。ᅠ྄ྖ; ‌.ᅠ྄ྖ; [C1, P1, V6]; xn--0ug.xn--3ed0b20h; ; .xn--3ed0b20h; [P1, V6, A4_2] # .྄ྖ
+.xn--3ed0b20h; .ᅠ྄ྖ; [V6, X4_2]; .xn--3ed0b20h; [V6, A4_2]; ; # .྄ྖ
+xn--0ug.xn--3ed0b20h; ‌.ᅠ྄ྖ; [C1, V6]; xn--0ug.xn--3ed0b20h; ; ; # .྄ྖ
+.xn--3ed0by082k; .ᅠ྄ྖ; [V6, X4_2]; .xn--3ed0by082k; [V6, A4_2]; ; # .྄ྖ
+xn--0ug.xn--3ed0by082k; ‌.ᅠ྄ྖ; [C1, V6]; xn--0ug.xn--3ed0by082k; ; ; # .྄ྖ
+≯򍘅.‍𐅼򲇛; ≯򍘅.‍𐅼򲇛; [C2, P1, V6]; xn--hdh84488f.xn--1ug8099fbjp4e; ; xn--hdh84488f.xn--xy7cw2886b; [P1, V6] # ≯.𐅼
+≯򍘅.‍𐅼򲇛; ≯򍘅.‍𐅼򲇛; [C2, P1, V6]; xn--hdh84488f.xn--1ug8099fbjp4e; ; xn--hdh84488f.xn--xy7cw2886b; [P1, V6] # ≯.𐅼
+≯򍘅.‍𐅼򲇛; ; [C2, P1, V6]; xn--hdh84488f.xn--1ug8099fbjp4e; ; xn--hdh84488f.xn--xy7cw2886b; [P1, V6] # ≯.𐅼
+≯򍘅.‍𐅼򲇛; ≯򍘅.‍𐅼򲇛; [C2, P1, V6]; xn--hdh84488f.xn--1ug8099fbjp4e; ; xn--hdh84488f.xn--xy7cw2886b; [P1, V6] # ≯.𐅼
+xn--hdh84488f.xn--xy7cw2886b; ≯򍘅.𐅼򲇛; [V6]; xn--hdh84488f.xn--xy7cw2886b; ; ; # ≯.𐅼
+xn--hdh84488f.xn--1ug8099fbjp4e; ≯򍘅.‍𐅼򲇛; [C2, V6]; xn--hdh84488f.xn--1ug8099fbjp4e; ; ; # ≯.𐅼
+فß𐰯。𝟕𐫫; فß𐰯.7𐫫; [B1, B2]; xn--zca96ys96y.xn--7-mm5i; ; xn--ss-jvd2339x.xn--7-mm5i; # فß𐰯.7𐫫
+فß𐰯。7𐫫; فß𐰯.7𐫫; [B1, B2]; xn--zca96ys96y.xn--7-mm5i; ; xn--ss-jvd2339x.xn--7-mm5i; # فß𐰯.7𐫫
+فSS𐰯。7𐫫; فss𐰯.7𐫫; [B1, B2]; xn--ss-jvd2339x.xn--7-mm5i; ; ; # فss𐰯.7𐫫
+فss𐰯。7𐫫; فss𐰯.7𐫫; [B1, B2]; xn--ss-jvd2339x.xn--7-mm5i; ; ; # فss𐰯.7𐫫
+xn--ss-jvd2339x.xn--7-mm5i; فss𐰯.7𐫫; [B1, B2]; xn--ss-jvd2339x.xn--7-mm5i; ; ; # فss𐰯.7𐫫
+xn--zca96ys96y.xn--7-mm5i; فß𐰯.7𐫫; [B1, B2]; xn--zca96ys96y.xn--7-mm5i; ; ; # فß𐰯.7𐫫
+فSS𐰯。𝟕𐫫; فss𐰯.7𐫫; [B1, B2]; xn--ss-jvd2339x.xn--7-mm5i; ; ; # فss𐰯.7𐫫
+فss𐰯。𝟕𐫫; فss𐰯.7𐫫; [B1, B2]; xn--ss-jvd2339x.xn--7-mm5i; ; ; # فss𐰯.7𐫫
+فSs𐰯。7𐫫; فss𐰯.7𐫫; [B1, B2]; xn--ss-jvd2339x.xn--7-mm5i; ; ; # فss𐰯.7𐫫
+فSs𐰯。𝟕𐫫; فss𐰯.7𐫫; [B1, B2]; xn--ss-jvd2339x.xn--7-mm5i; ; ; # فss𐰯.7𐫫
+ßެާࢱ。𐭁􅮙𐹲; ßެާࢱ.𐭁􅮙𐹲; [B2, B5, B6, P1, V6]; xn--zca685aoa95h.xn--e09co8cr9861c; ; xn--ss-9qet02k.xn--e09co8cr9861c; # ßެާࢱ.𐭁𐹲
+SSެާࢱ。𐭁􅮙𐹲; ssެާࢱ.𐭁􅮙𐹲; [B2, B5, B6, P1, V6]; xn--ss-9qet02k.xn--e09co8cr9861c; ; ; # ssެާࢱ.𐭁𐹲
+ssެާࢱ。𐭁􅮙𐹲; ssެާࢱ.𐭁􅮙𐹲; [B2, B5, B6, P1, V6]; xn--ss-9qet02k.xn--e09co8cr9861c; ; ; # ssެާࢱ.𐭁𐹲
+Ssެާࢱ。𐭁􅮙𐹲; ssެާࢱ.𐭁􅮙𐹲; [B2, B5, B6, P1, V6]; xn--ss-9qet02k.xn--e09co8cr9861c; ; ; # ssެާࢱ.𐭁𐹲
+xn--ss-9qet02k.xn--e09co8cr9861c; ssެާࢱ.𐭁􅮙𐹲; [B2, B5, B6, V6]; xn--ss-9qet02k.xn--e09co8cr9861c; ; ; # ssެާࢱ.𐭁𐹲
+xn--zca685aoa95h.xn--e09co8cr9861c; ßެާࢱ.𐭁􅮙𐹲; [B2, B5, B6, V6]; xn--zca685aoa95h.xn--e09co8cr9861c; ; ; # ßެާࢱ.𐭁𐹲
+-。󠉗⒌𞯛; -.󠉗⒌𞯛; [B1, P1, V3, V6]; -.xn--xsh6367n1bi3e; ; ; # -.⒌
+-。󠉗5.𞯛; -.󠉗5.𞯛; [B1, P1, V3, V6]; -.xn--5-zz21m.xn--6x6h; ; ; # -.5.
+-.xn--5-zz21m.xn--6x6h; -.󠉗5.𞯛; [B1, V3, V6]; -.xn--5-zz21m.xn--6x6h; ; ; # -.5.
+-.xn--xsh6367n1bi3e; -.󠉗⒌𞯛; [B1, V3, V6]; -.xn--xsh6367n1bi3e; ; ; # -.⒌
+𼎏ς.-≮ﲫ; 𼎏ς.-≮خج; [B1, P1, V3, V6]; xn--3xa13520c.xn----9mcf1400a; ; xn--4xa92520c.xn----9mcf1400a; # ς.-≮خج
+𼎏ς.-≮ﲫ; 𼎏ς.-≮خج; [B1, P1, V3, V6]; xn--3xa13520c.xn----9mcf1400a; ; xn--4xa92520c.xn----9mcf1400a; # ς.-≮خج
+𼎏ς.-≮خج; ; [B1, P1, V3, V6]; xn--3xa13520c.xn----9mcf1400a; ; xn--4xa92520c.xn----9mcf1400a; # ς.-≮خج
+𼎏ς.-≮خج; 𼎏ς.-≮خج; [B1, P1, V3, V6]; xn--3xa13520c.xn----9mcf1400a; ; xn--4xa92520c.xn----9mcf1400a; # ς.-≮خج
+𼎏Σ.-≮خج; 𼎏σ.-≮خج; [B1, P1, V3, V6]; xn--4xa92520c.xn----9mcf1400a; ; ; # σ.-≮خج
+𼎏Σ.-≮خج; 𼎏σ.-≮خج; [B1, P1, V3, V6]; xn--4xa92520c.xn----9mcf1400a; ; ; # σ.-≮خج
+𼎏σ.-≮خج; ; [B1, P1, V3, V6]; xn--4xa92520c.xn----9mcf1400a; ; ; # σ.-≮خج
+𼎏σ.-≮خج; 𼎏σ.-≮خج; [B1, P1, V3, V6]; xn--4xa92520c.xn----9mcf1400a; ; ; # σ.-≮خج
+xn--4xa92520c.xn----9mcf1400a; 𼎏σ.-≮خج; [B1, V3, V6]; xn--4xa92520c.xn----9mcf1400a; ; ; # σ.-≮خج
+xn--3xa13520c.xn----9mcf1400a; 𼎏ς.-≮خج; [B1, V3, V6]; xn--3xa13520c.xn----9mcf1400a; ; ; # ς.-≮خج
+𼎏Σ.-≮ﲫ; 𼎏σ.-≮خج; [B1, P1, V3, V6]; xn--4xa92520c.xn----9mcf1400a; ; ; # σ.-≮خج
+𼎏Σ.-≮ﲫ; 𼎏σ.-≮خج; [B1, P1, V3, V6]; xn--4xa92520c.xn----9mcf1400a; ; ; # σ.-≮خج
+𼎏σ.-≮ﲫ; 𼎏σ.-≮خج; [B1, P1, V3, V6]; xn--4xa92520c.xn----9mcf1400a; ; ; # σ.-≮خج
+𼎏σ.-≮ﲫ; 𼎏σ.-≮خج; [B1, P1, V3, V6]; xn--4xa92520c.xn----9mcf1400a; ; ; # σ.-≮خج
+ꡗࢸܙ.񔤔󠛙్ﰾ; ꡗࢸܙ.񔤔󠛙్كي; [B5, B6, P1, V6]; xn--jnb34fs003a.xn--fhbo927bk128mpi24d; ; ; # ꡗࢸܙ.్كي
+ꡗࢸܙ.񔤔󠛙్كي; ; [B5, B6, P1, V6]; xn--jnb34fs003a.xn--fhbo927bk128mpi24d; ; ; # ꡗࢸܙ.్كي
+xn--jnb34fs003a.xn--fhbo927bk128mpi24d; ꡗࢸܙ.񔤔󠛙్كي; [B5, B6, V6]; xn--jnb34fs003a.xn--fhbo927bk128mpi24d; ; ; # ꡗࢸܙ.్كي
+𐠰ࢷ𞤌𐫭。𐋦៍𝩃; 𐠰ࢷ𞤮𐫭.𐋦៍𝩃; [B1]; xn--dzb5191kezbrw47a.xn--p4e3841jz9tf; ; ; # 𐠰ࢷ𞤮𐫭.𐋦៍𝩃
+𐠰ࢷ𞤮𐫭。𐋦៍𝩃; 𐠰ࢷ𞤮𐫭.𐋦៍𝩃; [B1]; xn--dzb5191kezbrw47a.xn--p4e3841jz9tf; ; ; # 𐠰ࢷ𞤮𐫭.𐋦៍𝩃
+xn--dzb5191kezbrw47a.xn--p4e3841jz9tf; 𐠰ࢷ𞤮𐫭.𐋦៍𝩃; [B1]; xn--dzb5191kezbrw47a.xn--p4e3841jz9tf; ; ; # 𐠰ࢷ𞤮𐫭.𐋦៍𝩃
+𐠰ࢷ𞤮𐫭.𐋦៍𝩃; ; [B1]; xn--dzb5191kezbrw47a.xn--p4e3841jz9tf; ; ; # 𐠰ࢷ𞤮𐫭.𐋦៍𝩃
+𐠰ࢷ𞤌𐫭.𐋦៍𝩃; 𐠰ࢷ𞤮𐫭.𐋦៍𝩃; [B1]; xn--dzb5191kezbrw47a.xn--p4e3841jz9tf; ; ; # 𐠰ࢷ𞤮𐫭.𐋦៍𝩃
+₂㘷--。ۓ‌𐫆𑖿; 2㘷--.ۓ‌𐫆𑖿; [B1, C1, V2, V3]; xn--2---u58b.xn--jlb820ku99nbgj; ; xn--2---u58b.xn--jlb8024k14g; [B1, V2, V3] # 2㘷--.ۓ𐫆𑖿
+₂㘷--。ۓ‌𐫆𑖿; 2㘷--.ۓ‌𐫆𑖿; [B1, C1, V2, V3]; xn--2---u58b.xn--jlb820ku99nbgj; ; xn--2---u58b.xn--jlb8024k14g; [B1, V2, V3] # 2㘷--.ۓ𐫆𑖿
+2㘷--。ۓ‌𐫆𑖿; 2㘷--.ۓ‌𐫆𑖿; [B1, C1, V2, V3]; xn--2---u58b.xn--jlb820ku99nbgj; ; xn--2---u58b.xn--jlb8024k14g; [B1, V2, V3] # 2㘷--.ۓ𐫆𑖿
+2㘷--。ۓ‌𐫆𑖿; 2㘷--.ۓ‌𐫆𑖿; [B1, C1, V2, V3]; xn--2---u58b.xn--jlb820ku99nbgj; ; xn--2---u58b.xn--jlb8024k14g; [B1, V2, V3] # 2㘷--.ۓ𐫆𑖿
+xn--2---u58b.xn--jlb8024k14g; 2㘷--.ۓ𐫆𑖿; [B1, V2, V3]; xn--2---u58b.xn--jlb8024k14g; ; ; # 2㘷--.ۓ𐫆𑖿
+xn--2---u58b.xn--jlb820ku99nbgj; 2㘷--.ۓ‌𐫆𑖿; [B1, C1, V2, V3]; xn--2---u58b.xn--jlb820ku99nbgj; ; ; # 2㘷--.ۓ𐫆𑖿
+-𘊻.ᡮح-; -𘊻.ᡮح-; [B1, B5, B6, V3]; xn----bp5n.xn----bnc231l; ; ; # -𘊻.ᡮح-
+-𘊻.ᡮح-; ; [B1, B5, B6, V3]; xn----bp5n.xn----bnc231l; ; ; # -𘊻.ᡮح-
+xn----bp5n.xn----bnc231l; -𘊻.ᡮح-; [B1, B5, B6, V3]; xn----bp5n.xn----bnc231l; ; ; # -𘊻.ᡮح-
+‌-ß。ᢣ𐹭ؿ; ‌-ß.ᢣ𐹭ؿ; [B1, B5, B6, C1]; xn----qfa550v.xn--bhb925glx3p; ; -ss.xn--bhb925glx3p; [B1, B5, B6, V3] # -ß.ᢣ𐹭ؿ
+‌-ß。ᢣ𐹭ؿ; ‌-ß.ᢣ𐹭ؿ; [B1, B5, B6, C1]; xn----qfa550v.xn--bhb925glx3p; ; -ss.xn--bhb925glx3p; [B1, B5, B6, V3] # -ß.ᢣ𐹭ؿ
+‌-SS。ᢣ𐹭ؿ; ‌-ss.ᢣ𐹭ؿ; [B1, B5, B6, C1]; xn---ss-8m0a.xn--bhb925glx3p; ; -ss.xn--bhb925glx3p; [B1, B5, B6, V3] # -ss.ᢣ𐹭ؿ
+‌-ss。ᢣ𐹭ؿ; ‌-ss.ᢣ𐹭ؿ; [B1, B5, B6, C1]; xn---ss-8m0a.xn--bhb925glx3p; ; -ss.xn--bhb925glx3p; [B1, B5, B6, V3] # -ss.ᢣ𐹭ؿ
+‌-Ss。ᢣ𐹭ؿ; ‌-ss.ᢣ𐹭ؿ; [B1, B5, B6, C1]; xn---ss-8m0a.xn--bhb925glx3p; ; -ss.xn--bhb925glx3p; [B1, B5, B6, V3] # -ss.ᢣ𐹭ؿ
+-ss.xn--bhb925glx3p; -ss.ᢣ𐹭ؿ; [B1, B5, B6, V3]; -ss.xn--bhb925glx3p; ; ; # -ss.ᢣ𐹭ؿ
+xn---ss-8m0a.xn--bhb925glx3p; ‌-ss.ᢣ𐹭ؿ; [B1, B5, B6, C1]; xn---ss-8m0a.xn--bhb925glx3p; ; ; # -ss.ᢣ𐹭ؿ
+xn----qfa550v.xn--bhb925glx3p; ‌-ß.ᢣ𐹭ؿ; [B1, B5, B6, C1]; xn----qfa550v.xn--bhb925glx3p; ; ; # -ß.ᢣ𐹭ؿ
+‌-SS。ᢣ𐹭ؿ; ‌-ss.ᢣ𐹭ؿ; [B1, B5, B6, C1]; xn---ss-8m0a.xn--bhb925glx3p; ; -ss.xn--bhb925glx3p; [B1, B5, B6, V3] # -ss.ᢣ𐹭ؿ
+‌-ss。ᢣ𐹭ؿ; ‌-ss.ᢣ𐹭ؿ; [B1, B5, B6, C1]; xn---ss-8m0a.xn--bhb925glx3p; ; -ss.xn--bhb925glx3p; [B1, B5, B6, V3] # -ss.ᢣ𐹭ؿ
+‌-Ss。ᢣ𐹭ؿ; ‌-ss.ᢣ𐹭ؿ; [B1, B5, B6, C1]; xn---ss-8m0a.xn--bhb925glx3p; ; -ss.xn--bhb925glx3p; [B1, B5, B6, V3] # -ss.ᢣ𐹭ؿ
+꧐Ӏ᮪ࣶ.눵; ꧐Ӏ᮪ࣶ.눵; [P1, V6]; xn--d5a07sn4u297k.xn--2e1b; ; ; # ꧐Ӏ᮪ࣶ.눵
+꧐Ӏ᮪ࣶ.눵; ꧐Ӏ᮪ࣶ.눵; [P1, V6]; xn--d5a07sn4u297k.xn--2e1b; ; ; # ꧐Ӏ᮪ࣶ.눵
+꧐Ӏ᮪ࣶ.눵; ; [P1, V6]; xn--d5a07sn4u297k.xn--2e1b; ; ; # ꧐Ӏ᮪ࣶ.눵
+꧐Ӏ᮪ࣶ.눵; ꧐Ӏ᮪ࣶ.눵; [P1, V6]; xn--d5a07sn4u297k.xn--2e1b; ; ; # ꧐Ӏ᮪ࣶ.눵
+꧐ӏ᮪ࣶ.눵; ꧐ӏ᮪ࣶ.눵; ; xn--s5a04sn4u297k.xn--2e1b; ; ; # ꧐ӏ᮪ࣶ.눵
+꧐ӏ᮪ࣶ.눵; ; ; xn--s5a04sn4u297k.xn--2e1b; ; ; # ꧐ӏ᮪ࣶ.눵
+xn--s5a04sn4u297k.xn--2e1b; ꧐ӏ᮪ࣶ.눵; ; xn--s5a04sn4u297k.xn--2e1b; ; ; # ꧐ӏ᮪ࣶ.눵
+xn--d5a07sn4u297k.xn--2e1b; ꧐Ӏ᮪ࣶ.눵; [V6]; xn--d5a07sn4u297k.xn--2e1b; ; ; # ꧐Ӏ᮪ࣶ.눵
+꧐ӏ᮪ࣶ.눵; ꧐ӏ᮪ࣶ.눵; ; xn--s5a04sn4u297k.xn--2e1b; ; ; # ꧐ӏ᮪ࣶ.눵
+꧐ӏ᮪ࣶ.눵; ꧐ӏ᮪ࣶ.눵; ; xn--s5a04sn4u297k.xn--2e1b; ; ; # ꧐ӏ᮪ࣶ.눵
+꣪。𖄿𑆾󠇗; ꣪.𖄿𑆾; [P1, V5, V6]; xn--3g9a.xn--ud1dz07k; ; ; # ꣪.𑆾
+꣪。𖄿𑆾󠇗; ꣪.𖄿𑆾; [P1, V5, V6]; xn--3g9a.xn--ud1dz07k; ; ; # ꣪.𑆾
+xn--3g9a.xn--ud1dz07k; ꣪.𖄿𑆾; [V5, V6]; xn--3g9a.xn--ud1dz07k; ; ; # ꣪.𑆾
+󇓓𑚳。񐷿≯⾇; 󇓓𑚳.񐷿≯舛; [P1, V6]; xn--3e2d79770c.xn--hdh0088abyy1c; ; ; # 𑚳.≯舛
+󇓓𑚳。񐷿≯⾇; 󇓓𑚳.񐷿≯舛; [P1, V6]; xn--3e2d79770c.xn--hdh0088abyy1c; ; ; # 𑚳.≯舛
+󇓓𑚳。񐷿≯舛; 󇓓𑚳.񐷿≯舛; [P1, V6]; xn--3e2d79770c.xn--hdh0088abyy1c; ; ; # 𑚳.≯舛
+󇓓𑚳。񐷿≯舛; 󇓓𑚳.񐷿≯舛; [P1, V6]; xn--3e2d79770c.xn--hdh0088abyy1c; ; ; # 𑚳.≯舛
+xn--3e2d79770c.xn--hdh0088abyy1c; 󇓓𑚳.񐷿≯舛; [V6]; xn--3e2d79770c.xn--hdh0088abyy1c; ; ; # 𑚳.≯舛
+𐫇١‌.‍‌; 𐫇١‌.‍‌; [B1, B3, C1, C2]; xn--9hb652kv99n.xn--0ugb; ; xn--9hb7344k.; [] # 𐫇١.
+𐫇١‌.‍‌; ; [B1, B3, C1, C2]; xn--9hb652kv99n.xn--0ugb; ; xn--9hb7344k.; [] # 𐫇١.
+xn--9hb7344k.; 𐫇١.; ; xn--9hb7344k.; ; ; # 𐫇١.
+𐫇١.; ; ; xn--9hb7344k.; ; ; # 𐫇١.
+xn--9hb652kv99n.xn--0ugb; 𐫇١‌.‍‌; [B1, B3, C1, C2]; xn--9hb652kv99n.xn--0ugb; ; ; # 𐫇١.
+񡅈砪≯ᢑ。≯𝩚򓴔‌; 񡅈砪≯ᢑ.≯𝩚򓴔‌; [C1, P1, V6]; xn--bbf561cf95e57y3e.xn--0ugz6gc910ejro8c; ; xn--bbf561cf95e57y3e.xn--hdh0834o7mj6b; [P1, V6] # 砪≯ᢑ.≯𝩚
+񡅈砪≯ᢑ。≯𝩚򓴔‌; 񡅈砪≯ᢑ.≯𝩚򓴔‌; [C1, P1, V6]; xn--bbf561cf95e57y3e.xn--0ugz6gc910ejro8c; ; xn--bbf561cf95e57y3e.xn--hdh0834o7mj6b; [P1, V6] # 砪≯ᢑ.≯𝩚
+񡅈砪≯ᢑ。≯𝩚򓴔‌; 񡅈砪≯ᢑ.≯𝩚򓴔‌; [C1, P1, V6]; xn--bbf561cf95e57y3e.xn--0ugz6gc910ejro8c; ; xn--bbf561cf95e57y3e.xn--hdh0834o7mj6b; [P1, V6] # 砪≯ᢑ.≯𝩚
+񡅈砪≯ᢑ。≯𝩚򓴔‌; 񡅈砪≯ᢑ.≯𝩚򓴔‌; [C1, P1, V6]; xn--bbf561cf95e57y3e.xn--0ugz6gc910ejro8c; ; xn--bbf561cf95e57y3e.xn--hdh0834o7mj6b; [P1, V6] # 砪≯ᢑ.≯𝩚
+xn--bbf561cf95e57y3e.xn--hdh0834o7mj6b; 񡅈砪≯ᢑ.≯𝩚򓴔; [V6]; xn--bbf561cf95e57y3e.xn--hdh0834o7mj6b; ; ; # 砪≯ᢑ.≯𝩚
+xn--bbf561cf95e57y3e.xn--0ugz6gc910ejro8c; 񡅈砪≯ᢑ.≯𝩚򓴔‌; [C1, V6]; xn--bbf561cf95e57y3e.xn--0ugz6gc910ejro8c; ; ; # 砪≯ᢑ.≯𝩚
+Ⴥ.𑄳㊸; Ⴥ.𑄳43; [P1, V5, V6]; xn--9nd.xn--43-274o; ; ; # Ⴥ.𑄳43
+Ⴥ.𑄳43; ; [P1, V5, V6]; xn--9nd.xn--43-274o; ; ; # Ⴥ.𑄳43
+ⴥ.𑄳43; ; [V5]; xn--tlj.xn--43-274o; ; ; # ⴥ.𑄳43
+xn--tlj.xn--43-274o; ⴥ.𑄳43; [V5]; xn--tlj.xn--43-274o; ; ; # ⴥ.𑄳43
+xn--9nd.xn--43-274o; Ⴥ.𑄳43; [V5, V6]; xn--9nd.xn--43-274o; ; ; # Ⴥ.𑄳43
+ⴥ.𑄳㊸; ⴥ.𑄳43; [V5]; xn--tlj.xn--43-274o; ; ; # ⴥ.𑄳43
+𝟎٣。Ⴒᡇࣲ𐹠; 0٣.Ⴒᡇࣲ𐹠; [B1, B5, B6, P1, V6]; xn--0-fqc.xn--10b180bnwgfy0z; ; ; # 0٣.Ⴒᡇࣲ𐹠
+0٣。Ⴒᡇࣲ𐹠; 0٣.Ⴒᡇࣲ𐹠; [B1, B5, B6, P1, V6]; xn--0-fqc.xn--10b180bnwgfy0z; ; ; # 0٣.Ⴒᡇࣲ𐹠
+0٣。ⴒᡇࣲ𐹠; 0٣.ⴒᡇࣲ𐹠; [B1, B5, B6]; xn--0-fqc.xn--10b369eivp359r; ; ; # 0٣.ⴒᡇࣲ𐹠
+xn--0-fqc.xn--10b369eivp359r; 0٣.ⴒᡇࣲ𐹠; [B1, B5, B6]; xn--0-fqc.xn--10b369eivp359r; ; ; # 0٣.ⴒᡇࣲ𐹠
+xn--0-fqc.xn--10b180bnwgfy0z; 0٣.Ⴒᡇࣲ𐹠; [B1, B5, B6, V6]; xn--0-fqc.xn--10b180bnwgfy0z; ; ; # 0٣.Ⴒᡇࣲ𐹠
+𝟎٣。ⴒᡇࣲ𐹠; 0٣.ⴒᡇࣲ𐹠; [B1, B5, B6]; xn--0-fqc.xn--10b369eivp359r; ; ; # 0٣.ⴒᡇࣲ𐹠
+񗪨󠄉ᅠྷ.񸞰꥓; 񗪨ᅠྷ.񸞰꥓; [P1, V6]; xn--kgd7493jee34a.xn--3j9au7544a; ; ; # ྷ.꥓
+񗪨󠄉ᅠྷ.񸞰꥓; 񗪨ᅠྷ.񸞰꥓; [P1, V6]; xn--kgd36f9z57y.xn--3j9au7544a; ; ; # ྷ.꥓
+xn--kgd36f9z57y.xn--3j9au7544a; 񗪨ᅠྷ.񸞰꥓; [V6]; xn--kgd36f9z57y.xn--3j9au7544a; ; ; # ྷ.꥓
+xn--kgd7493jee34a.xn--3j9au7544a; 񗪨ᅠྷ.񸞰꥓; [V6]; xn--kgd7493jee34a.xn--3j9au7544a; ; ; # ྷ.꥓
+ؘ.۳‌꥓; ; [C1, V5]; xn--6fb.xn--gmb469jjf1h; ; xn--6fb.xn--gmb0524f; [V5] # ؘ.۳꥓
+xn--6fb.xn--gmb0524f; ؘ.۳꥓; [V5]; xn--6fb.xn--gmb0524f; ; ; # ؘ.۳꥓
+xn--6fb.xn--gmb469jjf1h; ؘ.۳‌꥓; [C1, V5]; xn--6fb.xn--gmb469jjf1h; ; ; # ؘ.۳꥓
+ᡌ.︒ᢑ; ᡌ.︒ᢑ; [P1, V6]; xn--c8e.xn--bbf9168i; ; ; # ᡌ.︒ᢑ
+ᡌ.。ᢑ; ᡌ..ᢑ; [X4_2]; xn--c8e..xn--bbf; [A4_2]; ; # ᡌ..ᢑ
+xn--c8e..xn--bbf; ᡌ..ᢑ; [X4_2]; xn--c8e..xn--bbf; [A4_2]; ; # ᡌ..ᢑ
+xn--c8e.xn--bbf9168i; ᡌ.︒ᢑ; [V6]; xn--c8e.xn--bbf9168i; ; ; # ᡌ.︒ᢑ
+𑋪ၳ。𞽧; 𑋪ၳ.𞽧; [B1, B3, B6, P1, V5, V6]; xn--xld7443k.xn--4o7h; ; ; # 𑋪ၳ.
+𑋪ၳ。𞽧; 𑋪ၳ.𞽧; [B1, B3, B6, P1, V5, V6]; xn--xld7443k.xn--4o7h; ; ; # 𑋪ၳ.
+xn--xld7443k.xn--4o7h; 𑋪ၳ.𞽧; [B1, B3, B6, V5, V6]; xn--xld7443k.xn--4o7h; ; ; # 𑋪ၳ.
+𞷏。ᠢ򓘆; 𞷏.ᠢ򓘆; [P1, V6]; xn--hd7h.xn--46e66060j; ; ; # .ᠢ
+xn--hd7h.xn--46e66060j; 𞷏.ᠢ򓘆; [V6]; xn--hd7h.xn--46e66060j; ; ; # .ᠢ
+𑄳㴼.‌𐹡⃫񫺦; 𑄳㴼.‌𐹡⃫񫺦; [B1, C1, P1, V5, V6]; xn--iym9428c.xn--0ug46a7218cllv0c; ; xn--iym9428c.xn--e1g3464g08p3b; [B1, P1, V5, V6] # 𑄳㴼.𐹡⃫
+𑄳㴼.‌𐹡⃫񫺦; ; [B1, C1, P1, V5, V6]; xn--iym9428c.xn--0ug46a7218cllv0c; ; xn--iym9428c.xn--e1g3464g08p3b; [B1, P1, V5, V6] # 𑄳㴼.𐹡⃫
+xn--iym9428c.xn--e1g3464g08p3b; 𑄳㴼.𐹡⃫񫺦; [B1, V5, V6]; xn--iym9428c.xn--e1g3464g08p3b; ; ; # 𑄳㴼.𐹡⃫
+xn--iym9428c.xn--0ug46a7218cllv0c; 𑄳㴼.‌𐹡⃫񫺦; [B1, C1, V5, V6]; xn--iym9428c.xn--0ug46a7218cllv0c; ; ; # 𑄳㴼.𐹡⃫
+񠻟𐹳𑈯。̝; 񠻟𐹳𑈯.̝; [B1, B3, B5, B6, P1, V5, V6]; xn--ro0dw7dey96m.xn--eta; ; ; # 𐹳𑈯.̝
+񠻟𐹳𑈯。̝; 񠻟𐹳𑈯.̝; [B1, B3, B5, B6, P1, V5, V6]; xn--ro0dw7dey96m.xn--eta; ; ; # 𐹳𑈯.̝
+xn--ro0dw7dey96m.xn--eta; 񠻟𐹳𑈯.̝; [B1, B3, B5, B6, V5, V6]; xn--ro0dw7dey96m.xn--eta; ; ; # 𐹳𑈯.̝
+ᢊ뾜󠱴𑚶。࢝𐹥; ᢊ뾜󠱴𑚶.࢝𐹥; [P1, V6]; xn--39e4566fjv8bwmt6n.xn--myb6415k; ; ; # ᢊ뾜𑚶.𐹥
+ᢊ뾜󠱴𑚶。࢝𐹥; ᢊ뾜󠱴𑚶.࢝𐹥; [P1, V6]; xn--39e4566fjv8bwmt6n.xn--myb6415k; ; ; # ᢊ뾜𑚶.𐹥
+xn--39e4566fjv8bwmt6n.xn--myb6415k; ᢊ뾜󠱴𑚶.࢝𐹥; [V6]; xn--39e4566fjv8bwmt6n.xn--myb6415k; ; ; # ᢊ뾜𑚶.𐹥
+𐹥≠。𐋲󠧠‌; 𐹥≠.𐋲󠧠‌; [B1, C1, P1, V6]; xn--1ch6704g.xn--0ug3840g51u4g; ; xn--1ch6704g.xn--m97cw2999c; [B1, P1, V6] # 𐹥≠.𐋲
+𐹥≠。𐋲󠧠‌; 𐹥≠.𐋲󠧠‌; [B1, C1, P1, V6]; xn--1ch6704g.xn--0ug3840g51u4g; ; xn--1ch6704g.xn--m97cw2999c; [B1, P1, V6] # 𐹥≠.𐋲
+𐹥≠。𐋲󠧠‌; 𐹥≠.𐋲󠧠‌; [B1, C1, P1, V6]; xn--1ch6704g.xn--0ug3840g51u4g; ; xn--1ch6704g.xn--m97cw2999c; [B1, P1, V6] # 𐹥≠.𐋲
+𐹥≠。𐋲󠧠‌; 𐹥≠.𐋲󠧠‌; [B1, C1, P1, V6]; xn--1ch6704g.xn--0ug3840g51u4g; ; xn--1ch6704g.xn--m97cw2999c; [B1, P1, V6] # 𐹥≠.𐋲
+xn--1ch6704g.xn--m97cw2999c; 𐹥≠.𐋲󠧠; [B1, V6]; xn--1ch6704g.xn--m97cw2999c; ; ; # 𐹥≠.𐋲
+xn--1ch6704g.xn--0ug3840g51u4g; 𐹥≠.𐋲󠧠‌; [B1, C1, V6]; xn--1ch6704g.xn--0ug3840g51u4g; ; ; # 𐹥≠.𐋲
+ᅟ񙯠्.‍꥓𐪤; ᅟ񙯠्.‍꥓𐪤; [B1, C2, P1, V6]; xn--n3b542bb085j.xn--1ug6815co9wc; ; xn--n3b542bb085j.xn--3j9al95p; [B5, B6, P1, V5, V6] # ्.꥓
+ᅟ񙯠्.‍꥓𐪤; ; [B1, C2, P1, V6]; xn--n3b542bb085j.xn--1ug6815co9wc; ; xn--n3b542bb085j.xn--3j9al95p; [B5, B6, P1, V5, V6] # ्.꥓
+xn--n3b542bb085j.xn--3j9al95p; ᅟ񙯠्.꥓𐪤; [B5, B6, V5, V6]; xn--n3b542bb085j.xn--3j9al95p; ; ; # ्.꥓
+xn--n3b542bb085j.xn--1ug6815co9wc; ᅟ񙯠्.‍꥓𐪤; [B1, C2, V6]; xn--n3b542bb085j.xn--1ug6815co9wc; ; ; # ्.꥓
+򌋔󠆎󠆗𑲕。≮; 򌋔𑲕.≮; [P1, V6]; xn--4m3dv4354a.xn--gdh; ; ; # 𑲕.≮
+򌋔󠆎󠆗𑲕。≮; 򌋔𑲕.≮; [P1, V6]; xn--4m3dv4354a.xn--gdh; ; ; # 𑲕.≮
+xn--4m3dv4354a.xn--gdh; 򌋔𑲕.≮; [V6]; xn--4m3dv4354a.xn--gdh; ; ; # 𑲕.≮
+󠆦.ࣣ暀≠; .ࣣ暀≠; [P1, V5, V6, X4_2]; .xn--m0b461k3g2c; [P1, V5, V6, A4_2]; ; # .ࣣ暀≠
+󠆦.ࣣ暀≠; .ࣣ暀≠; [P1, V5, V6, X4_2]; .xn--m0b461k3g2c; [P1, V5, V6, A4_2]; ; # .ࣣ暀≠
+.xn--m0b461k3g2c; .ࣣ暀≠; [V5, V6, X4_2]; .xn--m0b461k3g2c; [V5, V6, A4_2]; ; # .ࣣ暀≠
+𐡤꯭。ﴰ򜖅ᷰ; 𐡤꯭.شم򜖅ᷰ; [B2, B3, P1, V6]; xn--429ak76o.xn--zgb8a701kox37t; ; ; # 𐡤꯭.شمᷰ
+𐡤꯭。شم򜖅ᷰ; 𐡤꯭.شم򜖅ᷰ; [B2, B3, P1, V6]; xn--429ak76o.xn--zgb8a701kox37t; ; ; # 𐡤꯭.شمᷰ
+xn--429ak76o.xn--zgb8a701kox37t; 𐡤꯭.شم򜖅ᷰ; [B2, B3, V6]; xn--429ak76o.xn--zgb8a701kox37t; ; ; # 𐡤꯭.شمᷰ
+𝉃‍⒈。Ⴌ𞱓; 𝉃‍⒈.Ⴌ𞱓; [B1, B5, B6, C2, P1, V5, V6]; xn--1ug68oq348b.xn--knd8464v; ; xn--tshz828m.xn--knd8464v; [B1, B5, B6, P1, V5, V6] # 𝉃⒈.Ⴌ
+𝉃‍1.。Ⴌ𞱓; 𝉃‍1..Ⴌ𞱓; [B1, B5, B6, C2, P1, V5, V6, X4_2]; xn--1-tgn9827q..xn--knd8464v; [B1, B5, B6, C2, P1, V5, V6, A4_2]; xn--1-px8q..xn--knd8464v; [B1, B5, B6, P1, V5, V6, A4_2] # 𝉃1..Ⴌ
+𝉃‍1.。ⴌ𞱓; 𝉃‍1..ⴌ𞱓; [B1, B5, B6, C2, P1, V5, V6, X4_2]; xn--1-tgn9827q..xn--3kj4524l; [B1, B5, B6, C2, P1, V5, V6, A4_2]; xn--1-px8q..xn--3kj4524l; [B1, B5, B6, P1, V5, V6, A4_2] # 𝉃1..ⴌ
+xn--1-px8q..xn--3kj4524l; 𝉃1..ⴌ𞱓; [B1, B5, B6, V5, V6, X4_2]; xn--1-px8q..xn--3kj4524l; [B1, B5, B6, V5, V6, A4_2]; ; # 𝉃1..ⴌ
+xn--1-tgn9827q..xn--3kj4524l; 𝉃‍1..ⴌ𞱓; [B1, B5, B6, C2, V5, V6, X4_2]; xn--1-tgn9827q..xn--3kj4524l; [B1, B5, B6, C2, V5, V6, A4_2]; ; # 𝉃1..ⴌ
+xn--1-px8q..xn--knd8464v; 𝉃1..Ⴌ𞱓; [B1, B5, B6, V5, V6, X4_2]; xn--1-px8q..xn--knd8464v; [B1, B5, B6, V5, V6, A4_2]; ; # 𝉃1..Ⴌ
+xn--1-tgn9827q..xn--knd8464v; 𝉃‍1..Ⴌ𞱓; [B1, B5, B6, C2, V5, V6, X4_2]; xn--1-tgn9827q..xn--knd8464v; [B1, B5, B6, C2, V5, V6, A4_2]; ; # 𝉃1..Ⴌ
+𝉃‍⒈。ⴌ𞱓; 𝉃‍⒈.ⴌ𞱓; [B1, B5, B6, C2, P1, V5, V6]; xn--1ug68oq348b.xn--3kj4524l; ; xn--tshz828m.xn--3kj4524l; [B1, B5, B6, P1, V5, V6] # 𝉃⒈.ⴌ
+xn--tshz828m.xn--3kj4524l; 𝉃⒈.ⴌ𞱓; [B1, B5, B6, V5, V6]; xn--tshz828m.xn--3kj4524l; ; ; # 𝉃⒈.ⴌ
+xn--1ug68oq348b.xn--3kj4524l; 𝉃‍⒈.ⴌ𞱓; [B1, B5, B6, C2, V5, V6]; xn--1ug68oq348b.xn--3kj4524l; ; ; # 𝉃⒈.ⴌ
+xn--tshz828m.xn--knd8464v; 𝉃⒈.Ⴌ𞱓; [B1, B5, B6, V5, V6]; xn--tshz828m.xn--knd8464v; ; ; # 𝉃⒈.Ⴌ
+xn--1ug68oq348b.xn--knd8464v; 𝉃‍⒈.Ⴌ𞱓; [B1, B5, B6, C2, V5, V6]; xn--1ug68oq348b.xn--knd8464v; ; ; # 𝉃⒈.Ⴌ
+󠣙੍𱫘𞤸.ς񵯞􈰔; ; [B1, P1, V6]; xn--ybc0236vjvxgt5q0g.xn--3xa03737giye6b; ; xn--ybc0236vjvxgt5q0g.xn--4xa82737giye6b; # ੍𞤸.ς
+󠣙੍𱫘𞤖.Σ񵯞􈰔; 󠣙੍𱫘𞤸.σ񵯞􈰔; [B1, P1, V6]; xn--ybc0236vjvxgt5q0g.xn--4xa82737giye6b; ; ; # ੍𞤸.σ
+󠣙੍𱫘𞤸.σ񵯞􈰔; ; [B1, P1, V6]; xn--ybc0236vjvxgt5q0g.xn--4xa82737giye6b; ; ; # ੍𞤸.σ
+󠣙੍𱫘𞤖.σ񵯞􈰔; 󠣙੍𱫘𞤸.σ񵯞􈰔; [B1, P1, V6]; xn--ybc0236vjvxgt5q0g.xn--4xa82737giye6b; ; ; # ੍𞤸.σ
+xn--ybc0236vjvxgt5q0g.xn--4xa82737giye6b; 󠣙੍𱫘𞤸.σ񵯞􈰔; [B1, V6]; xn--ybc0236vjvxgt5q0g.xn--4xa82737giye6b; ; ; # ੍𞤸.σ
+󠣙੍𱫘𞤖.ς񵯞􈰔; 󠣙੍𱫘𞤸.ς񵯞􈰔; [B1, P1, V6]; xn--ybc0236vjvxgt5q0g.xn--3xa03737giye6b; ; xn--ybc0236vjvxgt5q0g.xn--4xa82737giye6b; # ੍𞤸.ς
+xn--ybc0236vjvxgt5q0g.xn--3xa03737giye6b; 󠣙੍𱫘𞤸.ς񵯞􈰔; [B1, V6]; xn--ybc0236vjvxgt5q0g.xn--3xa03737giye6b; ; ; # ੍𞤸.ς
+󠣙੍𱫘𞤸.Σ񵯞􈰔; 󠣙੍𱫘𞤸.σ񵯞􈰔; [B1, P1, V6]; xn--ybc0236vjvxgt5q0g.xn--4xa82737giye6b; ; ; # ੍𞤸.σ
+ߓ。‌𐫀򞭱; ߓ.‌𐫀򞭱; [B1, C1, P1, V6]; xn--usb.xn--0ug9553gm3v5d; ; xn--usb.xn--pw9ci1099a; [B2, B3, P1, V6] # ߓ.𐫀
+xn--usb.xn--pw9ci1099a; ߓ.𐫀򞭱; [B2, B3, V6]; xn--usb.xn--pw9ci1099a; ; ; # ߓ.𐫀
+xn--usb.xn--0ug9553gm3v5d; ߓ.‌𐫀򞭱; [B1, C1, V6]; xn--usb.xn--0ug9553gm3v5d; ; ; # ߓ.𐫀
+ᰮ𞀝.֦ꡟ𞤕󠆖; ᰮ𞀝.֦ꡟ𞤷; [B1, B3, B6, V5]; xn--q1f4493q.xn--xcb8244fifvj; ; ; # ᰮ𞀝.֦ꡟ𞤷
+ᰮ𞀝.֦ꡟ𞤷󠆖; ᰮ𞀝.֦ꡟ𞤷; [B1, B3, B6, V5]; xn--q1f4493q.xn--xcb8244fifvj; ; ; # ᰮ𞀝.֦ꡟ𞤷
+xn--q1f4493q.xn--xcb8244fifvj; ᰮ𞀝.֦ꡟ𞤷; [B1, B3, B6, V5]; xn--q1f4493q.xn--xcb8244fifvj; ; ; # ᰮ𞀝.֦ꡟ𞤷
+䂹󾖅𐋦.‍; 䂹󾖅𐋦.‍; [C2, P1, V6]; xn--0on3543c5981i.xn--1ug; ; xn--0on3543c5981i.; [P1, V6] # 䂹𐋦.
+䂹󾖅𐋦.‍; ; [C2, P1, V6]; xn--0on3543c5981i.xn--1ug; ; xn--0on3543c5981i.; [P1, V6] # 䂹𐋦.
+xn--0on3543c5981i.; 䂹󾖅𐋦.; [V6]; xn--0on3543c5981i.; ; ; # 䂹𐋦.
+xn--0on3543c5981i.xn--1ug; 䂹󾖅𐋦.‍; [C2, V6]; xn--0on3543c5981i.xn--1ug; ; ; # 䂹𐋦.
+꧀‌𐹲‌。ݧ🄉; ꧀‌𐹲‌.ݧ🄉; [B5, B6, C1, P1, V5, V6]; xn--0uga8686hdgvd.xn--rpb6081w; ; xn--7m9an32q.xn--rpb6081w; [B5, B6, P1, V5, V6] # ꧀𐹲.ݧ🄉
+꧀‌𐹲‌。ݧ8,; ꧀‌𐹲‌.ݧ8,; [B3, B5, B6, C1, P1, V5, V6]; xn--0uga8686hdgvd.xn--8,-qle; ; xn--7m9an32q.xn--8,-qle; [B3, B5, B6, P1, V5, V6] # ꧀𐹲.ݧ8,
+xn--7m9an32q.xn--8,-qle; ꧀𐹲.ݧ8,; [B3, B5, B6, P1, V5, V6]; xn--7m9an32q.xn--8,-qle; ; ; # ꧀𐹲.ݧ8,
+xn--0uga8686hdgvd.xn--8,-qle; ꧀‌𐹲‌.ݧ8,; [B3, B5, B6, C1, P1, V5, V6]; xn--0uga8686hdgvd.xn--8,-qle; ; ; # ꧀𐹲.ݧ8,
+xn--7m9an32q.xn--rpb6081w; ꧀𐹲.ݧ🄉; [B5, B6, V5, V6]; xn--7m9an32q.xn--rpb6081w; ; ; # ꧀𐹲.ݧ🄉
+xn--0uga8686hdgvd.xn--rpb6081w; ꧀‌𐹲‌.ݧ🄉; [B5, B6, C1, V5, V6]; xn--0uga8686hdgvd.xn--rpb6081w; ; ; # ꧀𐹲.ݧ🄉
+︒。Ⴃ≯; ︒.Ⴃ≯; [P1, V6]; xn--y86c.xn--bnd622g; ; ; # ︒.Ⴃ≯
+︒。Ⴃ≯; ︒.Ⴃ≯; [P1, V6]; xn--y86c.xn--bnd622g; ; ; # ︒.Ⴃ≯
+。。Ⴃ≯; ..Ⴃ≯; [P1, V6, X4_2]; ..xn--bnd622g; [P1, V6, A4_2]; ; # ..Ⴃ≯
+。。Ⴃ≯; ..Ⴃ≯; [P1, V6, X4_2]; ..xn--bnd622g; [P1, V6, A4_2]; ; # ..Ⴃ≯
+。。ⴃ≯; ..ⴃ≯; [P1, V6, X4_2]; ..xn--hdh782b; [P1, V6, A4_2]; ; # ..ⴃ≯
+。。ⴃ≯; ..ⴃ≯; [P1, V6, X4_2]; ..xn--hdh782b; [P1, V6, A4_2]; ; # ..ⴃ≯
+..xn--hdh782b; ..ⴃ≯; [V6, X4_2]; ..xn--hdh782b; [V6, A4_2]; ; # ..ⴃ≯
+..xn--bnd622g; ..Ⴃ≯; [V6, X4_2]; ..xn--bnd622g; [V6, A4_2]; ; # ..Ⴃ≯
+︒。ⴃ≯; ︒.ⴃ≯; [P1, V6]; xn--y86c.xn--hdh782b; ; ; # ︒.ⴃ≯
+︒。ⴃ≯; ︒.ⴃ≯; [P1, V6]; xn--y86c.xn--hdh782b; ; ; # ︒.ⴃ≯
+xn--y86c.xn--hdh782b; ︒.ⴃ≯; [V6]; xn--y86c.xn--hdh782b; ; ; # ︒.ⴃ≯
+xn--y86c.xn--bnd622g; ︒.Ⴃ≯; [V6]; xn--y86c.xn--bnd622g; ; ; # ︒.Ⴃ≯
+𐹮。󠢼‍; 𐹮.󠢼‍; [B1, C2, P1, V6]; xn--mo0d.xn--1ug18431l; ; xn--mo0d.xn--wy46e; [B1, P1, V6] # 𐹮.
+𐹮。󠢼‍; 𐹮.󠢼‍; [B1, C2, P1, V6]; xn--mo0d.xn--1ug18431l; ; xn--mo0d.xn--wy46e; [B1, P1, V6] # 𐹮.
+xn--mo0d.xn--wy46e; 𐹮.󠢼; [B1, V6]; xn--mo0d.xn--wy46e; ; ; # 𐹮.
+xn--mo0d.xn--1ug18431l; 𐹮.󠢼‍; [B1, C2, V6]; xn--mo0d.xn--1ug18431l; ; ; # 𐹮.
+Ⴞ𐹨。︒ݽ‍Ⴏ; Ⴞ𐹨.︒ݽ‍Ⴏ; [B1, B5, B6, C2, P1, V6]; xn--2nd0990k.xn--eqb228bgzmvp0t; ; xn--2nd0990k.xn--eqb228b583r; [B1, B5, B6, P1, V6] # Ⴞ𐹨.︒ݽႯ
+Ⴞ𐹨。。ݽ‍Ⴏ; Ⴞ𐹨..ݽ‍Ⴏ; [B2, B3, B5, B6, C2, P1, V6, X4_2]; xn--2nd0990k..xn--eqb228bgzm; [B2, B3, B5, B6, C2, P1, V6, A4_2]; xn--2nd0990k..xn--eqb228b; [B2, B3, B5, B6, P1, V6, A4_2] # Ⴞ𐹨..ݽႯ
+ⴞ𐹨。。ݽ‍ⴏ; ⴞ𐹨..ݽ‍ⴏ; [B2, B3, B5, B6, C2, X4_2]; xn--mlju223e..xn--eqb096jpgj; [B2, B3, B5, B6, C2, A4_2]; xn--mlju223e..xn--eqb053q; [B2, B3, B5, B6, A4_2] # ⴞ𐹨..ݽⴏ
+Ⴞ𐹨。。ݽ‍ⴏ; Ⴞ𐹨..ݽ‍ⴏ; [B2, B3, B5, B6, C2, P1, V6, X4_2]; xn--2nd0990k..xn--eqb096jpgj; [B2, B3, B5, B6, C2, P1, V6, A4_2]; xn--2nd0990k..xn--eqb053q; [B2, B3, B5, B6, P1, V6, A4_2] # Ⴞ𐹨..ݽⴏ
+xn--2nd0990k..xn--eqb053q; Ⴞ𐹨..ݽⴏ; [B2, B3, B5, B6, V6, X4_2]; xn--2nd0990k..xn--eqb053q; [B2, B3, B5, B6, V6, A4_2]; ; # Ⴞ𐹨..ݽⴏ
+xn--2nd0990k..xn--eqb096jpgj; Ⴞ𐹨..ݽ‍ⴏ; [B2, B3, B5, B6, C2, V6, X4_2]; xn--2nd0990k..xn--eqb096jpgj; [B2, B3, B5, B6, C2, V6, A4_2]; ; # Ⴞ𐹨..ݽⴏ
+xn--mlju223e..xn--eqb053q; ⴞ𐹨..ݽⴏ; [B2, B3, B5, B6, X4_2]; xn--mlju223e..xn--eqb053q; [B2, B3, B5, B6, A4_2]; ; # ⴞ𐹨..ݽⴏ
+xn--mlju223e..xn--eqb096jpgj; ⴞ𐹨..ݽ‍ⴏ; [B2, B3, B5, B6, C2, X4_2]; xn--mlju223e..xn--eqb096jpgj; [B2, B3, B5, B6, C2, A4_2]; ; # ⴞ𐹨..ݽⴏ
+xn--2nd0990k..xn--eqb228b; Ⴞ𐹨..ݽႯ; [B2, B3, B5, B6, V6, X4_2]; xn--2nd0990k..xn--eqb228b; [B2, B3, B5, B6, V6, A4_2]; ; # Ⴞ𐹨..ݽႯ
+xn--2nd0990k..xn--eqb228bgzm; Ⴞ𐹨..ݽ‍Ⴏ; [B2, B3, B5, B6, C2, V6, X4_2]; xn--2nd0990k..xn--eqb228bgzm; [B2, B3, B5, B6, C2, V6, A4_2]; ; # Ⴞ𐹨..ݽႯ
+ⴞ𐹨。︒ݽ‍ⴏ; ⴞ𐹨.︒ݽ‍ⴏ; [B1, B5, B6, C2, P1, V6]; xn--mlju223e.xn--eqb096jpgj9y7r; ; xn--mlju223e.xn--eqb053qjk7l; [B1, B5, B6, P1, V6] # ⴞ𐹨.︒ݽⴏ
+Ⴞ𐹨。︒ݽ‍ⴏ; Ⴞ𐹨.︒ݽ‍ⴏ; [B1, B5, B6, C2, P1, V6]; xn--2nd0990k.xn--eqb096jpgj9y7r; ; xn--2nd0990k.xn--eqb053qjk7l; [B1, B5, B6, P1, V6] # Ⴞ𐹨.︒ݽⴏ
+xn--2nd0990k.xn--eqb053qjk7l; Ⴞ𐹨.︒ݽⴏ; [B1, B5, B6, V6]; xn--2nd0990k.xn--eqb053qjk7l; ; ; # Ⴞ𐹨.︒ݽⴏ
+xn--2nd0990k.xn--eqb096jpgj9y7r; Ⴞ𐹨.︒ݽ‍ⴏ; [B1, B5, B6, C2, V6]; xn--2nd0990k.xn--eqb096jpgj9y7r; ; ; # Ⴞ𐹨.︒ݽⴏ
+xn--mlju223e.xn--eqb053qjk7l; ⴞ𐹨.︒ݽⴏ; [B1, B5, B6, V6]; xn--mlju223e.xn--eqb053qjk7l; ; ; # ⴞ𐹨.︒ݽⴏ
+xn--mlju223e.xn--eqb096jpgj9y7r; ⴞ𐹨.︒ݽ‍ⴏ; [B1, B5, B6, C2, V6]; xn--mlju223e.xn--eqb096jpgj9y7r; ; ; # ⴞ𐹨.︒ݽⴏ
+xn--2nd0990k.xn--eqb228b583r; Ⴞ𐹨.︒ݽႯ; [B1, B5, B6, V6]; xn--2nd0990k.xn--eqb228b583r; ; ; # Ⴞ𐹨.︒ݽႯ
+xn--2nd0990k.xn--eqb228bgzmvp0t; Ⴞ𐹨.︒ݽ‍Ⴏ; [B1, B5, B6, C2, V6]; xn--2nd0990k.xn--eqb228bgzmvp0t; ; ; # Ⴞ𐹨.︒ݽႯ
+‌Ⴆ𝟹。-⃒-ߑ; ‌Ⴆ3.-⃒-ߑ; [B1, C1, P1, V3, V6]; xn--3-i0g939i.xn-----vue617w; ; xn--3-i0g.xn-----vue617w; [B1, P1, V3, V6] # Ⴆ3.-⃒-ߑ
+‌Ⴆ3。-⃒-ߑ; ‌Ⴆ3.-⃒-ߑ; [B1, C1, P1, V3, V6]; xn--3-i0g939i.xn-----vue617w; ; xn--3-i0g.xn-----vue617w; [B1, P1, V3, V6] # Ⴆ3.-⃒-ߑ
+‌ⴆ3。-⃒-ߑ; ‌ⴆ3.-⃒-ߑ; [B1, C1, V3]; xn--3-rgnv99c.xn-----vue617w; ; xn--3-lvs.xn-----vue617w; [B1, V3] # ⴆ3.-⃒-ߑ
+xn--3-lvs.xn-----vue617w; ⴆ3.-⃒-ߑ; [B1, V3]; xn--3-lvs.xn-----vue617w; ; ; # ⴆ3.-⃒-ߑ
+xn--3-rgnv99c.xn-----vue617w; ‌ⴆ3.-⃒-ߑ; [B1, C1, V3]; xn--3-rgnv99c.xn-----vue617w; ; ; # ⴆ3.-⃒-ߑ
+xn--3-i0g.xn-----vue617w; Ⴆ3.-⃒-ߑ; [B1, V3, V6]; xn--3-i0g.xn-----vue617w; ; ; # Ⴆ3.-⃒-ߑ
+xn--3-i0g939i.xn-----vue617w; ‌Ⴆ3.-⃒-ߑ; [B1, C1, V3, V6]; xn--3-i0g939i.xn-----vue617w; ; ; # Ⴆ3.-⃒-ߑ
+‌ⴆ𝟹。-⃒-ߑ; ‌ⴆ3.-⃒-ߑ; [B1, C1, V3]; xn--3-rgnv99c.xn-----vue617w; ; xn--3-lvs.xn-----vue617w; [B1, V3] # ⴆ3.-⃒-ߑ
+箃Ⴡ-󠁝。≠-🤖; 箃Ⴡ-󠁝.≠-🤖; [P1, V6]; xn----11g3013fy8x5m.xn----tfot873s; ; ; # 箃Ⴡ-.≠-🤖
+箃Ⴡ-󠁝。≠-🤖; 箃Ⴡ-󠁝.≠-🤖; [P1, V6]; xn----11g3013fy8x5m.xn----tfot873s; ; ; # 箃Ⴡ-.≠-🤖
+箃Ⴡ-󠁝。≠-🤖; 箃Ⴡ-󠁝.≠-🤖; [P1, V6]; xn----11g3013fy8x5m.xn----tfot873s; ; ; # 箃Ⴡ-.≠-🤖
+箃Ⴡ-󠁝。≠-🤖; 箃Ⴡ-󠁝.≠-🤖; [P1, V6]; xn----11g3013fy8x5m.xn----tfot873s; ; ; # 箃Ⴡ-.≠-🤖
+箃ⴡ-󠁝。≠-🤖; 箃ⴡ-󠁝.≠-🤖; [P1, V6]; xn----4wsr321ay823p.xn----tfot873s; ; ; # 箃ⴡ-.≠-🤖
+箃ⴡ-󠁝。≠-🤖; 箃ⴡ-󠁝.≠-🤖; [P1, V6]; xn----4wsr321ay823p.xn----tfot873s; ; ; # 箃ⴡ-.≠-🤖
+xn----4wsr321ay823p.xn----tfot873s; 箃ⴡ-󠁝.≠-🤖; [V6]; xn----4wsr321ay823p.xn----tfot873s; ; ; # 箃ⴡ-.≠-🤖
+xn----11g3013fy8x5m.xn----tfot873s; 箃Ⴡ-󠁝.≠-🤖; [V6]; xn----11g3013fy8x5m.xn----tfot873s; ; ; # 箃Ⴡ-.≠-🤖
+箃ⴡ-󠁝。≠-🤖; 箃ⴡ-󠁝.≠-🤖; [P1, V6]; xn----4wsr321ay823p.xn----tfot873s; ; ; # 箃ⴡ-.≠-🤖
+箃ⴡ-󠁝。≠-🤖; 箃ⴡ-󠁝.≠-🤖; [P1, V6]; xn----4wsr321ay823p.xn----tfot873s; ; ; # 箃ⴡ-.≠-🤖
+ߥ.ڵ; ; ; xn--dtb.xn--okb; ; ; # ߥ.ڵ
+xn--dtb.xn--okb; ߥ.ڵ; ; xn--dtb.xn--okb; ; ; # ߥ.ڵ
+‌‍.𞤿; ; [B1, C1, C2]; xn--0ugc.xn--3e6h; ; .xn--3e6h; [A4_2] # .𞤿
+‌‍.𞤝; ‌‍.𞤿; [B1, C1, C2]; xn--0ugc.xn--3e6h; ; .xn--3e6h; [A4_2] # .𞤿
+.xn--3e6h; .𞤿; [X4_2]; .xn--3e6h; [A4_2]; ; # .𞤿
+xn--0ugc.xn--3e6h; ‌‍.𞤿; [B1, C1, C2]; xn--0ugc.xn--3e6h; ; ; # .𞤿
+xn--3e6h; 𞤿; ; xn--3e6h; ; ; # 𞤿
+𞤿; ; ; xn--3e6h; ; ; # 𞤿
+𞤝; 𞤿; ; xn--3e6h; ; ; # 𞤿
+🜑𐹧ع.ς𑍍蜹; ; [B1]; xn--4gb3736kk4zf.xn--3xa4248dy27d; ; xn--4gb3736kk4zf.xn--4xa2248dy27d; # 🜑𐹧ع.ς𑍍蜹
+🜑𐹧ع.Σ𑍍蜹; 🜑𐹧ع.σ𑍍蜹; [B1]; xn--4gb3736kk4zf.xn--4xa2248dy27d; ; ; # 🜑𐹧ع.σ𑍍蜹
+🜑𐹧ع.σ𑍍蜹; ; [B1]; xn--4gb3736kk4zf.xn--4xa2248dy27d; ; ; # 🜑𐹧ع.σ𑍍蜹
+xn--4gb3736kk4zf.xn--4xa2248dy27d; 🜑𐹧ع.σ𑍍蜹; [B1]; xn--4gb3736kk4zf.xn--4xa2248dy27d; ; ; # 🜑𐹧ع.σ𑍍蜹
+xn--4gb3736kk4zf.xn--3xa4248dy27d; 🜑𐹧ع.ς𑍍蜹; [B1]; xn--4gb3736kk4zf.xn--3xa4248dy27d; ; ; # 🜑𐹧ع.ς𑍍蜹
+򫠐ス􆟤٩.󚃟; 򫠐ス􆟤٩.󚃟; [B5, B6, P1, V6]; xn--iib777sp230oo708a.xn--7824e; ; ; # ス٩.
+򫠐ス􆟤٩.󚃟; ; [B5, B6, P1, V6]; xn--iib777sp230oo708a.xn--7824e; ; ; # ス٩.
+xn--iib777sp230oo708a.xn--7824e; 򫠐ス􆟤٩.󚃟; [B5, B6, V6]; xn--iib777sp230oo708a.xn--7824e; ; ; # ス٩.
+𝪣򕡝.֚?ۂ; 𝪣򕡝.֚?ۂ; [B1, P1, V5, V6]; xn--8c3hu7971a.֚?ۂ; [B1, P1, V5, V6, A3]; ; # 𝪣.֚ۂ
+𝪣򕡝.֚?ۂ; 𝪣򕡝.֚?ۂ; [B1, P1, V5, V6]; xn--8c3hu7971a.֚?ۂ; [B1, P1, V5, V6, A3]; ; # 𝪣.֚ۂ
+𝪣򕡝.֚?ۂ; ; [B1, P1, V5, V6]; xn--8c3hu7971a.֚?ۂ; [B1, P1, V5, V6, A3]; ; # 𝪣.֚ۂ
+𝪣򕡝.֚?ۂ; 𝪣򕡝.֚?ۂ; [B1, P1, V5, V6]; xn--8c3hu7971a.֚?ۂ; [B1, P1, V5, V6, A3]; ; # 𝪣.֚ۂ
+xn--8c3hu7971a.֚?ۂ; 𝪣򕡝.֚?ۂ; [B1, P1, V5, V6]; xn--8c3hu7971a.֚?ۂ; [B1, P1, V5, V6, A3]; ; # 𝪣.֚ۂ
+xn--8c3hu7971a.֚?ۂ; 𝪣򕡝.֚?ۂ; [B1, P1, V5, V6]; xn--8c3hu7971a.֚?ۂ; [B1, P1, V5, V6, A3]; ; # 𝪣.֚ۂ
+XN--8C3HU7971A.֚?ۂ; 𝪣򕡝.֚?ۂ; [B1, P1, V5, V6]; xn--8c3hu7971a.֚?ۂ; [B1, P1, V5, V6, A3]; ; # 𝪣.֚ۂ
+XN--8C3HU7971A.֚?ۂ; 𝪣򕡝.֚?ۂ; [B1, P1, V5, V6]; xn--8c3hu7971a.֚?ۂ; [B1, P1, V5, V6, A3]; ; # 𝪣.֚ۂ
+Xn--8c3hu7971a.֚?ۂ; 𝪣򕡝.֚?ۂ; [B1, P1, V5, V6]; xn--8c3hu7971a.֚?ۂ; [B1, P1, V5, V6, A3]; ; # 𝪣.֚ۂ
+Xn--8c3hu7971a.֚?ۂ; 𝪣򕡝.֚?ۂ; [B1, P1, V5, V6]; xn--8c3hu7971a.֚?ۂ; [B1, P1, V5, V6, A3]; ; # 𝪣.֚ۂ
+٠򪓵‌。ݗ; ٠򪓵‌.ݗ; [B1, C1, P1, V6]; xn--8hb852ke991q.xn--bpb; ; xn--8hb82030l.xn--bpb; [B1, P1, V6] # ٠.ݗ
+xn--8hb82030l.xn--bpb; ٠򪓵.ݗ; [B1, V6]; xn--8hb82030l.xn--bpb; ; ; # ٠.ݗ
+xn--8hb852ke991q.xn--bpb; ٠򪓵‌.ݗ; [B1, C1, V6]; xn--8hb852ke991q.xn--bpb; ; ; # ٠.ݗ
+်‍‌。-‌; ်‍‌.-‌; [C1, V3, V5]; xn--bkd412fca.xn----sgn; ; xn--bkd.-; [V3, V5] # ်.-
+xn--bkd.-; ်.-; [V3, V5]; xn--bkd.-; ; ; # ်.-
+xn--bkd412fca.xn----sgn; ်‍‌.-‌; [C1, V3, V5]; xn--bkd412fca.xn----sgn; ; ; # ်.-
+︒。᭄ᡉ; ︒.᭄ᡉ; [P1, V5, V6]; xn--y86c.xn--87e93m; ; ; # ︒.᭄ᡉ
+。。᭄ᡉ; ..᭄ᡉ; [V5, X4_2]; ..xn--87e93m; [V5, A4_2]; ; # ..᭄ᡉ
+..xn--87e93m; ..᭄ᡉ; [V5, X4_2]; ..xn--87e93m; [V5, A4_2]; ; # ..᭄ᡉ
+xn--y86c.xn--87e93m; ︒.᭄ᡉ; [V5, V6]; xn--y86c.xn--87e93m; ; ; # ︒.᭄ᡉ
+ݘß。ጫᢊݨ𝟐; ݘß.ጫᢊݨ2; [B2, B3, B5]; xn--zca724a.xn--2-b5c641gfmf; ; xn--ss-gke.xn--2-b5c641gfmf; # ݘß.ጫᢊݨ2
+ݘß。ጫᢊݨ2; ݘß.ጫᢊݨ2; [B2, B3, B5]; xn--zca724a.xn--2-b5c641gfmf; ; xn--ss-gke.xn--2-b5c641gfmf; # ݘß.ጫᢊݨ2
+ݘSS。ጫᢊݨ2; ݘss.ጫᢊݨ2; [B2, B3, B5]; xn--ss-gke.xn--2-b5c641gfmf; ; ; # ݘss.ጫᢊݨ2
+ݘss。ጫᢊݨ2; ݘss.ጫᢊݨ2; [B2, B3, B5]; xn--ss-gke.xn--2-b5c641gfmf; ; ; # ݘss.ጫᢊݨ2
+xn--ss-gke.xn--2-b5c641gfmf; ݘss.ጫᢊݨ2; [B2, B3, B5]; xn--ss-gke.xn--2-b5c641gfmf; ; ; # ݘss.ጫᢊݨ2
+xn--zca724a.xn--2-b5c641gfmf; ݘß.ጫᢊݨ2; [B2, B3, B5]; xn--zca724a.xn--2-b5c641gfmf; ; ; # ݘß.ጫᢊݨ2
+ݘSS。ጫᢊݨ𝟐; ݘss.ጫᢊݨ2; [B2, B3, B5]; xn--ss-gke.xn--2-b5c641gfmf; ; ; # ݘss.ጫᢊݨ2
+ݘss。ጫᢊݨ𝟐; ݘss.ጫᢊݨ2; [B2, B3, B5]; xn--ss-gke.xn--2-b5c641gfmf; ; ; # ݘss.ጫᢊݨ2
+ݘSs。ጫᢊݨ2; ݘss.ጫᢊݨ2; [B2, B3, B5]; xn--ss-gke.xn--2-b5c641gfmf; ; ; # ݘss.ጫᢊݨ2
+ݘSs。ጫᢊݨ𝟐; ݘss.ጫᢊݨ2; [B2, B3, B5]; xn--ss-gke.xn--2-b5c641gfmf; ; ; # ݘss.ጫᢊݨ2
+߃𞶇ᚲ.ं͓𝟚্; ߃𞶇ᚲ.ं͓2্; [B1, B2, B3, P1, V5, V6]; xn--esb067enh07a.xn--2-lgb874bjxa; ; ; # ߃ᚲ.ं͓2্
+߃𞶇ᚲ.ं͓2্; ; [B1, B2, B3, P1, V5, V6]; xn--esb067enh07a.xn--2-lgb874bjxa; ; ; # ߃ᚲ.ं͓2্
+xn--esb067enh07a.xn--2-lgb874bjxa; ߃𞶇ᚲ.ं͓2্; [B1, B2, B3, V5, V6]; xn--esb067enh07a.xn--2-lgb874bjxa; ; ; # ߃ᚲ.ं͓2্
+-᮫︒‍.񒶈񥹓; ; [C2, P1, V3, V6]; xn----qmlv7tw180a.xn--x50zy803a; ; xn----qml1407i.xn--x50zy803a; [P1, V3, V6] # -᮫︒.
+-᮫。‍.񒶈񥹓; -᮫.‍.񒶈񥹓; [C2, P1, V3, V6]; xn----qml.xn--1ug.xn--x50zy803a; ; xn----qml..xn--x50zy803a; [P1, V3, V6, A4_2] # -᮫..
+xn----qml..xn--x50zy803a; -᮫..񒶈񥹓; [V3, V6, X4_2]; xn----qml..xn--x50zy803a; [V3, V6, A4_2]; ; # -᮫..
+xn----qml.xn--1ug.xn--x50zy803a; -᮫.‍.񒶈񥹓; [C2, V3, V6]; xn----qml.xn--1ug.xn--x50zy803a; ; ; # -᮫..
+xn----qml1407i.xn--x50zy803a; -᮫︒.񒶈񥹓; [V3, V6]; xn----qml1407i.xn--x50zy803a; ; ; # -᮫︒.
+xn----qmlv7tw180a.xn--x50zy803a; -᮫︒‍.񒶈񥹓; [C2, V3, V6]; xn----qmlv7tw180a.xn--x50zy803a; ; ; # -᮫︒.
+󠦮.≯𞀆; ; [P1, V6]; xn--t546e.xn--hdh5166o; ; ; # .≯𞀆
+󠦮.≯𞀆; 󠦮.≯𞀆; [P1, V6]; xn--t546e.xn--hdh5166o; ; ; # .≯𞀆
+xn--t546e.xn--hdh5166o; 󠦮.≯𞀆; [V6]; xn--t546e.xn--hdh5166o; ; ; # .≯𞀆
+-𑄳󠊗𐹩。𞮱; -𑄳󠊗𐹩.𞮱; [B1, P1, V3, V6]; xn----p26i72em2894c.xn--zw6h; ; ; # -𑄳𐹩.
+xn----p26i72em2894c.xn--zw6h; -𑄳󠊗𐹩.𞮱; [B1, V3, V6]; xn----p26i72em2894c.xn--zw6h; ; ; # -𑄳𐹩.
+ڹ.ᡳᅟ; ڹ.ᡳᅟ; [P1, V6]; xn--skb.xn--osd737a; ; ; # ڹ.ᡳ
+ڹ.ᡳᅟ; ; [P1, V6]; xn--skb.xn--osd737a; ; ; # ڹ.ᡳ
+xn--skb.xn--osd737a; ڹ.ᡳᅟ; [V6]; xn--skb.xn--osd737a; ; ; # ڹ.ᡳ
+㨛𘱎.︒𝟕ഁ; 㨛𘱎.︒7ഁ; [P1, V6]; xn--mbm8237g.xn--7-7hf1526p; ; ; # 㨛.︒7ഁ
+㨛𘱎.。7ഁ; 㨛𘱎..7ഁ; [P1, V6, X4_2]; xn--mbm8237g..xn--7-7hf; [P1, V6, A4_2]; ; # 㨛..7ഁ
+xn--mbm8237g..xn--7-7hf; 㨛𘱎..7ഁ; [V6, X4_2]; xn--mbm8237g..xn--7-7hf; [V6, A4_2]; ; # 㨛..7ഁ
+xn--mbm8237g.xn--7-7hf1526p; 㨛𘱎.︒7ഁ; [V6]; xn--mbm8237g.xn--7-7hf1526p; ; ; # 㨛.︒7ഁ
+۝𻱧-。𞷁⁤𞤣≮; ۝𻱧-.𞷁𞤣≮; [B1, B3, P1, V3, V6]; xn----dxc06304e.xn--gdh5020pk5c; ; ; # -.𞤣≮
+۝𻱧-。𞷁⁤𞤣≮; ۝𻱧-.𞷁𞤣≮; [B1, B3, P1, V3, V6]; xn----dxc06304e.xn--gdh5020pk5c; ; ; # -.𞤣≮
+۝𻱧-。𞷁⁤𞤣≮; ۝𻱧-.𞷁𞤣≮; [B1, B3, P1, V3, V6]; xn----dxc06304e.xn--gdh5020pk5c; ; ; # -.𞤣≮
+۝𻱧-。𞷁⁤𞤣≮; ۝𻱧-.𞷁𞤣≮; [B1, B3, P1, V3, V6]; xn----dxc06304e.xn--gdh5020pk5c; ; ; # -.𞤣≮
+۝𻱧-。𞷁⁤𞤁≮; ۝𻱧-.𞷁𞤣≮; [B1, B3, P1, V3, V6]; xn----dxc06304e.xn--gdh5020pk5c; ; ; # -.𞤣≮
+۝𻱧-。𞷁⁤𞤁≮; ۝𻱧-.𞷁𞤣≮; [B1, B3, P1, V3, V6]; xn----dxc06304e.xn--gdh5020pk5c; ; ; # -.𞤣≮
+xn----dxc06304e.xn--gdh5020pk5c; ۝𻱧-.𞷁𞤣≮; [B1, B3, V3, V6]; xn----dxc06304e.xn--gdh5020pk5c; ; ; # -.𞤣≮
+۝𻱧-。𞷁⁤𞤁≮; ۝𻱧-.𞷁𞤣≮; [B1, B3, P1, V3, V6]; xn----dxc06304e.xn--gdh5020pk5c; ; ; # -.𞤣≮
+۝𻱧-。𞷁⁤𞤁≮; ۝𻱧-.𞷁𞤣≮; [B1, B3, P1, V3, V6]; xn----dxc06304e.xn--gdh5020pk5c; ; ; # -.𞤣≮
+ß‌꫶ᢥ.⊶ჁႶ; ß‌꫶ᢥ.⊶ჁႶ; [C1, P1, V6]; xn--zca682johfi89m.xn--undv409k; ; xn--ss-4epx629f.xn--undv409k; [P1, V6] # ß꫶ᢥ.⊶ჁႶ
+ß‌꫶ᢥ.⊶ჁႶ; ; [C1, P1, V6]; xn--zca682johfi89m.xn--undv409k; ; xn--ss-4epx629f.xn--undv409k; [P1, V6] # ß꫶ᢥ.⊶ჁႶ
+ß‌꫶ᢥ.⊶ⴡⴖ; ; [C1]; xn--zca682johfi89m.xn--ifh802b6a; ; xn--ss-4epx629f.xn--ifh802b6a; [] # ß꫶ᢥ.⊶ⴡⴖ
+SS‌꫶ᢥ.⊶ჁႶ; ss‌꫶ᢥ.⊶ჁႶ; [C1, P1, V6]; xn--ss-4ep585bkm5p.xn--undv409k; ; xn--ss-4epx629f.xn--undv409k; [P1, V6] # ss꫶ᢥ.⊶ჁႶ
+ss‌꫶ᢥ.⊶ⴡⴖ; ; [C1]; xn--ss-4ep585bkm5p.xn--ifh802b6a; ; xn--ss-4epx629f.xn--ifh802b6a; [] # ss꫶ᢥ.⊶ⴡⴖ
+Ss‌꫶ᢥ.⊶Ⴡⴖ; ss‌꫶ᢥ.⊶Ⴡⴖ; [C1, P1, V6]; xn--ss-4ep585bkm5p.xn--5nd703gyrh; ; xn--ss-4epx629f.xn--5nd703gyrh; [P1, V6] # ss꫶ᢥ.⊶Ⴡⴖ
+xn--ss-4epx629f.xn--5nd703gyrh; ss꫶ᢥ.⊶Ⴡⴖ; [V6]; xn--ss-4epx629f.xn--5nd703gyrh; ; ; # ss꫶ᢥ.⊶Ⴡⴖ
+xn--ss-4ep585bkm5p.xn--5nd703gyrh; ss‌꫶ᢥ.⊶Ⴡⴖ; [C1, V6]; xn--ss-4ep585bkm5p.xn--5nd703gyrh; ; ; # ss꫶ᢥ.⊶Ⴡⴖ
+xn--ss-4epx629f.xn--ifh802b6a; ss꫶ᢥ.⊶ⴡⴖ; ; xn--ss-4epx629f.xn--ifh802b6a; ; ; # ss꫶ᢥ.⊶ⴡⴖ
+ss꫶ᢥ.⊶ⴡⴖ; ; ; xn--ss-4epx629f.xn--ifh802b6a; ; ; # ss꫶ᢥ.⊶ⴡⴖ
+SS꫶ᢥ.⊶ჁႶ; ss꫶ᢥ.⊶ჁႶ; [P1, V6]; xn--ss-4epx629f.xn--undv409k; ; ; # ss꫶ᢥ.⊶ჁႶ
+Ss꫶ᢥ.⊶Ⴡⴖ; ss꫶ᢥ.⊶Ⴡⴖ; [P1, V6]; xn--ss-4epx629f.xn--5nd703gyrh; ; ; # ss꫶ᢥ.⊶Ⴡⴖ
+xn--ss-4epx629f.xn--undv409k; ss꫶ᢥ.⊶ჁႶ; [V6]; xn--ss-4epx629f.xn--undv409k; ; ; # ss꫶ᢥ.⊶ჁႶ
+xn--ss-4ep585bkm5p.xn--ifh802b6a; ss‌꫶ᢥ.⊶ⴡⴖ; [C1]; xn--ss-4ep585bkm5p.xn--ifh802b6a; ; ; # ss꫶ᢥ.⊶ⴡⴖ
+xn--ss-4ep585bkm5p.xn--undv409k; ss‌꫶ᢥ.⊶ჁႶ; [C1, V6]; xn--ss-4ep585bkm5p.xn--undv409k; ; ; # ss꫶ᢥ.⊶ჁႶ
+xn--zca682johfi89m.xn--ifh802b6a; ß‌꫶ᢥ.⊶ⴡⴖ; [C1]; xn--zca682johfi89m.xn--ifh802b6a; ; ; # ß꫶ᢥ.⊶ⴡⴖ
+xn--zca682johfi89m.xn--undv409k; ß‌꫶ᢥ.⊶ჁႶ; [C1, V6]; xn--zca682johfi89m.xn--undv409k; ; ; # ß꫶ᢥ.⊶ჁႶ
+ß‌꫶ᢥ.⊶ⴡⴖ; ß‌꫶ᢥ.⊶ⴡⴖ; [C1]; xn--zca682johfi89m.xn--ifh802b6a; ; xn--ss-4epx629f.xn--ifh802b6a; [] # ß꫶ᢥ.⊶ⴡⴖ
+SS‌꫶ᢥ.⊶ჁႶ; ss‌꫶ᢥ.⊶ჁႶ; [C1, P1, V6]; xn--ss-4ep585bkm5p.xn--undv409k; ; xn--ss-4epx629f.xn--undv409k; [P1, V6] # ss꫶ᢥ.⊶ჁႶ
+ss‌꫶ᢥ.⊶ⴡⴖ; ss‌꫶ᢥ.⊶ⴡⴖ; [C1]; xn--ss-4ep585bkm5p.xn--ifh802b6a; ; xn--ss-4epx629f.xn--ifh802b6a; [] # ss꫶ᢥ.⊶ⴡⴖ
+Ss‌꫶ᢥ.⊶Ⴡⴖ; ss‌꫶ᢥ.⊶Ⴡⴖ; [C1, P1, V6]; xn--ss-4ep585bkm5p.xn--5nd703gyrh; ; xn--ss-4epx629f.xn--5nd703gyrh; [P1, V6] # ss꫶ᢥ.⊶Ⴡⴖ
+‍。ς󠁉; ‍.ς󠁉; [C2, P1, V6]; xn--1ug.xn--3xa44344p; ; .xn--4xa24344p; [P1, V6, A4_2] # .ς
+‍。Σ󠁉; ‍.σ󠁉; [C2, P1, V6]; xn--1ug.xn--4xa24344p; ; .xn--4xa24344p; [P1, V6, A4_2] # .σ
+‍。σ󠁉; ‍.σ󠁉; [C2, P1, V6]; xn--1ug.xn--4xa24344p; ; .xn--4xa24344p; [P1, V6, A4_2] # .σ
+.xn--4xa24344p; .σ󠁉; [V6, X4_2]; .xn--4xa24344p; [V6, A4_2]; ; # .σ
+xn--1ug.xn--4xa24344p; ‍.σ󠁉; [C2, V6]; xn--1ug.xn--4xa24344p; ; ; # .σ
+xn--1ug.xn--3xa44344p; ‍.ς󠁉; [C2, V6]; xn--1ug.xn--3xa44344p; ; ; # .ς
+𞵑ß.ݑ‍𞤛-; 𞵑ß.ݑ‍𞤽-; [B2, B3, C2, P1, V3, V6]; xn--zca5423w.xn----z3c011q9513b; ; xn--ss-2722a.xn----z3c03218a; [B2, B3, P1, V3, V6] # ß.ݑ𞤽-
+𞵑ß.ݑ‍𞤽-; ; [B2, B3, C2, P1, V3, V6]; xn--zca5423w.xn----z3c011q9513b; ; xn--ss-2722a.xn----z3c03218a; [B2, B3, P1, V3, V6] # ß.ݑ𞤽-
+𞵑SS.ݑ‍𞤛-; 𞵑ss.ݑ‍𞤽-; [B2, B3, C2, P1, V3, V6]; xn--ss-2722a.xn----z3c011q9513b; ; xn--ss-2722a.xn----z3c03218a; [B2, B3, P1, V3, V6] # ss.ݑ𞤽-
+𞵑ss.ݑ‍𞤽-; ; [B2, B3, C2, P1, V3, V6]; xn--ss-2722a.xn----z3c011q9513b; ; xn--ss-2722a.xn----z3c03218a; [B2, B3, P1, V3, V6] # ss.ݑ𞤽-
+𞵑Ss.ݑ‍𞤽-; 𞵑ss.ݑ‍𞤽-; [B2, B3, C2, P1, V3, V6]; xn--ss-2722a.xn----z3c011q9513b; ; xn--ss-2722a.xn----z3c03218a; [B2, B3, P1, V3, V6] # ss.ݑ𞤽-
+xn--ss-2722a.xn----z3c03218a; 𞵑ss.ݑ𞤽-; [B2, B3, V3, V6]; xn--ss-2722a.xn----z3c03218a; ; ; # ss.ݑ𞤽-
+xn--ss-2722a.xn----z3c011q9513b; 𞵑ss.ݑ‍𞤽-; [B2, B3, C2, V3, V6]; xn--ss-2722a.xn----z3c011q9513b; ; ; # ss.ݑ𞤽-
+xn--zca5423w.xn----z3c011q9513b; 𞵑ß.ݑ‍𞤽-; [B2, B3, C2, V3, V6]; xn--zca5423w.xn----z3c011q9513b; ; ; # ß.ݑ𞤽-
+𞵑ss.ݑ‍𞤛-; 𞵑ss.ݑ‍𞤽-; [B2, B3, C2, P1, V3, V6]; xn--ss-2722a.xn----z3c011q9513b; ; xn--ss-2722a.xn----z3c03218a; [B2, B3, P1, V3, V6] # ss.ݑ𞤽-
+𞵑Ss.ݑ‍𞤛-; 𞵑ss.ݑ‍𞤽-; [B2, B3, C2, P1, V3, V6]; xn--ss-2722a.xn----z3c011q9513b; ; xn--ss-2722a.xn----z3c03218a; [B2, B3, P1, V3, V6] # ss.ݑ𞤽-
+𑘽‍𞤧.𐹧󡦪-; 𑘽‍𞤧.𐹧󡦪-; [B1, C2, P1, V3, V5, V6]; xn--1ugz808gdimf.xn----k26iq1483f; ; xn--qb2ds317a.xn----k26iq1483f; [B1, P1, V3, V5, V6] # 𑘽𞤧.𐹧-
+𑘽‍𞤧.𐹧󡦪-; ; [B1, C2, P1, V3, V5, V6]; xn--1ugz808gdimf.xn----k26iq1483f; ; xn--qb2ds317a.xn----k26iq1483f; [B1, P1, V3, V5, V6] # 𑘽𞤧.𐹧-
+𑘽‍𞤅.𐹧󡦪-; 𑘽‍𞤧.𐹧󡦪-; [B1, C2, P1, V3, V5, V6]; xn--1ugz808gdimf.xn----k26iq1483f; ; xn--qb2ds317a.xn----k26iq1483f; [B1, P1, V3, V5, V6] # 𑘽𞤧.𐹧-
+xn--qb2ds317a.xn----k26iq1483f; 𑘽𞤧.𐹧󡦪-; [B1, V3, V5, V6]; xn--qb2ds317a.xn----k26iq1483f; ; ; # 𑘽𞤧.𐹧-
+xn--1ugz808gdimf.xn----k26iq1483f; 𑘽‍𞤧.𐹧󡦪-; [B1, C2, V3, V5, V6]; xn--1ugz808gdimf.xn----k26iq1483f; ; ; # 𑘽𞤧.𐹧-
+𑘽‍𞤅.𐹧󡦪-; 𑘽‍𞤧.𐹧󡦪-; [B1, C2, P1, V3, V5, V6]; xn--1ugz808gdimf.xn----k26iq1483f; ; xn--qb2ds317a.xn----k26iq1483f; [B1, P1, V3, V5, V6] # 𑘽𞤧.𐹧-
+⒒򨘙򳳠𑓀.-󞡊; ; [P1, V3, V6]; xn--3shy698frsu9dt1me.xn----x310m; ; ; # ⒒𑓀.-
+11.򨘙򳳠𑓀.-󞡊; ; [P1, V3, V6]; 11.xn--uz1d59632bxujd.xn----x310m; ; ; # 11.𑓀.-
+11.xn--uz1d59632bxujd.xn----x310m; 11.򨘙򳳠𑓀.-󞡊; [V3, V6]; 11.xn--uz1d59632bxujd.xn----x310m; ; ; # 11.𑓀.-
+xn--3shy698frsu9dt1me.xn----x310m; ⒒򨘙򳳠𑓀.-󞡊; [V3, V6]; xn--3shy698frsu9dt1me.xn----x310m; ; ; # ⒒𑓀.-
+-。‍; -.‍; [C2, V3]; -.xn--1ug; ; -.; [V3] # -.
+-。‍; -.‍; [C2, V3]; -.xn--1ug; ; -.; [V3] # -.
+-.; ; [V3]; ; ; ; # -.
+-.xn--1ug; -.‍; [C2, V3]; -.xn--1ug; ; ; # -.
+≮ᡬ.ς¹-?; ≮ᡬ.ς1-?; [P1, V6]; xn--88e732c.ς1-?; [P1, V6, A3]; xn--88e732c.σ1-?; # ≮ᡬ.ς1-
+≮ᡬ.ς¹-?; ≮ᡬ.ς1-?; [P1, V6]; xn--88e732c.ς1-?; [P1, V6, A3]; xn--88e732c.σ1-?; # ≮ᡬ.ς1-
+≮ᡬ.ς1-?; ; [P1, V6]; xn--88e732c.ς1-?; [P1, V6, A3]; xn--88e732c.σ1-?; # ≮ᡬ.ς1-
+≮ᡬ.ς1-?; ≮ᡬ.ς1-?; [P1, V6]; xn--88e732c.ς1-?; [P1, V6, A3]; xn--88e732c.σ1-?; # ≮ᡬ.ς1-
+≮ᡬ.Σ1-?; ≮ᡬ.σ1-?; [P1, V6]; xn--88e732c.σ1-?; [P1, V6, A3]; ; # ≮ᡬ.σ1-
+≮ᡬ.Σ1-?; ≮ᡬ.σ1-?; [P1, V6]; xn--88e732c.σ1-?; [P1, V6, A3]; ; # ≮ᡬ.σ1-
+≮ᡬ.σ1-?; ; [P1, V6]; xn--88e732c.σ1-?; [P1, V6, A3]; ; # ≮ᡬ.σ1-
+≮ᡬ.σ1-?; ≮ᡬ.σ1-?; [P1, V6]; xn--88e732c.σ1-?; [P1, V6, A3]; ; # ≮ᡬ.σ1-
+xn--88e732c.σ1-?; ≮ᡬ.σ1-?; [P1, V6]; xn--88e732c.σ1-?; [P1, V6, A3]; ; # ≮ᡬ.σ1-
+XN--88E732C.Σ1-?; ≮ᡬ.σ1-?; [P1, V6]; xn--88e732c.σ1-?; [P1, V6, A3]; ; # ≮ᡬ.σ1-
+xn--88e732c.ς1-?; ≮ᡬ.ς1-?; [P1, V6]; xn--88e732c.ς1-?; [P1, V6, A3]; xn--88e732c.σ1-?; # ≮ᡬ.ς1-
+Xn--88e732c.ς1-?; ≮ᡬ.ς1-?; [P1, V6]; xn--88e732c.ς1-?; [P1, V6, A3]; xn--88e732c.σ1-?; # ≮ᡬ.ς1-
+Xn--88e732c.σ1-?; ≮ᡬ.σ1-?; [P1, V6]; xn--88e732c.σ1-?; [P1, V6, A3]; ; # ≮ᡬ.σ1-
+≮ᡬ.Σ¹-?; ≮ᡬ.σ1-?; [P1, V6]; xn--88e732c.σ1-?; [P1, V6, A3]; ; # ≮ᡬ.σ1-
+≮ᡬ.Σ¹-?; ≮ᡬ.σ1-?; [P1, V6]; xn--88e732c.σ1-?; [P1, V6, A3]; ; # ≮ᡬ.σ1-
+≮ᡬ.σ¹-?; ≮ᡬ.σ1-?; [P1, V6]; xn--88e732c.σ1-?; [P1, V6, A3]; ; # ≮ᡬ.σ1-
+≮ᡬ.σ¹-?; ≮ᡬ.σ1-?; [P1, V6]; xn--88e732c.σ1-?; [P1, V6, A3]; ; # ≮ᡬ.σ1-
+ቬ򔠼񁗶。𐨬𝟠; ቬ򔠼񁗶.𐨬8; [P1, V6]; xn--d0d41273c887z.xn--8-ob5i; ; ; # ቬ.𐨬8
+ቬ򔠼񁗶。𐨬8; ቬ򔠼񁗶.𐨬8; [P1, V6]; xn--d0d41273c887z.xn--8-ob5i; ; ; # ቬ.𐨬8
+xn--d0d41273c887z.xn--8-ob5i; ቬ򔠼񁗶.𐨬8; [V6]; xn--d0d41273c887z.xn--8-ob5i; ; ; # ቬ.𐨬8
+𐱲。蔫ݦ; 𐱲.蔫ݦ; [B5, B6, P1, V6]; xn--389c.xn--qpb7055d; ; ; # .蔫ݦ
+xn--389c.xn--qpb7055d; 𐱲.蔫ݦ; [B5, B6, V6]; xn--389c.xn--qpb7055d; ; ; # .蔫ݦ
+򒲧₃。ꡚ𛇑󠄳ه; 򒲧3.ꡚ𛇑ه; [B5, B6, P1, V6]; xn--3-ep59g.xn--jhb5904fcp0h; ; ; # 3.ꡚ𛇑ه
+򒲧3。ꡚ𛇑󠄳ه; 򒲧3.ꡚ𛇑ه; [B5, B6, P1, V6]; xn--3-ep59g.xn--jhb5904fcp0h; ; ; # 3.ꡚ𛇑ه
+xn--3-ep59g.xn--jhb5904fcp0h; 򒲧3.ꡚ𛇑ه; [B5, B6, V6]; xn--3-ep59g.xn--jhb5904fcp0h; ; ; # 3.ꡚ𛇑ه
+蓸ق≠.ß; ; [B5, B6, P1, V6]; xn--ehb015lnt1e.xn--zca; ; xn--ehb015lnt1e.ss; # 蓸ق≠.ß
+蓸ق≠.ß; 蓸ق≠.ß; [B5, B6, P1, V6]; xn--ehb015lnt1e.xn--zca; ; xn--ehb015lnt1e.ss; # 蓸ق≠.ß
+蓸ق≠.SS; 蓸ق≠.ss; [B5, B6, P1, V6]; xn--ehb015lnt1e.ss; ; ; # 蓸ق≠.ss
+蓸ق≠.SS; 蓸ق≠.ss; [B5, B6, P1, V6]; xn--ehb015lnt1e.ss; ; ; # 蓸ق≠.ss
+蓸ق≠.ss; ; [B5, B6, P1, V6]; xn--ehb015lnt1e.ss; ; ; # 蓸ق≠.ss
+蓸ق≠.ss; 蓸ق≠.ss; [B5, B6, P1, V6]; xn--ehb015lnt1e.ss; ; ; # 蓸ق≠.ss
+蓸ق≠.Ss; 蓸ق≠.ss; [B5, B6, P1, V6]; xn--ehb015lnt1e.ss; ; ; # 蓸ق≠.ss
+蓸ق≠.Ss; 蓸ق≠.ss; [B5, B6, P1, V6]; xn--ehb015lnt1e.ss; ; ; # 蓸ق≠.ss
+xn--ehb015lnt1e.ss; 蓸ق≠.ss; [B5, B6, V6]; xn--ehb015lnt1e.ss; ; ; # 蓸ق≠.ss
+xn--ehb015lnt1e.xn--zca; 蓸ق≠.ß; [B5, B6, V6]; xn--ehb015lnt1e.xn--zca; ; ; # 蓸ق≠.ß
+ࡎٺී⒊.𐹹𞱩󠃪‌; ; [B1, C1, P1, V6]; xn--zib94gfziuq1a.xn--0ug3205g7eyf3c96h; ; xn--zib94gfziuq1a.xn--xo0dw109an237f; [B1, P1, V6] # ࡎٺී⒊.𐹹
+ࡎٺී3..𐹹𞱩󠃪‌; ; [B1, C1, P1, V6, X4_2]; xn--3-prc71ls9j..xn--0ug3205g7eyf3c96h; [B1, C1, P1, V6, A4_2]; xn--3-prc71ls9j..xn--xo0dw109an237f; [B1, P1, V6, A4_2] # ࡎٺී3..𐹹
+xn--3-prc71ls9j..xn--xo0dw109an237f; ࡎٺී3..𐹹𞱩󠃪; [B1, V6, X4_2]; xn--3-prc71ls9j..xn--xo0dw109an237f; [B1, V6, A4_2]; ; # ࡎٺී3..𐹹
+xn--3-prc71ls9j..xn--0ug3205g7eyf3c96h; ࡎٺී3..𐹹𞱩󠃪‌; [B1, C1, V6, X4_2]; xn--3-prc71ls9j..xn--0ug3205g7eyf3c96h; [B1, C1, V6, A4_2]; ; # ࡎٺී3..𐹹
+xn--zib94gfziuq1a.xn--xo0dw109an237f; ࡎٺී⒊.𐹹𞱩󠃪; [B1, V6]; xn--zib94gfziuq1a.xn--xo0dw109an237f; ; ; # ࡎٺී⒊.𐹹
+xn--zib94gfziuq1a.xn--0ug3205g7eyf3c96h; ࡎٺී⒊.𐹹𞱩󠃪‌; [B1, C1, V6]; xn--zib94gfziuq1a.xn--0ug3205g7eyf3c96h; ; ; # ࡎٺී⒊.𐹹
+ς‍-.Ⴣ𦟙; ; [C2, P1, V3, V6]; xn----xmb348s.xn--7nd64871a; ; xn----zmb.xn--7nd64871a; [P1, V3, V6] # ς-.Ⴣ𦟙
+ς‍-.ⴣ𦟙; ; [C2, V3]; xn----xmb348s.xn--rlj2573p; ; xn----zmb.xn--rlj2573p; [V3] # ς-.ⴣ𦟙
+Σ‍-.Ⴣ𦟙; σ‍-.Ⴣ𦟙; [C2, P1, V3, V6]; xn----zmb048s.xn--7nd64871a; ; xn----zmb.xn--7nd64871a; [P1, V3, V6] # σ-.Ⴣ𦟙
+σ‍-.ⴣ𦟙; ; [C2, V3]; xn----zmb048s.xn--rlj2573p; ; xn----zmb.xn--rlj2573p; [V3] # σ-.ⴣ𦟙
+xn----zmb.xn--rlj2573p; σ-.ⴣ𦟙; [V3]; xn----zmb.xn--rlj2573p; ; ; # σ-.ⴣ𦟙
+xn----zmb048s.xn--rlj2573p; σ‍-.ⴣ𦟙; [C2, V3]; xn----zmb048s.xn--rlj2573p; ; ; # σ-.ⴣ𦟙
+xn----zmb.xn--7nd64871a; σ-.Ⴣ𦟙; [V3, V6]; xn----zmb.xn--7nd64871a; ; ; # σ-.Ⴣ𦟙
+xn----zmb048s.xn--7nd64871a; σ‍-.Ⴣ𦟙; [C2, V3, V6]; xn----zmb048s.xn--7nd64871a; ; ; # σ-.Ⴣ𦟙
+xn----xmb348s.xn--rlj2573p; ς‍-.ⴣ𦟙; [C2, V3]; xn----xmb348s.xn--rlj2573p; ; ; # ς-.ⴣ𦟙
+xn----xmb348s.xn--7nd64871a; ς‍-.Ⴣ𦟙; [C2, V3, V6]; xn----xmb348s.xn--7nd64871a; ; ; # ς-.Ⴣ𦟙
+≠。🞳𝟲; ≠.🞳6; [P1, V6]; xn--1ch.xn--6-dl4s; ; ; # ≠.🞳6
+≠。🞳𝟲; ≠.🞳6; [P1, V6]; xn--1ch.xn--6-dl4s; ; ; # ≠.🞳6
+≠。🞳6; ≠.🞳6; [P1, V6]; xn--1ch.xn--6-dl4s; ; ; # ≠.🞳6
+≠。🞳6; ≠.🞳6; [P1, V6]; xn--1ch.xn--6-dl4s; ; ; # ≠.🞳6
+xn--1ch.xn--6-dl4s; ≠.🞳6; [V6]; xn--1ch.xn--6-dl4s; ; ; # ≠.🞳6
+󅬽.蠔; ; [P1, V6]; xn--g747d.xn--xl2a; ; ; # .蠔
+xn--g747d.xn--xl2a; 󅬽.蠔; [V6]; xn--g747d.xn--xl2a; ; ; # .蠔
+ࣦ‍.뼽; ࣦ‍.뼽; [C2, V5]; xn--p0b869i.xn--e43b; ; xn--p0b.xn--e43b; [V5] # ࣦ.뼽
+ࣦ‍.뼽; ࣦ‍.뼽; [C2, V5]; xn--p0b869i.xn--e43b; ; xn--p0b.xn--e43b; [V5] # ࣦ.뼽
+ࣦ‍.뼽; ; [C2, V5]; xn--p0b869i.xn--e43b; ; xn--p0b.xn--e43b; [V5] # ࣦ.뼽
+ࣦ‍.뼽; ࣦ‍.뼽; [C2, V5]; xn--p0b869i.xn--e43b; ; xn--p0b.xn--e43b; [V5] # ࣦ.뼽
+xn--p0b.xn--e43b; ࣦ.뼽; [V5]; xn--p0b.xn--e43b; ; ; # ࣦ.뼽
+xn--p0b869i.xn--e43b; ࣦ‍.뼽; [C2, V5]; xn--p0b869i.xn--e43b; ; ; # ࣦ.뼽
+₇்􃂷ے。👖ٵ-𞪑; 7்􃂷ے.👖اٴ-𞪑; [B1, P1, V6]; xn--7-rwc839aj3073c.xn----ymc5uv818oghka; ; ; # 7்ے.👖اٴ-
+7்􃂷ے。👖اٴ-𞪑; 7்􃂷ے.👖اٴ-𞪑; [B1, P1, V6]; xn--7-rwc839aj3073c.xn----ymc5uv818oghka; ; ; # 7்ے.👖اٴ-
+xn--7-rwc839aj3073c.xn----ymc5uv818oghka; 7்􃂷ے.👖اٴ-𞪑; [B1, V6]; xn--7-rwc839aj3073c.xn----ymc5uv818oghka; ; ; # 7்ے.👖اٴ-
+-。ݻ; -.ݻ; [B1, V3]; -.xn--cqb; ; ; # -.ݻ
+-。ݻ; -.ݻ; [B1, V3]; -.xn--cqb; ; ; # -.ݻ
+-.xn--cqb; -.ݻ; [B1, V3]; -.xn--cqb; ; ; # -.ݻ
+𑇌𵛓。-⒈ꡏܫ; 𑇌𵛓.-⒈ꡏܫ; [B1, P1, V3, V5, V6]; xn--8d1dg030h.xn----u1c466tp10j; ; ; # 𑇌.-⒈ꡏܫ
+𑇌𵛓。-1.ꡏܫ; 𑇌𵛓.-1.ꡏܫ; [B1, B5, B6, P1, V3, V5, V6]; xn--8d1dg030h.-1.xn--1nb7163f; ; ; # 𑇌.-1.ꡏܫ
+xn--8d1dg030h.-1.xn--1nb7163f; 𑇌𵛓.-1.ꡏܫ; [B1, B5, B6, V3, V5, V6]; xn--8d1dg030h.-1.xn--1nb7163f; ; ; # 𑇌.-1.ꡏܫ
+xn--8d1dg030h.xn----u1c466tp10j; 𑇌𵛓.-⒈ꡏܫ; [B1, V3, V5, V6]; xn--8d1dg030h.xn----u1c466tp10j; ; ; # 𑇌.-⒈ꡏܫ
+璛᜴گ.-; ; [B1, B5, B6, V3]; xn--ikb175frt4e.-; ; ; # 璛᜴گ.-
+xn--ikb175frt4e.-; 璛᜴گ.-; [B1, B5, B6, V3]; xn--ikb175frt4e.-; ; ; # 璛᜴گ.-
+󠆰ࢡ੍샕.𐹲휁; ࢡ੍샕.𐹲휁; [B1, B2, B3]; xn--qyb07fj857a.xn--728bv72h; ; ; # ࢡ੍샕.𐹲휁
+󠆰ࢡ੍샕.𐹲휁; ࢡ੍샕.𐹲휁; [B1, B2, B3]; xn--qyb07fj857a.xn--728bv72h; ; ; # ࢡ੍샕.𐹲휁
+󠆰ࢡ੍샕.𐹲휁; ࢡ੍샕.𐹲휁; [B1, B2, B3]; xn--qyb07fj857a.xn--728bv72h; ; ; # ࢡ੍샕.𐹲휁
+󠆰ࢡ੍샕.𐹲휁; ࢡ੍샕.𐹲휁; [B1, B2, B3]; xn--qyb07fj857a.xn--728bv72h; ; ; # ࢡ੍샕.𐹲휁
+xn--qyb07fj857a.xn--728bv72h; ࢡ੍샕.𐹲휁; [B1, B2, B3]; xn--qyb07fj857a.xn--728bv72h; ; ; # ࢡ੍샕.𐹲휁
+񍨽.񋸕; 񍨽.񋸕; [P1, V6]; xn--pr3x.xn--rv7w; ; ; # .
+񍨽.񋸕; ; [P1, V6]; xn--pr3x.xn--rv7w; ; ; # .
+xn--pr3x.xn--rv7w; 񍨽.񋸕; [V6]; xn--pr3x.xn--rv7w; ; ; # .
+ٽ𞥕。𑑂𞤶Ⴍ-; ٽ𞥕.𑑂𞤶Ⴍ-; [B1, P1, V3, V5, V6]; xn--2ib0338v.xn----w0g2740ro9vg; ; ; # ٽ𞥕.𑑂𞤶Ⴍ-
+ٽ𞥕。𑑂𞤶Ⴍ-; ٽ𞥕.𑑂𞤶Ⴍ-; [B1, P1, V3, V5, V6]; xn--2ib0338v.xn----w0g2740ro9vg; ; ; # ٽ𞥕.𑑂𞤶Ⴍ-
+ٽ𞥕。𑑂𞤶ⴍ-; ٽ𞥕.𑑂𞤶ⴍ-; [B1, V3, V5]; xn--2ib0338v.xn----zvs0199fo91g; ; ; # ٽ𞥕.𑑂𞤶ⴍ-
+ٽ𞥕。𑑂𞤔Ⴍ-; ٽ𞥕.𑑂𞤶Ⴍ-; [B1, P1, V3, V5, V6]; xn--2ib0338v.xn----w0g2740ro9vg; ; ; # ٽ𞥕.𑑂𞤶Ⴍ-
+ٽ𞥕。𑑂𞤔ⴍ-; ٽ𞥕.𑑂𞤶ⴍ-; [B1, V3, V5]; xn--2ib0338v.xn----zvs0199fo91g; ; ; # ٽ𞥕.𑑂𞤶ⴍ-
+xn--2ib0338v.xn----zvs0199fo91g; ٽ𞥕.𑑂𞤶ⴍ-; [B1, V3, V5]; xn--2ib0338v.xn----zvs0199fo91g; ; ; # ٽ𞥕.𑑂𞤶ⴍ-
+xn--2ib0338v.xn----w0g2740ro9vg; ٽ𞥕.𑑂𞤶Ⴍ-; [B1, V3, V5, V6]; xn--2ib0338v.xn----w0g2740ro9vg; ; ; # ٽ𞥕.𑑂𞤶Ⴍ-
+ٽ𞥕。𑑂𞤶ⴍ-; ٽ𞥕.𑑂𞤶ⴍ-; [B1, V3, V5]; xn--2ib0338v.xn----zvs0199fo91g; ; ; # ٽ𞥕.𑑂𞤶ⴍ-
+ٽ𞥕。𑑂𞤔Ⴍ-; ٽ𞥕.𑑂𞤶Ⴍ-; [B1, P1, V3, V5, V6]; xn--2ib0338v.xn----w0g2740ro9vg; ; ; # ٽ𞥕.𑑂𞤶Ⴍ-
+ٽ𞥕。𑑂𞤔ⴍ-; ٽ𞥕.𑑂𞤶ⴍ-; [B1, V3, V5]; xn--2ib0338v.xn----zvs0199fo91g; ; ; # ٽ𞥕.𑑂𞤶ⴍ-
+𐯀𐸉𞧏。񢚧₄Ⴋ񂹫; 𐯀𐸉𞧏.񢚧4Ⴋ񂹫; [P1, V6]; xn--039c42bq865a.xn--4-t0g49302fnrzm; ; ; # .4Ⴋ
+𐯀𐸉𞧏。񢚧4Ⴋ񂹫; 𐯀𐸉𞧏.񢚧4Ⴋ񂹫; [P1, V6]; xn--039c42bq865a.xn--4-t0g49302fnrzm; ; ; # .4Ⴋ
+𐯀𐸉𞧏。񢚧4ⴋ񂹫; 𐯀𐸉𞧏.񢚧4ⴋ񂹫; [P1, V6]; xn--039c42bq865a.xn--4-wvs27840bnrzm; ; ; # .4ⴋ
+xn--039c42bq865a.xn--4-wvs27840bnrzm; 𐯀𐸉𞧏.񢚧4ⴋ񂹫; [V6]; xn--039c42bq865a.xn--4-wvs27840bnrzm; ; ; # .4ⴋ
+xn--039c42bq865a.xn--4-t0g49302fnrzm; 𐯀𐸉𞧏.񢚧4Ⴋ񂹫; [V6]; xn--039c42bq865a.xn--4-t0g49302fnrzm; ; ; # .4Ⴋ
+𐯀𐸉𞧏。񢚧₄ⴋ񂹫; 𐯀𐸉𞧏.񢚧4ⴋ񂹫; [P1, V6]; xn--039c42bq865a.xn--4-wvs27840bnrzm; ; ; # .4ⴋ
+4ڽ︒󠑥.≠; ; [B1, P1, V6]; xn--4-kvc5601q2h50i.xn--1ch; ; ; # 4ڽ︒.≠
+4ڽ︒󠑥.≠; 4ڽ︒󠑥.≠; [B1, P1, V6]; xn--4-kvc5601q2h50i.xn--1ch; ; ; # 4ڽ︒.≠
+4ڽ。󠑥.≠; 4ڽ.󠑥.≠; [B1, P1, V6]; xn--4-kvc.xn--5136e.xn--1ch; ; ; # 4ڽ..≠
+4ڽ。󠑥.≠; 4ڽ.󠑥.≠; [B1, P1, V6]; xn--4-kvc.xn--5136e.xn--1ch; ; ; # 4ڽ..≠
+xn--4-kvc.xn--5136e.xn--1ch; 4ڽ.󠑥.≠; [B1, V6]; xn--4-kvc.xn--5136e.xn--1ch; ; ; # 4ڽ..≠
+xn--4-kvc5601q2h50i.xn--1ch; 4ڽ︒󠑥.≠; [B1, V6]; xn--4-kvc5601q2h50i.xn--1ch; ; ; # 4ڽ︒.≠
+𝟓。ۗ; 5.ۗ; [V5]; 5.xn--nlb; ; ; # 5.ۗ
+5。ۗ; 5.ۗ; [V5]; 5.xn--nlb; ; ; # 5.ۗ
+5.xn--nlb; 5.ۗ; [V5]; 5.xn--nlb; ; ; # 5.ۗ
+‌򺸩.⾕; ‌򺸩.谷; [C1, P1, V6]; xn--0ug26167i.xn--6g3a; ; xn--i183d.xn--6g3a; [P1, V6] # .谷
+‌򺸩.谷; ; [C1, P1, V6]; xn--0ug26167i.xn--6g3a; ; xn--i183d.xn--6g3a; [P1, V6] # .谷
+xn--i183d.xn--6g3a; 򺸩.谷; [V6]; xn--i183d.xn--6g3a; ; ; # .谷
+xn--0ug26167i.xn--6g3a; ‌򺸩.谷; [C1, V6]; xn--0ug26167i.xn--6g3a; ; ; # .谷
+︒󎰇‍.-ܼ‌; ; [C1, C2, P1, V3, V6]; xn--1ug1658ftw26f.xn----t2c071q; ; xn--y86c71305c.xn----t2c; [P1, V3, V6] # ︒.-ܼ
+。󎰇‍.-ܼ‌; .󎰇‍.-ܼ‌; [C1, C2, P1, V3, V6, X4_2]; .xn--1ug05310k.xn----t2c071q; [C1, C2, P1, V3, V6, A4_2]; .xn--hh50e.xn----t2c; [P1, V3, V6, A4_2] # ..-ܼ
+.xn--hh50e.xn----t2c; .󎰇.-ܼ; [V3, V6, X4_2]; .xn--hh50e.xn----t2c; [V3, V6, A4_2]; ; # ..-ܼ
+.xn--1ug05310k.xn----t2c071q; .󎰇‍.-ܼ‌; [C1, C2, V3, V6, X4_2]; .xn--1ug05310k.xn----t2c071q; [C1, C2, V3, V6, A4_2]; ; # ..-ܼ
+xn--y86c71305c.xn----t2c; ︒󎰇.-ܼ; [V3, V6]; xn--y86c71305c.xn----t2c; ; ; # ︒.-ܼ
+xn--1ug1658ftw26f.xn----t2c071q; ︒󎰇‍.-ܼ‌; [C1, C2, V3, V6]; xn--1ug1658ftw26f.xn----t2c071q; ; ; # ︒.-ܼ
+≯𞤟。ᡨ; ≯𞥁.ᡨ; [B1, P1, V6]; xn--hdhz520p.xn--48e; ; ; # ≯𞥁.ᡨ
+≯𞤟。ᡨ; ≯𞥁.ᡨ; [B1, P1, V6]; xn--hdhz520p.xn--48e; ; ; # ≯𞥁.ᡨ
+≯𞥁。ᡨ; ≯𞥁.ᡨ; [B1, P1, V6]; xn--hdhz520p.xn--48e; ; ; # ≯𞥁.ᡨ
+≯𞥁。ᡨ; ≯𞥁.ᡨ; [B1, P1, V6]; xn--hdhz520p.xn--48e; ; ; # ≯𞥁.ᡨ
+xn--hdhz520p.xn--48e; ≯𞥁.ᡨ; [B1, V6]; xn--hdhz520p.xn--48e; ; ; # ≯𞥁.ᡨ
+ུ𫫰𝨄。ܓ𐹦; ུ𫫰𝨄.ܓ𐹦; [B1, V5]; xn--ned8985uo92e.xn--dnb6395k; ; ; # ུ𫫰𝨄.ܓ𐹦
+xn--ned8985uo92e.xn--dnb6395k; ུ𫫰𝨄.ܓ𐹦; [B1, V5]; xn--ned8985uo92e.xn--dnb6395k; ; ; # ུ𫫰𝨄.ܓ𐹦
+̼ߛ⁷𝟹。𝟬; ̼ߛ73.0; [B1, V5]; xn--73-9yb648b.0; ; ; # ̼ߛ73.0
+̼ߛ73。0; ̼ߛ73.0; [B1, V5]; xn--73-9yb648b.0; ; ; # ̼ߛ73.0
+xn--73-9yb648b.0; ̼ߛ73.0; [B1, V5]; xn--73-9yb648b.0; ; ; # ̼ߛ73.0
+‍.𝟗; ‍.9; [C2]; xn--1ug.9; ; .9; [A4_2] # .9
+‍.9; ; [C2]; xn--1ug.9; ; .9; [A4_2] # .9
+.9; ; [X4_2]; ; [A4_2]; ; # .9
+xn--1ug.9; ‍.9; [C2]; xn--1ug.9; ; ; # .9
+9; ; ; ; ; ; # 9
+ݹᡭ𪕈。ڶࣙ; ݹᡭ𪕈.ڶࣙ; [B2, B3]; xn--9pb497fs270c.xn--pkb80i; ; ; # ݹᡭ𪕈.ڶࣙ
+xn--9pb497fs270c.xn--pkb80i; ݹᡭ𪕈.ڶࣙ; [B2, B3]; xn--9pb497fs270c.xn--pkb80i; ; ; # ݹᡭ𪕈.ڶࣙ
+ܦ5ߢ겙。᳴𐷚; ܦ5ߢ겙.᳴𐷚; [B1, B2, B3, P1, V5, V6]; xn--5-j1c97c2483c.xn--e7f2093h; ; ; # ܦ5ߢ겙.᳴
+ܦ5ߢ겙。᳴𐷚; ܦ5ߢ겙.᳴𐷚; [B1, B2, B3, P1, V5, V6]; xn--5-j1c97c2483c.xn--e7f2093h; ; ; # ܦ5ߢ겙.᳴
+ܦ5ߢ겙。᳴𐷚; ܦ5ߢ겙.᳴𐷚; [B1, B2, B3, P1, V5, V6]; xn--5-j1c97c2483c.xn--e7f2093h; ; ; # ܦ5ߢ겙.᳴
+ܦ5ߢ겙。᳴𐷚; ܦ5ߢ겙.᳴𐷚; [B1, B2, B3, P1, V5, V6]; xn--5-j1c97c2483c.xn--e7f2093h; ; ; # ܦ5ߢ겙.᳴
+xn--5-j1c97c2483c.xn--e7f2093h; ܦ5ߢ겙.᳴𐷚; [B1, B2, B3, V5, V6]; xn--5-j1c97c2483c.xn--e7f2093h; ; ; # ܦ5ߢ겙.᳴
+Ⴍ𿣍ꡨ֮。Ⴞ‌‌; Ⴍ𿣍ꡨ֮.Ⴞ‌‌; [C1, P1, V6]; xn--5cb347co96jug15a.xn--2nd059ea; ; xn--5cb347co96jug15a.xn--2nd; [P1, V6] # Ⴍꡨ֮.Ⴞ
+ⴍ𿣍ꡨ֮。ⴞ‌‌; ⴍ𿣍ꡨ֮.ⴞ‌‌; [C1, P1, V6]; xn--5cb172r175fug38a.xn--0uga051h; ; xn--5cb172r175fug38a.xn--mlj; [P1, V6] # ⴍꡨ֮.ⴞ
+xn--5cb172r175fug38a.xn--mlj; ⴍ𿣍ꡨ֮.ⴞ; [V6]; xn--5cb172r175fug38a.xn--mlj; ; ; # ⴍꡨ֮.ⴞ
+xn--5cb172r175fug38a.xn--0uga051h; ⴍ𿣍ꡨ֮.ⴞ‌‌; [C1, V6]; xn--5cb172r175fug38a.xn--0uga051h; ; ; # ⴍꡨ֮.ⴞ
+xn--5cb347co96jug15a.xn--2nd; Ⴍ𿣍ꡨ֮.Ⴞ; [V6]; xn--5cb347co96jug15a.xn--2nd; ; ; # Ⴍꡨ֮.Ⴞ
+xn--5cb347co96jug15a.xn--2nd059ea; Ⴍ𿣍ꡨ֮.Ⴞ‌‌; [C1, V6]; xn--5cb347co96jug15a.xn--2nd059ea; ; ; # Ⴍꡨ֮.Ⴞ
+𐋰。󑓱; 𐋰.󑓱; [P1, V6]; xn--k97c.xn--q031e; ; ; # 𐋰.
+xn--k97c.xn--q031e; 𐋰.󑓱; [V6]; xn--k97c.xn--q031e; ; ; # 𐋰.
+󡎦឴୍.𐹾; ; [B1, P1, V6]; xn--9ic364dho91z.xn--2o0d; ; ; # ୍.𐹾
+xn--9ic364dho91z.xn--2o0d; 󡎦឴୍.𐹾; [B1, V6]; xn--9ic364dho91z.xn--2o0d; ; ; # ୍.𐹾
+ࣟႫ𶿸귤.򠅼𝟢휪ૣ; ࣟႫ𶿸귤.򠅼0휪ૣ; [P1, V5, V6]; xn--i0b601b6r7l2hs0a.xn--0-8le8997mulr5f; ; ; # ࣟႫ귤.0휪ૣ
+ࣟႫ𶿸귤.򠅼𝟢휪ૣ; ࣟႫ𶿸귤.򠅼0휪ૣ; [P1, V5, V6]; xn--i0b601b6r7l2hs0a.xn--0-8le8997mulr5f; ; ; # ࣟႫ귤.0휪ૣ
+ࣟႫ𶿸귤.򠅼0휪ૣ; ; [P1, V5, V6]; xn--i0b601b6r7l2hs0a.xn--0-8le8997mulr5f; ; ; # ࣟႫ귤.0휪ૣ
+ࣟႫ𶿸귤.򠅼0휪ૣ; ࣟႫ𶿸귤.򠅼0휪ૣ; [P1, V5, V6]; xn--i0b601b6r7l2hs0a.xn--0-8le8997mulr5f; ; ; # ࣟႫ귤.0휪ૣ
+ࣟⴋ𶿸귤.򠅼0휪ૣ; ࣟⴋ𶿸귤.򠅼0휪ૣ; [P1, V5, V6]; xn--i0b436pkl2g2h42a.xn--0-8le8997mulr5f; ; ; # ࣟⴋ귤.0휪ૣ
+ࣟⴋ𶿸귤.򠅼0휪ૣ; ; [P1, V5, V6]; xn--i0b436pkl2g2h42a.xn--0-8le8997mulr5f; ; ; # ࣟⴋ귤.0휪ૣ
+xn--i0b436pkl2g2h42a.xn--0-8le8997mulr5f; ࣟⴋ𶿸귤.򠅼0휪ૣ; [V5, V6]; xn--i0b436pkl2g2h42a.xn--0-8le8997mulr5f; ; ; # ࣟⴋ귤.0휪ૣ
+xn--i0b601b6r7l2hs0a.xn--0-8le8997mulr5f; ࣟႫ𶿸귤.򠅼0휪ૣ; [V5, V6]; xn--i0b601b6r7l2hs0a.xn--0-8le8997mulr5f; ; ; # ࣟႫ귤.0휪ૣ
+ࣟⴋ𶿸귤.򠅼𝟢휪ૣ; ࣟⴋ𶿸귤.򠅼0휪ૣ; [P1, V5, V6]; xn--i0b436pkl2g2h42a.xn--0-8le8997mulr5f; ; ; # ࣟⴋ귤.0휪ૣ
+ࣟⴋ𶿸귤.򠅼𝟢휪ૣ; ࣟⴋ𶿸귤.򠅼0휪ૣ; [P1, V5, V6]; xn--i0b436pkl2g2h42a.xn--0-8le8997mulr5f; ; ; # ࣟⴋ귤.0휪ૣ
+ބ.𞡝؁; ބ.𞡝؁; [P1, V6]; xn--lqb.xn--jfb1808v; ; ; # ބ.𞡝
+ބ.𞡝؁; ; [P1, V6]; xn--lqb.xn--jfb1808v; ; ; # ބ.𞡝
+xn--lqb.xn--jfb1808v; ބ.𞡝؁; [V6]; xn--lqb.xn--jfb1808v; ; ; # ބ.𞡝
+્₃.8꣄‍🃤; ્3.8꣄‍🃤; [V5]; xn--3-yke.xn--8-ugnv982dbkwm; ; xn--3-yke.xn--8-sl4et308f; # ્3.8꣄🃤
+્3.8꣄‍🃤; ; [V5]; xn--3-yke.xn--8-ugnv982dbkwm; ; xn--3-yke.xn--8-sl4et308f; # ્3.8꣄🃤
+xn--3-yke.xn--8-sl4et308f; ્3.8꣄🃤; [V5]; xn--3-yke.xn--8-sl4et308f; ; ; # ્3.8꣄🃤
+xn--3-yke.xn--8-ugnv982dbkwm; ્3.8꣄‍🃤; [V5]; xn--3-yke.xn--8-ugnv982dbkwm; ; ; # ્3.8꣄🃤
+℻⩷𝆆。𞤠󠆁᠌; fax⩷𝆆.𞥂; [B6]; xn--fax-4c9a1676t.xn--6e6h; ; ; # fax⩷𝆆.𞥂
+FAX⩷𝆆。𞤠󠆁᠌; fax⩷𝆆.𞥂; [B6]; xn--fax-4c9a1676t.xn--6e6h; ; ; # fax⩷𝆆.𞥂
+fax⩷𝆆。𞥂󠆁᠌; fax⩷𝆆.𞥂; [B6]; xn--fax-4c9a1676t.xn--6e6h; ; ; # fax⩷𝆆.𞥂
+Fax⩷𝆆。𞤠󠆁᠌; fax⩷𝆆.𞥂; [B6]; xn--fax-4c9a1676t.xn--6e6h; ; ; # fax⩷𝆆.𞥂
+xn--fax-4c9a1676t.xn--6e6h; fax⩷𝆆.𞥂; [B6]; xn--fax-4c9a1676t.xn--6e6h; ; ; # fax⩷𝆆.𞥂
+℻⩷𝆆。𞥂󠆁᠌; fax⩷𝆆.𞥂; [B6]; xn--fax-4c9a1676t.xn--6e6h; ; ; # fax⩷𝆆.𞥂
+FAX⩷𝆆。𞥂󠆁᠌; fax⩷𝆆.𞥂; [B6]; xn--fax-4c9a1676t.xn--6e6h; ; ; # fax⩷𝆆.𞥂
+fax⩷𝆆。𞤠󠆁᠌; fax⩷𝆆.𞥂; [B6]; xn--fax-4c9a1676t.xn--6e6h; ; ; # fax⩷𝆆.𞥂
+fax⩷𝆆.𞥂; ; [B6]; xn--fax-4c9a1676t.xn--6e6h; ; ; # fax⩷𝆆.𞥂
+FAX⩷𝆆.𞤠; fax⩷𝆆.𞥂; [B6]; xn--fax-4c9a1676t.xn--6e6h; ; ; # fax⩷𝆆.𞥂
+Fax⩷𝆆.𞤠; fax⩷𝆆.𞥂; [B6]; xn--fax-4c9a1676t.xn--6e6h; ; ; # fax⩷𝆆.𞥂
+FAX⩷𝆆.𞥂; fax⩷𝆆.𞥂; [B6]; xn--fax-4c9a1676t.xn--6e6h; ; ; # fax⩷𝆆.𞥂
+Fax⩷𝆆.𞥂; fax⩷𝆆.𞥂; [B6]; xn--fax-4c9a1676t.xn--6e6h; ; ; # fax⩷𝆆.𞥂
+ꡕ≠ၞ󮿱。𐵧󠄫ᅠ; ꡕ≠ၞ󮿱.𐵧ᅠ; [B2, B3, P1, V6]; xn--cld333gn31h0158l.xn--cl7c96v; ; ; # ꡕ≠ၞ.
+ꡕ≠ၞ󮿱。𐵧󠄫ᅠ; ꡕ≠ၞ󮿱.𐵧ᅠ; [B2, B3, P1, V6]; xn--cld333gn31h0158l.xn--cl7c96v; ; ; # ꡕ≠ၞ.
+ꡕ≠ၞ󮿱。𐵧󠄫ᅠ; ꡕ≠ၞ󮿱.𐵧ᅠ; [B2, B3, P1, V6]; xn--cld333gn31h0158l.xn--psd1510k; ; ; # ꡕ≠ၞ.
+ꡕ≠ၞ󮿱。𐵧󠄫ᅠ; ꡕ≠ၞ󮿱.𐵧ᅠ; [B2, B3, P1, V6]; xn--cld333gn31h0158l.xn--psd1510k; ; ; # ꡕ≠ၞ.
+xn--cld333gn31h0158l.xn--psd1510k; ꡕ≠ၞ󮿱.𐵧ᅠ; [B2, B3, V6]; xn--cld333gn31h0158l.xn--psd1510k; ; ; # ꡕ≠ၞ.
+xn--cld333gn31h0158l.xn--cl7c96v; ꡕ≠ၞ󮿱.𐵧ᅠ; [B2, B3, V6]; xn--cld333gn31h0158l.xn--cl7c96v; ; ; # ꡕ≠ၞ.
+鱊。‌; 鱊.‌; [C1]; xn--rt6a.xn--0ug; ; xn--rt6a.; [] # 鱊.
+xn--rt6a.; 鱊.; ; xn--rt6a.; ; ; # 鱊.
+鱊.; ; ; xn--rt6a.; ; ; # 鱊.
+xn--rt6a.xn--0ug; 鱊.‌; [C1]; xn--rt6a.xn--0ug; ; ; # 鱊.
+8𐹣.𑍨; 8𐹣.𑍨; [B1, B3, B6, V5]; xn--8-d26i.xn--0p1d; ; ; # 8𐹣.𑍨
+8𐹣.𑍨; ; [B1, B3, B6, V5]; xn--8-d26i.xn--0p1d; ; ; # 8𐹣.𑍨
+xn--8-d26i.xn--0p1d; 8𐹣.𑍨; [B1, B3, B6, V5]; xn--8-d26i.xn--0p1d; ; ; # 8𐹣.𑍨
+⏹𐧀.𐫯; ⏹𐧀.𐫯; [B1]; xn--qoh9161g.xn--1x9c; ; ; # ⏹𐧀.𐫯
+⏹𐧀.𐫯; ; [B1]; xn--qoh9161g.xn--1x9c; ; ; # ⏹𐧀.𐫯
+xn--qoh9161g.xn--1x9c; ⏹𐧀.𐫯; [B1]; xn--qoh9161g.xn--1x9c; ; ; # ⏹𐧀.𐫯
+𞤺ߌ4.‍; 𞤺ߌ4.‍; [B1, C2]; xn--4-0bd15808a.xn--1ug; ; xn--4-0bd15808a.; [] # 𞤺ߌ4.
+𞤺ߌ4.‍; ; [B1, C2]; xn--4-0bd15808a.xn--1ug; ; xn--4-0bd15808a.; [] # 𞤺ߌ4.
+𞤘ߌ4.‍; 𞤺ߌ4.‍; [B1, C2]; xn--4-0bd15808a.xn--1ug; ; xn--4-0bd15808a.; [] # 𞤺ߌ4.
+xn--4-0bd15808a.; 𞤺ߌ4.; ; xn--4-0bd15808a.; ; ; # 𞤺ߌ4.
+𞤺ߌ4.; ; ; xn--4-0bd15808a.; ; ; # 𞤺ߌ4.
+𞤘ߌ4.; 𞤺ߌ4.; ; xn--4-0bd15808a.; ; ; # 𞤺ߌ4.
+xn--4-0bd15808a.xn--1ug; 𞤺ߌ4.‍; [B1, C2]; xn--4-0bd15808a.xn--1ug; ; ; # 𞤺ߌ4.
+𞤘ߌ4.‍; 𞤺ߌ4.‍; [B1, C2]; xn--4-0bd15808a.xn--1ug; ; xn--4-0bd15808a.; [] # 𞤺ߌ4.
+⒗ঁ⃯-.࣢•; ; [B1, P1, V3, V6]; xn----z0d801p6kd.xn--l0b810j; ; ; # ⒗ঁ⃯-.•
+16.ঁ⃯-.࣢•; ; [B1, P1, V3, V5, V6]; 16.xn----z0d801p.xn--l0b810j; ; ; # 16.ঁ⃯-.•
+16.xn----z0d801p.xn--l0b810j; 16.ঁ⃯-.࣢•; [B1, V3, V5, V6]; 16.xn----z0d801p.xn--l0b810j; ; ; # 16.ঁ⃯-.•
+xn----z0d801p6kd.xn--l0b810j; ⒗ঁ⃯-.࣢•; [B1, V3, V6]; xn----z0d801p6kd.xn--l0b810j; ; ; # ⒗ঁ⃯-.•
+-。䏛; -.䏛; [V3]; -.xn--xco; ; ; # -.䏛
+-。䏛; -.䏛; [V3]; -.xn--xco; ; ; # -.䏛
+-.xn--xco; -.䏛; [V3]; -.xn--xco; ; ; # -.䏛
+‌񒃠.‍; ‌񒃠.‍; [C1, C2, P1, V6]; xn--0ugz7551c.xn--1ug; ; xn--dj8y.; [P1, V6] # .
+‌񒃠.‍; ; [C1, C2, P1, V6]; xn--0ugz7551c.xn--1ug; ; xn--dj8y.; [P1, V6] # .
+xn--dj8y.; 񒃠.; [V6]; xn--dj8y.; ; ; # .
+xn--0ugz7551c.xn--1ug; ‌񒃠.‍; [C1, C2, V6]; xn--0ugz7551c.xn--1ug; ; ; # .
+⒈⓰󥣇。𐹠‍򗷦Ⴕ; ⒈⓰󥣇.𐹠‍򗷦Ⴕ; [B1, C2, P1, V6]; xn--tsh0nz9380h.xn--tnd969erj4psgl3e; ; xn--tsh0nz9380h.xn--tnd1990ke579c; [B1, P1, V6] # ⒈⓰.𐹠Ⴕ
+1.⓰󥣇。𐹠‍򗷦Ⴕ; 1.⓰󥣇.𐹠‍򗷦Ⴕ; [B1, C2, P1, V6]; 1.xn--svh00804k.xn--tnd969erj4psgl3e; ; 1.xn--svh00804k.xn--tnd1990ke579c; [B1, P1, V6] # 1.⓰.𐹠Ⴕ
+1.⓰󥣇。𐹠‍򗷦ⴕ; 1.⓰󥣇.𐹠‍򗷦ⴕ; [B1, C2, P1, V6]; 1.xn--svh00804k.xn--1ug352csp0psg45e; ; 1.xn--svh00804k.xn--dljv223ee5t2d; [B1, P1, V6] # 1.⓰.𐹠ⴕ
+1.xn--svh00804k.xn--dljv223ee5t2d; 1.⓰󥣇.𐹠򗷦ⴕ; [B1, V6]; 1.xn--svh00804k.xn--dljv223ee5t2d; ; ; # 1.⓰.𐹠ⴕ
+1.xn--svh00804k.xn--1ug352csp0psg45e; 1.⓰󥣇.𐹠‍򗷦ⴕ; [B1, C2, V6]; 1.xn--svh00804k.xn--1ug352csp0psg45e; ; ; # 1.⓰.𐹠ⴕ
+1.xn--svh00804k.xn--tnd1990ke579c; 1.⓰󥣇.𐹠򗷦Ⴕ; [B1, V6]; 1.xn--svh00804k.xn--tnd1990ke579c; ; ; # 1.⓰.𐹠Ⴕ
+1.xn--svh00804k.xn--tnd969erj4psgl3e; 1.⓰󥣇.𐹠‍򗷦Ⴕ; [B1, C2, V6]; 1.xn--svh00804k.xn--tnd969erj4psgl3e; ; ; # 1.⓰.𐹠Ⴕ
+⒈⓰󥣇。𐹠‍򗷦ⴕ; ⒈⓰󥣇.𐹠‍򗷦ⴕ; [B1, C2, P1, V6]; xn--tsh0nz9380h.xn--1ug352csp0psg45e; ; xn--tsh0nz9380h.xn--dljv223ee5t2d; [B1, P1, V6] # ⒈⓰.𐹠ⴕ
+xn--tsh0nz9380h.xn--dljv223ee5t2d; ⒈⓰󥣇.𐹠򗷦ⴕ; [B1, V6]; xn--tsh0nz9380h.xn--dljv223ee5t2d; ; ; # ⒈⓰.𐹠ⴕ
+xn--tsh0nz9380h.xn--1ug352csp0psg45e; ⒈⓰󥣇.𐹠‍򗷦ⴕ; [B1, C2, V6]; xn--tsh0nz9380h.xn--1ug352csp0psg45e; ; ; # ⒈⓰.𐹠ⴕ
+xn--tsh0nz9380h.xn--tnd1990ke579c; ⒈⓰󥣇.𐹠򗷦Ⴕ; [B1, V6]; xn--tsh0nz9380h.xn--tnd1990ke579c; ; ; # ⒈⓰.𐹠Ⴕ
+xn--tsh0nz9380h.xn--tnd969erj4psgl3e; ⒈⓰󥣇.𐹠‍򗷦Ⴕ; [B1, C2, V6]; xn--tsh0nz9380h.xn--tnd969erj4psgl3e; ; ; # ⒈⓰.𐹠Ⴕ
+𞠊ᠮ-ß。᳐効؁𷣭; 𞠊ᠮ-ß.᳐効؁𷣭; [B1, B2, B3, P1, V5, V6]; xn----qfa310pg973b.xn--jfb197i791bi6x4c; ; xn---ss-21t18904a.xn--jfb197i791bi6x4c; # 𞠊ᠮ-ß.᳐効
+𞠊ᠮ-ß。᳐効؁𷣭; 𞠊ᠮ-ß.᳐効؁𷣭; [B1, B2, B3, P1, V5, V6]; xn----qfa310pg973b.xn--jfb197i791bi6x4c; ; xn---ss-21t18904a.xn--jfb197i791bi6x4c; # 𞠊ᠮ-ß.᳐効
+𞠊ᠮ-SS。᳐効؁𷣭; 𞠊ᠮ-ss.᳐効؁𷣭; [B1, B2, B3, P1, V5, V6]; xn---ss-21t18904a.xn--jfb197i791bi6x4c; ; ; # 𞠊ᠮ-ss.᳐効
+𞠊ᠮ-ss。᳐効؁𷣭; 𞠊ᠮ-ss.᳐効؁𷣭; [B1, B2, B3, P1, V5, V6]; xn---ss-21t18904a.xn--jfb197i791bi6x4c; ; ; # 𞠊ᠮ-ss.᳐効
+𞠊ᠮ-Ss。᳐効؁𷣭; 𞠊ᠮ-ss.᳐効؁𷣭; [B1, B2, B3, P1, V5, V6]; xn---ss-21t18904a.xn--jfb197i791bi6x4c; ; ; # 𞠊ᠮ-ss.᳐効
+xn---ss-21t18904a.xn--jfb197i791bi6x4c; 𞠊ᠮ-ss.᳐効؁𷣭; [B1, B2, B3, V5, V6]; xn---ss-21t18904a.xn--jfb197i791bi6x4c; ; ; # 𞠊ᠮ-ss.᳐効
+xn----qfa310pg973b.xn--jfb197i791bi6x4c; 𞠊ᠮ-ß.᳐効؁𷣭; [B1, B2, B3, V5, V6]; xn----qfa310pg973b.xn--jfb197i791bi6x4c; ; ; # 𞠊ᠮ-ß.᳐効
+𞠊ᠮ-SS。᳐効؁𷣭; 𞠊ᠮ-ss.᳐効؁𷣭; [B1, B2, B3, P1, V5, V6]; xn---ss-21t18904a.xn--jfb197i791bi6x4c; ; ; # 𞠊ᠮ-ss.᳐効
+𞠊ᠮ-ss。᳐効؁𷣭; 𞠊ᠮ-ss.᳐効؁𷣭; [B1, B2, B3, P1, V5, V6]; xn---ss-21t18904a.xn--jfb197i791bi6x4c; ; ; # 𞠊ᠮ-ss.᳐効
+𞠊ᠮ-Ss。᳐効؁𷣭; 𞠊ᠮ-ss.᳐効؁𷣭; [B1, B2, B3, P1, V5, V6]; xn---ss-21t18904a.xn--jfb197i791bi6x4c; ; ; # 𞠊ᠮ-ss.᳐効
+𑇀.󠨱; ; [P1, V5, V6]; xn--wd1d.xn--k946e; ; ; # 𑇀.
+xn--wd1d.xn--k946e; 𑇀.󠨱; [V5, V6]; xn--wd1d.xn--k946e; ; ; # 𑇀.
+␒3ﮈ。𝟘𐨿𐹆; ␒3ڈ.0𐨿𐹆; [B1, P1, V6]; xn--3-jsc897t.xn--0-sc5iy3h; ; ; # ␒3ڈ.0𐨿
+␒3ڈ。0𐨿𐹆; ␒3ڈ.0𐨿𐹆; [B1, P1, V6]; xn--3-jsc897t.xn--0-sc5iy3h; ; ; # ␒3ڈ.0𐨿
+xn--3-jsc897t.xn--0-sc5iy3h; ␒3ڈ.0𐨿𐹆; [B1, V6]; xn--3-jsc897t.xn--0-sc5iy3h; ; ; # ␒3ڈ.0𐨿
+ݫ6ઁࢦ。ᷣ; ݫ6ઁࢦ.ᷣ; [B1, B3, B6, V5]; xn--6-h5c06gj6c.xn--7eg; ; ; # ݫ6ઁࢦ.ᷣ
+ݫ6ઁࢦ。ᷣ; ݫ6ઁࢦ.ᷣ; [B1, B3, B6, V5]; xn--6-h5c06gj6c.xn--7eg; ; ; # ݫ6ઁࢦ.ᷣ
+xn--6-h5c06gj6c.xn--7eg; ݫ6ઁࢦ.ᷣ; [B1, B3, B6, V5]; xn--6-h5c06gj6c.xn--7eg; ; ; # ݫ6ઁࢦ.ᷣ
+؅-𽤞Ⴂ。򅤶‍; ؅-𽤞Ⴂ.򅤶‍; [B1, B6, C2, P1, V6]; xn----0kc662fc152h.xn--1ugy3204f; ; xn----0kc662fc152h.xn--ss06b; [B1, P1, V6] # -Ⴂ.
+؅-𽤞ⴂ。򅤶‍; ؅-𽤞ⴂ.򅤶‍; [B1, B6, C2, P1, V6]; xn----0kc8501a5399e.xn--1ugy3204f; ; xn----0kc8501a5399e.xn--ss06b; [B1, P1, V6] # -ⴂ.
+xn----0kc8501a5399e.xn--ss06b; ؅-𽤞ⴂ.򅤶; [B1, V6]; xn----0kc8501a5399e.xn--ss06b; ; ; # -ⴂ.
+xn----0kc8501a5399e.xn--1ugy3204f; ؅-𽤞ⴂ.򅤶‍; [B1, B6, C2, V6]; xn----0kc8501a5399e.xn--1ugy3204f; ; ; # -ⴂ.
+xn----0kc662fc152h.xn--ss06b; ؅-𽤞Ⴂ.򅤶; [B1, V6]; xn----0kc662fc152h.xn--ss06b; ; ; # -Ⴂ.
+xn----0kc662fc152h.xn--1ugy3204f; ؅-𽤞Ⴂ.򅤶‍; [B1, B6, C2, V6]; xn----0kc662fc152h.xn--1ugy3204f; ; ; # -Ⴂ.
+⾆.ꡈ5≯ß; 舌.ꡈ5≯ß; [P1, V6]; xn--tc1a.xn--5-qfa988w745i; ; xn--tc1a.xn--5ss-3m2a5009e; # 舌.ꡈ5≯ß
+⾆.ꡈ5≯ß; 舌.ꡈ5≯ß; [P1, V6]; xn--tc1a.xn--5-qfa988w745i; ; xn--tc1a.xn--5ss-3m2a5009e; # 舌.ꡈ5≯ß
+舌.ꡈ5≯ß; ; [P1, V6]; xn--tc1a.xn--5-qfa988w745i; ; xn--tc1a.xn--5ss-3m2a5009e; # 舌.ꡈ5≯ß
+舌.ꡈ5≯ß; 舌.ꡈ5≯ß; [P1, V6]; xn--tc1a.xn--5-qfa988w745i; ; xn--tc1a.xn--5ss-3m2a5009e; # 舌.ꡈ5≯ß
+舌.ꡈ5≯SS; 舌.ꡈ5≯ss; [P1, V6]; xn--tc1a.xn--5ss-3m2a5009e; ; ; # 舌.ꡈ5≯ss
+舌.ꡈ5≯SS; 舌.ꡈ5≯ss; [P1, V6]; xn--tc1a.xn--5ss-3m2a5009e; ; ; # 舌.ꡈ5≯ss
+舌.ꡈ5≯ss; ; [P1, V6]; xn--tc1a.xn--5ss-3m2a5009e; ; ; # 舌.ꡈ5≯ss
+舌.ꡈ5≯ss; 舌.ꡈ5≯ss; [P1, V6]; xn--tc1a.xn--5ss-3m2a5009e; ; ; # 舌.ꡈ5≯ss
+舌.ꡈ5≯Ss; 舌.ꡈ5≯ss; [P1, V6]; xn--tc1a.xn--5ss-3m2a5009e; ; ; # 舌.ꡈ5≯ss
+舌.ꡈ5≯Ss; 舌.ꡈ5≯ss; [P1, V6]; xn--tc1a.xn--5ss-3m2a5009e; ; ; # 舌.ꡈ5≯ss
+xn--tc1a.xn--5ss-3m2a5009e; 舌.ꡈ5≯ss; [V6]; xn--tc1a.xn--5ss-3m2a5009e; ; ; # 舌.ꡈ5≯ss
+xn--tc1a.xn--5-qfa988w745i; 舌.ꡈ5≯ß; [V6]; xn--tc1a.xn--5-qfa988w745i; ; ; # 舌.ꡈ5≯ß
+⾆.ꡈ5≯SS; 舌.ꡈ5≯ss; [P1, V6]; xn--tc1a.xn--5ss-3m2a5009e; ; ; # 舌.ꡈ5≯ss
+⾆.ꡈ5≯SS; 舌.ꡈ5≯ss; [P1, V6]; xn--tc1a.xn--5ss-3m2a5009e; ; ; # 舌.ꡈ5≯ss
+⾆.ꡈ5≯ss; 舌.ꡈ5≯ss; [P1, V6]; xn--tc1a.xn--5ss-3m2a5009e; ; ; # 舌.ꡈ5≯ss
+⾆.ꡈ5≯ss; 舌.ꡈ5≯ss; [P1, V6]; xn--tc1a.xn--5ss-3m2a5009e; ; ; # 舌.ꡈ5≯ss
+⾆.ꡈ5≯Ss; 舌.ꡈ5≯ss; [P1, V6]; xn--tc1a.xn--5ss-3m2a5009e; ; ; # 舌.ꡈ5≯ss
+⾆.ꡈ5≯Ss; 舌.ꡈ5≯ss; [P1, V6]; xn--tc1a.xn--5ss-3m2a5009e; ; ; # 舌.ꡈ5≯ss
+્8‍.򾂈ݜ; ્8‍.򾂈ݜ; [B1, B5, B6, C2, P1, V5, V6]; xn--8-yke534n.xn--gpb79046m; ; xn--8-yke.xn--gpb79046m; [B1, B5, B6, P1, V5, V6] # ્8.ݜ
+્8‍.򾂈ݜ; ; [B1, B5, B6, C2, P1, V5, V6]; xn--8-yke534n.xn--gpb79046m; ; xn--8-yke.xn--gpb79046m; [B1, B5, B6, P1, V5, V6] # ્8.ݜ
+xn--8-yke.xn--gpb79046m; ્8.򾂈ݜ; [B1, B5, B6, V5, V6]; xn--8-yke.xn--gpb79046m; ; ; # ્8.ݜ
+xn--8-yke534n.xn--gpb79046m; ્8‍.򾂈ݜ; [B1, B5, B6, C2, V5, V6]; xn--8-yke534n.xn--gpb79046m; ; ; # ્8.ݜ
+򸷆ੰ≮򹓙.񞎧⁷󠯙ڶ; 򸷆ੰ≮򹓙.񞎧7󠯙ڶ; [B5, B6, P1, V6]; xn--ycc893jqh38rb6fa.xn--7-5uc53836ixt41c; ; ; # ੰ≮.7ڶ
+򸷆ੰ≮򹓙.񞎧⁷󠯙ڶ; 򸷆ੰ≮򹓙.񞎧7󠯙ڶ; [B5, B6, P1, V6]; xn--ycc893jqh38rb6fa.xn--7-5uc53836ixt41c; ; ; # ੰ≮.7ڶ
+򸷆ੰ≮򹓙.񞎧7󠯙ڶ; ; [B5, B6, P1, V6]; xn--ycc893jqh38rb6fa.xn--7-5uc53836ixt41c; ; ; # ੰ≮.7ڶ
+򸷆ੰ≮򹓙.񞎧7󠯙ڶ; 򸷆ੰ≮򹓙.񞎧7󠯙ڶ; [B5, B6, P1, V6]; xn--ycc893jqh38rb6fa.xn--7-5uc53836ixt41c; ; ; # ੰ≮.7ڶ
+xn--ycc893jqh38rb6fa.xn--7-5uc53836ixt41c; 򸷆ੰ≮򹓙.񞎧7󠯙ڶ; [B5, B6, V6]; xn--ycc893jqh38rb6fa.xn--7-5uc53836ixt41c; ; ; # ੰ≮.7ڶ
+𞤪.ς; ; ; xn--ie6h.xn--3xa; ; xn--ie6h.xn--4xa; # 𞤪.ς
+𞤈.Σ; 𞤪.σ; ; xn--ie6h.xn--4xa; ; ; # 𞤪.σ
+𞤪.σ; ; ; xn--ie6h.xn--4xa; ; ; # 𞤪.σ
+𞤈.σ; 𞤪.σ; ; xn--ie6h.xn--4xa; ; ; # 𞤪.σ
+xn--ie6h.xn--4xa; 𞤪.σ; ; xn--ie6h.xn--4xa; ; ; # 𞤪.σ
+𞤈.ς; 𞤪.ς; ; xn--ie6h.xn--3xa; ; xn--ie6h.xn--4xa; # 𞤪.ς
+xn--ie6h.xn--3xa; 𞤪.ς; ; xn--ie6h.xn--3xa; ; ; # 𞤪.ς
+𞤪.Σ; 𞤪.σ; ; xn--ie6h.xn--4xa; ; ; # 𞤪.σ
+‌Ⴚ。ς; ‌Ⴚ.ς; [C1, P1, V6]; xn--ynd759e.xn--3xa; ; xn--ynd.xn--4xa; [P1, V6] # Ⴚ.ς
+‌Ⴚ。ς; ‌Ⴚ.ς; [C1, P1, V6]; xn--ynd759e.xn--3xa; ; xn--ynd.xn--4xa; [P1, V6] # Ⴚ.ς
+‌ⴚ。ς; ‌ⴚ.ς; [C1]; xn--0ug262c.xn--3xa; ; xn--ilj.xn--4xa; [] # ⴚ.ς
+‌Ⴚ。Σ; ‌Ⴚ.σ; [C1, P1, V6]; xn--ynd759e.xn--4xa; ; xn--ynd.xn--4xa; [P1, V6] # Ⴚ.σ
+‌ⴚ。σ; ‌ⴚ.σ; [C1]; xn--0ug262c.xn--4xa; ; xn--ilj.xn--4xa; [] # ⴚ.σ
+xn--ilj.xn--4xa; ⴚ.σ; ; xn--ilj.xn--4xa; ; ; # ⴚ.σ
+ⴚ.σ; ; ; xn--ilj.xn--4xa; ; ; # ⴚ.σ
+Ⴚ.Σ; Ⴚ.σ; [P1, V6]; xn--ynd.xn--4xa; ; ; # Ⴚ.σ
+ⴚ.ς; ; ; xn--ilj.xn--3xa; ; xn--ilj.xn--4xa; # ⴚ.ς
+Ⴚ.ς; ; [P1, V6]; xn--ynd.xn--3xa; ; xn--ynd.xn--4xa; # Ⴚ.ς
+xn--ynd.xn--4xa; Ⴚ.σ; [V6]; xn--ynd.xn--4xa; ; ; # Ⴚ.σ
+xn--ynd.xn--3xa; Ⴚ.ς; [V6]; xn--ynd.xn--3xa; ; ; # Ⴚ.ς
+xn--ilj.xn--3xa; ⴚ.ς; ; xn--ilj.xn--3xa; ; ; # ⴚ.ς
+Ⴚ.σ; ; [P1, V6]; xn--ynd.xn--4xa; ; ; # Ⴚ.σ
+xn--0ug262c.xn--4xa; ‌ⴚ.σ; [C1]; xn--0ug262c.xn--4xa; ; ; # ⴚ.σ
+xn--ynd759e.xn--4xa; ‌Ⴚ.σ; [C1, V6]; xn--ynd759e.xn--4xa; ; ; # Ⴚ.σ
+xn--0ug262c.xn--3xa; ‌ⴚ.ς; [C1]; xn--0ug262c.xn--3xa; ; ; # ⴚ.ς
+xn--ynd759e.xn--3xa; ‌Ⴚ.ς; [C1, V6]; xn--ynd759e.xn--3xa; ; ; # Ⴚ.ς
+‌ⴚ。ς; ‌ⴚ.ς; [C1]; xn--0ug262c.xn--3xa; ; xn--ilj.xn--4xa; [] # ⴚ.ς
+‌Ⴚ。Σ; ‌Ⴚ.σ; [C1, P1, V6]; xn--ynd759e.xn--4xa; ; xn--ynd.xn--4xa; [P1, V6] # Ⴚ.σ
+‌ⴚ。σ; ‌ⴚ.σ; [C1]; xn--0ug262c.xn--4xa; ; xn--ilj.xn--4xa; [] # ⴚ.σ
+𞤃.𐹦; 𞤥.𐹦; [B1]; xn--de6h.xn--eo0d; ; ; # 𞤥.𐹦
+𞤃.𐹦; 𞤥.𐹦; [B1]; xn--de6h.xn--eo0d; ; ; # 𞤥.𐹦
+𞤥.𐹦; ; [B1]; xn--de6h.xn--eo0d; ; ; # 𞤥.𐹦
+xn--de6h.xn--eo0d; 𞤥.𐹦; [B1]; xn--de6h.xn--eo0d; ; ; # 𞤥.𐹦
+𞤥.𐹦; 𞤥.𐹦; [B1]; xn--de6h.xn--eo0d; ; ; # 𞤥.𐹦
+‍⾕。‌꥓̐ꡎ; ‍谷.‌꥓̐ꡎ; [C1, C2]; xn--1ug0273b.xn--0sa359l6n7g13a; ; xn--6g3a.xn--0sa8175flwa; [V5] # 谷.꥓̐ꡎ
+‍⾕。‌꥓̐ꡎ; ‍谷.‌꥓̐ꡎ; [C1, C2]; xn--1ug0273b.xn--0sa359l6n7g13a; ; xn--6g3a.xn--0sa8175flwa; [V5] # 谷.꥓̐ꡎ
+‍谷。‌꥓̐ꡎ; ‍谷.‌꥓̐ꡎ; [C1, C2]; xn--1ug0273b.xn--0sa359l6n7g13a; ; xn--6g3a.xn--0sa8175flwa; [V5] # 谷.꥓̐ꡎ
+xn--6g3a.xn--0sa8175flwa; 谷.꥓̐ꡎ; [V5]; xn--6g3a.xn--0sa8175flwa; ; ; # 谷.꥓̐ꡎ
+xn--1ug0273b.xn--0sa359l6n7g13a; ‍谷.‌꥓̐ꡎ; [C1, C2]; xn--1ug0273b.xn--0sa359l6n7g13a; ; ; # 谷.꥓̐ꡎ
+ڪ-뉔.𞤐‌; ڪ-뉔.𞤲‌; [B2, B3, C1]; xn----guc3592k.xn--0ug7611p; ; xn----guc3592k.xn--qe6h; [B2, B3] # ڪ-뉔.𞤲
+ڪ-뉔.𞤐‌; ڪ-뉔.𞤲‌; [B2, B3, C1]; xn----guc3592k.xn--0ug7611p; ; xn----guc3592k.xn--qe6h; [B2, B3] # ڪ-뉔.𞤲
+ڪ-뉔.𞤐‌; ڪ-뉔.𞤲‌; [B2, B3, C1]; xn----guc3592k.xn--0ug7611p; ; xn----guc3592k.xn--qe6h; [B2, B3] # ڪ-뉔.𞤲
+ڪ-뉔.𞤐‌; ڪ-뉔.𞤲‌; [B2, B3, C1]; xn----guc3592k.xn--0ug7611p; ; xn----guc3592k.xn--qe6h; [B2, B3] # ڪ-뉔.𞤲
+ڪ-뉔.𞤲‌; ڪ-뉔.𞤲‌; [B2, B3, C1]; xn----guc3592k.xn--0ug7611p; ; xn----guc3592k.xn--qe6h; [B2, B3] # ڪ-뉔.𞤲
+ڪ-뉔.𞤲‌; ; [B2, B3, C1]; xn----guc3592k.xn--0ug7611p; ; xn----guc3592k.xn--qe6h; [B2, B3] # ڪ-뉔.𞤲
+xn----guc3592k.xn--qe6h; ڪ-뉔.𞤲; [B2, B3]; xn----guc3592k.xn--qe6h; ; ; # ڪ-뉔.𞤲
+xn----guc3592k.xn--0ug7611p; ڪ-뉔.𞤲‌; [B2, B3, C1]; xn----guc3592k.xn--0ug7611p; ; ; # ڪ-뉔.𞤲
+ڪ-뉔.𞤲‌; ڪ-뉔.𞤲‌; [B2, B3, C1]; xn----guc3592k.xn--0ug7611p; ; xn----guc3592k.xn--qe6h; [B2, B3] # ڪ-뉔.𞤲
+ڪ-뉔.𞤲‌; ڪ-뉔.𞤲‌; [B2, B3, C1]; xn----guc3592k.xn--0ug7611p; ; xn----guc3592k.xn--qe6h; [B2, B3] # ڪ-뉔.𞤲
+񔲵5ᦛς.꣄ݻܸ᳒; 񔲵5ᦛς.꣄ݻܸ᳒; [B1, P1, V5, V6]; xn--5-ymb298ng603j.xn--fob7kk44dl41k; ; xn--5-0mb988ng603j.xn--fob7kk44dl41k; # 5ᦛς.꣄ݻܸ᳒
+񔲵5ᦛς.꣄ݻܸ᳒; 񔲵5ᦛς.꣄ݻܸ᳒; [B1, P1, V5, V6]; xn--5-ymb298ng603j.xn--fob7kk44dl41k; ; xn--5-0mb988ng603j.xn--fob7kk44dl41k; # 5ᦛς.꣄ݻܸ᳒
+񔲵5ᦛς.꣄ݻܸ᳒; ; [B1, P1, V5, V6]; xn--5-ymb298ng603j.xn--fob7kk44dl41k; ; xn--5-0mb988ng603j.xn--fob7kk44dl41k; # 5ᦛς.꣄ݻܸ᳒
+񔲵5ᦛΣ.꣄ݻܸ᳒; 񔲵5ᦛσ.꣄ݻܸ᳒; [B1, P1, V5, V6]; xn--5-0mb988ng603j.xn--fob7kk44dl41k; ; ; # 5ᦛσ.꣄ݻܸ᳒
+񔲵5ᦛσ.꣄ݻܸ᳒; ; [B1, P1, V5, V6]; xn--5-0mb988ng603j.xn--fob7kk44dl41k; ; ; # 5ᦛσ.꣄ݻܸ᳒
+xn--5-0mb988ng603j.xn--fob7kk44dl41k; 񔲵5ᦛσ.꣄ݻܸ᳒; [B1, V5, V6]; xn--5-0mb988ng603j.xn--fob7kk44dl41k; ; ; # 5ᦛσ.꣄ݻܸ᳒
+xn--5-ymb298ng603j.xn--fob7kk44dl41k; 񔲵5ᦛς.꣄ݻܸ᳒; [B1, V5, V6]; xn--5-ymb298ng603j.xn--fob7kk44dl41k; ; ; # 5ᦛς.꣄ݻܸ᳒
+񔲵5ᦛΣ.꣄ݻܸ᳒; 񔲵5ᦛσ.꣄ݻܸ᳒; [B1, P1, V5, V6]; xn--5-0mb988ng603j.xn--fob7kk44dl41k; ; ; # 5ᦛσ.꣄ݻܸ᳒
+񔲵5ᦛσ.꣄ݻܸ᳒; 񔲵5ᦛσ.꣄ݻܸ᳒; [B1, P1, V5, V6]; xn--5-0mb988ng603j.xn--fob7kk44dl41k; ; ; # 5ᦛσ.꣄ݻܸ᳒
+񔲵5ᦛΣ.꣄ݻܸ᳒; 񔲵5ᦛσ.꣄ݻܸ᳒; [B1, P1, V5, V6]; xn--5-0mb988ng603j.xn--fob7kk44dl41k; ; ; # 5ᦛσ.꣄ݻܸ᳒
+񔲵5ᦛσ.꣄ݻܸ᳒; 񔲵5ᦛσ.꣄ݻܸ᳒; [B1, P1, V5, V6]; xn--5-0mb988ng603j.xn--fob7kk44dl41k; ; ; # 5ᦛσ.꣄ݻܸ᳒
+淽。ᠾ; 淽.ᠾ; ; xn--34w.xn--x7e; ; ; # 淽.ᠾ
+xn--34w.xn--x7e; 淽.ᠾ; ; xn--34w.xn--x7e; ; ; # 淽.ᠾ
+淽.ᠾ; ; ; xn--34w.xn--x7e; ; ; # 淽.ᠾ
+𐹴𑘷。-; 𐹴𑘷.-; [B1, V3]; xn--so0do6k.-; ; ; # 𐹴𑘷.-
+xn--so0do6k.-; 𐹴𑘷.-; [B1, V3]; xn--so0do6k.-; ; ; # 𐹴𑘷.-
+򬨩Ⴓ❓。𑄨; 򬨩Ⴓ❓.𑄨; [P1, V5, V6]; xn--rnd896i0j14q.xn--k80d; ; ; # Ⴓ❓.𑄨
+򬨩Ⴓ❓。𑄨; 򬨩Ⴓ❓.𑄨; [P1, V5, V6]; xn--rnd896i0j14q.xn--k80d; ; ; # Ⴓ❓.𑄨
+򬨩ⴓ❓。𑄨; 򬨩ⴓ❓.𑄨; [P1, V5, V6]; xn--8di78qvw32y.xn--k80d; ; ; # ⴓ❓.𑄨
+xn--8di78qvw32y.xn--k80d; 򬨩ⴓ❓.𑄨; [V5, V6]; xn--8di78qvw32y.xn--k80d; ; ; # ⴓ❓.𑄨
+xn--rnd896i0j14q.xn--k80d; 򬨩Ⴓ❓.𑄨; [V5, V6]; xn--rnd896i0j14q.xn--k80d; ; ; # Ⴓ❓.𑄨
+򬨩ⴓ❓。𑄨; 򬨩ⴓ❓.𑄨; [P1, V5, V6]; xn--8di78qvw32y.xn--k80d; ; ; # ⴓ❓.𑄨
+‌𐹡𞤌Ⴇ。ßႣ; ‌𐹡𞤮Ⴇ.ßႣ; [B1, C1, P1, V6]; xn--fnd599eyj4pr50g.xn--zca681f; ; xn--fnd1201kegrf.xn--ss-fek; [B1, P1, V6] # 𐹡𞤮Ⴇ.ßႣ
+‌𐹡𞤌Ⴇ。ßႣ; ‌𐹡𞤮Ⴇ.ßႣ; [B1, C1, P1, V6]; xn--fnd599eyj4pr50g.xn--zca681f; ; xn--fnd1201kegrf.xn--ss-fek; [B1, P1, V6] # 𐹡𞤮Ⴇ.ßႣ
+‌𐹡𞤮ⴇ。ßⴃ; ‌𐹡𞤮ⴇ.ßⴃ; [B1, C1]; xn--0ug332c3q0pr56g.xn--zca417t; ; xn--ykj9323eegwf.xn--ss-151a; [B1] # 𐹡𞤮ⴇ.ßⴃ
+‌𐹡𞤌Ⴇ。SSႣ; ‌𐹡𞤮Ⴇ.ssႣ; [B1, C1, P1, V6]; xn--fnd599eyj4pr50g.xn--ss-fek; ; xn--fnd1201kegrf.xn--ss-fek; [B1, P1, V6] # 𐹡𞤮Ⴇ.ssႣ
+‌𐹡𞤮ⴇ。ssⴃ; ‌𐹡𞤮ⴇ.ssⴃ; [B1, C1]; xn--0ug332c3q0pr56g.xn--ss-151a; ; xn--ykj9323eegwf.xn--ss-151a; [B1] # 𐹡𞤮ⴇ.ssⴃ
+‌𐹡𞤌ⴇ。Ssⴃ; ‌𐹡𞤮ⴇ.ssⴃ; [B1, C1]; xn--0ug332c3q0pr56g.xn--ss-151a; ; xn--ykj9323eegwf.xn--ss-151a; [B1] # 𐹡𞤮ⴇ.ssⴃ
+xn--ykj9323eegwf.xn--ss-151a; 𐹡𞤮ⴇ.ssⴃ; [B1]; xn--ykj9323eegwf.xn--ss-151a; ; ; # 𐹡𞤮ⴇ.ssⴃ
+xn--0ug332c3q0pr56g.xn--ss-151a; ‌𐹡𞤮ⴇ.ssⴃ; [B1, C1]; xn--0ug332c3q0pr56g.xn--ss-151a; ; ; # 𐹡𞤮ⴇ.ssⴃ
+xn--fnd1201kegrf.xn--ss-fek; 𐹡𞤮Ⴇ.ssႣ; [B1, V6]; xn--fnd1201kegrf.xn--ss-fek; ; ; # 𐹡𞤮Ⴇ.ssႣ
+xn--fnd599eyj4pr50g.xn--ss-fek; ‌𐹡𞤮Ⴇ.ssႣ; [B1, C1, V6]; xn--fnd599eyj4pr50g.xn--ss-fek; ; ; # 𐹡𞤮Ⴇ.ssႣ
+xn--0ug332c3q0pr56g.xn--zca417t; ‌𐹡𞤮ⴇ.ßⴃ; [B1, C1]; xn--0ug332c3q0pr56g.xn--zca417t; ; ; # 𐹡𞤮ⴇ.ßⴃ
+xn--fnd599eyj4pr50g.xn--zca681f; ‌𐹡𞤮Ⴇ.ßႣ; [B1, C1, V6]; xn--fnd599eyj4pr50g.xn--zca681f; ; ; # 𐹡𞤮Ⴇ.ßႣ
+‌𐹡𞤮ⴇ。ßⴃ; ‌𐹡𞤮ⴇ.ßⴃ; [B1, C1]; xn--0ug332c3q0pr56g.xn--zca417t; ; xn--ykj9323eegwf.xn--ss-151a; [B1] # 𐹡𞤮ⴇ.ßⴃ
+‌𐹡𞤌Ⴇ。SSႣ; ‌𐹡𞤮Ⴇ.ssႣ; [B1, C1, P1, V6]; xn--fnd599eyj4pr50g.xn--ss-fek; ; xn--fnd1201kegrf.xn--ss-fek; [B1, P1, V6] # 𐹡𞤮Ⴇ.ssႣ
+‌𐹡𞤮ⴇ。ssⴃ; ‌𐹡𞤮ⴇ.ssⴃ; [B1, C1]; xn--0ug332c3q0pr56g.xn--ss-151a; ; xn--ykj9323eegwf.xn--ss-151a; [B1] # 𐹡𞤮ⴇ.ssⴃ
+‌𐹡𞤌ⴇ。Ssⴃ; ‌𐹡𞤮ⴇ.ssⴃ; [B1, C1]; xn--0ug332c3q0pr56g.xn--ss-151a; ; xn--ykj9323eegwf.xn--ss-151a; [B1] # 𐹡𞤮ⴇ.ssⴃ
+‌𐹡𞤌ⴇ。ßⴃ; ‌𐹡𞤮ⴇ.ßⴃ; [B1, C1]; xn--0ug332c3q0pr56g.xn--zca417t; ; xn--ykj9323eegwf.xn--ss-151a; [B1] # 𐹡𞤮ⴇ.ßⴃ
+‌𐹡𞤌ⴇ。ssⴃ; ‌𐹡𞤮ⴇ.ssⴃ; [B1, C1]; xn--0ug332c3q0pr56g.xn--ss-151a; ; xn--ykj9323eegwf.xn--ss-151a; [B1] # 𐹡𞤮ⴇ.ssⴃ
+‌𐹡𞤌Ⴇ。Ssⴃ; ‌𐹡𞤮Ⴇ.ssⴃ; [B1, C1, P1, V6]; xn--fnd599eyj4pr50g.xn--ss-151a; ; xn--fnd1201kegrf.xn--ss-151a; [B1, P1, V6] # 𐹡𞤮Ⴇ.ssⴃ
+xn--fnd1201kegrf.xn--ss-151a; 𐹡𞤮Ⴇ.ssⴃ; [B1, V6]; xn--fnd1201kegrf.xn--ss-151a; ; ; # 𐹡𞤮Ⴇ.ssⴃ
+xn--fnd599eyj4pr50g.xn--ss-151a; ‌𐹡𞤮Ⴇ.ssⴃ; [B1, C1, V6]; xn--fnd599eyj4pr50g.xn--ss-151a; ; ; # 𐹡𞤮Ⴇ.ssⴃ
+‌𐹡𞤌ⴇ。ßⴃ; ‌𐹡𞤮ⴇ.ßⴃ; [B1, C1]; xn--0ug332c3q0pr56g.xn--zca417t; ; xn--ykj9323eegwf.xn--ss-151a; [B1] # 𐹡𞤮ⴇ.ßⴃ
+‌𐹡𞤌ⴇ。ssⴃ; ‌𐹡𞤮ⴇ.ssⴃ; [B1, C1]; xn--0ug332c3q0pr56g.xn--ss-151a; ; xn--ykj9323eegwf.xn--ss-151a; [B1] # 𐹡𞤮ⴇ.ssⴃ
+‌𐹡𞤌Ⴇ。Ssⴃ; ‌𐹡𞤮Ⴇ.ssⴃ; [B1, C1, P1, V6]; xn--fnd599eyj4pr50g.xn--ss-151a; ; xn--fnd1201kegrf.xn--ss-151a; [B1, P1, V6] # 𐹡𞤮Ⴇ.ssⴃ
+៿。𞬳; ៿.𞬳; [P1, V6]; xn--45e.xn--et6h; ; ; # .
+៿。𞬳; ៿.𞬳; [P1, V6]; xn--45e.xn--et6h; ; ; # .
+xn--45e.xn--et6h; ៿.𞬳; [V6]; xn--45e.xn--et6h; ; ; # .
+ْ‍。್𑚳; ْ‍.್𑚳; [C2, V5]; xn--uhb882k.xn--8tc4527k; ; xn--uhb.xn--8tc4527k; [V5] # ْ.್𑚳
+ْ‍。್𑚳; ْ‍.್𑚳; [C2, V5]; xn--uhb882k.xn--8tc4527k; ; xn--uhb.xn--8tc4527k; [V5] # ْ.್𑚳
+xn--uhb.xn--8tc4527k; ْ.್𑚳; [V5]; xn--uhb.xn--8tc4527k; ; ; # ْ.್𑚳
+xn--uhb882k.xn--8tc4527k; ْ‍.್𑚳; [C2, V5]; xn--uhb882k.xn--8tc4527k; ; ; # ْ.್𑚳
+-≠ᠻ.ݭ𞥃≮󟷺; -≠ᠻ.ݭ𞥃≮󟷺; [B1, B2, B3, P1, V3, V6]; xn----g6j886c.xn--xpb049kk353abj99f; ; ; # -≠ᠻ.ݭ𞥃≮
+-≠ᠻ.ݭ𞥃≮󟷺; -≠ᠻ.ݭ𞥃≮󟷺; [B1, B2, B3, P1, V3, V6]; xn----g6j886c.xn--xpb049kk353abj99f; ; ; # -≠ᠻ.ݭ𞥃≮
+-≠ᠻ.ݭ𞥃≮󟷺; ; [B1, B2, B3, P1, V3, V6]; xn----g6j886c.xn--xpb049kk353abj99f; ; ; # -≠ᠻ.ݭ𞥃≮
+-≠ᠻ.ݭ𞥃≮󟷺; -≠ᠻ.ݭ𞥃≮󟷺; [B1, B2, B3, P1, V3, V6]; xn----g6j886c.xn--xpb049kk353abj99f; ; ; # -≠ᠻ.ݭ𞥃≮
+-≠ᠻ.ݭ𞤡≮󟷺; -≠ᠻ.ݭ𞥃≮󟷺; [B1, B2, B3, P1, V3, V6]; xn----g6j886c.xn--xpb049kk353abj99f; ; ; # -≠ᠻ.ݭ𞥃≮
+-≠ᠻ.ݭ𞤡≮󟷺; -≠ᠻ.ݭ𞥃≮󟷺; [B1, B2, B3, P1, V3, V6]; xn----g6j886c.xn--xpb049kk353abj99f; ; ; # -≠ᠻ.ݭ𞥃≮
+xn----g6j886c.xn--xpb049kk353abj99f; -≠ᠻ.ݭ𞥃≮󟷺; [B1, B2, B3, V3, V6]; xn----g6j886c.xn--xpb049kk353abj99f; ; ; # -≠ᠻ.ݭ𞥃≮
+-≠ᠻ.ݭ𞤡≮󟷺; -≠ᠻ.ݭ𞥃≮󟷺; [B1, B2, B3, P1, V3, V6]; xn----g6j886c.xn--xpb049kk353abj99f; ; ; # -≠ᠻ.ݭ𞥃≮
+-≠ᠻ.ݭ𞤡≮󟷺; -≠ᠻ.ݭ𞥃≮󟷺; [B1, B2, B3, P1, V3, V6]; xn----g6j886c.xn--xpb049kk353abj99f; ; ; # -≠ᠻ.ݭ𞥃≮
+󠰆≯޵𐻪.򊥕≮𑁆ࡌ; 󠰆≯޵𐻪.򊥕≮𑁆ࡌ; [B1, B5, B6, P1, V6]; xn--zrb797kdm1oes34i.xn--bwb394k8k2o25n6d; ; ; # ≯.≮𑁆ࡌ
+󠰆≯޵𐻪.򊥕≮𑁆ࡌ; 󠰆≯޵𐻪.򊥕≮𑁆ࡌ; [B1, B5, B6, P1, V6]; xn--zrb797kdm1oes34i.xn--bwb394k8k2o25n6d; ; ; # ≯.≮𑁆ࡌ
+󠰆≯޵𐻪.򊥕≮𑁆ࡌ; ; [B1, B5, B6, P1, V6]; xn--zrb797kdm1oes34i.xn--bwb394k8k2o25n6d; ; ; # ≯.≮𑁆ࡌ
+󠰆≯޵𐻪.򊥕≮𑁆ࡌ; 󠰆≯޵𐻪.򊥕≮𑁆ࡌ; [B1, B5, B6, P1, V6]; xn--zrb797kdm1oes34i.xn--bwb394k8k2o25n6d; ; ; # ≯.≮𑁆ࡌ
+xn--zrb797kdm1oes34i.xn--bwb394k8k2o25n6d; 󠰆≯޵𐻪.򊥕≮𑁆ࡌ; [B1, B5, B6, V6]; xn--zrb797kdm1oes34i.xn--bwb394k8k2o25n6d; ; ; # ≯.≮𑁆ࡌ
+≠󦋂.؀்-ڹ; ; [B1, P1, V6]; xn--1ch22084l.xn----qkc07co6n; ; ; # ≠.்-ڹ
+≠󦋂.؀்-ڹ; ≠󦋂.؀்-ڹ; [B1, P1, V6]; xn--1ch22084l.xn----qkc07co6n; ; ; # ≠.்-ڹ
+xn--1ch22084l.xn----qkc07co6n; ≠󦋂.؀்-ڹ; [B1, V6]; xn--1ch22084l.xn----qkc07co6n; ; ; # ≠.்-ڹ
+៝󠁣≠。𐹼𐋤; ៝󠁣≠.𐹼𐋤; [B1, P1, V5, V6]; xn--54e694cn389z.xn--787ct8r; ; ; # ៝≠.𐹼𐋤
+៝󠁣≠。𐹼𐋤; ៝󠁣≠.𐹼𐋤; [B1, P1, V5, V6]; xn--54e694cn389z.xn--787ct8r; ; ; # ៝≠.𐹼𐋤
+៝󠁣≠。𐹼𐋤; ៝󠁣≠.𐹼𐋤; [B1, P1, V5, V6]; xn--54e694cn389z.xn--787ct8r; ; ; # ៝≠.𐹼𐋤
+៝󠁣≠。𐹼𐋤; ៝󠁣≠.𐹼𐋤; [B1, P1, V5, V6]; xn--54e694cn389z.xn--787ct8r; ; ; # ៝≠.𐹼𐋤
+xn--54e694cn389z.xn--787ct8r; ៝󠁣≠.𐹼𐋤; [B1, V5, V6]; xn--54e694cn389z.xn--787ct8r; ; ; # ៝≠.𐹼𐋤
+ß𰀻񆬗。𝩨🕮ß; ß𰀻񆬗.𝩨🕮ß; [P1, V5, V6]; xn--zca20040bgrkh.xn--zca3653v86qa; ; xn--ss-jl59biy67d.xn--ss-4d11aw87d; # ß.𝩨🕮ß
+ß𰀻񆬗。𝩨🕮ß; ß𰀻񆬗.𝩨🕮ß; [P1, V5, V6]; xn--zca20040bgrkh.xn--zca3653v86qa; ; xn--ss-jl59biy67d.xn--ss-4d11aw87d; # ß.𝩨🕮ß
+SS𰀻񆬗。𝩨🕮SS; ss𰀻񆬗.𝩨🕮ss; [P1, V5, V6]; xn--ss-jl59biy67d.xn--ss-4d11aw87d; ; ; # ss.𝩨🕮ss
+ss𰀻񆬗。𝩨🕮ss; ss𰀻񆬗.𝩨🕮ss; [P1, V5, V6]; xn--ss-jl59biy67d.xn--ss-4d11aw87d; ; ; # ss.𝩨🕮ss
+Ss𰀻񆬗。𝩨🕮Ss; ss𰀻񆬗.𝩨🕮ss; [P1, V5, V6]; xn--ss-jl59biy67d.xn--ss-4d11aw87d; ; ; # ss.𝩨🕮ss
+xn--ss-jl59biy67d.xn--ss-4d11aw87d; ss𰀻񆬗.𝩨🕮ss; [V5, V6]; xn--ss-jl59biy67d.xn--ss-4d11aw87d; ; ; # ss.𝩨🕮ss
+xn--zca20040bgrkh.xn--zca3653v86qa; ß𰀻񆬗.𝩨🕮ß; [V5, V6]; xn--zca20040bgrkh.xn--zca3653v86qa; ; ; # ß.𝩨🕮ß
+SS𰀻񆬗。𝩨🕮SS; ss𰀻񆬗.𝩨🕮ss; [P1, V5, V6]; xn--ss-jl59biy67d.xn--ss-4d11aw87d; ; ; # ss.𝩨🕮ss
+ss𰀻񆬗。𝩨🕮ss; ss𰀻񆬗.𝩨🕮ss; [P1, V5, V6]; xn--ss-jl59biy67d.xn--ss-4d11aw87d; ; ; # ss.𝩨🕮ss
+Ss𰀻񆬗。𝩨🕮Ss; ss𰀻񆬗.𝩨🕮ss; [P1, V5, V6]; xn--ss-jl59biy67d.xn--ss-4d11aw87d; ; ; # ss.𝩨🕮ss
+‍。‌; ‍.‌; [C1, C2]; xn--1ug.xn--0ug; ; .; [A4_2] # .
+xn--1ug.xn--0ug; ‍.‌; [C1, C2]; xn--1ug.xn--0ug; ; ; # .
+҃𐭞‍.ឹ𞯌򟩚; ; [B1, C2, P1, V5, V6]; xn--m3a412lrr0o.xn--43e8670vmd79b; ; xn--m3a6965k.xn--43e8670vmd79b; [B1, P1, V5, V6] # ҃𐭞.ឹ
+xn--m3a6965k.xn--43e8670vmd79b; ҃𐭞.ឹ𞯌򟩚; [B1, V5, V6]; xn--m3a6965k.xn--43e8670vmd79b; ; ; # ҃𐭞.ឹ
+xn--m3a412lrr0o.xn--43e8670vmd79b; ҃𐭞‍.ឹ𞯌򟩚; [B1, C2, V5, V6]; xn--m3a412lrr0o.xn--43e8670vmd79b; ; ; # ҃𐭞.ឹ
+‌𐠨‌临。ꡢ򄷞ⶏ𐹣; ‌𐠨‌临.ꡢ򄷞ⶏ𐹣; [B1, B5, B6, C1, P1, V6]; xn--0uga2656aop9k.xn--uojv340bk71c99u9f; ; xn--miq9646b.xn--uojv340bk71c99u9f; [B2, B3, B5, B6, P1, V6] # 𐠨临.ꡢⶏ𐹣
+xn--miq9646b.xn--uojv340bk71c99u9f; 𐠨临.ꡢ򄷞ⶏ𐹣; [B2, B3, B5, B6, V6]; xn--miq9646b.xn--uojv340bk71c99u9f; ; ; # 𐠨临.ꡢⶏ𐹣
+xn--0uga2656aop9k.xn--uojv340bk71c99u9f; ‌𐠨‌临.ꡢ򄷞ⶏ𐹣; [B1, B5, B6, C1, V6]; xn--0uga2656aop9k.xn--uojv340bk71c99u9f; ; ; # 𐠨临.ꡢⶏ𐹣
+󠑘.󠄮; 󠑘.; [P1, V6]; xn--s136e.; ; ; # .
+󠑘.󠄮; 󠑘.; [P1, V6]; xn--s136e.; ; ; # .
+xn--s136e.; 󠑘.; [V6]; xn--s136e.; ; ; # .
+𐫄്.꫶; 𐫄്.꫶; [B1, B3, B6, V5]; xn--wxc7880k.xn--2v9a; ; ; # 𐫄്.꫶
+𐫄്.꫶; ; [B1, B3, B6, V5]; xn--wxc7880k.xn--2v9a; ; ; # 𐫄്.꫶
+xn--wxc7880k.xn--2v9a; 𐫄്.꫶; [B1, B3, B6, V5]; xn--wxc7880k.xn--2v9a; ; ; # 𐫄്.꫶
+ꦷ󝵙멹。⒛󠨇; ꦷ󝵙멹.⒛󠨇; [P1, V5, V6]; xn--ym9av13acp85w.xn--dth22121k; ; ; # ꦷ멹.⒛
+ꦷ󝵙멹。⒛󠨇; ꦷ󝵙멹.⒛󠨇; [P1, V5, V6]; xn--ym9av13acp85w.xn--dth22121k; ; ; # ꦷ멹.⒛
+ꦷ󝵙멹。20.󠨇; ꦷ󝵙멹.20.󠨇; [P1, V5, V6]; xn--ym9av13acp85w.20.xn--d846e; ; ; # ꦷ멹.20.
+ꦷ󝵙멹。20.󠨇; ꦷ󝵙멹.20.󠨇; [P1, V5, V6]; xn--ym9av13acp85w.20.xn--d846e; ; ; # ꦷ멹.20.
+xn--ym9av13acp85w.20.xn--d846e; ꦷ󝵙멹.20.󠨇; [V5, V6]; xn--ym9av13acp85w.20.xn--d846e; ; ; # ꦷ멹.20.
+xn--ym9av13acp85w.xn--dth22121k; ꦷ󝵙멹.⒛󠨇; [V5, V6]; xn--ym9av13acp85w.xn--dth22121k; ; ; # ꦷ멹.⒛
+Ⴅ󲬹릖󠶚.ݷ𐹳⒊; ; [B4, B6, P1, V6]; xn--dnd2167fnet0io02g.xn--7pb000mwm4n; ; ; # Ⴅ릖.ݷ𐹳⒊
+Ⴅ󲬹릖󠶚.ݷ𐹳⒊; Ⴅ󲬹릖󠶚.ݷ𐹳⒊; [B4, B6, P1, V6]; xn--dnd2167fnet0io02g.xn--7pb000mwm4n; ; ; # Ⴅ릖.ݷ𐹳⒊
+Ⴅ󲬹릖󠶚.ݷ𐹳3.; ; [B4, B6, P1, V6]; xn--dnd2167fnet0io02g.xn--3-55c6803r.; ; ; # Ⴅ릖.ݷ𐹳3.
+Ⴅ󲬹릖󠶚.ݷ𐹳3.; Ⴅ󲬹릖󠶚.ݷ𐹳3.; [B4, B6, P1, V6]; xn--dnd2167fnet0io02g.xn--3-55c6803r.; ; ; # Ⴅ릖.ݷ𐹳3.
+ⴅ󲬹릖󠶚.ݷ𐹳3.; ⴅ󲬹릖󠶚.ݷ𐹳3.; [B4, B6, P1, V6]; xn--wkj8016bne45io02g.xn--3-55c6803r.; ; ; # ⴅ릖.ݷ𐹳3.
+ⴅ󲬹릖󠶚.ݷ𐹳3.; ; [B4, B6, P1, V6]; xn--wkj8016bne45io02g.xn--3-55c6803r.; ; ; # ⴅ릖.ݷ𐹳3.
+xn--wkj8016bne45io02g.xn--3-55c6803r.; ⴅ󲬹릖󠶚.ݷ𐹳3.; [B4, B6, V6]; xn--wkj8016bne45io02g.xn--3-55c6803r.; ; ; # ⴅ릖.ݷ𐹳3.
+xn--dnd2167fnet0io02g.xn--3-55c6803r.; Ⴅ󲬹릖󠶚.ݷ𐹳3.; [B4, B6, V6]; xn--dnd2167fnet0io02g.xn--3-55c6803r.; ; ; # Ⴅ릖.ݷ𐹳3.
+ⴅ󲬹릖󠶚.ݷ𐹳⒊; ⴅ󲬹릖󠶚.ݷ𐹳⒊; [B4, B6, P1, V6]; xn--wkj8016bne45io02g.xn--7pb000mwm4n; ; ; # ⴅ릖.ݷ𐹳⒊
+ⴅ󲬹릖󠶚.ݷ𐹳⒊; ; [B4, B6, P1, V6]; xn--wkj8016bne45io02g.xn--7pb000mwm4n; ; ; # ⴅ릖.ݷ𐹳⒊
+xn--wkj8016bne45io02g.xn--7pb000mwm4n; ⴅ󲬹릖󠶚.ݷ𐹳⒊; [B4, B6, V6]; xn--wkj8016bne45io02g.xn--7pb000mwm4n; ; ; # ⴅ릖.ݷ𐹳⒊
+xn--dnd2167fnet0io02g.xn--7pb000mwm4n; Ⴅ󲬹릖󠶚.ݷ𐹳⒊; [B4, B6, V6]; xn--dnd2167fnet0io02g.xn--7pb000mwm4n; ; ; # Ⴅ릖.ݷ𐹳⒊
+‌。︒; ‌.︒; [C1, P1, V6]; xn--0ug.xn--y86c; ; .xn--y86c; [P1, V6, A4_2] # .︒
+‌。。; ‌..; [C1, X4_2]; xn--0ug..; [C1, A4_2]; ..; [A4_2] # ..
+..; ; [X4_2]; ; [A4_2]; ; # ..
+xn--0ug..; ‌..; [C1, X4_2]; xn--0ug..; [C1, A4_2]; ; # ..
+.xn--y86c; .︒; [V6, X4_2]; .xn--y86c; [V6, A4_2]; ; # .︒
+xn--0ug.xn--y86c; ‌.︒; [C1, V6]; xn--0ug.xn--y86c; ; ; # .︒
+≯ݭ.₄; ≯ݭ.4; [B1, P1, V6]; xn--xpb149k.4; ; ; # ≯ݭ.4
+≯ݭ.₄; ≯ݭ.4; [B1, P1, V6]; xn--xpb149k.4; ; ; # ≯ݭ.4
+≯ݭ.4; ; [B1, P1, V6]; xn--xpb149k.4; ; ; # ≯ݭ.4
+≯ݭ.4; ≯ݭ.4; [B1, P1, V6]; xn--xpb149k.4; ; ; # ≯ݭ.4
+xn--xpb149k.4; ≯ݭ.4; [B1, V6]; xn--xpb149k.4; ; ; # ≯ݭ.4
+ᡲ-𝟹.ß-‌-; ᡲ-3.ß-‌-; [C1, V3]; xn---3-p9o.xn-----fia9303a; ; xn---3-p9o.ss--; [V2, V3] # ᡲ-3.ß--
+ᡲ-3.ß-‌-; ; [C1, V3]; xn---3-p9o.xn-----fia9303a; ; xn---3-p9o.ss--; [V2, V3] # ᡲ-3.ß--
+ᡲ-3.SS-‌-; ᡲ-3.ss-‌-; [C1, V3]; xn---3-p9o.xn--ss---276a; ; xn---3-p9o.ss--; [V2, V3] # ᡲ-3.ss--
+ᡲ-3.ss-‌-; ; [C1, V3]; xn---3-p9o.xn--ss---276a; ; xn---3-p9o.ss--; [V2, V3] # ᡲ-3.ss--
+ᡲ-3.Ss-‌-; ᡲ-3.ss-‌-; [C1, V3]; xn---3-p9o.xn--ss---276a; ; xn---3-p9o.ss--; [V2, V3] # ᡲ-3.ss--
+xn---3-p9o.ss--; ᡲ-3.ss--; [V2, V3]; xn---3-p9o.ss--; ; ; # ᡲ-3.ss--
+xn---3-p9o.xn--ss---276a; ᡲ-3.ss-‌-; [C1, V3]; xn---3-p9o.xn--ss---276a; ; ; # ᡲ-3.ss--
+xn---3-p9o.xn-----fia9303a; ᡲ-3.ß-‌-; [C1, V3]; xn---3-p9o.xn-----fia9303a; ; ; # ᡲ-3.ß--
+ᡲ-𝟹.SS-‌-; ᡲ-3.ss-‌-; [C1, V3]; xn---3-p9o.xn--ss---276a; ; xn---3-p9o.ss--; [V2, V3] # ᡲ-3.ss--
+ᡲ-𝟹.ss-‌-; ᡲ-3.ss-‌-; [C1, V3]; xn---3-p9o.xn--ss---276a; ; xn---3-p9o.ss--; [V2, V3] # ᡲ-3.ss--
+ᡲ-𝟹.Ss-‌-; ᡲ-3.ss-‌-; [C1, V3]; xn---3-p9o.xn--ss---276a; ; xn---3-p9o.ss--; [V2, V3] # ᡲ-3.ss--
+ﴈ𝟦ه󎊯。Ӏ; ضي4ه󎊯.Ӏ; [B2, B3, P1, V6]; xn--4-tnc6ck183523b.xn--d5a; ; ; # ضي4ه.Ӏ
+ضي4ه󎊯。Ӏ; ضي4ه󎊯.Ӏ; [B2, B3, P1, V6]; xn--4-tnc6ck183523b.xn--d5a; ; ; # ضي4ه.Ӏ
+ضي4ه󎊯。ӏ; ضي4ه󎊯.ӏ; [B2, B3, P1, V6]; xn--4-tnc6ck183523b.xn--s5a; ; ; # ضي4ه.ӏ
+xn--4-tnc6ck183523b.xn--s5a; ضي4ه󎊯.ӏ; [B2, B3, V6]; xn--4-tnc6ck183523b.xn--s5a; ; ; # ضي4ه.ӏ
+xn--4-tnc6ck183523b.xn--d5a; ضي4ه󎊯.Ӏ; [B2, B3, V6]; xn--4-tnc6ck183523b.xn--d5a; ; ; # ضي4ه.Ӏ
+ﴈ𝟦ه󎊯。ӏ; ضي4ه󎊯.ӏ; [B2, B3, P1, V6]; xn--4-tnc6ck183523b.xn--s5a; ; ; # ضي4ه.ӏ
+-.؂آ𑆾🐹; ; [B1, P1, V3, V6]; -.xn--kfb8dy983hgl7g; ; ; # -.آ𑆾🐹
+-.؂آ𑆾🐹; -.؂آ𑆾🐹; [B1, P1, V3, V6]; -.xn--kfb8dy983hgl7g; ; ; # -.آ𑆾🐹
+-.xn--kfb8dy983hgl7g; -.؂آ𑆾🐹; [B1, V3, V6]; -.xn--kfb8dy983hgl7g; ; ; # -.آ𑆾🐹
+󙶜ᢘ。᩿⺢; 󙶜ᢘ.᩿⺢; [P1, V5, V6]; xn--ibf35138o.xn--fpfz94g; ; ; # ᢘ.᩿⺢
+xn--ibf35138o.xn--fpfz94g; 󙶜ᢘ.᩿⺢; [V5, V6]; xn--ibf35138o.xn--fpfz94g; ; ; # ᢘ.᩿⺢
+≠ႷᠤႫ。?͌س觴; ≠ႷᠤႫ.?͌س觴; [B1, B5, P1, V6]; xn--jndx718cnnl.?͌س觴; [B1, B5, P1, V6, A3]; ; # ≠ႷᠤႫ.͌س觴
+≠ႷᠤႫ。?͌س觴; ≠ႷᠤႫ.?͌س觴; [B1, B5, P1, V6]; xn--jndx718cnnl.?͌س觴; [B1, B5, P1, V6, A3]; ; # ≠ႷᠤႫ.͌س觴
+≠ႷᠤႫ。?͌س觴; ≠ႷᠤႫ.?͌س觴; [B1, B5, P1, V6]; xn--jndx718cnnl.?͌س觴; [B1, B5, P1, V6, A3]; ; # ≠ႷᠤႫ.͌س觴
+≠ႷᠤႫ。?͌س觴; ≠ႷᠤႫ.?͌س觴; [B1, B5, P1, V6]; xn--jndx718cnnl.?͌س觴; [B1, B5, P1, V6, A3]; ; # ≠ႷᠤႫ.͌س觴
+≠ⴗᠤⴋ。?͌س觴; ≠ⴗᠤⴋ.?͌س觴; [B1, B5, P1, V6]; xn--66e353ce0ilb.?͌س觴; [B1, B5, P1, V6, A3]; ; # ≠ⴗᠤⴋ.͌س觴
+≠ⴗᠤⴋ。?͌س觴; ≠ⴗᠤⴋ.?͌س觴; [B1, B5, P1, V6]; xn--66e353ce0ilb.?͌س觴; [B1, B5, P1, V6, A3]; ; # ≠ⴗᠤⴋ.͌س觴
+≠Ⴗᠤⴋ。?͌س觴; ≠Ⴗᠤⴋ.?͌س觴; [B1, B5, P1, V6]; xn--vnd619as6ig6k.?͌س觴; [B1, B5, P1, V6, A3]; ; # ≠Ⴗᠤⴋ.͌س觴
+≠Ⴗᠤⴋ。?͌س觴; ≠Ⴗᠤⴋ.?͌س觴; [B1, B5, P1, V6]; xn--vnd619as6ig6k.?͌س觴; [B1, B5, P1, V6, A3]; ; # ≠Ⴗᠤⴋ.͌س觴
+xn--vnd619as6ig6k.?͌س觴; ≠Ⴗᠤⴋ.?͌س觴; [B1, B5, P1, V6]; xn--vnd619as6ig6k.?͌س觴; [B1, B5, P1, V6, A3]; ; # ≠Ⴗᠤⴋ.͌س觴
+XN--VND619AS6IG6K.?͌س觴; ≠Ⴗᠤⴋ.?͌س觴; [B1, B5, P1, V6]; xn--vnd619as6ig6k.?͌س觴; [B1, B5, P1, V6, A3]; ; # ≠Ⴗᠤⴋ.͌س觴
+Xn--Vnd619as6ig6k.?͌س觴; ≠Ⴗᠤⴋ.?͌س觴; [B1, B5, P1, V6]; xn--vnd619as6ig6k.?͌س觴; [B1, B5, P1, V6, A3]; ; # ≠Ⴗᠤⴋ.͌س觴
+xn--66e353ce0ilb.?͌س觴; ≠ⴗᠤⴋ.?͌س觴; [B1, B5, P1, V6]; xn--66e353ce0ilb.?͌س觴; [B1, B5, P1, V6, A3]; ; # ≠ⴗᠤⴋ.͌س觴
+XN--66E353CE0ILB.?͌س觴; ≠ⴗᠤⴋ.?͌س觴; [B1, B5, P1, V6]; xn--66e353ce0ilb.?͌س觴; [B1, B5, P1, V6, A3]; ; # ≠ⴗᠤⴋ.͌س觴
+Xn--66e353ce0ilb.?͌س觴; ≠ⴗᠤⴋ.?͌س觴; [B1, B5, P1, V6]; xn--66e353ce0ilb.?͌س觴; [B1, B5, P1, V6, A3]; ; # ≠ⴗᠤⴋ.͌س觴
+xn--jndx718cnnl.?͌س觴; ≠ႷᠤႫ.?͌س觴; [B1, B5, P1, V6]; xn--jndx718cnnl.?͌س觴; [B1, B5, P1, V6, A3]; ; # ≠ႷᠤႫ.͌س觴
+XN--JNDX718CNNL.?͌س觴; ≠ႷᠤႫ.?͌س觴; [B1, B5, P1, V6]; xn--jndx718cnnl.?͌س觴; [B1, B5, P1, V6, A3]; ; # ≠ႷᠤႫ.͌س觴
+Xn--Jndx718cnnl.?͌س觴; ≠ႷᠤႫ.?͌س觴; [B1, B5, P1, V6]; xn--jndx718cnnl.?͌س觴; [B1, B5, P1, V6, A3]; ; # ≠ႷᠤႫ.͌س觴
+≠ⴗᠤⴋ。?͌س觴; ≠ⴗᠤⴋ.?͌س觴; [B1, B5, P1, V6]; xn--66e353ce0ilb.?͌س觴; [B1, B5, P1, V6, A3]; ; # ≠ⴗᠤⴋ.͌س觴
+≠ⴗᠤⴋ。?͌س觴; ≠ⴗᠤⴋ.?͌س觴; [B1, B5, P1, V6]; xn--66e353ce0ilb.?͌س觴; [B1, B5, P1, V6, A3]; ; # ≠ⴗᠤⴋ.͌س觴
+≠Ⴗᠤⴋ。?͌س觴; ≠Ⴗᠤⴋ.?͌س觴; [B1, B5, P1, V6]; xn--vnd619as6ig6k.?͌س觴; [B1, B5, P1, V6, A3]; ; # ≠Ⴗᠤⴋ.͌س觴
+≠Ⴗᠤⴋ。?͌س觴; ≠Ⴗᠤⴋ.?͌س觴; [B1, B5, P1, V6]; xn--vnd619as6ig6k.?͌س觴; [B1, B5, P1, V6, A3]; ; # ≠Ⴗᠤⴋ.͌س觴
+٧.𐥨; ; [B1, P1, V6]; xn--gib.xn--vm9c; ; ; # ٧.
+xn--gib.xn--vm9c; ٧.𐥨; [B1, V6]; xn--gib.xn--vm9c; ; ; # ٧.
+꧀𝟯。‍񼑥𐹪᯳; ꧀3.‍񼑥𐹪᯳; [B1, C2, P1, V5, V6]; xn--3-5z4e.xn--1zf96ony8ygd68c; ; xn--3-5z4e.xn--1zfz754hncv8b; [B5, P1, V5, V6] # ꧀3.𐹪᯳
+꧀3。‍񼑥𐹪᯳; ꧀3.‍񼑥𐹪᯳; [B1, C2, P1, V5, V6]; xn--3-5z4e.xn--1zf96ony8ygd68c; ; xn--3-5z4e.xn--1zfz754hncv8b; [B5, P1, V5, V6] # ꧀3.𐹪᯳
+xn--3-5z4e.xn--1zfz754hncv8b; ꧀3.񼑥𐹪᯳; [B5, V5, V6]; xn--3-5z4e.xn--1zfz754hncv8b; ; ; # ꧀3.𐹪᯳
+xn--3-5z4e.xn--1zf96ony8ygd68c; ꧀3.‍񼑥𐹪᯳; [B1, C2, V5, V6]; xn--3-5z4e.xn--1zf96ony8ygd68c; ; ; # ꧀3.𐹪᯳
+򣕄4񠖽.≯٤𑀾󠸌; ; [B1, P1, V6]; xn--4-fg85dl688i.xn--dib174li86ntdy0i; ; ; # 4.≯٤𑀾
+򣕄4񠖽.≯٤𑀾󠸌; 򣕄4񠖽.≯٤𑀾󠸌; [B1, P1, V6]; xn--4-fg85dl688i.xn--dib174li86ntdy0i; ; ; # 4.≯٤𑀾
+xn--4-fg85dl688i.xn--dib174li86ntdy0i; 򣕄4񠖽.≯٤𑀾󠸌; [B1, V6]; xn--4-fg85dl688i.xn--dib174li86ntdy0i; ; ; # 4.≯٤𑀾
+򗆧𝟯。⒈᩶𝟚򠘌; 򗆧3.⒈᩶2򠘌; [P1, V6]; xn--3-rj42h.xn--2-13k746cq465x; ; ; # 3.⒈᩶2
+򗆧3。1.᩶2򠘌; 򗆧3.1.᩶2򠘌; [P1, V5, V6]; xn--3-rj42h.1.xn--2-13k96240l; ; ; # 3.1.᩶2
+xn--3-rj42h.1.xn--2-13k96240l; 򗆧3.1.᩶2򠘌; [V5, V6]; xn--3-rj42h.1.xn--2-13k96240l; ; ; # 3.1.᩶2
+xn--3-rj42h.xn--2-13k746cq465x; 򗆧3.⒈᩶2򠘌; [V6]; xn--3-rj42h.xn--2-13k746cq465x; ; ; # 3.⒈᩶2
+‍₅⒈。≯𝟴‍; ‍5⒈.≯8‍; [C2, P1, V6]; xn--5-tgnz5r.xn--8-ugn00i; ; xn--5-ecp.xn--8-ogo; [P1, V6] # 5⒈.≯8
+‍₅⒈。≯𝟴‍; ‍5⒈.≯8‍; [C2, P1, V6]; xn--5-tgnz5r.xn--8-ugn00i; ; xn--5-ecp.xn--8-ogo; [P1, V6] # 5⒈.≯8
+‍51.。≯8‍; ‍51..≯8‍; [C2, P1, V6, X4_2]; xn--51-l1t..xn--8-ugn00i; [C2, P1, V6, A4_2]; 51..xn--8-ogo; [P1, V6, A4_2] # 51..≯8
+‍51.。≯8‍; ‍51..≯8‍; [C2, P1, V6, X4_2]; xn--51-l1t..xn--8-ugn00i; [C2, P1, V6, A4_2]; 51..xn--8-ogo; [P1, V6, A4_2] # 51..≯8
+51..xn--8-ogo; 51..≯8; [V6, X4_2]; 51..xn--8-ogo; [V6, A4_2]; ; # 51..≯8
+xn--51-l1t..xn--8-ugn00i; ‍51..≯8‍; [C2, V6, X4_2]; xn--51-l1t..xn--8-ugn00i; [C2, V6, A4_2]; ; # 51..≯8
+xn--5-ecp.xn--8-ogo; 5⒈.≯8; [V6]; xn--5-ecp.xn--8-ogo; ; ; # 5⒈.≯8
+xn--5-tgnz5r.xn--8-ugn00i; ‍5⒈.≯8‍; [C2, V6]; xn--5-tgnz5r.xn--8-ugn00i; ; ; # 5⒈.≯8
+ꡰڗႆ.򪘙ܯ≠‌; ꡰڗႆ.򪘙ܯ≠‌; [B5, B6, C1, P1, V6]; xn--tjb002cn51k.xn--5nb448jcubcz547b; ; xn--tjb002cn51k.xn--5nb630lbj91q; [B5, B6, P1, V6] # ꡰڗႆ.ܯ≠
+ꡰڗႆ.򪘙ܯ≠‌; ꡰڗႆ.򪘙ܯ≠‌; [B5, B6, C1, P1, V6]; xn--tjb002cn51k.xn--5nb448jcubcz547b; ; xn--tjb002cn51k.xn--5nb630lbj91q; [B5, B6, P1, V6] # ꡰڗႆ.ܯ≠
+ꡰڗႆ.򪘙ܯ≠‌; ; [B5, B6, C1, P1, V6]; xn--tjb002cn51k.xn--5nb448jcubcz547b; ; xn--tjb002cn51k.xn--5nb630lbj91q; [B5, B6, P1, V6] # ꡰڗႆ.ܯ≠
+ꡰڗႆ.򪘙ܯ≠‌; ꡰڗႆ.򪘙ܯ≠‌; [B5, B6, C1, P1, V6]; xn--tjb002cn51k.xn--5nb448jcubcz547b; ; xn--tjb002cn51k.xn--5nb630lbj91q; [B5, B6, P1, V6] # ꡰڗႆ.ܯ≠
+xn--tjb002cn51k.xn--5nb630lbj91q; ꡰڗႆ.򪘙ܯ≠; [B5, B6, V6]; xn--tjb002cn51k.xn--5nb630lbj91q; ; ; # ꡰڗႆ.ܯ≠
+xn--tjb002cn51k.xn--5nb448jcubcz547b; ꡰڗႆ.򪘙ܯ≠‌; [B5, B6, C1, V6]; xn--tjb002cn51k.xn--5nb448jcubcz547b; ; ; # ꡰڗႆ.ܯ≠
+𑄱。򪌿𐹵; 𑄱.򪌿𐹵; [B1, B3, B5, B6, P1, V5, V6]; xn--t80d.xn--to0d14792b; ; ; # 𑄱.𐹵
+𑄱。򪌿𐹵; 𑄱.򪌿𐹵; [B1, B3, B5, B6, P1, V5, V6]; xn--t80d.xn--to0d14792b; ; ; # 𑄱.𐹵
+xn--t80d.xn--to0d14792b; 𑄱.򪌿𐹵; [B1, B3, B5, B6, V5, V6]; xn--t80d.xn--to0d14792b; ; ; # 𑄱.𐹵
+𝟥؀。ܽ; 3؀.ܽ; [B1, B3, B6, P1, V5, V6]; xn--3-rkc.xn--kob; ; ; # 3.ܽ
+3؀。ܽ; 3؀.ܽ; [B1, B3, B6, P1, V5, V6]; xn--3-rkc.xn--kob; ; ; # 3.ܽ
+xn--3-rkc.xn--kob; 3؀.ܽ; [B1, B3, B6, V5, V6]; xn--3-rkc.xn--kob; ; ; # 3.ܽ
+ط𐹣٦.ݭ긷; ; [B2, B3]; xn--2gb8gu829f.xn--xpb0156f; ; ; # ط𐹣٦.ݭ긷
+ط𐹣٦.ݭ긷; ط𐹣٦.ݭ긷; [B2, B3]; xn--2gb8gu829f.xn--xpb0156f; ; ; # ط𐹣٦.ݭ긷
+xn--2gb8gu829f.xn--xpb0156f; ط𐹣٦.ݭ긷; [B2, B3]; xn--2gb8gu829f.xn--xpb0156f; ; ; # ط𐹣٦.ݭ긷
+︒Ↄⷧ򾀃.Ⴗ𐣞; ︒Ↄⷧ򾀃.Ⴗ𐣞; [B1, B5, B6, P1, V6]; xn--q5g000c056n0226g.xn--vnd8618j; ; ; # ︒Ↄⷧ.Ⴗ
+。Ↄⷧ򾀃.Ⴗ𐣞; .Ↄⷧ򾀃.Ⴗ𐣞; [B5, B6, P1, V6, X4_2]; .xn--q5g000cll06u.xn--vnd8618j; [B5, B6, P1, V6, A4_2]; ; # .Ↄⷧ.Ⴗ
+。ↄⷧ򾀃.ⴗ𐣞; .ↄⷧ򾀃.ⴗ𐣞; [B5, B6, P1, V6, X4_2]; .xn--r5gy00cll06u.xn--flj4541e; [B5, B6, P1, V6, A4_2]; ; # .ↄⷧ.ⴗ
+.xn--r5gy00cll06u.xn--flj4541e; .ↄⷧ򾀃.ⴗ𐣞; [B5, B6, V6, X4_2]; .xn--r5gy00cll06u.xn--flj4541e; [B5, B6, V6, A4_2]; ; # .ↄⷧ.ⴗ
+.xn--q5g000cll06u.xn--vnd8618j; .Ↄⷧ򾀃.Ⴗ𐣞; [B5, B6, V6, X4_2]; .xn--q5g000cll06u.xn--vnd8618j; [B5, B6, V6, A4_2]; ; # .Ↄⷧ.Ⴗ
+︒ↄⷧ򾀃.ⴗ𐣞; ︒ↄⷧ򾀃.ⴗ𐣞; [B1, B5, B6, P1, V6]; xn--r5gy00c056n0226g.xn--flj4541e; ; ; # ︒ↄⷧ.ⴗ
+xn--r5gy00c056n0226g.xn--flj4541e; ︒ↄⷧ򾀃.ⴗ𐣞; [B1, B5, B6, V6]; xn--r5gy00c056n0226g.xn--flj4541e; ; ; # ︒ↄⷧ.ⴗ
+xn--q5g000c056n0226g.xn--vnd8618j; ︒Ↄⷧ򾀃.Ⴗ𐣞; [B1, B5, B6, V6]; xn--q5g000c056n0226g.xn--vnd8618j; ; ; # ︒Ↄⷧ.Ⴗ
+؀.ֱ; ; [B1, B3, B6, P1, V5, V6]; xn--ifb.xn--8cb; ; ; # .ֱ
+xn--ifb.xn--8cb; ؀.ֱ; [B1, B3, B6, V5, V6]; xn--ifb.xn--8cb; ; ; # .ֱ
+ς≯。𐹽; ς≯.𐹽; [B1, B6, P1, V6]; xn--3xa028m.xn--1o0d; ; xn--4xa818m.xn--1o0d; # ς≯.𐹽
+ς≯。𐹽; ς≯.𐹽; [B1, B6, P1, V6]; xn--3xa028m.xn--1o0d; ; xn--4xa818m.xn--1o0d; # ς≯.𐹽
+ς≯。𐹽; ς≯.𐹽; [B1, B6, P1, V6]; xn--3xa028m.xn--1o0d; ; xn--4xa818m.xn--1o0d; # ς≯.𐹽
+ς≯。𐹽; ς≯.𐹽; [B1, B6, P1, V6]; xn--3xa028m.xn--1o0d; ; xn--4xa818m.xn--1o0d; # ς≯.𐹽
+Σ≯。𐹽; σ≯.𐹽; [B1, B6, P1, V6]; xn--4xa818m.xn--1o0d; ; ; # σ≯.𐹽
+Σ≯。𐹽; σ≯.𐹽; [B1, B6, P1, V6]; xn--4xa818m.xn--1o0d; ; ; # σ≯.𐹽
+σ≯。𐹽; σ≯.𐹽; [B1, B6, P1, V6]; xn--4xa818m.xn--1o0d; ; ; # σ≯.𐹽
+σ≯。𐹽; σ≯.𐹽; [B1, B6, P1, V6]; xn--4xa818m.xn--1o0d; ; ; # σ≯.𐹽
+xn--4xa818m.xn--1o0d; σ≯.𐹽; [B1, B6, V6]; xn--4xa818m.xn--1o0d; ; ; # σ≯.𐹽
+xn--3xa028m.xn--1o0d; ς≯.𐹽; [B1, B6, V6]; xn--3xa028m.xn--1o0d; ; ; # ς≯.𐹽
+Σ≯。𐹽; σ≯.𐹽; [B1, B6, P1, V6]; xn--4xa818m.xn--1o0d; ; ; # σ≯.𐹽
+Σ≯。𐹽; σ≯.𐹽; [B1, B6, P1, V6]; xn--4xa818m.xn--1o0d; ; ; # σ≯.𐹽
+σ≯。𐹽; σ≯.𐹽; [B1, B6, P1, V6]; xn--4xa818m.xn--1o0d; ; ; # σ≯.𐹽
+σ≯。𐹽; σ≯.𐹽; [B1, B6, P1, V6]; xn--4xa818m.xn--1o0d; ; ; # σ≯.𐹽
+្‍ݟ。𐹶; ្‍ݟ.𐹶; [B1, V5]; xn--jpb535fv9f.xn--uo0d; ; xn--jpb535f.xn--uo0d; # ្ݟ.𐹶
+xn--jpb535f.xn--uo0d; ្ݟ.𐹶; [B1, V5]; xn--jpb535f.xn--uo0d; ; ; # ្ݟ.𐹶
+xn--jpb535fv9f.xn--uo0d; ្‍ݟ.𐹶; [B1, V5]; xn--jpb535fv9f.xn--uo0d; ; ; # ្ݟ.𐹶
+𾷂ੂႪ񂂟.≮; ; [P1, V6]; xn--nbc493aro75ggskb.xn--gdh; ; ; # ੂႪ.≮
+𾷂ੂႪ񂂟.≮; 𾷂ੂႪ񂂟.≮; [P1, V6]; xn--nbc493aro75ggskb.xn--gdh; ; ; # ੂႪ.≮
+𾷂ੂⴊ񂂟.≮; 𾷂ੂⴊ񂂟.≮; [P1, V6]; xn--nbc229o4y27dgskb.xn--gdh; ; ; # ੂⴊ.≮
+𾷂ੂⴊ񂂟.≮; ; [P1, V6]; xn--nbc229o4y27dgskb.xn--gdh; ; ; # ੂⴊ.≮
+xn--nbc229o4y27dgskb.xn--gdh; 𾷂ੂⴊ񂂟.≮; [V6]; xn--nbc229o4y27dgskb.xn--gdh; ; ; # ੂⴊ.≮
+xn--nbc493aro75ggskb.xn--gdh; 𾷂ੂႪ񂂟.≮; [V6]; xn--nbc493aro75ggskb.xn--gdh; ; ; # ੂႪ.≮
+ꡠ.۲; ꡠ.۲; ; xn--5c9a.xn--fmb; ; ; # ꡠ.۲
+ꡠ.۲; ; ; xn--5c9a.xn--fmb; ; ; # ꡠ.۲
+xn--5c9a.xn--fmb; ꡠ.۲; ; xn--5c9a.xn--fmb; ; ; # ꡠ.۲
+𐹣񄷄。ꡬ🄄; 𐹣񄷄.ꡬ🄄; [B1, P1, V6]; xn--bo0d0203l.xn--id9a4443d; ; ; # 𐹣.ꡬ🄄
+𐹣񄷄。ꡬ3,; 𐹣񄷄.ꡬ3,; [B1, B6, P1, V6]; xn--bo0d0203l.xn--3,-yj9h; ; ; # 𐹣.ꡬ3,
+xn--bo0d0203l.xn--3,-yj9h; 𐹣񄷄.ꡬ3,; [B1, B6, P1, V6]; xn--bo0d0203l.xn--3,-yj9h; ; ; # 𐹣.ꡬ3,
+xn--bo0d0203l.xn--id9a4443d; 𐹣񄷄.ꡬ🄄; [B1, V6]; xn--bo0d0203l.xn--id9a4443d; ; ; # 𐹣.ꡬ🄄
+-్𞾀𑲓。‍്; -్𞾀𑲓.‍്; [B1, C2, P1, V3, V6]; xn----x6e0220sclug.xn--wxc317g; ; xn----x6e0220sclug.xn--wxc; [B1, B3, B6, P1, V3, V5, V6] # -్𑲓.്
+-్𞾀𑲓。‍്; -్𞾀𑲓.‍്; [B1, C2, P1, V3, V6]; xn----x6e0220sclug.xn--wxc317g; ; xn----x6e0220sclug.xn--wxc; [B1, B3, B6, P1, V3, V5, V6] # -్𑲓.്
+xn----x6e0220sclug.xn--wxc; -్𞾀𑲓.്; [B1, B3, B6, V3, V5, V6]; xn----x6e0220sclug.xn--wxc; ; ; # -్𑲓.്
+xn----x6e0220sclug.xn--wxc317g; -్𞾀𑲓.‍്; [B1, C2, V3, V6]; xn----x6e0220sclug.xn--wxc317g; ; ; # -్𑲓.്
+꙽‌霣🄆。‌𑁂ᬁ; ꙽‌霣🄆.‌𑁂ᬁ; [C1, P1, V5, V6]; xn--0ug4208b2vjuk63a.xn--4sf36u6u4w; ; xn--2q5a751a653w.xn--4sf0725i; [P1, V5, V6] # ꙽霣🄆.𑁂ᬁ
+꙽‌霣🄆。‌𑁂ᬁ; ꙽‌霣🄆.‌𑁂ᬁ; [C1, P1, V5, V6]; xn--0ug4208b2vjuk63a.xn--4sf36u6u4w; ; xn--2q5a751a653w.xn--4sf0725i; [P1, V5, V6] # ꙽霣🄆.𑁂ᬁ
+꙽‌霣5,。‌𑁂ᬁ; ꙽‌霣5,.‌𑁂ᬁ; [C1, P1, V5, V6]; xn--5,-i1tz135dnbqa.xn--4sf36u6u4w; ; xn--5,-op8g373c.xn--4sf0725i; [P1, V5, V6] # ꙽霣5,.𑁂ᬁ
+xn--5,-op8g373c.xn--4sf0725i; ꙽霣5,.𑁂ᬁ; [P1, V5, V6]; xn--5,-op8g373c.xn--4sf0725i; ; ; # ꙽霣5,.𑁂ᬁ
+xn--5,-i1tz135dnbqa.xn--4sf36u6u4w; ꙽‌霣5,.‌𑁂ᬁ; [C1, P1, V5, V6]; xn--5,-i1tz135dnbqa.xn--4sf36u6u4w; ; ; # ꙽霣5,.𑁂ᬁ
+xn--2q5a751a653w.xn--4sf0725i; ꙽霣🄆.𑁂ᬁ; [V5, V6]; xn--2q5a751a653w.xn--4sf0725i; ; ; # ꙽霣🄆.𑁂ᬁ
+xn--0ug4208b2vjuk63a.xn--4sf36u6u4w; ꙽‌霣🄆.‌𑁂ᬁ; [C1, V5, V6]; xn--0ug4208b2vjuk63a.xn--4sf36u6u4w; ; ; # ꙽霣🄆.𑁂ᬁ
+兎。ᠼ󠴜𑚶𑰿; 兎.ᠼ󠴜𑚶𑰿; [P1, V6]; xn--b5q.xn--v7e6041kqqd4m251b; ; ; # 兎.ᠼ𑚶𑰿
+兎。ᠼ󠴜𑚶𑰿; 兎.ᠼ󠴜𑚶𑰿; [P1, V6]; xn--b5q.xn--v7e6041kqqd4m251b; ; ; # 兎.ᠼ𑚶𑰿
+xn--b5q.xn--v7e6041kqqd4m251b; 兎.ᠼ󠴜𑚶𑰿; [V6]; xn--b5q.xn--v7e6041kqqd4m251b; ; ; # 兎.ᠼ𑚶𑰿
+𝟙。‍𝟸‍⁷; 1.‍2‍7; [C2]; 1.xn--27-l1tb; ; 1.27; [] # 1.27
+1。‍2‍7; 1.‍2‍7; [C2]; 1.xn--27-l1tb; ; 1.27; [] # 1.27
+1.27; ; ; ; ; ; # 1.27
+1.xn--27-l1tb; 1.‍2‍7; [C2]; 1.xn--27-l1tb; ; ; # 1.27
+ᡨ-。󠻋𝟷; ᡨ-.󠻋1; [P1, V3, V6]; xn----z8j.xn--1-5671m; ; ; # ᡨ-.1
+ᡨ-。󠻋1; ᡨ-.󠻋1; [P1, V3, V6]; xn----z8j.xn--1-5671m; ; ; # ᡨ-.1
+xn----z8j.xn--1-5671m; ᡨ-.󠻋1; [V3, V6]; xn----z8j.xn--1-5671m; ; ; # ᡨ-.1
+𑰻񵀐𐫚.٨⁹; 𑰻񵀐𐫚.٨9; [B1, P1, V5, V6]; xn--gx9cr01aul57i.xn--9-oqc; ; ; # 𑰻𐫚.٨9
+𑰻񵀐𐫚.٨9; ; [B1, P1, V5, V6]; xn--gx9cr01aul57i.xn--9-oqc; ; ; # 𑰻𐫚.٨9
+xn--gx9cr01aul57i.xn--9-oqc; 𑰻񵀐𐫚.٨9; [B1, V5, V6]; xn--gx9cr01aul57i.xn--9-oqc; ; ; # 𑰻𐫚.٨9
+Ⴜ򈷭ྀ⾇。Ⴏ♀‌‌; Ⴜ򈷭ྀ舛.Ⴏ♀‌‌; [C1, P1, V6]; xn--zed54dz10wo343g.xn--nnd089ea464d; ; xn--zed54dz10wo343g.xn--nnd651i; [P1, V6] # Ⴜྀ舛.Ⴏ♀
+Ⴜ򈷭ྀ舛。Ⴏ♀‌‌; Ⴜ򈷭ྀ舛.Ⴏ♀‌‌; [C1, P1, V6]; xn--zed54dz10wo343g.xn--nnd089ea464d; ; xn--zed54dz10wo343g.xn--nnd651i; [P1, V6] # Ⴜྀ舛.Ⴏ♀
+ⴜ򈷭ྀ舛。ⴏ♀‌‌; ⴜ򈷭ྀ舛.ⴏ♀‌‌; [C1, P1, V6]; xn--zed372mdj2do3v4h.xn--0uga678bgyh; ; xn--zed372mdj2do3v4h.xn--e5h11w; [P1, V6] # ⴜྀ舛.ⴏ♀
+xn--zed372mdj2do3v4h.xn--e5h11w; ⴜ򈷭ྀ舛.ⴏ♀; [V6]; xn--zed372mdj2do3v4h.xn--e5h11w; ; ; # ⴜྀ舛.ⴏ♀
+xn--zed372mdj2do3v4h.xn--0uga678bgyh; ⴜ򈷭ྀ舛.ⴏ♀‌‌; [C1, V6]; xn--zed372mdj2do3v4h.xn--0uga678bgyh; ; ; # ⴜྀ舛.ⴏ♀
+xn--zed54dz10wo343g.xn--nnd651i; Ⴜ򈷭ྀ舛.Ⴏ♀; [V6]; xn--zed54dz10wo343g.xn--nnd651i; ; ; # Ⴜྀ舛.Ⴏ♀
+xn--zed54dz10wo343g.xn--nnd089ea464d; Ⴜ򈷭ྀ舛.Ⴏ♀‌‌; [C1, V6]; xn--zed54dz10wo343g.xn--nnd089ea464d; ; ; # Ⴜྀ舛.Ⴏ♀
+ⴜ򈷭ྀ⾇。ⴏ♀‌‌; ⴜ򈷭ྀ舛.ⴏ♀‌‌; [C1, P1, V6]; xn--zed372mdj2do3v4h.xn--0uga678bgyh; ; xn--zed372mdj2do3v4h.xn--e5h11w; [P1, V6] # ⴜྀ舛.ⴏ♀
+𑁆𝟰.‍; 𑁆4.‍; [C2, V5]; xn--4-xu7i.xn--1ug; ; xn--4-xu7i.; [V5] # 𑁆4.
+𑁆4.‍; ; [C2, V5]; xn--4-xu7i.xn--1ug; ; xn--4-xu7i.; [V5] # 𑁆4.
+xn--4-xu7i.; 𑁆4.; [V5]; xn--4-xu7i.; ; ; # 𑁆4.
+xn--4-xu7i.xn--1ug; 𑁆4.‍; [C2, V5]; xn--4-xu7i.xn--1ug; ; ; # 𑁆4.
+񮴘Ⴞ癀。𑘿‍‌붼; 񮴘Ⴞ癀.𑘿‍‌붼; [C1, P1, V5, V6]; xn--2nd6803c7q37d.xn--0ugb6122js83c; ; xn--2nd6803c7q37d.xn--et3bn23n; [P1, V5, V6] # Ⴞ癀.𑘿붼
+񮴘Ⴞ癀。𑘿‍‌붼; 񮴘Ⴞ癀.𑘿‍‌붼; [C1, P1, V5, V6]; xn--2nd6803c7q37d.xn--0ugb6122js83c; ; xn--2nd6803c7q37d.xn--et3bn23n; [P1, V5, V6] # Ⴞ癀.𑘿붼
+񮴘Ⴞ癀。𑘿‍‌붼; 񮴘Ⴞ癀.𑘿‍‌붼; [C1, P1, V5, V6]; xn--2nd6803c7q37d.xn--0ugb6122js83c; ; xn--2nd6803c7q37d.xn--et3bn23n; [P1, V5, V6] # Ⴞ癀.𑘿붼
+񮴘Ⴞ癀。𑘿‍‌붼; 񮴘Ⴞ癀.𑘿‍‌붼; [C1, P1, V5, V6]; xn--2nd6803c7q37d.xn--0ugb6122js83c; ; xn--2nd6803c7q37d.xn--et3bn23n; [P1, V5, V6] # Ⴞ癀.𑘿붼
+񮴘ⴞ癀。𑘿‍‌붼; 񮴘ⴞ癀.𑘿‍‌붼; [C1, P1, V5, V6]; xn--mlju35u7qx2f.xn--0ugb6122js83c; ; xn--mlju35u7qx2f.xn--et3bn23n; [P1, V5, V6] # ⴞ癀.𑘿붼
+񮴘ⴞ癀。𑘿‍‌붼; 񮴘ⴞ癀.𑘿‍‌붼; [C1, P1, V5, V6]; xn--mlju35u7qx2f.xn--0ugb6122js83c; ; xn--mlju35u7qx2f.xn--et3bn23n; [P1, V5, V6] # ⴞ癀.𑘿붼
+xn--mlju35u7qx2f.xn--et3bn23n; 񮴘ⴞ癀.𑘿붼; [V5, V6]; xn--mlju35u7qx2f.xn--et3bn23n; ; ; # ⴞ癀.𑘿붼
+xn--mlju35u7qx2f.xn--0ugb6122js83c; 񮴘ⴞ癀.𑘿‍‌붼; [C1, V5, V6]; xn--mlju35u7qx2f.xn--0ugb6122js83c; ; ; # ⴞ癀.𑘿붼
+xn--2nd6803c7q37d.xn--et3bn23n; 񮴘Ⴞ癀.𑘿붼; [V5, V6]; xn--2nd6803c7q37d.xn--et3bn23n; ; ; # Ⴞ癀.𑘿붼
+xn--2nd6803c7q37d.xn--0ugb6122js83c; 񮴘Ⴞ癀.𑘿‍‌붼; [C1, V5, V6]; xn--2nd6803c7q37d.xn--0ugb6122js83c; ; ; # Ⴞ癀.𑘿붼
+񮴘ⴞ癀。𑘿‍‌붼; 񮴘ⴞ癀.𑘿‍‌붼; [C1, P1, V5, V6]; xn--mlju35u7qx2f.xn--0ugb6122js83c; ; xn--mlju35u7qx2f.xn--et3bn23n; [P1, V5, V6] # ⴞ癀.𑘿붼
+񮴘ⴞ癀。𑘿‍‌붼; 񮴘ⴞ癀.𑘿‍‌붼; [C1, P1, V5, V6]; xn--mlju35u7qx2f.xn--0ugb6122js83c; ; xn--mlju35u7qx2f.xn--et3bn23n; [P1, V5, V6] # ⴞ癀.𑘿붼
+󚀅-்。ڹ; 󚀅-்.ڹ; [B6, P1, V6]; xn----mze84808x.xn--skb; ; ; # -்.ڹ
+xn----mze84808x.xn--skb; 󚀅-்.ڹ; [B6, V6]; xn----mze84808x.xn--skb; ; ; # -்.ڹ
+ᡃ𝟧≯ᠣ.氁񨏱ꁫ; ᡃ5≯ᠣ.氁񨏱ꁫ; [P1, V6]; xn--5-24jyf768b.xn--lqw213ime95g; ; ; # ᡃ5≯ᠣ.氁ꁫ
+ᡃ𝟧≯ᠣ.氁񨏱ꁫ; ᡃ5≯ᠣ.氁񨏱ꁫ; [P1, V6]; xn--5-24jyf768b.xn--lqw213ime95g; ; ; # ᡃ5≯ᠣ.氁ꁫ
+ᡃ5≯ᠣ.氁񨏱ꁫ; ; [P1, V6]; xn--5-24jyf768b.xn--lqw213ime95g; ; ; # ᡃ5≯ᠣ.氁ꁫ
+ᡃ5≯ᠣ.氁񨏱ꁫ; ᡃ5≯ᠣ.氁񨏱ꁫ; [P1, V6]; xn--5-24jyf768b.xn--lqw213ime95g; ; ; # ᡃ5≯ᠣ.氁ꁫ
+xn--5-24jyf768b.xn--lqw213ime95g; ᡃ5≯ᠣ.氁񨏱ꁫ; [V6]; xn--5-24jyf768b.xn--lqw213ime95g; ; ; # ᡃ5≯ᠣ.氁ꁫ
+𐹬𝩇.ྲྀ; 𐹬𝩇.ྲྀ; [B1, B3, B6, V5]; xn--ko0d8295a.xn--zed3h; ; ; # 𐹬𝩇.ྲྀ
+𐹬𝩇.ྲྀ; 𐹬𝩇.ྲྀ; [B1, B3, B6, V5]; xn--ko0d8295a.xn--zed3h; ; ; # 𐹬𝩇.ྲྀ
+𐹬𝩇.ྲྀ; ; [B1, B3, B6, V5]; xn--ko0d8295a.xn--zed3h; ; ; # 𐹬𝩇.ྲྀ
+xn--ko0d8295a.xn--zed3h; 𐹬𝩇.ྲྀ; [B1, B3, B6, V5]; xn--ko0d8295a.xn--zed3h; ; ; # 𐹬𝩇.ྲྀ
+-𑈶⒏.⒎𰛢󠎭; -𑈶⒏.⒎𰛢󠎭; [P1, V3, V6]; xn----scp6252h.xn--zshy411yzpx2d; ; ; # -𑈶⒏.⒎
+-𑈶8..7.𰛢󠎭; ; [P1, V3, V6, X4_2]; xn---8-bv5o..7.xn--c35nf1622b; [P1, V3, V6, A4_2]; ; # -𑈶8..7.
+xn---8-bv5o..7.xn--c35nf1622b; -𑈶8..7.𰛢󠎭; [V3, V6, X4_2]; xn---8-bv5o..7.xn--c35nf1622b; [V3, V6, A4_2]; ; # -𑈶8..7.
+xn----scp6252h.xn--zshy411yzpx2d; -𑈶⒏.⒎𰛢󠎭; [V3, V6]; xn----scp6252h.xn--zshy411yzpx2d; ; ; # -𑈶⒏.⒎
+‌Ⴁ畝‍.≮; ‌Ⴁ畝‍.≮; [C1, C2, P1, V6]; xn--8md700fea3748f.xn--gdh; ; xn--8md0962c.xn--gdh; [P1, V6] # Ⴁ畝.≮
+‌Ⴁ畝‍.≮; ‌Ⴁ畝‍.≮; [C1, C2, P1, V6]; xn--8md700fea3748f.xn--gdh; ; xn--8md0962c.xn--gdh; [P1, V6] # Ⴁ畝.≮
+‌Ⴁ畝‍.≮; ; [C1, C2, P1, V6]; xn--8md700fea3748f.xn--gdh; ; xn--8md0962c.xn--gdh; [P1, V6] # Ⴁ畝.≮
+‌Ⴁ畝‍.≮; ‌Ⴁ畝‍.≮; [C1, C2, P1, V6]; xn--8md700fea3748f.xn--gdh; ; xn--8md0962c.xn--gdh; [P1, V6] # Ⴁ畝.≮
+‌ⴁ畝‍.≮; ‌ⴁ畝‍.≮; [C1, C2, P1, V6]; xn--0ugc160hb36e.xn--gdh; ; xn--skjy82u.xn--gdh; [P1, V6] # ⴁ畝.≮
+‌ⴁ畝‍.≮; ; [C1, C2, P1, V6]; xn--0ugc160hb36e.xn--gdh; ; xn--skjy82u.xn--gdh; [P1, V6] # ⴁ畝.≮
+xn--skjy82u.xn--gdh; ⴁ畝.≮; [V6]; xn--skjy82u.xn--gdh; ; ; # ⴁ畝.≮
+xn--0ugc160hb36e.xn--gdh; ‌ⴁ畝‍.≮; [C1, C2, V6]; xn--0ugc160hb36e.xn--gdh; ; ; # ⴁ畝.≮
+xn--8md0962c.xn--gdh; Ⴁ畝.≮; [V6]; xn--8md0962c.xn--gdh; ; ; # Ⴁ畝.≮
+xn--8md700fea3748f.xn--gdh; ‌Ⴁ畝‍.≮; [C1, C2, V6]; xn--8md700fea3748f.xn--gdh; ; ; # Ⴁ畝.≮
+‌ⴁ畝‍.≮; ‌ⴁ畝‍.≮; [C1, C2, P1, V6]; xn--0ugc160hb36e.xn--gdh; ; xn--skjy82u.xn--gdh; [P1, V6] # ⴁ畝.≮
+‌ⴁ畝‍.≮; ‌ⴁ畝‍.≮; [C1, C2, P1, V6]; xn--0ugc160hb36e.xn--gdh; ; xn--skjy82u.xn--gdh; [P1, V6] # ⴁ畝.≮
+歷。𐹻≯󳛽‍; 歷.𐹻≯󳛽‍; [B1, C2, P1, V6]; xn--nmw.xn--1ugx6gs128a1134j; ; xn--nmw.xn--hdh7804gdms2h; [B1, P1, V6] # 歷.𐹻≯
+歷。𐹻≯󳛽‍; 歷.𐹻≯󳛽‍; [B1, C2, P1, V6]; xn--nmw.xn--1ugx6gs128a1134j; ; xn--nmw.xn--hdh7804gdms2h; [B1, P1, V6] # 歷.𐹻≯
+歷。𐹻≯󳛽‍; 歷.𐹻≯󳛽‍; [B1, C2, P1, V6]; xn--nmw.xn--1ugx6gs128a1134j; ; xn--nmw.xn--hdh7804gdms2h; [B1, P1, V6] # 歷.𐹻≯
+歷。𐹻≯󳛽‍; 歷.𐹻≯󳛽‍; [B1, C2, P1, V6]; xn--nmw.xn--1ugx6gs128a1134j; ; xn--nmw.xn--hdh7804gdms2h; [B1, P1, V6] # 歷.𐹻≯
+xn--nmw.xn--hdh7804gdms2h; 歷.𐹻≯󳛽; [B1, V6]; xn--nmw.xn--hdh7804gdms2h; ; ; # 歷.𐹻≯
+xn--nmw.xn--1ugx6gs128a1134j; 歷.𐹻≯󳛽‍; [B1, C2, V6]; xn--nmw.xn--1ugx6gs128a1134j; ; ; # 歷.𐹻≯
+໋‍.鎁󠰑; ໋‍.鎁󠰑; [C2, P1, V5, V6]; xn--t8c059f.xn--iz4a43209d; ; xn--t8c.xn--iz4a43209d; [P1, V5, V6] # ໋.鎁
+໋‍.鎁󠰑; ; [C2, P1, V5, V6]; xn--t8c059f.xn--iz4a43209d; ; xn--t8c.xn--iz4a43209d; [P1, V5, V6] # ໋.鎁
+xn--t8c.xn--iz4a43209d; ໋.鎁󠰑; [V5, V6]; xn--t8c.xn--iz4a43209d; ; ; # ໋.鎁
+xn--t8c059f.xn--iz4a43209d; ໋‍.鎁󠰑; [C2, V5, V6]; xn--t8c059f.xn--iz4a43209d; ; ; # ໋.鎁
+‍‌𞤀。𱘅𐶃; ‍‌𞤢.𱘅𐶃; [B1, B5, B6, C1, C2, P1, V6]; xn--0ugb45126a.xn--wh0dj799f; ; xn--9d6h.xn--wh0dj799f; [B5, B6, P1, V6] # 𞤢.
+‍‌𞤀。𱘅𐶃; ‍‌𞤢.𱘅𐶃; [B1, B5, B6, C1, C2, P1, V6]; xn--0ugb45126a.xn--wh0dj799f; ; xn--9d6h.xn--wh0dj799f; [B5, B6, P1, V6] # 𞤢.
+‍‌𞤢。𱘅𐶃; ‍‌𞤢.𱘅𐶃; [B1, B5, B6, C1, C2, P1, V6]; xn--0ugb45126a.xn--wh0dj799f; ; xn--9d6h.xn--wh0dj799f; [B5, B6, P1, V6] # 𞤢.
+xn--9d6h.xn--wh0dj799f; 𞤢.𱘅𐶃; [B5, B6, V6]; xn--9d6h.xn--wh0dj799f; ; ; # 𞤢.
+xn--0ugb45126a.xn--wh0dj799f; ‍‌𞤢.𱘅𐶃; [B1, B5, B6, C1, C2, V6]; xn--0ugb45126a.xn--wh0dj799f; ; ; # 𞤢.
+‍‌𞤢。𱘅𐶃; ‍‌𞤢.𱘅𐶃; [B1, B5, B6, C1, C2, P1, V6]; xn--0ugb45126a.xn--wh0dj799f; ; xn--9d6h.xn--wh0dj799f; [B5, B6, P1, V6] # 𞤢.
+ب≠𝟫-.ς⒍𐹦≠; ب≠9-.ς⒍𐹦≠; [B3, B5, B6, P1, V3, V6]; xn--9--etd0100a.xn--3xa097mzpbzz04b; ; xn--9--etd0100a.xn--4xa887mzpbzz04b; # ب≠9-.ς⒍𐹦≠
+ب≠𝟫-.ς⒍𐹦≠; ب≠9-.ς⒍𐹦≠; [B3, B5, B6, P1, V3, V6]; xn--9--etd0100a.xn--3xa097mzpbzz04b; ; xn--9--etd0100a.xn--4xa887mzpbzz04b; # ب≠9-.ς⒍𐹦≠
+ب≠9-.ς6.𐹦≠; ; [B1, B3, P1, V3, V6]; xn--9--etd0100a.xn--6-xmb.xn--1ch8704g; ; xn--9--etd0100a.xn--6-zmb.xn--1ch8704g; # ب≠9-.ς6.𐹦≠
+ب≠9-.ς6.𐹦≠; ب≠9-.ς6.𐹦≠; [B1, B3, P1, V3, V6]; xn--9--etd0100a.xn--6-xmb.xn--1ch8704g; ; xn--9--etd0100a.xn--6-zmb.xn--1ch8704g; # ب≠9-.ς6.𐹦≠
+ب≠9-.Σ6.𐹦≠; ب≠9-.σ6.𐹦≠; [B1, B3, P1, V3, V6]; xn--9--etd0100a.xn--6-zmb.xn--1ch8704g; ; ; # ب≠9-.σ6.𐹦≠
+ب≠9-.Σ6.𐹦≠; ب≠9-.σ6.𐹦≠; [B1, B3, P1, V3, V6]; xn--9--etd0100a.xn--6-zmb.xn--1ch8704g; ; ; # ب≠9-.σ6.𐹦≠
+ب≠9-.σ6.𐹦≠; ; [B1, B3, P1, V3, V6]; xn--9--etd0100a.xn--6-zmb.xn--1ch8704g; ; ; # ب≠9-.σ6.𐹦≠
+ب≠9-.σ6.𐹦≠; ب≠9-.σ6.𐹦≠; [B1, B3, P1, V3, V6]; xn--9--etd0100a.xn--6-zmb.xn--1ch8704g; ; ; # ب≠9-.σ6.𐹦≠
+xn--9--etd0100a.xn--6-zmb.xn--1ch8704g; ب≠9-.σ6.𐹦≠; [B1, B3, V3, V6]; xn--9--etd0100a.xn--6-zmb.xn--1ch8704g; ; ; # ب≠9-.σ6.𐹦≠
+xn--9--etd0100a.xn--6-xmb.xn--1ch8704g; ب≠9-.ς6.𐹦≠; [B1, B3, V3, V6]; xn--9--etd0100a.xn--6-xmb.xn--1ch8704g; ; ; # ب≠9-.ς6.𐹦≠
+ب≠𝟫-.Σ⒍𐹦≠; ب≠9-.σ⒍𐹦≠; [B3, B5, B6, P1, V3, V6]; xn--9--etd0100a.xn--4xa887mzpbzz04b; ; ; # ب≠9-.σ⒍𐹦≠
+ب≠𝟫-.Σ⒍𐹦≠; ب≠9-.σ⒍𐹦≠; [B3, B5, B6, P1, V3, V6]; xn--9--etd0100a.xn--4xa887mzpbzz04b; ; ; # ب≠9-.σ⒍𐹦≠
+ب≠𝟫-.σ⒍𐹦≠; ب≠9-.σ⒍𐹦≠; [B3, B5, B6, P1, V3, V6]; xn--9--etd0100a.xn--4xa887mzpbzz04b; ; ; # ب≠9-.σ⒍𐹦≠
+ب≠𝟫-.σ⒍𐹦≠; ب≠9-.σ⒍𐹦≠; [B3, B5, B6, P1, V3, V6]; xn--9--etd0100a.xn--4xa887mzpbzz04b; ; ; # ب≠9-.σ⒍𐹦≠
+xn--9--etd0100a.xn--4xa887mzpbzz04b; ب≠9-.σ⒍𐹦≠; [B3, B5, B6, V3, V6]; xn--9--etd0100a.xn--4xa887mzpbzz04b; ; ; # ب≠9-.σ⒍𐹦≠
+xn--9--etd0100a.xn--3xa097mzpbzz04b; ب≠9-.ς⒍𐹦≠; [B3, B5, B6, V3, V6]; xn--9--etd0100a.xn--3xa097mzpbzz04b; ; ; # ب≠9-.ς⒍𐹦≠
+򉛴.-ᡢ֒𝨠; ; [P1, V3, V6]; xn--ep37b.xn----hec165lho83b; ; ; # .-ᡢ֒𝨠
+xn--ep37b.xn----hec165lho83b; 򉛴.-ᡢ֒𝨠; [V3, V6]; xn--ep37b.xn----hec165lho83b; ; ; # .-ᡢ֒𝨠
+ۋ⒈ß󠄽。񷋍-; ۋ⒈ß.񷋍-; [B2, B3, B6, P1, V3, V6]; xn--zca541ato3a.xn----q001f; ; xn--ss-d7d6651a.xn----q001f; # ۋ⒈ß.-
+ۋ1.ß󠄽。񷋍-; ۋ1.ß.񷋍-; [B6, P1, V3, V6]; xn--1-cwc.xn--zca.xn----q001f; ; xn--1-cwc.ss.xn----q001f; # ۋ1.ß.-
+ۋ1.SS󠄽。񷋍-; ۋ1.ss.񷋍-; [B6, P1, V3, V6]; xn--1-cwc.ss.xn----q001f; ; ; # ۋ1.ss.-
+ۋ1.ss󠄽。񷋍-; ۋ1.ss.񷋍-; [B6, P1, V3, V6]; xn--1-cwc.ss.xn----q001f; ; ; # ۋ1.ss.-
+ۋ1.Ss󠄽。񷋍-; ۋ1.ss.񷋍-; [B6, P1, V3, V6]; xn--1-cwc.ss.xn----q001f; ; ; # ۋ1.ss.-
+xn--1-cwc.ss.xn----q001f; ۋ1.ss.񷋍-; [B6, V3, V6]; xn--1-cwc.ss.xn----q001f; ; ; # ۋ1.ss.-
+xn--1-cwc.xn--zca.xn----q001f; ۋ1.ß.񷋍-; [B6, V3, V6]; xn--1-cwc.xn--zca.xn----q001f; ; ; # ۋ1.ß.-
+ۋ⒈SS󠄽。񷋍-; ۋ⒈ss.񷋍-; [B2, B3, B6, P1, V3, V6]; xn--ss-d7d6651a.xn----q001f; ; ; # ۋ⒈ss.-
+ۋ⒈ss󠄽。񷋍-; ۋ⒈ss.񷋍-; [B2, B3, B6, P1, V3, V6]; xn--ss-d7d6651a.xn----q001f; ; ; # ۋ⒈ss.-
+ۋ⒈Ss󠄽。񷋍-; ۋ⒈ss.񷋍-; [B2, B3, B6, P1, V3, V6]; xn--ss-d7d6651a.xn----q001f; ; ; # ۋ⒈ss.-
+xn--ss-d7d6651a.xn----q001f; ۋ⒈ss.񷋍-; [B2, B3, B6, V3, V6]; xn--ss-d7d6651a.xn----q001f; ; ; # ۋ⒈ss.-
+xn--zca541ato3a.xn----q001f; ۋ⒈ß.񷋍-; [B2, B3, B6, V3, V6]; xn--zca541ato3a.xn----q001f; ; ; # ۋ⒈ß.-
+𿀫.᮪ςႦ‍; 𿀫.᮪ςႦ‍; [C2, P1, V5, V6]; xn--nu4s.xn--3xa417dxriome; ; xn--nu4s.xn--4xa217dxri; [P1, V5, V6] # .᮪ςႦ
+𿀫.᮪ςႦ‍; ; [C2, P1, V5, V6]; xn--nu4s.xn--3xa417dxriome; ; xn--nu4s.xn--4xa217dxri; [P1, V5, V6] # .᮪ςႦ
+𿀫.᮪ςⴆ‍; ; [C2, P1, V5, V6]; xn--nu4s.xn--3xa353jk8cs1q; ; xn--nu4s.xn--4xa153j7im; [P1, V5, V6] # .᮪ςⴆ
+𿀫.᮪ΣႦ‍; 𿀫.᮪σႦ‍; [C2, P1, V5, V6]; xn--nu4s.xn--4xa217dxriome; ; xn--nu4s.xn--4xa217dxri; [P1, V5, V6] # .᮪σႦ
+𿀫.᮪σⴆ‍; ; [C2, P1, V5, V6]; xn--nu4s.xn--4xa153jk8cs1q; ; xn--nu4s.xn--4xa153j7im; [P1, V5, V6] # .᮪σⴆ
+𿀫.᮪Σⴆ‍; 𿀫.᮪σⴆ‍; [C2, P1, V5, V6]; xn--nu4s.xn--4xa153jk8cs1q; ; xn--nu4s.xn--4xa153j7im; [P1, V5, V6] # .᮪σⴆ
+xn--nu4s.xn--4xa153j7im; 𿀫.᮪σⴆ; [V5, V6]; xn--nu4s.xn--4xa153j7im; ; ; # .᮪σⴆ
+xn--nu4s.xn--4xa153jk8cs1q; 𿀫.᮪σⴆ‍; [C2, V5, V6]; xn--nu4s.xn--4xa153jk8cs1q; ; ; # .᮪σⴆ
+xn--nu4s.xn--4xa217dxri; 𿀫.᮪σႦ; [V5, V6]; xn--nu4s.xn--4xa217dxri; ; ; # .᮪σႦ
+xn--nu4s.xn--4xa217dxriome; 𿀫.᮪σႦ‍; [C2, V5, V6]; xn--nu4s.xn--4xa217dxriome; ; ; # .᮪σႦ
+xn--nu4s.xn--3xa353jk8cs1q; 𿀫.᮪ςⴆ‍; [C2, V5, V6]; xn--nu4s.xn--3xa353jk8cs1q; ; ; # .᮪ςⴆ
+xn--nu4s.xn--3xa417dxriome; 𿀫.᮪ςႦ‍; [C2, V5, V6]; xn--nu4s.xn--3xa417dxriome; ; ; # .᮪ςႦ
+𿀫.᮪ςⴆ‍; 𿀫.᮪ςⴆ‍; [C2, P1, V5, V6]; xn--nu4s.xn--3xa353jk8cs1q; ; xn--nu4s.xn--4xa153j7im; [P1, V5, V6] # .᮪ςⴆ
+𿀫.᮪ΣႦ‍; 𿀫.᮪σႦ‍; [C2, P1, V5, V6]; xn--nu4s.xn--4xa217dxriome; ; xn--nu4s.xn--4xa217dxri; [P1, V5, V6] # .᮪σႦ
+𿀫.᮪σⴆ‍; 𿀫.᮪σⴆ‍; [C2, P1, V5, V6]; xn--nu4s.xn--4xa153jk8cs1q; ; xn--nu4s.xn--4xa153j7im; [P1, V5, V6] # .᮪σⴆ
+𿀫.᮪Σⴆ‍; 𿀫.᮪σⴆ‍; [C2, P1, V5, V6]; xn--nu4s.xn--4xa153jk8cs1q; ; xn--nu4s.xn--4xa153j7im; [P1, V5, V6] # .᮪σⴆ
+⾆࣢.𝈴; 舌࣢.𝈴; [B1, B5, B6, P1, V6]; xn--l0b9413d.xn--kl1h; ; ; # 舌.𝈴
+舌࣢.𝈴; ; [B1, B5, B6, P1, V6]; xn--l0b9413d.xn--kl1h; ; ; # 舌.𝈴
+xn--l0b9413d.xn--kl1h; 舌࣢.𝈴; [B1, B5, B6, V6]; xn--l0b9413d.xn--kl1h; ; ; # 舌.𝈴
+⫞𐹶𖫴。⭠⒈; ⫞𐹶𖫴.⭠⒈; [B1, P1, V6]; xn--53ix188et88b.xn--tsh52w; ; ; # ⫞𐹶𖫴.⭠⒈
+⫞𐹶𖫴。⭠1.; ⫞𐹶𖫴.⭠1.; [B1]; xn--53ix188et88b.xn--1-h6r.; ; ; # ⫞𐹶𖫴.⭠1.
+xn--53ix188et88b.xn--1-h6r.; ⫞𐹶𖫴.⭠1.; [B1]; xn--53ix188et88b.xn--1-h6r.; ; ; # ⫞𐹶𖫴.⭠1.
+xn--53ix188et88b.xn--tsh52w; ⫞𐹶𖫴.⭠⒈; [B1, V6]; xn--53ix188et88b.xn--tsh52w; ; ; # ⫞𐹶𖫴.⭠⒈
+⒈‌ꫬ︒.્; ⒈‌ꫬ︒.્; [C1, P1, V5, V6]; xn--0ug78o720myr1c.xn--mfc; ; xn--tsh0720cse8b.xn--mfc; [P1, V5, V6] # ⒈ꫬ︒.્
+1.‌ꫬ。.્; 1.‌ꫬ..્; [C1, V5, X4_2]; 1.xn--0ug7185c..xn--mfc; [C1, V5, A4_2]; 1.xn--sv9a..xn--mfc; [V5, A4_2] # 1.ꫬ..્
+1.xn--sv9a..xn--mfc; 1.ꫬ..્; [V5, X4_2]; 1.xn--sv9a..xn--mfc; [V5, A4_2]; ; # 1.ꫬ..્
+1.xn--0ug7185c..xn--mfc; 1.‌ꫬ..્; [C1, V5, X4_2]; 1.xn--0ug7185c..xn--mfc; [C1, V5, A4_2]; ; # 1.ꫬ..્
+xn--tsh0720cse8b.xn--mfc; ⒈ꫬ︒.્; [V5, V6]; xn--tsh0720cse8b.xn--mfc; ; ; # ⒈ꫬ︒.્
+xn--0ug78o720myr1c.xn--mfc; ⒈‌ꫬ︒.્; [C1, V5, V6]; xn--0ug78o720myr1c.xn--mfc; ; ; # ⒈ꫬ︒.્
+ె。䰀٨𞭅󠅼; ె.䰀٨𞭅; [B1, B3, B5, B6, P1, V5, V6]; xn--eqc.xn--hib5476aim6t; ; ; # ె.䰀٨
+xn--eqc.xn--hib5476aim6t; ె.䰀٨𞭅; [B1, B3, B5, B6, V5, V6]; xn--eqc.xn--hib5476aim6t; ; ; # ె.䰀٨
+ß‍.᯲񄾼; ; [C2, P1, V5, V6]; xn--zca870n.xn--0zf22107b; ; ss.xn--0zf22107b; [P1, V5, V6] # ß.᯲
+SS‍.᯲񄾼; ss‍.᯲񄾼; [C2, P1, V5, V6]; xn--ss-n1t.xn--0zf22107b; ; ss.xn--0zf22107b; [P1, V5, V6] # ss.᯲
+ss‍.᯲񄾼; ; [C2, P1, V5, V6]; xn--ss-n1t.xn--0zf22107b; ; ss.xn--0zf22107b; [P1, V5, V6] # ss.᯲
+Ss‍.᯲񄾼; ss‍.᯲񄾼; [C2, P1, V5, V6]; xn--ss-n1t.xn--0zf22107b; ; ss.xn--0zf22107b; [P1, V5, V6] # ss.᯲
+ss.xn--0zf22107b; ss.᯲񄾼; [V5, V6]; ss.xn--0zf22107b; ; ; # ss.᯲
+xn--ss-n1t.xn--0zf22107b; ss‍.᯲񄾼; [C2, V5, V6]; xn--ss-n1t.xn--0zf22107b; ; ; # ss.᯲
+xn--zca870n.xn--0zf22107b; ß‍.᯲񄾼; [C2, V5, V6]; xn--zca870n.xn--0zf22107b; ; ; # ß.᯲
+𑓂‌≮.≮; ; [P1, V5, V6]; xn--0ugy6glz29a.xn--gdh; ; xn--gdhz656g.xn--gdh; # 𑓂≮.≮
+𑓂‌≮.≮; 𑓂‌≮.≮; [P1, V5, V6]; xn--0ugy6glz29a.xn--gdh; ; xn--gdhz656g.xn--gdh; # 𑓂≮.≮
+xn--gdhz656g.xn--gdh; 𑓂≮.≮; [V5, V6]; xn--gdhz656g.xn--gdh; ; ; # 𑓂≮.≮
+xn--0ugy6glz29a.xn--gdh; 𑓂‌≮.≮; [V5, V6]; xn--0ugy6glz29a.xn--gdh; ; ; # 𑓂≮.≮
+🕼.ᅠ; 🕼.ᅠ; [P1, V6]; xn--my8h.xn--cl7c; ; ; # 🕼.
+🕼.ᅠ; ; [P1, V6]; xn--my8h.xn--psd; ; ; # 🕼.
+xn--my8h.xn--psd; 🕼.ᅠ; [V6]; xn--my8h.xn--psd; ; ; # 🕼.
+xn--my8h.xn--cl7c; 🕼.ᅠ; [V6]; xn--my8h.xn--cl7c; ; ; # 🕼.
+ᡔﶂ。񷘎; ᡔلحى.񷘎; [B5, B6, P1, V6]; xn--sgb9bq785p.xn--bc31b; ; ; # ᡔلحى.
+ᡔلحى。񷘎; ᡔلحى.񷘎; [B5, B6, P1, V6]; xn--sgb9bq785p.xn--bc31b; ; ; # ᡔلحى.
+xn--sgb9bq785p.xn--bc31b; ᡔلحى.񷘎; [B5, B6, V6]; xn--sgb9bq785p.xn--bc31b; ; ; # ᡔلحى.
+爕򳙑.𝟰気; 爕򳙑.4気; [P1, V6]; xn--1zxq3199c.xn--4-678b; ; ; # 爕.4気
+爕򳙑.4気; ; [P1, V6]; xn--1zxq3199c.xn--4-678b; ; ; # 爕.4気
+xn--1zxq3199c.xn--4-678b; 爕򳙑.4気; [V6]; xn--1zxq3199c.xn--4-678b; ; ; # 爕.4気
+⒋𑍍Ⴝ-.𞬪්ֵ; ⒋𑍍Ⴝ-.𞬪්ֵ; [B1, P1, V3, V6]; xn----t1g323mnk9t.xn--ddb152b7y23b; ; ; # ⒋𑍍Ⴝ-.්ֵ
+4.𑍍Ⴝ-.𞬪්ֵ; ; [B1, B6, P1, V3, V5, V6]; 4.xn----t1g9869q.xn--ddb152b7y23b; ; ; # 4.𑍍Ⴝ-.්ֵ
+4.𑍍ⴝ-.𞬪්ֵ; ; [B1, B6, P1, V3, V5, V6]; 4.xn----wwsx259f.xn--ddb152b7y23b; ; ; # 4.𑍍ⴝ-.්ֵ
+4.xn----wwsx259f.xn--ddb152b7y23b; 4.𑍍ⴝ-.𞬪්ֵ; [B1, B6, V3, V5, V6]; 4.xn----wwsx259f.xn--ddb152b7y23b; ; ; # 4.𑍍ⴝ-.්ֵ
+4.xn----t1g9869q.xn--ddb152b7y23b; 4.𑍍Ⴝ-.𞬪්ֵ; [B1, B6, V3, V5, V6]; 4.xn----t1g9869q.xn--ddb152b7y23b; ; ; # 4.𑍍Ⴝ-.්ֵ
+⒋𑍍ⴝ-.𞬪්ֵ; ⒋𑍍ⴝ-.𞬪්ֵ; [B1, P1, V3, V6]; xn----jcp487avl3w.xn--ddb152b7y23b; ; ; # ⒋𑍍ⴝ-.්ֵ
+xn----jcp487avl3w.xn--ddb152b7y23b; ⒋𑍍ⴝ-.𞬪්ֵ; [B1, V3, V6]; xn----jcp487avl3w.xn--ddb152b7y23b; ; ; # ⒋𑍍ⴝ-.්ֵ
+xn----t1g323mnk9t.xn--ddb152b7y23b; ⒋𑍍Ⴝ-.𞬪්ֵ; [B1, V3, V6]; xn----t1g323mnk9t.xn--ddb152b7y23b; ; ; # ⒋𑍍Ⴝ-.්ֵ
+󞝃。򑆃񉢗--; 󞝃.򑆃񉢗--; [P1, V2, V3, V6]; xn--2y75e.xn-----1l15eer88n; ; ; # .--
+xn--2y75e.xn-----1l15eer88n; 󞝃.򑆃񉢗--; [V2, V3, V6]; xn--2y75e.xn-----1l15eer88n; ; ; # .--
+‍ߟ。‌꯭; ‍ߟ.‌꯭; [B1, C1, C2]; xn--6sb394j.xn--0ug1126c; ; xn--6sb.xn--429a; [B1, B3, B6, V5] # ߟ.꯭
+‍ߟ。‌꯭; ‍ߟ.‌꯭; [B1, C1, C2]; xn--6sb394j.xn--0ug1126c; ; xn--6sb.xn--429a; [B1, B3, B6, V5] # ߟ.꯭
+xn--6sb.xn--429a; ߟ.꯭; [B1, B3, B6, V5]; xn--6sb.xn--429a; ; ; # ߟ.꯭
+xn--6sb394j.xn--0ug1126c; ‍ߟ.‌꯭; [B1, C1, C2]; xn--6sb394j.xn--0ug1126c; ; ; # ߟ.꯭
+𞮽߿ࡎ。ᢍ򝹁𐫘; 𞮽߿ࡎ.ᢍ򝹁𐫘; [B5, B6, P1, V6]; xn--3tb2nz468k.xn--69e8615j5rn5d; ; ; # ߿ࡎ.ᢍ𐫘
+𞮽߿ࡎ。ᢍ򝹁𐫘; 𞮽߿ࡎ.ᢍ򝹁𐫘; [B5, B6, P1, V6]; xn--3tb2nz468k.xn--69e8615j5rn5d; ; ; # ߿ࡎ.ᢍ𐫘
+xn--3tb2nz468k.xn--69e8615j5rn5d; 𞮽߿ࡎ.ᢍ򝹁𐫘; [B5, B6, V6]; xn--3tb2nz468k.xn--69e8615j5rn5d; ; ; # ߿ࡎ.ᢍ𐫘
+ۭ𞺌𑄚᜔.ꡞࢷ; ۭم𑄚᜔.ꡞࢷ; [B1, B5, B6, V5]; xn--hhb94ag41b739u.xn--dzb5582f; ; ; # ۭم𑄚᜔.ꡞࢷ
+ۭم𑄚᜔.ꡞࢷ; ; [B1, B5, B6, V5]; xn--hhb94ag41b739u.xn--dzb5582f; ; ; # ۭم𑄚᜔.ꡞࢷ
+xn--hhb94ag41b739u.xn--dzb5582f; ۭم𑄚᜔.ꡞࢷ; [B1, B5, B6, V5]; xn--hhb94ag41b739u.xn--dzb5582f; ; ; # ۭم𑄚᜔.ꡞࢷ
+񻂵킃𑘶ߜ。ςؼς; 񻂵킃𑘶ߜ.ςؼς; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--3xaa51q; ; xn--3sb7483hoyvbbe76g.xn--4xaa21q; # 킃𑘶ߜ.ςؼς
+񻂵킃𑘶ߜ。ςؼς; 񻂵킃𑘶ߜ.ςؼς; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--3xaa51q; ; xn--3sb7483hoyvbbe76g.xn--4xaa21q; # 킃𑘶ߜ.ςؼς
+񻂵킃𑘶ߜ。ςؼς; 񻂵킃𑘶ߜ.ςؼς; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--3xaa51q; ; xn--3sb7483hoyvbbe76g.xn--4xaa21q; # 킃𑘶ߜ.ςؼς
+񻂵킃𑘶ߜ。ςؼς; 񻂵킃𑘶ߜ.ςؼς; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--3xaa51q; ; xn--3sb7483hoyvbbe76g.xn--4xaa21q; # 킃𑘶ߜ.ςؼς
+񻂵킃𑘶ߜ。ΣؼΣ; 񻂵킃𑘶ߜ.σؼσ; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--4xaa21q; ; ; # 킃𑘶ߜ.σؼσ
+񻂵킃𑘶ߜ。ΣؼΣ; 񻂵킃𑘶ߜ.σؼσ; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--4xaa21q; ; ; # 킃𑘶ߜ.σؼσ
+񻂵킃𑘶ߜ。σؼσ; 񻂵킃𑘶ߜ.σؼσ; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--4xaa21q; ; ; # 킃𑘶ߜ.σؼσ
+񻂵킃𑘶ߜ。σؼσ; 񻂵킃𑘶ߜ.σؼσ; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--4xaa21q; ; ; # 킃𑘶ߜ.σؼσ
+񻂵킃𑘶ߜ。Σؼσ; 񻂵킃𑘶ߜ.σؼσ; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--4xaa21q; ; ; # 킃𑘶ߜ.σؼσ
+񻂵킃𑘶ߜ。Σؼσ; 񻂵킃𑘶ߜ.σؼσ; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--4xaa21q; ; ; # 킃𑘶ߜ.σؼσ
+xn--3sb7483hoyvbbe76g.xn--4xaa21q; 񻂵킃𑘶ߜ.σؼσ; [B5, B6, V6]; xn--3sb7483hoyvbbe76g.xn--4xaa21q; ; ; # 킃𑘶ߜ.σؼσ
+񻂵킃𑘶ߜ。Σؼς; 񻂵킃𑘶ߜ.σؼς; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--3xab31q; ; xn--3sb7483hoyvbbe76g.xn--4xaa21q; # 킃𑘶ߜ.σؼς
+񻂵킃𑘶ߜ。Σؼς; 񻂵킃𑘶ߜ.σؼς; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--3xab31q; ; xn--3sb7483hoyvbbe76g.xn--4xaa21q; # 킃𑘶ߜ.σؼς
+񻂵킃𑘶ߜ。σؼς; 񻂵킃𑘶ߜ.σؼς; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--3xab31q; ; xn--3sb7483hoyvbbe76g.xn--4xaa21q; # 킃𑘶ߜ.σؼς
+񻂵킃𑘶ߜ。σؼς; 񻂵킃𑘶ߜ.σؼς; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--3xab31q; ; xn--3sb7483hoyvbbe76g.xn--4xaa21q; # 킃𑘶ߜ.σؼς
+xn--3sb7483hoyvbbe76g.xn--3xab31q; 񻂵킃𑘶ߜ.σؼς; [B5, B6, V6]; xn--3sb7483hoyvbbe76g.xn--3xab31q; ; ; # 킃𑘶ߜ.σؼς
+xn--3sb7483hoyvbbe76g.xn--3xaa51q; 񻂵킃𑘶ߜ.ςؼς; [B5, B6, V6]; xn--3sb7483hoyvbbe76g.xn--3xaa51q; ; ; # 킃𑘶ߜ.ςؼς
+񻂵킃𑘶ߜ。ΣؼΣ; 񻂵킃𑘶ߜ.σؼσ; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--4xaa21q; ; ; # 킃𑘶ߜ.σؼσ
+񻂵킃𑘶ߜ。ΣؼΣ; 񻂵킃𑘶ߜ.σؼσ; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--4xaa21q; ; ; # 킃𑘶ߜ.σؼσ
+񻂵킃𑘶ߜ。σؼσ; 񻂵킃𑘶ߜ.σؼσ; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--4xaa21q; ; ; # 킃𑘶ߜ.σؼσ
+񻂵킃𑘶ߜ。σؼσ; 񻂵킃𑘶ߜ.σؼσ; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--4xaa21q; ; ; # 킃𑘶ߜ.σؼσ
+񻂵킃𑘶ߜ。Σؼσ; 񻂵킃𑘶ߜ.σؼσ; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--4xaa21q; ; ; # 킃𑘶ߜ.σؼσ
+񻂵킃𑘶ߜ。Σؼσ; 񻂵킃𑘶ߜ.σؼσ; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--4xaa21q; ; ; # 킃𑘶ߜ.σؼσ
+񻂵킃𑘶ߜ。Σؼς; 񻂵킃𑘶ߜ.σؼς; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--3xab31q; ; xn--3sb7483hoyvbbe76g.xn--4xaa21q; # 킃𑘶ߜ.σؼς
+񻂵킃𑘶ߜ。Σؼς; 񻂵킃𑘶ߜ.σؼς; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--3xab31q; ; xn--3sb7483hoyvbbe76g.xn--4xaa21q; # 킃𑘶ߜ.σؼς
+񻂵킃𑘶ߜ。σؼς; 񻂵킃𑘶ߜ.σؼς; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--3xab31q; ; xn--3sb7483hoyvbbe76g.xn--4xaa21q; # 킃𑘶ߜ.σؼς
+񻂵킃𑘶ߜ。σؼς; 񻂵킃𑘶ߜ.σؼς; [B5, B6, P1, V6]; xn--3sb7483hoyvbbe76g.xn--3xab31q; ; xn--3sb7483hoyvbbe76g.xn--4xaa21q; # 킃𑘶ߜ.σؼς
+蔰。󠁹ࣝ-𑈵; 蔰.󠁹ࣝ-𑈵; [P1, V6]; xn--sz1a.xn----mrd9984r3dl0i; ; ; # 蔰.ࣝ-𑈵
+xn--sz1a.xn----mrd9984r3dl0i; 蔰.󠁹ࣝ-𑈵; [V6]; xn--sz1a.xn----mrd9984r3dl0i; ; ; # 蔰.ࣝ-𑈵
+ςჅ。ݚ; ςჅ.ݚ; [P1, V6]; xn--3xa677d.xn--epb; ; xn--4xa477d.xn--epb; # ςჅ.ݚ
+ςⴥ。ݚ; ςⴥ.ݚ; ; xn--3xa403s.xn--epb; ; xn--4xa203s.xn--epb; # ςⴥ.ݚ
+ΣჅ。ݚ; σჅ.ݚ; [P1, V6]; xn--4xa477d.xn--epb; ; ; # σჅ.ݚ
+σⴥ。ݚ; σⴥ.ݚ; ; xn--4xa203s.xn--epb; ; ; # σⴥ.ݚ
+Σⴥ。ݚ; σⴥ.ݚ; ; xn--4xa203s.xn--epb; ; ; # σⴥ.ݚ
+xn--4xa203s.xn--epb; σⴥ.ݚ; ; xn--4xa203s.xn--epb; ; ; # σⴥ.ݚ
+σⴥ.ݚ; ; ; xn--4xa203s.xn--epb; ; ; # σⴥ.ݚ
+ΣჅ.ݚ; σჅ.ݚ; [P1, V6]; xn--4xa477d.xn--epb; ; ; # σჅ.ݚ
+Σⴥ.ݚ; σⴥ.ݚ; ; xn--4xa203s.xn--epb; ; ; # σⴥ.ݚ
+xn--4xa477d.xn--epb; σჅ.ݚ; [V6]; xn--4xa477d.xn--epb; ; ; # σჅ.ݚ
+xn--3xa403s.xn--epb; ςⴥ.ݚ; ; xn--3xa403s.xn--epb; ; ; # ςⴥ.ݚ
+ςⴥ.ݚ; ; ; xn--3xa403s.xn--epb; ; xn--4xa203s.xn--epb; # ςⴥ.ݚ
+xn--3xa677d.xn--epb; ςჅ.ݚ; [V6]; xn--3xa677d.xn--epb; ; ; # ςჅ.ݚ
+్Ⴉ𞰓.᭲; ్Ⴉ𞰓.᭲; [B1, B3, B6, P1, V5, V6]; xn--lqc64t7t26c.xn--dwf; ; ; # ్Ⴉ.᭲
+్Ⴉ𞰓.᭲; ; [B1, B3, B6, P1, V5, V6]; xn--lqc64t7t26c.xn--dwf; ; ; # ్Ⴉ.᭲
+్ⴉ𞰓.᭲; ; [B1, B3, B6, P1, V5, V6]; xn--lqc478nlr02a.xn--dwf; ; ; # ్ⴉ.᭲
+xn--lqc478nlr02a.xn--dwf; ్ⴉ𞰓.᭲; [B1, B3, B6, V5, V6]; xn--lqc478nlr02a.xn--dwf; ; ; # ్ⴉ.᭲
+xn--lqc64t7t26c.xn--dwf; ్Ⴉ𞰓.᭲; [B1, B3, B6, V5, V6]; xn--lqc64t7t26c.xn--dwf; ; ; # ్Ⴉ.᭲
+్ⴉ𞰓.᭲; ్ⴉ𞰓.᭲; [B1, B3, B6, P1, V5, V6]; xn--lqc478nlr02a.xn--dwf; ; ; # ్ⴉ.᭲
+⮷≮񎈴󠄟。𐠄; ⮷≮񎈴.𐠄; [B1, P1, V6]; xn--gdh877a3513h.xn--pc9c; ; ; # ⮷≮.𐠄
+⮷≮񎈴󠄟。𐠄; ⮷≮񎈴.𐠄; [B1, P1, V6]; xn--gdh877a3513h.xn--pc9c; ; ; # ⮷≮.𐠄
+xn--gdh877a3513h.xn--pc9c; ⮷≮񎈴.𐠄; [B1, V6]; xn--gdh877a3513h.xn--pc9c; ; ; # ⮷≮.𐠄
+ڼ。‍ẏ‌ᡤ; ڼ.‍ẏ‌ᡤ; [B1, C1, C2]; xn--vkb.xn--08e172ax6aca; ; xn--vkb.xn--08e172a; [] # ڼ.ẏᡤ
+ڼ。‍ẏ‌ᡤ; ڼ.‍ẏ‌ᡤ; [B1, C1, C2]; xn--vkb.xn--08e172ax6aca; ; xn--vkb.xn--08e172a; [] # ڼ.ẏᡤ
+ڼ。‍ẏ‌ᡤ; ڼ.‍ẏ‌ᡤ; [B1, C1, C2]; xn--vkb.xn--08e172ax6aca; ; xn--vkb.xn--08e172a; [] # ڼ.ẏᡤ
+ڼ。‍ẏ‌ᡤ; ڼ.‍ẏ‌ᡤ; [B1, C1, C2]; xn--vkb.xn--08e172ax6aca; ; xn--vkb.xn--08e172a; [] # ڼ.ẏᡤ
+ڼ。‍Ẏ‌ᡤ; ڼ.‍ẏ‌ᡤ; [B1, C1, C2]; xn--vkb.xn--08e172ax6aca; ; xn--vkb.xn--08e172a; [] # ڼ.ẏᡤ
+ڼ。‍Ẏ‌ᡤ; ڼ.‍ẏ‌ᡤ; [B1, C1, C2]; xn--vkb.xn--08e172ax6aca; ; xn--vkb.xn--08e172a; [] # ڼ.ẏᡤ
+xn--vkb.xn--08e172a; ڼ.ẏᡤ; ; xn--vkb.xn--08e172a; ; ; # ڼ.ẏᡤ
+ڼ.ẏᡤ; ; ; xn--vkb.xn--08e172a; ; ; # ڼ.ẏᡤ
+ڼ.ẏᡤ; ڼ.ẏᡤ; ; xn--vkb.xn--08e172a; ; ; # ڼ.ẏᡤ
+ڼ.Ẏᡤ; ڼ.ẏᡤ; ; xn--vkb.xn--08e172a; ; ; # ڼ.ẏᡤ
+ڼ.Ẏᡤ; ڼ.ẏᡤ; ; xn--vkb.xn--08e172a; ; ; # ڼ.ẏᡤ
+xn--vkb.xn--08e172ax6aca; ڼ.‍ẏ‌ᡤ; [B1, C1, C2]; xn--vkb.xn--08e172ax6aca; ; ; # ڼ.ẏᡤ
+ڼ。‍Ẏ‌ᡤ; ڼ.‍ẏ‌ᡤ; [B1, C1, C2]; xn--vkb.xn--08e172ax6aca; ; xn--vkb.xn--08e172a; [] # ڼ.ẏᡤ
+ڼ。‍Ẏ‌ᡤ; ڼ.‍ẏ‌ᡤ; [B1, C1, C2]; xn--vkb.xn--08e172ax6aca; ; xn--vkb.xn--08e172a; [] # ڼ.ẏᡤ
+𐹹𑲛。񑂐්; 𐹹𑲛.񑂐්; [B1, P1, V6]; xn--xo0dg5v.xn--h1c39876d; ; ; # 𐹹𑲛.්
+xn--xo0dg5v.xn--h1c39876d; 𐹹𑲛.񑂐්; [B1, V6]; xn--xo0dg5v.xn--h1c39876d; ; ; # 𐹹𑲛.්
+-≠𑈵。嵕ﻱ۴꥓; -≠𑈵.嵕ي۴꥓; [B1, B5, P1, V3, V6]; xn----ufo4749h.xn--mhb45a235sns3c; ; ; # -≠𑈵.嵕ي۴꥓
+-≠𑈵。嵕ﻱ۴꥓; -≠𑈵.嵕ي۴꥓; [B1, B5, P1, V3, V6]; xn----ufo4749h.xn--mhb45a235sns3c; ; ; # -≠𑈵.嵕ي۴꥓
+-≠𑈵。嵕ي۴꥓; -≠𑈵.嵕ي۴꥓; [B1, B5, P1, V3, V6]; xn----ufo4749h.xn--mhb45a235sns3c; ; ; # -≠𑈵.嵕ي۴꥓
+-≠𑈵。嵕ي۴꥓; -≠𑈵.嵕ي۴꥓; [B1, B5, P1, V3, V6]; xn----ufo4749h.xn--mhb45a235sns3c; ; ; # -≠𑈵.嵕ي۴꥓
+xn----ufo4749h.xn--mhb45a235sns3c; -≠𑈵.嵕ي۴꥓; [B1, B5, V3, V6]; xn----ufo4749h.xn--mhb45a235sns3c; ; ; # -≠𑈵.嵕ي۴꥓
+‌񍸰𐹶ݮ.ہ‍≯‍; ‌񍸰𐹶ݮ.ہ‍≯‍; [B1, B3, C1, C2, P1, V6]; xn--ypb717jrx2o7v94a.xn--0kb660ka35v; ; xn--ypb5875khz9y.xn--0kb682l; [B3, B5, B6, P1, V6] # 𐹶ݮ.ہ≯
+‌񍸰𐹶ݮ.ہ‍≯‍; ‌񍸰𐹶ݮ.ہ‍≯‍; [B1, B3, C1, C2, P1, V6]; xn--ypb717jrx2o7v94a.xn--0kb660ka35v; ; xn--ypb5875khz9y.xn--0kb682l; [B3, B5, B6, P1, V6] # 𐹶ݮ.ہ≯
+‌񍸰𐹶ݮ.ہ‍≯‍; ; [B1, B3, C1, C2, P1, V6]; xn--ypb717jrx2o7v94a.xn--0kb660ka35v; ; xn--ypb5875khz9y.xn--0kb682l; [B3, B5, B6, P1, V6] # 𐹶ݮ.ہ≯
+‌񍸰𐹶ݮ.ہ‍≯‍; ‌񍸰𐹶ݮ.ہ‍≯‍; [B1, B3, C1, C2, P1, V6]; xn--ypb717jrx2o7v94a.xn--0kb660ka35v; ; xn--ypb5875khz9y.xn--0kb682l; [B3, B5, B6, P1, V6] # 𐹶ݮ.ہ≯
+xn--ypb5875khz9y.xn--0kb682l; 񍸰𐹶ݮ.ہ≯; [B3, B5, B6, V6]; xn--ypb5875khz9y.xn--0kb682l; ; ; # 𐹶ݮ.ہ≯
+xn--ypb717jrx2o7v94a.xn--0kb660ka35v; ‌񍸰𐹶ݮ.ہ‍≯‍; [B1, B3, C1, C2, V6]; xn--ypb717jrx2o7v94a.xn--0kb660ka35v; ; ; # 𐹶ݮ.ہ≯
+≮.឵ࡕ𐫔; ≮.឵ࡕ𐫔; [B1, P1, V5, V6]; xn--gdh.xn--kwb589e217p; ; ; # ≮.ࡕ𐫔
+≮.឵ࡕ𐫔; ≮.឵ࡕ𐫔; [B1, P1, V5, V6]; xn--gdh.xn--kwb589e217p; ; ; # ≮.ࡕ𐫔
+≮.឵ࡕ𐫔; ; [B1, P1, V5, V6]; xn--gdh.xn--kwb589e217p; ; ; # ≮.ࡕ𐫔
+≮.឵ࡕ𐫔; ≮.឵ࡕ𐫔; [B1, P1, V5, V6]; xn--gdh.xn--kwb589e217p; ; ; # ≮.ࡕ𐫔
+xn--gdh.xn--kwb589e217p; ≮.឵ࡕ𐫔; [B1, V5, V6]; xn--gdh.xn--kwb589e217p; ; ; # ≮.ࡕ𐫔
+𐩗‍。ႩႵ; 𐩗‍.ႩႵ; [B3, C2, P1, V6]; xn--1ug4933g.xn--hndy; ; xn--pt9c.xn--hndy; [P1, V6] # 𐩗.ႩႵ
+𐩗‍。ႩႵ; 𐩗‍.ႩႵ; [B3, C2, P1, V6]; xn--1ug4933g.xn--hndy; ; xn--pt9c.xn--hndy; [P1, V6] # 𐩗.ႩႵ
+𐩗‍。ⴉⴕ; 𐩗‍.ⴉⴕ; [B3, C2]; xn--1ug4933g.xn--0kjya; ; xn--pt9c.xn--0kjya; [] # 𐩗.ⴉⴕ
+𐩗‍。Ⴉⴕ; 𐩗‍.Ⴉⴕ; [B3, C2, P1, V6]; xn--1ug4933g.xn--hnd666l; ; xn--pt9c.xn--hnd666l; [P1, V6] # 𐩗.Ⴉⴕ
+xn--pt9c.xn--hnd666l; 𐩗.Ⴉⴕ; [V6]; xn--pt9c.xn--hnd666l; ; ; # 𐩗.Ⴉⴕ
+xn--1ug4933g.xn--hnd666l; 𐩗‍.Ⴉⴕ; [B3, C2, V6]; xn--1ug4933g.xn--hnd666l; ; ; # 𐩗.Ⴉⴕ
+xn--pt9c.xn--0kjya; 𐩗.ⴉⴕ; ; xn--pt9c.xn--0kjya; ; ; # 𐩗.ⴉⴕ
+𐩗.ⴉⴕ; ; ; xn--pt9c.xn--0kjya; ; ; # 𐩗.ⴉⴕ
+𐩗.ႩႵ; ; [P1, V6]; xn--pt9c.xn--hndy; ; ; # 𐩗.ႩႵ
+𐩗.Ⴉⴕ; ; [P1, V6]; xn--pt9c.xn--hnd666l; ; ; # 𐩗.Ⴉⴕ
+xn--pt9c.xn--hndy; 𐩗.ႩႵ; [V6]; xn--pt9c.xn--hndy; ; ; # 𐩗.ႩႵ
+xn--1ug4933g.xn--0kjya; 𐩗‍.ⴉⴕ; [B3, C2]; xn--1ug4933g.xn--0kjya; ; ; # 𐩗.ⴉⴕ
+xn--1ug4933g.xn--hndy; 𐩗‍.ႩႵ; [B3, C2, V6]; xn--1ug4933g.xn--hndy; ; ; # 𐩗.ႩႵ
+𐩗‍。ⴉⴕ; 𐩗‍.ⴉⴕ; [B3, C2]; xn--1ug4933g.xn--0kjya; ; xn--pt9c.xn--0kjya; [] # 𐩗.ⴉⴕ
+𐩗‍。Ⴉⴕ; 𐩗‍.Ⴉⴕ; [B3, C2, P1, V6]; xn--1ug4933g.xn--hnd666l; ; xn--pt9c.xn--hnd666l; [P1, V6] # 𐩗.Ⴉⴕ
+‌‌ㄤ.̮󕨑ূ; ‌‌ㄤ.̮󕨑ূ; [C1, P1, V5, V6]; xn--0uga242k.xn--vta284a9o563a; ; xn--1fk.xn--vta284a9o563a; [P1, V5, V6] # ㄤ.̮ূ
+‌‌ㄤ.̮󕨑ূ; ; [C1, P1, V5, V6]; xn--0uga242k.xn--vta284a9o563a; ; xn--1fk.xn--vta284a9o563a; [P1, V5, V6] # ㄤ.̮ূ
+xn--1fk.xn--vta284a9o563a; ㄤ.̮󕨑ূ; [V5, V6]; xn--1fk.xn--vta284a9o563a; ; ; # ㄤ.̮ূ
+xn--0uga242k.xn--vta284a9o563a; ‌‌ㄤ.̮󕨑ূ; [C1, V5, V6]; xn--0uga242k.xn--vta284a9o563a; ; ; # ㄤ.̮ূ
+𐋻。-‌𐫄Ⴗ; 𐋻.-‌𐫄Ⴗ; [B1, C1, P1, V3, V6]; xn--v97c.xn----i1g888ih12u; ; xn--v97c.xn----i1g2513q; [B1, P1, V3, V6] # 𐋻.-𐫄Ⴗ
+𐋻。-‌𐫄Ⴗ; 𐋻.-‌𐫄Ⴗ; [B1, C1, P1, V3, V6]; xn--v97c.xn----i1g888ih12u; ; xn--v97c.xn----i1g2513q; [B1, P1, V3, V6] # 𐋻.-𐫄Ⴗ
+𐋻。-‌𐫄ⴗ; 𐋻.-‌𐫄ⴗ; [B1, C1, V3]; xn--v97c.xn----sgnv20du99s; ; xn--v97c.xn----lws0526f; [B1, V3] # 𐋻.-𐫄ⴗ
+xn--v97c.xn----lws0526f; 𐋻.-𐫄ⴗ; [B1, V3]; xn--v97c.xn----lws0526f; ; ; # 𐋻.-𐫄ⴗ
+xn--v97c.xn----sgnv20du99s; 𐋻.-‌𐫄ⴗ; [B1, C1, V3]; xn--v97c.xn----sgnv20du99s; ; ; # 𐋻.-𐫄ⴗ
+xn--v97c.xn----i1g2513q; 𐋻.-𐫄Ⴗ; [B1, V3, V6]; xn--v97c.xn----i1g2513q; ; ; # 𐋻.-𐫄Ⴗ
+xn--v97c.xn----i1g888ih12u; 𐋻.-‌𐫄Ⴗ; [B1, C1, V3, V6]; xn--v97c.xn----i1g888ih12u; ; ; # 𐋻.-𐫄Ⴗ
+𐋻。-‌𐫄ⴗ; 𐋻.-‌𐫄ⴗ; [B1, C1, V3]; xn--v97c.xn----sgnv20du99s; ; xn--v97c.xn----lws0526f; [B1, V3] # 𐋻.-𐫄ⴗ
+🙑𐷺.≠‌; 🙑𐷺.≠‌; [B1, C1, P1, V6]; xn--bl0dh970b.xn--0ug83g; ; xn--bl0dh970b.xn--1ch; [B1, P1, V6] # 🙑.≠
+🙑𐷺.≠‌; 🙑𐷺.≠‌; [B1, C1, P1, V6]; xn--bl0dh970b.xn--0ug83g; ; xn--bl0dh970b.xn--1ch; [B1, P1, V6] # 🙑.≠
+🙑𐷺.≠‌; ; [B1, C1, P1, V6]; xn--bl0dh970b.xn--0ug83g; ; xn--bl0dh970b.xn--1ch; [B1, P1, V6] # 🙑.≠
+🙑𐷺.≠‌; 🙑𐷺.≠‌; [B1, C1, P1, V6]; xn--bl0dh970b.xn--0ug83g; ; xn--bl0dh970b.xn--1ch; [B1, P1, V6] # 🙑.≠
+xn--bl0dh970b.xn--1ch; 🙑𐷺.≠; [B1, V6]; xn--bl0dh970b.xn--1ch; ; ; # 🙑.≠
+xn--bl0dh970b.xn--0ug83g; 🙑𐷺.≠‌; [B1, C1, V6]; xn--bl0dh970b.xn--0ug83g; ; ; # 🙑.≠
+ٌ᳒。𞮞⵿⧎; ٌ᳒.𞮞⵿⧎; [B1, B3, B6, P1, V5, V6]; xn--ohb646i.xn--ewi38jf765c; ; ; # ٌ᳒.⵿⧎
+ٌ᳒。𞮞⵿⧎; ٌ᳒.𞮞⵿⧎; [B1, B3, B6, P1, V5, V6]; xn--ohb646i.xn--ewi38jf765c; ; ; # ٌ᳒.⵿⧎
+xn--ohb646i.xn--ewi38jf765c; ٌ᳒.𞮞⵿⧎; [B1, B3, B6, V5, V6]; xn--ohb646i.xn--ewi38jf765c; ; ; # ٌ᳒.⵿⧎
+Ⴔ𝨨₃󠁦.𝟳𑂹ஂ; Ⴔ𝨨3󠁦.7𑂹ஂ; [P1, V6]; xn--3-b1g83426a35t0g.xn--7-cve6271r; ; ; # Ⴔ𝨨3.7𑂹ஂ
+Ⴔ𝨨3󠁦.7𑂹ஂ; ; [P1, V6]; xn--3-b1g83426a35t0g.xn--7-cve6271r; ; ; # Ⴔ𝨨3.7𑂹ஂ
+ⴔ𝨨3󠁦.7𑂹ஂ; ; [P1, V6]; xn--3-ews6985n35s3g.xn--7-cve6271r; ; ; # ⴔ𝨨3.7𑂹ஂ
+xn--3-ews6985n35s3g.xn--7-cve6271r; ⴔ𝨨3󠁦.7𑂹ஂ; [V6]; xn--3-ews6985n35s3g.xn--7-cve6271r; ; ; # ⴔ𝨨3.7𑂹ஂ
+xn--3-b1g83426a35t0g.xn--7-cve6271r; Ⴔ𝨨3󠁦.7𑂹ஂ; [V6]; xn--3-b1g83426a35t0g.xn--7-cve6271r; ; ; # Ⴔ𝨨3.7𑂹ஂ
+ⴔ𝨨₃󠁦.𝟳𑂹ஂ; ⴔ𝨨3󠁦.7𑂹ஂ; [P1, V6]; xn--3-ews6985n35s3g.xn--7-cve6271r; ; ; # ⴔ𝨨3.7𑂹ஂ
+䏈‌。‌⒈񱢕; 䏈‌.‌⒈񱢕; [C1, P1, V6]; xn--0ug491l.xn--0ug88oot66q; ; xn--eco.xn--tsh21126d; [P1, V6] # 䏈.⒈
+䏈‌。‌1.񱢕; 䏈‌.‌1.񱢕; [C1, P1, V6]; xn--0ug491l.xn--1-rgn.xn--ms39a; ; xn--eco.1.xn--ms39a; [P1, V6] # 䏈.1.
+xn--eco.1.xn--ms39a; 䏈.1.񱢕; [V6]; xn--eco.1.xn--ms39a; ; ; # 䏈.1.
+xn--0ug491l.xn--1-rgn.xn--ms39a; 䏈‌.‌1.񱢕; [C1, V6]; xn--0ug491l.xn--1-rgn.xn--ms39a; ; ; # 䏈.1.
+xn--eco.xn--tsh21126d; 䏈.⒈񱢕; [V6]; xn--eco.xn--tsh21126d; ; ; # 䏈.⒈
+xn--0ug491l.xn--0ug88oot66q; 䏈‌.‌⒈񱢕; [C1, V6]; xn--0ug491l.xn--0ug88oot66q; ; ; # 䏈.⒈
+1꫶ß𑲥。ᷘ; 1꫶ß𑲥.ᷘ; [V5]; xn--1-qfa2471kdb0d.xn--weg; ; xn--1ss-ir6ln166b.xn--weg; # 1꫶ß𑲥.ᷘ
+1꫶ß𑲥。ᷘ; 1꫶ß𑲥.ᷘ; [V5]; xn--1-qfa2471kdb0d.xn--weg; ; xn--1ss-ir6ln166b.xn--weg; # 1꫶ß𑲥.ᷘ
+1꫶SS𑲥。ᷘ; 1꫶ss𑲥.ᷘ; [V5]; xn--1ss-ir6ln166b.xn--weg; ; ; # 1꫶ss𑲥.ᷘ
+1꫶ss𑲥。ᷘ; 1꫶ss𑲥.ᷘ; [V5]; xn--1ss-ir6ln166b.xn--weg; ; ; # 1꫶ss𑲥.ᷘ
+xn--1ss-ir6ln166b.xn--weg; 1꫶ss𑲥.ᷘ; [V5]; xn--1ss-ir6ln166b.xn--weg; ; ; # 1꫶ss𑲥.ᷘ
+xn--1-qfa2471kdb0d.xn--weg; 1꫶ß𑲥.ᷘ; [V5]; xn--1-qfa2471kdb0d.xn--weg; ; ; # 1꫶ß𑲥.ᷘ
+1꫶SS𑲥。ᷘ; 1꫶ss𑲥.ᷘ; [V5]; xn--1ss-ir6ln166b.xn--weg; ; ; # 1꫶ss𑲥.ᷘ
+1꫶ss𑲥。ᷘ; 1꫶ss𑲥.ᷘ; [V5]; xn--1ss-ir6ln166b.xn--weg; ; ; # 1꫶ss𑲥.ᷘ
+1꫶Ss𑲥。ᷘ; 1꫶ss𑲥.ᷘ; [V5]; xn--1ss-ir6ln166b.xn--weg; ; ; # 1꫶ss𑲥.ᷘ
+1꫶Ss𑲥。ᷘ; 1꫶ss𑲥.ᷘ; [V5]; xn--1ss-ir6ln166b.xn--weg; ; ; # 1꫶ss𑲥.ᷘ
+‍񫶩𞪯್。ݼ⒈; ‍񫶩𞪯್.ݼ⒈; [B1, C2, P1, V6]; xn--8tc969gzn94a4lm8a.xn--dqb689l; ; xn--8tc9875v5is1a.xn--dqb689l; [B5, B6, P1, V6] # ್.ݼ⒈
+‍񫶩𞪯್。ݼ1.; ‍񫶩𞪯್.ݼ1.; [B1, C2, P1, V6]; xn--8tc969gzn94a4lm8a.xn--1-g6c.; ; xn--8tc9875v5is1a.xn--1-g6c.; [B5, B6, P1, V6] # ್.ݼ1.
+xn--8tc9875v5is1a.xn--1-g6c.; 񫶩𞪯್.ݼ1.; [B5, B6, V6]; xn--8tc9875v5is1a.xn--1-g6c.; ; ; # ್.ݼ1.
+xn--8tc969gzn94a4lm8a.xn--1-g6c.; ‍񫶩𞪯್.ݼ1.; [B1, C2, V6]; xn--8tc969gzn94a4lm8a.xn--1-g6c.; ; ; # ್.ݼ1.
+xn--8tc9875v5is1a.xn--dqb689l; 񫶩𞪯್.ݼ⒈; [B5, B6, V6]; xn--8tc9875v5is1a.xn--dqb689l; ; ; # ್.ݼ⒈
+xn--8tc969gzn94a4lm8a.xn--dqb689l; ‍񫶩𞪯್.ݼ⒈; [B1, C2, V6]; xn--8tc969gzn94a4lm8a.xn--dqb689l; ; ; # ್.ݼ⒈
+᪶.𞤳򓢖򻉒ߗ; ᪶.𞤳򓢖򻉒ߗ; [B1, B2, B3, B6, P1, V5, V6]; xn--zqf.xn--ysb9657vuiz5bj0ep; ; ; # ᪶.𞤳ߗ
+᪶.𞤳򓢖򻉒ߗ; ; [B1, B2, B3, B6, P1, V5, V6]; xn--zqf.xn--ysb9657vuiz5bj0ep; ; ; # ᪶.𞤳ߗ
+᪶.𞤑򓢖򻉒ߗ; ᪶.𞤳򓢖򻉒ߗ; [B1, B2, B3, B6, P1, V5, V6]; xn--zqf.xn--ysb9657vuiz5bj0ep; ; ; # ᪶.𞤳ߗ
+xn--zqf.xn--ysb9657vuiz5bj0ep; ᪶.𞤳򓢖򻉒ߗ; [B1, B2, B3, B6, V5, V6]; xn--zqf.xn--ysb9657vuiz5bj0ep; ; ; # ᪶.𞤳ߗ
+᪶.𞤑򓢖򻉒ߗ; ᪶.𞤳򓢖򻉒ߗ; [B1, B2, B3, B6, P1, V5, V6]; xn--zqf.xn--ysb9657vuiz5bj0ep; ; ; # ᪶.𞤳ߗ
+ࡂ𞩚⒈.󠬌8򏳏ݰ; ࡂ𞩚⒈.󠬌8򏳏ݰ; [B1, P1, V6]; xn--0vb095ldg52a.xn--8-s5c22427ox454a; ; ; # ࡂ⒈.8ݰ
+ࡂ𞩚1..󠬌8򏳏ݰ; ; [B1, P1, V6, X4_2]; xn--1-rid26318a..xn--8-s5c22427ox454a; [B1, P1, V6, A4_2]; ; # ࡂ1..8ݰ
+xn--1-rid26318a..xn--8-s5c22427ox454a; ࡂ𞩚1..󠬌8򏳏ݰ; [B1, V6, X4_2]; xn--1-rid26318a..xn--8-s5c22427ox454a; [B1, V6, A4_2]; ; # ࡂ1..8ݰ
+xn--0vb095ldg52a.xn--8-s5c22427ox454a; ࡂ𞩚⒈.󠬌8򏳏ݰ; [B1, V6]; xn--0vb095ldg52a.xn--8-s5c22427ox454a; ; ; # ࡂ⒈.8ݰ
+͡𐫫ͩᡷ。-󠰛鞰; ͡𐫫ͩᡷ.-󠰛鞰; [B1, P1, V3, V5, V6]; xn--cvaq482npv5t.xn----yg7dt1332g; ; ; # ͡𐫫ͩᡷ.-鞰
+xn--cvaq482npv5t.xn----yg7dt1332g; ͡𐫫ͩᡷ.-󠰛鞰; [B1, V3, V5, V6]; xn--cvaq482npv5t.xn----yg7dt1332g; ; ; # ͡𐫫ͩᡷ.-鞰
+-.્剘ß𐫃; ; [B1, V3, V5]; -.xn--zca791c493duf8i; ; -.xn--ss-bqg4734erywk; # -.્剘ß𐫃
+-.્剘SS𐫃; -.્剘ss𐫃; [B1, V3, V5]; -.xn--ss-bqg4734erywk; ; ; # -.્剘ss𐫃
+-.્剘ss𐫃; ; [B1, V3, V5]; -.xn--ss-bqg4734erywk; ; ; # -.્剘ss𐫃
+-.્剘Ss𐫃; -.્剘ss𐫃; [B1, V3, V5]; -.xn--ss-bqg4734erywk; ; ; # -.્剘ss𐫃
+-.xn--ss-bqg4734erywk; -.્剘ss𐫃; [B1, V3, V5]; -.xn--ss-bqg4734erywk; ; ; # -.્剘ss𐫃
+-.xn--zca791c493duf8i; -.્剘ß𐫃; [B1, V3, V5]; -.xn--zca791c493duf8i; ; ; # -.્剘ß𐫃
+ࣻ𞵸。-; ࣻ𞵸.-; [B1, P1, V3, V5, V6]; xn--b1b2719v.-; ; ; # ࣻ.-
+ࣻ𞵸。-; ࣻ𞵸.-; [B1, P1, V3, V5, V6]; xn--b1b2719v.-; ; ; # ࣻ.-
+xn--b1b2719v.-; ࣻ𞵸.-; [B1, V3, V5, V6]; xn--b1b2719v.-; ; ; # ࣻ.-
+⒈󠈻𐹲。≠؃𐹽; ⒈󠈻𐹲.≠؃𐹽; [B1, P1, V6]; xn--tshw766f1153g.xn--lfb536lb35n; ; ; # ⒈𐹲.≠𐹽
+⒈󠈻𐹲。≠؃𐹽; ⒈󠈻𐹲.≠؃𐹽; [B1, P1, V6]; xn--tshw766f1153g.xn--lfb536lb35n; ; ; # ⒈𐹲.≠𐹽
+1.󠈻𐹲。≠؃𐹽; 1.󠈻𐹲.≠؃𐹽; [B1, P1, V6]; 1.xn--qo0dl3077c.xn--lfb536lb35n; ; ; # 1.𐹲.≠𐹽
+1.󠈻𐹲。≠؃𐹽; 1.󠈻𐹲.≠؃𐹽; [B1, P1, V6]; 1.xn--qo0dl3077c.xn--lfb536lb35n; ; ; # 1.𐹲.≠𐹽
+1.xn--qo0dl3077c.xn--lfb536lb35n; 1.󠈻𐹲.≠؃𐹽; [B1, V6]; 1.xn--qo0dl3077c.xn--lfb536lb35n; ; ; # 1.𐹲.≠𐹽
+xn--tshw766f1153g.xn--lfb536lb35n; ⒈󠈻𐹲.≠؃𐹽; [B1, V6]; xn--tshw766f1153g.xn--lfb536lb35n; ; ; # ⒈𐹲.≠𐹽
+𐹢󠈚Ⴎ‌.㖾𐹡; ; [B1, B5, B6, C1, P1, V6]; xn--mnd289ezj4pqxp0i.xn--pelu572d; ; xn--mnd9001km0o0g.xn--pelu572d; [B1, B5, B6, P1, V6] # 𐹢Ⴎ.㖾𐹡
+𐹢󠈚ⴎ‌.㖾𐹡; ; [B1, B5, B6, C1, P1, V6]; xn--0ug342clq0pqxv4i.xn--pelu572d; ; xn--5kjx323em053g.xn--pelu572d; [B1, B5, B6, P1, V6] # 𐹢ⴎ.㖾𐹡
+xn--5kjx323em053g.xn--pelu572d; 𐹢󠈚ⴎ.㖾𐹡; [B1, B5, B6, V6]; xn--5kjx323em053g.xn--pelu572d; ; ; # 𐹢ⴎ.㖾𐹡
+xn--0ug342clq0pqxv4i.xn--pelu572d; 𐹢󠈚ⴎ‌.㖾𐹡; [B1, B5, B6, C1, V6]; xn--0ug342clq0pqxv4i.xn--pelu572d; ; ; # 𐹢ⴎ.㖾𐹡
+xn--mnd9001km0o0g.xn--pelu572d; 𐹢󠈚Ⴎ.㖾𐹡; [B1, B5, B6, V6]; xn--mnd9001km0o0g.xn--pelu572d; ; ; # 𐹢Ⴎ.㖾𐹡
+xn--mnd289ezj4pqxp0i.xn--pelu572d; 𐹢󠈚Ⴎ‌.㖾𐹡; [B1, B5, B6, C1, V6]; xn--mnd289ezj4pqxp0i.xn--pelu572d; ; ; # 𐹢Ⴎ.㖾𐹡
+򩼗.߇ᡖႳႧ; 򩼗.߇ᡖႳႧ; [B2, B3, P1, V6]; xn--te28c.xn--isb856b9a631d; ; ; # .߇ᡖႳႧ
+򩼗.߇ᡖႳႧ; ; [B2, B3, P1, V6]; xn--te28c.xn--isb856b9a631d; ; ; # .߇ᡖႳႧ
+򩼗.߇ᡖⴓⴇ; ; [B2, B3, P1, V6]; xn--te28c.xn--isb295fbtpmb; ; ; # .߇ᡖⴓⴇ
+xn--te28c.xn--isb295fbtpmb; 򩼗.߇ᡖⴓⴇ; [B2, B3, V6]; xn--te28c.xn--isb295fbtpmb; ; ; # .߇ᡖⴓⴇ
+xn--te28c.xn--isb856b9a631d; 򩼗.߇ᡖႳႧ; [B2, B3, V6]; xn--te28c.xn--isb856b9a631d; ; ; # .߇ᡖႳႧ
+򩼗.߇ᡖⴓⴇ; 򩼗.߇ᡖⴓⴇ; [B2, B3, P1, V6]; xn--te28c.xn--isb295fbtpmb; ; ; # .߇ᡖⴓⴇ
+򩼗.߇ᡖႳⴇ; ; [B2, B3, P1, V6]; xn--te28c.xn--isb286btrgo7w; ; ; # .߇ᡖႳⴇ
+xn--te28c.xn--isb286btrgo7w; 򩼗.߇ᡖႳⴇ; [B2, B3, V6]; xn--te28c.xn--isb286btrgo7w; ; ; # .߇ᡖႳⴇ
+򩼗.߇ᡖႳⴇ; 򩼗.߇ᡖႳⴇ; [B2, B3, P1, V6]; xn--te28c.xn--isb286btrgo7w; ; ; # .߇ᡖႳⴇ
+‍􅍉.ڳݵ; ; [B1, C2, P1, V6]; xn--1ug39444n.xn--mkb20b; ; xn--3j78f.xn--mkb20b; [P1, V6] # .ڳݵ
+xn--3j78f.xn--mkb20b; 􅍉.ڳݵ; [V6]; xn--3j78f.xn--mkb20b; ; ; # .ڳݵ
+xn--1ug39444n.xn--mkb20b; ‍􅍉.ڳݵ; [B1, C2, V6]; xn--1ug39444n.xn--mkb20b; ; ; # .ڳݵ
+𲤱⒛⾳.ꡦ⒈; 𲤱⒛音.ꡦ⒈; [P1, V6]; xn--dth6033bzbvx.xn--tsh9439b; ; ; # ⒛音.ꡦ⒈
+𲤱20.音.ꡦ1.; ; [P1, V6]; xn--20-9802c.xn--0w5a.xn--1-eg4e.; ; ; # 20.音.ꡦ1.
+xn--20-9802c.xn--0w5a.xn--1-eg4e.; 𲤱20.音.ꡦ1.; [V6]; xn--20-9802c.xn--0w5a.xn--1-eg4e.; ; ; # 20.音.ꡦ1.
+xn--dth6033bzbvx.xn--tsh9439b; 𲤱⒛音.ꡦ⒈; [V6]; xn--dth6033bzbvx.xn--tsh9439b; ; ; # ⒛音.ꡦ⒈
+ߜ8񳦓-。򞲙𑁿𐩥্; ߜ8񳦓-.򞲙𑁿𐩥্; [B2, B3, B5, B6, P1, V3, V6]; xn--8--rve13079p.xn--b7b9842k42df776x; ; ; # ߜ8-.𑁿𐩥্
+ߜ8񳦓-。򞲙𑁿𐩥্; ߜ8񳦓-.򞲙𑁿𐩥্; [B2, B3, B5, B6, P1, V3, V6]; xn--8--rve13079p.xn--b7b9842k42df776x; ; ; # ߜ8-.𑁿𐩥্
+xn--8--rve13079p.xn--b7b9842k42df776x; ߜ8񳦓-.򞲙𑁿𐩥্; [B2, B3, B5, B6, V3, V6]; xn--8--rve13079p.xn--b7b9842k42df776x; ; ; # ߜ8-.𑁿𐩥্
+Ⴕ。۰≮ß݅; Ⴕ.۰≮ß݅; [P1, V6]; xn--tnd.xn--zca912alh227g; ; xn--tnd.xn--ss-jbe65aw27i; # Ⴕ.۰≮ß݅
+Ⴕ。۰≮ß݅; Ⴕ.۰≮ß݅; [P1, V6]; xn--tnd.xn--zca912alh227g; ; xn--tnd.xn--ss-jbe65aw27i; # Ⴕ.۰≮ß݅
+ⴕ。۰≮ß݅; ⴕ.۰≮ß݅; [P1, V6]; xn--dlj.xn--zca912alh227g; ; xn--dlj.xn--ss-jbe65aw27i; # ⴕ.۰≮ß݅
+ⴕ。۰≮ß݅; ⴕ.۰≮ß݅; [P1, V6]; xn--dlj.xn--zca912alh227g; ; xn--dlj.xn--ss-jbe65aw27i; # ⴕ.۰≮ß݅
+Ⴕ。۰≮SS݅; Ⴕ.۰≮ss݅; [P1, V6]; xn--tnd.xn--ss-jbe65aw27i; ; ; # Ⴕ.۰≮ss݅
+Ⴕ。۰≮SS݅; Ⴕ.۰≮ss݅; [P1, V6]; xn--tnd.xn--ss-jbe65aw27i; ; ; # Ⴕ.۰≮ss݅
+ⴕ。۰≮ss݅; ⴕ.۰≮ss݅; [P1, V6]; xn--dlj.xn--ss-jbe65aw27i; ; ; # ⴕ.۰≮ss݅
+ⴕ。۰≮ss݅; ⴕ.۰≮ss݅; [P1, V6]; xn--dlj.xn--ss-jbe65aw27i; ; ; # ⴕ.۰≮ss݅
+Ⴕ。۰≮Ss݅; Ⴕ.۰≮ss݅; [P1, V6]; xn--tnd.xn--ss-jbe65aw27i; ; ; # Ⴕ.۰≮ss݅
+Ⴕ。۰≮Ss݅; Ⴕ.۰≮ss݅; [P1, V6]; xn--tnd.xn--ss-jbe65aw27i; ; ; # Ⴕ.۰≮ss݅
+xn--tnd.xn--ss-jbe65aw27i; Ⴕ.۰≮ss݅; [V6]; xn--tnd.xn--ss-jbe65aw27i; ; ; # Ⴕ.۰≮ss݅
+xn--dlj.xn--ss-jbe65aw27i; ⴕ.۰≮ss݅; [V6]; xn--dlj.xn--ss-jbe65aw27i; ; ; # ⴕ.۰≮ss݅
+xn--dlj.xn--zca912alh227g; ⴕ.۰≮ß݅; [V6]; xn--dlj.xn--zca912alh227g; ; ; # ⴕ.۰≮ß݅
+xn--tnd.xn--zca912alh227g; Ⴕ.۰≮ß݅; [V6]; xn--tnd.xn--zca912alh227g; ; ; # Ⴕ.۰≮ß݅
+ߩ-.𝨗꒱᭲; ; [B1, B3, V3, V5]; xn----odd.xn--dwf8994dc8wj; ; ; # ߩ-.𝨗꒱᭲
+xn----odd.xn--dwf8994dc8wj; ߩ-.𝨗꒱᭲; [B1, B3, V3, V5]; xn----odd.xn--dwf8994dc8wj; ; ; # ߩ-.𝨗꒱᭲
+𞼸‌.≯䕵⫧; ; [B1, B3, C1, P1, V6]; xn--0ugx453p.xn--hdh754ax6w; ; xn--sn7h.xn--hdh754ax6w; [B1, P1, V6] # .≯䕵⫧
+𞼸‌.≯䕵⫧; 𞼸‌.≯䕵⫧; [B1, B3, C1, P1, V6]; xn--0ugx453p.xn--hdh754ax6w; ; xn--sn7h.xn--hdh754ax6w; [B1, P1, V6] # .≯䕵⫧
+xn--sn7h.xn--hdh754ax6w; 𞼸.≯䕵⫧; [B1, V6]; xn--sn7h.xn--hdh754ax6w; ; ; # .≯䕵⫧
+xn--0ugx453p.xn--hdh754ax6w; 𞼸‌.≯䕵⫧; [B1, B3, C1, V6]; xn--0ugx453p.xn--hdh754ax6w; ; ; # .≯䕵⫧
+𐨅ßﱗ.ڬ۳︒; 𐨅ßيخ.ڬ۳︒; [B1, B3, P1, V5, V6]; xn--zca23yncs877j.xn--fkb6lp314e; ; xn--ss-ytd5i7765l.xn--fkb6lp314e; # 𐨅ßيخ.ڬ۳︒
+𐨅ßيخ.ڬ۳。; 𐨅ßيخ.ڬ۳.; [B1, V5]; xn--zca23yncs877j.xn--fkb6l.; ; xn--ss-ytd5i7765l.xn--fkb6l.; # 𐨅ßيخ.ڬ۳.
+𐨅SSيخ.ڬ۳。; 𐨅ssيخ.ڬ۳.; [B1, V5]; xn--ss-ytd5i7765l.xn--fkb6l.; ; ; # 𐨅ssيخ.ڬ۳.
+𐨅ssيخ.ڬ۳。; 𐨅ssيخ.ڬ۳.; [B1, V5]; xn--ss-ytd5i7765l.xn--fkb6l.; ; ; # 𐨅ssيخ.ڬ۳.
+𐨅Ssيخ.ڬ۳。; 𐨅ssيخ.ڬ۳.; [B1, V5]; xn--ss-ytd5i7765l.xn--fkb6l.; ; ; # 𐨅ssيخ.ڬ۳.
+xn--ss-ytd5i7765l.xn--fkb6l.; 𐨅ssيخ.ڬ۳.; [B1, V5]; xn--ss-ytd5i7765l.xn--fkb6l.; ; ; # 𐨅ssيخ.ڬ۳.
+xn--zca23yncs877j.xn--fkb6l.; 𐨅ßيخ.ڬ۳.; [B1, V5]; xn--zca23yncs877j.xn--fkb6l.; ; ; # 𐨅ßيخ.ڬ۳.
+𐨅SSﱗ.ڬ۳︒; 𐨅ssيخ.ڬ۳︒; [B1, B3, P1, V5, V6]; xn--ss-ytd5i7765l.xn--fkb6lp314e; ; ; # 𐨅ssيخ.ڬ۳︒
+𐨅ssﱗ.ڬ۳︒; 𐨅ssيخ.ڬ۳︒; [B1, B3, P1, V5, V6]; xn--ss-ytd5i7765l.xn--fkb6lp314e; ; ; # 𐨅ssيخ.ڬ۳︒
+𐨅Ssﱗ.ڬ۳︒; 𐨅ssيخ.ڬ۳︒; [B1, B3, P1, V5, V6]; xn--ss-ytd5i7765l.xn--fkb6lp314e; ; ; # 𐨅ssيخ.ڬ۳︒
+xn--ss-ytd5i7765l.xn--fkb6lp314e; 𐨅ssيخ.ڬ۳︒; [B1, B3, V5, V6]; xn--ss-ytd5i7765l.xn--fkb6lp314e; ; ; # 𐨅ssيخ.ڬ۳︒
+xn--zca23yncs877j.xn--fkb6lp314e; 𐨅ßيخ.ڬ۳︒; [B1, B3, V5, V6]; xn--zca23yncs877j.xn--fkb6lp314e; ; ; # 𐨅ßيخ.ڬ۳︒
+-≮🡒᳭.񏿾Ⴁܔ; ; [B1, P1, V3, V6]; xn----44l04zxt68c.xn--enb300c1597h; ; ; # -≮🡒᳭.Ⴁܔ
+-≮🡒᳭.񏿾Ⴁܔ; -≮🡒᳭.񏿾Ⴁܔ; [B1, P1, V3, V6]; xn----44l04zxt68c.xn--enb300c1597h; ; ; # -≮🡒᳭.Ⴁܔ
+-≮🡒᳭.񏿾ⴁܔ; -≮🡒᳭.񏿾ⴁܔ; [B1, P1, V3, V6]; xn----44l04zxt68c.xn--enb135qf106f; ; ; # -≮🡒᳭.ⴁܔ
+-≮🡒᳭.񏿾ⴁܔ; ; [B1, P1, V3, V6]; xn----44l04zxt68c.xn--enb135qf106f; ; ; # -≮🡒᳭.ⴁܔ
+xn----44l04zxt68c.xn--enb135qf106f; -≮🡒᳭.񏿾ⴁܔ; [B1, V3, V6]; xn----44l04zxt68c.xn--enb135qf106f; ; ; # -≮🡒᳭.ⴁܔ
+xn----44l04zxt68c.xn--enb300c1597h; -≮🡒᳭.񏿾Ⴁܔ; [B1, V3, V6]; xn----44l04zxt68c.xn--enb300c1597h; ; ; # -≮🡒᳭.Ⴁܔ
+𞤨。ꡏ‍‌; 𞤨.ꡏ‍‌; [B6, C1, C2]; xn--ge6h.xn--0ugb9575h; ; xn--ge6h.xn--oc9a; [] # 𞤨.ꡏ
+𞤨。ꡏ‍‌; 𞤨.ꡏ‍‌; [B6, C1, C2]; xn--ge6h.xn--0ugb9575h; ; xn--ge6h.xn--oc9a; [] # 𞤨.ꡏ
+𞤆。ꡏ‍‌; 𞤨.ꡏ‍‌; [B6, C1, C2]; xn--ge6h.xn--0ugb9575h; ; xn--ge6h.xn--oc9a; [] # 𞤨.ꡏ
+xn--ge6h.xn--oc9a; 𞤨.ꡏ; ; xn--ge6h.xn--oc9a; ; ; # 𞤨.ꡏ
+𞤨.ꡏ; ; ; xn--ge6h.xn--oc9a; ; ; # 𞤨.ꡏ
+𞤆.ꡏ; 𞤨.ꡏ; ; xn--ge6h.xn--oc9a; ; ; # 𞤨.ꡏ
+xn--ge6h.xn--0ugb9575h; 𞤨.ꡏ‍‌; [B6, C1, C2]; xn--ge6h.xn--0ugb9575h; ; ; # 𞤨.ꡏ
+𞤆。ꡏ‍‌; 𞤨.ꡏ‍‌; [B6, C1, C2]; xn--ge6h.xn--0ugb9575h; ; xn--ge6h.xn--oc9a; [] # 𞤨.ꡏ
+󠅹𑂶.ᢌ𑂹٩; 𑂶.ᢌ𑂹٩; [B1, B3, B5, B6, V5]; xn--b50d.xn--iib993gyp5p; ; ; # 𑂶.ᢌ𑂹٩
+󠅹𑂶.ᢌ𑂹٩; 𑂶.ᢌ𑂹٩; [B1, B3, B5, B6, V5]; xn--b50d.xn--iib993gyp5p; ; ; # 𑂶.ᢌ𑂹٩
+xn--b50d.xn--iib993gyp5p; 𑂶.ᢌ𑂹٩; [B1, B3, B5, B6, V5]; xn--b50d.xn--iib993gyp5p; ; ; # 𑂶.ᢌ𑂹٩
+Ⅎ󠅺񝵒。≯⾑; Ⅎ񝵒.≯襾; [P1, V6]; xn--f3g73398c.xn--hdhz171b; ; ; # Ⅎ.≯襾
+Ⅎ󠅺񝵒。≯⾑; Ⅎ񝵒.≯襾; [P1, V6]; xn--f3g73398c.xn--hdhz171b; ; ; # Ⅎ.≯襾
+Ⅎ󠅺񝵒。≯襾; Ⅎ񝵒.≯襾; [P1, V6]; xn--f3g73398c.xn--hdhz171b; ; ; # Ⅎ.≯襾
+Ⅎ󠅺񝵒。≯襾; Ⅎ񝵒.≯襾; [P1, V6]; xn--f3g73398c.xn--hdhz171b; ; ; # Ⅎ.≯襾
+ⅎ󠅺񝵒。≯襾; ⅎ񝵒.≯襾; [P1, V6]; xn--73g39298c.xn--hdhz171b; ; ; # ⅎ.≯襾
+ⅎ󠅺񝵒。≯襾; ⅎ񝵒.≯襾; [P1, V6]; xn--73g39298c.xn--hdhz171b; ; ; # ⅎ.≯襾
+xn--73g39298c.xn--hdhz171b; ⅎ񝵒.≯襾; [V6]; xn--73g39298c.xn--hdhz171b; ; ; # ⅎ.≯襾
+xn--f3g73398c.xn--hdhz171b; Ⅎ񝵒.≯襾; [V6]; xn--f3g73398c.xn--hdhz171b; ; ; # Ⅎ.≯襾
+ⅎ󠅺񝵒。≯⾑; ⅎ񝵒.≯襾; [P1, V6]; xn--73g39298c.xn--hdhz171b; ; ; # ⅎ.≯襾
+ⅎ󠅺񝵒。≯⾑; ⅎ񝵒.≯襾; [P1, V6]; xn--73g39298c.xn--hdhz171b; ; ; # ⅎ.≯襾
+ς‍ු٠。-; ς‍ු٠.-; [B1, B5, B6, C2, V3]; xn--3xa45ks2jenu.-; ; xn--4xa25ks2j.-; [B1, B5, B6, V3] # ςු٠.-
+ς‍ු٠。-; ς‍ු٠.-; [B1, B5, B6, C2, V3]; xn--3xa45ks2jenu.-; ; xn--4xa25ks2j.-; [B1, B5, B6, V3] # ςු٠.-
+Σ‍ු٠。-; σ‍ු٠.-; [B1, B5, B6, C2, V3]; xn--4xa25ks2jenu.-; ; xn--4xa25ks2j.-; [B1, B5, B6, V3] # σු٠.-
+σ‍ු٠。-; σ‍ු٠.-; [B1, B5, B6, C2, V3]; xn--4xa25ks2jenu.-; ; xn--4xa25ks2j.-; [B1, B5, B6, V3] # σු٠.-
+xn--4xa25ks2j.-; σු٠.-; [B1, B5, B6, V3]; xn--4xa25ks2j.-; ; ; # σු٠.-
+xn--4xa25ks2jenu.-; σ‍ු٠.-; [B1, B5, B6, C2, V3]; xn--4xa25ks2jenu.-; ; ; # σු٠.-
+xn--3xa45ks2jenu.-; ς‍ු٠.-; [B1, B5, B6, C2, V3]; xn--3xa45ks2jenu.-; ; ; # ςු٠.-
+Σ‍ු٠。-; σ‍ු٠.-; [B1, B5, B6, C2, V3]; xn--4xa25ks2jenu.-; ; xn--4xa25ks2j.-; [B1, B5, B6, V3] # σු٠.-
+σ‍ු٠。-; σ‍ු٠.-; [B1, B5, B6, C2, V3]; xn--4xa25ks2jenu.-; ; xn--4xa25ks2j.-; [B1, B5, B6, V3] # σු٠.-
+‌.ßႩ-; ; [C1, P1, V3, V6]; xn--0ug.xn----pfa042j; ; .xn--ss--4rn; [P1, V3, V6, A4_2] # .ßႩ-
+‌.ßⴉ-; ; [C1, V3]; xn--0ug.xn----pfa2305a; ; .xn--ss--bi1b; [V3, A4_2] # .ßⴉ-
+‌.SSႩ-; ‌.ssႩ-; [C1, P1, V3, V6]; xn--0ug.xn--ss--4rn; ; .xn--ss--4rn; [P1, V3, V6, A4_2] # .ssႩ-
+‌.ssⴉ-; ; [C1, V3]; xn--0ug.xn--ss--bi1b; ; .xn--ss--bi1b; [V3, A4_2] # .ssⴉ-
+‌.Ssⴉ-; ‌.ssⴉ-; [C1, V3]; xn--0ug.xn--ss--bi1b; ; .xn--ss--bi1b; [V3, A4_2] # .ssⴉ-
+.xn--ss--bi1b; .ssⴉ-; [V3, X4_2]; .xn--ss--bi1b; [V3, A4_2]; ; # .ssⴉ-
+xn--0ug.xn--ss--bi1b; ‌.ssⴉ-; [C1, V3]; xn--0ug.xn--ss--bi1b; ; ; # .ssⴉ-
+.xn--ss--4rn; .ssႩ-; [V3, V6, X4_2]; .xn--ss--4rn; [V3, V6, A4_2]; ; # .ssႩ-
+xn--0ug.xn--ss--4rn; ‌.ssႩ-; [C1, V3, V6]; xn--0ug.xn--ss--4rn; ; ; # .ssႩ-
+xn--0ug.xn----pfa2305a; ‌.ßⴉ-; [C1, V3]; xn--0ug.xn----pfa2305a; ; ; # .ßⴉ-
+xn--0ug.xn----pfa042j; ‌.ßႩ-; [C1, V3, V6]; xn--0ug.xn----pfa042j; ; ; # .ßႩ-
+󍭲𐫍㓱。⾑; 󍭲𐫍㓱.襾; [B5, P1, V6]; xn--u7kt691dlj09f.xn--9v2a; ; ; # 𐫍㓱.襾
+󍭲𐫍㓱。襾; 󍭲𐫍㓱.襾; [B5, P1, V6]; xn--u7kt691dlj09f.xn--9v2a; ; ; # 𐫍㓱.襾
+xn--u7kt691dlj09f.xn--9v2a; 󍭲𐫍㓱.襾; [B5, V6]; xn--u7kt691dlj09f.xn--9v2a; ; ; # 𐫍㓱.襾
+ڠ𐮋𐹰≮。≯󠦗‍; ڠ𐮋𐹰≮.≯󠦗‍; [B1, B3, C2, P1, V6]; xn--2jb053lf13nyoc.xn--1ugx6gc8096c; ; xn--2jb053lf13nyoc.xn--hdh08821l; [B1, B3, P1, V6] # ڠ𐮋𐹰≮.≯
+ڠ𐮋𐹰≮。≯󠦗‍; ڠ𐮋𐹰≮.≯󠦗‍; [B1, B3, C2, P1, V6]; xn--2jb053lf13nyoc.xn--1ugx6gc8096c; ; xn--2jb053lf13nyoc.xn--hdh08821l; [B1, B3, P1, V6] # ڠ𐮋𐹰≮.≯
+xn--2jb053lf13nyoc.xn--hdh08821l; ڠ𐮋𐹰≮.≯󠦗; [B1, B3, V6]; xn--2jb053lf13nyoc.xn--hdh08821l; ; ; # ڠ𐮋𐹰≮.≯
+xn--2jb053lf13nyoc.xn--1ugx6gc8096c; ڠ𐮋𐹰≮.≯󠦗‍; [B1, B3, C2, V6]; xn--2jb053lf13nyoc.xn--1ugx6gc8096c; ; ; # ڠ𐮋𐹰≮.≯
+𝟞。񃰶ݷࢰ⩋; 6.񃰶ݷࢰ⩋; [B1, B5, B6, P1, V6]; 6.xn--7pb04do15eq748f; ; ; # 6.ݷࢰ⩋
+6。񃰶ݷࢰ⩋; 6.񃰶ݷࢰ⩋; [B1, B5, B6, P1, V6]; 6.xn--7pb04do15eq748f; ; ; # 6.ݷࢰ⩋
+6.xn--7pb04do15eq748f; 6.񃰶ݷࢰ⩋; [B1, B5, B6, V6]; 6.xn--7pb04do15eq748f; ; ; # 6.ݷࢰ⩋
+-ﳽ。𑇀𑍴; -شى.𑇀𑍴; [B1, V3, V5]; xn----qnc7d.xn--wd1d62a; ; ; # -شى.𑇀𑍴
+-ﳽ。𑇀𑍴; -شى.𑇀𑍴; [B1, V3, V5]; xn----qnc7d.xn--wd1d62a; ; ; # -شى.𑇀𑍴
+-شى。𑇀𑍴; -شى.𑇀𑍴; [B1, V3, V5]; xn----qnc7d.xn--wd1d62a; ; ; # -شى.𑇀𑍴
+xn----qnc7d.xn--wd1d62a; -شى.𑇀𑍴; [B1, V3, V5]; xn----qnc7d.xn--wd1d62a; ; ; # -شى.𑇀𑍴
+‌󠊶𝟏.ൃ򪥐𐹬󊓶; ‌󠊶1.ൃ򪥐𐹬󊓶; [B1, C1, P1, V5, V6]; xn--1-rgnu0071n.xn--mxc0872kcu37dnmem; ; xn--1-f521m.xn--mxc0872kcu37dnmem; [B1, P1, V5, V6] # 1.ൃ𐹬
+‌󠊶1.ൃ򪥐𐹬󊓶; ; [B1, C1, P1, V5, V6]; xn--1-rgnu0071n.xn--mxc0872kcu37dnmem; ; xn--1-f521m.xn--mxc0872kcu37dnmem; [B1, P1, V5, V6] # 1.ൃ𐹬
+xn--1-f521m.xn--mxc0872kcu37dnmem; 󠊶1.ൃ򪥐𐹬󊓶; [B1, V5, V6]; xn--1-f521m.xn--mxc0872kcu37dnmem; ; ; # 1.ൃ𐹬
+xn--1-rgnu0071n.xn--mxc0872kcu37dnmem; ‌󠊶1.ൃ򪥐𐹬󊓶; [B1, C1, V5, V6]; xn--1-rgnu0071n.xn--mxc0872kcu37dnmem; ; ; # 1.ൃ𐹬
+齙--𝟰.ß; 齙--4.ß; ; xn----4-p16k.xn--zca; ; xn----4-p16k.ss; # 齙--4.ß
+齙--4.ß; ; ; xn----4-p16k.xn--zca; ; xn----4-p16k.ss; # 齙--4.ß
+齙--4.SS; 齙--4.ss; ; xn----4-p16k.ss; ; ; # 齙--4.ss
+齙--4.ss; ; ; xn----4-p16k.ss; ; ; # 齙--4.ss
+齙--4.Ss; 齙--4.ss; ; xn----4-p16k.ss; ; ; # 齙--4.ss
+xn----4-p16k.ss; 齙--4.ss; ; xn----4-p16k.ss; ; ; # 齙--4.ss
+xn----4-p16k.xn--zca; 齙--4.ß; ; xn----4-p16k.xn--zca; ; ; # 齙--4.ß
+齙--𝟰.SS; 齙--4.ss; ; xn----4-p16k.ss; ; ; # 齙--4.ss
+齙--𝟰.ss; 齙--4.ss; ; xn----4-p16k.ss; ; ; # 齙--4.ss
+齙--𝟰.Ss; 齙--4.ss; ; xn----4-p16k.ss; ; ; # 齙--4.ss
+᯲.𐹢𞀖‌; ; [B1, C1, V5]; xn--0zf.xn--0ug9894grqqf; ; xn--0zf.xn--9n0d2296a; [B1, V5] # ᯲.𐹢𞀖
+xn--0zf.xn--9n0d2296a; ᯲.𐹢𞀖; [B1, V5]; xn--0zf.xn--9n0d2296a; ; ; # ᯲.𐹢𞀖
+xn--0zf.xn--0ug9894grqqf; ᯲.𐹢𞀖‌; [B1, C1, V5]; xn--0zf.xn--0ug9894grqqf; ; ; # ᯲.𐹢𞀖
+󃲙󠋘。?-‍; 󃲙󠋘.?-‍; [C2, P1, V6]; xn--ct86d8w51a.?-‍; [C2, P1, V6, A3]; xn--ct86d8w51a.?-; [P1, V3, V6, A3] # .-
+󃲙󠋘。?-‍; 󃲙󠋘.?-‍; [C2, P1, V6]; xn--ct86d8w51a.?-‍; [C2, P1, V6, A3]; xn--ct86d8w51a.?-; [P1, V3, V6, A3] # .-
+xn--ct86d8w51a.?-; 󃲙󠋘.?-; [P1, V3, V6]; xn--ct86d8w51a.?-; [P1, V3, V6, A3]; ; # .-
+XN--CT86D8W51A.?-; 󃲙󠋘.?-; [P1, V3, V6]; xn--ct86d8w51a.?-; [P1, V3, V6, A3]; ; # .-
+Xn--Ct86d8w51a.?-; 󃲙󠋘.?-; [P1, V3, V6]; xn--ct86d8w51a.?-; [P1, V3, V6, A3]; ; # .-
+xn--ct86d8w51a.?-‍; 󃲙󠋘.?-‍; [C2, P1, V6]; xn--ct86d8w51a.?-‍; [C2, P1, V6, A3]; xn--ct86d8w51a.?-; [P1, V3, V6, A3] # .-
+XN--CT86D8W51A.?-‍; 󃲙󠋘.?-‍; [C2, P1, V6]; xn--ct86d8w51a.?-‍; [C2, P1, V6, A3]; xn--ct86d8w51a.?-; [P1, V3, V6, A3] # .-
+Xn--Ct86d8w51a.?-‍; 󃲙󠋘.?-‍; [C2, P1, V6]; xn--ct86d8w51a.?-‍; [C2, P1, V6, A3]; xn--ct86d8w51a.?-; [P1, V3, V6, A3] # .-
+᩠.𞵷-𝪩悎; ᩠.𞵷-𝪩悎; [B1, B2, B3, B6, P1, V5, V6]; xn--jof.xn----gf4bq282iezpa; ; ; # ᩠.-𝪩悎
+᩠.𞵷-𝪩悎; ; [B1, B2, B3, B6, P1, V5, V6]; xn--jof.xn----gf4bq282iezpa; ; ; # ᩠.-𝪩悎
+xn--jof.xn----gf4bq282iezpa; ᩠.𞵷-𝪩悎; [B1, B2, B3, B6, V5, V6]; xn--jof.xn----gf4bq282iezpa; ; ; # ᩠.-𝪩悎
+𛜯󠊛.𞤳񏥾; 𛜯󠊛.𞤳񏥾; [B2, B3, B6, P1, V6]; xn--xx5gy2741c.xn--re6hw266j; ; ; # .𞤳
+𛜯󠊛.𞤳񏥾; ; [B2, B3, B6, P1, V6]; xn--xx5gy2741c.xn--re6hw266j; ; ; # .𞤳
+𛜯󠊛.𞤑񏥾; 𛜯󠊛.𞤳񏥾; [B2, B3, B6, P1, V6]; xn--xx5gy2741c.xn--re6hw266j; ; ; # .𞤳
+xn--xx5gy2741c.xn--re6hw266j; 𛜯󠊛.𞤳񏥾; [B2, B3, B6, V6]; xn--xx5gy2741c.xn--re6hw266j; ; ; # .𞤳
+𛜯󠊛.𞤑񏥾; 𛜯󠊛.𞤳񏥾; [B2, B3, B6, P1, V6]; xn--xx5gy2741c.xn--re6hw266j; ; ; # .𞤳
+ܜ𐫒خ.𐋲; ; [B1]; xn--tgb98b8643d.xn--m97c; ; ; # ܜ𐫒خ.𐋲
+xn--tgb98b8643d.xn--m97c; ܜ𐫒خ.𐋲; [B1]; xn--tgb98b8643d.xn--m97c; ; ; # ܜ𐫒خ.𐋲
+𐼑𞤓ط࣢.?; 𐼑𞤵ط࣢.?; [P1, V6]; xn--2gb08k9w69agm0g.?; [P1, V6, A3]; ; # 𐼑𞤵ط.
+𐼑𞤵ط࣢.?; ; [P1, V6]; xn--2gb08k9w69agm0g.?; [P1, V6, A3]; ; # 𐼑𞤵ط.
+xn--2gb08k9w69agm0g.?; 𐼑𞤵ط࣢.?; [P1, V6]; xn--2gb08k9w69agm0g.?; [P1, V6, A3]; ; # 𐼑𞤵ط.
+XN--2GB08K9W69AGM0G.?; 𐼑𞤵ط࣢.?; [P1, V6]; xn--2gb08k9w69agm0g.?; [P1, V6, A3]; ; # 𐼑𞤵ط.
+Xn--2gb08k9w69agm0g.?; 𐼑𞤵ط࣢.?; [P1, V6]; xn--2gb08k9w69agm0g.?; [P1, V6, A3]; ; # 𐼑𞤵ط.
+Ↄ。᳔੍𞷣; Ↄ.᳔੍𞷣; [B1, P1, V5, V6]; xn--q5g.xn--ybc995g0835a; ; ; # Ↄ.᳔੍
+Ↄ。᳔੍𞷣; Ↄ.᳔੍𞷣; [B1, P1, V5, V6]; xn--q5g.xn--ybc995g0835a; ; ; # Ↄ.᳔੍
+ↄ。᳔੍𞷣; ↄ.᳔੍𞷣; [B1, P1, V5, V6]; xn--r5g.xn--ybc995g0835a; ; ; # ↄ.᳔੍
+xn--r5g.xn--ybc995g0835a; ↄ.᳔੍𞷣; [B1, V5, V6]; xn--r5g.xn--ybc995g0835a; ; ; # ↄ.᳔੍
+xn--q5g.xn--ybc995g0835a; Ↄ.᳔੍𞷣; [B1, V5, V6]; xn--q5g.xn--ybc995g0835a; ; ; # Ↄ.᳔੍
+ↄ。᳔੍𞷣; ↄ.᳔੍𞷣; [B1, P1, V5, V6]; xn--r5g.xn--ybc995g0835a; ; ; # ↄ.᳔੍
+󠪢-。򛂏≮𑜫; 󠪢-.򛂏≮𑜫; [P1, V3, V6]; xn----bh61m.xn--gdhz157g0em1d; ; ; # -.≮𑜫
+󠪢-。򛂏≮𑜫; 󠪢-.򛂏≮𑜫; [P1, V3, V6]; xn----bh61m.xn--gdhz157g0em1d; ; ; # -.≮𑜫
+xn----bh61m.xn--gdhz157g0em1d; 󠪢-.򛂏≮𑜫; [V3, V6]; xn----bh61m.xn--gdhz157g0em1d; ; ; # -.≮𑜫
+‌󠉹‍。򌿧≮Ⴉ; ‌󠉹‍.򌿧≮Ⴉ; [C1, C2, P1, V6]; xn--0ugc90904y.xn--hnd112gpz83n; ; xn--3n36e.xn--hnd112gpz83n; [P1, V6] # .≮Ⴉ
+‌󠉹‍。򌿧≮Ⴉ; ‌󠉹‍.򌿧≮Ⴉ; [C1, C2, P1, V6]; xn--0ugc90904y.xn--hnd112gpz83n; ; xn--3n36e.xn--hnd112gpz83n; [P1, V6] # .≮Ⴉ
+‌󠉹‍。򌿧≮ⴉ; ‌󠉹‍.򌿧≮ⴉ; [C1, C2, P1, V6]; xn--0ugc90904y.xn--gdh992byu01p; ; xn--3n36e.xn--gdh992byu01p; [P1, V6] # .≮ⴉ
+‌󠉹‍。򌿧≮ⴉ; ‌󠉹‍.򌿧≮ⴉ; [C1, C2, P1, V6]; xn--0ugc90904y.xn--gdh992byu01p; ; xn--3n36e.xn--gdh992byu01p; [P1, V6] # .≮ⴉ
+xn--3n36e.xn--gdh992byu01p; 󠉹.򌿧≮ⴉ; [V6]; xn--3n36e.xn--gdh992byu01p; ; ; # .≮ⴉ
+xn--0ugc90904y.xn--gdh992byu01p; ‌󠉹‍.򌿧≮ⴉ; [C1, C2, V6]; xn--0ugc90904y.xn--gdh992byu01p; ; ; # .≮ⴉ
+xn--3n36e.xn--hnd112gpz83n; 󠉹.򌿧≮Ⴉ; [V6]; xn--3n36e.xn--hnd112gpz83n; ; ; # .≮Ⴉ
+xn--0ugc90904y.xn--hnd112gpz83n; ‌󠉹‍.򌿧≮Ⴉ; [C1, C2, V6]; xn--0ugc90904y.xn--hnd112gpz83n; ; ; # .≮Ⴉ
+𐹯-𑄴ࢼ。︒䖐⾆; 𐹯-𑄴ࢼ.︒䖐舌; [B1, P1, V6]; xn----rpd7902rclc.xn--fpo216mn07e; ; ; # 𐹯-𑄴ࢼ.︒䖐舌
+𐹯-𑄴ࢼ。。䖐舌; 𐹯-𑄴ࢼ..䖐舌; [B1, X4_2]; xn----rpd7902rclc..xn--fpo216m; [B1, A4_2]; ; # 𐹯-𑄴ࢼ..䖐舌
+xn----rpd7902rclc..xn--fpo216m; 𐹯-𑄴ࢼ..䖐舌; [B1, X4_2]; xn----rpd7902rclc..xn--fpo216m; [B1, A4_2]; ; # 𐹯-𑄴ࢼ..䖐舌
+xn----rpd7902rclc.xn--fpo216mn07e; 𐹯-𑄴ࢼ.︒䖐舌; [B1, V6]; xn----rpd7902rclc.xn--fpo216mn07e; ; ; # 𐹯-𑄴ࢼ.︒䖐舌
+𝪞Ⴐ。쪡; 𝪞Ⴐ.쪡; [P1, V5, V6]; xn--ond3755u.xn--pi6b; ; ; # 𝪞Ⴐ.쪡
+𝪞Ⴐ。쪡; 𝪞Ⴐ.쪡; [P1, V5, V6]; xn--ond3755u.xn--pi6b; ; ; # 𝪞Ⴐ.쪡
+𝪞Ⴐ。쪡; 𝪞Ⴐ.쪡; [P1, V5, V6]; xn--ond3755u.xn--pi6b; ; ; # 𝪞Ⴐ.쪡
+𝪞Ⴐ。쪡; 𝪞Ⴐ.쪡; [P1, V5, V6]; xn--ond3755u.xn--pi6b; ; ; # 𝪞Ⴐ.쪡
+𝪞ⴐ。쪡; 𝪞ⴐ.쪡; [V5]; xn--7kj1858k.xn--pi6b; ; ; # 𝪞ⴐ.쪡
+𝪞ⴐ。쪡; 𝪞ⴐ.쪡; [V5]; xn--7kj1858k.xn--pi6b; ; ; # 𝪞ⴐ.쪡
+xn--7kj1858k.xn--pi6b; 𝪞ⴐ.쪡; [V5]; xn--7kj1858k.xn--pi6b; ; ; # 𝪞ⴐ.쪡
+xn--ond3755u.xn--pi6b; 𝪞Ⴐ.쪡; [V5, V6]; xn--ond3755u.xn--pi6b; ; ; # 𝪞Ⴐ.쪡
+𝪞ⴐ。쪡; 𝪞ⴐ.쪡; [V5]; xn--7kj1858k.xn--pi6b; ; ; # 𝪞ⴐ.쪡
+𝪞ⴐ。쪡; 𝪞ⴐ.쪡; [V5]; xn--7kj1858k.xn--pi6b; ; ; # 𝪞ⴐ.쪡
+ฺ쩁𐹬.􋉳; ; [B1, P1, V5, V6]; xn--o4c4837g2zvb.xn--5f70g; ; ; # ฺ쩁𐹬.
+ฺ쩁𐹬.􋉳; ฺ쩁𐹬.􋉳; [B1, P1, V5, V6]; xn--o4c4837g2zvb.xn--5f70g; ; ; # ฺ쩁𐹬.
+xn--o4c4837g2zvb.xn--5f70g; ฺ쩁𐹬.􋉳; [B1, V5, V6]; xn--o4c4837g2zvb.xn--5f70g; ; ; # ฺ쩁𐹬.
+ᡅ0‌。⎢󤨄; ᡅ0‌.⎢󤨄; [C1, P1, V6]; xn--0-z6jy93b.xn--8lh28773l; ; xn--0-z6j.xn--8lh28773l; [P1, V6] # ᡅ0.⎢
+ᡅ0‌。⎢󤨄; ᡅ0‌.⎢󤨄; [C1, P1, V6]; xn--0-z6jy93b.xn--8lh28773l; ; xn--0-z6j.xn--8lh28773l; [P1, V6] # ᡅ0.⎢
+xn--0-z6j.xn--8lh28773l; ᡅ0.⎢󤨄; [V6]; xn--0-z6j.xn--8lh28773l; ; ; # ᡅ0.⎢
+xn--0-z6jy93b.xn--8lh28773l; ᡅ0‌.⎢󤨄; [C1, V6]; xn--0-z6jy93b.xn--8lh28773l; ; ; # ᡅ0.⎢
+𲮚9ꍩ៓.‍ß; 𲮚9ꍩ៓.‍ß; [C2, P1, V6]; xn--9-i0j5967eg3qz.xn--zca770n; ; xn--9-i0j5967eg3qz.ss; [P1, V6] # 9ꍩ៓.ß
+𲮚9ꍩ៓.‍ß; ; [C2, P1, V6]; xn--9-i0j5967eg3qz.xn--zca770n; ; xn--9-i0j5967eg3qz.ss; [P1, V6] # 9ꍩ៓.ß
+𲮚9ꍩ៓.‍SS; 𲮚9ꍩ៓.‍ss; [C2, P1, V6]; xn--9-i0j5967eg3qz.xn--ss-l1t; ; xn--9-i0j5967eg3qz.ss; [P1, V6] # 9ꍩ៓.ss
+𲮚9ꍩ៓.‍ss; ; [C2, P1, V6]; xn--9-i0j5967eg3qz.xn--ss-l1t; ; xn--9-i0j5967eg3qz.ss; [P1, V6] # 9ꍩ៓.ss
+xn--9-i0j5967eg3qz.ss; 𲮚9ꍩ៓.ss; [V6]; xn--9-i0j5967eg3qz.ss; ; ; # 9ꍩ៓.ss
+xn--9-i0j5967eg3qz.xn--ss-l1t; 𲮚9ꍩ៓.‍ss; [C2, V6]; xn--9-i0j5967eg3qz.xn--ss-l1t; ; ; # 9ꍩ៓.ss
+xn--9-i0j5967eg3qz.xn--zca770n; 𲮚9ꍩ៓.‍ß; [C2, V6]; xn--9-i0j5967eg3qz.xn--zca770n; ; ; # 9ꍩ៓.ß
+𲮚9ꍩ៓.‍SS; 𲮚9ꍩ៓.‍ss; [C2, P1, V6]; xn--9-i0j5967eg3qz.xn--ss-l1t; ; xn--9-i0j5967eg3qz.ss; [P1, V6] # 9ꍩ៓.ss
+𲮚9ꍩ៓.‍ss; 𲮚9ꍩ៓.‍ss; [C2, P1, V6]; xn--9-i0j5967eg3qz.xn--ss-l1t; ; xn--9-i0j5967eg3qz.ss; [P1, V6] # 9ꍩ៓.ss
+𲮚9ꍩ៓.‍Ss; 𲮚9ꍩ៓.‍ss; [C2, P1, V6]; xn--9-i0j5967eg3qz.xn--ss-l1t; ; xn--9-i0j5967eg3qz.ss; [P1, V6] # 9ꍩ៓.ss
+𲮚9ꍩ៓.‍Ss; 𲮚9ꍩ៓.‍ss; [C2, P1, V6]; xn--9-i0j5967eg3qz.xn--ss-l1t; ; xn--9-i0j5967eg3qz.ss; [P1, V6] # 9ꍩ៓.ss
+ꗷ𑆀.ݝ𐩒; ; ; xn--ju8a625r.xn--hpb0073k; ; ; # ꗷ𑆀.ݝ𐩒
+xn--ju8a625r.xn--hpb0073k; ꗷ𑆀.ݝ𐩒; ; xn--ju8a625r.xn--hpb0073k; ; ; # ꗷ𑆀.ݝ𐩒
+⒐≯-。︒򩑣-񞛠; ⒐≯-.︒򩑣-񞛠; [P1, V3, V6]; xn----ogot9g.xn----n89hl0522az9u2a; ; ; # ⒐≯-.︒-
+⒐≯-。︒򩑣-񞛠; ⒐≯-.︒򩑣-񞛠; [P1, V3, V6]; xn----ogot9g.xn----n89hl0522az9u2a; ; ; # ⒐≯-.︒-
+9.≯-。。򩑣-񞛠; 9.≯-..򩑣-񞛠; [P1, V3, V6, X4_2]; 9.xn----ogo..xn----xj54d1s69k; [P1, V3, V6, A4_2]; ; # 9.≯-..-
+9.≯-。。򩑣-񞛠; 9.≯-..򩑣-񞛠; [P1, V3, V6, X4_2]; 9.xn----ogo..xn----xj54d1s69k; [P1, V3, V6, A4_2]; ; # 9.≯-..-
+9.xn----ogo..xn----xj54d1s69k; 9.≯-..򩑣-񞛠; [V3, V6, X4_2]; 9.xn----ogo..xn----xj54d1s69k; [V3, V6, A4_2]; ; # 9.≯-..-
+xn----ogot9g.xn----n89hl0522az9u2a; ⒐≯-.︒򩑣-񞛠; [V3, V6]; xn----ogot9g.xn----n89hl0522az9u2a; ; ; # ⒐≯-.︒-
+򈪚ೣჁ󠢏.؝; 򈪚ೣჁ󠢏.؝; [B6, P1, V6]; xn--vuc49qvu85xmju7a.xn--cgb; ; ; # ೣჁ.
+򈪚ೣჁ󠢏.؝; ; [B6, P1, V6]; xn--vuc49qvu85xmju7a.xn--cgb; ; ; # ೣჁ.
+򈪚ೣⴡ󠢏.؝; ; [B6, P1, V6]; xn--vuc226n8n28lmju7a.xn--cgb; ; ; # ೣⴡ.
+xn--vuc226n8n28lmju7a.xn--cgb; 򈪚ೣⴡ󠢏.؝; [B6, V6]; xn--vuc226n8n28lmju7a.xn--cgb; ; ; # ೣⴡ.
+xn--vuc49qvu85xmju7a.xn--cgb; 򈪚ೣჁ󠢏.؝; [B6, V6]; xn--vuc49qvu85xmju7a.xn--cgb; ; ; # ೣჁ.
+򈪚ೣⴡ󠢏.؝; 򈪚ೣⴡ󠢏.؝; [B6, P1, V6]; xn--vuc226n8n28lmju7a.xn--cgb; ; ; # ೣⴡ.
+ᷫ。𐋩ظ-𐫮; ᷫ.𐋩ظ-𐫮; [B1, B3, B6, V5]; xn--gfg.xn----xnc0815qyyg; ; ; # ᷫ.𐋩ظ-𐫮
+xn--gfg.xn----xnc0815qyyg; ᷫ.𐋩ظ-𐫮; [B1, B3, B6, V5]; xn--gfg.xn----xnc0815qyyg; ; ; # ᷫ.𐋩ظ-𐫮
+싇。⾇𐳋Ⴝ; 싇.舛𐳋Ⴝ; [B5, P1, V6]; xn--9u4b.xn--1nd7519ch79d; ; ; # 싇.舛𐳋Ⴝ
+싇。⾇𐳋Ⴝ; 싇.舛𐳋Ⴝ; [B5, P1, V6]; xn--9u4b.xn--1nd7519ch79d; ; ; # 싇.舛𐳋Ⴝ
+싇。舛𐳋Ⴝ; 싇.舛𐳋Ⴝ; [B5, P1, V6]; xn--9u4b.xn--1nd7519ch79d; ; ; # 싇.舛𐳋Ⴝ
+싇。舛𐳋Ⴝ; 싇.舛𐳋Ⴝ; [B5, P1, V6]; xn--9u4b.xn--1nd7519ch79d; ; ; # 싇.舛𐳋Ⴝ
+싇。舛𐳋ⴝ; 싇.舛𐳋ⴝ; [B5]; xn--9u4b.xn--llj123yh74e; ; ; # 싇.舛𐳋ⴝ
+싇。舛𐳋ⴝ; 싇.舛𐳋ⴝ; [B5]; xn--9u4b.xn--llj123yh74e; ; ; # 싇.舛𐳋ⴝ
+싇。舛𐲋Ⴝ; 싇.舛𐳋Ⴝ; [B5, P1, V6]; xn--9u4b.xn--1nd7519ch79d; ; ; # 싇.舛𐳋Ⴝ
+싇。舛𐲋Ⴝ; 싇.舛𐳋Ⴝ; [B5, P1, V6]; xn--9u4b.xn--1nd7519ch79d; ; ; # 싇.舛𐳋Ⴝ
+싇。舛𐲋ⴝ; 싇.舛𐳋ⴝ; [B5]; xn--9u4b.xn--llj123yh74e; ; ; # 싇.舛𐳋ⴝ
+싇。舛𐲋ⴝ; 싇.舛𐳋ⴝ; [B5]; xn--9u4b.xn--llj123yh74e; ; ; # 싇.舛𐳋ⴝ
+xn--9u4b.xn--llj123yh74e; 싇.舛𐳋ⴝ; [B5]; xn--9u4b.xn--llj123yh74e; ; ; # 싇.舛𐳋ⴝ
+xn--9u4b.xn--1nd7519ch79d; 싇.舛𐳋Ⴝ; [B5, V6]; xn--9u4b.xn--1nd7519ch79d; ; ; # 싇.舛𐳋Ⴝ
+싇。⾇𐳋ⴝ; 싇.舛𐳋ⴝ; [B5]; xn--9u4b.xn--llj123yh74e; ; ; # 싇.舛𐳋ⴝ
+싇。⾇𐳋ⴝ; 싇.舛𐳋ⴝ; [B5]; xn--9u4b.xn--llj123yh74e; ; ; # 싇.舛𐳋ⴝ
+싇。⾇𐲋Ⴝ; 싇.舛𐳋Ⴝ; [B5, P1, V6]; xn--9u4b.xn--1nd7519ch79d; ; ; # 싇.舛𐳋Ⴝ
+싇。⾇𐲋Ⴝ; 싇.舛𐳋Ⴝ; [B5, P1, V6]; xn--9u4b.xn--1nd7519ch79d; ; ; # 싇.舛𐳋Ⴝ
+싇。⾇𐲋ⴝ; 싇.舛𐳋ⴝ; [B5]; xn--9u4b.xn--llj123yh74e; ; ; # 싇.舛𐳋ⴝ
+싇。⾇𐲋ⴝ; 싇.舛𐳋ⴝ; [B5]; xn--9u4b.xn--llj123yh74e; ; ; # 싇.舛𐳋ⴝ
+𐹠ς。‌ڿჀ; 𐹠ς.‌ڿჀ; [B1, C1, P1, V6]; xn--3xa1267k.xn--ykb632cvxm; ; xn--4xa9167k.xn--ykb632c; [B1, B2, B3, P1, V6] # 𐹠ς.ڿჀ
+𐹠ς。‌ڿⴠ; 𐹠ς.‌ڿⴠ; [B1, C1]; xn--3xa1267k.xn--ykb760k9hj; ; xn--4xa9167k.xn--ykb467q; [B1, B2, B3] # 𐹠ς.ڿⴠ
+𐹠Σ。‌ڿჀ; 𐹠σ.‌ڿჀ; [B1, C1, P1, V6]; xn--4xa9167k.xn--ykb632cvxm; ; xn--4xa9167k.xn--ykb632c; [B1, B2, B3, P1, V6] # 𐹠σ.ڿჀ
+𐹠σ。‌ڿⴠ; 𐹠σ.‌ڿⴠ; [B1, C1]; xn--4xa9167k.xn--ykb760k9hj; ; xn--4xa9167k.xn--ykb467q; [B1, B2, B3] # 𐹠σ.ڿⴠ
+𐹠Σ。‌ڿⴠ; 𐹠σ.‌ڿⴠ; [B1, C1]; xn--4xa9167k.xn--ykb760k9hj; ; xn--4xa9167k.xn--ykb467q; [B1, B2, B3] # 𐹠σ.ڿⴠ
+xn--4xa9167k.xn--ykb467q; 𐹠σ.ڿⴠ; [B1, B2, B3]; xn--4xa9167k.xn--ykb467q; ; ; # 𐹠σ.ڿⴠ
+xn--4xa9167k.xn--ykb760k9hj; 𐹠σ.‌ڿⴠ; [B1, C1]; xn--4xa9167k.xn--ykb760k9hj; ; ; # 𐹠σ.ڿⴠ
+xn--4xa9167k.xn--ykb632c; 𐹠σ.ڿჀ; [B1, B2, B3, V6]; xn--4xa9167k.xn--ykb632c; ; ; # 𐹠σ.ڿჀ
+xn--4xa9167k.xn--ykb632cvxm; 𐹠σ.‌ڿჀ; [B1, C1, V6]; xn--4xa9167k.xn--ykb632cvxm; ; ; # 𐹠σ.ڿჀ
+xn--3xa1267k.xn--ykb760k9hj; 𐹠ς.‌ڿⴠ; [B1, C1]; xn--3xa1267k.xn--ykb760k9hj; ; ; # 𐹠ς.ڿⴠ
+xn--3xa1267k.xn--ykb632cvxm; 𐹠ς.‌ڿჀ; [B1, C1, V6]; xn--3xa1267k.xn--ykb632cvxm; ; ; # 𐹠ς.ڿჀ
+򇒐‌؄.ښ-ß; ; [B2, B3, B5, B6, C1, P1, V6]; xn--mfb144kqo32m.xn----qfa315b; ; xn--mfb98261i.xn---ss-sdf; [B2, B3, B5, B6, P1, V6] # .ښ-ß
+򇒐‌؄.ښ-SS; 򇒐‌؄.ښ-ss; [B2, B3, B5, B6, C1, P1, V6]; xn--mfb144kqo32m.xn---ss-sdf; ; xn--mfb98261i.xn---ss-sdf; [B2, B3, B5, B6, P1, V6] # .ښ-ss
+򇒐‌؄.ښ-ss; ; [B2, B3, B5, B6, C1, P1, V6]; xn--mfb144kqo32m.xn---ss-sdf; ; xn--mfb98261i.xn---ss-sdf; [B2, B3, B5, B6, P1, V6] # .ښ-ss
+򇒐‌؄.ښ-Ss; 򇒐‌؄.ښ-ss; [B2, B3, B5, B6, C1, P1, V6]; xn--mfb144kqo32m.xn---ss-sdf; ; xn--mfb98261i.xn---ss-sdf; [B2, B3, B5, B6, P1, V6] # .ښ-ss
+xn--mfb98261i.xn---ss-sdf; 򇒐؄.ښ-ss; [B2, B3, B5, B6, V6]; xn--mfb98261i.xn---ss-sdf; ; ; # .ښ-ss
+xn--mfb144kqo32m.xn---ss-sdf; 򇒐‌؄.ښ-ss; [B2, B3, B5, B6, C1, V6]; xn--mfb144kqo32m.xn---ss-sdf; ; ; # .ښ-ss
+xn--mfb144kqo32m.xn----qfa315b; 򇒐‌؄.ښ-ß; [B2, B3, B5, B6, C1, V6]; xn--mfb144kqo32m.xn----qfa315b; ; ; # .ښ-ß
+‌‍឵ٺ.-ﮰ󅄞𐸚; ‌‍឵ٺ.-ۓ󅄞𐸚; [B1, C1, C2, P1, V3, V6]; xn--zib539f8igea.xn----twc1133r17r6g; ; xn--zib539f.xn----twc1133r17r6g; [B1, P1, V3, V5, V6] # ٺ.-ۓ
+‌‍឵ٺ.-ۓ󅄞𐸚; ; [B1, C1, C2, P1, V3, V6]; xn--zib539f8igea.xn----twc1133r17r6g; ; xn--zib539f.xn----twc1133r17r6g; [B1, P1, V3, V5, V6] # ٺ.-ۓ
+‌‍឵ٺ.-ۓ󅄞𐸚; ‌‍឵ٺ.-ۓ󅄞𐸚; [B1, C1, C2, P1, V3, V6]; xn--zib539f8igea.xn----twc1133r17r6g; ; xn--zib539f.xn----twc1133r17r6g; [B1, P1, V3, V5, V6] # ٺ.-ۓ
+xn--zib539f.xn----twc1133r17r6g; ឵ٺ.-ۓ󅄞𐸚; [B1, V3, V5, V6]; xn--zib539f.xn----twc1133r17r6g; ; ; # ٺ.-ۓ
+xn--zib539f8igea.xn----twc1133r17r6g; ‌‍឵ٺ.-ۓ󅄞𐸚; [B1, C1, C2, V3, V6]; xn--zib539f8igea.xn----twc1133r17r6g; ; ; # ٺ.-ۓ
+򡶱。𐮬≠; 򡶱.𐮬≠; [B3, P1, V6]; xn--dd55c.xn--1ch3003g; ; ; # .𐮬≠
+򡶱。𐮬≠; 򡶱.𐮬≠; [B3, P1, V6]; xn--dd55c.xn--1ch3003g; ; ; # .𐮬≠
+򡶱。𐮬≠; 򡶱.𐮬≠; [B3, P1, V6]; xn--dd55c.xn--1ch3003g; ; ; # .𐮬≠
+򡶱。𐮬≠; 򡶱.𐮬≠; [B3, P1, V6]; xn--dd55c.xn--1ch3003g; ; ; # .𐮬≠
+xn--dd55c.xn--1ch3003g; 򡶱.𐮬≠; [B3, V6]; xn--dd55c.xn--1ch3003g; ; ; # .𐮬≠
+ྲ𞶅。𐹮𐹷덝۵; ྲ𞶅.𐹮𐹷덝۵; [B1, P1, V5, V6]; xn--fgd0675v.xn--imb5839fidpcbba; ; ; # ྲ.𐹮𐹷덝۵
+ྲ𞶅。𐹮𐹷덝۵; ྲ𞶅.𐹮𐹷덝۵; [B1, P1, V5, V6]; xn--fgd0675v.xn--imb5839fidpcbba; ; ; # ྲ.𐹮𐹷덝۵
+ྲ𞶅。𐹮𐹷덝۵; ྲ𞶅.𐹮𐹷덝۵; [B1, P1, V5, V6]; xn--fgd0675v.xn--imb5839fidpcbba; ; ; # ྲ.𐹮𐹷덝۵
+ྲ𞶅。𐹮𐹷덝۵; ྲ𞶅.𐹮𐹷덝۵; [B1, P1, V5, V6]; xn--fgd0675v.xn--imb5839fidpcbba; ; ; # ྲ.𐹮𐹷덝۵
+xn--fgd0675v.xn--imb5839fidpcbba; ྲ𞶅.𐹮𐹷덝۵; [B1, V5, V6]; xn--fgd0675v.xn--imb5839fidpcbba; ; ; # ྲ.𐹮𐹷덝۵
+Ⴏ󠅋-.‍Ⴉ; Ⴏ-.‍Ⴉ; [C2, P1, V3, V6]; xn----00g.xn--hnd399e; ; xn----00g.xn--hnd; [P1, V3, V6] # Ⴏ-.Ⴉ
+Ⴏ󠅋-.‍Ⴉ; Ⴏ-.‍Ⴉ; [C2, P1, V3, V6]; xn----00g.xn--hnd399e; ; xn----00g.xn--hnd; [P1, V3, V6] # Ⴏ-.Ⴉ
+ⴏ󠅋-.‍ⴉ; ⴏ-.‍ⴉ; [C2, V3]; xn----3vs.xn--1ug532c; ; xn----3vs.xn--0kj; [V3] # ⴏ-.ⴉ
+xn----3vs.xn--0kj; ⴏ-.ⴉ; [V3]; xn----3vs.xn--0kj; ; ; # ⴏ-.ⴉ
+xn----3vs.xn--1ug532c; ⴏ-.‍ⴉ; [C2, V3]; xn----3vs.xn--1ug532c; ; ; # ⴏ-.ⴉ
+xn----00g.xn--hnd; Ⴏ-.Ⴉ; [V3, V6]; xn----00g.xn--hnd; ; ; # Ⴏ-.Ⴉ
+xn----00g.xn--hnd399e; Ⴏ-.‍Ⴉ; [C2, V3, V6]; xn----00g.xn--hnd399e; ; ; # Ⴏ-.Ⴉ
+ⴏ󠅋-.‍ⴉ; ⴏ-.‍ⴉ; [C2, V3]; xn----3vs.xn--1ug532c; ; xn----3vs.xn--0kj; [V3] # ⴏ-.ⴉ
+⇧𐨏󠾈󯶅。؀󠈵󠆉; ⇧𐨏󠾈󯶅.؀󠈵; [B1, P1, V6]; xn--l8g5552g64t4g46xf.xn--ifb08144p; ; ; # ⇧𐨏.
+xn--l8g5552g64t4g46xf.xn--ifb08144p; ⇧𐨏󠾈󯶅.؀󠈵; [B1, V6]; xn--l8g5552g64t4g46xf.xn--ifb08144p; ; ; # ⇧𐨏.
+≠𐮂.↑🄇⒈; ; [B1, P1, V6]; xn--1chy492g.xn--45gx9iuy44d; ; ; # ≠𐮂.↑🄇⒈
+≠𐮂.↑🄇⒈; ≠𐮂.↑🄇⒈; [B1, P1, V6]; xn--1chy492g.xn--45gx9iuy44d; ; ; # ≠𐮂.↑🄇⒈
+≠𐮂.↑6,1.; ; [B1, P1, V6]; xn--1chy492g.xn--6,1-pw1a.; ; ; # ≠𐮂.↑6,1.
+≠𐮂.↑6,1.; ≠𐮂.↑6,1.; [B1, P1, V6]; xn--1chy492g.xn--6,1-pw1a.; ; ; # ≠𐮂.↑6,1.
+xn--1chy492g.xn--6,1-pw1a.; ≠𐮂.↑6,1.; [B1, P1, V6]; xn--1chy492g.xn--6,1-pw1a.; ; ; # ≠𐮂.↑6,1.
+xn--1chy492g.xn--45gx9iuy44d; ≠𐮂.↑🄇⒈; [B1, V6]; xn--1chy492g.xn--45gx9iuy44d; ; ; # ≠𐮂.↑🄇⒈
+𝩏󠲉ß.ᢤ򄦌‌𐹫; ; [B1, B5, B6, C1, P1, V5, V6]; xn--zca3153vupz3e.xn--ubf609atw1tynn3d; ; xn--ss-zb11ap1427e.xn--ubf2596jbt61c; [B1, B5, B6, P1, V5, V6] # 𝩏ß.ᢤ𐹫
+𝩏󠲉SS.ᢤ򄦌‌𐹫; 𝩏󠲉ss.ᢤ򄦌‌𐹫; [B1, B5, B6, C1, P1, V5, V6]; xn--ss-zb11ap1427e.xn--ubf609atw1tynn3d; ; xn--ss-zb11ap1427e.xn--ubf2596jbt61c; [B1, B5, B6, P1, V5, V6] # 𝩏ss.ᢤ𐹫
+𝩏󠲉ss.ᢤ򄦌‌𐹫; ; [B1, B5, B6, C1, P1, V5, V6]; xn--ss-zb11ap1427e.xn--ubf609atw1tynn3d; ; xn--ss-zb11ap1427e.xn--ubf2596jbt61c; [B1, B5, B6, P1, V5, V6] # 𝩏ss.ᢤ𐹫
+𝩏󠲉Ss.ᢤ򄦌‌𐹫; 𝩏󠲉ss.ᢤ򄦌‌𐹫; [B1, B5, B6, C1, P1, V5, V6]; xn--ss-zb11ap1427e.xn--ubf609atw1tynn3d; ; xn--ss-zb11ap1427e.xn--ubf2596jbt61c; [B1, B5, B6, P1, V5, V6] # 𝩏ss.ᢤ𐹫
+xn--ss-zb11ap1427e.xn--ubf2596jbt61c; 𝩏󠲉ss.ᢤ򄦌𐹫; [B1, B5, B6, V5, V6]; xn--ss-zb11ap1427e.xn--ubf2596jbt61c; ; ; # 𝩏ss.ᢤ𐹫
+xn--ss-zb11ap1427e.xn--ubf609atw1tynn3d; 𝩏󠲉ss.ᢤ򄦌‌𐹫; [B1, B5, B6, C1, V5, V6]; xn--ss-zb11ap1427e.xn--ubf609atw1tynn3d; ; ; # 𝩏ss.ᢤ𐹫
+xn--zca3153vupz3e.xn--ubf609atw1tynn3d; 𝩏󠲉ß.ᢤ򄦌‌𐹫; [B1, B5, B6, C1, V5, V6]; xn--zca3153vupz3e.xn--ubf609atw1tynn3d; ; ; # 𝩏ß.ᢤ𐹫
+ß𐵳񗘁Ⴇ。ꙺ; ß𐵳񗘁Ⴇ.ꙺ; [B1, B3, B5, B6, P1, V5, V6]; xn--zca491fci5qkn79a.xn--9x8a; ; xn--ss-rek7420r4hs7b.xn--9x8a; # ßႧ.ꙺ
+ß𐵳񗘁Ⴇ。ꙺ; ß𐵳񗘁Ⴇ.ꙺ; [B1, B3, B5, B6, P1, V5, V6]; xn--zca491fci5qkn79a.xn--9x8a; ; xn--ss-rek7420r4hs7b.xn--9x8a; # ßႧ.ꙺ
+ß𐵳񗘁ⴇ。ꙺ; ß𐵳񗘁ⴇ.ꙺ; [B1, B3, B5, B6, P1, V5, V6]; xn--zca227tpy4lkns1b.xn--9x8a; ; xn--ss-e61ar955h4hs7b.xn--9x8a; # ßⴇ.ꙺ
+SS𐵳񗘁Ⴇ。ꙺ; ss𐵳񗘁Ⴇ.ꙺ; [B1, B3, B5, B6, P1, V5, V6]; xn--ss-rek7420r4hs7b.xn--9x8a; ; ; # ssႧ.ꙺ
+ss𐵳񗘁ⴇ。ꙺ; ss𐵳񗘁ⴇ.ꙺ; [B1, B3, B5, B6, P1, V5, V6]; xn--ss-e61ar955h4hs7b.xn--9x8a; ; ; # ssⴇ.ꙺ
+Ss𐵳񗘁Ⴇ。ꙺ; ss𐵳񗘁Ⴇ.ꙺ; [B1, B3, B5, B6, P1, V5, V6]; xn--ss-rek7420r4hs7b.xn--9x8a; ; ; # ssႧ.ꙺ
+xn--ss-rek7420r4hs7b.xn--9x8a; ss𐵳񗘁Ⴇ.ꙺ; [B1, B3, B5, B6, V5, V6]; xn--ss-rek7420r4hs7b.xn--9x8a; ; ; # ssႧ.ꙺ
+xn--ss-e61ar955h4hs7b.xn--9x8a; ss𐵳񗘁ⴇ.ꙺ; [B1, B3, B5, B6, V5, V6]; xn--ss-e61ar955h4hs7b.xn--9x8a; ; ; # ssⴇ.ꙺ
+xn--zca227tpy4lkns1b.xn--9x8a; ß𐵳񗘁ⴇ.ꙺ; [B1, B3, B5, B6, V5, V6]; xn--zca227tpy4lkns1b.xn--9x8a; ; ; # ßⴇ.ꙺ
+xn--zca491fci5qkn79a.xn--9x8a; ß𐵳񗘁Ⴇ.ꙺ; [B1, B3, B5, B6, V5, V6]; xn--zca491fci5qkn79a.xn--9x8a; ; ; # ßႧ.ꙺ
+ß𐵳񗘁ⴇ。ꙺ; ß𐵳񗘁ⴇ.ꙺ; [B1, B3, B5, B6, P1, V5, V6]; xn--zca227tpy4lkns1b.xn--9x8a; ; xn--ss-e61ar955h4hs7b.xn--9x8a; # ßⴇ.ꙺ
+SS𐵳񗘁Ⴇ。ꙺ; ss𐵳񗘁Ⴇ.ꙺ; [B1, B3, B5, B6, P1, V5, V6]; xn--ss-rek7420r4hs7b.xn--9x8a; ; ; # ssႧ.ꙺ
+ss𐵳񗘁ⴇ。ꙺ; ss𐵳񗘁ⴇ.ꙺ; [B1, B3, B5, B6, P1, V5, V6]; xn--ss-e61ar955h4hs7b.xn--9x8a; ; ; # ssⴇ.ꙺ
+Ss𐵳񗘁Ⴇ。ꙺ; ss𐵳񗘁Ⴇ.ꙺ; [B1, B3, B5, B6, P1, V5, V6]; xn--ss-rek7420r4hs7b.xn--9x8a; ; ; # ssႧ.ꙺ
+᜔。󠆣-𑋪; ᜔.-𑋪; [V3, V5]; xn--fze.xn----ly8i; ; ; # ᜔.-𑋪
+xn--fze.xn----ly8i; ᜔.-𑋪; [V3, V5]; xn--fze.xn----ly8i; ; ; # ᜔.-𑋪
+ꯨ-.򨏜ֽß; ꯨ-.򨏜ֽß; [P1, V3, V5, V6]; xn----pw5e.xn--zca50wfv060a; ; xn----pw5e.xn--ss-7jd10716y; # ꯨ-.ֽß
+ꯨ-.򨏜ֽß; ; [P1, V3, V5, V6]; xn----pw5e.xn--zca50wfv060a; ; xn----pw5e.xn--ss-7jd10716y; # ꯨ-.ֽß
+ꯨ-.򨏜ֽSS; ꯨ-.򨏜ֽss; [P1, V3, V5, V6]; xn----pw5e.xn--ss-7jd10716y; ; ; # ꯨ-.ֽss
+ꯨ-.򨏜ֽss; ; [P1, V3, V5, V6]; xn----pw5e.xn--ss-7jd10716y; ; ; # ꯨ-.ֽss
+ꯨ-.򨏜ֽSs; ꯨ-.򨏜ֽss; [P1, V3, V5, V6]; xn----pw5e.xn--ss-7jd10716y; ; ; # ꯨ-.ֽss
+xn----pw5e.xn--ss-7jd10716y; ꯨ-.򨏜ֽss; [V3, V5, V6]; xn----pw5e.xn--ss-7jd10716y; ; ; # ꯨ-.ֽss
+xn----pw5e.xn--zca50wfv060a; ꯨ-.򨏜ֽß; [V3, V5, V6]; xn----pw5e.xn--zca50wfv060a; ; ; # ꯨ-.ֽß
+ꯨ-.򨏜ֽSS; ꯨ-.򨏜ֽss; [P1, V3, V5, V6]; xn----pw5e.xn--ss-7jd10716y; ; ; # ꯨ-.ֽss
+ꯨ-.򨏜ֽss; ꯨ-.򨏜ֽss; [P1, V3, V5, V6]; xn----pw5e.xn--ss-7jd10716y; ; ; # ꯨ-.ֽss
+ꯨ-.򨏜ֽSs; ꯨ-.򨏜ֽss; [P1, V3, V5, V6]; xn----pw5e.xn--ss-7jd10716y; ; ; # ꯨ-.ֽss
+ᡓ-≮。٫󠅱ᡄ; ᡓ-≮.٫ᡄ; [B1, B6, P1, V6]; xn----s7j866c.xn--kib252g; ; ; # ᡓ-≮.٫ᡄ
+ᡓ-≮。٫󠅱ᡄ; ᡓ-≮.٫ᡄ; [B1, B6, P1, V6]; xn----s7j866c.xn--kib252g; ; ; # ᡓ-≮.٫ᡄ
+xn----s7j866c.xn--kib252g; ᡓ-≮.٫ᡄ; [B1, B6, V6]; xn----s7j866c.xn--kib252g; ; ; # ᡓ-≮.٫ᡄ
+𝟥♮𑜫࣭.្𑜫8󠆏; 3♮𑜫࣭.្𑜫8; [V5]; xn--3-ksd277tlo7s.xn--8-f0jx021l; ; ; # 3♮𑜫࣭.្𑜫8
+3♮𑜫࣭.្𑜫8󠆏; 3♮𑜫࣭.្𑜫8; [V5]; xn--3-ksd277tlo7s.xn--8-f0jx021l; ; ; # 3♮𑜫࣭.្𑜫8
+xn--3-ksd277tlo7s.xn--8-f0jx021l; 3♮𑜫࣭.្𑜫8; [V5]; xn--3-ksd277tlo7s.xn--8-f0jx021l; ; ; # 3♮𑜫࣭.្𑜫8
+-。򕌀‍❡; -.򕌀‍❡; [C2, P1, V3, V6]; -.xn--1ug800aq795s; ; -.xn--nei54421f; [P1, V3, V6] # -.❡
+-。򕌀‍❡; -.򕌀‍❡; [C2, P1, V3, V6]; -.xn--1ug800aq795s; ; -.xn--nei54421f; [P1, V3, V6] # -.❡
+-.xn--nei54421f; -.򕌀❡; [V3, V6]; -.xn--nei54421f; ; ; # -.❡
+-.xn--1ug800aq795s; -.򕌀‍❡; [C2, V3, V6]; -.xn--1ug800aq795s; ; ; # -.❡
+𝟓☱𝟐򥰵。𝪮񐡳; 5☱2򥰵.𝪮񐡳; [P1, V5, V6]; xn--52-dwx47758j.xn--kd3hk431k; ; ; # 5☱2.𝪮
+5☱2򥰵。𝪮񐡳; 5☱2򥰵.𝪮񐡳; [P1, V5, V6]; xn--52-dwx47758j.xn--kd3hk431k; ; ; # 5☱2.𝪮
+xn--52-dwx47758j.xn--kd3hk431k; 5☱2򥰵.𝪮񐡳; [V5, V6]; xn--52-dwx47758j.xn--kd3hk431k; ; ; # 5☱2.𝪮
+-.-├򖦣; ; [P1, V3, V6]; -.xn----ukp70432h; ; ; # -.-├
+-.xn----ukp70432h; -.-├򖦣; [V3, V6]; -.xn----ukp70432h; ; ; # -.-├
+֥ݭ。‍󠀘; ֥ݭ.‍󠀘; [B1, C2, P1, V5, V6]; xn--wcb62g.xn--1ugy8001l; ; xn--wcb62g.xn--p526e; [B1, P1, V5, V6] # ֥ݭ.
+֥ݭ。‍󠀘; ֥ݭ.‍󠀘; [B1, C2, P1, V5, V6]; xn--wcb62g.xn--1ugy8001l; ; xn--wcb62g.xn--p526e; [B1, P1, V5, V6] # ֥ݭ.
+xn--wcb62g.xn--p526e; ֥ݭ.󠀘; [B1, V5, V6]; xn--wcb62g.xn--p526e; ; ; # ֥ݭ.
+xn--wcb62g.xn--1ugy8001l; ֥ݭ.‍󠀘; [B1, C2, V5, V6]; xn--wcb62g.xn--1ugy8001l; ; ; # ֥ݭ.
+쥥󔏉Ⴎ.‌⒈⒈𐫒; 쥥󔏉Ⴎ.‌⒈⒈𐫒; [B1, C1, P1, V6]; xn--mnd7865gcy28g.xn--0ug88oa0396u; ; xn--mnd7865gcy28g.xn--tsha6797o; [B1, P1, V6] # 쥥Ⴎ.⒈⒈𐫒
+쥥󔏉Ⴎ.‌⒈⒈𐫒; 쥥󔏉Ⴎ.‌⒈⒈𐫒; [B1, C1, P1, V6]; xn--mnd7865gcy28g.xn--0ug88oa0396u; ; xn--mnd7865gcy28g.xn--tsha6797o; [B1, P1, V6] # 쥥Ⴎ.⒈⒈𐫒
+쥥󔏉Ⴎ.‌1.1.𐫒; ; [B1, C1, P1, V6]; xn--mnd7865gcy28g.xn--1-rgn.1.xn--7w9c; ; xn--mnd7865gcy28g.1.1.xn--7w9c; [B1, P1, V6] # 쥥Ⴎ.1.1.𐫒
+쥥󔏉Ⴎ.‌1.1.𐫒; 쥥󔏉Ⴎ.‌1.1.𐫒; [B1, C1, P1, V6]; xn--mnd7865gcy28g.xn--1-rgn.1.xn--7w9c; ; xn--mnd7865gcy28g.1.1.xn--7w9c; [B1, P1, V6] # 쥥Ⴎ.1.1.𐫒
+쥥󔏉ⴎ.‌1.1.𐫒; 쥥󔏉ⴎ.‌1.1.𐫒; [B1, C1, P1, V6]; xn--5kj3511ccyw3h.xn--1-rgn.1.xn--7w9c; ; xn--5kj3511ccyw3h.1.1.xn--7w9c; [B1, P1, V6] # 쥥ⴎ.1.1.𐫒
+쥥󔏉ⴎ.‌1.1.𐫒; ; [B1, C1, P1, V6]; xn--5kj3511ccyw3h.xn--1-rgn.1.xn--7w9c; ; xn--5kj3511ccyw3h.1.1.xn--7w9c; [B1, P1, V6] # 쥥ⴎ.1.1.𐫒
+xn--5kj3511ccyw3h.1.1.xn--7w9c; 쥥󔏉ⴎ.1.1.𐫒; [B1, V6]; xn--5kj3511ccyw3h.1.1.xn--7w9c; ; ; # 쥥ⴎ.1.1.𐫒
+xn--5kj3511ccyw3h.xn--1-rgn.1.xn--7w9c; 쥥󔏉ⴎ.‌1.1.𐫒; [B1, C1, V6]; xn--5kj3511ccyw3h.xn--1-rgn.1.xn--7w9c; ; ; # 쥥ⴎ.1.1.𐫒
+xn--mnd7865gcy28g.1.1.xn--7w9c; 쥥󔏉Ⴎ.1.1.𐫒; [B1, V6]; xn--mnd7865gcy28g.1.1.xn--7w9c; ; ; # 쥥Ⴎ.1.1.𐫒
+xn--mnd7865gcy28g.xn--1-rgn.1.xn--7w9c; 쥥󔏉Ⴎ.‌1.1.𐫒; [B1, C1, V6]; xn--mnd7865gcy28g.xn--1-rgn.1.xn--7w9c; ; ; # 쥥Ⴎ.1.1.𐫒
+쥥󔏉ⴎ.‌⒈⒈𐫒; 쥥󔏉ⴎ.‌⒈⒈𐫒; [B1, C1, P1, V6]; xn--5kj3511ccyw3h.xn--0ug88oa0396u; ; xn--5kj3511ccyw3h.xn--tsha6797o; [B1, P1, V6] # 쥥ⴎ.⒈⒈𐫒
+쥥󔏉ⴎ.‌⒈⒈𐫒; 쥥󔏉ⴎ.‌⒈⒈𐫒; [B1, C1, P1, V6]; xn--5kj3511ccyw3h.xn--0ug88oa0396u; ; xn--5kj3511ccyw3h.xn--tsha6797o; [B1, P1, V6] # 쥥ⴎ.⒈⒈𐫒
+xn--5kj3511ccyw3h.xn--tsha6797o; 쥥󔏉ⴎ.⒈⒈𐫒; [B1, V6]; xn--5kj3511ccyw3h.xn--tsha6797o; ; ; # 쥥ⴎ.⒈⒈𐫒
+xn--5kj3511ccyw3h.xn--0ug88oa0396u; 쥥󔏉ⴎ.‌⒈⒈𐫒; [B1, C1, V6]; xn--5kj3511ccyw3h.xn--0ug88oa0396u; ; ; # 쥥ⴎ.⒈⒈𐫒
+xn--mnd7865gcy28g.xn--tsha6797o; 쥥󔏉Ⴎ.⒈⒈𐫒; [B1, V6]; xn--mnd7865gcy28g.xn--tsha6797o; ; ; # 쥥Ⴎ.⒈⒈𐫒
+xn--mnd7865gcy28g.xn--0ug88oa0396u; 쥥󔏉Ⴎ.‌⒈⒈𐫒; [B1, C1, V6]; xn--mnd7865gcy28g.xn--0ug88oa0396u; ; ; # 쥥Ⴎ.⒈⒈𐫒
+ࠧ𝟶ڠ-。𑄳; ࠧ0ڠ-.𑄳; [B1, B3, B6, V3, V5]; xn--0--p3d67m.xn--v80d; ; ; # ࠧ0ڠ-.𑄳
+ࠧ0ڠ-。𑄳; ࠧ0ڠ-.𑄳; [B1, B3, B6, V3, V5]; xn--0--p3d67m.xn--v80d; ; ; # ࠧ0ڠ-.𑄳
+xn--0--p3d67m.xn--v80d; ࠧ0ڠ-.𑄳; [B1, B3, B6, V3, V5]; xn--0--p3d67m.xn--v80d; ; ; # ࠧ0ڠ-.𑄳
+ς.ﷁ🞛⒈; ς.فمي🞛⒈; [P1, V6]; xn--3xa.xn--dhbip2802atb20c; ; xn--4xa.xn--dhbip2802atb20c; # ς.فمي🞛⒈
+ς.فمي🞛1.; ; ; xn--3xa.xn--1-gocmu97674d.; ; xn--4xa.xn--1-gocmu97674d.; # ς.فمي🞛1.
+Σ.فمي🞛1.; σ.فمي🞛1.; ; xn--4xa.xn--1-gocmu97674d.; ; ; # σ.فمي🞛1.
+σ.فمي🞛1.; ; ; xn--4xa.xn--1-gocmu97674d.; ; ; # σ.فمي🞛1.
+xn--4xa.xn--1-gocmu97674d.; σ.فمي🞛1.; ; xn--4xa.xn--1-gocmu97674d.; ; ; # σ.فمي🞛1.
+xn--3xa.xn--1-gocmu97674d.; ς.فمي🞛1.; ; xn--3xa.xn--1-gocmu97674d.; ; ; # ς.فمي🞛1.
+Σ.ﷁ🞛⒈; σ.فمي🞛⒈; [P1, V6]; xn--4xa.xn--dhbip2802atb20c; ; ; # σ.فمي🞛⒈
+σ.ﷁ🞛⒈; σ.فمي🞛⒈; [P1, V6]; xn--4xa.xn--dhbip2802atb20c; ; ; # σ.فمي🞛⒈
+xn--4xa.xn--dhbip2802atb20c; σ.فمي🞛⒈; [V6]; xn--4xa.xn--dhbip2802atb20c; ; ; # σ.فمي🞛⒈
+xn--3xa.xn--dhbip2802atb20c; ς.فمي🞛⒈; [V6]; xn--3xa.xn--dhbip2802atb20c; ; ; # ς.فمي🞛⒈
+🗩-。𐹻󐞆񥉮; 🗩-.𐹻󐞆񥉮; [B1, P1, V3, V6]; xn----6t3s.xn--zo0d4811u6ru6a; ; ; # 🗩-.𐹻
+🗩-。𐹻󐞆񥉮; 🗩-.𐹻󐞆񥉮; [B1, P1, V3, V6]; xn----6t3s.xn--zo0d4811u6ru6a; ; ; # 🗩-.𐹻
+xn----6t3s.xn--zo0d4811u6ru6a; 🗩-.𐹻󐞆񥉮; [B1, V3, V6]; xn----6t3s.xn--zo0d4811u6ru6a; ; ; # 🗩-.𐹻
+𐡜-🔪。𝟻‌𐿀; 𐡜-🔪.5‌𐿀; [B1, B3, C1, P1, V6]; xn----5j4iv089c.xn--5-sgn7149h; ; xn----5j4iv089c.xn--5-bn7i; [B1, B3, P1, V6] # 𐡜-🔪.5
+𐡜-🔪。5‌𐿀; 𐡜-🔪.5‌𐿀; [B1, B3, C1, P1, V6]; xn----5j4iv089c.xn--5-sgn7149h; ; xn----5j4iv089c.xn--5-bn7i; [B1, B3, P1, V6] # 𐡜-🔪.5
+xn----5j4iv089c.xn--5-bn7i; 𐡜-🔪.5𐿀; [B1, B3, V6]; xn----5j4iv089c.xn--5-bn7i; ; ; # 𐡜-🔪.5
+xn----5j4iv089c.xn--5-sgn7149h; 𐡜-🔪.5‌𐿀; [B1, B3, C1, V6]; xn----5j4iv089c.xn--5-sgn7149h; ; ; # 𐡜-🔪.5
+𐹣늿‍ß.ߏ0ּ; 𐹣늿‍ß.ߏ0ּ; [B1, C2]; xn--zca770n5s4hev6c.xn--0-vgc50n; ; xn--ss-i05i7041a.xn--0-vgc50n; [B1] # 𐹣늿ß.ߏ0ּ
+𐹣늿‍ß.ߏ0ּ; 𐹣늿‍ß.ߏ0ּ; [B1, C2]; xn--zca770n5s4hev6c.xn--0-vgc50n; ; xn--ss-i05i7041a.xn--0-vgc50n; [B1] # 𐹣늿ß.ߏ0ּ
+𐹣늿‍ß.ߏ0ּ; ; [B1, C2]; xn--zca770n5s4hev6c.xn--0-vgc50n; ; xn--ss-i05i7041a.xn--0-vgc50n; [B1] # 𐹣늿ß.ߏ0ּ
+𐹣늿‍ß.ߏ0ּ; 𐹣늿‍ß.ߏ0ּ; [B1, C2]; xn--zca770n5s4hev6c.xn--0-vgc50n; ; xn--ss-i05i7041a.xn--0-vgc50n; [B1] # 𐹣늿ß.ߏ0ּ
+𐹣늿‍SS.ߏ0ּ; 𐹣늿‍ss.ߏ0ּ; [B1, C2]; xn--ss-l1tu910fo0xd.xn--0-vgc50n; ; xn--ss-i05i7041a.xn--0-vgc50n; [B1] # 𐹣늿ss.ߏ0ּ
+𐹣늿‍SS.ߏ0ּ; 𐹣늿‍ss.ߏ0ּ; [B1, C2]; xn--ss-l1tu910fo0xd.xn--0-vgc50n; ; xn--ss-i05i7041a.xn--0-vgc50n; [B1] # 𐹣늿ss.ߏ0ּ
+𐹣늿‍ss.ߏ0ּ; ; [B1, C2]; xn--ss-l1tu910fo0xd.xn--0-vgc50n; ; xn--ss-i05i7041a.xn--0-vgc50n; [B1] # 𐹣늿ss.ߏ0ּ
+𐹣늿‍ss.ߏ0ּ; 𐹣늿‍ss.ߏ0ּ; [B1, C2]; xn--ss-l1tu910fo0xd.xn--0-vgc50n; ; xn--ss-i05i7041a.xn--0-vgc50n; [B1] # 𐹣늿ss.ߏ0ּ
+xn--ss-i05i7041a.xn--0-vgc50n; 𐹣늿ss.ߏ0ּ; [B1]; xn--ss-i05i7041a.xn--0-vgc50n; ; ; # 𐹣늿ss.ߏ0ּ
+xn--ss-l1tu910fo0xd.xn--0-vgc50n; 𐹣늿‍ss.ߏ0ּ; [B1, C2]; xn--ss-l1tu910fo0xd.xn--0-vgc50n; ; ; # 𐹣늿ss.ߏ0ּ
+𐹣늿‍Ss.ߏ0ּ; 𐹣늿‍ss.ߏ0ּ; [B1, C2]; xn--ss-l1tu910fo0xd.xn--0-vgc50n; ; xn--ss-i05i7041a.xn--0-vgc50n; [B1] # 𐹣늿ss.ߏ0ּ
+𐹣늿‍Ss.ߏ0ּ; 𐹣늿‍ss.ߏ0ּ; [B1, C2]; xn--ss-l1tu910fo0xd.xn--0-vgc50n; ; xn--ss-i05i7041a.xn--0-vgc50n; [B1] # 𐹣늿ss.ߏ0ּ
+xn--zca770n5s4hev6c.xn--0-vgc50n; 𐹣늿‍ß.ߏ0ּ; [B1, C2]; xn--zca770n5s4hev6c.xn--0-vgc50n; ; ; # 𐹣늿ß.ߏ0ּ
+𐹣늿‍SS.ߏ0ּ; 𐹣늿‍ss.ߏ0ּ; [B1, C2]; xn--ss-l1tu910fo0xd.xn--0-vgc50n; ; xn--ss-i05i7041a.xn--0-vgc50n; [B1] # 𐹣늿ss.ߏ0ּ
+𐹣늿‍SS.ߏ0ּ; 𐹣늿‍ss.ߏ0ּ; [B1, C2]; xn--ss-l1tu910fo0xd.xn--0-vgc50n; ; xn--ss-i05i7041a.xn--0-vgc50n; [B1] # 𐹣늿ss.ߏ0ּ
+𐹣늿‍ss.ߏ0ּ; 𐹣늿‍ss.ߏ0ּ; [B1, C2]; xn--ss-l1tu910fo0xd.xn--0-vgc50n; ; xn--ss-i05i7041a.xn--0-vgc50n; [B1] # 𐹣늿ss.ߏ0ּ
+𐹣늿‍ss.ߏ0ּ; 𐹣늿‍ss.ߏ0ּ; [B1, C2]; xn--ss-l1tu910fo0xd.xn--0-vgc50n; ; xn--ss-i05i7041a.xn--0-vgc50n; [B1] # 𐹣늿ss.ߏ0ּ
+𐹣늿‍Ss.ߏ0ּ; 𐹣늿‍ss.ߏ0ּ; [B1, C2]; xn--ss-l1tu910fo0xd.xn--0-vgc50n; ; xn--ss-i05i7041a.xn--0-vgc50n; [B1] # 𐹣늿ss.ߏ0ּ
+𐹣늿‍Ss.ߏ0ּ; 𐹣늿‍ss.ߏ0ּ; [B1, C2]; xn--ss-l1tu910fo0xd.xn--0-vgc50n; ; xn--ss-i05i7041a.xn--0-vgc50n; [B1] # 𐹣늿ss.ߏ0ּ
+9󠇥.󪴴ᢓ; 9.󪴴ᢓ; [P1, V6]; 9.xn--dbf91222q; ; ; # 9.ᢓ
+9󠇥.󪴴ᢓ; 9.󪴴ᢓ; [P1, V6]; 9.xn--dbf91222q; ; ; # 9.ᢓ
+9.xn--dbf91222q; 9.󪴴ᢓ; [V6]; 9.xn--dbf91222q; ; ; # 9.ᢓ
+‌ᅠ.𐫭🠗ß⽟; ‌ᅠ.𐫭🠗ß玉; [B1, B2, B3, C1, P1, V6]; xn--0ug7719f.xn--zca2289c550e0iwi; ; xn--cl7c.xn--ss-je6eq954cp25j; [B2, B3, P1, V6] # .𐫭🠗ß玉
+‌ᅠ.𐫭🠗ß玉; ; [B1, B2, B3, C1, P1, V6]; xn--psd526e.xn--zca2289c550e0iwi; ; xn--psd.xn--ss-je6eq954cp25j; [B2, B3, P1, V6] # .𐫭🠗ß玉
+‌ᅠ.𐫭🠗SS玉; ‌ᅠ.𐫭🠗ss玉; [B1, B2, B3, C1, P1, V6]; xn--psd526e.xn--ss-je6eq954cp25j; ; xn--psd.xn--ss-je6eq954cp25j; [B2, B3, P1, V6] # .𐫭🠗ss玉
+‌ᅠ.𐫭🠗ss玉; ; [B1, B2, B3, C1, P1, V6]; xn--psd526e.xn--ss-je6eq954cp25j; ; xn--psd.xn--ss-je6eq954cp25j; [B2, B3, P1, V6] # .𐫭🠗ss玉
+‌ᅠ.𐫭🠗Ss玉; ‌ᅠ.𐫭🠗ss玉; [B1, B2, B3, C1, P1, V6]; xn--psd526e.xn--ss-je6eq954cp25j; ; xn--psd.xn--ss-je6eq954cp25j; [B2, B3, P1, V6] # .𐫭🠗ss玉
+xn--psd.xn--ss-je6eq954cp25j; ᅠ.𐫭🠗ss玉; [B2, B3, V6]; xn--psd.xn--ss-je6eq954cp25j; ; ; # .𐫭🠗ss玉
+xn--psd526e.xn--ss-je6eq954cp25j; ‌ᅠ.𐫭🠗ss玉; [B1, B2, B3, C1, V6]; xn--psd526e.xn--ss-je6eq954cp25j; ; ; # .𐫭🠗ss玉
+xn--psd526e.xn--zca2289c550e0iwi; ‌ᅠ.𐫭🠗ß玉; [B1, B2, B3, C1, V6]; xn--psd526e.xn--zca2289c550e0iwi; ; ; # .𐫭🠗ß玉
+‌ᅠ.𐫭🠗SS⽟; ‌ᅠ.𐫭🠗ss玉; [B1, B2, B3, C1, P1, V6]; xn--0ug7719f.xn--ss-je6eq954cp25j; ; xn--cl7c.xn--ss-je6eq954cp25j; [B2, B3, P1, V6] # .𐫭🠗ss玉
+‌ᅠ.𐫭🠗ss⽟; ‌ᅠ.𐫭🠗ss玉; [B1, B2, B3, C1, P1, V6]; xn--0ug7719f.xn--ss-je6eq954cp25j; ; xn--cl7c.xn--ss-je6eq954cp25j; [B2, B3, P1, V6] # .𐫭🠗ss玉
+‌ᅠ.𐫭🠗Ss⽟; ‌ᅠ.𐫭🠗ss玉; [B1, B2, B3, C1, P1, V6]; xn--0ug7719f.xn--ss-je6eq954cp25j; ; xn--cl7c.xn--ss-je6eq954cp25j; [B2, B3, P1, V6] # .𐫭🠗ss玉
+xn--cl7c.xn--ss-je6eq954cp25j; ᅠ.𐫭🠗ss玉; [B2, B3, V6]; xn--cl7c.xn--ss-je6eq954cp25j; ; ; # .𐫭🠗ss玉
+xn--0ug7719f.xn--ss-je6eq954cp25j; ‌ᅠ.𐫭🠗ss玉; [B1, B2, B3, C1, V6]; xn--0ug7719f.xn--ss-je6eq954cp25j; ; ; # .𐫭🠗ss玉
+xn--0ug7719f.xn--zca2289c550e0iwi; ‌ᅠ.𐫭🠗ß玉; [B1, B2, B3, C1, V6]; xn--0ug7719f.xn--zca2289c550e0iwi; ; ; # .𐫭🠗ß玉
+︒Ⴖͦ.‌; ︒Ⴖͦ.‌; [C1, P1, V6]; xn--hva929dl29p.xn--0ug; ; xn--hva929dl29p.; [P1, V6] # ︒Ⴖͦ.
+。Ⴖͦ.‌; .Ⴖͦ.‌; [C1, P1, V6, X4_2]; .xn--hva929d.xn--0ug; [C1, P1, V6, A4_2]; .xn--hva929d.; [P1, V6, A4_2] # .Ⴖͦ.
+。ⴖͦ.‌; .ⴖͦ.‌; [C1, X4_2]; .xn--hva754s.xn--0ug; [C1, A4_2]; .xn--hva754s.; [A4_2] # .ⴖͦ.
+.xn--hva754s.; .ⴖͦ.; [X4_2]; .xn--hva754s.; [A4_2]; ; # .ⴖͦ.
+.xn--hva754s.xn--0ug; .ⴖͦ.‌; [C1, X4_2]; .xn--hva754s.xn--0ug; [C1, A4_2]; ; # .ⴖͦ.
+.xn--hva929d.; .Ⴖͦ.; [V6, X4_2]; .xn--hva929d.; [V6, A4_2]; ; # .Ⴖͦ.
+.xn--hva929d.xn--0ug; .Ⴖͦ.‌; [C1, V6, X4_2]; .xn--hva929d.xn--0ug; [C1, V6, A4_2]; ; # .Ⴖͦ.
+︒ⴖͦ.‌; ︒ⴖͦ.‌; [C1, P1, V6]; xn--hva754sy94k.xn--0ug; ; xn--hva754sy94k.; [P1, V6] # ︒ⴖͦ.
+xn--hva754sy94k.; ︒ⴖͦ.; [V6]; xn--hva754sy94k.; ; ; # ︒ⴖͦ.
+xn--hva754sy94k.xn--0ug; ︒ⴖͦ.‌; [C1, V6]; xn--hva754sy94k.xn--0ug; ; ; # ︒ⴖͦ.
+xn--hva929dl29p.; ︒Ⴖͦ.; [V6]; xn--hva929dl29p.; ; ; # ︒Ⴖͦ.
+xn--hva929dl29p.xn--0ug; ︒Ⴖͦ.‌; [C1, V6]; xn--hva929dl29p.xn--0ug; ; ; # ︒Ⴖͦ.
+xn--hva754s.; ⴖͦ.; ; xn--hva754s.; ; ; # ⴖͦ.
+ⴖͦ.; ; ; xn--hva754s.; ; ; # ⴖͦ.
+Ⴖͦ.; ; [P1, V6]; xn--hva929d.; ; ; # Ⴖͦ.
+xn--hva929d.; Ⴖͦ.; [V6]; xn--hva929d.; ; ; # Ⴖͦ.
+ࢻ.‌Ⴃ𞀒; ࢻ.‌Ⴃ𞀒; [B1, C1, P1, V6]; xn--hzb.xn--bnd300f7225a; ; xn--hzb.xn--bnd2938u; [P1, V6] # ࢻ.Ⴃ𞀒
+ࢻ.‌Ⴃ𞀒; ; [B1, C1, P1, V6]; xn--hzb.xn--bnd300f7225a; ; xn--hzb.xn--bnd2938u; [P1, V6] # ࢻ.Ⴃ𞀒
+ࢻ.‌ⴃ𞀒; ; [B1, C1]; xn--hzb.xn--0ug822cp045a; ; xn--hzb.xn--ukj4430l; [] # ࢻ.ⴃ𞀒
+xn--hzb.xn--ukj4430l; ࢻ.ⴃ𞀒; ; xn--hzb.xn--ukj4430l; ; ; # ࢻ.ⴃ𞀒
+ࢻ.ⴃ𞀒; ; ; xn--hzb.xn--ukj4430l; ; ; # ࢻ.ⴃ𞀒
+ࢻ.Ⴃ𞀒; ; [P1, V6]; xn--hzb.xn--bnd2938u; ; ; # ࢻ.Ⴃ𞀒
+xn--hzb.xn--bnd2938u; ࢻ.Ⴃ𞀒; [V6]; xn--hzb.xn--bnd2938u; ; ; # ࢻ.Ⴃ𞀒
+xn--hzb.xn--0ug822cp045a; ࢻ.‌ⴃ𞀒; [B1, C1]; xn--hzb.xn--0ug822cp045a; ; ; # ࢻ.ⴃ𞀒
+xn--hzb.xn--bnd300f7225a; ࢻ.‌Ⴃ𞀒; [B1, C1, V6]; xn--hzb.xn--bnd300f7225a; ; ; # ࢻ.Ⴃ𞀒
+ࢻ.‌ⴃ𞀒; ࢻ.‌ⴃ𞀒; [B1, C1]; xn--hzb.xn--0ug822cp045a; ; xn--hzb.xn--ukj4430l; [] # ࢻ.ⴃ𞀒
+‍‌。2䫷󠧷; ‍‌.2䫷󠧷; [C1, C2, P1, V6]; xn--0ugb.xn--2-me5ay1273i; ; .xn--2-me5ay1273i; [P1, V6, A4_2] # .2䫷
+‍‌。2䫷󠧷; ‍‌.2䫷󠧷; [C1, C2, P1, V6]; xn--0ugb.xn--2-me5ay1273i; ; .xn--2-me5ay1273i; [P1, V6, A4_2] # .2䫷
+.xn--2-me5ay1273i; .2䫷󠧷; [V6, X4_2]; .xn--2-me5ay1273i; [V6, A4_2]; ; # .2䫷
+xn--0ugb.xn--2-me5ay1273i; ‍‌.2䫷󠧷; [C1, C2, V6]; xn--0ugb.xn--2-me5ay1273i; ; ; # .2䫷
+-𞀤󜠐。򈬖; -𞀤󜠐.򈬖; [P1, V3, V6]; xn----rq4re4997d.xn--l707b; ; ; # -𞀤.
+xn----rq4re4997d.xn--l707b; -𞀤󜠐.򈬖; [V3, V6]; xn----rq4re4997d.xn--l707b; ; ; # -𞀤.
+󳛂︒‌㟀.ؤ⒈; 󳛂︒‌㟀.ؤ⒈; [C1, P1, V6]; xn--0ug754gxl4ldlt0k.xn--jgb476m; ; xn--etlt457ccrq7h.xn--jgb476m; [P1, V6] # ︒㟀.ؤ⒈
+󳛂︒‌㟀.ؤ⒈; 󳛂︒‌㟀.ؤ⒈; [C1, P1, V6]; xn--0ug754gxl4ldlt0k.xn--jgb476m; ; xn--etlt457ccrq7h.xn--jgb476m; [P1, V6] # ︒㟀.ؤ⒈
+󳛂。‌㟀.ؤ1.; 󳛂.‌㟀.ؤ1.; [B1, C1, P1, V6]; xn--z272f.xn--0ug754g.xn--1-smc.; ; xn--z272f.xn--etl.xn--1-smc.; [P1, V6] # .㟀.ؤ1.
+󳛂。‌㟀.ؤ1.; 󳛂.‌㟀.ؤ1.; [B1, C1, P1, V6]; xn--z272f.xn--0ug754g.xn--1-smc.; ; xn--z272f.xn--etl.xn--1-smc.; [P1, V6] # .㟀.ؤ1.
+xn--z272f.xn--etl.xn--1-smc.; 󳛂.㟀.ؤ1.; [V6]; xn--z272f.xn--etl.xn--1-smc.; ; ; # .㟀.ؤ1.
+xn--z272f.xn--0ug754g.xn--1-smc.; 󳛂.‌㟀.ؤ1.; [B1, C1, V6]; xn--z272f.xn--0ug754g.xn--1-smc.; ; ; # .㟀.ؤ1.
+xn--etlt457ccrq7h.xn--jgb476m; 󳛂︒㟀.ؤ⒈; [V6]; xn--etlt457ccrq7h.xn--jgb476m; ; ; # ︒㟀.ؤ⒈
+xn--0ug754gxl4ldlt0k.xn--jgb476m; 󳛂︒‌㟀.ؤ⒈; [C1, V6]; xn--0ug754gxl4ldlt0k.xn--jgb476m; ; ; # ︒㟀.ؤ⒈
+𑲜ߊ𝅼。-‍; 𑲜ߊ𝅼.-‍; [B1, C2, V3, V5]; xn--lsb5482l7nre.xn----ugn; ; xn--lsb5482l7nre.-; [B1, V3, V5] # 𑲜ߊ𝅼.-
+xn--lsb5482l7nre.-; 𑲜ߊ𝅼.-; [B1, V3, V5]; xn--lsb5482l7nre.-; ; ; # 𑲜ߊ𝅼.-
+xn--lsb5482l7nre.xn----ugn; 𑲜ߊ𝅼.-‍; [B1, C2, V3, V5]; xn--lsb5482l7nre.xn----ugn; ; ; # 𑲜ߊ𝅼.-
+‌.Ⴉ≠𐫶; ‌.Ⴉ≠𐫶; [B1, B5, B6, C1, P1, V6]; xn--0ug.xn--hnd481gv73o; ; .xn--hnd481gv73o; [B5, B6, P1, V6, A4_2] # .Ⴉ≠𐫶
+‌.Ⴉ≠𐫶; ‌.Ⴉ≠𐫶; [B1, B5, B6, C1, P1, V6]; xn--0ug.xn--hnd481gv73o; ; .xn--hnd481gv73o; [B5, B6, P1, V6, A4_2] # .Ⴉ≠𐫶
+‌.Ⴉ≠𐫶; ; [B1, B5, B6, C1, P1, V6]; xn--0ug.xn--hnd481gv73o; ; .xn--hnd481gv73o; [B5, B6, P1, V6, A4_2] # .Ⴉ≠𐫶
+‌.Ⴉ≠𐫶; ‌.Ⴉ≠𐫶; [B1, B5, B6, C1, P1, V6]; xn--0ug.xn--hnd481gv73o; ; .xn--hnd481gv73o; [B5, B6, P1, V6, A4_2] # .Ⴉ≠𐫶
+‌.ⴉ≠𐫶; ‌.ⴉ≠𐫶; [B1, B5, B6, C1, P1, V6]; xn--0ug.xn--1chx23bzj4p; ; .xn--1chx23bzj4p; [B5, B6, P1, V6, A4_2] # .ⴉ≠𐫶
+‌.ⴉ≠𐫶; ; [B1, B5, B6, C1, P1, V6]; xn--0ug.xn--1chx23bzj4p; ; .xn--1chx23bzj4p; [B5, B6, P1, V6, A4_2] # .ⴉ≠𐫶
+.xn--1chx23bzj4p; .ⴉ≠𐫶; [B5, B6, V6, X4_2]; .xn--1chx23bzj4p; [B5, B6, V6, A4_2]; ; # .ⴉ≠𐫶
+xn--0ug.xn--1chx23bzj4p; ‌.ⴉ≠𐫶; [B1, B5, B6, C1, V6]; xn--0ug.xn--1chx23bzj4p; ; ; # .ⴉ≠𐫶
+.xn--hnd481gv73o; .Ⴉ≠𐫶; [B5, B6, V6, X4_2]; .xn--hnd481gv73o; [B5, B6, V6, A4_2]; ; # .Ⴉ≠𐫶
+xn--0ug.xn--hnd481gv73o; ‌.Ⴉ≠𐫶; [B1, B5, B6, C1, V6]; xn--0ug.xn--hnd481gv73o; ; ; # .Ⴉ≠𐫶
+‌.ⴉ≠𐫶; ‌.ⴉ≠𐫶; [B1, B5, B6, C1, P1, V6]; xn--0ug.xn--1chx23bzj4p; ; .xn--1chx23bzj4p; [B5, B6, P1, V6, A4_2] # .ⴉ≠𐫶
+‌.ⴉ≠𐫶; ‌.ⴉ≠𐫶; [B1, B5, B6, C1, P1, V6]; xn--0ug.xn--1chx23bzj4p; ; .xn--1chx23bzj4p; [B5, B6, P1, V6, A4_2] # .ⴉ≠𐫶
+ݐ。≯ς; ݐ.≯ς; [B1, P1, V6]; xn--3ob.xn--3xa918m; ; xn--3ob.xn--4xa718m; # ݐ.≯ς
+ݐ。≯ς; ݐ.≯ς; [B1, P1, V6]; xn--3ob.xn--3xa918m; ; xn--3ob.xn--4xa718m; # ݐ.≯ς
+ݐ。≯Σ; ݐ.≯σ; [B1, P1, V6]; xn--3ob.xn--4xa718m; ; ; # ݐ.≯σ
+ݐ。≯Σ; ݐ.≯σ; [B1, P1, V6]; xn--3ob.xn--4xa718m; ; ; # ݐ.≯σ
+ݐ。≯σ; ݐ.≯σ; [B1, P1, V6]; xn--3ob.xn--4xa718m; ; ; # ݐ.≯σ
+ݐ。≯σ; ݐ.≯σ; [B1, P1, V6]; xn--3ob.xn--4xa718m; ; ; # ݐ.≯σ
+xn--3ob.xn--4xa718m; ݐ.≯σ; [B1, V6]; xn--3ob.xn--4xa718m; ; ; # ݐ.≯σ
+xn--3ob.xn--3xa918m; ݐ.≯ς; [B1, V6]; xn--3ob.xn--3xa918m; ; ; # ݐ.≯ς
+߼𐸆.𓖏︒񊨩Ⴐ; ; [P1, V6]; xn--0tb8725k.xn--ond3562jt18a7py9c; ; ; # .︒Ⴐ
+߼𐸆.𓖏。񊨩Ⴐ; ߼𐸆.𓖏.񊨩Ⴐ; [P1, V6]; xn--0tb8725k.xn--tu8d.xn--ond97931d; ; ; # ..Ⴐ
+߼𐸆.𓖏。񊨩ⴐ; ߼𐸆.𓖏.񊨩ⴐ; [P1, V6]; xn--0tb8725k.xn--tu8d.xn--7kj73887a; ; ; # ..ⴐ
+xn--0tb8725k.xn--tu8d.xn--7kj73887a; ߼𐸆.𓖏.񊨩ⴐ; [V6]; xn--0tb8725k.xn--tu8d.xn--7kj73887a; ; ; # ..ⴐ
+xn--0tb8725k.xn--tu8d.xn--ond97931d; ߼𐸆.𓖏.񊨩Ⴐ; [V6]; xn--0tb8725k.xn--tu8d.xn--ond97931d; ; ; # ..Ⴐ
+߼𐸆.𓖏︒񊨩ⴐ; ; [P1, V6]; xn--0tb8725k.xn--7kj9008dt18a7py9c; ; ; # .︒ⴐ
+xn--0tb8725k.xn--7kj9008dt18a7py9c; ߼𐸆.𓖏︒񊨩ⴐ; [V6]; xn--0tb8725k.xn--7kj9008dt18a7py9c; ; ; # .︒ⴐ
+xn--0tb8725k.xn--ond3562jt18a7py9c; ߼𐸆.𓖏︒񊨩Ⴐ; [V6]; xn--0tb8725k.xn--ond3562jt18a7py9c; ; ; # .︒Ⴐ
+Ⴥ⚭󠖫⋃。𑌼; Ⴥ⚭󠖫⋃.𑌼; [P1, V5, V6]; xn--9nd623g4zc5z060c.xn--ro1d; ; ; # Ⴥ⚭⋃.𑌼
+Ⴥ⚭󠖫⋃。𑌼; Ⴥ⚭󠖫⋃.𑌼; [P1, V5, V6]; xn--9nd623g4zc5z060c.xn--ro1d; ; ; # Ⴥ⚭⋃.𑌼
+ⴥ⚭󠖫⋃。𑌼; ⴥ⚭󠖫⋃.𑌼; [P1, V5, V6]; xn--vfh16m67gx1162b.xn--ro1d; ; ; # ⴥ⚭⋃.𑌼
+xn--vfh16m67gx1162b.xn--ro1d; ⴥ⚭󠖫⋃.𑌼; [V5, V6]; xn--vfh16m67gx1162b.xn--ro1d; ; ; # ⴥ⚭⋃.𑌼
+xn--9nd623g4zc5z060c.xn--ro1d; Ⴥ⚭󠖫⋃.𑌼; [V5, V6]; xn--9nd623g4zc5z060c.xn--ro1d; ; ; # Ⴥ⚭⋃.𑌼
+ⴥ⚭󠖫⋃。𑌼; ⴥ⚭󠖫⋃.𑌼; [P1, V5, V6]; xn--vfh16m67gx1162b.xn--ro1d; ; ; # ⴥ⚭⋃.𑌼
+🄈。󠷳ࡄ; 🄈.󠷳ࡄ; [B1, P1, V6]; xn--107h.xn--2vb13094p; ; ; # 🄈.ࡄ
+7,。󠷳ࡄ; 7,.󠷳ࡄ; [B1, P1, V6]; 7,.xn--2vb13094p; ; ; # 7,.ࡄ
+7,.xn--2vb13094p; 7,.󠷳ࡄ; [B1, P1, V6]; 7,.xn--2vb13094p; ; ; # 7,.ࡄ
+xn--107h.xn--2vb13094p; 🄈.󠷳ࡄ; [B1, V6]; xn--107h.xn--2vb13094p; ; ; # 🄈.ࡄ
+≮ࡆ。섖쮖ß; ≮ࡆ.섖쮖ß; [B1, P1, V6]; xn--4vb505k.xn--zca7259goug; ; xn--4vb505k.xn--ss-5z4j006a; # ≮ࡆ.섖쮖ß
+≮ࡆ。섖쮖ß; ≮ࡆ.섖쮖ß; [B1, P1, V6]; xn--4vb505k.xn--zca7259goug; ; xn--4vb505k.xn--ss-5z4j006a; # ≮ࡆ.섖쮖ß
+≮ࡆ。섖쮖SS; ≮ࡆ.섖쮖ss; [B1, P1, V6]; xn--4vb505k.xn--ss-5z4j006a; ; ; # ≮ࡆ.섖쮖ss
+≮ࡆ。섖쮖SS; ≮ࡆ.섖쮖ss; [B1, P1, V6]; xn--4vb505k.xn--ss-5z4j006a; ; ; # ≮ࡆ.섖쮖ss
+≮ࡆ。섖쮖ss; ≮ࡆ.섖쮖ss; [B1, P1, V6]; xn--4vb505k.xn--ss-5z4j006a; ; ; # ≮ࡆ.섖쮖ss
+≮ࡆ。섖쮖ss; ≮ࡆ.섖쮖ss; [B1, P1, V6]; xn--4vb505k.xn--ss-5z4j006a; ; ; # ≮ࡆ.섖쮖ss
+xn--4vb505k.xn--ss-5z4j006a; ≮ࡆ.섖쮖ss; [B1, V6]; xn--4vb505k.xn--ss-5z4j006a; ; ; # ≮ࡆ.섖쮖ss
+≮ࡆ。섖쮖Ss; ≮ࡆ.섖쮖ss; [B1, P1, V6]; xn--4vb505k.xn--ss-5z4j006a; ; ; # ≮ࡆ.섖쮖ss
+≮ࡆ。섖쮖Ss; ≮ࡆ.섖쮖ss; [B1, P1, V6]; xn--4vb505k.xn--ss-5z4j006a; ; ; # ≮ࡆ.섖쮖ss
+xn--4vb505k.xn--zca7259goug; ≮ࡆ.섖쮖ß; [B1, V6]; xn--4vb505k.xn--zca7259goug; ; ; # ≮ࡆ.섖쮖ß
+󠆓⛏-。ꡒ; ⛏-.ꡒ; [V3]; xn----o9p.xn--rc9a; ; ; # ⛏-.ꡒ
+xn----o9p.xn--rc9a; ⛏-.ꡒ; [V3]; xn----o9p.xn--rc9a; ; ; # ⛏-.ꡒ
+޻𐹳ئ𑁆。ࢧڰ‌ᢒ; ޻𐹳ئ𑁆.ࢧڰ‌ᢒ; [B2, B3, P1, V6]; xn--lgb32f2753cosb.xn--jkb91hlz1azih; ; xn--lgb32f2753cosb.xn--jkb91hlz1a; # 𐹳ئ𑁆.ࢧڰᢒ
+޻𐹳ئ𑁆。ࢧڰ‌ᢒ; ޻𐹳ئ𑁆.ࢧڰ‌ᢒ; [B2, B3, P1, V6]; xn--lgb32f2753cosb.xn--jkb91hlz1azih; ; xn--lgb32f2753cosb.xn--jkb91hlz1a; # 𐹳ئ𑁆.ࢧڰᢒ
+xn--lgb32f2753cosb.xn--jkb91hlz1a; ޻𐹳ئ𑁆.ࢧڰᢒ; [B2, B3, V6]; xn--lgb32f2753cosb.xn--jkb91hlz1a; ; ; # 𐹳ئ𑁆.ࢧڰᢒ
+xn--lgb32f2753cosb.xn--jkb91hlz1azih; ޻𐹳ئ𑁆.ࢧڰ‌ᢒ; [B2, B3, V6]; xn--lgb32f2753cosb.xn--jkb91hlz1azih; ; ; # 𐹳ئ𑁆.ࢧڰᢒ
+ࠖ.𐨕𚚕; ; [B1, B2, B3, B6, P1, V5, V6]; xn--rub.xn--tr9c248x; ; ; # ࠖ.𐨕
+xn--rub.xn--tr9c248x; ࠖ.𐨕𚚕; [B1, B2, B3, B6, V5, V6]; xn--rub.xn--tr9c248x; ; ; # ࠖ.𐨕
+--。𽊆ݧ𐽋𞠬; --.𽊆ݧ𐽋𞠬; [B1, B5, B6, P1, V3, V6]; --.xn--rpb6226k77pfh58p; ; ; # --.ݧ𐽋𞠬
+--.xn--rpb6226k77pfh58p; --.𽊆ݧ𐽋𞠬; [B1, B5, B6, V3, V6]; --.xn--rpb6226k77pfh58p; ; ; # --.ݧ𐽋𞠬
+򛭦𐋥𹸐.≯ࢰࢦ󔛣; ; [B1, P1, V6]; xn--887c2298i5mv6a.xn--vybt688qm8981a; ; ; # 𐋥.≯ࢰࢦ
+򛭦𐋥𹸐.≯ࢰࢦ󔛣; 򛭦𐋥𹸐.≯ࢰࢦ󔛣; [B1, P1, V6]; xn--887c2298i5mv6a.xn--vybt688qm8981a; ; ; # 𐋥.≯ࢰࢦ
+xn--887c2298i5mv6a.xn--vybt688qm8981a; 򛭦𐋥𹸐.≯ࢰࢦ󔛣; [B1, V6]; xn--887c2298i5mv6a.xn--vybt688qm8981a; ; ; # 𐋥.≯ࢰࢦ
+䔛󠇒򤸞𐹧.-䤷; 䔛򤸞𐹧.-䤷; [B1, B5, B6, P1, V3, V6]; xn--2loy662coo60e.xn----0n4a; ; ; # 䔛𐹧.-䤷
+䔛󠇒򤸞𐹧.-䤷; 䔛򤸞𐹧.-䤷; [B1, B5, B6, P1, V3, V6]; xn--2loy662coo60e.xn----0n4a; ; ; # 䔛𐹧.-䤷
+xn--2loy662coo60e.xn----0n4a; 䔛򤸞𐹧.-䤷; [B1, B5, B6, V3, V6]; xn--2loy662coo60e.xn----0n4a; ; ; # 䔛𐹧.-䤷
+𐹩.‍-; 𐹩.‍-; [B1, C2, V3]; xn--ho0d.xn----tgn; ; xn--ho0d.-; [B1, V3] # 𐹩.-
+𐹩.‍-; ; [B1, C2, V3]; xn--ho0d.xn----tgn; ; xn--ho0d.-; [B1, V3] # 𐹩.-
+xn--ho0d.-; 𐹩.-; [B1, V3]; xn--ho0d.-; ; ; # 𐹩.-
+xn--ho0d.xn----tgn; 𐹩.‍-; [B1, C2, V3]; xn--ho0d.xn----tgn; ; ; # 𐹩.-
+񂈦帷。≯萺᷈-; 񂈦帷.≯萺᷈-; [P1, V3, V6]; xn--qutw175s.xn----mimu6tf67j; ; ; # 帷.≯萺᷈-
+񂈦帷。≯萺᷈-; 񂈦帷.≯萺᷈-; [P1, V3, V6]; xn--qutw175s.xn----mimu6tf67j; ; ; # 帷.≯萺᷈-
+񂈦帷。≯萺᷈-; 񂈦帷.≯萺᷈-; [P1, V3, V6]; xn--qutw175s.xn----mimu6tf67j; ; ; # 帷.≯萺᷈-
+񂈦帷。≯萺᷈-; 񂈦帷.≯萺᷈-; [P1, V3, V6]; xn--qutw175s.xn----mimu6tf67j; ; ; # 帷.≯萺᷈-
+xn--qutw175s.xn----mimu6tf67j; 񂈦帷.≯萺᷈-; [V3, V6]; xn--qutw175s.xn----mimu6tf67j; ; ; # 帷.≯萺᷈-
+‍攌꯭。ᢖ-Ⴘ; ‍攌꯭.ᢖ-Ⴘ; [C2, P1, V6]; xn--1ug592ykp6b.xn----k1g451d; ; xn--p9ut19m.xn----k1g451d; [P1, V6] # 攌꯭.ᢖ-Ⴘ
+‍攌꯭。ᢖ-ⴘ; ‍攌꯭.ᢖ-ⴘ; [C2]; xn--1ug592ykp6b.xn----mck373i; ; xn--p9ut19m.xn----mck373i; [] # 攌꯭.ᢖ-ⴘ
+xn--p9ut19m.xn----mck373i; 攌꯭.ᢖ-ⴘ; ; xn--p9ut19m.xn----mck373i; ; ; # 攌꯭.ᢖ-ⴘ
+攌꯭.ᢖ-ⴘ; ; ; xn--p9ut19m.xn----mck373i; ; ; # 攌꯭.ᢖ-ⴘ
+攌꯭.ᢖ-Ⴘ; ; [P1, V6]; xn--p9ut19m.xn----k1g451d; ; ; # 攌꯭.ᢖ-Ⴘ
+xn--p9ut19m.xn----k1g451d; 攌꯭.ᢖ-Ⴘ; [V6]; xn--p9ut19m.xn----k1g451d; ; ; # 攌꯭.ᢖ-Ⴘ
+xn--1ug592ykp6b.xn----mck373i; ‍攌꯭.ᢖ-ⴘ; [C2]; xn--1ug592ykp6b.xn----mck373i; ; ; # 攌꯭.ᢖ-ⴘ
+xn--1ug592ykp6b.xn----k1g451d; ‍攌꯭.ᢖ-Ⴘ; [C2, V6]; xn--1ug592ykp6b.xn----k1g451d; ; ; # 攌꯭.ᢖ-Ⴘ
+‌ꖨ.⒗3툒۳; ‌ꖨ.⒗3툒۳; [C1, P1, V6]; xn--0ug2473c.xn--3-nyc678tu07m; ; xn--9r8a.xn--3-nyc678tu07m; [P1, V6] # ꖨ.⒗3툒۳
+‌ꖨ.⒗3툒۳; ‌ꖨ.⒗3툒۳; [C1, P1, V6]; xn--0ug2473c.xn--3-nyc678tu07m; ; xn--9r8a.xn--3-nyc678tu07m; [P1, V6] # ꖨ.⒗3툒۳
+‌ꖨ.16.3툒۳; ; [C1]; xn--0ug2473c.16.xn--3-nyc0117m; ; xn--9r8a.16.xn--3-nyc0117m; [] # ꖨ.16.3툒۳
+‌ꖨ.16.3툒۳; ‌ꖨ.16.3툒۳; [C1]; xn--0ug2473c.16.xn--3-nyc0117m; ; xn--9r8a.16.xn--3-nyc0117m; [] # ꖨ.16.3툒۳
+xn--9r8a.16.xn--3-nyc0117m; ꖨ.16.3툒۳; ; xn--9r8a.16.xn--3-nyc0117m; ; ; # ꖨ.16.3툒۳
+ꖨ.16.3툒۳; ; ; xn--9r8a.16.xn--3-nyc0117m; ; ; # ꖨ.16.3툒۳
+ꖨ.16.3툒۳; ꖨ.16.3툒۳; ; xn--9r8a.16.xn--3-nyc0117m; ; ; # ꖨ.16.3툒۳
+xn--0ug2473c.16.xn--3-nyc0117m; ‌ꖨ.16.3툒۳; [C1]; xn--0ug2473c.16.xn--3-nyc0117m; ; ; # ꖨ.16.3툒۳
+xn--9r8a.xn--3-nyc678tu07m; ꖨ.⒗3툒۳; [V6]; xn--9r8a.xn--3-nyc678tu07m; ; ; # ꖨ.⒗3툒۳
+xn--0ug2473c.xn--3-nyc678tu07m; ‌ꖨ.⒗3툒۳; [C1, V6]; xn--0ug2473c.xn--3-nyc678tu07m; ; ; # ꖨ.⒗3툒۳
+⒈걾6.𐱁ې; ; [B1, P1, V6]; xn--6-dcps419c.xn--glb1794k; ; ; # ⒈걾6.𐱁ې
+⒈걾6.𐱁ې; ⒈걾6.𐱁ې; [B1, P1, V6]; xn--6-dcps419c.xn--glb1794k; ; ; # ⒈걾6.𐱁ې
+1.걾6.𐱁ې; ; [B1]; 1.xn--6-945e.xn--glb1794k; ; ; # 1.걾6.𐱁ې
+1.걾6.𐱁ې; 1.걾6.𐱁ې; [B1]; 1.xn--6-945e.xn--glb1794k; ; ; # 1.걾6.𐱁ې
+1.xn--6-945e.xn--glb1794k; 1.걾6.𐱁ې; [B1]; 1.xn--6-945e.xn--glb1794k; ; ; # 1.걾6.𐱁ې
+xn--6-dcps419c.xn--glb1794k; ⒈걾6.𐱁ې; [B1, V6]; xn--6-dcps419c.xn--glb1794k; ; ; # ⒈걾6.𐱁ې
+𐲞𝟶≮≮.󠀧ع; 𐳞0≮≮.󠀧ع; [B1, B3, P1, V6]; xn--0-ngoa5711v.xn--4gb31034p; ; ; # 𐳞0≮≮.ع
+𐲞𝟶≮≮.󠀧ع; 𐳞0≮≮.󠀧ع; [B1, B3, P1, V6]; xn--0-ngoa5711v.xn--4gb31034p; ; ; # 𐳞0≮≮.ع
+𐲞0≮≮.󠀧ع; 𐳞0≮≮.󠀧ع; [B1, B3, P1, V6]; xn--0-ngoa5711v.xn--4gb31034p; ; ; # 𐳞0≮≮.ع
+𐲞0≮≮.󠀧ع; 𐳞0≮≮.󠀧ع; [B1, B3, P1, V6]; xn--0-ngoa5711v.xn--4gb31034p; ; ; # 𐳞0≮≮.ع
+𐳞0≮≮.󠀧ع; 𐳞0≮≮.󠀧ع; [B1, B3, P1, V6]; xn--0-ngoa5711v.xn--4gb31034p; ; ; # 𐳞0≮≮.ع
+𐳞0≮≮.󠀧ع; ; [B1, B3, P1, V6]; xn--0-ngoa5711v.xn--4gb31034p; ; ; # 𐳞0≮≮.ع
+xn--0-ngoa5711v.xn--4gb31034p; 𐳞0≮≮.󠀧ع; [B1, B3, V6]; xn--0-ngoa5711v.xn--4gb31034p; ; ; # 𐳞0≮≮.ع
+𐳞𝟶≮≮.󠀧ع; 𐳞0≮≮.󠀧ع; [B1, B3, P1, V6]; xn--0-ngoa5711v.xn--4gb31034p; ; ; # 𐳞0≮≮.ع
+𐳞𝟶≮≮.󠀧ع; 𐳞0≮≮.󠀧ع; [B1, B3, P1, V6]; xn--0-ngoa5711v.xn--4gb31034p; ; ; # 𐳞0≮≮.ع
+ૣ.𐹺ᅟ; ; [B1, B3, B6, P1, V5, V6]; xn--8fc.xn--osd3070k; ; ; # ૣ.𐹺
+xn--8fc.xn--osd3070k; ૣ.𐹺ᅟ; [B1, B3, B6, V5, V6]; xn--8fc.xn--osd3070k; ; ; # ૣ.𐹺
+𝟏𝨙⸖.‍; 1𝨙⸖.‍; [C2]; xn--1-5bt6845n.xn--1ug; ; xn--1-5bt6845n.; [] # 1𝨙⸖.
+1𝨙⸖.‍; ; [C2]; xn--1-5bt6845n.xn--1ug; ; xn--1-5bt6845n.; [] # 1𝨙⸖.
+xn--1-5bt6845n.; 1𝨙⸖.; ; xn--1-5bt6845n.; ; ; # 1𝨙⸖.
+1𝨙⸖.; ; ; xn--1-5bt6845n.; ; ; # 1𝨙⸖.
+xn--1-5bt6845n.xn--1ug; 1𝨙⸖.‍; [C2]; xn--1-5bt6845n.xn--1ug; ; ; # 1𝨙⸖.
+𞤐≠ܦ᩠。-‌ߕ; 𞤲≠ܦ᩠.-‌ߕ; [B1, C1, P1, V3, V6]; xn--wnb859grzfzw60c.xn----kcd017p; ; xn--wnb859grzfzw60c.xn----kcd; [B1, P1, V3, V6] # 𞤲≠ܦ᩠.-ߕ
+𞤐≠ܦ᩠。-‌ߕ; 𞤲≠ܦ᩠.-‌ߕ; [B1, C1, P1, V3, V6]; xn--wnb859grzfzw60c.xn----kcd017p; ; xn--wnb859grzfzw60c.xn----kcd; [B1, P1, V3, V6] # 𞤲≠ܦ᩠.-ߕ
+𞤐≠ܦ᩠。-‌ߕ; 𞤲≠ܦ᩠.-‌ߕ; [B1, C1, P1, V3, V6]; xn--wnb859grzfzw60c.xn----kcd017p; ; xn--wnb859grzfzw60c.xn----kcd; [B1, P1, V3, V6] # 𞤲≠ܦ᩠.-ߕ
+𞤐≠ܦ᩠。-‌ߕ; 𞤲≠ܦ᩠.-‌ߕ; [B1, C1, P1, V3, V6]; xn--wnb859grzfzw60c.xn----kcd017p; ; xn--wnb859grzfzw60c.xn----kcd; [B1, P1, V3, V6] # 𞤲≠ܦ᩠.-ߕ
+𞤲≠ܦ᩠。-‌ߕ; 𞤲≠ܦ᩠.-‌ߕ; [B1, C1, P1, V3, V6]; xn--wnb859grzfzw60c.xn----kcd017p; ; xn--wnb859grzfzw60c.xn----kcd; [B1, P1, V3, V6] # 𞤲≠ܦ᩠.-ߕ
+𞤲≠ܦ᩠。-‌ߕ; 𞤲≠ܦ᩠.-‌ߕ; [B1, C1, P1, V3, V6]; xn--wnb859grzfzw60c.xn----kcd017p; ; xn--wnb859grzfzw60c.xn----kcd; [B1, P1, V3, V6] # 𞤲≠ܦ᩠.-ߕ
+xn--wnb859grzfzw60c.xn----kcd; 𞤲≠ܦ᩠.-ߕ; [B1, V3, V6]; xn--wnb859grzfzw60c.xn----kcd; ; ; # 𞤲≠ܦ᩠.-ߕ
+xn--wnb859grzfzw60c.xn----kcd017p; 𞤲≠ܦ᩠.-‌ߕ; [B1, C1, V3, V6]; xn--wnb859grzfzw60c.xn----kcd017p; ; ; # 𞤲≠ܦ᩠.-ߕ
+𞤲≠ܦ᩠。-‌ߕ; 𞤲≠ܦ᩠.-‌ߕ; [B1, C1, P1, V3, V6]; xn--wnb859grzfzw60c.xn----kcd017p; ; xn--wnb859grzfzw60c.xn----kcd; [B1, P1, V3, V6] # 𞤲≠ܦ᩠.-ߕ
+𞤲≠ܦ᩠。-‌ߕ; 𞤲≠ܦ᩠.-‌ߕ; [B1, C1, P1, V3, V6]; xn--wnb859grzfzw60c.xn----kcd017p; ; xn--wnb859grzfzw60c.xn----kcd; [B1, P1, V3, V6] # 𞤲≠ܦ᩠.-ߕ
+𐹰ͨ-ꡧ。ٵ; 𐹰ͨ-ꡧ.اٴ; [B1]; xn----shb2387jgkqd.xn--mgb8m; ; ; # 𐹰ͨ-ꡧ.اٴ
+𐹰ͨ-ꡧ。اٴ; 𐹰ͨ-ꡧ.اٴ; [B1]; xn----shb2387jgkqd.xn--mgb8m; ; ; # 𐹰ͨ-ꡧ.اٴ
+xn----shb2387jgkqd.xn--mgb8m; 𐹰ͨ-ꡧ.اٴ; [B1]; xn----shb2387jgkqd.xn--mgb8m; ; ; # 𐹰ͨ-ꡧ.اٴ
+F󠅟。򏗅♚; f.򏗅♚; [P1, V6]; f.xn--45hz6953f; ; ; # f.♚
+F󠅟。򏗅♚; f.򏗅♚; [P1, V6]; f.xn--45hz6953f; ; ; # f.♚
+f󠅟。򏗅♚; f.򏗅♚; [P1, V6]; f.xn--45hz6953f; ; ; # f.♚
+f.xn--45hz6953f; f.򏗅♚; [V6]; f.xn--45hz6953f; ; ; # f.♚
+f󠅟。򏗅♚; f.򏗅♚; [P1, V6]; f.xn--45hz6953f; ; ; # f.♚
+୍𑄴ᷩ。𝟮Ⴘ𞀨񃥇; ୍𑄴ᷩ.2Ⴘ𞀨񃥇; [P1, V5, V6]; xn--9ic246gs21p.xn--2-k1g43076adrwq; ; ; # ୍𑄴ᷩ.2Ⴘ𞀨
+୍𑄴ᷩ。2Ⴘ𞀨񃥇; ୍𑄴ᷩ.2Ⴘ𞀨񃥇; [P1, V5, V6]; xn--9ic246gs21p.xn--2-k1g43076adrwq; ; ; # ୍𑄴ᷩ.2Ⴘ𞀨
+୍𑄴ᷩ。2ⴘ𞀨񃥇; ୍𑄴ᷩ.2ⴘ𞀨񃥇; [P1, V5, V6]; xn--9ic246gs21p.xn--2-nws2918ndrjr; ; ; # ୍𑄴ᷩ.2ⴘ𞀨
+xn--9ic246gs21p.xn--2-nws2918ndrjr; ୍𑄴ᷩ.2ⴘ𞀨񃥇; [V5, V6]; xn--9ic246gs21p.xn--2-nws2918ndrjr; ; ; # ୍𑄴ᷩ.2ⴘ𞀨
+xn--9ic246gs21p.xn--2-k1g43076adrwq; ୍𑄴ᷩ.2Ⴘ𞀨񃥇; [V5, V6]; xn--9ic246gs21p.xn--2-k1g43076adrwq; ; ; # ୍𑄴ᷩ.2Ⴘ𞀨
+୍𑄴ᷩ。𝟮ⴘ𞀨񃥇; ୍𑄴ᷩ.2ⴘ𞀨񃥇; [P1, V5, V6]; xn--9ic246gs21p.xn--2-nws2918ndrjr; ; ; # ୍𑄴ᷩ.2ⴘ𞀨
+򓠭‌‌⒈。勉𑁅; 򓠭‌‌⒈.勉𑁅; [C1, P1, V6]; xn--0uga855aez302a.xn--4grs325b; ; xn--tsh11906f.xn--4grs325b; [P1, V6] # ⒈.勉𑁅
+򓠭‌‌1.。勉𑁅; 򓠭‌‌1..勉𑁅; [C1, P1, V6, X4_2]; xn--1-rgna61159u..xn--4grs325b; [C1, P1, V6, A4_2]; xn--1-yi00h..xn--4grs325b; [P1, V6, A4_2] # 1..勉𑁅
+xn--1-yi00h..xn--4grs325b; 򓠭1..勉𑁅; [V6, X4_2]; xn--1-yi00h..xn--4grs325b; [V6, A4_2]; ; # 1..勉𑁅
+xn--1-rgna61159u..xn--4grs325b; 򓠭‌‌1..勉𑁅; [C1, V6, X4_2]; xn--1-rgna61159u..xn--4grs325b; [C1, V6, A4_2]; ; # 1..勉𑁅
+xn--tsh11906f.xn--4grs325b; 򓠭⒈.勉𑁅; [V6]; xn--tsh11906f.xn--4grs325b; ; ; # ⒈.勉𑁅
+xn--0uga855aez302a.xn--4grs325b; 򓠭‌‌⒈.勉𑁅; [C1, V6]; xn--0uga855aez302a.xn--4grs325b; ; ; # ⒈.勉𑁅
+ᡃ.玿񫈜󕞐; ; [P1, V6]; xn--27e.xn--7cy81125a0yq4a; ; ; # ᡃ.玿
+xn--27e.xn--7cy81125a0yq4a; ᡃ.玿񫈜󕞐; [V6]; xn--27e.xn--7cy81125a0yq4a; ; ; # ᡃ.玿
+‌‌。⒈≯𝟵; ‌‌.⒈≯9; [C1, P1, V6]; xn--0uga.xn--9-ogo37g; ; .xn--9-ogo37g; [P1, V6, A4_2] # .⒈≯9
+‌‌。⒈≯𝟵; ‌‌.⒈≯9; [C1, P1, V6]; xn--0uga.xn--9-ogo37g; ; .xn--9-ogo37g; [P1, V6, A4_2] # .⒈≯9
+‌‌。1.≯9; ‌‌.1.≯9; [C1, P1, V6]; xn--0uga.1.xn--9-ogo; ; .1.xn--9-ogo; [P1, V6, A4_2] # .1.≯9
+‌‌。1.≯9; ‌‌.1.≯9; [C1, P1, V6]; xn--0uga.1.xn--9-ogo; ; .1.xn--9-ogo; [P1, V6, A4_2] # .1.≯9
+.1.xn--9-ogo; .1.≯9; [V6, X4_2]; .1.xn--9-ogo; [V6, A4_2]; ; # .1.≯9
+xn--0uga.1.xn--9-ogo; ‌‌.1.≯9; [C1, V6]; xn--0uga.1.xn--9-ogo; ; ; # .1.≯9
+.xn--9-ogo37g; .⒈≯9; [V6, X4_2]; .xn--9-ogo37g; [V6, A4_2]; ; # .⒈≯9
+xn--0uga.xn--9-ogo37g; ‌‌.⒈≯9; [C1, V6]; xn--0uga.xn--9-ogo37g; ; ; # .⒈≯9
+ᅟᷠ򐀁.𺻆≯𐮁; ; [B5, B6, P1, V6]; xn--osd615d5659o.xn--hdh5192gkm6r; ; ; # ᷠ.≯𐮁
+ᅟᷠ򐀁.𺻆≯𐮁; ᅟᷠ򐀁.𺻆≯𐮁; [B5, B6, P1, V6]; xn--osd615d5659o.xn--hdh5192gkm6r; ; ; # ᷠ.≯𐮁
+xn--osd615d5659o.xn--hdh5192gkm6r; ᅟᷠ򐀁.𺻆≯𐮁; [B5, B6, V6]; xn--osd615d5659o.xn--hdh5192gkm6r; ; ; # ᷠ.≯𐮁
+󠄫𝩤‍ؾ.𝩩-ࠞ󑼩; 𝩤‍ؾ.𝩩-ࠞ󑼩; [B1, C2, P1, V5, V6]; xn--9gb723kg862a.xn----qgd52296avol4f; ; xn--9gb5080v.xn----qgd52296avol4f; [B1, P1, V5, V6] # 𝩤ؾ.𝩩-ࠞ
+xn--9gb5080v.xn----qgd52296avol4f; 𝩤ؾ.𝩩-ࠞ󑼩; [B1, V5, V6]; xn--9gb5080v.xn----qgd52296avol4f; ; ; # 𝩤ؾ.𝩩-ࠞ
+xn--9gb723kg862a.xn----qgd52296avol4f; 𝩤‍ؾ.𝩩-ࠞ󑼩; [B1, C2, V5, V6]; xn--9gb723kg862a.xn----qgd52296avol4f; ; ; # 𝩤ؾ.𝩩-ࠞ
+⃚.𑘿-; ⃚.𑘿-; [V3, V5]; xn--w0g.xn----bd0j; ; ; # ⃚.𑘿-
+⃚.𑘿-; ; [V3, V5]; xn--w0g.xn----bd0j; ; ; # ⃚.𑘿-
+xn--w0g.xn----bd0j; ⃚.𑘿-; [V3, V5]; xn--w0g.xn----bd0j; ; ; # ⃚.𑘿-
+䮸ß.󠵟󠭎紙ࢨ; ; [B1, P1, V6]; xn--zca5349a.xn--xyb1370div70kpzba; ; xn--ss-sf1c.xn--xyb1370div70kpzba; # 䮸ß.紙ࢨ
+䮸SS.󠵟󠭎紙ࢨ; 䮸ss.󠵟󠭎紙ࢨ; [B1, P1, V6]; xn--ss-sf1c.xn--xyb1370div70kpzba; ; ; # 䮸ss.紙ࢨ
+䮸ss.󠵟󠭎紙ࢨ; ; [B1, P1, V6]; xn--ss-sf1c.xn--xyb1370div70kpzba; ; ; # 䮸ss.紙ࢨ
+䮸Ss.󠵟󠭎紙ࢨ; 䮸ss.󠵟󠭎紙ࢨ; [B1, P1, V6]; xn--ss-sf1c.xn--xyb1370div70kpzba; ; ; # 䮸ss.紙ࢨ
+xn--ss-sf1c.xn--xyb1370div70kpzba; 䮸ss.󠵟󠭎紙ࢨ; [B1, V6]; xn--ss-sf1c.xn--xyb1370div70kpzba; ; ; # 䮸ss.紙ࢨ
+xn--zca5349a.xn--xyb1370div70kpzba; 䮸ß.󠵟󠭎紙ࢨ; [B1, V6]; xn--zca5349a.xn--xyb1370div70kpzba; ; ; # 䮸ß.紙ࢨ
+-Ⴞ.-𝩨⅔𐦕; -Ⴞ.-𝩨2⁄3𐦕; [B1, P1, V3, V6]; xn----w1g.xn---23-pt0a0433lk3jj; ; ; # -Ⴞ.-𝩨2⁄3𐦕
+-Ⴞ.-𝩨2⁄3𐦕; ; [B1, P1, V3, V6]; xn----w1g.xn---23-pt0a0433lk3jj; ; ; # -Ⴞ.-𝩨2⁄3𐦕
+-ⴞ.-𝩨2⁄3𐦕; ; [B1, V3]; xn----zws.xn---23-pt0a0433lk3jj; ; ; # -ⴞ.-𝩨2⁄3𐦕
+xn----zws.xn---23-pt0a0433lk3jj; -ⴞ.-𝩨2⁄3𐦕; [B1, V3]; xn----zws.xn---23-pt0a0433lk3jj; ; ; # -ⴞ.-𝩨2⁄3𐦕
+xn----w1g.xn---23-pt0a0433lk3jj; -Ⴞ.-𝩨2⁄3𐦕; [B1, V3, V6]; xn----w1g.xn---23-pt0a0433lk3jj; ; ; # -Ⴞ.-𝩨2⁄3𐦕
+-ⴞ.-𝩨⅔𐦕; -ⴞ.-𝩨2⁄3𐦕; [B1, V3]; xn----zws.xn---23-pt0a0433lk3jj; ; ; # -ⴞ.-𝩨2⁄3𐦕
+󧈯𐹯ૂ。򖢨𐮁񇼖ᡂ; 󧈯𐹯ૂ.򖢨𐮁񇼖ᡂ; [B5, B6, P1, V6]; xn--bfc7604kv8m3g.xn--17e5565jl7zw4h16a; ; ; # 𐹯ૂ.𐮁ᡂ
+󧈯𐹯ૂ。򖢨𐮁񇼖ᡂ; 󧈯𐹯ૂ.򖢨𐮁񇼖ᡂ; [B5, B6, P1, V6]; xn--bfc7604kv8m3g.xn--17e5565jl7zw4h16a; ; ; # 𐹯ૂ.𐮁ᡂ
+xn--bfc7604kv8m3g.xn--17e5565jl7zw4h16a; 󧈯𐹯ૂ.򖢨𐮁񇼖ᡂ; [B5, B6, V6]; xn--bfc7604kv8m3g.xn--17e5565jl7zw4h16a; ; ; # 𐹯ૂ.𐮁ᡂ
+ႂ-‍꣪.ꡊ‍񼸳; ႂ-‍꣪.ꡊ‍񼸳; [C2, P1, V5, V6]; xn----gyg250jio7k.xn--1ug8774cri56d; ; xn----gyg3618i.xn--jc9ao4185a; [P1, V5, V6] # ႂ-꣪.ꡊ
+ႂ-‍꣪.ꡊ‍񼸳; ; [C2, P1, V5, V6]; xn----gyg250jio7k.xn--1ug8774cri56d; ; xn----gyg3618i.xn--jc9ao4185a; [P1, V5, V6] # ႂ-꣪.ꡊ
+xn----gyg3618i.xn--jc9ao4185a; ႂ-꣪.ꡊ񼸳; [V5, V6]; xn----gyg3618i.xn--jc9ao4185a; ; ; # ႂ-꣪.ꡊ
+xn----gyg250jio7k.xn--1ug8774cri56d; ႂ-‍꣪.ꡊ‍񼸳; [C2, V5, V6]; xn----gyg250jio7k.xn--1ug8774cri56d; ; ; # ႂ-꣪.ꡊ
+۱。≠٨; ۱.≠٨; [B1, P1, V6]; xn--emb.xn--hib334l; ; ; # ۱.≠٨
+۱。≠٨; ۱.≠٨; [B1, P1, V6]; xn--emb.xn--hib334l; ; ; # ۱.≠٨
+xn--emb.xn--hib334l; ۱.≠٨; [B1, V6]; xn--emb.xn--hib334l; ; ; # ۱.≠٨
+𑈵廊.𐠍; ; [V5]; xn--xytw701b.xn--yc9c; ; ; # 𑈵廊.𐠍
+xn--xytw701b.xn--yc9c; 𑈵廊.𐠍; [V5]; xn--xytw701b.xn--yc9c; ; ; # 𑈵廊.𐠍
+‍͖-.-Ⴐ١; ‍͖-.-Ⴐ١; [B1, C2, P1, V3, V6]; xn----rgb661t.xn----bqc030f; ; xn----rgb.xn----bqc030f; [B1, P1, V3, V5, V6] # ͖-.-Ⴐ١
+‍͖-.-Ⴐ١; ; [B1, C2, P1, V3, V6]; xn----rgb661t.xn----bqc030f; ; xn----rgb.xn----bqc030f; [B1, P1, V3, V5, V6] # ͖-.-Ⴐ١
+‍͖-.-ⴐ١; ; [B1, C2, V3]; xn----rgb661t.xn----bqc2280a; ; xn----rgb.xn----bqc2280a; [B1, V3, V5] # ͖-.-ⴐ١
+xn----rgb.xn----bqc2280a; ͖-.-ⴐ١; [B1, V3, V5]; xn----rgb.xn----bqc2280a; ; ; # ͖-.-ⴐ١
+xn----rgb661t.xn----bqc2280a; ‍͖-.-ⴐ١; [B1, C2, V3]; xn----rgb661t.xn----bqc2280a; ; ; # ͖-.-ⴐ١
+xn----rgb.xn----bqc030f; ͖-.-Ⴐ١; [B1, V3, V5, V6]; xn----rgb.xn----bqc030f; ; ; # ͖-.-Ⴐ١
+xn----rgb661t.xn----bqc030f; ‍͖-.-Ⴐ١; [B1, C2, V3, V6]; xn----rgb661t.xn----bqc030f; ; ; # ͖-.-Ⴐ١
+‍͖-.-ⴐ١; ‍͖-.-ⴐ١; [B1, C2, V3]; xn----rgb661t.xn----bqc2280a; ; xn----rgb.xn----bqc2280a; [B1, V3, V5] # ͖-.-ⴐ١
+غ١挏󾯐.-; ; [B1, B2, B3, P1, V3, V6]; xn--5gb2f4205aqi47p.-; ; ; # غ١挏.-
+xn--5gb2f4205aqi47p.-; غ١挏󾯐.-; [B1, B2, B3, V3, V6]; xn--5gb2f4205aqi47p.-; ; ; # غ١挏.-
+ۯ。𐹧𞤽; ۯ.𐹧𞤽; [B1]; xn--cmb.xn--fo0dy848a; ; ; # ۯ.𐹧𞤽
+ۯ。𐹧𞤽; ۯ.𐹧𞤽; [B1]; xn--cmb.xn--fo0dy848a; ; ; # ۯ.𐹧𞤽
+ۯ。𐹧𞤛; ۯ.𐹧𞤽; [B1]; xn--cmb.xn--fo0dy848a; ; ; # ۯ.𐹧𞤽
+xn--cmb.xn--fo0dy848a; ۯ.𐹧𞤽; [B1]; xn--cmb.xn--fo0dy848a; ; ; # ۯ.𐹧𞤽
+ۯ。𐹧𞤛; ۯ.𐹧𞤽; [B1]; xn--cmb.xn--fo0dy848a; ; ; # ۯ.𐹧𞤽
+Ⴞ𶛀𛗻.ᢗ릫; Ⴞ𶛀𛗻.ᢗ릫; [P1, V6]; xn--2nd8876sgl2j.xn--hbf6853f; ; ; # Ⴞ.ᢗ릫
+Ⴞ𶛀𛗻.ᢗ릫; Ⴞ𶛀𛗻.ᢗ릫; [P1, V6]; xn--2nd8876sgl2j.xn--hbf6853f; ; ; # Ⴞ.ᢗ릫
+Ⴞ𶛀𛗻.ᢗ릫; ; [P1, V6]; xn--2nd8876sgl2j.xn--hbf6853f; ; ; # Ⴞ.ᢗ릫
+Ⴞ𶛀𛗻.ᢗ릫; Ⴞ𶛀𛗻.ᢗ릫; [P1, V6]; xn--2nd8876sgl2j.xn--hbf6853f; ; ; # Ⴞ.ᢗ릫
+ⴞ𶛀𛗻.ᢗ릫; ⴞ𶛀𛗻.ᢗ릫; [P1, V6]; xn--mlj0486jgl2j.xn--hbf6853f; ; ; # ⴞ.ᢗ릫
+ⴞ𶛀𛗻.ᢗ릫; ; [P1, V6]; xn--mlj0486jgl2j.xn--hbf6853f; ; ; # ⴞ.ᢗ릫
+xn--mlj0486jgl2j.xn--hbf6853f; ⴞ𶛀𛗻.ᢗ릫; [V6]; xn--mlj0486jgl2j.xn--hbf6853f; ; ; # ⴞ.ᢗ릫
+xn--2nd8876sgl2j.xn--hbf6853f; Ⴞ𶛀𛗻.ᢗ릫; [V6]; xn--2nd8876sgl2j.xn--hbf6853f; ; ; # Ⴞ.ᢗ릫
+ⴞ𶛀𛗻.ᢗ릫; ⴞ𶛀𛗻.ᢗ릫; [P1, V6]; xn--mlj0486jgl2j.xn--hbf6853f; ; ; # ⴞ.ᢗ릫
+ⴞ𶛀𛗻.ᢗ릫; ⴞ𶛀𛗻.ᢗ릫; [P1, V6]; xn--mlj0486jgl2j.xn--hbf6853f; ; ; # ⴞ.ᢗ릫
+󠎃󗭞ڷ𐹷。≯‌᷾; 󠎃󗭞ڷ𐹷.≯‌᷾; [B1, C1, P1, V6]; xn--qkb4516kbi06fg2id.xn--zfg59fm0c; ; xn--qkb4516kbi06fg2id.xn--zfg31q; [B1, P1, V6] # ڷ𐹷.≯᷾
+󠎃󗭞ڷ𐹷。≯‌᷾; 󠎃󗭞ڷ𐹷.≯‌᷾; [B1, C1, P1, V6]; xn--qkb4516kbi06fg2id.xn--zfg59fm0c; ; xn--qkb4516kbi06fg2id.xn--zfg31q; [B1, P1, V6] # ڷ𐹷.≯᷾
+󠎃󗭞ڷ𐹷。≯‌᷾; 󠎃󗭞ڷ𐹷.≯‌᷾; [B1, C1, P1, V6]; xn--qkb4516kbi06fg2id.xn--zfg59fm0c; ; xn--qkb4516kbi06fg2id.xn--zfg31q; [B1, P1, V6] # ڷ𐹷.≯᷾
+󠎃󗭞ڷ𐹷。≯‌᷾; 󠎃󗭞ڷ𐹷.≯‌᷾; [B1, C1, P1, V6]; xn--qkb4516kbi06fg2id.xn--zfg59fm0c; ; xn--qkb4516kbi06fg2id.xn--zfg31q; [B1, P1, V6] # ڷ𐹷.≯᷾
+xn--qkb4516kbi06fg2id.xn--zfg31q; 󠎃󗭞ڷ𐹷.≯᷾; [B1, V6]; xn--qkb4516kbi06fg2id.xn--zfg31q; ; ; # ڷ𐹷.≯᷾
+xn--qkb4516kbi06fg2id.xn--zfg59fm0c; 󠎃󗭞ڷ𐹷.≯‌᷾; [B1, C1, V6]; xn--qkb4516kbi06fg2id.xn--zfg59fm0c; ; ; # ڷ𐹷.≯᷾
+ᛎ󠅍󠐕‍。𐹾𐹪𐻝-; ᛎ󠐕‍.𐹾𐹪𐻝-; [B1, B6, C2, P1, V3, V6]; xn--fxe848bq3411a.xn----q26i2bvu; ; xn--fxe63563p.xn----q26i2bvu; [B1, B6, P1, V3, V6] # ᛎ.𐹾𐹪-
+ᛎ󠅍󠐕‍。𐹾𐹪𐻝-; ᛎ󠐕‍.𐹾𐹪𐻝-; [B1, B6, C2, P1, V3, V6]; xn--fxe848bq3411a.xn----q26i2bvu; ; xn--fxe63563p.xn----q26i2bvu; [B1, B6, P1, V3, V6] # ᛎ.𐹾𐹪-
+xn--fxe63563p.xn----q26i2bvu; ᛎ󠐕.𐹾𐹪𐻝-; [B1, B6, V3, V6]; xn--fxe63563p.xn----q26i2bvu; ; ; # ᛎ.𐹾𐹪-
+xn--fxe848bq3411a.xn----q26i2bvu; ᛎ󠐕‍.𐹾𐹪𐻝-; [B1, B6, C2, V3, V6]; xn--fxe848bq3411a.xn----q26i2bvu; ; ; # ᛎ.𐹾𐹪-
+𐹶.𐫂; ; [B1]; xn--uo0d.xn--rw9c; ; ; # 𐹶.𐫂
+xn--uo0d.xn--rw9c; 𐹶.𐫂; [B1]; xn--uo0d.xn--rw9c; ; ; # 𐹶.𐫂
+ß‍်。⒈; ß‍်.⒈; [C2, P1, V6]; xn--zca679eh2l.xn--tsh; ; xn--ss-f4j.xn--tsh; [P1, V6] # ß်.⒈
+ß‍်。1.; ß‍်.1.; [C2]; xn--zca679eh2l.1.; ; xn--ss-f4j.1.; [] # ß်.1.
+SS‍်。1.; ss‍်.1.; [C2]; xn--ss-f4j585j.1.; ; xn--ss-f4j.1.; [] # ss်.1.
+ss‍်。1.; ss‍်.1.; [C2]; xn--ss-f4j585j.1.; ; xn--ss-f4j.1.; [] # ss်.1.
+Ss‍်。1.; ss‍်.1.; [C2]; xn--ss-f4j585j.1.; ; xn--ss-f4j.1.; [] # ss်.1.
+xn--ss-f4j.1.; ss်.1.; ; xn--ss-f4j.1.; ; ; # ss်.1.
+ss်.1.; ; ; xn--ss-f4j.1.; ; ; # ss်.1.
+SS်.1.; ss်.1.; ; xn--ss-f4j.1.; ; ; # ss်.1.
+Ss်.1.; ss်.1.; ; xn--ss-f4j.1.; ; ; # ss်.1.
+xn--ss-f4j585j.1.; ss‍်.1.; [C2]; xn--ss-f4j585j.1.; ; ; # ss်.1.
+xn--zca679eh2l.1.; ß‍်.1.; [C2]; xn--zca679eh2l.1.; ; ; # ß်.1.
+SS‍်。⒈; ss‍်.⒈; [C2, P1, V6]; xn--ss-f4j585j.xn--tsh; ; xn--ss-f4j.xn--tsh; [P1, V6] # ss်.⒈
+ss‍်。⒈; ss‍်.⒈; [C2, P1, V6]; xn--ss-f4j585j.xn--tsh; ; xn--ss-f4j.xn--tsh; [P1, V6] # ss်.⒈
+Ss‍်。⒈; ss‍်.⒈; [C2, P1, V6]; xn--ss-f4j585j.xn--tsh; ; xn--ss-f4j.xn--tsh; [P1, V6] # ss်.⒈
+xn--ss-f4j.xn--tsh; ss်.⒈; [V6]; xn--ss-f4j.xn--tsh; ; ; # ss်.⒈
+xn--ss-f4j585j.xn--tsh; ss‍်.⒈; [C2, V6]; xn--ss-f4j585j.xn--tsh; ; ; # ss်.⒈
+xn--zca679eh2l.xn--tsh; ß‍်.⒈; [C2, V6]; xn--zca679eh2l.xn--tsh; ; ; # ß်.⒈
+୍‌𙶵𞻘。‍; ୍‌𙶵𞻘.‍; [B1, C2, P1, V5, V6]; xn--9ic637hz82z32jc.xn--1ug; ; xn--9ic6417rn4xb.; [B1, P1, V5, V6] # ୍.
+xn--9ic6417rn4xb.; ୍𙶵𞻘.; [B1, V5, V6]; xn--9ic6417rn4xb.; ; ; # ୍.
+xn--9ic637hz82z32jc.xn--1ug; ୍‌𙶵𞻘.‍; [B1, C2, V5, V6]; xn--9ic637hz82z32jc.xn--1ug; ; ; # ୍.
+𐮅。ڼ🁕; 𐮅.ڼ🁕; [B3]; xn--c29c.xn--vkb8871w; ; ; # 𐮅.ڼ🁕
+𐮅。ڼ🁕; 𐮅.ڼ🁕; [B3]; xn--c29c.xn--vkb8871w; ; ; # 𐮅.ڼ🁕
+xn--c29c.xn--vkb8871w; 𐮅.ڼ🁕; [B3]; xn--c29c.xn--vkb8871w; ; ; # 𐮅.ڼ🁕
+ؠ្。𐫔󠀧‌𑈵; ؠ្.𐫔󠀧‌𑈵; [B2, B3, C1, P1, V6]; xn--fgb471g.xn--0ug9853g7verp838a; ; xn--fgb471g.xn--9w9c29jw3931a; [B2, B3, P1, V6] # ؠ្.𐫔𑈵
+xn--fgb471g.xn--9w9c29jw3931a; ؠ្.𐫔󠀧𑈵; [B2, B3, V6]; xn--fgb471g.xn--9w9c29jw3931a; ; ; # ؠ្.𐫔𑈵
+xn--fgb471g.xn--0ug9853g7verp838a; ؠ្.𐫔󠀧‌𑈵; [B2, B3, C1, V6]; xn--fgb471g.xn--0ug9853g7verp838a; ; ; # ؠ្.𐫔𑈵
+񋉕.𞣕𞤊; 񋉕.𞣕𞤬; [B1, P1, V5, V6]; xn--tf5w.xn--2b6hof; ; ; # .𞣕𞤬
+񋉕.𞣕𞤬; ; [B1, P1, V5, V6]; xn--tf5w.xn--2b6hof; ; ; # .𞣕𞤬
+xn--tf5w.xn--2b6hof; 񋉕.𞣕𞤬; [B1, V5, V6]; xn--tf5w.xn--2b6hof; ; ; # .𞣕𞤬
+ی𐨿.ß྄𑍬; ی𐨿.ß྄𑍬; ; xn--clb2593k.xn--zca216edt0r; ; xn--clb2593k.xn--ss-toj6092t; # ی𐨿.ß྄𑍬
+ی𐨿.ß྄𑍬; ; ; xn--clb2593k.xn--zca216edt0r; ; xn--clb2593k.xn--ss-toj6092t; # ی𐨿.ß྄𑍬
+ی𐨿.SS྄𑍬; ی𐨿.ss྄𑍬; ; xn--clb2593k.xn--ss-toj6092t; ; ; # ی𐨿.ss྄𑍬
+ی𐨿.ss྄𑍬; ; ; xn--clb2593k.xn--ss-toj6092t; ; ; # ی𐨿.ss྄𑍬
+xn--clb2593k.xn--ss-toj6092t; ی𐨿.ss྄𑍬; ; xn--clb2593k.xn--ss-toj6092t; ; ; # ی𐨿.ss྄𑍬
+xn--clb2593k.xn--zca216edt0r; ی𐨿.ß྄𑍬; ; xn--clb2593k.xn--zca216edt0r; ; ; # ی𐨿.ß྄𑍬
+ی𐨿.SS྄𑍬; ی𐨿.ss྄𑍬; ; xn--clb2593k.xn--ss-toj6092t; ; ; # ی𐨿.ss྄𑍬
+ی𐨿.ss྄𑍬; ی𐨿.ss྄𑍬; ; xn--clb2593k.xn--ss-toj6092t; ; ; # ی𐨿.ss྄𑍬
+ی𐨿.Ss྄𑍬; ی𐨿.ss྄𑍬; ; xn--clb2593k.xn--ss-toj6092t; ; ; # ی𐨿.ss྄𑍬
+ی𐨿.Ss྄𑍬; ی𐨿.ss྄𑍬; ; xn--clb2593k.xn--ss-toj6092t; ; ; # ی𐨿.ss྄𑍬
+𝟠≮‌。󠅱឴; 8≮‌.឴; [C1, P1, V5, V6]; xn--8-sgn10i.xn--z3e; ; xn--8-ngo.xn--z3e; [P1, V5, V6] # 8≮.
+𝟠≮‌。󠅱឴; 8≮‌.឴; [C1, P1, V5, V6]; xn--8-sgn10i.xn--z3e; ; xn--8-ngo.xn--z3e; [P1, V5, V6] # 8≮.
+8≮‌。󠅱឴; 8≮‌.឴; [C1, P1, V5, V6]; xn--8-sgn10i.xn--z3e; ; xn--8-ngo.xn--z3e; [P1, V5, V6] # 8≮.
+8≮‌。󠅱឴; 8≮‌.឴; [C1, P1, V5, V6]; xn--8-sgn10i.xn--z3e; ; xn--8-ngo.xn--z3e; [P1, V5, V6] # 8≮.
+xn--8-ngo.xn--z3e; 8≮.឴; [V5, V6]; xn--8-ngo.xn--z3e; ; ; # 8≮.
+xn--8-sgn10i.xn--z3e; 8≮‌.឴; [C1, V5, V6]; xn--8-sgn10i.xn--z3e; ; ; # 8≮.
+ᢕ≯︒񄂯.Ⴀ; ᢕ≯︒񄂯.Ⴀ; [P1, V6]; xn--fbf851cq98poxw1a.xn--7md; ; ; # ᢕ≯︒.Ⴀ
+ᢕ≯︒񄂯.Ⴀ; ᢕ≯︒񄂯.Ⴀ; [P1, V6]; xn--fbf851cq98poxw1a.xn--7md; ; ; # ᢕ≯︒.Ⴀ
+ᢕ≯。񄂯.Ⴀ; ᢕ≯.񄂯.Ⴀ; [P1, V6]; xn--fbf851c.xn--ko1u.xn--7md; ; ; # ᢕ≯..Ⴀ
+ᢕ≯。񄂯.Ⴀ; ᢕ≯.񄂯.Ⴀ; [P1, V6]; xn--fbf851c.xn--ko1u.xn--7md; ; ; # ᢕ≯..Ⴀ
+ᢕ≯。񄂯.ⴀ; ᢕ≯.񄂯.ⴀ; [P1, V6]; xn--fbf851c.xn--ko1u.xn--rkj; ; ; # ᢕ≯..ⴀ
+ᢕ≯。񄂯.ⴀ; ᢕ≯.񄂯.ⴀ; [P1, V6]; xn--fbf851c.xn--ko1u.xn--rkj; ; ; # ᢕ≯..ⴀ
+xn--fbf851c.xn--ko1u.xn--rkj; ᢕ≯.񄂯.ⴀ; [V6]; xn--fbf851c.xn--ko1u.xn--rkj; ; ; # ᢕ≯..ⴀ
+xn--fbf851c.xn--ko1u.xn--7md; ᢕ≯.񄂯.Ⴀ; [V6]; xn--fbf851c.xn--ko1u.xn--7md; ; ; # ᢕ≯..Ⴀ
+ᢕ≯︒񄂯.ⴀ; ᢕ≯︒񄂯.ⴀ; [P1, V6]; xn--fbf851cq98poxw1a.xn--rkj; ; ; # ᢕ≯︒.ⴀ
+ᢕ≯︒񄂯.ⴀ; ᢕ≯︒񄂯.ⴀ; [P1, V6]; xn--fbf851cq98poxw1a.xn--rkj; ; ; # ᢕ≯︒.ⴀ
+xn--fbf851cq98poxw1a.xn--rkj; ᢕ≯︒񄂯.ⴀ; [V6]; xn--fbf851cq98poxw1a.xn--rkj; ; ; # ᢕ≯︒.ⴀ
+xn--fbf851cq98poxw1a.xn--7md; ᢕ≯︒񄂯.Ⴀ; [V6]; xn--fbf851cq98poxw1a.xn--7md; ; ; # ᢕ≯︒.Ⴀ
+ྟ.-ࠪ; ྟ.-ࠪ; [V3, V5]; xn--vfd.xn----fhd; ; ; # ྟ.-ࠪ
+ྟ.-ࠪ; ; [V3, V5]; xn--vfd.xn----fhd; ; ; # ྟ.-ࠪ
+xn--vfd.xn----fhd; ྟ.-ࠪ; [V3, V5]; xn--vfd.xn----fhd; ; ; # ྟ.-ࠪ
+ᵬ󠆠.핒⒒⒈􈄦; ᵬ.핒⒒⒈􈄦; [P1, V6]; xn--tbg.xn--tsht7586kyts9l; ; ; # ᵬ.핒⒒⒈
+ᵬ󠆠.핒⒒⒈􈄦; ᵬ.핒⒒⒈􈄦; [P1, V6]; xn--tbg.xn--tsht7586kyts9l; ; ; # ᵬ.핒⒒⒈
+ᵬ󠆠.핒11.1.􈄦; ᵬ.핒11.1.􈄦; [P1, V6]; xn--tbg.xn--11-5o7k.1.xn--k469f; ; ; # ᵬ.핒11.1.
+ᵬ󠆠.핒11.1.􈄦; ᵬ.핒11.1.􈄦; [P1, V6]; xn--tbg.xn--11-5o7k.1.xn--k469f; ; ; # ᵬ.핒11.1.
+xn--tbg.xn--11-5o7k.1.xn--k469f; ᵬ.핒11.1.􈄦; [V6]; xn--tbg.xn--11-5o7k.1.xn--k469f; ; ; # ᵬ.핒11.1.
+xn--tbg.xn--tsht7586kyts9l; ᵬ.핒⒒⒈􈄦; [V6]; xn--tbg.xn--tsht7586kyts9l; ; ; # ᵬ.핒⒒⒈
+ς𑓂𐋢.٨; ς𑓂𐋢.٨; [B1]; xn--3xa8371khhl.xn--hib; ; xn--4xa6371khhl.xn--hib; # ς𑓂𐋢.٨
+ς𑓂𐋢.٨; ; [B1]; xn--3xa8371khhl.xn--hib; ; xn--4xa6371khhl.xn--hib; # ς𑓂𐋢.٨
+Σ𑓂𐋢.٨; σ𑓂𐋢.٨; [B1]; xn--4xa6371khhl.xn--hib; ; ; # σ𑓂𐋢.٨
+σ𑓂𐋢.٨; ; [B1]; xn--4xa6371khhl.xn--hib; ; ; # σ𑓂𐋢.٨
+xn--4xa6371khhl.xn--hib; σ𑓂𐋢.٨; [B1]; xn--4xa6371khhl.xn--hib; ; ; # σ𑓂𐋢.٨
+xn--3xa8371khhl.xn--hib; ς𑓂𐋢.٨; [B1]; xn--3xa8371khhl.xn--hib; ; ; # ς𑓂𐋢.٨
+Σ𑓂𐋢.٨; σ𑓂𐋢.٨; [B1]; xn--4xa6371khhl.xn--hib; ; ; # σ𑓂𐋢.٨
+σ𑓂𐋢.٨; σ𑓂𐋢.٨; [B1]; xn--4xa6371khhl.xn--hib; ; ; # σ𑓂𐋢.٨
+꥓‌𐋻‍.ⷸ𞿄𐹲; ; [B1, B6, C2, P1, V5, V6]; xn--0ugc8356he76c.xn--urju692efj0f; ; xn--3j9a531o.xn--urju692efj0f; [B1, P1, V5, V6] # ꥓𐋻.ⷸ𐹲
+xn--3j9a531o.xn--urju692efj0f; ꥓𐋻.ⷸ𞿄𐹲; [B1, V5, V6]; xn--3j9a531o.xn--urju692efj0f; ; ; # ꥓𐋻.ⷸ𐹲
+xn--0ugc8356he76c.xn--urju692efj0f; ꥓‌𐋻‍.ⷸ𞿄𐹲; [B1, B6, C2, V5, V6]; xn--0ugc8356he76c.xn--urju692efj0f; ; ; # ꥓𐋻.ⷸ𐹲
+⊼。񪧖ڕ; ⊼.񪧖ڕ; [B1, B5, B6, P1, V6]; xn--ofh.xn--rjb13118f; ; ; # ⊼.ڕ
+xn--ofh.xn--rjb13118f; ⊼.񪧖ڕ; [B1, B5, B6, V6]; xn--ofh.xn--rjb13118f; ; ; # ⊼.ڕ
+𐯬񖋔。󜳥; 𐯬񖋔.󜳥; [B2, B3, P1, V6]; xn--949co370q.xn--7g25e; ; ; # .
+xn--949co370q.xn--7g25e; 𐯬񖋔.󜳥; [B2, B3, V6]; xn--949co370q.xn--7g25e; ; ; # .
+؁𑍧ߝ。ς򬍘🀞឵; ؁𑍧ߝ.ς򬍘🀞឵; [B1, B6, P1, V6]; xn--jfb66gt010c.xn--3xa823h9p95ars26d; ; xn--jfb66gt010c.xn--4xa623h9p95ars26d; # 𑍧ߝ.ς🀞
+؁𑍧ߝ。Σ򬍘🀞឵; ؁𑍧ߝ.σ򬍘🀞឵; [B1, B6, P1, V6]; xn--jfb66gt010c.xn--4xa623h9p95ars26d; ; ; # 𑍧ߝ.σ🀞
+؁𑍧ߝ。σ򬍘🀞឵; ؁𑍧ߝ.σ򬍘🀞឵; [B1, B6, P1, V6]; xn--jfb66gt010c.xn--4xa623h9p95ars26d; ; ; # 𑍧ߝ.σ🀞
+xn--jfb66gt010c.xn--4xa623h9p95ars26d; ؁𑍧ߝ.σ򬍘🀞឵; [B1, B6, V6]; xn--jfb66gt010c.xn--4xa623h9p95ars26d; ; ; # 𑍧ߝ.σ🀞
+xn--jfb66gt010c.xn--3xa823h9p95ars26d; ؁𑍧ߝ.ς򬍘🀞឵; [B1, B6, V6]; xn--jfb66gt010c.xn--3xa823h9p95ars26d; ; ; # 𑍧ߝ.ς🀞
+-𐳲ن󠺐。꯭𝟥; -𐳲ن󠺐.꯭3; [B1, P1, V3, V5, V6]; xn----roc5482rek10i.xn--3-zw5e; ; ; # -𐳲ن.꯭3
+-𐳲ن󠺐。꯭3; -𐳲ن󠺐.꯭3; [B1, P1, V3, V5, V6]; xn----roc5482rek10i.xn--3-zw5e; ; ; # -𐳲ن.꯭3
+-𐲲ن󠺐。꯭3; -𐳲ن󠺐.꯭3; [B1, P1, V3, V5, V6]; xn----roc5482rek10i.xn--3-zw5e; ; ; # -𐳲ن.꯭3
+xn----roc5482rek10i.xn--3-zw5e; -𐳲ن󠺐.꯭3; [B1, V3, V5, V6]; xn----roc5482rek10i.xn--3-zw5e; ; ; # -𐳲ن.꯭3
+-𐲲ن󠺐。꯭𝟥; -𐳲ن󠺐.꯭3; [B1, P1, V3, V5, V6]; xn----roc5482rek10i.xn--3-zw5e; ; ; # -𐳲ن.꯭3
+‌󠴦。񲨕≮𐦜; ‌󠴦.񲨕≮𐦜; [B1, B5, B6, C1, P1, V6]; xn--0ug22251l.xn--gdhz712gzlr6b; ; xn--6v56e.xn--gdhz712gzlr6b; [B1, B5, B6, P1, V6] # .≮𐦜
+‌󠴦。񲨕≮𐦜; ‌󠴦.񲨕≮𐦜; [B1, B5, B6, C1, P1, V6]; xn--0ug22251l.xn--gdhz712gzlr6b; ; xn--6v56e.xn--gdhz712gzlr6b; [B1, B5, B6, P1, V6] # .≮𐦜
+‌󠴦。񲨕≮𐦜; ‌󠴦.񲨕≮𐦜; [B1, B5, B6, C1, P1, V6]; xn--0ug22251l.xn--gdhz712gzlr6b; ; xn--6v56e.xn--gdhz712gzlr6b; [B1, B5, B6, P1, V6] # .≮𐦜
+‌󠴦。񲨕≮𐦜; ‌󠴦.񲨕≮𐦜; [B1, B5, B6, C1, P1, V6]; xn--0ug22251l.xn--gdhz712gzlr6b; ; xn--6v56e.xn--gdhz712gzlr6b; [B1, B5, B6, P1, V6] # .≮𐦜
+xn--6v56e.xn--gdhz712gzlr6b; 󠴦.񲨕≮𐦜; [B1, B5, B6, V6]; xn--6v56e.xn--gdhz712gzlr6b; ; ; # .≮𐦜
+xn--0ug22251l.xn--gdhz712gzlr6b; ‌󠴦.񲨕≮𐦜; [B1, B5, B6, C1, V6]; xn--0ug22251l.xn--gdhz712gzlr6b; ; ; # .≮𐦜
+⒈✌򟬟.𝟡񠱣; ⒈✌򟬟.9񠱣; [P1, V6]; xn--tsh24g49550b.xn--9-o706d; ; ; # ⒈✌.9
+1.✌򟬟.9񠱣; ; [P1, V6]; 1.xn--7bi44996f.xn--9-o706d; ; ; # 1.✌.9
+1.xn--7bi44996f.xn--9-o706d; 1.✌򟬟.9񠱣; [V6]; 1.xn--7bi44996f.xn--9-o706d; ; ; # 1.✌.9
+xn--tsh24g49550b.xn--9-o706d; ⒈✌򟬟.9񠱣; [V6]; xn--tsh24g49550b.xn--9-o706d; ; ; # ⒈✌.9
+𑆾𞤬𐮆.٦ᷔ; ; [B1, V5]; xn--d29c79hf98r.xn--fib011j; ; ; # 𑆾𞤬𐮆.٦ᷔ
+𑆾𞤊𐮆.٦ᷔ; 𑆾𞤬𐮆.٦ᷔ; [B1, V5]; xn--d29c79hf98r.xn--fib011j; ; ; # 𑆾𞤬𐮆.٦ᷔ
+xn--d29c79hf98r.xn--fib011j; 𑆾𞤬𐮆.٦ᷔ; [B1, V5]; xn--d29c79hf98r.xn--fib011j; ; ; # 𑆾𞤬𐮆.٦ᷔ
+ς.꧀꣄; ς.꧀꣄; [V5]; xn--3xa.xn--0f9ars; ; xn--4xa.xn--0f9ars; # ς.꧀꣄
+ς.꧀꣄; ; [V5]; xn--3xa.xn--0f9ars; ; xn--4xa.xn--0f9ars; # ς.꧀꣄
+Σ.꧀꣄; σ.꧀꣄; [V5]; xn--4xa.xn--0f9ars; ; ; # σ.꧀꣄
+σ.꧀꣄; ; [V5]; xn--4xa.xn--0f9ars; ; ; # σ.꧀꣄
+xn--4xa.xn--0f9ars; σ.꧀꣄; [V5]; xn--4xa.xn--0f9ars; ; ; # σ.꧀꣄
+xn--3xa.xn--0f9ars; ς.꧀꣄; [V5]; xn--3xa.xn--0f9ars; ; ; # ς.꧀꣄
+Σ.꧀꣄; σ.꧀꣄; [V5]; xn--4xa.xn--0f9ars; ; ; # σ.꧀꣄
+σ.꧀꣄; σ.꧀꣄; [V5]; xn--4xa.xn--0f9ars; ; ; # σ.꧀꣄
+𑰶‌≯𐳐.࡛; 𑰶‌≯𐳐.࡛; [B1, B3, B6, C1, P1, V5, V6]; xn--0ug06g7697ap4ma.xn--qwb; ; xn--hdhz343g3wj.xn--qwb; [B1, B3, B6, P1, V5, V6] # 𑰶≯𐳐.࡛
+𑰶‌≯𐳐.࡛; 𑰶‌≯𐳐.࡛; [B1, B3, B6, C1, P1, V5, V6]; xn--0ug06g7697ap4ma.xn--qwb; ; xn--hdhz343g3wj.xn--qwb; [B1, B3, B6, P1, V5, V6] # 𑰶≯𐳐.࡛
+𑰶‌≯𐳐.࡛; ; [B1, B3, B6, C1, P1, V5, V6]; xn--0ug06g7697ap4ma.xn--qwb; ; xn--hdhz343g3wj.xn--qwb; [B1, B3, B6, P1, V5, V6] # 𑰶≯𐳐.࡛
+𑰶‌≯𐳐.࡛; 𑰶‌≯𐳐.࡛; [B1, B3, B6, C1, P1, V5, V6]; xn--0ug06g7697ap4ma.xn--qwb; ; xn--hdhz343g3wj.xn--qwb; [B1, B3, B6, P1, V5, V6] # 𑰶≯𐳐.࡛
+𑰶‌≯𐲐.࡛; 𑰶‌≯𐳐.࡛; [B1, B3, B6, C1, P1, V5, V6]; xn--0ug06g7697ap4ma.xn--qwb; ; xn--hdhz343g3wj.xn--qwb; [B1, B3, B6, P1, V5, V6] # 𑰶≯𐳐.࡛
+𑰶‌≯𐲐.࡛; 𑰶‌≯𐳐.࡛; [B1, B3, B6, C1, P1, V5, V6]; xn--0ug06g7697ap4ma.xn--qwb; ; xn--hdhz343g3wj.xn--qwb; [B1, B3, B6, P1, V5, V6] # 𑰶≯𐳐.࡛
+xn--hdhz343g3wj.xn--qwb; 𑰶≯𐳐.࡛; [B1, B3, B6, V5, V6]; xn--hdhz343g3wj.xn--qwb; ; ; # 𑰶≯𐳐.࡛
+xn--0ug06g7697ap4ma.xn--qwb; 𑰶‌≯𐳐.࡛; [B1, B3, B6, C1, V5, V6]; xn--0ug06g7697ap4ma.xn--qwb; ; ; # 𑰶≯𐳐.࡛
+𑰶‌≯𐲐.࡛; 𑰶‌≯𐳐.࡛; [B1, B3, B6, C1, P1, V5, V6]; xn--0ug06g7697ap4ma.xn--qwb; ; xn--hdhz343g3wj.xn--qwb; [B1, B3, B6, P1, V5, V6] # 𑰶≯𐳐.࡛
+𑰶‌≯𐲐.࡛; 𑰶‌≯𐳐.࡛; [B1, B3, B6, C1, P1, V5, V6]; xn--0ug06g7697ap4ma.xn--qwb; ; xn--hdhz343g3wj.xn--qwb; [B1, B3, B6, P1, V5, V6] # 𑰶≯𐳐.࡛
+羚。≯; 羚.≯; [P1, V6]; xn--xt0a.xn--hdh; ; ; # 羚.≯
+羚。≯; 羚.≯; [P1, V6]; xn--xt0a.xn--hdh; ; ; # 羚.≯
+羚。≯; 羚.≯; [P1, V6]; xn--xt0a.xn--hdh; ; ; # 羚.≯
+羚。≯; 羚.≯; [P1, V6]; xn--xt0a.xn--hdh; ; ; # 羚.≯
+xn--xt0a.xn--hdh; 羚.≯; [V6]; xn--xt0a.xn--hdh; ; ; # 羚.≯
+𑓂᝙.ࢨ; 𑓂᝙.ࢨ; [B1, P1, V5, V6]; xn--e1e9580k.xn--xyb; ; ; # 𑓂.ࢨ
+𑓂᝙.ࢨ; ; [B1, P1, V5, V6]; xn--e1e9580k.xn--xyb; ; ; # 𑓂.ࢨ
+xn--e1e9580k.xn--xyb; 𑓂᝙.ࢨ; [B1, V5, V6]; xn--e1e9580k.xn--xyb; ; ; # 𑓂.ࢨ
+󨣿󠇀‍。٣ҠჀ𝟑; 󨣿‍.٣ҡჀ3; [B1, B6, C2, P1, V6]; xn--1ug89936l.xn--3-ozb36kixu; ; xn--1r19e.xn--3-ozb36kixu; [B1, P1, V6] # .٣ҡჀ3
+󨣿󠇀‍。٣ҠჀ3; 󨣿‍.٣ҡჀ3; [B1, B6, C2, P1, V6]; xn--1ug89936l.xn--3-ozb36kixu; ; xn--1r19e.xn--3-ozb36kixu; [B1, P1, V6] # .٣ҡჀ3
+󨣿󠇀‍。٣ҡⴠ3; 󨣿‍.٣ҡⴠ3; [B1, B6, C2, P1, V6]; xn--1ug89936l.xn--3-ozb36ko13f; ; xn--1r19e.xn--3-ozb36ko13f; [B1, P1, V6] # .٣ҡⴠ3
+xn--1r19e.xn--3-ozb36ko13f; 󨣿.٣ҡⴠ3; [B1, V6]; xn--1r19e.xn--3-ozb36ko13f; ; ; # .٣ҡⴠ3
+xn--1ug89936l.xn--3-ozb36ko13f; 󨣿‍.٣ҡⴠ3; [B1, B6, C2, V6]; xn--1ug89936l.xn--3-ozb36ko13f; ; ; # .٣ҡⴠ3
+xn--1r19e.xn--3-ozb36kixu; 󨣿.٣ҡჀ3; [B1, V6]; xn--1r19e.xn--3-ozb36kixu; ; ; # .٣ҡჀ3
+xn--1ug89936l.xn--3-ozb36kixu; 󨣿‍.٣ҡჀ3; [B1, B6, C2, V6]; xn--1ug89936l.xn--3-ozb36kixu; ; ; # .٣ҡჀ3
+󨣿󠇀‍。٣ҡⴠ𝟑; 󨣿‍.٣ҡⴠ3; [B1, B6, C2, P1, V6]; xn--1ug89936l.xn--3-ozb36ko13f; ; xn--1r19e.xn--3-ozb36ko13f; [B1, P1, V6] # .٣ҡⴠ3
+󨣿󠇀‍。٣Ҡⴠ3; 󨣿‍.٣ҡⴠ3; [B1, B6, C2, P1, V6]; xn--1ug89936l.xn--3-ozb36ko13f; ; xn--1r19e.xn--3-ozb36ko13f; [B1, P1, V6] # .٣ҡⴠ3
+󨣿󠇀‍。٣Ҡⴠ𝟑; 󨣿‍.٣ҡⴠ3; [B1, B6, C2, P1, V6]; xn--1ug89936l.xn--3-ozb36ko13f; ; xn--1r19e.xn--3-ozb36ko13f; [B1, P1, V6] # .٣ҡⴠ3
+ᡷ。𐹢࣠; ᡷ.𐹢࣠; [B1]; xn--k9e.xn--j0b5005k; ; ; # ᡷ.𐹢࣠
+xn--k9e.xn--j0b5005k; ᡷ.𐹢࣠; [B1]; xn--k9e.xn--j0b5005k; ; ; # ᡷ.𐹢࣠
+򕮇᯳。٦񗜼្ß; 򕮇᯳.٦񗜼្ß; [B1, P1, V6]; xn--1zf58212h.xn--zca34zk4qx711k; ; xn--1zf58212h.xn--ss-pyd459o3258m; # ᯳.٦្ß
+򕮇᯳。٦񗜼្ß; 򕮇᯳.٦񗜼្ß; [B1, P1, V6]; xn--1zf58212h.xn--zca34zk4qx711k; ; xn--1zf58212h.xn--ss-pyd459o3258m; # ᯳.٦្ß
+򕮇᯳。٦񗜼្SS; 򕮇᯳.٦񗜼្ss; [B1, P1, V6]; xn--1zf58212h.xn--ss-pyd459o3258m; ; ; # ᯳.٦្ss
+򕮇᯳。٦񗜼្ss; 򕮇᯳.٦񗜼្ss; [B1, P1, V6]; xn--1zf58212h.xn--ss-pyd459o3258m; ; ; # ᯳.٦្ss
+򕮇᯳。٦񗜼្Ss; 򕮇᯳.٦񗜼្ss; [B1, P1, V6]; xn--1zf58212h.xn--ss-pyd459o3258m; ; ; # ᯳.٦្ss
+xn--1zf58212h.xn--ss-pyd459o3258m; 򕮇᯳.٦񗜼្ss; [B1, V6]; xn--1zf58212h.xn--ss-pyd459o3258m; ; ; # ᯳.٦្ss
+xn--1zf58212h.xn--zca34zk4qx711k; 򕮇᯳.٦񗜼្ß; [B1, V6]; xn--1zf58212h.xn--zca34zk4qx711k; ; ; # ᯳.٦្ß
+򕮇᯳。٦񗜼្SS; 򕮇᯳.٦񗜼្ss; [B1, P1, V6]; xn--1zf58212h.xn--ss-pyd459o3258m; ; ; # ᯳.٦្ss
+򕮇᯳。٦񗜼្ss; 򕮇᯳.٦񗜼្ss; [B1, P1, V6]; xn--1zf58212h.xn--ss-pyd459o3258m; ; ; # ᯳.٦្ss
+򕮇᯳。٦񗜼្Ss; 򕮇᯳.٦񗜼្ss; [B1, P1, V6]; xn--1zf58212h.xn--ss-pyd459o3258m; ; ; # ᯳.٦្ss
+٤򤽎𑲛.󠔢︒≠; ; [B1, P1, V6]; xn--dib0653l2i02d.xn--1ch7467f14u4g; ; ; # ٤𑲛.︒≠
+٤򤽎𑲛.󠔢︒≠; ٤򤽎𑲛.󠔢︒≠; [B1, P1, V6]; xn--dib0653l2i02d.xn--1ch7467f14u4g; ; ; # ٤𑲛.︒≠
+٤򤽎𑲛.󠔢。≠; ٤򤽎𑲛.󠔢.≠; [B1, P1, V6]; xn--dib0653l2i02d.xn--k736e.xn--1ch; ; ; # ٤𑲛..≠
+٤򤽎𑲛.󠔢。≠; ٤򤽎𑲛.󠔢.≠; [B1, P1, V6]; xn--dib0653l2i02d.xn--k736e.xn--1ch; ; ; # ٤𑲛..≠
+xn--dib0653l2i02d.xn--k736e.xn--1ch; ٤򤽎𑲛.󠔢.≠; [B1, V6]; xn--dib0653l2i02d.xn--k736e.xn--1ch; ; ; # ٤𑲛..≠
+xn--dib0653l2i02d.xn--1ch7467f14u4g; ٤򤽎𑲛.󠔢︒≠; [B1, V6]; xn--dib0653l2i02d.xn--1ch7467f14u4g; ; ; # ٤𑲛.︒≠
+➆񷧕ỗ⒈.򑬒񡘮࡛𝟫; ➆񷧕ỗ⒈.򑬒񡘮࡛9; [P1, V6]; xn--6lg26tvvc6v99z.xn--9-6jd87310jtcqs; ; ; # ➆ỗ⒈.࡛9
+➆񷧕ỗ⒈.򑬒񡘮࡛𝟫; ➆񷧕ỗ⒈.򑬒񡘮࡛9; [P1, V6]; xn--6lg26tvvc6v99z.xn--9-6jd87310jtcqs; ; ; # ➆ỗ⒈.࡛9
+➆񷧕ỗ1..򑬒񡘮࡛9; ; [P1, V6, X4_2]; xn--1-3xm292b6044r..xn--9-6jd87310jtcqs; [P1, V6, A4_2]; ; # ➆ỗ1..࡛9
+➆񷧕ỗ1..򑬒񡘮࡛9; ➆񷧕ỗ1..򑬒񡘮࡛9; [P1, V6, X4_2]; xn--1-3xm292b6044r..xn--9-6jd87310jtcqs; [P1, V6, A4_2]; ; # ➆ỗ1..࡛9
+➆񷧕Ỗ1..򑬒񡘮࡛9; ➆񷧕ỗ1..򑬒񡘮࡛9; [P1, V6, X4_2]; xn--1-3xm292b6044r..xn--9-6jd87310jtcqs; [P1, V6, A4_2]; ; # ➆ỗ1..࡛9
+➆񷧕Ỗ1..򑬒񡘮࡛9; ➆񷧕ỗ1..򑬒񡘮࡛9; [P1, V6, X4_2]; xn--1-3xm292b6044r..xn--9-6jd87310jtcqs; [P1, V6, A4_2]; ; # ➆ỗ1..࡛9
+xn--1-3xm292b6044r..xn--9-6jd87310jtcqs; ➆񷧕ỗ1..򑬒񡘮࡛9; [V6, X4_2]; xn--1-3xm292b6044r..xn--9-6jd87310jtcqs; [V6, A4_2]; ; # ➆ỗ1..࡛9
+➆񷧕Ỗ⒈.򑬒񡘮࡛𝟫; ➆񷧕ỗ⒈.򑬒񡘮࡛9; [P1, V6]; xn--6lg26tvvc6v99z.xn--9-6jd87310jtcqs; ; ; # ➆ỗ⒈.࡛9
+➆񷧕Ỗ⒈.򑬒񡘮࡛𝟫; ➆񷧕ỗ⒈.򑬒񡘮࡛9; [P1, V6]; xn--6lg26tvvc6v99z.xn--9-6jd87310jtcqs; ; ; # ➆ỗ⒈.࡛9
+xn--6lg26tvvc6v99z.xn--9-6jd87310jtcqs; ➆񷧕ỗ⒈.򑬒񡘮࡛9; [V6]; xn--6lg26tvvc6v99z.xn--9-6jd87310jtcqs; ; ; # ➆ỗ⒈.࡛9
+‍。𞤘; ‍.𞤺; [B1, C2]; xn--1ug.xn--ye6h; ; .xn--ye6h; [A4_2] # .𞤺
+‍。𞤘; ‍.𞤺; [B1, C2]; xn--1ug.xn--ye6h; ; .xn--ye6h; [A4_2] # .𞤺
+‍。𞤺; ‍.𞤺; [B1, C2]; xn--1ug.xn--ye6h; ; .xn--ye6h; [A4_2] # .𞤺
+.xn--ye6h; .𞤺; [X4_2]; .xn--ye6h; [A4_2]; ; # .𞤺
+xn--1ug.xn--ye6h; ‍.𞤺; [B1, C2]; xn--1ug.xn--ye6h; ; ; # .𞤺
+‍。𞤺; ‍.𞤺; [B1, C2]; xn--1ug.xn--ye6h; ; .xn--ye6h; [A4_2] # .𞤺
+xn--ye6h; 𞤺; ; xn--ye6h; ; ; # 𞤺
+𞤺; ; ; xn--ye6h; ; ; # 𞤺
+𞤘; 𞤺; ; xn--ye6h; ; ; # 𞤺
+ࠩܤ.ᢣ; ; [B1, V5]; xn--unb53c.xn--tbf; ; ; # ࠩܤ.ᢣ
+xn--unb53c.xn--tbf; ࠩܤ.ᢣ; [B1, V5]; xn--unb53c.xn--tbf; ; ; # ࠩܤ.ᢣ
+ܼ‌-。𓐾ß; ܼ‌-.𓐾ß; [C1, P1, V3, V5, V6]; xn----s2c071q.xn--zca7848m; ; xn----s2c.xn--ss-066q; [P1, V3, V5, V6] # ܼ-.ß
+ܼ‌-。𓐾SS; ܼ‌-.𓐾ss; [C1, P1, V3, V5, V6]; xn----s2c071q.xn--ss-066q; ; xn----s2c.xn--ss-066q; [P1, V3, V5, V6] # ܼ-.ss
+ܼ‌-。𓐾ss; ܼ‌-.𓐾ss; [C1, P1, V3, V5, V6]; xn----s2c071q.xn--ss-066q; ; xn----s2c.xn--ss-066q; [P1, V3, V5, V6] # ܼ-.ss
+ܼ‌-。𓐾Ss; ܼ‌-.𓐾ss; [C1, P1, V3, V5, V6]; xn----s2c071q.xn--ss-066q; ; xn----s2c.xn--ss-066q; [P1, V3, V5, V6] # ܼ-.ss
+xn----s2c.xn--ss-066q; ܼ-.𓐾ss; [V3, V5, V6]; xn----s2c.xn--ss-066q; ; ; # ܼ-.ss
+xn----s2c071q.xn--ss-066q; ܼ‌-.𓐾ss; [C1, V3, V5, V6]; xn----s2c071q.xn--ss-066q; ; ; # ܼ-.ss
+xn----s2c071q.xn--zca7848m; ܼ‌-.𓐾ß; [C1, V3, V5, V6]; xn----s2c071q.xn--zca7848m; ; ; # ܼ-.ß
+‌ς🃡⒗.ೆ仧ݖ; ; [B1, B5, B6, C1, P1, V5, V6]; xn--3xa795lz9czy52d.xn--9ob79ycx2e; ; xn--4xa229nbu92a.xn--9ob79ycx2e; [B5, B6, P1, V5, V6] # ς🃡⒗.ೆ仧ݖ
+‌ς🃡16..ೆ仧ݖ; ; [B1, B5, B6, C1, V5, X4_2]; xn--16-rbc1800avy99b..xn--9ob79ycx2e; [B1, B5, B6, C1, V5, A4_2]; xn--16-ubc66061c..xn--9ob79ycx2e; [B5, B6, V5, A4_2] # ς🃡16..ೆ仧ݖ
+‌Σ🃡16..ೆ仧ݖ; ‌σ🃡16..ೆ仧ݖ; [B1, B5, B6, C1, V5, X4_2]; xn--16-ubc7700avy99b..xn--9ob79ycx2e; [B1, B5, B6, C1, V5, A4_2]; xn--16-ubc66061c..xn--9ob79ycx2e; [B5, B6, V5, A4_2] # σ🃡16..ೆ仧ݖ
+‌σ🃡16..ೆ仧ݖ; ; [B1, B5, B6, C1, V5, X4_2]; xn--16-ubc7700avy99b..xn--9ob79ycx2e; [B1, B5, B6, C1, V5, A4_2]; xn--16-ubc66061c..xn--9ob79ycx2e; [B5, B6, V5, A4_2] # σ🃡16..ೆ仧ݖ
+xn--16-ubc66061c..xn--9ob79ycx2e; σ🃡16..ೆ仧ݖ; [B5, B6, V5, X4_2]; xn--16-ubc66061c..xn--9ob79ycx2e; [B5, B6, V5, A4_2]; ; # σ🃡16..ೆ仧ݖ
+xn--16-ubc7700avy99b..xn--9ob79ycx2e; ‌σ🃡16..ೆ仧ݖ; [B1, B5, B6, C1, V5, X4_2]; xn--16-ubc7700avy99b..xn--9ob79ycx2e; [B1, B5, B6, C1, V5, A4_2]; ; # σ🃡16..ೆ仧ݖ
+xn--16-rbc1800avy99b..xn--9ob79ycx2e; ‌ς🃡16..ೆ仧ݖ; [B1, B5, B6, C1, V5, X4_2]; xn--16-rbc1800avy99b..xn--9ob79ycx2e; [B1, B5, B6, C1, V5, A4_2]; ; # ς🃡16..ೆ仧ݖ
+‌Σ🃡⒗.ೆ仧ݖ; ‌σ🃡⒗.ೆ仧ݖ; [B1, B5, B6, C1, P1, V5, V6]; xn--4xa595lz9czy52d.xn--9ob79ycx2e; ; xn--4xa229nbu92a.xn--9ob79ycx2e; [B5, B6, P1, V5, V6] # σ🃡⒗.ೆ仧ݖ
+‌σ🃡⒗.ೆ仧ݖ; ; [B1, B5, B6, C1, P1, V5, V6]; xn--4xa595lz9czy52d.xn--9ob79ycx2e; ; xn--4xa229nbu92a.xn--9ob79ycx2e; [B5, B6, P1, V5, V6] # σ🃡⒗.ೆ仧ݖ
+xn--4xa229nbu92a.xn--9ob79ycx2e; σ🃡⒗.ೆ仧ݖ; [B5, B6, V5, V6]; xn--4xa229nbu92a.xn--9ob79ycx2e; ; ; # σ🃡⒗.ೆ仧ݖ
+xn--4xa595lz9czy52d.xn--9ob79ycx2e; ‌σ🃡⒗.ೆ仧ݖ; [B1, B5, B6, C1, V5, V6]; xn--4xa595lz9czy52d.xn--9ob79ycx2e; ; ; # σ🃡⒗.ೆ仧ݖ
+xn--3xa795lz9czy52d.xn--9ob79ycx2e; ‌ς🃡⒗.ೆ仧ݖ; [B1, B5, B6, C1, V5, V6]; xn--3xa795lz9czy52d.xn--9ob79ycx2e; ; ; # ς🃡⒗.ೆ仧ݖ
+-.𞸚; -.ظ; [B1, V3]; -.xn--3gb; ; ; # -.ظ
+-.ظ; ; [B1, V3]; -.xn--3gb; ; ; # -.ظ
+-.xn--3gb; -.ظ; [B1, V3]; -.xn--3gb; ; ; # -.ظ
+򏛓ڃ.ཾش; ; [B1, B5, B6, P1, V5, V6]; xn--8ib92728i.xn--zgb968b; ; ; # ڃ.ཾش
+xn--8ib92728i.xn--zgb968b; 򏛓ڃ.ཾش; [B1, B5, B6, V5, V6]; xn--8ib92728i.xn--zgb968b; ; ; # ڃ.ཾش
+࿦ࡃ񽶬.𐮏; ; [B5, P1, V6]; xn--1vb320b5m04p.xn--m29c; ; ; # ࡃ.𐮏
+xn--1vb320b5m04p.xn--m29c; ࿦ࡃ񽶬.𐮏; [B5, V6]; xn--1vb320b5m04p.xn--m29c; ; ; # ࡃ.𐮏
+2񎨠ߋß。ᠽ; 2񎨠ߋß.ᠽ; [B1, P1, V6]; xn--2-qfa924cez02l.xn--w7e; ; xn--2ss-odg83511n.xn--w7e; # 2ߋß.ᠽ
+2񎨠ߋSS。ᠽ; 2񎨠ߋss.ᠽ; [B1, P1, V6]; xn--2ss-odg83511n.xn--w7e; ; ; # 2ߋss.ᠽ
+2񎨠ߋss。ᠽ; 2񎨠ߋss.ᠽ; [B1, P1, V6]; xn--2ss-odg83511n.xn--w7e; ; ; # 2ߋss.ᠽ
+xn--2ss-odg83511n.xn--w7e; 2񎨠ߋss.ᠽ; [B1, V6]; xn--2ss-odg83511n.xn--w7e; ; ; # 2ߋss.ᠽ
+xn--2-qfa924cez02l.xn--w7e; 2񎨠ߋß.ᠽ; [B1, V6]; xn--2-qfa924cez02l.xn--w7e; ; ; # 2ߋß.ᠽ
+2񎨠ߋSs。ᠽ; 2񎨠ߋss.ᠽ; [B1, P1, V6]; xn--2ss-odg83511n.xn--w7e; ; ; # 2ߋss.ᠽ
+㸳ߊ≮.ێß-‍; 㸳ߊ≮.ێß-‍; [B2, B3, B5, B6, C2, P1, V6]; xn--lsb457kkut.xn----pfa076bys4a; ; xn--lsb457kkut.xn--ss--qjf; [B2, B3, B5, B6, P1, V3, V6] # 㸳ߊ≮.ێß-
+㸳ߊ≮.ێß-‍; 㸳ߊ≮.ێß-‍; [B2, B3, B5, B6, C2, P1, V6]; xn--lsb457kkut.xn----pfa076bys4a; ; xn--lsb457kkut.xn--ss--qjf; [B2, B3, B5, B6, P1, V3, V6] # 㸳ߊ≮.ێß-
+㸳ߊ≮.ێß-‍; ; [B2, B3, B5, B6, C2, P1, V6]; xn--lsb457kkut.xn----pfa076bys4a; ; xn--lsb457kkut.xn--ss--qjf; [B2, B3, B5, B6, P1, V3, V6] # 㸳ߊ≮.ێß-
+㸳ߊ≮.ێß-‍; 㸳ߊ≮.ێß-‍; [B2, B3, B5, B6, C2, P1, V6]; xn--lsb457kkut.xn----pfa076bys4a; ; xn--lsb457kkut.xn--ss--qjf; [B2, B3, B5, B6, P1, V3, V6] # 㸳ߊ≮.ێß-
+㸳ߊ≮.ێSS-‍; 㸳ߊ≮.ێss-‍; [B2, B3, B5, B6, C2, P1, V6]; xn--lsb457kkut.xn--ss--qjf2343a; ; xn--lsb457kkut.xn--ss--qjf; [B2, B3, B5, B6, P1, V3, V6] # 㸳ߊ≮.ێss-
+㸳ߊ≮.ێSS-‍; 㸳ߊ≮.ێss-‍; [B2, B3, B5, B6, C2, P1, V6]; xn--lsb457kkut.xn--ss--qjf2343a; ; xn--lsb457kkut.xn--ss--qjf; [B2, B3, B5, B6, P1, V3, V6] # 㸳ߊ≮.ێss-
+㸳ߊ≮.ێss-‍; ; [B2, B3, B5, B6, C2, P1, V6]; xn--lsb457kkut.xn--ss--qjf2343a; ; xn--lsb457kkut.xn--ss--qjf; [B2, B3, B5, B6, P1, V3, V6] # 㸳ߊ≮.ێss-
+㸳ߊ≮.ێss-‍; 㸳ߊ≮.ێss-‍; [B2, B3, B5, B6, C2, P1, V6]; xn--lsb457kkut.xn--ss--qjf2343a; ; xn--lsb457kkut.xn--ss--qjf; [B2, B3, B5, B6, P1, V3, V6] # 㸳ߊ≮.ێss-
+xn--lsb457kkut.xn--ss--qjf; 㸳ߊ≮.ێss-; [B2, B3, B5, B6, V3, V6]; xn--lsb457kkut.xn--ss--qjf; ; ; # 㸳ߊ≮.ێss-
+xn--lsb457kkut.xn--ss--qjf2343a; 㸳ߊ≮.ێss-‍; [B2, B3, B5, B6, C2, V6]; xn--lsb457kkut.xn--ss--qjf2343a; ; ; # 㸳ߊ≮.ێss-
+xn--lsb457kkut.xn----pfa076bys4a; 㸳ߊ≮.ێß-‍; [B2, B3, B5, B6, C2, V6]; xn--lsb457kkut.xn----pfa076bys4a; ; ; # 㸳ߊ≮.ێß-
+㸳ߊ≮.ێSS-‍; 㸳ߊ≮.ێss-‍; [B2, B3, B5, B6, C2, P1, V6]; xn--lsb457kkut.xn--ss--qjf2343a; ; xn--lsb457kkut.xn--ss--qjf; [B2, B3, B5, B6, P1, V3, V6] # 㸳ߊ≮.ێss-
+㸳ߊ≮.ێSS-‍; 㸳ߊ≮.ێss-‍; [B2, B3, B5, B6, C2, P1, V6]; xn--lsb457kkut.xn--ss--qjf2343a; ; xn--lsb457kkut.xn--ss--qjf; [B2, B3, B5, B6, P1, V3, V6] # 㸳ߊ≮.ێss-
+㸳ߊ≮.ێss-‍; 㸳ߊ≮.ێss-‍; [B2, B3, B5, B6, C2, P1, V6]; xn--lsb457kkut.xn--ss--qjf2343a; ; xn--lsb457kkut.xn--ss--qjf; [B2, B3, B5, B6, P1, V3, V6] # 㸳ߊ≮.ێss-
+㸳ߊ≮.ێss-‍; 㸳ߊ≮.ێss-‍; [B2, B3, B5, B6, C2, P1, V6]; xn--lsb457kkut.xn--ss--qjf2343a; ; xn--lsb457kkut.xn--ss--qjf; [B2, B3, B5, B6, P1, V3, V6] # 㸳ߊ≮.ێss-
+㸳ߊ≮.ێSs-‍; 㸳ߊ≮.ێss-‍; [B2, B3, B5, B6, C2, P1, V6]; xn--lsb457kkut.xn--ss--qjf2343a; ; xn--lsb457kkut.xn--ss--qjf; [B2, B3, B5, B6, P1, V3, V6] # 㸳ߊ≮.ێss-
+㸳ߊ≮.ێSs-‍; 㸳ߊ≮.ێss-‍; [B2, B3, B5, B6, C2, P1, V6]; xn--lsb457kkut.xn--ss--qjf2343a; ; xn--lsb457kkut.xn--ss--qjf; [B2, B3, B5, B6, P1, V3, V6] # 㸳ߊ≮.ێss-
+㸳ߊ≮.ێSs-‍; 㸳ߊ≮.ێss-‍; [B2, B3, B5, B6, C2, P1, V6]; xn--lsb457kkut.xn--ss--qjf2343a; ; xn--lsb457kkut.xn--ss--qjf; [B2, B3, B5, B6, P1, V3, V6] # 㸳ߊ≮.ێss-
+㸳ߊ≮.ێSs-‍; 㸳ߊ≮.ێss-‍; [B2, B3, B5, B6, C2, P1, V6]; xn--lsb457kkut.xn--ss--qjf2343a; ; xn--lsb457kkut.xn--ss--qjf; [B2, B3, B5, B6, P1, V3, V6] # 㸳ߊ≮.ێss-
+-򷝬፞𑜧.ᷫ-︒; ; [P1, V3, V5, V6]; xn----b5h1837n2ok9f.xn----mkmw278h; ; ; # -፞𑜧.ᷫ-︒
+-򷝬፞𑜧.ᷫ-。; -򷝬፞𑜧.ᷫ-.; [P1, V3, V5, V6]; xn----b5h1837n2ok9f.xn----mkm.; ; ; # -፞𑜧.ᷫ-.
+xn----b5h1837n2ok9f.xn----mkm.; -򷝬፞𑜧.ᷫ-.; [V3, V5, V6]; xn----b5h1837n2ok9f.xn----mkm.; ; ; # -፞𑜧.ᷫ-.
+xn----b5h1837n2ok9f.xn----mkmw278h; -򷝬፞𑜧.ᷫ-︒; [V3, V5, V6]; xn----b5h1837n2ok9f.xn----mkmw278h; ; ; # -፞𑜧.ᷫ-︒
+︒.򚠡ᩙ; ; [P1, V6]; xn--y86c.xn--cof61594i; ; ; # ︒.ᩙ
+。.򚠡ᩙ; ..򚠡ᩙ; [P1, V6, X4_2]; ..xn--cof61594i; [P1, V6, A4_2]; ; # ..ᩙ
+..xn--cof61594i; ..򚠡ᩙ; [V6, X4_2]; ..xn--cof61594i; [V6, A4_2]; ; # ..ᩙ
+xn--y86c.xn--cof61594i; ︒.򚠡ᩙ; [V6]; xn--y86c.xn--cof61594i; ; ; # ︒.ᩙ
+̣ⷡ。‌⓾‌ڹ; ̣ⷡ.‌⓾‌ڹ; [B1, B3, B6, C1, V5]; xn--kta899s.xn--skb970ka771c; ; xn--kta899s.xn--skb116m; [B1, B3, B6, V5] # ̣ⷡ.⓾ڹ
+xn--kta899s.xn--skb116m; ̣ⷡ.⓾ڹ; [B1, B3, B6, V5]; xn--kta899s.xn--skb116m; ; ; # ̣ⷡ.⓾ڹ
+xn--kta899s.xn--skb970ka771c; ̣ⷡ.‌⓾‌ڹ; [B1, B3, B6, C1, V5]; xn--kta899s.xn--skb970ka771c; ; ; # ̣ⷡ.⓾ڹ
+𞠶ᠴ۝。ၴ𞤵󠅦; 𞠶ᠴ۝.ၴ𞤵; [B1, B2, P1, V5, V6]; xn--tlb199fwl35a.xn--yld4613v; ; ; # 𞠶ᠴ.ၴ𞤵
+𞠶ᠴ۝。ၴ𞤵󠅦; 𞠶ᠴ۝.ၴ𞤵; [B1, B2, P1, V5, V6]; xn--tlb199fwl35a.xn--yld4613v; ; ; # 𞠶ᠴ.ၴ𞤵
+𞠶ᠴ۝。ၴ𞤓󠅦; 𞠶ᠴ۝.ၴ𞤵; [B1, B2, P1, V5, V6]; xn--tlb199fwl35a.xn--yld4613v; ; ; # 𞠶ᠴ.ၴ𞤵
+xn--tlb199fwl35a.xn--yld4613v; 𞠶ᠴ۝.ၴ𞤵; [B1, B2, V5, V6]; xn--tlb199fwl35a.xn--yld4613v; ; ; # 𞠶ᠴ.ၴ𞤵
+𞠶ᠴ۝。ၴ𞤓󠅦; 𞠶ᠴ۝.ၴ𞤵; [B1, B2, P1, V5, V6]; xn--tlb199fwl35a.xn--yld4613v; ; ; # 𞠶ᠴ.ၴ𞤵
+𑰺.-򑟏; ; [P1, V3, V5, V6]; xn--jk3d.xn----iz68g; ; ; # 𑰺.-
+xn--jk3d.xn----iz68g; 𑰺.-򑟏; [V3, V5, V6]; xn--jk3d.xn----iz68g; ; ; # 𑰺.-
+󠻩.赏; 󠻩.赏; [P1, V6]; xn--2856e.xn--6o3a; ; ; # .赏
+󠻩.赏; ; [P1, V6]; xn--2856e.xn--6o3a; ; ; # .赏
+xn--2856e.xn--6o3a; 󠻩.赏; [V6]; xn--2856e.xn--6o3a; ; ; # .赏
+ڰᠡ。Ⴁ; ڰᠡ.Ⴁ; [B2, B3, P1, V6]; xn--jkb440g.xn--8md; ; ; # ڰᠡ.Ⴁ
+ڰᠡ。Ⴁ; ڰᠡ.Ⴁ; [B2, B3, P1, V6]; xn--jkb440g.xn--8md; ; ; # ڰᠡ.Ⴁ
+ڰᠡ。ⴁ; ڰᠡ.ⴁ; [B2, B3]; xn--jkb440g.xn--skj; ; ; # ڰᠡ.ⴁ
+xn--jkb440g.xn--skj; ڰᠡ.ⴁ; [B2, B3]; xn--jkb440g.xn--skj; ; ; # ڰᠡ.ⴁ
+xn--jkb440g.xn--8md; ڰᠡ.Ⴁ; [B2, B3, V6]; xn--jkb440g.xn--8md; ; ; # ڰᠡ.Ⴁ
+ڰᠡ。ⴁ; ڰᠡ.ⴁ; [B2, B3]; xn--jkb440g.xn--skj; ; ; # ڰᠡ.ⴁ
+⃞Ⴊڻς。-; ⃞Ⴊڻς.-; [B1, P1, V3, V5, V6]; xn--3xa53m7zmb0q.-; ; xn--4xa33m7zmb0q.-; # ⃞Ⴊڻς.-
+⃞Ⴊڻς。-; ⃞Ⴊڻς.-; [B1, P1, V3, V5, V6]; xn--3xa53m7zmb0q.-; ; xn--4xa33m7zmb0q.-; # ⃞Ⴊڻς.-
+⃞ⴊڻς。-; ⃞ⴊڻς.-; [B1, V3, V5]; xn--3xa53mr38aeel.-; ; xn--4xa33mr38aeel.-; # ⃞ⴊڻς.-
+⃞ႪڻΣ。-; ⃞Ⴊڻσ.-; [B1, P1, V3, V5, V6]; xn--4xa33m7zmb0q.-; ; ; # ⃞Ⴊڻσ.-
+⃞ⴊڻσ。-; ⃞ⴊڻσ.-; [B1, V3, V5]; xn--4xa33mr38aeel.-; ; ; # ⃞ⴊڻσ.-
+⃞Ⴊڻσ。-; ⃞Ⴊڻσ.-; [B1, P1, V3, V5, V6]; xn--4xa33m7zmb0q.-; ; ; # ⃞Ⴊڻσ.-
+xn--4xa33m7zmb0q.-; ⃞Ⴊڻσ.-; [B1, V3, V5, V6]; xn--4xa33m7zmb0q.-; ; ; # ⃞Ⴊڻσ.-
+xn--4xa33mr38aeel.-; ⃞ⴊڻσ.-; [B1, V3, V5]; xn--4xa33mr38aeel.-; ; ; # ⃞ⴊڻσ.-
+xn--3xa53mr38aeel.-; ⃞ⴊڻς.-; [B1, V3, V5]; xn--3xa53mr38aeel.-; ; ; # ⃞ⴊڻς.-
+xn--3xa53m7zmb0q.-; ⃞Ⴊڻς.-; [B1, V3, V5, V6]; xn--3xa53m7zmb0q.-; ; ; # ⃞Ⴊڻς.-
+⃞ⴊڻς。-; ⃞ⴊڻς.-; [B1, V3, V5]; xn--3xa53mr38aeel.-; ; xn--4xa33mr38aeel.-; # ⃞ⴊڻς.-
+⃞ႪڻΣ。-; ⃞Ⴊڻσ.-; [B1, P1, V3, V5, V6]; xn--4xa33m7zmb0q.-; ; ; # ⃞Ⴊڻσ.-
+⃞ⴊڻσ。-; ⃞ⴊڻσ.-; [B1, V3, V5]; xn--4xa33mr38aeel.-; ; ; # ⃞ⴊڻσ.-
+⃞Ⴊڻσ。-; ⃞Ⴊڻσ.-; [B1, P1, V3, V5, V6]; xn--4xa33m7zmb0q.-; ; ; # ⃞Ⴊڻσ.-
+Ⴍ.񍇦‌; Ⴍ.񍇦‌; [C1, P1, V6]; xn--lnd.xn--0ug56448b; ; xn--lnd.xn--p01x; [P1, V6] # Ⴍ.
+Ⴍ.񍇦‌; ; [C1, P1, V6]; xn--lnd.xn--0ug56448b; ; xn--lnd.xn--p01x; [P1, V6] # Ⴍ.
+ⴍ.񍇦‌; ; [C1, P1, V6]; xn--4kj.xn--0ug56448b; ; xn--4kj.xn--p01x; [P1, V6] # ⴍ.
+xn--4kj.xn--p01x; ⴍ.񍇦; [V6]; xn--4kj.xn--p01x; ; ; # ⴍ.
+xn--4kj.xn--0ug56448b; ⴍ.񍇦‌; [C1, V6]; xn--4kj.xn--0ug56448b; ; ; # ⴍ.
+xn--lnd.xn--p01x; Ⴍ.񍇦; [V6]; xn--lnd.xn--p01x; ; ; # Ⴍ.
+xn--lnd.xn--0ug56448b; Ⴍ.񍇦‌; [C1, V6]; xn--lnd.xn--0ug56448b; ; ; # Ⴍ.
+ⴍ.񍇦‌; ⴍ.񍇦‌; [C1, P1, V6]; xn--4kj.xn--0ug56448b; ; xn--4kj.xn--p01x; [P1, V6] # ⴍ.
+򉟂󠵣.𐫫᩠󴺖᭄; ; [B2, B3, B6, P1, V6]; xn--9u37blu98h.xn--jof13bt568cork1j; ; ; # .𐫫᩠᭄
+xn--9u37blu98h.xn--jof13bt568cork1j; 򉟂󠵣.𐫫᩠󴺖᭄; [B2, B3, B6, V6]; xn--9u37blu98h.xn--jof13bt568cork1j; ; ; # .𐫫᩠᭄
+≯❊ᠯ。𐹱⺨; ≯❊ᠯ.𐹱⺨; [B1, P1, V6]; xn--i7e163ct2d.xn--vwj7372e; ; ; # ≯❊ᠯ.𐹱⺨
+≯❊ᠯ。𐹱⺨; ≯❊ᠯ.𐹱⺨; [B1, P1, V6]; xn--i7e163ct2d.xn--vwj7372e; ; ; # ≯❊ᠯ.𐹱⺨
+≯❊ᠯ。𐹱⺨; ≯❊ᠯ.𐹱⺨; [B1, P1, V6]; xn--i7e163ct2d.xn--vwj7372e; ; ; # ≯❊ᠯ.𐹱⺨
+≯❊ᠯ。𐹱⺨; ≯❊ᠯ.𐹱⺨; [B1, P1, V6]; xn--i7e163ct2d.xn--vwj7372e; ; ; # ≯❊ᠯ.𐹱⺨
+xn--i7e163ct2d.xn--vwj7372e; ≯❊ᠯ.𐹱⺨; [B1, V6]; xn--i7e163ct2d.xn--vwj7372e; ; ; # ≯❊ᠯ.𐹱⺨
+􁕜𐹧𞭁𐹩。Ⴈ𐫮Ⴏ; 􁕜𐹧𞭁𐹩.Ⴈ𐫮Ⴏ; [B5, B6, P1, V6]; xn--fo0de1270ope54j.xn--gndo2033q; ; ; # 𐹧𐹩.Ⴈ𐫮Ⴏ
+􁕜𐹧𞭁𐹩。ⴈ𐫮ⴏ; 􁕜𐹧𞭁𐹩.ⴈ𐫮ⴏ; [B5, B6, P1, V6]; xn--fo0de1270ope54j.xn--zkjo0151o; ; ; # 𐹧𐹩.ⴈ𐫮ⴏ
+xn--fo0de1270ope54j.xn--zkjo0151o; 􁕜𐹧𞭁𐹩.ⴈ𐫮ⴏ; [B5, B6, V6]; xn--fo0de1270ope54j.xn--zkjo0151o; ; ; # 𐹧𐹩.ⴈ𐫮ⴏ
+xn--fo0de1270ope54j.xn--gndo2033q; 􁕜𐹧𞭁𐹩.Ⴈ𐫮Ⴏ; [B5, B6, V6]; xn--fo0de1270ope54j.xn--gndo2033q; ; ; # 𐹧𐹩.Ⴈ𐫮Ⴏ
+𞠂。ꤦ; 𞠂.ꤦ; [B1, B3, B6, V5]; xn--145h.xn--ti9a; ; ; # 𞠂.ꤦ
+xn--145h.xn--ti9a; 𞠂.ꤦ; [B1, B3, B6, V5]; xn--145h.xn--ti9a; ; ; # 𞠂.ꤦ
+𝟔𐹫.့ܳ9ꡇ; 6𐹫.့ܳ9ꡇ; [B1, V5]; xn--6-t26i.xn--9-91c730e8u8n; ; ; # 6𐹫.့ܳ9ꡇ
+𝟔𐹫.့ܳ9ꡇ; 6𐹫.့ܳ9ꡇ; [B1, V5]; xn--6-t26i.xn--9-91c730e8u8n; ; ; # 6𐹫.့ܳ9ꡇ
+6𐹫.့ܳ9ꡇ; ; [B1, V5]; xn--6-t26i.xn--9-91c730e8u8n; ; ; # 6𐹫.့ܳ9ꡇ
+xn--6-t26i.xn--9-91c730e8u8n; 6𐹫.့ܳ9ꡇ; [B1, V5]; xn--6-t26i.xn--9-91c730e8u8n; ; ; # 6𐹫.့ܳ9ꡇ
+ܤ؃𞲶.ۘ; ܤ؃𞲶.ۘ; [B1, B3, B6, P1, V5, V6]; xn--lfb19ct414i.xn--olb; ; ; # ܤ.ۘ
+ܤ؃𞲶.ۘ; ; [B1, B3, B6, P1, V5, V6]; xn--lfb19ct414i.xn--olb; ; ; # ܤ.ۘ
+xn--lfb19ct414i.xn--olb; ܤ؃𞲶.ۘ; [B1, B3, B6, V5, V6]; xn--lfb19ct414i.xn--olb; ; ; # ܤ.ۘ
+✆񱔩ꡋ.ز‍𞣴; ✆񱔩ꡋ.ز‍𞣴; [B1, C2, P1, V6]; xn--1biv525bcix0d.xn--xgb253k0m73a; ; xn--1biv525bcix0d.xn--xgb6828v; [B1, P1, V6] # ✆ꡋ.ز
+✆񱔩ꡋ.ز‍𞣴; ; [B1, C2, P1, V6]; xn--1biv525bcix0d.xn--xgb253k0m73a; ; xn--1biv525bcix0d.xn--xgb6828v; [B1, P1, V6] # ✆ꡋ.ز
+xn--1biv525bcix0d.xn--xgb6828v; ✆񱔩ꡋ.ز𞣴; [B1, V6]; xn--1biv525bcix0d.xn--xgb6828v; ; ; # ✆ꡋ.ز
+xn--1biv525bcix0d.xn--xgb253k0m73a; ✆񱔩ꡋ.ز‍𞣴; [B1, C2, V6]; xn--1biv525bcix0d.xn--xgb253k0m73a; ; ; # ✆ꡋ.ز
+ࡅ񃾰𞸍-.≠򃁟𑋪; ࡅ񃾰ن-.≠򃁟𑋪; [B1, B2, B3, P1, V3, V6]; xn----qoc64my971s.xn--1ch7585g76o3c; ; ; # ࡅن-.≠𑋪
+ࡅ񃾰𞸍-.≠򃁟𑋪; ࡅ񃾰ن-.≠򃁟𑋪; [B1, B2, B3, P1, V3, V6]; xn----qoc64my971s.xn--1ch7585g76o3c; ; ; # ࡅن-.≠𑋪
+ࡅ񃾰ن-.≠򃁟𑋪; ; [B1, B2, B3, P1, V3, V6]; xn----qoc64my971s.xn--1ch7585g76o3c; ; ; # ࡅن-.≠𑋪
+ࡅ񃾰ن-.≠򃁟𑋪; ࡅ񃾰ن-.≠򃁟𑋪; [B1, B2, B3, P1, V3, V6]; xn----qoc64my971s.xn--1ch7585g76o3c; ; ; # ࡅن-.≠𑋪
+xn----qoc64my971s.xn--1ch7585g76o3c; ࡅ񃾰ن-.≠򃁟𑋪; [B1, B2, B3, V3, V6]; xn----qoc64my971s.xn--1ch7585g76o3c; ; ; # ࡅن-.≠𑋪
+𝟛.笠; 3.笠; ; 3.xn--6vz; ; ; # 3.笠
+𝟛.笠; 3.笠; ; 3.xn--6vz; ; ; # 3.笠
+3.笠; ; ; 3.xn--6vz; ; ; # 3.笠
+3.xn--6vz; 3.笠; ; 3.xn--6vz; ; ; # 3.笠
+-‍.Ⴞ𐋷; ; [C2, P1, V3, V6]; xn----ugn.xn--2nd2315j; ; -.xn--2nd2315j; [P1, V3, V6] # -.Ⴞ𐋷
+-‍.ⴞ𐋷; ; [C2, V3]; xn----ugn.xn--mlj8559d; ; -.xn--mlj8559d; [V3] # -.ⴞ𐋷
+-.xn--mlj8559d; -.ⴞ𐋷; [V3]; -.xn--mlj8559d; ; ; # -.ⴞ𐋷
+xn----ugn.xn--mlj8559d; -‍.ⴞ𐋷; [C2, V3]; xn----ugn.xn--mlj8559d; ; ; # -.ⴞ𐋷
+-.xn--2nd2315j; -.Ⴞ𐋷; [V3, V6]; -.xn--2nd2315j; ; ; # -.Ⴞ𐋷
+xn----ugn.xn--2nd2315j; -‍.Ⴞ𐋷; [C2, V3, V6]; xn----ugn.xn--2nd2315j; ; ; # -.Ⴞ𐋷
+‍ςßܱ.்; ‍ςßܱ.்; [C2, V5]; xn--zca19ln1di19a.xn--xmc; ; xn--ss-ubc826a.xn--xmc; [V5] # ςßܱ.்
+‍ςßܱ.்; ; [C2, V5]; xn--zca19ln1di19a.xn--xmc; ; xn--ss-ubc826a.xn--xmc; [V5] # ςßܱ.்
+‍ΣSSܱ.்; ‍σssܱ.்; [C2, V5]; xn--ss-ubc826ab34b.xn--xmc; ; xn--ss-ubc826a.xn--xmc; [V5] # σssܱ.்
+‍σssܱ.்; ; [C2, V5]; xn--ss-ubc826ab34b.xn--xmc; ; xn--ss-ubc826a.xn--xmc; [V5] # σssܱ.்
+‍Σssܱ.்; ‍σssܱ.்; [C2, V5]; xn--ss-ubc826ab34b.xn--xmc; ; xn--ss-ubc826a.xn--xmc; [V5] # σssܱ.்
+xn--ss-ubc826a.xn--xmc; σssܱ.்; [V5]; xn--ss-ubc826a.xn--xmc; ; ; # σssܱ.்
+xn--ss-ubc826ab34b.xn--xmc; ‍σssܱ.்; [C2, V5]; xn--ss-ubc826ab34b.xn--xmc; ; ; # σssܱ.்
+‍Σßܱ.்; ‍σßܱ.்; [C2, V5]; xn--zca39lk1di19a.xn--xmc; ; xn--ss-ubc826a.xn--xmc; [V5] # σßܱ.்
+‍σßܱ.்; ; [C2, V5]; xn--zca39lk1di19a.xn--xmc; ; xn--ss-ubc826a.xn--xmc; [V5] # σßܱ.்
+xn--zca39lk1di19a.xn--xmc; ‍σßܱ.்; [C2, V5]; xn--zca39lk1di19a.xn--xmc; ; ; # σßܱ.்
+xn--zca19ln1di19a.xn--xmc; ‍ςßܱ.்; [C2, V5]; xn--zca19ln1di19a.xn--xmc; ; ; # ςßܱ.்
+‍ΣSSܱ.்; ‍σssܱ.்; [C2, V5]; xn--ss-ubc826ab34b.xn--xmc; ; xn--ss-ubc826a.xn--xmc; [V5] # σssܱ.்
+‍σssܱ.்; ‍σssܱ.்; [C2, V5]; xn--ss-ubc826ab34b.xn--xmc; ; xn--ss-ubc826a.xn--xmc; [V5] # σssܱ.்
+‍Σssܱ.்; ‍σssܱ.்; [C2, V5]; xn--ss-ubc826ab34b.xn--xmc; ; xn--ss-ubc826a.xn--xmc; [V5] # σssܱ.்
+‍Σßܱ.்; ‍σßܱ.்; [C2, V5]; xn--zca39lk1di19a.xn--xmc; ; xn--ss-ubc826a.xn--xmc; [V5] # σßܱ.்
+‍σßܱ.்; ‍σßܱ.்; [C2, V5]; xn--zca39lk1di19a.xn--xmc; ; xn--ss-ubc826a.xn--xmc; [V5] # σßܱ.்
+≠.‍; ≠.‍; [C2, P1, V6]; xn--1ch.xn--1ug; ; xn--1ch.; [P1, V6] # ≠.
+≠.‍; ≠.‍; [C2, P1, V6]; xn--1ch.xn--1ug; ; xn--1ch.; [P1, V6] # ≠.
+≠.‍; ; [C2, P1, V6]; xn--1ch.xn--1ug; ; xn--1ch.; [P1, V6] # ≠.
+≠.‍; ≠.‍; [C2, P1, V6]; xn--1ch.xn--1ug; ; xn--1ch.; [P1, V6] # ≠.
+xn--1ch.; ≠.; [V6]; xn--1ch.; ; ; # ≠.
+xn--1ch.xn--1ug; ≠.‍; [C2, V6]; xn--1ch.xn--1ug; ; ; # ≠.
+ﰁ。ಁᠼ▗򒁋; ئح.ಁᠼ▗򒁋; [B1, P1, V5, V6]; xn--lgbo.xn--2rc021dcxkrx55t; ; ; # ئح.ಁᠼ▗
+ئح。ಁᠼ▗򒁋; ئح.ಁᠼ▗򒁋; [B1, P1, V5, V6]; xn--lgbo.xn--2rc021dcxkrx55t; ; ; # ئح.ಁᠼ▗
+ئح。ಁᠼ▗򒁋; ئح.ಁᠼ▗򒁋; [B1, P1, V5, V6]; xn--lgbo.xn--2rc021dcxkrx55t; ; ; # ئح.ಁᠼ▗
+xn--lgbo.xn--2rc021dcxkrx55t; ئح.ಁᠼ▗򒁋; [B1, V5, V6]; xn--lgbo.xn--2rc021dcxkrx55t; ; ; # ئح.ಁᠼ▗
+󧋵্ς.ς𐨿; 󧋵্ς.ς𐨿; [P1, V6]; xn--3xa702av8297a.xn--3xa8055k; ; xn--4xa502av8297a.xn--4xa6055k; # ্ς.ς𐨿
+󧋵্ς.ς𐨿; ; [P1, V6]; xn--3xa702av8297a.xn--3xa8055k; ; xn--4xa502av8297a.xn--4xa6055k; # ্ς.ς𐨿
+󧋵্Σ.Σ𐨿; 󧋵্σ.σ𐨿; [P1, V6]; xn--4xa502av8297a.xn--4xa6055k; ; ; # ্σ.σ𐨿
+󧋵্σ.ς𐨿; ; [P1, V6]; xn--4xa502av8297a.xn--3xa8055k; ; xn--4xa502av8297a.xn--4xa6055k; # ্σ.ς𐨿
+󧋵্σ.σ𐨿; ; [P1, V6]; xn--4xa502av8297a.xn--4xa6055k; ; ; # ্σ.σ𐨿
+󧋵্Σ.σ𐨿; 󧋵্σ.σ𐨿; [P1, V6]; xn--4xa502av8297a.xn--4xa6055k; ; ; # ্σ.σ𐨿
+xn--4xa502av8297a.xn--4xa6055k; 󧋵্σ.σ𐨿; [V6]; xn--4xa502av8297a.xn--4xa6055k; ; ; # ্σ.σ𐨿
+󧋵্Σ.ς𐨿; 󧋵্σ.ς𐨿; [P1, V6]; xn--4xa502av8297a.xn--3xa8055k; ; xn--4xa502av8297a.xn--4xa6055k; # ্σ.ς𐨿
+xn--4xa502av8297a.xn--3xa8055k; 󧋵্σ.ς𐨿; [V6]; xn--4xa502av8297a.xn--3xa8055k; ; ; # ্σ.ς𐨿
+xn--3xa702av8297a.xn--3xa8055k; 󧋵্ς.ς𐨿; [V6]; xn--3xa702av8297a.xn--3xa8055k; ; ; # ্ς.ς𐨿
+󧋵্Σ.Σ𐨿; 󧋵্σ.σ𐨿; [P1, V6]; xn--4xa502av8297a.xn--4xa6055k; ; ; # ্σ.σ𐨿
+󧋵্σ.ς𐨿; 󧋵্σ.ς𐨿; [P1, V6]; xn--4xa502av8297a.xn--3xa8055k; ; xn--4xa502av8297a.xn--4xa6055k; # ্σ.ς𐨿
+󧋵্σ.σ𐨿; 󧋵্σ.σ𐨿; [P1, V6]; xn--4xa502av8297a.xn--4xa6055k; ; ; # ্σ.σ𐨿
+󧋵্Σ.σ𐨿; 󧋵্σ.σ𐨿; [P1, V6]; xn--4xa502av8297a.xn--4xa6055k; ; ; # ্σ.σ𐨿
+󧋵্Σ.ς𐨿; 󧋵্σ.ς𐨿; [P1, V6]; xn--4xa502av8297a.xn--3xa8055k; ; xn--4xa502av8297a.xn--4xa6055k; # ্σ.ς𐨿
+𐫓ߘ牅ࣸ。𞦤ᨗ򱍰Ⴙ; 𐫓ߘ牅ࣸ.𞦤ᨗ򱍰Ⴙ; [B2, B3, P1, V6]; xn--zsb09cu46vjs6f.xn--xnd909bv540bm5k9d; ; ; # 𐫓ߘ牅ࣸ.ᨗႹ
+𐫓ߘ牅ࣸ。𞦤ᨗ򱍰Ⴙ; 𐫓ߘ牅ࣸ.𞦤ᨗ򱍰Ⴙ; [B2, B3, P1, V6]; xn--zsb09cu46vjs6f.xn--xnd909bv540bm5k9d; ; ; # 𐫓ߘ牅ࣸ.ᨗႹ
+𐫓ߘ牅ࣸ。𞦤ᨗ򱍰ⴙ; 𐫓ߘ牅ࣸ.𞦤ᨗ򱍰ⴙ; [B2, B3, P1, V6]; xn--zsb09cu46vjs6f.xn--gmf469fr883am5r1e; ; ; # 𐫓ߘ牅ࣸ.ᨗⴙ
+xn--zsb09cu46vjs6f.xn--gmf469fr883am5r1e; 𐫓ߘ牅ࣸ.𞦤ᨗ򱍰ⴙ; [B2, B3, V6]; xn--zsb09cu46vjs6f.xn--gmf469fr883am5r1e; ; ; # 𐫓ߘ牅ࣸ.ᨗⴙ
+xn--zsb09cu46vjs6f.xn--xnd909bv540bm5k9d; 𐫓ߘ牅ࣸ.𞦤ᨗ򱍰Ⴙ; [B2, B3, V6]; xn--zsb09cu46vjs6f.xn--xnd909bv540bm5k9d; ; ; # 𐫓ߘ牅ࣸ.ᨗႹ
+𐫓ߘ牅ࣸ。𞦤ᨗ򱍰ⴙ; 𐫓ߘ牅ࣸ.𞦤ᨗ򱍰ⴙ; [B2, B3, P1, V6]; xn--zsb09cu46vjs6f.xn--gmf469fr883am5r1e; ; ; # 𐫓ߘ牅ࣸ.ᨗⴙ
+񣤒。륧; 񣤒.륧; [P1, V6]; xn--s264a.xn--pw2b; ; ; # .륧
+񣤒。륧; 񣤒.륧; [P1, V6]; xn--s264a.xn--pw2b; ; ; # .륧
+񣤒。륧; 񣤒.륧; [P1, V6]; xn--s264a.xn--pw2b; ; ; # .륧
+񣤒。륧; 񣤒.륧; [P1, V6]; xn--s264a.xn--pw2b; ; ; # .륧
+xn--s264a.xn--pw2b; 񣤒.륧; [V6]; xn--s264a.xn--pw2b; ; ; # .륧
+𐹷‍。󉵢; 𐹷‍.󉵢; [B1, C2, P1, V6]; xn--1ugx205g.xn--8088d; ; xn--vo0d.xn--8088d; [B1, P1, V6] # 𐹷.
+xn--vo0d.xn--8088d; 𐹷.󉵢; [B1, V6]; xn--vo0d.xn--8088d; ; ; # 𐹷.
+xn--1ugx205g.xn--8088d; 𐹷‍.󉵢; [B1, C2, V6]; xn--1ugx205g.xn--8088d; ; ; # 𐹷.
+Ⴘۂ𑲭。-; Ⴘۂ𑲭.-; [B1, B5, B6, P1, V3, V6]; xn--1kb312c139t.-; ; ; # Ⴘۂ𑲭.-
+Ⴘۂ𑲭。-; Ⴘۂ𑲭.-; [B1, B5, B6, P1, V3, V6]; xn--1kb312c139t.-; ; ; # Ⴘۂ𑲭.-
+Ⴘۂ𑲭。-; Ⴘۂ𑲭.-; [B1, B5, B6, P1, V3, V6]; xn--1kb312c139t.-; ; ; # Ⴘۂ𑲭.-
+Ⴘۂ𑲭。-; Ⴘۂ𑲭.-; [B1, B5, B6, P1, V3, V6]; xn--1kb312c139t.-; ; ; # Ⴘۂ𑲭.-
+ⴘۂ𑲭。-; ⴘۂ𑲭.-; [B1, B5, B6, V3]; xn--1kb147qfk3n.-; ; ; # ⴘۂ𑲭.-
+ⴘۂ𑲭。-; ⴘۂ𑲭.-; [B1, B5, B6, V3]; xn--1kb147qfk3n.-; ; ; # ⴘۂ𑲭.-
+xn--1kb147qfk3n.-; ⴘۂ𑲭.-; [B1, B5, B6, V3]; xn--1kb147qfk3n.-; ; ; # ⴘۂ𑲭.-
+xn--1kb312c139t.-; Ⴘۂ𑲭.-; [B1, B5, B6, V3, V6]; xn--1kb312c139t.-; ; ; # Ⴘۂ𑲭.-
+ⴘۂ𑲭。-; ⴘۂ𑲭.-; [B1, B5, B6, V3]; xn--1kb147qfk3n.-; ; ; # ⴘۂ𑲭.-
+ⴘۂ𑲭。-; ⴘۂ𑲭.-; [B1, B5, B6, V3]; xn--1kb147qfk3n.-; ; ; # ⴘۂ𑲭.-
+꠆ٻ₆ᡐ。🛇ﳝ; ꠆ٻ6ᡐ.🛇يم; [B1, V5]; xn--6-rrc018krt9k.xn--hhbj61429a; ; ; # ꠆ٻ6ᡐ.🛇يم
+꠆ٻ6ᡐ。🛇يم; ꠆ٻ6ᡐ.🛇يم; [B1, V5]; xn--6-rrc018krt9k.xn--hhbj61429a; ; ; # ꠆ٻ6ᡐ.🛇يم
+xn--6-rrc018krt9k.xn--hhbj61429a; ꠆ٻ6ᡐ.🛇يم; [B1, V5]; xn--6-rrc018krt9k.xn--hhbj61429a; ; ; # ꠆ٻ6ᡐ.🛇يم
+򸍂.㇄ᡟ𐫂آ; ; [B1, P1, V6]; xn--p292d.xn--hgb154ghrsvm2r; ; ; # .㇄ᡟ𐫂آ
+򸍂.㇄ᡟ𐫂آ; 򸍂.㇄ᡟ𐫂آ; [B1, P1, V6]; xn--p292d.xn--hgb154ghrsvm2r; ; ; # .㇄ᡟ𐫂آ
+xn--p292d.xn--hgb154ghrsvm2r; 򸍂.㇄ᡟ𐫂آ; [B1, V6]; xn--p292d.xn--hgb154ghrsvm2r; ; ; # .㇄ᡟ𐫂آ
+ߟ򵚌。-ߩ; ߟ򵚌.-ߩ; [B1, B2, B3, P1, V3, V6]; xn--6sb88139l.xn----pdd; ; ; # ߟ.-ߩ
+xn--6sb88139l.xn----pdd; ߟ򵚌.-ߩ; [B1, B2, B3, V3, V6]; xn--6sb88139l.xn----pdd; ; ; # ߟ.-ߩ
+ςك⾑.‌ᢟ‌⒈; ςك襾.‌ᢟ‌⒈; [B1, B5, C1, P1, V6]; xn--3xa69jux8r.xn--pbf519aba607b; ; xn--4xa49jux8r.xn--pbf212d; [B5, P1, V6] # ςك襾.ᢟ⒈
+ςك襾.‌ᢟ‌1.; ; [B1, B5, C1]; xn--3xa69jux8r.xn--1-4ck691bba.; ; xn--4xa49jux8r.xn--1-4ck.; [B5] # ςك襾.ᢟ1.
+Σك襾.‌ᢟ‌1.; σك襾.‌ᢟ‌1.; [B1, B5, C1]; xn--4xa49jux8r.xn--1-4ck691bba.; ; xn--4xa49jux8r.xn--1-4ck.; [B5] # σك襾.ᢟ1.
+σك襾.‌ᢟ‌1.; ; [B1, B5, C1]; xn--4xa49jux8r.xn--1-4ck691bba.; ; xn--4xa49jux8r.xn--1-4ck.; [B5] # σك襾.ᢟ1.
+xn--4xa49jux8r.xn--1-4ck.; σك襾.ᢟ1.; [B5]; xn--4xa49jux8r.xn--1-4ck.; ; ; # σك襾.ᢟ1.
+xn--4xa49jux8r.xn--1-4ck691bba.; σك襾.‌ᢟ‌1.; [B1, B5, C1]; xn--4xa49jux8r.xn--1-4ck691bba.; ; ; # σك襾.ᢟ1.
+xn--3xa69jux8r.xn--1-4ck691bba.; ςك襾.‌ᢟ‌1.; [B1, B5, C1]; xn--3xa69jux8r.xn--1-4ck691bba.; ; ; # ςك襾.ᢟ1.
+Σك⾑.‌ᢟ‌⒈; σك襾.‌ᢟ‌⒈; [B1, B5, C1, P1, V6]; xn--4xa49jux8r.xn--pbf519aba607b; ; xn--4xa49jux8r.xn--pbf212d; [B5, P1, V6] # σك襾.ᢟ⒈
+σك⾑.‌ᢟ‌⒈; σك襾.‌ᢟ‌⒈; [B1, B5, C1, P1, V6]; xn--4xa49jux8r.xn--pbf519aba607b; ; xn--4xa49jux8r.xn--pbf212d; [B5, P1, V6] # σك襾.ᢟ⒈
+xn--4xa49jux8r.xn--pbf212d; σك襾.ᢟ⒈; [B5, V6]; xn--4xa49jux8r.xn--pbf212d; ; ; # σك襾.ᢟ⒈
+xn--4xa49jux8r.xn--pbf519aba607b; σك襾.‌ᢟ‌⒈; [B1, B5, C1, V6]; xn--4xa49jux8r.xn--pbf519aba607b; ; ; # σك襾.ᢟ⒈
+xn--3xa69jux8r.xn--pbf519aba607b; ςك襾.‌ᢟ‌⒈; [B1, B5, C1, V6]; xn--3xa69jux8r.xn--pbf519aba607b; ; ; # ςك襾.ᢟ⒈
+ᡆ𑓝.𞵆; ᡆ𑓝.𞵆; [P1, V6]; xn--57e0440k.xn--k86h; ; ; # ᡆ.
+ᡆ𑓝.𞵆; ; [P1, V6]; xn--57e0440k.xn--k86h; ; ; # ᡆ.
+xn--57e0440k.xn--k86h; ᡆ𑓝.𞵆; [V6]; xn--57e0440k.xn--k86h; ; ; # ᡆ.
+੍𦍓ᷮ。‌ࢽ񝹲; ੍𦍓ᷮ.‌ࢽ񝹲; [B1, C1, P1, V5, V6]; xn--ybc461hph93b.xn--jzb740j1y45h; ; xn--ybc461hph93b.xn--jzb29857e; [B1, B2, B3, P1, V5, V6] # ੍𦍓ᷮ.ࢽ
+੍𦍓ᷮ。‌ࢽ񝹲; ੍𦍓ᷮ.‌ࢽ񝹲; [B1, C1, P1, V5, V6]; xn--ybc461hph93b.xn--jzb740j1y45h; ; xn--ybc461hph93b.xn--jzb29857e; [B1, B2, B3, P1, V5, V6] # ੍𦍓ᷮ.ࢽ
+xn--ybc461hph93b.xn--jzb29857e; ੍𦍓ᷮ.ࢽ񝹲; [B1, B2, B3, V5, V6]; xn--ybc461hph93b.xn--jzb29857e; ; ; # ੍𦍓ᷮ.ࢽ
+xn--ybc461hph93b.xn--jzb740j1y45h; ੍𦍓ᷮ.‌ࢽ񝹲; [B1, C1, V5, V6]; xn--ybc461hph93b.xn--jzb740j1y45h; ; ; # ੍𦍓ᷮ.ࢽ
+خ݈񅪪-.‌먿; خ݈񅪪-.‌먿; [B1, B2, B3, C1, P1, V3, V6]; xn----dnc06f42153a.xn--0ug1581d; ; xn----dnc06f42153a.xn--v22b; [B2, B3, P1, V3, V6] # خ݈-.먿
+خ݈񅪪-.‌먿; خ݈񅪪-.‌먿; [B1, B2, B3, C1, P1, V3, V6]; xn----dnc06f42153a.xn--0ug1581d; ; xn----dnc06f42153a.xn--v22b; [B2, B3, P1, V3, V6] # خ݈-.먿
+خ݈񅪪-.‌먿; ; [B1, B2, B3, C1, P1, V3, V6]; xn----dnc06f42153a.xn--0ug1581d; ; xn----dnc06f42153a.xn--v22b; [B2, B3, P1, V3, V6] # خ݈-.먿
+خ݈񅪪-.‌먿; خ݈񅪪-.‌먿; [B1, B2, B3, C1, P1, V3, V6]; xn----dnc06f42153a.xn--0ug1581d; ; xn----dnc06f42153a.xn--v22b; [B2, B3, P1, V3, V6] # خ݈-.먿
+xn----dnc06f42153a.xn--v22b; خ݈񅪪-.먿; [B2, B3, V3, V6]; xn----dnc06f42153a.xn--v22b; ; ; # خ݈-.먿
+xn----dnc06f42153a.xn--0ug1581d; خ݈񅪪-.‌먿; [B1, B2, B3, C1, V3, V6]; xn----dnc06f42153a.xn--0ug1581d; ; ; # خ݈-.먿
+􋿦。ᠽ; 􋿦.ᠽ; [P1, V6]; xn--j890g.xn--w7e; ; ; # .ᠽ
+􋿦。ᠽ; 􋿦.ᠽ; [P1, V6]; xn--j890g.xn--w7e; ; ; # .ᠽ
+xn--j890g.xn--w7e; 􋿦.ᠽ; [V6]; xn--j890g.xn--w7e; ; ; # .ᠽ
+嬃𝍌.‍ୄ; 嬃𝍌.‍ୄ; [C2]; xn--b6s0078f.xn--0ic557h; ; xn--b6s0078f.xn--0ic; [V5] # 嬃𝍌.ୄ
+嬃𝍌.‍ୄ; ; [C2]; xn--b6s0078f.xn--0ic557h; ; xn--b6s0078f.xn--0ic; [V5] # 嬃𝍌.ୄ
+xn--b6s0078f.xn--0ic; 嬃𝍌.ୄ; [V5]; xn--b6s0078f.xn--0ic; ; ; # 嬃𝍌.ୄ
+xn--b6s0078f.xn--0ic557h; 嬃𝍌.‍ୄ; [C2]; xn--b6s0078f.xn--0ic557h; ; ; # 嬃𝍌.ୄ
+؂𝌪≯.𚋲򵁨; ؂𝌪≯.𚋲򵁨; [B1, P1, V6]; xn--kfb866llx01a.xn--wp1gm3570b; ; ; # 𝌪≯.
+؂𝌪≯.𚋲򵁨; ؂𝌪≯.𚋲򵁨; [B1, P1, V6]; xn--kfb866llx01a.xn--wp1gm3570b; ; ; # 𝌪≯.
+؂𝌪≯.𚋲򵁨; ; [B1, P1, V6]; xn--kfb866llx01a.xn--wp1gm3570b; ; ; # 𝌪≯.
+؂𝌪≯.𚋲򵁨; ؂𝌪≯.𚋲򵁨; [B1, P1, V6]; xn--kfb866llx01a.xn--wp1gm3570b; ; ; # 𝌪≯.
+xn--kfb866llx01a.xn--wp1gm3570b; ؂𝌪≯.𚋲򵁨; [B1, V6]; xn--kfb866llx01a.xn--wp1gm3570b; ; ; # 𝌪≯.
+򫾥ࢷ៌꧀.𞼠; ; [B5, P1, V6]; xn--dzb638ewm4i1iy1h.xn--3m7h; ; ; # ࢷ៌꧀.
+xn--dzb638ewm4i1iy1h.xn--3m7h; 򫾥ࢷ៌꧀.𞼠; [B5, V6]; xn--dzb638ewm4i1iy1h.xn--3m7h; ; ; # ࢷ៌꧀.
+‌.񟛤; ; [C1, P1, V6]; xn--0ug.xn--q823a; ; .xn--q823a; [P1, V6, A4_2] # .
+.xn--q823a; .񟛤; [V6, X4_2]; .xn--q823a; [V6, A4_2]; ; # .
+xn--0ug.xn--q823a; ‌.񟛤; [C1, V6]; xn--0ug.xn--q823a; ; ; # .
+򺛕Ⴃ䠅.𐸑; 򺛕Ⴃ䠅.𐸑; [P1, V6]; xn--bnd074zr557n.xn--yl0d; ; ; # Ⴃ䠅.
+򺛕Ⴃ䠅.𐸑; ; [P1, V6]; xn--bnd074zr557n.xn--yl0d; ; ; # Ⴃ䠅.
+򺛕ⴃ䠅.𐸑; ; [P1, V6]; xn--ukju77frl47r.xn--yl0d; ; ; # ⴃ䠅.
+xn--ukju77frl47r.xn--yl0d; 򺛕ⴃ䠅.𐸑; [V6]; xn--ukju77frl47r.xn--yl0d; ; ; # ⴃ䠅.
+xn--bnd074zr557n.xn--yl0d; 򺛕Ⴃ䠅.𐸑; [V6]; xn--bnd074zr557n.xn--yl0d; ; ; # Ⴃ䠅.
+򺛕ⴃ䠅.𐸑; 򺛕ⴃ䠅.𐸑; [P1, V6]; xn--ukju77frl47r.xn--yl0d; ; ; # ⴃ䠅.
+ᯱ𐹳𐹵𞤚。𝟨Ⴅ; ᯱ𐹳𐹵𞤼.6Ⴅ; [B1, P1, V5, V6]; xn--zzfy954hga2415t.xn--6-h0g; ; ; # ᯱ𐹳𐹵𞤼.6Ⴅ
+ᯱ𐹳𐹵𞤚。6Ⴅ; ᯱ𐹳𐹵𞤼.6Ⴅ; [B1, P1, V5, V6]; xn--zzfy954hga2415t.xn--6-h0g; ; ; # ᯱ𐹳𐹵𞤼.6Ⴅ
+ᯱ𐹳𐹵𞤼。6ⴅ; ᯱ𐹳𐹵𞤼.6ⴅ; [B1, V5]; xn--zzfy954hga2415t.xn--6-kvs; ; ; # ᯱ𐹳𐹵𞤼.6ⴅ
+ᯱ𐹳𐹵𞤚。6ⴅ; ᯱ𐹳𐹵𞤼.6ⴅ; [B1, V5]; xn--zzfy954hga2415t.xn--6-kvs; ; ; # ᯱ𐹳𐹵𞤼.6ⴅ
+xn--zzfy954hga2415t.xn--6-kvs; ᯱ𐹳𐹵𞤼.6ⴅ; [B1, V5]; xn--zzfy954hga2415t.xn--6-kvs; ; ; # ᯱ𐹳𐹵𞤼.6ⴅ
+xn--zzfy954hga2415t.xn--6-h0g; ᯱ𐹳𐹵𞤼.6Ⴅ; [B1, V5, V6]; xn--zzfy954hga2415t.xn--6-h0g; ; ; # ᯱ𐹳𐹵𞤼.6Ⴅ
+ᯱ𐹳𐹵𞤼。𝟨ⴅ; ᯱ𐹳𐹵𞤼.6ⴅ; [B1, V5]; xn--zzfy954hga2415t.xn--6-kvs; ; ; # ᯱ𐹳𐹵𞤼.6ⴅ
+ᯱ𐹳𐹵𞤚。𝟨ⴅ; ᯱ𐹳𐹵𞤼.6ⴅ; [B1, V5]; xn--zzfy954hga2415t.xn--6-kvs; ; ; # ᯱ𐹳𐹵𞤼.6ⴅ
+-。︒; -.︒; [P1, V3, V6]; -.xn--y86c; ; ; # -.︒
+-。。; -..; [V3, X4_2]; ; [V3, A4_2]; ; # -..
+-..; ; [V3, X4_2]; ; [V3, A4_2]; ; # -..
+-.xn--y86c; -.︒; [V3, V6]; -.xn--y86c; ; ; # -.︒
+ߛჀ。-⁵--; ߛჀ.-5--; [B1, B2, B3, P1, V2, V3, V6]; xn--2sb866b.-5--; ; ; # ߛჀ.-5--
+ߛჀ。-5--; ߛჀ.-5--; [B1, B2, B3, P1, V2, V3, V6]; xn--2sb866b.-5--; ; ; # ߛჀ.-5--
+ߛⴠ。-5--; ߛⴠ.-5--; [B1, B2, B3, V2, V3]; xn--2sb691q.-5--; ; ; # ߛⴠ.-5--
+xn--2sb691q.-5--; ߛⴠ.-5--; [B1, B2, B3, V2, V3]; xn--2sb691q.-5--; ; ; # ߛⴠ.-5--
+xn--2sb866b.-5--; ߛჀ.-5--; [B1, B2, B3, V2, V3, V6]; xn--2sb866b.-5--; ; ; # ߛჀ.-5--
+ߛⴠ。-⁵--; ߛⴠ.-5--; [B1, B2, B3, V2, V3]; xn--2sb691q.-5--; ; ; # ߛⴠ.-5--
+≯?󠑕。𐹷𐹻≯𐷒; ≯?󠑕.𐹷𐹻≯𐷒; [B1, P1, V6]; ≯?󠑕.xn--hdh8283gdoaqa; [B1, P1, V6, A3]; ; # ≯.𐹷𐹻≯
+≯?󠑕。𐹷𐹻≯𐷒; ≯?󠑕.𐹷𐹻≯𐷒; [B1, P1, V6]; ≯?󠑕.xn--hdh8283gdoaqa; [B1, P1, V6, A3]; ; # ≯.𐹷𐹻≯
+≯?󠑕。𐹷𐹻≯𐷒; ≯?󠑕.𐹷𐹻≯𐷒; [B1, P1, V6]; ≯?󠑕.xn--hdh8283gdoaqa; [B1, P1, V6, A3]; ; # ≯.𐹷𐹻≯
+≯?󠑕。𐹷𐹻≯𐷒; ≯?󠑕.𐹷𐹻≯𐷒; [B1, P1, V6]; ≯?󠑕.xn--hdh8283gdoaqa; [B1, P1, V6, A3]; ; # ≯.𐹷𐹻≯
+≯?󠑕.xn--hdh8283gdoaqa; ≯?󠑕.𐹷𐹻≯𐷒; [B1, P1, V6]; ≯?󠑕.xn--hdh8283gdoaqa; [B1, P1, V6, A3]; ; # ≯.𐹷𐹻≯
+≯?󠑕.xn--hdh8283gdoaqa; ≯?󠑕.𐹷𐹻≯𐷒; [B1, P1, V6]; ≯?󠑕.xn--hdh8283gdoaqa; [B1, P1, V6, A3]; ; # ≯.𐹷𐹻≯
+≯?󠑕.XN--HDH8283GDOAQA; ≯?󠑕.𐹷𐹻≯𐷒; [B1, P1, V6]; ≯?󠑕.xn--hdh8283gdoaqa; [B1, P1, V6, A3]; ; # ≯.𐹷𐹻≯
+≯?󠑕.XN--HDH8283GDOAQA; ≯?󠑕.𐹷𐹻≯𐷒; [B1, P1, V6]; ≯?󠑕.xn--hdh8283gdoaqa; [B1, P1, V6, A3]; ; # ≯.𐹷𐹻≯
+≯?󠑕.Xn--Hdh8283gdoaqa; ≯?󠑕.𐹷𐹻≯𐷒; [B1, P1, V6]; ≯?󠑕.xn--hdh8283gdoaqa; [B1, P1, V6, A3]; ; # ≯.𐹷𐹻≯
+≯?󠑕.Xn--Hdh8283gdoaqa; ≯?󠑕.𐹷𐹻≯𐷒; [B1, P1, V6]; ≯?󠑕.xn--hdh8283gdoaqa; [B1, P1, V6, A3]; ; # ≯.𐹷𐹻≯
+㍔ࣦݼ‍。͆򁳊𝅶؄; ルーブルࣦݼ‍.͆򁳊𝅶؄; [B1, B5, B6, C2, P1, V5, V6]; xn--dqb73ec22c9kp8cb1j.xn--kua81ls548d3608b; ; xn--dqb73el09fncab4h.xn--kua81ls548d3608b; [B1, B5, B6, P1, V5, V6] # ルーブルࣦݼ.͆
+ルーブルࣦݼ‍。͆򁳊𝅶؄; ルーブルࣦݼ‍.͆򁳊𝅶؄; [B1, B5, B6, C2, P1, V5, V6]; xn--dqb73ec22c9kp8cb1j.xn--kua81ls548d3608b; ; xn--dqb73el09fncab4h.xn--kua81ls548d3608b; [B1, B5, B6, P1, V5, V6] # ルーブルࣦݼ.͆
+ルーブルࣦݼ‍。͆򁳊𝅶؄; ルーブルࣦݼ‍.͆򁳊𝅶؄; [B1, B5, B6, C2, P1, V5, V6]; xn--dqb73ec22c9kp8cb1j.xn--kua81ls548d3608b; ; xn--dqb73el09fncab4h.xn--kua81ls548d3608b; [B1, B5, B6, P1, V5, V6] # ルーブルࣦݼ.͆
+xn--dqb73el09fncab4h.xn--kua81ls548d3608b; ルーブルࣦݼ.͆򁳊𝅶؄; [B1, B5, B6, V5, V6]; xn--dqb73el09fncab4h.xn--kua81ls548d3608b; ; ; # ルーブルࣦݼ.͆
+xn--dqb73ec22c9kp8cb1j.xn--kua81ls548d3608b; ルーブルࣦݼ‍.͆򁳊𝅶؄; [B1, B5, B6, C2, V5, V6]; xn--dqb73ec22c9kp8cb1j.xn--kua81ls548d3608b; ; ; # ルーブルࣦݼ.͆
+‍.F; ‍.f; [C2]; xn--1ug.f; ; .f; [A4_2] # .f
+‍.f; ; [C2]; xn--1ug.f; ; .f; [A4_2] # .f
+.f; ; [X4_2]; ; [A4_2]; ; # .f
+xn--1ug.f; ‍.f; [C2]; xn--1ug.f; ; ; # .f
+f; ; ; ; ; ; # f
+‍㨲。ß; ‍㨲.ß; [C2]; xn--1ug914h.xn--zca; ; xn--9bm.ss; [] # 㨲.ß
+‍㨲。ß; ‍㨲.ß; [C2]; xn--1ug914h.xn--zca; ; xn--9bm.ss; [] # 㨲.ß
+‍㨲。SS; ‍㨲.ss; [C2]; xn--1ug914h.ss; ; xn--9bm.ss; [] # 㨲.ss
+‍㨲。ss; ‍㨲.ss; [C2]; xn--1ug914h.ss; ; xn--9bm.ss; [] # 㨲.ss
+‍㨲。Ss; ‍㨲.ss; [C2]; xn--1ug914h.ss; ; xn--9bm.ss; [] # 㨲.ss
+xn--9bm.ss; 㨲.ss; ; xn--9bm.ss; ; ; # 㨲.ss
+㨲.ss; ; ; xn--9bm.ss; ; ; # 㨲.ss
+㨲.SS; 㨲.ss; ; xn--9bm.ss; ; ; # 㨲.ss
+㨲.Ss; 㨲.ss; ; xn--9bm.ss; ; ; # 㨲.ss
+xn--1ug914h.ss; ‍㨲.ss; [C2]; xn--1ug914h.ss; ; ; # 㨲.ss
+xn--1ug914h.xn--zca; ‍㨲.ß; [C2]; xn--1ug914h.xn--zca; ; ; # 㨲.ß
+‍㨲。SS; ‍㨲.ss; [C2]; xn--1ug914h.ss; ; xn--9bm.ss; [] # 㨲.ss
+‍㨲。ss; ‍㨲.ss; [C2]; xn--1ug914h.ss; ; xn--9bm.ss; [] # 㨲.ss
+‍㨲。Ss; ‍㨲.ss; [C2]; xn--1ug914h.ss; ; xn--9bm.ss; [] # 㨲.ss
+؅پ。ࢨ; ؅پ.ࢨ; [B1, P1, V6]; xn--nfb6v.xn--xyb; ; ; # پ.ࢨ
+؅پ。ࢨ; ؅پ.ࢨ; [B1, P1, V6]; xn--nfb6v.xn--xyb; ; ; # پ.ࢨ
+xn--nfb6v.xn--xyb; ؅پ.ࢨ; [B1, V6]; xn--nfb6v.xn--xyb; ; ; # پ.ࢨ
+⾑ݓ𞤁。𐹵ڂ; 襾ݓ𞤣.𐹵ڂ; [B1, B5, B6]; xn--6ob9577deqwl.xn--7ib5526k; ; ; # 襾ݓ𞤣.𐹵ڂ
+襾ݓ𞤁。𐹵ڂ; 襾ݓ𞤣.𐹵ڂ; [B1, B5, B6]; xn--6ob9577deqwl.xn--7ib5526k; ; ; # 襾ݓ𞤣.𐹵ڂ
+襾ݓ𞤣。𐹵ڂ; 襾ݓ𞤣.𐹵ڂ; [B1, B5, B6]; xn--6ob9577deqwl.xn--7ib5526k; ; ; # 襾ݓ𞤣.𐹵ڂ
+xn--6ob9577deqwl.xn--7ib5526k; 襾ݓ𞤣.𐹵ڂ; [B1, B5, B6]; xn--6ob9577deqwl.xn--7ib5526k; ; ; # 襾ݓ𞤣.𐹵ڂ
+⾑ݓ𞤣。𐹵ڂ; 襾ݓ𞤣.𐹵ڂ; [B1, B5, B6]; xn--6ob9577deqwl.xn--7ib5526k; ; ; # 襾ݓ𞤣.𐹵ڂ
+񦴻ς-⃫。ݔ-ꡛ; 񦴻ς-⃫.ݔ-ꡛ; [B2, B3, B6, P1, V6]; xn----xmb015tuo34l.xn----53c4874j; ; xn----zmb705tuo34l.xn----53c4874j; # ς-⃫.ݔ-ꡛ
+񦴻ς-⃫。ݔ-ꡛ; 񦴻ς-⃫.ݔ-ꡛ; [B2, B3, B6, P1, V6]; xn----xmb015tuo34l.xn----53c4874j; ; xn----zmb705tuo34l.xn----53c4874j; # ς-⃫.ݔ-ꡛ
+񦴻Σ-⃫。ݔ-ꡛ; 񦴻σ-⃫.ݔ-ꡛ; [B2, B3, B6, P1, V6]; xn----zmb705tuo34l.xn----53c4874j; ; ; # σ-⃫.ݔ-ꡛ
+񦴻σ-⃫。ݔ-ꡛ; 񦴻σ-⃫.ݔ-ꡛ; [B2, B3, B6, P1, V6]; xn----zmb705tuo34l.xn----53c4874j; ; ; # σ-⃫.ݔ-ꡛ
+xn----zmb705tuo34l.xn----53c4874j; 񦴻σ-⃫.ݔ-ꡛ; [B2, B3, B6, V6]; xn----zmb705tuo34l.xn----53c4874j; ; ; # σ-⃫.ݔ-ꡛ
+xn----xmb015tuo34l.xn----53c4874j; 񦴻ς-⃫.ݔ-ꡛ; [B2, B3, B6, V6]; xn----xmb015tuo34l.xn----53c4874j; ; ; # ς-⃫.ݔ-ꡛ
+񦴻Σ-⃫。ݔ-ꡛ; 񦴻σ-⃫.ݔ-ꡛ; [B2, B3, B6, P1, V6]; xn----zmb705tuo34l.xn----53c4874j; ; ; # σ-⃫.ݔ-ꡛ
+񦴻σ-⃫。ݔ-ꡛ; 񦴻σ-⃫.ݔ-ꡛ; [B2, B3, B6, P1, V6]; xn----zmb705tuo34l.xn----53c4874j; ; ; # σ-⃫.ݔ-ꡛ
+‍.􀸨; ‍.􀸨; [C2, P1, V6]; xn--1ug.xn--h327f; ; .xn--h327f; [P1, V6, A4_2] # .
+‍.􀸨; ; [C2, P1, V6]; xn--1ug.xn--h327f; ; .xn--h327f; [P1, V6, A4_2] # .
+.xn--h327f; .􀸨; [V6, X4_2]; .xn--h327f; [V6, A4_2]; ; # .
+xn--1ug.xn--h327f; ‍.􀸨; [C2, V6]; xn--1ug.xn--h327f; ; ; # .
+񣭻񌥁。≠𝟲; 񣭻񌥁.≠6; [P1, V6]; xn--h79w4z99a.xn--6-tfo; ; ; # .≠6
+񣭻񌥁。≠𝟲; 񣭻񌥁.≠6; [P1, V6]; xn--h79w4z99a.xn--6-tfo; ; ; # .≠6
+񣭻񌥁。≠6; 񣭻񌥁.≠6; [P1, V6]; xn--h79w4z99a.xn--6-tfo; ; ; # .≠6
+񣭻񌥁。≠6; 񣭻񌥁.≠6; [P1, V6]; xn--h79w4z99a.xn--6-tfo; ; ; # .≠6
+xn--h79w4z99a.xn--6-tfo; 񣭻񌥁.≠6; [V6]; xn--h79w4z99a.xn--6-tfo; ; ; # .≠6
+󠅊ᡭ‍.𐥡; ᡭ‍.𐥡; [B6, C2, P1, V6]; xn--98e810b.xn--om9c; ; xn--98e.xn--om9c; [P1, V6] # ᡭ.
+xn--98e.xn--om9c; ᡭ.𐥡; [V6]; xn--98e.xn--om9c; ; ; # ᡭ.
+xn--98e810b.xn--om9c; ᡭ‍.𐥡; [B6, C2, V6]; xn--98e810b.xn--om9c; ; ; # ᡭ.
+ీࡕ𐥛𑄴.󭰵; ీࡕ𐥛𑄴.󭰵; [B1, P1, V5, V6]; xn--kwb91r5112avtg.xn--o580f; ; ; # ీࡕ𑄴.
+ీࡕ𐥛𑄴.󭰵; ; [B1, P1, V5, V6]; xn--kwb91r5112avtg.xn--o580f; ; ; # ీࡕ𑄴.
+xn--kwb91r5112avtg.xn--o580f; ీࡕ𐥛𑄴.󭰵; [B1, V5, V6]; xn--kwb91r5112avtg.xn--o580f; ; ; # ీࡕ𑄴.
+𞤮。𑇊‌≯᳦; 𞤮.𑇊‌≯᳦; [B1, C1, P1, V5, V6]; xn--me6h.xn--z6f16kn9b2642b; ; xn--me6h.xn--z6fz8ueq2v; [B1, P1, V5, V6] # 𞤮.𑇊≯᳦
+𞤮。𑇊‌≯᳦; 𞤮.𑇊‌≯᳦; [B1, C1, P1, V5, V6]; xn--me6h.xn--z6f16kn9b2642b; ; xn--me6h.xn--z6fz8ueq2v; [B1, P1, V5, V6] # 𞤮.𑇊≯᳦
+𞤌。𑇊‌≯᳦; 𞤮.𑇊‌≯᳦; [B1, C1, P1, V5, V6]; xn--me6h.xn--z6f16kn9b2642b; ; xn--me6h.xn--z6fz8ueq2v; [B1, P1, V5, V6] # 𞤮.𑇊≯᳦
+𞤌。𑇊‌≯᳦; 𞤮.𑇊‌≯᳦; [B1, C1, P1, V5, V6]; xn--me6h.xn--z6f16kn9b2642b; ; xn--me6h.xn--z6fz8ueq2v; [B1, P1, V5, V6] # 𞤮.𑇊≯᳦
+xn--me6h.xn--z6fz8ueq2v; 𞤮.𑇊≯᳦; [B1, V5, V6]; xn--me6h.xn--z6fz8ueq2v; ; ; # 𞤮.𑇊≯᳦
+xn--me6h.xn--z6f16kn9b2642b; 𞤮.𑇊‌≯᳦; [B1, C1, V5, V6]; xn--me6h.xn--z6f16kn9b2642b; ; ; # 𞤮.𑇊≯᳦
+󠄀𝟕.𞤌񛗓Ⴉ; 7.𞤮񛗓Ⴉ; [B1, B2, B3, P1, V6]; 7.xn--hnd3403vv1vv; ; ; # 7.𞤮Ⴉ
+󠄀7.𞤌񛗓Ⴉ; 7.𞤮񛗓Ⴉ; [B1, B2, B3, P1, V6]; 7.xn--hnd3403vv1vv; ; ; # 7.𞤮Ⴉ
+󠄀7.𞤮񛗓ⴉ; 7.𞤮񛗓ⴉ; [B1, B2, B3, P1, V6]; 7.xn--0kjz523lv1vv; ; ; # 7.𞤮ⴉ
+7.xn--0kjz523lv1vv; 7.𞤮񛗓ⴉ; [B1, B2, B3, V6]; 7.xn--0kjz523lv1vv; ; ; # 7.𞤮ⴉ
+7.xn--hnd3403vv1vv; 7.𞤮񛗓Ⴉ; [B1, B2, B3, V6]; 7.xn--hnd3403vv1vv; ; ; # 7.𞤮Ⴉ
+󠄀𝟕.𞤮񛗓ⴉ; 7.𞤮񛗓ⴉ; [B1, B2, B3, P1, V6]; 7.xn--0kjz523lv1vv; ; ; # 7.𞤮ⴉ
+󠄀7.𞤌񛗓ⴉ; 7.𞤮񛗓ⴉ; [B1, B2, B3, P1, V6]; 7.xn--0kjz523lv1vv; ; ; # 7.𞤮ⴉ
+󠄀𝟕.𞤌񛗓ⴉ; 7.𞤮񛗓ⴉ; [B1, B2, B3, P1, V6]; 7.xn--0kjz523lv1vv; ; ; # 7.𞤮ⴉ
+閃9𝩍。Ↄ٩ࢱ୍; 閃9𝩍.Ↄ٩ࢱ୍; [B5, B6, P1, V6]; xn--9-3j6dk517f.xn--iib28ij3c0t9a; ; ; # 閃9𝩍.Ↄ٩ࢱ୍
+閃9𝩍。ↄ٩ࢱ୍; 閃9𝩍.ↄ٩ࢱ୍; [B5, B6]; xn--9-3j6dk517f.xn--iib28ij3c4t9a; ; ; # 閃9𝩍.ↄ٩ࢱ୍
+xn--9-3j6dk517f.xn--iib28ij3c4t9a; 閃9𝩍.ↄ٩ࢱ୍; [B5, B6]; xn--9-3j6dk517f.xn--iib28ij3c4t9a; ; ; # 閃9𝩍.ↄ٩ࢱ୍
+xn--9-3j6dk517f.xn--iib28ij3c0t9a; 閃9𝩍.Ↄ٩ࢱ୍; [B5, B6, V6]; xn--9-3j6dk517f.xn--iib28ij3c0t9a; ; ; # 閃9𝩍.Ↄ٩ࢱ୍
+꫶ᢏฺ2.𐋢݅ྟ︒; ꫶ᢏฺ2.𐋢݅ྟ︒; [P1, V5, V6]; xn--2-2zf840fk16m.xn--sob093bj62sz9d; ; ; # ꫶ᢏฺ2.𐋢݅ྟ︒
+꫶ᢏฺ2.𐋢݅ྟ。; ꫶ᢏฺ2.𐋢݅ྟ.; [V5]; xn--2-2zf840fk16m.xn--sob093b2m7s.; ; ; # ꫶ᢏฺ2.𐋢݅ྟ.
+xn--2-2zf840fk16m.xn--sob093b2m7s.; ꫶ᢏฺ2.𐋢݅ྟ.; [V5]; xn--2-2zf840fk16m.xn--sob093b2m7s.; ; ; # ꫶ᢏฺ2.𐋢݅ྟ.
+xn--2-2zf840fk16m.xn--sob093bj62sz9d; ꫶ᢏฺ2.𐋢݅ྟ︒; [V5, V6]; xn--2-2zf840fk16m.xn--sob093bj62sz9d; ; ; # ꫶ᢏฺ2.𐋢݅ྟ︒
+󅴧。≠-󠙄⾛; 󅴧.≠-󠙄走; [P1, V6]; xn--gm57d.xn----tfo4949b3664m; ; ; # .≠-走
+󅴧。≠-󠙄⾛; 󅴧.≠-󠙄走; [P1, V6]; xn--gm57d.xn----tfo4949b3664m; ; ; # .≠-走
+󅴧。≠-󠙄走; 󅴧.≠-󠙄走; [P1, V6]; xn--gm57d.xn----tfo4949b3664m; ; ; # .≠-走
+󅴧。≠-󠙄走; 󅴧.≠-󠙄走; [P1, V6]; xn--gm57d.xn----tfo4949b3664m; ; ; # .≠-走
+xn--gm57d.xn----tfo4949b3664m; 󅴧.≠-󠙄走; [V6]; xn--gm57d.xn----tfo4949b3664m; ; ; # .≠-走
+ݮ؄Ⴊ。-≠ᅠ; ݮ؄Ⴊ.-≠ᅠ; [B1, B2, B3, P1, V3, V6]; xn--mfb73ex6r.xn----5bh589i; ; ; # ݮႪ.-≠
+ݮ؄Ⴊ。-≠ᅠ; ݮ؄Ⴊ.-≠ᅠ; [B1, B2, B3, P1, V3, V6]; xn--mfb73ex6r.xn----5bh589i; ; ; # ݮႪ.-≠
+ݮ؄ⴊ。-≠ᅠ; ݮ؄ⴊ.-≠ᅠ; [B1, B2, B3, P1, V3, V6]; xn--mfb73ek93f.xn----5bh589i; ; ; # ݮⴊ.-≠
+ݮ؄ⴊ。-≠ᅠ; ݮ؄ⴊ.-≠ᅠ; [B1, B2, B3, P1, V3, V6]; xn--mfb73ek93f.xn----5bh589i; ; ; # ݮⴊ.-≠
+xn--mfb73ek93f.xn----5bh589i; ݮ؄ⴊ.-≠ᅠ; [B1, B2, B3, V3, V6]; xn--mfb73ek93f.xn----5bh589i; ; ; # ݮⴊ.-≠
+xn--mfb73ex6r.xn----5bh589i; ݮ؄Ⴊ.-≠ᅠ; [B1, B2, B3, V3, V6]; xn--mfb73ex6r.xn----5bh589i; ; ; # ݮႪ.-≠
+ﭏ𐹧𝟒≯。‌; אל𐹧4≯.‌; [B1, B3, B4, C1, P1, V6]; xn--4-zhc0by36txt0w.xn--0ug; ; xn--4-zhc0by36txt0w.; [B3, B4, P1, V6] # אל𐹧4≯.
+ﭏ𐹧𝟒≯。‌; אל𐹧4≯.‌; [B1, B3, B4, C1, P1, V6]; xn--4-zhc0by36txt0w.xn--0ug; ; xn--4-zhc0by36txt0w.; [B3, B4, P1, V6] # אל𐹧4≯.
+אל𐹧4≯。‌; אל𐹧4≯.‌; [B1, B3, B4, C1, P1, V6]; xn--4-zhc0by36txt0w.xn--0ug; ; xn--4-zhc0by36txt0w.; [B3, B4, P1, V6] # אל𐹧4≯.
+אל𐹧4≯。‌; אל𐹧4≯.‌; [B1, B3, B4, C1, P1, V6]; xn--4-zhc0by36txt0w.xn--0ug; ; xn--4-zhc0by36txt0w.; [B3, B4, P1, V6] # אל𐹧4≯.
+xn--4-zhc0by36txt0w.; אל𐹧4≯.; [B3, B4, V6]; xn--4-zhc0by36txt0w.; ; ; # אל𐹧4≯.
+xn--4-zhc0by36txt0w.xn--0ug; אל𐹧4≯.‌; [B1, B3, B4, C1, V6]; xn--4-zhc0by36txt0w.xn--0ug; ; ; # אל𐹧4≯.
+𝟎。甯; 0.甯; ; 0.xn--qny; ; ; # 0.甯
+0。甯; 0.甯; ; 0.xn--qny; ; ; # 0.甯
+0.xn--qny; 0.甯; ; 0.xn--qny; ; ; # 0.甯
+0.甯; ; ; 0.xn--qny; ; ; # 0.甯
+-⾆.꫶; -舌.꫶; [V3, V5]; xn----ef8c.xn--2v9a; ; ; # -舌.꫶
+-舌.꫶; ; [V3, V5]; xn----ef8c.xn--2v9a; ; ; # -舌.꫶
+xn----ef8c.xn--2v9a; -舌.꫶; [V3, V5]; xn----ef8c.xn--2v9a; ; ; # -舌.꫶
+-。ᢘ; -.ᢘ; [V3]; -.xn--ibf; ; ; # -.ᢘ
+-。ᢘ; -.ᢘ; [V3]; -.xn--ibf; ; ; # -.ᢘ
+-.xn--ibf; -.ᢘ; [V3]; -.xn--ibf; ; ; # -.ᢘ
+🂴Ⴋ.≮; ; [P1, V6]; xn--jnd1986v.xn--gdh; ; ; # 🂴Ⴋ.≮
+🂴Ⴋ.≮; 🂴Ⴋ.≮; [P1, V6]; xn--jnd1986v.xn--gdh; ; ; # 🂴Ⴋ.≮
+🂴ⴋ.≮; 🂴ⴋ.≮; [P1, V6]; xn--2kj7565l.xn--gdh; ; ; # 🂴ⴋ.≮
+🂴ⴋ.≮; ; [P1, V6]; xn--2kj7565l.xn--gdh; ; ; # 🂴ⴋ.≮
+xn--2kj7565l.xn--gdh; 🂴ⴋ.≮; [V6]; xn--2kj7565l.xn--gdh; ; ; # 🂴ⴋ.≮
+xn--jnd1986v.xn--gdh; 🂴Ⴋ.≮; [V6]; xn--jnd1986v.xn--gdh; ; ; # 🂴Ⴋ.≮
+璼𝨭。‌󠇟; 璼𝨭.‌; [C1]; xn--gky8837e.xn--0ug; ; xn--gky8837e.; [] # 璼𝨭.
+璼𝨭。‌󠇟; 璼𝨭.‌; [C1]; xn--gky8837e.xn--0ug; ; xn--gky8837e.; [] # 璼𝨭.
+xn--gky8837e.; 璼𝨭.; ; xn--gky8837e.; ; ; # 璼𝨭.
+璼𝨭.; ; ; xn--gky8837e.; ; ; # 璼𝨭.
+xn--gky8837e.xn--0ug; 璼𝨭.‌; [C1]; xn--gky8837e.xn--0ug; ; ; # 璼𝨭.
+٩8񂍽。-5🞥; ٩8񂍽.-5🞥; [B1, P1, V3, V6]; xn--8-qqc97891f.xn---5-rp92a; ; ; # ٩8.-5🞥
+٩8񂍽。-5🞥; ٩8񂍽.-5🞥; [B1, P1, V3, V6]; xn--8-qqc97891f.xn---5-rp92a; ; ; # ٩8.-5🞥
+xn--8-qqc97891f.xn---5-rp92a; ٩8񂍽.-5🞥; [B1, V3, V6]; xn--8-qqc97891f.xn---5-rp92a; ; ; # ٩8.-5🞥
+‌.‌; ; [C1]; xn--0ug.xn--0ug; ; .; [A4_2] # .
+xn--0ug.xn--0ug; ‌.‌; [C1]; xn--0ug.xn--0ug; ; ; # .
+‍튛.ܖ; ; [B1, C2]; xn--1ug4441e.xn--gnb; ; xn--157b.xn--gnb; [] # 튛.ܖ
+‍튛.ܖ; ‍튛.ܖ; [B1, C2]; xn--1ug4441e.xn--gnb; ; xn--157b.xn--gnb; [] # 튛.ܖ
+xn--157b.xn--gnb; 튛.ܖ; ; xn--157b.xn--gnb; ; ; # 튛.ܖ
+튛.ܖ; ; ; xn--157b.xn--gnb; ; ; # 튛.ܖ
+튛.ܖ; 튛.ܖ; ; xn--157b.xn--gnb; ; ; # 튛.ܖ
+xn--1ug4441e.xn--gnb; ‍튛.ܖ; [B1, C2]; xn--1ug4441e.xn--gnb; ; ; # 튛.ܖ
+ᡋ𐹰𞽳.ݹⴞ; ; [B2, B3, B5, B6, P1, V6]; xn--b8e0417jocvf.xn--9pb883q; ; ; # ᡋ𐹰.ݹⴞ
+ᡋ𐹰𞽳.ݹႾ; ; [B2, B3, B5, B6, P1, V6]; xn--b8e0417jocvf.xn--9pb068b; ; ; # ᡋ𐹰.ݹႾ
+xn--b8e0417jocvf.xn--9pb068b; ᡋ𐹰𞽳.ݹႾ; [B2, B3, B5, B6, V6]; xn--b8e0417jocvf.xn--9pb068b; ; ; # ᡋ𐹰.ݹႾ
+xn--b8e0417jocvf.xn--9pb883q; ᡋ𐹰𞽳.ݹⴞ; [B2, B3, B5, B6, V6]; xn--b8e0417jocvf.xn--9pb883q; ; ; # ᡋ𐹰.ݹⴞ
+𐷃٢𝅻𝟧.𐹮𐹬Ⴇ; 𐷃٢𝅻5.𐹮𐹬Ⴇ; [B1, B4, P1, V6]; xn--5-cqc8833rhv7f.xn--fnd3401kfa; ; ; # ٢𝅻5.𐹮𐹬Ⴇ
+𐷃٢𝅻5.𐹮𐹬Ⴇ; ; [B1, B4, P1, V6]; xn--5-cqc8833rhv7f.xn--fnd3401kfa; ; ; # ٢𝅻5.𐹮𐹬Ⴇ
+𐷃٢𝅻5.𐹮𐹬ⴇ; ; [B1, B4, P1, V6]; xn--5-cqc8833rhv7f.xn--ykjz523efa; ; ; # ٢𝅻5.𐹮𐹬ⴇ
+xn--5-cqc8833rhv7f.xn--ykjz523efa; 𐷃٢𝅻5.𐹮𐹬ⴇ; [B1, B4, V6]; xn--5-cqc8833rhv7f.xn--ykjz523efa; ; ; # ٢𝅻5.𐹮𐹬ⴇ
+xn--5-cqc8833rhv7f.xn--fnd3401kfa; 𐷃٢𝅻5.𐹮𐹬Ⴇ; [B1, B4, V6]; xn--5-cqc8833rhv7f.xn--fnd3401kfa; ; ; # ٢𝅻5.𐹮𐹬Ⴇ
+𐷃٢𝅻𝟧.𐹮𐹬ⴇ; 𐷃٢𝅻5.𐹮𐹬ⴇ; [B1, B4, P1, V6]; xn--5-cqc8833rhv7f.xn--ykjz523efa; ; ; # ٢𝅻5.𐹮𐹬ⴇ
+Ⴗ.𑄴ׂꦷ񘃨; Ⴗ.𑄴ׂꦷ񘃨; [P1, V5, V6]; xn--vnd.xn--qdb0605f14ycrms3c; ; ; # Ⴗ.𑄴ׂꦷ
+Ⴗ.𑄴ׂꦷ񘃨; Ⴗ.𑄴ׂꦷ񘃨; [P1, V5, V6]; xn--vnd.xn--qdb0605f14ycrms3c; ; ; # Ⴗ.𑄴ׂꦷ
+Ⴗ.𑄴ׂꦷ񘃨; ; [P1, V5, V6]; xn--vnd.xn--qdb0605f14ycrms3c; ; ; # Ⴗ.𑄴ׂꦷ
+ⴗ.𑄴ׂꦷ񘃨; ; [P1, V5, V6]; xn--flj.xn--qdb0605f14ycrms3c; ; ; # ⴗ.𑄴ׂꦷ
+xn--flj.xn--qdb0605f14ycrms3c; ⴗ.𑄴ׂꦷ񘃨; [V5, V6]; xn--flj.xn--qdb0605f14ycrms3c; ; ; # ⴗ.𑄴ׂꦷ
+xn--vnd.xn--qdb0605f14ycrms3c; Ⴗ.𑄴ׂꦷ񘃨; [V5, V6]; xn--vnd.xn--qdb0605f14ycrms3c; ; ; # Ⴗ.𑄴ׂꦷ
+ⴗ.𑄴ׂꦷ񘃨; ⴗ.𑄴ׂꦷ񘃨; [P1, V5, V6]; xn--flj.xn--qdb0605f14ycrms3c; ; ; # ⴗ.𑄴ׂꦷ
+ⴗ.𑄴ׂꦷ񘃨; ⴗ.𑄴ׂꦷ񘃨; [P1, V5, V6]; xn--flj.xn--qdb0605f14ycrms3c; ; ; # ⴗ.𑄴ׂꦷ
+𝟾𾤘.򇕛٬; 8𾤘.򇕛٬; [B1, B5, B6, P1, V6]; xn--8-kh23b.xn--lib78461i; ; ; # 8.٬
+8𾤘.򇕛٬; ; [B1, B5, B6, P1, V6]; xn--8-kh23b.xn--lib78461i; ; ; # 8.٬
+xn--8-kh23b.xn--lib78461i; 8𾤘.򇕛٬; [B1, B5, B6, V6]; xn--8-kh23b.xn--lib78461i; ; ; # 8.٬
+⒈酫︒。ࣖ; ⒈酫︒.ࣖ; [P1, V5, V6]; xn--tsh4490bfe8c.xn--8zb; ; ; # ⒈酫︒.ࣖ
+1.酫。。ࣖ; 1.酫..ࣖ; [V5, X4_2]; 1.xn--8j4a..xn--8zb; [V5, A4_2]; ; # 1.酫..ࣖ
+1.xn--8j4a..xn--8zb; 1.酫..ࣖ; [V5, X4_2]; 1.xn--8j4a..xn--8zb; [V5, A4_2]; ; # 1.酫..ࣖ
+xn--tsh4490bfe8c.xn--8zb; ⒈酫︒.ࣖ; [V5, V6]; xn--tsh4490bfe8c.xn--8zb; ; ; # ⒈酫︒.ࣖ
+ⷣ‌≮ᩫ.‌ฺ; ; [C1, P1, V5, V6]; xn--uof63xk4bf3s.xn--o4c732g; ; xn--uof548an0j.xn--o4c; [P1, V5, V6] # ⷣ≮ᩫ.ฺ
+ⷣ‌≮ᩫ.‌ฺ; ⷣ‌≮ᩫ.‌ฺ; [C1, P1, V5, V6]; xn--uof63xk4bf3s.xn--o4c732g; ; xn--uof548an0j.xn--o4c; [P1, V5, V6] # ⷣ≮ᩫ.ฺ
+xn--uof548an0j.xn--o4c; ⷣ≮ᩫ.ฺ; [V5, V6]; xn--uof548an0j.xn--o4c; ; ; # ⷣ≮ᩫ.ฺ
+xn--uof63xk4bf3s.xn--o4c732g; ⷣ‌≮ᩫ.‌ฺ; [C1, V5, V6]; xn--uof63xk4bf3s.xn--o4c732g; ; ; # ⷣ≮ᩫ.ฺ
+𞪂。ႷႽ¹‍; 𞪂.ႷႽ1‍; [B6, C2, P1, V6]; xn--co6h.xn--1-h1gs597m; ; xn--co6h.xn--1-h1gs; [P1, V6] # .ႷႽ1
+𞪂。ႷႽ1‍; 𞪂.ႷႽ1‍; [B6, C2, P1, V6]; xn--co6h.xn--1-h1gs597m; ; xn--co6h.xn--1-h1gs; [P1, V6] # .ႷႽ1
+𞪂。ⴗⴝ1‍; 𞪂.ⴗⴝ1‍; [B6, C2, P1, V6]; xn--co6h.xn--1-ugn710dya; ; xn--co6h.xn--1-kwssa; [P1, V6] # .ⴗⴝ1
+𞪂。Ⴗⴝ1‍; 𞪂.Ⴗⴝ1‍; [B6, C2, P1, V6]; xn--co6h.xn--1-h1g398iewm; ; xn--co6h.xn--1-h1g429s; [P1, V6] # .Ⴗⴝ1
+xn--co6h.xn--1-h1g429s; 𞪂.Ⴗⴝ1; [V6]; xn--co6h.xn--1-h1g429s; ; ; # .Ⴗⴝ1
+xn--co6h.xn--1-h1g398iewm; 𞪂.Ⴗⴝ1‍; [B6, C2, V6]; xn--co6h.xn--1-h1g398iewm; ; ; # .Ⴗⴝ1
+xn--co6h.xn--1-kwssa; 𞪂.ⴗⴝ1; [V6]; xn--co6h.xn--1-kwssa; ; ; # .ⴗⴝ1
+xn--co6h.xn--1-ugn710dya; 𞪂.ⴗⴝ1‍; [B6, C2, V6]; xn--co6h.xn--1-ugn710dya; ; ; # .ⴗⴝ1
+xn--co6h.xn--1-h1gs; 𞪂.ႷႽ1; [V6]; xn--co6h.xn--1-h1gs; ; ; # .ႷႽ1
+xn--co6h.xn--1-h1gs597m; 𞪂.ႷႽ1‍; [B6, C2, V6]; xn--co6h.xn--1-h1gs597m; ; ; # .ႷႽ1
+𞪂。ⴗⴝ¹‍; 𞪂.ⴗⴝ1‍; [B6, C2, P1, V6]; xn--co6h.xn--1-ugn710dya; ; xn--co6h.xn--1-kwssa; [P1, V6] # .ⴗⴝ1
+𞪂。Ⴗⴝ¹‍; 𞪂.Ⴗⴝ1‍; [B6, C2, P1, V6]; xn--co6h.xn--1-h1g398iewm; ; xn--co6h.xn--1-h1g429s; [P1, V6] # .Ⴗⴝ1
+𑄴𑄳2.𞳿󠀳-; ; [B1, B3, P1, V3, V5, V6]; xn--2-h87ic.xn----s39r33498d; ; ; # 𑄴𑄳2.-
+xn--2-h87ic.xn----s39r33498d; 𑄴𑄳2.𞳿󠀳-; [B1, B3, V3, V5, V6]; xn--2-h87ic.xn----s39r33498d; ; ; # 𑄴𑄳2.-
+󠕲󟶶٥。񀁁𑄳𞤃ܐ; 󠕲󟶶٥.񀁁𑄳𞤥ܐ; [B1, B5, B6, P1, V6]; xn--eib57614py3ea.xn--9mb5737kqnpfzkwr; ; ; # ٥.𑄳𞤥ܐ
+󠕲󟶶٥。񀁁𑄳𞤃ܐ; 󠕲󟶶٥.񀁁𑄳𞤥ܐ; [B1, B5, B6, P1, V6]; xn--eib57614py3ea.xn--9mb5737kqnpfzkwr; ; ; # ٥.𑄳𞤥ܐ
+󠕲󟶶٥。񀁁𑄳𞤥ܐ; 󠕲󟶶٥.񀁁𑄳𞤥ܐ; [B1, B5, B6, P1, V6]; xn--eib57614py3ea.xn--9mb5737kqnpfzkwr; ; ; # ٥.𑄳𞤥ܐ
+xn--eib57614py3ea.xn--9mb5737kqnpfzkwr; 󠕲󟶶٥.񀁁𑄳𞤥ܐ; [B1, B5, B6, V6]; xn--eib57614py3ea.xn--9mb5737kqnpfzkwr; ; ; # ٥.𑄳𞤥ܐ
+󠕲󟶶٥。񀁁𑄳𞤥ܐ; 󠕲󟶶٥.񀁁𑄳𞤥ܐ; [B1, B5, B6, P1, V6]; xn--eib57614py3ea.xn--9mb5737kqnpfzkwr; ; ; # ٥.𑄳𞤥ܐ
+ܠ򲠽𐹢ុ。ςᢈ🝭‌; ܠ򲠽𐹢ុ.ςᢈ🝭‌; [B2, B6, C1, P1, V6]; xn--qnb616fis0qzt36f.xn--3xa057h6ofgl44c; ; xn--qnb616fis0qzt36f.xn--4xa847hli46a; [B2, B6, P1, V6] # ܠ𐹢ុ.ςᢈ🝭
+ܠ򲠽𐹢ុ。ςᢈ🝭‌; ܠ򲠽𐹢ុ.ςᢈ🝭‌; [B2, B6, C1, P1, V6]; xn--qnb616fis0qzt36f.xn--3xa057h6ofgl44c; ; xn--qnb616fis0qzt36f.xn--4xa847hli46a; [B2, B6, P1, V6] # ܠ𐹢ុ.ςᢈ🝭
+ܠ򲠽𐹢ុ。Σᢈ🝭‌; ܠ򲠽𐹢ុ.σᢈ🝭‌; [B2, B6, C1, P1, V6]; xn--qnb616fis0qzt36f.xn--4xa847h6ofgl44c; ; xn--qnb616fis0qzt36f.xn--4xa847hli46a; [B2, B6, P1, V6] # ܠ𐹢ុ.σᢈ🝭
+ܠ򲠽𐹢ុ。σᢈ🝭‌; ܠ򲠽𐹢ុ.σᢈ🝭‌; [B2, B6, C1, P1, V6]; xn--qnb616fis0qzt36f.xn--4xa847h6ofgl44c; ; xn--qnb616fis0qzt36f.xn--4xa847hli46a; [B2, B6, P1, V6] # ܠ𐹢ុ.σᢈ🝭
+xn--qnb616fis0qzt36f.xn--4xa847hli46a; ܠ򲠽𐹢ុ.σᢈ🝭; [B2, B6, V6]; xn--qnb616fis0qzt36f.xn--4xa847hli46a; ; ; # ܠ𐹢ុ.σᢈ🝭
+xn--qnb616fis0qzt36f.xn--4xa847h6ofgl44c; ܠ򲠽𐹢ុ.σᢈ🝭‌; [B2, B6, C1, V6]; xn--qnb616fis0qzt36f.xn--4xa847h6ofgl44c; ; ; # ܠ𐹢ុ.σᢈ🝭
+xn--qnb616fis0qzt36f.xn--3xa057h6ofgl44c; ܠ򲠽𐹢ុ.ςᢈ🝭‌; [B2, B6, C1, V6]; xn--qnb616fis0qzt36f.xn--3xa057h6ofgl44c; ; ; # ܠ𐹢ុ.ςᢈ🝭
+ܠ򲠽𐹢ុ。Σᢈ🝭‌; ܠ򲠽𐹢ុ.σᢈ🝭‌; [B2, B6, C1, P1, V6]; xn--qnb616fis0qzt36f.xn--4xa847h6ofgl44c; ; xn--qnb616fis0qzt36f.xn--4xa847hli46a; [B2, B6, P1, V6] # ܠ𐹢ុ.σᢈ🝭
+ܠ򲠽𐹢ុ。σᢈ🝭‌; ܠ򲠽𐹢ុ.σᢈ🝭‌; [B2, B6, C1, P1, V6]; xn--qnb616fis0qzt36f.xn--4xa847h6ofgl44c; ; xn--qnb616fis0qzt36f.xn--4xa847hli46a; [B2, B6, P1, V6] # ܠ𐹢ុ.σᢈ🝭
+‍--≮。𐹧; ‍--≮.𐹧; [B1, C2, P1, V6]; xn-----l1tz1k.xn--fo0d; ; xn-----ujv.xn--fo0d; [B1, P1, V3, V6] # --≮.𐹧
+‍--≮。𐹧; ‍--≮.𐹧; [B1, C2, P1, V6]; xn-----l1tz1k.xn--fo0d; ; xn-----ujv.xn--fo0d; [B1, P1, V3, V6] # --≮.𐹧
+xn-----ujv.xn--fo0d; --≮.𐹧; [B1, V3, V6]; xn-----ujv.xn--fo0d; ; ; # --≮.𐹧
+xn-----l1tz1k.xn--fo0d; ‍--≮.𐹧; [B1, C2, V6]; xn-----l1tz1k.xn--fo0d; ; ; # --≮.𐹧
+꠆。𻚏ྰ⒕; ꠆.𻚏ྰ⒕; [P1, V5, V6]; xn--l98a.xn--dgd218hhp28d; ; ; # ꠆.ྰ⒕
+꠆。𻚏ྰ14.; ꠆.𻚏ྰ14.; [P1, V5, V6]; xn--l98a.xn--14-jsj57880f.; ; ; # ꠆.ྰ14.
+xn--l98a.xn--14-jsj57880f.; ꠆.𻚏ྰ14.; [V5, V6]; xn--l98a.xn--14-jsj57880f.; ; ; # ꠆.ྰ14.
+xn--l98a.xn--dgd218hhp28d; ꠆.𻚏ྰ⒕; [V5, V6]; xn--l98a.xn--dgd218hhp28d; ; ; # ꠆.ྰ⒕
+򮉂ڼ.𑆺٩; 򮉂ڼ.𑆺٩; [B1, B5, B6, P1, V5, V6]; xn--vkb92243l.xn--iib9797k; ; ; # ڼ.𑆺٩
+򮉂ڼ.𑆺٩; ; [B1, B5, B6, P1, V5, V6]; xn--vkb92243l.xn--iib9797k; ; ; # ڼ.𑆺٩
+xn--vkb92243l.xn--iib9797k; 򮉂ڼ.𑆺٩; [B1, B5, B6, V5, V6]; xn--vkb92243l.xn--iib9797k; ; ; # ڼ.𑆺٩
+󠁎ې-。𞤴; 󠁎ې-.𞤴; [B1, P1, V3, V6]; xn----mwc72685y.xn--se6h; ; ; # ې-.𞤴
+󠁎ې-。𞤒; 󠁎ې-.𞤴; [B1, P1, V3, V6]; xn----mwc72685y.xn--se6h; ; ; # ې-.𞤴
+xn----mwc72685y.xn--se6h; 󠁎ې-.𞤴; [B1, V3, V6]; xn----mwc72685y.xn--se6h; ; ; # ې-.𞤴
+𝟠4󠇗𝈻.‍𐋵⛧‍; 84𝈻.‍𐋵⛧‍; [C2]; xn--84-s850a.xn--1uga573cfq1w; ; xn--84-s850a.xn--59h6326e; [] # 84𝈻.𐋵⛧
+84󠇗𝈻.‍𐋵⛧‍; 84𝈻.‍𐋵⛧‍; [C2]; xn--84-s850a.xn--1uga573cfq1w; ; xn--84-s850a.xn--59h6326e; [] # 84𝈻.𐋵⛧
+xn--84-s850a.xn--59h6326e; 84𝈻.𐋵⛧; ; xn--84-s850a.xn--59h6326e; ; ; # 84𝈻.𐋵⛧
+84𝈻.𐋵⛧; ; ; xn--84-s850a.xn--59h6326e; ; ; # 84𝈻.𐋵⛧
+xn--84-s850a.xn--1uga573cfq1w; 84𝈻.‍𐋵⛧‍; [C2]; xn--84-s850a.xn--1uga573cfq1w; ; ; # 84𝈻.𐋵⛧
+-؁。ᡪ; -؁.ᡪ; [B1, P1, V3, V6]; xn----tkc.xn--68e; ; ; # -.ᡪ
+-؁。ᡪ; -؁.ᡪ; [B1, P1, V3, V6]; xn----tkc.xn--68e; ; ; # -.ᡪ
+xn----tkc.xn--68e; -؁.ᡪ; [B1, V3, V6]; xn----tkc.xn--68e; ; ; # -.ᡪ
+≮𝟕.謖ß≯; ≮7.謖ß≯; [P1, V6]; xn--7-mgo.xn--zca892oly5e; ; xn--7-mgo.xn--ss-xjvv174c; # ≮7.謖ß≯
+≮𝟕.謖ß≯; ≮7.謖ß≯; [P1, V6]; xn--7-mgo.xn--zca892oly5e; ; xn--7-mgo.xn--ss-xjvv174c; # ≮7.謖ß≯
+≮7.謖ß≯; ; [P1, V6]; xn--7-mgo.xn--zca892oly5e; ; xn--7-mgo.xn--ss-xjvv174c; # ≮7.謖ß≯
+≮7.謖ß≯; ≮7.謖ß≯; [P1, V6]; xn--7-mgo.xn--zca892oly5e; ; xn--7-mgo.xn--ss-xjvv174c; # ≮7.謖ß≯
+≮7.謖SS≯; ≮7.謖ss≯; [P1, V6]; xn--7-mgo.xn--ss-xjvv174c; ; ; # ≮7.謖ss≯
+≮7.謖SS≯; ≮7.謖ss≯; [P1, V6]; xn--7-mgo.xn--ss-xjvv174c; ; ; # ≮7.謖ss≯
+≮7.謖ss≯; ; [P1, V6]; xn--7-mgo.xn--ss-xjvv174c; ; ; # ≮7.謖ss≯
+≮7.謖ss≯; ≮7.謖ss≯; [P1, V6]; xn--7-mgo.xn--ss-xjvv174c; ; ; # ≮7.謖ss≯
+≮7.謖Ss≯; ≮7.謖ss≯; [P1, V6]; xn--7-mgo.xn--ss-xjvv174c; ; ; # ≮7.謖ss≯
+≮7.謖Ss≯; ≮7.謖ss≯; [P1, V6]; xn--7-mgo.xn--ss-xjvv174c; ; ; # ≮7.謖ss≯
+xn--7-mgo.xn--ss-xjvv174c; ≮7.謖ss≯; [V6]; xn--7-mgo.xn--ss-xjvv174c; ; ; # ≮7.謖ss≯
+xn--7-mgo.xn--zca892oly5e; ≮7.謖ß≯; [V6]; xn--7-mgo.xn--zca892oly5e; ; ; # ≮7.謖ß≯
+≮𝟕.謖SS≯; ≮7.謖ss≯; [P1, V6]; xn--7-mgo.xn--ss-xjvv174c; ; ; # ≮7.謖ss≯
+≮𝟕.謖SS≯; ≮7.謖ss≯; [P1, V6]; xn--7-mgo.xn--ss-xjvv174c; ; ; # ≮7.謖ss≯
+≮𝟕.謖ss≯; ≮7.謖ss≯; [P1, V6]; xn--7-mgo.xn--ss-xjvv174c; ; ; # ≮7.謖ss≯
+≮𝟕.謖ss≯; ≮7.謖ss≯; [P1, V6]; xn--7-mgo.xn--ss-xjvv174c; ; ; # ≮7.謖ss≯
+≮𝟕.謖Ss≯; ≮7.謖ss≯; [P1, V6]; xn--7-mgo.xn--ss-xjvv174c; ; ; # ≮7.謖ss≯
+≮𝟕.謖Ss≯; ≮7.謖ss≯; [P1, V6]; xn--7-mgo.xn--ss-xjvv174c; ; ; # ≮7.謖ss≯
+朶Ⴉ𞪡.𝨽ࠥ📻-; ; [B1, B5, B6, P1, V3, V5, V6]; xn--hnd7245bd56p.xn----3gd37096apmwa; ; ; # 朶Ⴉ.𝨽ࠥ📻-
+朶ⴉ𞪡.𝨽ࠥ📻-; ; [B1, B5, B6, P1, V3, V5, V6]; xn--0kjz47pd57t.xn----3gd37096apmwa; ; ; # 朶ⴉ.𝨽ࠥ📻-
+xn--0kjz47pd57t.xn----3gd37096apmwa; 朶ⴉ𞪡.𝨽ࠥ📻-; [B1, B5, B6, V3, V5, V6]; xn--0kjz47pd57t.xn----3gd37096apmwa; ; ; # 朶ⴉ.𝨽ࠥ📻-
+xn--hnd7245bd56p.xn----3gd37096apmwa; 朶Ⴉ𞪡.𝨽ࠥ📻-; [B1, B5, B6, V3, V5, V6]; xn--hnd7245bd56p.xn----3gd37096apmwa; ; ; # 朶Ⴉ.𝨽ࠥ📻-
+𐤎。󑿰‌≮‍; 𐤎.󑿰‌≮‍; [B6, C1, C2, P1, V6]; xn--bk9c.xn--0ugc04p2u638c; ; xn--bk9c.xn--gdhx6802k; [B6, P1, V6] # 𐤎.≮
+𐤎。󑿰‌≮‍; 𐤎.󑿰‌≮‍; [B6, C1, C2, P1, V6]; xn--bk9c.xn--0ugc04p2u638c; ; xn--bk9c.xn--gdhx6802k; [B6, P1, V6] # 𐤎.≮
+xn--bk9c.xn--gdhx6802k; 𐤎.󑿰≮; [B6, V6]; xn--bk9c.xn--gdhx6802k; ; ; # 𐤎.≮
+xn--bk9c.xn--0ugc04p2u638c; 𐤎.󑿰‌≮‍; [B6, C1, C2, V6]; xn--bk9c.xn--0ugc04p2u638c; ; ; # 𐤎.≮
+񭜎⒈。‌𝟤; 񭜎⒈.‌2; [C1, P1, V6]; xn--tsh94183d.xn--2-rgn; ; xn--tsh94183d.2; [P1, V6] # ⒈.2
+񭜎1.。‌2; 񭜎1..‌2; [C1, P1, V6, X4_2]; xn--1-ex54e..xn--2-rgn; [C1, P1, V6, A4_2]; xn--1-ex54e..2; [P1, V6, A4_2] # 1..2
+xn--1-ex54e..2; 񭜎1..2; [V6, X4_2]; xn--1-ex54e..2; [V6, A4_2]; ; # 1..2
+xn--1-ex54e..xn--2-rgn; 񭜎1..‌2; [C1, V6, X4_2]; xn--1-ex54e..xn--2-rgn; [C1, V6, A4_2]; ; # 1..2
+xn--tsh94183d.2; 񭜎⒈.2; [V6]; xn--tsh94183d.2; ; ; # ⒈.2
+xn--tsh94183d.xn--2-rgn; 񭜎⒈.‌2; [C1, V6]; xn--tsh94183d.xn--2-rgn; ; ; # ⒈.2
+󠟊𐹤‍.𐹳󙄵𐹶; 󠟊𐹤‍.𐹳󙄵𐹶; [B1, C2, P1, V6]; xn--1ugy994g7k93g.xn--ro0dga22807v; ; xn--co0d98977c.xn--ro0dga22807v; [B1, P1, V6] # 𐹤.𐹳𐹶
+󠟊𐹤‍.𐹳󙄵𐹶; ; [B1, C2, P1, V6]; xn--1ugy994g7k93g.xn--ro0dga22807v; ; xn--co0d98977c.xn--ro0dga22807v; [B1, P1, V6] # 𐹤.𐹳𐹶
+xn--co0d98977c.xn--ro0dga22807v; 󠟊𐹤.𐹳󙄵𐹶; [B1, V6]; xn--co0d98977c.xn--ro0dga22807v; ; ; # 𐹤.𐹳𐹶
+xn--1ugy994g7k93g.xn--ro0dga22807v; 󠟊𐹤‍.𐹳󙄵𐹶; [B1, C2, V6]; xn--1ugy994g7k93g.xn--ro0dga22807v; ; ; # 𐹤.𐹳𐹶
+𞤴𐹻𑓂𐭝.्︇􉛯; 𞤴𐹻𑓂𐭝.्􉛯; [B1, P1, V5, V6]; xn--609c96c09grp2w.xn--n3b28708s; ; ; # 𞤴𐹻𑓂𐭝.्
+𞤴𐹻𑓂𐭝.्︇􉛯; 𞤴𐹻𑓂𐭝.्􉛯; [B1, P1, V5, V6]; xn--609c96c09grp2w.xn--n3b28708s; ; ; # 𞤴𐹻𑓂𐭝.्
+𞤒𐹻𑓂𐭝.्︇􉛯; 𞤴𐹻𑓂𐭝.्􉛯; [B1, P1, V5, V6]; xn--609c96c09grp2w.xn--n3b28708s; ; ; # 𞤴𐹻𑓂𐭝.्
+xn--609c96c09grp2w.xn--n3b28708s; 𞤴𐹻𑓂𐭝.्􉛯; [B1, V5, V6]; xn--609c96c09grp2w.xn--n3b28708s; ; ; # 𞤴𐹻𑓂𐭝.्
+𞤒𐹻𑓂𐭝.्︇􉛯; 𞤴𐹻𑓂𐭝.्􉛯; [B1, P1, V5, V6]; xn--609c96c09grp2w.xn--n3b28708s; ; ; # 𞤴𐹻𑓂𐭝.्
+٨。𐹠𐹽񗮶; ٨.𐹠𐹽񗮶; [B1, P1, V6]; xn--hib.xn--7n0d2bu9196b; ; ; # ٨.𐹠𐹽
+٨。𐹠𐹽񗮶; ٨.𐹠𐹽񗮶; [B1, P1, V6]; xn--hib.xn--7n0d2bu9196b; ; ; # ٨.𐹠𐹽
+xn--hib.xn--7n0d2bu9196b; ٨.𐹠𐹽񗮶; [B1, V6]; xn--hib.xn--7n0d2bu9196b; ; ; # ٨.𐹠𐹽
+ᅠ񍀜.8򶾵ڜ; ; [B1, P1, V6]; xn--psd85033d.xn--8-otc61545t; ; ; # .8ڜ
+xn--psd85033d.xn--8-otc61545t; ᅠ񍀜.8򶾵ڜ; [B1, V6]; xn--psd85033d.xn--8-otc61545t; ; ; # .8ڜ
+‍‌󠆪。ß𑓃; ‍‌.ß𑓃; [C1, C2]; xn--0ugb.xn--zca0732l; ; .xn--ss-bh7o; [A4_2] # .ß𑓃
+‍‌󠆪。ß𑓃; ‍‌.ß𑓃; [C1, C2]; xn--0ugb.xn--zca0732l; ; .xn--ss-bh7o; [A4_2] # .ß𑓃
+‍‌󠆪。SS𑓃; ‍‌.ss𑓃; [C1, C2]; xn--0ugb.xn--ss-bh7o; ; .xn--ss-bh7o; [A4_2] # .ss𑓃
+‍‌󠆪。ss𑓃; ‍‌.ss𑓃; [C1, C2]; xn--0ugb.xn--ss-bh7o; ; .xn--ss-bh7o; [A4_2] # .ss𑓃
+‍‌󠆪。Ss𑓃; ‍‌.ss𑓃; [C1, C2]; xn--0ugb.xn--ss-bh7o; ; .xn--ss-bh7o; [A4_2] # .ss𑓃
+.xn--ss-bh7o; .ss𑓃; [X4_2]; .xn--ss-bh7o; [A4_2]; ; # .ss𑓃
+xn--0ugb.xn--ss-bh7o; ‍‌.ss𑓃; [C1, C2]; xn--0ugb.xn--ss-bh7o; ; ; # .ss𑓃
+xn--0ugb.xn--zca0732l; ‍‌.ß𑓃; [C1, C2]; xn--0ugb.xn--zca0732l; ; ; # .ß𑓃
+‍‌󠆪。SS𑓃; ‍‌.ss𑓃; [C1, C2]; xn--0ugb.xn--ss-bh7o; ; .xn--ss-bh7o; [A4_2] # .ss𑓃
+‍‌󠆪。ss𑓃; ‍‌.ss𑓃; [C1, C2]; xn--0ugb.xn--ss-bh7o; ; .xn--ss-bh7o; [A4_2] # .ss𑓃
+‍‌󠆪。Ss𑓃; ‍‌.ss𑓃; [C1, C2]; xn--0ugb.xn--ss-bh7o; ; .xn--ss-bh7o; [A4_2] # .ss𑓃
+xn--ss-bh7o; ss𑓃; ; xn--ss-bh7o; ; ; # ss𑓃
+ss𑓃; ; ; xn--ss-bh7o; ; ; # ss𑓃
+SS𑓃; ss𑓃; ; xn--ss-bh7o; ; ; # ss𑓃
+Ss𑓃; ss𑓃; ; xn--ss-bh7o; ; ; # ss𑓃
+︒‌ヶ䒩.ꡪ; ; [C1, P1, V6]; xn--0ug287dj0or48o.xn--gd9a; ; xn--qekw60dns9k.xn--gd9a; [P1, V6] # ︒ヶ䒩.ꡪ
+。‌ヶ䒩.ꡪ; .‌ヶ䒩.ꡪ; [C1, X4_2]; .xn--0ug287dj0o.xn--gd9a; [C1, A4_2]; .xn--qekw60d.xn--gd9a; [A4_2] # .ヶ䒩.ꡪ
+.xn--qekw60d.xn--gd9a; .ヶ䒩.ꡪ; [X4_2]; .xn--qekw60d.xn--gd9a; [A4_2]; ; # .ヶ䒩.ꡪ
+.xn--0ug287dj0o.xn--gd9a; .‌ヶ䒩.ꡪ; [C1, X4_2]; .xn--0ug287dj0o.xn--gd9a; [C1, A4_2]; ; # .ヶ䒩.ꡪ
+xn--qekw60dns9k.xn--gd9a; ︒ヶ䒩.ꡪ; [V6]; xn--qekw60dns9k.xn--gd9a; ; ; # ︒ヶ䒩.ꡪ
+xn--0ug287dj0or48o.xn--gd9a; ︒‌ヶ䒩.ꡪ; [C1, V6]; xn--0ug287dj0or48o.xn--gd9a; ; ; # ︒ヶ䒩.ꡪ
+xn--qekw60d.xn--gd9a; ヶ䒩.ꡪ; ; xn--qekw60d.xn--gd9a; ; ; # ヶ䒩.ꡪ
+ヶ䒩.ꡪ; ; ; xn--qekw60d.xn--gd9a; ; ; # ヶ䒩.ꡪ
+‌⒈𤮍.󢓋᩠; ; [C1, P1, V6]; xn--0ug88o7471d.xn--jof45148n; ; xn--tshw462r.xn--jof45148n; [P1, V6] # ⒈𤮍.᩠
+‌1.𤮍.󢓋᩠; ; [C1, P1, V6]; xn--1-rgn.xn--4x6j.xn--jof45148n; ; 1.xn--4x6j.xn--jof45148n; [P1, V6] # 1.𤮍.᩠
+1.xn--4x6j.xn--jof45148n; 1.𤮍.󢓋᩠; [V6]; 1.xn--4x6j.xn--jof45148n; ; ; # 1.𤮍.᩠
+xn--1-rgn.xn--4x6j.xn--jof45148n; ‌1.𤮍.󢓋᩠; [C1, V6]; xn--1-rgn.xn--4x6j.xn--jof45148n; ; ; # 1.𤮍.᩠
+xn--tshw462r.xn--jof45148n; ⒈𤮍.󢓋᩠; [V6]; xn--tshw462r.xn--jof45148n; ; ; # ⒈𤮍.᩠
+xn--0ug88o7471d.xn--jof45148n; ‌⒈𤮍.󢓋᩠; [C1, V6]; xn--0ug88o7471d.xn--jof45148n; ; ; # ⒈𤮍.᩠
+⒈‌𐫓󠀺。᩠񤰵‍; ⒈‌𐫓󠀺.᩠񤰵‍; [B1, C1, C2, P1, V5, V6]; xn--0ug78ol75wzcx4i.xn--jof95xex98m; ; xn--tsh4435fk263g.xn--jofz5294e; [B1, P1, V5, V6] # ⒈𐫓.᩠
+1.‌𐫓󠀺。᩠񤰵‍; 1.‌𐫓󠀺.᩠񤰵‍; [B1, C1, C2, P1, V5, V6]; 1.xn--0ug8853gk263g.xn--jof95xex98m; ; 1.xn--8w9c40377c.xn--jofz5294e; [B1, B3, P1, V5, V6] # 1.𐫓.᩠
+1.xn--8w9c40377c.xn--jofz5294e; 1.𐫓󠀺.᩠񤰵; [B1, B3, V5, V6]; 1.xn--8w9c40377c.xn--jofz5294e; ; ; # 1.𐫓.᩠
+1.xn--0ug8853gk263g.xn--jof95xex98m; 1.‌𐫓󠀺.᩠񤰵‍; [B1, C1, C2, V5, V6]; 1.xn--0ug8853gk263g.xn--jof95xex98m; ; ; # 1.𐫓.᩠
+xn--tsh4435fk263g.xn--jofz5294e; ⒈𐫓󠀺.᩠񤰵; [B1, V5, V6]; xn--tsh4435fk263g.xn--jofz5294e; ; ; # ⒈𐫓.᩠
+xn--0ug78ol75wzcx4i.xn--jof95xex98m; ⒈‌𐫓󠀺.᩠񤰵‍; [B1, C1, C2, V5, V6]; xn--0ug78ol75wzcx4i.xn--jof95xex98m; ; ; # ⒈𐫓.᩠
+𝅵。𝟫𞀈䬺⒈; 𝅵.9𞀈䬺⒈; [P1, V6]; xn--3f1h.xn--9-ecp936non25a; ; ; # .9𞀈䬺⒈
+𝅵。9𞀈䬺1.; 𝅵.9𞀈䬺1.; [P1, V6]; xn--3f1h.xn--91-030c1650n.; ; ; # .9𞀈䬺1.
+xn--3f1h.xn--91-030c1650n.; 𝅵.9𞀈䬺1.; [V6]; xn--3f1h.xn--91-030c1650n.; ; ; # .9𞀈䬺1.
+xn--3f1h.xn--9-ecp936non25a; 𝅵.9𞀈䬺⒈; [V6]; xn--3f1h.xn--9-ecp936non25a; ; ; # .9𞀈䬺⒈
+򡼺≯。盚ص; 򡼺≯.盚ص; [B5, B6, P1, V6]; xn--hdh30181h.xn--0gb7878c; ; ; # ≯.盚ص
+򡼺≯。盚ص; 򡼺≯.盚ص; [B5, B6, P1, V6]; xn--hdh30181h.xn--0gb7878c; ; ; # ≯.盚ص
+xn--hdh30181h.xn--0gb7878c; 򡼺≯.盚ص; [B5, B6, V6]; xn--hdh30181h.xn--0gb7878c; ; ; # ≯.盚ص
+-񿰭ִ。-󠁊𐢸≯; -񿰭ִ.-󠁊𐢸≯; [B1, P1, V3, V6]; xn----fgc06667m.xn----pgoy615he5y4i; ; ; # -ִ.-≯
+-񿰭ִ。-󠁊𐢸≯; -񿰭ִ.-󠁊𐢸≯; [B1, P1, V3, V6]; xn----fgc06667m.xn----pgoy615he5y4i; ; ; # -ִ.-≯
+xn----fgc06667m.xn----pgoy615he5y4i; -񿰭ִ.-󠁊𐢸≯; [B1, V3, V6]; xn----fgc06667m.xn----pgoy615he5y4i; ; ; # -ִ.-≯
+󿭓᭄‌੍.𐭛񳋔; 󿭓᭄‌੍.𐭛񳋔; [B2, B3, B6, P1, V6]; xn--ybc997f6rd2n772c.xn--409c6100y; ; xn--ybc997fb5881a.xn--409c6100y; [B2, B3, P1, V6] # ᭄੍.𐭛
+󿭓᭄‌੍.𐭛񳋔; ; [B2, B3, B6, P1, V6]; xn--ybc997f6rd2n772c.xn--409c6100y; ; xn--ybc997fb5881a.xn--409c6100y; [B2, B3, P1, V6] # ᭄੍.𐭛
+xn--ybc997fb5881a.xn--409c6100y; 󿭓᭄੍.𐭛񳋔; [B2, B3, V6]; xn--ybc997fb5881a.xn--409c6100y; ; ; # ᭄੍.𐭛
+xn--ybc997f6rd2n772c.xn--409c6100y; 󿭓᭄‌੍.𐭛񳋔; [B2, B3, B6, V6]; xn--ybc997f6rd2n772c.xn--409c6100y; ; ; # ᭄੍.𐭛
+⾇.ٽ𞤴ڻ‍; 舛.ٽ𞤴ڻ‍; [B3, C2]; xn--8c1a.xn--2ib8jv19e6413b; ; xn--8c1a.xn--2ib8jn539l; [] # 舛.ٽ𞤴ڻ
+舛.ٽ𞤴ڻ‍; ; [B3, C2]; xn--8c1a.xn--2ib8jv19e6413b; ; xn--8c1a.xn--2ib8jn539l; [] # 舛.ٽ𞤴ڻ
+舛.ٽ𞤒ڻ‍; 舛.ٽ𞤴ڻ‍; [B3, C2]; xn--8c1a.xn--2ib8jv19e6413b; ; xn--8c1a.xn--2ib8jn539l; [] # 舛.ٽ𞤴ڻ
+xn--8c1a.xn--2ib8jn539l; 舛.ٽ𞤴ڻ; ; xn--8c1a.xn--2ib8jn539l; ; ; # 舛.ٽ𞤴ڻ
+舛.ٽ𞤴ڻ; ; ; xn--8c1a.xn--2ib8jn539l; ; ; # 舛.ٽ𞤴ڻ
+舛.ٽ𞤒ڻ; 舛.ٽ𞤴ڻ; ; xn--8c1a.xn--2ib8jn539l; ; ; # 舛.ٽ𞤴ڻ
+xn--8c1a.xn--2ib8jv19e6413b; 舛.ٽ𞤴ڻ‍; [B3, C2]; xn--8c1a.xn--2ib8jv19e6413b; ; ; # 舛.ٽ𞤴ڻ
+⾇.ٽ𞤒ڻ‍; 舛.ٽ𞤴ڻ‍; [B3, C2]; xn--8c1a.xn--2ib8jv19e6413b; ; xn--8c1a.xn--2ib8jn539l; [] # 舛.ٽ𞤴ڻ
+4򭆥。ݧ≯; 4򭆥.ݧ≯; [B1, B3, P1, V6]; xn--4-xn17i.xn--rpb459k; ; ; # 4.ݧ≯
+4򭆥。ݧ≯; 4򭆥.ݧ≯; [B1, B3, P1, V6]; xn--4-xn17i.xn--rpb459k; ; ; # 4.ݧ≯
+xn--4-xn17i.xn--rpb459k; 4򭆥.ݧ≯; [B1, B3, V6]; xn--4-xn17i.xn--rpb459k; ; ; # 4.ݧ≯
+𲔏𞫨񺿂硲.ڭ; 𲔏𞫨񺿂硲.ڭ; [B5, P1, V6]; xn--lcz1610fn78gk609a.xn--gkb; ; ; # 硲.ڭ
+𲔏𞫨񺿂硲.ڭ; ; [B5, P1, V6]; xn--lcz1610fn78gk609a.xn--gkb; ; ; # 硲.ڭ
+xn--lcz1610fn78gk609a.xn--gkb; 𲔏𞫨񺿂硲.ڭ; [B5, V6]; xn--lcz1610fn78gk609a.xn--gkb; ; ; # 硲.ڭ
+‌.︈٦Ⴆ℮; ‌.٦Ⴆ℮; [B1, C1, P1, V6]; xn--0ug.xn--fib263c0yn; ; .xn--fib263c0yn; [B1, P1, V6, A4_2] # .٦Ⴆ℮
+‌.︈٦ⴆ℮; ‌.٦ⴆ℮; [B1, C1]; xn--0ug.xn--fib628k4li; ; .xn--fib628k4li; [B1, A4_2] # .٦ⴆ℮
+.xn--fib628k4li; .٦ⴆ℮; [B1, X4_2]; .xn--fib628k4li; [B1, A4_2]; ; # .٦ⴆ℮
+xn--0ug.xn--fib628k4li; ‌.٦ⴆ℮; [B1, C1]; xn--0ug.xn--fib628k4li; ; ; # .٦ⴆ℮
+.xn--fib263c0yn; .٦Ⴆ℮; [B1, V6, X4_2]; .xn--fib263c0yn; [B1, V6, A4_2]; ; # .٦Ⴆ℮
+xn--0ug.xn--fib263c0yn; ‌.٦Ⴆ℮; [B1, C1, V6]; xn--0ug.xn--fib263c0yn; ; ; # .٦Ⴆ℮
+ڣ.്‍Ϟ; ڣ.്‍ϟ; [B1, V5]; xn--5jb.xn--xya149bpvp; ; xn--5jb.xn--xya149b; # ڣ.്ϟ
+ڣ.്‍Ϟ; ڣ.്‍ϟ; [B1, V5]; xn--5jb.xn--xya149bpvp; ; xn--5jb.xn--xya149b; # ڣ.്ϟ
+ڣ.്‍ϟ; ; [B1, V5]; xn--5jb.xn--xya149bpvp; ; xn--5jb.xn--xya149b; # ڣ.്ϟ
+xn--5jb.xn--xya149b; ڣ.്ϟ; [B1, V5]; xn--5jb.xn--xya149b; ; ; # ڣ.്ϟ
+xn--5jb.xn--xya149bpvp; ڣ.്‍ϟ; [B1, V5]; xn--5jb.xn--xya149bpvp; ; ; # ڣ.്ϟ
+ڣ.്‍ϟ; ڣ.്‍ϟ; [B1, V5]; xn--5jb.xn--xya149bpvp; ; xn--5jb.xn--xya149b; # ڣ.്ϟ
+‌𞸇𑘿。أ𐮂-腍; ‌ح𑘿.أ𐮂-腍; [B1, B2, B3, C1]; xn--sgb953kmi8o.xn----qmc5075grs9e; ; xn--sgb4140l.xn----qmc5075grs9e; [B2, B3] # ح𑘿.أ𐮂-腍
+‌𞸇𑘿。أ𐮂-腍; ‌ح𑘿.أ𐮂-腍; [B1, B2, B3, C1]; xn--sgb953kmi8o.xn----qmc5075grs9e; ; xn--sgb4140l.xn----qmc5075grs9e; [B2, B3] # ح𑘿.أ𐮂-腍
+‌ح𑘿。أ𐮂-腍; ‌ح𑘿.أ𐮂-腍; [B1, B2, B3, C1]; xn--sgb953kmi8o.xn----qmc5075grs9e; ; xn--sgb4140l.xn----qmc5075grs9e; [B2, B3] # ح𑘿.أ𐮂-腍
+‌ح𑘿。أ𐮂-腍; ‌ح𑘿.أ𐮂-腍; [B1, B2, B3, C1]; xn--sgb953kmi8o.xn----qmc5075grs9e; ; xn--sgb4140l.xn----qmc5075grs9e; [B2, B3] # ح𑘿.أ𐮂-腍
+xn--sgb4140l.xn----qmc5075grs9e; ح𑘿.أ𐮂-腍; [B2, B3]; xn--sgb4140l.xn----qmc5075grs9e; ; ; # ح𑘿.أ𐮂-腍
+xn--sgb953kmi8o.xn----qmc5075grs9e; ‌ح𑘿.أ𐮂-腍; [B1, B2, B3, C1]; xn--sgb953kmi8o.xn----qmc5075grs9e; ; ; # ح𑘿.أ𐮂-腍
+-򭷙٫纛。𝟛񭤇🄅; -򭷙٫纛.3񭤇🄅; [B1, P1, V3, V6]; xn----vqc8143g0tt4i.xn--3-os1sn476y; ; ; # -٫纛.3🄅
+-򭷙٫纛。3񭤇4,; -򭷙٫纛.3񭤇4,; [B1, P1, V3, V6]; xn----vqc8143g0tt4i.xn--34,-8787l; ; ; # -٫纛.34,
+xn----vqc8143g0tt4i.xn--34,-8787l; -򭷙٫纛.3񭤇4,; [B1, P1, V3, V6]; xn----vqc8143g0tt4i.xn--34,-8787l; ; ; # -٫纛.34,
+xn----vqc8143g0tt4i.xn--3-os1sn476y; -򭷙٫纛.3񭤇🄅; [B1, V3, V6]; xn----vqc8143g0tt4i.xn--3-os1sn476y; ; ; # -٫纛.3🄅
+🔔.Ⴂߌ்𐋮; 🔔.Ⴂߌ்𐋮; [B1, B5, P1, V6]; xn--nv8h.xn--nsb46r83e8112a; ; ; # 🔔.Ⴂߌ்𐋮
+🔔.Ⴂߌ்𐋮; ; [B1, B5, P1, V6]; xn--nv8h.xn--nsb46r83e8112a; ; ; # 🔔.Ⴂߌ்𐋮
+🔔.ⴂߌ்𐋮; ; [B1, B5]; xn--nv8h.xn--nsb46rvz1b222p; ; ; # 🔔.ⴂߌ்𐋮
+xn--nv8h.xn--nsb46rvz1b222p; 🔔.ⴂߌ்𐋮; [B1, B5]; xn--nv8h.xn--nsb46rvz1b222p; ; ; # 🔔.ⴂߌ்𐋮
+xn--nv8h.xn--nsb46r83e8112a; 🔔.Ⴂߌ்𐋮; [B1, B5, V6]; xn--nv8h.xn--nsb46r83e8112a; ; ; # 🔔.Ⴂߌ்𐋮
+🔔.ⴂߌ்𐋮; 🔔.ⴂߌ்𐋮; [B1, B5]; xn--nv8h.xn--nsb46rvz1b222p; ; ; # 🔔.ⴂߌ்𐋮
+軥ڳ.-𖬵; ; [B1, B5, B6, V3]; xn--mkb5480e.xn----6u5m; ; ; # 軥ڳ.-𖬵
+xn--mkb5480e.xn----6u5m; 軥ڳ.-𖬵; [B1, B5, B6, V3]; xn--mkb5480e.xn----6u5m; ; ; # 軥ڳ.-𖬵
+𐹤ߊڶ.𐨂-; ; [B1, V3, V5]; xn--pkb56cn614d.xn----974i; ; ; # 𐹤ߊڶ.𐨂-
+xn--pkb56cn614d.xn----974i; 𐹤ߊڶ.𐨂-; [B1, V3, V5]; xn--pkb56cn614d.xn----974i; ; ; # 𐹤ߊڶ.𐨂-
+-󠅱0。៏᷽톇십; -0.៏᷽톇십; [V3, V5]; -0.xn--r4e872ah77nghm; ; ; # -0.៏᷽톇십
+-󠅱0。៏᷽톇십; -0.៏᷽톇십; [V3, V5]; -0.xn--r4e872ah77nghm; ; ; # -0.៏᷽톇십
+-󠅱0。៏᷽톇십; -0.៏᷽톇십; [V3, V5]; -0.xn--r4e872ah77nghm; ; ; # -0.៏᷽톇십
+-󠅱0。៏᷽톇십; -0.៏᷽톇십; [V3, V5]; -0.xn--r4e872ah77nghm; ; ; # -0.៏᷽톇십
+-0.xn--r4e872ah77nghm; -0.៏᷽톇십; [V3, V5]; -0.xn--r4e872ah77nghm; ; ; # -0.៏᷽톇십
+ꡰ︒--。៌靈𐹢񘳮; ꡰ︒--.៌靈𐹢񘳮; [B1, B6, P1, V2, V3, V5, V6]; xn-----bk9hu24z.xn--o4e6836dpxudz0v1c; ; ; # ꡰ︒--.៌靈𐹢
+ꡰ。--。៌靈𐹢񘳮; ꡰ.--.៌靈𐹢񘳮; [B1, P1, V3, V5, V6]; xn--md9a.--.xn--o4e6836dpxudz0v1c; ; ; # ꡰ.--.៌靈𐹢
+xn--md9a.--.xn--o4e6836dpxudz0v1c; ꡰ.--.៌靈𐹢񘳮; [B1, V3, V5, V6]; xn--md9a.--.xn--o4e6836dpxudz0v1c; ; ; # ꡰ.--.៌靈𐹢
+xn-----bk9hu24z.xn--o4e6836dpxudz0v1c; ꡰ︒--.៌靈𐹢񘳮; [B1, B6, V2, V3, V5, V6]; xn-----bk9hu24z.xn--o4e6836dpxudz0v1c; ; ; # ꡰ︒--.៌靈𐹢
+ᅟႿႵრ。୍; ᅟႿႵრ.୍; [P1, V5, V6]; xn--tndt4hvw.xn--9ic; ; ; # ႿႵრ.୍
+ᅟႿႵრ。୍; ᅟႿႵრ.୍; [P1, V5, V6]; xn--tndt4hvw.xn--9ic; ; ; # ႿႵრ.୍
+ᅟⴟⴕრ。୍; ᅟⴟⴕრ.୍; [P1, V5, V6]; xn--1od7wz74eeb.xn--9ic; ; ; # ⴟⴕრ.୍
+ᅟႿႵᲠ。୍; ᅟႿႵᲠ.୍; [P1, V5, V6]; xn--tndt39bg47a.xn--9ic; ; ; # ႿႵᲠ.୍
+xn--tndt39bg47a.xn--9ic; ᅟႿႵᲠ.୍; [V5, V6]; xn--tndt39bg47a.xn--9ic; ; ; # ႿႵᲠ.୍
+xn--1od7wz74eeb.xn--9ic; ᅟⴟⴕრ.୍; [V5, V6]; xn--1od7wz74eeb.xn--9ic; ; ; # ⴟⴕრ.୍
+xn--tndt4hvw.xn--9ic; ᅟႿႵრ.୍; [V5, V6]; xn--tndt4hvw.xn--9ic; ; ; # ႿႵრ.୍
+ᅟⴟⴕრ。୍; ᅟⴟⴕრ.୍; [P1, V5, V6]; xn--1od7wz74eeb.xn--9ic; ; ; # ⴟⴕრ.୍
+ᅟႿႵᲠ。୍; ᅟႿႵᲠ.୍; [P1, V5, V6]; xn--tndt39bg47a.xn--9ic; ; ; # ႿႵᲠ.୍
+ᅟႿⴕრ。୍; ᅟႿⴕრ.୍; [P1, V5, V6]; xn--3nd0etsm92g.xn--9ic; ; ; # Ⴟⴕრ.୍
+xn--3nd0etsm92g.xn--9ic; ᅟႿⴕრ.୍; [V5, V6]; xn--3nd0etsm92g.xn--9ic; ; ; # Ⴟⴕრ.୍
+ᅟႿⴕრ。୍; ᅟႿⴕრ.୍; [P1, V5, V6]; xn--3nd0etsm92g.xn--9ic; ; ; # Ⴟⴕრ.୍
+🄃𐹠.٤󠅇; 🄃𐹠.٤; [B1, P1, V6]; xn--7n0d1189a.xn--dib; ; ; # 🄃𐹠.٤
+2,𐹠.٤󠅇; 2,𐹠.٤; [B1, P1, V6]; xn--2,-5g3o.xn--dib; ; ; # 2,𐹠.٤
+xn--2,-5g3o.xn--dib; 2,𐹠.٤; [B1, P1, V6]; xn--2,-5g3o.xn--dib; ; ; # 2,𐹠.٤
+xn--7n0d1189a.xn--dib; 🄃𐹠.٤; [B1, V6]; xn--7n0d1189a.xn--dib; ; ; # 🄃𐹠.٤
+򻲼‌ﱛ.ߒࡈ᯳; 򻲼‌ذٰ.ߒࡈ᯳; [B2, B3, B5, B6, C1, P1, V6]; xn--vgb2kq00fl213y.xn--tsb0vz43c; ; xn--vgb2kp1223g.xn--tsb0vz43c; [B2, B3, B5, B6, P1, V6] # ذٰ.ߒࡈ᯳
+򻲼‌ذٰ.ߒࡈ᯳; ; [B2, B3, B5, B6, C1, P1, V6]; xn--vgb2kq00fl213y.xn--tsb0vz43c; ; xn--vgb2kp1223g.xn--tsb0vz43c; [B2, B3, B5, B6, P1, V6] # ذٰ.ߒࡈ᯳
+xn--vgb2kp1223g.xn--tsb0vz43c; 򻲼ذٰ.ߒࡈ᯳; [B2, B3, B5, B6, V6]; xn--vgb2kp1223g.xn--tsb0vz43c; ; ; # ذٰ.ߒࡈ᯳
+xn--vgb2kq00fl213y.xn--tsb0vz43c; 򻲼‌ذٰ.ߒࡈ᯳; [B2, B3, B5, B6, C1, V6]; xn--vgb2kq00fl213y.xn--tsb0vz43c; ; ; # ذٰ.ߒࡈ᯳
+‍‍𞵪‌。ᡘ𑲭឵; ‍‍𞵪‌.ᡘ𑲭឵; [B1, C1, C2, P1, V6]; xn--0ugba05538b.xn--03e93aq365d; ; xn--l96h.xn--03e93aq365d; [P1, V6] # .ᡘ𑲭
+xn--l96h.xn--03e93aq365d; 𞵪.ᡘ𑲭឵; [V6]; xn--l96h.xn--03e93aq365d; ; ; # .ᡘ𑲭
+xn--0ugba05538b.xn--03e93aq365d; ‍‍𞵪‌.ᡘ𑲭឵; [B1, C1, C2, V6]; xn--0ugba05538b.xn--03e93aq365d; ; ; # .ᡘ𑲭
+𞷻。⚄񗑇𑁿; 𞷻.⚄񗑇𑁿; [B1, P1, V6]; xn--qe7h.xn--c7h2966f7so4a; ; ; # .⚄𑁿
+xn--qe7h.xn--c7h2966f7so4a; 𞷻.⚄񗑇𑁿; [B1, V6]; xn--qe7h.xn--c7h2966f7so4a; ; ; # .⚄𑁿
+꣄≠.𞠨٧; ꣄≠.𞠨٧; [B1, P1, V5, V6]; xn--1chy504c.xn--gib1777v; ; ; # ꣄≠.𞠨٧
+꣄≠.𞠨٧; ꣄≠.𞠨٧; [B1, P1, V5, V6]; xn--1chy504c.xn--gib1777v; ; ; # ꣄≠.𞠨٧
+꣄≠.𞠨٧; ; [B1, P1, V5, V6]; xn--1chy504c.xn--gib1777v; ; ; # ꣄≠.𞠨٧
+꣄≠.𞠨٧; ꣄≠.𞠨٧; [B1, P1, V5, V6]; xn--1chy504c.xn--gib1777v; ; ; # ꣄≠.𞠨٧
+xn--1chy504c.xn--gib1777v; ꣄≠.𞠨٧; [B1, V5, V6]; xn--1chy504c.xn--gib1777v; ; ; # ꣄≠.𞠨٧
+𝟛꣄𝆪。꣪-; 3꣄𝆪.꣪-; [V3, V5]; xn--3-sl4eu679e.xn----xn4e; ; ; # 3꣄𝆪.꣪-
+𝟛꣄𝆪。꣪-; 3꣄𝆪.꣪-; [V3, V5]; xn--3-sl4eu679e.xn----xn4e; ; ; # 3꣄𝆪.꣪-
+3꣄𝆪。꣪-; 3꣄𝆪.꣪-; [V3, V5]; xn--3-sl4eu679e.xn----xn4e; ; ; # 3꣄𝆪.꣪-
+xn--3-sl4eu679e.xn----xn4e; 3꣄𝆪.꣪-; [V3, V5]; xn--3-sl4eu679e.xn----xn4e; ; ; # 3꣄𝆪.꣪-
+ݟᮢ်Ⴇ.4; ; [B1, B2, B3, P1, V6]; xn--jpb846bmjw88a.4; ; ; # ݟᮢ်Ⴇ.4
+ݟᮢ်ⴇ.4; ; [B1, B2, B3]; xn--jpb846bjzj7pr.4; ; ; # ݟᮢ်ⴇ.4
+xn--jpb846bjzj7pr.4; ݟᮢ်ⴇ.4; [B1, B2, B3]; xn--jpb846bjzj7pr.4; ; ; # ݟᮢ်ⴇ.4
+xn--jpb846bmjw88a.4; ݟᮢ်Ⴇ.4; [B1, B2, B3, V6]; xn--jpb846bmjw88a.4; ; ; # ݟᮢ်Ⴇ.4
+ᄹ。໊򠯤󠄞; ᄹ.໊򠯤; [P1, V5, V6]; xn--lrd.xn--s8c05302k; ; ; # ᄹ.໊
+ᄹ。໊򠯤󠄞; ᄹ.໊򠯤; [P1, V5, V6]; xn--lrd.xn--s8c05302k; ; ; # ᄹ.໊
+xn--lrd.xn--s8c05302k; ᄹ.໊򠯤; [V5, V6]; xn--lrd.xn--s8c05302k; ; ; # ᄹ.໊
+Ⴆ򻢩.󠆡︉𞤍; Ⴆ򻢩.𞤯; [P1, V6]; xn--end82983m.xn--ne6h; ; ; # Ⴆ.𞤯
+Ⴆ򻢩.󠆡︉𞤍; Ⴆ򻢩.𞤯; [P1, V6]; xn--end82983m.xn--ne6h; ; ; # Ⴆ.𞤯
+ⴆ򻢩.󠆡︉𞤯; ⴆ򻢩.𞤯; [P1, V6]; xn--xkjw3965g.xn--ne6h; ; ; # ⴆ.𞤯
+xn--xkjw3965g.xn--ne6h; ⴆ򻢩.𞤯; [V6]; xn--xkjw3965g.xn--ne6h; ; ; # ⴆ.𞤯
+xn--end82983m.xn--ne6h; Ⴆ򻢩.𞤯; [V6]; xn--end82983m.xn--ne6h; ; ; # Ⴆ.𞤯
+ⴆ򻢩.󠆡︉𞤯; ⴆ򻢩.𞤯; [P1, V6]; xn--xkjw3965g.xn--ne6h; ; ; # ⴆ.𞤯
+ⴆ򻢩.󠆡︉𞤍; ⴆ򻢩.𞤯; [P1, V6]; xn--xkjw3965g.xn--ne6h; ; ; # ⴆ.𞤯
+ⴆ򻢩.󠆡︉𞤍; ⴆ򻢩.𞤯; [P1, V6]; xn--xkjw3965g.xn--ne6h; ; ; # ⴆ.𞤯
+ßࠋ︒ٻ.帼F∬‌; ßࠋ︒ٻ.帼f∫∫‌; [B5, B6, C1, P1, V6]; xn--zca68zj8ac956c.xn--f-sgn48ga6997e; ; xn--ss-k0d31nu121d.xn--f-tcoa9162d; [B5, B6, P1, V6] # ßࠋ︒ٻ.帼f∫∫
+ßࠋ。ٻ.帼F∫∫‌; ßࠋ.ٻ.帼f∫∫‌; [B5, B6, C1]; xn--zca687a.xn--0ib.xn--f-sgn48ga6997e; ; xn--ss-uze.xn--0ib.xn--f-tcoa9162d; [B5, B6] # ßࠋ.ٻ.帼f∫∫
+ßࠋ。ٻ.帼f∫∫‌; ßࠋ.ٻ.帼f∫∫‌; [B5, B6, C1]; xn--zca687a.xn--0ib.xn--f-sgn48ga6997e; ; xn--ss-uze.xn--0ib.xn--f-tcoa9162d; [B5, B6] # ßࠋ.ٻ.帼f∫∫
+SSࠋ。ٻ.帼F∫∫‌; ssࠋ.ٻ.帼f∫∫‌; [B5, B6, C1]; xn--ss-uze.xn--0ib.xn--f-sgn48ga6997e; ; xn--ss-uze.xn--0ib.xn--f-tcoa9162d; [B5, B6] # ssࠋ.ٻ.帼f∫∫
+ssࠋ。ٻ.帼f∫∫‌; ssࠋ.ٻ.帼f∫∫‌; [B5, B6, C1]; xn--ss-uze.xn--0ib.xn--f-sgn48ga6997e; ; xn--ss-uze.xn--0ib.xn--f-tcoa9162d; [B5, B6] # ssࠋ.ٻ.帼f∫∫
+Ssࠋ。ٻ.帼F∫∫‌; ssࠋ.ٻ.帼f∫∫‌; [B5, B6, C1]; xn--ss-uze.xn--0ib.xn--f-sgn48ga6997e; ; xn--ss-uze.xn--0ib.xn--f-tcoa9162d; [B5, B6] # ssࠋ.ٻ.帼f∫∫
+xn--ss-uze.xn--0ib.xn--f-tcoa9162d; ssࠋ.ٻ.帼f∫∫; [B5, B6]; xn--ss-uze.xn--0ib.xn--f-tcoa9162d; ; ; # ssࠋ.ٻ.帼f∫∫
+xn--ss-uze.xn--0ib.xn--f-sgn48ga6997e; ssࠋ.ٻ.帼f∫∫‌; [B5, B6, C1]; xn--ss-uze.xn--0ib.xn--f-sgn48ga6997e; ; ; # ssࠋ.ٻ.帼f∫∫
+xn--zca687a.xn--0ib.xn--f-sgn48ga6997e; ßࠋ.ٻ.帼f∫∫‌; [B5, B6, C1]; xn--zca687a.xn--0ib.xn--f-sgn48ga6997e; ; ; # ßࠋ.ٻ.帼f∫∫
+ßࠋ︒ٻ.帼f∬‌; ßࠋ︒ٻ.帼f∫∫‌; [B5, B6, C1, P1, V6]; xn--zca68zj8ac956c.xn--f-sgn48ga6997e; ; xn--ss-k0d31nu121d.xn--f-tcoa9162d; [B5, B6, P1, V6] # ßࠋ︒ٻ.帼f∫∫
+SSࠋ︒ٻ.帼F∬‌; ssࠋ︒ٻ.帼f∫∫‌; [B5, B6, C1, P1, V6]; xn--ss-k0d31nu121d.xn--f-sgn48ga6997e; ; xn--ss-k0d31nu121d.xn--f-tcoa9162d; [B5, B6, P1, V6] # ssࠋ︒ٻ.帼f∫∫
+ssࠋ︒ٻ.帼f∬‌; ssࠋ︒ٻ.帼f∫∫‌; [B5, B6, C1, P1, V6]; xn--ss-k0d31nu121d.xn--f-sgn48ga6997e; ; xn--ss-k0d31nu121d.xn--f-tcoa9162d; [B5, B6, P1, V6] # ssࠋ︒ٻ.帼f∫∫
+Ssࠋ︒ٻ.帼F∬‌; ssࠋ︒ٻ.帼f∫∫‌; [B5, B6, C1, P1, V6]; xn--ss-k0d31nu121d.xn--f-sgn48ga6997e; ; xn--ss-k0d31nu121d.xn--f-tcoa9162d; [B5, B6, P1, V6] # ssࠋ︒ٻ.帼f∫∫
+xn--ss-k0d31nu121d.xn--f-tcoa9162d; ssࠋ︒ٻ.帼f∫∫; [B5, B6, V6]; xn--ss-k0d31nu121d.xn--f-tcoa9162d; ; ; # ssࠋ︒ٻ.帼f∫∫
+xn--ss-k0d31nu121d.xn--f-sgn48ga6997e; ssࠋ︒ٻ.帼f∫∫‌; [B5, B6, C1, V6]; xn--ss-k0d31nu121d.xn--f-sgn48ga6997e; ; ; # ssࠋ︒ٻ.帼f∫∫
+xn--zca68zj8ac956c.xn--f-sgn48ga6997e; ßࠋ︒ٻ.帼f∫∫‌; [B5, B6, C1, V6]; xn--zca68zj8ac956c.xn--f-sgn48ga6997e; ; ; # ßࠋ︒ٻ.帼f∫∫
+󘪗。𐹴𞨌‍; 󘪗.𐹴𞨌‍; [B1, C2, P1, V6]; xn--8l83e.xn--1ug4105gsxwf; ; xn--8l83e.xn--so0dw168a; [B1, P1, V6] # .𐹴
+󘪗。𐹴𞨌‍; 󘪗.𐹴𞨌‍; [B1, C2, P1, V6]; xn--8l83e.xn--1ug4105gsxwf; ; xn--8l83e.xn--so0dw168a; [B1, P1, V6] # .𐹴
+xn--8l83e.xn--so0dw168a; 󘪗.𐹴𞨌; [B1, V6]; xn--8l83e.xn--so0dw168a; ; ; # .𐹴
+xn--8l83e.xn--1ug4105gsxwf; 󘪗.𐹴𞨌‍; [B1, C2, V6]; xn--8l83e.xn--1ug4105gsxwf; ; ; # .𐹴
+񗛨.򅟢𝟨꣄; 񗛨.򅟢6꣄; [P1, V6]; xn--mi60a.xn--6-sl4es8023c; ; ; # .6꣄
+񗛨.򅟢6꣄; ; [P1, V6]; xn--mi60a.xn--6-sl4es8023c; ; ; # .6꣄
+xn--mi60a.xn--6-sl4es8023c; 񗛨.򅟢6꣄; [V6]; xn--mi60a.xn--6-sl4es8023c; ; ; # .6꣄
+᪲ﶎ。-۹ႱႨ; ᪲مخج.-۹ႱႨ; [B1, P1, V3, V5, V6]; xn--rgbd2e831i.xn----zyc155e9a; ; ; # ᪲مخج.-۹ႱႨ
+᪲مخج。-۹ႱႨ; ᪲مخج.-۹ႱႨ; [B1, P1, V3, V5, V6]; xn--rgbd2e831i.xn----zyc155e9a; ; ; # ᪲مخج.-۹ႱႨ
+᪲مخج。-۹ⴑⴈ; ᪲مخج.-۹ⴑⴈ; [B1, V3, V5]; xn--rgbd2e831i.xn----zyc3430a9a; ; ; # ᪲مخج.-۹ⴑⴈ
+xn--rgbd2e831i.xn----zyc3430a9a; ᪲مخج.-۹ⴑⴈ; [B1, V3, V5]; xn--rgbd2e831i.xn----zyc3430a9a; ; ; # ᪲مخج.-۹ⴑⴈ
+xn--rgbd2e831i.xn----zyc155e9a; ᪲مخج.-۹ႱႨ; [B1, V3, V5, V6]; xn--rgbd2e831i.xn----zyc155e9a; ; ; # ᪲مخج.-۹ႱႨ
+᪲ﶎ。-۹ⴑⴈ; ᪲مخج.-۹ⴑⴈ; [B1, V3, V5]; xn--rgbd2e831i.xn----zyc3430a9a; ; ; # ᪲مخج.-۹ⴑⴈ
+᪲مخج。-۹Ⴑⴈ; ᪲مخج.-۹Ⴑⴈ; [B1, P1, V3, V5, V6]; xn--rgbd2e831i.xn----zyc875efr3a; ; ; # ᪲مخج.-۹Ⴑⴈ
+xn--rgbd2e831i.xn----zyc875efr3a; ᪲مخج.-۹Ⴑⴈ; [B1, V3, V5, V6]; xn--rgbd2e831i.xn----zyc875efr3a; ; ; # ᪲مخج.-۹Ⴑⴈ
+᪲ﶎ。-۹Ⴑⴈ; ᪲مخج.-۹Ⴑⴈ; [B1, P1, V3, V5, V6]; xn--rgbd2e831i.xn----zyc875efr3a; ; ; # ᪲مخج.-۹Ⴑⴈ
+𞤤.-ࢣ︒; 𞤤.-ࢣ︒; [B1, P1, V3, V6]; xn--ce6h.xn----cod7069p; ; ; # 𞤤.-ࢣ︒
+𞤤.-ࢣ。; 𞤤.-ࢣ.; [B1, V3]; xn--ce6h.xn----cod.; ; ; # 𞤤.-ࢣ.
+𞤂.-ࢣ。; 𞤤.-ࢣ.; [B1, V3]; xn--ce6h.xn----cod.; ; ; # 𞤤.-ࢣ.
+xn--ce6h.xn----cod.; 𞤤.-ࢣ.; [B1, V3]; xn--ce6h.xn----cod.; ; ; # 𞤤.-ࢣ.
+𞤂.-ࢣ︒; 𞤤.-ࢣ︒; [B1, P1, V3, V6]; xn--ce6h.xn----cod7069p; ; ; # 𞤤.-ࢣ︒
+xn--ce6h.xn----cod7069p; 𞤤.-ࢣ︒; [B1, V3, V6]; xn--ce6h.xn----cod7069p; ; ; # 𞤤.-ࢣ︒
+‌𐺨.࡙--; ; [B1, C1, P1, V3, V5, V6]; xn--0ug7905g.xn-----h6e; ; xn--9p0d.xn-----h6e; [B1, P1, V3, V5, V6] # .࡙--
+xn--9p0d.xn-----h6e; 𐺨.࡙--; [B1, V3, V5, V6]; xn--9p0d.xn-----h6e; ; ; # .࡙--
+xn--0ug7905g.xn-----h6e; ‌𐺨.࡙--; [B1, C1, V3, V5, V6]; xn--0ug7905g.xn-----h6e; ; ; # .࡙--
+𐋸󮘋Ⴢ.Ⴁ; ; [P1, V6]; xn--6nd5215jr2u0h.xn--8md; ; ; # 𐋸Ⴢ.Ⴁ
+𐋸󮘋ⴢ.ⴁ; ; [P1, V6]; xn--qlj1559dr224h.xn--skj; ; ; # 𐋸ⴢ.ⴁ
+𐋸󮘋Ⴢ.ⴁ; ; [P1, V6]; xn--6nd5215jr2u0h.xn--skj; ; ; # 𐋸Ⴢ.ⴁ
+xn--6nd5215jr2u0h.xn--skj; 𐋸󮘋Ⴢ.ⴁ; [V6]; xn--6nd5215jr2u0h.xn--skj; ; ; # 𐋸Ⴢ.ⴁ
+xn--qlj1559dr224h.xn--skj; 𐋸󮘋ⴢ.ⴁ; [V6]; xn--qlj1559dr224h.xn--skj; ; ; # 𐋸ⴢ.ⴁ
+xn--6nd5215jr2u0h.xn--8md; 𐋸󮘋Ⴢ.Ⴁ; [V6]; xn--6nd5215jr2u0h.xn--8md; ; ; # 𐋸Ⴢ.Ⴁ
+񗑿꠆₄򩞆。𲩧󠒹ς; 񗑿꠆4򩞆.𲩧󠒹ς; [P1, V6]; xn--4-w93ej7463a9io5a.xn--3xa51142bk3f0d; ; xn--4-w93ej7463a9io5a.xn--4xa31142bk3f0d; # ꠆4.ς
+񗑿꠆4򩞆。𲩧󠒹ς; 񗑿꠆4򩞆.𲩧󠒹ς; [P1, V6]; xn--4-w93ej7463a9io5a.xn--3xa51142bk3f0d; ; xn--4-w93ej7463a9io5a.xn--4xa31142bk3f0d; # ꠆4.ς
+񗑿꠆4򩞆。𲩧󠒹Σ; 񗑿꠆4򩞆.𲩧󠒹σ; [P1, V6]; xn--4-w93ej7463a9io5a.xn--4xa31142bk3f0d; ; ; # ꠆4.σ
+񗑿꠆4򩞆。𲩧󠒹σ; 񗑿꠆4򩞆.𲩧󠒹σ; [P1, V6]; xn--4-w93ej7463a9io5a.xn--4xa31142bk3f0d; ; ; # ꠆4.σ
+xn--4-w93ej7463a9io5a.xn--4xa31142bk3f0d; 񗑿꠆4򩞆.𲩧󠒹σ; [V6]; xn--4-w93ej7463a9io5a.xn--4xa31142bk3f0d; ; ; # ꠆4.σ
+xn--4-w93ej7463a9io5a.xn--3xa51142bk3f0d; 񗑿꠆4򩞆.𲩧󠒹ς; [V6]; xn--4-w93ej7463a9io5a.xn--3xa51142bk3f0d; ; ; # ꠆4.ς
+񗑿꠆₄򩞆。𲩧󠒹Σ; 񗑿꠆4򩞆.𲩧󠒹σ; [P1, V6]; xn--4-w93ej7463a9io5a.xn--4xa31142bk3f0d; ; ; # ꠆4.σ
+񗑿꠆₄򩞆。𲩧󠒹σ; 񗑿꠆4򩞆.𲩧󠒹σ; [P1, V6]; xn--4-w93ej7463a9io5a.xn--4xa31142bk3f0d; ; ; # ꠆4.σ
+󠆀ܣ。ᷴݵ; ܣ.ᷴݵ; [B1, V5]; xn--tnb.xn--5pb136i; ; ; # ܣ.ᷴݵ
+xn--tnb.xn--5pb136i; ܣ.ᷴݵ; [B1, V5]; xn--tnb.xn--5pb136i; ; ; # ܣ.ᷴݵ
+𐹱ࡂ𝪨。𬼖Ⴑ‍; 𐹱ࡂ𝪨.𬼖Ⴑ‍; [B1, B6, C2, P1, V6]; xn--0vb1535kdb6e.xn--pnd879eqy33c; ; xn--0vb1535kdb6e.xn--pnd93707a; [B1, P1, V6] # 𐹱ࡂ𝪨.𬼖Ⴑ
+𐹱ࡂ𝪨。𬼖Ⴑ‍; 𐹱ࡂ𝪨.𬼖Ⴑ‍; [B1, B6, C2, P1, V6]; xn--0vb1535kdb6e.xn--pnd879eqy33c; ; xn--0vb1535kdb6e.xn--pnd93707a; [B1, P1, V6] # 𐹱ࡂ𝪨.𬼖Ⴑ
+𐹱ࡂ𝪨。𬼖ⴑ‍; 𐹱ࡂ𝪨.𬼖ⴑ‍; [B1, B6, C2]; xn--0vb1535kdb6e.xn--1ug742c5714c; ; xn--0vb1535kdb6e.xn--8kjz186s; [B1] # 𐹱ࡂ𝪨.𬼖ⴑ
+xn--0vb1535kdb6e.xn--8kjz186s; 𐹱ࡂ𝪨.𬼖ⴑ; [B1]; xn--0vb1535kdb6e.xn--8kjz186s; ; ; # 𐹱ࡂ𝪨.𬼖ⴑ
+xn--0vb1535kdb6e.xn--1ug742c5714c; 𐹱ࡂ𝪨.𬼖ⴑ‍; [B1, B6, C2]; xn--0vb1535kdb6e.xn--1ug742c5714c; ; ; # 𐹱ࡂ𝪨.𬼖ⴑ
+xn--0vb1535kdb6e.xn--pnd93707a; 𐹱ࡂ𝪨.𬼖Ⴑ; [B1, V6]; xn--0vb1535kdb6e.xn--pnd93707a; ; ; # 𐹱ࡂ𝪨.𬼖Ⴑ
+xn--0vb1535kdb6e.xn--pnd879eqy33c; 𐹱ࡂ𝪨.𬼖Ⴑ‍; [B1, B6, C2, V6]; xn--0vb1535kdb6e.xn--pnd879eqy33c; ; ; # 𐹱ࡂ𝪨.𬼖Ⴑ
+𐹱ࡂ𝪨。𬼖ⴑ‍; 𐹱ࡂ𝪨.𬼖ⴑ‍; [B1, B6, C2]; xn--0vb1535kdb6e.xn--1ug742c5714c; ; xn--0vb1535kdb6e.xn--8kjz186s; [B1] # 𐹱ࡂ𝪨.𬼖ⴑ
+᜔𐭪󠙘‍。-𐹴; ᜔𐭪󠙘‍.-𐹴; [B1, C2, P1, V3, V5, V6]; xn--fze807bso0spy14i.xn----c36i; ; xn--fze4126jujt0g.xn----c36i; [B1, P1, V3, V5, V6] # ᜔𐭪.-𐹴
+᜔𐭪󠙘‍。-𐹴; ᜔𐭪󠙘‍.-𐹴; [B1, C2, P1, V3, V5, V6]; xn--fze807bso0spy14i.xn----c36i; ; xn--fze4126jujt0g.xn----c36i; [B1, P1, V3, V5, V6] # ᜔𐭪.-𐹴
+xn--fze4126jujt0g.xn----c36i; ᜔𐭪󠙘.-𐹴; [B1, V3, V5, V6]; xn--fze4126jujt0g.xn----c36i; ; ; # ᜔𐭪.-𐹴
+xn--fze807bso0spy14i.xn----c36i; ᜔𐭪󠙘‍.-𐹴; [B1, C2, V3, V5, V6]; xn--fze807bso0spy14i.xn----c36i; ; ; # ᜔𐭪.-𐹴
+𾢬。ܩ︒쯙𝟧; 𾢬.ܩ︒쯙5; [B2, P1, V6]; xn--t92s.xn--5-p1c0712mm8rb; ; ; # .ܩ︒쯙5
+𾢬。ܩ︒쯙𝟧; 𾢬.ܩ︒쯙5; [B2, P1, V6]; xn--t92s.xn--5-p1c0712mm8rb; ; ; # .ܩ︒쯙5
+𾢬。ܩ。쯙5; 𾢬.ܩ.쯙5; [P1, V6]; xn--t92s.xn--znb.xn--5-y88f; ; ; # .ܩ.쯙5
+𾢬。ܩ。쯙5; 𾢬.ܩ.쯙5; [P1, V6]; xn--t92s.xn--znb.xn--5-y88f; ; ; # .ܩ.쯙5
+xn--t92s.xn--znb.xn--5-y88f; 𾢬.ܩ.쯙5; [V6]; xn--t92s.xn--znb.xn--5-y88f; ; ; # .ܩ.쯙5
+xn--t92s.xn--5-p1c0712mm8rb; 𾢬.ܩ︒쯙5; [B2, V6]; xn--t92s.xn--5-p1c0712mm8rb; ; ; # .ܩ︒쯙5
+𞤟-。ݢ≮뻐; 𞥁-.ݢ≮뻐; [B2, B3, P1, V3, V6]; xn----1j8r.xn--mpb269krv4i; ; ; # 𞥁-.ݢ≮뻐
+𞤟-。ݢ≮뻐; 𞥁-.ݢ≮뻐; [B2, B3, P1, V3, V6]; xn----1j8r.xn--mpb269krv4i; ; ; # 𞥁-.ݢ≮뻐
+𞥁-。ݢ≮뻐; 𞥁-.ݢ≮뻐; [B2, B3, P1, V3, V6]; xn----1j8r.xn--mpb269krv4i; ; ; # 𞥁-.ݢ≮뻐
+𞥁-。ݢ≮뻐; 𞥁-.ݢ≮뻐; [B2, B3, P1, V3, V6]; xn----1j8r.xn--mpb269krv4i; ; ; # 𞥁-.ݢ≮뻐
+xn----1j8r.xn--mpb269krv4i; 𞥁-.ݢ≮뻐; [B2, B3, V3, V6]; xn----1j8r.xn--mpb269krv4i; ; ; # 𞥁-.ݢ≮뻐
+𞥩-򊫠.ࢴ≠; 𞥩-򊫠.ࢴ≠; [B2, B3, P1, V6]; xn----cm8rp3609a.xn--9yb852k; ; ; # -.ࢴ≠
+𞥩-򊫠.ࢴ≠; 𞥩-򊫠.ࢴ≠; [B2, B3, P1, V6]; xn----cm8rp3609a.xn--9yb852k; ; ; # -.ࢴ≠
+𞥩-򊫠.ࢴ≠; ; [B2, B3, P1, V6]; xn----cm8rp3609a.xn--9yb852k; ; ; # -.ࢴ≠
+𞥩-򊫠.ࢴ≠; 𞥩-򊫠.ࢴ≠; [B2, B3, P1, V6]; xn----cm8rp3609a.xn--9yb852k; ; ; # -.ࢴ≠
+xn----cm8rp3609a.xn--9yb852k; 𞥩-򊫠.ࢴ≠; [B2, B3, V6]; xn----cm8rp3609a.xn--9yb852k; ; ; # -.ࢴ≠
+-񅂏ςႼ.١; -񅂏ςႼ.١; [B1, P1, V3, V6]; xn----ymb080hun11i.xn--9hb; ; xn----0mb770hun11i.xn--9hb; # -ςႼ.١
+-񅂏ςႼ.١; ; [B1, P1, V3, V6]; xn----ymb080hun11i.xn--9hb; ; xn----0mb770hun11i.xn--9hb; # -ςႼ.١
+-񅂏ςⴜ.١; ; [B1, P1, V3, V6]; xn----ymb2782aov12f.xn--9hb; ; xn----0mb9682aov12f.xn--9hb; # -ςⴜ.١
+-񅂏ΣႼ.١; -񅂏σႼ.١; [B1, P1, V3, V6]; xn----0mb770hun11i.xn--9hb; ; ; # -σႼ.١
+-񅂏σⴜ.١; ; [B1, P1, V3, V6]; xn----0mb9682aov12f.xn--9hb; ; ; # -σⴜ.١
+-񅂏Σⴜ.١; -񅂏σⴜ.١; [B1, P1, V3, V6]; xn----0mb9682aov12f.xn--9hb; ; ; # -σⴜ.١
+xn----0mb9682aov12f.xn--9hb; -񅂏σⴜ.١; [B1, V3, V6]; xn----0mb9682aov12f.xn--9hb; ; ; # -σⴜ.١
+xn----0mb770hun11i.xn--9hb; -񅂏σႼ.١; [B1, V3, V6]; xn----0mb770hun11i.xn--9hb; ; ; # -σႼ.١
+xn----ymb2782aov12f.xn--9hb; -񅂏ςⴜ.١; [B1, V3, V6]; xn----ymb2782aov12f.xn--9hb; ; ; # -ςⴜ.١
+xn----ymb080hun11i.xn--9hb; -񅂏ςႼ.١; [B1, V3, V6]; xn----ymb080hun11i.xn--9hb; ; ; # -ςႼ.١
+-񅂏ςⴜ.١; -񅂏ςⴜ.١; [B1, P1, V3, V6]; xn----ymb2782aov12f.xn--9hb; ; xn----0mb9682aov12f.xn--9hb; # -ςⴜ.١
+-񅂏ΣႼ.١; -񅂏σႼ.١; [B1, P1, V3, V6]; xn----0mb770hun11i.xn--9hb; ; ; # -σႼ.١
+-񅂏σⴜ.١; -񅂏σⴜ.١; [B1, P1, V3, V6]; xn----0mb9682aov12f.xn--9hb; ; ; # -σⴜ.١
+-񅂏Σⴜ.١; -񅂏σⴜ.١; [B1, P1, V3, V6]; xn----0mb9682aov12f.xn--9hb; ; ; # -σⴜ.١
+៊.‍𝟮𑀿; ៊.‍2𑀿; [C2, V5]; xn--m4e.xn--2-tgnv469h; ; xn--m4e.xn--2-ku7i; [V5] # ៊.2𑀿
+៊.‍2𑀿; ; [C2, V5]; xn--m4e.xn--2-tgnv469h; ; xn--m4e.xn--2-ku7i; [V5] # ៊.2𑀿
+xn--m4e.xn--2-ku7i; ៊.2𑀿; [V5]; xn--m4e.xn--2-ku7i; ; ; # ៊.2𑀿
+xn--m4e.xn--2-tgnv469h; ៊.‍2𑀿; [C2, V5]; xn--m4e.xn--2-tgnv469h; ; ; # ៊.2𑀿
+≯𝟖。᩠𐫓򟇑; ≯8.᩠𐫓򟇑; [B1, P1, V5, V6]; xn--8-ogo.xn--jof5303iv1z5d; ; ; # ≯8.᩠𐫓
+≯𝟖。᩠𐫓򟇑; ≯8.᩠𐫓򟇑; [B1, P1, V5, V6]; xn--8-ogo.xn--jof5303iv1z5d; ; ; # ≯8.᩠𐫓
+≯8。᩠𐫓򟇑; ≯8.᩠𐫓򟇑; [B1, P1, V5, V6]; xn--8-ogo.xn--jof5303iv1z5d; ; ; # ≯8.᩠𐫓
+≯8。᩠𐫓򟇑; ≯8.᩠𐫓򟇑; [B1, P1, V5, V6]; xn--8-ogo.xn--jof5303iv1z5d; ; ; # ≯8.᩠𐫓
+xn--8-ogo.xn--jof5303iv1z5d; ≯8.᩠𐫓򟇑; [B1, V5, V6]; xn--8-ogo.xn--jof5303iv1z5d; ; ; # ≯8.᩠𐫓
+𑲫Ↄ٤。‌; 𑲫Ↄ٤.‌; [B1, C1, P1, V5, V6]; xn--dib999kcy1p.xn--0ug; ; xn--dib999kcy1p.; [B1, P1, V5, V6] # 𑲫Ↄ٤.
+𑲫Ↄ٤。‌; 𑲫Ↄ٤.‌; [B1, C1, P1, V5, V6]; xn--dib999kcy1p.xn--0ug; ; xn--dib999kcy1p.; [B1, P1, V5, V6] # 𑲫Ↄ٤.
+𑲫ↄ٤。‌; 𑲫ↄ٤.‌; [B1, C1, V5]; xn--dib100l8x1p.xn--0ug; ; xn--dib100l8x1p.; [B1, V5] # 𑲫ↄ٤.
+xn--dib100l8x1p.; 𑲫ↄ٤.; [B1, V5]; xn--dib100l8x1p.; ; ; # 𑲫ↄ٤.
+xn--dib100l8x1p.xn--0ug; 𑲫ↄ٤.‌; [B1, C1, V5]; xn--dib100l8x1p.xn--0ug; ; ; # 𑲫ↄ٤.
+xn--dib999kcy1p.; 𑲫Ↄ٤.; [B1, V5, V6]; xn--dib999kcy1p.; ; ; # 𑲫Ↄ٤.
+xn--dib999kcy1p.xn--0ug; 𑲫Ↄ٤.‌; [B1, C1, V5, V6]; xn--dib999kcy1p.xn--0ug; ; ; # 𑲫Ↄ٤.
+𑲫ↄ٤。‌; 𑲫ↄ٤.‌; [B1, C1, V5]; xn--dib100l8x1p.xn--0ug; ; xn--dib100l8x1p.; [B1, V5] # 𑲫ↄ٤.
+ఀ𝟵‍ﲝ.‍ݐ⒈; ఀ9‍بح.‍ݐ⒈; [B1, C2, P1, V5, V6]; xn--9-1mcp570dl51a.xn--3ob977jmfd; ; xn--9-1mcp570d.xn--3ob470m; [B1, P1, V5, V6] # ఀ9بح.ݐ⒈
+ఀ9‍بح.‍ݐ1.; ; [B1, C2, V5]; xn--9-1mcp570dl51a.xn--1-x3c211q.; ; xn--9-1mcp570d.xn--1-x3c.; [B1, V5] # ఀ9بح.ݐ1.
+xn--9-1mcp570d.xn--1-x3c.; ఀ9بح.ݐ1.; [B1, V5]; xn--9-1mcp570d.xn--1-x3c.; ; ; # ఀ9بح.ݐ1.
+xn--9-1mcp570dl51a.xn--1-x3c211q.; ఀ9‍بح.‍ݐ1.; [B1, C2, V5]; xn--9-1mcp570dl51a.xn--1-x3c211q.; ; ; # ఀ9بح.ݐ1.
+xn--9-1mcp570d.xn--3ob470m; ఀ9بح.ݐ⒈; [B1, V5, V6]; xn--9-1mcp570d.xn--3ob470m; ; ; # ఀ9بح.ݐ⒈
+xn--9-1mcp570dl51a.xn--3ob977jmfd; ఀ9‍بح.‍ݐ⒈; [B1, C2, V5, V6]; xn--9-1mcp570dl51a.xn--3ob977jmfd; ; ; # ఀ9بح.ݐ⒈
+꫶。嬶ß葽; ꫶.嬶ß葽; [V5]; xn--2v9a.xn--zca7637b14za; ; xn--2v9a.xn--ss-q40dp97m; # ꫶.嬶ß葽
+꫶。嬶SS葽; ꫶.嬶ss葽; [V5]; xn--2v9a.xn--ss-q40dp97m; ; ; # ꫶.嬶ss葽
+꫶。嬶ss葽; ꫶.嬶ss葽; [V5]; xn--2v9a.xn--ss-q40dp97m; ; ; # ꫶.嬶ss葽
+꫶。嬶Ss葽; ꫶.嬶ss葽; [V5]; xn--2v9a.xn--ss-q40dp97m; ; ; # ꫶.嬶ss葽
+xn--2v9a.xn--ss-q40dp97m; ꫶.嬶ss葽; [V5]; xn--2v9a.xn--ss-q40dp97m; ; ; # ꫶.嬶ss葽
+xn--2v9a.xn--zca7637b14za; ꫶.嬶ß葽; [V5]; xn--2v9a.xn--zca7637b14za; ; ; # ꫶.嬶ß葽
+𑚶⒈。񞻡𐹺; 𑚶⒈.񞻡𐹺; [B5, B6, P1, V5, V6]; xn--tshz969f.xn--yo0d5914s; ; ; # 𑚶⒈.𐹺
+𑚶1.。񞻡𐹺; 𑚶1..񞻡𐹺; [B5, B6, P1, V5, V6, X4_2]; xn--1-3j0j..xn--yo0d5914s; [B5, B6, P1, V5, V6, A4_2]; ; # 𑚶1..𐹺
+xn--1-3j0j..xn--yo0d5914s; 𑚶1..񞻡𐹺; [B5, B6, V5, V6, X4_2]; xn--1-3j0j..xn--yo0d5914s; [B5, B6, V5, V6, A4_2]; ; # 𑚶1..𐹺
+xn--tshz969f.xn--yo0d5914s; 𑚶⒈.񞻡𐹺; [B5, B6, V5, V6]; xn--tshz969f.xn--yo0d5914s; ; ; # 𑚶⒈.𐹺
+𑜤︒≮.񚕽ט𞾩; 𑜤︒≮.񚕽ט𞾩; [B1, B5, B6, P1, V5, V6]; xn--gdh5267fdzpa.xn--deb0091w5q9u; ; ; # 𑜤︒≮.ט
+𑜤︒≮.񚕽ט𞾩; 𑜤︒≮.񚕽ט𞾩; [B1, B5, B6, P1, V5, V6]; xn--gdh5267fdzpa.xn--deb0091w5q9u; ; ; # 𑜤︒≮.ט
+𑜤。≮.񚕽ט𞾩; 𑜤.≮.񚕽ט𞾩; [B1, B3, B5, B6, P1, V5, V6]; xn--ci2d.xn--gdh.xn--deb0091w5q9u; ; ; # 𑜤.≮.ט
+𑜤。≮.񚕽ט𞾩; 𑜤.≮.񚕽ט𞾩; [B1, B3, B5, B6, P1, V5, V6]; xn--ci2d.xn--gdh.xn--deb0091w5q9u; ; ; # 𑜤.≮.ט
+xn--ci2d.xn--gdh.xn--deb0091w5q9u; 𑜤.≮.񚕽ט𞾩; [B1, B3, B5, B6, V5, V6]; xn--ci2d.xn--gdh.xn--deb0091w5q9u; ; ; # 𑜤.≮.ט
+xn--gdh5267fdzpa.xn--deb0091w5q9u; 𑜤︒≮.񚕽ט𞾩; [B1, B5, B6, V5, V6]; xn--gdh5267fdzpa.xn--deb0091w5q9u; ; ; # 𑜤︒≮.ט
+󠆋؃񏦤.⇁ς򏋈򺇥; ؃񏦤.⇁ς򏋈򺇥; [B1, P1, V6]; xn--lfb04106d.xn--3xa174mxv16m8moq; ; xn--lfb04106d.xn--4xa964mxv16m8moq; # .⇁ς
+󠆋؃񏦤.⇁Σ򏋈򺇥; ؃񏦤.⇁σ򏋈򺇥; [B1, P1, V6]; xn--lfb04106d.xn--4xa964mxv16m8moq; ; ; # .⇁σ
+󠆋؃񏦤.⇁σ򏋈򺇥; ؃񏦤.⇁σ򏋈򺇥; [B1, P1, V6]; xn--lfb04106d.xn--4xa964mxv16m8moq; ; ; # .⇁σ
+xn--lfb04106d.xn--4xa964mxv16m8moq; ؃񏦤.⇁σ򏋈򺇥; [B1, V6]; xn--lfb04106d.xn--4xa964mxv16m8moq; ; ; # .⇁σ
+xn--lfb04106d.xn--3xa174mxv16m8moq; ؃񏦤.⇁ς򏋈򺇥; [B1, V6]; xn--lfb04106d.xn--3xa174mxv16m8moq; ; ; # .⇁ς
+ς𑐽𵢈𑜫。𞬩‌𐫄; ς𑐽𵢈𑜫.𞬩‌𐫄; [C1, P1, V6]; xn--3xa4260lk3b8z15g.xn--0ug4653g2xzf; ; xn--4xa2260lk3b8z15g.xn--tw9ct349a; [P1, V6] # ς𑐽𑜫.𐫄
+ς𑐽𵢈𑜫。𞬩‌𐫄; ς𑐽𵢈𑜫.𞬩‌𐫄; [C1, P1, V6]; xn--3xa4260lk3b8z15g.xn--0ug4653g2xzf; ; xn--4xa2260lk3b8z15g.xn--tw9ct349a; [P1, V6] # ς𑐽𑜫.𐫄
+Σ𑐽𵢈𑜫。𞬩‌𐫄; σ𑐽𵢈𑜫.𞬩‌𐫄; [C1, P1, V6]; xn--4xa2260lk3b8z15g.xn--0ug4653g2xzf; ; xn--4xa2260lk3b8z15g.xn--tw9ct349a; [P1, V6] # σ𑐽𑜫.𐫄
+σ𑐽𵢈𑜫。𞬩‌𐫄; σ𑐽𵢈𑜫.𞬩‌𐫄; [C1, P1, V6]; xn--4xa2260lk3b8z15g.xn--0ug4653g2xzf; ; xn--4xa2260lk3b8z15g.xn--tw9ct349a; [P1, V6] # σ𑐽𑜫.𐫄
+xn--4xa2260lk3b8z15g.xn--tw9ct349a; σ𑐽𵢈𑜫.𞬩𐫄; [V6]; xn--4xa2260lk3b8z15g.xn--tw9ct349a; ; ; # σ𑐽𑜫.𐫄
+xn--4xa2260lk3b8z15g.xn--0ug4653g2xzf; σ𑐽𵢈𑜫.𞬩‌𐫄; [C1, V6]; xn--4xa2260lk3b8z15g.xn--0ug4653g2xzf; ; ; # σ𑐽𑜫.𐫄
+xn--3xa4260lk3b8z15g.xn--0ug4653g2xzf; ς𑐽𵢈𑜫.𞬩‌𐫄; [C1, V6]; xn--3xa4260lk3b8z15g.xn--0ug4653g2xzf; ; ; # ς𑐽𑜫.𐫄
+Σ𑐽𵢈𑜫。𞬩‌𐫄; σ𑐽𵢈𑜫.𞬩‌𐫄; [C1, P1, V6]; xn--4xa2260lk3b8z15g.xn--0ug4653g2xzf; ; xn--4xa2260lk3b8z15g.xn--tw9ct349a; [P1, V6] # σ𑐽𑜫.𐫄
+σ𑐽𵢈𑜫。𞬩‌𐫄; σ𑐽𵢈𑜫.𞬩‌𐫄; [C1, P1, V6]; xn--4xa2260lk3b8z15g.xn--0ug4653g2xzf; ; xn--4xa2260lk3b8z15g.xn--tw9ct349a; [P1, V6] # σ𑐽𑜫.𐫄
+-򵏽。-ﱌݛ; -򵏽.-نحݛ; [B1, P1, V3, V6]; xn----o452j.xn----cnc8e38c; ; ; # -.-نحݛ
+-򵏽。-نحݛ; -򵏽.-نحݛ; [B1, P1, V3, V6]; xn----o452j.xn----cnc8e38c; ; ; # -.-نحݛ
+xn----o452j.xn----cnc8e38c; -򵏽.-نحݛ; [B1, V3, V6]; xn----o452j.xn----cnc8e38c; ; ; # -.-نحݛ
+⺢򇺅𝟤。‍🚷; ⺢򇺅2.‍🚷; [C2, P1, V6]; xn--2-4jtr4282f.xn--1ugz946p; ; xn--2-4jtr4282f.xn--m78h; [P1, V6] # ⺢2.🚷
+⺢򇺅2。‍🚷; ⺢򇺅2.‍🚷; [C2, P1, V6]; xn--2-4jtr4282f.xn--1ugz946p; ; xn--2-4jtr4282f.xn--m78h; [P1, V6] # ⺢2.🚷
+xn--2-4jtr4282f.xn--m78h; ⺢򇺅2.🚷; [V6]; xn--2-4jtr4282f.xn--m78h; ; ; # ⺢2.🚷
+xn--2-4jtr4282f.xn--1ugz946p; ⺢򇺅2.‍🚷; [C2, V6]; xn--2-4jtr4282f.xn--1ugz946p; ; ; # ⺢2.🚷
+೸‍ⷾ𐹲。򤐶; ೸‍ⷾ𐹲.򤐶; [B5, B6, C2, P1, V6]; xn--hvc488g69j402t.xn--3e36c; ; xn--hvc220of37m.xn--3e36c; [B5, B6, P1, V6] # ⷾ𐹲.
+೸‍ⷾ𐹲。򤐶; ೸‍ⷾ𐹲.򤐶; [B5, B6, C2, P1, V6]; xn--hvc488g69j402t.xn--3e36c; ; xn--hvc220of37m.xn--3e36c; [B5, B6, P1, V6] # ⷾ𐹲.
+xn--hvc220of37m.xn--3e36c; ೸ⷾ𐹲.򤐶; [B5, B6, V6]; xn--hvc220of37m.xn--3e36c; ; ; # ⷾ𐹲.
+xn--hvc488g69j402t.xn--3e36c; ೸‍ⷾ𐹲.򤐶; [B5, B6, C2, V6]; xn--hvc488g69j402t.xn--3e36c; ; ; # ⷾ𐹲.
+𐹢.Ⴍ₉⁸; 𐹢.Ⴍ98; [B1, P1, V6]; xn--9n0d.xn--98-7ek; ; ; # 𐹢.Ⴍ98
+𐹢.Ⴍ98; ; [B1, P1, V6]; xn--9n0d.xn--98-7ek; ; ; # 𐹢.Ⴍ98
+𐹢.ⴍ98; ; [B1]; xn--9n0d.xn--98-u61a; ; ; # 𐹢.ⴍ98
+xn--9n0d.xn--98-u61a; 𐹢.ⴍ98; [B1]; xn--9n0d.xn--98-u61a; ; ; # 𐹢.ⴍ98
+xn--9n0d.xn--98-7ek; 𐹢.Ⴍ98; [B1, V6]; xn--9n0d.xn--98-7ek; ; ; # 𐹢.Ⴍ98
+𐹢.ⴍ₉⁸; 𐹢.ⴍ98; [B1]; xn--9n0d.xn--98-u61a; ; ; # 𐹢.ⴍ98
+‌͏。ß࣢⒚≯; ‌.ß࣢⒚≯; [B1, B5, B6, C1, P1, V6]; xn--0ug.xn--zca612bx9vo5b; ; .xn--ss-9if872xjjc; [B5, B6, P1, V6, A4_2] # .ß⒚≯
+‌͏。ß࣢⒚≯; ‌.ß࣢⒚≯; [B1, B5, B6, C1, P1, V6]; xn--0ug.xn--zca612bx9vo5b; ; .xn--ss-9if872xjjc; [B5, B6, P1, V6, A4_2] # .ß⒚≯
+‌͏。ß࣢19.≯; ‌.ß࣢19.≯; [B1, B5, C1, P1, V6]; xn--0ug.xn--19-fia813f.xn--hdh; ; .xn--ss19-w0i.xn--hdh; [B1, B5, P1, V6, A4_2] # .ß19.≯
+‌͏。ß࣢19.≯; ‌.ß࣢19.≯; [B1, B5, C1, P1, V6]; xn--0ug.xn--19-fia813f.xn--hdh; ; .xn--ss19-w0i.xn--hdh; [B1, B5, P1, V6, A4_2] # .ß19.≯
+‌͏。SS࣢19.≯; ‌.ss࣢19.≯; [B1, B5, C1, P1, V6]; xn--0ug.xn--ss19-w0i.xn--hdh; ; .xn--ss19-w0i.xn--hdh; [B1, B5, P1, V6, A4_2] # .ss19.≯
+‌͏。SS࣢19.≯; ‌.ss࣢19.≯; [B1, B5, C1, P1, V6]; xn--0ug.xn--ss19-w0i.xn--hdh; ; .xn--ss19-w0i.xn--hdh; [B1, B5, P1, V6, A4_2] # .ss19.≯
+‌͏。ss࣢19.≯; ‌.ss࣢19.≯; [B1, B5, C1, P1, V6]; xn--0ug.xn--ss19-w0i.xn--hdh; ; .xn--ss19-w0i.xn--hdh; [B1, B5, P1, V6, A4_2] # .ss19.≯
+‌͏。ss࣢19.≯; ‌.ss࣢19.≯; [B1, B5, C1, P1, V6]; xn--0ug.xn--ss19-w0i.xn--hdh; ; .xn--ss19-w0i.xn--hdh; [B1, B5, P1, V6, A4_2] # .ss19.≯
+‌͏。Ss࣢19.≯; ‌.ss࣢19.≯; [B1, B5, C1, P1, V6]; xn--0ug.xn--ss19-w0i.xn--hdh; ; .xn--ss19-w0i.xn--hdh; [B1, B5, P1, V6, A4_2] # .ss19.≯
+‌͏。Ss࣢19.≯; ‌.ss࣢19.≯; [B1, B5, C1, P1, V6]; xn--0ug.xn--ss19-w0i.xn--hdh; ; .xn--ss19-w0i.xn--hdh; [B1, B5, P1, V6, A4_2] # .ss19.≯
+.xn--ss19-w0i.xn--hdh; .ss࣢19.≯; [B1, B5, V6, X4_2]; .xn--ss19-w0i.xn--hdh; [B1, B5, V6, A4_2]; ; # .ss19.≯
+xn--0ug.xn--ss19-w0i.xn--hdh; ‌.ss࣢19.≯; [B1, B5, C1, V6]; xn--0ug.xn--ss19-w0i.xn--hdh; ; ; # .ss19.≯
+xn--0ug.xn--19-fia813f.xn--hdh; ‌.ß࣢19.≯; [B1, B5, C1, V6]; xn--0ug.xn--19-fia813f.xn--hdh; ; ; # .ß19.≯
+‌͏。SS࣢⒚≯; ‌.ss࣢⒚≯; [B1, B5, B6, C1, P1, V6]; xn--0ug.xn--ss-9if872xjjc; ; .xn--ss-9if872xjjc; [B5, B6, P1, V6, A4_2] # .ss⒚≯
+‌͏。SS࣢⒚≯; ‌.ss࣢⒚≯; [B1, B5, B6, C1, P1, V6]; xn--0ug.xn--ss-9if872xjjc; ; .xn--ss-9if872xjjc; [B5, B6, P1, V6, A4_2] # .ss⒚≯
+‌͏。ss࣢⒚≯; ‌.ss࣢⒚≯; [B1, B5, B6, C1, P1, V6]; xn--0ug.xn--ss-9if872xjjc; ; .xn--ss-9if872xjjc; [B5, B6, P1, V6, A4_2] # .ss⒚≯
+‌͏。ss࣢⒚≯; ‌.ss࣢⒚≯; [B1, B5, B6, C1, P1, V6]; xn--0ug.xn--ss-9if872xjjc; ; .xn--ss-9if872xjjc; [B5, B6, P1, V6, A4_2] # .ss⒚≯
+‌͏。Ss࣢⒚≯; ‌.ss࣢⒚≯; [B1, B5, B6, C1, P1, V6]; xn--0ug.xn--ss-9if872xjjc; ; .xn--ss-9if872xjjc; [B5, B6, P1, V6, A4_2] # .ss⒚≯
+‌͏。Ss࣢⒚≯; ‌.ss࣢⒚≯; [B1, B5, B6, C1, P1, V6]; xn--0ug.xn--ss-9if872xjjc; ; .xn--ss-9if872xjjc; [B5, B6, P1, V6, A4_2] # .ss⒚≯
+.xn--ss-9if872xjjc; .ss࣢⒚≯; [B5, B6, V6, X4_2]; .xn--ss-9if872xjjc; [B5, B6, V6, A4_2]; ; # .ss⒚≯
+xn--0ug.xn--ss-9if872xjjc; ‌.ss࣢⒚≯; [B1, B5, B6, C1, V6]; xn--0ug.xn--ss-9if872xjjc; ; ; # .ss⒚≯
+xn--0ug.xn--zca612bx9vo5b; ‌.ß࣢⒚≯; [B1, B5, B6, C1, V6]; xn--0ug.xn--zca612bx9vo5b; ; ; # .ß⒚≯
+‌𞥍ᡌ.𣃔; ‌𞥍ᡌ.𣃔; [B1, C1, P1, V6]; xn--c8e180bqz13b.xn--od1j; ; xn--c8e5919u.xn--od1j; [B2, B3, P1, V6] # ᡌ.𣃔
+‌𞥍ᡌ.𣃔; ; [B1, C1, P1, V6]; xn--c8e180bqz13b.xn--od1j; ; xn--c8e5919u.xn--od1j; [B2, B3, P1, V6] # ᡌ.𣃔
+xn--c8e5919u.xn--od1j; 𞥍ᡌ.𣃔; [B2, B3, V6]; xn--c8e5919u.xn--od1j; ; ; # ᡌ.𣃔
+xn--c8e180bqz13b.xn--od1j; ‌𞥍ᡌ.𣃔; [B1, C1, V6]; xn--c8e180bqz13b.xn--od1j; ; ; # ᡌ.𣃔
+ߐ򜬝-񡢬。ྠႻ𞷏𝆬; ߐ򜬝-񡢬.ྠႻ𞷏𝆬; [B1, B2, B3, P1, V5, V6]; xn----8bd11730jefvw.xn--wfd08cd265hgsxa; ; ; # ߐ-.ྠႻ𝆬
+ߐ򜬝-񡢬。ྠⴛ𞷏𝆬; ߐ򜬝-񡢬.ྠⴛ𞷏𝆬; [B1, B2, B3, P1, V5, V6]; xn----8bd11730jefvw.xn--wfd802mpm20agsxa; ; ; # ߐ-.ྠⴛ𝆬
+xn----8bd11730jefvw.xn--wfd802mpm20agsxa; ߐ򜬝-񡢬.ྠⴛ𞷏𝆬; [B1, B2, B3, V5, V6]; xn----8bd11730jefvw.xn--wfd802mpm20agsxa; ; ; # ߐ-.ྠⴛ𝆬
+xn----8bd11730jefvw.xn--wfd08cd265hgsxa; ߐ򜬝-񡢬.ྠႻ𞷏𝆬; [B1, B2, B3, V5, V6]; xn----8bd11730jefvw.xn--wfd08cd265hgsxa; ; ; # ߐ-.ྠႻ𝆬
+𝨥。⫟𑈾; 𝨥.⫟𑈾; [V5]; xn--n82h.xn--63iw010f; ; ; # 𝨥.⫟𑈾
+xn--n82h.xn--63iw010f; 𝨥.⫟𑈾; [V5]; xn--n82h.xn--63iw010f; ; ; # 𝨥.⫟𑈾
+⾛ݓ.Ⴕ𞠬؄‍; 走ݓ.Ⴕ𞠬؄‍; [B5, B6, C2, P1, V6]; xn--6ob9779d.xn--mfb785czmm0y85b; ; xn--6ob9779d.xn--mfb785ck569a; [B5, B6, P1, V6] # 走ݓ.Ⴕ𞠬
+走ݓ.Ⴕ𞠬؄‍; ; [B5, B6, C2, P1, V6]; xn--6ob9779d.xn--mfb785czmm0y85b; ; xn--6ob9779d.xn--mfb785ck569a; [B5, B6, P1, V6] # 走ݓ.Ⴕ𞠬
+走ݓ.ⴕ𞠬؄‍; ; [B5, B6, C2, P1, V6]; xn--6ob9779d.xn--mfb444k5gjt754b; ; xn--6ob9779d.xn--mfb511rxu80a; [B5, B6, P1, V6] # 走ݓ.ⴕ𞠬
+xn--6ob9779d.xn--mfb511rxu80a; 走ݓ.ⴕ𞠬؄; [B5, B6, V6]; xn--6ob9779d.xn--mfb511rxu80a; ; ; # 走ݓ.ⴕ𞠬
+xn--6ob9779d.xn--mfb444k5gjt754b; 走ݓ.ⴕ𞠬؄‍; [B5, B6, C2, V6]; xn--6ob9779d.xn--mfb444k5gjt754b; ; ; # 走ݓ.ⴕ𞠬
+xn--6ob9779d.xn--mfb785ck569a; 走ݓ.Ⴕ𞠬؄; [B5, B6, V6]; xn--6ob9779d.xn--mfb785ck569a; ; ; # 走ݓ.Ⴕ𞠬
+xn--6ob9779d.xn--mfb785czmm0y85b; 走ݓ.Ⴕ𞠬؄‍; [B5, B6, C2, V6]; xn--6ob9779d.xn--mfb785czmm0y85b; ; ; # 走ݓ.Ⴕ𞠬
+⾛ݓ.ⴕ𞠬؄‍; 走ݓ.ⴕ𞠬؄‍; [B5, B6, C2, P1, V6]; xn--6ob9779d.xn--mfb444k5gjt754b; ; xn--6ob9779d.xn--mfb511rxu80a; [B5, B6, P1, V6] # 走ݓ.ⴕ𞠬
+-ᢗ‌🄄.𑜢; ; [C1, P1, V3, V5, V6]; xn----pck312bx563c.xn--9h2d; ; xn----pck1820x.xn--9h2d; [P1, V3, V5, V6] # -ᢗ🄄.𑜢
+-ᢗ‌3,.𑜢; ; [C1, P1, V3, V5, V6]; xn---3,-3eu051c.xn--9h2d; ; xn---3,-3eu.xn--9h2d; [P1, V3, V5, V6] # -ᢗ3,.𑜢
+xn---3,-3eu.xn--9h2d; -ᢗ3,.𑜢; [P1, V3, V5, V6]; xn---3,-3eu.xn--9h2d; ; ; # -ᢗ3,.𑜢
+xn---3,-3eu051c.xn--9h2d; -ᢗ‌3,.𑜢; [C1, P1, V3, V5, V6]; xn---3,-3eu051c.xn--9h2d; ; ; # -ᢗ3,.𑜢
+xn----pck1820x.xn--9h2d; -ᢗ🄄.𑜢; [V3, V5, V6]; xn----pck1820x.xn--9h2d; ; ; # -ᢗ🄄.𑜢
+xn----pck312bx563c.xn--9h2d; -ᢗ‌🄄.𑜢; [C1, V3, V5, V6]; xn----pck312bx563c.xn--9h2d; ; ; # -ᢗ🄄.𑜢
+≠𐸁𹏁‌.Ⴚ򳄠; ; [B1, C1, P1, V6]; xn--0ug83gn618a21ov.xn--ynd49496l; ; xn--1ch2293gv3nr.xn--ynd49496l; [B1, P1, V6] # ≠.Ⴚ
+≠𐸁𹏁‌.Ⴚ򳄠; ≠𐸁𹏁‌.Ⴚ򳄠; [B1, C1, P1, V6]; xn--0ug83gn618a21ov.xn--ynd49496l; ; xn--1ch2293gv3nr.xn--ynd49496l; [B1, P1, V6] # ≠.Ⴚ
+≠𐸁𹏁‌.ⴚ򳄠; ≠𐸁𹏁‌.ⴚ򳄠; [B1, C1, P1, V6]; xn--0ug83gn618a21ov.xn--ilj23531g; ; xn--1ch2293gv3nr.xn--ilj23531g; [B1, P1, V6] # ≠.ⴚ
+≠𐸁𹏁‌.ⴚ򳄠; ; [B1, C1, P1, V6]; xn--0ug83gn618a21ov.xn--ilj23531g; ; xn--1ch2293gv3nr.xn--ilj23531g; [B1, P1, V6] # ≠.ⴚ
+xn--1ch2293gv3nr.xn--ilj23531g; ≠𐸁𹏁.ⴚ򳄠; [B1, V6]; xn--1ch2293gv3nr.xn--ilj23531g; ; ; # ≠.ⴚ
+xn--0ug83gn618a21ov.xn--ilj23531g; ≠𐸁𹏁‌.ⴚ򳄠; [B1, C1, V6]; xn--0ug83gn618a21ov.xn--ilj23531g; ; ; # ≠.ⴚ
+xn--1ch2293gv3nr.xn--ynd49496l; ≠𐸁𹏁.Ⴚ򳄠; [B1, V6]; xn--1ch2293gv3nr.xn--ynd49496l; ; ; # ≠.Ⴚ
+xn--0ug83gn618a21ov.xn--ynd49496l; ≠𐸁𹏁‌.Ⴚ򳄠; [B1, C1, V6]; xn--0ug83gn618a21ov.xn--ynd49496l; ; ; # ≠.Ⴚ
+٩。󠇀𑇊; ٩.𑇊; [B1, B3, B6, V5]; xn--iib.xn--6d1d; ; ; # ٩.𑇊
+٩。󠇀𑇊; ٩.𑇊; [B1, B3, B6, V5]; xn--iib.xn--6d1d; ; ; # ٩.𑇊
+xn--iib.xn--6d1d; ٩.𑇊; [B1, B3, B6, V5]; xn--iib.xn--6d1d; ; ; # ٩.𑇊
+ႆ𞶀≯⒍。-; ႆ𞶀≯⒍.-; [B1, P1, V3, V5, V6]; xn--hmd482gqqb8730g.-; ; ; # ႆ≯⒍.-
+ႆ𞶀≯⒍。-; ႆ𞶀≯⒍.-; [B1, P1, V3, V5, V6]; xn--hmd482gqqb8730g.-; ; ; # ႆ≯⒍.-
+ႆ𞶀≯6.。-; ႆ𞶀≯6..-; [B1, P1, V3, V5, V6, X4_2]; xn--6-oyg968k7h74b..-; [B1, P1, V3, V5, V6, A4_2]; ; # ႆ≯6..-
+ႆ𞶀≯6.。-; ႆ𞶀≯6..-; [B1, P1, V3, V5, V6, X4_2]; xn--6-oyg968k7h74b..-; [B1, P1, V3, V5, V6, A4_2]; ; # ႆ≯6..-
+xn--6-oyg968k7h74b..-; ႆ𞶀≯6..-; [B1, V3, V5, V6, X4_2]; xn--6-oyg968k7h74b..-; [B1, V3, V5, V6, A4_2]; ; # ႆ≯6..-
+xn--hmd482gqqb8730g.-; ႆ𞶀≯⒍.-; [B1, V3, V5, V6]; xn--hmd482gqqb8730g.-; ; ; # ႆ≯⒍.-
+឴.쮇-; ; [P1, V3, V5, V6]; xn--z3e.xn----938f; ; ; # .쮇-
+឴.쮇-; ឴.쮇-; [P1, V3, V5, V6]; xn--z3e.xn----938f; ; ; # .쮇-
+xn--z3e.xn----938f; ឴.쮇-; [V3, V5, V6]; xn--z3e.xn----938f; ; ; # .쮇-
+‌𑓂。⒈-􀪛; ‌𑓂.⒈-􀪛; [C1, P1, V6]; xn--0ugy057g.xn----dcp29674o; ; xn--wz1d.xn----dcp29674o; [P1, V5, V6] # 𑓂.⒈-
+‌𑓂。1.-􀪛; ‌𑓂.1.-􀪛; [C1, P1, V3, V6]; xn--0ugy057g.1.xn----rg03o; ; xn--wz1d.1.xn----rg03o; [P1, V3, V5, V6] # 𑓂.1.-
+xn--wz1d.1.xn----rg03o; 𑓂.1.-􀪛; [V3, V5, V6]; xn--wz1d.1.xn----rg03o; ; ; # 𑓂.1.-
+xn--0ugy057g.1.xn----rg03o; ‌𑓂.1.-􀪛; [C1, V3, V6]; xn--0ugy057g.1.xn----rg03o; ; ; # 𑓂.1.-
+xn--wz1d.xn----dcp29674o; 𑓂.⒈-􀪛; [V5, V6]; xn--wz1d.xn----dcp29674o; ; ; # 𑓂.⒈-
+xn--0ugy057g.xn----dcp29674o; ‌𑓂.⒈-􀪛; [C1, V6]; xn--0ugy057g.xn----dcp29674o; ; ; # 𑓂.⒈-
+⒈ﺮ‌。⃩🖞‌𖬴; ⒈ر‌.⃩🖞‌𖬴; [B1, C1, P1, V5, V6]; xn--wgb253kmfd.xn--0ugz6a8040fty5d; ; xn--wgb746m.xn--c1g6021kg18c; [B1, P1, V5, V6] # ⒈ر.⃩🖞𖬴
+1.ر‌。⃩🖞‌𖬴; 1.ر‌.⃩🖞‌𖬴; [B1, B3, C1, V5]; 1.xn--wgb253k.xn--0ugz6a8040fty5d; ; 1.xn--wgb.xn--c1g6021kg18c; [B1, V5] # 1.ر.⃩🖞𖬴
+1.xn--wgb.xn--c1g6021kg18c; 1.ر.⃩🖞𖬴; [B1, V5]; 1.xn--wgb.xn--c1g6021kg18c; ; ; # 1.ر.⃩🖞𖬴
+1.xn--wgb253k.xn--0ugz6a8040fty5d; 1.ر‌.⃩🖞‌𖬴; [B1, B3, C1, V5]; 1.xn--wgb253k.xn--0ugz6a8040fty5d; ; ; # 1.ر.⃩🖞𖬴
+xn--wgb746m.xn--c1g6021kg18c; ⒈ر.⃩🖞𖬴; [B1, V5, V6]; xn--wgb746m.xn--c1g6021kg18c; ; ; # ⒈ر.⃩🖞𖬴
+xn--wgb253kmfd.xn--0ugz6a8040fty5d; ⒈ر‌.⃩🖞‌𖬴; [B1, C1, V5, V6]; xn--wgb253kmfd.xn--0ugz6a8040fty5d; ; ; # ⒈ر.⃩🖞𖬴
+󌭇。𝟐ᮨߔ; 󌭇.2ᮨߔ; [B1, P1, V6]; xn--xm89d.xn--2-icd143m; ; ; # .2ᮨߔ
+󌭇。2ᮨߔ; 󌭇.2ᮨߔ; [B1, P1, V6]; xn--xm89d.xn--2-icd143m; ; ; # .2ᮨߔ
+xn--xm89d.xn--2-icd143m; 󌭇.2ᮨߔ; [B1, V6]; xn--xm89d.xn--2-icd143m; ; ; # .2ᮨߔ
+ﶏ򫳺.ς‍𐹷; مخم򫳺.ς‍𐹷; [B2, B3, B5, B6, C2, P1, V6]; xn--tgb9bb64691z.xn--3xa006lrp7n; ; xn--tgb9bb64691z.xn--4xa6667k; [B2, B3, B5, B6, P1, V6] # مخم.ς𐹷
+مخم򫳺.ς‍𐹷; ; [B2, B3, B5, B6, C2, P1, V6]; xn--tgb9bb64691z.xn--3xa006lrp7n; ; xn--tgb9bb64691z.xn--4xa6667k; [B2, B3, B5, B6, P1, V6] # مخم.ς𐹷
+مخم򫳺.Σ‍𐹷; مخم򫳺.σ‍𐹷; [B2, B3, B5, B6, C2, P1, V6]; xn--tgb9bb64691z.xn--4xa895lrp7n; ; xn--tgb9bb64691z.xn--4xa6667k; [B2, B3, B5, B6, P1, V6] # مخم.σ𐹷
+مخم򫳺.σ‍𐹷; ; [B2, B3, B5, B6, C2, P1, V6]; xn--tgb9bb64691z.xn--4xa895lrp7n; ; xn--tgb9bb64691z.xn--4xa6667k; [B2, B3, B5, B6, P1, V6] # مخم.σ𐹷
+xn--tgb9bb64691z.xn--4xa6667k; مخم򫳺.σ𐹷; [B2, B3, B5, B6, V6]; xn--tgb9bb64691z.xn--4xa6667k; ; ; # مخم.σ𐹷
+xn--tgb9bb64691z.xn--4xa895lrp7n; مخم򫳺.σ‍𐹷; [B2, B3, B5, B6, C2, V6]; xn--tgb9bb64691z.xn--4xa895lrp7n; ; ; # مخم.σ𐹷
+xn--tgb9bb64691z.xn--3xa006lrp7n; مخم򫳺.ς‍𐹷; [B2, B3, B5, B6, C2, V6]; xn--tgb9bb64691z.xn--3xa006lrp7n; ; ; # مخم.ς𐹷
+ﶏ򫳺.Σ‍𐹷; مخم򫳺.σ‍𐹷; [B2, B3, B5, B6, C2, P1, V6]; xn--tgb9bb64691z.xn--4xa895lrp7n; ; xn--tgb9bb64691z.xn--4xa6667k; [B2, B3, B5, B6, P1, V6] # مخم.σ𐹷
+ﶏ򫳺.σ‍𐹷; مخم򫳺.σ‍𐹷; [B2, B3, B5, B6, C2, P1, V6]; xn--tgb9bb64691z.xn--4xa895lrp7n; ; xn--tgb9bb64691z.xn--4xa6667k; [B2, B3, B5, B6, P1, V6] # مخم.σ𐹷
+⒎ہ؅。꫶۵𐇽; ⒎ہ؅.꫶۵𐇽; [B1, P1, V5, V6]; xn--nfb98ai25e.xn--imb3805fxt8b; ; ; # ⒎ہ.꫶۵𐇽
+7.ہ؅。꫶۵𐇽; 7.ہ؅.꫶۵𐇽; [B1, P1, V5, V6]; 7.xn--nfb98a.xn--imb3805fxt8b; ; ; # 7.ہ.꫶۵𐇽
+7.xn--nfb98a.xn--imb3805fxt8b; 7.ہ؅.꫶۵𐇽; [B1, V5, V6]; 7.xn--nfb98a.xn--imb3805fxt8b; ; ; # 7.ہ.꫶۵𐇽
+xn--nfb98ai25e.xn--imb3805fxt8b; ⒎ہ؅.꫶۵𐇽; [B1, V5, V6]; xn--nfb98ai25e.xn--imb3805fxt8b; ; ; # ⒎ہ.꫶۵𐇽
+-ᡥ᠆󍲭。؅ᩝ𐹡; -ᡥ᠆󍲭.؅ᩝ𐹡; [B1, P1, V3, V6]; xn----f3j6s87156i.xn--nfb035hoo2p; ; ; # -ᡥ᠆.ᩝ𐹡
+xn----f3j6s87156i.xn--nfb035hoo2p; -ᡥ᠆󍲭.؅ᩝ𐹡; [B1, V3, V6]; xn----f3j6s87156i.xn--nfb035hoo2p; ; ; # -ᡥ᠆.ᩝ𐹡
+‍.ڽ٣֖; ; [B1, C2]; xn--1ug.xn--hcb32bni; ; .xn--hcb32bni; [A4_2] # .ڽ٣֖
+.xn--hcb32bni; .ڽ٣֖; [X4_2]; .xn--hcb32bni; [A4_2]; ; # .ڽ٣֖
+xn--1ug.xn--hcb32bni; ‍.ڽ٣֖; [B1, C2]; xn--1ug.xn--hcb32bni; ; ; # .ڽ٣֖
+xn--hcb32bni; ڽ٣֖; ; xn--hcb32bni; ; ; # ڽ٣֖
+ڽ٣֖; ; ; xn--hcb32bni; ; ; # ڽ٣֖
+㒧۱.Ⴚٸ‍; 㒧۱.Ⴚيٴ‍; [B5, B6, C2, P1, V6]; xn--emb715u.xn--mhb8f817ao2p; ; xn--emb715u.xn--mhb8f817a; [B5, B6, P1, V6] # 㒧۱.Ⴚيٴ
+㒧۱.Ⴚيٴ‍; ; [B5, B6, C2, P1, V6]; xn--emb715u.xn--mhb8f817ao2p; ; xn--emb715u.xn--mhb8f817a; [B5, B6, P1, V6] # 㒧۱.Ⴚيٴ
+㒧۱.ⴚيٴ‍; ; [B5, B6, C2]; xn--emb715u.xn--mhb8f960g03l; ; xn--emb715u.xn--mhb8fy26k; [B5, B6] # 㒧۱.ⴚيٴ
+xn--emb715u.xn--mhb8fy26k; 㒧۱.ⴚيٴ; [B5, B6]; xn--emb715u.xn--mhb8fy26k; ; ; # 㒧۱.ⴚيٴ
+xn--emb715u.xn--mhb8f960g03l; 㒧۱.ⴚيٴ‍; [B5, B6, C2]; xn--emb715u.xn--mhb8f960g03l; ; ; # 㒧۱.ⴚيٴ
+xn--emb715u.xn--mhb8f817a; 㒧۱.Ⴚيٴ; [B5, B6, V6]; xn--emb715u.xn--mhb8f817a; ; ; # 㒧۱.Ⴚيٴ
+xn--emb715u.xn--mhb8f817ao2p; 㒧۱.Ⴚيٴ‍; [B5, B6, C2, V6]; xn--emb715u.xn--mhb8f817ao2p; ; ; # 㒧۱.Ⴚيٴ
+㒧۱.ⴚٸ‍; 㒧۱.ⴚيٴ‍; [B5, B6, C2]; xn--emb715u.xn--mhb8f960g03l; ; xn--emb715u.xn--mhb8fy26k; [B5, B6] # 㒧۱.ⴚيٴ
+ྔꡋ-.-𖬴; ྔꡋ-.-𖬴; [V3, V5]; xn----ukg9938i.xn----4u5m; ; ; # ྔꡋ-.-𖬴
+ྔꡋ-.-𖬴; ; [V3, V5]; xn----ukg9938i.xn----4u5m; ; ; # ྔꡋ-.-𖬴
+xn----ukg9938i.xn----4u5m; ྔꡋ-.-𖬴; [V3, V5]; xn----ukg9938i.xn----4u5m; ; ; # ྔꡋ-.-𖬴
+񿒳-⋢‌.标-; 񿒳-⋢‌.标-; [C1, P1, V3, V6]; xn----sgn90kn5663a.xn----qj7b; ; xn----9mo67451g.xn----qj7b; [P1, V3, V6] # -⋢.标-
+񿒳-⋢‌.标-; 񿒳-⋢‌.标-; [C1, P1, V3, V6]; xn----sgn90kn5663a.xn----qj7b; ; xn----9mo67451g.xn----qj7b; [P1, V3, V6] # -⋢.标-
+񿒳-⋢‌.标-; ; [C1, P1, V3, V6]; xn----sgn90kn5663a.xn----qj7b; ; xn----9mo67451g.xn----qj7b; [P1, V3, V6] # -⋢.标-
+񿒳-⋢‌.标-; 񿒳-⋢‌.标-; [C1, P1, V3, V6]; xn----sgn90kn5663a.xn----qj7b; ; xn----9mo67451g.xn----qj7b; [P1, V3, V6] # -⋢.标-
+xn----9mo67451g.xn----qj7b; 񿒳-⋢.标-; [V3, V6]; xn----9mo67451g.xn----qj7b; ; ; # -⋢.标-
+xn----sgn90kn5663a.xn----qj7b; 񿒳-⋢‌.标-; [C1, V3, V6]; xn----sgn90kn5663a.xn----qj7b; ; ; # -⋢.标-
+ٱ.ςߜ; ٱ.ςߜ; [B5, B6]; xn--qib.xn--3xa41s; ; xn--qib.xn--4xa21s; # ٱ.ςߜ
+ٱ.ςߜ; ; [B5, B6]; xn--qib.xn--3xa41s; ; xn--qib.xn--4xa21s; # ٱ.ςߜ
+ٱ.Σߜ; ٱ.σߜ; [B5, B6]; xn--qib.xn--4xa21s; ; ; # ٱ.σߜ
+ٱ.σߜ; ; [B5, B6]; xn--qib.xn--4xa21s; ; ; # ٱ.σߜ
+xn--qib.xn--4xa21s; ٱ.σߜ; [B5, B6]; xn--qib.xn--4xa21s; ; ; # ٱ.σߜ
+xn--qib.xn--3xa41s; ٱ.ςߜ; [B5, B6]; xn--qib.xn--3xa41s; ; ; # ٱ.ςߜ
+ٱ.Σߜ; ٱ.σߜ; [B5, B6]; xn--qib.xn--4xa21s; ; ; # ٱ.σߜ
+ٱ.σߜ; ٱ.σߜ; [B5, B6]; xn--qib.xn--4xa21s; ; ; # ٱ.σߜ
+񼈶؅.ࣁ‍𑑂𱼱; 񼈶؅.ࣁ‍𑑂𱼱; [B2, B3, B5, B6, C2, P1, V6]; xn--nfb17942h.xn--nzb240jv06otevq; ; xn--nfb17942h.xn--nzb6708kx3pn; [B2, B3, B5, B6, P1, V6] # .𑑂
+񼈶؅.ࣁ‍𑑂𱼱; ; [B2, B3, B5, B6, C2, P1, V6]; xn--nfb17942h.xn--nzb240jv06otevq; ; xn--nfb17942h.xn--nzb6708kx3pn; [B2, B3, B5, B6, P1, V6] # .𑑂
+xn--nfb17942h.xn--nzb6708kx3pn; 񼈶؅.ࣁ𑑂𱼱; [B2, B3, B5, B6, V6]; xn--nfb17942h.xn--nzb6708kx3pn; ; ; # .𑑂
+xn--nfb17942h.xn--nzb240jv06otevq; 񼈶؅.ࣁ‍𑑂𱼱; [B2, B3, B5, B6, C2, V6]; xn--nfb17942h.xn--nzb240jv06otevq; ; ; # .𑑂
+𐹾𐋩𞵜。᯲; 𐹾𐋩𞵜.᯲; [B1, P1, V5, V6]; xn--d97cn8rn44p.xn--0zf; ; ; # 𐹾𐋩.᯲
+𐹾𐋩𞵜。᯲; 𐹾𐋩𞵜.᯲; [B1, P1, V5, V6]; xn--d97cn8rn44p.xn--0zf; ; ; # 𐹾𐋩.᯲
+xn--d97cn8rn44p.xn--0zf; 𐹾𐋩𞵜.᯲; [B1, V5, V6]; xn--d97cn8rn44p.xn--0zf; ; ; # 𐹾𐋩.᯲
+6ᅠᰳ󠸧.򟜊锰ܬς; ; [B1, B5, P1, V6]; xn--6-5bh476ewr517a.xn--3xa16ohw6pk078g; ; xn--6-5bh476ewr517a.xn--4xa95ohw6pk078g; # 6ᰳ.锰ܬς
+6ᅠᰳ󠸧.򟜊锰ܬΣ; 6ᅠᰳ󠸧.򟜊锰ܬσ; [B1, B5, P1, V6]; xn--6-5bh476ewr517a.xn--4xa95ohw6pk078g; ; ; # 6ᰳ.锰ܬσ
+6ᅠᰳ󠸧.򟜊锰ܬσ; ; [B1, B5, P1, V6]; xn--6-5bh476ewr517a.xn--4xa95ohw6pk078g; ; ; # 6ᰳ.锰ܬσ
+xn--6-5bh476ewr517a.xn--4xa95ohw6pk078g; 6ᅠᰳ󠸧.򟜊锰ܬσ; [B1, B5, V6]; xn--6-5bh476ewr517a.xn--4xa95ohw6pk078g; ; ; # 6ᰳ.锰ܬσ
+xn--6-5bh476ewr517a.xn--3xa16ohw6pk078g; 6ᅠᰳ󠸧.򟜊锰ܬς; [B1, B5, V6]; xn--6-5bh476ewr517a.xn--3xa16ohw6pk078g; ; ; # 6ᰳ.锰ܬς
+ڳ︄񅎦𝟽。𐹽; ڳ񅎦7.𐹽; [B1, B2, P1, V6]; xn--7-yuc34665f.xn--1o0d; ; ; # ڳ7.𐹽
+ڳ︄񅎦7。𐹽; ڳ񅎦7.𐹽; [B1, B2, P1, V6]; xn--7-yuc34665f.xn--1o0d; ; ; # ڳ7.𐹽
+xn--7-yuc34665f.xn--1o0d; ڳ񅎦7.𐹽; [B1, B2, V6]; xn--7-yuc34665f.xn--1o0d; ; ; # ڳ7.𐹽
+𞮧.‌⫞; 𞮧.‌⫞; [B1, C1, P1, V6]; xn--pw6h.xn--0ug283b; ; xn--pw6h.xn--53i; [B1, P1, V6] # .⫞
+𞮧.‌⫞; ; [B1, C1, P1, V6]; xn--pw6h.xn--0ug283b; ; xn--pw6h.xn--53i; [B1, P1, V6] # .⫞
+xn--pw6h.xn--53i; 𞮧.⫞; [B1, V6]; xn--pw6h.xn--53i; ; ; # .⫞
+xn--pw6h.xn--0ug283b; 𞮧.‌⫞; [B1, C1, V6]; xn--pw6h.xn--0ug283b; ; ; # .⫞
+-񕉴.۠ᢚ-; ; [P1, V3, V5, V6]; xn----qi38c.xn----jxc827k; ; ; # -.۠ᢚ-
+xn----qi38c.xn----jxc827k; -񕉴.۠ᢚ-; [V3, V5, V6]; xn----qi38c.xn----jxc827k; ; ; # -.۠ᢚ-
+⌁‍𑄴.‌𝟩٬; ⌁‍𑄴.‌7٬; [B1, C1, C2]; xn--1ug38i2093a.xn--7-xqc297q; ; xn--nhh5394g.xn--7-xqc; [B1] # ⌁𑄴.7٬
+⌁‍𑄴.‌7٬; ; [B1, C1, C2]; xn--1ug38i2093a.xn--7-xqc297q; ; xn--nhh5394g.xn--7-xqc; [B1] # ⌁𑄴.7٬
+xn--nhh5394g.xn--7-xqc; ⌁𑄴.7٬; [B1]; xn--nhh5394g.xn--7-xqc; ; ; # ⌁𑄴.7٬
+xn--1ug38i2093a.xn--7-xqc297q; ⌁‍𑄴.‌7٬; [B1, C1, C2]; xn--1ug38i2093a.xn--7-xqc297q; ; ; # ⌁𑄴.7٬
+︒ﴅืﻼ。岓᯲󠾃ᡂ; ︒صىืلا.岓᯲󠾃ᡂ; [B1, P1, V6]; xn--mgb1a7bt462hf267a.xn--17e10qe61f9r71s; ; ; # ︒صىืلا.岓᯲ᡂ
+。صىืلا。岓᯲󠾃ᡂ; .صىืلا.岓᯲󠾃ᡂ; [P1, V6, X4_2]; .xn--mgb1a7bt462h.xn--17e10qe61f9r71s; [P1, V6, A4_2]; ; # .صىืلا.岓᯲ᡂ
+.xn--mgb1a7bt462h.xn--17e10qe61f9r71s; .صىืلا.岓᯲󠾃ᡂ; [V6, X4_2]; .xn--mgb1a7bt462h.xn--17e10qe61f9r71s; [V6, A4_2]; ; # .صىืلا.岓᯲ᡂ
+xn--mgb1a7bt462hf267a.xn--17e10qe61f9r71s; ︒صىืلا.岓᯲󠾃ᡂ; [B1, V6]; xn--mgb1a7bt462hf267a.xn--17e10qe61f9r71s; ; ; # ︒صىืلا.岓᯲ᡂ
+𐹨。8𑁆; 𐹨.8𑁆; [B1]; xn--go0d.xn--8-yu7i; ; ; # 𐹨.8𑁆
+xn--go0d.xn--8-yu7i; 𐹨.8𑁆; [B1]; xn--go0d.xn--8-yu7i; ; ; # 𐹨.8𑁆
+𞀕ൃ.ꡚࣺ𐹰ൄ; 𞀕ൃ.ꡚࣺ𐹰ൄ; [B1, B3, B5, B6, V5]; xn--mxc5210v.xn--90b01t8u2p1ltd; ; ; # 𞀕ൃ.ꡚࣺ𐹰ൄ
+𞀕ൃ.ꡚࣺ𐹰ൄ; ; [B1, B3, B5, B6, V5]; xn--mxc5210v.xn--90b01t8u2p1ltd; ; ; # 𞀕ൃ.ꡚࣺ𐹰ൄ
+xn--mxc5210v.xn--90b01t8u2p1ltd; 𞀕ൃ.ꡚࣺ𐹰ൄ; [B1, B3, B5, B6, V5]; xn--mxc5210v.xn--90b01t8u2p1ltd; ; ; # 𞀕ൃ.ꡚࣺ𐹰ൄ
+󆩏𐦹̃。󠍅; 󆩏𐦹̃.󠍅; [B1, B5, B6, P1, V6]; xn--nsa1265kp9z9e.xn--xt36e; ; ; # ̃.
+󆩏𐦹̃。󠍅; 󆩏𐦹̃.󠍅; [B1, B5, B6, P1, V6]; xn--nsa1265kp9z9e.xn--xt36e; ; ; # ̃.
+xn--nsa1265kp9z9e.xn--xt36e; 󆩏𐦹̃.󠍅; [B1, B5, B6, V6]; xn--nsa1265kp9z9e.xn--xt36e; ; ; # ̃.
+ᢌ.-࡚; ᢌ.-࡚; [V3]; xn--59e.xn----5jd; ; ; # ᢌ.-࡚
+ᢌ.-࡚; ; [V3]; xn--59e.xn----5jd; ; ; # ᢌ.-࡚
+xn--59e.xn----5jd; ᢌ.-࡚; [V3]; xn--59e.xn----5jd; ; ; # ᢌ.-࡚
+𥛛𑘶。𐹬𐲸்; 𥛛𑘶.𐹬𐲸்; [B1, P1, V6]; xn--jb2dj685c.xn--xmc5562kmcb; ; ; # 𥛛𑘶.𐹬்
+𥛛𑘶。𐹬𐲸்; 𥛛𑘶.𐹬𐲸்; [B1, P1, V6]; xn--jb2dj685c.xn--xmc5562kmcb; ; ; # 𥛛𑘶.𐹬்
+xn--jb2dj685c.xn--xmc5562kmcb; 𥛛𑘶.𐹬𐲸்; [B1, V6]; xn--jb2dj685c.xn--xmc5562kmcb; ; ; # 𥛛𑘶.𐹬்
+Ⴐݿ.‌; Ⴐݿ.‌; [B1, B5, B6, C1, P1, V6]; xn--gqb918b.xn--0ug; ; xn--gqb918b.; [B5, B6, P1, V6] # Ⴐݿ.
+Ⴐݿ.‌; ; [B1, B5, B6, C1, P1, V6]; xn--gqb918b.xn--0ug; ; xn--gqb918b.; [B5, B6, P1, V6] # Ⴐݿ.
+ⴐݿ.‌; ; [B1, B5, B6, C1]; xn--gqb743q.xn--0ug; ; xn--gqb743q.; [B5, B6] # ⴐݿ.
+xn--gqb743q.; ⴐݿ.; [B5, B6]; xn--gqb743q.; ; ; # ⴐݿ.
+xn--gqb743q.xn--0ug; ⴐݿ.‌; [B1, B5, B6, C1]; xn--gqb743q.xn--0ug; ; ; # ⴐݿ.
+xn--gqb918b.; Ⴐݿ.; [B5, B6, V6]; xn--gqb918b.; ; ; # Ⴐݿ.
+xn--gqb918b.xn--0ug; Ⴐݿ.‌; [B1, B5, B6, C1, V6]; xn--gqb918b.xn--0ug; ; ; # Ⴐݿ.
+ⴐݿ.‌; ⴐݿ.‌; [B1, B5, B6, C1]; xn--gqb743q.xn--0ug; ; xn--gqb743q.; [B5, B6] # ⴐݿ.
+🄅𑲞-⒈。‍ᠩڥ; 🄅𑲞-⒈.‍ᠩڥ; [B1, C2, P1, V6]; xn----ecp8796hjtvg.xn--7jb180gexf; ; xn----ecp8796hjtvg.xn--7jb180g; [B1, B5, B6, P1, V6] # 🄅𑲞-⒈.ᠩڥ
+4,𑲞-1.。‍ᠩڥ; 4,𑲞-1..‍ᠩڥ; [B1, C2, P1, V6, X4_2]; xn--4,-1-w401a..xn--7jb180gexf; [B1, C2, P1, V6, A4_2]; xn--4,-1-w401a..xn--7jb180g; [B1, B5, B6, P1, V6, A4_2] # 4,𑲞-1..ᠩڥ
+xn--4,-1-w401a..xn--7jb180g; 4,𑲞-1..ᠩڥ; [B1, B5, B6, P1, V6, X4_2]; xn--4,-1-w401a..xn--7jb180g; [B1, B5, B6, P1, V6, A4_2]; ; # 4,𑲞-1..ᠩڥ
+xn--4,-1-w401a..xn--7jb180gexf; 4,𑲞-1..‍ᠩڥ; [B1, C2, P1, V6, X4_2]; xn--4,-1-w401a..xn--7jb180gexf; [B1, C2, P1, V6, A4_2]; ; # 4,𑲞-1..ᠩڥ
+xn----ecp8796hjtvg.xn--7jb180g; 🄅𑲞-⒈.ᠩڥ; [B1, B5, B6, V6]; xn----ecp8796hjtvg.xn--7jb180g; ; ; # 🄅𑲞-⒈.ᠩڥ
+xn----ecp8796hjtvg.xn--7jb180gexf; 🄅𑲞-⒈.‍ᠩڥ; [B1, C2, V6]; xn----ecp8796hjtvg.xn--7jb180gexf; ; ; # 🄅𑲞-⒈.ᠩڥ
+񗀤。𞤪򮿋; 񗀤.𞤪򮿋; [B2, B3, P1, V6]; xn--4240a.xn--ie6h83808a; ; ; # .𞤪
+񗀤。𞤈򮿋; 񗀤.𞤪򮿋; [B2, B3, P1, V6]; xn--4240a.xn--ie6h83808a; ; ; # .𞤪
+xn--4240a.xn--ie6h83808a; 񗀤.𞤪򮿋; [B2, B3, V6]; xn--4240a.xn--ie6h83808a; ; ; # .𞤪
+ׁ۲。𐮊٬𝨊鄨; ׁ۲.𐮊٬𝨊鄨; [B1, B2, B3, V5]; xn--pdb42d.xn--lib6412enztdwv6h; ; ; # ׁ۲.𐮊٬𝨊鄨
+ׁ۲。𐮊٬𝨊鄨; ׁ۲.𐮊٬𝨊鄨; [B1, B2, B3, V5]; xn--pdb42d.xn--lib6412enztdwv6h; ; ; # ׁ۲.𐮊٬𝨊鄨
+xn--pdb42d.xn--lib6412enztdwv6h; ׁ۲.𐮊٬𝨊鄨; [B1, B2, B3, V5]; xn--pdb42d.xn--lib6412enztdwv6h; ; ; # ׁ۲.𐮊٬𝨊鄨
+𞭳-ꡁ。ᩩ்-; 𞭳-ꡁ.ᩩ்-; [B1, B2, B3, P1, V3, V5, V6]; xn----be4e4276f.xn----lze333i; ; ; # -ꡁ.ᩩ்-
+xn----be4e4276f.xn----lze333i; 𞭳-ꡁ.ᩩ்-; [B1, B2, B3, V3, V5, V6]; xn----be4e4276f.xn----lze333i; ; ; # -ꡁ.ᩩ்-
+္-𚮭🞢.ß; ္-𚮭🞢.ß; [P1, V5, V6]; xn----9tg11172akr8b.xn--zca; ; xn----9tg11172akr8b.ss; # ္-🞢.ß
+္-𚮭🞢.ß; ; [P1, V5, V6]; xn----9tg11172akr8b.xn--zca; ; xn----9tg11172akr8b.ss; # ္-🞢.ß
+္-𚮭🞢.SS; ္-𚮭🞢.ss; [P1, V5, V6]; xn----9tg11172akr8b.ss; ; ; # ္-🞢.ss
+္-𚮭🞢.ss; ; [P1, V5, V6]; xn----9tg11172akr8b.ss; ; ; # ္-🞢.ss
+္-𚮭🞢.Ss; ္-𚮭🞢.ss; [P1, V5, V6]; xn----9tg11172akr8b.ss; ; ; # ္-🞢.ss
+xn----9tg11172akr8b.ss; ္-𚮭🞢.ss; [V5, V6]; xn----9tg11172akr8b.ss; ; ; # ္-🞢.ss
+xn----9tg11172akr8b.xn--zca; ္-𚮭🞢.ß; [V5, V6]; xn----9tg11172akr8b.xn--zca; ; ; # ္-🞢.ß
+္-𚮭🞢.SS; ္-𚮭🞢.ss; [P1, V5, V6]; xn----9tg11172akr8b.ss; ; ; # ္-🞢.ss
+္-𚮭🞢.ss; ္-𚮭🞢.ss; [P1, V5, V6]; xn----9tg11172akr8b.ss; ; ; # ္-🞢.ss
+္-𚮭🞢.Ss; ္-𚮭🞢.ss; [P1, V5, V6]; xn----9tg11172akr8b.ss; ; ; # ္-🞢.ss
+ﳲ-‌。Ⴟ‌␣; ـَّ-‌.Ⴟ‌␣; [B3, B6, C1, P1, V6]; xn----eoc6bm0504a.xn--3nd849e05c; ; xn----eoc6bm.xn--3nd240h; [B3, B6, P1, V3, V6] # ـَّ-.Ⴟ␣
+ـَّ-‌。Ⴟ‌␣; ـَّ-‌.Ⴟ‌␣; [B3, B6, C1, P1, V6]; xn----eoc6bm0504a.xn--3nd849e05c; ; xn----eoc6bm.xn--3nd240h; [B3, B6, P1, V3, V6] # ـَّ-.Ⴟ␣
+ـَّ-‌。ⴟ‌␣; ـَّ-‌.ⴟ‌␣; [B3, B6, C1]; xn----eoc6bm0504a.xn--0ug13nd0j; ; xn----eoc6bm.xn--xph904a; [B3, B6, V3] # ـَّ-.ⴟ␣
+xn----eoc6bm.xn--xph904a; ـَّ-.ⴟ␣; [B3, B6, V3]; xn----eoc6bm.xn--xph904a; ; ; # ـَّ-.ⴟ␣
+xn----eoc6bm0504a.xn--0ug13nd0j; ـَّ-‌.ⴟ‌␣; [B3, B6, C1]; xn----eoc6bm0504a.xn--0ug13nd0j; ; ; # ـَّ-.ⴟ␣
+xn----eoc6bm.xn--3nd240h; ـَّ-.Ⴟ␣; [B3, B6, V3, V6]; xn----eoc6bm.xn--3nd240h; ; ; # ـَّ-.Ⴟ␣
+xn----eoc6bm0504a.xn--3nd849e05c; ـَّ-‌.Ⴟ‌␣; [B3, B6, C1, V6]; xn----eoc6bm0504a.xn--3nd849e05c; ; ; # ـَّ-.Ⴟ␣
+ﳲ-‌。ⴟ‌␣; ـَّ-‌.ⴟ‌␣; [B3, B6, C1]; xn----eoc6bm0504a.xn--0ug13nd0j; ; xn----eoc6bm.xn--xph904a; [B3, B6, V3] # ـَّ-.ⴟ␣
+്-‍‌。񥞧₅≠; ്-‍‌.񥞧5≠; [C1, C2, P1, V5, V6]; xn----jmf215lda.xn--5-ufo50192e; ; xn----jmf.xn--5-ufo50192e; [P1, V3, V5, V6] # ്-.5≠
+്-‍‌。񥞧₅≠; ്-‍‌.񥞧5≠; [C1, C2, P1, V5, V6]; xn----jmf215lda.xn--5-ufo50192e; ; xn----jmf.xn--5-ufo50192e; [P1, V3, V5, V6] # ്-.5≠
+്-‍‌。񥞧5≠; ്-‍‌.񥞧5≠; [C1, C2, P1, V5, V6]; xn----jmf215lda.xn--5-ufo50192e; ; xn----jmf.xn--5-ufo50192e; [P1, V3, V5, V6] # ്-.5≠
+്-‍‌。񥞧5≠; ്-‍‌.񥞧5≠; [C1, C2, P1, V5, V6]; xn----jmf215lda.xn--5-ufo50192e; ; xn----jmf.xn--5-ufo50192e; [P1, V3, V5, V6] # ്-.5≠
+xn----jmf.xn--5-ufo50192e; ്-.񥞧5≠; [V3, V5, V6]; xn----jmf.xn--5-ufo50192e; ; ; # ്-.5≠
+xn----jmf215lda.xn--5-ufo50192e; ്-‍‌.񥞧5≠; [C1, C2, V5, V6]; xn----jmf215lda.xn--5-ufo50192e; ; ; # ്-.5≠
+锣。੍󠘻󠚆; 锣.੍󠘻󠚆; [P1, V5, V6]; xn--gc5a.xn--ybc83044ppga; ; ; # 锣.੍
+xn--gc5a.xn--ybc83044ppga; 锣.੍󠘻󠚆; [V5, V6]; xn--gc5a.xn--ybc83044ppga; ; ; # 锣.੍
+ؽ𑈾.ى‍꤫; ؽ𑈾.ى‍꤫; [B3, C2]; xn--8gb2338k.xn--lhb603k060h; ; xn--8gb2338k.xn--lhb0154f; [] # ؽ𑈾.ى꤫
+ؽ𑈾.ى‍꤫; ; [B3, C2]; xn--8gb2338k.xn--lhb603k060h; ; xn--8gb2338k.xn--lhb0154f; [] # ؽ𑈾.ى꤫
+xn--8gb2338k.xn--lhb0154f; ؽ𑈾.ى꤫; ; xn--8gb2338k.xn--lhb0154f; ; ; # ؽ𑈾.ى꤫
+ؽ𑈾.ى꤫; ; ; xn--8gb2338k.xn--lhb0154f; ; ; # ؽ𑈾.ى꤫
+xn--8gb2338k.xn--lhb603k060h; ؽ𑈾.ى‍꤫; [B3, C2]; xn--8gb2338k.xn--lhb603k060h; ; ; # ؽ𑈾.ى꤫
+٦⁴Ⴅ.ࢽ‌; ٦4Ⴅ.ࢽ‌; [B1, B3, C1, P1, V6]; xn--4-kqc489e.xn--jzb840j; ; xn--4-kqc489e.xn--jzb; [B1, P1, V6] # ٦4Ⴅ.ࢽ
+٦4Ⴅ.ࢽ‌; ; [B1, B3, C1, P1, V6]; xn--4-kqc489e.xn--jzb840j; ; xn--4-kqc489e.xn--jzb; [B1, P1, V6] # ٦4Ⴅ.ࢽ
+٦4ⴅ.ࢽ‌; ; [B1, B3, C1]; xn--4-kqc6770a.xn--jzb840j; ; xn--4-kqc6770a.xn--jzb; [B1] # ٦4ⴅ.ࢽ
+xn--4-kqc6770a.xn--jzb; ٦4ⴅ.ࢽ; [B1]; xn--4-kqc6770a.xn--jzb; ; ; # ٦4ⴅ.ࢽ
+xn--4-kqc6770a.xn--jzb840j; ٦4ⴅ.ࢽ‌; [B1, B3, C1]; xn--4-kqc6770a.xn--jzb840j; ; ; # ٦4ⴅ.ࢽ
+xn--4-kqc489e.xn--jzb; ٦4Ⴅ.ࢽ; [B1, V6]; xn--4-kqc489e.xn--jzb; ; ; # ٦4Ⴅ.ࢽ
+xn--4-kqc489e.xn--jzb840j; ٦4Ⴅ.ࢽ‌; [B1, B3, C1, V6]; xn--4-kqc489e.xn--jzb840j; ; ; # ٦4Ⴅ.ࢽ
+٦⁴ⴅ.ࢽ‌; ٦4ⴅ.ࢽ‌; [B1, B3, C1]; xn--4-kqc6770a.xn--jzb840j; ; xn--4-kqc6770a.xn--jzb; [B1] # ٦4ⴅ.ࢽ
+ჁႱ6̘。ßᬃ; ჁႱ6̘.ßᬃ; [P1, V6]; xn--6-8cb555h2b.xn--zca894k; ; xn--6-8cb555h2b.xn--ss-2vq; # ჁႱ6̘.ßᬃ
+ⴡⴑ6̘。ßᬃ; ⴡⴑ6̘.ßᬃ; ; xn--6-8cb7433a2ba.xn--zca894k; ; xn--6-8cb7433a2ba.xn--ss-2vq; # ⴡⴑ6̘.ßᬃ
+ჁႱ6̘。SSᬃ; ჁႱ6̘.ssᬃ; [P1, V6]; xn--6-8cb555h2b.xn--ss-2vq; ; ; # ჁႱ6̘.ssᬃ
+ⴡⴑ6̘。ssᬃ; ⴡⴑ6̘.ssᬃ; ; xn--6-8cb7433a2ba.xn--ss-2vq; ; ; # ⴡⴑ6̘.ssᬃ
+Ⴡⴑ6̘。Ssᬃ; Ⴡⴑ6̘.ssᬃ; [P1, V6]; xn--6-8cb306hms1a.xn--ss-2vq; ; ; # Ⴡⴑ6̘.ssᬃ
+xn--6-8cb306hms1a.xn--ss-2vq; Ⴡⴑ6̘.ssᬃ; [V6]; xn--6-8cb306hms1a.xn--ss-2vq; ; ; # Ⴡⴑ6̘.ssᬃ
+xn--6-8cb7433a2ba.xn--ss-2vq; ⴡⴑ6̘.ssᬃ; ; xn--6-8cb7433a2ba.xn--ss-2vq; ; ; # ⴡⴑ6̘.ssᬃ
+ⴡⴑ6̘.ssᬃ; ; ; xn--6-8cb7433a2ba.xn--ss-2vq; ; ; # ⴡⴑ6̘.ssᬃ
+ჁႱ6̘.SSᬃ; ჁႱ6̘.ssᬃ; [P1, V6]; xn--6-8cb555h2b.xn--ss-2vq; ; ; # ჁႱ6̘.ssᬃ
+Ⴡⴑ6̘.Ssᬃ; Ⴡⴑ6̘.ssᬃ; [P1, V6]; xn--6-8cb306hms1a.xn--ss-2vq; ; ; # Ⴡⴑ6̘.ssᬃ
+xn--6-8cb555h2b.xn--ss-2vq; ჁႱ6̘.ssᬃ; [V6]; xn--6-8cb555h2b.xn--ss-2vq; ; ; # ჁႱ6̘.ssᬃ
+xn--6-8cb7433a2ba.xn--zca894k; ⴡⴑ6̘.ßᬃ; ; xn--6-8cb7433a2ba.xn--zca894k; ; ; # ⴡⴑ6̘.ßᬃ
+ⴡⴑ6̘.ßᬃ; ; ; xn--6-8cb7433a2ba.xn--zca894k; ; xn--6-8cb7433a2ba.xn--ss-2vq; # ⴡⴑ6̘.ßᬃ
+xn--6-8cb555h2b.xn--zca894k; ჁႱ6̘.ßᬃ; [V6]; xn--6-8cb555h2b.xn--zca894k; ; ; # ჁႱ6̘.ßᬃ
+򋡐。≯𑋪; 򋡐.≯𑋪; [P1, V6]; xn--eo08b.xn--hdh3385g; ; ; # .≯𑋪
+򋡐。≯𑋪; 򋡐.≯𑋪; [P1, V6]; xn--eo08b.xn--hdh3385g; ; ; # .≯𑋪
+򋡐。≯𑋪; 򋡐.≯𑋪; [P1, V6]; xn--eo08b.xn--hdh3385g; ; ; # .≯𑋪
+򋡐。≯𑋪; 򋡐.≯𑋪; [P1, V6]; xn--eo08b.xn--hdh3385g; ; ; # .≯𑋪
+xn--eo08b.xn--hdh3385g; 򋡐.≯𑋪; [V6]; xn--eo08b.xn--hdh3385g; ; ; # .≯𑋪
+ٚ۲。‌-᯳࣢; ٚ۲.‌-᯳࣢; [B1, C1, P1, V5, V6]; xn--2hb81a.xn----xrd657l30d; ; xn--2hb81a.xn----xrd657l; [B1, P1, V3, V5, V6] # ٚ۲.-᯳
+xn--2hb81a.xn----xrd657l; ٚ۲.-᯳࣢; [B1, V3, V5, V6]; xn--2hb81a.xn----xrd657l; ; ; # ٚ۲.-᯳
+xn--2hb81a.xn----xrd657l30d; ٚ۲.‌-᯳࣢; [B1, C1, V5, V6]; xn--2hb81a.xn----xrd657l30d; ; ; # ٚ۲.-᯳
+󠄏𖬴󠲽。ᅠ; 𖬴󠲽.ᅠ; [P1, V5, V6]; xn--619ep9154c.xn--cl7c; ; ; # 𖬴.
+󠄏𖬴󠲽。ᅠ; 𖬴󠲽.ᅠ; [P1, V5, V6]; xn--619ep9154c.xn--psd; ; ; # 𖬴.
+xn--619ep9154c.xn--psd; 𖬴󠲽.ᅠ; [V5, V6]; xn--619ep9154c.xn--psd; ; ; # 𖬴.
+xn--619ep9154c.xn--cl7c; 𖬴󠲽.ᅠ; [V5, V6]; xn--619ep9154c.xn--cl7c; ; ; # 𖬴.
+ß⒈ݠ힮.􉖲󠅄؅򉔯; ß⒈ݠ힮.􉖲؅򉔯; [B5, P1, V6]; xn--zca444a0s1ao12n.xn--nfb09923ifkyyb; ; xn--ss-6ke9690a0g1q.xn--nfb09923ifkyyb; # ß⒈ݠ.
+ß1.ݠ힮.􉖲󠅄؅򉔯; ß1.ݠ힮.􉖲؅򉔯; [B2, B3, B5, P1, V6]; xn--1-pfa.xn--kpb6677h.xn--nfb09923ifkyyb; ; ss1.xn--kpb6677h.xn--nfb09923ifkyyb; # ß1.ݠ.
+SS1.ݠ힮.􉖲󠅄؅򉔯; ss1.ݠ힮.􉖲؅򉔯; [B2, B3, B5, P1, V6]; ss1.xn--kpb6677h.xn--nfb09923ifkyyb; ; ; # ss1.ݠ.
+ss1.ݠ힮.􉖲󠅄؅򉔯; ss1.ݠ힮.􉖲؅򉔯; [B2, B3, B5, P1, V6]; ss1.xn--kpb6677h.xn--nfb09923ifkyyb; ; ; # ss1.ݠ.
+Ss1.ݠ힮.􉖲󠅄؅򉔯; ss1.ݠ힮.􉖲؅򉔯; [B2, B3, B5, P1, V6]; ss1.xn--kpb6677h.xn--nfb09923ifkyyb; ; ; # ss1.ݠ.
+ss1.xn--kpb6677h.xn--nfb09923ifkyyb; ss1.ݠ힮.􉖲؅򉔯; [B2, B3, B5, V6]; ss1.xn--kpb6677h.xn--nfb09923ifkyyb; ; ; # ss1.ݠ.
+xn--1-pfa.xn--kpb6677h.xn--nfb09923ifkyyb; ß1.ݠ힮.􉖲؅򉔯; [B2, B3, B5, V6]; xn--1-pfa.xn--kpb6677h.xn--nfb09923ifkyyb; ; ; # ß1.ݠ.
+SS⒈ݠ힮.􉖲󠅄؅򉔯; ss⒈ݠ힮.􉖲؅򉔯; [B5, P1, V6]; xn--ss-6ke9690a0g1q.xn--nfb09923ifkyyb; ; ; # ss⒈ݠ.
+ss⒈ݠ힮.􉖲󠅄؅򉔯; ss⒈ݠ힮.􉖲؅򉔯; [B5, P1, V6]; xn--ss-6ke9690a0g1q.xn--nfb09923ifkyyb; ; ; # ss⒈ݠ.
+Ss⒈ݠ힮.􉖲󠅄؅򉔯; ss⒈ݠ힮.􉖲؅򉔯; [B5, P1, V6]; xn--ss-6ke9690a0g1q.xn--nfb09923ifkyyb; ; ; # ss⒈ݠ.
+xn--ss-6ke9690a0g1q.xn--nfb09923ifkyyb; ss⒈ݠ힮.􉖲؅򉔯; [B5, V6]; xn--ss-6ke9690a0g1q.xn--nfb09923ifkyyb; ; ; # ss⒈ݠ.
+xn--zca444a0s1ao12n.xn--nfb09923ifkyyb; ß⒈ݠ힮.􉖲؅򉔯; [B5, V6]; xn--zca444a0s1ao12n.xn--nfb09923ifkyyb; ; ; # ß⒈ݠ.
+󠭔.𐋱₂; 󠭔.𐋱2; [P1, V6]; xn--vi56e.xn--2-w91i; ; ; # .𐋱2
+󠭔.𐋱2; ; [P1, V6]; xn--vi56e.xn--2-w91i; ; ; # .𐋱2
+xn--vi56e.xn--2-w91i; 󠭔.𐋱2; [V6]; xn--vi56e.xn--2-w91i; ; ; # .𐋱2
+ܖे。-ßڥ‌; ܖे.-ßڥ‌; [B1, C1, V3]; xn--gnb63i.xn----qfa845bhx4a; ; xn--gnb63i.xn---ss-4ef; [B1, V3] # ܖे.-ßڥ
+ܖे。-SSڥ‌; ܖे.-ssڥ‌; [B1, C1, V3]; xn--gnb63i.xn---ss-4ef9263a; ; xn--gnb63i.xn---ss-4ef; [B1, V3] # ܖे.-ssڥ
+ܖे。-ssڥ‌; ܖे.-ssڥ‌; [B1, C1, V3]; xn--gnb63i.xn---ss-4ef9263a; ; xn--gnb63i.xn---ss-4ef; [B1, V3] # ܖे.-ssڥ
+ܖे。-Ssڥ‌; ܖे.-ssڥ‌; [B1, C1, V3]; xn--gnb63i.xn---ss-4ef9263a; ; xn--gnb63i.xn---ss-4ef; [B1, V3] # ܖे.-ssڥ
+xn--gnb63i.xn---ss-4ef; ܖे.-ssڥ; [B1, V3]; xn--gnb63i.xn---ss-4ef; ; ; # ܖे.-ssڥ
+xn--gnb63i.xn---ss-4ef9263a; ܖे.-ssڥ‌; [B1, C1, V3]; xn--gnb63i.xn---ss-4ef9263a; ; ; # ܖे.-ssڥ
+xn--gnb63i.xn----qfa845bhx4a; ܖे.-ßڥ‌; [B1, C1, V3]; xn--gnb63i.xn----qfa845bhx4a; ; ; # ܖे.-ßڥ
+ᮩ‍ت񡚈.᳕䷉Ⴡ; ᮩ‍ت񡚈.᳕䷉Ⴡ; [B1, C2, P1, V5, V6]; xn--pgb911imgdrw34r.xn--5nd792dgv3b; ; xn--pgb911izv33i.xn--5nd792dgv3b; [B1, P1, V5, V6] # ᮩت.᳕䷉Ⴡ
+ᮩ‍ت񡚈.᳕䷉Ⴡ; ; [B1, C2, P1, V5, V6]; xn--pgb911imgdrw34r.xn--5nd792dgv3b; ; xn--pgb911izv33i.xn--5nd792dgv3b; [B1, P1, V5, V6] # ᮩت.᳕䷉Ⴡ
+ᮩ‍ت񡚈.᳕䷉ⴡ; ; [B1, C2, P1, V5, V6]; xn--pgb911imgdrw34r.xn--i6f270etuy; ; xn--pgb911izv33i.xn--i6f270etuy; [B1, P1, V5, V6] # ᮩت.᳕䷉ⴡ
+xn--pgb911izv33i.xn--i6f270etuy; ᮩت񡚈.᳕䷉ⴡ; [B1, V5, V6]; xn--pgb911izv33i.xn--i6f270etuy; ; ; # ᮩت.᳕䷉ⴡ
+xn--pgb911imgdrw34r.xn--i6f270etuy; ᮩ‍ت񡚈.᳕䷉ⴡ; [B1, C2, V5, V6]; xn--pgb911imgdrw34r.xn--i6f270etuy; ; ; # ᮩت.᳕䷉ⴡ
+xn--pgb911izv33i.xn--5nd792dgv3b; ᮩت񡚈.᳕䷉Ⴡ; [B1, V5, V6]; xn--pgb911izv33i.xn--5nd792dgv3b; ; ; # ᮩت.᳕䷉Ⴡ
+xn--pgb911imgdrw34r.xn--5nd792dgv3b; ᮩ‍ت񡚈.᳕䷉Ⴡ; [B1, C2, V5, V6]; xn--pgb911imgdrw34r.xn--5nd792dgv3b; ; ; # ᮩت.᳕䷉Ⴡ
+ᮩ‍ت񡚈.᳕䷉ⴡ; ᮩ‍ت񡚈.᳕䷉ⴡ; [B1, C2, P1, V5, V6]; xn--pgb911imgdrw34r.xn--i6f270etuy; ; xn--pgb911izv33i.xn--i6f270etuy; [B1, P1, V5, V6] # ᮩت.᳕䷉ⴡ
+⶿.ß‍; ; [C2, P1, V6]; xn--7pj.xn--zca870n; ; xn--7pj.ss; [P1, V6] # .ß
+⶿.SS‍; ⶿.ss‍; [C2, P1, V6]; xn--7pj.xn--ss-n1t; ; xn--7pj.ss; [P1, V6] # .ss
+⶿.ss‍; ; [C2, P1, V6]; xn--7pj.xn--ss-n1t; ; xn--7pj.ss; [P1, V6] # .ss
+⶿.Ss‍; ⶿.ss‍; [C2, P1, V6]; xn--7pj.xn--ss-n1t; ; xn--7pj.ss; [P1, V6] # .ss
+xn--7pj.ss; ⶿.ss; [V6]; xn--7pj.ss; ; ; # .ss
+xn--7pj.xn--ss-n1t; ⶿.ss‍; [C2, V6]; xn--7pj.xn--ss-n1t; ; ; # .ss
+xn--7pj.xn--zca870n; ⶿.ß‍; [C2, V6]; xn--7pj.xn--zca870n; ; ; # .ß
+᯳︒.ت≯ꡂ; ; [B2, B3, B6, P1, V5, V6]; xn--1zf8957g.xn--pgb885lry5g; ; ; # ᯳︒.ت≯ꡂ
+᯳︒.ت≯ꡂ; ᯳︒.ت≯ꡂ; [B2, B3, B6, P1, V5, V6]; xn--1zf8957g.xn--pgb885lry5g; ; ; # ᯳︒.ت≯ꡂ
+᯳。.ت≯ꡂ; ᯳..ت≯ꡂ; [B2, B3, P1, V5, V6, X4_2]; xn--1zf..xn--pgb885lry5g; [B2, B3, P1, V5, V6, A4_2]; ; # ᯳..ت≯ꡂ
+᯳。.ت≯ꡂ; ᯳..ت≯ꡂ; [B2, B3, P1, V5, V6, X4_2]; xn--1zf..xn--pgb885lry5g; [B2, B3, P1, V5, V6, A4_2]; ; # ᯳..ت≯ꡂ
+xn--1zf..xn--pgb885lry5g; ᯳..ت≯ꡂ; [B2, B3, V5, V6, X4_2]; xn--1zf..xn--pgb885lry5g; [B2, B3, V5, V6, A4_2]; ; # ᯳..ت≯ꡂ
+xn--1zf8957g.xn--pgb885lry5g; ᯳︒.ت≯ꡂ; [B2, B3, B6, V5, V6]; xn--1zf8957g.xn--pgb885lry5g; ; ; # ᯳︒.ت≯ꡂ
+≮≠񏻃。-𫠆ڷ𐹪; ≮≠񏻃.-𫠆ڷ𐹪; [B1, P1, V3, V6]; xn--1ch1a29470f.xn----7uc5363rc1rn; ; ; # ≮≠.-𫠆ڷ𐹪
+≮≠񏻃。-𫠆ڷ𐹪; ≮≠񏻃.-𫠆ڷ𐹪; [B1, P1, V3, V6]; xn--1ch1a29470f.xn----7uc5363rc1rn; ; ; # ≮≠.-𫠆ڷ𐹪
+≮≠񏻃。-𫠆ڷ𐹪; ≮≠񏻃.-𫠆ڷ𐹪; [B1, P1, V3, V6]; xn--1ch1a29470f.xn----7uc5363rc1rn; ; ; # ≮≠.-𫠆ڷ𐹪
+≮≠񏻃。-𫠆ڷ𐹪; ≮≠񏻃.-𫠆ڷ𐹪; [B1, P1, V3, V6]; xn--1ch1a29470f.xn----7uc5363rc1rn; ; ; # ≮≠.-𫠆ڷ𐹪
+xn--1ch1a29470f.xn----7uc5363rc1rn; ≮≠񏻃.-𫠆ڷ𐹪; [B1, V3, V6]; xn--1ch1a29470f.xn----7uc5363rc1rn; ; ; # ≮≠.-𫠆ڷ𐹪
+𐹡ݷ。ꡂ; 𐹡ݷ.ꡂ; [B1]; xn--7pb5275k.xn--bc9a; ; ; # 𐹡ݷ.ꡂ
+xn--7pb5275k.xn--bc9a; 𐹡ݷ.ꡂ; [B1]; xn--7pb5275k.xn--bc9a; ; ; # 𐹡ݷ.ꡂ
+Ⴉ𝆅񔻅ؙ.ß𐧦𐹳ݵ; ; [B5, B6, P1, V6]; xn--7fb125cjv87a7xvz.xn--zca684a699vf2d; ; xn--7fb125cjv87a7xvz.xn--ss-zme7575xp0e; # Ⴉؙ𝆅.ß𐧦𐹳ݵ
+ⴉ𝆅񔻅ؙ.ß𐧦𐹳ݵ; ; [B5, B6, P1, V6]; xn--7fb940rwt3z7xvz.xn--zca684a699vf2d; ; xn--7fb940rwt3z7xvz.xn--ss-zme7575xp0e; # ⴉؙ𝆅.ß𐧦𐹳ݵ
+Ⴉ𝆅񔻅ؙ.SS𐧦𐹳ݵ; Ⴉ𝆅񔻅ؙ.ss𐧦𐹳ݵ; [B5, B6, P1, V6]; xn--7fb125cjv87a7xvz.xn--ss-zme7575xp0e; ; ; # Ⴉؙ𝆅.ss𐧦𐹳ݵ
+ⴉ𝆅񔻅ؙ.ss𐧦𐹳ݵ; ; [B5, B6, P1, V6]; xn--7fb940rwt3z7xvz.xn--ss-zme7575xp0e; ; ; # ⴉؙ𝆅.ss𐧦𐹳ݵ
+Ⴉ𝆅񔻅ؙ.Ss𐧦𐹳ݵ; Ⴉ𝆅񔻅ؙ.ss𐧦𐹳ݵ; [B5, B6, P1, V6]; xn--7fb125cjv87a7xvz.xn--ss-zme7575xp0e; ; ; # Ⴉؙ𝆅.ss𐧦𐹳ݵ
+xn--7fb125cjv87a7xvz.xn--ss-zme7575xp0e; Ⴉ𝆅񔻅ؙ.ss𐧦𐹳ݵ; [B5, B6, V6]; xn--7fb125cjv87a7xvz.xn--ss-zme7575xp0e; ; ; # Ⴉؙ𝆅.ss𐧦𐹳ݵ
+xn--7fb940rwt3z7xvz.xn--ss-zme7575xp0e; ⴉ𝆅񔻅ؙ.ss𐧦𐹳ݵ; [B5, B6, V6]; xn--7fb940rwt3z7xvz.xn--ss-zme7575xp0e; ; ; # ⴉؙ𝆅.ss𐧦𐹳ݵ
+xn--7fb940rwt3z7xvz.xn--zca684a699vf2d; ⴉ𝆅񔻅ؙ.ß𐧦𐹳ݵ; [B5, B6, V6]; xn--7fb940rwt3z7xvz.xn--zca684a699vf2d; ; ; # ⴉؙ𝆅.ß𐧦𐹳ݵ
+xn--7fb125cjv87a7xvz.xn--zca684a699vf2d; Ⴉ𝆅񔻅ؙ.ß𐧦𐹳ݵ; [B5, B6, V6]; xn--7fb125cjv87a7xvz.xn--zca684a699vf2d; ; ; # Ⴉؙ𝆅.ß𐧦𐹳ݵ
+‍ك𐧾↙.񊽡; ; [B1, C2, P1, V6]; xn--fhb713k87ag053c.xn--7s4w; ; xn--fhb011lnp8n.xn--7s4w; [B3, P1, V6] # ك𐧾↙.
+xn--fhb011lnp8n.xn--7s4w; ك𐧾↙.񊽡; [B3, V6]; xn--fhb011lnp8n.xn--7s4w; ; ; # ك𐧾↙.
+xn--fhb713k87ag053c.xn--7s4w; ‍ك𐧾↙.񊽡; [B1, C2, V6]; xn--fhb713k87ag053c.xn--7s4w; ; ; # ك𐧾↙.
+梉。‌; 梉.‌; [C1]; xn--7zv.xn--0ug; ; xn--7zv.; [] # 梉.
+xn--7zv.; 梉.; ; xn--7zv.; ; ; # 梉.
+梉.; ; ; xn--7zv.; ; ; # 梉.
+xn--7zv.xn--0ug; 梉.‌; [C1]; xn--7zv.xn--0ug; ; ; # 梉.
+ꡣ-≠.‍𞤗𐅢Ↄ; ꡣ-≠.‍𞤹𐅢Ↄ; [B1, B6, C2, P1, V6]; xn----ufo9661d.xn--1ug79cm620c71sh; ; xn----ufo9661d.xn--q5g0929fhm4f; [B2, B3, B6, P1, V6] # ꡣ-≠.𞤹𐅢Ↄ
+ꡣ-≠.‍𞤗𐅢Ↄ; ꡣ-≠.‍𞤹𐅢Ↄ; [B1, B6, C2, P1, V6]; xn----ufo9661d.xn--1ug79cm620c71sh; ; xn----ufo9661d.xn--q5g0929fhm4f; [B2, B3, B6, P1, V6] # ꡣ-≠.𞤹𐅢Ↄ
+ꡣ-≠.‍𞤹𐅢ↄ; ꡣ-≠.‍𞤹𐅢ↄ; [B1, B6, C2, P1, V6]; xn----ufo9661d.xn--1ug99cj620c71sh; ; xn----ufo9661d.xn--r5gy929fhm4f; [B2, B3, B6, P1, V6] # ꡣ-≠.𞤹𐅢ↄ
+ꡣ-≠.‍𞤹𐅢ↄ; ; [B1, B6, C2, P1, V6]; xn----ufo9661d.xn--1ug99cj620c71sh; ; xn----ufo9661d.xn--r5gy929fhm4f; [B2, B3, B6, P1, V6] # ꡣ-≠.𞤹𐅢ↄ
+ꡣ-≠.‍𞤗𐅢ↄ; ꡣ-≠.‍𞤹𐅢ↄ; [B1, B6, C2, P1, V6]; xn----ufo9661d.xn--1ug99cj620c71sh; ; xn----ufo9661d.xn--r5gy929fhm4f; [B2, B3, B6, P1, V6] # ꡣ-≠.𞤹𐅢ↄ
+ꡣ-≠.‍𞤗𐅢ↄ; ꡣ-≠.‍𞤹𐅢ↄ; [B1, B6, C2, P1, V6]; xn----ufo9661d.xn--1ug99cj620c71sh; ; xn----ufo9661d.xn--r5gy929fhm4f; [B2, B3, B6, P1, V6] # ꡣ-≠.𞤹𐅢ↄ
+xn----ufo9661d.xn--r5gy929fhm4f; ꡣ-≠.𞤹𐅢ↄ; [B2, B3, B6, V6]; xn----ufo9661d.xn--r5gy929fhm4f; ; ; # ꡣ-≠.𞤹𐅢ↄ
+xn----ufo9661d.xn--1ug99cj620c71sh; ꡣ-≠.‍𞤹𐅢ↄ; [B1, B6, C2, V6]; xn----ufo9661d.xn--1ug99cj620c71sh; ; ; # ꡣ-≠.𞤹𐅢ↄ
+xn----ufo9661d.xn--q5g0929fhm4f; ꡣ-≠.𞤹𐅢Ↄ; [B2, B3, B6, V6]; xn----ufo9661d.xn--q5g0929fhm4f; ; ; # ꡣ-≠.𞤹𐅢Ↄ
+xn----ufo9661d.xn--1ug79cm620c71sh; ꡣ-≠.‍𞤹𐅢Ↄ; [B1, B6, C2, V6]; xn----ufo9661d.xn--1ug79cm620c71sh; ; ; # ꡣ-≠.𞤹𐅢Ↄ
+ς⒐𝆫⸵。𐱢🄊𝟳; ς⒐𝆫⸵.𐱢🄊7; [B6, P1, V6]; xn--3xa019nwtghi25b.xn--7-075iy877c; ; xn--4xa809nwtghi25b.xn--7-075iy877c; # ς⒐𝆫⸵.🄊7
+ς9.𝆫⸵。𐱢9,7; ς9.𝆫⸵.𐱢9,7; [B1, P1, V5, V6]; xn--9-xmb.xn--ltj1535k.xn--9,7-r67t; ; xn--9-zmb.xn--ltj1535k.xn--9,7-r67t; # ς9.𝆫⸵.9,7
+Σ9.𝆫⸵。𐱢9,7; σ9.𝆫⸵.𐱢9,7; [B1, P1, V5, V6]; xn--9-zmb.xn--ltj1535k.xn--9,7-r67t; ; ; # σ9.𝆫⸵.9,7
+σ9.𝆫⸵。𐱢9,7; σ9.𝆫⸵.𐱢9,7; [B1, P1, V5, V6]; xn--9-zmb.xn--ltj1535k.xn--9,7-r67t; ; ; # σ9.𝆫⸵.9,7
+xn--9-zmb.xn--ltj1535k.xn--9,7-r67t; σ9.𝆫⸵.𐱢9,7; [B1, P1, V5, V6]; xn--9-zmb.xn--ltj1535k.xn--9,7-r67t; ; ; # σ9.𝆫⸵.9,7
+xn--9-xmb.xn--ltj1535k.xn--9,7-r67t; ς9.𝆫⸵.𐱢9,7; [B1, P1, V5, V6]; xn--9-xmb.xn--ltj1535k.xn--9,7-r67t; ; ; # ς9.𝆫⸵.9,7
+Σ⒐𝆫⸵。𐱢🄊𝟳; σ⒐𝆫⸵.𐱢🄊7; [B6, P1, V6]; xn--4xa809nwtghi25b.xn--7-075iy877c; ; ; # σ⒐𝆫⸵.🄊7
+σ⒐𝆫⸵。𐱢🄊𝟳; σ⒐𝆫⸵.𐱢🄊7; [B6, P1, V6]; xn--4xa809nwtghi25b.xn--7-075iy877c; ; ; # σ⒐𝆫⸵.🄊7
+xn--4xa809nwtghi25b.xn--7-075iy877c; σ⒐𝆫⸵.𐱢🄊7; [B6, V6]; xn--4xa809nwtghi25b.xn--7-075iy877c; ; ; # σ⒐𝆫⸵.🄊7
+xn--3xa019nwtghi25b.xn--7-075iy877c; ς⒐𝆫⸵.𐱢🄊7; [B6, V6]; xn--3xa019nwtghi25b.xn--7-075iy877c; ; ; # ς⒐𝆫⸵.🄊7
+ࡓ.‌ß; ࡓ.‌ß; [B1, C1]; xn--iwb.xn--zca570n; ; xn--iwb.ss; [] # ࡓ.ß
+ࡓ.‌ß; ; [B1, C1]; xn--iwb.xn--zca570n; ; xn--iwb.ss; [] # ࡓ.ß
+ࡓ.‌SS; ࡓ.‌ss; [B1, C1]; xn--iwb.xn--ss-i1t; ; xn--iwb.ss; [] # ࡓ.ss
+ࡓ.‌ss; ; [B1, C1]; xn--iwb.xn--ss-i1t; ; xn--iwb.ss; [] # ࡓ.ss
+xn--iwb.ss; ࡓ.ss; ; xn--iwb.ss; ; ; # ࡓ.ss
+ࡓ.ss; ; ; xn--iwb.ss; ; ; # ࡓ.ss
+ࡓ.SS; ࡓ.ss; ; xn--iwb.ss; ; ; # ࡓ.ss
+xn--iwb.xn--ss-i1t; ࡓ.‌ss; [B1, C1]; xn--iwb.xn--ss-i1t; ; ; # ࡓ.ss
+xn--iwb.xn--zca570n; ࡓ.‌ß; [B1, C1]; xn--iwb.xn--zca570n; ; ; # ࡓ.ß
+ࡓ.‌SS; ࡓ.‌ss; [B1, C1]; xn--iwb.xn--ss-i1t; ; xn--iwb.ss; [] # ࡓ.ss
+ࡓ.‌ss; ࡓ.‌ss; [B1, C1]; xn--iwb.xn--ss-i1t; ; xn--iwb.ss; [] # ࡓ.ss
+ࡓ.‌Ss; ࡓ.‌ss; [B1, C1]; xn--iwb.xn--ss-i1t; ; xn--iwb.ss; [] # ࡓ.ss
+ࡓ.‌Ss; ࡓ.‌ss; [B1, C1]; xn--iwb.xn--ss-i1t; ; xn--iwb.ss; [] # ࡓ.ss
+񯶣-.‍ݎꥍ󠻨; ; [B1, B6, C2, P1, V3, V6]; xn----s116e.xn--1ob387jy90hq459k; ; xn----s116e.xn--1ob6504fmf40i; [B3, B6, P1, V3, V6] # -.ݎꥍ
+xn----s116e.xn--1ob6504fmf40i; 񯶣-.ݎꥍ󠻨; [B3, B6, V3, V6]; xn----s116e.xn--1ob6504fmf40i; ; ; # -.ݎꥍ
+xn----s116e.xn--1ob387jy90hq459k; 񯶣-.‍ݎꥍ󠻨; [B1, B6, C2, V3, V6]; xn----s116e.xn--1ob387jy90hq459k; ; ; # -.ݎꥍ
+䃚蟥-。-񽒘⒈; 䃚蟥-.-񽒘⒈; [P1, V3, V6]; xn----n50a258u.xn----ecp33805f; ; ; # 䃚蟥-.-⒈
+䃚蟥-。-񽒘1.; 䃚蟥-.-񽒘1.; [P1, V3, V6]; xn----n50a258u.xn---1-up07j.; ; ; # 䃚蟥-.-1.
+xn----n50a258u.xn---1-up07j.; 䃚蟥-.-񽒘1.; [V3, V6]; xn----n50a258u.xn---1-up07j.; ; ; # 䃚蟥-.-1.
+xn----n50a258u.xn----ecp33805f; 䃚蟥-.-񽒘⒈; [V3, V6]; xn----n50a258u.xn----ecp33805f; ; ; # 䃚蟥-.-⒈
+𐹸䚵-ꡡ。⺇; 𐹸䚵-ꡡ.⺇; [B1]; xn----bm3an932a1l5d.xn--xvj; ; ; # 𐹸䚵-ꡡ.⺇
+xn----bm3an932a1l5d.xn--xvj; 𐹸䚵-ꡡ.⺇; [B1]; xn----bm3an932a1l5d.xn--xvj; ; ; # 𐹸䚵-ꡡ.⺇
+𑄳。᫜𐹻; 𑄳.᫜𐹻; [B1, B3, B5, B6, P1, V5, V6]; xn--v80d.xn--2rf1154i; ; ; # 𑄳.𐹻
+xn--v80d.xn--2rf1154i; 𑄳.᫜𐹻; [B1, B3, B5, B6, V5, V6]; xn--v80d.xn--2rf1154i; ; ; # 𑄳.𐹻
+≮𐹻.⒎𑂵ں؂; ; [B1, P1, V6]; xn--gdhx904g.xn--kfb18a325efm3s; ; ; # ≮𐹻.⒎𑂵ں
+≮𐹻.⒎𑂵ں؂; ≮𐹻.⒎𑂵ں؂; [B1, P1, V6]; xn--gdhx904g.xn--kfb18a325efm3s; ; ; # ≮𐹻.⒎𑂵ں
+≮𐹻.7.𑂵ں؂; ; [B1, P1, V5, V6]; xn--gdhx904g.7.xn--kfb18an307d; ; ; # ≮𐹻.7.𑂵ں
+≮𐹻.7.𑂵ں؂; ≮𐹻.7.𑂵ں؂; [B1, P1, V5, V6]; xn--gdhx904g.7.xn--kfb18an307d; ; ; # ≮𐹻.7.𑂵ں
+xn--gdhx904g.7.xn--kfb18an307d; ≮𐹻.7.𑂵ں؂; [B1, V5, V6]; xn--gdhx904g.7.xn--kfb18an307d; ; ; # ≮𐹻.7.𑂵ں
+xn--gdhx904g.xn--kfb18a325efm3s; ≮𐹻.⒎𑂵ں؂; [B1, V6]; xn--gdhx904g.xn--kfb18a325efm3s; ; ; # ≮𐹻.⒎𑂵ں
+ᢔ≠􋉂.‍𐋢; ; [C2, P1, V6]; xn--ebf031cf7196a.xn--1ug9540g; ; xn--ebf031cf7196a.xn--587c; [P1, V6] # ᢔ≠.𐋢
+ᢔ≠􋉂.‍𐋢; ᢔ≠􋉂.‍𐋢; [C2, P1, V6]; xn--ebf031cf7196a.xn--1ug9540g; ; xn--ebf031cf7196a.xn--587c; [P1, V6] # ᢔ≠.𐋢
+xn--ebf031cf7196a.xn--587c; ᢔ≠􋉂.𐋢; [V6]; xn--ebf031cf7196a.xn--587c; ; ; # ᢔ≠.𐋢
+xn--ebf031cf7196a.xn--1ug9540g; ᢔ≠􋉂.‍𐋢; [C2, V6]; xn--ebf031cf7196a.xn--1ug9540g; ; ; # ᢔ≠.𐋢
+𐩁≮񣊛≯.٬𞵕⳿; 𐩁≮񣊛≯.٬𞵕⳿; [B1, B2, B3, P1, V6]; xn--gdhc0519o0y27b.xn--lib468q0d21a; ; ; # 𐩁≮≯.٬⳿
+𐩁≮񣊛≯.٬𞵕⳿; 𐩁≮񣊛≯.٬𞵕⳿; [B1, B2, B3, P1, V6]; xn--gdhc0519o0y27b.xn--lib468q0d21a; ; ; # 𐩁≮≯.٬⳿
+𐩁≮񣊛≯.٬𞵕⳿; ; [B1, B2, B3, P1, V6]; xn--gdhc0519o0y27b.xn--lib468q0d21a; ; ; # 𐩁≮≯.٬⳿
+𐩁≮񣊛≯.٬𞵕⳿; 𐩁≮񣊛≯.٬𞵕⳿; [B1, B2, B3, P1, V6]; xn--gdhc0519o0y27b.xn--lib468q0d21a; ; ; # 𐩁≮≯.٬⳿
+xn--gdhc0519o0y27b.xn--lib468q0d21a; 𐩁≮񣊛≯.٬𞵕⳿; [B1, B2, B3, V6]; xn--gdhc0519o0y27b.xn--lib468q0d21a; ; ; # 𐩁≮≯.٬⳿
+-。⺐; -.⺐; [V3]; -.xn--6vj; ; ; # -.⺐
+-。⺐; -.⺐; [V3]; -.xn--6vj; ; ; # -.⺐
+-.xn--6vj; -.⺐; [V3]; -.xn--6vj; ; ; # -.⺐
+󠰩𑲬.ٜ; 󠰩𑲬.ٜ; [P1, V5, V6]; xn--sn3d59267c.xn--4hb; ; ; # 𑲬.ٜ
+󠰩𑲬.ٜ; ; [P1, V5, V6]; xn--sn3d59267c.xn--4hb; ; ; # 𑲬.ٜ
+xn--sn3d59267c.xn--4hb; 󠰩𑲬.ٜ; [V5, V6]; xn--sn3d59267c.xn--4hb; ; ; # 𑲬.ٜ
+𐍺.񚇃‌; ; [C1, P1, V5, V6]; xn--ie8c.xn--0ug03366c; ; xn--ie8c.xn--2g51a; [P1, V5, V6] # 𐍺.
+xn--ie8c.xn--2g51a; 𐍺.񚇃; [V5, V6]; xn--ie8c.xn--2g51a; ; ; # 𐍺.
+xn--ie8c.xn--0ug03366c; 𐍺.񚇃‌; [C1, V5, V6]; xn--ie8c.xn--0ug03366c; ; ; # 𐍺.
+ؽۣ.𐨎; ; [B1, B3, B6, V5]; xn--8gb64a.xn--mr9c; ; ; # ؽۣ.𐨎
+xn--8gb64a.xn--mr9c; ؽۣ.𐨎; [B1, B3, B6, V5]; xn--8gb64a.xn--mr9c; ; ; # ؽۣ.𐨎
+漦Ⴙς.񡻀𐴄; ; [B5, B6, P1, V6]; xn--3xa157d717e.xn--9d0d3162t; ; xn--4xa947d717e.xn--9d0d3162t; # 漦Ⴙς.𐴄
+漦ⴙς.񡻀𐴄; ; [B5, B6, P1, V6]; xn--3xa972sl47b.xn--9d0d3162t; ; xn--4xa772sl47b.xn--9d0d3162t; # 漦ⴙς.𐴄
+漦ႹΣ.񡻀𐴄; 漦Ⴙσ.񡻀𐴄; [B5, B6, P1, V6]; xn--4xa947d717e.xn--9d0d3162t; ; ; # 漦Ⴙσ.𐴄
+漦ⴙσ.񡻀𐴄; ; [B5, B6, P1, V6]; xn--4xa772sl47b.xn--9d0d3162t; ; ; # 漦ⴙσ.𐴄
+漦Ⴙσ.񡻀𐴄; ; [B5, B6, P1, V6]; xn--4xa947d717e.xn--9d0d3162t; ; ; # 漦Ⴙσ.𐴄
+xn--4xa947d717e.xn--9d0d3162t; 漦Ⴙσ.񡻀𐴄; [B5, B6, V6]; xn--4xa947d717e.xn--9d0d3162t; ; ; # 漦Ⴙσ.𐴄
+xn--4xa772sl47b.xn--9d0d3162t; 漦ⴙσ.񡻀𐴄; [B5, B6, V6]; xn--4xa772sl47b.xn--9d0d3162t; ; ; # 漦ⴙσ.𐴄
+xn--3xa972sl47b.xn--9d0d3162t; 漦ⴙς.񡻀𐴄; [B5, B6, V6]; xn--3xa972sl47b.xn--9d0d3162t; ; ; # 漦ⴙς.𐴄
+xn--3xa157d717e.xn--9d0d3162t; 漦Ⴙς.񡻀𐴄; [B5, B6, V6]; xn--3xa157d717e.xn--9d0d3162t; ; ; # 漦Ⴙς.𐴄
+𐹫踧್򫚇.󜀃⒈𝨤; ; [B1, P1, V6]; xn--8tc1437dro0d6q06h.xn--tsh2611ncu71e; ; ; # 𐹫踧್.⒈𝨤
+𐹫踧್򫚇.󜀃1.𝨤; ; [B1, B3, B6, P1, V5, V6]; xn--8tc1437dro0d6q06h.xn--1-p948l.xn--m82h; ; ; # 𐹫踧್.1.𝨤
+xn--8tc1437dro0d6q06h.xn--1-p948l.xn--m82h; 𐹫踧್򫚇.󜀃1.𝨤; [B1, B3, B6, V5, V6]; xn--8tc1437dro0d6q06h.xn--1-p948l.xn--m82h; ; ; # 𐹫踧್.1.𝨤
+xn--8tc1437dro0d6q06h.xn--tsh2611ncu71e; 𐹫踧್򫚇.󜀃⒈𝨤; [B1, V6]; xn--8tc1437dro0d6q06h.xn--tsh2611ncu71e; ; ; # 𐹫踧್.⒈𝨤
+‍≮.󠟪𹫏-; ‍≮.󠟪𹫏-; [C2, P1, V3, V6]; xn--1ug95g.xn----cr99a1w710b; ; xn--gdh.xn----cr99a1w710b; [P1, V3, V6] # ≮.-
+‍≮.󠟪𹫏-; ‍≮.󠟪𹫏-; [C2, P1, V3, V6]; xn--1ug95g.xn----cr99a1w710b; ; xn--gdh.xn----cr99a1w710b; [P1, V3, V6] # ≮.-
+‍≮.󠟪𹫏-; ; [C2, P1, V3, V6]; xn--1ug95g.xn----cr99a1w710b; ; xn--gdh.xn----cr99a1w710b; [P1, V3, V6] # ≮.-
+‍≮.󠟪𹫏-; ‍≮.󠟪𹫏-; [C2, P1, V3, V6]; xn--1ug95g.xn----cr99a1w710b; ; xn--gdh.xn----cr99a1w710b; [P1, V3, V6] # ≮.-
+xn--gdh.xn----cr99a1w710b; ≮.󠟪𹫏-; [V3, V6]; xn--gdh.xn----cr99a1w710b; ; ; # ≮.-
+xn--1ug95g.xn----cr99a1w710b; ‍≮.󠟪𹫏-; [C2, V3, V6]; xn--1ug95g.xn----cr99a1w710b; ; ; # ≮.-
+‍‍襔。Ⴜ5ꡮ񵝏; ‍‍襔.Ⴜ5ꡮ񵝏; [C2, P1, V6]; xn--1uga7691f.xn--5-r1g7167ipfw8d; ; xn--2u2a.xn--5-r1g7167ipfw8d; [P1, V6] # 襔.Ⴜ5ꡮ
+‍‍襔。ⴜ5ꡮ񵝏; ‍‍襔.ⴜ5ꡮ񵝏; [C2, P1, V6]; xn--1uga7691f.xn--5-uws5848bpf44e; ; xn--2u2a.xn--5-uws5848bpf44e; [P1, V6] # 襔.ⴜ5ꡮ
+xn--2u2a.xn--5-uws5848bpf44e; 襔.ⴜ5ꡮ񵝏; [V6]; xn--2u2a.xn--5-uws5848bpf44e; ; ; # 襔.ⴜ5ꡮ
+xn--1uga7691f.xn--5-uws5848bpf44e; ‍‍襔.ⴜ5ꡮ񵝏; [C2, V6]; xn--1uga7691f.xn--5-uws5848bpf44e; ; ; # 襔.ⴜ5ꡮ
+xn--2u2a.xn--5-r1g7167ipfw8d; 襔.Ⴜ5ꡮ񵝏; [V6]; xn--2u2a.xn--5-r1g7167ipfw8d; ; ; # 襔.Ⴜ5ꡮ
+xn--1uga7691f.xn--5-r1g7167ipfw8d; ‍‍襔.Ⴜ5ꡮ񵝏; [C2, V6]; xn--1uga7691f.xn--5-r1g7167ipfw8d; ; ; # 襔.Ⴜ5ꡮ
+𐫜𑌼‍.婀; 𐫜𑌼‍.婀; [B3, C2]; xn--1ugx063g1if.xn--q0s; ; xn--ix9c26l.xn--q0s; [] # 𐫜𑌼.婀
+𐫜𑌼‍.婀; ; [B3, C2]; xn--1ugx063g1if.xn--q0s; ; xn--ix9c26l.xn--q0s; [] # 𐫜𑌼.婀
+xn--ix9c26l.xn--q0s; 𐫜𑌼.婀; ; xn--ix9c26l.xn--q0s; ; ; # 𐫜𑌼.婀
+𐫜𑌼.婀; ; ; xn--ix9c26l.xn--q0s; ; ; # 𐫜𑌼.婀
+xn--1ugx063g1if.xn--q0s; 𐫜𑌼‍.婀; [B3, C2]; xn--1ugx063g1if.xn--q0s; ; ; # 𐫜𑌼.婀
+󠅽︒︒𐹯。⬳᩸; ︒︒𐹯.⬳᩸; [B1, P1, V6]; xn--y86ca186j.xn--7of309e; ; ; # ︒︒𐹯.⬳᩸
+󠅽。。𐹯。⬳᩸; ..𐹯.⬳᩸; [B1, X4_2]; ..xn--no0d.xn--7of309e; [B1, A4_2]; ; # ..𐹯.⬳᩸
+..xn--no0d.xn--7of309e; ..𐹯.⬳᩸; [B1, X4_2]; ..xn--no0d.xn--7of309e; [B1, A4_2]; ; # ..𐹯.⬳᩸
+xn--y86ca186j.xn--7of309e; ︒︒𐹯.⬳᩸; [B1, V6]; xn--y86ca186j.xn--7of309e; ; ; # ︒︒𐹯.⬳᩸
+𝟖ß.󠄐-?Ⴏ; 8ß.-?Ⴏ; [P1, V3, V6]; xn--8-qfa.-?Ⴏ; [P1, V3, V6, A3]; 8ss.-?Ⴏ; # 8ß.-Ⴏ
+8ß.󠄐-?Ⴏ; 8ß.-?Ⴏ; [P1, V3, V6]; xn--8-qfa.-?Ⴏ; [P1, V3, V6, A3]; 8ss.-?Ⴏ; # 8ß.-Ⴏ
+8ß.󠄐-?ⴏ; 8ß.-?ⴏ; [P1, V3, V6]; xn--8-qfa.-?ⴏ; [P1, V3, V6, A3]; 8ss.-?ⴏ; # 8ß.-ⴏ
+8SS.󠄐-?Ⴏ; 8ss.-?Ⴏ; [P1, V3, V6]; ; [P1, V3, V6, A3]; ; # 8ss.-Ⴏ
+8ss.󠄐-?ⴏ; 8ss.-?ⴏ; [P1, V3, V6]; ; [P1, V3, V6, A3]; ; # 8ss.-ⴏ
+8ss.󠄐-?Ⴏ; 8ss.-?Ⴏ; [P1, V3, V6]; ; [P1, V3, V6, A3]; ; # 8ss.-Ⴏ
+8ss.-?Ⴏ; ; [P1, V3, V6]; ; [P1, V3, V6, A3]; ; # 8ss.-Ⴏ
+8ss.-?ⴏ; ; [P1, V3, V6]; ; [P1, V3, V6, A3]; ; # 8ss.-ⴏ
+8SS.-?Ⴏ; 8ss.-?Ⴏ; [P1, V3, V6]; ; [P1, V3, V6, A3]; ; # 8ss.-Ⴏ
+xn--8-qfa.-?ⴏ; 8ß.-?ⴏ; [P1, V3, V6]; xn--8-qfa.-?ⴏ; [P1, V3, V6, A3]; ; # 8ß.-ⴏ
+XN--8-QFA.-?Ⴏ; 8ß.-?Ⴏ; [P1, V3, V6]; xn--8-qfa.-?Ⴏ; [P1, V3, V6, A3]; ; # 8ß.-Ⴏ
+Xn--8-Qfa.-?Ⴏ; 8ß.-?Ⴏ; [P1, V3, V6]; xn--8-qfa.-?Ⴏ; [P1, V3, V6, A3]; ; # 8ß.-Ⴏ
+xn--8-qfa.-?Ⴏ; 8ß.-?Ⴏ; [P1, V3, V6]; xn--8-qfa.-?Ⴏ; [P1, V3, V6, A3]; ; # 8ß.-Ⴏ
+𝟖ß.󠄐-?ⴏ; 8ß.-?ⴏ; [P1, V3, V6]; xn--8-qfa.-?ⴏ; [P1, V3, V6, A3]; 8ss.-?ⴏ; # 8ß.-ⴏ
+𝟖SS.󠄐-?Ⴏ; 8ss.-?Ⴏ; [P1, V3, V6]; ; [P1, V3, V6, A3]; ; # 8ss.-Ⴏ
+𝟖ss.󠄐-?ⴏ; 8ss.-?ⴏ; [P1, V3, V6]; ; [P1, V3, V6, A3]; ; # 8ss.-ⴏ
+𝟖ss.󠄐-?Ⴏ; 8ss.-?Ⴏ; [P1, V3, V6]; ; [P1, V3, V6, A3]; ; # 8ss.-Ⴏ
+𝟖Ss.󠄐-?Ⴏ; 8ss.-?Ⴏ; [P1, V3, V6]; ; [P1, V3, V6, A3]; ; # 8ss.-Ⴏ
+8Ss.󠄐-?Ⴏ; 8ss.-?Ⴏ; [P1, V3, V6]; ; [P1, V3, V6, A3]; ; # 8ss.-Ⴏ
+-‍󠋟.‌𐹣Ⴅ; ; [B1, C1, C2, P1, V3, V6]; xn----ugnv7071n.xn--dnd999e4j4p; ; xn----s721m.xn--dnd9201k; [B1, P1, V3, V6] # -.𐹣Ⴅ
+-‍󠋟.‌𐹣ⴅ; ; [B1, C1, C2, P1, V3, V6]; xn----ugnv7071n.xn--0ugz32cgr0p; ; xn----s721m.xn--wkj1423e; [B1, P1, V3, V6] # -.𐹣ⴅ
+xn----s721m.xn--wkj1423e; -󠋟.𐹣ⴅ; [B1, V3, V6]; xn----s721m.xn--wkj1423e; ; ; # -.𐹣ⴅ
+xn----ugnv7071n.xn--0ugz32cgr0p; -‍󠋟.‌𐹣ⴅ; [B1, C1, C2, V3, V6]; xn----ugnv7071n.xn--0ugz32cgr0p; ; ; # -.𐹣ⴅ
+xn----s721m.xn--dnd9201k; -󠋟.𐹣Ⴅ; [B1, V3, V6]; xn----s721m.xn--dnd9201k; ; ; # -.𐹣Ⴅ
+xn----ugnv7071n.xn--dnd999e4j4p; -‍󠋟.‌𐹣Ⴅ; [B1, C1, C2, V3, V6]; xn----ugnv7071n.xn--dnd999e4j4p; ; ; # -.𐹣Ⴅ
+ꦹ‍큷𻶡。₂; ꦹ‍큷𻶡.2; [C2, P1, V5, V6]; xn--1ug1435cfkyaoi04d.2; ; xn--0m9as84e2e21c.2; [P1, V5, V6] # ꦹ큷.2
+ꦹ‍큷𻶡。₂; ꦹ‍큷𻶡.2; [C2, P1, V5, V6]; xn--1ug1435cfkyaoi04d.2; ; xn--0m9as84e2e21c.2; [P1, V5, V6] # ꦹ큷.2
+ꦹ‍큷𻶡。2; ꦹ‍큷𻶡.2; [C2, P1, V5, V6]; xn--1ug1435cfkyaoi04d.2; ; xn--0m9as84e2e21c.2; [P1, V5, V6] # ꦹ큷.2
+ꦹ‍큷𻶡。2; ꦹ‍큷𻶡.2; [C2, P1, V5, V6]; xn--1ug1435cfkyaoi04d.2; ; xn--0m9as84e2e21c.2; [P1, V5, V6] # ꦹ큷.2
+xn--0m9as84e2e21c.2; ꦹ큷𻶡.2; [V5, V6]; xn--0m9as84e2e21c.2; ; ; # ꦹ큷.2
+xn--1ug1435cfkyaoi04d.2; ꦹ‍큷𻶡.2; [C2, V5, V6]; xn--1ug1435cfkyaoi04d.2; ; ; # ꦹ큷.2
+?.🄄𞯘; ; [B1, P1, V6]; ?.xn--3x6hx6f; [B1, P1, V6, A3]; ; # .🄄
+?.3,𞯘; ; [B1, P1, V6]; ?.xn--3,-tb22a; [B1, P1, V6, A3]; ; # .3,
+?.xn--3,-tb22a; ?.3,𞯘; [B1, P1, V6]; ?.xn--3,-tb22a; [B1, P1, V6, A3]; ; # .3,
+?.XN--3,-TB22A; ?.3,𞯘; [B1, P1, V6]; ?.xn--3,-tb22a; [B1, P1, V6, A3]; ; # .3,
+?.Xn--3,-Tb22a; ?.3,𞯘; [B1, P1, V6]; ?.xn--3,-tb22a; [B1, P1, V6, A3]; ; # .3,
+?.xn--3x6hx6f; ?.🄄𞯘; [B1, P1, V6]; ?.xn--3x6hx6f; [B1, P1, V6, A3]; ; # .🄄
+?.XN--3X6HX6F; ?.🄄𞯘; [B1, P1, V6]; ?.xn--3x6hx6f; [B1, P1, V6, A3]; ; # .🄄
+?.Xn--3x6hx6f; ?.🄄𞯘; [B1, P1, V6]; ?.xn--3x6hx6f; [B1, P1, V6, A3]; ; # .🄄
+𝨖𐩙。۝󀡶ꣅ⒈; 𝨖𐩙.۝󀡶ꣅ⒈; [B1, P1, V5, V6]; xn--rt9cl956a.xn--tlb403mxv4g06s9i; ; ; # 𝨖.ꣅ⒈
+𝨖𐩙。۝󀡶ꣅ1.; 𝨖𐩙.۝󀡶ꣅ1.; [B1, P1, V5, V6]; xn--rt9cl956a.xn--1-dxc8545j0693i.; ; ; # 𝨖.ꣅ1.
+xn--rt9cl956a.xn--1-dxc8545j0693i.; 𝨖𐩙.۝󀡶ꣅ1.; [B1, V5, V6]; xn--rt9cl956a.xn--1-dxc8545j0693i.; ; ; # 𝨖.ꣅ1.
+xn--rt9cl956a.xn--tlb403mxv4g06s9i; 𝨖𐩙.۝󀡶ꣅ⒈; [B1, V5, V6]; xn--rt9cl956a.xn--tlb403mxv4g06s9i; ; ; # 𝨖.ꣅ⒈
+򒈣סڸ。Ⴈ‍; 򒈣סڸ.Ⴈ‍; [B5, B6, C2, P1, V6]; xn--meb44b57607c.xn--gnd699e; ; xn--meb44b57607c.xn--gnd; [B5, B6, P1, V6] # סڸ.Ⴈ
+򒈣סڸ。ⴈ‍; 򒈣סڸ.ⴈ‍; [B5, B6, C2, P1, V6]; xn--meb44b57607c.xn--1ug232c; ; xn--meb44b57607c.xn--zkj; [B5, B6, P1, V6] # סڸ.ⴈ
+xn--meb44b57607c.xn--zkj; 򒈣סڸ.ⴈ; [B5, B6, V6]; xn--meb44b57607c.xn--zkj; ; ; # סڸ.ⴈ
+xn--meb44b57607c.xn--1ug232c; 򒈣סڸ.ⴈ‍; [B5, B6, C2, V6]; xn--meb44b57607c.xn--1ug232c; ; ; # סڸ.ⴈ
+xn--meb44b57607c.xn--gnd; 򒈣סڸ.Ⴈ; [B5, B6, V6]; xn--meb44b57607c.xn--gnd; ; ; # סڸ.Ⴈ
+xn--meb44b57607c.xn--gnd699e; 򒈣סڸ.Ⴈ‍; [B5, B6, C2, V6]; xn--meb44b57607c.xn--gnd699e; ; ; # סڸ.Ⴈ
+󀚶𝨱ߦ⒈.𑗝髯‌; 󀚶𝨱ߦ⒈.𑗝髯‌; [B1, B5, C1, P1, V5, V6]; xn--etb477lq931a1f58e.xn--0ugx259bocxd; ; xn--etb477lq931a1f58e.xn--uj6at43v; [B1, B5, P1, V5, V6] # 𝨱ߦ⒈.𑗝髯
+󀚶𝨱ߦ1..𑗝髯‌; ; [B1, B5, C1, P1, V5, V6, X4_2]; xn--1-idd62296a1fr6e..xn--0ugx259bocxd; [B1, B5, C1, P1, V5, V6, A4_2]; xn--1-idd62296a1fr6e..xn--uj6at43v; [B1, B5, P1, V5, V6, A4_2] # 𝨱ߦ1..𑗝髯
+xn--1-idd62296a1fr6e..xn--uj6at43v; 󀚶𝨱ߦ1..𑗝髯; [B1, B5, V5, V6, X4_2]; xn--1-idd62296a1fr6e..xn--uj6at43v; [B1, B5, V5, V6, A4_2]; ; # 𝨱ߦ1..𑗝髯
+xn--1-idd62296a1fr6e..xn--0ugx259bocxd; 󀚶𝨱ߦ1..𑗝髯‌; [B1, B5, C1, V5, V6, X4_2]; xn--1-idd62296a1fr6e..xn--0ugx259bocxd; [B1, B5, C1, V5, V6, A4_2]; ; # 𝨱ߦ1..𑗝髯
+xn--etb477lq931a1f58e.xn--uj6at43v; 󀚶𝨱ߦ⒈.𑗝髯; [B1, B5, V5, V6]; xn--etb477lq931a1f58e.xn--uj6at43v; ; ; # 𝨱ߦ⒈.𑗝髯
+xn--etb477lq931a1f58e.xn--0ugx259bocxd; 󀚶𝨱ߦ⒈.𑗝髯‌; [B1, B5, C1, V5, V6]; xn--etb477lq931a1f58e.xn--0ugx259bocxd; ; ; # 𝨱ߦ⒈.𑗝髯
+𐫀.ډ𑌀; 𐫀.ډ𑌀; ; xn--pw9c.xn--fjb8658k; ; ; # 𐫀.ډ𑌀
+𐫀.ډ𑌀; ; ; xn--pw9c.xn--fjb8658k; ; ; # 𐫀.ډ𑌀
+xn--pw9c.xn--fjb8658k; 𐫀.ډ𑌀; ; xn--pw9c.xn--fjb8658k; ; ; # 𐫀.ډ𑌀
+𑋪.𐳝; 𑋪.𐳝; [B1, B3, B6, V5]; xn--fm1d.xn--5c0d; ; ; # 𑋪.𐳝
+𑋪.𐳝; ; [B1, B3, B6, V5]; xn--fm1d.xn--5c0d; ; ; # 𑋪.𐳝
+𑋪.𐲝; 𑋪.𐳝; [B1, B3, B6, V5]; xn--fm1d.xn--5c0d; ; ; # 𑋪.𐳝
+xn--fm1d.xn--5c0d; 𑋪.𐳝; [B1, B3, B6, V5]; xn--fm1d.xn--5c0d; ; ; # 𑋪.𐳝
+𑋪.𐲝; 𑋪.𐳝; [B1, B3, B6, V5]; xn--fm1d.xn--5c0d; ; ; # 𑋪.𐳝
+≠膣。ྃ; ≠膣.ྃ; [P1, V5, V6]; xn--1chy468a.xn--2ed; ; ; # ≠膣.ྃ
+≠膣。ྃ; ≠膣.ྃ; [P1, V5, V6]; xn--1chy468a.xn--2ed; ; ; # ≠膣.ྃ
+xn--1chy468a.xn--2ed; ≠膣.ྃ; [V5, V6]; xn--1chy468a.xn--2ed; ; ; # ≠膣.ྃ
+񰀎-ݽ。ß; 񰀎-ݽ.ß; [B5, B6, P1, V6]; xn----j6c95618k.xn--zca; ; xn----j6c95618k.ss; # -ݽ.ß
+񰀎-ݽ。ß; 񰀎-ݽ.ß; [B5, B6, P1, V6]; xn----j6c95618k.xn--zca; ; xn----j6c95618k.ss; # -ݽ.ß
+񰀎-ݽ。SS; 񰀎-ݽ.ss; [B5, B6, P1, V6]; xn----j6c95618k.ss; ; ; # -ݽ.ss
+񰀎-ݽ。ss; 񰀎-ݽ.ss; [B5, B6, P1, V6]; xn----j6c95618k.ss; ; ; # -ݽ.ss
+񰀎-ݽ。Ss; 񰀎-ݽ.ss; [B5, B6, P1, V6]; xn----j6c95618k.ss; ; ; # -ݽ.ss
+xn----j6c95618k.ss; 񰀎-ݽ.ss; [B5, B6, V6]; xn----j6c95618k.ss; ; ; # -ݽ.ss
+xn----j6c95618k.xn--zca; 񰀎-ݽ.ß; [B5, B6, V6]; xn----j6c95618k.xn--zca; ; ; # -ݽ.ß
+񰀎-ݽ。SS; 񰀎-ݽ.ss; [B5, B6, P1, V6]; xn----j6c95618k.ss; ; ; # -ݽ.ss
+񰀎-ݽ。ss; 񰀎-ݽ.ss; [B5, B6, P1, V6]; xn----j6c95618k.ss; ; ; # -ݽ.ss
+񰀎-ݽ。Ss; 񰀎-ݽ.ss; [B5, B6, P1, V6]; xn----j6c95618k.ss; ; ; # -ݽ.ss
+ς𐹠ᡚ𑄳.⾭𐹽𽐖𐫜; ς𐹠ᡚ𑄳.靑𐹽𽐖𐫜; [B5, B6, P1, V6]; xn--3xa856hp23pxmc.xn--es5a888tvjc2u15h; ; xn--4xa656hp23pxmc.xn--es5a888tvjc2u15h; # ς𐹠ᡚ𑄳.靑𐹽𐫜
+ς𐹠ᡚ𑄳.靑𐹽𽐖𐫜; ; [B5, B6, P1, V6]; xn--3xa856hp23pxmc.xn--es5a888tvjc2u15h; ; xn--4xa656hp23pxmc.xn--es5a888tvjc2u15h; # ς𐹠ᡚ𑄳.靑𐹽𐫜
+Σ𐹠ᡚ𑄳.靑𐹽𽐖𐫜; σ𐹠ᡚ𑄳.靑𐹽𽐖𐫜; [B5, B6, P1, V6]; xn--4xa656hp23pxmc.xn--es5a888tvjc2u15h; ; ; # σ𐹠ᡚ𑄳.靑𐹽𐫜
+σ𐹠ᡚ𑄳.靑𐹽𽐖𐫜; ; [B5, B6, P1, V6]; xn--4xa656hp23pxmc.xn--es5a888tvjc2u15h; ; ; # σ𐹠ᡚ𑄳.靑𐹽𐫜
+xn--4xa656hp23pxmc.xn--es5a888tvjc2u15h; σ𐹠ᡚ𑄳.靑𐹽𽐖𐫜; [B5, B6, V6]; xn--4xa656hp23pxmc.xn--es5a888tvjc2u15h; ; ; # σ𐹠ᡚ𑄳.靑𐹽𐫜
+xn--3xa856hp23pxmc.xn--es5a888tvjc2u15h; ς𐹠ᡚ𑄳.靑𐹽𽐖𐫜; [B5, B6, V6]; xn--3xa856hp23pxmc.xn--es5a888tvjc2u15h; ; ; # ς𐹠ᡚ𑄳.靑𐹽𐫜
+Σ𐹠ᡚ𑄳.⾭𐹽𽐖𐫜; σ𐹠ᡚ𑄳.靑𐹽𽐖𐫜; [B5, B6, P1, V6]; xn--4xa656hp23pxmc.xn--es5a888tvjc2u15h; ; ; # σ𐹠ᡚ𑄳.靑𐹽𐫜
+σ𐹠ᡚ𑄳.⾭𐹽𽐖𐫜; σ𐹠ᡚ𑄳.靑𐹽𽐖𐫜; [B5, B6, P1, V6]; xn--4xa656hp23pxmc.xn--es5a888tvjc2u15h; ; ; # σ𐹠ᡚ𑄳.靑𐹽𐫜
+𐋷。‍; 𐋷.‍; [C2]; xn--r97c.xn--1ug; ; xn--r97c.; [] # 𐋷.
+xn--r97c.; 𐋷.; ; xn--r97c.; ; ; # 𐋷.
+𐋷.; ; ; xn--r97c.; ; ; # 𐋷.
+xn--r97c.xn--1ug; 𐋷.‍; [C2]; xn--r97c.xn--1ug; ; ; # 𐋷.
+𑰳𑈯。⥪; 𑰳𑈯.⥪; [V5]; xn--2g1d14o.xn--jti; ; ; # 𑰳𑈯.⥪
+xn--2g1d14o.xn--jti; 𑰳𑈯.⥪; [V5]; xn--2g1d14o.xn--jti; ; ; # 𑰳𑈯.⥪
+𑆀䁴񤧣.Ⴕ𝟜‌͈; 𑆀䁴񤧣.Ⴕ4‌͈; [C1, P1, V5, V6]; xn--1mnx647cg3x1b.xn--4-zfb324h32o; ; xn--1mnx647cg3x1b.xn--4-zfb324h; [P1, V5, V6] # 𑆀䁴.Ⴕ4͈
+𑆀䁴񤧣.Ⴕ4‌͈; ; [C1, P1, V5, V6]; xn--1mnx647cg3x1b.xn--4-zfb324h32o; ; xn--1mnx647cg3x1b.xn--4-zfb324h; [P1, V5, V6] # 𑆀䁴.Ⴕ4͈
+𑆀䁴񤧣.ⴕ4‌͈; ; [C1, P1, V5, V6]; xn--1mnx647cg3x1b.xn--4-zfb502tlsl; ; xn--1mnx647cg3x1b.xn--4-zfb5123a; [P1, V5, V6] # 𑆀䁴.ⴕ4͈
+xn--1mnx647cg3x1b.xn--4-zfb5123a; 𑆀䁴񤧣.ⴕ4͈; [V5, V6]; xn--1mnx647cg3x1b.xn--4-zfb5123a; ; ; # 𑆀䁴.ⴕ4͈
+xn--1mnx647cg3x1b.xn--4-zfb502tlsl; 𑆀䁴񤧣.ⴕ4‌͈; [C1, V5, V6]; xn--1mnx647cg3x1b.xn--4-zfb502tlsl; ; ; # 𑆀䁴.ⴕ4͈
+xn--1mnx647cg3x1b.xn--4-zfb324h; 𑆀䁴񤧣.Ⴕ4͈; [V5, V6]; xn--1mnx647cg3x1b.xn--4-zfb324h; ; ; # 𑆀䁴.Ⴕ4͈
+xn--1mnx647cg3x1b.xn--4-zfb324h32o; 𑆀䁴񤧣.Ⴕ4‌͈; [C1, V5, V6]; xn--1mnx647cg3x1b.xn--4-zfb324h32o; ; ; # 𑆀䁴.Ⴕ4͈
+𑆀䁴񤧣.ⴕ𝟜‌͈; 𑆀䁴񤧣.ⴕ4‌͈; [C1, P1, V5, V6]; xn--1mnx647cg3x1b.xn--4-zfb502tlsl; ; xn--1mnx647cg3x1b.xn--4-zfb5123a; [P1, V5, V6] # 𑆀䁴.ⴕ4͈
+憡?‌Ⴔ.𐋮‍≠; ; [C1, C2, P1, V6]; 憡?‌Ⴔ.xn--1ug73gl146a; [C1, C2, P1, V6, A3]; 憡?Ⴔ.xn--1chz659f; [P1, V6, A3] # 憡Ⴔ.𐋮≠
+憡?‌Ⴔ.𐋮‍≠; 憡?‌Ⴔ.𐋮‍≠; [C1, C2, P1, V6]; 憡?‌Ⴔ.xn--1ug73gl146a; [C1, C2, P1, V6, A3]; 憡?Ⴔ.xn--1chz659f; [P1, V6, A3] # 憡Ⴔ.𐋮≠
+憡?‌ⴔ.𐋮‍≠; 憡?‌ⴔ.𐋮‍≠; [C1, C2, P1, V6]; 憡?‌ⴔ.xn--1ug73gl146a; [C1, C2, P1, V6, A3]; 憡?ⴔ.xn--1chz659f; [P1, V6, A3] # 憡ⴔ.𐋮≠
+憡?‌ⴔ.𐋮‍≠; ; [C1, C2, P1, V6]; 憡?‌ⴔ.xn--1ug73gl146a; [C1, C2, P1, V6, A3]; 憡?ⴔ.xn--1chz659f; [P1, V6, A3] # 憡ⴔ.𐋮≠
+憡?ⴔ.xn--1chz659f; 憡?ⴔ.𐋮≠; [P1, V6]; 憡?ⴔ.xn--1chz659f; [P1, V6, A3]; ; # 憡ⴔ.𐋮≠
+憡?Ⴔ.XN--1CHZ659F; 憡?Ⴔ.𐋮≠; [P1, V6]; 憡?Ⴔ.xn--1chz659f; [P1, V6, A3]; ; # 憡Ⴔ.𐋮≠
+憡?Ⴔ.xn--1chz659f; 憡?Ⴔ.𐋮≠; [P1, V6]; 憡?Ⴔ.xn--1chz659f; [P1, V6, A3]; ; # 憡Ⴔ.𐋮≠
+憡?‌ⴔ.xn--1ug73gl146a; 憡?‌ⴔ.𐋮‍≠; [C1, C2, P1, V6]; 憡?‌ⴔ.xn--1ug73gl146a; [C1, C2, P1, V6, A3]; 憡?ⴔ.xn--1ug73gl146a; [C2, P1, V6, A3] # 憡ⴔ.𐋮≠
+憡?‌Ⴔ.XN--1UG73GL146A; 憡?‌Ⴔ.𐋮‍≠; [C1, C2, P1, V6]; 憡?‌Ⴔ.xn--1ug73gl146a; [C1, C2, P1, V6, A3]; 憡?Ⴔ.xn--1ug73gl146a; [C2, P1, V6, A3] # 憡Ⴔ.𐋮≠
+憡?‌Ⴔ.xn--1ug73gl146a; 憡?‌Ⴔ.𐋮‍≠; [C1, C2, P1, V6]; 憡?‌Ⴔ.xn--1ug73gl146a; [C1, C2, P1, V6, A3]; 憡?Ⴔ.xn--1ug73gl146a; [C2, P1, V6, A3] # 憡Ⴔ.𐋮≠
+憡?Ⴔ.xn--1ug73gl146a; 憡?Ⴔ.𐋮‍≠; [C2, P1, V6]; 憡?Ⴔ.xn--1ug73gl146a; [C2, P1, V6, A3]; ; # 憡Ⴔ.𐋮≠
+憡?ⴔ.xn--1ug73gl146a; 憡?ⴔ.𐋮‍≠; [C2, P1, V6]; 憡?ⴔ.xn--1ug73gl146a; [C2, P1, V6, A3]; ; # 憡ⴔ.𐋮≠
+憡?Ⴔ.XN--1UG73GL146A; 憡?Ⴔ.𐋮‍≠; [C2, P1, V6]; 憡?Ⴔ.xn--1ug73gl146a; [C2, P1, V6, A3]; ; # 憡Ⴔ.𐋮≠
diff --git a/Build/source/libs/icu/icu-src/source/test/testdata/LineBreakTest.txt b/Build/source/libs/icu/icu-src/source/test/testdata/LineBreakTest.txt
index 6715446aba2..0e9e678a852 100644
--- a/Build/source/libs/icu/icu-src/source/test/testdata/LineBreakTest.txt
+++ b/Build/source/libs/icu/icu-src/source/test/testdata/LineBreakTest.txt
@@ -1,6 +1,6 @@
-# LineBreakTest-10.0.0.txt
-# Date: 2017-04-14, 05:40:30 GMT
-# © 2017 Unicode®, Inc.
+# LineBreakTest-11.0.0.txt
+# Date: 2018-05-20, 09:03:09 GMT
+# © 2018 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# For terms of use, see http://www.unicode.org/terms_of_use.html
#
@@ -6242,174 +6242,174 @@
× 0001 × 0020 ÷ 3041 ÷ # × [0.3] <START OF HEADING> (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] HIRAGANA LETTER SMALL A (CJ_NS) ÷ [0.3]
× 0001 × 0308 × 3041 ÷ # × [0.3] <START OF HEADING> (CM1_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [21.03] HIRAGANA LETTER SMALL A (CJ_NS) ÷ [0.3]
× 0001 × 0308 × 0020 ÷ 3041 ÷ # × [0.3] <START OF HEADING> (CM1_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] HIRAGANA LETTER SMALL A (CJ_NS) ÷ [0.3]
-× 200D × 0023 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [28.0] NUMBER SIGN (AL) ÷ [0.3]
+× 200D × 0023 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] NUMBER SIGN (AL) ÷ [0.3]
× 200D × 0020 ÷ 0023 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) ÷ [18.0] NUMBER SIGN (AL) ÷ [0.3]
-× 200D × 0308 × 0023 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [28.0] NUMBER SIGN (AL) ÷ [0.3]
-× 200D × 0308 × 0020 ÷ 0023 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] NUMBER SIGN (AL) ÷ [0.3]
-× 200D ÷ 2014 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) ÷ [999.0] EM DASH (B2) ÷ [0.3]
+× 200D × 0308 × 0023 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [28.0] NUMBER SIGN (AL) ÷ [0.3]
+× 200D × 0308 × 0020 ÷ 0023 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] NUMBER SIGN (AL) ÷ [0.3]
+× 200D × 2014 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] EM DASH (B2) ÷ [0.3]
× 200D × 0020 ÷ 2014 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) ÷ [18.0] EM DASH (B2) ÷ [0.3]
-× 200D × 0308 ÷ 2014 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) ÷ [999.0] EM DASH (B2) ÷ [0.3]
-× 200D × 0308 × 0020 ÷ 2014 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] EM DASH (B2) ÷ [0.3]
-× 200D × 0009 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [21.01] <CHARACTER TABULATION> (BA) ÷ [0.3]
+× 200D × 0308 ÷ 2014 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) ÷ [999.0] EM DASH (B2) ÷ [0.3]
+× 200D × 0308 × 0020 ÷ 2014 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] EM DASH (B2) ÷ [0.3]
+× 200D × 0009 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] <CHARACTER TABULATION> (BA) ÷ [0.3]
× 200D × 0020 ÷ 0009 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) ÷ [18.0] <CHARACTER TABULATION> (BA) ÷ [0.3]
-× 200D × 0308 × 0009 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [21.01] <CHARACTER TABULATION> (BA) ÷ [0.3]
-× 200D × 0308 × 0020 ÷ 0009 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] <CHARACTER TABULATION> (BA) ÷ [0.3]
-× 200D ÷ 00B4 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) ÷ [999.0] ACUTE ACCENT (BB) ÷ [0.3]
+× 200D × 0308 × 0009 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [21.01] <CHARACTER TABULATION> (BA) ÷ [0.3]
+× 200D × 0308 × 0020 ÷ 0009 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] <CHARACTER TABULATION> (BA) ÷ [0.3]
+× 200D × 00B4 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] ACUTE ACCENT (BB) ÷ [0.3]
× 200D × 0020 ÷ 00B4 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) ÷ [18.0] ACUTE ACCENT (BB) ÷ [0.3]
-× 200D × 0308 ÷ 00B4 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) ÷ [999.0] ACUTE ACCENT (BB) ÷ [0.3]
-× 200D × 0308 × 0020 ÷ 00B4 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] ACUTE ACCENT (BB) ÷ [0.3]
+× 200D × 0308 ÷ 00B4 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) ÷ [999.0] ACUTE ACCENT (BB) ÷ [0.3]
+× 200D × 0308 × 0020 ÷ 00B4 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] ACUTE ACCENT (BB) ÷ [0.3]
× 200D × 000B ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [6.0] <LINE TABULATION> (BK) ÷ [0.3]
× 200D × 0020 × 000B ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) × [6.0] <LINE TABULATION> (BK) ÷ [0.3]
-× 200D × 0308 × 000B ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [6.0] <LINE TABULATION> (BK) ÷ [0.3]
-× 200D × 0308 × 0020 × 000B ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) × [6.0] <LINE TABULATION> (BK) ÷ [0.3]
-× 200D ÷ FFFC ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) ÷ [20.01] OBJECT REPLACEMENT CHARACTER (CB) ÷ [0.3]
+× 200D × 0308 × 000B ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [6.0] <LINE TABULATION> (BK) ÷ [0.3]
+× 200D × 0308 × 0020 × 000B ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) × [6.0] <LINE TABULATION> (BK) ÷ [0.3]
+× 200D × FFFC ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] OBJECT REPLACEMENT CHARACTER (CB) ÷ [0.3]
× 200D × 0020 ÷ FFFC ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) ÷ [18.0] OBJECT REPLACEMENT CHARACTER (CB) ÷ [0.3]
-× 200D × 0308 ÷ FFFC ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) ÷ [20.01] OBJECT REPLACEMENT CHARACTER (CB) ÷ [0.3]
-× 200D × 0308 × 0020 ÷ FFFC ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] OBJECT REPLACEMENT CHARACTER (CB) ÷ [0.3]
-× 200D × 007D ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [13.04] RIGHT CURLY BRACKET (CL) ÷ [0.3]
+× 200D × 0308 ÷ FFFC ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) ÷ [20.01] OBJECT REPLACEMENT CHARACTER (CB) ÷ [0.3]
+× 200D × 0308 × 0020 ÷ FFFC ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] OBJECT REPLACEMENT CHARACTER (CB) ÷ [0.3]
+× 200D × 007D ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] RIGHT CURLY BRACKET (CL) ÷ [0.3]
× 200D × 0020 × 007D ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) × [13.02] RIGHT CURLY BRACKET (CL) ÷ [0.3]
-× 200D × 0308 × 007D ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [13.04] RIGHT CURLY BRACKET (CL) ÷ [0.3]
-× 200D × 0308 × 0020 × 007D ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) × [13.02] RIGHT CURLY BRACKET (CL) ÷ [0.3]
-× 200D × 0029 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [13.04] RIGHT PARENTHESIS (CP) ÷ [0.3]
+× 200D × 0308 × 007D ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [13.04] RIGHT CURLY BRACKET (CL) ÷ [0.3]
+× 200D × 0308 × 0020 × 007D ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) × [13.02] RIGHT CURLY BRACKET (CL) ÷ [0.3]
+× 200D × 0029 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] RIGHT PARENTHESIS (CP) ÷ [0.3]
× 200D × 0020 × 0029 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) × [13.02] RIGHT PARENTHESIS (CP) ÷ [0.3]
-× 200D × 0308 × 0029 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [13.04] RIGHT PARENTHESIS (CP) ÷ [0.3]
-× 200D × 0308 × 0020 × 0029 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) × [13.02] RIGHT PARENTHESIS (CP) ÷ [0.3]
+× 200D × 0308 × 0029 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [13.04] RIGHT PARENTHESIS (CP) ÷ [0.3]
+× 200D × 0308 × 0020 × 0029 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) × [13.02] RIGHT PARENTHESIS (CP) ÷ [0.3]
× 200D × 000D ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [6.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
× 200D × 0020 × 000D ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) × [6.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
-× 200D × 0308 × 000D ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [6.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
-× 200D × 0308 × 0020 × 000D ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) × [6.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
-× 200D × 0021 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [13.01] EXCLAMATION MARK (EX) ÷ [0.3]
+× 200D × 0308 × 000D ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [6.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+× 200D × 0308 × 0020 × 000D ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) × [6.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+× 200D × 0021 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] EXCLAMATION MARK (EX) ÷ [0.3]
× 200D × 0020 × 0021 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) × [13.01] EXCLAMATION MARK (EX) ÷ [0.3]
-× 200D × 0308 × 0021 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [13.01] EXCLAMATION MARK (EX) ÷ [0.3]
-× 200D × 0308 × 0020 × 0021 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) × [13.01] EXCLAMATION MARK (EX) ÷ [0.3]
-× 200D × 00A0 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [12.3] NO-BREAK SPACE (GL) ÷ [0.3]
+× 200D × 0308 × 0021 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [13.01] EXCLAMATION MARK (EX) ÷ [0.3]
+× 200D × 0308 × 0020 × 0021 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) × [13.01] EXCLAMATION MARK (EX) ÷ [0.3]
+× 200D × 00A0 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] NO-BREAK SPACE (GL) ÷ [0.3]
× 200D × 0020 ÷ 00A0 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) ÷ [18.0] NO-BREAK SPACE (GL) ÷ [0.3]
-× 200D × 0308 × 00A0 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [12.3] NO-BREAK SPACE (GL) ÷ [0.3]
-× 200D × 0308 × 0020 ÷ 00A0 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] NO-BREAK SPACE (GL) ÷ [0.3]
-× 200D ÷ AC00 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) ÷ [999.0] HANGUL SYLLABLE GA (H2) ÷ [0.3]
+× 200D × 0308 × 00A0 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [12.3] NO-BREAK SPACE (GL) ÷ [0.3]
+× 200D × 0308 × 0020 ÷ 00A0 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] NO-BREAK SPACE (GL) ÷ [0.3]
+× 200D × AC00 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] HANGUL SYLLABLE GA (H2) ÷ [0.3]
× 200D × 0020 ÷ AC00 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) ÷ [18.0] HANGUL SYLLABLE GA (H2) ÷ [0.3]
-× 200D × 0308 ÷ AC00 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) ÷ [999.0] HANGUL SYLLABLE GA (H2) ÷ [0.3]
-× 200D × 0308 × 0020 ÷ AC00 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] HANGUL SYLLABLE GA (H2) ÷ [0.3]
-× 200D ÷ AC01 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) ÷ [999.0] HANGUL SYLLABLE GAG (H3) ÷ [0.3]
+× 200D × 0308 ÷ AC00 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) ÷ [999.0] HANGUL SYLLABLE GA (H2) ÷ [0.3]
+× 200D × 0308 × 0020 ÷ AC00 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] HANGUL SYLLABLE GA (H2) ÷ [0.3]
+× 200D × AC01 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] HANGUL SYLLABLE GAG (H3) ÷ [0.3]
× 200D × 0020 ÷ AC01 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) ÷ [18.0] HANGUL SYLLABLE GAG (H3) ÷ [0.3]
-× 200D × 0308 ÷ AC01 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) ÷ [999.0] HANGUL SYLLABLE GAG (H3) ÷ [0.3]
-× 200D × 0308 × 0020 ÷ AC01 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] HANGUL SYLLABLE GAG (H3) ÷ [0.3]
-× 200D × 05D0 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [28.0] HEBREW LETTER ALEF (HL) ÷ [0.3]
+× 200D × 0308 ÷ AC01 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) ÷ [999.0] HANGUL SYLLABLE GAG (H3) ÷ [0.3]
+× 200D × 0308 × 0020 ÷ AC01 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] HANGUL SYLLABLE GAG (H3) ÷ [0.3]
+× 200D × 05D0 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] HEBREW LETTER ALEF (HL) ÷ [0.3]
× 200D × 0020 ÷ 05D0 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) ÷ [18.0] HEBREW LETTER ALEF (HL) ÷ [0.3]
-× 200D × 0308 × 05D0 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [28.0] HEBREW LETTER ALEF (HL) ÷ [0.3]
-× 200D × 0308 × 0020 ÷ 05D0 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] HEBREW LETTER ALEF (HL) ÷ [0.3]
-× 200D × 002D ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [21.02] HYPHEN-MINUS (HY) ÷ [0.3]
+× 200D × 0308 × 05D0 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [28.0] HEBREW LETTER ALEF (HL) ÷ [0.3]
+× 200D × 0308 × 0020 ÷ 05D0 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] HEBREW LETTER ALEF (HL) ÷ [0.3]
+× 200D × 002D ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] HYPHEN-MINUS (HY) ÷ [0.3]
× 200D × 0020 ÷ 002D ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) ÷ [18.0] HYPHEN-MINUS (HY) ÷ [0.3]
-× 200D × 0308 × 002D ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [21.02] HYPHEN-MINUS (HY) ÷ [0.3]
-× 200D × 0308 × 0020 ÷ 002D ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] HYPHEN-MINUS (HY) ÷ [0.3]
+× 200D × 0308 × 002D ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [21.02] HYPHEN-MINUS (HY) ÷ [0.3]
+× 200D × 0308 × 0020 ÷ 002D ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] HYPHEN-MINUS (HY) ÷ [0.3]
× 200D × 231A ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] WATCH (ID) ÷ [0.3]
× 200D × 0020 ÷ 231A ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) ÷ [18.0] WATCH (ID) ÷ [0.3]
-× 200D × 0308 ÷ 231A ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) ÷ [999.0] WATCH (ID) ÷ [0.3]
-× 200D × 0308 × 0020 ÷ 231A ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] WATCH (ID) ÷ [0.3]
-× 200D × 2024 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [22.01] ONE DOT LEADER (IN) ÷ [0.3]
+× 200D × 0308 ÷ 231A ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) ÷ [999.0] WATCH (ID) ÷ [0.3]
+× 200D × 0308 × 0020 ÷ 231A ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] WATCH (ID) ÷ [0.3]
+× 200D × 2024 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] ONE DOT LEADER (IN) ÷ [0.3]
× 200D × 0020 ÷ 2024 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) ÷ [18.0] ONE DOT LEADER (IN) ÷ [0.3]
-× 200D × 0308 × 2024 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [22.01] ONE DOT LEADER (IN) ÷ [0.3]
-× 200D × 0308 × 0020 ÷ 2024 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] ONE DOT LEADER (IN) ÷ [0.3]
-× 200D × 002C ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [13.04] COMMA (IS) ÷ [0.3]
+× 200D × 0308 × 2024 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [22.01] ONE DOT LEADER (IN) ÷ [0.3]
+× 200D × 0308 × 0020 ÷ 2024 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] ONE DOT LEADER (IN) ÷ [0.3]
+× 200D × 002C ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMMA (IS) ÷ [0.3]
× 200D × 0020 × 002C ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) × [13.02] COMMA (IS) ÷ [0.3]
-× 200D × 0308 × 002C ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [13.04] COMMA (IS) ÷ [0.3]
-× 200D × 0308 × 0020 × 002C ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) × [13.02] COMMA (IS) ÷ [0.3]
-× 200D ÷ 1100 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) ÷ [999.0] HANGUL CHOSEONG KIYEOK (JL) ÷ [0.3]
+× 200D × 0308 × 002C ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [13.04] COMMA (IS) ÷ [0.3]
+× 200D × 0308 × 0020 × 002C ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) × [13.02] COMMA (IS) ÷ [0.3]
+× 200D × 1100 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] HANGUL CHOSEONG KIYEOK (JL) ÷ [0.3]
× 200D × 0020 ÷ 1100 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) ÷ [18.0] HANGUL CHOSEONG KIYEOK (JL) ÷ [0.3]
-× 200D × 0308 ÷ 1100 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) ÷ [999.0] HANGUL CHOSEONG KIYEOK (JL) ÷ [0.3]
-× 200D × 0308 × 0020 ÷ 1100 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] HANGUL CHOSEONG KIYEOK (JL) ÷ [0.3]
-× 200D ÷ 11A8 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) ÷ [999.0] HANGUL JONGSEONG KIYEOK (JT) ÷ [0.3]
+× 200D × 0308 ÷ 1100 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) ÷ [999.0] HANGUL CHOSEONG KIYEOK (JL) ÷ [0.3]
+× 200D × 0308 × 0020 ÷ 1100 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] HANGUL CHOSEONG KIYEOK (JL) ÷ [0.3]
+× 200D × 11A8 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] HANGUL JONGSEONG KIYEOK (JT) ÷ [0.3]
× 200D × 0020 ÷ 11A8 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) ÷ [18.0] HANGUL JONGSEONG KIYEOK (JT) ÷ [0.3]
-× 200D × 0308 ÷ 11A8 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) ÷ [999.0] HANGUL JONGSEONG KIYEOK (JT) ÷ [0.3]
-× 200D × 0308 × 0020 ÷ 11A8 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] HANGUL JONGSEONG KIYEOK (JT) ÷ [0.3]
-× 200D ÷ 1160 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) ÷ [999.0] HANGUL JUNGSEONG FILLER (JV) ÷ [0.3]
+× 200D × 0308 ÷ 11A8 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) ÷ [999.0] HANGUL JONGSEONG KIYEOK (JT) ÷ [0.3]
+× 200D × 0308 × 0020 ÷ 11A8 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] HANGUL JONGSEONG KIYEOK (JT) ÷ [0.3]
+× 200D × 1160 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] HANGUL JUNGSEONG FILLER (JV) ÷ [0.3]
× 200D × 0020 ÷ 1160 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) ÷ [18.0] HANGUL JUNGSEONG FILLER (JV) ÷ [0.3]
-× 200D × 0308 ÷ 1160 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) ÷ [999.0] HANGUL JUNGSEONG FILLER (JV) ÷ [0.3]
-× 200D × 0308 × 0020 ÷ 1160 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] HANGUL JUNGSEONG FILLER (JV) ÷ [0.3]
+× 200D × 0308 ÷ 1160 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) ÷ [999.0] HANGUL JUNGSEONG FILLER (JV) ÷ [0.3]
+× 200D × 0308 × 0020 ÷ 1160 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] HANGUL JUNGSEONG FILLER (JV) ÷ [0.3]
× 200D × 000A ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [6.0] <LINE FEED (LF)> (LF) ÷ [0.3]
× 200D × 0020 × 000A ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) × [6.0] <LINE FEED (LF)> (LF) ÷ [0.3]
-× 200D × 0308 × 000A ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [6.0] <LINE FEED (LF)> (LF) ÷ [0.3]
-× 200D × 0308 × 0020 × 000A ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) × [6.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+× 200D × 0308 × 000A ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [6.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+× 200D × 0308 × 0020 × 000A ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) × [6.0] <LINE FEED (LF)> (LF) ÷ [0.3]
× 200D × 0085 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [6.0] <NEXT LINE (NEL)> (NL) ÷ [0.3]
× 200D × 0020 × 0085 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) × [6.0] <NEXT LINE (NEL)> (NL) ÷ [0.3]
-× 200D × 0308 × 0085 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [6.0] <NEXT LINE (NEL)> (NL) ÷ [0.3]
-× 200D × 0308 × 0020 × 0085 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) × [6.0] <NEXT LINE (NEL)> (NL) ÷ [0.3]
-× 200D × 17D6 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [21.03] KHMER SIGN CAMNUC PII KUUH (NS) ÷ [0.3]
+× 200D × 0308 × 0085 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [6.0] <NEXT LINE (NEL)> (NL) ÷ [0.3]
+× 200D × 0308 × 0020 × 0085 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) × [6.0] <NEXT LINE (NEL)> (NL) ÷ [0.3]
+× 200D × 17D6 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] KHMER SIGN CAMNUC PII KUUH (NS) ÷ [0.3]
× 200D × 0020 ÷ 17D6 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) ÷ [18.0] KHMER SIGN CAMNUC PII KUUH (NS) ÷ [0.3]
-× 200D × 0308 × 17D6 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [21.03] KHMER SIGN CAMNUC PII KUUH (NS) ÷ [0.3]
-× 200D × 0308 × 0020 ÷ 17D6 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] KHMER SIGN CAMNUC PII KUUH (NS) ÷ [0.3]
-× 200D × 0030 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [23.02] DIGIT ZERO (NU) ÷ [0.3]
+× 200D × 0308 × 17D6 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [21.03] KHMER SIGN CAMNUC PII KUUH (NS) ÷ [0.3]
+× 200D × 0308 × 0020 ÷ 17D6 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] KHMER SIGN CAMNUC PII KUUH (NS) ÷ [0.3]
+× 200D × 0030 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] DIGIT ZERO (NU) ÷ [0.3]
× 200D × 0020 ÷ 0030 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) ÷ [18.0] DIGIT ZERO (NU) ÷ [0.3]
-× 200D × 0308 × 0030 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [23.02] DIGIT ZERO (NU) ÷ [0.3]
-× 200D × 0308 × 0020 ÷ 0030 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] DIGIT ZERO (NU) ÷ [0.3]
-× 200D × 0028 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [30.01] LEFT PARENTHESIS (OP) ÷ [0.3]
+× 200D × 0308 × 0030 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [23.02] DIGIT ZERO (NU) ÷ [0.3]
+× 200D × 0308 × 0020 ÷ 0030 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] DIGIT ZERO (NU) ÷ [0.3]
+× 200D × 0028 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] LEFT PARENTHESIS (OP) ÷ [0.3]
× 200D × 0020 ÷ 0028 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) ÷ [18.0] LEFT PARENTHESIS (OP) ÷ [0.3]
-× 200D × 0308 × 0028 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [30.01] LEFT PARENTHESIS (OP) ÷ [0.3]
-× 200D × 0308 × 0020 ÷ 0028 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] LEFT PARENTHESIS (OP) ÷ [0.3]
-× 200D × 0025 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [24.03] PERCENT SIGN (PO) ÷ [0.3]
+× 200D × 0308 × 0028 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [30.01] LEFT PARENTHESIS (OP) ÷ [0.3]
+× 200D × 0308 × 0020 ÷ 0028 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] LEFT PARENTHESIS (OP) ÷ [0.3]
+× 200D × 0025 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] PERCENT SIGN (PO) ÷ [0.3]
× 200D × 0020 ÷ 0025 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) ÷ [18.0] PERCENT SIGN (PO) ÷ [0.3]
-× 200D × 0308 × 0025 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [24.03] PERCENT SIGN (PO) ÷ [0.3]
-× 200D × 0308 × 0020 ÷ 0025 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] PERCENT SIGN (PO) ÷ [0.3]
-× 200D × 0024 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [24.03] DOLLAR SIGN (PR) ÷ [0.3]
+× 200D × 0308 × 0025 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [24.03] PERCENT SIGN (PO) ÷ [0.3]
+× 200D × 0308 × 0020 ÷ 0025 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] PERCENT SIGN (PO) ÷ [0.3]
+× 200D × 0024 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] DOLLAR SIGN (PR) ÷ [0.3]
× 200D × 0020 ÷ 0024 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) ÷ [18.0] DOLLAR SIGN (PR) ÷ [0.3]
-× 200D × 0308 × 0024 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [24.03] DOLLAR SIGN (PR) ÷ [0.3]
-× 200D × 0308 × 0020 ÷ 0024 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] DOLLAR SIGN (PR) ÷ [0.3]
-× 200D × 0022 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [19.01] QUOTATION MARK (QU) ÷ [0.3]
+× 200D × 0308 × 0024 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [24.03] DOLLAR SIGN (PR) ÷ [0.3]
+× 200D × 0308 × 0020 ÷ 0024 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] DOLLAR SIGN (PR) ÷ [0.3]
+× 200D × 0022 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] QUOTATION MARK (QU) ÷ [0.3]
× 200D × 0020 ÷ 0022 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) ÷ [18.0] QUOTATION MARK (QU) ÷ [0.3]
-× 200D × 0308 × 0022 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [19.01] QUOTATION MARK (QU) ÷ [0.3]
-× 200D × 0308 × 0020 ÷ 0022 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] QUOTATION MARK (QU) ÷ [0.3]
+× 200D × 0308 × 0022 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [19.01] QUOTATION MARK (QU) ÷ [0.3]
+× 200D × 0308 × 0020 ÷ 0022 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] QUOTATION MARK (QU) ÷ [0.3]
× 200D × 0020 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) ÷ [0.3]
× 200D × 0020 × 0020 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) × [7.01] SPACE (SP) ÷ [0.3]
-× 200D × 0308 × 0020 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [0.3]
-× 200D × 0308 × 0020 × 0020 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) × [7.01] SPACE (SP) ÷ [0.3]
-× 200D × 002F ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [13.04] SOLIDUS (SY) ÷ [0.3]
+× 200D × 0308 × 0020 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [0.3]
+× 200D × 0308 × 0020 × 0020 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) × [7.01] SPACE (SP) ÷ [0.3]
+× 200D × 002F ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] SOLIDUS (SY) ÷ [0.3]
× 200D × 0020 × 002F ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) × [13.02] SOLIDUS (SY) ÷ [0.3]
-× 200D × 0308 × 002F ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [13.04] SOLIDUS (SY) ÷ [0.3]
-× 200D × 0308 × 0020 × 002F ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) × [13.02] SOLIDUS (SY) ÷ [0.3]
-× 200D × 2060 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [11.01] WORD JOINER (WJ) ÷ [0.3]
+× 200D × 0308 × 002F ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [13.04] SOLIDUS (SY) ÷ [0.3]
+× 200D × 0308 × 0020 × 002F ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) × [13.02] SOLIDUS (SY) ÷ [0.3]
+× 200D × 2060 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] WORD JOINER (WJ) ÷ [0.3]
× 200D × 0020 × 2060 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) × [11.01] WORD JOINER (WJ) ÷ [0.3]
-× 200D × 0308 × 2060 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [11.01] WORD JOINER (WJ) ÷ [0.3]
-× 200D × 0308 × 0020 × 2060 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) × [11.01] WORD JOINER (WJ) ÷ [0.3]
+× 200D × 0308 × 2060 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [11.01] WORD JOINER (WJ) ÷ [0.3]
+× 200D × 0308 × 0020 × 2060 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) × [11.01] WORD JOINER (WJ) ÷ [0.3]
× 200D × 200B ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.02] ZERO WIDTH SPACE (ZW) ÷ [0.3]
× 200D × 0020 × 200B ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) × [7.02] ZERO WIDTH SPACE (ZW) ÷ [0.3]
-× 200D × 0308 × 200B ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.02] ZERO WIDTH SPACE (ZW) ÷ [0.3]
-× 200D × 0308 × 0020 × 200B ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) × [7.02] ZERO WIDTH SPACE (ZW) ÷ [0.3]
-× 200D ÷ 1F1E6 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
+× 200D × 0308 × 200B ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.02] ZERO WIDTH SPACE (ZW) ÷ [0.3]
+× 200D × 0308 × 0020 × 200B ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) × [7.02] ZERO WIDTH SPACE (ZW) ÷ [0.3]
+× 200D × 1F1E6 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
× 200D × 0020 ÷ 1F1E6 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) ÷ [18.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-× 200D × 0308 ÷ 1F1E6 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-× 200D × 0308 × 0020 ÷ 1F1E6 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
+× 200D × 0308 ÷ 1F1E6 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
+× 200D × 0308 × 0020 ÷ 1F1E6 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
× 200D × 261D ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] WHITE UP POINTING INDEX (EB) ÷ [0.3]
× 200D × 0020 ÷ 261D ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) ÷ [18.0] WHITE UP POINTING INDEX (EB) ÷ [0.3]
-× 200D × 0308 ÷ 261D ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) ÷ [999.0] WHITE UP POINTING INDEX (EB) ÷ [0.3]
-× 200D × 0308 × 0020 ÷ 261D ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] WHITE UP POINTING INDEX (EB) ÷ [0.3]
+× 200D × 0308 ÷ 261D ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) ÷ [999.0] WHITE UP POINTING INDEX (EB) ÷ [0.3]
+× 200D × 0308 × 0020 ÷ 261D ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] WHITE UP POINTING INDEX (EB) ÷ [0.3]
× 200D × 1F3FB ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (EM) ÷ [0.3]
× 200D × 0020 ÷ 1F3FB ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) ÷ [18.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (EM) ÷ [0.3]
-× 200D × 0308 ÷ 1F3FB ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (EM) ÷ [0.3]
-× 200D × 0308 × 0020 ÷ 1F3FB ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (EM) ÷ [0.3]
-× 200D × 0001 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] <START OF HEADING> (CM1_CM) ÷ [0.3]
+× 200D × 0308 ÷ 1F3FB ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (EM) ÷ [0.3]
+× 200D × 0308 × 0020 ÷ 1F3FB ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (EM) ÷ [0.3]
+× 200D × 0001 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] <START OF HEADING> (CM1_CM) ÷ [0.3]
× 200D × 0020 ÷ 0001 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) ÷ [18.0] <START OF HEADING> (CM1_CM) ÷ [0.3]
-× 200D × 0308 × 0001 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [9.0] <START OF HEADING> (CM1_CM) ÷ [0.3]
-× 200D × 0308 × 0020 ÷ 0001 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] <START OF HEADING> (CM1_CM) ÷ [0.3]
-× 200D × 200D ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) ÷ [0.3]
+× 200D × 0308 × 0001 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [9.0] <START OF HEADING> (CM1_CM) ÷ [0.3]
+× 200D × 0308 × 0020 ÷ 0001 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] <START OF HEADING> (CM1_CM) ÷ [0.3]
+× 200D × 200D ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) ÷ [0.3]
× 200D × 0020 ÷ 200D ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) ÷ [18.0] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) ÷ [0.3]
-× 200D × 0308 × 200D ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [9.0] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) ÷ [0.3]
-× 200D × 0308 × 0020 ÷ 200D ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) ÷ [0.3]
-× 200D × 00A7 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [28.0] SECTION SIGN (AI_AL) ÷ [0.3]
+× 200D × 0308 × 200D ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [9.0] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) ÷ [0.3]
+× 200D × 0308 × 0020 ÷ 200D ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) ÷ [0.3]
+× 200D × 00A7 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] SECTION SIGN (AI_AL) ÷ [0.3]
× 200D × 0020 ÷ 00A7 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) ÷ [18.0] SECTION SIGN (AI_AL) ÷ [0.3]
-× 200D × 0308 × 00A7 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [28.0] SECTION SIGN (AI_AL) ÷ [0.3]
-× 200D × 0308 × 0020 ÷ 00A7 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] SECTION SIGN (AI_AL) ÷ [0.3]
-× 200D × 50005 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [28.0] <reserved-50005> (XX_AL) ÷ [0.3]
+× 200D × 0308 × 00A7 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [28.0] SECTION SIGN (AI_AL) ÷ [0.3]
+× 200D × 0308 × 0020 ÷ 00A7 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] SECTION SIGN (AI_AL) ÷ [0.3]
+× 200D × 50005 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] <reserved-50005> (XX_AL) ÷ [0.3]
× 200D × 0020 ÷ 50005 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) ÷ [18.0] <reserved-50005> (XX_AL) ÷ [0.3]
-× 200D × 0308 × 50005 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [28.0] <reserved-50005> (XX_AL) ÷ [0.3]
-× 200D × 0308 × 0020 ÷ 50005 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] <reserved-50005> (XX_AL) ÷ [0.3]
-× 200D × 0E01 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [28.0] THAI CHARACTER KO KAI (SA_AL) ÷ [0.3]
+× 200D × 0308 × 50005 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [28.0] <reserved-50005> (XX_AL) ÷ [0.3]
+× 200D × 0308 × 0020 ÷ 50005 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] <reserved-50005> (XX_AL) ÷ [0.3]
+× 200D × 0E01 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] THAI CHARACTER KO KAI (SA_AL) ÷ [0.3]
× 200D × 0020 ÷ 0E01 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) ÷ [18.0] THAI CHARACTER KO KAI (SA_AL) ÷ [0.3]
-× 200D × 0308 × 0E01 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [28.0] THAI CHARACTER KO KAI (SA_AL) ÷ [0.3]
-× 200D × 0308 × 0020 ÷ 0E01 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] THAI CHARACTER KO KAI (SA_AL) ÷ [0.3]
-× 200D × 3041 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [21.03] HIRAGANA LETTER SMALL A (CJ_NS) ÷ [0.3]
+× 200D × 0308 × 0E01 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [28.0] THAI CHARACTER KO KAI (SA_AL) ÷ [0.3]
+× 200D × 0308 × 0020 ÷ 0E01 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] THAI CHARACTER KO KAI (SA_AL) ÷ [0.3]
+× 200D × 3041 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] HIRAGANA LETTER SMALL A (CJ_NS) ÷ [0.3]
× 200D × 0020 ÷ 3041 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) ÷ [18.0] HIRAGANA LETTER SMALL A (CJ_NS) ÷ [0.3]
-× 200D × 0308 × 3041 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [21.03] HIRAGANA LETTER SMALL A (CJ_NS) ÷ [0.3]
-× 200D × 0308 × 0020 ÷ 3041 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] HIRAGANA LETTER SMALL A (CJ_NS) ÷ [0.3]
+× 200D × 0308 × 3041 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [21.03] HIRAGANA LETTER SMALL A (CJ_NS) ÷ [0.3]
+× 200D × 0308 × 0020 ÷ 3041 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] HIRAGANA LETTER SMALL A (CJ_NS) ÷ [0.3]
× 00A7 × 0023 ÷ # × [0.3] SECTION SIGN (AI_AL) × [28.0] NUMBER SIGN (AL) ÷ [0.3]
× 00A7 × 0020 ÷ 0023 ÷ # × [0.3] SECTION SIGN (AI_AL) × [7.01] SPACE (SP) ÷ [18.0] NUMBER SIGN (AL) ÷ [0.3]
× 00A7 × 0308 × 0023 ÷ # × [0.3] SECTION SIGN (AI_AL) × [9.0] COMBINING DIAERESIS (CM1_CM) × [28.0] NUMBER SIGN (AL) ÷ [0.3]
@@ -7084,7 +7084,7 @@
× 3041 × 0308 × 0020 ÷ 3041 ÷ # × [0.3] HIRAGANA LETTER SMALL A (CJ_NS) × [9.0] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] HIRAGANA LETTER SMALL A (CJ_NS) ÷ [0.3]
× 000D × 000A ÷ 0061 × 000A ÷ 0308 ÷ # × [0.3] <CARRIAGE RETURN (CR)> (CR) × [5.01] <LINE FEED (LF)> (LF) ÷ [5.03] LATIN SMALL LETTER A (AL) × [6.0] <LINE FEED (LF)> (LF) ÷ [5.03] COMBINING DIAERESIS (CM1_CM) ÷ [0.3]
× 0061 × 0308 ÷ # × [0.3] LATIN SMALL LETTER A (AL) × [9.0] COMBINING DIAERESIS (CM1_CM) ÷ [0.3]
-× 0020 ÷ 200D × 0646 ÷ # × [0.3] SPACE (SP) ÷ [18.0] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [28.0] ARABIC LETTER NOON (AL) ÷ [0.3]
+× 0020 ÷ 200D × 0646 ÷ # × [0.3] SPACE (SP) ÷ [18.0] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] ARABIC LETTER NOON (AL) ÷ [0.3]
× 0646 × 200D × 0020 ÷ # × [0.3] ARABIC LETTER NOON (AL) × [9.0] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) ÷ [0.3]
× 000B ÷ 3041 ÷ # × [0.3] <LINE TABULATION> (BK) ÷ [4.0] HIRAGANA LETTER SMALL A (CJ_NS) ÷ [0.3]
× 000D ÷ 3041 ÷ # × [0.3] <CARRIAGE RETURN (CR)> (CR) ÷ [5.02] HIRAGANA LETTER SMALL A (CJ_NS) ÷ [0.3]
@@ -7093,8 +7093,8 @@
× 3041 × 2060 ÷ # × [0.3] HIRAGANA LETTER SMALL A (CJ_NS) × [11.01] WORD JOINER (WJ) ÷ [0.3]
× 2060 × 3041 ÷ # × [0.3] WORD JOINER (WJ) × [11.02] HIRAGANA LETTER SMALL A (CJ_NS) ÷ [0.3]
× 3041 × 0308 × 00A0 ÷ # × [0.3] HIRAGANA LETTER SMALL A (CJ_NS) × [9.0] COMBINING DIAERESIS (CM1_CM) × [12.2] NO-BREAK SPACE (GL) ÷ [0.3]
-× 200D × 00A0 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [12.3] NO-BREAK SPACE (GL) ÷ [0.3]
-× 200D × 002F ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [13.04] SOLIDUS (SY) ÷ [0.3]
+× 200D × 00A0 ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] NO-BREAK SPACE (GL) ÷ [0.3]
+× 200D × 002F ÷ # × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] SOLIDUS (SY) ÷ [0.3]
× 2014 × 2014 ÷ # × [0.3] EM DASH (B2) × [17.0] EM DASH (B2) ÷ [0.3]
× 3041 ÷ FFFC ÷ # × [0.3] HIRAGANA LETTER SMALL A (CJ_NS) ÷ [20.01] OBJECT REPLACEMENT CHARACTER (CB) ÷ [0.3]
× FFFC ÷ 3041 ÷ # × [0.3] OBJECT REPLACEMENT CHARACTER (CB) ÷ [20.02] HIRAGANA LETTER SMALL A (CJ_NS) ÷ [0.3]
diff --git a/Build/source/libs/icu/icu-src/source/test/testdata/NumberFormatTestCases.txt b/Build/source/libs/icu/icu-src/source/test/testdata/NumberFormatTestCases.txt
index b7c7beb8661..f46810bf01c 100644
--- a/Build/source/libs/icu/icu-src/source/test/testdata/NumberFormatTestCases.txt
+++ b/Build/source/libs/icu/icu-src/source/test/testdata/NumberFormatTestCases.txt
@@ -16,12 +16,12 @@ rt: "0.###" 1.0 "1"
# Basics
fp: "0.####" 0.10005 "0.1" 0.1
fp: - 0.10006 "0.1001" 0.1001
-pat: - "#0.####"
+pat: - "0.####"
fp: "#.####" 0.10005 "0.1" 0.1
-pat: - "#0.####"
+pat: - "0.####"
rt: "0" 1234 "1234"
-pat: - "#0"
+pat: - "0"
# Significant digits
fp: "@@@" 1.234567 "1.23" 1.23
@@ -79,12 +79,12 @@ fpc: - 1234.56/JPY "\u00A51,235" 1235/JPY
# ISO codes that overlap display names (QQQ vs. Q)
# recognize real ISO name in parsing, so, can not use fake name as QQQ
#fpc: - 123/QQQ "QQQ123.00" 123/QQQ # QQQ is fake
-fpc: - 123/GTQ "GTQ123.00" 123/GTQ
+fpc: - 123/GTQ "GTQ 123.00" 123/GTQ
# ChoiceFormat-based display names
fpc: - 1/INR "\u20b91.00" 1/INR
fpc: - 2/INR "\u20b92.00" 2/INR
# Display names with shared prefix (YDD vs. Y)
-fpc: - 100/YDD "YDD100.00" 100/YDD
+fpc: - 100/YDD "YDD 100.00" 100/YDD
fpc: - 100/CNY "CN\u00a5100.00" 100/CNY
# Regression Tests bug#7914
diff --git a/Build/source/libs/icu/icu-src/source/test/testdata/SentenceBreakTest.txt b/Build/source/libs/icu/icu-src/source/test/testdata/SentenceBreakTest.txt
index 2985b84cf80..70898a31773 100644
--- a/Build/source/libs/icu/icu-src/source/test/testdata/SentenceBreakTest.txt
+++ b/Build/source/libs/icu/icu-src/source/test/testdata/SentenceBreakTest.txt
@@ -1,6 +1,6 @@
-# SentenceBreakTest-10.0.0.txt
-# Date: 2017-04-14, 05:40:43 GMT
-# © 2017 Unicode®, Inc.
+# SentenceBreakTest-11.0.0.txt
+# Date: 2018-01-31, 08:20:29 GMT
+# © 2018 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# For terms of use, see http://www.unicode.org/terms_of_use.html
#
diff --git a/Build/source/libs/icu/icu-src/source/test/testdata/WordBreakTest.txt b/Build/source/libs/icu/icu-src/source/test/testdata/WordBreakTest.txt
index 63761026ce1..c4c92550ec5 100644
--- a/Build/source/libs/icu/icu-src/source/test/testdata/WordBreakTest.txt
+++ b/Build/source/libs/icu/icu-src/source/test/testdata/WordBreakTest.txt
@@ -1,6 +1,6 @@
-# WordBreakTest-10.0.0.txt
-# Date: 2017-04-14, 05:40:44 GMT
-# © 2017 Unicode®, Inc.
+# WordBreakTest-11.0.0.txt
+# Date: 2018-03-16, 20:34:16 GMT
+# © 2018 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# For terms of use, see http://www.unicode.org/terms_of_use.html
#
@@ -52,14 +52,10 @@
÷ 0001 × 0308 ÷ 0022 ÷ # ÷ [0.2] <START OF HEADING> (Other) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
÷ 0001 ÷ 0027 ÷ # ÷ [0.2] <START OF HEADING> (Other) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
÷ 0001 × 0308 ÷ 0027 ÷ # ÷ [0.2] <START OF HEADING> (Other) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 0001 ÷ 261D ÷ # ÷ [0.2] <START OF HEADING> (Other) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0001 × 0308 ÷ 261D ÷ # ÷ [0.2] <START OF HEADING> (Other) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0001 ÷ 1F3FB ÷ # ÷ [0.2] <START OF HEADING> (Other) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0001 × 0308 ÷ 1F3FB ÷ # ÷ [0.2] <START OF HEADING> (Other) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0001 ÷ 2640 ÷ # ÷ [0.2] <START OF HEADING> (Other) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0001 × 0308 ÷ 2640 ÷ # ÷ [0.2] <START OF HEADING> (Other) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0001 ÷ 1F466 ÷ # ÷ [0.2] <START OF HEADING> (Other) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 0001 × 0308 ÷ 1F466 ÷ # ÷ [0.2] <START OF HEADING> (Other) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ 0001 ÷ 231A ÷ # ÷ [0.2] <START OF HEADING> (Other) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0001 × 0308 ÷ 231A ÷ # ÷ [0.2] <START OF HEADING> (Other) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0001 ÷ 0020 ÷ # ÷ [0.2] <START OF HEADING> (Other) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
+÷ 0001 × 0308 ÷ 0020 ÷ # ÷ [0.2] <START OF HEADING> (Other) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
÷ 0001 × 00AD ÷ # ÷ [0.2] <START OF HEADING> (Other) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 0001 × 0308 × 00AD ÷ # ÷ [0.2] <START OF HEADING> (Other) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 0001 × 0300 ÷ # ÷ [0.2] <START OF HEADING> (Other) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
@@ -114,14 +110,10 @@
÷ 000D ÷ 0308 ÷ 0022 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
÷ 000D ÷ 0027 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] APOSTROPHE (Single_Quote) ÷ [0.3]
÷ 000D ÷ 0308 ÷ 0027 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 000D ÷ 261D ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 000D ÷ 0308 ÷ 261D ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 000D ÷ 1F3FB ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 000D ÷ 0308 ÷ 1F3FB ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 000D ÷ 2640 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 000D ÷ 0308 ÷ 2640 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 000D ÷ 1F466 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] BOY (EBG) ÷ [0.3]
-÷ 000D ÷ 0308 ÷ 1F466 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ 000D ÷ 231A ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] WATCH (ExtPict) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 231A ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 000D ÷ 0020 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] SPACE (WSegSpace) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 0020 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
÷ 000D ÷ 00AD ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 000D ÷ 0308 × 00AD ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 000D ÷ 0300 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
@@ -176,14 +168,10 @@
÷ 000A ÷ 0308 ÷ 0022 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
÷ 000A ÷ 0027 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] APOSTROPHE (Single_Quote) ÷ [0.3]
÷ 000A ÷ 0308 ÷ 0027 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 000A ÷ 261D ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 000A ÷ 0308 ÷ 261D ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 000A ÷ 1F3FB ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 000A ÷ 0308 ÷ 1F3FB ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 000A ÷ 2640 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 000A ÷ 0308 ÷ 2640 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 000A ÷ 1F466 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] BOY (EBG) ÷ [0.3]
-÷ 000A ÷ 0308 ÷ 1F466 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ 000A ÷ 231A ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] WATCH (ExtPict) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 231A ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 000A ÷ 0020 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] SPACE (WSegSpace) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 0020 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
÷ 000A ÷ 00AD ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 000A ÷ 0308 × 00AD ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 000A ÷ 0300 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
@@ -238,14 +226,10 @@
÷ 000B ÷ 0308 ÷ 0022 ÷ # ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
÷ 000B ÷ 0027 ÷ # ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] APOSTROPHE (Single_Quote) ÷ [0.3]
÷ 000B ÷ 0308 ÷ 0027 ÷ # ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 000B ÷ 261D ÷ # ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 000B ÷ 0308 ÷ 261D ÷ # ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 000B ÷ 1F3FB ÷ # ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 000B ÷ 0308 ÷ 1F3FB ÷ # ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 000B ÷ 2640 ÷ # ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 000B ÷ 0308 ÷ 2640 ÷ # ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 000B ÷ 1F466 ÷ # ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] BOY (EBG) ÷ [0.3]
-÷ 000B ÷ 0308 ÷ 1F466 ÷ # ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ 000B ÷ 231A ÷ # ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] WATCH (ExtPict) ÷ [0.3]
+÷ 000B ÷ 0308 ÷ 231A ÷ # ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 000B ÷ 0020 ÷ # ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] SPACE (WSegSpace) ÷ [0.3]
+÷ 000B ÷ 0308 ÷ 0020 ÷ # ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
÷ 000B ÷ 00AD ÷ # ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 000B ÷ 0308 × 00AD ÷ # ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 000B ÷ 0300 ÷ # ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
@@ -300,14 +284,10 @@
÷ 3031 × 0308 ÷ 0022 ÷ # ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
÷ 3031 ÷ 0027 ÷ # ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
÷ 3031 × 0308 ÷ 0027 ÷ # ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 3031 ÷ 261D ÷ # ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 3031 × 0308 ÷ 261D ÷ # ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 3031 ÷ 1F3FB ÷ # ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 3031 × 0308 ÷ 1F3FB ÷ # ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 3031 ÷ 2640 ÷ # ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 3031 × 0308 ÷ 2640 ÷ # ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 3031 ÷ 1F466 ÷ # ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 3031 × 0308 ÷ 1F466 ÷ # ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ 3031 ÷ 231A ÷ # ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 3031 × 0308 ÷ 231A ÷ # ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 3031 ÷ 0020 ÷ # ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
+÷ 3031 × 0308 ÷ 0020 ÷ # ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
÷ 3031 × 00AD ÷ # ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 3031 × 0308 × 00AD ÷ # ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 3031 × 0300 ÷ # ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
@@ -362,14 +342,10 @@
÷ 0041 × 0308 ÷ 0022 ÷ # ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
÷ 0041 ÷ 0027 ÷ # ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
÷ 0041 × 0308 ÷ 0027 ÷ # ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 0041 ÷ 261D ÷ # ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0041 × 0308 ÷ 261D ÷ # ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0041 ÷ 1F3FB ÷ # ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0041 × 0308 ÷ 1F3FB ÷ # ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0041 ÷ 2640 ÷ # ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0041 × 0308 ÷ 2640 ÷ # ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0041 ÷ 1F466 ÷ # ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 0041 × 0308 ÷ 1F466 ÷ # ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ 0041 ÷ 231A ÷ # ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0041 × 0308 ÷ 231A ÷ # ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0041 ÷ 0020 ÷ # ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
+÷ 0041 × 0308 ÷ 0020 ÷ # ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
÷ 0041 × 00AD ÷ # ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 0041 × 0308 × 00AD ÷ # ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 0041 × 0300 ÷ # ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
@@ -424,14 +400,10 @@
÷ 003A × 0308 ÷ 0022 ÷ # ÷ [0.2] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
÷ 003A ÷ 0027 ÷ # ÷ [0.2] COLON (MidLetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
÷ 003A × 0308 ÷ 0027 ÷ # ÷ [0.2] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 003A ÷ 261D ÷ # ÷ [0.2] COLON (MidLetter) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 003A × 0308 ÷ 261D ÷ # ÷ [0.2] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 003A ÷ 1F3FB ÷ # ÷ [0.2] COLON (MidLetter) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 003A × 0308 ÷ 1F3FB ÷ # ÷ [0.2] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 003A ÷ 2640 ÷ # ÷ [0.2] COLON (MidLetter) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 003A × 0308 ÷ 2640 ÷ # ÷ [0.2] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 003A ÷ 1F466 ÷ # ÷ [0.2] COLON (MidLetter) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 003A × 0308 ÷ 1F466 ÷ # ÷ [0.2] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ 003A ÷ 231A ÷ # ÷ [0.2] COLON (MidLetter) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 003A × 0308 ÷ 231A ÷ # ÷ [0.2] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 003A ÷ 0020 ÷ # ÷ [0.2] COLON (MidLetter) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
+÷ 003A × 0308 ÷ 0020 ÷ # ÷ [0.2] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
÷ 003A × 00AD ÷ # ÷ [0.2] COLON (MidLetter) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 003A × 0308 × 00AD ÷ # ÷ [0.2] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 003A × 0300 ÷ # ÷ [0.2] COLON (MidLetter) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
@@ -486,14 +458,10 @@
÷ 002C × 0308 ÷ 0022 ÷ # ÷ [0.2] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
÷ 002C ÷ 0027 ÷ # ÷ [0.2] COMMA (MidNum) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
÷ 002C × 0308 ÷ 0027 ÷ # ÷ [0.2] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 002C ÷ 261D ÷ # ÷ [0.2] COMMA (MidNum) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 002C × 0308 ÷ 261D ÷ # ÷ [0.2] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 002C ÷ 1F3FB ÷ # ÷ [0.2] COMMA (MidNum) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 002C × 0308 ÷ 1F3FB ÷ # ÷ [0.2] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 002C ÷ 2640 ÷ # ÷ [0.2] COMMA (MidNum) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 002C × 0308 ÷ 2640 ÷ # ÷ [0.2] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 002C ÷ 1F466 ÷ # ÷ [0.2] COMMA (MidNum) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 002C × 0308 ÷ 1F466 ÷ # ÷ [0.2] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ 002C ÷ 231A ÷ # ÷ [0.2] COMMA (MidNum) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 002C × 0308 ÷ 231A ÷ # ÷ [0.2] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 002C ÷ 0020 ÷ # ÷ [0.2] COMMA (MidNum) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
+÷ 002C × 0308 ÷ 0020 ÷ # ÷ [0.2] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
÷ 002C × 00AD ÷ # ÷ [0.2] COMMA (MidNum) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 002C × 0308 × 00AD ÷ # ÷ [0.2] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 002C × 0300 ÷ # ÷ [0.2] COMMA (MidNum) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
@@ -548,14 +516,10 @@
÷ 002E × 0308 ÷ 0022 ÷ # ÷ [0.2] FULL STOP (MidNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
÷ 002E ÷ 0027 ÷ # ÷ [0.2] FULL STOP (MidNumLet) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
÷ 002E × 0308 ÷ 0027 ÷ # ÷ [0.2] FULL STOP (MidNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 002E ÷ 261D ÷ # ÷ [0.2] FULL STOP (MidNumLet) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 002E × 0308 ÷ 261D ÷ # ÷ [0.2] FULL STOP (MidNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 002E ÷ 1F3FB ÷ # ÷ [0.2] FULL STOP (MidNumLet) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 002E × 0308 ÷ 1F3FB ÷ # ÷ [0.2] FULL STOP (MidNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 002E ÷ 2640 ÷ # ÷ [0.2] FULL STOP (MidNumLet) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 002E × 0308 ÷ 2640 ÷ # ÷ [0.2] FULL STOP (MidNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 002E ÷ 1F466 ÷ # ÷ [0.2] FULL STOP (MidNumLet) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 002E × 0308 ÷ 1F466 ÷ # ÷ [0.2] FULL STOP (MidNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ 002E ÷ 231A ÷ # ÷ [0.2] FULL STOP (MidNumLet) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 002E × 0308 ÷ 231A ÷ # ÷ [0.2] FULL STOP (MidNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 002E ÷ 0020 ÷ # ÷ [0.2] FULL STOP (MidNumLet) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
+÷ 002E × 0308 ÷ 0020 ÷ # ÷ [0.2] FULL STOP (MidNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
÷ 002E × 00AD ÷ # ÷ [0.2] FULL STOP (MidNumLet) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 002E × 0308 × 00AD ÷ # ÷ [0.2] FULL STOP (MidNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 002E × 0300 ÷ # ÷ [0.2] FULL STOP (MidNumLet) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
@@ -610,14 +574,10 @@
÷ 0030 × 0308 ÷ 0022 ÷ # ÷ [0.2] DIGIT ZERO (Numeric) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
÷ 0030 ÷ 0027 ÷ # ÷ [0.2] DIGIT ZERO (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
÷ 0030 × 0308 ÷ 0027 ÷ # ÷ [0.2] DIGIT ZERO (Numeric) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 0030 ÷ 261D ÷ # ÷ [0.2] DIGIT ZERO (Numeric) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0030 × 0308 ÷ 261D ÷ # ÷ [0.2] DIGIT ZERO (Numeric) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0030 ÷ 1F3FB ÷ # ÷ [0.2] DIGIT ZERO (Numeric) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0030 × 0308 ÷ 1F3FB ÷ # ÷ [0.2] DIGIT ZERO (Numeric) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0030 ÷ 2640 ÷ # ÷ [0.2] DIGIT ZERO (Numeric) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0030 × 0308 ÷ 2640 ÷ # ÷ [0.2] DIGIT ZERO (Numeric) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0030 ÷ 1F466 ÷ # ÷ [0.2] DIGIT ZERO (Numeric) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 0030 × 0308 ÷ 1F466 ÷ # ÷ [0.2] DIGIT ZERO (Numeric) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ 0030 ÷ 231A ÷ # ÷ [0.2] DIGIT ZERO (Numeric) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0030 × 0308 ÷ 231A ÷ # ÷ [0.2] DIGIT ZERO (Numeric) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0030 ÷ 0020 ÷ # ÷ [0.2] DIGIT ZERO (Numeric) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
+÷ 0030 × 0308 ÷ 0020 ÷ # ÷ [0.2] DIGIT ZERO (Numeric) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
÷ 0030 × 00AD ÷ # ÷ [0.2] DIGIT ZERO (Numeric) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 0030 × 0308 × 00AD ÷ # ÷ [0.2] DIGIT ZERO (Numeric) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 0030 × 0300 ÷ # ÷ [0.2] DIGIT ZERO (Numeric) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
@@ -672,14 +632,10 @@
÷ 005F × 0308 ÷ 0022 ÷ # ÷ [0.2] LOW LINE (ExtendNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
÷ 005F ÷ 0027 ÷ # ÷ [0.2] LOW LINE (ExtendNumLet) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
÷ 005F × 0308 ÷ 0027 ÷ # ÷ [0.2] LOW LINE (ExtendNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 005F ÷ 261D ÷ # ÷ [0.2] LOW LINE (ExtendNumLet) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 005F × 0308 ÷ 261D ÷ # ÷ [0.2] LOW LINE (ExtendNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 005F ÷ 1F3FB ÷ # ÷ [0.2] LOW LINE (ExtendNumLet) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 005F × 0308 ÷ 1F3FB ÷ # ÷ [0.2] LOW LINE (ExtendNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 005F ÷ 2640 ÷ # ÷ [0.2] LOW LINE (ExtendNumLet) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 005F × 0308 ÷ 2640 ÷ # ÷ [0.2] LOW LINE (ExtendNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 005F ÷ 1F466 ÷ # ÷ [0.2] LOW LINE (ExtendNumLet) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 005F × 0308 ÷ 1F466 ÷ # ÷ [0.2] LOW LINE (ExtendNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ 005F ÷ 231A ÷ # ÷ [0.2] LOW LINE (ExtendNumLet) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 005F × 0308 ÷ 231A ÷ # ÷ [0.2] LOW LINE (ExtendNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 005F ÷ 0020 ÷ # ÷ [0.2] LOW LINE (ExtendNumLet) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
+÷ 005F × 0308 ÷ 0020 ÷ # ÷ [0.2] LOW LINE (ExtendNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
÷ 005F × 00AD ÷ # ÷ [0.2] LOW LINE (ExtendNumLet) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 005F × 0308 × 00AD ÷ # ÷ [0.2] LOW LINE (ExtendNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 005F × 0300 ÷ # ÷ [0.2] LOW LINE (ExtendNumLet) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
@@ -734,14 +690,10 @@
÷ 1F1E6 × 0308 ÷ 0022 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
÷ 1F1E6 ÷ 0027 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
÷ 1F1E6 × 0308 ÷ 0027 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 1F1E6 ÷ 261D ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 1F1E6 × 0308 ÷ 261D ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 1F1E6 ÷ 1F3FB ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 1F1E6 × 0308 ÷ 1F3FB ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 1F1E6 ÷ 2640 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 1F1E6 × 0308 ÷ 2640 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 1F1E6 ÷ 1F466 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 1F1E6 × 0308 ÷ 1F466 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ 1F1E6 ÷ 231A ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 1F1E6 × 0308 ÷ 231A ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 1F1E6 ÷ 0020 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
+÷ 1F1E6 × 0308 ÷ 0020 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
÷ 1F1E6 × 00AD ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 1F1E6 × 0308 × 00AD ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 1F1E6 × 0300 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
@@ -796,14 +748,10 @@
÷ 05D0 × 0308 ÷ 0022 ÷ # ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
÷ 05D0 × 0027 ÷ # ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [7.1] APOSTROPHE (Single_Quote) ÷ [0.3]
÷ 05D0 × 0308 × 0027 ÷ # ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [7.1] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 05D0 ÷ 261D ÷ # ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 05D0 × 0308 ÷ 261D ÷ # ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 05D0 ÷ 1F3FB ÷ # ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 05D0 × 0308 ÷ 1F3FB ÷ # ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 05D0 ÷ 2640 ÷ # ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 05D0 × 0308 ÷ 2640 ÷ # ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 05D0 ÷ 1F466 ÷ # ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 05D0 × 0308 ÷ 1F466 ÷ # ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ 05D0 ÷ 231A ÷ # ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 05D0 × 0308 ÷ 231A ÷ # ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 05D0 ÷ 0020 ÷ # ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
+÷ 05D0 × 0308 ÷ 0020 ÷ # ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
÷ 05D0 × 00AD ÷ # ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 05D0 × 0308 × 00AD ÷ # ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 05D0 × 0300 ÷ # ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
@@ -858,14 +806,10 @@
÷ 0022 × 0308 ÷ 0022 ÷ # ÷ [0.2] QUOTATION MARK (Double_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
÷ 0022 ÷ 0027 ÷ # ÷ [0.2] QUOTATION MARK (Double_Quote) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
÷ 0022 × 0308 ÷ 0027 ÷ # ÷ [0.2] QUOTATION MARK (Double_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 0022 ÷ 261D ÷ # ÷ [0.2] QUOTATION MARK (Double_Quote) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0022 × 0308 ÷ 261D ÷ # ÷ [0.2] QUOTATION MARK (Double_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0022 ÷ 1F3FB ÷ # ÷ [0.2] QUOTATION MARK (Double_Quote) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0022 × 0308 ÷ 1F3FB ÷ # ÷ [0.2] QUOTATION MARK (Double_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0022 ÷ 2640 ÷ # ÷ [0.2] QUOTATION MARK (Double_Quote) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0022 × 0308 ÷ 2640 ÷ # ÷ [0.2] QUOTATION MARK (Double_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0022 ÷ 1F466 ÷ # ÷ [0.2] QUOTATION MARK (Double_Quote) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 0022 × 0308 ÷ 1F466 ÷ # ÷ [0.2] QUOTATION MARK (Double_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ 0022 ÷ 231A ÷ # ÷ [0.2] QUOTATION MARK (Double_Quote) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0022 × 0308 ÷ 231A ÷ # ÷ [0.2] QUOTATION MARK (Double_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0022 ÷ 0020 ÷ # ÷ [0.2] QUOTATION MARK (Double_Quote) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
+÷ 0022 × 0308 ÷ 0020 ÷ # ÷ [0.2] QUOTATION MARK (Double_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
÷ 0022 × 00AD ÷ # ÷ [0.2] QUOTATION MARK (Double_Quote) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 0022 × 0308 × 00AD ÷ # ÷ [0.2] QUOTATION MARK (Double_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 0022 × 0300 ÷ # ÷ [0.2] QUOTATION MARK (Double_Quote) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
@@ -920,14 +864,10 @@
÷ 0027 × 0308 ÷ 0022 ÷ # ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
÷ 0027 ÷ 0027 ÷ # ÷ [0.2] APOSTROPHE (Single_Quote) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
÷ 0027 × 0308 ÷ 0027 ÷ # ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 0027 ÷ 261D ÷ # ÷ [0.2] APOSTROPHE (Single_Quote) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0027 × 0308 ÷ 261D ÷ # ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0027 ÷ 1F3FB ÷ # ÷ [0.2] APOSTROPHE (Single_Quote) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0027 × 0308 ÷ 1F3FB ÷ # ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0027 ÷ 2640 ÷ # ÷ [0.2] APOSTROPHE (Single_Quote) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0027 × 0308 ÷ 2640 ÷ # ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0027 ÷ 1F466 ÷ # ÷ [0.2] APOSTROPHE (Single_Quote) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 0027 × 0308 ÷ 1F466 ÷ # ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ 0027 ÷ 231A ÷ # ÷ [0.2] APOSTROPHE (Single_Quote) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0027 × 0308 ÷ 231A ÷ # ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0027 ÷ 0020 ÷ # ÷ [0.2] APOSTROPHE (Single_Quote) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
+÷ 0027 × 0308 ÷ 0020 ÷ # ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
÷ 0027 × 00AD ÷ # ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 0027 × 0308 × 00AD ÷ # ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 0027 × 0300 ÷ # ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
@@ -952,254 +892,122 @@
÷ 0027 × 0308 ÷ 0031 ÷ 002C ÷ # ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
÷ 0027 ÷ 0031 ÷ 002E × 2060 ÷ # ÷ [0.2] APOSTROPHE (Single_Quote) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
÷ 0027 × 0308 ÷ 0031 ÷ 002E × 2060 ÷ # ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
-÷ 261D ÷ 0001 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
-÷ 261D × 0308 ÷ 0001 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
-÷ 261D ÷ 000D ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
-÷ 261D × 0308 ÷ 000D ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
-÷ 261D ÷ 000A ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
-÷ 261D × 0308 ÷ 000A ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
-÷ 261D ÷ 000B ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
-÷ 261D × 0308 ÷ 000B ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
-÷ 261D ÷ 3031 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
-÷ 261D × 0308 ÷ 3031 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
-÷ 261D ÷ 0041 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
-÷ 261D × 0308 ÷ 0041 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
-÷ 261D ÷ 003A ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
-÷ 261D × 0308 ÷ 003A ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
-÷ 261D ÷ 002C ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
-÷ 261D × 0308 ÷ 002C ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
-÷ 261D ÷ 002E ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
-÷ 261D × 0308 ÷ 002E ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
-÷ 261D ÷ 0030 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
-÷ 261D × 0308 ÷ 0030 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
-÷ 261D ÷ 005F ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
-÷ 261D × 0308 ÷ 005F ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
-÷ 261D ÷ 1F1E6 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 261D × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 261D ÷ 05D0 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
-÷ 261D × 0308 ÷ 05D0 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
-÷ 261D ÷ 0022 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
-÷ 261D × 0308 ÷ 0022 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
-÷ 261D ÷ 0027 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 261D × 0308 ÷ 0027 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 261D ÷ 261D ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 261D × 0308 ÷ 261D ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 261D × 1F3FB ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [14.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 261D × 0308 × 1F3FB ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [4.0] COMBINING DIAERESIS (Extend_FE) × [14.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 261D ÷ 2640 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 261D × 0308 ÷ 2640 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 261D ÷ 1F466 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 261D × 0308 ÷ 1F466 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 261D × 00AD ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
-÷ 261D × 0308 × 00AD ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
-÷ 261D × 0300 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
-÷ 261D × 0308 × 0300 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
-÷ 261D × 200D ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [4.0] ZERO WIDTH JOINER (ZWJ_FE) ÷ [0.3]
-÷ 261D × 0308 × 200D ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] ZERO WIDTH JOINER (ZWJ_FE) ÷ [0.3]
-÷ 261D ÷ 0061 × 2060 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
-÷ 261D × 0308 ÷ 0061 × 2060 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
-÷ 261D ÷ 0061 ÷ 003A ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
-÷ 261D × 0308 ÷ 0061 ÷ 003A ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
-÷ 261D ÷ 0061 ÷ 0027 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 261D × 0308 ÷ 0061 ÷ 0027 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 261D ÷ 0061 ÷ 0027 × 2060 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
-÷ 261D × 0308 ÷ 0061 ÷ 0027 × 2060 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
-÷ 261D ÷ 0061 ÷ 002C ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
-÷ 261D × 0308 ÷ 0061 ÷ 002C ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
-÷ 261D ÷ 0031 ÷ 003A ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
-÷ 261D × 0308 ÷ 0031 ÷ 003A ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
-÷ 261D ÷ 0031 ÷ 0027 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 261D × 0308 ÷ 0031 ÷ 0027 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 261D ÷ 0031 ÷ 002C ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
-÷ 261D × 0308 ÷ 0031 ÷ 002C ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
-÷ 261D ÷ 0031 ÷ 002E × 2060 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
-÷ 261D × 0308 ÷ 0031 ÷ 002E × 2060 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
-÷ 1F3FB ÷ 0001 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 0001 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
-÷ 1F3FB ÷ 000D ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 000D ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
-÷ 1F3FB ÷ 000A ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 000A ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
-÷ 1F3FB ÷ 000B ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 000B ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
-÷ 1F3FB ÷ 3031 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 3031 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
-÷ 1F3FB ÷ 0041 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 0041 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
-÷ 1F3FB ÷ 003A ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 003A ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
-÷ 1F3FB ÷ 002C ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 002C ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
-÷ 1F3FB ÷ 002E ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 002E ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
-÷ 1F3FB ÷ 0030 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 0030 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
-÷ 1F3FB ÷ 005F ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 005F ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
-÷ 1F3FB ÷ 1F1E6 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 1F3FB ÷ 05D0 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 05D0 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
-÷ 1F3FB ÷ 0022 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 0022 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
-÷ 1F3FB ÷ 0027 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 0027 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 1F3FB ÷ 261D ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 261D ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 1F3FB ÷ 1F3FB ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 1F3FB ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 1F3FB ÷ 2640 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 2640 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 1F3FB ÷ 1F466 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 1F466 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 1F3FB × 00AD ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
-÷ 1F3FB × 0308 × 00AD ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
-÷ 1F3FB × 0300 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
-÷ 1F3FB × 0308 × 0300 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
-÷ 1F3FB × 200D ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [4.0] ZERO WIDTH JOINER (ZWJ_FE) ÷ [0.3]
-÷ 1F3FB × 0308 × 200D ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] ZERO WIDTH JOINER (ZWJ_FE) ÷ [0.3]
-÷ 1F3FB ÷ 0061 × 2060 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 0061 × 2060 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
-÷ 1F3FB ÷ 0061 ÷ 003A ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 0061 ÷ 003A ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
-÷ 1F3FB ÷ 0061 ÷ 0027 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 0061 ÷ 0027 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 1F3FB ÷ 0061 ÷ 0027 × 2060 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 0061 ÷ 0027 × 2060 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
-÷ 1F3FB ÷ 0061 ÷ 002C ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 0061 ÷ 002C ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
-÷ 1F3FB ÷ 0031 ÷ 003A ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 0031 ÷ 003A ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
-÷ 1F3FB ÷ 0031 ÷ 0027 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 0031 ÷ 0027 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 1F3FB ÷ 0031 ÷ 002C ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 0031 ÷ 002C ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
-÷ 1F3FB ÷ 0031 ÷ 002E × 2060 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
-÷ 1F3FB × 0308 ÷ 0031 ÷ 002E × 2060 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
-÷ 2640 ÷ 0001 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
-÷ 2640 × 0308 ÷ 0001 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
-÷ 2640 ÷ 000D ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
-÷ 2640 × 0308 ÷ 000D ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
-÷ 2640 ÷ 000A ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
-÷ 2640 × 0308 ÷ 000A ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
-÷ 2640 ÷ 000B ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
-÷ 2640 × 0308 ÷ 000B ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
-÷ 2640 ÷ 3031 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
-÷ 2640 × 0308 ÷ 3031 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
-÷ 2640 ÷ 0041 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
-÷ 2640 × 0308 ÷ 0041 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
-÷ 2640 ÷ 003A ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
-÷ 2640 × 0308 ÷ 003A ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
-÷ 2640 ÷ 002C ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
-÷ 2640 × 0308 ÷ 002C ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
-÷ 2640 ÷ 002E ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
-÷ 2640 × 0308 ÷ 002E ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
-÷ 2640 ÷ 0030 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
-÷ 2640 × 0308 ÷ 0030 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
-÷ 2640 ÷ 005F ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
-÷ 2640 × 0308 ÷ 005F ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
-÷ 2640 ÷ 1F1E6 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 2640 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 2640 ÷ 05D0 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
-÷ 2640 × 0308 ÷ 05D0 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
-÷ 2640 ÷ 0022 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
-÷ 2640 × 0308 ÷ 0022 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
-÷ 2640 ÷ 0027 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 2640 × 0308 ÷ 0027 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 2640 ÷ 261D ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 2640 × 0308 ÷ 261D ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 2640 ÷ 1F3FB ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 2640 × 0308 ÷ 1F3FB ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 2640 ÷ 2640 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 2640 × 0308 ÷ 2640 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 2640 ÷ 1F466 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 2640 × 0308 ÷ 1F466 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 2640 × 00AD ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
-÷ 2640 × 0308 × 00AD ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
-÷ 2640 × 0300 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
-÷ 2640 × 0308 × 0300 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
-÷ 2640 × 200D ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [4.0] ZERO WIDTH JOINER (ZWJ_FE) ÷ [0.3]
-÷ 2640 × 0308 × 200D ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] ZERO WIDTH JOINER (ZWJ_FE) ÷ [0.3]
-÷ 2640 ÷ 0061 × 2060 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
-÷ 2640 × 0308 ÷ 0061 × 2060 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
-÷ 2640 ÷ 0061 ÷ 003A ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
-÷ 2640 × 0308 ÷ 0061 ÷ 003A ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
-÷ 2640 ÷ 0061 ÷ 0027 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 2640 × 0308 ÷ 0061 ÷ 0027 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 2640 ÷ 0061 ÷ 0027 × 2060 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
-÷ 2640 × 0308 ÷ 0061 ÷ 0027 × 2060 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
-÷ 2640 ÷ 0061 ÷ 002C ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
-÷ 2640 × 0308 ÷ 0061 ÷ 002C ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
-÷ 2640 ÷ 0031 ÷ 003A ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
-÷ 2640 × 0308 ÷ 0031 ÷ 003A ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
-÷ 2640 ÷ 0031 ÷ 0027 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 2640 × 0308 ÷ 0031 ÷ 0027 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 2640 ÷ 0031 ÷ 002C ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
-÷ 2640 × 0308 ÷ 0031 ÷ 002C ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
-÷ 2640 ÷ 0031 ÷ 002E × 2060 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
-÷ 2640 × 0308 ÷ 0031 ÷ 002E × 2060 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
-÷ 1F466 ÷ 0001 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 0001 ÷ # ÷ [0.2] BOY (EBG) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
-÷ 1F466 ÷ 000D ÷ # ÷ [0.2] BOY (EBG) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 000D ÷ # ÷ [0.2] BOY (EBG) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
-÷ 1F466 ÷ 000A ÷ # ÷ [0.2] BOY (EBG) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 000A ÷ # ÷ [0.2] BOY (EBG) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
-÷ 1F466 ÷ 000B ÷ # ÷ [0.2] BOY (EBG) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 000B ÷ # ÷ [0.2] BOY (EBG) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
-÷ 1F466 ÷ 3031 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 3031 ÷ # ÷ [0.2] BOY (EBG) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
-÷ 1F466 ÷ 0041 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 0041 ÷ # ÷ [0.2] BOY (EBG) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
-÷ 1F466 ÷ 003A ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 003A ÷ # ÷ [0.2] BOY (EBG) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
-÷ 1F466 ÷ 002C ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 002C ÷ # ÷ [0.2] BOY (EBG) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
-÷ 1F466 ÷ 002E ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 002E ÷ # ÷ [0.2] BOY (EBG) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
-÷ 1F466 ÷ 0030 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 0030 ÷ # ÷ [0.2] BOY (EBG) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
-÷ 1F466 ÷ 005F ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 005F ÷ # ÷ [0.2] BOY (EBG) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
-÷ 1F466 ÷ 1F1E6 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] BOY (EBG) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
-÷ 1F466 ÷ 05D0 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 05D0 ÷ # ÷ [0.2] BOY (EBG) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
-÷ 1F466 ÷ 0022 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 0022 ÷ # ÷ [0.2] BOY (EBG) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
-÷ 1F466 ÷ 0027 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 0027 ÷ # ÷ [0.2] BOY (EBG) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 1F466 ÷ 261D ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 261D ÷ # ÷ [0.2] BOY (EBG) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 1F466 × 1F3FB ÷ # ÷ [0.2] BOY (EBG) × [14.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 1F466 × 0308 × 1F3FB ÷ # ÷ [0.2] BOY (EBG) × [4.0] COMBINING DIAERESIS (Extend_FE) × [14.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 1F466 ÷ 2640 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 2640 ÷ # ÷ [0.2] BOY (EBG) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 1F466 ÷ 1F466 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 1F466 ÷ # ÷ [0.2] BOY (EBG) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 1F466 × 00AD ÷ # ÷ [0.2] BOY (EBG) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
-÷ 1F466 × 0308 × 00AD ÷ # ÷ [0.2] BOY (EBG) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
-÷ 1F466 × 0300 ÷ # ÷ [0.2] BOY (EBG) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
-÷ 1F466 × 0308 × 0300 ÷ # ÷ [0.2] BOY (EBG) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
-÷ 1F466 × 200D ÷ # ÷ [0.2] BOY (EBG) × [4.0] ZERO WIDTH JOINER (ZWJ_FE) ÷ [0.3]
-÷ 1F466 × 0308 × 200D ÷ # ÷ [0.2] BOY (EBG) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] ZERO WIDTH JOINER (ZWJ_FE) ÷ [0.3]
-÷ 1F466 ÷ 0061 × 2060 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 0061 × 2060 ÷ # ÷ [0.2] BOY (EBG) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
-÷ 1F466 ÷ 0061 ÷ 003A ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 0061 ÷ 003A ÷ # ÷ [0.2] BOY (EBG) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
-÷ 1F466 ÷ 0061 ÷ 0027 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 0061 ÷ 0027 ÷ # ÷ [0.2] BOY (EBG) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 1F466 ÷ 0061 ÷ 0027 × 2060 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 0061 ÷ 0027 × 2060 ÷ # ÷ [0.2] BOY (EBG) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
-÷ 1F466 ÷ 0061 ÷ 002C ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 0061 ÷ 002C ÷ # ÷ [0.2] BOY (EBG) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
-÷ 1F466 ÷ 0031 ÷ 003A ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 0031 ÷ 003A ÷ # ÷ [0.2] BOY (EBG) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
-÷ 1F466 ÷ 0031 ÷ 0027 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 0031 ÷ 0027 ÷ # ÷ [0.2] BOY (EBG) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 1F466 ÷ 0031 ÷ 002C ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 0031 ÷ 002C ÷ # ÷ [0.2] BOY (EBG) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
-÷ 1F466 ÷ 0031 ÷ 002E × 2060 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
-÷ 1F466 × 0308 ÷ 0031 ÷ 002E × 2060 ÷ # ÷ [0.2] BOY (EBG) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 231A ÷ 0001 ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 231A × 0308 ÷ 0001 ÷ # ÷ [0.2] WATCH (ExtPict) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 231A ÷ 000D ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 231A × 0308 ÷ 000D ÷ # ÷ [0.2] WATCH (ExtPict) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 231A ÷ 000A ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 231A × 0308 ÷ 000A ÷ # ÷ [0.2] WATCH (ExtPict) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 231A ÷ 000B ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 231A × 0308 ÷ 000B ÷ # ÷ [0.2] WATCH (ExtPict) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 231A ÷ 3031 ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 231A × 0308 ÷ 3031 ÷ # ÷ [0.2] WATCH (ExtPict) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 231A ÷ 0041 ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 231A × 0308 ÷ 0041 ÷ # ÷ [0.2] WATCH (ExtPict) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 231A ÷ 003A ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 231A × 0308 ÷ 003A ÷ # ÷ [0.2] WATCH (ExtPict) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 231A ÷ 002C ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 231A × 0308 ÷ 002C ÷ # ÷ [0.2] WATCH (ExtPict) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 231A ÷ 002E ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 231A × 0308 ÷ 002E ÷ # ÷ [0.2] WATCH (ExtPict) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 231A ÷ 0030 ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 231A × 0308 ÷ 0030 ÷ # ÷ [0.2] WATCH (ExtPict) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 231A ÷ 005F ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 231A × 0308 ÷ 005F ÷ # ÷ [0.2] WATCH (ExtPict) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 231A ÷ 1F1E6 ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
+÷ 231A × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] WATCH (ExtPict) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
+÷ 231A ÷ 05D0 ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 231A × 0308 ÷ 05D0 ÷ # ÷ [0.2] WATCH (ExtPict) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 231A ÷ 0022 ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 231A × 0308 ÷ 0022 ÷ # ÷ [0.2] WATCH (ExtPict) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 231A ÷ 0027 ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 231A × 0308 ÷ 0027 ÷ # ÷ [0.2] WATCH (ExtPict) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 231A ÷ 231A ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 231A × 0308 ÷ 231A ÷ # ÷ [0.2] WATCH (ExtPict) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 231A ÷ 0020 ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
+÷ 231A × 0308 ÷ 0020 ÷ # ÷ [0.2] WATCH (ExtPict) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
+÷ 231A × 00AD ÷ # ÷ [0.2] WATCH (ExtPict) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 231A × 0308 × 00AD ÷ # ÷ [0.2] WATCH (ExtPict) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 231A × 0300 ÷ # ÷ [0.2] WATCH (ExtPict) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 231A × 0308 × 0300 ÷ # ÷ [0.2] WATCH (ExtPict) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 231A × 200D ÷ # ÷ [0.2] WATCH (ExtPict) × [4.0] ZERO WIDTH JOINER (ZWJ_FE) ÷ [0.3]
+÷ 231A × 0308 × 200D ÷ # ÷ [0.2] WATCH (ExtPict) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] ZERO WIDTH JOINER (ZWJ_FE) ÷ [0.3]
+÷ 231A ÷ 0061 × 2060 ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 231A × 0308 ÷ 0061 × 2060 ÷ # ÷ [0.2] WATCH (ExtPict) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 231A ÷ 0061 ÷ 003A ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 231A × 0308 ÷ 0061 ÷ 003A ÷ # ÷ [0.2] WATCH (ExtPict) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 231A ÷ 0061 ÷ 0027 ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 231A × 0308 ÷ 0061 ÷ 0027 ÷ # ÷ [0.2] WATCH (ExtPict) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 231A ÷ 0061 ÷ 0027 × 2060 ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 231A × 0308 ÷ 0061 ÷ 0027 × 2060 ÷ # ÷ [0.2] WATCH (ExtPict) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 231A ÷ 0061 ÷ 002C ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 231A × 0308 ÷ 0061 ÷ 002C ÷ # ÷ [0.2] WATCH (ExtPict) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 231A ÷ 0031 ÷ 003A ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 231A × 0308 ÷ 0031 ÷ 003A ÷ # ÷ [0.2] WATCH (ExtPict) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 231A ÷ 0031 ÷ 0027 ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 231A × 0308 ÷ 0031 ÷ 0027 ÷ # ÷ [0.2] WATCH (ExtPict) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 231A ÷ 0031 ÷ 002C ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 231A × 0308 ÷ 0031 ÷ 002C ÷ # ÷ [0.2] WATCH (ExtPict) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 231A ÷ 0031 ÷ 002E × 2060 ÷ # ÷ [0.2] WATCH (ExtPict) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 231A × 0308 ÷ 0031 ÷ 002E × 2060 ÷ # ÷ [0.2] WATCH (ExtPict) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0020 ÷ 0001 ÷ # ÷ [0.2] SPACE (WSegSpace) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0020 × 0308 ÷ 0001 ÷ # ÷ [0.2] SPACE (WSegSpace) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0020 ÷ 000D ÷ # ÷ [0.2] SPACE (WSegSpace) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0020 × 0308 ÷ 000D ÷ # ÷ [0.2] SPACE (WSegSpace) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0020 ÷ 000A ÷ # ÷ [0.2] SPACE (WSegSpace) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0020 × 0308 ÷ 000A ÷ # ÷ [0.2] SPACE (WSegSpace) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0020 ÷ 000B ÷ # ÷ [0.2] SPACE (WSegSpace) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 0020 × 0308 ÷ 000B ÷ # ÷ [0.2] SPACE (WSegSpace) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 0020 ÷ 3031 ÷ # ÷ [0.2] SPACE (WSegSpace) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 0020 × 0308 ÷ 3031 ÷ # ÷ [0.2] SPACE (WSegSpace) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 0020 ÷ 0041 ÷ # ÷ [0.2] SPACE (WSegSpace) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 0020 × 0308 ÷ 0041 ÷ # ÷ [0.2] SPACE (WSegSpace) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 0020 ÷ 003A ÷ # ÷ [0.2] SPACE (WSegSpace) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0020 × 0308 ÷ 003A ÷ # ÷ [0.2] SPACE (WSegSpace) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0020 ÷ 002C ÷ # ÷ [0.2] SPACE (WSegSpace) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0020 × 0308 ÷ 002C ÷ # ÷ [0.2] SPACE (WSegSpace) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0020 ÷ 002E ÷ # ÷ [0.2] SPACE (WSegSpace) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 0020 × 0308 ÷ 002E ÷ # ÷ [0.2] SPACE (WSegSpace) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 0020 ÷ 0030 ÷ # ÷ [0.2] SPACE (WSegSpace) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0020 × 0308 ÷ 0030 ÷ # ÷ [0.2] SPACE (WSegSpace) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0020 ÷ 005F ÷ # ÷ [0.2] SPACE (WSegSpace) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 0020 × 0308 ÷ 005F ÷ # ÷ [0.2] SPACE (WSegSpace) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 0020 ÷ 1F1E6 ÷ # ÷ [0.2] SPACE (WSegSpace) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
+÷ 0020 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] SPACE (WSegSpace) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
+÷ 0020 ÷ 05D0 ÷ # ÷ [0.2] SPACE (WSegSpace) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 0020 × 0308 ÷ 05D0 ÷ # ÷ [0.2] SPACE (WSegSpace) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 0020 ÷ 0022 ÷ # ÷ [0.2] SPACE (WSegSpace) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 0020 × 0308 ÷ 0022 ÷ # ÷ [0.2] SPACE (WSegSpace) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 0020 ÷ 0027 ÷ # ÷ [0.2] SPACE (WSegSpace) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0020 × 0308 ÷ 0027 ÷ # ÷ [0.2] SPACE (WSegSpace) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0020 ÷ 231A ÷ # ÷ [0.2] SPACE (WSegSpace) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0020 × 0308 ÷ 231A ÷ # ÷ [0.2] SPACE (WSegSpace) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0020 × 0020 ÷ # ÷ [0.2] SPACE (WSegSpace) × [3.4] SPACE (WSegSpace) ÷ [0.3]
+÷ 0020 × 0308 ÷ 0020 ÷ # ÷ [0.2] SPACE (WSegSpace) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
+÷ 0020 × 00AD ÷ # ÷ [0.2] SPACE (WSegSpace) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0020 × 0308 × 00AD ÷ # ÷ [0.2] SPACE (WSegSpace) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0020 × 0300 ÷ # ÷ [0.2] SPACE (WSegSpace) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0020 × 0308 × 0300 ÷ # ÷ [0.2] SPACE (WSegSpace) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0020 × 200D ÷ # ÷ [0.2] SPACE (WSegSpace) × [4.0] ZERO WIDTH JOINER (ZWJ_FE) ÷ [0.3]
+÷ 0020 × 0308 × 200D ÷ # ÷ [0.2] SPACE (WSegSpace) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] ZERO WIDTH JOINER (ZWJ_FE) ÷ [0.3]
+÷ 0020 ÷ 0061 × 2060 ÷ # ÷ [0.2] SPACE (WSegSpace) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0020 × 0308 ÷ 0061 × 2060 ÷ # ÷ [0.2] SPACE (WSegSpace) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0020 ÷ 0061 ÷ 003A ÷ # ÷ [0.2] SPACE (WSegSpace) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0020 × 0308 ÷ 0061 ÷ 003A ÷ # ÷ [0.2] SPACE (WSegSpace) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0020 ÷ 0061 ÷ 0027 ÷ # ÷ [0.2] SPACE (WSegSpace) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0020 × 0308 ÷ 0061 ÷ 0027 ÷ # ÷ [0.2] SPACE (WSegSpace) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0020 ÷ 0061 ÷ 0027 × 2060 ÷ # ÷ [0.2] SPACE (WSegSpace) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0020 × 0308 ÷ 0061 ÷ 0027 × 2060 ÷ # ÷ [0.2] SPACE (WSegSpace) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0020 ÷ 0061 ÷ 002C ÷ # ÷ [0.2] SPACE (WSegSpace) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0020 × 0308 ÷ 0061 ÷ 002C ÷ # ÷ [0.2] SPACE (WSegSpace) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0020 ÷ 0031 ÷ 003A ÷ # ÷ [0.2] SPACE (WSegSpace) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0020 × 0308 ÷ 0031 ÷ 003A ÷ # ÷ [0.2] SPACE (WSegSpace) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0020 ÷ 0031 ÷ 0027 ÷ # ÷ [0.2] SPACE (WSegSpace) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0020 × 0308 ÷ 0031 ÷ 0027 ÷ # ÷ [0.2] SPACE (WSegSpace) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0020 ÷ 0031 ÷ 002C ÷ # ÷ [0.2] SPACE (WSegSpace) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0020 × 0308 ÷ 0031 ÷ 002C ÷ # ÷ [0.2] SPACE (WSegSpace) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0020 ÷ 0031 ÷ 002E × 2060 ÷ # ÷ [0.2] SPACE (WSegSpace) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0020 × 0308 ÷ 0031 ÷ 002E × 2060 ÷ # ÷ [0.2] SPACE (WSegSpace) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
÷ 00AD ÷ 0001 ÷ # ÷ [0.2] SOFT HYPHEN (Format_FE) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
÷ 00AD × 0308 ÷ 0001 ÷ # ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
÷ 00AD ÷ 000D ÷ # ÷ [0.2] SOFT HYPHEN (Format_FE) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
@@ -1230,14 +1038,10 @@
÷ 00AD × 0308 ÷ 0022 ÷ # ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
÷ 00AD ÷ 0027 ÷ # ÷ [0.2] SOFT HYPHEN (Format_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
÷ 00AD × 0308 ÷ 0027 ÷ # ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 00AD ÷ 261D ÷ # ÷ [0.2] SOFT HYPHEN (Format_FE) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 00AD × 0308 ÷ 261D ÷ # ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 00AD ÷ 1F3FB ÷ # ÷ [0.2] SOFT HYPHEN (Format_FE) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 00AD × 0308 ÷ 1F3FB ÷ # ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 00AD ÷ 2640 ÷ # ÷ [0.2] SOFT HYPHEN (Format_FE) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 00AD × 0308 ÷ 2640 ÷ # ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 00AD ÷ 1F466 ÷ # ÷ [0.2] SOFT HYPHEN (Format_FE) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 00AD × 0308 ÷ 1F466 ÷ # ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ 00AD ÷ 231A ÷ # ÷ [0.2] SOFT HYPHEN (Format_FE) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 00AD × 0308 ÷ 231A ÷ # ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 00AD ÷ 0020 ÷ # ÷ [0.2] SOFT HYPHEN (Format_FE) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
+÷ 00AD × 0308 ÷ 0020 ÷ # ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
÷ 00AD × 00AD ÷ # ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 00AD × 0308 × 00AD ÷ # ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 00AD × 0300 ÷ # ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
@@ -1292,14 +1096,10 @@
÷ 0300 × 0308 ÷ 0022 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
÷ 0300 ÷ 0027 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
÷ 0300 × 0308 ÷ 0027 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 0300 ÷ 261D ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0300 × 0308 ÷ 261D ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0300 ÷ 1F3FB ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0300 × 0308 ÷ 1F3FB ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0300 ÷ 2640 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0300 × 0308 ÷ 2640 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0300 ÷ 1F466 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 0300 × 0308 ÷ 1F466 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ 0300 ÷ 231A ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0300 × 0308 ÷ 231A ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0300 ÷ 0020 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
+÷ 0300 × 0308 ÷ 0020 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
÷ 0300 × 00AD ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 0300 × 0308 × 00AD ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 0300 × 0300 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
@@ -1354,14 +1154,10 @@
÷ 200D × 0308 ÷ 0022 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
÷ 200D ÷ 0027 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
÷ 200D × 0308 ÷ 0027 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 200D ÷ 261D ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_FE) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 200D × 0308 ÷ 261D ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 200D ÷ 1F3FB ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_FE) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 200D × 0308 ÷ 1F3FB ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 200D × 2640 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_FE) × [3.3] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 200D × 0308 ÷ 2640 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 200D × 1F466 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_FE) × [3.3] BOY (EBG) ÷ [0.3]
-÷ 200D × 0308 ÷ 1F466 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ 200D × 231A ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_FE) × [3.3] WATCH (ExtPict) ÷ [0.3]
+÷ 200D × 0308 ÷ 231A ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 200D ÷ 0020 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_FE) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
+÷ 200D × 0308 ÷ 0020 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
÷ 200D × 00AD ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 200D × 0308 × 00AD ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 200D × 0300 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
@@ -1416,14 +1212,10 @@
÷ 0061 × 2060 × 0308 ÷ 0022 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
÷ 0061 × 2060 ÷ 0027 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
÷ 0061 × 2060 × 0308 ÷ 0027 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 0061 × 2060 ÷ 261D ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0061 × 2060 × 0308 ÷ 261D ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0061 × 2060 ÷ 1F3FB ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0061 × 2060 × 0308 ÷ 1F3FB ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0061 × 2060 ÷ 2640 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0061 × 2060 × 0308 ÷ 2640 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0061 × 2060 ÷ 1F466 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 0061 × 2060 × 0308 ÷ 1F466 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ 0061 × 2060 ÷ 231A ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0061 × 2060 × 0308 ÷ 231A ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0061 × 2060 ÷ 0020 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
+÷ 0061 × 2060 × 0308 ÷ 0020 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
÷ 0061 × 2060 × 00AD ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 0061 × 2060 × 0308 × 00AD ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 0061 × 2060 × 0300 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
@@ -1478,14 +1270,10 @@
÷ 0061 ÷ 003A × 0308 ÷ 0022 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
÷ 0061 ÷ 003A ÷ 0027 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
÷ 0061 ÷ 003A × 0308 ÷ 0027 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 0061 ÷ 003A ÷ 261D ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0061 ÷ 003A × 0308 ÷ 261D ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0061 ÷ 003A ÷ 1F3FB ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0061 ÷ 003A × 0308 ÷ 1F3FB ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0061 ÷ 003A ÷ 2640 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0061 ÷ 003A × 0308 ÷ 2640 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0061 ÷ 003A ÷ 1F466 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 0061 ÷ 003A × 0308 ÷ 1F466 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ 0061 ÷ 003A ÷ 231A ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0061 ÷ 003A × 0308 ÷ 231A ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0061 ÷ 003A ÷ 0020 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
+÷ 0061 ÷ 003A × 0308 ÷ 0020 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
÷ 0061 ÷ 003A × 00AD ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 0061 ÷ 003A × 0308 × 00AD ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 0061 ÷ 003A × 0300 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
@@ -1540,14 +1328,10 @@
÷ 0061 ÷ 0027 × 0308 ÷ 0022 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
÷ 0061 ÷ 0027 ÷ 0027 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
÷ 0061 ÷ 0027 × 0308 ÷ 0027 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 0061 ÷ 0027 ÷ 261D ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0061 ÷ 0027 × 0308 ÷ 261D ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0061 ÷ 0027 ÷ 1F3FB ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0061 ÷ 0027 × 0308 ÷ 1F3FB ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0061 ÷ 0027 ÷ 2640 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0061 ÷ 0027 × 0308 ÷ 2640 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0061 ÷ 0027 ÷ 1F466 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 0061 ÷ 0027 × 0308 ÷ 1F466 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ 0061 ÷ 0027 ÷ 231A ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0061 ÷ 0027 × 0308 ÷ 231A ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0061 ÷ 0027 ÷ 0020 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
+÷ 0061 ÷ 0027 × 0308 ÷ 0020 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
÷ 0061 ÷ 0027 × 00AD ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 0061 ÷ 0027 × 0308 × 00AD ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 0061 ÷ 0027 × 0300 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
@@ -1602,14 +1386,10 @@
÷ 0061 ÷ 0027 × 2060 × 0308 ÷ 0022 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
÷ 0061 ÷ 0027 × 2060 ÷ 0027 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
÷ 0061 ÷ 0027 × 2060 × 0308 ÷ 0027 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 0061 ÷ 0027 × 2060 ÷ 261D ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0061 ÷ 0027 × 2060 × 0308 ÷ 261D ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0061 ÷ 0027 × 2060 ÷ 1F3FB ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0061 ÷ 0027 × 2060 × 0308 ÷ 1F3FB ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0061 ÷ 0027 × 2060 ÷ 2640 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0061 ÷ 0027 × 2060 × 0308 ÷ 2640 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0061 ÷ 0027 × 2060 ÷ 1F466 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 0061 ÷ 0027 × 2060 × 0308 ÷ 1F466 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 ÷ 231A ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 × 0308 ÷ 231A ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 ÷ 0020 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 × 0308 ÷ 0020 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
÷ 0061 ÷ 0027 × 2060 × 00AD ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 0061 ÷ 0027 × 2060 × 0308 × 00AD ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 0061 ÷ 0027 × 2060 × 0300 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
@@ -1664,14 +1444,10 @@
÷ 0061 ÷ 002C × 0308 ÷ 0022 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
÷ 0061 ÷ 002C ÷ 0027 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
÷ 0061 ÷ 002C × 0308 ÷ 0027 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 0061 ÷ 002C ÷ 261D ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0061 ÷ 002C × 0308 ÷ 261D ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0061 ÷ 002C ÷ 1F3FB ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0061 ÷ 002C × 0308 ÷ 1F3FB ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0061 ÷ 002C ÷ 2640 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0061 ÷ 002C × 0308 ÷ 2640 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0061 ÷ 002C ÷ 1F466 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 0061 ÷ 002C × 0308 ÷ 1F466 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ 0061 ÷ 002C ÷ 231A ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0061 ÷ 002C × 0308 ÷ 231A ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0061 ÷ 002C ÷ 0020 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
+÷ 0061 ÷ 002C × 0308 ÷ 0020 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
÷ 0061 ÷ 002C × 00AD ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 0061 ÷ 002C × 0308 × 00AD ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 0061 ÷ 002C × 0300 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
@@ -1726,14 +1502,10 @@
÷ 0031 ÷ 003A × 0308 ÷ 0022 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
÷ 0031 ÷ 003A ÷ 0027 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
÷ 0031 ÷ 003A × 0308 ÷ 0027 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 0031 ÷ 003A ÷ 261D ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0031 ÷ 003A × 0308 ÷ 261D ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0031 ÷ 003A ÷ 1F3FB ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0031 ÷ 003A × 0308 ÷ 1F3FB ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0031 ÷ 003A ÷ 2640 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0031 ÷ 003A × 0308 ÷ 2640 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0031 ÷ 003A ÷ 1F466 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 0031 ÷ 003A × 0308 ÷ 1F466 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ 0031 ÷ 003A ÷ 231A ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0031 ÷ 003A × 0308 ÷ 231A ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0031 ÷ 003A ÷ 0020 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
+÷ 0031 ÷ 003A × 0308 ÷ 0020 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
÷ 0031 ÷ 003A × 00AD ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 0031 ÷ 003A × 0308 × 00AD ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 0031 ÷ 003A × 0300 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
@@ -1788,14 +1560,10 @@
÷ 0031 ÷ 0027 × 0308 ÷ 0022 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
÷ 0031 ÷ 0027 ÷ 0027 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
÷ 0031 ÷ 0027 × 0308 ÷ 0027 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 0031 ÷ 0027 ÷ 261D ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0031 ÷ 0027 × 0308 ÷ 261D ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0031 ÷ 0027 ÷ 1F3FB ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0031 ÷ 0027 × 0308 ÷ 1F3FB ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0031 ÷ 0027 ÷ 2640 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0031 ÷ 0027 × 0308 ÷ 2640 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0031 ÷ 0027 ÷ 1F466 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 0031 ÷ 0027 × 0308 ÷ 1F466 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ 0031 ÷ 0027 ÷ 231A ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0031 ÷ 0027 × 0308 ÷ 231A ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0031 ÷ 0027 ÷ 0020 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
+÷ 0031 ÷ 0027 × 0308 ÷ 0020 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
÷ 0031 ÷ 0027 × 00AD ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 0031 ÷ 0027 × 0308 × 00AD ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 0031 ÷ 0027 × 0300 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
@@ -1850,14 +1618,10 @@
÷ 0031 ÷ 002C × 0308 ÷ 0022 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
÷ 0031 ÷ 002C ÷ 0027 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
÷ 0031 ÷ 002C × 0308 ÷ 0027 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 0031 ÷ 002C ÷ 261D ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0031 ÷ 002C × 0308 ÷ 261D ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0031 ÷ 002C ÷ 1F3FB ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0031 ÷ 002C × 0308 ÷ 1F3FB ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0031 ÷ 002C ÷ 2640 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0031 ÷ 002C × 0308 ÷ 2640 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0031 ÷ 002C ÷ 1F466 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 0031 ÷ 002C × 0308 ÷ 1F466 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ 0031 ÷ 002C ÷ 231A ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0031 ÷ 002C × 0308 ÷ 231A ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0031 ÷ 002C ÷ 0020 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
+÷ 0031 ÷ 002C × 0308 ÷ 0020 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
÷ 0031 ÷ 002C × 00AD ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 0031 ÷ 002C × 0308 × 00AD ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 0031 ÷ 002C × 0300 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
@@ -1912,14 +1676,10 @@
÷ 0031 ÷ 002E × 2060 × 0308 ÷ 0022 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
÷ 0031 ÷ 002E × 2060 ÷ 0027 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
÷ 0031 ÷ 002E × 2060 × 0308 ÷ 0027 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
-÷ 0031 ÷ 002E × 2060 ÷ 261D ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0031 ÷ 002E × 2060 × 0308 ÷ 261D ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 0031 ÷ 002E × 2060 ÷ 1F3FB ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0031 ÷ 002E × 2060 × 0308 ÷ 1F3FB ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 0031 ÷ 002E × 2060 ÷ 2640 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0031 ÷ 002E × 2060 × 0308 ÷ 2640 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 0031 ÷ 002E × 2060 ÷ 1F466 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] BOY (EBG) ÷ [0.3]
-÷ 0031 ÷ 002E × 2060 × 0308 ÷ 1F466 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 ÷ 231A ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 × 0308 ÷ 231A ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] WATCH (ExtPict) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 ÷ 0020 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 × 0308 ÷ 0020 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
÷ 0031 ÷ 002E × 2060 × 00AD ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 0031 ÷ 002E × 2060 × 0308 × 00AD ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
÷ 0031 ÷ 002E × 2060 × 0300 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
@@ -1946,8 +1706,8 @@
÷ 0031 × 002E × 2060 × 0308 × 0031 ÷ 002E × 2060 ÷ # ÷ [0.2] DIGIT ONE (Numeric) × [12.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [11.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
÷ 000D × 000A ÷ 0061 ÷ 000A ÷ 0308 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) × [3.0] <LINE FEED (LF)> (LF) ÷ [3.1] LATIN SMALL LETTER A (ALetter) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [0.3]
÷ 0061 × 0308 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [0.3]
-÷ 0020 × 200D ÷ 0646 ÷ # ÷ [0.2] SPACE (Other) × [4.0] ZERO WIDTH JOINER (ZWJ_FE) ÷ [999.0] ARABIC LETTER NOON (ALetter) ÷ [0.3]
-÷ 0646 × 200D ÷ 0020 ÷ # ÷ [0.2] ARABIC LETTER NOON (ALetter) × [4.0] ZERO WIDTH JOINER (ZWJ_FE) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ 0020 × 200D ÷ 0646 ÷ # ÷ [0.2] SPACE (WSegSpace) × [4.0] ZERO WIDTH JOINER (ZWJ_FE) ÷ [999.0] ARABIC LETTER NOON (ALetter) ÷ [0.3]
+÷ 0646 × 200D ÷ 0020 ÷ # ÷ [0.2] ARABIC LETTER NOON (ALetter) × [4.0] ZERO WIDTH JOINER (ZWJ_FE) ÷ [999.0] SPACE (WSegSpace) ÷ [0.3]
÷ 0041 × 0041 × 0041 ÷ # ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [5.0] LATIN CAPITAL LETTER A (ALetter) × [5.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
÷ 0041 × 003A × 0041 ÷ # ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [6.0] COLON (MidLetter) × [7.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
÷ 0041 ÷ 003A ÷ 003A ÷ 0041 ÷ # ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [999.0] COLON (MidLetter) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
@@ -1964,13 +1724,19 @@
÷ 0061 ÷ 1F1E6 × 1F1E7 × 200D ÷ 1F1E8 ÷ 0062 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [16.0] REGIONAL INDICATOR SYMBOL LETTER B (RI) × [4.0] ZERO WIDTH JOINER (ZWJ_FE) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER C (RI) ÷ [999.0] LATIN SMALL LETTER B (ALetter) ÷ [0.3]
÷ 0061 ÷ 1F1E6 × 200D × 1F1E7 ÷ 1F1E8 ÷ 0062 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [4.0] ZERO WIDTH JOINER (ZWJ_FE) × [16.0] REGIONAL INDICATOR SYMBOL LETTER B (RI) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER C (RI) ÷ [999.0] LATIN SMALL LETTER B (ALetter) ÷ [0.3]
÷ 0061 ÷ 1F1E6 × 1F1E7 ÷ 1F1E8 × 1F1E9 ÷ 0062 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [16.0] REGIONAL INDICATOR SYMBOL LETTER B (RI) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER C (RI) × [16.0] REGIONAL INDICATOR SYMBOL LETTER D (RI) ÷ [999.0] LATIN SMALL LETTER B (ALetter) ÷ [0.3]
-÷ 261D × 1F3FB ÷ 261D ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [14.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3]
-÷ 1F466 × 1F3FB ÷ # ÷ [0.2] BOY (EBG) × [14.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 200D × 1F466 × 1F3FB ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_FE) × [3.3] BOY (EBG) × [14.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3]
-÷ 200D × 2640 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_FE) × [3.3] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3]
-÷ 200D × 1F466 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_FE) × [3.3] BOY (EBG) ÷ [0.3]
-÷ 1F466 ÷ 1F466 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] BOY (EBG) ÷ [0.3]
+÷ 1F476 × 1F3FF ÷ 1F476 ÷ # ÷ [0.2] BABY (ExtPict) × [4.0] EMOJI MODIFIER FITZPATRICK TYPE-6 (Extend_FE) ÷ [999.0] BABY (ExtPict) ÷ [0.3]
+÷ 1F6D1 × 200D × 1F6D1 ÷ # ÷ [0.2] OCTAGONAL SIGN (ExtPict) × [4.0] ZERO WIDTH JOINER (ZWJ_FE) × [3.3] OCTAGONAL SIGN (ExtPict) ÷ [0.3]
+÷ 0061 × 200D × 1F6D1 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] ZERO WIDTH JOINER (ZWJ_FE) × [3.3] OCTAGONAL SIGN (ExtPict) ÷ [0.3]
+÷ 2701 × 200D × 2701 ÷ # ÷ [0.2] UPPER BLADE SCISSORS (Other) × [4.0] ZERO WIDTH JOINER (ZWJ_FE) × [3.3] UPPER BLADE SCISSORS (Other) ÷ [0.3]
+÷ 0061 × 200D × 2701 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] ZERO WIDTH JOINER (ZWJ_FE) × [3.3] UPPER BLADE SCISSORS (Other) ÷ [0.3]
+÷ 1F476 × 1F3FF × 0308 × 200D × 1F476 × 1F3FF ÷ # ÷ [0.2] BABY (ExtPict) × [4.0] EMOJI MODIFIER FITZPATRICK TYPE-6 (Extend_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] ZERO WIDTH JOINER (ZWJ_FE) × [3.3] BABY (ExtPict) × [4.0] EMOJI MODIFIER FITZPATRICK TYPE-6 (Extend_FE) ÷ [0.3]
+÷ 1F6D1 × 1F3FF ÷ # ÷ [0.2] OCTAGONAL SIGN (ExtPict) × [4.0] EMOJI MODIFIER FITZPATRICK TYPE-6 (Extend_FE) ÷ [0.3]
+÷ 200D × 1F6D1 × 1F3FF ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_FE) × [3.3] OCTAGONAL SIGN (ExtPict) × [4.0] EMOJI MODIFIER FITZPATRICK TYPE-6 (Extend_FE) ÷ [0.3]
+÷ 200D × 1F6D1 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_FE) × [3.3] OCTAGONAL SIGN (ExtPict) ÷ [0.3]
+÷ 200D × 1F6D1 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ_FE) × [3.3] OCTAGONAL SIGN (ExtPict) ÷ [0.3]
+÷ 1F6D1 ÷ 1F6D1 ÷ # ÷ [0.2] OCTAGONAL SIGN (ExtPict) ÷ [999.0] OCTAGONAL SIGN (ExtPict) ÷ [0.3]
÷ 0061 × 0308 × 200D × 0308 × 0062 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] ZERO WIDTH JOINER (ZWJ_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [5.0] LATIN SMALL LETTER B (ALetter) ÷ [0.3]
+÷ 0061 ÷ 0020 × 0020 ÷ 0062 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] SPACE (WSegSpace) × [3.4] SPACE (WSegSpace) ÷ [999.0] LATIN SMALL LETTER B (ALetter) ÷ [0.3]
÷ 0031 ÷ 003A ÷ 003A ÷ 0031 ÷ # ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [999.0] COLON (MidLetter) ÷ [999.0] DIGIT ONE (Numeric) ÷ [0.3]
÷ 0031 × 005F × 0031 ÷ 003A ÷ 003A ÷ 0031 ÷ # ÷ [0.2] DIGIT ONE (Numeric) × [13.1] LOW LINE (ExtendNumLet) × [13.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [999.0] COLON (MidLetter) ÷ [999.0] DIGIT ONE (Numeric) ÷ [0.3]
÷ 0031 × 005F × 0061 ÷ 003A ÷ 003A ÷ 0031 ÷ # ÷ [0.2] DIGIT ONE (Numeric) × [13.1] LOW LINE (ExtendNumLet) × [13.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [999.0] COLON (MidLetter) ÷ [999.0] DIGIT ONE (Numeric) ÷ [0.3]
@@ -2080,6 +1846,6 @@
÷ 0061 × 005F × 0031 ÷ 002C ÷ 002C ÷ 0061 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [13.1] LOW LINE (ExtendNumLet) × [13.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [999.0] COMMA (MidNum) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [0.3]
÷ 0061 × 005F × 0061 ÷ 002C ÷ 002C ÷ 0061 ÷ # ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [13.1] LOW LINE (ExtendNumLet) × [13.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [999.0] COMMA (MidNum) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [0.3]
#
-# Lines: 2057
+# Lines: 1823
#
# EOF
diff --git a/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/grapheme.txt b/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/grapheme.txt
index 0b551ba1b3b..27498c1ff13 100644
--- a/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/grapheme.txt
+++ b/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/grapheme.txt
@@ -35,14 +35,7 @@ LVT = [\p{Grapheme_Cluster_Break = LVT}];
# Emoji defintions
-EmojiNRK = [[\p{Emoji}] - [Regional_Indicator\u002a\u00230-9©®™〰〽]];
-E_Base = [\p{Grapheme_Cluster_Break = EB}];
-E_Modifier = [\p{Grapheme_Cluster_Break = EM}];
-E_Base_GAZ = [\p{Grapheme_Cluster_Break = EBG}];
-
-# Data for Extended Pictographic scraped from CLDR common/properties/ExtendedPictographic.txt, r13267
-Extended_Pict = [\U0001F774-\U0001F77F\U00002700-\U00002701\U00002703-\U00002704\U0000270E\U00002710-\U00002711\U00002765-\U00002767\U0001F030-\U0001F093\U0001F094-\U0001F09F\U0001F10D-\U0001F10F\U0001F12F\U0001F16C-\U0001F16F\U0001F1AD-\U0001F1E5\U0001F260-\U0001F265\U0001F203-\U0001F20F\U0001F23C-\U0001F23F\U0001F249-\U0001F24F\U0001F252-\U0001F25F\U0001F266-\U0001F2FF\U0001F7D5-\U0001F7FF\U0001F000-\U0001F003\U0001F005-\U0001F02B\U0001F02C-\U0001F02F\U0001F322-\U0001F323\U0001F394-\U0001F395\U0001F398\U0001F39C-\U0001F39D\U0001F3F1-\U0001F3F2\U0001F3F6\U0001F4FE\U0001F53E-\U0001F548\U0001F54F\U0001F568-\U0001F56E\U0001F571-\U0001F572\U0001F57B-\U0001F586\U0001F588-\U0001F589\U0001F58E-\U0001F58F\U0001F591-\U0001F594\U0001F597-\U0001F5A3\U0001F5A6-\U0001F5A7\U0001F5A9-\U0001F5B0\U0001F5B3-\U0001F5BB\U0001F5BD-\U0001F5C1\U0001F5C5-\U0001F5D0\U0001F5D4-\U0001F5DB\U0001F5DF-\U0001F5E0\U0001F5E2\U0001F5E4-\U0001F5E7\U0001F5E9-\U0001F5EE\U0001F5F0-\U0001F5F2\U0001F5F4-\U0001F5F9\U00002605\U00002607-\U0000260D\U0000260F-\U00002610\U00002612\U00002616-\U00002617\U00002619-\U0000261C\U0000261E-\U0000261F\U00002621\U00002624-\U00002625\U00002627-\U00002629\U0000262B-\U0000262D\U00002630-\U00002637\U0000263B-\U00002647\U00002654-\U0000265F\U00002661-\U00002662\U00002664\U00002667\U00002669-\U0000267A\U0000267C-\U0000267E\U00002680-\U00002691\U00002695\U00002698\U0000269A\U0000269D-\U0000269F\U000026A2-\U000026A9\U000026AC-\U000026AF\U000026B2-\U000026BC\U000026BF-\U000026C3\U000026C6-\U000026C7\U000026C9-\U000026CD\U000026D0\U000026D2\U000026D5-\U000026E8\U000026EB-\U000026EF\U000026F6\U000026FB-\U000026FC\U000026FE-\U000026FF\U00002388\U0001FA00-\U0001FFFD\U0001F0A0-\U0001F0AE\U0001F0B1-\U0001F0BF\U0001F0C1-\U0001F0CF\U0001F0D1-\U0001F0F5\U0001F0AF-\U0001F0B0\U0001F0C0\U0001F0D0\U0001F0F6-\U0001F0FF\U0001F80C-\U0001F80F\U0001F848-\U0001F84F\U0001F85A-\U0001F85F\U0001F888-\U0001F88F\U0001F8AE-\U0001F8FF\U0001F900-\U0001F90B\U0001F91F\U0001F928-\U0001F92F\U0001F931-\U0001F932\U0001F94C\U0001F95F-\U0001F96B\U0001F992-\U0001F997\U0001F9D0-\U0001F9E6\U0001F90C-\U0001F90F\U0001F93F\U0001F94D-\U0001F94F\U0001F96C-\U0001F97F\U0001F998-\U0001F9BF\U0001F9C1-\U0001F9CF\U0001F9E7-\U0001F9FF\U0001F6C6-\U0001F6CA\U0001F6D3-\U0001F6D4\U0001F6E6-\U0001F6E8\U0001F6EA\U0001F6F1-\U0001F6F2\U0001F6F7-\U0001F6F8\U0001F6D5-\U0001F6DF\U0001F6ED-\U0001F6EF\U0001F6F9-\U0001F6FF];
-
+Extended_Pict = [:ExtPict:];
GB3: CR LF;
GB4: (Control | CR | LF) ÷;
@@ -52,8 +45,7 @@ GB6: L (L | V | LV | LVT);
GB7: (LV | V) (V | T);
GB8: (LVT | T) T;
-GB10: (E_Base | E_Base_GAZ) Extend* E_Modifier;
-GB11: (Extended_Pict | EmojiNRK) Extend* ZWJ (Extended_Pict | EmojiNRK);
+GB11: Extended_Pict Extend* ZWJ Extended_Pict;
GB9: . (Extend | ZWJ);
GB9a: . SpacingMark;
diff --git a/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/line.txt b/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/line.txt
index 5059d2d6e9b..3e0324bf93d 100644
--- a/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/line.txt
+++ b/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/line.txt
@@ -5,7 +5,8 @@
# file: line.txt
#
-# Reference Line Break rules for intltest rbbi/RBBIMonkeyTest
+# Reference Line Break rules for intltest rbbi/RBBIMonkeyTest.
+# Rules derived from Unicode Standard Annex #14 Revision 40 for Unicode 11.0
#
# Note: Rule syntax and the monkey test itself are still a work in progress.
# They are expected to change with review and the addition of support for rule tailoring.
@@ -18,13 +19,14 @@ locale = en;
AI = [:LineBreak = Ambiguous:];
AL = [:LineBreak = Alphabetic:];
BA = [:LineBreak = Break_After:];
+HH = [\u2010]; # \u2010 is HYPHEN, default line break is BA.
BB = [:LineBreak = Break_Before:];
BK = [:LineBreak = Mandatory_Break:];
B2 = [:LineBreak = Break_Both:];
CB = [:LineBreak = Contingent_Break:];
CJ = [:LineBreak = Conditional_Japanese_Starter:];
CL = [:LineBreak = Close_Punctuation:];
-CM = [:LineBreak = Combining_Mark:];
+CMS = [:LineBreak = Combining_Mark:];
CP = [:LineBreak = Close_Parenthesis:];
CR = [:LineBreak = Carriage_Return:];
EB = [:LineBreak = EB:];
@@ -59,17 +61,13 @@ XX = [:LineBreak = Unknown:];
ZW = [:LineBreak = ZWSpace:];
ZWJ = [:LineBreak = ZWJ:];
-EmojiNRK = [[\p{Emoji}] - [[RI]\u002a\u00230-9©®™〰〽]];
-# Data for Extended Pictographic scraped from CLDR common/properties/ExtendedPictographic.txt, r13267
-Extended_Pict = [\U0001F774-\U0001F77F\U00002700-\U00002701\U00002703-\U00002704\U0000270E\U00002710-\U00002711\U00002765-\U00002767\U0001F030-\U0001F093\U0001F094-\U0001F09F\U0001F10D-\U0001F10F\U0001F12F\U0001F16C-\U0001F16F\U0001F1AD-\U0001F1E5\U0001F260-\U0001F265\U0001F203-\U0001F20F\U0001F23C-\U0001F23F\U0001F249-\U0001F24F\U0001F252-\U0001F25F\U0001F266-\U0001F2FF\U0001F7D5-\U0001F7FF\U0001F000-\U0001F003\U0001F005-\U0001F02B\U0001F02C-\U0001F02F\U0001F322-\U0001F323\U0001F394-\U0001F395\U0001F398\U0001F39C-\U0001F39D\U0001F3F1-\U0001F3F2\U0001F3F6\U0001F4FE\U0001F53E-\U0001F548\U0001F54F\U0001F568-\U0001F56E\U0001F571-\U0001F572\U0001F57B-\U0001F586\U0001F588-\U0001F589\U0001F58E-\U0001F58F\U0001F591-\U0001F594\U0001F597-\U0001F5A3\U0001F5A6-\U0001F5A7\U0001F5A9-\U0001F5B0\U0001F5B3-\U0001F5BB\U0001F5BD-\U0001F5C1\U0001F5C5-\U0001F5D0\U0001F5D4-\U0001F5DB\U0001F5DF-\U0001F5E0\U0001F5E2\U0001F5E4-\U0001F5E7\U0001F5E9-\U0001F5EE\U0001F5F0-\U0001F5F2\U0001F5F4-\U0001F5F9\U00002605\U00002607-\U0000260D\U0000260F-\U00002610\U00002612\U00002616-\U00002617\U00002619-\U0000261C\U0000261E-\U0000261F\U00002621\U00002624-\U00002625\U00002627-\U00002629\U0000262B-\U0000262D\U00002630-\U00002637\U0000263B-\U00002647\U00002654-\U0000265F\U00002661-\U00002662\U00002664\U00002667\U00002669-\U0000267A\U0000267C-\U0000267E\U00002680-\U00002691\U00002695\U00002698\U0000269A\U0000269D-\U0000269F\U000026A2-\U000026A9\U000026AC-\U000026AF\U000026B2-\U000026BC\U000026BF-\U000026C3\U000026C6-\U000026C7\U000026C9-\U000026CD\U000026D0\U000026D2\U000026D5-\U000026E8\U000026EB-\U000026EF\U000026F6\U000026FB-\U000026FC\U000026FE-\U000026FF\U00002388\U0001FA00-\U0001FFFD\U0001F0A0-\U0001F0AE\U0001F0B1-\U0001F0BF\U0001F0C1-\U0001F0CF\U0001F0D1-\U0001F0F5\U0001F0AF-\U0001F0B0\U0001F0C0\U0001F0D0\U0001F0F6-\U0001F0FF\U0001F80C-\U0001F80F\U0001F848-\U0001F84F\U0001F85A-\U0001F85F\U0001F888-\U0001F88F\U0001F8AE-\U0001F8FF\U0001F900-\U0001F90B\U0001F91F\U0001F928-\U0001F92F\U0001F931-\U0001F932\U0001F94C\U0001F95F-\U0001F96B\U0001F992-\U0001F997\U0001F9D0-\U0001F9E6\U0001F90C-\U0001F90F\U0001F93F\U0001F94D-\U0001F94F\U0001F96C-\U0001F97F\U0001F998-\U0001F9BF\U0001F9C1-\U0001F9CF\U0001F9E7-\U0001F9FF\U0001F6C6-\U0001F6CA\U0001F6D3-\U0001F6D4\U0001F6E6-\U0001F6E8\U0001F6EA\U0001F6F1-\U0001F6F2\U0001F6F7-\U0001F6F8\U0001F6D5-\U0001F6DF\U0001F6ED-\U0001F6EF\U0001F6F9-\U0001F6FF];
-
# LB1 - Resolve AI, CB, CJ, SA, SG, and XX into other line breaking classes
AL = [AL AI SG XX ];
dictionary = SA;
# By LB9, a ZWJ also behaves as a CM. Including it in the definition of CM avoids having to explicitly
# list it in the numerous rules that use CM.
-CM = [CM ZWJ];
+CM = [CMS ZWJ];
LB4: BK ÷;
LB5: CR LF;
@@ -89,17 +87,21 @@ LB15: QU CM* SP* OP;
LB16: (CL | CP)CM* SP* NS;
LB17: B2 CM* SP* B2;
+# LB8, break after ZW SP*, precedes LB7 because they will both match the sequences like ZW SP,
+# and LB8 should take precedence.
+
+LB8: ZW SP* ÷ [^ZW SP BK CR LF NL];
+
+# LB7 Do not break before spaces or zero width space.
+
LB7.1: [^ZW SP] CM* [SP ZW];
LB7.2: [ZW SP] [SP ZW];
-# LB8, ICU differs from UAX-14,
-# ICU: ZW ÷;
-# UAX 14: ZW SP* ÷;
-LB8: ZW ÷;
-
# LB8a
-# ZWJ x (ID | Extended_Pict | EmojiNRK)
-LB8a: ZWJ (ID | Extended_Pict | EmojiNRK);
+# ZWJ x
+# Don't match a CM on the right - let other rules pick up CM sequences, where
+# the ZWJ behaves as just another generic CM.
+LB8a: ZWJ [^CM];
# LB9: X CM -> X
@@ -108,7 +110,7 @@ LB8a: ZWJ (ID | Extended_Pict | EmojiNRK);
#LB11: × WJ;
# WJ ×
-LB11.1: [^BK CR LF NL SP ZW] CM* WJ;
+LB11.1: [^SP] CM* WJ;
LB11.2: SP WJ;
LB11.3: WJ CM* [^CM];
@@ -134,12 +136,17 @@ LB19: . CM* QU;
LB19.1: QU CM* [^CM];
# LB 20 Break before and after CB.
-# Interaction with LB8a: ZWJ x ID is tricky because CM includes ZWJ.
+# Interaction with LB8a: ZWJ x . is tricky because CM includes ZWJ.
# ZWJ acts like a CM to the left, combining with CB.
-# ZWJ acts independently to the right, no break from ID by LB8a.
-LB20: . CM* ÷ CB;
-LB20.1a: CB CM* ZWJ (ID | Extended_Pict | EmojiNRK);
-LB20.1b: CB CM* ÷;
+# ZWJ acts independently to the right, no break after by LB8a.
+LB20.1: . CM* ZWJ CB;
+LB20.2: . CM* ÷ CB;
+
+LB20.3: CB CM* ZWJ [^CM];
+LB20.4: CB CM* ÷;
+
+# LB 20.09 Don't break between Hyphens and Letters when there is a break preceding the hyphen.
+LB20.09: ^(HY | HH) CM* AL;
# Note: Rule 21a must come before 21 to prevent 21.1 from matching HL BA, then
# not picking up the continuing match after the BA from 21a.
@@ -186,15 +193,15 @@ LB29: IS CM* (AL | HL);
LB30.1: (AL | CM | HL | NU) CM* OP;
LB30.2: CP CM* (AL | HL | NU);
-# LB31 keep pairs of RI together.
-LB30a.1: RI CM* RI CM* [BK CR LF NL SP ZW WJ GL CL CP EX IS SY QU BA HY NS];
-LB30a.2: RI CM* RI CM* ZWJ (ID | Extended_Pict | EmojiNRK);
-LB30a.3: RI CM* RI CM* ÷;
+# LB30a keep pairs of RI together.
+LB30a.1: RI CM* RI ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
+LB30a.2: RI CM* RI CM* CMS ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
+LB30a.3: RI CM* RI CM* [BK CR LF NL SP ZW WJ GL CL CP EX IS SY QU BA HY NS ZWJ]?;
# LB30b Do not break between Emoji Base and Emoji Modifier
LB30b: EB CM* EM;
# LB31 Break Everywhere Else.
# Include combining marks
-LB31.1: . CM* ZWJ (ID | Extended_Pict | EmojiNRK);
+LB31.1: . CM* ZWJ [^CM];
LB31.2: . CM* ÷;
diff --git a/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/line_loose.txt b/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/line_loose.txt
index a25e9dc5526..8395192365f 100644
--- a/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/line_loose.txt
+++ b/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/line_loose.txt
@@ -5,7 +5,8 @@
#
# file: line_loose.txt
#
-# Reference Line Break rules for intltest rbbi/RBBIMonkeyTest
+# Reference Line Break rules for intltest rbbi/RBBIMonkeyTest.
+# Rules derived from Unicode Standard Annex #14 Revision 40 for Unicode 11.0
#
# Note: Rule syntax and the monkey test itself are still a work in progress.
# They are expected to change with review and the addition of support for rule tailoring.
@@ -25,13 +26,14 @@ locale = en@lb=loose;
AI = [:LineBreak = Ambiguous:];
AL = [:LineBreak = Alphabetic:];
BA = [:LineBreak = Break_After:];
+HH = [\u2010]; # \u2010 is HYPHEN, default line break is BA.
BB = [:LineBreak = Break_Before:];
BK = [:LineBreak = Mandatory_Break:];
B2 = [:LineBreak = Break_Both:];
CB = [:LineBreak = Contingent_Break:];
CJ = [:LineBreak = Conditional_Japanese_Starter:];
CL = [:LineBreak = Close_Punctuation:];
-CM = [:LineBreak = Combining_Mark:];
+CMS = [:LineBreak = Combining_Mark:];
CP = [:LineBreak = Close_Parenthesis:];
CR = [:LineBreak = Carriage_Return:];
EB = [:LineBreak = EB:];
@@ -67,17 +69,13 @@ XX = [:LineBreak = Unknown:];
ZW = [:LineBreak = ZWSpace:];
ZWJ = [:LineBreak = ZWJ:];
-EmojiNRK = [[\p{Emoji}] - [[RI]\u002a\u00230-9©®™〰〽]];
-# Data for Extended Pictographic scraped from CLDR common/properties/ExtendedPictographic.txt, r13267
-Extended_Pict = [\U0001F774-\U0001F77F\U00002700-\U00002701\U00002703-\U00002704\U0000270E\U00002710-\U00002711\U00002765-\U00002767\U0001F030-\U0001F093\U0001F094-\U0001F09F\U0001F10D-\U0001F10F\U0001F12F\U0001F16C-\U0001F16F\U0001F1AD-\U0001F1E5\U0001F260-\U0001F265\U0001F203-\U0001F20F\U0001F23C-\U0001F23F\U0001F249-\U0001F24F\U0001F252-\U0001F25F\U0001F266-\U0001F2FF\U0001F7D5-\U0001F7FF\U0001F000-\U0001F003\U0001F005-\U0001F02B\U0001F02C-\U0001F02F\U0001F322-\U0001F323\U0001F394-\U0001F395\U0001F398\U0001F39C-\U0001F39D\U0001F3F1-\U0001F3F2\U0001F3F6\U0001F4FE\U0001F53E-\U0001F548\U0001F54F\U0001F568-\U0001F56E\U0001F571-\U0001F572\U0001F57B-\U0001F586\U0001F588-\U0001F589\U0001F58E-\U0001F58F\U0001F591-\U0001F594\U0001F597-\U0001F5A3\U0001F5A6-\U0001F5A7\U0001F5A9-\U0001F5B0\U0001F5B3-\U0001F5BB\U0001F5BD-\U0001F5C1\U0001F5C5-\U0001F5D0\U0001F5D4-\U0001F5DB\U0001F5DF-\U0001F5E0\U0001F5E2\U0001F5E4-\U0001F5E7\U0001F5E9-\U0001F5EE\U0001F5F0-\U0001F5F2\U0001F5F4-\U0001F5F9\U00002605\U00002607-\U0000260D\U0000260F-\U00002610\U00002612\U00002616-\U00002617\U00002619-\U0000261C\U0000261E-\U0000261F\U00002621\U00002624-\U00002625\U00002627-\U00002629\U0000262B-\U0000262D\U00002630-\U00002637\U0000263B-\U00002647\U00002654-\U0000265F\U00002661-\U00002662\U00002664\U00002667\U00002669-\U0000267A\U0000267C-\U0000267E\U00002680-\U00002691\U00002695\U00002698\U0000269A\U0000269D-\U0000269F\U000026A2-\U000026A9\U000026AC-\U000026AF\U000026B2-\U000026BC\U000026BF-\U000026C3\U000026C6-\U000026C7\U000026C9-\U000026CD\U000026D0\U000026D2\U000026D5-\U000026E8\U000026EB-\U000026EF\U000026F6\U000026FB-\U000026FC\U000026FE-\U000026FF\U00002388\U0001FA00-\U0001FFFD\U0001F0A0-\U0001F0AE\U0001F0B1-\U0001F0BF\U0001F0C1-\U0001F0CF\U0001F0D1-\U0001F0F5\U0001F0AF-\U0001F0B0\U0001F0C0\U0001F0D0\U0001F0F6-\U0001F0FF\U0001F80C-\U0001F80F\U0001F848-\U0001F84F\U0001F85A-\U0001F85F\U0001F888-\U0001F88F\U0001F8AE-\U0001F8FF\U0001F900-\U0001F90B\U0001F91F\U0001F928-\U0001F92F\U0001F931-\U0001F932\U0001F94C\U0001F95F-\U0001F96B\U0001F992-\U0001F997\U0001F9D0-\U0001F9E6\U0001F90C-\U0001F90F\U0001F93F\U0001F94D-\U0001F94F\U0001F96C-\U0001F97F\U0001F998-\U0001F9BF\U0001F9C1-\U0001F9CF\U0001F9E7-\U0001F9FF\U0001F6C6-\U0001F6CA\U0001F6D3-\U0001F6D4\U0001F6E6-\U0001F6E8\U0001F6EA\U0001F6F1-\U0001F6F2\U0001F6F7-\U0001F6F8\U0001F6D5-\U0001F6DF\U0001F6ED-\U0001F6EF\U0001F6F9-\U0001F6FF];
-
# LB1 - Resolve AI, CB, CJ, SA, SG, and XX into other line breaking classes
AL = [AL AI SG XX ];
dictionary = SA;
# By LB9, a ZWJ also behaves as a CM. Including it in the definition of CM avoids having to explicitly
# list it in the numerous rules that use CM.
-CM = [CM ZWJ];
+CM = [CMS ZWJ];
LB4: BK ÷;
LB5: CR LF;
@@ -97,17 +95,21 @@ LB15: QU CM* SP* OP;
LB16: (CL | CP)CM* SP* NS;
LB17: B2 CM* SP* B2;
+# LB8, break after ZW SP*, precedes LB7 because they will both match the sequences like ZW SP,
+# and LB8 should take precedence.
+
+LB8: ZW SP* ÷ [^ZW SP BK CR LF NL];
+
+# LB7 Do not break before spaces or zero width space.
+
LB7.1: [^ZW SP] CM* [SP ZW];
LB7.2: [ZW SP] [SP ZW];
-# LB8, ICU differs from UAX-14,
-# ICU: ZW ÷;
-# UAX 14: ZW SP* ÷;
-LB8: ZW ÷;
-
# LB8a
-# ZWJ x (ID | Extended_Pict | EmojiNRK)
-LB8a: ZWJ (ID | Extended_Pict | EmojiNRK);
+# ZWJ x
+# Don't match a CM on the right - let other rules pick up CM sequences, where
+# the ZWJ behaves as just another generic CM.
+LB8a: ZWJ [^CM];
# LB9: X CM -> X
@@ -116,7 +118,7 @@ LB8a: ZWJ (ID | Extended_Pict | EmojiNRK);
#LB11: × WJ;
# WJ ×
-LB11.1: [^BK CR LF NL SP ZW] CM* WJ;
+LB11.1: [^SP] CM* WJ;
LB11.2: SP WJ;
LB11.3: WJ CM* [^CM];
@@ -124,7 +126,7 @@ LB12: GL CM* [^CM];
LB12a: [^SP BA HY] CM* GL;
-# LB 13 ICU Tailoring, matches tailoring exmaple 8 from UAX 14.
+# LB 13 ICU Tailoring, matches tailoring example 8 from UAX 14.
#
# LB13.1 [^SP] CM* [CL CP EX IS SY] # original UAX 14 rule.
# LB13.2 SP CM* [CL CP EX IS SY]
@@ -142,12 +144,17 @@ LB19: . CM* QU;
LB19.1: QU CM* [^CM];
# LB 20 Break before and after CB.
-# Interaction with LB8a: ZWJ x ID is tricky because CM includes ZWJ.
+# Interaction with LB8a: ZWJ x . is tricky because CM includes ZWJ.
# ZWJ acts like a CM to the left, combining with CB.
-# ZWJ acts independently to the right, no break from ID by LB8a.
-LB20: . CM* ÷ CB;
-LB20.1a: CB CM* ZWJ (ID | Extended_Pict | EmojiNRK);
-LB20.1b: CB CM* ÷;
+# ZWJ acts independently to the right, no break after by LB8a.
+LB20.1: . CM* ZWJ CB;
+LB20.2: . CM* ÷ CB;
+
+LB20.3: CB CM* ZWJ [^CM];
+LB20.4: CB CM* ÷;
+
+# LB 20.09 Don't break between Hyphens and Letters when there is a break preceding the hyphen.
+LB20.09: ^(HY | HH) CM* AL;
# Note: Rule 21a must come before 21 to prevent 21.1 from matching HL BA, then
# not picking up the continuing match after the BA from 21a.
@@ -173,7 +180,7 @@ LB23a.2: (ID | EB | EM) CM* PO;
LB24.2: (PR | PO) CM* (AL | HL);
LB24.3: (AL | HL | CM) CM* (PR | PO);
-# Numbers. Equivalent to Tailoring example 8 from UAx 14.
+# Numbers. Equivalent to Tailoring example 8 from UAX 14.
LB25: ((PR | PO)CM*)? ((OP | HY)CM*)? NU (CM*(NU | SY | IS))* (CM*(CL | CP))? (CM*(PR | PO))?;
LB26.1: JL CM* (JL | JV | H2 | H3);
@@ -194,15 +201,15 @@ LB29: IS CM* (AL | HL);
LB30.1: (AL | CM | HL | NU) CM* OP;
LB30.2: CP CM* (AL | HL | NU);
-# LB31 keep pairs of RI together.
-LB30a.1: RI CM* RI CM* [BK CR LF NL SP ZW WJ GL CL CP EX IS SY QU BA HY NS];
-LB30a.2: RI CM* RI CM* ZWJ (ID | Extended_Pict | EmojiNRK);
-LB30a.3: RI CM* RI CM* ÷;
+# LB30a keep pairs of RI together.
+LB30a.1: RI CM* RI ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
+LB30a.2: RI CM* RI CM* CMS ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
+LB30a.3: RI CM* RI CM* [BK CR LF NL SP ZW WJ GL CL CP EX IS SY QU BA HY NS ZWJ]?;
# LB30b Do not break between Emoji Base and Emoji Modifier
LB30b: EB CM* EM;
# LB31 Break Everywhere Else.
# Include combining marks
-LB31.1: . CM* ZWJ (ID | Extended_Pict | EmojiNRK);
+LB31.1: . CM* ZWJ [^CM];
LB31.2: . CM* ÷;
diff --git a/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/line_loose_cj.txt b/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/line_loose_cj.txt
index 14458cfc3dc..d674327102b 100644
--- a/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/line_loose_cj.txt
+++ b/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/line_loose_cj.txt
@@ -5,7 +5,8 @@
#
# file: line_loose_cj.txt
#
-# Reference Line Break rules for intltest rbbi/RBBIMonkeyTest
+# Reference Line Break rules for intltest rbbi/RBBIMonkeyTest.
+# Rules derived from Unicode Standard Annex #14 Revision 40 for Unicode 11.0
#
# Note: Rule syntax and the monkey test itself are still a work in progress.
# They are expected to change with review and the addition of support for rule tailoring.
@@ -36,16 +37,17 @@ locale = ja@lb=loose;
AI = [:LineBreak = Ambiguous:];
-AL = [[:LineBreak = Alphabetic:]];
+AL = [:LineBreak = Alphabetic:];
BAX = [\u2010 \u2013];
BA = [[:LineBreak = Break_After:] - BAX];
+HH = [\u2010]; # \u2010 is HYPHEN, default line break is BA.
BB = [:LineBreak = Break_Before:];
BK = [:LineBreak = Mandatory_Break:];
B2 = [:LineBreak = Break_Both:];
CB = [:LineBreak = Contingent_Break:];
CJ = [:LineBreak = Conditional_Japanese_Starter:];
CL = [:LineBreak = Close_Punctuation:];
-CM = [:LineBreak = Combining_Mark:];
+CMS = [:LineBreak = Combining_Mark:];
CP = [:LineBreak = Close_Parenthesis:];
CR = [:LineBreak = Carriage_Return:];
EB = [:LineBreak = EB:];
@@ -84,17 +86,13 @@ XX = [:LineBreak = Unknown:];
ZW = [:LineBreak = ZWSpace:];
ZWJ = [:LineBreak = ZWJ:];
-EmojiNRK = [[\p{Emoji}] - [[RI]\u002a\u00230-9©®™〰〽]];
-# Data for Extended Pictographic scraped from CLDR common/properties/ExtendedPictographic.txt, r13267
-Extended_Pict = [\U0001F774-\U0001F77F\U00002700-\U00002701\U00002703-\U00002704\U0000270E\U00002710-\U00002711\U00002765-\U00002767\U0001F030-\U0001F093\U0001F094-\U0001F09F\U0001F10D-\U0001F10F\U0001F12F\U0001F16C-\U0001F16F\U0001F1AD-\U0001F1E5\U0001F260-\U0001F265\U0001F203-\U0001F20F\U0001F23C-\U0001F23F\U0001F249-\U0001F24F\U0001F252-\U0001F25F\U0001F266-\U0001F2FF\U0001F7D5-\U0001F7FF\U0001F000-\U0001F003\U0001F005-\U0001F02B\U0001F02C-\U0001F02F\U0001F322-\U0001F323\U0001F394-\U0001F395\U0001F398\U0001F39C-\U0001F39D\U0001F3F1-\U0001F3F2\U0001F3F6\U0001F4FE\U0001F53E-\U0001F548\U0001F54F\U0001F568-\U0001F56E\U0001F571-\U0001F572\U0001F57B-\U0001F586\U0001F588-\U0001F589\U0001F58E-\U0001F58F\U0001F591-\U0001F594\U0001F597-\U0001F5A3\U0001F5A6-\U0001F5A7\U0001F5A9-\U0001F5B0\U0001F5B3-\U0001F5BB\U0001F5BD-\U0001F5C1\U0001F5C5-\U0001F5D0\U0001F5D4-\U0001F5DB\U0001F5DF-\U0001F5E0\U0001F5E2\U0001F5E4-\U0001F5E7\U0001F5E9-\U0001F5EE\U0001F5F0-\U0001F5F2\U0001F5F4-\U0001F5F9\U00002605\U00002607-\U0000260D\U0000260F-\U00002610\U00002612\U00002616-\U00002617\U00002619-\U0000261C\U0000261E-\U0000261F\U00002621\U00002624-\U00002625\U00002627-\U00002629\U0000262B-\U0000262D\U00002630-\U00002637\U0000263B-\U00002647\U00002654-\U0000265F\U00002661-\U00002662\U00002664\U00002667\U00002669-\U0000267A\U0000267C-\U0000267E\U00002680-\U00002691\U00002695\U00002698\U0000269A\U0000269D-\U0000269F\U000026A2-\U000026A9\U000026AC-\U000026AF\U000026B2-\U000026BC\U000026BF-\U000026C3\U000026C6-\U000026C7\U000026C9-\U000026CD\U000026D0\U000026D2\U000026D5-\U000026E8\U000026EB-\U000026EF\U000026F6\U000026FB-\U000026FC\U000026FE-\U000026FF\U00002388\U0001FA00-\U0001FFFD\U0001F0A0-\U0001F0AE\U0001F0B1-\U0001F0BF\U0001F0C1-\U0001F0CF\U0001F0D1-\U0001F0F5\U0001F0AF-\U0001F0B0\U0001F0C0\U0001F0D0\U0001F0F6-\U0001F0FF\U0001F80C-\U0001F80F\U0001F848-\U0001F84F\U0001F85A-\U0001F85F\U0001F888-\U0001F88F\U0001F8AE-\U0001F8FF\U0001F900-\U0001F90B\U0001F91F\U0001F928-\U0001F92F\U0001F931-\U0001F932\U0001F94C\U0001F95F-\U0001F96B\U0001F992-\U0001F997\U0001F9D0-\U0001F9E6\U0001F90C-\U0001F90F\U0001F93F\U0001F94D-\U0001F94F\U0001F96C-\U0001F97F\U0001F998-\U0001F9BF\U0001F9C1-\U0001F9CF\U0001F9E7-\U0001F9FF\U0001F6C6-\U0001F6CA\U0001F6D3-\U0001F6D4\U0001F6E6-\U0001F6E8\U0001F6EA\U0001F6F1-\U0001F6F2\U0001F6F7-\U0001F6F8\U0001F6D5-\U0001F6DF\U0001F6ED-\U0001F6EF\U0001F6F9-\U0001F6FF];
-
# LB1 - Resolve AI, CB, CJ, SA, SG, and XX into other line breaking classes
AL = [AL AI SG XX ];
dictionary = SA;
# By LB9, a ZWJ also behaves as a CM. Including it in the definition of CM avoids having to explicitly
# list it in the numerous rules that use CM.
-CM = [CM ZWJ];
+CM = [CMS ZWJ];
LB4: BK ÷;
LB5: CR LF;
@@ -114,17 +112,21 @@ LB15: QU CM* SP* OP;
LB16: (CL | CP)CM* SP* NS;
LB17: B2 CM* SP* B2;
+# LB8, break after ZW SP*, precedes LB7 because they will both match the sequences like ZW SP,
+# and LB8 should take precedence.
+
+LB8: ZW SP* ÷ [^ZW SP BK CR LF NL];
+
+# LB7 Do not break before spaces or zero width space.
+
LB7.1: [^ZW SP] CM* [SP ZW];
LB7.2: [ZW SP] [SP ZW];
-# LB8, ICU differs from UAX-14,
-# ICU: ZW ÷;
-# UAX 14: ZW SP* ÷;
-LB8: ZW ÷;
-
# LB8a
-# ZWJ x (ID | Extended_Pict | EmojiNRK)
-LB8a: ZWJ (ID | Extended_Pict | EmojiNRK);
+# ZWJ x
+# Don't match a CM on the right - let other rules pick up CM sequences, where
+# the ZWJ behaves as just another generic CM.
+LB8a: ZWJ [^CM];
# LB9: X CM -> X
@@ -133,7 +135,7 @@ LB8a: ZWJ (ID | Extended_Pict | EmojiNRK);
#LB11: × WJ;
# WJ ×
-LB11.1: [^BK CR LF NL SP ZW] CM* WJ;
+LB11.1: [^SP] CM* WJ;
LB11.2: SP WJ;
LB11.3: WJ CM* [^CM];
@@ -159,12 +161,17 @@ LB19: . CM* QU;
LB19.1: QU CM* [^CM];
# LB 20 Break before and after CB.
-# Interaction with LB8a: ZWJ x ID is tricky because CM includes ZWJ.
+# Interaction with LB8a: ZWJ x . is tricky because CM includes ZWJ.
# ZWJ acts like a CM to the left, combining with CB.
-# ZWJ acts independently to the right, no break from ID by LB8a.
-LB20: . CM* ÷ CB;
-LB20.1a: CB CM* ZWJ (ID | Extended_Pict | EmojiNRK);
-LB20.1b: CB CM* ÷;
+# ZWJ acts independently to the right, no break after by LB8a.
+LB20.1: . CM* ZWJ CB;
+LB20.2: . CM* ÷ CB;
+
+LB20.3: CB CM* ZWJ [^CM];
+LB20.4: CB CM* ÷;
+
+# LB 20.09 Don't break between Hyphens and Letters when there is a break preceding the hyphen.
+LB20.09: ^(HY | HH) CM* AL;
# Note: Rule 21a must come before 21 to prevent 21.1 from matching HL BA, then
# not picking up the continuing match after the BA from 21a.
@@ -215,15 +222,15 @@ LB29: IS CM* (AL | HL);
LB30.1: (AL | CM | HL | NU) CM* OP;
LB30.2: CP CM* (AL | HL | NU);
-# LB31 keep pairs of RI together.
-LB30a.1: RI CM* RI CM* [BK CR LF NL SP ZW WJ GL CL CP EX IS SY QU BA HY NS];
-LB30a.2: RI CM* RI CM* ZWJ (ID | Extended_Pict | EmojiNRK);
-LB30a.3: RI CM* RI CM* ÷;
+# LB30a keep pairs of RI together.
+LB30a.1: RI CM* RI ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
+LB30a.2: RI CM* RI CM* CMS ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
+LB30a.3: RI CM* RI CM* [BK CR LF NL SP ZW WJ GL CL CP EX IS SY QU BA HY NS ZWJ]?;
# LB30b Do not break between Emoji Base and Emoji Modifier
LB30b: EB CM* EM;
# LB31 Break Everywhere Else.
# Include combining marks
-LB31.1: . CM* ZWJ (ID | Extended_Pict | EmojiNRK);
+LB31.1: . CM* ZWJ [^CM];
LB31.2: . CM* ÷;
diff --git a/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/line_normal.txt b/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/line_normal.txt
index a2e0bc583d5..7f5b91c42ab 100644
--- a/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/line_normal.txt
+++ b/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/line_normal.txt
@@ -5,7 +5,8 @@
#
# file: line_normal.txt
#
-# Reference Line Break rules for intltest rbbi/RBBIMonkeyTest
+# Reference Line Break rules for intltest rbbi/RBBIMonkeyTest.
+# Rules derived from Unicode Standard Annex #14 Revision 40 for Unicode 11.0
#
# Note: Rule syntax and the monkey test itself are still a work in progress.
# They are expected to change with review and the addition of support for rule tailoring.
@@ -32,13 +33,14 @@ locale = en@lb=normal;
AI = [:LineBreak = Ambiguous:];
AL = [:LineBreak = Alphabetic:];
BA = [:LineBreak = Break_After:];
+HH = [\u2010]; # \u2010 is HYPHEN, default line break is BA.
BB = [:LineBreak = Break_Before:];
BK = [:LineBreak = Mandatory_Break:];
B2 = [:LineBreak = Break_Both:];
CB = [:LineBreak = Contingent_Break:];
CJ = [:LineBreak = Conditional_Japanese_Starter:];
CL = [:LineBreak = Close_Punctuation:];
-CM = [:LineBreak = Combining_Mark:];
+CMS = [:LineBreak = Combining_Mark:];
CP = [:LineBreak = Close_Parenthesis:];
CR = [:LineBreak = Carriage_Return:];
EB = [:LineBreak = EB:];
@@ -73,17 +75,13 @@ XX = [:LineBreak = Unknown:];
ZW = [:LineBreak = ZWSpace:];
ZWJ = [:LineBreak = ZWJ:];
-EmojiNRK = [[\p{Emoji}] - [[RI]\u002a\u00230-9©®™〰〽]];
-# Data for Extended Pictographic scraped from CLDR common/properties/ExtendedPictographic.txt, r13267
-Extended_Pict = [\U0001F774-\U0001F77F\U00002700-\U00002701\U00002703-\U00002704\U0000270E\U00002710-\U00002711\U00002765-\U00002767\U0001F030-\U0001F093\U0001F094-\U0001F09F\U0001F10D-\U0001F10F\U0001F12F\U0001F16C-\U0001F16F\U0001F1AD-\U0001F1E5\U0001F260-\U0001F265\U0001F203-\U0001F20F\U0001F23C-\U0001F23F\U0001F249-\U0001F24F\U0001F252-\U0001F25F\U0001F266-\U0001F2FF\U0001F7D5-\U0001F7FF\U0001F000-\U0001F003\U0001F005-\U0001F02B\U0001F02C-\U0001F02F\U0001F322-\U0001F323\U0001F394-\U0001F395\U0001F398\U0001F39C-\U0001F39D\U0001F3F1-\U0001F3F2\U0001F3F6\U0001F4FE\U0001F53E-\U0001F548\U0001F54F\U0001F568-\U0001F56E\U0001F571-\U0001F572\U0001F57B-\U0001F586\U0001F588-\U0001F589\U0001F58E-\U0001F58F\U0001F591-\U0001F594\U0001F597-\U0001F5A3\U0001F5A6-\U0001F5A7\U0001F5A9-\U0001F5B0\U0001F5B3-\U0001F5BB\U0001F5BD-\U0001F5C1\U0001F5C5-\U0001F5D0\U0001F5D4-\U0001F5DB\U0001F5DF-\U0001F5E0\U0001F5E2\U0001F5E4-\U0001F5E7\U0001F5E9-\U0001F5EE\U0001F5F0-\U0001F5F2\U0001F5F4-\U0001F5F9\U00002605\U00002607-\U0000260D\U0000260F-\U00002610\U00002612\U00002616-\U00002617\U00002619-\U0000261C\U0000261E-\U0000261F\U00002621\U00002624-\U00002625\U00002627-\U00002629\U0000262B-\U0000262D\U00002630-\U00002637\U0000263B-\U00002647\U00002654-\U0000265F\U00002661-\U00002662\U00002664\U00002667\U00002669-\U0000267A\U0000267C-\U0000267E\U00002680-\U00002691\U00002695\U00002698\U0000269A\U0000269D-\U0000269F\U000026A2-\U000026A9\U000026AC-\U000026AF\U000026B2-\U000026BC\U000026BF-\U000026C3\U000026C6-\U000026C7\U000026C9-\U000026CD\U000026D0\U000026D2\U000026D5-\U000026E8\U000026EB-\U000026EF\U000026F6\U000026FB-\U000026FC\U000026FE-\U000026FF\U00002388\U0001FA00-\U0001FFFD\U0001F0A0-\U0001F0AE\U0001F0B1-\U0001F0BF\U0001F0C1-\U0001F0CF\U0001F0D1-\U0001F0F5\U0001F0AF-\U0001F0B0\U0001F0C0\U0001F0D0\U0001F0F6-\U0001F0FF\U0001F80C-\U0001F80F\U0001F848-\U0001F84F\U0001F85A-\U0001F85F\U0001F888-\U0001F88F\U0001F8AE-\U0001F8FF\U0001F900-\U0001F90B\U0001F91F\U0001F928-\U0001F92F\U0001F931-\U0001F932\U0001F94C\U0001F95F-\U0001F96B\U0001F992-\U0001F997\U0001F9D0-\U0001F9E6\U0001F90C-\U0001F90F\U0001F93F\U0001F94D-\U0001F94F\U0001F96C-\U0001F97F\U0001F998-\U0001F9BF\U0001F9C1-\U0001F9CF\U0001F9E7-\U0001F9FF\U0001F6C6-\U0001F6CA\U0001F6D3-\U0001F6D4\U0001F6E6-\U0001F6E8\U0001F6EA\U0001F6F1-\U0001F6F2\U0001F6F7-\U0001F6F8\U0001F6D5-\U0001F6DF\U0001F6ED-\U0001F6EF\U0001F6F9-\U0001F6FF];
-
# LB1 - Resolve AI, CB, CJ, SA, SG, and XX into other line breaking classes
AL = [AL AI SG XX ];
dictionary = SA;
# By LB9, a ZWJ also behaves as a CM. Including it in the definition of CM avoids having to explicitly
# list it in the numerous rules that use CM.
-CM = [CM ZWJ];
+CM = [CMS ZWJ];
LB4: BK ÷;
LB5: CR LF;
@@ -103,17 +101,21 @@ LB15: QU CM* SP* OP;
LB16: (CL | CP)CM* SP* NS;
LB17: B2 CM* SP* B2;
+# LB8, break after ZW SP*, precedes LB7 because they will both match the sequences like ZW SP,
+# and LB8 should take precedence.
+
+LB8: ZW SP* ÷ [^ZW SP BK CR LF NL];
+
+# LB7 Do not break before spaces or zero width space.
+
LB7.1: [^ZW SP] CM* [SP ZW];
LB7.2: [ZW SP] [SP ZW];
-# LB8, ICU differs from UAX-14,
-# ICU: ZW ÷;
-# UAX 14: ZW SP* ÷;
-LB8: ZW ÷;
-
# LB8a
-# ZWJ x (ID | Extended_Pict | EmojiNRK)
-LB8a: ZWJ (ID | Extended_Pict | EmojiNRK);
+# ZWJ x
+# Don't match a CM on the right - let other rules pick up CM sequences, where
+# the ZWJ behaves as just another generic CM.
+LB8a: ZWJ [^CM];
# LB9: X CM -> X
@@ -122,7 +124,7 @@ LB8a: ZWJ (ID | Extended_Pict | EmojiNRK);
#LB11: × WJ;
# WJ ×
-LB11.1: [^BK CR LF NL SP ZW] CM* WJ;
+LB11.1: [^SP] CM* WJ;
LB11.2: SP WJ;
LB11.3: WJ CM* [^CM];
@@ -148,12 +150,17 @@ LB19: . CM* QU;
LB19.1: QU CM* [^CM];
# LB 20 Break before and after CB.
-# Interaction with LB8a: ZWJ x ID is tricky because CM includes ZWJ.
+# Interaction with LB8a: ZWJ x . is tricky because CM includes ZWJ.
# ZWJ acts like a CM to the left, combining with CB.
-# ZWJ acts independently to the right, no break from ID by LB8a.
-LB20: . CM* ÷ CB;
-LB20.1a: CB CM* ZWJ (ID | Extended_Pict | EmojiNRK);
-LB20.1b: CB CM* ÷;
+# ZWJ acts independently to the right, no break after by LB8a.
+LB20.1: . CM* ZWJ CB;
+LB20.2: . CM* ÷ CB;
+
+LB20.3: CB CM* ZWJ [^CM];
+LB20.4: CB CM* ÷;
+
+# LB 20.09 Don't break between Hyphens and Letters when there is a break preceding the hyphen.
+LB20.09: ^(HY | HH) CM* AL;
# Note: Rule 21a must come before 21 to prevent 21.1 from matching HL BA, then
# not picking up the continuing match after the BA from 21a.
@@ -200,15 +207,15 @@ LB29: IS CM* (AL | HL);
LB30.1: (AL | CM | HL | NU) CM* OP;
LB30.2: CP CM* (AL | HL | NU);
-# LB31 keep pairs of RI together.
-LB30a.1: RI CM* RI CM* [BK CR LF NL SP ZW WJ GL CL CP EX IS SY QU BA HY NS];
-LB30a.2: RI CM* RI CM* ZWJ (ID | Extended_Pict | EmojiNRK);
-LB30a.3: RI CM* RI CM* ÷;
+# LB30a keep pairs of RI together.
+LB30a.1: RI CM* RI ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
+LB30a.2: RI CM* RI CM* CMS ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
+LB30a.3: RI CM* RI CM* [BK CR LF NL SP ZW WJ GL CL CP EX IS SY QU BA HY NS ZWJ]?;
# LB30b Do not break between Emoji Base and Emoji Modifier
LB30b: EB CM* EM;
# LB31 Break Everywhere Else.
# Include combining marks
-LB31.1: . CM* ZWJ (ID | Extended_Pict | EmojiNRK);
+LB31.1: . CM* ZWJ [^CM];
LB31.2: . CM* ÷;
diff --git a/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/line_normal_cj.txt b/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/line_normal_cj.txt
index 388cd03c6b8..cf90751715c 100644
--- a/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/line_normal_cj.txt
+++ b/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/line_normal_cj.txt
@@ -5,7 +5,8 @@
#
# file: line_normal_cj.txt
#
-# Reference Line Break rules for intltest rbbi/RBBIMonkeyTest
+# Reference Line Break rules for intltest rbbi/RBBIMonkeyTest.
+# Rules derived from Unicode Standard Annex #14 Revision 40 for Unicode 11.0
#
# Note: Rule syntax and the monkey test itself are still a work in progress.
# They are expected to change with review and the addition of support for rule tailoring.
@@ -33,13 +34,14 @@ AI = [:LineBreak = Ambiguous:];
AL = [:LineBreak = Alphabetic:];
BAX = [\u2010 \u2013];
BA = [[:LineBreak = Break_After:] - BAX];
+HH = [\u2010]; # \u2010 is HYPHEN, default line break is BA.
BB = [:LineBreak = Break_Before:];
BK = [:LineBreak = Mandatory_Break:];
B2 = [:LineBreak = Break_Both:];
CB = [:LineBreak = Contingent_Break:];
CJ = [:LineBreak = Conditional_Japanese_Starter:];
CL = [:LineBreak = Close_Punctuation:];
-CM = [:LineBreak = Combining_Mark:];
+CMS = [:LineBreak = Combining_Mark:];
CP = [:LineBreak = Close_Parenthesis:];
CR = [:LineBreak = Carriage_Return:];
EB = [:LineBreak = EB:];
@@ -75,17 +77,13 @@ XX = [:LineBreak = Unknown:];
ZW = [:LineBreak = ZWSpace:];
ZWJ = [:LineBreak = ZWJ:];
-EmojiNRK = [[\p{Emoji}] - [[RI]\u002a\u00230-9©®™〰〽]];
-# Data for Extended Pictographic scraped from CLDR common/properties/ExtendedPictographic.txt, r13267
-Extended_Pict = [\U0001F774-\U0001F77F\U00002700-\U00002701\U00002703-\U00002704\U0000270E\U00002710-\U00002711\U00002765-\U00002767\U0001F030-\U0001F093\U0001F094-\U0001F09F\U0001F10D-\U0001F10F\U0001F12F\U0001F16C-\U0001F16F\U0001F1AD-\U0001F1E5\U0001F260-\U0001F265\U0001F203-\U0001F20F\U0001F23C-\U0001F23F\U0001F249-\U0001F24F\U0001F252-\U0001F25F\U0001F266-\U0001F2FF\U0001F7D5-\U0001F7FF\U0001F000-\U0001F003\U0001F005-\U0001F02B\U0001F02C-\U0001F02F\U0001F322-\U0001F323\U0001F394-\U0001F395\U0001F398\U0001F39C-\U0001F39D\U0001F3F1-\U0001F3F2\U0001F3F6\U0001F4FE\U0001F53E-\U0001F548\U0001F54F\U0001F568-\U0001F56E\U0001F571-\U0001F572\U0001F57B-\U0001F586\U0001F588-\U0001F589\U0001F58E-\U0001F58F\U0001F591-\U0001F594\U0001F597-\U0001F5A3\U0001F5A6-\U0001F5A7\U0001F5A9-\U0001F5B0\U0001F5B3-\U0001F5BB\U0001F5BD-\U0001F5C1\U0001F5C5-\U0001F5D0\U0001F5D4-\U0001F5DB\U0001F5DF-\U0001F5E0\U0001F5E2\U0001F5E4-\U0001F5E7\U0001F5E9-\U0001F5EE\U0001F5F0-\U0001F5F2\U0001F5F4-\U0001F5F9\U00002605\U00002607-\U0000260D\U0000260F-\U00002610\U00002612\U00002616-\U00002617\U00002619-\U0000261C\U0000261E-\U0000261F\U00002621\U00002624-\U00002625\U00002627-\U00002629\U0000262B-\U0000262D\U00002630-\U00002637\U0000263B-\U00002647\U00002654-\U0000265F\U00002661-\U00002662\U00002664\U00002667\U00002669-\U0000267A\U0000267C-\U0000267E\U00002680-\U00002691\U00002695\U00002698\U0000269A\U0000269D-\U0000269F\U000026A2-\U000026A9\U000026AC-\U000026AF\U000026B2-\U000026BC\U000026BF-\U000026C3\U000026C6-\U000026C7\U000026C9-\U000026CD\U000026D0\U000026D2\U000026D5-\U000026E8\U000026EB-\U000026EF\U000026F6\U000026FB-\U000026FC\U000026FE-\U000026FF\U00002388\U0001FA00-\U0001FFFD\U0001F0A0-\U0001F0AE\U0001F0B1-\U0001F0BF\U0001F0C1-\U0001F0CF\U0001F0D1-\U0001F0F5\U0001F0AF-\U0001F0B0\U0001F0C0\U0001F0D0\U0001F0F6-\U0001F0FF\U0001F80C-\U0001F80F\U0001F848-\U0001F84F\U0001F85A-\U0001F85F\U0001F888-\U0001F88F\U0001F8AE-\U0001F8FF\U0001F900-\U0001F90B\U0001F91F\U0001F928-\U0001F92F\U0001F931-\U0001F932\U0001F94C\U0001F95F-\U0001F96B\U0001F992-\U0001F997\U0001F9D0-\U0001F9E6\U0001F90C-\U0001F90F\U0001F93F\U0001F94D-\U0001F94F\U0001F96C-\U0001F97F\U0001F998-\U0001F9BF\U0001F9C1-\U0001F9CF\U0001F9E7-\U0001F9FF\U0001F6C6-\U0001F6CA\U0001F6D3-\U0001F6D4\U0001F6E6-\U0001F6E8\U0001F6EA\U0001F6F1-\U0001F6F2\U0001F6F7-\U0001F6F8\U0001F6D5-\U0001F6DF\U0001F6ED-\U0001F6EF\U0001F6F9-\U0001F6FF];
-
# LB1 - Resolve AI, CB, CJ, SA, SG, and XX into other line breaking classes
AL = [AL AI SG XX ];
dictionary = SA;
# By LB9, a ZWJ also behaves as a CM. Including it in the definition of CM avoids having to explicitly
# list it in the numerous rules that use CM.
-CM = [CM ZWJ];
+CM = [CMS ZWJ];
LB4: BK ÷;
LB5: CR LF;
@@ -108,17 +106,21 @@ LB15: QU CM* SP* OP;
LB16: (CL | CP)CM* SP* NS;
LB17: B2 CM* SP* B2;
+# LB8, break after ZW SP*, precedes LB7 because they will both match the sequences like ZW SP,
+# and LB8 should take precedence.
+
+LB8: ZW SP* ÷ [^ZW SP BK CR LF NL];
+
+# LB7 Do not break before spaces or zero width space.
+
LB7.1: [^ZW SP] CM* [SP ZW];
LB7.2: [ZW SP] [SP ZW];
-# LB8, ICU differs from UAX-14,
-# ICU: ZW ÷;
-# UAX 14: ZW SP* ÷;
-LB8: ZW ÷;
-
# LB8a
-# ZWJ x (ID | Extended_Pict | EmojiNRK)
-LB8a: ZWJ (ID | Extended_Pict | EmojiNRK);
+# ZWJ x
+# Don't match a CM on the right - let other rules pick up CM sequences, where
+# the ZWJ behaves as just another generic CM.
+LB8a: ZWJ [^CM];
# LB9: X CM -> X
@@ -127,7 +129,7 @@ LB8a: ZWJ (ID | Extended_Pict | EmojiNRK);
#LB11: × WJ;
# WJ ×
-LB11.1: [^BK CR LF NL SP ZW] CM* WJ;
+LB11.1: [^SP] CM* WJ;
LB11.2: SP WJ;
LB11.3: WJ CM* [^CM];
@@ -153,12 +155,17 @@ LB19: . CM* QU;
LB19.1: QU CM* [^CM];
# LB 20 Break before and after CB.
-# Interaction with LB8a: ZWJ x ID is tricky because CM includes ZWJ.
+# Interaction with LB8a: ZWJ x . is tricky because CM includes ZWJ.
# ZWJ acts like a CM to the left, combining with CB.
-# ZWJ acts independently to the right, no break from ID by LB8a.
-LB20: . CM* ÷ CB;
-LB20.1a: CB CM* ZWJ (ID | Extended_Pict | EmojiNRK);
-LB20.1b: CB CM* ÷;
+# ZWJ acts independently to the right, no break after by LB8a.
+LB20.1: . CM* ZWJ CB;
+LB20.2: . CM* ÷ CB;
+
+LB20.3: CB CM* ZWJ [^CM];
+LB20.4: CB CM* ÷;
+
+# LB 20.09 Don't break between Hyphens and Letters when there is a break preceding the hyphen.
+LB20.09: ^(HY | HH) CM* AL;
# Note: Rule 21a must come before 21 to prevent 21.1 from matching HL BA, then
# not picking up the continuing match after the BA from 21a.
@@ -209,15 +216,15 @@ LB29: IS CM* (AL | HL);
LB30.1: (AL | CM | HL | NU) CM* OP;
LB30.2: CP CM* (AL | HL | NU);
-# LB31 keep pairs of RI together.
-LB30a.1: RI CM* RI CM* [BK CR LF NL SP ZW WJ GL CL CP EX IS SY QU BA HY NS];
-LB30a.2: RI CM* RI CM* ZWJ (ID | Extended_Pict | EmojiNRK);
-LB30a.3: RI CM* RI CM* ÷;
+# LB30a keep pairs of RI together.
+LB30a.1: RI CM* RI ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
+LB30a.2: RI CM* RI CM* CMS ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
+LB30a.3: RI CM* RI CM* [BK CR LF NL SP ZW WJ GL CL CP EX IS SY QU BA HY NS ZWJ]?;
# LB30b Do not break between Emoji Base and Emoji Modifier
LB30b: EB CM* EM;
# LB31 Break Everywhere Else.
# Include combining marks
-LB31.1: . CM* ZWJ (ID | Extended_Pict | EmojiNRK);
+LB31.1: . CM* ZWJ [^CM];
LB31.2: . CM* ÷;
diff --git a/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/word.txt b/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/word.txt
index fd9799cec76..fc7bc9b1886 100644
--- a/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/word.txt
+++ b/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/word.txt
@@ -32,12 +32,8 @@ MidLetter = [\p{Word_Break = MidLetter}];
MidNum = [\p{Word_Break = MidNum}];
Numeric = [\p{Word_Break = Numeric}];
ExtendNumLet = [\p{Word_Break = ExtendNumLet}];
-E_Base = [\p{Word_Break = EB}];
-E_Modifier = [\p{Word_Break = EM}];
-EmojiNRK = [[\p{Emoji}] - [[Regional_Indicator]\u002a\u00230-9©®™〰〽]];
-# Data for Extended Pictographic scraped from CLDR common/properties/ExtendedPictographic.txt, r13267
-Extended_Pict = [\U0001F774-\U0001F77F\U00002700-\U00002701\U00002703-\U00002704\U0000270E\U00002710-\U00002711\U00002765-\U00002767\U0001F030-\U0001F093\U0001F094-\U0001F09F\U0001F10D-\U0001F10F\U0001F12F\U0001F16C-\U0001F16F\U0001F1AD-\U0001F1E5\U0001F260-\U0001F265\U0001F203-\U0001F20F\U0001F23C-\U0001F23F\U0001F249-\U0001F24F\U0001F252-\U0001F25F\U0001F266-\U0001F2FF\U0001F7D5-\U0001F7FF\U0001F000-\U0001F003\U0001F005-\U0001F02B\U0001F02C-\U0001F02F\U0001F322-\U0001F323\U0001F394-\U0001F395\U0001F398\U0001F39C-\U0001F39D\U0001F3F1-\U0001F3F2\U0001F3F6\U0001F4FE\U0001F53E-\U0001F548\U0001F54F\U0001F568-\U0001F56E\U0001F571-\U0001F572\U0001F57B-\U0001F586\U0001F588-\U0001F589\U0001F58E-\U0001F58F\U0001F591-\U0001F594\U0001F597-\U0001F5A3\U0001F5A6-\U0001F5A7\U0001F5A9-\U0001F5B0\U0001F5B3-\U0001F5BB\U0001F5BD-\U0001F5C1\U0001F5C5-\U0001F5D0\U0001F5D4-\U0001F5DB\U0001F5DF-\U0001F5E0\U0001F5E2\U0001F5E4-\U0001F5E7\U0001F5E9-\U0001F5EE\U0001F5F0-\U0001F5F2\U0001F5F4-\U0001F5F9\U00002605\U00002607-\U0000260D\U0000260F-\U00002610\U00002612\U00002616-\U00002617\U00002619-\U0000261C\U0000261E-\U0000261F\U00002621\U00002624-\U00002625\U00002627-\U00002629\U0000262B-\U0000262D\U00002630-\U00002637\U0000263B-\U00002647\U00002654-\U0000265F\U00002661-\U00002662\U00002664\U00002667\U00002669-\U0000267A\U0000267C-\U0000267E\U00002680-\U00002691\U00002695\U00002698\U0000269A\U0000269D-\U0000269F\U000026A2-\U000026A9\U000026AC-\U000026AF\U000026B2-\U000026BC\U000026BF-\U000026C3\U000026C6-\U000026C7\U000026C9-\U000026CD\U000026D0\U000026D2\U000026D5-\U000026E8\U000026EB-\U000026EF\U000026F6\U000026FB-\U000026FC\U000026FE-\U000026FF\U00002388\U0001FA00-\U0001FFFD\U0001F0A0-\U0001F0AE\U0001F0B1-\U0001F0BF\U0001F0C1-\U0001F0CF\U0001F0D1-\U0001F0F5\U0001F0AF-\U0001F0B0\U0001F0C0\U0001F0D0\U0001F0F6-\U0001F0FF\U0001F80C-\U0001F80F\U0001F848-\U0001F84F\U0001F85A-\U0001F85F\U0001F888-\U0001F88F\U0001F8AE-\U0001F8FF\U0001F900-\U0001F90B\U0001F91F\U0001F928-\U0001F92F\U0001F931-\U0001F932\U0001F94C\U0001F95F-\U0001F96B\U0001F992-\U0001F997\U0001F9D0-\U0001F9E6\U0001F90C-\U0001F90F\U0001F93F\U0001F94D-\U0001F94F\U0001F96C-\U0001F97F\U0001F998-\U0001F9BF\U0001F9C1-\U0001F9CF\U0001F9E7-\U0001F9FF\U0001F6C6-\U0001F6CA\U0001F6D3-\U0001F6D4\U0001F6E6-\U0001F6E8\U0001F6EA\U0001F6F1-\U0001F6F2\U0001F6F7-\U0001F6F8\U0001F6D5-\U0001F6DF\U0001F6ED-\U0001F6EF\U0001F6F9-\U0001F6FF];
-EBG = [\p{Word_Break = EBG}];
+WSegSpace = [\p{Word_Break = WSegSpace}];
+Extended_Pict = [:ExtPict:];
#define dictionary, with the effect being that those characters don't appear in test data.
@@ -63,7 +59,8 @@ WB3: CR LF;
WB3a: (Newline | CR | LF) ÷;
WB3b: . ÷ (Newline | CR | LF); # actually redundant? No other rule combines.
# (but needed with UAX treat-as scheme.)
-WB3c: ZWJ (Extended_Pict | EmojiNRK);
+WB3c: ZWJ Extended_Pict;
+WB3d: WSegSpace WSegSpace;
WB5: AHLetter ExtFmt* AHLetter;
@@ -85,13 +82,11 @@ WB13b: ExtendNumLet ExtFmt* (AHLetter | Numeric | Katakana);
# WB rule 15 - 17, pairs of Regional Indicators stay unbroken.
# Interacts with WB3c.
-WB15: Regional_Indicator ExtFmt* Regional_Indicator ExtFmt* ZWJ (Extended_Pict | EmojiNRK);
+WB15: Regional_Indicator ExtFmt* Regional_Indicator ExtFmt* ZWJ Extended_Pict;
WB17: Regional_Indicator ExtFmt* Regional_Indicator ExtFmt* ÷;
-WB14: (E_Base | EBG) ExtFmt* E_Modifier;
-
# Rule WB 999 Any ÷ Any
# Interacts with WB3c, do not break between ZWJ and (Extended_Pict | EBG).
-WB999.1: . ExtFmt* ZWJ (Extended_Pict | EmojiNRK);
+WB999.1: . ExtFmt* ZWJ Extended_Pict;
WB999.2: . ExtFmt* ÷;
diff --git a/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/word_POSIX.txt b/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/word_POSIX.txt
index 6e8be2c7baf..10efc32d210 100644
--- a/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/word_POSIX.txt
+++ b/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/word_POSIX.txt
@@ -31,12 +31,8 @@ MidLetter = [\p{Word_Break = MidLetter} - [\:]];
MidNum = [\p{Word_Break = MidNum} [.]];
Numeric = [\p{Word_Break = Numeric}];
ExtendNumLet = [\p{Word_Break = ExtendNumLet}];
-E_Base = [\p{Word_Break = EB}];
-E_Modifier = [\p{Word_Break = EM}];
-EmojiNRK = [[\p{Emoji}] - [[Regional_Indicator]\u002a\u00230-9©®™〰〽]];
-# Data for Extended Pictographic scraped from CLDR common/properties/ExtendedPictographic.txt, r13267
-Extended_Pict = [\U0001F774-\U0001F77F\U00002700-\U00002701\U00002703-\U00002704\U0000270E\U00002710-\U00002711\U00002765-\U00002767\U0001F030-\U0001F093\U0001F094-\U0001F09F\U0001F10D-\U0001F10F\U0001F12F\U0001F16C-\U0001F16F\U0001F1AD-\U0001F1E5\U0001F260-\U0001F265\U0001F203-\U0001F20F\U0001F23C-\U0001F23F\U0001F249-\U0001F24F\U0001F252-\U0001F25F\U0001F266-\U0001F2FF\U0001F7D5-\U0001F7FF\U0001F000-\U0001F003\U0001F005-\U0001F02B\U0001F02C-\U0001F02F\U0001F322-\U0001F323\U0001F394-\U0001F395\U0001F398\U0001F39C-\U0001F39D\U0001F3F1-\U0001F3F2\U0001F3F6\U0001F4FE\U0001F53E-\U0001F548\U0001F54F\U0001F568-\U0001F56E\U0001F571-\U0001F572\U0001F57B-\U0001F586\U0001F588-\U0001F589\U0001F58E-\U0001F58F\U0001F591-\U0001F594\U0001F597-\U0001F5A3\U0001F5A6-\U0001F5A7\U0001F5A9-\U0001F5B0\U0001F5B3-\U0001F5BB\U0001F5BD-\U0001F5C1\U0001F5C5-\U0001F5D0\U0001F5D4-\U0001F5DB\U0001F5DF-\U0001F5E0\U0001F5E2\U0001F5E4-\U0001F5E7\U0001F5E9-\U0001F5EE\U0001F5F0-\U0001F5F2\U0001F5F4-\U0001F5F9\U00002605\U00002607-\U0000260D\U0000260F-\U00002610\U00002612\U00002616-\U00002617\U00002619-\U0000261C\U0000261E-\U0000261F\U00002621\U00002624-\U00002625\U00002627-\U00002629\U0000262B-\U0000262D\U00002630-\U00002637\U0000263B-\U00002647\U00002654-\U0000265F\U00002661-\U00002662\U00002664\U00002667\U00002669-\U0000267A\U0000267C-\U0000267E\U00002680-\U00002691\U00002695\U00002698\U0000269A\U0000269D-\U0000269F\U000026A2-\U000026A9\U000026AC-\U000026AF\U000026B2-\U000026BC\U000026BF-\U000026C3\U000026C6-\U000026C7\U000026C9-\U000026CD\U000026D0\U000026D2\U000026D5-\U000026E8\U000026EB-\U000026EF\U000026F6\U000026FB-\U000026FC\U000026FE-\U000026FF\U00002388\U0001FA00-\U0001FFFD\U0001F0A0-\U0001F0AE\U0001F0B1-\U0001F0BF\U0001F0C1-\U0001F0CF\U0001F0D1-\U0001F0F5\U0001F0AF-\U0001F0B0\U0001F0C0\U0001F0D0\U0001F0F6-\U0001F0FF\U0001F80C-\U0001F80F\U0001F848-\U0001F84F\U0001F85A-\U0001F85F\U0001F888-\U0001F88F\U0001F8AE-\U0001F8FF\U0001F900-\U0001F90B\U0001F91F\U0001F928-\U0001F92F\U0001F931-\U0001F932\U0001F94C\U0001F95F-\U0001F96B\U0001F992-\U0001F997\U0001F9D0-\U0001F9E6\U0001F90C-\U0001F90F\U0001F93F\U0001F94D-\U0001F94F\U0001F96C-\U0001F97F\U0001F998-\U0001F9BF\U0001F9C1-\U0001F9CF\U0001F9E7-\U0001F9FF\U0001F6C6-\U0001F6CA\U0001F6D3-\U0001F6D4\U0001F6E6-\U0001F6E8\U0001F6EA\U0001F6F1-\U0001F6F2\U0001F6F7-\U0001F6F8\U0001F6D5-\U0001F6DF\U0001F6ED-\U0001F6EF\U0001F6F9-\U0001F6FF];
-EBG = [\p{Word_Break = EBG}];
+WSegSpace = [\p{Word_Break = WSegSpace}];
+Extended_Pict = [:ExtPict:];
#define dictionary, with the effect being that those characters don't appear in test data.
@@ -62,7 +58,8 @@ WB3: CR LF;
WB3a: (Newline | CR | LF) ÷;
WB3b: . ÷ (Newline | CR | LF); # actually redundant? No other rule combines.
# (but needed with UAX treat-as scheme.)
-WB3c: ZWJ (Extended_Pict | EmojiNRK);
+WB3c: ZWJ Extended_Pict;
+WB3d: WSegSpace WSegSpace;
WB5: AHLetter ExtFmt* AHLetter;
@@ -84,13 +81,11 @@ WB13b: ExtendNumLet ExtFmt* (AHLetter | Numeric | Katakana);
# WB rule 15 - 17, pairs of Regional Indicators stay unbroken.
# Interacts with WB3c.
-WB15: Regional_Indicator ExtFmt* Regional_Indicator ExtFmt* ZWJ (Extended_Pict | EmojiNRK);
+WB15: Regional_Indicator ExtFmt* Regional_Indicator ExtFmt* ZWJ Extended_Pict;
WB17: Regional_Indicator ExtFmt* Regional_Indicator ExtFmt* ÷;
-WB14: (E_Base | EBG) ExtFmt* E_Modifier;
-
# Rule WB 999 Any ÷ Any
# Interacts with WB3c, do not break between ZWJ and (Extended_Pict | EBG).
-WB999.1: . ExtFmt* ZWJ (Extended_Pict | EmojiNRK);
+WB999.1: . ExtFmt* ZWJ Extended_Pict;
WB999.2: . ExtFmt* ÷;
diff --git a/Build/source/libs/icu/icu-src/source/test/testdata/format.txt b/Build/source/libs/icu/icu-src/source/test/testdata/format.txt
index c0364e2c1b0..18bacecee5b 100644
--- a/Build/source/libs/icu/icu-src/source/test/testdata/format.txt
+++ b/Build/source/libs/icu/icu-src/source/test/testdata/format.txt
@@ -187,21 +187,21 @@ format:table(nofallback) {
"",
"DATE=RELATIVE_SHORT",
"RELATIVE_ADD:DATE=1", // one day from now
- "Għada"
+ "għada"
},
{
"mt_MT@calendar=gregorian",
"",
"DATE=RELATIVE_SHORT",
"RELATIVE_MILLIS=0", // today
- "Illum"
+ "illum"
},
{
"mt_MT@calendar=gregorian",
"",
"DATE=RELATIVE_SHORT",
"RELATIVE_ADD:DATE=-1", // one day before now
- "Ilbieraħ"
+ "lbieraħ"
},
{
"ru",
diff --git a/Build/source/libs/icu/icu-src/source/test/testdata/numberformattestspecification.txt b/Build/source/libs/icu/icu-src/source/test/testdata/numberformattestspecification.txt
index 1f11f8da7c1..6ff99a8f201 100644
--- a/Build/source/libs/icu/icu-src/source/test/testdata/numberformattestspecification.txt
+++ b/Build/source/libs/icu/icu-src/source/test/testdata/numberformattestspecification.txt
@@ -8,6 +8,14 @@
// for that test suite. After the global settings, comes "begin", the
// per-test field names, and finally the test specific field values, 1 test
// per line.
+//
+// Field names:
+// H = ICU4J 58 (archive)
+// J = ICU4J (current)
+// K = JDK (ignored if not OpenJDK 1.8)
+// C = ICU4C (current)
+// P = Properties-based ICU4J (bypasses DecimalFormat wrapper)
+//
// For more information on the format of this file, including all the available
// field names, please see
// https://docs.google.com/document/d/1T2P0p953_Lh1pRwo-5CuPVrHlIBa_wcXElG-Hhg_WHM/edit?usp=sharing
@@ -17,22 +25,23 @@ set locale ar-EG
set pattern +0;-#
begin
format output breaks
-6 \u061C+\u0666 JK
+6 \u061C+\u0666 HK
-6 \u061C-\u0666 K
test basic patterns
set locale fr_FR
set format 1234.567
begin
-pattern output
-#,##0.## 1\u00a0234,57
+pattern output breaks
+// K does not use \u202f narrow space
+#,##0.## 1\u202f234,57 K
0.## 1234,57
0 1235
-#,##0.### 1\u00a0234,567
+#,##0.### 1\u202f234,567 K
###0.###### 1234,567
###0.0000# 1234,5670
00000.0000 01234,5670
-#,##0.00 \u00a4 1\u00a0234,57 \u20ac
+#,##0.00 \u00a4 1\u202f234,57 \u20ac K
'tick''bitten '0.00 tick'bitten 1234,57
'tick' 'bitten '0.00 tick bitten 1234,57
@@ -143,7 +152,7 @@ pattern format output breaks
4 10.0 8 K
2.70 99.0 99,90 K
2.73 272.0 273,00 K
-#,#3.70 104.0 1\u00a003,60 K
+#,#3.70 104.0 1\u202f03,60 K
test significant digits
set locale en
@@ -179,7 +188,7 @@ pattern format output breaks
// JDK gives 12,3001E3
##0.000#E0 12300.1 12,30E3 K
##0.000#E0 12301 12,301E3
-0.05E0 12301.2 1,25E4 JK
+0.05E0 12301.2 1,25E4 HK
##0.000#E0 0.17 170,0E-3
// JDK doesn't support significant digits in exponents
@@@E0 6.235 6,24E0 K
@@ -204,9 +213,9 @@ pattern format output breaks
p%p0.0 0.573 p%p57,3
p'%'p0.0 0.573 p%p0,6
%@@@@ 0.0326 %3,260 K
-%#,@@@ 15.43 %1\u00a0540 K
+%#,@@@ 15.43 %1\u202f540 K
// JDK does not support rounding increments
-%#,##4.1 16.55 %1\u00a0656,4 K
+%#,##4.1 16.55 %1\u202f656,4 K
// JDK gives %16,255E3
%##0.00E0 162.55 %16,3E3 K
@@ -219,8 +228,8 @@ pattern format output breaks
p\u2030p0.0 0.573 p\u2030p573,0
p'\u2030'p0.0 0.573 p\u2030p0,6
\u2030@@@@ 0.0326 \u203032,60 K
-\u2030#,@@@ 15.43 \u203015\u00a0400 K
-\u2030#,##4.1 16.55 \u203016\u00a0551,7 K
+\u2030#,@@@ 15.43 \u203015\u202f400 K
+\u2030#,##4.1 16.55 \u203016\u202f551,7 K
// JDK gives \u2030162,55E3
\u2030##0.00E0 162.55 \u2030163E3 K
@@ -229,26 +238,26 @@ set locale fr_FR
begin
pattern format output breaks
// JDK does not seem to support padding
-$**####,##0 1234 $***1\u00a0234 K
-*x$####,##0 1234 xxx$1\u00a0234 K
-####,##0*x$ 1234 1\u00a0234xxx$ K
-####,##0$*x 1234 1\u00a0234$xxx K
+$**####,##0 1234 $***1\u202f234 K
+*x$####,##0 1234 xxx$1\u202f234 K
+####,##0*x$ 1234 1\u202f234xxx$ K
+####,##0$*x 1234 1\u202f234$xxx K
// JDK doesn't seem to handle suffixes correctly dropping the 'nx' entirely
-####,##0$*x;ne#n -1234 ne1\u00a0234nx K
-####,##0$*x;n#'*' -1234 n1\u00a0234*xx K
+####,##0$*x;ne#n -1234 ne1\u202f234nx K
+####,##0$*x;n#'*' -1234 n1\u202f234*xx K
*y%4.2###### 4.33 yyyy%432,6 K
// In J ICU adds padding as if 'EUR' is only 2 chars (2 * 0xa4)
-\u00a4\u00a4 **####0.00 433.0 EUR *433,00 JK
-// In J ICU adds padding as if 'EUR' is only 2 chars (2 * 0xa4)
-// Q fails this one because the test code bypasses CurrencyUsage
-\u00a4\u00a4 **#######0 433.0 EUR *433,00 JKQ
+\u00a4\u00a4 **####0.00 433.0 EUR *433,00 HK
+// In H ICU adds padding as if 'EUR' is only 2 chars (2 * 0xa4)
+// P fails this one because the test code bypasses CurrencyUsage
+\u00a4\u00a4 **#######0 433.0 EUR *433,00 HKP
test padding and currencies
begin
locale currency pattern format output breaks
// In J, JPY is considered 2 char (2 * 0xa4) even though padding is done
// after prefix. In C this test works.
-fr JPY \u00a4\u00a4 **#######0 433.22 JPY ****433 JK
+fr JPY \u00a4\u00a4 **#######0 433.22 JPY ****433 HK
// JDK doesn't correct rounding for currency, shows USD (433
en USD \u00a4\u00a4 **#######0;\u00a4\u00a4 (#) -433.22 USD (433.22) K
@@ -258,10 +267,10 @@ set format 1234.567
begin
pattern currency output breaks
// JDK gives shows EUR instead of the euro symbol in this case
-#,##0.00 \u00a4 EUR 1\u00a0234,57 \u20ac K
+#,##0.00 \u00a4 EUR 1\u202f234,57 \u20ac K
// JDK gives 1\u00A0234,57. JDK doesn't seem to correct rounding
// based on currency.
-#,##0.00 \u00a4 JPY 1\u00a0235 JPY K
+#,##0.00 \u00a4 JPY 1\u202f235 JPY K
test prefixes and suffixes
set locale en
@@ -280,7 +289,7 @@ begin
format output breaks
// min grouping digits not supported in any existing implementation
// but could be easily added to the new DecimalFormat C code.
-1000 1000 JK
+1000 1000 HK
10000 10,000
100000 100,000
1000000 1,000,000
@@ -318,8 +327,8 @@ minIntegerDigits maxIntegerDigits minFractionDigits maxFractionDigits output bre
1 1 0 0 3E8
// JDK gives E0 instead of allowing for unlimited precision
0 0 0 0 2.99792458E8 K
-// JDK gives .299792E9; Q gives 2.99792E8
-0 1 0 5 2.9979E8 KQ
+// J gives 2.9979E8
+0 1 0 5 2.99792E8 HK
// JDK gives 300E6
0 3 0 0 299.792458E6 K
// JDK gives 299.8E6 (maybe maxInt + maxFrac instead of minInt + maxFrac)?
@@ -335,8 +344,8 @@ minIntegerDigits maxIntegerDigits minFractionDigits maxFractionDigits output bre
0 0 1 5 .29979E9
// JDK gives E0
0 0 1 0 2.99792458E8 K
-// JDK and Q give .2998E9
-0 0 0 4 2.998E8 KQ
+// J gives 2.998E8
+0 0 0 4 .29979E9 HK
// According to the spec, if maxInt>minInt and minInt>1, then set
// Context: #13289
2 8 1 6 2.9979246E8 K
@@ -345,6 +354,15 @@ minIntegerDigits maxIntegerDigits minFractionDigits maxFractionDigits output bre
// JDK fails here because it tries to use 9 + 6 = 15 sig digits.
2 9 1 6 29.979246E7 K
+test ticket 20058
+set locale en
+begin
+pattern format output breaks
+#00.0##E0 0 0.0E0 K
+#00.0##E0 1.2 1.2E0 K
+#00.0E0 0 0.0E0 K
+#00.0E0 1.2 1.2E0 K
+
test significant digits scientific
set locale en
set pattern #E0
@@ -381,13 +399,14 @@ set pattern #,##0.###
begin
format maxIntegerDigits output breaks
123 1 3
-0 0 0
-// Q ignores max integer if it is less than zero and prints "123"
-123 -2147483648 0 Q
+// C obeys maxIntegerDigits and prints after the decimal place
+0 0 .0 HKP
+// CJP ignore max integer if it is less than zero and prints "123"
+123 -2147483648 0 CJP
12345 1 5
-12345 -2147483648 0 Q
+12345 -2147483648 0 CJP
5.3 1 5.3
-5.3 -2147483648 .3 Q
+5.3 -2147483648 .3 CJP
test patterns with zero
set locale en
@@ -461,12 +480,20 @@ set pattern 0
set format 123456789
set useGrouping 1
begin
-output grouping breaks grouping2 minGroupingDigits
+output grouping grouping2 breaks
1,2345,6789 4
-1,23,45,6789 4 K 2
-1,23,45,6789 4 K 2 2
-123,456789 6 6 3
-123456789 6 JK 6 4
+1,23,45,6789 4 2 K
+
+test grouping setters with min grouping digits
+set locale en_US
+set pattern 0
+set format 123456789
+set useGrouping 1
+begin
+output grouping grouping2 minGroupingDigits breaks
+1,23,45,6789 4 2 2 K
+123,456789 6 6 3
+123456789 6 6 4 HK
test multiplier setters
set locale en_US
@@ -474,10 +501,10 @@ begin
format multiplier output breaks
23 -12 -276
23 -1 -23
-// ICU4J throws exception on zero multiplier.
+// H (ICU4J 58) and J (current ICU4J) throw exception on zero multiplier.
// ICU4C prints 23.
// Q multiplies by zero and prints 0.
-23 0 0 CJ
+23 0 0 CHJ
23 1 23
23 12 276
-23 12 -276
@@ -491,9 +518,9 @@ begin
format output breaks
-0.35 -0.25 K
0.35 0.25 K
-// Q doesn't support mixing minFrac with roundingIncrement (prints 0.50).
-0.39 0.5 KQ
-0.62 0.5 KQ
+// P doesn't support mixing minFrac with roundingIncrement (prints 0.50).
+0.39 0.5 JKP
+0.62 0.5 JKP
0.63 0.75 K
test padding setters
@@ -511,10 +538,10 @@ set locale en_US
set pattern 0.00
set format 186283
begin
-output breaks useScientific
+output useScientific breaks
186283.00
-1.86E5 K 1
-186283.00 0
+1.86E5 1 K
+186283.00 0
test rounding mode setters
set locale en_US
@@ -548,21 +575,20 @@ set locale en
begin
currency currencyUsage toPattern breaks
// These work in J, but it prepends an extra hash sign to the pattern.
-// C does not print the currency rounding information in the pattern.
// K does not support this feature.
-USD standard 0.00 CJK
-CHF standard 0.00 CJK
-CZK standard 0.00 CJK
-USD cash 0.00 CJK
-CHF cash 0.05 CJK
-CZK cash 0 CJK
+USD standard 0.00 HK
+CHF standard 0.00 HK
+CZK standard 0.00 HK
+USD cash 0.00 HK
+CHF cash 0.05 HK
+CZK cash 0 HK
test currency rounding
set locale en
set currency USD
begin
pattern format output breaks
-# 123 123 Q
+# 123 123 P
// Currency rounding should always override the pattern.
// K prints the currency in ISO format for some reason.
\u00a4# 123 $123.00 K
@@ -588,11 +614,11 @@ test exponent decimalSeparatorAlwaysShown default
set locale en_US
set pattern 0.##E0
begin
-format output breaks decimalSeparatorAlwaysShown
+format output decimalSeparatorAlwaysShown breaks
// decimalSeparatorAlwaysShown off by default
299792458 3E8
299000000 2.99E8
-299792458 3.E8 1
+299792458 3.E8 1
test pad position setters
set locale en_US
@@ -637,8 +663,9 @@ begin
format output breaks
Inf [\u221e]
-Inf (\u221e) K
-// Q prints the affixes
-NaN NaN KQ
+// J does not print the affixes
+// K prints \uFFFD
+NaN [NaN] HK
test nan and infinity with multiplication
set locale en
@@ -652,18 +679,19 @@ NaN NaN K
test nan and infinity with padding
set locale en_US
set pattern $$$0.00$
-set formatWidth 7
+set formatWidth 8
begin
format padPosition output breaks
-Inf beforePrefix $$$\u221e$ K
-Inf afterPrefix $$$ \u221e$ K
-Inf beforeSuffix $$$\u221e $ K
-Inf afterSuffix $$$\u221e$ K
-// Q gets $$$NaN$
-NaN beforePrefix NaN KQ
-NaN afterPrefix NaN KQ
-NaN beforeSuffix NaN KQ
-NaN afterSuffix NaN KQ
+Inf beforePrefix $$$\u221e$ K
+Inf afterPrefix $$$ \u221e$ K
+Inf beforeSuffix $$$\u221e $ K
+Inf afterSuffix $$$\u221e$ K
+// J does not print the affixes
+// K prints \uFFFD
+NaN beforePrefix $$$NaN$ HK
+NaN afterPrefix $$$ NaN$ HK
+NaN beforeSuffix $$$NaN $ HK
+NaN afterSuffix $$$NaN$ HK
test apply formerly localized patterns
begin
@@ -683,31 +711,31 @@ sl #.##0;#.##0− #,##0;#,##0- K
// JDK does not have data for "×10^" in this locale
en_SE 0,00×10^0;0,00×10^0- 0.00E0;0.00E0- K
// JDK does not seem to transform the digits in localized patterns
-ar_SA #\u066C##\u0660\u066B\u0660\u0660\u061Ba# #,##0.00;a#,##0.00 K
+ar_SA #\u066C##\u0660\u066B\u0660\u0660;a# #,##0.00;a#,##0.00 K
test toPattern
set locale en
begin
pattern toPattern breaks
-// All of the "S" failures in this section are because of functionally equivalent patterns
+// All of the C and S failures in this section are because of functionally equivalent patterns
// JDK doesn't support any patterns with padding or both negative prefix and suffix
// Breaks ICU4J See ticket 11671
-**0,000 **0,000 JK
+**0,000 **0,000 HK
**##0,000 **##0,000 K
**###0,000 **###0,000 K
-**####0,000 **#,##0,000 KS
+**####0,000 **#,##0,000 CJKP
###,000. #,000.
-0,000 #0,000 S
+0,000 #0,000 CJP
.00 #.00
-000 #000 S
-000,000 #,000,000 S
+000 #000 CJP
+000,000 #,000,000 CJP
pp#,000 pp#,000
-00.## #00.## S
+00.## #00.## CJP
#,#00.025 #,#00.025
// No secondary grouping in JDK
#,##,###.02500 #,##,###.02500 K
pp#,000;(#) pp#,000;(#,000) K
-**####,##,##0.0##;(#) **#,##,##,##0.0##;**(##,##,##0.0##) KS
+**####,##,##0.0##;(#) **#,##,##,##0.0##;**(##,##,##0.0##) CJKP
// No significant digits in JDK
@@### @@### K
@,@#,### @,@#,### K
@@ -732,23 +760,25 @@ parse output breaks
+5347,,, 5347
+5347,,,d8 5347
(5,347.25) -5347.25
-// J requires prefix and suffix for lenient parsing, but C doesn't
-5,347.25 5347.25 JK
-(5,347.25 -5347.25 J
+// H requires prefix and suffix for lenient parsing, but C doesn't
+5,347.25 5347.25 HK
+(5,347.25 -5347.25 H
// S is successful at parsing this as -5347.25 in lenient mode
--5,347.25 -5347.25 CJK
+-5,347.25 -5347.25 HK
+3.52E4 35200
(34.8E-3) -0.0348
// JDK stops parsing at the spaces. JDK doesn't see space as a grouping separator
(34 25E-1) -342.5 K
(34,,25E-1) -342.5
-// J doesn't allow trailing separators before E but C does
-(34,,25,E-1) -342.5 J
-(34 25 E-1) -342.5 JK
-(34,,25 E-1) -342.5 CJK
+// Trailing grouping separators are not OK.
+// H fails; C/J/P stop at the offending separator.
+(34,,25,E-1) fail CJKP
+(34,,25,E-1) -3425 HK
+(34 25 E-1) -342.5 HK
+(34,,25 E-1) -342.5 HK
// Spaces are not allowed after exponent symbol
-// C parses up to the E but J bails
-(34 25E -1) -3425 JK
+// C parses up to the E but H bails
+(34 25E -1) -3425 HK
+3.52EE4 3.52
+1,234,567.8901 1234567.8901
+1,23,4567.8901 1234567.8901
@@ -756,37 +786,38 @@ parse output breaks
+1,23,4567.89,01 1234567.89
+1,23,456.78.9 123456.78
+12.34,56 12.34
-+79,,20,3 79203
-+79 20 3 79203 K
++79,,20,33 792033
+// JDK gets 79
++79 20 33 792033 K
// Parsing stops at comma as it is different from other separators
-+79 20,3 7920 K
-+79,,20 3 7920
++79 20,33 7920 K
++79,,20 33 7920
+ 79 79 K
-+,79,,20,3 79203
++,79,,20,33 792033
+7920d3 7920
// Whitespace immediately after prefix doesn't count as digit separator
-// in C but is does in J
-+ ,79,,20,3 79203 JK
+// in C but is does in H
++ ,79,,20,33 792033 HK
( 19 45) -1945 K
// C allows trailing separators when there is a prefix and suffix.
-// J allows trailing separators only when there is just a prefix.
-// In this case, J just bails
-( 19 45 ) -1945 JK
+// H allows trailing separators only when there is just a prefix.
+// In this case, H just bails
+( 19 45 ) -1945 HK
(,,19,45) -1945
-// C parses to the space, but J bails
-(,,19 45) -19 J
-// J bails b/c comma different separator than space. C doesn't treat leading spaces
+// C parses to the space, but H bails
+(,,19 45) -19 H
+// H bails b/c comma different separator than space. C doesn't treat leading spaces
// as a separator.
-( 19,45) -1945 JK
-// J bails. Doesn't allow trailing separators when there is prefix and suffix.
-(,,19,45,) -1945 J
-// J bails on next 4 because J doesn't allow letters inside prefix and suffix.
+( 19,45) -1945 HK
+// H bails. Doesn't allow trailing separators when there is prefix and suffix.
+(,,19,45,) -1945 H
+// H bails on next 4 because H doesn't allow letters inside prefix and suffix.
// C will parse up to the letter.
-(,,19,45,d1) -1945 J
-(,,19,45d1) -1945 J
-( 19 45 d1) -1945 JK
-( 19 45d1) -1945 JK
-// J does allow trailing separator before a decimal point
+(,,19,45,d1) -1945 H
+(,,19,45d1) -1945 H
+( 19 45 d1) -1945 HK
+( 19 45d1) -1945 HK
+// H does allow trailing separator before a decimal point
(19,45,.25) -1945.25
// 2nd decimal points are ignored
+4.12.926 4.12
@@ -796,21 +827,19 @@ set locale en
set pattern #,##0.0###+;#-
begin
parse output breaks
-// C sees this as -3426, don't understand why.
// J and K just bail.
-3426 3426 JKC
+3426 3426 HK
3426+ 3426
-// J bails; C and K see -34
-34 d1+ 34 JKC
+// J bails; K sees -34
+34 d1+ 34 HK
// JDK sees this as -1234 for some reason
-// J bails b/c of trailing separators
-// C parses until trailing separators, but sees -1234
-1,234,,,+ 1234 JKC
+// H bails b/c of trailing separators
+1,234,,,+ 1234 HK
1,234- -1234
-// J bails because of trailing separators
-1,234,- -1234 J
+// H, C, and P bail because of trailing separators
+1,234,- -1234 CHJP
// J bails here too
-1234 - -1234 J
+1234 - -1234 H
@@ -836,8 +865,8 @@ parse output breaks
(3425E-1) -342.5
// Strict doesn't allow separators in sci notation.
(63,425) -63425
-// J does not allow grouping separators in scientific notation.
-(63,425E-1) -6342.5 J
+// H does not allow grouping separators in scientific notation.
+(63,425E-1) -6342.5 H
// Both prefix and suffix needed for strict.
// JDK accepts this and parses as -342.5
(3425E-1 fail K
@@ -861,8 +890,8 @@ parse output breaks
+1,234.5 1234.5
// Comma after decimal means parse to a comma
+1,23,456.78,9 123456.78
-// C and J fail upon seeing the second decimal point
-+1,23,456.78.9 123456.78 CJ
+// H fails upon seeing the second decimal point
++1,23,456.78.9 123456.78 H
+79 79
+79 79
+ 79 fail
@@ -870,15 +899,16 @@ parse output breaks
(1,945d1) fail K
test parse strict scientific
+// See #13737: Old behavior should be retained in this case
set locale en
set pattern #E0
set lenient 0
begin
parse output breaks
-123 fail CJK
+123 123
123E1 1230
123E0 123
-123E fail CJK
+123E 123
test parse strict without prefix/suffix
set locale en
@@ -900,7 +930,7 @@ begin
parse output breaks
35 35
// S accepts leading plus signs
-+35 35 CJK
++35 35 HK
-35 -35
2.63 2
-39.99 -39
@@ -914,8 +944,8 @@ parseNoExponent parse output breaks
0 5e2 500 K
0 5.3E2 530
// See ticket 11725
-1 5e2 5 J
-1 5.3E2 5.3 JK
+1 5e2 5 H
+1 5.3E2 5.3 HK
test parse currency fail
set pattern 0
@@ -951,13 +981,10 @@ set negativePrefix
set negativeSuffix 9N
begin
parse output breaks
-// S is the only implementation that passes these cases.
-// C and P consume the '9' as a digit and assumes number is negative
-// J and JDK bail
-6549K 654 CJKP
-// C and P consume the '9' as a digit and assumes number is negative
-// J and JDK bail
-6549N -654 CJKP
+// A non-greedy parse is required to pass these cases.
+// All of the implementations being tested are greedy.
+6549K 654 CHJKP
+6549N -654 CHJKP
test really strange prefix
set locale en
@@ -984,8 +1011,8 @@ parse output breaks
१३ 13
१३.३१‍ 13.31
123'456 123456
-524'1.3 5241.3
-३'१‍ 31
+524'11.3 52411.3
+३'११‍ 311
test parse with European-style comma/period
set locale pt
@@ -1023,44 +1050,44 @@ begin
parse output outputCurrency breaks
53.45 fail GBP
£53.45 53.45 GBP
-$53.45 fail USD J
+$53.45 53.45 USD C
53.45 USD 53.45 USD
53.45 GBP 53.45 GBP
-USD 53.45 53.45 USD J
-53.45USD 53.45 USD CJ
+USD 53.45 53.45 USD H
+53.45USD 53.45 USD H
USD53.45 53.45 USD
(7.92) USD -7.92 USD
(7.92) GBP -7.92 GBP
(7.926) USD -7.926 USD
-(7.926 USD) -7.926 USD CJ
-(USD 7.926) -7.926 USD CJ
-USD (7.926) -7.926 USD CJ
-USD (7.92) -7.92 USD CJ
-(7.92)USD -7.92 USD CJ
-USD(7.92) -7.92 USD CJ
+(7.926 USD) -7.926 USD H
+(USD 7.926) -7.926 USD H
+USD (7.926) -7.926 USD H
+USD (7.92) -7.92 USD H
+(7.92)USD -7.92 USD H
+USD(7.92) -7.92 USD H
(8) USD -8 USD
--8 USD -8 USD C
+-8 USD -8 USD
67 USD 67 USD
-53.45$ fail USD
-US Dollars 53.45 53.45 USD J
+53.45$ 53.45 USD CH
+US Dollars 53.45 53.45 USD H
53.45 US Dollars 53.45 USD
-US Dollar 53.45 53.45 USD J
+US Dollar 53.45 53.45 USD H
53.45 US Dollar 53.45 USD
US Dollars53.45 53.45 USD
-53.45US Dollars 53.45 USD CJ
+53.45US Dollars 53.45 USD H
US Dollar53.45 53.45 USD
US Dollat53.45 fail USD
-53.45US Dollar 53.45 USD CJ
-US Dollars (53.45) -53.45 USD CJ
+53.45US Dollar 53.45 USD H
+US Dollars (53.45) -53.45 USD H
(53.45) US Dollars -53.45 USD
(53.45) Euros -53.45 EUR
-US Dollar (53.45) -53.45 USD CJ
+US Dollar (53.45) -53.45 USD H
(53.45) US Dollar -53.45 USD
-US Dollars(53.45) -53.45 USD CJ
-(53.45)US Dollars -53.45 USD CJ
-US Dollar(53.45) -53.45 USD CJ
+US Dollars(53.45) -53.45 USD H
+(53.45)US Dollars -53.45 USD H
+US Dollar(53.45) -53.45 USD H
US Dollat(53.45) fail USD
-(53.45)US Dollar -53.45 USD CJ
+(53.45)US Dollar -53.45 USD H
test parse currency ISO negative
@@ -1070,30 +1097,30 @@ begin
parse output outputCurrency breaks
53.45 fail GBP
£53.45 53.45 GBP
-$53.45 fail USD J
+$53.45 53.45 USD C
53.45 USD 53.45 USD
53.45 GBP 53.45 GBP
-USD 53.45 53.45 USD J
-53.45USD 53.45 USD CJ
+USD 53.45 53.45 USD H
+53.45USD 53.45 USD H
USD53.45 53.45 USD
-7.92 USD -7.92 USD
-7.92 GBP -7.92 GBP
-7.926 USD -7.926 USD
-USD -7.926 -7.926 USD CJ
--7.92USD -7.92 USD CJ
-USD-7.92 -7.92 USD CJ
+USD -7.926 -7.926 USD H
+-7.92USD -7.92 USD H
+USD-7.92 -7.92 USD H
-8 USD -8 USD
67 USD 67 USD
-53.45$ fail USD
-US Dollars 53.45 53.45 USD J
+53.45$ 53.45 USD CH
+US Dollars 53.45 53.45 USD H
53.45 US Dollars 53.45 USD
-US Dollar 53.45 53.45 USD J
+US Dollar 53.45 53.45 USD H
53.45 US Dollar 53.45 USD
US Dollars53.45 53.45 USD
-53.45US Dollars 53.45 USD CJ
+53.45US Dollars 53.45 USD H
US Dollar53.45 53.45 USD
US Dollat53.45 fail USD
-53.45US Dollar 53.45 USD CJ
+53.45US Dollar 53.45 USD H
test parse currency long
@@ -1101,38 +1128,38 @@ set pattern 0.00 \u00a4\u00a4\u00a4;(#) \u00a4\u00a4\u00a4
set locale en_GB
begin
parse output outputCurrency breaks
-// J throws a NullPointerException on the first case
+// H throws a NullPointerException on the first case
53.45 fail GBP
£53.45 53.45 GBP
-$53.45 fail USD J
+$53.45 53.45 USD C
53.45 USD 53.45 USD
53.45 GBP 53.45 GBP
-USD 53.45 53.45 USD J
-53.45USD 53.45 USD CJ
+USD 53.45 53.45 USD H
+53.45USD 53.45 USD H
USD53.45 53.45 USD
(7.92) USD -7.92 USD
(7.92) GBP -7.92 GBP
(7.926) USD -7.926 USD
-(7.926 USD) -7.926 USD CJ
-(USD 7.926) -7.926 USD CJ
-USD (7.926) -7.926 USD CJ
-USD (7.92) -7.92 USD CJ
-(7.92)USD -7.92 USD CJ
-USD(7.92) -7.92 USD CJ
+(7.926 USD) -7.926 USD H
+(USD 7.926) -7.926 USD H
+USD (7.926) -7.926 USD H
+USD (7.92) -7.92 USD H
+(7.92)USD -7.92 USD H
+USD(7.92) -7.92 USD H
(8) USD -8 USD
--8 USD -8 USD C
+-8 USD -8 USD
67 USD 67 USD
-// J throws a NullPointerException on the next case
-53.45$ fail USD
-US Dollars 53.45 53.45 USD J
+// H throws a NullPointerException on the next case
+53.45$ 53.45 USD CH
+US Dollars 53.45 53.45 USD H
53.45 US Dollars 53.45 USD
-US Dollar 53.45 53.45 USD J
+US Dollar 53.45 53.45 USD H
53.45 US Dollar 53.45 USD
US Dollars53.45 53.45 USD
-53.45US Dollars 53.45 USD CJ
+53.45US Dollars 53.45 USD H
US Dollar53.45 53.45 USD
US Dollat53.45 fail USD
-53.45US Dollar 53.45 USD CJ
+53.45US Dollar 53.45 USD H
test parse currency short
@@ -1142,34 +1169,34 @@ begin
parse output outputCurrency breaks
53.45 fail GBP
£53.45 53.45 GBP
-$53.45 fail USD J
+$53.45 53.45 USD C
53.45 USD 53.45 USD
53.45 GBP 53.45 GBP
-USD 53.45 53.45 USD J
-53.45USD 53.45 USD CJ
+USD 53.45 53.45 USD H
+53.45USD 53.45 USD H
USD53.45 53.45 USD
(7.92) USD -7.92 USD
(7.92) GBP -7.92 GBP
(7.926) USD -7.926 USD
-(7.926 USD) -7.926 USD CJ
-(USD 7.926) -7.926 USD CJ
-USD (7.926) -7.926 USD CJ
-USD (7.92) -7.92 USD CJ
-(7.92)USD -7.92 USD CJ
-USD(7.92) -7.92 USD CJ
+(7.926 USD) -7.926 USD H
+(USD 7.926) -7.926 USD H
+USD (7.926) -7.926 USD H
+USD (7.92) -7.92 USD H
+(7.92)USD -7.92 USD H
+USD(7.92) -7.92 USD H
(8) USD -8 USD
--8 USD -8 USD C
+-8 USD -8 USD
67 USD 67 USD
-53.45$ fail USD
-US Dollars 53.45 53.45 USD J
+53.45$ 53.45 USD CH
+US Dollars 53.45 53.45 USD H
53.45 US Dollars 53.45 USD
-US Dollar 53.45 53.45 USD J
+US Dollar 53.45 53.45 USD H
53.45 US Dollar 53.45 USD
US Dollars53.45 53.45 USD
-53.45US Dollars 53.45 USD CJ
+53.45US Dollars 53.45 USD H
US Dollar53.45 53.45 USD
US Dollat53.45 fail USD
-53.45US Dollar 53.45 USD CJ
+53.45US Dollar 53.45 USD H
test parse currency short prefix
@@ -1179,34 +1206,34 @@ begin
parse output outputCurrency breaks
53.45 fail GBP
£53.45 53.45 GBP
-$53.45 fail USD J
-53.45 USD 53.45 USD C
-53.45 GBP 53.45 GBP C
-USD 53.45 53.45 USD J
-53.45USD 53.45 USD CJ
+$53.45 53.45 USD C
+53.45 USD 53.45 USD
+53.45 GBP 53.45 GBP
+USD 53.45 53.45 USD H
+53.45USD 53.45 USD H
USD53.45 53.45 USD
-// P fails these because '(' is an incomplete prefix.
-(7.92) USD -7.92 USD CJP
-(7.92) GBP -7.92 GBP CJP
-(7.926) USD -7.926 USD CJP
-(7.926 USD) -7.926 USD CJP
-(USD 7.926) -7.926 USD J
-USD (7.926) -7.926 USD CJP
-USD (7.92) -7.92 USD CJP
-(7.92)USD -7.92 USD CJP
-USD(7.92) -7.92 USD CJP
-(8) USD -8 USD CJP
--8 USD -8 USD C
-67 USD 67 USD C
-53.45$ fail USD
-US Dollars 53.45 53.45 USD J
+// C and P fail these because '(' is an incomplete prefix.
+(7.92) USD -7.92 USD CHJP
+(7.92) GBP -7.92 GBP CHJP
+(7.926) USD -7.926 USD CHJP
+(7.926 USD) -7.926 USD CHJP
+(USD 7.926) -7.926 USD H
+USD (7.926) -7.926 USD CHJP
+USD (7.92) -7.92 USD CHJP
+(7.92)USD -7.92 USD CHJP
+USD(7.92) -7.92 USD CHJP
+(8) USD -8 USD CHJP
+-8 USD -8 USD
+67 USD 67 USD
+53.45$ 53.45 USD CH
+US Dollars 53.45 53.45 USD H
53.45 US Dollars 53.45 USD
-US Dollar 53.45 53.45 USD J
+US Dollar 53.45 53.45 USD H
53.45 US Dollar 53.45 USD
US Dollars53.45 53.45 USD
-53.45US Dollars 53.45 USD CJ
+53.45US Dollars 53.45 USD H
US Dollar53.45 53.45 USD
-53.45US Dollar 53.45 USD CJ
+53.45US Dollar 53.45 USD H
test format foreign currency
set locale fa_IR
@@ -1225,10 +1252,10 @@ parse output outputCurrency breaks
\u0631\u06cc\u0627\u0644 \u06F1\u06F2\u06F3\u06F5 1235 IRR
IRR \u06F1\u06F2\u06F3\u06F5 1235 IRR
// P fails here because this currency name is in the Trie only, but it has the same prefix as the non-Trie currency
-\u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646 \u06F1\u06F2\u06F3\u06F5 1235 IRR P
+\u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646 \u06F1\u06F2\u06F3\u06F5 1235 IRR CJP
IRR 1235 1235 IRR
\u0631\u06cc\u0627\u0644 1235 1235 IRR
-\u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646 1235 1235 IRR P
+\u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646 1235 1235 IRR CJP
test parse foreign currency ISO
set pattern \u00a4\u00a4 0.00;\u00a4\u00a4 -#
@@ -1237,10 +1264,10 @@ begin
parse output outputCurrency breaks
\u0631\u06cc\u0627\u0644 \u06F1\u06F2\u06F3\u06F5 1235 IRR
IRR \u06F1\u06F2\u06F3\u06F5 1235 IRR
-\u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646 \u06F1\u06F2\u06F3\u06F5 1235 IRR P
+\u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646 \u06F1\u06F2\u06F3\u06F5 1235 IRR CJP
IRR 1235 1235 IRR
\u0631\u06cc\u0627\u0644 1235 1235 IRR
-\u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646 1235 1235 IRR P
+\u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646 1235 1235 IRR CJP
test parse foreign currency full
set pattern \u00a4\u00a4\u00a4 0.00;\u00a4\u00a4\u00a4 -#
@@ -1249,10 +1276,10 @@ begin
parse output outputCurrency breaks
\u0631\u06cc\u0627\u0644 \u06F1\u06F2\u06F3\u06F5 1235 IRR
IRR \u06F1\u06F2\u06F3\u06F5 1235 IRR
-\u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646 \u06F1\u06F2\u06F3\u06F5 1235 IRR P
+\u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646 \u06F1\u06F2\u06F3\u06F5 1235 IRR CJP
IRR 1235 1235 IRR
\u0631\u06cc\u0627\u0644 1235 1235 IRR
-\u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646 1235 1235 IRR P
+\u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646 1235 1235 IRR CJP
test parse currency with foreign symbols symbol english
set pattern \u00a4 0.00;\u00a4 (#)
@@ -1287,17 +1314,16 @@ Euros 7.82 7.82 EUR
test parse currency without currency mode
// Should accept a symbol associated with the currency specified by the API,
// but should not traverse the full currency data.
-// P always traverses full currency data.
set locale en_US
set pattern \u00a4#,##0.00
begin
parse currency output breaks
$52.41 USD 52.41
USD52.41 USD 52.41 K
-\u20ac52.41 USD fail P
-EUR52.41 USD fail P
-$52.41 EUR fail P
-USD52.41 EUR fail P
+\u20ac52.41 USD fail
+EUR52.41 USD fail
+$52.41 EUR fail
+USD52.41 EUR fail
\u20ac52.41 EUR 52.41 K
EUR52.41 EUR 52.41
@@ -1307,11 +1333,11 @@ set locale en_US
set lenient 0
begin
parse output outputCurrency breaks
-$53.45 53.45 USD P
+$53.45 53.45 USD CJP
53.45 USD 53.45 USD
USD 53.45 fail USD
53.45USD fail USD
-USD53.45 53.45 USD P
+USD53.45 53.45 USD CJP
(7.92) USD -7.92 USD
(7.92) EUR -7.92 EUR
(7.926) USD -7.926 USD
@@ -1322,16 +1348,16 @@ USD (7.92) fail USD
(7.92)USD fail USD
USD(7.92) fail USD
(8) USD -8 USD
--8 USD fail USD J
+-8 USD fail USD H
67 USD 67 USD
53.45$ fail USD
US Dollars 53.45 fail USD
53.45 US Dollars 53.45 USD
US Dollar 53.45 fail USD
53.45 US Dollar 53.45 USD
-US Dollars53.45 53.45 USD P
+US Dollars53.45 53.45 USD CJP
53.45US Dollars fail USD
-US Dollar53.45 53.45 USD P
+US Dollar53.45 53.45 USD CJP
US Dollat53.45 fail USD
53.45US Dollar fail USD
US Dollars (53.45) fail USD
@@ -1351,7 +1377,7 @@ set minFractionDigits 0
set maxFractionDigits 0
begin
format output breaks
--0.99 -0 JK
+-0.99 -0 HK
test parse decimalPatternMatchRequired
set locale en
@@ -1360,14 +1386,14 @@ begin
pattern parse output breaks
// K doesn't support this feature.
0 123 123
-0 123. fail CJK
-0 1.23 fail CJK
+0 123. fail HK
+0 1.23 fail HK
0 -513 -513
-0 -513. fail CJK
-0 -5.13 fail CJK
+0 -513. fail HK
+0 -5.13 fail HK
0.0 123 fail K
-0.0 123. 123 C
-0.0 1.23 1.23 C
+0.0 123. 123
+0.0 1.23 1.23
0.0 -513 fail K
0.0 -513. -513
0.0 -5.13 -5.13
@@ -1378,13 +1404,13 @@ set pattern #
begin
pattern parse output breaks
# -123 -123
-# - 123 -123 JK
-# -123 -123 JK
-# - 123 -123 JK
+# - 123 -123 HK
+# -123 -123 HK
+# - 123 -123 HK
# 123- 123
# 123 - 123
#;#- 123- -123
-#;#- 123 - -123 JK
+#;#- 123 - -123 HK
test parse case sensitive
set locale en
@@ -1395,22 +1421,23 @@ parse parseCaseSensitive output breaks
Aa1.23 1 1.23
Aa1.23 0 1.23
AA1.23 1 fail
-// J and K do not support case-insensitive parsing for prefix/suffix.
-// J supports it for the exponent separator, but not K.
-AA1.23 0 1.23 CJK
+// H and K do not support case-insensitive parsing for prefix/suffix.
+// H supports it for the exponent separator, but not K.
+AA1.23 0 1.23 HK
aa1.23 1 fail
-aa1.23 0 1.23 CJK
+aa1.23 0 1.23 HK
Aa1.23E3 1 1230
Aa1.23E3 0 1230
-Aa1.23e3 1 1.23 CJ
+Aa1.23e3 1 1.23 H
Aa1.23e3 0 1230 K
NaN 1 NaN K
NaN 0 NaN K
nan 1 fail
-nan 0 NaN CJK
+nan 0 NaN HK
test parse infinity and scientific notation overflow
set locale en
+set lenient 1
begin
parse output breaks
NaN NaN K
@@ -1422,12 +1449,13 @@ NaN NaN K
-1E-99999999999999 -0.0
1E2147483648 Inf K
1E2147483647 Inf K
-1E2147483646 1E2147483646
+// H, J and K get Infinity
+1E2147483646 1E+2147483646 HJK
1E-2147483649 0
1E-2147483648 0
-// P returns zero here
-1E-2147483647 1E-2147483647 P
-1E-2147483646 1E-2147483646
+// H and K return zero here
+1E-2147483647 1E-2147483647 HJK
+1E-2147483646 1E-2147483646 HJK
test format push limits
set locale en
@@ -1435,30 +1463,67 @@ set minFractionDigits 2
set roundingMode halfDown
begin
maxFractionDigits format output breaks
-// C has trouble formatting too many digits (#11318)
-100 987654321987654321 987654321987654321.00 C
-100 987654321.987654321 987654321.987654321 C
-100 9999999999999.9950000000001 9999999999999.9950000000001 C
-2 9999999999999.9950000000001 10000000000000.00 C
+100 987654321987654321 987654321987654321.00
+100 987654321.987654321 987654321.987654321
+100 9999999999999.9950000000001 9999999999999.9950000000001
+2 9999999999999.9950000000001 10000000000000.00
2 9999999.99499999 9999999.99
// K doesn't support halfDown rounding mode?
2 9999999.995 9999999.99 K
2 9999999.99500001 10000000.00
-100 56565656565656565656565656565656565656565656565656565656565656 56565656565656565656565656565656565656565656565656565656565656.00 C
-100 454545454545454545454545454545.454545454545454545454545454545 454545454545454545454545454545.454545454545454545454545454545 C
+100 56565656565656565656565656565656565656565656565656565656565656 56565656565656565656565656565656565656565656565656565656565656.00
+100 454545454545454545454545454545.454545454545454545454545454545 454545454545454545454545454545.454545454545454545454545454545
100 0.0000000000000000000123 0.0000000000000000000123
-100 -78787878787878787878787878787878 -78787878787878787878787878787878.00 C
-100 -8989898989898989898989.8989898989898989 -8989898989898989898989.8989898989898989 C
+100 -78787878787878787878787878787878 -78787878787878787878787878787878.00
+100 -8989898989898989898989.8989898989898989 -8989898989898989898989.8989898989898989
test ticket 11230
set locale en
-set pattern #,##0
begin
-parse output breaks
-// K and J return null; S, C, and P return 99
- 9 9 9 CJKP
-// K returns null
- 9 999 9999 K
+pattern lenient parse output breaks
+// Groups after the first group need 2 digits to be accepted.
+// JDK does not see space as grouping and parses most of these as 9.
+#,##0 1 9 9 9 H
+#,##0 1 9 99 999 K
+#,##0 1 9 999 9999 K
+#,##0 1 9 9 9 9 H
+#,##0 1 ,9 9
+#,##0 1 99,.0 99
+#,##0 1 9 9. 9 H
+#,##0 1 9 99. 999 K
+0 1 9 9 9
+0 1 9 99 9
+0 1 9 999 9
+0 1 9 9 9 9
+0 1 ,9 fail
+0 1 99,.0 99
+0 1 9 9. 9
+0 1 9 99. 9
+#,##0 0 9 9 fail K
+#,##0 0 9 99 fail K
+#,##0 0 9 999 9999 K
+#,##0 0 9 9 9 fail K
+#,##0 0 ,9 fail K
+#,##0 0 99,.0 fail K
+#,##0 0 9 9. fail K
+#,##0 0 9 99. fail K
+0 0 9 9 9
+0 0 9 99 9
+0 0 9 999 9
+0 0 9 9 9 9
+0 0 ,9 fail
+0 0 99,.0 99
+0 0 9 9. 9
+0 0 9 99. 9
+
+test more strict grouping parse
+set locale en
+set pattern #,##,##0
+begin
+lenient parse output breaks
+1 1,23,, 123
+0 9999, 9999
+0 1,23,, fail K
test parse ignorables
set locale ar
@@ -1471,47 +1536,47 @@ parse output breaks
x a‎b56c df 56
x a‎b56c df 56 K
x ab56c df 56 K
-x ab56c df 56 JK
+x ab56c df 56 HK
x ab56c df 56 K
-x ab56 56 JK
-x a b56 56 JK
-56cdf 56 JK
-56c df 56 JK
-56cd f 56 JK
-56c‎d‎f 56 JK
-56cdf 56 JK
-56c d‎f 56 JK
-56‎c df 56 JK
+x ab56 56 HK
+x a b56 56 HK
+56cdf 56 HK
+56c df 56 HK
+56cd f 56 HK
+56c‎d‎f 56 HK
+56cdf 56 HK
+56c d‎f 56 HK
+56‎c df 56 HK
y g‎h56i jk -56
y g‎h56i jk -56 K
y gh56i jk -56 K
-y gh56i jk -56 JK
+y gh56i jk -56 HK
y gh56i jk -56 K
-y gh56 -56 JK
-y g h56 -56 JK
+y gh56 -56 HK
+y g h56 -56 HK
// S stops parsing after the 'i' for these and returns -56
// C stops before the 'i' and gets 56
-56ijk -56 CJK
-56i jk -56 CJK
-56ij k -56 CJK
-56i‎j‎k -56 CJK
-56ijk -56 CJK
-56i j‎k -56 CJK
-56‎i jk -56 CJK
-// S and C get 56 (accepts ' ' gs grouping); J and K get null
-5 6 fail CP
-5‎6 5 JK
+56ijk -56 HK
+56i jk -56 HK
+56ij k -56 HK
+56i‎j‎k -56 HK
+56ijk -56 HK
+56i j‎k -56 HK
+56‎i jk -56 HK
+// S and C get 56 (accepts ' ' gs grouping); H and K get null
+5 6 fail CJP
+5‎6 5 HK
test parse spaces in grouping
// This test gives the ideal behavior of these cases, which
// none of the implementations currently support.
+// Similar to the test above for ticket #11230
set locale en
set pattern #,##0
begin
parse output breaks
-// C, J, S, and P get "12" here
-1 2 1 CJP
-1 23 1 CJP
+1 2 1 H
+1 23 123 K
// K gets 1 here; doesn't pick up the grouping separator
1 234 1234 K
@@ -1524,9 +1589,9 @@ set maxSigDigits 2
begin
format output breaks
// C and J get "1"
-// Q gets "1.0"
+// P gets "1.0"
// K gets "1.1" (??)
-0.975 0.98 CJKQ
+0.975 0.98 CHJKP
test lenient parse currency match
// This test is for #13112
@@ -1534,8 +1599,8 @@ set locale en
set pattern ¤#,##0.00
begin
parse output breaks
-// J and K get null
-1.23!@#$%^ 1.23 JK
+// H and K get null
+1.23!@#$%^ 1.23 HK
test percentage parsing multiplier
// This test is for #13114
@@ -1544,9 +1609,9 @@ set pattern 0%
begin
parse output breaks
55% 0.55
-// J and K get null
-// P requires the symbol to be present and gets 55
-55 0.55 JKP
+// H and K get null
+// C and P scale by 100 even if the percent sign is not present
+55 0.55 HK
test trailing grouping separators in pattern
// This test is for #13115
@@ -1565,8 +1630,8 @@ begin
pattern format output breaks
0 -15 -15
0; -15 -15
-// C, J, and K still prepend a '-' even though the pattern says otherwise
-0;0 -15 15 CJK
+// H and K still prepend a '-' even though the pattern says otherwise
+0;0 -15 15 HK
test percentage multiplier parsing
// This test is for #13129
@@ -1574,7 +1639,7 @@ set locale en
set pattern 0%
begin
parse output breaks
-9223372036854775807% 92233720368547758.07
+9223372036854775807% 92233720368547758.07 K
test sign always shown
set locale en
@@ -1582,9 +1647,9 @@ set pattern 0
set signAlwaysShown 1
begin
format output breaks
-// C, J and K do not support this feature
-42 +42 CJK
-0 +0 CJK
+// H and K do not support this feature
+42 +42 HK
+0 +0 HK
-42 -42
test parse strict with plus sign
@@ -1595,15 +1660,71 @@ begin
lenient parse output breaks
1 42 42
1 -42 -42
-1 +42 42 CJK
+1 +42 42 HK
1 0 0
-1 +0 0 CJK
-0 42 fail CJK
+1 +0 0 HK
+0 42 fail HK
0 -42 -42
-0 +42 42 CJK
-0 0 fail CJK
-0 +0 0 CJK
+0 +42 42 HK
+0 0 fail HK
+0 +0 0 HK
+test parse with scientific-separator-affix overlap
+set locale en
+begin
+pattern lenient parse output breaks
+0E0','x 1 5E3,x 5000
+0E0','x 0 5E3,x 5000
+0E0'.'x 1 5E3.x 5000
+0E0'.'x 0 5E3.x 5000
+
+test parse() lowercase currency
+set locale en
+set pattern ¤¤0
+set currency USD
+begin
+parse output breaks
+USD123 123
+USD 123 123 HK
+usd123 123 K
+usd 123 123 HK
+Usd123 123 K
+Usd 123 123 HK
+// US$ is not used for US dollars in en-US
+US$123 fail H
+us$123 fail
+Us$123 fail
+123 US dollars 123 K
+123 US DOLLARS 123 K
+123 us dollars 123 K
+// Foreign currencies are not accepted in .parse()
+GBP123 fail
+gbp123 fail
+British pounds 123 fail
+british POUNDS 123 fail
+
+test parseCurrency() lowercase currency
+set locale en
+set pattern ¤¤0
+set currency USD
+begin
+parse output outputCurrency breaks
+USD123 123 USD
+USD 123 123 USD H
+usd123 123 USD
+usd 123 123 USD H
+Usd123 123 USD
+Usd 123 123 USD H
+US$123 123 USD C
+us$123 fail fail
+Us$123 fail fail
+123 US dollars 123 USD
+123 US DOLLARS 123 USD
+123 us dollars 123 USD
+GBP123 123 GBP
+gbp123 123 GBP C
+British pounds 123 123 GBP H
+british POUNDS 123 123 GBP H
diff --git a/Build/source/libs/icu/icu-src/source/test/testdata/rbbitst.txt b/Build/source/libs/icu/icu-src/source/test/testdata/rbbitst.txt
index 761b3e01b5b..63ba172233d 100644
--- a/Build/source/libs/icu/icu-src/source/test/testdata/rbbitst.txt
+++ b/Build/source/libs/icu/icu-src/source/test/testdata/rbbitst.txt
@@ -39,7 +39,9 @@
# Temp debugging tests
#
-
+<word>
+<data>•
+•</data>
## FILTERED BREAK TESTS
@@ -184,7 +186,7 @@
#
<word>
-<data>•This<200> •is<200> •a<200> •word<200> •break<200>.• • •Isn't<200> •it<200>?• •2.25<100></data>
+<data>•This<200> •is<200> •a<200> •word<200> •break<200>.• •Isn't<200> •it<200>?• •2.25<100></data>
@@ -195,7 +197,7 @@
<data>• •\u0939\u093f\u0928\u094d\u200d\u0926\u0940<200> •\u0939\u0948<200> •\u0905\u093e\u092a<200> •\u0938\u093f\u0916\u094b\u0917\u0947<200>?•</data>
#Hindi Numbers
-<data>• •\u0968\u0966.\u0969\u096f<100> •\u0967\u0966\u0966.\u0966\u0966<100> •\N{RUPEE SIGN}•\u0967,\u0967\u0966\u0966.\u0966\u0966<100> • •\u0905\u092e\u091c<200>\n•</data>
+<data>• •\u0968\u0966.\u0969\u096f<100> •\u0967\u0966\u0966.\u0966\u0966<100> •\N{RUPEE SIGN}•\u0967,\u0967\u0966\u0966.\u0966\u0966<100> •\u0905\u092e\u091c<200>\n•</data>
<data>•\u0938\u094d\u200d\u0935\u0924\u0902deadTA\u0930<200>\r•It's<200> •$•30.10<100> •12,34<100>¢•£•¤•¥•alpha\u05f3beta\u05f4gamma<200> •</data>
@@ -395,6 +397,10 @@
<data><0>より<400>詳しい<400>こと<400>を<400>お<400>知<400>り<400>に<400>なり<400>たい<400>方<400>は<400>、<0>Glossary<200>,<0> <0>\
Technical<200> <0>Introduction<200> <0>および<400> <0>Useful<200> <0>Resources<200>を<400>ご<400>参照<400>くだ<400>さい<400>。<0></data>
+#
+# Bug ICU-13334 Report of different boundaries between Windows and Linux.
+#
+<data><0>丙酮<400></data>
########################################################################################
#
@@ -762,6 +768,16 @@ Calls to xxx will return an implementor of this interface. \u2029•</data>
<line>
<data>•</data>
+# Bug #13664 Mixed Thai & English text had different boundaries between forward & reverse.
+#
+<line>
+<data>•Northern •Thailand •is •a •mountainous •area. •Parallel •mountain •ranges •extend •from •the •\
+Daen •Lao •Range •(ทิว•เขา•แดน•ลาว), •in •the •southern •region •of •the •Shan •Hills, •in •a •\
+north/•south •direction, •the •Dawna •Range •(ทิว•เขา•ดอย•มอน•กุ•จู) •forming •the •western •border •of •Thailand •\
+between •Mae •Hong •Son •and •the •Salween •River, •the •Thanon •Thong •Chai •Range •(เทือก•เขา•ถนน•ธงชัย), •\
+the •Khun •Tan •Range •(ดอย•ขุน•ตาน), •the •Phi •Pan •Nam •Range •(ทิว•เขา•ผี•ปัน•น้ำ), •as •well •as •the •western •\
+part •of •the •Luang •Prabang •Range •(ทิว•เขา•หลวง•พระ•บาง).•</data>
+
########################################################################################
#
@@ -1070,23 +1086,21 @@ Bangkok)•</data>
# Finnish line breaking
#
# These rules deal with hyphens when there is a space on the leading side.
-# There should be a break opportunity between the space and the hyphen, and not after the hyphen.
+# When followed by a letter, there should be a break opportunity between
+# the space and the hyphen, and not after the hyphen.
# See CLDR ticket 3029.
# See ICU ticket 8151
+# As of ICU 63, the Finnish tailoring behavior is moved to root.
<locale root>
<line>
-<data>•abc •- •def •abc •-•def •abc- •def •abc-•def•</data> # With ASCII hyphen
-<data>•abc •‐ •def •abc •‐•def •abc‐ •def •abc‐•def•</data> # With Unicode u2010 hyphen
+<data>•abc •- •def •abc •-def •abc- •def •abc-•def•</data> # With ASCII hyphen
+<data>•abc •‐ •def •abc •‐def •abc‐ •def •abc‐•def•</data> # With Unicode u2010 hyphen
<locale fi>
<line>
-# TODO: problems with Finnish line break rules cause these two lines to fail.
-#<data>•abc •- •def •abc •-def •abc- •def •abc-•def•</data> # With ASCII hyphen
-#<data>•abc •‐ •def •abc •‐def •abc‐ •def •abc‐•def•</data> # With Unicode u2010 hyphen
-
-<data>•abc •- •def •abc •-def •abc- •def •</data> # With ASCII hyphen
-<data>•abc •‐ •def •abc •‐def •abc‐ •def •</data> # With Unicode u2010 hyphen
+<data>•abc •- •def •abc •-def •abc- •def •abc-•def•</data> # With ASCII hyphen
+<data>•abc •‐ •def •abc •‐def •abc‐ •def •abc‐•def•</data> # With Unicode u2010 hyphen
# Test for #10176 (in fi)
<line>
@@ -1143,7 +1157,7 @@ Bangkok)•</data>
# woman zwj woman zwj girl zwj girl, woman/fitz-1-2 zwj woman/fitz-4 zwj boy/fitz-6
<data>•\U0001F469\u200D\U0001F469\u200D\U0001F467\u200D\U0001F467•\U0001F469\U0001F3FB\u200D\U0001F469\U0001F3FD\u200D\U0001F466\U0001F3FF•</data>
# woman zwj baby/fitz-3, older_woman/fitz-5, runner/fitz-4, raised_fist/fitz-3, fuel_pump, fitz-3
-<data>•\U0001F469\u200D\U0001F476\U0001F3FC•\U0001F475\U0001F3FE•\U0001F3C3\U0001F3FD•\u270A\U0001F3FC•\u26FD•\U0001F3FC•</data>
+#TODO: <data>•\U0001F469\u200D\U0001F476\U0001F3FC•\U0001F475\U0001F3FE•\U0001F3C3\U0001F3FD•\u270A\U0001F3FC•\u26FD•\U0001F3FC•</data>
# man zwj hvy_blk_heart zwj man, woman, man zwj hvy_blk_heart/evar zwj man, woman
<data>•\U0001F468\u200D\u2764\u200D\U0001F468•\U0001F469•\U0001F468\u200D\u2764\uFE0F\u200D\U0001F468•\U0001F469•</data>
# woman zwj hvy_blk_heart/evar zwj kiss_mark zwj woman, sleuth/fitz-4, horse_racing/fitz-5
@@ -1162,7 +1176,7 @@ Bangkok)•</data>
<data>•\U0001F3C3\u200D\u2640\uFE0F•\U0001F3C3\u200D\u2640•\U0001F3C3\U0001F3FD\u200D\u2640\uFE0F•\U0001F3C3\U0001F3FD\u200D\u2640•\u0020•</data>
# 9.0 + professions
# black heart, fitz 4, squid, fitz4, man dancing /fitz4, mother xmas /fitz4
-<data>•\U0001F5A4•\U0001F3FD•\U0001F991•\U0001F3FD•\U0001F57A\U0001F3FD•\U0001F936\U0001F3FD•\u0020•</data>
+#TODO: <data>•\U0001F5A4•\U0001F3FD•\U0001F991•\U0001F3FD•\U0001F57A\U0001F3FD•\U0001F936\U0001F3FD•\u0020•</data>
# facepalm, facepalm / fitz4, facepalm + woman +var, facepalm + woman -var, facepalm/fitz4 + woman +var, facepalm/fitz4 + woman -var
<data>•\U0001F926•\U0001F926\U0001F3FD•\U0001F926\u200D\u2640\uFE0F•\U0001F926\u200D\u2640•\U0001F926\U0001F3FD\u200D\u2640\uFE0F•\U0001F926\U0001F3FD\u200D\u2640•\u0020•</data>
# handball, handball / fitz4, handball + man +var, handball + man -var, handball/fitz4 + man +var, handball/fitz4 + man -var
@@ -1218,7 +1232,7 @@ Bangkok)•</data>
# woman zwj woman zwj girl zwj girl, woman/fitz-1-2 zwj woman/fitz-4 zwj boy/fitz-6
<data>•\U0001F469\u200D\U0001F469\u200D\U0001F467\u200D\U0001F467•\U0001F469\U0001F3FB\u200D\U0001F469\U0001F3FD\u200D\U0001F466\U0001F3FF•</data>
# woman zwj baby/fitz-3, older_woman/fitz-5, runner/fitz-4, raised_fist/fitz-3, fuel_pump, fitz-3
-<data>•\U0001F469\u200D\U0001F476\U0001F3FC•\U0001F475\U0001F3FE•\U0001F3C3\U0001F3FD•\u270A\U0001F3FC•\u26FD•\U0001F3FC•</data>
+#TODO: <data>•\U0001F469\u200D\U0001F476\U0001F3FC•\U0001F475\U0001F3FE•\U0001F3C3\U0001F3FD•\u270A\U0001F3FC•\u26FD•\U0001F3FC•</data>
# man zwj hvy_blk_heart zwj man, woman, man zwj hvy_blk_heart/evar zwj man, woman
<data>•\U0001F468\u200D\u2764\u200D\U0001F468•\U0001F469•\U0001F468\u200D\u2764\uFE0F\u200D\U0001F468•\U0001F469•</data>
# woman zwj hvy_blk_heart/evar zwj kiss_mark zwj woman, sleuth/fitz-4, horse_racing/fitz-5
@@ -1237,7 +1251,7 @@ Bangkok)•</data>
<data>•\U0001F3C3\u200D\u2640\uFE0F•\U0001F3C3\u200D\u2640•\U0001F3C3\U0001F3FD\u200D\u2640\uFE0F•\U0001F3C3\U0001F3FD\u200D\u2640•\u0020•</data>
# 9.0 + professions
# black heart, fitz 4, squid, fitz4, man dancing /fitz4, mother xmas /fitz4
-<data>•\U0001F5A4•\U0001F3FD•\U0001F991•\U0001F3FD•\U0001F57A\U0001F3FD•\U0001F936\U0001F3FD•\u0020•</data>
+#TODO: <data>•\U0001F5A4•\U0001F3FD•\U0001F991•\U0001F3FD•\U0001F57A\U0001F3FD•\U0001F936\U0001F3FD•\u0020•</data>
# facepalm, facepalm / fitz4, facepalm + woman +evar, facepalm + woman -evar, facepalm/fitz4 + woman +evar, facepalm/fitz4 + woman -evar
<data>•\U0001F926•\U0001F926\U0001F3FD•\U0001F926\u200D\u2640\uFE0F•\U0001F926\u200D\u2640•\U0001F926\U0001F3FD\u200D\u2640\uFE0F•\U0001F926\U0001F3FD\u200D\u2640•\u0020•</data>
# handball, handball / fitz4, handball + man +evar, handball + man -evar, handball/fitz4 + man +evar, handball/fitz4 + man -evar
@@ -1370,7 +1384,7 @@ Bangkok)•</data>
<rules>
!!forward;
Hello\ World;
-!!reverse;
+!!safe_reverse;
.*;
</rules>
<data>•Hello World•</data>
@@ -1379,7 +1393,7 @@ Bangkok)•</data>
!!quoted_literals_only;
!!forward;
Hello\ World;
-!!reverse;
+!!safe_reverse;
.*;
</badrules>
@@ -1387,7 +1401,7 @@ Bangkok)•</data>
!!quoted_literals_only;
!!forward;
'Hello World';
-!!reverse;
+!!safe_reverse;
.*;
</rules>
<data>•Hello World•</data>
@@ -1399,7 +1413,7 @@ Bangkok)•</data>
<rules>
!!forward;
.;
-!!reverse;
+!!safe_reverse;
.*;
</rules>
<data>•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•a•</data>
@@ -1436,17 +1450,17 @@ Bangkok)•</data>
<word>
# Burmese
<data>•အ<200>လော<200>င္<200>မ<200>င္<200>တရား<200>
-• • • • • •မဟာ<200>ဓမ္မရာဇာ<200>မိ<200>ပတိ<200>လ<200>က္<200>ထ<200>က္<200>တ္<200>ဝ<200>င္<200> •အ<200>င္<200>ဝ<200>နေ<200>ပ္<200>ရ<200>ည္<200>တော္<200>က္<200>ရီး<200>သ<200>ည္<200> •မ<200>င္<200>ရိ<200>မ္<200>မ<200>သ<200>က္<200>ဖ္<200>ရ<200>စ္<200>နေ<200>သ<200>ည္<200>။• •မဏိ<200>ပူ<200>ရ<200> •က<200>သ<200>ည္<200>မ္<200>ယား<200>က<200> •အ<200>င္<200>ဝ<200>နေ<200>ပ္<200>ရ<200>ည္<200>တော္<200>၏• •မ္<200>ရော<200>က္<200>ဘ<200>က္<200>တ<200>လ္<200>ဝ္<200>ဟား<200>ကုိ<200> •တုိ<200>က္<200>ခုိ<200>က္<200>ဖ္<200>ယ<200>က္<200>ဆီး<200>သ<200>ည္<200>။• •အော<200>က္<200>မ္<200>ရ<200>န္<200>မာ<200>နုိ<200>င္<200>ငံ<200> •ဟံ<200>သာ<200>ဝ<200>တီ<200>သား<200>တုိ့<200>က<200>လ<200>ည္<200> •ပု<200>န္<200>က<200>န္<200>သ<200>ည္<200>။• •မတ္တ<200>ရာ<200>အု<200>တ္<200>ဖုိ<200>ရ္<200>ဟိ<200> •က္<200>ဝေ့<200>ရ္<200>ဟ<200>မ္<200>မ္<200>ယား<200>က<200>လ<200>ည္<200> •ထ<200>က္<200>ရ္<200>ဝ<200>သ<200>ည္<200>။•
+• •မဟာ<200>ဓမ္မရာဇာ<200>မိ<200>ပတိ<200>လ<200>က္<200>ထ<200>က္<200>တ္<200>ဝ<200>င္<200> •အ<200>င္<200>ဝ<200>နေ<200>ပ္<200>ရ<200>ည္<200>တော္<200>က္<200>ရီး<200>သ<200>ည္<200> •မ<200>င္<200>ရိ<200>မ္<200>မ<200>သ<200>က္<200>ဖ္<200>ရ<200>စ္<200>နေ<200>သ<200>ည္<200>။• •မဏိ<200>ပူ<200>ရ<200> •က<200>သ<200>ည္<200>မ္<200>ယား<200>က<200> •အ<200>င္<200>ဝ<200>နေ<200>ပ္<200>ရ<200>ည္<200>တော္<200>၏• •မ္<200>ရော<200>က္<200>ဘ<200>က္<200>တ<200>လ္<200>ဝ္<200>ဟား<200>ကုိ<200> •တုိ<200>က္<200>ခုိ<200>က္<200>ဖ္<200>ယ<200>က္<200>ဆီး<200>သ<200>ည္<200>။• •အော<200>က္<200>မ္<200>ရ<200>န္<200>မာ<200>နုိ<200>င္<200>ငံ<200> •ဟံ<200>သာ<200>ဝ<200>တီ<200>သား<200>တုိ့<200>က<200>လ<200>ည္<200> •ပု<200>န္<200>က<200>န္<200>သ<200>ည္<200>။• •မတ္တ<200>ရာ<200>အု<200>တ္<200>ဖုိ<200>ရ္<200>ဟိ<200> •က္<200>ဝေ့<200>ရ္<200>ဟ<200>မ္<200>မ္<200>ယား<200>က<200>လ<200>ည္<200> •ထ<200>က္<200>ရ္<200>ဝ<200>သ<200>ည္<200>။•
-• • • • •ထုိ<200>အ<200>ခ္<200>ယိ<200>န္<200>တ္<200>ဝ<200>င္<200> •မု<200>ဆုိး<200>ဖုိ<200>ရ္<200>ဝာ<200>သူ<200>က္<200>ရီး<200> •အော<200>င္<200>ဇေ<200>ယ္<200>ယ<200>သ<200>ည္<200> •မိမိ<200>၏•ရ္<200>ဝာ<200>ကုိ<200> •လုံ<200>ခ္<200>ရုံ<200>အော<200>င္<200>ထ<200>န္<200>လုံး<200>တ<200>ပ္<200>မ္<200>ယား<200>ကာ<200>ရ<200>သ<200>ည္<200>။• •အနီး<200>အ<200>ပား<200> •က္<200>ယေး<200>ရ္<200>ဝာ<200> •လေး<200>ဆ<200>ယ့္<200>ခ္<200>ရော<200>က္<200>ရ္<200>ဝာ<200>ကုိ<200> •သိ<200>မ္း<200>သ္<200>ဝ<200>င္<200>ထား<200>သ<200>ည္<200>။• •မ<200>က္<200>ရာ<200>မီ<200>ပ<200>င္<200> •အ<200>င္<200>ဝ<200>နေ<200>ပ္<200>ရ<200>ည္<200>တော္<200>က္<200>ရီး<200>သ<200>ည္<200> •ဟံ<200>သာ<200>ဝ<200>တီ<200>တ<200>ပ္<200>မ္<200>ယား<200> •လ<200>က္<200>တ္<200>ဝ<200>င္<200>သ<200>က္<200>ဆ<200>င္<200>ရ<200>တော့<200>သ<200>ည္<200>။•
+• •ထုိ<200>အ<200>ခ္<200>ယိ<200>န္<200>တ္<200>ဝ<200>င္<200> •မု<200>ဆုိး<200>ဖုိ<200>ရ္<200>ဝာ<200>သူ<200>က္<200>ရီး<200> •အော<200>င္<200>ဇေ<200>ယ္<200>ယ<200>သ<200>ည္<200> •မိမိ<200>၏•ရ္<200>ဝာ<200>ကုိ<200> •လုံ<200>ခ္<200>ရုံ<200>အော<200>င္<200>ထ<200>န္<200>လုံး<200>တ<200>ပ္<200>မ္<200>ယား<200>ကာ<200>ရ<200>သ<200>ည္<200>။• •အနီး<200>အ<200>ပား<200> •က္<200>ယေး<200>ရ္<200>ဝာ<200> •လေး<200>ဆ<200>ယ့္<200>ခ္<200>ရော<200>က္<200>ရ္<200>ဝာ<200>ကုိ<200> •သိ<200>မ္း<200>သ္<200>ဝ<200>င္<200>ထား<200>သ<200>ည္<200>။• •မ<200>က္<200>ရာ<200>မီ<200>ပ<200>င္<200> •အ<200>င္<200>ဝ<200>နေ<200>ပ္<200>ရ<200>ည္<200>တော္<200>က္<200>ရီး<200>သ<200>ည္<200> •ဟံ<200>သာ<200>ဝ<200>တီ<200>တ<200>ပ္<200>မ္<200>ယား<200> •လ<200>က္<200>တ္<200>ဝ<200>င္<200>သ<200>က္<200>ဆ<200>င္<200>ရ<200>တော့<200>သ<200>ည္<200>။•
-• • • • •အ<200>င္<200>ဝ<200>ကုိ<200> •သိ<200>မ္<200>ပုိ<200>က္<200>ပ္<200>ရီး<200>သော<200> •ဟံ<200>သာ<200>ဝ<200>တီ<200>တ<200>ပ္<200>မ္<200>ယား<200>သ<200>ည္<200> •မ္<200>ရော<200>က္<200>ဘ<200>က္<200>တ<200>လ္<200>ဝ္<200>ဟား<200>က္<200>ယေး<200>ရ္<200>ဝာ<200>မ္<200>ယား<200>ကုိ<200> •သစ္စာ<200>ခံ<200>ခုိ<200>င္<200>ရ<200>န္<200> •လာ<200>က္<200>ရ<200>ရာ<200> •မု<200>ဆုိး<200>ဖုိ<200>ရ္<200>ဝာ<200>သုိ့<200> •ရော<200>က္<200>ရ္<200>ဟိ<200>လာ<200>သ<200>ည္<200>။• •တ<200>ခ္<200>ယိ<200>န္<200>တ<200>ည္<200>မ္<200>ဟာ<200>ပ<200>င္<200> •က္<200>ဝေ့<200>ရ္<200>ဟ<200>မ္<200>မ္<200>ယား<200>က<200>လ<200>ည္<200> •သစ္စာ<200>ခံ<200>ခုိ<200>င္<200>ရ<200>န္<200> •ရော<200>က္<200>ရ္<200>ဟိ<200>လာ<200>သ<200>ည္<200>။• •ဦး<200>အော<200>င္<200>ဇေ<200>ယ္<200>ယ<200>သ<200>ည္<200> •အ<200>ဖ္<200>ဝဲ့<200>န္<200>ဟ<200>စ္<200>ဖ္<200>ဝဲ့<200>ကုိ<200> •ခ္<200>ရေ<200>ငံ<200>စ္<200>ဝာ<200> •ဆ<200>က္<200>ဆံ<200>သ<200>ည္<200>။• •မ<200>ည္<200>သူ့<200>သ<200>စ္<200>စာ<200>ကုိ<200>မ္<200>ယ္<200>ဟ<200> •ခံ<200>ယူ<200>ခ္<200>ရ<200>င္<200>မ<200>ပ္<200>ရု<200>ပေ<200>။• •ဟံ<200>သာ<200>ဝ<200>တီ<200>တ<200>ပ္<200>ဖ္<200>ဝဲ့<200>ကုိ<200> •အ<200>ပ္<200>ရ<200>န္<200>ခ<200>ရီး<200>တ္<200>ဝ<200>င္<200> •လ<200>မ္<200>မ္<200>ဟ<200>ဖ္<200>ရ<200>တ္<200>၍• •တုိ<200>က္<200>ခုိ<200>က္<200>သ<200>ည္<200>။• •ဟံ<200>သာ<200>ဝ<200>တီ<200>တ<200>ပ္<200>ဖ္<200>ဝဲ့<200>မ္<200>ယား<200> •အထိ<200>အ<200>ခုိ<200>က္<200>အ<200>က္<200>ယ<200>အ<200>ဆုံး<200>မ္<200>ယား<200>စ္<200>ဝာ<200>ဖ္<200>ရ<200>င္<200> •ပ္<200>ရ<200>န္<200>ရ<200>သ<200>ည္<200>။•
+• •အ<200>င္<200>ဝ<200>ကုိ<200> •သိ<200>မ္<200>ပုိ<200>က္<200>ပ္<200>ရီး<200>သော<200> •ဟံ<200>သာ<200>ဝ<200>တီ<200>တ<200>ပ္<200>မ္<200>ယား<200>သ<200>ည္<200> •မ္<200>ရော<200>က္<200>ဘ<200>က္<200>တ<200>လ္<200>ဝ္<200>ဟား<200>က္<200>ယေး<200>ရ္<200>ဝာ<200>မ္<200>ယား<200>ကုိ<200> •သစ္စာ<200>ခံ<200>ခုိ<200>င္<200>ရ<200>န္<200> •လာ<200>က္<200>ရ<200>ရာ<200> •မု<200>ဆုိး<200>ဖုိ<200>ရ္<200>ဝာ<200>သုိ့<200> •ရော<200>က္<200>ရ္<200>ဟိ<200>လာ<200>သ<200>ည္<200>။• •တ<200>ခ္<200>ယိ<200>န္<200>တ<200>ည္<200>မ္<200>ဟာ<200>ပ<200>င္<200> •က္<200>ဝေ့<200>ရ္<200>ဟ<200>မ္<200>မ္<200>ယား<200>က<200>လ<200>ည္<200> •သစ္စာ<200>ခံ<200>ခုိ<200>င္<200>ရ<200>န္<200> •ရော<200>က္<200>ရ္<200>ဟိ<200>လာ<200>သ<200>ည္<200>။• •ဦး<200>အော<200>င္<200>ဇေ<200>ယ္<200>ယ<200>သ<200>ည္<200> •အ<200>ဖ္<200>ဝဲ့<200>န္<200>ဟ<200>စ္<200>ဖ္<200>ဝဲ့<200>ကုိ<200> •ခ္<200>ရေ<200>ငံ<200>စ္<200>ဝာ<200> •ဆ<200>က္<200>ဆံ<200>သ<200>ည္<200>။• •မ<200>ည္<200>သူ့<200>သ<200>စ္<200>စာ<200>ကုိ<200>မ္<200>ယ္<200>ဟ<200> •ခံ<200>ယူ<200>ခ္<200>ရ<200>င္<200>မ<200>ပ္<200>ရု<200>ပေ<200>။• •ဟံ<200>သာ<200>ဝ<200>တီ<200>တ<200>ပ္<200>ဖ္<200>ဝဲ့<200>ကုိ<200> •အ<200>ပ္<200>ရ<200>န္<200>ခ<200>ရီး<200>တ္<200>ဝ<200>င္<200> •လ<200>မ္<200>မ္<200>ဟ<200>ဖ္<200>ရ<200>တ္<200>၍• •တုိ<200>က္<200>ခုိ<200>က္<200>သ<200>ည္<200>။• •ဟံ<200>သာ<200>ဝ<200>တီ<200>တ<200>ပ္<200>ဖ္<200>ဝဲ့<200>မ္<200>ယား<200> •အထိ<200>အ<200>ခုိ<200>က္<200>အ<200>က္<200>ယ<200>အ<200>ဆုံး<200>မ္<200>ယား<200>စ္<200>ဝာ<200>ဖ္<200>ရ<200>င္<200> •ပ္<200>ရ<200>န္<200>ရ<200>သ<200>ည္<200>။•
-• • • • •ဟံ<200>သာ<200>ဝ<200>တီ<200>တ<200>ပ္<200>မ္<200>ယား<200>သ<200>ည္<200> •မု<200>ဆုိး<200>ဖုိ<200>ရ္<200>ဝာ<200>ကုိ<200> •လာ<200>ရော<200>က္<200>တုိ<200>က္<200>ခုိ<200>က္<200>က္<200>ရ<200>ပ္<200>ရ<200>န္<200>သ<200>ည္<200>။• •ဦး<200>အော<200>င္<200>ဇေ<200>ယ္<200>ယ<200>သ<200>ည္<200> •သ္<200>ဝေး<200>သော<200>က္<200>ရဲ<200>ဘော္<200> •ခ္<200>ရော<200>က္<200>က္<200>ယိ<200>ပ္<200>ရ္<200>ဟ<200>စ္<200>ယော<200>က္<200>န္<200>ဟ<200>င္<200>အတူ<200> •ဦးစီး<200>ကာ<200>အော<200>င္<200>မ္<200>ရ<200>င္<200>စ္<200>ဝာ<200>ခု<200>ခံ<200>တ္<200>ဝ<200>န္<200>လ္<200>ဟ<200>န္<200>နုိ<200>င္<200>ခဲ့<200>သ<200>ည္<200>။• •ထုိ့<200>နော<200>က္<200> •ဦး<200>အော<200>င္<200>ဇေ<200>ယ္<200>ယ<200>သ<200>ည္<200> •မ္<200>ရော<200>က္<200>ဘ<200>က္<200>တ<200>လ္<200>ဝ္<200>ဟား<200>ရ္<200>ဟိ<200> •ရ္<200>ဟ<200>မ္<200>မ္<200>ယား<200>န္<200>ဟ<200>င္<200> •မ္<200>ရ<200>န္<200>မာ<200>မ္<200>ယား<200>ကုိ<200>လ<200>ည္<200> •ဆ<200>က္<200>သ္<200>ဝ<200>ယ္<200>စ<200>ည္<200>ရုံး<200>နုိ<200>င္<200>ခဲ့<200>သ<200>ည္<200>။• •ဤ<200>သုိ့<200>ဖ္<200>ရ<200>င္<200> •ဦး<200>အော<200>င္<200>ဇေ<200>ယ္<200>ယ<200>၏• •အ<200>ရ္<200>ဟိ<200>န္<200>အ<200>ဝာ<200> •မ္<200>ရ<200>င္<200>မား<200>လာ<200>လေ<200>သ<200>ည္<200>။•
+• •ဟံ<200>သာ<200>ဝ<200>တီ<200>တ<200>ပ္<200>မ္<200>ယား<200>သ<200>ည္<200> •မု<200>ဆုိး<200>ဖုိ<200>ရ္<200>ဝာ<200>ကုိ<200> •လာ<200>ရော<200>က္<200>တုိ<200>က္<200>ခုိ<200>က္<200>က္<200>ရ<200>ပ္<200>ရ<200>န္<200>သ<200>ည္<200>။• •ဦး<200>အော<200>င္<200>ဇေ<200>ယ္<200>ယ<200>သ<200>ည္<200> •သ္<200>ဝေး<200>သော<200>က္<200>ရဲ<200>ဘော္<200> •ခ္<200>ရော<200>က္<200>က္<200>ယိ<200>ပ္<200>ရ္<200>ဟ<200>စ္<200>ယော<200>က္<200>န္<200>ဟ<200>င္<200>အတူ<200> •ဦးစီး<200>ကာ<200>အော<200>င္<200>မ္<200>ရ<200>င္<200>စ္<200>ဝာ<200>ခု<200>ခံ<200>တ္<200>ဝ<200>န္<200>လ္<200>ဟ<200>န္<200>နုိ<200>င္<200>ခဲ့<200>သ<200>ည္<200>။• •ထုိ့<200>နော<200>က္<200> •ဦး<200>အော<200>င္<200>ဇေ<200>ယ္<200>ယ<200>သ<200>ည္<200> •မ္<200>ရော<200>က္<200>ဘ<200>က္<200>တ<200>လ္<200>ဝ္<200>ဟား<200>ရ္<200>ဟိ<200> •ရ္<200>ဟ<200>မ္<200>မ္<200>ယား<200>န္<200>ဟ<200>င္<200> •မ္<200>ရ<200>န္<200>မာ<200>မ္<200>ယား<200>ကုိ<200>လ<200>ည္<200> •ဆ<200>က္<200>သ္<200>ဝ<200>ယ္<200>စ<200>ည္<200>ရုံး<200>နုိ<200>င္<200>ခဲ့<200>သ<200>ည္<200>။• •ဤ<200>သုိ့<200>ဖ္<200>ရ<200>င္<200> •ဦး<200>အော<200>င္<200>ဇေ<200>ယ္<200>ယ<200>၏• •အ<200>ရ္<200>ဟိ<200>န္<200>အ<200>ဝာ<200> •မ္<200>ရ<200>င္<200>မား<200>လာ<200>လေ<200>သ<200>ည္<200>။•
-• • • • •ဦး<200>အော<200>င္<200>ဇေ<200>ယ္<200>ယ<200>သ<200>ည္<200> •အ<200>လော<200>င္<200>မ<200>င္<200>တ<200>ရား<200>ဘ္<200>ဝဲ့<200>ကုိ<200> •ခံယူ<200>ကာ<200> •ကု<200>န္<200>ဘော<200>င္<200>မ<200>င္<200>ဆ<200>က္<200>ကုိ<200>စ<200>တ<200>င္<200>တ<200>ည္<200>ထော<200>င္<200>သ<200>ည္<200>။• •မု<200>ဆုိး<200>ဖုိ<200>ရ္<200>ဝာ<200>ကုိ<200> •ရ္<200>ဝ္<200>ဟ<200>ဝေ<200>ဘုိ<200>ဟု<200> •သ<200>မု<200>တ္<200>ကာ<200> •မ္<200>ရုိ့<200>န<200>န္<200>တ<200>ည္<200>သ<200>ည္<200>။• •န<200>န္<200>တ<200>ည္<200>သ<200>က္<200>က<200>ရာ<200>ဇ္<200>ဖ္<200>ရ<200>စ္<200>သော<200> •၁၁၁၅<100> •ခု<200>ကုိ<200> •ဥ<200>ဩ<200>အော္<200>မ္<200>ရ<200>ည္<200> •ကု<200>န္<200>ဘော<200>င္<200>တ<200>ည္<200>ဟု<200> •အ<200>မ္<200>ဟ<200>တ္<200>အ<200>သား<200>ပ္<200>ရု<200>က္<200>ရ<200>သ<200>ည္<200>။•
+• •ဦး<200>အော<200>င္<200>ဇေ<200>ယ္<200>ယ<200>သ<200>ည္<200> •အ<200>လော<200>င္<200>မ<200>င္<200>တ<200>ရား<200>ဘ္<200>ဝဲ့<200>ကုိ<200> •ခံယူ<200>ကာ<200> •ကု<200>န္<200>ဘော<200>င္<200>မ<200>င္<200>ဆ<200>က္<200>ကုိ<200>စ<200>တ<200>င္<200>တ<200>ည္<200>ထော<200>င္<200>သ<200>ည္<200>။• •မု<200>ဆုိး<200>ဖုိ<200>ရ္<200>ဝာ<200>ကုိ<200> •ရ္<200>ဝ္<200>ဟ<200>ဝေ<200>ဘုိ<200>ဟု<200> •သ<200>မု<200>တ္<200>ကာ<200> •မ္<200>ရုိ့<200>န<200>န္<200>တ<200>ည္<200>သ<200>ည္<200>။• •န<200>န္<200>တ<200>ည္<200>သ<200>က္<200>က<200>ရာ<200>ဇ္<200>ဖ္<200>ရ<200>စ္<200>သော<200> •၁၁၁၅<100> •ခု<200>ကုိ<200> •ဥ<200>ဩ<200>အော္<200>မ္<200>ရ<200>ည္<200> •ကု<200>န္<200>ဘော<200>င္<200>တ<200>ည္<200>ဟု<200> •အ<200>မ္<200>ဟ<200>တ္<200>အ<200>သား<200>ပ္<200>ရု<200>က္<200>ရ<200>သ<200>ည္<200>။•
-• • • • •အ<200>လော<200>င္<200>မ<200>င္<200>တရား<200>သ<200>ည္<200> •ဧရာ<200>ဝ<200>တီ<200>န္<200>ဟ<200>င္<200>ခ္<200>ယ<200>င္<200>တ္<200>ဝ<200>င္<200> •မ္<200>ရ<200>စ္<200>န္<200>ဟ<200>စ္<200>သ္<200>ဝ<200>ယ္<200>အ<200>က္<200>ရား<200> •ဒေ<200>သ<200>မ္<200>ယား<200>ကုိ<200>အ<200>ခုိ<200>င္<200>အ<200>မာ<200> •စု<200>စ<200>ည္<200>ပ္<200>ရီး<200>နော<200>က္<200> •အ<200>င္<200>ဝ<200>ကုိ<200> •တုိ<200>က္<200>ခုိ<200>က္<200>အော<200>င္<200>မ္<200>ရ<200>င္<200>သ<200>ည္<200>။• •ထုိ<200>နော<200>က္<200>တ္<200>ဝ<200>င္<200>ပ္<200>ရ<200>ည္<200>၊• •လ္<200>ဝ<200>န္<200>ဆေး<200>၊• •ဒ<200>ဂုံ<200>မ္<200>ရုိ့<200>မ္<200>ယား<200>ကုိ<200> •သိ<200>မ္<200>ပုိ<200>က္<200>သ<200>ည္<200>။• •လ္<200>ဝ<200>န္<200>ဆေး<200> •ကုိ<200>မ္<200>ရ<200>န္<200>အော<200>င္<200>ဟူ<200>၍• •သ<200>မု<200>တ္<200>သ<200>ည္<200>။• •ဒ<200>ဂုံ<200>ကုိ<200>ရ<200>န္<200>ကု<200>န္<200>ဟူ<200>၍• •သ<200>မု<200>တ္<200>ထ<200>သ<200>ည္<200>။•</data>
+• •အ<200>လော<200>င္<200>မ<200>င္<200>တရား<200>သ<200>ည္<200> •ဧရာ<200>ဝ<200>တီ<200>န္<200>ဟ<200>င္<200>ခ္<200>ယ<200>င္<200>တ္<200>ဝ<200>င္<200> •မ္<200>ရ<200>စ္<200>န္<200>ဟ<200>စ္<200>သ္<200>ဝ<200>ယ္<200>အ<200>က္<200>ရား<200> •ဒေ<200>သ<200>မ္<200>ယား<200>ကုိ<200>အ<200>ခုိ<200>င္<200>အ<200>မာ<200> •စု<200>စ<200>ည္<200>ပ္<200>ရီး<200>နော<200>က္<200> •အ<200>င္<200>ဝ<200>ကုိ<200> •တုိ<200>က္<200>ခုိ<200>က္<200>အော<200>င္<200>မ္<200>ရ<200>င္<200>သ<200>ည္<200>။• •ထုိ<200>နော<200>က္<200>တ္<200>ဝ<200>င္<200>ပ္<200>ရ<200>ည္<200>၊• •လ္<200>ဝ<200>န္<200>ဆေး<200>၊• •ဒ<200>ဂုံ<200>မ္<200>ရုိ့<200>မ္<200>ယား<200>ကုိ<200> •သိ<200>မ္<200>ပုိ<200>က္<200>သ<200>ည္<200>။• •လ္<200>ဝ<200>န္<200>ဆေး<200> •ကုိ<200>မ္<200>ရ<200>န္<200>အော<200>င္<200>ဟူ<200>၍• •သ<200>မု<200>တ္<200>သ<200>ည္<200>။• •ဒ<200>ဂုံ<200>ကုိ<200>ရ<200>န္<200>ကု<200>န္<200>ဟူ<200>၍• •သ<200>မု<200>တ္<200>ထ<200>သ<200>ည္<200>။•</data>
<word>
# japanese
diff --git a/Build/source/libs/icu/icu-src/source/test/testdata/regextst.txt b/Build/source/libs/icu/icu-src/source/test/testdata/regextst.txt
index a3f8dc78f5b..ee7bdf2227e 100644
--- a/Build/source/libs/icu/icu-src/source/test/testdata/regextst.txt
+++ b/Build/source/libs/icu/icu-src/source/test/testdata/regextst.txt
@@ -252,7 +252,7 @@
# Unicode word boundary mode
#
"(?w).*?\b" v "<0></0>hello, world"
-"(?w).*?(\b.+?\b).*" v "<0><1> </1> 123.45 </0>"
+"(?w).*?(\b.+?\b).*" v "<0><1> </1>123.45 </0>"
"(?w).*?(\b\d.*?\b).*" v "<0> <1>123.45</1> </0>"
".*?(\b.+?\b).*" "<0> <1>123</1>.45 </0>"
"(?w:.*?(\b\d.*?\b).*)" v "<0> <1>123.45</1> </0>"
@@ -1363,6 +1363,62 @@
"abc" Z3 "abc abc <0>abc</0> xyz"
"abc" z4 "abc abc abc xyz"
+# Bug #13844 Verify that non-standard Java property names are recognized.
+"[\p{IsAlphabetic}]" " <0>A</0>"
+"[\P{IsAlphabetic}]" "A<0> </0>"
+"[\p{IsIdeographic}]" "A<0>〆</0>"
+"[\P{IsIdeographic}]" "〆<0>A</0>"
+"[\p{IsLetter}]" " <0>A</0>"
+"[\P{IsLetter}]" "A<0> </0>"
+"[\p{Letter}]" " <0>A</0>"
+"[\p{IsLowercase}]" "A<0>a</0>"
+"[\P{IsLowercase}]" "a<0>A</0>"
+"[\p{IsUppercase}]" "a<0>A</0>"
+"[\P{IsUppercase}]" "A<0>a</0>"
+"[\p{IsTitlecase}]" "D<0>Dz</0>"
+"[\P{IsTitlecase}]" "Dz<0>D</0>"
+"[\p{IsPunctuation}]" " <0>&</0>"
+"[\P{IsPunctuation}]" "&<0> </0>"
+"[\p{IsControl}]" " <0>\x{82}</0>"
+"[\P{IsControl}]" "\x{82}<0> </0>"
+"[\p{IsWhite_Space}]" "x<0> </0>"
+"[\P{IsWhite_Space}]" " <0>x</0>"
+"[\p{IsDigit}]" " <0>4</0>"
+"[\P{IsDigit}]" "4<0> </0>"
+"[\p{IsHex_Digit}]" " <0>F</0>"
+"[\P{IsHex_Digit}]" "F<0> </0>"
+"[\p{IsJoin_Control}]" " <0>\x{200d}</0>"
+"[\P{IsJoin_Control}]" "\x{200d}<0> </0>"
+"[\p{IsNoncharacter_Code_Point}]" "A<0>\x{5fffe}</0>"
+"[\p{IsAssigned}]" "\x{10ffff}<0>a</0>"
+"[\P{IsAssigned}]" "a<0>\x{10ffff}</0>"
+
+"[\p{InBasic Latin}]" "〆<0>A</0>"
+"[\p{InBasicLatin}]" "〆<0>A</0>"
+"[\p{InBasic-Latin}]" "〆<0>A</0>" # ICU accepts '-'; Java does not.
+"[\p{InBasic_Latin}]" "〆<0>A</0>"
+"[\p{Inbasiclatin}]" "〆<0>A</0>"
+"[\p{inbasiclatin}]" E "〆<0>A</0>" # "In" must be cased as shown. Property name part is case insensitive.
+"[\p{InCombining_Marks_for_Symbols}]" "a<0>\x{20DD}</0>" # COMBINING ENCLOSING CIRCLE
+
+"[\p{all}]*" "<0>\x{00}abc\x{10ffff}</0>"
+"[\p{javaBadProperty}]" E "whatever"
+"[\p{IsBadProperty}]" E "whatever"
+"[\p{InBadBlock}]" E "whatever"
+"[\p{In}]" E "whatever"
+"[\p{Is}]" E "whatever"
+"[\p{java}]" "x<0>ꦉ</0>" # Note: "java" is a valid script code.
+
+"[\p{javaLowerCase}]+" "A<0>a</0>"
+"[\p{javaLowerCase}]+" i "<0>Aa</0>"
+"[\P{javaLowerCase}]+" "<0>A</0>a"
+"[\P{javaLowerCase}]+" i "Aa" # No Match because case fold of the set happens first, then negation.
+ # JDK is not case insensitive w named properties, even though
+ # the insensitive match flag is set. A JDK bug?
+
+"[a-z]+" i "<0>Aa</0>" # Matches JDK behavior.
+"[^a-z]+" i "Aa" # (no match) which is JDK behavior. Case fold first, then negation.
+
# Random debugging, Temporary
#
diff --git a/Build/source/libs/icu/icu-src/source/test/testdata/root.txt b/Build/source/libs/icu/icu-src/source/test/testdata/root.txt
index 8ba0f076148..49185965b10 100644
--- a/Build/source/libs/icu/icu-src/source/test/testdata/root.txt
+++ b/Build/source/libs/icu/icu-src/source/test/testdata/root.txt
@@ -13,8 +13,8 @@
root
{
Version { 44.0 }
- ExpectCLDRVersionAtLeast { 33.0 } // 'base' cldr version. Allow up to version =.=.* of this
- CurrentCLDRVersion { 33.0 } // Current CLDR version as of the test update. Warn if not an exact match.
+ ExpectCLDRVersionAtLeast { 34.0 } // 'base' cldr version. Allow up to version =.=.* of this
+ CurrentCLDRVersion { 34.0 } // Current CLDR version as of the test update. Warn if not an exact match.
ShortLanguage { xxx }
diff --git a/Build/source/libs/icu/icu-src/source/test/testdata/structLocale.txt b/Build/source/libs/icu/icu-src/source/test/testdata/structLocale.txt
index 983a7441fad..d3182edb83c 100644
--- a/Build/source/libs/icu/icu-src/source/test/testdata/structLocale.txt
+++ b/Build/source/libs/icu/icu-src/source/test/testdata/structLocale.txt
@@ -536,6 +536,10 @@ structLocale:table(nofallback){
"",
"",
}
+ BYN{
+ "",
+ "",
+ }
BYR{
"",
"",
@@ -576,6 +580,10 @@ structLocale:table(nofallback){
"",
"",
}
+ CNH{
+ "",
+ "",
+ }
CNY{
"",
"",
@@ -1004,6 +1012,10 @@ structLocale:table(nofallback){
"",
"",
}
+ MRU{
+ "",
+ "",
+ }
MTL{
"",
"",
@@ -1236,6 +1248,10 @@ structLocale:table(nofallback){
"",
"",
}
+ STN{
+ "",
+ "",
+ }
SUR{
"",
"",
@@ -6065,7 +6081,9 @@ structLocale:table(nofallback){
NumberElements{
arab{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -6392,7 +6410,9 @@ structLocale:table(nofallback){
}
arabext{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -6719,7 +6739,9 @@ structLocale:table(nofallback){
}
bali{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -7046,7 +7068,9 @@ structLocale:table(nofallback){
}
beng{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -7373,7 +7397,9 @@ structLocale:table(nofallback){
}
brah{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -7700,7 +7726,9 @@ structLocale:table(nofallback){
}
cakm{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -8027,7 +8055,9 @@ structLocale:table(nofallback){
}
cham{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -8356,7 +8386,9 @@ structLocale:table(nofallback){
default_latn{""}
deva{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -8684,7 +8716,338 @@ structLocale:table(nofallback){
finance{""}
fullwide{
miscPatterns{
+ approximately{""}
+ atLeast{""}
+ atMost{""}
+ range{""}
+ }
+ patterns{
+ accountingFormat{""}
+ currencyFormat{""}
+ decimalFormat{""}
+ percentFormat{""}
+ scientificFormat{""}
+ }
+ patternsLong{
+ decimalFormat{
+ 1000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 10000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 100000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 1000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 10000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 100000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 1000000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 10000000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 100000000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 1000000000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 10000000000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 100000000000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ }
+ }
+ patternsShort{
+ currencyFormat{
+ 1000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 10000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 100000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 1000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 10000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 100000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 1000000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 10000000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 100000000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 1000000000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 10000000000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 100000000000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ }
+ decimalFormat{
+ 1000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 10000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 100000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 1000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 10000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 100000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 1000000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 10000000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 100000000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 1000000000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 10000000000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 100000000000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ }
+ }
+ symbols{
+ decimal{""}
+ exponential{""}
+ group{""}
+ infinity{""}
+ list{""}
+ minusSign{""}
+ nan{""}
+ perMille{""}
+ percentSign{""}
+ plusSign{""}
+ currencyDecimal{""}
+ currencyGroup{""}
+ superscriptingExponent{""}
+ timeSeparator{""}
+ }
+ }
+ gong{
+ miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -9011,7 +9374,9 @@ structLocale:table(nofallback){
}
gonm{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -9338,7 +9703,9 @@ structLocale:table(nofallback){
}
gujr{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -9665,7 +10032,9 @@ structLocale:table(nofallback){
}
guru{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -9992,7 +10361,9 @@ structLocale:table(nofallback){
}
hanidec{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -10319,7 +10690,9 @@ structLocale:table(nofallback){
}
java{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -10646,7 +11019,9 @@ structLocale:table(nofallback){
}
kali{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -10972,8 +11347,10 @@ structLocale:table(nofallback){
}
}
khmr{
- miscPatterns{
+ miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -11300,7 +11677,9 @@ structLocale:table(nofallback){
}
knda{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -11627,7 +12006,9 @@ structLocale:table(nofallback){
}
lana{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -11954,7 +12335,9 @@ structLocale:table(nofallback){
}
lanatham{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -12281,7 +12664,9 @@ structLocale:table(nofallback){
}
laoo{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -12608,7 +12993,9 @@ structLocale:table(nofallback){
}
latn{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -12935,7 +13322,9 @@ structLocale:table(nofallback){
}
lepc{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -13262,7 +13651,9 @@ structLocale:table(nofallback){
}
limb{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -13607,7 +13998,9 @@ structLocale:table(nofallback){
}
mlym{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -13934,7 +14327,9 @@ structLocale:table(nofallback){
}
mong{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -14261,7 +14656,9 @@ structLocale:table(nofallback){
}
mtei{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -14588,7 +14985,9 @@ structLocale:table(nofallback){
}
mymr{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -14915,7 +15314,9 @@ structLocale:table(nofallback){
}
mymrshan{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -15244,7 +15645,9 @@ structLocale:table(nofallback){
native{""}
nkoo{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -15571,7 +15974,9 @@ structLocale:table(nofallback){
}
olck{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -15898,7 +16303,9 @@ structLocale:table(nofallback){
}
orya{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -16225,7 +16632,338 @@ structLocale:table(nofallback){
}
osma{
miscPatterns{
+ approximately{""}
+ atLeast{""}
+ atMost{""}
+ range{""}
+ }
+ patterns{
+ accountingFormat{""}
+ currencyFormat{""}
+ decimalFormat{""}
+ percentFormat{""}
+ scientificFormat{""}
+ }
+ patternsLong{
+ decimalFormat{
+ 1000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 10000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 100000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 1000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 10000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 100000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 1000000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 10000000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 100000000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 1000000000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 10000000000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 100000000000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ }
+ }
+ patternsShort{
+ currencyFormat{
+ 1000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 10000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 100000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 1000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 10000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 100000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 1000000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 10000000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 100000000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 1000000000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 10000000000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 100000000000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ }
+ decimalFormat{
+ 1000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 10000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 100000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 1000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 10000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 100000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 1000000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 10000000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 100000000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 1000000000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 10000000000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ 100000000000000{
+ zero{""}
+ one{""}
+ two{""}
+ few{""}
+ many{""}
+ other{""}
+ }
+ }
+ }
+ symbols{
+ decimal{""}
+ exponential{""}
+ group{""}
+ infinity{""}
+ list{""}
+ minusSign{""}
+ nan{""}
+ perMille{""}
+ percentSign{""}
+ plusSign{""}
+ currencyDecimal{""}
+ currencyGroup{""}
+ superscriptingExponent{""}
+ timeSeparator{""}
+ }
+ }
+ rohg{
+ miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -16552,7 +17290,9 @@ structLocale:table(nofallback){
}
saur{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -16879,7 +17619,9 @@ structLocale:table(nofallback){
}
shrd{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -17206,7 +17948,9 @@ structLocale:table(nofallback){
}
sora{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -17533,7 +18277,9 @@ structLocale:table(nofallback){
}
sund{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -17860,7 +18606,9 @@ structLocale:table(nofallback){
}
takr{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -18187,7 +18935,9 @@ structLocale:table(nofallback){
}
talu{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -18514,7 +19264,9 @@ structLocale:table(nofallback){
}
tamldec{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -18841,7 +19593,9 @@ structLocale:table(nofallback){
}
telu{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -19168,7 +19922,9 @@ structLocale:table(nofallback){
}
thai{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -19495,7 +20251,9 @@ structLocale:table(nofallback){
}
tibt{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -19823,7 +20581,9 @@ structLocale:table(nofallback){
traditional{""}
vaii{
miscPatterns{
+ approximately{""}
atLeast{""}
+ atMost{""}
range{""}
}
patterns{
@@ -23680,6 +24440,44 @@ structLocale:table(nofallback){
}
}
intervalFormats{
+ Gy{
+ G{""}
+ y{""}
+ }
+ GyM{
+ G{""}
+ M{""}
+ y{""}
+ }
+ GyMEd{
+ G{""}
+ M{""}
+ d{""}
+ y{""}
+ }
+ GyMMM{
+ G{""}
+ M{""}
+ y{""}
+ }
+ GyMMMEd{
+ G{""}
+ M{""}
+ d{""}
+ y{""}
+ }
+ GyMMMd{
+ G{""}
+ M{""}
+ d{""}
+ y{""}
+ }
+ GyMd{
+ G{""}
+ M{""}
+ d{""}
+ y{""}
+ }
H{
H{""}
}
@@ -24124,6 +24922,44 @@ structLocale:table(nofallback){
}
}
intervalFormats{
+ Gy{
+ G{""}
+ y{""}
+ }
+ GyM{
+ G{""}
+ M{""}
+ y{""}
+ }
+ GyMEd{
+ G{""}
+ M{""}
+ d{""}
+ y{""}
+ }
+ GyMMM{
+ G{""}
+ M{""}
+ y{""}
+ }
+ GyMMMEd{
+ G{""}
+ M{""}
+ d{""}
+ y{""}
+ }
+ GyMMMd{
+ G{""}
+ M{""}
+ d{""}
+ y{""}
+ }
+ GyMd{
+ G{""}
+ M{""}
+ d{""}
+ y{""}
+ }
H{
H{""}
}
@@ -25789,6 +26625,7 @@ structLocale:table(nofallback){
"",
"",
"",
+ "",
}
wide{
"",
@@ -26027,6 +26864,7 @@ structLocale:table(nofallback){
"",
"",
"",
+ "",
}
narrow{
"",
@@ -26265,6 +27103,7 @@ structLocale:table(nofallback){
"",
"",
"",
+ "",
}
}
intervalFormats{
@@ -26595,12 +27434,30 @@ structLocale:table(nofallback){
middle{""}
start{""}
}
+ or-narrow{
+ 2{""}
+ end{""}
+ middle{""}
+ start{""}
+ }
+ or-short{
+ 2{""}
+ end{""}
+ middle{""}
+ start{""}
+ }
standard{
2{""}
end{""}
middle{""}
start{""}
}
+ standard-narrow{
+ 2{""}
+ end{""}
+ middle{""}
+ start{""}
+ }
standard-short{
2{""}
end{""}
@@ -26655,6 +27512,11 @@ structLocale:table(nofallback){
"",
"",
"",
+ "",
+ "",
+ "",
+ "",
+ "",
}
}
number{
diff --git a/Build/source/libs/icu/icu-src/source/test/testdata/testnorm.txt b/Build/source/libs/icu/icu-src/source/test/testdata/testnorm.txt
index 0e2ae119f78..55994d4f29b 100644
--- a/Build/source/libs/icu/icu-src/source/test/testdata/testnorm.txt
+++ b/Build/source/libs/icu/icu-src/source/test/testdata/testnorm.txt
@@ -44,9 +44,10 @@
0360..0361:234
0362:233
0363..036F:230
-D802:2 # surrogates with non-zero combining classes
-D803:3
-D804:4
+# ICU 63 normalization with UCPTrie requires inert surrogate code points.
+# D802:2 # surrogates with non-zero combining classes
+# D803:3
+# D804:4
110B9:9
110BA:7
@@ -58,10 +59,11 @@ D804:4
00C4=0041 0308
00C5=0041 030A
00C7=0043 0327
-D800>D7FF # surrogates with mappings, and mappings to empty strings
-D801>
-DFFE>
-DFFF>FFFF
+# ICU 63 normalization with UCPTrie requires inert surrogate code points.
+# D800>D7FF # surrogates with mappings, and mappings to empty strings
+# D801>
+# DFFE>
+# DFFF>FFFF
E000>
E001=61 338 # composition with trail<=33FF and composite>7FFF
E002=E001 308 # recursive mapping needs reordering
diff --git a/Build/source/libs/icu/icu-src/source/tools/ctestfw/ctestfw.vcxproj b/Build/source/libs/icu/icu-src/source/tools/ctestfw/ctestfw.vcxproj
index de4818c3237..baabf4f3814 100644
--- a/Build/source/libs/icu/icu-src/source/tools/ctestfw/ctestfw.vcxproj
+++ b/Build/source/libs/icu/icu-src/source/tools/ctestfw/ctestfw.vcxproj
@@ -75,7 +75,7 @@
<CompileAs>Default</CompileAs>
</ClCompile>
<Link>
- <OutputFile>..\..\..\bin\icutest61.dll</OutputFile>
+ <OutputFile>..\..\..\bin\icutest63.dll</OutputFile>
<AdditionalDependencies>icuuc.lib;icutu.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ProgramDatabaseFile>.\..\..\..\lib\icutest.pdb</ProgramDatabaseFile>
@@ -101,7 +101,7 @@
<CompileAs>Default</CompileAs>
</ClCompile>
<Link>
- <OutputFile>..\..\..\bin\icutest61d.dll</OutputFile>
+ <OutputFile>..\..\..\bin\icutest63d.dll</OutputFile>
<AdditionalDependencies>icuucd.lib;icutud.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
@@ -127,7 +127,7 @@
<CompileAs>Default</CompileAs>
</ClCompile>
<Link>
- <OutputFile>..\..\..\bin64\icutest61.dll</OutputFile>
+ <OutputFile>..\..\..\bin64\icutest63.dll</OutputFile>
<AdditionalDependencies>icuuc.lib;icutu.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ProgramDatabaseFile>.\..\..\..\lib64\icutest.pdb</ProgramDatabaseFile>
@@ -150,7 +150,7 @@
<CompileAs>Default</CompileAs>
</ClCompile>
<Link>
- <OutputFile>..\..\..\bin64\icutest61d.dll</OutputFile>
+ <OutputFile>..\..\..\bin64\icutest63d.dll</OutputFile>
<AdditionalDependencies>icuucd.lib;icutud.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
@@ -187,4 +187,4 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
-</Project> \ No newline at end of file
+</Project>
diff --git a/Build/source/libs/icu/icu-src/source/tools/ctestfw/tstdtmod.cpp b/Build/source/libs/icu/icu-src/source/tools/ctestfw/tstdtmod.cpp
index bb1008da6a6..f4580b165da 100644
--- a/Build/source/libs/icu/icu-src/source/tools/ctestfw/tstdtmod.cpp
+++ b/Build/source/libs/icu/icu-src/source/tools/ctestfw/tstdtmod.cpp
@@ -13,25 +13,37 @@
#include "unicode/tstdtmod.h"
#include "cmemory.h"
#include <stdio.h>
+#include "cstr.h"
+#include "cstring.h"
TestLog::~TestLog() {}
IcuTestErrorCode::~IcuTestErrorCode() {
- // Safe because our handleFailure() does not throw exceptions.
- if(isFailure()) { handleFailure(); }
+ // Safe because our errlog() does not throw exceptions.
+ if(isFailure()) {
+ errlog(FALSE, u"destructor: expected success", nullptr);
+ }
+}
+
+UBool IcuTestErrorCode::errIfFailureAndReset() {
+ if(isFailure()) {
+ errlog(FALSE, u"expected success", nullptr);
+ reset();
+ return TRUE;
+ } else {
+ reset();
+ return FALSE;
+ }
}
-UBool IcuTestErrorCode::logIfFailureAndReset(const char *fmt, ...) {
+UBool IcuTestErrorCode::errIfFailureAndReset(const char *fmt, ...) {
if(isFailure()) {
char buffer[4000];
va_list ap;
va_start(ap, fmt);
vsprintf(buffer, fmt, ap);
va_end(ap);
- UnicodeString msg(testName, -1, US_INV);
- msg.append(UNICODE_STRING_SIMPLE(" failure: ")).append(UnicodeString(errorName(), -1, US_INV));
- msg.append(UNICODE_STRING_SIMPLE(" - ")).append(UnicodeString(buffer, -1, US_INV));
- testClass.errln(msg);
+ errlog(FALSE, u"expected success", buffer);
reset();
return TRUE;
} else {
@@ -40,17 +52,25 @@ UBool IcuTestErrorCode::logIfFailureAndReset(const char *fmt, ...) {
}
}
-UBool IcuTestErrorCode::logDataIfFailureAndReset(const char *fmt, ...) {
+UBool IcuTestErrorCode::errDataIfFailureAndReset() {
+ if(isFailure()) {
+ errlog(TRUE, u"data: expected success", nullptr);
+ reset();
+ return TRUE;
+ } else {
+ reset();
+ return FALSE;
+ }
+}
+
+UBool IcuTestErrorCode::errDataIfFailureAndReset(const char *fmt, ...) {
if(isFailure()) {
char buffer[4000];
va_list ap;
va_start(ap, fmt);
vsprintf(buffer, fmt, ap);
va_end(ap);
- UnicodeString msg(testName, -1, US_INV);
- msg.append(UNICODE_STRING_SIMPLE(" failure: ")).append(UnicodeString(errorName(), -1, US_INV));
- msg.append(UNICODE_STRING_SIMPLE(" - ")).append(UnicodeString(buffer, -1, US_INV));
- testClass.dataerrln(msg);
+ errlog(TRUE, u"data: expected success", buffer);
reset();
return TRUE;
} else {
@@ -59,12 +79,55 @@ UBool IcuTestErrorCode::logDataIfFailureAndReset(const char *fmt, ...) {
}
}
+UBool IcuTestErrorCode::expectErrorAndReset(UErrorCode expectedError) {
+ if(get() != expectedError) {
+ errlog(FALSE, UnicodeString(u"expected: ") + u_errorName(expectedError), nullptr);
+ }
+ UBool retval = isFailure();
+ reset();
+ return retval;
+}
+
+UBool IcuTestErrorCode::expectErrorAndReset(UErrorCode expectedError, const char *fmt, ...) {
+ if(get() != expectedError) {
+ char buffer[4000];
+ va_list ap;
+ va_start(ap, fmt);
+ vsprintf(buffer, fmt, ap);
+ va_end(ap);
+ errlog(FALSE, UnicodeString(u"expected: ") + u_errorName(expectedError), buffer);
+ }
+ UBool retval = isFailure();
+ reset();
+ return retval;
+}
+
+void IcuTestErrorCode::setScope(const char* message) {
+ scopeMessage.remove().append({ message, -1, US_INV });
+}
+
+void IcuTestErrorCode::setScope(const UnicodeString& message) {
+ scopeMessage = message;
+}
+
void IcuTestErrorCode::handleFailure() const {
- // testClass.errln("%s failure - %s", testName, errorName());
+ errlog(FALSE, u"(handleFailure)", nullptr);
+}
+
+void IcuTestErrorCode::errlog(UBool dataErr, const UnicodeString& mainMessage, const char* extraMessage) const {
UnicodeString msg(testName, -1, US_INV);
- msg.append(UNICODE_STRING_SIMPLE(" failure: ")).append(UnicodeString(errorName(), -1, US_INV));
+ msg.append(u' ').append(mainMessage);
+ msg.append(u" but got error: ").append(UnicodeString(errorName(), -1, US_INV));
+
+ if (!scopeMessage.isEmpty()) {
+ msg.append(u" scope: ").append(scopeMessage);
+ }
+
+ if (extraMessage != nullptr) {
+ msg.append(u" - ").append(UnicodeString(extraMessage, -1, US_INV));
+ }
- if (get() == U_MISSING_RESOURCE_ERROR || get() == U_FILE_ACCESS_ERROR) {
+ if (dataErr || get() == U_MISSING_RESOURCE_ERROR || get() == U_FILE_ACCESS_ERROR) {
testClass.dataerrln(msg);
} else {
testClass.errln(msg);
diff --git a/Build/source/libs/icu/icu-src/source/tools/ctestfw/unicode/testlog.h b/Build/source/libs/icu/icu-src/source/tools/ctestfw/unicode/testlog.h
index 811f62fba14..9db35b9ca85 100644
--- a/Build/source/libs/icu/icu-src/source/tools/ctestfw/unicode/testlog.h
+++ b/Build/source/libs/icu/icu-src/source/tools/ctestfw/unicode/testlog.h
@@ -32,17 +32,31 @@ public:
class T_CTEST_EXPORT_API IcuTestErrorCode : public ErrorCode {
public:
- IcuTestErrorCode(TestLog &callingTestClass, const char *callingTestName) :
- testClass(callingTestClass), testName(callingTestName) {}
+ IcuTestErrorCode(TestLog &callingTestClass, const char *callingTestName)
+ : testClass(callingTestClass), testName(callingTestName), scopeMessage() {}
virtual ~IcuTestErrorCode();
+
// Returns TRUE if isFailure().
- UBool logIfFailureAndReset(const char *fmt, ...);
- UBool logDataIfFailureAndReset(const char *fmt, ...);
+ UBool errIfFailureAndReset();
+ UBool errIfFailureAndReset(const char *fmt, ...);
+ UBool errDataIfFailureAndReset();
+ UBool errDataIfFailureAndReset(const char *fmt, ...);
+ UBool expectErrorAndReset(UErrorCode expectedError);
+ UBool expectErrorAndReset(UErrorCode expectedError, const char *fmt, ...);
+
+ /** Sets an additional message string to be appended to failure output. */
+ void setScope(const char* message);
+ void setScope(const UnicodeString& message);
+
protected:
virtual void handleFailure() const;
+
private:
TestLog &testClass;
const char *const testName;
+ UnicodeString scopeMessage;
+
+ void errlog(UBool dataErr, const UnicodeString& mainMessage, const char* extraMessage) const;
};
#endif
diff --git a/Build/source/libs/icu/icu-src/source/tools/gencfu/gencfu.cpp b/Build/source/libs/icu/icu-src/source/tools/gencfu/gencfu.cpp
index c4098c8cac3..1ac9ad3fd8a 100644
--- a/Build/source/libs/icu/icu-src/source/tools/gencfu/gencfu.cpp
+++ b/Build/source/libs/icu/icu-src/source/tools/gencfu/gencfu.cpp
@@ -319,7 +319,7 @@ int main(int argc, char **argv) {
return NULL;
}
- long t = fread(result, 1, fileSize, file);
+ long t = static_cast<long>(fread(result, 1, fileSize, file));
if (t != fileSize) {
delete [] result;
fclose(file);
diff --git a/Build/source/libs/icu/icu-src/source/tools/gencnval/gencnval.c b/Build/source/libs/icu/icu-src/source/tools/gencnval/gencnval.c
index 8d2a04c1ac7..04ad747e077 100644
--- a/Build/source/libs/icu/icu-src/source/tools/gencnval/gencnval.c
+++ b/Build/source/libs/icu/icu-src/source/tools/gencnval/gencnval.c
@@ -965,7 +965,7 @@ createNormalizedAliasStrings(char *normalizedStrings, const char *origStringBloc
if (currStrLen > 0) {
int32_t normStrLen;
ucnv_io_stripForCompare(normalizedStrings, origStringBlock);
- normStrLen = uprv_strlen(normalizedStrings);
+ normStrLen = (int32_t)uprv_strlen(normalizedStrings);
if (normStrLen > 0) {
uprv_memset(normalizedStrings + normStrLen, 0, currStrSize - normStrLen);
}
diff --git a/Build/source/libs/icu/icu-src/source/tools/gennorm2/gennorm2.cpp b/Build/source/libs/icu/icu-src/source/tools/gennorm2/gennorm2.cpp
index 2d24d61071b..bce5336be62 100644
--- a/Build/source/libs/icu/icu-src/source/tools/gennorm2/gennorm2.cpp
+++ b/Build/source/libs/icu/icu-src/source/tools/gennorm2/gennorm2.cpp
@@ -266,6 +266,11 @@ void parseFile(std::ifstream &f, Normalizer2DataBuilder &builder) {
fprintf(stderr, "gennorm2 error: parsing code point range from %s\n", line);
exit(errorCode.reset());
}
+ if (endCP >= 0xd800 && startCP <= 0xdfff) {
+ fprintf(stderr, "gennorm2 error: value or mapping for surrogate code points: %s\n",
+ line);
+ exit(U_ILLEGAL_ARGUMENT_ERROR);
+ }
delimiter=u_skipWhitespace(delimiter);
if(*delimiter==':') {
const char *s=u_skipWhitespace(delimiter+1);
diff --git a/Build/source/libs/icu/icu-src/source/tools/gennorm2/n2builder.cpp b/Build/source/libs/icu/icu-src/source/tools/gennorm2/n2builder.cpp
index 7b8920d0d3a..1d388852312 100644
--- a/Build/source/libs/icu/icu-src/source/tools/gennorm2/n2builder.cpp
+++ b/Build/source/libs/icu/icu-src/source/tools/gennorm2/n2builder.cpp
@@ -29,7 +29,9 @@
#include "unicode/errorcode.h"
#include "unicode/localpointer.h"
#include "unicode/putil.h"
+#include "unicode/ucptrie.h"
#include "unicode/udata.h"
+#include "unicode/umutablecptrie.h"
#include "unicode/uniset.h"
#include "unicode/unistr.h"
#include "unicode/usetiter.h"
@@ -41,7 +43,6 @@
#include "norms.h"
#include "toolutil.h"
#include "unewdata.h"
-#include "utrie2.h"
#include "uvectr32.h"
#include "writesrc.h"
@@ -58,8 +59,8 @@ static UDataInfo dataInfo={
0,
{ 0x4e, 0x72, 0x6d, 0x32 }, /* dataFormat="Nrm2" */
- { 3, 0, 0, 0 }, /* formatVersion */
- { 10, 0, 0, 0 } /* dataVersion (Unicode version) */
+ { 4, 0, 0, 0 }, /* formatVersion */
+ { 11, 0, 0, 0 } /* dataVersion (Unicode version) */
};
U_NAMESPACE_BEGIN
@@ -94,14 +95,14 @@ const HangulIterator::Range HangulIterator::ranges[4]={
Normalizer2DataBuilder::Normalizer2DataBuilder(UErrorCode &errorCode) :
norms(errorCode),
phase(0), overrideHandling(OVERRIDE_PREVIOUS), optimization(OPTIMIZE_NORMAL),
- norm16Trie(nullptr), norm16TrieLength(0) {
+ norm16TrieBytes(nullptr), norm16TrieLength(0) {
memset(unicodeVersion, 0, sizeof(unicodeVersion));
memset(indexes, 0, sizeof(indexes));
memset(smallFCD, 0, sizeof(smallFCD));
}
Normalizer2DataBuilder::~Normalizer2DataBuilder() {
- utrie2_close(norm16Trie);
+ delete[] norm16TrieBytes;
}
void
@@ -407,11 +408,13 @@ void Normalizer2DataBuilder::postProcess(Norm &norm) {
class Norm16Writer : public Norms::Enumerator {
public:
- Norm16Writer(Norms &n, Normalizer2DataBuilder &b) : Norms::Enumerator(n), builder(b) {}
+ Norm16Writer(UMutableCPTrie *trie, Norms &n, Normalizer2DataBuilder &b) :
+ Norms::Enumerator(n), builder(b), norm16Trie(trie) {}
void rangeHandler(UChar32 start, UChar32 end, Norm &norm) U_OVERRIDE {
- builder.writeNorm16(start, end, norm);
+ builder.writeNorm16(norm16Trie, start, end, norm);
}
Normalizer2DataBuilder &builder;
+ UMutableCPTrie *norm16Trie;
};
void Normalizer2DataBuilder::setSmallFCD(UChar32 c) {
@@ -419,7 +422,7 @@ void Normalizer2DataBuilder::setSmallFCD(UChar32 c) {
smallFCD[lead>>8]|=(uint8_t)1<<((lead>>5)&7);
}
-void Normalizer2DataBuilder::writeNorm16(UChar32 start, UChar32 end, Norm &norm) {
+void Normalizer2DataBuilder::writeNorm16(UMutableCPTrie *norm16Trie, UChar32 start, UChar32 end, Norm &norm) {
if((norm.leadCC|norm.trailCC)!=0) {
for(UChar32 c=start; c<=end; ++c) {
setSmallFCD(c);
@@ -484,7 +487,7 @@ void Normalizer2DataBuilder::writeNorm16(UChar32 start, UChar32 end, Norm &norm)
norm16|=Normalizer2Impl::HAS_COMP_BOUNDARY_AFTER;
}
IcuToolErrorCode errorCode("gennorm2/writeNorm16()");
- utrie2_setRange32(norm16Trie, start, end, (uint32_t)norm16, TRUE, errorCode);
+ umutablecptrie_setRange(norm16Trie, start, end, (uint32_t)norm16, errorCode);
// Set the minimum code points for real data lookups in the quick check loops.
UBool isDecompNo=
@@ -502,13 +505,13 @@ void Normalizer2DataBuilder::writeNorm16(UChar32 start, UChar32 end, Norm &norm)
}
}
-void Normalizer2DataBuilder::setHangulData() {
+void Normalizer2DataBuilder::setHangulData(UMutableCPTrie *norm16Trie) {
HangulIterator hi;
const HangulIterator::Range *range;
// Check that none of the Hangul/Jamo code points have data.
while((range=hi.nextRange())!=NULL) {
for(UChar32 c=range->start; c<=range->end; ++c) {
- if(utrie2_get32(norm16Trie, c)>Normalizer2Impl::INERT) {
+ if(umutablecptrie_get(norm16Trie, c)>Normalizer2Impl::INERT) {
fprintf(stderr,
"gennorm2 error: "
"illegal mapping/composition/ccc data for Hangul or Jamo U+%04lX\n",
@@ -524,13 +527,13 @@ void Normalizer2DataBuilder::setHangulData() {
if(Hangul::JAMO_V_BASE<indexes[Normalizer2Impl::IX_MIN_COMP_NO_MAYBE_CP]) {
indexes[Normalizer2Impl::IX_MIN_COMP_NO_MAYBE_CP]=Hangul::JAMO_V_BASE;
}
- utrie2_setRange32(norm16Trie, Hangul::JAMO_L_BASE, Hangul::JAMO_L_END,
- Normalizer2Impl::JAMO_L, TRUE, errorCode);
- utrie2_setRange32(norm16Trie, Hangul::JAMO_V_BASE, Hangul::JAMO_V_END,
- Normalizer2Impl::JAMO_VT, TRUE, errorCode);
+ umutablecptrie_setRange(norm16Trie, Hangul::JAMO_L_BASE, Hangul::JAMO_L_END,
+ Normalizer2Impl::JAMO_L, errorCode);
+ umutablecptrie_setRange(norm16Trie, Hangul::JAMO_V_BASE, Hangul::JAMO_V_END,
+ Normalizer2Impl::JAMO_VT, errorCode);
// JAMO_T_BASE+1: not U+11A7
- utrie2_setRange32(norm16Trie, Hangul::JAMO_T_BASE+1, Hangul::JAMO_T_END,
- Normalizer2Impl::JAMO_VT, TRUE, errorCode);
+ umutablecptrie_setRange(norm16Trie, Hangul::JAMO_T_BASE+1, Hangul::JAMO_T_END,
+ Normalizer2Impl::JAMO_VT, errorCode);
// Hangul LV encoded as minYesNo
uint32_t lv=indexes[Normalizer2Impl::IX_MIN_YES_NO];
@@ -542,49 +545,16 @@ void Normalizer2DataBuilder::setHangulData() {
}
// Set the first LV, then write all other Hangul syllables as LVT,
// then overwrite the remaining LV.
- // The UTrie2 should be able to compact this into 7 32-item blocks
- // because JAMO_T_COUNT is 28 and the UTrie2 granularity is 4.
- // (7*32=8*28 smallest common multiple)
- utrie2_set32(norm16Trie, Hangul::HANGUL_BASE, lv, errorCode);
- utrie2_setRange32(norm16Trie, Hangul::HANGUL_BASE+1, Hangul::HANGUL_END,
- lvt, TRUE, errorCode);
+ umutablecptrie_set(norm16Trie, Hangul::HANGUL_BASE, lv, errorCode);
+ umutablecptrie_setRange(norm16Trie, Hangul::HANGUL_BASE+1, Hangul::HANGUL_END, lvt, errorCode);
UChar32 c=Hangul::HANGUL_BASE;
while((c+=Hangul::JAMO_T_COUNT)<=Hangul::HANGUL_END) {
- utrie2_set32(norm16Trie, c, lv, errorCode);
+ umutablecptrie_set(norm16Trie, c, lv, errorCode);
}
errorCode.assertSuccess();
}
-namespace {
-
-struct Norm16Summary {
- uint32_t maxNorm16;
- // ANDing values yields 0 bits where any value has a 0.
- // Used for worst-case HAS_COMP_BOUNDARY_AFTER.
- uint32_t andedNorm16;
-};
-
-} // namespace
-
-U_CDECL_BEGIN
-
-static UBool U_CALLCONV
-enumRangeMaxValue(const void *context, UChar32 /*start*/, UChar32 /*end*/, uint32_t value) {
- Norm16Summary *p=(Norm16Summary *)context;
- if(value>p->maxNorm16) {
- p->maxNorm16=value;
- }
- p->andedNorm16&=value;
- return TRUE;
-}
-
-U_CDECL_END
-
-void Normalizer2DataBuilder::processData() {
- IcuToolErrorCode errorCode("gennorm2/processData()");
- norm16Trie=utrie2_open(Normalizer2Impl::INERT, Normalizer2Impl::INERT, errorCode);
- errorCode.assertSuccess();
-
+LocalUCPTriePointer Normalizer2DataBuilder::processData() {
// Build composition lists before recursive decomposition,
// so that we still have the raw, pair-wise mappings.
CompositionBuilder compBuilder(norms);
@@ -652,13 +622,19 @@ void Normalizer2DataBuilder::processData() {
indexes[Normalizer2Impl::IX_MIN_COMP_NO_MAYBE_CP]=0x110000;
indexes[Normalizer2Impl::IX_MIN_LCCC_CP]=0x110000;
+ IcuToolErrorCode errorCode("gennorm2/processData()");
+ UMutableCPTrie *norm16Trie = umutablecptrie_open(
+ Normalizer2Impl::INERT, Normalizer2Impl::INERT, errorCode);
+ errorCode.assertSuccess();
+
// Map each code point to its norm16 value,
// including the properties that fit directly,
// and the offset to the "extra data" if necessary.
- Norm16Writer norm16Writer(norms, *this);
+ Norm16Writer norm16Writer(norm16Trie, norms, *this);
norms.enumRanges(norm16Writer);
+ // TODO: iterate via getRange() instead of callback?
- setHangulData();
+ setHangulData(norm16Trie);
// Look for the "worst" norm16 value of any supplementary code point
// corresponding to a lead surrogate, and set it as that surrogate's value.
@@ -670,22 +646,63 @@ void Normalizer2DataBuilder::processData() {
// and select the best value that only breaks the composition and/or decomposition
// inner loops if necessary.
// However, that seems like overkill for an optimization for supplementary characters.
- for(UChar lead=0xd800; lead<0xdc00; ++lead) {
- uint32_t surrogateCPNorm16=utrie2_get32(norm16Trie, lead);
- Norm16Summary summary={ surrogateCPNorm16, surrogateCPNorm16 };
- utrie2_enumForLeadSurrogate(norm16Trie, lead, NULL, enumRangeMaxValue, &summary);
- uint32_t norm16=summary.maxNorm16;
- if(norm16>=(uint32_t)indexes[Normalizer2Impl::IX_LIMIT_NO_NO] &&
- norm16>(uint32_t)indexes[Normalizer2Impl::IX_MIN_NO_NO]) {
- // Set noNo ("worst" value) if it got into "less-bad" maybeYes or ccc!=0.
- // Otherwise it might end up at something like JAMO_VT which stays in
- // the inner decomposition quick check loop.
- norm16=(uint32_t)indexes[Normalizer2Impl::IX_LIMIT_NO_NO]-1;
+ //
+ // First check that surrogate code *points* are inert.
+ // The parser should have rejected values/mappings for them.
+ uint32_t value;
+ UChar32 end = umutablecptrie_getRange(norm16Trie, 0xd800, UCPMAP_RANGE_NORMAL, 0,
+ nullptr, nullptr, &value);
+ if (value != Normalizer2Impl::INERT || end < 0xdfff) {
+ fprintf(stderr,
+ "gennorm2 error: not all surrogate code points are inert: U+d800..U+%04x=%lx\n",
+ (int)end, (long)value);
+ exit(U_INTERNAL_PROGRAM_ERROR);
+ }
+ uint32_t maxNorm16 = 0;
+ // ANDing values yields 0 bits where any value has a 0.
+ // Used for worst-case HAS_COMP_BOUNDARY_AFTER.
+ uint32_t andedNorm16 = 0;
+ end = 0;
+ for (UChar32 start = 0x10000;;) {
+ if (start > end) {
+ end = umutablecptrie_getRange(norm16Trie, start, UCPMAP_RANGE_NORMAL, 0,
+ nullptr, nullptr, &value);
+ if (end < 0) { break; }
+ }
+ if ((start & 0x3ff) == 0) {
+ // Data for a new lead surrogate.
+ maxNorm16 = andedNorm16 = value;
+ } else {
+ if (value > maxNorm16) {
+ maxNorm16 = value;
+ }
+ andedNorm16 &= value;
+ }
+ // Intersect each range with the code points for one lead surrogate.
+ UChar32 leadEnd = start | 0x3ff;
+ if (leadEnd <= end) {
+ // End of the supplementary block for a lead surrogate.
+ if (maxNorm16 >= (uint32_t)indexes[Normalizer2Impl::IX_LIMIT_NO_NO]) {
+ // Set noNo ("worst" value) if it got into "less-bad" maybeYes or ccc!=0.
+ // Otherwise it might end up at something like JAMO_VT which stays in
+ // the inner decomposition quick check loop.
+ maxNorm16 = (uint32_t)indexes[Normalizer2Impl::IX_LIMIT_NO_NO];
+ }
+ maxNorm16 =
+ (maxNorm16 & ~Normalizer2Impl::HAS_COMP_BOUNDARY_AFTER)|
+ (andedNorm16 & Normalizer2Impl::HAS_COMP_BOUNDARY_AFTER);
+ if (maxNorm16 != Normalizer2Impl::INERT) {
+ umutablecptrie_set(norm16Trie, U16_LEAD(start), maxNorm16, errorCode);
+ }
+ if (value == Normalizer2Impl::INERT) {
+ // Potentially skip inert supplementary blocks for several lead surrogates.
+ start = (end + 1) & ~0x3ff;
+ } else {
+ start = leadEnd + 1;
+ }
+ } else {
+ start = end + 1;
}
- norm16=
- (norm16&~Normalizer2Impl::HAS_COMP_BOUNDARY_AFTER)|
- (summary.andedNorm16&Normalizer2Impl::HAS_COMP_BOUNDARY_AFTER);
- utrie2_set32ForLeadSurrogateCodeUnit(norm16Trie, lead, norm16, errorCode);
}
// Adjust supplementary minimum code points to break quick check loops at their lead surrogates.
@@ -705,14 +722,19 @@ void Normalizer2DataBuilder::processData() {
indexes[Normalizer2Impl::IX_MIN_LCCC_CP]=U16_LEAD(minCP);
}
- utrie2_freeze(norm16Trie, UTRIE2_16_VALUE_BITS, errorCode);
- norm16TrieLength=utrie2_serialize(norm16Trie, NULL, 0, errorCode);
+ LocalUCPTriePointer builtTrie(
+ umutablecptrie_buildImmutable(norm16Trie, UCPTRIE_TYPE_FAST, UCPTRIE_VALUE_BITS_16, errorCode));
+ norm16TrieLength=ucptrie_toBinary(builtTrie.getAlias(), nullptr, 0, errorCode);
if(errorCode.get()!=U_BUFFER_OVERFLOW_ERROR) {
- fprintf(stderr, "gennorm2 error: unable to freeze/serialize the normalization trie - %s\n",
+ fprintf(stderr, "gennorm2 error: unable to build/serialize the normalization trie - %s\n",
errorCode.errorName());
exit(errorCode.reset());
}
+ umutablecptrie_close(norm16Trie);
errorCode.reset();
+ norm16TrieBytes=new uint8_t[norm16TrieLength];
+ ucptrie_toBinary(builtTrie.getAlias(), norm16TrieBytes, norm16TrieLength, errorCode);
+ errorCode.assertSuccess();
int32_t offset=(int32_t)sizeof(indexes);
indexes[Normalizer2Impl::IX_NORM_TRIE_OFFSET]=offset;
@@ -750,16 +772,13 @@ void Normalizer2DataBuilder::processData() {
u_versionFromString(unicodeVersion, U_UNICODE_VERSION);
}
memcpy(dataInfo.dataVersion, unicodeVersion, 4);
+ return builtTrie;
}
void Normalizer2DataBuilder::writeBinaryFile(const char *filename) {
processData();
IcuToolErrorCode errorCode("gennorm2/writeBinaryFile()");
- LocalArray<uint8_t> norm16TrieBytes(new uint8_t[norm16TrieLength]);
- utrie2_serialize(norm16Trie, norm16TrieBytes.getAlias(), norm16TrieLength, errorCode);
- errorCode.assertSuccess();
-
UNewDataMemory *pData=
udata_create(NULL, NULL, filename, &dataInfo,
haveCopyright ? U_COPYRIGHT_STRING : NULL, errorCode);
@@ -769,7 +788,7 @@ void Normalizer2DataBuilder::writeBinaryFile(const char *filename) {
exit(errorCode.reset());
}
udata_writeBlock(pData, indexes, sizeof(indexes));
- udata_writeBlock(pData, norm16TrieBytes.getAlias(), norm16TrieLength);
+ udata_writeBlock(pData, norm16TrieBytes, norm16TrieLength);
udata_writeUString(pData, toUCharPtr(extraData.getBuffer()), extraData.length());
udata_writeBlock(pData, smallFCD, sizeof(smallFCD));
int32_t writtenSize=udata_finish(pData, errorCode);
@@ -787,7 +806,7 @@ void Normalizer2DataBuilder::writeBinaryFile(const char *filename) {
void
Normalizer2DataBuilder::writeCSourceFile(const char *filename) {
- processData();
+ LocalUCPTriePointer norm16Trie = processData();
IcuToolErrorCode errorCode("gennorm2/writeCSourceFile()");
const char *basename=findBasename(filename);
@@ -797,54 +816,33 @@ Normalizer2DataBuilder::writeCSourceFile(const char *filename) {
if(extension!=NULL) {
dataName.truncate((int32_t)(extension-basename));
}
+ const char *name=dataName.data();
errorCode.assertSuccess();
- LocalArray<uint8_t> norm16TrieBytes(new uint8_t[norm16TrieLength]);
- utrie2_serialize(norm16Trie, norm16TrieBytes.getAlias(), norm16TrieLength, errorCode);
- errorCode.assertSuccess();
-
- FILE *f=usrc_create(path.data(), basename, "icu/source/tools/gennorm2/n2builder.cpp");
+ FILE *f=usrc_create(path.data(), basename, 2016, "icu/source/tools/gennorm2/n2builder.cpp");
if(f==NULL) {
fprintf(stderr, "gennorm2/writeCSourceFile() error: unable to create the output file %s\n",
filename);
exit(U_FILE_ACCESS_ERROR);
- return;
}
fputs("#ifdef INCLUDED_FROM_NORMALIZER2_CPP\n\n", f);
+
char line[100];
- sprintf(line, "static const UVersionInfo %s_formatVersion={", dataName.data());
+ sprintf(line, "static const UVersionInfo %s_formatVersion={", name);
usrc_writeArray(f, line, dataInfo.formatVersion, 8, 4, "};\n");
- sprintf(line, "static const UVersionInfo %s_dataVersion={", dataName.data());
+ sprintf(line, "static const UVersionInfo %s_dataVersion={", name);
usrc_writeArray(f, line, dataInfo.dataVersion, 8, 4, "};\n\n");
- sprintf(line, "static const int32_t %s_indexes[Normalizer2Impl::IX_COUNT]={\n",
- dataName.data());
- usrc_writeArray(f,
- line,
- indexes, 32, Normalizer2Impl::IX_COUNT,
- "\n};\n\n");
- sprintf(line, "static const uint16_t %s_trieIndex[%%ld]={\n", dataName.data());
- usrc_writeUTrie2Arrays(f,
- line, NULL,
- norm16Trie,
- "\n};\n\n");
- sprintf(line, "static const uint16_t %s_extraData[%%ld]={\n", dataName.data());
- usrc_writeArray(f,
- line,
- extraData.getBuffer(), 16, extraData.length(),
- "\n};\n\n");
- sprintf(line, "static const uint8_t %s_smallFCD[%%ld]={\n", dataName.data());
- usrc_writeArray(f,
- line,
- smallFCD, 8, sizeof(smallFCD),
- "\n};\n\n");
- sprintf(line, "static const UTrie2 %s_trie={\n", dataName.data());
- char line2[100];
- sprintf(line2, "%s_trieIndex", dataName.data());
- usrc_writeUTrie2Struct(f,
- line,
- norm16Trie, line2, NULL,
- "};\n");
- fputs("\n#endif // INCLUDED_FROM_NORMALIZER2_CPP\n", f);
+ sprintf(line, "static const int32_t %s_indexes[Normalizer2Impl::IX_COUNT]={\n", name);
+ usrc_writeArray(f, line, indexes, 32, Normalizer2Impl::IX_COUNT, "\n};\n\n");
+
+ usrc_writeUCPTrie(f, name, norm16Trie.getAlias());
+
+ sprintf(line, "static const uint16_t %s_extraData[%%ld]={\n", name);
+ usrc_writeArray(f, line, extraData.getBuffer(), 16, extraData.length(), "\n};\n\n");
+ sprintf(line, "static const uint8_t %s_smallFCD[%%ld]={\n", name);
+ usrc_writeArray(f, line, smallFCD, 8, sizeof(smallFCD), "\n};\n\n");
+
+ fputs("#endif // INCLUDED_FROM_NORMALIZER2_CPP\n", f);
fclose(f);
}
diff --git a/Build/source/libs/icu/icu-src/source/tools/gennorm2/n2builder.h b/Build/source/libs/icu/icu-src/source/tools/gennorm2/n2builder.h
index 61b36be0044..77b4fef533a 100644
--- a/Build/source/libs/icu/icu-src/source/tools/gennorm2/n2builder.h
+++ b/Build/source/libs/icu/icu-src/source/tools/gennorm2/n2builder.h
@@ -24,10 +24,10 @@
#if !UCONFIG_NO_NORMALIZATION
#include "unicode/errorcode.h"
+#include "unicode/umutablecptrie.h"
#include "unicode/unistr.h"
#include "normalizer2impl.h" // for IX_COUNT
#include "toolutil.h"
-#include "utrie2.h"
#include "norms.h"
U_NAMESPACE_BEGIN
@@ -95,9 +95,9 @@ private:
return indexes[Normalizer2Impl::IX_MIN_MAYBE_YES]-
((2*Normalizer2Impl::MAX_DELTA+1)<<Normalizer2Impl::DELTA_SHIFT);
}
- void writeNorm16(UChar32 start, UChar32 end, Norm &norm);
- void setHangulData();
- void processData();
+ void writeNorm16(UMutableCPTrie *norm16Trie, UChar32 start, UChar32 end, Norm &norm);
+ void setHangulData(UMutableCPTrie *norm16Trie);
+ LocalUCPTriePointer processData();
Norms norms;
@@ -107,7 +107,7 @@ private:
Optimization optimization;
int32_t indexes[Normalizer2Impl::IX_COUNT];
- UTrie2 *norm16Trie;
+ uint8_t *norm16TrieBytes;
int32_t norm16TrieLength;
UnicodeString extraData;
uint8_t smallFCD[0x100];
diff --git a/Build/source/libs/icu/icu-src/source/tools/gennorm2/norms.cpp b/Build/source/libs/icu/icu-src/source/tools/gennorm2/norms.cpp
index f0fb291aac3..96692f233cc 100644
--- a/Build/source/libs/icu/icu-src/source/tools/gennorm2/norms.cpp
+++ b/Build/source/libs/icu/icu-src/source/tools/gennorm2/norms.cpp
@@ -12,12 +12,12 @@
#include <stdio.h>
#include <stdlib.h>
#include "unicode/errorcode.h"
+#include "unicode/umutablecptrie.h"
#include "unicode/unistr.h"
#include "unicode/utf16.h"
#include "normalizer2impl.h"
#include "norms.h"
#include "toolutil.h"
-#include "utrie2.h"
#include "uvectr32.h"
U_NAMESPACE_BEGIN
@@ -67,7 +67,7 @@ UChar32 Norm::combine(UChar32 trail) const {
}
Norms::Norms(UErrorCode &errorCode) {
- normTrie=utrie2_open(0, 0, &errorCode);
+ normTrie = umutablecptrie_open(0, 0, &errorCode);
normMem=utm_open("gennorm2 normalization structs", 10000, 0x110100, sizeof(Norm));
// Default "inert" Norm struct at index 0. Practically immutable.
norms=allocNorm();
@@ -75,7 +75,7 @@ Norms::Norms(UErrorCode &errorCode) {
}
Norms::~Norms() {
- utrie2_close(normTrie);
+ umutablecptrie_close(normTrie);
int32_t normsLength=utm_countItems(normMem);
for(int32_t i=1; i<normsLength; ++i) {
delete norms[i].mapping;
@@ -92,7 +92,7 @@ Norm *Norms::allocNorm() {
}
Norm *Norms::getNorm(UChar32 c) {
- uint32_t i=utrie2_get32(normTrie, c);
+ uint32_t i = umutablecptrie_get(normTrie, c);
if(i==0) {
return nullptr;
}
@@ -100,7 +100,7 @@ Norm *Norms::getNorm(UChar32 c) {
}
const Norm *Norms::getNorm(UChar32 c) const {
- uint32_t i=utrie2_get32(normTrie, c);
+ uint32_t i = umutablecptrie_get(normTrie, c);
if(i==0) {
return nullptr;
}
@@ -108,18 +108,18 @@ const Norm *Norms::getNorm(UChar32 c) const {
}
const Norm &Norms::getNormRef(UChar32 c) const {
- return norms[utrie2_get32(normTrie, c)];
+ return norms[umutablecptrie_get(normTrie, c)];
}
Norm *Norms::createNorm(UChar32 c) {
- uint32_t i=utrie2_get32(normTrie, c);
+ uint32_t i=umutablecptrie_get(normTrie, c);
if(i!=0) {
return norms+i;
} else {
/* allocate Norm */
Norm *p=allocNorm();
IcuToolErrorCode errorCode("gennorm2/createNorm()");
- utrie2_set32(normTrie, c, (uint32_t)(p-norms), errorCode);
+ umutablecptrie_set(normTrie, c, (uint32_t)(p - norms), errorCode);
return p;
}
}
@@ -153,28 +153,20 @@ UBool Norms::combinesWithCCBetween(const Norm &norm, uint8_t lowCC, int32_t high
return FALSE;
}
-U_CDECL_BEGIN
-
-static UBool U_CALLCONV
-enumRangeHandler(const void *context, UChar32 start, UChar32 end, uint32_t value) {
- return ((Norms::Enumerator *)context)->rangeHandler(start, end, value);
-}
-
-U_CDECL_END
-
void Norms::enumRanges(Enumerator &e) {
- utrie2_enum(normTrie, nullptr, enumRangeHandler, &e);
+ UChar32 start = 0, end;
+ uint32_t i;
+ while ((end = umutablecptrie_getRange(normTrie, start, UCPMAP_RANGE_NORMAL, 0,
+ nullptr, nullptr, &i)) >= 0) {
+ if (i > 0) {
+ e.rangeHandler(start, end, norms[i]);
+ }
+ start = end + 1;
+ }
}
Norms::Enumerator::~Enumerator() {}
-UBool Norms::Enumerator::rangeHandler(UChar32 start, UChar32 end, uint32_t value) {
- if(value!=0) {
- rangeHandler(start, end, norms.getNormRefByIndex(value));
- }
- return TRUE;
-}
-
void CompositionBuilder::rangeHandler(UChar32 start, UChar32 end, Norm &norm) {
if(norm.mappingType!=Norm::ROUND_TRIP) { return; }
if(start!=end) {
diff --git a/Build/source/libs/icu/icu-src/source/tools/gennorm2/norms.h b/Build/source/libs/icu/icu-src/source/tools/gennorm2/norms.h
index 4bf6e760e20..5684e65e672 100644
--- a/Build/source/libs/icu/icu-src/source/tools/gennorm2/norms.h
+++ b/Build/source/libs/icu/icu-src/source/tools/gennorm2/norms.h
@@ -15,12 +15,12 @@
#if !UCONFIG_NO_NORMALIZATION
#include "unicode/errorcode.h"
+#include "unicode/umutablecptrie.h"
#include "unicode/uniset.h"
#include "unicode/unistr.h"
#include "unicode/utf16.h"
#include "normalizer2impl.h"
#include "toolutil.h"
-#include "utrie2.h"
#include "uvectr32.h"
U_NAMESPACE_BEGIN
@@ -176,8 +176,6 @@ public:
virtual ~Enumerator();
/** Called for enumerated value!=0. */
virtual void rangeHandler(UChar32 start, UChar32 end, Norm &norm) = 0;
- /** @internal Public only for C callback. */
- UBool rangeHandler(UChar32 start, UChar32 end, uint32_t value);
protected:
Norms &norms;
};
@@ -190,7 +188,7 @@ private:
Norms(const Norms &other) = delete;
Norms &operator=(const Norms &other) = delete;
- UTrie2 *normTrie;
+ UMutableCPTrie *normTrie;
UToolMemory *normMem;
Norm *norms;
};
diff --git a/Build/source/libs/icu/icu-src/source/tools/genrb/parse.cpp b/Build/source/libs/icu/icu-src/source/tools/genrb/parse.cpp
index 465c099baba..44eb0c082bc 100644
--- a/Build/source/libs/icu/icu-src/source/tools/genrb/parse.cpp
+++ b/Build/source/libs/icu/icu-src/source/tools/genrb/parse.cpp
@@ -1018,6 +1018,11 @@ addCollation(ParseState* state, TableResource *result, const char *collationTyp
icu::CollationInfo::printReorderRanges(
*t->data, t->settings->reorderCodes, t->settings->reorderCodesLength);
}
+#if 0 // debugging output
+ } else {
+ printf("%s~%s collation tailoring part sizes:\n", state->filename, collationType);
+ icu::CollationInfo::printSizes(totalSize, indexes);
+#endif
}
struct SResource *collationBin = bin_open(state->bundle, "%%CollationBin", totalSize, dest, NULL, NULL, status);
result->add(collationBin, line, *status);
diff --git a/Build/source/libs/icu/icu-src/source/tools/genrb/reslist.cpp b/Build/source/libs/icu/icu-src/source/tools/genrb/reslist.cpp
index 2e04bbce21e..0493347ebe5 100644
--- a/Build/source/libs/icu/icu-src/source/tools/genrb/reslist.cpp
+++ b/Build/source/libs/icu/icu-src/source/tools/genrb/reslist.cpp
@@ -1395,7 +1395,7 @@ SRBRoot::compactKeys(UErrorCode &errorCode) {
int32_t offset;
suffix = keys + map[j].oldpos;
for (suffixLimit = suffix; *suffixLimit != 0; ++suffixLimit) {}
- offset = (int32_t)(keyLimit - key) - (suffixLimit - suffix);
+ offset = static_cast<int32_t>((keyLimit - key) - (suffixLimit - suffix));
if (offset < 0) {
break; /* suffix cannot be longer than the original */
}
diff --git a/Build/source/libs/icu/icu-src/source/tools/genren/genren.pl b/Build/source/libs/icu/icu-src/source/tools/genren/genren.pl
index 8859a27ef57..f85b96ac607 100755
--- a/Build/source/libs/icu/icu-src/source/tools/genren/genren.pl
+++ b/Build/source/libs/icu/icu-src/source/tools/genren/genren.pl
@@ -106,6 +106,9 @@ print HEADER <<"EndOfHeaderComment";
#if !U_DISABLE_RENAMING
+// Disable Renaming for Visual Studio's IntelliSense feature, so that 'Go-to-Definition' (F12) will work.
+#if !(defined(_MSC_VER) && defined(__INTELLISENSE__))
+
/* We need the U_ICU_ENTRY_POINT_RENAME definition. There's a default one in unicode/uvernum.h we can use, but we will give
the platform a chance to define it first.
Normally (if utypes.h or umachine.h was included first) this will not be necessary as it will already be defined.
@@ -236,8 +239,15 @@ foreach(sort keys(%CFuncs)) {
# print HEADER "#define $_ $_$U_ICU_VERSION_SUFFIX\n";
}
-print HEADER "\n#endif\n";
-print HEADER "\n#endif\n";
+
+print HEADER <<"EndOfHeaderFooter";
+
+#endif /* !(defined(_MSC_VER) && defined(__INTELLISENSE__)) */
+#endif /* U_DISABLE_RENAMING */
+#endif /* URENAME_H */
+
+EndOfHeaderFooter
+
close HEADER;
diff --git a/Build/source/libs/icu/icu-src/source/tools/gensprep/gensprep.c b/Build/source/libs/icu/icu-src/source/tools/gensprep/gensprep.c
index e3466379e12..a9c9efac95b 100644
--- a/Build/source/libs/icu/icu-src/source/tools/gensprep/gensprep.c
+++ b/Build/source/libs/icu/icu-src/source/tools/gensprep/gensprep.c
@@ -355,7 +355,7 @@ strprepProfileLineFn(void *context,
if (*s == '@') {
/* special directive */
s++;
- length = fields[0][1] - s;
+ length = (int32_t)(fields[0][1] - s);
if (length >= NORMALIZE_DIRECTIVE_LEN
&& uprv_strncmp(s, NORMALIZE_DIRECTIVE, NORMALIZE_DIRECTIVE_LEN) == 0) {
options[NORMALIZE].doesOccur = TRUE;
diff --git a/Build/source/libs/icu/icu-src/source/tools/icu-file-utf8-check.py b/Build/source/libs/icu/icu-src/source/tools/icu-file-utf8-check.py
new file mode 100755
index 00000000000..41b5a7b3f89
--- /dev/null
+++ b/Build/source/libs/icu/icu-src/source/tools/icu-file-utf8-check.py
@@ -0,0 +1,104 @@
+#! /usr/bin/python -B
+
+# Copyright (C) 2016 and later: Unicode, Inc. and others.
+# License & terms of use: http://www.unicode.org/copyright.html
+
+# Copyright (C) 2009-2011, International Business Machines Corporation, Google and Others.
+# All rights reserved.
+
+#
+# Script to check that ICU source files contain only valid UTF-8 encoded text,
+# and that all files except '.txt' files do not contain a Byte Order Mark (BOM).
+#
+# THIS SCRIPT DOES NOT WORK ON WINDOWS
+# It only works correctly on platforms where the native line ending is a plain \n
+#
+# usage:
+# icu-file-utf8-check.py [options]
+#
+# options:
+# -h | --help Print a usage line and exit.
+#
+# The tool operates recursively on the directory from which it is run.
+# Only files from the ICU github repository are checked.
+# No changes are made to the repository; only the working copy will be altered.
+
+import sys
+import os
+import os.path
+import re
+import getopt
+
+
+def runCommand(cmd):
+ output_file = os.popen(cmd);
+ output_text = output_file.read();
+ exit_status = output_file.close();
+ if exit_status:
+ print >>sys.stderr, '"', cmd, '" failed. Exiting.'
+ sys.exit(exit_status)
+ return output_text
+
+
+def usage():
+ print "usage: " + sys.argv[0] + " [-h | --help]"
+
+
+#
+# File check. Check source code files for UTF-8 and all except text files for not containing a BOM
+# file_name: name of a text file.
+# is_source: Flag, set to True if file is a source code file (.c, .cpp, .h, .java).
+#
+def check_file(file_name, is_source):
+ f = open(file_name, 'r')
+ bytes = f.read()
+ f.close()
+
+ if is_source:
+ try:
+ bytes.decode("UTF-8")
+ except UnicodeDecodeError:
+ print "Error: %s is a source code file but contains non-utf-8 bytes." % file_name
+
+ if ord(bytes[0]) == 0xef:
+ if not (file_name.endswith(".txt") or file_name.endswith(".sln")
+ or file_name.endswith(".targets")
+ or ".vcxproj" in file_name):
+ print "Warning: file %s contains a UTF-8 BOM: " % file_name
+
+ return
+
+def main(argv):
+ try:
+ opts, args = getopt.getopt(argv, "h", ("help"))
+ except getopt.GetoptError:
+ print "unrecognized option: " + argv[0]
+ usage()
+ sys.exit(2)
+ for opt, arg in opts:
+ if opt in ("-h", "--help"):
+ usage()
+ sys.exit()
+ if args:
+ print "unexpected command line argument"
+ usage()
+ sys.exit()
+
+ output = runCommand("git ls-files ");
+ file_list = output.splitlines()
+
+ source_file_re = re.compile(".*((?:\\.c$)|(?:\\.cpp$)|(?:\\.h$)|(?:\\.java$))")
+
+ for f in file_list:
+ if os.path.isdir(f):
+ print "Skipping dir " + f
+ continue
+ if not os.path.isfile(f):
+ print "Repository file not in working copy: " + f
+ continue;
+
+ source_file = source_file_re.match(f)
+ check_file(f, source_file)
+
+if __name__ == "__main__":
+ main(sys.argv[1:])
diff --git a/Build/source/libs/icu/icu-src/source/tools/icu-svnprops-check.py b/Build/source/libs/icu/icu-src/source/tools/icu-svnprops-check.py
deleted file mode 100644
index b0e86b3e88c..00000000000
--- a/Build/source/libs/icu/icu-src/source/tools/icu-svnprops-check.py
+++ /dev/null
@@ -1,189 +0,0 @@
-#! /usr/bin/python
-
-# Copyright (C) 2016 and later: Unicode, Inc. and others.
-# License & terms of use: http://www.unicode.org/copyright.html
-
-# Copyright (C) 2009-2011, International Business Machines Corporation, Google and Others.
-# All rights reserved.
-
-#
-# Script to check and fix svn property settings for ICU source files.
-# Also check for the correct line endings on files with svn:eol-style = native
-#
-# THIS SCRIPT DOES NOT WORK ON WINDOWS
-# It only works correctly on platforms where the native line ending is a plain \n
-#
-# usage:
-# icu-svnprops-check.py [options]
-#
-# options:
-# -f | --fix Fix any problems that are found
-# -h | --help Print a usage line and exit.
-#
-# The tool operates recursively on the directory from which it is run.
-# Only files from the svn repository are checked.
-# No changes are made to the repository; only the working copy will be altered.
-
-import sys
-import os
-import os.path
-import re
-import getopt
-
-
-# file_types: The parsed form of the svn auto-props specification.
-# A list of file types - .cc, .cpp, .txt, etc.
-# each element is a [type, proplist]
-# "type" is a regular expression string that will match a file name
-# prop list is another list, one element per property.
-# Each property item is a two element list, [prop name, prop value]
-file_types = list()
-
-def parse_auto_props():
- aprops = svn_auto_props.splitlines()
- for propline in aprops:
- if re.match("\s*(#.*)?$", propline): # Match comment and blank lines
- continue
- if re.match("\s*\[auto-props\]", propline): # Match the [auto-props] line.
- continue
- if not re.match("\s*[^\s]+\s*=", propline): # minimal syntax check for <file-type> =
- print "Bad line from autoprops definitions: " + propline
- continue
- file_type, string_proplist = propline.split("=", 1)
-
- #transform the file type expression from autoprops into a normal regular expression.
- # e.g. "*.cpp" ==> ".*\.cpp$"
- file_type = file_type.strip()
- file_type = file_type.replace(".", "\.")
- file_type = file_type.replace("*", ".*")
- file_type = file_type + "$"
-
- # example string_proplist at this point: " svn:eol-style=native;svn:executable"
- # split on ';' into a list of properties. The negative lookahead and lookbehind
- # in the split regexp are to prevent matching on ';;', which is an escaped ';'
- # within a property value.
- string_proplist = re.split("(?<!;);(?!;)", string_proplist)
- proplist = list()
- for prop in string_proplist:
- if prop.find("=") >= 0:
- prop_name, prop_val = prop.split("=", 1)
- else:
- # properties with no explicit value, e.g. svn:executable
- prop_name, prop_val = prop, ""
- prop_name = prop_name.strip()
- prop_val = prop_val.strip()
- # unescape any ";;" in a property value, e.g. the mime-type from
- # *.java = svn:eol-style=native;svn:mime-type=text/plain;;charset=utf-8
- prop_val = prop_val.replace(";;", ";");
- # If the prop value "is quoted", remove the quotes.
- # See svn:keywords for an example of a quoted prop value.
- match = re.match('^"(.+)"$', prop_val)
- if match:
- prop_val = match.group(1)
- proplist.append((prop_name, prop_val))
-
- file_types.append((file_type, proplist))
- # print file_types
-
-
-def runCommand(cmd):
- output_file = os.popen(cmd);
- output_text = output_file.read();
- exit_status = output_file.close();
- if exit_status:
- print >>sys.stderr, '"', cmd, '" failed. Exiting.'
- sys.exit(exit_status)
- return output_text
-
-svn_auto_props = runCommand("svn propget svn:auto-props http://source.icu-project.org/repos/icu")
-
-def usage():
- print "usage: " + sys.argv[0] + " [-f | --fix] [-h | --help]"
-
-
-#
-# UTF-8 file check. For text files with svn:mime-type=text/anything, check the specified charset
-# file_name: name of a text file.
-# base_mime_type: svn:mime-type property from the auto-props settings for this file type.
-# actual_mime_type: existing svn:mime-type property value for the file.
-# return: The correct svn:mime-type property value,
-# either the original, if it looks OK, otherwise the value from auto-props
-#
-def check_utf8(file_name, base_mime_type, actual_mime_type):
-
- f = open(file_name, 'r')
- bytes = f.read()
- f.close()
- file_is_utf8 = True
- try:
- bytes.decode("UTF-8")
- except UnicodeDecodeError:
- file_is_utf8 = False
-
- if not file_is_utf8 and actual_mime_type.find("utf-8") >= 0:
- print "Error: %s is not valid utf-8, but has a utf-8 mime type." % file_name
- return actual_mime_type
-
- if file_is_utf8 and actual_mime_type.find("charset") >=0 and actual_mime_type.find("utf-8") < 0:
- print "Warning: %s is valid utf-8, but has a mime-type of %s." % (file_name, actual_mime_type)
-
- if ord(bytes[0]) == 0xef:
- if not file_name.endswith(".txt"):
- print "Warning: file %s contains a UTF-8 BOM: " % file_name
-
- # If the file already has a charset in its mime-type, don't make any change.
-
- if actual_mime_type.find("charset=") >= 0:
- return actual_mime_type;
-
- return base_mime_type
-
-
-def main(argv):
- fix_problems = False;
- try:
- opts, args = getopt.getopt(argv, "fh", ("fix", "help"))
- except getopt.GetoptError:
- print "unrecognized option: " + argv[0]
- usage()
- sys.exit(2)
- for opt, arg in opts:
- if opt in ("-h", "--help"):
- usage()
- sys.exit()
- if opt in ("-f", "--fix"):
- fix_problems = True
- if args:
- print "unexpected command line argument"
- usage()
- sys.exit()
-
- parse_auto_props()
- output = runCommand("svn ls -R ");
- file_list = output.splitlines()
-
- for f in file_list:
- if os.path.isdir(f):
- # print "Skipping dir " + f
- continue
- if not os.path.isfile(f):
- print "Repository file not in working copy: " + f
- continue;
-
- for file_pattern, props in file_types:
- if re.match(file_pattern, f):
- # print "doing " + f
- for propname, propval in props:
- actual_propval = runCommand("svn propget --strict " + propname + " " + f)
- #print propname + ": " + actual_propval
- if propname == "svn:mime-type" and propval.find("text/") == 0:
- # check for UTF-8 text files, should have svn:mime-type=text/something; charset=utf8
- propval = check_utf8(f, propval, actual_propval)
- if not (propval == actual_propval or (propval == "" and actual_propval == "*")):
- print "svn propset %s '%s' %s" % (propname, propval, f)
- if fix_problems:
- os.system("svn propset %s '%s' %s" % (propname, propval, f))
-
-
-if __name__ == "__main__":
- main(sys.argv[1:])
diff --git a/Build/source/libs/icu/icu-src/source/tools/pkgdata/pkgdata.cpp b/Build/source/libs/icu/icu-src/source/tools/pkgdata/pkgdata.cpp
index ffcf459c349..b2cd0ab5eb9 100644
--- a/Build/source/libs/icu/icu-src/source/tools/pkgdata/pkgdata.cpp
+++ b/Build/source/libs/icu/icu-src/source/tools/pkgdata/pkgdata.cpp
@@ -511,7 +511,7 @@ main(int argc, char* argv[]) {
static int runCommand(const char* command, UBool specialHandling) {
char *cmd = NULL;
char cmdBuffer[SMALL_BUFFER_MAX_SIZE];
- int32_t len = strlen(command);
+ int32_t len = static_cast<int32_t>(strlen(command));
if (len == 0) {
return 0;
@@ -904,7 +904,8 @@ static void createFileNames(UPKGOptions *o, const char mode, const char *version
if (IN_DLL_MODE(mode)) {
sprintf(libFileNames[LIB_FILE], "%s", libName);
} else {
- sprintf(libFileNames[LIB_FILE], "%s%s",
+ sprintf(libFileNames[LIB_FILE], "%s%s%s",
+ (strstr(libName, "icudt") ? "lib" : ""),
pkgDataFlags[LIBPREFIX],
libName);
}
@@ -1020,7 +1021,7 @@ static int32_t pkg_createSymLinks(const char *targetDir, UBool specialHandling)
char name2[SMALL_BUFFER_MAX_SIZE]; /* file name to symlink */
const char* FILE_EXTENSION_SEP = uprv_strlen(pkgDataFlags[SO_EXT]) == 0 ? "" : ".";
-#if !defined(USING_CYGWIN) && U_PLATFORM != U_PF_MINGW
+#if U_PLATFORM != U_PF_CYGWIN
/* No symbolic link to make. */
if (uprv_strlen(libFileNames[LIB_FILE_VERSION]) == 0 || uprv_strlen(libFileNames[LIB_FILE_VERSION_MAJOR]) == 0 ||
uprv_strcmp(libFileNames[LIB_FILE_VERSION], libFileNames[LIB_FILE_VERSION_MAJOR]) == 0) {
@@ -1225,7 +1226,7 @@ static int32_t pkg_installFileMode(const char *installDir, const char *srcDir, c
if (f != NULL) {
for(;;) {
if (T_FileStream_readLine(f, buffer, SMALL_BUFFER_MAX_SIZE) != NULL) {
- bufferLength = uprv_strlen(buffer);
+ bufferLength = static_cast<int32_t>(uprv_strlen(buffer));
/* Remove new line character. */
if (bufferLength > 0) {
buffer[bufferLength-1] = 0;
diff --git a/Build/source/libs/icu/icu-src/source/tools/toolutil/filestrm.cpp b/Build/source/libs/icu/icu-src/source/tools/toolutil/filestrm.cpp
index 2653747727f..a926848985a 100644
--- a/Build/source/libs/icu/icu-src/source/tools/toolutil/filestrm.cpp
+++ b/Build/source/libs/icu/icu-src/source/tools/toolutil/filestrm.cpp
@@ -104,14 +104,14 @@ T_FileStream_tmpfile()
U_CAPI int32_t U_EXPORT2
T_FileStream_read(FileStream* fileStream, void* addr, int32_t len)
{
- return fread(addr, 1, len, (FILE*)fileStream);
+ return static_cast<int32_t>(fread(addr, 1, len, (FILE*)fileStream));
}
U_CAPI int32_t U_EXPORT2
T_FileStream_write(FileStream* fileStream, const void* addr, int32_t len)
{
- return fwrite(addr, 1, len, (FILE*)fileStream);
+ return static_cast<int32_t>(fwrite(addr, 1, len, (FILE*)fileStream));
}
U_CAPI void U_EXPORT2
diff --git a/Build/source/libs/icu/icu-src/source/tools/toolutil/filetools.cpp b/Build/source/libs/icu/icu-src/source/tools/toolutil/filetools.cpp
index 176a791b0df..6e88c94b520 100644
--- a/Build/source/libs/icu/icu-src/source/tools/toolutil/filetools.cpp
+++ b/Build/source/libs/icu/icu-src/source/tools/toolutil/filetools.cpp
@@ -134,7 +134,7 @@ static int32_t whichFileModTimeIsLater(const char *file1, const char *file2) {
/* Swap the file separater character given with the new one in the file path. */
U_CAPI void U_EXPORT2
swapFileSepChar(char *filePath, const char oldFileSepChar, const char newFileSepChar) {
- for (int32_t i = 0, length = uprv_strlen(filePath); i < length; i++) {
+ for (int32_t i = 0, length = static_cast<int32_t>(uprv_strlen(filePath)); i < length; i++) {
filePath[i] = (filePath[i] == oldFileSepChar ) ? newFileSepChar : filePath[i];
}
}
diff --git a/Build/source/libs/icu/icu-src/source/tools/toolutil/package.cpp b/Build/source/libs/icu/icu-src/source/tools/toolutil/package.cpp
index d96c6dd36dd..f4e428a37e7 100644
--- a/Build/source/libs/icu/icu-src/source/tools/toolutil/package.cpp
+++ b/Build/source/libs/icu/icu-src/source/tools/toolutil/package.cpp
@@ -610,7 +610,7 @@ Package::readPackage(const char *filename) {
memcpy(prefix, s, ++prefixLength); // include the /
} else {
// Use the package basename as prefix.
- int32_t inPkgNameLength=strlen(inPkgName);
+ int32_t inPkgNameLength= static_cast<int32_t>(strlen(inPkgName));
memcpy(prefix, inPkgName, inPkgNameLength);
prefixLength=inPkgNameLength;
@@ -1043,7 +1043,7 @@ Package::addItem(const char *name, uint8_t *data, int32_t length, UBool isDataOw
memset(items+idx, 0, sizeof(Item));
// copy the item's name
- items[idx].name=allocString(TRUE, strlen(name));
+ items[idx].name=allocString(TRUE, static_cast<int32_t>(strlen(name)));
strcpy(items[idx].name, name);
pathToTree(items[idx].name);
} else {
diff --git a/Build/source/libs/icu/icu-src/source/tools/toolutil/swapimpl.cpp b/Build/source/libs/icu/icu-src/source/tools/toolutil/swapimpl.cpp
index a64a6a1703f..e8850cb9864 100644
--- a/Build/source/libs/icu/icu-src/source/tools/toolutil/swapimpl.cpp
+++ b/Build/source/libs/icu/icu-src/source/tools/toolutil/swapimpl.cpp
@@ -243,7 +243,7 @@ uprops_swap(const UDataSwapper *ds,
* swap the main properties UTrie
* PT serialized properties trie, see utrie.h (byte size: 4*(i0-16))
*/
- utrie2_swapAnyVersion(ds,
+ utrie_swapAnyVersion(ds,
inData32+UPROPS_INDEX_COUNT,
4*(dataIndexes[UPROPS_PROPS32_INDEX]-UPROPS_INDEX_COUNT),
outData32+UPROPS_INDEX_COUNT,
@@ -274,7 +274,7 @@ uprops_swap(const UDataSwapper *ds,
* swap the additional UTrie
* i3 additionalTrieIndex; -- 32-bit unit index to the additional trie for more properties
*/
- utrie2_swapAnyVersion(ds,
+ utrie_swapAnyVersion(ds,
inData32+dataIndexes[UPROPS_ADDITIONAL_TRIE_INDEX],
4*(dataIndexes[UPROPS_ADDITIONAL_VECTORS_INDEX]-dataIndexes[UPROPS_ADDITIONAL_TRIE_INDEX]),
outData32+dataIndexes[UPROPS_ADDITIONAL_TRIE_INDEX],
@@ -336,7 +336,7 @@ ucase_swap(const UDataSwapper *ds,
((pInfo->formatVersion[0]==1 &&
pInfo->formatVersion[2]==UTRIE_SHIFT &&
pInfo->formatVersion[3]==UTRIE_INDEX_SHIFT) ||
- pInfo->formatVersion[0]==2 || pInfo->formatVersion[0]==3)
+ (2<=pInfo->formatVersion[0] && pInfo->formatVersion[0]<=4))
)) {
udata_printError(ds, "ucase_swap(): data format %02x.%02x.%02x.%02x (format version %02x) is not recognized as case mapping data\n",
pInfo->dataFormat[0], pInfo->dataFormat[1],
@@ -391,7 +391,7 @@ ucase_swap(const UDataSwapper *ds,
/* swap the UTrie */
count=indexes[UCASE_IX_TRIE_SIZE];
- utrie2_swapAnyVersion(ds, inBytes+offset, count, outBytes+offset, pErrorCode);
+ utrie_swapAnyVersion(ds, inBytes+offset, count, outBytes+offset, pErrorCode);
offset+=count;
/* swap the uint16_t exceptions[] and unfold[] */
@@ -493,7 +493,7 @@ ubidi_swap(const UDataSwapper *ds,
/* swap the UTrie */
count=indexes[UBIDI_IX_TRIE_SIZE];
- utrie2_swapAnyVersion(ds, inBytes+offset, count, outBytes+offset, pErrorCode);
+ utrie_swapAnyVersion(ds, inBytes+offset, count, outBytes+offset, pErrorCode);
offset+=count;
/* swap the uint32_t mirrors[] */
diff --git a/Build/source/libs/icu/icu-src/source/tools/toolutil/toolutil.vcxproj b/Build/source/libs/icu/icu-src/source/tools/toolutil/toolutil.vcxproj
index 4df76dd4559..bf379f20789 100644
--- a/Build/source/libs/icu/icu-src/source/tools/toolutil/toolutil.vcxproj
+++ b/Build/source/libs/icu/icu-src/source/tools/toolutil/toolutil.vcxproj
@@ -71,7 +71,7 @@
<CompileAs>Default</CompileAs>
</ClCompile>
<Link>
- <OutputFile>..\..\..\bin\icutu61.dll</OutputFile>
+ <OutputFile>..\..\..\bin\icutu63.dll</OutputFile>
<AdditionalDependencies>icuuc.lib;icuin.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ProgramDatabaseFile>.\..\..\..\lib\icutu.pdb</ProgramDatabaseFile>
@@ -97,7 +97,7 @@
<CompileAs>Default</CompileAs>
</ClCompile>
<Link>
- <OutputFile>..\..\..\bin\icutu61d.dll</OutputFile>
+ <OutputFile>..\..\..\bin\icutu63d.dll</OutputFile>
<AdditionalDependencies>icuucd.lib;icuind.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ProgramDatabaseFile>.\..\..\..\lib\icutud.pdb</ProgramDatabaseFile>
@@ -123,7 +123,7 @@
<CompileAs>Default</CompileAs>
</ClCompile>
<Link>
- <OutputFile>..\..\..\bin64\icutu61.dll</OutputFile>
+ <OutputFile>..\..\..\bin64\icutu63.dll</OutputFile>
<AdditionalDependencies>icuuc.lib;icuin.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ProgramDatabaseFile>.\..\..\..\lib64\icutu.pdb</ProgramDatabaseFile>
@@ -146,7 +146,7 @@
<CompileAs>Default</CompileAs>
</ClCompile>
<Link>
- <OutputFile>..\..\..\bin64\icutu61d.dll</OutputFile>
+ <OutputFile>..\..\..\bin64\icutu63d.dll</OutputFile>
<AdditionalDependencies>icuucd.lib;icuind.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ProgramDatabaseFile>.\..\..\..\lib64\icutud.pdb</ProgramDatabaseFile>
@@ -227,4 +227,4 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
-</Project> \ No newline at end of file
+</Project>
diff --git a/Build/source/libs/icu/icu-src/source/tools/toolutil/udbgutil.cpp b/Build/source/libs/icu/icu-src/source/tools/toolutil/udbgutil.cpp
index 446e11aaf90..285f68a0ec6 100644
--- a/Build/source/libs/icu/icu-src/source/tools/toolutil/udbgutil.cpp
+++ b/Build/source/libs/icu/icu-src/source/tools/toolutil/udbgutil.cpp
@@ -400,7 +400,7 @@ U_CAPI int32_t
paramStatic(const USystemParams *param, char *target, int32_t targetCapacity, UErrorCode *status) {
if(param->paramStr==NULL) return paramEmpty(param,target,targetCapacity,status);
if(U_FAILURE(*status))return 0;
- int32_t len = uprv_strlen(param->paramStr);
+ int32_t len = static_cast<int32_t>(uprv_strlen(param->paramStr));
if(target!=NULL) {
uprv_strncpy(target,param->paramStr,uprv_min(len,targetCapacity));
}
@@ -412,14 +412,14 @@ static const char *nullString = "(null)";
static int32_t stringToStringBuffer(char *target, int32_t targetCapacity, const char *str, UErrorCode *status) {
if(str==NULL) str=nullString;
- int32_t len = uprv_strlen(str);
+ int32_t len = static_cast<int32_t>(uprv_strlen(str));
if (U_SUCCESS(*status)) {
if(target!=NULL) {
uprv_strncpy(target,str,uprv_min(len,targetCapacity));
}
} else {
const char *s = u_errorName(*status);
- len = uprv_strlen(s);
+ len = static_cast<int32_t>(uprv_strlen(s));
if(target!=NULL) {
uprv_strncpy(target,s,uprv_min(len,targetCapacity));
}
@@ -554,7 +554,6 @@ static const USystemParams systemParams[] = {
#endif
{ "uconfig.internal_digitlist", paramInteger, "b", 1}, /* always 1 */
{ "uconfig.have_parseallinput", paramInteger, "b", UCONFIG_HAVE_PARSEALLINPUT},
- { "uconfig.format_fastpaths_49",paramInteger, "b", UCONFIG_FORMAT_FASTPATHS_49},
};
diff --git a/Build/source/libs/icu/icu-src/source/tools/toolutil/unewdata.cpp b/Build/source/libs/icu/icu-src/source/tools/toolutil/unewdata.cpp
index 84c9d526ba2..32b615c39b8 100644
--- a/Build/source/libs/icu/icu-src/source/tools/toolutil/unewdata.cpp
+++ b/Build/source/libs/icu/icu-src/source/tools/toolutil/unewdata.cpp
@@ -61,17 +61,17 @@ udata_create(const char *dir, const char *type, const char *name,
length = 0; /* Start with nothing */
if(dir != NULL && *dir !=0) /* Add directory length if one was given */
{
- length += strlen(dir);
+ length += static_cast<int32_t>(strlen(dir));
/* Add 1 if dir doesn't end with path sep */
if (dir[strlen(dir) - 1]!= U_FILE_SEP_CHAR) {
length++;
}
}
- length += strlen(name); /* Add the filename length */
+ length += static_cast<int32_t>(strlen(name)); /* Add the filename length */
if(type != NULL && *type !=0) { /* Add directory length if given */
- length += strlen(type);
+ length += static_cast<int32_t>(strlen(type));
}
diff --git a/Build/source/libs/icu/icu-src/source/tools/toolutil/writesrc.cpp b/Build/source/libs/icu/icu-src/source/tools/toolutil/writesrc.cpp
index edff1f9e544..10b4ad246f6 100644
--- a/Build/source/libs/icu/icu-src/source/tools/toolutil/writesrc.cpp
+++ b/Build/source/libs/icu/icu-src/source/tools/toolutil/writesrc.cpp
@@ -22,13 +22,14 @@
#include <time.h>
#include "unicode/utypes.h"
#include "unicode/putil.h"
+#include "unicode/ucptrie.h"
#include "utrie2.h"
#include "cstring.h"
#include "writesrc.h"
static FILE *
usrc_createWithHeader(const char *path, const char *filename,
- const char *generator, const char *header) {
+ const char *header, const char *generator) {
char buffer[1024];
const char *p;
char *q;
@@ -71,20 +72,34 @@ usrc_createWithHeader(const char *path, const char *filename,
}
U_CAPI FILE * U_EXPORT2
-usrc_create(const char *path, const char *filename, const char *generator) {
- // TODO: Add parameter for the first year this file was generated, not before 2016.
- static const char *header=
- "// © 2016 and later: Unicode, Inc. and others.\n"
- "// License & terms of use: http://www.unicode.org/copyright.html\n"
- "//\n"
- "// Copyright (C) 1999-2016, International Business Machines\n"
- "// Corporation and others. All Rights Reserved.\n"
- "//\n"
- "// file name: %s\n"
- "//\n"
- "// machine-generated by: %s\n"
- "\n\n";
- return usrc_createWithHeader(path, filename, generator, header);
+usrc_create(const char *path, const char *filename, int32_t copyrightYear, const char *generator) {
+ const char *header;
+ char buffer[200];
+ if(copyrightYear<=2016) {
+ header=
+ "// © 2016 and later: Unicode, Inc. and others.\n"
+ "// License & terms of use: http://www.unicode.org/copyright.html\n"
+ "//\n"
+ "// Copyright (C) 1999-2016, International Business Machines\n"
+ "// Corporation and others. All Rights Reserved.\n"
+ "//\n"
+ "// file name: %s\n"
+ "//\n"
+ "// machine-generated by: %s\n"
+ "\n\n";
+ } else {
+ sprintf(buffer,
+ "// © %d and later: Unicode, Inc. and others.\n"
+ "// License & terms of use: http://www.unicode.org/copyright.html\n"
+ "//\n"
+ "// file name: %%s\n"
+ "//\n"
+ "// machine-generated by: %%s\n"
+ "\n\n",
+ (int)copyrightYear);
+ header=buffer;
+ }
+ return usrc_createWithHeader(path, filename, header, generator);
}
U_CAPI FILE * U_EXPORT2
@@ -100,7 +115,7 @@ usrc_createTextData(const char *path, const char *filename, const char *generato
"#\n"
"# machine-generated by: %s\n"
"\n\n";
- return usrc_createWithHeader(path, filename, generator, header);
+ return usrc_createWithHeader(path, filename, header, generator);
}
U_CAPI void U_EXPORT2
@@ -229,6 +244,68 @@ usrc_writeUTrie2Struct(FILE *f,
}
U_CAPI void U_EXPORT2
+usrc_writeUCPTrieArrays(FILE *f,
+ const char *indexPrefix, const char *dataPrefix,
+ const UCPTrie *pTrie,
+ const char *postfix) {
+ usrc_writeArray(f, indexPrefix, pTrie->index, 16, pTrie->indexLength, postfix);
+ int32_t width=
+ pTrie->valueWidth==UCPTRIE_VALUE_BITS_16 ? 16 :
+ pTrie->valueWidth==UCPTRIE_VALUE_BITS_32 ? 32 :
+ pTrie->valueWidth==UCPTRIE_VALUE_BITS_8 ? 8 : 0;
+ usrc_writeArray(f, dataPrefix, pTrie->data.ptr0, width, pTrie->dataLength, postfix);
+}
+
+U_CAPI void U_EXPORT2
+usrc_writeUCPTrieStruct(FILE *f,
+ const char *prefix,
+ const UCPTrie *pTrie,
+ const char *indexName, const char *dataName,
+ const char *postfix) {
+ if(prefix!=NULL) {
+ fputs(prefix, f);
+ }
+ fprintf(
+ f,
+ " %s,\n" // index
+ " { %s },\n", // data (union)
+ indexName,
+ dataName);
+ fprintf(
+ f,
+ " %ld, %ld,\n" // indexLength, dataLength
+ " 0x%lx, 0x%x,\n" // highStart, shifted12HighStart
+ " %d, %d,\n" // type, valueWidth
+ " 0, 0,\n" // reserved32, reserved16
+ " 0x%x, 0x%lx,\n" // index3NullOffset, dataNullOffset
+ " 0x%lx,\n", // nullValue
+ (long)pTrie->indexLength, (long)pTrie->dataLength,
+ (long)pTrie->highStart, pTrie->shifted12HighStart,
+ pTrie->type, pTrie->valueWidth,
+ pTrie->index3NullOffset, (long)pTrie->dataNullOffset,
+ (long)pTrie->nullValue);
+ if(postfix!=NULL) {
+ fputs(postfix, f);
+ }
+}
+
+U_CAPI void U_EXPORT2
+usrc_writeUCPTrie(FILE *f, const char *name, const UCPTrie *pTrie) {
+ int32_t width=
+ pTrie->valueWidth==UCPTRIE_VALUE_BITS_16 ? 16 :
+ pTrie->valueWidth==UCPTRIE_VALUE_BITS_32 ? 32 :
+ pTrie->valueWidth==UCPTRIE_VALUE_BITS_8 ? 8 : 0;
+ char line[100], line2[100], line3[100];
+ sprintf(line, "static const uint16_t %s_trieIndex[%%ld]={\n", name);
+ sprintf(line2, "static const uint%d_t %s_trieData[%%ld]={\n", (int)width, name);
+ usrc_writeUCPTrieArrays(f, line, line2, pTrie, "\n};\n\n");
+ sprintf(line, "static const UCPTrie %s_trie={\n", name);
+ sprintf(line2, "%s_trieIndex", name);
+ sprintf(line3, "%s_trieData", name);
+ usrc_writeUCPTrieStruct(f, line, pTrie, line2, line3, "};\n\n");
+}
+
+U_CAPI void U_EXPORT2
usrc_writeArrayOfMostlyInvChars(FILE *f,
const char *prefix,
const char *p, int32_t length,
diff --git a/Build/source/libs/icu/icu-src/source/tools/toolutil/writesrc.h b/Build/source/libs/icu/icu-src/source/tools/toolutil/writesrc.h
index fdcf1f9a6b4..35ba256793c 100644
--- a/Build/source/libs/icu/icu-src/source/tools/toolutil/writesrc.h
+++ b/Build/source/libs/icu/icu-src/source/tools/toolutil/writesrc.h
@@ -23,6 +23,7 @@
#include <stdio.h>
#include "unicode/utypes.h"
+#include "unicode/ucptrie.h"
#include "utrie2.h"
/**
@@ -30,7 +31,7 @@
* Writes a C/Java-style comment with the generator name.
*/
U_CAPI FILE * U_EXPORT2
-usrc_create(const char *path, const char *filename, const char *generator);
+usrc_create(const char *path, const char *filename, int32_t copyrightYear, const char *generator);
/**
* Creates a source text file and writes a header comment with the ICU copyright.
@@ -76,6 +77,33 @@ usrc_writeUTrie2Struct(FILE *f,
const char *postfix);
/**
+ * Calls usrc_writeArray() for the index and data arrays of a UCPTrie.
+ */
+U_CAPI void U_EXPORT2
+usrc_writeUCPTrieArrays(FILE *f,
+ const char *indexPrefix, const char *dataPrefix,
+ const UCPTrie *pTrie,
+ const char *postfix);
+
+/**
+ * Writes the UCPTrie struct values.
+ * The {} and declaration etc. need to be included in prefix/postfix or
+ * printed before and after the array contents.
+ */
+U_CAPI void U_EXPORT2
+usrc_writeUCPTrieStruct(FILE *f,
+ const char *prefix,
+ const UCPTrie *pTrie,
+ const char *indexName, const char *dataName,
+ const char *postfix);
+
+/**
+ * Writes the UCPTrie arrays and struct values.
+ */
+U_CAPI void U_EXPORT2
+usrc_writeUCPTrie(FILE *f, const char *name, const UCPTrie *pTrie);
+
+/**
* Writes the contents of an array of mostly invariant characters.
* Characters 0..0x1f are printed as numbers,
* others as characters with single quotes: '%c'.
diff --git a/Build/source/libs/icu/icu-src/source/tools/tzcode/icuzones b/Build/source/libs/icu/icu-src/source/tools/tzcode/icuzones
index 168a86f9181..c1ded7ba3ed 100644
--- a/Build/source/libs/icu/icu-src/source/tools/tzcode/icuzones
+++ b/Build/source/libs/icu/icu-src/source/tools/tzcode/icuzones
@@ -103,27 +103,75 @@ Link America/Regina Canada/East-Saskatchewan # removed from backward in 2017c
# Europe/Dublin data from the tz database.
#
-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-# Rule Eire--ICU 1971 only - Oct 31 2:00u 0 GMT
-# Rule Eire--ICU 1972 1980 - Mar Sun>=16 2:00u 1:00 IST
-# Rule Eire--ICU 1972 1980 - Oct Sun>=23 2:00u 0 GMT
-# Rule Eire--ICU 1981 max - Mar lastSun 1:00u 1:00 IST
-# Rule Eire--ICU 1981 1989 - Oct Sun>=23 1:00u 0 GMT
-# Rule Eire--ICU 1990 1995 - Oct Sun>=22 1:00u 0 GMT
-# Rule Eire--ICU 1996 max - Oct lastSun 1:00u 0 GMT
+#
+# tzdata2018e suggests to use alternative zone definitions for use GB-Eire
+# and EU rule after Oct 27, 1968. (Yoshito 2018-05-04)
+#
+
+# Zone NAME GMTOFF RULES FORMAT [UNTIL]
+Zone Europe/Dublin--ICU -0:25:00 - LMT 1880 Aug 2
+ -0:25:21 - DMT 1916 May 21 2:00s
+ -0:25:21 1:00 IST 1916 Oct 1 2:00s
+ 0:00 GB-Eire %s 1921 Dec 6 # independence
+ 0:00 GB-Eire GMT/IST 1940 Feb 25 2:00s
+ 0:00 1:00 IST 1946 Oct 6 2:00s
+ 0:00 - GMT 1947 Mar 16 2:00s
+ 0:00 1:00 IST 1947 Nov 2 2:00s
+ 0:00 - GMT 1948 Apr 18 2:00s
+ 0:00 GB-Eire GMT/IST 1968 Oct 27
+# The next line is for when negative SAVE values are used.
+# 1:00 Eire IST/GMT
+# These three lines are for when SAVE values are always nonnegative.
+ 1:00 - IST 1971 Oct 31 2:00u
+ 0:00 GB-Eire GMT/IST 1996
+ 0:00 EU GMT/IST
+
+Link Europe/Dublin--ICU Eire--ICU
+
+#
+# tzdata2018e also added another instance of negative DST to
+# Europe/Prague and Africa/Windhoek
+#
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
-# Zone Europe/Dublin--ICU -0:25:00 - LMT 1880 Aug 2
-# -0:25:21 - DMT 1916 May 21 2:00s
-# -0:25:21 1:00 IST 1916 Oct 1 2:00s
-# 0:00 GB-Eire %s 1921 Dec 6 # independence
-# 0:00 GB-Eire GMT/IST 1940 Feb 25 2:00s
-# 0:00 1:00 IST 1946 Oct 6 2:00s
-# 0:00 - GMT 1947 Mar 16 2:00s
-# 0:00 1:00 IST 1947 Nov 2 2:00s
-# 0:00 - GMT 1948 Apr 18 2:00s
-# 0:00 GB-Eire GMT/IST 1968 Oct 27
-# 0:00 Eire--ICU GMT/IST
-
-# Link Europe/Dublin--ICU Eire--ICU
+Zone Europe/Prague--ICU 0:57:44 - LMT 1850
+ 0:57:44 - PMT 1891 Oct # Prague Mean Time
+ 1:00 C-Eur CE%sT 1945 May 9
+ 1:00 Czech CE%sT 1946 Dec 1 3:00
+# Vanguard section, for zic and other parsers that support negative DST.
+# 1:00 -1:00 GMT 1947 Feb 23 2:00
+# Rearguard section, for parsers that do not support negative DST.
+ 0:00 - GMT 1947 Feb 23 2:00
+# End of rearguard section.
+ 1:00 Czech CE%sT 1979
+ 1:00 EU CE%sT
+
+# Slovakia
+Link Europe/Prague--ICU Europe/Bratislava--ICU
+
+# RULE NAME FROM TO TYPE IN ON AT SAVE LETTER/S
+# Vanguard section, for zic and other parsers that support negative DST.
+#Rule Namibia 1994 only - Mar 21 0:00 -1:00 WAT
+#Rule Namibia 1994 2017 - Sep Sun>=1 2:00 0 CAT
+#Rule Namibia 1995 2017 - Apr Sun>=1 2:00 -1:00 WAT
+# Rearguard section, for parsers that do not support negative DST.
+Rule Namibia--ICU 1994 only - Mar 21 0:00 0 WAT
+Rule Namibia--ICU 1994 2017 - Sep Sun>=1 2:00 1:00 CAT
+Rule Namibia--ICU 1995 2017 - Apr Sun>=1 2:00 0 WAT
+# Zone NAME GMTOFF RULES FORMAT [UNTIL]
+Zone Africa/Windhoek--ICU 1:08:24 - LMT 1892 Feb 8
+ 1:30 - +0130 1903 Mar
+ 2:00 - SAST 1942 Sep 20 2:00
+ 2:00 1:00 SAST 1943 Mar 21 2:00
+ 2:00 - SAST 1990 Mar 21 # independence
+# Vanguard section, for zic and other parsers that support negative DST.
+# 2:00 Namibia %s
+# Rearguard section, for parsers that do not support negative DST.
+ 2:00 - CAT 1994 Mar 21 0:00
+# From Paul Eggert (2017-04-07):
+# The official date of the 2017 rule change was 2017-10-24. See:
+# http://www.lac.org.na/laws/annoSTAT/Namibian%20Time%20Act%209%20of%202017.pdf
+ 1:00 Namibia--ICU %s 2017 Oct 24
+ 2:00 - CAT
+# End of rearguard section.